Практическое занятие №17: Устройство управления, шины и ввод-вывод

Интерактивный рабочий лист студента по дисциплине «ОП.02 Архитектура аппаратных средств». Программа объединяет практические занятия №5 («Устройство управления и шины») и №6 («Ввод-вывод»). Изучаются трассировка шинных стробов (RD#, WR#, IOR#, IOW#, DREQ, DACK), организация прерываний IRQ/ISR, прямой доступ к памяти DMA и диагностика пути данных по 4 вариантам аппаратных узлов.

Задание 1. Сравнительный анализ методов обмена данными (I/O Methods)
Заполните сравнительную таблицу характеристик трех фундаментальных методов организации ввода-вывода. В текстовом поле ниже объясните архитектурное различие устройства управления с жесткой логикой и микропрограммного УУ.
Критерий сравнения Программный опрос (Programmed I/O) Прерывания (Interrupt-driven I/O) Прямой доступ к памяти (DMA)
Участие CPU в пересылке байтов
Загрузка процессора (Overhead)
Задержка реакции (Latency)
Характерные устройства применения
Задание 2. Трассировка шинных стробов и фаз шинного цикла
Определите источник/направление, активный электрический уровень и назначение основных шинных сигналов управления. Объясните назначение тактов ожидания (Wait States) и сигнала READY.
Строб / Сигнал Направление (Master / Slave) Активный уровень Назначение строба при обращении к ресурсу
MEMR# (RD#)
MEMW# (WR#)
IOR#
IOW#
DREQ
DACK#
Задание 3. Архитектура прерываний: конвейер обработки и векторы
Опишите пошаговую последовательность действий аппаратных узлов и процессора от момента генерации запроса периферийным контроллером до возврата в прерванную программу.
Задание 4. Единый протокол диагностики пути данных (по 4 вариантам)
Заполните диагностический протокол для аппаратного узла в соответствии с выбранным вариантом. Проанализируйте способ адресации, механизм прерываний, режим прямого доступа к памяти и локализуйте смоделированную аппаратно-программную неисправность.
Вариант 1: Клавиатурный контроллер (PS/2 / Super I/O)

Низкоскоростной символьный контроллер. Регистры данных 0x60, статуса/команд 0x64. Прерывание IRQ1 (Edge-triggered), изолированное пространство ввода-вывода PMIO. Передача скан-кодов без DMA.
Смоделированная неисправность: При нажатии клавиш контроллер генерирует бесконечный шторм прерываний, система зависает; в регистре статуса бит OBF (Output Buffer Full) остается в 1 даже после выполнения инструкции IN AL, 60h.

Вариант 2: Сетевой адаптер (Gigabit Ethernet NIC, PCIe)

Высокоскоростной пакетный интерфейс. Регистры MMIO (BAR0). Механизм прерываний MSI-X (до десятков независимых векторов под RSS-очереди) + Bus Master DMA с дескрипторными кольцами (RX/TX Rings).
Смоделированная неисправность: Счетчик принятых пакетов в чипе адаптера инкрементируется, прерывание MSI-X поступает, но сетевой стек ОС не получает данных (пакеты содержат нули). В системном журнале зафиксирована ошибка IOMMU DMA Page Fault.

Вариант 3: Твердотельный накопитель NVMe (PCIe Gen4 x4 M.2)

Высокопроизводительный блочный накопитель. Полностью MMIO адресация, регистры дверных звонков (Doorbell). Высокопараллельный Bus Master DMA со списками страниц PRP/SGL и прерываниями MSI-X.
Смоделированная неисправность: При интенсивной записи больших файлов происходит аварийный сброс накопителя на шине PCIe (ошибка AER: Completion Timeout), диск «исчезает» из системы до полного цикла питания.

Вариант 4: Профессиональная звуковая карта (Audio DSP, PCIe / HD Audio)

Изохронный потоковый аудиоконтроллер. Адресация MMIO BAR0. Циклический циклический DMA (Cyclic Buffer DMA / Buffer Descriptor List) с прерываниями по заполнению половины/полного буфера аудио (Half/Full Buffer Interrupts).
Смоделированная неисправность: При воспроизведении аудиопотока в реальном времени наблюдается сильный треск и щелчки (Buffer Underrun / XRun), хотя общая загрузка ЦП не превышает 15%.

Параметр протокола диагностики Значение и техническая спецификация для выбранного устройства
1. Тип адресного пространства
2. Стробы шины и физические линии
3. Подсистема прерываний
4. Механизм передачи данных (DMA)