如何处理好嵌入式DSP设计中的功耗优化
扫描二维码
随时随地手机看文章
幸运的是,近年来,在DSP芯片的设计和制造工艺方面,都在不断推出更先进的功耗降低方法。现在的片上功率优化技术能够提供更多的精细控制和更多的省电模式,以及关于处理器功耗的更完整的信息。更新型的DSP开发工具使设计人员得以更深入透彻地了解系统的功率消耗方式,并通过片上硬件来提供功耗降低技术。
为了让开发人员能够更灵活地控制省电技术,更好地协调众多片上功能间的低功率工作和时序问题,DSP操作系统整合了多项功率管理功能。这些内建功能及工具加上系统设计的精心部署,DSP系统的功耗可得到大幅度降低。
低功耗问题
低功耗对所有的DSP系统都很重要,虽然理由因具体应用而异。在网格供电系统中,降低功率就意味着降低开销、提高可靠性,以及实现紧凑型设计,从而可以在相同的空间中集成更多的功能性,同时需要更少的风扇和其它冷却技术。在高清医疗成像等关键应用产品中,器件工作产生的热量甚至可能导致运行故障,因此,低于设备最大额定值并增加对低功耗的要求是至关重要的。
在便携式电子系统中,低功耗有助于尽量减小系统的尺寸及重量,同时把电池充电后的使用时间延至最长。较小电池的使用可进一步降低系统的规模。更低的功率还有助于避免便携式系统在延时使用期间过热。因功耗降低,手机、PDA、MP3播放器、数码相机和视频摄像机这些电子仪器及其他手持式设备的尺寸都日趋纤小,工作温度越来越低,而充电后的使用时间越来越长。
理解功率分布和芯片资源
在任何类型的系统中,降低功率的第一步是了解系统的使用方式,以及这种使用是如何影响功耗的。比如,手机大部分时间都处于等待呼叫的状态中,实际通话的时间相当少。另一方面,MP3播放器通常不是开机处于激活运行状态,就是处于关断状态。其它系统、线路供电系统以及便携式系统,都有着不同的待机功耗分布和激活工作功耗分布,参见下面的图1。
图1:工作功耗和待机功耗
了解功耗分布有助于设计人员选择一个具功率效率的处理器,因为在某些类型的应用中,DSP的基本CMOS技术可能对功耗产生很大的影响。先进的CMOS工艺则基于工作电压极低的高性能晶体管。根据既定应用,可以量身定做晶体管,通过对静态电流进行钳位把功耗降至最小,或把性能提高到最大,尽管这样会稍微增加泄漏电流。专门为手机这样的待机时间很长的应用而设计的DSP,可通过低泄漏晶体管把静态电流降至最低,而为总是处于激活状态的高性能应用而设计的DSP则较青睐开关速度更快的晶体管。
系统使用还包括系统对各种事件的响应,以及电路接通电源时的延迟。初始上电时可能有一些延迟,而系统从待机模式被唤醒时,较小的延迟是可以接受的。但用户一般都期望处于激活工作状态的系统能够即时响应,故而这时片上功能不能处于深度睡眠模式。这里有两方面的考虑:第一,部分功能可以较其它功能更彻底地关断,尤其是在待机期间,激活工作期间也如此。第二,处理器的功率模式控制能力越精细,设计人员就越能够进行充分的功耗调节以适合系统的操作情况。
高功率效率的DSP芯片设计通过建立电源域,使应用能够切断不在使用中的功能的时钟输入,从而把所有这些因素都考虑在内了。正如处理内核能够进入睡眠模式,此时它不执行任何操作,直到被中断信号唤醒,外设和存储器模块也同样可以被置于睡眠模式,在需要时才被唤醒。无时钟输入功能中的晶体管除静态电流之外,没有什么功耗,而恢复时钟所需的唤醒延迟被减至最小。系统设计人员在考虑其产品的使用情况时,还需要考虑到在为各项功能提供时钟方面,DSP能够提供多少控制能力,或是否能够自动处理。
节能DSP内建的另一项功能是能够调节核心电压和频率。如果DSP可降低核心时钟速率并仍然满足其处理要求,则工作功耗会相应地按比例节省。更低的频率加上更低的工作电压,可以节省相当可观的能量。可以在系统启动时调节电压和频率以适于整个系统的运行,也可以在应用需要改变时通过软件对之予以动态控制,这就为非峰值处理期间的功耗削减提供了一种重要的手段。
正确功率信息的获得
复杂DSP系统可能具有多个内核、应用和管理模式,这使得对功率的估算极其困难。传统的功率确定方法基于某些信息来实现,比如器件数据手册上注明的最大电流值,每周期或每条指令的耗电量(mA/MHz, mA/MIPS)以及测试案例等。
这些方法只能用来做粗略估算,但对内核、外设和片上存储器可以根据应用和操作模式进行独立开关的复杂系统而言,是不足以估算DSP功耗的。设计人员需要清楚了解实际应用中片上各项功能的具体功耗,因为实际的功率信息使他们能够更加精确地估算出不同实现方案的结果,并测定出在不同平台上应用是如何影响功耗的。
在DSP制造方面,所需要的是模块化的功率估算方案,即把设备划分为若干子系统,然后独立运行每一个子系统。一旦确定了每一个片上功能的最大功率值和空闲功率值,就可以通过插值法为一个功能建立一条功耗曲线。于是,在明确了每一功能的运行级别之后,可以把从各条曲线获得的功率值累加,最后给出整个设备的实际功率估算值。
图2是一个功率估算电子数据表,它把一个典型的DSP分解为若干个子系统,由用户输入相关参数,然后可以返回设备的功率估算值。就像这个电子数据表所显示的,估算是否正确取决于用户提供的信息是否反映出对系统使用方式的良好了解,包括数据宽度、频率、电源电压和使用中外设的可用带宽的百分比等因素。
低功耗设计
具有功耗意识的设计(Power-conscious design)技术可以帮助DSP设计人员充分利用正确的功率估算。在系统级,设计人员应该精心选择相关元件,使其数目尽可能地低。此外,设计人员还应该考虑到哪些未使用的元件可以置于省电模式,尤其是在待机期间。板级存储器的使用也是一个功率消耗源,因为必须同时给存储器芯片和电路板迹线供电。
应用应该尽可能地使用DSP的内部存储器,以保持片上大带宽存储,把外部存储器保留用作偶尔的低速存取。片外存储器也可以很好地完成启动工作,但应该在启动后被置于省电模式。为了减少存储器中的代码量和所取指令的数量,应该优化软件提升性能。更紧凑的代码有助于更好地利用缓存和内部指令缓冲器,而且运行速度更快,故能减少系统处于激活模式的时间。
大多数特定设备都是利用DSP的内建硬件能力来降低功耗的。从一启动开始,应用设备就 可以让不使用的模块处于空闲状态,外设功耗只限用于那些在指定时间才需要的I/O 。应用通常在启动时就直接控制各个模块,稍后,DSP内核可以后台执行一个循环来检测哪些功能不需要,然后把它们关断。如果应用采用了这些技术,芯片的睡眠模式就可以把空闲期间内核及芯片的功耗降至最低。
若所要求的总体性能不等于设备的全部能力,则可以在启动时就对DSP内核电压和频率(V/F)进行调节。若系统在具有不同性能负载的应用间更替,V/F调节也可以在运行期间动态进行。要实现V/F调节,设计必需提供DSP外部电源电压控制,以及内建于后台循环程序的软件控制。由于频率调节减慢内核的运行速度,设计人员在应用设计中应该考虑到相互关联的各个操作间的时序问题。
OS中的功率管理
不论是通过V/F调节还是通过低功耗模式来动态改变系统的功率要求,都需要涉及到DSP的实时操作系统(RTOS)。RTOS中的功率管理(PM)模块能够在启动时实现功耗节省,并在整个系统上协调各个低功耗操作。
内核频率调节会影响子系统操作的时序,因此PM能够在完成频率调节之后进行时钟调节。如果对应用来说OS时钟精度不重要,或者是用户希望节省空间,则可以不使用PM功能
此外,当线程被阻断时,用户还可以激活或停用自动使时钟处于空闲状态的PM功能。在其协调作用中,PM提供了一种用于功率事件通知的注册功能,当特定功率管理事件发生时,客户可以注册通知,由于系统的复杂性,PM支持多个客户端并允许客户延迟事件的完成。
PM还提供了一个应用编程接口(API)库,可实现芯片的低功率技术软件控制。通过这些API,应用能够门控时钟,激活睡眠模式并安全管理V/F调节设置点之间的晶体管。这些设置点作为调节参数,使V/F能够按照正确的顺序降低和提高,而且具有正确操作所必需的设置时间。
下面图3显示了设置点是如何控制V/F调节的时序的。由于电压和频率调节对设计中所用的DSP和电压调节器是特定的,PM API支持设置点延迟查询和配置,同时PM库可被重建。
图3:功耗调节结果
工具的辅助开发功能
要有效解决上述所有技术问题,需要一些专门为功率管理而设计的工具。类似于DSP工具开发的其它领域,功率优化工具也致力于提供可视化和易于使用的优势,以帮助简化系统分析并缩短上市时间。
这些工具结合DSP的嵌入式及RTOS功率管理技术,可以提供计量表、示波器波形、信道校准、测试代码和事件触发等等测试功能。利用这些便捷功能,设计人员可得到一个反馈机制,凭此评估各个实现方案对功耗的影响,最终获得一个最佳方案。
图4显示了在设计周期中,集成的硬件和工具平台,比如国家仪器有限公司(National Instruments)的C55x电源优化DSP入门套件(DSK),能够如何以及在什么地方帮助开发人员在不同的设计环境下评估DSP的功耗,从而使是他们能够更迅速地选定最适合其系统的最佳低功耗/高性能总体方案。
图4:功耗优化流程
从一开始就进行功率设计
在系统开发中,功率优化有时被当作一项事后工作来处理,但这是不对的。在开发周期中,越早考虑功率优化问题越好,对于具有多个应用和工作模式的复杂系统而言尤其如是。为了延长电池工作时间,低功耗通常是主要的要求之一,即使是线路供电系统也需要通过降低耗电量来减少散热和运行成本。
为了优化功耗,设计人员需要了解系统的功率分布,以提供全面的参考信息源,从而在功率估算中把所有主要的系统功能都考虑在内。基于高功率效率的CMOS工艺的DSP集成了硬件技术,比如精细定义的低功率模式和电压/频率调节。API使这些技术很容易通过RTOS实现应用控制,测试工具可帮助设计人员估算出不同实现方案的功耗。利用这些资源,开发人员有充分的理由从开发周期的最开始就进行功率设计。