Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВТ_2 часть.doc
Скачиваний:
6
Добавлен:
16.09.2019
Размер:
439.81 Кб
Скачать

Счётчик

Дешифратор

n . . . 2 1

k . . . 2 1

&

&

1

S T

R

ОСП

1

2

k

Счётчик тактируется сигналами генератора так-

товых импульсов (ГТИ).

&

Сброс

&

ГТИ

Поиск приоритетного запроса прерывания начи- нается со сброса счётчика и RS-триггера в нулевое сос- тояние, при этом импульсы генератора начинают поступать на счётный вход счётчика.

При помощи дешифратора и элементов И в каждом такте поиска проверяется наличие запроса прерывания, номер которого совпадает с кодом счётчика.

Если на данном входе нет запроса прерывания, то после увеличения состояния счётчика на 1 проверяется следующий по порядку вход. Если же имеется запрос, RS-триггер переключается в 1, при этом в процессор посылается общий сигнал прерывания ОСП и прекращается тактирование счётчика, т.е. завершается цикл просмотра входов системы прерывания.

Содержимое счётчика представляет собой код номера старшего по приоритету выставленного запроса. Этот код используется для формирования начального адреса прерывающей программы.

После передачи управления прерывающей программе счётчик и триггер сбрасываются в нулевое состояние, и процедура опроса возобновляется, начиная с первого входа.

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

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

"Приоритет"

ЗП1

ЗП2

И1

И1

И2

И2

у2

у1

ИЛИ

. . . .

Шифратор номера приоритетного запроса

Код номера запроса

Компаратор

ОСП

И

Как и в преды- дущей схеме при- оритет запросов прерывания уме- ньшается с возра- станием их номе- ра.

Код порога прерывания

Процедура определения при- оритетного запроса инициируется сигналом "приоритет", поступающим на цепочку последовательно включённых схем И.

При отсутствии запросов этот сигнал пройдёт через цепочку и ОСП не сформируется.

Если среди выставленных запросов прерывания наибольший приоритет имеет i-й запрос, то распространение сигнала "приоритет" правее схемы И с номером i блокируется. На i-ом выходе цепочечной схемы будет сигнал yi=1, на всех других 0.

В процессор поступит ОСП, при этом шифратор по сигналу yi=1 сформирует код номера i-го запроса, принятого к обслуживанию.

По сигналу процессора "подтверждение прерывания" (на схеме не показан) этот код передаётся в процессор и используется для формирования начального адреса прерывающей программы.

Дополнительную часть схемы, обозначенную пунктиром, мы обсудим чуть позже.

Процедура прерывания с опросом, даже если опрос выполняется аппаратурными средствами, требует сравнительно больших временных затрат. Более гибким и динамичным является векторное прерывание.

При векторном прерывании исключается опрос источников прерывания (флажков регистра запросов).

Прерывание называется векторным, если источник прерывания, выставляя запрос прерывания, посылает в процессор код адреса, по которому расположен соответствующий вектор прерывания во внешней памяти.

Программно-управляемый приоритет позволяет изменять по мере надобности приоритетные соотношения программным путём.

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

Широко используются два способа реализации программно-управляемо-го приоритета прерывающих программ, в которых используются, соответственно, порог прерывания и маски прерывания.

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

Порог прерывания задаётся командой программы, устанавливающей в соответствующем регистре код порога прерывания.

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

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

Схема программного управления приоритетом на основе маски прерывания имеет вид: