Fablab Wiki

BUS

Mini tutorial bus e scambio dati

Modifica


Per capire il funzionamento delle parti dopo, provo a dettagliare alcuni concetti.

Consiglio di guardarsi questa playlist rallentando un po' i video. Io stesso ho capito da lì i concetti principali.

Consigliati tutti i video, tolto il terzo, che se ne può fare a meno.

Registro

Un registro è una memoria, collegata alle altre parti del pc e alla cpu, su cui possiamo scrivere, salvare oppure leggere i dati. Il problema è che in un pc non abbiamo solo due componenti, uno che scrive e l'altro che legge, per cui basterebbe collegare l'output di uno all'input dell'altro. In un computer abbiamo tanti registri, unità di calcolo, memorie e contatori, ognuno che può ricevere dei dati oppure inviarli a un altro chip.

Bisogna trovare un modo per dire: "Ho cinque chip che possono scambiarsi dati, A,B,C,D e E. Ora voglio collegare l'uscita di D e salvarla dentro alla memoria B. Tutti gli altri (A,C,E) devono essere ignorati, e fare finta che non ci siano. Devo trovare un modo per considerarli come se non ci fossero, come se fossero temporaneamente scollegati dal circuito.

Un registro è una memoria che soddisfa queste proprietà, vediamole ora.

Memorizzazione

Dobbiamo poter memorizzare dei dati. Nelle giornate passate abbiamo visto il Latch Set Reset, che ci permette di tenere in memoria un bit.

Avevamo visto anche un tipo particolare di Latch, chiamato D-latch, che è composto da due pin di ingresso: uno per il segnale che vogliamo salvare, uno per impostare il latch in modalità scrittura o no.

Riferimento youtube, video 2 della playlist

Mettendo in cascata due chip D-latch, riusciamo a copiare un segnale da uno all'altro. Mettiamo l'uscita di un chip all'entrata dell'altro. Poi, sul secondo impostiamo il pin "Write" o "store", per attivare la memorizzazione, e il segnale in ingresso verrà ricordato in memoria.

Tuttavia così possiamo fare comunicare solo due componenti. Oltretutto, l'uscita del secondo chip va a perdersi e non è collegata a nulla, non ce ne facciamo molto.

Tre stati

I chip con uscita a tre stati, o "threestate", sono detti così perché l'uscita ha uno stato in più. Oltre che poter essere a livello basso (0 volt) o alto (5 volt), hanno un terzo stato speciale. In questo terzo stato speciale, l'uscita è come fosse scollegata dal resto del circuito. Questa modalità è anche detta "ad alta impedenza" e si può trovare chiamata così in rete.

Nell'introduzione dicevamo che ci serviva poter scollegare temporaneamente un chip dal circuito, quando non ci serve, e tenere collegati solo gli altri due chip che vogliamo far comunicare tra loro. Con questa modalità "threestate", possiamo farlo!

Clock

BUS

Un bus non è nient'altro che una serie di fili, uno per bit, che visitano tutti i componenti che vogliamo far comunicare tra loro.

Ogni componente ha sia l'entrata, sia l'uscita collegati ai fili del bus, e quindi a tutti gli altri. Normalmente, tutti i componenti hanno la memorizzazione spenta e l'output in modalità alta impedenza, quindi come fosse scollegato dal resto. Dopodiché, attiviamo l'output SOLO del chip da cui ci interessa leggere i dati. I fili del bus verranno "guidati" dall'uscita di quel chip che abbiamo scelto. Il segnale arriverà a tutti gli altri chip, ma noi attiviamo la memorizzazione SOLO del chip su cui ci interessa scrivere dei dati. In questo modo, tutti gli altri chip ignoreranno il bus.