- •7. Принципы управления микропроцессора.
- •7.1. Классификация микропроцессоров.
- •7.2. Декомпозиция мп.
- •7.3. Принцип аппаратного управления ("жёсткой" логики).
- •7.4. Принцип микропрограммного управления (гибкой логики).
- •7.5. Способы формирования сигналов управления
- •Код номера
- •7.6. Операционное устройство мп.
- •7.7. Обобщённая структурная схема мп.
- •Адресный блок
- •8. Элементы архитектуры мп.
- •8.1. Структура команд.
- •8.2. Способы адресации, основанные на прямом использовании
- •Номера реги- стров
- •Число 4527
- •Адрес 1765
- •8.3. Способы адресации, основанные на преобразовании кода команды.
- •8.4. Понятие вектора состояния мп.
- •8.5. Понятие системы прерывания программ.
- •8.6. Характеристики системы прерывания.
- •8.7. Способы организации приоритетного обслуживания
- •Счётчик
- •Счётчик
- •Компаратор
- •Код маски
- •8.8. Процесс выполнения команд. Рабочий цикл мп.
- •8.9. Конвейерная обработка команд и данных.
- •8.10. Особенности risc-архитектуры.
- •Регистры глобальных переменных
Дешифратор
n . . . 2 1
k . . . 2 1
&
&
1
S T
R
ОСП
1
2
k
Счётчик
товых импульсов (ГТИ).
&
Сброс
&
ГТИ
При помощи дешифратора и элементов И в каждом такте поиска проверяется наличие запроса прерывания, номер которого совпадает с кодом счётчика.
Если на данном входе нет запроса прерывания, то после увеличения состояния счётчика на 1 проверяется следующий по порядку вход. Если же имеется запрос, RS-триггер переключается в 1, при этом в процессор посылается общий сигнал прерывания ОСП и прекращается тактирование счётчика, т.е. завершается цикл просмотра входов системы прерывания.
Содержимое счётчика представляет собой код номера старшего по приоритету выставленного запроса. Этот код используется для формирования начального адреса прерывающей программы.
После передачи управления прерывающей программе счётчик и триггер сбрасываются в нулевое состояние, и процедура опроса возобновляется, начиная с первого входа.
Циклический (последовательный) опрос входов системы прерывания в аппаратурном отношении сравнительно прост. Однако время реакции и при этом методе всё-таки велико, особенно при большом числе источников запросов. Поэтому в ряде МП, например работающих в реальном масштабе времени, применяют однотактные схемы.
Цепочечная однотактная схема ("дейзи-цепочка") позволяет определить номер выставленного запроса старшего приоритета за один такт: (рис. на следующей странице).
"Приоритет"
ЗП1
ЗП2
И1
И1
И2
И2
…
у2
у1
ИЛИ
. . . .
Шифратор номера
приоритетного запроса
Код номера запроса
ОСП
ИКомпаратор
Код порога
прерывания
При отсутствии запросов этот сигнал пройдёт через цепочку и ОСП не сформируется.
Если среди выставленных запросов прерывания наибольший приоритет имеет i-й запрос, то распространение сигнала "приоритет" правее схемы И с номером i блокируется. На i-ом выходе цепочечной схемы будет сигнал yi=1, на всех других 0.
В процессор поступит ОСП, при этом шифратор по сигналу yi=1 сформирует код номера i-го запроса, принятого к обслуживанию.
По сигналу процессора "подтверждение прерывания" (на схеме не показан) этот код передаётся в процессор и используется для формирования начального адреса прерывающей программы.
Дополнительную часть схемы, обозначенную пунктиром, мы обсудим чуть позже.
Процедура прерывания с опросом, даже если опрос выполняется аппаратурными средствами, требует сравнительно больших временных затрат. Более гибким и динамичным является векторное прерывание.
При векторном прерывании исключается опрос источников прерывания (флажков регистра запросов).
Прерывание называется векторным, если источник прерывания, выставляя запрос прерывания, посылает в процессор код адреса, по которому расположен соответствующий вектор прерывания во внешней памяти.
Программно-управляемый приоритет позволяет изменять по мере надобности приоритетные соотношения программным путём.
Необходимость такого изменения приоритетных соотношений обусловлена изменением относительной степени важности программ в ходе вычислительного процесса и, как следствие, невозможностью жёсткой фиксации приоритетов.
Широко используются два способа реализации программно-управляемо-го приоритета прерывающих программ, в которых используются, соответственно, порог прерывания и маски прерывания.
Порог прерывания позволяет в ходе вычислительного процесса изменять (задавать) минимальный уровень приоритета запросов (порог прерывания), которым разрешается прерывать текущую программу.
Порог прерывания задаётся командой программы, устанавливающей в соответствующем регистре код порога прерывания.
Цепочечная схема выделяет наиболее приоритетный запрос прерывания. Цифровой компаратор (дополнительная часть цепочечной схемы, обозначенная пунктиром) сравнивает его приоритет с порогом прерывания и, если он оказывается выше порога, вырабатывает ОСП, начиная тем самым процедуру прерывания.
Маска прерывания представляет собой двоичный код, разряды которого поставлены в соответствие запросам или классам прерывания.
Схема программного управления приоритетом на основе маски прерывания имеет вид: