CN102934086A - 多核处理器系统、电力控制方法及电力控制程序 - Google Patents

多核处理器系统、电力控制方法及电力控制程序 Download PDF

Info

Publication number
CN102934086A
CN102934086A CN2010800673406A CN201080067340A CN102934086A CN 102934086 A CN102934086 A CN 102934086A CN 2010800673406 A CN2010800673406 A CN 2010800673406A CN 201080067340 A CN201080067340 A CN 201080067340A CN 102934086 A CN102934086 A CN 102934086A
Authority
CN
China
Prior art keywords
cpu
ability value
software
nuclear
processing ability
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
Application number
CN2010800673406A
Other languages
English (en)
Other versions
CN102934086B (zh
Inventor
山内宏真
山下浩一郎
铃木贵久
栗原康志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN102934086A publication Critical patent/CN102934086A/zh
Application granted granted Critical
Publication of CN102934086B publication Critical patent/CN102934086B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Power Sources (AREA)

Abstract

本发明涉及多核处理器系统、电力控制方法及电力控制程序,当作为转移对象的软件是OS时,CPU(#0)与CPU(#2)利用在超级管理器(204)中执行的转移部(304),使特定的软件从CPU(#0)向CPU(#2)转移。CPU(#2)利用检测部(302)检测特定的软件从CPU(#0)向最大的处理能力值比CPU(#0)低的CPU(#2)转移的转移状态。检测后,在通过检测部(302)检测到转移状态时,CPU(#2)利用设定部(303)将CPU(#0)的检测时刻的处理能力值设定为比转移前低的处理能力值。

Description

多核处理器系统、电力控制方法及电力控制程序
技术领域
本发明涉及控制电力的多核处理器系统、电力控制方法及电力控制程序。
背景技术
以往,对于多核处理器系统而言,有将同一命令分配给多个核的SMP(Symmetric Multiple Processor:对称多处理器)和给多个核分配不同的命令的AMP(Asymmetric Multiple Processor:非对称多处理器)。当使SMP继承面向以往的单核处理器的软件资产时,执行从软件的程序编码提取是并行处理的部分的作业。由此,有可能伴随程序编码的变更,开发成本增大,可信性也降低。
与此相对,当使AMP继承软件资产时,通过按核分散地执行各个高负荷的软件,具有下述效果,即不产生程序编码的变更,性能提高。使高负荷的软件分散的AMP具有管理整体的控制的低频时钟的处理器核和高速执行高负荷的处理的高频时钟的处理器核。这样,将具有多个性能不同的处理器核的多核处理器系统称为异构多核处理器系统。
另外,在便携终端等嵌入设备中应用了各种省电力技术。应用省电力技术的理由是为了通过抑制消耗电力,能够延长驱动时间。另外,即使是相同驱动时间,通过削减消耗电力也能够使电池小型化,能够减小嵌入设备整体的重量、体积。
作为异构多核处理器系统的省电力的技术,公开了下述技术,即通过切换根据CPU(Central Processing Unit)的负荷来使程序动作的CPU,来实现省电力化的技术(例如,参照下述专利文献1)。
另外,作为异构多核处理器系统中的其他省电力的技术,公开了下述技术,即通过在专用CPU与通用CPU中根据是外部电源还是电池驱动来选择分配程序的CPU从而实现省电力化的技术(例如,参照下述专利文献2)。
另外,公开了通过进行DVFS(Dynamic Voltage and FrequencyScaling)控制,来实现省电力化的技术(例如,参照下述非专利文献1)。DVFS控制是指下述技术,即由于消耗电力与电压或者频率的值成比例,因此通过在程序的执行制约时间的范围内尽可能地降低电压以及频率的值,来削减消耗电力的技术。
专利文献1:日本特开平4-215168号公报
专利文献2:日本特开2008-276395号公报
非专利文献1:Keiji Kimura,Masayoshi Mase,Hiroki Mikami,Takamichi Miyamoto,Jun Shirako,and Hironori Kasahara“OSCARAPI for Real-time Low-Power Multicores and Its Performance onMulticores and SMP Servers”Department of Computer Science andEngineering,vol.2,No.3,Sep.,2009,pp.96~106
发明内容
但是,在上述的以往技术中,专利文献1所涉及的技术存在下述问题,即存在由未分配处理的CPU产生的漏电流,尤其是当处理器核为高频时钟时,因漏电流产生的消耗电力增大。
另外,专利文献2所涉及的技术根据电源的利用方式是外部电源还是电池驱动来选择分配程序的CPU。存在下述问题点,即在电池驱动时,会选择成为省电力状态的低性能的CPU,即使电池有富余,程序的执行速度也始终为低速。
另外,非专利文献1所涉及的技术存在下述问题,即要求多电源电压,为此,必须搭载专用的电路,制造成本、安装面积增大。并且,非专利文献1将多核单线程的状态作为对象,存在下述问题,即当进行多线程动作时,各线程分别相互影响,因此难以预测线程的执行结束时间。
为了消除上述的以往技术中的问题点,本发明的目的在于提供能够在不增大制造成本、安装面积的情况下降低消耗电力的多核处理器系统、电力控制方法以及电力控制程序。
为了解决上述的课题,实现目的,公开的多核处理器系统检测特定的软件从多核中的转移源核向特定的处理能力值比转移源核低的转移目标核转移的转移状态,当转移状态被检测出时,将转移源核的检测时刻的处理能力值设定为比转移前低的处理能力值。
根据本多核处理器系统、电力控制方法以及电力控制程序,可以起到能够在不增大制造成本、安装面积的情况下削减消耗电力的效果。
附图说明
图1是表示实施方式所涉及的多核处理器系统的硬件的框图。
图2是表示多核处理器系统100的硬件的一部分和软件的框图。
图3是表示多核处理器系统100的功能的框图。
图4是表示多核处理器系统100的通常模式下的状态的说明图。
图5是表示多核处理器系统100的低电力模式下的状态的说明图。
图6是表示多核处理器系统100的通常模式下的状态的说明图。
图7是表示从多核处理器系统100的通常模式向低电力模式的转移的检测的说明图。
图8是表示从多核处理器系统100的通常模式向低电力模式转移的状态的说明图。
图9是表示从多核处理器系统100的低电力模式向通常模式转移的状态的说明图。
图10是表示从多核处理器系统100的低电力模式恢复成通常模式后的状态的说明图。
图11是表示通常模式和低电力模式下的多核处理器系统100的消耗电力的一个例子的说明图。
图12是表示用例表301的存储内容的一个例子的说明图。
图13是表示从通常模式向低电力模式的转移处理的流程图。
图14是表示从低电力模式向通常模式的转移处理的流程图。
具体实施方式
以下,参照附图,详细地说明本发明的多核处理器系统、电力控制方法以及电力控制程序的优选的实施方式。
(多核处理器系统的硬件)
图1是表示实施方式所涉及的多核处理器系统的硬件的框图。在图1中,多核处理器系统100具备搭载多个CPU的CPUs101、ROM(Read‐Only Memory)102和RAM(Random Access Memory)103。另外,多核处理器系统100具备快闪ROM 104、快闪ROM控制器105和快闪ROM106。另外,多核处理器系统100具备显示器107、I/F(接口)108和键盘109作为与用户、其他的设备的输入输出装置。另外,各部通过总线110分别连接。
这里,CPUs101管理多核处理器系统100的整体的控制。CPUs101指并行处理地连接单核处理器而得的所有的CPU。CPUs101的详细内容在图2中后述。另外,多核处理器系统是包含搭载了多个核的处理器的计算机的系统。另外,优选多核处理器系统100也可以是包含多个性能不同的核的异构多核处理器系统。此外,在本实施方式中,为了简单化说明,举出单核处理器并行处理的处理器组为例来进行说明。
ROM102存储有启动程序等程序。RAM103作为CPUs101的工作区被使用。快闪ROM104存储有OS(Operating System)等系统软件、应用软件等。例如,当更新OS时,多核处理器系统100通过I/F108接收新的OS,并将保存于快闪ROM104中的旧的OS更新为接收到的新OS。
快闪ROM控制器105根据CPUs101的控制来控制针对快闪ROM106的数据的读/写。快闪ROM106存储在快闪ROM控制器105的控制下写入的数据。作为数据的具体例,有使用多核处理器系统100的用户通过I/F108获取到的图像数据、影像数据等。快闪ROM106例如能够采用存储卡、SD卡等。
显示器107显示光标、图标或工具箱、以及文件、图像、功能信息等数据。该显示器107例如能够采用TFT液晶显示器等。
I/F108通过通信线路与LAN(Local Area Network)、WAN(WideArea Network)、因特网等网络111连接,经由网络111与其他的装置连接。而且,I/F108管理网络111与内部的接口,控制来自外部装置的数据的输入输出。I/F108能够采用例如调制解调器、LAN适配器等。
键盘109具备用于输入数字、各种指示等的键,进行数据的输入。另外,键盘109可以是触摸面板式的输入板、数字键等。
图2是表示多核处理器系统100的硬件的一部分和软件的框图。图2中示出的硬件是存储器控制器201、RAM103和CPUs101所包含的CPU#0~CPU#3。存储器控制器201和CPU#0~CPU#3通过总线110连接。另外,CPU#2与CPU#3通过总线203连接。
存储器控制器201控制CPU#0~CPU#3向RAM103的访问。另外,存储器控制器201除了RAM103以外,也可以控制ROM102、快闪ROM104等的访问。存储器控制器201具有当各CPU同时向RAM103访问时协调访问的功能。
CPU#0与CPU#1是最大的处理能力值高的CPU组,CPU#2与CPU#3是最大的处理能力值低的CPU组。CPU#0与CPU#1是高频时钟,本地高速缓存容量也大,因此运算能力高,但消耗电力也大。CPU#2与CPU#3是低频时钟,本地高速缓存容量也小,因此运算能力低,但消耗电力小。
另外,在将最大的处理能力值高的CPU与最大的处理能力值低的CPU设定为同频时钟的情况下,最大的处理能力值高的CPU由于本地高速缓存等被搭载的元件多,因此消耗电力大。另外,最大的处理能力值高的CPU组的CPU#0与CPU#1的最大的处理能力值可以相等,也可以不等。对CPU#2、CPU#3也是同样的。
各CPU搭载本地高速缓存,对本地高速缓存进行访问来执行运算处理。另外,各CPU在访问未存储于本地高速缓存的数据时,从存储器控制器201对ROM102、RAM103、快闪ROM104等进行访问。
图2所示的软件是文件系统202、超级管理器(hypervisor)204、OS205、动态图像再生软件206、音乐再生软件207和GUI软件208。另外,作为由OS的一部分提供的软件,图2示出了系统调用库209、系统调用库210、驱动器处理程序211和驱动器处理程序212。
文件系统202具有根据OS205的功能,进行保存于作为辅助存储装置的快闪ROM104、快闪ROM106等的数据、即文件的访问的功能。例如,保存于快闪ROM106的文件通过CPU#0被读入RAM103。另外,通过CPU#0被更新的数据作为文件被写入快闪ROM106。
超级管理器204是在硬件上直接动作的程序。超级管理器204能够执行特权命令,该特权命令指直接参照CPU内的寄存器,或者读出CPU内的寄存器的信息,或者改写进行CPU内的I/O操作之类的特殊的寄存器的信息。另外,超级管理器204进行一般的程序不能操作的CPU的高速缓存控制,使用一般程序不能读写的存储器上的空间来进行动作。另外,超级管理器204位于OS与CPU之间,根据前述的特征进行OS的监视,在OS挂起时进行重启,此外,当OS未执行任何线程时,为省电力设定。
OS205是控制多核处理器系统100的程序。具体而言,OS205提供动态图像再生软件206~GUI软件208使用的库。另外,OS205进行ROM102、RAM103等存储器的管理。另外,OS205进行CPU#0~CPU#3执行的软件的调度处理。
动态图像再生软件206是在显示器107上再生动态图像文件的软件。为使动态图像再生软件206正常动作,对执行的CPU要求高处理能力。音乐再生软件207是再生语音文件的软件。GUI软件208是担任与多核处理器系统100的使用者的接口的软件。例如,GUI软件208检测来自键盘109的外部事件,向OS205发出动态图像再生软件206、音乐再生软件207的起动要求。
系统调用库209、系统调用库210是OS205向应用软件等提供通用的功能的软件。例如,动态图像再生软件206在再生动态图像文件时,进行遵循动态图像文件的编码的解码处理。例如,若动态图像文件是MPEG(Moving Picture Experts Group),则动态图像再生软件206进行MPEG解码处理。由于MPEG解码处理也在其他的软件中执行,因此OS205也可以将这样的处理作为系统调用库提供。各软件通过对系统调用库进行访问,能够执行通用的功能。
驱动器处理程序211、驱动器处理程序212是向OS205、应用软件等提供硬件的访问的软件。硬件的特性按硬件不同,因此驱动器处理程序执行硬件特有的处理,对OS205提供按标准规定的输入输出方法。例如,CPU#0接受在键盘109上按下按键的中断信号,驱动器处理程序212通过OS205进行与中断信号对应的处理。处理后,作为OS205规定的键按下事件,驱动器处理程序212向OS205进行通知。
在图2中,OS205在CPU#0、CPU#1上执行。另外,动态图像再生软件206和GUI软件208在CPU#0中执行。另外,音乐再生软件207在CPU#1中执行。系统调用库209、驱动器处理程序211在CPU#2中执行。系统调用库210、驱动器处理程序212在CPU#3中执行。
这样,作为应用软件的动态图像再生软件206~GUI软件208在1个1个的CPU中分散地执行。作为不在多个CPU中并行执行动态图像再生软件206~GUI软件208的理由,可以举出以往的软件并未意识到并行性来记述程序。另外,难以从并未意识到并行处理而写下的程序中提取并行性,在改写为并行处理时,也由于开发成本增大、可信性的问题导致风险变大。因此,成为如下结果,即能够适用并行处理的软件是驱动器处理程序、系统调用库等,其他的软件被分散地执行。
另外,本实施方式的多核处理器系统100将CPU组分类为如最大的处理能力值高的CPU组和最大的处理能力值低的CPU组那样的2个CPU分组,但也可以分类为3个以上的分组。例如,最大的处理能力值最大的CPU组分散执行动态图像再生软件206等高负荷软件。最大的处理能力值为中等程度的CPU组分散执行商务软件等中负荷软件。最大的处理能力值最小的CPU组并行执行能够适用并行处理,负荷小的软件。如前述那样,根据被执行的软件要求的处理能力值,也可以将CPU组分类为3组以上。
(多核处理器系统100的功能)
其次,对多核处理器系统100的功能进行说明。图3是表示多核处理器系统100的功能的框图。多核处理器系统100包含检测部302、设定部303、转移部304和判断部305。对于作为该控制部的功能(检测部302~判断部305)而言,通过CPU#0~CPU#3执行存储于存储装置中的程序,来实现其功能。存储装置具体而言例如是图1所示的ROM102、RAM103、快闪ROM104、快闪ROM106等。
另外,多核处理器系统100能够访问用例表301,该用例表301作为存储可将特定的软件转移到最大的处理能力值比转移源核低的核的事件的数据库被保存于RAM103内。用例表301的详细内容通过图12后述。另外,用例表301也可以还存储有要求向最大的处理能力值高的核转移的事件。特定的软件例如是OS。另外,特定的软件也可以是能够由最大的处理能力值高的CPU组和最大的处理能力值低的CPU组的任意一个执行的软件。另外,最大的处理能力值是指在该CPU中能够设定的最大的时钟频率。
另外,后述的检测部302~结束部308对使由最大的处理能力值高的CPU#0、CPU#1执行的特定的软件向最大的处理能力值低的CPU#2、CPU#3转移时的功能组进行说明。
另外,转移部304包括起动通知部306、起动部307和结束部308。CPU#0包括判断部305和起动通知部306,CPU#2包括检测部302、设定部303、起动部307和结束部308。另外,在图3中,表示CPU#0作为最大的处理能力值高的CPU组之一,表示CPU#2作为最大的处理能力值低的CPU组之一,但其他的CPU也可以包含前述的功能。例如CPU#1也可以包含转移部304与起动通知部306。另外,检测部302、设定部303、判断部305利用OS的功能来执行,转移部304利用超级管理器204的功能来执行。
检测部302具有检测特定的软件从多核中的转移源核向特定的处理能力值比转移源核低的转移目标核转移的转移(迁移)状态的功能。特定的处理能力值是指核可以取得的最大的处理能力值。另外,特定的处理能力值也可以是能够保证核的正常动作的处理能力值中的最大的值。例如,特定的处理能力值也可以是能够使核的发热量处于容许范围内的处理能力值中的最大的值。另外,检测部302也可以检测特定的软件通过转移部304从转移源核向转移目标核转移的转移状态。
例如,检测部302检测OS从由CPU#0、CPU#1执行的状态转移到CPU#2、CPU#3的转移状态。其中,检测结果存储于CPU#2的寄存器、RAM103等存储区域。
其中,检测转移状态的检测部302成为在图3中作为转移目标核的CPU#2的功能,但作为转移源核的CPU#0也可以执行检测部302。另外,若指示了特定的软件的转移的核是转移源核和转移目标核以外的核,则指示了转移的核也可以执行检测部302。
设定部303具有当检测部302检测出转移状态时,将转移源核的检测时刻的处理能力值设定为比转移前低的处理能力值的功能。另外,设定部303在由判断部305判断为发生了能够实现转移的事件,并且,由检测部302检测出转移状态时,也可以将转移源核的检测时刻的处理能力值设定为比转移前低的处理能力值。
例如,若检测部302检测出从CPU#0、CPU#1向CPU#2、CPU#3的OS的转移状态,则设定部303将CPU#0、CPU#1的时钟频率设定为比转移前低的处理能力值。具体而言,设定部303也可以将CPU#0、CPU#1的时钟频率设定为可以执行被并行执行的系统调用库209~驱动器处理程序212的超低频时钟状态。其中,设定的时钟频率的值也可以存储于RAM103等存储区域。
转移部304具有当特定的软件包含使其他的软件从转移源核转移到转移目标核的软件时,使特定的软件从特定的软件处于执行中的转移源核向转移目标核转移的功能。另外,转移部304在通过判断部305判断为发生了要求转移的事件时,也可以取消特定的软件的转移,最终不转移特定的软件。使其他的软件从转移源核转移到转移目标核的软件是转移处理,作为包含其的特定的软件的例子是OS。
例如,转移部304当在CPU#2、CPU#3上起动了OS后,将管理多核处理器系统100的OS从OS205切换到新起动的OS,然后结束OS205,由此使OS转移。其中,已转移这样的信息存储于CPU#2的寄存器等存储区域。
判断部305具有根据存储能够使特定的软件转移到特定的处理能力值比转移源核低的核的事件的用例表301,判断发生的事件是否是可以实现转移的事件的功能。另外,判断部305也可以根据存储要求将特定的软件转移到特定的处理能力值比转移源核高的核的事件的用例表301,判断发生的事件是否是要求转移的事件。
例如,若在多核处理器系统100中,发生了一定期间高负荷软件未执行这一事件,则判断部305判断前述的事件是否登记于用例表301中。其中,判断结果存储于CPU#0的寄存器、RAM103等存储区域。
起动通知部306具有当通过判断部305判断为发生了可以实现转移的事件时,通知转移目标核起动特定的软件的功能。例如,起动通知部306通知由超级管理器204在CPU#2、CPU#3中起动OS。其中,通知的内容存储于CPU#0的寄存器等存储区域。
起动部307具有当通过起动通知部306接受了特定的软件的起动通知时,起动特定的软件的功能。例如,起动部307在接受了由超级管理器204起动OS的通知时,在CPU#2、CPU#3中启动OS。其中,起动了OS这一信息存储于CPU#2的寄存器等存储区域。
结束部308具有在利用起动部307在转移目标核中特定的软件起动完成时,使在转移源核中处于执行中的特定的软件结束的功能。例如,结束部308在通过起动部307在CPU#2、CPU#3中执行的OS起动完成时,使在CPU#0、CPU#1中执行的OS205结束。其中,结束了OS205这一信息存储于CPU#2的寄存器等存储区域。
在前述的说明中,对使作为转移源核的特定的处理能力值高的CPU#0、CPU#1中执行的特定的软件转移到作为转移目标核的特定的处理能力值低的CPU#2、CPU#3时的功能组进行了说明。然后,对使作为转移源核的特定的处理能力值低的CPU#2、CPU#3中执行的特定的软件转移到作为转移目标核的特定的处理能力值高的CPU#0、CPU#1时功能组进行说明。
该情况下,成为各功能部在特定的处理能力值高的CPU和特定的处理能力值低的CPU中调换的状态。具体而言,CPU#2包含判断部305和起动通知部306,CPU#0包含检测部302、设定部303、起动部307和结束部308。另外,处于调换后的状态的转移部304、作为其内部的功能的起动通知部306、起动部307和结束部308与调换前的功能相同,因此省略说明。
检测部302具有检测特定的软件向特定的处理能力值比转移源核高的转移目标核转移的转移状态的功能。例如,检测部302检测OS从在CPU#2、CPU#3中执行的状态转移到CPU#0、CPU#1的转移状态。其中,检测结果存储于CPU#0的寄存器、RAM103等存储区域。
设定部303具有当检测部302检测出转移状态时,将转移源核的检测时刻的处理能力值设定为比转移前低的处理能力值的功能。另外,设定部303也可以当进而由判断部305判断为发生了要求转移的事件时,设定处理能力值。例如,设定部303在由检测部302检测出从CPU#2、CPU#3向CPU#0、CPU#1的OS的转移状态时,将CPU#2、CPU#3的时钟频率设定为比转移前低的处理能力值。其中,设定的时钟频率的数值也可以存储于RAM103等存储区域。
判断部305具有根据存储要求将特定的软件转移到特定的处理能力值比转移源核高的核的事件的用例表301,判断发生的事件是否是要求转移的事件的功能。例如,当在多核处理器系统100中发生了高负荷软件被要求起动这一事件时,判断部305判断前述的事件是否登记在用例表301中。其中,判断结果存储在CPU#2的寄存器、RAM103等存储区域。
其中,在图4~图14的说明中,为了简略化说明,设为特定的处理能力值是最大的处理能力值来进行说明。
图4是表示多核处理器系统100的通常模式下的状态的说明图。在图4中的多核处理器系统100中,OS205在最大的处理能力值高的CPU#0、CPU#1上起动。将起动OS205的CPU组称为主CPU组,将不起动OS205的CPU组称为子CPU组。另外,将主CPU组为最大的处理能力值高的CPU#0、CPU#1的状态称为通常模式。
通常模式下的多核处理器系统100在CPU#0、CPU#1中分散地执行作为整体处理的大部分的动态图像再生软件206~GUI软件208。另外,多核处理器系统100将仅仅能够并行处理的系统调用库209~驱动器处理程序212在CPU#2、CPU#3中并行执行。多核处理器系统100在整体上消耗与高处理能力值成比例的电力。
图5是表示多核处理器系统100的低电力模式下的状态的说明图。在图5中的多核处理器系统100中,动态图像再生软件206未起动,GUI软件208处于待机状态。当检测到该状态时,多核处理器系统100将在CPU#2、CPU#3中执行中的软件转移到CPU#0、CPU#1,在转移后在最大的处理能力值低的CPU#2、CPU#3中起动OS205’。
在进行软件的转移处理的情况下,转移源的CPU将转移对象软件内的各线程保持的上下文信息,具体而言将包含程序计数器的CPU的寄存器信息保存到RAM103、文件系统202中。另外,若作为CPU的寄存器的一部分的由栈指针指示的堆栈区域存在于转移目标的CPU无法参照的区域,例如转移源的CPU的本地存储器,则进行保存。
保存后,转移源的CPU向转移目标的CPU通知保存后的地址区域。通知后,转移源的CPU从自身管理的线程管理表中删除转移对象软件的线程。转移目标的CPU向自身管理的线程管理表追加软件的各线程的信息,基于保存后的上下文信息,通过执行软件的各线程,来结束软件的转移处理。
OS205’是进行与OS205同等的处理的OS。另外,OS205’在最大的处理能力值低的CPU#2、CPU#3上动作,因此也可以执行OS205执行的处理中的一部分的处理。另外,当CPU#0接受了中断信号时,例如由驱动器处理程序212通过OS205’执行对中断信号的处理。
在OS205’起动后,多核处理器系统100使音乐再生软件207从CPU#1向CPU#2转移。转移后,多核处理器系统100结束OS205,使最大的处理能力值高的CPU#0、CPU#1在被供给的时钟频率低下的超低频时钟状态下动作。如图5那样,将主CPU组为最大的处理能力值低的CPU的状态称为低电力模式。
在低电力模式下的多核处理器系统100中,在低电力模式转移结束后,音乐再生软件207在CPU#2中被分散执行。另外,系统调用库209~驱动器处理程序212在为超低频时钟状态的CPU#0、CPU#1中并行执行。
这样,在低电力模式下的多核处理器系统100中,CPU#0与CPU#1一边保留能够执行并行软件的量的处理能力,一边通过降低时钟来执行分散处理,能够进一步降低消耗电力。
另外,即使按照使得CPU#0和CPU#1的处理能力与CPU#2和CPU#3的处理能力相同的方式来设定CPU#0和CPU#1的时钟频率,结果也是CPU#0和CPU#1的消耗电力大。这是由于CPU#0和CPU#1中高速缓存等被搭载的元件的数量多。关于具体的消耗电力的差用图11后述。
图6是表示多核处理器系统100的通常模式下的状态的说明图。在通常模式下的多核处理器系统100中,CPU#0、CPU#1为主CPU组。显示器107正在通过动态图像再生软件206再生动态图像。正在再生动态图像的动态图像再生软件206、音乐再生软件207和GUI软件208在CPU#0、CPU#1中被执行。系统调用库209、系统调用库210、驱动器处理程序211、驱动器处理程序212在作为子CPU组的CPU#2、CPU#3中被执行。
图7是表示检测从多核处理器系统100的通常模式向低电力模式的转移的说明图。图7中的多核处理器系统100是在图6中执行的动态图像再生软件206结束后,经过一定时间,在显示器107上显示的等待受理画面消失的状态。由于等待受理画面消失,GUI软件208处于待机状态。当变为该状态时,多核处理器系统100检测出能够将OS转移至最大的处理能力值低的CPU。
图8是表示从多核处理器系统100的通常模式转移至低电力模式的状态的说明图。图8中的多核处理器系统100是在图7中检测出能够将OS转移到最大的处理能力值低的CPU的状态。检测后,CPU#0、CPU#1的任意一个通过OS205使系统调用库209~驱动器处理程序212转移至CPU#0、CPU#1。转移后,CPU#0、CPU#1的任意一个通过超级管理器204使OS205’起动。
在OS205’起动完成后,CPU#2、CPU#3的任意一个使在CPU#0、CPU#1中执行的软件转移至CPU#2、CPU#3。在图8中,CPU#2、CPU#3的任意一个使音乐再生软件207、系统调用库209~驱动器处理程序212转移。另外,OS205’起动完成后,CPU#2、CPU#3的任意一个使OS205结束。OS205结束后,CPU#2、CPU#3的任意一个将CPU#0、CPU#1设定为超低频时钟状态。
在设定为超低频时钟状态后,当产生了系统调用库209~驱动器处理程序212时,CPU#0、CPU#1并行执行。从通常模式向低电力模式的转移处理的详细内容在图13中后述。
图9是表示从多核处理器系统100的低电力模式向通常模式转移的状态的说明图。图9中的多核处理器系统100是在图8中变为低电力模式后,高负荷软件被起动的状态。高负荷软件是指动态图像再生软件206等。通过高负荷软件的起动,多核处理器系统100开始从低电力模式向通常模式转移。此时,CPU#2、CPU#3将时钟设定为最大,在转移中的期间,执行GUI软件208。另外,CPU#2、CPU#3通过超级管理器204来起动OS205。
图10是表示多核处理器系统100从低电力模式恢复为通常模式后的状态的说明图。图9中的多核处理器系统100是在图9中开始从低电力模式向通常模式转移,使OS205起动完成后的状态。当OS205的起动完成时,动态图像再生软件206~GUI软件208在CPU#0、CPU#1中分散地被执行,系统调用库209~驱动器处理程序212在CPU#2、CPU#3中并行执行。另外,CPU#0、CPU#1使OS205’结束。从低电力模式向通常模式的转移处理的详细内容在图14中后述。
图11是表示通常模式与低电力模式下的多核处理器系统100的消耗电力的一个例子的说明图。表1101表示最大的处理能力值高的CPU组和最大的处理能力值低的CPU组执行各个软件时要求的时钟频率和与其对应的消耗电力的例子。表1102是基于表1101,计算出通常模式与低电力模式下的多核处理器系统100的消耗电力的一个例子的表。
通常模式下的多核处理器系统100的状态是图7中说明的状态。具体而言,作为主CPU组的CPU#0和CPU#1执行OS205,并且CPU#1执行音乐再生软件207,以时钟频率为200[MHz]进行动作。作为子CPU组的CPU#2和CPU#3执行作为并行软件的系统调用库209~驱动器处理程序212,以时钟频率为20[MHz]进行动作。
同样地,低电力模式下的多核处理器系统100的状态为图8中说明的状态。具体而言,作为主CPU组的CPU#2和CPU#3执行OS205’,并且CPU#2执行音乐再生软件207,以时钟频率为200[MHz]进行动作。作为子CPU组的CPU#0和CPU#1执行作为并行软件的系统调用库209~驱动器处理程序212,以时钟频率为20[MHz]进行动作。在表1101中,即使是相同时钟频率,最大的处理能力值高的CPU组的消耗电力大,这是由于与处理能力值高相对应,较多地搭载了高速缓存、元件,漏电流变多,因此消耗电力大。
对于通常模式中的多核处理器系统100的消耗电力而言,根据表1101,最大的处理能力值高的CPU组为240[mW],最大的处理能力值低的CPU组为20[mW],如表1102所示那样,合计为260[mW]。另外,对于低电力模式中的多核处理器系统100的消耗电力而言,根据表1101,最大的处理能力值高的CPU组为24[mW],最大的处理能力值低的CPU组为200[mW],如表1102所示那样,合计为224[mW]。这样,与通常模式相比,低电力模式能够降低消耗电力。
另外,转移OS以外的软件也能够降低消耗电力。例如,作为最大的处理能力值为中等程度的CPU组,假想存在最大的时钟频率为400[MHz]。最大的处理能力值为中等程度的CPU组在时钟频率为100[MHz]时的消耗电力为110[mW],在时钟频率为20[MHz]时的消耗电力为22[mW]。另外,OS和高负荷软件在最大的处理能力值高的CPU组中被执行,音乐再生软件207在最大的处理能力值为中等程度的CPU组中被执行,并行软件在最大的处理能力值低的CPU组中被执行。
此时,最大的处理能力值为中等程度的CPU组和最大的处理能力值低的CPU组的消耗电力的合计为110+20=130[mW]。接下来,假想进行了音乐再生软件207和并行软件的转移处理的情况。该情况下,最大的处理能力值高的CPU组维持状态,并行软件在最大的处理能力值为中等程度的CPU组中被执行,音乐再生软件207在最大的处理能力值低的CPU组中被执行。此时的消耗电力的合计为22+100=122[mW],与进行转移处理前相比,能够降低消耗电力。
图12是表示用例表301的存储内容的一个例子的说明图。表具有事件类别、事件内容这2个字段。事件类别字段保存区别发生的事件是转移到低电力模式的触发,还是转移到通常模式的触发的值。若事件类别字段是“低电力模式转移”,则发生的事件是转移到低电力模式的触发,若是“通常模式转移”,则发生的事件是转移到通常模式的触发。事件内容字段保存事件的内容。
例如,当发生了用户指示向低电力模式的转移的事件时,多核处理器系统100判断为是能够实现转移到最大的处理能力值低的核的事件,若是通常模式,则转移到低电力模式。同样地,在发生了在一定期间,高负荷软件未执行,电池的余量在一定值以下的事件的情况下,多核处理器系统100若是通常模式也转移到低电力模式。
另外,在发生了作为高负荷软件的GUI软件208的起动要求的事件的情况下,多核处理器系统100判断为是要求转移到最大的处理能力值高的核的事件,若是低电力模式,则转移到通常模式。同样地,在发生了作为高负荷软件的动态图像再生软件206、游戏软件等的起动要求的事件的情况下,多核处理器系统100若是低电力模式,则转移到通常模式。
在要求起动时,作为向“通常模式转移”转移的软件的登记方法,存在下述方法,即在设计时,通过ESL(Electronic System Level)模拟程序判断对象的软件要求的运算能力是否超过了超过阈值的运算性能。
另外,作为向“通常模式转移”转移的事件,在发生了高负荷软件的起动准备的情况下,多核处理器系统100若是低电力模式,则也可以转移到通常模式。高负荷软件的起动准备是指高负荷软件被设定成在规定时刻起动的情况下的准备作业。
例如,在由多核处理器系统100的利用者设定了在规定时刻通知警报等的软件的情况下,假定通知警报的软件是高负荷软件。当是低电力模式的情况下,多核处理器系统100通过在规定时刻前转移到通常模式,能够在规定时刻以通常模式起动高负荷软件。具体而言,多核处理器系统100也可以在从规定时刻减去OS205起动完成所花费的时间后的时刻,进行从低电力模式向通常模式的转移处理。
图13是表示从通常模式向低电力模式的转移处理的流程图。在从通常模式向低电力模式的转移处理和从低电力模式向通常模式的转移处理中,当最大的处理能力值高的CPU组执行时,CPU#0与CPU#1的至少任意一方执行即可。另外,当最大的处理能力值低的CPU组执行时,CPU#2与CPU#3的任意一个执行即可。在图13与图14的说明中,为了简略化说明,当最大的处理能力值高的CPU组执行时,假想CPU#0执行的情况来进行说明,当最大的处理能力值低的CPU组执行时,假想CPU#2执行的情况来进行说明。
CPU#0通过OS205判断是否发生了能够实现向CPU#2、CPU#3转移的事件之一(步骤S1301)。能够实现转移的事件是用例表301中的事件类别字段的值为低电力模式的事件。当未发生能够实现转移的事件时(步骤S1301:否),CPU#0在一定时间后,执行步骤S1301的处理。当发生了能够实现转移的事件时(步骤S1301:是),CPU#0禁止对CPU#2、CPU#3的软件的分派(步骤S1302)。
分派禁止后,CPU#0通过OS205,将CPU#2、CPU#3中处于执行中的软件转移到CPU#0、CPU#1(步骤S1303)。另外,作为转移对象的软件为OS205以外的所有的软件。另外,进行OS205以外的所有的软件的转移的理由是由于在接下来的步骤中,由于在启动OS205’时进行存储器的初始化,所以不能继续软件的执行。
在转移了所有的执行中的软件后,CPU#0通过超级管理器204在CPU#2、CPU#3中开始OS205’的启动(步骤S1304)。启动开始后,CPU#0判断OS205’的启动是否完成(步骤S1305)。当启动完成时(步骤S1305:是),CPU#0将管理多核处理器系统100的OS从OS205切换为OS205’(步骤S1306)。
在OS切换后,CPU#2通过OS205’将在CPU#0、CPU#1中处于执行中的所有的软件向CPU#2、CPU#3转移(步骤S1307)。在转移了所有的软件后,CPU#2通过超级管理器204,来结束CPU#0、CPU#1的OS205(步骤S1308)。在OS205结束后,CPU#2通过OS205’以超低频时钟重启CPU#0、CPU#1(步骤S1309)。由此,多核处理器系统100以超低频时钟设定作为转移源核的CPU#0、CPU#1的处理能力值。若重启结束,则CPU#2完成向低电力模式的转移(步骤S1310),来结束处理。
当OS205’的启动未完成时(步骤S1305:否),CPU#0判断是否发生了要求向CPU#0、CPU#1转移的事件之一(步骤S1311)。当未发生要求转移的事件时(步骤S1311:否),CPU#0转移到步骤S1305的处理。
当发生了要求转移的事件时(步骤S1311:是),CPU#0取消CPU#2、CPU#3中的OS205’的启动(步骤S1312)。要求转移的事件是用例表301中的事件类别字段的值为通常模式转移的事件。启动取消后,CPU#0通过OS205解除CPU#2、CPU#3的分派的禁止(步骤S1313)。在分派的禁止解除后,CPU#0完成向通常模式的恢复(步骤S1314),来结束处理。
其中,当OS以外的软件作为特定的软件转移时,CPU#0在判断为步骤S1301中为是,能够进行转移后,将特定的软件转移到CPU#2、CPU#3。转移后,CPU#2也可以转移到步骤S1309的处理。
图14是表示从低电力模式向通常模式的转移处理的流程图。CPU#2通过OS205’判断是否发生了要求向CPU#0、CPU#1转移的事件之一(步骤S1401)。当未发生要求转移的事件时(步骤S1401:否),CPU#2在一定时间待机后,转移到步骤S1401的处理。
当发生了要求转移的事件时(步骤S1401:是),CPU#2将CPU#2、CPU#3的时钟变更为最大(步骤S1402)。将时钟变更为最大后,CPU#2禁止向CPU#0、CPU#1的分派(步骤S1403),将CPU#0、CPU#1中处于执行中的所有的软件转移到CPU#2、CPU#3(步骤S1404)。
在所有的软件转移结束后,CPU#2通过超级管理器204在CPU#0、CPU#1中开始OS205的启动(步骤S1405)。在开始OS205的启动后,CPU#2判断OS205的启动是否完成(步骤S1406)。在启动未完成的情况下(步骤S1406:否),CPU#2在一定时间后,再次执行步骤S1406的处理。在启动完成的情况下(步骤S1406:是),CPU#2将管理多核处理器系统100的OS从OS205’切换到OS205(步骤S1407)。
在OS切换后,CPU#0通过OS205将CPU#2、CPU#3中处于执行中的软件转移到CPU#0、CPU#1(步骤S1408)。转移后,CPU#0通过超级管理器204来结束CPU#2、CPU#3侧的OS205’(步骤S1409)。在结束OS205’后,CPU#0通过OS205以低频时钟重启CPU#2、CPU#3(步骤S1410)。重启结束后,CPU#0完成向通常模式的转移(步骤S1411),来结束处理。
其中,当OS以外的软件作为特定的软件转移时,CPU#2在判断为步骤S1401中为是,要求进行转移后,将特定的软件转移到CPU#0、CPU#1。转移后,CPU#0也可以转移到步骤S1410的处理。
如以上说明的那样,根据多核处理器系统、电力控制方法以及电力控制程序,检测特定的软件向最大的处理能力值比转移源核低的转移目标核转移的转移状态。当检测出转移状态时,多核处理器系统在转移前后较低地设定转移源核的处理能力。由此,能够抑制在最大的处理能力值高的转移源核中发生的漏电流,能够在较高地保持核的利用效率不变的情况下,不增大制造成本、安装面积而降低消耗电力。
另外,当特定的软件是包含转移功能的软件时,多核处理器系统也可以从特定的软件处于执行中的转移源核向转移目标核转移特定的软件。由此,使包含转移功能的OS转移到最大的处理能力值低的转移目标核,能够抑制最大的处理能力值高的转移源核中发生的漏电流,能够降低消耗电力。尤其是,OS要求的处理能力与能够并行执行的软件要求的处理能力相比较非常大,因此当将OS转移到最大的处理能力值低的转移目标核时,能够较大地抑制漏电流。
另外,多核处理器系统判断为发生的事件是能够将特定的软件转移到最大的处理能力值低的核的事件。并且,多核处理器系统检测特定的软件向最大的处理能力值比转移源核低的转移目标核转移的转移状态。当检测出转移状态时,多核处理器系统也可以在转移前后较低地设定转移源核的处理能力。
由此,多核处理器系统能够抑制最大的处理能力值高的转移源核中发生的漏电流,能够降低消耗电力。另外,发生的事件的判断是根据是否登记在数据库中来判断的,因此仅通过变更数据库的内容,能够容易地变更运用方式,能够容易地进行多核处理器系统的运用。
另外,在特定的软件的转移中,当发生了要求向最大的处理能力值比转移源核高的核转移的事件时,多核处理器系统也可以取消特定的软件的转移,结果不转移特定的软件。例如,OS的转移包含进行OS的启动的时间,由于受理利用者的操作的时间充分,因此在此期间,有可能发生例如高负荷软件的起动要求的事件。此时,本实施方式的多核处理器系统不执行先暂时转移到低电力模式后再次转移到通常模式的处理,而是马上恢复为通常模式,因此能够即时对应发生的事件。
另外,多核处理器系统判断为发生的事件是要求向最大的处理能力值比转移源核高的核转移的事件,并且,检测特定的软件向最大的处理能力值比转移源核高的核转移的转移状态。当检测出转移状态时,多核处理器系统也可以在转移前后较低地设定转移源核的处理能力。由此,多核处理器系统能够通过将在最大的处理能力值低的核中动作的特定的软件转移到最大的处理能力值高的核,来快速对应中断响应。
具体而言,当在最大的处理能力值高的核中收到中断要求的通知,特定的软件收到来自中断要求的通知时,当特定的软件在最大的处理能力值高的核中被执行时,能够最快速地响应中断要求。例如,当收到来自键盘的中断要求时,当特定的软件在最大的处理能力值高的核中被执行时,能够最快速地响应来自键盘的信号。这样,成为多核处理器系统的消耗电力被削减的状态,即使在特定的软件的中断响应性能低下时,也能够通过转移特定的软件,来恢复对中断的响应速度。
另外,本实施方式的多核处理器系统是基于OS的控制,也无需在DVFS控制下必需的多电源电压,因此能够容易地应用于以往例的多核处理器系统。另外,本实施方式的多核处理器系统即使用多核执行多线程,也根据用例表来运用,因此,不会如DVFS控制那样难以预算,运用较容易。另外,本实施方式的多核处理器系统使具有大的高速缓存的CPU以低频时钟进行动作,因此能够减少漏电流,获得降低消耗电力的效果。
其中,本实施方式中说明的电力控制方法能够通过在个人计算机、工作站等计算机中执行预先准备的程序来实现。本电力控制程序被记录于硬盘、软盘、CD-ROM、MO、DVD等计算机能够读取的记录介质,通过利用计算机从记录介质中将其读取来执行。另外,本电力控制程序也可以通过因特网等网络来发布。
图中符号说明:
#0、#2…CPU;103…RAM;110…总线;201…存储器控制器;204…超级管理器;301…用例表;302…检测部;303…设定部;304…转移部;305…判断部;306…起动通知部;307…起动部;308…结束部

Claims (7)

1.一种多核处理器系统,其特征在于,具备:
检测单元,其检测特定的软件从多核中的转移源核向特定的处理能力值比所述转移源核低的转移目标核转移的转移状态;以及
设定单元,在所述检测单元检测出所述转移状态时,该设定单元将所述转移源核的检测时刻的处理能力值设定为比转移前低的处理能力值。
2.根据权利要求1所述的多核处理器系统,其特征在于,
该多核处理器系统还具备转移单元,当所述特定的软件包含将其他的软件从所述转移源核向所述转移目标核转移的软件时,该转移单元将所述特定的软件从所述特定的软件处于执行中的所述转移源核向所述转移目标核转移,
所述检测单元检测所述特定的软件通过所述转移单元从所述转移源核向所述转移目标核转移的转移状态。
3.根据权利要求1或2所述的多核处理器系统,其特征在于,
所述多核处理器系统还具备判断单元,该判断单元根据存储能够实现下述转移、即所述特定的软件向特定的处理能力值比所述转移源核低的核转移的事件的数据库,判断发生的事件是否是所述能够实现上述转移的事件,
在由所述判断单元判断为发生了所述能够实现上述转移的事件,并且由所述检测单元检测出所述转移状态时,所述设定单元将所述转移源核的检测时刻的处理能力值设定为比转移前低的处理能力值。
4.根据权利要求2所述的多核处理器系统,其特征在于,
所述判断单元根据存储要求将所述特定的软件转移到特定的处理能力值比所述转移源核高的核的事件的数据库,判断发生的事件是否是所述要求转移的事件,
当在使所述特定的软件转移的期间由所述判断单元判断为发生了所述要求转移的事件时,所述转移单元不使所述特定的软件转移。
5.根据权利要求1或2所述的多核处理器系统,其特征在于,
所述判断单元根据存储要求将所述特定的软件转移到特定的处理能力值比所述转移源核高的核的事件的数据库,判断发生的事件是否是所述要求转移的事件,
所述检测单元对特定的处理能力值比所述转移源核高的转移目标核检测所述特定的软件的转移状态,
在由所述判断单元判断为发生了所述要求转移的事件,并且由所述检测单元检测出所述转移状态时,所述设定单元将所述转移源核的检测时刻的处理能力值设定为比转移前低的处理能力值。
6.一种电力控制方法,其特征在于,由所述转移目标核执行下述步骤:
检测步骤,检测特定的软件从多核中的转移源核向特定的处理能力值比所述转移源核低的转移目标核转移的转移状态;以及
设定步骤,在由所述检测步骤检测出所述转移状态时,将所述转移源核的检测时刻的处理能力值设定为比转移前低的处理能力值。
7.一种电力控制程序,其特征在于,使所述转移目标核执行下述步骤:
检测步骤,检测特定的软件从多核中的转移源核向特定的处理能力值比所述转移源核低的转移目标核转移的转移状态;以及
设定步骤,在由所述检测步骤检测出所述转移状态时,将所述转移源核的检测时刻的处理能力值设定为比转移前低的处理能力值。
CN201080067340.6A 2010-06-10 2010-06-10 多核处理器系统、电力控制方法及电力控制程序 Expired - Fee Related CN102934086B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/059876 WO2011155047A1 (ja) 2010-06-10 2010-06-10 マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム

Publications (2)

Publication Number Publication Date
CN102934086A true CN102934086A (zh) 2013-02-13
CN102934086B CN102934086B (zh) 2017-08-25

Family

ID=45097677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080067340.6A Expired - Fee Related CN102934086B (zh) 2010-06-10 2010-06-10 多核处理器系统、电力控制方法及电力控制程序

Country Status (5)

Country Link
US (1) US9395803B2 (zh)
EP (1) EP2581830A4 (zh)
JP (1) JPWO2011155047A1 (zh)
CN (1) CN102934086B (zh)
WO (1) WO2011155047A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140191980A1 (en) * 2013-01-04 2014-07-10 Qualcomm Mems Technologies, Inc. System for reuse of touch panel and controller by a secondary display
KR102205836B1 (ko) 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
CN104866379B (zh) * 2014-02-24 2019-06-14 中兴通讯股份有限公司 一种多核处理器调度方法、装置及终端
US9785481B2 (en) * 2014-07-24 2017-10-10 Qualcomm Innovation Center, Inc. Power aware task scheduling on multi-processor systems
KR102247742B1 (ko) * 2015-04-21 2021-05-04 삼성전자주식회사 애플리케이션 프로세서와 시스템 온 칩
US10496448B2 (en) * 2017-04-01 2019-12-03 Intel Corporation De-centralized load-balancing at processors
CN111506385A (zh) * 2019-01-31 2020-08-07 Ati科技无限责任公司 引擎抢占和复原

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5692192A (en) * 1994-07-19 1997-11-25 Canon Kabushiki Kaisha Load distribution method and system for distributed threaded task operation in network information processing apparatuses with virtual shared memory
US20050013705A1 (en) * 2003-07-16 2005-01-20 Keith Farkas Heterogeneous processor core systems for improved throughput
US20100005474A1 (en) * 2008-02-29 2010-01-07 Eric Sprangle Distribution of tasks among asymmetric processing elements

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2762670B2 (ja) * 1990-03-30 1998-06-04 松下電器産業株式会社 データ処理装置
JPH04215168A (ja) 1990-12-13 1992-08-05 Nec Corp コンピュータシステム
US5506987A (en) * 1991-02-01 1996-04-09 Digital Equipment Corporation Affinity scheduling of processes on symmetric multiprocessing systems
JPH09114540A (ja) * 1995-10-18 1997-05-02 Sony Corp クロック発生装置
JPH09138716A (ja) 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
JPH09185589A (ja) * 1996-01-05 1997-07-15 Toshiba Corp 情報処理システムと情報処理システムの省電力方法
JP2856715B2 (ja) * 1996-09-04 1999-02-10 日本電気テレコムシステム株式会社 クロックの周波数多段階変更制御装置および周波数多段階変更制御方法
JPH10187636A (ja) * 1996-12-24 1998-07-21 Nec Corp 消費電力低減クラスタシステム
JP2898616B2 (ja) * 1997-08-26 1999-06-02 三菱電機株式会社 サスペンド/リジューム機能を有するコンピュータ
JP2004249687A (ja) * 2003-02-21 2004-09-09 Ricoh Co Ltd 画像形成装置
US7093147B2 (en) * 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US20050132239A1 (en) * 2003-12-16 2005-06-16 Athas William C. Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
US20070094444A1 (en) * 2004-06-10 2007-04-26 Sehat Sutardja System with high power and low power processors and thread transfer
US7249268B2 (en) * 2004-06-29 2007-07-24 Intel Corporation Method for performing performance optimization operations for a processor having a plurality of processor cores in response to a stall condition
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
JP2006099489A (ja) * 2004-09-29 2006-04-13 Riso Kagaku Corp 印刷システム
JP4594761B2 (ja) * 2005-02-10 2010-12-08 株式会社東芝 情報処理装置およびその制御方法
JP4137093B2 (ja) * 2005-06-07 2008-08-20 キヤノン株式会社 データ処理システム及びデータ処理装置
JP2007148952A (ja) 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路
EP1996993B1 (en) * 2006-01-10 2015-03-11 Cupp Computing As Dual mode power-saving computing system
US8713574B2 (en) * 2006-06-05 2014-04-29 International Business Machines Corporation Soft co-processors to provide a software service function off-load architecture in a multi-core processing environment
US20080263324A1 (en) * 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
JP2008146514A (ja) * 2006-12-13 2008-06-26 Canon Inc 情報処理装置、情報処理装置の制御方法、および情報処理装置の制御プログラム
US8412981B2 (en) * 2006-12-29 2013-04-02 Intel Corporation Core sparing on multi-core platforms
US8429663B2 (en) * 2007-03-02 2013-04-23 Nec Corporation Allocating task groups to processor cores based on number of task allocated per core, tolerable execution time, distance between cores, core coordinates, performance and disposition pattern
JP2008276395A (ja) 2007-04-26 2008-11-13 Toshiba Corp 情報処理装置およびプログラム実行制御方法
US7886172B2 (en) * 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US8468230B2 (en) 2007-10-18 2013-06-18 Fujitsu Limited Method, apparatus and recording medium for migrating a virtual machine
JP5104588B2 (ja) * 2007-10-18 2012-12-19 富士通株式会社 マイグレーションプログラム、および仮想マシン管理装置
JP5433837B2 (ja) 2007-12-05 2014-03-05 株式会社日立製作所 仮想計算機システム、仮想計算機の制御方法及びプログラム
JP2009193385A (ja) * 2008-02-15 2009-08-27 Nec Corp コンピュータシステム
JP5157717B2 (ja) 2008-07-28 2013-03-06 富士通株式会社 仮想バッテリを備えた仮想マシンシステムおよび仮想バッテリを備えた仮想マシンシステム用プログラム
US8140825B2 (en) * 2008-08-05 2012-03-20 International Business Machines Corporation Systems and methods for selectively closing pages in a memory
US20100058086A1 (en) * 2008-08-28 2010-03-04 Industry Academic Cooperation Foundation, Hallym University Energy-efficient multi-core processor
US9032101B1 (en) * 2008-12-10 2015-05-12 Nvidia Corporation Chipset support for binding and migrating hardware devices among heterogeneous processing units
JP5214537B2 (ja) * 2009-05-25 2013-06-19 株式会社東芝 マルチプロセッサシステム
US8751833B2 (en) * 2010-04-30 2014-06-10 Arm Limited Data processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5692192A (en) * 1994-07-19 1997-11-25 Canon Kabushiki Kaisha Load distribution method and system for distributed threaded task operation in network information processing apparatuses with virtual shared memory
US20050013705A1 (en) * 2003-07-16 2005-01-20 Keith Farkas Heterogeneous processor core systems for improved throughput
US20100005474A1 (en) * 2008-02-29 2010-01-07 Eric Sprangle Distribution of tasks among asymmetric processing elements

Also Published As

Publication number Publication date
EP2581830A1 (en) 2013-04-17
US9395803B2 (en) 2016-07-19
JPWO2011155047A1 (ja) 2013-08-01
EP2581830A4 (en) 2017-01-11
WO2011155047A1 (ja) 2011-12-15
CN102934086B (zh) 2017-08-25
US20130097441A1 (en) 2013-04-18

Similar Documents

Publication Publication Date Title
CN102934086A (zh) 多核处理器系统、电力控制方法及电力控制程序
KR100188501B1 (ko) 다수의 사용자 및 윈도에 기초한 컴퓨터 시스템 및 다수의 사용자에 기초한 컴퓨터 시스템을 제공하는 방법
CN100361083C (zh) 信息处理系统、信息处理方法
CN101714021B (zh) 混合式系统的计算机
JP5697284B2 (ja) コンピュータプラットフォームのシステム電力状態を遷移させる方法、装置およびシステム
CN102707966B (zh) 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端
EP3467651A1 (en) Method, device and terminal for allocating computational resources of processor
US9075604B2 (en) Device and method for determining whether to hold data in a memory area before transitioning to a power saving state
US20120017219A1 (en) Multi-CPU Domain Mobile Electronic Device and Operation Method Thereof
CN111475012B (zh) 至硬件加速器的动态功率路由
CN105388987A (zh) 动态任务安排方法
US9110723B2 (en) Multi-core binary translation task processing
JPH04362716A (ja) システム再起動装置
CN104731614B (zh) 一种在开机过程中快速加载数据的方法及装置
CN109614153B (zh) 多核芯片及系统
CN111475299A (zh) 内存分配方法、装置、存储介质及电子设备
CN106650409B (zh) 一种终端控制方法及终端
CN113867963A (zh) 一种电子设备及处理方法
CN103853311A (zh) 具有低图形引擎利用的数据处理设备上的低功率应用执行
CN107015847A (zh) 电子装置及其工作模式切换方法
CN100339797C (zh) 用于使电脑于工作状态以及待机状态间转换的电脑系统与方法
CN111008079A (zh) 进程管理方法、装置、存储介质及电子设备
CN110795383A (zh) SoC频率控制方法、装置、终端及存储介质
CN109673043B (zh) 分体式电子设备的控制方法、装置、存储介质及电子设备
CN105740064A (zh) Linux系统中防止服务端重启的方法及装置

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170825

Termination date: 20180610