如何优化嵌入式DSP应用的功耗
架构
应用范例如图 2 所示。如欲获得该应用的详细信息(包括独立的应用手册及源代码),请查阅参考资料 15。
图 2. 音频应用
音频信号经过采样通过多信道缓冲串行端口 (McBSPs) 回放到 DSP。DSP DMA 引擎向McBSP 输入或读出采样信号。立体声音频数据通过 RxSplit 任务与 Processing Task(正在处理的任务)分离为两个数据流。DIP 开关用于选择 G726 编码/解码处理或简单音量控制。两个通道随后在 TxJoin 任务中组合,然后输出至扬声器。
Control(控制)任务被周期性触发,检查 DIP 开关以确定是否需要进行模式切换(如改变处理模式或进入睡眠状态)。根据应用模式的不同,Control(控制)任务可能会检查 CPU 负载,如果合适还会更改 V/F 设定点。
与电源相关的关键设计决定包括:
- 使用 OS 线程及阻塞原语 (blocking primitive) 空闲时钟;
- 使用 DMA 提高后台数据 (background data) 传输效率。在 DMA 块中完成传输(而不是每次数据采样都从串行端口导入或读出)后即中断 CPU;
- 使用共享的外部时钟控制串行端口(无需对串行端口进行重新编程,即可进行 DSP CPU 的频率缩放);
- 注册回叫以便为编解码器驱动程序设定钩子机制,当应用进入深度睡眠模式时关断编解码器;
- 在音频质量下降前使用校准功能恢复设定点频率(及电压);
- 使用电源管理器的时钟适应功能,使周期函数在频率缩放后继续以特定速率工作;
- 使用 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 消除所有片上代码,DSP 级节电效果较小,但板级节电达到 19%。
- 模式 #3 包括一些引导时间节电配置(如关闭 DSP 的 CLKOUT 信号、未用计时器的自动空闲配置以及关闭板上 LED)及在 BIOS 空闲环路中的闲置,从而可实现25% 的 DSP 内核级节电。
- 模式 #4 为设定点在 1.4v 下降至 144MHz 时的功耗,在该模式下可进行音频处理,同时仍能满足实时最低要求,从而实现 52% 的 DSP 内核级节电。
- 模式 #5 为应用处于待机模式下的功耗,该模式配置包括外部编解码器关断、设定点支持以最小电压最大频率快速启动驱动、DSP 处于门控时钟深度睡眠模式,该模式下的待机功耗仅为 361µW。
设计人员可根据特定应用的要求选择适用的技术,从而更有利于支持 RTOS 集成高回报技术。借助 OS 的这种支持功能,设计人员能够以低开销方便安全地提高应用电源效率。
本文讨论的电源优化策略是一种从嵌入式项目之初即可用于降低与调节应用功耗的通用模型。当测量功耗无法满足要求或需要采用额外的运行时技术时,上述策略可重复使用,先期步骤也可重复进行。例如,在音频应用中采用这种策略,仅需几种高回报的节电技术,即可节省大量电能。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论