Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής...

25
Προηγμένη Αρχιτεκτονική Υπολογιστών Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών Νεκτάριος Κοζύρης & Διονύσης Πνευματικάτος {nkoziris,pnevmati}@cslab.ece.ntua.gr 8ο εξάμηνο ΣΗΜΜΥ Ακαδημαϊκό Έτος: 2019-20 http://www.cslab.ece.ntua.gr/courses/advcomparch/

Upload: others

Post on 27-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

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

Νεκτάριος Κοζύρης & Διονύσης Πνευματικάτος

{nkoziris,pnevmati}@cslab.ece.ntua.gr

8ο εξάμηνο ΣΗΜΜΥ ⎯ Ακαδημαϊκό Έτος: 2019-20

http://www.cslab.ece.ntua.gr/courses/advcomparch/

Page 2: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

Getting CPI < 1: Issuing Multiple Instructions/Cycle

• Superscalar MIPS: 2 instructions– Can only issue 2nd instruction if 1st instruction issues

– More ports RF

- Two memory ports?Pipe Stages

Int. instruction IF ID EX MEM WB

Int. instruction IF ID EX MEM WB

Int. instruction IF ID EX MEM WB

Int. instruction IF ID EX MEM WB

Int. instruction IF ID EX MEM WB

Int. instruction IF ID EX MEM WB

Page 3: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

Getting CPI < 1: Issuing Multiple Instructions/Cycle

• Superscalar MIPS: 2 instructions, 1 FP & 1 anything

– TypeFetch 64-bits/clock cycle; Int on left, FP on right

– Can only issue 2nd instruction if 1st instruction issues

– More ports for FP registers to do FP load & FP op in a pairPipe Stages

Int. instruction IF ID EX MEM WB

FP instruction IF ID EX MEM WB

Int. instruction IF ID EX MEM WB

FP instruction IF ID EX MEM WB

Int. instruction IF ID EX MEM WB

FP instruction IF ID EX MEM WB

• 1 cycle load delay expands to 3 instructions in SS– instruction in right half can’t use it, nor instructions in next slot

Page 4: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

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

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

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

4cslab@ntua 2018-2019

Page 5: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

1. Εκτέλεση πολλαπλών εντολών ανά κύκλο μηχανής (παράλληλη εκτέλεση)

→ υπερβαθμωτές αρχιτεκτονικές

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

→ multicycle operations

3. Δυνατότητα εκτέλεσης εκτός σειράς (out-of-order) των εντολών

→ δυναμικές αρχιτεκτονικές

5cslab@ntua 2018-2019

Page 6: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

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

• Average ILP = #instructions / #cycles required

code1: ILP = 1

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

code2: ILP = 3

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

code2: r1 r2 + 1r3 r9 / 17r4 r0 - r10

code1: r1 r2 + 1r3 r1 / 17r4 r0 - r3

6cslab@ntua 2018-2019

Page 7: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

7cslab@ntua 2018-2019

Page 8: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

1 2 3 4 5 6 7 8 90

TIME IN CYCLES (OF BASELINE MACHINE)

SU

CC

ES

SIV

EIN

ST

RU

CT

ION

S

8cslab@ntua 2018-2019

Page 9: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

12

34

5

IF DE EX WB

6

1 2 3 4 5 6

Superpipelining: issues instructions

faster than they are executed!

Pipelining of the

execution stage into multiple stages

9cslab@ntua 2018-2019

Page 10: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

10cslab@ntua 2018-2019

Page 11: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

Superpipelining: Hype vs. Reality

baseline

underpipelined

superpipelined

η ταχύτητα διανομής των εντολών δεν ακολουθεί το ρυθμό επεξεργασίας τους

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

εντολές11cslab@ntua 2018-2019

Page 12: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

[Jouppi, DECWRL 1991]

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

– Καθυστέρηση λειτουργίας = OP = 1 κύκλος

– Μέγιστο IPC = n εντολές / κύκλο (n x speedup?)

IF DE EX WB

123

456

9

78

n

12cslab@ntua 2018-2019

Page 13: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

[Jouppi, DECWRL 1991]

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

– Καθυστέρηση λειτουργίας = OP = 1 κύκλος

– Μέγιστο IPC = n εντολές / κύκλος = 1 VLIW / κύκλο

IF DE

EX

WB

13cslab@ntua 2018-2019

Page 14: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

[Jouppi, DECWRL 1991]

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

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

– Μέγιστο IPC = n x m εντολές / major κύκλο

IF DE EX WB

123

456

9

78

14cslab@ntua 2018-2019

Page 15: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

SUPERPIPELINED

10 11 12 13

SUPERSCALARKey:

IFetchDcode

Execute

Writeback

Superscalar vs. Superpipelined

• Περίπου ισοδύναμη επίδοση– Αν n = m τότε και οι δύο έχουν περίπου το ίδιο IPC

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

15cslab@ntua 2018-2019

Page 16: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

I-cache

FETCH

DECODE

COMMIT

D-cache

BranchPredictor Instruction

Buffer

StoreQueue

ReorderBuffer

Integer Floating-point Media Memory

Instruction

RegisterData

MemoryData

Flow

EXECUTE

(ROB)

Flow

Flow

16cslab@ntua 2018-2019

Page 17: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

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

• Σε ένα μια βαθμωτή αρχιτεκτονική ισούται με τον αριθμό σταδίων του pipeline (pipeline depth)

17cslab@ntua 2018-2019

Page 18: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

• IF: instruction fetch

• ID: instruction decode

• RD: register read

• ALU: ALU op/address generation

• MEM: read/write memory

• WB: register write

18cslab@ntua 2018-2019

Page 19: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

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

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

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

• Επιτυγχάνεται στην καλύτερη περίπτωση επιτάχυνση ίση με 3 σε σύγκριση με την αντίστοιχη βαθμωτή σωλήνωση

19cslab@ntua 2018-2019

Page 20: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

20cslab@ntua 2018-2019

Page 21: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

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

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

• Πλεονεκτήματα:

1. Customization → Efficiency

2. Αναγκαία καθυστέρηση για κάθε τύπο εντολής

• Προκλήσεις:

1. Πλήθος των functional units

2. Τύπος των functional units

21cslab@ntua 2018-2019

Page 22: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

CDC 6600-1964

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

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

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

• 8 address registers (18 bits)

• 8 index registers (18 bits)

• 8 fp registers (60 bits)

22cslab@ntua 2018-2019

Page 23: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

23cslab@ntua 2018-2019

Page 24: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

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

Source: Diefendorf and Allen (1992)

24cslab@ntua 2018-2019

Page 25: Υπρβαθμω ή (superscalar) Οράνωση Υπολοισώ퀦 · Ερονής σωλήνωση ο Power4 (2001) I-Cache PC BR Scan BR Predict Fetch Q Decode Reorder Buffer

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

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

25cslab@ntua 2018-2019