微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 动态电压与频率调节在降低功耗中的作用

动态电压与频率调节在降低功耗中的作用

时间:05-07 来源:互联网 点击:
摘要 目前,为了降低功耗,越来越多的芯片支持动态电压与频率调节DVFS(Dynamic Voltage and Frequency Scaling)。本文列举了基于软件和硬件的DVFS实现,验证了DVFS在降低功耗方面的巨大潜力,并分析了影响DVFS应用的一些因素。
关键词 电源管理 动态电压与频率调节 CPU负载跟踪 预测算法


1 DVFS的工作流程
现在,为了延长便携式设备(如手机、MP3、多媒体播放器、笔记本电脑等)的电池寿命,芯片厂商们正在绞尽脑汁开发新的节电技术。简单地说,这些节电技术可以分为两类――动态技术和静态技术。静态技术包括不同的低功耗模式,芯片内部不同组件的时钟或电源的按需开关等。动态技术则是根据芯片所运行的应用程序对计算能力的不同需要,动态调节芯片的运行频率和电压(对于同一芯片,频率越高,需要的电压也越高),从而达到节能的目的。该技术的理论依据是如下的公式:


从上面的公式可以看出,降低频率可以降低功率,但是单纯地降低频率并不能节省能量。因为对于一个给定的任务,F*t是一个常量,只有在降低频率的同时降低电压,才能真正地降低能量的消耗。
目前许多芯片支持DVFS,比如Intel公司的芯片支持SpeedStep,ARM的支持IEM(Intelligent Energy Man-ager)和AVS(Adaptive Voltage Scaling)等。但是要让DVFS发挥作用,真正地实现节能,只有芯片的支持还是不够的,还需要软件与硬件的综合设计。
一个典型的DVFS系统的工作流程如下:
①采集与系统负载有关的信号,计算当前的系统负载。这个过程可以用软件实现,也可以用硬件实现。软件实现一般是在操作系统的核心调用中安放钩子,特别是调度器,根据其调用的频度来判断系统的负载。硬件实现如Freescale的i.Mx3l,通过采集一些核心信号中断线、Cache、内存总线的使用情况等,计算当前的系统负载。
②根据系统的当前负载,预测系统在下一时间段需要的性能。有多种预测算法可以选择,要根据具体的应用来决定。这种预测,既可由软件实现,也可由硬件实现。
③将预测的性能转换成需要的频率,从而调整芯片的时钟设置。
④根据新的频率计算相应的电压。通知电源管理模块调整给CPU的电压。这需要特别的电源管理芯片,比如Frccscak公司的MCl3783或者NS公司的支持PowerWise特性的系列电源管理芯片。它们能够支持微小的电压调整(25 mV)井且能在极短的时间内(几十μs)完成电压的凋整。
另外,在调整频率和电压时,要特别注意调整的顺序。当频率由高到低调整时,应该先降频率,再降电压;相反,当升高额率时,应该先升电压,再升频率。
图1演示了简单的DVFS过程。

2 基于软件的DVFS实现
在基于软件的DVFS实现中,一般通过在操作系统的核心调用中安装钩子的办法来收集系统调用的信息,判断当前的系统负载。其中最重要的是调度器,其他地方包括读/写接口、定时器等。例如,在Linux内核中,一般在以下地方安装钩子。


在预测下一时间段的系统负载时,需要利用采集到的前面几个时间段的实际负载值,然后根据下面的公式进行预测:


以上这些算法各有其优缺点。例如LMS算法类似于自适应滤波器,能够自动调整参数,但是面临着收敛速度的问题。
ARM公司为了验证其芯片的DVS(Dynamic Voltage Sealing,动态电压凋节)特性,开发的软件Vertigo中,采用了UH(Utilization History)算法,有关的公式如下:


该算法对那些性能需求变化较慢的任务比较实用,比如MPEG解码器。
在Vertigo的实现中,一些预测器完成性能预测,它将会把新的性能需求提交给策略管理器,由策略管理器决定是否调整当前的性能设置。Vertigo的架构如图2昕示。

3 基于硬件的DVFS实现
正如前面所说的,CPU负载跟踪与性能预测的工作都可以由硬件完成。这样,一方面增强了负载计算的准确性;另一方面减轻了CPU用于负载跟踪与性能预测的负担。当然,这样做也有一个弊端,就是无法灵活地选择预测算法。但是,这个缺点可以通过设置不同的预测参数得到一定程度的弥补。
飞思卡尔的i.MX31就是这样的一个例子。这是一款针对移动多媒体市场的应用处理器,具有强大的音频和视频处理能力。该芯片内部包含一个ARMll的CPU核,同时它也继承了来自ARM的DVS技术并发展为DVFS。在该芯片中,CPU负载跟踪和性能预测都是由硬件完成的,其负载跟踪模块框图如图3所示。

在图3中,16路CPU活动信号被采集之后,经过加权,被送到负载叠加器,与另外采集的CPU空闲信号(经过简单平均)进行叠加。叠加器输出的结果被送到EMA模块,执行指数移动平均(Exponential Moving Average)算法,进行性能预测。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top