Presentation is loading. Please wait.

Presentation is loading. Please wait.

Structura pipeline a unui procesor MIPS

Similar presentations


Presentation on theme: "Structura pipeline a unui procesor MIPS"— Presentation transcript:

1 Structura pipeline a unui procesor MIPS

2 Considerații preliminare
Tip instructiune Faza de fetch Citire registri Operatie ALU Acces la date Scriere registru Timp total Load word (lw) 200ps 100ps 800ps Stoare word (sw) 700ps R-format (add, sub...) 600ps Branch (beq) 500ps

3 Considerații preliminare

4 Considerații preliminare

5 Considerații preliminare

6 Etapele pipeline

7 Calea de date pentru pipeline

8 Execuţia instrucţiunii lw – IF

9 Execuţia instrucţiunii lw - ID

10 Execuţia instrucţiunii lw - EX

11 Execuţia instrucţiunii lw - MEM

12 Execuţia instrucţiunii lw - WB

13 Execuţia instrucţiunii sw – MEM

14 Execuţia instrucţiunii sw – WB

15 Execuția pipline a unei secvențe de instrucțiuni independente

16 Controlul ȋn execuția pipeline

17 Controlul ȋn execuția pipeline - detalii

18 Hazardul ȋn execuția pipeline
Prin hazard ȋn funcționarea pipeline vom ȋnțelege acele situații când execuția unei noi instrucțiuni nu se poate realiza pe următorul ciclu. Pot fi puse ȋn evidență trei tipuri de hazard: Hazard structural (structural hazard) – atunci când hardware-ul nu suportă execuția unei anumite combinații de instrucțiuni ȋn acelaşi ciclu. În cazul procesoarelor MIPS setul de instrucțiuni a fost astfel gandit ȋncât să evite acest tip de hazard atât timp cât există o memorie de instrucțiuni şi o memorie de date. Hazard al datelor (data hazard) – atunci când execuția unei instrucțiuni este blocată deoarece instrucțiunile anterioare nu i-au furnizat ȋncă datele necesare. Hazard la citirea din memorie (load-use data hazard) – o formă specifică de hazard al datelor ȋn care data care se ȋncarcă din memorie nu este ȋncă disponibilă pentru următoarea instrucțiune. Hazard al controlului (control hazard, branch hazard) - atunci când instrucțiunea executată nu este instrucțiunea corectă (ȋn cazul instrucțiunilor de ramificare).

19 Hazardul datelor ȋn execuția pipeline
Se datorează dependenței execuției unei instrucțiuni de rezultatul execuției unei instrucțiuni anterioare ȋncă nefinalizată. add $s0, $t0, $t1 sub $t2, $s0, $t3

20 Hazardul datelor ȋn execuția pipeline
lw $t1, 0($t0) lw $t2, 4($t0) add $t3, $t1, $t2 sw $t3,12($t0) lw $t4, 8($t0) add $t5, $t1, $t4 sw $t5, 16($t0) sw $5, 16($t0)

21 Hazardul datelor ȋn execuția pipeline

22 Hazardul datelor ȋn execuția pipeline

23 Modificarea procesorului pentru eliminarea hazardurilor

24 Modificarea procesorului pentru eliminarea hazardurilor

25 Modificarea procesorului pentru eliminarea hazardurilor
1a. EX/MEM.RegisterRd=ID/EX.RegisterRs 1b. EX/MEM.RegisterRd=ID/EX.RegisterRt 2a. MEM/WB.RegisterRd=ID/EX.RegisterRs 2b. MEM/WB.RegisterRd=ID/EX.RegisterRt

26 Modificarea procesorului pentru eliminarea hazardurilor

27 Modificarea procesorului pentru eliminarea hazardurilor
EX hazard: IF (EX/MEM.RegWrite and (EX/MEM.registerRd0) and (EX/MEM.RegisterRd=ID/EX.RegisterRs)) ForwardA=10 and (EX/MEM.RegisterRd=ID/EX.RegisterRt)) ForwardB=10

28 Modificarea procesorului pentru eliminarea hazardurilor
MEM hazard: IF (MEM/WB.RegWrite and (MEM/WB.registerRd0) and (MEM/WB.RegisterRd=ID/EX.RegisterRs)) ForwardA=01 and (MEM/WB.RegisterRd=ID/EX.RegisterRt)) ForwardB=01

29 Modificarea procesorului pentru eliminarea hazardurilor
add $1, $1, $2 add $1, $1, $3 add $1, $1, $4

30 Modificarea procesorului pentru eliminarea hazardurilor

31 Modificarea procesorului pentru eliminarea hazardurilor
IF (MEM/WB.RegWrite and (MEM/WB.registerRd0) and (EX/MEM.RegisterRdID/EX.RegisterRs) and (MEM/WB.RegisterRd=ID/EX.RegisterRs)) ForwardA=01 and (EX/MEM.RegisterRdID/EX.RegisterRt) and (MEM/WB.RegisterRd=ID/EX.RegisterRt)) ForwardB=01

32 Furtul de ciclu if (ID/EX.MemRead and
((ID/EX.RegisterRt=IF/ID.RegisterRs) or (ID/EX.Register Rt=IF/ID.RegisterRt))) stall the pipeline

33 Furtul de ciclu

34 Furtul de ciclu

35 Furtul de ciclu

36 Hazardul controlului

37 Hazardul controlului

38 Întrebări?


Download ppt "Structura pipeline a unui procesor MIPS"

Similar presentations


Ads by Google