Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4семестр / Методичка лр_№4.doc
Скачиваний:
36
Добавлен:
30.04.2013
Размер:
414.21 Кб
Скачать
  1. Управляющие регистры

Управляющие регистры(ControlRegisters) CR0[0÷31],CR1[0÷31],CR2[0÷31],CR3[0÷31],CR4[0÷31] хранят признаки состояния процессора, общие для всех задач, в том числе информацию о режиме работы процессора.

Регистр CR0 обеспечивает общее управление режимами работы процессора, сопроцессора, кэш-памяти, ОП и проч. Полностью назначение разрядов регистра CR0 можно посмотреть в [1]. Можно отметить, что при значении 31 бита CR0.PG=1 (Paging Еnаble – включение механизма страничной переадресации ОП) разрешена страничная трансляция линейных адресов в физические.

Регистр CR1не используется.

Регистр СR2(PageFaultLinearAddress) хранит 32-разрядный линейный адрес, по которому был получен последний отказ страницы памяти.

Регистр CR3(PageDirectoryBaseRegister) содержит некоторые системные флаги и 20 старших разрядов (CR3[31÷12]) базового адреса таблицы трансляции первого уровня (каталога страниц или таблицы страниц).

Регистр CR4содержит биты разрешения архитектурных расширений. Например, при значении четвёртого бита CR4.PSE(PageSizeExtension) разрешено расширение размера страницы до 4Кб или 2Мб, при значении 4 бита CR4.PАE(PhysicalAddressExtension) разрешено расширение физического адреса до 36 разрядов. Подробнее назначение разрядов регистра CR4 можно посмотреть в источнике[1].

  1. Прерывания и исключения

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

Прерыванияподразделяются на программные и аппаратные (маскируемые и немаскируемые), вызываемые электрическими сигналами на входах процессора.

Исключения, или особые случаи выполнения команды ЭВМ, подразделяются на отказы, двойные отказы, ловушки и аварийные завершения. Различия заключаются в моменте проверки и сохраняемых в стеке значениях адресов возврата (регистровCS[0÷15] и ЕIP[0÷31]).

Для каждой команды возможны различные исключения, подробная информация о которых имеется в [1,4].

В защищённом режиме наиболее часто встречаются следующие условия работы процессора, порождающие исключения (см. табл. ниже).

Таблица. Примеры исключений

Тип

Условие возникновения исключения

#PF

Отсутствие страницы в ОП.

#SS

Нарушение границ или отсутствие сегмента стека. Причины:

  • исполнительный адрес операнда при обращении в стек (ESP, ЕВР) находится вне пределов сегмента стека (с учётом размеров операндов),

  • отсутствие сегмента стека в ОП.

#GP

Общее нарушение защиты. Причины:

  • операнд расположен в недоступном для записи сегменте,

  • исполнительный адрес с учётом размера данных находится вне пределов сегмента CS, DS, ES, FS, GS,

  • индекс в селекторе равен 0 или вне пределов таблицы дескрипторов,

  • CPL>IOPL, CPL>RPL, CPL>DPL нарушения прав доступа задачи (проверяется при загрузке сегментных регистров)

  • нулевой адрес возврата из процедуры или прерывания.

#NP

Отсутствие в ОП сегмента (бит дескриптора SDC.P (SDC[23]) равен нулю)

  • отсутствие в ОП сегмента, кода, к которому происходит обращение,

  • загрузка в сегментный регистр дескриптора отсутствующего сегмента

#UD

Неопределённый код операции. Причины:

  • неверно адресованный операнд,

  • попытка записи в CS.

#DE

Деление на 0 или результат (частное) слишком велико для адресата

Соседние файлы в папке 4семестр