Состав и назначение регистра CR0

МП предназначены для реализации возможности процесса в защищенном режиме.

Регистры управления предназначены для общего управления системой. Они доступны только программам с уровнем привилегий 0.

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

31               23

6

     

 

1 0
PG CD NW   AM     WP

...

NE

ET TS EM MP

PE

                                     

 

Назначение системных флагов:

· pe (Protect Enable), бит 0 — разрешение защищенного режима работы. Состояние этого флага показывает, в каком из двух режимов — реальном (pe=0) или защищенном (pe=1) — работает МП в данный момент времени.

· mp (Math Present), бит 1 — присутствие сопроцессора. Всегда 1(для 486-го МП и выше)

· ts (Task Switched), бит 3 — переключение задач. Процессор автоматически устанавливает этот бит в 1 при переключении на выполнение другой задачи и проверяет его при выполнении команд с плавающей точкой. При этом после окончания команды этот флаг должен сбрасываться командой CLTS в 0.

· am (Aligment Mask), бит 18 — маска выравнивания. Этот бит разрешает (am = 1) или запрещает (am = 0) контроль выравнивания данных.

· cd (Cache Disable), бит 30, — запрещение кэш-памяти. С помощью этого бита можно запретить (cd = 1) или разрешить (cd = 0) использование внутренней кэш-памяти (кэш-памяти первого уровня).

· pg (PaGing), бит 31, — страничное преобразование. Разрешение (pg = 1) или запрещение (pg = 0) страничногопреобразования. Флаг используется при страничной модели организации памяти.

· Nw (not write through) – бит несквозной записи. =0 – при разрешении сквозной записи и циклы недостоверности кэш-памяти(данные к кэш-памяти могут быть изменены, а в памяти – нет, Þ отсюда и несоответствие, которое может привести в ошибке)

· Wp (write protect) – защита от записи. Используется для того чтобы с-ма не изменяла пользовательскую программу (одно из средств защиты). При =1 защищает от записи страницы уровня пользователя от обращений супервизора.

· Ne (numeric error) – численная ошибка. При =1 использует стандартный механизм обработки численных ошибок.

· Et (extention type) – тип расширения. При =1 показывает поддержку команд математического сопроцессора 80387.

· Em (emulation) – при =1 генерируется особый случай недоступности сопроцессора.

Сегментная организация памяти режима реального адреса. Её достоинства и недостатки.

У люб. сегмента есть начало и конец. Адрес начала сегмента определяет базовый адрес. Max размер адресного пространства = 1Мб. (размерность адресного пространства опред-ся размерностью адресной шины).

Max размер сегмента в реальном режиме = 64 Кб.

Для того чтобы указать на сегменты, к которым программа имеет доступ в конкретный момент времени, предназначены сегментные регистры(cs, ss, ds, es, gs, fs). Каждый сегментный регистр имеет 16-ть разрядов и обеспечивает адресацию непрерывного участка памяти объемом 64 Кбайт. 

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

Для получения линейного адреса базовый адрес сегмента, дополненный 2-мя младшими нулями, складывается с эффективным 16-ти разрядным адресом – и получается 20-ти разрядное число, которое определяет местоположение данных в памяти. При этом считается что, в реальном режиме линейный адрес явл физическим адресом в памяти.

Недостатки сегментации реального режима:

1. отсутствие защиты сегментов от доступа внешних программ

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

3. размещение сегментов в памяти произвольное, могут частично (полностью) перекрываться и не иметь общих областей.

Достоинства:

1. Уменьшение временной фрагментации, т.к. учитывается свойство локальности программ.

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

3. Возможность обеспечить четкое управление доступом к сегменту со стороны общих процессов и их полную защиту.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: