电子装置及电子装置中控制处理器核心的操作的方法【技术领域】
本发明涉及处理器核心控制,更特别地,涉及电子装置及电子装置中控制处理器
核心的操作的方法。
【背景技术】
由于计算复杂性的增加,利用多个处理器来执行在不同处理器上并行的一个或多
个计算机程序的不同部分变得日益普遍。为此,与单个核心微处理器作为规则的若干年前
相比,目前的微处理器通常集成多个处理核心。
虽然多核心处理(multi-core processing)的有益效果是公知的,但是有时多核
心的有效管理是一项非常复杂的工作。所面临的挑战在于如何确定有多少核心将被开启以
利用并行的适当程度,且这些开启的核心将以什么样的时钟频率来操作。在开启的核心的
数量以及其给出有限功率预算的工作频率之间需要作出权衡。前者在理论上能得到更多的
计算能力,但是缺乏最佳性能,而后者能提升其最佳性能但是会导致散热问题,因此这限制
了可被开启的核心的数量。因此,希望能提供一种稳定且有效率的方法来管理多核心的操
作频率以及开启/关闭。
【发明内容】
为了稳定且有效地管理多核心的操作频率及开启/关闭,本发明提供了一种电子
装置以及电子装置中控制处理器核心的操作的方法。
根据本发明的一个方面,提供一种电子装置,其特征在于,包括:多个处理器核心,
用于执行应用程序;核心控制器,用于:监测所述应用程序的并行度;根据所述处理器核心
的利用率确定所述处理器核心的频率或所述处理器核心的电源开启数量是否需被改变;以
及当确定所述处理器核心的所述频率或所述处理器核心的所述电源开启数量需被改变时,
根据所述应用程序的所述并行度选择所述处理器核心的所述频率以及所述处理器核心的
所述电源开启数量中的至少一个以提供选择结果;以及核心设置模块,用于基于所述选择
结果改变所述处理器核心的所述频率以及所述处理器核心的所述电源开启数量中的至少
一个。
根据本发明的另一个方面,提供一种电子装置中控制处理器核心的操作的方法,
其特征在于,所述方法包括:监测运行于所述处理器核心的应用程序的并行度;根据所述处
理器核心的利用率确定所述处理器核心的频率或所述处理器核心的电源开启数量是否需
被改变;当确定所述处理器核心的所述频率或所述处理器核心的所述电源开启数量需被改
变时,根据所述应用程序的所述并行度选择所述处理器核心的所述频率以及所述处理器核
心的所述电源开启数量中的至少一个以提供选择结果;以及基于所述选择结果改变所述处
理器核心的所述频率以及所述处理器核心的所述电源开启数量中的至少一个。
本发明提供的电子装置以及于电子装置中控制处理器核心的操作的方法能够稳
定且有效地管理多核心的操作频率及开启/关闭。
【附图说明】
图1所示为根据本发明实施例的包括多核心的电子装置的配置的框图;
图2所示为根据本发明某些实施例的可被改变的多核心频率及开启/关闭的示意
图;
图3A、图3B、以及图3C所示为根据本发明某些实施例的可被改变的多核心频率及
开启/关闭的示意图;
图4为根据本发明的另一实施例的核心控制器以及核心设置模块的软件实现的示
意图;
图5所示为根据本发明某些其它实施例的用于控制电子装置中多个处理器核心的
操作的方法流程图。
【具体实施方式】
下面的描述是实施本发明的较佳预期模式。这种描述是为了说明本发明的一般原
理的目的,而不应被理解成具有限制性的意义。但是应当理解,实施例可以利用软件、硬件、
固件、或其任何组合来实现。
本发明涉及用于控制电子装置中多个处理器核心操作的方法及装置,更特别地,
涉及控制电子装置中处理器核心操作频率及开启/关闭的方法及其装置。
根据本发明实施例的电子装置可实施为包括多核心的终端,包括:个人数字助理、
智能电话、平板电脑、便携式多媒体播放器、电子书终端、笔记本电脑、上网本电脑、以及超
级移动个人电脑(UltraMobile Personal Computer,UMPC)。
图1所示为根据本发明实施例的包括多核心的电子装置的配置的框图;图2至图3C
所示为根据本发明某些实施例的可被改变的多核心频率及开启/关闭的示意图。根据本发
明的实施例,以下的描述是以四核心处理器的电子装置作为一个示例,但本发明不限于此,
本发明可适用于包括多个CPU核心、GPU核心、或任何其组合的电子装置,例如:异构计算装
置(heterogeneous computing device)。
请参考图1,根据本发明实施例的电子装置100包括:多个处理器核心110、核心设
置模块120、核心控制器130、存储器140、以及用户界面150。应用程序160被加载到存储器
140以由处理器核心110来执行,处理器核心110包括四个核心10、20、30、以及40。应用程序
160可包含但不限于:无线电话呼叫应用、全球定位卫星(global positioning satellite,
GPS)应用、电子邮件应用、日历应用、支持音频和/或视频的娱乐应用等。于实践中,一个或
多个应用程序可同时由四个核心10、20、30、以及40中的一个或多个来执行。
用户界面150显示用户以及各种菜单的信息。即,用户界面150提供各种屏幕,例
如:空闲屏幕(主页)、菜单屏幕、消息创建屏幕、呼叫屏幕、时间表管理屏幕、地址簿屏幕、以
及网页输出屏幕。用户界面150可以是液晶显示器,有机发光二极管(Organic Light
Emitted Diode,OLED),或有源矩阵有机发光二极管(Active Matrix Organic Light
Emitted Diode,AMOLED),也可被配置为触摸屏的形式以接收来自用户的输入。
在一个实施例中,核心控制器130与核心设置模块120一起工作以控制处理器核心
110的操作。核心控制器130执行变频调速(frequency governor)以及热插拔模块的功能以
确定处理器核心110的操作频率以及电源开启数量(power-on number)(即,核心10、20、30、
以及40中有几个将被开启)。据此,核心设置模块120设置处理器核心110以及排程
(schedule)从应用程序160中接收的工作任务并发送给处理器核心110执行。
核心控制器130与核心设置模块120中的每一个可包括由处理器核心110执行的软
件以监测和控制核心10、20、30、以及40的工作流。然而,核心控制器130与核心设置模块120
中的每一个还可由本领域的普通技术人员知晓的硬件和/或固件来形成。虽然示例中的核
心控制器130是与核心设置模块120有关的一个单独的模块,但是,核心控制器130与核心设
置模块120也可以形成于一个单个的整体模块中。
核心控制器130监测应用程序160的并行度(degree of parallelism,DOP)。于执
行之前或执行期间,应用程序160可以指示利用并行(例如,同时使用多个线程来进行程序
执行)的能力。如本领域所公知的,并行度表示基本单独地排程并由处理器核心110的不同
核心独立地执行的应用程序160的部分的数量。例如,当并行度为4时,表示应用程序160被
分为四个独立的任务,以由处理器核心110的四个不同核心同时执行。核心控制器130可通
过从储存应用程序160的部分的运行序列采样数据来监测并行度。或者,核心控制器130可
以向应用程序160发出一个询问(inquiry)来获取并行度。
核心控制器130进一步确定处理器核心110的频率或处理器核心110的电源开启数
量是否需要根据处理器核心110的利用率(utilization)来改变。通常,核心利用率通过侦
测当平台上的周期性定时器中断被发射时,核心是否被停止来计算。对于类似处理器核心
110的多核心,利用率可以是所有电源开启的核心的平均利用率。在一个实施例中,处理器
核心110的利用率是由核心设置模块120来获取,其接着将利用率传送(图中未示出)到核心
控制器130。
在一个实施例中,当处理器核心110的利用率高于预定义的阈值(例如90%)时,核
心控制器130确定处理器核心110的频率或处理器核心110的电源开启数量将增加(例如,为
了增强系统性能)。在另一实施例中,当处理器核心110的利用率低于预定义的阈值(例如
50%),核心控制器130确定处理器核心110的频率或处理器核心110的电源开启数量将减少
(例如,为了避免计算资源的浪费)。在又一实施例中,如果处理器核心110的利用率位于特
定区间(particular region),核心控制器130确定处理器核心110的频率或处理器核心110
的电源开启数量不改变。
当核心控制器130确定处理器核心110的频率或处理器核心110的电源开启数量需
要改变时,核心控制器130根据应用程序160的并行度选择处理器核心110的频率以及处理
器核心110的电源开启数量的至少一个,以提供选择结果(selection result)SR。选择结果
SR指示处理器核心110的频率以及处理器核心110的电源开启数量中的哪一个或两个将被
改变且如何改变。对于一个示例,选择结果SR指示处理器核心110的频率将增加100MHz,但
处理器核心110的电源开启数量保持不变。对于另一示例,选择结果SR指示处理器核心110
的电源开启数量将从1增加到3(即多开启两个核心),而处理器核心110的频率保持不变。
图2以及图3A到图3C给出了多个示例来说明选择结果SR是如何由核心控制器130
提供的。于这些示例中,假设处理器核心110开始于一个核心(即核心10)被开启且操作频率
为F1。此外,一个隐含的假设是用于所有开启核心的操作频率是相同的。这些假设的目的仅
为了便于说明本发明,而非对本发明的限制。
请结合图3A来说明图2的路径1。路径1显示了当并行度高于或等于4时,用于提供
选择结果SR的核心控制器130的策略。在此情况下,核心控制器130于调整处理器核心110的
频率之前调整处理器核心110的电源开启数量。例如,核心控制器130可提供选择结果SR来
指示需要再开启3个核心,其等效于路径1上从S到A的移动。接着,如图3A的转变
(transition)T1所示,核心设置模块120开启核心20、30以及40。
对于并行度等于或高于4来说,一个细微的不同在于核心控制器130将首先开启核
心20以及30,接着确定是否需要开启更多核心(例如:根据核心10、20以及30的利用率),且
如果需要,则开启核心40,其对应于路径1上从S到A’(图3A的T2)且接着从A’到A(图3A的T3)
的移动。
核心控制器130还可确定操作点(operating point)A是否适用于处理器核心110
(例如:于操作点A的处理器核心110的利用率不会过高也不会过低)。如果是,则处理器核心
110的频率保持为F1且处理器核心110的电源开启数量保持为4。相反的(例如:于操作点A的
处理器核心110的利用率仍然过高),则核心控制器130可通过将处理器核心110的频率从F1
增加到最多F5来选择路径1上的其它操作点,其中,达到操作点M时,处理器核心110可发挥
最大性能。
请结合图3B来说明图2的路径2。路径2显示了当并行度于特定范围内(即,当并行
度为2或3时)用于提供选择结果SR的核心控制器130的另一策略。在此情况下,核心控制器
130将于调整处理器核心110的频率之前调整处理器核心110的电源开启数量,反之亦然。例
如,核心控制器130可提供选择结果SR以指示具有从F1增加到F3的操作频率的一个或多个
核心将被开启,其等效于路径2上从S到B的移动。接着,如图3B的转变T4所示,核心设置模块
120开启核心20,且将核心10以及20的操作频率设置为F3。
如果用于处理器核心110的操作点B不足以顺利地执行应用程序160,核心控制器
130可提供选择结果SR以再开启一个核心(即,核心30),而核心10、20以及30的操作频率保
持于F3,其对应于路径2上从B到B’的移动,也由图3B的转变T5所示。类似于与路径1相关的
描述,处理器核心110的操作点还可沿着路径2从B’移动,直到达到最大性能操作点M。
图2的路径3以及图3C描述了用于提供选择结果SR的核心控制器130的又一场景。
当应用程序160的并行度为1时,核心控制器130可采用路径3作为选择结果生成策略。
于此场景下,核心控制器130于调整处理器核心110的电源开启数量之前调整处理
器核心110的频率。例如,核心控制器130可提供选择结果SR以指示核心10的操作频率将从
F1增加到F4,其等效于路径3上从S到C的移动。作为响应,如图3C的转变T6所示,核心设置模
块120将核心10的操作频率设置为F4。在一个实施例中,操作点C适用于处理器核心110以运
行应用程序160,且处理过程可于此处停止。如关于路径1以及路径2的类似描述,如果增加
的操作频率不足以将核心10的利用率保持于合适的区间,则核心控制器130可沿着路径3
“勉强(reluctantly)”开启额外的核心,直到达到最大性能操作点M。
当选择结果SR被提供给核心设置模块130时,核心设置模块130基于选择结果SR改
变处理器核心110的频率以及处理器核心110的电源开启数量中的至少一个。例如,如果选
择结果SR指派B为操作点,则核心设置模块130开启核心10以及核心20,且将这两个核心的
操作频率设置为F3。
因此,以下所示为本发明的某些实施例。当确定处理器核心110的频率或处理器核
心110的电源开启数量需要被改变时,核心控制器130根据应用程序160的并行度选择处理
器核心110的频率以及处理器核心110的电源开启数量中的至少一个以提供选择结果SR。核
心控制器130通过如下步骤提供选择结果SR。首先:根据应用程序160的并行度于2维(2D)坐
标上获取控制路径(例如路径1,路径2或路径3),其中,2D坐标(图2的y轴)的第一轴表示处
理器核心110的频率,且2D坐标(图2的x轴)的第二轴表示处理器核心110的电源开启数量。
第二,基于控制路径提供选择结果SR,其中,因为应用程序160的并行度的增加,控制路径沿
着2D坐标的第二轴(从路径3转移(shift)至路径1)转移。核心设置模块120以对应于沿着控
制路径(例如:从路径1的S到A)移动的方式,改变处理器核心110的频率以及处理器核心110
的电源开启数量中的至少一个。当处理器核心的当前电源开启数量比应用程序160的并行
度小N(例如:并行度为4且当前只有核心10为电源开启)时,核心设置模块120增加的处理器
核心110的电源开启数量最多为N(例如3),其中,N为大于1的正整数。
与传统的通常核心被一个接一个开启(即,每次调整只有一个额外的核心被开启)
的多核心管理方案相比较,本发明提供的以上实施例提供了用于多核心管理的更加灵活和
战略的方式。
图4所示为根据本发明实施例的核心控制器130以及核心设置模块120的软件实现
的示意图。参考图4,其示出了以上所描述的与图1相关的电子装置100的软件实现。电子装
置100可包含多个硬件元件,例如:处理器核心110、存储器140、以及用户界面150。运行于电
子装置100上的可以是一个或多个软件元件,例如:操作系统410、核心控制器130、以及应用
程序160。
处理器核心110可包括一个或多个中央处理单元(central processing unit,
CPU)核心,其可被操作以通过执行算术、逻辑的、以及输入/输出操作来执行程序的指令或
应用。操作处理器核心110的频率以及处理器核心110的开启/关闭数量都可被动态调整。
存储器140可包括一个或多个存储器电路,例如:一个或多个动态随机存取存储器
(dynamic random access memory,DRAM)、静态随机存取存储器(static random access
memory,SRAM)、双数据率同步DRAM(double data rate synchronous DRAM,DDR SDRAM)、
和/或其它类型的存储器电路。存储器140可通过一个或多个存储器总线与其它硬件元件
(例如:处理器核心110以及用户界面150)相连。软件元件(例如:操作系统410以及应用程序
160)运行于存储器140。
操作系统410可包括用于管理电子装置100的各种硬件资源的软件。操作系统410
还可被用于为计算机程序(例如:应用程序160)提供公共服务。操作系统410倾向于充当硬
件元件和应用程序160之间的中介。
应用程序160可包括一个或多个帮助用户执行特定任务的软件应用。为了执行任
务(例如:网页浏览、视频播放),应用程序160可通过操作系统410访问处理器核心110。
核心控制器130可以是包含某些用于调整处理器核心110的功率和性能的指令的
软件程序。具体地,核心控制器130监测应用程序160的并行度。接着,核心控制器130根据处
理器核心110的利用率确定处理器核心110的频率或处理器核心110的电源开启数量是否需
要被改变。当确定处理器核心110的频率或处理器核心110的电源开启数量要被改变时,核
心控制器130根据应用程序160的并行度提供选择结果SR,其中,选择结果SR建议处理器核
心110的频率以及处理器核心110的电源开启数量中的至少一个如何被调整。
选择结果SR被发送到核心设置模块120,核心设置模块120可以是操作系统410的
一部分。核心设置模块120根据选择结果SR改变处理器核心110的频率以及处理器核心110
的电源开启数量中的至少一个。
在一个实施例中,核心设置模块120为操作系统410的内核(kernel)的一部分。换
句话说,核心设置模块120位于内核空间,内核空间的计算机程序是不能由用户来改变的。
与此相反,核心控制器130可以是用户空间的计算机程序,如果必要,用户空间是用户能够
通过编码改变的。因此,由于程序可以根据需要被重新配置,核心控制器130从编程的角度
更加灵活。
图5为根据本发明实施例的用于控制多个处理器核心的操作的方法流程图。应用
程序运行于处理器核心。于步骤S501中,监测应用程序的并行度。于步骤S503中,根据处理
器核心的利用率确定处理器核心的频率或处理器核心的电源开启数量是否需要被改变。如
果不需要,则于特定时间段后再次执行步骤S503。如果需要,则执行步骤S505,根据应用程
序的并行度选择处理器核心的频率以及处理器核心的电源开启数量中的至少一个以提供
选择结果。于步骤S507中,基于选择结果改变处理器核心的频率以及处理器核心的电源开
启数量中的至少一个。
图5所示的方法可以由硬件(例如:电路、专用逻辑、可编程逻辑、微码、专用集成电
路(application specific integrated circuits,ASIC)、现场可编程门阵列(field-
programmable gate array,FPGA)等)、软件(例如:运行于处理装置的指令)、或其组合来执
行。在一个实施例中,此方法可由图1以及图4中所示的电子装置100中的核心控制器130以
及核心设置模块120来执行。
图5的流程图的操作已经参考图1以及图4的示范性实施例被描述。然而,应该理解
图5的流程图的操作可由非图1以及图4中所讨论的本发明的其他实施例来执行,且参考图1
以及图4所描述的实施例可以与流程图所讨论的不同的操作来执行。虽然图5的流程图显示
了由本发明某些实施例执行的特定操作顺序,应该理解这样的顺序仅为示范性的(例如,可
选实施例可以不同的顺序执行操作、合并特定操作、重叠特定操作等)。
根据上述实施例的方法可被记录在包括程序指令的非暂时性计算机可读媒体中,
以实现由计算机实施的各种操作。媒体也可包括程序指令、数据文件、数据结构等中的一种
或其组合。记录在媒体上的程序指令可以被特别设计和构建,以用于实施例的目,或它们可
以是那种公知的,并可提供给那些在计算机软件领域的技术人员。非暂时性计算机可读介
质的例子包括:磁性媒体(例如:硬盘、软盘、和磁带)、光学媒体(例如:CD ROM和DVD);磁光
媒体(例如:光盘)、以及专门配置来存储和执行程序指令的硬件设备(例如:只读存储器
(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、闪存、和类似
物)。计算机可读媒体也可以是分布式网络,以使程序指令以分布方式被存储和执行。此程
序指令可以由一个或多个处理器来执行。计算机可读媒体也可嵌入ASIC或FPGA中的至少一
个,其执行(类似处理器的的进程)的程序指令。程序指令的示例包括机器代码(例如:由编
译器产生)以及包含更高级代码的文件,更高级代码可由计算机使用解释器来执行。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围。任何本领域
技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰。因此本发明的保护
范围当视权利要求所界定者为准。