莫东杰
(广东工业大学,广东 广州 510006)
随着半导体行业的快速发展,消费电子和无线设备的盛行,集成电路的制造和工艺的进步,芯片的体积越来越小的同时其规模和复杂程度也越来越大,对于芯片的性能和功耗的要求也越来越苛刻, 特别是近年来被广泛应用的移动电子设备对电池续航的依赖越来越大,设计人员必须重点关注产品的续航能力。因此,在集成电路芯片设计领域中,低功耗设计是最受人们关注的领域之一。
为了降低微控制器的功耗,本文提出并实现了一种低功耗时钟管理技术。该技术根据微控制器中处理器核的运行状态的变化,实现工作模式的切换和时钟状态的调节,在保证一定的工作效率的条件下降低了功耗。该技术成功应用于微控制器仿真验证平台,功耗仿真验证结果表明,该技术能有效的降低微控制器的功耗,有一定的实际意义。
在数字集成电路中,功耗主要来自以下三个方面:
式(1)中,表示对CMOS电路中电容充放电所消耗的开关功耗,和分别代表短路功耗和漏电功耗。
其中,开关功耗可以近似表示为:
式(2)中是信号变化翻转率的活动因子,CL表示节点电容,为工作电压,是时钟频率。
由式(2)可以明显看出,降低工作电压就能有效的减少开关功耗,但由于工作电压跟电路的性能关,降低工作电压会损害到性能,同时芯片中的降压电路实现困难,所以降压并不是减小动态功耗的首选;而活动因子一般与系统的实际运行程序有关,操作困难;节点电容则是由制造实现的工艺所决定,所以本文主要考虑通过时钟优化来降低功耗,着重在对系统时钟的开关、工作状态以及频率的管理上。本文中的低功耗动态时钟管理技术主要包括门控时钟和多模式切换,通过这两项技术,能有效的对系统的时钟进行管理,降低系统的功耗。
门控时钟是寄存器传输级的低功耗设计技术,就是当系统某一部分处于空闲状态时关闭其时钟从而消除时钟驱动的功耗。门控时钟作用范围越大,功耗优化的效果就越明显。门控时钟有两种实现形式:基于锁存器的门控时钟和基于两输入与门的门控时钟,前者较稳定不易出现毛刺,但会在设计中引入锁存器,而后者容易导致时钟的毛刺,但面积小。在一般的情况下,门控时钟的选择和运用可以通过电子设计自动化(EDA)软件工具实现,也可以手工在在寄存器转换级电路(RTL)代码内插入;通常会一些模块级或系统级的门控时钟是通过手工插入基于锁存器的门控时钟的,而其他寄存器的门控时钟则是通过EDA软件自动插入的。
在微控制器执行任务时,不可能一直处在工作状态,系统总会有空闲的时候,这时候就要对时钟进行有效的管理,避免不必要的功耗。通过对时钟的管理来把系统分为5种工作模式:NORMAL、IDLE、WAIT、STOP和SLEEP。在NORMAL模式下,主系统时钟(MCLK)、子系统时钟(SMCLK)均由片外高频时钟发生器(DCO)提供,辅助系统时钟(ACLK)由外接高频晶振(HFXT)或低频晶振(LFXT)提供;在IDLE模式时,MCLK停止工作,SMCLK由DCO提供,ACLK由外接LFXT提供;在WAIT模式时,MCLK停止工作,SMCLK和ACLK均由LFXT提供;STOP模式下,MCLK和SMCLK停止工作,仅有ACLK由LFXT提供;SLEPP模式下所有时钟停止工作。
DCMM主要由DCO,高低频晶振接口,时钟源选择器、时钟分频器和模式转换状态机以及时钟输出门控电路组成。首先DCMM的寄存器组通过配置模式转换状态机决定输出时钟的工作状态,模式转换状态机的输出就会驱动时钟源选择器适当的选择各时钟来源,然后选出的时钟经过独立的时钟分频器进行分频处理(可配置1:1,1:2,1:4,1:8,1:16分频);最后,时钟输出门控电路是各个子模块的时钟的总开关,当微控制器内的某一个子模块不需要工作时可以暂时切断时钟,减少不必要的功耗。系统复位的同时,DCMM寄存器就会开始初始化默认配置,配置完成后就可以让DCMM自主开始工作。同时,工作过程中也可以通过寄存器接口对相关寄存器的配置进行改动来实现各种工作模式和时钟频率。
图1 基于openMSP430的微控制器仿真验证平台
本设计采用基于openMSP430嵌入式微处理器的微控制器平台进行仿真验证。如图1。它是由待测设计(DUT),也就是本设计中的DCMM,和其他辅助模块所组成的。由于DCMM是微控制器中的一个外设模块,它主要由嵌入式处理器驱动的,所以对DCMM的测试激励主要由嵌入式处理器控制。当完成测试激励的编写后,要先通过MSPGCC编译器进行编译并写入程序存储器,然后启动VCS仿真软件使测试平台对微控制器进行初始化并开始执行程序,这时测试激励向量就会由处理器加载到DCMM中开始仿真验证,当程序执行完后,就会输出仿真波形和工作报告等测试结果文件。
验证结果表明,微控制器在NORMAL、IDLE、WAIT、STOP和SLEEP五种不同的工作模式进行切换,其对应功耗和输出时钟如图2。在NORMAL模式下,微控制器正常工作,时钟频率达到最大,实时的功耗也最大;关闭MCLK,则微控制器进入IDLE模式,动态功耗大幅降低,此时SMCLK仍由DCO提供;当把SMCLK切换到LFXT时,系统会进入WAIT模式,此时系统时钟主要由LXFT供给,功耗有进一步的降低;关闭MCLK和SMCLK,仅留下ACLK为部分模块提供时钟来保证其运行,处理器进入STOP模式,功耗又有小幅降低;当所有时钟停止工作,系统进入SLEEP模式,这时功耗最低,几乎为零。
图2 仿真工作模式波形结果
在对微控制器验证平台仿真不同的任务程序时,我们利用功耗分析估计的方法统计比较了原始设计和加入动态时钟管理技术时的面积和功耗情况如表1,结果表明,加入动态时钟管理技术的设计在面积增大3.2%的情况下,对功耗的优化最多能达到15.6%,效果较为显著。由此可见,该技术能有效的降低微控制器的功耗。
表1 仿真结果对比
本文提出并设计实现了一种应用于微控制器的低功耗时钟管理技术。该技术包括门控时钟和多种工作模式切换。该技术主要在硬件上实现了对微控制器时钟进行管理,让系统处于适当的功耗模式下,尽可能的减少动态功耗。基于openMSP430嵌入式处理器的微控制器仿真验证平台的实验结果表明,引入动态时钟管理单元的嵌入式微控制器能在一定程度上降低功耗,具有一定的应用意义。
[1] 孙大鹰,徐申,徐玉珉,孙伟锋,陆生礼. 应用于低功耗嵌入式处理器的功耗动态管理策略设计[J]. 东南大学学报(自然科学版),2013,04:695-700.
[2] 孙大成,赵斌. 门控时钟技术在RTL功耗优化上的应用[J]. 中国集成电路,2013,11:40-44.
[3] 陈黎明,邹雪城,雷鑑铭,付智辉. 应用于低功耗SoC的动态时钟管理技术[J]. 微电子学,2007,01:45-48.
[4] 赵尔宁,邵高平. 基于先验预知的动态电源管理技术[J].单片机与嵌入式系统应用,2003,12:9-11.
[5] 王延升,刘雷波. SoC设计中的时钟低功耗技术[J]. 计算机工程,2009,24:257-258+261.