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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

O επεξεπγαζηήρ: Η δίοδορ δεδομένων (datapath) θαη ε μονάδα ελέγσος (control)

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

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

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

Ολοκληρωμένα Κυκλώματα - Φθινόπωρο 2014 Γ. Δημητρακόπουλος. Εργαστηριακή άσκηση 2

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

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

CS425 Computer Systems Architecture

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 8: Μία Απλή Υλοποίηση του MIPS σε Έναν Κύκλο Ρολογιού ανά Εντολή

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

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

Στο σχήμα 3.1 δίνεται μια μονάδα επεξεργασίας δεδομένων σταθερής υποδιαστολής που εκτελεί οποιαδήποτε από τις κάτωθι εντολές σε ένα κύκλο ρολογιού.

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

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

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

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

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

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

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

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

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

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

Transcript:

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

Θέματα Απόδοσης Αν και απλή, η υλοποίηση ενός κύκλου ρολογιού είναι πολύ αργή Μεγάλη περίοδος ρολογιού Ο χρόνος εκτέλεσης είναι ο ίδιος για όλες τις εντολές και ίσος με τον χρόνο εκτέλεσης της πιο αργής εντολής Αυτό παραβιάζει μια βασική σχεδιαστική αρχή Βελτιστοποίησε την εκτέλεση της πιο συχνής εντολής Η χρήση της διοχέτευσης (pipeline) μειώνει δραστικά την περίοδο ρολογιού 2

ipeline 5 κύκλων Έστω ότι στον επεξεργαστή ενός κύκλου η περίοδος ρολογιού είναι Τc = 8ps Στον νέο επεξεργαστή με pipeline μπορεί να είναι στην καλύτερη περίπτωση 8/5=6ps. Ας θεωρήσουμε μια πιο ρεαλιστική προσέγγιση Τc2 = 2ps Μια νέα εντολή μπορεί να ξεκινήσει κάθε κύκλο μηχανής Fetch IF Decode ID Execute E emory E Back 3

Γιατί Διοχέτευση; Κύκλος μηχανής 2 3 5 6 7 8 9 lw $t, ($sp) IF ID E E lw $t, 8($sp) IF ID E E lw $t2, 2($sp) IF ID E E lw $t3, 6($sp) IF ID E E lw $t, 2($sp) IF ID E E γέμισμα Χρόνος εκτέλεσης σε ένα ιδανικό pipeline (I=): Χρόνος να γεμίσει το pipeline με εντολές + ένας κύκλος ανά εντολή Για Ν εντολές χρειαζόμαστε +N κύκλους μηχανής. Χρόνος pipeline U = (+N)*2ps = 2.8ns για N= Χρόνος εκτέλεσης σε έναν επεξεργαστή ενός κύκλου Χρόνος single-cycle U = N*8ps = 8ns Επιτάχυνση = 8/2.8 =

ipelining για τις υπόλοιπες εντολές Η εντολή lw χρησιμοποιεί και τα 5 στάδια του pipeline Εντολές με R-format δεν χρειάζονται το στάδιο μνήμης E, μόνο τα στάδια IF, ID, E, και Τι θα συμβεί εάν βάλουμε στο pipeline την lw με εντολές R-format; Κύκλος μηχανής 2 3 5 6 7 8 9 add $sp, $sp, - IF ID E sub $v, $a, $a IF ID E lw $t, ($sp) IF ID E E or $s, $s, $s2 IF ID E lw $t, 8($sp) IF ID E E 5

Δομικοί κίνδυνοι (structural hazards) Κάθε δομικό στοιχείο του επεξεργαστή μπορεί να χρησιμοποιηθεί μόνο από μία εντολή κάθε κύκλο μηχανής Πρόβλημα: Η εντολή lw χρησιμοποιεί το ort του Register File στο 5 ο στάδιο της Η εντολή or χρησιμοποιεί το ort του Register File στο ο στάδιο της lock cycle 2 3 5 6 7 8 9 add $sp, $sp, - IF ID E sub $v, $a, $a IF ID E lw $t, ($sp) IF ID E E or $s, $s, $s2 IF ID E lw $t, 8($sp) IF ID E E 6

Κανόνες: Λύση : χρήση εντολών NO Όλες οι εντολές παίρνουν 5 κύκλους να εκτελεσθούν Όλες οι εντολές περνάνε από τα ίδια 5 στάδια με την ίδια σειρά. Ακόμη και εάν κάποια στάδια δεν κάνουν καμία επεξεργασία στην εντολή (NO) R-type IF ID E NO lock cycle 2 3 5 6 7 8 9 add $sp, $sp, - IF ID E NO sub $v, $a, $a IF ID E NO lw $t, ($sp) IF ID E E or $s, $s, $s2 IF ID E NO lw $t, 8($sp) IF ID E E store IF ID E E NO branch IF ID E NO NO 7

Καταχωρητές Διοχέτευσης Για να υλοποιήσουμε ένα σύστημα διοχέτευσης, θα χρησιμοποιήσουμε ενδιάμεσους καταχωρητές στο path. Όλα τα ενδιάμεσα αποτελέσματα και σήματα ελέγχου πρέπει να σώζονται στο τέλος κάθε κύκλου στον αντίστοιχο καταχωρητή διοχέτευσης. Ονόματα καταχωρητών διοχέτευσης. IF/ID ID/E E/E E/ Το τελευταίο στάδιο ( Back, ) δεν χρειάζεται καταχωρητές διοχέτευσης γιατί η εντολή τερματίζεται. Είναι οι καταχωρητές διοχέτευσης ορατοί στον προγραμματιστή; 8

Διοχέτευση Δεδομένων Src IF/ID ID/E E/E E/ Reg address [3-] 2 2 em ress Src Op emtoreg Instr [5 - ] Instr [2-6] Instr [5 - ] Sign RegDst em 9

Προώθηση δεδομένων Οι τιμές των δεδομένων που χρειάζονται σε επόμενα στάδια της διοχέτευσης πρέπει να μεταφερθούν μέσω των καταχωρητών διοχέτευσης Ο καταχωρητής προορισμού rd είναι ένα χαρακτηριστικό παράδειγμα. To πεδίο rd της εντολής ανακτάται στο πρώτο στάδιο ( Fetch, IF). Αλλά χρησιμοποιείται μόνο μετά από 5 κύκλους στο στάδιο Back,. Συνεπώς, το πεδίο rd πρέπει να μεταφερθεί από όλους τους καταχωρητές διοχέτευσης μέχρι το 5 ο στάδιο. Δεν μπορούμε να το κρατήσουμε σε ένα απλό καταχωρητή εντολής (instruction ) γιατί σε κάθε κύκλο μηχανής μια νέα εντολή εισέρχεται στον επεξεργαστή από την μνήμη εντολών.

Καταχωρητής Προορισμού Src IF/ID ID/E E/E E/ Reg address [3-] 2 2 em ress Src Op emtoreg Instr [5 - ] Instr [2-6] Instr [5 - ] Sign RegDst em

Σήματα Ελέγχου H δημιουργία των σημάτων ελέγχου γίνεται ακριβώς όπως στην περίπτωση του επεξεργαστή ενός κύκλου. Μετά το Fetch η εντολή αποκωδικοποιείται από την μονάδα ελέγχου και δημιουργούνται τα σήματα ελέγχου. Όπως και πριν, κάποια σήματα ελέγχου θα χρειαστούν στα τελευταία στάδια του pipeline (πχ ο ή 5 ο ) Όπως ακριβώς και τα δεδομένα, έτσι και αυτά τα σήματα ελέγχου θα πρέπει να προωθηθούν μέσω των καταχωρητών διοχέτευσης στα επόμενα στάδια μέχρι να χρησιμοποιηθούν. 2

Διοχέτευση Σημάτων Ελέγχου και Δεδομένων ID/E Src ontrol E/E E/ IF/ID E Reg address [3-] 2 2 em ress Src Op emtoreg Instr [5 - ] Instr [2-6] Instr [5 - ] Sign RegDst em 3

Διοχέτευση Σημάτων Ελέγχου και Δεδομένων Stage ontrol signals needed E Src Op RegDst E em em Src Reg emtoreg Src IF/ID ontrol ID/E E E/E E/ Reg em address [3-] 2 2 ress Op Src Instr [5 - ] Sign Instr [2-6] Instr [5 - ] RegDst em emtoreg

Μερικές Παρατηρήσεις Συνήθως, όταν θέλουμε να γράψουμε σε έναν καταχωρητή (και μόνον τότε) θέτουμε το αντίστοιχο Enable=. O γράφεται σε κάθε κύκλο μηχανής επειδή πάντα πρέπει να δείχνουμε στην επόμενη εντολή και συνεπως πάντα Enable=. Το ίδιο και για όλους τους καταχωρητές διοχέτευσης: Enable= 5

Παράδειγμα εκτέλεσης εντολών Διευθύνσεις στο δεκαδικό σύστημα : lw $8, ($29) : sub $2, $, $5 8: and $9, $, $ 2: or $6, $7, $8 6: add $3, $, $ Υποθέτουμε ότι: Η αρχική τιμή κάθε καταχωρητή $Ν είναι Ν+. Για παράδειγμα, ο $8 ($t) περιέχει την τιμή d 8. Αρχικά, όλες οι θέσεις μνήμης περιέχουν την τιμή 99. Το Χ στο διάγραμμα είναι Don t are. Τα ερωτηματικά σημαίνει ότι η τιμή του σήματος είναι άγνωστη Παρατηρείστε ότι οι εντολές είναι ανεξάρτητες; δεν υπάρχουν εξαρτήσεις μεταξύ καταχωρητών εξόδου μιας εντολής και εισόδου των επόμενων. Περισσότερα για αυτό στα επόμενα μαθήματα 6

Κύκλος (γέμισμα) IF: lw $8, ($29) ID: E: E: : ID/E E/E Src ontrol E/ IF/ID E Reg (?) address [3-] 2 2 Src (?) Op () em (?) ress emtoreg (?) Sign RegDst (?) em (?) 7

IF: sub $2, $, $5 ID: lw $8, ($29) E: E: : Κύκλος 2 (γέμισμα) ID/E E/E Src ontrol E/ IF/ID E 8 Reg (?) address [3-] rs rt 2 2 em (?) ress rd Src (?) Op () emtoreg (?) Imm rt rd Sign RegDst (?) em (?) 8

Κύκλος 3 (γέμισμα) IF: and $9, $, $ ID: sub $2, $, $5 E: lw $8, ($29) E: : ID/E E/E Src ontrol E/ IF/ID E 2 Reg (?) 8 address [3-] 5 2 2 5 Op ( ) Src ( ) em (?) ress emtoreg (?) 2 Sign RegDst ( ) em (?) 9

Κύκλος (γέμισμα) IF: or $6, $7, $8 ID: and $9, $, $ E: sub $2, $, $5 E: lw $8, ($29) : ID/E E/E Src ontrol E/ IF/ID E 6 Reg (?) 2 address [3-] 2 2 5 Src () Op (sub) em ( ) ress emtoreg (?) 9 Sign 2 RegDst () 2 em ( ) 2

IF: add $3, $, $ ID: or $6, $7, $8 E: and $9, $, $ E: sub $2, $, $5 : lw $8, ($29) Src IF/ID ontrol Κύκλος 5 ID/E E E/E E/ 2 Reg ( ) 6 address [3-] 7 8 2 2 7 8 - em () ress Src () Op (and) 5 emtoreg ( ) 6 Sign 9 RegDst () 9 2 em () 2

Κύκλος 6 (άδειασμα) IF: ID: add $3, $, $ E: or $6, $7, $8 E: and $9, $, $ : sub $2, $, $5 Src IF/ID ontrol ID/E E E/E E/ Reg () 2 address [3-] 2 2 8 7 em () ress 2 - Src () 9 Op (or) emtoreg () 3 Sign 6 RegDst () 6 9 em () 22

Κύκλος 7 (άδειασμα) IF: ID: E: add $3, $, $ E: or $6, $7, $8 : and $9, $, $ Src IF/ID ontrol ID/E E E/E E/ Reg () address [3-] 2 2 9 em () ress 9 Src () Op (add) 8 emtoreg () Sign 3 RegDst () 3 6 em () 9 23

Κύκλος 8 (άδειασμα) IF: ID: E: E: add $3, $, $ : or $6, $7, $8 Src IF/ID ontrol ID/E E E/E E/ Reg () address [3-] 2 2 em () ress 6 9 Src (?) Op () emtoreg () Sign RegDst (?) 3 em () 9 6 9 2

Κύκλος 9 (άδειασμα) IF: ID: E: E: : add $3, $, $ Src IF/ID ontrol ID/E E E/E E/ Reg () address [3-] 2 2 em (?) ress 3 Src (?) Op ()? emtoreg () Sign RegDst (?) em (?) 3 25

Προσοχή Τα πάντα κινούνται από αριστερά στα δεξιά εκτός:. Της απόφασης διακλάδωσης 2. Του Back Src IF/ID ID/E E/E E/ Reg address [3-] 2 Instr [5 - ] Instr [2-6] Instr [5 - ] 2 Sign Src RegDst Op ress em em emtoreg 26

Πιο συμβολικά Κύκλος ρολογιού 2 3 5 6 7 8 9 lw $t, ($sp) IF ID E E sub $v, $a, $a IF ID E E and $t, $t2, $t3 IF ID E E or $s, $s, $s2 IF ID E E add $t5, $t6, $ IF ID E E Στον κύκλο 5 ο επεξεργαστής έχει γεμίσει: υπάρχουν τόσες εντολές εν πτήση όσα και τα στάδια της διοχέτευσης Από εδώ και πέρα θα εξετάσουμε τα προβλήματα που μπορεί να δημιουργήσει η μέθοδος της διοχέτευσης και πως αυτά επιλύονται. 27