CN100565426C - 根据可用并行数目改变每条指令能量的方法和设备 - Google Patents

根据可用并行数目改变每条指令能量的方法和设备 Download PDF

Info

Publication number
CN100565426C
CN100565426C CNB2005800328354A CN200580032835A CN100565426C CN 100565426 C CN100565426 C CN 100565426C CN B2005800328354 A CNB2005800328354 A CN B2005800328354A CN 200580032835 A CN200580032835 A CN 200580032835A CN 100565426 C CN100565426 C CN 100565426C
Authority
CN
China
Prior art keywords
nuclear
processor
thread
power
macronucleus
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.)
Active
Application number
CNB2005800328354A
Other languages
English (en)
Other versions
CN101076770A (zh
Inventor
E·格罗乔夫斯基
J·沈
H·王
D·奥伦斯坦
G·希菲尔
R·罗宁
M·安纳瓦拉姆
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.)
Meta Platforms Inc
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 CN101076770A publication Critical patent/CN101076770A/zh
Application granted granted Critical
Publication of CN100565426C publication Critical patent/CN100565426C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable 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/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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
    • 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
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

本发明揭示了用于改变多核处理器配置的方法和设备。在一个实施例中,节流模块(或者节流逻辑)可确定当前执行程序中存在的并行数量,并改变各种核上该程序的线程的执行。如果并行数量大,则处理器可以配置成在配置成消耗更低功率的核上运行更大数量的线程。如果并行数量小,则处理器可以配置成在配置成用于更高标量性能的核上运行更小数量的线程。

Description

根据可用并行数目改变每条指令能量的方法和设备
技术领域
本发明一般涉及可以执行具有变化数量的标量和并行资源需求的程序的微处理器,更具体地涉及采用多个核的微处理器。
背景技术
在一些实施例中,计算机工作负荷连续地从具有少量内在并行(parallelism)(主要为标量)的工作负荷转到具有显著数量的并行(主要为并行)的工作负荷,且这种本性在软件的不同程序段之间可能不同。典型的标量工作负荷包括软件开发工具、办公室生产力套装软件、和操作系统内核例程。典型的并行工作负荷包括3D图形、媒体处理、和科学应用。标量工作负荷可退回范围0.2至2.0的IPC(每个时钟执行的指令),而并行工作负荷可以获得范围为4至几千IPC的吞吐量。后一种的高I PC通过使用指令级的并行和线程级的并行可以得到。
现有技术微处理器通常设计成以标量或并行计算机性能为主要目标。为了实现高的标量性能,经常期望尽可能地减小执行潜伏期。减小有效潜伏期的微架构技术包括预测执行、分支预测、和高速缓存。对高标量性能的追求已经实现了大的乱序、高度预测、深管线微处理器。为了获得高的并行计算机性能,则期望提供尽可能大的执行吞吐量(带宽)。提高吞吐量的微架构技术包括宽超标量处理、单指令多数据的指令、芯片级多处理、以及多线程。
当尝试构建可同时在标量和并行任务上执行良好的微处理器时会产生问题。一个问题可能起因于如下理解,即,实现短潜伏期所需的设计技术在某些情形中可能与实现高吞吐量所需的设计技术大相迥异。
发明内容
根据第一实施例,本发明公开了一种处理器,具有至少一个大核和多个小核,所述处理器包括:
监测逻辑,监测所述大核的属性的值;
转换逻辑,响应于所述属性而确定所述处理器的功耗的测量;
节流模块,用于确定在由所述处理器执行的应用程序中存在的并行数量;以及
控制逻辑,响应于所述功耗的测量和存在的并行,通过将所述大核执行的线程转移到两个或两个以上所述小核来并行执行,而调整所述处理器的每条指令能量的度量,所述控制逻辑还对线程被转移到的核进行加电并对不执行线程的核进行掉电。
根据第二实施例,本发明公开了一种处理器,包括:
第一多个第一类型的核;
第二多个第二类型的核;以及
模块,将多个线程分配到所述第一多个所述第一类型的核或者所述第二多个所述第二类型的核之一,其中,所述模块根据功率预算和在执行的应用程序中检测到的并行数量来分配所述线程,所述模块在核之间转移一个或多个线程,使得多个线程在被分配到第二多个核时并行执行,所述模块还对线程被转移到的核进行加电并对不执行线程的核进行掉电。
根据第三实施例,本发明公开了一种方法,包括:
将线程集分配到处理器核集,其中,所述处理器核包括一个或多个大核和两个或两个以上小核;
监测所述处理器核的消耗功率;
计算所述消耗功率和期望功率之间的误差值;
确定在执行所述线程集期间存在的并行数量;以及
基于所述误差值和所述并行数量,从由所述一个或多个大核到所述两个或两个以上小核的所述分配进行转变,在所述两个或两个以上小核上,所述线程并行执行。
根据第四实施例,本发明公开了一种处理器,包括:
用于将线程集分配到处理器核集的装置,所述处理器核包括大核和多个小核;
用于监测所述处理器核的消耗功率的装置;
用于计算所述消耗功率和期望功率之间的误差值的装置;以及
用于确定在执行所述线程集期间存在的并行数量的装置;以及
用于基于所述误差值和所述并行数量,从由一个或多个大核到两个或两个以上小核的所述分配进行转变的装置,在所述两个或两个以上小核上,所述线程并行执行。
根据第五实施例,本发明公开了一种处理器,包括:
用于确定运行线程集的装置;以及
用于将各个所述线程分配到处理器核集之一的装置,其中所述分配响应于功率预算。
附图说明
在附图中示范性地而非限制性地阐述本发明,其中在附图中使用相似的参考数字表示相似的元件。附图中:
图1为根据一个实施例的包括可由电压和频率配置的核的处理器的示意性图示。
图2为根据一个实施例的包括通过处理功率和功耗可选择的核的处理器示意性图示。
图3为根据一个实施例的包括由可选的性能电路配置的核的处理器的示意性图示。
图4为根据本发明一个实施例的包括可由可选的预测电路配置的核的处理器的示意性图示。
图5为根据本发明一个实施例的包括核的处理器以及节流细节的示意性图示。
图6为示出了根据本发明一个实施例的转变到不同核配置的流程图。
图7为示出了根据本发明另一个实施例的转变到不同核配置的流程图。
图8为示出了根据本发明另一个实施例的转变到不同核配置的流程图。
图9为示出了根据本发明另一个实施例的转变到不同核配置的流程图。
图10A为根据本发明一个实施例的包括具有节流和多个核的处理器的系统的示意性图示。
图10B为根据本发明另一实施例的包括具有节流和多个核的处理器的系统的示意性图示。
具体实施方式
下述描述了根据软件程序中可用的并行数量而改变耗费以处理各个指令的能量数量的技术。在下述描述中,陈述了许多具体细节以提供对本发明的更彻底的理解,例如逻辑实施、软件模块分配、总线以及其他界面信号技术。然而,本领域技术人员将会了解,无需这些具体细节亦可实践本发明。在其他情形中,没有详细地示出控制结构、门级电路以及完整软件指令序列以免本发明变得不明确。本领域普通技术人员借助于此处的描述将能够实施恰当的功能而无需过多的实验。在某些实施例中,本发明披露成例如由
Figure C20058003283500081
公司制造的
Figure C20058003283500082
兼容处理器的多核实施的形式。然而,本发明可以实践于其他类型的处理器,例如Itanium处理器系列兼容处理器、X-
Figure C20058003283500083
系列兼容处理器、或者来自其他厂商或设计者的任何处理器架构的任何各种不同的通用处理器。另外,一些实施例可包括或者可以是专用处理器,例如图形、网络、图像、通信、或者任何其他已知或以其他方式可得到类型的处理器。
可以基于每瓦特的每秒指令数(IPS)测量功率效率。IPS/瓦特度量等效于每条指令能量,或者更精确而言,IPS/瓦特正比于每条指令能量的倒数,即:
(IPS)/(瓦特)=(指令)/(焦耳)        方程1
每条指令能量这个度量的重要性质为该度量与处理指令所需的时间数量无关。这使得每条指令能量是用于吞吐量性能的有用的度量。
通过将微处理器模拟成每条指令被执行时充电或者放电的电容器,由此可以执行对微处理器功耗的近似分析(为了简化,可以忽略漏电流和短路开关电流)。在该假设下,每条指令能量仅取决于两个方面:被触发以处理各个指令的电容数量(从拾取到退回)和电源电压。通常用于电容器的如下公知公式:
E=CV2/2        方程2
也可以用于微处理器。E为处理指令所需的能量;C为在处理该指令时触发的电容数量;V为电源电压。
微处理器可以在例如100瓦特的固定功率预算范围内工作。在某些时间段内进行平均,无论微处理器或软件工作内容如何,微处理器的功耗不应超过该功率预算。为了实现该目标,微处理器可结合某些形式的动态热管理。类似地芯片级的多处理器可以调节(节流)其活动以保持在固定功率预算范围内,无论其是否正退回例如0.2个每个时钟执行的指令(IPC)或者20 IPC。为了提供良好性能,在本示例中芯片级多处理器应该能够将其MIPS/瓦特或者等效地其能量/指令改变到100∶1的范围以上。
设计可同时实现高的标量性能和高吞吐量性能的微处理器的一种方法是根据软件中可用的或者估算可用的并行数量而动态地变化耗费用于处理各个指令的能量数量。换而言之,如果存在少量的并行,则微处理器可将所有可用的能量耗费用于处理少数指令;但是如果存在大量的并行,则微处理器将非常少的能量耗费用于处理各个指令。这可以表达成:
P=(EPI)×(IPS)        方程3
其中P为固定功率预算,EPI为每个退回指令的平均能量,IPS为所有处理器核上每秒退回的指令总数。本实施例尝试将总的多处理器芯片功率维持在几乎恒定的水平。
互补型金属氧化物半导体(CMOS)电压和频率缩放可用于获得不同的每条指令能量比率。在一个实施例中,根据所期望的性能和功率水平,逻辑相关地变化微处理器的源电压和时钟频率。为了将芯片级微处理器的总功耗维持在固定功率预算范围内,可以如下所述动态地进行电压和频率缩放。对于低的线程并行,可以使用高的源电压和高频运行少数核以得到最佳标量性能。对于高的线程并行,可以使用低的源电压和低频运行许多核以得到最佳的吞吐量性能。由于非活动核可能期望低的功耗,因此例如动态睡眠晶体管和体偏压的漏电控制技术可以被采用。
现在参照图1,示出了根据一个实施例的包括可由电压和频率配置的核的处理器的示意性图示。示出了核1 120、核2 130、核3 140和核4 150,但是在其他实施例中,处理器中可能存在多于四个或者少于四个核。一个或多个这些核可具有电压控制电路和时钟频率控制电路。图1清楚地示出了核1 120具有电压控制电路122和频率控制电路124,但是其他核也可以具有等效电路,或者该电压控制和频率控制逻辑可以是并不直接与具体核相关联的分离的逻辑。
节流模块110可用于收集信息并确定或者评估执行软件程序中存在的并行数量。在一个实施例中,并行数量可以为得到支持的同时发生的线程数目。在其他实施例中,其他度量可用于表达并行数量,例如每秒退回的指令总数,或者可支持预测多线程执行的分支指令的数目。节流模块110可利用由操作系统提供的信息以辅助确定该并行数量。在其他实施例中,节流模块110可以使用处理器内的硬件逻辑及其核进行该确定。可以连续地或者周期性地进行该确定。
每次节流模块110确定程序中并行的数量时,该节流模块可通过信号线112、114、116和118指示核120、130、140、150改变其电压和时钟频率。在一个实施例中,信号线112、114、116和118也可以用于接通或关闭核,或者从包含核的功率井除去功率。在其他实施例中,可以通过时钟门控或者指令饥饿(instruction starvation)技术关闭核。在一个实施例中,如果线程级当前的并行数量超过先前数量的值大于阈值,则节流模块通过降低各个核中的电压和时钟频率可启动转变到运行更多数目的线程,但是在更多数目的核上运行这些线程。先前关闭的核可以被接通以支持更大数目的线程。类似地,如果线程级当前的并行数量低于预先数量的值大于阈值,则节流模块通过提高某些核中的电压和时钟频率可启动转变到运行更少数目的线程,但是在更少数目的这些核上运行这些线程。由于不再需要这些核以支持更少数目的线程,先前接通的某些核被关闭。
在一个实施例中,可以设计单指令集架构(ISA)异类多核微处理器,其中可以使用不同的微架构跨过性能和功率范围。在一个实施例中,芯片级多处理器可以由两种处理器核构成,该处理器核称为大核和小核。该两种类型的核可以实施相同的指令集架构,使用超高速缓存相关性以实施共用存储器,且仅仅在微架构方面不同。在其他实施例中,该两种类型的核可以实施相似的指令集架构,或者小核可以实施大核的指令集的子集。大核可能是乱序、超级标量、深管线机器,而小核可能是有序、标量、短管线机器。Intel Pentium 4处理器和Intel i486处理器是这两类核的代表。在其他实施例中,可以使用运行基本上相似或相同的指令集架构的两种以上类型或性能水平的核。
在一个实施例中,芯片级多处理器包括一个大核和25个小核,这两种核的功耗比率为25∶1,标量性能比率为5∶1,每条指令能量为5∶1的范围。本实施例的芯片级多处理器按照下述工作。对于低的线程级并行,可以运行该大核以得到最佳标量性能。对于高的线程级并行,可以运行多个小核以得到最佳的吞吐量性能。
在任意时刻,微处理器可以运行一个大核或者25个小核。由于可用的软件线程的数目随时间变化,非对称的多处理器能够在大核和小核之间迁移线程。可以实施线程迁移逻辑以支持该功能。
实际上,期望少量的小核与该大核同时运行,从而在关闭大核时减小吞吐量性能不连续。在先前示例中,3个单位的吞吐量不连续可能是由于关闭大核和接通两个小核。为了减小总吞吐量损失的百分比,通过允许例如多达5个小核与大核同时运行,如果电源能短时间支持该动作,则可以将该不连续转移到发生于更大数目的正在运行的线程的情况下。
使用代表当前微处理器的两种类型的核,可以获得范围为4∶1的每条指令能量。随着未来的微处理器继续达到更高水平的标量性能,可能的每条指令能量的范围预期可能增大到6∶1,或者将远远超出这个范围。
现在参考图2,示出了根据一个实施例,包含通过处理功率和功耗可选择的核的处理器的示意性图示。该处理器可包括少数大核,即A核,还包括大量的小核,即B核。示出了A核1 220、A核2 222、和B核1至60 230-262,但是在其他实施例中处理器中可能存在比两个A核与六十个B核更多或者更少的核。
节流模块210可再次用于收集信息并确定执行软件程序中存在的并行数量。在一个实施例中,并行数量可以为得到支持的同时发生的线程数目。在其他实施例中,如前所述,其他度量可用于表达并行数量。节流模块210可利用由操作系统提供的信息以辅助确定该并行数量。在其他实施例中,节流模块210可以使用处理器内的硬件逻辑及其核进行该确定。可以连续地或者周期性地进行该确定。
由于可用的软件线程的数目可能随时间变化,图1的处理器可包括能够在大的A核和小的B核之间迁移线程的线程迁移逻辑212。期望允许少量的小B核与大的A核同时运行,从而在关闭大的A核时减小吞吐量性能不连续。为了减小总吞吐量损失的百分比,通过允许例如多达5个小核与大核同时运行,则可以将该不连续转移到发生于更大数目的正在运行的线程的情况下。
每次节流模块210确定程序中并行的数量时,该节流模块可使用信号线224至266启动A核和B核的上电或下电。在一个实施例中,如果当前的并行数量超过先前数量的值大于阈值,则节流模块210可使用线程迁移逻辑212启动转变到运行更多数目的线程,这些线程可以在更多数目的B核上运行。先前关闭的B核可以被接通以支持更大数目的线程,且已经被接通的任何A核可以被关闭。类似地,如果当前的并行数量低于预先数量的值大于阈值,则节流模块可通过在更少数目的A核上运行这些线程而启动转变到运行更少数目的线程。先前接通的B核可以被关闭,因为不再需要这些核以支持更少数目的线程,且A核被接通以支持该更少数目的线程。如前所述,期望少量的B核与A核同时运行,从而在关闭大核时减小吞吐量性能不连续。
在一个实施例中,节流模块可以实施为不需要反馈回路的方式。这里,节流的控制动作(例如决定运行线程的核的类型和数目)并不返回以影响输入值(例如用于线程的核的分配和配置)。在该实施例中,可以假设各个A核220、222可能消耗与B核230至262中的25个相同的功率数量。在其他实施例中,可以使用不同的功耗比率。处理器可以将其总功率预算划分成两个部分。对于各个部分,该功率预算可允许一个A核与多达5个B核同时工作,或者零个A核与多达30个B核同时工作。在其他实施例中,该功率预算可以按照其他方式划分成多个部分。
在一个实施例中,可以根据表I将运行线程的数目(RT)分配给一些A核(QAC)和一些B核(QBC)。
表I
Figure C20058003283500121
Figure C20058003283500131
当运行线程的数目增大且新线程启动(在一个实施例中通过处理器间中断)时,该节流模块可确定当前运行线程的数目。取决于当前运行线程的数目,该新线程可以根据上述表I被指派至A核或B核。在本实施例中,对于某些情形,例如当从12个线程增大到13个线程,或者从36个线程增大到37个线程时,在A核上运行的现有线程将迁移到在B核上运行。当该迁移完成时,现有迁移线程和新线程都可以启动。因此,在本实施例中,新线程可能呈现启动延迟。
当运行线程数目减小时,类似的过程可能发生。当特定线程终止且其核停止时,各种方法可以用于潜在地将剩余线程之一从在B核上运行迁移到在A核上运行。这个过程可能发生于例如当运行线程的数目从13个线程减小到12个线程,或者从37个线程减小到36个线程时。在一个实施例中,可以使用周期定时器以允许在特定时间间隔内仅发生一次迁移。在线程快速产生和终止的情形中,这可以有利地防止太频繁的线程迁移。受影响的线程仍运行于B核上,直到该特定时间间隔。
在一个实施例中,节流模块可按照对软件是透明的方式执行从A核到B核的迁移。节流模块的线程迁移机制可包括将逻辑核映射到物理核的表,可能需要的向核发出迁移信号的中断、复制核的处理器状态的微代码或硬布线逻辑、以及处理器核之间的互连网络。逻辑核的数目可以等于B核的数目。
在另一个实施例中,节流模块可按照对软件非透明的方式执行从A核到B核的迁移。线程迁移可以由操作系统调度程序执行。操作系统可以使用当前运行线程追踪核数目,将新的线程指派到核,并将线程从A核迁移到B核(或者从B核到A核)。软件线程迁移可以使用与硬件实施中所述功能等效的功能。在一个实施例中,节流模块操作对于应用程序可能是透明的,尽管对于操作系统是不透明的。
调制功耗的一个备选方式是调整逻辑块的尺寸或功能。当不需要大的阵列尺寸时,例如尺寸可变的调度程序、超高速缓冲存储器、转换后备缓冲器(TLB)、分支预测器、和其他可选的性能电路可以用于减小开关电容(并因此减小能量)。除了动态调整阵列大小之外,还可以设计大核,其通过动态地禁止执行单元、管线级、和其他可选的性能电路而使其性能退化到较小核的性能。这些技术共同地称为适应性处理。
芯片级多处理器的一个实施例可按下述工作。对于低的线程并行,可以运行少量的核,在各个核上使用可用的可选性能电路的第一集合(例如所有或许多该性能电路)以得到良好的标量性能。对于高的线程并行,可以运行许多核,在各个核上使用更少的可选性能电路以得到良好的吞吐量性能。
减小阵列尺寸和禁止执行单元的最终结果为减小每条指令触发的电容。然而,如果设计本来就更小的核,则无法如此大程度地减小开关电容。尽管不用的执行硬件可以被门控掉,但是核的物理尺寸没有变化,因此与该仍然活动的硬件块相关联的布线长度仍长于小核。
通过检查大的乱序微处理器的平面布置图并确定可以将多少个可选的性能电路关闭以将处理器转换为小的有序机器(记住,这些块不能被物理去除),由此可以评估每条指令能量的可能减少。随后可以量化被关闭的处理器核面积的百分比,该百分比可能接近开关电容的减少。从方程(2),每条指令能量大约与开关电容的数量成正比。
大约估算的结果为,在某些情形中,多达50%的开关电容可以被关闭,导致每条指令能量的减少为1×至2×。在一些实施例中,除了时钟门控之外,使用例如动态睡眠晶体管和体偏压的漏电控制技术有助于减少每条指令消耗的能量。
现在参考图3,示出了根据一个实施例包括由可选性能电路配置的核的处理器的示意性图示。图3处理器可包括四个核,即核1 320、核2 370、核3 380和核4 390。在其他实施例中,可以使用比四个核更多或更少的核。核1 320显示各种可选的性能电路。调度程序A334可耦合到可选调度程序B 336,该可选调度程序B 336在接通时可以提高性能。执行单元1 340可以耦合到可选执行单元2至4 342、344、346,这些可选执行单元在接通时可以提高性能。零级(L0)高速缓存A 322可以耦合到L0高速缓存B 324,该L0高速缓存B 324接通时可以提高性能。TLB A 326可以耦合到TLB B 328,该TLB B 328接通时可以提高性能。重排序缓冲器(ROB)338可具有可变数目的线路,或者可以全部关闭以抑制乱序执行。最后,与其他管线级330分离的预拾取级332在被上电时可以执行预测拾取。在其他实施例中,可以使用其他可选性能电路。
节流模块310可再次用于收集信息并确定执行软件程序中存在的并行数量。节流模块310可以与结合图1和2所述节流模块相似。每次节流模块310确定程序中并行的数量时,该节流模块可通过信号线312、314、316、和318指示核320、370、380、和390改变上电或下电的可选性能电路数目。在一个实施例中,信号线312、314、316、和318还可以用于接通或关闭核320、370、380、和390。在一个实施例中,如果当前的并行数量超过先前数量的值大于阈值,则该节流模块可通过减小每个核内被接通的可选性能电路而在更大数目的这些核上运行这些线程,由此转变到运行更大数目的线程。先前关闭的核可以被接通以支持更大数目的线程。类似地,如果当前的并行数量低于预先数量的值大于阈值,则节流模块可通过增加某些核内被接通的可选性能电路而在更少数目的这些核上运行这些线程,由此转变到运行更少数目的线程。先前接通的核可以被关闭,因为不再需要这些核以支持更少数目的线程。
已经提出各种形式的预测控制以减小由于错误预测指令例如错误预测分支之后的指令而浪费的能量。附加的能量源于被触发以处理错误预测指令的电容。尽管错误预测指令的结果可以被抛弃,但是能量已经耗费。通过将其充电到下一个正确预测(退回)指令,由此可以解释该能量。
管线门控是一种避免管线填满由于一个或多个低置信度分支预测而可能被抛弃的指令的技术。在使用预测控制的一个实施例中,芯片级多处理器可按下述工作。对于低的线程并行,使用增大数量的预测运行少数核,以得到良好的标量性能。对于高的线程并行,在各个核上使用减小数量的预测运行许多核,以得到良好的吞吐量性能。
尺寸可变的核技术和预测控制之间可能存在某些交叠,因为减小调度程序和重排序缓冲器入口的数目还减小了可以预测的指令的数目。例如高速缓存、TLB和分支预测器的其他处理器资源的尺寸对可能的预测数量的影响不会这么大。
现在参考图4,示出了根据本发明一个实施例的包括由可选的预测电路配置的核的处理器的示意性图示。图4处理器可包括四个核,即核1 420、核2 470、核3 480和核4 490。在其他实施例中,可以使用比四个核更多或更少的核。核1420显示各种可选的预测电路。预拾取级430可用于预测拾取指令。分支预测器434可用于支持程序分支的预测执行。在某些实施例中,其他预测器436可以是回路预测器或其他形式的预测器以支持其他形式的预测执行。在其他实施例中,可以使用另外的可选的预测电路。
节流模块410可再次用于收集信息并确定执行软件程序中存在的并行数量。节流模块410通常与结合图1、2和3所述节流模块相似地工作。每次节流模块410确定程序中并行的数量时,该节流模块可通过信号线412、414、416、和418指示核420、470、480、和490改变上电或下电的可选预测电路的数目。在一个实施例中,信号线412、414、416、和418还可以用于接通或关闭核420、470、480、和490。在一个实施例中,如果当前的并行数量超过先前数量的值大于阈值,则该节流模块可通过减小每个核内被接通的可选预测电路而在更大数目的这些核上运行这些线程,由此转变到运行更大数目的线程。先前关闭的核可以被接通以支持更大数目的线程。类似地,如果当前的并行数量低于预先数量的值大于阈值,则节流模块可通过增加某些核内被接通的可选预测电路而在更少数目的这些核上运行这些线程,由此转变到运行更少数目的线程。先前接通的某些核可以被关闭,因为不再需要这些核以支持更少数目的线程。
对于结合图1、2、3和4上述的各种技术,节流模块可以调节多处理器的工作以将总芯片功率维持在固定功率预算内。通过与每秒退回的指令的总数成反比地改变每条指令能量数量,节流模块硬件可满足方程(3)。响应于过功率的情形,在诸多实施例中节流模块可以采取下述动作中的一个或多个:降低电压和频率(对于图1的电压和频率缩放的情形),将线程从大核迁移到小核(对于图2的非对称核的情形),减小可选性能电路的电容(对于图3的尺寸可变的核的情形),或者减小预测数量(对于图4的预测控制的情形)。
在各种情形中,软件程序可将处理器视为大的对称的芯片级多处理器,尽管出现不正常的性能,即由于软件请求硬件同时运行更多线程而使得现有线程变得更慢,即使最终的吞吐量增大。采用这种方法,为目前的共用存储器多处理器编程模型编写的软件可以继续运行而无需调整。
现在参考图5,示出了根据本发明一个实施例的包括核的处理器以及节流模块的细节的示意性图示。M个处理器核1至M 502至508在多个实施例中可以是可由电压和频率配置的图1的核、处理功率和功耗变化的图2的大核和小核、可由可选性能电路配置的图3的核、可由可选预测电路配置的图4的核、或者部分或所有这些类型的核的混合。在其他实施例中还可以使用其他类型的核。
监视器1至M 512至518可以监视相关核和辅助处理器电路的一个或多个属性。在一些实施例中,这些属性可包括该核是否在运行或者停止、每个时钟周期退回的指令的瞬时数目、核的特定功能块是活动的还是空闲的、除了核内的功能块之外的处理器的特定功能块是活动的还是空闲的、以及核的源电流和温度(或者管芯温度)。除了核内的功能块之外的处理器的功能块可包括例如共用高速缓存或者存储控制器的电路。可以通过电流传感器电阻和模数(A/D)转换器测量该源电流。可以通过热敏二极管和A/D转换器测量该温度。各个监视器1至M 512至518的输出可以是所有或者某些部分这些属性的监测值。
转换至功率的逻辑530可从监视器1至M 512至518接收一个或几个监测值。在各种实施例中,监测值可以转换成功耗的测量。在监测值反映核是否在运行或者停止的实施例中,通过将核运行(或者停止)状态乘以当核处于运行(或者停止)状态时每个时钟耗费的能量的平均数量,该监测值可以转换成功耗。随后可以对处理器内的所有核的这些乘积求和。在监测值反映每个时钟周期退回的指令的瞬时数目的实施例中,通过将指令数目乘以每个时钟每条指令耗费的能量的平均数量,该监测值可以转换成功耗。随后可以对处理器内的所有核的这些乘积求和。在监测值反映核的特定功能块是否是活动的或者空闲的实施例中(或者在某些实施例中,反映除了核内的功能块之外的处理器的特定功能块是否是活动或者空闲的),通过将该活动(或者空闲)状态乘以块处于活动(或者空闲)状态时每个时钟耗费的能量的平均数量,该监测值可以转换成功耗。随后可以对各个核中的所有块以及处理器内的所有核的这些乘积求和。当考虑不在该核内的块时,该乘积可包括在该求和内。在各个这些实施例中,通过乘以正比于时钟频率与源电压平方的乘积的值而针对电压和频率调整所得到的总和。
在监测值反映各个核的源电流的实施例中,通过将源电流乘以源电压,该监测值可以转换成功耗。
在监测值反映核或管芯温度的实施例中,图5的电路可以用于维持几乎恒定的核或者管芯温度,而不是维持几乎恒定的功耗。
计算差值的逻辑534可用于计算转换至功率的逻辑530的转换功耗(或者管芯温度)输出与期望的功耗值(或者期望的管芯温度值)之间的差值。该差值可以用作“误差”数值。
积分逻辑538可在一个实施例中提供与由计算差值的逻辑534供给的误差数值随时间的积分成正比的积分数值。在一个实施例中,可以使用累加器计算该积分,其中可以使用加法器和寄存器实施该累加器。该累加器在上界和下界可以饱和以避免溢出。在一个实施例中,该累加器输出可以是固定点的二进制数,例如2至6个整数位和2至16个小数位。可以检查累加器的最高有效位,这可以有利地实现使输出变化缓慢的性能。使用积分逻辑538可以帮助慢反馈回路550从而随着时间将该误差数值减小到零。当误差数值为功率时,使用该积分逻辑538是最为有利的,这是因为不同时钟周期之间的瞬时功耗可能发生显著变化。
在其他实施例中,积分逻辑538可以被逻辑替代以得到与该误差数值成比例的数值,当误差数值是温度时这是有利的。在另外实施例中,该逻辑可以得到与该误差数值的时间微分成比例的数值,或者所有上述数值的某些线性组合。
采样逻辑544可以用于某些实施例。来自积分逻辑538的积分数值可以随着各个时钟周期而改变,即使该积分数值的提取可能相对于图5逻辑的速度发生缓慢的变化。某些控制技术可以在每个时钟周期改变其动作而仅需很少的系统成本。这种情况下可能无需采样。在其他控制技术中,当积分逻辑538的输出接近转变点时,有利地使用采样以帮助减小随各个时钟振荡的数值。
在一个实施例中,固定采样技术可以用于采样逻辑544。每固定数目N个时钟周期采样一次该数值。这可以防止该数值变化得比每N个时钟周期一次快。然而,这种技术无法实现在短于N个时钟周期的时间段内进行控制,且当与N个时钟周期的时间段相比积分缓慢时该技术可以最佳地工作。
在另外实施例中,滞后技术可以用于采样逻辑544。只有当输入和输出数值超过阈值T时,采样逻辑544的输出才改变。当差值超过T时,输出数值被输入数值替代,否则输出数值可保持不变。
对于使用慢反馈回路550的实施例,可以使用控制逻辑548。在一个实施例中,例如核通过改变源电压和频率可以改变功耗的图1的实施例,控制逻辑548可以指示源电压和频率的变化。在这些实施例中,应该注意,电源电压的变化可能花费相对长的时间,例如100毫秒。在一个实施例中,表或逻辑块可以用于设定电源电压和频率。表II给出了用于各种控制值(CV)的数值的这种表或逻辑块的一个示例。
表II
Figure C20058003283500191
在一个实施例中,例如线程可以分配到大核和小核的图2的实施例,控制逻辑948可以将线程分配到核并根据对于软件是透明的控制值而迁移线程。线程迁移机制可包括用于将“逻辑”处理器核映射到“物理”处理器核的表或逻辑块。该线程迁移机制还可包括需要的发出迁移信号的中断、复制处理器状态的微代码或等效逻辑、以及各种处理器核之间的互连网络。软件看到的逻辑处理器的数目可以等于正在运行的小核的数目。当功率预算允许时,大核可以替代小核。在一个实施例中,用于预算作为控制值函数的大核使用的表或逻辑块示于表III。
表III
Figure C20058003283500201
这里进行了一个简化的假设,即,当大核无法使用时,线程可以在小核上运行。
在一个实施例中,例如线程可以分配到其资源可以动态变化的核的图3的实施例,控制逻辑548可以给出改变核的功能单元的数量或者容量的控制值。在改变核容量要求阵列被填充或往回写或者管线需要被重新填充的一些实施例中,用于这些改变的时间范围可以为10微妙。可以使用表或逻辑块预算作为控制值函数的核功能单元的使用。在一个实施例中,用于预算作为控制值函数的功能单元使用的表或逻辑块示于表IV,其中该功能单元可以是核内的执行单元。
表IV
Figure C20058003283500202
在一个实施例中,例如线程可以分配到其预测数量可动态变化的核的图4实施例,控制逻辑548可以给出改变核内容许的预测数量的控制值。可以使用表或逻辑块预算作为控制值函数的核内预测数量的使用。在一个实施例中,用于调整作为控制值函数的预测数量的表或逻辑块示于表V,其中预测的数量可以由核中在非预测指令之前预测执行指令的数目给出。
表V
Figure C20058003283500211
在许多实施例中,处理器核可以包括多个上述属性。例如,处理器可以具有能够进行电压和频率缩放的核,且还具有可调整数量的预测执行。在一个实施例中,图2的大的A核和小的B核还可以具有如图1所示的电压和频率缩放。对于一个实施例,电压和频率可以固定,将大的A核配置成运行于高电压而小的B核配置成运行于低电压。在另外实施例中,大的A核和小的B核之间的电压和频率调整范围可以不同。为了辅助大的A核和小的B核之间的迁移,线程可以从大的A核迁移到小的B核,而小的B核最初运行于高的电压和频率。一旦大的A核不运行,则B核的电压和频率可以随后降低。
此外,可以使用表或逻辑块将线程分配到大的A核或小的B核,并进一步分配核的电压和频率。在一个实施例中,用于作为控制值函数进行这些调整的表或逻辑块示于表VI。
表VI
Figure C20058003283500221
有利地在慢反馈回路550附近维持略微恒定的增益,其中在该表或逻辑块内通过使各级的功率效应的大小相似可以实现这一点。
在某些实施例中,快反馈回路560可以与先前讨论的慢反馈回路550结合使用。在一个实施例中,可以使用时钟节流540,即使时钟节流不会影响每条指令能量数量。当与前述的一个或多个慢反馈回路550结合使用时,使用时钟节流540是有利的。
在某些情况下,快反馈回路560可以施加了短潜伏期以防止过功率情形,且该施加只有当慢反馈回路550有时间作出响应时才保持有效。在未实施快反馈回路960的实施例中,处理器及其功率发送系统应该设计成能够处理持续时间与慢反馈回路550的响应时间一样长的过功率情形。当添加快反馈回路560时,过功率情形持续时间不会长于快反馈回路560的响应时间,该响应时间的范围为10纳秒。
时钟节流540可以门控核时钟接通和关闭特定的负载周期,使用在计算差值的逻辑534中计算得到的误差数值作为其输入。在一个简单的实施例中,当误差数值超过固定阈值时,时钟可以停止特定数目的周期。该计算在各个时钟周期被执行并完全管线化。可以选择特定数目的周期以将功率限制为略高于期望功率(其允许慢反馈回路550作出响应),但是不大于最大功率。
在另外实施例中,时钟节流550可以响应于由计算差值的逻辑535供给的误差数值的大小(例如处理器目前的运行功率比功率阈值高多少)而调制该负载周期。在一个实施例中,负载周期和误差数值之间关系如表VII所示。
表VII
Figure C20058003283500231
现在参考图6,示出了根据本发明一个实施例的转变到不同核配置的流程图。处理开始于块610,其包括将各种软件线程分配到可用的核。在一个实施例中,线程的数目被确定,且各个线程分配到一个核。在某些实施例中,这种确定可以由软件例如操作系统完成。在其他实施例中,这种确定可以由硬件逻辑,或者由硬件与软件的组合完成。在块614,监测各个核消耗的功率数量,并计算观测的功耗和期望的功耗之间的误差数值。在各种实施例中,可以使用结合图5上述讨论的任意监测技术。接着在块618中,块614的误差数值可经历积分或采样技术之一或二者兼有,如结合图5如上所述。在某些实施例中,块618是可选的。块618的输出可以是控制值,该控制值抑制核配置直到该误差数值在一时间段内被确定为基本上足以保证改变核配置的性能惩罚时才改变。
在决定块622,确定该时间内的误差数值是否足以保证改变核的配置。如果差值不够大,则该处理在决定块622之后沿“否”(NO)路径且该处理重复。然而,如果该差值足够大,则该处理在决定块622之后沿“是”(YES)路径。
在块626,可以根据该控制值改变电压和频率。在一个实施例中,可以如表II所示针对控制值改变电压和频率。在一个实施例中,各种核的电压和频率可以全部相似地改变。在其他实施例中,可以不同地改变各种核上的电压和频率。在任何情形下,该处理在块610重复。
现在参考图7,示出了根据本发明一个实施例的转变到不同核配置的流程图。处理开始于块710,其包括将各种软件线程分配到可用的核。在一个实施例中,线程的数目被确定,且各个线程分配到一个核。在某些实施例中,这种确定可以由软件例如操作系统完成。在其他实施例中,这种确定可以由硬件逻辑,或者由硬件与软件的组合完成。在块714,监测各个核消耗的功率数量,并计算观测的功耗和期望的功耗之间的误差数值。在各种实施例中,可以使用结合图5上述的任意监测技术。接着在块718中,块714的误差数值可经历积分或采样技术之一或二者兼有,如结合图5如上所述。在某些实施例中,块718是可选的。块718的输出可以是控制值,该控制值抑制核配置直到该误差数值在一时间段内被确定为基本上足以保证改变核配置的性能惩罚时才改变。
在决定块722,确定该时间内的误差数值是否足以保证改变核的配置。如果差值不够大,则该处理在决定块722之后沿“否”(NO)路径且该处理重复。然而,如果该差值足够大,则该处理在决定块722之后沿“是”(YES)路径。
在块726,可以根据控制值而将线程重新分配到核。在一个实施例中,可以如上表III所示针对控制值将线程重新分配到特定数目的大核。在一个实施例中,大核的数目示出于表III,且不在大核上运行的线程可以重新分配到小核。在其他实施例中,可以使用其他方案将线程重新分配到核。在任何情形下,该处理在块710重复。
现在参考图8,示出了根据本发明一个实施例的转变到不同核配置的流程图。处理开始于块810,其包括将各种软件线程分配到可用的核。在一个实施例中,线程的数目被确定,且各个线程分配到一个核。在某些实施例中,这种确定可以由软件例如操作系统完成。在其他实施例中,这种确定可以由硬件逻辑,或者由硬件与软件的组合完成。在块814,监测各个核消耗的功率数量,并计算观测的功耗和期望的功耗之间的误差数值。在各种实施例中,可以使用结合图5上述讨论的任意监测技术。接着在块818中,块814的误差数值可经历积分和采样技术之一或二者兼有,如结合图5如上所述。在某些实施例中,块818是可选的。块818的输出可以是控制值,该控制值抑制核配置直到该误差数值在一时间段内被确定为基本上足以保证改变核配置的性能惩罚时才改变。
在决定块822,确定该时间内的误差数值是否足以保证改变核的配置。如果差值不够大,则该处理在决定块822之后沿“否”(NO)路径且该处理重复。然而,如果该差值足够大,则该处理在决定块822之后沿“是”(YES)路径。
在块826,可以根据控制值如表IV所示接通或关闭核内可选电路的数量。在一个实施例中,可以如上表IV所示针对控制值改变上电或下电的执行单元的数量。在其他实施例中,可以根据控制值接通和关闭其他可选的性能电路。这些其他可选的性能电路可包括调度程序、高速缓存、转换后备缓冲器、调度程序、和重排序缓冲器。在任何情形下,该处理在块810重复。
现在参考图9,示出了根据本发明一个实施例的转变到不同核配置的流程图。处理开始于块910,其包括将各种软件线程分配到可用的核。在一个实施例中,线程的数目被确定,且各个线程分配到一个核。在某些实施例中,这种确定可以由软件例如操作系统完成。在其他实施例中,这种确定可以由硬件逻辑,或者由硬件与软件的组合完成。在块914,监测各个核消耗的功率数量,并计算观测的功耗和期望的功耗之间的误差数值。在各种实施例中,可以使用结合图5上述讨论的任意监测技术。接着在块918中,块914的误差数值可经历积分和采样技术之一或二者兼有,如结合图5如上所述。在某些实施例中,块918是可选的。块918的输出可以是控制值,该控制值抑制核配置直到该误差数值在一时间段内被确定为基本上足以保证改变核配置的性能惩罚时才改变。
在决定块922,确定该时间内的误差数值是否足以保证改变核的配置。如果差值不够大,则该处理在决定块922之后沿“否”(NO)路径且该处理重复。然而,如果该差值足够大,则该处理在决定块922之后沿“是”(YES)路径。
在块926,可以根据控制值如表V所示改变核内预测数量。在一个实施例中,可以如上表V所示针对控制值改变预测执行的指令的数目。在其他实施例中,可以使用其他方法根据控制值改变预测数量。改变预测数量的这些其他方法可包括上电或下电预拾取单元、分支预测器、或者其他形式的预测器。在任何情形下,该处理在块910重复。
现在参考图10A和10B,示出了根据本发明两个实施例的包括具有节流和多个核的处理器的系统的示意性图示。图10A系统一般示出了处理器、存储器、和输入/输出装置通过系统总线互连的系统,而图10B系统一般示出了处理器、存储器、和输入/输出装置通过多个点对点接口互连的系统。
图10A系统可包括一个或者多个处理器,此处为了清楚仅示出了两个处理器40、60。处理器40、60可包括一级高速缓存42、62。图10A系统可具有通过总线接口44、64、12、8与系统总线6连接的多个功能。在一个实施例中,系统总线6可以是用于由
Figure C20058003283500261
Corporation制造的
Figure C20058003283500262
系列微处理器的前端总线(FSB)。在其他实施例中,可以使用其他总线。在某些实施例中,存储控制器34和总线桥32可统称为芯片组。在某些实施例中,芯片组的功能在物理芯片之间的划分可能不同于图10A实施例所示。
存储控制器34允许处理器40、60从系统存储器10以及从基本输入/输出系统(BIOS)可擦除编程只读存储器(EPROM)36进行读写。在某些实施例中BIOS EPROM 36可使用闪烁存储器。存储控制器34可包括总线接口8以允许存储器读写数据在系统总线6上向总线代理(bus agent)传送和从总线代理传送。存储控制器34还通过高性能图形接口39与高性能图形电路38连接。在某些实施例中,高性能图形接口39可以是先进图形端口AGP接口。存储控制器34可以将来自系统存储器10的数据通过高性能图形接口39引导至高性能图形电路38。
图10B系统可包括一个或者多个处理器,此处为了清楚仅示出了两个处理器70、80。处理器70、80可包括局部存储控制中心(MCH)72、82以连接存储器2、4。处理器70、80可以使用点对点接口电路78、88通过点对点接口50交换数据。每个处理器70、80可以使用点对点接口电路76、94、86、98通过各个点对点接口52、54与芯片组90交换数据。芯片组90也可以通过高性能图形接口92与高性能图形电路38交换数据。
在图10A系统中,总线桥32可以允许系统总线6和总线16之间的数据交换,该总线在某些实施例中是工业标准架构(ISA)总线或者外围元件互连(PCI)总线。在图10B系统中,芯片组90可以通过总线接口96与总线16交换数据。在任一系统中,在总线16上可能存在各种输入/输出(I/O)装置14,在一些实施例中该装置包括低性能图形控制器、视频控制器、以及网络控制器。在某些实施例中,另一总线桥18可以用于允许总线16和总线20之间的数据交换。在一些实施例中,总线20可以是小型计算机系统接口(SCSI)总线、集成驱动电子(IDE)总线、或者通用串行总线(USB)总线。附加的I/O装置可以与总线20连接。这些附加的I/O装置包括键盘和光标控制装置22(包括鼠标)、音频I/O 24、通信装置26(包括调制解调器和网络接口)以及数据存储装置28。软件代码30可以存储于数据存储装置28。在某些实施例中,数据存储装置28可以是固定磁盘、软盘驱动器、光盘驱动器、磁光盘驱动器、磁带、或者包括闪烁存储器的非易失性存储器。
在前述说明书中,已经参照具体实施例描述了本发明。然而,在不背离由所附权利要求界定的本发明更宽范围的情况下可以进行各种改进和变化。因此说明书和附图被视为是用于说明而非限制本发明。

Claims (33)

1.一种处理器,具有至少一个大核和多个小核,所述处理器包括:
监测逻辑,监测所述大核的属性的值;
转换逻辑,响应于所述属性而确定所述处理器的功耗的测量;
节流模块,用于确定在由所述处理器执行的应用程序中存在的并行数量;以及
控制逻辑,响应于所述功耗的测量和存在的并行,通过将所述大核执行的线程转移到两个或两个以上所述小核来并行执行,而调整所述处理器的每条指令能量的度量,所述控制逻辑还对线程被转移到的核进行加电并对不执行线程的核进行掉电。
2.权利要求1的处理器,其中所述大核的属性为核运行状态。
3.权利要求2的处理器,其中通过将所述核运行状态乘以当所述大核处于所述核运行状态时每个时钟耗费的能量数量,确定所述功耗的测量。
4.权利要求1的处理器,其中所述大核的属性为每个时钟退回的指令的数目。
5.权利要求4的处理器,其中通过将所述每个时钟退回的指令的数目乘以每个时钟每条指令耗费的能量数量,确定所述功耗的测量。
6.权利要求1的处理器,其中所述大核的属性为所述大核的功能块的活动状态。
7.权利要求6的处理器,其中通过将所述功能块的所述活动状态乘以当所述功能块处于所述活动状态时每个时钟耗费的能量数量,确定所述功耗的测量。
8.权利要求1的处理器,其中所述属性为核源电流。
9.权利要求8的处理器,其中所述功耗的测量包括所述核源电流。
10.权利要求1的处理器,其中所述控制逻辑响应于所述功耗的测量而调整所述处理器的工作电压和工作频率。
11.权利要求1的处理器,其中所述控制逻辑响应于所述功耗的测量而在所述处理器的大核和小核之间迁移程序的线程。
12.权利要求1的处理器,其中所述控制逻辑响应于所述功耗的测量而接通所述处理器的所述大核和所述小核内的可选性能电路。
13.权利要求1的处理器,其中所述控制逻辑响应于所述功耗的测量而接通所述处理器的所述大核和所述小核内的可选预测电路。
14.权利要求1的处理器,还包括差值逻辑以计算所述功耗的测量和期望功耗之间的差值。
15.权利要求14的处理器,还包括积分电路以确定所述功耗的测量和期望功耗之间的所述差值的时间积分。
16.权利要求14的处理器,还包括采样电路以根据采样方法将所述功耗的测量供给到所述控制逻辑。
17.权利要求1的处理器,还包括时钟节流电路以允许快反馈控制。
18.一种处理器,包括:
第一多个第一类型的核;
第二多个第二类型的核;以及
模块,将多个线程分配到所述第一多个所述第一类型的核或者所述第二多个所述第二类型的核之一,其中,所述模块根据功率预算和在执行的应用程序中检测到的并行数量来分配所述线程,所述模块在核之间转移一个或多个线程,使得多个线程在被分配到第二多个核时并行执行,所述模块还对线程被转移到的核进行加电并对不执行线程的核进行掉电。
19.权利要求18的处理器,其中所述模块根据功率预算分配所述线程。
20.权利要求18的处理器,其中所述模块根据分配表分配所述线程。
21.权利要求18的处理器,其中所述模块包括线程迁移逻辑,将新线程分配到所述第二多个核之一并将已有线程从所述第一多个核之一迁移到所述第二多个核之一。
22.权利要求21的处理器,其中所述线程迁移逻辑包括用于将逻辑核映射到物理核的表。
23.权利要求21的处理器,其中所述线程迁移逻辑响应于操作系统调度程序。
24.权利要求18的处理器,其中设计所述第一类型的核的性能高于所述第二类型的核的性能。
25.权利要求18的处理器,其中所述第一类型的核的性能通过配置高于所述第二类型的核的性能。
26.一种用于改变每条指令的能量的方法,包括:
将每条指令的线程集分配到处理器核集,其中,所述处理器核集包括一个或多个大核和两个或两个以上小核;
监测所述处理器核集的消耗功率;
计算所述消耗功率和期望功率之间的误差值;
确定在执行所述线程集期间存在的并行数量;以及
基于所述误差值和所述并行数量,从由所述一个或多个大核到所述两个或两个以上小核的所述分配进行转变,在所述两个或两个以上小核上,所述线程并行执行。
27.权利要求26的方法,其中所述转变包括在所述处理器核集内功率大的核和功率小的核之间改变所述线程集的所述分配。
28.权利要求26的方法,其中所述转变包括通过配置所述处理器核集内所述功率大的核和所述功率小的核而改变所述功率大的核和所述功率小的核之间所述线程集的分配。
29.一种处理器,包括:
用于将线程集分配到处理器核集的装置,所述处理器核集包括大核和多个小核;
用于监测所述处理器核集的消耗功率的装置;
用于计算所述消耗功率和期望功率之间的误差值的装置;以及
用于确定在执行所述线程集期间存在的并行数量的装置;以及
用于基于所述误差值和所述并行数量,从由一个或多个大核到两个或两个以上小核的所述分配进行转变的装置,在所述两个或两个以上小核上,所述线程并行执行。
30.权利要求29的处理器,其中所述用于转变的装置包括用于在所述处理器核集内功率大的核和功率小的核之间改变所述线程集的分配的装置。
31.权利要求29的处理器,其中所述用于转变的装置包括用于通过配置所述处理器核集内所述功率大的核和所述功率小的核而改变所述功率大的核和所述功率小的核之间所述线程集的所述分配的装置。
32.权利要求29的处理器,还包括用于对所述误差数值随时间积分的装置。
33.权利要求29的处理器,还包括用于随时间采样所述误差数值的装置。
CNB2005800328354A 2004-09-28 2005-09-28 根据可用并行数目改变每条指令能量的方法和设备 Active CN100565426C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/952,627 2004-09-28
US10/952,627 US7437581B2 (en) 2004-09-28 2004-09-28 Method and apparatus for varying energy per instruction according to the amount of available parallelism

Publications (2)

Publication Number Publication Date
CN101076770A CN101076770A (zh) 2007-11-21
CN100565426C true CN100565426C (zh) 2009-12-02

Family

ID=35759336

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800328354A Active CN100565426C (zh) 2004-09-28 2005-09-28 根据可用并行数目改变每条指令能量的方法和设备

Country Status (6)

Country Link
US (1) US7437581B2 (zh)
JP (6) JP4898687B2 (zh)
KR (1) KR100880060B1 (zh)
CN (1) CN100565426C (zh)
TW (1) TWI315847B (zh)
WO (1) WO2006037119A2 (zh)

Families Citing this family (198)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US7227383B2 (en) 2004-02-19 2007-06-05 Mosaid Delaware, Inc. Low leakage and data retention circuitry
US7788427B1 (en) 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
US7702848B2 (en) * 2004-06-10 2010-04-20 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US20070094444A1 (en) * 2004-06-10 2007-04-26 Sehat Sutardja System with high power and low power processors and thread transfer
US7730335B2 (en) 2004-06-10 2010-06-01 Marvell World Trade Ltd. Low power computer with main and auxiliary processors
US20070083785A1 (en) * 2004-06-10 2007-04-12 Sehat Sutardja System with high power and low power processors and thread transfer
US8607241B2 (en) 2004-06-30 2013-12-10 Intel Corporation Compare and exchange operation using sleep-wakeup mechanism
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
US7603571B2 (en) * 2004-10-08 2009-10-13 Dell Products L.P. System and method for regulating the power consumption of a computer system
US8719819B2 (en) * 2005-06-30 2014-05-06 Intel Corporation Mechanism for instruction set based thread execution on a plurality of instruction sequencers
EP1839104A2 (en) * 2005-01-12 2007-10-03 Nxp B.V. Method and apparatus for tuning a digital system
US20060294401A1 (en) * 2005-06-24 2006-12-28 Dell Products L.P. Power management of multiple processors
US7613935B2 (en) * 2005-07-29 2009-11-03 Hewlett-Packard Development Company, L.P. Power monitoring for processor module
US7461275B2 (en) 2005-09-30 2008-12-02 Intel Corporation Dynamic core swapping
US8108863B2 (en) * 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
US7802073B1 (en) 2006-03-29 2010-09-21 Oracle America, Inc. Virtual core management
US20080005591A1 (en) * 2006-06-28 2008-01-03 Trautman Mark A Method, system, and apparatus for dynamic thermal management
US7836212B2 (en) * 2006-07-20 2010-11-16 Oracle America, Inc. Reflecting bandwidth and priority in network attached storage I/O
US20080263324A1 (en) * 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US7941805B2 (en) * 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US8429656B1 (en) * 2006-11-02 2013-04-23 Nvidia Corporation Thread count throttling for efficient resource utilization
US8060765B1 (en) * 2006-11-02 2011-11-15 Nvidia Corporation Power estimation based on block activity
US8117478B2 (en) 2006-12-29 2012-02-14 Intel Corporation Optimizing power usage by processor cores based on architectural events
US7793125B2 (en) * 2007-01-10 2010-09-07 International Business Machines Corporation Method and apparatus for power throttling a processor in an information handling system
US7895454B2 (en) * 2007-02-06 2011-02-22 International Business Machines Corporation Instruction dependent dynamic voltage compensation
US7971035B2 (en) 2007-02-06 2011-06-28 International Business Machines Corporation Using temperature data for instruction thread direction
US8615767B2 (en) * 2007-02-06 2013-12-24 International Business Machines Corporation Using IR drop data for instruction thread direction
US7779235B2 (en) * 2007-02-06 2010-08-17 International Business Machines Corporation Using performance data for instruction thread direction
US7865750B2 (en) 2007-02-06 2011-01-04 International Business Machines Corporation Fan speed control from adaptive voltage supply
US7936153B2 (en) * 2007-02-06 2011-05-03 International Business Machines Corporation On-chip adaptive voltage compensation
US8022685B2 (en) * 2007-02-06 2011-09-20 International Business Machines Corporation Temperature dependent voltage source compensation
US7900069B2 (en) * 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
US8161482B1 (en) * 2007-04-13 2012-04-17 Marvell International Ltd. Power optimization for multi-core devices
US7734873B2 (en) * 2007-05-29 2010-06-08 Advanced Micro Devices, Inc. Caching of microcode emulation memory
KR100801630B1 (ko) * 2007-06-15 2008-02-05 디비코 주식회사 멀티코어 프로세서를 이용한 분산 디코딩 처리 장치 및방법
US7865751B2 (en) 2007-06-18 2011-01-04 Intel Corporation Microarchitecture controller for thin-film thermoelectric cooling
US7797512B1 (en) 2007-07-23 2010-09-14 Oracle America, Inc. Virtual core management
JP4834625B2 (ja) * 2007-07-31 2011-12-14 株式会社東芝 電源管理装置及び電源管理方法
US8005880B2 (en) * 2007-08-24 2011-08-23 International Business Machines Corporation Half width counting leading zero circuit
US8185572B2 (en) * 2007-08-24 2012-05-22 International Business Machines Corporation Data correction circuit
US7797131B2 (en) * 2007-08-24 2010-09-14 International Business Machines Corporation On-chip frequency response measurement
US8365184B2 (en) * 2007-08-31 2013-01-29 Apple Inc. Multi-core resource utilization planning
US8555283B2 (en) * 2007-10-12 2013-10-08 Oracle America, Inc. Temperature-aware and energy-aware scheduling in a computer system
US8032772B2 (en) * 2007-11-15 2011-10-04 Intel Corporation Method, apparatus, and system for optimizing frequency and performance in a multi-die microprocessor
US8302098B2 (en) * 2007-12-06 2012-10-30 Oracle America, Inc. Hardware utilization-aware thread management in multithreaded computer systems
US7962770B2 (en) * 2007-12-19 2011-06-14 International Business Machines Corporation Dynamic processor reconfiguration for low power without reducing performance based on workload execution characteristics
US7996346B2 (en) 2007-12-19 2011-08-09 International Business Machines Corporation Method for autonomic workload distribution on a multicore processor
KR101400286B1 (ko) 2008-01-22 2014-05-26 삼성전자주식회사 다중 프로세서 시스템에서 작업을 이동시키는 방법 및 장치
CN101493761B (zh) 2008-01-25 2013-05-29 国际商业机器公司 处理器流水线处理指令的方法及相应的处理器
KR100951671B1 (ko) * 2008-02-14 2010-04-07 사단법인 한국전자정보통신산업진흥회 멀티미디어 ic칩의 전력제어 장치 및 방법
US8028180B2 (en) * 2008-02-20 2011-09-27 International Business Machines Corporation Method and system for power conservation in a hierarchical branch predictor
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
KR100950874B1 (ko) * 2008-03-06 2010-04-06 주식회사 텔레칩스 동적 전압 제어 시스템 및 그 제어 방법
US20090235108A1 (en) * 2008-03-11 2009-09-17 Gold Spencer M Automatic processor overclocking
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
US20110213947A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20110213950A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20110213998A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US7921280B2 (en) * 2008-06-27 2011-04-05 Intel Corporation Selectively powered retirement unit using a partitioned allocation array and a partitioned writeback array
US8892916B2 (en) * 2008-08-06 2014-11-18 International Business Machines Corporation Dynamic core pool management
CN101661406A (zh) * 2008-08-28 2010-03-03 国际商业机器公司 处理单元调度装置和方法
US8918657B2 (en) 2008-09-08 2014-12-23 Virginia Tech Intellectual Properties Systems, devices, and/or methods for managing energy usage
US9189268B2 (en) * 2008-10-10 2015-11-17 Netapp, Inc. Limiting simultaneous data transfers and efficient throttle management
JP5300005B2 (ja) * 2008-11-28 2013-09-25 インターナショナル・ビジネス・マシーンズ・コーポレーション スレッド実行制御方法、およびシステム
US9323306B2 (en) * 2008-12-03 2016-04-26 Telefonaktiebolaget Lm Ericsson (Publ) Energy based time scheduler for parallel computing system
US8214672B2 (en) * 2009-01-07 2012-07-03 Micron Technology, Inc. Method and systems for power consumption management of a pattern-recognition processor
US20100192012A1 (en) * 2009-01-26 2010-07-29 Sun Microsystems, Inc. Testing multi-core processors in a system
FR2941799B1 (fr) * 2009-01-30 2011-03-04 St Nxp Wireless France Procede et systeme de gestion du fonctionnement d'un dispositif de traitement de donnees multicoeurs
US8316368B2 (en) * 2009-02-05 2012-11-20 Honeywell International Inc. Safe partition scheduling on multi-core processors
US8707061B2 (en) * 2009-03-27 2014-04-22 Qualcomm Incorporated System and method of providing scalable computing between a portable computing device and a portable computing device docking station
US20100262966A1 (en) * 2009-04-14 2010-10-14 International Business Machines Corporation Multiprocessor computing device
US20110066830A1 (en) * 2009-09-11 2011-03-17 Andrew Wolfe Cache prefill on thread migration
US8881157B2 (en) * 2009-09-11 2014-11-04 Empire Technology Development Llc Allocating threads to cores based on threads falling behind thread completion target deadline
US9569270B2 (en) * 2009-04-21 2017-02-14 Empire Technology Development Llc Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
US9189282B2 (en) * 2009-04-21 2015-11-17 Empire Technology Development Llc Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter
KR101572879B1 (ko) * 2009-04-29 2015-12-01 삼성전자주식회사 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법
US20110022870A1 (en) * 2009-07-21 2011-01-27 Microsoft Corporation Component power monitoring and workload optimization
US8856794B2 (en) * 2009-10-13 2014-10-07 Empire Technology Development Llc Multicore runtime management using process affinity graphs
US8635606B2 (en) * 2009-10-13 2014-01-21 Empire Technology Development Llc Dynamic optimization using a resource cost registry
US8892931B2 (en) 2009-10-20 2014-11-18 Empire Technology Development Llc Power channel monitor for a multicore processor
US9098274B2 (en) 2009-12-03 2015-08-04 Intel Corporation Methods and apparatuses to improve turbo performance for events handling
US8397238B2 (en) * 2009-12-08 2013-03-12 Qualcomm Incorporated Thread allocation and clock cycle adjustment in an interleaved multi-threaded processor
US9501705B2 (en) 2009-12-15 2016-11-22 Micron Technology, Inc. Methods and apparatuses for reducing power consumption in a pattern recognition processor
US8689037B2 (en) * 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US9128705B2 (en) 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US8909962B2 (en) 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8650426B2 (en) * 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US9563250B2 (en) * 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US20110145559A1 (en) * 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US8775830B2 (en) 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8549330B2 (en) * 2009-12-18 2013-10-01 International Business Machines Corporation Dynamic energy management
KR101155202B1 (ko) * 2009-12-24 2012-06-13 포항공과대학교 산학협력단 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
US8356194B2 (en) * 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US8549339B2 (en) * 2010-02-26 2013-10-01 Empire Technology Development Llc Processor core communication in multi-core processor
US8418187B2 (en) * 2010-03-01 2013-04-09 Arm Limited Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system
KR101653204B1 (ko) * 2010-03-16 2016-09-01 삼성전자주식회사 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법
WO2011155047A1 (ja) * 2010-06-10 2011-12-15 富士通株式会社 マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム
GB2481232A (en) * 2010-06-16 2011-12-21 Advanced Risc Mach Ltd Cache for a multiprocessor system which can treat a local access operation as a shared access operation
US20110320766A1 (en) * 2010-06-29 2011-12-29 Youfeng Wu Apparatus, method, and system for improving power, performance efficiency by coupling a first core type with a second core type
US8689021B1 (en) * 2010-09-10 2014-04-01 Marvell International Ltd. System and method for selecting a power management configuration in a multi-core environment according to various operating conditions such as voltage, frequency, power mode, and utilization factor varied on a per-core basis
US8495395B2 (en) * 2010-09-14 2013-07-23 Advanced Micro Devices Mechanism for controlling power consumption in a processing node
US8943334B2 (en) * 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US8656408B2 (en) 2010-09-30 2014-02-18 International Business Machines Corporations Scheduling threads in a processor based on instruction type power consumption
US8677361B2 (en) * 2010-09-30 2014-03-18 International Business Machines Corporation Scheduling threads based on an actual power consumption and a predicted new power consumption
EP2442228A1 (en) 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
US9317082B2 (en) 2010-10-13 2016-04-19 Advanced Micro Devices, Inc. Controlling operation of temperature sensors
JP5364070B2 (ja) * 2010-10-20 2013-12-11 株式会社日立製作所 仮想サーバ管理装置
KR101738641B1 (ko) 2010-12-17 2017-05-23 삼성전자주식회사 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법
US8972707B2 (en) * 2010-12-22 2015-03-03 Via Technologies, Inc. Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin
US8706789B2 (en) * 2010-12-22 2014-04-22 Intel Corporation Performing reciprocal instructions with high accuracy
JP5644866B2 (ja) * 2011-01-13 2014-12-24 富士通株式会社 スケジューリング方法及びスケジューリングシステム
JP5568491B2 (ja) 2011-01-31 2014-08-06 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
WO2012112302A2 (en) * 2011-02-17 2012-08-23 Siemens Aktiengesellschaft Parallel processing in human-machine interface applications
US8683243B2 (en) * 2011-03-11 2014-03-25 Intel Corporation Dynamic core selection for heterogeneous multi-core systems
US8695008B2 (en) 2011-04-05 2014-04-08 Qualcomm Incorporated Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
US8910177B2 (en) * 2011-04-14 2014-12-09 Advanced Micro Devices, Inc. Dynamic mapping of logical cores
US8782645B2 (en) * 2011-05-11 2014-07-15 Advanced Micro Devices, Inc. Automatic load balancing for heterogeneous cores
US8683468B2 (en) 2011-05-16 2014-03-25 Advanced Micro Devices, Inc. Automatic kernel migration for heterogeneous cores
EP2681656B1 (de) * 2011-05-17 2017-01-18 Siemens Aktiengesellschaft Multicore host-system mit einer echtzeit-erweiterung und verfahren zum betreiben eines solchen host-systems
US9088951B2 (en) 2011-05-25 2015-07-21 Qualcomm Incorporated Dynamic feature-aware power management
US8661279B2 (en) * 2011-07-19 2014-02-25 Hewlett-Packard Development Company, L.P. Power capping using C-states
JP5786641B2 (ja) * 2011-10-25 2015-09-30 富士通株式会社 携帯端末装置の制御方法、制御プログラム及び携帯端末装置
US9347836B2 (en) 2011-11-15 2016-05-24 Ati Technologies Ulc Dynamic voltage reference for sampling delta based temperature sensor
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
US9075610B2 (en) * 2011-12-15 2015-07-07 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation
US9304570B2 (en) * 2011-12-15 2016-04-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements
US9569278B2 (en) * 2011-12-22 2017-02-14 Intel Corporation Asymmetric performance multicore architecture with same instruction set architecture
US9436512B2 (en) * 2011-12-22 2016-09-06 Board Of Supervisors Of Louisana State University And Agricultural And Mechanical College Energy efficient job scheduling in heterogeneous chip multiprocessors based on dynamic program behavior using prim model
WO2013101032A1 (en) 2011-12-29 2013-07-04 Intel Corporation Migrating threads between asymmetric cores in a multiple core processor
US9710306B2 (en) * 2012-04-09 2017-07-18 Nvidia Corporation Methods and apparatus for auto-throttling encapsulated compute tasks
US20130283280A1 (en) * 2012-04-20 2013-10-24 Qualcomm Incorporated Method to reduce multi-threaded processor power consumption
US9003218B2 (en) * 2012-05-21 2015-04-07 International Business Machines Corporation Power shifting in multicore platforms by varying SMT levels
US9569279B2 (en) 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing
JP2014048972A (ja) * 2012-08-31 2014-03-17 Fujitsu Ltd 処理装置、情報処理装置、及び消費電力管理方法
US20140181830A1 (en) * 2012-12-26 2014-06-26 Mishali Naik Thread migration support for architectually different cores
US9195285B2 (en) * 2012-12-27 2015-11-24 Intel Corporation Techniques for platform duty cycling
US20140189302A1 (en) * 2012-12-28 2014-07-03 Intel Corporation Optimal logical processor count and type selection for a given workload based on platform thermals and power budgeting constraints
US10162687B2 (en) * 2012-12-28 2018-12-25 Intel Corporation Selective migration of workloads between heterogeneous compute elements based on evaluation of migration performance benefit and available energy and thermal budgets
US10140129B2 (en) 2012-12-28 2018-11-27 Intel Corporation Processing core having shared front end unit
US9417873B2 (en) 2012-12-28 2016-08-16 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US9361116B2 (en) 2012-12-28 2016-06-07 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10346195B2 (en) 2012-12-29 2019-07-09 Intel Corporation Apparatus and method for invocation of a multi threaded accelerator
KR102082859B1 (ko) 2013-01-07 2020-02-28 삼성전자주식회사 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법
US9575542B2 (en) * 2013-01-31 2017-02-21 Hewlett Packard Enterprise Development Lp Computer power management
US9727345B2 (en) * 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
US10423216B2 (en) * 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
US9383806B2 (en) 2013-04-17 2016-07-05 Apple Inc. Multi-core processor instruction throttling
US9588570B2 (en) * 2013-04-30 2017-03-07 Samsung Electronics Co., Ltd. Apparatus and method for adjusting bandwidth
WO2014185906A1 (en) 2013-05-15 2014-11-20 Empire Technology Development, Llc Core affinity bitmask translation
US9304573B2 (en) 2013-06-21 2016-04-05 Apple Inc. Dynamic voltage and frequency management based on active processors
US9195291B2 (en) 2013-06-21 2015-11-24 Apple Inc. Digital power estimator to control processor power consumption
JP6171658B2 (ja) * 2013-07-19 2017-08-02 富士通株式会社 並列処理最適化プログラム、並列処理最適化方法および情報処理装置
CN104346226A (zh) * 2013-08-09 2015-02-11 联想(北京)有限公司 处理器频率控制方法及电子设备
US9671844B2 (en) 2013-09-26 2017-06-06 Cavium, Inc. Method and apparatus for managing global chip power on a multicore system on chip
US10503513B2 (en) * 2013-10-23 2019-12-10 Nvidia Corporation Dispatching a stored instruction in response to determining that a received instruction is of a same instruction type
US9606605B2 (en) 2014-03-07 2017-03-28 Apple Inc. Dynamic voltage margin recovery
US9575867B2 (en) 2014-10-21 2017-02-21 International Business Machines Corporation Processor stressmarks generation
US9588863B2 (en) 2014-10-21 2017-03-07 International Business Machines Corporation Generation and application of stressmarks in a computer system
US20160147536A1 (en) * 2014-11-24 2016-05-26 International Business Machines Corporation Transitioning the Processor Core from Thread to Lane Mode and Enabling Data Transfer Between the Two Modes
US9696787B2 (en) * 2014-12-10 2017-07-04 Qualcomm Innovation Center, Inc. Dynamic control of processors to reduce thermal and power costs
KR102352756B1 (ko) 2015-04-29 2022-01-17 삼성전자주식회사 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치
US10235219B2 (en) * 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US9740266B2 (en) * 2015-09-04 2017-08-22 Mediatek Inc. Apparatus and method for controlling multi-core of electronic device
US9891926B2 (en) * 2015-09-30 2018-02-13 International Business Machines Corporation Heterogeneous core microarchitecture
JP6631374B2 (ja) * 2016-04-13 2020-01-15 富士通株式会社 情報処理装置、動作状況収集プログラム及び動作状況収集方法
US10296460B2 (en) * 2016-06-29 2019-05-21 Oracle International Corporation Prefetch bandwidth throttling by dynamically adjusting miss buffer prefetch-dropping thresholds
CN106292976A (zh) * 2016-07-21 2017-01-04 张升泽 电子芯片内部电压分配方法及系统
WO2018014298A1 (zh) * 2016-07-21 2018-01-25 张升泽 电子芯片内部电压分配方法及系统
CN106155815A (zh) * 2016-07-21 2016-11-23 张升泽 电流在多个内核中的分配方法及系统
WO2018018371A1 (zh) * 2016-07-25 2018-02-01 张升泽 多核芯片电压计算方法及系统
CN106250235A (zh) * 2016-07-26 2016-12-21 张升泽 基于多内核芯片的多任务调度方法及系统
WO2018018424A1 (zh) * 2016-07-26 2018-02-01 张升泽 基于芯片的温度控制方法及系统
CN106201726A (zh) * 2016-07-26 2016-12-07 张升泽 多内核芯片线程分配方法及系统
CN106227604A (zh) * 2016-07-27 2016-12-14 李媛媛 芯片中温度降低方法及系统
WO2018018450A1 (zh) * 2016-07-27 2018-02-01 李媛媛 电流限制在多核芯片中的应用方法及系统
WO2018018448A1 (zh) * 2016-07-27 2018-02-01 李媛媛 芯片中温度降低方法及系统
CN106292995A (zh) * 2016-07-27 2017-01-04 李媛媛 电流限制在多核芯片中的应用方法及系统
WO2018018449A1 (zh) * 2016-07-27 2018-02-01 李媛媛 基于多核芯片的电压降低方法及系统
WO2018018451A1 (zh) * 2016-07-27 2018-02-01 李媛媛 电子芯片中的功率分配方法及系统
CN106292996A (zh) * 2016-07-27 2017-01-04 李媛媛 基于多核芯片的电压降低方法及系统
US10372494B2 (en) * 2016-11-04 2019-08-06 Microsoft Technology Licensing, Llc Thread importance based processor core partitioning
US11295204B2 (en) 2017-01-06 2022-04-05 International Business Machines Corporation Area-efficient, reconfigurable, energy-efficient, speed-efficient neural network substrate
KR102643797B1 (ko) * 2017-01-10 2024-03-05 삼성전자주식회사 동적 발열 관리 방법
US10491524B2 (en) 2017-11-07 2019-11-26 Advanced Micro Devices, Inc. Load balancing scheme
CN108107782B (zh) * 2017-12-18 2021-04-16 宁波三星医疗电气股份有限公司 一种用于电力能源采集设备的自控并发数据采集方法
WO2019168528A1 (en) * 2018-02-28 2019-09-06 Intel Corporation Controlling a processing performance level depending on energy expenditure
CN110347486B (zh) * 2019-07-02 2023-09-15 Oppo广东移动通信有限公司 应用程序的线程分配方法、装置、设备及可读存储介质
CN110347508A (zh) * 2019-07-02 2019-10-18 Oppo广东移动通信有限公司 应用程序的线程分配方法、装置、设备及可读存储介质
US10948957B1 (en) 2019-09-26 2021-03-16 Apple Inc. Adaptive on-chip digital power estimator
US11321123B2 (en) * 2019-11-21 2022-05-03 International Business Machines Corporation Determining an optimum number of threads to make available per core in a multi-core processor complex to executive tasks
CN112181124B (zh) * 2020-09-11 2023-09-01 华为技术有限公司 功耗管理的方法和相关设备
CN115904647A (zh) * 2021-09-30 2023-04-04 荣耀终端有限公司 一种任务调度方法、电子设备、芯片系统及存储介质

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01155459A (ja) * 1987-12-14 1989-06-19 Hitachi Ltd プロセツサおよび並列計算機
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
JP3696901B2 (ja) * 1994-07-19 2005-09-21 キヤノン株式会社 負荷分散方法
US5719800A (en) 1995-06-30 1998-02-17 Intel Corporation Performance throttling to reduce IC power consumption
JPH09138716A (ja) * 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
US6411156B1 (en) 1997-06-20 2002-06-25 Intel Corporation Employing transistor body bias in controlling chip parameters
JPH11338719A (ja) * 1998-05-28 1999-12-10 Fujitsu Ltd 計算機システム
FR2784457B1 (fr) * 1998-10-13 2001-01-05 Sextant Avionique Instruments combines de secours pour aeronef
US6367023B2 (en) 1998-12-23 2002-04-02 Intel Corporation Method and apparatus of measuring current, voltage, or duty cycle of a power supply to manage power consumption in a computer system
JP2000222376A (ja) * 1999-01-29 2000-08-11 Toshiba Corp 計算機システムとその運用方法
JP2000322259A (ja) * 1999-05-11 2000-11-24 Hitachi Ltd データ処理装置
US20020023123A1 (en) * 1999-07-26 2002-02-21 Justin P. Madison Geographic data locator
US6564328B1 (en) 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
JP2002007367A (ja) * 2000-06-19 2002-01-11 Nec Corp モナーク・プロセッサの仮想管理による切り替え方法
JP2002108958A (ja) * 2000-09-26 2002-04-12 Toshiba Corp 回路設計システム、回路設計方法および回路設計プログラムを格納したコンピュータ読取り可能な記録媒体
JP2002132741A (ja) * 2000-10-20 2002-05-10 Hitachi Ltd プロセッサ追加方法、計算機及び記録媒体
US7174194B2 (en) * 2000-10-24 2007-02-06 Texas Instruments Incorporated Temperature field controlled scheduling for processing systems
JP3860116B2 (ja) * 2000-10-31 2006-12-20 ミレニアル・ネット・インコーポレーテッド 最適化電力効率によるネットワークプロセッシングシステム
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
JP2003131900A (ja) * 2001-10-24 2003-05-09 Hitachi Ltd サーバシステム運用管理方式
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US6639428B2 (en) 2001-12-20 2003-10-28 Advanced Technology Materials, Inc. Method and system for dynamically clocking digital systems based on power usage
US7080379B2 (en) * 2002-06-20 2006-07-18 International Business Machines Corporation Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue
US6934865B2 (en) * 2002-07-09 2005-08-23 University Of Massachusetts Controlling a processor resource based on a compile-time prediction of number of instructions-per-cycle that will be executed across plural cycles by the processor
US7360220B2 (en) * 2002-10-31 2008-04-15 Intel Corporation Methods and apparatus for multi-threading using differently coded software segments to perform an algorithm
US6711447B1 (en) * 2003-01-22 2004-03-23 Intel Corporation Modulating CPU frequency and voltage in a multi-core CPU architecture
US7134031B2 (en) * 2003-08-04 2006-11-07 Arm Limited Performance control within a multi-processor system
US20050155032A1 (en) * 2004-01-12 2005-07-14 Schantz John L. Dynamic load balancing
US20070094444A1 (en) * 2004-06-10 2007-04-26 Sehat Sutardja System with high power and low power processors and thread transfer
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

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
. .
A Multi-Core Approach to Addressing the Energy-ComplexityProblem in Microprocessors. Rakesh Kumar.In Proceedings of the Workshop on Complexity-effective Design(WCED). 2006
A Multi-Core Approach to Addressing the Energy-ComplexityProblem in Microprocessors. Rakesh Kumar.In Proceedings of the Workshop on Complexity-effective Design(WCED). 2006 *

Also Published As

Publication number Publication date
JP2010092483A (ja) 2010-04-22
KR100880060B1 (ko) 2009-01-22
WO2006037119A2 (en) 2006-04-06
JP6049668B2 (ja) 2016-12-21
JP2013218721A (ja) 2013-10-24
JP2016076268A (ja) 2016-05-12
JP2015028810A (ja) 2015-02-12
CN101076770A (zh) 2007-11-21
US7437581B2 (en) 2008-10-14
JP2011210275A (ja) 2011-10-20
TWI315847B (en) 2009-10-11
KR20070049226A (ko) 2007-05-10
JP6289444B2 (ja) 2018-03-07
JP4898687B2 (ja) 2012-03-21
WO2006037119A3 (en) 2007-01-25
TW200632742A (en) 2006-09-16
JP5465215B2 (ja) 2014-04-09
US20060095807A1 (en) 2006-05-04
JP5709938B2 (ja) 2015-04-30
JP2008513912A (ja) 2008-05-01

Similar Documents

Publication Publication Date Title
CN100565426C (zh) 根据可用并行数目改变每条指令能量的方法和设备
Burd et al. A dynamic voltage scaled microprocessor system
KR101842016B1 (ko) 멀티 코어 환경에서의 동적 전력 제어방법
Burd et al. Energy efficient microprocessor design
Huh Future direction of power management in mobile devices
Bai et al. Voltage regulator efficiency aware power management
Muralidhar et al. Energy efficient computing systems: Architectures, abstractions and modeling to techniques and standards
Al-Dulaimy et al. Power management in virtualized data centers: state of the art
Xiang et al. Run-time management for multicore embedded systems with energy harvesting
Shafique et al. Agent-based distributed power management for Kilo-core processors: Special session:“Keeping Kilo-core chips cool: New directions and emerging solutions”
Haj-Yahya et al. Power management of modern processors
Kim et al. 2.4 A 7nm high-performance and energy-efficient mobile application processor with tri-cluster CPUs and a sparsity-aware NPU
WO2022132276A1 (en) Hardware and software coordinated cost-aware low power state selection
Khan et al. Scheduling based energy optimization technique in multiprocessor embedded systems
Tilli et al. Don't burn your mobile! safe computational re-sprinting via model predictive control
Kaur et al. Survey on energy efficient scheduling techniques on cloud computing
Clark et al. Dozznoc: Reducing static and dynamic energy in nocs with low-latency voltage regulators using machine learning
Nagalakshmi et al. Analysis of power management techniques in multicore processors
Shieh et al. Energy-efficient tasks scheduling algorithm for dual-core real-time systems
Sassolas et al. A power-aware online scheduling algorithm for streaming applications in embedded MPSoC
Kwon et al. Late Breaking Results: Reinforcement Learning-based Power Management Policy for Mobile Device Systems
Siddesha et al. A review on techniques for power management in embedded systems
Kim et al. Energy-aware core switching for mobile devices with a heterogeneous multicore processor
Kwon et al. Reinforcement learning-based power management policy for mobile device systems: late breaking results
Nagalakshmi et al. Energy minimization techniques over multicore processing system: A review

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210603

Address after: California, USA

Patentee after: Facebook, Inc.

Address before: California, USA

Patentee before: INTEL Corp.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Yuan platform Co.

Address before: California, USA

Patentee before: Facebook, Inc.