Modos de comunicação de barramento de dados
Um barramento de dados pode ser projetado para fluxo de dados unidirecional ou bidirecional:
Barramento de Dados Unidirecional (Simplex)
- Dados fluem em uma direção fixa apenas.
- Barramentos separados necessários para direção oposta (ex.: barramento leitura dedicado + barramento escrita dedicado).
- Usado em: Interfaces periféricas simples, linhas de dados de display (CPU → display), linhas de saída de sensor, registradores write-only.
- Lógica de controle mais simples; sem arbitragem necessária.
Barramento de Dados Bidirecional (Duplex)
- Dados fluem em ambas direções sobre os mesmos fios — multiplexados no tempo.
- Requer buffers tri-state (high-Z quando não dirigindo) e controle de direção (sinal read/write).
- Padrão em: Barramentos CPU-memória (D0-D63), PCI/PCIe (pares de lanes), USB, SATA, memória DDR, barramentos de sistema de microprocessadores.
- Mais complexo mas reduz contagem de pinos, trilhas PCB, custo.
Half-Duplex vs. Full-Duplex
- Half-Duplex: Bidirecional mas uma direção por vez (ex.: RS-485 2-fios, barramento bidirecional single-lane).
- Full-Duplex: Bidirecional simultâneo (lanes TX/RX separadas — PCIe, USB 3.x, SATA, RS-485 4-fios).
Prática Moderna
Quase todos barramentos de sistema modernos (DDR, PCIe, USB, Ethernet, NVLink) são pares diferenciais seriais full-duplex. Barramentos paralelos bidirecionais (ISA, PCI, FSB) são legados. Caches internos CPU usam portas leitura/escrita unidirecionais largas.