Toru (arvutustehnika)

Allikas: Vikipeedia

Toru ehk konveier (inglise keeles pipeline) on kogum jadamisi ühendatud andmete töötlemise elemente, kus ühe elemendi väljund on järgmise elemendi sisendiks. Tihti tehakse sealjuures operatsioone samaaegselt. Analoogselt toimub töö ka tehastes, kus konveierilindi eri osades tehakse erinevaid operatsioone, konveierilindi lõpus väljub liinilt aga juba valmistoode.

Näide[muuda | muuda lähteteksti]

Viie-etapiline käsukonveier RISC-arhitektuuris

Käsu töötlemise saab jagada näiteks viieks etapiks:

  • käsu lugemine (IF)
  • käsu dekodeerimine (ID)
  • käsu täitmine (EX)
  • mälu poole pöördumine (MEM)
  • tulemuste salvestamine (WB)

Sellise jaotuse tulemusena saame protsessoris korraga täita viit käsku, kuigi iga käsu täitmine on igal ajahetkel erinevas etapis. Ühte käsku loeme, sellele eelnenud käsku dekodeerime, veel varasemat käsku täidame ja sellele eelnenud käsu tulemusi kirjutame salvestuskohta (mällu, ...).

Iga etapp täidetakse ära ühe takti jooksul. Erinevate etappide täitmisele kuluv aeg on erinev. Kui mõne etapiga saadakse kiiremini ühele poole, on seade ülejäänud aja ooterežiimis. Seega on toru efektiivne ligikaudu ühepikkuste etappide korral. Kriitiline operatsioon on mälust lugemine:

Seetõttu on iga põhimälust lugemise ajal protsessori töö teatud ajaks seisatud (ingl processor stalls).

Riskid[muuda | muuda lähteteksti]

  • Strukturaalne risk. Tekib näiteks siis, kui kaks seadet soovivad sama sammu ajal kasutada sama riistvararessurssi.
  • Andmerisk. Kahe järjestikuse käsu puhul, mida torus täidetakse, ei pruugi esimese käsu tulemus veel olla kättesaadav enne järgmise käsu alustamist.

Toru ei tee üksiku käsu täitmist kiiremaks. Suureneb täidetud käskude arv ajaühikus. Teoreetiline ülempiir on “üks käsk iga sammu ajal”, praktikas ei ole see saavutatav.

Vaata ka[muuda | muuda lähteteksti]