Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Регистры управления

Микропроцессор имеет четыре 32-разрядных регистра управления CR0-CR4 (CR1 - зарезервирован), в которых хранятся флаги состояния процессора или глобальные флаги. Вместе с регистрами системных адресов эти регистры хранят информацию о состоянии процессора, которое влияет на все задачи в системе. Системным программистам регистры управления доступны только через варианты команды MOV, которые позволяют их загружать или сохранять в регистрах общего назначения. Формат четырех регистров представлен на рисунке.

Регистр CR0 содержит флаги, которые управляют или показывают условия, относящиеся к системе в целом, а не к отдельной задаче. Младшие 16 бит (биты с 0 по 15) этого регистра называются словом состояния машины (Machine Status Word - MSW) для совместимости с МП 80286.

PE - разрешение защиты (Protection Enable, 286+). Когда PE=1 процессор находится в защищенном режиме. Если бит сброшен, то процессор находится либо в режиме реального адреса, либо в режиме системного управления (тип режима определяется аппаратно: в режиме системного управления активен сигнал SMIACT#).

MP - наличие сопроцессора (Math Present, 286+). Влияет на выполнение команды WAIT/FWAIT, которая используется для взаимодействия с сопроцессором.

EM - эмуляция сопроцессора (Emulation, 286+). Показывает, нужно ли эмулировать функции сопроцессора. Установка бита EM часто возникает в случае отсутствия сопроцессора в системе. Когда EM=1, любая команда для сопроцессора, команда MMX или SSE/SSE2 вызывает особый случай.

TS - задача переключена (Task Switched, 286+). Процессор устанавливает этот бит при каждом переключении задач. Он также проверяет этот бит, когда интерпретирует команды сопроцессора, так как состояние последнего требуется сохранять только в случае запроса сопроцессора новой задачей. Бит TS может быть очищен загрузкой в регистр CR0, а также специальной командой CLTS.

ET - тип расширения (Extension Type, 386, 486). Показывает тип сопроцессора: 80287 (ET=0), 80387 или встроенный FPU i486DX (ET=1). В новых моделях бит зарезервирован и всегда содержит 1.

NE - ошибка сопроцессора (Numeric Error, 486+). Когда NE=1, процессору разрешается пользоваться внутренним ("родным") механизмом сигнализации ошибок с плавающей точкой. Когда NE=0, процессор эмулирует сигнализацию ошибок с плавающей точкой как у внешних сопроцессоров (80287, 80387), выставляя сигнал FERR#, который должен обрабатываться внешним контроллером прерываний.

WP - защита от записи (Write Protect, 486+). Защита от записи страниц с пометкой "read-only" при обращениях с уровня супервизора.

AM - маска выравнивания (Alignment Mask, 486+). Если CR0.AM=1 и EFLAGS.AC=1 и CR0.PE=1 и CPL=3, то производится контроль выравнивания. Т.е. при обращениях к памяти двойное слово обязательно должно начинаться с адреса, кратного 4, а 16-битное слово - с адреса, кратного 2, иначе генерируется нарушение контроля выравнивания (исключение #17).

NW - несквозная запись (Not Write-through, 486+). Используется для управления кэшированием.

CD - запрещение кэш-памяти (Cache Disable, 486+). Используется для управления кэшированием.

PG - страничная трансляция (Paging, 386+). Определяет, использует ли микропроцессор таблицы страниц для трансляции линейных адресов в физические. Страничная трансляция используется только в защищенном режиме, и попытка выставить этот бит в реальном режиме приводит к нарушению общей защиты (исключение #13)

Регистр CR2 используется для обработки страничного нарушения, если установлен бит PG в регистре CR0. В регистре CR2 процессор сохраняет тот линейный адрес, который вызвал исключение. Код ошибки, запоминаемый при возникновении отказа в стеке обработчика страничного нарушения, обеспечивает дополнительную информацию о состоянии при этом исключении.

Регистр CR3 используется, когда установлен бит PG в регистре CR0. Этот регистр известен также как регистр каталога таблиц страниц (Page Directory Base Register - PDBR) Он позволяет процессору определить место расположения каталога таблиц страниц для текущей задачи. В старших 10 битах он содержит физический базовый адрес каталога таблиц страниц. Каталог таблиц страниц микропроцессора всегда выравнивается на размер страницы в 4Кбайт. Специальное назначение имеют биты 3 и 4, управляющие кэшированием страницы, на которой находится каталог таблиц:

PWT - сквозная запись страницы (Page Write-Through, 486+);

PCD - запрещение кэширования страницы (Page-Cache Disable, 486+).

Регистр CR4 управляет использованием тех или иных архитектурных расширений процессоров Pentium и более новых. Какими возможностями обладает процессор, можно узнать по результатам выполнения команды CPUID(1).

VME - расширение виртуального режима (Virtual-8086 Mode Extensions, Pentium+). Разрешает расширения обработки прерываний и особых случаев в состоянии VM86. VME позволяют задаче в состоянии VM86 самостоятельно обрабатывать прерывания и особые случаи, не переключаясь в защищенный режим. VME обеспечивают аппаратную поддержку виртуального флага прерываний (VIF).

PVI - поддержка виртуального флага прерываний (Protected-mode Virtual Interrupts, Pentium+). Разрешает аппаратную поддержку VIF.

TSD - запрещение счетчика времени (Time Stamp Disable, Pentium+). Когда TSD=1, выполнение инструкции RDTSC (чтение внутреннего счетчика времени) ограничивается нулевым уровнем привилегий, иначе инструкция разрешена на всех уровнях.

DE - расширение отладки (Debugging Extensions, Pentium+). Расширение отладки позволяет использовать регистры DR4 и DR5 для установки контрольных точек по портам ввода-вывода.

PSE - расширение размера страниц (Page Size Extension, Pentium+). Расширение размера страницы позволяет в страничном преобразовании использовать страницы размером 4Мбайт (или 2Мбайт, если PAE=1).

PAE - расширение физического адреса (Physical Address Extension, P6+). Расширение физического адреса позволяет в результате страничной трансляции генерировать 36-битные физические адреса.

MCE - разрешение машинного контроля (Machine Check Enable, Pentium+). Разрешает особый случай машинного контроля (исключение #18), возникающий, когда блок внутреннего контроля операций внутри чипа или на шине обнаруживает ошибку.

PGE - разрешение атрибута глобальности (Page Global Enable, P6+). Разрешает использование бита глобальности в элементах PDE/PTE. Это расширение позволяет часто используемые или разделяемые (shared) страницы пометить как "глобальные". Глобальные страницы не выгружаются из TLB при переключении задачи.

PCE - разрешение счетчика производительности (Performance-monitoring Counter Enable, P6+). Когда PCE=1, выполнение инструкции RDPMC (чтение внутреннего счетчика производительности) разрешено на всех уровнях привилегий, иначе инструкция будет выполняться только на нулевом уровне привилегий.

OSFXSR - поддержка операционной системой FXSAVE/FXRESTOR (OS support for FXSAVE/FXRESTOR instructions, Pentium II+). Разрешает командам FXSAVE/FXRESTOR, сохраняющим/восстанавливающим контекст сопроцессора, сохранять/восстанавливать контекст XMM.

OSXMMEXCPT - поддерка операционной системой особых случаев XMM (OS support for XMM Exception, Pentium III+). Разрешает генерацию исключения #19 (ошибка SIMD), в противном случае немаскированные ошибки SIMD будут генерировать особый случай "недействительный код операции" (исключение #6).

 

<== предыдущая лекция | следующая лекция ==>
Регистры управления сегментированной памятью | Регистры отладки
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 520; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.