欢迎访问
SOC不同层如何进行低功耗设计?芯片功耗由哪些组成?
2021-03-17 来源:21IC电子网
3307

低功耗是现在的设计追求之一,通过产品之间的比较可以知道,同等能力的产品,如果具备低功耗特点,价格往往更高。为增进大家对功耗的认识,本文将基于两点介绍功耗:1.SOC不同层次低功耗设计,2.芯片功耗组成。


一、SOC不同层次的低功耗设计

功耗同样是所有的电器设备都有的一个指标,指的是在单位时间中所消耗的能源的数量,单位为W。电路中指整机或设备所需的电源功率。不过复印机和电灯不同,是不会始终在工作的,在不工作时则处于待机状态,同样也会消耗一定的能量(除非切断电源才会不消耗能量)。因此复印机的功耗一般会有两个,一个是工作时的功耗,另一个则是待机时的功耗。

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


主要方法有三:

1. 软硬件划分

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


2. 功耗管理

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


3. 软件代码优化

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


二、芯片功耗的组成

1. core power

功耗的组成包含RAM、ROM、时钟树(clock tree)和核心逻辑电路(Core logic)等四部分,下面依次来分析。


1)RAM

RAM功耗的计算是项复杂的任务,幸运的是,memory compiler可以为我们进行此项工作。关键点在存取每个端口的速率,这可以通过考虑存取pattern类型得到,或者通过仿真得到。建议在设计初期即生成不同参数(宽度,深度,速度,port数)的RAM/ROM的功耗数据,以利于设计探索。


2)时钟树

时钟树的功耗占到整个芯片功耗的40%~60%,因为它的高活动率(100%)和正负边沿均消耗电力。

其中,电容包含寄存器的电容,驱动单元的电容和连线电容三部分。


3)核心逻辑电路

定义核心逻辑电路功耗为除时钟树外的组合与时序单元消耗的电力。由两部分组成:

leakage current

capaciTIve loads


4)宏单元(macro cell)

多数芯片包含PLL等模拟macro,可以从库提供商的数据手册找到其功耗参数。设计者可以通过切分系统模式关闭不需工作的模块,以减小功耗。


2. IO power

IO功耗包含IO单元、外部负载、外部终端等。因为需要驱动板级的连线,IO的电容会是内部单元的数百倍量级,因此消耗较多的电力。有时候,IO的功耗可以占到整体功耗的很大比例,系统架构可能因之改变,如:重新定义系统的划分,以减少芯片-芯片的连接;选择不同的IO接口协议,以减少能量消耗。IO功耗通常由系统架构,接口带宽与协议要求决定。一旦库选定,设计者可以优化的空间很小,但是核心的功耗是设计者可以减小的,在后面的篇幅中,我们将以核心功耗的估算与优化作为主题。



Baidu
map