.
Начертательная геометрия Геометрическое черчение Инженерная графика Интегралы Математический анализ Матрицы Производные Векторная алгебра

 

4.3. Вход в прерывающую программу

 

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

Метод помеченного оператора (опорных точек). Суть метода состоит в следующем. В специальные разряды команд, после которых допускается прерывание, записывается определенный знак, разрешающий (например, состояние "1" специального бита команды) или запрещающий (например, состояние "0") прерывание. Тогда вдоль программы можно расставить все опорные точки. Здесь желательно так расставить точки прерывания, чтобы информация, находящаяся в регистрах процессора после выполнения данной команды, дальше не использовалась. Это уменьшает время обслуживания, но увеличивает время реакции.

Покомандный способ. Здесь прерывание допускается после выполнения любой команды. Способ прост в реализации. При этом tр уменьшается, а tобс увеличивается.

Метод быстрого реагирования. Прерывание допускается во время выполнения любой команды, т. е. после выполнения очередного ее такта. Здесь tр ® min, а tобс ® max, ибо надо запоминать и затем восстанавливать некоторые обычно программно-недоступные элементы (например, счетчик тактов и т. п.).

Из-за простоты и удачного сочетания характеристик прерывания наибольшее распространение получил второй способ, хотя в последних ВС используется и третий. Так, если обнаружено, что адрес операнда сформирован неверно, то целесообразно сразу же прервать выполнение операции, чтобы ошибка не распространилась на другие такты. Это необходимо при мультипрограммной работе, если адресованный операнд в команде принадлежит внешней памяти. Здесь текущая операция не может быть продолжена, пока оперативная память не получит данные из ВнП.

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

Суть программного распознавания: все линии связи, по которым приходят запросы прерывания, объединяются в схему ИЛИ, формирующую на выходе один и тот же сигнал, который в допустимый момент прерывания поступает в прерывающую программу. Последняя распознает запросы и разветвляется для их выполнения.

Общая схема работы прерывающей программы приведена на рис. 4.3.

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

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

Таким образом, система с аппаратным распознаванием причин прерывания может быть названа многоуровневой системой прерывания.

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


Рис. 4.3. Схема работы прерывающей программы

 

Удобный компромисс достигается от сочетания аппаратного и программного методов распознавания причин прерывания. Можно организовать систему, в которой каждый уровень используется для обслуживания нескольких источников прерывания, а физически уровень реализуется в виде некоторого количества прерывающих входов, объединенных схемой ИЛИ. Например, управляющая машина IBM 1800, используя подобный компромисс, имеет 24 уровня прерывания, к каждому из которых может подсоединяться до 16 прерывающих входов. В определенную для данного уровня прерывания ячейку памяти записывается состояние прерывающих входов в момент прерывания.

 

На главную