Tutte le componenti di un calcolatore devono essere connesse. Abbiamo tipi diversi di connessione per diversi tipi di componente

La linea corrisponde a solo un bit, quando c’è il fascio significa che ci possono essere più linee.
Un BUS è un insieme di linee che possono essere sia fisiche che non, e può essere interno o esterno.
Ogni linea (“filo”) del bus può portare un solo bit (0-1) e possono essere suddivise in 3 gruppi di linee:

Se presento un’architettura con 8 linee indirizzo, sto parlando di un’architettura a 8 bit: quindi posso rappresentare 2^8 locazioni di memoria (indipendentemente dalla grandezza della memoria) o dispositivo di I/O (limite indirizzi). Nella stessa ottica, quando la CPU vuole leggere il contenuto di una locazione di memoria a 16bit, sarebbe opportuno che la linea dati del BUS sia almeno grande quanto tutta la locazione (o, meglio, dell’istruzione).
Inoltre, l’utilizzo del BUS è riservato di volta in volta ad un solo componente che lo usa: cioè nel momento in cui un modulo (CPU, Memoria, I/O) sta utilizzando il BUS nessuno degli altri componenti può utilizzarlo. A questo proposito posso avere dei problemi quando tratto moduli con velocità molto diverse: la soluzione è quella ovviamente di utilizzare un’architettura a BUS Multipli. Di solito la Cache viene implementata direttamente nel chip della CPU (poiché buffer utilizzato dalla CPU e memoria veloce per le istruzioni), mentre le altre componenti vengono suddivise in base alla loro velocità e collegati con dei BUS in base a quella velocità. I collegamenti tra BUS vengono poi svolti con dei bridge e interfacce che ne controllano l’accesso.

Dato l’elevato numero di componenti collegate al BUS, le varie richieste provenienti dai vari moduli, che potrebbero portare a conflitto, devono essere in qualche maniera filtrate e arbitrate: c’è quindi una politica di arbitraggio, implementata via hardware, che decide chi ha priorità nell’uso del BUS e ne gestisce il controllo. Inoltre, tutte le azioni svolte tramite BUS vengono temporizzate tramite un clock: in particolare le azioni vengono svolte nel fronte ascendente del ciclo di clock.