基于嵌入式DSP系统的低功耗优化设计
他操作系统,甚至用于无操作系统的应用环境。
电源管理器的要求
电源管理器设计的关键要求如下:
1. 管理决策必须由应用触发,而不是操作系统触发;
2. 电源管理活动应当针对大部分应用代码透明;
3. 电源管理器必须支持电压与频率(V/F)调节,并充分利用芯片的空闲与睡眠模式;
4. 电源管理器必须在应用代码、驱动程序以及操作系统本身范围内协调电源事件处理,并在发生特定事件时向客户端发出通知;
5. 电源管理特性必须在任何线程环境中可用,并且还必须对特定客户端的多个实例可用(如一个器件驱动程序的多个实例);
6. 在向客户端发出电源事件通知时,电源管理器必须支持事件处理的延迟完成,并在等待延迟客户端的完成信号的同时通知其他客户端;
7. 对具有不同功能的不同平台,电源管理器必须是可扩展的和可移植的。
为满足上述的关键要求,可将电源管理器作为DSP/BIOS的附属模块添加,如图1所示。电源管理器位于内核之外,它不是系统中的一项任务,而是一组可在应用控制线程以及器件驱动程序环境中执行的API。
图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上测量的
- 具USB OTG和过压保护的紧凑型电源管理器(08-17)
- 具有USB OTG和过压保护的紧凑型电源管理器的实现(10-17)
- 嵌入式系统安全问题分析与保护措施(04-17)
- 一种低功耗宽频带LDO线性稳压电路设计(07-29)
- 低功耗 ADC:凌力尔特新方法降低整个信号链路的功耗(11-22)
- 针对低功耗的设计(04-18)