3

我正在使用 RDTSCP 替换 LFENCE;RDTSC 序列,并返回处理器 ID,以便我知道在线程重新调度到另一个 CPU 后何时比较 TSC 值。

为了确保不会在太旧的机器上运行 RDTSCP,我在 CPUID 检查(使用 libcpuid)后回退到 RDTSC。我想尝试使用 gcc 多目标属性功能而不是 CPUID 调用:

int core2_func (void) __attribute__ ((__target__ ("arch=core2")));

gcc 手册列出了许多 cpu 系列(haswell、skylake、...)。我如何找到哪个 cpu 系列首先引入了 RDTSCP?

4

1 回答 1

1

自 K8 Hammer 以来的所有 AMD 处理器都支持RDTSCP

在 Intel 处理器RDTSCP上,支持 Nehalem 及更高版本、Silvermont 及更高版本以及 Knights Landing 及更高版本。

于 2019-02-21T19:50:33.400 回答