Registro (informatica)

Un registro (in inglese processor register), in informatica e nell'architettura dei calcolatori, è una piccola parte di memoria utilizzata per velocizzare l'esecuzione dei programmi fornendo un accesso rapido ai valori usati più frequentemente e/o tipicamente, i valori correntemente in uso in una determinata parte di un calcolo.

Descrizione

Il termine è usato spesso per riferirsi esclusivamente al gruppo di registri che possono essere direttamente indirizzati dalle istruzioni di input e output del microprocessore. Più propriamente, questi registri sono definiti "architected registers". Per esempio, nell'architettura x86 è disponibile un set di otto registri utilizzabili dalle istruzioni del linguaggio macchina, ma la CPU conterrà molti più registri per uso interno o con funzioni speciali.

I registri costituiscono il punto più alto della gerarchia della memoria, e sono il meccanismo più rapido per il sistema di manipolare i dati. I registri sono normalmente misurati in base al numero di bit che possono contenere (ad esempio, registri a 8 bit o registri a 32 bit). Attualmente i registri sono implementati normalmente con file dei registri, ma in passato sono stati implementati usando flip-flop individuali, memoria a nuclei di ferrite ad alta velocità, memoria thin film e vari altri modi.

La maggior parte delle moderne architetture dei computer (RISC, o più genericamente architetture load-store) è basata su un'architettura a pipeline che trae beneficio dal limitare l'accesso in memoria alle sole istruzioni load e store, utilizzando soltanto registri e costanti per l'esecuzione di tutte le altre istruzioni.

Classificazione

Classi di registri

Vi sono molte classi di registri:

I registri hardware a livello firmware sono simili ai registri dei processori, ma sono presenti esternamente alle CPU.

Registri del microprocessore

I registri del microprocessore forniscono un livello di memoria più veloce e ridotto rispetto alla memoria principale e svolgono principalmente le seguenti due funzioni:

Esempi

Il numero di registri varia significativamente tra le varie architetture in funzione dell'età dell'ISA e della tipologia di architettura: per esempio le architetture RISC tendono a essere dotate di un elevato numero di registri mentre le architetture CISC che sono mediamente più vecchie tendono ad avere un numero ridotto di registri anche se spesso gli ultimi processori dispongono di un elevato numero di registri nascosti che vengono utilizzati per implementare l'esecuzione superscalare dei programmi.

Processore Registri interi Registri FPU
Intel Core Duo88
Intel Core 2 Duo1616
Pentium 488
Pentium 4 con EM64T1616
Athlon 641616
Athlon MP88
Opteron 2401616
Itanium 2128128
UltraSPARC IIIi3232
POWER33232
MOS 650230

Voci correlate

Altri progetti

Collegamenti esterni

Controllo di autoritàLCCN (EN) sh85112381 · GND (DE) 4359667-8 · BNF (FR) cb13327089s (data) · J9U (EN, HE) 987007529436805171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica