使用动态电压频率缩放进行智能节电的解决方案
扫描二维码
随时随地手机看文章
消费电子产品的电池寿命取决于其集成电路的动态功率行为。如果可以调整动态行为以适应手头的任务,则可以实现相当大的功率节省。
在 CMOS 电路中,大部分动态功率消耗在其数字门中的寄生电容中。
电源电压和频率的组合对总功耗具有三次影响,因为动态功耗对电压具有二次依赖性,对频率具有线性依赖性。智能节电解决方案将降低工作频率,同时降低电源电压。动态电压频率缩放 (DVFS) 技术的一些示例商业实现是Intel 的 SpeedStep和AMD 的 PowerNow。
DVFS 已应用于硬件和操作系统/平台级别。主要思想是在给定频率下尽可能降低电源电压,同时仍保持正确操作。电压只能下降到某个临界水平,超过该临界水平就会发生时序故障。
DVFS 的一些硬件机制使用检测时序违规的特殊“安全”触发器在硬件本身中实现时序故障检测。虽然 DVFS 方法在解决动态功耗方面是有效的,但它们在降低泄漏功率方面的效果明显较差。随着最小特征尺寸的缩小,电源电压缩放需要降低阈值电压,这导致随着每一代新技术的出现漏电流呈指数级增长。已经表明,同时使用自适应体偏置 (ABB) 和 DVFS 可用于降低高性能处理器的功耗。ABB 以前用于在待机模式下控制泄漏,并且具有以指数方式降低泄漏电流的优势,而动态电压缩放则线性减少泄漏电流。
在操作系统级别,一些操作系统现在部署了某种形式的 DVFS。例如,Linux 使用称为 cpu-freq 的非常标准的基础架构来实现 DVFS。cpu-freq 提供了一组模块化的接口,通过各种低级、特定于 CPU 的机制和高级系统策略来管理 CPU 频率的变化。cpu-freq 将 CPU 频率控制机制从策略中解耦出来,有助于它们的独立开发。实际的策略是作为“调节器”实施的,并且针对不同类型的系统提出了许多变体,每个系统都有自己的功率和性能要求。
专门在手持/便携式/嵌入式系统级别完成了工作,提出了在电池受限设备中实现 DVFS 的不同技术。一个这样的例子是 AutoDVS,一种用于手持计算机的系统,提供动态电压缩放 (DVS)。AutoDVS 通过估算系统范围内和每个程序的用户交互时间、思考时间和计算负载,既降低了能源使用量,又确保了服务质量。
第二种技术涉及应用程序导向的 DVFS。鉴于并非所有应用程序都以可预测的方式运行,因此可以绕过尝试使用操作系统级别的统计数据获得良好结果的难题。相反,通过使具有突发行为的应用程序具有功耗意识,这些应用程序可以向控制时钟速度和处理器电压的调度程序指定它们的平均执行时间和截止日期。能量优先调度算法根据截止日期和任务重叠的频率来安排这些功率感知任务的顺序。
用于多核处理器的 DVFS 是另一个有趣且具有挑战性的领域。一个主要的设计决策是在芯片级别还是在每个内核级别应用 DVFS。如果使用每核 DVFS 方法,则每个芯片需要一个以上的电源/时钟域,并且还需要额外的电路来实现芯片之间的同步。尽管对于单芯片多处理器而言,每核 DVFS 的实施成本比每芯片 DVFS 的成本更高,但学术或商业实体报告说,每核的吞吐量要高 2.5 倍。原因很简单。即使只有一个内核开始过热,单芯片方法也必须按比例缩小整个芯片。相比之下,per-core 方法仅使具有热点的核心向下扩展;除非出现发热问题,否则其他核心会保持快速运行。
一个仍然悬而未决的问题是如何在跨混合的多核架构集运行并行/多线程程序时管理功耗——每个架构都有自己独特的功耗和性能配置文件。我们可以指出的一个商业示例是 ARM big.LITTLE。这种方法将速度较慢的低功耗处理器内核 (LITTLE) 与更强大且耗电的内核 (big) 结合在一起。通常,只有一个“边”或另一个将同时处于活动状态。工作负载可以从大交换到小,然后再返回,因为所有内核都可以访问相同的内存区域。其目的是创建一个多核处理器,它可以更好地适应动态计算需求,并且比单独的时钟缩放使用更少的功率。ARM 的营销材料承诺为某些活动节省高达 75% 的电力使用。
DVFS 只是控制 CMOS 电路中动态功耗的几种方法之一。虽然它的使用带来了一系列验证和实施挑战,但我们将继续在硬件和操作系统/平台级别的未来设计中看到它的应用。