使用输入/输出指令的内存映射 I/O 操作(在英特尔处理器中)...仍然被缓存吗?

发布于 2024-10-12 03:41:34 字数 220 浏览 4 评论 0原文

如果映射 I/O 的地址范围被键入为回写 (WB),即使我使用 in/out 指令,内存映射 I/O 操作(在英特尔处理器中)是否仍会被缓存?

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

Will a memory mapped i/o operation (in intel processor) still be cached if the address range of the mapped i/o is being typed as write back (WB) even if I use the in/out instruction?

EDIT:
This question is solved. I found out that MMIO is cacheable, and MMIO operation can be reordered depending on it's memory type. That's why intel recommended to set MMIO using the MTRR as UC (uncacheable).. I found it on intel software developer manual v3A, which might also be applied on amd processors...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风向决定发型 2024-10-19 03:41:34

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

I'm not aware that MMIO (on x86 systems) can actually be set to be cacheable, but even if they can, I would think using IO instructions would bypass that part of the MMU.The CPU wouldn't be aware that the IO address that you are writing to is internally mapped to the same MMIO address on your device. How are you setting the cacheability of that MMIO region?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文