cpp linux:关于rdtsc

时间:2012-01-16 14:17:20

标签: c++ linux rdtsc

我在我的代码中使用以下函数:

static __inline__ unsigned long long rdtsc(void){
  unsigned long long int x;
  __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
  return x;
}

此函数是否返回自上次启动以来的刻度数? 我在哪里可以找到有关此功能的文档?

1 个答案:

答案 0 :(得分:1)

RDTSC获取自上次重置以来的cpu周期数,请参阅wikipedia

英特尔指令集手册第2A卷& B,作为一个更值得信赖的来源:

  

处理器单调递增时间戳计数器MSR   每个时钟周期并在处理器复位时将其复位为0。   请参阅英特尔®64和IA-32第16章中的“时间戳计数器”   架构软件开发人员手册,第3B卷,具体   时间戳计数器行为的详细信息。

作为旁注:你不应该发出字节,而是使用实际的RTDSC指令助记符,使其更具可读性。