23
Υπεπβαθμωηή (superscalar) Οπγάνωζη Υπολογιζηών 1 cslab@ntua 2012-2013

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

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

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

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

1cslab@ntua 2012-2013

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

Πεπιοπιζμοί ηυν βαθμυηών απσιηεκηονικών

• Μέγιζηο throughput: 1 ενηολή/κύκλο πολογιού (IPC≤1)

• Υποσπευηική ποή όλυν ηυν (διαθοπεηικών) ηύπυν ενηολών μέζα από κοινή ζυλήνυζη

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

2cslab@ntua 2012-2013

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

Πώρ μποπούν να ξεπεπαζηούν οι πεπιοπιζμοί;

• Δνζυμάηυζη διαθοπεηικών αγυγών ποήρ δεδομένυν, ο καθέναρ με όμοιερ (πολλαπλή εμθάνιζη ηος ίδιος ηύπος) ή και εηεπογενείρ λειηοςπγικέρ μονάδερ

→ multicycle operations

• Δκηέλεζη πολλαπλών ενηολών ανά κύκλο μησανήρ (παπάλληλη εκηέλεζη)

→ ςπεπβαθμυηέρ απσιηεκηονικέρ

• Γςναηόηηηα εκηέλεζηρ εκηόρ ζειπάρ (out-of-order) ηυν ενηολών

→ δςναμικέρ απσιηεκηονικέρ

3cslab@ntua 2012-2013

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

Παπαλληλιζμόρ Δπιπέδος ΔνηολώνILP: Instruction-Level Parallelism

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

• Average ILP = #instructions / #cycles required

code1: ILP = 1

οι εντολές πρέπει να εκτελεστούν σειριακά

code2: ILP = 3

οι εντολές μπορούν να εκτελεστούν παράλληλα

code2: r1 r2 + 1

r3 r9 / 17

r4 r0 - r10

code1: r1 r2 + 1

r3 r1 / 17

r4 r0 - r3

4cslab@ntua 2012-2013

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

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

5cslab@ntua 2012-2013

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

Καηηγοπιοποίηζη επεξεπγαζηών με βάζη ηον 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 ενηολή/κύκλο

1

23

45

6

IF D E E X W B

1 2 3 4 5 6 7 8 90

T IM E IN C Y C L E S (O F B A S E L IN E M A C HIN E )

SU

CC

ES

SIV

EIN

ST

RU

CT

ION

S

6cslab@ntua 2012-2013

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

Καηηγοπιοποίηζη επεξεπγαζηών με βάζη ηον 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

minor cycle

1

2

3

4

5

IF D E E X W B

6

1 2 3 4 5 6

Superpipelining: issues instructions faster than they are executed!

Pipelining of the

execution stage into

multiple stages

7cslab@ntua 2012-2013

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

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

8cslab@ntua 2012-2013

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

Superpipelining: Hype vs. Reality

baseline

underpipelined

superpipelined

η ηασύηηηα διανομήρ ηων

ενηολών δεν ακολοςθεί ηο

πςθμό επεξεπγαζίαρ ηοςρ

ηα αποηελέζμαηα μιαρ

ενηολήρ δεν είναι διαθέζιμα

ζηιρ επόμενερ m-1

διαδοσικέρ ενηολέρ 9cslab@ntua 2012-2013

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

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

[Jouppi, DECWRL 1991]

• Superscalar:– Παπαλληλιζμόρ διανομήρ = IP = n ενηολέρ / κύκλο

– Καθςζηέπηζη λειηοςπγίαρ = OP = 1 κύκλορ

– Μέγιζηο IPC = n ενηολέρ / κύκλο (n x speedup?)

IF D E E X W B

1

2

3

4

5

6

9

7

8

n

10cslab@ntua 2012-2013

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

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

[Jouppi, DECWRL 1991]

• VLIW: Very Long Instruction Word– Παπαλληλιζμόρ διανομήρ = IP = n ενηολέρ / κύκλο

– Καθςζηέπηζη λειηοςπγίαρ = OP = 1 κύκλορ

– Μέγιζηο IPC = n ενηολέρ / κύκλορ = 1 VLIW / κύκλο

IF D E

E X

W B

11cslab@ntua 2012-2013

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

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

[Jouppi, DECWRL 1991]

• Superpipelined-Superscalar– Παπαλληλιζμόρ διανομήρ = IP = n ενηολέρ / minor κύκλο

– Καθςζηέπηζη λειηοςπγίαρ = OP = m minor κύκλοι

– Μέγιζηο IPC = n x m ενηολέρ / major κύκλο

IF D E E X W B

1

2

3

4

5

6

9

7

8

12cslab@ntua 2012-2013

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

Tim e in C y c le s (o f B a se M a c h in e )

0 1 2 3 4 5 6 7 8 9

S U P E R P IP E L IN E D

1 0 11 1 2 1 3

S U P E R S C A L A RK ey :

IFe tch

D co d e

Ex ecu te

W r iteb ack

Superscalar vs. Superpipelined

• Πεπίπος ιζοδύναμη επίδοζη– Αν n = m ηόηε και οι δύο έσοςν πεπίπος ηο ίδιο IPC

– Παπαλληλιζμόρ ζηο «σώπο» vs. παπαλληλιζμόρ ζηον σπόνο

13cslab@ntua 2012-2013

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

Μονηέλο ποών ζηοςρ Superscalars

I-cache

FETCH

DECODE

COMMIT

D-cache

BranchPredictor Instruction

Buffer

StoreQueue

ReorderBuffer

Integer Floating-point Media Memory

Instruction

RegisterData

Memory

Data

Flow

EXECUTE

(ROB)

Flow

Flow

14cslab@ntua 2012-2013

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

Παπάλληλερ απσιηεκηονικέρ αγυγού

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

• Σε ένα μια βαθμυηή απσιηεκηονική ιζούηαι με ηον απιθμό ζηαδίυν ηος pipeline (pipeline depth)

15cslab@ntua 2012-2013

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

Παπάδειγμα βαθμυηήρ απσιηεκηονικήρ αγυγού 6 ζηαδίυν

• IF: instruction fetch

• ID: instruction decode

• RD: register read

• ALU: ALU op/address generation

• MEM: read/write memory

• WB: register write

16cslab@ntua 2012-2013

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

H ίδια ζυλήνυζη με πλάηορ 3

• Πολλαπλά δομικά ζηοισεία(functional units) ζηο hardware

• Αςξάνεηαι η λογική πολςπλοκόηηηα ηυν ζηαδίυν ηος pipeline

• Απαιηούνηαι πολλαπλέρ θύπερ ανάγνυζηρ/εγγπαθήρηος register file για ηην ηαςηόσπονη πποζπέλαζη από όλοςρ ηοςρ αγυγούρ

• Δπιηςγσάνεηαι ζηην καλύηεπη πεπίπηυζη επιηάσςνζη ίζη με 3 ζε ζύγκπιζη με ηην ανηίζηοιση βαθμυηή ζυλήνυζη

17cslab@ntua 2012-2013

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

Inorder Pipelines

IF

D1

D2

EX

WB

Intel i486

IF IF

D1 D1

D2 D2

EX EX

WB WB

Intel Pentium (2 i486 pipelines)

U - Pipe V - Pipe

18cslab@ntua 2012-2013

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

Δηεπογενείρ ςπεπβαθμυηέρ ζυληνώζειρ

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

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

19cslab@ntua 2012-2013

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

CDC 6600-1964

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

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

• ζηόσορ η διεκπεπαίυζη 1 ενηολήρ ανά κύκλο μησανήρ

• 8 address registers (18 bits)

20cslab@ntua 2012-2013

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

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

21cslab@ntua 2012-2013

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

Motorola 88110-1992

• έναρ από ηοςρ πλαηύηεποςρ αγυγούρ (most wider pipelines)

• πεπιέσει 10 λειηοςπγικέρ μονάδερ, ζηην πλειοτηθία ηοςρ με latency ενόρ κύκλος

• όλερ είναι pipelined, εκηόρ ηηρ μονάδαρ για διαίπεζη

Source: Diefendorf and Allen (1992)

22cslab@ntua 2012-2013

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

Δηεπογενήρ ζυλήνυζη ηος Power4

PCI-Cache

BR Scan

BR Predict

Fetch Q

Decode

Reorder BufferBR/CRIssue Q

CRUnit

BRUnit

FX/LD 1Issue Q

FX1Unit LD1

Unit

FX/LD 2Issue Q

LD2Unit

FX2Unit

FPIssue Q

FP1Unit

FP2Unit

StQ

D-Cache

23cslab@ntua 2012-2013