CPU 策略学习:interactive分析,结合代码
举个例子:
当前系统频率504MHz,系统负载阈值80,当前系统负载90
索引列表是
252 504 816 1008 1200 1272 1416
由系统负载算出新频率(目标频率)是
1416 * 90% , 介于1272和1416之间,取1272MHz
Interactive策略考虑的比较细,因为当系统在最低频,例如252MHz时,稍微的任务启动,都会使得系统负载时100%,如果按照以上算法,必定跑到系统最高频,
例如1416MHz。
所以对于系统最低频有特殊处理
当系统处于最低频时,负载超过负载阈值,直接升频至已经实现指定的go_hispeed_load ,例如816MHz。
以上是升频的算法,接下来看看如何决定降频值
当系统负载没有达到负载阈值,就决定要降频了,不同于升频的是,降频是用系统当前频率,也就是系统自身频率值,乘以负载百分比,得到新频率,即目标频率,同样在频率索引列表中,寻找合适的频率值,也是取下限频率。
举个例子:
当前系统频率504MHz,系统负载阈值80,当前系统负载60
索引列表是
252 504 816 1008 1200 1272 1416
由系统负载算出新频率(目标频率)是
504* 60% ,介于252和504之间,取252MHz
调频和调压,就是动态调压调频DVFS
频率确定后,对应的arm和logic电压也就确定
如果是升频,先升压,后升频
如果是降频,先降频,后降压