Buffer di traduzione lookaside (TLB)

Un translation lookaside buffer (TLB) è una cache di memoria che archivia le traduzioni recenti della memoria virtuale in indirizzi fisici per un recupero più rapido.

Quando un programma fa riferimento a un indirizzo di memoria virtuale, la ricerca inizia nella CPU. Innanzitutto, vengono controllate le cache delle istruzioni. Se la memoria richiesta non è in queste cache molto veloci, il sistema deve cercare l'indirizzo fisico della memoria. A questo punto, TLB viene controllato per un riferimento rapido alla posizione nella memoria fisica.

Quando un indirizzo viene cercato nel TLB e non viene trovato, è necessario eseguire la ricerca nella memoria fisica con un'operazione di scansione della pagina di memoria. Man mano che gli indirizzi di memoria virtuale vengono tradotti, i valori a cui si fa riferimento vengono aggiunti a TLB. Quando un valore può essere recuperato da TLB, la velocità aumenta perché l'indirizzo di memoria è memorizzato nel TLB sul processore. La maggior parte dei processori include TLB per aumentare la velocità delle operazioni di memoria virtuale attraverso la prossimità intrinseca che riduce la latenza e le alte frequenze di esecuzione delle attuali CPU.

I TLB aggiungono anche il supporto richiesto per i computer multiutente per mantenere la memoria separata, avendo una modalità utente e supervisore, nonché utilizzando autorizzazioni sui bit di lettura e scrittura per abilitare la condivisione.

I TLB possono subire problemi di prestazioni a causa di multitasking ed errori di codice. Questa riduzione delle prestazioni è chiamata cache thrash. Il thrash della cache è causato da un'attività del computer in corso che non riesce a progredire a causa dell'uso eccessivo di risorse o dei conflitti nel sistema di memorizzazione nella cache.