时间测量,CPU滴答和可调CPU频率?

时间:2018-02-09 00:37:57

标签: c assembly time cpu clock

现在,CPU可以调整频率以降低能耗。然而,许多进行高精度持续时间测量的方法并不直接依赖于测量时间,而是依赖于计算滴答数。例如,诸如RDTSC/RDTSCP之类的汇编指令似乎访问在每个时钟周期单调递增的滴答计数。或者C常数CLOCKS_PER_SEC是......常数。对于频率可调的处理器,滴答计数和实际持续时间是如何相关的?如何从另一个推断出一个?

1 个答案:

答案 0 :(得分:1)

查看英特尔的文档(英特尔®64和IA-32架构 软件开发人员手册/第3卷(3A,3B,3C& 3D):系统编程指南),第17.17节,文档内容为

  

对于Pentium 4处理器,Intel Xeon处理器(系列[0FH],型号[03H及更高]);适用于Intel Core Solo   和Intel Core Duo处理器(系列[06H],型号[0EH]);适用于英特尔至强处理器5100系列和英特尔   Core 2 Duo处理器(系列[06H],型号[0FH]);对于Intel Core 2和Intel Xeon处理器(系列[06H],   DisplayModel [17H]);对于Intel Atom处理器(系列[06H],   DisplayModel [1CH]):时间戳计数器以恒定速率递增。该比率可以由   处理器的最大内核时钟与总线时钟比,或者可以通过最大分辨频率设置   哪个处理器启动了。最大解析频率可能与处理器基数不同   频率,更多详细信息,请参见第18.7.2节。在某些处理器上,TSC频率可能不相同   作为品牌字符串中的频率。

所以TSC以恒定速率运行。所以不同的频率并不重要。这是奔腾4以来的情况。

请阅读完整的第17.17节,了解处理器如何为您提供恒定速率计时器。

您的问题下面的评论也是正确的:您必须区分这样的短期计时器和挂钟时间。