如何优化嵌入式DSP应用的功耗
电源管理器位于内核之外,其不是系统中的一项任务,而是一系列可在应用控制线程以及器件驱动器环境中执行任务的 API。
这意味着无需修改内核。但在 CPU 时钟与操作系统定时器时钟相耦合的平台上,DSP/BIOS 时钟模块 (CLK) 需要补充例行程序,这对频率缩放非常重要,因为这些例行程序能够作为 PWRM 的客户端程序适应操作系统时钟。
电源管理器写入并读取时钟空闲配置寄存器,并通过控制 CPU 时钟速率及稳压电路的平台特定型功率扩展库 (PSL) [参考资料. 5]直接与 DSP 硬件相连接。PSL 将电源管理器及应用的其他部分与频率和电压控制硬件的低级实施细节相隔离。
电源管理器拥有若干个与应用相关的任务。由设计工程师对其进行静态配置,并在运行时进行动态调用:
- 空闲时钟域 —— 电源管理器提供的接口可使特定时钟域处于空闲状态,从而降低有效功耗。此外,其还可以在 OS 空闲环路 (idle loop) 的适当点提供能自动使 DSP CPU 和高速缓存处于空闲状态的机制。
- 降低引导时间的功耗——电源管理器包含一个钩子机制 (hook mechanism),这使开发人员能够设定省电功能,以便在引导时间实现自动调用。
- 电压及频率 (V/F) 缩放——电源管理器提供的接口可使应用动态更改 DPS 内核的工作电压及频率。因此,应用可利用该特性根据相关的处理要求相应调整功耗。电源管理器 API 可设定应用中的电压是否应随同频率进行缩放,以及在降压 (down-voltage transition) 转换过程中是否可继续执行任务,转换时延由负载而定,有可能会较长;如果处理器在降压转换期间工作正常,则允许继续执行应用;此外,电源管理器还包含用于查询 V/F 设定点属性及时延的 API。
- 睡眠模式——电源管理器包含的配置接口及运行时接口使开发人员可唤醒自定义睡眠模式,以便在非工作状态期间节省电能。
- 电源事件的注册及通知——为了调整整个应用中的 V/F 缩放比例、睡眠模式以及其他事件,电源管理拥有一套注册及通知机制 (registration and notification mechanism),以使诸如应用代码、外设驱动器、封装内容以及 OS 时钟模块等实体能够进行注册,用于通知会影响这些实体的特定事件,例如“即将更改 V/F 设定点”、“完成更改V/F 设定点”、“进入睡眠模式”、“从睡眠模式中唤醒”以及出现“电源故障”等。通知进程 (notification process) 是电源管理器的重要特性。当无需通知时可使用“未登记”功能。
电源管理器 API
表 4 对运行时应用编程接口进行了汇总。
函 数 | 功 能 |
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 传输的比较、空闲外设及时钟域的作用等等)。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论