九号胡同

 找回密码
 注册
搜索
查看: 37|回复: 0

[电脑数码] CPU 为什么会有高频低负载的状态?

[复制链接]
发表于 2022-1-13 04:48 PM | 显示全部楼层 |阅读模式


0.jpg

CPU 为什么会有高频低负载的状态?

作者 / 老狼

先说结论,这样做是为了更加省电。现在 CPU 内核的频率控制由一个叫做 PCU(Package Control Unit)的微处理器来控制。PCU 从 Nehalem CPU 开始就嵌入在 CPU 的封装中。

PCU 控制内核频率本着省电和提高响应度来进行调节。完成一项工作,为了节省能耗,是不是就是低频慢慢干就好了呢?答案是否定的。我们排除浪费时间等因素,只从能耗上考量,如果我们衡量干完某件事需要消耗的整体能量,实际上有两种策略:

  1. 保持固定频率,将事情干完,然后 CPU 进入休息状态。
  2. 加速干事情,忍受短时功耗上升,尽快干完事情,尽早让 CPU 休息。

这和人一样,有些人是慢性子,徐徐图之;而有些人性子急,希望早干完早休息。很难判断哪种好,这就需要量化分析了,好在 Intel 的工程师已经为我们找到这个平衡点:

1.jpg

在这个平衡点附近,按照工作量(workload demand)被分成 Low Range 和 High Range,PCU 采取两种策略。

2.jpg
策略一

在 Low Range 的区间,CPU 的主频低于 Pe 就没有任何意义了,PCU 总是让内核工作在 Pe 频率上,尽快干完事,进入休眠状态(CState)。这就是有时计算机比较清闲,我们打开任务管理器时,会发现有些 CPU 既不是工作在最低主频上,也不是工作最高主频上的原因。

3.jpg

在 High Range 中,提高内核频率尽管可以让任务完成的更快,但是因为能耗和频率 f 是 3 次方的关系,对能耗比来说并不合算。这就需要操作系统来提示支持 Speed Shift 的 PCU,采取激进的高频高功耗模式,来提供更好的相应;还是保守的能耗优先模式。

结论

为什么低负载还高频呢,就是因为负载落在 low Range 中,内核会被加速到 Pe 来尽快完成,从而尽快进入省电的 Cstate,即省电,有快速响应,何乐而不为呢?

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|www.hutong9.net

GMT-5, 2022-1-23 08:27 AM , Processed in 0.064640 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表