CN1981280A - 用于经由资源分配和限制的异构芯片多处理器的装置和方法 - Google Patents

用于经由资源分配和限制的异构芯片多处理器的装置和方法 Download PDF

Info

Publication number
CN1981280A
CN1981280A CNA2005800226045A CN200580022604A CN1981280A CN 1981280 A CN1981280 A CN 1981280A CN A2005800226045 A CNA2005800226045 A CN A2005800226045A CN 200580022604 A CN200580022604 A CN 200580022604A CN 1981280 A CN1981280 A CN 1981280A
Authority
CN
China
Prior art keywords
processor
resource
utilization
register
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
CNA2005800226045A
Other languages
English (en)
Other versions
CN100561461C (zh
Inventor
T·福瑟姆
G·赫里索斯
T·达顿
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1981280A publication Critical patent/CN1981280A/zh
Application granted granted Critical
Publication of CN100561461C publication Critical patent/CN100561461C/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
    • 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
    • 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/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
    • 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/30181Instruction operation extension or modification
    • 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/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 or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

一种用于经由资源限制的异构芯片多处理器(CMP)的方法和装置。在一个实施例中,该方法包括访问资源利用寄存器来标识资源利用策略。一旦被访问,处理器控制器即确保处理器核心以由该资源利用策略指定的方式利用共享资源。在一个实施例中,CMP内的每一处理器核心包括指令发布扼制资源利用寄存器、指令取出扼制资源利用寄存器、以及将其对共享资源的利用限制在最小和最大利用水平之内的其它类似方式。在一个实施例中,资源限制提供了用于向可由硬件或软件控制的CMP的处理器核心分配电流和功率的灵活方式。描述并要求保护了其它实施例。

Description

用于经由资源分配和限制的异构芯片多处理器的装置和方法
发明领域
本发明的一个或多个实施例一般涉及集成电路和计算机***设计领域。更具体而言,本发明的一个或多个实施例涉及一种用于经由资源分配和限制的异构芯片多处理器的方法和装置。
发明背景
芯片多处理器(CMP)在十年之后将会成为主流。当代的CMP是使用“完全复制(copy-exactly)”方法来构建的。在使用完全复制方法构建的CMP中,CMP上的所有CPU是相同的,从而具有ALU、高速缓存和流水线的精确副本。该方法最小化了CMP的设计复杂度,因为只需设计一个CPU,但是它被实例化了多次。
某些软件应用程序对于单个线程的性能是敏感的,而其它则对于多线程或吞吐量性能是敏感的。对于那些对单个线程的性能敏感、且能够从多个资源中获益的应用程序而言,期望向运行该单个线程的CPU分配较多资源,而向运行对性能较不敏感的线程的那些CPU分配较少资源。对于那些对多线程性能敏感的应用程序而言,有益的是在所有线程之间更均匀地共享资源。另外,线程本身可能变化,有时候对单个线程更为性能敏感,而在其它时候却对所有线程都敏感。
正在开发中的CMP也必须处理对于功耗和电流获取的限制。例如,如果所有的CPU都同时完全活动,则电压和频率必须被降低以确保CMP保持在电流和功率限制之下。然而,如果单个CPU是活动的,则电压和频率可被设为最大电压和频率,且向其分配所有可用的资源。如果对每一CPU分配功率和电流,则分配到较多功率的CPU相对于分配到较少功率的其它CPU可更快地运行程序。当增加了智能(或者由软件指示,或者由软件或硬件算法推导)时,CMP可分配功率以改善一个或多个特定的执行线程的性能,或平衡功率以最大化所有线程的吞吐量。由此,芯片功率成为要分配的资源。
附图简述
本发明的各实施例在附图的各个图中作为示例而非限制地示出,在附图中:
图1是示出根据一个实施例的芯片多处理器(CMP)的框图,该CMP包括具有用于将处理器活动限于定量CMP资源的处理器控制器的一个或多个处理器核心。
图2是进一步示出了根据一个实施例的如图1所示的处理器控制器的框图。
图3A是进一步示出根据一个实施例的图1的CMP以及用于提供资源限制的相关联处理器核心的框图。
图3B是进一步示出根据一个实施例的图1的CMP以及用于提供处理器活动扼制的相关联处理器核心的框图。
图4是进一步示出根据一个实施例的图3的处理器核心的框图。
图5是示出根据一个实施例的用于将处理器活动限于定量CMP资源的方法的流程图。
图6是示出根据一个实施例的用于根据处理器活动扼制矢量在至少一个当前程序周期期间限制处理器活动的方法的流程图。
图7是示出根据一个实施例的用于填充CMP的一个或多个活动扼制矢量来从最小活动水平到最大活动水平以1/N程序周期为增量定义处理器活动的方法的流程图。
图8是示出根据一个实施例的用于在受限制的活动处理器周期期间禁用资源逻辑以减少共享资源上的功率/消耗和负荷的方法的流程图。
图9是示出根据一个实施例的用于根据从CMP的处理器核心接收的指令处理计数来改变CMP电压、频率和其它CMP资源的方法的流程图。
图10是示出使用所公开的技术对设计的仿真、模拟和制造的各种设计表示或格式的框图。
详细描述
一种用于经由资源限制的异构芯片多处理器(CMP)的方法和装置。在一个实施例中,该方法包括访问资源利用寄存器以标识资源利用策略。一旦被访问,处理器控制器即确保处理器核心以由资源利用策略指定的方式来利用共享资源。在一个实施例中,CMP内的每一处理器核心包括指令发布扼制资源利用寄存器、指令取出扼制资源利用寄存器、以及将其对共享资源的利用限制在最小和最大利用水平之内的其它类似的方式。在一个实施例中,资源限制提供了一种用于向可由硬件或软件控制的CMP的处理器核心分配电流和功率资源的灵活机制。
***
图1是示出根据一个实施例的芯片多处理器(CMP)100的框图,该CMP100包括具有处理器控制器和至少一个资源利用寄存器130(130-1、……、130-N)的处理器核心(CPU)110(110-1、……、110-N),以在至少一个程序周期期间根据至少一个资源限制或分配来限制CPU110的活动。作为代表,CMP 100包含制造在同一管芯上的多个CPU110、共享高速缓存和其它功能。如图所示,CPU110耦合到互连网络170以访问共享的高速缓存180。在一个实施例中,每一CPU110包括扼制资源利用寄存器130,该寄存器由特许软件写入以将CPU110对受限制资源的利用限制在从最小到最大的利用水平。
在一个实施例中,CPU110经由耦合到互连网络170的***存储器总线192访问***存储器190。在一个实施例中,***存储器190可包括但不限于,包括存储器模块的双侧存储器包(double-sided memory package),该存储器包包括由随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、双数据率(DDR)SDRAM(DDR-SDRAM)、Rambus DRAM(RDRAM)或能够支持每一存储器模块中数据的高速临时存储的任何设备构成的存储器模块。
诸如CMP100等的CMP设计具有在运行程序之间共享的资源,包括:共享的高速缓存、共享的存储器端口、共享的电源等。尽管平均使用可能是没问题的,但程序偶然会进入导致对某些共享资源的过度需求的同步模式,从而导致额外的排队延迟且可能导致活锁或死锁。因此,在一个实施例中,通过限制处理器核心对共享CMP资源的活动,CMP资源限制被用来限制对共享CMP资源的访问,以避免这些问题。
在一个实施例中,资源分配指示共享CMP资源对CMP100的至少一个处理器核心限制每一周期的资源请求数。在另一实施例中,资源分配通过对CMP100的至少一个处理器核心将并发的未完成资源请求数限于固定数目来限制对资源的利用。在又一实施例中,资源分配为CMP100的一个或多个处理器核心保留比CMP100中的一个或多个其它处理器核心更多的灵活划分的资源。
如图1所示,每一CPU110包括活动扼制资源利用寄存器130。在一个实施例中,填充每一活动扼制矢量以将一个或多个程序周期中的处理器核心资源活动水平定义为从关于一处理器资源的最小活动水平到最大活动水平。在一个实施例中,如参考图2所示的,最小活动水平指的是禁用或零活动水平。在一个实施例中,活动扼制矢量130可将处理器活动水平限于每个周期或多个周期中资源利用的百分比。
在一个实施例中,活动扼制矢量130可包括指令发布扼制矢量,以限制每一指令周期中处理器的最大发布速率。例如,指令发布限制可通过在处理器本来会在每一周期发布四条指令时将最大指令发布速率限于每一程序周期两条指令来进行。在一个实施例中,指令的种类可基于所消耗的功率或其它所需的资源来限制。
如在此处所描述的,资源限制可包括资源控制矢量,用于提供资源定量分配,诸如缓冲区限制(例如,将限制运行中存储器引用的次数)、高速缓存路线限制以及其它形式的资源分配。在一个实施例中,共享高速缓存180中的高速缓存路线访问通过高速缓存跟踪哪一核心作出了请求、并根据资源控制矢量182在高速缓存的一个子集中分配所得的数据,而在中央高速缓存级上进行分配。在一个实施例中,对中央的存储器请求队列的分配是根据资源控制矢量来执行的。在一个实施例中,控制器或特许软件通过对每一处理器核心设置最大限制来填充资源控制矢量。在一个实施例中,监视程序针对所分配的资源控制矢量的活动,并且可将资源分配调整到最佳地拟合***的累计程序活动的总曲线图。
在一个实施例中,活动扼制矢量130是如图2所示可由特许软件写入的N位桶式移位寄存器。图2是进一步示出根据一个实施例的如图1所示的处理器控制器120的框图。作为代表,活动扼制矢量130的比特位置132指示是否允许资源在给定周期中使用。在一个实施例中,扼制矢量130的内容在每一周期中移位。在一个实施例中,如图2所示,每一CPU110都包括具有资源启用/禁用逻辑122的处理器控制器120。
作为代表,资源启用/禁用逻辑122访问相应扼制矢量130的当前比特位置132。作为代表,当前比特位置132被置位以指示当前或即将到来的程序周期内相应处理器资源的全可用性。相反,在一个实施例中,当前比特位置132被取消断言(de-assert)以指示当前或即将到来的程序周期内相应处理器资源的不可用性。在一个替换实施例中,活动水平由活动扼制矢量指定为最小活动范围到最大活动范围。如以下所描述的,CPU110可包括多个扼制矢量,它们可控制处理器活动,诸如处理器指令发布、处理器指令取出、浮点(FP)指令发布、整型指令发布、存储器请求发布、或其它类似的CPU活动。
因此,在一个实施例中,在每一程序或时钟周期期间,处理器控制120经由资源启用/禁用逻辑122访问活动扼制矢量130的当前比特位置132,以确定是否允许处理器在相应周期期间访问资源。因此,在一个实施例中,在扼制矢量130中储存N位的值使得例如特许软件能够从最小活动水平到最大活动水平、以1/N程序周期为增量定义CPU110的活动。如此处所使用的,“N”是整数。在一个实施例中,资源启用/禁用逻辑122是使用状态机、微码或集成电路逻辑来实现的。
再次参考图1,在一个实施例中,CMP100包括在每一CPU110中的一个活动扼制矢量130,其中矢量130允许或禁止任何给定周期中的指令发布。在一个实施例中,仅允许CPU110在扼制矢量的第0个比特位置为“1”(置位)时发布指令。如果每一扼制矢量都为16比特,则软件可从无活动到全活动、以1/16为增量来限制每一CPU的指令发布活动。某些处理器资源可能不允许这一全范围,但是可使用扼制矢量来控制某一最小水平和某一最大水平之间的活动水平。
如此处所描述的,由CMP100的组件,诸如CPU11、资源控制器200或其它***组件检测或发布的各种信号可表示高电平有效或低电平有效信号。因此,如此处所描述的,术语“断言”、“正在断言”、“已断言的”、“置位”、“正在置位”、“取消断言”、“已取消断言的”、“正在取消断言”或其它类似的术语可以指数据信号,这些信号是低电平有效或高电平有效信号。因此,当与信号相关联时,这些术语可互换使用以要求或暗示低电平有效或高电平有效信号。
图3A示出了根据一个实施例的具有资源利用寄存器(RUR)130的CMP100。在一个实施例中,RUR130是用于提供受限制资源的利用策略的CSR(映射到受保护I/O地址空间,且可由特许软件写入的配置***寄存器)。作为代表,CPU110将状态信息传递到资源控制器200。在一个实施例中,CPU110的实际发布的处理器指令处理计数(IPC)的快照通过将例如CPU110-1中的计数器在每次CPU110-1发布一指令时递增1、并将计数器溢出传达给功率控制器200来报告。
在一个实施例中,每一CPU110跟踪执行程序的性能特性。该信息被传达给资源控制器200。在一个实施例中,资源控制器200然后可判定通过填充诸如共享高速缓存180的资源控制矢量182等共享CMP资源的资源控制矢量来重新分配资源以改善CMP100的总体性能。这一重新分配在程序正在执行时发生,而不会中断任何服务。例如,如果并行程序正在运行且CPU110中的大多数已达到同步点,而一个或多个仍在执行,则资源控制器200可将资源从先完成者移位到落后者以改善CMP性能。在一个实施例中,功率控制器200可使用状态机、微码或集成电路逻辑来实现。
图3B是示出带有指令发布活动扼制矢量130的CMP100的框图。作为代表,通过将CPU110-1的发布扼制矢量130设为全1,CPU110-1的优先级高于CPU110-2到110-N,而CPU110-2到110-N被限于在每八个周期之一中发布指令来节省功率。在一个实施例中,执行CMP100的CPU110的不平衡使得将高性能的CPU110-1给予对性能要求最严格的线程。结果,CMP100向执行的程序提供并行化的益处,同时避免了工作的一部分被串行化、并成为对由并行执行提供的总体性能改善的限制的常见障碍。
在一个实施例中,可选择一处理器核心来执行资源较不密集型应用程序线程,诸如助手(helper)线程。助手线程是一种新兴技术,其中某些线程在另一线程之前运行,模仿其工作负荷,由此形成了其存储器数据的预取效果,而不完成实际程序的工作。对助手线程的资源要求可能是相当小的,从而使得它适于减小的资源分配从而为主线程节省功率。
图4是进一步示出根据一个实施例的CPU110的微架构的框图,它进一步示出了针对CPU资源的CPU活动扼制。在所示的实施例中,CPU110被配置成实现动态执行。然而,本领域的技术人员可以认识到,CMP100内的CPU110无需实现动态执行来落入此处所描述的实施例的范围之内。如此处所描述的,动态执行指的是使用前端逻辑140来根据程序次序取出下一指令,并准备用于***流水线中后续执行的指令。
作为代表,前端逻辑140包括指令取出单元(IFU)142,该单元取出即将到来的程序指令以供执行,并准备供在***流水线内将来使用的指令。实际上,前端逻辑140的指令发布逻辑向指示指令的执行(实际完成)的执行逻辑116提供了高带宽已解码指令流。因此,前端逻辑140可包括指令取出单元(IFU)142,用于经由总线接口单元(BIU)112从例如共享高速缓存180中取出宏指令。
一旦取出了指令,该指令即被解码成执行单元(EU)118所执行的基本操作,此处称为微操作(uOP)。换言之,IFU142从例如共享高速缓存180中取出宏指令,该宏指令被提供给指令发布逻辑150的指令解码器(ID)152。响应于所接收的宏指令,ID152将该宏指令解码成提供给指令解码器队列(IDQ)154的一个或多个uOP。
在一个实施例中,前端逻辑140包括处理器控制器120,后者包括资源启用/禁用逻辑122。作为代表,处理器控制器120被耦合到一个或多个资源利用寄存器(RUR)130(130-1、……、130-N)。在一个实施例中,资源利用寄存器130-1是指令发布活动扼制矢量130-1,而资源利用寄存器130-N是指令取出活动扼制矢量130-N。作为代表,基于例如指令取出扼制矢量130-N的当前比特位置,处理器控制器120可在其中指令取出扼制矢量130-N的当前比特值被取消断言的程序周期期间禁用指令取出单元142。然而,在其中指令取出扼制矢量130-N的当前比特值被置位的程序周期期间,处理器控制器120允许IFU142根据正常操作条件来运作。一般而言,扼制矢量包括通过对受限制的CMP资源定义最小和最大活动水平来控制不是处于简单的开或关状态的资源的计数器和限制值。
如进一步示出的,在一个实施例中,指令发布扼制矢量130-1也由处理器控制120监控,以使在其中指令发布扼制矢量130-N的当前比特值被取消断言的程序周期期间,处理器控制器120禁用指令发布逻辑150。因此,在这一不活动周期期间,CPU110消耗的功率和电流受到限制,因为OOO核心116以及指令单元118不接收发布的指令,因此减少了CPU110消耗的处理器资源。
在一个实施例中,为了改进的功率定量分配,扼制矢量130能以更精细的粒度限制CPU110的活动。例如,代替每一CPU110一个扼制矢量130,可以有几个扼制矢量。一个扼制矢量控制取出,一个控制浮点(FP)指令发布,一个控制整型指令发布,而一个控制存储器发布。另外,某些工作负荷很少使用FP执行资源。需要选择CMP100的电压和频率点,以解决会导致电流问题或电压突降的活动猝发。由于FP指令是很少见的,因此可设立FP扼制矢量以将最大FP发布速率限于每16个周期1次,而不会对性能产生不利影响。现在可将电压和频率设置得较高而无需担心由于FP活动的猝发而引起的差错。
相反,HPTC(高性能、技术计算)应用程序可能会大量地使用FP单元。通过监视FP单元的实际IPC需求,可由功率控制器200或特许软件响应于应用程序的需求来调整电压和频率点。在一个实施例中,功率控制器200利用这一IPC信息并修改每一CPU110的扼制矢量130以及电压和频率,来对具有分散特性的各种工作负荷最大化性能。
再次参考图4,当不发布指令时,不需要CPU微架构110的功能单元和相关联的逻辑。给定周期中缺少指令发布可通过使用处理器控制器120检查扼制矢量130中的另一(未来)比特位置以在一个或多个所检测到的CPU不活动周期期间禁用时钟门逻辑中的临界路径来提前预料。因此,禁止指令发布导致目标CPU110的动态电流获取和功耗的减小。另外,限制CPU的发布活动并不必定会与发布允许的减少成线性地降低其性能,因为CPU一般不在每一周期中发布指令。现在描述用于执行一个或多个实施例的过程方法。
操作
图5是示出根据一个实施例的在至少一个程序周期期间根据资源利用策略使用至少一个处理器核心的资源利用寄存器来进行资源限制的方法300的流程图。在一个实施例中,资源利用寄存器是例如如参考图1-4所示的芯片多处理器(CMP)的处理器核心(CPU)的活动扼制矢量。在一个实施例中,资源利用策略指定了关于受限制资源的处理器活动,包括例如处理器指令发布、处理器指令取出、浮点(FP)指令发布、整型指令发布、存储器发布或其它类似的处理器活动,以减小一个或多个处理器核心的电流和功耗、以及共享CMP资源上的负荷。
作为代表,在处理框310处,访问活动扼制矢量以标识任何资源限制。在处理框320处,确定该活动扼制矢量是否指示至少一个程序周期期间的资源限制。当指示受限制的处理器活动时,在处理框322处,确定诸如处理器活动水平等资源利用策略。在处理框350处,在至少一个程序周期期间根据资源利用策略将处理器活动限于所确定的处理器活动水平。在处理框360处,对CMP的每一处理器核心并行地重复处理框310-350,直到检测到CMP关闭。
图6是示出根据一个实施例的用于限制图5的处理框322的处理器活动的方法330的流程图。在处理框332处,查询活动扼制矢量的当前比特位置。在处理框334处,利用策略根据活动扼制矢量的当前比特位置的值指定关于在当前程序周期期间启用或禁用受限制资源的处理器活动。在处理框336处,确定活动扼制矢量的当前比特位置是否被取消断言。当扼制矢量的当前比特位置被取消断言时,在处理框338处,禁止处理器在当前程序周期期间执行针对受限制资源的活动。否则,在处理框340处,允许处理器在当前程序周期期间执行资源活动。在一个实施例中,图5和6的方法是对图1所示的CMP100的每一CPU110并行执行的。
图7是示出根据一个实施例的用于根据定义从最小活动水平到最大活动水平的处理器活动的资源利用策略来填充一个或多个活动扼制矢量的方法400的流程图。在处理框410处,由特许软件在处理器活动扼制矢量内写入一N位值以定义诸如以1/N程序周期为增量的处理器活动等资源利用策略。在一个实施例中,对例如参考图1所示的CMP的每一处理器核心并行地执行处理框410。在处理框420处,从每一CMP处理器核心周期性地接收处理器核心指令处理计数(IPC)。在处理框430处,将储存在活动扼制矢量内的N位值改为增加或减少处理器活动。在一个实施例中,资源控制器可填充共享CMP资源的资源控制矢量,以将每一周期的处理器核心请求限于某一定义值。
图8是示出根据一个实施例的用于根据即将到来的处理器核心资源不活动来启用/禁用CMP的CPU的功能单元和相关联逻辑的方法440的流程图。在处理框442处,选择CMP的CPU。一旦被选中,则在处理框444处,即检查所选CPU的扼制矢量来标识一个或多个即将到来的资源不活动程序周期。一旦被检测到,在处理框446处,即在所标识的资源不活动程序周期期间禁用该资源的功能单元和相关联逻辑以减少CMP的功率和电流消耗。在处理框448处,对每一CMP CPU重复处理框442-446。
图9是示出根据一个实施例的用于根据所确定的CMP处理器核心的工作负荷特性来改变CMP的交流电压和频率要求的方法450的流程图。在处理框452处,根据从每一CMP处理器核心所接收到的IPC为CMP处理器核心确定工作负荷特性。一旦被确定,在处理框454处,即可如处理框452的工作特性所确定地改变CMP的电压和频率要求。
因此,在一个实施例中,软件或硬件控制器可利用该工作负荷信息来修改每一CPU的资源利用寄存器以及电压和频率,以对具有分散特性的各种工作负荷最大化性能。在一个实施例中,软件可读取IPC,或由硬件收集的、关于运行在每一处理器核心上的每一线程的工作负荷资源利用特性的其它反馈。可更新资源利用寄存器来改变资源利用,以更好地匹配工作负荷特性,并可改变电压和电源来解决新的资源利用寄存器设置。
在一个实施例中,活动扼制将功率移至它最有用的地方。但是其它资源也通过这一技术来定量分配,尽管是间接的。通过扼制CMP的发布速率,CPU的负荷在***资源上受到控制,这些***资源然后可以自由地服务其它请求。这对于控制对诸如三级高速缓存、***锁、主存储器、处理器间链接和I/O(输入/输出)等共享资源的访问尤为重要。
图10是示出用于对使用所公开技术的设计的模拟、仿真和制造的各种表示或格式的框图。表示设计的数据可用多种方式来表示该设计。首先,如在模拟中有用的,硬件可使用硬件描述语言或另一功能描述语言来表示,该描述语言本质上提供了关于期望所设计的硬件如何执行的计算机化模型。硬件模型510可储存在诸如计算机存储器等存储介质500中,使得该模型可使用模拟软件520来模拟,该模拟软件向硬件模型应用特定的测试套件530以确定它实际上是否如所预期地运作。在某些实施例中,模拟软件不被记录、捕捉或包含在介质中。
在设计的任何表示中,数据可被储存在任何形式的机器可读介质中。被调制或另外生成来传输这一信息的光波或电波560、存储器550、或诸如盘等磁或光存储540可以是机器可读介质。这些介质中的任一个可承载设计信息。术语“承载”(例如,承载信息的机器可读介质)因而覆盖了储存在存储设备上的信息或已被编码成载波或调制到载波上的信息。描述设计或设计细节的该组比特(当包含在诸如载波或存储介质等机器可读介质中时)是可被封入其本身或密封在其本身之外,或可由其他人使用来进行进一步设计或制造的制品。
替换实施例
在以上描述中,陈述了众多具体细节,诸如逻辑实现、信号和总线的大小和名称、***组件的类型和相互关系、以及逻辑分区/集成选择,以提供更全面的理解。然而,本领域的技术人员可以理解,本发明可以不用这些具体细节来实施。在其它情况下,未详细示出控制结构和门级电路以免本发明变得模糊。本领域的技术人员利用所包括的描述能够在无需过多实验的情况下实现适当的逻辑或软件。
在以上描述中,使用了某些术语来描述本发明的特征。例如,术语“逻辑”表示被配置成执行一个或多个功能的硬件和/或软件。例如,“硬件”的示例包括,但不限于集成电路、有限状态机或甚至是组合逻辑。集成电路可采用诸如微处理器等处理器、专用集成电路、数字信号处理器、微控制器等的形式。
“软件”的示例包括采用应用程序、小程序、例程或甚至是一系列指令的形式的可执行码。在一个实施例中,制品可包括其上储存有软件的机器或计算机可读介质,该软件可用于对计算机(或其它电子设备)编程以执行根据一个实施例的处理。计算机或机器可读介质包括但不限于:可编程电子电路、包括易失性存储器(例如,随机存取存储器等)和/或非易失性存储器(例如,任何类型的只读存储器“ROM”、闪存)的半导体存储器件、软盘、光盘(例如,紧致盘或数字视频盘“DVD”)、硬盘驱动器、磁带等。
可以理解,对于其它实施例,可使用不同的***配置。例如,尽管***100包括芯片多处理器***,但对其它实施例,包括至少一个处理器核心的***可从各实施例的处理器矢量扼制中获益。对其它实施例可使用另外一些不同类型的***或不同类型的计算机***,诸如服务器、工作站、台式计算机***、游戏***、嵌入式计算机***、刀片服务器等。
有了这些公开的实施例和最佳方式,可对所公开的实施例作出各种修改和变化,同时仍落入所附权利要求书所定义的本发明的实施例的范围之内。

Claims (30)

1.一种方法,包括:
(a)访问处理器资源利用寄存器以确定资源利用策略;以及
(b)根据所确定的资源利用策略限制针对受限制资源的处理器利用。
2.如权利要求1所述的方法,其特征在于,所述资源利用寄存器包括:
比特矢量,其中每一比特表示其中针对所述受限制资源的处理器利用是允许和禁止之一的周期。
3.如权利要求2所述的方法,其特征在于,如果所述资源利用寄存器的当前比特位置被取消断言,则在当前程序周期期间禁止所述处理器利用所述受限制资源。
4.如权利要求1所述的方法,其特征在于,所述受限制资源是处理器活动、存储器引用和共享高速缓冲存储器中的一个。
5.如权利要求4所述的方法,其特征在于,所述处理器活动是处理器指令发布、处理器指令取出和处理器存储器请求发布中的一个。
6.如权利要求1所述的方法,其特征在于,还包括:
根据资源控制矢量,对芯片多处理器的至少一个核心处理器限制共享资源,以限制每一周期接受的资源请求数。
7.如权利要求2所述的方法,其特征在于,还包括:
(c)根据所述资源利用寄存器内储存的N位值,移位所述资源利用寄存器以移入一相邻比特值作为当前比特位置的值,其中N是整数;以及
对每一程序周期重复(a)-(c)。
8.如权利要求1所述的方法,其特征在于,在访问之前,所述方法还包括:
由特许软件在所述资源利用寄存器内写入一N位值,来从最小活动水平到最大活动水平,以1/N程序周期为增量,为针对所述受限制资源的处理器利用定义资源利用策略,其中N是整数。
9.如权利要求1所述的方法,其特征在于,限制所述处理器利用是根据所确定的资源利用策略,在逐个周期的基础上执行的。
10.如权利要求1所述的方法,其特征在于,还包括:
从所述处理器周期性地接收指令处理计数;以及
响应于所述处理计数,更新所述资源限制寄存器以将所述资源利用策略调整为指定处理器活动的增加或减少。
11.一种方法,包括:
填充芯片多处理器的至少一个处理器核心的资源利用寄存器,以从关于受限制资源的最小利用水平到最大利用水平定义资源利用策略;
从所述处理器核心周期性地接收指令处理计数;以及
响应于所述处理计数,更新所述资源利用以调整所述资源利用策略。
12.如权利要求11所述的方法,其特征在于,还包括:
填充芯片多处理器资源的资源控制寄存器,以限制每一周期从所述芯片多处理器的至少一个处理器核心接受的请求数。
13.如权利要求11所述的方法,其特征在于,所述填充还包括:
将一值写入被分配来执行应用程序的对性能要求最严格的线程的处理器核心的活动扼制矢量中,以指示所述处理器核心根据定义最大处理器核心活动水平的资源利用策略来操作。
14.如权利要求11所述的方法,其特征在于,所述更新还包括:
根据接收自每一处理器核心的指令处理计数确定的工作负荷特性修改至少一个处理器核心的活动扼制矢量,以改善所述芯片多处理器的性能。
15.如权利要求11所述的方法,其特征在于,还包括:
根据由所接收的指令处理计数确定的工作负荷特性改变所述芯片多处理器的电压和频率要求,以改善所述芯片多处理器的性能。
16.一种包括其上储存有指令的机器可读介质的制品,所述指令可用于对***编程以执行一种方法,所述方法包括:
填充芯片多处理器的至少一个处理器核心的资源利用寄存器,以从关于受限制资源的最小利用水平到最大利用水平定义资源利用策略;
从所述处理器核心周期性地接收指令处理计数;以及
响应于所述处理计数更新所述资源利用以调整所述资源利用策略。
17.如权利要求16所述的制品,其特征在于,还包括:
填充芯片多处理器资源的资源控制寄存器,以限制每一周期从所述芯片多处理器的至少一个处理器核心接受的请求数。
18.如权利要求16所述的制品,其特征在于,所述填充还包括:
将一值写入被分配来执行应用程序的对性能要求最严格的线程的处理器核心的活动扼制矢量中,以指示所述处理器核心根据定义最大处理器核心活动水平的资源利用策略来操作。
19.如权利要求16所述的制品,其特征在于,所述更新还包括:
根据从接收自每一处理器核心的指令处理计数确定的工作负荷特性修改至少一个处理器核心的活动扼制矢量,以改善所述芯片多处理器的性能。
20.如权利要求16所述的制品,其特征在于,还包括:
根据由所接收的指令处理计数确定的工作负荷性能改变所述芯片多处理器的电压和频率要求,以改善所述芯片多处理器的性能。
21.一种装置,包括:
至少一个处理器核心,所述处理器核心包括资源利用寄存器和处理器控制器,所述处理器控制器访问所述资源利用寄存器来确定资源利用策略,并根据所确定的资源利用策略限制针对受限制资源的处理器利用。
22.如权利要求21所述的装置,其特征在于,所述资源利用寄存器还包括:
指令发布扼制矢量,用于指示所述处理器控制器根据每一程序周期的最大指令发布速率限制至少一个程序周期期间的处理器指令发布。
23.如权利要求22所述的装置,其特征在于,所述资源利用寄存器还包括:
浮点指令发布扼制矢量,用于指示所述处理器控制器根据每一程序周期的最大指令取出速率限制至少一个程序周期期间的处理器指令发布。
24.如权利要求21所述的装置,其特征在于,所述资源利用寄存器包括:
N位桶式移位寄存器,用于从最小利用水平到最大利用水平,以1/N程序周期为增量,为所述受限制资源不活动的处理器核心利用定义所述资源利用策略。
25.如权利要求21所述的装置,其特征在于,还包括:
耦合到所述处理器核心的资源控制器,所述资源控制器从所述处理器核心接收指令处理计数,并将所述指令处理计数记录在至少一个软件可见寄存器中。
26.一种***,包括:
耦合到互连网络的***存储器;
包括耦合到所述互连网络的多个处理器核心的芯片多处理器,每一处理器核心包括至少一个资源利用寄存器和耦合到所述资源利用寄存器的处理器控制器,所述处理器控制器访问所述资源利用寄存器来确定资源利用策略,并在对所述资源限制寄存器的访问指示至少一个周期期间的资源限制时根据所确定的资源利用策略限制针对受限制资源的处理器核心利用;以及
耦合到所述多个处理器核心的功率控制器,所述功率控制器从每一处理器核心接收指令处理计数,并将从所述处理器核心接收的指令处理计数储存在至少一个软件可见寄存器内。
27.如权利要求26所述的***,其特征在于,所述功率控制器根据从接收自每一处理器核心的指令处理计数确定的工作负荷特性修改所述处理器核心的资源利用寄存器,以改善所述芯片多处理器的性能。
28.如权利要求26所述的***,其特征在于,所述资源控制器根据由所接收的指令处理计数确定的工作负荷特性改变所述芯片多处理器的电压和频率要求,以改善所述芯片多处理器的性能。
29.如权利要求26所述的***,其特征在于,所述资源控制器填充共享的芯片多处理器资源的资源控制寄存器,以限制每一周期对所述芯片多处理器的至少一个处理器核心接受的请求数。
30.如权利要求26所述的***,其特征在于,所述资源利用寄存器还包括:
指令发布扼制矢量,用于指示处理器控制器在至少一个程序周期期间禁止处理器指令发布;以及
指令取出扼制矢量,用于指示所述处理器控制器在至少一个程序周期期间禁止处理器指令取出。
CNB2005800226045A 2004-07-02 2005-06-25 用于经由资源分配和限制的异构芯片多处理器的装置和方法 Expired - Fee Related CN100561461C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/884,359 2004-07-02
US10/884,359 US8190863B2 (en) 2004-07-02 2004-07-02 Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction

Publications (2)

Publication Number Publication Date
CN1981280A true CN1981280A (zh) 2007-06-13
CN100561461C CN100561461C (zh) 2009-11-18

Family

ID=34981954

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800226045A Expired - Fee Related CN100561461C (zh) 2004-07-02 2005-06-25 用于经由资源分配和限制的异构芯片多处理器的装置和方法

Country Status (5)

Country Link
US (2) US8190863B2 (zh)
JP (1) JP4543081B2 (zh)
CN (1) CN100561461C (zh)
TW (1) TW200723111A (zh)
WO (1) WO2006014254A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104798004A (zh) * 2012-12-21 2015-07-22 英特尔公司 根据功率平衡控制偏置,跨多个处理器域的动态功率平衡
CN105027075A (zh) * 2012-12-28 2015-11-04 英特尔公司 具有共享前端单元的处理核
CN108170471A (zh) * 2013-07-31 2018-06-15 想象力科技有限公司 基于类型的优先化指令
US10083037B2 (en) 2012-12-28 2018-09-25 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10255077B2 (en) 2012-12-28 2019-04-09 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US10346195B2 (en) 2012-12-29 2019-07-09 Intel Corporation Apparatus and method for invocation of a multi threaded accelerator
CN110687997A (zh) * 2019-09-06 2020-01-14 苏州浪潮智能科技有限公司 一种动态调整fpga的功耗的方法及装置

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064745A1 (en) * 2002-09-26 2004-04-01 Sudarshan Kadambi Method and apparatus for controlling the rate at which instructions are executed by a microprocessor system
US8020141B2 (en) * 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
JP4082706B2 (ja) * 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
US8849968B2 (en) * 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US7490254B2 (en) * 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US7484131B2 (en) * 2005-09-13 2009-01-27 International Business Machines Corporation System and method for recovering from a hang condition in a data processing system
US7577875B2 (en) * 2005-09-14 2009-08-18 Microsoft Corporation Statistical analysis of sampled profile data in the identification of significant software test performance regressions
US8074231B2 (en) 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US20070094495A1 (en) * 2005-10-26 2007-04-26 Microsoft Corporation Statically Verifiable Inter-Process-Communicative Isolated Processes
US8032898B2 (en) * 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
US20080244507A1 (en) * 2007-03-30 2008-10-02 Microsoft Corporation Homogeneous Programming For Heterogeneous Multiprocessor Systems
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US7818592B2 (en) * 2007-04-18 2010-10-19 Globalfoundries Inc. Token based power control mechanism
US7992017B2 (en) 2007-09-11 2011-08-02 Intel Corporation Methods and apparatuses for reducing step loads of processors
US8245232B2 (en) * 2007-11-27 2012-08-14 Microsoft Corporation Software-configurable and stall-time fair memory access scheduling mechanism for shared memory systems
US8886918B2 (en) * 2007-11-28 2014-11-11 International Business Machines Corporation Dynamic instruction execution based on transaction priority tagging
US20090138683A1 (en) * 2007-11-28 2009-05-28 Capps Jr Louis B Dynamic instruction execution using distributed transaction priority registers
WO2009136628A1 (ja) * 2008-05-08 2009-11-12 日本電気株式会社 情報処理システムと方法およびプログラム
US8589875B2 (en) * 2009-06-16 2013-11-19 International Business Machines Corporation Computing system with compile farm
US8578026B2 (en) * 2009-06-22 2013-11-05 Citrix Systems, Inc. Systems and methods for handling limit parameters for a multi-core system
US9098274B2 (en) * 2009-12-03 2015-08-04 Intel Corporation Methods and apparatuses to improve turbo performance for events handling
US20110153984A1 (en) * 2009-12-21 2011-06-23 Andrew Wolfe Dynamic voltage change for multi-core processing
CN103329064B (zh) * 2011-01-20 2016-08-10 日本电气株式会社 控制***
US8930714B2 (en) 2011-07-19 2015-01-06 Elwha Llc Encrypted memory
US8955111B2 (en) 2011-09-24 2015-02-10 Elwha Llc Instruction set adapted for security risk monitoring
US9465657B2 (en) * 2011-07-19 2016-10-11 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9098608B2 (en) * 2011-10-28 2015-08-04 Elwha Llc Processor configured to allocate resources using an entitlement vector
US9558034B2 (en) 2011-07-19 2017-01-31 Elwha Llc Entitlement vector for managing resource allocation
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US8813085B2 (en) * 2011-07-19 2014-08-19 Elwha Llc Scheduling threads based on priority utilizing entitlement vectors, weight and usage level
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US9471373B2 (en) 2011-09-24 2016-10-18 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9170843B2 (en) * 2011-09-24 2015-10-27 Elwha Llc Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement
US9575903B2 (en) 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9460290B2 (en) 2011-07-19 2016-10-04 Elwha Llc Conditional security response using taint vector monitoring
US9443085B2 (en) 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US9098309B2 (en) 2011-09-23 2015-08-04 Qualcomm Incorporated Power consumption optimized translation of object code partitioned for hardware component based on identified operations
JP5877348B2 (ja) * 2011-09-28 2016-03-08 パナソニックIpマネジメント株式会社 メモリ制御システム及び電力制御方法
US9009451B2 (en) * 2011-10-31 2015-04-14 Apple Inc. Instruction type issue throttling upon reaching threshold by adjusting counter increment amount for issued cycle and decrement amount for not issued cycle
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US9875105B2 (en) 2012-05-03 2018-01-23 Nvidia Corporation Checkpointed buffer for re-entry from runahead
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US9575806B2 (en) * 2012-06-29 2017-02-21 Intel Corporation Monitoring accesses of a thread to multiple memory controllers and selecting a thread processor for the thread based on the monitoring
US9645929B2 (en) 2012-09-14 2017-05-09 Nvidia Corporation Speculative permission acquisition for shared memory
US10001996B2 (en) 2012-10-26 2018-06-19 Nvidia Corporation Selective poisoning of data during runahead
US9740553B2 (en) 2012-11-14 2017-08-22 Nvidia Corporation Managing potentially invalid results during runahead
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US9569214B2 (en) 2012-12-27 2017-02-14 Nvidia Corporation Execution pipeline data forwarding
US9542193B2 (en) 2012-12-28 2017-01-10 Intel Corporation Memory address collision detection of ordered parallel threads with bloom filters
US9547602B2 (en) 2013-03-14 2017-01-17 Nvidia Corporation Translation lookaside buffer entry systems and methods
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US9244684B2 (en) * 2013-03-15 2016-01-26 Intel Corporation Limited range vector memory access instructions, processors, methods, and systems
US9606842B2 (en) * 2013-05-08 2017-03-28 National Science Foundation Resource and core scaling for improving performance of power-constrained multi-core processors
US9292362B2 (en) * 2013-06-25 2016-03-22 Intel Corporation Method and apparatus to protect a processor against excessive power usage
US9582280B2 (en) 2013-07-18 2017-02-28 Nvidia Corporation Branching to alternate code based on runahead determination
CN103543986B (zh) * 2013-10-30 2017-04-05 曙光信息产业(北京)有限公司 Cfx的计算任务的实现方法和装置
US9436786B1 (en) * 2014-02-12 2016-09-06 Xilinx, Inc. Method and circuits for superclocking
US10409350B2 (en) 2014-04-04 2019-09-10 Empire Technology Development Llc Instruction optimization using voltage-based functional performance variation
US9817465B2 (en) 2014-06-27 2017-11-14 Microsoft Technology Licensing, Llc Low latency computer system power reduction
US10877530B2 (en) * 2014-12-23 2020-12-29 Intel Corporation Apparatus and method to provide a thermal parameter report for a multi-chip package
US10339295B2 (en) 2016-07-28 2019-07-02 Microsoft Technology Licensing, Llc Tracking work between system entities
US10379904B2 (en) * 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
US10628228B1 (en) * 2017-08-28 2020-04-21 Amazon Technologies, Inc. Tiered usage limits across compute resource partitions
US11030007B2 (en) * 2017-12-19 2021-06-08 Western Digital Technologies, Inc Multi-constraint dynamic resource manager
US11281501B2 (en) * 2018-04-04 2022-03-22 Micron Technology, Inc. Determination of workload distribution across processors in a memory system
EP3608779B1 (en) * 2018-08-09 2024-04-03 Bayerische Motoren Werke Aktiengesellschaft Method for processing a predetermined computing task by means of a distributed, vehicle-based computing system as well as computing system, server device, and motor vehicle

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0432359A3 (en) * 1989-11-21 1993-03-17 International Business Machines Corporation Method and apparatus for performing memory protection operations in a parallel processor system
US5708788A (en) * 1995-03-03 1998-01-13 Fujitsu, Ltd. Method for adjusting fetch program counter in response to the number of instructions fetched and issued
US5896528A (en) * 1995-03-03 1999-04-20 Fujitsu Limited Superscalar processor with multiple register windows and speculative return address generation
US5809268A (en) * 1995-06-29 1998-09-15 International Business Machines Corporation Method and system for tracking resource allocation within a processor
US5719800A (en) 1995-06-30 1998-02-17 Intel Corporation Performance throttling to reduce IC power consumption
US5996092A (en) * 1996-12-05 1999-11-30 International Business Machines Corporation System and method for tracing program execution within a processor before and after a triggering event
US6237073B1 (en) * 1997-11-26 2001-05-22 Compaq Computer Corporation Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information
RU2131145C1 (ru) * 1998-06-16 1999-05-27 Закрытое акционерное общество Научно-технический центр "Модуль" Нейропроцессор, устройство для вычисления функций насыщения, вычислительное устройство и сумматор
US6304978B1 (en) 1998-11-24 2001-10-16 Intel Corporation Method and apparatus for control of the rate of change of current consumption of an electronic component
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US6636949B2 (en) * 2000-06-10 2003-10-21 Hewlett-Packard Development Company, L.P. System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing
EP1182552A3 (en) 2000-08-21 2003-10-01 Texas Instruments France Dynamic hardware configuration for energy management systems using task attributes
US6662278B1 (en) 2000-09-22 2003-12-09 Intel Corporation Adaptive throttling of memory acceses, such as throttling RDRAM accesses in a real-time system
US7174194B2 (en) * 2000-10-24 2007-02-06 Texas Instruments Incorporated Temperature field controlled scheduling for processing systems
US7111178B2 (en) * 2001-09-28 2006-09-19 Intel Corporation Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system
US7281140B2 (en) * 2001-12-28 2007-10-09 Intel Corporation Digital throttle for multiple operating points
US6931559B2 (en) * 2001-12-28 2005-08-16 Intel Corporation Multiple mode power throttle mechanism
US7036032B2 (en) * 2002-01-04 2006-04-25 Ati Technologies, Inc. System for reduced power consumption by phase locked loop and method thereof
US7076681B2 (en) * 2002-07-02 2006-07-11 International Business Machines Corporation Processor with demand-driven clock throttling power reduction
US7089443B2 (en) * 2003-01-23 2006-08-08 University Of Rochester Multiple clock domain microprocessor
US7174469B2 (en) * 2003-09-30 2007-02-06 International Business Machines Corporation Processor power and energy management

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104798004A (zh) * 2012-12-21 2015-07-22 英特尔公司 根据功率平衡控制偏置,跨多个处理器域的动态功率平衡
CN104798004B (zh) * 2012-12-21 2018-01-19 英特尔公司 根据功率平衡控制偏置,跨多个处理器域的动态功率平衡
CN105027075A (zh) * 2012-12-28 2015-11-04 英特尔公司 具有共享前端单元的处理核
US10664284B2 (en) 2012-12-28 2020-05-26 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US10083037B2 (en) 2012-12-28 2018-09-25 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10089113B2 (en) 2012-12-28 2018-10-02 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10140129B2 (en) 2012-12-28 2018-11-27 Intel Corporation Processing core having shared front end unit
CN105027075B (zh) * 2012-12-28 2019-01-29 英特尔公司 具有共享前端单元的处理核
US10255077B2 (en) 2012-12-28 2019-04-09 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US10346195B2 (en) 2012-12-29 2019-07-09 Intel Corporation Apparatus and method for invocation of a multi threaded accelerator
CN108170471A (zh) * 2013-07-31 2018-06-15 想象力科技有限公司 基于类型的优先化指令
CN108170471B (zh) * 2013-07-31 2022-03-29 美普思技术有限责任公司 基于类型的优先化指令
CN110687997A (zh) * 2019-09-06 2020-01-14 苏州浪潮智能科技有限公司 一种动态调整fpga的功耗的方法及装置

Also Published As

Publication number Publication date
TW200723111A (en) 2007-06-16
WO2006014254A1 (en) 2006-02-09
US20120239875A1 (en) 2012-09-20
US8924690B2 (en) 2014-12-30
JP4543081B2 (ja) 2010-09-15
US20060005082A1 (en) 2006-01-05
CN100561461C (zh) 2009-11-18
JP2008505396A (ja) 2008-02-21
US8190863B2 (en) 2012-05-29

Similar Documents

Publication Publication Date Title
CN100561461C (zh) 用于经由资源分配和限制的异构芯片多处理器的装置和方法
KR101629155B1 (ko) 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용
EP3155521B1 (en) Systems and methods of managing processor device power consumption
Mutlu et al. Research problems and opportunities in memory systems
US8489904B2 (en) Allocating computing system power levels responsive to service level agreements
JP5688462B2 (ja) 処理ノードの動的パフォーマンス制御
KR101476568B1 (ko) 코어 마다의 전압 및 주파수 제어 제공
US8307370B2 (en) Apparatus and method for balancing load in multi-core processor system
US8799902B2 (en) Priority based throttling for power/performance quality of service
US9092218B2 (en) Methods and apparatus to improve turbo performance for events handling
US20090320031A1 (en) Power state-aware thread scheduling mechanism
US8095932B2 (en) Providing quality of service via thread priority in a hyper-threaded microprocessor
JP2013526739A (ja) キャッシュ制御のための方法および装置
Acun et al. Fine-grained energy efficiency using per-core dvfs with an adaptive runtime system
Wang et al. Endurance-aware allocation of data variables on NVM-based scratchpad memory in real-time embedded systems
TW201342030A (zh) 指定應用程式執行緒的效能狀態之指令
CN107636563B (zh) 用于通过腾空cpu和存储器的子集来降低功率的方法和***
US20070055839A1 (en) Processing operation information transfer control systems and methods
Zhao et al. A survey of GPU multitasking methods supported by hardware architecture
Paul et al. Dynamically adaptive i-cache partitioning for energy-efficient embedded multitasking
Filippopoulos et al. Memory-aware system scenario approach energy impact
Samanta et al. Persistent memory-aware scheduling for serverless workloads
EP3929743B1 (en) Technology for optimizing hybrid processor utilization
EP4394598A1 (en) Region-aware memory bandwidth allocation control
Zhang et al. Optimization Methods for Computing System in Mobile CPS

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: 20091118

Termination date: 20180625

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