Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Б М.docx
Скачиваний:
148
Добавлен:
09.06.2015
Размер:
2.63 Mб
Скачать

Запоминание состояния процес­сора (программы)

\Нвт

во сстановление состояния процессор^

Сброс флажка О. Выполнение прерывающей программы (передача банных для устройства О)

Сброс флажка 1. Выполнение прерывающей программы (передача данных для устройства 1)

Сброс флажка 2. Выполнение прерывающей программы (передачи данных для устройства 2)

Сброс флажка к. Выполнение прерывающей программы (передачи данных для устройства к)

а)

Разрешениеf прерывания j

>i

Д Компаратор М В)

Одщий сигнал прерывания

_ *-pv

разрядов регистра запросов прерывания) производится последо­вательно (циклически) с помощью /г-разрядного счетчика (2Л^ на который с некоторой частотой поступают импульсы от генератора. Поиск приоритетного запроса прерывания начинает­ся со сброса сГЧетчика и одновременно триггера Т в нулевое состояние, при этом импульсы генератора начинают поступать на вход счетчика. При помощи дешифратора и элементов И в каждом такте поиска проверяется наличие запроса пре­рывания, номер которого совпадает с кодом счетчика. Если на данном входе нет запроса прерывания, то после прибавления 1 к счетчику проверяется следующий по порядку вход. Если имеется запрос, триггер Т перебрасывается в 1, при этом в про­цессор посылается общий сигнал прерывания ОСП и прекраща­ется поступление импульсов на вход счетчика, т. е. завершается цикл просмотра входов системы прерывания. Содержимое счет­чика — код номера старшего по приоритету выставленного за­проса — используется для формирования начального адреса прерывающей программы. После передачи управления прерыва­ющей программе счетчик (и триггер Т) сбрасывается в 0, и про­цедура опроса запросов возобновляется, начиная с первого входа.

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

Цепочечная однотактная схема определения приоритетного зйпроса («дейзи-цепочка») представлена на рис. 9.27, в. Как и в предыдущих случаях, приоритет запросов прерывания воз­растает с уменьшением их номера.

Процедура определения приоритетного запроса инициирует­ся сигналом Приоритет, поступающим на цепочку последова­тельно включенных схем И. При отсутствии запросов этот сиг­нал пройдет через цепочку и сигнал общего запроса прерывания не сформируется. Если среди выставленных запросов прерыва­ния наибольший приоритет имеет i-Pi запрос, то распространение сигнала Приоритет правее схемы И с номером i блокируется. На i-м выходе цепочечной схемы будет сигнал t//= 1, на всех других

  1. В процессор поступит общий сигнал прерывания, при этом шифратор по сигналу yL = 1 сформирует код номера i-го запроса, принятого к обслуживанию. По сигналу процессора Подтвер­ждение прерывания (на рис. 9.27 не показан) этот код передает­ся в процессор и используется для формирования начального адреса прерывающей программы.

Схемы, представленные на рис. 9.27, б ив, производят поиск крайней левой единицы в наборе сигналов прерывания и форми­руют код номера i запроса, удовлетворяющего условию

Векторное прерывание

Представленные на рис. 9.27 способы определения запроса с наибольшим приоритетом включают в себя так или иначе выполняемую процедуру опроса источников прерывания (входов системы прерывания). Эта процедура, даже если она выпол­няется аппаратурными средствами, требует сравнительно боль­ших временных затрат.

Более гибким и динамичным является векторное прерывание, при котором исключается опрос источников прерывания (флаж­ков регистра прерывания).

Прерывание называется векторным, если источник прерыва­ния, выставляя запрос прерывания, посылает в процессор (вы­ставляет на шины интерфейса) код адреса в памяти своего вектора прерывания.

Отметим, что если прерывание на основе опроса источников прерываний всегда сопровождается переходом по одному и тому же адресу и инициирует одну и ту же прерывающую подпрог­рамму, которая после идентификации источника запроса и фор­мирования адреса начала соответствующей запросу прерываю­щей программы передает ей управление, то при векторном пре­рывании каждому запросу прерывания, или, другими словами, устройству — источнику прерывания, соответствует переход к начальному адресу соответствующей прерывающей програм­мы, задаваемому вектором прерывания.

Программно-управляемый приоритет прерывающих программ

Относительная степень важности программ, их частота по­вторения, относительная степень срочности в ходе вычислитель­ного процесса могут меняться, требуя установления новых прио­ритетных отношений. Поэтому во многих случаях приоритет между прерывающими программами не может быть зафиксиро­ван раз и навсегда. Необходимо иметь возможность изменять по мере надобности приоритетные соотношения программным пу­тем, другими словами, приоритет между прерывающими про­граммами должен быть динамичным, т. е. программно-управля­емым.

В ЭВМ широко применяются два способа реализации про­граммно-управляемого приоритета прерывающих программ, в которых используются соответственно порог прерывания (в малых и микроЭВМ) и маски прерывания (в ЭВМ общего назначения).

Порог прерывания. Этот способ позволяет в ходе вычисли­тельного процесса программным путем изменять уровень прио­ритета процессора (а следовательно, и обрабатываемой в дан­ный момент на процессоре программы) относительно приорите­тов запросов источников прерывания (в основном периферийных устройств), другими словами, задавать порог прерывания, т. е. минимальный уровень приоритета запросов, которым разре­шается прерывать программу, идущую на процессоре.

Порог прерывания задается командой программы, устанав­ливающей в регистре порога прерывания код порога прерыва­ния. Специальная схема выделяет наиболее приоритетный за­прос прерывания, сравнивает его приоритет с порогом прерыва­ния и, если он оказывается выше порога, вырабатывает общий сигнал прерывания, и начинается процедура прерывания (рис. 9.27, в).

В современных ЭВМ общего назначения наибольшее распро­странение получило программное управление приоритетом на основе маски прерывания (рис. 9.28).

Маска прерывания представляет собой двоичный код, разря­ды которого поставлены в соответствие запросам или классам прерывания. Маска загружается командой программы в регистр маски. Состояние 1 в данном разряде регистра маски разрешает, а состояние 0 запрещает (маскирует) прерывание текущей про­граммы от соответствующего запроса. Таким образом, програм-

Эалросы прерывания

А