Sunday, June 19, 2011

HW: Prudove zpracovanie celociselnych a FP instrukcii na celocis. pipeline

Prudove zpracovanie celociselnych instrukcii sme popisali v minulych castiach. Pipeline mala 5 casti a mohli na nej nastat len RAW datove hazardy. V kazdom okamihu mohla byt na kazdom stupni len jedna instrukcia. Ak chceme pocitat floating point instrukcie, tak musime pridat floating point scitacku a odcitacku a floating point nasobicku. My ale chceme este viac, chceme aby mohlo byt viac instrukcii v stupni pipeline spracovane zaroven.

Vsimnite si, ako sme rozdelili jednotlive "stage" pipeline. Execution a Memory stage su oddelene Okrem toho, mame zrazu moznost vyuzivat prostriedky pre celociselne operacie, a floating point.

Funkcne jednotky su zariadenia, ktore umoznuju vykonanie nejakej ulohy, typicky transformuju vstupne data na vystupne. Je to napr. scitacka, nasobicka a pod.


Vsetky FJ maju svoje parametre.

  • latenciu
    Oznacuje pocet taktov, kym je k dispozicii vysledok. Typicky to je pocet stupnov pipeline v jednotke.
  • a spustaci interval 
    Oznacuje pocet taktov, ktory funkc. jed. potrebuje, kym bude znovu pouzitelna


Pre potreby tejto pipeline musime zaviest nove pojmy pre instrukcie.

  • Instrukcia moze tiez mat svoju latenciu. Latencia instrukcie je pocet taktov, nez je k dispozicii vysledok pre datovo zavislu instrukciu. Latencia zavisi na latencii funkc. jednotky pre danu instrukciu, forwardovacich cestach v procesore a na type zavislej instrukcie (kedy dana instrukcia potrebuje data).
  • Spustaci (opakovaci) interval instrukcie je pocet taktov, ktore su potreba, kym moze byt spustena dalsia instrukcia rovnakeho typu a bez strukturnych hazardov. Zavisi na poctu funkc. jednotiek a ich spustacich intervaloch 
S FP pipeline prichadzaju aj dalsie problemy. Vacsi pocet strukturnych hazardov. Vacsi pocet RAW hazardov, sposobeny vacsiou latenciou instrukcii.WAR hazardy tu stale nemozu nastat, pretoze operandy su citane na zaciatku vykonavania instrukcie su vykonavane v sekvencnom poradi. WAW hazardy tentokrat mozu nastat, pretoze instrukcie su ukoncene v roznom poradi, kvoli roznej latencii. Volame to "In Order Issue  + Out of Order Completion". Objavit hazardy v ID je zlozite.