CN101165635A - 用于计算机处理器系统的功率管理的系统和方法 - Google Patents

用于计算机处理器系统的功率管理的系统和方法 Download PDF

Info

Publication number
CN101165635A
CN101165635A CNA2007101496288A CN200710149628A CN101165635A CN 101165635 A CN101165635 A CN 101165635A CN A2007101496288 A CNA2007101496288 A CN A2007101496288A CN 200710149628 A CN200710149628 A CN 200710149628A CN 101165635 A CN101165635 A CN 101165635A
Authority
CN
China
Prior art keywords
power
instruction
measurement
address
pht
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
CNA2007101496288A
Other languages
English (en)
Other versions
CN101165635B (zh
Inventor
米尔福德·J·彼得森
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 CN101165635A publication Critical patent/CN101165635A/zh
Application granted granted Critical
Publication of CN101165635B publication Critical patent/CN101165635B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • 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

Abstract

一种用于计算机处理器系统的功率管理的系统和方法,所述方法包括:测量功率使用;监视用于完成指令的指令执行;确定用于完成指令的完成指令地址;确定用于完成指令的测量的功率使用;以及将与测量的功率使用相关联的完成指令地址存储在功率历史表(PHT)中。存储在PHT中的信息能够使用来管理由计算机处理器系统使用的功率。

Description

用于计算机处理器系统的功率管理的系统和方法
技术领域
本公开的技术领域是计算机处理器系统,具体来说是用于计算机处理器系统的功率管理。
背景技术
计算机处理器系统持续变快,并且各组件的密度持续增加。这呈现峰值功率和平均功率使用的计算机处理器系统的功率管理的问题。高的峰值功率使用需要更大的电源,并且能增加数字电路中的噪声。例如,同时的组件切换能够引起高峰值功率使用,这能够引起电源/地跳动(bounce)。由于各引脚和各组件的固有电感和电容,电源/地跳动分别导致电源或地总线上的噪声,并且引起逻辑错误。高的平均功率使用增加功耗并产生热量,这能够降低操作可靠性。
目前对功率管理的解决方案对于计算机处理器系统具有显著有害的影响。一种解决方案是更慢地运行计算机处理器系统,其增加了计算时间。另一种解决方案是执行较少的推测性操作,即减少在知道将需要这些操作的结果之前执行的操作的次数。另一种解决方案是执行较少的并行(同时)操作。其它解决方案包括减少晶体管尺寸,这使得它们更慢并且减少了噪声余量,并且增加了氧化层厚度,这又降低了晶体管速度。目前对于功率管理的解决方案实质上削弱了计算机处理器系统的操作。
期望有一种将克服上面缺点的计算机处理器系统的功率管理的系统和方法。
发明内容
本发明的用于计算机处理器系统的功率管理的系统和方法提供了功率历史表(PHT),其存储用于指令的相关联地址的测量功率使用。在计算机处理器系统的操作期间确定测量的功率使用。当具有相关联地址的指令运行时,所述计算机处理器系统能够基于在先测量的功率使用管理功率使用。这允许计算机处理器系统对要求高功率的指令调整,同时最小化对总体性能的负面影响。
本发明的一个方面提供了一种用于计算机处理器系统的功率管理方法,包括:测量功率使用;监视用于完成(finishing)指令的指令执行;确定用于完成指令的完成指令地址;确定用于完成指令的测量的功率使用;以及将与测量的功率使用相关联的完成指令地址存储在功率历史表(PHT)中。
本发明的另一个方面在计算机可使用的介质中、提供了用于计算机处理器系统的功率管理计算机程序产品,包括:用于测量功率使用的计算机程序代码;用于监视完成指令的指令执行的计算机程序代码;用于确定完成指令的完成指令地址的计算机程序代码;用于确定完成指令的测量的功率使用的计算机程序代码;以及用于将与测量的功率使用相关联的完成指令地址存储在功率历史表(PHT)中的计算机程序代码。
本发明的另一个方面提供了一种信息处理系统,包括:处理器;耦合到所述处理器的存储器,用于存储由数字处理装置可执行的指令,所述数字处理装置用于执行操作以对计算机处理器系统提供功率管理。所述操作包括:测量功率使用;监视完成指令的指令执行;确定完成指令的测量功率使用;及将与测量的功率使用相关联的完成指令地址存储在功率历史表(PHT)中。
本发明的另一个方面提供了一种具有功率管理的计算机处理器系统,其包括:指令提取控制单元,所述指令提取控制单元具有功率历史表(PHT);指令分派控制单元;指令执行单元,所述指令执行单元具有功率控制单元;以及程序状态和数据单元。所述指令分派控制单元将指令从指令提取控制单元分派到指令执行单元用于执行,所述功率控制单元监视用于测量的功率使用的指令的执行,并且所述程序状态和数据单元监视用于完成指令地址的指令的执行,所述测量的功率使用存储在与完成指令地址相关联的功率历史表(PHT)中。
结合附图阅读,从下面的目前优选实施例的详细描述中,本发明的前面和其它的特征和优点将变得进一步明显。详细的描述和附图仅仅说明本发明,而不是限制由权利要求及其等效定义的本发明的范围。
附图说明
图1是用于使用本发明的计算机处理器系统的方框图;
图2是按照本发明执行的功率管理的方法的功率历史表管理的流程图;
图3是按照本发明执行的使用功率历史表的功率管理的方法的流程图;以及
图4是按照本发明执行的功率管理的方法的信息处理系统的方框图。
具体实施方式
图1是用于使用本发明的计算机处理器系统的方框图。计算机处理器系统100包括:指令存储器单元110、指令提取控制单元120、指令分派控制单元130、指令执行单元140、数据交换总线150、程序状态和数据单元160、数据存储器单元170和输入/输出设备180。指令提取控制单元120中的功率历史表(PHT)为各指令按地址存储测量的功率使用历史,使得计算机处理器系统100能够适应特定指令的功率使用。
指令提取控制单元120提取存储在指令存储器单元110中的指令,并且将该指令提供给指令分派控制单元130。指令分派控制单元130在指令提取控制单元120的指导下控制指令流。指令执行单元140执行指令并且对数据操作。指令执行单元140还测量功率使用,并且将该信息提供给PHT124。程序状态和数据单元160跟踪指令执行,并且将该信息提供给PHT124。
指令提取控制单元120提取存储在指令存储器单元110中的指令,并且将各指令提供给指令分派控制单元130。在一个实施例中,一次提取一条指令。在另一个实施例中,按组(如5条指令的示例性组)提取指令。指令提取控制单元120包括:分支历史表(BHT)122、功率历史表(PHT)124和指令高速缓冲存储器126。BHT122和PHT124通过完成指令地址,分别存储用于各指令的分支和功率的历史。指令高速缓冲存储器126保持从指令存储器单元110调用的单个指令或成组指令,直到它们在指令分派控制单元130的指导下转移出指令存储器单元110。在一个实施例中,BHT122和PHT124是分开的表格。在另一个实施例中,BHT122和PHT124组合为单个表格。典型地,BHT122和PHT124具有相同数量的地址。本领域技术人员将意识到,用在BHT122和PHT124中的地址数量取决于特定应用,示例性范围是从64到2,000个地址。各地址能够按部分的或截短的地址存储以节约BHT122和/或PHT124中的空间。在指令已经完成后,分支和功率历史能够保持在程序状态和数据单元160中的完成表163中,使得分支和功率历史能够分别被发送到BHT122和/或PHT124。
BHT122是通过完成指令地址对各指令索引的分支历史值的表。分支历史值能够在计算机处理器系统100的操作期间确定,同时程序状态和数据单元160将由在特定地址的指令采用或不采用的分支,提供到BHT122用于存储。例如,具有地址#10的指令可以跟随分支B一次,接下来的4次跟随分支A。每次具有#10的指令运行,由程序状态和数据单元160将跟随的分支提供给BHT122。基于该历史,具有地址#10的指令80%的时间跟随分支A,并且20%的时间跟随分支B。跟随的分支A的可能性能够在BHT122中存储为高,并且跟随分支B的可能性能够在BHT122中存储为低。当调用具有地址#10的指令为将来运行时,指令提取控制单元122能够从BHT122查询被跟随的可能分支,并且沿着可能的分支开始推测性执行。在该示例性情形中,推测性执行能够沿着分支A开始,因为它是比分支B更可能的分支。因此,推测性执行能够先于实际执行进行以节约处理时间。当可能的分支不是跟随的分支时,推测性执行的结果能够被放弃。
PHT124是通过完成指令地址为各指令索引的测量功率使用值的表格。该测量的功率使用值能够在计算机处理器系统100的操作期间确定,并且存储在PHT124中,同时程序状态和数据单元160提供在特定地址的指令,并且指令执行单元140中的功率控制单元142提供测量的功率使用。例如,具有地址#10的指令可能正要完成,并且功率控制单元142检测到该完成并且将地址#10提供给PHT124。功率控制单元142将具有地址#10的指令正在运行时测量的所述测量功率使用(如高、中、低等),提供给PHT124。能够为地址#10将功率使用存储在PHT124中。当调用具有地址#10的指令用于将来执行时,指令提取控制单元120能够从PHT124查询测量的功率使用,以及适当地管理计算机处理器系统100的功率使用,如指导指令分派控制单元130如何分派指令。
PHT124的地址部分存储各指令的地址,并且功率使用部分存储特定地址的测量功率使用。在一个实施例中,功率使用部分是单个比特宽,并且测量功率使用存储为高或低。在另一个实施例中,功率使用部分是两个比特宽,并且测量功率使用能够存储为高、中、低或未知。在其它实施例中,功率使用部分能够大于两个比特宽,并且能够存储测量功率使用的更精细的增量。在一个实施例中,PHT124和BHT122组合在单个表格中,使得所述地址仅仅需要为两者存储在单个列中。本领域技术人员将意识到,PHT124对于特定应用能够按需要确定大小。
指令高速缓冲存储器126保持各指令或指令组,其在指令提取控制单元120处从指令存储器单元110接收,并且提供给指令分派控制单元130。指令分派控制单元130能够在指令提取控制单元120的指导下,控制来自指令高速缓冲存储器126的指令或指令组的流,所述指令提取控制单元120能够控制执行和/或功率管理的流。
指令执行单元140包括功率控制单元142和执行单元(EU)144。指令执行单元140从指令分派控制单元130接收指令,从数据交换总线150接收数据,在EU 144中执行各指令,并且将数据返回到数据交换总线150。当目前的指令执行不需要EU 144时,在功率控制单元142的指导下,一个或多个EU 144能够被关闭以减少功率使用。功率控制单元142测量功率使用并且将测量的功率使用提供给PHT124。
数据交换总线150在指令执行单元140、程序状态和数据单元160、数据存储器单元170和输入/输出设备180之间传递数据。数据存储器单元170存储数据,并且输入/输出设备180允许将数据和指令输入和输出到计算机处理器系统100。程序状态和数据单元160包括数据高速缓冲存储器162,其将数据暂时高速缓存到指令执行单元140和数据存储器单元170之间。程序状态和数据单元160跟踪完成的指令,并将该完成的指令地址提供给PHT124。程序状态和数据单元160还使用完成表163跟踪运行指令和分支历史,并且将它们提供给BHT122。
本领域技术人员将意识到,图示的计算机处理器系统100仅仅是一个示例,并且其它配置是可能的。例如,程序状态和数据单元160能够放置在计算机处理器系统100中的其它地方,并且不限于连接到数据交换总线150。
图2是按照本发明执行的功率管理的方法的功率历史表管理的流程图。功率历史表管理方法200用测量的功率使用值填充功率历史表(PHT),该测量的功率使用值能够用于管理计算机处理器系统的功率。
所述方法200从初始化PHT203开始。测量计算机处理器系统中的功率使用204。为完成指令监视指令的执行206,并且确定指令是否完成208。当没有指令完成时,方法200继续监视指令执行206。当指令完成时,为完成指令确定该完成指令的地址210,并为完成指令确定测量的功率使用212。完成指令地址和测量的功率使用存储到与彼此相关联的PHT214。重置功率使用216,以允许跟踪执行下一指令的功率使用。在一个实施例中,所述方法200能够继续初始化PHT 203。在另一个实施例中,所述方法200能够继续测量功率使用204。
所述方法200还能够包括如图2中所示的可选的重置例程(routine)。可选的重置例程考虑使用随时间不同地不同地址的不同计算机应用。例如,一个应用(如电子数据表(spreadsheet)),可以对于给定地址使用低功率,而另一稍后运行的程序可以使用高功率。在预定数量的操作或时间量之后重置PHT,允许PHT考虑不同应用的不同功率使用。
可选的重置例程确定应用重置计数器是否大于或等于定义预定间隔的应用重置限度218。当应用重置计数器大于或等于应用重置限度时,应用重置计数器增加220,并且所述方法200继续测量功率使用204。当应用重置计数器不大于或等于应用重置限度时,重置PHT222并且重置应用重置计数器224。在一个实施例中,方法200能够继续初始化PHT203。在另一个实施例中,方法200能够继续测量功率使用204。本领域技术人员将意识到,对特定应用能够按需要选择应用重置限度的值。在一个示例中,应用重置限度是一百万。
初始化PHT203以将PHT中的测量功率使用的值设置到预定的功率使用值。典型地,测量功率使用值被初始化到低或未知值。在一个示例中,当PHT的功率使用部分是单个比特宽并且测量功率使用存储为高或低时,预定功率使用值是低。在另一个示例中,当PHT的功率使用部分是两个比特宽并且测量功率使用能够存储为高、中、低或未知时,预定功率使用值未知。然后如果由在相关联的指令的执行期间测量的功率使用保证,则测量的功率使用能够增加到更高的值。
在测量计算机处理器系统中的功率使用时204,能够选择测量技术以对特定的计算机处理器系统设计给出最佳结果。在一个实施例中,在执行特定指令时,关闭执行所述特定指令不需要的执行单元(EU)。在一个实施例中,每个EU能够考虑集成电路的时钟选通区域。为了测量功率使用,时钟能够与每个EU相关联,并且在打开相关联的EU时每个时钟能够运行,以跟踪每个执行单元的接通时间(on-time)。当指令完成时,所有时钟的接通时间能够求和以确定测量的功率使用。更精确的功率使用测量能够通过考虑各EU的相对面积获得。当指令完成时,所有时钟的接通时间能够通过每个EU的部分面积用加权求和,以确定测量的功率使用。例如,所有EU的总面积的一半的EU,将按所有EU的总面积的四分之一的EU的两倍加权。通过部分区域的加权允许功率使用与EU的面积成比例。本领域技术人员将意识到,单个EU能够拆开为几个或许多的时钟选通区域,并且这些时钟选通区域中的每个对功率使用测量计数。在另一个实施例中,测量计算机处理器系统中的功率使用204包括测量功率轨(rail)的温度作为功率使用的指示。
将完成指令的地址和测量的功率使用存储到PHT214,即将完成指令的地址与测量功率使用相关联地存储。该地址可以按部分的或截短的地址存储以节约PHT中的空间。在一个实施例中,将为指令确定的最近的测量功率使用存储到PHT,使得存储的值总是最近的值。在另一个实施例值中,将为指令确定的最高测量功率使用存储到PHT,使得存储的值是最大的测量值。将重新确定的测量的功率使用与目前存储的测量的功率使用相比,并且当重新确定的测量功率使用大于目前存储的测量功率使用时,仅仅将重新确定的测量功率使用存储在PHT中。例如,当目前存储的测量功率使用低时,当重新确定的测量功率使用是中或高时,仅仅将重新确定的测量功率使用存储在PHT中。在另一个实施例中,每次重新确定的测量功率使用超过目前存储的测量功率使用时,增加存储到PHT的测量功率使用,使得存储在PHT中的测量功率使用逐渐增加。例如,当目前存储的测量功率使用低时,当重新确定的测量功率使用是中或高时,将测量功率使用按中存储在PHT中。本领域技术人员将意识到,对于特定应用,能够按需要选择将测量功率使用存储到PHT。
图3是按照本发明执行的使用功率历史表的功率管理的方法的流程图。功率历史表管理使用方法300,使用按地址存储在功率历史表(PHT)中的测量功率使用值,以管理计算机处理器系统的功率。
所述方法300从监视分派指令的指令分派开始304。确定指令是否被分派306。当没有指令分派时,所述方法300继续监视指令分派304。当指令在分派时,获得分派指令的分派指令地址308。为从分派指令获得的分派指令地址,从PHT查找测量功率使用310。确定分派指令地址的测量功率使用是否大于或等于功率使用限度312。当测量功率使用不大于或等于功率使用限度时,执行指令的正常分派316,并且所述方法300能够继续监视指令分派304。当测量功率使用大于或等于功率使用限度时,执行指令的功率节约分派作为功率节约措施314,并且所述方法300结束318。所述方法300能够继续监视指令分派304。
在确定测量功率使用是否大于或等于功率使用限度312中使用的功率使用限度,能够是预定的限度或单独选择的限度。预定限度是固定的。例如,当功率使用限度是中等的预定限度时,在测量功率使用是中或高时,执行指令的功率节约分派的执行314。单独选择的限度能够由用户输入或在程序控制下调整。在一个示例中,用户可以发现:当功率使用限度设置为低而不是中时,计算机处理器系统节约了更多功率并且符合运行时间要求,使得用户将功率使用限度设置为低。在另一个示例中,计算机处理器系统可以检测在功率使用限度设置为低时运行时间太慢,并且在程序控制下将功率使用限度设置为中。
当测量功率使用大于或等于功率使用限度时,执行指令的功率节约分派作为功率节约措施314。功率节约措施的示例包括以较慢速度发送用于执行的指令,并且在用于执行的指令之间发送中断(break)。通过调整将指令分派到指令执行单元的途径,能够降低指令的执行速度以减少功率使用。在一个实施例中,能够降低各指令或指令组的分派速度以降低在指令执行单元的执行速度。对于指令组,能够一次分派一条指令而不是立即分派整个组。在另一个实施例中,能够在指令之间插入中断,以降低在指令执行单元的执行速度。能够选择中断的数量和/或持续时间,以根据功率管理需要提供期望的执行速度。当地址的指令具有高的测量功率使用时能够提供更多中断。
能够调整(tailor)功率管理的指令的功率节约分派,以考虑存储在PHT中的测量功率使用。例如,具有高值的测量功率使用的地址与具有中值的测量功率使用的地址相比,能够实现更大的功率节约。较慢的分派速度能够用于高值地址。调整的控制的精细度能够适于测量功率使用数据存储的精细度,例如,提供16种可能的测量功率使用增量的4比特测量功率使用数据存储,与提供4种可能的测量功率使用增量的2比特测量功率使用数据存储相比,能够提供对功率节约的更精细控制。
本领域技术人员将意识到,功率使用限度和功率管理的指令,能够基于操作目标和特定的计算机处理器系统的特征选择。当操作目标是为了降低峰值功率时,一个功率使用限度可能是最佳的。当操作目的是为了降低平均功率时,不同的功率使用限度可能是最佳的。例如,高功率使用限度经常适于控制峰值功率,并且较低的功率使用限度适于控制平均功率。
图4是按照本发明执行的功率管理的方法的信息处理系统的方框图。信息处理系统401是能够执行在此描述的操作的计算机系统的简化示例。信息处理系统401包括处理器400,其耦合到主机总线405。2级(L2)高速缓冲存储器410也耦合到主机总线405。主机至PCI桥415耦合到主存储器420,包括高速缓冲存储器和主存储器控制功能,并且提供总线控制以处理在PCI总线425、处理器400、L2高速缓冲存储器410、主存储器420和主机总线405之间的传递。PCI总线425提供了各种设备包括例如LAN卡430和/或视频卡432的接口。视频卡432可操作连接到显示设备490,如液晶显示器(LCD)、阴极射线管(CRT)显示器、投影显示器等。本领域技术人员将意识到,根据特定的应用需要,视频卡432能够附接到其它类型的总线,如AGP或PCI直接(express)总线。
PCI至ISA桥435提供总线控制以处理在PCI总线425和ISA总线440、通用串行总线(USB)功能445、IDE设备功能450、功率管理功能455之间的传递,并且能够包括未示出的其它功能元件,如实时时钟(RTC)、DMA控制、中断支持以及系统管理总线支持。外围设备和输入/输出(I/O)设备能够附接到耦合到ISA总线440的各种接口460(例如,并行接口462、串行接口464、红外(IR)接口466、键盘接口468、鼠标接口470和硬盘(HDD)472)。可替换地,超级I/O控制器(未示出)能够附接到ISA总线440以容纳许多I/O设备。本领域技术人员将意识到,特定的I/O设备能够用于测量功率使用和/或调整计算机处理器系统的指令分派,在该计算机处理器系统中采用了功率管理方法。
BIOS 480耦合到ISA总线440,并且并入了必要的用于各种低级别系统功能和系统引导功能的处理器可执行的代码。BIOS 480能够存储在任何计算机可读的介质中,包括磁存储介质、光存储介质、快闪存储器、随机存取存储器、只读存储器和转发对指令编码的信号(例如来自网络的信号)的通信介质。为了将信息处理系统401附接到另一个计算机系统以在网络上复制文件,LAN卡430耦合到PCI总线425和PCI至ISA桥435。类似地,为了将计算机系统401连接到ISP以使用电话线连接连接到因特网,调制解调器475连接到串行端口464和PCI至ISA桥435。
尽管在图4中描述的计算机系统能够执行在此描述的本发明,但是该计算机系统仅仅是计算机系统的一个示例。本领域技术人员将意识到,许多其它计算机系统设计能够执行在此描述的本发明。
本发明的优选实现之一是应用程序,即在代码模块中的一组指令(程序代码),该代码模块可以例如驻留在计算机的随机存取存储器中。直到由计算机请求,该组指令可以存储在另一个计算机存储器中,例如在硬盘驱动器上或在可移除的存储体如光盘(例如用在CD ROM中)或软盘(例如用在软盘驱动器)中,或者经由因特网或其它计算机网络下载。因此,本发明可以实现为在计算机可读的介质上存储的计算机程序,并且由数字处理装置可执行以执行操作来显示数据。此外,尽管描述的各种方法通常在由软件选择性启动或重新配置的通用计算机中实现,然而本领域普通技术人员也将认识到,这样的方法可以以硬件、以固件或以构成来执行要求的方法步骤的专用装置实现。
尽管在此公开的本发明的实施例目前认为是优选的,但是,能够进行各种改变和修改,而不偏离本发明的精神和范围。本发明的范围在权利要求中指示,并且落入等效的含义和范围的所有的改变意图在于被包括在其中。

Claims (14)

1.一种用于计算机处理器系统的功率管理的方法,该方法包括:
测量功率使用;
监视用于完成指令的指令执行;
确定用于完成指令的完成指令地址;
确定用于完成指令的测量的功率使用;以及
将与测量的功率使用相关联的完成指令地址存储在功率历史表PHT中。
2.如权利要求1所述的方法,其中测量功率使用包括:
确定每个执行单元的接通时间;以及
对全部执行单元的接通时间求和。
3.如权利要求1所述的方法,其中测量功率使用包括:
确定每个执行单元的接通时间;以及
对通过每个执行单元的部分区域加权的全部执行单元的接通时间求和。
4.如权利要求1所述的方法,还包括按预定间隔重置存储在功率历史表中的测量的功率使用。
5.如权利要求1所述的方法,还包括:
监视用于分派指令的指令分派;
确定用于分派指令的分派指令地址;
从功率历史表PHT确定用于分派指令地址的测量的功率使用;
确定用于分派指令地址的测量的功率使用是否大于或等于功率使用限度;以及
当用于分派指令地址的测量的功率使用超过功率使用限度时,执行功率节约措施。
6.如权利要求5所述的方法,其中从由发送以较慢速度执行的指令和发送在执行的指令之间的中断组成的组中,选择功率节约措施。
7.一种信息处理系统,包括:
处理器;
耦合到所述处理器的存储器,用于存储由数字处理装置可执行的指令,所述数字处理装置用于执行操作以为计算机处理器系统提供功率管理,所述操作包括:
测量功率使用;
监视用于完成指令的指令执行;
确定用于完成指令的指令执行;
确定用于完成指令的测量的功率使用;以及
将与测量的功率使用相关联的完成指令地址存储在功率历史表PHT中。
8.如权利要求7所述的系统,其中测量功率使用包括:
确定每个时钟选通区域的接通时间;以及
对全部时钟选通区域的接通时间求和。
9.如权利要求7所述的系统,所述操作还包括按预定间隔重置存储在功率历史表中的测量的功率使用。
10.如权利要求7所述的系统,所述操作还包括:
监视用于分派指令的指令分派;
确定用于分派指令的分派指令地址;
从功率历史表PHT确定用于分派指令地址的测量的功率使用;
确定用于分派指令地址的测量的功率使用是否大于或等于功率使用限度;以及
当用于分派指令地址的测量的功率使用超过功率使用限度时,执行功率节约措施。
11.如权利要求10所述的系统,其中从由发送以较慢速度执行的指令和发送在执行的指令之间的中断组成的组中,选择功率节约措施。
12.一种具有功率管理的计算机处理器系统,包括:
指令提取控制单元,所述指令提取控制单元具有功率历史表PHT;指令分派控制单元;
指令执行单元,所述指令执行单元具有功率控制单元;以及程序状态和数据单元;
其中指令分派控制单元将指令从指令提取控制单元分派到指令执行单元用于执行,所述功率控制单元监视用于测量的功率使用的指令的执行,并且所述程序状态和数据单元监视用于完成指令地址的指令执行,所述测量的功率使用存储在与完成指令地址相关联的功率历史表PHT中。
13.如权利要求12所述的系统,其中所述指令提取控制单元具有分支历史表BHT,并且所述指令提取控制单元监视用于分支历史的指令的执行,所述分支历史存储在与完成指令地址相关联的分支历史表BHT中。
14.如权利要求13所述的系统,其中所述功率历史表PHT和分支历史表BHT是单个表格。
CN2007101496288A 2006-10-19 2007-09-10 用于计算机处理器系统的功率管理的系统和方法 Expired - Fee Related CN101165635B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/551,007 2006-10-19
US11/551,007 US7673160B2 (en) 2006-10-19 2006-10-19 System and method of power management for computer processor systems

Publications (2)

Publication Number Publication Date
CN101165635A true CN101165635A (zh) 2008-04-23
CN101165635B CN101165635B (zh) 2010-12-01

Family

ID=39319464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101496288A Expired - Fee Related CN101165635B (zh) 2006-10-19 2007-09-10 用于计算机处理器系统的功率管理的系统和方法

Country Status (4)

Country Link
US (1) US7673160B2 (zh)
JP (1) JP5164096B2 (zh)
KR (1) KR101020008B1 (zh)
CN (1) CN101165635B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786152A (zh) * 2014-12-26 2016-07-20 联想(北京)有限公司 一种控制方法及电子设备
CN107430422A (zh) * 2015-04-15 2017-12-01 高通股份有限公司 在基于处理器的系统中将功率轨选择性耦合到存储器域
US10684671B2 (en) 2016-05-27 2020-06-16 Qualcomm Incorporated Adaptively controlling drive strength of multiplexed power from supply power rails in a power multiplexing system to a powered circuit

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5243304B2 (ja) 2008-04-10 2013-07-24 株式会社ニフコ 物品固定具
US8010824B2 (en) * 2008-04-11 2011-08-30 Advanced Micro Devices , Inc. Sampling chip activity for real time power estimation
US8245065B2 (en) * 2009-03-04 2012-08-14 International Business Machines Corporation Power gating processor execution units when number of instructions issued per cycle falls below threshold and are independent until instruction queue is full
US8365175B2 (en) * 2009-03-10 2013-01-29 International Business Machines Corporation Power management using dynamic application scheduling
US8442786B2 (en) 2010-06-02 2013-05-14 Advanced Micro Devices, Inc. Flexible power reporting in a computing system
US8504854B2 (en) 2010-06-21 2013-08-06 Advanced Micro Devices, Inc. Managing multiple operating points for stable virtual frequencies
US8510582B2 (en) 2010-07-21 2013-08-13 Advanced Micro Devices, Inc. Managing current and power in a computing system
US8555095B2 (en) 2010-07-26 2013-10-08 Apple Inc. Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption
US8756442B2 (en) * 2010-12-16 2014-06-17 Advanced Micro Devices, Inc. System for processor power limit management
US8806254B2 (en) * 2011-02-01 2014-08-12 Dell Products L.P. System and method for creating and dynamically maintaining system power inventories
US9069555B2 (en) * 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8650428B2 (en) 2011-07-19 2014-02-11 Ati Technologies Ulc Dynamic weight calculation in a digital power estimation and management system
US8810584B2 (en) * 2011-09-13 2014-08-19 Nvidia Corporation Smart power management in graphics processing unit (GPU) based cluster computing during predictably occurring idle time
US8904208B2 (en) * 2011-11-04 2014-12-02 International Business Machines Corporation Run-time task-level dynamic energy management
US8862909B2 (en) 2011-12-02 2014-10-14 Advanced Micro Devices, Inc. System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller
US8924758B2 (en) 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
CN102902346B (zh) * 2012-09-27 2015-07-08 中国科学院声学研究所 降低指令高速缓冲存储器功耗的方法及装置
JP2015097080A (ja) * 2013-10-08 2015-05-21 株式会社東芝 画像形成装置の管理装置及び管理プログラム
US20150220128A1 (en) * 2014-02-04 2015-08-06 Infineon Technologies Ag Method and Apparatus for Use in a Data Processing System
US9847662B2 (en) 2014-10-27 2017-12-19 Sandisk Technologies Llc Voltage slew rate throttling for reduction of anomalous charging current
US9916087B2 (en) 2014-10-27 2018-03-13 Sandisk Technologies Llc Method and system for throttling bandwidth based on temperature
US9880605B2 (en) * 2014-10-27 2018-01-30 Sandisk Technologies Llc Method and system for throttling power consumption
CN104461395A (zh) * 2014-12-15 2015-03-25 长安大学 一种新型计算机存储系统及计算机系统
US11836031B2 (en) 2020-11-10 2023-12-05 Advanced Micro Devices, Inc. Application override of power estimation mechanism

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3058986B2 (ja) * 1992-04-02 2000-07-04 ダイヤセミコンシステムズ株式会社 コンピュータシステムの節電制御装置
JP3618442B2 (ja) * 1996-02-08 2005-02-09 株式会社東芝 マイクロプロセッサのパワーエスティメータ装置
US5887179A (en) * 1996-06-11 1999-03-23 Motorola, Inc. System power saving means and method
JPH11161692A (ja) * 1997-11-28 1999-06-18 Matsushita Electric Ind Co Ltd 消費電力のシミュレーション方法
JP3573957B2 (ja) 1998-05-20 2004-10-06 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ内のプロセッサの動作速度制御方法及びコンピュータ
JP2000322257A (ja) * 1999-05-10 2000-11-24 Nec Corp 条件分岐命令の投機的実行制御方法
JP3877518B2 (ja) * 2000-12-13 2007-02-07 松下電器産業株式会社 プロセッサの電力制御装置
US6826704B1 (en) * 2001-03-08 2004-11-30 Advanced Micro Devices, Inc. Microprocessor employing a performance throttling mechanism for power management
EP1611498B1 (en) * 2003-03-27 2010-03-10 Nxp B.V. Branch based activity monitoring
CN1202425C (zh) * 2003-04-22 2005-05-18 李学湖 电能管理网设备
US7134028B2 (en) * 2003-05-01 2006-11-07 International Business Machines Corporation Processor with low overhead predictive supply voltage gating for leakage power reduction
JP2006059068A (ja) * 2004-08-19 2006-03-02 Matsushita Electric Ind Co Ltd プロセッサ装置
US7987393B2 (en) * 2005-05-16 2011-07-26 Texas Instruments Incorporated Determining operating context of an executed instruction

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786152A (zh) * 2014-12-26 2016-07-20 联想(北京)有限公司 一种控制方法及电子设备
CN105786152B (zh) * 2014-12-26 2019-03-29 联想(北京)有限公司 一种控制方法及电子设备
CN107430422A (zh) * 2015-04-15 2017-12-01 高通股份有限公司 在基于处理器的系统中将功率轨选择性耦合到存储器域
CN107430422B (zh) * 2015-04-15 2020-06-23 高通股份有限公司 在基于处理器的系统中将功率轨选择性耦合到存储器域
US10684671B2 (en) 2016-05-27 2020-06-16 Qualcomm Incorporated Adaptively controlling drive strength of multiplexed power from supply power rails in a power multiplexing system to a powered circuit

Also Published As

Publication number Publication date
KR20080035461A (ko) 2008-04-23
US20080098242A1 (en) 2008-04-24
US7673160B2 (en) 2010-03-02
CN101165635B (zh) 2010-12-01
JP2008102927A (ja) 2008-05-01
JP5164096B2 (ja) 2013-03-13
KR101020008B1 (ko) 2011-03-09

Similar Documents

Publication Publication Date Title
CN101165635B (zh) 用于计算机处理器系统的功率管理的系统和方法
CN102103516B (zh) 基于虚拟cpu的频率和电压调节
US8417973B2 (en) Using a control policy to implement power saving features
JP3933027B2 (ja) ディスクアレイ装置におけるキャッシュメモリ分割管理方式
US6954824B2 (en) Method, system, and program for determining a configuration of a logical array including a plurality of storage devices
US6608729B1 (en) Intelligent power management of disc drives
US7568076B2 (en) Variable store gather window
EP1918809A2 (en) Storage system and method of controlling of feeding power to storage system
CN101311912B (zh) 计算机系统、其控制方法以及系统管理装置
KR20130002046A (ko) 멀티 코어를 포함하는 저장 장치의 전력 관리 방법
JP2006040026A (ja) 負荷分散コンピュータシステム、経路設定プログラム及びその方法
US10860260B2 (en) Method, apparatus and computer program product for managing storage system
JPH0772888B2 (ja) ダイナミックポーリング装置、機械処理方法、コントローラ及びデータ処理システム
CN103179048A (zh) 云数据中心的主机QoS策略变换方法及系统
CN103399781A (zh) 云服务器及其虚拟机管理方法
KR100460009B1 (ko) 이미지 리소스를 로딩하는 방법 및 이미지 리소스 로딩시스템
CN102096606A (zh) 虚拟机迁移方法、装置和系统
KR20170047468A (ko) 메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법
CN108306912A (zh) 虚拟网络功能管理方法及其装置、网络功能虚拟化系统
CN105242955A (zh) 一种虚拟机磁盘输入输出调度方法及系统
US20180217875A1 (en) Data processing system and data processing method
CN101763032A (zh) 调整逻辑单元号的控制器的方法及装置
CN103164171A (zh) 存储装置和命令执行控制方法
US7058758B2 (en) Load balancing to support tape and disk subsystems on shared fibre channel adapters
KR20050122046A (ko) 이미지 리소스를 로딩하는 방법 및 이미지 리소스 로딩시스템

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

Granted publication date: 20101201

Termination date: 20200910

CF01 Termination of patent right due to non-payment of annual fee