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

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

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

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

2

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

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

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

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

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

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

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

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

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while )

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

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

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

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

Ραραπάνω παρουςιάηεται ο πυρινασ των εντολϊν του επεξεργαςτι MIPS, με τισ οποίεσ, και τθν υλοποίθςθ τουσ ςε υλικό κα αςχολθκοφμε.

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

Κάζε functional unit ρξεζηκνπνηείηαη κηα θνξά ζε θάζε θύθιν: αλάγθε γηα πνιιαπιό hardware = θόζηνο πινπνίεζεο!

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

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

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

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

HY225 Οργάνωςη Τπολογιςτών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

CS425 Computer Systems Architecture

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

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

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

2 ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ. Η πιο απλι μορφι ςφγκριςθσ εντολισ ελζγχου ζχει τθ μορφι : if (<ζπλζήθε>) εληνιή; if(<ζπλζήθε>){ block εληνιώλ; }

HY225 Οργϊνωςη Υπολογιςτών

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

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

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

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

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

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

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

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

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

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

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

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

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

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

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;

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

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

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

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

Transcript:

HY225 Οργάνωςη Υπολογιςτών Διδάςκοντεσ: Δ. Νικολόπουλοσ, Χ. Σωτηρίου. http://www.csd.uoc.gr/~hy225 1 Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 2 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ 1

Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 3 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ Pipelining Παράλληλη Επιμέρους Εκτέλεση Διαδικασίας Pipelining πνιιαπιά αλεμάξηεηα κέξε, βήκαηα ηεο εθηέιεζεο κηαο δηαδηθαζίαο επηηεινύληαη παξάιιεια ε ζπλνιηθή εθηέιεζε ζπληειείηαη κεηά ηελ νινθιήξωζε όιωλ ηωλ βεκάηωλ παξαδείγκαηα: εξγνζηαζηαθέο γξακκή ζπλαξκνιόγεζεο, ι.ρ. απηνθηλήηωλ, πιαθεηώλ αιπζίδα ππξνζβεζηώλ-θνπβάδωλ Βιμα 1 ο Βιμα 3 ο Βιμα 5 ο Βιμα 2 ο Βιμα 4 ο Καζπζηέξεζε (Latency) : 15 = 5 Κύθινο Ρνή (Throughput) : 1 βήκα αλά κνλάδα ρξόλνπ 4 2

Αρχιτεκτονική MIPS Pipelining Ππωσ είδαμε νωρίτερα, θ εκτζλεςθ των εντολών ςυντελείται ςε ςτάδια: Λειτουργία Σταδίου Φόρτωςθ Εντολισ Instruction Fetch Αποκωδικοποίθςθ Εντολισ, Ανάγνωςθ Καταχωρθτών Instruction Decode, Register Fetch Εκτζλεςθ ALU ι Υπολογιςμό Διεφκυνςθσ ALU Execute or Calculate Address Ανάγνωςθ/Εγγραφι ςτθν Μνιμθ Memory Read/Write Εγγραφι Αποτελζςματοσ ςε Καταχωρθτι - Result Writeback Ονομαςία IF ID EX MEM WB Το ςφνολο εντολών του MIPS είναι επιτθδευμζνα ςχεδιαςμζνο για Pipelining (RISC) 5 Απόδοςη Pipeline Ζςτω: Τφποσ Εντολήσ Δμνιμθσ = 10ns, ΔALU/Adder = 10ns, ΔRF = 5ns Φόρτωςη Εντολήσ IM Άρα Τclk = 40ns Ανάγνωςη Καταχωρητή Λειτουργία ALU Πρόςβαςη μνήμησ DM Εγγραφή Καταχωρητή Ρώσ κα ςυγκρίνουμε τθν απόδοςθ του επεξεργαςτι που εκτελεί 1 εντολι ανά κφκλο (40ns) με ενόσ pipelined επεξεργαςτι; Σφνολο R 10 5 10 5 30ns lw 10 5 10 10 5 40ns sw 10 5 10 10 35ns beq,bne 10 5 10 25ns j 10 10ns 6 3

Απόδοςη Pipeline Εκτζλεςθ 1 εντολισ ανά κφκλο: 0ns 40ns Χξόλνο, t 80ns IF ID ALU MEM WB εηξά Εληνιώλ 40ns IF ID ALU MEM WB 40ns IF ID Με pipelining: 0ns 10ns 20ns 30ns 40ns 50ns 60ns 70ns Χξόλνο, t IF ID ALU MEM WB 10ns εηξά 10ns Εληνιώλ IF ID ALU MEM WB IF ID ALU MEM WB 10ns 7 Αύξηςη Απόδοςησ με Pipeline Στθν ιδανικι περίπτωςθ, όπου όλα τα ςτάδια εξιςορροπθμζνα ωσ προσ τθν κακυςτζρθςθ: t ή pipelined όπου Β ο αρικμόσ των ςταδίων του pipeline Αν δεν είναι εξιςορροπθμζνα τα ςτάδια χάνουμε απόδοςθ από τθν ςτρογγυλοποίθςθ του κφκλου ςτο χειρότερο! Απόδοςθ αυξάνει λόγο τθσ πολλαπλάςιασ ροήσ ο χρόνοσ εκτζλεςθσ τθσ κάκε εντολισ δεν αλλάηει t ή pipelined 8 4

Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 9 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ Δομή Datapath MIPS με Στάδια Pipeline Από MEM ΔεμηάΑξηζηεξή ξνή εγθπκνλεί θηλδύλνπο (hazards) Από WB 10 5

Δομή Datapath με Καταχωρητέσ Pipeline Χξεηαδόκαζηε θαηαρωξεηέο αλάκεζα ζηα ζηάδηα Γηα ηελ απνζήθεπζε ηεο ηνπηθήο πιεξνθνξίαο από θύθιν ζε θύθιν από ηνλ λ ζηνλ (λ+1) 11 Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 12 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ 6

Εκτέλεςη εντολήσ lw, sw Στάδιο IF 13 Εκτέλεςη εντολήσ lw, sw Στάδιο ID 14 7

Εκτέλεςη εντολήσ lw, sw Στάδιο ΕΧ 15 Εκτέλεςη εντολήσ lw Στάδιο ΜΕΜ 16 8

Εκτέλεςη εντολήσ lw Στάδιο WB Λάζνο ηηκή Αξηζκνύ Καηαρωξεηή Απνηειέζκαηνο 17 Τροποποίηςη Datapath για εντολή lw 18 9

Εκτέλεςη εντολήσ sw Στάδιο ΕΧ 19 Εκτέλεςη εντολήσ sw Στάδιο MEM 20 10

Εκτέλεςη εντολήσ sw Στάδιο WB 21 Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 22 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ 11

Διάγραμμα Εκτέλεςησ Πολλαπλών Κύκλων Σειρά των εντολών Χρόνος σε Κύκλοσς 23 Διάγραμμα Εκτέλεςησ Πολλαπλών Κύκλων Συμβατικι, Συμβολικι Μορφι: Χρόνος σε Κύκλοσς Σειρά των εντολών 24 12

Διάγραμμα Εκτέλεςησ ενόσ Κύκλου Αντιςτοιχεί ςτθν κατάςταςθ του pipeline 25 Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 26 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ 13

Υλοποίηςη ελέγχου ςε Pipelined Datapath 27 Υλοποίηςη ελέγχου ςε Pipelined Datapath Σιματα ελζγχου παράγονται από τθν εντολι Υποςφνολο IR του IF/ID Ανάλογθ λειτουργία με τον επεξεργαςτι ενόσ κφκλου 28 14

Πλήρεσ Διάγραμμα με Έλεγχο μαζί 29 Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 30 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ 15

Κίνδυνοι (Hazards) Οι κίνδυνοι (hazards) αφοροφν περιπτώςεισ όπου εξαρτιςεισ ςτα δρώμενα των εντολών αποτρζπουν τθν εκτζλεςθ τουσ ςτον κφκλο τουσ (που προζβλεπε το pipeline) Κατθγορίεσ Δομικοί ζνασ πόροσ είναι δεςμευμζνοσ από άλλθ εντολι δεν ςυμβαίνουν ςτο MIPS pipeline αλλά ςε Supescalar Δεδομζνων απαιτείται αναμονι για να ολοκλθρώςει μια προθγοφμενθ εντολι τθν ανάγνωςθ/εγγραφι των δεδομζνων τθσ Ελζγχου Η εκτζλεςθ τθσ εντολισ εξαρτάται από προθγοφμενθ εντολι αλλαγισ ροισ (beq, bne) 31 Κίνδυνοι Δεδομένων Μια εντολι εξαρτάται από το αποτζλεςμα τθσ προθγοφμενθσ (RAW Read after Write κίνδυνοσ) add $s0, $t0, $t1 sub $t2, $s0, $t3 32 16

Κίνδυνοι Ελέγχου Αν το αποτζλεςμα του βρόχου αποφαςίηεται ςτο MEM Αδεηάδνπκε απηέο ηηο εληνιέο (ζήκαηα ειέγρνπ ζην 0) PC 33 Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 34 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ 17

Προώθηςη (Forwarding) ςτισ περιςςότερεσ περιπτώςεισ μποροφμε να προωκιςουμε το αποτζλεςμα άμεςα από ζνα ςτάδιο ςε ζνα άλλο χωρίσ τθν μεςολάβθςθ καταχωρθτι απαιτεί νζεσ ςυνδζςεισ ςτο datapath 35 Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 36 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ 18

Κίνδυνοι lw Απαραίτητη Αναμονή Στθν περίπτωςθ τθσ lw, το δεδομζνο είναι διακζςιμο ςτο MEM αντί του EX. Ζτςι, θ χριςθ του αποτελζςματοσ ανάγνωςθσ του lw από τθν αμζςωσ επόμενθ εντολι δεν λφνεται με προώθηςη Απαιτεί υποχρεωτικά αναμονή 1 κφκλου 37 Διαμόρφωςη Κώδικα (Scheduling) για Αποφυγή Καθυςτερήςεων Μποροφμε, ςτο επίπεδο του μεταφραςτι να αλλάξουμε τθν ςειρά των εντολών Να μθν γίνεται χριςθ του αποτελζςματοσ των lw ςτθν επόμενθ εντολι, αλλά παρακάτω Υλοποίθςθ κώδικα C για: A = B + E; C = B + F; Καζπζηέξεζε (stall) Καζπζηέξεζε (stall) lw lw $t1, 0($t0) $t2, 4($t0) add $t3, $t1, $t2 sw lw $t3, 12($t0) $t4, 8($t0) add $t5, $t1, $t4 sw $t5, 16($t0) 13 θύθινη lw lw lw $t1, 0($t0) $t2, 4($t0) $t4, 8($t0) add $t3, $t1, $t2 sw $t3, 12($t0) add $t5, $t1, $t4 sw $t5, 16($t0) 11 θύθινη 38 19

Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 39 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ Απαλοιφή Κινδύνων για εντολέσ ALU Θεωροφμε τθν παρακάτω αλλθλουχία εντολών: sub $2, $1,$3 and $12,$2,$5 or $13,$6,$2 add $14,$2,$2 sw $15,100($2) Μποροφμε να αποφφγουμε τουσ κινδφνουσ μζςω προώκθςθσ δεδομζνων Αλλά πώσ αποφαςίηουμε τι και από ποφ και προσ ποφ κα προωκιςουμε; 40 20

Εξαρτήςεισ και Προώθηςη 41 Διάγνωςη των Εξαρτήςεων και Προώθηςη Χρθςιμοποιοφμε τουσ αρικμοφσ των καταχωρθτών που βρίςκονται ςτα ςτάδια του pipeline (και τουσ ςχετικοφσ καταχωρθτζσ του pipeline) π.χ. ID/EX.RegisterRs = Rs ςτον καταχωρθτι ID/EX Το ςτάδιο EX χρθςιμοποιεί τουσ Rs, Rt Εξαρτιςεισ/Ρροώκθςθ όταν: Πξνώζεζε από ηνλ EX/MEM 1a.ID/EX.RegisterRs = EX/MEM.Register.Rd 1b.ID/EX.RegisterRt = EX/MEM.Register.Rd Πξνώζεζε από ηνλ MEM/WB 2a.ID/EX.RegisterRs = MEM/WB. Register.Rd 2b.ID/EX.RegisterRt = MEM/WB. Register.Rd 42 21

Διάγνωςη των Εξαρτήςεων και Προώθηςη Τα παραπάνω ιςχφουν μόνο όταν θ προωκοφςα εντολι γράφει αποτζλεςμα δθλ. τα ςιματα EX/MEM.RegWrite, MEM/WB.RegWrite είναι 1. Και επιπλζον ο καταχωρθτισ που εγγράφεται δεν είναι ο $0 δθλ. EX/MEM.RegisterRd 0, MEM/WB.RegisterRd 0 43 Ενςωμάτωςη τησ Προώθηςησ ςτο datapath 44 22

Συνθήκεσ Προώθηςησ EX hazard if (EX/MEM.RegWrite and (EX/MEM.RegisterRd 0) and (EX/MEM.RegisterRd = ID/EX.RegisterRs)) ForwardA = 10 if (EX/MEM.RegWrite and (EX/MEM.RegisterRd 0) and (EX/MEM.RegisterRd = ID/EX.RegisterRt)) ForwardB = 10 MEM hazard if (MEM/WB.RegWrite and (MEM/WB.RegisterRd 0) and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) ForwardA = 01 if (MEM/WB.RegWrite and (MEM/WB.RegisterRd 0) and (MEM/WB.RegisterRd = ID/EX.RegisterRt)) ForwardB = 01 45 Αν η ςυνθήκη ιςχύει και ςτισ 2 περιπτώςεισ; Ραραδείγματοσ χάριν: add $1,$1,$2 add $1,$1,$3 add $1,$1,$4 Θζλουμε να χρθςιμοποιιςουμε το τελευταίο αποτζλεςμα Ρροωκοφμε από το MEM μόνο όταν δεν ιςχφει η ςυνθήκη για προώθηςη από το EX 46 23

Τροποποίηςη ςτισ Συνθήκεσ Προώθηςησ του MEM MEM hazard if (MEM/WB.RegWrite and (MEM/WB.RegisterRd 0) and not (EX/MEM.RegWrite and (EX/MEM.RegisterRd 0) and (EX/MEM.RegisterRd = ID/EX.RegisterRs)) and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) ForwardA = 01 if (MEM/WB.RegWrite and (MEM/WB.RegisterRd 0) and not (EX/MEM.RegWrite and (EX/MEM.RegisterRd 0) and (EX/MEM.RegisterRd = ID/EX.RegisterRt)) and (MEM/WB.RegisterRd = ID/EX.RegisterRt)) ForwardB = 01 47 Δομή Pipelined Επεξεργαςτή με Προώθηςη 48 24

Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 49 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ Καθυςτέρηςη Κίνδυνοσ lw, επόμενησ εντολήσ Καζπζηέξεζε ελόο θύθινπ 50 25

Συνθήκη Καθυςτέρηςησ lw Η εληνιή πνπ ρξεζηκνπνηεί ην απνηέιεζκα ηεο lw ζα είλαη ζην ζηάδην ID νη ζρεηηθνί αξηζκνί θαηαρωξεηώλ είλαη: IF/ID.RegisterRs, IF/IF.RegisterRt Η εμάξηεζε/θίλδπλνο ζπληειείηαη όηαλ: (ID/EX.MemRead == 1) και ((ID/EX.RegisterRt = IF/ID.RegisterRs) ι (ID/EX.RegisterRt = IF/ID.RegisterRt)) Αλ ε παξαπάλω ζπλζήθε ζπληειείηαη ηόηε θαζπζηεξνύκε ην pipeline γηα 1 θύθιν 51 Πωσ Καθυςτερούμε το Pipeline Θζτουμε όλα τα ςιματα ελζγχου (ι και δεδομζνων) του καταχωρθτι ID/EX ςτο μθδζν Τα EX, MEM, WB εκτελοφν εντολι «NOP» Διατθροφμε (α) PC, (β) δεδομζνα καταχωρθτι IF/ID για να ςυνεχίςει θ επόμενθ εντολι με κακυςτζρθςθ 1 κφκλου Η εντολι που κάνει χριςθ του αποτελζςματοσ του lw εκτελεί πάλι το ID Η επόμενθ εντολι ξαναφορτώνεται ςτο IF Η κακυςτζρθςθ 1 κφκλου επιτρζπει τώρα τθν προώκθςθ από το MEM ςτο EX 52 26

Καθυςτέρηςη 1 κύκλου λόγω lw ςτο pipeline Εηζαγωγή θαζπζηέξεζεο 1 θύθινπ 53 Καθυςτέρηςη 1 κύκλου λόγω lw ςτο pipeline Με κεγαιύηεξε αθξίβεηα 54 Chapter 4 The Processor ΗΥ225 54 - Υλικό - Διάλεξθ 3θ - Σχεδίαςθ 27

Δομή Επεξεργαςτή με Προώθηςη και Έλεγχο Κινδύνων lw 55 Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 56 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ 28

Κίνδυνοι Ελέγχου Οι εντολζσ beq, bne προςδιορίηουν τθν ροι των εντολών Η φόρτωςθ τθσ επόμενθσ εντολισ εξαρτάται από το αποτζλεςμα του κατά-ςυνκικθ βρόχου Το pipeline δεν μπορεί να φορτώςει απευθείασ την επόμενη εντολή Η εντολι βρόχου είναι ακόμα ςτο ςτάδιο ID, άρα δεν ζχει αποφαςιςτεί το αποτζλεςμα του βρόχου Στο pipeline του MIPS Ρρζπει να ςυγκρίνουμε καταχωρθτζσ και να υπολογίςουμε τθν τελικι διεφκυνςθ νωρίσ ςτο pipeline Προςθζτουμε πόρουσ για να γίνει ςτο ςτάδιο ID 57 Κίνδυνοι Ελέγχου Αν το αποτζλεςμα του βρόχου αποφαςίηεται ςτο MEM Αδεηάδνπκε απηέο ηηο εληνιέο (ζήκαηα ειέγρνπ ζην 0) PC 58 29

Καθυςτέρηςη λόγω beq, bne Ρρζπει να περιμζνουμε μζχρι το αποτζλεςμα του βρόχου να προςδιοριςτεί, μζχρι να φορτώςουμε τθν επόμενθ εντολι Αν μεταφζρουμε τον υπολογιςμό διεφκυνςθσ και τθσ ςυνκικθσ του βρόχου ςτο ID: 59 Μείωςη Καθυςτέρηςησ Pipeline λόγω Βρόχων Μεταφζρουμε ςτο ςτάδιο ID Ακροιςτι υπολογιςμοφ τελικισ διεφκυνςθσ Σφγκριςθ των καταχωρθτών παράδειγμα όπου ο βρόχοσ ακολουκείται: 36: sub $10, $4, $8 40: beq $1, $3, 7 44: and $12, $2, $5 48: or $13, $2, $6 52: add $14, $4, $2 56: slt $15, $6, $7... 72: lw $4, 50($7) 60 30

Παράδειγμα όπου η beq ακολουθείται 61 Παράδειγμα όπου η beq ακολουθείται 62 31

Καθυςτερήςεισ δεδομένων για beq, bne αλ νη θαηαρωξεηέο πξνο ζύγθξηζε πξνέξρνληαη από ηελ 2 ε ε 3 ε πξνεγνύκελε εληνιή ηύπνπ R, ι.ρ.: 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 Μπνξεί λα επηιπζεί κέζω πξνώζεζεο ζην ID 63 Καθυςτερήςεισ δεδομένων για beq, bne αλ νη θαηαρωξεηέο πξνο ζύγθξηζε πξνέξρνληαη από ηελ 1 ε πξoεγνύκελε ηύπνπ R, ή 2 ε πξνεγνύκελε ηύπνπ lw απαηηείηαη θαζπζηέξεζε 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 64 32

Καθυςτερήςεισ δεδομένων για beq, bne αλ νη θαηαρωξεηέο πξνο ζύγθξηζε πξνέξρνληαη από ηελ 1 ε πξνεγνύκελε ηύπνπ lw απαηηείηαη θαζπζηέξεζε 2 θύθιωλ lw $1, addr IF ID EX MEM WB beq stalled IF ID beq stalled ID beq $1, $0, target ID EX MEM WB 65 Περιεχόμενα Pipelining Παξάιιειε εθηέιεζε εληνιώλ ζεεπηκέξνπο βήκαηα 66 επηκέξνπο βήκαηα εληνιήο απόδνζε ηνπ pipeline Δνκή datapath κε ζηάδηα pipeline θαηαρωξεηέο pipeline Παξάδεηγκα Εθηέιεζεο εληνιώλ lw, sw ζην pipeline ηνπ MIPS Δηάγξακκα εθηέιεζεο πνιιαπιώλ θύθιωλ Υινπνίεζε ειέγρνπ ζε pipelined datapath Κίλδπλνη (Hazards) Δνκηθνί, δεδνκέλωλ, ειέγρνπ Πξνώζεζε απνηειεζκάηωλ (Forwarding) Κίλδπλνη lw απαξαίηεηε αλακνλή Πξνώζεζε γηα εληνιέο R πλζήθεο Πξνώζεζεο Datapath κε πξνώζεζε Λνγηθή Καζπζηέξεζεο γηα lw Κίλδπλνη Ειέγρνπ θαζπζηέξεζε επόκελεο εληνιήο κείωζε θαζπζηέξεζεο Υινπνίεζε Εμαηξέζεωλ 33

Εξαιρέςεισ ςε Pipelined Επεξεργαςτή Οι εξαιρζςεισ, μια και απαιτοφν αλλαγι ροισ αποτελοφν κίνδυνο ελζγχου Ραράδειγμα: Overflow για εντολι add $1, $2, $1 Ολοκλθρώνουμε τισ προθγοφμενεσ εντολζσ Απαλείφουμε τθν εντολι ςτθν οποία ςυνζβθ θ εξαίρεςθ, και τισ επόμενεσ από το pipeline Απαλείφουμε = θζτουμε όλα τα ςήματα ελζγχου ςε 0 Θζτουμε καταχωρθτζσ EPC και Cause Ξεκινάμε με PC = διεφκυνςθ χειριςμοφ ςτο ςτάδιο IF 67 Pipeline που υποςτηρίζει Εξαιρέςεισ 68 34

Παράδειγμα Εξαιρέςεων Εξαίρεςθ ςτθν add: 40 sub $11, $2, $4 44 and $12, $2, $5 48 or $13, $2, $6 4C add $1, $2, $1 50 slt $15, $6, $7 54 lw $16, 50($7) ουτίνα Χειριςμοφ (Handler): 80000180 sw $25, 1000($0) 80000184 sw $26, 1004($0) 69 Παράδειγμα Εξαιρέςεων 70 35

Παράδειγμα Εξαιρέςεων 71 36