内存映射i / o操作(在intel处理器中)使用输入/输出指令...仍然被缓存?

时间:2011-01-15 06:51:58

标签: x86 intel osdev cpu-cache

如果映射的i / o的地址范围被输入为回写(WB),即使我使用输入/输出指令,是否仍会缓存内存映射的i / o操作(在intel处理器中)?

编辑: 这个问题解决了。我发现MMIO是可缓存的,MMIO操作可以根据它的内存类型重新排序。这就是为什么英特尔建议使用MTRR设置MMIO作为UC(不可缓存)..我在英特尔软件开发人员手册v3A上找到了它,它也可能应用于amd处理器......

1 个答案:

答案 0 :(得分:0)

我不知道MMIO(在x86系统上)实际上可以设置为可缓存,但即使它们可以,我认为使用IO指令会绕过MMU的那部分.CPU不会意识到您要写入的IO地址在内部映射到设备上的相同MMIO地址。你是如何设置该MMIO区域的可缓存性的?