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

Запросы прерывания

. . .

РгЗП

. . .

&

&

&

. . .

РгМ

. . .

Код маски

Схема вы-деления незамаскированного зап-роса стар-шего приоритета

ОСП

Код приоритетного запроса

Маска загружается командой программы в регистр маски (РгМ).

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

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

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

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

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

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

Прерывание же, вызванное переполнением разрядной сетки следует при его маскировании игнорировать. В противном случае этот запрос может повлиять на ту часть программы или другую программу, к которым это переполнение не относится.

8.8. Процесс выполнения команд. Рабочий цикл мп.

Функционирование микропроцессора состоит из последовательности рабочих циклов.

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

Общее число тактов отдельного цикла зависит от типа соответствующей ему команды.

Рассмотрим обобщённую схему рабочего цикла процессора для четырёх групп команд: 1) основных (арифметические, логические и пересылочные операции); 2) передачи управления (условные и безусловные переходы); 3) ввода-вывода; 4) системных (устанавливают состояние процессора, маску прерывания и др.). На схеме символ Тi обозначает i-й этап.

Начало

Режим

Счёт

Ожидание

Есть

Есть

Нет

Запрос прер.

Запрос прер.

Нет

Т1

Выборка коман.

Т2

Формир. адреса

Основные команды

Кома нды перед ачи управл ения

Команды ввода-вывода

Формирование исполнительных адресов

Формирование номера канала и периф. уст.(ПУ)

К обработке запросов прерывания

Р

Т3

Выборка

операндов

из памяти

Усл. пе-

Изменение

состояния

процессора

Канал и

Нет

абочий цикл начинается с распознавания состояния процессора. Устанавливается одно из альтернативных состояний «счет» или «ожидание».

следующей ком.

Нет

ПУ своб.

Т5

Анализ кода операции в команде

Да

Систем ные коман ды

Передача в ка-

нал КОП ввода-

Перевод МП в

режим

Выполнение

операций в АЛУ

вывода и № ПУ

ожидания

Формирование

признака результата

Передача адре- са перехода в счётчик ком.

рехода

Да

Запоминание результата.

Т4

Далее проверяется наличие незамаскированных прерываний.

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

В состоянии "счёт" при наличии незамаскированных прерываний происходит выход из нормального рабочего цикла и переход к процедуре обработки запросов прерывания.

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

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

При выполнении основных команд производится подготовка операндов (формирование исполнительных адресов и выборка операндов из памяти), их обработка в АЛУ и запоминание результата.

Кроме того, формируется признак результата операции, который используется командами условного перехода при организации ветвлений в программах.

При выполнении команд передачи управления проверяется заданное командой (например, её полем маски) условие.

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

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

Команды ввода-вывода инициируют операцию обмена информацией между МП и внешней памятью или периферийным устройством.

Сама операция выполняется каналом под управлением его собственной программы. Поэтому на долю МП остаётся только процедура опроса состояний канала и периферийного устройства – свободны они для операции ввода-вывода или нет.

Если свободны, МП выдаёт в канал информацию, необходимую для начала операции ввода-вывода.

В противном случае МП переключается в состояние "ожидание" и ждёт сигнала прерывания от этого канала.

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