Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белош_Лекции_4_курс_2010г.doc
Скачиваний:
27
Добавлен:
16.07.2019
Размер:
2.92 Mб
Скачать

Использование контроллеров прерывания для повышения быстродействия микропроцессорной системы.

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

Контроллер включает в себя следующие блоки: РЗ – регистр запросов, на который поступает запрос Li от различных эелементов внешнего устройства. ШП – шифратор приоритетов – он формирует на своем выходе код номера соответствующего разряда регистра запросов. Чем выше номер разряда РЗ, тем больший приоритет этот запрос имеет. БУ – буферное устройство, с помощью которого контроллер подключается к линиям системной шины процессора. Это подключение осуществляется при получении сигнала подключения IntA. С выхода БУ на шину поступает вектор прерывания Vi.

РТП – регистр текущего приоритета. Этот регистр доступен из программы. В него может быть записан некоторый код приоритета, параллельно по сигналу от дешифратора адреса. СС – схема сравнения, она формирует сигнал запроса на шину Int, если номер поступившего запроса Li будет иметь более высокий номер L (приоритет), чем текущее. Наличие этих аппаратных узлов сокращает процессорное время, необходимое для выполнения этих действий программным способом, что в результате повышает быстродействие системы.

Программирование контроллеров прерывания.

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

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