I registri sono insiemi di celle elementari che memorizzano parole ( byte, ecc. ).
Si tratta di circuiti statici, nel senso che, finchè sono alimentati, non perdono i dati (contro le memorie dinamiche che hanno bisogno di periodici refresh di riscrittura dei dati), e trovano diversi impieghi come all'interno delle cpu per memorizzare i dati elaborati o da elaborare, nelle periferiche di I/O per memorizzare i bit e disimpegnare la cpu, nella serializzazione per la comunicazione a distanza, nei sistemi digitali sequenziali, ecc..
Ovviamente l'ingresso di un registro si utilizza in fase di scrittura, l'uscita in fase di lettura. Si distinguono 4 categorie in base alla modalità di scrittura e lettura dei dati.
REGISTRI A SCORRIMENTO SISO (serial input, serial output)
Scrittura e lettura sono seriali.
Sono blocchi di memoria con un ingresso ed una uscita, quindi poco impegnativi per il numero di pin.
Sono formati da n FFD con l'uscita Q dell'uno collegata all'ingresso D dell'altro ed il clock in comune: quindi sono sistemi sincroni.
Ad ogni fronte del clock l'unico bit di ingresso entra nel primo FF, i bit interni scorrono da un FF al successivo e l'uscita si aggiorna con il penultimo bit che scorre nell'ultimo.
Per leggere l'intera memoria bisogna applicare n fronti attivi del clock.
Versioni migliorative prevedono:
il ritorno dell'uscita in ingresso per non perdere i dati in seguito alla lettura (tramite un mux, all' ingresso si può applicare in lettura l'uscita, in scrittura il nuovo dato)
lo scorrimento in entrambi i versi (il linguaggio C prevede gli operatori di scorrimento << , >>)
REGISTRI A SCORRIMENTO SIPO
Scrittura seriale e lettura parallelo/seriale.
Rispetto al caso precedente le singole uscite di ogni FF sono portate anche all'esterno. Sono utili nella ricezione dei dati seriali e nella loro conversione in parallelo per elaborarli successivamente come blocchi di bit (byte..).
ES. Scaricare i datasheet 74AHCT164 8-bit serial-in/parallel-out shift register
e interpretare:
1. General description
2. Features
4. Functional diagram
Fig 4. Logic diagram + Table 2. Pin description
6. Functional description
REGISTRI A SCORRIMENTO PISO
Scrittura parallela e lettura seriale.
In questo caso la scrittura avviene tramite un ingresso esterno per ogni singolo FF e la lettura attraverso l'uscita dell'ultimo FF grazie allo scorrimento. Consentono la serializzazione dei dati, ad es. in trasmissione.
Per non perdere i dati in seguito alla lettura, un mux deve consentire ad ogni ingresso D dei vari FF di ricevere il dato esterno o l'uscita del FF precedente.
Per la scrittura è possibile più semplicemente usare gli ingressi asincroni, clear e preset, ma il sistema diventa asincrono.
REGISTRI A SCORRIMENTO PIPO
Si tratta di n FF tipo D che hanno in comune solo il clock. La scrittura e la lettura avvengono in parallelo sugli opportuni terminali. Si tratta sostanzialmente di buffer digitali.
Il seguente video mostra per le quattro tipologie una analogia meccanica con il nastro scorrevole