工程科学与技术   2018, Vol. 50 Issue (1): 107-112
基于BP神经网络的处理器节能技术研究
郭兵1, 张鹏博1, 沈艳2, 黄义纯1, 曹亚波1     
1. 四川大学 计算机学院,四川 成都 610065;
2. 成都信息工程大学 控制工程学院,四川 成都 610054
基金项目: 国家自然科学基金重点项目资助(61332001);国家自然科学基金资助项目(61772352;61472050);四川省科技计划资助项目(2015GZ0103);成都市科技惠民技术研发项目资助(2014-HM01-00326-SF)
摘要: 研究芯片功耗中动态功耗部分,针对传统动态节能技术动态电压与频率调节(dynamic voltage and frequency scaling,DVFS)技术未能考虑预测CPU未来阶段行为的不足,提出BP-DVFS节能策略。为了提高下一阶段CPU利用率的预测准确性,更准确地对CPU进行动态调频进而降低其运行功耗。构建了一种FPU-CPU(forward predict utilization CPU)模型。模型假设下一时间段CPU利用率与CPU运行资源有关的事件特征量存在非线性函数关系,从处理器运行时环境出发提取出与CPU资源紧密相关的5个特征量进行度量,采用BP神经网络进行拟合训练。用训练后得到的神经网络预测CPU下一阶段的利用率,进行CPU处理不同类型任务程序的功耗仿真实验。并在相同实验条件下与常用的3种CPU调频策略实验结果进行对比。实验结果表明,在CPU处理不同类型任务程序时,采用BP-DVFS策略进行调频的CPU功耗都低于其他3种策略进行调频的CPU功耗。通过实验验证,本文提出的方法提高了预测CPU利用率的准确度,降低了CPU运行时功耗。同时验证了假设的合理性与有效性以及此方法实现CPU低功耗运行是有效的。
关键词: 节能    DVFS    BP神经网络    动态电压与频率调节    
Research on Processor Energy Saving Strategy Based on BP Neural Network
GUO Bing1, ZHANG Pengbo1, SHEN Yan2, HUANG Yichun1, CAO Yabo1     
1. College of Computer Sci.,Sichuan Univ.,Chengdu 610065,China;
2. School of Control Eng.,Chengdu Univ. of Info. Technol.,Chengdu 610054,China
Abstract: Focusing on dynamic power consumption of the chip,this paper proposed a new energy-saving strategy named BP-DVFS.Currently,DVFS (dynamic voltage and frequency scaling) technology failed to predict future behavior of CPU.In order to improve the performance of CPU utilization and predict more accurate CPU dynamic frequency,it is essential to reduce its operating power consumption.A CPU model named FPU-CPU (forward predict utilization) was built in strategy.A non-linear relationship between the CPU utilization in next period and the CPU running resource was assumed in the model.Five events related to CPU resources and extracted from run-time processor environment were measured as features.Afterwards,the training phase of was performed by the BP (back propagation) neural network.Various experiments were then carried out to predict different kinds of tasks including CPU utilization,processing and power consumption through BP neural network.To evaluate the performance of proposed method,the experimental results under same situation were compared with three traditional CPU frequency modulation strategies.The experimental results showed that the CPU power consumption of BP-DVFS based strategy is lower than that of other three strategies when CPU handles different kinds of program tasks.The experimental verification indicated that the proposed technique wasnot only accurate inpredicting performance of CPU utilization,but also helpful to reduce power consumption of CPU.
Key words: energy saving    DVFS    BP neural network    dynamic voltage and frequency scaling    

目前,针对计算机节能的措施主要有两类:第1类主要考虑平台、中心、硬件的节能,并设计绿色平台架构,搭建节能中心,开发低功耗设备实现节能;第2类主要考虑软件的节能,从操作系统到应用软件寻找有效的节能措施。针对CPU节能,有较大影响的技术为动态电压频率调节技术、动态电源管理技术、温度管理技术等。其中,DVFS是应用最广泛的处理器节能技术,如何从处理器体系结构层面出发考虑优化DVFS策略为处理器节能提供了一种新的思路值得研究和探讨。

DVFS技术实现CPU节能的一些方法已经被提出,相关工作可以分为:

第1类依赖于任务执行的松弛时间。文献[1]首次将动态电压与频率调节技术用于处理器功耗优化,模拟任务执行的轨迹与松弛时间,在操作系统进行任务调度时,为每个任务设置一个新的运行频率;文献[2]提出通过CPU空闲时间与繁忙时间的比值自动设置处理器频率,被称为PAST算法,该算法利用空闲时间的大小作为寻找最优频率的标志;文献[3]提出一种依赖于任务时间间隔的频率调节算法,通过在不影响用户体验的情况下延长一定的任务执行时间来降低芯片功耗。这些策略需要预先知道任务的到达时间和执行时间。

第2类利用应用程序辅助指导DVFS进行频率调节。文献[4]提出一种基于应用程序前一段时间的工作信息对处理器进行动态调频的方法;文献[5]提出采用过去 $N$ 个时间段内的CPU的利用率进行加权平均作为下一时间段使用率的预测值;文献[6]指出PAST算法仅仅是依据单个时间间隔内的利用率信息,其不能平缓地实现频率变化,从而提出一种多周期查看方式的算法,称为PEAK算法。该算法监视处理器利用率的循环与短时间内的高利用率,通过得到的CPU频率进行CPU调频。这类策略在程序执行之前就要确定电压和频率的调节时机和调节的粒度。

第3类利用任务运行时特征来指导DVFS进行频率调节实现节能。文献[7]提出一种基于软件特征量优化DVFS的GPU节能模型;文献[8]针对单核处理器从系统组件对DVFS进行优化设计;文献[9]根据程序运行时访存阻塞的分布、计算负载等信息提出了一种在线的DVFS方法,该方法考虑了程序阶段行为和存储器停滞时间的运行时分布以及工作量;文献[10]提出一种依据最大和最小频率的线性结合方法来得到系统最优频率的方法,称为MMF-DVFS算法;文献[11]提出一种利用程序运行时的IPC (instructions per cycle)和处理器的频率之间的关系指导DVFS的方法降低能耗;文献[12]依据内存频率与阈值的关系优化DVFS;文献[13]根据MPI(last level cache misses per instruction)在程序中的分布、相应的能源消耗和其他统计信息将DVFS规划成MCKP(multiple choice knapsack problem)问题。虽然程序运行特征指导DVFS可以达到节能的目的,但是这些策略考虑特征数量不足,其他与处理器运行相关性较大特征没有被包含。

从体系结构层面出发提取相关特征量指导DVFS调频的研究较少,已有研究也多采用线性方法。本文深入分析处理器运行时特征从而提出BP-DVFS调频策略,该策略利用FPU-CPU模型对处理器下一时间段利用率的预测值进行处理器频率调节;FPU-CPU模型采用BP神经网络进行非线性拟合,预测的CPU利用率与实际值误差较小,使得BP-DVFS策略对处理器运行频率的调节更准确。

1 BP-DVFS策略与FPU-CPU模型

本文所提出的BP-DVFS处理器调频策略基于所构建的FPU-CPU模型,模型假设处理器下一时间段利用率和处理器运行相关特征量存在非线性函数关系,采用BP神经网络进行非线性关系拟合;根据拟合得到的神经网络预测处理器下一时间段的利用率指导DVFS进行处理器调频。

本文主要研究处理器动态功耗部分。传统计算能耗的模型为:

$E = P{\rm{ \times }}T = \int {P{\rm{d}}t} $ (1)

式中, $E$ 为系统能耗, $P$ 为系统功耗, $T$ 为系统运行时间。

动态功率的计算模型为:

${P_{\rm d}} = C{\rm{ \times }}N{\rm{ \times }}{V^2}{\rm{ \times }}f$ (2)

式中, ${P_{\rm d}}$ 代表动态功率, $V$ 代表系统的电压, $f$ 表示系统的频率, $C$ $N$ 都是和电路特性有关的参数。对任何已确定电路,参数 $C$ $N$ 也相应确定,合并为常数 $K$ ,于是式(2)可以化为:

${P_{\rm d}} = K{\rm{ \times }}{V^2}{\rm{ \times }}f$ (3)

由式(3)可知,由于 $K$ 为常数,所以电压平方和频率都与电路功率成正比,只要减少其中一个量就能降低系统功率,从而减少能耗。设计计算机电路时,考虑频率与电压存在线性关系,即电压可以由频率线性表示,所以式(3)可以进一步化简:

${P_{\rm d}} \approx {K'}{\rm{ \times }}{f^3}$ (4)

式中, ${K'}$ 表示一个常数。若用 ${W_{\rm d}}$ 表示系统的动态能耗,则有:

${W_{\rm d}} = \int_0^T {{K'}{\rm{ \times }}{f^3}{\rm d}t = {K'}{\rm{ \times }}{f^3}{\rm{ \times }}T = {C'}{\rm{ \times }}{f^2}} $ (5)

式中, ${C'}$ 是与具体电路特性相关的常数。通过式(5)可知频率是决定能耗的唯一参数,优化CPU功耗也就是调整处理器运行频率使其在合理的范围内运行。

DVFS是处理器调频应用最广泛的技术,但因为其对处理器下一时间段运行情况考虑不足导致调频效果不佳。本文假设下一时间段CPU利用率与CPU运行中的某些事件特征量存在非线性关系,获得FPU-CPU模型如下:

$l = f({C_1},{C_2},{C_3},{C_4},{C_5})$ (6)

式中: $l$ 表示CPU下一时间段的利用率; $f(\cdot)$ 表示一种函数关系; ${C_1}$ ${C_2}$ ${C_3}$ ${C_4}$ ${C_5}$ 分别表示处理器运行中与CPU有关的指令执行、访存、硬件中断、上下文切换、分支预测错误5个事件度量值,即时钟周期数与指令完成数的比值(IPC)、访存次数、硬件中断次数、上下文切换次数、分支预测错误次数。其中,CPU利用率可以用/proc/stat文件来计算,硬件中断次数用/proc/interrupts文件来检测获得,IPC、访存次数、上下文切换次数、分支预测错误次数可由Linux系统调用中的函数获得。

因为实验所采集得到的数据数量级会有比较大的差别,例如,访存次数可能在3位数量级,而分支预测错误可能有7位数量级。因此,使用数据归一化把数据转化为[0,1]之间的数。所采用的数据归一化方法如下:

$X_k' = ({X_k} - {X_{\min }})/({X_{\max }} - {X_{\min }})$ (7)

式中, $X_k'$ 为归一化后的结果, ${X_k}$ 为归一化前的数据, ${X_{\min }}$ 为每一维数据中的最小数, ${X_{\max }}$ 为最大数。

在BP神经网络根据输入指标得到输出后,还需要对该输出做相应的反归一化,反归一化公式为:

$X = {X'}({X_{\max }} - {X_{\min }}) + {X_{\min }}$ (8)

式中, $X$ 为反归一化后的结果, ${X'}$ 为神经网络的输出, ${X_{\min }}$ 为训练样本数据中输出指标的最小值, ${X_{\max }}$ 为最大值。经过训练后的神经网络,在用作CPU利用率预测时,如果所采集到的输入指标在训练样本数据范围外,则将该值设为训练数据的最大值或最小值。

2 BP神经网络非线性拟合 2.1 BP神经网络

BP神经网络是目前应用最广泛的神经网络模型之一。神经网络有一个输入层、一个输出层、若干个隐藏层组成。BP神经网络的结构如图1[14]所示,其中, $\mathit{\boldsymbol{P}}$ 表示输入向量, $\mathit{\boldsymbol{T}}$ 表示输出向量, ${\mathit{\boldsymbol{W}}_1}$ 表示输入层隐藏层之间的权重, ${\mathit{\boldsymbol{W}}_2}$ 表示隐藏层与输出层之间的权重。

图1 BP神经网络结构 Fig. 1 BP neural network structure

1989年Hornik证明,只需一个包含足够多神经元的隐藏层,BP神经网络就能以任意精度逼近任意复杂度的连续函数。

根据上述BP神经网络的论述确定本文BP神经网络的结构如下:

1)隐藏层数的确定。Hecht-Nielson证明了对任何在闭区间内的连续函数,都可用单隐藏层的BP网络逼近,即一个3层的BP网络可完成任意的 $n$ 维到 $m$ 维的映射,所以本文选取只有1层隐藏层数的3层神经网络。

2)节点数确定。输入层为 ${C_1}$ ${C_2}$ ${C_3}$ ${C_4}$ ${C_5}$ ,即输入层有5个节点;输出层为CPU利用率 $l$ ,所以输出层有一个节点。单隐藏层神经网络一般用式(9)[15]计算隐藏层节点数:

${n_1} = \sqrt {n + m} + a$ (9)

式中, $n = 5$ 为输入节点个数, $m = 1$ 为输出节点个数, $a$ 为1到10之间的常数。因此, ${n_1}$ 取值范围为3~12。

3)函数的确定。针对单隐藏层BP神经网络,输入层和隐藏层传递函数通常选用tansig函数,输出层传递函数一般采用purelin函数。通过多组实验发现,trainlm函数用在隐藏层,且节点数为11时,网络收敛速度和逼近误差达到令人满意的效果。因此,采用trainlm函数作为BP神经网络的训练函数,训练网络的隐藏层节点数确定为11。确定本文神经网络结构如图2所示。

图2 本文BP神经网络结构 Fig. 2 Proposed BP neural network structure

输入变量 ${C_1}$ ${C_2}$ ${C_3}$ ${C_4}$ ${C_5}$ 分别为模型中5个参数时钟周期数与指令完成数的比值(IPC)、访存次数、硬件中断次数、上下文切换次数、分支预测错误次数, ${\mathit{\boldsymbol{W}}_1}$ 表示输入层与隐藏层之间的权重, ${\mathit{\boldsymbol{W}}_2}$ 表示隐藏层与输出层之间的权重,输出 $l$ 代表CPU下一时间段利用率。

2.2 基于FPU-CPU模型的BP神经网络拟合

根据程序执行类型的不同,本文一共选择5个基准程序作为神经网络的训练集,分别是2个CPU密集型任务程序、2个I/O密集型任务程序、1个混合型任务程序。所选用程序具体情况如表1所示。

表1 基准程序介绍 Tab. 1 Introduction to benchmarking procedures

通过对神经网络进行不断训练在误差MSE达到10–7情况下得到神经网络权值和阈值如下:

$\begin{array}{l}{\mathit{\boldsymbol{W}}_1} = \left[\!\! \begin{array}{*{20}{c}} \;\;{- 0.416 \; 5 }&{ - 0.169 \; 6 }&{ - 1.450 \; 0 }&{ - 0.044 \; 2}& \;\;\;{ 0.456 \; 0}\\ \;\;\;\;\;{ 1.579 \; 4 }&{ - 1.116 \; 4 }&{ - 3.648 \; 6 }&{ - 0.165 \; 2 }& \;\;\;{ 3.164 \; 4}\\ \;\;{ - 9.831 \; 8 }& \;\;\;{ 1.444 \; 6 }& \;\;\;{ 1.793 \; 8 }& \;\;\;{ 1.235 \; 6 }&{ - 3.698 \; 9}\\ \;\;\;\;\;{ 2.358 \; 2 }& \;\;\;{ 2.266 \; 8 }& \;\;\;{1.466 \; 6 }& \;\;\;{1.591 \; 2 }& \;\;\;{ 1.012 \; 7}\\ \;\;{ - 5.784 \; 7 }& \;\;\;{ 3.014 \; 8 }& \;\;\;{ 1.142 \; 9 }&{- 1.810 \; 4 }&{ - 0.046 \; 1}\\ \;\;{ - 0.551 \; 4 }&{ - 2.200 \; 3}& \;\;\;{ 1.356 \; 0 }& \;\;\;{ 1.011 \; 7 }&{ - 1.231 \; 1}\\ \;\;\;\;\;{ 2.048 \; 3 }&{ - 0.682 \; 0 }& \;\;\;{ 2.954 \; 5 }& \;\;\;{1.549 \; 5 }&{- 0.676 \; 1}\\ \;\;\;\;\;{ 2.343 \; 4 }&{ - 1.352 \; 4 }& \;\;\;{ 2.179 \; 0 }&{- 1.578 \; 2 }&{ - 1.521 \; 6}\\ \;\;\;\;\;{ 5.069 \; 7 }&{ - 2.825 \; 1 }& \;\;\;{ 0.695 \; 0 }&{- 1.270 \; 8 }&{ - 2.510 \; 2}\\ { - 10.435 \; 6}& \;\;\;{ 3.649 \; 6 }&{ - 0.117 \; 5 }& \;\;\;{ 2.354 \; 1 }& \;\;\;{ 2.775 \; 3}\\ \;\;{ - 0.832 \; 9 }&{ - 0.385 \; 9}&{ - 3.593 \; 3}& \;\;\;{ 2.239 \; 2 }&{ - 0.645 \; 5}\end{array} \right],\;\;{\mathit{\boldsymbol{W}}_2} = \left[\!\! \begin{array}{l} - 1.504 \; 9\\ - 2.891 \; 7\\ - 2.069 \; 1\\ - 2.197 \; 6\\ - 0.186 \; 4\\ - 0.258 \; 4\\ - 0.463 \; 5\\ \;\;\;0.091 \; 6\\ - 5.847 \; 6\\ - 2.160 \; 7\\ \;\;\;0.050 \; 1\end{array}\!\! \right]\text{。}\end{array}$ (10)
3 实验结果与分析

实验在3.13.0内核版本的Linux操作系统上运行,系统位数为32位;搭载Intel i3处理器,运行频率范围为1.2~2.4 GHz;RAM大小为4 GB。选用CPU密集型任务、I/O密集型任务、混合型任务3种程序,分别在Performance[16]、Ondemand[17]、PAST[2]、BP-DVFS 4种策略调频下运行。其中,Performance为Linux内核自带的节能策略,Ondemand为Linux内核默认的节能策略,PAST是前人研究的策略,BP-DVFS策略为本文采用FPU-CPU调频的策略。采用功耗测量仪KA3005P数控直流电源测得功耗值。系统在只运行4种策略而不运行任务程序的200 s内策略功耗如图3所示。

图3 策略功耗 Fig. 3 Power consumption of different strategies

图3可知,4种处理器调频策略中除Performance策略因为一直在高频率运行而功耗较大外,其他3种策略自身功耗相差不大。

4种策略在本文选取的3种不同类型任务上的运行功耗情况,如图46所示。

图4 CPU密集型任务的功耗 Fig. 4 Power consumption of CPU-intensive task

图5 I/O密集型任务的功耗 Fig. 5 Power consumption of I/O intensive tasks

图6 混合型任务的功耗 Fig. 6 Power consumption of hybrid tasks

图4可知,针对CPU密集型任务程序,Performance策略功耗最大,其余3种策略效果差别不大,本文所采用的基于FPU-CPU调频方法的BP-DVFS策略的节能效果较好。由于CPU密集型任务对CPU资源的需求较高,CPU需要处于较高的运行频率,故4种策略都会将相应CPU的运行频率调到最高值;并且,实验中运行的CPU密集型任务是矩阵乘法运算,只在单核上运行,除Performance策略外,其他策略则会将其余CPU调节到运行频率。

对于I/O密集型任务,每个CPU核均衡运行任务。该任务要频繁访问内存,所以CPU频率抖动厉害,一般会在40%范围变动。观察图5可知:Performance策略一直处于高频运行故功耗大;Ondemand策略对CPU利用率预测不是很准确,故执行该策略的节能效果也不太理想。

图6可知,BP-DVFS策略相比于其他策略效果明显。这主要是因为混合型任务CPU利用率抖动频繁,Ondemand和PAST对CPU下一阶段利用率预测出现失误,故其他策略不能有效对CPU运行频率进行调节。

综合观察图456可知:Performance策略在4种处理器调频中节能效果最差;Ondemand策略作为Linux默认CPU调频策略具有一定竞争力;BP-DVFS策略在3种类型任务上都有较好的效果,对3种任务程序都可实现CPU的低功耗运行。

通过实验证明了第2节假设下一时间段CPU利用率与CPU资源有关的事件存在非线性函数关系的合理性,进而验证了所提出的BP-DVFS策略和FPU-CPU模型的合理性及有效性。

4 结束语

本文在研究传统的DVFS基础上,针对前人的研究未能考虑处理器下一阶段的利用率。假设下一时间段CPU利用率与CPU资源有关的事件存在非线性函数关系。提出一种BP-DVFS策略和基于FPU-CPU的CPU利用率预测模型,提取与处理器运行相关的5个相关事件指令执行、访存、硬件中断、上下文切换、分支预测错误,度量相关事件的值为IPC、访存次数、硬件中断次数、上下文切换次数、分支预测错误次数。采用BP神经网络进行拟合,提高了预测CPU利用率的准确度,优化了传统DVFS方法,降低了CPU运行能耗。

未来研究工作为:一是,对模型的拟合采用的是BP神经网络,虽然有效,但是该网络历史久远,随着技术的发展一定会有更好的方法;二是,对访存事件,可以考虑把访存次数分成访问高速缓存、访问内存等更微观情况。

参考文献
[1]
Weiser M,Welch B,Demers A,et al.Scheduling for reduced CPU energy[C]//Proceedings of the 1st USENIX Conference on Operating Systems Design and Implementation.Berkeley:USENIX Association,1994:Article No. 2.
[2]
Pering T,Burd T,Brodersen R.Voltage scheduling in the IpARM microprocessor system[C]//Proceedings of the 2000 International Symposium on Low Power Electronics and Design.Rapallo:IEEE,2000:96-101.
[3]
Pering T,Burd T,Brodersen R.The simulation and evaluation of dynamic voltage scaling algorithms[C]//Proceedings of the 1998 International Symposium on Low Power Electronics and Design.Monterey:IEEE,1998:76-81.
[4]
Dhodapkar A S, Smith J E. Managing multi-configurable hardware via dynamic working set analysis[J]. ACM SIGARCH Computer Architecture News, 2002, 30(2): 233-244. DOI:10.1145/545214
[5]
Grunwald D,Morrey C B Ⅲ,Levis P,et al.Policies for dynamic clock scheduling[C]//Proceedings of the 4th Conference on Symposium on Operating System Design & Implementation.Berkeley:USENIX Association,2000:Article No. 6.
[6]
Govil K,Chan E,Wasserman H.Comparing algorithm for dynamic speed-setting of a low-power CPU[C]//Proceedings of the 1st Annual International Conference on Mobile Computing and Networking.New York:ACM,1995:13–25.
[7]
Li Junke, Guo Bing, Shen Yan. A modeling approach for energy saving based on GA-BP neural network[J]. Journal of Electrical Engineering & Technology, 2016, 11(5): 1289-1298.
[8]
Choi K,Lee W,Soma R,et al.Dynamic voltage and frequency scaling under a precise energy model considering variable and fixed components of the system power dissipation[C]//Proceedings of the 2004 IEEE/ACM International Conference on Computer-Aided Design.San Jose:IEEE,2004:29-34.
[9]
Kim J, Yoo S, Kyung C M. Program phase-aware dynamic voltage scaling under variable computational workload and memory stall environment[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2011, 30(1): 110-123. DOI:10.1109/TCAD.2010.2068630
[10]
Rizvandi N B,Taheri J,Zomaya A Y,et al.Linear combinations of dvfs-enabled processor frequencies to modify the energy-aware scheduling algorithms[C]//Proceedings of the 10th IEEE/ACM International Conference on Cluster,Cloud and Grid Computing (CCGrid).Melbourne:IEEE,2010:388-397.
[11]
Kotla R,Ghiasi S,Keller T,et al.Scheduling processor voltage and frequency in server and cluster systems[C]//Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium.Denver:IEEE,2005:234.2.
[12]
Kim S G, Eom H S, Yeom H Y. Energy-centric DVFS controlling method for multi-core platforms[J]. Computing, 2014, 96(12): 1163-1177. DOI:10.1007/s00607-013-0369-2
[13]
Chen X,Xu C,Dick R P.Memory access aware on-line voltage control for performance and energy optimization[C]//Proceedings of the 2010 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).San Jose:IEEE,2010:365-372.
[14]
Liu Xiaobin, Guo Bing, Shen Yan. Research on algorithmic power consumption BP network model of embedded software[J]. Journal of University of Electronic Science and Technology of China (Natural Science Edition), 2011, 40(6): 921-926. [刘啸滨, 郭兵, 沈艳. 嵌入式软件算法级功耗BP网络模型研究[J]. 电子科技大学学报(自然科学版), 2011, 40(6): 921-926.]
[15]
Liu Xiaobin, Guo Bing, Shen Yan. Embedded software architecture-level energy consumption modeling method[J]. Journal of Software, 2012, 23(2): 230-239. [刘啸滨, 郭兵, 沈艳. 嵌入式软件体系结构级能耗建模方法[J]. 软件学报, 2012, 23(2): 230-239.]
[16]
Mudge T.Vertigo:Automatic performance-setting for Linux[C]//Proceedings of the 5th Symposium on Operating Systems Design and Implementation.Berkeley:USENIX Association,2002:105-116.
[17]
Pallipadi V,Starikovskiy A.The ondemand governor:Past,present and future[C].Ottawa Linux Symposium,Ottawa,2006:657-672.