Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции4_1.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Допустимые моменты прерывания программ

Обычно прерывание допускается после завершения выполнения текущей команды. В этом случае время реакции определяется в основном временем выполнения одной команды.

Это время реакции может оказаться недопустимо большим для ЭВМ, работающих в реальном масштабе времени. В таких машинах часто допускается прерывание после любого такта выполнения коман­ды. Однако при этом возрастает количество информации, подлежащей запоминанию и восстановлению при переключении программ, так как в этом случае необходимо сохранять состояния счетчика тактов, регистра кода операции и некоторых других в момент прерывания.

Имеются ситуации, в которых желательно немедленное прерыва­ние. Например, если аппаратура контроля обнаружила ошибку, то целесообразно сразу прервать операцию, пока ошибка не оказала влияние на следующие такты работы машины.

Число классов (уровней) прерываний

В ЭВМ число различных запросов прерывания может достигать нескольких сотен. В таких случаях запросы обычно разделяют на от­дельные классы или уровни.

Совокупность запросов, инициирующих одну и ту же прерывающую программу, образует класс или уровень прерывания.

Запросы от всех источников прерывания поступают на регистр запросов прерывания РгЗП, устанавливая соответствующие его разря­ды в состояние 1, указывающее на наличие запроса прерывания от определенного источника. Запросы классов прерывания ЗПК1-ЗПКk формируются элементами ИЛИ, объединяющими разряды РгЗП, относящи­еся к соответствующим классам. Еще одна схема ИЛИ формирует общий сигнал прерывания ОСП, поступающий в устройство управления про­цессора (рис.2.4).

Информация о действительной причине прерывания, породившей запрос данного класса, содержится в коде прерывания, который отражает состояние разрядов РгЗП, относящихся к данному классу прерывания. После принятия запроса прерывания на исполнение и передачи управления прерывающей программе соответствующий триггер РгЗП сбрасывается. Объединение запросов в классы прерывания поз­воляет уменьшить объем аппаратуры, но связано с замедлением рабо­ты системы прерывания.

Рис. 2.4.

Приоритетное обслуживание запросов прерывания

Вектором прерывания называют вектор начального состояния прерывающей программы. Вектор прерывания содержит всю необходимую информацию для перехода к прерывающей программе, в том числе ее начальный адрес. Каждому уровню прерывания соответствует свой вектор прерывания. Векторы прерывания обычно находятся в специально выделенных фиксированных ячейках памяти.

Процедура организации перехода к прерывающей программе выде­ляет из всех выставленных запросов тот, который имеет наибольший приоритет, выполняет передачу текущего состояния прерываемой программы из регистров процессора в стек, загружает в регистры процессора вектор прерывания и передает управление прерывающей программе.

В простейшем случае вектор прерывания состоит лишь из начального адреса прерывающей программы.

Различают абсолютный и относительный приоритеты. Запрос, имеющий абсолютный приоритет, прерывает выполняемую программу и инициирует выполнение соответствующей прерывающей программы. Зап­рос с относительным приоритетом является первым кандидатом на обслуживание после завершения выполнения текущей программы.

Если наиболее приоритетный из выставленных запросов прерыва­ния не превосходит по уровню приоритета выполняемую процессором программу, то запрос прерывания игнорируется или его обслуживание откладывается до завершения выполнения текущей программы.

Простейший способ установления приоритетных соотношений меж­ду запросами состоит в том, что приоритет определяется порядком присоединения линий сигналов запросов ко входам системы прерыва­ния. При появлении нескольких запросов прерывания первым воспри­нимается запрос, поступивший на вход с меньшим номером. В этом случае приоритет является жестко фиксированным.