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

24
Υπερβαθμωτή (superscalar) Ο ά Υ λ ώ Οργάνωση Υπολογιστών 1 cslab@ntua 2010-2011

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

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

1cslab@ntua 2010-2011

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

• Μέγιστο throughput: 1 εντολή/κύκλο ρολογιού (IPC≤1)

• Υποχρεωτική ροή όλων των (διαφορετικών)• Υποχρεωτική ροή όλων των (διαφορετικών) τύπων εντολών μέσα από κοινή σωλήνωση

• Εισαγωγή καθυστερήσεων σε ολόκληρη την ακολουθία εκτέλεσης λόγω stalls μίας εντολής (οι απόλυτα βαθμωτές αρχιτεκτονικές πραγματοποιούν εν σειρά (in-order) εκτέλεση των εντολών)

2cslab@ntua 2010-2011

Πώς μπορούν να ξεπεραστούν οι περιορισμοί;περιορισμοί;

• Εκτέλεση πολλαπλών εντολών ανά κύκλο μηχανής (παράλληλη εκτέλεση) → υπερβαθμωτές αρχιτεκτονικέςυπερβαθμωτές αρχιτεκτονικές

• Ενσωμάτωση διαφορετικών αγωγών ροής δεδομένων, ο καθένας με όμοιες (πολλαπλή εμφάνιση του ίδιου τύπου) ή και ετερογενείςεμφάνιση του ίδιου τύπου) ή και ετερογενείς λειτουργικές μονάδες→ multicycle operations

• Δυνατότητα εκτέλεσης εκτός σειράς (out of order)• Δυνατότητα εκτέλεσης εκτός σειράς (out-of-order) των εντολών → δυναμικές αρχιτεκτονικές

3cslab@ntua 2010-2011

Παραλληλισμός Επιπέδου ΕντολώνILP: Instruction Level ParallelismILP: Instruction-Level Parallelism

• Ο ILP είναι ένα μέτρο του βαθμού των πραγματικών εξαρτήσεων δεδομένων που υφίστανται ανάμεσα στις ξ ρ ή μ φ μ ςεντολές

A ILP #i t ti / # l i d• Average ILP = #instructions / #cycles requiredcode1: ILP = 1 οι εντολές πρέπει να εκτελεστούν σειριακάοι εντολές πρέπει να εκτελεστούν σειριακά

code2: ILP = 3 οι εντολές μπορούν να εκτελεστούν παράλληλας μ ρ ρ η

code1: r1 ← r2 + 1r3 ← r1 / 17

code2: r1 ← r2 + 1r3 ← r9 / 17

4cslab@ntua 2010-2011

r3 ← r1 / 17r4 ← r0 - r3

r3 ← r9 / 17r4 ← r0 - r10

Όρια του ILPρ

Weiss and Smith [1984] 1.58Sohi and Vajapeyam [1987] 1.81Tjaden and Flynn [1970] 1.86Tjaden and Flynn [1973] 1.96Uht [1986] 2.00Smith et al [1989] 2 00Smith et al. [1989] 2.00Jouppi and Wall [1988] 2.40Johnson [1991] 2.50Acosta et al. [1986] 2.79W di [1982] 3 00Wedig [1982] 3.00Butler et al. [1991] 5.8Melvin and Patt [1991] 6Wall [1991] 7[ ]Kuck et al. [1972] 8Riseman and Foster [1972] 51Nicolau and Fisher [1984] 90

5cslab@ntua 2010-2011

ILP parameters (Jouppi and Wall, 1989)p

• Operation Latency (OL)p y ( )Number of machine cycles until a result is available for use by

a subsequent instruction• Machine Parallelism (MP)Machine Parallelism (MP)Max number of simultaneously executing instructions the

machine can support• Issue Latency (IL)Issue Latency (IL)Number of machine cycles required between issuing two

consecutive instructions• Issue Parallelism (ΙP) (παραλληλισμός διανομής)• Issue Parallelism (ΙP) (παραλληλισμός διανομής)Max number of instructions that can be issued in every cycle

6cslab@ntua 2010-2011

Κατηγοριοποίηση επεξεργαστών με βάση τον ILPμε βάση τον ILP

[Jouppi, DECWRL 1991]

• Baseline Scalar pipeline (π χ κλασικό 5-stage ΜIPS)• Baseline Scalar pipeline (π.χ. κλασικό 5-stage ΜIPS)– Παραλληλισμός διανομής IP (Issue Parallelism) = 1 εντολή/κύκλο– IL (Issue Latency) = 1 cycle

MP (Machine Parallelism) = k (k stages in the pipeline)– MP (Machine Parallelism) = k (k stages in the pipeline)– OL (operation latency) = 1 cycle– Μέγιστο IPC = 1 εντολή/κύκλο

12 3 4

IF DE EX WB

ES

SIV

EU

CTI

ON

S

45 6

SU

CC

EIN

STR

U

7cslab@ntua 2010-2011

1 2 3 4 5 6 7 8 90

TIME IN CYCLES (OF BASELINE MACHINE)

Κατηγοριοποίηση επεξεργαστών με βάση τον 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 cyclesminor cycleminor cycle

12

3

Superpipelining: issues instructions faster than they

d!

Pipelining of the 3

45

IF DE EX WB6

are executed!of the execution

stage into

8cslab@ntua 2010-2011

IF DE EX WB

1 2 3 4 5 6multiple stages

Κατηγοριοποίηση επεξεργαστών με βάση τον ILPμε βάση τον ILP

[Jouppi, DECWRL 1991]

• Superscalar:• Superscalar:– Παραλληλισμός διανομής = IP = n εντολές / κύκλο– Καθυστέρηση λειτουργίας = OP = 1 κύκλοςΜέγιστο IPC = n εντολές / κύκλο (n x speedup?)– Μέγιστο IPC = n εντολές / κύκλο (n x speedup?)

123

45

n

56

9

78

9cslab@ntua 2010-2011

IF DE EX WB9

Κατηγοριοποίηση επεξεργαστών με βάση τον ILPμε βάση τον ILP

[Jouppi, DECWRL 1991]

• VLIW: Very Long Instruction Word• VLIW: Very Long Instruction Word– Παραλληλισμός διανομής = IP = n εντολές / κύκλο– Καθυστέρηση λειτουργίας = OP = 1 κύκλοςΜέγιστο IPC = n εντολές / κύκλος = 1 VLIW / κύκλο– Μέγιστο IPC = n εντολές / κύκλος = 1 VLIW / κύκλο

IF DE WB

10cslab@ntua 2010-2011

EX

Κατηγοριοποίηση επεξεργαστών με βάση τον ILPμε βάση τον ILP

[Jouppi, DECWRL 1991]

• Superpipelined-Superscalar• Superpipelined-Superscalar– Παραλληλισμός διανομής = IP = n εντολές / minor κύκλο– Καθυστέρηση λειτουργίας = OP = m minor κύκλοιΜέγιστο IPC = n x m εντολές / major κύκλο– Μέγιστο IPC = n x m εντολές / major κύκλο

123

4556

9

78

11cslab@ntua 2010-2011

IF DE EX WB9

Superscalar vs. Superpipelinedp p p p

• Περίπου ισοδύναμη επίδοσηΠερίπου ισοδύναμη επίδοση– Αν n = m τότε και οι δύο έχουν περίπου το ίδιο IPC– Παραλληλισμός στο «χώρο» vs. παραλληλισμός στον χρόνο

SUPERSCALARK

SUPERPIPELINED

Key:

IFetchDcode

ExecuteW i b k

Time in Cycles (of Base Machine)0 1 2 3 4 5 6 7 8 9 10 11 12 13

Writeback

12cslab@ntua 2010-2011

Time in Cycles (of Base Machine)

Superpipeliningp p p g

“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 probablysuperpipelining 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 rootprefix rather than a suffix for the pompous extension of the root word.”

- Nick Tredennick, 1991

13cslab@ntua 2010-2011

Superpipelining: Hype vs RealityHype vs. Reality

baseline

η ταχύτητα διανομής των λώ δ λ θ ί

underpipelined

εντολών δεν ακολουθεί το ρυθμό επεξεργασίας τους

τα αποτελέσματα μιας

14cslab@ntua 2010-2011

superpipelinedμ μ ς

εντολής δεν είναι διαθέσιμα στις επόμενες m-1 διαδοχικές εντολές

Μοντέλο ροών στους Superscalarsρ ς p

I-cache

FETCHBranchPredictor Instruction

Buffer

InstructionFlow

DECODE

Integer Floating-point Media Memory

MemoryData

EXECUTE Flow

COMMITD h

ReorderBufferRegister

Data

EXECUTE

(ROB)

Flow

Fl

15cslab@ntua 2010-2011

D-cacheStoreQueue

Flow

Παράλληλες αρχιτεκτονικές αγωγούρ η ς ρχ ς γ γ

• Βαθμός παραλληλισμούμηχανήματος: ο μέγιστος μηχ ήμ ς μ γ ςαριθμός εντολών που μπορούν ταυτόχρονα να είναι σε εξέλιξηξ ξη

• Σε ένα μια βαθμωτή ή ύαρχιτεκτονική ισούται με τον

αριθμό σταδίων του pipeline (pipeline depth)

16cslab@ntua 2010-2011

Παράδειγμα βαθμωτής αρχιτεκτονικής αγωγού 6 σταδίωναρχιτεκτονικής αγωγού 6 σταδίων

• IF: instruction fetch• ID: instruction decode• RD: register read• ALU: ALU op/address generation• MEM: read/write memory• MEM: read/write memory• WB: register write

17cslab@ntua 2010-2011

H ίδια σωλήνωση με πλάτος 3ή η μ ς

• Πολλαπλά δομικά στοιχεία(functional units) στο h dhardware

• Αυξάνεται η λογική πολυπλοκότητα των σταδίων

i liτου pipeline• Απαιτούνται πολλαπλές θύρες ανάγνωσης/εγγραφής

i t filτου register file για την ταυτόχρονη προσπέλαση από όλους τους αγωγούςΕ ά• Επιτυγχάνεται στην καλύτερη περίπτωση επιτάχυνση ίση με 3 σε σύγκριση με την αντίστοιχη

18cslab@ntua 2010-2011

σύγκριση με την αντίστοιχη βαθμωτή σωλήνωση

Inorder Pipelinesp

IF IF IFIF

D1

IF IF

D1 D1

D2 D2 D2

EX

WB

EX EX

WB WB

Intel i486 Intel Pentium (2 i486 pipelines)

U - Pipe V - Pipe

19cslab@ntua 2010-2011

Ετερογενείς υπερβαθμωτές σωληνώσεις

• επέκταση των βαθμωτών σωληνώσεων πολλαπλών ηκύκλων (π.χ. FP MIPS pipeline) στa στάδια IF, ID, RD,WB

• μετά το RD, κάθε εντολή γίνεται issue μέσα στον αγωγό που αντιστοιχεί στον τύπο της

20cslab@ntua 2010-2011

CDC 6600-1964

• ο πρώτος υπολογιστής που κατασκευάστηκε στα πρότυπα ενός «υπερ-υπολογιστή»ς ρ γ ή

• 1964 (πριν από τους επεξεργαστές RISC): περιείχε 10επεξεργαστές RISC): περιείχε 10 διαφορετικές λειτουργικές μονάδες έξω από τη σωλήνωση, με διαφορετικό latency η κάθε ίμία

• στόχος η διεκπεραίωση 1 λή ά ύ λ ήεντολής ανά κύκλο μηχανής

• 8 address registers (1

21cslab@ntua 2010-2011

CDC 6600

• 10 functional units/non pipelined/variable exec l tlatency

• 1x Fixed-point adder (18 bits)-3 cycles• 1 x Floating-point adder (60 bits)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• 2 x increment units• Branch unit

22cslab@ntua 2010-2011

Motorola 88110-1992• ένας από τους πλατύτερους αγωγούς (most wider pipelines)• περιέχει 10 λειτουργικές μονάδες, στην πλειοψηφία τους με latency ενός

κύκλου• όλες είναι pipelined, εκτός της μονάδας για διαίρεση

23cslab@ntua 2010-2011

Source: Diefendorf and Allen (1992)

Ετερογενής σωλήνωση του Power4

PCI-Cache

BRFetch Q BR Scan

BR Predict

Fetch Q

Decode Predict

Reorder BufferBR/CRIssue Q

FX/LD 1Issue Q

FX/LD 2Issue Q

FPIssue Q

CRUnit

BRUnit

FX1Unit LD1

UnitLD2Unit

FX2Unit

FP1 FP2Unit Unit

StQ

24cslab@ntua 2010-2011

D-Cache