ТОП 10:

Механизм реализации прерываний с помощью «старых» и «новых» ячеек



Все запросы на прерывание делятся на 5 классов:

 

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

прерывания

max приоритет min приоритет

· Аппаратное прерывание.

· В/в

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

· Супервизор.

· Программное прерывания.

min приоритет max приоритет

 

Обработка одного запроса на прерывание.

В оперативной памяти выделяются «старые» и «новые» ячейки, их количество соответствует числу классов прерывания (по 5 шт.)

  1. Код причины прерывания заносится на регистр ССП.
  2. Содержимое регистра ССП будет записано в «старую» ячейку для этого класса прерывания. (I)
  3. Содержимое «новой» ячейки для данного класса заносится на регистр ССП (II). В «новой» ячейке содержится адрес первой команды обработки прерывания и маски для обработки прерывания.

4. Выполнение программы обработки прерывания:

а. сохранение РОНов

б. непосредственное выполнение програмы обработки прерывания ( анализируется код причины прерывания и в соответствии с кодом выполняется нужная подпрограмма)

в. восстановление РОНов

5. Содержимое «старой» ячейки помещается на ССП (восстановление основных параметров) (III)

При выполнении одной команды приходят одновременно 2 запроса на прерывание от различных классов.

Пример: в/в и внешнее прерываие

  1. На регистр ССП поступает запрос внешних прерываний.
  2. В старую ячейку внешних прерываний записывается содержимое регистра ССП.
  3. Содержимое «новой» ячейки внешних прерываний заносится на регистр ССП. Регистр ССП содержит адрес первой команды программ обработки прерывания для внешних прерываний.
  4. Запрос по в/в заносится на регистр ССП. Содержимое регистра ССП заносится в «старую» ячейку по в/в. В старой ячейки по в/в будет занесен адрес первой команды внешних прерываний.
  5. Содержимое из «новой» ячейки по в/в записывается на регистр ССП (адрес первой команды программы обработки прерывания по в/в).
  6. Выполнение программы обработки прерывания по в/в.
  7. Содержимое «старой» ячейки по в/в заносится на регистр ССП (На регистре ССП будет содержаться адрес первой команды программы обработки внешних прерываний).
  8. Выполнение программы обработки внешних прерываний.
  9. Содержимое «старой» ячейки внешних прерываний записывается на регистр ССП (содержит адрес следующей команды прерванной программы).

Если программа обработки прерывания по в/в уже начала обрабатыватся, и приходит запрос от внешних прерываний, то эта система приоритетов не действует, а возможность прерывания определяется маской: если внешнее прерывание не замаскировано , то запрос от внешних прерываний будет обрабатываться

 

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

 

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

 

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

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

 

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

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

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

I - Вектор состояния будет для прерванной программы запомнен в стеке.

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

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

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

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

 

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

    ЦП
ЗПn.

ЗП1

 

РПn

РП1

 
 

 

 


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

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

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

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

 







Последнее изменение этой страницы: 2016-08-15; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.232.51.69 (0.007 с.)