CN101542442A - 多处理器控制装置、其控制方法及集成电路 - Google Patents

多处理器控制装置、其控制方法及集成电路 Download PDF

Info

Publication number
CN101542442A
CN101542442A CNA2008800005135A CN200880000513A CN101542442A CN 101542442 A CN101542442 A CN 101542442A CN A2008800005135 A CNA2008800005135 A CN A2008800005135A CN 200880000513 A CN200880000513 A CN 200880000513A CN 101542442 A CN101542442 A CN 101542442A
Authority
CN
China
Prior art keywords
mentioned
processor
grid
time
execution time
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
CNA2008800005135A
Other languages
English (en)
Other versions
CN101542442B (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101542442A publication Critical patent/CN101542442A/zh
Application granted granted Critical
Publication of CN101542442B publication Critical patent/CN101542442B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

本发明公开了一种多处理器控制装置、控制方法及集成电路。该多处理器控制装置包括:取得单元,取得第一非执行时间信息和第二非执行时间信息,该第一非执行时间信息与每个处理器所表示的第一非执行时间有关,该第一非执行时间表示第一程序块的从栅障同步开始到栅障同步成立为止的第一栅障成立时间中的、没有执行第一块的时间,该第二非执行时间信息与每个处理器所表示的第二非执行时间有关,该第二非执行时间表示第二程序块的从栅障同步开始到栅障同步成立为止的第二栅障成立时间中的、没有执行第二块的时间;及电力控制单元,利用在取得单元中取得了的第一及第二非执行时间信息,来控制在连续并行执行第一及第二程序块期间向多个处理器提供电力。

Description

多处理器控制装置、其控制方法及集成电路
技术领域
本发明涉及多处理器控制装置、其控制方法及集成电路,特别涉及实现多个处理器的低耗电化的多处理器控制装置、其控制方法及集成电路。
背景技术
在将程序内的线程(thread)(或者进程)分配给多个处理器的每一个,并行执行这些线程的多处理器系统中,为了防止在各线程之间共同参照的变量的读写顺序上产生矛盾,而进行到所有线程到达对于每个线程所预先设定的栅障点(barrierpoint)为止阻止(block)下一步执行的栅障同步(BarrierSynchronization)。以下,将开始栅障同步的情况称为栅障开始,将线程到达栅障点的情况称为栅障到达,将最后的线程成为到达栅障而使栅障同步成立的情况称为栅障成立,将栅障到达的线程到栅障成立为止处于待机状态的情况称为栅障等待。
实现栅障同步的多处理器系统一般具有多个处理器共享单一地址空间的共享存储型结构。共享存储型的多处理器系统使用设置在可从各个处理器进行访问的共享存储器总线上的主存储装置中的锁变量,来实现栅障同步。具体地说,首先,预先将锁变量设定为进行并行执行的所有处理器的线程数。处理器在线程的栅障到达时进行原子操作(占有共享存储器总线,进行Read-Modified-Write这一连串动作的操作),访问主存储装置,使锁变量减少1。然后,处理器成为栅障等待。栅障等待的处理器反复加载(load)锁变量继续判断是否因其它处理器的原子操作而使锁变量变成了0。也就是说,由于锁变量变为0意味着栅障成立,因此处理器到栅障成立为止,反复进行锁变量的加载和判断。将象这样在栅障等待期间反复进行锁变量的加载和判断的状态称为旋转等待(SpinWaiting)状态。
这里,旋转等待状态的处理器无论是否正在执行本来被分配的线程,始终都处于伴随向主存储装置进行访问的通常动作状态。因此,旋转等待状态的处理器成为正在消费无用电力的状态。
于是,提出了这样的技术:通过让这样的旋转等待状态的处理器转移到非动作状态的睡眠模式,来实现低耗电化。在该技术中,或通过进行切断对于逻辑电路的时钟信号的提供的时钟选通(ClockGating),或通过进行防止近年来随着半导体进程的细微化而造成漏泄电力(leakpower)增大用的阈值电压(Vth)的控制,或通过进行切断电源电压(Vdd)的提供的电力选通(PowerGating),来使处于旋转等待状态的处理器的电力模式转移到睡眠模式。例如,如图37所示,在英国ARM公司的ARM处理器中设定有处理器可具有的多个电力模式。在电力模式中存在有为通常动作状态的模式(通常动作模式)的Run模式,和为非动作状态的睡眠模式的Standby模式、Dormant模式及Shutdown模式。Standby模式、Dormant模式及Shutdown模式的不同之处在于:使分别提供给处理器核心(processorcore)及高速缓冲存储器的时钟信号为ON/OFF和电压为ON/OFF的方法不同。
这里,由于Dormant模式适用电力选通,因此与仅适用时钟选通的Standby模式相比,省电效果较佳,成为深于Standby模式的睡眠模式。由于在Shutdown模式中,提供给高速缓冲存储器的电压也处于OFF状态,因此与Dormant模式相比,省电效果较佳,成为深于Dormant模式的睡眠模式。而在Dormant模式中,必须让处理器核心内的寄存器等内部状态(上下文(context))在电压为OFF时从处理器核心退避到外部存储器等,而在电压为ON时从外部存储器等恢复到处理器核心。并且,当让处理器核心的电压为ON时,需要较长的稳定时间。所以,Dormant模式与Standby模式相比,在从Run模式进行转移时、以及恢复到Run模式时的时间开销较大。在Shutdown模式中,由于必须考虑高速缓冲存储器内的上下文的退避·恢复和/或高速缓冲存储器的稳定时间,因此与Dormant模式相比,时间开销较大。故而,如果使用睡眠模式的时间不是充分大于从通常动作模式进行转移、及恢复到通常动作模式所需的时间的话,就不能使用更省电(更深)的睡眠模式。
于是,为了将更深的睡眠模式适用于上述那样的栅障等待的处理器中,必须要事先估计栅障等待时间。作为实现它的以往技术,提出有这样的方法:利用履历来预测栅障等待时间,根据预测出的栅障等待时间(栅障等待预测时间)来决定向多深的睡眠模式进行转移(例如,非专利文献1等)。具体地说,在线程是栅障到达时,让执行了该线程的处理器的电力模式从通常动作模式转移到与栅障等待预测时间相应的睡眠模式。然后,在自栅障等待预测时间起倒算的时机,开始向通常动作模式进行恢复,以便到栅障成立为止使电力模式从睡眠模式恢复到通常动作模式。象这样,在以往技术中,通过利用履历预测栅障等待时间,来将更深的睡眠模式适用于栅障等待的处理器中。
非专利文献1:J.Li、J.Martinez、M.Huang、TheThriftyBarrier:Energy-AwareSynchronizationinShared-MemoryMultiprocessors、InProceedingsofHigh-PerformanceComputerArchitechture(HPCA)‘04、IEEEComputerSocietyWashington、DC、USA、2004年、p14-23
不过,如上所述,在向睡眠模式进行转移以及向通常动作模式进行恢复时存在时间开销,睡眠模式越深,时间开销越大。而且,在上述以往技术中,按照一个栅障同步来向睡眠模式进行转移、以及向通常动作模式进行恢复。因此,在上述以往技术中,存在有这样的课题:在睡眠模式的使用时间中所占的开销比率较大,实际的省电效果较差。
发明内容
本发明是解决上述课题的发明,目的在于:提供一种能够比以往更省电的多处理器控制装置、其控制方法及集成电路。
本发明是用于解决上述课题的发明,本发明所涉及的多处理器控制装置控制向多个处理器提供电力,在该多个处理器中,在将含在程序中的第一程序块分割为多个第一块,一边进行栅障同步,一边并行执行各个第一块之后,将与该第一程序块连续的第二程序块分割为多个第二块,一边进行栅障同步,一边并行执行各个第二块。该多处理器控制装置包括:取得单元,取得第一非执行时间信息和第二非执行时间信息,该第一非执行时间信息与每个处理器所表示的第一非执行时间有关,该第一非执行时间表示第一程序块的从栅障同步开始到栅障同步成立为止的第一栅障成立时间中的、没有执行第一块的时间,该第二非执行时间信息与每个处理器所表示的第二非执行时间有关,该第二非执行时间表示第二程序块的从栅障同步开始到栅障同步成立为止的第二栅障成立时间中的、没有执行第二块的时间;以及电力控制单元,利用在取得单元中取得了的第一及第二非执行时间信息,来控制在连续并行执行第一及第二程序块期间向多个处理器提供电力。
另外,第一及第二非执行时间信息是例如相当于后述的实施方式中的线程非执行预测时间的信息。并且,第一块及第二块例如相当于后述的实施方式中的线程或进程。
根据上述结构,电力控制单元利用两个非执行时间信息,来进行跨越连续并行执行的两个程序块的电力控制。因此,对于利用一个非执行时间信息,并行执行一个程序块期间的多个处理器的电力提供进行控制的以往技术相比,利用两个非执行时间信息的方法更能够使各个处理器省电。
最好电力控制单元利用在取得单元中取得了的第一及第二非执行时间信息,来对于每个处理器控制第一及第二块的执行开始时机,以便在第二程序块的栅障同步开始前后,第一及第二块的执行状态成为相同状态,并且,控制向多个处理器提供电力,以便在第二程序块的栅障同步开始前后,没有执行第一及第二块的处理器成为睡眠状态,正在执行第一及第二块的处理器成为动作状态。由于通过该结构,与利用一个非执行时间信息,来对于并行执行一个程序块期间的多个处理器的电力提供进行控制的以往技术相比,能够减少向睡眠状态进行转移和向动作状态进行恢复的次数,因此能够使各个处理器更省电。
在上述结构中,电力控制单元也可以具有电力模式控制单元和转移单元,该电力模式控制单元被预先设定有表示使处理器为通常动作状态的电力的通常动作模式和表示使处理器为睡眠状态的电力的睡眠模式,将各个处理器的电力模式设定为通常动作模式或者睡眠模式;该转移单元控制对于各个处理器的时钟信号以及/或者电源电压的提供,并让各个处理器的电力模式分别转移到在电力模式控制单元中所设定的电力模式。电力模式控制单元对于在第一程序块的栅障同步成立之前就已结束了执行第一块的处理器,让第二块的执行开始时机从第二程序块的栅障同步开始起仅延迟第二非执行时间信息所表示的时间,并且,将从第一块的执行结束到第二块的执行开始为止期间的电力模式设定为睡眠模式。另外,转移单元例如相当于后述的实施方式中的时钟信号控制单元及电源电压控制单元。另外,第二非执行时间信息也可以是在第一程序块的栅障同步成立之前就已结束了执行第一块的处理机的第二非执行时间。
在上述结构中,电力模式控制单元也可以在第一块的执行结束到第二块的执行开始期间,将在第一程序块的栅障同步成立之前就已结束了执行第一块的处理器的电力模式设定为与第一非执行时间信息所表示的时间相应的睡眠模式。或者,电力模式控制单元也可以在第二非执行时间信息所表示的时间大于第一非执行时间信息所表示的时间时,在第一块的执行结束到第一程序块的栅障同步成立期间,将在第一程序块的栅障同步成立之前就已结束了执行第一块的处理器的电力模式设定为与第一非执行时间信息所表示的时间相应的睡眠模式,在第二程序块的栅障同步开始到第二块的执行开始期间,设定为与第二非执行时间信息所表示的时间相应的睡眠模式。或者,也可以是第一及第二程序块为同一程序块。电力模式控制单元将在第一程序块的栅障同步成立之前就已结束了执行第一块的处理器的电力模式设定为与第一非执行时间信息所表示的时间和第二非执行时间信息所表示的时间之和相应的睡眠模式。
另外,也可以是第一非执行时间信息是在第一程序块的栅障同步成立之前就已结束了执行第一块的处理器的第一非执行时间,第二非执行时间信息是在第一程序块的栅障同步成立之前就已结束了执行第一块的处理器的第二非执行时间。
或者,也可以是取得单元存储有第一及第二非执行时间信息,第一非执行时间信息是每个处理器所表示的第一非执行时间的统计时间,第二非执行时间信息是每个处理器所表示的第二非执行时间的统计时间。此时,第一非执行时间信息还是每个处理器所表示的第一非执行时间的平均时间,第二非执行时间信息还是每个处理器所表示的第二非执行时间的平均时间。或者,也可以是第一非执行时间信息是除去每个处理器所表示的第一非执行时间中的最小第一非执行时间之后算出的平均时间,第二非执行时间信息是除去每个处理器所表示的第二非执行时间中的最小第二非执行时间之后算出的平均时间。
或者,也可以是取得单元存储有第一及第二非执行时间信息,第一非执行时间信息是每个处理器所表示的第一非执行时间中的最小第一非执行时间,第二非执行时间信息是每个处理器所表示的第二非执行时间中的最小第一非执行时间。
在上述结构中,也可以是在电力模式控制单元中还预先设定有低速动作模式,该低速动作模式表示使处理器为低速动作状态的电力。电力模式控制单元对于在第一程序块的栅障同步开始时开始执行第一块的处理器,比较在将第一块的执行结束到第一程序块的栅障同步成立期间的电力模式设定为与第一非执行时间信息所表示的时间相应的睡眠模式时在处理器中所消费的电力和在将第一块的执行结束到第一程序块的栅障同步成立期间的电力模式设定为低速动作模式时在处理器中所消费的电力,并将处理器的电力模式设定为在处理器中所消费的电力较少的一方的电力模式;对于在第二程序块的栅障同步开始时开始执行第二块的处理器,比较在将第二块的执行结束到第二程序块的栅障同步成立期间的电力模式设定为与第二非执行时间信息所表示的时间相应的睡眠模式时在处理器中所消费的电力和在将第二块的执行结束到第二程序块的栅障同步成立期间的电力模式设定为低速动作模式时在处理器中所消费的电力,并将处理器的电力模式设定为在处理器中所消费的电力较少的一方的电力模式。
此时,取得单元进一步取得第一及第二栅障成立时间。电力模式控制单元,在将第一程序块的栅障同步开始时开始执行第一块的处理器的电力模式设定为低速动作模式时,计算与第一非执行时间信息所表示的时间和第一栅障成立时间之比相应的、低于向处于通常动作状态的处理器提供的时钟信号的频率的第一频率,并将算出的第一频率设定为低速动作模式,在将第二程序块的栅障同步开始时开始执行第二块的处理器的电力模式设定为低速动作模式时,计算与第二非执行时间信息所表示的时间和第二栅障成立时间之比相应的、低于向处于通常动作状态的处理器提供的时钟信号的频率的第二频率,并将算出的第二频率设定为低速动作模式。转移单元也可以当在第一程序块的栅障同步开始时开始执行第一块的处理器的电力模式被设定为低速动作模式时,将针对该处理器的时钟信号的频率设定为第一频率,当在第二程序块的栅障同步开始时开始执行第二块的处理器的电力模式被设定为低速动作模式时,将针对该处理器的时钟信号的频率设定为第二频率。
或者,电力模式控制单元也可以在将各个处理器的电力模式都设为了低速动作模式时,将各个处理器的电力模式重新设定为通常动作模式。
或者,也可以是取得单元在第一程序块的栅障同步开始时开始执行第一块的处理器的电力模式被设定为低速动作模式时,将该处理器在低速动作状态下开始执行第一块到结束执行为止的时间换算为该处理器在通常动作状态下开始执行第一块到结束执行为止的时间,并从第一栅障成立时间中减去换算而来的时间,取得第一非执行时间,在第二程序块的栅障同步开始时开始执行第二块的处理器的电力模式被设定为低速动作模式时,将该处理器在低速动作状态下开始执行第二块到结束执行为止的时间换算为该处理器在通常动作状态下开始执行第二块到结束执行为止的时间,并从第二栅障成立时间中减去换算而来的时间,取得第二非执行时间。
另外,也可以是取得单元存储有第一及第二非执行时间信息,第一非执行时间信息是每个处理器所表示的第一非执行时间的统计时间,第二非执行时间信息是每个处理器所表示的第二非执行时间的统计时间。此时,第一非执行时间信息也可以是每个处理器所表示的第一非执行时间的平均时间,第二非执行时间信息是每个处理器所表示的第二非执行时间的平均时间。
并且,本发明为面向于在多处理器控制装置中进行的控制方法,本发明所涉及的控制方法为在控制向多个处理器提供电力的多处理器控制装置中进行的控制方法,在该多个处理器中,在将含在程序中的第一程序块分割为多个第一块,一边进行栅障同步,一边并行执行各个第一块之后,将与该第一程序块连续的第二程序块分割为多个第二块,一边进行栅障同步,一边并行执行各个第二块。该控制方法包括:取得步骤,取得第一非执行时间信息和第二非执行时间信息,该第一非执行时间信息与每个处理器所表示的第一非执行时间有关,该第一非执行时间表示第一程序块的从栅障同步开始到栅障同步成立为止的第一栅障成立时间中的、没有执行第一块的时间,该第二非执行时间信息与每个处理器所表示的第二非执行时间有关,该第二非执行时间表示第二程序块的从栅障同步开始到栅障同步成立为止的第二栅障成立时间中的、没有执行第二块的时间;以及电力控制步骤,利用在取得单元中取得了的第一及第二非执行时间信息,来控制在连续并行执行第一及第二程序块期间向多个处理器提供电力。
并且,本发明还面向于集成电路,本发明所涉及的集成电路是控制向多个处理器提供电力的集成电路,在该多个处理器中,在将含在程序中的第一程序块分割为多个第一块,一边进行栅障同步,一边并行执行各个第一块之后,将与该第一程序块连续的第二程序块分割为多个第二块,一边进行栅障同步,一边并行执行各个第二块。该集成电路包括:取得单元,取得第一非执行时间信息和第二非执行时间信息,该第一非执行时间信息与每个处理器所表示的第一非执行时间有关,该第一非执行时间表示第一程序块的从栅障同步开始到栅障同步成立为止的第一栅障成立时间中的、没有执行第一块的时间,该第二非执行时间信息与每个处理器所表示的第二非执行时间有关,该第二非执行时间表示第二程序块的从栅障同步开始到栅障同步成立为止的第二栅障成立时间中的、没有执行第二块的时间;以及电力控制单元,利用在取得单元中取得了的第一及第二非执行时间信息,来控制在连续并行执行第一及第二程序块期间对于多个处理器提供电力。
(发明的效果)
根据本发明,能够提供一种可获得比以往更省电的多处理器控制装置、其控制方法及集成电路。
附图说明
图1为示意地表示程序的结构例和执行该程序的情况的图。
图2为示意地表示程序的结构的其它例子和执行该程序的情况的图。
图3为表示使用了第一实施方式所涉及的多处理器控制装置的共享存储型的多处理器系统的结构例的图。
图4为表示预测信息取得单元11的具体结构例的图。
图5为表示履历信息存储单元112内的履历表的图。
图6为表示电力控制单元13的具体结构例的图。
图7为表示电力模式控制单元131所设定的电力模式的图。
图8为表示整个多处理器控制装置1的动作流程的流程图。
图9为表示第一实施方式所涉及的处理器P-1~P-N各自的控制流程的流程图。
图10为表示循环执行同一并行程序块时控制前后的各个线程的执行状态的图。
图11为表示连续执行不同的并行程序块时控制前后的各个线程的执行状态的图。
图12为表示使用第一实施方式的第一变形例所涉及的多处理器控制装置的共享存储型的多处理器系统的结构例的图。
图13为表示预测信息取得单元11a的具体结构例的图。
图14为表示履历信息存储单元112a内的履历表的图。
图15为表示电力控制单元13a的具体结构例的图。
图16为表示整个多处理器控制装置1a的动作流程的流程图。
图17为表示第一实施方式的第一变形例所涉及的处理器P-1~P-N各自的控制流程的流程图。
图18为表示循环执行同一并行程序块时控制前后的各个线程的执行状态的图。
图19为表示第一实施方式的第二变形例所涉及的处理器P-1~P-N各自的控制流程的流程图。
图20为表示使用第二实施方式所涉及的多处理器控制装置的共享存储型的多处理器系统的结构例的图。
图21为表示预测信息取得单元61的具体结构例的图。
图22为表示履历信息存储单元612内的履历表的图。
图23为表示电力控制单元63的具体结构例的图。
图24为表示电力模式控制单元631所设定的电力模式的图。
图25为表示整个多处理器控制装置6的动作流程的流程图。
图26为表示第二实施方式所涉及的处理器P-1~P-N各自的控制流程的流程图。
图27为表示循环执行同一并行程序块时控制前后的各个线程的执行状态的图。
图28为表示连续执行不同的并行程序块时控制前后的各个线程的执行状态的图。
图29为表示使用第二实施方式的第一变形例所涉及的多处理器控制装置的共享存储型的多处理器系统的结构例的图。
图30为表示预测信息取得单元61a的具体结构例的图。
图31为表示履历信息存储单元612a内的履历表的图。
图32为表示电力控制单元63a的具体结构例的图。
图33为表示整个多处理器控制装置6a的动作流程的流程图。
图34为表示第二实施方式的第一变形例所涉及的处理器P-1~P-N各自的控制流程的流程图。
图35为表示第二实施方式的第二变形例所涉及的处理器P-1~P-N各自的控制流程的流程图。
图36为表示将第一实施方式所涉及的多处理器系统用在再生装置中时的结构例的图。
图37为表示用在英国ARM公司的ARM处理器中的电力模式的图。
(符号的说明)
1、1a、6、6a-多处理器控制装置;2-共享存储器总线;3-主存储装置;4-电源装置;5、5a-程序;7-存储器控制器;8-IO接口;11、11a、61、61a-预测信息取得单元;111、111a、611、611a-栅障监视单元;112、112a、612、612a-履历信息存储单元;113、113a、613、613a-预测信息生成单元;12-计时器(timer);13、13a、63、63a-电力控制单元;131、131a、631、631a-电力模式控制单元;132、632-时钟信号控制单元;133、633-电源电压控制单元;91-光磁盘驱动器;92-光磁盘;93-存储卡驱动器;94-存储卡。
具体实施方式
首先,对各个处理器所执行的程序的结构进行具体说明。
以是否能够并行执行为标准将程序分割为多个程序块。将各个程序块分类为可并行执行的并行程序块、或不可并行执行的逐次执行的程序块中的某一种。
图1为示意地表示程序的结构例和执行该程序的情况的图。程序5中所记载的函数par(i)是表示对于i可并行执行的函数,函数seq()是表示不可并行执行的函数。此时,程序块51成为并行程序块,程序块52成为逐次程序块。并且,程序5中所记载的j表示循环执行的次数,根据图1的记载,仅循环执行10次(j=0~9)并行程序块51,然后,执行逐次程序块52。而且,在图1中,以i将并行程序块51分割为4个线程(i=0~24、i=25~49、i=50~74、i=75~99)。然后,将分割而来的4个线程中的每一个分配给处理器P-1~P-4。例如,处理器P-2在栅障开始的同时,开始执行用i=25~49所表示的线程,在该线程的栅障到达时(用i=25~49表示的线程所涉及的实线箭头的前端)进行原子操作,访问主存储装置,让锁变量减少1。然后,如用i=25~49所表示的线程的虚线箭头所示,处理器P-2到栅障成立为止都成为栅障等待。
线程开始时间TST(ThreadStartingTime)表示栅障开始到开始执行线程为止的时间。在图1的例子中,用TST-1~TST-4表示各个线程的线程开始时间TST。并且,在图1的例子中,由于各个线程在栅障开始的同时,开始执行,因此线程开始时间TST-1~TST-4都成为“0”。栅障成立时间BET(BarrierEstablishTime)表示从栅障开始到栅障成立为止的时间。栅障到达时间BAT(BarrierArrivalTime)表示从栅障开始到线程的栅障到达为止的时间。在图1的例子中,用BAT-1~BAT-4表示各个线程的栅障到达时间BAT。栅障等待时间BWT(BarrierWaitingTime)表示从栅障到达到栅障成立为止的时间。在图1的例子中,用BWT-1~BWT-4表示各个线程的栅障等待时间BWT。在图1的例子中,由于用i=0~25表示的线程的栅障到达处于最后,因此在该线程的栅障到达时栅障成立。故而,栅障等待时间BWT-1=0。线程非执行时间TNPT(ThreadNonProcessingTime)表示从栅障开始到栅障成立为止期间,没有执行线程的时间。
这里,栅障成立时间BET、栅障到达时间BAT及栅障等待时间BWT具有式子(1)那样的关系。另外,式子(1)的n既是确定处理器的号码,又是确定线程的号码。并且,栅障成立时间BET与最大栅障到达时间BAT所表示的时间一致。
(栅障成立时间BET)=(栅障到达时间BAT-n)+(栅障等待时间BWT-n)……(1)
并且,栅障等待时间BWT、栅障开始时间TST及栅障非执行时间TNPT具有式子(2)那样的关系。另外,式子(2)的n既是确定处理器的号码,又是确定线程的号码。
(栅障非执行时间TNPT-n)=(栅障开始时间TST-n)+(栅障等待时间BWT-n)……(2)
另外,如图2所示,有时不对并行程序块51进行循环执行。图2为示意地表示程序的结构的其它例子和执行该程序的情况的图。在图2所示的程序5a中记载有并行程序块51及53。根据该记载,首先,并行执行被分割为4个线程的并行程序块51,接着,并行执行被分割为4个线程的并行程序块53,如图2所示。
其次,对本发明的实施方式所涉及的多处理器控制装置进行说明。
(第一实施方式)
(结构)
参照图3,对使用本发明的第一实施方式所涉及的多处理器控制装置的共享存储型的多处理器系统的结构进行说明。图3为表示使用第一实施方式所涉及的多处理器控制装置的共享存储型的多处理器系统的结构例的图。在图3中,多处理器系统由多处理器控制装置1、处理器P-1~P-N(N是1以上的自然数)、共享存储器总线2、主存储装置3及电源装置4构成。处理器P-1~P-N各自经由共享存储器总线2连接在主存储装置3上,一边进行使用分配给主存储装置3上的特定共享存储器地址的锁变量的排他控制,一边实现栅障同步。不过,不一定非要将锁变量设置在主存储装置3上。例如,也可以设置在被映射(mapping)在多处理器控制装置1上的特定共享存储器地址的专用寄存器上。
使多处理器控制装置1分别与电源装置4和处理器P-1~P-N连接,对于处理器P-1~P-N中的每一台进行向睡眠模式转移和向通常动作模式恢复的控制。由预测信息取得单元11、计时器12及电力控制单元13构成多处理器控制装置1。
预测信息取得单元11对于处理器P-1~P-N中的每一台取得每个程序块的预测信息,并将所取得的预测信息输出给电力控制单元13。在本实施方式中,将为线程非执行时间TNPT的预测时间的线程非执行预测时间PTNPT(PredictiveThreadNonProcessingTime)用作预测信息。以下,参照图4对预测信息取得单元11的具体结构进行说明。图4为表示预测信息取得单元11的具体结构例的图。预测信息取得单元11由栅障监视单元111、履历信息存储单元112及预测信息生成单元113构成。
栅障监视单元111对处理器P-1~P-N各自的程序块的执行状态进行监视,生成栅障时机信号BT(BarrierTiming)。栅障监视单元111在生成栅障时机信号BT的同时,将所生成的栅障时机信号BT输出给预测信息生成单元113及电力控制单元13。在栅障时机信号BT中包含有表示栅障开始时机的栅障开始信号、表示各个线程的栅障到达时机的栅障到达信号、表示栅障成立时机的栅障成立信号及表示各个线程的线程开始时机的线程开始信号。例如,栅障监视单元111能够通过监视处理器P-1~P-N各自的执行命令,来检测栅障开始信号及线程开始信号。并且,能够通过检测上述执行命令中的减少锁变量的原子操作(atomicoperation),来检测栅障到达信号或栅障成立信号。并且,例如,也可以是使栅障监视单元111与共享存储器总线2连接,将生成栅障时机信号BT用的寄存器设置在栅障监视单元111内部的结构。此时,能够通过使各个处理器P-1~P-N在各时机访问栅障监视单元111的寄存器,来使栅障监视单元111生成表示该时机的栅障时机信号BT。
并且,栅障监视单元111将确定执行的程序块用的栅障识别信息BID(BarrierID)保持在内部BID寄存器中。例如,栅障识别信息BID由栅障开始点的命令地址等构成。栅障监视单元111将已保持在BID寄存器中的栅障识别信息BID-m输出给履历信息存储单元112、预测信息生成单元113及电力控制单元13。这里,假设程序被分割为M(M为1以上的自然数)个程序块,m(I以上M以下的自然数)是确定程序块的号码。
并且,栅障监视单元111在生成了栅障到达信号时参照计时器12,计算栅障到达时间BAT。栅障到达信号的生成时机因处理器P-1~P-N的不同而不同。所以,栅障监视单元111计算处理器P-1~P-N各自的栅障到达时间BAT-1~BAT-N。同样,栅障监视单元111通过在生成了线程开始信号时参照计时器12,来计算处理器P-1~P-N各自的线程开始时间TST-1~TST-N。栅障监视单元111通过将算出的栅障到达时间BAT-1~BAT-N、线程开始时间TST-1~TST-N代入式子(1)及式子(2),来分别计算线程非执行时间TNPT-1~TNPT-N。栅障监视单元111将算出的线程非执行时间TNPT-1~TNPT-N输出给履历信息存储单元112。
履历信息存储单元112将所输入的线程非执行时间TNPT-1~TNPT-N存储在图5所示的履历表中。图5为表示履历信息存储单元112内的履历表的图。在图5中,履历表具有标签(tag)单元和数据单元。履历信息存储单元112将从栅障监视单元111输入的栅障识别信息BID-m存储在标签单元的任意条目(entry)中。履历信息存储单元112将从栅障监视单元111输入的线程非执行时间TNPT-1~TNPT-N存储在与存储有栅障识别信息BID-m的条目相对应的数据单元的各个条目中。象这样,履历表使栅障识别信息BID-m和用栅障识别信息BID-m确定的程序块的线程非执行时间TNPT-1~TNPT-N相对应,并存储下来。
并且,履历信息存储单元112将由V(Valid)标志或IV(Invalid)标志构成的标志信息存储在标签单元的条目中。履历信息存储单元112在栅障识别信息BID-m及履历信息被存储在标签单元的条目和与该条目相对应的数据单元的各条目(行(line))中时,认为对于用栅障识别信息BID-m确定的程序块存在有效履历信息,而将该行的标志设置为V标志。另一方面,履历信息存储单元112在栅障识别信息BID-m及履历信息没有存在于标签(tag)单元的条目和与该条目相对应的数据单元的各条目中时,将该行的标志设置为IV标志。履历信息存储单元112在存储被输入的栅障识别信息BID-m及履历信息时,判断含有被输入的栅障识别信息BID-m的有效(被设置有V标志)行是否已存在于履历表中。当已存在有效行时,履历信息存储单元112将履历信息写在该有效行上,进行更新。当不存在有效行时,履历信息存储单元112将被输入的栅障识别信息BID-m及履历信息存储在空着的行中,并将该行的标志设置为V标志。
另外,由于可存储在履历表中的行数有限,因此能够认为所有行的V标志都会被设置。此时,也可以通过用在处理器的超高速缓冲存储器的更新等中的LRU(LeastRecentlyUsed)这样的更新方式,来从使用频率较低的行开始进行覆盖更新。
并且,虽然在初次执行程序块时,在履历表中存储栅障识别信息BID,但是并没有存储履历信息。因此,也可以预先将“0”设定为履历表内的履历信息的初始值。或者,也可以事先进行考虑到程序的步骤数和/或各步骤的执行延迟的静态解析,来预先预测各个处理器的栅障到达时间。此时,也可以通过从预测出的栅障到达时间中的成为最大的栅障成立时间中减去栅障到达时间,来求出栅障等待时间,并将该求出的栅障等待时间预先设定为线程非执行信息的初始值。另外,此时,使线程开始时间为“0”。
并且,在上述内容中,履历信息存储单元112在存储线程非执行时间TNPT-1~TNPT-N时,只是利用最新值进行更新的,但是并不限定于此。履历信息存储单元112也可以算出包括过去的履历信息在内的统计值(例如,平均值等),利用算出的统计值来进行更新。
预测信息生成单元113参照栅障时机信号BT,在栅障开始时或栅障到达时,从履历信息存储单元112中读出与栅障识别信息BID-m相对应的线程非执行时间TNPT-1~TNPT-N,并作为线程非执行预测时间PTNPT-1~PTNPT-N输出给电力控制单元13。
电力控制单元13通过根据从预测信息取得单元11输入的预测信息,控制提供给处理器P-1~P-N各自的电源电压以及/或者时钟信号,来控制对于处理器P-1~P-N各自的电力提供。并且,电力控制单元13进行跨越连续的两个程序块的电力控制。以下,参照图6对电力控制单元13的具体结构进行说明。图6为表示电力控制单元13的具体结构例的图。电力控制单元13由电力模式控制单元131、时钟信号控制单元132及电源电压控制单元133构成。
电力模式控制单元131在从栅障监视单元111输入栅障开始信号时,经由共享存储器总线2对主存储装置3内的锁变量进行初始值设定,设定为处理器台数或线程数,开始计时器12的计时。电力模式控制单元131在从栅障监视单元111输入栅障成立信号时,结束计时器12的计时,使其复位(reset)。另外,也可以将计时器12设置在电力控制单元13的内部。并且,也可以将计时器12设置在多处理器控制装置1的外部,与共享存储器总线2连接。此时,电力模式控制单元131经由共享存储器总线2来控制计时器12。并且,此时,使栅障监视单元111与共享存储器总线2连接,栅障监视单元111经由共享存储器总线2来参照计时器12。
并且,电力模式控制单元131按照被输入的线程非执行预测时间PTNPT-1~PTNPT-N来设定处理器P-1~P-N各自的电力模式。在电力模式控制单元131中预先设定有图7所示的睡眠转移判断阈值。图7为表示电力模式控制单元131所设定的电力模式的图。将图7所示的睡眠转移判断阈值Tsb、Tdm、Tsd设定为预计在考虑到向睡眠模式进行转移的转移时间、以及向通常动作模式进行恢复的恢复时间时,仍能够充分获得省电效果的睡眠时间。电力模式控制单元131在例如线程非执行预测时间PTNPT-1在0以上Tsb以下时,将处理器P-1的电力模式设定为处于通常动作模式的RUN模式。由于设想在线程非执行预测时间PTNPT-1接近于“0”时,不能确保睡眠时间,并且线程最后成为栅障到达,因此不必转移到睡眠模式。而在线程非执行预测时间PTNPT-1大于Tsb且在Tdm以下时,电力模式控制单元131将处理器P-1的电力模式设定为处于睡眠模式的Standby模式。在线程非执行预测时间PTNPT-1大于Tdm且在Tsd以下时,电力模式控制单元131将处理器P-1的电力模式设定为处于睡眠模式的Dormant模式。在线程非执行预测时间PTNPT-1大于Tsd时,电力模式控制单元131将处理器P-1的电力模式设定为处于睡眠模式的Shutdown模式。
另外,设定在电力模式控制单元131中的电力模式并不限定于图7所示的范围。只要在电力模式控制单元131中至少设定处于通常动作模式的Run模式和一个睡眠模式即可。并且,只要在电力模式控制单元131中设定与图7所示的电力模式不同的电力模式即可。
电力模式控制单元131将表示对处理器P-1~P-N中的每一台所设定的电力模式的控制信号PCTRL-1~PCTRL-N输出给处理器P-1~P-N。并且,电力模式控制单元131将表示对处理器P-1~P-N中的每一台所设定的电力模式的控制信号作为控制信号CCTRL-1~CCTRL-N输出给时钟信号控制单元132,并作为控制信号VCTRL-1~VCTRL-N输出给电源电压控制单元133。另外,控制信号PCTRL-1~PCTRL-N、CCTRL-1~CCTRL-N、VCTRL-1~VCTRL-N或是表示中断调试(debug)请求的信号,或是表示重启(softreset)的信号,或是表示复位(reset)的信号。并且,有时控制信号PCTRL-1~PCTRL-N是表示开始执行线程的信号。后面将进行详细说明。
时钟信号控制单元132利用PLL(Phase-LockedLoop)电路等,生成基于控制信号CCTRL-1~CCTRL-N所表示的各个电力模式的时钟信号CLK-1~CLK-N。时钟信号控制单元132将所生成的时钟信号CLK-1~CLK-N输出给处理器P-1~P-N。
电源电压控制单元133通过对从电源装置4输入的电源电压进行降压等,来生成基于控制信号VCTRL-1~VCTRL-N所表示的各个电力模式的电源电压VDD-1~VDD-N。电源电压控制单元133将所生成的电源电压VDD-1~VDD-N提供给处理器P-1~P-N。
这里,例如,在让处理器P-1的电力模式向Standby模式进行转移时,电力模式控制单元131将表示Standby模式的控制信号PCTRL-1输出给处理器P-1,对处理器P-1发出向Standby模式进行转移的指示。电力模式控制单元131在检测出已作好了可在处理器P-1中以中断方式进行恢复的准备时,将表示Standby模式的控制信号CCTRL-1输出给时钟信号控制单元132,将表示Standby模式的控制信号VCTRL-1输出给电源电压控制单元133。时钟信号控制单元132根据控制信号CCTRL-1,来切断对于进行恢复所需的中断接口之外的处理器核心和/或超高速缓冲存储器的时钟信号CLK-1的输出。电源电压控制单元133根据控制信号VCTRL-1,来使处理器核心和/或超高速缓冲存储器的电源电压为与通常动作模式相同的电源电压,或者为在处理器核心内的各种寄存器和/或超高速缓冲存储器内的数据等的内部状态(上下文)不会挥发的范围内的低电压。
并且,例如,在让处理器P-1的电力模式向Shutdown模式进行转移时,电力模式控制单元131将表示Shutdown模式的控制信号PCTRL-1输出给处理器P-1,向处理器P-1发出向Shutdown模式进行转移的指示。电力模式控制单元131在检测出在处理器P-1中处理器核心和/或超高速缓冲存储器内的所有上下文被退避到外部存储器中时,将表示Shutdown模式的控制信号CCTRL-1输出给时钟信号控制单元132,将表示Shutdown模式的控制信号VCTRL-1输出给电源电压控制单元133。时钟信号控制单元132根据控制信号CCTRL-1,来切断对于处理器核心和/或超高速缓冲存储器的时钟信号CLK-1的输出。电源电压控制单元133根据控制信号VCTRL-1,来切断处理器核心和/或超高速缓冲存储器的电源电压。
(动作)
其次,参照图8对第一实施方式所涉及的多处理器控制装置1的动作进行说明。图8为表示整个多处理器控制装置1的动作流程的流程图。
在图8中,栅障监视单元111在栅障开始时生成栅障开始信号,且将所生成的栅障开始信号输出给预测信息生成单元113及电力控制单元13(步骤S11)。并且,在步骤S11中,栅障监视单元111将栅障识别信息BID-m输出给预测信息生成单元113及电力控制单元13。在步骤S11之后,电力模式控制单元131在从栅障监视单元111输入栅障开始信号时,经由共享存储器总线2对主存储装置3内的锁变量进行初始值设定,设定为处理器台数或线程数,让计时器12开始计时(步骤S12)。在步骤S12之后,预测信息生成单元113在从栅障监视单元111输入栅障开始信号时,从履历信息存储单元112中读出与栅障识别信息BID-m相对应的线程非执行时间TNPT-1~TNPT-N,并作为线程非执行预测时间PTNPT-1~PTNPT-N输出给电力控制单元13(步骤S13)。在步骤S13之后,分别对处理器P-1~P-N中的每一台进行控制(步骤S14-1~S14-N)。以后将对这些控制进行说明。
在步骤S15中,电力模式控制单元131根据来自栅障监视单元111的栅障成立信号,对用栅障识别信息BID-m确定的程序块判断是否已是栅障成立。另外,电力模式控制单元131也可以通过经由共享存储器总线2参照主存储装置3的锁变量,来判断是否已是栅障成立。在判断为从栅障监视单元111输入栅障成立信号,栅障同步已成立时,电力模式控制单元131让计时器12结束计时,使其复位(步骤S16)。
在步骤S16之后,栅障监视单元111根据栅障时机信号和计时器12的计时,来计算线程非执行时间TNPT-1~TNPT-N(步骤S17)。并且,在步骤S17中,栅障监视单元111将所算出的线程非执行时间TNPT-1~TNPT-N与栅障识别信息BID-m一起输出给履历信息存储单元112。
在步骤S17之后,履历信息存储单元112将与被输入的栅障识别信息BID-m相对应的存储在数据单元中的以往的线程非执行时间TNPT-1~TNPT-N更新为已在步骤S17中输出的线程非执行时间TNPT-1~TNPT-N(步骤S18)。
在步骤S18之后,栅障监视单元111通过判断能否再次生成栅障开始信号,来判断正在执行的程序块是否是最后的程序块(步骤S19)。当正在执行的程序块是最后的程序块时(在步骤S19中,为“Yes”),结束处理。当正在执行的程序块不是最后的程序块时(在步骤S19中,为“No”),使处理返回到步骤S11,进行下一个程序块的动作。
参照图9具体说明分别对处理器P-1~P-N所进行的控制(步骤S14-1~S14-N)。由于步骤S14-1~S14-N的控制流程相同,因此在图9的例子中,记载有处理器P-n的控制流程。
在图9中,电力模式控制单元131参照自身所输出的控制信号PCTRL-n,来判断处理器P-n现在的电力模式是否是睡眠模式(步骤S141)。
当判断为处理器P-n不是睡眠模式时(在步骤S141中,为“No”),电力模式控制单元131使用控制信号PCTRL-n,让处理器P-n立刻开始执行线程(步骤S142)。电力模式控制单元131根据来自栅障监视单元111的栅障到达信号,来判断处理器P-n的线程是否已是栅障到达(在步骤S143中,为“Yes”),电力模式控制单元131进行睡眠转移控制。具体地说,电力模式控制单元131按照在步骤S13中所输出的线程非执行预测时间PTNPT-n,来设定应该转移的睡眠模式。电力模式控制单元131将表示所设定的睡眠模式的控制信号PCTRL-n、CCTRL-n、VCTRL-n分别输出给处理器P-n、时钟信号控制单元132、电源电压控制单元133。因此,处理器P-n在与线程非执行预测时间PTNPT-n相应的睡眠模式下成为栅障等待。
而当判断为处理器P-n是睡眠模式时(在步骤S141中,为“Yes”),电力模式控制单元131监视计时器12,在等待在步骤S13中所输出的线程非执行预测时间PTNPT-n经过之后,进行向通常动作模式的恢复控制(步骤S145)。具体地说,电力模式控制单元131在计时器12的计时经过了在步骤S13中所输出的线程非执行预测时间PTNPT-n时,将表示通常动作模式的控制信号PCTRL-n、CCTRL-n、VCTRL-n分别输出给处理器P-n、时钟信号控制单元132、电源电压控制单元133。因此,处理器P-n从睡眠模式向通常动作模式恢复。象这样,当通过步骤S141及步骤S145的动作,使处理器P-n在上次栅障成立时转移到了睡眠模式时,在这次栅障同步中,睡眠模式从栅障开始起仅持续线程非执行预测时间PTNPT-n。
另外,例如,如果是从图7的Standby模式开始恢复的话,电力模式控制单元131仅通过将表示中断调制请求的控制信号CCTRL-n输出给时钟信号控制单元132,重新开始时钟信号CLK-n的输出,处理器P-n就能够恢复到通常动作模式。而如果是从Shutdown模式开始恢复的话,首先,电力模式控制单元131将表示复位的控制信号CCTRL-n、VCTRL-n输出给时钟信号控制单元132、电源电压控制单元133,重新开始时钟信号CLK-n及电源电压Vdd-n的输出。然后,为了让处理器P-n恢复到通常动作模式,必须要让向Shutdown模式进行转移时退避的所有上下文恢复。所以,恢复时间因睡眠模式的深度不同而不同。因此,电力模式控制单元131在考虑不同的恢复时间的情况下,进行步骤S145的动作,以便在线程非执行预测时间PTNPT-n经过之前开始恢复。从而,能够抑制性能下降的影响。
在步骤S145之后,电力模式控制单元131使用控制信号PCTRL-n,让处理器P-n立刻开始执行线程(步骤S146)。电力模式控制单元131根据来自栅障监视单元111的栅障到达信号,来判断处理器P-n的线程是否已是栅障到达(步骤S147)。当判断为线程已是栅障到达时(在步骤S147中,为“Yes”),处理进入图8所示的步骤S15。由于处理器P-n在执行线程之前已确保有线程非执行预测时间PTNPT-n的睡眠时间,因此预计不能确保这以上的睡眠。因此,通过动作从步骤S147进入步骤S15,使处理器P-n在旋转等待状态下成为栅障等待。
其次,参照图10及图11所示的具体例子,对如何通过上述多处理器控制装置1的控制来执行程序的情况进行说明。
图10为表示循环执行同一并行程序块时控制前后的各个线程的执行状态的图。在图10中,使循环执行的并行程序块为用栅障识别信息BID-1确定的并行程序块。并且,将并行程序块分割为3个线程,将分割而来的3个线程分别分配给处理器P-1~P-3。使第一次栅障开始时所有的处理器P-1~P-3的电力模式为通常动作模式。
对图10的控制之前的情况进行说明。处理器P-1几乎在与第一次栅障开始同时开始执行线程。处理器P-1的栅障到达时间长于处理器P-2及P-3的。因此,在处理器P-1的线程是栅障到达的同时,第一次栅障成立。为此时的处理器P-1的栅障等待时间的“BWT-1”成为“0”。处理器P-2几乎在与第一次栅障开始同时开始执行线程。使处理器P-2的线程在第一次栅障成立之前是栅障到达。然后,处理器P-2从栅障到达到第一次栅障成立为止,在旋转等待(SW)状态下成为栅障等待。使此时的栅障等待时间为“BWT-2”。处理器P-3几乎在与第一次栅障开始同时开始执行线程。使处理器P-3的线程在第一次栅障成立之前是栅障到达。然后,处理器P-3从栅障到达到第一次栅障成立为止,在旋转等待(SW)状态下成为栅障等待。使此时的栅障等待时间为“BWT-3”。然后,重复以上执行状态,执行并行程序块。
对图10的控制之后的情况进行说明。在履历信息存储单元112中对于栅障识别信息BDI-1存储有线程非执行时间TNPT-1(=0)、TNPT-2(=BWT-2)、TNPT-1(=BWT-3)。
处理器P-1几乎在与第一次栅障开始(步骤S11)同时开始执行线程(步骤S142)。这是因为处理器P-1的电力模式在第一次栅障开始时是通常动作模式,因此在步骤S141中被判断为“NO”之故。在处理器P-1的线程是栅障到达时(在步骤S143中,为“Yes”),处理器P-1不向睡眠模式进行转移,而是一边维持通常动作模式,一边迎接第一次栅障成立。这是因为在第一次步骤S13中输出的线程非执行预测时间PTNPT-1是“0”,不因步骤S144的处理而向睡眠模式转移之故。并且,处理器P-1的栅障到达时间长于处理器P-2及P-3的。所以,在处理器P-1的线程是栅障到达的同时,第一次栅障成立。
处理器P-2几乎在与第一次栅障开始(步骤S11)同时开始执行线程(步骤S 142)。在处理器P-2的线程是栅障到达时(在步骤S143中,为“Yes”),处理器P-2转移到与在第一次步骤S13中输出的线程非执行预测时间PTNPT-2相应的睡眠模式SL(PTNPT-2)(步骤S144)。然后,处理器P-2一边维持睡眠模式SL(PTNPT-2),一边迎接第一次栅障成立。
处理器P-3几乎在与第一次栅障开始(步骤S11)同时开始执行线程(步骤S142)。在处理器P-3的线程是栅障到达时(在步骤S143中,为“Yes”),处理器P-3转移到与在第一次步骤S13中输出的线程非执行预测时间PTNPT-3相应的睡眠模式SL(PTNPT-3)(步骤S144)。然后,处理器P-3一边维持睡眠模式SL(PTNPT-3),一边迎接第一次栅障成立。
在第一次栅障成立之后,履历信息存储单元112的履历信息被更新(步骤S18),以使线程非执行时间TNPT-1成为TST-1与BWT-1的和(=0),使线程非执行时间TNPT-2成为TST-2与BWT-2的和(=BWT-2),使线程非执行时间TNPT-3成为TST-3与BWT-3的和(=BWT-3)。
处理器P-1几乎在与第二次栅障开始(步骤S11)同时开始执行线程(步骤S142)。这是因为处理器P-1的电力模式在第一次栅障成立时是通常动作模式,因此在步骤S141中被判断为“NO”之故。当处理器P-1的线程是栅障到达时(在步骤S143中,为“Yes”),处理器P-1一边维持通常动作模式,一边迎接第二次栅障成立。这是因为在第二次步骤S13中输出的线程非执行预测时间PTNPT-1是“0”,不因步骤S144的处理而向睡眠模式进行转移之故。并且,处理器P-1的栅障到达时间长于处理器P-2及P-3的。所以,在处理器P-1的线程是栅障到达的同时,第二次栅障成立。
处理器P-2在第二次栅障开始(步骤S11)之后,到在第二次步骤S13中输出的线程非执行预测时间PTNPT-2经过为止,一直持续睡眠模式SL(PTNPT-2)。在线程非执行预测时间PTNPT-2经过之后,处理器P-2向通常动作模式进行恢复(步骤S145),开始执行线程(步骤S146)。在处理器P-2的线程是栅障到达的同时(在步骤S147中,为“Yes”),处理器P-2迎接第二次栅障成立。这是因为在从栅障开始起算延迟了与第一次栅障等待时间BWT-2相同的时间之后,才开始执行处理器P-2的线程,成为旋转等待状态的时间几乎为“0”之故。另外,线程开始时间TST-2与线程非执行预测时间PTNPT-2一致。
处理器P-3在第二次栅障开始(步骤S11)之后,到在第二次步骤S13中输出的线程非执行预测时间PTNPT-3经过为止,一直持续睡眠模式SL(PTNPT-3)。在线程非执行预测时间PTNPT-3经过之后,处理器P-3向通常动作模式进行恢复(步骤S145),开始执行线程(步骤S146)。在处理器P-3的线程是栅障到达的同时(在步骤S147中,为“Yes”),处理器P-3迎接第二次栅障成立。这是因为在从栅障开始起算延迟了与第一次栅障等待时间BWT-3相同的时间之后,才开始执行处理器P-3的线程,成为旋转等待状态的时间几乎为“0”之故。另外,线程开始时间TST-3与线程非执行预测时间PTNPT-3一致。
在第二次栅障成立之后,履历信息存储单元112的履历信息被更新(步骤S18),以使线程非执行时间TNPT-1成为TST-1与BWT-1的和(=0),使线程非执行时间TNPT-2成为TST-2与BWT-2的和(=BWT-2),使线程非执行时间TNPT-3成为TST-3与BWT-3的和(=BWT-3)。
由于第三次栅障开始以后的执行状态与第一次栅障开始以后的执行状态相同,因此在此省略说明。
图11为表示连续执行不同的并行程序块时控制前后的各个线程的执行状态的图。在图11中,连续执行用栅障识别信息BID-1确定的并行程序块、用栅障识别信息BID-2确定的并行程序块和用栅障识别信息BID-3确定的并行程序块。并且,将各个并行程序块分别分割为3个线程,将该分割而来的3个线程分别分配给处理器P-1~P-3。并且,在用栅障识别信息BID-1确定的并行程序块的栅障开始时,所有处理器P-1~P-3的电力模式为通常动作模式。
对图11的控制之前的情况进行说明。处理器P-1几乎在与第一次栅障开始同时开始执行线程。处理器P-1的线程的栅障到达时间长于处理器P-2及P-3的。因此,在处理器P-1的线程是栅障到达的同时,第一次栅障成立。此时的处理器P-1的栅障等待时间“BID-1:BWT-1”成为“0”。
处理器P-2几乎在与第一次栅障开始同时开始执行线程。处理器P-2的线程在第一次栅障成立之前是栅障到达。然后,处理器P-2从栅障到达到第一次栅障成立为止,在旋转等待(SW)状态下成为栅障等待。使此时的栅障等待时间为“BID-1:BWT-2”。
处理器P-3几乎在与第一次栅障开始同时开始执行线程。处理器P-3的线程在第一次栅障成立之前是栅障到达。然后,处理器P-3从栅障到达到第一次栅障成立为止,在旋转等待(SW)状态下成为栅障等待。使此时的栅障等待时间为“BID-1:BWT-3”。
处理器P-1几乎在与第二次栅障开始同时开始执行线程。处理器P-1的线程在第二次栅障成立之前是栅障到达。然后,处理器P-1从栅障到达到第二次栅障成立为止,在旋转等待(SW)状态下成为栅障等待。使此时的栅障等待时间为“BID-2:BWT-1”。
处理器P-2几乎在与第二次栅障开始同时开始执行线程。处理器P-2的线程的栅障到达时间长于处理器P-2及P-3的。因此,在处理器P-2的线程是栅障到达的同时,第二次栅障成立。此时的处理器P-2的栅障等待时间“BID-2:BWT-2”成为“0”。
处理器P-3几乎在与第二次栅障开始同时开始执行线程。处理器P-3的线程在第二次栅障成立之前是栅障到达。然后,处理器P-3从栅障到达到第二次栅障成立为止,在旋转等待(SW)状态下成为栅障等待。使此时的栅障等待时间为“BID-2:BWT-3”。
处理器P-1几乎在与第三次栅障开始同时开始执行线程。处理器P-1的线程在第三次栅障成立之前是栅障到达。然后,处理器P-1从栅障到达到第三次栅障成立为止,在旋转等待(SW)状态下成为栅障等待。使此时的栅障等待时间为“BID-3:BWT-1”。
处理器P-2几乎在与第三次栅障开始同时开始执行线程。处理器P-2的线程在第三次栅障成立之前是栅障到达。然后,处理器P-2从栅障到达到第三次栅障成立为止,在旋转等待(SW)状态下成为栅障等待。使此时的栅障等待时间为“BID-3:BWT-2”。
处理器P-3几乎在与第三次栅障开始同时开始执行线程。处理器P-3的线程的栅障到达时间长于处理器P-1及P-2的。因此,在处理器P-3的线程是栅障到达的同时,第三次栅障成立。此时的处理器P-3的栅障等待时间“BID-3:BWT-3”成为“0”。
对图11的控制之后的情况进行说明。在履历信息存储单元112中,关于栅障识别信息BDI-1,存储有线程非执行时间(BID-1:TNPT-1)(=0)、(BID-1:TNPT-2)(=BID-1:BWT-2)、(BID-1:TNPT-3)(=BID-1:BWT-3)。并且,在履历信息存储单元112中,关于栅障识别信息BDI-2,存储有线程非执行时间(BID-2:TNPT-1)(=BID-2:BWT-1)、(BID-2:TNPT-2)(=0)、(BID-2:TNPT-3)(=BID-2:BWT-3)。而且,在履历信息存储单元112中,关于栅障识别信息BDI-3,存储有线程非执行时间(BID-3:TNPT-1)(=BID-3:BWT-1)、(BID-3:TNPT-2)(=BID-3:BWT-2)、(BID-3:TNPT-3)(=0)。
处理器P-1几乎在与第一次栅障开始(步骤S11)同时开始执行线程(步骤S142)。这是因为处理器P-1的电力模式在第一次栅障开始时是通常动作模式,因此在步骤S141中被判断为“NO”之故。在处理器P-1的线程是栅障到达时(在步骤S143中,为“Yes”),处理器P-1一边维持通常动作模式,一边迎接第一次栅障成立。这是因为在第一次步骤S13中输出的线程非执行预测时间(BID-1:PTNPT-1)是“0”,不因步骤S144的处理而向睡眠模式进行转移之故。并且,处理器P-1的栅障到达时间长于处理器P-2及P-3的。所以,在处理器P-1的线程是栅障到达的同时,第一次栅障成立。
处理器P-2几乎在与第一次栅障开始(步骤S11)同时开始执行线程(步骤S142)。在处理器P-2的线程是栅障到达时(在步骤S143中,为“Yes”),处理器P-2转移到与在第一次步骤S13中输出的线程非执行预测时间(BID-1:PTNPT-2)相应的睡眠模式SL(BID-1:PTNPT-2)(步骤S144)。然后,处理器P-2一边维持睡眠模式SL(BID-1:PTNPT-2),一边迎接第一次栅障成立。
处理器P-3几乎在与第一次栅障开始(步骤S11)同时开始执行线程(步骤S142)。在处理器P-3的线程是栅障到达时(在步骤S143中,为“Yes”),处理器P-3转移到与在第一次步骤S13中输出的线程非执行预测时间(BID-1:PTNPT-3)相应的睡眠模式SL(BID-1:PTNPT-3)(步骤S144)。然后,处理器P-3一边维持睡眠模式SL(BID-1:PTNPT-3),一边迎接第一次栅障成立。
在第一次栅障成立之后,履历信息存储单元112的履历信息被更新(步骤S18),以使线程非执行时间(BID-1:TNPT-1)成为(BID-1:TST-1)与(BID-1:BWT-1)的和(=0),使线程非执行时间(BID-1:TNPT-2)成为(BID-1:TST-2)与(BID-1:BWT-2)的和,使线程非执行时间(BID-1:TNPT-3)成为(BID-1:TST-3)与(BID-1:BWT-3)的和。
处理器P-1几乎在与第二次栅障开始(步骤S11)同时开始执行线程(步骤S142)。这是因为处理器P-1的电力模式在第一次栅障成立时是通常动作模式,因此在步骤S141中被判断为“NO”之故。在处理器P-1的线程是栅障到达时(在步骤S143中,为“Yes”),处理器P-1转移到与在第二次步骤S13中输出的线程非执行预测时间(BID-2:PTNPT-1)相应的睡眠模式SL(BID-2:PTNPT-1)(步骤S144)。然后,处理器P-1一边维持睡眠模式SL(BID-2:PTNPT-1),一边迎接第二次栅障成立。
处理器P-2在第二次栅障开始(步骤S11)之后,到在第二次步骤S13中输出的线程非执行预测时间(BID-2:PTNPT-2)经过为止,一直持续睡眠模式SL(BID-1:PTNPT-2)。这里,线程非执行预测时间(BID-2:PTNPT-2)为“0”。因此,处理器P-2立刻向通常动作模式进行恢复(步骤S145),开始执行线程(步骤S146)。另外,处理器P-2的线程的栅障到达时间长于处理器P-1及P-3的。并且,线程非执行预测时间(BID-2:PTNPT-2)为“0”,不因步骤S144的处理而向睡眠模式进行转移。因此,在处理器P-2的线程是栅障到达的同时,第二次栅障成立。
处理器P-3在第二次栅障开始(步骤S11)之后,到在第二次步骤S13中输出的线程非执行预测时间(BID-2:PTNPT-3)经过为止,一直持续睡眠模式SL(BID-1:PTNPT-3)。在线程非执行预测时间(BID-2:PTNPT-3)经过之后,向通常动作模式进行恢复(步骤S145),开始执行线程(步骤S146)。然后,处理器P-3从栅障到达到第二次栅障成立为止,在旋转等待(SW)状态下成为栅障等待。
在第二次栅障成立之后,履历信息存储单元112的履历信息被更新(步骤S18),以使线程非执行时间(BID-2:TNPT-1)成为(BID-2:TST-1)与(BID-2:BWT-1)的和,使线程非执行时间(BID-2:TNPT-2)成为(BID-2:TST-2)与(BID-2:BWT-2)的和,使线程非执行时间(BID-2:TNPT-3)成为(BID-2:TST-3)与(BID-2:BWT-3)的和。
处理器P-1在第三次栅障开始(步骤S11)之后,到在第三次步骤S13中输出的线程非执行预测时间(BID-3:PTNPT-1)经过为止,一直持续睡眠模式SL(BID-2:PTNPT-1)。在线程非执行预测时间(BID-3:PTNPT-1)经过之后,向通常动作模式进行恢复(步骤S145),开始执行线程(步骤S146)。在处理器P-1的线程是栅障到达的同时(在步骤S147中,为“Yes”),处理器P-1迎接第三次栅障成立。这是因为在从栅障开始起延迟了与栅障等待时间(BID-3:BWT-1)相同的时间之后,才开始执行处理器P-1的线程,并且,由于与后述的处理器P-3的线程的关系,而使成为旋转等待状态的时间几乎为“0”之故。另外,线程开始时间(BID-3:TST-1)与线程非执行预测时间(BID-3:PTNPT-1)一致。
处理器P-2几乎在与第三次栅障开始(步骤S11)同时开始执行线程(步骤S142)。这是因为处理器P-2的电力模式在第二次栅障成立时是通常动作模式,因此在步骤S141中被判断为“NO”之故。在处理器P-2的线程是栅障到达时(在步骤S143中,为“Yes”),处理器P-2转移到与在第三次步骤S13中输出的线程非执行预测时间(BID-3:PTNPT-2)相应的睡眠模式SL(BID-3:PTNPT-2)(步骤S144)。然后,处理器P-2一边维持睡眠模式SL(BID-3:PTNPT-2),一边迎接第三次栅障成立。
处理器P-3几乎在与第三次栅障开始(步骤S11)同时开始执行线程(步骤S142)。这是因为处理器P-3的电力模式在第二次栅障成立时是通常动作模式,因此在步骤S141中被判断为“NO”之故。在处理器P-3的线程是栅障到达时(在步骤S143中,为“Yes”),处理器P-3不向睡眠模式进行转移,而是一边维持通常动作模式,一边迎接第三次栅障成立。这是因为在第三次步骤S13中输出的线程非执行预测时间(BID-3:PTNPT-3)为“0”,不因步骤S144的处理而向睡眠模式进行转移之故。并且,处理器P-3的栅障到达时间长于处理器P-1及P-2的。因此,在处理器P-3的线程是栅障到达的同时,第三次栅障成立。
在第三次栅障成立之后,履历信息存储单元112的履历信息被更新(步骤S18),以使线程非执行时间(BID-3:TNPT-1)成为(BID-3:TST-1)与(BID-3:BWT-1)的和,使线程非执行时间(BID-3:TNPT-2)成为(BID-3:TST-2)与(BID-3:BWT-2)的和,使线程非执行时间(BID-3:TNPT-3)成为(BID-3:TST-3)与(BID-3:BWT-3)的和(=0)。
根据上述本实施方式,控制各个处理器的线程执行开始时机,以使线程的执行状态在栅障开始前后成为相同状态(步骤S142、S146)。并且,紧接着栅障开始(步骤S11)之后进行各个处理器的电力模式判断(步骤S141)。并且,在处理器的电力模式已转移到睡眠模式时,让该睡眠模式持续,在处理器的电力模式仍然为通常动作模式时,让通常动作模式持续。因此,能够实现跨越两个程序块的睡眠控制。结果是与以往技术相比,能够减少向睡眠模式进行转移和向通常动作模式进行恢复的次数,能够更加省电。
另外,在图8的步骤S13中,使预测信息生成单元113从履历信息存储单元112读出与栅障识别信息BID-m相关联的线程非执行时间TNPT-1~TNPT-N,但是并不限定于此。如图10所示,在循环执行同一并行程序块时,能够事先把握下次执行的并行程序块(m+1)。因此,此时,预测信息生成单元113也可以同时读出与栅障识别信息BID-m+1相关联的线程非执行时间TNPT-1~TNPT-N。并且,电力模式控制单元131按照被输入的栅障识别信息BID-m的线程非执行预测时间PTNPT-n与栅障识别信息BID-m+1的线程非执行预测时间PTNPT-n的和,来设定处理器P-n的电力模式。因此,在正在执行的并行程序块中,能够向与两个线程非执行预测时间的和相应的睡眠模式进行转移。结果是能够将睡眠模式设定为更深的模式,能够更加省电。
另外,当执行的程序块是逐次程序块时,同时执行的线程数不满处理器数。此时,存在有没有分配线程的处理器。对于没有分配线程的处理器,当在电力模式判断中判断为睡眠时(在步骤S141中,为“Yes”),在睡眠恢复控制(步骤S145)中什么也不做,而是立刻使其为栅障到达(在步骤S147中,为“Yes”),让睡眠模式持续。而当在电力模式判断中判断为不是睡眠时(在步骤S141中,为“No”),立刻使其为栅障到达(在步骤S143中,为“Yes”),进行睡眠转移控制(步骤S144)。因此,不管电力模式判断如何,没有分配线程的处理器在栅障开始后,都会立刻成为栅障到达。所以,栅障到达时间几乎为“0”,根据式子(1)、式子(2)的关系,线程非执行时间成为与栅障成立时间一样大的值。结果是由于在下次之后执行上次逐次程序块时,线程非执行预想时间变大,因此能够期待处理器在睡眠转移控制(步骤S144)中转移到更深的睡眠模式。
(第一实施方式的第一变形例)
如图5所示,在第一实施方式中,履历信息存储单元112按照每个栅障识别信息BID存储有线程非执行时间TNPT-1~TNPT-N。因此,必须要与装载在多处理器系统中的处理器台数成比例地增加数据单元的存储容量。结果是有可能增大多处理器控制装置1的电路规模。于是,本第一变形例的目的在于:削减存储在履历信息存储单元112中的数据量,抑制多处理器控制装置1的电路规模的增大。
(结构)
图12为表示使用本第一变形例所涉及的多处理器控制装置的共享存储型的多处理器系统的结构例的图。本第一变形例所涉及的多处理器系统与图3所示的结构的不同之处仅在于:多处理器控制装置1被换成多处理器控制装置1a,多处理器控制装置1a由预测信息取得单元11a、计时器12及电力控制单元13a构成。以下,以不同之处为中心进行说明。
预测信息取得单元11a按照每个程序块,逐个取得预测信息,并将所取得的预测信息输出给电力控制单元13a。以下,参照图13对预测信息取得单元11a的具体结构进行说明。图13为表示预测信息取得单元11a的具体结构例的图。预测信息取得单元11a由栅障监视单元111a、履历信息存储单元112a及预测信息生成单元113a构成。
栅障监视单元111a与上述栅障监视单元111的不同之处在于:进一步计算为算出的线程非执行时间TNPT-1~TNPT-N的统计值(例如,平均值)的线程非执行时间TNPT,并将其输出给履历信息存储单元112a。并且,栅障监视单元111a与上述栅障监视单元111的不同之处还在于:根据栅障到达信号,对于每个程序块,确定线程最后到达的处理器,并将确定该处理器用的处理器识别信息PID输出给履历信息存储单元112a。这里,使栅障监视单元111a输出处理器识别信息PID-n。n为确定处理器的号码。其它之处与栅障监视单元111一样。
履历信息存储单元112a将所输入的线程非执行时间TNPT存储在图14所示的履历表中。图14为表示履历信息存储单元112a内的履历表的图。履历信息存储单元112a将从栅障监视单元111a输入的栅障识别信息BID-m存储在标签单元的任意条目中。履历信息存储单元112a将从栅障监视单元111a输入的处理器识别信息PID-n存储在与存储有栅障识别信息BID-m的条目相对应的标签单元的条目中。履历信息存储单元112a将从栅障监视单元111a输入的线程非执行时间TNPT存储在与存储有栅障识别信息BID-m的条目相对应的标签单元的各个条目中。象这样,履历表使栅障识别信息BID-m、处理器识别信息PID-n和用栅障识别信息BID-m确定的程序块的线程非执行时间TNPT相关联,并将其存储起来。其它之处与履历信息存储单元112一样。
预测信息生成单元113a参照栅障时机信号BT,在栅障开始时或栅障到达时,从履历信息存储单元112a中读出与栅障识别信息BID-m相关联的处理器识别信息PID-n和线程非执行时间TNPT,并作为处理器预测识别信息PPID-n、线程非执行预测时间PTNPT输出给电力控制单元13a。
电力控制单元13a根据从预测信息取得单元11a输入的预测信息,来控制提供给处理器P-1~P-N各自的电源电压以及/或者时钟信号,由此控制对于处理器P-1~P-N各自的电力提供。以下,参照图15对电力控制单元13a的具体结构进行说明。图15为表示电力控制单元13a的具体结构例的图。电力控制单元13a由电力模式控制单元131a、时钟信号控制单元132及电源电压控制单元133构成。电力控制单元13a与上述电力控制单元13的不同之处在于:用电力模式控制单元131a代替了电力模式控制单元131。以下,以不同之处为中心进行说明。
电力模式控制单元131a按照被输入的线程非执行预测时间PTNPT,来对处理器P-1~P-N中的每一台设定共同的电力模式。在电力模式控制单元131a中,根据图7所示的睡眠转移判断阈值,来设定电力模式。并且,电力模式控制单元131a针对用处理器预测识别信息PPID-n确定的处理器P-n,跳过(skip)睡眠转移控制。其它之处与上述电力模式控制单元131一样。
(动作)
其次,参照图16对第一变形例所涉及的多处理器控制装置1a的动作进行说明。图16为表示整个多处理器控制装置1a的动作流程的流程图。由于图16所示的步骤S21、S22、S25、S26、S29与图8所示的步骤S11、S12、S15、S16、S19进行同样的处理,因此以这之外的步骤为中心进行说明。
在步骤S22的下一个步骤S23中,预测信息生成单元113a在从栅障监视单元111a输入栅障开始信号时,从履历信息存储单元112a中读出与栅障识别信息BID-m相关联的处理器识别信息PID-n和线程非执行时间TNPT,并作为处理器预测识别信息PPID-n、线程非执行预测时间PTNPT输出给电力控制单元13a(步骤S23)。在步骤S23之后,分别对处理器P-1~P-N中的每一台进行控制(步骤S24-1~S24-N)。下面将对这些控制进行说明。
在步骤S26的下一个步骤S27中,栅障监视单元111a根据栅障时机信号和计时器12的计时,来计算线程非执行时间TNPT。并且,在步骤S27中,栅障监视单元111a将线程非执行时间TNPT、处理器识别信息PID-n和栅障识别信息BID-m输出给履历信息存储单元112a。
在步骤S27之后,履历信息存储单元112a将与被输入的栅障识别信息BID-m相对应的存储在数据单元中的以往的线程非执行时间TNPT更新为在步骤S27中输出的线程非执行时间TNPT(步骤S28)。并且,在步骤S28中,履历信息存储单元112a将与被输入的栅障识别信息BID-m相对应的存储在标签单元中的以往的处理器识别信息PID-n更新为在步骤S27中输出的处理器识别信息PID-n。
参照图17具体说明对处理器P-1~P-N中的每一台所进行的控制(步骤S24-1~S24-N)。由于步骤S24-1~S24-N的控制流程相同,因此在图17的例子中记载有处理器P-n的控制流程。另外,由于图17所示的步骤S241~S243与图9所示的步骤S141~S143进行相同的处理,步骤S245~S248与图9所示的步骤S144~S147进行相同的处理,因此以这之外的步骤为中心进行说明。
在步骤S243的下一个步骤S244中,电力模式控制单元131a判断控制对象的处理器是否是用在步骤S23中所输出的处理器预测识别信息PPID-n确定的处理器P-n。也就是说,电力模式控制单元131a判断控制对象的处理器是否是最后成为栅障到达的处理器。当控制对象的处理器不是最后成为栅障到达的处理器时(在步骤S244中,为“No”),电力模式控制单元131a按照在步骤S23中所输出的线程非执行预测时间PTNPT,来设定处理器P-1~P-N各自的电力模式(步骤S245)。而当控制对象的处理器是最后成为栅障到达的处理器时(在步骤S244中,为“Yes”),跳过睡眠转移控制(步骤S245)。这里,控制对象的处理器是P-n,用处理器预测识别信息PPID-n确定的处理器也是P-n。因此,在步骤S244中为肯定的判断。
其次,参照图18所示的具体例,对如何通过上述多处理器控制装置1a的控制来执行程序进行说明。图18为表示循环执行同一并行程序块时控制前后的各个线程的执行状态的图。在图18中,在第一次栅障开始时,使所有处理器P-1~P-3的电力模式为通常动作模式。由于图18的控制之前与图10的控制之前相同,因此在此省略说明。
对于图18的控制之后进行说明。在履历信息存储单元112a中,对于栅障识别信息BDI-1,存储有线程非执行时间TNPT(BWT-1~BWT-3的平均值)和处理器识别信息PID-1(确定处理器P-1的信息)。
处理器P-1几乎在与第一次栅障开始(步骤S21)同时开始执行线程(步骤S242)。这是因为处理器P-1的电力模式在第一次栅障开始时是通常动作模式,因此在步骤S241中被判断为“NO”之故。在处理器P-1的线程是栅障到达时(在步骤S243中,为“Yes”),处理器P-1不向睡眠模式进行转移,一边维持通常动作模式,一边迎接第一次栅障成立。这是因为在第一次步骤S23中所输出的处理器预测识别信息PPID-1确定处理器P-1,步骤S244的判断成为“Yes”,步骤S245的睡眠转移控制被跳过之故。
处理器P-2几乎在与第一次栅障开始(步骤S21)同时开始执行线程(步骤S242)。在处理器P-2的线程是栅障到达时(在步骤S243中,为“Yes”),处理器P-2转移到与在第一次步骤S23中输出的线程非执行预测时间PTNPT相应的睡眠模式SL(PTNPT)(步骤S245)。另外,处理器P-2不是用处理器预测识别信息PPID-1确定的处理器P-1。因此,关于处理器P-2,在步骤S244的判断成为“No”,进行步骤S245的睡眠转移控制。然后,处理器P-2一边维持睡眠模式SL(PTNPT),一边迎接第一次栅障成立。
处理器P-3几乎在与第一次栅障开始(步骤S21)同时开始执行线程(步骤S242)。在处理器P-3的线程是栅障到达时(在步骤S243中,为“Yes”),处理器P-3转移到与在第一次步骤S23中输出的线程非执行预测时间PTNPT相应的睡眠模式SL(PTNPT)(步骤S245)。另外,处理器P-3不是用处理器预测识别信息PPID-1确定的处理器P-1。因此,关于处理器P-3,步骤S244的判断为“No”,进行步骤S245的睡眠转移控制。然后,处理器P-3一边维持睡眠模式SL(PTNPT),一边迎接第一次栅障成立。
在第一次栅障成立之后,履历信息存储单元112a的履历信息被更新(步骤S28),以使线程非执行时间TNPT成为TST-1~TST-N、BWT-1~BWT-N的平均值。并且,由于处理器P-1最后成为栅障到达,因此履历信息存储单元112a的处理器识别信息仍是PID-1。
处理器P-1几乎在与第二次栅障开始(步骤S21)同时开始执行线程(步骤S242)。这是因为处理器P-1的电力模式在第一次栅障成立时是通常动作模式,因此在步骤S241中被判断为“NO”之故。当处理器P-1的线程是栅障到达时(在步骤S243中,为“Yes”),处理器P-1不向睡眠模式进行转移,一边维持通常动作模式,一边迎接第二次栅障成立。这是因为在第二次步骤S23中所输出的处理器预测识别信息PPID-1确定处理器P-1,步骤S244的判断为“Yes”,步骤S245的睡眠转移控制被跳越之故。
处理器P-2在第二次栅障开始(步骤S21)之后,到在第二次步骤S23中输出的线程非执行预测时间PTNPT经过为止,一直持续睡眠模式SL(PTNPT)。在线程非执行预测时间PTNPT经过之后,处理器P-2向通常动作模式进行恢复(步骤S246),开始执行线程(步骤S247)。在图18的例子中,在处理器P-2的线程成为栅障到达的同时(在步骤S248中,为“Yes”),处理器P-2迎接第二次栅障成立。
处理器P-3在第二次栅障开始(步骤S21)之后,到在第二次步骤S23中输出的线程非执行预测时间(PTNPT)经过为止,一直持续睡眠模式SL(PTNPT)。在线程非执行预测时间PTNPT经过之后,处理器P-3向通常动作模式进行恢复(步骤S246),开始执行线程(步骤S247)。在图18的例子中,在处理器P-3的线程成为栅障到达时(在步骤S248中,为“Yes”),处理器P-3直到第二次栅障成立为止,在旋转等待(SW)状态下成为栅障等待。
在第二次栅障成立之后,履历信息存储单元112a的履历信息被更新(步骤S28),以使线程非执行时间TNPT成为TST-1~TST-N、BWT-1~BWT-N的平均值。并且,由于处理器P-1最后成为栅障到达,因此履历信息存储单元112a的处理器识别信息仍是PID-1。
处理器P-1几乎在与第三次栅障开始(步骤S21)同时开始执行线程(步骤S242)。这是因为处理器P-1的电力模式在第二次栅障成立时是通常动作模式,因此在步骤S241中被判断为“NO”之故。在处理器P-1的线程是栅障到达时(在步骤S243中,为“Yes”),处理器P-1不向睡眠模式进行转移,一边维持通常动作模式,一边迎接第三次栅障成立。这是因为在第三次步骤S23中所输出的处理器预测识别信息PPID-1确定处理器P-1,步骤S244的判断为“Yes”,步骤S245的睡眠转移控制被跳越之故。
处理器P-2几乎在与第三次栅障开始(步骤S21)同时开始执行线程(步骤S242)。在处理器P-2的线程是栅障到达时(在步骤S243中,为“Yes”),处理器P-2转移到与在第三次步骤S23中输出的线程非执行预测时间PTNPT相应的睡眠模式SL(PTNPT)(步骤S245)。另外,处理器P-2不是用处理器预测识别信息PPID-1确定的处理器P-1。因此,关于处理器P-2,步骤S244的判断为“No”,进行步骤S245的睡眠转移控制。然后,处理器P-2一边维持睡眠模式SL(PTNPT),一边迎接第三次栅障成立。
处理器P-3几乎在与第三次栅障开始(步骤S21)同时开始执行线程(步骤S242)。在处理器P-3的线程是栅障到达时(在步骤S243中,为“Yes”),处理器P-3转移到与在第三次步骤S23中输出的线程非执行预测时间PTNPT相应的睡眠模式SL(PTNPT)(步骤S245)。另外,处理器P-3不是用处理器预测识别信息PPID-1确定的处理器P-1。因此,关于处理器P-3,步骤S244的判断为“No”,进行步骤S245的睡眠转移控制。然后,处理器P-3一边维持睡眠模式SL(PTNPT),一边迎接第三次栅障成立。
在第三次栅障成立之后,履历信息存储单元112a的履历信息被更新(步骤S28),以使线程非执行时间TNPT成为TST-1~TST-N、BWT-1~BWT-N的平均值。并且,由于处理器P-1最后成为栅障到达,因此履历信息存储单元112a的处理器识别信息成为PID-1。
如上所述,根据本第一变形例,在履历信息存储单元112a中仅存储一个线程非执行时间TNPT。因此,能够削减履历信息存储单元112a的存储容量,能够抑制多处理器控制装置1a的电路规模的增大。
另外,在上述内容中,使栅障监视单元111a计算线程非执行时间TNPT-1~TNPT-N的平均值,但是并不限定于此。也可以使栅障监视单元111a计算线程非执行时间TNPT-1~TNPT-N中的、除了值为“0”的线程非执行时间之后的平均值。并且,栅障监视单元111a也可以计算线程非执行时间TNPT-1~TNPT-N中的、成为最小的线程非执行时间,还可以计算成为最大的线程非执行时间。
另外,在上述内容中,栅障监视单元111a根据栅障到达信号,对于每个程序块确定线程最后到达的处理器,并将确定该处理器用的处理器识别信息PID输出给了履历信息存储单元112a,但是并不限定于此。栅障监视单元111a也可以对于每个程序块确定线程执行时间为最大,也就是线程非执行时间为最小的处理器,使确定该处理器用的信息为处理器识别信息PID。
(第一实施方式的第二变形例)
在第一实施方式中,用图9所示的流程分别对各个处理器进行了控制。不过,如图11所示,有时在连续执行不同的并行程序块时,睡眠模式持续时所取得的线程非执行时间大于上次所取得的线程非执行时间。本第二变形例的目的在于:当睡眠模式持续时所取得的线程非执行时间大于上次所取得的线程非执行时间时,通过重新设定为更深的睡眠模式,来达到更省电的效果。
关于本第二变形例中的多处理器控制装置,在图3~图6、图8、图9所示的多处理器控制装置中的对每个处理器分别进行的个别控制方面,仅有图9的流程不同。以下,以不同之处为中心进行说明。
(动作)
参照图19具体说明对本第二变形例所涉及的处理器P-1~P-N中的每一台所进行的控制(步骤S14-1~S14-N)。由于步骤S14-1~S14-N的控制流程相同,因此在图19的例子中记载有处理器P-n的控制流程。由于图19所示的步骤S341~S344与图9所示的步骤S141~S144进行相同的处理,步骤S347~S349与图9所示的步骤S145~S147进行相同的处理,因此以这之外的步骤为中心进行说明。
当在步骤S341中判断为处理器P-n是睡眠模式时,电力模式控制单元131根据在图8的步骤S13中所输出的线程非执行预测时间PTNPT-n,来判断是否能够从当前的睡眠模式转移到更深的睡眠模式(步骤S345)。当电力模式控制单元131判断为能够转移到更深的睡眠模式时(在步骤S345中,为“Yes”),让处理器P-n的电力模式向与线程非执行预测时间PTNPT-n相应的更深的睡眠模式进行转移(步骤S346)。而在电力模式控制单元131判断为不能够转移到更深的睡眠模式时(在步骤S345中,为“No”),跳过睡眠间转移控制(步骤S346)。
例如,当当前的睡眠模式为图7的Standby模式,此次取得的线程非执行预测时间PTNPT-n大于图7的阈值Tsd时,在步骤S345中判断为能够转移到Shutdown模式,在步骤S346中进行从Standby模式向Shutdown模式的睡眠间转移控制。而当当前的睡眠模式为图7的Shutdown模式,所取得的线程非执行预测时间PTNPT-n为图7的阈值Tsb左右时,在步骤S345中判断为不能够转移到更深的睡眠模式,跳过步骤S346的处理。
在图11的控制之后,处理器P-1在第三次栅障开始时,持续睡眠模式SL(BID-2:PTNPT-1)。但是,在第三次栅障开始时取得的线程非执行预测时间(BID-3:PTNPT-1)大于第二次栅障开始时取得的线程非执行预测时间(BID-2:PTNPT-1)。因此,如果使用本第二变形例的话,电力模式控制单元131就能够在第三次栅障开始时,让处理器P-1的电力模式转移到更深的睡眠模式SL(BID-3:PTNPT-1)。
如上所述,在本第二变形例中,当在睡眠模式持续时取得的线程非执行时间大于上次所取得的线程非执行时间时,重新设定为更深的睡眠模式。结果是能够更省电。
(第二实施方式)
在第一实施方式中,通过使栅障等待状态的处理器为非动作的睡眠模式,来达到省电的效果。也就是说,在第一实施方式中,没有考虑对于正在动作的处理器实现省电化的情况。于是,在第二实施方式中,考虑使用DVFS(DynamicVoltageandFrequencyScaling)控制技术,该DVFS控制技术是根据预测信息来动态地调节(scaling)提供给正在动作的处理器的时钟频率和/或电源电压。该DVFS控制技术已在美国Intel公司的SpeedStep(注册商标)和/或美国AMD(AdvancedMicroDevices)公司的PowerNow!(注册商标)等那样的技术中被实际应用。第二实施方式与已实际应用的DVFS技术进行相同的控制。
第二实施方式与第一实施方式的不同之处在于:除了线程非执行预测时间PTNPT之外,还将为栅障成立时间BET的预测时间的栅障成立预测时间PBET(PredictiveBarrierEstablishTime)用作预测信息。并且,在第二实施方式中,当在栅障开始时没有持续睡眠模式时,或者是进行DVFS控制,以使处理器的动作为与线程非执行预测时间PTNPT和栅障成立预测时间PBET的比率相应的低速动作,或者是如第一实施方式那样,使处理器的动作转移到与线程非执行预测时间PTNPT相应的睡眠模式,选择使用省电效果较好的一方(也就是说,处理器消费的电力较少的一方)。从而获得更好的省电效果。
(结构)
图20为表示使用第二实施方式所涉及的多处理器控制装置的共享存储型的多处理器系统的结构例的图。第二实施方式所涉及的多处理器系统与图3所示的结构的不同之处仅在于:多处理器控制装置1被换成多处理器控制装置6,多处理器控制装置6由预测信息取得单元61、计时器12及电力控制单元63构成。以下,以不同之处为中心进行说明。
预测信息取得单元61对于处理器P-1~P-N中的每一台取得每个程序块的预测信息,并将所取得的预测信息输出给电力控制单元63。在本实施方式中,将线程非执行预测时间PTNPT和栅障成立预测时间PBET用作预测信息。以下,参照图21对预测信息取得单元61的具体结构进行说明。图21为表示预测信息取得单元61的具体结构例的图。预测信息取得单元61由栅障监视单元611、履历信息存储单元612及预测信息生成单元613构成。
栅障监视单元611与第一实施方式的栅障监视单元111的不同之处在于:仅将算出的栅障到达时间BAT-1~BAT-N、线程开始时间TST-1~TST-N输出给履历信息存储单元612。其它之处与栅障监视单元111一样。
履历信息存储单元612将所输入的栅障到达时间BAT-1~BAT-N、线程开始时间TST-1~TST-N存储在图22所示的履历表中。图22为表示履历信息存储单元612内的履历表的图。履历信息存储单元612将从栅障监视单元611输入的栅障识别信息BID-m存储在标签单元的任意条目中。履历信息存储单元612将从栅障监视单元611输入的栅障到达时间BAT-1~BAT-N存储在与存储有栅障识别信息BID-m的条目相对应的数据单元的各个条目中。履历信息存储单元612将从栅障监视单元611输入的线程开始时间TST-1~TST-N存储在与存储有栅障识别信息BID-m的条目相对应的数据单元的各个条目中。象这样,履历表使栅障识别信息BID-m和用栅障识别信息BID-m确定的程序块的栅障到达时间BAT-1~BAT-N及线程开始时间TST-1~TST-N相关联,并存储下来。另外,例如标志等其它的与第一实施方式的履历信息存储单元112一样。
预测信息生成单元613参照栅障时机信号BT,在栅障开始时或栅障到达时,从履历信息存储单元612中读出与栅障识别信息BID-m相关联的栅障到达时间BAT-1~BAT-N、线程开始时间TST-1~TST-N。预测信息生成单元613将所读出的栅障到达时间BAT-1~BAT-N中的为最大的栅障到达时间作为栅障成立预测时间PBET计算出来。并且,预测信息生成单元613通过将所读出的栅障到达时间BAT-1~BAT-N、线程开始时间TST-1~TST-N代入式子(1)及式子(2),来将线程非执行预测时间TNPT-1~TNPT-N作为线程非执行预测时间PTNPT-1~PTNPT-N计算出来。预测信息生成单元613参照栅障时机信号BT,在栅障开始时或栅障到达时,将栅障成立预测时间PBET、线程非执行预测时间PTNPT-1~PTNPT-N输出给电力控制单元63。
电力控制单元63根据从预测信息取得单元61输入的预测信息,来控制提供给处理器P-1~P-N各自的电源电压以及/或者时钟信号,由此控制对于处理器P-1~P-N各自的电力提供。以下,参照图23对电力控制单元63的具体结构进行说明。图23为表示电力控制单元63的具体结构例的图。电力控制单元63由电力模式控制单元631、时钟信号控制单元632及电源电压控制单元633构成。
电力模式控制单元631与第一实施方式的电力模式控制单元131的不同之处在于:除了睡眠转移控制之外,还进行对于使用DVFS控制的低速动作模式的转移控制,如图24所示。图24为表示电力模式控制单元631所设定的电力模式的图。以下,以不同之处为中心进行说明。
电力模式控制单元631根据被输入的栅障成立预测时间PBET、线程非执行预测时间PTNPT-1~PTNPT-N,来判断DVFS控制与睡眠转移控制中的哪一种控制的省电效果更好。并且,电力模式控制单元631选择被判断为省电效果较好的控制。这里,当选择了DVFS控制时,电力模式控制单元631通过将栅障成立预测时间PBET、线程非执行预测时间PTNPT-1~PTNPT-N代入式子(3),来以线程非执行时间成为“0”的方式,计算提供给处理器的时钟信号的时钟频率。另外,在式子(3)中,使让处理器P-n为低速动作用的时钟频率为低速时钟频率Fslow-n,使处理器P-n通常动作时的时钟频率为基准时钟频率Fbase。
(低速时钟频率Fslow-n)
=(基准时钟频率Fbase)×(低速动作率)
=(基准时钟频率Fbase)×(1-(线程非执行预测时间PTNPT-n)/(栅障成立预测时间PBET))…(3)
时钟信号控制单元632当在电力模式控制单元631中选择了低速动作模式时,按照控制信号CCTRL-n,将提供给处理器P-n的时钟信号CLK-n的时钟频率改变为低速时钟频率Fslow-n。电源电压控制单元633将在能够维持低速动作的范围内降压之后的电源电压VDD-n提供给处理器P-n。
(动作)
其次,参照图25对第二实施方式所涉及的多处理器控制装置6的动作进行说明。图25为表示整个多处理器控制装置6的动作流程的流程图。
在图25中,栅障监视单元611在栅障开始时生成栅障开始信号,并将所生成的栅障开始信号输出给预测信息生成单元613及电力控制单元63(步骤S41)。并且,在步骤S41中,栅障监视单元611将栅障识别信息BID-m输出给预测信息生成单元613及电力控制单元63。在步骤S41之后,电力模式控制单元631在从栅障监视单元611输入栅障开始信号时,经由共享存储器总线2对主存储装置3内的锁变量进行初始值设定,设定为处理器台数或线程数,让计时器12开始计时(步骤S42)。在步骤S42之后,预测信息生成单元613在从栅障监视单元611输入栅障开始信号时,从履历信息存储单元612中读出与栅障识别信息BID-m相关联的栅障到达时间BAT-1~BAT-N、线程开始时间TST-1~TST-N,并计算栅障成立预测时间PBET、线程非执行时间预测时间PTNPT-1~PTNPT-N,输出给电力控制单元63(步骤S43)。在步骤S43之后,分别对处理器P-1~P-N进行个别控制(步骤S44-1~S44-N)。以后将对这些个别控制进行说明。
在步骤S45中,电力模式控制单元631根据来自栅障监视单元611的栅障成立信号,对于用栅障识别信息BID-m确定的程序块判断是否已成为栅障成立。另外,电力模式控制单元631也可以通过经由共享存储器总线2参照主存储装置3的锁变量,来判断是否已成为栅障成立。在判断为从栅障监视单元611输入栅障成立信号,栅障同步已成立时,电力模式控制单元631让计时器12结束计时,使其复位(步骤S46)。
在步骤S46之后,栅障监视单元611根据栅障时机信号和计时器12的计时,计算栅障到达时间BAT-1~BAT-N、线程开始时间TST-1~TST-N(步骤S47)。并且,在步骤S47中,栅障监视单元611将所算出的栅障到达时间BAT-1~BAT-N、线程开始时间TST-1~TST-N与栅障识别信息BID-m一起输出给履历信息存储单元612。
在步骤S47之后,履历信息存储单元612将与被输入的栅障识别信息BID-m相对应的存储在数据单元中的以往的栅障到达时间BAT-1~BAT-N、线程开始时间TST-1~TST-N更新为在步骤S47中输出的栅障到达时间BAT-1~BAT-N、线程开始时间TST-1~TST-N(步骤S48)。
在步骤S48之后,栅障监视单元611通过判断能否再次生成栅障开始信号,来判断正在执行的程序块是否是最后的程序块(步骤S49)。当正在执行的程序块是最后的程序块时(在步骤S49中,为“Yes”),结束处理。当正在执行的程序块不是最后的程序块时(在步骤S49中,为“No”),处理返回到步骤S41,进行下一个程序块的动作。
参照图26具体说明分别对处理器P-1~P-N进行的控制(步骤S44-1~S44-N)。由于步骤S44-1~S44-N的控制流程相同,因此在图26的例子中记载有处理器P-n的控制流程。
在图26中,电力模式控制单元631参照自身所输出的控制信号PCTRL-n,来判断处理器P-n当前的电力模式是否是睡眠模式(步骤S441)。
当判断为处理器P-n不是睡眠模式时(在步骤S441中,为“No”),电力模式控制单元631从两种情况中选择估计耗电量为较小的一方(步骤S442),该两种情况中的一种是让处理器P-n的电力模式转移到通过用式子(3)算出的低速时钟频率Fslow-n进行动作的低速动作模式,另一种是让处理器P-n的电力模式与第一实施方式一样转移到与线程非执行预测时间PTNPT-n相应的睡眠模式。
当让转移到低速动作模式时(在步骤S442中,为“Yes”),电力模式控制单元631使用控制信号PCTRL-n,让处理器P-n开始低速动作模式下的线程执行(步骤S446)。具体地说,电力模式控制单元631将表示所设定的低速动作模式的控制信号PCTRL-n、CCTRL-n、VCTRL-n分别输出给处理器P-n、时钟信号控制单元632、电源电压控制单元633。因此,处理器P-n开始低速动作模式下的线程执行。电力模式控制单元631根据来自栅障监视单元611的栅障到达信号,来判断处理器P-n的线程是否已是栅障到达(步骤S647)。当判断为线程已是栅障到达时(在步骤S647中,为“Yes”),处理进入图25所示的步骤S45。处理器P-n进行低速动作,以使线程非执行时间为“0”。故而,动作从步骤S447进入步骤S45,使得处理器P-n在旋转等待那样的状态下成为栅障等待。
另外,由于在低速动作模式时,栅障到达时间BAT-n表示进行低速动作时的值,因此必须使其返回到通常动作时的值,并存储到履历信息存储单元612中。所以,在图25的步骤S47中,栅障监视单元611对用式子(3)的低速动作率除低速动作模式下的栅障到达时间BAT-n的值进行计算。
另外,当所有处理器已转移到低速动作模式时,或者当其它处理器已是栅障到达,而仅有低速动作模式下的处理器处于线程执行中时,也可以进行从低速动作模式向通常动作模式恢复的控制。这样一来,能够缩短栅障成立时间。
而当不向低速动作模式进行转移时(在步骤S442中,为“No”),电力模式控制单元631使用控制信号PCTRL-n,让处理器P-n立刻开始执行线程(步骤S443)。电力模式控制单元631根据来自栅障监视单元611的栅障到达信号,来判断处理器P-n的线程是否已是栅障到达(步骤S444)。当判断为线程已是栅障到达时(在步骤S444中,为“Yes”),电力模式控制单元631进行睡眠转移控制。具体地说,电力模式控制单元631按照在步骤S43中输出的线程非执行预测时间PTNPT-n,来设定应该转移的睡眠模式。电力模式控制单元631将表示所设定的睡眠模式的控制信号PCTRL-n、CCTRL-n、VCTRL-n分别输出给处理器P-n、时钟信号控制单元632、电源电压控制单元633。因此,处理器P-n在与线程非执行预测时间PTNPT-n相应的睡眠模式下成为栅障等待。
并且,当判断为处理器P-n为睡眠模式时(在步骤S441中,为“Yes”),电力模式控制单元631监视计时器12,在等待在步骤S43中所输出的线程非执行预测时间PTNPT-n经过之后,进行向通常动作模式的恢复控制(步骤S448)。具体地说,电力模式控制单元631在计时器12的计时经过了在步骤S43中所输出的线程非执行预测时间PTNPT-n时,将表示通常动作模式的控制信号PCTRL-n、CCTRL-n、VCTRL-n分别输出给处理器P-n、时钟信号控制单元632、电源电压控制单元633。因此,处理器P-n从睡眠模式恢复到通常动作模式。象这样,当通过步骤S441及步骤S448的动作,使处理器P-n在上次栅障成立时已转移到睡眠模式时,在这次栅障同步中,睡眠模式将从栅障开始起持续线程非执行预测时间PTNPT-n。
在步骤S448之后,电力模式控制单元631使用控制信号PCTRL-n,让处理器P-n立刻开始执行线程(步骤S449)。电力模式控制单元631根据来自栅障监视单元611的栅障到达信号,来判断处理器P-n的线程是否已是栅障到达(步骤S450)。当判断为线程已是栅障到达时(在步骤S450中,为“Yes”),处理进入图25所示的步骤S45。由于处理器P-n在线程执行之前已确保了线程非执行预测时间PTNPT-n的睡眠时间,因此设想不能确保这以上的睡眠。故而,动作从步骤S450进入步骤S45,处理器P-n在旋转等待那样的状态下成为栅障等待。
其次,参照图27及图28所示的具体例子,对如何通过上述多处理器控制装置6的控制来执行程序的情况进行说明。
图27为表示循环执行同一并行程序块时控制前后的各个线程的执行状态的图。在图27中,使循环执行的并行程序块为用栅障识别信息BID-1确定的并行程序块。并且,将并行程序块分割为3个线程,将分割而来的3个线程分别分配给处理器P-1~P-3。并且,使第一次栅障开始时所有的处理器P-1~P-3的电力模式都为通常动作模式。将处理器P-2的电力模式设定为低速动作模式。由于图27的控制之前与图10的控制之前一样,因此对其说明进行省略。图27的控制之后与图10的控制之后的不同之处仅在于:将低速动作模式用于处理器P-2中。以下,以不同之处为中心进行说明。
由于处理器P-2在第一次栅障开始时(步骤S41)为通常动作模式,因此在步骤S441中被判断为“No”。然后,处理器P-2在步骤S442中被判断为“Yes”,开始根据线程非执行预测时间PTNPT-2(=BWT-2)和栅障成立预测时间PBET(=BET)所设定的低速动作模式下的线程执行(步骤S446)。然后,在处理器P-2的线程是栅障到达时(在步骤S447中,为“Yes”),处理器P-2一边维持通常动作模式,一边迎接第一次栅障成立。另外,处理器P-2进行低速动作,使线程非执行时间为“0”。所以,处理器P-2的线程在栅障到达的同时,第一次栅障成立。
在第一次栅障成立之后,栅障到达时间BAT-2被式子(3)的低速动作率除,根据所除的结果更新履历信息存储单元612(步骤S48)。
由于第二次栅障开始之后的处理器P-2的执行状态与第一次栅障开始之后的执行状态相同,因此在此省略说明。
图28为表示连续执行不同的并行程序块时控制前后的各个线程的执行状态的图。在图28中,连续执行用栅障识别信息BID-1确定的并行程序块、用栅障识别信息BID-2确定的并行程序块和用栅障识别信息BID-3确定的并行程序块。并且,将各个并行程序块分别分割为3个线程,将分割而来的3个线程分别分配给处理器P-1~P-3。在用栅障识别信息BID-1确定的并行程序块的栅障开始时,使所有处理器P-1~P-3的电力模式为通常动作模式。并且,将处理器P-2的电力模式设定为低速动作模式。由于图28的控制之前与图11的控制之前相同,因此在此省略说明。图28的控制之后与图11的控制之后的不同之处仅在于:将低速动作模式用于处理器P-2中。以下,以不同之处为中心进行说明。
由于处理器P-2在第一次栅障开始时(步骤S41)为通常动作模式,因此在步骤S441中被判断为“No”。然后,处理器P-2在步骤S442中被判断为“Yes”,开始根据线程非执行预测时间(BID-1:PTNPT-2)(=BID-1:BID-2)和栅障成立预测时间PBET(=BET-1)所设定的低速动作模式下的线程执行(步骤S446)。然后,在处理器P-2的线程是栅障到达时(在步骤S447中,为“Yes”),处理器P-2一边维持通常动作模式,一边迎接第一次栅障成立。另外,处理器P-2进行低速动作,以使线程非执行时间为“0”。所以,在处理器P-2的线程是栅障到达的同时,第一次栅障成立。
在第一次栅障成立之后,用式子(3)的低速动作率去除栅障到达时间(BID-1:BAT-2),根据所除的结果更新履历信息存储单元612(步骤S48)。
由于第二次栅障开始之后的处理器P-2的执行状态与第一次栅障开始之后的执行状态相同,因此在此省略说明。
如上所述,第二实施方式是在第一实施方式中追加了DVFS控制。因此,能够更省电。
(第二实施方式的第一变形例)
如图22所示,在第二实施方式中,履历信息存储单元612在每个栅障识别信息BID中存储有栅障到达时间BAT-1~BAT-N和线程开始时间TST-1~TST-N。因此,与第一实施方式一样,必须要与装载在多处理器系统中的处理器台数成比例地增加数据单元的存储容量。结果是有可能增大多处理器控制装置6的电路规模。于是,本第一变形例的目的在于:削减存储在履历信息存储单元612中的数据量,抑制多处理器控制装置6的电力规模的增大。
(结构)
图29为表示使用本第一变形例所涉及的多处理器控制装置的共享存储型的多处理器系统的结构例的图。本第一变形例所涉及的多处理器系统与图20所示的结构的不同之处仅在于:多处理器控制装置6被换成多处理器控制装置6a,多处理器控制装置6a由预测信息取得单元61a、计时器12及电力控制单元63a构成。以下,以不同之处为中心进行说明。
预测信息取得单元61a对于每个程序块分别取得两个预测信息,并将所取得的预测信息输出给电力控制单元63a。以下,参照图30对预测信息取得单元61a的具体结构进行说明。图30为表示预测信息取得单元61a的具体结构例的图。预测信息取得单元61a由栅障监视单元611a、履历信息存储单元612a及预测信息生成单元613a构成。
栅障监视单元611a进一步计算为算出的栅障到达时间BAT-1~BAT-N的统计值(例如,平均值)的栅障到达时间BAT,并输出给履历信息存储单元612a。栅障监视单元611a将算出的栅障到达时间BAT-1~BAT-N中的最大栅障到达时间作为栅障成立时间BET计算出来,并输出给履历信息存储单元612a。并且,栅障监视单元611a进一步计算为算出的线程开始时间TST-1~TST-N的统计值(例如,平均值)的线程开始时间TST,并输出给履历信息存储单元612a。而且,栅障监视单元611a根据栅障到达信号,来对每个程序块确定线程最后到达的处理器,并将确定该处理器用的处理器识别信息PID输出给履历信息存储单元612a。其它之处与上述栅障监视单元611相同。
履历信息存储单元612a将所输入的栅障成立时间BET、处理器识别信息PID-n、栅障到达时间BAT、线程开始时间TST存储在图31所示的履历表中。图31为表示履历信息存储单元612a内的履历表的图。履历信息存储单元612a将从栅障监视单元611a输入的栅障识别信息BID-m存储在标签单元的任意条目中。履历信息存储单元612a将从栅障监视单元611a输入的处理器识别信息PID-n存储在与存储有栅障识别信息BID-m的条目相对应的标签单元的条目中。履历信息存储单元612a将从栅障监视单元611a输入的栅障成立时间BET、栅障到达时间BAT、线程开始时间TST存储在与存储有栅障识别信息BID-m的条目相对应的数据单元的各个条目中。象这样,履历表使栅障识别信息BID-m、处理器识别信息PID-n和用栅障识别信息BID-m确定的程序块的栅障成立时间BET、栅障到达时间BAT、线程开始时间TST相关联,并存储起来。其它之处与履历信息存储单元612相同。
预测信息生成单元613a参照栅障时机信号BT,在栅障开始时或栅障到达时,从履历信息存储单元612a中读出与栅障识别信息BID-m相关联的处理器识别信息PID-n、栅障成立时间BET、栅障到达时间BAT、线程开始时间TST。预测信息生成单元613a将所读出的栅障到达时间BET作为栅障成立预测时间PBET输出给电力控制单元63a。预测信息生成单元613a将所读出的处理器识别信息PID-n作为处理器预测识别信息PPID-n输出给电力控制单元63a。并且,预测信息生成单元613a通过将所读出的栅障到达时间BET、栅障到达时间BAT、线程开始时间TST代入式子(1)及式子(2),来计算线程非执行预测时间PTNPT。预测信息生成单元613a参照栅障时机信号BT,在栅障开始时或栅障到达时,将线程非执行预测时间PTNPT输出给电力控制单元63a。
电力控制单元63a根据从预测信息取得单元61a输入的预测信息,来控制提供给处理器P-1~P-N各自的电源电压以及/或者时钟信号,从而控制对于处理器P-1~P-N各自的电力提供。以下,参照图32对电力控制单元63a的具体结构进行说明。图32为表示电力控制单元63a的具体结构例的图。电力控制单元63a由电力模式控制单元631a、时钟信号控制单元632及电源电压控制单元633构成。电力控制单元63a与上述电力控制单元63的不同之处在于:用电力模式控制单元631a代替了电力模式控制单元631。以下,以不同之处为中心进行说明。
电力模式控制单元631a根据输入的栅障成立预测时间PBET、线程非执行预测时间PTNPT,来判断DVFS控制与睡眠转移控制中的哪一控制的省电效果更好。并且,电力模式控制单元631a选择被判断为省电效果较好的控制。这里,当选择了DVFS控制时,电力模式控制单元631a通过将栅障成立预测时间PBET、线程非执行预测时间PTNPT代入式子(3),来计算提供给处理器的时钟信号的时钟频率,以使线程非执行时间为“0”。另外,根据图24所示的睡眠转移判断阈值对电力模式控制单元631a设定电力模式。并且,电力模式控制单元631a对于用处理器预测识别信息PPID-n确定的处理器P-n,跳过睡眠转移控制。其它之处与上述电力模式控制单元631相同。
(动作)
其次,参照图33对第一变形例所涉及的多处理器控制装置6a的动作进行说明。图33为表示整个多处理器控制装置6a的动作流程的流程图。由于图33所示的步骤S51、S52、S55、S56、S59与图25所示的步骤S41、S42、S45、S46、S49进行相同的处理,因此以这之外的步骤为中心进行说明。
在步骤S52的下一个步骤S53中,预测信息生成单元613a在从栅障监视单元611a输入栅障开始信号时,从履历信息存储单元612a中读出与栅障识别信息BID-m相关联的处理器识别信息PID-n、栅障成立时间BET、栅障到达时间BAT、线程开始时间TST。并且,预测信息生成单元613a将处理器预测识别信息PPID-n、栅障成立预测时间PBET、线程非执行预测时间PTNPT输出给电力控制单元63a(步骤S53)。在步骤S53之后,分别对处理器P-1~P-N进行个别控制(步骤S54-1~S54-N)。下面将对这些个别控制进行说明。
在步骤S56的下一个步骤S57中,栅障监视单元611a根据栅障时机信号和计时器12的计时,来计算为统计值的栅障到达时间BAT及线程开始时间TST、和栅障成立时间BET。并且,在步骤S57中,栅障监视单元611a将算出的栅障成立时间BET、栅障到达时间BAT、线程开始时间TST输出给履历信息存储单元612a。
在步骤S57之后,履历信息存储单元612a将与被输入的栅障识别信息BID-m相对应的存储在数据单元中的以往输入的栅障成立时间BET、栅障到达时间BAT、线程开始时间TST更新为在步骤S57中输出的栅障成立时间BET、栅障到达时间BAT、线程开始时间TST(步骤S58)。并且,在步骤S58中,履历信息存储单元612a将与被输入的栅障识别信息BID-m相对应的存储在标签单元中的以往的处理器识别信息PID-n更新为在步骤S57中输出的处理器识别信息PID-n。
参照图34具体说明分别对处理器P-1~P-N进行的个别控制(步骤S54-1~S54-N)。由于步骤S54-1~S54-N的控制流程相同,因此在图34的例子中记载有处理器P-n的控制流程。另外,由于图34所示的步骤S541~S544与图26所示的步骤S441~S444进行相同的处理,步骤S546~S551与图26所示的步骤S445~S450进行相同的处理,因此以此之外的步骤为中心进行说明。
在步骤S544的下一个步骤S545中,电力模式控制单元631a判断控制对象的处理器是否是用在步骤S53中输出的处理器预测识别信息PPID-n确定的处理器P-n(步骤S545)。也就是说,电力模式控制单元631a判断控制对象的处理器是否是最后成为栅障到达的处理器。当控制对象的处理器不是最后成为栅障到达的处理器时(在步骤S545中,为“No”),电力模式控制单元631a按照在步骤S53中输出的线程非执行预测时间PTNPT,来设定处理器P-1~P-N各自的电力模式(步骤S546)。而当控制对象的处理器是最后成为栅障到达的处理器时(在步骤S545中,为“Yes”),跳过睡眠转移控制(步骤S546)。这里,控制对象的处理器是P-n,用处理器预测识别信息PPID-n确定的处理器也是处理器P-n。因此,在步骤S545中为肯定的判断。
如上所述,根据本第一变形例,在履历信息存储单元612a中各存储一个栅障成立时间BET、栅障到达时间BAT、线程开始时间TST。因此,能够削减履历信息存储单元612a的存储容量,能够抑制多处理器控制装置6a的电路规模的增大。
另外,在上述内容中,使栅障监视单元611a计算栅障到达时间BAT-1~BAT-N的平均值、线程开始时间TST-1~TST-N的平均值,但是并不限定于此。也可以使栅障监视单元611a计算除了栅障到达时间BAT-1~BAT-N中的、为最大的栅障到达时间之后的平均值。栅障监视单元611a也可以计算除了线程开始时间TST-1~TST-N中的、为最小线程开始时间之后的平均值。
另外,在上述内容中,栅障监视单元611a根据栅障到达信号,对于每个程序块确定线程最后到达的处理器,并将确定该处理器用的处理器识别信息PID输出给履历信息存储单元612a,但是并不限定于此。栅障监视单元611a也可以对于每个程序块确定线程执行时间为最大,也就是线程非执行时间为最小的处理器,使确定该处理器用的信息为处理器识别信息PID。
(第二实施方式的第二变形例)
在第二实施方式中,用图26所示的流程分别对各个处理器进行了个别控制。不过,如图28所示,有时在连续执行不同的并行程序块时,睡眠模式持续时所取得的线程非执行时间大于上次所取得的线程非执行时间。本第二变形例的目的在于:当睡眠模式持续时所取得的线程非执行时间大于上次所取得的线程非执行时间时,通过重新设定为更深的睡眠模式,来达到更省电的效果。
关于本第二变形例中的多处理器控制装置,图20~图23、图25、图26所示的多处理器控制装置中的对于各个处理器分别进行的个别控制方面,仅有图26的流程不同。以下,以不同之处为中心进行说明。
(动作)
参照图35具体说明本第二变形例所涉及的分别对处理器P-1~P-N进行的个别控制(步骤S44-1~S44-N)。由于步骤S44-1~S44-N的控制流程相同,因此在图35的例子中记载有处理器P-n的控制流程。由于图35所示的步骤S641~S647与图26所示的步骤S441~S447进行相同的处理,步骤S650~S652与图26所示的步骤S448~S450进行相同的处理,因此以此之外的步骤为中心进行说明。
当在步骤S641中判断为处理器P-n是睡眠模式时,电力模式控制单元631根据在图25的步骤S43中所输出的线程非执行预测时间PTNPT-n,来判断能否转移到比当前的睡眠模式更深的睡眠模式(步骤S648)。在电力模式控制单元631判断为能够转移到更深的睡眠模式时(在步骤S648中,为“Yes”),让处理器P-n的电力模式向与线程非执行预测时间PTNPT-n相应的更深的睡眠模式进行转移(步骤S649)。而在电力模式控制单元631判断为不能转移到更深的睡眠模式时(在步骤S648中,为“No”),跳过睡眠间转移控制(步骤S649)。
例如,在图28的控制之后,处理器P-1在第三次栅障开始时,持续睡眠模式SL(BID-2:PTNPT-1)。但是,在第三次栅障开始时取得的线程非执行预测时间(BID-3:PTNPT-1)大于第二次栅障开始时所取得的线程非执行预测时间(BID-2:PTNPT-1)。因此,只要使用本第二变形例,电力模式控制单元631就能够在第三次栅障开始时,让处理器P-1的电力模式转移到更深的睡眠模式SL(BID-3:PTNPT-1)。
如上所述,在本第二变形例中,当在睡眠模式持续时取得的线程非执行时间大于上次所取得的线程非执行时间时,重新设定为更深的睡眠模式。结果是能够获得更省电的效果。
另外,在上述第一、第二实施方式中,对共享存储型的多处理器系统进行了说明,在多处理器系统中还存在私有存储型。在私有存储型的多处理器系统中,在各个处理器中分别设置有不能从其它处理器直接进行访问的专用存储器。用高速互耦合网络(mutualcouplingnetwork)连接有具有专用存储器的处理器。另外,这些处理器有时不是作为多处理器分类,而是作为连接有多台计算机的多计算机分类。由于这些私有存储型的多处理器系统不能象共享存储型那样直接使用锁变量,因此通过使用处理器间的通信手段的消息交换来实现栅障同步。但是,通信手段仅在本质上不同,早期成为栅障到达的线程都要等待最后的线程从栅障到达成为栅障成立。所以,即使在私有存储型的多处理器系统中,也能够适用本发明的睡眠控制。并且,这里所说的处理器并不限定于具有程序计数器的存储程序方式的处理器。只要具有通常动作模式和至少一个睡眠模式的话,也可以代替处理器,使用按照应用领域受到限制的专用有限状态机来进行动作的运算处理装置。
并且,上述第一、第二实施方式的多处理器系统一般能够适用于图像/音声等再生装置。图36是表示将第一实施方式的多处理器系统适用于再生装置时的结构例的图。例如,将按照MPEG规格编码之后的图像/音声信息作为编码流数据存储在光磁盘92和/或存储卡94中。此时,再生装置内的系统LSI经由共享存储器总线2、存储器控制器7及IO接口8将从各个驱动器91及93读入的编码流数据展开在由DRAM构成的主存储装置3中。处理器P-1经由共享存储器总线2及存储器控制器7从主存储装置3中取得编码流数据,并分离为图像编码流和音声编码流。处理器P-1经由共享存储器总线2,将图像编码流通知给处理器P-2,将音声编码流通知给处理器P-3。处理器P-2对图像编码流进行解码,处理器P-3对音声编码流进行解码。这里,处理器P-1一边按照显示时间,与处理器P-2、P-3栅障同步,一边将被解码的图像/音声信息输出给电视等显示装置。此时,已分配给处理器P-1~P-3的系统处理、图像解码处理、音声解码处理的负荷一般不会均等。因此,能够通过本发明的多处理器控制装置1对处理器P-1~P-3进行控制,来减少耗电。
另外,在上述内容的是系统LSI,根据集成度的不同,有时也可以称为IC、超级LSI、超大LSI。并且,集成电路化的手法并不限定于系统LSI,也可以通过专用电路或通用处理器来实现。也可以在制造系统LSI之后,利用可程序化的FPGA(FieldProgrammableGateArray)、以及/或者能够重新构成系统LSI内部的电路单元的连接和/或设定的重构处理器。并且,如果因半导体技术的进步或派生的其它技术而出现代替系统LSI的集成电路化技术的话,当然也可以使用该技术,来进行功能块的集成。
工业实用性
本发明所涉及的多处理器控制装置能够获得比以往更省电的效果,能够在耗电量成为问题的并行计算机系统等中使用。

Claims (20)

1、一种多处理器控制装置,控制向多个处理器提供电力,在该多个处理器中,在将含在程序中的第一程序块分割为多个第一块,一边进行栅障同步,一边并行执行各个第一块之后,将与该第一程序块连续的第二程序块分割为多个第二块,一边进行栅障同步,一边并行执行各个第二块,其特征在于:
该多处理器控制装置包括:
取得单元,取得第一非执行时间信息和第二非执行时间信息,该第一非执行时间信息与每个上述处理器所表示的第一非执行时间有关,该第一非执行时间表示上述第一程序块的从栅障同步开始到栅障同步成立为止的第一栅障成立时间中的、没有执行上述第一块的时间,该第二非执行时间信息与每个上述处理器所表示的第二非执行时间有关,该第二非执行时间表示上述第二程序块的从栅障同步开始到栅障同步成立为止的第二栅障成立时间中的、没有执行上述第二块的时间,以及
电力控制单元,利用在上述取得单元中取得了的上述第一及第二非执行时间信息,来控制在连续并行执行上述第一及第二程序块期间向上述多个处理器提供电力。
2、根据权利要求1所述的多处理器控制装置,其特征在于:
上述电力控制单元,利用在上述取得单元中取得了的上述第一及第二非执行时间信息,来对于每个上述处理器控制上述第一及第二块的执行开始时机,以便在上述第二程序块的栅障同步开始前后,上述第一及第二块的执行状态成为相同状态,并且,控制向上述多个处理器提供电力,以便在上述第二程序块的栅障同步开始前后,没有执行上述第一及第二块的处理器成为睡眠状态,正在执行上述第一及第二块的处理器成为动作状态。
3、根据权利要求2所述的多处理器控制装置,其特征在于:
上述电力控制单元具有电力模式控制单元和转移单元,该电力模式控制单元被预先设定有表示使上述处理器为通常动作状态的电力的通常动作模式和表示使上述处理器为睡眠状态的电力的睡眠模式,并将各个上述处理器的电力模式设定为通常动作模式或者睡眠模式,
该转移单元控制向各个上述处理器提供时钟信号以及/或者电源电压,并让各个上述处理器的电力模式分别转移到在上述电力模式控制单元中所设定了的电力模式;
上述电力模式控制单元,对于在上述第一程序块的栅障同步成立之前就已结束了执行上述第一块的处理器,让上述第二块的执行开始时机从上述第二程序块的栅障同步开始起延迟上述第二非执行时间信息所表示的时间,并且,将上述第一块的执行结束到上述第二块的执行开始期间的电力模式设定为上述睡眠模式。
4、根据权利要求3所述的多处理器控制装置,其特征在于:
上述第二非执行时间信息是在上述第一程序块的栅障同步成立之前就已结束了执行上述第一块的处理器的上述第二非执行时间。
5、根据权利要求3所述的多处理器控制装置,其特征在于:
上述电力模式控制单元,在上述第一块的执行结束到上述第二块的执行开始期间,将在上述第一程序块的栅障同步成立之前就已结束了执行上述第一块的处理器的电力模式设定为与上述第一非执行时间信息所表示的时间相应的睡眠模式。
6、根据权利要求3所述的多处理器控制装置,其特征在于:
上述电力模式控制单元,在上述第二非执行时间信息所表示的时间大于上述第一非执行时间信息所表示的时间时,在上述第一块的执行结束到上述第一程序块的栅障同步成立期间,将在上述第一程序块的栅障同步成立之前就已结束了执行上述第一块的处理器的电力模式设定为与上述第一非执行时间信息所表示的时间相应的睡眠模式,在上述第二程序块的栅障同步开始到上述第二块的执行开始期间,设定为与上述第二非执行时间信息所表示的时间相应的睡眠模式。
7、根据权利要求3所述的多处理器控制装置,其特征在于:
上述第一及第二程序块为同一程序块;
上述电力模式控制单元,将在上述第一程序块的栅障同步成立之前就已结束了执行上述第一块的处理器的电力模式设定为与上述第一非执行时间信息所表示的时间和上述第二非执行时间信息所表示的时间之和相应的睡眠模式。
8、根据权利要求5~7中任意一项所述的多处理器控制装置,其特征在于:
上述第一非执行时间信息是在上述第一程序块的栅障同步成立之前就已结束了执行上述第一块的处理器的上述第一非执行时间;
上述第二非执行时间信息是在上述第一程序块的栅障同步成立之前就已结束了执行上述第一块的处理器的上述第二非执行时间。
9、根据权利要求1~3、权利要求5~7中任意一项所述的多处理器控制装置,其特征在于:
上述取得单元存储有上述第一及第二非执行时间信息;
上述第一非执行时间信息是每个上述处理器所表示的第一非执行时间的统计时间;
上述第二非执行时间信息是每个上述处理器所表示的第二非执行时间的统计时间。
10、根据权利要求9所述的多处理器控制装置,其特征在于:
上述第一非执行时间信息是每个上述处理器所表示的第一非执行时间的平均时间;
上述第二非执行时间信息是每个上述处理器所表示的第二非执行时间的平均时间。
11、根据权利要求9所述的多处理器控制装置,其特征在于:
上述第一非执行时间信息是除去每个上述处理器所表示的第一非执行时间中的最小第一非执行时间来算出的平均时间;
上述第二非执行时间信息是除去每个上述处理器所表示的第二非执行时间中的最小第二非执行时间来算出的平均时间。
12、根据权利要求1~3、权利要求5~7中任意一项所述的多处理器控制装置,其特征在于:
上述取得单元存储有上述第一及第二非执行时间信息;
上述第一非执行时间信息是每个上述处理器所表示的第一非执行时间中的最小第一非执行时间;
上述第二非执行时间信息是每个上述处理器所表示的第二非执行时间中的最小第一非执行时间。
13、根据权利要求3所述的多处理器控制装置,其特征在于:
在上述电力模式控制单元中还预先设定有低速动作模式,该低速动作模式表示使上述处理器为低速动作状态的电力;
上述电力模式控制单元,对于在上述第一程序块的栅障同步开始时开始执行上述第一块的处理器,比较在将上述第一块的执行结束到上述第一程序块的栅障同步成立期间的电力模式设定为与上述第一非执行时间信息所表示的时间相应的睡眠模式时在上述处理器中所消费的电力和在将上述第一块的执行结束到上述第一程序块的栅障同步成立期间的电力模式设定为上述低速动作模式时在上述处理器中所消费的电力,并将上述处理器的电力模式设定为在上述处理器中所消费的电力较少的一方的电力模式,
对于在上述第二程序块的栅障同步开始时开始执行上述第二块的处理器,比较在将上述第二块的执行结束到上述第二程序块的栅障同步成立期间的电力模式设定为与上述第二非执行时间信息所表示的时间相应的睡眠模式时在上述处理器中所消费的电力和在将上述第二块的执行结束到上述第二程序块的栅障同步成立期间的电力模式设定为上述低速动作模式时在上述处理器中所消费的电力,并将上述处理器的电力模式设定为在上述处理器中所消费的电力较少的一方的电力模式。
14、根据权利要求13所述的多处理器控制装置,其特征在于:
上述取得单元还取得上述第一及第二栅障成立时间;
上述电力模式控制单元,在将上述第一程序块的栅障同步开始时开始执行上述第一块的处理器的电力模式设定为上述低速动作模式时,计算与上述第一非执行时间信息所表示的时间和上述第一栅障成立时间之比相应的、低于向处于上述通常动作状态的处理器提供的时钟信号的频率的第一频率,并将算出的第一频率设定为上述低速动作模式,在将上述第二程序块的栅障同步开始时开始执行上述第二块的处理器的电力模式设定为上述低速动作模式时,计算与上述第二非执行时间信息所表示的时间和上述第二栅障成立时间之比相应的、低于向处于上述通常动作状态的处理器提供的时钟信号的频率的第二频率,并将算出的第二频率设定为上述低速动作模式;
上述转移单元,当在上述第一程序块的栅障同步开始时开始执行上述第一块的处理器的电力模式被设定为上述低速动作模式时,将向该处理器的时钟信号的频率设定为上述第一频率,当在上述第二程序块的栅障同步开始时开始执行上述第二块的处理器的电力模式被设定为上述低速动作模式时,将向该处理器的时钟信号的频率设定为上述第二频率。
15、根据权利要求13所述的多处理器控制装置,其特征在于:
上述电力模式控制单元,在将各个上述处理器的电力模式都设定为上述低速动作模式时,将各个上述处理器的电力模式重新设定为上述通常动作模式。
16、根据权利要求13所述的多处理器控制装置,其特征在于:
上述取得单元,当在上述第一程序块的栅障同步开始时开始执行上述第一块的处理器的电力模式被设定为上述低速动作模式时,将该处理器在低速动作状态下开始执行上述第一块到结束执行为止的时间换算为该处理器在上述通常动作状态下开始执行上述第一块到结束执行为止的时间,并从上述第一栅障成立时间中减去换算而来的时间,取得上述第一非执行时间,当在上述第二程序块的栅障同步开始时开始执行上述第二块的处理器的电力模式被设定为上述低速动作模式时,将该处理器在低速动作状态下开始执行上述第二块到结束执行为止的时间换算为该处理器在上述通常动作状态下开始执行上述第二块到结束执行为止的时间,并从上述第二栅障成立时间中减去换算而来的时间,取得上述第二非执行时间。
17、根据权利要求13~16中任意一项所述的多处理器控制装置,其特征在于:
上述取得单元存储有上述第一及第二非执行时间信息;
上述第一非执行时间信息是每个上述处理器所表示的第一非执行时间的统计时间;
上述第二非执行时间信息是每个上述处理器所表示的第二非执行时间的统计时间。
18、根据权利要求17所述的多处理器控制装置,其特征在于:
上述第一非执行时间信息是每个上述处理器所表示的第一非执行时间的平均时间;
上述第二非执行时间信息是每个上述处理器所表示的第二非执行时间的平均时间。
19、一种控制方法,是在控制向多个处理器提供电力的多处理器控制装置中所进行的控制方法,在该多个处理器中,在将含在程序中的第一程序块分割为多个第一块,一边进行栅障同步,一边并行执行各个第一块之后,将与该第一程序块连续的第二程序块分割为多个第二块,一边进行栅障同步,一边并行执行各个第二块,其特征在于:
该控制方法包括:
取得步骤,取得第一非执行时间信息和第二非执行时间信息,该第一非执行时间信息与每个上述处理器所表示的第一非执行时间有关,该第一非执行时间表示上述第一程序块的从栅障同步开始到栅障同步成立为止的第一栅障成立时间中的、没有执行上述第一块的时间,该第二非执行时间信息与每个上述处理器所表示的第二非执行时间有关,该第二非执行时间表示上述第二程序块的从栅障同步开始到栅障同步成立为止的第二栅障成立时间中的、没有执行上述第二块的时间;以及
电力控制步骤,利用在上述取得单元中取得了的上述第一及第二非执行时间信息,来控制在连续并行执行上述第一及第二程序块期间向上述多个处理器提供电力。
20、一种集成电路,控制向多个处理器提供电力,在该多个处理器中,在将含在程序中的第一程序块分割为多个第一块,一边进行栅障同步,一边并行执行各个第一块之后,将与该第一程序块连续的第二程序块分割为多个第二块,一边进行栅障同步,一边并行执行各个第二块,其特征在于:
该集成电路包括:
取得单元,取得第一非执行时间信息和第二非执行时间信息,该第一非执行时间信息与每个上述处理器所表示的第一非执行时间有关,该第一非执行时间表示上述第一程序块的从栅障同步开始到栅障同步成立为止的第一栅障成立时间中的、没有执行上述第一块的时间,该第二非执行时间信息与每个上述处理器所表示的第二非执行时间有关,该第二非执行时间表示上述第二程序块的从栅障同步开始到栅障同步成立为止的第二栅障成立时间中的、没有执行上述第二块的时间;以及
电力控制单元,利用在上述取得单元中取得了的上述第一及第二非执行时间信息,来控制在连续并行执行上述第一及第二程序块期间向上述多个处理器提供电力。
CN2008800005135A 2007-04-09 2008-03-13 多处理器控制装置、其控制方法及集成电路 Expired - Fee Related CN101542442B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007101507 2007-04-09
JP101507/2007 2007-04-09
PCT/JP2008/000579 WO2008129786A1 (ja) 2007-04-09 2008-03-13 マルチプロセッサ制御装置、その制御方法および集積回路

Publications (2)

Publication Number Publication Date
CN101542442A true CN101542442A (zh) 2009-09-23
CN101542442B CN101542442B (zh) 2012-12-19

Family

ID=39875321

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800005135A Expired - Fee Related CN101542442B (zh) 2007-04-09 2008-03-13 多处理器控制装置、其控制方法及集成电路

Country Status (5)

Country Link
US (1) US8214662B2 (zh)
EP (1) EP2073119A1 (zh)
JP (1) JP5235870B2 (zh)
CN (1) CN101542442B (zh)
WO (1) WO2008129786A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425232A (zh) * 2012-05-14 2013-12-04 美国博通公司 用于多核处理器的漏变化感知功率管理
CN103838551A (zh) * 2012-11-27 2014-06-04 富士通株式会社 并行计算机及其控制方法
US9594412B2 (en) 2012-03-30 2017-03-14 Intel Corporation Controlling power gate circuitry based on dynamic capacitance of a circuit
US10108454B2 (en) 2014-03-21 2018-10-23 Intel Corporation Managing dynamic capacitance using code scheduling

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5469940B2 (ja) * 2009-07-13 2014-04-16 株式会社日立製作所 計算機システム、仮想計算機モニタ及び仮想計算機モニタのスケジューリング方法
US8479215B2 (en) 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
ES2357923B1 (es) * 2009-10-16 2012-03-12 Starlab Barcelona Sl Sistema de procesamiento de datos y dispositivo de computación.
US9043585B2 (en) * 2010-03-31 2015-05-26 Cisco Technology, Inc. Dynamic energy savings for digital signal processor modules using plural energy savings states
JPWO2012127534A1 (ja) * 2011-03-23 2014-07-24 富士通株式会社 バリア同期方法、バリア同期装置及び演算処理装置
US9086883B2 (en) 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
JP5206858B2 (ja) * 2011-11-24 2013-06-12 パナソニック株式会社 無線通信装置
US9092272B2 (en) * 2011-12-08 2015-07-28 International Business Machines Corporation Preparing parallel tasks to use a synchronization register
CN102521039B (zh) * 2011-12-08 2014-08-13 汉柏科技有限公司 网络通信产品的时间组实现方法及系统
KR101901587B1 (ko) * 2011-12-13 2018-10-01 삼성전자주식회사 연성 실시간 운영체제의 실시간성을 확보하는 방법 및 장치
US9563254B2 (en) 2011-12-22 2017-02-07 Intel Corporation System, method and apparatus for energy efficiency and energy conservation by configuring power management parameters during run time
US9360909B2 (en) 2012-04-19 2016-06-07 Intel Corporation System, method and apparatus for energy efficiency and energy conservation by configuring power management parameters during run time
JPWO2014033941A1 (ja) * 2012-09-03 2016-08-08 株式会社日立製作所 計算機システムおよび計算機システムの制御方法
US9448803B2 (en) * 2013-03-11 2016-09-20 Nvidia Corporation System and method for hardware scheduling of conditional barriers and impatient barriers
US9442755B2 (en) 2013-03-15 2016-09-13 Nvidia Corporation System and method for hardware scheduling of indexed barriers
US9552033B2 (en) * 2014-04-22 2017-01-24 Qualcomm Incorporated Latency-based power mode units for controlling power modes of processor cores, and related methods and systems
JP6349908B2 (ja) * 2014-04-22 2018-07-04 富士通株式会社 データ処理方法、データ処理装置及びプログラム
EP2937783B1 (en) * 2014-04-24 2018-08-15 Fujitsu Limited A synchronisation method
EP2960791A1 (en) 2014-06-27 2015-12-30 Fujitsu Limited Method of executing an application on a distributed computer system, a resource manager and a distributed computer system
JP6330569B2 (ja) * 2014-08-14 2018-05-30 富士通株式会社 演算処理装置および演算処理装置の制御方法
JP2016162303A (ja) * 2015-03-03 2016-09-05 株式会社東芝 無線通信装置
US20170185128A1 (en) * 2015-12-24 2017-06-29 Intel Corporation Method and apparatus to control number of cores to transition operational states
US11422842B2 (en) * 2019-10-14 2022-08-23 Microsoft Technology Licensing, Llc Virtual machine operation management in computing devices
GB2597945B (en) * 2020-08-11 2022-11-16 Graphcore Ltd Predictive clock control

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3008223B2 (ja) * 1990-09-14 2000-02-14 株式会社日立製作所 プロセッサ間の同期処理装置
JP2770760B2 (ja) * 1995-01-04 1998-07-02 日本電気株式会社 電力分散マルチプロセッサ
US6308279B1 (en) * 1998-05-22 2001-10-23 Intel Corporation Method and apparatus for power mode transition in a multi-thread processor
US7318164B2 (en) * 2001-12-13 2008-01-08 International Business Machines Corporation Conserving energy in a data processing system by selectively powering down processors
US7219241B2 (en) * 2002-11-30 2007-05-15 Intel Corporation Method for managing virtual and actual performance states of logical processors in a multithreaded processor using system management mode
JP4402622B2 (ja) * 2004-07-01 2010-01-20 パナソニック株式会社 マルチプロセッサ制御装置、その制御方法及び集積回路
US7398403B2 (en) * 2004-07-01 2008-07-08 Matsushita Electric Industrial Co., Ltd. Multiprocessor control apparatus, control method thereof, and integrated circuit
JP4487744B2 (ja) * 2004-11-29 2010-06-23 富士通株式会社 マルチスレッド制御装置及び制御方法
US7627770B2 (en) * 2005-04-14 2009-12-01 Mips Technologies, Inc. Apparatus and method for automatic low power mode invocation in a multi-threaded processor
JP4231516B2 (ja) * 2006-08-04 2009-03-04 株式会社日立製作所 実行コードの生成方法及びプログラム
US7882379B2 (en) * 2006-09-22 2011-02-01 Sony Computer Entertainment Inc. Power consumption reduction in a multiprocessor system
WO2008155806A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited バリア同期方法、装置、及びマルチコアプロセッサ
US8966488B2 (en) * 2007-07-06 2015-02-24 XMOS Ltd. Synchronising groups of threads with dedicated hardware logic
US7930574B2 (en) * 2007-12-31 2011-04-19 Intel Corporation Thread migration to improve power efficiency in a parallel processing environment

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594412B2 (en) 2012-03-30 2017-03-14 Intel Corporation Controlling power gate circuitry based on dynamic capacitance of a circuit
CN104205000B (zh) * 2012-03-30 2017-09-15 英特尔公司 基于电路的动态电容控制功率门电路
CN103425232A (zh) * 2012-05-14 2013-12-04 美国博通公司 用于多核处理器的漏变化感知功率管理
CN103425232B (zh) * 2012-05-14 2016-12-28 美国博通公司 用于多核处理器的漏变化感知功率管理
CN103838551A (zh) * 2012-11-27 2014-06-04 富士通株式会社 并行计算机及其控制方法
CN103838551B (zh) * 2012-11-27 2017-04-12 富士通株式会社 并行计算机及其控制方法
US10108454B2 (en) 2014-03-21 2018-10-23 Intel Corporation Managing dynamic capacitance using code scheduling

Also Published As

Publication number Publication date
US20100153761A1 (en) 2010-06-17
WO2008129786A1 (ja) 2008-10-30
US8214662B2 (en) 2012-07-03
JP5235870B2 (ja) 2013-07-10
EP2073119A1 (en) 2009-06-24
JPWO2008129786A1 (ja) 2010-07-22
CN101542442B (zh) 2012-12-19

Similar Documents

Publication Publication Date Title
CN101542442B (zh) 多处理器控制装置、其控制方法及集成电路
US9348628B2 (en) Computer system
CN107734035B (zh) 一种云计算环境下的虚拟集群自动伸缩方法
KR100864964B1 (ko) 연산처리시스템 및 연산처리 제어방법, 업무관리시스템 및업무관리방법과 기억매체
CN102779072B (zh) 一种嵌入式系统及其应用进程的休眠与唤醒方法
CN104239152B (zh) 用于提高事件处理的涡轮加速性能的方法和装置
CN100458657C (zh) 多处理器服务器的功率管理的方法和系统
CN1742249B (zh) 多处理器计算系统及其计算组件内的电源管理方法
US7730340B2 (en) Method and apparatus for dynamic voltage and frequency scaling
US8321693B2 (en) Parallel processing method and system, for instance for supporting embedded cluster platforms, computer program product therefor
CN102841674B (zh) 基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法
CN1602467A (zh) 具有多个处理器的数据处理系统、用于具有多个处理器的数据处理系统的任务调度程序及用于任务调度的对应方法
JP2010191575A (ja) 資源排他制御方法および資源排他制御装置
KR20090069618A (ko) 전원관리 제어 장치 및 방법
JP2014203185A (ja) 情報処理装置および情報処理方法
US20100262966A1 (en) Multiprocessor computing device
US9910717B2 (en) Synchronization method
JP6081212B2 (ja) 計算機システム及びリソース管理装置並びにリソース管理方法
US20230088994A1 (en) Low power state selection based on idle duration history
CN105592314A (zh) 并行解码方法和并行解码装置
CN103197954A (zh) 信息处理装置和控制信息处理装置的方法
CN101661326A (zh) 图像处理模块、可省电的计算机系统及其省电方法
Medhat et al. Energy-efficient multiple producer-consumer
JPH1031592A (ja) メモリ管理方法及びメモリ管理システム
Medhat et al. Power-efficient multiple producer-consumer

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121219

Termination date: 20140313