Translation look-aside buffer

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

De translation look-aside buffer is een cache in de CPU dat gedeeltes van de page table bevat die omgezet worden van virtuele naar fysieke adressen. De TLB heeft een vast aantal ingangen en wordt gebruikt om de snelheid te verhogen van de virtuele adresomzetting (dankzij zijn SRAM-geheugen).

Elke ingang in de TLB bestaat uit twee delen: een key (of tag) en een waarde. Als het associatieve geheugen een item krijgt, wordt dit met alle keys tegelijk vergeleken. Als het item wordt gevonden, wordt de bijhorende waarde teruggegeven. Zoeken naar items gaat hiermee snel, maar de hardware is duur (vandaar de kleine ruimte en dus het beperkte aantal items dat de TLB kan opslaan). Het aantal ingangen ligt meestal tussen de 64 en 1024 items.

De TLB bevat een paar ingangen van de page table. Als een logisch adres wordt gegenereerd door de CPU, gaat het pagenummer naar de TLB. Als het pagenummer wordt gevonden, is het framenummer onmiddellijk beschikbaar om het geheugen te benaderen.

Als het pagenummer niet in de TLB staat, wordt er verwezen naar de page table (dit noemen we een TLB-miss). Als het framenummer is opgehaald, wordt het geheugen benaderd (als het niet in de page table staat wordt er een page fault-exception afgevuurd). Daarna worden dat pagenummer en framenummer in de TLB geplaatst zodat ze sneller worden gevonden bij de volgende verwijzing. Als de TLB al vol is, vervangt het besturingssysteem een ingang. Het vervangingsbeleid varieert van least recently used (LRU), First in, fist out (FIFO), Clock policy (FIFO, waarbij pagina's in gebruik gespaard worden) tot random (afhankelijk van de implementatie in het besturingssysteem). Ook kunnen sommige TLB-ingangen vastgelegd worden zodat ze niet verwijderd kunnen worden, bijvoorbeeld voor kernelcode.

Het percentage dat een pagenummer wordt gevonden in de TLB is de TLB-hitratio. Een hitratio van 70 procent betekent dat we het gewenste pagenummer 70 procent van de keren in de TLB terugvinden. Een hoge hitratio is cruciaal voor de snelle verwerking van gegevens. Het duurt immers veel langer om de juiste data terug te vinden bij een TLB-miss dan dat het direct beschikbaar is.