registri


Nell'architettura dei calcolatori un registro (o registro del processore) è una piccola parte di memoria utilizzata per velocizzare l'esecuzione dei programmi fornendo un accesso rapido ai valori usati più frequentemente — tipicamente, i valori correntemente in uso in una determinata parte di un calcolo. La maggior parte delle moderne architetture dei computer (ma non tutte) sono basate sul principio di copiare i dati dalla memoria ai registri, operando su questi ultimi, e poi di copiare a loro volta i risultati nella memoria — la cosiddetta architettura load-store. Vi sono molte classi di registri:

  1. Registri di dati: sono usati per memorizzare numeri interi. Nelle CPU più semplici o più vecchie, uno speciale registro per i dati è l'accumulatore, usato per calcoli aritmetici.
  2. Registri di indirizzo: contengono gli indirizzi e sono usati per accedere alla memoria.
  3. Registro generico: può contenere sia dati che indirizzi.
  4. Registri floating-point: sono usati per memorizzare numeri a virgola mobile.
  5. Registri costanti: contengono dati a sola lettura (ad esempio zero, uno, pi greco, ecc.).
  6. Registri vettoriali: contengono dati utilizzati dalle istruzioni SIMD (Single Instruction, Multiple Data).
  7. Registri speciali: contengono dati interni della CPU, come il program counter, lo stack pointer e il registro di stato.
  8. Registro di istruzione: contiene l'istruzione corrente.
  9. Registri indice: sono usati per modificare l'indirizzo degli operandi.
In alcune architetture, vi sono dei registri specifici del modello di processore, che memorizzano dati e impostazioni del processore stesso. Essendo registri legati a caratteristiche peculiare di uno specifico modello, non è garantita la presenza o lo stesso funzionamento nelle generazioni successive di quel processore. Vi sono inoltre registri dedicati al "fetching" (trasferimento dalla RAM verso la CPU). I registri hardware a livello FIRMWARE sono simili ai registri dei processori, ma sono presenti esternamente alle CPU.

Tempi di esecuzione in cicli (stime): addizione: 3–4 (registri), 9+IE–25+IE (accesso in memoria) moltiplicazione: 70–118 (registri), 76+IE–143+IE (accesso in memoria) copia valori: 2 (registri), 8+IE–14+IE (accesso in memoria) salto "near": 11–15 (registri), 18+IE (accesso in memoria) salto "far": 15 (registri), 24+IE (accesso in memoria)

Created on ... febbraio 07, 2008