Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Цикл по прерыванию программы
В PC совместимых компьютерах используется два вида прерываний: аппаратные и программные. Прерывания, которые связаны с внешними по отношению к микропроцессору устройствами, например, с дисковыми накопителями, клавиатурами, принтерами, таймерами, получили название аппаратных прерываний. Прерывания, которые генерируются в самом микропроцессоре, получили название программных прерываний. Прерывание, которое может игнорироваться микропроцессором, называют маскируемым. Маскируемые прерывания разрешаются и блокируются программным способом. В PC используется программируемый контроллер прерываний, который обрабатывает запросы на внешние прерывания, поступающие по восьми линиям и генерирует для процессора код типа прерывания (рис 3.7). Рисунок 3.7 – Схема организации прерываний в компьютере PC Каждой линии прерывания соответствует свой код (см. таблицу 3.1). Таблица 3.1 – Коды и функции прерываний.
Умножая код на 4 можно получить адрес вектора прерывания для данной линии. Каждый вектор прерываний состоит из четырех байт – 16 разрядного смещения и 16 разрядного сегмента (рис 3.8). Обработка прерывания сводится к следующему. По переднему фронту сигнала IRQ контроллер прерываний вырабатывает сигнал INTR – запрос на прерывание. Процессор, если данное прерывание разрешено, выставляет сигнал INTA – разрешение прерывания, помещает содержимое своих регистров и программного счетчика в стек. Рисунок 3.8 – Вектор прерывания. Затем по коду прерывания помещает вектор прерывания в программный счетчик и переходит на программу обслуживания данного устройства. Внешнее устройство должно удерживать сигнал IRQ в высоком состоянии до тех пор, пока к нему не будет обращения. После выполнения цикла ВВОД или ВЫВОД внешнее устройство должно снять сигнал IRQ. После выполнения программы обслуживания данного прерывания процессор восстанавливает содержимое своих регистров и программного счетчика и продолжает выполнение основной программы.
Для работы с прерываниями выделено два регистра. Формат первого регистра (первое слово рабочих приказов OCW1 – порт 21) приведен на рис. 3.9. Рисунок 3.9 – Регистр OCW1 (порт 21). Единичное значение одного из битов М0÷М7 означает, что прерывания соответствующего уровня (IRQ0÷IRQ7) маскируются и не будут обрабатываться контроллером. Второй регистр (второе слово рабочих приказов OCW2 - порт 20) предназначен для вывода команды завершения обработки аппаратного прерывания (EOI), циклического сдвига и явного изменения приоритетов уровней. Назначение битов OCW2 приведено на рис. 3.10. Процедура обработки аппаратного прерывания должна перед своим завершением очистить свой бит в ISR (регистр состояния, описывает в битах прерывания каких уровней в данный момент обрабатываются) выводом команды завершения обработки прерывания (End Of Interrupt, EOI). Существует два варианта команды EOI: обычный и специфицированный EOI. Обычный EOI очищает бит в ISR, соответствующий прерыванию с максимальным приоритетом. Специфицированный EOI (R=0, SL=1, EOI=1, Рисунок 3.10 – Регистр OCW2 (порт 20). L0 - L2 равно номеру уровня прерывания) очищает в ISR бит, соответствующий прерыванию с номером, указанным в L0 - L2, независимо от его приоритета. Команды с битом R=l позволяют изменить приоритеты уровней. Циклический сдвиг приоритетов сдвигает приоритеты влево на единицу, при этом, если после обычного распределения приоритетов, издать команду циклического сдвига, уровень 0 получит низший приоритет, уровень 1 - наивысший, уровень 2 - следующий за ним и т.д. Команда явного назначения низшего приоритета одному из уровней изменяет приоритеты остальных уровней циклически. Таким образом, если Вы зададите низший приоритет уровню 5, то уровень 6 получит наивысший.
|
||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-05; просмотров: 383; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.190.93 (0.004 с.) |