Организация прерываний МП PentiumIУ. Основные особенности архитектурной линии Hammer фирмы AMD

Страницы работы

Фрагмент текста работы

Запросы внешних прерываний поступают в процессор по двум входам: INTR и NMI, и сами прерывания делятся соответственно на маскируемые и немаскируемые.

•  Запросы маскируемых прерываний обычно поступают  на входы встроенного в МП программируемого контроллера прерываний 8259, который формирует сигнал, подаваемый на вход INTR. Реакция микропроцессора на маскируемые запросы зависит от состояния флага разрешения прерывания IF: если IF=1, то прерывания разрешены, если IF=0, прерывания запрещены.

•  Действия процессора при поступлении разрешенного прерывания (IF=1) на вход INTR строго детерминированы. После завершения текущей команды микропроцессор прекращает выполнение основной программы и готовится выполнить подпрограмму обработки прерывания конкретного типа. Прежде всего он запоминает в стеке текущее состояние регистра признаков и адрес возврата (текущее содержимое регистров (ЕIP и CS).

•  Затем микропроцессор получает от внешнего устройства тип прерывания и, используя его как индекс таблицы прерывания, выбирает из таблицы адрес подпрограммы обработчика прерывания и помещает его в регистры ЕIP и CS.

•  С помощью аппаратных прерываний осуществляется взаимодействие процессора с периферийными устройствами.

•  Внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение, обращение к недопустимым адресам или недопустимый код операции;

•  Программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения (firmware),драйверов и операционной системы.

•  Программные прерывания, инициируемые командой INTn, являются специальными командами вызова процедур, которые программист при необходимости может использовать по своему усмотрению, например, для отладки. Программные прерывания в большинстве случаев представляют собой оптимизированные системные процедуры, вызываемые пользовательскими или системными программами для наиболее часто применяемых операций. С помощью команды INT n можно вызывать программы-обработчиков прерываний, начальные адреса которых размещены в таблице прерываний IDT.

•  Программные прерывания также используются для вызовов процедур BIOS (Basis Input/Output System), обеспечивающих обмен информацией между процессором и внешними устройствами, и для вызовов процедур операционной системы, в частности, MS DOS.

•  Внутренние прерывания, генерируемые процессором, при возникновении определенных условий выполнения команд, обычно называют особыми случаями или исключениями (exceptions).

•  Особый случай - это внутреннее событие возникающее при невозможности выполнять следующую команду. Особые случаи возникают, например, при нарушении защиты по привилегиям, превышении предела сегмента, делении на нуль и т.п. Как и аппаратные прерывания, предвидеть особые случаи практически невозможно.

•  Коды (типы) внутренних прерываний устанавливаются разработчиком микропроцессора и не могут быть использованы при назначении внешних (аппаратных) прерываний.

•  Реакция процессора на особый случай зависит от условий его возникновения. В соответствии с этими условиями исключения (особые случаи) подразделяются на ошибки(fault), ловушки(trap) и аварийные завершения.

•  Ошибкаили нарушение (отказ) - это особый случай, который обнаруживается и обслуживается до выполнения команды, вызывающей ошибку. После обработки подобного исключения управление возвращается команде, которая вызвала ошибку. Типичный пример нарушения имеет место          ошибка страничного отказа при работе виртуальной памяти.

•  Ловушка - это особый случай, который обнаруживается и обслуживается после выполнения команды, его вызвавшей. По завершению обслуживания особого случая типа ловушка процессор возвращает управление команде, следующей за командой, вызвавшей ловушку. Примером ловушки является команда прерывания при переполнении INT0 и программные прерывания, вызываемые командой INTn.

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

Похожие материалы

Информация о работе

Тип:
Ответы на экзаменационные билеты
Размер файла:
636 Kb
Скачали:
0