Контроллер прерываний используется для реализации механизма прерываний, используемого для обеспечения своевременного обслуживания устройств компьютера со стороны процессора. Для этого устройство (например, клавиатура, контроллер HDD, сетевой адаптер) имеет свою линию запроса на прерывание и номер прерывания, обозначаемые IRQ n (Interrupt ReQuest).
Контроллер прерываний выполняет следующие функции:
• приём запросов прерываний от устройств, требующих обслуживания со стороны ЦП;
• учёт приоритетов запросов в случае одновременного поступления нескольких запросов;
• маскирование (запрет) запросов на основе данных от процессора (только для маскируемых запросов);
• выдача процессору запроса прерывания и кода устройства, которое сделало запрос.
После получения кода устройства процессор находит в памяти и выполняет соответствующую программу обработки прерывания. В дальнейшем механизм прерываний будет рассмотрен подробнее.
Контроллер прямого доступа к памяти (ПДП) обеспечивает обмен данными между оперативной памятью и внешними устройствами (ВУ), например с жёстким диском, без участия центрального процессора. Контроллер ПДП, таким образом, замещает процессор и выполняет прямую пересылку данных между ОП и ВУ.
Процессор программирует контроллер для обмена, для чего задаёт:
• направление передачи (чтение/запись11);
• начальный адрес блока данных в ОП;
• адрес внешнего устройства;
• размер блока данных (количество слов).
Пересылка данных может выполняться в одном из режимов:
• блочная передача: контроллер ПДП монополизирует шину на всё время пересылки блока данных, при этом для ЦП шина недоступна;
• одиночная передача: контроллер ПДП после завершения передачи каждого слова освобождает шину минимум на один цикл, в течение которого шина доступна ЦП, но после обнаружения сигнала запроса от ВУ контроллер ПДП выполняет захват шины для очередной передачи;
• передача по требованию: осуществляется так же, как и блочная передача, но с выполнением дополнительной проверки наличия сигнала запроса ПДП от ВУ, и в случае его отсутствия, передача приостанавливается до момента появления данного сигнала.
Очевидно, что режимы различаются по времени передачи и эффективностью использования процессора. Процессор во время операций ПДП имеет возможность продолжать работу, при условии, что установленный режим обмена не занимает всей пропускной способности системной шины.
Для обозначения прямого доступа к памяти часто используется сокращение DMA от Direct Memory Access. Существуют более производительные разновидности – Ultra DMA. Обмен посредством ПДП меньше загружает процессор, а скорость обмена с использованием ПДП может быть выше, чем посредством процессора (так называемого программируемого обмена или PIO – Programmable Input/Output), поскольку процессор может выделить для обмена только часть всего времени работы.
Также ПДП может осуществляться так называемыми каналами