ОП.02 Архитектура аппаратных средств • Занятие 17
Устройство управления (УУ) — координатор вычислительного процесса, формирующий последовательность управляющих импульсов.
EIP / PC во внутренний регистр команд (IR).| Параметр | УУ с жесткой логикой (Hardwired) | Микропрограммное УУ (Microprogrammed) |
|---|---|---|
| Реализация | Конечный автомат (FSM) на вентилях AND/OR и счетчиках тактов | Память микрокоманд (CROM/ROM), секвенсер адресов микро-ops |
| Быстродействие | Максимальное (задержка прохождения логических элементов) | Ниже (требуется такт выборки микрокоманды из ROM) |
| Гибкость | Фиксированная; изменение требует редизайна кристалла | Высокая; поддержка обновления микрокода (Microcode Update) |
| Применение | Классический RISC (ARM, MIPS, RISC-V) | Сложный CISC (семейство x86 / AMD64) |
Комплекс проводников для передачи информации между центральными и периферийными узлами:
RD#, WR#), квитирования (READY) и арбитража.REQ#), ведомый отвечает стробом подтверждения (ACK# / DTACK#).
| Строб | Активный уровень | Функциональное назначение |
|---|---|---|
MEMR# (RD#) |
Низкий (0) | Чтение из системной памяти (активация выходных буферов ОЗУ) |
MEMW# (WR#) |
Низкий (0) | Запись байта/слова в оперативную память по адресу на шине |
IOR# |
Низкий (0) | Чтение из изолированного порта ввода-вывода (команда IN) |
IOW# |
Низкий (0) | Запись в изолированный порт ввода-вывода (команда OUT) |
Линия M/IO# информирует системный декодер о типе цикла: 1 — обращение к памяти, 0 — обращение к изолированному порту ввода-вывода.
Процессор работает на тактовых частотах в сотни раз выше времени реакции периферийных контроллеров:
READY.READY = 0.READY = 1, после чего в такте $ происходит надежная фиксация данных.| Метод | Загрузка CPU | Задержка (Latency) | Характерные устройства |
|---|---|---|---|
| Программный опрос (PIO) | 100% активного ядра | Минимальная в цикле | Простые датчики, микроконтроллеры |
| По прерываниям (IRQ) | Низкая при редких событиях | Стек + IDT + ISR (~мкс) | Клавиатура, мышь, UART FIFO |
| Прямой доступ (DMA) | Минимальная (только старт) | Шинный арбитраж | NVMe SSD, 100 GbE NIC, Audio DSP |
PCIe TLP Memory Write. До 2048 векторов для независимых очередей RSS!IF в конце текущей инструкции.INTA# и считывает номер вектора N.EFLAGS, CS, EIP; аппаратный сброс IF = 0.IDT[N].EOI.IRET: восстановление регистров из стека и возврат в прерванную программу.Передача массивов между периферией и ОЗУ без загрузки регистров процессора:
DREQ, контроллер подтверждает стробом DACK#, активируя одновременное чтение из порта IOR# и запись в память MEMW#.| Характеристика | Изолированный ввод-вывод (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 |
| Вариант | Устройство | Адресация | Прерывания / 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 |