ΔΙΑΛΕΞΗ 16: ΠΑΡΑΛΛΗΛΙΣΜΟΣ ΣΤΗΝ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ

Σχετικά έγγραφα
ΔΙΑΛΕΞΗ 16: ΠΑΡΑΛΛΗΛΙΣΜΟΣ ΣΤΗΝ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ

ΔΙΑΛΕΞΗ 16: ΠΑΡΑΛΛΗΛΙΣΜΟΣ ΣΤΗΝ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(Branch Prediction Mechanisms)

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

CS425 Computer Systems Architecture

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

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

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

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

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

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

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

ΔΙΑΛΕΞΗ 17: Δυναμικός Παραλληλισμός Εντολών -- Superscalar Επεξεργαστές --

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

CS-425 Mid-term exam

Pipelined Datapath, Hazards and Forwarding

ΔΙΑΛΕΞΗ 17: Δυναμικός Παραλληλισμός Εντολών -- Superscalar Επεξεργαστές --

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

Οι τέσσερις αρχές για τον σχεδιασμό του συνόλου εντολών μιας μηχανής είναι:

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

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

Instruction Execution Times

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

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

ΔΙΑΛΕΞΗ 17: Δυναμικός Παραλληλισμός Εντολών -- Superscalar Επεξεργαστές --

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

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

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

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

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

ΔΙΑΛΕΞΗ 18: Στατικός Παραλληλισμός Εντολών VLIW Επεξεργαστές

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

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

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

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

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

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

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

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

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Main source: "Discrete-time systems and computer control" by Α. ΣΚΟΔΡΑΣ ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΔΙΑΛΕΞΗ 4 ΔΙΑΦΑΝΕΙΑ 1

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

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

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

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

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

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

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

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

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

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

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

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

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

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών

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

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

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

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

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

Συστήματα Διαχείρισης Βάσεων Δεδομένων

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

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

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

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 18: Διαδικασία Σχεδίασης Ψηφιακών Συστηµάτων - Επανάληψη

Assalamu `alaikum wr. wb.

[1] P Q. Fig. 3.1

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

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

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

Section 8.3 Trigonometric Equations

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

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

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

Αρχιτεκτονικη υπολογιστων

Transcript:

ΗΜΥ 312 -- ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΑΛΕΞΗ 16: ΠΑΡΑΛΛΗΛΙΣΜΟΣ ΣΤΗΝ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ Διδάσκουσα: ΜΑΡΙΑ Κ. ΜΙΧΑΗΛ Αναπληρώτρια Καθηγήτρια, ΗΜΜΥ (mmichael@ucy.ac.cy) [Προσαρµογή από Computer Architecture: A Quantitave Approach και Computer Organization and Design, Patterson & Hennessy, 2005 και Superscalar Microprocessor Design, Johnson, 1992 ] Παραλληλισµός ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.2 1

Απόδοση του RISC q Performance Metrics Μονάδες Μέτρησης Απόδοσης Response Time (Χρόνος Ανταπόκρισης και εκτέλεσης) (Execution time, Latency) The time elapse between the start and the completion of an event Χρόνος που περνά µεταξύ της έναρξης και του τέλους ενός γεγονότος. Throughput (Παραγωγή) (Bandwidth) The amount of work done in a given time Η ποσότητα εργασίας σε µια δεδοµένη µονάδα χρόνου. Performance (Απόδοση) Number of events occurring per unit of time Αριθµός γεγονότων που διεξάγονται ανά µονάδα χρόνου. Σηµ. Ο Χρόνος Εκτέλεσης είναι στην ουσία ο παρονοµαστής στην απόδοση χαµηλότερος χρόνος εκτέλεσης εξυπακούει ψηλότερη απόδοση. Σηµ. Ο Χρόνος εκτέλεσης, ο χρόνος ανταπόκρισης καθώς και η απόδοση είναι στενά συνδεδεµένα µεταξύ τους! ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.3 Απόδοση του RISC q Performance Metrics Μονάδες Μέτρησης Απόδοσης CPU time Ο χρόνος κατά τον οποίο το CPU κάνει υπολογισµούς. Αποτελείται από: - User CPU time (χρόνος χρήστη) Ο χρόνος CPU που ξοδεύεται στο πρόγραµµα, - System CPU time (χρόνος συστήµατος) Ο χρόνος του CPU που ξοδεύεται στο λειτουργικό σύστηµα εκτελώντας απαιτήσεις των προγραµµάτων. Οι σηµερινοί επεξεργαστές ελέγχονται από ένα ρολόι µε σταθερή περίοδο (constant cycle time (τ)). Η συχνότητα ενός επεξεργαστή δίνεται από την περίοδο (frequency - clock rate (f) = 1/τ). Το µέγεθος ενός προγράµµατος δίνεται από τον αριθµό εντολών instruction count (I c ) ο αριθµός των εντολών µηχανής που θα εκτελεστούν (machine instructions to be executed.) ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.4 2

Απόδοση του RISC q Performance Measures Μέτρηση Απόδοσης Ας προσδιορίσουµε τότε το µέσο αριθµό κύκλων ανά εντολή (average number of clock cycle per instruction (CPI)) σαν: ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.5 Απόδοση του RISC q Performance Metrics Μέτρηση Απόδοσης Για ένα δεδοµένο σετ εντολών, υπολογίζουµε το CPI σε σχέση µε όλων των ειδών εντολών, αν γνωρίζουµε την συχνότητα εµφάνισης των εντολών στο πρόγραµµα. Το CPI εξαρτάται από την οργάνωση/αρχιτεκτονική καθώς και το σετ εντολών της συγκεκριµένης µηχανής. Το Clock rate εξαρτάται από την τεχνολογία καθώς και την οργάνωση/αρχιτεκτονική της µηχανής. Το Instruction count εξαρτάται από το σετ εντολών της µηχανής, καθώς και την τεχνολογία και λειτουργία του µεταγλωττιστή (compiler technology). ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.6 3

Απόδοση του RISC q Performance Metrics - Μέτρηση Απόδοσης CPU = Time CPU Clock cycles * Clock Cycle time CPU = Time CPU Clock cycles Clock Rate Ø The CPU time is estimated as ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.7 Απόδοση του RISC q Ερώτηση: Με βάση τον ορισµό (που είδαµε) του CPU time, πώς µπορεί να βελτιωθεί η απόδοση; Είναι δυνατόν να µπορέσουµε να βελτιώσουµε την απόδοση του RISC; Πώς µπορούµε να βελτιώσουµε την απόδοση; - Μείωση του instruction count, - Μείωση του CPI, - Αύξηση του clock rate. Πώς αυξάνουµε το clock rate? - Τεχνολογικές Βελτιώσεις - Αρχιτεκτονικές Βελτιώσεις Πώς µειώνουµε το CPI? - Αύξηση του αριθµού εντολών µέσα σε ένα κύκλο! ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.8 4

Πέρα από την απόδοση του RISC q Πέρα από το RISC Ο ορισµός scalar processor χρησιµοποιείται για να περιγράψει ένα επεξεργαστή που φέρνει και εκτελεί µια εντολή κάθε φορά. Με βάση την RISC φιλοσοφία, ένας βελτιωµένος scalar processor, στην καλύτερη περίπτωση µπορεί να εκτελέσει µια εντολή ανά κύκλο (one instruction per clock cycle). Η απόδοση του scalar processor µε βάση την προηγούµενη συζήτηση µας, µπορεί να βελτιωθεί µέσω instruction pipelining και µετατροπή του ALU σε πολύ-εργαλείο (δηλαδή να µπορέσει το ALU να διεξάγει πολλαπλές λειτουργίες (multifunctional capability of ALU). ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.9 Ας θυµηθούµε: MIPS Pipeline ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.10 5

Ας θυµηθούµε: Παραδοσιακό MIPS Pipeline ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.11 Ας θυµηθούµε: Pipeline Hazards q Structural hazards Σχεδίαση της διασωλήνωσης ώστε να αφαιρεθούν τα structural hazards q Data hazards Εγγραφή πριν την ανάγνωση (read before write) Προχωρούµε τα δεδοµένα µέσα στην διασωλήνωση (data forwarding) Για τις περιπτώσεις που το forwarding δεν δουλεύει (π.χ., loaduse) χρησιµοποιούµε υλικό που να µπορεί να σταµατήσει τη διασωλήνωση (stall) q Control (Branch) hazards beq, bne,j,jr,jal Stall Μειώνει την απόδοση αισθητά Σχεδίαση του µηχανισµού παύσης της διασωλήνωσης στην αρχή ώστε να µειωθεί το κόστος καθώς και το hardware που χρειάζεται για stall. Καθυστέρηση της απόφασης (requires compiler support) δεν κάνει όµως για βαθιές διασωληνώσεις που απαιτούν καθυστέρηση µεγαλύτερη του ενός slot Πρόβλεψη περισσότερο hardware, µπορεί να µειώσει την επίδραση των control hazard stalls ακόµα περισσότερο αν το branch prediction (BHT) και αν η branchedto εντολή είναι cached (BTB) ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.12 6

Βελτιώνοντας περισσότερο την απόδοση q Δυο επιλογές για αύξηση του Instruction-Level Parallelism (ILP): Αύξηση του βάθους της διασωλήνωσης για αύξηση της ωρολογιακής συχνότητας superpipelining Μεταφορά (fetch) και εκτέλεση (execute) πολλαπλών εντολών κάθε φορά (expand every pipeline stage to accommodate multiple instructions) multiple-issue πολλαπλή έκδοση q Εκτέλεση πολλών εντολών ανά στάδιο διασωλήνωσης δίνει CPI λιγότερο του 1 Εδώ χρησιµοποιείται το IPC: Instructions Per Clock cycle - Π.χ., ένας 4-πλός µικροεπεξεργαστής πολλαπλής έκδοσης (fourway multiple-issue processor) µε συχνότητα 6 GHz, µπορεί να εκτελέσει στην καλύτερη περίπτωση 24 δις εντολών/δευτερόλεπτο µε ελάχιστο CPI = 0.25 ή µέγιστο IPC = 4 - Αν το datapath έχει πέντε στάδια διασωλήνωσης (five stage pipeline), πόσες εντολές είναι ενεργές µέσα στην διασωλήνωση ανά κάθε στιγµή; ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.13 Παραλληλισµός Εντολών Instruction Level Parallelism ILP q Μπορεί να επιτευχθεί µε δυο φιλοσοφίες: q Dynamic approach - Δυναµική Μέθοδος το υλικό κυρίως εντοπίζει και καθορίζει τον παραλληλισµό q Static approach - Στατική Μέθοδος εναπόκειται στο λογισµικό/µεταγλωττιστή να εντοπίσει και να χρησιµοποιήσει παραλληλισµό q Περιορισµοί: q True data dependency q Procedural dependency q Resource conflicts q Output dependency q Antidependency ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.14 7

Effect of Dependencies Επίδραση Εξαρτήσεων Assume 2-way multiple-issue processor Assume a simple 4-stage pipeline ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.15 Η µετά-risc εποχή: Ορολογία Τα µηχανήµατα µε ψηλότερες συχνότητες και βαθύτερα pipelines ονοµάζονται super pipelined. Τα µηχανήµατα που µπορούν δυναµικά να εκδόσουν περισσότερες από µια εντολές ανά κύκλο ονοµάζονται super scalar. Οι µηχανές που εκτελούν πολλές πράξεις (συνήθως 5-7 εντολές) ως µια µεγάλη εντολή ονοµάζονται Very-long-Instruction-Word (VLIW) (στατική µέθοδος). ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.16 8

Superscalar (SS) και Superpipelined Επεξεργαστές Τι είναι το Superscalar? q Common instructions (arithmetic, load/store, conditional branch) can be initiated and executed independently q Equally applicable to RISC & CISC q In practice usually RISC Γιατί Superscalar? q Most operations are on scalar quantities (see RISC notes) q Improve these operations to get an overall improvement Τι είναι το Superpipelined? q Many pipeline stages need less than half a clock cycle q Double internal clock speed gets two tasks per external clock cycle q Superscalar allows parallel fetch-execute ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.17 Superscalar Execution Πως δουλεύει το SS ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.18 9

Γενική Οργάνωση Επεξεργαστή Superscalar ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.19 Superpipelined Επεξεργαστές q Αύξηση του βάθους της διασωλήνωσης µε σκοπό την αύξηση της συχνότητας (more instructions in flight at one time) Όσο πιο ψηλός ο δείχτης (degree) του superpipelining, τόσο πιο πολύ forwarding/hazard hardware χρειάζεται, τόσο πιο πολύ latch overhead (i.e., the pipeline latch accounts for a larger and larger percentage of the clock cycle time), και τόσο πιο πολύ το clock skew (i.e., because of faster and faster clocks) Superpipelined vs Superscalar q Superpipelined: πιο µεγάλη καθυστέρηση εντολών (instruction latency) από τους SS των οποίων η απόδοση εξαρτάται περισσότερο από τα true dependencies (δεδοµένων και ελέγχου). q Superscalar: είναι πιο ευάλωτοι σε συγκρούσεις δεδοµένων στα εκτελεστικά συστήµατα (resource conflicts) αλλά αυτό διορθώνεται µε hardware (και σωστό σχεδιασµό!) ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.20 10

Superscalar v Superpipeline Base 4-stage pipeline machine, clock cycle τ Superpipelined 8- stage machine, clock cycle τ =τ/2 τ 2-way superscalar machine, clock cycle τ τ = τ/2 ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.21 Instruction vs Machine Parallelism q Instruction-level parallelism (ILP) ενός προγράµµατος Ο µέσος αριθµός εντολών σε ένα πρόγραµµα που ο επεξεργαστής ίσως να µπορεί να εκτελέσει παράλληλα Συνήθως αποτέλεσµα των true (data) dependencies και των procedural (control) dependencies, σε σχέση µε τον αριθµό των υπόλοιπων εντολών q Data-level parallelism (DLP) DO I = 1 TO 100 A[I] = A[I] + 1 CONTINUE q Machine parallelism ενός επεξεργαστή η ικανότητα ενός επεξεργαστή να εκµεταλλεύεται το ILP ενός προγράµµατος Determined by the number of instructions that can be fetched and executed at the same time q Για ψηλότερη απόδοση, χρειαζόµαστε ILP και machine parallelism ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.22 11

Κατηγορίες επεξεργαστών πολλαπλής-έκδοσης q Static multiple-issue processors (VLIW) Η απόφαση/εις για το ποιες εντολές θα εκτελεστούν παράλληλα γίνεται στατικά από τον µεταγλωττιστή Π.χ., Intel Itanium και Itanium 2 για IA-64 ISA EPIC (Explicit Parallel Instruction Computer) q Dynamic multiple-issue processors (Superscalar) Η απόφαση/εις για το ποιες εντολές θα εκτελεστούν παράλληλα γίνεται δυναµικά από το υλικό Π.χ., IBM Power 2, Pentium 4, MIPS R10K, HP PA 8500 ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.23 Multiple-Issue Datapath Responsibilities q Χειριζόµαστε µε συνδυασµό hardware και software fixes, τα όρια που αφορούν: Storage (data) dependencies αλλιώς data hazards (δηλαδή την ποσότητα φυσικής µνήµης (καταχωρητές, µνήµη, κ.λ.π.) - Limitation more severe in a SS/VLIW processor due to (usually) low ILP Procedural dependencies δηλαδή control hazards - Σαν πιο πάνω, αλλά πολύ πιο αρνητικά στην απόδοση - Χρήση dynamic branch prediction για αντιµετώπιση του ILP Resource conflicts αλλιώς structural hazards - Ένας SS/VLIW έχει πολύ πιο µεγάλες πιθανότητες για συγκρούσεις στα εκτελεστικά συστήµατα - Τα functional units πρέπει να καθορίζουν και τις εισόδους τους αλλά και τα αποτελέσµατα τους (arbitrate for result buses and register-file write ports) - Οι συγκρούσεις στα εκτελεστικά συστήµατα αποφεύγονται µε την αύξηση στην ποσότητα των εκτελεστικών συστηµάτων (δηλ. Διπλασιασµό για παράδειγµα) ή µε διασωλήνωση των συστηµάτων ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.24 12

Multiple-issue Processors: Instruction Issue and Completion Policies q Instruction-issue αρχή της εκτέλεσης εντολής Instruction lookahead ικανότητα να φέρνει, να αποκωδικοποιεί και να εκδίδει εντολές πέραν της εντολής που εκτελείται (fetch, decode and issue instructions beyond the current instruction) q Instruction-completion συµπλήρωση εκτέλεσης Processor lookahead ικανότητα να εκτελεί εντολές που εκδόθηκαν πέραν της εντολής που εκτελείται (complete issued instructions beyond the current instruction) q Instruction-commit γράψιµο των αποτελεσµάτων στο Register File ή το D$ cache (i.e., change the machine state) In-order issue with in-order completion In-order issue with out-of-order completion Out-of-order issue with out-of-order completion Out-of-order issue with out-of-order completion and in-order commit ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.25 Control Hazards q When the flow of instruction addresses is not what the pipeline expects; incurred by change of flow instructions Conditional branches (beq, bne) Unconditional branches (j) q Possible solutions Stall Move decision point earlier in the pipeline Predict Delay decision (requires compiler support) q Control hazards occur less frequently than data hazards; there is nothing as effective against control hazards as forwarding is for data hazards ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.26 13

Branch Prediction q Resolve branch hazards by assuming a given outcome and proceeding without waiting to see the actual branch outcome 1. Predict not taken always predict branches will not be taken, continue to fetch from the sequential instruction stream, only when branch is taken does the pipeline stall If taken, flush instructions in the pipeline after the branch - in,, and if branch logic in MEM three stalls - in if branch logic in one stall ensure that those flushed instructions haven t changed machine state automatic in the MIPS pipeline since machine state changing operations are at the tail end of the pipeline (MemWrite or RegWrite) restart the pipeline at the branch destination ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.27 Branch Prediction, con t q Resolve branch hazards by statically assuming a given outcome and proceeding 2. Predict taken always predict branches will be taken Predict taken always incurs a stall (if branch destination hardware has been moved to the stage) q As the branch penalty increases (for deeper pipelines), a simple static prediction scheme will hurt performance q With more hardware, possible to try to predict branch behavior dynamically during program execution 3. Dynamic branch prediction predict branches at runtime using run-time information ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.28 14

3 Generic Data Hazards: RAW, WAR, WAW q Read After Write (RAW) Instr J tries to read operand before Instr I writes it I: add r1,r2,r3 J: sub r4,r1,r3 q Caused by a Dependence (in compiler nomenclature). This hazard results from an actual need for communication. q Forwarding handles many, but not all, RAW dependencies in 5 stage MIPS pipeline ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.29 3 Generic Data Hazards: RAW, WAR, WAW q Write After Read (WAR) Instr J writes operand before Instr I reads it I: sub r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7 q Called an anti-dependence by compiler writers. This results from reuse of the name r1. q Can t happen in MIPS 5 stage pipeline because: All instructions take 5 stages, and Reads are always in stage 2, and Register Writes must be in stage 5 ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.30 15

3 Generic Data Hazards: RAW, WAR, WAW q Write After Write (WAW) Instr J writes operand before Instr I writes it. I: sub r1,r4,r3 J: add r1,r2,r3 K: mul r6,r1,r7 q Called an output dependence by compiler writers This also results from the reuse of name r1. q Can t happen in MIPS 5 stage pipeline because: All instructions take 5 stages, and Register Writes must be in stage 5 q Can see WAR and WAW in more complicated pipes ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.31 Multiple-issue Processors: Instruction Issue and Completion Policies q Instruction-issue αρχή της εκτέλεσης εντολής Instruction lookahead ικανότητα να φέρνει, να αποκωδικοποιεί και να εκδίδει εντολές πέραν της εντολής που εκτελείται (fetch, decode and issue instructions beyond the current instruction) q Instruction-completion συµπλήρωση εκτέλεσης Processor lookahead ικανότητα να εκτελεί εντολές που εκδόθηκαν πέραν της εντολής που εκτελείται (complete issued instructions beyond the current instruction) q Instruction-commit γράψιµο των αποτελεσµάτων στο Register File ή το D$ cache (i.e., change the machine state) In-order issue with in-order completion In-order issue with out-of-order completion Out-of-order issue with out-of-order completion Out-of-order issue with out-of-order completion and in-order commit ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.32 16

In-Order Issue with In-Order Completion q Το πιο απλό πράγµα είναι φυσικά η έκδοση, εκτέλεση και συµπλήρωση εντολών µε την φυσική τους σειρά (i.e., in program order) q Παράδειγµα: Assume a pipelined processor that can fetch and decode two instructions per cycle, that has three functional units (a single cycle adder, a single cycle shifter, and a two cycle multiplier), and that can complete (and write back) two results per cycle And an instruction sequence with the following characteristics I1 needs two execute cycles (a multiply) I2 I3 I4 needs the same function unit as I3 I5 needs data value produced by I4 I6 needs the same function unit as I5 ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.33 In-Order Issue, In-Order Completion Example I n s t r. O r d e r I1 I2 I3 I4 I5 I1 two execute cycles I2 I3 I4 same function unit as I3 I5 data value produced by I4 I6 same function unit as I5 I6 In parallel can Fetch/decode 2 Commit 2 ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.34 17

In-Order Issue, In-Order Completion Example I n s t r. O r d e r I1 I2 I3 I4 I5 I6 In parallel can Fetch/decode 2 Commit 2 I1 two execute cycles I2 I3 I4 same function unit as I3 I5 data value produced by I4 I6 same function unit as I5 need forwarding hardware 8 cycles in total ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.35 In-Order Issue with Out-of-Order Completion q Με συµπλήρωση out-of-order, µια εντολή που εκδόθηκε µετά από µια άλλη, µπορεί να συµπληρωθεί πριν την προπορευµένη σε φυσική σειρά εντολή Out-of-order completion χρησιµοποιήται και σε single-issue pipelined processors για βελτίωση της απόδοσης πράξεων µε µεγάλη καθυστέρηση (latency), όπως τη διαίρεση q Όταν χρησιµοποιούµε out-of-order completion, η έκδοση εντολών γίνεται stalled όταν: υπάρχει σύγκρουση πόρων (resource conflict) όταν µια εντολή που είναι έτοιµη για έκδοση χρειάζεται δεδοµένα που θα παράγει µια εντολή που ακόµη δεν έχει συµπληρωθεί (true data dependency RAW) ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.36 18

IOI-OOC Example I n s t r. O r d e r I1 I2 I3 I4 I5 I1 two execute cycles I2 I3 I4 same function unit as I3 I5 data value produced by I4 I6 same function unit as I5 I6 ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.37 IOI-OOC Example I n s t r. O r d e r I1 I2 I3 I4 I5 I6 I1 two execute cycles I2 I3 I4 same function unit as I3 I5 data value produced by I4 I6 same function unit as I5 7 cycles in total ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.38 19

Χειρισµός των Output Dependencies q Υπάρχει ακόµη µια περίπτωση που η έκδοση µιας εντολής σταµατάει (stalls) µε IOI-OOC. Ας υποθέσουµε: I1 writes to R3 I2 writes to R3 I5 reads R3 Εάν η εντολή I1 γράψει µετά την εντολή I2 στον καταχωρητή R3, τότε η εντολή I5 θα διαβάσει λάθος τιµή για τον R3 Η I2 έχει ένα output dependency µε την I1 write after write (WAW) Η έκδοση της I2 πρέπει να καθυστερήσει (stalled) αν το αποτέλεσµά της δύναται να επαναγραφεί από µια προηγούµενη, στη σειρά έκδοσης, (πχ. η I1) εντολή που χρειάζεται περισσόερο χρόνο για να ολοκληρωθεί το stall γίνεται πριν την έκδοση της εντολής (instruction issue) q Ενώ το IOI-OOC εξυπακούει καλύτερη απόδοση, χρειάζεται περισσότερο έλεγχο για εξαρτήσεις και ως αποτέλεσµα, κατάλληλο υλικό για έλεγχο εξαρτήσεων. Έλεγχος εξαρήσων για read after write (RAW) και write after write (WAW) ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.39 Out-of-Order Issue with Out-of-Order Completion q Στο in-order issue, ο επεξεργαστής σταµατά την αποκωδικοποίηση εντολών όταν µια εντολή έτοιµη για εκτέλεση έχει είτε resource conflict είτε data dependency µε µια εντολή που ήδη εκδόθηκε, αλλά που δεν συµπληρώθηκε. Ο επεξεργαστής δεν είναι ικανός να δει πέραν της εντολής τη σύγκρουση/ εξάρτησης παρά το γεγονός ότι δύναται να υπάρχουν πιο κάτω εντολές που δεν έχουν σύγκρουση/εξάρτηση και, εποµένως, να µπορούν να εκδοθούν. q Στο out-of-order issue, εντολές µεταγενέστερες της εντολής µε τη σύγκρουση/εξάρτηση µπορούν να εκδοθούν και να αποκωδικοποίηθούν (fetch and decode) Αποθηκεύονται σε ένα instruction buffer (όσο έχει χώρο φυσικά) και σηµείωνονται/καταχώρούνται στις εντολές στο buffer που δεν έχουν συγκρούσεις/εξαρτήσεις Οι σηµειωµένες εντολές εκδίδονται από το buffer χωρίς αναφορά στην φυσική τους σειρά στο πρόγραµµα. Χρήση instruction window ( = µέγεθος instruction buffer). ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.40 20

OOI-OOC Example I n s t r. O r d e r I1 I2 I3 I4 I5 I1 two execute cycles I2 I3 I4 same function unit as I3 I5 data value produced by I4 I6 same function unit as I5 I6 6 cycles in total ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.41 Anti-dependencies q Me OOI επίσης έχουµε να αντιµετωπίσουµε data antidependencies όταν µια εντολή που εκτελείται σε µεταγενέστερο στάδιο αλλά συµπληρώνεται πιο γρήγορα (that completes earlier) παράγει ένα data value που καταστρέφει ένα data value το οποίο χρησιµοποιείται από µια εντολή που κανονικά εκτελείται πριν, αλλά εκδίδεται µετά: R3 := R3 * R5 R4 := R3 + 1 R3 := R5 + 1 True data dependency Output dependency Antidependency q Ο περιορισµός είναι παρόµοιος µε τα true data dependencies, αλλά αντίστροφος ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.42 21

Dependencies Επανάληψη q Τρία data dependencies: True data dependencies (read before write) Antidependencies (write before read) storage conflicts Output dependencies (write before write) εµφανίζονται µε την χρήση των registers (ή άλλα storage locations) q True dependencies αντιπροσωπεύουν την ροή δεδοµένων και την ροή του προγράµµατος q Anti- και output dependencies δηµιουργούνται εξαιτίας του περιορισµένου αριθµού καταχωρητών και εξυπακούει ότι το πρόγραµµα χρησηµοποιά τα ίδια φυσικά registers για διαφορετικούς υπολογισµούς q Όταν οι εντολές εκδίδονται out-of-order, η σειρά συναλλαγών µεταξύ καταχωρητών και δεδοµένων σπάζει, και τα δεδοµένα συγκρούονται για τα registers (conflict for registers) ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.43 Storage Conflicts και Register Renaming q Τα Storage conflicts µειώνονται (ή αποφεύγονται) µε αύξηση ή µε αντιγραφή της προβληµατικής τοποθεσίας Επιπρόσθετοι καταχωρητές χρησιµοποιούνται για να λύσουν το πρόβηµα - Με δυναµικό τρόπο από το υλικό σε επεξεργαστές SS q Register renaming Ο επεξεργαστής µετονοµάζει το αρχικό register identifier στην εντολή σε ένα καινούριο και αχρησιµοποίητο register (κάποιο που δεν χρησιµποποιήται σε κάποια από τις εντολές που µπορεί να δει) R3 := R3 * R5 R4 := R3 + 1 R3 := R5 + 1 R3b := R3a * R5a R4a := R3b + 1 R3c := R5a + 1 The hardware that does renaming assigns a replacement register from a pool of free registers and releases it back to the pool when its value is superseded and there are no outstanding references to it ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.44 22

Review: Extracting More Performance q To achieve high performance, need both machine parallelism and instruction level parallelism (ILP) by Superpipelining Static multiple-issue (VLIW) Dynamic multiple-issue (superscalar) q A processor s instruction issue and completion policies impact available ILP In-order issue with in-order completion In-order issue with out-of-order completion - Creates output dependencies (write before write) Out-of-order issue with out-of-order completion - Creates antidependency (write before read) Out-of-order issue with out-of-order completion and in-order commit q Register renaming can solve these storage dependencies ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.45 Speedup Measurements q H βελτίωση της απόδοσης του SS επεξεργαστή είναι - Assumes scalar and superscalar machines have the same IC & CR # scalar cycles speedup = s n = -------------------------------- # superscalar cycles q Για µέτρηση του µέσου όρου βελτίωσης της απόδοσης, n χρησιµοποιούµε AM = 1/n Σ s Arithmetic mean i i = 1 n Harmonic mean HM = n / ( Σ 1/s i ) i = 1 - assigns a larger weighting to the programs with the smallest speedup : two programs with same scalar cycles, with a SS speedup of 2 for program1 and 25 for program2 - AM = - HM = ½ * (2 + 25) = 13.5 2 / (.5 +.04) = 2 /.54 = 3.7 ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.46 23

Maximum (θεωρητική) SS Βελτίωση απόδοσης q Η ψηλότερη βελτίωση απόδοσης από το ιδεώδες σύστηµα παραλληλισµού ( ideal machine parallelism) (ignoring resource conflicts, storage dependencies, and procedural dependencies) HM of 5.4 is the highest average speedup for these benchmarks that can be achieved even with ideal machine parallelism! Speedup 12 10 8 6 4 2 0 5diff ccom doduc gnuchess irsim ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.47 linpack simple From Johnson, 1992 troff twolf Baseline Superscalar MIPS Processor Model P C Fetch BHT BTB I$ N I RUU_Head RUU_Tail Decode & Dispatch Register Update Unit (managed as a queue) N L FP I L I RegFile Integer I RegFile RUU Issue & Execute Load/Store Queue 1 2 3 4 5 6 FPALU IALU IALU LSQ IMULT Result Bus Writeback D$ Commit ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.48 24

The Post-RISC Architecture ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.49 Post-RISC characteristics q Out-of-order execution (Existed 20 years ago on IBM and CDC) Innovative for single-chip Branch history bits q Precise interrupts q Fetch/Flow Prediction q More caching Instruction cache becomes CPU scratch space q Register renaming First in IBM 360/91 FPU q Traditional RISC DEC Alpha 21164 Sun UltraSPARC-1 q (partially) Post-RISC PowerPC 604 MIPS R10000 HP PA-8000 Intel Pentium Pro DEC Alpha 21264 HAL SPARC64 ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.50 25

ΕΠΟΜΕΝΗ ΔΙΑΛΕΞΗ ΚΑΙ ΚΑΤ ΟΙΚΟΝ ΜΕΛΕΤΗ q ΕΠΟΜΕΝΗ ΕΝΟΤΗΤΑ Δυναμικός Παραλληλισμός Επιπέδου Εντολών -- Superscalar Επεξεργαστές q ΚΑΤ ΟΙΚΟΝ ΜΕΛΕΤΗ Κεφάλαιο 6 Patterson&Hennessy (από το βιβλίο του ΗΜΥ212) Κεφάλαιο 2 του βιβλίου σας ΗΜΥ312 Δ16 - Παραλληλισµός εντολών και εισαγωγή στον SimpleScalar.51 26