1 / 38

Considerații preliminare

Considerații preliminare. Considerații preliminare. Considerații preliminare. Considerații preliminare. Etapele pipeline. Calea de date pentru pipeline. Execuţia instrucţiunii lw – IF. Execuţia instrucţiunii lw - ID. Execuţia instrucţiunii lw - EX. Execuţia instrucţiunii lw - MEM.

edythe
Download Presentation

Considerații preliminare

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Considerații preliminare

  2. Considerații preliminare

  3. Considerații preliminare

  4. Considerații preliminare

  5. Etapele pipeline

  6. Calea de date pentru pipeline

  7. Execuţia instrucţiunii lw – IF

  8. Execuţia instrucţiunii lw - ID

  9. Execuţia instrucţiunii lw- EX

  10. Execuţia instrucţiunii lw - MEM

  11. Execuţia instrucţiunii lw - WB

  12. Execuţia instrucţiunii sw – MEM

  13. Execuţia instrucţiunii sw– WB

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

  15. Controlul ȋn execuția pipeline

  16. Controlul ȋn execuția pipeline - detalii

  17. 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).

  18. 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

  19. Hazardul datelor ȋn execuția pipeline

  20. Hazardul datelor ȋn execuția pipeline

  21. Hazardul datelor ȋn execuția pipeline

  22. Modificarea procesorului pentru eliminarea hazardurilor

  23. Modificarea procesorului pentru eliminarea hazardurilor

  24. 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

  25. Modificarea procesorului pentru eliminarea hazardurilor

  26. 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 IF (EX/MEM.RegWrite and (EX/MEM.registerRd0) and (EX/MEM.RegisterRd=ID/EX.RegisterRt)) ForwardB=10

  27. 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 IF (MEM/WB.RegWrite and (MEM/WB.registerRd0) and (MEM/WB.RegisterRd=ID/EX.RegisterRt)) ForwardB=01

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

  29. Modificarea procesorului pentru eliminarea hazardurilor

  30. 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 IF (MEM/WB.RegWrite and (MEM/WB.registerRd0) and (EX/MEM.RegisterRdID/EX.RegisterRt) and (MEM/WB.RegisterRd=ID/EX.RegisterRt)) ForwardB=01

  31. 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

  32. Furtul de ciclu

  33. Furtul de ciclu

  34. Furtul de ciclu

  35. Hazardul controlului

  36. Hazardul controlului

  37. Întrebări?

More Related