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

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

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

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

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

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

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

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

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

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

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

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

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

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

Παραλληλισµός Εντολών (Pipelining)

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

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

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Εισαγωγή. Σύνοψη βασικών εννοιών, 5-stage pipeline, επεκτάσεις για λειτουργίες πολλαπλών κύκλων

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

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

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

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

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

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

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

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

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

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

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

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

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 9: Εισαγωγή στην Ομοχειρία (Pipelining - Διοχέτευση) Μανόλης Γ.Η.

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

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

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

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

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

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Προχωρημένες Τεχνικές Pipelining. Ιάκωβος Μαυροειδής

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

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

Application Operating System. Datapath & Control/Memory. Digital Design Circuit Design. Layout

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

CS425 Computer Systems Architecture

Pipelined Datapath, Hazards and Forwarding

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

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

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

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

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

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

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

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

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

Μικροαρχιτεκτονική του LC3

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

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

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

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

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

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

Transcript:

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

Το σημερινό μάθημα Υπόβαθρο: Διοχέτευση (Pipelining) Βασική οργάνωση Δομικοί κίνδυνοι Κίνδυνοι δεδομένων (hazards): RAW, WAR, WAW Stall (αναμονή, σταμάτημα) και προώθηση (forwarding) Κίνδυνοι ελέγχου Ακριβείς διακοπές Διοχετευμένες λειτουργικές μονάδες 2

Βήματα εκτέλεσης εντολής Από το μοντέλο von Neumann, για επεξεργαστές RISC: 1. Fetch προσκόμιση εντολής, από τη διεύθυνση που δείχνει ο PC (program pointer) 2. Decode αποκωδικοποίηση 3. Execute εκτέλεση 4. Αποθήκευση αποτελέσματος και ενημέρωση του PC Μικρές παραλλαγές ανάλογα με το είδος εντολής, π.χ. στο 3 ο βήμα: load/store: υπολογισμός διεύθυνσης μνήμης και προσπέλαση branch: υπολογισμός νέου PC αν η διακλάδοση ακολουθείται Παρατήρηση: δυνατή η επικάλυψη βημάτων 3

Διοχέτευση - pipelining Κάθε έργο A, B, διαιρείται σε n δουλειές (A 1,, A n ) που εκτελούνται με τη σειρά κάθε δουλειά απαιτεί παρόμοιο χρόνο εκτέλεσης Τα έργα περνούν μέσα από n στάδια (stages) Το i- οστό στάδιο εκτελεί την i- οστή δουλειά Κάθε δουλειά εκτελείται από διαφορετικό σταθμό Εστω t i ο χρόνος εκτέλεσης της δουλειάς A i και t M =max{t i } Με γεμάτη διοχέτευση, ένα έργο τελειώνει κάθε t M Αύξηση ρυθμού εκτέλεσης έργων Καθυστέρηση ενός έργου n x t M μπορεί να είναι μεγαλύτερη από t 1 + t 2 + + t n 4

Παράδειγμα Πλύσιμο πιάτων: 5 άνθρωποι, 4 βρώμικα πιάτα ο καθένας Δουλειές: μεταφορά πιάτου στη κουζίνα 20 sec πέταγμα υπολειμάτων 30 sec πλύσιμο 30 sec στέγνωμα 30 sec αποθήκευση 40 sec Σειριακό πλύσιμο: 4x5 x (20+30+30+30+40) = 3000 = 50m ρυθμός: 150 sec το πιάτο Αν βοηθήσουν όλοι; κάθε βήμα θα παίρνει 40 sec 5

Διοχέτευση: παρατηρήσεις Ο χρόνος κάθε σταδίου πρέπει να είναι παρόμοιος (balanced pipeline) Χρειάζεται αποθήκευση (buffering) μεταξύ σταδίων για τις μικροδιαφορές του χρόνου εκτέλεσής τους Κάθε έργο περνά από όλα τα στάδια και με την ίδια σειρά Κάθε στάδιο πρέπει να έχει διαθέσιμους όλους τους πόρους που χρειάζεται για να λειτουργήσει αλλιώς δομικός κίνδυνος (structural hazard) Διακοπές προκαλούν άδειασμα της διοχέτευσης 6

Στοιχεία υπόθ. επεξεργαστή RISC, load- store, 32 general purpose registers (R 0 - R 31 ) 32bit registers, PC Ξεχωριστές Instruc on, Data caches υποθέτουμε ότι πάντα έχουν ό,τι ζητηθεί Εντολές Αριθμητικές, λογικές: R i R j op R k Το Rt μπορεί να αντικατασταθεί από μία σταθερά (immediate) Μεταφορές δεδομένων: R i Mem[R j + disp] Αλλαγή ροής: br (R op R), disp Αν η συνθήκη ισχύει, PC = PC + disp 7

Διαχωρισμός σταδίων Εξετάζουμε τη load που χρειάζεται τα περισσότερα βήματα: Fetch Decode Execute Memory access Writeback pipeline register 8

Στάδιο προσκόμισης εντολής Instruc on Fetch (IF) Ανάγνωση μνήμης στη διεύθυνση που δείχνει ο καταχωρητής PC (program counter) Υπολογισμός της διεύθυνσης επόμενης εντολής: PC+4 κάθε εντολή είναι 4 bytes μνήμη είναι διευθυνσιοδοτημένη σε bytes 9

Στάδιο αποκωδικοποίησης Instruc on decode/register fetch (ID) Αποκωδικοποίηση εντολής Ανάγνωση από το αρχείο καταχωρητών (register file) των (μέχρι) 2 καταχωρητών πηγής Επέκταση προσήμου του τμήματος offset της εντολής για εντολές με σταθερά κωδικοποιημένη μέσα στην εντολή π.χ. branch, load, store, Υπολογισμός PC σε περίπτωση διακλάδωσης: PC + sgn- ext(offset). Σημ. το PC έχει ήδη αυξηθεί κατά 4 στο προηγούμενο κύκλο Πολλές πράξεις γίνονται πρότερα, ίσως να μή χρειαστούν! 10

Στάδιο Εκτέλεσης Execu on / effec ve address (EX) Εκτέλεση αριθμητικών πράξεων ανάλογα με την εντολή Μεταφορές από μνήμη: υπολογισμός διεύθυνσης τιμή καταχωρητή + σταθερά (με επέκταση προσήμου) effec ve address = base register + offset Εντολές πράξεων ALU η ALU εκτελεί τη κατάλληλη πράξη είτε μεταξύ τιμών καταχωρητών ή μεταξύ σταθεράς και καταχωρητή. Υπολογισμός συνθήκης για εντολές διακλάδοσης 11

Στάδιο προσπέλασης μνήμης Memory access (MEM) Η διεύθυνση που έχει υπολογιστεί στο προηγούμενο κύκλο χρησιμοποιείται για προσπέλαση μνήμης Εκτέλεση εγγραφών (store) ολοκληρώνεται εδώ. 12

Στάδιο επανεγγραφής Write- back Εντολές load γράφουν τη τιμή που διαβάστηκε από τη μνήμη πίσω στο αρχείο καταχωρητών και οι εντολές ΑLU. 13

Σχηματική αναπαράσταση 14

Διοχετευμένος MIPS IF/ID ID/EX EX/MEM MEM/WB 4 ADD M u x IR 6..10 Zero? Branch taken PC Instruction memory IR IR 11..15 MEM/WB.IR isters M u x M u x ALU Data memory M u x 16 Signextend 32 15

Κίνδυνοι διοχέτευσης Αν όλες οι εντολές στη διοχέτευση ήταν ανεξάρτητες, επίδοση *= αριθμός σταδίων Καταστάσεις που εμποδίζουν μία εντολή να εκτελεστεί στο χρόνο ρολογιού που της αναλογεί κίνδυνοι hazards Δομικοί - structural hazards δεν υπάρχει αρκετό υλικό για όλους τους δυνατούς συνδιασμούς εντολών της διοχέτευσης Δεδομένων - data hazards μία εντολή εξαρτάται από το αποτέλεσμα μιας άλλης Ελέγχου - control hazards διακλαδώσεις, άλματα, κλήση- επιστροφή υπορουτίνας, διακοπές 16

Δομικοί κίνδυνοι Συμβαίνουν όταν δεν επαρκούν οι πόροι (resources) για όλους τους πιθανούς συνδιασμούς εντολών στη διοχέτευση Παράδειγμα: σε κάποιες περιπτώσεις πρέπει να επανεγγραφούν 2 αποτελέσματα στον ίδιο κύκλο αλλά το αρχείο καταχωρητών έχει μία θύρα εγγραφής Μπορούν πάντα να απαλειφθούν «πληρώνοντας» περισσότερο υλικό Αν συμβαίνουν σπάνια, το κόστος είναι μεγαλύτερο από το όφελος 17

Παράδειγμα Μία θύρα μνήμης για εντολές και δεδομένα Προσπελάσεις μνήμης (δεδομένων) 40% των εντολών CPI χωρίς stalls = 1 Συχνότητα ρολογιού επεξεργαστή με το δομικό κίνδυνο 1.05 φορές από αυτού χωρίς τον κίνδυνο AvgInstTime nohazard = CPI ClockCycle nohazard =1 ClockCycle nohazard AvgInstTime withhazard = CPI ClockCycle withhazard = (1+ 0.4 1) ClockCycle nohazard 1.05 =1.3 ClockCycle nohazard 18

Κίνδυνοι δεδομένων Συμβαίνουν λόγω εξαρτήσεων μεταξύ εντολών π.χ. μία εντολή περιμένει το αποτέλεσμα μιας προηγούμενης R 7 R 12 + R 15 R 8 R 7 - R 12 R 15 R 8 + R 7 Κίνδυνος Read- A er- Write (RAW) - R 7 (2 φορές), R 8 Κίνδυνος Write- A er- Read (WAR) - R 15 Κίνδυνος Write- A er- Write (WAW) 19

Kίνδυνοι στη διοχέτευση Time (in clock cycles) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 R 7 R 12 + R 15 IM ALU DM R 8 R 7 - R 12 IM ALU DM R 15 R 8 + R 7 IM ALU DM IM ALU IM 20

Αποφυγή κινδύνων - προώθηση Time (in clock cycles) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 R 7 R 12 + R 15 IM ALU DM R 8 R 7 - R 12 IM ALU DM R 15 R 8 + R 7 IM ALU DM R 7 IM ALU IM 21

Υλοποίηση προώθησης 22

Προώθηση - λεπτομέρειες R 10 R 4 + R 5 R 10 R 7 + R 10 R 8 R 10 + R 7 R 5 Mem[R 6 ] Mem[R 8 ] R 5 Η προώθηση πρέπει να δίνει το πιο πρόσφατο/καινούριο αποτέλεσμα βλ. 1 ο πρόγραμμα Υπάρχουν αρκετά μονοπάτια προώθησης βλ. 2 ο πρόγραμμα 23

Αναμονή - stall Time (in clock cycles) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 R 6 Mem[R 2 ] IM ALU DM R 7 R 6 + R 4 IM ALU DM IM ALU DM IM ALU IM 24

Pipeline interlocks Το προηγ. παράδειγμα είναι γνωστή, συνηθισμένη περίπτωση: load- use stall (ή hazard) Συνεπάγεται αντίστοιχη καθυστέρηση (l- u delay, penalty) Το υλικό πρέπει να ανιχνεύσει τέτοιες περιπτώσεις και να σταματήσει (stall) μέρος της διοχέτευσης για κατάλληλο αριθμό κύκλων τουλάχιστον 1 κύκλο στη περίπτωση load- use Αυτή η τεχνική λέγεται pipeline interlock 25

Αναμονή Οταν μια εντολή πρέπει να περιμένει (stall) σε ένα στάδιο διοχέτευσης για κάποιους κύκλους (όλες) οι επόμενες εντολές πρέπει επίσης να περιμένουν Δεν μπορούν να ξεκινήσουν καινούριες εντολές Οι προηγούμενες εντολές συνεχίζουν την εκτέλεσή τους αλλιώς δε θα ξαναξεκινούσε ποτέ η διοχέτευση! Δημιουργούνται κενά (bubbles) στη διοχέτευση στάδια που δεν έχουν εντολές για εκτέλεση 26

Υλοποίηση αναβολής load enable IF/ID stall ID/EX EX/MEM MEM/WB 4 ADD M u x IR 6..10 Zero? Branch taken PC Instruction memory IR IR 11..15 MEM/WB.IR isters M u x M u x ALU Data memory M u x 16 Signextend 32 27

Κίνδυνοι ελέγχου Η διοχέτευση είναι αποδοτική όταν είναι πάντα γεμάτη Αλλαγές στη ροή του προγράμματος διακόπτουν τη συνεχή ροή εντολών στη διοχέτευση και προκαλούν κινδύνους ελέγχου Εντολές που αλλάζουν τη ροή εκτέλεσης: διακλάδωση υπό συνθήκη άλμα (διακλάδωση χωρίς συνθήκη) κλήση υπορουτίνας επιστροφή υπορουτίνας 28

Διακλάδωση υπό συνθήκη Εντολή: br (Rj op Rk), displ 1. Σύγκριση: R j op R k στο στάδιο EX (ίσως στο ID, αν η σύγκριση είναι απλή) 2. αν χρειάζεται, υπολογισμός: PC + displ γίνεται πρότερα στο στάδιο ID με επιπλέον ALU 3. αν χρειάζεται, εγγραφή νέας τιμής στο PC 29

Διοχέτευση και διακλάδωση 30

Ποινή διακλάδωσης Η καθυστέρηση που προκαλεί μια διακλάδωση ονομάζεται ποινή διακλάδωσης branch penalty Ακόμα και ένας κύκλος ποινής προκαλεί απώλεια επίδοσης 10%- 30% ανάλογα με τη συχνότητα εντολών διακλάδωσης και τη κατεύθυνση που ακολουθούν Αν η απόφαση της κατεύθυνσης και ο προορισμός υπολογίζονται ταυτόχρονα στο στάδιο ID Σε άλλες αρχιτεκτονικές ή υλοποιήσεις μπορεί να υπολογίζονται σε διαφορετικούς κύκλους και αργότερα 31

Χειρισμός διακλαδώσεων Αναβολλή προσκόμισης όταν γνωρίζουμε ότι η εντολή είναι διακλάδωση: 1 κύκλο μετά! πιθανό κέρδος μόνο σε κατανάλωση ενέργειας Υπόθεση ότι δεν θα ακολουθηθεί (predict not- taken) συνέχιση προσκόμισης, μέχρι να έχουμε το αποτέλεσμα της συνθήκης ακύρωση των λάθος εντολών, αν η συνθήκη ισχύει Υπόθεση ότι θα ακολουθηθεί (predict taken) όταν γνωρίζουμε ότι η εντολή είναι διακλάδωση χρήσιμο αν ο υπολογισμός του προορισμού γίνεται πριν τον υπολογισμό της συνθήκης Καλύτερα: δυναμική πρόβλεψη θα εξεταστεί αργότερα 32

Αλλοι κίνδυνοι ελέγχου Διακοπή ροής προγράμματος από απρόβλεπτες καταστάσεις (excep ons, interrupts) π.χ. υπερχειλίσεις, page faults, διακοπές από περιφερειακά Οι διακοπές διαχειρίζονται από το Λ.Σ. με βοήθεια από το υλικό σταματά η εκτέλεση του προγράμματος τρέχει ο χειριστής διακοπών του Λ.Σ. ξαναξεκινά η εκτέλεση του προγράμματος, αν το επιτρέπει το Λ.Σ. Αποθήκευση «κατάστασης» τιμές καταχωρητών, PC Πρέπει το πρόγραμμα να μπορεί να συνεχίσει από το σημείο που διακόπηκε 33

Ακριβείς διακοπές precise excep ons Χρήσιμες για εύκολη αποθήκευση κατάστασης διεργασίας και γρήγορη εξυπηρέτησης της διακοπής. Εστω ότι η διακοπή προκαλείται από i- οστή εντολή Συνθήκες για precise excep ons: Οι προηγούμενες εντολές (i- 1, ) ολοκληρώνουν την εκτέλεσή τους και αποθηκεύουν τα αποτελέσματά τους Η εντολή i και οι επόμενες ακυρώνονται (no- op), χωρίς να έχουν αποθηκεύσει αποτελέσματα Η διεύθυνση της εντολής i κρατείται ως το PC της διεργασίας 34

Υλοποίηση precise excep ons Οταν ανιχνευθεί excep on: η εντολή που το προκαλεί παίρνει ένα σημάδι (flag) που την ακολουθεί μέχρι το τελευταίο στάδιο οι επόμενες εντολές ακυρώνονται σταματά η προσκόμιση εντολών αφήνουμε τη διοχέτευση να αδειάσει δλδ η σημαδεμένη εντολή να φτάσει στο τελευταίο στάδιο θέτουμε το excep on PC = διεύθυνση της εντολής που προκάλεσε excep on 35

Εναλλακτικές οργ. διοχέτευσης Προβλήματα της οργάνωσης που εξετάσαμε 1 κύκλος καθυστέρη load- use Αριθμητικές εντολές δεν κάνουν τίποτα στο MEM χρειάζονται forwarding paths Εναλλακτική ιδέα: 3 ο στάδιο μόνο για υπολογισμό διεύθυνσης (AG) επιπλέον αθροιστής 4 ο στάδιο για προσπέλαση μνήμης ή αριθμ. εντολές (MEM- EX) μετακίνηση της ALU στο 4 ο στάδιο 36

Βάθος διοχέτευσης Η διοχέτευση 5 σταδίων χρησιμοποιείται ελάχιστα πλέον π.χ. σε φτηνούς μικροελεγκτές Θα εξετάσουμε τα στάδια IF, ID, ΜΕΜ, WB αργότερα Το στάδιο EX περιλαμβάνει διάφορα είδη λειτουργικών μονάδων (func onal unit) γρήγορες ακέραιες αριθμητικές λογικές μονάδες αργές ακέραιες αριθμητικές μονάδες: πολλαπλασιαστές, διαιρέτες μονάδες κινητής υποδιαστολής 37

Διοχετ. λειτουργικές μονάδες Καθυστέρηση/Latency: αριθμός κύκλων που απαιτούνται μεταξύ της εντολής που παράγει ένα αποτέλεσμα και αυτής που το χρησιμοποιεί Integer ALU latency = 0! Η επόμενη εντολή μπορεί να χρησιμοποιήσει το αποτέλεσμα της προηγούμενης (με προώθηση) Γενικά είναι: βάθος διοχέτευσης (της μονάδας) - 1 Υποθέτουμε ότι η εντολή «καταναλωτής» χρειάζεται το αποτέλεσμα στο στάδιο EX. Αν το χρειάζεται στο MEM (εντολή store), η καθυστέρηση είναι 1 κύκλο μικρότερη Αν το χρειάζεται στο ID (σύγκριση για διακλάδωση) η καθυστέρηση είναι 1 κύκλο μεγαλύτερη 38

Διοχετ. λειτουργικές μονάδες Ini a on/repeat interval (μεσοδιάστημα έναρξης): αριθμός κύκλων για εκκίνηση (issue) εντολών του ίδιου τύπου (εννοείται ανεξάρτητη εντολή) Integer unit: ini a on interval = 1 - σε κάθε κύκλο μπορούμε να ξεκινήσουμε μια νέα εντολή 39

Υλοποίηση Integer unit EX M1 FP/integer multiply M2 M3 M4 M5 M6 M7 IF ID MEM WB FP adder A1 A2 A3 A4 FP/integer divider DIV 40

Επόμενη φορά Υπόβαθρο: κρυφές μνήμες (+ βοήθεια υλικού για εικονική μνήμη) 41