Registri e contatori
In questa pagina 5
Registro parallelo
flip-flop D (vedi Latch e flip-flopReti sequenziali e retroazione; latch SR con porte NOR e stato proibito; latch SR e D abilitati dal clock; flip-flop D master-slave sensibile al fronte; flip-flop JK e T; tempi di setup e hold; clock e periodo minimo.Latch e flip-flop →) con lo stesso clock memorizzano una parola di bit. Per caricare solo quando serve si aggiunge un segnale Load: davanti a ogni flip-flop un multiplexerMultiplexer, decodificatore e codificatore; semisommatore e sommatore completo; sommatore a propagazione del riporto e suo ritardo, idea dell'anticipo del riporto; sommatore-sottrattore in complemento a 2 con rilevazione dell'overflow; comparatore.Circuiti combinatori notevoli → sceglie tra il nuovo dato (Load = 1) e il valore attuale (Load = 0). PC, IR, MAR, MBR sono registri di questo tipo.
Banco dei registri
I registri generali del processore (16 in ARM, 32 in MIPS) formano il banco dei registri (register file), tipicamente con:
- due porte di lettura: due numeri di registro selezionano, tramite due MUX a 16 o 32 ingressi, i due operandi;
- una porta di scrittura: un decoder dal numero del registro destinazione, insieme al segnale di abilitazione alla scrittura, attiva il Load di un solo registro.
Così un'istruzione come ADD r1, r2, r3 legge due registri e ne scrive un terzo nello stesso ciclo.
Registro a scorrimento
L'uscita di ogni flip-flop è l'ingresso del successivo: a ogni fronte il contenuto scorre di una posizione.
- Ingresso seriale, uscita parallela: converte una sequenza di bit ricevuti uno alla volta in una parola (ricezione seriale).
- Ingresso parallelo, uscita seriale: l'opposto (trasmissione).
- Scorrimento a sinistra/destra: moltiplicazione/divisione per 2 (vedi Aritmetica binariaSomma e sottrazione in binario, overflow per senza segno (riporto) e per complemento a 2 (segni), flag del processore, moltiplicazione per somme e scorrimenti, algoritmo di Booth, divisione, shift logici e aritmetici.Aritmetica binaria →).
Esempio a 4 bit, ingresso seriale a destra, sequenza 1, 0, 1, 1: .
Contatori
Contatore asincrono (ripple): flip-flop T con ; il clock del primo è il clock del sistema, quello di ognuno dei successivi è l'uscita del precedente. Semplice, ma i bit cambiano uno dopo l'altro: per un attimo compaiono valori intermedi sbagliati, e il ritardo cresce con il numero di bit.
Contatore sincrono: tutti i flip-flop hanno lo stesso clock. Il bit commuta quando tutti i bit meno significativi valgono 1:
Conteggio a 3 bit: 000, 001, 010, 011, 100, 101, 110, 111, 000, … (modulo ).
Contatore modulo N
Per contare da 0 a si riporta a zero il contatore quando arriva a (sincrono) o si progetta come automa (vedi Reti sequenziali e automi a stati finitiModello di una rete sequenziale sincrona (stato in flip-flop, logica di stato prossimo e di uscita); automi di Moore e di Mealy; procedimento di sintesi con esempio svolto di un riconoscitore della sequenza 11.Reti sequenziali e automi a stati finiti →).
Esempio: contatore modulo 6 con flip-flop D, stati 000…101.
| prossimo | |
|---|---|
| 000 | 001 |
| 001 | 010 |
| 010 | 011 |
| 011 | 100 |
| 100 | 101 |
| 101 | 000 |
| 110, 111 | indifferenti |
Dalla tabella (usando le indifferenze):
Controllo su 101: , , → 000 ✓. Su 011: , , → 100 ✓.
Usi: contatore di programma (il PC è un registro con incremento), divisori di frequenza (il bit di un contatore binario ha frequenza ), temporizzatori.
Errori tipici
- Pensare che in un contatore ripple tutti i bit cambino insieme.
- Dimenticare il segnale di abilitazione alla scrittura nel banco dei registri: senza, ogni ciclo sovrascriverebbe un registro.
Versione ripasso
Registro e banco
- Registro parallelo: flip-flop D (Latch e flip-flopReti sequenziali e retroazione; latch SR con porte NOR e stato proibito; latch SR e D abilitati dal clock; flip-flop D master-slave sensibile al fronte; flip-flop JK e T; tempi di setup e hold; clock e periodo minimo.Latch e flip-flop →); con Load un multiplexerMultiplexer, decodificatore e codificatore; semisommatore e sommatore completo; sommatore a propagazione del riporto e suo ritardo, idea dell'anticipo del riporto; sommatore-sottrattore in complemento a 2 con rilevazione dell'overflow; comparatore.Circuiti combinatori notevoli → sceglie nuovo dato o (PC, IR, MAR, MBR).
- Banco dei registri: due porte di lettura (MUX) e una di scrittura (decoder con abilitazione):
ADD r1,r2,r3legge due registri e ne scrive uno nello stesso ciclo. - A scorrimento: ogni flip-flop alimenta il successivo; scorrimento o (Aritmetica binariaSomma e sottrazione in binario, overflow per senza segno (riporto) e per complemento a 2 (segni), flag del processore, moltiplicazione per somme e scorrimenti, algoritmo di Booth, divisione, shift logici e aritmetici.Aritmetica binaria →). Ingresso 1, 0, 1, 1: .
Contatori
- Asincrono (ripple): flip-flop T con , il clock di ognuno è l'uscita del precedente; i bit cambiano uno dopo l'altro.
- Sincrono: il bit commuta quando i meno significativi valgono 1: , , , .
- Modulo 6 con flip-flop D, stati 000...101 (110, 111 indifferenti), automa (Reti sequenziali e automi a stati finitiModello di una rete sequenziale sincrona (stato in flip-flop, logica di stato prossimo e di uscita); automi di Moore e di Mealy; procedimento di sintesi con esempio svolto di un riconoscitore della sequenza 11.Reti sequenziali e automi a stati finiti →): 101 000; 011 100.
- Usi: PC, divisori di frequenza ( ha frequenza ).
Errori tipici: credere che nel ripple i bit cambino insieme; omettere l'abilitazione alla scrittura.