Главная страница

Понятие прерывания 2 Цель и механизм


Скачать 58.82 Kb.
НазваниеПонятие прерывания 2 Цель и механизм
Дата29.03.2023
Размер58.82 Kb.
Формат файлаdocx
Имя файлаlection4.docx
ТипДокументы
#1022852
страница10 из 10
1   2   3   4   5   6   7   8   9   10

Контроллер прерывания


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


    • маскирование запросов на прерывание, то есть временное запрещение реакции на них;

    • установка приоритетов запросов по различным входам, то есть разрешение конфликтов при одновременном приходе нескольких запросов на прерывание;

    • работа в качестве основного контролера (Master) или подчиненного (Slave).


Логически в контроллере можно выделить 4 основных узла :

      • Регистр входных запросов

      • Регистр маски

      • Схема приоритетов

      • Регистр обслуживаемых запросов


IF

Процедура

прерывания
Сигнал

IRQ8





IRQ9
IRQ10

1
0

0




0
0





х







1
0

IRQ11

0







1




х







0

IRQ12

0







0




х







0

IRQ13

0







1




х



овка




0

IRQ14

0







0




х



окир




0

IRQ 15

0







1




х



Бл




0


































Регистр







Регистр




Схема







Регистр



запросов

Последовательность обработки внешнего аппаратного прерывания имеет следующий вид:

  1. Сигнал запроса прерывания поступает на вход регистра запросов и устанавливает в 1 соответствующий бит.

  2. Значение регистра маски, равное 0, разрешает прохождение сигнала на схему анализатора приоритетов. (значение равное 1 запрещает) .

  3. Схема приоритетов формирует сигнал, поступающий на вход регистра обслуживаемых запросов.

  4. Сигнал запроса прерывания поступает на вход регистра обслуживаемых запросов и дает разрешение на установку в 1 его бита ( однако не устанавливает). Одновременно сигнал поступает на вход INT . Процессор регистрирует поступление сигнала, если установлен флаг разрешения прерываний IF в регистре флагов ( сброс флага IF командой cli запрещает аппаратные прерывания)

  5. Микропроцессор, получив сигнал INT, формирует выходной сигнал INTA, который устанавливает бит регистра обслуживаемых запросов, разрешенный сигналом запроса прерывания (см. п.4) и сбрасывает аналогичный бит регистра запросов. Одновременно процессор сбрасывает флаг IF в регистре флагов, запрещая все аппаратные прерывания .


Поскольку процессор, получив сигнал INT, сбрасывает IF , при входе в обработчик все прерывания оказываются запрещенными и программа не может быть прервана внешними сигналами. Командой sti устанавливают флаг IF и разрешают прохождение запросов прерывания в процессор . Однако все уровни прерываний , начиная с текущего, остаются заблокированными в контроллере. В результате работа обработчика может быть прервана только при поступлении запроса прерывания более высокого приоритета . Такая ситуация называется вложенным прерыванием.

Выполнение в обработчике команд , реализующих приказ конца прерываний EOI, снимает блокировку в контроллере , и начиная с этого момента запрос прерывания любого уровня прервет выполнение обработчика. Особенно неприятной может оказаться ситуация , когда обработчик прерывается сигналом запроса прерывания того же уровня. Это приводит к тому, что программа обработчика, не дойдя до конца , опять начинает выполняться с самого начала. Для избежания данной ситуации обработчик прерываний должен быть предусматривать повторную входимость.

Выводы


  • Прерывание можно рассматривать как некоторое особое событие в системе, требующее моментальной реакции.

  • Механизм прерываний отлично подходит для управления событиями в вычислительной системе.

  • Система распознает прерывания и при их возникновении запускает процедуру, соответствующую номеру прерывания.

  • Существуют зарезервированные для использования центральным процессором прерывания.

  • Прерывания бывают аппаратными, программными и исключениями.

  • Чтобы связать адрес обработчика прерывания с номером прерывания используется таблица векторов прерываний.




Обработка прерываний


1   2   3   4   5   6   7   8   9   10


написать администратору сайта