Translation lookaside buffer (TLB)

Een translation lookaside buffer (TLB) is een geheugencache waarin recente vertalingen van virtueel geheugen naar fysieke adressen worden opgeslagen om sneller te kunnen worden opgehaald.

Wanneer een virtueel geheugenadres door een programma wordt geraadpleegd, begint het zoeken in de CPU. Eerst worden de instructiecaches gecontroleerd. Als het benodigde geheugen zich niet in deze zeer snelle caches bevindt, moet het systeem het fysieke adres van het geheugen opzoeken. Op dit punt wordt de TLB gecontroleerd voor een snelle verwijzing naar de locatie in het fysieke geheugen.

Wanneer een adres in de TLB wordt opgezocht en niet wordt gevonden, moet het fysieke geheugen worden doorzocht met een memory page crawl operatie. Als virtuele geheugenadressen worden vertaald, worden de waarden waarnaar wordt verwezen toegevoegd aan de TLB. Wanneer een waarde uit de TLB kan worden opgehaald, wordt de snelheid verhoogd omdat het geheugenadres in de TLB op de processor is opgeslagen. De meeste processoren bevatten TLB's om de snelheid van virtuele geheugen operaties te verhogen door de inherente latentie verminderende nabijheid alsmede de hoge loopfrequenties van de huidige CPU's.

TLB's voegen ook de ondersteuning toe die nodig is voor multi-user computers om geheugen gescheiden te houden, door een gebruiker en een supervisor modus te hebben en door permissies op lees en schrijf bits te gebruiken om delen mogelijk te maken.

TLB's kunnen prestatie problemen ondervinden van multitasking en code fouten. Deze prestatievermindering wordt een cache thrash genoemd. Cache thrash wordt veroorzaakt door een lopende computeractiviteit die niet doorgaat als gevolg van overmatig gebruik van bronnen of conflicten in het cachingsysteem.