CN101615115B - 用于指令引退的设备、方法和系统 - Google Patents
用于指令引退的设备、方法和系统 Download PDFInfo
- Publication number
- CN101615115B CN101615115B CN2009101584184A CN200910158418A CN101615115B CN 101615115 B CN101615115 B CN 101615115B CN 2009101584184 A CN2009101584184 A CN 2009101584184A CN 200910158418 A CN200910158418 A CN 200910158418A CN 101615115 B CN101615115 B CN 101615115B
- Authority
- CN
- China
- Prior art keywords
- instruction
- resignation
- information
- signal
- array
- 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
- 238000000034 method Methods 0.000 title claims description 27
- 238000003491 array Methods 0.000 claims abstract description 11
- 230000003068 static effect Effects 0.000 claims description 22
- 230000008878 coupling Effects 0.000 claims description 15
- 238000010168 coupling process Methods 0.000 claims description 15
- 238000005859 coupling reaction Methods 0.000 claims description 15
- 239000003446 ligand Substances 0.000 claims description 7
- 238000005192 partition Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 6
- 230000005055 memory storage Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 206010027476 Metastases Diseases 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 229910003460 diamond Inorganic materials 0.000 description 3
- 239000010432 diamond Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000009401 metastasis Effects 0.000 description 3
- 238000011282 treatment Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 206010027336 Menstruation delayed Diseases 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000012546 transfer Methods 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
- 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/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/3842—Speculative instruction execution
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Power Sources (AREA)
Abstract
在一个实施例中,本发明包括接收和引退所执行的指令的引退单元。引退单元可包括在分配时接收信息的第一阵列以及在执行之后接收信息的第二阵列。引退单元还可包括在关联所执行的指令的信息存储在至少一个阵列的按需部分时计算与所执行的指令关联的事件的逻辑。描述了并要求保护其它实施例。
Description
技术领域
本发明涉及处理器的引退逻辑。
背景技术
现代微处理器由接收指令、运行指令和提供指令的结果的各个级形成。许多现代架构基于无序(OOO)实现,其中指令可无序运行,并且结果在稍后按顺序提交给处理器的架构状态。
为了实现这种无序操作,处理器流水线可分段为各个级。当这类级中的指令的处理结束时,引退级可进行操作,以便确认运行结果是有效的,即,不是推测的或者基于不正确的数据,以及没有发生故障或异常。在许多处理器架构中,在各引退周期中,整个引退逻辑是活动的,使得从所有关联阵列读取所有关联数据,并且对每个指令调用整个引退逻辑。所有这种活动的目的在于产生保证信号以及执行包括事件计算和优先化的引退相关操作。
但是,在大多数周期中没有发生事件,因而不需要计算事件。因此,存在对于正确操作所不需要的极大功耗。
发明内容
根据本发明一个方面,提供一种方法,包括:在指令分配时接收与指令关联的静态信息并且将所述静态信息的至少第一部分存储在分配缓冲器的第一部分中,以及如果所述静态信息指示在引退时要执行事件则将所述静态信息的第二部分存储在所述分配缓冲器的第二部分中;如果与所述指令关联的静态信息没有存在于所述分配缓冲器的第二部分中,则在所述指令的引退时发出早期保证信号;以及否则,向所述分配缓冲器的所述第二部分供电,以访问所述静态信息的第二部分。
附图说明
图1是根据本发明的一个实施例的处理器的框图。
图2是根据本发明的一个实施例的引退逻辑的框图。
图3是根据本发明的一个实施例的方法的流程图。
图4是根据本发明的一个实施例的系统的框图。
具体实施方式
在各个实施例中,通过提供各个引退资源的划分,使得仅向最少数量的这些资源供电用于操作的重要部分,可控制处理器的引退逻辑以功率敏感方式进行操作。在这方面,各种阵列、缓冲器等以及逻辑可划分以适应这种操作。虽然本文所述的实施例是在重排序缓冲器(ROB)的上下文中,但是,本发明的范围并不局限于这个方面,实施例而是能与可存在于给定处理器的各种引退逻辑配合使用。
为了实现功率优势,与各引退窗口中将要发生的正常引退活动关联的这类阵列和逻辑的分区可以比较小,使得消耗最小功率。相比之下,对于其中与各种事件关联的附加计算需要在引退指令中实现的较少场合,可向较大阵列和逻辑供电。这样,预期操作可根据需要来执行,同时,对于引退操作的大多数,仅需要向最少引退逻辑供电。虽然本文一般描述为指令引退,但是大家要理解,在各个实施例中,指令可指的是所谓的微操作(μop),其中单个用户级指令、如宏指令可分解为多个μop。
ROB执行引退相关控制,例如异常处理、指令指针(例如EIP/UIP)计算、性能监视(PMON)计算和寄存器更新。除了检测错误之外,ROB在没有故障被检测到和在引退时被执行时有其它正常引退相关任务要执行。这些任务包括在有效引退之后所执行的操作,例如将新的引退值写入非重命名寄存器、计算状态位和更新新值(例如数据断点位、命令和状态寄存器异常、精度异常等)以及更新性能监视器。根据本发明的一个实施例的功率察觉引退方案可以仅在需要时才至少部分根据从外部和内部(相对于ROB)指示得出的静态和动态信息来有选择地控制ROB的不同高功耗块。
换言之,汲取最少量功率的正常引退的主流任务可通过阵列和逻辑的分区来处理,从而留下例如事件处理(例如错误、陷阱、异常、中断)等极少情况仅在需要时才由这类阵列和逻辑的较全分区来处理。这样,需要工作在全性能环境的例如PMON等特殊模式可在需要时正常操作,并且在不活动时节省功率。因此,通过减少实现指令退出的计算量,实施例允许在频率不可中断引退中时的较大引退宽度。
现在参照图1,示出根据本发明的一个实施例的处理器的框图。如图1所示,处理器100可以是多级流水线无序处理器。处理器100采用图1中相对简化的视图示出,以便说明与下面将描述的功率察觉引退操作结合使用的各种特征。
如图1所示,处理器100包括前端单元110,它可用于取将要运行的宏指令,并且准备它们稍后用于处理器。例如,前端单元110可包括指令预取器、指令解码器和跟踪高速缓存,连同微码存储装置以及μop存储装置。指令预取器可从存储器取宏指令,并且将它们馈送给指令解码器,以便将它们解码为原语、即μop,供处理器运行。跟踪高速缓存可取得已解码μop,并将它们汇编成程序有序序列,以便存储到宏码存储装置中。但是,在复杂宏指令的情况下,宏码存储装置可提供操作的执行所需的μop。附加组件和特征当然可在前端单元110中实现。
耦合在前端单元110与执行单元120之间的是OOO引擎115,它可用于接收微指令,并且将它们准备用于运行。更具体来说,OOO引擎115可包括各种缓冲器,以便对微指令流重排序,并且分配执行所需的各种资源,以及提供逻辑寄存器到各种寄存器堆、如寄存器堆130和扩展寄存器堆135中的存储位置上的重命名。寄存器堆130可包括用于整数和浮点运算的独立寄存器堆。扩展寄存器堆135可为矢量大小的单位提供存储装置,例如每个寄存器256或512位。
各种资源可存在于执行单元120中,包括例如各种整数、浮点和单指令多数据(SIMD)逻辑单元以及其它专用硬件。可将结果提供给引退逻辑、即重排序缓冲器(ROB)140,它可通过功率察觉方式进行操作。更具体来说,ROB 140包括各种阵列和逻辑,以便接收与被执行的指令关联的信息。然后,这个信息由ROB 140检查,以便确定指令是否可有效地引退以及产生提交给处理器的架构状态的数据,或者是否发生阻止指令的正确引退的一个或多个异常。ROB140当然可处理与引退关联的其它操作,例如本文所述的各种事件和计算。
如图1所示,ROB 140可包括各种阵列,其包括一个或多个启用阵列142和一个或多个按需阵列144。启用阵列可始终被加电,并且可包括与指令关联的最少量的信息。下面进一步论述,在一个具体实现中,分配阵列和回写(WB)阵列的独立分区可与启用阵列144对应。类似地,按需阵列144可以是包含与μop关联的附加信息的这类阵列的分区,并且它们只可在需要时才被加电以便处理与给定指令关联的事件。又如图1所示,ROB 140还包括启用逻辑146。这种启用逻辑可以始终是活动的,并且可用于处理正常指令引退操作。相比之下,按需逻辑148只能根据需要被启用以便处理正常引退之外的事件,例如处理故障、中断、分支误预测、性能监视和更新等。如图1所示,ROB 140与高速缓存150耦合,高速缓存150在一个实施例中可以是低级高速缓存(例如L1高速缓存),但是本发明的范围并不局限于这个方面。执行单元120也可直接与高速缓存150耦合。从高速缓存150,可与较高级高速缓存、系统存储器等进行数据通信。虽然在图1的实施例中采用这种高级来表示,但是大家理解,本发明的范围并不局限于这个方面。
在一般操作中,ROB确定引退窗口的μop是否要求读取ROB阵列的特定部分或要求启用特定逻辑(其中该特定资源为高功耗,并且执行正常引退之外的操作)。这种确定可在分配期间在前面被静态地检测或者在WB时动态检测。例如,如果没有检测到静态事件(在分配时)或动态事件(在回写(WB)时),则不需要激活事件逻辑。另外,如果PMON收集不是活动的,则这种状态可在分配时静态检测,以及在引退时不应当读取与PMON计算关联的数据,并且不需要启用计算PMON值的逻辑。
除非识别并且特定地启用特定操作,否则,ROB将通常集中于正常引退的主流活动。这种功率察觉方案通常仅启用无事件和正常μop引退所需的逻辑,而将所有其它逻辑断电,直至识别到对它的需要为止。
为了启用功率察觉ROB,实施例可将各种资源、如阵列分为两个部分:对于每一个引退读取的一个部分以及只按需(例如对于PMON操作、中断、故障等)读取的另一个部分。然后,用于识别将对于每种类型的能力(例如仅事件、仅PMON等)读取各阵列的哪一个部分的逻辑可用于向适当资源供电。此外,引退逻辑可划分成使得每个部分在关联该种操作的类型引退时将被专门地启用。
在正常情况下,当没有检测到推测事件时,用于指明μop可在没有故障或异常的情况下有效地引退的引退窗口的保证信号可在μop对于引退是有效的并且将不存在由故障逻辑进行的计算时立即是活动的。因此,它可更快地、例如快一个或多个周期被释放,因而可称作早期保证信号。但是,当检测到推测事件时,在这时不产生早期保证,而是将由按需启用逻辑来产生用于指明μop不能有效引退的(晚期)保证信号或者nuke或无效信号。
现在参照图2,示出根据本发明的一个实施例的引退逻辑的框图。如图2所示,可与ROB对应的引退逻辑200可具有划分为多个部分的各种资源,其中第一分区可在各引退窗口期间始终启用以执行操作,而第二分区只可根据需要间断地启用以处理具有与其关联的各种事件的引退。如图2所示,引退单元200包括分配阵列210。分配阵列210可接收与μop关联的入局信息(在它们的分配时)。虽然本发明的范围并不局限于这个方面,但是,这种信息可对应于与μop关联的静态信息,例如运算的类型(分支、加载、存储、浮点(FP)或整数运算)或者与μop关联的异常的类型。如图2所示,分配阵列210可划分为可配置成始终是活动的第一分区212以及仅根据需要(即,按需)启用的第二分区214。如图所示,第一分区212的相对大小可比第二分区214小许多。因此,可使始终加电的部分比较小,从而降低功耗。为此,只有各μop的最少量信息可存储在第一分区212中。例如,可为各μop存储单个位,以便指明μop的附加信息是否存在于第二分区214中。因此,如果μop看起来是可以无任何类型的事件处理而正常引退的μop,则第一分区212中的关联位可具有第一状态(例如逻辑0),而如果具有第二状态(例如逻辑1),则这指明与该μop关联的附加信息存在于第二分区214中。
类似地,回写(WB)阵列220可经过耦合,以便在关联μop的回写时接收信息。因此,在执行单元中执行给定μop时,可将包括所计算值的各种结果信息以及状态标志或其它这种信息,包括故障或其它异常信息,提供给WB阵列220。如图2所示,WB阵列220也划分为两个部分,即第一分区222和第二分区224。这些分区可通过与以上对于分配阵列210所述相同的方式来存储信息。
仍然参照图2,早期逻辑230可与两个阵列210和220耦合,并且从其中接收启用信号。又如图2所示,早期逻辑230可经过耦合,以便从处理器的其它部分接收全局事件信息。虽然本发明的范围并不局限于这个方面,但是,这类全局事件可对应于中断、窥探或者其它这类事件。早期逻辑230可配置成接收这种信息,并且确定是否可生成早期保证信号。也就是说,如果没有接收到与引退窗口关联的全局事件,并且来自阵列210和220的所启用的第一分区的值指明没有与引退窗口的μop关联的信息存在于第二分区中,则这表示不存在要处理的事件,并且可执行正常引退。相应地,早期逻辑230生成早期保证信号,该早期保证信号被提供给输出逻辑250,下面将进一步进行论述。这样,早期逻辑230基本上充当OR逻辑。
如果相反对早期逻辑230的这些各种输入的任一个指明不能生成早期保证信号,则可激活阵列210和220的第二分区,使得来自这些阵列的对应于引退窗口的信息可发送给事件逻辑240,事件逻辑240一般表示执行引退相关操作的逻辑。
因此,当不能生成早期保证信号时,可启用事件逻辑240使得可执行与引退窗口关联的事件处理。此外,根据第二分区中存在的信息,非事件引退逻辑245可加电,以便执行引退相关操作,例如因误预测分支引起的指令指针更新或者在分配或引退时所接收的PMON指示。在图2的实施例中,虽然为了便于说明而未示出,但是大家要理解,在各种实现中,事件逻辑240本身可划分为各个部分,使得只可激活用于处理给定类型的引退或事件处理的这种逻辑的最小部分。因此,当信息指明需要事件逻辑240的给定部分来处理事件处理时,只有逻辑240的那个部分才可加电。
事件逻辑240可生成输出,该输出被提供给输出逻辑250。如果计算指明引退窗口是有效的,则这个输出可对应于保证信号。注意,这个保证信号可被认为是在可于早期逻辑230中生成的早期保证信号之后的一个或多个周期生成的后期保证信号。如果根据事件逻辑240中执行的计算,确定引退窗口例如由于故障、中断、误预测等而不能有效地引退,则可相反将无效或nuke信号发送给输出逻辑250,并且引退将由按程序顺序进行操作但以不同于原始速率的速率(即每个时钟引退单个μop与使用正常引退速率时的每个时钟引退四个μop)进行操作的不同逻辑来处理。
因此,可以是有限状态机(FSM)的输出逻辑250可接收来自早期逻辑230和事件逻辑240的这些各种信号。输出逻辑250可用于使这些各种信号串行化,使得它们按程序顺序从输出逻辑250发出。也就是说,除了指令的无序执行之外,输出逻辑250可确保可比来自事件逻辑240的早期引退窗口的保证或无效信号早一个或多个周期接收的早期保证信号没有在这种信号之前发出。换言之,输出逻辑250按顺序输出各引退窗口的信号,无论这类信号是在早期逻辑230还是事件逻辑240中始发。
在各个实施例中,输出逻辑250可与处理器的各种其它资源、如控制逻辑等耦合,以便如果生成保证信号的话使执行结果能够有效地提交给处理器的架构状态,而如果相反生成无效信号的话,则引起其它异常处理的适当故障,包括各种处理器资源可能的刷新。
因此,如图2所示,各个阵列划分为始终被读取的第一分区以及有选择地被读取的第二分区。类似地,引退单元200的逻辑也可分为始终是活动的逻辑,并且用于确定是否发生与引退窗口关联的事件,以及如果是,则确定应当启用什么附加引退逻辑。虽然在图2的实施例中采用这种具体实现示出,但是本发明的范围并不局限于这个方面。
因此,总结操作,在分配时,定义需要读取哪一个分区的静态信息可被计算并存储在分配阵列210中,更具体来说存储在第一分区212中。对WB信息执行类似操作,并且它可存储在WB阵列220中,更具体来说存储在第一分区222中。然后,在引退时,读取信息,并且由早期逻辑230进行关于要读取哪一个阵列以及要启用哪一个逻辑的判定。另外,外部事件、如中断或窥探也可由早期逻辑230来检查,以便确定是否需要启用另一个阵列或逻辑。如果需要执行的任务被识别并且其要求来自未被读取的阵列之一的附加信息,则读取分配或WB阵列的特定部分,并且启用执行这个任务的附加逻辑。
现在参照图3,示出根据本发明的一个实施例的方法的流程图。如图3所示,方法300可用于以功率察觉方式来引退指令。方法300可开始于在指令分配时接收静态信息并且将这种信息存储在分配缓冲器的所选部分(框310)。例如,如上所述,如果这个静态信息指明故障或异常是不可能的,则可在分配缓冲器较小的第一部分中设置例如单个位等指示符,以便指明没有与指令关联的附加信息存在于分配缓冲器的第二部分。如果相反静态信息指明在引退时例如因故障、性能监视或其它原因而可能需要附加处理,则指示符可设置成指明附加信息存在于第二分区中。关于在指令回写时所接收的动态信息可进行类似操作,并且它存储在类似设置的回写缓冲器中(框320)。
仍然参照图3,在菱形框330,可确定(在引退时)与给定引退窗口关联的缓冲器的第一部分中的信息是否指明需要附加引退或事件处理。也就是说,根据第一部分中的对应指示符的状态,可确定是否可需要这种引退处理(例如IP更新或性能监视)或者例如各种计算、故障或中断处理等事件处理。如果不需要,则控制转移到菱形框340,其中可确定是否接收到与引退窗口关联的全局信号。如上所述,这种全局信号可对应于中断、窥探或其它全局事件。如果没有接收到这种信号,则例如早期逻辑可发出早期保证信号(框350)。
仍然参照图3,如果相反确定需要附加引退或事件处理或者已经接收到全局信号,则控制从任一个菱形框330或340转移到框360,其中可激活分配和回写缓冲器的附加部分。然后,控制转移到框370,其中可在事件逻辑的一个或多个已激活部分中执行这种处理。如上所述,根据所提供的附加信息,可启用各种引退或事件逻辑,以便执行各种计算或其它处理,从而确定是否可生成后期保证信号。相应地,事件逻辑的输出可以是后期保证信号或失效(如nuke)信号(框380)。
又如图3所示,从两个框350和380,控制转移到框390,其中可使各个信号串行化,以便从引退单元输出。也就是说,为了保持引退窗口的串行化,阻止对于后期引退窗口所生成的早期保证信号走在关联早期引退窗口的后期保证或失效信号之前。虽然在图3的实施例中采用这种具体实现示出,但是本发明的范围并不局限于这个方面。
例如,如果确定在引退时需要特殊处理,则可以不同于正常情况的方式来处理引退μop。假定在不存在事件的情况下通常引退8个μop。在引退窗口中检测到事件时,各μop可改为单独引退,使得对于单个μop仅需要事件逻辑的单个设置。这可提供进一步的功率减小,并且如果引退更快的话甚至改进性能。但是,在判定激活某个逻辑之后的引退操作可通过与原始速率不同的速率。
不再需要的事件的一个示例可以是设置的粘着位。因此,不需要再次设置它,因而无需启用用于执行这种重复设置的事件逻辑。另一个这种情况是充分地及早添加早期信号以识别无故障操作,使得不会执行与其关联的操作。例如,浮点(FP)运算可充分地及早断言安全,使得不会启用异常处理逻辑。在例如对于PMON处理和协处理器状态存储的情况下,ROB将读取它保存的数据阵列,执行与该操作关联的任务,但如果没有检测到故障,则不会检查故障以及激活与其关联的逻辑。
实施例可在许多不同的系统类型中实现。现在参照图4,示出根据本发明的一个实施例的系统的框图。如图4所示,多处理器系统500是点对点互连系统,并且包括经由点对点互连550耦合的第一处理器570和第二处理器580。如图4所示,处理器570和580的每个可以是多核处理器,其中包括第一和第二处理器核(即处理器核574a、574b和处理器核584a、584b)。各处理器核可包括例如图1和图2所示的逻辑,以便启用根据本发明的一个实施例的功率察觉引退。
仍然参照图4,第一处理器570还包括存储控制器集线器(MCH)572和点对点(P-P)接口576、578。类似地,第二处理器580包括MCH 582和P-P接口586、588。如图4所示,MCH 572、582将处理器耦合到相应的存储器、即存储器532和存储器534,它们可以是与相应处理器本地连接的主存储器(例如动态随机存取存储器(DRAM))的部分。第一处理器570和第二处理器580分别可经由P-P互连552、554与芯片组590耦合。如图4所示,芯片组590包括P-P接口594和598。
此外,芯片组590包括将芯片组590与高性能图形引擎538耦合的接口592。芯片组590又可经由接口596与第一总线516耦合。如图4所示,各种I/O装置514可连同总线桥518一起与第一总线516耦合,总线桥518将第一总线516与第二总线520耦合。各种装置可耦合到第二总线520,在一个实施例中,包括例如键盘/鼠标522、通信装置526以及可包括代码530的例如磁盘驱动器或其它大容量存储装置的数据存储单元528。另外,音频I/O 524可与第二总线520耦合。
实施例可通过代码来实现,并且可存储在存储介质中,存储介质中已经存储了可用于将系统编程为执行指令的指令。存储介质可包括但不限于:任何类型的磁盘,包括软盘、光盘、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)和磁光盘;半导体器件,例如只读存储器(ROM)、例如动态随机存取存储器(DRAM)和静态随机存取存储器(SARAM)等随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、闪速存储器、电可擦可编程只读存储器(EEPROM)、磁卡或光卡;或者适合于存储电子指令的其它类型的介质。
虽然针对有限数量的实施例描述了本发明,但是本领域的技术人员将会从其中知道大量修改和变更。所附权利要求书意在涵盖落入本发明的真实精神和范围之内的所有这类修改和变更。
Claims (20)
1.一种用于指令引退的设备,包括:
引退单元,用于在执行指令之后引退所述指令,所述引退单元包括:
第一阵列,用于在所述指令的分配时接收第一信息,所述第一阵列划分为在各引退窗口被读取的第一部分以及按需读取的第二部分;
第二阵列,用于在所述指令的执行之后接收第二信息,所述第二阵列划分为在各引退窗口读取的第一部分以及按需读取的第二部分;以及
需求逻辑单元,用于如果关联所执行的指令的信息存储在所述第一阵列的第二部分或所述第二阵列的第二部分中则计算与所执行的指令关联的事件。
2.如权利要求1所述的设备,其中,所述需求逻辑单元用于如果计算指明所执行的指令没有故障则生成对于所执行的指令的保证信号,而如果指明故障则生成失效信号。
3.如权利要求2所述的设备,还包括:早期逻辑单元,与所述第一和第二阵列的输出耦合以及用于根据所述第一和第二阵列的第一部分中的信息来输出对于所执行的指令的早期保证信号。
4.如权利要求3所述的设备,其中,所述早期逻辑单元还经过耦合以接收全局事件信息,并且对所述全局事件信息进行响应而激活所述需求逻辑单元。
5.如权利要求3所述的设备,还包括:输出逻辑单元,与所述需求逻辑单元和所述早期逻辑单元耦合以使所述早期保证信号和所述保证信号或所述失效信号串行化。
6.如权利要求4所述的设备,其中,所述早期逻辑单元用于根据所述第一阵列的第一部分中存在的与所述引退窗口对应的指示符的状态来激活所述第一阵列的第二部分。
7.如权利要求1所述的设备,其中,所述第一阵列包括分配阵列,而所述第二阵列包括回写阵列。
8.如权利要求7所述的设备,其中,除非所述需求逻辑单元是活动的,否则所述第一和第二阵列的第二部分将断电。
9.一种用于指令引退的方法,包括:
在指令分配时接收与指令关联的静态信息并且将所述静态信息的至少第一部分存储在分配缓冲器的第一部分中,以及如果所述静态信息指示在引退时要执行事件则将所述静态信息的第二部分存储在所述分配缓冲器的第二部分中;
如果与所述指令关联的静态信息没有存在于所述分配缓冲器的第二部分中,则在所述指令的引退时发出早期保证信号;以及
否则,向所述分配缓冲器的所述第二部分供电,以访问所述静态信息的第二部分。
10.如权利要求9所述的方法,还包括:如果没有发出所述早期保证信号,则在被加电的事件逻辑单元中执行事件处理。
11.如权利要求10所述的方法,还包括:根据所述事件处理的结果,在所述事件逻辑单元中生成后期保证信号或失效信号。
12.如权利要求11所述的方法,还包括:对于从引退单元的输出使关联第一指令的早期保证信号以及关联第二指令的后期保证信号或失效信号串行化,所述第二指令按程序顺序比所述第一指令早。
13.如权利要求9所述的方法,还包括:在指令回写时接收与所述指令关联的动态信息并将所述动态信息的至少第一部分存储在回写缓冲器的第一部分中,以及如果所述动态信息指示在引退时要执行事件,则将所述动态信息的第二部分存储在所述回写缓冲器的第二部分中。
14.如权利要求13所述的方法,还包括:至少部分根据所述静态信息的第一部分以及所述动态信息的第一部分来确定引退时是否要执行事件处理,并且在要执行所述事件处理时执行所述事件处理,其中,所述引退在要执行所述事件处理时以与不执行所述事件处理时不同的速率进行。
15.一种用于指令引退的系统,包括:
无序执行指令的处理器,所述处理器包括多个执行单元以及与所述多个执行单元耦合的引退单元,其中,所述引退单元包括:
在所述指令的分配时接收第一信息的分配缓冲器,所述分配缓冲器划分为在各引退窗口读取的第一部分以及按需读取的第二部分;
在所述指令的执行之后接收第二信息的回写缓冲器,所述回写缓冲器划分为在各引退窗口读取的第一部分以及按需读取的第二部分;
第一逻辑单元,与所述分配缓冲器和所述回写缓冲器的输出耦合,以及用于如果没有关联第一执行的指令的第二信息存在于所述分配缓冲器或所述回写缓冲器的第二部分中则输出对于所述第一执行的指令的早期保证信号;以及
第二逻辑单元,与所述分配缓冲器和所述回写缓冲器的输出耦合以及用于如果关联第二执行的指令的第二信息存在于所述分配缓冲器或所述回写缓冲器的第二部分中则输出对于所述第二执行的指令的后期保证信号或失效信号;以及
与所述处理器耦合的动态随机存取存储器。
16.如权利要求15所述的系统,其中,所述第一逻辑单元用于接收全局事件信号,并且响应所述全局事件信号而在第三执行的指令的引退期间激活所述第二逻辑单元。
17.如权利要求15所述的系统,还包括:与所述第一逻辑单元和所述第二逻辑单元耦合并且用于组合所述第一逻辑单元和所述第二逻辑单元的输出的第三逻辑单元。
18.如权利要求17所述的系统,其中,所述第三逻辑单元用于对于从所述引退单元的输出使所述后期保证信号或所述失效信号串行化在所述早期保证信号之前,其中,所述第二执行的指令按程序顺序比所述第一执行的指令早。
19.如权利要求15所述的系统,其中,在各引退窗口期间向所述分配缓冲器和所述回写缓冲器的第一部分供电,而仅当关联引退窗口的信息存储在所述分配缓冲器的第二部分中时才在所述引退窗口期间向所述分配缓冲器的第二部分供电。
20.如权利要求15所述的系统,其中,在引退窗口期间所述第一逻辑单元输出所述早期保证信号而所述第二逻辑单元没有被供电,其中,在所述引退窗口之前设置粘着位,并且无需由所述引退单元来设置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/215526 | 2008-06-27 | ||
US12/215,526 US7921280B2 (en) | 2008-06-27 | 2008-06-27 | Selectively powered retirement unit using a partitioned allocation array and a partitioned writeback array |
US12/215,526 | 2008-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101615115A CN101615115A (zh) | 2009-12-30 |
CN101615115B true CN101615115B (zh) | 2013-12-25 |
Family
ID=41360915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101584184A Expired - Fee Related CN101615115B (zh) | 2008-06-27 | 2009-06-26 | 用于指令引退的设备、方法和系统 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7921280B2 (zh) |
JP (1) | JP5474926B2 (zh) |
CN (1) | CN101615115B (zh) |
DE (1) | DE102009029852A1 (zh) |
GB (1) | GB2473345B (zh) |
RU (1) | RU2427883C2 (zh) |
TW (1) | TWI407369B (zh) |
WO (1) | WO2009158247A2 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130080141A1 (en) * | 2011-09-23 | 2013-03-28 | National Tsing Hua University | Power aware simulation system with embedded multi-core dsp |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903740A (en) * | 1996-07-24 | 1999-05-11 | Advanced Micro Devices, Inc. | Apparatus and method for retiring instructions in excess of the number of accessible write ports |
CN1784654A (zh) * | 2003-05-02 | 2006-06-07 | 先进微装置公司 | 识别微处理器中的数据推测操作的推测指针 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371885A (en) * | 1989-08-29 | 1994-12-06 | Microsoft Corporation | High performance file system |
JP3637920B2 (ja) * | 1992-05-01 | 2005-04-13 | セイコーエプソン株式会社 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
US6047369A (en) * | 1994-02-28 | 2000-04-04 | Intel Corporation | Flag renaming and flag masks within register alias table |
US5751985A (en) * | 1995-02-14 | 1998-05-12 | Hal Computer Systems, Inc. | Processor structure and method for tracking instruction status to maintain precise state |
US5889982A (en) * | 1995-07-01 | 1999-03-30 | Intel Corporation | Method and apparatus for generating event handler vectors based on both operating mode and event type |
US6108769A (en) * | 1996-05-17 | 2000-08-22 | Advanced Micro Devices, Inc. | Dependency table for reducing dependency checking hardware |
US5938760A (en) * | 1996-12-17 | 1999-08-17 | International Business Machines Corporation | System and method for performance monitoring of instructions in a re-order buffer |
US5938761A (en) * | 1997-11-24 | 1999-08-17 | Sun Microsystems | Method and apparatus for branch target prediction |
GB9825102D0 (en) * | 1998-11-16 | 1999-01-13 | Insignia Solutions Plc | Computer system |
US6757892B1 (en) * | 1999-06-24 | 2004-06-29 | Sarnoff Corporation | Method for determining an optimal partitioning of data among several memories |
US6615343B1 (en) * | 2000-06-22 | 2003-09-02 | Sun Microsystems, Inc. | Mechanism for delivering precise exceptions in an out-of-order processor with speculative execution |
US6880067B2 (en) * | 2001-03-30 | 2005-04-12 | Hewlett-Packard Development Company L.P. | Retiring instructions that meet the early-retirement criteria to improve computer operation throughput |
US6990568B2 (en) * | 2001-03-30 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Retiring early-completion instructions to improve computer operation throughput |
US6944752B2 (en) * | 2001-03-30 | 2005-09-13 | Hewlett-Packard Development Company, L.P. | Retiring early-completion instructions to improve computer operation throughput |
US6738861B2 (en) * | 2001-09-20 | 2004-05-18 | Intel Corporation | System and method for managing data in memory for reducing power consumption |
US7502817B2 (en) * | 2001-10-26 | 2009-03-10 | Qualcomm Incorporated | Method and apparatus for partitioning memory in a telecommunication device |
US6910121B2 (en) | 2002-01-02 | 2005-06-21 | Intel Corporation | System and method of reducing the number of copies from alias registers to real registers in the commitment of instructions |
US7219249B1 (en) * | 2002-12-03 | 2007-05-15 | The Research Foundation Of State University Of New York | System and method for reducing power requirements of microprocessors through dynamic allocation of datapath resources |
US6922769B2 (en) * | 2002-12-23 | 2005-07-26 | Intel Corporation | Apparatus and method for reduction of power consumption in OS that use flat segmentation memory model |
US20040128484A1 (en) | 2002-12-30 | 2004-07-01 | Zeev Sperber | Method and apparatus for transparent delayed write-back |
US20050050303A1 (en) * | 2003-06-30 | 2005-03-03 | Roni Rosner | Hierarchical reorder buffers for controlling speculative execution in a multi-cluster system |
US7096345B1 (en) * | 2003-09-26 | 2006-08-22 | Marvell International Ltd. | Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof |
US7167989B2 (en) * | 2003-10-14 | 2007-01-23 | Intel Corporation | Processor and methods to reduce power consumption of processor components |
US7246219B2 (en) | 2003-12-23 | 2007-07-17 | Intel Corporation | Methods and apparatus to control functional blocks within a processor |
US7386756B2 (en) * | 2004-06-17 | 2008-06-10 | Intel Corporation | Reducing false error detection in a microprocessor by tracking instructions neutral to errors |
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 |
US7747841B2 (en) * | 2005-09-26 | 2010-06-29 | Cornell Research Foundation, Inc. | Method and apparatus for early load retirement in a processor system |
US7475225B2 (en) | 2005-12-30 | 2009-01-06 | Intel Corporation | Method and apparatus for microarchitecture partitioning of execution clusters |
US20080072015A1 (en) | 2006-09-18 | 2008-03-20 | Julier Michael A | Demand-based processing resource allocation |
US7472260B2 (en) * | 2006-10-10 | 2008-12-30 | P.A. Semi, Inc. | Early retirement of store operation past exception reporting pipeline stage in strongly ordered processor with load/store queue entry retained until completion |
US7721076B2 (en) | 2006-12-18 | 2010-05-18 | Intel Corporation | Tracking an oldest processor event using information stored in a register and queue entry |
US8074060B2 (en) * | 2008-11-25 | 2011-12-06 | Via Technologies, Inc. | Out-of-order execution microprocessor that selectively initiates instruction retirement early |
-
2008
- 2008-06-27 US US12/215,526 patent/US7921280B2/en not_active Expired - Fee Related
-
2009
- 2009-06-17 GB GB1015011.8A patent/GB2473345B/en not_active Expired - Fee Related
- 2009-06-17 WO PCT/US2009/047613 patent/WO2009158247A2/en active Application Filing
- 2009-06-17 JP JP2011501025A patent/JP5474926B2/ja active Active
- 2009-06-18 TW TW098120442A patent/TWI407369B/zh active
- 2009-06-22 DE DE102009029852A patent/DE102009029852A1/de not_active Withdrawn
- 2009-06-26 RU RU2009124521/08A patent/RU2427883C2/ru not_active IP Right Cessation
- 2009-06-26 CN CN2009101584184A patent/CN101615115B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903740A (en) * | 1996-07-24 | 1999-05-11 | Advanced Micro Devices, Inc. | Apparatus and method for retiring instructions in excess of the number of accessible write ports |
CN1784654A (zh) * | 2003-05-02 | 2006-06-07 | 先进微装置公司 | 识别微处理器中的数据推测操作的推测指针 |
Also Published As
Publication number | Publication date |
---|---|
GB201015011D0 (en) | 2010-10-20 |
US20090327663A1 (en) | 2009-12-31 |
JP5474926B2 (ja) | 2014-04-16 |
CN101615115A (zh) | 2009-12-30 |
GB2473345B (en) | 2012-12-05 |
RU2427883C2 (ru) | 2011-08-27 |
US7921280B2 (en) | 2011-04-05 |
WO2009158247A3 (en) | 2010-03-04 |
WO2009158247A2 (en) | 2009-12-30 |
TW201015435A (en) | 2010-04-16 |
TWI407369B (zh) | 2013-09-01 |
DE102009029852A1 (de) | 2009-12-31 |
JP2011514607A (ja) | 2011-05-06 |
RU2009124521A (ru) | 2011-01-10 |
GB2473345A (en) | 2011-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102103484B (zh) | 用于启用处理器等待状态的指令 | |
CN101681259B (zh) | 用于使用局部条件码寄存器以加速管线处理器中的条件指令执行的系统和方法 | |
TWI494850B (zh) | 通透地提供給作業系統之非對稱多核心處理器系統 | |
JP6095670B2 (ja) | コンピュータ・システム内のオペランド活性情報の維持 | |
Stefan et al. | Eliminating cache-based timing attacks with instruction-based scheduling | |
EP2784674A2 (en) | Asymmetric multi-core processor with native switching mechanism | |
KR102379894B1 (ko) | 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법 | |
CN103809935A (zh) | 在超前运行期间管理潜在无效结果 | |
CN103810035A (zh) | 智能上下文管理 | |
CN104731560A (zh) | 支持多线程处理的功能单元、处理器及其操作方法 | |
CN100451951C (zh) | Risc cpu中的5+3级流水线设计方法 | |
CN103140847B (zh) | 调节原子存储器操作以防止拒绝服务的攻击 | |
CN112182999B (zh) | 一种基于mips32指令系统的三级流水线cpu设计方法 | |
CN101615115B (zh) | 用于指令引退的设备、方法和系统 | |
US8214574B2 (en) | Event handling for architectural events at high privilege levels | |
JP2008269114A (ja) | マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 | |
CN116414541A (zh) | 兼容多种任务工作模式的任务执行方法和装置 | |
US10423421B2 (en) | Opportunistic utilization of redundant ALU | |
US20110231637A1 (en) | Central processing unit and method for workload dependent optimization thereof | |
US6851044B1 (en) | System and method for eliminating write backs with buffer for exception processing | |
JP5939586B2 (ja) | オーバーロードチェックを実行する命令 | |
JPH1049373A (ja) | パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 | |
TWI756212B (zh) | 處理向量指令 | |
Pokam et al. | Speculative software management of datapath-width for energy optimization | |
JP5967646B2 (ja) | レジスタレスアーキテクチャによるキャッシュレスマルチプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131225 Termination date: 20180626 |