Полная версия

Главная arrow Информатика arrow Архитектура ЭВМ и систем

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ   >>

Обмен с прерыванием программы

При этом способе инициатором обмена является внешнее устройство, которое подает сигнал запроса прерывания (ЗПр) на соответствующий вход процессора. Во время пребывания в последнем цикле команды по сигналу Ф2 производится опрос сигнала ЗПр. Запрос удовлетворяется в том случае, если ЗПр = I и триггер разрешения прерывания в устройстве управления находится в единичном состоянии. Его сигнал РПр подается на выход Разрешение прерывания процессора. Микропроцессор автоматически устанавливается в состояние запрета восприятия прерываний (сигнал РПр = 0) после выполнения начальной установки и после начала обслуживания прерывания, а также по команде DI – запрет прерываний.

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

Первый машинный цикл для обоих способов является общим и отличается от цикла М | извлечения кода команды из памяти тем, что содержание программного счетчика микропроцессора при этом не увеличивается. На первом такте T1 триггер разрешения прерывания сбрасывается, выдавая нулевой сигнал на выход Разрешения прерывания. Затем на шину данных поступает слово состояния с единицами в разрядах D0 (подтверждения прерывания), D1 (режима чтения из памяти или ввода из внешнего устройства), D5 (приема первого байта команды), информирующее о восприятии и начале обслуживания прерывания. Команда RST вызывается из внешнего устройства по сигналу подтверждения прерывания ППр = 1, сформированному в формирователе управляющих сигналов с помощью D5 и сигнала Прием (рис. 6.7). Существует восемь кодов 11NNN111 (NNN= 000,..., Ill) команды RST, каждый из которых хранится в регистре кодов прерывания внешнего устройства и указывает начальный адрес подпрограммы. Получив на первом машинном цикле код команды, микропроцессор на последующих двух циклах записывает в стек текущие значения программного счетчика. Это необходимо для возврата к прерванной программе, который можно осуществить с помощью команды возврата RET, выгрузив из стека содержимое двух верхних ячеек. Отличие исполнения команды CALL состоит в том, что на втором и третьем машинных циклах происходит загрузка из памяти второго и третьего байтов команды, являющихся адресом подпрограммы.

Организация прерываний и особенности систем прерываний рассматриваются в § 6.5.

Обмен данными с помощью прямого доступа к памяти

В этом случае используется канал прямого доступа к памяти (ПДП), по которому массивы данных передаются непосредственно между внешним устройством и ОЗУ, минуя процессор. Это позволяет достичь наибольшей скорости передачи, но требует определенных аппаратных затрат для организации канала. Аналогично случаю обмена по прерыванию ВУ посылает в процессор сигнал запроса на прямой доступ. После отправления сигнала подтверждения процессор прекращает работу по выполнению текущей программы, отключает свои буферные регистры от шин адреса и данных, а также прекращает выработку управляющих сигналов. Таким образом, процессор как бы замирает до окончания процедуры ПДП – этим данный режим и отличается от режима обработки прерывания. Все функции адресации, передачи данных и управления выполняет контроллер ПДП, содержащий счетчик адреса, счетчик числа слов в массиве, а также ряд триггеров и логических схем, которые внесены в блок управления.

До начала работы канала ПДП в счетчик адреса заносится адрес ячейки ОЗУ, с которой начинается массив данных, и в счетчик слов (в прямом или дополнительном коде) – число слов в массиве. При передаче каждого слова содержимое этих счетчиков изменяется на единицу и обмен данными производится автоматически, пока не будет передан весь массив слов. Этому способу обмена посвящен § 6.6.

 
<<   СОДЕРЖАНИЕ   >>