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系统。
在该系统中,CPU是一个电压可变的power do-main,称为CPU-subsys。然而,对于其他模块,则是另一个power domain,称为peri_subsys,其中包括外部memory接口(EMI)、媒体协处理器(MCP)、LCD控制器(LCDC),以及与电压控制相关的PerformaneeMonitor(PM)模块,用于对芯片性能进行正向监控;.Power Controller(PC)模块用于在接受到PM的性能描述后计算得到控制参数,并传递给Power Supply(PS)模块,用于提供可变的电压Vdd_arm,同时armsubsys与peri subsys之间有Level shifter相隔。