Konveierid (pipelines)
Protsessor täidab põhimõtteliselt kahte erinevat operatsiooni:
käsu lugemine mälust
käsu täitmine
Veelgi täpsemalt jaotades saame kolm põhilist operatsiooni:
käsu lugemine mälust
käsu dekodeerimine
käsu täitmine
Niimoodi jaotust täpsustades saame veelgi enam erinevaid operatsioone. Näiteks 5 erinevat:
käsu lugemine
käsu dekodeerimine
operandide lugemine mälust
operatsiooni täitmine
tulemuse salvestamine
Konveieri puhul täidab igat operatsiooni erinev seade ja iga seadme sisend on ühendatud järgmise väljundiga.
Tulemus saadakse konveieri kõige viimase seadme (mõnikord ka vahepealse seadme) väljundist. Käskude täitmise summaarne aeg konveieril lüheneb, kui täidetakse järjestikku mitu ühesugust käsku.
Konveiereid liigitatakse:
asünkroonsed konveierid
sünkroonsed konveierid
Asünkroonsete konveierite puhul lisatakse konveieri osade vahele kviteerimissignaalid “ready” ja “acknowledge”. “ready” signaal informeerib konveieri järgmist seadet sellest, et operatsiooni täitmine on lõpetatud ja andmed on valmis saatmiseks järgmisesse seadmesse. Järgmine seade vastab “acknowledge” signaaliga kui ta on valmis andmeid vastu võtma. Sünkroonse konveieri puhul edastatakse andmed sünkrosignaaliga kindlate intervallide järel.
Tavaliselt kasutatakse sünkroonse konveieri puhul puhvreid erinevate seadmete vahel ja sünkrosignaal on registritele lubavaks signaaliks. Kuid konveierid võivad olla ka ilma sünkrosignaalita ja registriteta. Tulemus edastatakse siis järgmisele seadmele kohe kui ta jõuab eelmise seadme väljundisse. Selline konveier töötab maksimaalse võimaliku kiirusega, kuid tema projekteerimine ja testimine on väga keeruline.
Tavaliselt ei võta kõikide operatsioonide täitmine konveieris täpselt ühe palju aega. Jaotades operatsioonide täitmise suurema arvu seadmete vahel püütakse nende töökiirust mõnevõrra ühtlustada ja summaarset töökiirust suurendada. Sünkrosignaali sagedus sõltub konveieri kõige aeglsema osa töökiirusest.
Konveieri töö aeglustub ja projekteerimine raskeneb põhiliselt kolmel põhjusel:
konfliktid riistvaraliste ressursside nõudmisel;
andmetevaheline sõltuvus;
hargnemiskäsud.
|