基于自适应DVFS的SoC低功耗技术研究
时间:06-19
来源:作者:黄建科 周云
点击:
从当前嵌入式消费电子产品来看,媒体处理与无线通信、3D游戏逐渐融合,其强大的功能带来了芯片处理能力的增加,在复杂的移动应用环境中,功耗正在大幅度增加。比如手机,用户往往希望待机时间、听音乐时间,以及看MPEG4时间能更长。在这样的背景下,如何降低嵌入式芯片的功耗已迫在眉睫。
1 低功耗技术分析
表1给出低功耗技术分析表。由表1可见,随着沟道宽度的减少,单位面积上的动态功耗和静态功耗都在不断增加。
这样芯片功耗则可描述为:
式中:CeffVdd2fclock是动态功耗部分。其中a为当前频率下的翻转率;Ceff为节点负载电容;Vdd为工作电压;fclock为工作频率。IleakVd是静态功耗部分,其中Ileak为漏电流。由式(1)可知,降低芯片功耗所需要降低的参数。
1.1 降低动态功耗的手段
1.1.1 降低α
降低α有两种方法:一是通过工具优化逻辑结构来降低α;二是通过编码方式来实现低的α,例如采用翻转码。实际上假设每一次翻转都是有效和最优的,则afclock可视为一常数,但真实情况并非如此,每次时钟驱动下的设计往往存在冗余,同时对于某种额定的上层任务本身,也可能不适合软硬件划分。对于fclock,若不使用该模块时,可直接gated该模块。这种gated有三种手段:
(1)在时钟产生端进行gated,由软件配置。该手段要求在前端设计这样的功能,包括正向时钟gated和反相时钟gated,其结构是对称的。实际上设计时,器件lib会提供标准的gated单元,这使得前端设计变得较为容易。
(2)在模块中进行硬件判断,以gated clock时钟。例如,在AHB总线上有一块memory,作为AHB从动装置。由于软件频繁访问该模块,因此若采用软件频繁gated,则导致操作不连续;若将模块设计在内部,则因AHB的HSEL信号变高,下一拍时钟在模块内部被打开,这样即可节省时钟翻转的功耗。尤其对于memory来说,时钟翻转和不翻转的功耗差别较大。
(3)利用综合工具在近端加gated,而无需在前端设计。
理论上,单纯的频率下降,并不能带来功耗的变化,因为工作量一定,频率的下降只能带来运行时间的增加,但是芯片功耗中,时钟树的功耗几乎占去30%,所以在合适降低频率时,会减少时钟树上的功耗。
1.1.2 降低Ceff
Ceff的降低因工艺选择的不同而存在较大的差别。因此,选择合适的工艺更有利于降低Vdd这样可使功耗得到平方关系的下降。然而,基于成本、可靠性及商务等考虑,只能选择某一种工艺,如130 nm工艺,可通过DVFS来改变电压。它的核心是:(1)某种工艺下的library可以在一定电压范围内工作正常。
(2)由于模块或系统工作在不同任务下所需的工作频率不同,因此可以计算DVFS的收益。假设一个系统可以进行MP3或MP4的解码任务,这样在MP3解码时,所需频率只有100 MHz;在MP4解码时,所需频率是200 MHz。通过STA分析,在1.1 V电压下工作时,系统可运行频率为100 MHz;在1.3 V电压下工作时,系统可运行频率为200 MHz,这样便可采用DVFS技术调节。假设翻转率、电容都没有发生变化,则在两种不同工作模式下,所需功耗下降64%。当然,前面的数值都是假设的,实际情况并非这么理想。
1.2 降低静态功耗的手段
降低静态功耗可采用Multi-Vdd,Multi-Vth两种方法,在此不做详述。
2 DVFS系统
如果DVFS是基于CPU自身OS调度的需求,则在自身频率需要变化时才进行电压变化,此时可认为是一个开环的DVFS技术。比如说,Windows Mobile中的OEMidle进程就提供了一个根据CPU占用率来调节CPU频率和电压的方式。但是,在采用开环方式调节时,需要足够的余量,同时需要软件,尤其是操作系统予以支持,这对软件来说也不是透明的。
对于一个闭环系统,则需要一个性能monitotor,以监控性能,并根据性能变化,直接调节电压和频率。图1给出一个简单的自适应DVFS系统。
对于PM模块,ARM可以通过总线进行配置,PM通过监测可变电压区的电流实现性能监控。对于处理MIPS需求比较高的操作,CPU空转时间变少,电流需求变小;对于处理MIPS要求比较低的操作,CPU执行密集操作,电流需求变大。
该设计核心在于如何使PM模块能根据某种算法来自适应地预测电流的需求,而且预测的响应时间、额外功耗都比较小,即达到适时、恰好的电压要求。对于自适应算法,可选取图2所示的简单前向线性预测。
1 低功耗技术分析
表1给出低功耗技术分析表。由表1可见,随着沟道宽度的减少,单位面积上的动态功耗和静态功耗都在不断增加。
这样芯片功耗则可描述为:
式中:CeffVdd2fclock是动态功耗部分。其中a为当前频率下的翻转率;Ceff为节点负载电容;Vdd为工作电压;fclock为工作频率。IleakVd是静态功耗部分,其中Ileak为漏电流。由式(1)可知,降低芯片功耗所需要降低的参数。
1.1 降低动态功耗的手段
1.1.1 降低α
降低α有两种方法:一是通过工具优化逻辑结构来降低α;二是通过编码方式来实现低的α,例如采用翻转码。实际上假设每一次翻转都是有效和最优的,则afclock可视为一常数,但真实情况并非如此,每次时钟驱动下的设计往往存在冗余,同时对于某种额定的上层任务本身,也可能不适合软硬件划分。对于fclock,若不使用该模块时,可直接gated该模块。这种gated有三种手段:
(1)在时钟产生端进行gated,由软件配置。该手段要求在前端设计这样的功能,包括正向时钟gated和反相时钟gated,其结构是对称的。实际上设计时,器件lib会提供标准的gated单元,这使得前端设计变得较为容易。
(2)在模块中进行硬件判断,以gated clock时钟。例如,在AHB总线上有一块memory,作为AHB从动装置。由于软件频繁访问该模块,因此若采用软件频繁gated,则导致操作不连续;若将模块设计在内部,则因AHB的HSEL信号变高,下一拍时钟在模块内部被打开,这样即可节省时钟翻转的功耗。尤其对于memory来说,时钟翻转和不翻转的功耗差别较大。
(3)利用综合工具在近端加gated,而无需在前端设计。
理论上,单纯的频率下降,并不能带来功耗的变化,因为工作量一定,频率的下降只能带来运行时间的增加,但是芯片功耗中,时钟树的功耗几乎占去30%,所以在合适降低频率时,会减少时钟树上的功耗。
1.1.2 降低Ceff
Ceff的降低因工艺选择的不同而存在较大的差别。因此,选择合适的工艺更有利于降低Vdd这样可使功耗得到平方关系的下降。然而,基于成本、可靠性及商务等考虑,只能选择某一种工艺,如130 nm工艺,可通过DVFS来改变电压。它的核心是:(1)某种工艺下的library可以在一定电压范围内工作正常。
(2)由于模块或系统工作在不同任务下所需的工作频率不同,因此可以计算DVFS的收益。假设一个系统可以进行MP3或MP4的解码任务,这样在MP3解码时,所需频率只有100 MHz;在MP4解码时,所需频率是200 MHz。通过STA分析,在1.1 V电压下工作时,系统可运行频率为100 MHz;在1.3 V电压下工作时,系统可运行频率为200 MHz,这样便可采用DVFS技术调节。假设翻转率、电容都没有发生变化,则在两种不同工作模式下,所需功耗下降64%。当然,前面的数值都是假设的,实际情况并非这么理想。
1.2 降低静态功耗的手段
降低静态功耗可采用Multi-Vdd,Multi-Vth两种方法,在此不做详述。
2 DVFS系统
如果DVFS是基于CPU自身OS调度的需求,则在自身频率需要变化时才进行电压变化,此时可认为是一个开环的DVFS技术。比如说,Windows Mobile中的OEMidle进程就提供了一个根据CPU占用率来调节CPU频率和电压的方式。但是,在采用开环方式调节时,需要足够的余量,同时需要软件,尤其是操作系统予以支持,这对软件来说也不是透明的。
对于一个闭环系统,则需要一个性能monitotor,以监控性能,并根据性能变化,直接调节电压和频率。图1给出一个简单的自适应DVFS系统。
对于PM模块,ARM可以通过总线进行配置,PM通过监测可变电压区的电流实现性能监控。对于处理MIPS需求比较高的操作,CPU空转时间变少,电流需求变小;对于处理MIPS要求比较低的操作,CPU执行密集操作,电流需求变大。
该设计核心在于如何使PM模块能根据某种算法来自适应地预测电流的需求,而且预测的响应时间、额外功耗都比较小,即达到适时、恰好的电压要求。对于自适应算法,可选取图2所示的简单前向线性预测。
- 高带宽嵌入式应用中SoC微控制器的新型总线设计 (02-02)
- SoC前段(ARM)嵌入式系统开发实作训练(上) (02-28)
- SoC前段(ARM)嵌入式系统开发实作训练(下)(02-28)
- 采用灵活的汽车FPGA 提高片上系统级集成和降低物料成本(04-28)
- 开放源码硬件简史(05-21)
- 可配置处理器技术优势详解(05-15)