Cosè il Translation Lookaside Buffer?

Le CPU sono bestie incredibilmente complesse. C'è un numero enorme di parti interconnesse che devono lavorare tutte all'unisono per raggiungere i livelli di prestazioni che vediamo. Le prestazioni della memoria sono un fattore chiave nelle prestazioni delle moderne CPU, in particolare come fattore limitante.

Perché la velocità della memoria è così importante?

Le CPU sono incredibilmente veloci, con le ultime generazioni che funzionano a 5,7 GHz se adeguatamente raffreddate. Ciò consente loro di completare 5,7 miliardi di operazioni al secondo. Molte di queste operazioni eseguono un'azione su alcuni tipi di dati che devono essere archiviati in memoria.

Anche la memoria di sistema principale, nota come RAM, è molto veloce. Sfortunatamente, è molto veloce rispetto a qualsiasi cosa diversa dalla CPU. La latenza assoluta sulla moderna RAM di fascia alta è dell'ordine di 60 nanosecondi. Sfortunatamente, ciò si traduce in circa 342 cicli della CPU. Per velocizzare l'accesso alla memoria, viene utilizzata una cache della CPU che memorizza dinamicamente nella cache i dati. Questa cache si trova sul die della CPU stessa e utilizza celle SRAM anziché celle DRAM, rendendola molto più veloce. Sfortunatamente, anche la cache della CPU è molto più piccola della RAM di sistema, generalmente non raggiunge nemmeno i 100 MB. Tuttavia, nonostante le sue dimensioni ridotte, il sistema di cache della CPU a più livelli aumenta notevolmente le prestazioni del sistema.

Arriva la memoria virtuale a rovinare tutto

I computer moderni utilizzano un sistema chiamato memoria virtuale. Anziché allocare indirizzi di memoria fisica ai processi, vengono utilizzati indirizzi di memoria virtuale. Ogni processo ha il proprio spazio di indirizzi di memoria virtuale. Questo ha due vantaggi. In primo luogo, fornisce una facile separazione tra la memoria che appartiene a un processo e la memoria che appartiene a un altro. Questo aiuta a prevenire gli attacchi in cui il software dannoso legge i dati dalla memoria di altri software, accedendo potenzialmente a informazioni riservate. Nasconde anche la struttura della memoria fisica dal processo. Ciò consente alla CPU di spostare i bit di memoria utilizzati raramente in un file di paging sull'archiviazione, senza necessariamente smontarlo dalla RAM virtuale. Ciò consente al computer di gestire delicatamente gli scenari in cui è richiesta più RAM di quella fisicamente presente. Senza memoria virtuale,

Sfortunatamente, se si utilizzano indirizzi di memoria virtuale, il computer deve effettivamente tradurre quegli indirizzi di memoria virtuale in indirizzi di memoria fisica per leggere i dati. Ciò richiede una tabella per memorizzare tutte le traduzioni degli indirizzi di memoria virtuale in indirizzi di memoria fisica. La dimensione di questo dipende direttamente dalla quantità di RAM in uso. In genere è abbastanza piccolo, almeno se confrontato con la capacità della RAM di sistema. Sfortunatamente, se memorizzi la traduzione tra indirizzi virtuali e indirizzi fisici nella RAM, devi fare due richieste alla RAM per ogni richiesta alla RAM. Uno per trovare l'indirizzo fisico da richiedere e poi un altro per accedere effettivamente a quella posizione.

Immettere il buffer lookaside della traduzione

La soluzione a questo problema è archiviare la tabella di traduzione da qualche parte più velocemente. La cache della CPU si adatterebbe bene al conto, almeno dal punto di vista della velocità. Il problema, tuttavia, è che la cache della CPU è minuscola e già ampiamente utilizzata. Non solo la tabella non si adatta alla cache, ma ciò interromperebbe il suo utilizzo già determinante per le prestazioni.

Certo, se il principio della cache funziona già per l'accesso alla memoria, perché non ripeterlo per la tabella di traduzione? Ed è esattamente quello che è il Translation Lookaside Buffer, o TLB. È una cache ad alta velocità per traduzioni di indirizzi recenti. Non è abbastanza grande per memorizzare l'intero tavolo, ma le sue dimensioni ridotte significano che può rispondere molto rapidamente, all'interno di un singolo ciclo di clock.

Qualsiasi richiesta di memoria passa attraverso il TLB. Se c'è un hit TLB, può fornire l'indirizzo di memoria fisica per la richiesta effettiva, in genere aggiungendo un singolo ciclo di latenza. Se manca un TLB, la ricerca deve essere eseguita dalla memoria principale. C'è una piccola penalità prestazionale per un errore TLB di circa 5 cicli, una perdita più che eclissata dalla latenza di accesso alla memoria. Una volta recuperata la traduzione dell'indirizzo dalla RAM di sistema, viene inserita nel TLB e la richiesta viene quindi ripetuta con un hit immediato del TLB.

Nota: esistono diversi schemi per lo sfratto di TLB. Alcuni possono utilizzare uno schema First In, First Out o FIFO. Altri possono utilizzare uno schema Least Frequently Used o LFU.

Nel raro caso in cui non vi sia alcuna voce nella tabella di conversione degli indirizzi, viene causato un errore di pagina, poiché i dati richiesti non si trovano nella RAM. Il sistema operativo deve quindi gestire l'errore e trasferire i dati dalla memoria alla RAM prima che la richiesta possa continuare.

Conclusione

Il Translation Lookaside Buffer, o TLB, è una cache della CPU ad alta velocità dedicata alla memorizzazione nella cache delle traduzioni di indirizzi recenti dal file di paging nella RAM di sistema. Ciò è necessario poiché i sistemi di memoria virtuale, come implementati in tutti i computer moderni, richiederebbero due richieste alla RAM per ogni richiesta alla RAM. Uno per tradurre l'indirizzo di memoria virtuale in un indirizzo di memoria fisica e un altro per accedere effettivamente all'indirizzo fisico. Mettendo nella cache le traduzioni recenti, la latenza della memoria può essere notevolmente ridotta per gli hit TLB.

È necessario prestare attenzione per garantire che le traduzioni memorizzate nella cache siano pertinenti al processo attualmente attivo. Poiché ogni processo ha uno spazio di indirizzi virtuali diverso, non possono essere riutilizzati. Non limitare rigorosamente questo è stata la causa alla base della vulnerabilità Meltdown.



Leave a Comment

Come far funzionare Spotify nel nuovo Garmin Venu

Come far funzionare Spotify nel nuovo Garmin Venu

Scopri come configurare Spotify sul tuo Garmin Venu per ascoltare la tua musica preferita mentre ti alleni.

Risoluzione dei problemi dellapp Blink quando la fotocamera è offline

Risoluzione dei problemi dellapp Blink quando la fotocamera è offline

Scopri come risolvere i problemi dell

S Pen rispetto a Apple Pencil

S Pen rispetto a Apple Pencil

Scopri le differenze tra S Pen e Apple Pencil, due accessori per disegnare e prendere appunti, analizzando design, prestazioni e costi.

Che cosè WPS e come funziona?

Che cosè WPS e come funziona?

Scopri tutto su cosa è WPS e come funziona, insieme ai suoi vantaggi e svantaggi.

La TV Samsung non salva le impostazioni dellimmagine

La TV Samsung non salva le impostazioni dellimmagine

Scopri come risolvere il problema della tua TV Samsung che non salva le impostazioni dell

Come acquisire uno screenshot su un laptop Chromebook

Come acquisire uno screenshot su un laptop Chromebook

Guida dettagliata su come acquisire screenshot a schermo intero e parziale su Chromebook. Segui questi passaggi per facilitare la tua esperienza.

Correggi Chromebook Errore durante linstallazione di Linux Beta

Correggi Chromebook Errore durante linstallazione di Linux Beta

Se si è verificato un errore durante l

Guida ai materiali di stampa 3D: cosa sapere sul TPU

Guida ai materiali di stampa 3D: cosa sapere sul TPU

Per ottenere i migliori risultati nella stampa 3D, ecco cosa devi sapere sul TPU e i suoi utilizzi.

Che cosa fa Blocco scorrimento?

Che cosa fa Blocco scorrimento?

Il blocco dello scorrimento è un tasto sulla maggior parte delle tastiere, sebbene raramente venga utilizzato. Scopri come funziona e la sua utilità nei moderni software.

È possibile aggiornare la memoria del Chromebook?

È possibile aggiornare la memoria del Chromebook?

Scopri se è possibile aggiornare la memoria del tuo Chromebook e quali sono le migliori opzioni per ottimizzare le prestazioni del dispositivo.