Идентификация путем опроса предполагает последовательный опрос ВУ, пока не обнаружится то ВУ, которое послало ЗП, дальше выполняется программа его обслуживания. По окончании обслуживания может быть запрограммировано одно из следующих действий:
1. Управление возвращается в основную программу без проверки запросов остальных устройств.
2. Управление возвращается к программе опроса.
Рис. 6.2 Блок-схема опроса ВУ. |
Приоритеты ВУ определяются местом в последовательности опроса. Если устройства имеют существенно различные приоритеты, то применяется возврат в основную программу после обслуживания самого приоритетного устройства (обозначено сплошной линией). Если же приоритеты примерно одинаковы, то возвращаемся к программе опроса (обозначено пунктирной линией).
2. Идентификация ВУ по вектору позволяет существенно сократить время на идентификацию устройства за счет аппаратного перехода к прерывающей программе.
Когда ВУ посылает сигнал ЗП в центральный процессор, процессор выдает сигнал разрешения прерывания (РП) на шину управления.
|
|
ВУ в ответ передает код по шине данных – адрес вектора прерывания (АВП).
Вектор прерывания (ВП) – информация, хранящаяся в непрерывной и определенной области оперативной памяти и определяющая адрес программы, которую требуется выполнить для обслуживания ВУ. Обычно ВП занимает несколько байт в ОЗУ. АВП – начальный адрес ОЗУ, где хранится вектор прерываний.
Пример:
В ЭВМ семейства Macintosh вектор прерывания занимает два машинных слова по 16 разрядов. В первом слове хранится адрес программы обслуживания внешнего устройства, во втором – новое слово состояния процессора, в котором указывается приоритет прерывающей программы.
R 7- вектор прерывания | АВП | ||
P 4 | P 2 | P 1 | PSW |
Для векторов прерывания отводится 256 байт ОЗУ на ВП, начиная с адреса 0, что позволяет разместить 64 ВП.
В ЭВМ семейства IBM PC под ВП отводится 1024 байта оперативной памяти, что позволяет разместить 256 ВП
АВП:
0000:0000 h – 0 |
0000:0004 h - -1-й ВП |
0000:0008 h – 2-й ВП |
… |
0000:03 FCh – 255-й ВП |
В семейства IBM PC, ВУ передает не АВП, а код номера типа прерывания, номер типа прерывания = АВП/4, т.е. число длиной один байт в диапазоне 0…255.