CN101076770A - 根据可用并行数目改变每条指令能量的方法和设备 - Google Patents
根据可用并行数目改变每条指令能量的方法和设备 Download PDFInfo
- Publication number
- CN101076770A CN101076770A CNA2005800328354A CN200580032835A CN101076770A CN 101076770 A CN101076770 A CN 101076770A CN A2005800328354 A CNA2005800328354 A CN A2005800328354A CN 200580032835 A CN200580032835 A CN 200580032835A CN 101076770 A CN101076770 A CN 101076770A
- Authority
- CN
- China
- Prior art keywords
- nuclear
- processor
- thread
- power consumption
- logic
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000008859 change Effects 0.000 claims abstract description 42
- 210000002231 macronucleus Anatomy 0.000 claims description 28
- 238000005259 measurement Methods 0.000 claims description 27
- 238000013508 migration Methods 0.000 claims description 26
- 230000005012 migration Effects 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 21
- 230000010354 integration Effects 0.000 claims description 17
- 238000005070 sampling Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000009826 distribution Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims 2
- 230000001276 controlling effect Effects 0.000 description 28
- 238000005516 engineering process Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 6
- 241001269238 Data Species 0.000 description 4
- 230000009471 action Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000005611 electricity Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 210000004940 nucleus Anatomy 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000005025 nuclear technology Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- PICXIOQBANWBIZ-UHFFFAOYSA-N zinc;1-oxidopyridine-2-thione Chemical class [Zn+2].[O-]N1C=CC=CC1=S.[O-]N1C=CC=CC1=S PICXIOQBANWBIZ-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline or 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/3897—Concurrent instruction execution, e.g. pipeline or 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Abstract
本发明揭示了用于改变多核处理器配置的方法和设备。在一个实施例中,节流模块(或者节流逻辑)可确定当前执行程序中存在的并行数量,并改变各种核上该程序的线程的执行。如果并行数量大,则处理器可以配置成在配置成消耗更低功率的核上运行更大数量的线程。如果并行数量小,则处理器可以配置成在配置成用于更高标量性能的核上运行更小数量的线程。
Description
技术领域
本发明一般涉及可以执行具有变化数量的标量和并行资源需求的程序的微处理器,更具体地涉及采用多个核的微处理器。
背景技术
在一些实施例中,计算机工作负荷连续地从具有少量内在并行(parallelism)(主要为标量)的工作负荷转到具有显著数量的并行(主要为并行)的工作负荷,且这种本性在软件的不同程序段之间可能不同。典型的标量工作负荷包括软件开发工具、办公室生产力套装软件、和操作***内核例程。典型的并行工作负荷包括3D图形、媒体处理、和科学应用。标量工作负荷可退回范围0.2至2.0的IPC(每个时钟执行的指令),而并行工作负荷可以获得范围为4至几千IPC的吞吐量。后一种的高IPC通过使用指令级的并行和线程级的并行可以得到。
现有技术微处理器通常设计成以标量或并行计算机性能为主要目标。为了实现高的标量性能,经常期望尽可能地减小执行潜伏期。减小有效潜伏期的微架构技术包括预测执行、分支预测、和高速缓存。对高标量性能的追求已经实现了大的乱序、高度预测、深管线微处理器。为了获得高的并行计算机性能,则期望提供尽可能大的执行吞吐量(带宽)。提高吞吐量的微架构技术包括宽超标量处理、单指令多数据的指令、芯片级多处理、以及多线程。
当尝试构建可同时在标量和并行任务上执行良好的微处理器时会产生问题。一个问题可能起因于如下理解,即,实现短潜伏期所需的设计技术在某些情形中可能与实现高吞吐量所需的设计技术大相迥异。
附图说明
在附图中示范性地而非限制性地阐述本发明,其中在附图中使用相似的参考数字表示相似的元件。附图中:
图1为根据一个实施例的包括可由电压和频率配置的核的处理器的示意性图示。
图2为根据一个实施例的包括通过处理功率和功耗可选择的核的处理器示意性图示。
图3为根据一个实施例的包括由可选的性能电路配置的核的处理器的示意性图示。
图4为根据本发明一个实施例的包括可由可选的预测电路配置的核的处理器的示意性图示。
图5为根据本发明一个实施例的包括核的处理器以及节流细节的示意性图示。
图6为示出了根据本发明一个实施例的转变到不同核配置的流程图。
图7为示出了根据本发明另一个实施例的转变到不同核配置的流程图。
图8为示出了根据本发明另一个实施例的转变到不同核配置的流程图。
图9为示出了根据本发明另一个实施例的转变到不同核配置的流程图。
图10A为根据本发明一个实施例的包括具有节流和多个核的处理器的***的示意性图示。
图10B为根据本发明另一实施例的包括具有节流和多个核的处理器的***的示意性图示。
发明详述
下述描述了根据软件程序中可用的并行数量而改变耗费以处理各个指令的能量数量的技术。在下述描述中,陈述了许多具体细节以提供对本发明的更彻底的理解,例如逻辑实施、软件模块分配、总线以及其他界面信号技术。然而,本领域技术人员将会了解,无需这些具体细节亦可实践本发明。在其他情形中,没有详细地示出控制结构、门级电路以及完整软件指令序列以免本发明变得不明确。本领域普通技术人员借助于此处的描述将能够实施恰当的功能而无需过多的实验。在某些实施例中,本发明披露成例如由Intel公司制造的Pentium兼容处理器的多核实施的形式。然而,本发明可以实践于其他类型的处理器,例如Itanium处理器系列兼容处理器、X-Scale系列兼容处理器、或者来自其他厂商或设计者的任何处理器架构的任何各种不同的通用处理器。另外,一些实施例可包括或者可以是专用处理器,例如图形、网络、图像、通信、或者任何其他已知或以其他方式可得到类型的处理器。
可以基于每瓦特的每秒指令数(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,示出了根据一个实施例的包括可由电压和频率配置的核的处理器的示意性图示。示出了核1120、核2130、核3140和核4150,但是在其他实施例中,处理器中可能存在多于四个或者少于四个核。一个或多个这些核可具有电压控制电路和时钟频率控制电路。图1清楚地示出了核1120具有电压控制电路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核1220、A核2222、和B核1至60230-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
RT | QAC | QBC | RT | QAC | QBC |
01234…101112131415…28 | 012222221111 | 00012891012131427 | 293031323334353637383940…60 | 1111111100000 | 28293031323334353738394060 |
当运行线程的数目增大且新线程启动(在一个实施例中通过处理器间中断)时,该节流模块可确定当前运行线程的数目。取决于当前运行线程的数目,该新线程可以根据上述表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显示各种可选的性能电路。调度程序A 334可耦合到可选调度程序B 336,该可选调度程序B 336在接通时可以提高性能。执行单元1 340可以耦合到可选执行单元2至4 342、344、346,这些可选执行单元在接通时可以提高性能。零级(L0)高速缓存A322可以耦合到L0高速缓存B 324,该L 0高速缓存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。在其他实施例中,可以使用比四个核更多或更少的核。核1 420显示各种可选的预测电路。预拾取级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至M512至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
CV | 伏特 | 频率(GHz) |
01234567 | 1.41.41.41.21.11.01.00.9 | 4443.32.92.52.52.2 |
在一个实施例中,例如线程可以分配到大核和小核的图2的实施例,控制逻辑948可以将线程分配到核并根据对于软件是透明的控制值而迁移线程。线程迁移机制可包括用于将“逻辑”处理器核映射到“物理”处理器核的表或逻辑块。该线程迁移机制还可包括需要的发出迁移信号的中断、复制处理器状态的微代码或等效逻辑、以及各种处理器核之间的互连网络。软件看到的逻辑处理器的数目可以等于正在运行的小核的数目。当功率预算允许时,大核可以替代小核。在一个实施例中,用于预算作为控制值函数的大核使用的表或逻辑决示于表III。
表III
CV | 大核的数量 |
012 | 210 |
这里进行了一个简化的假设,即,当大核无法使用时,线程可以在小核上运行。
在一个实施例中,例如线程可以分配到其资源可以动态变化的核的图3的实施例,控制逻辑548可以给出改变核的功能单元的数量或者容量的控制值。在改变核容量要求阵列被填充或往回写或者管线需要被重新填充的一些实施例中,用于这些改变的时间范围可以为10微妙。可以使用表或逻辑决预算作为控制值函数的核功能单元的使用。在一个实施例中,用于预算作为控制值函数的功能单元使用的表或逻辑决示于表IV,其中该功能单元可以是核内的执行单元。
表IV
CV | 执行单元 |
012345678 | 444221111 |
在一个实施例中,例如线程可以分配到其预测数量可动态变化的核的图4实施例,控制逻辑548可以给出改变核内容许的预测数量的控制值。可以使用表或逻辑块预算作为控制值函数的核内预测数量的使用。在一个实施例中,用于调整作为控制值函数的预测数量的表或逻辑块示于表V,其中预测的数量可以由核中在非预测指令之前预测执行指令的数目给出。
表V
CV | 预测指令 |
012345678 | 128128128856451423632 |
在许多实施例中,处理器核可以包括多个上述属性。例如,处理器可以具有能够进行电压和频率缩放的核,且还具有可调整数量的预测执行。在一个实施例中,图2的大的A核和小的B核还可以具有如图1所示的电压和频率缩放。对于一个实施例,电压和频率可以固定,将大的A核配置成运行于高电压而小的B核配置成运行于低电压。在另外实施例中,大的A核和小的B核之间的电压和频率调整范围可以不同。为了辅助大的A核和小的B核之间的迁移,线程可以从大的A核迁移到小的B核,而小的B核最初运行于高的电压和频率。一旦大的A核不运行,则B核的电压和频率可以随后降低。
此外,可以使用表或逻辑块将线程分配到大的A核或小的B核,并进一步分配核的电压和频率。在一个实施例中,用于作为控制值函数进行这些调整的表或逻辑块示于表VI。
表VI
CV | 大核的数量 | 电压 | 频率 |
0123456789 | 2211000000 | 1.41.41.41.41.41.21.11.01.00.9 | 444443.32.92.52.52.2 |
有利地在慢反馈回路550附近维持略微恒定的增益,其中在该表或逻辑块内通过使各级的功率效应的大小相似可以实现这一点。
在某些实施例中,快反馈回路560可以与先前讨论的慢反馈回路550结合使用。在一个实施例中,可以使用时钟节流540,即使时钟节流不会影响每条指令能量数量。当与前述的一个或多个慢反馈回路550结合使用时,使用时钟节流540是有利的。
在某些情况下,快反馈回路560可以施加了短潜伏期以防止过功率情形,且该施加只有当慢反馈回路550有时间作出响应时才保持有效。在未实施快反馈回路960的实施例中,处理器及其功率发送***应该设计成能够处理持续时间与慢反馈回路550的响应时间一样长的过功率情形。当添加快反馈回路560时,过功率情形持续时间不会长于快反馈回路560的响应时间,该响应时间的范围为10纳秒。
时钟节流540可以门控核时钟接通和关闭特定的负载周期,使用在计算差值的逻辑534中计算得到的误差数值作为其输入。在一个简单的实施例中,当误差数值超过固定阈值时,时钟可以停止特定数目的周期。该计算在各个时钟周期被执行并完全管线化。可以选择特定数目的周期以将功率限制为略高于期望功率(其允许慢反馈回路550作出响应),但是不大于最大功率。
在另外实施例中,时钟节流550可以响应于由计算差值的逻辑535供给的误差数值的大小(例如处理器目前的运行功率比功率阈值高多少)而调制该负载周期。在一个实施例中,负载周期和误差数值之间关系如表VII所示。
表VII
误差数值 | 负载周期 | 误差数值 | 负载周期 |
-2-10123456 | 100%100%100%100%100%100%100%100%100% | 789101112131415 | 100%94%88%81%75%69%63%56%50% |
现在参考图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可以是用于由IntelCorporation制造的Pentium系列微处理器的前端总线(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 (62)
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.权利要求26的方法,还包括对所述误差数值随时间积分。
30.权利要求26的方法,还包括随时间采样所述误差数值。
31.一种方法,包括:
确定运行线程集;以及
将各个所述线程分配到处理器核集之一,其中所述分配响应于功率预算。
32.权利要求31的方法,其中所述处理器核集包括能够作为第一类型和第二类型核的可配置核。
33.权利要求31的方法,其中所述处理器核集包括设计成第一类型和第二类型核的核。
34.权利要求31的方法,还包括将新线程分配到来自所述处理器核集的第二类型核,并将所述运行线程集之一从所述处理器核集内的第一类型核迁移到所述第二类型核。
35.权利要求34的方法,其中所述迁移由线程迁移逻辑执行。
36.权利要求34的方法,其中所述迁移响应于操作***调度程序。
37.一种***,包括:
处理器,包括监测逻辑以监测所述处理器核的属性的数值,转换逻辑以响应于所述核的所述属性确定所述处理器的功耗测量,以及控制逻辑以响应于所述功耗测量调整所述处理器的每条指令能量的度量;
音频输入/输出逻辑;以及
接口,将所述处理器耦合到所述音频输入/输出逻辑。
38.权利要求37的***,其中所述核的所述属性为核运行状态,且其中通过将所述核运行状态乘以当所述核处于所述核运行状态时每个时钟耗费的能量数量,确定所述功耗的测量。
39.权利要求37的***,其中所述核的所述属性为每个时钟退回的指令数目,且其中通过将所述每个时钟退回的指令数目乘以每个时钟每条指令耗费的能量数量,确定所述功耗的测量。
40.权利要求37的***,其中所述核的所述属性为所述核的功能块的活动状态,且其中通过将所述功能块的所述活动状态乘以当所述功能块处于所述活动状态时每个时钟耗费的能量数量,确定所述功耗的测量。
41.权利要求37的***,其中所述属性为核源电流,且其中所述功耗的测量包括所述核源电流。
42.权利要求37的***,其中所述控制逻辑响应于所述功耗的测量而调整所述处理器的工作电压和工作频率。
43.权利要求37的***,其中所述控制逻辑响应于所述功耗的测量而在所述处理器的大核和小核之间迁移程序的线程。
44.权利要求37的***,其中所述控制逻辑响应于所述功耗的测量而接通所述处理器的所述核内的可选性能电路。
45.权利要求37的***,其中所述控制逻辑响应于所述功耗的测量而接通所述处理器的所述核内的可选预测电路。
45.权利要求37的***,其中所述处理器还包括差值逻辑以计算所述功耗的测量和期望功耗之间的差值。
45.权利要求45的***,其中所述处理器还包括积分电路以确定所述功耗的测量和期望功耗之间的所述差值的时间积分。
46.权利要求45的处理器,还包括采样电路以根据采样方法将所述功耗的测量供给到所述控制逻辑。
47.一种***,包括:
处理器,包括第一多个第一类型的核;第二多个第二类型的核;以及模块,将线程分配到所述第一多个的所述第一类型核或者所述第二多个的所述第二类型核之一;
音频输入/输出逻辑;以及
接口,将所述处理器耦合到所述音频输入/输出逻辑。
48.权利要求47的***,其中所述模块根据功率预算分配所述线程。
49.权利要求47的***,其中所述模块根据分配表分配所述线程。
50.权利要求47的***,其中所述模块包括线程迁移逻辑,将新线程分配到所述第二多个核之一并将已有线程从所述第一多个核之一迁移到所述第二多个核之一。
51.权利要求50的***,其中所述线程迁移逻辑包括用于将逻辑核映射到物理核的表。
52.一种处理器,包括:
用于将线程集分配到处理器核集的装置;
用于监测所述处理器核的消耗功率的装置;
用于计算所述消耗功率和期望功率之间的误差数值的装置;以及
用于基于所述误差数值从所述分配进行转变的装置。
52.权利要求52的处理器,其中所述用于转变的装置包括用于在所述处理器核集内功率大的核和功率小的核之间改变所述线程集的分配的装置。
53.权利要求52的处理器,其中所述用于转变的装置包括用于通过配置所述处理器核集内所述功率大的核和所述功率小的核而改变所述功率大的核和所述功率小的核之间所述线程集的所述分配的装置。
54.权利要求52的处理器,还包括用于对所述误差数值随时间积分的装置。
55.权利要求52的处理器,还包括用于随时间采样所述误差数值的装置。
56.一种处理器,包括:
用于确定运行线程集的装置;以及
用于将各个所述线程分配到处理器核集之一的装置,其中所述分配响应于功率预算。
57.权利要求56的处理器,其中所述处理器核集包括能够作为第一类型和第二类型核的可配置核。
58.权利要求56的处理器,其中所述处理器核集包括设计成第一类型和第二类型核的核。
59.权利要求56的处理器,还包括用于将新线程分配到来自所述处理器核集的第二类型核的装置,以及用于将所述运行线程集之一从所述处理器核集内的第一类型核迁移到所述第二类型核的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
US10/952,627 | 2004-09-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101076770A true CN101076770A (zh) | 2007-11-21 |
CN100565426C 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) |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661406A (zh) * | 2008-08-28 | 2010-03-03 | 国际商业机器公司 | 处理单元调度装置和方法 |
US7996346B2 (en) | 2007-12-19 | 2011-08-09 | International Business Machines Corporation | Method for autonomic workload distribution on a multicore processor |
CN102473131A (zh) * | 2009-07-21 | 2012-05-23 | 微软公司 | 组件功率监测和工作负荷优化 |
CN102695998A (zh) * | 2009-12-16 | 2012-09-26 | 高通股份有限公司 | 用于在虚拟化***中控制中央处理单元功率的***和方法 |
CN104011704A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 具有相同的指令集架构(isa)的非对称性能多核架构 |
CN104077106A (zh) * | 2013-03-26 | 2014-10-01 | 威盛电子股份有限公司 | 具有原生切换机制的非对称多核心处理器 |
CN104133789A (zh) * | 2013-04-30 | 2014-11-05 | 三星电子株式会社 | 用于调整带宽的设备和方法 |
US8909962B2 (en) | 2009-12-16 | 2014-12-09 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
CN104346226A (zh) * | 2013-08-09 | 2015-02-11 | 联想(北京)有限公司 | 处理器频率控制方法及电子设备 |
CN104503830A (zh) * | 2013-03-15 | 2015-04-08 | 英特尔公司 | 用于引导异构***并呈现对称核视图的方法 |
US9081558B2 (en) | 2009-12-16 | 2015-07-14 | Qualcomm Incorporated | System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on tempature |
US9104411B2 (en) | 2009-12-16 | 2015-08-11 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US9128705B2 (en) | 2009-12-16 | 2015-09-08 | Qualcomm Incorporated | System and method for controlling central processing unit power with reduced frequency oscillations |
CN104969182A (zh) * | 2012-12-28 | 2015-10-07 | 英特尔公司 | 高动态范围软件-透明异构计算元件处理器、方法及*** |
US9176572B2 (en) | 2009-12-16 | 2015-11-03 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
CN106155815A (zh) * | 2016-07-21 | 2016-11-23 | 张升泽 | 电流在多个内核中的分配方法及*** |
CN106201726A (zh) * | 2016-07-26 | 2016-12-07 | 张升泽 | 多内核芯片线程分配方法及*** |
CN106227604A (zh) * | 2016-07-27 | 2016-12-14 | 李媛媛 | 芯片中温度降低方法及*** |
CN106250235A (zh) * | 2016-07-26 | 2016-12-21 | 张升泽 | 基于多内核芯片的多任务调度方法及*** |
CN106292995A (zh) * | 2016-07-27 | 2017-01-04 | 李媛媛 | 电流限制在多核芯片中的应用方法及*** |
CN106292996A (zh) * | 2016-07-27 | 2017-01-04 | 李媛媛 | 基于多核芯片的电压降低方法及*** |
CN106292976A (zh) * | 2016-07-21 | 2017-01-04 | 张升泽 | 电子芯片内部电压分配方法及*** |
US9563250B2 (en) | 2009-12-16 | 2017-02-07 | Qualcomm Incorporated | System and method for controlling central processing unit power based on inferred workload parallelism |
WO2018014298A1 (zh) * | 2016-07-21 | 2018-01-25 | 张升泽 | 电子芯片内部电压分配方法及*** |
WO2018018449A1 (zh) * | 2016-07-27 | 2018-02-01 | 李媛媛 | 基于多核芯片的电压降低方法及*** |
WO2018018451A1 (zh) * | 2016-07-27 | 2018-02-01 | 李媛媛 | 电子芯片中的功率分配方法及*** |
WO2018018424A1 (zh) * | 2016-07-26 | 2018-02-01 | 张升泽 | 基于芯片的温度控制方法及*** |
WO2018018450A1 (zh) * | 2016-07-27 | 2018-02-01 | 李媛媛 | 电流限制在多核芯片中的应用方法及*** |
WO2018018448A1 (zh) * | 2016-07-27 | 2018-02-01 | 李媛媛 | 芯片中温度降低方法及*** |
WO2018018371A1 (zh) * | 2016-07-25 | 2018-02-01 | 张升泽 | 多核芯片电压计算方法及*** |
CN108107782A (zh) * | 2017-12-18 | 2018-06-01 | 宁波三星医疗电气股份有限公司 | 一种用于电力能源采集设备的自控并发数据采集方法 |
CN109906421A (zh) * | 2016-11-04 | 2019-06-18 | 微软技术许可有限责任公司 | 基于线程重要性的处理器核划分 |
CN110347486A (zh) * | 2019-07-02 | 2019-10-18 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
CN110347508A (zh) * | 2019-07-02 | 2019-10-18 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
WO2022052626A1 (zh) * | 2020-09-11 | 2022-03-17 | 华为技术有限公司 | 功耗管理的方法和相关设备 |
WO2023051178A1 (zh) * | 2021-09-30 | 2023-04-06 | 荣耀终端有限公司 | 一种任务调度方法、电子设备、芯片***及存储介质 |
Families Citing this family (162)
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 |
US20070083785A1 (en) * | 2004-06-10 | 2007-04-12 | 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 |
US20070094444A1 (en) * | 2004-06-10 | 2007-04-26 | Sehat Sutardja | System with high power and low power processors and thread transfer |
US7702848B2 (en) * | 2004-06-10 | 2010-04-20 | Marvell World Trade Ltd. | Adaptive storage system including hard disk drive with flash interface |
US7788427B1 (en) | 2005-05-05 | 2010-08-31 | Marvell International Ltd. | Flash memory interface for disk drive |
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 |
US7936153B2 (en) * | 2007-02-06 | 2011-05-03 | International Business Machines Corporation | On-chip adaptive voltage compensation |
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 |
US8615767B2 (en) * | 2007-02-06 | 2013-12-24 | International Business Machines Corporation | Using IR drop data for instruction thread direction |
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 |
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 |
US8219788B1 (en) * | 2007-07-23 | 2012-07-10 | 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 |
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 |
US20110213950A1 (en) * | 2008-06-11 | 2011-09-01 | John George Mathieson | System and Method for Power Optimization |
US20110213947A1 (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 |
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 |
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 |
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 |
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 |
KR101572879B1 (ko) * | 2009-04-29 | 2015-12-01 | 삼성전자주식회사 | 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법 |
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 |
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 |
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 | 삼성전자주식회사 | 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법 |
EP2581830A4 (en) * | 2010-06-10 | 2017-01-11 | Fujitsu Limited | Multi-core processor system, method of power control, and power control program |
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 |
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 |
US8656408B2 (en) | 2010-09-30 | 2014-02-18 | International Business Machines Corporations | Scheduling threads in a processor based on instruction type 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 | 삼성전자주식회사 | 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법 |
US8706789B2 (en) * | 2010-12-22 | 2014-04-22 | Intel Corporation | Performing reciprocal instructions with high accuracy |
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 |
WO2012095984A1 (ja) * | 2011-01-13 | 2012-07-19 | 富士通株式会社 | スケジューリング方法及びスケジューリングシステム |
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 |
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 |
US9727388B2 (en) | 2011-12-29 | 2017-08-08 | 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 | 処理装置、情報処理装置、及び消費電力管理方法 |
DE112012007119T5 (de) * | 2012-12-26 | 2015-07-30 | Intel Corporation | Threadmigration-Unterstützung für Kerne unterschiedlicher Architektur |
US9195285B2 (en) * | 2012-12-27 | 2015-11-24 | Intel Corporation | Techniques for platform duty cycling |
US9361116B2 (en) | 2012-12-28 | 2016-06-07 | 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 |
US9417873B2 (en) | 2012-12-28 | 2016-08-16 | Intel Corporation | Apparatus and method for a hybrid latency-throughput processor |
WO2014105058A1 (en) * | 2012-12-28 | 2014-07-03 | Intel Corporation | Optimal logical processor count and type selection for a given workload on platform thermals and power budgeting constraints |
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 |
US9383806B2 (en) | 2013-04-17 | 2016-07-05 | Apple Inc. | Multi-core processor instruction throttling |
US9311153B2 (en) | 2013-05-15 | 2016-04-12 | Empire Technology Development Llc | Core affinity bitmask translation |
US9195291B2 (en) | 2013-06-21 | 2015-11-24 | Apple Inc. | Digital power estimator to control processor power consumption |
US9304573B2 (en) | 2013-06-21 | 2016-04-05 | Apple Inc. | Dynamic voltage and frequency management based on active processors |
JP6171658B2 (ja) * | 2013-07-19 | 2017-08-02 | 富士通株式会社 | 並列処理最適化プログラム、並列処理最適化方法および情報処理装置 |
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 |
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 |
DE112018007177T5 (de) | 2018-02-28 | 2020-12-10 | Intel Corporation | Steuerung einer verarbeitungsleistungsstufe abhängig vom energieverbrauch |
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 |
Family Cites Families (31)
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 |
EP1330699B1 (en) * | 2000-10-31 | 2010-12-22 | Millennial Net, Inc | Networked processing system with optimized power efficiency |
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 |
-
2004
- 2004-09-28 US US10/952,627 patent/US7437581B2/en active Active
-
2005
- 2005-09-28 WO PCT/US2005/035145 patent/WO2006037119A2/en active Application Filing
- 2005-09-28 CN CNB2005800328354A patent/CN100565426C/zh active Active
- 2005-09-28 KR KR1020077006963A patent/KR100880060B1/ko not_active IP Right Cessation
- 2005-09-28 JP JP2007533787A patent/JP4898687B2/ja not_active Expired - Fee Related
- 2005-09-28 TW TW094133804A patent/TWI315847B/zh active
-
2009
- 2009-10-06 JP JP2009232857A patent/JP2010092483A/ja active Pending
-
2011
- 2011-06-01 JP JP2011123762A patent/JP5465215B2/ja active Active
-
2013
- 2013-06-11 JP JP2013123127A patent/JP5709938B2/ja active Active
-
2014
- 2014-10-03 JP JP2014204987A patent/JP6049668B2/ja active Active
-
2015
- 2015-12-28 JP JP2015257488A patent/JP6289444B2/ja active Active
Cited By (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7996346B2 (en) | 2007-12-19 | 2011-08-09 | International Business Machines Corporation | Method for autonomic workload distribution on a multicore processor |
CN101661406A (zh) * | 2008-08-28 | 2010-03-03 | 国际商业机器公司 | 处理单元调度装置和方法 |
CN102473131A (zh) * | 2009-07-21 | 2012-05-23 | 微软公司 | 组件功率监测和工作负荷优化 |
US9081558B2 (en) | 2009-12-16 | 2015-07-14 | Qualcomm Incorporated | System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on tempature |
CN102695998A (zh) * | 2009-12-16 | 2012-09-26 | 高通股份有限公司 | 用于在虚拟化***中控制中央处理单元功率的***和方法 |
US9563250B2 (en) | 2009-12-16 | 2017-02-07 | Qualcomm Incorporated | System and method for controlling central processing unit power based on inferred workload parallelism |
US9176572B2 (en) | 2009-12-16 | 2015-11-03 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US8909962B2 (en) | 2009-12-16 | 2014-12-09 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US9128705B2 (en) | 2009-12-16 | 2015-09-08 | Qualcomm Incorporated | System and method for controlling central processing unit power with reduced frequency oscillations |
US9104411B2 (en) | 2009-12-16 | 2015-08-11 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
CN102695998B (zh) * | 2009-12-16 | 2015-05-20 | 高通股份有限公司 | 用于在虚拟化***中控制中央处理单元功率的***和方法 |
CN108763129A (zh) * | 2011-12-22 | 2018-11-06 | 英特尔公司 | 具有相同的指令集架构(isa)的非对称性能多核架构 |
CN104011704A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 具有相同的指令集架构(isa)的非对称性能多核架构 |
CN104011704B (zh) * | 2011-12-22 | 2018-05-08 | 英特尔公司 | 具有相同的指令集架构(isa)的非对称性能多核架构 |
US10740281B2 (en) | 2011-12-22 | 2020-08-11 | Intel Corporation | Asymmetric performance multicore architecture with same instruction set architecture |
CN112947736A (zh) * | 2011-12-22 | 2021-06-11 | 英特尔公司 | 具有相同的指令集架构(isa)的非对称性能多核架构 |
CN108763129B (zh) * | 2011-12-22 | 2021-12-07 | 英特尔公司 | 具有相同的指令集架构(isa)的非对称性能多核架构 |
US10049080B2 (en) | 2011-12-22 | 2018-08-14 | Intel Corporation | Asymmetric performance multicore architecture with same instruction set architecture |
CN112947736B (zh) * | 2011-12-22 | 2024-04-09 | 英特尔公司 | 具有相同的指令集架构(isa)的非对称性能多核架构 |
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 |
CN104969182A (zh) * | 2012-12-28 | 2015-10-07 | 英特尔公司 | 高动态范围软件-透明异构计算元件处理器、方法及*** |
CN104503830A (zh) * | 2013-03-15 | 2015-04-08 | 英特尔公司 | 用于引导异构***并呈现对称核视图的方法 |
CN104503830B (zh) * | 2013-03-15 | 2018-05-22 | 英特尔公司 | 用于引导异构***并呈现对称核视图的方法 |
CN104077106B (zh) * | 2013-03-26 | 2018-06-15 | 威盛电子股份有限公司 | 具有原生切换机制的非对称多核心处理器 |
CN104077106A (zh) * | 2013-03-26 | 2014-10-01 | 威盛电子股份有限公司 | 具有原生切换机制的非对称多核心处理器 |
CN104133789A (zh) * | 2013-04-30 | 2014-11-05 | 三星电子株式会社 | 用于调整带宽的设备和方法 |
CN104133789B (zh) * | 2013-04-30 | 2018-11-09 | 三星电子株式会社 | 用于调整带宽的设备和方法 |
CN104346226A (zh) * | 2013-08-09 | 2015-02-11 | 联想(北京)有限公司 | 处理器频率控制方法及电子设备 |
WO2018014298A1 (zh) * | 2016-07-21 | 2018-01-25 | 张升泽 | 电子芯片内部电压分配方法及*** |
CN106292976A (zh) * | 2016-07-21 | 2017-01-04 | 张升泽 | 电子芯片内部电压分配方法及*** |
CN106155815A (zh) * | 2016-07-21 | 2016-11-23 | 张升泽 | 电流在多个内核中的分配方法及*** |
WO2018018371A1 (zh) * | 2016-07-25 | 2018-02-01 | 张升泽 | 多核芯片电压计算方法及*** |
CN106201726A (zh) * | 2016-07-26 | 2016-12-07 | 张升泽 | 多内核芯片线程分配方法及*** |
WO2018018424A1 (zh) * | 2016-07-26 | 2018-02-01 | 张升泽 | 基于芯片的温度控制方法及*** |
CN106250235A (zh) * | 2016-07-26 | 2016-12-21 | 张升泽 | 基于多内核芯片的多任务调度方法及*** |
CN106292996A (zh) * | 2016-07-27 | 2017-01-04 | 李媛媛 | 基于多核芯片的电压降低方法及*** |
WO2018018451A1 (zh) * | 2016-07-27 | 2018-02-01 | 李媛媛 | 电子芯片中的功率分配方法及*** |
WO2018018448A1 (zh) * | 2016-07-27 | 2018-02-01 | 李媛媛 | 芯片中温度降低方法及*** |
WO2018018450A1 (zh) * | 2016-07-27 | 2018-02-01 | 李媛媛 | 电流限制在多核芯片中的应用方法及*** |
CN106227604A (zh) * | 2016-07-27 | 2016-12-14 | 李媛媛 | 芯片中温度降低方法及*** |
CN106292995A (zh) * | 2016-07-27 | 2017-01-04 | 李媛媛 | 电流限制在多核芯片中的应用方法及*** |
WO2018018449A1 (zh) * | 2016-07-27 | 2018-02-01 | 李媛媛 | 基于多核芯片的电压降低方法及*** |
CN109906421A (zh) * | 2016-11-04 | 2019-06-18 | 微软技术许可有限责任公司 | 基于线程重要性的处理器核划分 |
CN109906421B (zh) * | 2016-11-04 | 2023-12-12 | 微软技术许可有限责任公司 | 基于线程重要性的处理器核划分 |
CN108107782A (zh) * | 2017-12-18 | 2018-06-01 | 宁波三星医疗电气股份有限公司 | 一种用于电力能源采集设备的自控并发数据采集方法 |
CN110347508A (zh) * | 2019-07-02 | 2019-10-18 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
CN110347486A (zh) * | 2019-07-02 | 2019-10-18 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
CN110347486B (zh) * | 2019-07-02 | 2023-09-15 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
WO2022052626A1 (zh) * | 2020-09-11 | 2022-03-17 | 华为技术有限公司 | 功耗管理的方法和相关设备 |
WO2023051178A1 (zh) * | 2021-09-30 | 2023-04-06 | 荣耀终端有限公司 | 一种任务调度方法、电子设备、芯片***及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2011210275A (ja) | 2011-10-20 |
TW200632742A (en) | 2006-09-16 |
WO2006037119A3 (en) | 2007-01-25 |
WO2006037119A2 (en) | 2006-04-06 |
US7437581B2 (en) | 2008-10-14 |
JP2013218721A (ja) | 2013-10-24 |
KR20070049226A (ko) | 2007-05-10 |
JP2016076268A (ja) | 2016-05-12 |
CN100565426C (zh) | 2009-12-02 |
JP6289444B2 (ja) | 2018-03-07 |
JP5465215B2 (ja) | 2014-04-09 |
US20060095807A1 (en) | 2006-05-04 |
TWI315847B (en) | 2009-10-11 |
JP5709938B2 (ja) | 2015-04-30 |
JP2008513912A (ja) | 2008-05-01 |
JP2010092483A (ja) | 2010-04-22 |
KR100880060B1 (ko) | 2009-01-22 |
JP6049668B2 (ja) | 2016-12-21 |
JP4898687B2 (ja) | 2012-03-21 |
JP2015028810A (ja) | 2015-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101076770A (zh) | 根据可用并行数目改变每条指令能量的方法和设备 | |
CN1192298C (zh) | 按cpu活动调节cpu时钟频率而实时管理cpu温度和节电的方法和*** | |
KR101842016B1 (ko) | 멀티 코어 환경에서의 동적 전력 제어방법 | |
CN1881140A (zh) | 多核处理器的处理器模式自动控制装置及其方法 | |
CN1549961A (zh) | 动态电压控制方法与设备 | |
KR20080079276A (ko) | 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템 | |
Muralidhar et al. | Energy efficient computing systems: Architectures, abstractions and modeling to techniques and standards | |
Begum et al. | Energy-performance trade-offs on energy-constrained devices with multi-component DVFS | |
Lee et al. | VRCon: Dynamic reconfiguration of voltage regulators in a multicore platform | |
Xiang et al. | Run-time management for multicore embedded systems with energy harvesting | |
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 | |
Nejatollahi et al. | Voltage scaling and dark silicon in symmetric multicore processors | |
Khan et al. | Scheduling based energy optimization technique in multiprocessor embedded systems | |
Kaur et al. | Survey on energy efficient scheduling techniques on cloud computing | |
CN1510543A (zh) | 在微电路中限制电流变化所感应的电压变化的方法和设备 | |
Nagpal et al. | Compiler-assisted leakage energy optimization for clustered VLIW architectures | |
Kwon et al. | Late breaking results: Reinforcement learning-based power management policy for mobile device systems | |
Li et al. | Chip-specific power delivery and consumption co-management for process-variation-aware manycore systems using reinforcement learning | |
JP2014052918A (ja) | 演算装置およびその制御方法 | |
Ofori-Attah et al. | A survey of system level power management schemes in the dark-silicon era for many-core architectures | |
Joo et al. | Energy and performance optimization of demand paging with OneNAND flash | |
Xiang et al. | Thermal-aware semi-dynamic power management for multicore systems with energy harvesting | |
Maeda-Nunez | System-level power management using online machine learning for prediction and adaptation | |
Kwon et al. | Reinforcement learning-based power management policy for mobile device systems: late breaking results |
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 |
Effective date of registration: 20210603 Address after: California, USA Patentee after: Facebook, Inc. Address before: California, USA Patentee before: INTEL Corp. |
|
TR01 | Transfer of patent right | ||
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. |
|
CP01 | Change in the name or title of a patent holder |