法律状态公告日
法律状态信息
法律状态
2020-08-14
未缴年费专利权终止 IPC(主分类):G06F1/26 授权公告日:20160629 终止日期:20190829 申请日:20110829
专利权的终止
2016-06-29
授权
授权
2013-04-03
实质审查的生效 IPC(主分类):G06F1/26 申请日:20110829
实质审查的生效
2013-03-06
公开
公开
技术领域
本发明属于计算机技术领域,尤其涉及一种多核CPU的电源管理方法、系统及CPU。
背景技术
目前,多核CPU(包括多个内核的CPU)的应用越来越广泛,很多设备中都使用多核CPU来进行业务处理,提高处理速度,然而,多核CPU在带来业务处理性能提升的同时,也带来了较大的功耗,随着信息技术领域的节能环保问题越来越受到关注,多核CPU设备的功耗管理也变得越来越重要。
由于大多数多核CPU支持多种工作模式,单个核可以进入休眠模式,在空闲时段可以通过休眠一些核来达到降低功耗的作用,现有技术利用该特性,通过监控CPU占用率来调整多核的功耗,若处于运行状态的核(运行核)的占用率小于预设的阈值就休眠一些核。如果运行核的占用率大于预设的阈值就唤醒一些休眠的核。然而,CPU占用率是一段时间内的平均值,不是瞬时状态,不能及时反映任务突发,从而导致在任务突发时,任务处理不及时或被丢弃,使得用户提交的业务执行被中断。
发明内容
本发明实施例的目的在于提供一种多核CPU的电源管理方法,旨在解决由于现有技术无法提供一种有效的多核CPU电源管理方法,导致在多核CPU任务突发时,任务处理不及时或被丢弃,使得用户提交的业务执行被中断的问题。
本发明实施例是这样实现的,一种多核CPU的电源管理方法,所述方法包括下述步骤:
当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,所述内核组中内核的数量至少大于1;
根据所述待处理任务的数量计算在所述时间周期内完成所述待处理任务所需内核数量,所需内核数量少于所述内核组中休眠的内核数量;
当所需内核数量大于第一预设值时,从所述内核组中唤醒数量为所需内核数量的内核;
当所需内核数量不大于第二预设值时,根据所需内核数量以及所述内核组中处于运行状态的内核的数量,休眠所述内核组中数量为第三预设值的内核。
本发明实施例的另一目的在于提供一种多核CPU的电源管理装置,所述装置包括:
任务数量获取单元,用于当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,所述内核组中内核的数量至少大于1;
内核数量计算单元,用于根据待处理任务的数量计算在所述时间周期内完成所述待处理任务所需内核数量,所需内核数量少于所述内核组中休眠的内核数量;
内核唤醒单元,用于当所需内核数量大于第一预设值时,从所述内核组中唤醒数量为所需内核数量的内核;以及
内核休眠单元,用于当所需内核数量不大于第二预设值时,根据所需内核数量以及所述内核组中处于运行状态的内核的数量,休眠所述内核组中数量为第三预设值的内核。
本发明实施例的另一目的在于提供一种包括上述多核CPU的电源管理装置的CPU。
本发明实施例在当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,计算在时间周期内完成待处理任务所需内核数量,当所需内核数量大于第一预设值时,从内核组中唤醒数量为所需内核数量的内核,当所需内核数量不大于第二预设值时,根据所需内核数量以及内核组中处于运行状态的内核的数量,休眠内核组中数量为第三预设值的内核,实现了根据多核CPU内核组中待处理任务数量动态调整内核的状态(休眠和运行),以及多核CPU电源功耗的有效管理,从而在降低电源功耗的同时,及时地处理递交的任务。
附图说明
图1是本发明第一实施例提供的多核CPU的电源管理方法的实现流程图;
图2是本发明第二实施例提供的多核CPU的电源管理方法的实现流程图;
图3是本发明第三实施例提供的多核CPU的电源管理装置的结构图;
图4是本发明第四实施例提供的多核CPU的电源管理装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过获取多核CPU中预设内核组待处理任务的数量计算完成待处理任务所需内核数量,根据所所需内核数量进行内核组中内核的动态休眠和唤醒,实现了根据多核CPU内核组中待处理任务数量动态调整内核的状态(休眠和运行),以及多核CPU电源功耗的有效管理,从而在降低电源功耗的同时,及时地处理递交的任务。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明第一实施例提供的多核CPU的电源管理方法的实现流程,详述如下:
在步骤S101中,当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,该内核组中内核的数量至少大于1。
在本发明实施例中,可以根据多核CPU中内核的功能不同预先对多核CPU中的内核进行逻辑上的划分,例如,用于完成业务对应的任务的业务平面,以及用于控制和管理多核CPU中内核的控制平面,其中业务平面包括一个或多个逻辑上的业务组(内核组),控制平面可以部署在一个内核上,也可以部署在多个内核上,通过对业务平面内核组中内核的负载状态的监测,控制平面可实现对业务平面的内核组中内核的电源管理,实现内核的休眠和唤醒。
在本发明实施例中,预先为内核组分配用于缓存待处理任务的缓存空间,其中内核组中内核的数量至少大于1,当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,具体地,预设的时间周期可以根据多核CPU的工作频率、多核CPU设备的应用环境(例如实时性要求)等一个或多个因素来进行时间周期的设置。
在步骤S102中,根据待处理任务的数量计算在时间周期内完成待处理任务所需内核数量,所需内核数量少于内核组中休眠的内核数量。
在本发明实施例中,获取到多核CPU中预设内核组待处理任务的数量后,计算在时间周期内完成待处理任务所需内核数量M,其中
在步骤S103中,当所需内核数量大于第一预设值时,从内核组中唤醒数量为所需内核数量的内核。
在本发明实施例中,内核的状态有休眠状态、运行状态或其它状态,当所需内核数量大于第一预设值时,根据内核组中处于运行状态的内核的数量,唤醒内核组中数量为所需内核数量的内核。在具体实施过程中,第一预设值的大小可以根据多核CPU运行环境或实验数据进行设置。
在步骤S104中,当所需内核数量不大于第二预设值时,根据所需内核数量以及内核组中处于运行状态的内核的数量,休眠内核组中数量为第三预设值的内核。
在本发明实施例中,第一预设值、第二预设值和第三预设值可以根据多核CPU的工作频率、多核CPU设备的应用环境(例如实时性要求)等一个或多个因素来进行设置。较优地,第一预设值,第二预设值和第三预设值为1,从而当所需内核数量大于1时,及时地从内核组中唤醒内核进行任务处理,当所需内核数量不大于1时,为了防止所有内核被休眠,应根据所需内核数量以及内核组中处于运行状态的内核的数量,休眠内核组中的一个内核,实现在降低能量消耗的前提下逐步地休眠内核,保证待处理任务能够得到及时的处理,并保证处于运行状态的内核的数量至少为1。
在本发明实施例中,采用内核组的待处理任务的数量来表征多核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中预设内核组待处理任务的数量,该内核组中内核的数量至少大于1。
在本发明实施例中,可以根据多核CPU中内核的功能不同预先对多核CPU中的内核进行逻辑上的划分,例如,用于完成业务对应的任务的业务平面,以及用于控制和管理多核CPU中内核的控制平面,其中业务平面包括一个或多个逻辑上的业务组(内核组),控制平面可以部署在一个内核上,也可以部署在多个内核上,通过对业务平面内核组中内核的负载状态的监测,控制平面可实现对业务平面的内核组中内核的电源管理,实现内核的休眠和唤醒。
在本发明实施例中,预先为内核组分配用于缓存待处理任务的缓存空间,其中内核组中内核的数量至少大于1,当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,具体地,预设的时间周期可以根据多核CPU的工作频率、多核CPU设备的应用环境(例如实时性要求)等一个或多个因素来进行时间周期的设置。
在步骤S203中,根据待处理任务的数量计算在时间周期内完成待处理任务所需内核数量,所需内核数量少于内核组中休眠的内核数量。
在本发明实施例中,获取到多核CPU中预设内核组待处理任务的数量后,计算在时间周期内完成待处理任务所需内核数量M,其中
在步骤S204中,当所需内核数量大于第一预设值时,唤醒内核组中M+1个处于休眠状态的内核,其中M为在时间周期内完成待处理任务所需内核数量。
在步骤S205中,当所需内核数量不大于第二预设值且内核组中处于运行状态的内核的数量大于1,休眠内核组中处于运行状态的一个内核。
在本发明实施例中,第一预设值、第二预设值和第三预设值可以根据多核CPU的工作频率、多核CPU设备的应用环境(例如实时性要求)等一个或多个因素来进行设置。较优地,第一预设值,第二预设值和第三预设值为1,具体地,当所需内核数量大于1时,表明在一个时间周期内要完成任务队列中缓存的任务,则至少需要唤醒内核组中数量为所需内核数量的内核,较优地,为了尽快完成任务队列中缓存的任务并进一步减少任务的延时,可以唤醒内核组中M+1个处于休眠状态的内核,其中M为在时间周期内完成任务队列中的任务所需内核数量,所需内核数量其中C为任务队列中的任务数量,S为内核组中内核的任务处理速度,T为预设的时间周期。
在本发明实施例中,当所需内核的数量不大于1时,表明多核CPU当前的负载比较小,可以采取逐一休眠的方式休眠已处于运行状态的内核,即在本时间周期内休眠内核组中处于运行状态的一个内核,从而防止因此时所需内核为瞬时状态,导致下一时间周期内多核CPU的任务得不到及时处理的情况的发生,提高了多核CPU对瞬时高负载任务的处理能力。这样在下一时间周期时,若所需内核的数量还是不大于1且内核组中处于运行状态的内核的数量大于1,则继续休眠内核组中处于运行状态的一个内核,实现在降低能量消耗的前提下逐步地休眠内核,同时也保证了待处理任务的及时处理。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
实施例三:
图3示出了本发明第三实施例提供的多核CPU的电源管理装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该多核CPU的电源管理装置可以用于多核CPU,用于电源的控制或管理装置,其中:
任务数量获取单元31当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,该内核组中内核的数量至少大于1。
内核数量计算单元32根据待处理任务的数量计算在时间周期内完成待处理任务所需内核数量,所需内核数量少于内核组中休眠的内核数量。
内核唤醒单元33当所需内核数量大于第一预设值时,从内核组中唤醒数量为所需内核数量的内核。
内核休眠单元34当所需内核数量不大于第二预设值时,根据所需内核数量以及内核组中处于运行状态的内核的数量,休眠内核组中数量为第三预设值的内核。
实施例四:
图4示出了本发明第四实施例提供的多核CPU的电源管理装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
任务队列分配单元41向多核CPU中预设内核组分配预设长度的任务队列,该任务队列用于缓存多核CPU中预设内核组待处理任务。
任务数量获取单元42当达到预设的时间周期时,获取多核CPU中预设内核组待处理任务的数量,该内核组中内核的数量至少大于1。
内核数量计算单元43根据待处理任务的数量计算在时间周期内完成待处理任务所需内核数量,所需内核数量少于内核组中休眠的内核数量。
内核唤醒单元44当所需内核数量大于第一预设值时,从内核组中唤醒数量为所需内核数量的内核。
内核休眠单元45当所需内核数量不大于第二预设值时,根据所需内核数量以及内核组中处于运行状态的内核的数量,休眠内核组中数量为第三预设值的内核。
进一步地,内核唤醒单元44可以包括内核唤醒子单元441,当所需内核数量大于第一预设值时,内核唤醒子单元441唤醒内核组中M+1个处于休眠状态的内核,M为在时间周期内完成待处理任务所需内核数量,且M=C/(S*T),其中C为内核组待处理任务的数量,S为内核组中内核的任务处理速度,T为预设的时间周期。
进一步地,内核休眠单元45可以包括内核休眠子单元451,当所需内核数量不大于第二预设值且内核组中处于运行状态的内核的数量大于1时,内核休眠子单元451休眠内核组中处于运行状态的一个内核。
本发明实施例以多核CPU的任务队列来判断多核CPU的负载状况,通过在预设时间周期内获取完成多核CPU中内核组中待处理任务所需内核数量,根据内核组中处于运行状态的内核的数量,确定是否进行内核的休眠与唤醒,实现多核CPU电源功耗的有效管理,进一步地设置合适长度的任务队列用于缓存待处理任务,以防止任务突发状态下用户提交的任务被丢弃,当所需内核数量不大于1且内核组中处于运行状态的内核的数量大于1时,采取逐一休眠的方式休眠已处于运行状态的内核,从而防止若该时刻所需内核为瞬时状态,导致下一时间周期内多核CPU的任务得不到及时处理的情况的发生,在降低功耗的同时提高多核CPU对瞬时高负载任务的处理能力。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
机译: 基于需求的CPU电源管理方法及系统
机译: 基于需求的CPU电源管理方法及系统
机译: 计算机系统及其电源使用管理方法,检查中断控制器的基地址状态的方法以及保存和恢复CPU状态的方法