首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >恒定的非不变tsc能改变cpu状态的频率吗?

恒定的非不变tsc能改变cpu状态的频率吗?
EN

Stack Overflow用户
提问于 2020-06-20 21:43:31
回答 1查看 1.8K关注 0票数 2

我过去常常用rdtsc对Linux系统调用进行基准测试,以获得系统调用前后的计数器差异。我将结果解释为挂钟计时器,因为TSC以恒定的速率递增,进入暂停状态时不会停止。

不变的TSC概念被描述为

不变的TSC将在所有的消费物价指数P-,C-中以恒定的速率运行。和T状态。

将状态从C0 (操作)更改为C1 (停止)?时,常数非不变 tsc是否可以改变频率?

我目前的观点是,它不能只在性能(P)状态之间改变频率。因此,在使用非不变tsc时,应用rdtsc获取系统调用的壁时钟定时器是不可靠的。

我没有在我的/proc/cpuinfo中找到不变的tsc标志,只有constant_tsc,这意味着它不是必要的不变量。

令人困惑的原因是英特尔系统编程手册中的一句话:

--新处理器中的时间戳计数器--可以支持一种增强,称为不变时标。

因此,一些芯片(包括我的芯片)具有常数,但不是不变的tsc。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-01 03:15:40

从Nehalem和Saltwell开始,所有Intel处理器都支持不变的TSC,这意味着TSC在P-、C-和T-状态之间以恒定的速率递增(但不一定跨越S-状态)。

从奔腾4族0F型号03开始,所有英特尔处理器都支持恒定的TSC,这意味着TSC在P-和T-状态之间以恒定的速率递增。TSC在HLT状态下继续增加(称为自动停止或C1/自动暂停)。TSC在任何其他睡眠状态下都不会增加。这类处理器包括Bonnell。

旧处理器不支持恒定的TSC。TSC在HLT状态下继续增加,但在更深的睡眠状态下没有增加。在其中一些处理器上,TSC是有问题的。

当从S状态醒来时,TSC值可能被重新初始化(到一些依赖于BIOS的值)。

这是一个总结。"Y“是指TSC在指定类型的州之间继续以相同的速度递增。"N“指的是TSC继续以不同的速率递增或停止递增。在一些处理器上,TSC在S3状态下递增,而在较低的状态下(这称为始终在TSC上)。"N/A“是指不支持TSC。

代码语言:javascript
复制
                                  |   T   |   P   |C = HLT|C Other|S <= S3|S Other|
---------------------------------------------------
Nehalem+                          |   Y   |   Y   |   Y   |   Y   |   N   |   N   |
Silvermont Merrifield+Moorefield, |   Y   |   Y   |   Y   |   Y   |   Y   |   N   |
Saltwell Penwell+Cloverview
Other Saltwell+                   |   Y   |   Y   |   Y   |   Y   |   N   |   N   |
KNL+                              |   Y   |   Y   |   Y   |   Y   |   N   |   N   |
P4 90nm+                          |   Y   |   Y   |   Y   |   N   |   N   |   N   |
Enhanced Pentium M+               |   Y   |   Y   |   Y   |   N   |   N   |   N   |
Bonnell                           |   Y   |   Y   |   Y   |   N   |   N   |   N   |
Quark X1000                       |   Y   |   N   |   Y   |   N   |   N   |   N   |
KNC                               |   Y   |   N   |   Y   |   N   |   N   |   N   |
P5+                               |   Y   |   N   |   Y   |   N   |   N   |   N   |
Before P5                         |  N/A  |  N/A  |  N/A  |  N/A  |  N/A  |  N/A  |
Other Quark                       |  N/A  |  N/A  |  N/A  |  N/A  |  N/A  |  N/A  |
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62492053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档