首页
社区
课程
招聘
一个关于CR3寄存器的问题
发表于: 2009-12-7 16:32 5760

一个关于CR3寄存器的问题

2009-12-7 16:32
5760
CR3 中高20位应该存放的是页目录表的物理页码,低12位为0。但用softice 输入addr后发现其他进程的CR3的低12位非0, 只有idle进程低12位是0。不知是什么道理。(系统是xp sp3的,cpu 是Pentium双核)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
2
开启PAE和不开启PAE两者不一样,不开启PAE时只用高20位存放页目录表基地址,开启PAE时会用到前27位。
另外,从80486开始,在CR3的低12位定义了两个控制位,如下:
PCD(Page-level Cache Disable)页CACHE禁止,当PCD=0时,页目录表进行高速缓存,PCD=1时,不进行高速缓存;该位控制PCD引脚控制外部CACHE工作还是不工作。
PWT(Page-level Writes Transparent),CACHE的写入分为透写(Write-Through)和回写(Write-Back),80486以上的CPU内部的CACHE都是透写的,但对外部CACHE而言,允许某些页是回写的,而另一些页是透写的,当PWT=1时,外部CACHE对页目录进行透写,否则进行回写;此位驱动PWT引脚以控制外部CACHE是透写还是回写。

PAE后的分页机制可以参考http://bbs.pediy.com/showthread.php?t=67820
2009-12-7 17:10
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
太感谢了!刚去看了下intel的手册
2009-12-7 17:24
0
游客
登录 | 注册 方可回帖
返回
//