Direzionalità del bus dati: unidirezionale (simplex) vs bidirezionale (duplex) nei sistemi elettronici
Modalità di comunicazione del bus dati
Un bus dati può essere progettato per flusso di dati unidirezionale o bidirezionale:
Bus dati unidirezionale (simplex)
- I dati fluiscono in una direzione fissa solo.
- Necessari bus separati per la direzione opposta (es. bus di lettura dedicato + bus di scrittura).
- Utilizzato in: Interfacce periferiche semplici, linee dati display (CPU → display), linee di output sensori, registri solo-scrittura.
- Logica di controllo più semplice; nessun arbitrato necessario.
Bus dati bidirezionale (duplex)
- I dati fluiscono in entrambe le direzioni sugli stessi fili—time-multiplexed.
- Richiede buffer tri-stato (alta-Z quando non guidano) e controllo direzione (segnale lettura/scrittura).
- Standard in: Bus CPU-memoria (D0-D63), PCI/PCIe (coppie di corsie), USB, SATA, memoria DDR, bus di sistema microprocessore.
- Più complesso ma riduce numero di pin, tracce PCB, costo.
Half-Duplex vs Full-Duplex
- Half-Duplex: Bidirezionale ma una direzione alla volta (es. RS-485 2 fili, bus bidirezionale a corsia singola).
- Full-Duplex: Bidirezionale simultaneo (corsie TX/RX separate — PCIe, USB 3.x, SATA, RS-485 4 fili).
Pratica moderna
Quasi tutti i moderni bus di sistema (DDR, PCIe, USB, Ethernet, NVLink) sono coppie differenziali seriali full-duplex. I bus bidirezionali paralleli (ISA, PCI, FSB) sono legacy. Le cache interne della CPU usano ampie porte di lettura/scrittura unidirezionali.