CN100399262C - 用于降低功率的按需驱动时钟调节的处理器 - Google Patents
用于降低功率的按需驱动时钟调节的处理器 Download PDFInfo
- Publication number
- CN100399262C CN100399262C CNB038269643A CN03826964A CN100399262C CN 100399262 C CN100399262 C CN 100399262C CN B038269643 A CNB038269643 A CN B038269643A CN 03826964 A CN03826964 A CN 03826964A CN 100399262 C CN100399262 C CN 100399262C
- Authority
- CN
- China
- Prior art keywords
- unit
- clock
- stall status
- instruction
- register
- 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.)
- Expired - Fee Related
Links
- 230000009467 reduction Effects 0.000 title description 5
- 230000001360 synchronised effect Effects 0.000 claims abstract description 30
- 230000015572 biosynthetic process Effects 0.000 claims description 17
- 230000001105 regulatory effect Effects 0.000 claims description 16
- 238000007667 floating Methods 0.000 claims description 11
- 239000000872 buffer Substances 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 description 26
- 238000000034 method Methods 0.000 description 18
- 238000005755 formation reaction Methods 0.000 description 13
- 238000013461 design Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 10
- 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 7
- 230000003111 delayed effect Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000011144 upstream manufacturing Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003442 weekly effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005086 pumping Methods 0.000 description 3
- 230000007958 sleep Effects 0.000 description 3
- 235000000903 Ranunculus bulbosus Nutrition 0.000 description 2
- 240000005608 Ranunculus bulbosus Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000005059 dormancy Effects 0.000 description 2
- 230000001976 improved effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004308 accommodation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000008844 regulatory mechanism Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Images
Classifications
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30083—Power or thermal control instructions
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Power Sources (AREA)
- Executing Machine-Instructions (AREA)
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Complex Calculations (AREA)
- Microcomputers (AREA)
Abstract
一种诸如标量处理器或者超标量处理器的同步集成电路。电路部件或者单元由公共系统时钟提供时钟并被同步到公共系统时钟。至少两个时钟驱动的单元包括多个寄存器级,例如,流水线级。每个时钟驱动的单元内的本地时钟发生器将公共系统时钟与来自一个或者多个其它单元的迟延状态组合,以上下调节寄存器的时钟频率。
Description
技术领域
本发明一般地涉及减少和控制由多个时钟驱动的部件或者单元构成的微处理器或者系统中的功率消耗。
背景技术
半导体技术和芯片制造业的进步使片上时钟频率、单芯片上的晶体管数量及其小片(die)大小持续提高,而且芯片电源电压也相应升高。通常,给定时钟驱动的(clocked)单元消耗的功率随其内的转换频率线性升高。因此,不但芯片电源电压的降低,而且还增加了芯片的功率消耗。芯片功率这样升高的当然结果是,在芯片级和系统级,散热和封装成本都提高。在系统(例如,手提式系统、便携式系统和移动式系统)的低端,电池寿命是关键,在不导致性能降低到不可接受程度的情况下,净能量的减少很重要。因此,微处理器功率耗散的增加变成未来性能提高的主要障碍。
标量处理器一次取并发出/执行一条指令。每条这种指令对标量数据操作数进行运算。每个这种操作数都是单数据值或者很小的(atomic)数据值或者数。在标量处理器内引入的流水线作业,该流水线作业被称为并发性处理,即,在给定的时钟周期内,处理多条指令,同时保存单发(single-issue)范型。
在给定的机器周期内,超标量处理器可以取、发出和执行多条指令。此外,通常流水线化每条指令的取、发出和执行通路,以进一步实现并行性。超标量处理器的例子包括:IBM公司的Power/PowerPC处理器、Intel公司的Pentium Pro(P6)处理器系列、Sun Microsystems的Ultrasparc处理器、Hewlett Packard公司(HP)的PA-RISC处理器以及先前的Compaq公司(现在与HP合并)的Alpha处理器系列。
通常流水线化矢量处理器,而且可以对单体系结构步骤或者指令中各数的整个阵列执行一次运算。例如,单条指令可以将阵列A的每项叠加到阵列B中的相应项,然后,将该结果存储在阵列C的相应项上。通常支持矢量指令,作为基本标量指令集的扩展。在矢量引擎上,仅执行那些在较大的应用中可以被矢量化的代码段。矢量引擎可以是单个流水线化执行单元;或者可以将其组织为阵列或者单指令多数据(SIMD)机,它具有同时对不同数据执行相同指令的多个相同执行单元。例如,Cray巨型计算机通常是矢量处理器。
同步时钟处理器或者系统具有用于驱动构成该系统的所有单元或者部件的一个全局主时钟。有时,该时钟的比例从量(ratioedderivative)可以使特定子单元的周期比主时钟频率或者总时钟频率快或者慢。通常,通过进行设计,利用统计方法,预定和预调这种时钟控制判定。例如,Intel Pentium 4处理器以两倍于芯片主时钟的速度时钟驱动其整个流水线,就象使用本技术领域内所称的双抽运(double-pumping)或者波流水线。这种时钟加倍技术提高了处理器的执行速率并改善了处理器的性能。然而,总线和片外(off-chip)存储器速率不能与处理器计算逻辑核心保持同步。因此,在大多数情况下,该技术的处理器具有以主处理器时钟频率的整数子倍量的频率工作的片外总线和高速缓冲存储器。通常,在进行系统设计期间,使这些时钟工作频率固定。这是因为当代处理器复杂,可以具有多个时钟速率。有时,将双抽运和波流水线用于更高端机器,以缓解该处理器与外部总线或者存储器之间的任何性能失配。
Rabaey,JanM.和Pedram,Massoud,ed.Low Power DesignMethodologies,(Kluwer Academic Publishers,1996)描述了利用同步时钟选通(gating)降低功率,其中在再生点,即,在馈送到特定芯片区、部件或者锁存器的本地时钟缓冲器(LCB)内可以禁用该时钟。在粗程度控制下,沿着功能边界选通时钟。在较精确程度的控制下,在各锁存器选通时钟。例如,Gerosa等人“A 2.2W,80MHZ,superscalar RISC microprocessor,”IEEE Journal of Solid StateCircuit,vol.29,no.12,December 1994,pp.1440-1454,教导了根据在每个周期发出和执行的指令,对不同执行单元选通时钟。
在处理器执行一系列某种功能类的指令,例如,仅整数或者仅浮点指令时的情况下,粗粒度(coarse-grain)单元级时钟选通是有益的。当输入工作负荷是这样的,使得处理器仅检查整数代码时,可以禁用到浮点型单元的时钟再生器。同样,在执行仅浮点运算期间,可以禁用到整数单元的时钟。这样可以节省大量的芯片功率。利用串行指令的软件或者使用硬件以检测空闲周期,可以在局部正常实现粗空闲控制。还可以在指令解码期间,通过避免不必要地传送无效或者无意义的数据,在局部正常实现细空闲控制。将从其始端的初始点到下游级或者单元的选通控制信息因果流称为前馈流。这种流通道可以包括具有明显后馈流的回路,但是仍然认为因果信息流是前馈进程。因此,粗和细空闲控制都是自触发的、前馈控制。
另一方面,利用用于调节前馈流的下游流水线迟延(stall)信号构造反馈控制系统。在此,控制信息流是从下游的“果”到上游的“因”。粗和细粒度迟延控制主要用于防止覆盖写流水线处理器中的有效、迟延数据;但是这种机制还可以用于节省功率消耗。例如,Jacobson等人在“Synchronous interlocked pipelines,”IEEE ASYNC-2002conference,April 2002中建议了一种在同步流水线中降低功率的细粒度迟延传播机制;这样弥补了使用如前所述的Gerosa等人描述的采用“有效”位进行时钟选通的更传统、细粒度前馈机制;此外,请参考Gowan等人的“Power considerations in the design of the Alpha 21264microprocessor,”Proc.1998ACM/IEEE Design AutomationConference,pp.726-731(June 1998)。然而,象Jacobson等人描述那样,未将所公开的细粒度迟延选通(反馈)机制用于控制(通过进行时钟或者总线带宽调节(throttling))信息流速率,但是在我们的发明中控制信息流。
至少必须解决粗空闲控制引起的两个问题。第一,大瞬时电流降和增益可能使片上电源电压产生不可接受的感应(Ldi/dt)噪声。第二,为了保持正确的功能操作,关断和选通过程需要开销周期。对于工作负荷中的较细粒度阶段变化,选通与启用方式之间转换的太频繁了,引起不可接受的性能冲击。
另外,该技术的细空闲控制的状态在局部取决于产生的选通信号或者流水线级(stage)级别(level)时钟选通的条件,例如,取决于数据无效或者无意义的操作数条件。该技术方法的这些状态不基于预测或者预计产生选通信号。因此,定时要求通常很重要,因为选通信号必须在断言之前可用,而且在无差错时钟选通操作的适当时长内被断言(assert)。Gowan,M.K.Biro,L.L.和Jackson,D.B.“Powerconsiderations in the design of the Alpha 21264 microprocessor,”Proc.1998ACM/IEEE Design Automation Conference,pp.726-731,(June1998)讨论了这些约束条件如何显著地使设计定时分析复杂化,甚至降低时钟频率性能的。
无论基本控制机制是前馈(原因-结果流)还是基于反馈(结果-原因流),无论粗还是细,该技术的时钟选通技术的状态还是仅空间控制。这是因为,在(各)起作用区,利用使用信息清除冗余时钟,而不考虑在该(各)区或者机器中的其它地方的瞬时活动或者历史。为了在非相邻区内(例如,指令取或者传送单元)调节上游(产生方)时钟或者信息流速率,不反馈下游(消费方)单元和级(例如,执行流水线或者发出队列)中的活动状态和事件。同样,为了调节下游消费方时钟或者信息流速率,不前馈上游产生方区中的活动状态和事件。此外,通常只能关断时钟信号,其中启动时钟信号或者不启动时钟信号。
因此,需要对可以以细粒空间和临时粒度操作的连接的流水线单元实现改善时钟控制,而不恶化性能(开销),而且不使大电流/电压波动到底层电路。
发明内容
本发明的目的是降低处理器的功率消耗,而没有显著的性能恶化。
本发明是诸如标量处理器或者超标量处理器的同步集成电路。电路部件或者单元由公共系统时钟提供时钟并被同步到公共系统时钟。至少两个时钟控制电路包括多个寄存器级,例如,流水线级。每个时钟驱动的单元中的本地时钟发生器将公共系统时钟和来自一个或者多个其它单元的迟延状态组合,以上下调节寄存器时钟频率。
附图说明
根据下面参考附图对本发明的说明性实施例所做的详细说明,可以更好地理解上述和其它目的、方面和优点,其中:
图1A-B示出该技术的流水线标量处理器的典型状态的例子和相应指令时序图;
图2示出根据本发明的优选实施例要求或者活动驱动功率控制的标量处理器的高级(high-level)例子;
图3示出活动监视与时钟控制逻辑暂停电路的第一个例子,其中选通控制移位寄存器(GCSR)使系统时钟传送到I-PIPE的各级;
图4示出在第二个例子中,用于请求式I-CLK调节的根据本发明优选实施例,可以代替图3所示暂停电路的,或者图3所示暂停电路包括的减速电路;
图5示出其中将各GCSR级输出传送到各相应“与”门的图3和图4所示实施例的变型;
图6进一步详细示出与图3所示截面对应的标量I-管道的又一例子;
图7示出将本发明应用于流水线超标量处理器的例子;
图8示出如同图7所示的E-UNIT的LSU和FPU的更详细例子。
具体实施方式
现在,参考附图,更具体地说,图1A-B示出该技术的流水线标量处理器100的典型状态的高级方框图例子和相应指令时序图。将该主功能数据通路分割为通常称为指令单元(I-UNIT)102和执行单元(E-UNIT)104的两个主要部件或者单元。I-UNIT(I单元)102和E-UNIT(E单元)104内的许多详细子单元和功能逻辑,例如,分支预测逻辑与本发明讨论的内容无关,因此,为了清楚地说明这种处理器100中的整个时钟控制过程,省略该详细子单元和功能逻辑。该例子中的处理器100示出了流水线标量设计,该设计不包括用于防止对单元、子单元或者包括在其内的辅助存储资源进行冗余时钟的时钟选通。
单元102、104之一或者二者访问的片上存储器包括:寄存器文件(REGFILE)106;指令高速缓冲存储器(ICACHE)108;以及数据高速缓冲存储器(DCACHE)110。该REGFILE 106通常是可以通过两个单元102、104访问的共享资源,这样,可以作为独立实体对待它们。ICACHE(I高速缓冲存储器)108是I-UNIT流水线的第一终端级,这样,将它看作I-UNIT 102的一部分。通常,仅通过E-UNIT104可以访问DCACHE 110,因此,可以作为E-UNIT 104的一部分对待。两个独立的本地(local)时钟缓冲器(LCB)112、114分别放大公共同步时钟115,然后,将它分发到单元102、104中的相应之一。每个单元102、104包括输入队列116I、116E和PIPE(管道)118I、118E。可选地,在I-UNIT 102和E-UNIT 104内,可具有LCB 112、114的进一步分层结构,以对公共系统时钟进行更细粒度分布、放大和控制。
关于该例子,计算机程序指令包含在ICACHE 108内,即,I-UNIT管道第一级内。通常,在可能引起ICACHE漏失(miss)的各种条件下,对于可变处理器周期数量,ICACHE 108可能迟延。这种迟延毫无疑问地包含了漏失对前面指令传送级的影响,即,在指令存储器分层结构的较低级的影响。
继续通过LCB 112、114,利用同步时钟驱动每个单元,而不考虑流水线中的迟延。即使在很小的范围内,开关电容调制和模式位变化使功率消耗发生变化。因此,在从开始执行程序到结束执行程序的每个时钟周期内,消耗了大约同等量的能量(在此,利用标准化能量单位表示)。因此,可以应用根据本发明的功率节省技术,特别是功率节省方法,节省大量能量。
在代码生成期间,利用插入了包括在指令集体系中的特殊指令的编译器,可以合成粗空闲控制;或者,例如,在用于特殊中断或者在某一上下文切换时,可以利用操作系统交替动态发出这些指令。在最粗的控制级,可以发出专用休眠类指令或者命令;这种休眠命令可以产生用于停止将时钟送到芯片上的选择部分一段时间的禁用信号。这种同样的专用休眠命令可以用于禁用指令取处理。同样,当取消禁用信号时或者在休眠周期之后,开始隐式唤醒;或者,可以利用显式异步中断实现唤醒。在本技术领域内众所周知,可以提供各种省电模式(例如,打瞌睡、打盹或者睡眠),在LCB分层结构的各级选择地禁用时钟分布树。在下一个较细粒度级,每当编译器可以统计方法预测计算阶段时,编译器都可以插入专用指令,以开始关断(gate-off)送到给定单元,例如,浮点单元的时钟。
可以包括自检机制,每当单元发现自己空闲时,该机制可以使该单元禁用它自己的时钟一段时间。在硬件中,可以设计该逻辑,以检测处理器中的本地空闲时间。然后,对于某个空闲区或者所有空闲区,检测可以触发时钟禁用。同样,根据禁用或者休眠的单元收到的新工作,自启动唤醒。
对于较细的空闲控制,动态定义的信号逐个周期选通本地时钟。在指令解码过程中,例如,超标量机器、处理器确定在后续执行周期内,可以时钟选通哪个功能单元管道。在具有“顺序”发出机制的处理器中,它工作得很好,因此,在时间,即,解码或者传送的时间之前,可以无歧义地充分进行选通确定。如果以集中发出队列方式逐个项保护指令类信息,则甚至对于失序发出队列,在发出时,也可以生成这样的选通信号。
在任意流水线数据通路上,可以动态检测冗余时钟,并选择地防止冗余时钟,例如,Data Valid标志或者位沿逻辑流水线传播;仅当在某个周期生成的数据有效时,设置该Data Valid标志。然后,可以将每个逻辑级的Data Valid标志用作用于设置该级的输出锁存器的时钟启用。因此,通过被称为细粒、基于有效位的流水线级级别时钟选通的连续流水线级,没有不必要地对无效数据提供时钟。
2001年6月12号授予Sproch等人的标题为“Method和Systemfor Pipe Stage Gating Within an Operating Pipelined Circuit forPower Savings”的第6,247,1342B1号美国专利描述了一种处理器,该处理器具有将任何新收到的、在利用逻辑的第一级进行的先前周期的计算中在流水线中不发生变化的操作数识别为无意义的逻辑。被作为无意义的这种不变条件信号的检测可以用于禁用到第一级的时钟,然后到后续级的时钟。
Ohnishi,M.Yamada,A.Noda,H.和Kambe,T.“A Method ofRedundant Clocking Detection和Power Reduction at the Rt LevelDesign,”Proc.Int’l.Symp.On Low Power Electronics和Design(ISLPED),1997,pp.131-136说明了另一个更详细的空闲检测机制,用于防止各种冗余锁存时钟驱动。
不管是粗还是细,该技术的空闲控制机制的这些状态是自触发的、空间或者前馈的,如上所述;即,通过检测单元的空闲或者无效状态,然后,避免不必要的逐个周期时钟并在存在这种无效或者空闲状态位时进行数据传播,在局部产生选通条件或者信号。单元可以是整个区或者功能单元;或者它可以是设置的流水线级锁存装置。
相反,在第一实施例、具有要求的驱动时钟调节的标量、流水线处理器中,可调节地与执行单元(E单元)一起工作的指令单元(I单元)在这两个单元之间建立产生方-消费方关系。产生方I单元将就绪和数据启用指令转发到执行单元,用于在其内以不高于执行单元可以接受的速率进行处理。每个单元分别使活动状态寄存器保持至少1位信息。在该实施例中,利用公共同步时钟,对I-E单元对提供时钟。然而,根据在两个单元之间通过的本地单元活动信息,在局部控制和调节每个单元的时钟。每个单元的本地时钟控制可以是本地单元和远程单元,即,两个单元输出的活动状态信息的函数。
图2示出根据本发明的与同样标记的图1A具有同样部件的优选实施例要求或者活动驱动功率控制的标量处理器120的高级例子。在该实施例中,处理单元122、124分别包括活动监视与时钟控制逻辑126、128,用于监视单元活动程度(level)。在简单实施例中,单活动状态位130是用于规定迟延/不迟延状态的迟延位。当E单元124读出迟延条件(或者当前的或者即将来临的)时,它断言迟延位130。该迟延位130用于下调I单元时钟CLK-I132的时钟速度,以调低I单元122,并有效地降低(或者截止)送到E单元124的指令速率。根据控制粒度,E单元活动状态或者迟延位130可以调节它自己的时钟,例如,在E单元124内的134。当E单元124迟延结束时,将CLK-I132回调到它的正常时钟速率。同样,当I-UINT 122经历迟延条件(例如,ICACHE108漏失)时,因此,其后几个周期I-PIPE 118I为空,没有什么提供给E单元124,I-PIPE空位136用于下调CLK-E138,以节省功率。可以利用许多不同的方法,下面提供了其几个例子,实现活动监视与时钟控制逻辑126、128的上下调节能力。
因此,例如,一次一个流水线级地使每个单元的时钟异相。同样,当选通条件结束时,一次一个流水线级地使每个单元的时钟重新同相。该控制逻辑使每个单元时钟及时异相或者同相,而不丢失有效的信息,而且无需增加接口逻辑、缓冲或者保持的费能的流水线以及循环。或者,可以减慢或者逐步降低单元的时钟频率,以节省功率。另外,如果/在需要时,可以减慢时钟,然后,使它停止。
图3示出活动监视与时钟控制逻辑暂停(suspend)电路的第一个例子,其中选通控制移位寄存器(GCSR)150使系统时钟115传送到I-PIPE 1181的各级152。GCSR 150是时钟驱动的1位触发器154的1位线性移位寄存器,一个触发器154对应于每个I-PIPE级152。在“与”门156之一,GCSR 150的每位分别与系统时钟115进行“与”运算,以有选择地将系统时钟115作为“与”门输出传送到相应I-PIPE级152,一起作为I-CLK158。通常,在该例子中,不检测E单元迟延,迟延位130仍然为低,而且被反相器160反相。由于GCSR 150中都是1,所以I-PIPE 118I处于完全调节(full-throttle)。因此,“与”门156将未调节系统时钟115作为I-CLK158传送到每个I-PIPE级152,对于系统时钟115每个等同。因此,只要E单元迟延位130保持0,则1移位到GCSR 150,从而使I-PIPE 118I保持完全调节。
在该例子中,当E单元活动监视与时钟控制逻辑(图2分别示出的124和128)检测到即将来临的迟延条件时,它断言E单元迟延位130。被反相器160反相的迟延位130将0送到GCSR 150,在下一个后续系统时钟周期,将其移位到GCSR 150。在该周期,禁用第一I-PIPE级,即,图2中的ICACHE116后面的级,中止数据输入到I-PIPE 118I,同时,使0同步移位到GCSR 150并通过GCSR 150。只要断言迟延位130,则0移位到GCSR 150,每个系统时钟周期一次。每个0顺序地禁止使系统时钟通过“与”门156中的连续“与”门,在该例子中,它是从左到右脉动。因此,从左到右一次禁用I-PIPE时钟158的一个级。因此,在断言迟延位130之前,有效I-PIPE项继续通过I-PIPE 118I,然后,进入E单元。为了防止丢失I-PIPE 118I中的有效信息,至少在可用E单元缓冲(队列116E)空间等于I-PIPE 118I中的有效项数量时,必须断言E单元迟延位130。在极端情况下,后者仅等于I-PIPE 118I的长度。因此,在保守设计中,每当E单元队列116E填充到可用(自由)队列项数量等于I-PIPE级数的程度时,E单元124断言迟延位130。与传统细粒度的级级别时钟选通相同,假定利用每项有效位(用于节省功率)时钟选通E单元队列116E中的空项或者无效项。
同样,当迟延位130返回0时,即,当检测到E单元活动回到预定程度以下时,出现了反向升高操作或者反向向上调节操作。随着将有效输入数据移位到I-PIPE 118I,低迟延位130重新开始将1同时移位到GCSR 150内。因此,在紧接着的后续系统时钟周期,逐级启动到I-PIPE 118I的I-CLK 158,以便I-PIPE 118I重新开始正常操作,以完全调节将数据传送到E单元124。逐级关断/接通I-CLK 158防止大的电流波动,从而将对电源电压的Ldi/t噪声影响降低到最低。
图4示出在第二个例子中,用于请求式I-CLK调节的根据本发明优选实施例,可以代替图3所示暂停电路的,或者图3所示暂停电路包括的减速电路170。该减速电路170基本上与具有利用相同编号标记的共享元件或者公共元件的图3所示暂停电路相同。将慢选择172提供到触发器/1位双稳计数器174的倒置输入端和“与”门176。当慢选择位172位是高,即被断言时,“与”门176选择地将系统时钟115传送到时钟1位计数器174。除仅将最后级输出180传送到所有“与”门182之外,慢选择GCSR 178基本上与图3所示的GCSR 150相同。“与”门182可以是三输入“与”门,提供对图3的“与”门156的暂停选择功能。因此,“与”门182可以将最后级输出180与系统时钟115和来自GCSR(在该例子中未示出的图3所示130)的相应级输出组合。“与”门182的各输出对相应I-PIPE 118I级提供时钟。
在该实施例中,响应慢选择172,可以上(下)调节I单元的时钟频率。通过断言(去断言)慢选择172,E单元使I单元注意E单元中的减慢(增加)需求。此外,对于一个或者多个周期,可以完全保持暂停I-CLK 158的上述特征;如上参考图3所述,当E单元队列几乎满时,触发暂停,从而禁止GCSR 150的输出到各相应“与”门182。当E单元活动队列长度降低到低于如上所述的预定门限时,I-CLK 158重新启动。
在正常操作条件下,慢选择172是低(“0”),这样使1位控制计数器输出的连续高移位到GCSR 178。因此,通常,GCSR 178全部是1,而且系统时钟115不被调节传送到I-PIPE级152。当例如因为迟延而慢选择172被断言以发送E单元内要求减慢的信号时,“与”门176防止1位控制计数器174触发。当送到其倒置(inverted set)输入端的慢选择174升高,而且“与”门176传送系统时钟115时,1位控制计数器174被释放。1位控制计数器174开始触发,将交替的0和1序列传送到GCSR 178。一旦通过GCSR 178传播交替模式,则在交替时钟周期,启动和禁用送到“与”门182的I-CLK控制。实际上,这样将主系统时钟频率减半,其被提供为I-CLK 158。
图5示出图3和图4所示实施例的变型,其中将各GCSR级的输出传送到各相应“与”门182。运行过程基本上与图4相同,但是不同之处可在于,最后I-PIPE时钟调节。在调节(减速)阶段期间,在稳态操作中,以实际上是系统时钟频率一半的给定系统时钟周期,对交替的I-PIPE级提供时钟。在仅作为例子,在每个I-PIPE级内,指出有效位(V)。该有效位通常出现在图1至5所示例子的I-PIPE(I管道)、E-PIPE(E管道)、I-QUEUE(I队列)和E-QUEUE(E队列)结构中。根据传统的前馈解决方案,上游I-UNIT有效位向下游传播到E-UNIT,以启动细粒、级级别时钟选通,从而节省附加功率。在该例子中,每个流水线级的有效位对用于合成本地级级别时钟的“与”结构提供附加选通控制。在调节(减速)模式期间,该实施例的特定I-PIPE时钟设置要求底层电路(未示出),防止覆盖写I-PIPE级中的有效数据,例如,各级之间,或者每个锁存级的主部分与从部分之间的备份中间位置锁存器可以使信息存储加倍。
图6A-B进一步详细示出与图3所示截面对应的标量I-管道1181的又一例子及其相应时序图。每个I-PIPE级152连接到寄存器级192的输入端和输出端。在该例子中,每个GCSR锁存器154都是两级锁存器,而且基本上是一位串行输入/并行输出寄存器。该两级锁存器154包括第一级锁存器194和第二级锁存器196。第一级锁存器194与寄存器级192中的锁存器相同。利用与第一级锁存器194的时钟极性相反的时钟极性,启动第二级锁存器196。因此,例如,如果在时钟上沿对第一级锁存器194时钟驱动,则时钟下沿对第二级锁存器196时钟驱动,以确保将有效输入供给I时钟驱动器156。如上参考图3至5以及在此参考图6所述,I时钟驱动器156是“与”门,因此,起“与”门的作用。然而,每个“与”门156可以包括时钟驱动器,如果需要,该时钟驱动器可以是双相时钟驱动器。输入块198对特定类型的、选择的暂停/减慢控制逻辑提供适当时钟控制逻辑。因此,在图3的例子中,输入模块198可以包括反相器160以及该第一级GCSR 150的锁存器154的第一级194。同样,对于图4和图5所示的例子,输入块130可以包括锁存器174和“与”门176。
图7示出将本发明应用于流水线超标量处理器200的例子。这种超标量处理器200包括I单元202和E单元220。I单元202包括:指令高速缓冲存储器(ICACHE)204;组合IFU/BRU(206),包括指令取单元(IFU)和分支单元(BRU);调度单元(DPU)208;完成单元(CMU)210;以及分支地址单元214,包括分支历史表(BHT)和分支目标地址高速缓冲存储器(BTAC)。此外,I单元202还包括监视与时钟控制逻辑216。这些单元204、206、208、210和214的操作基本上与众所周知的这种相应单元相同,但是根据本发明,利用监视与时钟控制逻辑216对这些单元提供时钟(clock),如下所述。
通常,在每周期,IFU/BRU 206中的IFU从ICACHE204取指令。利用监视与时钟控制逻辑216,可以实时(on the fly)对在现有技术处理器中被固定为每周期取的最多指令数的取带宽(fetch bw)进行调节。在具有可用自由空间的IFU/BRU206中,该IFU将取的指令置于取队列(FETCH_Q)中。在每个周期开始时,IFU中的指令取地址寄存器(IFAR)引导指令取,并且提供下一个取地址。在每周期,IFU将每个下一个取地址设置为下列之一:(a)下一个顺序地址,它是被递增从而足以对先前周期取到FETCH_Q内的指令数进行计数的先前周期的IFAR值;(b)分支指令目标,在先前周期要求解或者预测的;或者(c)在确定先前预测错了之后,正确求解的分支指令的取地址。分支与指令取地址预测硬件206包括分支历史表(BHT)和分支目标地址高速缓冲存储器(BTAC),而且引导指令取过程。在每个有效取(或者调度)周期,正常取(或者调度)固定数量的指令,如相应固定带宽参数(fetch_bw或者disp_bw)确定的。然而,当E单元220指示有必要减慢/暂停时,除了上述时钟调节之外,优选实施例处理器(该例子中的200)动态调节每个fetch_bw和/或者disp_bw的值。
作为在E-UNIT内产生和监视的状态信号的组合功能,合成来自E-UNIT的减慢/暂停(或者其反加速/连续)信号。这种状态信号可以包括:(a)发出队列FXQ229,LSQ232,FPQ240和VXQ246的满或者空的指示;(b)DCACHE 238命中或者漏失事件;(c)E-UNIT内部共享的总线通信阻塞或者缺少它(例如,可以共享(和仲裁)一条总线,以将结束信息送到完成单元240;或者(d)由于分支错误预测或者其它形式的错误推测,出现执行流水线清除或者重发条件。在该例子中,可在FXU管道中执行处理器分支指令。然而,作为一种选择,为了执行分支指令,可以存在分离并行BRU管道。
断言来自E-UNIT的减慢/暂停信号可以通过I-CLK调节和/或者限制相关I-UNIT总线带宽之一或者二者调节I-UNIT流水线流速率,而无需调节时钟,例如,通过禁用从ICACHE接收取数据的一半线路,可以使给定访问fetch_bw有效减半。因此,为了在调节带宽模式下节省功率,是正常数量一半的项在指令缓冲器(在IFU 206内)。通常,根据所指出的下游E-UNIT减慢/暂停的严重性,可以将取带宽调节到正常模式的任何部分,包括直到0。同样,可以调节调度总线带宽(disp_bw),以节省功率,如果需要或者这样指示,则可以将较少指令调度到消耗E-UNIT执行管道。
E单元220包括定点执行单元(FXU)222、负载存储单元(LSU)224、浮点执行单元(FPU)226以及矢量多媒体扩展单元(VMXU)228。FXU 222包括定点队列229和定点单元执行单元管道230。LSU224包括负载存储队列232和负载存储单元管道234。FXU 222和LSU224都与通用寄存器236通信。LSU 224提供与数据高速缓冲存储器238通信。FPU 226包括定点队列240和定点单元管道242以及定点寄存器和更名缓冲器244。LSU 224还与定点更名缓冲器244通信。VMXU 228包括矢量扩展队列246和矢量多媒体扩展单元管道248。
单元229、230、232、234、236、238、240、242、246、248的操作基本上都与众所周知的这种相应单元相同,但是根据本发明要对其提供时钟,如下所述。对于该技术超标量处理器的任意典型状态,在给定工作负荷执行阶段期间,FXU 222和FPU 226中的活动经常互不相容。当FPU 226活动时,该优选实施例处理器200可以禁用或者减慢FXU 222的本地时钟,反之亦然。此外,该优选实施例处理器200使LSU 224和FPU 226互相暂停/减慢时钟速度。除了单元内较粗粒度模式之外,还对单元内、较细粒度按需驱动时钟调节模式进行了说明。
与上面描述的优选标量处理器例子不同,E单元220内的这两个单元224、226没有直接数流通道产生方-消费方关系,即,在LSU 224与FPU 226之间不存在直接信息流。利用数据高速缓冲存储器/存储器和浮点寄存器文件244,在这两个单元224、226之间间接进行通信。通常,FPU流水线242具有几级(例如,在现代千兆赫兹范围的处理器中具有6至8级),而典型LSU执行管道234是2至4级。因为该原因,而且由于当前处理器具有大量寄存器更名缓冲器,所以在DCACHE 238命中阶段期间,LSU管234基本上在FPU管道242之前运行。另一方面,在群集DCACHE 238漏失阶段期间,可以显著增加有效LSU通道等待时间。如果一系列快速漏失使DCACHE 238迟延,则LSU发出队列232填满,这样又可以使上游产生方迟延。利用FPU 226的上游资源或者本地时钟调节的活动驱动细粒度临时时钟选通,本发明采用该过程。
图8示出E-UNIT 200的LSU 224和FPU 226的更详细例子。在该实施例中,LSU事件/活动状态监视逻辑250对使用各种LSU队列进行监视,然后,获得LSU 226的活动状态。在该例子中,LSU队列包括负载存储发出队列(LSQ)232、未决负载队列(PLQ)252和未决存储队列(PSQ)254以及DCACHE 236。监视DCACHE 236,然后,记录高速缓冲存储器“漏失”事件。显然,仅作为例子,选择这四个单元232、236、252、254,然而,可以对更少或者更多的队列和事件进行监视。对于该例子,LSU事件/活动状态监视逻辑250断言在该例子中传送到FPU 226的输出迟延位256。如果需要更细的控制,则可以使用迟延位集。为了对I-UNIT 202进行控制以及对IFU或者DISPATCH单元206进行时钟控制,可以传送迟延位256。
例如,首先,去断言LSU活动状态监视逻辑输出迟延位256和FPU活动状态监视迟延260的输出258,在LSU224和FPU226中引起正常的全调节操作。如果断言FPU活动状态监视迟延位258,而仍未断言LSU活动状态迟延位256,例如,因为FPQ内的高利用率。使LSU本地时钟减慢,以使FPU226赶上比FPU226超前的LSU224,因为高速缓冲存储器命中阶段。相反,在断言LSU活动状态迟延位256,而仍未断言FPU活动状态监视迟延位258时,使FPU本地时钟减慢。如果同时断言/去断言LSU和FPU迟延位,则根据E-UNIT 220或者I-UNIT 202内的其它处的其它状态条件,使LSU和FPU本地时钟减慢或者加速到相同频率。
有利的是,响应其它处理器或者系统单元中的活动/不活动,本发明选择地使单元或者单元内的部件减速、加速或者禁用,即,本发明具有可变的时钟控制粒度。根据活动和相对于数据流方向的正向流动和反向流动的信息,得到每个单元的本地时钟控件。代替不是有就是无的现有技术时钟选通,该优选实施例的自适应时钟提供可以采用前馈和反馈控制,以对任选带宽调节提供更灵活的通用时钟调节机制。
因此,未决信息以适当大小被当前保持在单元队列中,但是在现有技术流水线单元中可能丢失该未决信息。通过与各种单元有关内活动的信息动态控制该单元。响应指出需要减少的其它单元中的(各)活动程度,以分阶方式,向下调节给定部件中的时钟速率,乃至降低到0。当监视的活动程度指出单元需求返回正常时,再以相控方式,使特定部件中的时钟速率恢复其初始正常程度。在当在一个或者多个部件中向下调节本地时钟速率时的时间期间,按比例降低净系统功率消耗。以及时预计方式,调节每个部件的时钟速率,使得实现速率变化的硬件控制不因为例如开销迟延或者重新计算废弃的指令而引起任何显著性能降低。将现有技术处理器中因为这种损失导致的性能恶化几乎降到0。
与传统的时钟选通方法相比,进行时钟速率调节以上下调节频率的相控方式可以确保优良(即,更良好)的电流波动(di/dt)特性。因此,利用相控降低或者提高时钟速率,可以将引起的(inductive)噪声降低到最小。因此,优选实施例系统消耗的功率相当少,而不显著降低性能。降低了平均功率,而没有显著的(体系)性能降低(例如,每周期指令或者IPC),而且不需要大量附加硬件。对于要求严格遵守最大功率消耗限制和最高温度限制,本发明成功地控制了功率消耗,同时将性能降低限制到小预定时间窗,以保持正常工作条件,而且快速返回正常。
各系统部件的动态活动程度被监视,送到其它部件的时钟速率在通过芯片或者系统传播的单个同步时钟的框架内。此外,与具有本地时钟驱动的异步(或者自定时)单元的同步系统或处理器,或者在全局异步控制下,具有多个同步时钟域的多时钟同步系统不同,本发明不需要为了确保同步而在单独时钟驱动的部件之间设置“握手”协议。此外,本发明动态调节各种部件中的时钟速率,以使通常与传统粗粒度时钟选通方法有关的引起的噪声问题降低到最小。
尽管根据几个(例子)优选实施例,对本发明进行了说明,但是本技术领域的专业技术人员明白,在所附权利要求的精神实质范围内,可以利用修改例实现本发明。
Claims (28)
1.一种同步集成电路,包括:
公共系统时钟;以及
多个时钟驱动的单元,与所述公共系统时钟同步,至少两个所述时钟驱动的单元分别包括:
多个寄存器级;以及
本地时钟发生器,接收所述公共系统时钟和迟延状态,而且响应所述迟延状态,调节所述多个寄存器的时钟频率。
2.根据权利要求1所述的同步集成电路,其中所述本地时钟发生器包括选通控制移位寄存器,该选通控制移位寄存器包括多个单位计数器。
3.根据权利要求2所述的同步集成电路,其中所述本地时钟发生器进一步包括多个本地时钟驱动器,每一本地时钟驱动器接收所述单位计数器之一的输出,而且将所述输出与所述系统时钟组合,以产生寄存器级时钟。
4.根据权利要求3所述的同步集成电路,其中所述多个寄存器级是寄存器流水线级,而且对于每个流水线级,所述选通控制移位寄存器包括所述多个单位计数器之一。
5.根据权利要求4所述的同步集成电路,其中所述集成电路是标量处理器,而且在所述标量处理器中,至少两个时钟驱动的单元包括指令单元和执行单元,所述指令单元对所述执行单元提供迟延状态,而所述执行单元对所述指令单元提供迟延状态。
6.根据权利要求5所述的同步集成电路,其中所述标量处理器进一步包括:
数据高速缓冲存储器,与所述执行单元通信;
寄存器文件,与所述指令单元和所述执行单元通信;
所述指令单元包括:指令高速缓冲存储器、从所述指令高速缓冲存储器接收数据的指令队列,以及从所述指令队列接收数据的指令管道;以及
所述执行单元包括:从所述指令管道接收数据的执行队列,以及从所述执行队列接收数据的执行管道。
7.根据权利要求6所述的同步集成电路,其中在所述指令单元和所述执行单元的每一个中,在所述多个时钟驱动器的相应的一个,各所述选通控制移位寄存器的每个输出与所述系统时钟组合,每个所述多个时钟驱动器分别选通相应流水线级。
8.根据权利要求7所述的同步集成电路,其中迟延状态位被提供到所述选通控制移位寄存器的第一级。
9.根据权利要求7所述的同步集成电路,其中迟延状态位被提供到一位计数器,所述一位计数器保持置位,除非所述迟延状态位被断言,而且在所述迟延状态位被断言时进行计数,所述一位计数器的输出被提供到所述选通控制移位寄存器的第一级。
10.根据权利要求6所述的同步集成电路,其中在所述多个时钟驱动器的每一个中,所述选通控制移位寄存器的最后输出与所述系统时钟组合,迟延状态位被提供到一位计数器,所述一位计数器保持置位,除非所述迟延状态位被断言,而且在所述迟延状态位被断言时,进行计数,所述一位计数器的输出被提供到所述选通控制移位寄存器的第一级。
11.根据权利要求5所述的同步集成电路,其中所述标量处理器是超标量处理器,响应来自所述执行单元的所述迟延状态位,所述指令单元进一步调节指令高速缓冲存储器取带宽。
12.根据权利要求11所述的同步集成电路,其中所述执行单元包括:
定点单元,用于从所述指令单元接收指令,而且与通用寄存器/更名缓冲器单元通信;
负载存储单元,用于从所述指令单元接收指令,而且与所述通用寄存器/更名缓冲器单元以及数据高速缓冲存储器通信;
浮点单元,用于从所述指令单元接收指令,而且与浮点寄存器/更名缓冲器单元通信,所述负载存储单元进一步与所述浮点寄存器/更名缓冲器单元通信,所述负载存储单元将迟延状态提供到所述浮点单元,而且所述浮点单元将迟延状态提供到所述负载存储单元;以及
矢量多媒体扩展单元,用于从所述指令单元接收指令,而且与所述指令单元内的完成单元通信。
13.根据权利要求11所述的同步集成电路,其中所述指令单元进一步包括:
指令高速缓冲存储器;
指令取单元/分支单元,用于从所述指令高速缓冲存储器接收指令;以及
调度单元,用于从所述指令取单元/分支单元接收指令,而且将收到的所述指令提供到所述执行单元。
14.根据权利要求12所述的同步集成电路,其中每个所述选通控制移位寄存器的每级的输出均与所述系统时钟组合,而且单独选通相应的流水线级。
15.根据权利要求14所述的同步集成电路,其中迟延状态位被提供到所述选通控制移位寄存器的第一级。
16.根据权利要求14所述的同步集成电路,其中在每个所述选通控制移位寄存器,迟延状态位被提供到一位计数器,所述一位计数器保持置位,除非所述迟延状态位被断言,而且在所述迟延状态位被断言时,进行计数,所述一位计数器的输出被提供到所述每个选通控制移位寄存器的第一级。
17.根据权利要求14所述的同步集成电路,其中在所述多个时钟驱动器的每一个中,所述选通控制移位寄存器的最后输出与所述系统时钟组合,迟延状态位被提供到一位计数器,所述一位计数器保持置位,除非所述迟延状态位被断言,而且在所述迟延状态位被断言时,进行计数,所述一位计数器的输出被提供到所述选通控制移位寄存器的第一级。
18.一种标量处理器,包括:
公共系统时钟;以及
指令单元,由所述系统时钟提供时钟;以及
执行单元,由所述系统时钟提供时钟,而且与所述指令单元通信;
所述指令单元和所述执行单元分别包括:
多个寄存器级;以及
本地时钟发生器,用于接收所述公共系统时钟和迟延状态,而且响应所述迟延状态,调节所述多个寄存器的时钟频率,所述指令单元将迟延状态提供到所述执行单元,而且所述执行单元将迟延状态提供到所述指令单元。
19.根据权利要求18所述的标量处理器,其中所述本地时钟发生器包括:
选通控制移位寄存器,包括多个单位计数器;以及
多个本地时钟驱动器,分别从所述多个单位计数器之一接收输出,而且将所述输出与所述系统时钟组合,以产生寄存器级时钟。
20.根据权利要求19所述的标量处理器,其中所述多个寄存器级是寄存器流水线级,而且对于每个流水线级,所述选通控制移位寄存器包括一个单位计数器。
21.根据权利要求20所述的标量处理器,进一步包括:
数据高速缓冲存储器,与所述执行单元通信;
寄存器文件,与所述指令单元和所述执行单元通信;
所述指令单元包括:指令高速缓冲存储器、从所述指令高速缓冲存储器接收数据的指令队列,以及从所述指令队列接收数据的指令管道;以及
所述执行单元包括:从所述指令管道接收数据的执行队列,以及从所述执行队列接收数据的执行管道。
22.根据权利要求21所述的标量处理器,其中在所述多个时钟驱动器的相应的一个,所述指令单元和所述执行单元将所述选通控制移位寄存器的输出与所述系统时钟组合,所述多个时钟驱动器的每一个分别选通相应流水线级。
23.根据权利要求22所述的标量处理器,其中迟延状态位被提供到所述选通控制移位寄存器的第一级。
24.根据权利要求22所述的标量处理器,其中迟延状态位被提供到一位计数器,所述一位计数器保持置位,除非所述迟延状态位被断言,而且在所述迟延状态位被断言时进行计数,所述一位计数器的输出提供到所述选通控制移位寄存器的第一级。
25.根据权利要求21所述的标量处理器,其中在所述多个时钟驱动器的每一个中,所述选通控制移位寄存器的最后输出与所述系统时钟组合,迟延状态位被提供到一位计数器,所述一位计数器保持置位,除非所述迟延状态位被断言,而且在所述迟延状态位被断言时,进行计数,所述一位计数器的输出被提供到所述选通控制移位寄存器的第一级。
26.一种超标量处理器,包括:
公共系统时钟;以及
指令单元,由所述系统时钟提供时钟,所述指令单元包括:
指令高速缓冲存储器,
指令取单元/分支单元,用于从所述指令高速缓冲存储器接收指令;以及
调度单元,用于从所述指令取单元/分支单元接收指令,而且转发收到的所述指令,以便执行;
执行单元,由所述系统时钟提供时钟,所述执行单元包括:
定点单元,用于从所述指令单元接收指令,而且与通用寄存器/更名缓冲器单元通信;
负载存储单元,用于从所述指令单元接收指令,而且与所述通用寄存器/更名缓冲器单元以及数据高速缓冲存储器通信;
浮点单元,用于从所述指令单元接收指令,而且与浮点寄存器/更名缓冲器单元通信,所述负载存储单元进一步与所述浮点寄存器/更名缓冲器单元通信,所述负载存储单元将迟延状态提供到所述浮点单元,而且所述浮点单元将迟延状态提供到所述负载存储单元;以及
矢量多媒体扩展单元,用于从所述指令单元接收指令,而且与所述指令单元内的完成单元通信;以及
本地时钟发生器,位于所述负载存储单元和所述浮点单元的每一个内,接收所述公共系统时钟和迟延状态,并根据所述迟延状态调节单元寄存器的时钟频率。
27.根据权利要求26所述的标量处理器,其中所述迟延状态指出单元的活动程度。
28.根据权利要求27所述的标量处理器,其中响应执行单元迟延状态,所述指令单元调节取带宽。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2003/026531 WO2005031565A1 (en) | 2002-07-02 | 2003-08-26 | Processor with demand-driven clock throttling for power reduction |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1864130A CN1864130A (zh) | 2006-11-15 |
CN100399262C true CN100399262C (zh) | 2008-07-02 |
Family
ID=37390854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB038269643A Expired - Fee Related CN100399262C (zh) | 2003-08-26 | 2003-08-26 | 用于降低功率的按需驱动时钟调节的处理器 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1658560B1 (zh) |
JP (1) | JP4524251B2 (zh) |
CN (1) | CN100399262C (zh) |
AT (1) | ATE433581T1 (zh) |
DE (1) | DE60327953D1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8006070B2 (en) * | 2007-12-05 | 2011-08-23 | International Business Machines Corporation | Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system |
JP5311234B2 (ja) * | 2008-04-09 | 2013-10-09 | 日本電気株式会社 | 計算機システムとその動作方法 |
JP2011044072A (ja) * | 2009-08-24 | 2011-03-03 | Panasonic Corp | アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法 |
CN102129286B (zh) * | 2010-01-15 | 2013-04-24 | 炬力集成电路设计有限公司 | 实时时钟电路及包含实时时钟电路的芯片和数码设备 |
JP2014048972A (ja) * | 2012-08-31 | 2014-03-17 | Fujitsu Ltd | 処理装置、情報処理装置、及び消費電力管理方法 |
JP5928272B2 (ja) * | 2012-09-18 | 2016-06-01 | 富士通株式会社 | 半導体集積回路及びコンパイラ |
CN104102327B (zh) * | 2014-07-28 | 2017-02-15 | 联想(北京)有限公司 | 一种工作处理器的控制电路和电子设备 |
US20170090508A1 (en) * | 2015-09-25 | 2017-03-30 | Qualcomm Incorporated | Method and apparatus for effective clock scaling at exposed cache stalls |
CN112712829B (zh) * | 2019-10-24 | 2024-07-02 | 珠海格力电器股份有限公司 | 一种跨时钟域的寄存器读写电路及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0451661A2 (en) * | 1990-03-30 | 1991-10-16 | Matsushita Electric Industrial Co., Ltd. | Low power consumption microprocessor |
CN1226700A (zh) * | 1998-02-10 | 1999-08-25 | 国际商业机器公司 | 高性能推测性未对齐加载操作 |
US5987620A (en) * | 1997-09-19 | 1999-11-16 | Thang Tran | Method and apparatus for a self-timed and self-enabled distributed clock |
US6263448B1 (en) * | 1997-10-10 | 2001-07-17 | Rambus Inc. | Power control system for synchronous memory device |
US20020169990A1 (en) * | 2001-03-21 | 2002-11-14 | Sherburne Robert Warren | Low power clocking systems and methods |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5416911A (en) * | 1993-02-02 | 1995-05-16 | International Business Machines Corporation | Performance enhancement for load multiple register instruction |
JP2636695B2 (ja) * | 1993-08-03 | 1997-07-30 | 日本電気株式会社 | パイプライン処理回路 |
JP3562215B2 (ja) * | 1997-05-13 | 2004-09-08 | セイコーエプソン株式会社 | マイクロコンピュータ及び電子機器 |
-
2003
- 2003-08-26 CN CNB038269643A patent/CN100399262C/zh not_active Expired - Fee Related
- 2003-08-26 DE DE60327953T patent/DE60327953D1/de not_active Expired - Lifetime
- 2003-08-26 AT AT03751891T patent/ATE433581T1/de not_active IP Right Cessation
- 2003-08-26 EP EP03751891A patent/EP1658560B1/en not_active Expired - Lifetime
- 2003-08-26 JP JP2005509229A patent/JP4524251B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0451661A2 (en) * | 1990-03-30 | 1991-10-16 | Matsushita Electric Industrial Co., Ltd. | Low power consumption microprocessor |
US5987620A (en) * | 1997-09-19 | 1999-11-16 | Thang Tran | Method and apparatus for a self-timed and self-enabled distributed clock |
US6263448B1 (en) * | 1997-10-10 | 2001-07-17 | Rambus Inc. | Power control system for synchronous memory device |
CN1226700A (zh) * | 1998-02-10 | 1999-08-25 | 国际商业机器公司 | 高性能推测性未对齐加载操作 |
US20020169990A1 (en) * | 2001-03-21 | 2002-11-14 | Sherburne Robert Warren | Low power clocking systems and methods |
Also Published As
Publication number | Publication date |
---|---|
CN1864130A (zh) | 2006-11-15 |
EP1658560B1 (en) | 2009-06-10 |
JP2007521538A (ja) | 2007-08-02 |
ATE433581T1 (de) | 2009-06-15 |
DE60327953D1 (de) | 2009-07-23 |
JP4524251B2 (ja) | 2010-08-11 |
EP1658560A1 (en) | 2006-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7076681B2 (en) | Processor with demand-driven clock throttling power reduction | |
US7089443B2 (en) | Multiple clock domain microprocessor | |
Semeraro et al. | Energy-efficient processor design using multiple clock domains with dynamic voltage and frequency scaling | |
Iyer et al. | Power efficiency of voltage scaling in multiple clock, multiple voltage cores | |
Kalla et al. | IBM Power5 chip: A dual-core multithreaded processor | |
JP3845642B2 (ja) | ユニット電力調整機構を備えた集積回路装置 | |
US5666537A (en) | Power down scheme for idle processor components | |
KR101673500B1 (ko) | 캐시 제어를 위한 방법 및 장치 | |
Jejurikar et al. | Leakage aware dynamic voltage scaling for real-time embedded systems | |
Li et al. | Deterministic clock gating for microprocessor power reduction | |
Burd et al. | A dynamic voltage scaled microprocessor system | |
Li et al. | VSV: L2-miss-driven variable supply-voltage scaling for low power | |
Gary et al. | PowerPC 603, a microprocessor for portable computers | |
Gibson et al. | Forwardflow: A scalable core for power-constrained CMPs | |
Burd et al. | Energy efficient microprocessor design | |
CN100399262C (zh) | 用于降低功率的按需驱动时钟调节的处理器 | |
US7222251B2 (en) | Microprocessor idle mode management system | |
Karkhanis et al. | Saving energy with just in time instruction delivery | |
Abdel-Majeed et al. | Origami: Folding warps for energy efficient gpus | |
Childers et al. | Adapting processor supply voltage to instruction-level parallelism | |
Homayoun et al. | Reducing power in all major CAM and SRAM-based processor units via centralized, dynamic resource size management | |
Sharkey et al. | Efficient instruction schedulers for SMT processors | |
Kim et al. | On load latency in low-power caches | |
Sharkey et al. | Exploiting operand availability for efficient simultaneous multithreading | |
KR20060107508A (ko) | 전력 감소를 위한 요구-구동형 클록 스로틀링 기능을 갖는프로세서 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080702 Termination date: 20100826 |