CN101176067A - 基于专用处理单元的使用动态修改系统参数 - Google Patents

基于专用处理单元的使用动态修改系统参数 Download PDF

Info

Publication number
CN101176067A
CN101176067A CNA2006800170472A CN200680017047A CN101176067A CN 101176067 A CN101176067 A CN 101176067A CN A2006800170472 A CNA2006800170472 A CN A2006800170472A CN 200680017047 A CN200680017047 A CN 200680017047A CN 101176067 A CN101176067 A CN 101176067A
Authority
CN
China
Prior art keywords
processing units
unit
specialized
specialized processing
processor core
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
CNA2006800170472A
Other languages
English (en)
Other versions
CN100538648C (zh
Inventor
马克·E·哈克
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101176067A publication Critical patent/CN101176067A/zh
Application granted granted Critical
Publication of CN100538648C publication Critical patent/CN100538648C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Stored Programmes (AREA)

Abstract

一种方法、装置和计算机程序产品,用于动态地修改在中央处理单元内包括的处理器核心中所包括的各处理单元的运行参数。检索要处理的下一上下文,其包括处理所述下一上下文需要的所有专用处理单元的标识。识别处理刚完成处理的上下文所需要的所有专用处理单元。比较各第一单元和第二单元来识别所述之前上下文需要、但所述下一上下文不需要的所有第三单元,以及所述之前上下文不需要、但所述下一上下文需要的所有第四单元。更改处理器核心内包括的各处理单元的运行参数来优化各处理单元,使得使用第三单元而不使用第四单元。

Description

基于专用处理单元的使用动态修改系统参数
技术领域
本发明贯注于数据处理系统。更具体地,本发明贯注于基于包括在处理器核心中的各专用处理单元的当前使用,动态修改系统的各运行参数的方法、装置和计算机程序产品,该系统包括处理器、存储器和高速缓存。
背景技术
对称多处理(SMP)数据处理系统具有对称的多个处理器,使得每个处理器具有相同的处理速度和等待时间。SMP系统具有一个操作系统,其通过每次将工作的一个软件线程分配给每个处理器,将工作划分成均匀分布在各个处理器之间的任务。因此,SMP系统中的处理器每次只执行一个线程。
同时多线程(SMT)数据处理系统包括多个处理器,每个处理器每次能并发执行多于一个线程。当在同一处理器上运行两个线程时,SMT系统具有更偏重其中一个线程的能力。
处理器核心包括各处理单元。一些处理单元是通用单元,如用于通用处理的指令排序单元和整数单元。一些处理单元是用于专用处理的专用单元。例如,向量多媒体扩展(VMX)单元是对浮点值的向量提供向量图形处理的专用单元,而另一不同的专用单元浮点(FP)单元提供浮点数的处理。存在利用专用单元的功能的专用指令。当执行专用指令时,在该指令的至少一部分处理期间使用专用处理单元来处理该指令。
要由处理器核心执行的每个任务包括要执行的一组指令。当任务要执行时,创建上下文,识别该任务中的指令以及将用于执行上下文的指令的特定专用单元。在执行期间基于这些专用指令单元的使用的检测,更新上下文,去往这些单元的指令的第一次执行设置使用指示符。当切换任务时,典型地保存各通用和专用单元的寄存器值和状态。然后可以检索该上下文用于在以后时间继续处理。当检索该上下文用于继续处理时,恢复各通用和专用单元的寄存器值和状态。
一些操作系统(如AIX和Linux)对这些专用指令的使用敏感。这些公知的操作系统知道对每个上下文需要和使用哪些专用单元。
当前,处理器的各处理单元可以在不同的任务之间共享。例如,PowerPCTM利用预取(prefetch)单元。预取单元在通用单元和专用处理器单元(如浮点处理器和VMX指令单元)之间共享预取流。缺省的共享分配典型地在通用单元和专用单元之间均等地共享预取单元。因此,通用单元得到预取单元的总时间的50%,并且专用单元得到50%。设置预取单元在通用单元与专用单元之间的这种分配,而不考虑当前处理的任务是否使用专用单元。因此,在公知的系统中,即使当前任务没有使用任何专用单元,预取单元也可能使它的50%的时间分配给了专用单元。
处理器单元在各任务之间共享的方式,典型地在包括该处理单元的系统开始其正常执行之前的初始化过程期间静态设置。一旦该系统被加电并引导后处在其正常执行模式中,单元共享的方式就不动态地改变。
此外,处理单元的分配典型地根据做出的关于最优操作分配应当是什么的预测而设置。实际的运行状况不引起该分配改变。如上所述,基于预取单元的最优分配要在通用单元与专用单元之间均等分配其时间的预期性能,做出预测。在执行期间维持该分配而不考虑实际的运行状况。例如,如上所述,特定任务可能根本不需要任何专用单元。对于这个特定任务,预取单元的最优分配并不是预测的情况,预取单元在通用单元和专用单元之间均等地分配。在该特定任务的执行期间,包括该预取单元的处理器并未工作在最优状态。
处理器未工作在最优状态的另一个例子涉及提供给该处理器的各处理单元的功率。处理器核心的各个单元在它们执行指令时具有为其提供的功率。然而,有时候单元可能处于空闲等待执行有用的工作。在这种情况下,当单元处于空闲等待有用的工作时,即使未使用该单元,该单元也消耗功率。
处理器的各专用单元典型地被关闭,直到特定任务需要它们为止。当第一次需要各专用单元时,然后开启它们。然而,一旦它们被开启,它们就保持开启而不管是否仍需要它们。因此,一旦专用单元被开启,即使在任何其他任务的执行中不再需要该专用单元,它也仍保持加电。即使不使用专用单元仍保持它们加电,不必要地消耗了功率,而且还给处理器的散热单元增加了不必要的负担。
因此,需要一种方法、装置和计算机程序产品,用于根据当前正执行哪些指令来动态地修改处理器的各运行参数。
发明内容
相应地,本发明在第一方面提供一种数据处理系统中的方法,用于动态地修改在中央处理单元内包括的处理器核心中所包括的各处理单元的运行参数,所述方法包括:根据预测的最优分配,在各通用处理单元和各专用处理单元之间分配第一处理单元的处理时间;检索要处理的下一上下文,所述下一上下文包括处理所述下一上下文将需要的所述处理器核心中的、所有第一专用处理单元的标识,所述各专用处理单元包括所述第一专用处理单元和其他未使用的专用处理单元;以及动态地更改对所述第一处理单元的时间的所述预测的最优分配,所述第一处理单元的处理时间在所述各通用处理单元与所述各第一处理单元之间分配,而不在所述未使用的各专用处理单元之间分配。
该方法还可以包括:识别处理刚由所述处理器核心完成处理的之前的上下文所需要的所有第二专用处理单元;比较所述第一专用处理单元与所述第二专用处理单元,以生成所述之前上下文需要、但所述下一上下文不需要的所有第三专用处理单元,以及所述之前上下文不需要、但所述下一上下文需要的所有第四专用处理单元的标识;以及停用所述第三专用处理单元,并且启用所述第四专用处理单元。
该方法还可以包括:通过将所述第三专用处理单元断电,停用所述第三专用处理单元;以及通过将所述第四专用处理单元加电,启用所述第四专用处理单元。
该方法还可以包括:分配所述第一处理单元的处理时间包括分配预取单元的处理时间,所述第一处理单元是所述预取单元。
该方法还可以包括:在包括所述第一处理单元的所述处理器核心执行所述下一上下文之前,根据所述各专用处理单元之一的预期使用,动态地更改所述预测的最优分配。
该方法还可以包括:在所述动态更改之后,所述第一处理单元的处理时间仅被分配给所述各专用处理单元中的、处理所述下一上下文将需要的各专用处理单元。
该方法还可以包括:根据所述预测的最优分配,将所述第一处理单元的第一百分比的处理时间分配给所述各通用单元;根据所述预测的最优分配,将所述第一处理单元的第二百分比的处理时间分配给所述各专用处理单元;确定处理所述下一上下文将不需要所述各专用处理单元;以及将所述第一处理单元的全部处理时间动态分配给所述各通用单元。
该方法还可以包括:所述各专用处理单元包括浮点处理单元。
在第二方面,本发明提供一种数据处理系统中的装置,用于动态地修改在中央处理单元内包括的处理器核心中所包括的各处理单元的运行参数,所述装置包括:所述处理器核心根据预测的最优分配,在各通用处理单元和各专用处理单元之间分配第一处理单元的处理时间;所述处理器核心检索要处理的下一上下文,所述下一上下文包括处理所述下一上下文将需要的所述处理器核心中的所有第一专用处理单元的标识,所述各专用处理单元包括所述第一专用处理单元和其他未使用的专用处理单元;以及所述处理器核心动态地更改对所述第一处理单元的时间的所述预测的最优分配,所述第一处理单元的处理时间在所述各通用处理单元与所述各第一处理单元之间分配,而不在所述未使用的各专用处理单元之间分配。
该装置还可以包括:所述处理器核心识别处理刚由所述处理器核心完成处理的之前的上下文所需要的所有第二专用处理单元;所述处理器核心比较所述第一专用处理单元与所述第二专用处理单元,以生成所述之前上下文需要、但所述下一上下文不需要的所有第三专用处理单元,以及所述之前上下文不需要、但所述下一上下文需要的所有第四专用处理单元的标识;以及所述处理器核心停用所述第三专用处理单元,并且启用所述第四专用处理单元。
该装置还可以包括:通过将所述第三专用处理单元断电,停用所述第三专用处理单元;以及通过将所述第四专用处理单元加电,启用所述第四专用处理单元。
该装置还可以包括:所述第一处理单元是预取单元。
该装置还可以包括:在包括所述第一处理单元的所述处理器核心执行所述下一上下文之前,所述处理器核心根据所述各专用处理单元之一的预期使用,动态地更改所述预测的最优分配。
该装置还可以包括:在所述动态更改之后,所述第一处理单元的处理时间仅被分配给所述各专用处理单元中的、处理所述下一上下文将需要的各专用处理单元。
该装置还可以包括:所述处理器核心根据所述预测的最优分配,将所述第一处理单元的第一百分比的处理时间分配给所述各通用单元;所述处理器核心根据所述预测的最优分配,将所述第一处理单元的第二百分比的处理时间分配给所述各专用处理单元;所述处理器核心确定处理所述下一上下文将不需要所述各专用处理单元;以及所述处理器核心将所述第一处理单元的全部处理时间动态分配给所述各通用单元。
该装置还可以包括:所述各专用处理单元包括浮点处理单元。
在第三方面,本发明提供一种包括计算机程序代码的计算机程序,当该计算机程序代码被加载到计算机系统中并在其上执行时,使所述计算机系统执行根据本发明第一方面的方法的各步骤。
实现了优选实施例,用于根据当前正使用哪些专用指令单元来动态修改系统的运行参数。当创建任务时,创建相应的上下文区域,其被初始化来指示当前没有使用专用单元。当检测到使用专用单元时,更新该上下文区域来指示专用处理单元的使用。当切换该任务时,接收要处理的下一上下文。下一上下文包括处理该下一上下文将需要的所有第一专用处理单元。识别处理刚由所述处理器核心完成处理的之前上下文所需要的所有第二专用处理单元。进行所述第一专用处理单元与所述第二专用处理单元之间的比较,以生成所述之前上下文需要、但所述下一上下文不需要的所有第三专用处理单元,以及所述之前上下文不需要、但所述下一上下文需要的所有第四专用处理单元的标识。更改处理器核心内包括的各处理单元的运行参数来将各处理单元优化到这样的状态,即,利用将使用第三单元而不使用第四单元的事实。
附图说明
现在将参照附图,仅通过示例的方式描述本发明的优选实施例,在附图中:
图1是根据本发明优选实施例、能够用来实现本发明的超标量(superscalar)处理器的框图;
图2是根据本发明优选实施例、包括处理器(如图1所描绘的处理器)的计算机系统的图示;
图3根据本发明优选实施例描绘了高级流程图,该高级流程图图示根据正执行哪些指令,修改该处理器核心中包括的各处理单元的运行参数;
图4图示根据本发明优选实施例的高级流程图,该高级流程图描绘在管理程序在各虚拟处理器之间切换时,根据哪些指令正在虚拟处理器机器中执行,修改该处理器核心中包括的各处理器单元的运行参数;
图5是包括管理程序的数据处理系统的框图,在该系统中可以实现本发明的优选实施例;以及
图6是根据本发明优选实施例的、包括本发明的逻辑分区平台的框图。
具体实施方式
通过参照附图更好地理解了本发明的优选实施例及其优点,对附图中相同和相应的部分使用相同的附图标记。
本发明的优选实施例包括这样的方法、装置和计算机程序产品,其用于根据正执行哪些指令来动态地修改处理器核心中包括的各处理单元的运行参数。处理器核心被包括在中央处理单元(CPU)中。CPU使用单个集成电路芯片实现。
根据正在处理的任务当前正使用哪些专用单元,修改各处理单元的运行参数。可以通过改变各单元的分配和/或通过更改各单元的当前功率状态来修改运行参数。
浮点单元和VMX单元都是专用处理单元的例子。
本发明利用这样的事实,即,上下文包括处理该上下文的指令将需要的每个专用处理单元的标识。在上下文中识别需要哪些专用单元来处理该上下文的指令的方法是本领域公知的,这里不作描述。
根据本发明的优选实施例,当提取(fetch)并要处理下一上下文时,使用该下一上下文来识别处理器核心执行该下一上下文将需要哪些专用处理单元。做出关于处理器核心执行之前上下文(即,刚完成处理的上下文)需要哪些专用处理单元的确定。
可以在运行时间动态地优化处理器,以仅仅使用该上下文需要的这些专用单元。能够通过动态地更改如何将特定处理单元分配给通用和专用处理单元,来更改运行参数。
例如,PowerPCTM利用预取单元。预取单元在通用单元和专用处理器单元(如浮点处理器和VMX指令单元)之间共享预取流。共享分配的缺省分配典型地在通用单元和专用单元之间均等地共享预取单元。因此,通用单元得到预取单元的总时间的50%,并且专用单元得到50%。各专用单元也典型地均等共享它们的预取单元的时间的部分。因此,浮点处理器典型地得到预取单元的总时间的50%,并且各VMX指令单元一起得到分配给专用单元的总时间的50%。
能够根据下一上下文是否将需要浮点单元和/或各VMX指令单元,来优化预取单元。例如,如果下一上下文指示将使用浮点单元而不使用各VMX指令单元,则可以通过将分配给专用单元的、预取单元的时间的100%分配给浮点单元,来更改预取单元的运行参数。作为另一例子,如果特定的上下文不需要任何专用单元处理,则能够通过将预取单元的总时间的100%分配给通用单元、而不分配给专用单元,来优化预取单元。
通过根据哪些专用单元实际上将要用于处理上下文来设置参数,能够用类似的方式优化处理器核心中的其他处理单元。
在处理期间,处理单元资源在通用单元与专用处理单元之间的分配能够动态改变。特定处理单元(如预取单元)的当前分配典型地设置在处理核心中的一个或多个分配寄存器中。因此,例如,存储在这些寄存器中的信息将指示预取单元将分配给通用单元的时间量、以及它将分配给专用处理单元的时间量。此外,它可以包括将给哪些专用单元授予处理时间的标识。例如,如果专用处理单元A、C、D和E全都要用于下一处理、但将不使用专用处理单元B,那么寄存器中的信息将指示:预取单元将被分配给专用处理单元A、C、D和E,但不分配给单元B。
用于推测性(speculatively)检索指令或数据的预取流的具体例子是公知的。当使用VMX单元时的缺省分配是,通过特定VMX指令允许在硬件控制下的若干流以及在软件控制下的若干流。如果未使用VMX单元,则所有流能够分配给硬件,并且有可能有利于其他单元的性能。
根据本发明的优选实施例,使用之前和下一任务的上下文,做出关于下一上下文将需要哪些专用处理单元的确定。然后改变处理单元如预取单元的分配,使得预取单元仅分配给下一任务需要的那些专用处理单元。
通过将不同的信息写到处理核心的各分配寄存器,可以在运行时间期间动态地改变分配。
此外,可以通过更改各专用处理单元的功率状态来优化处理器。之前上下文使用的、但下一上下文不需要的各专用处理单元将被断电,而之前上下文未使用的、但下一上下文需要的各专用处理单元将被加电。之前上下文使用的、且下一上下文需要的各专用处理单元仍保持加电。之前上下文未使用的、且下一上下文不需要的各专用处理单元仍保持断电。
通过仅对特定上下文需要的那些专用单元加电、而对所有不需要的专用单元断电,本发明提供更高效的处理器核心、因此更高效的CPU。以这种方式,各专用处理单元将不会在加电的同时处于空闲并等待工作。结果,特定上下文不需要的各专用处理单元将不会消耗功率或者发热。在处理该特定上下文时它们被停用。
下面是处理器的处理的概述。处理器包括处理器流水线中的许多级(stage)(如下面的)。在典型的第一级(称为指令提取级)中,从存储器或相关联的存储器结构中提取指令。每级包括一条或多条流水线。然后,在解码级中,将指令解码成不同的控制比特,该控制比特通常指定:(1)用于执行由该指令指定的操作的功能单元的类型;(2)该操作的源操作数;以及(3)操作结果的目的地。
在分派级中,解码的指令按每控制比特分派给具有执行级的单元,或者可能分派给中间保留站(intervening reservation station),其最终将该指令发出给相关联的执行级(也称为“执行单元”)。
执行级处理由指令指定的操作。执行由指令指定的操作包括接受一个或更多操作数以及产生一个或更多结果。经常地,各指令将是无顺序的。
完成级处理由于并发执行引起的程序顺序问题,其中多条并发执行的指令可能在单个寄存器中存放结果。它还处理由于在被中断的指令之后的指令将结果存放在它们的目的寄存器中而引起的恢复问题。该级有时候也称为写回级,因为是在这时指令的执行结果被写回到指定位置(如寄存器)。
现在参照附图,并且具体参照图1,图1描绘了可以实现本发明优选实施例的处理器核心的框图。处理器核心100包括在处理器/CPU101中,该处理器/CPU101是单个集成电路超标量微处理器(CPU),如可从IBM公司(Armonk,N.Y)获得的PowerPCTM处理器。相应地,处理器核心100包括专用和通用的各个处理单元、寄存器、缓冲器、存储器和其他部分,所有这些都由集成电路形成。
处理器核心100包括一级(L1)指令和数据高速缓存(“I高速缓存”和“D高速缓存”)102和104,每一个分别具有相关联的存储器管理单元(“IMMU”和“D MMU”)106和108。如图1所示,处理器核心100通过总线接口单元114连接到系统地址总线110和系统数据总线112。各指令通过总线接口单元114从系统存储器(未示出)检索到处理器核心100,并存储在指令高速缓存102中,而通过总线接口单元114检索的数据被存储在数据高速缓存104中。各指令由指令单元116按需要从指令高速缓存102中提取,该指令单元116包括指令提取逻辑、指令分支预测逻辑、指令队列和分派单元。
指令单元116内的分派单元将指令适当地分派给各执行单元,如系统单元118、整数单元120、浮点单元122、或加载/存储单元124。系统单元118执行条件寄存器逻辑、专用寄存器传输、以及其他系统指令。整数或“定点”单元120对整数执行加法、减法、乘法、除法、移位或循环(rotate)操作,从整数或通用寄存器(“GPR文件”)126中检索操作数并将结果存储在其中。浮点单元122执行单精度和/或双精度乘法/加法操作,从浮点寄存器(“FPR文件”)128中检索操作数并将结果存储在其中。VMX单元134执行字节重排序、压缩(packing)、解压缩和移位、矢量加法、乘法、平均、以及比较和多媒体应用共同要求的其他操作。
加载/存储单元124按需要将指令操作数从预取单元125加载到通用整数寄存器126、浮点寄存器128或VMX单元134中,并且将指令结果在可用时从通用整数寄存器126、浮点寄存器128或VMX单元134存储到数据高速缓存104中。将这些指令操作数从数据高速缓存104加载到预取单元125。加载和存储队列130被用于从预取单元125到通用整数寄存器126、浮点寄存器128或VMX单元134,或从其到预取单元125的这些传输。
包括重排序缓冲器的完成单元132,结合指令单元116操作以支持无顺序指令处理,并且还连同通用整数寄存器126和浮点寄存器128内的重命令缓冲器操作,以避免特定寄存器对于指令结果的冲突。共同片上处理器(“COP”)和联合测试动作组(“JTAG”)单元136为系统提供串行接口,用于执行边界扫描互连测试。
提供图1中描绘的结构仅仅用于图示和解释本发明的目的,并不意味着暗示任何结构限制。本领域技术人员将认识到,许多变化都是可能的。处理器核心100可以包括例如多个整数和浮点执行单元,以增加处理吞吐量。所有这些变化都在本发明的范围以内。
图2是根据本发明优选实施例、包括处理器(如图1描绘的处理器)的计算机系统的图示。数据处理系统200可以是对称多处理器(SMP)系统,其包括连接到系统总线206的多个处理器202和204。或者,可以采用单处理器系统。每个处理器202和204可以是SMT使能的处理器。一个处理器可以是服务处理器,例如服务处理器204。还连接到系统总线206的是存储器控制器/高速缓存208,它提供于本地存储器209的接口。I/O总线桥210连接到系统总线206,并且提供到I/O总线212的接口。如所描绘的,存储器控制器/高速缓存208和I/O总线桥210可以集成。
连接到I/O总线212的外围部件互连(PCI)总线桥214提供到PCI本地总线216的接口。若干调制解调器可以连接到PCI总线216。典型的PCI总线实现将支持四个PCI扩展插槽或附件(add-in)连接器。通过经由附件板连接到PCI本地总线216的调制解调器218和网络适配器220,可以提供到其他计算机的通信链路。
网络适配器220包括物理层282,其使模拟信号适于通过R45连接器向网络(如例如以太网)发送出去。网络适配器220内包括介质访问控制器(MAC)280。介质访问控制器(MAC)280耦合到总线216,并且处理数字网络信号。MAC280用作总线216与物理层282之间的接口。
另外的PCI总线桥222和224为另外PCI总线226和228提供接口,由此可以支持另外的调制解调器或网络适配器。以这种方式,数据处理系统200允许到多个网络计算机的连接。如所描绘的,存储器映射图形适配器230和硬盘232也可以直接或间接连接到I/O总线212。
本领域普通技术人员将意识到,图2中描绘的硬件可以变化。例如,除了或代替所描绘的硬件,还可以使用其他外围设备(如光盘驱动器等)。描绘的示例并不意味着暗示对于本发明的结构限制。
图3根据本发明优选实施例描绘了高级流程图,该高级流程图图示根据正执行哪些指令,修改该处理器核心中包括的各处理单元的运行参数。如块300所示处理开始,然后转到块302,块302图示根据预测的最优分配来分配处理单元(如预取单元)。预取单元预测的最优分配包括:在通用单元与专用单元之间均等地分配的预取单元,使得预取单元的时间的50%分配给所有通用单元,并且预取单元的时间的50%分配给所有专用单元。然后块304图示以预测的分配来引导系统并开始正常执行。接着,块306描绘操作系统要将上下文从之前任务的上下文切换到下一任务的上下文。然后,块308图示使用之前任务的上下文中的信息来识别用于之前任务的每个专用单元。
处理然后转到块310,块310描绘检查下一任务的上下文。然后,块312描绘使用该下一任务的上下文中的信息来识别在执行下一任务时需要的每个专用单元。然后,块314图示确定下一任务是否使用任何专用单元。如果做出确定下一任务不使用任何专用单元,则处理转到块316,块316描绘关闭当前开启的任何专用单元。接着,块318图示将预取单元仅分配给通用单元。因此,预取单元未被分配给任何专用单元。如块320所示,处理然后终止。
再次参照块314,如果做出确定下一任务使用至少一个专用单元,则处理转到块322,块322图示确定下一任务是否使用之前任务使用的相同专用单元。通过比较之前任务的上下文与下一任务的上下文,做出该确定。每个上下文将包括要由该上下文执行的任务需要哪些专用单元的指示。如果做出确定下一任务使用之前任务使用的相同专用单元,则如块320所示,处理终止。
再次参照块322,如果做出确定下一任务并不使用之前任务使用的相同专用单元,则处理转到块324,块324描绘开启下一任务需要、但之前任务未使用的专用单元。然后,块326图示关闭下一任务不需要、但之前任务使用的专用单元。
接着,块328描绘在运行时间期间,通过根据当前使用哪些专用单元来动态改变处理单元的分配,从而优化处理单元。例如,通过在各通用寄存器之间分配预取单元、以及将预取单元仅分配给那些当前正使用的专用单元,来动态地改变预取单元的分配。
例如,假设具有四个专用处理单元的系统,其中预测的分配将预取单元的50%时间给予通用单元,并且将预取单元的50%时间给予专用处理单元。还假设每个专用处理单元被给予已给予专用单元的50%时间的25%。如果仅有一个专用处理单元要用于下一上下文、并且其余专用单元不准备使用,则可以分配预取单元的时间使得各通用寄存器得到多于50%的预取单元的时间。此外,分配给特定专用处理单元的时间可以是分配给各专用处理单元的时间的100%,而非25%。如块324所示,处理然后终止。
本发明的优选实施例也可以用于虚拟处理器机器(如图5所描绘的),其中管理程序负责管理虚拟处理器。图4图示根据本发明优选实施例的高级流程图,该高级流程图描绘在管理程序在各虚拟处理器之间切换时,根据哪些指令正在虚拟处理器机器中执行,修改该处理器核心中包括的各处理器单元的运行参数。如块400所示处理开始,然后转到块402,块402图示根据预测的最优分配来分配处理单元(如预取单元)。预取单元预测的最优分配包括:在通用单元与专用单元之间均等地分配的预取单元,使得预取单元的时间的50%分配给所有通用单元,并且预取单元的时间的50%分配给所有专用单元。然后块404描绘使用正使用的预测的分配来引导系统和分区,并开始正常处理。接着,块406描绘管理程序要将上下文切换到下一虚拟处理器的上下文。然后,块408图示使用之前虚拟处理器的上下文中的信息来识别用于之前虚拟处理器的每个专用单元。
处理然后转到块410,块410图示检查下一虚拟处理器的上下文。然后,块412描绘使用该下一虚拟处理器的上下文中的信息,来识别在执行下一虚拟处理器时需要的每个专用单元。然后,块414图示确定下一虚拟处理器是否使用任何专用单元。如果做出确定下一虚拟处理器不使用任何专用单元,则处理转到块416,块416描绘关闭当前开启的任何专用单元。接着,块418图示将预取单元仅分配给通用单元。因此,预取单元未被分配给任何专用单元。如块420所示,处理然后终止。
再次参照块414,如果做出确定下一虚拟处理器使用至少一个专用单元,则处理转到块422,块422图示确定下一虚拟处理器是否使用之前虚拟处理器使用的相同专用单元。如果做出确定下一虚拟处理器使用之前虚拟处理器使用的相同专用单元,则如块420所示,处理终止。
再次参照块422,如果做出确定下一虚拟处理器不使用之前虚拟处理器使用的相同专用单元,则处理转到块424,块424描绘开启下一虚拟处理器需要、但之前虚拟处理器未使用的专用单元。然后,块426图示关闭下一虚拟处理器不需要、但之前虚拟处理器使用的专用单元。接着,块428描绘在运行时间期间,通过根据当前使用哪些专用单元来动态改变单元的分配,从而优化处理单元。例如,通过在各通用寄存器之间分配预取单元、以及将预取单元仅分配给那些当前正使用的专用单元,动态地改变预取单元的分配。如块420所示,处理然后终止。
图5是可以实现本发明优选实施例的、包括管理程序的数据处理系统500的框图。系统500优选地是对称多处理(SMP)服务器计算机系统。SMP服务器计算机系统500包括物理硬件设备,其能够映射到用户应用(即,由用户应用暂时拥有)来执行该应用。
SMP服务器计算机系统500包括物理SMP服务器502。物理SMP 502包括物理硬件设备,如处理器504、存储器506和I/O适配器508。这些物理设备由管理程序510管理。处理器504的每个优选地是同时多线程(SMT)处理器,能够在该处理器上并发地执行多个不同的线程。
虚拟服务器是具有相同能力、接口和状态的物理服务器的代理。虚拟服务器由驻留在物理SMP服务器计算机系统500上的管理程序创建和管理。虚拟服务器在其用户看来就是物理SMP服务器:在其上运行的操作系统、中间件(middleware)和应用软件。SMP服务器计算机系统500包括一个或更多虚拟服务器,如虚拟服务器512和虚拟服务器512a。
每个虚拟服务器在其软件看来包括它自己的(各)虚拟处理器、存储器和(各)I/O适配器,其用于该虚拟服务器专用。例如,虚拟服务器512包括虚拟处理器520、虚拟存储器522和虚拟I/O适配器524。虚拟服务器512a包括虚拟处理器520a、虚拟存储器522a和虚拟I/O适配器524a。
每个虚拟服务器支持它自己的软件环境,包括操作系统、中间件和应用。每个虚拟服务器的软件环境能够与其他虚拟服务器的软件环境不同。例如,每个虚拟服务器执行的操作系统可能相互不同。
例如,虚拟服务器512支持操作系统514、中间件516和应用518。虚拟服务器512a支持操作系统514a、中间件516a和应用518a。操作系统514和514a可以是相同或不同的操作系统。
虚拟服务器是服务器的、定义服务器环境的逻辑描述,该虚拟服务器对用户来说就像它是物理服务器一样,以与物理服务器相同的方式被访问和提供信息。为每个虚拟服务器定义的虚拟处理器、虚拟存储器和虚拟I/O适配器是物理处理器、存储器和I/O适配器的逻辑替代。
管理程序510管理具有它们的虚拟处理器、虚拟存储器和虚拟I/O适配器的虚拟服务器与选择来实现这些虚拟设备的物理硬件设备之间的映射。例如,当虚拟处理器被分派时,管理程序510选择物理处理器(如物理处理器504之一)用于执行和实现该虚拟处理器。管理程序510管理各物理设备的选择以及它们到虚拟设备的临时分配。
管理程序510负责动态创建、管理和摧毁虚拟SMP服务器。全部虚拟处理器、虚拟I/O适配器和虚拟存储器块都能够由管理程序510移除或添加。管理程序510还负责动态资源分配、管理物理资源的时间共享、以及更改映射到处理器的物理资源而不涉及操作系统。对于不希望共享的情况,管理程序510还能够使各物理资源成为虚拟资源。管理程序510负责管理物理资源的添加或移除。管理程序510进行这些对于上层应用透明的添加和删除。
图6是包括本发明优选实施例的逻辑分区平台的框图。数据处理系统620包括逻辑分区平台650。平台650包括分区的硬件652、分区管理固件也称为管理程序654、和分区656-659。操作系统661-664存在于分区656-659内。操作系统661-664可以是单个操作系统的多个拷贝或者同时运行在平台650上的多个同类操作系统。
分区的硬件652包括多个支持SMT的处理器665-668、多个系统存储器单元670-673、多个输入/输出(I/O)适配器674-681和存储单元682。处理器665-668、存储器单元670-673、NVRAM存储683和I/O适配器674-681的每个,可以分配给多个分区656-659之一。分区的硬件652还包括服务处理器690。服务处理器690内包括非易失性存储器件691(如NVRAM器件)。
分区管理固件(管理程序)654执行分区656-659的多个功能和服务,来创建和执行逻辑分区平台650的分区。管理程序654是用与底层硬件相等的虚拟机实现的固件。固件是存储在不需要电源就能保持其内容的存储器芯片(如例如,只读存储器(ROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程(EEPROM)和非易失性随机存取存储器(非易失性RAM))中的“软件”。因此,管理程序654通过虚拟化逻辑分区平台250的所有硬件资源,允许同时执行独立的OS镜像661-664。管理程序654可以通过I/O适配器674-681,将I/O设备附接到处于独占模式的单个虚拟机,用于由OS镜像661-664之一使用。
硬件管理控制台(HMC)680可以耦合到数据处理系统620中的服务处理器690。HMC680是单独的计算机系统,其耦合到服务处理器690,并且可以由用户使用来通过服务处理器690控制系统620的各种功能。
重要的是注意到,尽管已经在完全功能的数据处理系统的上下文中描述了本发明,但本领域普通技术人员将意识到,本发明优选实施例的各处理能够以指令的计算机可读介质的形式和多种形式分发,并且不管实际用来进行该分发的信号承载介质的具体使用的类型,本发明的优选实施例都同等地适用。计算机可读介质的例子包括可记录型介质(如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM)、以及传输型介质(使用如例如射频和光波传输的传输形式的有线或无线通信链路、数字和模拟通信链路)。计算机可读介质可以采用编码格式的形式,其在特定的数据处理系统中解码用于实际使用。
已经呈现了本发明优选实施例的描述用于图示和描述的目的,并且意图不在于穷举或将本发明限制于公开的形式。对于本领域普通技术人员来说许多修改和变化将是明显的。选择和描述实施例以便最好地解释本发明的原理、实践应用、以及使本领域其他普通技术人员能够理解具有各种修改的各个实施例的本发明也适合于预期的具体使用。

Claims (17)

1.一种数据处理系统中的方法,用于动态地修改在中央处理单元内包括的处理器核心中所包括的各处理单元的运行参数,所述方法包括:
根据预测的最优分配,在各通用处理单元和各专用处理单元之间分配第一处理单元的处理时间;
检索要处理的下一上下文,所述下一上下文包括处理所述下一上下文将需要的所述处理器核心中的所有第一专用处理单元的标识,所述各专用处理单元包括所述第一专用处理单元和其他未使用的专用处理单元;以及
动态地更改所述第一处理单元的时间的所述预测的最优分配,所述第一处理单元的处理时间在所述各通用处理单元与所述各第一处理单元之间分配,而不在所述未使用的各专用处理单元之间分配。
2.如权利要求1所述的方法,还包括:
识别处理刚由所述处理器核心完成处理的之前上下文所需要的所有第二专用处理单元;
比较所述第一专用处理单元与所述第二专用处理单元,以生成所述之前上下文需要但所述下一上下文不需要的所有第三专用处理单元、以及所述之前上下文不需要但所述下一上下文需要的所有第四专用处理单元的标识;以及
停用所述第三专用处理单元,并且启用所述第四专用处理单元。
3.如权利要求2所述的方法,还包括:
通过将所述第三专用处理单元断电,停用所述第三专用处理单元;以及
通过将所述第四专用处理单元加电,启用所述第四专用处理单元。
4.如权利要求1所述的方法,还包括:
分配所述第一处理单元的处理时间包括分配预取单元的处理时间,所述第一处理单元是所述预取单元。
5.如权利要求1所述的方法,还包括:
在包括所述第一处理单元的所述处理器核心执行所述下一上下文之前,根据所述各专用处理单元之一的预期使用动态地更改所述预测的最优分配。
6.如权利要求1所述的方法,还包括:
在所述动态更改之后,所述第一处理单元的处理时间仅被分配给所述各专用处理单元的、处理所述下一上下文将需要的各专用处理单元。
7.如权利要求1所述的方法,还包括:
根据所述预测的最优分配,将所述第一处理单元的第一百分比的处理时间分配给所述各通用单元;
根据所述预测的最优分配,将所述第一处理单元的第二百分比的处理时间分配给所述各专用处理单元;
确定处理所述下一上下文将不需要的所述各专用处理单元;以及
将所述第一处理单元的全部处理时间动态分配给所述各通用单元。
8.如权利要求1所述的方法,还包括:
所述各专用处理单元包括浮点处理单元。
9.一种数据处理系统中的装置,用于动态地修改在中央处理单元内包括的处理器核心中所包括的各处理单元的运行参数,所述装置包括:
所述处理器核心根据预测的最优分配,在各通用处理单元和各专用处理单元之间分配第一处理单元的处理时间;
所述处理器核心检索要处理的下一上下文,所述下一上下文包括处理所述下一上下文将需要的所述处理器核心中的所有第一专用处理单元的标识,所述各专用处理单元包括所述第一专用处理单元和其他未使用的专用处理单元;以及
所述处理器核心动态地更改所述第一处理单元的时间的所述预测的最优分配,所述第一处理单元的处理时间在所述各通用处理单元与所述各第一处理单元之间分配,而不在所述未使用的各专用处理单元之间分配。
10.如权利要求9所述的装置,还包括:
所述处理器核心识别处理刚由所述处理器核心完成处理的之前上下文所需要的所有第二专用处理单元;
所述处理器核心比较所述第一专用处理单元与所述第二专用处理单元,以生成所述之前上下文需要但所述下一上下文不需要的所有第三专用处理单元、以及所述之前上下文不需要但所述下一上下文需要的所有第四专用处理单元的标识;以及
所述处理器核心停用所述第三专用处理单元,并且启用所述第四专用处理单元。
11.如权利要求10所述的装置,还包括:
通过将所述第三专用处理单元断电,停用所述第三专用处理单元的所述处理器核心;以及
通过将所述第四专用处理单元加电,启用所述第四专用处理单元的所述处理器核心。
12.如权利要求9所述的装置,还包括:
所述第一处理单元是预取单元。
13.如权利要求9所述的装置,还包括:
在包括所述第一处理单元的所述处理器核心执行所述下一上下文之前,所述处理器核心根据所述各专用处理单元之一的预期使用动态地更改所述预测的最优分配。
14.如权利要求9所述的装置,还包括:
在所述动态更改之后,所述第一处理单元的处理时间仅被分配给所述各专用处理单元的、处理所述下一上下文将需要的各专用处理单元。
15.如权利要求9所述的装置,还包括:
所述处理器核心根据所述预测的最优分配,将所述第一处理单元的第一百分比的处理时间分配给所述各通用单元;
所述处理器核心根据所述预测的最优分配,将所述第一处理单元的第二百分比的处理时间分配给所述各专用处理单元;
所述处理器核心确定处理所述下一上下文将不需要的所述各专用处理单元;以及
所述处理器核心将所述第一处理单元的全部处理时间动态分配给所述各通用单元。
16.如权利要求9所述的装置,还包括:
所述各专用处理单元包括浮点处理单元。
17.一种包括计算机程序代码的计算机程序,当计算机程序代码被加载到计算机系统中并在其上执行时,使所述计算机系统执行如权利要求1到8的任一所述的方法的各步骤。
CNB2006800170472A 2005-05-24 2006-05-17 基于专用处理单元的使用动态修改系统参数 Active CN100538648C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/136,654 2005-05-24
US11/136,654 US7797564B2 (en) 2005-05-24 2005-05-24 Method, apparatus, and computer program product for dynamically modifying operating parameters of the system based on the current usage of a processor core's specialized processing units

Publications (2)

Publication Number Publication Date
CN101176067A true CN101176067A (zh) 2008-05-07
CN100538648C CN100538648C (zh) 2009-09-09

Family

ID=36928571

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006800170472A Active CN100538648C (zh) 2005-05-24 2006-05-17 基于专用处理单元的使用动态修改系统参数

Country Status (5)

Country Link
US (1) US7797564B2 (zh)
EP (1) EP1913474B1 (zh)
CN (1) CN100538648C (zh)
TW (1) TWI370369B (zh)
WO (1) WO2006125742A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106164863A (zh) * 2014-04-03 2016-11-23 斯特拉托斯卡莱有限公司 虚拟中央处理单元的寄存器类型感知的调度

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069444B2 (en) * 2006-08-29 2011-11-29 Oracle America, Inc. Method and apparatus for achieving fair cache sharing on multi-threaded chip multiprocessors
JP5100133B2 (ja) * 2007-01-19 2012-12-19 株式会社東芝 情報処理装置
US9367472B2 (en) 2013-06-10 2016-06-14 Oracle International Corporation Observation of data in persistent memory
US9619393B1 (en) 2015-11-09 2017-04-11 International Business Machines Corporation Optimized use of hardware micro partition prefetch based on software thread usage

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59135569A (ja) * 1983-01-24 1984-08-03 Sharp Corp マルチプロセツサの制御方式
US5414851A (en) * 1992-06-15 1995-05-09 International Business Machines Corporation Method and means for sharing I/O resources by a plurality of operating systems
US5699460A (en) * 1993-04-27 1997-12-16 Array Microsystems Image compression coprocessor with data flow control and multiple processing units
SG47981A1 (en) * 1994-03-01 1998-04-17 Intel Corp Pipeline process of instructions in a computer system
US6226738B1 (en) * 1997-08-01 2001-05-01 Micron Technology, Inc. Split embedded DRAM processor
US7155498B1 (en) * 1997-11-07 2006-12-26 Hitachi, Ltd. Computer operation management system
EP1182548A3 (en) 2000-08-21 2003-10-15 Texas Instruments France Dynamic hardware control for energy management systems using task attributes
US6834385B2 (en) * 2001-01-04 2004-12-21 International Business Machines Corporation System and method for utilizing dispatch queues in a multiprocessor data processing system
JP3612033B2 (ja) * 2001-04-20 2005-01-19 パナソニック コミュニケーションズ株式会社 ホーム・ゲートウェイ装置
JP3879471B2 (ja) * 2001-10-10 2007-02-14 株式会社日立製作所 計算機資源割当方法
US7251594B2 (en) * 2001-12-21 2007-07-31 Hitachi, Ltd. Execution time modification of instruction emulation parameters
US7181598B2 (en) * 2002-05-17 2007-02-20 Intel Corporation Prediction of load-store dependencies in a processing agent
JP2005005844A (ja) * 2003-06-10 2005-01-06 Hitachi Ltd 計算装置及び符号化処理プログラム
US7454596B2 (en) * 2006-06-29 2008-11-18 Intel Corporation Method and apparatus for partitioned pipelined fetching of multiple execution threads

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106164863A (zh) * 2014-04-03 2016-11-23 斯特拉托斯卡莱有限公司 虚拟中央处理单元的寄存器类型感知的调度

Also Published As

Publication number Publication date
CN100538648C (zh) 2009-09-09
EP1913474A1 (en) 2008-04-23
TW200712917A (en) 2007-04-01
US20060271937A1 (en) 2006-11-30
EP1913474B1 (en) 2016-07-27
US7797564B2 (en) 2010-09-14
WO2006125742A1 (en) 2006-11-30
TWI370369B (en) 2012-08-11

Similar Documents

Publication Publication Date Title
CN100357884C (zh) 用于处理指令的方法、处理器以及系统
US10061588B2 (en) Tracking operand liveness information in a computer system and performing function based on the liveness information
JP3927546B2 (ja) 同時マルチスレッド化プロセッサ
US7290261B2 (en) Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor
CN102792265B (zh) 基于机器状态的指令破解
US7093106B2 (en) Register rename array with individual thread bits set upon allocation and cleared upon instruction completion
CN100449499C (zh) 在微处理器恢复单元中进行写队列读数据的方法和装置
US10437638B2 (en) Method and apparatus for dynamically balancing task processing while maintaining task order
JPH0668726B2 (ja) レジスタ管理システム
JP3689369B2 (ja) 2次リオーダ・バッファ・マイクロプロセッサ
CN101261578B (zh) 用于在微处理器中对存储的预测性早期分配的系统和方法
JP2008226236A (ja) 構成可能なマイクロプロセッサ
JPH10283179A (ja) 命令識別子を使用して命令順序を判定するためのデータ処理システムおよび方法
CN100538648C (zh) 基于专用处理单元的使用动态修改系统参数
JPH10154073A (ja) データ依存性を管理する装置及び方法
US7143267B2 (en) Partitioning prefetch registers to prevent at least in part inconsistent prefetch information from being stored in a prefetch register of a multithreading processor
US20080229058A1 (en) Configurable Microprocessor
CN1295611C (zh) 中断处理程序预测方法和系统
US7302553B2 (en) Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue
US11995445B2 (en) Assignment of microprocessor register tags at issue time
US5765017A (en) Method and system in a data processing system for efficient management of an indication of a status of each of multiple registers
US10365928B2 (en) Suppress unnecessary mapping for scratch register
US20200019405A1 (en) Multiple Level History Buffer for Transaction Memory Support
CN116848506A (zh) 存储器复制大小确定指令和数据传送指令
JP6307975B2 (ja) 演算処理装置及び演算処理装置の制御方法

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