Wat is de Translation Lookaside Buffer?

CPU's zijn ongelooflijk complexe beesten. Er zijn een groot aantal onderling verbonden onderdelen die allemaal perfect moeten samenwerken om de prestatieniveaus te bereiken die we zien. Geheugenprestaties zijn een sleutelfactor in de prestaties van moderne CPU's, met name als beperkende factor.

Waarom is geheugensnelheid zo belangrijk?

CPU's zijn ongelooflijk snel, met de nieuwste generaties die op 5,7 GHz draaien wanneer ze voldoende worden gekoeld. Hierdoor kunnen ze elke seconde 5,7 miljard bewerkingen uitvoeren. Veel van deze bewerkingen voeren een actie uit op een bepaald type gegevens dat in het geheugen moet worden opgeslagen.

Het hoofdsysteemgeheugen, bekend als RAM, is ook erg snel. Helaas is het erg snel in vergelijking met iets anders dan de CPU. De absolute latentie op moderne high-end RAM is in de orde van grootte van 60 nanoseconden. Helaas komt dat neer op ongeveer 342 CPU-cycli. Om geheugentoegang te versnellen, wordt een CPU-cache gebruikt die gegevens dynamisch in de cache opslaat. Deze cache bevindt zich op de CPU-chip zelf en gebruikt SRAM-cellen in plaats van DRAM-cellen, waardoor het een stuk sneller wordt. Helaas is de CPU-cache ook een stuk kleiner dan het systeem-RAM, meestal niet eens in totaal 100 MB. Toch verhoogt het gelaagde CPU-cachesysteem, ondanks zijn kleine formaat, de systeemprestaties enorm.

Hier komt virtueel geheugen om alles in de war te brengen

Moderne computers maken gebruik van een systeem dat virtueel geheugen wordt genoemd. In plaats van fysieke geheugenadressen toe te wijzen aan processen, worden virtuele geheugenadressen gebruikt. Elk proces heeft zijn eigen virtuele geheugenadresruimte. Dit heeft twee voordelen. Ten eerste zorgt het voor een gemakkelijke scheiding tussen geheugen dat bij het ene proces hoort en geheugen dat bij een ander proces hoort. Dit helpt aanvallen te voorkomen waarbij schadelijke software gegevens uit het geheugen van andere software leest en mogelijk toegang krijgt tot gevoelige informatie. Het verbergt ook de fysieke geheugenstructuur van het proces. Hierdoor kan de CPU zelden gebruikte stukjes geheugen verplaatsen naar een wisselbestand in de opslag, zonder het noodzakelijkerwijs te ontkoppelen van de virtuele RAM. Hierdoor kan de computer voorzichtig scenario's beheren waarin meer RAM nodig is dan fysiek aanwezig is. Zonder virtueel geheugen,

Helaas, als u virtuele geheugenadressen gebruikt, moet de computer die virtuele geheugenadressen daadwerkelijk vertalen naar fysieke geheugenadressen om de gegevens te kunnen lezen. Dit vereist een tabel om alle vertalingen van virtuele geheugenadressen naar fysieke geheugenadressen op te slaan. De grootte hiervan is rechtstreeks afhankelijk van de hoeveelheid RAM die in gebruik is. Het is over het algemeen vrij klein, althans in vergelijking met de capaciteit van het systeem-RAM. Helaas, als u de vertaling tussen virtuele adressen en fysieke adressen in RAM opslaat, moet u voor elk verzoek aan RAM twee verzoeken naar RAM doen. Een om het fysieke adres te vinden dat moet worden aangevraagd en vervolgens een andere om daadwerkelijk toegang te krijgen tot die locatie.

Voer de vertaling-lookaside-buffer in

De oplossing voor dit probleem is om de vertaaltabel sneller ergens op te slaan. De CPU-cache zou goed passen, althans vanuit een snelheidsperspectief. Het probleem daarmee is echter dat de CPU-cache klein is en al zwaar wordt gebruikt. Niet alleen past de tabel niet in de cache, maar dit zou het toch al prestatiebepalende gebruik ervan verstoren.

Natuurlijk, als het principe van de cache al werkt voor geheugentoegang, waarom herhaal je het dan niet voor de vertaaltabel? En dat is precies wat de Translation Lookaside Buffer of TLB is. Het is een snelle cache voor recente adresvertalingen. Het is niet groot genoeg om de hele tafel op te slaan, maar door zijn kleine formaat kan het heel snel reageren, binnen een enkele klokcyclus.

Elk geheugenverzoek gaat via de TLB. Als er een TLB-hit is, kan deze het fysieke geheugenadres voor het daadwerkelijke verzoek leveren, waarbij meestal een enkele latentiecyclus wordt toegevoegd. Als er een TLB-misser is, moet de zoekopdracht worden uitgevoerd vanuit het hoofdgeheugen. Er is een kleine prestatievermindering voor een TLB-misser van ongeveer 5 cycli, een verlies dat meer dan wordt overschaduwd door de latentie van geheugentoegang. Zodra de adresvertaling is opgehaald uit het systeem-RAM, wordt deze in de TLB geduwd en wordt het verzoek herhaald met een onmiddellijke TLB-treffer.

Opmerking: er zijn verschillende regelingen voor TLB-ontruiming. Sommigen gebruiken een First In, First Out of FIFO-schema. Anderen kunnen een Minst Frequent Gebruikt of LFU-schema gebruiken.

In het zeldzame geval dat er geen invoer is in de adresvertalingstabel, wordt er een paginafout veroorzaakt, omdat de gevraagde gegevens zich niet in het RAM bevinden. Het besturingssysteem moet vervolgens de fout afhandelen en de gegevens van opslag naar RAM overbrengen voordat het verzoek kan worden voortgezet.

Conclusie

De Translation Lookaside Buffer, of TLB, is een supersnelle CPU-cache speciaal voor het cachen van recente adresvertalingen van het paginabestand in het systeem-RAM. Dit is nodig omdat virtuele geheugensystemen, zoals geïmplementeerd in alle moderne computers, voor elk verzoek aan RAM twee verzoeken aan RAM nodig zouden hebben. Een om het virtuele geheugenadres te vertalen naar een fysiek geheugenadres, en een andere om daadwerkelijk toegang te krijgen tot het fysieke adres. Door recente vertalingen in de cache op te slaan, kan de geheugenlatentie aanzienlijk worden verminderd voor TLB-hits.

Er moet voor worden gezorgd dat vertalingen in de cache relevant zijn voor het momenteel actieve proces. Omdat elk proces een andere virtuele adresruimte heeft, kunnen ze niet opnieuw worden gebruikt. Dit niet strikt beperkend was de oorzaak achter de Meltdown-kwetsbaarheid.



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.