CN104731740B - 终端中多核处理器热插拔控制方法和装置 - Google Patents
终端中多核处理器热插拔控制方法和装置 Download PDFInfo
- Publication number
- CN104731740B CN104731740B CN201310714780.1A CN201310714780A CN104731740B CN 104731740 B CN104731740 B CN 104731740B CN 201310714780 A CN201310714780 A CN 201310714780A CN 104731740 B CN104731740 B CN 104731740B
- Authority
- CN
- China
- Prior art keywords
- cpu
- chronomere
- load
- average loads
- divided
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Multi Processors (AREA)
Abstract
本发明涉及通信领域,公开了一种终端中多核处理器热插拔控制方法和装置,该终端具有多核处理器,该控制方法能够解决由于CPU热插或热拔所导致的CPU在线和CPU不在线时所引起的终端系统状态的抖动,使得终端系统状态保持平缓,同时能够提高对终端系统负载变化的及时响应性。该方法包括:使用负载跟踪算法计算CPU平均负载,所述CPU平均负载由时长T内CPU累积运行的负载与所述T衰减后的总时长相除得到,所述T为自CPU开启至当前时间的总时长;根据所述计算的CPU平均负载,判断CPU的插或拔。该方法用于控制多核处理器终端中处理器的插或拔。
Description
技术领域
本发明涉及通信领域,特别涉及一种终端中多核处理器热插拔控制方法和装置。
背景技术
随着科学技术日新月异的发展,出现了一些具有多核处理器的终端,处理器即CPU(Central Processing Unit,中央处理器),多核处理器的终端即终端中内置多个CPU,例如像多核处理器的手机、平板电脑等,多核处理器能够使得终端具有更快的处理能力,给使用多核处理器终端的用户带来愉悦的体验。
在设计多核处理器的终端时,除了考虑终端的性能之外,还需要考虑到多核处理器给终端所带来的额外消耗。为了降低多核处理器终端使用时的额外消耗,延长待机时间,提高用户体验,目前采用主流的CPU热插拔技术来解决这一问题。该技术的主要思想是在CPU平均负载变低时,将空闲的CPU拔出;在系统负载变高时,将已下电的核插入,以满足系统性能需要。因此,该方法中的关键点在于测量CPU的负载。具体的做法是:首先计算一段采样时间内CPU忙时间以及对应的CPU频率,得到采样周期内的CPU平均频率;然后,用CPU的平均频率除以CPU最大频率,就可以得到CPU的平均负载。
目前判断插或拔的方法,主要依靠历史统计数据,具体做法是统计过去一段时间或一定次数的CPU平均频率或CPU平均负载,如连续几次超过所设定的阈值,则热插或热拔;或如果历史数据中出现了超过阈值的高频或低频数据,则也热插或热拔。
但是,该CPU平均负载计算方法忽略掉了此次采样点之前的CPU行为,即假设了CPU是以空闲状态开始此次采样的,历史数据的统计和选择是有一定延迟的,不能及时对CPU的变化做出反应。此外,对此次采样周期内的时间采取了统一的权值,即假设过去一个采样周期内的所有时间的CPU行为对预测下一个周期内CPU行为是均衡的,但是实践证明距离当前时间越近的时间的CPU行为,对预测CPU行为的权重应该越大,反之越小。进一步的,外界事件或环境变化等也会引起CPU平均负载的波动,当前活动线程数会影响热插拔策略的决策,示例的,可能存在多线程已经准备好,但因处于在线状态的CPU数不够而没能及时得到调度的情况发生,从而最终影响热插拔策略的决策。因此,目前的CPU平均负载的测量方法及判断插或拔的方法是不准确的。
发明内容
本发明的目的在于提供一种终端中多核处理器热插拔控制方法和装置,能够解决由于CPU热插或热拔所导致的CPU在线和CPU不在线时所引起的终端系统状态的抖动,使得终端系统状态保持平缓,同时能够提高对终端系统负载变化的及时响应性。
为解决上述技术问题,本发明的实施方式提供了一种终端中多核处理器热插拔控制方法,包括:
使用负载跟踪算法计算CPU平均负载,所述CPU平均负载由时长T内CPU累积运行的负载与所述T衰减后的总时长相除得到,所述T为自CPU开启至当前时间的总时长;
根据所述计算的CPU平均负载,判断CPU的插或拔。
本发明的实施方式还提供一种终端中多核处理器热插拔控制装置,包括:
计算单元,用于使用负载跟踪算法计算CPU平均负载,所述CPU平均负载由时长T内CPU累积运行的负载与所述T衰减后的总时长相除得到,所述T为自CPU开启至当前时间的总时长;
第一判断单元,用于根据所述计算单元的计算的所述CPU平均负载,判断CPU的插或拔。
本发明实施方式相对于现有技术而言,根据负载跟踪算法计算CPU的负载,连续跟踪了从终端开启后到当前时间内的CPU平均负载,保证了CPU平均负载评估时的连续性和历史性,从而使得根据计算的CPU平均负载在判断CPU的插或拔时,能够解决由于CPU热插或热拔所导致的CPU在线和CPU不在线时所引起的终端系统状态的抖动,使得终端系统状态保持平缓,满足性能和消耗的平衡。
优选的,所述使用负载跟踪算法计算CPU平均负载包括:将所述T按照单位划分成时间单位,通过衰减算法得到每个所述时间单位内CPU的运行时间,为每个所述时间单位设置不同的权重,距离所述当前时间越近,所述权重越大;将所述每个所述时间单位内CPU的运行时间及其对应的权重相乘后做和,得到所述CPU累积运行的负载;将所述每个时间单位的时长及其对应的权重相乘后做和,得到所述T衰减后的总时长;将所述CPU累积运行的负载与所述T衰减后的总时长相除,得到所述CPU平均负载。
根据负载跟踪算法计算CPU的负载,连续跟踪了从终端开启后到当前时间内的CPU负载CPU平均负载,保证了CPU平均负载评估时的连续性和历史性,从而使得根据计算的CPU平均负载在判断CPU的插或拔时,能够解决由于CPU热插或热拔所导致的CPU在线和CPU不在线时所引起的终端系统状态的抖动,使得终端系统状态保持平缓。
优选的,当所述终端支持CPU的动态调频时,所述使用负载跟踪算法计算CPU平均负载还包括:将所述T按照单位划分成时间单位,通过衰减算法得到每个所述时间单位内CPU的运行时间,为每个所述时间单位设置不同的权重,距离所述当前时间越近,所述权重越大;将所述时间单位内CPU的运行时间及其对应的权重相乘后,再乘以对应的所述时间单位内CPU使用的频率,得到所述每个时间单位内CPU累积运行的负载分量,再将所述每个时间单位内CPU累积运行的负载分量求和,得到CPU累积运行的负载;将所述每个时间单位的时长及其对应的权重相乘后做和,得到所述T衰减后的总时长;利用所述CPU累积运行的负载除以所述T衰减后的总时长与fmax的乘积,得到所述CPU平均负载,所述fmax为所述T内CPU使用的频率中最大的频率。
将CPU的频率作为一个衡量因子加入到CPU平均负载的计算方法中,使得计算得到的CPU平均负载值更为准确。
优选的,周期性的检测负载变化率,所述负载变化率为当前周期的CPU平均负载与前一周期的CPU平均负载作差后除以检测周期P得到,所述CPU平均负载变化检测周期为P,所述P为所述时间单位的N倍,所述N为大于1的整数,所述CPU平均负载由所述P内计算的所述N个CPU平均负载的和与所述N个时间单位长度相除得到;判断所述负载变化率是否大于第一预设阈值;当所述负载变化率大于所述第一预设阈值时,将所述负载变化率与预设的负载变化因子的乘积及所述CPU平均负载的和作为最终的CPU平均负载。
由于具有CPU的系统是个时变系统,外界事件或环境变化会引起系统波动,在负载变化率大于第一预设阈值时,将负载变化率加入到CPU平均负载值的计算中,从而使得最终的热插拔判决方法能够根据负载的变化情况得出,更加符合CPU的负载特性,提高了终端系统的交互性和及时性,充分发挥出多核的优势。
优选的,还包括以下步骤:当当前活动线程数大于第二预设阈值时,设置CPU插入;当所述当前活动线程数与在线CPU数的差值大于第三预设阈值时,设置在线CPU数不变;在预设时间内,当所述当前活动线程数一直小于所述在线CPU数时,设置CPU拔出。
在判断是否“插/拔/保持”时,除了使用CPU平均负载此因子进行判断之外,使用当前活动线程数进行判断,能够提高系统对负载变化的及时响应性。
附图说明
图1是本发明第一实施方式的终端中多核处理器热插拔控制方法流程示意图;
图2是根据负载跟踪算法计算CPU平均负载的方法流程示意图;
图3是负载跟踪算法中按照时间单位划分时间轴的方法示意图;
图4是本发明第二实施方式中根据负载跟踪算法计算CPU平均负载的另一种方法流程示意图;
图5是本发明第三实施方式的终端中多核处理器热插拔控制方法流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
本发明第一实施方式提供一种终端中多核处理器热插拔控制方法,如图1所示,该方法包括以下步骤:
步骤101、使用负载跟踪算法计算CPU平均负载。
CPU平均负载由时长T内终端中多个CPU累积运行的负载与所述T衰减后的总时长相除得到,T为自CPU开启至当前时间的总时长。一般情况下,终端开启的瞬间,所有的CPU都开启,同时终端也会启动多核处理器的热插拔控制机制,当终端系统中计算的CPU平均负载大于或等于第一预设阈值时,设置CPU的插入,当计算的CPU平均负载小于第一预设阈值时,设置CPU的拔出。需要说明的是,本发明中的插入可以理解为CPU退出低功耗状态,拔出可以理解为CPU进入低功耗状态。
本发明使用负载跟踪算法来计算CPU平均负载,该算法是在时长T内连续跟踪多个CPU的负载,这样的计算方法可以保证评估CPU平均负载时的连续性和历史性。负载跟踪算法的基本思想是将CPU历史运行时间表示为一个几何级数的系数,并确保此级数是收敛的;通过级数和得到累加的运行时间,将此累加值除以总时间,即可得到CPU平均负载。具体的,如图2所示,步骤101包括子步骤1011、1012及1013。
子步骤1011、将T按照单位划分成时间单位,通过衰减算法得到每个时间单位内CPU的运行时间,为每个时间单位设置不同的权重,距离当前时间越近,权重越大。
该算法的基本思想可以通过图3来表示。如图3所示,横轴表示时间轴,横轴的原点表示当前时间,由当前时间开始,将时间轴以近1毫秒即1024微秒分段,用p_M表示已经过去的第M个时间段,M为大于1的整数,p_0可以表示当前时间段。CPU累计运行的负载可以表示为:u_0+(u_1*y)+(u_2*y^2)+(u_3*y^3)+...+(u_i*y^i)。使用u_i表示每个时间单位代表的时间段i中CPU的运行时长,该值是通过衰减算法得到的,该衰减算法为现有的成熟技术,本发明对此不作赘述。示例的,u_0表示距离当前时间最近的时间单位中CPU的运行时长,并将之作为级数y的系数,y的i次幂组成每个时间单位的权重,i为y的指数,i的取值为由0开始非负整数,距离当前时间越久,i的取值越大。y为一个常数,在实际工程应用中,根据经验值y可以为0.5,当然,y也可以为其他的值,本发明对此不作限制。此外,考虑到合理的调度周期,取y^32=0.5,即大概32ms之前(u_32)对CPU平均负载的贡献只有u_0的1/2,从而实现了负载在时间轴上的不均匀性。
子步骤1012、将时间单位内CPU的运行时间及其对应的权重相乘后做和,得到CPU累积运行的负载。
具体可以参照子步骤1011的描述,本发明在此不做赘述。
可以使用load_sum(n)表示已逝的n个时间单位的CPU累积运行的负载。特别的,已逝的n个时间单位的时间长度和等于T。
子步骤1013、将每个时间单位的时长及其对应的权重相乘后做和,得到T衰减后的总时长。
CPU累积运行的负载值是根据衰减算法计算得到的,因此,为了计算CPU平均负载,就需要对T进行衰减计算,具体计算方法如下:
由于每个时间单位的时长都是等长的,因此,可以将每个时间单位都用t_0来表示,则T衰减后的总时长T′可以表示为:T′=t_0+(t_0*y)+(t_0*y^2)+(t_0*y^3)+...+(t_0*y^i)
子步骤1014、将CPU累积运行的负载与T衰减后的总时长相除,得到CPU平均负载。
可以使用total_sum(n)表示已逝的n个时间单位T衰减后的总时长;使用load_avg(n)表示已逝的n个时间单位的CPU平均负载。因此,已逝的n个时间单位的CPU平均负载就可以用如下的公式表示:
load_avg(n)=load_sum(n)/total_sum(n)
步骤102、根据计算的CPU平均负载,判断CPU的插或拔。
具体的,当计算的CPU平均负载大于或等于预设的CPU平均负载阈值时,就可以选择一个不在线的CPU将其插入;当计算的CPU平均负载小于预设的CPU平均负载阈值时,就可以选择一个在线的CPU将其拔出。
本发明实施方式可以适用于基于Linux的多核处理器产品,使用该多核处理器控制方法可以使基于Linux的多核处理器产品达到性能和功耗的平衡。
本发明实施方式相对于现有技术而言,根据负载跟踪算法计算CPU的负载,连续跟踪了从终端开启后到当前时间内的CPU平均负载,保证了CPU平均负载评估时的连续性和历史性,从而使得根据计算的CPU平均负载在判断CPU的插或拔时,能够解决由于CPU热插或热拔所导致的CPU在线和CPU不在线时所引起的终端系统状态的抖动,使得终端系统状态保持平缓,满足性能和消耗的平衡。
本发明的第二实施方式涉及一种终端中多核处理器热插拔控制方法。第二实施方式在第一实施方式基础上做了进一步改进,如图4所示,主要改进之处在于:本发明第二实施方式中,包括步骤401和步骤402,步骤401和步骤402分别和第一实施方式中的步骤101和步骤102相同,本发明在此不再赘述。由于现代终端平台多支持CPU的动态调频,不能单纯的以CPU累积运行的负载来衡量CPU的忙闲,还需将CPU的频率作为衡量因子。所以在统计CPU累积运行的负载时,将CPU当前使用频率也作为系数相乘,以时间和频率来评估CPU的实际行为。当终端支持CPU的动态调频时,步骤401包括子步骤4011、4012、4013及4014。
子步骤4011、将T按照单位划分成时间单位,通过衰减算法得到每个时间单位内CPU的运行时间,为每个时间单位设置不同的权重,距离当前时间越近,权重越大。
子步骤4011与第一实施方式中子步骤1011相同,其具体实施方法可以参考第一实施方式中子步骤1011的相关描述,本发明在此不作赘述。
子步骤4012、将时间单位内CPU的运行时间及其对应的权重相乘后,再乘以对应的时间单位内CPU使用的频率,得到每个时间单位内CPU累积运行的负载分量,再将每个时间单位内CPU累积运行的负载分量求和,得到CPU累积运行的负载。
具体地说,在子步骤4012及子步骤4013中,CPU累积运行的负载可以表示为(u_0*f0)+(u_1*y*f1)+(u_2*y^2*f2)+(u_3*y^3*f3)+...+(u_i*y^i*fi)。其中f0、f1、f2、f3、fi分别为当前时间单位、已逝的第1个时间单位、已逝的第2个时间单位、已逝的第3个时间单位及已逝的第i个时间单位内CPU使用的频率。
子步骤4013、将每个时间单位的时长及其对应的权重相乘后做和,得到T衰减后的总时长。
与子步骤1013相同,即T衰减后的总时长可以表示为:T′=t_0+(t_0*y)+(t_0*y^2)+(t_0*y^3)+...+(t_0*y^i)。
子步骤4014、利用CPU累积运行的负载除以T衰减后的总时长与fmax的乘积,得到CPU平均负载,fmax为T内CPU使用的频率中最大的频率。
假设f3为时间T内CPU使用的频率中最大的频率,可以将f3表示为fmax,则CPU平均负载可以表示为:CPU累积运行的负载除以(fmax*T′)。
将CPU的频率作为一个衡量因子加入到CPU平均负载的计算方法中,使得计算得到的CPU平均负载值更为准确。
本发明的第三实施方式涉及一种终端中多核处理器热插拔控制方法。第三实施方式在第一实施方式基础上做了进一步改进,如图5所示,主要改进之处在于:本发明第三实施方式中,包括步骤501、步骤502、步骤503、步骤504、步骤505及步骤506,其中步骤501及步骤506分别与步骤101及步骤102相同。
步骤502包括:周期性的检测负载变化率。
负载变化率为当前周期的CPU平均负载与前一周期的CPU平均负载作差后除以检测周期P得到,CPU平均负载变化检测周期为P,P为时间单位的N倍,N为大于1的整数,CPU平均负载由P内计算的N个CPU平均负载的和与N个时间单位长度相除得到。
示例的,若时间单位取值为1ms,则可以将检测负载变化率的周期设定为10ms,即每隔10ms对就近的10个时间单位内求得的CPU平均负载进行相加,再将CPU平均负载除以10个时间单位时长10ms,得到每个周期的CPU平均负载。负载变化率为当前周期的CPU平均负载与前一周期的CPU平均负载作差后除以检测周期P得到,若当前周期的CPU平均负载为L(i),则前一周期的CPU平均负载可以表示为L(i+1),则负载变化率lr可以表示为lr=[L(i)-L(i+1)]/10。
步骤503包括:判断负载变化率是否大于第一预设阈值。
当负载变化率大于第一预设阈值时,执行步骤504。
判断lr是否大于第一预设阈值,可以设定lr为L(i)/16,在实际工程应用中,也可以根据实际需要进行调整,本发明对此不作限制。
步骤504、将负载变化率与预设的负载变化因子的乘积及CPU平均负载的和作为最终的CPU平均负载。
负载变化因子可以为1/8。
当负载变化率小于或等于第一预设阈值时,执行步骤505。
步骤505、保持CPU平均负载不变。
由于具有CPU的系统是个时变系统,外界事件或环境变化会引起系统波动,在负载变化率大于第一预设阈值时,将负载变化率加入到CPU平均负载值的计算中,从而使得最终的热插拔判决方法能够根据负载的变化情况得出,更加符合CPU的负载特性,提高了终端系统的交互性和及时性,充分发挥出多核的优势。
本发明的第四实施方式涉及一种终端中多核处理器热插拔控制方法。第四实施方式在第一实施方式基础上做了进一步改进,主要改进之处在于:本发明第四实施方式中,根据当前活动线程数判断CPU的插或拔,具体方法为:当当前活动线程数大于第三预设阈值时,设置CPU插入;当当前活动线程数与在线CPU数的差值大于第四预设阈值时,设置在线CPU数不变;在预设时间内,当当前活动线程数一直小于在线CPU数时,设置CPU拔出。
具体地,当有多个线程处于运行状态时,应尽可能让CPU在线,充分发挥多核的优势;当运行态线程数多于在线CPU数时,应尽量避免拔出CPU;当一段时间内运行态线程数一直小于在线CPU数时,即使此时平均负载比较高,也可以考虑将CPU拔出,因为没有多余的线程可被调度到空闲的CPU;为了避免抖动,在运行态线程数与在线态CPU数在比较时可以留有余量,余量的大小可以根据处理器核数确定。
第三预设阈值、第四预设阈值及预设时间的阈值可以根据实际的工程需要进行取值,本发明对此不作限制。
在判断是否“插或拔或保持”时,除了使用CPU平均负载此因子进行判断之外,使用当前活动线程数进行判断,能够为了提高系统对负载变化的及时响应性。
本发明的第五实施方式涉及一种终端中多核处理器热插拔控制装置,包括计算单元和第一判断单元,其中,计算单元用于使用负载跟踪算法计算CPU平均负载,CPU平均负载由时长T内CPU累积运行的负载与T衰减后的总时长相除得到,T为自CPU开启至当前时间的总时长;第一判断单元用于根据计算单元的计算的CPU平均负载,判断CPU的插或拔。
进一步的,计算单元包括以下子单元:
第一处理子单元,用于将T按照单位划分成时间单位,通过衰减算法得到每个时间单位内CPU的运行时间,为每个时间单位设置不同的权重,距离当前时间越近,权重越大。
第一求和子单元,用于将第一处理子单元划分得到的每个时间单位内CPU的运行时间及其对应的权重相乘后做和,得到CPU累积运行的负载。
第二求和子单元,用于将每个时间单位的时长及其对应的权重相乘后做和,得到T衰减后的总时长。
第一获取子单元,用于将第一求和子单元得到的CPU累积运行的负载与T衰减后的总时长相除,得到CPU平均负载。
本发明实施方式相对于现有技术而言,计算单元根据负载跟踪算法计算CPU的负载,连续跟踪了从终端开启后到当前时间内的CPU平均负载,保证了CPU平均负载评估时的连续性和历史性,从而使得第一判断单元根据计算单元计算的CPU平均负载在判断CPU的插或拔时,能够解决由于CPU热插或热拔所导致的CPU在线和CPU不在线时所引起的终端系统状态的抖动,使得终端系统状态保持平缓,满足性能和消耗的平衡。
本发明的第六实施方式涉及一种终端中多核处理器热插拔控制装置,第六实施方式在第五实施方式基础上做了进一步改进,主要改进之处在于:当终端支持CPU的动态调频时,计算单元包括以下子单元:
第二处理子单元,用于将T按照单位划分成时间单位,通过衰减算法得到每个时间单位内CPU的运行时间,为每个时间单位设置不同的权重,距离当前时间越近,权重越大。
第三求和子单元,用于将第二处理子单元划分得到的时间单位内CPU的运行时间及其对应的权重相乘后,再乘以对应的时间单位内CPU使用的频率,得到每个时间单位内CPU累积运行的负载分量,再将每个时间单位内CPU累积运行的负载分量求和,得到CPU累积运行的负载。
第四求和子单元,用于将每个时间单位的时长及其对应的权重相乘后做和,得到T衰减后的总时长。
第二获取子单元,用于利用CPU累积运行的负载除以T衰减后的总时长与fmax的乘积,得到CPU平均负载,fmax为T内CPU使用的频率中最大的频率。
将CPU的频率作为一个衡量因子加入到CPU平均负载的计算方法中,使得计算得到的CPU平均负载值更为准确。
本发明的第七实施方式涉及一种终端中多核处理器热插拔控制装置,第七实施方式在第五实施方式基础上做了进一步改进,主要改进之处在于:除计算单元和第一判断单元之外,该装置还包括:
检测单元,用于周期性的检测负载变化率,负载变化率为当前周期的CPU平均负载与前一周期的CPU平均负载作差后除以检测周期P得到,CPU平均负载变化检测周期为P,P为时间单位的N倍,N为大于1的整数,CPU平均负载由P内计算的N个CPU平均负载的和与N个时间单位长度相除得到。
第二判断单元,用于判断负载变化率是否大于第一预设阈值。
求和单元,用于当负载变化率大于第一预设阈值时,将负载变化率与预设的负载变化因子的乘积及CPU平均负载的和作为最终的CPU平均负载。
由于具有CPU的系统是个时变系统,外界事件或环境变化会引起系统波动,因此,通过第二判断单元判断检测单元检测到的负载变化率是否大于第一预设阈值,在负载变化率大于第一预设阈值时,将负载变化率加入到CPU平均负载值的计算中,从而能够体现出最终的热插拔判决方法是根据负载的变化情况得出的,更加符合CPU的负载特性,提高了终端系统的交互性和及时性,充分发挥出多核的优势。
本发明的第八实施方式涉及一种终端中多核处理器热插拔控制装置,第八实施方式在第五实施方式基础上做了进一步改进,主要改进之处在于:除计算单元和第一判断单元之外,该装置还包括:
第一设置单元,用于当当前活动线程数大于第二预设阈值时,设置CPU插入。
第二设置单元,用于当当前活动线程数与在线CPU数的差值大于第三预设阈值时,设置在线CPU数不变。
第三设置单元,用于在预设时间内,当当前活动线程数一直小于在线CPU数时,设置CPU拔出。
在判断是否“插/拔/保持”时,该装置除了使用CPU平均负载此因子进行判断之外,加入第一设置单元、第二设置单元及第三设置单元,使用当前活动线程数进行判断,能够提高系统对负载变化的及时响应性。
值得一提的是,关于装置的实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。各个物理单元的工作原理可以参考方法实施例中的叙述,本发明在此不再赘述。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (6)
1.一种终端中多核处理器热插拔控制方法,所述终端具有多核处理器,其特征在于,包括:
使用负载跟踪算法计算CPU平均负载,所述CPU平均负载由时长T内CPU累积运行的负载与所述T衰减后的总时长相除得到,所述T为自CPU开启至当前时间的总时长;
根据所述计算的CPU平均负载,判断CPU的插或拔;
其中,所述使用负载跟踪算法计算CPU平均负载包括:
将所述T按照单位划分成时间单位,通过衰减算法得到每个所述时间单位内CPU的运行时间,为每个所述时间单位设置不同的权重,距离所述当前时间越近,所述权重越大;
将每个所述时间单位内CPU的运行时间及其对应的权重相乘后做和,得到所述CPU累积运行的负载;
将所述每个时间单位的时长及其对应的权重相乘后做和,得到所述T衰减后的总时长;
将所述CPU累积运行的负载与所述T衰减后的总时长相除,得到所述CPU平均负载;
或者,当所述终端支持CPU的动态调频时,所述使用负载跟踪算法计算CPU平均负载还包括:
将所述T按照单位划分成时间单位,通过衰减算法得到每个所述时间单位内CPU的运行时间,为每个所述时间单位设置不同的权重,距离所述当前时间越近,所述权重越大;
将所述每个时间单位内CPU的运行时间及其对应的权重相乘后,再乘以对应的所述时间单位内CPU使用的频率,得到所述每个时间单位内CPU累积运行的负载分量,再将所述每个时间单位内CPU累积运行的负载分量求和,得到所述CPU累积运行的负载;
将所述每个时间单位的时长及其对应的权重相乘后做和,得到所述T衰减后的总时长;
利用所述CPU累积运行的负载除以所述T衰减后的总时长与fmax的乘积,得到所述CPU平均负载,所述fmax为所述T内CPU使用的频率中最大的频率。
2.根据权利要求1所述的终端中多核处理器热插拔控制方法,其特征在于,所述方法还包括:
周期性的检测负载变化率,所述负载变化率为当前周期的CPU平均负载与前一周期的CPU平均负载作差后除以检测周期P得到,所述CPU平均负载变化检测周期为P,所述P为所述时间单位的N倍,所述N为大于1的整数,所述CPU平均负载由所述P内计算的所述N个CPU平均负载的和与所述N个时间单位长度相除得到;
判断所述负载变化率是否大于第一预设阈值;
当所述负载变化率大于所述第一预设阈值时,将所述负载变化率与预设的负载变化因子的乘积及所述CPU平均负载的和作为最终的CPU平均负载。
3.根据权利要求1所述的终端中多核处理器热插拔控制方法,其特征在于,还包括以下步骤:
当当前活动线程数大于第二预设阈值时,设置CPU插入;
当所述当前活动线程数与在线CPU数的差值大于第三预设阈值时,设置在线CPU数不变;
在预设时间内,当所述当前活动线程数一直小于所述在线CPU数时,设置CPU拔出。
4.一种终端中多核处理器热插拔控制装置,其特征在于,包括:
计算单元,用于使用负载跟踪算法计算CPU平均负载,所述CPU平均负载由时长T内CPU累积运行的负载与所述T衰减后的总时长相除得到,所述T为自CPU开启至当前时间的总时长;
第一判断单元,用于根据所述计算单元计算的所述CPU平均负载,判断CPU的插或拔;
其中,所述计算单元包括以下子单元:
第一处理子单元,用于将所述T按照单位划分成时间单位,通过衰减算法得到每个所述时间单位内CPU的运行时间,为每个所述时间单位设置不同的权重,距离所述当前时间越近,所述权重越大;
第一求和子单元,用于将所述第一处理子单元划分得到的所述每个所述时间单位内CPU的运行时间及其对应的权重相乘后做和,得到所述CPU累积运行的负载;
第二求和子单元,用于将所述每个时间单位的时长及其对应的权重相乘后做和,得到所述T衰减后的总时长;
第一获取子单元,用于将所述第一求和子单元得到的所述CPU累积运行的负载与所述T衰减后的总时长相除,得到所述CPU平均负载;
或者,当所述终端支持CPU的动态调频时,所述计算单元还包括以下子单元:
第二处理子单元,用于将所述T按照单位划分成时间单位,通过衰减算法得到每个所述时间单位内CPU的运行时间,为每个所述时间单位设置不同的权重,距离所述当前时间越近,所述权重越大;
第三求和子单元,用于将所述第二处理子单元划分得到的所述时间单位内CPU的运行时间及其对应的权重相乘后,再乘以对应的所述时间单位内CPU使用的频率,得到所述每个时间单位内CPU累积运行的负载分量,再将所述每个时间单位内CPU累积运行的负载分量求和,得到所述CPU累积运行的负载;
第四求和子单元,用于将所述每个时间单位的时长及其对应的权重相乘后做和,得到所述T衰减后的总时长;
第二获取子单元,用于利用所述CPU累积运行的负载除以所述T衰减后的总时长与fmax的乘积,得到所述CPU平均负载,所述fmax为所述T内CPU使用的频率中最大的频率。
5.根据权利要求4所述的终端中多核处理器热插拔控制装置,其特征在于,所述装置还包括:
检测单元,用于周期性的检测负载变化率,所述负载变化率为当前周期的CPU平均负载与前一周期的CPU平均负载作差后除以检测周期P得到,所述CPU平均负载变化检测周期为P,所述P为所述时间单位的N倍,所述N为大于1的整数,所述CPU平均负载由所述P内计算的所述N个CPU平均负载的和与所述N个时间单位长度相除得到;
第二判断单元,用于判断所述负载变化率是否大于第一预设阈值;
求和单元,用于当所述负载变化率大于所述第一预设阈值时,将所述负载变化率与预设的负载变化因子的乘积及所述CPU平均负载的和作为最终的CPU平均负载。
6.根据权利要求4所述的终端中多核处理器热插拔控制装置,其特征在于,还包括以下单元:
第一设置单元,用于当当前活动线程数大于第二预设阈值时,设置CPU插入;
第二设置单元,用于当所述当前活动线程数与在线CPU数的差值大于第三预设阈值时,设置在线CPU数不变;
第三设置单元,用于在预设时间内,当所述当前活动线程数一直小于所述在线CPU数时,设置CPU拔出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310714780.1A CN104731740B (zh) | 2013-12-23 | 2013-12-23 | 终端中多核处理器热插拔控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310714780.1A CN104731740B (zh) | 2013-12-23 | 2013-12-23 | 终端中多核处理器热插拔控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104731740A CN104731740A (zh) | 2015-06-24 |
CN104731740B true CN104731740B (zh) | 2017-11-10 |
Family
ID=53455645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310714780.1A Active CN104731740B (zh) | 2013-12-23 | 2013-12-23 | 终端中多核处理器热插拔控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104731740B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045668A (zh) | 2015-07-28 | 2015-11-11 | 深圳市万普拉斯科技有限公司 | 运算资源的散热控制方法和运算控制系统 |
CN106407143B (zh) * | 2015-07-29 | 2020-07-31 | 南京中兴新软件有限责任公司 | 控制移动终端中cpu的热插拔操作的方法和装置 |
CN105302277A (zh) * | 2015-10-19 | 2016-02-03 | 浪潮(北京)电子信息产业有限公司 | 一种服务器物理配置更新方法和系统 |
CN105426248A (zh) * | 2015-11-11 | 2016-03-23 | 浪潮集团有限公司 | 一种自动热拔的方法及装置 |
CN105867896A (zh) * | 2015-11-24 | 2016-08-17 | 乐视移动智能信息技术(北京)有限公司 | 一种智能终端加快开机速度的方法及系统 |
CN105892615A (zh) * | 2015-12-22 | 2016-08-24 | 乐视移动智能信息技术(北京)有限公司 | 一种处理器负载收集方法及装置 |
CN107729218A (zh) * | 2017-11-10 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种监控处理计算资源设备的系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1979423A (zh) * | 2005-11-30 | 2007-06-13 | 迈普(四川)通信技术有限公司 | 多处理器负载分配调整方法 |
CN102520782A (zh) * | 2011-12-15 | 2012-06-27 | 江苏中科梦兰电子科技有限公司 | 基于处理器核数自动调节的电源管理方法 |
CN102566739A (zh) * | 2012-01-06 | 2012-07-11 | 威盛电子股份有限公司 | 多核处理器系统及其动态电源管理方法与控制装置 |
CN102693160A (zh) * | 2012-05-15 | 2012-09-26 | 浪潮电子信息产业股份有限公司 | 一种计算机系统动态资源重配置的方法 |
CN103415824A (zh) * | 2012-08-30 | 2013-11-27 | 华为终端有限公司 | 一种控制中央处理器的方法和装置 |
-
2013
- 2013-12-23 CN CN201310714780.1A patent/CN104731740B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1979423A (zh) * | 2005-11-30 | 2007-06-13 | 迈普(四川)通信技术有限公司 | 多处理器负载分配调整方法 |
CN102520782A (zh) * | 2011-12-15 | 2012-06-27 | 江苏中科梦兰电子科技有限公司 | 基于处理器核数自动调节的电源管理方法 |
CN102566739A (zh) * | 2012-01-06 | 2012-07-11 | 威盛电子股份有限公司 | 多核处理器系统及其动态电源管理方法与控制装置 |
CN102693160A (zh) * | 2012-05-15 | 2012-09-26 | 浪潮电子信息产业股份有限公司 | 一种计算机系统动态资源重配置的方法 |
CN103415824A (zh) * | 2012-08-30 | 2013-11-27 | 华为终端有限公司 | 一种控制中央处理器的方法和装置 |
Non-Patent Citations (1)
Title |
---|
一种基于CPU负载平均的负载均衡算法;何龙等;《计算机与数学工程》;20120820;第22页右列倒数第二段至23页左列最后一段 * |
Also Published As
Publication number | Publication date |
---|---|
CN104731740A (zh) | 2015-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104731740B (zh) | 终端中多核处理器热插拔控制方法和装置 | |
US7930574B2 (en) | Thread migration to improve power efficiency in a parallel processing environment | |
KR101812583B1 (ko) | 태스크 할당 장치, 태스크 할당 방법 및 컴퓨터로 읽을 수 있는 저장 매체 | |
US8806491B2 (en) | Thread migration to improve power efficiency in a parallel processing environment | |
CN109992866A (zh) | 负荷预测模型的训练方法、装置、可读介质及电子设备 | |
CN105740275B (zh) | 地图显示方法及装置 | |
Liu et al. | Equilibrium threshold strategies in observable queueing systems under single vacation policy | |
CN104516475A (zh) | 用于管理多核片上系统上的全局芯片功率的方法和装置 | |
CN107656813A (zh) | 一种负载调度的方法、装置及终端 | |
CN104182278B (zh) | 一种判定计算机硬件资源繁忙程度的方法和装置 | |
CN110795238B (zh) | 负载计算方法、装置、存储介质及电子设备 | |
CN106802708A (zh) | 可穿戴设备的控制方法和装置 | |
CN104898819B (zh) | 分组处理装置 | |
CN110222871A (zh) | 用于电力负荷预测的相似日的选择方法及装置 | |
WO2021012510A1 (zh) | Cpu使用率自适应调整方法、装置、终端及存储介质 | |
CN109255000A (zh) | 一种标签数据的维度管理方法及装置 | |
CN108920265A (zh) | 一种基于服务器集群的任务执行方法及服务器 | |
CN109656789A (zh) | Io性能检测方法及系统 | |
CN105045667A (zh) | 一种用于虚拟机vCPU调度的资源池管理方法 | |
CN107589993A (zh) | 一种基于linux实时操作系统的动态优先级调度算法 | |
JP5708265B2 (ja) | 情報処理装置、バッテリ残量予測方法、及びバッテリ残量予測プログラム | |
CN112882819B (zh) | 芯片工作频率的设置方法和装置 | |
CN106095290B (zh) | 传感器调用函数的关闭方法及装置 | |
CN110399087A (zh) | 屏幕触控的控制方法、终端设备及计算机可读存储介质 | |
CN110533182A (zh) | 一种数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20150624 Assignee: Shanghai Li Ke Semiconductor Technology Co., Ltd. Assignor: Leadcore Technology Co., Ltd. Contract record no.: 2018990000159 Denomination of invention: Hot-swap control method and hot-swap control device for multi-core central processing units in terminals Granted publication date: 20171110 License type: Common License Record date: 20180615 |
|
EE01 | Entry into force of recordation of patent licensing contract |