SlideServe
Menu
Préférences
© SlideServe · v2026

Considerații preliminare

edythe avatar
38 diapositives · 540 Views · Sep 27, 2014

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.

Considerații preliminare - slide 1
01 / 38Considerații preliminare
1 / 17

Télécharger la présentation

Considerații preliminare
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation

  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?