Κεφάλαιο 4. Ο επεξεργαστής. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

Σχετικά έγγραφα
Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

Κεφάλαιο 4. Ο επεξεργαστής

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

Τέτοιες λειτουργίες γίνονται διαμέσου του

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Κεντρική Μονάδα Επεξεργασίας

Σχεδίαση μονάδας ελέγχου επεξεργαστή

Διάλεξη 12 Καθυστερήσεις (Stalls)

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Κεφάλαιο 4. Ο επεξεργαστής. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

Αρχιτεκτονική Υπολογιστών

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Διάλεξη 11 Προώθηση (Forwarding)

30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 1. Πλυντήριο. 2. Στεγνωτήριο. 3. ίπλωµα. 4. αποθήκευση. προσέγγιση για 4.

ΠΛΕ- 027 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου

Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή. 30 min κάθε «φάση»

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ

Παράρτηµα Γ. Τα Βασικά της Λογικής Σχεδίασης. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Διακλαδώσεις. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 3 ο ΜΕΔ απλού κύκλου

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2.

Διοχέτευση (Pipeline)

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 4. Ο επεξεργαστής

Αρχιτεκτονική Υπολογιστών

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

Θέµατα Φεβρουαρίου

Pipelined Datapath, Hazards and Forwarding

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Διοχέτευση

Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 30 min κάθε «φάση»

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

Αρχιτεκτονική Υπολογιστών

Οργάνωση Υπολογιστών

Κάθε functional unit χρησιµοποιείται µια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

Απλός επεξεργαστής (Επανάληψη)

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Εντολές του MIPS (2)

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Αρχιτεκτονική Υπολογιστών

Άσκηση IF ID EX MEM WB α. 300ps 400ps 350ps 500ps 100ps β. 200ps 150ps 120ps 190ps 140ps

Αρχιτεκτονική υπολογιστών

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 9 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Υλοποίηση Mικροεπεξεργαστή MIPS -16

Επανάληψη Σύστημα Διασωλήνωσης (Pipelining) Κεφάλαιο 4 - Σύστημα ιασωλήνωσης

Αρχιτεκτονική Υπολογιστών

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 4 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Κεφάλαιο 6 Βελτίωση Απόδοσης με Διασωλήνωση (Enhancing Performance with Pipelining)

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Κεφάλαιο 4: Pipelining 75

-Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 4: O επεξεργαστής Σύστημα Διασωλήνωσης (Pipelining)

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Εισαγωγή στην Επιστήμη των Υπολογιστών

Αρχιτεκτονικές Συνόλου Εντολών

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης. Multicycle datapath

ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής

Αρχιτεκτονική Υπολογιστών

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Σχεδίαση της Μονάδας Ελέγχου

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

AΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (5 ο εξάμηνο) ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ (ΦΘΙΝΟΠΩΡΟ 2007) ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ 30 ΛΕΠΤΑ

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 2. Εντολές : Η γλώσσα του υπολογιστή

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

Παραλληλισμός σε επίπεδο εντολών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

Transcript:

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση Κεφάλαιο 4 Ο επεξεργαστής ιαφάνειες διδασκαλίας του πρωτότυπου βιβλίου µεταφρασµένες στα ελληνικά και εµπλουτισµένες (µετάφραση, επιµέλεια, προσθήκες: ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών)

Εισαγωγή Παράγοντες απόδοσης της CPU Πλήθος εντολών Καθορίζεται από την αρχιτεκτονική συνόλου εντολών και το µεταγλωττιστή CPI και Χρόνος κύκλου Καθορίζεται από το υλικό της CPU Θα εξετάσουµε δύο υλοποιήσεις του MIPS Μια απλουστευµένη έκδοση εκτέλεση όλων των εντολών σε ένα µεγάλο κύκλο ρολογιού Μια πιο ρεαλιστική έκδοση µε διοχέτευση (pipeline) Απλό υποσύνολο, δείχνει τις περισσότερες πτυχές Αναφορά µνήµης: lw, sw Αριθµητικές/λογικές: add, sub, and, or, slt Μεταφοράς ελέγχου: beq, j Κεφάλαιο 4 Ο επεξεργαστής 2 4.1 Εισαγωγή

Βήµατα εκτέλεσης εντολής PC µνήµη εντολών, προσκόµιση (fetch) εντολής Program Counter: διεύθυνση εντολής που θα εκτελεστεί Αριθµοί καταχωρητών αρχείο καταχωρητών (register file), ανάγνωση καταχωρητών Ανάλογα µε τη κατηγορία της εντολής Χρήση της ALU για τον υπολογισµό Αριθµητικού αποτελέσµατος ιεύθυνσης µνήµης για εντολές load/store ιεύθυνση προορισµού διακλάδωσης Προσπέλαση µνήµης δεδοµένων για load/store Ενηµέρωση PC διεύθυνση προορισµού ή PC + 4 Κεφάλαιο 4 Ο επεξεργαστής 3

Επισκόπηση της CPU ξεχωριστές µνήµες Κεφάλαιο 4 Ο επεξεργαστής 4

Πολυπλέκτες εν µπορούµε απλώς να ενώσουµε καλώδια µαζί Χρήση πολυπλεκτών Κεφάλαιο 4 Ο επεξεργαστής 5

Έλεγχος Κεφάλαιο 4 Ο επεξεργαστής 6

Βασικά λογικής σχεδίασης Η πληροφορία κωδικοποιείται δυαδικά Χαµηλή τάση = 0, Υψηλή τάση = 1 Ένα καλώδιο ανά bit εδοµένα πολλών bit κωδικοποιούνται µε διαύλους πολλών καλωδίων Συνδυαστικό στοιχείο Επενεργεί σε δεδοµένα Η έξοδος είναι συνάρτηση της εισόδου Στοιχεία κατάστασης (ακολουθιακά) Αποθηκεύουν πληροφορίες 4.2 Συµβάσεις λογικής σχεδίασης Κεφάλαιο 4 Ο επεξεργαστής 7

Συνδυαστικά στοιχεία Πύλη AND Y = A & B Αθροιστής Y = A + B A B + Y A B I0 I1 M u x S Y Πολυπλέκτης Y = S? I1 : I0 Y Αριθµητική/Λογική Μονάδα Y = F(A, B) A B ALU F Y Κεφάλαιο 4 Ο επεξεργαστής 8

Ακολουθιακά στοιχεία Καταχωρητής: αποθηκεύει δεδοµένα σε ένα κύκλωµα Χρησιµοποιεί σήµα ρολογιού για να καθορίσει πότε ενηµερώνεται η αποθηκευµένη τιµή Ακµοπυροδοτούµενη: ενηµέρωση όταν το Clk αλλάζει από 0 σε 1 D Clk Q Clk D Q Κεφάλαιο 4 Ο επεξεργαστής 9

Ακολουθιακά στοιχεία Καταχωρητής µε έλεγχο εγγραφής Ενηµερώνει στην ακµή του ρολογιού µόνο όταν η είσοδος ελέγχου εγγραφής είναι 1 Χρησιµοποιείται όταν η αποθηκευµένη τιµή απαιτείται αργότερα Clk D Write Clk Q Write D Q Κεφάλαιο 4 Ο επεξεργαστής 10

Μεθοδολογία χρονισµού Η συνδυαστική λογική µετασχηµατίζει τα δεδοµένα στη διάρκεια των κύκλων ρολογιού Μεταξύ ακµών ρολογιού Είσοδος από στοιχεία κατάστασης, έξοδος σε στοιχεία κατάστασης Η µεγαλύτερη καθυστέρηση καθορίζει την περίοδο του ρολογιού Κεφάλαιο 4 Ο επεξεργαστής 11

Κατασκευή διαδροµής δεδοµένων ιαδροµή δεδοµένων (datapath) Στοιχεία που επεξεργάζονται δεδοµένα και διευθύνσεις στη CPU Καταχωρητές, ALU, πολυπλέκτες, µνήµες, Θα κατασκευάσουµε µια διαδροµή δεδοµένων MIPS µε διαδοχικά βήµατα Θα κάνουµε πιο αναλυτικό το συνολικό σχέδιο 4.3 Κατασκευή διαδροµής δεδοµένων Κεφάλαιο 4 Ο επεξεργαστής 12

Προσκόµιση εντολής (Instruction Fetch) Ανάγνωση της εντολής από τη µνήµη εντολών καταχωρητής 32 bit Αύξηση κατά 4 για την επόµενη εντολή Κεφάλαιο 4 Ο επεξεργαστής 13

Εντολές µορφής R Ανάγνωση δύο τελεστέων καταχωρητών Εκτέλεση αριθµητικής/λογικής λειτουργίας Εγγραφή αποτελέσµατος σε καταχωρητή Κεφάλαιο 4 Ο επεξεργαστής 14

Εντολές Load/Store Ανάγνωση τελεστέων καταχωρητών Υπολογισµός διεύθυνσης µε χρήση της σχετικής απόστασης (offset) των 16 bit Χρήση της ALU, αλλά µε επέκταση προσήµου του offset Φόρτωση (Load): ανάγνωση µνήµης και ενηµέρωση καταχωρητή Αποθήκευση (Store): εγγραφής τιµής καταχωρητή στη µνήµη Κεφάλαιο 4 Ο επεξεργαστής 15

Εντολές διακλάδωσης (branch) Ανάγνωση τελεστέων καταχωρητών Σύγκριση τελεστέων Χρήση ALU, αφαίρεση και έλεγχος της εξόδου Zero Υπολογισµός διεύθυνσης προορισµού Επέκταση προσήµου της µετατόπισης (displacement) Αριστερή ολίσθηση κατά 2 θέσεις (µετατόπιση λέξης) Πρόσθεση στο PC + 4 Έχει ήδη υπολογιστεί από την προσκόµιση εντολής Κεφάλαιο 4 Ο επεξεργαστής 16

Εντολές διακλάδωσης Απλώς επαναδροµολογεί τις εγγραφές Επαναλαµβάνεται το καλώδιο του bit προσήµου Κεφάλαιο 4 Ο επεξεργαστής 17

ηµιουργία των στοιχείων Μια πρώτη διαδροµή δεδοµένων (data path) εκτελεί µία εντολή σε έναν κύκλο ρολογιού Κάθε στοιχείο της διαδροµής δεδοµένων κάνει µόνο µία συνάρτηση κάθε φορά Έτσι, χρειαζόµαστε ξεχωριστές µνήµες εντολών και δεδοµένων Χρήση πολυπλεκτών όταν χρησιµοποιούνται διαφορετικές προελεύσεις δεδοµένων σε διαφορετικές εντολές Κεφάλαιο 4 Ο επεξεργαστής 18

ιαδροµή δεδοµένων για Τύπο R/Load/Store Κεφάλαιο 4 Ο επεξεργαστής 19

Πλήρης διαδροµή δεδοµένων Κεφάλαιο 4 Ο επεξεργαστής 20

Έλεγχος ALU Η ALU χρησιµοποιείται για Load/Store: λειτουργία = add Branch: λειτουργία = subtract Τύπου R: λειτουργία εξαρτάται από το πεδίο funct Έλεγχος ALU Λειτουργία 0000 AND 0001 OR 0010 add 0110 subtract 0111 set-on-less-than 1100 NOR 4.4 Μια απλή µέθοδος υλοποίησης Κεφάλαιο 4 Ο επεξεργαστής 21

Έλεγχος ALU Υποθέτουµε ότι ένα πεδίο 2 bit ALUOp εξάγεται από το opcode Συνδυαστική λογική εξάγει τον έλεγχο της ALU opcode ALUOp Λειτουργία funct ALU function ALU control lw 00 load word XXXXXX add 0010 sw 00 store word XXXXXX add 0010 beq 01 branch equal XXXXXX subtract 0110 R-type 10 add 100000 add 0010 subtract 100010 subtract 0110 AND 100100 AND 0000 OR 100101 OR 0001 set-on-less-than 101010 set-on-less-than 0111 Κεφάλαιο 4 Ο επεξεργαστής 22

Η κύρια µονάδα ελέγχου Σήµατα ελέγχου που εξάγονται από εντολή Τύπου R Load/ Store Branch 0 rs rt rd shamt funct 31:26 25:21 20:16 15:11 10:6 5:0 35 or 43 rs rt address 31:26 25:21 20:16 15:0 4 rs rt address 31:26 25:21 20:16 15:0 opcode πάντα ανάγνωση ανάγνωση, εκτός από τη load εγγραφή για τύπου R και load επέκταση προσήµου και πρόσθεση Κεφάλαιο 4 Ο επεξεργαστής 23

ιαδροµή δεδοµένων και έλεγχος Κεφάλαιο 4 Ο επεξεργαστής 24

Εντολή τύπου R Κεφάλαιο 4 Ο επεξεργαστής 25

Εντολή Load Κεφάλαιο 4 Ο επεξεργαστής 26

Εντολή Branch-on-Equal Κεφάλαιο 4 Ο επεξεργαστής 27

Υλοποίηση αλµάτων Jump 2 address Η Jump χρησιµοποιεί διεύθυνση λέξης Ενηµέρωση του PC µε συνένωση των Υψηλότερων 4 bit του παλιού PC ιεύθυνσης άλµατος των 26 bit 00 31:26 25:0 Χρειάζεται ένα επιπλέον σήµα ελέγχου από την αποκωδικοποίηση του opcode Κεφάλαιο 4 Ο επεξεργαστής 28

ιαδροµή δεδ. µε προσθήκη αλµάτων Κεφάλαιο 4 Ο επεξεργαστής 29

Ζητήµατα απόδοσης Η µεγαλύτερη καθυστέρηση καθορίζει την περίοδο ρολογιού Κρίσιµη διαδροµή (critical path): εντολή load Μνήµη εντολών αρχείο καταχωρητών ALU µνήµη δεδοµένων αρχείο καταχωρητών εν είναι εφικτή διαφορετική περίοδος για διαφορετικές εντολές Παραβιάζει τη σχεδιαστική αρχή Κάνε τη συνηθισµένη περίπτωση γρήγορη Θα βελτιώσουµε την απόδοση µε τη διοχέτευση (pipelining) Κεφάλαιο 4 Ο επεξεργαστής 30

Αναλογία διοχέτευσης Μπουγάδα µε διοχέτευση: επικάλυψη εκτέλεσης Η παραλληλία βελτιώνει την απόδοση Τέσσερα φορτία: Επιτάχυνση = 8/3.5 = 2.3 Ασταµάτητα: Κεφάλαιο 4 Ο επεξεργαστής 31 4.5 Γενικά για τη διοχέτευση Επιτάχυνση = 2n/(0.5n + 1.5) 4 = αριθµός σταδίων

ιοχέτευση του MIPS Πέντε στάδια (stages), ένα βήµα σε κάθε στάδιο 1. IF: Instruction fetch from memory (προσκόµιση εντολής από τη µνήµη) 2. ID: Instruction decode & register read (αποκωδικοποίηση εντολής & ανάγνωση καταχωρητών) 3. EX: Execute operation or calculate address (εκτέλεση λειτουργίας ή υπολογισµός δ/νσης) 4. MEM: Access memory operand (προσπέλαση τελεστέου µνήµης) 5. WB: Write result back to register (επανεγγραφή αποτελέσµατος σε καταχωρητή) Κεφάλαιο 4 Ο επεξεργαστής 32

Απόδοση διοχέτευσης Υποθέστε ότι ο χρόνος των σταδίων είναι 100ps για ανάγνωση ή εγγραφή καταχωρητή 200ps για τα άλλα στάδια Σύγκριση της διαδροµής δεδοµένων µε διοχέτευση µε τη διαδροµή δεδοµένων ενός κύκλου Εντολή Instr fetch Register read ALU op Memory access Register write Συνολικός χρόνος lw 200ps 100 ps 200ps 200ps 100 ps 800ps sw 200ps 100 ps 200ps 200ps 700ps R-format 200ps 100 ps 200ps 100 ps 600ps beq 200ps 100 ps 200ps 500ps Κεφάλαιο 4 Ο επεξεργαστής 33

Απόδοση διοχέτευσης Ενός κύκλου (T c = 800ps) Με διοχέτευση (T c = 200ps) Κεφάλαιο 4 Ο επεξεργαστής 34

Επιτάχυνση λόγω διοχέτευσης Αν είναι ισορροπηµένα όλα τα στάδια ηλαδή, όλα διαρκούν τον ίδιο χρόνο Χρόνος µεταξύ εντολών µε διοχέτευση = Χρόνος µεταξύ εντολών χωρίς διοχέτευση Αριθµός σταδίων Αν δεν είναι ισορροπηµένα, η επιτάχυνση είναι µικρότερη Επιτάχυνση λόγω αυξηµένης διεκπεραιωτικής ικανότητας (throughput) Λανθάνων χρόνος latency (χρόνος για κάθε εντολή) δε µειώνεται Κεφάλαιο 4 Ο επεξεργαστής 35

Παράδειγµα Σύγκριση Πρόγραµµα µε 10% loads, 15% stores, 55% R-type, 20% διακλαδώσεις Πλήθος εντολών 10 9 Με δεδοµένους τους λανθάνοντες χρόνους που είδαµε Βρείτε το χρόνο εκτέλεσης για: ιαδροµή δεδοµένων 1 κύκλου ιαδροµή δεδοµένων πολλών κύκλων ιαδροµή δεδοµένων µε ιδανική διοχέτευση Χωρίς καθυστερήσεις Κεφάλαιο 4 Ο επεξεργαστής 36

Απάντηση ιαδροµή δεδοµένων 1 κύκλου Η περίοδος του ρολογιού είναι 800 ps Χρόνος εκτέλεσης = Ι x CPI x Χρόνος κύκλου = 10 9 x 1 x 800 x 10-12 = 0,80 sec ιαδροµή δεδοµένων πολλών κύκλων Περίοδος ρολογιού 200 ps CPI = 0,10 x 5 + 0,15 x 4 + 0,55 x 4 + 0,20 x 3 = 3,9 Χρόνος εκτέλεσης = Ι x CPI x Χρόνος κύκλου = 10 9 x 3,9 x 200 x 10-12 = 0,78 sec ιαδροµή δεδοµένων µε ιδανική διοχέτευση Χωρίς καθυστερήσεις Χρόνος εκτέλεσης = Ι x CPI x Χρόνος κύκλου = 10 9 x 1 x 200 x 10-12 = 0,20 sec Κεφάλαιο 4 Ο επεξεργαστής 37

ιοχέτευση και σχεδίαση συνόλου εντολών Το σύνολο εντολών του MIPS είναι σχεδιασµένο για διοχέτευση Όλες οι εντολές είναι των 32 bit Ευκολότερη προσκόµιση και αποκωδικοποίηση σε έναν κύκλο σύγκριση µε x86: εντολές 1 έως 17 byte Λίγες και κανονικές µορφές εντολών Μπορεί να αποκωδικοποιήσει και να διαβάσει καταχωρητές σε ένα βήµα ιευθυνσιοδότηση Load/store Μπορεί να υπολογίσει τη δ/νση στο τρίτο στάδιο, και να προσπελάσει τη µνήµη στο τέταρτο στάδιο Ευθυγράµµιση των τελεστέων µνήµης Προσπέλαση µνήµης διαρκεί µόνο έναν κύκλο Κεφάλαιο 4 Ο επεξεργαστής 38

Κίνδυνοι (hazards) Καταστάσεις που αποτρέπουν την εκκίνηση της επόµενης εντολής στον επόµενη κύκλο Κίνδυνος δοµής (structure hazards) Ένας απαιτούµενος πόρος είναι απασχοληµένος Κίνδυνος δεδοµένων (data hazard) Πρέπει να περιµένει την προηγούµενη εντολή να ολοκληρώσει την ανάγνωση/εγγραφή δεδοµένων της Κίνδυνος ελέγχου (control hazard) Η απόφαση σε µια ενέργεια ελέγχου εξαρτάται από προηγούµενη εντολή Κεφάλαιο 4 Ο επεξεργαστής 39

Κίνδυνοι δοµής ιένεξη στη χρήση ενός πόρου Στη διοχέτευση του MIPS µε µία µοναδική µνήµη Οι εντολές load/store απαιτούν προσπέλαση µνήµης Η προσκόµιση εντολής πρέπει να καθυστερήσει (stall) σε εκείνο το κύκλο Θα προκαλούσε «φυσαλίδα» της διοχέτευσης (pipeline bubble ) Έτσι, οι διαδροµές δεδοµένων µε διοχέτευση απαιτούν ξεχωριστές µνήµες εντολών/δεδοµένων Ή ξεχωριστές κρυφές µνήµες (cache memories) εντολών/δεδοµένων Κεφάλαιο 4 Ο επεξεργαστής 40

Κίνδυνοι δεδοµένων Μια εντολή εξαρτάται από την ολοκλήρωση µιας προσπέλασης δεδοµένων µιας προηγούµενης εντολής add $s0, $t0, $t1 sub $t2, $s0, $t3 Κεφάλαιο 4 Ο επεξεργαστής 41

Προώθηση (Forwarding) Λέγεται επίσης Παράκαµψη (Bypassing) Χρήση του αποτελέσµατός όταν δηµιουργηθεί Μην περιµένεις να αποθηκευτεί σε καταχωρητή Απαιτεί επιπλέον συνδέσεις στη διαδροµή δεδοµένων Κεφάλαιο 4 Ο επεξεργαστής 42

Κίνδυνος δεδοµένων Φόρτωσης/Χρήσης Φόρτωση/Χρήση (Load/Use) εν µπορούµε να αποφύγουµε πάντα τις καθυστερήσεις µε την προώθηση Αν η τιµή δεν έχει υπολογιστεί όταν χρειάζεται εν µπορεί να γίνει προώθηση προς τα πίσω στο χρόνο! Κεφάλαιο 4 Ο επεξεργαστής 43

Χρονοπρογρ/µός κώδικα για αποφυγή καθυστερήσεων Αναδιάταξη κώδικα για αποφυγή χρήσης του αποτελέσµατος της load στην επόµενη εντολή Κώδικας C για τοa = B + E; C = B + F; καθυστέρηση καθυστέρηση lw $t1, 0($t0) lw $t2, 4($t0) add $t3, $t1, $t2 sw $t3, 12($t0) lw $t4, 8($t0) add $t5, $t1, $t4 sw $t5, 16($t0) 13 κύκλοι lw $t1, 0($t0) lw $t2, 4($t0) lw $t4, 8($t0) add $t3, $t1, $t2 sw $t3, 12($t0) add $t5, $t1, $t4 sw $t5, 16($t0) 11 κύκλοι Κεφάλαιο 4 Ο επεξεργαστής 44

Κίνδυνοι ελέγχου Η διακλάδωση καθορίζει τη ροή του ελέγχου (flow of control) Η προσκόµιση της επόµενης εντολής εξαρτάται από το αποτέλεσµα της διακλάδωσης Η διοχέτευση δεν µπορεί να προσκοµίσει πάντα τη σωστή εντολή Ακόµη δουλεύει στο στάδιο ID της διακλάδωσης Στη διοχέτευση του MIPS Πρέπει να συγκρίνει καταχωρητές και να υπολογίσει τη δ/νση προορισµού νωρίς στη διοχέτευση Προσθήκη υλικού για να γίνουν στο στάδιο ID Κεφάλαιο 4 Ο επεξεργαστής 45

Καθυστέρηση σε διακλάδωση Stall on branch Περίµενε µέχρι να καθοριστεί το αποτέλεσµα της διακλάδωσης πριν προσκοµίσεις την επόµενη εντολή Κεφάλαιο 4 Ο επεξεργαστής 46

Πρόβλεψη διακλάδωσης Branch prediction Οι µεγαλύτερες διοχετεύσεις δεν µπορούν να καθορίσουν σύντοµα το αποτέλεσµα της διακλάδωσης Η ποινή καθυστέρησης (stall penalty) γίνεται υπερβολικά µεγάλη Πρόβλεψη (predict) του αποτελέσµατος της διακλάδωσης Καθυστέρηση µόνο αν η πρόβλεψη είναι λανθασµένη Στη διοχέτευση του MIPS Μπορεί να γίνει πρόβλεψη µη λήψης της διακλάδωσης (predict not taken) Προσκόµιση της εντολής µετά τη διακλάδωση, χωρίς καθόλου καθυστέρηση Κεφάλαιο 4 Ο επεξεργαστής 47

MIPS µε πρόβλεψη µη λήψης Σωστή πρόβλεψη Λανθασµένη πρόβλεψη Κεφάλαιο 4 Ο επεξεργαστής 48

Πιο ρεαλιστική πρόβλεψη διακλάδωσης Στατική πρόβλεψη διακλάδωσης Βασίζεται στην τυπική συµπεριφορά των διακλαδώσεων Παράδειγµα: διακλαδώσεις σε βρόχους και εντολές if Πρόβλεψη διακλαδώσεων προς τα πίσω (backward branches) ως λαµβανόµενες Πρόβλεψη διακλαδώσεων προς τα εµπρός (forward branches) ως µη λαµβανόµενες υναµική πρόβλεψη διακλάδωσης Το υλικό µετράει τη πραγµατική συµπεριφορά διακλαδώσεων π.χ., καταγράφει την πρόσφατη ιστορία κάθε διακλάδωσης Υποθέτει ότι η µελλοντική συµπεριφορά θα συνεχίσει την τάση Σε περίπτωση λάθους, γίνεται καθυστέρηση κατά την επαναπροσκόµιση, και ενηµέρωση του ιστορικού Κεφάλαιο 4 Ο επεξεργαστής 49

«Καθυστερηµένες» διακλαδώσεις Καθυστερηµένες διακλαδώσεις [delayed branches] Ιδέα: καθυστέρησε να πάρεις απόφαση για µια διακλάδωση Αυτό υλοποιεί ο MIPS Μια «καθυστερηµένη» διακλάδωση εκτελεί πάντα την επόµενη της εντολή εν ελέγχει την «ορθότητα» αυτής της επιλογής Πρέπει η επόµενη εντολή να κάνει «άσχετο» µε τη διακλάδωση έργο Στο προηγούµενο παράδειγµα, η add $4, $5, $6 µπορεί να µεταφερθεί µετά τη beq εν θα αλλάξει τίποτε και θα αποφευχθεί ο 1 κύκλος καθυστέρησης Αυτό το κάνουν οι µεταγλωττιστές Κεφάλαιο 4 Ο επεξεργαστής 50

Περίληψη διοχέτευσης ΓΕΝΙΚΗ εικόνα Η διοχέτευση βελτιώνει την απόδοση µε την αύξηση της διεκπεραιωτικής ικανότητας σε εντολές Εκτελεί πολλές εντολές παράλληλα Κάθε εντολή έχει τον ίδιο λανθάνοντα χρόνο Υπόκειται σε κινδύνους οµής, δεδοµένων, ελέγχου Η σχεδίαση του συνόλου εντολών επιδρά στην πολυπλοκότητα της υλοποίησης της διοχέτευσης Κεφάλαιο 4 Ο επεξεργαστής 51