Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otveti MPS.docx
Скачиваний:
15
Добавлен:
25.09.2019
Размер:
63.22 Кб
Скачать
  1. Ввод-вывод в режиме прерываний, последовательность событий при возникновении прерываний.

При организации системы или подсистемы прерываний, резко сокращаются непроизводственные потери времени. Последовательность событий при прерывании. Каждое ПУ может послать в процессор сигнал int, запрос на прерывание. Формирование сигнала int происходит в случае готовности УВВ к проведению очередного цикла ВВ. Сигнал int требует немедленного перехода ЦП к выполнению операций ВВ. Сигнал int появляется в произвольные моменты времени: асинхронно по отношению к действиям основного процессора и в общем случае управлять появлением сигнала int, со стороны прикладной программы невозможно. По появлению сигнала int ЦП должен прервать выполнение текущей программной нити, идентифицировать устр-во, породившее прерывание, передать управление соотв проге обработки прерываний и после её завершения вернуть управление к основной нити проги. В проге обслуживания прерываний потребуются внутренние регистры ЦП, что приведет к модификации их текузего состояния, а при возврате к основной нити проги вызовет сбой в её работе. Для борьбы с этим необходимо обеспечить временное хранение состояния регистров, модификация которых может быть выполнена в подпроге-обработчике (контекст проги), во временном хранилище. В качестве такого хранилища наиболее эффективна работа со стэком.

  1. Виды прерываний и особенности их реализации

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

2 Аппаратные прерывания могут инициироваться как операционными блоками микропроцессора, так и устройствами внешними по отношению к нему. Аппаратные прерывания подразделяются на маскируемые прерывания и немаскируемые прерывания. В микропроцессоре intel 8080 (580) анализ состояния входной линии int осущ во втором такте машинного цикла каждой команды. Переход к подпрограмме обслуживания прерываний переходит по условию «прерывания разрешены». ЦП реагирует на запросы маскируемых прерываний по линии int, если установлен внутренний триггер разрешения прерываний. Состояния этого регистра идентифицируют разрешение прерываний аналогично сигналам int. Не маскируемые прерывания – которые невозможно отключить программным путем. Маскируемые – которые могут быть отключены или включены в зависимости от желания программера. Управление соответствующими линиями прерываний осуществляется установкой либо сбросом отдельных битов (маска) в соответствующем регистре.

  1. Подпрограммы обслуживания прерываний и требования к ним.

Подпрограмма обслуживания прерывания – это спец прога или её часть, выполняющая алгоритм обработки ситуации, породившей прерывание. При разработке подпрограммы обработки прерываний следует учесть, что время выполнения подпрограммы, выполняющей прерывание, должно быть < чем время между возникновениями прерываний. В противоположном случает надо: 1) Оптимизировать подпрогу обработки прерываний с целью уменьшения времени обработки 2) При возможности предусмотреть запрет прерываний на время обработки прерывания. 3) Контролировать целостность инфы при каскадном вызове обработчиков прерываний. При невозможности устранения указанных недостатков принять решение о переходе на более мощную по вычислит стабильности систему, либо отказаться от применения системы прерываний.

  1. Программный полинг при идентификации устройства вызвавшего прерывание;

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

1. Управление возвращается в основную программу без проверки готовности остальных ПУ. Здесь гарантируется обязательная проверка в каждом цикле полинга ПУ с высоким приоритетом, так как обслуживание их блокирует обслуживание устройств с меньшим приоритетом.

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

  1. Аппаратный полинг при идентификации устройства вызвавшего прерывание;

В случае аппаратного полинга микропроцессор и все ПУ соединяются таким образом, что микропроцессор может осуществить автоматический запрос с целью идентификации прерывающего устройства. Когда микропроцессор реагирует на запрос прерывания, он формирует сигнал подтверждения прерывания INTA, на линии, которая последовательно проходит через все устройства. При прохождении сигнала по цепочке проверяется состояние флажков готовности ПУ. Если ПУ не формирует сигнал прерывания, сигнал INTA проходит в следующее ПУ, пока не встретит активное ПУ. Это ПУ блокирует дальнейшее распространение сигнала INTA по цепочке. Приоритет ПУ задается их физической близостью к микропроцессору по линии INTA. Затем активное ПУ передает по шине данных свой адрес (вектор прерывания), сопровождая его импульсом STROBE. Этот адрес имеет однозначное соответствие с начальным адресом подпрограммы обслуживания прерывания данного устройства. Время реакции микропроцессора на запрос прерывания определяется временем распространения сигнала INTA в цепочке и намного превышает времени реакции относительно программного полинга, но он требует дополнительные аппаратные средства для определения приоритета, а также для формирования адреса подпрограммы обслуживания.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]