X86架构-控制寄存器

阅读数:907 评论数:0

跳转到新版页面

分类

OS

正文

一、概述

控制寄存器决定处理器的操作模式当前执行任务的特性。

二、CR0

包含系统控制标志用于控制操作模式和处理器状态

PG Paging,分页标志,设置开启分页。
CD Cache Disable
NW Not Write-through,控制当写操作命中缓冲的行为
AM Alignment Mask,是否开启内存对齐检查。
WP Write Protect,是否允许高级别的进程向只读页写数据
NE Numeric Error,是否开启x87 FPU错误报告机制
ET Extension Type,是否支持Intel 387 DX math coprocessor指令
TS Task Switched,当执行一个新任务时,直到x87 FPU/MMX/SSE/SSE2/SSE3/SSSE3/SSE4指令执行完才保存其上下文。
EM Emulation,标示处理器是否有x87 FPU。
MP Monitor Coprocessor,控制与设定了TS标志的WAIT(或FWAIT)指令的的交互
PE Protection Enable,开启保护模式。

三、CR1未使用,保留

四、CR2

存储page-fault 线性地址(即引起缺页的线性地址)

五、CR3

包含分页使用的物理地址载始的位置和两个标志(PCD和PWT)。只有基地址高bit位(12 bit位前的)指定,低12 bit位才假定为0,这样分页的大小就是4Kbytes。PCD和PWT标志控制分页在处理器内部缓存中的使用。

PCD Page-level Cache Disable,控制分页时访问第一个页使用的内存类型。
PWT  Page-level Write Through,控制分页时访问第一个页使用的内存类型。

六、CR4

包含的标志可用于开启架构扩展和处理器特定能力。CR4中的标志不是在所有处理器上都实现了,使用带有PCE标志的CPUID指令可以判断在当前CPU上是否实现。

VME Virtual-8086 Model Extensions,在vritual-8086模式下处理中断和异常。
PVI Protected-Mode Virtual Interrupt,在保护模式下,使硬件支持virtual interrupt flag(VIF)。
TSD Time Stamp Disable,使用RDTS指令只能在权限0级运行
DE Debugging Extensions,和调试寄存器DR4、DR5相关,可能会生成undefined opcode异常(#UD)
PSE Page Size Extension,页大小是否为4MBytes
PAE Physical Address Extension,分布使用的物理地址是否多于32位
MCE Machine-Check Enable,允许machine-check异常
PGE Page Global Enable,global page特性允许把常用的页共享为所有用户使用。
PCE Performance-Monitring Counter Enable,允许RDPMC指令在任务权限级别运行。
OSFXSR  Operating System Support for FXSAVE and FXRSTOR instruction,第一个作用是程序可以使用FXSAVE和FXRSTOR指令;第二个作用是FXSAVE和FXRSTOR指令可以使用x87 FPU和MMX寄存器保存或恢复XMM和MXCSR寄存器;第三个作用是处理器可以执行SSE/SSE2/SSE3/SSSE3/SSE4指令,这些指令可以带有PAUSE、PREFETCHh、SFENCE、LFENCE、MFENCE、MOVNTI、CLFLUSH、CRC32和POPCNT异常。
OSXMMEXCPT Operating System Support for Unmasked SIMD Floating-Point Exception
UMIP

User-Mode Instruction Prevention。

CPL>0: SGDT, SIDT, SLDT, SMSW和STR指令不可执行

LA57 57-bit linear addresses,在IA-32e模式下,处理器使用5级分页生成57bit长线性地址,否则在IA-32e模式下,使用4级分页生成48bit长的线性地址。
VMXE VMX-Enable Bit,Virtual Machine Extentions
SMXE SMX-Enable Bit,Safer Mode Extensions
FSGSBASE FSGSBASE-Enable bit,可以使用指令RDFSBASE,RDGSBASE,WRFSBASE,WRGSBASE指令
PCIDE PCID-Enable bit,process-context identifiers
OSXSAVE XSAVE and Processor Extended States-Enable Bit,第一个作用标识程序可以使用XGETBV、XSAVE和XRSTOR指令;第二个作用是XSAVE和XRSTOR指令保存和恢复x87 FPU的状态(包括MMX寄存器)、SSE状态(XMM寄存器和MXCSR);第三个作用是处理器可以执行XGETBV和XSETBV指令用于读写XCR0
SMEP SMEP-Enable Bit,supervisor-mode execution prevention
SMAP SMAP-Enable bit,superviso-mode access prevention
PKE Enable protection key for user-mode pages,使用一个protection key与4级或5级分页中用户模式下的线性地址关联,
CET Control-flow Enforcement Technology,
PKS Enable protection keys for supervisor-mode pages
TPL Task Priority Level(bit 3:0),设置的是阻断的中断的最高优先级阈值。值0 表示不阻断任何中断。

七、CR8

用于读写Task Priority Register(TPR),它指定了外部中断生效的优先级阈值。CR8只对Intel 64架构可用。

八、扩展的控制寄存器

当前只有一个XCR0寄存器

X87 一定是1
SSE 设置为1时,XSAVE特性集可用于管理MXCSR和XMM寄存器
AVX AVX指令可用被执行,XSAVE特性集可用于管理YMM寄存的前半部分
BNDREG MPX指令可被执行,XSAVE特性集可用于它先是BND0~BND3
BNDCSR MPX指令可被 行,XSAVE特性集可用于管理 BNDCFGU和BNDSTATUS寄存器
opmask AVX-512指令可被执行,XSAVE特性集可用来管理opmask寄存器k0~k7
ZMM_Hi256 AVX-512指令可被执行,XSAVE特性集可用来管理 ZMM upper halves of the lower ZMM registers
Hi16_ZMM

AVX-512指令可被执行,XSAVE特性集可用于管理upper ZMM registers

PKRU  XSAVE特性集可用于管理PKRU寄存器

 




相关推荐

x86架构起源于Intel公司在1978年推出的8086处理器。</stro

IA-32 有162上基本程序执行寄存器。分组为: 1、通用寄存器 EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP。可以用来存储</

系统级架构包括寄存器、数据结构、指令以及它们实现的操作,包括内存管理、中断、异常处理、任务管理、多处理器控制。 下图是IA-32下的系统寄存器和数据结构示意图 <im

CPU有4个用于内存管理的寄存器。 <

IA-32机器指令中源操作数可能在 (1)指令本身(立即数) (2)寄存器 (3)内存 (4)I/O端口 指令返回的结果可能

1、Instruction Prefixes