任何应用程序或系统内核都可以访问甚至修改CPU内容和/或TLB?
我从这个网站找到了关于CPU缓存的简短描述:
“没有编程语言可以直接访问CPU缓存。读取和写入缓存是由硬件自动完成的;没有办法编写将缓存视为任何类型的独立实体的指令。读取和写入缓存对所有触摸内存的指令都会产生副作用。“
从这条消息中,似乎无法读取/写入CPU cahce / TLB的内容。
但是,我还得到了与上述信息冲突的其他信息。该信息意味着调试工具可能能够转储/显示CPU缓存的内容。
目前我很困惑。所以请帮助我。
答案 0 :(得分:1)
我从另一篇文章中得到了一些答案:dump the contents of TLB buffer of x86 CPU。谢谢adamdunson。
人们可以阅读有关测试寄存器的文档,但它只适用于非常旧的x86机器test registers
wiki https://en.wikipedia.org/wiki/Test_register的另一个描述:
Intel 80486处理器中的测试寄存器是一个使用的寄存器 处理器,通常是做自我测试。大多数这些寄存器是 没有文档,并由专业软件使用。测试记录 被命名为TR3至TR7。普通课程通常不需要这些课程 注册工作。使用Pentium,测试寄存器被替换 通过各种型号专用寄存器(MSR)。
提供了两个测试寄存器TR6和TR7 测试。 TR6是测试命令寄存器,TR7是测试数据 寄存器。这些寄存器由MOV的变体访问 指令。测试寄存器可以是源操作数或 目的地操作数。 MOV指令在两者中都有定义 实地址模式和保护模式。测试寄存器是 特权资源。在保护模式下,MOV指令即可 访问它们只能在特权级别0执行。尝试 在执行任何其他权限时读取或写入测试寄存器 级别导致一般保护异常。还有那些说明 在任何比80486更新的CPU上生成无效的操作码异常。
事实上,我仍然期待英特尔i7或i5上的某些类似功能。不幸的是,我没有找到任何相关的相关文件。如果有人有这样的信息,请告诉我。