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

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

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

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

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

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

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

CS425 Computer Systems Architecture

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

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

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

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

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

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

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

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

Χξνλνδξνκνιόγεζε/Γξνκνιόγεζε/ζρεδηαζκόο (Scheduling-routing)

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

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

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

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

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

(Branch Prediction Mechanisms)

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

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

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

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

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

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

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

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

ΑΚΗΕΙ ΓΙΑ ΣΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (7)

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

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

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

CS-425 Mid-term exam

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

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

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

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

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

Instruction Execution Times

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

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

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

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

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

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

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

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

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

ΗΥ-100 Ειζαγωγή ζηην Επιζηήμη Υπολογιζηών

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

Πολυνηματικές Αρχιτεκτονικές

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

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

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Ενότητα 6 - Σύστημα Διασωλήνωσης. Π. Ευριπίδου (2007)

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

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

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

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

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

Πολυνηματικές Αρχιτεκτονικές

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

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

ΠΑΡΑΡΣΗΜΑ Ι Τποχρεωτικές θέσεις ανά τύπο Διασάφησης Εξαγωγής/Λογιστικής Εγγραφής A,D B,E C,F Υ,Τ,Ζ

Πολυνηματικές Αρχιτεκτονικές

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

Ειδική Επιστημονική Εργασία. Σχεδίαση και υλοποίηση Θέσεως Εργασίας ενός Εργαστηρίου DSPs από Απόσταση για Λήψη και Επεξεργασία Εικόνας

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

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

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

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

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

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2

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

12. Ηζσύει : 0 θ,όπος θ η γυνία δςο μη μηδενικών διανςζμάηυν.

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

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

2. Τεχνολογία επεξεργαστών

ΓΔΛΣΙΟ ΣΤΠΟΤ ΔΛΔΓΥΟΙ ΑΠΟ ΣΟ ΤΠΟΤΡΓΔΙΟ ΟΙΚΟΝΟΜΙΚΩΝ ΑΠΟ ΔΩ

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

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

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

Πολυνηματικές Αρχιτεκτονικές

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων

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

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

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

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

EE512: Error Control Coding

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

Transcript:

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

Πεπιοπιζμοί ηυν βαθμυηών απσιηεκηονικών Μέγιζηο throughput: 1 ενηολή/κύκλο πολογιού (IPC 1) Υποσπευηική ποή όλυν ηυν (διαθοπεηικών) ηύπυν ενηολών μέζα από κοινή ζυλήνυζη Διζαγυγή καθςζηεπήζευν ζε ολόκληπη ηην ακολοςθία εκηέλεζηρ λόγυ stalls μίαρ ενηολήρ (οι απόλςηα βαθμυηέρ απσιηεκηονικέρ ππαγμαηοποιούν εν ζειπά (in-order) εκηέλεζη ηυν ενηολών) 2

Πώρ μποπούν να ξεπεπαζηούν οι πεπιοπιζμοί; Δνζυμάηυζη διαθοπεηικών αγυγών ποήρ δεδομένυν, ο καθέναρ με όμοιερ (πολλαπλή εμθάνιζη ηος ίδιος ηύπος) ή και εηεπογενείρ λειηοςπγικέρ μονάδερ multicycle operations Δκηέλεζη πολλαπλών ενηολών ανά κύκλο μησανήρ (παπάλληλη εκηέλεζη) ςπεπβαθμυηέρ απσιηεκηονικέρ Γςναηόηηηα εκηέλεζηρ εκηόρ ζειπάρ (out-of-order) ηυν ενηολών δςναμικέρ απσιηεκηονικέρ 3

Παπαλληλιζμόρ Δπιπέδος Δνηολών ILP: Instruction-Level Parallelism Ο ILP είναι ένα μέηπο ηος βαθμού ηυν ππαγμαηικών εξαπηήζευν δεδομένυν πος ςθίζηανηαι ανάμεζα ζηιρ ενηολέρ Average ILP = #instructions / #cycles required code1: ILP = 1 οι εντολές πρέπει να εκτελεστούν σειριακά code2: ILP = 3 οι εντολές μπορούν να εκτελεστούν παράλληλα code1: r1 r2 + 1 r3 r1 / 17 r4 r0 - r3 code2: r1 r2 + 1 r3 r9 / 17 r4 r0 - r10 4

ILP parameters (Jouppi and Wall, 1989) Operation Latency (OL) Number of machine cycles until a result is available for use by a subsequent instruction Machine Parallelism (MP) Max number of simultaneously executing instructions the machine can support Issue Latency (IL) Number of machine cycles required between issuing two consecutive instructions Issue Parallelism (ΙP) Max number of instructions that can be issued in every cycle 5

Καηηγοπιοποίηζη επεξεπγαζηών με βάζη ηον ILP [Jouppi, DECWRL 1991] Baseline Scalar pipeline (π.σ. κλαζικό 5-stage ΜIPS) Παπαλληλιζμόρ διανομήρ IP (Issue Parallelism) = 1 ενηολή/κύκλο IL (Issue Latency) = 1 cycle MP (Machine Parallelism) = k (k stages in the pipeline) OL (operation latency) = 1 cycle Μέγιζηο IPC = 1 ενηολή/κύκλο S U C C E S S IV E IN S T R U C T IO N S 1 2 3 4 5 6 IF DE EX WB 0 1 2 3 4 5 6 7 8 9 T IM E IN C Y C L E S (O F B A S E L IN E M A C H IN E ) 6

Καηηγοπιοποίηζη επεξεπγαζηών με βάζη ηον ILP [Jouppi, DECWRL 1991] Superpipelined: κύκλορ πολογιού = 1/m ηος baseline Issue Parallelism IP = 1 ενηολή / minor κύκλο Operation Latency OL = 1 major cycle = m minor κύκλοι Issue Latency IL = 1 minor cycle MP = m x k Μέγιζηο IPC = m ενηολέρ / major κύκλο (m x speedup?) major cycle = m minor cycles 1 Pipelining of the execution stage into multiple stages 2 3 4 5 6 minor cycle IF DE EX WB 1 2 3 4 5 6 Superpipelining: issues instructions faster than they are executed! 7

Superpipelining Superpipelining is a new and special term meaning pipelining. The prefix is attached to increase the probability of funding for research proposals. There is no theoretical basis distinguishing superpipelining from pipelining. Etymology of the term is probably similar to the derivation of the now-common terms, methodology and functionality as pompous substitutes for method and function. The novelty of the term superpipelining lies in its reliance on a prefix rather than a suffix for the pompous extension of the root word. - Nick Tredennick, 1991 8

Superpipelining: Hype vs. Reality baseline η ηασύηηηα διανομήρ ηων ενηολών δεν ακολοςθεί ηο πςθμό επεξεπγαζίαρ ηοςρ underpipelined superpipelined ηα αποηελέζμαηα μιαρ ενηολήρ δεν είναι διαθέζιμα ζηιρ επόμενερ m-1 διαδοσικέρ ενηολέρ 9

Καηηγοπιοποίηζη επεξεπγαζηών με βάζη ηον ILP [Jouppi, DECWRL 1991] Superscalar: Παπαλληλιζμόρ διανομήρ = IP = n ενηολέρ / κύκλο Καθςζηέπηζη λειηοςπγίαρ = OP = 1 κύκλορ Μέγιζηο IPC = n ενηολέρ / κύκλο (n x speedup?) 1 2 3 4 5 6 7 8 9 n IF DE EX WB 10

Καηηγοπιοποίηζη επεξεπγαζηών με βάζη ηον ILP [Jouppi, DECWRL 1991] VLIW: Very Long Instruction Word Παπαλληλιζμόρ διανομήρ = IP = n ενηολέρ / κύκλο Καθςζηέπηζη λειηοςπγίαρ = OP = 1 κύκλορ Μέγιζηο IPC = n ενηολέρ / κύκλορ = 1 VLIW / κύκλο IF DE WB EX 11

Καηηγοπιοποίηζη επεξεπγαζηών με βάζη ηον ILP [Jouppi, DECWRL 1991] Superpipelined-Superscalar Παπαλληλιζμόρ διανομήρ = IP = n ενηολέρ / minor κύκλο Καθςζηέπηζη λειηοςπγίαρ = OP = m minor κύκλοι Μέγιζηο IPC = n x m ενηολέρ / major κύκλο 1 2 3 4 5 6 7 8 9 IF DE EX WB 12

Superscalar vs. Superpipelined Πεπίπος ιζοδύναμη επίδοζη Αν n = m ηόηε και οι δύο έσοςν πεπίπος ηο ίδιο IPC Παπαλληλιζμόρ ζηο «σώπο» vs. παπαλληλιζμόρ ζηον σπόνο S U P E R S C A L A R K ey : S U P E R P IP E L IN E D I Fe tch D co d e E x ecu te W r iteb ack 0 1 2 3 4 5 6 7 8 9 Tim e in C y c le s (o f B a se M a c h in e ) 10 11 12 13 13

Μονηέλο ποών ζηοςρ Superscalars I-cache Branch Predictor FETCH Instruction Buffer Instruction Flow DECODE Integer Floating-point Media Memory Register Data Flow Reorder Buffer (ROB) Store Queue EXECUTE COMMIT D-cache Memory Data Flow 14

Παπάλληλερ απσιηεκηονικέρ αγυγού Βαθμόρ παπαλληλιζμού μησανήμαηορ: ο μέγιζηορ απιθμόρ ενηολών πος μποπούν ηαςηόσπονα να είναι ζε εξέλιξη Σε ένα μια βαθμυηή απσιηεκηονική ιζούηαι με ηον απιθμό ζηαδίυν ηος pipeline (pipeline depth) 15

Παπάδειγμα βαθμυηήρ απσιηεκηονικήρ αγυγού 6 ζηαδίυν IF: instruction fetch ID: instruction decode RD: register read ALU: ALU op/address generation MEM: read/write memory WB: register write 16

H ίδια ζυλήνυζη με πλάηορ 3 Πολλαπλά δομικά ζηοισεία (functional units) ζηο hardware Αςξάνεηαι η λογική πολςπλοκόηηηα ηυν ζηαδίυν ηος pipeline Απαιηούνηαι πολλαπλέρ θύπερ ανάγνυζηρ/εγγπαθήρ ηος register file για ηην ηαςηόσπονη πποζπέλαζη από όλοςρ ηοςρ αγυγούρ Δπιηςγσάνεηαι ζηην καλύηεπη πεπίπηυζη επιηάσςνζη ίζη με 3 ζε ζύγκπιζη με ηην ανηίζηοιση βαθμυηή ζυλήνυζη 17

Inorder Pipelines IF IF IF D1 D1 D1 D2 D2 D2 EX EX EX WB WB U - Pipe WB V - Pipe Intel i486 Intel Pentium (2 i486 pipelines) 18

Δηεπογενείρ ςπεπβαθμυηέρ ζυληνώζειρ επέκηαζη ηυν βαθμυηών ζυληνώζευν πολλαπλών κύκλυν (π.σ. FP MIPS pipeline) ζηa ζηάδια IF, ID, RD,WB μεηά ηο RD, κάθε ενηολή γίνεηαι issue μέζα ζηον αγυγό πος ανηιζηοισεί ζηον ηύπο ηηρ 19

ο ππώηορ ςπολογιζηήρ πος καηαζκεςάζηηκε ζηα ππόηςπα ενόρ «ςπεπ-ςπολογιζηή» CDC 6600-1964 1964 (ππιν από ηοςρ επεξεπγαζηέρ RISC): πεπιείσε 10 διαθοπεηικέρ λειηοςπγικέρ μονάδερ έξυ από ηη ζυλήνυζη, με διαθοπεηικό latency η κάθε μία ζηόσορ η διεκπεπαίυζη 1 ενηολήρ ανά κύκλο μησανήρ 8 address registers (18 bits) 20

CDC 6600 10 functional units/non pipelined/variable exec latency 1x Fixed-point adder (18 bits)-3 cycles 1 x Floating-point adder (60 bits) 2 x Multiply unit (60 bits)-10 cycles Divide unit (60 bits)-29 cycles Shift unit (60 bits) Logical unit (60 bits) 2 x increment units Branch unit 21

Motorola 88110-1992 έναρ από ηοςρ πλαηύηεποςρ αγυγούρ (most wider pipelines) πεπιέσει 10 λειηοςπγικέρ μονάδερ, ζηην πλειοτηθία ηοςρ με latency ενόρ κύκλος όλερ είναι pipelined, εκηόρ ηηρ μονάδαρ για διαίπεζη Source: Diefendorf and Allen (1992) 22

Δηεπογενήρ ζυλήνυζη ηος Power4 I-Cache PC Fetch Q BR Scan Decode BR Predict FP Issue Q FX/LD 1 Issue Q FX/LD 2 Issue Q BR/CR Issue Q Reorder Buffer FP1 Unit FP2 Unit FX1 Unit LD1 Unit LD2 Unit FX2 Unit CR Unit BR Unit StQ D-Cache 23