Прерывания. Программный опрос. Использование векторов прерываний
В конце каждого машинного цикла команды основной программы процессор выполняет проверку наличия требования прерываний от внешних устройств. Если сигнал прерывания есть в процессоре, и оно разрешено , то процессор переключается на выполнение подпрограммы обработки прерывания. После охранения содержимого регистров процессора, используемых в подпрограмме начинается последовательный опрос контр. регистров СУ ВУ, которые работают в режиме прерывания. Как только подпрограмма обнаружит готовность внешнего устройства к обмену информацией сразу выполниться действие по его обслуживанию. Завершается подпрограммы после опроса всех ВУ и восстановления содержимого регистров процессора первоначальной основной программы. Приоритет ВУ определяется порядком опроса самих внешних устройств. Соответственно необходимость проверки готовности всех внешних устройств увеличивает время обслуживания ВУ, которые опрашиваются последними. Поэтому обслуживание прерываний с опросом готовность ВУ применяется только в тех случаях, когда нет жестких требований на ограничение на время обработки сигнала от прерывания.
При организации по векторам прерывания ВУ, запрашивающее прерывание, само идентифицирует себя, посредствам векторов прерывания. Процессор, получив от ВУ вектор прерывания, переключается на выполнение подпрограммы обработки прерываний. Сам вектор прерывания выдается контроллером не одновременно с запросом на прерывание, а по разрешению процессора. Это делается для того, чтобы исключить одновременную выдачу векторов прерывания от нескольких ВУ.
В ответ на сигнал контроллера ВУ требования прерывания процессор формирует управляющий сигнал предоставления прерывания с индексом «входящее», который разрешает контроллеру ВУ, запрашивающего прерывание, выдачу вектора прерывания в шину адреса системного интерфейса. Для этого используется регистр векторов прерывания и схема совпадения U3. Регистр векторов прерывания обычно реализуется при помощи различных перемычек, что позволяет использовать для конкретных ВУ требуемые вектора прерывания. Управляющий сигнал предоставления прерывания с индексом «входящее» формируется в контроллере с помощью схемы совпадения U2. Этот сигнал используется для организации последовательного аппаратного опроса готовность ВУ и реализует тем самым требуемые приоритеты ВУ. Процессор при поступлении в него по общей линии системного интерфейса требования прерывания, формирует управляющий сигнал предоставления прерывания с индексом «входящий», который поступает сначала в контроллер ВУ с наивысшим приоритетом, если это устройство не требовало обслуживания, то его контроллер пропускает и передает сигнал предоставления прерывания на следующий контроллер, иначе дальнейшее распространение сигнала прекращается и контроллер возвращает на шину адреса вектор прерывания. Аппаратный опрос готовность ВУ производится гораздо быстрее, чем программный, но если обслуживание запрашивает 2 и более ВУ, обслуживание менее приоритетных ВУ будет отложено на время обслуживания более приоритетных устройств системе прерываний с программным опросом.
Организация прямого доступа к памяти (ПДП).
ПДП с блокировкой процесса отличается от ПДП с захватом цикла тем, что системный интерфейс выделяется не на время обмена одного байта информации , а на время обмена одного блока данных. Такой режим ПДП
необходим, когда время обмена одним байтом данных с одним устройством сопоставимо с циклом процессора. В этом случае процессор не успевает выполнить хотя бы одну команду между очередными операциями обмена в режиме ПДП. В ЭВМ можно использовать несколько ВУ для работы в режиме ПДП. Предоставление таким ВУ шин СИ для обмена данными осуществляется согласно приоритету. Приоритет определяется как и при обмене в режиме прерывания. Но вместо управляющих сигналов «Требование прерывания » и « Предоставления прерывания», используются сигналы «Требование ПДП » и « предоставление ПДП».
Реализация обмена в режиме ПДП с блокировкой процессора.
ПДП с блокировкой процесса отличается от ПДП с захватом цикла тем, что системный интерфейс выделяется не на время обмена одного байта информации , а на время обмена одного блока данных. Такой режим ПДП
необходим, когда время обмена одним байтом данных с одним устройством сопоставимо с циклом процессора. В этом случае процессор не успевает выполнить хотя бы одну команду между очередными операциями обмена в режиме ПДП. В ЭВМ можно использовать несколько ВУ для работы в режиме ПДП. Предоставление таким ВУ шин СИ для обмена данными осуществляется согласно приоритету. Приоритет определяется как и при обмене в режиме прерывания. Но вместо управляющих сигналов «Требование прерывания » и « Предоставления прерывания», используются сигналы «Требование ПДП » и « предоставление ПДП».