operating-system - 关于页面属性表(PAT)的问题
问题描述
我正在尝试编写内核,并且某些内存需要不可缓存。
我阅读了 PAT 的英特尔文档,并了解以下内容:
1.有“IA32_PAT MSR”寄存器持有8个插槽,如下所示:
- 低 3 位中的每一个都包含一个可以表示以下缓存类型的数字:
通过操作每个分页表上的 PAT、PWD、PCD 位,我可以选择我想使用的插槽并决定缓存类型。
对于任何结构包括CR3 指向一个页结构(分页表),它只使用PWD,PCD 来选择缓存类型。其中只能选择“IA32_PAT MSR”中的前 4 个条目。此外,它只影响它指向的页结构的缓存(例如CR3指向PML4E表,它只确定PML4E表的缓存类型)
对于任何指向物理页面的结构,它使用 PAT、PWD、PCD 来选择“IA32_PAT MSR”中的所有 8 个条目
所以我想问:
如果预览理解还可以
我是否需要启用它,或者如果支持它会自动启用。
非常感谢!
解决方案
推荐阅读
- multithreading - 在 Java 8 中为一个写入者和多个读取者线程实现 ConcurrentHashMap
- msbuild - MSBuild 任务通过在路径中使用通配符来复制特定文件夹的内容
- c# - 在多个窗口之间切换
- javascript - 为什么我的引导控件不起作用?
- c++ - 为什么将变量添加到特定类时 arm-gnu-eabi 链接失败?
- ios - 无法安装IOS企业应用
- c# - 将 3 个 RadioButtons 组绑定到自定义类?
- java - SimpleJdbcCall 是“多线程的”是什么意思?
- javascript - 网站上一节(里)的刷新功能
- rpm - rpm -qa 显示已安装软件包,但 rpm -e 显示未安装