Практическое занятие №5 «Устройство управления и шины»; практическое занятие №6 «Ввод-вывод»

ОП.02 Архитектура аппаратных средств • Занятие 17

1. Роль и назначение устройства управления (Control Unit)

Устройство управления (УУ) — координатор вычислительного процесса, формирующий последовательность управляющих импульсов.

  • Выборка команды (Fetch): считывание кода инструкции из памяти по указателю EIP / PC во внутренний регистр команд (IR).
  • Декодирование (Decode): определение типа операции, режимов адресации и операндов.
  • Генерация сигналов (Execute): синхронизированное стробирование АЛУ, коммутация шин, формирование стробов памяти и ввода-вывода.
  • Проверка прерываний: опрос аппаратных запросов IRQ/MSI в финальной фазе текущего машинного цикла.
2. Жесткая логика vs Микропрограммное управление
Параметр УУ с жесткой логикой (Hardwired) Микропрограммное УУ (Microprogrammed)
Реализация Конечный автомат (FSM) на вентилях AND/OR и счетчиках тактов Память микрокоманд (CROM/ROM), секвенсер адресов микро-ops
Быстродействие Максимальное (задержка прохождения логических элементов) Ниже (требуется такт выборки микрокоманды из ROM)
Гибкость Фиксированная; изменение требует редизайна кристалла Высокая; поддержка обновления микрокода (Microcode Update)
Применение Классический RISC (ARM, MIPS, RISC-V) Сложный CISC (семейство x86 / AMD64)
3. Системная магистраль: структура и физические линии

Комплекс проводников для передачи информации между центральными и периферийными узлами:

  • Шина адреса (Address Bus): определяет физическую ячейку ОЗУ или номер порта ввода-вывода. Однонаправленная от задатчика шины (Master).
  • Шина данных (Data Bus): двунаправленная передача машинных слов. Разрядность определяет ширину шинного цикла (8, 16, 32, 64 бита).
  • Шина управления (Control Bus): координация передачи. Содержит стробы стробирования (RD#, WR#), квитирования (READY) и арбитража.
4. Синхронный и асинхронный шинный обмен
  • Синхронная шина: передача жестко привязана к фронтам системного тактового генератора (BCLK).
    • Преимущество: простота аппаратной логики сопряжения.
    • Физический барьер: на высоких частотах разность длин трасс вызывает перекос фаз (Clock Skew).
  • Асинхронная шина: протокол «рукопожатия» (Handshaking). Задатчик выставляет строб запроса (REQ#), ведомый отвечает стробом подтверждения (ACK# / DTACK#).
    • Преимущество: способность сопрягать узлы с произвольным быстродействием без фиксации минимальной частоты.
5. Шинные стробы: разделение памяти и ввода-вывода
Строб Активный уровень Функциональное назначение
MEMR# (RD#) Низкий (0) Чтение из системной памяти (активация выходных буферов ОЗУ)
MEMW# (WR#) Низкий (0) Запись байта/слова в оперативную память по адресу на шине
IOR# Низкий (0) Чтение из изолированного порта ввода-вывода (команда IN)
IOW# Низкий (0) Запись в изолированный порт ввода-вывода (команда OUT)

Линия M/IO# информирует системный декодер о типе цикла: 1 — обращение к памяти, 0 — обращение к изолированному порту ввода-вывода.

6. Такты ожидания (Wait States) и сигнал READY

Процессор работает на тактовых частотах в сотни раз выше времени реакции периферийных контроллеров:

  • В такте $ процессор опрашивает линию READY.
  • Если медленный контроллер не успел подготовить данные, он удерживает READY = 0.
  • Устройство управления процессора вставляет пустые такты ожидания Tw (Wait States).
  • Шинные стробы и адрес удерживаются неизменными до перехода READY = 1, после чего в такте $ происходит надежная фиксация данных.
7. Сравнение трех методов организации ввода-вывода
Метод Загрузка CPU Задержка (Latency) Характерные устройства
Программный опрос (PIO) 100% активного ядра Минимальная в цикле Простые датчики, микроконтроллеры
По прерываниям (IRQ) Низкая при редких событиях Стек + IDT + ISR (~мкс) Клавиатура, мышь, UART FIFO
Прямой доступ (DMA) Минимальная (только старт) Шинный арбитраж NVMe SSD, 100 GbE NIC, Audio DSP
8. Подсистема прерываний: эволюция архитектуры
  • Intel 8259A PIC (Legacy PC/AT): каскад из двух чипов, 15 линий IRQ0–15. Физические проводные линии, дефицит прерываний, сложность разделения.
  • I/O APIC / Local APIC: чипсетный маршрутизатор прерываний для многопроцессорных SMP-систем. Прерывания передаются пакетами в Local APIC ядер.
  • MSI / MSI-X (PCIe): Message Signaled Interrupts. Полный отказ от физических линий IRQ. Прерывание — это обычный пакет PCIe TLP Memory Write. До 2048 векторов для независимых очередей RSS!
9. Аппаратный конвейер обработки прерывания (ISR)
  1. Контроллер генерирует запрос (линия IRQ или пакет MSI-X).
  2. УУ процессора опрашивает флаг IF в конце текущей инструкции.
  3. Процессор подтверждает прием стробом INTA# и считывает номер вектора N.
  4. Аппаратное сохранение в стек: EFLAGS, CS, EIP; аппаратный сброс IF = 0.
  5. Выборка адреса обработчика из таблицы дескрипторов прерываний IDT[N].
  6. Выполнение кода ISR, посылка команды завершения EOI.
  7. Инструкция IRET: восстановление регистров из стека и возврат в прерванную программу.
10. Прямой доступ к памяти (DMA): режимы и арбитраж

Передача массивов между периферией и ОЗУ без загрузки регистров процессора:

  • Захват цикла (Cycle Stealing): контроллер DMA забирает шину памяти ровно на один машинный цикл; процессор продолжает работу без заметных пауз.
  • Пакетный режим (Burst Mode): монопольный захват шины для непрерывной передачи блока данных максимальной длины.
  • Стробы DMA: периферия запрашивает канал линией DREQ, контроллер подтверждает стробом DACK#, активируя одновременное чтение из порта IOR# и запись в память MEMW#.
11. Современный Bus Mastering DMA и защита IOMMU
  • В шине PCIe периферийное устройство само выступает задатчиком шины (Bus Master).
  • Кольцевые буферы (Descriptor Rings): процессор формирует очереди дескрипторов в памяти, устройство автономно выполняет DMA-пакеты.
  • IOMMU (Intel VT-d / AMD-Vi): аппаратный блок трансляции адресов ввода-вывода (IOVA $ o$ Физический адрес). Изолирует память хоста от сбойных или вредоносных устройств и обеспечивает прямую виртуализацию (SR-IOV).
12. Изолированные порты (PMIO) vs Отображение на память (MMIO)
Характеристика Изолированный ввод-вывод (PMIO) Отображение на память (MMIO)
Инструкции CPU Специальные: IN, OUT Любые команды памяти: MOV, TEST, CMP
Адресное пространство Отдельное 16-битное окно (64 КБ) Единое 64-битное адресное пространство
Шинные стробы IOR#, IOW# (линия M/IO# = 0) MEMR#, MEMW# (линия M/IO# = 1)
Масштабируемость Низкая (устаревший legacy-механизм) Resizable BAR, адресация десятков ГБ VRAM
13. Диагностика пути данных: 4 варианта устройств
Вариант Устройство Адресация Прерывания / DMA Типичный дефект пути данных
1 Клавиатура PS/2 PMIO (0x60, 0x64) IRQ1 Edge / без DMA Залипание бита OBF, обрыв строба IOR#
2 Сетевой адаптер 1GbE MMIO BAR0 MSI-X / Bus Master DMA Ошибка IOMMU Page Fault, сбой дескриптора
3 Накопитель NVMe M.2 MMIO Doorbell MSI-X / PRP-SGL DMA AER Completion Timeout из-за перегрева/PHY
4 Звуковая карта DSP MMIO BAR0 MSI / Cyclic BDL DMA Buffer Underrun из-за джиттера DPC Latency
14. Резюме: архитектура данных и двоичный юмор
Mathjoke: 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
Навигация клавишами: ← / → или Пробел