【发布时间】:2010-11-02 07:37:46
【问题描述】:
我通过查询寄存器在我的 C++ 程序中使用时间戳计数器。但是,我遇到的一个问题是获取时间戳的函数将从不同的 CPU 获取。我如何确保我的函数总是从同一个 CPU 获取时间戳,或者无论如何要同步 CPU?顺便说一句,我的程序在 Fedora 13 64 位的 4 核服务器上运行。
谢谢。
【问题讨论】:
-
您没有说您使用 TSC 的目的是什么,但请注意,当您的 CPU 使用频率缩放时,TSC 也可能返回意外值。
-
Fabian,你看到意外了吗?期望在英特尔手册中有完整描述,大多数 CPU 是“恒定 TSC”,不会随频率而变化。而且它不是 CPU 滴答计数器,而是 Bus Freq*fixed multiplier 的计数器。