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