CN1885232A - 多处理器的电源管理 - Google Patents

多处理器的电源管理 Download PDF

Info

Publication number
CN1885232A
CN1885232A CNA200610093187XA CN200610093187A CN1885232A CN 1885232 A CN1885232 A CN 1885232A CN A200610093187X A CNA200610093187X A CN A200610093187XA CN 200610093187 A CN200610093187 A CN 200610093187A CN 1885232 A CN1885232 A CN 1885232A
Authority
CN
China
Prior art keywords
concurrent physical
physical processors
program threads
information handling
low
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
CNA200610093187XA
Other languages
English (en)
Other versions
CN100570534C (zh
Inventor
W·C·芒格
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.)
Dell Products LP
Original Assignee
Dell Products LP
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 Dell Products LP filed Critical Dell Products LP
Publication of CN1885232A publication Critical patent/CN1885232A/zh
Application granted granted Critical
Publication of CN100570534C publication Critical patent/CN100570534C/zh
Active 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Power Sources (AREA)
  • Multi Processors (AREA)

Abstract

一种信息处理系统,其具有多个物理处理器,这些物理处理器能够在低功率或高功率状态中运行,并能够运行可以执行程序线程的逻辑处理器。每个程序线程被分配成在各自的逻辑处理器中被执行。把每个程序线程分配给各自的逻辑处理器是由程序线程是否需要信息处理系统中多个物理处理器的高占用率或低占用率来确定的。为了在信息处理系统中节电,高占用率程序线程被分配成在运行于高功率状态的少数物理处理器中运行的逻辑处理器中被执行;而低占用率程序线程被分配给运行于低功率状态的物理处理器。为了在信息处理系统中最大化程序线程的执行速度,高占用率程序线程被分配成在运行于高功率状态的不同物理处理器中运行的逻辑处理器中被执行,而低占用率程序线程被分配给任意物理处理器。

Description

多处理器的电源管理
技术领域
[0001]本发明一般涉及信息处理系统,特别是涉及信息处理系统中多处理器的电源(power)管理。
背景技术
[0002]由于信息的价值和使用持续增长,个人和企业都在寻找对信息进行处理和存储的其他方式。一种对于用户有用的可选项是信息处理系统。信息处理系统通常对信息或数据进行处理、编辑、存储和/或传递,用于企业、个人或其他目的,从而使用户对信息的价值加以利用。由于技术和信息处理对于不同的用户或应用有不同的需要和要求,所以信息处理系统还可以对以下情况进行不同的对待,即,被处理的信息是什么,信息是怎样被处理的,有多少信息被处理、存储或传递,以及信息可以被处理、存储或传递得多么快速和有效。信息处理系统的变化使得信息处理系统可以是通用的,或被配置用于特殊用户或例如财政事物处理、航班预约、企业数据存储或全球通讯的特殊使用。此外,信息处理系统可以包括多个硬件和软件组件,其可以被配置成对信息进行处理、存储和传递,还可以包括一个或多个计算机系统、数据存储系统和网络系统,例如,计算机、个人计算机工作站、便携式计算机、计算机服务器、打印服务器、网络路由器、网络集线器、网络交换机、存储区域网络磁盘阵列、RAID磁盘系统、以及电信交换机。
[0003]信息处理系统可能包括多个数字处理器,例如微处理器。这些数字处理器(以下简称“处理器”)能够在不同的时钟频率以及工作电压之间进行切换,而对运行在这些处理器上的软件的影响可以忽略不计。当至少1个处理器没有被充分利用时,信息处理系统中的操作系统可以通过使多个处理器中的至少1个处理器运行在较低的时钟频率和/或工作电压来节约用电。
[0004]多个处理器中的每一个(以下简称“物理处理器”)都可以作为多个“逻辑处理器”来工作。这被称为“超线程”。然而,当切换例如每个物理处理器的电源状态的工作电压时,所有与那个物理处理器相关的逻辑处理器必须工作在相同的电源状态下,因为每个物理处理器只有一套电源状态寄存器(power state register)。
[0005]例如,信息处理系统可能有2个超线程物理处理器,每个物理处理器中有2个电源状态,例如,低功率和高功率。控制2个物理处理器的操作系统必须一次执行3个线程(thread)(程序指令步骤),这些线程中的2个需要高处理器占用率(高功率运行),而第3个线程只需要低处理器占用率(低功率运行)。节约电能是最重要的,例如,当使用便携式电池工作的时候。
[0006]因为操作系统并不知道哪个逻辑处理器与哪个物理处理器相关,所以操作系统可能把高占用率线程和低占用率线程分配给一个物理处理器,而把剩下的高占用率线程分配给另一个物理处理器。这种情况会要求2个物理处理器都工作在高功率状态
[0007]为了节电,更好的办法是让2个高占用率线程运行在工作于高功率状态下的一个物理处理器上,而低占用率线程则运行在可能正工作在低功率状态下的另一个物理处理器上。
发明内容
[0008]如果操作系统知道逻辑至物理处理器的映射,就能将高占用率线程分配给与运行在高功率状态下的仅仅一个物理处理器相关的各个逻辑处理器。而余下的低占用率线程分配给只需要运行在低功率状态下的另一个物理处理器相关的各个逻辑处理器。这样,在不牺牲性能的同时可以节约电能。
[0009]相反,如果需要最大化运行性能,例如,电力消耗并不是主要考虑的因素,那么给每个物理处理器只分配一个高占用率线程、并使这些处理器都运行在高功率状态会更需要。在不同的物理处理器上运行每个高占用率线程可以提升信息处理系统的性能。因此,为了最好的性能,将每个高占用率线程分配给运行在不同物理处理器上的相关逻辑处理器将会获得最好的性能。因为每个物理处理器现在都运行在高功率状态。低占用率线程可以被分配给运行在任意一个物理处理器上的任意逻辑处理器。
[0010]线程在其被执行时可能从高占用率改变为低占用率,反之亦然。例如,线程在访问输入/输出(I/O)设备(磁盘、网络等)时可能使用较少的处理器资源,而当其对数据进行运算时会使用较多的处理器资源。假设线程在交替执行两个工作,一个是在某时间上从网络读取数据(低占用率),另一个是随后对这些数据进行计算(高占用率)。当线程正在执行对其应用要求中的改变做出响应时,操作系统可能会将该线程重新分配给不同的物理处理器。
[0011]依据本发明的特定实施例,逻辑至物理的映射可以通过使用高级配置与电源接口(ACPI)对象来实现,依照ACPI说明书,版本3,为了所有的目的,并入在此作为参考资料。“_PSD”(P-State Dependency)对象(object)可以被用来通知操作系统哪些逻辑处理器被映射到相同的“域”。在域内的每个逻辑处理器与该域内的其他逻辑处理器共享从属性(dependency)。域可以被定义为一个物理处理器和/或多个物理处理器,每个域有确定的电源状态。因而,操作系统可以知道哪个逻辑处理器与每个物理处理器(域)相关。操作系统也会了解并能够控制每个物理处理器的电源状态。这样,信息处理系统可以被配置为最佳低功率使用,或是当电量的使用不是主要考虑因素时配置为最佳性能。
[0012]根据本发明的特定实施例,为了在执行程序线程中节电的信息处理系统包括:多个物理处理器,其中该多个物理处理器中的每一个都能够在低功率或高功率状态下运行,并且多个物理处理器中的每一个都能够运行逻辑处理器;通过在多个物理处理器中运行的逻辑处理器来控制程序线程执行的操作系统,其中,操作系统把高占用率程序线程的执行分配给在运行于高功率状态下的多个物理处理器的一些(ones)物理处理器中运行的逻辑处理器,而把低占用率程序线程的执行分配给在运行于低功率状态下的多个物理处理器的另一些(otherones)物理处理器中运行的逻辑处理器。
[0013]根据本发明的另一个特定实施例,用于最大化程序线程的执行速度的信息处理系统包括:多个处理处理器,其中多个物理处理器的每一个都能够运行在低功率或高功率状态下,并且多个物理处理器的每一个都能够运行在运行逻辑处理器;通过在多个物理处理器中运行的逻辑处理器来控制程序线程执行的操作系统,其中,操作系统把高占用率程序线程的执行分配给在运行于高功率状态下的多个物理处理器的不同的物理处理器(different ones)中运行的逻辑处理器。
[0014]根据本发明的又一个特定实施例,在执行程序线程中有着可选择的高速和低功率系统模式的信息处理系统包括:多个物理处理器,多个物理处理器中的每一个都能够在低功率或高功率状态下运行,并且多个物理处理器中的每一个都能够运行逻辑处理器;通过在多个物理处理器中运行的逻辑处理器来控制程序线程执行的操作系统,其中,当运行在低功率系统模式中时,操作系统把高占用率程序线程的执行分配给在运行于高功率状态下的多个物理处理器的一些(ones)物理处理器中运行的逻辑处理器,而把低占用率程序线程的执行分配给在运行于低功率状态下的多个物理处理器的另一些(other ones)物理处理器中运行的逻辑处理器,并且当操作系统工作在高速系统模式中的时候,操作系统把高占用率程序线程的执行分配给在运行于高功率状态下的多个物理处理器的不同的物理处理器(different ones)中运行的逻辑处理器。
[0015]仍然根据本发明的再一个特定实施例,在信息处理系统中,在执行程序线程中降低功率使用的方法包括:在多个物理处理器中运行逻辑处理器,其中多个物理处理器中的每一个都能够在低功率或高功率状态下运行;由在运行于高功率状态下的多个物理处理器的一些(ones)中运行的逻辑处理器执行高占用率程序线程;以及,由在运行于低功率状态下的多个物理处理器的另一些(other ones)中运行的逻辑处理器来执行低占用率程序线程。
[0016]根据本发明的另一个特定实施例,在信息处理系统中,用于最大化程序线程的执行速度的方法包括:在多个物理处理器中运行逻辑处理器,其中,多个物理处理器的每一个都能够在低功率或高功率状态下运行;由在运行于高功率状态下的多个物理处理器的不同物理处理器(different ones)中运行的逻辑处理器来执行高占用率程序线程;以及,由在多个物理处理器中任意一个中运行的逻辑处理器来执行低占用率程序线程。
附图说明
[0017]通过参考下面的描述以及附图,可以对本发明有一个更完整的理解。
[0018]图1是依据本发明的特定实施例的信息处理系统的示意性框图。
[0019]图2是在相关的物理处理器中运行的多个逻辑处理器的示意性框图。
[0020]图3是依据本发明的特定实施例,在选择用于最小化功率运行的相关逻辑处理器中运行的多个程序线程的示意性框图。
[0021]图4是依据本发明的另一个特定实施例,在选择用于最大化程序执行速度的相关逻辑处理器中运行的多个程序线程的示意性框图。
[0022]在本发明允许多种修改以及可选择的形式的同时,其特定实施例被展示在附图上并在这里被详细描述。然而,应当理解,这里描述的特定实施例并不意味着把本发明限定于在这里所公开的特定形式,相反,本发明涵盖了由所附权利要求所限定的修改以及等价物。
具体实施方式
[0023]为了本发明的目的,信息处理系统可以包括可操作地进行计算、分类、处理、传输、接收、恢复、产生、转换、存储、显示、表明、检测、纪录、复制、处理的任何手段(instrumentalities)或手段的集合体,或可以利用任何形式的信息、智力或用于企业、科学、控制或其他目的的数据。例如,信息处理系统可以是个人计算机、网络存储设备或任何其他合适的设备,并可以在容量、形状、性能、功能性和价格上有所不同。信息处理系统可以包括随机存取存储器(RAM)、例如中央处理单元(CPU)一个或多个处理资源、硬件或软件控制逻辑、只读存储器(ROM),和/或其他类型的非易失性存储器。信息处理系统的其他组件可以包括一个或多个磁盘驱动器、用于与外设进行通讯的一个或多个网络端口,以及例如键盘、鼠标和视频显示器的一个或多个通信端口,以及例如键盘、鼠标和视频显示器的不同输入输出(I/O)设备。信息处理系统还可以包括在多个硬件组件之间可操作地传输通讯(transmit communications)的一条或多条总线。
[0024]参阅附图,特定实施例的细节被示意性的画出。附图中类似的元素用类似的数字表示,相似的元素由具有不同小写字母下标的相同数字表示。
[0025]参阅图1,依据本发明的一个特定实施例,描述了信息处理系统,该系统具有安装在至少一个印刷电路板(PCB)(主板)上的电子元件,并通过信号总线在它们之间传递数据以及控制信号。在一个实施例中,信息处理系统是计算机系统。通常表示为数字100的信息处理系统包括多个与主机总线120相连的物理处理器110,其通常由处理器110a-110n表示。也被称为内存控制中心(memory controller hub)或内存控制器的北桥140与主系统内存150相连。北桥140通过主机总线120与多个处理器110相连。北桥140通常被认为是专用(applicationspecific)芯片组,其提供到多条总线的连通性,并集成例如存储接口的其它系统功能。例如,由位于加利福尼亚州圣克拉拉的英特尔公司出品的Intel 820E和/或815E芯片组提供了北桥140的至少一部分。该芯片组也可能被封装为专用集成电路(ASIC)。北桥140通常包含的最有代表性的功能是使主系统内存150与信息处理系统100中的其它设备相连。因而,例如主内存控制功能的内存控制器功能通常存在于北桥140中。另外,北桥140提供总线控制,用于处理主机总线120与次级总线之间的传输,次级总线例如与驱动视频显示器174的视频图像接口172相连的PCI总线170、AGP总线171。三级(third)总线168可能也包括通过南桥162(总线接口)的其他工业标准总线或专有总线,例如ISA、SCSI、I2C,SPI、USB总线。磁盘控制器160和输入输出接口160可以与三级总线168相连。
[0026]参阅图2,描述了在相关的物理处理器中运行的多个逻辑处理器的示意性框图。每个物理处理器110可能具有同时在其中运行的多个逻辑处理器210。这使得多个逻辑处理器210的每一个能够基本上同时执行不同的程序线程。每个物理处理器110可能运行在不同条件下,例如电压、电流、时钟频率等,然而与物理处理器110相连的所有逻辑处理器210根据物理处理器110的工作参数,例如低或高功率状态将有同样的表现。
[0027]当物理处理器110处于高功率状态时,由相关的逻辑处理器210执行的程序(线程)可能比物理处理器110处于低功率状态时表现出更高的吞吐能力(throughput)。例如,当高占用率线程在工作于高频率/电压状态下的物理处理器内被执行的时候,对使用者来说,会有显而易见的性能增强。然而,当低占用率线程在工作于高频率/电压状态下的物理处理器内被执行的时候,对使用者来说,性能增强可以忽略不计。因此,程序线程202和204是高占用率线程,其更适宜由运行在高功率状态下(例如,较高的时钟频率和/或电压)的物理处理器110中运行的逻辑处理器210来处理。程序线程206是低占用率线程,利用运行在低功率状态下(例如,较低的时钟频率和/或电压)的物理处理器110中运行的逻辑处理器210足够处理此线程。
[0028]当线程被执行时,其可能从高占用率改变为低占用率,反之亦然,例如,如果所有线程都变为低占用率,那么操作系统可以把所有的物理处理器切换到低功率状态。例如,线程在访问输入/输出(I/O)设备(磁盘,网络等)时可能使用较少的处理器资源,而当其对数据进行运算时会使用较多的处理器资源。假设线程在交替执行两个工作,一个是在某时间上从网络读取数据(低占用率),另一个是随后对这些数据进行计算(高占用率)。当线程正在执行对其应用要求中的改变做出响应时,操作系统可以把线程重新分配给不同的物理处理器。
[0029]用于每个逻辑处理器210和物理处理器110的逻辑至物理的映射可以通过使用高级配置与电源接口(ACPI)对象来实现,依照ACPI说明书,版本3,为了所有的目的,被并入在此作为参考资料。“PSD”(P-State Dependency)对象(object)可以被用来通知操作系统哪些逻辑处理器被映射到相同的物理驱动器110,例如“域(domain)”。PSD对象对应于处理器的多个状态,例如,把处理器电源状态控制信息提供给程序操作系统。PSD对象可以估计与物理驱动器110(例如,域)的电源状态信息相关的打包的(packaged)信息列表。每个打包的列表入口(entry)可以为与每个逻辑驱动器210相关的电源状态识别从属(dependency)域数字,这些电源状态的协调(coordination)类型以及逻辑处理器的数字都属于一个域。接着,操作系统可以基于每个程序线程的占用率需求以及工作在合适的电源状态下的物理处理器中运行的可用的逻辑处理器210来分配程序线程。
[0030]物理处理器域中的每一个逻辑处理器都和该物理处理器域中的其它逻辑处理器210共享从属性,例如,当物理处理器域改变电源状态时,在该物理处理器域内的所有逻辑处理器210都改变为该域的电源状态。物理处理器域可以被定义为一个物理处理器110和/或多个物理处理器110,每个域具有确定的电源状态。因此,操作系统可以知道哪个逻辑驱动器210与每个物理驱动器110(域)相关。操作系统也会知道并能够控制对于每个物理处理器110的电源状态。这样,信息处理系统可以被配置为最佳低功率使用,或是当电量的使用不是主要考虑因素时配置为最佳性能。
[0031]参阅图3,依据本发明的特定实施例,描述了在为最小功率运行选择的相关逻辑处理器中运行的多个程序线程的示意性框图。程序线程202和204由运行在相关物理处理器110a中的逻辑处理器210a进行处理。物理处理器110a工作在高功率状态,并且高占用率程序线程202与204以用于两个同时运行的高占用率程序线程的基本上最大化吞吐能力被处理。因为低占用率程序线程206不需要用于正常执行(properexecution)的高吞吐能力,所以运行在低功率状态下的物理处理器110n中运行的逻辑处理器210n是足够的。通过把2个高占用率程序线程202和204分配给运行在相同的物理处理器110a上的逻辑处理器210a,并把低占用率程序线程206分配给运行在不同的物理处理器110n上的逻辑处理器210n,只有物理处理器110a需要出于高功率状态。另一个物理处理器110n能够保持在低功率状态,从而在信息处理系统100中实现节电。
[0032]参阅图4,依据本发明的另一个特定实施例,描述了在为最大化程序执行速度选择的相关逻辑处理器中运行的多个程序线程的示意性框图。程序线程202在逻辑处理器210a中被执行,而程序线程204在逻辑处理器210n中被执行。逻辑处理器210a在物理处理器110a中运行,而逻辑处理器210n在物理处理器110n中运行。物理处理器110a和110n两者都运行在高功率状态。程序线程206可以在逻辑处理器210a或210n中的任意一个中被执行(处理器210a被示出)。因此,由于线程206是低占用率程序线程,其可能基本不影响在相关的物理处理器110中运行的逻辑处理器210的执行速度。通过把高占用率程序线程202和204中的每一个分配给在不同物理处理器110中运行的各逻辑处理器210,并且把低占用率线程206分配给在物理处理器110中任意一个中运行的逻辑处理器210,在信息处理系统100中将会实现最大化程序吞吐能力。
[0033]当本发明的具体实施方式通过参考本发明的具体实施例而被描述、描绘、并被定义时,这些参考并不意味着对本发明的限制,也不能推断出任何此类的限制。所公开的本发明的主题能够接受形式和功能上的多种修改、变更以及等价物,使那些相关领域的专业人员从本发明中受益。对本发明实施例的描述和描绘只是示例,并不能穷尽本
发明的范围。

Claims (37)

1.一种信息处理系统,用于在执行程序线程期间降低电量使用,所述系统包括:
多个物理处理器,其中,多个物理处理器中的每一个都能够在低功率或高功率状态中运行,并且多个物理处理器的每一个都能够运行逻辑处理器;以及
用于通过在多个物理处理器中运行的逻辑处理器来控制程序线程执行的操作系统,其中,操作系统把高占用率程序线程的执行分配给运行于高功率状态的多个物理处理器的一些中运行的逻辑处理器;并把低占用率程序线程的执行分配给运行于低功率状态的多个物理处理器的另一些中运行的逻辑处理器。
2.根据权利要求1所述的信息处理系统,其中,高功率状态包括多个高功率状态。
3.根据权利要求1所述的信息处理系统,其中,低功率状态包括多个低功率状态。
4.根据权利要求1所述的信息处理系统,其中,操作系统揭示多个物理处理器的每一个的电源状态。
5.根据权利要求1所述的信息处理系统,其中,操作系统控制多个物理处理器的每一个的电源状态。
6.根据权利要求1所述的信息处理系统,其中,操作系统揭示哪一个逻辑处理器与多个物理处理器的每一个相关。
7.根据权利要求1所述的信息处理系统,其中,操作系统基于被执行的高占用率程序线程和低占用率程序线程的数量是多少来控制多个物理处理器的每一个的电源状态。
8.根据权利要求4所述的信息处理系统,其中,逻辑处理器被分配给域,而每个域代表多个物理处理器的一个。
9.根据权利要求1所述的信息处理系统,其中,在低占用率程序线程被分配之前,高占用率程序线程被分配给运行于高功率状态的物理处理器中运行的逻辑处理器。
10.根据权利要求9所述的信息处理系统,其中,执行高占用率程序线程的逻辑处理器被选中,以便最小化在高功率状态中运行所需要的物理处理器的数量。
11.根据权利要求1所述的信息处理系统,其中,当高占用率程序线程变为低占用率程序线程时,操作系统把其执行重新分配给在低功率状态中运行的多个物理处理器的一个。
12.根据权利要求1所述的信息处理系统,其中,当低占用率程序线程变为高占用率程序线程时,操作系统把其执行重新分配给在高功率状态中运行的多个物理处理器的一个。
13.用于最大化程序线程的执行速度的信息处理系统,所述系统包括:
多个物理处理器,其中,多个物理处理器的每一个都能够在低功率或高功率状态中运行,并且多个物理处理器的每一个都能够运行逻辑处理器;以及
用于通过在多个物理处理器中运行的逻辑处理器来控制程序线程执行的操作系统,其中,操作系统把高占用率程序线程的执行分配给运行于高功率状态的多个物理处理器的不同物理处理器中运行的逻辑处理器。
14.根据权利要求13所述的信息处理系统,其中,高功率状态包括多个高功率状态。
15.根据权利要求13所述的信息处理系统,其中,低功率状态包括多个低功率状态。
16.根据权利要求13所述的信息处理系统,其中,操作系统把低占用率程序线程的执行分配给在多个物理处理器的任意一个中运行的逻辑处理器。
17.根据权利要求13所述的信息处理系统,其中,操作系统揭示多个物理处理器的每一个的电源状态。
18.根据权利要求13所述的信息处理系统,其中,操作系统控制多个物理处理器的每一个的电源状态。
19.根据权利要求13所述的信息处理系统,其中,操作系统揭示哪一个逻辑处理器与多个物理处理器的每一个相关。
20.根据权利要求13所述的信息处理系统,其中,操作系统基于被执行的高占用率程序线程和低占用率程序线程的数量是多少来控制多个物理处理器的每一个的电源状态。
21.根据权利要求13所述的信息处理系统,其中,在低占用率程序线程被分配之前,高占用率程序线程被分配给运行于高功率状态的不同物理处理器中运行的逻辑处理器。
22.根据权利要求13所述的信息处理系统,其中,当高占用率程序线程变为低占用率程序线程时,操作系统重新分配其执行。
23.根据权利要求13所述的信息处理系统,其中,当低占用率程序线程变为高占用率程序线程时,操作系统重新分配其执行。
24.具有可选择的高速和低功率系统模式的信息处理系统,用于执行程序线程,所述系统包括:
多个物理处理器,其中,多个物理处理器的每一个都能够在低功率或高功率状态中运行,并且多个物理处理器的每一个都能够运行逻辑处理器;以及
用于通过在多个物理处理器中运行的逻辑处理器来控制程序线程执行的操作系统,其中
当运行在低功率系统模式中时,操作系统把高占用率程序线程的执行分配给在运行于高功率状态的多个物理处理器的一些中运行的逻辑处理器,并把低占用率程序线程的执行分配给在运行于低功率状态的多个物理处理器的另一些中运行的逻辑处理器;以及
当运行于高速系统模式中时,操作系统把高占用率程序线程的执行分配给运行于高功率状态的多个物理处理器的不同物理处理器中运行的逻辑处理器。
25.根据权利要求23所述的信息处理系统,其中,高功率状态包括多个高功率状态。
26.根据权利要求23所述的信息处理系统,其中,低功率状态包括多个低功率状态。
27.根据权利要求23所述的信息处理系统,其中,当高占用率程序线程变为低占用率程序线程时,操作系统重新分配其执行。
28.根据权利要求23所述的信息处理系统,其中,当低占用率程序线程变为高占用率程序线程时,操作系统重新分配其执行。
29.根据权利要求23所述的信息处理系统,其中,操作系统基于被执行的低占用率和高占用率程序线程的数量是多少来控制多个物理处理器的每一个的电源状态。
30.用于在信息处理系统中执行程序线程期间降低电量使用的方法,所述方法包括以下步骤:
在多个物理处理器中运行逻辑处理器,其中,多个物理处理器的每一个都能够在低功率或高功率状态中运行;
利用运行于高功率状态的多个物理处理器的一些中运行的逻辑处理器来执行高占用率程序线程;以及
利用运行于低功率状态的多个物理处理器的另一些中运行的逻辑处理器来执行低占用率程序线程。
31.根据权利要求29所述的方法,进一步包括当高占用率程序线程变为低占用率程序线程时,操作系统重新分配线程执行的步骤。
32.根据权利要求29所述的方法,进一步包括当低占用率程序线程变为高占用率程序线程时,操作系统重新分配线程执行的步骤。
33.根据权利要求29所述的方法,进一步包括基于被执行的低占用率和高占用率程序线程的数量是多少来控制多个物理处理器的每一个的电源状态的步骤。
34.用于在信息处理系统中最大化程序线程的执行速度的方法,所述方法包括以下步骤:
在多个物理处理器中运行逻辑处理器,其中,多个物理处理器的每一个都能够在低功率或高功率状态中运行;
利用运行于高功率状态的多个物理处理器的不同物理处理器中运行的逻辑处理器来执行高占用率程序线程;以及
利用在多个物理处理器的任意一个中运行的逻辑处理器来执行低占用率程序线程。
35.根据权利要求33所述的方法,进一步包括当高占用率程序线程变为低占用率程序线程时,操作系统重新分配线程执行的步骤。
36.根据权利要求33所述的方法,进一步包括当低占用率程序线程变为高占用率程序线程时,操作系统重新分配线程执行的步骤。
37.根据权利要求33所述的方法,进一步包括基于被执行的低占用率和高占用率程序线程的数量是多少来控制多个物理处理器的每一个的电源状态的步骤。
CNB200610093187XA 2005-06-24 2006-06-23 多处理器的电源管理 Active CN100570534C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/165,880 US20060294401A1 (en) 2005-06-24 2005-06-24 Power management of multiple processors
US11/165,880 2005-06-24

Publications (2)

Publication Number Publication Date
CN1885232A true CN1885232A (zh) 2006-12-27
CN100570534C CN100570534C (zh) 2009-12-16

Family

ID=36803569

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200610093187XA Active CN100570534C (zh) 2005-06-24 2006-06-23 多处理器的电源管理

Country Status (8)

Country Link
US (1) US20060294401A1 (zh)
CN (1) CN100570534C (zh)
DE (1) DE102006028307B4 (zh)
FR (1) FR2888957A1 (zh)
GB (1) GB2427724B (zh)
HK (1) HK1099589A1 (zh)
SG (1) SG128624A1 (zh)
TW (1) TWI346278B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102812439A (zh) * 2010-03-25 2012-12-05 国际商业机器公司 多处理器计算机系统中的功率管理
CN103034539A (zh) * 2011-09-30 2013-04-10 英业达股份有限公司 伺服器系统及其电源管理方法
WO2018018494A1 (zh) * 2016-07-28 2018-02-01 张升泽 基于多区间分配的功率分配方法及系统

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596709B2 (en) * 2000-12-30 2009-09-29 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
EP1996993B1 (en) * 2006-01-10 2015-03-11 Cupp Computing As Dual mode power-saving computing system
JP2009527828A (ja) * 2006-02-17 2009-07-30 クゥアルコム・インコーポレイテッド マルチプロセッサのアプリケーションサポートのためのシステムおよび方法
US7802073B1 (en) * 2006-03-29 2010-09-21 Oracle America, Inc. Virtual core management
US8384700B2 (en) * 2007-01-26 2013-02-26 Microsoft Corporation Linked shell
US7925900B2 (en) * 2007-01-26 2011-04-12 Microsoft Corporation I/O co-processor coupled hybrid computing device
US8490103B1 (en) * 2007-04-30 2013-07-16 Hewlett-Packard Development Company, L.P. Allocating computer processes to processor cores as a function of process utilizations
US8219788B1 (en) 2007-07-23 2012-07-10 Oracle America, Inc. Virtual core management
GB2470973B (en) * 2007-07-30 2012-10-10 Clear Falls Pty Ltd A method and system for reactively assigning computational threads of control between processors
US8281303B2 (en) * 2007-10-31 2012-10-02 Hewlett-Packard Development Company, L.P. Dynamic ejection of virtual devices on ejection request from virtual device resource object within the virtual firmware to virtual resource driver executing in virtual machine
GB2454914B (en) * 2007-11-22 2012-07-25 Icera Inc Clock control
JP5433837B2 (ja) * 2007-12-05 2014-03-05 株式会社日立製作所 仮想計算機システム、仮想計算機の制御方法及びプログラム
US8615647B2 (en) 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US8862786B2 (en) * 2009-08-31 2014-10-14 International Business Machines Corporation Program execution with improved power efficiency
US20160154649A1 (en) * 2014-12-01 2016-06-02 Mediatek Inc. Switching methods for context migration and systems thereof
US10503238B2 (en) 2016-11-01 2019-12-10 Microsoft Technology Licensing, Llc Thread importance based processor core parking and frequency selection
US10372494B2 (en) 2016-11-04 2019-08-06 Microsoft Technology Licensing, Llc Thread importance based processor core partitioning

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201049A (en) * 1988-09-29 1993-04-06 International Business Machines Corporation System for executing applications program concurrently/serially on different virtual machines
US5063500A (en) * 1988-09-29 1991-11-05 Ibm Corp. System for executing segments of application program concurrently/serially on different/same virtual machine
US5142684A (en) * 1989-06-23 1992-08-25 Hand Held Products, Inc. Power conservation in microprocessor controlled devices
US5978831A (en) * 1991-03-07 1999-11-02 Lucent Technologies Inc. Synchronous multiprocessor using tasks directly proportional in size to the individual processors rates
EP0727728A1 (en) * 1995-02-15 1996-08-21 International Business Machines Corporation Computer system power management
US6308279B1 (en) * 1998-05-22 2001-10-23 Intel Corporation Method and apparatus for power mode transition in a multi-thread processor
JP2000020187A (ja) * 1998-07-07 2000-01-21 Fujitsu Ltd 情報処理装置及び電力制御方法並びに記録媒体
GB9828383D0 (en) * 1998-12-22 1999-02-17 Medical Res Council Cell lineage markers
US6442700B1 (en) * 1999-08-10 2002-08-27 Intel Corporation Thermal control within systems having multiple CPU performance states
ATE492840T1 (de) * 2000-10-31 2011-01-15 Millennial Net Inc Vernetztes verarbeitungssystem mit optimiertem leistungswirkungsgrad
US6986066B2 (en) * 2001-01-05 2006-01-10 International Business Machines Corporation Computer system having low energy consumption
US6993669B2 (en) * 2001-04-18 2006-01-31 Gallitzin Allegheny Llc Low power clocking systems and methods
US6901522B2 (en) * 2001-06-07 2005-05-31 Intel Corporation System and method for reducing power consumption in multiprocessor system
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US20030079151A1 (en) * 2001-10-18 2003-04-24 International Business Machines Corporation Energy-aware workload distribution
US7203943B2 (en) * 2001-10-31 2007-04-10 Avaya Technology Corp. Dynamic allocation of processing tasks using variable performance hardware platforms
US7254812B1 (en) * 2002-05-31 2007-08-07 Advanced Micro Devices, Inc. Multi-processor task scheduling
US7076671B2 (en) * 2002-08-12 2006-07-11 Hewlett-Packard Development Company, L.P. Managing an operating frequency of processors in a multi-processor computer system
US7496494B2 (en) * 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US7007183B2 (en) * 2002-12-09 2006-02-28 International Business Machines Corporation Power conservation by turning off power supply to unallocated resources in partitioned data processing systems
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US7761876B2 (en) * 2003-03-20 2010-07-20 Siemens Enterprise Communications, Inc. Method and system for balancing the load on media processors based upon CPU utilization information
JP4196333B2 (ja) * 2003-05-27 2008-12-17 日本電気株式会社 並列処理システム及び並列処理プログラム
US7444632B2 (en) * 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US20050132239A1 (en) * 2003-12-16 2005-06-16 Athas William C. Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
US7802255B2 (en) * 2003-12-19 2010-09-21 Stmicroelectronics, Inc. Thread execution scheduler for multi-processing system and method
US7197652B2 (en) * 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
US20050240934A1 (en) * 2004-04-21 2005-10-27 Hewlett-Packard Development Company, L.P. Task management based on system utilization
US7152171B2 (en) * 2004-04-28 2006-12-19 Microsoft Corporation Task-oriented processing as an auxiliary to primary computing environments
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7426648B2 (en) * 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
US20060107262A1 (en) * 2004-11-03 2006-05-18 Intel Corporation Power consumption-based thread scheduling
US7526661B2 (en) * 2004-12-02 2009-04-28 Intel Corporation Performance state-based thread management
US20060206902A1 (en) * 2005-03-14 2006-09-14 Sujat Jamil Variable interleaved multithreaded processor method and system
US7917907B2 (en) * 2005-03-23 2011-03-29 Qualcomm Incorporated Method and system for variable thread allocation and switching in a multithreaded processor
US7827554B2 (en) * 2005-06-20 2010-11-02 Microsoft Corporation Multi-thread multimedia processing
US7694107B2 (en) * 2005-08-18 2010-04-06 Hewlett-Packard Development Company, L.P. Dynamic performance ratio proportionate distribution of threads with evenly divided workload by homogeneous algorithm to heterogeneous computing units
US7721127B2 (en) * 2006-03-28 2010-05-18 Mips Technologies, Inc. Multithreaded dynamic voltage-frequency scaling microprocessor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102812439A (zh) * 2010-03-25 2012-12-05 国际商业机器公司 多处理器计算机系统中的功率管理
CN102812439B (zh) * 2010-03-25 2015-12-09 国际商业机器公司 用于在多处理器计算机系统中分派任务的方法和系统
CN103034539A (zh) * 2011-09-30 2013-04-10 英业达股份有限公司 伺服器系统及其电源管理方法
WO2018018494A1 (zh) * 2016-07-28 2018-02-01 张升泽 基于多区间分配的功率分配方法及系统

Also Published As

Publication number Publication date
DE102006028307A1 (de) 2007-02-22
GB2427724A (en) 2007-01-03
IE20060460A1 (en) 2007-02-07
SG128624A1 (en) 2007-01-30
GB0612230D0 (en) 2006-08-02
US20060294401A1 (en) 2006-12-28
TWI346278B (en) 2011-08-01
FR2888957A1 (fr) 2007-01-26
HK1099589A1 (en) 2007-08-17
TW200707170A (en) 2007-02-16
CN100570534C (zh) 2009-12-16
DE102006028307B4 (de) 2011-01-20
GB2427724B (en) 2007-10-17

Similar Documents

Publication Publication Date Title
CN100570534C (zh) 多处理器的电源管理
Ibrahim et al. Governing energy consumption in Hadoop through CPU frequency scaling: An analysis
Beloglazov Energy-efficient management of virtual machines in data centers for cloud computing
Beloglazov et al. A taxonomy and survey of energy-efficient data centers and cloud computing systems
CN103597449B (zh) 操作系统解耦的异构计算
US9542223B2 (en) Scheduling jobs in a cluster by constructing multiple subclusters based on entry and exit rules
CN104823129B (zh) 用于智能地对异构处理器组件供电的装置和方法
DE102020122528A1 (de) Softwareunterstütztes Leistungsmanagement
US7100056B2 (en) System and method for managing processor voltage in a multi-processor computer system for optimized performance
Li et al. An energy-efficient scheduling approach based on private clouds
CN1969248A (zh) 用于管理服务器的功耗的方法和装置
CN105103122A (zh) 异构处理器装置和方法
CN1135469C (zh) 用于计算机中的处理设备与方法
Kramer et al. A column generation approach for power-aware optimization of virtualized heterogeneous server clusters
CN105144086A (zh) 异构处理器装置和方法
Padhy et al. MIRAGE: A consolidation aware migration avoidance genetic job scheduling algorithm for virtualized data centers
Xu et al. Energy-Aware Resource Management in Cloud Computing Considering Load Balance.
CN1670664A (zh) 一种用电池给电子装置供电的电源管理方法
EP2466452B1 (en) Register file and computing device using same
Wang et al. Gmpr: a two-phase heuristic algorithm for virtual machine placement in large-scale cloud data centers
Yang et al. A parallel loop self-scheduling on extremely heterogeneous pc clusters
CN100345128C (zh) 基于动态优先级的总线仲裁器和动态改变优先级的方法
Gamell et al. Exploring cross-layer power management for pgas applications on the scc platform
Li et al. Real-time workflows oriented hybrid scheduling approach with balancing host weighted square frequencies in clouds
Ye et al. A mission-driven two-step virtual machine commitment for energy saving of modern data centers through UPS and server coordinated optimizations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1099589

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1099589

Country of ref document: HK