CR3和PCID

CR3是控制寄存器,里面保存着当前任务的4级头表的地址;
CR3的格式由CR4的位17控制,
CR4的位17称为PCIDE,即 进程上下文标识允许位,process context identifier enable。

为什么引入PCIDE功能:

  1. 多任务系统中,每个任务都有自己的线性地址空间,所以每个任务都有自己独立的页结构表
  2. 任务切换时,将新任务的4级头表加载到CR3中
  3. 为了加速对内存的访问,处理器在对内存进行访问时,并不是直接访问内存上的页结构表,而是访问被加载到TLB上的页结构表
  4. TLB,translation lookup table,转换速查表,里面缓存了当前任务的页结构表
  5. 当发生任务切换时,需要使TLB当前内容失效,然后缓存新的任务的页结构表,缓存的过程称为预热。
  6. 有可能发生新任务的页结构表刚刚预热好,又发生了任务切换,此时又要使TLB中的内容失效,并缓存最新任务的页结构表,这种现象称为颠簸
  7. 为了减少TLB的颠簸,引入了PCID。TLB的每个表项包含线性地址、物理地址和PCID值,这样就可以缓存多个任务的页结构表到TLB中

CR3的格式

CR3共64位。
位12~位51保存着4级头表的物理地址
位0~11的内容有CR4.PCIDE位决定。
PCIDE为1时,CR3的位0~11就是PCID值
PCIDE的0时,CR3的位3和位4分别是PWT和PCD,位0~11的其余位都reserved。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值