C.1.2.2 Käsukonveierid ja käsu taseme parallelism Konveier
Konveieri meetod kasutab ära seda seika, et mis tahes käsku võib vaadelda kui eraldiseisvat mikrooperatsioonide jada. Konveiermeetodi aluseks on mikrooperatsioonide ajaline kattuvus, mis vastavad eri käskudele, just nagu koosteliinil (konveieril). Näiteks laetakse iga käsk eraldi dekodeerimisregistrisse (väljakutsumine), dekodeeritakse ja lõpuks täidetakse. Samaaegselt suudab protsessor hallata kolme erinevat käsku, millest üks on väljakutsumise astmel, üks dekodeerimise astmel ja üks täitmise astmel.
Konveierid koosnevad tavaliselt kolmest astmest:
-
väljakutsumise juhendid mälust
-
registrite lugemine ja käskude dekodeerimine
-
käsu täitmine ja aadressi arvutamine
-
operandi juurdepääs andmete mälus
-
tulemuste kirjutamine registritesse.
Alati pole konveieris võimalik kasutada järgnevate käskude osalist kattumist. See võib juhtuda siis, kui näiteks järgneva käsu täitmine sõltub käsiolevate käskude tulemustest (tingimusliku hargnemise käsk). Sellisel juhul on ikkagi vajalik oodata käsioleva käsu lõpetamist enne uue käsu täitmise alustamist. Sellises olukorras öeldakse, et konveieril on seisak.
Seisak võib veel juhtuda siis, kui mingi käsk nõuab operandina eelmise käsu tulemust. Loomulikult vähendab konveieri peatumine süsteemi jõudlust. On olemas mitmesuguseid tehnikaid, kuidas seisakuid vältida, muuhulgas käskude järjekorra ümberkorraldamine (püüdes vältida olukorda, kus mingile käsule eelnevad vahetult sellised käsud, millest selle täitmine sõltub).
|