📌 I/O bus

O bus — аппаратная шина, предназначенная для обмена данными между CPU и внешними периферийными устройствами: storage, NIC, GPU, USB и др.

🧠 Как работает

Шина ввода-вывода связывает CPU с O Controller или напрямую с устройствами. Может быть:

  • Параллельной (устаревшие — ISA, PCI)
  • Последовательной (современные — PCIe, USB, Thunderbolt)

Управление осуществляется через:

  • O — устройства отображаются в адресное пространство
  • O — специальные инструкции и адреса ввода-вывода

Механизмы доступа:

  • DMA — прямой обмен с RAM без участия CPU
  • Interrupts — уведомление CPU об окончании операции
  • Polling — регулярная проверка состояния устройства

⚙️ Где применяется

УстройствоИспользуемая I/O шина
GPUPCIe
SSDSATA, NVMe (через PCIe)
NICPCIe
Keyboard, MouseUSB, 2
Audio DevicesUSB, PCI

📐 Примеры шин

ШинаТипПропускная способность
PCIПараллельнаяДо 133 MB/s
PCIeПоследовательнаяДо 64 GB/s (x16 Gen5)
USB 3.2ПоследовательнаяДо 20 Gbit/s
Thunderbolt 4ПоследовательнаяДо 40 Gbit/s

🧩 Взаимодействие компонентов


[CPU] ⇄ [I/O Bus] ⇄ [I/O Controller / Device]  
↕ ↕  
DMA Interrupts

✅ Преимущества

  • Универсальное подключение периферии
  • Разные протоколы на одной архитектуре
  • Поддержка расширения и масштабируемости

❌ Недостатки

  • Ограничения по пропускной способности (особенно в параллельных шинах)
  • Задержки и конфликт доступа при высокой загрузке
  • Требует координации с DMA, Interrupts, Cache