Контрольні регістри

Контрольний регістр — регістр, що змінює або контролює поведінку процесора чи іншого системного пристрою, тісно пов'язаного з ЦП.Загальними завданнями, виконуваними контрольними регістрами є: контроль переривань, перемикання режимів адресації, керування сторінковим відображенням пам'яті, та контроль співпроцесора.

Контрольні регістри серії x86 ред.

CR0 ред.

Регістр CR0 є 32-бітним на 386 і старших процесорах. На x86-64, в режимі Long mode він (та інші контрольні регістри) є 64-бітним. CR0 має різні контрольні прапори, що модифікують (визначають) базові операції процесора.

БітІм'яПовне Ім'яОпис
31PGPagingЯкщо 1, дозволяє сторінкове відображення і використання CR3, в іншому разі забороняє його.
30CDCache disable
29NWNot-write through
18AMAlignment maskДозволена перевірка вирівнювання (alignment check), якщо прапор AM виставлено, AC прапор виставлено (в регістрі Eflags, на кільці 3)
16WPWrite Protect
5NENumeric errorДозволяє, коли виставлено, внутрішній формат виявлення помилок співпроцесора x87 (обчислення з рухомою комою), інакше дозволяє таку детекцію в PC стилі.
4ETExtension type
3TSTask switchedДозволяє зберігання котнексту завдання x87, тільки після того як x87 інструкція використана після перемикання завдання.
2EMEmulationЯкщо виставлено, x87 FPU (одиниця для обчислень з плаваючою точкою) є представлена, інакше ні.
1MPMonitor coprocesorКонтролює взаємодію WAIT/FWAIT інструкцій з прапором TS в CR0
0PEProtected Mode EnableЯкщо 1, система працює в захищеному режимі, інакше - в реальному.

CR1 ред.

Зарезервований регістр. Intel не розголошує чому[1].

CR2 ред.

Містить величину, що зветься Page Fault Linear Address (PFLA) - лінійна адреса помилки сторінки. Коли трапляється помилка сторінки (page fault), адреса команди, що запитувала цю сторінку, зберігається в даному регістрі.

Помилка сторінки - це апаратно згенероване переривання (interrupt) чи виняток (exception), для ПЗ, і стається воно, коли програма запитується сторінки, що є позначена в її адресному просторі, але відсутня в фізичній пам'яті (major page fault), або пристутня там, але її статус не визначено як «присутня» (minor page fault).

CR3 ред.

Використовується, коли дозволено віртуальну адресацію, отже коли прапор PG в CR0 виставлено. CR3 дозволяє процесору транслювати (переводити) віртуальні адреси у фізичні, оперуючи з директорією сторінок (page directory) і таблицями сторінок (page tables) для поточного завдання. Зазвичай, верхні 20 біт CR3 використовуються як регістр бази директорій сторінок (англ. page directory base register, PDBR).В традиційному 32-бітному захищеному режимі, x86 процесори використовують дворівневу схему відображення сторінок, де регістр CR3 містить вказівник на окрему сторінкову директорію (page directory), яка довжиною є 4096 байт, і яка розбита на 1024 4-байтні одиниці, кожна з яких — це вказівник на таблицю сторінок довжиною теж 4096 байт, і яка теж розбита на 1024 4-байтних вказівники, тепер вже на 4096 байтні блоки пам'яті, що звуться сторінками.

CR4 ред.

Використовується в захищеному режимі для контролю таких операцій як підтримка режиму віртуального 8086, дозвіл точок зупину вводу/виводу (I/O breakpoints), розширення розміру сторінки та машинний контроль за помилками апаратури (Machine-check exception (MCE)).

БітІм'яПовне ім'яОпис
16FSGSBASEДозвіл інструкцій RDFSBASE, RDGSBASE, WRFSBASE і WRGSBASE
14SMXESMX Enableдив. Trusted Execution Technology[en]
13VMXEVMX Enableдив. Апаратна віртуалізація x86
12LA575-level paging enableАктивація 5-рівневої схеми трансляції сторінок
11UMIPUser-Mode Instruction PreventionЯкщо встановлено, інструкції SGDT, SIDT, SLDT, SMSW і STR не можуть виконуватися при CPL > 0[2]
10OSXMMEXCPTOperating System Support for Unmasked SIMD Floating-Point Exceptionдозволяє немасковані винятки SSE.
9OSFXSROperating System Support for FXSAVE and FXSTOR instructionsМає бути виставлене для використання SSE інструкцій, дозволяє швидке FPU збереження та відновлення.
8PCEPerformance-Monitoring Counter enableЯкщо виставлено, RDPMC може виконуватися на всякому рівні, інакше тільки на нульовому кільці (рівень ядра).
7PGEPage Global Enabled
6MCEMachine Check ExceptionДозволяє, якщо виставлено, переривання машинної перевірки (machine check interrupts)
5PAEPhysical Address ExtensionЗмінює макет таблиці сторінки для трансляції 32-бітної віртуальної адреси в розширену 36-бітну фізичну.
4PSEPage Size ExtensionЯкщо невиставлений, розмір сторінки є 4KB, інакше - збільшений до 4MB, або, з PAE, до 2MB.
3DEDebugging Extension
2TSDTime Stamp DisableЯкщо виставлено, інструкція RDTSC може виконуватися тільки на кільці 0, інакше - за будь-якого рівня привілеїв.
1PVIProtected Mode Virtual InterruptsДозволяє апаратну підтримку прапора віртуального переривання (VIF) в захищеному режимі.
0VMEVirtual 8086 mode extensionsЯк і прапор віртуальних переривань; дозволено якщо виставлено.

CR8 ред.

Додаткові контрольні регістри в x86-64 серії ред.

EFER ред.

Extended Feature Enable Register (EFER) — регістр, що з'явився у процесорах AMD K6. Біти цього регістра призначені для дозволу чи заборони інструкцій SYSCALL/SYSRET, керування режимом no-execute, входу/виходу в/з Long mode, та для інших системних налаштувань. Регістр виявився настільки важливим, що був адаптований і компанією Intel для своїх процесорів. Його MSR-індекс — 0xC0000080.

БітПризначення
63:12Резервовано
11Біт активування заборони виконання (англ. no execute), NXE)
10IA-32e mode active (LMA)
9Резервовано
8IA-32e mode enable (LME)
7:1Резервовано
0System Call Extensions (SCE)

Джерела ред.

  1. Архівована копія. Архів оригіналу за 11 листопада 2020. Процитовано 1 січня 2019.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  2. Ricardo Neri. x86: Enable User-Mode Instruction Prevention. lwn.net (англ.). Архів оригіналу за 11 листопада 2020. Процитовано 22 листопада 2019.

Див. також ред.

Посилання ред.

🔥 Top keywords: Головна сторінкаКоханівський Микола МиколайовичСпеціальна:ПошукВікіпедія:Культурна спадщина та видатні постаті (2024)Сухаревський Вадим ОлеговичЗа межею (фільм, 2021)МалавіЧемпіонат Європи з футболу 2024УкраїнаYouTubeФедоров Іван СергійовичМацегора Геннадій МиколайовичРБ-301Б «Борисоглєбськ-2»Бригада НГУ «Азов»Сили безпілотних систем Збройних сил УкраїниЗбірна України з футболуТериторіальний центр комплектування та соціальної підтримкиНаціональна суспільна телерадіокомпанія УкраїниМустафа НайємРадіо «Свобода»Чемпіонат Європи з легкої атлетики 202447-ма окрема механізована бригада (Україна)БріджертониСпеціальна:Нові редагуванняВійськові звання УкраїниСекс3-тя окрема штурмова бригада (Україна)Су-57FacebookMistral (ПЗРК)Єрмак Андрій БорисовичМамай Олександр Федорович5-та окрема штурмова бригада (Україна)КвірПОМ-3Су-34Поклонська Наталія ВолодимирівнаChatGPTКиїв