微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 如何优化嵌入式DSP应用的功耗

如何优化嵌入式DSP应用的功耗

时间:06-06 来源:互联网 点击:

特定时钟域立即进入空闲模式

PWRM_registerNotify

注册可在发生特定功耗事件时进行调用的函数

PWRM_sleepDSP

将 DSP 转换至新的睡眠状态

PWRM_releaseDependency

解除此前声明的资源依赖性

PWRM_setDependency

声明对电源的可管理资源具有依赖性

PWRM_unregisterNotify

未注册来自 PWRM 的事件通知

表 4. 电源管理运行时 API 的汇总

战略实施

由于已经建立了提高电源效率的基础,下一步工作就应该进行战略定义,以便开发低功耗应用,并充分利用 OS 中的部分技术及支持。

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

  1. 从初始就考虑到电源效率;
  2. 选择低功耗组件;
  3. 对电源进行建模和估测,并进行相应的硬件测试;
  4. 针对电源管理和测量设计具备钩子机制的 HW;
  5. 构建可大幅提高工作效率的 SW;
  6. 启用简单的电源管理“开/关机切换”特性;
  7. 在无需电源管理的情况下也可率先进入工作;
  8. 重复开启“开机”特性,并测量功耗开销 (payoff);
  9. 开启代码生成优化功能、重置代码及数据,并调整 “热点” 监测;
  10. 进行校准,以实现频率及电压的最小化;
  11. 激活所有的电源管理特性,并进行相应部署。

表 5 对上述战略进行了非常详尽的汇总说明。我们将在下文讨论如何高效应用上述策略。

表 5. 低功耗应用开发的详细策略

音频应用范例

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

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

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

架构

应用范例如图 2 所示。如欲获得该应用的详细信息(包括独立的应用手册及源代码),请查阅参考资料 15。

图 2. 音频应用

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

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

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

  1. 使用 OS 线程及阻塞原语 (blocking primitive) 空闲时钟;
  2. 使用 DMA 提高后台数据 (background data) 传输效率。在 DMA 块中完成传输(而不是每次数据采样都从串行端口导入或读出)后即中断 CPU;
  3. 使用共享的外部时钟控制串行端口(无需对串行端口进行重新编程,即可进行 DSP CPU 的频率缩放);
  4. 注册回叫以便为编解码器驱动程序设定钩子机制,当应用进入深度睡眠模式时关断编解码器;
  5. 在音频质量下降前使用校准功能恢复设定点频率(及电压);
  6. 使用电源管理器的时钟适应功能,使周期函数在频率缩放后继续以特定速率工作;
  7. 使用 DSP 再引导间的电源管理器“深度睡眠”接口。

结论

总体效果总结如表 6 所示。前后模式的主要差异用黑体表示。

设置

DSP 内核 (mW)

DSP 节省 (%)

电路板 (mW)

电路板节省 (%)

1. CPU 工作频率为 192MHz、电压为1.6v
均为片外代码
降低引导功耗功能:关闭
空闲环路:域处于活动状态

207.8

--

2219

--

2. CPU 工作频率为192MHz、电压为 1.6v
均为片上代码
降低引导功耗:关闭
空闲环路:域处于活动状态

203.3

2.17

1789


3. CPU 工作频率为192MHz、电压为1.6v
均为片上代码
降低引导功耗:开启
空闲环路:域处于空闲状态

155.2


1663

25.1

4. CPU 工作频率为144MHz、电压为 1.4v
均为片上代码
降低引导功耗:开启
空闲环路:域处于空闲状态

99.5


1605

27.7

5. DSP 处于深度睡眠(完全空闲)状态
休眠前电压值最小时频率达到最大
编解码器断电

0.361


1352


表 6. 节电效果

  • 模式 #1 为基准测量,全部使用片外代码。
  • 模式 #2 消

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

网站地图

Top