Documente Academic
Documente Profesional
Documente Cultură
2 Pipelining 4spp PDF
2 Pipelining 4spp PDF
Cap 2:
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
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
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:
PERFORMANELE PIPELINING
2.
10
S=
4.4 ns
= 3 .7
1.2 ns
= 4.4 ns
11
12
PIPELINE HAZARDS
13
14
Performanele conductei cu
blocri (stalls)
S=
Performanele conductei cu
blocri (stalls)
CPIunpip
CPIpip
Ciclu ceasunpip
Ciclu ceaspip
15
CPIunpip
1 + Nr_cicluri_ceas_de_blocare_pe_instruciune
16
Conduct cu blocri
Conduct cu blocri
S=
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
Ciclu ceasunpip
k
17
18
CRETERE N VITEZ
Conduct cu blocri
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
20
CONDUCT DE INSTRUCIUNI
Exemplificare RISC
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
Impulsuri de ceas
21
22
23
1.
2.
3.
Instruciuni ALU
Instruciuni Load i Store
Salturi i ramificri
24
dou registre
un registru i o valoare imediat cu semn
Instrucini tipice:
Add (DADD),
Subtract (DSUB),
Operaii logice (cum sunt AND i OR)
26
27
ID
EX
MEM
WB
IF
INSTRUCTION FETCH
CYCLE
EX
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
ID
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)
WB
EXECUTION /
EFFECTIVE ADDRESS
CYCLE
ID
EX
MEM
WB
MEMORY ACCESS
PC=PC+4
Decodific instruciune
32
ID
EX
MEM
WB
IF
PC=PC+4
EX
MEM
WB
PC=PC+4
Decodific instruciune
WRITE-BACK CYCLE
ID
Decodific instruciune
34
Load/store
IF
ID
IM
REG
IF
ID
IM
REG
IF
ID
IM
REG
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
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
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
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
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
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
44
Hazardul de date
Hazardul de date
DADD
DSUB
AND
OR
XOR
R1,R2,R3
R4,R1,R5
R6,R1,R7
R8,R1,R9
R10,R1,R11
46
47
49
50
51
R1,0(R2)
R4,R1,R5
R6,R1,R7
R8,R1,R9
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
56
1.
57
58
2.
59
stall
60
3.
61
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
64