BI-PI.21-1
  • Instrukční cyklus počítače
  • Zřetězené zpracování instrukcí
  • Mikroarchitektura skalárního procesoru se zřetězeným zpracováním instrukcí
  • Datové a řídicí hazardy při zřetězeném zpracování instrukcí
    • způsoby jejich ošetření.

Instrukční cyklus počítače

  • PC - Program Counter - ukazuje na adresu další instrukce
  • Jedná se o sekvenci operací, které provádí procesor aby vykonal instrukci
  • Instrukční pipeline
    • Dělíme instrukci na menší celky
      • IF -> Instruction fetch
      • ID/OF -> Instruction decode, operand fetch
      • EX -> execute
      • MEM -> Memory access přístup do paměti
      • WB -> WriteBack zápis výsledku
    • Jednotlivé fáze jsou oddělené registry
      • Skutečně oddělí zpracování fází
      • Následující fáze jde s clk hranou
    • Umožňuje využít paralelismus při zpracování

Mikroarchitektura skalárního procesoru se zřetezeným zpracováním

Pasted image 20260609215637.png

Datové a řídící hazardy

  • Konfilkty při přístupu ke sdíleným prostředkům CPU při pipelinování procesoru
  • Typy hazardů
    • Datové hazardy
      • Instrukce odkazuje na výsledky předchozích instrukcí
      • 3 typy
      • RAW (Read After Write) -> nelze eliminovat
      • WAR (Write After Read) -> eliminace přejmenováním registru
      • WAW (Write After Write) -> eliminace přejmenováním registru
    • Řídící hazardy
      • Obecně vznikají od změn toku programu a PG
      • Předchozí instrukce (její výsledek) mění následně vykonávaný kód
      • Potlačujeme spekulativním vykonáváním instrukcí a predikcí skoků
    • Strukturální hazardy
      • Počet požadavků na prostředek převyšuje počet jeho instancí
        • Dvě instrukce najednou do ALU
      • Zvýšíme počet ALU, počet portů
      • Pozastavíme instrukci
    • způsobují pozastavení zřetězení (stall) nebo vyprázdnění (flush)
    • delší zřetězení -> vyšší frekvence, potenciálně víc hazardů
    • Řešení
      • Forwarding
        • výsledek vznika dříve nebo ve stejném cyklu, kdy je potřeba
        • EX phase -> ID phase
      • Stall
        • Instrukce potřebuje výsledek dříve než vznikne -> pozastavíme zpracování
        • zvyšuje latenci, zhoršuje propustnost
      • Flush
        • Vyčistí načtenou pipeline (podmíněný skok skočil)
    • Kritická cesta
      • Nejdelší cesta (přes hradla) uvnitř jednotlivých fází procesoru
      • Určuje maximální frekvenci

Vytvořeno: 29. 5. 2026, 16:37
Poslední aktualizace: 11. 6. 2026, 0:13