Приоритеты прерываний

Способы передачи адреса подпрограммной обработки прерываний

Организация обработки прерываний

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

Чтобы перейти к программе обработки прерываний нужно иметь информацию о её местоположении. Такая информация содержится в векторе прерывания. То есть вектор прерывания – это адрес первой команды подпрограммы обработки прерывания. Вектора объединяются в специальной таблице «Таблица векторов прерываний», она располагается в оперативной памяти. Вектор прерывания ставится в соответствии каждому уровню прерывания. Сформировать вектор прерывания можно различными способами.

Если иметь дело со специализированным процессором, в котором есть всего один вход запроса прерывания, то в самый процессор вводится дополнительный регистр – регистр адреса подпрограммы обработки прерывания.

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

МП     ….
Вектор 0
Вектор 1
Вектор N
INT 0
INT 1
INT N
Контрол-лер   преры-ваний
МП     INT INT A
1.
2.

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

2.Контроллер прерываний берет на себя функцию определения. Позволяет подключить гораздо большое количество источников (снимается ограничение), но любой контроллер связан с его программированием (теряется скорость обработки). В этом случае у МП всего один вход INT, а INTA – это подтверждение запроса.

1. Передача команды целиком, например: CALL_addr и RST_n. +адрес подпрограммы может быть любой –длинная команда (минимум 3 байта).

2. Передача номера вектора прерывания. +быстродействие выше; -низкая помехозащищенность (возможно ложное срабатывание запросов).

 

Бывают абсолютные и относительные приоритеты. Абсолютные приоритеты прерываний - текущую программу, а относительные – кандидаты на обслуживание (можно и не обслуживать).

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

Управлением приоритетом можно программно и аппаратном, можно смешанным.

 

 

03042012 Лекция 9