ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... ·...

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

Transcript of ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... ·...

Page 1: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

1Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

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

Κεφ. 4: O επεξεργαστήςΣύστημα Διασωλήνωσης

(Pipelining)

Page 2: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

2Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

∆ιασωλήνωση

Page 3: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

3Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Διασωλήνωση και Παραλληλισμός (Parallelism)

•Διασωλήνωση (Pipelining):• Μια λειτουργία διαιρείται σε ένα αριθμό σταδίων.• Το κάθε στάδιο υλοποιείται με το δικό του υλικό• Η Διασωλήνωση είναι μια τεχνική υλοποίησης στην οποία πολλές ανεξάρτητες λειτουργίες επικαλύπτονται κατά την εκτέλεση (διαφορετικά στάδια τους)

•Παράλληλη Επεξεργασία (Parallelism)• Επιπλέον πόρους (Replicated resources)• Επεξεργασία ανεξάρτητων λειτουργιών ενός προγράμματος

1010

1515

1010

15155050

5050 5050

Page 4: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

4Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

•Pipelining

•Παραλληλισμός + Pipelining

Page 5: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Επεξεργαστές σήμερα βασίζονται στο1. Pipelining (221)2. παραλληλισμό εντολών, και (370)3. παραλληλισμό νημάτων/προγραμμάτων(470)

5Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Page 6: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

k n-1

S4

S3

S2

S1

1 2 3 4 5 6 7 8 9

6Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

T1

T1

T1

T1 T2

T2

T3

T2

T3

T4

T2

T3 T4

T4

T3 T4

T5

T5

T5

T5

T6

T6

T6

T6

Πόσους κύκλους χρειάζεται μια εντολή;Κάθε πόσους κύκλους τελειώνει μια εντολή;

Υποθέστε pipeline με 4 στάδια (S1-S4)Ti: εντολή i

Page 7: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Χρόνος Εκτέλεσης = I x CPI x Cycle Time

Με ή χωρις pipeline το Ι είναι το ίδιο όπως και τo CPI = 1.

Το Cycle Time;

7Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Tο ρολόι πρέπει να δουλεύει με την ταχύτητα του πιο αργού τμήματος

Page 8: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

8Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

IFIF

IDID

EXEX

MEMMEM

WBWB

MIPS

Instruction FetchInstruction Fetch

I-DecodeI-Decode

ExecuteExecute

Memory AccessMemory Access

Write BackWrite Back

Χωρίς pipeline Cycle Time = κρίσιμο μονοπάτι του διαδρόμου δεδομένων (ίδιο για όλες τις εντολές)

Με pipeline Cycle Time = Maximum (κρίσιμο μονοπάτι κάθε σταδίου)

Στην καλύτερη περίπτωση pipeline Cycle Time = Cycle Time χωρίς pipeline / αριθμός σταδίων

Page 9: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

9Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Επιτάχυνση Διασωλήνωσης (Pipeline Speedup)

Χρόνος Εκτέλεσης χωρίς ΔιασωλήνωσηSk =

Χρόνος Εκτέλεσης με Διασωλήνωση

I = αριθμός εντολώνt = χρόνος κύκλου μηχανήςk = αριθμός τμημάτων

διασωλήνωσης

S TT

n * t * k[(n - 1) + k] * t

n * k(n - 1) + k

k1

k

k I-1

S4 T1 T2 T3 T4

S3 T1 T2 T3 T4

S2 T1 T2 T3 T4

S1 T1 T2 T3 T4

1 2 3 4 5 6 7 8 9

SpeedUpI

II

I

Page 10: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

10Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Παράδειγμα: Υπολογίστε την επιτάχυνση από την χρήση ενός διασωληνωμένου αθροιστή με 4 τμήματα στην πρόσθεση δυο Διανυσμάτων

1) 1

2) 10

3) 100

4) 1000

S 41 4

41

*

S 410 44 9

308

* .

S 4100 44 99

388

* .

S 41000 44 999

399

* .

lim ( )S nn

kk

Page 11: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

5 Steps of MIPS DatapathFigure A.2, Page A-8 Memory

AccessWriteBack

InstructionFetch

Instr. DecodeReg. Fetch

ExecuteAddr. Calc

LMD

ALU

MU

X

Instr. M

emory

Reg File

MU

XM

UX

Data

Mem

ory

MU

X

SignExtend

4

Adder Zero?

Next SEQ PC

Address

Next PC

WB Data

Inst

RD

RS1

RS2

Imm

Page 12: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

12Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

•Ας υποθέσουμε πως έχουμε τα πιο κάτω στάδια στο pipeline:

•IF: Προσκόμιση εντολής ( Instruction Fetch)

•ID: Αποκωδικοποίηση εντολής και ανάγνωση καταχωρητών(Instruction decode and register file read)

•EXE: Εκτέλεση ή υπολογισμός διεύθυνσης (Execution or addresscalculation)

•MEM: Προσπέλαση και ανάγνωση μνήμης δεδομένων (Data memoryaccess)

•WB: Γράψιμο στους καταχωρητές (Write Back)

Page 13: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

5 Steps of MIPS DatapathFigure A.3, Page A-9 Memory

AccessWriteBack

InstructionFetch

Instr. DecodeReg. Fetch

ExecuteAddr. Calc

ALU

Mem

ory

Reg File

MU

XM

UX

Data

Mem

ory

MU

X

SignExtend

Zero?

IF/ID

ID/EX

MEM

/WB

EX/M

EM4

Adder

Next SEQ PC Next SEQ PC

RD RD RD WB

Dat

a

Next PC

Address

RS1

RS2

Imm

MU

X

PIPELINE REGISTERSΚαταχωρητές ∆ιασωλήνωσης

Page 14: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

MemoryAccess

WriteBack

InstructionFetch

Instr. DecodeReg. Fetch

ExecuteAddr. Calc

ALU

Mem

ory

Reg File

MU

XM

UX

Mem

ory

MU

X

SignExtend

Zero?

IF/ID

ID/EX

MEM

/WB

EX/M

EM4

Adder

Next SEQ PC Next SEQ PC

RD RD RD WB

Dat

a

Next PC

Address

RS1

RS2

Imm

MU

X

Datapath

Control Path

(Datapath) του Pipeline με control

Page 15: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Καταχωρητές ∆ιασωλήνωσηςF/D:

– PC, instructionD/E:

– Src1,Src2, instruction, PC, imm(sign ext)– control for other stages (muxes, ALUop, Mem signals)

E/W– ….

W/M– ….

Page 16: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

16Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Καταχωρητές Διασωλήνωσης (pipeline registers)

• Όλες οι εντολές προχωρούν σε κάθε κύκλο ρολογιού από ένα καταχωρητή διασωλήνωσης στον επόμενο.

• Οι καταχωρητές ονομάζονται από τα δύο στάδια που διαχωρίζονται από τον συγκεκριμένο καταχωρητή.

• Για παράδειγμα ο καταχωρητής μεταξύ των σταδίων IF και IDονομάζεται IF/ID.

• Προσέξτε ότι δεν υπάρχει καταχωρητής στο τέλος του σταδίου WB.• Όλες οι εντολές πρέπει να αλλάξουν (update) κάποια κατάσταση

(state) στη μηχανή -το αρχείο καταχωρητών, την μνήμη ή τον PC-έτσι δεν χρειάζεται ακόμα ένας καταχωρητής διασωλήνωσης στο στάδιο όπου η κατάσταση αλλάζεται.

• Για παράδειγμα, μια εντολή load θα τοποθετήσει το αποτέλεσμα της σε ένα από τους 32 καταχωρητές, και οποιαδήποτε μεταγενέστερη εντολή χρειάζεται αυτό το δεδομένο απλά θα διαβάσει τον κατάλληλο καταχωρητή.

Page 17: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

17Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

•Εκτέλεση με διασωλήνωση

•Κάθε εντολή (ανεξάρτητα τύπου) πρέπει να περάσει από όλα τα στάδια•Χρειάζεται 5 κύκλους για να ολοκληρωθεί μια εντολή•Δυνατότητα να ολοκληρώνεται μια εντολή κάθε κύκλο

Page 18: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

18Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Κίνδυνοι Διασωλήνωσης (Pipeline Hazards )ΙΔΕΑΤΑ: Το σύστημα διασωλήνωσης του ΜIPS εργάζεται χωρίς διακοπές εάν η κάθε εντολή που εκτελείται στη διασωλήνωση είναι ανεξάρτητη από κάθε άλλη εντολή που εκτελείται στη Διασωλήνωση

Στην πράξη υπάρχουν αλληλεξαρτήσεις μεταξύ των εντολών που εκτελούνταιστην διασωλήνωσης

Κίνδυνοι Διασωλήνωσης: Εμποδίζουν την επόμενη ακολουθία εντολών από του να εκτελεστεί κατά τη διάρκεια του προκαθορισμένου κύκλου μηχανής. (στάση διασωλήνωσης ή φυσαλίδες διασωλήνωσης)Stalls και Bubbles: μείωση της βελτίωσης από την χρήση του pipeline

Ύπαρξη κινδύνου προαπαιτεί εξάρτηση αλλά όχι το αντίστροφο

• Δομικοί Κίνδυνοι (Structural Hazards)• Κίνδυνοι Δεδομένων (Data Hazards)• Κίνδυνοι Ροής (Control Hazards)

Page 19: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Speed Up Equation for Pipelining

pipelined

dunpipeline

TimeCycle TimeCycle

CPI stall Pipeline CPI Ideal

depth Pipeline CPI Ideal Speedup

pipelined

dunpipeline

TimeCycle TimeCycle

CPI stall Pipeline 1

depth Pipeline Speedup

Instper cycles Stall Average CPI Ideal CPIpipelined

For simple RISC pipeline, Ideal CPI = 1:

1

1

Page 20: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

20Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Page 21: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

21Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Δομικοί Κίνδυνοι (Structural Hazards)

• Ορισμένοι συνδυασμοί εντολών δεν μπορούν να ικανοποιηθούν διότι χρειάζονται περισσότερους πόρους από αυτούς που διαθέτει η μηχανή

1. Ορισμένες λειτουργικές μονάδες δεν είναι διασωληνωμένες

2. Ορισμένες μονάδες δεν αναπαράγονται αρκετά για να ικανοποιήσουν όλους τους πιθανούς συνδυασμούς από εντολές.

• Αρχείο καταχωρητών που επιτρέπει μόνο μια πρόσβαση (Only one register-file port)• Μια πόρτα μνήμης

Page 22: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Παράδειγμα: μια πόρτα μνήμης

Instr.

Order

Time (clock cycles)

Load

Instr 1

Instr 2

Instr 3

Instr 4

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 6 Cycle 7Cycle 5

DMem

Structural Hazard

Ποια είναι η εξάρτηση (dependence);

Page 23: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Instr.

Order

Time (clock cycles)

Load

Instr 1

Instr 2

Stall

Instr 3

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 6 Cycle 7Cycle 5

Reg ALU DMemIfetch Reg

Bubble Bubble Bubble BubbleBubble

Πως προκάλεις “bubble” στο pipeline?

Page 24: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Instr.

Order

Time (clock cycles)

Load

Instr 1

Instr 2

Stall

Instr 3

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 6 Cycle 7Cycle 5

Reg ALU DMemIfetch Reg

Bubble Bubble Bubble BubbleBubble

Page 25: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Bubble στο FETCH

Στο στάδιο fetch εκτελούμε το πιο κάτω:if (Optype[E/M]==memory)

PC = PCInstruction[F/D]=nop (no operation)

elsenormal

Page 26: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Bubble/Stall Γενικά

Εάν υπάρχει σε στάδιο εντολή που έχει hazzard, τότε– ΠΡΟΗΓΟΥΜΕΝΑ ΣΤΑΔΙΑ STALL

(διατηρούν κατάσταση)– ΣΤΟ ΕΠΟΜΕΝΟ ΣΤΑΔΙΟ NOP– TA ΑΛΛΑ ΣΤΑΔΙΑ ΠΡΟΧΩΡΟΥΝ

Page 27: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

27Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Μηχανισμός Εξασφάλισης της Διασωλήνωσης [Pipeline Interlocks]

Επισημαίνει κινδύνους και Σταματά την τροφοδότηση στηδιασωλήνωση της εντολής που θα χρησιμοποιήσει ένα δεδομένο μέχριαυτό να παραχθεί από την παραγωγό εντολή

Page 28: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Λύσεις για κίνδυνους δομής

Λύση 1: Waitmust detect the hazardmust have mechanism to stallΧάνεις επίδοση

Εάν οι εντολές πρόσβασης στη μνήμη είναι το 30% του ολικού αριθμού των εντολών. Πόσο πιο γρήγορη είναι η ιδανική μηχανή σε σύγκριση με την πραγματική μηχανή;

Λύση 2: Throw more hardware at the problem

Επίδοση με δύο πόρτες σε σχέση με ιδεατή;

Page 29: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Λύση των Κίνδυνων ∆ομών στο σχεδιασμό

ALU

InstrCache

Reg File

MU

XM

UX

Data

Cache

MU

X

SignExtend

Zero?

IF/ID

ID/EX

MEM

/WB

EX/M

EM4

Adder

Next SEQ PC Next SEQ PC

RD RD RD WB

Dat

a

Next PC

Address

RS1

RS2

Imm

MU

X

Datapath

Control Path

Page 30: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Εξάρτηση Read After Write (RAW)

Αυτό μπορεί να προκαλέσει κίνδυνο σε ένα pipeline.Πότε;

Εξάρτηση ∆εδομένων: RAW

I: add r1,r2,r3J: sub r4,r1,r3

Page 31: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

31Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Κίνδυνοι-Δεδομένων (Data Hazards)Κίνδυνοι-Δεδομένων δημιουργούνται όταν η διασωλήνωση διαφοροποιεί τη σειράπρόσβασης σε τελεστές σε σύγκριση με τη σειρά πρόσβασης χωρίς διασωλήνωση

Time (clock cycles)

add r1,r2,r3

sub r4,r1,r3

and r6,r1,r7

or r8,r1,r9

xor r10,r1,r11

IF ID/RF EX MEM WBALU

Im

Reg

Dm

Reg

ALU

Im Reg

Dm

Reg

ALU

Im

Reg

Dm

Reg

Im ALU

Reg

Dm

Reg

ALU

Im Reg

Dm

Reg

Ποιες είναι οι εξαρτήσεις (dependences) και ποιοι oi κίνδυνοι (hazards);

Page 32: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

32Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Time (clock cycles)

Μεταβίβαση (Forwarding) για αποφυγή Κινδύνου ∆εδομένων

Inst

r.

Order

add r1,r2,r3

sub r4,r1,r3

and r6,r1,r7

or r8,r1,r9

xor r10,r1,r11

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Page 33: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

33Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Αλλαγές στο υλικό για Forwarding

MEM

/WR

ID/EX

EX/M

EM

DataMemory

ALU

mux

mux

Registers

NextPC

Immediate

mux

Page 34: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

34Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Τι σημαίνει μεταβίβαση (forwarding);

• Μεταχείριση πεδίων των pipeline registers σαν πιθανά inputs στις εντολές

• Πχ: στο στάδιο ΕΧΕC εκτελούμε το πιο κάτω:if (SrcReg1[D/E] != NULL)

if (DestReg[Ε/Μ]==SrcReg1[D/Ε])ALUSrc1= DestValue[Ε/Μ]

else if (DestReg[M/W]==SrcReg1[D/Ε]) ALUSrc1= DestValue[M/W]

elseALUSrc1= SrcValue1[D/E]

Page 35: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

35Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Time (clock cycles)

Instr.

Order

lw r1,0(r2)

sub r4,r1,r6

and r6,r1,r7

or r8,r1,r9

Κίνδυνοι ∆εδομένων και με Forwarding

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Page 36: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

36Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Time (clock cycles)

or r8,r1,r9

Instr.

Order

lw r1, 0(r2)

sub r4,r1,r6

and r6,r1,r7

Reg ALU DMemIfetch Reg

RegIfetch ALU DMem RegBubble

Ifetch ALU DMem RegBubble Reg

Ifetch ALU DMemBubble Reg

Λύσεις του κινδύνου της εντολής φόρτωσης

Page 37: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

37Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Παράδειγμα:– Το 20% των εντολών είναι φόρτωσης (loads)

– Στο 50% των περιπτώσεων η επόμενη εντολή χρησιμοποιεί τοαποτέλεσμα της εντολής φόρτωσης Ο κίνδυνος αυτός δημιουργεί μια στάση στη διασωλήνωση

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

Page 38: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

38Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Παράδειγμα:– Το 20% των εντολών είναι φόρτωσης

– Στο 50% των περιπτώσεων η επόμενη εντολή χρησιμοποιεί τοαποτέλεσμα της εντολής φόρτωσης. Ο κίνδυνος αυτός δημιουργεί μια στάση στη διασωλήνωση

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

Το CPI της εντολής που ακολουθεί την εντολή φόρτωσης καιχρησιμοποιεί το αποτέλεσμα της φόρτωσης είναι 1.5

CPI= 1 + 0.2 * 0.5 *1 = 1.1

Performance ratio = 1.1 / 1 i.e. 10% faster

Page 39: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Time (clock cycles)

Forwarding to Avoid LW-SW Data HazardFigure A.8, Page A-20

Inst

r.

Order

add r1,r2,r3

lw r4, 0(r1)

sw r4,12(r1)

or r8,r6,r9

xor r10,r9,r11

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Page 40: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

40Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Διαβίβαση Δεδομένων (Data Forwarding)

• Το σύστημα διασωλήνωσης πρέπει να διαβιβάζει δεδομένα μεταξύ διαφόρων σταδίων

• Κίνδυνοι Δεδομένων δημιουργούνται και όταν δυο εντολές διαβάζουν ήγράφουν την ίδια τοποθεσία στη μνήμη.#Ποτέ υπάρχει εξάρτηση;sw r4,0(r5)....lw r3,4(r6)

Στον pipeline που εξετάζουμε ο κίνδυνος αυτός δεν παρουσιάζεται διότι οιπροσπελάσεις στη μνήμη γίνονται πάντοτε στη σωστή σειρά. (Μόνο τοτμήμα MEM διαβάζει ή γράφει στη μνήμη)

Page 41: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Κίνδυνοι Διακλαδώσεων10: beq r1,r3,36

14: and r2,r3,r5

18: or r6,r1,r7

22: add r8,r1,r9

36: xor r10,r1,r11

Page 42: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Κίνδυνοι ΔιακλαδώσεωνThree Stage Stall10: beq r1,r3,36

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Τι θα γίνει όταν διαβάσουμε εντολή διακλάδωσης?

Page 43: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Κίνδυνοι ΔιακλαδώσεωνThree Stage Stall10: beq r1,r3,36

stall

stall

stall

36: xor r10,r1,r11 (taken)ή

14: and r2,r3,r5 (not taken)

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Bubble Bubble

Bubble

Bubble

Bubble

Bubble

Bubble

Bubble

Bubble

Bubble

Bubble

Bubble

Bubble

Bubble Bubble

Page 44: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

44Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Κίνδυνοι Διακλαδώσεων (Κίνδυνοι Ροής Ελέγχου)

Οι Κίνδυνοι Διακλαδώσεων δημιουργούνται όταν έχουμε μιαδιακλάδωση (η οποία μπορεί και να βασίζεται σε αποτέλεσμα άλλης εντολής) στην διασωλήνωση που ακολουθείτε από άλλες εντολές.

Παράδειγμα: Υπολογίστε την επιτάχυνση του pipelineεάν το 30% των εντολών είναι διακλαδώσεις

• Οι διακλαδώσεις στο MIPS χρειάζονται 3 τμήματα (IF, ID,EXE)• 3 stalls (στάσεις, φυσσαλίδες) • Ideal CPI = 1.• CPIreal= 1 + 0.3 x 3 = 1.9• Μόνο 50% της ιδανικής επιτάχυνσης είναι εφικτή.

Page 45: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

45Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

• Η μείωση του κόστους της επιτάχυνσης είναι εξαιρετικά σημαντική Ειδικά για μηχανές υψηλής απόδοσης

• Πολλαπλά στάδια μεταξύ fetch και execution)• Τρόποι για μείωση κινδύνων λόγο διακλαδώσεων:#1: Stall until branch direction is known#2: Determine target and direction early#3: Predict Branch Not Taken#4: Predict Branch Taken#5#6…

Page 46: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

46Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

• Οι στάσεις που οφείλονται σε κινδύνους διακλαδώσεων μπορούν να ελαττωθούν εάν:

1. Προσδιορίσουμε πιο νωρίς στην διασωλήνωση εάν η διακλάδωσηθα γίνει

2. Υπολογίσουμε το νέο PC πιο νωρίς

και τα δυο πρέπει να γίνουν

Page 47: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Adder

IF/ID

Μείωση stalls λόγο διακλαδώσεων

MemoryAccess

WriteBack

InstructionFetch

Instr. DecodeReg. Fetch

ExecuteAddr. Calc

ALU

Mem

ory

Reg File

MU

X

Data

Mem

ory

MU

X

SignExtend

Zero?

MEM

/WB

EX/M

EM4

Adder

Next SEQ PC

RD RD RD WB

Dat

a

Next PC

Address

RS1

RS2

Imm

MU

X

ID/EX

Page 48: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

48Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Η μείωση επιτυγχάνεται με:• Την προσθήκη ειδικού κυκλώματος για να ελέγχει τη συνθήκη διακλάδωσης

(test-for-zero) στο τμήμα IDΤην προσθήκη ειδικού αθροιστή στο τμήμα ID για τον υπολογισμό τηςΔιεύθυνσης του Προορισμού της Διακλάδωσης(BTA: branch target address).

Γιατί όχι στο στάδιο fetch;

Το κόστος της διακλάδωσης τώρα ένας κύκλος

Μειονεκτήματα;

Page 49: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

49Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Μείωση του κόστους των διακλαδώσεων σε διασωληνωμένες μηχανές

• Στατικές Προβλέψεις

• Πρόβλεψη ότι η διακλάδωση θα είναι επιτυχής (taken)

• Πρόβλεψη ότι η διακλάδωσης δεν θα είναι επιτυχής (not taken)

Page 50: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

50Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

#3: Predict Branch Not Taken– Execute successor instructions in sequence– “Flush/Squash” instructions in pipeline if branch actually taken

• Τι σημαίνει squash?– 47% branches not taken on average– PC+4 already calculated, so use it to get next instruction

Page 51: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Control Hazard on BranchesThree Stage Stall10: beq r1,r3,36

14: and r2,r3,r5

18: or r6,r1,r7

22: add r8,r1,r9

36: xor r10,r1,r11

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Reg ALU DMemIfetch Reg

Bubble

Bubble

Bubble

Bubble

Bubble

Bubble

Bubble

Bubble Bubble

Page 52: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Squash Pipeline

• Σε όλα τα στάδια πριν το branch εισαγωγή bubble.

52Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Page 53: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

53Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

#4: Predict Branch Taken– 53% branches taken on average– But haven’t calculated branch target address – Still incur 1 cycle branch penalty

• Other machines: branch target known before outcome

Page 54: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

54Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Διακλαδώσεις με καθυστέρηση [Delayed branch]

• Διακλαδώσεις με καθυστέρηση nκύκλωνΗ Διακλάδωση με καθυστέρηση δενλαμβάνει χώρα μέχρις ότου ένας αριθμόςεντολών (n) που ακολουθούν τηδιακλάδωση εκτελεστούν

Ο MIPS έχει μια στάση για κάθε διακλάδωση. Δηλαδή η Διακλάδωσημε καθυστέρηση δεν λαμβάνει χώρα μέχρι να εκτελεστεί η εντολήπου ακολουθεί την διακλάδωση.Σχισμή Καθυστέρησης Διακλάδωσης: Η σχισμή που ακολουθεί τησχισμή της Διακλάδωσης με καθυστέρηση [Branch Delay Slots]

Μέρος της αρχιτεκτονικής συνόλου εντολών MIPS

Branch InstructionSequential Successor 1Sequential Successor 2

Sequential Successor nbranch target if taken

Page 55: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Scheduling Branch Delay Slots

In B and C, must be okay to execute sub when branch fails– Αλλιώς πρέπει να ακυρώσεις την εντολή στο delay slot– Ποτε ok not to cancel?

add $1,$2,$3if $2=0 then

delay slot

A. From before branch B. From branch target C. From fall through

add $1,$2,$3if $1=0 thendelay slot

add $1,$2,$3if $1=0 then

delay slot

sub $4,$5,$6

sub $4,$5,$6

becomes becomes becomes

if $2=0 then

add $1,$2,$3add $1,$2,$3if $1=0 thensub $4,$5,$6

add $1,$2,$3if $1=0 then

sub $4,$5,$6

Page 56: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Precise Exceptions

Page 57: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

Πως χειριζόμαστε τις εξαιρέσεις και διακοπές (exceptions και interrupts)

• Η εντολή που προκαλεί την εξαίρεση την “σημειώνουμε” (flag) στον καταχωρητή διασωλήνωσης στο τέλος του σταδίου που βρίσκεται η εντολή• Οι διακοπές σημειώνονται στο προτελευταίο στάδιο

• Όταν η εντολή φτάσει στο “τελευταίο” στάδιο εξυπηρετούμαι το exception/interrupt

• ∆ιασφαλίζεται πως εξυπηρετείτε το exception της πιο παλιάς εντολής

• Όλες οι προηγούμενες εντολές έχουν τελειώσει και καμία πιο μετά δεν έχει ξεκινήσει

57Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Page 58: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

58Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Διασωλήνωσης Μονάδων

Υποθέστε το pipeline με 7 στάδια Σε κάθε κύκλο μηχανής τερματίζεται η επεξεργασία μιας εντολής

• Επιτάχυνση της τάξης του 7 σε σύγκριση με μη-διασωληνωμένη μηχανή.

Υποθέστε ότι η μνήμη χρειάζεται 4 κύκλους μηχανής και όχι 1.

• Ο μέσος χρόνος εκτέλεσης μιας εντολής εξαρτάται από το πιοαργό τμήμα, τη μνήμη

Με αυτό το ρυθμό παράγεται ένα αποτέλεσμα σε κάθε κύκλο.

• Η μη-διασωληνωμένη μηχανή χρειάζεται

• 3 x 4 + 4 x 1 = 16 κύκλους.

• Επιτάχυνση της τάξης του 4• Ερώτηση: Πως μπορούμε να βελτιώσουμε αυτή την διασωλήνωση

Instr. Fetch

Instr. Decode

Address Gen

Oper. Fetch

Execute

Oper. Store

Update PC

Page 59: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

59Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Διασωλήνωσης Μονάδων

Προσθέτουμε 3 τμήματα καθυστέρησης μετά από κάθε τμήμαμνήμης

Η νέα διασωλήνωση έχει 16 τμήματαΈνα αποτέλεσμα παράγεται σε κάθε κύκλο.

•Επιτάχυνση της τάξης του 16

•Ερώτηση: Είναι αυτό εφικτό/πρακτικό;

•Τι γίνεται με τις διακλαδώσεις;

•Η καινούργια διασωλήνωση χρειάζεται ταυτόχρονα 12 προσπελάσεις μνήμης

Σε αυτή την περίπτωση η διασωλήνωση έχει μεταβιβάσει το πρόβλημα σε ένα άλλο σύστημα.

Instr. Fetch

Instr. Decode

Address Gen

Oper. Fetch

Execute

Oper. Store

Update PC

IF2

IF3

IF4

OF2

OF3

OF4

OS2

OS3

OS4

Page 60: ΕΠΛ221: και Προγραμματισμός Κεφ. 4: O επεξεργαστής ... · Διασωλήνωση και Παραλληλισμός (Parallelism) •Διασωλήνωση

60Κεφάλαιο 4 - Σύστημα ∆ιασωλήνωσης

Χρονοπρογραμματισμός Εντολών [Instruction Scheduling]

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

Παράδειγμα: Γράψετε κώδικα που αποφεύγει στάσεις στηδιασωλήνωση του MIPS (υποθέστε a,b,c,d,e διευθύνσεις μνήμης)

a = b + cd = e - f

Unoptimized Codelw Rb, blw Rc, cadd Ra, Rb, Rcsw a , Ralw Re, elw Rf, fsub Rd, Re, Rfsw d, Rd

Optimized Codelw Rb, blw Rc, clw Re, e add Ra, Rb, Rclw Rf, fsw a , Ra sub Rd, Re, Rfsw d, Rd