CN105247486A - 多cpu系统及多cpu系统的调整方法 - Google Patents
多cpu系统及多cpu系统的调整方法 Download PDFInfo
- Publication number
- CN105247486A CN105247486A CN201380076775.0A CN201380076775A CN105247486A CN 105247486 A CN105247486 A CN 105247486A CN 201380076775 A CN201380076775 A CN 201380076775A CN 105247486 A CN105247486 A CN 105247486A
- Authority
- CN
- China
- Prior art keywords
- cpu
- data processing
- performance
- power consumption
- mode
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
在按照每个种类搭载有多个数据处理性能和耗电量不同的多种CPU的非对称多CPU系统中,以使整体性的数据处理性能和耗电量的最大值逐级不同的方式预先对所述CPU的种类和个数的组合的多个方式进行定义,并进行针对以根据数据处理的环境从定义信息中选择的方式而被特定的CPU分配数据处理的控制。能够与数据处理负荷等的数据处理环境相应地抑制不必要的耗电且能够易于实现必要的数据处理性能。
Description
技术领域
本发明涉及非对称多CPU(中央处理器)系统并且涉及其中的调整(scaling)方法,例如涉及通过应用于携带信息终端装置而有助于延长电池驱动时间的技术。
背景技术
作为用于保证高数据处理性能的同时延长电池驱动时间的技术,存在专利文献1记载的技术。在该技术中,除了执行数据处理的第一CPU以外,还设置了与该第一CPU相比峰值性能更低而功率效率更高的第二CPU,利用第二CPU监视负荷,在负荷大的情况下,通过第一CPU执行处理,在上述负荷小的情况下,代替第一CPU,使第二CPU执行上述处理。由此,根据负荷的状态或温度变化,减少系统动作时的漏电。
另外,专利文献2记载了如下技术,在多处理器系统中,设置对在利用各处理器执行任务时所需的耗电信息进行管理的管理部,在选择执行任务的处理器时,使用上述耗电信息,选择每单位耗电量的执行处理量最大的处理器,将任务分配给该处理器。由此,能够实现在移动终端等的能够使用的电量有限的环境下能够以有限的电量执行更多的处理量的多处理器系统。
现有技术文献
专利文献
专利文献1:日本特开2004-280378号公报
专利文献2:日本特开2011-209846号公报
发明内容
本发明人关于向多个CPU非对称地分配处理的非对称多CPU系统中的CPU处理的调整进行了研究。即,使执行任务的CPU的分配在数据处理性能高的CPU和低耗电的CPU之间可变。作为其方法提出了如下方法:在数据处理性能高的CPU的组和低耗电的CPU的组之间,根据系统负荷,排他地切换所使用的CPU的组。另外,还提出了如下方法:使数据处理性能高的CPU组所包含的CPU和低耗电的CPU组所包含的CPU一一对应,在对应的CPU彼此中使用DVFS(动态电压频率调节)处理等,由此根据系统负荷排他地切换所使用的CPU。但是,在这些提案中,由于任务处理能够使用的CPU的最大数量被限制为属于双方CPU组的全部CPU的一半,所以存在CPU资源的运转效率差的问题。而且,由于排他地切换高数据处理性能的CPU和低数据处理性能的CPU,所以能够实现的性能成为从数据处理性能高的组选择的多个CPU和从数据处理性能低的组中选择的多个CPU的总和,有时不能实现中间性的数据处理性能。换言之,不能控制成在某一瞬间非对称多CPU系统恰当地满足所需的处理性能,有可能会选择超过满足必要的处理性能的CPU的组合。由此,可能会造成不必要的耗电。但是,对于双方的组,为了仅将负荷大的任务分配给数据处理性能高的CPU,并仅将负荷小的任务分配给低耗电的CPU而能够最大限度地利用全部CPU,需要将OS的内核、尤其是将任务调度器(taskscheduler)或任务分配器(taskdispatcher)在这样的CPU系统中最优化。但是,实现这样的最优化不是容易的。专利文献1、2的技术也没有启示对此的解决对策。
本发明的上述以及其他目的和新的特征能够从本说明书的记载和附图得以明确。
若针对本申请公开的发明中的代表性的方案简单地进行说明,则如下所述。
即,在分别搭载有多个数据处理性能和耗电量不同的多种CPU的非对称多CPU系统中,以使整体性的数据处理性能和耗电量的最大值带有变动的方式(以使整体的数据处理性能和耗电量的最大值逐级不同的方式),预先对所述CPU的种类和个数的组合的多个方式进行多个定义,按照根据与数据处理的环境而从定义信息中选择的方式,控制分配给数据处理的CPU的种类和个数。
发明效果
若简单地说明由本申请公开的发明中的具有代表性的方案得到的效果,则如下所述。
即,能够与数据处理负荷等的数据处理环境相应地抑制不必要的耗电,并且能够易于选择满足必要的数据处理性能的CPU的组合。
附图说明
图1是层级地例示了处理器的硬件及软件的结构的说明图。
图2是示出非对称多CPU系统的系统结构例的系统结构图。
图3是示出CPU(BigCPU)8a~8d和CPU(LittleCPU)9a~9d的组合方式的说明图。
图4A是作为比较例而示出根据系统负荷等排他地切换所使用的CPU组的方法的说明图。
图4B是作为比较例而示出使数据处理性能高的CPU的组所包含的多个CPU和低耗电的CPU的组所包含的多个CPU一一对应,并在对应的CPU之间,根据系统负荷排他地切换所使用的CPU的方法的说明图。
图5A是例示了与图4A的情况下的CPU的种类和个数相关的组合方式的说明图。
图5B是例示了与图4B的情况下的CPU的种类和个数相关的组合方式的说明图。
图6是例示了虚拟处理器的分配处理的控制流程的流程图。
图7是示出调节器(governor)如何取得热量的发生状况、电池剩余容量、处理负荷的信息的一例的说明图。
图8是示出调节器如何判断是否需要虚拟处理器的切换并根据其结果如何选择适当的虚拟处理器这样的处理例的说明图。
图9是例示了在采用虚拟处理器的逐级更新并且还能够采用跳过更新的情况下的虚拟处理器的分配控制的流程图。
图10是层级地例示了还考虑了CPU的电源控制时的处理器的硬件及软件的结构的说明图。
图11是例示了在采用了图10的结构的情况下的初始化部分的处理流程的流程图。
图12是示出对在步骤18-4、18-5中减少不需要的CPU时的判断所使用的标准进行规定的表格的一例的说明图。
图13是例示了通过在系统运转中也根据图10的调节器控制CPU热插拔来进一步强化省电效果的情况下的处理流程的流程图。
图14是层级地例示了能够进行如下控制的处理器的硬件及软件的结构的说明图,即,通过对图10的例子进一步组合DVFS(动态电压频率调整)控制而将耗电抑制到必要最低限度以实现连续的性能提高。
图15是例示了向图6追加了DVFS处理的控制流程的流程图。
图16是例示了步骤25的DVFS处理的内容的说明图。
图17是示出在从所选择的虚拟处理器的处理性能的范围不进入相邻的处理性能范围的范围内,对CPU的同步时钟频率进行调整的变形例的说明图。
具体实施方式
1.实施方式的概要
首先,关于本申请公开的发明的代表性的实施方式,对其概要进行说明。在代表性的实施方式的概要说明中,标注括号进行参考的附图中的附图标记只不过是例示了被标注该附图标记的结构要素的概念所包含的结构。
(1)<数据处理性能和耗电量有多个不同等级的CPU的种类和个数的组合方式>
按每个种类搭载有多个数据处理性能和耗电量不同的多种CPU(8a~8d、9a~9d)的非对称多CPU系统,具有定义信息(10、13),该定义信息(10、13)以使整体性的数据处理性能和耗电量的最大值存在变动(整体性的数据处理性能和耗电量的最大值具有不同等级)的方式,对CPU的种类和个数的组合的多个方式进行定义,并向以根据数据处理的环境从上述定义信息中选择的方式而被特定的CPU分配数据处理(21)。
由此,能够基于定义信息,以仅将负荷大的任务分配给数据处理性能高的CPU,并仅将负荷小的任务分配给低耗电的CPU的方式,控制针对数据处理的CPU分配。因此,也可以不完全依赖于OS的任务调度器或任务分配器,不需要为了进行这样的处理而将OS的任务调度器或任务分配器最优化。另外,能够最大程度地利用全部CPU,从而CPU资源的运转效率也良好,而且,通过针对CPU的数据处理分配而能够实现的性能不限于高的数据处理性能或低的数据处理性能,还能够实现中间性的数据处理性能,因此认为几乎不会有不必要的耗电。因此,能够与数据处理环境的负荷相应地抑制不必要的耗电,并且能够易于实现必要的数据处理性能。
(2)<按数据处理性能和耗电量逐级增加的方向组合的方式>
在项1中,上述定义信息保有的CPU的种类和个数的组合的多个方式是按照使数据处理性能和耗电量逐级增加的方向组合CPU的种类和个数的方式(10、13)。
由此,能够唯一地选择能够满足必要处理性能的最小性能的方式。
(3)<按逐级满足所要求的处理性能的方向组合的方式>
在项1中,上述定义信息保有的CPU的种类和个数的组合的多个方式是按照逐级满足根据数据处理的环境所要求的处理性能的方向组合CPU的种类和个数的方式(10、13),选择能够满足所要求的处理性能的最小性能的方式。
由此,能够唯一地选择能够满足必要处理性能的最小性能的方式。
(4)<数据处理的负荷、发热状况、电池余量、用户设定>
在项2或3中,上述数据处理的环境是以数据处理的负荷(1b)的大小掌握的第一环境、以数据处理的负荷(1b)的大小及发热状况(1c)掌握的第二环境、以数据处理的负荷(1b)的大小、发热状况(1c)及电池余量(1d)掌握的第三环境、或者以用户设定(1e、1f)、数据处理的负荷(1b)的大小、发热状况(1c)及电池余量(1d)掌握的第四环境。
由此,根据第一环境,能够就针对数据处理能力的富余度这一点来掌握数据处理的环境。根据第二环境,能够就考虑了发热状况的数据处理能力的富余度这一点来掌握数据处理的环境。根据第三环境,能够就考虑了发热状况和电源供给极限的数据处理能力的富余度这一点来掌握数据处理的环境。根据第四环境,能够就考虑了发热状况和电源供给极限的数据处理能力的富余度这一点来掌握数据处理的环境,并且能够将用户设定反映至数据处理环境。
(5)<基于数据处理性能和耗电量的CPU的发热状况>
在项4中,上述发热状况是数据处理性能和耗电量相对大的CPU的组所包含的CPU的发热状况。
由此,能够掌握对数据处理能力带来影响的发热状态。当然,还能够监视数据处理性能和耗电量小的CPU的发热状况。
(6)<数据处理性能和耗电量大的种类以及数据处理性能和耗电量小的种类>
在项1中,上述CPU的种类是根据CPU的数据处理性能和耗电量的大小不同来分类的CPU的多个组。例如,上述CPU的种类是数据处理性能和耗电量大的CPU的组(8)以及数据处理性能和耗电量小的CPU的组(9)。
由此,通过将分组设为2组,不会使控制过度复杂化,能够针对每个方式的定义,来改变CPU的分配。当然,也可以进行3组以上的分组。
(7)<比搭载CPU的个数多的组合方式数量>
在项1中,上述CPU的种类和个数的组合的方式的数量比所搭载的CPU的个数多。
由此,能够细分与CPU的种类和个数的组合的方式相关的等级,有助于提高耗电和数据处理性能的逐级的控制精度。此外,当然,组合方式的数量也可以与所搭载的CPU的个数相同或为其以下。
(8)<通过用户空间的控制程序向内核通知>
在项1中,分配给数据处理的CPU的种类和个数的控制是通过用户空间的控制程序(1),将能够用于数据处理的CPU的种类和个数向内核通知的处理。
由此,能够基于定义信息,容易地进行CPU的分配控制。
(9)<称为控制组的内核功能>
在项8中,通过上述控制程序通知的处理是通过根据用户空间来控制内核的调度器的内核功能而实现的。
由此,能够有效地使用内核的既存功能。此外,当然也可以在内核空间中实现通过上述控制程序进行通知的处理。
(10)<执行控制程序的CPU>
在项9中,执行上述控制程序的CPU是数据处理性能和耗电量相对小的CPU的组(9)中的规定的CPU。
由此,针对不需要高度处理的数据处理而使用数据处理性能和耗电量相对小的CPU组的CPU,向要减少耗电的系统的适合性极好。
(11)<分配给数据处理的CPU的种类和个数的初始分配设定>
在项3中,在启动处理时,作为上述数据处理的环境,上述规定的CPU至少根据用户设定(1f)从上述定义信息选择一个上述方式,根据所选择的方式将用于数据处理的CPU激活,将不使用的CPU设为不活跃(18-5)。
由此,在系统启动时,通过用户设定从最初起就对不使用的CPU将其动作设为不活跃,由此能够从最初起就抑制不必要的耗电。在系统启动时没有将不使用的CPU设为不活跃的情况下,该CPU在电源供给状态下待机,因此,与此相比,能够实现进一步的低耗电。
(12)<分配的更新>
在项11中,在对用于数据处理的CPU的种类和个数的分配进行更新时,在将不活跃的CPU分配为使用对象的情况下,将该CPU激活,相反地,在从使用对象中排除活跃的CPU的情况下,将该CPU设为不活跃(21-2)。
由此,在更新CPU的分配时,也能够抑制由未使用的CPU产生的不必要的耗电。
(13)<方式的分配更新中的逐级更新和跳过更新>
在项11中,在对分配给数据处理的CPU的种类和个数的分配进行更新时,采用一级一级地对所选择的上述方式逐级进行更新的逐级更新(21)或一次跳过多级地对所选择的上述方式进行更新的跳过更新(21b),在数据处理环境的变化在规定的范围内时采用上述逐级更新,在数据处理环境的变化超过上述规定的范围时采用上述跳过更新。
由此,能够针对急剧的负荷的变动等得到数据处理良好的跟随性。这是因为在例如CPU脱离待命状态而开始执行任务时,有时利用逐级更新不能立即得到高的数据处理性能。
(14)<时钟供给停止和/或电源供给停止>
在项11中,CPU的不活跃化是向该CPU同步时钟的供给停止和/或电源供给停止(21-2),激活是向该CPU同步时钟的供给开始和/或电源供给开始。
由此,能够容易地进行CPU的激活、不活跃化的处理。
(15)<DVFS产生的最大性能的扩大>
在项1中,在作为数据处理环境存在超过由上述定义信息定义的最大性能的性能要求时,执行DVFS(DynamicVoltage/FrequencyScaling:动态电压频率调整)处理(25),根据该要求程度,使规定的CPU的电源电压及同步时钟频率的任意一方或双方上升。
由此,对于超过由定义信息定义的最大性能的性能要求,也能够容易地满足。尤其,若对于超过最大性能的性能要求仅进行DVFS处理,则能够简化通过由定义信息定义的方式实施的CPU的分配控制。
(16)<对DVFS处理的控制方式进行定义的DVFS定义信息>
在项15中,具有DVFS用定义信息(图16),该DVFS用定义信息对根据上述性能要求的程度而作为DVFS处理对象的CPU及针对该CPU的电源电压及同步时钟频率的上升程度进行定义,参考该定义信息来执行DVFS处理。
由此,能够容易地进行与超过上述最大性能的性能要求相应的电源电压及同步时钟频率的倍率控制。
(17)<数据处理性能和耗电量有多个不同等级的CPU的种类和个数的组合方式>
在按照每个种类搭载有多个数据处理性能和耗电量不同的多种CPU(8a~8d、9a~9d)的非对称多CPU系统中,与数据处理的环境相应地对所使用的CPU的种类和个数的组合进行调整的多CPU系统的调整方法包括:
(a)判别处理(19),判别数据处理的环境;
(b)选择处理(21),基于该判别结果,以使整体性的数据处理性能和耗电量的最大值逐级不同的方式从对CPU的种类和个数的组合的多个方式进行定义的定义信息(10、13)选择一个方式;和
(c)控制处理(21),向以所选择的方式而被特定的CPU分配数据处理。
由此,由于只要根据针对定义信息的判别处理的结果来进行针对数据处理的CPU分配即可,所以以向数据处理性能高的CPU仅分配负荷大的任务并向低耗电的CPU仅分配负荷小的任务的方式进行的控制可以不全部依赖于OS的任务调度器或任务分配器,也不需要为了进行这样的处理而使OS的任务调度器或任务分配器最优化。另外,由于能够最大程度地利用全部CPU,所以CPU资源的运转效率也良好,而且,通过针对CPU的数据处理分配而能够实现的性能不限于高的数据处理性能或低的数据处理性能,还能够实现中间性的数据处理性能,因此认为几乎不会有不必要的耗电。因此,通过利用该方法,能够根据数据处理负荷等的数据处理环境抑制不必要的耗电,并且能够易于实现必要的数据处理性能。
(18)<按数据处理性能和耗电量逐级增加的方向组合的方式>
在项17中,上述定义信息保有的CPU的种类和个数的组合的多个方式是按照使数据处理性能和耗电量逐级增加的方向组合CPU的种类和个数的方式(10、13)。
由此,能够唯一地选择满足必要处理性能的最小性能的方式。
(19)<按逐级满足所要求的处理性能的方向组合的方式>
在项17中,上述定义信息保有的CPU的种类和个数的组合的多个方式是按照逐级满足根据数据处理的环境所要求的处理性能的方向组合CPU的种类和个数的方式(10、13),并选择满足所要求的处理性能的最小性能的方式。
由此,能够唯一地选择满足必要处理性能的最小性能的方式。
(20)<数据处理的负荷、发热状况、电池余量、用户设定>
在项18或19中,上述数据处理的环境是以数据处理的负荷(1b)的大小掌握的第一环境、以数据处理的负荷(1b)的大小及发热状况(1c)掌握的第二环境、以数据处理的负荷(1b)的大小、发热状况(1c)及电池余量(1d)掌握的第三环境、或者以用户设定(1e、1f)、数据处理的负荷(1b)的大小、发热状况(1c)及电池余量(1d)掌握的第四环境。
由此,根据第一环境,能够就针对数据处理能力的富余度这一点来掌握数据处理的环境。根据第二环境,能够就考虑了发热状况的数据处理能力的富余度这一点来掌握数据处理的环境。根据第三环境,能够就考虑了发热状况和电源供给极限的数据处理能力的富余度这一点来掌握数据处理的环境。根据第四环境,能够就考虑了发热状况和电源供给极限的数据处理能力的富余度这一点来掌握数据处理的环境,并且能够将用户设定反映至数据处理环境。
(21)<由数据处理性能和耗电量带来的CPU的发热状况>
在项20中,上述发热状况是数据处理性能和耗电量相对大的CPU的组所包含的CPU的发热状况。
由此,能够掌握对数据处理能力带来影响的发热状态。当然,还能够监视数据处理性能和耗电量小的CPU的组中的CPU的发热状况。
(22)<数据处理性能和耗电量大的种类以及数据处理性能和耗电量小的种类>
在项17中,上述CPU的种类是根据CPU的数据处理性能和耗电量的大小不同来分类的CPU的多个组。例如,上述CPU的种类是数据处理性能和耗电量大的CPU的组(8)以及数据处理性能和耗电量小的CPU的组(9)。
由此,通过将分组设为2组,不会使控制过度复杂化,能够针对每个方式的定义,来改变CPU的分配。当然,也可以进行3组以上的分组。
(23)<比搭载CPU的个数多的组合方式数量>
在项17中,上述CPU的种类和个数的组合的方式的数量优选比例如所搭载的CPU的个数多。
由此,能够细分与CPU的种类和个数的组合的方式相关的等级,有助于提高耗电和数据处理性能的逐级的控制精度。
此外,当然,组合的方式的数量也可以与所搭载的CPU的个数相同或为其以下。
(24)<通过用户空间的控制程序向内核通知>
在项17中,控制分配给数据处理的CPU的种类和个数的处理是根据用户空间的控制程序(1),将能够用于数据处理的CPU的种类和个数向内核通知的处理。
由此,能够易于将利用定义信息参考了的方式关联至CPU的分配控制。
(25)<称为控制组的内核功能>
在项17中,通过上述控制程序通知的处理是通过从用户空间来控制内核的调度器的内核功能而实现的。
由此,能够有效地移用内核的既存功能。
(26)<执行控制程序的CPU>
在项25中,执行上述控制程序的CPU是数据处理性能和耗电量相对小的CPU的组(9)中的规定的CPU。
由此,针对不需要高度处理的数据处理而使用数据处理性能和耗电量相对小的CPU,向要减少耗电的系统的适合性极好。
(27)<分配给数据处理的CPU的种类和个数的初始分配设定>
在项26中,在启动处理时,作为上述数据处理的环境,上述规定的CPU至少根据用户设定(1f)从上述定义信息选择一个上述方式,根据所选择的方式将用于数据处理的CPU激活,将不使用的CPU设为不活跃(18-5)。
由此,在系统启动时,通过用户设定从最初起就对不使用的CPU将其动作设为不活跃,由此能够从最初起就抑制不必要的耗电。在没有将不使用的CPU设为不活跃的情况下,该CPU在电源供给状态下待机,因此,与此相比,能够实现进一步的低耗电。
(28)<分配的更新>
在项27中,在对用于数据处理的CPU的种类和个数的分配进行更新时,在将不活跃的CPU分配给使用对象的情况下,将该CPU激活,相反地,在从使用对象中排除活跃的CPU的情况下,将该CPU设为不活跃(21-2)。
由此,在更新CPU的分配时,也能够抑制由变更成不使用的CPU产生的不必要的耗电。
(29)<方式的分配更新中的逐级更新和跳过更新>
在项27中,在对分配给数据处理的CPU的种类和个数的分配进行更新时,采用一级一级地对所选择的上述方式逐级进行更新的逐级更新(21)或一次跳过多级地对所选择的上述方式进行更新的跳过更新(21b),在数据处理环境的变化在规定的范围内时采用上述逐级更新,在数据处理环境的变化超过上述规定的范围时采用上述跳过更新。
由此,能够针对急剧的负荷的变动等得到数据处理良好的跟随性。这是因为在例如CPU脱离待命状态而开始执行任务时,有时利用逐级更新不能立即得到高的数据处理性能。
(30)<时钟供给停止和/或电源供给停止>
在项27中,CPU的不活跃化是向该CPU的同步时钟供给停止和/或电源供给停止(21-2),激活是向该CPU的同步时钟供给开始和/或电源供给开始。
由此,能够容易地进行CPU的激活、不活跃化的处理。
(31)<DVFS产生的最大性能的扩大>
在项17中,在作为数据处理环境存在超过由上述定义信息定义的最大性能的性能要求时,执行DVFS(DynamicVoltage/FrequencyScaling)处理(25),根据该要求程度,使规定的CPU的电源电压及同步时钟频率的任意一方或双方上升。
由此,对于超过由定义信息定义的最大性能的性能要求,也能够容易地满足。尤其,若对于超过最大性能的性能要求仅进行DVFS处理,则能够简化通过由定义信息定义的方式实施的CPU的分配控制。
(32)<对DVFS处理的控制方式进行定义的DVFS定义信息>
在项31中,具有DVFS用定义信息(图16),该DVFS用定义信息对根据上述性能要求的程度而作为DVFS处理对象的CPU及针对该CPU的电源电压及同步时钟频率的上升程度进行定义,参考该定义信息来执行DVFS处理。
由此,能够容易地进行与超过上述最大性能的性能要求相应的电源电压及同步时钟频率的倍率控制。
2.实施方式的详细情况
对实施方式进行更详细的说明。此外,在用于说明发明的实施方式的所有附图中,对具有相同功能的要素标注相同的附图标记,并省略其重复说明。
《多CPU系统》
图2示出非对称多CPU系统的系统结构例。虽然没有特别限制,但在该图中,例示了处理器100和周边设备101经由总线(或网络)102连接的系统结构。处理器100可以由单芯片构成或由多芯片构成。周边设备101可以通过各种设备、装置构成。例如假设将携带信息通信终端装置作为多CPU系统时,处理器100进行通信协议处理及应用程序处理等,周边设备101具有液晶显示器、触摸面板、电池等。
这里,处理器100构成为按照每个种类搭载有多个数据处理性能和耗电量不同的多种CPU的非对称多处理器。作为多种CPU(中央处理装置),处理器100具有数据处理性能高且耗电大的CPU的第一组(BigCPUs)8和低耗电且数据处理性能低的CPU的第二组(LittleCPUs)9。第一组8的CPU(BigCPU)没有特别限制,是附图标记8a~8d所示的4个CPU(CPU_B#0~CPU_B#3),第二组9的CPU(LittleCPU)没有特别限制,是附图标记9a~9d所示的4个CPU(CPU_L#0~CPU_L#3)。第一组8的CPU8a~8d和第二组9的CPU9a~9d分别具有相同的构架。例如在相对于第一组8的CPU8a~8d而第二组9的CPU9a~9d的高速缓存的结构不同的情况下,通过软件仿真虚拟地实现构成完全相同的构架。第一组8的CPU8a~8d及第二组9的CPU9a~9d经由总线110与存储器111、输入输出接口电路112及周边模块113连接。周边模块113虽然没有特别图示,但具有中断控制器、DMA(DirectMemoryAccess:直接内存访问)控制器和通信控制器等。输入输出接口电路112与周边设备101连接。
《处理器的硬件及软件的结构》
图1层级地例示了处理器100的硬件及软件的结构。这里,由硬件层(HW)120、固件层(Firmware)121、内核层(Kernel)122和用户空间层(Userspace)123这4个层次构成。
上述第一组(BigCPU)8的CPU和第二组9的CPU(LittleCPU)可以分别是任意的个数,但在这里,为了便于理解说明,如上所述,由使高性能优先且消耗电流大的4个CPU(BigCPU)8a~8d和适度注重性能且抑制了消耗电流的4个CPU(LittleCPU)9a~9d构成。
固件层(Firmware)121是启动代码(Boot)7等的下级软件组,其存储在例如存储器111的ROM(只读存储器)中。
内核层(Kernel)122是Linux(注册商标)等操作系统(OS),图1示出作为代表性的组件的调度器(Scheduler)4、设备驱动器(DeviceDriver)5及电源管理(PowerManagement)6的各功能。调度器(Scheduler)4是用于任务管理的功能,进行如下的调度或分配,即根据优先顺序等将构成数据处理的进程分配给能够动作的CPU。设备驱动器(DeviceDriver)5对显卡、网卡等硬件设备和用于输入输出信息的设备进行管理。电源管理6进行暂停/恢复等的电源管理、以及与系统负荷或温度等相应的电源电压及频率的动态控制(DVFS)。
在用户层(Userspace)123中,执行用户的应用程序软件。在图1中,将该应用程序软件分类成要求处理性能低的慢进程组(SlowProcessGroup)3、和要求处理性能根据状况变高或变低地变化的动态进程组(DynamicProcessGroup)2这两组。另外,在图1中,位于左侧的软件由CPU(BigCPU)8a~8d执行,位于右侧的软件由CPU(LittleCPU)9a~9d执行。慢进程组3因由CPU(LittleCPU)9a~9d执行而被配置在右侧,而动态进程组4根据要求处理性能由CPU(BigCPU)8a~8d和CPU(LittleCPU)9a~9d执行,因此横跨图1的左右地配置。执行动态进程组4的CPU(BigCPU)8a~8d和CPU(LittleCPU)9a~9d的组合是调节器(Governor)1根据要求处理性能利用控制信号1a进行切换的。该切换是从调节器1作用于内核122的调度器4而实施的。该作用是使用Linux(注册商标)OS所支持的称为控制组(C组)的内核功能(内核所支持的控制程序)来实施的。调节器(Governor)1能够移用例如Android(注册商标)OS所支持的控制程序。此外,调节器(Governor)1当然也可以位于内核内。
以下,针对切换CPU的组合的机制进行说明。
《切换CPU的组合的机制的代表例》
图3例示了CPU(BigCPU)8a~8d和CPU(LittleCPU)9a~9d的组合的方式。在图中,将CPU(BigCPU)8a~8d图示为B1~B4,将CPU(LittleCPU)9a~9d图示为L1~L4。这里,导入表示CPU(BigCPU)8a~8d和CPU(LittleCPU)9a~9d的组合的组的虚拟处理器Vi(i=1~12)这一概念。图3的矩阵将由4个CPU(BigCPU)8a~8d和4个CPU(LittleCPU)9a~9d构成的矢量12映射为12个虚拟处理器Vi=(i=1~12)。映射的状态作为用附图标记13表示的“可能的组合”而示出。在图3中,将CPU(LittleCPU)9a~9d的各自的CPU的性能作为单位(1),CPU(BigCPU)8a~8d的性能是其2倍,关于消耗电流,CPU(BigCPU)8a~8d也设为2倍。因此,虚拟处理器Vi的下角标i表示性能。矩阵11是根据用附图标记13表示的组合将4个CPU(BigCPU)8a~8d和4个CPU(LittleCPU)9a~9d映射为12个虚拟处理器Vi(i=1~12)的变换矩阵。
12个虚拟处理器Vi(i=1~12)及用附图标记13表示的组合的方式具有作为定义信息的性质,该定义信息以使整体性的数据处理性能和耗电量的最大值逐级不同的方式,对CPU8a~8d、9a~9d的组合的多个方式进行定义。换言之,12个虚拟处理器Vi(i=1~12)及用附图标记13表示的组合的方式是按照使数据处理性能和耗电量逐级增加的方向组合CPU的种类和个数的方式。若进一步改变观点,则为根据处理负荷等的数据处理的环境而按照逐级满足所要求的处理性能的方向组合CPU的种类和个数的方式,为能够对满足所要求的处理性能的最小性能的方式进行指定的多个组合方式的映射。
图4A及图4B示出CPU的组合的比较例。图4A例示了根据系统负荷等,排他地切换所使用的CPU的组8和9的方法,图4B例示了使数据处理性能高的CPU的组8所包含的CPU8a~8d和低耗电的CPU的组9所包含的CPU9a~9d一一对应,并在对应的CPU之间,根据系统负荷排他地切换所使用的CPU的方法。在该情况下,当与图3同样地,也将CPU9a~9d和8a~8d的处理性能及耗电的关系设为1:2时,与图4A及图4B的情况下的CPU的种类和个数相关的组合如图5A及图5B所示。
在图4A及图4B的情况下,最大只能选择4个CPU,从而从附图标记13a的“可能的组合”的例子也可以明确得知,不能实现性能值9以上的V9~V12。在要求V9以上的性能时,能够通过提高CPU的频率来应对,但同时需要提高电源电压,消耗电流与频率的一次方、电压的平方成正比例,因此果然还是会造成不必要的耗电。
图6例示了虚拟处理器的分配处理的控制流程图。首先,利用抑制耗电量的CPU(LittleCPU)9a~9d内的规定的一个CPU执行启动代码7,利用执行了启动代码7的上述规定的CPU启动OS的内核(包含调度器4、设备驱动器5及电源管理6的代码)122。虽然没有特别限制,但在图6中,在步骤18的处理中涵盖到,紧接着在用户空间123中执行慢进程组3所包含的程序。
在步骤19中,调节器(Governor)1作为数据处理环境,按照热量的发生状况(Temperature)1c、电池剩余容量(BatteryLevel)1d、数据处理的负荷即处理负荷(CPULoad)1b的顺序对这些进行确认。根据确认结果,判断虚拟处理器Vi的切换是否必要(步骤20)。在判断为变更是必要的情况下,选择适当的虚拟处理器Vi,将其分配给动态处理器组2(步骤21)。
调节器1如何取得热量的发生状况1c、电池剩余容量1d、处理负荷1b的信息的一例如图7所示。热量的发生1c和电池剩余容量1d分别是从硬件层120的热传感器(ThermalSensor)25和电池传感器(BatterySensor)26经由设备驱动器(DeviceDriver)5取得的。处理负荷(CPULoad)1b是从内核层122的调度器4取得的。处理负荷1b能够根据例如CPU占有率来掌握。此外,在图7中,省略了固件层121的图示。
参照图8,说明调节器(Governor)1如何判断是否需要虚拟处理器Vi的切换且根据其结果如何选择适当的虚拟处理器Vi这样的处理例。图8汇总了根据上述的3个输入即热量的发生状况(Temperature)1c、电池剩余容量(BatteryLevel)1d、处理负荷(CPULoad)1b来选择适当的虚拟处理器Vi的动作(Operation)。图8中的阈值等的具体的数值、动作(选择V1等)是用于说明机制的简单的一例,当然能够根据实际的系统而变化。在图8的例子中,在温度比摄氏70度大的情况下,判断为异常事态,无论电池剩余容量或处理负荷如何,作为虚拟处理器都选择消耗电流最小的V1。
在步骤20中,虚拟处理器的变更是否必要的判断条件的一例如图8所示。在图8中是动作为NOP(不操作)的情况下的条件,即,在温度为摄氏70度以下,电池剩余容量为50%以上且处理负荷为30%以上70%以下的情况和电池剩余容量为50%以下且处理负荷为30%以上的情况下的这2个条件。可知在图6的步骤21中选择适当的虚拟处理器Vi的条件是在图8中上述以外的剩余的3个条件。即,在温度为摄氏70度以下,电池剩余容量为50%以上且处理负荷比70%大的情况下,分配加一的处理量的虚拟处理器(Vi→Vi+1)。相反地,在处理负荷比30%小的情况下,转换成减一的处理量的虚拟处理器(Vi→Vi-1)。在电池剩余容量为50%以下且处理负荷比30%小的情况下,转换成减一的处理量的虚拟处理器(Vi→Vi-1)。但是,在图8的例子中,在已经分配了最大处理性能的V12或最小处理性能的V1但不能在现状的基础上向上或向下转换的情况下,自然要保持现状。
在图6的步骤21中将虚拟处理器Vi分配给动态进程组之后,等待事件(步骤22)。在事件等待期间内,利用步骤21中分配的虚拟处理器Vi执行图1的动态进程组2的程序。步骤22中等待的事件是再次要求虚拟处理器分配处理的事件,例如,以某时间间隔启动的计时器中断、或温度上升到规定的阈值以上的情况下的热传感器中断等。这里说明的热量的发生状况的确认和处理只是一例,不是必须条件。以上说明的步骤19至22的处理反复实施直到在步骤23中判断为一系列的程序处理的结束。
对虚拟处理器Vi的分配处理进行控制的图1的调节器(Governor)1使例如CPU(LittleCPU)9a~9d内的一个CPU动作。在图中,虽然处于用户空间层123,但也可以处于内核层122。需要利用用户空间层123的软件进行高性能处理的程序预先放入能够动态地切换虚拟处理器Vi的动态进程组2。如上所述,针对动态进程组2的数据处理的CPU分配,即虚拟处理器Vi的分配只要基于图8例示的规则根据图3的定义信息来进行即可。总之,根据电池的剩余容量、处理器内的热量的发生状况或所执行的程序的负荷,能够利用CPU(BigCPU)8a~8d和CPU(LittleCPU)9a~9d的最佳组合来执行用于数据处理的CPU的设定。因此,以对数据处理性能高的CPU仅分配负荷大的任务且对低耗电的CPU仅分配负荷小的任务的方式进行的控制可以不完全依赖于OS的调度器4(或任务分配器)。因此,不需要为了进行这样的处理而使OS的调度器4(或任务分配器)最优化。另外,能够最大限度地利用全部CPU8a~8d、9a~9d,从而CPU资源的运转效率也好,而且,通过针对CPU的数据处理分配而能够实现的性能不限于高的数据处理性能或低的数据处理性能,还能够实现中间性的数据处理性能,因此认为几乎不会有不必要的耗电。因此,能够根据数据处理负荷等的数据处理环境抑制浪费不必要的耗电,并且能够易于实现必要的数据处理性能。
《虚拟处理器Vi的分配更新中的逐级更新和跳过更新》
作为虚拟处理器Vi的分配规则的一例而示出的图8是在更新虚拟处理器Vi的分配时,采用一级一级地逐级对虚拟处理器Vi进行更新的逐级更新。不仅限于此,还能够采用一次跨过(跳过)多级地对更新目标的虚拟处理器Vi进行更新的跳过更新。图9例示了采用虚拟处理器Vi的逐级更新并且还能够采用跳过更新的情况下的虚拟处理器分配流程。这里,示出了从用户发出虚拟处理器选择的迅速上升、迅速下降的指示的情况下的例子。在用户启动负荷重的应用程序的情况下,需要虚拟处理器选择的迅速上升,但在负荷重的应用程序的执行结束后,为了减少电池容量的不必要的消耗,需要迅速地下降。若存在基于图7的用户指令(UserInstruction)1e的迅速上升、迅速下降的指示,则判断为需要变更虚拟处理器(图9的步骤20),针对其原因是否为迅速上升或迅速下降的指示的判断在下一步骤20b中进行。在存在迅速上升或迅速下降的指示的情况下,进行基于步骤21b的指示的虚拟处理器Vi选择。在该例中,在迅速上升的情况下,选择最大性能的V12,在迅速下降的情况下,选择最小性能的V1,但也不妨根据个别要求进行的任意选择。
《CPU的电源控制》
在用户设定或在电池余量变少时的方针为省电优先的情况下,通过还采用动态地关闭未使用的CPU的电源这样的机制,能够实现进一步减少耗电量。另外,在处理器100内部的温度异常上升时,通过将与CPU(BigCPU)8a~8d关联的电源全部关闭,能够降低温度。针对进一步应用该机制的具体例进行说明。图10层级地例示了在还考虑了CPU的电源控制时的处理器100的硬件及软件的结构。对与这里的说明没有直接关系的部分省略了图示。
在图10中,向图1追加的重要组件是CPU热插拔(CPUHotplug)6a和电源管理硬件(PowerManagementHW)14。CPU热插拔(CPUHotplug)6a是Linux(注册商标)内核(LinuxKernel)的电源管理(PowerManagement)6的一个功能,通过使用硬件层120的电源管理硬件14,能够在其运转过程中执行所搭载的全部CPU8a~8d、9a~9d的电源的接通/断开。在使用其他OS的情况下,也能够使用相同的功能。CPU热插拔6a具有面向用户空间层123的接口,在图10的例子中,例如通过调节器(Governor)1控制该接口,由此,能够进一步强化基于图1说明的省电效果。
图11例示了在采用图10的结构的情况下的初始化部分的处理流程。图11所示的初始化部分与图6的图4的启动处理(Boot)18对应。
在图11的步骤18-1中,进行各种设定。例如,进行所使用的单片模块类的全部电源接通、时钟频率设定、中断矢量表格的设定等。在进行了各种设定之后,启动内核层(Kerne)122的程序(步骤18-2)。在启动了内核层122的程序之后,作为初始化处理的一环,确认用户设定模式、温度及电池余量(步骤18-3),基于该确认结果,判断是否需要减少应动作的CPU(步骤18-4)。在需要减少时,使用CPU热插拔6a的功能从使用对象排除不需要的CPU(步骤18-5)。
图12示出对在步骤18-4、18-5中减少不需要的CPU时的判断所使用的标准进行规定的表格的一例。根据热量的发生状况(Temperature)1c、电池剩余容量(BatteryLevel)1d、用户设定(UserSetting)1f,进行用于减少CPU的处理(Operation)。处理(Operation)的内容只是为了说明其机制的简单的一例,当然能够根据实际的系统而变化。在图12的例子中,在温度比摄氏70度大的情况下,判断为异常事态,无论电池剩余容量或用户设定如何,都仅使CPU(LittleCPU)9a~9d内的一个CPU的电源接通。在温度比摄氏70度低的情况下,进行根据重视处理能力或使低耗电优先这样的用户设定和电池电量的选择。
在启动处理中,根据用户设定等,使所使用的CPU的电源接通,使未使用的CPU的电源断开,由此,在系统启动时,能够通过用户设定从最初起对不使用的CPU将其动作设为不活跃,因此,能够从最初起就抑制不必要的耗电。在没有将不使用的CPU设为不活跃的情况下,该CPU以电源供给状态待机,与这种状况相比更能够实现低耗电。
然后,说明在初始设定后的系统运转过程中,能够更新用于数据处理的CPU的种类和个数的分配。在系统运转过程中,也通过图10的调节器(Governor)1控制CPU热插拔6a,由此能够进一步强化省电效果。图13例示了其处理流程。
在图13中,向图6的流程图追加了步骤21-2。在调节器(Governor)1选择适当的虚拟处理器Vi并分配给动态进程组2之后,通过CPU热插拔6a动态地将变得不使用的CPU的电源断开。通过断开电源,使得不必要的漏电流不再流动,能够得到大的省电效果。尤其是,在不使用的情况下,能够将不仅动作中的消耗电流而且漏电流也很大的重视性能的CPU(BigCPU)8a~8d的电源断开的效果很大。
《DVFS控制》
在向对虚拟处理器Vi的分配动态地切换的动态进程组2的CPU分配为全部CPU(BigCPU)8a~8d和CPU(LittleCPU)9a~9d这8个的状态下,即使接收到进一步提高性能的要求,仅凭借图3的选择方式,只会停滞于该状态,也不能实现性能提高。若可以增加耗电量的话,则能够通过提高CPU的电压和频率这两者,来实现进一步的性能提高。该技术已知为DVFS(DynamicVoltageFrequencyScaling)这样的名称。但是,由于耗电量与电压的平方、频率的一次方成正比,所以为了将耗电的增加抑制到必要最低限度,需要极其精细的控制。基于非对称多处理器系统的效率好的安装方法并非已知。通过在上述图10的例子的基础上进一步组合DVFS控制,能够实施将耗电抑制到必要最低限度以实现连续的性能提高的控制。图14层级地例示了进一步追加了DVFS控制的处理器100的硬件及软件的结构。对与这里的说明没有直接关系的部分省略了图示。
在图14中采用的重要的组件是DVFS6b、电源管理硬件(PowerManagementHW)14及时钟控制硬件(ClockControlHW)16。DVFS6b是Linux(注册商标)内核(LinuxKernel)的电源管理(PowerManagement)6的一个功能,使用硬件层120的电源管理硬件(PowerManagementHW)14和时钟控制硬件(ClockControlHW)16,使所搭载的全部CPU8a~8d、9a~9d的电源电压14a、14b与同步时钟16a、16b连动地进行动态控制。DVFS6b响应从调节器1接收的升压请求(BoostRequest)15而开始控制。
图15例示了向图6追加了DVFS处理的控制流程。从该图可知,在已选择了最高性能(V12)的状态(参照步骤S20c)下,在接收到进一步的性能提高要求时,执行DVFS处理(步骤25),其中最高性能(V12)是指,虚拟处理器Vi的分配被动态地切换的动态进程组2使用了CPU(BigCPU)8a~8d和CPU(LittleCPU)9a~9d这8个全部。
图16例示了步骤25的DVFS处理的内容。在本说明书的例子中,将CPU(LittleCPU)9a~9d的处理性能假定为基准的1,将CPU(BigCPU)8a~8d的处理性能假定为2,但这里,将当初向双方的组8、9的CPU(BigCPU)8a~8d和CPU(LittleCPU)9a~9d供给的电源电压作为基准的1,当在步骤25的DVFS处理中,将该电源电压提高到1.2倍,并使同步时钟频率也与其连动地高速化时,假定双方的组8、9的CPU(BigCPU)8a~8d和CPU(LittleCPU)9a~9d的处理性能分别成为1.5和3。但是,这些假定是为了便于说明该例,其实自然是与实际的系统相应地变化的。
在图16中例示了以应用DVFS处理之前的虚拟处理器V12中的最高性能的状态(合成性能为12)为基准来提高性能的多个方式。在以此为基准,实现例如合计性能为13的情况下,将DVFS处理应用于CPU(LittleCPU)19a~19d内的2个CPU。由于CPU(LittleCPU)9a~9d内的2个性能分别从1提高到1.5,所以如性能详细内容记载的那样,合计性能成为13。合计性能为14以上的情况也同样。在“BigCPU电压”、“LittleCPU电压”的栏中,记载了性能提高所需的电压也与性能提高相应地增加。在实现例如合计性能为14的情况下,能够将DVFS处理应用于CPU(LittleCPU)9a~9d内的2个和CPU(BigCPU)8a~8d内的1个,但在步骤25的DVFS处理中,根据与图16的定义相应的定义信息,选择仅使一方的电源电压增加到1.2的方式。这是因为,与提高双方的组的CPU的电源电压相比,仅使低功率的CPU(LittleCPU)提高电源电压的方式在低耗电方面更优良。
在暂且与要求性能相应地提高了数据处理性能之后,在要求性能变低时也同样地,根据图16的定义来降低频率和电源电压。
《针对不涉及变更虚拟处理器的系统负荷变动的CPU时钟控制》
在图8所示的虚拟处理器的选择或更新的逻辑中,针对不涉及变更虚拟处理器的系统负荷变动,将虚拟处理器Vi选择的操作(Operation)设为不操作(NOP),但不限于此。如图17所示,也可以在从所选择的虚拟处理器的处理性能的范围不进入相邻的处理性能的虚拟处理器的性能的范围的范围内,对CPU的同步时钟频率进行调整。
以上,基于实施方式具体地说明了本发明人提出的发明,但本发明不限于此,在不脱离其主旨的范围内,当然能够进行各种变更。
例如CPU的种类不限于数据处理性能高的CPU的组和低耗电的CPU的组这两种,还能够追加具有在两者中间的数据处理能力的CPU的组,或者采用3种以上。另外,属于一组的CPU的数量不限于4个,属于各组的CPU的数量也不限于都相同。在本说明书中,CPU与处理器核心同义。因此,CPU不仅包括运算部、命令控制部、数据获取部,还可以包括高速缓存、地址转换缓冲器、RAM(随机存储器)、FPU(浮点运算单元)等的加速器的硬件,另外,当然也可以采用具有通过软件仿真它们的功能的结构。
另外,以使整体性的数据处理性能和耗电量的最大值逐级不同的方式通过定义信息定义的CPU的种类和个数的组合的多个方式,不限于图3所例示的V1~V12这一多级方式,组合内容或等级的数量能够适当变更。
另外,针对以根据数据处理的环境从上述定义信息选择的方式而被特定的CPU分配数据处理的处理不限于特定的CPU使用调节器或C组的控制程序来作用于内核层122的调度器4的方法。还能够使用内核层122的其他功能来实现。
数据处理的环境不限于数据处理的负荷、发热状况、电池余量、用户设定。
另外,在上述说明中,关于作为数据处理的环境而掌握的要素,说明了用户设定(1e、1f)、数据处理的负荷(1b)的大小、发热状况(1c)及电池余量(1d),但不仅限于此。另外,这些要素也可以单独通过数据处理的负荷(1b)的大小来掌握,或通过数据处理的负荷(1b)的大小及发热状况(1c)来掌握,或者通过数据处理的负荷(1b)的大小、发热状况(1c)及电池余量(1d)来掌握。
多CPU系统能够应用于使用了搭载有所谓big.LITTLECPU核心的SoC(Systemonachip:片上系统)或微机等的电子设备(数据处理系统)。
工业实用性
本发明能够广泛地适用于按照每个种类搭载有多个数据处理性能和耗电量不同的多种CPU的非对称多CPU系统以及多CPU系统的调整方法,该多CPU系统的调整方法是在非对称多CPU系统中,根据与数据处理的环境,对所使用的CPU的种类和个数的组合进行调整的方法。另外,能够适用于以智能电话为代表的电池驱动型的携带信息终端装置等。
附图标记说明
1调节器(Governor)
1a与要求处理性能相应的控制信号
1b处理负荷(CPULoad)
1c热量的发生状况(Temperature)
1d电池剩余容量(BatteryLevel)
1e用户指令(UserInstruction)
1f用户设定(UserSetting)
2动态进程组(DynamicProcessGroup)
3慢进程组(SlowProcessGroup)
4调度器(Scheduler)
5设备驱动器(DeviceDriver)
6电源管理(PowerManagement)
6aCPU热插拔(CPUHotplug)
6bDVFS
7启动代码(Boot)
8数据处理性能高且耗电大的CPU的第一组(BigCPUs)
8a~8d第一组8的CPU(CPU_B#0~CPU_B#3)
9低耗电且数据处理性能低的CPU的第二组(LittleCPUs)
9a~9d第二组9的CPU(CPU_L#0~CPU_L#3)
Vi虚拟处理器
14电源管理硬件(PowerManagementHW)
14a、14b电源电压
15升压请求(BoostRequest)
16时钟控制硬件(ClockControlHW)
16a、16b同步时钟
100处理器
101周边设备
102总线(或网络)
110总线
111存储器
112输入输出接口电路
113周边模块
120硬件层(HW)
121固件层(Firmware)
122内核层(Kernel)
123用户空间层(Userspace)
Claims (20)
1.一种多CPU系统,其为按照每个种类搭载有多个数据处理性能和耗电量不同的多种CPU的非对称多CPU系统,其特征在于,
具有定义信息,该定义信息以使整体性的数据处理性能和耗电量的最大值逐级不同的方式对CPU的种类和个数的组合的多个方式进行定义,针对以根据数据处理的环境从所述定义信息中选择的方式而被特定的CPU分配数据处理。
2.如权利要求1所述的多CPU系统,其特征在于,
所述定义信息所保有的CPU的种类和个数的组合的多个方式,是按照使数据处理性能和耗电量逐级增加的方向组合CPU的种类和个数的方式。
3.如权利要求1所述的多CPU系统,其特征在于,
所述定义信息所保有的CPU的种类和个数的组合的多个方式,是按照逐级满足根据数据处理的环境所要求的处理性能的方向组合CPU的种类和个数的方式,选择满足所要求的处理性能的最小性能的方式。
4.如权利要求2或3所述的多CPU系统,其特征在于,
所述数据处理的环境是以数据处理的负荷的大小来掌握的第一环境、以数据处理的负荷的大小及发热状况来掌握的第二环境、以数据处理的负荷的大小、发热状况及电池余量来掌握的第三环境、或者以用户设定、数据处理的负荷的大小、发热状况及电池余量来掌握的第四环境。
5.如权利要求4所述的多CPU系统,其特征在于,
所述发热状况是数据处理性能和耗电量相对大的CPU的组所包含的CPU的发热状况。
6.如权利要求1所述的多CPU系统,其特征在于,
所述CPU的种类是根据CPU的数据处理性能和耗电量的大小不同而分类出的CPU的多个组。
7.如权利要求1所述的多CPU系统,其特征在于,
所述CPU的种类和个数的组合的多个方式的数量比所搭载的CPU的个数更多。
8.如权利要求1所述的多CPU系统,其特征在于,
分配给数据处理的CPU的种类和个数的控制,是通过用户空间的控制程序,将能够用于数据处理的CPU的种类和个数通知给内核的处理。
9.如权利要求8所述的多CPU系统,其特征在于,
通过所述控制程序通知的处理是通过从所述用户空间对调度器进行控制的内核功能而实现的。
10.如权利要求9所述的多CPU系统,其特征在于,
执行所述控制程序的CPU是数据处理性能和耗电量相对小的CPU的组中的规定的CPU。
11.如权利要求3所述的多CPU系统,其特征在于,
在启动处理时,作为所述数据处理的环境,所述规定的CPU至少根据用户设定从所述定义信息中选择一个所述方式,根据所选择的方式将用于数据处理的CPU激活,将不使用的CPU设为不活跃。
12.如权利要求11所述的多CPU系统,其特征在于,
在对用于数据处理的CPU的种类和个数的分配进行更新时,将不活跃的CPU分配为使用对象的情况下将该CPU激活,相反地在从使用对象排除活跃的CPU的情况下,使该CPU不活跃化。
13.如权利要求11所述的多CPU系统,其特征在于,
在对分配给数据处理的CPU的种类和个数的分配进行更新时,采用一级一级地对所选择的所述方式逐级进行更新的逐级更新、或一次跨过多级地对所选择的所述方式进行更新的跳过更新,在数据处理环境的变化在规定的范围内时采用所述逐级更新,在数据处理环境的变化超过所述规定的范围时采用所述跳过更新。
14.如权利要求11所述的多CPU系统,其特征在于,
CPU的不活跃化是向该CPU的同步时钟供给停止和/或电源供给停止,激活是向该CPU的同步时钟供给开始和/或电源供给开始。
15.如权利要求1所述的多CPU系统,其特征在于,
在作为数据处理环境存在超过由所述定义信息定义的最大性能的性能要求时,执行DVFS处理,根据该要求程度,使规定的CPU的电源电压及同步时钟频率的任意一方或双方上升,其中DVFS为动态电压频率调整。
16.如权利要求15所述的多CPU系统,其特征在于,
具有DVFS用定义信息,该DVFS用定义信息根据所述性能要求的程度,对作为DVFS处理对象的CPU及针对该CPU的电源电压及同步时钟频率的上升程度进行定义,参考该定义信息执行DVFS处理。
17.一种多CPU系统的调整方法,在按照每个种类搭载有多个数据处理性能和耗电量不同的多种CPU的非对称多CPU系统中,根据数据处理的环境对所使用的CPU的种类和个数的组合进行调整,所述多CPU系统的调整方法的特征在于,包括:
判别处理,判别数据处理的环境;
选择处理,基于该判别结果,从定义信息选择一个方式,所述定义信息以使整体性的数据处理性能和耗电量的最大值逐级不同的方式从对CPU的种类和个数的组合的多个方式进行定义;和
控制处理,向以所选择的方式而被特定的CPU分配数据处理。
18.如权利要求17所述的多CPU系统的调整方法,其特征在于,
所述定义信息所保有的CPU的种类和个数的组合的多个方式,是按照使数据处理性能和耗电量逐级增加的方向组合CPU的种类和个数的方式。
19.如权利要求17所述的多CPU系统的调整方法,其特征在于,
所述定义信息所保有的CPU的种类和个数的组合的多个方式,是按照逐级满足根据数据处理的环境所要求的处理性能的方向组合CPU的种类和个数的方式,选择满足所要求的处理性能的最小性能的方式。
20.如权利要求18或19所述的多CPU系统的调整方法,其特征在于,
所述数据处理的环境是以数据处理的负荷的大小来掌握的第一环境、以数据处理的负荷的大小及发热状况来掌握的第二环境、以数据处理的负荷的大小、发热状况及电池余量来掌握的第三环境、或者以用户设定、数据处理的负荷的大小、发热状况及电池余量来掌握的第四环境。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/064370 WO2014188561A1 (ja) | 2013-05-23 | 2013-05-23 | マルチcpuシステム及びマルチcpuシステムのスケーリング方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105247486A true CN105247486A (zh) | 2016-01-13 |
CN105247486B CN105247486B (zh) | 2019-05-21 |
Family
ID=51933144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380076775.0A Active CN105247486B (zh) | 2013-05-23 | 2013-05-23 | 多cpu系统及多cpu系统的调整方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9996400B2 (zh) |
JP (1) | JP6483609B2 (zh) |
CN (1) | CN105247486B (zh) |
WO (1) | WO2014188561A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095567A (zh) * | 2016-05-31 | 2016-11-09 | 广东欧珀移动通信有限公司 | 一种安装任务的分配方法及移动终端 |
CN108958449A (zh) * | 2017-05-26 | 2018-12-07 | 中兴通讯股份有限公司 | 一种cpu功耗调整方法与装置 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102205836B1 (ko) * | 2014-01-29 | 2021-01-21 | 삼성전자 주식회사 | 태스크 스케줄링 방법 및 장치 |
US9785481B2 (en) * | 2014-07-24 | 2017-10-10 | Qualcomm Innovation Center, Inc. | Power aware task scheduling on multi-processor systems |
JP6428309B2 (ja) * | 2015-01-27 | 2018-11-28 | 富士通株式会社 | 演算処理システムおよび演算処理システムの制御方法 |
US10031574B2 (en) * | 2015-05-20 | 2018-07-24 | Mediatek Inc. | Apparatus and method for controlling multi-core processor of computing system |
US11620336B1 (en) | 2016-09-26 | 2023-04-04 | Splunk Inc. | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
US10353965B2 (en) | 2016-09-26 | 2019-07-16 | Splunk Inc. | Data fabric service system architecture |
US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US11281706B2 (en) * | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US11550847B1 (en) | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
US11567993B1 (en) | 2016-09-26 | 2023-01-31 | Splunk Inc. | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
US20180089324A1 (en) | 2016-09-26 | 2018-03-29 | Splunk Inc. | Dynamic resource allocation for real-time search |
US11416528B2 (en) | 2016-09-26 | 2022-08-16 | Splunk Inc. | Query acceleration data store |
US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in a data intake and query system |
US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US10282226B2 (en) | 2016-12-20 | 2019-05-07 | Vmware, Inc. | Optimizing host CPU usage based on virtual machine guest OS power and performance management |
JP6825449B2 (ja) * | 2017-03-29 | 2021-02-03 | 富士通株式会社 | 情報処理装置,試験プログラムおよび試験方法 |
US10417054B2 (en) * | 2017-06-04 | 2019-09-17 | Apple Inc. | Scheduler for AMP architecture with closed loop performance controller |
US11989194B2 (en) | 2017-07-31 | 2024-05-21 | Splunk Inc. | Addressing memory limits for partition tracking among worker nodes |
US11921672B2 (en) | 2017-07-31 | 2024-03-05 | Splunk Inc. | Query execution at a remote heterogeneous data store of a data fabric service |
US10896182B2 (en) | 2017-09-25 | 2021-01-19 | Splunk Inc. | Multi-partitioning determination for combination operations |
JP6992515B2 (ja) * | 2018-01-05 | 2022-01-13 | コニカミノルタ株式会社 | Gpu割当プログラム、gpu割当方法、コンピュータ読取可能な記録媒体、および、gpu割当装置 |
US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
CN109960395B (zh) * | 2018-10-15 | 2021-06-08 | 华为技术有限公司 | 资源调度方法和计算机设备 |
WO2020220216A1 (en) | 2019-04-29 | 2020-11-05 | Splunk Inc. | Search time estimate in data intake and query system |
US11715051B1 (en) | 2019-04-30 | 2023-08-01 | Splunk Inc. | Service provider instance recommendations using machine-learned classifications and reconciliation |
US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
US11922222B1 (en) | 2020-01-30 | 2024-03-05 | Splunk Inc. | Generating a modified component for a data intake and query system using an isolated execution environment image |
US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW439025B (en) * | 1995-11-14 | 2001-06-07 | Toshiba Corp | Multiprocessor computer |
JP2005085164A (ja) * | 2003-09-10 | 2005-03-31 | Sharp Corp | マルチプロセッサシステムの制御方法およびマルチプロセッサシステム |
CN101558383A (zh) * | 2006-12-14 | 2009-10-14 | 英特尔公司 | 处理器的电源管理方法和装置 |
JP2010231329A (ja) * | 2009-03-26 | 2010-10-14 | Fuji Xerox Co Ltd | 情報処理装置、画像処理装置、画像出力装置、画像出力システム、プログラム |
CN102819291A (zh) * | 2011-06-08 | 2012-12-12 | 财团法人资讯工业策进会 | 用于一异质性电脑系统的桥接逻辑装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0659906A (ja) | 1992-08-10 | 1994-03-04 | Hitachi Ltd | 並列計算機の実行制御方法 |
JP2004280378A (ja) | 2003-03-14 | 2004-10-07 | Handotai Rikougaku Kenkyu Center:Kk | 半導体装置 |
JP2007213286A (ja) * | 2006-02-09 | 2007-08-23 | Hitachi Ltd | システム装置 |
JP5079342B2 (ja) * | 2007-01-22 | 2012-11-21 | ルネサスエレクトロニクス株式会社 | マルチプロセッサ装置 |
JP2009230220A (ja) * | 2008-03-19 | 2009-10-08 | Fuji Xerox Co Ltd | 情報処理装置、及び画像処理装置 |
JP2011209846A (ja) | 2010-03-29 | 2011-10-20 | Panasonic Corp | マルチプロセッサシステムとそのタスク割り当て方法 |
US8707314B2 (en) * | 2011-12-16 | 2014-04-22 | Advanced Micro Devices, Inc. | Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations |
US10185566B2 (en) * | 2012-04-27 | 2019-01-22 | Intel Corporation | Migrating tasks between asymmetric computing elements of a multi-core processor |
US8984200B2 (en) * | 2012-08-21 | 2015-03-17 | Lenovo (Singapore) Pte. Ltd. | Task scheduling in big and little cores |
US10073779B2 (en) * | 2012-12-28 | 2018-09-11 | Intel Corporation | Processors having virtually clustered cores and cache slices |
KR102082859B1 (ko) * | 2013-01-07 | 2020-02-28 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법 |
US9218198B2 (en) * | 2013-03-13 | 2015-12-22 | Oracle America, Inc. | Method and system for specifying the layout of computer system resources |
-
2013
- 2013-05-23 CN CN201380076775.0A patent/CN105247486B/zh active Active
- 2013-05-23 JP JP2015517999A patent/JP6483609B2/ja active Active
- 2013-05-23 WO PCT/JP2013/064370 patent/WO2014188561A1/ja active Application Filing
- 2013-05-23 US US14/785,617 patent/US9996400B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW439025B (en) * | 1995-11-14 | 2001-06-07 | Toshiba Corp | Multiprocessor computer |
JP2005085164A (ja) * | 2003-09-10 | 2005-03-31 | Sharp Corp | マルチプロセッサシステムの制御方法およびマルチプロセッサシステム |
CN101558383A (zh) * | 2006-12-14 | 2009-10-14 | 英特尔公司 | 处理器的电源管理方法和装置 |
JP2010231329A (ja) * | 2009-03-26 | 2010-10-14 | Fuji Xerox Co Ltd | 情報処理装置、画像処理装置、画像出力装置、画像出力システム、プログラム |
CN102819291A (zh) * | 2011-06-08 | 2012-12-12 | 财团法人资讯工业策进会 | 用于一异质性电脑系统的桥接逻辑装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095567A (zh) * | 2016-05-31 | 2016-11-09 | 广东欧珀移动通信有限公司 | 一种安装任务的分配方法及移动终端 |
CN106095567B (zh) * | 2016-05-31 | 2019-08-30 | Oppo广东移动通信有限公司 | 一种安装任务的分配方法及移动终端 |
CN108958449A (zh) * | 2017-05-26 | 2018-12-07 | 中兴通讯股份有限公司 | 一种cpu功耗调整方法与装置 |
CN108958449B (zh) * | 2017-05-26 | 2023-07-07 | 中兴通讯股份有限公司 | 一种cpu功耗调整方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
US20160085596A1 (en) | 2016-03-24 |
US9996400B2 (en) | 2018-06-12 |
JP6483609B2 (ja) | 2019-03-13 |
CN105247486B (zh) | 2019-05-21 |
WO2014188561A1 (ja) | 2014-11-27 |
JPWO2014188561A1 (ja) | 2017-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105247486A (zh) | 多cpu系统及多cpu系统的调整方法 | |
US9201490B2 (en) | Power management for a computer system | |
US9851768B2 (en) | Voltage regulator control system | |
CN103597449B (zh) | 操作系统解耦的异构计算 | |
CN100511151C (zh) | 多路多核服务器及其cpu的虚拟化处理方法 | |
KR20130061747A (ko) | 코어 마다의 전압 및 주파수 제어 제공 | |
CN107111349B (zh) | 用于片上多核系统的驱动基于访问的资源的低功耗控制和管理 | |
US20130167152A1 (en) | Multi-core-based computing apparatus having hierarchical scheduler and hierarchical scheduling method | |
TW200941209A (en) | Power-aware thread schedulingard and dynamic use of processors | |
CN104050137B (zh) | 一种异构操作系统中内核运行的方法及装置 | |
CN104252390A (zh) | 资源调度方法、装置和系统 | |
WO2012014014A2 (en) | Multi-Core Processor and Method of Power Management of a Multi-Core Processor | |
CN104583896A (zh) | 向处理器的异构计算元件分配功率 | |
CN102063405B (zh) | 多处理器计算机系统及操作方法 | |
CN105117285A (zh) | 一种基于移动虚拟化系统的非易失性存储器调度优化方法 | |
WO2016164324A1 (en) | Dynamic power routing to hardware accelerators | |
US20160231805A1 (en) | Electronic device and apparatus and method for power management of an electronic device | |
CN103076868A (zh) | 电源管理方法及应用该方法的电子系统 | |
US9213381B2 (en) | Voltage regulator dynamically determining whether requested power transition can be supported | |
CN107132903B (zh) | 一种节能管理实现方法、装置及网络设备 | |
EP3295276B1 (en) | Reducing power by vacating subsets of cpus and memory | |
CN102387024A (zh) | 功耗控制方法、管理节点及数据处理中心 | |
US20140040900A1 (en) | Storage managing device and method and electronic apparatus | |
CN103309423A (zh) | 电脑系统及其功率分享方法 | |
Rossi et al. | Multilevel resource allocation for performance-aware energy-efficient cloud data centers |
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 |