Программная модель МП-системы на основе процессора Pentium. Особенности организации памяти и допустимые способы адресации, страница 11

Бит ET (Extension Type), используемый для указания типа арифметического сопроцессора (80287 или 80387). В процессоре Pentium бит ЕТ не используется. Значение бита 4 регистра CR0 резервируется.

Бит TS (Task Switch) устанавливается процессором при каждом переключении задачи. Процессор проверяет значение TS при выполнении команд FPU, генерируя исключение 7. Значение TS=1 позволяет программно определить, относится ли контекст сопроцессора к текущей задачи. Сброс бита TS осуществляется командой CLTS.

Флаг численной ошибки NE (Numeric Error) определяет способ обработки прерывания при наличии ошибок FPU, возникающих при  выполнении численных команд арифметики с плавающей точкой. При NE = 1 они обрабатываются через прерывание с вектором 16, а при NE = 0 - через внешнее прерывание. При NE = 0 и активном сигнале IGNNE ошибки FPU игнорируются. При NE = 0 и пассивном сигнале IGNNE при возникновении ошибки FPU процессор останавливается и ожидает запрос прерывания от внешней логики. Прерывание формируется с помощью выходного сигнала FERR, эмулирующего сигнал ошибки ERROR сопроцессоров 80287 и 80387.

Бит WP (Write Protect) обеспечивает защиту пользовательских страниц от записи. При WP = 1 любая попытка записи в страницу пользователя на любом уровне привилегий вызывает прерывание. При сброшенном бите WP (WP =0)  процессор Pentium позволяет осуществить запись в страницы пользователя с разрешенным чтением только на уровне привилегий 0 - 2.

Бит   CD  (Cache disable)  запрещает  (при CD=1)  или  разрешает (при CD=0) заполнение строки внутренней  кэш-памяти.  Когда CD = 1, промахи в кэш-памяти не вызывают заполнение ее строки. Кэш-попадания  в ранее заполненные строки при этом не запрещаются.

Бит NW (Not Write-through) разрешает (NW = 0) или запрещает (NW = 1) сквозную запись и циклы аннулирования строки во внутренней кэш-памяти. При NW = 1 сквозная запись и выполнение циклов аннулирования строки во внутренней кэш-памяти запрещены. Запрещение сквозной записи может привести к появлению в кэш-памяти устаревших данных. При NW = 0 сквозная запись и выполнение циклов аннулирования строки кэш-памяти разрешены; все операции записи, включая запись по адресам, попадающим в кэш, дублируются на внешние выводы.  В циклах аннулирования строка кэш-памяти, по адресу которой имеет место попадание, исключаются из обращения.

Режимы работы внутренней кэш-памяти, определяемые значениями битов CD и NW, указаны в табл.

Бит AM (Alignment Mask) является маской для флага контроля выравнивания АС регистра (Е)FLAGS. С его помощью разрешается (АМ=1) или запрещается (АМ=0) контроль выравнивания. Контроль выравнивания производится, когда АМ=1, флаг АС=1 и текущий уровень привилегий CPL = 3 (режим пользователя). При АМ = 0 достигается совместимость с процессором 80386, который не использует флаг АС.

Режимы работы внутренней кэш-памяти                                   Таблица

CD

NW

Режим

1

0

Запрещено заполнение строки; сквозная запись и аннулирование строки разрешены

0

1

Недопустимая   комбинация.  Загрузка  этого  кода  в   регистр  СR0 вызовет исключение общей защиты (прерывание13)

0

0

Разрешены заполнение строки, сквозная запись и аннулирование строки 

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

Регистры  управления  CR2  и  CR3  предназначены  для  аппаратной  поддержки  страничного  механизма  адресации.  С  этими  регистрами  в  основном  взаимодействует  сам  процессор.

Регистр  CR2  предназначен для запоминания 32-битного линейного  адреса, поступление которого в блок  страничной  адресации вызвало отказ (особый случай 14). Сигнал отказа страницы вырабатывается  блоком  страничной  адресации при отсутствии  страницы,  к  которой  выполняется  обращение,  или при недостаточном  уровне привилегий  программы,  запрашивающей  страницу  с  более  высоким  уровнем  привилегий. Обработчик особого случая 14 привлекает содержимое CR2 для выяснения причин отказа страницы. В стек программы обработчика прерываний загружается соответствующий код ошибки. Регистр  CR2 доступен только для считывания.