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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CS425 Computer Systems Architecture

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

(Branch Prediction Mechanisms)

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

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

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

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

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

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

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

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

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

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

CS-425 Mid-term exam

Pipelined Datapath, Hazards and Forwarding

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

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

Instruction Execution Times

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Assalamu `alaikum wr. wb.

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

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

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

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

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

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

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

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

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

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

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

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

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

[1] P Q. Fig. 3.1

Section 8.3 Trigonometric Equations

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

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

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

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

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

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

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

Section 1: Listening and responding. Presenter: Niki Farfara MGTAV VCE Seminar 7 August 2016

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

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

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

Απόδοση του RISC Performance Metrics Μονάδες Μέτρησης Απόδοσης l Response Time (Χρόνος Ανταπόκρισης και εκτέλεσης) (Execution time, Latency) The time elapse between the start and the completion of an event Χρόνος που περνά μεταξύ της έναρξης και του τέλους ενός γεγονότος. l Throughput (Παραγωγή) (Bandwidth) The amount of work done in a given time Η ποσότητα εργασίας σε μια δεδομένη μονάδα χρόνου. l Performance (Απόδοση) Number of events occurring per unit of time Αριθμός γεγονότων που διεξάγονται ανά μονάδα χρόνου. l Σημ. Ο Χρόνος Εκτέλεσης είναι στην ουσία ο παρονομαστής στην απόδοση χαμηλότερος χρόνος εκτέλεσης εξυπακούει ψηλότερη απόδοση. l Σημ. Ο Χρόνος εκτέλεσης, ο χρόνος ανταπόκρισης καθώς και η απόδοση είναι στενά συνδεδεμένα μεταξύ τους! ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.3

Απόδοση του RISC Performance Metrics Μονάδες Μέτρησης Απόδοσης l CPU time Ο χρόνος κατά τον οποίο το CPU κάνει υπολογισμούς. Αποτελείται από: - User CPU time (χρόνος χρήστη) Ο χρόνος CPU που ξοδεύεται στο πρόγραμμα, - System CPU time (χρόνος συστήματος) Ο χρόνος του CPU που ξοδεύεται στο λειτουργικό σύστημα εκτελώντας απαιτήσεις των προγραμμάτων. l Οι σημερινοί επεξεργαστές ελέγχονται από ένα ρολόι με σταθερή περίοδο (constant cycle time ( )). Η συχνότητα ενός επεξεργαστή δίνεται από την περίοδο (frequency - clock rate (f) = 1/ ). l Το μέγεθος ενός προγράμματος δίνεται από τον αριθμό εντολών instruction count (I c ) ο αριθμός των εντολών μηχανής που θα εκτελεστούν (machine instructions to be executed.) ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.4

Απόδοση του RISC Performance Measures Μέτρηση Απόδοσης l Ας προσδιορίσουμε τότε το μέσο αριθμό κύκλων ανά εντολή (average number of clock cycle per instruction (CPI)) σαν: ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.5

Απόδοση του RISC Performance Metrics Μέτρηση Απόδοσης l Για ένα δεδομένο σετ εντολών, υπολογίζουμε το CPI σε σχέση με όλων των ειδών εντολών, αν γνωρίζουμε την συχνότητα εμφάνισης των εντολών στο πρόγραμμα. l Το CPI εξαρτάται από την οργάνωση/αρχιτεκτονική καθώς και το σετ εντολών της συγκεκριμένης μηχανής. l Το Clock rate εξαρτάται από την τεχνολογία καθώς και την οργάνωση/αρχιτεκτονική της μηχανής. l Το Instruction count εξαρτάται από το σετ εντολών της μηχανής, καθώς και την τεχνολογία και λειτουργία του μεταγλωττιστή (compiler technology). ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.6

Απόδοση του RISC Performance Metrics - Μέτρηση Απόδοσης CPU = T ime CPU Clock cycles * Clock Cycle time CPU = T ime CPU Clock cycles Clock Rate The CPU time is estimated as ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.7

Απόδοση του RISC Ερώτηση: Με βάση τον ορισμό (που είδαμε) του CPU time, πώς μπορεί να βελτιωθεί η απόδοση; Είναι δυνατόν να μπορέσουμε να βελτιώσουμε την απόδοση του RISC; l Πώς μπορούμε να βελτιώσουμε την απόδοση; -Μείωση του instruction count, -Μείωση του CPI, -Αύξηση του clock rate. l Πώς αυξάνουμε το clock rate? - Τεχνολογικές Βελτιώσεις - Αρχιτεκτονικές Βελτιώσεις l Πώς μειώνουμε το CPI? - Αύξηση του αριθμού εντολών μέσα σε ένα κύκλο! ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.8

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

Ας θυμηθούμε: MIPS Pipeline ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.10

Ας θυμηθούμε: Παραδοσιακό MIPS Pipeline ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.11

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

Βελτιώνοντας περισσότερο την απόδοση Δυο επιλογές για αύξηση του Instruction-Level Parallelism (ILP): l Αύξηση του βάθους της διασωλήνωσης για αύξηση της ωρολογιακής συχνότητας superpipelining l Μεταφορά (fetch) και εκτέλεση (execute) πολλαπλών εντολών κάθε φορά (expand every pipeline stage to accommodate multiple instructions) multiple-issue πολλαπλή έκδοση Εκτέλεση πολλών εντολών ανά στάδιο διασωλήνωσης δίνει CPI λιγότερο του 1 l Εδώ χρησιμοποιείται το 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 Μπορεί να επιτευχθεί με δυο φιλοσοφίες: Dynamic approach - Δυναμική Μέθοδος το υλικό κυρίως εντοπίζει και καθορίζει τον παραλληλισμό Static approach - Στατική Μέθοδος εναπόκειται στο λογισμικό/μεταγλωττιστή να εντοπίσει και να χρησιμοποιήσει παραλληλισμό Περιορισμοί: True data dependency Procedural dependency Resource conflicts Output dependency Antidependency ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.14

Effect of Dependencies Επίδραση Εξαρτήσεων Assume 2-way multiple-issue processor Assume a simple 4-stage pipeline ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.15

Η μετά-risc εποχή: Ορολογία l Τα μηχανήματα με ψηλότερες συχνότητες και βαθύτερα pipelines ονομάζονται super pipelined. l Τα μηχανήματα που μπορούν δυναμικά να εκδόσουν περισσότερες από μια εντολές ανά κύκλο ονομάζονται super scalar. l Οι μηχανές που εκτελούν πολλές πράξεις (συνήθως 5-7 εντολές) ως μια μεγάλη εντολή ονομάζονται Very-long-Instruction-Word (VLIW) (στατική μέθοδος). ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.16

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

Superscalar Execution Πως δουλεύει το SS ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.18

Γενική Οργάνωση Επεξεργαστή Superscalar ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.19

Superpipelined Επεξεργαστές Αύξηση του βάθους της διασωλήνωσης με σκοπό την αύξηση της συχνότητας (more instructions in flight at one time) l Όσο πιο ψηλός ο δείχτης (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 Superpipelined: πιο μεγάλη καθυστέρηση εντολών (instruction latency) από τους SS των οποίων η απόδοση εξαρτάται περισσότερο από τα true dependencies (δεδομένων και ελέγχου). Superscalar: είναι πιο ευάλωτοι σε συγκρούσεις δεδομένων στα εκτελεστικά συστήματα (resource conflicts) αλλά αυτό διορθώνεται με hardware (και σωστό σχεδιασμό!) ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.20

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 Instruction-level parallelism (ILP) ενός προγράμματος l Ο μέσος αριθμός εντολών σε ένα πρόγραμμα που ο επεξεργαστής ίσως να μπορεί να εκτελέσει παράλληλα l Συνήθως αποτέλεσμα των true (data) dependencies και των procedural (control) dependencies, σε σχέση με τον αριθμό των υπόλοιπων εντολών Data-level parallelism (DLP) DO I = 1 TO 100 A[I] = A[I] + 1 CONTINUE Machine parallelism ενός επεξεργαστή η ικανότητα ενός επεξεργαστή να εκμεταλλεύεται το ILP ενός προγράμματος l Determined by the number of instructions that can be fetched and executed at the same time Για ψηλότερη απόδοση, χρειαζόμαστε ILP και machine parallelism ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.22

Κατηγορίες επεξεργαστών πολλαπλής-έκδοσης Static multiple-issue processors (VLIW) l Η απόφαση/εις για το ποιες εντολές θα εκτελεστούν παράλληλα γίνεται στατικά από τον μεταγλωττιστή l Π.χ., Intel Itanium και Itanium 2 για IA-64 ISA EPIC (Explicit Parallel Instruction Computer) Dynamic multiple-issue processors (Superscalar) l Η απόφαση/εις για το ποιες εντολές θα εκτελεστούν παράλληλα γίνεται δυναμικά από το υλικό l Π.χ., IBM Power 2, Pentium 4, MIPS R10K, HP PA 8500 ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.23

Multiple-issue Processors: Instruction Issue and Completion Policies Instruction-issue αρχή της εκτέλεσης εντολής l Instruction lookahead ικανότητα να φέρνει, να αποκωδικοποιεί και να εκδίδει εντολές πέραν της εντολής που εκτελείται (fetch, decode and issue instructions beyond the current instruction) Instruction-completion συμπλήρωση εκτέλεσης l Processor lookahead ικανότητα να εκτελεί εντολές που εκδόθηκαν πέραν της εντολής που εκτελείται (complete issued instructions beyond the current instruction) Instruction-commit γράψιμο των αποτελεσμάτων στο Register File ή το D$ cache (i.e., change the machine state) l In-order issue with in-order completion l In-order issue with out-of-order completion l Out-of-order issue with out-of-order completion l Out-of-order issue with out-of-order completion and in-order commit ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.25

Control Hazards When the flow of instruction addresses is not what the pipeline expects; incurred by change of flow instructions l Conditional branches (beq, bne) l Unconditional branches (j) Possible solutions l Stall l Move decision point earlier in the pipeline l Predict l Delay decision (requires compiler support) 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

Branch Prediction 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 l l l If taken, flush instructions in the pipeline after the branch - in,, and EX 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 Resolve branch hazards by statically assuming a given outcome and proceeding 2. Predict taken always predict branches will be taken l Predict taken always incurs a stall (if branch destination hardware has been moved to the stage) As the branch penalty increases (for deeper pipelines), a simple static prediction scheme will hurt performance 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

3 Generic Data Hazards: RAW, WAR, WAW 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 Caused by a Dependence (in compiler nomenclature). This hazard results from an actual need for communication. Forwarding handles many, but not all, RAW dependencies in 5 stage MIPS pipeline ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.29

3 Generic Data Hazards: RAW, WAR, WAW Write After Read (WAR) Instr J writes operand before Instr I reads it Called an anti-dependence by compiler writers. This results from reuse of the name r1. Can t happen in MIPS 5 stage pipeline because: l l I: sub r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7 All instructions take 5 stages, and Reads are always in stage 2, and l Register Writes must be in stage 5 ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.30

3 Generic Data Hazards: RAW, WAR, WAW 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 Called an output dependence by compiler writers This also results from the reuse of name r1. Can t happen in MIPS 5 stage pipeline because: l All instructions take 5 stages, and l Register Writes must be in stage 5 Can see WAR and WAW in more complicated pipes ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.31

Multiple-issue Processors: Instruction Issue and Completion Policies Instruction-issue αρχή της εκτέλεσης εντολής l Instruction lookahead ικανότητα να φέρνει, να αποκωδικοποιεί και να εκδίδει εντολές πέραν της εντολής που εκτελείται (fetch, decode and issue instructions beyond the current instruction) Instruction-completion συμπλήρωση εκτέλεσης l Processor lookahead ικανότητα να εκτελεί εντολές που εκδόθηκαν πέραν της εντολής που εκτελείται (complete issued instructions beyond the current instruction) Instruction-commit γράψιμο των αποτελεσμάτων στο Register File ή το D$ cache (i.e., change the machine state) l In-order issue with in-order completion l In-order issue with out-of-order completion l Out-of-order issue with out-of-order completion l Out-of-order issue with out-of-order completion and in-order commit ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.32

In-Order Issue with In-Order Completion Το πιο απλό πράγμα είναι φυσικά η έκδοση, εκτέλεση και συμπλήρωση εντολών με την φυσική τους σειρά (i.e., in program order) Παράδειγμα: l 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 l 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 I6 EX EX EX In parallel can Fetch/decode 2 Commit 2 WB WB EX WB EX I1 two execute cycles I2 I3 I4 same function unit as I3 I5 data value produced by I4 I6 same function unit as I5 WB EX WB EX need forwarding hardware WB 8 cycles in total ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.35

In-Order Issue with Out-of-Order Completion Με συμπλήρωση out-of-order, μια εντολή που εκδόθηκε μετά από μια άλλη, μπορεί να συμπληρωθεί πριν την προπορευμένη σε φυσική σειρά εντολή l Out-of-order completion χρησιμοποιήται και σε single-issue pipelined processors για βελτίωση της απόδοσης πράξεων με μεγάλη καθυσττέρησης (latency), όπως τη διαίρεση Όταν χρησιμοποιούμε out-of-order completion, η έκδοση εντολών γίνεται stalled όταν: l l υπάρχει σύγκρουση πόρων (resource conflict) όταν μια εντολή που είναι έτοιμη για έκδοση χρειάζεται δεδομένα που θα παράγει μια εντολή που ακόμη δεν έχει συμπληρωθεί (true data dependency RAW) ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.36

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

Χειρισμός των Output Dependencies Υπάρχει ακόμη μια περίπτωση που η έκδοση μιας εντολής σταματάει (stalls) με IOI-OOC. Ας υποθέσουμε: I1 writes to R3 I2 writes to R3 I5 reads R3 l Εάν η εντολή I1 γράψει μετά την εντολή I2 στον καταχωρητή R3, τότε η εντολή I5 θα διαβάσει λάθος τιμή για τον R3 l Η I2 έχει ένα output dependency με την I1 write after write (WAW) Η έκδοση της I2 πρέπει να καθυστερήσει (stalled) αν το αποτέλεσμά της δύναται να επαναγραφεί από μια προηγούμενη, στη σειρά έκδοσης, (πχ. η I1) εντολή που χρειάζεται περισσόερο χρόνο για να ολοκληρωθεί το stall γίνεται πριν την έκδοση της εντολής (instruction issue) Ενώ το IOI-OOC εξυπακούει καλύτερη απόδοση, χρειάζεται περισσότερο έλεγχο για εξαρτήσεις και ως αποτέλεσμα, κατάλληλο υλικό για έλεγχο εξαρτήσεων. l Έλεγχος εξαρήσων για read after write (RAW) και write after write (WAW) ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.39

Out-of-Order Issue with Out-of-Order Completion Στο in-order issue, ο επεξεργαστής σταματά την αποκωδικοποίηση εντολών όταν μια εντολή έτοιμη για εκτέλεση έχει είτε resource conflict είτε data dependency με μια εντολή που ήδη εκδόθηκε, αλλά που δεν συμπληρώθηκε. l Ο επεξεργαστής δεν είναι ικανός να δει πέραν της εντολής τη σύγκρουση/εξάρτησης παρά το γεγονός ότι δύναται να υπάρχουν πιο κάτω εντολές που δεν έχουν σύγκρουση/εξάρτηση και, επομένως, να μπορούν να εκδοθούν. Στο out-of-order issue, εντολές μεταγενέστερες της εντολής με τη σύγκρουση/εξάρτηση μπορούν να εκδοθούν και να αποκωδικοποίηθούν (fetch and decode) l l l Αποθηκεύονται σε ένα instruction buffer (όσο έχει χώρο φυσικά) και σημείωνονται/καταχώρούνται στις εντολές στο buffer που δεν έχουν συγκρούσεις/εξαρτήσεις Οι σημειωμένες εντολές εκδίδονται από το buffer χωρίς αναφορά στην φυσική τους σειρά στο πρόγραμμα. Χρήση instruction window ( = μέγεθος instruction buffer). ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.40

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

Anti-dependencies 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 Ο περιορισμός είναι παρόμοιος με τα true data dependencies, αλλά αντίστροφος ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.42

Dependencies Επανάληψη Τρία data dependencies: l True data dependencies (read before write) l Antidependencies (write before read) l Output dependencies (write before write) storage conflicts εμφανίζονται με την χρήση των registers (ή άλλα storage locations) True dependencies αντιπροσωπεύουν την ροή δεδομένων και την ροή του προγράμματος Anti- και output dependencies δημιουργούνται εξαιτίας του περιορισμένου αριθμού καταχωρητών και εξυπακούει ότι το πρόγραμμα χρησημοποιά τα ίδια φυσικά registers για διαφορετικούς υπολογισμούς Όταν οι εντολές εκδίδονται out-of-order, η σειρά συναλλαγών μεταξύ καταχωρητών και δεδομένων σπάζει, και τα δεδομένα συγκρούονται για τα registers (conflict for registers) ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.43

Storage Conflicts και Register Renaming Τα Storage conflicts μειώνονται (ή αποφεύγονται) με αύξηση ή με αντιγραφή της προβληματικής τοποθεσίας l Επιπρόσθετοι καταχωρητές χρησιμοποιούνται για να λύσουν το πρόβημα - Με δυναμικό τρόπο από το υλικό σε επεξεργαστές SS Register renaming Ο επεξεργαστής μετονομάζει το αρχικό register identifier στην εντολή σε ένα καινούριο και αχρησιμοποίητο register (κάποιο που δεν χρησιμποποιήται σε κάποια από τις εντολές που μπορεί να δει) R3 := R3 * R5 R4 := R3 + 1 R3 := R5 + 1 R3b := R3a * R5a R4a := R3b + 1 R3c := R5a + 1 l 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

Review: Extracting More Performance To achieve high performance, need both machine parallelism and instruction level parallelism (ILP) by l Superpipelining l Static multiple-issue (VLIW) l Dynamic multiple-issue (superscalar) A processor s instruction issue and completion policies impact available ILP l In-order issue with in-order completion l In-order issue with out-of-order completion - Creates output dependencies (write before write) l Out-of-order issue with out-of-order completion - Creates antidependency (write before read) l Out-of-order issue with out-of-order completion and in-order commit Register renaming can solve these storage dependencies ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.45

Speedup Measurements H βελτίωση της απόδοσης του SS επεξεργαστή είναι - Assumes scalar and superscalar machines have the same IC & CR # scalar cycles speedup = s n = -------------------------------- # superscalar cycles Για μέτρηση του μέσου όρου βελτίωσης της απόδοσης, n χρησιμοποιούμε AM = 1/n s l Arithmetic mean i i = 1 n l Harmonic mean HM = n / ( 1/s i ) i = 1 - assigns a larger weighting to the programs with the smallest speedup l EX: 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

Maximum (θεωρητική) SS Βελτίωση απόδοσης Η ψηλότερη βελτίωση απόδοσης από το ιδεώδες σύστημα παραλληλισμού ( ideal machine parallelism) (ignoring resource conflicts, storage dependencies, and procedural dependencies) l HM of 5.4 is the highest average speedup for these benchmarks that can be achieved even with ideal machine parallelism! 12 10 From Johnson, 1992 Speedup 8 6 4 2 0 5diff ccom doduc gnuchess irsim linpack simple troff twolf ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.47

Baseline Superscalar MIPS Processor Model P C Fetch BHT BTB I$ N I RUU_Head RUU_Tail Decode & Dispatch N L I I Register Update Unit (managed as a queue) L FP I Integer RegFile RegFile RUU Issue & Execute 3 4 5 6 Load/Store Queue 1 2 FPALU IALU IALU LSQ IMULT Result Bus Writeback D$ Commit ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.48

The Post-RISC Architecture ΗΜΥ312 Δ16 - Παραλληλισμός εντολών και εισαγωγή στον SimpleScalar.49

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

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