Sunteți pe pagina 1din 16

CE ESTE PIPELINING?

Cap 2:

Pipelining este tehnica de suprapunere n timp a execuiei


mai multor instruciuni
Pipeline este ca o band de execuie de ex: industria
automobilelor (linie de asamblare)
Fiecare dintre etaje lucreaz n paralel cu altele, fiecare etaj
prelucrnd o etap dintr-o alt instruciune
Fiecare etap este numit etaj (pipe stage) sau segment
(pipe segment).

Paralelism la nivelul
instruciunilor - fundamente
Unele figuri din prezentare sunt adaptri dup: D.A. Petterson
and J. L. Hennessy, Computer Architecture A Quantitative
Approach, 4th ed., Morgan Kaufmann, 2007

SCHEM BLOC SIMPLIFICAT


PENTRU O CONDUCT CU 4 ETAJE

STRUCTUR PIPELINE
Etajele sunt cascadate unul dup altul, astfel c
instruciunile intr printr-un capt i ies prin cellalt.
Cerin: toate etajele trebuie s termine prelucrarea n
acelai interval de timp.
Timpul cerut pentru transferul unei instruciuni de la un
etaj la cellalt este numit timp de ciclu al conductei
(procesorului) / ciclu main al conductei
Timpul de ciclu al conductei este determinat de cel mai
lent etaj

Clock

Intrare

Ieire
R1

CLC1

etaj 1

R2

CLC2

Registru de
memorare

R3

CLC3

Circuit de prelucrare
(Circuit Logic
Combinaional

R4

CLC4

etaj 4

MAIN FR PIPELINE

MAIN PIPELINE

Dou instruciuni
executate n 5 cicluri

Dou instruciuni executate


n 8 cicluri

t+1

t+2

t+3

t+4

t+5

t+6

t+7

t+8

t+1

t+2

t+3

t+4

t+5

t+6

t+7

CTIG N TIMP

CRETERE N VITEZ
Tehnica pipelining conduce la o reducere a
timpului mediu de execuie pe instruciune
n funcie de referina pe care o considerm,
reducerea poate fi vzut ca:

La automobile productivitatea liniei de asamblare


(throughput) este definit prin numrul de maini
asamblate pe unitatea de timp
La calculator throughput reprezint numrul de
instruciuni executate (care ies din conduct) n
unitatea de timp
De obicei timpul de ciclu al conductei este msurat n
impulsuri de ceas (cel mai adesea 1 impuls de ceas)

scderea numrului mediu de CPI


referina este un procesor (non-pipeline) care cere mai multe
cicluri de ceas pentru o instruciune

scderea timpului mediu pentru o perioad de ceas


referina este un procesor (non-pipeline) care execut fiecare
instruciune ntr-un ciclu (lung) de ceas.

o combinaie a celor dou anterioare


7

EXEMPLU - performane pipelining

PERFORMANELE PIPELINING

nu reduce timpul de execuie al fiecrei instruciuni


individuale

2.

Echilibrarea dificil a timpului de execuie pentru un numr


mare de etaje
Timp suplimentar pentru controlul transferului prin
conduct la execuia unei instruciuni (perioad minim a
ceasului):

Durat ciclu de ceas 1 ns


Operaii ALU i ramificri 4 cicluri
Operaii cu memoria 5 cicluri
Frecvena relativ operaii:
ALU: 40%,
Ramificri: 20%
Op. cu memoria: 40%.

Limitri ale lungimii conductei de execuie (k)


1.

Pentru un procesor non-pipeline se consider:

Pipelining crete viteza de execuie a unui numr de


instruciuni

Pentru un procesor pipelined presupunem c timpul de ciclu


e mai mare cu 0,2 ns.
Timp suplimentar datorat:
ntrzieri de propagare a ceasului (clock skew)
timpi de prestabilire la registre
Ignornd alte influene asupra latenei, s se determine
creterea n vitez pentru pipeline (S = speedup)

set-up time pentru registre


timp de propagare ceas la diferite registre
9

EXEMPLU - performane pipelining

10

EXEMPLU - performane pipelining

Timpul mediu de execuie al instruciunii n procesorul


non-pipeline (unpip) :

La implementarea pipeline ceasul funcioneaz la viteza


celui mai lent etaj, plus timpul suplimentar, adic
1 + 0,2 = 1,2 ns, ca timp mediu de execuie al instruciunii

Timp mediu instruciuneunpip = Ciclu_ceasunpip CPImediu

Rezult creterea n vitez pentru pipelining (S = speedup):

= 1 ns ((40% + 20%) 4 + 40% 5)


= 1 ns 4.4

S=

Timp _ mediu unpip


Timp _ mediu pip

4.4 ns
= 3 .7
1.2 ns

= 4.4 ns

11

12

Principalele probleme ale


conductei - hazarduri

PIPELINE HAZARDS

Hazardul este o situaie care face ca urmtoarea


instruciune a fluxului de instruciuni s nu poat fi
executat pe durata ciclului de ceas care i-a fost alocat
Hazardul reduce performanele conductei, fa de creterea
n vitez calculat anterior.
Evenimentele de hazard produc blocri temporare ale
conductei de execuie, prin ntrzierea unor faze de
execuie
Dac o instruciune este ntrziat n conduct, toate
celelalte instruciuni care urmeaz sunt ntrziate

Exist 3 clase de hazard (conflict):


Hazard structural: se produce la un conflict de resurse
hardware, accesate simultan de mai multe etaje
(instruciuni) ale conductei
Hazard de date: se produce cnd o instruciune depinde
de rezultatul unei instruciuni anterioare, care nc nu a
fost executat complet.
Hazard de control: se produce datorit instruciunilor de
ramificare, care afecteaz coninutul PC.

13

14

Performanele conductei cu
blocri (stalls)
S=

Performanele conductei cu
blocri (stalls)

Timp mediu instruciuneunpip


Timp mediu instruciunepip
Tehnica
pipelining poate
fi vzut ca o
scdere a CPI,
sau a timpului
ciclului de ceas

CPIunpip Ciclu ceasunpip


CPIpip Ciclu ceaspip

CPIunpip
CPIpip

Ciclu ceasunpip
Ciclu ceaspip

Valoarea ideal pentru CPI la un procesor cu pipeline este 1.

CPIpip = CPIideal + Nr_cicluri_ceas_de_blocare_pe_instruciune


= 1 + Nr_cicluri_ceas_de_blocare_pe_instruciune

Dac neglijm timpul suplimentar pierdut, de exemplu prin faptul c


nu exist o echilibrare perfect a etajelor conductei, atunci timpul de
ciclu al celor dou procesoare poate fi egal i rezult:
S=

15

CPIunpip
1 + Nr_cicluri_ceas_de_blocare_pe_instruciune
16

Conduct cu blocri

Conduct cu blocri

Caz frecvent: toate instruciunile se execut n acelai


numr de cicluri de ceas = numrul de etaje al conductei
(adncimea conductei = k)
n acest caz CPIunpip este egal cu k, conducnd la:
S=

S=

Dac privim conducta ca scznd timpul mediu al perioadei de ceas,


atunci dac presupunem c CPIunpip este 1 i de asemenea CPIpip ideal
este 1, putem scrie:

CPIunpip
CPIpip

Ciclu ceasunpip
Ciclu ceaspip

1
1 + Nr_cicluri_ceas_de_blocare_pe_instruciune

Ciclu ceasunpip
Ciclu ceaspip

1 + Nr_cicluri_ceas_de_blocare_pe_instruciune

Dac nu exist blocri ale conductei

n cazul echilibrrii perfecte a etajelor conductei i neglijnd timpii


suplimentari pentru transferul n interiorul conductei, ciclul de ceas al
procesorului pipelined este mai mic dect ciclul de ceas al procesorului
non-pipeline, cu un factor egal cu adncimea conductei:

putem crete performanele prin creterea adncimii conductei


Ciclu ceaspip =

Ciclu ceasunpip
k

17

18

CRETERE N VITEZ

Conduct cu blocri

Creterea n vitez egal cu numrul de etaje al conductei (k) este doar


o limit teoretic, pentru c:
cu ct crete numrul de etaje cu att mai greu este s echilibreze
timpii de execuie pe fiecare etaj
n plus apar probleme de care nu s-a inut cont n relaia calculului de
cretere n vitez:
salturile n program
dependena de date inter-instruciuni
dependena de resursele hardware inter-instruciuni
aceste din urm elemente creeaz ceea ce se numete hazardul
structurii de tip conduct.

Creterea n vitez:
S=

1
1 + Nr_cicluri_ceas_de_blocare_pe_instruciune

Ciclu ceasunpip
Ciclu ceaspip

S=

1
1 + Nr_cicluri_ceas_de_blocare_pe_instruciune

n cazul ideal, cnd nu exist blocri, creterea n vitez datorit


pipeline este egal cu numrul de etaje al conductei (adncimea
conductei)
19

20

CONDUCT DE INSTRUCIUNI

Exemplificare RISC

Funcionarea este explicat cu ajutorul unei diagrame timp-spaiu


Timpul exprimat n multiplii de impulsuri de ceas iar axa vertical
indic numrul segmentului

IF
ID
Etaje
conduct

EX
MEM
WB

I1

I2

I3

I4

I5

I6

I1

I2

I3

I4

I5

I6

I1

I2

I3

I4

I5

I6

I1

I2

I3

I4

I5

I6

I1

I2

I3

I4

I5

Arhitectur cu set redus de instruciuni, sau arhitectur


load store
Arhitecturile RISC au cteva caracteristici care simplific
implementarea unei conducte de execuie:

Impulsuri de ceas

Toate operaiile se efectueaz cu operanzi stocai n registrele


interne (de obicei pe 16, 32 sau 64 bii)
Singurele operaii de transfer cu memoria sunt load i store
Numrul de instruciuni este redus, iar acestea au aceeai lungime
(lungime fix)
I6

21

22

Trei clase de instruciuni pentru


arhitectura MIPS

Exemplificare RISC MIPS64


Ca arhitectur RISC tipic n exemple se va considera
MIPS64 (extensia pe 64 bii a setului de instruciuni MIPS)
Pentru extensia MIPS 64, mnemonica instruciunilor are un
D la nceput sau sfrit.
De exemplu DADD este versiunea pe 64 bii a instruciunii
de adunare, iar LD este versiunea pe 64 bii a instruciunii
de load.
Setul de instruciuni MIPS poate lucra cu 32 de registre

23

1.
2.
3.

Instruciuni ALU
Instruciuni Load i Store
Salturi i ramificri

24

MIPS Instruciuni de transfer cu


memoria

MIPS Instruciuni ALU


Operanzi:

Doar instruciuni Load i Store


Utilizeaz, ca prim operand un registru surs (base
register) i un cmp imediat cu semn de 16 bii (offset).
Suma lor formeaz adresa efectiv pentru memorie.
Pentru load, al doilea registru operand este destinaia
informaiei aduse din memorie.
Pentru store, al doilea registru operand este sursa datelor ce
se vor stoca n memorie.
Instruciunile LD (load word) i SD (store word) ncarc
sau stocheaz coninutul ntreg al unui registru de 64 bii

dou registre
un registru i o valoare imediat cu semn

Instrucini tipice:
Add (DADD),
Subtract (DSUB),
Operaii logice (cum sunt AND i OR)

Variantele care lucreaz cu date imediate au aceeai


mnemonic i n plus sufixul I
Pentru operaii aritmetice se poate lucra i cu valori fr
semn sufix U pentru ambele variante, pe 32 i 64 bii.
Exemple: DADDU, DSUBU, DADDIU).
25

Etape n execuia instruciunilor MIPS

MIPS Instruciuni de salt

Ramificrile sunt instruciuni de control condiionale


Exist 2 moduri de specificare a condiiei n arhitecturile
RISC

Cu un set de bii de condiie


Comparaie ntre o pereche de registre, sau un registru i zero (la
MIPS)

26

Adresa target pentru ramificare (la toate mainile RISC) se


obine prin adunarea unui offset cu semn (16 bii la MIPS)
la valoarea PC

27

Se consider o arhitectur non-pipelining


Se consider c fiecare instruciune dureaz maxim 5
impulsuri de ceas.
Pentru execuie vor fi necesare cteva registre temporare ce
nu fac parte din arhitectur
Cele 5 impulsuri de ceas se refer la:
1.
2.
3.
4.
5.

Instruction fetch cycle (IF)


Instruction decode/register fetch cycle (ID)
Execution/'effective address cycle (EX)
Memory access (MEM)
Write-back cycle (WB)
28

Etape n execuia instruciunilor MIPS


IF

ID

EX

MEM

WB

IF

INSTRUCTION FETCH
CYCLE

Fetch instruction din Mem[PC]


PC=PC+4

Etape n execuia instruciunilor MIPS


ID

EX

Fetch instruction din Mem[PC]

MEM

WB

INSTRUCTION DECODE /
REGISTER FETCH CYCLE

PC=PC+4

Decodific instruciune
Citete registre surs; compar
registrele pentru ramificare posibil
Extensie de semn offset (dac e
necesar);
Calculeaz int pentru ramificare
posibil (offset + PC+4)
Obs: 2 opiuni pentru calcul int: ID
sau EX!
29

Etape n execuia instruciunilor MIPS


IF

ID

Fetch instruction din Mem[PC]


PC=PC+4

EX

MEM

IF

Decodific instruciune
Citete registre surs; compar
registrele pentru ramificare posibil
Extensie de semn offset (dac e
necesar);
Calculeaz int pentru ramificare
posibil (offset + PC+4)

Etape n execuia instruciunilor MIPS

WB

EXECUTION /
EFFECTIVE ADDRESS
CYCLE

ID

Fetch instruction din Mem[PC]

Operaie ALU (R-R, sau R-Imediat)

Obs: 2 opiuni pentru calcul int: ID


sau EX!

EX

MEM

WB

MEMORY ACCESS

PC=PC+4

Decodific instruciune

AE: Adun registrul baz cu offset


(dac este referire la memorie)

Decodificarea se poate face n paralel cu citirea


registrelor, pentru c la RISC specificatorii de
registru au o poziie fix. Tehnica este numit fixed30
field decoding

Citete registre surs; compar


registrele pentru ramificare posibil
Extensie de semn offset (dac e
necesar);
Calculeaz int pentru ramificare
posibil (offset + PC+4)

ncarc (load) sau stocheaz


(store) data din/n memorie n/din
Registru
AE: Adun registrul baz cu offset
(dac este referire la memorie)
Operaie ALU (R-R, sau R-Imediat)

Obs: 2 opiuni pentru calcul int: ID


sau EX!
31

32

Etape n execuia instruciunilor MIPS


IF

ID

EX

Fetch instruction din Mem[PC]

MEM

WB

IF

Scrie data n registru (pentru


Load i operaie ALU de tip R-R)

PC=PC+4

Citete registre surs; compar


registrele pentru ramificare posibil
Extensie de semn offset (dac e
necesar);
Calculeaz int pentru ramificare
posibil (offset + PC+4)

EX

MEM

WB

Scrie data n registru (pentru


Load i operaie ALU)

PC=PC+4

ncarc (load) sau stocheaz


(store) data din/n memorie n/din
Registru

Decodific instruciune

AE: Adun registrul baz cu offset


(dac este referire la memorie)

Citete registre surs; compar


registrele pentru ramificare posibil

Operaie ALU (R-R, sau R-Imediat)

Extensie de semn offset (dac e


necesar); calculeaz int pentru
ramificare posibil (offset + PC+4)

WRITE-BACK CYCLE

Obs: 2 opiuni pentru calcul int: ID


sau EX!

ID

Fetch instruction din Mem[PC]

ncarc (load) sau stocheaz


(store) data din/n memorie n/din
Registru

Decodific instruciune

Etape MIPS (un-pipelined)

AE: Adun registrul baz cu


offset (dac este referire la
memorie)
Operaie ALU

Obs: 2 opiuni pentru calcul int: ID


sau EX!
33

Reprezentare conduct prin cale


de date

34

Reprezentare conduct prin cale de date

Se folosesc memorii separate pentru date-DM i instruciuni-IM


(implementarea se face prin memorii cache separate)

Load/store

IF

ID

IM

REG

IF

ID

IM

REG

IF

ID

IM

REG

Se elimin astfel conflictul / hazardul structural dintre instruction fetch i


acces memorie date

EX efectuare n ALU
Banca de registre este utilizat n dou etaje: unul pentru citire n ID,
unul pentru scriere n WB.

ALU reg-reg

Trebuie s efectum dou citiri i o scriere pentru fiecare ciclu de ceas


Scrierea registrului se face n prima jumtate a perioadei de ceas
Citirea registrului se face n cea de-a doua jumtate a perioadei de ceas

Salt
REG

EX
ALU

EX
ALU

EX
ALU

MEM

WB

DM

REG

MEM

WB

DM

REG

MEM

WB

DM

REG

REG
35

36

Reprezentare pipeline

Versiune simplificat a unei ci de


date RISC, organizate ca pipeline
Fiecare din ciclurile de ceas din exemplul anterior devine
un etaj de conduct

Numr instruciune:
Instriciunea i
Instriciunea i+1
Instriciunea i+2
Instriciunea i+3
Instriciunea i+4

1
IF

2
ID
IF

3
EX
ID
IF

Numr impuls ceas


4
5
6
MEM
WB
EX
MEM
WB
ID
EX
MEM
IF
ID
EX
IF
ID

WB
MEM
EX

WB
MEM

Conducta
poate fi
reprezentat ca
o serie de ci
de date
deplasate n
timp
CC = clock
cycle

WB

37

38

Reprezentare pipeline inclusiv registre

Hazard structural
Acces la aceeai resurs hardware de ctre dou
etaje ale conductei
Exemple de hardware ce poate duce la hazard
structural:
Exist o singur unitate funcional din respectivul tip
Acces la resurs hardware printr-un singur port de citire
/ scriere (ex: o banc de registre cu port unic de citire /
scriere, memorie unic de date i instruciuni)
o unitate funcional ce nu este construit ca o conduct
de execuie
39

40

Hazard structural

Hazard structural
Doar pentru
load i store

41

Diagrama spaiu timp pentru hazard


structural (memorie cu un singur port)

42

Hazard structural
Exemple de soluii ale hazardului structural:
memorii separate de date i instruciuni (sau mcar nivelul de
cache)
introducerea unui buffer suplimentar de instruciuni
multiplicarea unor uniti funcionale (ex: ALU)
acces simultan la 2 sau mai multe registre din banca de registre

Este un hazard relativ rar ntlnit n microprocesoarele


moderne
Penalitatea de timp este de obicei 1 ciclu de ceas.
43

44

Hazardul de date

Hazardul de date

Poate aprea dac rezultatul unei instruciuni din conduct este


operand pentru o instruciune ulterioar
Se produce din cauza ordinii n care se fac operaiile read i write n
conduct, care uneori poate fi diferit fa de ordinea secvenial
vzut pe un processor non-pipeline
Se consider succesiunea de instruciuni executate n conduct (atenie
pe prima poziie este registrul destinaie):

DADD
DSUB
AND
OR
XOR

R1,R2,R3
R4,R1,R5
R6,R1,R7
R8,R1,R9
R10,R1,R11

Toate instruciunile dup DADD utilizeaz rezultatul acesteia.


45

46

Eliminarea hazardului de date prin


forwarding

Eliminarea hazardului de date prin


forwarding

Problema anterioar (DSUB i AND afectate de hazard de date)


poate fi eliminat prin tehnica hardware numit forwarding (numit
adesea i bypassing, sau short-circuiting)
Cheia rezolvrii const n faptul c rezultatul instruciunii DSUB nu
este ntr-adevr necesar pn cnd DSUB nu va realiza execuia.
Dac rezultatul poate fi mutat din registrul pipeline unde DADD
stocheaz rezultatul la intrarea etajului unde DSUB are nevoie de
acesta, problema blocrii poate fi rezolvat.

47

Forwarding lucreaz astfel:


1.
2.

Rezultatul ALU din registrele EX/MEM i MEM/WB este adus


la intrarea ALU.
Dac un hardware specializat pe forwarding detecteaz c
operaia ALU anterioar a scris ntr-un registru care este surs
pentru operaia curent ALU, logica de control selecteaz
aducerea rezultatului la intrarea ALU, astfel nct operandul nu
mai este citit din blocul de registre.

De observat c dac, cu forwarding, DSUB este blocat,


DADD va fi terminat i bypass nu va fi activat. Aceast
relaie este adevrat i n cazul n care ntre cele 2
instruciuni apare o ntrerupere recunoscut.
48

Hazardul de date ci de forward

Hazardul de date exemplu forwarding

Presupunem secvena de instruciuni


DADD R1,R2,R3
LD
R4,0(R1)
SD
R4,12(R1)

Pentru a preveni blocarea n aceast secven va trebui s introducem


forward pentru valorile de la ieirea ALU i de la ieirea unitii de
memorie, prin registrele pipeline de ieire, ctre intrrile ALU i ale
memoriei de date.

49

50

Hazardul de date exemplu forwarding

Hazardul de date blocri obligatorii

Nu toate hazardurile posibile de date pot fi rezolvate prin bypass


Se consider secvena:
LD
DSUB
AND
OR

51

R1,0(R2)
R4,R1,R5
R6,R1,R7
R8,R1,R9

n figura urmtoare instruciunea LD nu are datele dect la sfritul


ciclului de ceas 4 (ciclu MEM), n timp ce instruciunea DSUB are
nevoie de date la nceputul acestui ciclu de ceas
Astfel c, hazardul de date produs de utilizarea imediat a rezultatului
unei instruciuni de LD, nu poate fi eliminat complet prin hardware,
printr-o cale care s aduc informaie napoi n timp (!)
Putem ns face bypass ctre ALU pentru a ajuta instruciunile AND i
OR
52

Hazardul de date blocri obligatorii

Hazardul de date
Instruciunea de load are o ntrziere, sau laten, ce nu
poate fi eliminat doar prin tehnica forwarding.
Este nevoie de hardware suplimentar, numit pipeline
interlock (antiblocare pipeline), pentru a pstra modelul
execuiei corecte
n general circuitul hardware oprete conducta, ncepnd
cu instruciunea care vrea s utilizeze datele, nainte ca
acestea s fie disponibile
Se introduce o stare de blocare (stall, sau bubble), la fel
cum se face i la hazard structural.

53

Hazardul de date

54

Hazardul de control (ramificare)


Hazardul de control poate determina pierderea important
de performan a conductei (ntr-o msur mai mare dect
hazardul de date)
Dac instruciunea de salt condiionat produce saltul,
(condiia testat este true), iar coninutul PC, de obicei, nu
este modificat pn la sfritul fazei ID, dup calculul
adresei i comparaie.
Figura urmtoare indic cea mai simpl metod de
ntrziere, pentru a preveni blocarea conductei
Dac saltul se efectueaz se face repetarea fazei IF, ca
urmarea detectrii ramificrii n faza ID
55

56

Hazardul de control introducere


n metodele de tratare

Hazardul de control (ramificare)

1.

Discutm doar 4 metode simple ce pot fi introduse la momentul


compilrii.
n aceste 4 scheme aciunile pentru o anumit ramificare sunt statice
ele sunt fixate pe ntreaga durat a execuiei.
Cea mai simpl schem este s se nghee sau s se curee conducta,
pstrnd / tergnd din conduct orice instruciune dup cea de
ramificare, pn se calculeaz destinaia ramificrii.
Soluia este foarte simpl att pentru Hw ct i pentru Sw. Introduce
o ntrziere fix ce nu poate fi redus prin software

57

58

Hazardul de control introducere


n metodele de tratare

Hazardul de control introducere


n metodele de tratare

2.

O alt tehnic, mai complex, dar i cu performane mai bune


trateaz ca ne-efectuate (condiie false) toate ramificrile (predicted
untaken)
Astfel execuia n conduct continu ca i cum instruciunea de
ramificare nu ar fi fost executat
Atenie: starea procesorului nu are voie s se schimbe pn cnd
rezultatul ramificrii nu este complet cunoscut.
Complexitatea schemei provine din necesitatea de a ti cnd o
instruciune ncearc s schimbe starea i din modul n care se revine
dintr-o asemenea schimbare.

59

stall

60

Hazardul de control introducere


n metodele de tratare

Hazardul de control introducere


n metodele de tratare

3.

4. O a patra tehnic utilizat n multe procesoare, este


numit salt ntrziat (delayed branch)
Tehnica a fost utilizat cu succes nc de la primele
RISC-uri
Prin instruciunea de salt ntrziat, introdus n
conduct, se d timp pentru calcularea adresei de
salt, iar ciclul de execuie poate fi descris ca:

O alt alternativ este s se considere c oricare ramificare se va


executa. Imediat dup decodificarea instruciunii de ramificare i
calculul adresei de salt (adresa int) se continu umplerea conductei
cu instruciuni ncepnd cu adresa de salt.
Pentru exemplul nostru de conduct cu 5 etaje, nu tim adresa intei
mai devreme dect rezultatul execuiei instruciunii de ramificare, nu
exist nici un avantaj al abordrii acestei metode
La unele procesoare, la care testarea condiiilor se face pe baza unui
set de coduri de condiii, adresa de ramificare este cunoscut nainte
de terminarea instruciunii de ramificare, iar tehnica ce prezice c
saltul se va efectua are sens.

instruciune de salt ntrziat


set instruciuni succesoare executate
efectuare / sau de salt

61

Hazardul de control delayed branch

62

Urmeaz
Eficiena tehniciilor de pipelining la RISC
Planificare dinamic a instruciunilor
Reducerea costurilor prin predicia ramificrilor
Predicie static a ramificrii
Predicie dinamic a ramificrii

Depirea hazardului de date prin planificare


dinamic
Algoritmul lui Tomasulo

Exemple i studii de caz


63

64

S-ar putea să vă placă și