Toru (arvutustehnika)
| See artikkel vajab toimetamist. Lisainfot võib leiduda arutelulehel. Palun aita artiklit toimetada. |
Toru ehk konveier (inglise keeles pipeline) on kogum jadamisi ühendatud andmete töötlemise elemente, kus ühe elemendi väljund on järgmise elemendi sisendiks. Teiste sõnadega öeldes on see võimalus teha operatsioone samaaegselt. Analoogselt toimub töö ka suurtes tehastes, kus konveierilindi eri osades tehakse erinevaid operatsioone, konveierilindi lõpus väljub liinilt aga juba valmistoode.
Arvuti töökiirust saab tõsta mitmel viisil:
- Kasutades kiiremaid ahelaid protsessori ja mälu tegemiseks
- Tehes osa operatsioone ära samaaegselt.
Käesolev artikkel räägib operatsioonide samaaegse tegemise eelistest ja puudustest.
Näide [muuda]
Lahutame käsu sisselugemise ja täitmise neljaks etapiks:
- käsu lugemine
- käsu dekodeerimine
- käsu täitmine
- tulemuste salvestamine
Sellise jaotuse tulemusena saame protsessoris korraga täita nelja 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:
- Põhimälust lugemine on tavaliselt ca 10 korda aegavõtvam kui protsessorisisesed operatsioonid.
- Protsessoriga samal kiibil paiknev vahemälu suudab töötada enamvähem sama kiirusega kui protsessor ise.
Seetõttu on iga põhimälust lugemise ajal protsessori töö teatud ajaks seisatud (ingl processor stalls).
Riskid [muuda]
- 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. Tulemus “üks käsk iga sammu ajal” on teoreetiliseks ülempiiriks, praktikas alati väiksem käskude arv ajaühikus.