gpt4 book ai didi

x86 - clflush 实现 : Why's m8 in "Flushes cache line containing m8"?

转载 作者:行者123 更新时间:2023-12-02 21:06:26 25 4
gpt4 key购买 nike

英特尔文档中的 clflush 描述称“刷新包含 m8 的缓存行。”。此外,在 Intel 文档中,m8 表示“内存中的一个字节”。

我很困惑为什么它只是m8,它只有一个字节。因为对于32位或64位系统,我们应该有32位或64位地址,即4或8字节。我一定是误会了什么。谁能帮我吗?

非常感谢!

最佳答案

如果它采用更宽的操作数,那么它可以跨越两个缓存行。

如果它可以选择刷新两个缓存行,则微编码实现会更加复杂,因此他们选择仅影响给定地址,而不是地址范围。

clflush 始终只刷新一个缓存行:包含您使用的有效地址引用的字节的缓存行。 m8 只是描述这一点的最简单方法。

如果它仍然只刷新一个缓存行,那将是愚蠢的,并且将其称为 m64 操作数是没有意义的。他们本可以让它需要 8B 对齐的地址,但对于硬件来说,屏蔽掉地址的低 n 位来找出哪个缓存行是微不足道的。

关于x86 - clflush 实现 : Why's m8 in "Flushes cache line containing m8"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35775889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com