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

Σχετικά έγγραφα
Δυναμική Δρομολόγηση Εντολών (Dynamic Scheduling)

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

CS425 Computer Systems Architecture

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

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Static Scheduling. Ιάκωβος Μαυροειδής

Instruction-Level Parallelism and its Dynamic Exploitation. Μάθηµα 3ο Computer Architecture-A Quantitative Approach

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Static Scheduling. Βασίλης Παπαευσταθίου Ιάκωβος Μαυροειδής

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

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

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

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

Υποθετική Εκτέλεση Εντολών

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

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Precise Exceptions Speculation Reorder Buffer. Βασίλης Παπαευσταθίου Ιάκωβος Μαυροειδής

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Precise Exception Speculation Reorder Buffer. Ιάκωβος Μαυροειδής

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

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

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

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

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

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

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

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

CS-425 Mid-term exam

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

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

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

Pipelined Datapath, Hazards and Forwarding

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

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

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

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

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

Ενδεικτικά Θέματα Στατιστικής ΙΙ

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

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

Constructors and Destructors in C++

Υποθεηική Εκηέλεζη Ενηολών (Hardware-Based Speculation)

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

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

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

Instruction-Level Parallelism and its Dynamic Exploitation. Κεφάλαια 4o Computer Architecture-A Quantitative Approach 3 rd Edition

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

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

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

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

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

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

(Branch Prediction Mechanisms)

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

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

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

Οργάνωση και Δομή Παρουσιάσεων

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

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

ΘΔΜΑ 1 ο Μονάδες 5,10,10

ΠΔΡΗΓΡΑΦΖ ΛΔΗΣΟΤΡΓΗΚΟΣΖΣΑ ΥΔΓΗΟΤ ΑΡΗΘΜ. 1

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

Η επιζκόπηζη ηης έμμιζθης ενηολής ζηην Αλλοδαπή. Καηεξίλα Γαιαλνπνύινπ, Intellectual Property Manager, Microsoft Ειιάο Α.Ε.

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code)

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

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

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ

ΔΝΓΔΙΚΣΙΚΔ ΛΤΔΙ ΣΑ ΜΑΘΗΜΑΣΙΚΑ ΠΡΟΑΝΑΣΟΛΙΜΟΤ 2017

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: /27 Υπνδίθηπν Β:

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

Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο κόζηος ανά μονάδα παραγωγής. Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο ζηαθερό κόζηος ανά μονάδα παραγωγής

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

Transcript:

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

Απόδνζε pipeline Pipeline CPI = Ideal pipeline CPI + Structural Stalls + Data Hazard Stalls + Control Stalls Ideal pipeline CPI: κέηξν ηεο κέγηζηεο απόδνζεο πνπ κπνξνύκε λα έρνπκε κε ηελ εθάζηνηε πινπνίεζε ηνπ pipeline Structural hazards: όηαλ ην πιηθό δελ κπνξεί λα ππνζηεξίμεη ηαπηόρξνλε εθηέιεζε ζπγθεθξηκέλσλ εληνιώλ Data hazards: όηαλ κηα εληνιή ρξεηάδεηαη ην απνηέιεζκα κηαο πξνεγνύκελεο, ε νπνία βξίζθεηαη αθόκε ζην pipeline Control hazards: όηαλ εηζάγεηαη θαζπζηέξεζε κεηαμύ ηνπ θνξηώκαηνο εληνιώλ θαη ηεο ιήςεο απνθάζεσλ ζρεηηθά κε ηελ αιιαγή ηεο ξνήο ηνπ πξνγξάκκαηνο (branches,jumps) 2

Τερληθέο βειηίσζεο ηνπ CPI register renaming δσναμική εκηέλεζη Pipeline CPI = Ideal pipeline CPI + Structural Stalls + Data Hazard Stalls + ππεξβαζκσηή εθηέιεζε πξνώζεζε loop unrolling static scheduling, software pipelining Control Stalls πξόβιεςε δηαθιαδώζεσλ ππνζεηηθή εθηέιεζε delayed branches, branch scheduling 3

Δμαξηήζεηο Γεδνκέλσλ θαη Hazards Η J είλαη data dependent από ηελ I: H J πξνζπαζεί λα δηαβάζεη ηνλ source operand πξηλ ηνλ γξάςεη ε I I: add r1,r2,r3 J: sub r4,r1,r3 ή ε J είλαη data dependent από ηελ Κ, ε νπνία είλαη data dependent από ηελ I (αιπζίδα εμαξηήζεσλ) Πξαγκαηηθέο εμαξηήζεηο (True Dependences) Πξνθαινύλ Read After Write (RAW) hazards ζην pipeline 4

Δμαξηήζεηο Γεδνκέλσλ θαη Hazards Οη εμαξηήζεηο είλαη ηδηόηεηα ησλ πξνγξακκάησλ Η παξνπζία κηαο εμάξηεζεο ππνδειώλεη ηελ πηζαλόηεηα εκθάληζεο hazard, αιιά ην αλ ζα ζπκβεί πξαγκαηηθά ην hazard, θαη ην πόζε θαζπζηέξεζε ζα εηζάγεη, είλαη ηδηόηεηα ηνπ pipeline Η ζεκαζία ησλ εμαξηήζεσλ δεδνκέλσλ 1) ππνδειώλνπλ ηελ πηζαλόηεηα γηα hazards 2) θαζνξίδνπλ ηε ζεηξά ζύκθσλα κε ηελ νπνία πξέπεη λα ππνινγηζηνύλ ηα δεδνκέλα 3) ζέηνπλ έλα άλσ όξην ζην πνζό ηνπ παξαιιειηζκνύ πνπ κπνξνύκε λα εθκεηαιιεπηνύκε 5

Name Dependences, (1): Anti-dependences Name dependences: όηαλ 2 εληνιέο ρξεζηκνπνηνύλ ηνλ ίδην θαηαρσξεηή ή ζέζε κλήκεο (''name''), ρσξίο όκσο λα ππάξρεη πξαγκαηηθή ξνή δεδνκέλσλ κεηαμύ ηνπο Anti-dependence: ε J γξάθεη ηνλ r1 πξηλ ηνλ δηαβάζεη ε I I: sub r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7 Πξνθαινύλ Write After Read (WAR) hazards ζην pipeline 6

Name Dependences, (2): Output dependences Output dependence: ε J γξάθεη ηνλ r1 πξηλ ηνλ γξάςεη ε I I: sub r1,r4,r3 J: add r1,r2,r3 K: mul r6,r1,r7 Πξνθαινύλ Write After Write (WAW) hazards ζην pipeline 7

ILP θαη Data Hazards Δμαηηίαο ησλ εμαξηήζεσλ πξέπεη λα δηαηεξνύκε ηε ζεηξά ηνπ πξνγξάκκαηνο ζεηξά πξνγξάκκαηνο: ε ζεηξά κε ηελ νπνία ζα εθηεινύληαλ νη εληνιέο, αλ επεμεξγάδνληαλ ζεηξηαθά, κία θάζε θνξά, όπσο ππαγνξεύεηαη από ηνλ πεγαίν θώδηθα ηνπ πξνγξάκκαηνο ζθνπόο HW/SW: λα εθκεηαιιεπηνύλ ηνλ παξαιιειηζκό, δηαηεξώληαο ηε ζεηξά πξνγξάκκαηνο όπνπ θάπνηα αιιαγή ζα κπνξνύζε λα επεξεάζεη ην απνηέιεζκα ηνπ πξνγξάκκαηνο 8

Γπλακηθή δξνκνιόγεζε εληνιώλ (1) DIVD ADDD SUBD F0,F2,F4 F10,F0,F8 F12,F8,F14 dependence κεηαμύ DIVD θαη ADDD θαλέλα dependence γηα ην SUBD. Γηαηί λα πεξηκέλεη πίζσ από ην ADDD? Dynamic Scheduling: Αιιαγή ηεο ζεηξάο εθηέιεζεο εληνιώλ (out-of-order execution) δηαζθάιηζε ηεο ζσζηήο ξνήο δεδνκέλσλ δηαζθάιηζε ζσζηώλ exceptions 9

Γπλακηθή δξνκνιόγεζε εληνιώλ (2) Μπνξεί λα δηαρεηξηζηεί πεξηπηώζεηο όπνπ νη εμαξηήζεηο δελ είλαη γλσζηέο θαηά ην compile time (π.ρ., ιόγσ έκκεζσλ αλαθνξώλ ζε ζέζεηο κλήκεο) Απινπνηεί ηε ιεηηνπξγηθόηεηα ηνπ compiler Δπηηξέπεη ηελ απνδνηηθή εθηέιεζε ηνπ πξνγξάκκαηνο, αλεμαξηήησο ηνπ pipeline γηα ην νπνίν κεηαγισηηίζηεθε απηό Κάλεη δπλαηή ηελ ππνζεηηθή εθηέιεζε εληνιώλ 10

Γπλακηθή δξνκνιόγεζε εληνιώλ (3) Χαξαθηεξηζηηθά in-order instruction issue out-of-order execution out-of-order completion Τν θιαζηθό ID ηνπ 5-stage pipeline ρσξίδεηαη ζε 2 θνκκάηηα Issue: Απνθσδηθνπνίεζε εληνιώλ θαη έιεγρνο γηα structural hazards (in order issue) Read Operands: Γηάβαζκα ησλ operands όηαλ δελ ππάξρνπλ data hazards (νη εληνιέο θάλνπλ stall or bypass-εδώ εληνιέο κπνξεί λα πξνζπεξάζνπλ άιιεοκπαίλνπλ ζε ooo execution) 11

Πξνβιήκαηα ννν execution Πηζαλόηεηα WAR θαη WAW hazards antidependence: (2) θαη (3) 1.DIVD F0,F2,F4 2.ADDD F6,F0,F8 3.SUBD F8,F10,F14 4.MULD F6,F10,F8 αλ ην SUBD εθηειεζηεί πξώην δεκηνπξγείηαη WAR νutput dependence: (2) θαη (4) αλ εθηειεζηεί πξώηα ην MULD δεκηνπξγείηαη WAW 12

Scoreboarding Αληηκεηώπηζε πξνβιεκάησλ 1963 γηα ην CDC6600 scoreboard Δπίιπζε WAR hazards» Stall WB κέρξη λα δηαβαζηνύλ νη registers» Γηάβαζκα ησλ registers κόλν θαηά ην Read Operands ζηάδην Δπίιπζε WAW hazards» Αλαγλώξηζε θηλδύλνπ θαη απνθπγή έθδνζεο (issue) εληνιήο Robert Tomasulo's algorithm 1966 γηα ην IBM360/91 Δπίιπζε WAR θαη WAW hazards κε ρξήζε ηνπ register renaming Πην απνδνηηθή ηερληθή 13

Παξάδεηγκα Register Renaming DIV.D F0,F2,F4 ADD.D F6,F0,F8 S.D F6,0(R1) SUB.D F8,F10,F14 MUL.D F6,F10,F8 DIV.D F0,F2,F4 ADD.D S,F0,F8 S.D S,0(R1) SUB.D T,F10,F14 MUL.D F6,F10,T DIV.D F0,F2,F4 ADD.D F6,F0,F8 S.D F6,0(R1) SUB.D T,F10,F14 MUL.D F6,F10,T DIV.D F0,F2,F4 ADD.D S,F0,F8 S.D S,0(R1) SUB.D T,F10,F14 MUL.D F6,F10,T 14

Αιγόξηζκνο Tomasulo Reservation Stations (RS) Απνζεθεύνπλ ηνπο operands ησλ εληνιώλ πνπ πεξηκέλνπλ λα εθηειεζηνύλ Καηαλεκεκέλα καδί κε ηα Functional Units (FUs) Οη source registers θάζε εληνιήο αληηθαζίζηαληαη κε ην όλνκα ηνπ θαηάιιεινπ RS, ην νπνίν ζα ηεο παξάζρεη ην απαηηνύκελν input register renaming Απνθπγή WAR, WAW hazards Πεξηζζόηεξα RS από πξαγκαηηθνύο registers δηαζθαιίδνπλ ηελ απνθπγή θηλδύλσλ εμαηηίαο name dependences πνπ δελ κπνξεί λα επηιύζεη έλαο compiler απνηειέζκαηα ζηα FU από ηα RS, όρη κέζσ ηνπ register file, αιιά πάλσ από ην Common Data Bus πνπ θάλεη broadcast ηα απνηειέζκαηα ζε όια ηα FUs Load,Stores αληηκεησπίδνληαη θη απηά σο FUs κε RSs 15

16

MIPS floating point + load-store unit using Tomasulo s algorithm Reservation Stations: contain already issued instruction and its operands or the names of the reservation stations that will provide the operand values for this instruction Load store buffers: hold the components of the effective address, hold the results of the completed loads, track loads that are waiting on the memory 17

Tomasulo: MIPS FP-Unit From Mem FP Op Queue Load Buffers Load1 Load2 Load3 Load4 Load5 Load6 FP Registers Store Buffers Add1 Add2 Add3 FP adders Mult1 Mult2 Reservation Stations FP multipliers To Mem Common Data Bus (CDB) 18

Τα ζηάδηα ηνπ αιγνξίζκνπ Tomasulo Issue: πάξε ηελ επόκελε εληνιή από ηελ FP Op Queue Αλ ππάξρεη ειεύζεξν RS (no structural hazard), ζηείιε (issue) ζε απηό ηελ εληνιή, καδί κε ηνπο operands (rename registers) Execute: εθηέιεζε ζηελ αξηζκεηηθή κνλάδα (EX) Όηαλ θαη νη δύν operands είλαη δηαζέζηκνη, ηόηε εθηέιεζε ηελ πξάμε. Αλ δελ είλαη δηαζέζηκνη, παξαθνινύζεζε ην CDB γηα ην απνηέιεζκα Write result: ηέινο εθηέιεζεο (WB) Γξάςε ην απνηέιεζκα ζην CDB γηα όιεο ηηο κνλάδεο πνπ ην πεξηκέλνπλ. Σεκείσζε ηνλ RS σο δηαζέζηκν 19

Reservation Station fields Op: ιεηηνπξγία πξνο εθηέιεζε Πεξηγξαθή Γνκώλ (1) Vj, Vk: ηηκέο ησλ source operands Qj, Qk: πνηά RS ζα ζηείινπλ ηελ ηηκή ησλ source operands» Σε οποιαδήποηε ζηιγμή, είηε ηο Q είηε ηο V είναι έγκυρο για κάποιον operand Busy: αλ ην RS είλαη απαζρνιεκέλν ή όρη S1 S2 RS RS Name Busy Op Vj Vk Qj Qk Add1 Add2 Add3 Mult1 Mult2 No No No No No 20

Register Result status Πεξηγξαθή Γνκώλ (2) Qi : Πνην RS πεξηέρεη ηελ εληνιή ε νπνία ζα απνζεθεύζεη θάπνηα ηηκή ζηνλ register. FU F0 F2 F4 F6 F8 F10 F12... F30 Load,Store Buffer fields Α: ε effective address ηεο ζέζεο κλήκεο πξνο αλάγλσζε/εγγξαθή Busy: δείρλεη αλ ν buffer είλαη απαζρνιεκέλνο ή όρη Load1 Load2 Load3 Busy No No No Address 21

Πεξηγξαθή Γνκώλ (3) Common Data Bus Σπλεζηζκέλν data bus: data + destination ( go to bus) CDB: data + source ( come from bus) 64 bits of data + 4 bits of Functional Unit source address Αλ ην source είλαη ίδην κε ην Q πεδίν ελόο RS, γξάςε ην απνηέιεζκα ζην αληίζηνηρν V πεδίν ηνπ RS Broadcast: έλαο master, πνιινί slaves 22

23

24

Instruction stream Tomasulo Example Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 Load1 No LD F2 45+ R3 Load2 No MULTD F0 F2 F4 Load3 No SUBD F8 F6 F2 DIVD F10 F0 F6 ADDD F6 F8 F2 Reservation Stations: S1 S2 RS RS Time Name Busy Op Add1 No Add2 No FU count Add3 No down Mult1 No Mult2 No Clock cycle counter Vj Vk Qj Qk 3 Load/Buffers 3 FP Adder R.S. 2 FP Mult R.S. Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 0 FU (load: 2 cycles, add: 2 cycles, mult: 10 cycles, divide 40 cycles) 25

Tomasulo Example Cycle 1 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 Load1 Yes 34+R2 LD F2 45+ R3 Load2 No MULTD F0 F2 F4 Load3 No SUBD F8 F6 F2 DIVD F10 F0 F6 ADDD F6 F8 F2 Reservation Stations: S1 S2 RS RS Time Name Busy Op Add1 No Add2 No Add3 No Mult1 No Mult2 No Vj Vk Qj Qk Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 1 FU Load1 26

Tomasulo Example Cycle 2 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 Load1 Yes 34+R2 LD F2 45+ R3 2 Load2 Yes 45+R3 MULTD F0 F2 F4 Load3 No SUBD F8 F6 F2 DIVD F10 F0 F6 ADDD F6 F8 F2 Reservation Stations: S1 S2 RS RS Time Name Busy Op Add1 No Add2 No Add3 No Mult1 No Mult2 No Vj Vk Qj Qk Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 2 FU Load2 Load1 27

Tomasulo Example Cycle 3 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 Load1 Yes 34+R2 LD F2 45+ R3 2 Load2 Yes 45+R3 MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 DIVD F10 F0 F6 ADDD F6 F8 F2 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No Add2 No Add3 No Mult1 Yes MULTD R(F4) Load2 Mult2 No Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 3 FU Mult1 Load2 Load1 κόιηο ε εληνιή γίλεηαη issue ζε θάπνηνλ RS, ηα νλόκαηα ησλ source registers αληηθαζηζηώληαη ( renamed ) κέζσ ησλ πεδίσλ V ή Q ηνπ RS ε εληνιή ζηνλ Load1 νινθιεξώλεηαη - πνηνο πεξηκέλεη γηα ην απνηέιεζκα? 28

Tomasulo Example Cycle 4 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 Load2 Yes 45+R3 MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 4 DIVD F10 F0 F6 ADDD F6 F8 F2 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 Yes SUBD M(A1) Load2 Add2 No Add3 No Mult1 Yes MULTD R(F4) Load2 Mult2 No Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 4 FU Mult1 Load2 M(A1) Add1 ε εληνιή ζηνλ Load2 νινθιεξώλεηαη - πνηνο πεξηκέλεη γηα ην απνηέιεζκα? 29

Tomasulo Example Cycle 5 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 4 DIVD F10 F0 F6 5 ADDD F6 F8 F2 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk 2 Add1 Yes SUBD M(A1) M(A2) Add2 No Add3 No 10 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1 Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 5 FU Mult1 M(A2) M(A1) Add1 Mult2 αξρίδεη ε αληίζηξνθε κέηξεζε γηα ηνπο Add1, Mult1 (load: 1 cycle, add: 2 cycles, mult: 10 cycles, divide 40 cycles) 30

Tomasulo Example Cycle 6 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 4 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk 1 Add1 Yes SUBD M(A1) M(A2) Add2 Yes ADDD M(A2) Add1 Add3 No 9 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1 Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 6 FU Mult1 M(A2) Add2 Add1 Mult2 ε ADDD γίλεηαη issue εδώ παξά ηελ name dependency ζηνλ F6 31

Tomasulo Example Cycle 7 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 4 7 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk 0 Add1 Yes SUBD M(A1) M(A2) Add2 Yes ADDD M(A2) Add1 Add3 No 8 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1 Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 7 FU Mult1 M(A2) Add2 Add1 Mult2 ε εληνιή ζηoλ Add1 (SUBD) νινθιεξώλεηαη - πνηνο πεξηκέλεη γηα ην απνηέιεζκα? 32

Tomasulo Example Cycle 8 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No 2 Add2 Yes ADDD (M-M) M(A2) Add3 No 7 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1 Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 8 FU Mult1 M(A2) Add2 (M-M) Mult2 33

Tomasulo Example Cycle 9 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No 1 Add2 Yes ADDD (M-M) M(A2) Add3 No 6 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1 Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 9 FU Mult1 M(A2) Add2 (M-M) Mult2 34

Tomasulo Example Cycle 10 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 10 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No 0 Add2 Yes ADDD (M-M) M(A2) Add3 No 5 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1 Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 10 FU Mult1 M(A2) Add2 (M-M) Mult2 ε εληνιή ζηνλ Add2 (ADDD) νινθιεξώλεηαη - πνηνο πεξηκέλεη γηα ην απνηέιεζκα? 35

Tomasulo Example Cycle 11 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 10 11 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No Add2 No Add3 No 4 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1 Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 11 FU Mult1 M(A2) (M-M+M) (M-M) Mult2 ε ADDD γξάθεη ην απνηέιεζκά ηεο 36

Tomasulo Example Cycle 12 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 10 11 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No Add2 No Add3 No 3 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1 Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 12 FU Mult1 M(A2) (M-M+M) (M-M) Mult2 37

Tomasulo Example Cycle 13 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 10 11 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No Add2 No Add3 No 2 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1 Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 13 FU Mult1 M(A2) (M-M+M) (M-M) Mult2 38

Tomasulo Example Cycle 14 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 10 11 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No Add2 No Add3 No 1 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1 Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 14 FU Mult1 M(A2) (M-M+M) (M-M) Mult2 39

Tomasulo Example Cycle 15 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 15 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 10 11 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No Add2 No Add3 No 0 Mult1 Yes MULTD M(A2) R(F4) Mult2 Yes DIVD M(A1) Mult1 Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 15 FU Mult1 M(A2) (M-M+M) (M-M) Mult2 ε εληνιή ζηνλ Mult1 (MULTD) νινθιεξώλεηαη - πνηνο πεξηκέλεη γηα ην απνηέιεζκα? 40

Tomasulo Example Cycle 16 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 15 16 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 10 11 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No Add2 No Add3 No Mult1 No 40 Mult2 Yes DIVD M*F4 M(A1) Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 16 FU M*F4 M(A2) (M-M+M) (M-M) Mult2...εθθξεκεί πιένλ κόλν ε DIVD (div: 40 cycles) 41

42

Tomasulo Example Cycle 55 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 15 16 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 ADDD F6 F8 F2 6 10 11 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No Add2 No Add3 No Mult1 No 1 Mult2 Yes DIVD M*F4 M(A1) Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 55 FU M*F4 M(A2) (M-M+M) (M-M) Mult2 43

Tomasulo Example Cycle 56 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 15 16 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 56 ADDD F6 F8 F2 6 10 11 Reservation Stations: S1 S2 RS RS Time Name Busy Op Vj Vk Qj Qk Add1 No Add2 No Add3 No Mult1 No 0 Mult2 Yes DIVD M*F4 M(A1) Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 56 FU M*F4 M(A2) (M-M+M) (M-M) Mult2 ε εληνιή ζηνλ Mult2 (DIVD) νινθιεξώλεηαη - πνηνο πεξηκέλεη γηα ην απνηέιεζκα? 44

Tomasulo Example Cycle 57 Instruction j k Issue Comp Result Busy Address LD F6 34+ R2 1 3 4 Load1 No LD F2 45+ R3 2 4 5 Load2 No MULTD F0 F2 F4 3 15 16 Load3 No SUBD F8 F6 F2 4 7 8 DIVD F10 F0 F6 5 56 57 ADDD F6 F8 F2 6 10 11 Reservation Stations: S1 S2 RS RS Σπλνςίδνληαο: In-order issue, out-of-order execution θαη out-of-order completion. Time Name Busy Op Vj Vk Qj Qk Add1 No Add2 No Add3 No Mult1 No Mult2 Yes DIVD M*F4 M(A1) Register result status: Clock F0 F2 F4 F6 F8 F10 F12... F30 56 FU M*F4 M(A2) (M-M+M) (M-M) Result 45

Tomasulo Loop Example Loop: LD F0 0 R1 MULTD F4 F0 F2 SD F4 0 R1 SUBI R1 R1 #8 BNEZ R1 Loop mult: 4 cycles 1st load: 8 cycles (L1 cache miss) 2nd load: 4 cycles (hit) ην branch πξνβιέπεηαη ζαλ ΤΑΚΔΝ 46

Loop Example ITER Instruction j k Issue Comp Result Busy 1 LD F0 0 R1 Load1 No 1 MULTD F4 F0 F2 Load2 No Iteration Count 1 SD F4 0 R1 Load3 No 2 LD F0 0 R1 Store1 No 2 MULTD F4 F0 F2 Store2 No 2 SD F4 0 R1 Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: πξνζζέζακε Store Buffers Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 No SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Instruction Loop Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 0 80 Fu Addr Fu ηηκή θαηαρσξεηή πνπ ρξεζηκνπνηείηαη γηα δηεπζύλζεηο θαη επαλαιήςεηο 47

Loop Example Cycle 1 ITER Instruction j k Issue Comp Result Busy 1 LD F0 0 R1 1 Load1 Yes 80 Load2 No Load3 No Store1 No Store2 No Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 No SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 Fu 1 80 Load1 Addr Fu 48

Loop Example Cycle 2 ITER Instruction j k Issue Comp Result Busy 1 LD F0 0 R1 1 Load1 Yes 80 1 MULTD F4 F0 F2 2 Load2 No Load3 No Store1 No Store2 No Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load1 SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 Fu 2 80 Load1 Mult1 Addr Fu ` 49

Loop Example Cycle 3 ITER Instruction j k Issue Comp Result Busy 1 LD F0 0 R1 1 Load1 Yes 80 1 MULTD F4 F0 F2 2 Load2 No 1 SD F4 0 R1 3 Load3 No Reservation Stations: S1 S2 RS Store1 Yes 80 Mult1 Store2 No Store3 No Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load1 SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 Fu 3 80 Load1 Mult1 Addr Fu 50

Loop Example Cycle 4 ITER Instruction j k Issue Comp Result Busy 1 LD F0 0 R1 1 Load1 Yes 80 1 MULTD F4 F0 F2 2 Load2 No 1 SD F4 0 R1 3 Load3 No Reservation Stations: S1 S2 RS Store1 Yes 80 Mult1 Store2 No Store3 No Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load1 SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 Fu 4 80 Load1 Mult1 (ε εληνιή SUBI -δε βξίζθεηαη ζηελ FP queue- γίλεηαη dispatch) Addr Fu 51

Loop Example Cycle 5 ITER Instruction j k Issue Comp Result Busy 1 LD F0 0 R1 1 Load1 Yes 80 1 MULTD F4 F0 F2 2 Load2 No 1 SD F4 0 R1 3 Load3 No Reservation Stations: S1 S2 RS (ην ίδην θαη ε BNEZ) Store1 Yes 80 Mult1 Store2 No Store3 No Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load1 SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 Fu 5 72 Load1 Mult1 Addr Fu 52

Loop Example Cycle 6 ITER Instruction j k Issue Comp Result Busy 1 LD F0 0 R1 1 Load1 Yes 80 1 MULTD F4 F0 F2 2 Load2 Yes 72 1 SD F4 0 R1 3 Load3 No 2 LD F0 0 R1 6 Store1 Yes 80 Mult1 Reservation Stations: S1 S2 RS Store2 Store3 Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load1 SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 Fu 6 72 Load2 Mult1 Ο F0 πνηέ δελ βιέπεη θάπνην load από ηε ζέζε 80 No No Addr Fu 53

Loop Example Cycle 7 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 Load1 Yes 80 1 MULTD F4 F0 F2 2 Load2 Yes 72 1 SD F4 0 R1 3 Load3 No 2 LD F0 0 R1 6 Store1 Yes 80 Mult1 2 MULTD F4 F0 F2 7 Store2 No Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load1 SUBI R1 R1 #8 Mult2 Yes Multd R(F2) Load2 BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 7 72 Fu Load2 Mult2 ην register file είλαη απνζπλδεδεκέλν από ηνπο ππνινγηζκνύο ε 1 ε θαη ε 2 ε επαλάιεςε επηθαιύπηνληαη πιήξσο 54

Loop Example Cycle 8 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 Load1 Yes 80 1 MULTD F4 F0 F2 2 Load2 Yes 72 1 SD F4 0 R1 3 Load3 No 2 LD F0 0 R1 6 Store1 Yes 80 Mult1 2 MULTD F4 F0 F2 7 Store2 Yes 72 Mult2 2 SD F4 0 R1 8 Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load1 SUBI R1 R1 #8 Mult2 Yes Multd R(F2) Load2 BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 8 72 Fu Load2 Mult2 55

Loop Example Cycle 9 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 Load1 Yes 80 1 MULTD F4 F0 F2 2 Load2 Yes 72 1 SD F4 0 R1 3 Load3 No 2 LD F0 0 R1 6 Store1 Yes 80 Mult1 2 MULTD F4 F0 F2 7 Store2 Yes 72 Mult2 2 SD F4 0 R1 8 Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load1 SUBI R1 R1 #8 Mult2 Yes Multd R(F2) Load2 BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 ε εληνιή ζηνλ Load1 νινθιεξώλεηαη - πνηνο πεξηκέλεη γηα ην απνηέιεζκα? (ε SUBI γίλεηαη dispatch) 9 72 Fu Load2 Mult2 56

Loop Example Cycle 10 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 10 Load1 No 1 MULTD F4 F0 F2 2 Load2 Yes 72 1 SD F4 0 R1 3 Load3 No 2 LD F0 0 R1 6 10 Store1 Yes 80 Mult1 2 MULTD F4 F0 F2 7 Store2 Yes 72 Mult2 2 SD F4 0 R1 8 Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 4 Mult1 Yes Multd M[80] R(F2) SUBI R1 R1 #8 Mult2 Yes Multd R(F2) Load2 BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 10 64 Fu Load2 Mult2 ε εληνιή ζηνλ Load2 νινθιεξώλεηαη - πνηνο πεξηκέλεη γηα ην απνηέιεζκα? (ε BNEZ γίλεηαη dispatch) 57

Loop Example Cycle 11 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 10 Load1 No 1 MULTD F4 F0 F2 2 Load2 No 1 SD F4 0 R1 3 Load3 Yes 64 2 LD F0 0 R1 6 10 11 Store1 Yes 80 Mult1 2 MULTD F4 F0 F2 7 Store2 Yes 72 Mult2 2 SD F4 0 R1 8 Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 3 Mult1 Yes Multd M[80] R(F2) SUBI R1 R1 #8 4 Mult2 Yes Multd M[72] R(F2) BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 11 64 Fu Load3 Mult2 επόκελν load ζηελ αθνινπζία 58

Loop Example Cycle 12 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 10 Load1 No 1 MULTD F4 F0 F2 2 Load2 No 1 SD F4 0 R1 3 Load3 Yes 64 2 LD F0 0 R1 6 10 11 Store1 Yes 80 Mult1 2 MULTD F4 F0 F2 7 Store2 Yes 72 Mult2 2 SD F4 0 R1 8 Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 2 Mult1 Yes Multd M[80] R(F2) SUBI R1 R1 #8 3 Mult2 Yes Multd M[72] R(F2) BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 12 64 Fu Load3 Mult2 γηαηί λα κελ θάλνπκε issue θαη ηξίην mult? 59

Loop Example Cycle 13 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 10 Load1 No 1 MULTD F4 F0 F2 2 Load2 No 1 SD F4 0 R1 3 Load3 Yes 64 2 LD F0 0 R1 6 10 11 Store1 Yes 80 Mult1 2 MULTD F4 F0 F2 7 Store2 Yes 72 Mult2 2 SD F4 0 R1 8 Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 1 Mult1 Yes Multd M[80] R(F2) SUBI R1 R1 #8 2 Mult2 Yes Multd M[72] R(F2) BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 13 64 Fu Load3 Mult2 γηαηί λα κελ θάλνπκε issue θαη ηξίην store? 60

Loop Example Cycle 14 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 10 Load1 No 1 MULTD F4 F0 F2 2 14 Load2 No 1 SD F4 0 R1 3 Load3 Yes 64 2 LD F0 0 R1 6 10 11 Store1 Yes 80 Mult1 2 MULTD F4 F0 F2 7 Store2 Yes 72 Mult2 2 SD F4 0 R1 8 Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 0 Mult1 Yes Multd M[80] R(F2) SUBI R1 R1 #8 1 Mult2 Yes Multd M[72] R(F2) BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 ε εληνιή ζηνλ Mult1 νινθιεξώλεηαη - πνηνο πεξηκέλεη γηα ην απνηέιεζκα? 14 64 Fu Load3 Mult2 61

Loop Example Cycle 15 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 10 Load1 No 1 MULTD F4 F0 F2 2 14 15 Load2 No 1 SD F4 0 R1 3 Load3 Yes 64 2 LD F0 0 R1 6 10 11 Store1 Yes 80 [80]*R2 2 MULTD F4 F0 F2 7 15 Store2 Yes 72 Mult2 2 SD F4 0 R1 8 Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 No SUBI R1 R1 #8 0 Mult2 Yes Multd M[72] R(F2) BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 ε εληνιή ζηνλ Mult2 νινθιεξώλεηαη - πνηνο πεξηκέλεη γηα ην απνηέιεζκα? 15 64 Fu Load3 Mult2 62

Loop Example Cycle 16 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 10 Load1 No 1 MULTD F4 F0 F2 2 14 15 Load2 No 1 SD F4 0 R1 3 Load3 Yes 64 2 LD F0 0 R1 6 10 11 Store1 Yes 80 [80]*R2 2 MULTD F4 F0 F2 7 15 16 Store2 Yes 72 [72]*R2 2 SD F4 0 R1 8 Store3 No Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 4 Mult1 Yes Multd R(F2) Load3 SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 16 64 Fu Load3 Mult1 Γίλεηαη issue ην 3 ν MULTD 63

Loop Example Cycle 17 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 10 Load1 No 1 MULTD F4 F0 F2 2 14 15 Load2 No 1 SD F4 0 R1 3 Load3 Yes 64 2 LD F0 0 R1 6 10 11 Store1 Yes 80 [80]*R2 2 MULTD F4 F0 F2 7 15 16 Store2 Yes 72 [72]*R2 2 SD F4 0 R1 8 Store3 Yes 64 Mult1 Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load3 SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 17 64 Fu Load3 Mult1 κπνξεί λα γίλεη issue θαη ην 3 ν SD 64

Loop Example Cycle 18 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 10 Load1 No 1 MULTD F4 F0 F2 2 14 15 Load2 No 1 SD F4 0 R1 3 18 Load3 Yes 64 2 LD F0 0 R1 6 10 11 Store1 Yes 80 [80]*R2 2 MULTD F4 F0 F2 7 15 16 Store2 Yes 72 [72]*R2 2 SD F4 0 R1 8 Store3 Yes 64 Mult1 Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load3 SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 18 64 Fu Load3 Mult1 νινθιεξώλεηαη ε εθηέιεζε ηνπ 1 νπ SD 65

Loop Example Cycle 19 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 10 Load1 No 1 MULTD F4 F0 F2 2 14 15 Load2 No 1 SD F4 0 R1 3 18 19 Load3 Yes 64 2 LD F0 0 R1 6 10 11 Store1 No 2 MULTD F4 F0 F2 7 15 16 Store2 Yes 72 [72]*R2 2 SD F4 0 R1 8 19 Store3 Yes 64 Mult1 Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load3 SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 19 56 Fu Load3 Mult1 νινθιεξώλεηαη ε εθηέιεζε ηνπ 2 νπ SD 66

Loop Example Cycle 20 ITER Instruction j k Issue Comp Result Busy Addr Fu 1 LD F0 0 R1 1 9 10 Load1 Yes 56 1 MULTD F4 F0 F2 2 14 15 Load2 No 1 SD F4 0 R1 3 18 19 Load3 Yes 64 2 LD F0 0 R1 6 10 11 Store1 No 2 MULTD F4 F0 F2 7 15 16 Store2 No 2 SD F4 0 R1 8 19 20 Store3 Yes 64 Mult1 Reservation Stations: S1 S2 RS Time Name Busy Op Vj Vk Qj Qk Code: Add1 No LD F0 0 R1 Add2 No MULTD F4 F0 F2 Add3 No SD F4 0 R1 Mult1 Yes Multd R(F2) Load3 SUBI R1 R1 #8 Mult2 No BNEZ R1 Loop Register result status Clock R1 F0 F2 F4 F6 F8 F10 F12... F30 20 56 Fu Load1 Mult1 Σσνουίζονηας για άλλη μια θορά: In-order issue, out-of-order execution και out-of-order completion 67

Γηαηί ηειηθά θαηαθέξλεη ν αιγόξηζκνο λα επηθαιύςεη ηηο επαλαιήςεηο? Register renaming δηαδνρηθέο επαλαιήςεηο ρξεζηκνπνηνύλ δηαθνξεηηθνύο «θπζηθνύο πξννξηζκνύο» σο destination registers (dynamic loop unrolling). Reservation stations επηηξέπνπλ ην issue ησλ εληνιώλ λα πξνσζεζεί ζε ζρέζε κε ηηο integer control εληνιέο ηνπ loop θάλνπλ buffer ηηο παιηέο ηηκέο ησλ registers απνθεύγνληαη πιήξσο ηα stalls εμαηηίαο ησλ WAR hazards 68

Βαζηθά πιενλεθηήκαηα ηνπ αιγνξίζκνπ ε θαηαλεκεκέλε ινγηθή γηα ηελ αλίρλεπζε ησλ hazards θαηαλεκεκέλνη reservation stations αλ πνιιέο εληνιέο πεξηκέλνπλ 1 απνηέιεζκα (θαη έρνπλ ηνλ άιινλ operand δηαζέζηκν), ηόηε κπνξνύλ λα «απειεπζεξσζνύλ» ηασηότρονα όηαλ απηό γίλεη broadcast ζην CDB» αλ ρξεζηκνπνηνύηαλ έλα θεληξηθό register file, ηόηε νη κνλάδεο εθηέιεζεο ζα έπξεπε λα δηαβάδνπλ από εθεί ηα δεδνκέλα ηνπο, θάζε θνξά πνπ ζα ηνπο παξαρσξείην ην register bus ε απνθπγή ησλ stalls εμαηηίαο ησλ WAW θαη WAR hazards register renaming από reservation stations 69

Explicit Register Renaming(1) ΙΓΔΑ : Γηαηί λα κελ έρσ άπεηξνπο registers ώζηε λα κπνξώ λα εθηειώ πην εύθνια θαη απνδνηηθά register renaming; Απαηηείηαη : Έλα physical register file κε πεξηζζόηεξνπο physical register από όηη ISA registers Translation Table (γξήγνξα πξνζπειάζηκνο) Μεραληζκόο εληνπηζκνύ ειεύζεξσλ physical registers 70

Explicit Register Renaming(2) Τν pipeline κπνξεί λα παξακείλεη ίδην κε ην θιαζζηθό 5-stage pipeline Fetch Decode/ Rename Execute Rename Table Καηά ην decode θάζε ISA register πνπ ρξεζηκνπνηείηαη σο όξηζκα ηεο εληνιήο αληηζηνηρίδεηαη ζε έλαλ physical register.» target : Δπηιέγεηαη έλαο από ηνπο ειεύζεξνπο registers θαη ε αληηζηνίρεζε απηή απνζεθεύεηαη ζην Register Map Table (RMT)» source : Xξεζηκνπνηείηαη ε ηειεπηαία αληηζηνίρηζε πνπ είλαη απνζεθεπκέλε ζην RMT Κάζε physical register πνπ δελ ρξεζηκνπνηείηαη από θακηά εληνιή ζε εθηέιεζε, ζεσξείηαη ειεύζεξνο. 71

Παξάδεηγκα Instruction Stream Register Map Table Free Registers DIV R5,R4,R2 ADD R7,R5,R1 SUB R5,R3,R2 LD R7,1000(R5) R1 PR23 R2 PR2 PR37,PR4,PR42,PR19,... R3 PR17 R4 PR45 R5 PR13 R6 PR20 R7 PR30...... 72

Παξάδεηγκα (1) Instruction Stream Register Map Table Free Registers DIV R5,R4,R2 ADD R7,R5,R1 SUB R5,R3,R2 LD R7,1000(R5) R1 PR23 R2 PR2 PR37,PR4,PR42,PR19,... R3 PR17 R4 PR45 R5 PR13 R6 PR20 R7 PR30...... DIV PR37,PR45,PR2 73

Παξάδεηγκα (2) Instruction Stream Register Map Table Free Registers DIV R5,R4,R2 ADD R7,R5,R1 SUB R5,R3,R2 LD R7,1000(R5) R1 PR23 R2 PR2 PR4,PR42,PR19,... R3 PR17 R4 PR45 R5 PR37 R6 PR20 R7 PR30...... DIV ADD PR37,PR45,PR2 PR4,PR37,PR23 74

Παξάδεηγκα (3) Instruction Stream Register Map Table Free Registers DIV R5,R4,R2 ADD R7,R5,R1 SUB R5,R3,R2 LD R7,1000(R5) R1 PR23 R2 PR2 PR42,PR19,... R3 PR17 R4 PR45 R5 PR37 R6 PR20 R7 PR4...... DIV ADD SUB PR37,PR45,PR2 PR4,PR37,PR23 PR42,PR17,PR2 75

Παξάδεηγκα (4) Instruction Stream Register Map Table Free Registers DIV R5,R4,R2 ADD R7,R5,R1 SUB R5,R3,R2 LD R7,1000(R5) R1 PR23 R2 PR2 PR19,... R3 PR17 R4 PR45 R5 PR42 R6 PR20 R7 PR4...... DIV ADD SUB LD PR37,PR45,PR2 PR4,PR37,PR23 PR42,PR17,PR2 PR19,1000(PR42) 76

Πιενλεθηήκαηα Γε ρξεηάδεηαη reservation stations Απνζύλδεζε ηνπ renaming από ην scheduling ησλ εληνιώλ Τν pipeline κπνξεί λα παξακείλεη απιό όπσο ην θιαζηθό 5-stage pipeline Τα δεδνκέλα κεηαθέξνληαη από έλα κνλαδηθό register file Απνθπγή όισλ ησλ WAR,WAW hazards Eπηηξέπεη (όπσο θαη ν Tomasulo) out-of-order completion Πνιιέο ζύγρξνλεο αξρηηεθηνληθέο ρξεζηκνπνηνύλ ζπλδπαζκό explicit register renaming + Tomasulo 77