低功耗设计(一)

        要进行低功耗设计,首先就要清楚设备的低功耗出现在哪里,都有什么形式的低功耗,这方面看过一些论文或者一些博文的已经非常清楚了,首次启动的驱动电流,静态功耗,动态功耗三种。

        首次启动的驱动电流就是大型设备第一次上电时那股巨大的浪涌电流,这会造成很大的功耗,但是对于数字的IC设计而言,这部分我们是难以解决的,一般是这个做这个设备的底层解决的。

        静态功耗就是因为MOS管由于泄露电流造成的功耗,这方面的功耗随着工艺的进步越来越大。动态功耗或者开关功率是门输出切换时由于逻辑变换而引起的功率。

        P_{dynamic} = S \times C_{L}\times V_{dd^{2}}\times F_{clk}V_{dd^{2}}

       C_{L}是门的电容;

        S是每个时钟周期整个电路的平均转换次数。

         F_{clk}是时钟频率

        V_{dd}是供应的电源电压

门在切换时电容会充放电这就导致了动态功耗,对于整个ASIC而言,其整体功耗就是动态功耗加上静态功耗。

        对于以往的典型应用动态功耗可能占整个ASIC功耗的80%,但是随着工艺的进步,静态功耗所占的比重也越来越大。

        

根据上图,从下而上,在不同的设计层次对整个功耗的影响越来愈大。

在这个图中的每一个设计层次都必须考虑到功耗问题。

第一个层次是系统级层次:在这个层次的决策主要依赖于应用程序,例如可以选择基于缓存的内存或集中式内存。

第二个层次是体系架构级层次:必须决定实现并行化部署还是流水线式的部署,并行部署整体效率更高,速度更快,流水线式的部署可以通过多路复用的方式减少能耗,降低资源消耗,但是相对于并行化的部署架构整体处理速度相对较低。

第三个层次是逻辑和布局的层次,在综合时选择工艺库和不同的网表对这步至关重要。

第四个层次是物理层面,必须选择合理的布局优化计数。

系统级层面使用SOC的一个很大好处就是降低了功耗,怎么说呢,其实做ASIC应该都很清楚,IO口的面积还有电压都非常大,尤其是IO电压,要不CORE电压大不少,但是如果使用SOC级数,在系统级层面连接各类接口,减少了接口数量,从而大大降低了功耗,这一点很重要。

软硬件协同技术,处理器放在系统中,一些功能可以放在硬件里面实现,还有一些功能也可以放在软件里面实现,在现代的通信算法中,算法越来越倾向于递归实现,这就意味着硬件逻辑90%的时间都是在执行10%的功能代码,如何去识别这些一直在工作,或者在执行的代码,是一门技术,对这些代码块我可以采用工艺库中较低阈值的单元,增加处理速度,对另外的一些没有在工作的,或者是工作时间较少的代码块,我利用时钟门控类似的技术直接让其休眠,并对其工艺单元采用高阈值单元,从而降低静态功耗,降低总体功耗。

 标准的软硬协同的设计步骤,设计说明,设计划分,软硬件功能描述,软硬件接口说明等等。

       架构级的低功耗技术:

1.时钟门控技术:

对时钟进行使能,在翻转率没有,或者使用率极低模块上直接让其使能为零,让其休眠。

选通时钟来禁用电路的重要部分,时钟门控技术在CPU,GPU这些设计上确实能降低很大的功耗,但是在某些信息处理的ASIC设计当中,由于ASIC是一直在进行信息调制,基本上不存在休眠的时候,只可能某些用于初始化的配置模块在后续的信息调制中处于休眠状态,另外对于加入了时钟门控技术,虽然降低了功耗,但是相当于多加了触发器,所以面积上也会增加,另外时钟门控技术是针对时钟进行处理的,这就带来的一个很重大的问题是对时钟进行组合逻辑处理必然会带来时延,这对与时序上有些情况是不能接收的,所以对于时钟门控选项要慎重,在某些小型化的ASIC设计当中,还是优先保证时序畅通,在考虑功耗的影响。

2.DVFS技术:动态电压及频率缩放

这是提高系统能效的一种有效方法,而且在学术界,这种方法已经被研究了很长一段时间了,这种方法通过在频率不敏感的应用阶段降低时钟速度和电源电压,可以在性能损失不大的情况下实现功率的大幅度降低。

但是这项技术也得慎用,DVFS是通过调整电压频率来降低功耗的,但是某些ASIC设计当中是不能这样做的,同一个模块在一个可变的频率下工作,很容易造成亚稳态。电压缩放也要依赖于特殊硬件设备实现,特别是可编程的DC-DC开关电压调节器,可编程时钟发生器和具有宽工作范围的高性能处理器,使用高性能处理器去处理调节,处理器在正常的电压和频率下运行,负载较低时,工作频率较低,满足计算要求。

3.缓存体系结构

简单来说就是对于DSP,CPU,GPU这类硬件设备中加入高速缓存区,就是加入一级Cache,在进行高速访问的时候通过这些缓存区,在访问较慢的数据中存放在二级Cache中。

4.使用对数系统运算

对于具有复杂运算的硬件设备,使用对数系统进行运算而不是线性系统进行运算更加快速。使用对数系统运算的好处在于通过使用加减运算实现乘除运算,要比线性系统的直接乘除会降低很大的功耗。

5.电压域选通(功率选通)。

这就是对某些不活跃的模块或者说不工作的模块,直接关掉电压供应,因为模块在有电压工作的时候会有泄露电流产生,而泄露电流会造成很大的一部分功耗,功率选通就可以完美的解决这一问题,直接把电压供应给关掉,而且对于现在越来越先进的工艺水平而言,泄露电流非常大,这种方法也就完美的解决了这一问题,电压选通,或者说功率选通 往往是通过在芯片上加入开关,根据应用需求可以有选择的关闭开关,这里面的开关选项还分为两种,一种是细粒度功率门和粗细度功率门。

这些功率门的实现一般会在晶体管上标准单元库和EDA工具都会有这种选项,在综合时直接加入就可以,或者在后端设计当中加入。这种功率门的方法主要针对的也是泄露电流的影响,

粗细粒度的主要区别在于,细粒度直接加入到晶体管上去控制,而粗粒度是加入配电网络上,粗粒度创建一个电源开关网络,但其本质上是一组开关晶体管,可以并行的打开和关闭整个模块。

细粒度很大程度依赖于基本单元库,因为这个是直接加入到晶体管上的,是直接作用到底层的器件上的,而粗粒度主要依赖于EDA工具的处理能力。

功率选通还需要为电压域关和电压域开的逻辑或信号插入隔离单元,保证设计完整,避免功率损失,当一个模块电源关闭时,输出将转到一个仍然通电的模块,断电节点浮动,他们可以浮动到阈值电压并产生不需要的电流,隔离单元可以在RTL中进行设置,也可以使用EDA工具直接插入,EDA工具插入主要是在综合过程和Place和Route期间。

6.多阈值电压

就是单元库中的处理单元有多个电压域,阈值电压高就不易导通,漏电流小,但速度慢,适用于不活跃的模块,相反阈值电压低易导通,速度快,但漏电流大,这非常有助于处理泄露和动态电源。

高阈值电压电池的漏电流比低阈值电压电池少50%,但无不良副作用。

在具体设计当中如果使用到多阈值电压单元库就要根据不同的功能设置不同的EDA策略,让EDA工具处理达到最佳的性能,一般在设计如果以功能目标为先,则应该首先使用低阈值电压单元使功能首先满足要求,再根据设计当中不需要最高性能和低压电池的路径,并用高压电池替换,从而减少总体功率和设计泄露,低阈值电压单元的结果改变单元库的使用。如果电源是应用程序的主要目标,并且面积的增加不成问题,则应该首先使用高阈值电压单元运行合成,找到关键路径再用低压单元替换高压单元,直到达到性能目标。

7.多电源电压

就是将设计按照不同的时序性能要求,分为多个电压域,不同的区间使用不同的电压域,每个域根据时序要求使用不同的电源电压运行。

如今的EDA工具都提供了插入电平移位器的功能,在设计过程中直接对EDA工具命令,在设计当中插入电平移位器实现不同的电压域模型。

8.存储器的门控

在大型的SOC设计当中,存储器SRAM,占据了功耗的很大一部分,这个观点的意思就是,对存储器加入门控,对于小内存就是一直打开的一部分内存,还有大内存,只有在执行密集型任务才会开机的内存。而且对于较大的内存也可以分割成多个较小的内存,总的读取周期数是相同的,但是每个小内存读取的周期消耗的能量将低很多

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值