首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

DSP 系统电源管理技术(2)

DSP 系统电源管理技术(2)

在 DSP RTOS 中实施电源管理
上述电源管理技术的一个子集已包括在DSP 的 RTOS 中。为了更好地说明如何将电源管理构建到 RTOS 中,我们将更详细地对实施进行总体讨论。
正如我们在前面讨论中看到的那样,特定系统减小功耗的方法主要取决于应用的性质以及DSP 和周边外设提供的选项。因此,关键的设计目标就是高效性及灵活性。尽管下面所描述的实施是就特定 RTOS 而言的,但其概念可简单地运用其它操作系统,甚至用于无操作系统的应用环境。
电源管理器 (PWRM) 的要求
首款电源管理器实施的关键要求如下:
    电源管理动作是应用触发而不是操作系统触发的。更改 DSP 操作模式或功能的主要决策由应用作出,并由PWRM调用推动执行。但操作系统可以(也应当)自动采取行动以节电,只要该行动不影响应用即可。例如,PWRM 应当在 CPU 闲置时自动闲置 CPU 时钟。
    电源管理动作由应用的控制部分触发,但应当对大部分应用代码均为透明的。例如,具有极高价值的、优化的 DSP 算法不必重写便可在管理的电源环境中工作。
    电源管理器必须支持电压与频率 (V/F) 缩放,还必须充分利用芯片闲置与睡眠模式。
    电源管理器必须协调整个应用过程中的电源事件处理(如应用代码、驱动器以及操作系统本身),并在特定事件发生时向已注册要求获得通知的客户发出通知。
    电源管理特性必须在任何线程环境中可用,还必须对特定客户的多个实例可用(如一个编码译码器驱动器的多个实例)。
    在向客户发出电源事件通知时,电源管理器必须支持事件处理的延迟完成,并在等待延迟客户的完成信号同时通知其他客户。
    电源管理器必须对具有不同功能的不同平台是可扩展的和便携性的。
电源管理模块 (PWRM)
称作 PWRM 的电源管理器作为 DSP/BIOS 的一个附属模块被添加,如图1所示。
从概念上说,电源管理器与内核并行;其并非系统中的另一项任务,而是作为一系列在应用控制线程以及器件驱动器环境中执行的 API 而存在的。无需进行内核修改便可合并到 PWRM 中;但在 CPU 时钟与操作系统计时器时钟相联结的平台上,DSP/BIOS 时钟模块(CLK) 要进行补充例行程序,以使其根据频率缩放事件调整操作系统时钟(作为 PWRM 的客户)。PWRM写入并读取时钟空闲配置寄存器,并通过控制 CPU 时钟速率及稳压电路的针对不同平台的功率扩展库 (PSL) 直接与DSP硬件相连接。PSL 将 PWRM 及应用的其他部分与频率及电压控制硬件的低级实施细节相隔离。
电源管理器的作用在于管理 DSP/BIOS 应用中所有与电源相关的事项,既有应用开发人员静态配置的,也有在运行时动态调用的:
    电源管理操作的静态配置。PWRM 支持 DSP/BIOS 配置工具为一些电源管理操作提供设计时选项。例如,开发人员可配置闲置功能,插入 DSP/BIOS 闲置环路中,以自动闲置 DSP 缓存及 CPU;或配置节电功能,在导入时自动调用,以便闲置不必要的外设或子系统。
    电源管理 API:PWRM 提供了 API,使开发人员能够闲置特定的时钟域,以调用定制睡眠模式,并动态更改 DSP CPU 的操作电压及频率。凭借新型API系列,应用还可指定是否应将电压与频率同时缩放,是否可在电压降低转换过程中继续执行,以及V/F 设置点属性及等待时间的查询。
    电源事件的注册和通知:为协调整个应用过程中的 V/F 缩放、睡眠模式以及其他电源事件,PWRM 引入了新的注册及通知机制,使处理电源事件(如"将更改 V/F 设置点"、"已更改 V/F 设置点"、"将进入睡眠模式"、"退出睡眠模式"、"电源故障"等)的实体(如应用代码、外设驱动器、打包的内容以及操作系统时钟模块等)能够就其处理的特定电源事件进行注册以获得有关通知。
PWRM 带给 DSP/BIOS 的关键特性是"中央注册系统 (central registry)",使处理电源事件的代码可就其需要获得通知的特定电源事件进行注册,以获得有关通知,并能够在其不再需要通知时不进行注册。图2显示了注册与通知概念:

图2 电源事件通知概念
在该例中,客户注册并获得关于特定 V/F 电源缩放事件通知。图中编号列出的步骤为:
    应用代码进行注册,以获得 V/F 设置点更改通知。例如,DSP 就不同的设置点要求不同的外部存储器接口 (EMIF) 设置,因此应用寄存器便可控制电源管理器 (PWRM) 代码,进而 EMIF 设置则可随着设置点的更改而改变。作为注册的一部分,应用代码在事件发生时告知:PWRM 要调用的特定的通知功能;作为通知一部分传递的针对不同客户的参数;以及控件代码能够操作的 V/F 设置点(从而使 PWRM 不会试图启动无支持的设置点更改)。
    采用串行端口及DMA 传输数据寄存器的 DSP/BIOS 编码译码器驱动器将获得 V/F 设置点更改通知。 在该应用中,在较低 V/F 设置点上没有 MP3 译码发生。因此在没有执行 MP3 回放时,驱动器可闲置串行端口以及 DMA 时钟域,并设置外部编码译码器为低功率模式。
    与此类似,文件系统管理器也注册到 PWRM,以便获得设置点更改的通知,因为其管理着存储媒体。
    应用决定更改 V/F 设置点(如 MP3 播放器模式的更改),并调用PWRM API以启动设置点更改。
    PWRM 确认新的设置点就所有已注册客户启用,并随后将待进行的设置点更改通知给所有已注册的客户。
    PWRM 向 PSL 发出调用,以更改电压及频率设置点。为了安全地更改 V/F 设置点,PSL 将适当写入时钟生成及电压稳压硬件。
    在设置点更改后,PWRM 将通知客户设置点已发生更改。
电源管理器的配置
DSP/BIO 实现了内核对象的静态与动态创建。例如,任务在设计时利用图形配置工具可静态创建,也可在运行时通过 TSK_create() API 调用动态创建。电源管理器的许多配置参数涉及到设计时间决策;因此电源管理的静态配置被添加至 DSP/BIOS 图形配置工具使用的配置文件。以下电源管理器参数是可静态配置的:
    电源管理器启用/禁用
    应用是否需要在导入时调用特定的用户功能以减小功耗
    应用是否需要就频率缩放事件对 BIOS 时钟进行再编程
    应用是否需要在 CPU 空闲时自动闲置时钟域
    电压与频率缩放启用/禁用
    导入时CPU频率值
    导入时CPU电压值
    电压缩放启用/禁用
    应用是否需要在电压下降时等待
    应用是否需要在 DSP 进入深度睡眠状态时闲置时钟域
    哪些中断可将 DSP 退出深度睡眠模式
图 3 所示的屏幕截面图反映了配置过程,显示了电源管理器一般属性的配置列表。

图3、配置电源管理器一般属性
除了电源管理器静态配置属性之外,以下属性是在运行时通过导出的电源管理器 API 动态再配置的:
    当 CPU 空闲时,时钟域自动处于空闲状态
    与频率一起启用电压缩放
    在电压降低时等待
总结
在实时嵌入式系统中可部署一些设计及运行时电源管理技术。一般来说,有些技术对广泛系列的系统均是适用的,而另外一些技术则只适用于专门的应用。例如,显示了某些技术如何被整合到 DSP/BIOS RTOS 系统中,同时应用开发商还能够就其应用的要求选择合适的技术。
继承事业,薪火相传
返回列表