在上一期文章中,介绍了系统级低功耗设计的方法,如软硬件协同设计、功耗管理机制等。
本期将深入探讨架构级低功耗设计的核心技术,包括多电压设计(Multi-VDD)、动态电压频率调节(DVFS)、系统时钟优化、异步设计以及算法优化等。
通过合理划分供电区域、动态调整电压频率、优化时钟架构等方式,可以大幅降低功耗,同时保证系统性能。
1. 多电压设计(Multi-VDD)
电压对功耗的影响极大,因此,多电压设计(Multi-VDD)是架构级低功耗优化的重要手段。其基本思想是根据不同模块的性能需求,使用不同的供电电压,以在保证时序的情况下降低功耗。
1.1 多电压技术
根据电压管理方式的不同,Multi-VDD 主要有以下三种实现方式:
(a) 固定电压划分(下图1.1(a)所示):
-
不同模块被划分到固定的供电电压域,不同电压域的电压值是恒定的;
-
适用于对功耗和性能要求明确的芯片设计,如高性能 CPU 和低功耗 DSP 采用不同电压域。
(b) 预定义多电压模式(下图1.1(b)所示):
-
每个电压域可在多个固定电压之间切换,由软件控制选择合适的电压模式;
-
适用于需要根据负载动态调整功耗的系统,如移动设备的 CPU 负载调节。
(c) 自适应电压调整(下图1.1(c)所示):
-
电压域的供电电压是可变的,可根据工作状态动态调整,实现更精细的功耗优化;
-
适用于高端智能设备和数据中心服务器,可通过智能功耗管理算法动态调整电压。
图1.1 Multi_VDD的三种方式
应用案例:在移动 SoC 设计中,CPU 可能会采用不同电压,如高性能模式(1.2V)、标准模式(1.0V)和低功耗模式(0.8V),从而在保证性能的同时降低功耗。
1.2 关闭电源(Power Gating)
当某个功能模块在一段时间内不需要工作时,可以彻底关闭该模块的电源,以减少动态功耗。这一技术被称为 Power Gating。一个带Power Gating的结构示意图:
Power Gating 关键点:(1)彻底关闭电源,可以完全消除动态功耗;(2)可能产生泄漏功耗,因为 Power Gating 需要加入 Isolate Cell 和 Retention Cell,这些单元本身会产生少量泄漏功耗;(3)关断/恢复时有功耗开销,涉及电源充电/放电过程,需要精细管理。
由于电容的存在,电源关闭后,电压会缓慢下降,导致闩锁电流(Crowbar Current)问题。因此,需要加入 Isolate Cell 进行保护(详见1.3)。
1.3 多电压控制单元
为了确保不同电压域之间的稳定工作,需要加入以下关键单元:
(1) 隔离单元(Isolation Cell)
-
当一个电压域关闭时,防止X态传播到其他电压域。
-
主要通过将关断域的输出信号钳位到高或低电平来避免干扰。
(2) 电平转换器(Level Shifter)
-
跨电压域信号转换,确保不同电压域之间的数据传输可靠;
-
适用于数据、时钟、扫描链等信号跨电压域传输场景。
(3) 保持寄存器(Retention Register)
-
掉电时保留关键信息,以便恢复时能够快速恢复状态;
-
采用 高 Vt 单元 以减少泄漏功耗,但可能会影响时序。
1.4 电压分配
在多电压设计中,如何合理划分供电区域至关重要。
在划分供电区域时,要尽量与设计的层次结构一致,并且要考虑到设计复杂性。产生多个电压区域,把供电不同的模块,分配到不同的电压区域。
一般而言,单元的延迟与供电电压成相反关系,即供电电压越高,单元的延迟越小。
(1)高性能模块(如 CPU、DSP)采用高电压,以降低延迟并满足高频率运行需求;
(2)低速外设(如 GPIO、UART)采用低电压,以降低功耗;
(3)存储器模块采用适中的电压,以兼顾性能和功耗。
通过对不同的模块设置不同的供电电压,可以使整个设计既满足时序的要求,又降低其功耗。
2. 动态电压频率调节(DVFS)
DVFS(Dynamic Voltage and Frequency Scaling)是一种根据负载动态调整电压和频率的技术,可以显著降低系统功耗。
(1)低负载时降低电压和频率,减少功耗;
(2)高负载时提高电压和频率,保证性能;
(3)软硬件协同管理,实时调整时钟和供电策略。
应用案例:智能手机中的 CPU 采用 DVFS 机制,在待机时降低主频,在运行大型应用时提升主频,以优化功耗和性能。
3. 系统时钟优化
系统时钟是功耗的主要来源之一,合理的时钟管理可以显著降低功耗。
(1)时钟门控(Clock Gating),关闭不必要的时钟,减少翻转功耗;
(2)工作模式管理,如 Normal、Slow、Idle、Sleep 四种模式,动态调整时钟频率;
Normal模式:系统工作在全速状态,核心电路(Core)和外围电路都使用高频时钟(如 PLL 提供的时钟)。
Slow模式:系统以低速模式运行,使用较低频率的外部时钟(如晶振提供的低频时钟)。
Idle模式:系统处于部分休眠状态,关闭 Core 的时钟,但仍向外围电路提供时钟。
Sleep模式:关闭大部分时钟,系统进入深度休眠状态,仅为少数关键电路(如唤醒电路)提供时钟信号。
(3)局部时钟优化,通过划分时钟域,避免不必要的全局时钟切换。
模式 | 说明 |
Normal | 用PLL的时钟,送到core及外围电路 |
Slow | 使用外部时钟 |
Idle | 只将时钟送到外围电路,关掉core的时钟 |
Sleep | 只给时钟唤醒电路等提供时钟 |
4. 异步设计
在某些情况下,异步设计比同步设计更节能。例如,在一个多模块系统中,各个子系统可以使用独立的时钟,而不是统一的全局时钟,从而减少全局同步带来的功耗开销。
图4.1 同步设计
图4.2 异步设计
5. 算法优化
在硬件架构优化之外,算法优化也是降低功耗的重要手段。例如:
(1)减少乘法运算,使用加法替代,降低计算功耗;
(2)减少除法运算,使用移位运算,提高能效。
例如,在NPU中,使用定点运算替代浮点运算,大幅降低功耗。
6.总结
(1)多电压设计(Multi-VDD) —— 精细划分供电域,降低整体功耗;
(2)动态电压频率调节(DVFS) —— 软硬件协同,实时调整功耗;
(3)时钟优化 —— 关闭不必要的时钟,减少动态功耗;
(4)异步设计 —— 避免全局时钟同步,减少功耗浪费;
(5)算法优化 —— 选择更高效的计算方法,减少计算功耗。