Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методический материал по ЭВМ.doc
Скачиваний:
106
Добавлен:
22.09.2019
Размер:
2.38 Mб
Скачать

6.4 Стековый механизм организации прерываний

Различают понятия: вектор состояния и вектор прерывания, хотя они имеют одинаковую структуру.

СЧК вектор состояния

ССР вектор прерывания

При обработке программы в ЦП изменяется вектор состояния.

При возникновении запроса на прерывание анализируется приоритет обрабатываемой программы в ЦП (порог прерывания) и приоритет запроса на прерывание.

Если запрос на прерывание имеет более высокий приоритет, то инициируется процесс обработки прерывания.

I - Вектор состояния для прерванной программы запоминается в стеке. Из некоторой ячейки (в дальнейшем это будет определено) определяется (подаётся) адрес первой команды обработки прерываний на счётчик команд, т.е. выбирается вектор прерывания.

II - Из некоторой ячейки выбирается вектор прерывания и помещается на регистры ЦП, который содержит адрес 1-й команды программы обработки прерывания. Далее выполняется программа обработки прерывания (3 этапа):

  1. Сохранение РОНов для прерванной программы.

  2. Непосредственное выполнение программы обработки прерываний.

  3. Восстановление сохраненных РОНов для прерванной программы.

III - Из вершины стека выбирается вектор состояния для прерванной программы и помещается на регистры ЦП.

Все прерывания делятся на:

  • Внутренние прерывания,

  • Внешние прерывания.

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

Для внешних прерываний адрес вектора прерываний выдаёт внешнее устройство.

Вектор прерывания находится в ячейках с фиксированным адресом (для внутренних причин).

6.4.1 Механизм реализации внешних прерываний

ЗПn.

ЗП1

РПn

РП1

Существуют i линий запросов на прерывание, к каждой линии может быть подключено несколько внешних устройств (n). Каждая линия имеет свой уровень приоритета. Все внешние устройства, подключенные к одной линии, имеют одинаковый приоритет, соответствующий данной линии запроса на прерывание.

Если внешнее устройство выставило запрос на прерывание, то в ЦП сравнивается приоритет запроса на прерывание и приоритет обрабатываемой программы.

Если приоритет запроса на прерывание выше, то происходит прерывание выполняемой программы в ЦП. При этом по соответствующей линии разрешения прерывания подается сигнал разрешения прерывания. (Внешние устройства подключаются к линии запроса на прерывание и к линии разрешения с одинаковыми номерами).

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