SoC系统的低功耗设计
降时间快的时候,短路电流现象会更为明显。为了减少平均的短路电路,应尽量保持输入和输出在同一个沿上。
一般来说,内部短路电流功耗不会超过动态功耗的10%。而且,如果在一个节点上,Vdd<Vtn+|Vtp|的时候,短路电流会被消除掉。
(3)静态漏电功耗
静态漏电掉的是二极管在反向加电时,晶体管内出现的漏电现象。在MOS管中,主要指的是从衬底的注入效应和亚门限效应。这些与工艺有关,而且漏电所造成的功耗很小,不是考虑的重点。
表1为CMOS集成电路中主要的耗电类型。
表1CMOS集成电路中主要的耗电类型
类型公式比率动态功耗(switchingpower)Psw=aCVdd2f70%~90%内部短路功耗(internalshort-circuitpower)Pint=IintVdd10%~30%静态漏电功耗(staticleakagepower)Pleak=IleakVdd<1%总功耗(totalpower)Ptotal=Psw+Pint+Pleak100%
(4)小结
通过设计工艺技术的改善,Pint和Pleak能被减小到可以忽略的程度,因而Psw也就成为功耗的主要因素。后面所做的功耗优化大部分是围绕这一个公式来进行的。对于SoC来说,所有的方法都是围绕着动态功耗来做文章的,因为在电路信号变化时,功耗消耗主要在电路中电容的充放电过程。如果从各个层次、各个方面尽量减少电路的充放电,将是我们关心的主题。
2降低集成电路SoC功耗的方法
功耗对于一个便携式SoC数字系统来说尤为重要。事实上,很多便携式SoC系统的设计,是先进行功耗分析,由功耗分析的结果再来划分设计结构。可以说,功耗将可能决定一切。现在要做的是,根据功耗分析的结果,评判SoC结构,改进设计,优化方案。
SoC系统的功耗所涉及的内容十分广泛,从物理实现到系统实现都可以采用各种方法来节省和优化功耗。通过对国外大量文献的查阅,我们得到了常用的实现低功耗设计的各种较为有效的方法,如表2所列。
表2常用实现低功耗的各种方法
类型采用方法效果行为级(系统级)Concurrencymemor几倍软件代码软件优化32.3%功率管理Clock控制10%~90%RTL级结构变换10%~15%综合技术合成与分解逻辑15%综合技术映射
门级优化20%
20%布局布局优化20%
(1)系统级功耗管理
这一部分实际上是动态功耗管理。主要做法是在没有操作的时候(也就是在SoC处于空闲状态的时候),使SoC运作于睡眠状态(只有部分设备处于工作之中);在预设时间来临的时候,会产生一个中断。由这个中断唤醒其它设备。实际上,这一部分需要硬件的支持,如判断,周期性的开、关门控时钟(gateclock)等。
(2)软件代码优化
软件代码优化是针对ARM嵌入式处理器而言的。对于编译器来说,所起的使用不到1%,而对于代码的优化则可以产生高达90%的功耗节省。Simunic等人曾分别做过用各种针对ARM处理器的编译器进行的试验。比此的实验结果发展,风格比较好的代码产生的效果远比用ARM编译器优化的效果好。
(3)Clock控制
这是在ASIC设计中行之有效的方法之一。如果SoC芯片在正常工作,有很大一部分模块(它们可能是用于一些特殊用途中,如调试Debug、程序下载等)是乖于空闲状态的,这些器件的空运作会产生相当大的功耗。这一部分应使用时钟控制,即clockenable&disable。
(4)RTL级代码优化
与软件相似,不同的RTL(RegisterTransferLevel,寄存器传输级)代码,也会产生不同的功耗,而且RTL代码的影响比软件代码产生的影响可能还要大。因为,RTL代码最终会实现为电路。电路的风格和结构会对功耗产生相当重要的影响。
RTL级代码优化主要包括:
①对于CPU来说,有效的标准功耗管理有睡眠模式和部分未工作模块掉电。
②硬件结构的优化包括能降低工作电压Vdd的并行处理、流水线处理以及二者的混合处理。
③降低寄存电容C的片内存储器memory模块划分。
④降低活动因子a的信号门控、减少glitch(毛刺)的传播长度、 《SoC系统的低功耗设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/166687.html
一般来说,内部短路电流功耗不会超过动态功耗的10%。而且,如果在一个节点上,Vdd<Vtn+|Vtp|的时候,短路电流会被消除掉。
(3)静态漏电功耗
静态漏电掉的是二极管在反向加电时,晶体管内出现的漏电现象。在MOS管中,主要指的是从衬底的注入效应和亚门限效应。这些与工艺有关,而且漏电所造成的功耗很小,不是考虑的重点。
表1为CMOS集成电路中主要的耗电类型。
表1CMOS集成电路中主要的耗电类型
类型公式比率动态功耗(switchingpower)Psw=aCVdd2f70%~90%内部短路功耗(internalshort-circuitpower)Pint=IintVdd10%~30%静态漏电功耗(staticleakagepower)Pleak=IleakVdd<1%总功耗(totalpower)Ptotal=Psw+Pint+Pleak100%
(4)小结
通过设计工艺技术的改善,Pint和Pleak能被减小到可以忽略的程度,因而Psw也就成为功耗的主要因素。后面所做的功耗优化大部分是围绕这一个公式来进行的。对于SoC来说,所有的方法都是围绕着动态功耗来做文章的,因为在电路信号变化时,功耗消耗主要在电路中电容的充放电过程。如果从各个层次、各个方面尽量减少电路的充放电,将是我们关心的主题。
2降低集成电路SoC功耗的方法
功耗对于一个便携式SoC数字系统来说尤为重要。事实上,很多便携式SoC系统的设计,是先进行功耗分析,由功耗分析的结果再来划分设计结构。可以说,功耗将可能决定一切。现在要做的是,根据功耗分析的结果,评判SoC结构,改进设计,优化方案。
SoC系统的功耗所涉及的内容十分广泛,从物理实现到系统实现都可以采用各种方法来节省和优化功耗。通过对国外大量文献的查阅,我们得到了常用的实现低功耗设计的各种较为有效的方法,如表2所列。
表2常用实现低功耗的各种方法
类型采用方法效果行为级(系统级)Concurrencymemor几倍软件代码软件优化32.3%功率管理Clock控制10%~90%RTL级结构变换10%~15%综合技术合成与分解逻辑15%综合技术映射
门级优化20%
20%布局布局优化20%
(1)系统级功耗管理
这一部分实际上是动态功耗管理。主要做法是在没有操作的时候(也就是在SoC处于空闲状态的时候),使SoC运作于睡眠状态(只有部分设备处于工作之中);在预设时间来临的时候,会产生一个中断。由这个中断唤醒其它设备。实际上,这一部分需要硬件的支持,如判断,周期性的开、关门控时钟(gateclock)等。
(2)软件代码优化
软件代码优化是针对ARM嵌入式处理器而言的。对于编译器来说,所起的使用不到1%,而对于代码的优化则可以产生高达90%的功耗节省。Simunic等人曾分别做过用各种针对ARM处理器的编译器进行的试验。比此的实验结果发展,风格比较好的代码产生的效果远比用ARM编译器优化的效果好。
(3)Clock控制
这是在ASIC设计中行之有效的方法之一。如果SoC芯片在正常工作,有很大一部分模块(它们可能是用于一些特殊用途中,如调试Debug、程序下载等)是乖于空闲状态的,这些器件的空运作会产生相当大的功耗。这一部分应使用时钟控制,即clockenable&disable。
(4)RTL级代码优化
与软件相似,不同的RTL(RegisterTransferLevel,寄存器传输级)代码,也会产生不同的功耗,而且RTL代码的影响比软件代码产生的影响可能还要大。因为,RTL代码最终会实现为电路。电路的风格和结构会对功耗产生相当重要的影响。
RTL级代码优化主要包括:
①对于CPU来说,有效的标准功耗管理有睡眠模式和部分未工作模块掉电。
②硬件结构的优化包括能降低工作电压Vdd的并行处理、流水线处理以及二者的混合处理。
③降低寄存电容C的片内存储器memory模块划分。
④降低活动因子a的信号门控、减少glitch(毛刺)的传播长度、 《SoC系统的低功耗设计(第2页)》