天天看点

Windows保护模式学习笔记(十三)—— PWT&PCD

Windows保护模式学习笔记(十三)—— PWT&PCD

    • 要点回顾
    • CPU缓存
      • CPU缓存与TLB的区别
    • PWT(Page Write Through)
    • PCD(Page Cache Disable)

要点回顾

在学习PDE与PTE的属性时,我们对两个位做了保留,并没有说明其作用,那就是今天要学习的PWT位与PCD位

CPU缓存

描述:

  1. CPU缓存是位于CPU与物理内存之间的临时存储器,它的容量比内存小的多,但是交换速度(读写速度)比内存要快得多
  2. CPU缓存可以做的很大,有几K、几十K、几百K、甚至上M,这决定于CPU的版本

CPU缓存与TLB的区别

TLB:

存储了

线性地址

物理地址

之间的对应关系

CPU缓存:

存储了

物理地址

内容

之间的对应关系

有了CPU缓存,当CPU再去查找/读取某一个线性地址对应的物理页时,就可以:

  1. 先查TLB,找到它的物理地址
  2. 再找CPU缓存,找到它的内容

CPU缓存的大小决定了CPU的执行速度(CPU缓存越大,速度越快,当然也会越贵)

注意:

  1. 更多关于CPU缓存的细节请参考Intel白皮书第三卷第11章
  2. 不同的版本,章节顺序可能不一样,请参考章节标题

PWT(Page Write Through)

PWT=1

:写Cache的时候也要将数据写入内存中

PWT=0

:写Cache的时候就只是写Cache,是否要映射到内存由CPU缓存控制器自己决定

PCD(Page Cache Disable)

PCD=1

:禁止某个页写入缓存(直接写入内存)

比如:做页表用的页,已经存储在TLB中,可能就不需要再做缓存,而它的PCD一定为1

继续阅读