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

Σχετικά έγγραφα
Υποθετική Εκτέλεση Εντολών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CS425 Computer Systems Architecture

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

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

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

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

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

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Constructors and Destructors in C++

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

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

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

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

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

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

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

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

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

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

CS-425 Mid-term exam

(Branch Prediction Mechanisms)

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

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

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

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

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

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

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

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

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

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

Εντολές Διακλάδωσης. #bubbles ~= pipeline depth X loop length. Next fetch started. Fetch. I-cache. Fetch Buffer. Decode. Issue Buffer.

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

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

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

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

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

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Intel Accelerate Your Code

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

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

Αντισταθμιστική ανάλυση

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

ΔΠΙΣΡΟΠΗ ΓΙΑΓΩΝΙΜΩΝ 74 ος ΠΑΝΔΛΛΗΝΙΟ ΜΑΘΗΣΙΚΟ ΓΙΑΓΩΝΙΜΟ ΣΑ ΜΑΘΗΜΑΣΙΚΑ Ο ΘΑΛΗ 19 Οκηωβρίοσ Δνδεικηικές λύζεις

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

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

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

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

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

Μέθοδοι Πρόβλεψης Διακλαδώσεων (Branch Prediction Mechanisms)

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

ΓΔΧΜΔΣΡΙΑ ΓΙΑ ΟΛΤΜΠΙΑΓΔ

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

T A E K W O N D O. Δ. ΠπθαξΨο. ΔπΫθνπξνο ΘαζεγεηΪο ΑζιεηηθΪο ΦπζηθνζεξαπεΫαο ΡΔΦΑΑ - ΑΞΘ

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

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

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

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

Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ

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

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων

Transcript:

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

Τερληθέο βειηίσζεο ηνπ 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 2

Γπλακηθή Γξνκνιόγεζε Δληνιώλ Tomasulo, Explicit Register Renaming in-order issue out-of-order execution out-of-order completion Πεξηζζόηεξνο παξαιιειηζκόο (ILP) Βειηίσζε ηεο απόδνζεο ηνπ ζπζηήκαηνο Πξνβιήκαηα Interrupts/Exceptions Δληνιέο δηαθιάδσζεο (branches) 3

etwork Interrupt Device Interrupt add r1,r2,r3 subi r4,r1,#4 slli r4,r4,#2 (!) lw r2,0(r4) lw r3,4(r4) add r2,r2,r3 sw 8(r4),r2 Μεγάισζε priority Δλεξγνπνίεζε Ints Σώζε registers lw r1,20(r0) lw r2,0(r1) addi r3,r0,#5 sw 0(r1),r3 Δπαλέθεξε registers Καζάξηζε Int Απελεξγ. Ints Δπαλέθεξε priority RTE 4

External Interrupt Precise Interrupts/Exceptions Έλα interrupt ή exception νλνκάδεηαη precise εάλ ππάξρεη κία εληνιή (ή interrupt point) γηα ην νπνίν: Όιεο νη πξνεγνύκελεο εληνιέο έρνπλ πιήξσο εθηειεζηεί. Κακία εληνιή (καδί κε ηελ interrupting instruction) δελ έρεη αιιάμεη ηελ θαηάζηαζε ηεο κεραλήο. Απηό ζεκαίλεη όηη κπνξνύκε λα επαλεθθηλήζνπκε ηελ εθηέιεζε από ην interrupt point θαη λα πάξνπκε ηα ζσζηά απνηειέζκαηα Σην παξάδεηγκά καο: Interrupt point είλαη ε lw εληνιή add subi slli lw lw add sw r1,r2,r3 r4,r1,#4 r4,r4,#2 r2,0(r4) r3,4(r4) r2,r2,r3 8(r4),r2 Int handler 5

Γηαηί ρξεηαδόκαζηε ηα precise interrupts? Αξθεηά interrupts/exceptions ρξεηάδνληαη λα είλαη restartable π.ρ. TLB faults: δηόξζσζε translation θαη επαλάιεςε ηνπ load/store IEEE underflows, illegal operations Η επαλεθθίλεζε δελ απαηηεί preciseness. Ωζηόζν, κε preciseness είλαη πνιύ πην εύθνιε! Απινπνίεη ην ιεηηνπξγηθό ζύζηεκα ην process state πνπ ρξεηάδεηαη λα απνζεθεπηεί είλαη κηθξόηεξν ε επαλεθθίλεζε γίλεηαη γξήγνξα (θαιό γηα interrupts κηθξήο δηάξθεηαο/κεγάιεο ζπρλόηεηαο) 6

Πνύ είλαη ην πξόβιεκα? Όιεο νη ηερληθέο πνπ είδακε κέρξη ηώξα (Tomasulo, Explicit Register Renaming) πινπνηνύλ out-of-order completion Imprecise θαη όρη Precise Interrupts/Exceptions» Δίλαη πηζαλό όηαλ εκθαληζζεί έλα Interrupt/Exception ε θαηάζηαζε ηεο κεραλήο (processor state) λα είλαη δηαθνξεηηθή από όηη αλ νη εληνιέο είραλ εθηειεζηεί ζεηξηαθά Imprecise Πξέπεη λα αιιάμνπκε ηε ινγηθή ηνπ out-of-order completion, ώζηε λα κπνξνύκε λα νξίδνπκε precise interrupt points κέζα ζην instruction stream Πξέπεη λα βξνύκε ηξόπν ώζηε λα ζςγσπονίζοςμε ην completion ζηάδην ησλ εληνιώλ κε ηελ ζεηξά ζην πξόγξακκα (issue-order) Ο απινύζηεξνο ηξόπνο: in-order completion 7

Δληνιέο δηαθιάδσζεο (branches) Γηα λα βειηηώζνπκε ηελ απόδνζε ηνπ ζπζηήκαηνο ρξεζηκνπνηνύκε branch prediction Δπνκέλσο θαηά ην ooo execution εθηεινύκε εληνιέο νη νπνίεο εμαξηώληαη από ην απνηέιεζκα ηεο εληνιήο δηαθιάδσζεο Αλ ε πξόβιεςε δελ επαιεζεπηεί, ζα πξέπεη λα θάλνπκε rollback ζην ζεκείν όπνπ θάλακε ηελ πξόβιεςε, δηόηη νη εληνιέο ζην ιαλζαζκέλν predicted path έρνπλ ήδε εθηειεζηεί Απηό αθξηβώο είλαη ην πξόβιεκα θαη κε ηα precise exceptions! Λύζε: in-order completion 8

Ιδέα ηνπ Reorder Buffer (ROB): Hardware Support Κξάηα εληνιέο ζε κία FIFO, αθξηβώο κε ηελ ζεηξά πνπ γίλνληαη issue.» Κάζε ROB entry πεξηέρεη: instruction type (branch/store/register op), destination, value, ready field Όηαλ ε εληνιή ηειεηώζεη ηελ εθηέιεζε, ηνπνζέηεζε ηα απνηειέζκαηα ζηνλ ROB.» Παξέρεη operands ζε άιιεο εληνιέο ζην δηάζηεκα κεηαμύ execution complete & commit Η εληνιή αιιάδεη ηελ θαηάζηαζε ηεο κεραλήο ζην commit ζηάδην όρη ζην WB in-order commit νη ηηκέο ζηελ θεθαιή ηνπ ROB απνζεθεύνληαη ζην register file Δύθνιε ε αλαίξεζε ζε πεξίπησζε mispredicted branches ή ζε exceptions» Απιά δηαγξαθή ησλ speculated instructions πνπ βξίζθνληαη ζην ROB Commit path FP Op Queue Res Stations FP Adder Reorder Buffer FP Regs Res Stations FP Adder 9

Αιγόξηζκνο Tomasulo κε ROB Issue Πάξε εληνιή από FP Op Queue Αλ ππάξρεη ειεύζεξν reservation station & reorder buffer entry, issue instr & send operands & reorder buffer no. for destination Execution Δθηέιεζε εληνιή ζην Ex Unit (EX) Όηαλ θαη νη ηηκέο θαη ησλ 2 source regs είλαη έηνηκεο εθηέιεζε ηελ εληνιή; Aλ όρη, παξαθνινύζεζε ην CDB γηα ην απνηέιεζκα; Όηαλ θαη νη 2 ηηκέο βξίζθνληαη ζην RS, εθηέιεζε ηελ εληνιή; (checks RAW) Write result Τέινο εθηέιεζεο (WB) Γξάςε ην απνηέιεζκα ζην CDB πξνο όιεο ηηο κνλάδεο πνπ ην πεξηκέλνπλ & ζηνλ reorder buffer; Σεκείσζε ηνλ RS σο δηαζέζηκν. Commit Αλαλέσζε ηνλ dest register κε ην απνηέιεζκα από ηνλ reorder buffer Όηαλ ε εληνιή θηάζεη ζηελ θεθαιή ηνπ reorder buffer & ην result είλαη δηαζέζηκν, αλαλέσζε ηνλ dest register κε απηό (ή, αληίζηνηρα, απνζήθεπζε ζηε κλήκε) θαη βγάιε ηελ εληνιή από ηνλ reorder buffer. Όηαλ ε εληνιή είλαη mispredicted branch, θαζάξηζε (flush) ηνλ reorder buffer θαη επαλεθθίλεζε ηελ εθηέιεζε ζην ζσζηό path. 10

11

12

13

FP Op Queue Tomasulo With Reorder buffer(1) Reorder Buffer Commit pntr Value Instruction Ready F0 L.D F0,0(R1) ROB7 ROB6 ROB5 ROB4 ROB3 ROB2 ROB1 ewest Oldest Registers To Memory from Memory FP adders Reservation Stations FP multipliers 1 R1 14

FP Op Queue Tomasulo With Reorder buffer(2) Reorder Buffer Commit pntr Value Instruction Ready F4 F0 MUL.D F4,F0,F2 L.D F0,0(R1) ROB7 ROB6 ROB5 ROB4 ROB3 ROB2 ROB1 ewest Oldest Registers FP adders Reservation Stations 2 MULD ROB1,R(F2) FP multipliers To Memory from Memory 1 R1 15

FP Op Queue Tomasulo With Reorder buffer(3) Reorder Buffer Commit pntr Value Instruction Ready --- F4 F0 ROB2 S.D F4,0(R1) MUL.D F4,F0,F2 L.D F0,0(R1) ROB7 ROB6 ROB5 ROB4 ROB3 ROB2 ROB1 ewest Oldest Registers FP adders Reservation Stations 2 MULD ROB1,R(F2) FP multipliers To Memory from Memory 1 R1 16

FP Op Queue Tomasulo With Reorder buffer(4) Reorder Buffer Commit pntr Value Instruction Ready R1 -- F4 F0 ROB2 DADIU R1,R1,#-8 S.D F4,0(R1) MUL.D F4,F0,F2 L.D F0,0(R1) ROB7 ROB6 ROB5 ROB4 ROB3 ROB2 ROB1 ewest Oldest Registers FP adders Reservation Stations 2 MULD ROB1,R(F2) FP multipliers To Memory from Memory 1 R1 17

FP Op Queue Tomasulo With Reorder buffer(5) Reorder Buffer Branch predicted taken Commit pntr Value Instruction Ready -- BE R1,R2,LOOP R1 DADIU R1,R1,#-8 Y -- F4 F0 ROB2 S.D F4,0(R1) MUL.D F4,F0,F2 L.D F0,0(R1) ROB7 ROB6 ROB5 ROB4 ROB3 ROB2 ROB1 ewest Oldest Registers FP adders Reservation Stations 2 MULD ROB1,R(F2) FP multipliers To Memory from Memory 1 R1 18

FP Op Queue Tomasulo With Reorder buffer(6) Reorder Buffer Commit pntr Value Instruction Ready F0 L.D F0,0(R1) -- BE R1,R2,LOOP R1 DADIU R1,R1,#-8 Y -- F4 F0 ROB2 S.D F4,0(R1) MUL.D F4,F0,F2 L.D F0,0(R1) ROB7 ROB6 ROB5 ROB4 ROB3 ROB2 ROB1 ewest Oldest Registers FP adders Reservation Stations 2 MULD ROB1,R(F2) FP multipliers To Memory from Memory 1 R1 6 ROB4 19

FP Op Queue Tomasulo With Reorder buffer(7) Reorder Buffer Commit pntr Value Instruction Ready F4 F0 MUL.D F4,F0,F2 L.D F0,0(R1) -- BE R1,R2,LOOP Y R1 DADIU R1,R1,#-8 Y -- F4 F0 ROB2 S.D F4,0(R1) MUL.D F4,F0,F2 L.D F0,0(R1) ROB7 ROB6 ROB5 ROB4 ROB3 ROB2 ROB1 ewest Oldest Registers FP adders Reservation Stations 2 MULD ROB1,R(F2) 7 MULD ROB6,R(F2) FP multipliers To Memory from Memory 1 R1 6 ROB4 20

FP Op Queue Tomasulo With Reorder buffer(8) Reorder Buffer Commit pntr Value Instruction Ready F4 F0 MUL.D F4,F0,F2 L.D F0,0(R1) -- BE R1,R2,LOOP Y R1 DADIU R1,R1,#-8 Y -- F4 F0 ROB2 M[R1] S.D F4,0(R1) MUL.D F4,F0,F2 L.D F0,0(R1) Y ROB7 ROB6 ROB5 ROB4 ROB3 ROB2 ROB1 ewest Oldest Registers FP adders Reservation Stations 22MULD ROB1,R(F2) 7 MULD ROB6,R(F2) FP multipliers To Memory from Memory 6 ROB4 21

FP Op Queue Tomasulo With Reorder buffer(9) Reorder Buffer Commit pntr Value Instruction Ready F4 F0 M[ROB4] MUL.D F4,F0,F2 L.D F0,0(R1) Y -- BE R1,R2,LOOP Y R1 DADIU R1,R1,#-8 Y -- F4 ROB2 S.D F4,0(R1) MUL.D F4,F0,F2 ROB7 ROB6 ROB5 ROB4 ROB3 ROB2 ROB1 ewest Oldest Registers FP adders Reservation Stations 2 MULD ROB1,R(F2) 7 MULD ROB6,R(F2) FP multipliers To Memory from Memory 22

FP Op Queue Tomasulo With Reorder buffer(12) Reorder Buffer Commit pntr Value Instruction Ready F4 F0 M[ROB4] MUL.D F4,F0,F2 L.D F0,0(R1) Y -- BE R1,R2,LOOP Y R1 DADIU R1,R1,#-8 Y -- F4 ROB2 VAL1 S.D F4,0(R1) MUL.D F4,F0,F2 Y ROB7 ROB6 ROB5 ROB4 ROB3 ROB2 ROB1 ewest Oldest Registers FP adders Reservation Stations 2 MULD ROB1,R(F2) 7 MULD ROB6,R(F2) FP multipliers To Memory from Memory 23

FP Op Queue Tomasulo With Reorder buffer(13) Commit pntr Reorder Buffer Value Instruction Ready F4 F0 M[ROB4] MUL.D F4,F0,F2 L.D F0,0(R1) Y -- BE R1,R2,LOOP Y R1 DADIU R1,R1,#-8 Y -- ROB2 S.D F4,0(R1) ROB7 ROB6 ROB5 ROB4 ROB3 ROB2 ROB1 ewest Oldest Registers FP adders Reservation Stations 2 MULD ROB1,R(F2) 7 MULD ROB6,R(F2) FP multipliers To Memory from Memory 24

Tomasulo With Reorder buffer(13) Σην ζεκείν απηό γίλεηαη commit ην SD, ελώ θαζώο αδεηάδεη ν ROB εηζέξρνληαη θαηλνύξηεο εληνιέο. Οη άιιεο εληνιέο (DADDIU,BE,LD) ελώ έρνπλ εθηειεζηεί δελ έρνπλ γίλεη αθόκα commit. Αλ ε πξόβιεςε taken γηα ην BE ήηαλ ζσζηή, νη επόκελεο εληνιέο πνπ έρνπλ εθηειεζηεί γίλνληαη θαλνληθά commit. Αλ αλαθαιύςνπκε όκσο όηη ήηαλ ιάζνο, ηόηε απιά δηαγξάθνπκε ηηο εληνιέο από ην BE θαη πάλσ κέζα ζηνλ ROB. Η εθηέιεζε ζπλερίδεηαη από ην ζσζηό ζεκείν. Aggressive ζπζηήκαηα ζα κπνξνύζαλ λα θάλνπλ ηε δηαγξαθή πξίλ ν commit_pntr θηάζεη ζην BE 25

Hazards Γελ ππάξρνπλ WAW, WAR hazards Γηα ηελ απνθπγή RAW hazards αθνινπζνύκε ηα εμήο βήκαηα: Αλ θάπνην store πξνεγείηαη ελόο load, θαζπζηεξνύκε ην load κέρξη ην store λα ππνινγίζεη ην address ηνπ Αλ load_address = store_address, ηόηε ππάξρεη πηζαλόηεηα RAW θαη : Αλ ε ηηκή ηνπ store είλαη γλσζηή, ηελ πεξλάκε ζην load Aλ ε ηηκή ηνπ store δελ είλαη γλσζηή, ηόηε ην load ρξεζηκνπνίεη σο source ην λνύκεξν ηνπ ROB πνπ πεξηέρεη ην store Απνζηνιή ηνπ request ζηε κλήκε 26

Out-of-order εθηέιεζε: επαλεμέηαζε ππεξβαζκσηώλ αξρηηεθηνληθώλ... 27

Βαζκσηή αξρηηεθηνληθή αγσγνύ κεηαμύ δύν ζηαδίσλ ηνπ pipeline ππάξρεη πάληα έλαο ελδηάκεζνο θαηαρσξεηήο δεδνκέλσλ (pipeline register ή buffer) ζηηο βαζκσηέο ζσιελώζεηο, θάζε buffer έρεη κία κόλν ζύξα εηζόδνπ θαη κία εμόδνπ 28

Υπεξβαζκσηή αξρηηεθηνληθή αγσγνύ θάζε buffer έρεη πνιιαπιέο ζύξεο εηζόδνπ θαη εμόδνπ, θαη απνηειείηαη απν πνιιαπινύο ελδηάκεζνπο θαηαρσξεηέο θάζε ελδηάκεζνο θαηαρσξεηήο κπνξεί λα ιάβεη δεδνκέλα κόλν από κία ζύξα δελ ππάξρεη δπλαηόηεηα δηαθίλεζεο ησλ δεδνκέλσλ κεηαμύ ησλ θαηαρσξεηώλ ηνπ ίδηνπ buffer 29

Υπεξβαζκσηή αξρηηεθηνληθή αγσγνύ εθηέιεζε εθηόο ζεηξάο (out-of-order) νη εληνιέο πνπ θαζπζηεξνύλ κέζα ζηε ζσιήλσζε (stall) παξαθάκπηνληαη θαη ζπλερίδεηαη ε ξνή εθηέιεζεο κε ηηο επόκελεο εληνιέο out-of-order execution ή dynamic scheduling 30

Γπλακηθή αξρηηεθηνληθή αγσγνύ, κε πνιιαπιέο, εηεξνγελείο ζσιελώζεηο ν dispatch buffer ιακβάλεη ηηο εληνιέο ελ ζεηξά, θαη ηηο θαηαλέκεη ζηηο ιεηηνπξγηθέο κνλάδεο εθηόο ζεηξάο όηαλ νη εληνιέο νινθιεξώζνπλ ηελ εθηέιεζή ηνπο, ν reorder buffer ηηο αλαδηαηάζζεη, ζύκθσλα κε ηε ζεηξά πνπ ππαγνξεύεη ην πξόγξακκα, πξνθεηκέλνπ λα πηζηνπνηήζεη ηε ζσζηή νινθιήξσζή ηνπο 31

Γεληθή κνξθή ππεξβαζκσηήο αξρηηεθηνληθήο αγσγνύ ην ζηάδην εθηέιεζεο (execute) κπνξεί λα πεξηιακβάλεη πνιιαπιέο δηαθνξεηηθνύ ηύπνπ ζσιελώζεηο, κε δηαθνξεηηθό latency ε θάζε κία αλαγθαία ηα ζηάδηα dispatch θαη complete, γηα ηελ αλαδηάηαμε θαη επαλαθνξά ησλ εληνιώλ ζε ζεηξά παξεκβνιή ελδηάκεζσλ buffers αλάκεζα ζε δηαδνρηθά ζηάδηα In Program Order Out of Order In Program Order F e tc h D e c o d e D is pa tc h E x e c u te C o m p le te In s tru c tio n B u ffe r D is p a tc h B u ffe r Is s u in g B u ffe r C o m p le tio n B u ffe r S to re B u ffe r R e tire 32

Superscalar Pipeline Design Instruction Fetching Issues Instruction Decoding Issues Instruction Dispatching Issues Instruction Execution Issues Instruction Completion & Retiring Issues 33

Αλάγλσζε εληνιήο (Instruction Fetch) Σε κία αξρηηεθηνληθή πιάηνπο s, πξέπεη δηαβάδνληαη s εληνιέο ζε θάζε θύθιν κεραλήο από ηελ θξπθή κλήκε εληνιώλ (I-cache) Σε θάζε πξνζπέιαζε ηεο I-cache δηαβάδεηαη κία νιόθιεξε γξακκή (s εληνιέο αλά γξακκή): 1 cache line αλά γξακκή ηεο I-cache (a). Θα κπνξνύζε κία cache line λα επεθηείλεηαη ζε πεξηζζόηεξεο ηεο κίαο γξακκήο (b). 34

Αλάγλσζε εληνιήο (Instruction Fetch) Γηα ηελ αλάγλσζε s εληνιώλ ζε θάζε θύθιν κεραλήο ζα πξέπεη: Οη s εληνιέο (πνπ αλήθνπλ ζην ίδην fetch group) λα είλαη επζπγξακκηζκέλεο (aligned) ζηελ I- cache 35

Αλάγλσζε εληνιήο (Instruction Fetch) Δλαιιαθηηθά, ππάξρνπλ κεραληζκνί ειέγρνπ ηεο ξνήο ησλ εληνιώλ, πνπ κπνξνύλ λα θξνληίζνπλ γηα ηελ επζπγξάκκηζε ησλ εληνιώλ πνπ αλήθνπλ ζην ίδην fetch group Software (compiler static alignment) Hardware (run time technique) 36

Απνθσδηθνπνίεζε εληνιώλ (Instruction Decode) Αλαγλώξηζε ησλ όπνησλ εμαξηήζεσλ κεηαμύ εληνιώλ πξνώζεζε ησλ κε εμαξηεκέλσλ εληνιώλ ζην επόκελν ζηάδην Αλαγλώξηζε ησλ εληνιώλ άικαηνο Απνηειεί ην θξηζηκόηεξν ζηάδην γηα ηελ επίδνζε νιόθιεξεο ηεο αξρηηεθηνληθήο αγσγνύ Αθόκε κεγαιύηεξε δπζθνιία ζηηο CISC εληνιέο: θάζε εληνιή κεηαθξάδεηαη ζε πεξηζζόηεξεο κηθξν-εληνιέο (1,5-2 κops / CISC εληνιή γηα ηελ Intel) 37

Απνθσδηθνπνίεζε εληνιώλ (Instruction Decode) Η απνθσδηθνπνίεζε ησλ εληνιώλ CISC ζε παξάιιειεο αξρηηεθηνληθέο αγσγνύ ή νη πνιύ πιαηηέο ζσιελώζεηο Απαηηεί πνιιαπιά ζηάδηα αγσγνύ Απμάλεη ην branch penalty Πώρ μποπεί να αποθεςσθεί η αύξηζη ηος βάθοςρ ηος ημήμαηορ αποκωδικοποίηζηρ ζηη ζωλήνωζη; 38

Λύζε: Απνθσδηθνπνίεζε εληνιώλ (Instruction Decode) Μεξηθή απνθσδηθνπνίεζε ησλ εληνιώλ πξηλ ηελ είζνδό ηνπο ζηελ I-cache (predecoding) Αύμεζε ηνπ I-cache miss penalty Αύμεζε ηνπ κεγέζνπο ηεο I-cache (γηα λα ζπκπεξηιεθζνύλ ηα predecoded bits) Ο μητανιζμός πρωθύζηερης αποκωδικοποίηζης ηοσ AMD K5 39

Γηαλνκή ησλ εληνιώλ Instruction Dispatch Τν ζηάδην απηό αλαιακβάλεη ηε κεηαγσγή από ηελ θεληξηθή (centralized) δηαρείξηζε εληνιώλ ζηελ θαηαλεκεκέλε εθηέιεζή ηνπο 40

Γηαλνκή ησλ εληνιώλ Instruction Dispatch Reservation station: πξνζσξηλόο θαηαρσξεηήο απνζήθεπζεο ησλ απνθσδηθνπνηεκέλσλ εληνιώλ πνπ δελ έρνπλ δηαζέζηκα όια ηα νξίζκαηά ηνπο Κεληξηθόο θαηαρσξεηήο (centralized reservation station)» Γηα παξάιιειεο ζσιελώζεηο Καηαλεκεκέλνη θαηαρσξεηέο (distributed reservation station)» Γηα εηεξνγελείο ζσιελώζεηο 41

Centralized reservation station Δλνπνίεζε ησλ ζηαδίσλ dispatch θαη issue 42

Distributed reservation station 43

Δθηέιεζε εληνιώλ Instruction Execution Σύγρξνλεο ηάζεηο: Πνιιέο παξάιιειεο ζσιελώζεηο (δύζθνιε ε out-of-order εθηέιεζε κε bypassing εληνιώλ) Γηαθνξνπνηεκέλεο κεηαμύ ηνπο ζσιελώζεηο Βαζηέο ζσιελώζεηο Σπλήζεο θαηακεξηζκόο (δελ αθνινπζεί ηε ζηαηηζηηθή αλαινγία ησλ πξνγξακκάησλ ζε ηύπνπο εληνιώλ): 4 κνλάδεο ALU 1 κνλάδα δηαθιάδσζεο (κπνξεί λα εθηειέζεη ζεσξεηηθά (speculatively) > 1 εληνιέο δηαθιάδσζεο 1 κνλάδα αλάγλσζεο/εγγξαθήο ζηε κλήκε (πνιύ πνιύπινθε ε πινπνίεζε κλεκώλ πνιιαπιώλ εηζόδσλ-εμόδσλ, κόλν κε πνιιαπιά banks) Πεξηζζόηεξεο εηδηθεπκέλεο (θαη πην απνδνηηθέο ζηελ επίδνζε) ιεηηνπξγηθέο κνλάδεο 44

Οινθιήξσζε θαη Απνδέζκεπζε εληνιώλ Instruction Completion and Retiring Instruction Completion: ελεκέξσζε ηεο θαηάζηαζεο ηνπ κεραλήκαηνο (machine state update) Instruction Retiring: ελεκέξσζε ηεο κλήκεο (memory state update) Αλ ε εληνιή δελ πεξηιακβάλεη ελεκέξσζε ηεο κλήκεο, κεηά ην ζηάδην νινθιήξσζεο, ε εληνιή απνδεζκεύεηαη Τα ζηάδηα νινθιήξσζεο θαη απνδέζκεπζεο ησλ εληνιώλ πξέπεη λα εθηειέζνπλ ηηο εληνιέο ελ ζεηξά ζπλεπέο arch. state ζπλεπήο θαηάζηαζε κλήκεο 45

Οινθιήξσζε θαη Απνδέζκεπζε εληνιώλ Instruction Completion and Retiring Τα ζηάδηα εληνιώλ: Fetch Decode Dispatch Issue Execute Finish Complete Retire 46