什么是包含对RDTSCP支持的gcc cpu-type?

时间:2016-06-07 15:02:28

标签: gcc x86 intel rdtsc

我正在使用RDTSCP替换LFENCE; RDTSC序列并且还获取处理器ID,以便在线程被重新安排到另一个CPU之后我知道何时比较TSC值。

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

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

gcc manual lists a number of cpu families(haswell,skylake,......)。我怎样才能找到哪个cpu系列首次引入RDTSCP?

1 个答案:

答案 0 :(得分:1)

根据this 1 于2006年撰写的文章,RDTSCP指令首先在AMD NPT系列0Fh处理器中引入,现在称为{{3 }}。但是,有很多处理器属于这个家族,并且在2006年或之前发布。我发现了另一个AMD K8 Hammer,它最初是用日语编写的,但是我使用Google Translate将其翻译成英语。该文章提到系列0Fh的“版本F”支持RDTSCP指令。此处列出的品牌为Rev. F的处理器是Athlon 64 FX和Athlon 64 Orleans,它们均于2006年发布。因此,这是前两个支持RDTSCP的处理器。

第一个支持RDTSCP的英特尔处理器是Nehalem,它于2008年发布。


脚注1:我只能使用Wayback Machine和article找到该文章。在AMD网站上已经没有了。