缓存控制标志和 MTRR(内存类型范围寄存器)以层次结构方式操作,用于限制缓存。也就是说,如果 CR0.CD 标志 被设置,则全局禁止缓存(参见表 12-5)。如果 CR0.CD 标志 被清除,则可以使用页级缓存控制标志和/或 MTRR 来限制缓存。
如果页级和 MTRR 缓存控制存在重叠,禁止缓存的机制优先。例如,如果 MTRR 将某个系统内存区域设置为不可缓存,则该区域内的页面无法通过页级缓存控制启用缓存。反之亦然;也就是说,如果页级缓存控制将某页面设置为不可缓存,则 MTRR 无法将该页面设置为可缓存。
在写回(write-back)和写穿(write-through)缓存策略重叠的情况下,写穿策略优先。写组合(write-combining)策略(只能通过 MTRR 或 PAT 分配)优先于写穿或写回策略。
页级内存类型的选择取决于是否使用 PAT 来选择页面的内存类型,具体说明如下。
在基于 Intel NetBurst 微架构的处理器中,第三级缓存可以通过 IA32_MISC_ENABLE MSR 的第 6 位禁用。在这些处理器中,使用 IA32_MISC_ENABLE[bit 6] 优先于 CD 标志、MTRR 和 PAT 对 L3 缓存的控制。也就是说,当禁用三级缓存标志设置为 1(禁用缓存)时,其他缓存控制对 L3 缓存没有影响;当该标志为 0(启用缓存)时,缓存控制对 L3 缓存的影响与 L1 和 L2 缓存相同。
IA32_MISC_ENABLE[bit 6] 在 Intel Core i7 处理器、Intel Core 处理器及 Intel Atom 微架构的处理器中不被支持
详见12.5 英特尔白皮书 Vol. 3A CACHE CONTROL