微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 行业新闻动态 > 基于嵌入式DSP应用的低功耗优化策略

基于嵌入式DSP应用的低功耗优化策略

时间:11-02 来源:21ic 点击:

  图1. 电源管理器分区

这意味着无需修改内核,但在CPU时钟与操作系统定时器时钟相结合的平台上,DSP/BIOS时钟模块(CLK)需要补充例程(routine),这对频率缩放非常重要,因为这些例程能够使OS时钟适应PWRM的客户端。

电源管理器通过写入并读取时钟空闲配置寄存器,并通过控制CPU时钟速率及稳压电路的特定平台功率扩展库(PSL),直接与DSP硬件相连接。PSL将电源管理器及应用的其他部分与频率和电压控制硬件的低层实现细节相隔离。

电源管理器拥有若干个与应用相关的任务。由设计工程师对其进行静态配置,并在运行时进行动态调用:

1.空闲时钟域-电源管理器提供的接口可使特定时钟域处于空闲状态,从而降低功耗。此外,它还可以在OS空闲循环的适当点提供能自动使DSP CPU和高速缓存处于空闲状态的机制。

2.降低引导时间的功耗-电源管理器包含一个钩子机制(hook mechanism),这使开发人员能够设定省函数,以便在引导时间实现自动调用。

3.电压及频率(V/F)调节-电源管理器提供的接口可使应用程序动态更改DSP内核的工作电压及频率。因此,应用程序可利用该特性根据相关的处理要求相应调整功耗。电源管理器API可设定应用中的电压是否应随同频率进行调节,以及在降压转换过程中是否可继续执行任务,转换时延由负载而定,有可能会较长;如果处理器在降压转换期间工作正常,则允许继续执行应用;此外,电源管理器还包含用于查询V/F设定点属性及时延的API。

4.睡眠模式-电源管理器包含的配置及运行时接口使开发人员可产生自定义睡眠模式,以便在非工作状态期间节省电能。

5.电源事件的注册及通知-为了调整整个应用中的V/F调节比例、睡眠模式以及其他事件,电源管理拥有一套记录及通知机制,以使诸如应用代码、外设驱动程序、打包的内容以及OS时钟模块能针对会影响到他们的特定事件进行记录,以便通知。这些电源事件如"即将更改 V/F 设定点"、"完成更改V/F 设定点"、"进入睡眠模式"、"从睡眠模式中唤醒"以及出现"电源故障"等。通知进程(notification process)是电源管理器的重要特性。当无需通知时可使用"未登记"功能。

  策略实施

上面已经建立了提高电源效率的基础,下一步工作就应该确定开发高效率应用的策略,并充分利用OS中的部分方法及支持。

所建议的策略包括以下11个步骤。该策略具有可重复性:当无法满足电源管理目标,或者需要采用额外的运行时方法才能满足应用的电源预算时,就可重复这些步骤。

1. 从最初就考虑到电源效率;

2. 选择低功耗组件;

3. 对电源进行建模和估测,并进行相应的硬件测试;

4. 针对电源管理和测量设计具备钩子机制的硬件;

5. 构建可大幅提高工作效率的软件;

6. 启用简单的电源管理开/关机切换;

7. 在无电源管理的情况下也可先进入工作;

8. 重复开启"开机"特性,并测量功耗开销(payoff);

9. 开启代码生成优化功能、重置代码及数据,并调整"热点"监测;

10. 进行校准,以实现频率及电压的最低;

11. 激活并应用所有的电源管理特性。

选用现成的DSP*估板5509A EVM PLUS板作为测试平台,该*估板不仅支持V/F调节,还包含针对DSP内核与总体系统电源测量的钩子机制。

需要注意的是,EVM作为易于使用的*估平台,并未在出厂时提供最佳功耗配置。另外,在*估效果时应谨记由于其易于配置,所以EVM上测量的总体系统电源数量就应多于通常情况下部署的平台。EVM还能以DSP内核级与系统级两种方法测量各种技术的有效性。

步骤1无需解释。步骤2及4基本上都由这种特殊EVM完成,这充分表明了该平台的广泛适用性。步骤3(试验)在EVM上进行,目的是测量各种技术的效果(如片上与片外存取的内核及系统电源、DMA与CPU传输的比较、空闲外设及时钟域的作用等等)。

架构

应用范例如图2所示。音频信号经过采样通过多声道缓冲串行端口(McBSP)回放到DSP。DSP DMA引擎向McBSP输入或读出采样信号。立体声音频数据通过RxSplit任务分离为两个数据流,并在Processing Task中进行处理。DIP开关用于选择G726编码/解码处理或简单音量控制。两个声道随后在TxJoin任务中组合,然后输出至扬声器。

  图2:音频应用范例。

Control(控制)任务被周期性触发,以检查DIP开关以确定是否需要进行模式切换,如改变处理模式或进入睡眠状态。根据应用模式的不同,Control任务可能会检查CPU负载,如果合适还会更改V/F设定点。

与电源相关的关键设计决定包括:

1. 使用OS线程及阻塞原语(blocking primitive)使时钟空闲;

2. 使用DMA提高后台数据(background data)传输效率。只有在DMA块中完成传输后即中断CPU,而不是在每次从串行端口导入或读出数据采样时;

3. 使用共享的外部时钟控制串行端口(无需对串行端口进行重新编程,即可进行DSP CPU的频率调节);

4. 记录一次回叫,以便为编解码器驱动程序设定钩子机制,这样当应用进入深度睡眠模式时关断编解码器;

5. 在音频质量下降前使用校准功能恢复设定点频率(及电压);

6. 使用电源管理器的时钟适应功能,使周期函数以特定速率工作跟随频率的调节;

7. 在DSP再引导之间使用电源管理器"深度睡眠"接口。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top