IC设计者主要关注速度、面积、成本、可靠性,其次才是功耗。而进入SoC时代,低功耗已经成为与面积和性能同等重要的设计目标,在特定领域,功耗指标甚至成为第一大要素。SoC的低功耗设计与评估技术已成为SoC的重大挑战之一。
低功耗需求是SoC发展的推动力之一,如何降低功耗又是SoC面临的艰巨任务之一。SoC技术的发展使得单个芯片集成所有的处理部件成为可能,这些处理部件可以包括基本的晶体管、不同的处理器核、内存单元甚至模拟单元。包含了如此众多的部件,功耗设计将成为一个关键且复杂的课题。
这是因为:
● 能源限制,因为随着便携式移动通信和计算产品的普及,对电池的需要大大增强,但电池的技术相对落后,发展缓慢,这就需要在低功耗领域有所发展。
● 电路的功耗会全部转化成热能,过多的热量会产生焦耳热效应,加剧硅失效,导致可靠性下降,而快速散热的要求又会导致封装和制冷成本提高。
● 功耗大导致温度高,载流子速度饱和,IC速度也无法再提升。
● 环保期望,功耗降低,散热也会减少,因而就会减少对环境的影响。
在解决低功耗问题的过程中,人们尝试了许多方法。在IC发展的历史上,通过单纯在工艺上缩小器件体积和降低操作电压来降低功耗,已经取得了很大的成效,不过已经接近其物理极限。当前在超深亚微米工艺下的SoC设计过程中,需要在系统级、体系结构级、RTL、门级,到最后的版图级进行协同设计,才能同时保证提高性能和减少功耗。
低功耗设计技术
在研究低功耗设计技术前,首先要搞清功耗产生的原因与机理。为降低CMOS电路的功耗,我们必须从分析功耗的来源入手。笼统地说,芯片功耗由以下三部分组成:跳变功耗由每个门的输出端形成的电容充放电形成,就目前的工艺,这部分的功耗还占主要地位,约占整个芯片总功耗的60%以上。但随着工艺的提高,这部分功耗所占比例会大幅度减少;短路功耗是CMOS晶体管在反转过程中的短暂时间内,P管和N管同时导通而形成电源和地之间短路电流造成的;泄漏功耗,又称静态功耗,它是由漏电流引起的。
在当前工艺水平下,跳变功耗占主要部分,因此解决低功耗问题应首先从这里入手。降低电源供电电压,可以减少功耗。这就是集成电路由原来的5V供电电压降为3.3V,又降为今天的1.5V,甚至更低的原因。但降低供电电压会面临一些问题,首先,降低电源电压,如果阈值电压不变,那么噪声容限(noise margin)会减小,抗干扰能力减弱,信号传送准确性就会降低。为保持相当的噪声容限,阈值电压要随供电电压的减少而相应地减少。当前,此技术已经相对较成熟,各EDA厂商和代工厂都已经提供了相应的支持。然而,阈值电压的减少,会导致静态功耗呈指数级增长,从而可使动态功耗的减少无法弥补静态功耗的增长,结果可能得不偿失,要根据工艺水平来评估。
其次,供电电压降低,能耗虽然降低,但是相应的延迟会增长,导致系统性能下降。因此用降低电压的方法来降低功耗,必须用其他方法补偿相应的延迟损失,以保证系统性能没有下降。当前一个可行方法是,可以通过开发系统的并行性和流水线来实现,虽然这样会引入一些额外的控制电路并增加功耗,但即使这样,理论上也可以减少功耗90%以上;另一个方法,由于用户对电路性能的要求是变化的,因此可以通过操作系统动态控制时钟频率和电源电压,达到既保证性能要求,又节约功耗的目的;另一种折衷方案是,根据性能的要求,实时改变供电电压,在系统的关键路径上,保持高的供电电压,以保证整个系统的性能,而在非关键路径上,降低供电电压以减少功耗。但降低供电电压有可能增加新的关键路径,因而这种方法的使用是有限度的(降低电源电压的理论极限可以达到0.14V,目前,已设计出0.2V的CMOS芯片)。
第三,采用较高工艺水平可以降低功耗,因为较高的工艺带来特征尺寸的减小,使电容和电源电压都相应下降,例如MIPS从0.8mm工艺改为0.64mm,同一微处理器功耗降低25%,不过用更高工艺会适当增加芯片成本。
第四,为降低功耗,引入封装概念是必要的,SoC很好地体现了这一点。芯片驱动片外负载大约比片内负载高3个数量级,例如,芯片压点的电容大约10pF,印刷电路板3-4pF,那么管脚的电容就是13~14pF,而片内节点的电容仅为几十fF。虽然可以通过减少外部输出和降低外部信号输出频率来降低功耗,但它受到很多限制。而如果把各个功能部件集成到一个芯片(SoC)内,则管脚电容就没有了,取而代之的是内部节点的电容,因而可以大幅度降低整体功耗。
第五,从逻辑级实施,由于时钟树的大量分布,而时钟又是不断跳变的,因此导致它所消耗的功耗过大,一般情况下占整个芯片功耗的30%。因为SoC中包含多个处理部件,多数时刻许多处理部件是不工作的,因此可以在那些时刻使它的时钟停止,这就是所谓的门控技术。这种技术一般需要一个与门和锁存器来控制输入时钟,目前的EDA工具已经对它有较好的支持,例如Synopsys公司的Power Compiler能方便地实现这一功能。
此外,在SoC体系结构级考虑低功耗设计,多个部件都是通过总线互相通信,而且有很大的通信量。因而总线低功耗技术是人们关注的焦点,它通常占总功耗的15%~20%,甚至占总功耗的50%以上。这是因为总线中数据线和地址线过多,每条线都需要驱动。解决这部分功耗有多种技术。减摆幅技术与电荷再循环总线结构是目前比较成熟的技术。试验证明,其功耗仅是传统功耗的10%。
功耗评估技术
在SoC设计中,采用何种技术才可以满足低功耗设计的需要,常常困扰着SoC设计者。只有掌握准确估计功耗的手段,才能确保芯片功耗符合设计的要求。就像在VLSI的设计中,设计者需要在电路设计投片之前精确地估计芯片面积和性能一样。因为低功耗设计需要EDA流程中各个层次的协同设计,功耗的评估也需要在各个层次的设计过程中进行。
不同问题需要对不同的功耗指标进行分析。因此,功耗估计分为平均功耗(Average Power)和峰值功耗(Peak Power or Maximum Power)。平均功耗可以决定电池的使用时间,而峰值功耗则涉及到电路的可靠性,并且在设计过程中影响电源和地线的设计。
目前大部分SoC 60%甚至80%的功耗来源于器件的信号跳变(switching component)导致的输出电容充放电,因此跳变功耗的估计非常重要。要估计其平均功耗,就需要精确计算电路内部节点在特定时间内的平均跳变电容,但这在体系结构级和行为级是很难的,因为很难精确知道电容值,而在门级则是很容易的,因为门级已经可以直接从工艺库中提取出精确的电容信息。Synopsys公司的Power Compiler已经提供了这一功能。
当然,随着工艺的不断发展,短路功耗和漏功耗所占的比例愈来愈重,甚至会占主要部分。在实际评估中,需要选用典型应用程序在仿真环境中跑起来,并将结果不断反馈给设计人员,采取相应措施,直至满足用户需求为止。
SoC低功耗设计技术和评估技术远不止上述所述的各种方法,目前,低功耗在学术界已经是一个很热门的研究领域,许多的科研工作者正在研究各种各样的解决方案。
另外,EDA厂商是低功耗领域的有力推动者,它们把科研工作者提出的低功耗设计技术和评估技术应用到自己的工具中,极大地方便了设计者对SoC的低功耗设计,即使将来,EDA厂商在低功耗领域仍然也扮演着重要角色。
当然,SoC低功耗领域也面临一些问题:例如虽然当前的EDA工具的功能已经十分强大,但EDA工具还不能紧密跟进低功耗技术发展的需要。目前有好多发展较成熟的低功耗技术,如上面所说的减摆幅技术和电荷再循环总线结构技术还没有相应EDA工具的支持,要应用到实际的SoC设计中还很不方便,因此还需要科研工作者和EDA厂商共同努力,来推动低功耗设计技术发展。
·资料·
SoC的组织结构
在所有SoC的设计中,预先设计的核是基本的部件。系统芯片由各种满足片上功能的嵌入式核组合而成。这些核包括微处理器、大型存储器阵列、音频和视频控制器、调制解调器、因特网调谐器、DSP功能模块等,它们通常可以由可综合的高级描述语言(HDL),如Verilog HDL,或经过优化的晶体管级的版图如GDSII来实现,如图所示。

图中给出了当前SoC中通常会用到的部件,包括多个SRAM/DRAM、CAM、ROM和Flash存储器模块;片内微处理器/微控制器;PLL;Sigma/Delta和ADC/DAC功能模块;特殊功能核(如DSP)接口模块(如PCI、USB和UART)。