CN1180197A - 降低电子电路功耗的系统和方法 - Google Patents

降低电子电路功耗的系统和方法 Download PDF

Info

Publication number
CN1180197A
CN1180197A CN97117937A CN97117937A CN1180197A CN 1180197 A CN1180197 A CN 1180197A CN 97117937 A CN97117937 A CN 97117937A CN 97117937 A CN97117937 A CN 97117937A CN 1180197 A CN1180197 A CN 1180197A
Authority
CN
China
Prior art keywords
instruction
processor
circuit
power mode
impact damper
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN97117937A
Other languages
English (en)
Other versions
CN1157658C (zh
Inventor
阿尔伯特·J·卢普尔
苏姆亚·马里克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Singapore Pte Ltd
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1180197A publication Critical patent/CN1180197A/zh
Application granted granted Critical
Publication of CN1157658C publication Critical patent/CN1157658C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

当调度电路在第一功率方式下运行时,在调度电路的每个周期内,向执行电路最多调度N条供执行的指令,其中N为整数并且N> 1。当调度电路在第二功率方式下运行时,在调度电路的每个周期内,向执行电路最多调度M条供执行的指令,其中M为整数并且0< M< N。

Description

降低电子电路功耗的系统和方法
本专利申请和下列共同未决的美国专利申请有关:Loper等人的共同未决美国专利申请序列号08/726,871、代理文档号AA9-96-071,题目为“降低电子电路功耗的系统和方法”;Loper等人的共同未决美国专利申请序列号08/726,396、代理文档号AT9-96-197,题目为“降低电子电路功耗的系统和方法”;Loper等人的共同未决美国专利申请序列号08/726,395、代理文档号AT9-96-198,题目为“降低电子电路功耗的系统和方法”。
本专利申请一般地涉及电子电路,尤其涉及降低电子电路功耗的系统和方法。
近年来,便携式膝上型计算机日益流行。为了提高便携性这些膝上计算机经常是由电池供电的。最好,在电池充电或替换之前,电池供电的膝上计算机可在电池供电下运行持久的时间。
因此,为了在电池充电或更换电池之前延长电子电路的运行时间,降低膝上计算机的电子电路的功耗是重要的。出于这个目的,一些以前的技术根据在规定的时间中未感测到特定类型的活动停止供电或者停止对电子电路的时钟信号。这些以前的“定时器”技术的缺点在于,即使当电子电路不执行任何操作时,在等待定时器期满的时间内电子电路会不必要地消耗过多的电能。
从而,需要一种相对于以前的技术使电子电路消耗较少额外电能的方法和系统。
当调度电路在第一功率方式下运行时,在调度电路的每个周期内,最多向执行电路调度N条供执行的指令,其中N为整数并且N>1。当调度电路在第二功率方式下运行时,在调度电路的每个周期内,最多向执行电路调度M条供执行的指令,其中M为整数并且0<M<N。
其技术优点是电子电路消耗比以前的技术要少的额外电能。
通过参考下述说明和附图可更好地理解示范性实施方式及其优点,附图是:
图1是按照该示范性实施方式的用于处理信息的处理机系统的方块图;
图2是图1的处理机的定序器单元的方块图;
图3是图2的定序器单元的指令缓冲器队列的方块图;
图4概念性地说明图2的定序器单元的排序缓冲器;
图5概念性地说明图1的处理机的更名缓冲器;
图6是图1的处理机的指令超高速缓存的方块图;以及
图7是图6的指令超高速缓存的读出放大电路的示意电路图。
通过参考图1至图7的附图,可更好地理解一种示范性实施方式和其优点。
图1是按照该示范性实施方式处理信息的处理机10系统的方块图。在该示范性实施方式中,处理机10是一个单集成电路超标量微处理机。因而,如下文中进一步所讨论的那样,处理机10包括全由集成电路构成的各种单元、寄存器、缓冲器、存储器以及其它部件。而且,在该示范性实施方式中,处理机10根据精简指令系统计算(“RISC”)技术运行。如图1中所示,系统总线11和处理机10的总线接口单元(“BIU”)12连接。BIU12控制处理机10和系统总线11之间的信息传送。
BIU12和处理机10的指令超高速缓存14及数据超高速缓存16连接。指令超高速缓存14向定序器单元18输出指令。响应来自指令超高速缓存14的这些指令,定序器单元18选择性地把指令输出到处理机10的其它执行电路。
除定序器单元18之外,在本示范性实施方式中处理机10的执行电路包括多个执行单元,即,转移单元20、定点单元(“FXU”)22、复定点单元(“CFXU”)26、装入/存储单元(“LSU”)28和浮点单元(“FPU”)30。FXU22、CFXU26和LSU28从各通用体系寄存器(“GPRs”)32和定点更名缓冲器34输入它们的源操作数信息。此外,FXU22从进位位(“CA”)寄存器42输入“进位位”。FXU22、CFXU26和LSU28把它们的运算结果(目的地操作数信息)输出到定点更名缓冲器34的选定入口上以存储。并且,CFXU26和各专用寄存器(“SPRs”)40来往地输入和输出源操作数信息和目的地操作数信息。
FPU30从各浮点体系寄存器(“FPRs”)36以及浮点更名缓冲器38输入其源操作数信息。FPU30把其运算结果(目的地操作数信息)输出到浮点更名缓冲器38的选定入口上以进行存储。
响应装入指令,LSU28从数据超高速缓存16输入信息并复制该信息到选择更名缓冲器34和38中的若干个。如果该信息未存储在数据超高速缓存16中,则数据超高速缓存16从和系统总线11连接的系统存储器39输入该信息(通过BIU12和系统总线11)。而且,数据超高速缓存16能从数据超高速缓存16向和系统总线11连接的系统存储器39输出(通过BIU12和系统总线11)信息。响应存储指令,LSU28从GPSs32和FPRs36中选定的一个输入信息并把该信息复制到数据超高速缓存16中。
定序器单元18往来地和GPRs32及FPRs36输入及输出信息。转移单元20从定序器单元18输入表示处理机10当前状态的指令和信号。响应这些指令和信号,转移单元20(向定序器单元18)输出表示存储着由处理机10执行的指令序列的适当存储器地址的信号。响应来自转移单元20的这些信号,定序器单元18从指令超高速缓存14输入索引指令序列。如果该指令序列中的一个或更多的指令未存储在指令超高速缓存14中,指令超高速缓存14从和系统总线11连接的系统存储器39中(通过BIU12和系统总线11)输入这些指令。
响应从指令超高速缓存14输入的指令,定序器18有选择地将这些指令调度到选择的执行单元20、22、26、28和30中若干个。各个执行单元执行特定指令族的一个或多个指令。例如,FXU22对源操作数执行第一类定点数学运算,诸如加法、减法、“与”操作、“或”操作及“异-或”操作。CFXU26对源操作数执行第二类定点运算,诸如定点乘法和除去。FPU30对源操作数执行浮点运算,如浮点乘法或除法。
当信息存储在选定的一个更名缓冲器34里时,该信息涉及着由选定的更名缓冲器所分配的指令规定的存储位置(即GPRs32中的一个或CA寄存器42)。响应来自定序器18的信号,存储在选定的一个更名缓冲器34里的信息被复制到GPSs32中相关的一个通用体系寄存器(或CA寄存器42)里。定序器18导引这种对存储在选定的一个更名缓冲器34里的信息的复制,以响应“完成”生成该信息的指令的要求。这种复制被称为“回写”。
当信息存储在选定的一个更名缓冲器38里时,该信息涉及FPRs36中的一个。响应来自定序器18里的信号,存储在选定的一个更名缓冲器38里的信息被复制到FPRs36中的相关的一个里。定序器18导引这种对存储在选定的一个更名缓冲器38里的复制,以响应“完成”生成该信息的指令的要求。
通过同时在不同的若干个执行单元20、22、26、28和30中处理多个指令,处理机10达到高性能。因此,每个指令是按几个阶段的序列处理,每个阶段可和其它指令的多个阶段并行执行。这种技术称为“流水线技术”。在本示范性实施方式中,一条指令通常按六个阶段执行,即取出、译码、调度、执行、完成和回写。
在取出阶段,定序器单元18(从指令超高速缓存14中)选择性地在存储于指令序列中的一个和多个存储器地址上输入一个或多个指令,在上文已结合转移单元20和定序器单元18对此做了更详细的讨论。
在译码阶段,定序器单元18至多对两个已取出的指令译码。
在调度阶段,定序器单元18在为调度后的指令结果(目的地操作数信息)保留更名缓冲器入口后选择性地把至多两个译码后的指令调度给选定的(根据译码阶段的译码)若干执行单元20、22、26、28和30。在调度阶段,操作数信息提供给用于调度后指令的选定的若干执行单元。处理机10按照其编程顺序调度指令。
在执行阶段,执行单元执行它们的调度后指令并且输出它们的运算结果(目的地操作数信息)以存储到上文中已讨论过的更名缓冲器34和更名缓冲器38中的选定入口处。以这种方式,处理机10能以不同于它的编程顺序的次序执行指令。
在完成阶段,定序器单元18指示已“完成”一条指令。处理机10按其编程顺序“完成”指令。
在回写阶段,定序器18分别引导从更名缓冲器34和38到GPRs32和FPRs36的信息复制。定序器单元18引导这种对存储在一个选定理名缓冲器中的信息的复制。而且,在某一特定指令的回写阶段,处理机10响应该特定指令更新其体系状态。处理机10按其编程顺序处理指令的每个“回写”阶段。在规定的情况下,处理机10有益地合并一条指令的完成阶段及回写阶段。
在本示范性实施方式中,为完成指令处理的每个阶段每条指令需要一个机器周期。但是,某些指令(例如由CFXU26执行的复定点指令)可能需要一个以上的周期。因此,根据完成上述指令所需的不同时间,在特定指令的执行阶段和完成阶段之间可能出现不同的延迟。
按照五种功率方式实现和运行处理机10。这五种功率方式中的四种方式是“节电”的运行方式。根据机器状态寄存器(“MSR”)和硬件实现寄存器中的控制位的状态,这五种功率方式得到可选择的启动及禁止。这些寄存器位于SPRs40中。因此,根据CFXU26对指向SPRs40的传送指令的执行,这些控制位得到设定和/或清除。这五种功率方式是满功率、微睡、小睡、深睡、以及本示范性实施方式的重要方面:特殊方式。
1.满功率方式。满功率方式是处理机10的缺省供电方式。在满功率方式下,对处理机10全载供电,各单元在处理机10的处理机时钟速率下运行。处理机10还执行一种可选择性地启动和禁止的动态电源管理方式。如果使能动态电源管理方式,在不影响性能、软件执行或不影响外部硬件电路下,处理机10内的空闲的各单元自动地进入低功率状态。
位于纽约州Hopewell Junction镇的IBM公司微电子技术分部(电话是1-800-PowerPc)发布的“PowerPc 630e RISC微处理机用户手册”更完整地说明上述的动态电源管理方式以及满功率、微睡、小睡和深睡供电方式,该手册从而全部作为本文的参考文献。此外,动态电源管理方式在美国专利5,420,808中得到说明,该专利全部作为本文的参考文献。在本示范性实施方式中,处理机10是可从纽约州Hopewell Junction镇的IBM公司微电子技术分部购得的增强型Power PC 603e RISC微处理机。因为处理机10实现特殊功率方式,所以相对于Power PC 603e RISC微处理机处理机10是增强的。从而,特殊功率方式是本示范性实施方式的一个重要方面。
2.微睡方式。在微睡方式下,除BIU12的总线窥探逻辑、处理机10的时基/衰减计寄存器(图1中未示出)以及处理机10的锁相回路(“PLL”)(图1中未示出)之外,停用处理机10的所有单元。在微睡方式下,处理机10的PLL继续处于满功率状态并且保持与系统总线11的外部系统时钟的同步,从而只在处理机的几个时钟周期内就可实现向满功率方式的返回。
从微睡方式,处理机10响应中断线路INT断言的外部异步中断返回到满功率方式,从而INT对处理机10提供一个具有逻辑1状态的信号。而且,从微睡方式,处理机10响应系统管理中断线路SMI断言的系统管理中断返回到满功率方式,这样SMI对处理机10提供一个具有逻辑1状态的信号。而且,响应衰减计异常、硬或软复位或者机器检验输入,处理机10从微睡方式返回到满功率方式。
响应相对于电压基准节点GND电压供给节点Vdd从低电压(例如0伏)切换到预定电压(例如2.5伏)出现硬复位。应注意,为清楚起见,图1-6不全部显示经处理机10从INT、SMI、Vdd及GND到各种电路的连接。响应软复位处理机10从任一节电方式返回到满功率方式,在软复位下响应CFXU26执行适当的朝向SPRs40的传送指令,控制位被设定和/或清除,这些传送指令是软件复位指令序列中的一部分。
3.小睡方式。相对于微睡方式,通过停用BIU12的总线窥探逻辑,小睡方式进一步减小处理机10的功耗,从而只有PLL和时基/衰减计寄存器保持满功率状态。响应中断线路INT断言的外部异步中断、系统管理中断、衰减计异常、硬复位或软复位以及机器检验输入,处理机10从小睡方式返回到满功率方式。如微睡方式一样,仅在处理机10的几个时钟周期内就可实现从小睡方式向满功率方式的返回。
4.深睡方式。在深睡方式下,通过停用处理机10的所有单元功耗减小到几乎最小,在该方式后处理机10的外部逻辑信号可以停用PLL和外部系统时钟。响应重新使能PLL以及外部系统时钟,并经过适当的让PLL变成和外部系统时钟同步的最小时间,然后接着通过中断线路INT的断言、系统管理中断、衰减计异常、硬复位或软复位、或者机器检验输入,处理机10从深睡方式返回到满功率主式。
5.特殊方式。在本示范性实施方式的一个重要方面,处理机10响应(1)硬件事件或者(2)软件事件中的一种进入特殊方式。在本示范性实施方式中,当转换器41在线路HPS(硬件事件,节能,特殊方式)上输出具有逻辑1状态的信号时出现硬件事件。相类似,当SPRs40在线路SPS(软件事件,节能,特殊方式)上输出具有逻辑1状态的信号时出现软件事件。响应CFXU26执行指向SPRs40的一个“HID0”寄存器的一个预定位的适当的向专用寄存器传送(“MTSPR”)指令,SPRs40把这种信号输出到SPS上。
转换器41包括对构成处理机10的集成电路的相对温度敏感的热传感器。响应(转换器41的)热传感器检测出超出阈温度的相对温度,发生硬件事件(即转换器41在HPS上输出具有逻辑1状态的信号)。在本示范性实施方式中,把阈温度预选成处理机10在满功率方式下运行的最高安全温度,因此,如果处理机10的温度超过满功率方式下运行的处理机的最高安全温度,则处理机10继续在满功率方式下运行有可能造成损坏。有利的是,通过使处理机10响应硬件事件进入特殊“节电”运行方式,可以大大避免这种损坏。
如果处理机10响应硬件事件进入特殊方式,处理机10减小处理机10的每个周期中取出指令的最大数量,从而如下面结合图2和图3进一步讨论的那样,在处理机10的每个周期中调度较少的指令。以这种方式,各执行单元更可能是空闲的,因此更容易有益地调用动态电流管理方式(在美国专利5,420,808中说明)的低功率状态。另外,如果响应硬件事件处理机10进入特殊方式,处理机10改变LSU28的运行,如下面结合图5讨论的那样。
与硬件事件相比,如果处理机10响应软件事件进入特殊方式,处理机10(a)如后面结合图2和图3进一步讨论的那样减少处理机10单个周期中所取出的指令的最大数量,(b)如后面结合图5进一步讨论的那样改变LSU28的运行,以及(c)如后面结合图6进一步讨论的那样通过减少指令超高速缓存14的数据超高速缓存16的“路”的数量减小它们的功耗。
响应SPS和HPS都不具有逻辑1状态,处理机10从特殊方式返回到满功率方式。而且,如果仅根据软件事件(即SPS具有逻辑1状态同时HPS具有逻辑0状态)处理机10进入到特殊方式,则处理机10进而响应(1)经过INT的断言的外部异步中断,或者(2)硬复位或软复位,或者(3)机器检验输入(从特殊方式)返回到满功率方式。在一种备择的实施方式里,如果处理机10仅根据软件事件进入到特殊方式,则处理机10以后响应经过SMI的断言的系统管理中断(从特殊方式)返回到满功率方式。在这样的备择实施方式时,处理机10将根据SMI的断言返回到满功率方式,其类似于处理机10根据INT的断言返回到满功率方式。
在再一种备择实施方式里,处理机10还响应衰减计异常返回到满功率方式。SPRs40包括着用于根据处理机的时钟信号(为简明在图1中未示出)递减计数的电路。响应该计数递减到零值生成衰减计异常。
图1表示单条SPS线路和指令超高速缓存14、数据超高速缓存16、定序器单元18和LSU28中的每个连接。同样,图1表示单条HPS线路和指令超高速缓存14、数据超高速缓存16、定序器单元18和LSU28中的每个连接。类似地,图1表示单条INT线路和指令超高速缓存14、数据超高速缓存16、定序器单元18和LSU28中的每个连接。
图2是定序器单元18的方块图。如上文中所讨论的那样,如果在取出阶段处理机10(因此以及取逻辑71)在满功率方式下运行,则取逻辑71选择性地向指令超高速缓存14请求最多二条指令(处理机10以及由此取逻辑的每个周期内)并且把指令存储到指令缓冲器70里。因此,在处理机10的特定周期内,定序器18向指令超高速缓存14请求可变数量(范围从0到2)的指令,其中该可变的数量取决于指令缓冲器70中还能存储的附加指令数(即取决于指令缓冲器70中可使用的缓冲器数量)。
在译码阶段,如果处理机10(由此以及译码逻辑72)运行在满功率方式下,则译码逻辑72从指令缓冲器70输入并译码至多二条的取出指令(处理机10以及译码逻辑72的每个周期内)。因此,在处理机的特定周期内,译码逻辑72从指令缓冲器70输入并译码可变数量(范围从0到2)的指令,其中该可变数量取决于该特定周期期间调度逻辑74所调度的指令的数量。
在调度阶段,如果处理机10(由此以及调度逻辑74)运行在满功率方式下,则调度逻辑74对选出的(根据译码阶段的译码)若干个执行单元20、22、26、28和30选择性地调度至多二条译码后的指令(处理机10及调度逻辑74的每个周期内)。因此,在处理机10的特定周期内,调度逻辑74对执行单元调度可变数量(范围从0到2)的译码指令,其中该可变的数量取决于可存储到各执行单元以进行执行的附加的指令的数量(例如取决于各执行单元可使用的保留站的数量)。
比较起来,在本示范性实施方式中,如果处理机10在特殊功率方式下运行,则取逻辑71(根据SPS、MPS和INT的逻辑状态)在处理机10的每个周期内向指令超高速缓存14请求至多一条指令(而不是两条指令)并把这一条指令存储到指令缓冲器70中。在该方式下,(a)每个处理机10的周期内译码逻辑输入并译码(平均)约一条来自指令缓冲器70的已取出指令,(b)调度逻辑74(平均上)对执行单元20、22、26、28和30中选定的一个调度约为一条指令(处理机10的每个周期内),以及(c)完成逻辑80指示(平均上)“完成”(下面进一步讨论)的一条指令(处理机10的每个周期内)。因此,(相对于满功率方式)各执行单元更有可能是空闲的,因此可有利地更容易调用动态供电管理方式(美国专利5,420,808中说明)的低功率状态。
在一种备择的实施方式中,如果处理机10运行在特殊功率方式下,则调度逻辑(根据SPS、MPS和INT的逻辑状态)在处理机10的每个周期内对执行单元20、22、26、28和30中选定的一个调度至多一条指令(以代替调度两条指令);这个备择实施方式的这种技术替代了(但也可以补充)本示范性实施方式的在处理机10的单个周期内减小取出的指令的最大数量的技术。因此,图2显示SPS、HPS和INT都和取逻辑71及调度逻辑74连接。
图3是指令缓冲器70的方块图。指令缓冲器70把I0指令和I1指令分别存储到调度缓冲器56的缓冲器I0和缓冲器I1中。在本示范性实施方式中,响应处理机10的一个周期,或者I0指令单独被调度到译码逻辑72(图2),或者I0和I1指令一起被调度到译码逻辑72;或者I1指令单独被调度到译码逻辑72。经过线路55a、55b缓冲器I0和I1的内容分别输出到译码逻辑72。
在本示范性实施方式中,指令缓冲器70能在单个处理机10的周期内通过64位总线50并行地从指令超高速缓存14输入多至二个的32位的指令。响应I0和I1指令都在向译码逻辑72调度,指令缓冲器70把以前存储的任何指令从指令缓冲器54a-b分别传送到缓冲器I0和I1。而且,在这种情况下,指令缓冲器70把以前存储的任何指令从指令缓冲器52a-b分别传送到指令缓冲器54a-b。并且,在这种情况下,如果处理机10运行在满功率方式下,指令缓冲器70经64位总线50从指令超高速缓存14输入最多二个32位的指令,并且把这些指令存储到第一对可使用的(即,空的,未存储着指令)缓冲器,即(a)缓冲器I0和I1,(b)54b和54a,(c)52b和52a的任一对中,但从缓冲器I0开始。
响应单独把I0指令调度到译码逻辑72,指令缓冲器70把以前存储的任何指令从缓冲器I1传送到缓冲器I0。而且,在这种情况下,指令缓冲器70把以前存储的任何指令从指令缓冲器54a传送到I1,从指令缓冲器54b传送到指令缓冲器54a,从指令缓冲器52a传送到指令缓冲器54b,和从指令缓冲器52b传送到指令缓冲器52a。并且,在这种情况下,指令缓冲器70通过64位总线50从指令超高速缓存14输入单个32位的指令,并把该指令存储到第一个可使用的缓冲器中,即缓冲器I0、I1、54b、54a、52b、52a中的一个,从缓冲器I0开始。
如果处理机10在满功率方式下运行,则指令缓冲器70能在处理机10的单个周期内通过64位总线50并行地从指令超高速缓存14输入最多二条32位的指令。以这种方式,作为一个例子,因为指令超高速缓存14是一个四路成组相联超高速缓存,在处理机10该单个周期内至少256个读出放大器(64位/路×4路×1读出放大器/位)是活动的。这些读出放大器的激活构成处理机10的平均功耗的一部分。
与之相比,如果处理机10运行在特殊功率方式下,则指令缓冲器70能在处理机10的单个周期内通过64位总线50从指令超高速缓存14输入单个32位的指令。以这种方式,作为一个例子,在处理机10的每个周期内指令超高速缓存14的128个读出放大器(32位/路×4路×1,读出放大器/位是活动的(同时停用指令超高速缓存14的另外128个读出放大器)。有益地是,通过仅激活128个读出放大器(在特殊方式下)以代替激活256个读出放大器(在满切率方式下),降低了处理机的平均功耗,因为在处理机10的每个周期内仅激活一半的读出放大器。
如果处理机10响应软件事件进入特殊“节电”方式可得到更多的减少,因为在该情况下处理机10如下面结合图6所讨论的那样减少指令超高速缓存14和数据超高速缓存16中的“路”的数量。例如,如果处理机10响应软件事件把指令超高速缓存14之内的“路”数从四路减小到二路,则当处理机10运行在特殊功率方式下时在上述处理机10的两个周期中的每个周期内只激活指令超高速缓存14的64个读出放大器(32位/路×2路×1读出放大器/位)(同时停用指令超高速缓存14的其它192个读出放大器。有益地是,通过仅激活64个读出放大器(如果处理机10响应软件事件进入特殊“节电”方式)而不是256个读出放大器(在满功率方式下),可降低处理机10的平均功耗,因为在处理器10的每个周期内仅激活1/4的读出放大器。
图4是本示范性实施方式的定序器单元18的排序缓冲器76的概念性说明。如图4中所示,排序缓冲器76具有五个分别标号为缓冲器号0-4的项。每个项具有五个主字段,即,“指令类型”字段、“GPR目的地号”字段、“FPR目的地号”字段、“已完成”字段和“异常”字段。
再参考图2,当调度逻辑74把一条指令调度给一个执行单元时,定序器单元18把该受调度的指令分配到排序缓冲器76的相关项中。定序器单元18按先进先出的以及循环方式把排序缓冲器76的各项分配给(或“相联系到”)受调度的指令,从而定序器单元18先分配项0,接着顺序分配项1-4,然后再从项0开始。当把受调度的指令分配到排序缓冲器76的相关项时,调度逻辑74输出与受调度指令有关的信息,以供存储到排序缓冲器76有关项的各字段及子段中去。
例如,在图4的项1中,排序缓冲器76指示该指令调度到FXU22。在本示范性实施方式的其它方面上,项1还指示该受调度的指令具有一个GPR目的地寄存器(从而“GPR目的地号”=1),具有0个FPR目的寄存器(从而“FPR目的地号”=0),未结束(从而“已结束”=0),并且尚未引起异常(从而“异常”=0)。
随着执行单元执行受调度的指令,该执行单元修改排序缓冲器76中的和该指令相关的项。更具体地,响应完成该被调度指令的执行,该执行单元修改该项的“已结束”字段(从而“已结束”=1)。如果在该受到调度指令的执行过程中执行单元遇到异常,该执行单元修改该项的“异常”字段(从而“异常”=1)。
图4显示一个分配指针173和一个完成指针175。处理机10保持这些指针以控制对排序缓冲器76的读和写。处理机10保持分配指针173以指示是否把排序缓冲器的一个项分配给(或“相联系到”)一个特定的指令。如图4中所示,分配指针173指向排序缓冲器项3,从而表示排序缓冲器的项3是下一个可分配给一条指令的排序缓冲器的项。
而且,处理机10保持完成指针175以(为以前分配给一个特定指令的排序缓冲器的项)表示该特定的指令是否满足下述条件:
条件1-(调度给该指令的)执行单元结束该指令的执行;
条件2-在处理该指令的任何阶段中未遇到异常;以及
条件3-任何以前被调度的指令都满足条件1和条件2。
如图4中所示,完成指针175指向排序缓冲器的项1,从而表示排序缓冲器的项1是下一个能满足条件1、2及3的排序缓冲器的项。因此,“有效的”排序缓冲器项可以定义成由完成指针175指向的排序缓冲器项以及其随后在分配指针173指向的排序缓冲器项之前的各排序缓冲器的项。
再参照图2,由定序器单元18完成逻辑80和异常逻辑82读排序缓冲器76的各项。根据排序缓冲器76的“异常”字段,异常逻辑82处理被调度指令执行过程中遇到的异常。根据排序缓冲器76的“已结束”字段和“异常”字段,完成逻辑80向调度逻辑70及排序缓冲器76输出信号。通过这些信号,完成逻辑80表示按其编程顺序的指令的“完成”。如果一条指令满足下述条件,完成逻辑80指示“完成”该指令:
条件1-(调度给该指令的)执行单元结束该指令的执行(从而在排序缓冲器76中该指令的相关项里“已结束”=1);
条件2-处理该指令的有关任一阶段中未遇到异常(从而在排序缓冲器76中该指令的相关项里“异常”=0);以及
条件3-以前调度的任何指令都满足条件1和条件2。
根据排序缓冲器76中的信息,调度逻辑74确定其它将调度指令的适当数量。
图5是浮点更名缓冲器38的概念性说明。如图5中所示,更名缓冲器38包括四个分别用缓冲器号0-3标明的更名缓冲器。定序器单元18按先进先出以及循环方式把更名缓冲器号0-3分配给(或“相联系到”)被调度的指令,从而定序器单元18分配更名缓冲器号0,接着相继地分配更名缓冲器号1-3,然后再从更名缓冲器号0开始。
参照图5,更名缓冲器2分配成为由调度逻辑74调度的指令存储目的地操作数信息(图2)。图5显示一个分配指针180、一个回写指针182以及一个完成指针184。处理机10保持这些指针以控制对更名缓冲器38的读和写。处理机10保持分配指针180以指示是否把一个更名缓冲器分配给一个特定的指令。如图5中所示,分配指针180指向更名缓冲器3,从而表示更名缓冲器3是下一个可用于分配给一条指令的更名缓冲器。
处理机10还包括回写指针182以指示(以前分配给一个特定指令的)更名缓冲器是否可重新分配给另一条指令。如图5中所示,回写指针182指向更名缓冲器2,从而表示更名缓冲器2是下一个处理机10将从其中把(存储在图5中的该更名缓冲器的“信息”字段中的)目的地操作数信息复制到(由图5中的该更名缓冲器的“寄存器号”字段里所规定的)一个FRPs36里的更名缓冲器。
因此,响应处理机10从该更名缓冲器复制一个特定指令的结果(目的地操作数信息)以存储到某体系寄存器里,处理机10使回写指针182前进(越过以前分配给该特定指令的一个更名缓冲器)。以这种方式,在处理机10把该特定指令的结果(目的地操作数信息)复制到一个体系寄存器之前,处理机10保留一个分配的更名缓冲器以存储该结果。
此外,处理机10保持完成指针184以(为以前分配给某一特定指令的一个更名缓冲器)指示该特定指令是否满足下述条件:
条件1-(调度给该指令的)执行单元结束该指令的执行;
条件2-处理该指令的任何有关阶段中未遇到异常;以及
条件3-任何以前调度的指令满足条件1和条件2。
如图5中所示,完成指针184指向更名缓冲器2,从而表示更名缓冲器2是下一个能满足条件1、2、3的更名缓冲器。在本示范性实施方式中,处理机10和是否从该更名缓冲器复制该指令的结果以存储到一个体系寄存器无关地保持完成指针184。
因此,“更名入口”可以定义成由完成指针184指向的更名缓冲器以及其后面的并在分配指针180指向的更名缓冲器之前的各更名缓冲器。“回写入口”可以定义成由回写指针182指向的更名缓冲器以及其后面的并在完成指针184指向的更名缓冲器之前的各更名缓冲器。回写项存储着“已完成的”并它们的结果尚未从更名缓冲器复制到体系寄存器的指令的结果,例如因为这些体系寄存器的写端口无法得到。
在概念上,回写项位于更名项和体系寄存器之间。如果在完成阶段可以得到一个回写端口,则使一个结果绕过回写入口并直接写入到体系寄存器中是有益的。此外,和更名入口类似,在一个执行单元执行一条规定着和信息相关的一个体系寄存器的情况下,处理机10操作回写入口以把信息输出到该执行单元。
FPU30在单精度(即32位)操作数和双精度(即64位)操作数上是全依从IEEE754标准的。因此,为了支持双精度运算,图5的每个更名缓冲器的“信息”字段为64位宽。再参照图1,如果处理机在满功率方式下运行,则在处理机10的单个周期(即每周期64位信息)内LSU28(响应其执行朝向FPRs36的“送数”指令)把64位信息从数据超高速缓存16装入到(更名缓冲器38中的)一个单个更名缓冲器的“信息”字段里。以这种方式,作为一种例子,因为数据超高速缓存16是一个四向成组相联缓存,则在该单个处理机10的周期内至少激活数据超高速缓存16的256个读出放大器(64位/路×4路×1读出放大器/位)。这些读出放大器的激励对处理机10的平均功耗有影响。
相比之下,如果处理机10在特殊功率方式下运行,则在处理机10的两个周期(即每个周期32位信息)内LSU28(响应其执行对FPRs36的“送数”指令)把64位信息从数据超高速缓存16装入到(更名缓冲器38中的)单个更名缓冲器的“信息”字段里。以这种方式,作为一个例子,在处理机10的这两个周期的每个周期内(在停用数据超高速缓存16的其它128个读出放大器的同时)激活数据超高速缓存16的128个读出放大器(32位/路×4路×1读出放大器/位)。有益的是,(在特殊方式下)只激励128读出放大器而不是(在满功率方式下的)256个读出放大器,降低了处理机10的平均功耗,因为在处理机10的每个周期内只激励一半的读出放大器。
如果根据软件事件处理机10进入特殊“节电”方式可取得更多的减少,因为在这种情况下如下文中结合图6进一步讨论的那样处理机10减小指令超高速缓存14和数据超高速缓存16中的“路”的数量。例如,如果处理机10根据软件事件把数据超高速缓存16中的“路”的数量从四路减少到二路,则当处理机10运行于特殊功率方式下时处理机10的上述两个周期的每个周期内只激励(停用数据超高速缓存16的其它192个读出放大器)64个读出放大器(32位/路×2路×1读出放大器/位)。有益地是,通过(当处理机10根据软件事件进入特殊“节电”方式)只激励64个读出放大器来替代(在满功率方式下)激励256个读出放大器,降低了处理机10的平均功耗,因为在处理机10的每个周期内只激励1/4数量的读出放大器。
图6是指令超高速缓存14的方块图。图6指令超高速缓存14同样代表数据超高速缓存16。指令超高速缓存14和数据超高速缓存16各为一个16K字节、四路成组相联超高速缓存。指令超高速缓存14和数据超高速缓存16根据物理(即“真实”)地址编址。
从而,图6表示控制逻辑100,其包括一个用于把有效地址变换成相关物理地址的存储器管理部件(“MMU”)。例如,有效地址是从定序器单元18的取逻辑71(图2)接收的。在本示范性实施方式中,有效地址的位20至位211不变地变换成其相关的物理地址,从而有效地址的位20至位211和相关的物理地址的位20至位211具有相同的数字逻辑值。
如图6中所示,指令超高速缓存14和数据超高速缓存16各逻辑地排列成128个相同的级(即,组)。作为一个例子,对于指令超高速缓存14,每个组在指令超高速缓存14内具有各自的预分配好的四条相关线路群(即,四“路”,块0-3)。每条线路能存储各自的一个地址标记、各自的状态位组(例如包括一个“有效”位)以及各自的一个八个字的信息群。每个字具有4个字节(即32位)。
这样,组0的块8可以存储一个地址标记Address Tag03状态位State03以及字W030至W037。类似地,每个组x的块y可以存储一个Address Tagxy、状态位statexy以及字Wxy0至Wxy7,其中x是范围从0到127的一个可变的整数组号,而y是范围从0到3的一个可变的整数块号。
一个组由物理地址的位25至位211规定。这样,每个组包括多个地址,所有的地址共享相同的七个物理地址位25至211。从而,在任何单个时刻,指令超高速缓存14为属于一个特定组x的最多四个物理地址存储信息,并由存储在指令超高速缓存14内组x的相关四条线路群里的Address Tagx0至Address Tagx3规定。
例如,(a)在组0的块0中,指令超高速缓存14可以存储包括着第一地址的位212至231的Address Tag00,(b)在组0的块1中,指令超高速缓存14可以存储包括着第二地址的位212至位231的Address Tag01,(c)在组0的块2中,指令超高速缓存14可以存储包括着第三地址的位212至位231的Address Tag02,(d)在组0的块3中,指令超高速缓存14可以存储包括着第四地址的位212至位231的Address Tag03。这样每个Address Tagxy具有20位。
图7是在121处概括地表示的图6的指令超高速缓存14的读出放大电路的示意电路图。读出放大电路121是图6的读出放大器104、106及108a-h的一种代表性读出放大器。从而,因为每个Address Tagxy具有20位,读出放大器104包括80个实质上各和电路121相同的读出放大器(20个读出放大器乘以4个块0-3)。
类似地,因为每个字Wxyz(其中z是从0到7的一个整数的字号)具有32位,读出放大器108a-h中的每个各包括128个为一组的其中每个实质上和电路121相同的读出放器(32个读出放大器乘以4个块0-3),从而读出放大器108a-h含有总数为1024个的读出放大器(128个读出放大器×8个字0-7)。同样,读出放大器106中的读出放大器的数量等于4乘以每个Statexy的位数,而且其中的每个读出放大器实质上和电路121相同。
每个20位的地址标记Address Tagxy各包括20个为一组的动态随机存储(“DRAM”)单元,每个DRAM单元可存储数字信息中的单个的位。相类似,每个32位的字Wxyz各包括32个为一组的DRAM单元,每个DRAM单元可存储数字信息中的单个的位。同样,每个Statexy中的DRAM单元的数量等于每个Statexy的位数。
读出放大器104的80个读出放大器编制成,(1)128个组中各组的代表着Address Tagx0(其中x为组号)的20个DRAM单元各和(读出放大器104的)第一群的20个读出放大器连接,(2)128个组中各组的代表着Address Tagx1的20个DRAM单元各和(读出放大器104的)第二群的20个读出放大器连接,(3)128个组中各组的代表着Address Tagx2的20个DRAM单元各和(读出放大器104的)第三群的20个读出放大器连接,以及(4)128个组中各组的代表着Address Tagx3的20个DRAM单元各和(读出放大器104的)第四群的20个读出放大器连接。
因此,读出放大器104的每个读出放大器和一个有关的128个DRAM单元族连接,该128个的DRAM单元族为Address Tagxy的位2q存储数字信息,其中:(a)q是一个从0到9的不变位号(即对该族的所有DRAM单元都相同),(b)x是一个从0到127的可变的(即该族的所有DRAM单元是不同的)组号,以及(c)y是一个从0到3的不变块号。
如图7中所示,每个读出放大器(电路121)具有一条启用线。参见图6,启用线102包括总为4条的地址标记启用线(即4块×1条地址标记启用线/块)。每条地址标记启用线从控制逻辑100连接到四群读出放大器104中的一个有关群上,其中该有关的群和一族存储Address Tagxy的数字信息的DRAM单元连接,其中(a)x是从0到127的变化的组号,而且(b)y是从0到3的不变的块号。
读出放大器108a-h的1024个读出放大器编制成,(1)128个组中各组的代表着Wx0z的256个DRAM单元通过(读出放大器108a-h的)第一群的256个读出放大器分别经总线120a和多路复用器114a连接,(2)128个组中各组的代表着Wx1z的256个DRAM单元通过(读出放大器108a-h的)第二群的256个读出放大器分别经总线120b和多路复用器114b连接,(3)128个组中各组的代表着Wx2z的256个DRAM单元通过(读出放大器108a-h的)第三群的256个读出放大器分别经总线120C和多路复用器114C连接,以及(4)128个组中各组的代表着Wx3z的256个DRAM单元通过(读出放大器108a-h的)第四群的256个读出放大器分别经总线120d和多路复用器114d连接。
由此,(读出放大器108a-h)的每个读出放大器和一个有关的128个DRAM单元族连接,该128个的DRAM单元族为字Wxyz的2q存储数字信息,其中,(a)q是一个从0到31的不变位号,(b)x是从0到127的可变的组号,(c)y是从0到3的不变的块号,以及(d)z是从0到7的不变的字号。
启用线102包括总共32条的字启用线(即,4块×8字/块×1字启用线/字)。每条字启用线从控制逻辑100连接到读出放大器108a-h的4群的一个有关子群上,该有关的子群和一个存储着字Wxyz的数字信息的DRAM单元族连接,其中(a)x是从0到127的一个可变的组号,(b)y是从0到3的一个不变的块号,以及(c)z是从0到7的一个不变的字号。
同样,读出放大器106编制成,(1)128个组中各组的代表Statex0(其中x为组号)的DRAM单元和(读出放大器106的)第一群读出放大器连接,(2)128个组中各组的代表Statex1的DRAM单元和(读出放大器106的)第二群读出放大器连接,(3)128个组中各组的代表Statex2的DRAM单元和(读出放大器106的)第三群读出放大器连接,(4)128个组中各组的代表Statex3的DRAM单元和(读出放大器106的)第四群读出放大器连接。
由此,(读出放大器106的)各个读出放大器和一个为Statexy的位2q存储数字信息的有关的128个DRAM单元族连接,其中:(a)q是一个不变的位号,(b)x是从0到127的一个可变的组号,以及(c)y是一个从0到3的不变的块号。
启用线102包括总共4条状态启用线(即、4块×1状态启用线/块)。每条状态启用线从控制逻辑100连接到读出放大器106的四群的一个有关群,该有关群和一个用于存储statexy的数字信息的DRAM单元族连接,其中(a)x是一个从0到127的可变的组号,并且(b)y是一个从0到3的不变的块号。
请参见图7,每个读出放大器(电路121)从其128个相联的DRAM单元中的一个单元经线D和线 D输入不同的电压,其中该DRAM单元是根据从控制逻辑100按照组号(即按照上述的地址的位25至211)输出的控制线124的逻辑状态选择的。如果ENABLE具有逻辑1状态,则激励电路121;反之不激励电路121。如果不激励电路121,处理机10消耗较少的功率,并且输出节点OUT具有高阻抗状态。如果D的电压高于 D的电压同时电路121是激励的,则OUT具有的电压大致等于Vdd(即,逻辑1状态)。与其相比,如果D的电压低于 D的电压同时电路121是激励的,则OUT具有大致等于GND的电压(即,逻辑0状态)。
通过总线110,在控制逻辑100和地址标记Address Tagxy之间传送地址标记信息,并在控制逻辑100和Statexy之间传送状态信息。通过总线116、118和120a-d,在控制逻辑100和Wxyz之间传送指令信息(或者在数据超高速缓存16的情况下传送数据信息)。
在示例的取指令操作下,控制逻辑100从定序器单元18接收一个有效地址。根据接收到的有效地址的位25至位211控制逻辑100确定一特定的组x(如上文所讨论的那样),并且控制逻辑100从组x的块0-3输入信息。更具体地,通过总线110,控制逻辑100读出四个地址标记:AddressTagx0、Address Tagx1、Address Tagx2以及Address Tagx3,以及各和它们相关的四个状态:statex0、statex1、statex2、以及statex3
另外,控制逻辑100通过控制线122向多路复用器114a-d输出接收到的有效地址的位23和位24。根据控制线122的逻辑状态,多路复用器114a向总线118输出从组x的块0中选出的双字。例如,从下述中选择出该双字:(a)代表Wx00和Wx01的DRAM单元,(b)代表Wx02和Wx03的DRAM单元,(c)代表Wx04和Wx05的DRAM单元,或者(d)代表Wx06和Wx07的DRAM单元。
同样,根据控制线122的逻辑状态,多路复用器114b向总线118输出从组x的块1中选出的双字,多路复用器114c向总线118输出从组x的块2中选出的双字,以及多路复用器114d向总线118输出从组x的块3中选出的双字。通过总线118,多路复用器112接收来自多路复用器114a-d的所有四个双字。
控制逻辑100的MMU把接收到的有效地址转换成具体的物理地址。控制逻辑100把该具体物理地址的位212至位231和来自总线110的任何有效Address Tagxy进行比较。Address Tagxy的有效性是由和Address Tagxy关联的statexy里的“有效”位的数字逻辑值指示的。根据这种比较,如果该具体物理地址的位212至位231的任何有效的Address Tagxy匹配,则控制逻辑100通过控制线126向多路复用器112输出适当的控制信号,从而多路复用器112(通过总线116向控制逻辑100)输出下述之一:(a)如果和Address Tagx0匹配从多路复用器114d输出双字,(b)如果和Address Tagx1匹配从多路复用器114b输出双字,(c)如果和Address Tagx2匹配从多路复用器114c输出双字,(d)如果和Address Tagx3匹配从多路复用器114d输出双字。
从而,控制逻辑100从多路复用路112输入一个双字。如果处理机10运行在满功率方式下,则作为该示例取指令操作的一部分,控制逻辑100把该双字从多路复用器112输出到定序器单元18。
与之相比,如果处理机10在特殊功率方式下运行,则控制逻辑100从多路复用器112向定序器单元18只输出单字(即双字的一半)。控制逻辑100根据有效地址的位22选择单字。这是因为,如果处理机10运行在特殊功率方式下,在处理机10的单个周期内指令缓冲器70(图3)只能通过64位总线50从指令超高速缓存14输入单个32位指令(而不是最多二个32位指令)。
在特殊功率方式下,控制逻辑100在启用线102上输出适当的信号,从而只激励读出放大器108a-h的选定子群,并同时停用读出放大器108a-h的非选定子群。选出的子群是那些和存储着字Wxyz的数字信息的DRAM单元连接的读出放大器,其中(a)x是一个从0到127的可变的组号,(b)y是一个从0到3的可变的块号,以及(c)z是一个从0到7根据有效地址的位22至24选定的不变字号。以这种方式,在处理机10的每个周期内处理机10激励较少的(相对于满功率方式)指令超高速缓存14的读出放大器,从而降低指令超高速缓存14的(并由此处理机10的)平均功耗。
如果处理机10响应软件事件(即SPS具有逻辑1状态)进入特殊“节电”方式还可得到更多的降低,因为在这种情况下控制逻辑100把指令超高速缓存14之内的“路”的数量从四路减少到二路。从而,当处理机10运行在特殊“节电”方式下时,控制逻辑100运行在一种方式下,这种方式确保Address Tagx2和Address Tagx3是无效的(分别由statex2和statex3中的“有效”位的数字逻辑值表示)并且只允许Address Tagx0和AddressTagx1是有效的(分别由statex0和statex1的“有效”位的数字逻辑值表示)。
因此,对于该情况下的取指令操作,激励64个读出放大器(1字/路×4字节/字×8位/字节×2路×1读出放大器/位),而不是如上面结合图2和图3所讨论的那样激励256个读出放大器(2字/路×4字节/字×8位/字节×4路×1读出放大器/位)。这有利地明显降低指令超高速缓存14的(由此处理机10的)平均功耗。
同样,如果处理机10响应软件事件进入特殊“节电”方式,处理机10把数据超高速缓存16中的“路”数从四路减少到二路。因此,对于该情况下的LSU28浮点装入操作,激励64个读出放大器(1字/路×4字节/字×8位/字节×2路×1读出放大器/位),而不是如上面结合图5所讨论的那样激励256个读出放大器(2字/路×4字节/字×8位/字节×4路×1读出放大器/位)。这有利地明显降低数据超高速缓存16的(从而处理机10的)平均功耗。
在SPS从逻辑0状态迁移到逻辑1状态时刻出现软件事件。响应CFXU26执行朝向SPSs40的一个“HID0”寄存器的一预定位的第一MTSPR指令,SPS向逻辑1状态迁移。该第一MTSPR指令规定SPS的逻辑1状态。
在紧靠着该第一MTSPR指令之前,(为了减少处理机10内的电路复杂性)为软件规定一个“同步”(“SYNC”)指令仅在其后的一个“指令同步”(“ISYNC”)指令是有好处的。紧靠着该第一MTSPR指令,为软件规定另一个ISYNC指令是有好处的。
如上面刚刚讨论过的那样,如果处理机10响应软件事件(即SPS具有逻辑1状态)进入特殊“节电”方式,处理机10把指令超高速缓存14和数据超高速缓存16之内的“路”数从四路减少到二路。从而,紧靠着(在第一MTSPR指令的前面的)SYNC指令之前,重要的是要为软件规定“数据超高速缓存块刷新”(“DCBF”)指令以及“指令超高速缓存块无效”(“ICBI”)指令。
类似地,SPS响应CFXU26执行第二个指向SPRs40的“HID0”寄存器的预定位的MTSPR指令迁移到逻辑0状态。该第二个MTSPR指令规定SPS的逻辑0状态。紧靠着第二个MTSPR指令之前,为软件规定一个SYNC指令和一个其后的ISYNC指令是有好处的。紧靠着第二个MTSPR指令,为软件规定另一个ISYNC指令是有好处的。
DCBF指令规定一个有效地址。根据DCBF指令,如果数据超高速缓存16的任何线上存储着该有效地址处的信息(例如数据),处理机10通过清除Statexy中的该线的“有效”位使该线失效。如果该失效线存储的信息是相对于原始存储在存储器39(图1)的相同物理地址(根据有效地址转换)上信息已修改过的信息,则进而响应该DCBF指令,处理机10通过把该修改过的信息从数据超高速缓存16复制到存储器39的相同物理位置上更新存储器39。在把SPS迁移到逻辑1状态之前,重要的是为软件规定足够的DCBF指令以确保在数据超高速缓存16的所有128个组的块2和3内的所有的线是无效的。
ICBI指令规定一个有效地址。响应ICBI指令,如果指令超高速缓存14之内的任何线上存储着该有效地址处的信息(例如指令),处理机10通过清除statexy里的该线的“有效”位使该线无效,在把SPS迁移到逻辑1状态之前,重要的是要为软件规定足够的ICBI指令以确保使指令超高速缓存14内的所有128个组的块2和块3中的所有的线全部失效。
SYNC指令提供一种排序功能,以影响处理机10所执行的所有指令。在执行SYNC指令下,在处理机10执行任何相继的指令(即要执行的编程指令顺序中在该SYNC指令之后的指令),处理机确保所有以前的指令(除“接触装入”操作和指令取出之外)全已完成,或者至少达到这些以前的指令(即在要执行的编程指令顺序中在该SYNC指令之前的指令)不现会造成异常的地步。
当处理机10完成该SYNC指令时,处理机10将执行掉所有由处理机10在该SYNC指令之前启动的外部访问(相对于访问存储器39的所有其它机构)。此外,处理机10将完成掉其响应以前的指令启动的所有装入和存储缓存/总线活动。在完成所有以前的“数据超高速缓存块接触”(“DCBT”)指令以及“供存储的数据超高速缓存块接触”(“DCBTST”)指令之前,或者至少通过地址转换但不考虑是否已在系统总线11上完成这些DCBT和DCBTST指令之前,处理机10推迟SYNC指令的完成。在上文中标明的“PowerPC 603e RISC微处理机用户手册”中对SYNC、DCBT和DCBTST指令有更完整的说明。
响应ISYNC指令,处理机10等待直至其可完成所有以前的指令(即在要执行的编程指令顺序中在该ISYNC指令之前的各个指令)。接着,处理机10废除任何已取出的指令,从而在由以前的指令建立的前后关系下取出(或重取)以及执行以后的指令。处理机10对ISYNC指令的执行不对其它处理机或它们的超高速缓存造成影响。
在执行ISYNC指令中,处理机10实现重取编序。以这种方式,在处理机10执行任何相继的指令(即要执行的编程指令顺序中在ISYNC指令后面的指令)之前,处理机10确保:(a)完成所有前面的指令,至少达到这些前面的指令不再会引起异常的地步;以及(b)完成所有以前的存储操作,至少完成地址变换。这些后面的指令受到前面的指令的全部影响。ISYNC指令是前后关系上得到同步的。
在HPS从逻辑0状态迁移到逻辑1状态的时刻出现硬件事件。响应HPS从逻辑0状态到逻辑1状态的迁移,处理机10进行下面列举的动作。
1.定序器单元18(图1)夭折尚未调度到处理机10的各执行单元的指令缓冲器70(图3)中的任何待决指令。
2.处理机10夭折执行单元(转移部件20、FXU22、CFXU26、LSU28以及FPU30)中的任何待决指令,从而不执行这些待决指令。在该方面上,LSU28(图1)夭折任何未向数据超高速缓存16造成信息存储的待决存储指令。例如,在本示范性实施方式中,LSU28包括一个存储队列。因此,LSU28夭折该存储队列中的任何待决存储请求,从而不执行这些待决存储请求。
3.处理机10使更名缓冲器34和38(图1)里的所有项无效。例如,处理机10移动回写指针182(图5)和完成指针184,以使回写指针182和完成指针184指向和分配指针180指向的相同的更名缓冲器项。
4.定序器单元18(图2)保持排序缓冲器76的完成指针175(图4)指向的指令的地址。接着,处理机10通过移动完成指针175使排序缓冲器76里所有项无效,从而完成指针175指向和分配指针173指向的相同的排序缓冲器项。
在处理机10进行上面列举的动作之后,取逻辑71(图2)重新开始取指令,自上一段中(即上面的第四项动作中)所讨论的由定序器单元18所保持的地址处开始。
在一种备择的实施方式中,不论处理机10是根据软件事件还是根据硬件事件进入特殊“节电”方式,一旦处理机10进入特殊“节电”方式,处理机10就把指令超高速缓存14和数据超高速缓存16的“路”的数量从四路减少到二路。在这种备择的实施方式里,响应HPS从逻辑0状态迁移到逻辑1状态:
(1)控制逻辑100(图6)确保指令超高速缓存14内的所有128个组的块2和块3中的所有线是无效的,从而statex2和statex3的“有效”位被清除;
(2)同样,数据超高速缓存16的控制逻辑确保数据超高速缓存16内的所有128个组的块2和块3中的所有线是无效的;以及
(3)如果数据超高速缓16内的这种失效的线存储着的信息是已由处理机10相对于存储在存储器39(图1)的相同物理地址(根据有效数据转换得到)上的原始信息修改过的信息,处理机10通过把该修改过的信息从数据超高速缓存16复制到存储器39内的相同物理地址与更新存储器39。
控制逻辑100对在指令超高速缓存14内存储新信息执行最近最少使用(“LRU”)替换方针。以这种方式,数据超高速缓存16大体上和指令超高速缓存14相同。相对于指令超高速缓存14,数据超高速缓存16还支持处理机10对数据超高速缓存16的写操作。处理机10可在逐个字节的、半字的、单字的或双字的基准上执行写操作。另外,处理机10可在处理机10的单个周期内完成对数据超高速缓存16的整个读-改-写操作。数据超高速缓存16选择性地运行在回写(write-back)或直写(write-through)方式下,它还履行对超高速缓存能力、写策略、以及逐页基准及逐行基准的存储器连贯性的控制。
尽管上面详细说明了一种示范性实施方式及其优点,但仅是作为例子说明的而不是限制性的。在不违背本发明的广度、范围和精神的前提下,可以对该示范性实施方式进行各种修改、替代和更迭。

Claims (12)

1.一种方法,包括:
当调度电路在第一功率方式下运行时,在所述调度电路的每个周期内,最多向执行电路调度N条供执行的指令,其中N为整数并且N>1;以及
当所述调度电路在第二功率方式下运行时,在所述调度电路的每个周期内,最多向所述执行电路调度M条供执行的指令,其中M为整数并且0<M<N。
2.权利要求1的方法,其特征在于,所述第一功率方式是满功率方式,而所述第二功率方式是低功率方式。
3.权利要求1的方法,其特征在于,所述调度电路响应软件事件进入所述第二功率方式下运行。
4.权利要求1的方法,其特征在于,所述调度电路响应硬件事件进入所述第二功率方式下运行。
5.权利要求4的方法,其特征在于,当所述调度电路的温度超过一个阈温度时出现所述硬件事件。
6.权利要求5的方法,其特征在于,所述阈温度是所述调度电路在所述第一功率方式下运行的最大安全温度。
7.电路,包括:
调度电路,用于:
当调度电路在第一功率方式下运行时,在所述调度电路的每个周期内,向执行电路调度最多N条供执行的指令,其中N为整数并且N>1;以及
当所述调度电路在第二功率方式下运行时,在所述调度电路的每个周期内,向所述执行电路调度最多M条供执行的指令,其中M为整数并且0<M<N。
8.权利要求7的电路,其特征在于,所述第一功率方式是满功率方式,而所述第二功率方式是低功率方式。
9.权利要求7的电路,其特征在于,所述调度电路响应软件事件进入所述第二功率方式下运行。
10.权利要求7的电路,其特征在于,所述调度电路响应硬件事件进入所述第二功率方式下运行。
11.权利要求10的电路,其特征在于,当所述调度电路的温度超过一个阈温度时出现所述硬件事件。
12.权利要求11的电路,其特征在于,所述阈温度是所述调度电路在所述第一功率方式的最大安全温度。
CNB971179379A 1996-10-04 1997-09-03 降低电子电路功耗的方法和处理机电路 Expired - Lifetime CN1157658C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US726370 1996-10-04
US726,370 1996-10-04
US08/726,370 US5805907A (en) 1996-10-04 1996-10-04 System and method for reducing power consumption in an electronic circuit

Publications (2)

Publication Number Publication Date
CN1180197A true CN1180197A (zh) 1998-04-29
CN1157658C CN1157658C (zh) 2004-07-14

Family

ID=24918330

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB971179379A Expired - Lifetime CN1157658C (zh) 1996-10-04 1997-09-03 降低电子电路功耗的方法和处理机电路

Country Status (6)

Country Link
US (1) US5805907A (zh)
JP (1) JP3177198B2 (zh)
KR (1) KR100261639B1 (zh)
CN (1) CN1157658C (zh)
GB (1) GB2317977B (zh)
SG (1) SG53037A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6308260B1 (en) * 1998-09-17 2001-10-23 International Business Machines Corporation Mechanism for self-initiated instruction issuing and method therefor
JP3616556B2 (ja) 1999-06-29 2005-02-02 株式会社東芝 拡張命令を処理する並列プロセッサ
US6728893B1 (en) * 2000-04-21 2004-04-27 Intel Corporation Power management system for a random number generator
US7263567B1 (en) * 2000-09-25 2007-08-28 Intel Corporation Method and apparatus for lowering the die temperature of a microprocessor and maintaining the temperature below the die burn out
US6845432B2 (en) * 2000-12-28 2005-01-18 Intel Corporation Low power cache architecture
US6826704B1 (en) * 2001-03-08 2004-11-30 Advanced Micro Devices, Inc. Microprocessor employing a performance throttling mechanism for power management
US7539878B2 (en) * 2001-09-19 2009-05-26 Freescale Semiconductor, Inc. CPU powerdown method and apparatus therefor
US7114086B2 (en) * 2002-01-04 2006-09-26 Ati Technologies, Inc. System for reduced power consumption by monitoring instruction buffer and method thereof
US7036032B2 (en) * 2002-01-04 2006-04-25 Ati Technologies, Inc. System for reduced power consumption by phase locked loop and method thereof
US7278136B2 (en) * 2002-07-09 2007-10-02 University Of Massachusetts Reducing processor energy consumption using compile-time information
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
US6970985B2 (en) * 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
US6992675B2 (en) * 2003-02-04 2006-01-31 Ati Technologies, Inc. System for displaying video on a portable device and method thereof
US7194601B2 (en) * 2003-04-03 2007-03-20 Via-Cyrix, Inc Low-power decode circuitry and method for a processor having multiple decoders
US7360023B2 (en) * 2003-09-30 2008-04-15 Starcore, Llc Method and system for reducing power consumption in a cache memory
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US8566568B2 (en) * 2006-08-16 2013-10-22 Qualcomm Incorporated Method and apparatus for executing processor instructions based on a dynamically alterable delay
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
KR101390974B1 (ko) * 2008-01-30 2014-05-02 삼성전자주식회사 다중 모드를 제공하는 재구성 가능한 장치 및 방법
US8219831B2 (en) 2009-01-28 2012-07-10 Oracle America, Inc. Reducing temperature and power by instruction throttling at decode stage of processor pipeline in time constant duration steps
US10955906B2 (en) 2019-02-07 2021-03-23 International Business Machines Corporation Multi-layered processor throttle controller

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727491A (en) * 1984-06-27 1988-02-23 Compaq Computer Corporation Personal computer having normal and high speed execution modes
US5345569A (en) * 1991-09-20 1994-09-06 Advanced Micro Devices, Inc. Apparatus and method for resolving dependencies among a plurality of instructions within a storage device
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
KR0122528B1 (ko) * 1993-01-08 1997-11-20 윌리엄 티.엘리스 슈퍼스칼라 프로세서 시스템에서 중간 기억 버퍼의 할당을 인덱스하기 위한 방법 및 시스템
US5465373A (en) * 1993-01-08 1995-11-07 International Business Machines Corporation Method and system for single cycle dispatch of multiple instructions in a superscalar processor system
US5420808A (en) * 1993-05-13 1995-05-30 International Business Machines Corporation Circuitry and method for reducing power consumption within an electronic circuit
JP2815236B2 (ja) * 1993-12-15 1998-10-27 シリコン・グラフィックス・インコーポレーテッド スーパースカーラマイクロプロセッサのための命令ディスパッチ方法及びレジスタ競合についてのチェック方法
WO1995018998A1 (en) * 1994-01-05 1995-07-13 Norand Corporation Safe-stop mode for a microprocessor operating in a pseudo-static random access memory environment
JP2858542B2 (ja) * 1994-06-03 1999-02-17 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ用ディスク・ドライブの電力消費を節減する方法及び装置
US5494419A (en) * 1994-10-20 1996-02-27 Shu-Mu Wu Portable and flexible air pump for bicycle

Also Published As

Publication number Publication date
JP3177198B2 (ja) 2001-06-18
GB9716265D0 (en) 1997-10-08
KR100261639B1 (ko) 2000-07-15
US5805907A (en) 1998-09-08
SG53037A1 (en) 1998-09-28
KR19980032290A (ko) 1998-07-25
CN1157658C (zh) 2004-07-14
GB2317977A (en) 1998-04-08
JPH10124335A (ja) 1998-05-15
GB2317977B (en) 2001-06-27

Similar Documents

Publication Publication Date Title
CN1099076C (zh) 降低电子电路功耗的系统和方法
CN1157658C (zh) 降低电子电路功耗的方法和处理机电路
EP1390835B1 (en) Microprocessor employing a performance throttling mechanism for power management
JP2793488B2 (ja) スーパースカラ・プロセッサ・システムにおいて複数命令を単一サイクルでディスパッチするための方法およびシステム
US8381004B2 (en) Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
US7657708B2 (en) Methods for reducing data cache access power in a processor using way selection bits
US20110283095A1 (en) Hardware Assist Thread for Increasing Code Parallelism
US5694565A (en) Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
JP2777535B2 (ja) スーパースカラ・プロセッサ・システムにおける中間記憶バッファの割当てをインデックスする方法およびシステム
US7650465B2 (en) Micro tag array having way selection bits for reducing data cache access power
CN1224871A (zh) 在一个处理系统中处理多条存储指令完成的方法和系统
US20080229058A1 (en) Configurable Microprocessor
CN1095559C (zh) 降低电子电路功耗的系统和方法
CN1091274C (zh) 降低电子电路功耗的系统和方法
US6895497B2 (en) Multidispatch CPU integrated circuit having virtualized and modular resources and adjustable dispatch priority
Diefendorff History of the PowerPC architecture
US6988121B1 (en) Efficient implementation of multiprecision arithmetic
Fujiwara et al. A custom processor for the multiprocessor system ASCA
US7827389B2 (en) Enhanced single threaded execution in a simultaneous multithreaded microprocessor
EP4185953A1 (en) Register renaming for power conservation
Marsala et al. PowerPC processors
WO2008024221A2 (en) Micro tag reducing cache power

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: LIAN XIANG(SINGAPORE)PRIVATE LTD.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINE CORP.

Effective date: 20061027

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20061027

Address after: Singapore Changi

Patentee after: Lenovo (Singapore) Pte. Ltd.

Address before: New York, USA

Patentee before: International Business Machines Corp.

CX01 Expiry of patent term

Granted publication date: 20040714

CX01 Expiry of patent term