📌 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 шина |
---|---|
GPU | PCIe |
SSD | SATA, NVMe (через PCIe) |
NIC | PCIe |
Keyboard, Mouse | USB, 2 |
Audio Devices | USB, 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