1 of 40

BUS – Aspetti generali

Sistemi di Misura Distribuiti, AA 2025-2026

Francesco Santoni

2 of 40

Definizioni

  • BUS: insieme di collegamenti elettrici che consente a un numero variabile di dispositivi di comunicare minimizzando la complessità delle connessioni.
  • Vantaggi: riduzione della complessità (partizionamento), riduzione dei costi, versatilità ed espandibilità
  • Vincoli su:
    • Lunghezza (estensione fisica), a causa di attenuazioni e problemi di sincronismo (per soluzioni sincrone)
    • Numero e tipologia di dispositivi connessi
    • Colli di bottiglia potenzialmente introdotti da dispositivi lenti (latenze e data rate)
  • Vincoli concorrono a limitare la velocità massima del BUS
  • Linee: insieme di conduttori con funzionalità specifiche

3 of 40

Architettura di Neumann

Il concetto di Bus nasce con la macchina di Von Neumann

4 of 40

Architettura di Neumann

5 of 40

Architettura Harvard

Texas Instruments TMS320F28379D

6 of 40

Architettura Harvard

Si riferisce all’Harvard IBM ASCC-Mark I, 1944

7 of 40

Definizioni

  • Linee: insieme di conduttori con funzionalità specifiche
    • Linee di controllo: trasportano segnali di controllo richiesti dal protocollo (es. clock, ALE)
    • Linee indirizzi: trasportano informazioni che identificano sorgente e destinatario dell’informazione
    • Linee dati: trasportano i dati utili o istruzioni

    • Possibile multiplexing tra linee dati e linee indirizzi (economia circuitale, velocità ridotta)

Quando il processore trasferisce gli indirizzi su AD0-AD15, rende alto il pin ALE (Address Latch Enable) per indicare che le linee multiplate contengono l'indirizzo. Quando ALE diventa basso, i dati vengono trasferiti dopo aver inserito un certo ritardo di propagazione tra le operazioni.

8 of 40

Tipologie di BUS

  • Bus processore memoria (soluzioni dedicate)
    • Brevi (cm) e veloci (data rate >10 Gbyte/s)
    • Connette direttamente microprocessore (µP) e memoria
    • Ottimizzato per trasferimenti a blocchi (burst)
  • Backplane bus
    • Backplane: struttura di connessione interna ad uno chassis (decina di cm)
    • Insieme di connettori in cui i pin corrispondenti sono in corto tra loro
    • Consente di interconnettere parti di un sistema di misurazione/elaborazione (µP, memoria, periferiche, DAQ)
    • Data rate dell’ordine dei Gbyte/s
  • I/O Bus (Fieldbus, Ethernet, autom. ind., automotive, avionica ecc.)
    • Lunghezza elevata (m, fino a km)
    • Data rate variabile anche in funzione della distanza coperta (kbit/s-Gbit/s)
    • Consente la connessione di numerosi dispositivi eterogenei
    • Può inserirsi in un bus di backplane.

Una backplane PCIe

9 of 40

Tipologie di BUS

  • Architetture a bus singolo
    • Arbitraggio dei turni di accesso alla memoria di CPU e periferiche di I/O
    • Generalmente I/O hanno precedenza per evitare perdite di dati
    • In questo modo CPU perde cicli, dunque prestazioni rallentate
    • Tecnologia di riferimento: ISA (Industry Standard Architecture), 8/16 bit, velocità 8/16 MB/s

10 of 40

Tipologie di BUS

  • Architetture a bus singolo
    • A metà anni ’80 con la linea PS/2 IBM lancia architettura proprietaria MCA (Micro Channel Architecture), 16/32 bit, velocità 20/40 MB/s, tempo dopo fino a 80 MB/s
    • MCA Architettura proprietaria incompatibile con vecchie periferiche ISA
    • Produttori di periferiche continuano ad utilizzare ISA
    • IBM è costretta ad introdurre modelli basati su ISA nella linea PS/2
    • Fine anni ’80 EISA (Extended ISA), retrocompatibile ISA, 32-bit, 33 MB/s

11 of 40

Tipologie di BUS

  • Architetture a bus doppio
    • 1992 Intel lancia PCI (Peripheral Component Interconnect) e rende pubblici i brevetti per favorirne la diffusione
    • 32-64 bit, velocità da 133 fino 533 MB/s
    • CPU comunica con memoria mediante connessione veloce dedicata
    • Bridge PCI comunica direttamente con memoria e bus PCI
    • Bridge ISA per collegamento con vecchio bus ISA per vecchie periferiche

12 of 40

Tipologie di BUS

  • Architetture a bus multiplo

13 of 40

Definizioni

  • Bus seriale
    • I dati vengono trasmessi su una linea singola
  • Bus parallelo
    • I dati vengono trasmessi in parallelo su più piste fisiche
    • Es: il bus Peripheral Connect Interface (PCI) è un bus parallelo sincrono a 32 bit
  • Master
    • Dispositivi collegati al bus che possono inizializzare un trasferimento
  • Slave
    • Dispositivo passivo che attende richieste

14 of 40

Tipologie di BUS

  •  

15 of 40

Funzionamento di un bus

  • Comunicazione avviene usualmente con approccio Master-Slave (a volte peer-to-peer)
  • Master: elemento che inizia la transazione richiedendo un servizio (in lettura o in scrittura)
  • Slave: risponde ove possibile alla richiesta del Master
  • In un sistema di calcolo, è inefficiente utilizzare la CPU come unico Master del bus (busy waiting per I/O)
  • Sistemi di elaborazione moderni sono multimaster (CPU, Hard Drive, Memory Controller, Scheda Grafica)

Master

Slave

Control: Master avvia lettura

Dati: immessi da Slave

Es: Master avvia lettura interrogando uno Slave

16 of 40

Bus sincrono

  • Bus sincrono
    • La linea di controllo include un segnale di clock
    • Il clock temporizza tutte le operazioni, interfaccia semplice
    • Vincolo: dimensionamento del clock su dispositivo più lento tra quelli connessi
    • Ipotesi implicita: il clock si propaga istantaneamente a tutti i dispositivi connessi al bus
    • clock skew se il ritardo di propagazione diviene comparabile con il periodo di clock
    • Es: in una motherboard di circa d=30 cm di lato, il tempo di propagazione massimo del segnale elettrico τ=d/c è di circa 1 ns.
      • Clock a 10 MHz: TC=100 ns>>τ
      • Clock a 100 MHz: TC=10 ns>>τ (PCI: 133 MHz!)
      • Clock a 1 GHz: TC=1 ns≅τ , possibile clock skew.

17 of 40

  • Bus asincrono
    • Non viene trasmesso un segnale di clock,
    • Dispositivo ricevente ricostruisce il clock a partire dai dati trasmessi (sincronizzazione)
    • La velocità di trasmissione dipende dai dispositivi di volta in volta interessati, scompare collo di bottiglia (limite: banda passante del collegamento)
    • clock skew assente, scompare il relativo vincolo sulla alla lunghezza del bus (vincoli possono dipendere da altri fattori, ad esempio dalla attenuazione, dal rumore di canale, e dalla gestione delle collisioni)
    • Richiesto protocollo di handshaking (scambio di richieste ed acknowledgement tra i nodi coinvolti)
    • Es: PCI Express, Gigabit Ethernet.

Bus asincrono

18 of 40

Definizioni

  • Transaction (transazione): insieme ordinato di operazioni che accompagna la comunicazione tra due dispositivi connessi al bus
  • Fasi tipiche di una transazione:
    1. Fase di arbitraggio: si stabilisce quale dispositivo utilizza il bus)
    2. Fase di indirizzamento: si inviano i comandi di read/write e si specifica l’indirizzo da cui leggere o verso cui scrivere i dati
    3. Fase dati: trasferimento dell’informazione utile
    4. Fase di acknowledgement o handshaking: se previsto, viene trasmesso un messaggio di conferma
  • Overhead: fasi accessorie e relativo consumo di risorse (es: tempo) legato a fasi della transazione necessarie ma diverse dalla fase dati (es: fasi 1,2, e 4 se presente)

19 of 40

Definizioni

  • Payload: informazione utile da trasferire (nella fase 3)
  • Stato di riposo (Idle State): stato in cui si trovano le linee quando non sono impegnate in alcuna transazione (Es: stati floating, stati ad alta impedenza)
  • Stati di attesa (Wait State): condizioni di attesa che possono crearsi durante una transazione, a causa della differente velocità di lettura/scrittura dei dispositivi coinvolti (Es: CPU a 1 GHz, Memoria ha tempo di accesso pari a 100 ns: lettura CPU-memoria richiede circa 100 cicli di clock di attesa alla CPU)
  • Trasferimento a blocchi (burst): trasferimento di più payload durante la fase dati di una singola transazione, evitando l’overhead associato a fasi di indirizzamento successive a quella iniziale, ovvero più blocchi trasferiti in sequenza senza ripetere indirizzamento ed handshaking per ogni blocco.

20 of 40

Definizioni e metriche prestazionali

  • NADDR: numero di byte trasferiti durante la fase indirizzi di una transazione
  • ND: numero di byte trasferiti durante la fase dati di una transazione
  • NHSK: numero di byte trasferiti durante la fase di handshake di una transazione
  • NT: numero di byte trasferiti in una transazione (NT = NADDR + ND + NHSK)

  • TADDR , TD, THSK: durata della fase indirizzi, dati, e handshake di una transazione
  • TT: durata complessiva di una transazione (TT = TADDR + TD + THSK)
  • TTOT: tempo intercorrente tra l’inizio di due transazioni consecutive (comprende tempo di inattività TIDLE tra due transazioni consecutive)
  • TL : tempo di latenza, esprime il ritardo tra la richiesta di un dato da parte di un dispositivo e l’istante in cui il dato è disponibile sul bus (può dipendere dallo stato del μP).
  • NB: in un bus sincrono, tutti i tempi sono multipli del periodo di clock TC

TADDR

TD

THSK

t

TIDLE

TTOT

TADDR

TD

THSK

TT

TT

21 of 40

Definizioni e metriche prestazionali

  • Banda effettiva di impiego DTBW (data transfer bandwidth) : numero di byte trasferiti per unità di tempo

  • Banda massima DTBWMAX: numero di byte trasferiti per unità di tempo in assenza di pause nella trasmissione

  • Throughput TP: numero di byte di payload trasferiti per unità di tempo

  • Efficienza dati ED: frazione di dati utili trasferiti in una transazione

  • Efficienza temporale ET: frazione temporale in cui il bus è effettivamente utilizzato

  • Efficienza E: frazione di dati trasferibile rispetto al massimo teoricamente ottenibile

TADDR

TD

THSK

t

TIDLE

TTOT

TADDR

TD

THSK

TT

TT

22 of 40

Funzionamento di un bus

  • In un sistema multimaster più nodi possono iniziare una transazione, necessita uno schema di arbitraggio per evitare (o gestire…) le collisioni.
  • Collisione: accesso simultaneo al mezzo trasmissivo condiviso effettuato da due o più dispositivi
  • Regole di accesso (bus arbitrato):
    • Ogni Master richiede l’accesso al bus
    • Ogni Master attende una autorizzazione prima di occupare il bus
    • Ogni Master libera la risorsa a fine utilizzo segnalandolo
  • Possibili diversi schemi di arbitraggio
  • Requisiti:
    • Priorità: deve essere stabilito un sistema di precedenze non ambiguo
    • Fairness: dispositivi a bassa priorità devono poter ottenere accesso al bus
    • Overhead: minimizzare il tempo necessario ad autorizzare un Master ad accedere al bus

23 of 40

Funzionamento di un bus

  • Possibili approcci:
  • Statico: assegnazione a divisione di tempo, arbitraggio non necessario (poco flessibile, inadatto a trasmissioni burst)
  • Dinamico: possibili diverse soluzioni, che realizzano compromessi tra fairness, overhead, complessità, prestazioni (efficienza)
    • Arbitraggio centralizzato
      • Daisy Chain
      • Polling
      • Parallelo
    • Arbitraggio distribuito
      • Autoselezione
      • Rilevamento di collisione

24 of 40

Funzionamento di un bus

  • Daisy Chain
    • BusArbiter attiva segnale di Grant se il bus è libero
    • Ogni dispositivo propaga segnale di Grant solo se non deve accedere al bus
    • Priorità dettata dalla posizione (dispositivi vicini all’arbitro hanno priorità elevata) Fairness limitata
    • Semplice realizzazione
    • Poco flessibile e lento

BUS

Arbiter

25 of 40

Funzionamento di un bus

  • Daisy Chain con priorità
    • Basato su linee con diversa priorità
    • Il master controlla su quali linea viene fatta richiesta e quali rilasciate.

26 of 40

Funzionamento di un bus

 

27 of 40

Funzionamento di un bus

  • Parallelo (richieste indipendenti) Es. PCI
    • Un master asserisce sulla propria linea Request
    • Tra i vari Request asseriti, il controller seleziona il master che può utilizzare il bus asserendo il rispettivo Grant.
  • Vantaggi: velocità, perché la selezione del master è immediata, non c’è polling
  • Svantaggio: richiede due linee indipendenti Grant e Request per ogni master

28 of 40

Funzionamento di un bus

  • Non necessita di arbitro
  • Quando nessun dispositivo richiede il bus, la linea di arbitraggio è asserita e si propaga a tutti i dispositivi
  • Quando un dispositivo richiede il bus
    1. Invia una richiesta
    2. Verifica se il bus è libero leggendo la linea Busy
    3. Se In è asserito, il dispositivo diventa master, nega Out e asserisce Busy
    4. Se In non è asserito, non diventa master e nega Out

Arbitraggio distribuito ad autoselezione (Es: NuBus Apple)

29 of 40

Funzionamento di un bus

  • Esempio:
    1. Master 4 sta usando il bus. Busy è asserito. In4 è asserito
    2. Master 2, con priorità più alta, vuole accedere al bus
    3. Master 2 nega Out2, la negazione si propaga a tutti i dispositivi successivi
    4. Master 4 rileva che In4 è negato, dunque nega Busy, ma mantiene alto Request se ancora non ha terminato le proprie operazioni.
    5. Master 2, dopo aver atteso la negazione di Busy, asserisce a propria volta Busy ed inizia le proprie operazioni
    6. Per evitare che i master a bassa priorità attendano troppo, si programmano i master ad alta priorità ad attendere dei cicli appositamente per dare spazio ai dispositivi a bassa priorità.

Arbitraggio distribuito ad autoselezione (Es: NuBus Apple)

30 of 40

Funzionamento di un bus

  • Arbitraggio distribuito a rilevamento di collisione (Es:IEEE-802.3 Ethernet)
  • Requisito: i dispositivi connessi al bus devono essere in grado di rilevare lo stato del canale (busy, idle) e l’insorgenza di collisioni
    1. Se un dispositivo vuole accedere al bus e quest’ultimo è libero (idle), il dispositivo avvia la trasmissione
    2. Se un altro dispositivo ha iniziato a sua volta a trasmettere, si verifica una collisione, rilevabile da entrambi i nodi
    3. In caso di collisione entrambi i nodi interrompono la trasmissione, e attendono un intervallo di tempo pseudocasuale prima di tentare nuovamente la trasmissione
  • Soluzione concettualmente semplice
  • Difficile garantire priorità
  • Difficile garantire determinismo
  • In presenza di traffico intenso, si verificano collisioni frequenti che riducono fortemente l’efficienza del bus

31 of 40

Funzionamento di un bus

  • Token Bus. Es. IEEE 802.4, Profibus
  • I dispositivi collegati al bus formano un anello logico
  • Ogni dispositivo conosce gli indirizzi dei dispositivi precedente e successivo nell’anello logico
  • Un dispositivo ha accesso in broadcast al bus quando riceve il token cioè un unità di informazione che gli segnala la disponibilità del bus
  • Terminate le operazioni, il dispositivo rilascia il token al dispositivo successivo

  • Vantaggi
    • Permette di connettere molti dispositivi
    • Garantisce che tutti i dispositivi abbiano accesso al bus
    • Se si specifica un tempo entro cui il token deve essere rilasciato, si garantisce determinismo
  • Svantaggi
    • Bassa velocità

32 of 40

Incremento dell’efficienza di bus multimaster

  • Arbitraggio multimaster: durante l’esecuzione di una transazione, si effettua l’arbitraggio della transazione successiva.

Arbitraggio 1

Indirizzi 1

Dati 1

Arbitraggio 2

Indirizzi 2

Dati 2

t

t

Arbitraggio 1

Indirizzi 1

Dati 1

Arbitraggio 2

Indirizzi 2

Dati 2

33 of 40

Incremento dell’efficienza di bus multimaster

  • Bus parking: un dispositivo mantiene l’accesso al bus ed effettua transazioni multiple finché un altro dispositivo non lo richiede a sua volta.

Arbitraggio 1

Indirizzi M1

Dati M1

Indirizzi M1

Dati M1

t

t

Arbitraggio 1

Indirizzi 1

Dati 1

Arbitraggio 2

Indirizzi 2

Dati 2

34 of 40

Incremento dell’efficienza di bus multimaster

  • Sovrapposizione della fase dati e della fase indirizzi: possibile se si hanno linee dati e indirizzi distinte

Arbitraggio 1

Indirizzi 1

Dati 1

Arbitraggio 2

Indirizzi 2

Dati 2

t

t

Arbitraggio 1

Indirizzi 1

Dati 1

Arbitraggio 2

Indirizzi 2

Dati 2

35 of 40

Incremento dell’efficienza di bus multimaster

  • Trasferimenti burst: si elimina la fase indirizzi per blocchi di dati trasmessi sequenzialmente

Arbitraggio 1

Indirizzi 1

Dati 1

Dati 2

t

Dati 3

t

Arbitraggio 1

Indirizzi 1

Dati 1

Arbitraggio 2

Indirizzi 2

Dati 2

36 of 40

Tavola riepilogativa

  • Osservazione: fino agli anni ‘90, i bus più veloci erano tipicamente bus paralleli sincroni (PCI, e derivati, come ad esempio i bus AGP), mentre i bus seriali erano tipicamente molto lenti (RS-xx).
  • Dagli anni ’90 in poi, lo sviluppo di bus seriali asincroni in tecnologia Low Voltage Differential Signaling (LVDS) ha consentito di raggiungere data rate dell’ordine del Gbit/s su collegamenti seriali, mentre lo sviluppo di bus paralleli sincroni a frequenze elevate è risultato ostacolato dal fenomeno del clock skew.
  • Attualmente, i bus cablati elettrici più veloci sono bus seriali asincroni in tecnologia LVDS (Gigabit Ethernet, AMD Hypertransport, Intel Quickpath, USB, Serial ATA…)

Opzione

Alte prestazioni e costi

Basso costo, basse prestazioni

Multiplexing linee

Line dati e indirizzi separate

Linee dati e indirizzi condivise

Larghezza della parte dati (# bit)

Più largo→più veloce e costoso

Più stretto→più lento ed economico

Dimensione del trasferimento

Trasferimento burst (più efficiente)

Trasferimento singolo (più semplice)

Master del bus

Master multipli (può richiedere arbitraggio)

Master singolo (non necessita arbitraggio)

37 of 40

Velocità di alcuni bus di uso comune

BUS

DTBW

PCIe 5 (16 link)

128 GB/s

Nvidia Nvlink (Quadro GP100/GV100)

100 GB/s

Quick Path Interconnect (16 link, 3.2 GHz)

25.6 GB/s

Hypertransport 3.1 (16 link 3.2 GHz)

25.6 GB/s

Gigabit Ethernet (400GBASE-KR2, ottico)

400 Gbit/s

Gigabit Ethernet (200GBASE-ER4, ottico)

200 Gbit/s

Gigabit Ethernet Cat8 (rame)

25-40 Gbit/s

SLI bridge

2 GB/s

Gigabit Ethernet Cat6a-Cat7 (rame)

10 Gbit/s

Serial ATA 3

6 Gbit/s-600 MB/s

USB 3.0

5 Gbit/s

Gigabit Ethernet Cat6 (rame)

1 Gbit/s

mouse USB

32 kbit/s

tastiera USB

16 kbit/s

(2000) (2022)

38 of 40

Velocità di alcuni bus di uso comune (2022)

39 of 40

Velocità di alcuni bus di uso comune (2022)

40 of 40

Riferimenti velocità BUS moderni

  1. https://www.intel.com/content/www/us/en/io/quickpath-technology/quickpath-technology-general.html
  2. https://web.archive.org/web/20080822010544/http://www.hypertransport.org/default.cfm?page=HyperTransportSpecifications
  3. https://www.nvidia.com/en-us/design-visualization/nvlink-bridges/
  4. https://graphicsreport.com/nvlink/
  5. https://www.cablematters.com/pc-1354-160-cat-8-sftp-rj45-patch-cable.aspx
  6. https://www.synopsys.com/designware-ip/technical-bulletin/ethernet-dwtb-q117.html
  7. https://www.tripplite.com/products/ethernet-cable-types
  8. http://www.123seminarsonly.com/Seminar-Reports/019/Optical-Ethernet-overview.pdf
  9. https://en.wikipedia.org/wiki/Ethernet_physical_layer
  10. https://en.wikipedia.org/wiki/Serial_ATA#SATA_revision_3.0_(6_Gbit/s,_600_MB/s,_Serial_ATA-600)
  11. https://www.intel.com/content/www/us/en/io/serial-ata/serial-ata-developer.html
  12. https://en.wikipedia.org/wiki/USB_3.0
  13. https://www.pcworld.com/article/439655/usb-3-0-speed-real-and-imagined.html
  14. https://www.rambus.com/blogs/pci-express-5-vs-4/
  15. https://www.onecomputerguy.com/keyboard-polling-rate/
  16. https://www.pcworld.com/article/439655/usb-3-0-speed-real-and-imagined.html
  17. https://wiki.osdev.org/USB_Human_Interface_Devices
  18. https://blog.codinghorror.com/mouse-dpi-and-usb-polling-rate/
  19. https://wiki.osdev.org/Mouse_Input

Testo di riferimento per studio ed approfondimento:

Andrew S. Tanenbaum, Structured computer organization, sesta edizione, Pearson, 2013