L’accesso più rapido alla memoria memorizzabile su un’unità di elaborazione del computer (CPU) è un registro del processore. Le architetture dei computer progettano la capacità di memoria del registro del processore in una cache della CPU in modo che i valori a cui accedono regolarmente i processi del computer possano essere memorizzati lì. I processi possono accedere ed essere eseguiti rapidamente in base a quei valori memorizzati. Poiché i registri del processore sono memorizzati sulla CPU, sono considerati la parte superiore della gerarchia della memoria di archiviazione e l’allocazione di solito è determinata da variabili. Una volta elaborati, i dati vengono ripristinati nella cache, nella memoria ad accesso casuale (RAM) o nell’archiviazione su disco rigido.
I processori dei computer hanno registri di diverso tipo, secondo istruzioni o test che operano su di essi o in base al loro contenuto specifico. Dati, indirizzi e registri di uso generale contengono valori matematici e indirizzi per l’archiviazione in memoria. Esistono registri condizionali con valori di verità per istruzioni di operazioni logiche, registri costanti con valori di sola lettura come pi e zero e registri per scopi speciali che mantengono un contatore di programma, un registro di stato e puntatori allo stack per l’utilizzo della memoria dello stack. I registri di controllo contengono istruzioni da un set di istruzioni integrato nell’architettura della CPU; e ce ne sono diversi che recuperano dalla RAM e dai circuiti della CPU che accedono a buffer di memoria, dati di memoria, intervalli di tipi di memoria e indirizzi. Le variabili non assegnate a un registro del processore sono memorizzate nella RAM e caricate dentro e fuori per operazioni di lettura e scrittura, tuttavia, queste hanno un’elaborazione più lenta.
Conoscendo la differenza di velocità tra l’elaborazione nei registri e la RAM, gli sviluppatori di programmi per computer compilatori di solito progettano i loro programmi per operare il più possibile nella memoria dei registri del processore per il funzionamento delle funzioni rapidamente. Per i programmi compilatori just-in-time, una tecnica di allocazione del registro nota come allocazione della scansione lineare tiene traccia delle operazioni di registro e libera rapidamente la potenza di calcolo del registro al programma. Le tecniche di allocazione dei registri tentano di ottenere il maggior numero di variabili del programma assegnate ai registri e in un flusso di operazioni che massimizza il numero minimo di registri per una compilazione rapida.
Poiché molti registri del processore servono per la memorizzazione temporanea di variabili e set di istruzioni, tutte le operazioni per l’uso del programma possono essere memorizzate per la manipolazione da parte della CPU. Durante il funzionamento, una CPU cercherà prima nella cache dei registri della CPU una copia di tutti i dati da elaborare in operazioni di lettura, scrittura o spostamento, prima di esaminare la RAM e la memoria secondaria sui dischi rigidi. A partire dal 2011, la maggior parte delle CPU mantiene tre cache individuali. Le cache delle istruzioni riguardano l’esecuzione delle operazioni di recupero per istruzione, un buffer simile alla traduzione accelera le traduzioni degli indirizzi per gli indirizzi da virtuali a fisici e una cache di dati contiene un archivio gerarchico multilivello di dati che devono essere manipolati da un set di istruzioni del registro del processore.