Шины. Системные ресурсы. Последовательные порты. Параллельные порты

1. Понятие и функциональные линии системной шины

Шина (Bus) — стандартизированная среда передачи сигналов, объединяющая процессор, память и периферийные устройства в единую систему.

Шина адреса (Address Bus)

Определяет физический адрес ячейки памяти или регистра ввода-вывода. Разрядность шины ($N$) задает адресуемое пространство $2^N$ байт (до 4 ПБ в x86-64).

Шина данных (Data Bus)

Двунаправленная магистраль передачи машинных слов. Определяет объем данных за цикл (64 бита в современных контроллерах памяти DDR).

Шина управления (Control Bus)

Служебные сигналы: стробы чтения/записи (MEMR#, MEMW#, IOR#, IOW#), готовность (READY#), запросы прерываний и сигналы синхронизации.

2. Иерархия шин в современном компьютере

Современный ПК использует многоуровневую иерархию шин с разделением по скоростям и задержкам:

  • Процессорная шина (Interconnect): Intel UPI / AMD Infinity Fabric — соединяет ядра, кэш L3 и системный агент с минимальными наносекундными задержками.
  • Локальная шина ввода-вывода: PCI Express — универсальная магистраль для GPU, быстрых NVMe SSD и сетевых карт.
  • Шина чипсетного линка: Intel DMI / AMD PCIe Link — связывает процессор с южным мостом (PCH/чипсетом).
  • Периферийные интерфейсы: USB, SATA, SAS, Thunderbolt — внешние и накопительные интерфейсы.
3. Топология: разделяемая шина против точка-точка

Разделяемая шина (ISA / PCI)

  • Все слоты физически подключены к общим дорожкам.
  • Централизованный арбитраж: REQ# и GNT#.
  • В единицу времени передает строго одно устройство.
  • Общая пропускная способность делится на всех (133 МБ/с в PCI).

Топология «точка-точка» (PCI Express)

  • Каждое устройство имеет выделенное прямое соединение с коммутатором (Root Complex).
  • Пакетная передача без взаимных блокировок.
  • Гарантированная полоса пропускания каждому узлу.
  • Полнодуплексный одновременный обмен (Rx / Tx).
4. Физический тупик параллельных шин: перекос фаз

Почему индустрия отказалась от параллельных шин в пользу последовательных?

Перекос фаз (Clock Skew)

Разница длин проводников даже в 1–2 мм приводит к тому, что фронты сигналов 32 параллельных бит приходят в разное время. На частотах >66 МГц время разброса превышает длительность такта!

Емкостная нагрузка и паразитные отражения

Каждый слот на общей параллельной шине создает емкостную неоднородность, вызывая отражение высокочастотных электромагнитных волн. Решение: дифференциальные последовательные линии PCIe (LVDS) со встроенным тактовым сигналом (Embedded Clock).

5. Эволюция шины PCI Express: поколения и скорость
Поколение PCIe Символьная скорость (GT/s) Канальное кодирование ПСП на 1 линию (x1) ПСП слота x16
PCIe 3.0 8.0 GT/s 128b/130b (~1.5% оверхед) ~0.985 ГБ/с (~1 ГБ/с) ~15.75 ГБ/с
PCIe 4.0 16.0 GT/s 128b/130b (~1.5% оверхед) ~1.969 ГБ/с (~2 ГБ/с) ~31.51 ГБ/с
PCIe 5.0 32.0 GT/s 128b/130b (~1.5% оверхед) ~3.938 ГБ/с (~4 ГБ/с) ~63.02 ГБ/с

Показатели приведены в одном направлении; в полнодуплексном режиме x16 суммарный поток удваивается (до 126 ГБ/с в PCIe 5.0).

6. Системные ресурсы: аппаратные прерывания (IRQ)

Классический PIC 8259A

  • Всего 15 линий прерываний (IRQ0–15).
  • Конфликты при разделении линий (IRQ Sharing).
  • Прерывание адресуется только одному монопольному процессору.

I/O APIC и Local APIC

  • 24 аппаратные линии в чипсете.
  • Адресация прерываний конкретным ядрам ЦП.
  • Поддержка симметричной многопроцессорности (SMP).
7. Прерывания нового поколения: MSI и MSI-X

Message Signaled Interrupts (MSI/MSI-X) — прерывания передаются не по физическим проводникам, а в виде транзакции записи в системную память по шине PCIe!

Преимущества MSI-X в высоконагруженных системах:

  • Поддержка до 2048 независимых векторов прерываний на одно устройство.
  • Receive Side Scaling (RSS): сетевая карта 100 GbE распределяет очереди пакетов по разным физическим ядрам процессора.
  • Устранение «шторма прерываний» (Interrupt Storm) на одном ядре.
  • Полное отсутствие физических линий прерываний и конфликтов совместного использования.
8. Прямой доступ к памяти (DMA) и IOMMU

DMA (Direct Memory Access) — передача массивов данных напрямую между памятью и периферией без загрузки процессора.

  • Legacy DMA (Intel 8237A): медленный контроллер чипсета, 7 каналов, ограничение блоков 64 КБ, адресное окно 16 МБ.
  • Bus Mastering (PCIe): устройство само генерирует циклы шины и выполняет запись/чтение оперативной памяти на полной скорости шины.
  • IOMMU (Intel VT-d / AMD-Vi): аппаратная трансляция адресов устройств в физические адреса ОЗУ, изоляция виртуальных машин и защита от несанкционированного прямого доступа к памяти.
9. Адресация: порты ввода-вывода (I/O) и MMIO

Изолированное I/O пространство

  • Объем: 64 Килобайта (адреса 0x0000–0xFFFF).
  • Инструкции процессора: IN и OUT.
  • Фиксированные адреса: COM1 (0x3F8), COM2 (0x2F8), LPT1 (0x378).
  • Аппаратные конфликты при совпадении адресов плат!

Memory-Mapped I/O (MMIO)

  • Регистры устройств проецируются в общую оперативную память.
  • Стандартные инструкции процессора: MOV.
  • Base Address Registers (BAR): бесконфликтное распределение окон BIOS/UEFI.
  • Above 4G Decoding / Resizable BAR: прямой доступ процессора ко всему объему VRAM GPU.
10. Последовательный интерфейс: UART и кадрирование

UART преобразует байты системной шины в последовательный поток импульсов по одной сигнальной линии передачи (Tx) и приема (Rx).

Структура асинхронного кадра (8-N-1):

  • Старт-бит: переход линии в 0 (синхронизирует приемник).
  • Биты данных: 8 бит (начиная с младшего значащего бита LSB).
  • Бит четности: опционально (None — отсутствует, Even/Odd).
  • Стоп-бит: 1 или 2 бита уровня 1 (завершение кадра).

На передачу 1 полезного байта расходуется 10 физических бит!

11. Физический уровень RS-232 и понятие бодрейта

Уровни напряжения RS-232

В отличие от TTL (+5V / 0V), используется биполярная шкала:

  • Логический 0 (Space): от +3 В до +15 В.
  • Логическая 1 (Mark): от -3 В до -15 В.
  • Дальность до 15 м (ограничена емкостью кабеля).

Бодрейт vs Битрейт

  • Бод (Baud): число изменений состояния линии в секунду.
  • Битрейт (bps): число информационных бит в секунду.
  • При 2-уровневой модуляции NRZ: 1 бод = 1 бит/с.
  • При 115 200 бод полезная скорость = $115200 / 10 = 11.52$ КБ/с.
12. Параллельный порт IEEE 1284 (LPT)

LPT-порт исторически применялся для принтеров и сканеров. Передает байт целиком по 8 параллельным проводникам данных D0–D7.

  • Режимы IEEE 1284: SPP (стандартный однонаправленный), EPP (двунаправленный, до 2 МБ/с), ECP (аппаратный DMA и сжатие RLE).
  • Проблема перекрестных помех (Crosstalk): 8 параллельных проводников создают взаимные электромагнитные наводки.
  • Физический тупик: на частотах выше 2–5 МГц перекос фаз делает параллельную передачу по кабелю длиннее 2 метров невозможной.
13. Инженерный выбор подсистемы ввода-вывода
Класс задачи Рекомендуемая шина Системные ресурсы Внешние порты
АСУ ТП / SCADA PCIe x1 / встроенный SoC Гарантированное прерывание, RTOS RS-485 Modbus, гальваноразвязка
Сервер 100 GbE / NVMe PCIe 4.0/5.0 x16 MSI-X (до сотен векторов RSS), MMIO 64-bit QSFP28 / SFP28 оптический Ethernet
Офис / Legacy PCIe x1 с мостом Эмуляция I/O портов (0x3F8, 0x378) RS-232 COM, IEEE 1284 LPT
Multi-GPU Workstation PCIe 4.0/5.0 x16/x8/x8 Resizable BAR, Above 4G, Bus Master DMA DisplayPort 2.1, HDMI 2.1, PCIe capture
14. Резюме и юмор в архитектуре ЭВМ
Mathjoke meme: 10 types of people
Мем: «Mathjoke (10 types of people in the world) — Существует 10 типов людей: те, кто понимает двоичную систему счисления, и те, кто не понимает».
Автор: MjolnirPants (Wikimedia Commons).
Источник: Wikimedia Commons (File:Mathjoke.jpg).
Лицензия: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0).
Изменения: Оптимизировано разрешение и встроено offline через Data URI (Base64) без изменения содержания.
Слайд 1 из 15