Un bus è un canale di comunicazione condiviso che permette lo scambio di dati, indirizzi e segnali di controllo tra i componenti di un calcolatore (CPU, memoria, I/O). È uno degli elementi fondamentali di un modello di architettura, perché coordina le operazioni e trasferisce informazioni tra i diversi dispositivi.


TIPOLOGIE

Bus dati

Il bus dati è il canale attraverso cui viaggiano i dati veri e propri tra CPU, memoria e periferiche. La sua larghezza, espressa in bit, determina quanti dati possono essere trasferiti in un singolo ciclo di comunicazione: un bus a 8, 16, 32 o 64 bit permette quindi di spostare quantità crescenti di informazioni per ogni operazione. In pratica, più è ampio il bus, maggiore è la quantità di dati che il sistema può elaborare simultaneamente.


Bus indirizzi

Il bus indirizzi trasporta gli indirizzi di memoria o di I/O che indicano alla CPU dove leggere o scrivere i dati. La sua larghezza definisce lo spazio di indirizzamento massimo che il sistema può raggiungere: ad esempio, un bus indirizzi a 32 bit consente di indirizzare fino a 4 GB di memoria. È quindi il bus che permette alla CPU di “puntare” alla posizione corretta all’interno della memoria.


Bus di controllo

Il bus di controllo trasmette tutti i segnali necessari a coordinare e sincronizzare le operazioni del sistema. Attraverso questo bus viaggiano comandi come lettura o scrittura, segnali di selezione dei dispositivi, notifiche di interrupt e impulsi di clock. È il canale che assicura che ogni componente sappia quando e come deve agire, mantenendo l’intero sistema in perfetta coordinazione.


INDIRIZZAMENTO

L’indirizzamento è il meccanismo attraverso cui la CPU seleziona quale componente del sistema deve partecipare a un’operazione di lettura o scrittura. Questo processo avviene sempre tramite il bus di sistema.

Durante un’operazione di accesso, la CPU:

  • pone un valore sul bus degli indirizzi
  • specifica il tipo di operazione sul bus di controllo (lettura o scrittura)
  • scambia i dati tramite il bus dei dati

Esempio:

In questo caso la CPU sta accedendo ad un indirizzo di memoria:

  • invia l’indirizzo 0000 sul bus degli indirizzi
  • invia il segnale READ sul bus di controllo
  • riceve il dato 001110 (corrispondente all’indirizzo 0000) dalla RAM, sul bus dei dati

Leggi qui per l’estensione sull’indirizzamento dei dispositivi di I/O.