0

这是我在 C 中用于将 RDTSC 时钟滴答转换为 usec 中的时间的代码。用于读取 TSC 的汇编代码。要将 RDTSC 时钟节拍转换为时间,需要将其除以 CPU 时钟频率(以 GHz 为单位)。CPU 频率 = 0.963 以 GHz 为单位。我不知道我在转换中错在哪里?

static inline uint64_t RDTSC()
{
 unsigned int hi, lo;
 __asm__ volatile("rdtsc" : "=a" (lo), "=d" (hi));
 return ((uint64_t)hi << 32) | lo;
}
start = RDTSC();
end = RDTSC();
printf("\n-%.4f us-",((double)(end-start)/(double)0.963)/1000);



 

   

    
4

0 回答 0