Приоритеты прерываний
Способы передачи адреса подпрограммной обработки прерываний
Организация обработки прерываний
Если прерывание похоже на подпрограмму, то и вызов подпрограммы обработки прерывания похож на вызов обычной подпрограммы.
Чтобы перейти к программе обработки прерываний нужно иметь информацию о её местоположении. Такая информация содержится в векторе прерывания. То есть вектор прерывания – это адрес первой команды подпрограммы обработки прерывания. Вектора объединяются в специальной таблице «Таблица векторов прерываний», она располагается в оперативной памяти. Вектор прерывания ставится в соответствии каждому уровню прерывания. Сформировать вектор прерывания можно различными способами.
Если иметь дело со специализированным процессором, в котором есть всего один вход запроса прерывания, то в самый процессор вводится дополнительный регистр – регистр адреса подпрограммы обработки прерывания.
Если имеется множество запросов прерываний и множество программ их обслуживания, то нужно иметь средство хранения нескольких адресов подпрограмм и функцию определения устройства, с которого приходит запрос. Два варианта:
МП …. |
Вектор 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