7.4.5.1.3. Прерывания

 

Порядок выполнения программы в МП 80386 может быть изменен как аппаратными, так и программными прерываниями. Аппаратное прерывание возникает при активизации одного из входов запроса прерываний МП 80386 (NMI-для немаскируемых прерываний и INTR-для маскируемых прерываний). Программное прерывание возникает, когда МП 80386 обнаруживает команду прерывания INT или особое программное условие (исключение), которое нуждается в обслуживании.

Время реакции прерывания - это время, проходящее с момента запроса прерывания до его обслуживания. На время реакции прерывания влияют следующие причины:

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

сохранение регистра флагов EFLAGS, а также регистра сегмента программыCS и указателя команд EIP, которые содержат адрес возврата;

маскирование прерывания, что приводит к опознанию сигнала на входе INTRтолько после повторного разрешения прерываний;

выполнение процессором текущей команды должно быть завершено. Запрос прерывания опознается только на границах команд с единственным исключением для команд повтора строк, которые могут прерываться после каждой итерации;

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

Цикл подтверждения прерывания. Являясь частью цикла подтверждения, немаскированное прерывание принуждает МП 80386 временно прекратить выполнение текущей программы и выполнять некоторые команды другой программы. Эта вторая программа называется программой обработки прерывания (или обработчиком).

Процессор выполняет один за другим два цикла подтверждения прерывания в ответ на активный сигнал на входе INTR. Это специальные циклы магистрали, активирующие программируемый контроллер прерываний 8259А, который в свою очередь выдает вектор прерывания в битах DO-D7 шины данных.

Системная логика должна задержать сигнал READY # для того, чтобы удлинить цикл согласно требованиям контроллера 8259А к минимальной длительности импульса. Для соответствия времени отклика контроллера 8259А процессор дополнительно вставляет между циклами как минимум 160 не холостого времени магистрали (четыре состояния Т1).

Цикл BS16#. Процессор обеспечивает передачу данных как по 16-разрядной, таж и по 32-разрядной шинам. Вход управления BS16# позволяет определять ширину шины для каждого цикла магистрали. Динамическое изменение ширины шины позволяет МП 80386 обрабатывать данные различной разрядности.

Если необходима максимальная внутренняя скорость обмена информацией, то может быть использовано прямое подключение к магистрали. Для некоторых систем целесообразно использовать 16-разрядную шину данных. Память с 16-разрядной организацией в отличие от 32-разрядной требует меньше микросхем поддержки, например буферов, фиксаторов и т.п. Более того, адреса устройств ввода-вывода, расположенные по границам слов (а не двойных слов), могут быть программно совместимы с другими системами, которые используют 16-разрядные микропроцессоры.

По сигналу на входе BS16# МП 80386 передает данные по 16-разрядной шине данных (D15-DO). Если же сигнала на этом входе нет, процессор передает 32-разрядные данные. Процессор автоматически выполняет два или три цикла для передачи данных, разрядность которых больше 16 бит, и для не выровненных на границы 16-разрядных слов. Сигнал на вход BS16# приходит от внешней аппаратуры: либо непосредственно от адресуемого устройства, либо через микросхему селектора адреса. Вход BS16# опрашивается в начале фазы 2 (такт CLK) при условии, что вход ADS# не активен. Если сигналы на входах BS16# и READY# имеют низкий уровень в том же самом такте CLK, то МП 80386 считает шину данных 16-разрядной.

Состояние входа BS16# влияет на скорость передачи данных только в тех случаях, когда сигналы ВЕО# и ВЕ1# активны и в то же самое время активен сигнал ВЕ2 # или сигнал ВЕЗ #. При этих передачах МП 80386 выполняет два цикла магистрали, используя только младшую половину шины данных. Если необходим еще один цикл магистрали, то МП 80386 оставляет на магистрали текущий адрес для второго цикла. Поскольку адресный конвейер требует, чтобы следующий адрес был сформирован на магистрали перед окончанием текущего магистрального цикла, то его нельзя использовать в циклах BS16#. Вот почему оба сигнала опрашиваются в одном и том же временном окне. Сигнал BS16# должен быть активным перед (или одновременно с) сигналом следующего адреса NA # для того, чтобы гарантировать 16-разрядную операцию. Если при опросе было установлено, что сигнал NA# был активен, а в то же время сигнал BS16# не был активен, то вход BS16# блокируется внутри процессора.

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

Сигналы М/Ю# и W/R# переходят в состояние высокого уровня, сигналD/C# переходит в состояние низкого уровня, что идентифицирует цикл останова.

Все выходы шины адреса переходят на низкий уровень, причем

 

для условия останова активен сигнал ВЕ2#;

для условия прекращения работы активен сигнал ВЕО#.

для завершения цикла останова или прекращения работы должен быть активизирован сигнал READY #. Процессор остается в состоянии останова или прекращения работы до тех пор, пока:

сигнал NMI не перейдет в состояние высокого уровня, тогда МП 80386обслуживает прерывание;

сигнал RESET не перейдет в состояние высокого уровня, тогда МП 80386повторно инициализуется.

Если маскируемые прерывания разрешены, то в состоянии останова активный сигнал на входе INTR принуждает МП 80386 завершить цикл останова и обслуживать это прерывание. Однако этого не происходит в состоянии прекращения работы. Процессор может обслуживать запросы процессорного расширения по входу PEREQ и запросы на захват магистрали по входу HOLD как в состоянии останова, так и в состоянии прекращения работы.

 

 

HotLog

Заказчику web дизайна и программирования - каталог сайтов, обзор дизайн студий