Помощь в написании студенческих работ
Антистрессовый сервис

Система прерывания в МП INTEL

РефератПомощь в написанииУзнать стоимостьмоей работы

В первом случае исключение обнаруживается до начала выполнения текущей команды. Это отказ (fault) — исключение, которое обнаруживается и обслуживается до выполнения текущей команды. В этом случае в процедуре прерывания восстанавливаются первоначальные значения всех регистров, которые были до начала выполнения команды, сохраняется адрес текущей (но невыполненной) команды. Это и есть рестарт… Читать ещё >

Система прерывания в МП INTEL (реферат, курсовая, диплом, контрольная)

Система прерывания в МП IA-16

Архитектура МП IA-16 предусматривает (рис. 5.3) два входа приема сигналов прерывания:

  • · вход приема немаскируемых сигналов прерывания (NMI),
  • · вход приема маскируемых сигналов прерывания (INTR).

Кроме этого, схемы процессора могут формировать сигналы исключительных ситуаций (исключений), требующих прерывания текущих программ. Эти сигналы могут быть вызваны определенными событиями и/или специальными командами вызова процедур обработки исключительных ситуаций.

В МП IA прерывания по сигналам на входах NMI и INTR определены как аппаратные прерывания, но по своей сущности сигналы по входу NMI являются исключениями, а по входу INTR — классическими прерываниями.

Кроме этого, в МП IA имеются ряд команд и признак TF в регистре флагов, вызывающие процедуру прерывания. Это программируемые прерывания, которые по своей сущности являются исключениями.

Прерывания по команде INTO вызывает прерывание по флагу переполнения. Команда INT3 используется при отладке программ. Она вызывает процедуру прерывания, которая может распечатать содержимое определенных ячеек памяти или РОН. Это однобайтовая команда, которую можно вписать вместо кода операции любой команды (возможно, с добавкой команд NOP (нет операции)) без нарушения структуры последующих команд.

Прерывания по сигналам прерывания по входу NMI

Это сигналы от схем контроля блока питания, обнаружения ошибок системы памяти, требующих немедленного реагирования. Все программы обработки прерываний этих причин объединены в одну программу с номером (типом) 2 и имеют второй приоритет по обслуживанию. Прерывания по этому входу в процессоре не маскируются и выявляются по переднему фронту сигнала. Это гарантирует однократное реагирование системы прерывания на один запрос.

Прерывания по сигналам прерывания по входу INTR

Запросы на маскируемые сигналы прерываний поступают от отдельных периферийных устройств по индивидуальным проводам запроса. В контроллере прерываний они фиксируются на регистре прерываний, связанном со схемой приоритетного выбора сигнала прерывания. При этом в контроллере прерываний (8259А) формируется выходной сигнал прерывания, поступающий на вход приема маскируемых сигналов прерывания (INTR) и тип (n), где n — номер программы обработки прерывания.

Запросы на маскируемые сигналы прерываний поступают от отдельных периферийных устройств по индивидуальным проводам запроса. В контроллере прерываний они фиксируются на регистре прерываний, связанном со схемой приоритетного выбора сигнала прерывания. При этом в контроллере прерываний (8259А) формируется выходной сигнал прерывания, поступающий на вход приема маскируемых сигналов прерывания (INTR) и тип (n), где n — номер программы обработки прерывания.

По завершении очередной команды производится проверка исключений, в частности, сигнала на входе NMI процессора. Сигнал определяется по переднему фронту. При отсутствии сигнала на входе NMI процессор проверяет значение бита разрешения прерывания в регистре флагов. При IF=0 процессор производит выборку очередной команды текущей программы.

При единичном значении IF процессор реализует процедуру прерывания. Для этого процессор выставляет на шины системного интерфейса в двух смежных тактах сигналы подтверждения прерывания (inta).

В ответ на сигнал inta во втором такте подтверждения прерывания контроллер прерывания выставляет на шины данных тип (n) программы обработки прерывания.

Тип (n) программы обработки прерывания используется в качестве номера строки таблицы прерываний. Таблица прерываний содержит векторы прерываний: IP (адрес входа в программу) и CS (базовый адрес сегмента программы).

В МП Intel, как и во многих ЭВМ, количество программ обработки прерываний ограничено числом 256. В соответствии с этим таблица прерываний содержит не более 256 векторов прерываний по 4 байта. Для МП IA-16 таблица прерываний всегда занимает первый килобайт линейной (оперативной) памяти.

Для сохранения настройки и перехода на программу обработки прерывания процессор производит следующие действия:

  • · последовательно сохраняет в стеке содержимое CS, IP и регистра флагов (F),
  • · в регистре флагов сбрасываются флаги разрешения прерываний IF и пошаговой ловушки TF (запрещение прерывания и пошагового режима),
  • · делает обращение к таблице прерываний и производит последовательное заполнение регистров процессора IP и CS данными из таблицы прерывания по адресу 4n, где n — тип прерывания.

Сохранение содержимого РОН производится программой обработки прерывания.

После сохранения РОН программа обработки прерывания может сбросить флаг разрешения прерывания IF. Сброс флага IF открывает возможность прерывания программы обработки прерывания запросами прерывания с более высоким приоритетом, например, сигналом прерывания по входу NMI.

Программа обработки прерывания заканчивается командами восстановления данных в РОНах и командой IRET. По команде IRET производится восстановление регистров F, IP и CS значениями, сохраненными в стеке.

Особенности системы прерывания в МП IA-32

Основными причинами модификации системы прерывания в МП IA-32 можно считать следующие архитектурные изменения:

  • · более активное использование взаимодействия аппаратно-программных средств, например, в системе виртуальной памяти,
  • · переход к использованию симметричных многопроцессорных систем, начиная с МП Pentium Over Drive (Pentium второго поколения).
  • · использование механизма защиты программ от взаимных помех.

Более активное использование взаимодействия аппаратно-программных средств

В МП IA-32 используется механизм виртуальной памяти, который, в случаях страничных промахов, применяет механизм прерывания для подкачки новой страницы и рестарта прерванной команды. В этих случаях требуется сохранение адреса не следующей команды, а команды, вызвавшей исключение.

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

  • · отложена,
  • · выполнена,
  • · принудительно (аварийно) прекращена.

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

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

В МП 80 386 емкость буферного регистра кодовой строки составляет 16 байт. Первый байт этой строки всегда содержит код операции команды или префикс, т. е. начало текущей команды. Команда может содержать переменное число байт. Байты команды по очереди сдвигаются к старшим разрядам и поступают на регистр команд, пока не будет выбран последний байт команды. Если при этом освобождаются четыре младших байта буферного регистра кодовой строки, то производится обращение к кодовому сегменту команд для заполнения кодовой строки. Таким образом, счетчик команд не обращается за каждой командой в кодовый сегмент памяти, а производит заполнение кодовой строки по четыре байта.

При прерываниях или исключениях буфер кодовой строки очищается и заполняется кодовой строкой программы обработки исключения. При рестарте вычисляется адрес команды рестарта, производится его запоминание в стеке и после этого производится заполнение регистра кодовой строки командами программы обработки исключения.

Во втором случае исключение обнаруживается после начала выполнения текущей команды. Это ловушка (trap) — исключение, которое обнаруживается и обслуживается после выполнения текущей команды. В процедуре прерывания сохраняется продвинутый адрес основной программы. К классу ловушек относятся все программные прерывания.

В третьем случае — это исключение, при котором невозможно точно установить адрес инструкции, вызвавшей исключение. Это аварийное завершение (abort). Оно используется для сообщения о серьезной ошибке, не допускающей рестарта.

Переход к использованию симметричных многопроцессорных систем

Контроллер прерываний (8259А) не предназначен для работы в симметричных многопроцессорных системах. По этой причине начиная с МП Pentium Over Drive (Pentium второго поколения) в системе прерываний используется новый усовершенствованный контроллер прерываний APIC (Advanced Programmable Interrupt Controller Enable). Для локальных запросов прерываний APIC использует индивидуальные линии LINT0 и LINT1 по одной на процессор. Общие (разделяемые) сигналы прерываний поступают к процессорам по интерфейсу APIC. При этом контроллеры предварительно программируются для определения функций каждого из процессоров по обработке аппаратных прерываний.

Использование механизма защиты программ от взаимных помех

Механизм защиты программ от взаимных помех предусматривает разделение программ по четырем уровням защиты, причем самый нижний уровень защиты предназначен для пользовательских программ. Их защита от взаимных помех обеспечивается операционной системой разделением их адресных пространств и использованием локальных таблиц дескрипторов. Пользовательским программам доступны только сегменты, зафиксированные в их локальных таблицах.

Программы обработки прерываний размещаются на более высоком уровне привилегий. Механизм защиты позволяет использование этих программ только командами перехода с возвратом и только с использованием шлюзов (см. 2.3. Программная модель 32-разрядного микропроцессора).

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

По этой причине таблица прерываний на каждое прерывание (включая исключения) может содержать:

  • · дескриптор шлюза прерывания, или
  • · дескриптор шлюза исключения, или
  • · дескриптор шлюза задачи.

Максимальное число дескрипторов в таблице — 256.

Структуры шлюзов таблицы прерываний представлены на рис. 5.4.

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

При этом селектор дескриптора шлюза прерывания или исключения записывается в сегментный регистр CS процессора, дескриптор сегмента — в регистр дескриптора процессора, ассоциативно связанный с сегментным регистром CS, и уровень привилегий дескриптора — в поле текущего уровня селектора CS.

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

При использовании шлюза TSS переход на программу обработки прерывания и возврат производится с применением процедуры переключения программ.

Вопросы и/или темы для самопроверки:

  • 1. Понятие исключения — отказ (fault). Приведите пример.
  • 2. Понятие исключения — ловушка (trap). Приведите пример.
  • 3. Понятие исключения — аварийное завершение (abort). Приведите пример.
  • 4. Особенности работы контроллера прерывания в симметричных многопроцессорных системах.
  • 5. Содержимое строк таблицы прерывания в защищенном режиме.
  • 6. Отличия в процедуре прерывания при использовании дескрипторов ловушки и прерывания.
Показать весь текст
Заполнить форму текущей работой