如何确定控制 CPU 频率的所有组件?

如何确定控制 CPU 频率的所有组件?

请提两个要求:

  1. 有人能告诉我如何确定 a) 已安装的所有组件以及 b) 在安装时主动控制 CPU 频率的所有组件吗?
  2. 另外,有人能告诉我这些组件的文档在哪里吗?

[就上下文而言,论坛上似乎充斥着关于“如何设置/控制/限制 CPU 频率范围”的问题,其中许多问题似乎没有得到实际接受的答案。我有一个这样的问题,所以我必须尝试学习足够多的知识才能自己解决这个问题。不幸的是,到目前为止,文档大多都让我困惑,而且我找不到描述整体概念的“根”文档(如果存在的话)。所以,我留下了一个似乎违反规则的系统,在一个似乎限制在 800 MHz - 2.4 GHz 的系统上,CPU 的时钟速度越来越慢(低至 240 MHz!)。]

编辑跟进 Pilot6 的评论/回答:

  1. 这是英特尔 CPU(酷睿双核)
  2. 缩放驱动程序是 acpi(为什么会这样?是什么决定了这一决定——它是开箱即用的)
  3. 我尝试更改 scaling_min_freq,但系统覆盖了它(其值与 BIOS 用于“IntelSpeedStep”的值不匹配)
  4. BIOS 中是否启用 speedstep 并不重要
  5. 它运行很多比 min_freq 慢,这使得你关于硬件问题的最后评论特别有趣。
  6. 它变慢了(根据我的另一个帖子:CPU 时钟速度明显变慢 Dell / Intel Core Duo (Lubuntu 和其他)),但似乎不会太热 (~65C)。它也需要很长时间才能恢复速度 (但最终会恢复)。

托比

答案1

CPU 频率由 Linux 内核控制。Ubuntu 中没有安装任何其他东西。

对于桌面系统,通常使用两个扩展驱动程序:intel_pstate用于相对较新的 Intel CPU 或acpi-cpufreq用于 AMD 和其他 CPU。

acpi-cpufreq也可以用于英特尔 CPU。

您可以通过以下方式检查系统正在使用哪一个

cat /sys/devices/system/cpu/cpufreq/policy0/scaling_driver

对于这两种驱动程序,您可以通过将值写入和来控制最大和最小/sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq速度/sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq

intel_pstateacpi-cpufreq具有不同的扩展调节器。

您可以在 中检查并设置它们/sys/devices/system/cpu/cpufreq/policy0/scaling_governor

对于多核 CPU,每个核心都有一个策略。您可以单独设置策略。

如果您的 CPU 运行速度低于scaling_min_freq,则意味着这是硬件问题。主板也可以控制频率。

相关内容