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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 14 Εισαγωγή στην Ιεραρχία Μνήμης

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CS425 Computer Systems Architecture

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

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

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

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 4 ο ΜΕΔ πολλαπλών κύκλων

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

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

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

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

Transcript:

ΗΥ 3 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη Προώθηση (Forwarding) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων (HY3)

Η μέχρι τώρα μικρο-αρχιτεκτονική του MIPS ID/EX PCSrc Control WB M EX/MEM WB MEM/WB 4 IF/ID EX M WB Add P C << Add address Instruction [3-] register register data data ALU Zero Result Mem Address Instruction register data isters ALUSrc ALUOp data Data data MemTo Instr [5 - ] Instr [ - 6] Instr [5 - ] Sign extend Dst Mem (HY3)

Διάγραμμα Διοχέτευσης Κύκλοι μηχανής 3 4 5 6 7 8 9 lw $8, 4($9) IF ID EX MEM WB sub $, $4, $5 IF ID EX MEM WB CPI = and $9, $, $ IF ID EX MEM WB or $6, $7, $8 IF ID EX MEM WB add $3, $4, $ IF ID EX MEM WB Η μικρο-αρχιτεκτονική που έχουμε αναλύσει μέχρι τώρα δείχνει μια απλουστευμένη κατάσταση. Κάθε εντολή χρειάζεται 5 κύκλους εκτέλεσης. Μία εντολή ξεκινάει σε κάθε κύκλο μηχανής Μία εντολή τερματίζει σε κάθε κύκλο μηχανής (CPI=) (HY3) 3

Η σειρά των εντολών είναι πολύ απλή : lw $8, 4($9) 4: sub $, $4, $5 8: and $9, $, $ : or $6, $7, $8 6: add $3, $4, $ Έχουμε κάνει κάποιες παραδοχές για την ακολουθία των εντολών που δυστυχώς δεν ισχύουν πάντα Δεν υπάρχει εξάρτηση μεταξύ των δεδομένων που γράφει μια εντολή και των δεδομένων που μια επόμενη εντολή διαβάζει. Αυτό είναι ιδανική περίπτωση και δεν συμβαίνει συχνά Πολλές ακολουθίες αποτελούνται από εξαρτημένες εντολές (HY3) 4

Παράδειγμα με εξαρτημένες εντολές sub $, $, $3 and $, $, $5 or $3, $6, $ add $4, $, $ sw $5, ($) H πρώτη εντολή (sub)γράφει στον καταχωρητή $ Ο καταχωρητής $ χρησιμοποιείται από εκεί και πέρα ως είσοδος στις επόμενες εντολές Αυτό δεν είναι πρόβλημα στην υλοποίηση ενός κύκλου. Κάθε εντολή εκτελείται σε ένα κύκλο και η επόμενη παίρνει τα δεδομένα κανονικά από τον καταχωρητή $ Αλλά τι ακριβώς συμβαίνει στην μικρο-αρχιτεκτονική διοχέτευσης; (HY3) 5

Κίνδυνος Δεδομένων (Data Hazards) Κύκλοι μηχανής 3 4 5 6 7 8 9 sub $, $, $3 IF ID EX MEM WB and $, $, $5 IF ID EX MEM WB or $3, $6, $ IF ID EX MEM WB add $4, $, $ IF ID EX MEM WB sw $5, ($) IF ID EX MEM WB H εντολή sub γράφει στον καταχωρητή $ στον κύκλο 5. Αυτό δημιουργεί data hazards στην μικρο-αρχιτεκτονική διοχέτευσης. H εντολή and διαβάζει τον καταχωρητή $ στον κύκλο 3. Αφού η εντολή sub δεν έχει ακόμα γράψει τον $, η and θα διαβάσει τα παλιά δεδομένα του καταχωρητή $ H εντολή or διαβάζει τον καταχωρητή $ στον κύκλο 4, παίρνοντας επίσης την παλιά του τιμή. Από εκεί και πέρα τα πράγματα δουλεύουν εντάξει. Οι επόμενες δύο εντολές εκτελούνται όταν η sub τελειώσει (HY3) 6

Κίνδυνος Δεδομένων (Data Hazards) Κύκλοι μηχανής 3 4 5 6 7 8 9 sub $, $, $3 IF ID EX MEM WB and $, $, $5 IF ID EX MEM WB or $3, $6, $ IF ID EX MEM WB add $4, $, $ IF ID EX MEM WB sw $5, ($) IF ID EX MEM WB Τα βέλη δείχνουν την ροή των δεδομένων μεταξύ των εντολών Η αρχή του βέλους δείχνει πότε γράφεται ο καταχωρητής $ Το τέλος του βέλους δείχνει πότε διαβάζεται ο καταχωρητής $ Όταν ένα βέλος δείχνει πίσω στον χρόνο αυτό σημαίνει ότι υπάρχει κίνδυνος δεδομένων (data hazard). Κόκκινα βέλη στο σχήμα (HY3) 7

Ακόμα ένα διάγραμμα Κύκλοι μηχανής 3 4 5 6 7 89 sub $, $, $3 and $, $, $5 or $3, $6, $ add $4, $, $ sw $5, ($) (HY3) 8

Κίνδυνοι δεδομένων Είναι αναγκαίο να απαλειφθούν οι κίνδυνοι δεδομένων ώστε οι εντολές and και or να χρησιμοποιήσουν την πραγματική τιμή του καταχωρητή $. Αλλιώς η μικρο-αρχιτεκτονική μας είναι λάθος Πότε ακριβώς δημιουργείται η νέα τιμή του καταχωρητή $ από την εντολή sub; Στο τέλος του σταδίου EX στον κύκλο 3 Πότε ακριβώς χρειάζεται η νέα τιμή του καταχωρητή $ από την εντολές and και or; Στο στάδιο EX στους κύκλους 4 και 5 Clock cycle 3 4 5 6 7 sub $, $, $3 IF ID EX MEM WB and $, $, $5 IF ID EX MEM WB or $3, $6, $ IF ID EX MEM WB (HY3) 9

Προώθηση δεδομένων (Forwarding) Το αποτέλεσμα $-$3 υπολογίζεται στο τέλος του σταδίου EX στον κύκλο 3 πριν χρειαστεί στους κύκλους 4 και 5 Προωθούμε αυτό το αποτέλεσμα στις επόμενες εντολές με την χρήση των καταχωρητών διοχέτευσης: Η and λαμβάνει την τιμή $-$3 από τον καταχωρητή διοχέτευσης EX/MEM στον κύκλο 4. Η or λαμβάνει την τιμή $-$3 από τον καταχωρητή διοχέτευσης MEM/WB στον κύκλο 5. Κύκλος μηχανής 3 4 5 6 7 sub $, $, $3 and $, $, $5 or $3, $6, $ (HY3)

Προώθηση δεδομένων (Forwarding) Οι καταχωρητές διοχέτευσης IF/ID, ID/EX, EX/MEM, MEM/WB χρησιμεύουν: για να αποθηκεύουν ενδιάμεσα αποτελέσματα στο τέλος κάθε σταδίου, ΚΑΙ για να προωθούν δεδομένα στις αμέσως επόμενες εντολές πριν αυτά τα δεδομένα γραφούν σε καταχωρητές IF/ID ID/EX EX/MEM MEM/WB PC ALU output available here Instruction isters ALU Data Rt Rd (HY3)

Μονάδα Προώθησης (Forwarding Unit) Η μονάδα προώθησης επιλέγει σε κάθε κύκλο μηχανής την σωστή είσοδο της ALU στο στάδιο EX: Εάν δεν υπάρχει κίνδυνος δεδομένων, οι είσοδοι της ALU προέρχονται από τους καταχωρητές, όπως έχουμε δει Εάν υπάρχει κίνδυνος δεδομένων, ένας ή δύο είσοδοι προέρχονται από τους καταχωρητές διοχέτευσης EX/MEM ή MEM/WB Δύο νέοι πολυπλέκτες χρησιμοποιούνται (ForwardA και ForwardB) για να επιλέξουν τις εισόδους της ALU sub $, $, $3 and $, $, $5 or $3, $6, $ (HY3)

Datapath με προώθηση δεδομένων IF/ID ID/EX EX/MEM MEM/WB PC Instruction isters ForwardA ALU Data Rt Rd ForwardB (HY3) 3

Καθορισμός κινδύνων δεδομένων EX/MEM Πως καθορίζουμε ότι υπάρχει κίνδυνος δεδομένων; Ποιος είναι ο μηχανισμός που χρησιμοποιεί το hardware για να το ανακαλύψει; Κίνδυνος δεδομένων EX/MEM υφίσταται μεταξύ μιας εντολής στο στάδιο EX (and) και της αμέσως προηγούμενης εντολής (sub), εφόσον:. Η αμέσως προηγούμενη εντολή (sub) γράφει σε κάποιον καταχωρητή, και. αυτός ο καταχωρητής είναι είσοδος στην ALU της εντολής (and) στο στάδιο EX. Ο συμβολισμός ID/EX.isterRt σημαίνει το πεδίο rt στον καταχωρητή διοχέτευσης ID/EX. sub $, $, $3 and $, $, $5 (HY3) 4

Εξισώσεις EX/MEM Εξίσωση για την πρώτη είσοδο της ALU if (EX/MEM. = and EX/MEM.isterRd!= and EX/MEM.isterRd = ID/EX.isterRs) then ForwardA = Εξίσωση για την δεύτερη είσοδο της ALU if (EX/MEM. = and EX/MEM.isterRd!= and EX/MEM.isterRd = ID/EX.isterRt) then ForwardB = sub $, $, $3 and $, $, $5 (HY3) 5

Καθορισμός κινδύνων δεδομένων ΜΕΜ/WB Κίνδυνος δεδομένων MEM/WB μπορεί να υφίσταται μεταξύ μιας εντολής στο στάδιο EX (sub) και μιας εντολής δύο κύκλους πριν (add). Ένα ενδιαφέρον πρόβλημα είναι να γράφουμε έναν καταχωρητή σε διαδοχικές εντολές add $, $, $3 add $, $, $4 sub $5, $5, $ Ο καταχωρητής $ γράφεται από δύο διαδοχικές εντολές. Η τρίτη εντολή (sub) πρέπει να χρησιμοποιήσει τα δεδομένα της εντολής αμέσως από πάνω (δεύτερη add) add $, $, $3 add $, $, $4 sub $5, $5, $ (HY3) 6

Εξισώσεις MEM/WB Εξίσωση MEM/WB για την πρώτη είσοδο της ALU if (MEM/WB. = and MEM/WB.isterRd!= and MEM/WB.isterRd = ID/EX.isterRs and (EX/MEM.isterRd ID/EX.isterRs or EX/MEM. = ) then ForwardA = Εξίσωση MEM/WB για την δεύτερη είσοδο της ALU if (MEM/WB. = and MEM/WB.isterRd!= and MEM/WB.isterRd = ID/EX.isterRt and (EX/MEM.isterRd ID/EX.isterRt or EX/MEM. = ) then ForwardB = (HY3) 7

Απλοποιημένο datapath με προώθηση IF/ID ID/EX EX/MEM MEM/WB PC Instruction isters ForwardA ALU Data Rt Rd Rs ForwardB ID/EX. isterrt EX/MEM.isterRd Forwarding Unit EX/MEM. MEM/WB.isterRd ID/EX. isterrs MEM/WB. (HY3) 8

Παράδειγμα εκτέλεσης στην νέα μικροαρχιτεκτονική sub $, $, $3 and $, $, $5 or $3, $6, $ add $4, $, $ sw $5, ($) Θεωρούμε πάλι ότι η αρχική τιμή κάθε καταχωρητή $Ν είναι N+ Μετά την πρώτη εντολή ο καταχωρητής $ ισούται με - Οι υπόλοιπες εντολές θα πρέπει να χρησιμοποιήσουν το - σαν μία από τις εισόδους τους (HY3) 9

Κύκλος 3 IF: or $3, $6, $ ID: and $, $, $5 EX: sub $, $, $3 IF/ID ID/EX EX/MEM MEM/WB PC Instruction 5 X X isters 5 3 3 ALU - Data 5 (Rt) (Rd) (Rs) ID/EX. isterrt EX/MEM.isterRd 3 ID/EX. isterrs Forwarding Unit MEM/WB.isterRd (HY3)

Κύκλος 4. Προώθηση από καταχωρητή EX/MEM IF: add $4, $, $ ID: or $3, $6, $ EX: and $, $, $5 MEM: sub $, $, $3 IF/ID ID/EX EX/MEM MEM/WB PC Instruction 6 X X isters 6 5-5 ALU 4 - Data (Rt) 3 (Rd) 6 (Rs) ID/EX. isterrt EX/MEM.isterRd 5 Forwarding Unit ID/EX. isterrs - MEM/WB.isterRd (HY3)

IF: sw $5, ($) Κύκλος 5. Προώθηση από καταχωρητή MEM/WB ID: add $4, $, $ EX: or $3, $6, $ MEM: and $, $, $5 WB: sub $, $, $3 IF/ID ID/EX EX/MEM MEM/WB PC Instruction - isters - - - 6 6 - ALU - 4 Data X (Rt) 4 (Rd) (Rs) ID/EX. isterrt 3 3 EX/MEM.isterRd - Forwarding Unit ID/EX. 6 isterrs 4 MEM/WB.isterRd (HY3) -

Η μικρο-αρχιτεκτονική μας μέχρι τώρα ID/EX WB EX/MEM Control M WB MEM/WB IF/ID EX M WB PC Addr Instr Instruction Instr [5 - ] Rt Rd Rs register register register data data data isters Extend ALUSrc ALU Zero Dst Result Address Data data data EX/MEM.isterRd Forwarding Unit MEM/WB.isterRd (HY3) 3

Τι συμβαίνει με τις εντολές store Δύο απλές περιπτώσεις: 3 4 5 6 add $, $, $3 sw $4, ($) 3 4 5 6 add $, $, $3 sw $, ($4) (HY3) 4

Προώθηση με την store (I) EX: sw $4, ($) MEM: add $, $, $3 IF/ID ID/EX EX/MEM MEM/WB PC Addr Instr Instruction Instr [5 - ] Rt Rd Rs register register register data data data isters Extend ALUSrc ALU Zero Dst Result Address Data data data EX/MEM.isterRd Forwarding Unit Ακριβώς η ίδια περίπτωση εάν έχουμε loads ID/EX. isterrs (HY3) MEM/WB.isterRd 5

Προώθηση με την store (IΙ) EX: sw $, ($4) MEM: add $, $, $3 IF/ID ID/EX EX/MEM MEM/WB PC Addr Instr Instruction Instr [5 - ] Rt Rd Rs register register register data data data isters Extend ALUSrc ALU Zero Dst Result Address Data data data EX/MEM.isterRd Forwarding Unit MEM/WB.isterRd (HY3) 6

Τι συμβαίνει με τις εντολές store (III) Πιο δύσκολη περίπτωση όταν η store ακολουθεί μια load εντολή: 3 4 5 6 lw $, ($) sw $, ($4) Η lw παράγει τα δεδομένα της στο τέλος του σταδίου 4. Η sw χρειάζεται τον $ στην αρχή του σταδίου 5. Η lw δημιουργεί συνήθως την ανάγκη οι επόμενες εντολές να καθυστερήσουν (βλέπε επόμενο μάθημα) Σε αυτήν όμως την συγκεκριμένη περίπτωση μπορούμε να το απoφύγουμε αυτό. Χρειάζεται αλλαγή όμως στο datapath (HY3) 7

Αλληλουχία lw-sw lw $, ($) sw $, ($4) ForwardC IF/ID ID/EX EX/MEM MEM/WB PC Addr Instr Instruction Instr [5 - ] Rt Rd Rs register register register data data data isters Extend ALUSrc ALU Zero Dst Result Address Data data EX/MEM.isterRd data Αυτή όμως η αλληλουχία; lw $, ($) sw $, ($) Forwarding Unit (HY3) MEM/WB.isterRd 8

Η συνολική εικόνα H απλότητα της αρχιτεκτονικής MIPS κάνει το πρόβλημα της προώθησης πολύ εύκολο. Κάθε εντολή MIPS μπορεί να γράψει το πολύ σε έναν καταχωρητή Αυτή η ιδιότητα απλουστεύει πολύ την σχεδίαση της μονάδας προώθησης μιας και υπάρχει μόνο ένας καταχωρητής προορισμού που πρέπει να προωθηθεί. Η προώθηση είναι πολύ σημαντική σε μικρο-αρχιτεκτονικές με πολλά στάδια διοχέτευσης (super-pipelining) Η σύγχρονοι επεξεργαστές έχουν + στάδια διοχέτευσης Γιατί τόσα πολλά; (HY3) 9