Контрольний регістр — регістр, що змінює або контролює поведінку процесора чи іншого системного пристрою, тісно пов'язаного з ЦП. Загальними завданнями, виконуваними контрольними регістрами є: контроль переривань, перемикання режимів адресації, керування сторінковим відображенням пам'яті, та контроль співпроцесора.
Контрольні регістри серії x86
CR0
Регістр CR0 є 32-бітним на 386 і старших процесорах. На x86-64, в режимі Long mode він (та інші контрольні регістри) є 64-бітним. CR0 має різні контрольні прапори, що модифікують (визначають) базові операції процесора.
Біт | Ім'я | Повне Ім'я | Опис |
---|---|---|---|
31 | PG | Paging | Якщо 1, дозволяє сторінкове відображення і використання CR3, в іншому разі забороняє його. |
30 | CD | Cache disable | |
29 | NW | Not-write through | |
18 | AM | Alignment mask | Дозволена перевірка вирівнювання (alignment check), якщо прапор AM виставлено, AC прапор виставлено (в регістрі Eflags, на кільці 3) |
16 | WP | Write Protect | |
5 | NE | Numeric error | Дозволяє, коли виставлено, внутрішній формат виявлення помилок співпроцесора x87 (обчислення з рухомою комою), інакше дозволяє таку детекцію в PC стилі. |
4 | ET | Extension type | |
3 | TS | Task switched | Дозволяє зберігання котнексту завдання x87, тільки після того як x87 інструкція використана після перемикання завдання. |
2 | EM | Emulation | Якщо виставлено, x87 FPU (одиниця для обчислень з плаваючою точкою) є представлена, інакше ні. |
1 | MP | Monitor coprocesor | Контролює взаємодію WAIT/FWAIT інструкцій з прапором TS в CR0 |
0 | PE | Protected Mode Enable | Якщо 1, система працює в захищеному режимі, інакше - в реальному. |
CR1
Зарезервований регістр. Intel не розголошує чому.
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), розширення розміру сторінки та машинний контроль за помилками апаратури ( (MCE)).
Біт | Ім'я | Повне ім'я | Опис |
---|---|---|---|
16 | FSGSBASE | Дозвіл інструкцій RDFSBASE, RDGSBASE, WRFSBASE і WRGSBASE | |
14 | SMXE | SMX Enable | див. [en] |
13 | VMXE | VMX Enable | див. Апаратна віртуалізація x86 |
12 | LA57 | 5-level paging enable | Активація 5-рівневої схеми трансляції сторінок |
11 | User-Mode Instruction Prevention | Якщо встановлено, інструкції SGDT, SIDT, SLDT, SMSW і STR не можуть виконуватися при CPL > 0 | |
10 | OSXMMEXCPT | Operating System Support for Unmasked SIMD Floating-Point Exception | дозволяє немасковані винятки SSE. |
9 | OSFXSR | Operating System Support for FXSAVE and FXSTOR instructions | Має бути виставлене для використання SSE інструкцій, дозволяє швидке FPU збереження та відновлення. |
8 | PCE | Performance-Monitoring Counter enable | Якщо виставлено, RDPMC може виконуватися на всякому рівні, інакше тільки на нульовому кільці (рівень ядра). |
7 | PGE | Page Global Enabled | |
6 | MCE | Machine Check Exception | Дозволяє, якщо виставлено, переривання машинної перевірки (machine check interrupts) |
5 | PAE | Physical Address Extension | Змінює макет таблиці сторінки для трансляції 32-бітної віртуальної адреси в розширену 36-бітну фізичну. |
4 | PSE | Page Size Extension | Якщо невиставлений, розмір сторінки є 4KB, інакше - збільшений до 4MB, або, з PAE, до 2MB. |
3 | DE | Debugging Extension | |
2 | TSD | Time Stamp Disable | Якщо виставлено, інструкція RDTSC може виконуватися тільки на кільці 0, інакше - за будь-якого рівня привілеїв. |
1 | PVI | Protected Mode Virtual Interrupts | Дозволяє апаратну підтримку прапора віртуального переривання (VIF) в захищеному режимі. |
0 | VME | Virtual 8086 mode extensions | Як і прапор віртуальних переривань; дозволено якщо виставлено. |
CR8
Цей розділ потребує доповнення. (серпень 2019) |
Додаткові контрольні регістри в 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) |
10 | IA-32e mode active (LMA) |
9 | Резервовано |
8 | IA-32e mode enable (LME) |
7:1 | Резервовано |
0 | System Call Extensions (SCE) |
Джерела
- . Архів оригіналу за 11 листопада 2020. Процитовано 1 січня 2019.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - Ricardo Neri. . lwn.net (англ.). Архів оригіналу за 11 листопада 2020. Процитовано 22 листопада 2019.
Див. також
Посилання
- Intel 64 and IA-32 Architectures Software Developer’s Manual [ 19 квітня 2009 у Wayback Machine.]
- Intel IA-32 Architecture Software Developer’s Manuals [ 15 жовтня 2009 у Wayback Machine.]
- AMD64 Architecture Tech Docs [ 16 квітня 2009 у Wayback Machine.]
- Cracking Open The Pentium III [ 2 грудня 2008 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Kontrolnij registr registr sho zminyuye abo kontrolyuye povedinku procesora chi inshogo sistemnogo pristroyu tisno pov yazanogo z CP Zagalnimi zavdannyami vikonuvanimi kontrolnimi registrami ye kontrol pererivan peremikannya rezhimiv adresaciyi keruvannya storinkovim vidobrazhennyam pam yati ta kontrol spivprocesora Kontrolni registri seriyi x86CR0 Registr CR0 ye 32 bitnim na 386 i starshih procesorah Na x86 64 v rezhimi Long mode vin ta inshi kontrolni registri ye 64 bitnim CR0 maye rizni kontrolni prapori sho modifikuyut viznachayut bazovi operaciyi procesora Bit Im ya Povne Im ya Opis 31 PG Paging Yaksho 1 dozvolyaye storinkove vidobrazhennya i vikoristannya CR3 v inshomu razi zaboronyaye jogo 30 CD Cache disable 29 NW Not write through 18 AM Alignment mask Dozvolena perevirka virivnyuvannya alignment check yaksho prapor AM vistavleno AC prapor vistavleno v registri Eflags na kilci 3 16 WP Write Protect 5 NE Numeric error Dozvolyaye koli vistavleno vnutrishnij format viyavlennya pomilok spivprocesora x87 obchislennya z ruhomoyu komoyu inakshe dozvolyaye taku detekciyu v PC stili 4 ET Extension type 3 TS Task switched Dozvolyaye zberigannya kotnekstu zavdannya x87 tilki pislya togo yak x87 instrukciya vikoristana pislya peremikannya zavdannya 2 EM Emulation Yaksho vistavleno x87 FPU odinicya dlya obchislen z plavayuchoyu tochkoyu ye predstavlena inakshe ni 1 MP Monitor coprocesor Kontrolyuye vzayemodiyu WAIT FWAIT instrukcij z praporom TS v CR0 0 PE Protected Mode Enable Yaksho 1 sistema pracyuye v zahishenomu rezhimi inakshe v realnomu CR1 Zarezervovanij registr Intel ne rozgoloshuye chomu CR2 Mistit velichinu sho zvetsya Page Fault Linear Address PFLA linijna adresa pomilki storinki Koli traplyayetsya pomilka storinki page fault adresa komandi sho zapituvala cyu storinku zberigayetsya v danomu registri Pomilka storinki ce aparatno zgenerovane pererivannya interrupt chi vinyatok exception dlya PZ i stayetsya vono koli programa zapituyetsya storinki sho ye poznachena v yiyi adresnomu prostori ale vidsutnya v fizichnij pam yati major page fault abo pristutnya tam ale yiyi status ne viznacheno yak prisutnya minor page fault CR3 Vikoristovuyetsya koli dozvoleno virtualnu adresaciyu otzhe koli prapor PG v CR0 vistavleno CR3 dozvolyaye procesoru translyuvati perevoditi virtualni adresi u fizichni operuyuchi z direktoriyeyu storinok page directory i tablicyami storinok page tables dlya potochnogo zavdannya Zazvichaj verhni 20 bit CR3 vikoristovuyutsya yak registr bazi direktorij storinok angl page directory base register PDBR V tradicijnomu 32 bitnomu zahishenomu rezhimi x86 procesori vikoristovuyut dvorivnevu shemu vidobrazhennya storinok de registr CR3 mistit vkazivnik na okremu storinkovu direktoriyu page directory yaka dovzhinoyu ye 4096 bajt i yaka rozbita na 1024 4 bajtni odinici kozhna z yakih ce vkazivnik na tablicyu storinok dovzhinoyu tezh 4096 bajt i yaka tezh rozbita na 1024 4 bajtnih vkazivniki teper vzhe na 4096 bajtni bloki pam yati sho zvutsya storinkami CR4 Vikoristovuyetsya v zahishenomu rezhimi dlya kontrolyu takih operacij yak pidtrimka rezhimu virtualnogo 8086 dozvil tochok zupinu vvodu vivodu I O breakpoints rozshirennya rozmiru storinki ta mashinnij kontrol za pomilkami aparaturi MCE Bit Im ya Povne im ya Opis 16 FSGSBASE Dozvil instrukcij RDFSBASE RDGSBASE WRFSBASE i WRGSBASE 14 SMXE SMX Enable div en 13 VMXE VMX Enable div Aparatna virtualizaciya x86 12 LA57 5 level paging enable Aktivaciya 5 rivnevoyi shemi translyaciyi storinok 11 User Mode Instruction Prevention Yaksho vstanovleno instrukciyi SGDT SIDT SLDT SMSW i STR ne mozhut vikonuvatisya pri CPL gt 0 10 OSXMMEXCPT Operating System Support for Unmasked SIMD Floating Point Exception dozvolyaye nemaskovani vinyatki SSE 9 OSFXSR Operating System Support for FXSAVE and FXSTOR instructions Maye buti vistavlene dlya vikoristannya SSE instrukcij dozvolyaye shvidke FPU zberezhennya ta vidnovlennya 8 PCE Performance Monitoring Counter enable Yaksho vistavleno RDPMC mozhe vikonuvatisya na vsyakomu rivni inakshe tilki na nulovomu kilci riven yadra 7 PGE Page Global Enabled 6 MCE Machine Check Exception Dozvolyaye yaksho vistavleno pererivannya mashinnoyi perevirki machine check interrupts 5 PAE Physical Address Extension Zminyuye maket tablici storinki dlya translyaciyi 32 bitnoyi virtualnoyi adresi v rozshirenu 36 bitnu fizichnu 4 PSE Page Size Extension Yaksho nevistavlenij rozmir storinki ye 4KB inakshe zbilshenij do 4MB abo z PAE do 2MB 3 DE Debugging Extension 2 TSD Time Stamp Disable Yaksho vistavleno instrukciya RDTSC mozhe vikonuvatisya tilki na kilci 0 inakshe za bud yakogo rivnya privileyiv 1 PVI Protected Mode Virtual Interrupts Dozvolyaye aparatnu pidtrimku prapora virtualnogo pererivannya VIF v zahishenomu rezhimi 0 VME Virtual 8086 mode extensions Yak i prapor virtualnih pererivan dozvoleno yaksho vistavleno CR8Cej rozdil potrebuye dopovnennya serpen 2019 Dodatkovi kontrolni registri v x86 64 seriyiEFER Extended Feature Enable Register EFER registr sho z yavivsya u procesorah AMD K6 Biti cogo registra priznacheni dlya dozvolu chi zaboroni instrukcij SYSCALL SYSRET keruvannya rezhimom no execute vhodu vihodu v z Long mode ta dlya inshih sistemnih nalashtuvan Registr viyavivsya nastilki vazhlivim sho buv adaptovanij i kompaniyeyu Intel dlya svoyih procesoriv Jogo MSR indeks 0xC0000080 Bit Priznachennya 63 12 Rezervovano 11 Bit aktivuvannya zaboroni vikonannya angl no execute NXE 10 IA 32e mode active LMA 9 Rezervovano 8 IA 32e mode enable LME 7 1 Rezervovano 0 System Call Extensions SCE Dzherela Arhiv originalu za 11 listopada 2020 Procitovano 1 sichnya 2019 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Ricardo Neri lwn net angl Arhiv originalu za 11 listopada 2020 Procitovano 22 listopada 2019 Div takozhModel specific register MSR Registr stanuPosilannyaIntel 64 and IA 32 Architectures Software Developer s Manual 19 kvitnya 2009 u Wayback Machine Intel IA 32 Architecture Software Developer s Manuals 15 zhovtnya 2009 u Wayback Machine AMD64 Architecture Tech Docs 16 kvitnya 2009 u Wayback Machine Cracking Open The Pentium III 2 grudnya 2008 u Wayback Machine