Käskykannan liukuhihna
From Wikipedia, the free encyclopedia
Liukuhihna (engl. instruction pipeline) suorittimen käskykannassa lisää suorittimen suorituskykyä jakamalla käskyn suoritus useampaan vaiheeseen (engl. stage), jolloin joka vaiheessa voi suorittaa eri käskyä.[1] Joka vaiheessa on vain osa käskyn tarvitsemasta logiikasta, jolloin kellotaajuus on käytännössä nopeampi: jokaisen käskyn suoritusaika on sama kuin ilman liukuhihnaa.[1]
Esimerkiksi MIPS-arkkitehtuurissa vaiheet ovat:[2]
- käskyn haku (engl. instruction fetch)
- käskyn purku (engl. instruction decode)
- suoritus (engl. execute)
- muistihaku (engl. memory access)
- takaisinkirjoitus (engl. write back)
Useita liukuhihnan optimointiin tarkoitettuja tekniikoita kehitettiin IBM 7030:tä varten.[3] Liukuhihnoitus on jo varhaisissa mikroprosessoreissa tunnettu tekniikka. Esimerkiksi MOS 6502 ja Zilog Z80 osaavat hakea seuraavan käskyn muistista, kun edellisen suoritus on kesken (prefetch), eli nykytermein niillä on kaksivaiheinen liukuhihna. Intelin tekemä tutkimus havaitsi, että jo tämä yksinkertainen liukuhihnoitus paransi suorituskykyä 35 % lisäten transistorimäärää vain 15 %.[4]