Скачиваний:
12
Добавлен:
01.05.2014
Размер:
223.23 Кб
Скачать

Министерство образования и науки Российской Федерации

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ "ЛЭТИ" ИМЕНИ В.И. УЛЬЯНОВА (ЛЕНИНА)

197376, Санкт-Петербург, ул. проф. Попова, 5.

Факультет компьютерных технологий и информатики

Кафедра вычислительной техники

Оценка «____»

___________ А.Ф. Казак

“__” ___________2007 г.

Пояснительная записка к лабораторной работе по предмету "Архитектура ЭВМ"

Тема: "Обработчик прерываний"

Студенты гр. 3371

Гладилин Г.А.

Хамаганова М.М.

Санкт Петербург

2007

1.Задание на лабораторную работу

Обработчик прерываний.

Уточнение: написать программу-эмулятор контроллера прерываний. В данной работе будет реализована структурная схема

программируемого контролера прерываний Intel 8259A(рис. 3).

2. Теоретические сведения

Вложенные прерывания с фиксированными приоритетами входов.

Имеются 8 входов запросов прерывания IR7....IR0. Низший приоритет имеет вход IR7,а высший у R0. Вложенность-возможность прерывания подпрограммы обслуживания запроса другой подпрограммой с более высоким приоритетом, которая, в свою очередь, также может быть прервана программой с более высоким приоритетом. Возможность вложенных прерываний обеспечивается введением команды IE(Enable Interrupt) в подпрограмме обслуживания прерываний. Прерывания с фиксированными приоритетами реализуются просто, но запросы неравноправны и при интенсивном поступлении запросов с высокими приоритетами запросы с низкими приоритетами могут вообще не получить обслуживания, т.е. возможно их оттеснение более приоритетными запросами.

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

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

Рис. 1 Изменение приоритетов при работе с круговым приоритетом

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

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

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

Рис. 2 Схема подключения контроллера прерываний

в микропроцессорную систему.

Структура ПКП.

Структура ПКП Intel 8259A представлена на рис. 3. В английской терминологии ПКП называют PIC(Programmble Interrupt Controller).

Запросы прерываний от ВУ поступают в регистр запросов IRR, сохраняющий запросы до их принятия на обслуживание. Биты регистра IRR сопоставляются с битами регистра масок IMR. Биты регистра масок действуют также на работу схемы определения приоритетов и регистр обслуживания ISR, так что маскирование может быть осуществлено не только на стадии приема запросов, но и на более поздних стадиях их обработки.

Если приоритет запроса выше текущего приоритета, то при вложенных прерываниях формируется сигнал INT для процессора. При поступлении от процессора сигнала подтверждения прерывания INTA приняты запрос переходит в регистр обслуживания ISR и сбрасывается в регистре IRR.

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

Сигналы IR0....IR7 – входы запросов прерывания, А0-младший разряд адреса, показывает, к какому регистру управляющих слов (УСИ или УСО) обращается процессор. Сигналы CAS2-0 связаны с работой контроллера в групповой схеме, образуют выходную шину данных для ведущего контроллера и входную для ведомых. Сигнал SP определяет, является ли контроллер ведущим или ведомым в групповой схеме, как ЕN используется в так называемом буферизированном режиме для разрешения выхода на шину системы, т.е. для управления выходными буферами участков обмена.

Рис. 3 Структура ПКП i8259

3. Описание программы

Программу-эмулятор контроллера прерываний. В ней реализована структурная схема программируемого контролера прерываний Intel 8259A(рис. 3).

Рис. 4 Интерфейс программы

Описание интерфейса приведено на рис. 5.

Для начала работы программы необходимо нажать “Start”. Будет запущен таймер, подающий такты каждую секунду.

Для подачи/снятия запросов на прерывание необходимо поставить/убрать галочку с соответствующего Checkbox’a (IRQ0..7). При этом измениться содержимое регистра IRR и в форму лога будет выдано сообщение. При следующем такте запрос будет отработан и в форму лога будет выдан результат работы схемы определения приоритетов, касаемо всех запросов на прерывания. Когда программа прерывания поступит на обработку процессору, поле “Current Task” будет изменено на соответствующее название программы прерывания (IRQ0..7) и измениться содержимое регистра ISR.

Для маскирования/де~ прерывания необходимо поставить/убрать галочку с соответствующего Checkbox’a (IM0..7). При этом измениться содержимое регистра IMR и в форму лога будет выдано сообщение.

Для остановки работы программы необходимо нажать “Stop”.

Для завершения программы – закрыть окно.

Программа состоит из исполняемого файла interrupt.exe и графического файла scheme.png, в котором находится изображение устройства.

Для работы программы необходимы QtCore4.dll, QtGui4.dll, входящие в комплект Trolltech Qt 4.*.*, а также mingwm10.dll, входящий в комплект компилятора MinGW.

Рис. 5 Описание интерфейса

Соседние файлы в папке Лабораторная работа по архитектуре ЭВМ1