Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
01.05.2014
Размер:
121.34 Кб
Скачать

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

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

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

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

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

Оценка «____»

___________ А.Ф. Казак

“__” ____________ 2005 г.

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

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

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

Никитин С.Ю.

Кирюшкин Е.Н.

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

Содержание:

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

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

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

4. Список литературы

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

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

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

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

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

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

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

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

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

IR7......... ..IR0 Входы запросов

До обслуживания 0 1 0 1 0 0 0 0 Наличие запросов

7 6 5 4 3 2 1 0 Уровни приоритета

IR7.........................................IR0 Входы запросов

После обслуживания 0 1 0 0 0 0 0 0 Наличие запросов

2 1 0 7 6 5 4 3 Уровни приоритета

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

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

Включение контроллера прерываний в систему показано на рис.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.Структура программируемого контроллера прерываний

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

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

Интерфейс программы:

Для работы программы необходимо заполнить её “Основные параметры”. Для этого в 8 CobmoBox-ах надо выбрать устройство.

“Основные параметры” должны быть заполнены полностью, в противном случае вам высветится подсказка.

После того как все было заполнено нажмите кнопку “Начать работу” и вам станут доступны галочки с помощью которых можно подавать запросы от устройств. Также с помощью кнопки “Изменить условия” вы сможете вернуться в основные параметры (Рис. 4).

Рис.4

После того как было подан запрос в регистр IRR, контроллер прерываний отправляет сигнал INT процессору о том что появился запрос на прерывание, и ждет от него сигнала разрешения на прерывание INTA.После прихода сигнала INTA устройство начинает свою работу (Рис. 5).

Рис.5

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

Если же во время выполнения команды пришла команда с более высоким приоритетом, то выполняющаяся команда снимается, а ее адрес записывается в стек. После выполнение более приоритетной программы она продолжит своё выполнение.

Также в программе предусмотрено маскирование.

Команда не будет выполняться, если на неё наложена маска.

4. Список литературы

1.Угрюмов Е.П.

Цифровая схемотехника.—СПб.:БХВ-Петербург, 2004-528с.

2.Казак А.Ф.

Лекционный курс

3.Михаил Гук