Rörledning: arkitektur, fördelar och nackdelar

Prova Vårt Instrument För Att Eliminera Problem





Öka hastigheten för genomförandet av programmet ökar följaktligen hastigheten på processorn. Det finns många sätt att uppfinna, både hårdvaruimplementering och programvaruarkitektur, för att öka körningshastigheten. Det observerades att genom att utföra instruktioner samtidigt kan tiden som krävs för utförandet minskas. Begreppet parallellism i programmering föreslogs. Enligt detta kan mer än en instruktion utföras per klockcykel. Detta koncept kan praktiseras av en programmerare genom olika tekniker som Rörledning, flera exekveringsenheter och flera kärnor . Bland alla dessa parallellismmetoder används pipelining oftast. Så hur kan en instruktion utföras i pipelining-metoden? Hur ökar körhastigheten?

Vad är rörledning?

För att förstå begreppet pipelining, låt oss titta på rotnivån för hur programmet körs. Instruktion är det minsta exekveringspaketet i ett program. Varje instruktion innehåller en eller flera operationer. Enkla skalära processorer utför en eller flera instruktioner per klockcykel, varvid varje instruktion bara innehåller en operation. Instruktioner utförs som en sekvens av faser för att ge de förväntade resultaten. Denna sekvens ges nedan




Instruktionsutförandesekvens

Instruktionsutförandesekvens

  • IF: Hämtar instruktionen till instruktionsregistret.
  • ID: Instruktionsavkodning, avkodar instruktionen för opkoden.
  • AG: Adressgenerator, genererar adressen.
  • DF: Data Fetch, hämtar operanderna i dataregistret.
  • EX: Exekvering, utför den angivna åtgärden.
  • WB: Skriv tillbaka, skriv tillbaka resultatet till registret.

Inte alla instruktioner kräver alla ovanstående steg men de flesta gör det. Dessa steg använder olika hårdvarufunktioner. Vid rörledning utförs dessa olika faser samtidigt. Vid rörledning betraktas dessa faser som oberoende mellan olika operationer och kan överlappas. Således kan flera operationer utföras samtidigt med att varje operation är i sin egen oberoende fas.



Instruktionsrörledning

Låt oss titta på hur instruktioner bearbetas i rörledning. Detta kan lätt förstås av diagrammet nedan.

Instruktionsrörledning

Instruktionsrörledning

Antag att instruktionerna är oberoende. I en enkel pipelining-processor, vid en given tidpunkt, finns det bara en operation i varje fas. Den inledande fasen är IF-fasen. Så vid den första klockcykeln hämtas en operation. När nästa klockpuls anländer går den första operationen in i ID-fasen och lämnar IF-fasen tom. Nu tilldelas denna tomma fas till nästa operation. Så under den andra klockpulsen är den första operationen i ID-fasen och den andra operationen i IF-fasen.

För den tredje cykeln kommer den första operationen att vara i AG-fas, den andra operationen i ID-fasen och den tredje operationen i IF-fasen. På detta sätt utförs instruktionerna samtidigt och efter sex cykler matar processorn ut en fullständigt utförd instruktion per klockcykel.


Har den här instruktionen utförts sekventiellt, initialt måste den första instruktionen gå igenom alla faser och nästa instruktion skulle hämtas? Så för utförande av varje instruktion skulle processorn kräva sex klockcykler. Men i en pipelined processor eftersom exekveringen av instruktionerna sker samtidigt, kräver endast den initiala instruktionen sex cykler och alla återstående instruktioner exekveras som en per varje cykel, vilket minskar tidpunkten för exekvering och ökar processorns hastighet.

Rörledningsarkitektur

Parallelism kan uppnås med hårdvara, kompilator och programvaruteknik. Att utnyttja konceptet rörledning i datorarkitektur många processorenheter är sammankopplade och fungerar samtidigt. I pipelined processorarkitektur finns separata bearbetningsenheter som tillhandahålls för heltal och instruktioner för flytande punkter. I sekventiell arkitektur tillhandahålls en enda funktionell enhet.

Rörledd processorenhet

Rörledd processorenhet

Vid statisk rörledning ska processorn skicka instruktionen genom alla faser av rörledningen oavsett krav på instruktion. I en dynamisk pipelineprocessor kan en instruktion kringgå faserna beroende på dess krav men måste flyttas i sekventiell ordning. I en komplex dynamisk pipelineprocessor kan instruktionen kringgå faserna samt välja faser ur ordning.

Rörledning i RISC-processorer

Den mest populära RISC-arkitektur ARM-processor följer 3-stegs och 5-stegs pipelining. I 3-stegs pipelining är stadierna: Fetch, Decode och Execute. Den här rörledningen har tre cykler latens, eftersom en individuell instruktion tar tre klockcykler att slutföra.

ARM 3-stegs rörledning

ARM 3-stegs rörledning

För korrekt implementering av pipelining bör maskinvaruarkitektur också uppgraderas. Maskinvaran för 3-stegs pipelining inkluderar en registerbank, ALU, Barrel shifter, Address generator, en inkrementer, Instruktionsavkodare och dataregister.

ARM 3 Stage Pipelining Datapath

ARM 3 Stage Pipelining Datapath

I 5 steg är pipelining steg: Fetch, Decode, Execute, Buffer / data and Write back.

Rörledningsrisker

I ett typiskt datorprogram förutom enkla instruktioner finns filialinstruktioner, avbryta operationer, läs och skriv instruktioner. Rörledning är inte lämplig för alla typer av instruktioner. När vissa instruktioner utförs i rörledning kan de stoppa rörledningen eller spola den helt. Denna typ av problem som orsakas under rörledningen kallas rörledningsrisker.

I de flesta datorprogrammen används resultatet av en instruktion som en operand av den andra instruktionen. När sådana instruktioner utförs i rörledning sker uppdelning eftersom resultatet av den första instruktionen inte är tillgänglig när instruktion två börjar samla operander. Så, instruktion två måste stanna tills instruktion en utförs och resultatet genereras. Denna typ av fara kallas Read-after-write pipelining risk.

Läs efter skrivning Pipelining Hazard

Läs efter skrivning Pipelining Hazard

Utförande av greninstruktioner orsakar också en risk för rörledningar. Filialinstruktioner när de körs i rörledning påverkar hämtningsstegen i nästa instruktioner.

Rörledd grenbeteende

Rörledd grenbeteende

Fördelar med rörledning

  • Instruktionens genomströmning ökar.
  • Ökning av antalet rörledningssteg ökar antalet instruktioner som utförs samtidigt.
  • Snabbare ALU kan utformas när rörledning används.
  • Pipelined CPU fungerar vid högre klockfrekvenser än RAM.
  • Rörledning ökar processorns totala prestanda.

Nackdelar med rörledning

  • Utformningen av den rörledda processorn är komplex.
  • Instruktions latens ökar i pipelined processorer.
  • Kapaciteten hos en pipelined processor är svår att förutsäga.
  • Ju längre rörledningen är, värre är problemet med risk för filialinstruktioner.

Pipelining gynnar alla instruktioner som följer en liknande sekvens av steg för körning. Processorer som har komplexa instruktioner där varje instruktion beter sig annorlunda än den andra är svår att pipelina. Processorer har rimliga redskap med 3 eller 5 steg i rörledningen, eftersom allt eftersom rörledningsdjupet ökar ökar riskerna i samband med det. Namnge några av de rörledda processorerna med deras pipeline-steg?