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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

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

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

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

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

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

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

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

Τελική Εξέταση, Απαντήσεις/Λύσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Ενότητα 6 - Σύστημα Διασωλήνωσης. Π. Ευριπίδου (2007)

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

Περιορισμοί των βαθμωτών αρχιτεκτονικών

1.1 ΑΣΚΗΣΗ ΛΥΣΗ 2.1 ΑΣΚΗΣΗ ΛΥΣΗ 3.1 ΑΣΚΗΣΗ

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

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

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

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

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

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

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

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

CS425 Computer Systems Architecture

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

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

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

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

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

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

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

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

Υπερβαθµωτή Οργάνωση Υπολογιστών

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

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

Οι τέσσερις αρχές για τον σχεδιασμό του συνόλου εντολών μιας μηχανής είναι:

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

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

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

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

Δυναμική Δρομολόγηση Εντολών (Dynamic Scheduling)

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

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

Transcript:

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης. Τελευταία τροποποίηση: 2014-2015 χειμερινό εξάμηνο.

Διοχέτευση κατ αναλογία Πλύσιμο ρούχων με διοχέτευση (pipelining laundry): εκτέλεση με επικαλύψεις (overlapping execution) Η παραλληλία βελτιώνει την απόδοση (Parallelism improves performance) Στα 4 φορτία (loads): Επίσπευση (Speedup) = 16/7 = 8/3.5 = 2.3 Ασταμάτητα (Non-stop): Επίσπευση = 4n/(n + 3) 4 ίση με τον αριθμό των σταδίων της διοχέτευσης (number of stages) 4.5 An Overview of Pipelining Chapter 4 The Processor 2

Η διοχέτευση του MIPS Πέντε στάδια (stages), ένα βήμα σε κάθε στάδιο (one step per stage) 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 (Εγγραφή αποτελέσματος σε κάποιο καταχωρητή) Chapter 4 The Processor 3

Απόδοση διοχέτευσης Υποθέστε ότι ο χρόνος των σταδίων είναι: 100ps για ανάγνωση/εγγραφή καταχωρητή 200ps για τα άλλα στάδια Σύγκριση διαδρομής δεδομένων με διοχέτευση με την διαδρομή δεδομένων ενός κύκλου Instr Instr fetch Register read ALU op Memory access Register write Total time 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 Ν.Β.: Αυτός ο υπολογισμός υποθέτει ότι οι πολυπλέκτες, η μονάδα ελέγχου, οι προσπελάσεις του PC, και η μονάδα επέκτασης προσήμου δεν έχουν καθυστέρηση. Chapter 4 The Processor 4

Απόδοση διοχέτευσης Ενός κύκλου (Single-cycle) (T c = 800ps) Με διοχέτευση (Pipelined) (T c = 200ps) Chapter 4 The Processor 5

Επίσπευση ή επιτάχυνση λόγω διοχέτευσης (Pipeline Speedup) Αν είναι ισορροπημένα όλα τα στάδια δηλαδή, διαρκούν όλα τον ίδιο χρόνο τότε: χρόνος μεταξύ εντολών με διοχέτευση = = χρόνος μεταξύ εντολών χωρίς διοχέτευση Αριθμός σταδίων Αν δεν είναι ισορροπημένα η επιτάχυνση είναι μικρότερη Έχουμε επίσπευση λόγω αυξημένης διεκπεραιωτικής ικανότητας (throughput) Η χρονική διάρκεια (latency) της κάθε εντολής δεν μειώνεται Chapter 4 The Processor 6

Διοχέτευση και σχεδίαση συνόλου εντολών Το σύνολο των εντολών του MIPS είναι σχεδιασμένο για διοχέτευση Όλες οι εντολές είναι των 32 μπιτ (4 bytes) Ευκολότερη προσκόμιση και αποκωδικοποίηση σε ένα κύκλο, σε σύγκριση με τον x86 που έχει εντολές από 1 έως 17 bytes Λίγες και κανονικές μορφές εντολών Μπορεί να αποκωδικοποιήσει και να διαβάσει καταχωρητές σε ένα βήμα Διευθυνσιοδότηση τελεστέων μνήμης μόνο σε load/store Μπορεί να υπολογίσει την διεύθυνση στο τρίτο στάδιο και να προσπελάσει τη μνήμη στο τέταρτο στάδιο Ευθυγράμμιση των τελεστέων μνήμης Η προσπέλαση μνήμης διαρκεί μόνο έναν κύκλο Chapter 4 The Processor 7

Κίνδυνοι (Hazards) Καταστάσεις που αποτρέπουν την εκκίνηση της επόμενης εντολής στον επόμενο κύκλο. Κίνδυνος δομής (Structure hazards) Ένας αναγκαίος πόρος είναι απασχολημένος Κίνδυνος δεδομένων (Data hazard) Πρέπει να περιμένει την προηγούμενη εντολή να ολοκληρώσει την ανάγνωση/εγγραφή Κίνδυνος ελέγχου (Control hazard) Η απόφαση σε μια ενέργεια ελέγχου εξαρτάται από προηγούμενη εντολή Chapter 4 The Processor 8

Κίνδυνοι δομής Διένεξη (conflict) στην χρήση ενός πόρου Στην διοχέτευση του MIPS με μια μοναδική μνήμη Οι εντολές load/store απαιτούν προσπέλαση μνήμης Η προσκόμιση εντολής πρέπει να καθυστερήσει - καθηλωθεί (stall) σε εκείνο τον κύκλο Θα προκαλούσε «φυσαλίδα» της διοχέτευσης (pipeline bubble ) Έτσι, οι διαδρομές δεδομένων με διοχέτευση απαιτούν ξεχωριστές μνήμες εντολών / δεδομένων Ή ξεχωριστές κρυφές μνήμες εντολών / δεδομένων (instruction/data caches) Chapter 4 The Processor 9

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

Προώθηση Forwarding (aka Bypassing) Γνωστό και ως Παράκαμψη (Bypassing) Χρήση του αποτελέσματος όταν δημιουργηθεί Μην περιμένεις να αποθηκευτεί σε καταχωρητή Απαιτεί επιπλέον συνδέσεις στην διαδρομή των δεδομένων Chapter 4 The Processor 11

Κίνδυνος δεδομένων Φόρτωσης Χρήσης (Load-Use Data Hazard) Δεν μπορούμε πάντοτε να αποφεύγουμε τις καθυστερήσεις με την προώθηση Αν η τιμή δεν έχει υπολογιστεί όταν χρειάζεται Δεν μπορούμε να κάνουμε προώθηση προς τα πίσω στον χρόνο! Chapter 4 The Processor 12

Χρονοπρογραμματισμός κώδικα για αποφυγή καθυστερήσεων (Code Scheduling to Avoid Stalls) Αναδιάταξη κώδικα για αποφυγή χρήσης του αποτελέσματος της load στην επόμενη εντολή Κώδικας σε C για: A = B + E; C = B + F; stall stall 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 cycles 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 cycles Chapter 4 The Processor 13

Κίνδυνοι ελέγχου (Control Hazards) Η διακλάδωση καθορίζει την ροή του ελέγχου (flow of control) Η προσκόμιση της επόμενης εντολής εξαρτάται από το αποτέλεσμα της διακλάδωσης Η διοχέτευση δεν μπορεί να προσκομίζει πάντα την σωστή εντολή Ακόμα δουλεύει στο στάδιο ID της διακλάδωσης Στη διοχέτευση του MIPS Πρέπει να συγκρίνει καταχωρητές και να υπολογίσει την διεύθυνση προορισμού νωρίς στην διοχέτευση Προσθήκη υλικού για να το κάνει στο στάδιο ID Chapter 4 The Processor 14

Καθυστέρηση σε διακλάδωση Περίμενε μέχρι να καθοριστεί το αποτέλεσμα της διακλάδωσης πριν προσκομίσεις την επόμενη εντολή Chapter 4 The Processor 15

Πρόβλεψη διακλάδωσης (Branch Prediction) Οι μεγαλύτερες διοχετεύσεις (longer pipelines) δεν μπορούν να καθορίσουν εγκαίρως το αποτέλεσμα της διακλάδωσης Η ποινή καθυστέρησης (stall penalty) γίνεται υπερβολικά μεγάλη (μη αποδεκτή - unacceptable) Πρόβλεψη του αποτελέσματος της διακλάδωσης Καθυστέρηση μόνο αν η πρόβλεψη είναι λανθασμένη Στην διοχέτευση του MIPS Μπορεί να γίνει πρόβλεψη μη λήψης της διακλάδωσης (Can predict branches not taken) Προσκόμιση της εντολής μετά την διακλάδωση, χωρίς καθόλου καθυστέρηση Chapter 4 The Processor 16

MIPS με πρόβλεψη μη λήψης (Predict Not Taken) Prediction correct Prediction incorrect Chapter 4 The Processor 17

Πιο ρεαλιστική πρόβλεψη διακλάδωσης Στατική πρόβλεψη διακλάδωσης Βασισμένη στην τυπική συμπεριφορά των διακλαδώσεων Παράδειγμα: διακλαδώσεις σε βρόχους και εντολές if Πρόβλεψη διακλαδώσεων προς τα πίσω (backward branches) ως λαμβανόμενες Πρόβλεψη διακλαδώσεων προς τα εμπρός (forward branches) ως μη λαμβανόμενες Δυναμική πρόβλεψη διακλάδωσης Το υλικό μετράει την πραγματική συμπεριφορά διακλαδώσεων π.χ. μετράει την πρόσφατη ιστορία κάθε διακλάδωσης Υποθέτει ότι η μελλοντική συμπεριφορά θα συνεχίσει την τάση Σε περίπτωση λάθους, καθυστερεί (stall) ενόσω επαναπροσκομίζει και ενημερώνει το ιστορικό Chapter 4 The Processor 18

Περίληψη διοχέτευσης The BIG Picture Η διοχέτευση βελτιώνει την απόδοση με την αύξηση της διεκπεραιωτικής ικανότητας (throughput) σε εντολές Εκτελεί πολλές εντολές παράλληλα Κάθε εντολή έχει τον ίδιο λανθάνοντα χρόνο (διάρκειαlatency) Υπόκειται σε κινδύνους Δομής, δεδομένων, ελέγχου Η σχεδίαση του συνόλου των εντολών επιδρά στην πολυπλοκότητα της υλοποίησης της διοχέτευσης Chapter 4 The Processor 19

Διαδρομή δεδομένων MIPS με διοχέτευση 4.6 Pipelined Datapath and Control MEM Right-to-left flow leads to hazards WB Chapter 4 The Processor 20

Καταχωρητές διοχέτευσης Χρειάζονται καταχωρητές ανάμεσα στα στάδια Για να κρατήσουν πληροφορίες που παράχθηκαν στον προηγούμενο κύκλο Chapter 4 The Processor 21

Πλάνες Η διοχέτευση είναι εύκολη (!) Η βασική ιδέα είναι εύκολη Ο διάβολος κρύβεται στις λεπτομέρειες π.χ., ανίχνευση κινδύνων δεδομένων Η διοχέτευση είναι ανεξάρτητη από την τεχνολογία Τότε γιατί δεν κάναμε πάντα διοχέτευση; Τα περισσότερα τρανζίστορ κάνουν εφικτές τις πιο προηγμένες τεχνικές Chapter 4 The Processor 22

Παγίδες Η φτωχή σχεδίαση της αρχιτεκτονικής συνόλου εντολών μπορεί να κάνει δυσκολότερη τη διοχέτευση π.χ., πολύπλοκα σύνολα εντολών (VAX, IA-32) Σημαντική επιβάρυνση για να δουλέψει η διοχέτευση Προσέγγιση του IA-32 με μικρολειτουργίες (micro-ops) π.χ., πολύπλοκοι τρόποι διευθυνσιοδότησης Παρενέργειες ενημέρωσης καταχωρητών, εμμεσότητα μνήμης π.χ., καθυστερημένες διακλαδώσεις Οι προηγμένες διοχετεύσεις έχουν μεγάλες υποδοχές καθυστέρησης Chapter 4 The Processor 23

Στο επόμενο μάθημα θα συζητήσουμε τις απορίες σας, εφ όλης της ύλης, και θα λύσουμε ασκήσεις στον πίνακα. Υ.Γ.1: Σας υπενθυμίζω ότι κατά την εξέταση της θεωρίας οφείλετε να παραδώσετε το τετράδιο ασκήσεων. Υ.Γ.2: Για σύντομες απορίες στείλτε e-mail στην διεύθυνση npet@chania.teicrete.gr ή διαφορετικά ελάτε στο γραφείο 5. Καλή μελέτη