Rørledning: Arkitektur, fordeler og ulemper

Prøv Instrumentet Vårt For Å Eliminere Problemer





Å øke hastigheten på gjennomføringen av programmet øker følgelig hastigheten på prosessoren. Det er mange måter oppfunnet, både maskinvareimplementering og programvarearkitektur, for å øke kjøringshastigheten. Det ble observert at ved å utføre instruksjoner samtidig, kan tiden som kreves for utførelse reduseres. Begrepet parallellisme i programmering ble foreslått. I henhold til dette kan mer enn en instruksjon utføres per kloksyklus. Dette konseptet kan praktiseres av en programmerer gjennom forskjellige teknikker som Rørledning, flere utførelsesenheter og flere kjerner . Blant alle disse parallellismemetodene er det vanlig å bruke rørledninger. Så hvordan kan en instruksjon utføres i rørledningsmetoden? Hvordan øker det hastigheten på utførelsen?

Hva er rørledning?

For å forstå begrepet rørledning, la oss se på rotnivået for hvordan programmet kjøres. Instruksjon er den minste utførelsespakken til et program. Hver instruksjon inneholder en eller flere operasjoner. Enkle skalarprosessorer utfører en eller flere instruksjoner per klokkesyklus, med hver instruksjon bare en operasjon. Instruksjoner utføres som en sekvens av faser for å gi de forventede resultatene. Denne sekvensen er gitt nedenfor




Instruksjonsutførelsesrekkefølge

Instruksjonsutførelsesrekkefølge

  • IF: Henter instruksjonen i instruksjonsregisteret.
  • ID: Instruksjon avkode, dekoder instruksjonen for opkoden.
  • AG: Adressegenerator, genererer adressen.
  • DF: Data Fetch, henter operandene inn i dataregisteret.
  • EX: Utførelse, utfører den spesifiserte operasjonen.
  • WB: Skriv tilbake, skriver tilbake resultatet til registeret.

Ikke alle instruksjoner krever alle trinnene ovenfor, men de fleste gjør det. Disse trinnene bruker forskjellige maskinvarefunksjoner. I rørledningen utføres disse forskjellige fasene samtidig. I rørledningen betraktes disse fasene som uavhengige mellom forskjellige operasjoner og kan overlappes. Dermed kan flere operasjoner utføres samtidig med at hver operasjon er i sin egen uavhengige fase.



Instruksjonsrørledning

La oss se hvordan instruksjonene blir behandlet i rørledningen. Dette kan lett forstås av diagrammet nedenfor.

Instruksjonsrørledning

Instruksjonsrørledning

Anta at instruksjonene er uavhengige. I en enkel rørledningsprosessor, på et gitt tidspunkt, er det bare en operasjon i hver fase. Den innledende fasen er IF-fasen. Så ved den første klokkesyklusen blir en operasjon hentet. Når neste klokkepuls ankommer, går den første operasjonen inn i ID-fasen og lar IF-fasen være tom. Nå tildeles denne tomme fasen til neste operasjon. Så under den andre klokkepulsen er den første operasjonen i ID-fasen, og den andre operasjonen er i IF-fasen.

For tredje syklus vil den første operasjonen være i AG-fase, den andre operasjonen vil være i ID-fasen og den tredje operasjonen vil være i IF-fasen. På denne måten utføres instruksjonene samtidig, og etter seks sykluser vil prosessoren sende ut en fullstendig utført instruksjon per klokkesyklus.


Har denne instruksjonen utført sekvensielt, i første omgang må den første instruksjonen gå gjennom alle fasene, så vil neste instruksjon bli hentet? Så, for utførelse av hver instruksjon, vil prosessoren kreve seks klokkesykluser. Men i en rørledd prosessor når utførelsen av instruksjonene foregår samtidig, krever bare den første instruksjonen seks sykluser, og alle de gjenværende instruksjonene blir utført som en per hver syklus, og reduserer dermed gjennomføringstiden og øker hastigheten på prosessoren.

Rørledningsarkitektur

Parallelisme kan oppnås med maskinvare, kompilator og programvareteknikker. Å utnytte konseptet med rørledning i Datamaskinarkitektur mange prosessorenheter er sammenkoblet og fungerer samtidig. I rørledd prosessorarkitektur er det adskilte prosesseringsenheter gitt for heltall og flytende instruksjoner. Mens det i sekvensiell arkitektur er gitt en funksjonell enhet.

Rørledd prosessorenhet

Rørledd prosessorenhet

Ved statisk rørledning skal prosessoren føre instruksjonen gjennom alle faser av rørledningen uavhengig av kravet til instruksjon. I en dynamisk rørprosessor kan en instruksjon omgå fasene avhengig av behovet, men må bevege seg i sekvensiell rekkefølge. I en kompleks dynamisk rørledningsprosessor kan instruksjonene omgå fasene, samt velge fasene ute av drift.

Rørledning i RISC-prosessorer

Den mest populære RISC-arkitektur ARM-prosessor følger 3-trinns og 5-trinns rørledning. I 3-trinns rørledning er trinnene: Fetch, Decode, and Execute. Denne rørledningen har 3 syklusers ventetid, ettersom en individuell instruksjon tar 3 klokkesykluser å fullføre.

ARM 3-trinns rørledning

ARM 3-trinns rørledning

For riktig implementering av rørledninger bør maskinvarearkitektur også oppgraderes. Maskinvaren for 3-trinns rørledning inkluderer en registerbank, ALU, Barrel shifter, Address generator, en inkrementer, Instruksjons dekoder og dataregister.

ARM 3 Stage Pipelining Datapath

ARM 3 Stage Pipelining Datapath

I fem trinn er rørledningen trinnene: Fetch, Decode, Execute, Buffer / data and Write back.

Fare for rørledninger

I et typisk dataprogram foruten enkle instruksjoner, er det greninstruksjoner, avbryter operasjoner, lese- og skriveinstruksjoner. Rørledning er ikke egnet for alle slags instruksjoner. Når noen instruksjoner utføres i rørledningen, kan de stoppe rørledningen eller skylle den helt. Denne typen problemer forårsaket under rørledningen kalles rørledningsfare.

I de fleste dataprogrammer brukes resultatet fra den ene instruksjonen som en operand av den andre instruksjonen. Når slike instruksjoner blir utført i rørledning, oppstår nedbrytning fordi resultatet av den første instruksjonen ikke er tilgjengelig når instruksjon to begynner å samle operander. Så, instruksjon to må stoppe til instruksjon en blir utført og resultatet blir generert. Denne typen fare kalles Read-after-write pipelining hazard.

Les etter skriving Pipelining Hazard

Les etter skriving Pipelining Hazard

Utførelse av greninstruksjoner medfører også en fare for rørledninger. Greninstruksjoner mens de utføres i rørledning påvirker hentingstrinnene i de neste instruksjonene.

Rørledet grenadferd

Rørledet grenadferd

Fordeler med rørledning

  • Instruksjonens gjennomstrømning øker.
  • Økning i antall ledningsfaser øker antall instruksjoner som utføres samtidig.
  • Raskere ALU kan utformes når rørledning brukes.
  • Rørledd CPU fungerer ved høyere klokkefrekvenser enn RAM.
  • Rørledning øker den generelle ytelsen til CPU.

Ulemper med rørledning

  • Utformingen av den rørledede prosessoren er kompleks.
  • Instruksjonsforsinkelse øker i prosessorer med rørledninger.
  • Gjennomstrømningen til en rørledd prosessor er vanskelig å forutsi.
  • Jo lenger rørledningen er, jo verre er faren for farlige instruksjoner.

Rørledning fordeler alle instruksjonene som følger en lignende trinns trinn for utførelse. Prosessorer som har komplekse instruksjoner der hver instruksjon oppfører seg annerledes enn den andre, er vanskelig å rørlegge. Prosessorer har rimelige redskaper med 3 eller 5 trinn i rørledningen, ettersom fareledningen øker når rørledningsdybden øker. Navngi noen av de rørledede prosessorer med rørledningsfasen?