Salta al contenuto
Note per Studenti Bus e interconnessione

Bus e interconnessione

In questa pagina 6

Un bus è un insieme di linee condivise che collega due o più dispositivi. Un solo dispositivo per volta può trasmettere, altrimenti i segnali si sovrappongono. Il bus di sistema collega CPU, memoria e moduli di I/O.

Le tre classi di linee

Linee Cosa trasportano Effetto della loro ampiezza
dati i dati e le istruzioni trasferiti con 32 linee si trasferiscono 4 byte per ciclo; con un bus da 8 bit una parola da 32 bit richiede 4 trasferimenti
indirizzi la sorgente o la destinazione del dato (cella di memoria o porta di I/O) con kk linee si indirizzano 2k2^k locazioni: 24 linee → 16 M locazioni, 32 linee → 4 G
controllo comandi e temporizzazione —

Segnali di controllo tipici: lettura/scrittura memoria, lettura/scrittura I/O, conferma di trasferimento (acknowledge), richiesta e concessione del bus, richiesta e conferma di interrupt, clock, reset.

Uso del bus: chi vuole trasmettere chiede il bus, lo ottiene e invia; per ricevere chiede il bus, invia la richiesta all'altro modulo e attende il dato.

Arbitraggio

Quando più moduli vogliono il bus serve un arbitro:

  • centralizzato: un controllore unico (arbitro) concede il bus;
  • distribuito: ogni modulo ha la sua logica di accesso e i moduli cooperano.

Bus singolo e bus multipli

Con molti dispositivi su un solo bus aumentano il ritardo di propagazione e la contesa, e il bus diventa il collo di bottiglia. Soluzione: gerarchia di bus.

  • bus locale tra CPU e cache;
  • bus di sistema tra cache/controllore e memoria principale;
  • bus di espansione per l'I/O, collegato tramite un'interfaccia (bridge) che fa da buffer: le periferiche lente non rallentano il traffico CPU–memoria.

Temporizzazione

  • Sincrona: un clock comune scandisce gli eventi; ogni operazione dura un numero intero di cicli. Semplice, ma tutti si adeguano al dispositivo più lento.
  • Asincrona: un evento segue il precedente tramite segnali di handshake (es. il master alza "lettura", lo slave risponde "dato pronto"). Dispositivi lenti e veloci convivono.

Interconnessioni punto a punto

I sistemi moderni sostituiscono il bus condiviso con collegamenti punto a punto seriali ad alta velocità (es. PCI Express, Intel QPI): niente arbitraggio su un mezzo comune, più trasferimenti in parallelo su collegamenti diversi.

Errori tipici

  • Confondere ampiezza del bus dati (quanti bit per trasferimento) e ampiezza del bus indirizzi (quanta memoria si indirizza).
  • Calcolare lo spazio di indirizzamento come 2k2k invece di 2k2^k.

Versione ripasso

Bus: linee condivise, trasmette un dispositivo per volta; il bus di sistema collega CPU, memoria e I/O.

  • Dati: 32 linee →\to 4 byte per ciclo (con 8 bit, 4 trasferimenti per una parola da 32 bit).
  • Indirizzi: kk linee →\to 2k2^k locazioni (24 →\to 16 M, 32 →\to 4 G).
  • Controllo: lettura/scrittura memoria e I/O, acknowledge, richiesta e concessione del bus, interrupt, clock, reset.
  • Arbitraggio: centralizzato (un arbitro) o distribuito.
  • Gerarchia: bus locale CPU-cache, di sistema verso la memoria, di espansione per l'I/O con un bridge che fa da buffer.
  • Sincrono: clock comune, tutti si adeguano al più lento. Asincrono: handshake, lenti e veloci convivono.
  • Punto a punto (PCI Express, QPI): collegamenti seriali, niente arbitraggio, più trasferimenti in parallelo.

Errori tipici: confondere ampiezza dei dati e degli indirizzi; 2k2k invece di 2k2^k.

Lezioni in cui compare

Teoria collegata