一种多核cpu的电源管理方法、系统及cpu的制作方法

文档序号:6431803阅读:136来源:国知局
专利名称:一种多核cpu的电源管理方法、系统及cpu的制作方法
技术领域
本发明属于计算机 技术领域,尤其涉及一种多核CPU的电源管理方法、系统及CPU。
背景技术
目前,多核CPU(包括多个内核的CPU)的应用越来越广泛,很多设备中都使用多核CPU来进行业务处理,提高处理速度,然而,多核CPU在带来业务处理性能提升的同时,也带来了较大的功耗,随着信息技术领域的节能环保问题越来越受到关注,多核CPU设备的功耗管理也变得越来越重要。由于大多数多核CPU支持多种工作模式,单个核可以进入休眠模式,在空闲时段可以通过休眠一些核来达到降低功耗的作用,现有技术利用该特性,通过监控CPU占用率来调整多核的功耗,若处于运行状态的核(运行核)的占用率小于预设的阈值就休眠一些核。如果运行核的占用率大于预设的阈值就唤醒一些休眠的核。然而,CPU占用率是一段时间内的平均值,不是瞬时状态,不能及时反映任务突发,从而导致在任务突发时,任务处理不及时或被丢弃,使得用户提交的业务执行被中断。

发明内容
本发明实施例的目的在于提供一种多核CPU的电源管理方法,旨在解决由于现有技术无法提供一种有效的多核CPU电源管理方法,导致在多核CPU任务突发时,任务处理不及时或被丢弃,使得用户提交的业务执行被中断的问题。本发明实施例是这样实现的,一种多核CPU的电源管理方法,所述方法包括下述步骤当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,所述内核组中内核的数量至少大于I ;根据所述待处理任务的数量计算在所述时间周期内完成所述待处理任务所需内核数量,所需内核数量少于所述内核组中休眠的内核数量;当所需内核数量大于第一预设值时,从所述内核组中唤醒数量为所需内核数量的内核;当所需内核数量不大于第二预设值时,根据所需内核数量以及所述内核组中处于运行状态的内核的数量,休眠所述内核组中数量为第三预设值的内核。本发明实施例的另一目的在于提供一种多核CPU的电源管理装置,所述装置包括任务数量获取单元,用于当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,所述内核组中内核的数量至少大于I ;内核数量计算单元,用于根据待处理任务的数量计算在所述时间周期内完成所述待处理任务所需内核数量,所需内核数量少于所述内核组中休眠的内核数量;
内核唤醒单元,用于当所需内核数量大于第一预设值时,从所述内核组中唤醒数量为所需内核数量的内核;以及内核休眠单元,用于当所需内核数量不大于第二预设值时,根据所需内核数量以及所述内核组中处于运行状态的内核的数量,休眠所述内核组中数量为第三预设值的内核。本发明实施例的另一目的在于提供一种包括上述多核CPU的电源管理装置的CPU。本发明实施例在当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,计算在时间周期内完成待处理任务所需内核数量,当所需内核数量大于第一预设值时,从内核组中唤醒数量为所需内核数量的内核,当所需内核数量不大于第二预设值时,根据所需内核数量以及内核组中处于运行状态的内核的数量, 休眠内核组中数量为第三预设值的内核,实现了根据多核CPU内核组中待处理任务数量动态调整内核的状态(休眠和运行),以及多核CPU电源功耗的有效管理,从而在降低电源功耗的同时,及时地处理递交的任务。


图I是本发明第一实施例提供的多核CPU的电源管理方法的实现流程图;图2是本发明第二实施例提供的多核CPU的电源管理方法的实现流程图;图3是本发明第三实施例提供的多核CPU的电源管理装置的结构图;图4是本发明第四实施例提供的多核CPU的电源管理装置的结构图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例通过获取多核CPU中预设内核组待处理任务的数量计算完成待处理任务所需内核数量,根据所所需内核数量进行内核组中内核的动态休眠和唤醒,实现了根据多核CPU内核组中待处理任务数量动态调整内核的状态(休眠和运行),以及多核CPU电源功耗的有效管理,从而在降低电源功耗的同时,及时地处理递交的任务。以下结合具体实施例对本发明的具体实现进行详细描述实施例一:图I示出了本发明第一实施例提供的多核CPU的电源管理方法的实现流程,详述如下在步骤SlOl中,当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,该内核组中内核的数量至少大于I。在本发明实施例中,可以根据多核CPU中内核的功能不同预先对多核CPU中的内核进行逻辑上的划分,例如,用于完成业务对应的任务的业务平面,以及用于控制和管理多核CPU中内核的控制平面,其中业务平面包括一个或多个逻辑上的业务组(内核组),控制平面可以部署在一个内核上,也可以部署在多个内核上,通过对业务平面内核组中内核的负载状态的监测,控制平面可实现对业务平面的内核组中内核的电源管理,实现内核的休眠和唤醒。在本发明实施例中,预先为内核组分配用于缓存待处理任务的缓存空间,其中内核组中内核的数量至少大于1,当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,具体地,预设的时间周期可以根据多核CPU的工作频率、多核CPU设备的应用环境(例如实时性要求)等一个或多个因素来进行时间周期的设置。在步骤S102中,根据待处理任务的数量计算在时间周期内完成待处理任务所需内核数量,所需内核数量少于内核组中休眠的内核数量。在本发明实施例中,获取到多核CPU中预设内核组待处理任务的数量后,计算在
时间周期内完成待处理任务所需内核数量M,其中M =纟,C为内核组待处理任务的数
S*T·
量,S为内核组中内核的任务处理速度,T为预设的时间周期。所需内核数量应少于内核组中已休眠的内核数量,从而保证有足够多的内核用来处理缓存的任务,保证待处理任务能够得到及时地处理。在步骤S103中,当所需内核数量大于第一预设值时,从内核组中唤醒数量为所需内核数量的内核。在本发明实施例中,内核的状态有休眠状态、运行状态或其它状态,当所需内核数量大于第一预设值时,根据内核组中处于运行状态的内核的数量,唤醒内核组中数量为所需内核数量的内核。在具体实施过程中,第一预设值的大小可以根据多核CPU运行环境或实验数据进行设置。在步骤S104中,当所需内核数量不大于第二预设值时,根据所需内核数量以及内核组中处于运行状态的内核的数量,休眠内核组中数量为第三预设值的内核。在本发明实施例中,第一预设值、第二预设值和第三预设值可以根据多核CPU的工作频率、多核CPU设备的应用环境(例如实时性要求)等一个或多个因素来进行设置。较优地,第一预设值,第二预设值和第三预设值为1,从而当所需内核数量大于I时,及时地从内核组中唤醒内核进行任务处理,当所需内核数量不大于I时,为了防止所有内核被休眠,应根据所需内核数量以及内核组中处于运行状态的内核的数量,休眠内核组中的一个内核,实现在降低能量消耗的前提下逐步地休眠内核,保证待处理任务能够得到及时的处理,并保证处于运行状态的内核的数量至少为I。在本发明实施例中,采用内核组的待处理任务的数量来表征多核CPU的负载状况,在达到预设的时间周期时获取多核CPU中预设内核组待处理任务的数量,进而计算在时间周期内完成待处理任务所需内核数量,当所需内核数量大于预设值时,唤醒内核组中数量为所需内核数量的处于休眠状态的内核,当所需内核的数量不大于预设值时,根据内核组中处于运行状态的内核的数量,休眠内核组中预设数量的处于运行状态的内核,从而保证CPU功耗降低的同时,防止任务被丢弃。实施例二 :在本发明实施例中,为整个内核组预先构建一个任务队列,用于缓存待处理任务,从而方便待处理任务数量的获取。图2示出了本发明第二实施例提供的多核CPU的电源管理方法的实现流程,详述如下在步骤S201中,向多核CPU中预设内核组分配预设长度的任务队列。在本发明实施例中,向多核CPU中预设内核组分配预设长度的任务队列,该任务队列用于缓存多核CPU中预设内核组待处理任务。可以为整个内核组分配一个任务队列,从而方便待处理任务的数量的获取,任务队列的长度可以根据内核在预设的时间周期内可完成的任务数量以及系统可用资源来确定,较优地,由于任务队列也是任务突发的缓存池,以此来保证在只有一个内核或少数内核处于运行状态时遇到突发任务时可以先缓存在任务队列中,而不会丢弃任务,因此将任务队列的长度设置为L,其中L= (N-1)*S*T+B,N为内核组中内核的数量,S为内核组中内核的任务处理速度,T为预设的时间周期,B为时间周期T内最大突发任务量,从而保证CPU功耗降低的同时,防止任务被丢弃,在具体实施过程中,时间周期的设置T以及最大突发任务量B的设置可以根据多核CPU运行环境或实验数据进行设置。在步骤S202中,当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,该内核组中内核的数量至少大于I。在本发明实施例中,可以根据多核CPU中内核的功能不同预先对多核CPU中的内核进行逻辑上的划分,例如,用于完成业务对应的任务的业务平面,以及用于控制和管理多核CPU中内核的控制平面,其中业务平面包括一个或多个逻辑上的业务组(内核组),控制平面可以部署在一个内核上,也可以部署在多个内核上,通过对业务平面内核组中内核的负载状态的监测,控制平面可实现对业务平面的内核组中内核的电源管理,实现内核的休眠和唤醒。在本发明实施例中,预先为内核组分配用于缓存待处理任务的缓存空间,其中内核组中内核的数量至少大于1,当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,具体地,预设的时间周期可以根据多核CPU的工作频率、多核CPU设备的应用环境(例如实时性要求)等一个或多个因素来进行时间周期的设置。在步骤S203中,根据待处理任务的数量计算在时间周期内完成待处理任务所需内核数量,所需内核数量少于内核组中休眠的内核数量。在本发明实施例中,获取到多核CPU中预设内核组待处理任务的数量后,计算在
时间周期内完成待处理任务所需内核数量M,其中M =纟,C为内核组待处理任务的数
S*T
量,S为内核组中内核的任务处理速度,T为预设的时间周期。所需内核数量应少于内核组中休眠的内核数量,从而保证待处理任务能够得到及时地处理。在步骤S204中,当所需内核数量大于第一预设值时,唤醒内核组中M+1个处于休眠状态的内核,其中M为在时间周期内完成待处理任务所需内核数量。在步骤S205中,当所需内核数量不大于第二预设值且内核组中处于运行状态的内核的数量大于I,休眠内核组中处于运行状态的一个内核。在本发明实施例中,第一预设值、第二预设值和第三预设值可以根据多核CPU的工作频率、多核CPU设备的应用环境(例如实时性要求)等一个或多个因素来进行设置。较优地,第一预设值,第二预设值和第三预设值为1,具体地,当所需内核数量大于I时,表明在一个时间周期内要完成任务队列中缓存的任务,则至少需要唤醒内核组中数量为所需内核数量的内核,较优地,为了尽快完成任务队列中缓存的任务并进一步减少任务的延时,可以唤醒内核组中M+1个处于休眠状态的内核,其中M为在时间周期内完成任务队列中的任
务所需内核数量,所需内核数量M =;叾,其中C为任务队列中的任务数量,S为内核组中
S*T
内核的任务处理速度,T为预设的时间周期。在本发明实施例中,当所需内核的数量不大于I时,表明多核CPU当前的负载比较小,可以采取逐一休眠的方式休眠已处于运行状态的内核,即在本时间周期内休眠内核组中处于运行状态的一个内核,从而防止因此时所需内核为瞬时状态,导致下一时间周期内多核CPU的任务得不到及时处理的情况的发生,提高了多核CPU对瞬时高负载任务的处理能力。这样在下一时间周期时,若所需内核的数量还是不大于I且内核组中处于运行状态的内核的数量大于1,则继续休眠内核组中处于运行状态的一个内核,实现在降低能量消耗 的前提下逐步地休眠内核,同时也保证了待处理任务的及时处理。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘、光盘等。实施例三:图3示出了本发明第三实施例提供的多核CPU的电源管理装置的结构,为了便于说明,仅不出了与本发明实施例相关的部分。该多核CPU的电源管理装置可以用于多核CPU,用于电源的控制或管理装置,其中任务数量获取单元31当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,该内核组中内核的数量至少大于I。内核数量计算单元32根据待处理任务的数量计算在时间周期内完成待处理任务所需内核数量,所需内核数量少于内核组中休眠的内核数量。内核唤醒单元33当所需内核数量大于第一预设值时,从内核组中唤醒数量为所需内核数量的内核。内核休眠单元34当所需内核数量不大于第二预设值时,根据所需内核数量以及内核组中处于运行状态的内核的数量,休眠内核组中数量为第三预设值的内核。实施例四图4示出了本发明第四实施例提供的多核CPU的电源管理装置的结构,为了便于说明,仅不出了与本发明实施例相关的部分。任务队列分配单元41向多核CPU中预设内核组分配预设长度的任务队列,该任务队列用于缓存多核CPU中预设内核组待处理任务。任务数量获取单元42当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,该内核组中内核的数量至少大于I。内核数量计算单元43根据待处理任务的数量计算在时间周期内完成待处理任务所需内核数量,所需内核数量少于内核组中休眠的内核数量。内核唤醒单元44当所需内核数量大于第一预设值时,从内核组中唤醒数量为所需内核数量的内核。
内核休眠单元45当所需内核数量不大于第二预设值时,根据所需内核数量以及内核组中处于运行状态的内核的数量,休眠内核组中数量为第三预设值的内核。进一步地,内核唤醒单元44可以包括内核唤醒子单元441,当所需内核数量大于第一预设值时,内核唤醒子单元441唤醒内核组中M+1个处于休眠状态的内核,M为在时间周期内完成待处理任务所需内核数量,且M = C/(S*T),其中C为内核组待处理任务的数量,S为内核组中内核的任务处理速度,T为预设的时间周期。进一步地,内核休眠单元45可以包括内核休眠子单元451,当所需内核数量不大于第二预设值且内核组中处于运行状态的内核的数量大于I时,内核休眠子单元451休眠内核组中处于运行状态的一个内核。本发明实施例以多核CPU的任务队列来判断多核CPU的负载状况,通过在预设时 间周期内获取完成多核CPU中内核组中待处理任务所需内核数量,根据内核组中处于运行状态的内核的数量,确定是否进行内核的休眠与唤醒,实现多核CPU电源功耗的有效管理,进一步地设置合适长度的任务队列用于缓存待处理任务,以防止任务突发状态下用户提交的任务被丢弃,当所需内核数量不大于I且内核组中处于运行状态的内核的数量大于I时,采取逐一休眠的方式休眠已处于运行状态的内核,从而防止若该时刻所需内核为瞬时状态,导致下一时间周期内多核CPU的任务得不到及时处理的情况的发生,在降低功耗的同时提高多核CPU对瞬时高负载任务的处理能力。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种多核CPU的电源管理方法,其特征在于,所述方法包括下述步骤 当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,所述内核组中内核的数量至少大于I ; 根据所述待处理任务的数量计算在所述时间周期内完成所述待处理任务所需内核数量,所需内核数量少于所述内核组中休眠的内核数量; 当所需内核数量大于第一预设值时,从所述内核组中唤醒数量为所需内核数量的内核; 当所需内核数量不大于第二预设值时,根据所需内核数量以及所述内核组中处于运行状态的内核的数量,休眠所述内核组中数量为第三预设值的内核。
2.如权利要求I所述的方法,其特征在于,当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量的步骤之前,所述方法还包括 向多核CPU中预设内核组分配预设长度的任务队列,所述任务队列用于缓存多核CPU中预设内核组待处理任务。
3.如权利要求2所述的方法,其特征在于,所述任务队列的预设长度为L,L=(N-I) *S*T+B,其中N为所述内核组中内核的数量,S为所述内核组中内核的任务处理速度,T为预设的时间周期,B为时间周期T内最大突发任务量。
4.如权利要求I所述的方法,其特征在于,所述第一预设值、第二预设值和第三预设值为I。
5.如权利要求4所述的方法,其特征在于,当所需内核数量大于第一预设值时,从所述内核组中唤醒数量为所需内核数量的内核的步骤包括步骤 当所需内核数量大于第一预设值时,唤醒所述内核组中M+1个处于休眠状态的内核,所述M为在所述时间周期内完成所述待处理任务所需内核数量,所述M = C/(S*T),其中C为内核组待处理任务的数量,S为内核组中内核的任务处理速度,T为预设的时间周期。
6.如权利要求4所述的方法,其特征在于,所述当所需内核数量不大于第二预设值时,根据所需内核数量以及所述内核组中处于运行状态的内核的数量,休眠所述内核组中数量为第三预设值的内核的步骤包括步骤 当所需内核数量不大于第二预设值且所述内核组中处于运行状态的内核的数量大于I时,休眠所述内核组中处于运行状态的一个内核。
7.一种多核CPU的电源管理装置,其特征在于,所述装置包括 任务数量获取单元,用于当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,所述内核组中内核的数量至少大于I ; 内核数量计算单元,用于根据待处理任务的数量计算在所述时间周期内完成所述待处理任务所需内核数量,所需内核数量少于所述内核组中休眠的内核数量; 内核唤醒单元,用于当所需内核数量大于第一预设值时,从所述内核组中唤醒数量为所需内核数量的内核;以及 内核休眠单元,用于当所需内核数量不大于第二预设值时,根据所需内核数量以及所述内核组中处于运行状态的内核的数量,休眠所述内核组中数量为第三预设值的内核。
8.如权利要求7所述的装置,其特征在于,所述装置还包括 任务队列分配单元,用于向多核CPU中预设内核组分配预设长度的任务队列,所述任务队列用于缓存多核CPU中预设内核组待处理任务。
9.如权利要求8所述的装置,其特征在于,所述任务队列的预设长度为L,L=(N-I) *S*T+B,其中N为所述内核组中内核的数量,S为所述内核组中内核的任务处理速度,T为预设的时间周期,B为时间周期T内最大突发任务量。
10.如权利要求7所述的装置,其特征在于,所述第一预设值、第二预设值和第三预设值为I。
11.如权利要求10所述的装置,其特征在于,所述内核唤醒单元包括 内核唤醒子单元,用于当所需内核数量大于第一预设值时,唤醒所述内核组中M+1个处于休眠状态的内核,所述M为在所述时间周期内完成所述待处理任务所需内核数量,所述M = C/(S*T),其中C为内核组待处理任务的数量,S为内核组中内核的任务处理速度,T为预设的时间周期。
12.如权利要求10所述的装置,其特征在于,所述内核休眠单元包括 内核休眠子单元,用于当所需内核数量不大于第二预设值且内核组中处于运行状态的内核的数量大于I时,休眠所述内核组中处于运行状态的一个内核。
13.一种CPU,其特征在于,所述CPU包括如权利要求7至13任一所述的多核CPU的电源管理装置。
全文摘要
本发明适用于计算机技术领域,提供了一种多核CPU的电源管理方法、系统及CPU,包括下述步骤当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,所述内核组中内核的数量至少大于1;根据待处理任务的数量计算在时间周期内完成待处理任务所需内核数量;当所需内核数量大于第一预设值时,从内核组中唤醒数量为所需内核数量的内核;当所需内核数量不大于第二预设值时,根据所需内核数量以及内核组中处于运行状态的内核的数量,休眠内核组中数量为第三预设值的内核。本发明根据多核CPU内核组的任务队列中的任务动态调整内核的状态,实现多核CPU电源功耗的有效管理,从而在降低电源功耗的同时,实现任务的及时处理。
文档编号G06F1/26GK102955549SQ20111025109
公开日2013年3月6日 申请日期2011年8月29日 优先权日2011年8月29日
发明者於少峰, 徐永新 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1