Bus di indirizzo vs Bus di dati
Secondo l'architettura del computer, un bus è definito come un sistema che trasferisce dati tra componenti hardware di un computer o tra due computer separati. Inizialmente, gli autobus erano realizzati utilizzando cavi elettrici, ma ora il termine bus è usato in modo più ampio per identificare qualsiasi sottosistema fisico che fornisca la stessa funzionalità dei precedenti bus elettrici. I bus per computer possono essere paralleli o seriali e possono essere collegati come multidrop, daisy chain o tramite hub commutati. Il bus di sistema è un bus singolo che aiuta tutti i componenti principali di un computer a comunicare tra loro. È composto da un bus indirizzi, un bus dati e un bus di controllo. Il bus dati trasporta i dati da memorizzare, mentre il bus indirizzi trasporta la posizione dove dovrebbe essere memorizzato.
Bus di indirizzo
Il bus di indirizzi è una parte del bus di sistema del computer dedicato alla specifica di un indirizzo fisico. Quando il processore del computer deve leggere o scrivere da o nella memoria, utilizza il bus di indirizzi per specificare l'indirizzo fisico del singolo blocco di memoria a cui deve accedere (i dati effettivi vengono inviati lungo il bus di dati). Più correttamente, quando il processore vuole scrivere dei dati nella memoria, asserisce il segnale di scrittura, imposta l'indirizzo di scrittura sul bus di indirizzi e inserisce i dati sul bus di dati. Allo stesso modo, quando il processore vuole leggere alcuni dati che risiedono nella memoria, asserisce il segnale di lettura e imposta l'indirizzo di lettura sul bus degli indirizzi. Dopo aver ricevuto questo segnale, il controller di memoria otterrà i dati dal blocco di memoria specifico (dopo aver controllato il bus di indirizzi per ottenere l'indirizzo di lettura) e quindi inserirà i dati del blocco di memoria sul bus di dati.
La dimensione della memoria che può essere indirizzata dal sistema determina la larghezza del bus dati e viceversa. Ad esempio, se la larghezza del bus di indirizzi è di 32 bit, il sistema può indirizzare 232 blocchi di memoria (che equivale a 4 GB di spazio di memoria, dato che un blocco contiene 1 byte di dati).
Bus dati
Un bus dati trasporta semplicemente i dati. I bus interni trasportano le informazioni all'interno del processore, mentre i bus esterni trasportano i dati tra il processore e la memoria. Tipicamente, lo stesso bus dati viene utilizzato per entrambe le operazioni di lettura/scrittura. Quando si tratta di un'operazione di scrittura, il processore inserisce i dati (da scrivere) sul bus dati. Quando è l'operazione di lettura, il controller di memoria riceverà i dati dal blocco di memoria specifico e li inserirà nel bus dati.
Qual è la differenza tra bus indirizzi e bus dati?
Il bus dati è bidirezionale, mentre il bus indirizzi è unidirezionale. Ciò significa che i dati viaggiano in entrambe le direzioni ma gli indirizzi viaggeranno solo in una direzione. Il motivo è che, a differenza dei dati, l'indirizzo è sempre specificato dal responsabile del trattamento. La larghezza del bus dati è determinata dalla dimensione del singolo blocco di memoria, mentre la larghezza del bus indirizzi è determinata dalla dimensione della memoria che deve essere indirizzata dal sistema.