Wat is een geheugenbarrière?

Historisch gezien waren CPU's perfect sequentiële machines. Dit is zeer logisch en gemakkelijk te begrijpen, maar kan een prestatieprobleem zijn. Door de jaren heen zijn er veel ingenieuze aanpassingen aan CPU-ontwerpen gedaan om zoveel mogelijk prestaties uit siliciumwafels te halen. Een van de interessantere is echter de uitvoering buiten de orde. Bij out-of-order CPU's hoeven instructies niet noodzakelijkerwijs te worden uitgevoerd in de volgorde waarin ze zijn uitgegeven.

Op volgorde wachten

Het belangrijkste prestatieprobleem waar een in-order CPU tegenaan loopt, wordt een pijplijnstalling genoemd. Dit gebeurt wanneer een instructie afhankelijk is van een bepaald geheugen, maar dat geheugen niet direct beschikbaar is in een register. In dit geval moet de CPU die waarde in het geheugen vinden. De CPU-cache wordt eerst gecontroleerd, omdat dit de snelste geheugenlaag is. Als de waarde er niet is, wordt het systeem-RAM gecontroleerd. Gedurende deze tijd moet de CPU inactief zijn, aangezien de geheugenafhankelijke instructie vóór de volgende instructies moet worden voltooid.

De prestatie-impact van het vastlopen van een pijpleiding is misschien niet zo erg, maar het kan ook relatief ernstig zijn. De L1-cache kan bijvoorbeeld doorgaans een resultaat retourneren in de orde van grootte van 5 CPU-cycli. De L2-cache kan 20 cycli duren, L3 ongeveer 200 cycli en systeem-RAM ongeveer 400 cycli. Aangezien een CPU rond de 5 GHz kan werken, dat zijn 5 miljard klokcycli per seconde, zijn zelfs 400 cycli niet zo slecht (0,000008%). Maar als u veel instructies hebt die moeten verwijzen naar gegevens verderop in de cachelagen, kan het cumulatieve effect een merkbare vertraging veroorzaken.

Out-of-Order Execution en register hernoemen

Out-of-order uitvoering is een techniek waarmee de planner de instructies in zijn wachtrij opnieuw kan ordenen. Door deze herordening kan het ervoor kiezen om specifieke threads voorrang te geven boven andere. Het kan ook instructies terug in de wachtrij duwen wanneer ze een gegevensafhankelijkheid hebben waaraan nog niet is voldaan. Dit voorkomt zo veel mogelijk het vastlopen van pijpleidingen en minimaliseert inactieve cycli.

Out-of-order uitvoering vereist een functie genaamd register hernoemen. De CPU heeft binnen een enkele cyclus toegang tot gegevens in registers. Registers worden gebruikt om gegevens op te slaan die worden gelezen en geschreven. Het is echter essentieel om ervoor te zorgen dat de computer als geheel alles in de logische volgorde ziet gebeuren, niet in de afwijkende, voor de CPU-cyclus geoptimaliseerde volgorde. Om dit mogelijk te maken, hebben CPU's veel meer logische registers dan de CPU-architectuur vereist.

Gegevens die moeten worden uitgeschreven, maar een “eerdere” instructie hebben die nog niet is voltooid, worden in een houdregister geplaatst. Deze gegevens worden niet overgedragen naar een ander register wanneer de bestelling is afgehandeld. In plaats daarvan wordt de naam van het bewaarregister veranderd in die van het register waarin het zou moeten staan. Dit lijkt enigszins op het bereiden van een dessert voor het hoofdgerecht, maar het vervolgens in de koelkast bewaren tot het tijd is om het te serveren.

Deze logische registers zijn geheel ongeadresseerd. De CPU kan alleen echt de logische registers aanspreken die momenteel de naam van de architectonische registers delen. Dat gezegd hebbende, de CPU is er ook voldoende van op de hoogte dat als andere opnieuw geordende instructies afhankelijk zijn van de gegevens in het logische bewaarregister, ze deze kunnen gebruiken in plaats van de "verouderde" gegevens in het architecturale register op dat specifieke empirische tijdstip.

Geheugenbarrières

Een memory barrier – ook wel membar, memory fence of fence instruction genoemd – is een instructie in computercode. Hiermee kan een programmeur een ordeningsbeperking afdwingen voor geheugenbewerkingen die voor en na de geheugenbarrière worden uitgegeven. De geheugenbarrière instrueert de CPU-scheduler om ervoor te zorgen dat alle instructies worden verwerkt vóór elke instructie na de barrière. Dit wordt gedaan om ervoor te zorgen dat belangrijke bewerkingen in de juiste volgorde worden voltooid.

Over het algemeen zou dit op moderne computers niet nodig moeten zijn. Out-of-order uitvoering en hernoemen van registers zijn gevestigde en volwassen velden. Desalniettemin kan een geheugenbarrière nuttig zijn voor oudere, minder geavanceerde processors die niet in orde zijn of die worden gebruikt bij kritieke geheugenbewerkingen.

Geheugenbarrières kunnen prestatieverlies met zich meebrengen. Dit komt omdat ze actief voorkomen dat de CPU-planner specifieke delen van de instructiestroom optimaliseert. Dit vergroot de kans op het vastlopen van een pijpleiding.

Conclusie

Een geheugenbarrière is een instructie die zorgt voor een ordeningsbeperking op geheugenbewerkingen. Dit is belangrijk omdat uitvoeringsprocessors die niet in de juiste volgorde werken specifieke instructies opnieuw kunnen ordenen. Hoewel het hernoemen van registers een gevestigde methode is om de geheugenintegriteit in deze omgeving te waarborgen, kan het nuttig zijn om dit handmatig te doen.

De geheugenbarrière dwingt de CPU-scheduler om ervoor te zorgen dat instructies worden voltooid vóór enige instructie na de barrière. Dit voorkomt dat geheugenbewerkingen opnieuw worden geordend. Het voorkomt ook dat de CPU de instructiestroom optimaliseert, wat de prestaties kan beïnvloeden.



Leave a Comment

Wat te Doen Als Powerbeats Pro Niet Opladen in de Case

Wat te Doen Als Powerbeats Pro Niet Opladen in de Case

Als uw Powerbeats Pro niet opladen, gebruik dan een andere voedingsbron en maak uw oordopjes schoon. Laat de case open terwijl u uw oordopjes oplaadt.

De Basisprincipes van 3D-printen: Een Onmisbare Onderhoudschecklist

De Basisprincipes van 3D-printen: Een Onmisbare Onderhoudschecklist

Het behoud van uw apparatuur in goede staat is essentieel. Hier zijn enkele nuttige tips om uw 3D-printer in topconditie te houden.

Canon Pixma MG5220: Scannen Zonder Inkt

Canon Pixma MG5220: Scannen Zonder Inkt

Hoe te scannen met de Canon Pixma MG5220 wanneer je zonder inkt zit.

5 Redenen waarom je laptop oververhit

5 Redenen waarom je laptop oververhit

Ontdek enkele mogelijke redenen waarom je laptop oververhit raakt, samen met tips en trucs om dit probleem te vermijden en je apparaat koel te houden.

Hoe een SSD te installeren op desktop- en laptop-pc's

Hoe een SSD te installeren op desktop- en laptop-pc's

Heb je net een SSD gekocht in de hoop de interne opslag van je pc te upgraden maar weet je niet hoe je een SSD moet installeren? Lees dit artikel nu!

Hoe GeForce Now Foutcode 0xC272008F op te lossen

Hoe GeForce Now Foutcode 0xC272008F op te lossen

Je maakt je klaar voor een avond gamen en het wordt een grote – je hebt net “Star Wars Outlaws” opgepakt op de GeForce Now streamingdienst. Ontdek de enige bekende workaround die je laat zien hoe je GeForce Now Foutcode 0xC272008F kunt oplossen, zodat je weer Ubisoft-games kunt spelen.

3D Printen Basisprincipes: Onderhoudstips voor uw 3D-printer

3D Printen Basisprincipes: Onderhoudstips voor uw 3D-printer

Het onderhouden van uw 3D-printers is zeer belangrijk om de beste resultaten te behalen. Hier zijn enkele belangrijke tips om in gedachten te houden.

Hoe de IP-adres van een printer te vinden

Hoe de IP-adres van een printer te vinden

Problemen met het vinden van het IP-adres dat je printer gebruikt? Wij laten je zien hoe je het kunt vinden.

Hoe AirPods te Gebruiken met Samsung Telefoons

Hoe AirPods te Gebruiken met Samsung Telefoons

Als je onzeker bent of je AirPods voor je Samsung-telefoon moet kopen, kan deze gids je zeker helpen. De meest voor de hand liggende vraag is of de twee compatibel zijn, en het antwoord is: ja, dat zijn ze!

Wat doet Scroll Lock?

Wat doet Scroll Lock?

Scroll lock is een toets op de meeste toetsenborden, hoewel de meeste mensen het nooit echt gebruiken. Ontdek het nut en gebruik van scroll lock in moderne software.