Lectures / 16-17
.pdfЛогическая структура контроллера
прерываний
IRQ0 |
|
|
|
|
|
|
|
0 |
|
|
|
|
0 |
||
|
|
|
|
||||
IRQ1 |
1 |
|
|
|
|
0 |
|
0 |
|||||||
IRQ2 |
0 |
|
|
|
|
0 |
|
IRQ3 |
0 |
|
|
|
|
1 |
|
IRQ4 |
0 |
|
|
|
|
0 |
|
IRQ5 |
0 |
|
|
|
|
1 |
|
IRQ6 |
0 |
|
|
|
|
0 |
|
IRQ7 |
|
0 |
|
|
|
|
1 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
х
х
х
х
х
х
х
Процессор |
|
Сигнал INT |
|
IF |
ISR |
INTA |
|
Блокировка
0
1 0 EOI
0
0
0
0
0
0
Регистр |
Регистр |
Схема анализа |
Регистр обслужи- |
запросов |
маски |
приоритетов |
ваемых запросов |
Порт 20h |
Порт 21h |
Порт 20h |
Порт 20h |
Множественные прерывания
Программа |
Обработчик |
Программа |
|
Обработчик |
||||||||||||||
прерывания X |
прерывания X |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обработчик прерывания Y
Обработчик прерывания Y
Последовательная |
Вложенная обработка |
обработка прерываний |
прерываний |
Прямой доступ к памяти
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CPU → DMA |
|
Передача команды |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выполнение |
|
чтения блока модулю |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
других действий |
|
ввода/вывода |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Прерывание |
Получение состояния |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
DMA → CPU |
||||||||||||||
модуля DMA |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа контроллера DMA
|
1. ЦП |
|
Диск |
|
программирует |
|
|
||
контроллер DMA 4. Подтверждение |
|
|||
|
1 |
Контроллер |
Контроллер |
|
|
|
|
||
|
|
DMA |
диска |
|
|
|
Адрес |
|
Память |
ЦП |
|
Счетчик |
Буфер |
|
|
|
|
|
|
|
|
Управляю- |
4 |
|
|
|
щий регистр |
|
|
5. Прерывание |
|
3. Перенос |
после |
2 |
|
выполнения |
данных |
|
2. Контроллер DMA запрашивает |
||
перенос данных в память |
Шина |
|
|
|
Конфигурации DMA
Системная шина
|
|
ЦП |
|
|
|
|
DMA |
|
|
|
|
I/O |
|
|
|
|
|
I/O |
|
|
Память |
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
ЦП |
|
|
|
|
DMA |
|
|
|
|
|
I/O |
|
|
|
|
|
I/O |
|
|
|
Память |
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Одиночная шина, обособленный DMA |
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Системная шина |
||||||||||||||||||||
|
|
ЦП |
|
|
|
|
DMA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DMA |
|
|
|
|
|
|
|
|
|
|
|
|
Память |
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
ЦП |
|
|
|
|
|
DMA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DMA |
|
|
|
|
|
|
|
|
|
|
|
|
Память |
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
I/O |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
I/O |
|
|
|
|
|
|
|
|
|
I/O |
|
|
|
|
|
|
|
|
|
|
I/O |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I/O |
|
|
|
|
I/O |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
Одиночная шина |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
, интегрированный DMA-I/O |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Системная шина |
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ЦП |
|
|
|
|
DMA |
|
|
|
|
|
|
|
|
|
|
DMA |
|
|
|
|
|
|
|
|
|
|
I/O |
|
|
Память |
|
|
|
|
||||||||||||||||||||
|
|
ЦП |
|
|
|
|
DMA |
|
|
|
|
|
|
|
|
|
|
|
DMA |
|
|
|
|
|
|
|
|
|
|
I/O |
|
|
|
Память |
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Шина ввода- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
вывода |
|
|
|
|
|
|
|
I/O |
|
|
|
|
|
|
|
|
I/O |
|
|
|
|
|
|
|
|
I/O |
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
I/O |
|
|
|
|
|
|
|
|
|
I/O |
|
|
|
|
|
|
|
|
I/O |
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Шина ввода-вывода
Взаимодействие программы и УВВ
Программа
out .. int 17h |
int 21h fprintf(...) |
Библиотечные функции int 21h
MS DOS int 17h
BIOS out ..
Порты (регистры контроллера)
Контроллер
Исполняемый
файл
Аппаратнонезависимая часть ОС
Аппаратнозависимая часть ОС
Устройство ввода-вывода