Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / doc92 / Супрунов.doc
Скачиваний:
25
Добавлен:
03.08.2013
Размер:
321.02 Кб
Скачать

4. Система прерываний.

Последовательная на микроуровне.

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

  1. Распознование запроса на прерывание.

На этом этапе происходит расрознование процессором запроса на прерывание, поступающего по линии запросов на прерывание.

  1. Запоминание состояния.

Нужно запомнить состояние прерванного процесса.

  1. Подтверждение прерывания.

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

4. Вызов подпрограммы обработки прерывания.

Устройство запросившее прерывание само указывает адрес обработчика.

Другой способ заключается в том, что используется одна подпрограмма, которая опрашивает все устройсва, чтобы определить,

какое из них направило запрос на прерывание.

5. Восстановление и возврат.

4.1. Последовательная структура.

Имеется одна общая для всех устройств (Рис. 3.) линия запроса на прерывание. Получив запрос процессор посылает сигнал, подтверждающий получение запроса. Сигнал подтверждения прерывания проходит от одного усройства в/в к другому до тех пор, пока не достигнет устройства, пославшего запрос на прерывание. Тогда это устройство подает свой идентифицирующий номер (вектор) на шину данных. Для такой структуры характерны более низкие затраты программных средств, однако распредиление приоритетов устройств, здесь фиксировано. Кроме того сигнал INTA (Interrupt Acknowledge – Подтверждение прерывания) проходит через устройства с некоторой временной задержкой.

Рис. 3 Последовательная структура прерываний.

4.2. Прерывания на микроуровне.

Прерывания могут обрабатываться после каждой микрокоманды. Иногда требуется, чтобы прерывания обрабатывались с максимально возможной скоростью для этого и существует обработка прерываний на микропрограмном уровне. Для реализации этого решения был использован БМПУ АМ2910, а также несколько микросхем. Введение дополнительных логических схем не сказывается на нормальном времени цикла прохождения информации.

Адрес невыполненной микрокоманды, когда выходы устройства АМ2910 переведены блоком синхронизации и управления в состояние высокого сопротивления и вместо выработанного им адреса подается замещающий адрес от генератора вектора прерываний, сохраняется без изменений путем подачи сигнала запрета увеличения на 1 на вход переноса. Таким образом, адрес, сформированный устройством АМ2910, поступает в неизменном виде в счетчик микрокоманд. Если микропрерывание продолжается дольше одного цикла, содержимое счетчика микрокоманд должно быть загружено в стек , чтобы сохранить адрес возврата. В противном случае можно осуществить возврат из микропрограммы обработки прерывания в ближайшем следующем цикле.

Запрос на прерывание поступает на блок управления прерываниями и сигнал прерывания из блока управления прерываниями поступает на блок синхронизации и управления, который путем подачи сигналов на вход OE АМ2910 и CI (перенос) переводит его выход в третье состояние и запрещает инкрементирование адреса. Адрес стандартной микропрограммы обработки прерывания (одной для всех устройств) поступает из блока управления прерываниями и генерирования вектора на МПП. Эта микропрограмма сохраняет все нужные для дальнейшей работы регистры и ССП, выдает INTA, ПУ выдавшее запрос отвечает вектором прерываний, а процессор управляемый стандартной микропрограммой обработки прерывания принимает вектор прерываний с шины данных. Вызывает уже специальную программу обработки прерывания для данного устройства адрес, которой указан в векторе. После окончания обработки прерывания адрес, на котором была остановлена прерванная микропрограмма, выталкивается из стека.

Соседние файлы в папке doc92