Nell’articolo di oggi analizzeremo nel dettaglio il funzionamento del funzionamento del bus.
Negli articoli precedenti abbiamo visto:
- Come funziona una CPU: progetto di circuiti logici #0
- Come funziona una CPU: Flip-Flop SR asincrono #0.1
- Come funziona una CPU: Flip-Flop sincrono #0.1.1
- Come funziona una CPU: Flip-Flop D #0.1.2
- Come funziona una CPU: Flip-Flop Master-Slave #0.1.3
- Come funziona una CPU: Modello di Huffman #0.2
- Come funziona una CPU: progetto di circuiti sequenziali sincroni #0.2.1
- Come funziona una CPU: progetto dei circuiti logici #0.3
- Come funziona una CPU: porte logiche operanti su parole #0.3.1
- Come funziona una CPU: multiplexer #0.3.2
- Come funziona una CPU: decodificatore #0.3.3
- Come funziona una CPU: codificatore (encoder) #0.3.4
- Come funziona una CPU: codificatore prioritario (priority encoder) #0.3.4.1
- Come funziona una CPU: sommatore full-adder #0.3.5
- Come funziona una CPU: sommatore Ripple Carry Adder #0.3.5.1
- Come funziona una CPU: sommatore seriale #0.3.5.2
- Come funziona una CPU: Sommatore con carry-lookahead #0.3.5.3
- Come funziona una CPU: ALU spiegata in modo semplice #0.3.5.4
- Come funziona una CPU: comparatore #0.3.5.5
- Come funziona una CPU: registro a m-bit #0.3.6
- Come funziona una CPU: registro a scalamento (Shift Register) #0.3.6.1
- Come funziona una CPU: contatore semplice #0.3.7
- Come funziona una CPU: contatore asincrono (ripple counter) #0.3.7.1
- Come funziona una CPU: contatore sincrono #0.3.7.2
Permettono lo scambio di dati tra diversi componenti. Possono essere realizzati:
- all’interno del singolo IC (Integrated Circuit);
- su una piastra (per connettere dispositivi diversi);
- come interconnessione tra piastre (backplane);
Il generico dispositivo connesso a un Bus può:
- leggere i valori presenti sul Bus;
- scrivere sul Bus;
- leggere o scrivere a seconda dei momenti;
Ad ogni istante uno e un solo dispositivo tra quelli connessi in scrittura al Bus deve pilotarne il valore (onde evitare criticità al livello logico ma anche elettrico del circuito). Si pensi a 2 o più porte logiche le cui uscite sono connesse tra di loro e convergono ad un’unica uscita del circuito.
Quale valore verrebbe prodotto in uscita? Non essendoci una porta “pilota” dal momento che tutte le uscite sono collegate tra loro, il valore risultante da questa connessione è del tutto indeterminato (caso da evitare assolutamente)!
Pertanto, gli altri moduli connessi in scrittura al Bus devono assumere un valore particolare noto come Z (alta impedenza)
Ciascuna connessione modulo-Bus è mediata da un’apposita interfaccia munita di un segnale di Enable.
Quando l’Enable è pari a 0, l’interfaccia pone in alta impedenza le uscite del modulo corrispondente disconnettendolo dal Bus. Queste interfacce sono composte da dei Buffer Tri-State tanti quanto è il parallelismo dell’interfaccia.
Buffer Tri-State
I buffer che fungono da interfaccia verso il Bus sono detti “tri-state”. Possiedono n-ingressi di dato X, 1 ingresso di controllo ed n-uscite di dato Y.
Il valore di Y è:
- quello di X, se Enable = 1;
- Z, se Enable = 0;
Transceiver
Alcuni moduli (ad esempio i processori e le memorie) possono prevedere segnali bidirezionali che, a seconda dei momenti, si configurano in entrata o in uscita. In tal caso la connessione al Bus deve avvenire attraverso un dispositivo (denominato “transceiver”) che risolve i problemi esistenti dal punto di vista elettrico.
A seconda del valore dei segnali di controllo, i segnali dei transceiver connessi al Bus:
- leggono i valori provenienti dal Bus e li trasferiscono al modulo;
- scrivono sul Bus i valori provenienti dal modulo;
- assumono il valore Z;
Iscriviti ai nostri gruppi Telegram
Link utili