Che cos’è la mappatura diretta?

La mappatura diretta è un metodo di memorizzazione delle informazioni per un facile accesso su un computer. Le informazioni utilizzate di recente vengono memorizzate in una cache in modo che il computer possa trovare rapidamente le informazioni la prossima volta che sarà necessario. Nella programmazione del computer, una cache è una piccola sezione di memoria ad accesso casuale (RAM) che viene messa da parte allo scopo di recuperare facilmente i dati. Con la mappatura diretta, a ogni dato in memoria viene assegnato uno spazio nella cache, che condivide con altri dati. I dati della cache vengono costantemente sovrascritti man mano che sono necessari nuovi dati.

Una cache è organizzata in righe. Ogni riga è abbastanza grande solo per memorizzare un blocco di dati e un tag per identificare da dove provengono i dati. Quando un utente richiede un dato, il computer esegue prima la scansione della cache per vedere se l’informazione è presente. In caso affermativo, le informazioni vengono restituite all’utente. Questo è noto come cache hit, che è più veloce del recupero dei dati dalla posizione originale.

La percentuale di richieste che risulta in riscontri nella cache è denominata frequenza di riscontri. Se i dati richiesti dall’utente non sono nella cache, il computer li troverà in memoria. Una copia dei dati verrà depositata nella cache in modo che possa essere trovata rapidamente la prossima volta che l’utente lo richiede, in teoria aumentando il tasso di successo. Tutto questo avviene dietro le quinte. L’utente non sa se i dati ricevuti provengono dalla cache o dalla memoria.

La mappatura diretta è un metodo per decidere dove verranno archiviati i blocchi di memoria nella cache. Ad ogni blocco di memoria viene assegnata una riga specifica nella cache. Poiché la cache è più piccola della memoria, più blocchi condivideranno una singola riga nella cache. Se una riga è già piena quando deve essere scritto un nuovo blocco, un vecchio blocco verrà sovrascritto.

Sebbene la mappatura diretta sia un modo molto semplice e facile per progettare una cache, presenta alcuni problemi. Se un programma accede continuamente a più blocchi di dati che condividono la stessa riga in una cache di mappatura diretta, la riga verrà riscritta spesso. Ciò si traduce in molti errori perché è meno probabile che i dati necessari al computer siano i dati che si trovano effettivamente in quella linea di cache al momento. Quindi la mappatura diretta ha un tasso di successo inferiore rispetto ad altri modelli di mappatura della cache.