Wat is een vertaaluitkijkbuffer?
De centrale verwerkingseenheid (CPU) van een computer heeft een cachesysteem, de zogenoemde translation lookaside buffer (TLB), die verantwoordelijk is voor het vertalen van fysiek geheugen naar virtueel geheugen. Dit is een apart cachesysteem, omdat het voor de CPU sneller is om deze cache te doorzoeken op geheugenadressen dan om het in de reguliere cache te plaatsen. Om geheugenadressen op te slaan, gebruikt de TLB paginatabelitems en vormt een kaart tussen virtuele en fysieke geheugenadressen. Wanneer de buffer voor het opzoeken van de vertaling wordt gebruikt, kan er een TLB-hit of miss zijn, wat betekent dat het geheugen is gevonden of onbekend is. Computers kunnen verschillende TLB-niveaus hebben om meer geheugenadresinformatie op te slaan.
Wanneer fysiek geheugen wordt omgezet in virtueel geheugen, maakt het creëren van een cache ervan het voor de computer gemakkelijk om de feitelijke geheugenplaatsing te vinden. Deze informatie kan in de hoofd-cache van de CPU worden geplaatst, maar dat levert verschillende problemen op. Om deze gegevens op te slaan, moeten verschillende toegangsniveaus worden gebruikt, waardoor het hele proces wordt vertraagd. Een buffer voor het vertalen van de lookaside kijkt rond deze niveaus en helpt de CPU de juiste geheugenplaats te vinden zodat de gegevens kunnen worden geopend.
De buffer voor de lookaside van de vertaling maakt gebruik van een paginatabelsysteem dat de vertaalgebieden van het virtuele geheugen categoriseert. Wanneer fysiek geheugen verandert in virtueel geheugen, bijvoorbeeld wanneer een document wordt opgeslagen of een programma wordt gebruikt, slaat de TLB deze vertaling op. De TLB slaat de informatie zelf niet op, maar waar het geheugen zich bevindt, waardoor het geheugen efficiënt is.
Om een bestand of iets in de geheugenarchitectuur te vinden, zoekt de CPU door de computer. De eerste stap van de CPU is het gebruik van de buffer voor het vertalen van de vertaling om te zien of het geheugen in de cache is opgeslagen; dit levert een hit of miss op. Een TLB-hit betekent dat het fysieke geheugen in de cache is opgeslagen en snel kan worden gevonden. Een TLB-fout betekent dat het fysieke geheugen niet in de cache is opgeslagen en dat de CPU alle paginatabellen moet doorzoeken om het geheugen te vinden, een proces dat geheugeninefficiënt is en extra tijd kost.
De meeste computers worden geleverd met verschillende bufferniveaus voor de vertaling. Het laagste niveau bevat de minste hoeveelheid informatie, maar is ook het snelst. Wanneer er te veel informatie is voor het eerste niveau om vast te houden, stroomt het naar de hogere niveaus. Deze niveaus zijn niet zo snel, maar zijn nog steeds sneller dan de CPU die door alle paginatabellen zoekt naar het fysieke geheugenadres.