gpt4 book ai didi

assembly - “rdtsc”之前的“cpuid”

转载 作者:行者123 更新时间:2023-12-03 10:05:32 25 4
gpt4 key购买 nike

有时我遇到用rdtsc指令读取TSC的代码,但是恰好在之前调用cpuid

为什么需要调用cpuid?我意识到这可能与具有TSC值的不同内核有关,但是当您依次调用这两个指令时会发生什么呢?

最佳答案

这是为了防止乱序执行。从现在已经从网络上消失的链接(但是在消失之前被幸运地复制到这里)中,该文本摘自一个约翰·埃克达尔(John Eckerdal)题为“性能监控”的文章:

Pentium Pro和Pentium II处理器支持乱序执行指令,在对它们进行编程时可能会以另一种顺序执行。如果不注意,这可能是错误的来源。
为了避免这种情况,程序员必须序列化指令队列。这可以通过在RDTSC指令之前插入一个串行化指令(如CPUID指令)来完成。

关于assembly - “rdtsc”之前的“cpuid”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2918113/

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