DPM和DVFS技术

DPM和DVFS技术

ID:42602962

大小:290.05 KB

页数:4页

时间:2019-09-18

DPM和DVFS技术_第1页
DPM和DVFS技术_第2页
DPM和DVFS技术_第3页
DPM和DVFS技术_第4页
资源描述:

《DPM和DVFS技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、调研1.1DPM技术DPM(DynamicPowerManagement):就是通过一个数字内核和嵌入式通信接口对多个电源转换模块和外部元件进行控制,以提供更高的系统性能、可靠性以及更低的功耗。它包含CPU工作频率和电压,外部总线时钟频率,外部设备时钟/电源等方面的动态调节、管理功能。动态电源管理实现原理:系统运行在常见的几种不同状态,有不同电源级别要求。①统运行在任务、任务一、任务+中的任务状态之一,可以响应中断进入中断处理,可以进入空闲或睡眠状态。不同的任务要求不同的电源级别,所以DPM需要在不同任务中提供电源管理服

2、务。 ②系统进入空闲,这时可以被中断唤醒,处理中断:DPM提供受管理的空闲模式,可以更智能地节省电源。③系统在中断处理完可以进入空闲状态,或者从中断中回到任务态。 ④系统在任务状态下可进入睡眠模式。系统可挂起到RAM或者其他存储器中,关闭外设,实现最大限度地省电。通过特定事件(例如定义UART中断)要求系统退出睡眠模式。综上所述,可以把动态电源管理分为平台挂起/恢复、设备电源管理以及平台动态管理等三类。平台挂起/恢复目标在于管理较大的、非常见的重大电源状态改变,用于减少产品设备在长时间的空闲之后,减少电源消耗。设备电源管

3、理用于关断/恢复平台中的设备(平台挂起/恢复以及动态管理中均要用到);而平台动态管理目标在于频繁发生、更高粒度的电源状态改变范围之内的管理。系统运行的任务可以细分为普通任务和功率受监控的任务。动态电源管理系统还有待于进一步完善。例如:①可以根据硬件和软件收集系统负载状态准确预测电源状态,从而设计出更智能、更有效的状态切换管理策略;②电源管理和实时性能要求之间的复杂关系还需处理等等。1.2DVFS技术DVFS(Dynamicvoltageandfrequencyscaling):根据系统任务的紧迫程度来动态调节处理器的供电

4、电压和时钟频率,以达到任务响应时间和系统功耗之间的平衡。DVFS系统流程:1.采集与系统负载有关的信号,计算当前的系统负载。2.根据系统的当前负载,预测系统在下一时间段需要的性能。3.将预测的性能转换成需要的频率,从而调整芯片的时钟设置。4.根据新的频率计算相应的电压。通知电源管理模块调整给CPU的电压。DVFS的一些注意事项:对于应用处理器来说,需要可靠的电压-频率的对应关系;升频率时先升电压,降频率时后降电压; 逐级调节频率和电压有助于提升系统稳定性;每次调节电压和频率后,尤其是升电压之后等待一定时间再升频率;DCD

5、C2带VRC模式,可以将寄存器一次性设置为目标值后等待足够时间.2.系统温度的影响与控制3.Linux的功耗管理架构与governorsLinux的功耗管理架构基于DPM和DVFS。目前低功耗设计大都在操作系统层实施,如下图所示:低功耗系统设计模型操作系统层面分成功耗驱动模块和功耗调度模块。驱动模块实现相对简单,主要是对硬件操作。在Linux操作系统中,任务的调度主要由进程调度(或任务调度)模块schedule()完成。schedule()掌握系统内所有进程的运行状态,并对其执行的优先级进行管理调度。主要策略为DPM和D

6、VFS。有两种设备电源管理的模型来使设备进入低功耗状态:1.系统睡眠模型:驱动程序作为一部分,跟随系统级别的低功耗状态, 这种情况下,驱动程序,总线,设备类驱动一起,通过各种特定于设备的suspend和resume方法,清晰地关闭硬件设备和各个软件子系统,然后在数据不被丢失的情况下重新激活硬件设备。2.Runtime电源管理模型:这种模型允许设备在系统运行阶段进入低功耗状态,原则上,他可以独立于其他的电源管理活动。不过,通常设备之间不能单独进行控制。此外,依据不同的总线类型,可能必须做出一些特别的操作来达到目的。如果设备

7、在系统运行阶段进入了低功耗状态,在系统级别的电源状态迁移时(suspend或hibernation)就必须做出特别的处理。在Linux中,内核的开发者定义了一套框架模型来动态地提供刚好足够的主频给CPU,它就是CPUFreq系统。在该系统中,把CPU的处理频率区间分成若干档频率段用于选择,而负责计算并提出合适频率的就是governor。它负责检测cpu的使用状况,从而在可用的范围中选择一个合适的频率。系统中可以同时存在多个governor策略,一个policy(一种调频策略的各种限制条件的组合称之为policy)通过cp

8、ufreq_policy结构中的governor指针和某个governor相关联。要实现一个governor,首先要定义一个cpufreq_governor结构,当一个governor被policy选定后,核心层会通__cpufreq_set_policy函数对该cpu的policy进行初始化,然后就是启动该gove

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。