TI DSP应用系统低功耗设计方案
电源管理器 API
表 4 对运行时应用编程接口进行了汇总。
函 数 | 功 能 |
PWRM_changeSetpoint | 对最新的 V/F 设定点进行初始化更改 |
PWRM_configure | 为 PWRM 设置新的配置参数 |
PWRM_getCapabilities | 在该平台上获取有关 PWRM 性能的信息 |
PWRM_getCurrentSetpoint | 获取当前的有效设定点 |
PWRM_getNumSetpoints | 获取该平台上可用设定点的数量 |
PWRM_getSetpointInfo | 获取设定点的相应频率及电压值 |
PWRM_getTransitionLatency | 获取两个设定点之间比例缩放的时延 |
PWRM_idleClocks | 使特定时钟域立即进入空闲模式 |
函 数 | 功 能 |
PWRM_changeSetpoint | 对最新的 V/F 设定点进行初始化更改 |
PWRM_configure | 为 PWRM 设置新的配置参数 |
PWRM_getCapabilities | 在该平台上获取有关 PWRM 性能的信息 |
PWRM_getCurrentSetpoint | 获取当前的有效设定点 |
PWRM_getNumSetpoints | 获取该平台上可用设定点的数量 |
PWRM_getSetpointInfo | 获取设定点的相应频率及电压值 |
PWRM_getTransitionLatency | 获取两个设定点之间比例缩放的时延 |
PWRM_idleClocks | 使特定时钟域立即进入空闲模式 |
PWRM_registerNotify | 注册可在发生特定功耗事件时进行调用的函数 |
PWRM_sleepDSP | 将 DSP 转换至新的睡眠状态 |
PWRM_releaseDependency | 解除此前声明的资源依赖性 |
PWRM_setDependency | 声明对电源的可管理资源具有依赖性 |
PWRM_unregisterNotify | 未注册来自 PWRM 的事件通知 |
表 4. 电源管理运行时 API 的汇总
战略实施
由于已经建立了提高电源效率的基础,下一步工作就应该进行战略定义,以便开发低功耗应用,并充分利用 OS 中的部分技术及支持。
所建议的策略包括以下 11 个步骤。该战略具有可重复性:
当无法满足电源管理目标,也就是说需要采用额外的运行时方案才能满足应用电源预算时,就可重复访问这些步骤。
- 从初始就考虑到电源效率;
- 选择低功耗组件;
- 对电源进行建模和估测,并进行相应的硬件测试;
- 针对电源管理和测量设计具备钩子机制的 HW;
- 构建可大幅提高工作效率的 SW;
- 启用简单的电源管理“开/关机切换”特性;
- 在无需电源管理的情况下也可率先进入工作;
- 重复开启“开机”特性,并测量功耗开销 (payoff);
- 开启代码生成优化功能、重置代码及数据,并调整 “热点” 监测;
- 进行校准,以实现频率及电压的最小化;
- 激活所有的电源管理特性,并进行相应部署。
表 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 设定点。
与电源相关的关键设计决定包括:
- 使用 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 的这种支持功能,设计人员能够以低开销方便安全地提高应用电源效率。
本文讨论的电源优化策略是一种从嵌入式项目之初即可用于降低与调节应用功耗的通用模型。当测量功耗无法满足要求或需要采用额外的运行时技术时,上述策略可重复使用,先期步骤也可重复进行。例如,在音频应用中采用这种策略,仅需几种高回报的节电技术,即可节省大量电能。
评论