Andmetevaheline sõltuvus
Olgu vaja arvutada väärtus C=2*(A+100nda mälupesa aadress) ja selle väärtuse leidmiseks järgmine käskude jada:
ADD AX, [100]
SAL AX,1
MOV CX, AX
Olgu konveier 5osaline.
käsu lugemine dekodeerimine operandide käsu operandide
lugemine täitmine salvestamine
ADD
|
|
|
|
|
SAL
|
dec
|
|
|
|
|
dec
|
AX, [100]
|
|
|
MOV
|
|
|
ADD
|
|
|
dec
|
|
|
AX
|
|
|
AX
|
|
|
|
|
|
SHIFT
|
|
|
|
|
|
AX
|
|
|
AX
|
|
|
|
|
|
|
|
|
|
|
|
CX
|
Väärtust registris AX ei saa korrutada kahega enne, kui liitmiskäsk on tulemuse sinna salvestanud. Samuti ei saa registri AX sisu salvestada registrisse CX enne, kui sinna on salvestatud käsu SAL tulemus.
Multistreaming
Suurema jõudlusega arvutid täidavad tihti mitut erinevat programmi, lülitudes mingite ajaintervallide järel ühe protsessi täitmiselt teisele. Sellisel juhul vähenevad tavaliselt konfliktid konveieritel, kuna ühe ja sama programmi käsud ei järgne üksteisele.
Andmekonveierid
Käsukonveieri käsu täitmise osa võib endast omakorda kujutada konveierit - andmekonveierit. Andmekonveierit kasutatakse aritmeetiliste operatsioonide täitmiseks (arithmetic processing pipeline). Nagu käsukonveieri, nii ka andmekonveieri puhul omab konveier mõtet eelkõige siis, kui täidetakse järjestikku mitu samasugust operatsiooni (näiteks liitmistehet). Kõige sagedamini kasutatakse andmekonveiereid vektorarvutites, s.t. arvutites, mis täidavad operatsioone vektorite ja maatriksitega. Sel juhul korratakse ühte ja sama aritmeetilist operatsiooni iga vektori elemendi puhul. Skalaarprotsessorites pole andmekonveierite kasutegur nii suur. Kui andmekonveiereid skalaarprotsessorites siiski kasutatakse, on nad üldjuhul multifunktsionaalsed, s.t neid saab rekonfigureerida erinevate aritmeetikaoperatsioonide täitmiseks.
Et liita omavahel kaks n-1bitist arvu on vaja nst täissummaatorist koosnevat skeemi: Iga täissummaator liidab kaks bitti ja ülekande nooremast järgust:
|