Putkilinja: arkkitehtuuri, edut ja haitat

Putkilinja: arkkitehtuuri, edut ja haitat

Ohjelman suorittamisen nopeuden lisääminen lisää siten ohjelman nopeutta prosessori. Suorituksen nopeuttamiseksi on keksitty monia tapoja, sekä laitteiston käyttöönotto että ohjelmistoarkkitehtuuri. Havaittiin, että suorittamalla käskyjä samanaikaisesti voidaan lyhentää suorittamiseen tarvittavaa aikaa. Rinnakkaisuuden käsite vuonna 2002 ohjelmointi ehdotettiin. Tämän mukaisesti voidaan suorittaa useampi kuin yksi käsky kellojaksoa kohden. Ohjelmoija voi harjoittaa tätä käsitettä eri tekniikoilla, kuten Putkilinja, useita suoritusyksiköitä ja useita ytimiä . Kaikkien näiden rinnakkaismenetelmien joukossa putkilinjausta harjoitetaan yleisimmin. Joten miten käsky voidaan suorittaa pipelining-menetelmässä? Kuinka se lisää suorituksen nopeutta?



Mikä on putkisto?

Tarkastellaksemme pipelining-käsitettä tarkastellaan juuretasoa siitä, miten ohjelma suoritetaan. Ohje on ohjelman pienin suorituspaketti. Jokainen käsky sisältää yhden tai useamman operaation. Yksinkertaiset skalaariprosessorit suorittavat yhden tai useamman käskyn kellojaksoa kohti, ja jokainen käsky sisältää vain yhden operaation. Ohjeet suoritetaan vaiheiden sarjana odotettujen tulosten tuottamiseksi. Tämä jakso on annettu alla


Ohjeiden suorittamisen järjestys

Ohjeiden suorittamisen järjestys





  • JOS: Hakee käskyn käskyrekisteriin.
  • ID: Instruction Decode, dekoodaa opkoodin käskyn.
  • AG: Osoitegeneraattori, generoi osoitteen.
  • DF: Data Fetch, hakee operandit tietorekisteriin.
  • EX: Suoritus, suorittaa määritetyn toiminnon.
  • WB: Kirjoita takaisin, kirjoittaa tuloksen takaisin rekisteri.

Kaikki ohjeet eivät vaadi kaikkia edellä mainittuja vaiheita, mutta useimmat vaativat. Nämä vaiheet käyttävät erilaisia ​​laitteistotoimintoja. Putkilinjassa nämä eri vaiheet suoritetaan samanaikaisesti. Putkilinjassa näitä vaiheita pidetään eri toimintojen välillä itsenäisinä ja ne voivat olla päällekkäisiä. Siten voidaan suorittaa useita operaatioita samanaikaisesti kunkin toiminnan ollessa omassa itsenäisessä vaiheessa.

Ohje putkilinja

Katsotaanpa, miten ohjeet käsitellään putkilinjassa. Tämä voidaan helposti ymmärtää alla olevan kaavion avulla.



Ohje putkilinja

Ohje putkilinja

Oletetaan, että ohjeet ovat riippumattomia. Yksinkertaisessa putkenlaskuprosessorissa on tiettynä ajankohtana vain yksi toimenpide kussakin vaiheessa. Alkuvaihe on IF-vaihe. Joten ensimmäisellä kellojaksolla haetaan yksi operaatio. Kun seuraava kellopulssi saapuu, ensimmäinen operaatio siirtyy ID-vaiheeseen jättäen IF-vaiheen tyhjäksi. Tämä tyhjä vaihe varataan seuraavaan operaatioon. Joten toisen kellopulssin aikana ensimmäinen operaatio on ID-vaiheessa ja toinen operaatio on IF-vaiheessa.

Kolmatta sykliä varten ensimmäinen operaatio on AG-vaiheessa, toinen operaatio on ID-vaiheessa ja kolmas operaatio on IF-vaiheessa. Tällä tavoin käskyt suoritetaan samanaikaisesti ja kuuden jakson jälkeen prosessori antaa täysin suoritetun käskyn kellosykliä kohti.


Onko tämä käsky suoritettu peräkkäin, aluksi ensimmäisen käskyn täytyy käydä läpi kaikki vaiheet, sitten seuraava käsky haetaan? Joten prosessorin tarvitsisi kunkin käskyn suorittamiseksi kuusi kellojaksoa. Mutta johdetussa prosessorissa, koska käskyjen suorittaminen tapahtuu samanaikaisesti, vain alkuperäinen käsky vaatii kuusi jaksoa ja kaikki jäljellä olevat käskyt suoritetaan yhtenä kutakin jaksoa kohden, mikä vähentää suorituksen aikaa ja lisää prosessorin nopeutta.

Putkilinjan arkkitehtuuri

Rinnakkaisuus voidaan saavuttaa laitteisto-, kääntäjä- ja ohjelmistotekniikoilla. Hyödynnetään putkilinjauksen käsitettä tietokonearkkitehtuuri monet prosessoriyksiköt ovat yhteydessä toisiinsa ja toimivat samanaikaisesti. Putkilinjan prosessoriarkkitehtuurissa on erilliset prosessointiyksiköt, jotka on annettu kokonaisluvuille ja liukulukuohjeille. Peräkkäisessä arkkitehtuurissa tarjotaan yksi toiminnallinen yksikkö.

Putkijohdotettu prosessoriyksikkö

Putkijohdotettu prosessoriyksikkö

Staattisessa putkilinjassa prosessorin tulisi siirtää käsky läpi kaikki putkilinjan vaiheet käskyvaatimuksesta riippumatta. Dynaamisessa putkiprosessorissa käsky voi ohittaa vaiheet vaatimuksensa mukaan, mutta sen täytyy liikkua peräkkäisessä järjestyksessä. Monimutkaisessa dynaamisessa putkiprosessorissa käsky voi ohittaa vaiheet sekä valita vaiheet järjestyksessä.

Putkilinja RISC-prosessoreissa

Suosituin RISC-arkkitehtuuri ARM-prosessori seuraa 3- ja 5-vaiheista putkistoa. Kolmivaiheisessa putkilinjassa vaiheet ovat: Hae, Dekoodaa ja Suorita. Tällä putkilinjalla on 3 syklin viivettä, koska yksittäisen käskyn suorittaminen kestää 3 kellosykliä.

ARM 3-vaiheinen putkisto

ARM 3-vaiheinen putkisto

Putkistojen asianmukainen toteuttaminen edellyttää myös laitteistoarkkitehtuurin päivittämistä. Kolmivaiheisen putkistamisen laitteisto sisältää rekisteripankin, ALU: n, tynnyrinsiirtimen, osoitegeneraattorin, inkrementin, käskydekooderin ja tietorekisterit.

ARM 3 -vaiheinen putkilinjan tietokanta

ARM 3 -vaiheinen putkilinjan tietokanta

Viisissä vaiheissa vaiheet ovat: Hae, Dekoodaa, Suorita, Puskuri / data ja Kirjoita takaisin.

Putkiston vaarat

Tyypillisessä tietokoneohjelmassa on yksinkertaisten ohjeiden lisäksi haaraohjeet, keskeytysoperaatiot, luku- ja kirjoitusohjeet. Putkilinja ei sovellu kaikenlaisiin ohjeisiin. Kun jotkut ohjeet suoritetaan putkilinjassa, ne voivat pysäyttää putken tai huuhdella sen kokonaan. Tämän tyyppisiä putkiston aikana aiheutuvia ongelmia kutsutaan putkilinjan vaaroiksi.

Useimmissa tietokoneohjelmissa yhden käskyn tulosta käytetään toisen käskyn operandina. Kun tällaiset käskyt suoritetaan putkilinjassa, hajoaminen tapahtuu, koska ensimmäisen käskyn tulos ei ole käytettävissä, kun käsky kaksi alkaa kerätä operandeja. Joten käskyn kahden on pysähdyttävä, kunnes yksi käsky suoritetaan ja tulos syntyy. Tämäntyyppistä vaaraa kutsutaan Read-after-write pipelining -vaaraksi.

Lue kirjoittamisen jälkeen putkilinjan vaara

Lue kirjoittamisen jälkeen putkilinjan vaara

Haarakäskyjen suorittaminen aiheuttaa myös putkilinjan vaaran. Haaratoimintaohjeet suorituksen aikana putkistossa vaikuttaa seuraavien ohjeiden hakuvaiheisiin.

Putkijohtokäyttäytyminen

Putkijohtokäyttäytyminen

Putkilinjan edut

  • Ohjeiden läpimeno kasvaa.
  • Putkivaiheiden määrän kasvu lisää samanaikaisesti suoritettavien käskyjen määrää.
  • Nopeampi ALU voidaan suunnitella putkistoa käytettäessä.
  • Putkilinjan suorittimet toimivat suuremmilla kellotaajuuksilla kuin RAM.
  • Putkilinjaus lisää prosessorin yleistä suorituskykyä.

Putkilinjan haitat

  • Putkilinjan prosessorin suunnittelu on monimutkaista.
  • Ohjeviive kasvaa putkilinjan suorittimissa.
  • Putkimaisen prosessorin läpimenoaikaa on vaikea ennustaa.
  • Mitä pidempi putki on, sitä pahempi haaraohjeen ongelma.

Putkilinjaus hyödyttää kaikkia ohjeita, jotka noudattavat samanlaista vaiheiden suoritusta. Suoritimia, joilla on monimutkaiset ohjeet, joissa jokainen käsky käyttäytyy eri tavalla kuin muita, on vaikea toimittaa. Prosessoreilla on kohtuulliset työvälineet, joissa on 3 tai 5 putkivaihetta, koska putkilinjan syvyyden kasvaessa siihen liittyvät vaarat kasvavat. Nimeä jotkut putkilinjan prosessorit putkivaiheineen?