SOC的功耗分析

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

低功耗SOC设计

1)为什么需要低功耗?

随着SOC的集成度与性能的不断发展,如今的SOC已达到百瓦量级。如Intel的Itanium2功耗约130瓦,这需要昂贵的封装,散热片及冷却环境。根据摩尔定律,每18个月晶体管密度增加一倍,而电源技术要达到相同的增速,需要5年,显然电源技术已成瓶颈。电路里的大电流会使产品的寿命和可靠性降低。电源的动态压降严重的时候还会造成失效。

2)功耗从哪儿来?

功耗一般分两种:来自开关的动态功耗,和来自漏电的静态功耗。而动态功耗又可分为电容充放电(包括网络电容和输入负载),还有当P/N MOS 同时打开形成的瞬间短路电流。静态功耗也可分为几类:扩散区和衬底形成二极管的反偏电流(Idiode),另外一类是关断晶体管中通过栅氧的电流(Isubthreshold)。芯片的漏电会随温度变化,所以当芯片发热时,静态功耗指数上升。另外漏电流也会随特征尺寸减少而增加。

公式:Ptotal = Pdynamic + Pshort + Pleakage

Pswitch = A * C * V2 * F

Pshort = A (B/12) (V-2Vth)3 * F * T

Pleakage = (Idiode + Isubthreshold) * V

3)怎样减少功耗呢?

首先定义对功耗的需求,然后分析不同的架构,决定如下需求:system performance, processor and other IP selection, new modules to be designed, target technology, the number of power domains to be considered, target clock frequencies, clock distribution and structure, I/O requirements, memory requirements, analog features and voltage regulation.你还需要定义工作模式:如startup, active, standby, idle, and power down等等,当然这些模式是由软硬件共同决定的。

理想的解决办法是不同工作模式下用不同的工作电压,但这又会造成太过复杂的情况,比如你需要考虑不同电压区域隔离,开关及电压恢复,触发器和存储器的日常存储恢复中状态缺失,等等。简单一点来讲,你可以根据高性能/高电压和低性能/低电压来划分你的设计。接下来你可以考虑系统时钟结构,这对减少动态功耗很有用。你可以使用多个时钟域,降低频率,调整相位等等。一般处理器的软件接口控制都可做到这几点。别忘了可能出现的比如glitch,skew,等问题。

一旦架构确定下来,就可以做RTL code了,当然目标还是低功耗。使用EDA工具时注意mutiple threshold leakage optimization,multiple supply voltage domains,local latch based clock gating, de-clone and re-clone restructuring, operand isolation, and gate level power optimization. 我们一条条的来看:第一,mutiple threshold leakage optimization。库文件一般有三版:低Vth(快,大漏电),标准Vth,高Vth(慢,低漏电)。工具一般尽量用高Vth cell,而由于timing限制则需用低Vth cell.很明显,选库很重要。

第二,multiple voltage domains。不同工作电压需要库的支持。不同电压区域的划分则需要前后端设计的协作。

第三,local latch based clock gating。这是在成组的flop之前加上特定的clock gating latch.

第四,de-clone and re-clone restructuring。在layout之前,将local clock gating提到更高一级,以利于减少面积,为CTS建立“干净“的起始点。在具体布局时,对local clock gating进行re-clone,以利于优化时钟树。

第五,operand isolation。这一步通过一个通用控制信号,自动识别并关闭data path elements和分层组合模块。

第六,Classical gate level optimization。改变单元尺寸,pin swapping,去除不必要的buffer,合并门,加入buffer减少skew,调整逻辑等等。

SOC的功耗分析

大规模集成电路多采用CMOS电路,对于CMOS电路来说,在执行某一任务期间,1个时钟周期的能量消耗为:

式中:M为系统中门电路的个数,Cm为第m个门电路的负载电容,为第k个门电路每个时钟周期的开关次数,Vdd为电路的电源电压值。

可以看出,影响系统功耗的主要因素有工作电压、负载电容、门电路的开关次数和时钟数。这些参数就是进行SOC系统低功耗设计的出发点。

SOC不同层次的低功耗设计

影响系统功耗的参数调整主要是从系统级到物理级来进行。下面将针对各种不同层次中较为有效的设计方法进行阐述与探讨。

系统级

在系统级进行低功耗设计的主要方法有:

(1)软硬件划分

软硬件划分是从系统功能的抽象描述着手,把系统功能分解为硬件和软件来实现。通过比较采用硬件方式和软件方式实现系统功能的功耗,得出一个比较合理的低功耗实现方案。由于软硬件的划分处于设计的起始阶段,所以能为降低功耗带来更大的可能。

(2)功耗管理

功耗管理的核心思想是设计并区分不同的工作模式。其管理方式可分为动态功耗管理和静态功耗管理2种。动态功耗管理的思想就是有选择地将不被调用的模块挂起,从而降低功耗。静态功耗管理是对待机工作模式的功耗进行管理,它所要监测的是整个系统的工作状态,而不是只针对某个模块。如果系统在一段时间内一直处于空闲状态,则静态功耗管理就会把整个芯片挂起,系统进人睡眠状态,以减少功耗。

(3)软件代码优化

软件代码的功耗优化主要包括:①在确定算法时,对所需算法的复杂性、并发性进行分析,尽可能利用算法的规整性和可重用性,减少所需的运算操作和运算资源。②把算法转换为可执行代码时,尽可能针对特定的硬件体系结构进行优化。例如,由于访问寄存器比访问内存需要更少功耗,所以,可以通过合理有效地利用寄存器来减少对内存的访问。③在操作系统中充分利用硬件提供的节电模式。随着动态电压缩放技术的出现,操作系统可以通过合理地设置工作状态来减少功耗。

结构级

在结构级进行低功耗设计的主要方法有:

(1)并行结构

并行结构是将1条数据通路的工作分解到2条通路上完成。并行结构降低功耗的主要原因是其获得与参考结构相同的计算速度的前提下,其工作频率可以降低为原来的1/2,同时电源电压也可降低。并行电路结构是以牺牲芯片的面积来降低功耗。假定参考结构中的工作频率为. ,电源电压,整个数据通路的等效电容是,最坏情况下的延迟为:,则: 。如果采用并行结构,可以使工作频率降为/2,最坏情况下的延迟可以达到2 ,假定电源电压降低为/1.8,由于电路的加倍和外部布线的增加,其等效的电容为2 。则:

相关文档
最新文档