从前有个赌鬼的遗孀到后,详解DVFS到底是个什么鬼

从前到后,详解DVFS到底是个什么鬼 - IC公开课 - 中国电子顶级开发网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台
- Powered by X-Space
一些心得分享,欢迎讨论,欢迎关注公众号
从前到后,详解DVFS到底是个什么鬼
& 21:27:35
DVFS(Dynamic Voltage and Frequency Scaling)动态电压频率调节本质上是一种低功耗技术,目的是根据的芯片当时的实际功耗需要设定工作电压和时钟频率,这样可以保证提供的功率既满足要求又不会过剩,从而可以降低功耗。硬件基础为了实现供电电压可调节,目前的芯片电源模块都可以提供多级输出,本质上是多个不同输出电压的LDO通过选择开关桥接,DVFS控制逻辑输出所需电压的控制向量,电源管理模块会自动完成电压源切换。时钟频率的控制是目前已经很常见的,芯片内部一般都会集成CGU(Clock Generator Unit)负责时钟源的提供,可以对某个时钟源分频升频,为系统提供特定频率的时钟信号,这里不再赘述。调节顺序目前的芯片实现工艺下,更高的频率则需要更高的供电电压。因为更高的频率意味着动态功率的消耗增加,而在芯片整体电容电阻值不变的前提下,更高的供电电压可以提供更高的电源功率。所以安全的调节机制是:当需要提升功率时,应先提升供电电压,然后提升时钟频率。当需要降低功率时,应先降低时钟频率,再降低供电电压。DVFS调节策略一味的降频降压当然是不能降低功耗的,因为低频下运行可能使系统处理任务的时长增加,从而整体上可能增加了功耗。所以DVFS的核心是动态调整的策略,其目的是根据当时的系统负载实时调整,从而提供满足当时性能要求的最低功率,也就达到了最低功耗。制定调整策略前,先找出系统中的耗电大户:CPUDSP硬件算法加速模块(看逻辑规模)需要统计出这些模块的负载情况,基本的策略当然是工作负载增加则升频升压,工作负载降低则降频降压。工作负载的粗略模型是在一个时间窗口内,统计模块工作的时间长度,设定不同阈值,高阈值对应高电压高频率,低阈值对应低电压低频率。每次统计值穿过阈值边界,触发DVFS转换。实际的系统中,每个CPU,DSP也许有自己独立的DVFS调节系统,所以可以根据本模块的特点制定出更精确的负载模型,从而取得更优的功耗表现。至于调节算法的实现,可以软件也可以硬件,看资源消耗情况和DVFS响应时间要求而定。一.choose_freq函数概述
在interative策略中,choose_freq函数用来选择一个合适的频率,使选频后系统的workload小于或等于target&load. 其核心思想是:选取一个最小的频率,使在这个频率中的target&load达到理想状态。
1.&影响选频的核心因素有两个:
1.两次统计时间内系统频率的平均频率loadadjfreq,
2.系统设定好的target&load,在interative初始化的时候设定,tunables-&target_loads&=&default_target_
2.&先大概描述下两个核心因素的情况:
1)根据cpufreq_interactive_timer中对cpu当前负载的计算我们知道:
&&&&&&Cur_load&=&loadadjfreq&/&cur_freq&
而在choose_freq函数中,计算target&freq时:
&&&&&&target_freq&=&loadadjfreq&/&t1
其中t1为系统设定好的target&load,默认为90。
因此,综合上述两个式子,可以得到:
&&&&&&Target_freq&=&cur_freq&*&(cur_load&/&target_load)&&;
也就是说,如果当前cpu负载大于90%,期望从频率表选择一个大于当前的频率,从而减少负载,如果负载小于90%,则期望从频率表选择一个频率以提高当前负载。
2)在interative初始化时,会为每个cpu频率设定一个理想的target&load,以负载+频率的键值对方式,保存在cpufreq_interactive_tunables结构中的target_loads[]数组,ntarget_loads记录一共有多少个键值对。比如,我们可以以下面的方式,指定对应cpu频率下,理想的cpu负载。
Target_loads[]&=&{90,&800,&&85&,900,&&95,&1000};
意思是,如果目标频率在区间[800,&900)之间,则理想cpu负载应在90%左右,如果当前目标频率在区间[900,&100),理想负载在85%左右,从访问方式可以看出,数组中频率最好以递增方式安排。
freq_to_targetload中获取target&load:
&&&&for&(i&=&0;&i&&&tunables-&ntarget_loads&-&1&&&
&&&&freq&&=&tunables-&target_loads[i+1];&i&+=&2)
ret&=&tunables-&target_loads[i];
在interative中只设定为90,因此对于所有频段,target的cpu负载都是90%。
二.choose_freq程序流程
三.结合具体样例分析频率的选择
假如当前频率为800Mz,target_load默认为90,且有如下频率表:
{800Mz,&&900Mz,&&1000Mz,&1100Mz}
当前负载为91,根据Target_freq&=&cur_freq&*&(cur_load&/&target_load)
&&&&Target_freq&=&800Mz&*&(91&/&90)&=&808Mz.
根据cpufreq_frequency_table_target()传入参数,从频率表取出比target_freq大的最小频率,也就是900M。此时,freq&&&prevfreq,则fremin=prefreq,且freq不大于freqmax,因此会重新进入while循环。因为target_load默认值固定为90,因此第二次循环,从频率表取出来的频率不变,freq&=&prevfreq,循环结束,返回查找出来的900Mz。
假如当前频率为1100Mz,target_load默认为90,有如下频率表:
{800Mz,&&900Mz,&&1000Mz,&1100Mz}
当前负载为82,根据Target_freq&=&cur_freq&*&(cur_load&/&target_load)
&&&&Target_freq&=&1100Mz&*&(82&/&90)&=&1002Mz.
从频率表选择比target_freq(1002Mz)大的最小频率,也就是1100Mz。同理,最后返回1100Mz。
由此可见,如果当前负载超过90,且频率不是最大值,很容易升频,而当负载为81时,才可能降频(仅限于前面两个例子),可能为了性能考量。
Freqmin和freqmax等变量,是为了多target&load准备的,本程序中target&load固定90的,但我们也可以考虑下,以体会此处算法的精巧。
如果当前频率800Mhz,intravite初始化时,系统设定的负载与频率表的对应关系如下:
Target_loads[]&=&{90,&800,&&85&,900,&&95,&1000,&&88,&1100};
当前负载为98,根据Target_freq1&=&cur_freq&*&(cur_load&/&target_load)
Target_freq1&=&800Mhz&*&(95&/&90)&&=&&844Mhz
从频率表选出900Mhz作为当前freq,因为prevfreq&&&freq&&&freqmax,&此时freqmin&=&prevfreq&=&800Mhz,然后重新进入while循环
此时prevfreq&=&freq&=&900Mhz,&计算
&&&&&target_freq2&=&800Mhz&*&(&95&/&85)&=&894Mhz
因此从频率表选出频率为freq&=&900Mhz。因为900与prevfreq相等。因此返回900Mhz。算法这样设计,主要是防止频率跨度太大,或频率下降太快。由于需要调整各种target_load和频率表,比较麻烦,如果感兴趣可以自己更改相关参数。
本文档编写时间仓促,如果有理解失误,欢迎指出。
---@qq.com & 日期:
本文已收录于以下专栏:
相关文章推荐
choose_freq函数用来选频,使选频后的系统workload小于或等于target load.
核心思想是:选择最小的频率来满足target load.
影响选频结果的因素有两个:
CPU策略学习:interactive策略的优点和缺点
我相信,研究CPU策略的人,经常会听别人说,或者自己说:每种策略都有好有不足,性能和功耗不能兼顾,性能好的功耗就大,为省功耗就...
CPU动态调频策略,目前常见的有performance powersave ondemand consertive interactive
以下是基于interactive代码详细分析下的一些见...
CPU策略学习:interactive策略的优点和缺点
我相信,研究CPU策略的人,经常会听别人说,或者自己说:每种策略都有好有不足,性能和功耗不能兼顾,性能好的功耗就大,为省功耗就...
CPU策略学习:interactive策略的优点和缺点
我相信,研究CPU策略的人,经常会听别人说,或者自己说:每种策略都有好有不足,性能和功耗不能兼顾,性能好的功耗就大,为省功耗就会牺牲性...
[csharp] view
&font-family: Arial, Helvetica, sans- white-space: norm...
Linux提供了多种governor供用户选择,这里以interactive为例,毕竟现在的android手机中都是采用该governor.
基于linux 3.14
以下代码若未指明位置则默认在...
飞思卡尔DVFS
用途:根据负载情况,动态调节频率用于降低功耗。
使用范围:IMX31和IMX53都默认启用,并且imx53还添加了总线频率调节功能。
几个概念及实现:
1.     D...
由“linux cpufreq framework(3)_cpufreq core”的描述可知,cpufreq policy负责设定cpu调频的一个大致范围,而cpu的具体运行频率,...
他的最新文章
讲师:汪剑
讲师:刘道宽
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)DVFS,最全面的DVFS文章 - 电子工程世界网
在电子工程世界为您找到如下关于“DVFS”的新闻
DVFS资料下载
DVFS的SoC低功耗技术...
......................................................... 103
5.5.2 Dynamic Voltage and Frequency Scaling (DVFS) ................ 104
5.5.3 Cache Based Architecture ...................................................... 105
5.5.4 Log FFT...
DVFS相关帖子
(MMC/SD) 以及高速 USB 2.0/1.1 可全面满足桌面、网络或便携式连接或存储的需求;
·视频端口能够支持原始视频的输入输出,而 LCD 控制器则使开发人员能够方便地连接具有 VGA 分辨率的显示屏;
·通过 DVFS 提供多个工作点,可关闭不使用的外设并提供可选的 I/O 电压,这些优异特性有助于提高便携性并降低产品的发热量;
·配套提供的 TI TPS65070 电源管理...
模块、WIFI/蓝牙模块等。拥有丰富的板载接口以及众多配套扩展模块,是物联网技术平台的不二选择。 - 八层高速PCB设计,全机器焊接,杜绝手工,批量无忧!。- 独家完美实现DVFS(动态电压频率调整)- 核心板引出脚最全,扩展能力最强- 工业级进口板对板连接器,插拔方便稳定可靠- 稳定运行Android 4.0.3操作系统及最新版Android4.2/4.4系统;最通用的Linux-3.0.15...
PX2开发板Android开发PX2开发板开源代码获取PX2开发板固件烧写工具使用说明PX2开发板Android编译开发环境介绍
PX2开发板Linux开发PX2开发板Ubuntu系统V1.0预览版安装指南
PX2开发板驱动开发PX2开发板按键配置PX2开发板红外配置PX2开发板DVFS配置PX2开发板PMU配置PX2开发板以太网配置PX2开发板Wifi&BT配置PX2开发板...
; && && && && && &
华曦达DV7905,采用成熟主芯片组,CPU:ARM&&Cortex-A5 频率为1.5GHz(DVFS)&&;GPU:四核 ARM Mali-450 GPU 频率为 600MHz+ (DVFS);内存:DDR3...
;& &Exynos 4412处理器配备一款高水平电源管理芯片(PMU)是非常必要的。4412属于四核处理器。一个好的电源管理芯片,可以使整个系统运行有序,从而实现特有的DVFS(动态电压频率调整),在控制系统功耗的前提下,使得整个系统更加稳定可靠。& && &迅为电子的4412开发板配备三星自家电源管理芯片‘S5M8767’,把4412的高性能...
视频信号的直接输出。两路CSI Camera 输入和双视频输出,5路UART接口及双路CAN接口, 支持Ethernet 10/100带IEEE1588 QUICC Engine和MLB50协议,同时支持EMMC4.3/4.4 协议接口,采用DVFS和Smart Speed技术提供智能供电管理等高效能芯片设计技术。& & i.MX53W是基于Windows CE 7操作系统...
Ethernet 10/100带IEEE1588 QUICC Engine和MLB50协议,同时支持EMMC4.3/4.4 协议接口,采用DVFS和Smart Speed技术提供智能供电管理等高效能芯片设计技术。
&&& i.MX53W是基于Windows CE 7操作系统,i.MX53W有着丰富的外围接口,如USB HOST、USB OTG、TVE、DVI、HDMI、LVDS...
,5路UART接口及双路CAN接口, 支持Ethernet 10/100带IEEE1588 QUICC Engine和MLB50协议,同时支持EMMC4.3/4.4 协议接口,采用DVFS和Smart Speed技术提供智能供电管理等高效能芯片设计技术。
&&& i.MX53W是基于Windows CE 7操作系统,i.MX53W有着丰富的外围接口,如USB HOST...
接口, 支持Ethernet 10/100带IEEE1588 QUICC Engine和MLB50协议,同时支持EMMC4.3/4.4 协议接口,采用DVFS和Smart Speed技术提供智能供电管理等高效能芯片设计技术。
&&& i.MX53W是基于Windows CE 7操作系统,i.MX53W有着丰富的外围接口,如USB HOST、USB OTG、TVE...
的指令缓存和数据缓存以及256K的二级缓存,并且集成了多媒体硬件加速单元:3D和2D图形加速的OpenGL ES 2.0和Open VG 1.1;多格式高清HD 720P视频解码模块和多格式标清D1分辨率的视频编码模块,并且支持720P或1080i CVBS模拟视频信号的直接输出。采用DVFS(Dynamic Volt Frequency Scaling)和Smart Speed技术提供了功率管...
你可能感兴趣的标签
热门资源推荐

我要回帖

更多关于 东京食尸鬼剧情详解 的文章

 

随机推荐