📜  动态频率缩放和动态电压缩放

📅  最后修改于: 2021-06-28 09:21:13             🧑  作者: Mango

在本文中,“频率”是指时钟频率或CPU的操作频率。因此,术语“动态频率缩放”是指运行期间CPU时钟频率的变化。

现在,上面的定义将立即引起一个问题,为什么我们需要这样做?

该问题的答案在于性能与功耗之间的权衡。我们知道处理器的性能取决于两个指标,它们是:

  1. CPU响应时间
  2. CPU的吞吐量

性能度量用于确定计算机的性能,具体取决于计算机系统的应用程序。

例如,在个人计算系统的情况下,响应时间非常重要,通常是确定计算机性能的唯一基础。
而对于服务器而言吞吐量(即在给定时间内完成的工作量)更为重要。

但是,出于本文的目的,当我们说“性能”时,我们将只关注响应时间

一方面,我们可以增加CPU的时钟频率以减少其响应时间并改善其性能,但是在达到一定限制后,我们还需要增加输入到CPU的电压以维持其在高时钟频率下的稳定性,这反过来会增加CPU的功耗和散热,从而缩短了其使用寿命。

另一方面,我们可以将CPU的时钟频率降低到低于标准值,从而使我们能够降低CPU的电压,从而减少CPU的功耗量,但这对CPU性能产生了负面影响。

表现{\propto}时钟频率功耗{\propto}时钟频率

现在,动态频率缩放是一种在性能和功耗之间取得平衡的技术。它是指时钟频率的连续变化,以优化CPU的性能和功耗。

现在,通过使用的频率缩放算法和当前的CPU负载来确定缩放CPU频率的方式。这些频率缩放算法是内核代码的一部分。

Linux内核中使用的一些最常见的频率缩放算法是:

  • 表现:
    该频率缩放算法将CPU的频率静态地固定为可能的最高值。这会增加CPU的功耗
  • 节能:
    该频率缩放算法将CPU的频率静态地固定为可能的最低值。这会损害系统的性能。
  • 保守的:
    此频率缩放算法将CPU的频率调整为某个最小可能值,以将CPU负载保持在一定百分比以下。该算法尝试在保持功耗的同时优化功耗。