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

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.