Wat is een instructiepijplijn?

Elke processorinstructie heeft meerdere stadia in zijn werking. Elk van deze fasen duurt een enkele CPU-cyclus om te voltooien. Deze stadia zijn Instructie ophalen, Instructie decoderen, Uitvoeren, Geheugentoegang en Terugschrijven. Respectievelijk krijgen deze de instructie die moet worden voltooid, scheiden de bewerking van de waarden waarop wordt geopereerd, voeren het proces uit, openen het register waarin het resultaat zal worden geschreven en schrijven het resultaat naar het geopende register.

Historische In Order-verwerkers

In vroege computers maakte de CPU geen gebruik van een instructiepijplijn. In deze CPU's moest elke bewerking met één cyclus voor elke instructie worden uitgevoerd. Dit betekende dat het vijf klokcycli duurde voordat de gemiddelde instructie volledig was verwerkt voordat de volgende kon worden gestart. Sommige bewerkingen hoeven mogelijk geen resultaat naar een register te schrijven, wat betekent dat de geheugentoegangs- en terugschrijffasen kunnen worden overgeslagen.

Wat is een instructiepijplijn?

In een subscalaire processor zonder pijplijn wordt elk deel van elke instructie op volgorde uitgevoerd.

Er ligt echter een probleem op de loer wanneer u een volledige instructie op volgorde uitvoert voordat u door kunt gaan naar de volgende instructie. Het probleem is de cachemisser. De CPU slaat gegevens op die actief worden verwerkt in het register. Dit is toegankelijk met een latentie van één cyclus. Het probleem is dat het register klein is omdat het in de processorkern is ingebouwd. De CPU moet naar de grotere maar langzamere L1-cache gaan als de gegevens nog niet zijn geladen. Als het er niet is, moet het weer naar de grotere en langzamere L2-cache gaan. De volgende stap is de L3-cache; de laatste optie is het systeem-RAM. Voor elk van deze opties zijn steeds meer CPU-cycli nodig om te controleren.

Nu kan deze extra toegevoegde latentie een groot probleem zijn in een systeem dat elke instructie in de juiste volgorde moet voltooien voordat de volgende instructie wordt gestart. Wat ooit een processor met 5 cycli per instructie was, kan plotseling tientallen of honderden klokcycli aan één instructie blijven hangen. Al die tijd kan er niets anders gebeuren op de computer. Technisch gezien kan dit enigszins worden verlicht door twee onafhankelijke kernen te hebben. Niets weerhoudt hen er echter van om hetzelfde te doen, mogelijk tegelijkertijd. Dus het volgen van de multi-core route lost dit niet op.

De klassieke RISC-pijplijn

RISC staat voor Reduced Instruction Set Computer . Het is een stijl van processorontwerp die de prestaties optimaliseert door het decoderen van elke instructie gemakkelijker te maken. Dit is in vergelijking met CISC of Complex Instruction Set Computer, die complexere instructiesets ontwerpt waardoor er minder instructies nodig zijn om dezelfde taken uit te voeren.

Het klassieke RISC-ontwerp bevat een instructiepijplijn. In plaats van een van de vijf instructiefasen in een bepaalde cyclus uit te voeren, staat de pijplijn toe dat alle vijf fasen worden uitgevoerd. Natuurlijk kun je niet alle vijf fasen van één instructie in een cyclus uitvoeren. Maar u kunt vijf opeenvolgende instructies in de wachtrij plaatsen met elk een offset van één fase. Op deze manier kan elke klokcyclus een nieuwe instructie worden voltooid. Biedt een potentiële 5x prestatieverbetering voor een relatief lage stijging van de kerncomplexiteit.

Wat is een instructiepijplijn?

In een scalaire pijplijnprocessor kan elke fase van de uitvoering van een instructie één keer per klokcyclus worden uitgevoerd. Dit maakt een maximale doorvoer mogelijk van één voltooide instructie per cyclus.

Processors die geen pijplijn hebben, kunnen alleen maar subscalair zijn, omdat ze niet één volledige instructie per cyclus kunnen uitvoeren. Met deze primaire pijplijn met vijf fasen kunt u een scalaire CPU maken die een instructie voor elk proces kan voltooien. Door nog verdergaande pijplijnen te maken, kun je superscalaire CPU's maken die meer dan één instructie per klokcyclus kunnen uitvoeren. Natuurlijk zijn er nog steeds potentiële problemen.

Nog steeds sequentieel

Niets van dit alles lost het probleem op van het vele cycli wachten op een antwoord wanneer de verschillende niveaus van cache en RAM moeten worden opgevraagd. Het introduceert ook een nieuw probleem. Wat als een instructie afhankelijk is van de uitvoer van de vorige instructie? Deze problemen worden zelfstandig opgelost met een geavanceerde dispatcher. Het plant zorgvuldig de volgorde van uitvoering, zodat geen instructies die afhankelijk zijn van de uitvoer van een ander te dicht bij elkaar staan. Het verwerkt ook cache-missers door een instructie te parkeren en deze in de pijplijn te vervangen door andere instructies die klaar zijn om te worden uitgevoerd en waarvan het resultaat niet nodig is, en de instructie te hervatten wanneer deze gereed is.

Deze oplossingen kunnen werken op niet-gepipelinede processors, maar ze zijn vereist voor een superscalaire processor die meer dan één instructie per klok uitvoert. Een vertakkingsvoorspeller is ook zeer nuttig omdat deze kan proberen de uitkomst van een instructie met meer dan één mogelijke uitkomst te voorspellen en blijft aannemen dat deze correct is, tenzij het tegendeel wordt bewezen.

Conclusie

Een pijplijn zorgt ervoor dat alle afzonderlijke mogelijkheden van de processor in elke cyclus kunnen worden gebruikt. Het doet dit door verschillende fasen van verschillende instructies tegelijkertijd uit te voeren. Dit voegt niet eens veel complexiteit toe aan het CPU-ontwerp. Het maakt ook de weg vrij om meer dan één instructie toe te staan ​​om een ​​enkele fase per cyclus uit te voeren.



Leave a Comment

Hoe een harde schijf te klonen

Hoe een harde schijf te klonen

In het moderne digitale tijdperk, waarin gegevens een waardevol bezit zijn, kan het klonen van een harde schijf op Windows voor velen een cruciaal proces zijn. Deze uitgebreide gids

Hoe repareer ik het stuurprogramma WUDFRd kan niet worden geladen op Windows 10?

Hoe repareer ik het stuurprogramma WUDFRd kan niet worden geladen op Windows 10?

Krijgt u tijdens het opstarten van uw computer de foutmelding dat het stuurprogramma WUDFRd niet op uw computer kan worden geladen?

Hoe u NVIDIA GeForce Experience-foutcode 0x0003 kunt oplossen

Hoe u NVIDIA GeForce Experience-foutcode 0x0003 kunt oplossen

Ervaar je NVIDIA GeForce-ervaring met foutcode 0x0003 op je desktop? Zo ja, lees dan de blog om te zien hoe u deze fout snel en eenvoudig kunt oplossen.

3D-printen: problemen oplossen met het buigen van de onderkant van de print (olifantenpoot)

3D-printen: problemen oplossen met het buigen van de onderkant van de print (olifantenpoot)

Het kan vervelend zijn om te maken te krijgen met buigingen aan de onderkant van een afdruk. Hier ziet u hoe u de olifantenpoot kunt repareren in 3D-printen.

Basisprincipes van 3D-printen: hechting van het printerbed

Basisprincipes van 3D-printen: hechting van het printerbed

Leren over 3D-printen? Dit is wat u moet weten over ahesie van het printerbed.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Fix Roku speelt geen audio of video af

Fix Roku speelt geen audio of video af

Als Roku geen audio of video afspeelt, biedt deze gids voor probleemoplossing u een reeks handige oplossingen om het probleem op te lossen.

Fix Roku-kanaal kon inhoud niet laden

Fix Roku-kanaal kon inhoud niet laden

Als Roku een foutmelding geeft dat de inhoud op de kanalen niet kan worden geladen, kunt u uw apparaat opnieuw opstarten of een nieuw account maken.

Oplossing: Chromebook laadt geen afdrukvoorbeeld

Oplossing: Chromebook laadt geen afdrukvoorbeeld

Als uw Chromebook het afdrukvoorbeeld niet kan laden, start u uw laptop, printer en router opnieuw op. Verwijder bovendien de printer en installeer deze opnieuw.

Een GPU verwijderen van een Windows-pc in 2023

Een GPU verwijderen van een Windows-pc in 2023

Moet u de GPU van uw pc verwijderen? Ga met me mee terwijl ik uitleg hoe je een GPU van je pc verwijdert in deze stapsgewijze handleiding.