Bus di collegamento di un calcolatore

I vari blocchi funzionali interni al PC sono collegati in parallelo tramite i bus. La struttura a bus, invece di collegare fra loro tutti gli elementi, permette di utilizzare un’unica connessione a cui i blocchi accedono a due a due in tempi diversi. Ciò consente una notevole riduzione dei collegamenti, e offre il vantaggio di permettere successive modifiche semplicemente collegando le ulteriori nuove unità al bus già esistente.

Nei sistemi a microprocessore si hanno tre tipi di bus:

  • bus indirizzi;
  • bus dati;
  • bus di controllo.

Nell’immagine raffigurata è riportata la struttura di un microprocessore con l’indicazione dei bus caratteristici e la direzione dei segnali.

 

BUS DATI – DATA BUS

Il bus dati (o bus dati di sistema) è il canale di comunicazione che collega le varie unità di un calcolatore e viene utilizzato per trasferire i dati (istruzioni dei programmi e relativi dati) in formato binario (i bit rappresentati dagli stati logici 0/1).

Il bus dati è costituito da più linee, per fare un paragone è una strada a più corsie: maggiore è il numero di corsie e maggiore sarà il flusso dei mezzi di trasporto; nel bus dati, maggiore è il numero di linee e maggiore sarà la quantità di informazioni che può transitare allo stesso tempo.

Per esempio, consideriamo un bus dati da 8 linee; lungo ogni linea viaggi un bit e quindi complessivamente viaggiano 8 bit (equivalenti a 1 Byte). Pertanto, un bus dati a 8 bit permette la trasmissione di 1 Byte alla volta. Un bus dati a 16 bit permette la trasmissione di 2 Byte alla volta, e così via.

Si parla pertanto di parallelismo del bus dati che in qualche modo denota la potenza del calcolatore.

NB anche all’interno del microprocessore esiste un bus dati (bus dati interno) che in generale è costituito da un differente numero di linee del bus dati di sistema.

NB Le trasmissioni avvengono sempre fra un’unità o memoria e il processore. Il processore è quindi sempre coinvolto nelle trasmissioni.

NB la trasmissione di dati coinvolge solo due unità alla volta: la CPU e una unità di I/O, la CPU e la memoria RAM. Pertanto lungo il bus dati transitano una sola informazione alla volta…

NB Operazioni di lettura: i dati vengono trasportati da una cella della memoria a un registro del processore; operazione di scrittura: i dati vengono trasportati dal processore alla memoria (memorizzazione dei dati).

 

NB Per aumentare la velocità di un calcolatore si può aumentare la quantità di dati inviati (badwidth) al secondo o ampliando il numero di linee del bus dati. Si può fare di nuovo il paragone con una strada: per aumentare il traffico (aumentare il numero di veicoli che transitano lungo una strada in un determinato tempo) si può aumentare la velocità dei veicoli o aggiungere più corsie o entrambe le cose.

 

BUS INDIRIZZI – ADDRESS BUS

Il bus indirizzi è costituito, come il bus dati, da un certo numero di linee che trasportano l’indirizzo della cella di memoria in cui la CPU va a scrivere o leggere un dato. La RAM è costituita da una sequenza identificate da un numero (0, 1, 2, N-1) indicante appunto l’indirizzo; nella cella viene scritto o letto un dato (istruzione del processo in esecuzione o dato su cui il processo lavora). Un bus indirizzi da 16 bit, pertanto, permette di indirizzare 216 celle di memoria. Se ogni cella ha una dimensione di 1 Byte, possiamo allora determinare la grandezza massima di memoria allocabile ovvero nel nostro caso 216 Byte = 26 * 210 Byte = 64 KByte.

Con un bus indirizzi da 20 bit è possibile installare una memoria grande al massimo 1 MByte, sempre che le celle siano da 1 Byte.

Per capire l’utilità del bus indirizzi si può fare la stessa analogia stradale. Se il bus dati è la strada (l’autostrada) e la sua dimensione è equivalente al numero di corsie, il bus indirizzi si riferisce al numero civico o indirizzo. La dimensione dell’address bus è equivalente al numero di cifre nell’indirizzo di casa. Per esempio, se vivete in una strada nella quale l’indirizzo è stato limitato a un numero a due cifre – base 10 – non ci possono essere più di 100 indirizzi distinti (00-99) per quella strada (102). Aggiungete un’altra cifra e il numero di indirizzi disponibili sale a 1000 (000-999), o 103.

I computer usano il sistema di numerazione binaria (base 2), quindi un numero a due cifre fornisce solo quattro indirizzi unici (00, 01, 10 e 11), calcolati come 22. Un numero di tre cifre fornisce solo otto indirizzi (000-111), che è 23.

 

BUS DI CONTROLLO – CONTROL BUS

Il bus di controllo regola lo spostamento dei dati che avviene attraverso i bus precedentemente descritti. Il bus di controllo è costituito da un insieme di linee che collegano il processore alle altre unità. Tipici segnali che transitano lungo questo bus sono quelli che consentono di selezionare l’unità coinvolta in un trasferimento (sorgente e destinazione), di definire la direzione dello scambio (Read/Write, lettura/scrittura), il segnale di Reset, il Clock, i segnali per il DMA, etc.

 

In analogia con l’esempio stradale il bus di controllo può essere immaginato come il sistema che regola il verso con cui i veicoli possono viaggiare lungo una corsia: in una direzione o in quella opposta. Possiamo quindi paragonarli a dei semafori intelligenti che regolano non tanto il traffico ma il verso di percorrenza dei veicoli. Il paragone non è del tutto corretto in quanto il bus di controllo identifica anche quale sia l’unità convolta nella trasmissione dei dati (una periferica o una memoria) assieme alla CPU; in questo senso possiamo immaginare il bus di controllo a uno scambio ferroviario la cui funzione è quella di attivare determinati percorsi che uniscono due stazioni da mettere in comunicazione.