X86 之MTRR

MTRR (memory type range register) 是关于物理内存在CPU能否缓存的描述, 有Fix MTRR, Variable MTRR, Defult MTRR,  固定MTRR是指前1M的物理内存已经有特定的寄存器来描述了,每段物理内存的大小已经确定下来了,编程时只需要指定每段物理内存的memory type就行了,如UC(Uncacheable), WB(Write Back), WC(Write Combining)等, 

X86 之MTRR_第1张图片

其中FIX4K/16K/64K的后缀指得是每段物理内存的大小。

可变MTRR的个数由VCNT字段决定

X86 之MTRR_第2张图片

每一个可变MTRR由一对寄存器组成,一个用于指定物理内存段的基地和内存类型,一个起掩码的作用

X86 之MTRR_第3张图片


X86 之MTRR_第4张图片


PAT(Page Attribute Table) 是在线性地址空间中对映射的物理内存的一种缓存策略的描述,物理内存中的一个物理页框采用什么样的缓存策略,是由两方面决定的,一个是在物理地址空间进行描述的MTRR,一个是线性空间的PAT。

X86 之MTRR_第5张图片


你可能感兴趣的:(X86 之MTRR)