Windows保护模式学习笔记(十三)—— PWT&PCD
-
- 要点回顾
- CPU缓存
-
- CPU缓存与TLB的区别
- PWT(Page Write Through)
- PCD(Page Cache Disable)
要点回顾
在学习PDE与PTE的属性时,我们对两个位做了保留,并没有说明其作用,那就是今天要学习的PWT位与PCD位
CPU缓存
描述:
- CPU缓存是位于CPU与物理内存之间的临时存储器,它的容量比内存小的多,但是交换速度(读写速度)比内存要快得多
- CPU缓存可以做的很大,有几K、几十K、几百K、甚至上M,这决定于CPU的版本
CPU缓存与TLB的区别
TLB:
存储了与
线性地址
之间的对应关系
物理地址
CPU缓存:
存储了与
物理地址
之间的对应关系
内容
有了CPU缓存,当CPU再去查找/读取某一个线性地址对应的物理页时,就可以:
- 先查TLB,找到它的物理地址
- 再找CPU缓存,找到它的内容
CPU缓存的大小决定了CPU的执行速度(CPU缓存越大,速度越快,当然也会越贵)
注意:
- 更多关于CPU缓存的细节请参考Intel白皮书第三卷第11章
- 不同的版本,章节顺序可能不一样,请参考章节标题
PWT(Page Write Through)
PWT=1
:写Cache的时候也要将数据写入内存中
PWT=0
:写Cache的时候就只是写Cache,是否要映射到内存由CPU缓存控制器自己决定
PCD(Page Cache Disable)
PCD=1
:禁止某个页写入缓存(直接写入内存)
比如:做页表用的页,已经存储在TLB中,可能就不需要再做缓存,而它的PCD一定为1