Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 109

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 103 104 105 106 107 108 < 109 > 110 111 112 113 114 115 .. 528 >> Следующая

признака IF = 1 в регистре состояний EFLAGS. Обычно такой запрос
поступает от внешнего устройства через специальный контроллер прерываний,
который собирает запросы от различных внешних устройств и передает их для
обработки процессору, указав для них также номер п, определяю-
Рис. 2.56. Классификация прерываний и исключений
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
щий вид прерывания (INTR п). На вход NMI поступает запрос на
немаскируемое прерывание, процедура обслуживания которого имеет
фиксированный номер п = 2 (табл. 2.60). Значение признака IF в регистре
EFLAGS не влияет на обслуживание процессором немаскируемого запроса
прерывания NMI. При работе процессора в мультипроцессорной системе, когда
функционирует контроллер локальных прерываний APIC, запросы аппаратных
прерываний (маскируемые и немаскируемые) поступают по специальной APIC-
шине.
Программные прерывания реализуются при поступлении команд: INT п, INT3,
INTO, BOUND. Эти команды вызывают переход к выполнению подпрограмм
обслуживания, вектора которых выбираются согласно табл. 2.60.
Таблица 2.60
Виды реализуемых прерываний
Номер (тип) Мнемоническое обозначение Описание Способ обслуживания
Код ошибки Класс
0 #DE Ошибка деления Ошибка Нет В
1 #DB Отладка Ошибка/Ловушка Нет А
2 Сигнал NMI Прерывание Нет А
3 #ВР Команда INT3 (программный останов) Ловушка Нет А
4 #OF Переполнение (команда INTO) Ловушка Нет А
5 #BR Выход за границы (команда BOUND) Ошибка Нет А
6 #UD Недействительный код операции Ошибка Нет А
7 #NM FPU недоступен Ошибка Нет А
8 #DF Двойная ошибка Отказ Да (нуль)
9 Резервировано Нет
10 #TS Недействительный сегмент TSS Ошибка Да В
11 #NP Отсутствие сегмента Ошибка Да В
12 #SS Ошибка при обращении к стеку Ошибка Да В
13 #GP Нарушение общей защиты Ошибка Да В
14 #PF Страничное нарушение Ошибка Да С
15 Резервировано Нет
16 #MF Исключение FPU Ошибка Нет А
17 #AC Ошибка выравнивания Ошибка Да (нуль) А
18 #MC Машинный контроль Отказ Нет А
19 #XM Исключение SSE Ошибка Нет А
20-31 Резервировано
32-255 Прерывания пользователя Прерывание А
РЕАЛИЗАЦИЯ ПРЕРЫВАНИЙ И ИСКЛЮЧЕНИЙ. ОБЕСПЕЧЕНИЕ ТЕСТИРОВАНИЯ И ОТЛАДКИ
Для исключений зарезервированы первые 32 вектора в таблице прерываний, из
которых в процессорах семейства Р6 используются только 17 (см. табл.
2.60). Каждый тип исключения имеет мнемоническое обозначение. Исключения
делятся на ошибки (faults), ловушки (traps) и отказы (aborts). Ошибки
выявляются и обслуживаются до выполнения команды, которая является
причиной их возникновения. Примером ошибки может служить ситуация,
возникающая при обращении очередной команды к странице или сегменту,
отсутствующим в адресуемой оперативной памяти (обращение к сегменту или
странице, для которых значение бита присутствия Р = 0). При ошибке в
качестве адреса возврата к прерванной программе сохраняется адрес
команды, выполнение которой вызвало данное исключение. Ловушка - это
исключение, которое выявляется после выполнения команды. Примером ловушки
может служить команда INTO, которая реализует исключение с номером п = 4
в случае, если в регистре EFLAGS значение признака переполнения OF = 1.
При обслуживании ловушки в качестве адреса возврата сохраняется адрес
команды, следующей за командой, вызвавшей данное исключение. Ошибки и
ловушки предусматривают продолжение нормального выполнения программы
после завершения их обслуживания.
Отказы сообщают о возникновении серьезных нарушений в работе системы.
Примером таких нарушений может быть неисправность аппаратуры или
возникновение исключения при обслуживании ранее поступившего запроса.
Отказ не предусматривает продолжение выполнения прерванной программы,
поэтому при его возникновении обычно производится повторный запуск
(Restart) процессора.
Если одновременно произошло несколько событий, требующих обслуживания с
помощью механизма прерываний, то процессор обрабатывает такие события
последовательно, в соответствии с их приоритетами, которые указаны в
табл. 2.61 (1 - высший приоритет, 8- низший). Отметим, что в этом
приоритетном списке указан также ряд входных управляющих сигналов. При
поступлении этих сигналов одновременно с другими событиями, вызывающими
переход на обслуживание прерываний или исключений, процессор реагирует в
соответствии с их приоритетами, приведенными в табл. 2.61.
Обработка прерываний в реальном режиме. Для перехода к обслуживанию
поступившего запроса прерывания или исключения процессор обращается к
таблице векторов прерываний, которая должна располагаться в начальной
области памяти, начиная с адреса 0...0h. Элементами таблицы являются
вектора прерываний - указатели входа в подпрограммы обслуживания
различных типов прерываний. Вектор прерывания в реальном режиме содержит
четыре байта, а размер всей таблицы составляет 1024 байт, если процессор
обеспечивает обслуживание всех 256 возможных видов прерывания (табл.
2.60). Формат вектора прерываний для реального режима показан на рис.
Предыдущая << 1 .. 103 104 105 106 107 108 < 109 > 110 111 112 113 114 115 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed