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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήµιο Θεσσαλίας

Pipelined Datapath, Hazards and Forwarding

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

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

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής. Αρχιτεκτονική Υπολογιστών. 3ο Μάθημα

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

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

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

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

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

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

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

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

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

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

Transcript:

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

Απόδοση απλής υλοποίησης Υλοποίηση ενός κύκλου είναι πολύ αργή κάθε κύκλος είναι τόσο μεγάλος όσο χρειάζεται η πιο αργή εντολή lw: ανάγνωση καταχωρητών, άθροισμα, προσπέλαση μνήμης, εγγραφή σε καταχωρητή Δεν μπορούμε να μεταβάλουμε το κύκλο ρολογιού ανά εντολή Μπορούμε να σπάσουμε την εκτέλεση σε μικρότερα βήματα και να επικαλύψουμε την εκτέλεση διαφορετικών εντολών διοχέτευση - pipeline ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 2

Ιδανική διοχέτευση στάδιο 1 στάδιο 2 στάδιο 3 στάδιο 4 Ολες οι εντολές περνούν από όλα τα στάδια Κανένας πόρος δεν μοιράζεται μεταξύ σταδίων Η καθυστέρηση κάθε σταδίου είναι ίδια Ο χρονοπρογραμματισμός μιας εντολής που εισέρχεται δεν εξαρτάται από εντολές σε άλλα στάδια ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 3

Απόδοση Χωρίς διοχέτευση Inst 1 Inst 2 Inst 3 n εντολές, n κύκλοι, CPI=1 Με διοχέτευση Inst 1 Inst 2 Inst 3 n εντολές, περίπου n κύκλοι, CPI=1 Το (ιδανικό) CPI δεν αλλάζει! αν και μας παίρνει 5 κύκλους να εκτελέσουμε μια εντολή, ολοκληρώνουμε την εκτέλεση μιας εντολής σε κάθε κύκλο Ο κύκλος ρολογιού γίνεται μικρότερος ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 4

Ιδιότητες διοχέτευσης Η διοχέτευση δεν βελτιώνει την καθυστέρηση (χρόνο εκτέλεσης) μιας εντολής, βελτιώνει το ρυθμό εκτέλεσης ολόκληρου του προγράμματος Δυνητική επιτάχυνση = αριθμός σταδίων διοχέτευσης Ο χρόνος γεμίσματος/αδειάσματος της διοχέτευσης μειώνει την απόδοση Ο κύκλος ρολογιού καθορίζεται από το πιο αργό στάδιο άρα τα στάδια πρέπει να είναι ισοροπημένα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 5

Υποθέσεις Υποθέτουμε ότι ο χρόνος προσπέλασης μνήμης (εντολές, δεδομένα) είναι σχεδόν ίσος με το χρόνο της πιο αργής πράξης στην ALU έχουμε (μικρές) κρυφές μνήμες στην πραγματικότητα οι κρυφές μνήμες είναι διοχετευμένες και παίρνουν λίγους κύκλους ρολογιού για να επιστρέψουν τα δεδομένα Το αρχείο καταχωρητών είναι επίσης μια μνήμη (SRAM) με 2 θύρες ανάγνωσης, 1 εγγραφής υποθέτουμε ότι οι εγγραφές γίνονται στο πρώτο μισό του κύκλου ρολογιού και οι αναγνώσεις στο δεύτερο μισό εγγραφή και ανάγνωση του ίδιου καταχωρητή στον ίδιο κύκλο, επιστρέφει την καινούρια τιμή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 6

Διοχέτευση στον MIPS 0x4 PC Add addr rdata Inst. Memory we rs1 rs2 rd1 wa wd rd2 GPRs Imm Select ALU we addr rdata Data Memory wdata fetch decode & Regread execute memory write -back 1. IF: προσκόμηση εντολής από τη μνήμη (fetch) 2. ID: αποκωδικοποίηση και ανάγνωση καταχωρητών 3. EX: Εκτέλεση εντολής ή υπολογισμός διεύθυνσης 4. MEM: προσπέλαση μνήμης (δεδομένων) 5. WB: εγγραφή αποτελέσματος πίσω σε καταχωρητή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 7

Διοχέτευση MIPS ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 8

Παράδειγμα Load, Store, ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 9

Load, Store, στάδιο ID ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 10

Load, στάδιο EX ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 11

Load στάδιο MEM ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 12

Load στάδιο WB Λάθος αριθμός καταχωρητή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 13

Διορθωμένο datapath ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 14

Κύκλωμα ελέγχου Το στάδιο ID παράγει τα σήματα ελέγχου και αυτά δρομολογούνται μέσω των καταχωρητών διοχέτευσης στον προορισμό τους ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 15

Αναπαράσταση διοχέτευσης time t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 instruction1 IF 1 ID 1 EX 1 MA 1 WB 1 instruction2 IF 2 ID 2 EX 2 MA 2 WB 2 instruction3 IF 3 ID 3 EX 3 MA 3 WB 3 instruction4 IF 4 ID 4 EX 4 MA 4 WB 4 instruction5 IF 5 ID 5 EX 5 MA 5 WB 5 ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 16

Χρησιμότητα σταδίων Εντολές που δεν προσπελαύνουν τη μνήμη (αριθμητικές, διακλαδώσεις,...) δεν κάνουν τίποτα στο στάδιο MEM Είναι πρόβλημα/μπορεί να γίνει γρηγορότερα; Αν επιτρέπαμε εγγραφές σε καταχωρητές και στο στάδιο MEM και στο WB, όταν και τα δύο στάδια θέλουν να γράψουν,... είτε χρειάζονται 2 θύρες εγγραφής: $$$, ίσως ρολόι είτε ένας από τους δύο θα πρέπει να περιμένει: ταχύτητα # ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 17

Αληλεπίδραση εντολών Η διοχέτευση στους επεξεργαστές δεν είναι εύκολη! Μια εντολή μπορεί να χρειάζεται έναν πόρο που χρησιμοποιεί μια άλλη εντολή σε ένα άλλο στάδιο δομικός κίνδυνος (structural hazard) Μια εντολή μπορεί να εξαρτάται από κάτι που παράγει μια προηγούμενη εντολή: τιμή δεδομένων κίνδυνος δεδομένων (data hazard) διεύθυνση εντολής κίνδυνος ελέγχου (control hazard) διακλαδώσεις, άλματα, ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 18

Επίλυση δομικών κινδύνων Συμβαίνουν όταν δύο εντολές χρειάζονται το ίδιο πόρο ταυτόχρονα π.χ. το πρόβλημα με εγγραφές στο αρχείο καταχωρητών από στάδια WB, MEM Κάποια εντολή πρέπει να περιμένει μέχρι η άλλη να μη χρειάζεται τον πόρο Ποιά; Η παλιά ή η νέα; Αν μπορούμε να «ξοδέψουμε» περισσότερο υλικό, μπορούμε πάντα να επιλύσουμε δομικούς κινδύνους π.χ. 2 η θύρα εγγραφής Το διοχετευμένο σχέδιο του MIPS δεν έχει δομικούς κινδύνους ο MIPS έχει σχεδιαστεί για διοχέτευση ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 19

Κίνδυνοι δεδομένων add $s0, $t0, $t1 sub $t2, $s0, $t3 Προκύπτουν από εξαρτήσεις εντολών όπου μια εντολή παράγει τα δεδομένα που μια επόμενη εντολή χρειάζεται και είναι κοντά μεταξύ τους $t2<=$s0-$t3! $s0<=$t0+$t1! ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 20

Επίλυση κινδύνων δεδομένων Μέθοδος πρώτη (interlock): καθυστερούμε την εντολή που χρειάζεται τα δεδομένα τόσο όσο χρειάζεται η εντολή που τα παράγει για να γράψει τα αποτελέσματά της στο αρχείο καταχωρητών Αγγλικός όρος καθυστέρηση - stall όλες οι επόμενες εντολές καθυστερούν επίσης! Πώς γίνεται η καθυστέρηση: η εντολή δεν προχωράει στο επόμενο στάδιο μέχρι να έχει πάρει την τελευταία τιμή (στο MIPS μένει στο στάδιο ID) Στο επόμενο στάδιο εισάγουμε μια φούσκα (bubble) στη θέση που θα έπαιρνε η εξαρτημένη εντολή η φούσκα πρέπει να μη γράφει κανένα στοιχείο μνήμης! ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 21

Αναπαράσταση καθυστέρησης time t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 add $s0,$t0,$t1 IF 1 ID 1 EX 1 MA 1 WB 1 sub $t2,$s0,$t3 IF 2 ID 2 ID 2 ID 2 EX 2 MA 2 WB 2 instruction3 IF 3 IF 3 IF 3 ID 3 EX 3 MA 3 WB 3 instruction4 IF 4 ID 4 EX 4 MA 4 WB 4 instruction5 IF 5 ID 5 EX 5 MA 5 WB 5 Θεωρούμε ότι εγγραφή- ανάγνωση στον ίδιο κύκλο μέσω αρχείου καταχωρητών μεταφέρει τις νέες τιμές. αλλιώς χρειάζεται ένας ακόμη κύκλος καθυστέρησης ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 22

Υλοποίηση interlock FB 1 FB 2 FB 3 FB 4 stage 1 stage 2 stage 3 stage 4 Προχωρημένα στάδια δίνουν πληροφορίες σε προηγούμενα στάδια για ανίχνευση εξαρτήσεων ειδικά σήματα στους καταχωρητές για stall Οι εντολές σε προχωρημένα στάδια δεν εξαρτώνται από εντολές σε προηγούμενα στάδια γενικά ισχύει σε ένα πρόγραμμα, αλλά μπορεί να υπάρχουν σε επεξεργαστές με δομικούς κινδύνους ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 23

Υλοποίηση MIPS, στάδιο ID stall NOT loadenable loadenable No-op instruction 0 1 M U X ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 24

Υλοποίηση λογικής ελέγχου Συγκρίνουμε τους καταχωρητές πηγής (rs, rt) στο στάδιο ID με τους καταχωρητές προορισμού (rd) των επόμενων σταδίων εκτός από το WB, γιατί οι τιμές μεταφέρονται αυτόματα μέσω του αρχείου καταχωρητών Συγκρίνουμε «διευθύνσεις»/αριθμούς καταχωρητών Αν κάποιοι καταχωρητές προρισμού είναι ίδιοι με οποιονδήποτε καταχωρητή πηγής, καθυστερούμε την εντολή στο στάδιο ID και την επόμενη στο ID και εισάγουμε «φούσκες» Οταν η εντολή που παράγει το αποτέλεσμα φτάσει στο στάδιο WB, οι συγκρίσεις μας θα βγάλουν λογικό 0 και θα συνεχίσουμε την εκτέλεση ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 25

Interlocked MIPS NOT loadenable stall ex_destreg mem_destreg loadenable No-op instruction 0 1 M U X ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 26

Λογική ελέγχου 2 Δεν γράφουν όλες οι εντολές αποτελέσματα σε καταχωρητή π.χ. sw, διακλαδώσεις (εκτός από jal) οι ex/mem_destreg περιέχουν σκουπίδια! Ο καταχωρητής $zero αγνοεί εγγραφές! add $zero, $s1, $s2 # nop!! add $t0, $zero, $zero # clear t0! Η εντολή στο στάδιο ID, δεν έχει πάντα 2 καταχωρητές πηγής πχ lw, sw, addi, Πρέπει να πιάνουμε αυτές τις περιπτώσεις η λογική ελέγχου πρέπει να κοιτάει και την εντολή σε κάθε στάδιο ή, καλύτερα, χρειάζεται ένα επιπλέον bit που δηλώνει ότι μια εντολή πράγματι γράφει αποτέλεσμα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 27

Επίλυση κινδύνων δεδομένων Μέθοδος δεύτερη: προώθηση forwarding (bypassing) Δεν χρειάζεται να περιμένουμε την εγγραφή στο αρχείο καταχωρητών Μεταφέρουμε τα δεδομένα απευθείας από την έξοδο του σταδίου που τα παράγει στο στάδιο που τα διαβάζει/ χρειάζεται Γενικά δύο τρόποι από την έξοδο της μονάδας που παράγει το αποτέλεσμα (πχ ALU) στον κατάλληλο καταχωρητή διοχέτευσης (π.χ. ID/EX rsval), μέσω κατάλληλου πολυπλέκτη από τον καταχωρητή διοχέτευσης που κρατάει το αποτέλεσμα (πχ EX/MEM aluout) στην είσοδο της μονάδας που χρειάζεται την τιμή (opa) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 28

Αναπαράσταση προώθησης time t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 add $s0,$t0,$t1 IF 1 ID 1 EX 1 MA 1 WB 1 sub $t2,$s0,$t3 IF 2 ID 2 EX 2 MA 2 WB 2 instruction3 IF 3 ID 3 EX 3 MA 3 WB 3 instruction4 IF 4 ID 4 EX 4 MA 4 WB 4 instruction5 IF 5 ID 5 EX 5 MA 5 WB 5 Κερδίζουμε χρόνο: αποφεύγονται κύκλοι καθυστέρησης Προσοχή ο χρόνος κύκλου μπορεί να αυξηθεί: επιπλέον πολυπλέκτες και μακρυά καλώδια, χρόνος κυκλώματος ελέγχου ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 29

Διάγραμμα προώθησης ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 30

Υλοποίηση προώθησης ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 31

Λογική ελέγχου προώθησης Παράμοια με τη λογική ελέγχου καθυστέρησης Οι έξοδοι οδηγούν τους πολυπλέκτες προώθησης πριν την ALU στο παράδειγμά μας Συγκρίσεις καταχωρητών πηγής και προορισμού προσοχή σε λεπτομέρειες: $zero, Διπλός κίνδυνος. Παράδειγμα: add $1,$1,$2 add $1,$1,$3 add $1,$1,$4 Πρέπει να πάρουμε την πιο πρόσφατη τιμή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 32

Καθυστερήση - προώθηση Ακόμα και αν υλοποιήσουμε προώθηση δεδομένων, μπορεί να χρειαστεί να καθυστερήσουμε μια εντολή Στον MIPS αυτό συμβαίνει όταν μετά από μία load ακολουθεί μια εντολή που χρησιμοποιεί την τιμή κίνδυνος φόρτωσης- χρήσης, load- use data hazard ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 33

Παράδειγμα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 34

Αποφυγή καθυστερήσεων Ο μεταφραστής μπορεί να αλλάξει τη σειρά εντολών (scheduling) ώστε να αποφύγει καθυστερήσεις πρέπει να γνωρίζει λεπτομέρειες υλοποίησης! 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 ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 35

Κίνδυνοι ελέγχου Η διεύθυνση της επόμενης εντολής είναι τις πιο πολλές φορές PC+4 Αλλά όχι πάντα! εντολές διακλάδωσης, άλματα Το πρόβλημα είναι ότι όταν ξεκινάει ένας κύκλος ρολογιού πρέπει να έχουμε ήδη έτοιμο το PC για να ξεκινήσουμε την ανάγνωση της μνήμης εντολών Δεν υπάρχει χρόνος να «δούμε» πρώτα την εντολή που ξεκινάει στο στάδιο ID και να ελέγξουμε ότι δεν είναι διακλάδωση ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 36

Χρονισμός προσκόμισης Θα μπορούσαμε να περιμένουμε έναν (δύο για διακλαδώσεις) κύκλο και μετά να φέρουμε τη σωστή εντολή Χάνουμε τις μισές θέσεις διοχέτευσης για «φούσκες»! Θα προσκομίζουμε από τη μνήμη κάθε δεύτερο κύκλο Αντίθετα προτιμάμε να φέρουμε την αμέσως επόμενη εντολή, υποθέτωντας ότι είναι η σωστή εντολή για προσκόμιση εικασία, specula on Οταν κάνουμε λάθος, πρέπει να διαγράψουμε (flush, kill) όλες της εντολές που ακολουθούν την εντολή διακλάδωσης/άλματος ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 37

Ακύρωση εντολής μετά από άλμα Για να ακυρώσουμε μια εντολή που προσκομίζεται σ αυτόν το κύκλο, στο στάδιο IF, τοποθετούμε ένα πολυπλέκτη πριν τον καταχωρητή εντολής squash nop 1 M U X 0 ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 38

Αναπαράσταση άλματος time t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 add $s0,$t0,$t1 IF 1 ID 1 EX 1 MA 1 WB 1 jump X IF 2 ID 2 EX 2 MA 2 WB 2 instruction3 IF 3 -- -- -- -- x instruct IF 4 ID 4 EX 4 MA 4 WB 4 x+1 instruct IF 5 ID 5 EX 5 MA 5 WB 5 ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 39

Διακλαδώσεις Στις διακλαδώσεις υπάρχει μεγαλύτερη καθυστέρηση για τον καθορισμό της επόμενης εντολής που θα εκτελεστεί Υπολογισμός διεύθυνσης χρειάζεται πρόσθεση PC+4 με σταθερά Σύγκριση χρειάζεται αφαίρεση τιμών 2 καταχωρητών Το αποτέλεσμα είναι γνωστό στο τέλος του σταδίου EX άρα υπάρχουν ήδη 2 εντολές στη διοχέτευση Αν δεν ακολουθήσουμε τη διακλάδωση δεν κάνουμε τίποτα Αλλιώς πρέπει να ακυρώσουμε τις εντολές στα στάδια IF, ID και να θέσουμε τον PC στη κατάλληλη τιμή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 40

Υλοποίηση διακλαδώσεων taken flush flush Προσοχή: σήματα καθυστέρησης (stall) στο στάδιο ID, δεν ισχύουν γιατί η εντολή στο ID είναι άκυρη! ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 41

Αναπαράσταση διακλάδωσης time t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 add $s0,$t0,$t1 IF 1 ID 1 EX 1 MA 1 WB 1 jump X IF 2 ID 2 EX 2 MA 2 WB 2 instruction3 IF 3 ID 3 -- -- -- instruction4 IF 4 -- -- -- -- x instruct IF 5 ID 5 EX 5 MA 5 WB 5 ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 42

Μείωση της ποινής διακλάδωσης Οι κύκλοι που χάνονται όταν μια διακλάδωση γίνει, λέγεται ποινή διακλάδωσης (branch penalty) Στον MIPS, μπορεί να μειωθεί κατά 1 κύκλο αν μεταφερθεί η σύγκριση ισότητας/ανισότητας στο στάδιο ID ένας συγκριτής ισότητας είναι πιο απλός (και πιο γρήγορος) από έναν αφαιρέτη αυτός ήταν ο λόγος που οι διακλαδώσεις στο MIPS κάνουν μόνο συκρίσεις ισότητας ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 43

Υλοποίηση ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 44

Κίνδυνοι δεδομένων σε διακλαδώσεις Αν οι τιμές των καταχωρητών παράγονται 2-3 εντολές μακριά, μπορεί να γίνει προώθηση add $1, $2, $3 IF ID EX MEM WB add $4, $5, $6 IF ID EX MEM WB IF ID EX MEM WB beq $1, $4, target IF ID EX MEM WB ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 45

Κίνδυνοι δεδομένων σε διακλαδώσεις Αν οι τιμές παράγονται από load 2 εντολές πριν ή ALU εντολή 1 θέση πρίν, η διακλάδωση πρέπει να καθυστερήσει 1 κύκλο lw $1, addr IF ID EX MEM WB add $4, $5, $6 IF ID EX MEM WB beq stalled IF ID beq $1, $4, target ID EX MEM WB ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 46

Κίνδυνοι δεδομένων σε διακλαδώσεις Αν μια τιμή παράγεται από load στην αμέσως προηγούμενη θέση, η διακλάδωσει καθυστερεί για 2 κύκλους lw $1, addr IF ID EX MEM WB beq stalled IF ID beq stalled ID beq $1, $0, target ID EX MEM WB ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 47