Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5-Apparatnye_preryvanija_v_OMK.docx
Скачиваний:
4
Добавлен:
18.09.2019
Размер:
92.75 Кб
Скачать

Реакция на запрос аппаратного прерывания

Как это устроено в универсальном цифровом процессоре.

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

В процессоре имеется пара специальных команд: Разрешить_прерывание и Запретить_прерывание. Использование этих команд позволяет программисту управлять реакцией процессора на сигнал запроса прерывания.

В большинстве процессоров Запрет или Разрешение прерывания меняют состояние специального бита в регистре состояний процессора. Обычно этот бит называют флагом разрешения прерывания (если единичное значение этого бита разрешает прерывание) либо маской прерывания (если единичное значение бита запрещает – маскирует ‑ прерывание). Эти команды позволяют программисту «защищать» от прерываний участки программы, которые по тем или иным причинам должны выполняться неразрывно.

При действии запроса прерывания на входе процессора, последний:

  1. Заканчивает выполнение очередной команды, т.е. реакция на запрос никогда не бывает мгновенной.

  2. Проверяет флаг прерывания, т.е. разрешено ли ему прерывание. Если разрешено, то выполняет шаги 3)…5), если же прерывание запрещено, переходит к выполнению следующей команды программы по порядку.

  3. Если прерывание разрешено, запоминает элементы контекста, позволяющие после окончания выполнения обработчика вернуть управление в фоновую программу (в большинстве процессоров это адрес возврата, т.е. содержимое счетчика команд и содержимое регистра состояний – флаги и др, в частности, флаг прерывания в состоянии «разрешено»).

  4. Запрещает вложенное прерывание, переключая флаг прерывания в регистре состояний в значение «запрещено».

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

Действия 1)…6) реализованы в процессоре аппаратно и выполняются при возникновении запроса автоматически. Программист лишь должен запрограммировать предварительные настроечные действия, для того, чтобы сделать механизм прерывания работоспособным. Обратим внимание на то, что время, затрачиваемое процессором на выполнение этих действий, может быть существенным, и в некоторых случаях должно учитываться при проектировании.

Как это реализовано аппаратно

Процессор имеет вход запроса прерывания.

Запрос может выполняться уровнем сигнала либо перепадом. Что это означает.

Логический сигнал кодирует значения двух двоичных цифр, 0 и 1. Для кодирования выбраны два диапазона напряжения. Выбор делают разработчики данного класса интегральных схем. Например, для ИС с номинальным напряжением питания 3,3В (допустимый интервал от 2,7В до 3,6В) для изображения двух значений логической переменной используют два интервала: Low ‑ 0…≤0,5В и High ‑ ≥2,0…3,6В. Какой из интервалов изображает 0, и какой 1, в ряде случаев может решать разработчик системы. Если не оговорено иное, далее будем предполагать, что уровень Low соответствует «нулю», а уровень High – «единице».

Запрос уровнем. Один из уровней L или H соответствует наличию запроса, будем называть этот уровень «активным». Другой уровень («пассивный») соответствует отсутствию запроса. Выбор того, какой из уровней является активным, делает производитель микропроцессора.

(Диаграмма, показывающая, как запрос прерывания может быть потерян, если прерывания запрещены).

Запрос перепадом. В этом случае активным фрагментом, вызывающим запрос является переход сигнала запроса из одного состояния в другое. Входная схемотехника запроса может быть чувствительна к нарастанию сигнала (переход L→H) либо к спаду (переход H→L). Выбор активного фрагмента делают разработчики процессора, а пользователь должен учитывать этот выбор. Если в процессоре реализован запрос перепадом, то это означает, что внутренняя входная схемотехника имеет элемент памяти (триггер), который устанавливается при действии перепада и, тем самым, запоминает факт поступления запроса. Такой запрос не будет потерян, даже если прерывания в момент прихода запроса были запрещены.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]