首页 > 解决方案 > 关于页面属性表(PAT)的问题

问题描述

我正在尝试编写内核,并且某些内存需要不可缓存。

我阅读了 PAT 的英特尔文档,并了解以下内容:

1.有“IA32_PAT MSR”寄存器持有8个插槽,如下所示:

在此处输入图像描述

  1. 低 3 位中的每一个都包含一个可以表示以下缓存类型的数字:

在此处输入图像描述

  1. 通过操作每个分页表上的 PAT、PWD、PCD 位,我可以选择我想使用的插槽并决定缓存类型。

  2. 对于任何结构包括CR3 指向一个页结构(分页表),它只使用PWD,PCD 来选择缓存类型。其中只能选择“IA32_PAT MSR”中的前 4 个条目。此外,它只影响它指向的页结构的缓存(例如CR3指向PML4E表,它只确定PML4E表的缓存类型)

  3. 对于任何指向物理页面的结构,它使用 PAT、PWD、PCD 来选择“IA32_PAT MSR”中的所有 8 个条目


所以我想问:

  1. 如果预览理解还可以

  2. 我是否需要启用它,或者如果支持它会自动启用。

非常感谢!

标签: operating-systemkernelpaging

解决方案


推荐阅读