Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
A_K_3.doc
Скачиваний:
4
Добавлен:
18.11.2019
Размер:
286.72 Кб
Скачать

3.3 Системные регистры адреса

Системные регистры поддерживают РВА процессоров 286/386+ и включают (см. рис. 3.6):

  • GDTR – содержит адрес таблицы глобальных дескрипторов;

  • IDTR – содержит адрес таблицы дескрипторов прерываний;

  • LDTR – содержит селектор таблицы локальных дескрипторов;

  • TR – содержит селектор сегмента состояния задачи TSS.

Регистры GDTR и IDTR являются общими для всех задач системы. До перевода процессора в РВА необходимо создать в ПАМЯТИ таблицы GDT и IDT и соответственно инициализировать регистры GDTR и IDTR.

Регистры LDTR и TR являются специфичными для каждой задачи. Таблица LDT адресуется селектором (записанным в регистр LDTR), который выбирает дескриптор в таблице GDT, и загружает его в соответствующий теневой регистр (см. рис. 3.7). Сама таблица LDT может находится на диске и загружается в память компьютера после записи селектора в регистр LDTR. Во время переключения задач можно заменить все локальное адресное пространство простой перезагрузкой селектора в регистр LDTR.

47

16

15

0

GDTR

32-х битовый исполнительный адрес базы

Предел

IDTR

32-х битовый исполнительный адрес базы

Предел

Системные сегментные регистры

Дескрипторные регистры – программно недоступны

(загружаются автоматически)

15

0

32-х битовый исполнительный адрес базы

Предел

Атрибуты

Селектор

TR

Селектор

LDTR

Рис. 3.7 – Системные адресные и системные сегментные регистры

3.3.1 Системные управляющие регистры

ПРОЦЕССОРОВ 386+

МП 386+ содержат 3 управляющих 32-х битовых регистра: CR0, CR2 и CR3 (процессоры PENTIUM+ имеют дополнительный управляющий регистр CR4), хранящих состояние машины и не зависящих от текущей исполняемой задачи. Доступ к регистрам обеспечивается с помощью специальных команд.

CR0 – РЕГИСТР УПРАВЛЕНИЯ МАШИНОЙ (заменяет регистр – слово состояния машины у МП I80286 – MSW).

Для сохранения совместимости с МП i80286 в системе команд 386+ оставлены инструкции LMSW и SMSW, работающие с младшими 4-мя би- тами CR0. Новые ОС 386+ будут использовать команду MOV CR0.

Назначение битов CR0 (рис.3.8) :

  • PE – (PROTECT ENABLE) – разрешение защиты. Установка этого флага инструкцией LMSW или LOAD CR0 переводит процессор в защищенный режим, возврат из которого (сброс флага) возможен только по инструкции LOAD CR0. Сброс бита РЕ является частью довольно длинной последовательности инструкций, подготавливающих корректное переключение в реальный режим.

  • MP – (Monitor Processor Extension) – мониторинг сопроцессора, позволяет вызывать исключение 7 по каждой команде WAIT при TS=1. При исполнении программ для 286/287 и 386/387 на процессорах 486DX+ – бит MP должен быть установлен.

  • ЕМ – (Processor Extension Emulator) – эмуляция сопроцессора. Установка этого флага вызывает появление исключения 7 при каждой команде, относящейся к сопроцессору, что позволяет прозрачно осуществлять его программную эмуляцию.

  • TS – (Taks Switch) – переключение задач. При установке этого флага следующая команда, относящаяся к сопроцессору, вызовет исключение 7, что позволяет программно определить, относится ли контекст сопроцессора к текущей задаче. Бит сбрасывается инструкцией CLTS.

31

24

23

16

15

8

7

0

PG

CD

NW

0

0

0

0

0

0

0

0

0

0

AM

0

WP

0

0

0

0

0

0

0

0

0

0

NE

ET

TS

EM

MP

PE

С лово состояния машины 80286 (MSW)

Рис. 3.8 – Регистр управления машиной CR0

Сочетание MP=0, EM=0, TS=0, – устанавливаемое по аппаратному сбросу, обеспечивает полную программную совместимость с 8086/88 (исключение 7 не вырабатывается). Сочетание MP=1, EM=0 – используется при наличии сопроцессора, а MP=0, EM=1 – при его программной эмуляции.

  • ET – (Extension Type) – индикатор поддержки инструкций математического сопроцессора. Используется в процессорах 486+: для 486SX – ET=0, для остальных процессоров – ЕТ=1.

  • NE – (Numeric Error) – разрешение стандартного (для INTEL, но не для РС) механизма сообщения об ошибке FPU (сопроцессора) через генерацию исключения (486+). При NE=0 и активном сигнале IGNNE# ошибки FPU (сопроцессора) игнорируются. При NE=0 и пассивном сигнале IGNNE# при возникновении ошибки FPU (сопроцессора) основной процессор останавливается и ждет прерывания, вводимого внешней логикой по сигналу на выходе FERR#. Таким образом эмулируется обработка ошибок FPU, принятая в РС со времен сопроцессоров 80287 и 80387.

  • WP – (Write Protect) – разрешение защиты от записи на уровне привилегий супервизора в страницы только для чтения (486+).

  • AM – (Alignment Mask) – разрешение контроля выравнивания (контроль выравнивания выполняется только на уровне привилегий 3 при AM=1 и флаге AC=1) (486+).

  • NW – (Not Writethrough) – запрет сквозной записи кэша и циклов аннулирования (486+).

  • CD – (Cache Disable) – запрет заполнения кэша (кэш-попадания в ранее заполненные строки при этом не запрещаются) (486+).

  • PG – (Paging Enable) – включение механизма страничной переадресации памяти (386+).

Регистр CR1 – зарезервирован фирмой Intel для будущих процессоров.

CR2 – (Page Fault Linear Address) – регистр для хранения исполнительного (линейного) адреса отсутствующей страницы. Регистр хранит 32-х битовый исполнительный адрес страницы, которая отсутствовала (последний промах) в памяти. Это значение может быть сохранено в стеке подпрограммой обслуживания промаха для дополнительного анализа.

31

24

23

16

15

8

7

0

CR2 – Page Fault Linear Address

(Регистр исполнительного адреса отсутствующей страницы)

CR3 – Page Directory Base Register

(Регистр базового адреса таблицы страниц)

0

0

0

0

0

0

0

PCD

PWT

0

0

0

0

0

0

CR4

0

0

0

0

MCE

0

P SE

DE

TSD

PV I

VME

7

6

5

4

3

2

1

0

Рис. 3.9 – Регистры управления CR2, CR3 и CR4

CR3 – (Page Directori Base Register) – регистр хранения базового адреса КАТАЛОГА РАЗДЕЛОВ. Так как размеры и положение страниц в памяти фиксированы, то двенадцать младших разрядов не используются для адресации и их назначение определены только для двух битов (рис. 3.8):

  • PCD – (Page Level Cache Disable) – запрет кэширования страницы (один из источников сигнала PCD для управления внешним кэшем) (486+).

  • PWT – (Page Level Writes Transparent) – кэширование страницы со сквозной записью (один из источников сигнала PWT для управления внешним кэшем) (486+).

Регистр CR4 (присутствует в процессорах PENTIUM+) содержит биты разрешения архитектурных расширений (рис. 3.9) :

  • VME (Virtual-8086 Mode Extensions) – разрешение использования виртуального флага прерывания в режиме V86, что позволяет повысить производительность за счет сокращения излишних вызовов монитора виртуальных машин.

  • PVI (Protected-Mode Virtual Interrups) – разрешение использования виртуального флага прерываний в защищенном режиме.

  • TSD (Time Stamp Disable) – превращение инструкции RDTSC (read from time stamp counter) в привилегированную.

  • DE (Debugging Extensions) – разрешение точек останова по обращению к портам ввода-вывода.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]