用于重命名表重建基于重新排序缓冲区的动态检查点设置.pdf

上传人:1*** 文档编号:177276 上传时间:2018-01-31 格式:PDF 页数:23 大小:4.17MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410097569.4

申请日:

2014.03.14

公开号:

CN104050027A

公开日:

2014.09.17

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 9/46申请日:20140314|||公开

IPC分类号:

G06F9/46; G06F13/10

主分类号:

G06F9/46

申请人:

三星电子株式会社

发明人:

R.伊恩加; P.桑萨纳克里什南

地址:

韩国京畿道

优先权:

2013.03.14 US 13/831,488

专利代理机构:

北京市柳沈律师事务所 11105

代理人:

刘虹

PDF下载: PDF下载
内容摘要

一种减少由于使流水线停止以重建重命名表而导致的时间惩罚的乱序CPU、设备和方法。微处理器可以包括具有解码器、分派器以及至少一个执行单元的流水线。重命名表存储重命名数据,并且检查点表(CPT)存储从分派器接收到的重命名数据。重新排序缓冲区(ROB)存储ROB数据,并且具有与CPT的动态映射关系。如果诸如由于误预测而清除了重命名表,则至少部分地通过并发复制存储在CPT中的重命名数据,协同在ROB上步移,来重建重命名表。

权利要求书

1.  一种微处理器,包括:
重命名表,其用于存储重命名数据;
分派器;以及
检查点表(CPT),其用于存储从所述分派器接收到的重命名数据,
其中如果清除了所述重命名表,则使用存储在所述CPT中的重命名数据来重建重命名表。

2.
  如权利要求1所述的微处理器,其中,
仅使用存储在所述CPT中的重命名数据来重建所述重命名表。

3.
  如权利要求1所述的微处理器,还包括:
分支执行逻辑,其用于检测误预测,以及
其中响应于检测到误预测,清除所述重命名表。

4.
  如权利要求1所述的微处理器,还包括:
时钟,其用于输出定义时钟周期的脉冲,以及
其中在所述时钟周期中的单个时钟周期中重建所述重命名表。

5.
  如权利要求1所述的微处理器,还包括,
重新排序缓冲区(ROB),其具有ROB条目和指向ROB条目中的可变条目的引退指针,并且其中
ROB条目的组被定义为ROB检查点窗口,
所述ROB检查点窗口根据动态关系映射到所述CPT,其中基于所述引退指针指向的ROB条目来定义所述ROB检查点窗口,以及
如果所述动态关系的方面允许,仅使用存储在所述CPT中的重命名数据来重建所述重命名表。

6.
  一种用于微处理器的方法,包括:
根据微操作生成重命名数据;
在重命名表中存储所述重命名数据;
分派器向执行单元分派所述微操作中的一个;
所述分派器向检查点表(CPT)传送所述重命名数据用于存储;以及
如果清除了所述重命名表,则通过将存储在所述CPT中的重命名数据从所述CPT复制到所述重命名表来重建所述重命名表。

7.
  如权利要求6所述的方法,还包括:
检测误预测,以及
其中响应于检测到误预测,清除重命名表。

8.
  一种微处理器,包括:
解码器,其用于将指令解码为微操作;
执行单元,其用于执行所述微操作;
重命名器,其用于根据所述微操作生成所述重命名数据;
重命名表,其用于以所述重命名数据能够从所述重命名表被清除的方式来存储所述重命名数据;
检查点表(CPT),其用于存储所述重命名数据的被设置检查点的版本;
重新排序缓冲区(ROB),其具有用于存储从所述微操作生成的ROB数据的ROB条目和指向所述ROB条目中的可变条目的引退指针,所述ROB数据包括重建重命名数据,所述ROB条目的组被定义为ROB检查点窗口,所述ROB检查点窗口根据动态关系映射到所述CPT,其中基于所述引退指针指向的ROB条目来定义所述ROB检查点窗口,以及
其中如果从所述重命名表清除了存储在所述重命名表中的重命名数据,则所述清除的重命名数据通过下列操作能够被恢复到所述重命名表:
如果动态关系的方面允许,则将所述重命名数据的被设置检查点的版本从所述CPT复制到所述重命名表,并且
将ROB重建窗口中的重建重命名数据的至少部分从所述ROB复制到所述重命名表。

9.
  如权利要求8所述的微处理器,还包括:
分派器,其用于向所述执行单元分派所述微操作,以及
其中所述CPT从所述分派器接收所述重命名数据的被设置检查点的版本。

10.
  如权利要求8所述的微处理器,还包括:
分支执行逻辑,其用于在执行所述微操作时检测误预测,以及
其中响应于检测到误预测,从所述重命名表清除所述重命名数据。

11.
  如权利要求8所述的微处理器,还包括:
时钟,其用于输出定义时钟周期的脉冲,以及
其中在所述时钟周期中的单个时钟周期中将所述重命名数据的被设置检 查点的版本从所述检查点表复制到所述重命名表。

12.
  一种用于微处理器的方法,包括:
将指令解码为微操作;
执行所述微操作;
根据所述微操作生成所述重命名数据;
以所述重命名数据能够从所述重命名表被清除的方式将所述重命名数据存储在重命名表中;
在具有深度的检查点表(CPT)中存储所述重命名数据的被设置检查点的版本;以及
在重新排序缓冲区(ROB)的ROB条目中存储从所述微操作生成的ROB数据,所述ROB数据包括重建重命名数据,ROB的引退指针指向所述ROB条目中的可变条目,所述ROB条目的组被定义为ROB检查点窗口,所述ROB检查点窗口根据动态关系映射到所述CPT,其中基于所述引退指针指向的ROB条目来定义所述ROB检查点窗口,以及
如果从所述重命名表清除了存储在所述重命名表中的重命名数据,则所述清除的重命名数据通过下列操作被恢复到所述重命名表:
如果动态关系的方面允许,则将所述重命名数据的被设置检查点的版本从所述CPT复制到所述重命名表,并且
将重建重命名数据的至少部分从所述ROB复制到所述重命名表。

13.
  如权利要求12所述的方法,其中
从所述解码器经由分派器接收所述微操作用于执行,以及
所述CPT从所述分派器接收所述重命名数据的被设置检查点的版本。

14.
  如权利要求12所述的方法,还包括:
在执行所述微操作时检测误预测,以及
其中响应于检测到误预测,从所述重命名表清除所述重命名数据。

15.
  如权利要求12所述方法,其中
脉冲是定义时钟周期的输出,以及
在所述时钟周期中的单个所述时钟周期中将所述重命名数据的被设置检查点的版本从所述检查点表复制到所述重命名表。

16.
  一种微处理器,包括:
重命名器,其用于根据微操作生成重命名数据;
重命名表,其用于存储所述重命名数据;
重新排序缓冲区(ROB),其用于存储从所述微操作生成的ROB数据,所述ROB数据包括重建重命名数据;以及
正好一个检查点表(CPT),其用于存储所述重命名数据的被设置检查点的版本,以及
其中如果从所述重命名表清除了存储在所述重命名表中的重命名数据,则通过下列操作恢复所述清除的重命名数据:
将所述重命名数据的被设置检查点的版本从所述CPT复制到所述重命名表,
而不将所述重建重命名数据的任何部分从所述ROB复制到所述重命名表。

17.
  如权利要求16所述的微处理器,还包括:
分派器,其用于向所述执行单元分派所述微操作,以及
其中所述CPT从所述分派器接收所述重命名数据的被设置检查点的版本。

18.
  如权利要求16所述的微处理器,还包括:
分支执行逻辑,其用于在所述微操作的执行中检测误预测,以及
其中响应于检测到误预测而重建所述重命名表。

19.
  如权利要求16所述的微处理器,还包括:
时钟,其用于输出定义时钟周期的脉冲,以及
在所述时钟周期中的单个时钟周期中将所述重命名数据的被设置检查点的版本从所述检查点表复制到所述重命名表。

20.
  一种用于微处理器的方法,包括:
根据微操作生成重命名数据;
在重命名表中存储所述重命名数据;
在重新排序缓冲区(ROB)中存储从所述微操作生成的ROB数据;
在正好一个检查点表(CPT)中存储所述重命名数据的被设置检查点的版本,所述ROB数据包括重建重命名数据;以及
如果从所述重命名表清除了存储在所述重命名表中的重命名数据,则通过下列操作恢复所述清除的重命名数据:
将所述重命名数据的被设置检查点的版本从所述CPT复制到所述重 命名表,
而不将任何重建重命名数据从所述ROB复制到所述重命名表。

21.
  如权利要求20所述的方法,还包括:
在执行所述微操作时检测误预测,以及
其中响应于检测到误预测而从重命名表清除重命名数据。

22.
  一种电子设备,包括:
总线;
接口,其被配置为向连接到所述总线的通信网络传送数据或者从所述通信网络接收数据;
I/O设备,其连接到所述总线;
存储器,其连接到所述总线,并且被配置为存储经由所述I/O设备可访问的用户数据或指令;以及
控制器,其连接到所述总线,并且被配置为使用所述指令,所述控制器包括至少一个微处理器,所述微处理器包括:
重命名表,其用于存储重命名数据;
分派器;以及
检查点表(CPT),其用于存储从所述分派器接收到的重命名数据,
其中如果清除了所述重命名表,则使用存储在所述CPT中的重命名数据来重建重命名表。

23.
  如权利要求22所述的设备,其中
所述接口是无线的,并且所述通信网络是无线的。

24.
  如权利要求22所述的设备,其中
仅使用存储在所述CPT中的重命名数据来重建所述重命名表。

25.
  如权利要求22所述的设备,还包括,
分支执行逻辑,其用于检测误预测,以及
其中响应于检测到误预测,清除所述重命名表。

26.
  如权利要求22所述的设备,还包括:
时钟,其用于输出定义时钟周期的脉冲,以及
其中在所述时钟周期中的单个时钟周期中重建所述重命名表。

27.
  如权利要求22所述的设备,还包括:
重新排序缓冲区(ROB),其具有ROB条目和指向ROB条目中的可变 条目的引退指针,并且其中
ROB条目的组被定义为ROB检查点窗口,
所述ROB检查点窗口根据动态关系映射到所述CPT,其中基于所述引退指针指向的ROB条目来定义所述ROB检查点窗口,以及
如果所述动态关系的方面允许,则仅使用存储在所述CPT中的重命名数据来重建所述重命名表。

说明书

用于重命名表重建基于重新排序缓冲区的动态检查点设置
技术领域
本公开涉及半导体设备,并且更具体地涉及控制电子设备的操作的微处理器,以及使用这样的微处理器的电子设备。
背景技术
微处理器,也被称为中央处理单元(CPU),通过执行指令而工作。一些指令导致分支点,在分支点处,可以选择一条执行路径而非另一条。如果微处理器做出关于将选择哪条路径的正确推测性预测,并且预先执行沿该路径的指令,则微处理器可以具有增加的速度。这样的CPU被称为乱序CPU。然而,当存在误预测(misprediction)时,速度优势减少,并且需要恢复。
乱序CPU的挑战在于诸如写后写(Write After Write,WAW)和读后写(Write After Read,WAR)的风险。通过寄存器重命名可以避免这些风险,寄存器重命名在跟踪重命名的源和目的地寄存器的重命名表的帮助下实现。
然而,剩下的问题在于任何时候都存在误预测的分支指令,因此不得不全部清除(flush)重命名表。因为由于分支可以被乱序执行,因此可能存在比误预测的分支指令早的等待引退(retire)的指令,所以清除是个问题。这些较早指令的重命名信息必须重建到重命名表中。
因此,该问题本身表现为延迟。在重建过程期间,重命名逻辑必须使流水线的前端停止(stall)发送用于重命名的新的指令。这种停止导致延迟,其等价于对分支误预测的惩罚。所述惩罚不仅取决于重建等待时间,还取决于重定向等待时间以及流水线的前端的深度。
为了减少这种停止,已经提出了设置检查点(check-pointing)方案,其先于分派级,作为重命名流水线的一部分。在这些方案中,传统上每个分支指令开启新的检查点窗口。该方法非常浪费空间,因为其需要与机器中允许的运行中的分支一样多的检查点。
发明内容
本描述给出微处理器、集成了微处理器的设备以及克服现有技术的问题的实例。
在一个实施例中,微处理器包括具有解码器、分派器以及至少一个执行单元的流水线。重命名表存储重命名数据,并且检查点表(CPT)存储从分派器接收到的重命名数据。重新排序缓冲区(ROB)存储ROB数据,并且具有与CPT的动态映射关系。如果诸如由于误预测而清除了重命名表,则至少部分地通过并发地复制存储在CPT中的重命名数据,协同在ROB上步移(walking the ROB),来重建该重命名表。
相对于现有技术的优点在于减少由于使流水线停止以重建重命名表而导致的时间惩罚。另一优点产生于这样的事实,即,CPT处于分派器之后,其大幅减少成功重建重命名表所需的检查点数目。本发明导致在空间、功率和时序方面比预分派设置检查点方案更高效的实施例。
根据下列参考附图进行的详细描述,本说明书的这些及其他特征和优点将变得更加显而易见,在附图中:
附图说明
图1是根据示例实施例做出的微处理器的组件的图。
图2A和图2B是用于图示根据实施例的动态关系的、示出图1中的组件的不同操作场景的图。
图3A是示出根据示例实施例做出的微处理器正常操作时的框图。
图3B是示出在正常操作之后重命名表被清除的图3A的微处理器的图,所述清除是检测到执行指令的误预测的结果。
图3C是示出重命名表在被清除之后被重建的图3B的微处理器的图。
图4是示出根据实施例的用于重建诸如图3C的重命名表的重命名表的相对时序脉冲的时序图。
图5是本发明没有产生益处的第一范例场景的图3C的组件的图。
图6是本发明产生益处的第二范例场景的图3C的组件的图。
图7是本发明产生最大益处的第三范例场景的图3C的组件的图。
图8是用于图示根据示例实施例的包括微处理器的系统的框图。
图9是用于图示根据示例实施例的方法的流程图。
具体实施方式
如已经提到的,本描述关于微处理器、设备和方法。现在更详细地描述实施例。
图1是根据示例实施例做出的微处理器110的组件的图。微处理器110包括用于接收指令,并用于将这些指令解码为微型操作的解码器120,微型操作也被称为微操作(micro-op)。
微处理器110还包括用于执行微操作的一个或多个执行单元。图1中,示出三个执行单元,即执行单元-A151、执行单元-B152和执行单元-C153,但是单元的数量作为示例而作为限制示出。
解码器120和单元151、152、153是所谓的流水线的部分,所述流水线包括额外的组件。一个这样的组件是分派器140,其被提供用于将微操作最终分派到执行单元。在图1的示例中,首先分派到三个调度器中的一个,即调度器-A141、调度器-B142和调度器-C143。调度器向执行单元151、152、153传送微操作。这些执行单元从物理寄存器文件(Physical Register File,PRF)读取源(source),并且随后执行微操作。本领域技术人员将理解上面仅是流水线的该部分的一个范例架构,并且不同架构是可能的。
微处理器110额外地包括从解码器120接收微操作的重命名器130。重命名器130根据微操作生成重命名数据。
此外,微处理器110包括重命名表136。重命名表136存储根据箭头135从重命名器130接收的重命名数据。
微处理器110还包括重新排序缓冲区(“ROB”)160。ROB160具有图1中未单独示出的ROB条目。如稍后将更详细地看到的,ROB160包括引退指针(Retire Pointer)和清除指针(Flush Pointer),所述指针中的每一个指向ROB条目中的可变条目。ROB160可以是循环的或非循环的。ROB条目用于存储从微操作生成的ROB数据162。在一些实施例中,每个ROB条目存储一个微操作,虽然在单个ROB条目中可以存储更多的微操作。ROB数据162包括重建重命名数据182,重建重命名数据182优选地与存储在重命名表136中的重命名数据对应。在图1的实施例中,从分派器140接收ROB数据162。
微处理器110还包括至少一个检查点表(check-point table,CPT)170。CPT170与重命名表136一样宽。CPT170具有图1中未单独示出的CPT条目。CPT条目与重命名表136中的条目一样多,这意味着CPT与重命名表136 一样深。CPT条目的数目定义CPT深度。CPT条目用于存储在重命名表136中存储的重命名数据的被设置检查点的版本(check-pointed version)180。重命名数据的被设置检查点的版本180可以是能够产生重命名数据的任何版本,或者其可以与重命名数据完全相同,因为其存储在检查点表170中,所以在该情况下其被称为被设置检查点的重命名数据180。在图1的实施例中,从分派器140接收重命名数据的被设置检查点的版本180。
如下文将更详细地描述的,ROB检查点窗口根据动态关系187映射到CPT,其中基于引退指针指向的ROB条目定义ROB检查点窗口。因为引退指针在不同时间指向通常不同的ROB条目,因此关系187是可变的。因此,当ROB条目被分配了新的微操作时,如果该微操作具有目的地,则选择的CPT条目也利用该微操作的目的地重命名信息来更新。
如前所述,可以清除重命名表136,其更确切地指可以清除存储在重命名表中的重命名数据。在图1的实施例中,微处理器110还包括分支执行逻辑157。逻辑157可以如上所述在执行微操作时检测误预测,误预测由标记190示出。可以响应于检测到误预测190而清除重命名表136。
如果清除了重命名表136,则可以将其重建。为了重建,微处理器110还可以包括可以存储引退被设置检查点的数据的引退表138。作为重建的初始部分,可以根据箭头139将引退被设置检查点的数据复制到重命名表136。
此外,为了重建,除了从引退表的初始复制之外,已清除的重命名数据可以从两个数据源恢复到重命名表136。首先,重命名数据的被设置检查点的版本180可以作为大规模导入(mass importation)根据箭头175从CPT170复制到重命名表136。如在此文件中稍后解释的,如果动态关系187的方面允许,则通过并发复制实现所述大规模导入。其次,ROB数据162内的重建重命名数据182的至少部分可以根据箭头165从ROB160复制到重命名表136,其是另外称为“在ROB上步移(walking ROB)”的过程。
现在提供实现方式细节。图2A和2B示出在图1的微处理器110中可以替换的ROB260和CPT270。将理解,可以以赞成经由箭头175的并发复制而非箭头165的复制从而节省处理器时间的观点,做出对ROB260和CPT270的大小及其之间的功能关系的选择。
在该示例中,ROB260具有96个ROB条目,命名为从0到95。ROB260可以具有任何数目的ROB条目。此外,ROB检查点窗口被定义为具有一组 ROB条目。所述组可以是可以被最优化的任何数目。在48个ROB条目的情况下,对于所述组来说,效果很好的数目是大约ROB的深度的大小的一半。如从下文将理解的,比最佳大小大得多的ROB检查点窗口不能调用CPT足够时间以产生非常好的效果,而如果ROB检查点窗口比最佳大小小得多,则其能够调用CPT足够时间,但却没有足够的重命名数据。如将在下文中看到的,在两种情况下,如果所述组大小偏离最佳大小太远,则其将导致在ROB上步移花费的时间比所需的时间多。
在图2A和2B中,在其间已清除重命名表的不同场景示出ROB260和CPT270。当然,每次ROB检查点窗口将跨越不同组的48个ROB条目。并且,当在不同时间由清除重命名表的不同事件定义时,ROB重建窗口每次将通常具有不同数目的ROB条目。
更具体地,在图2A中,ROB检查点窗口被定义为从ROB条目20处的引退指针开始,并且直到ROB条目67。并且,因为条目56之后的一个条目是由清除指针指向的条目57,所以定义包含37个ROB条目的ROB重建窗口263A,即ROB条目20-56。这些37个ROB条目存储包括重建重命名数据282A在内的ROB数据262A。CPT270存储被设置检查点的重命名数据280A。
此外,在图2B中,ROB检查点窗口被定义为从ROB条目40处的引退指针开始,并且直到ROB条目87。并且,定义仅包含27个ROB条目的ROB重建窗口263B,即ROB条目40-66。这些27个ROB条目存储包括重建重命名数据282B在内的ROB数据262B。CPT270存储被设置检查点的重命名数据280B。
动态关系287是ROB,并且更具体来说是ROB检查点窗口,如何映射到CPT的方式。所述映射有时称为关联。由于ROB检查点窗口是基于引退指针指向的ROB条目来定义的,所以关系287是变化的,因此关系287被称为动态的。事实上,图2A和2B中,在不同位置处定义ROB检查点窗口。
为了重建,存在这样的选择,即,特定元素将被存储该特定元素的ROB条目或存储该特定元素的CPT270恢复到重命名表。如果允许从CPT复制,则该重建将更快。
动态关系287部分地掌控除了从ROB260重建之外,是否将从CPT270重建或从CPT270重建到什么程度。事实上,如果关系287的方面另外允许,则发生从CPT270的复制。稍后在此文件中描述何时允许的示例。
现在连续使用图3A、3B、3C以描述根据实施例做出的范例微处理器310的范例事件序列。微处理器310包括解码器320、重命名器330、重命名表336、引退表338、分派器340、调度器341、342、343、PRF350、执行单元351、352、353、分支执行逻辑357和ROB360,其全部可以如上文参考图1中的类似组件所述的那样。ROB360存储与ROB数据162类似的ROB数据362。ROB数据362包括与重建重命名数据182类似的重建重命名数据382。
此外,微处理器310包括具有与ROB360的动态关系的CPT370。CPT370和ROB360可以具有与图1、2A、2B的关系187相同的动态关系。CPT370根据动态关系存储被设置检查点的重命名数据380。
图3A中,微处理器310正常操作。指令通过流水线在解码器320中接收,并在执行单元351、352、353处执行。
图3B中,如由标记390指示的,检测到误预测。作为结果,如由注释392指示的清除重命名表336。
图3C中,如由注释393指示的,重建重命名表336。作为结果,如由注释391指示的,在流水线的前端存在停止。
重建如下所述地发生:首先,根据箭头339从引退表338复制引退检查点。然后,通过通常来自两个不同源的数据来重建。如果可应用的动态关系的方面允许,则根据箭头375复制检查点重命名数据380。并且,根据箭头365通过在ROB360上步移来复制重建重命名数据382。然而,在一些特定情况下,如在下文的范例场景中将看到的,这两个源中的一个可能不起作用。
微处理器310通常还包括未示出的时钟。所述时钟输出定义时钟周期的脉冲。时钟周期是用于衡量本发明的优点的良好方式。现在描述示例。
图4是示出用于重建诸如图3C中的重命名表的相对时序脉冲的时序图。时钟周期412包括N个周期的组415,在此示出为单个脉冲。稍后将更详细地描述数字N。
图4图示检测到误预测的发生,以及随后的惩罚。脉冲492与根据注释392的清除重命名表336对应。延长的停止脉冲(stalling pulse)491与根据注释391的流水线被停止的时间对应;脉冲491的持续时间与对误预测的时间惩罚以及随后的微处理器性能下降有关。在脉冲491以及周期组415两者中,如果N大,则惩罚较大。脉冲493A和脉冲493B指示与注释393对应的重建的开始和结束。
一般来说,重命名周期436包括a)用于根据操作339复制引退检查点的周期439,b)用于根据箭头375从CPT并发复制的周期475,以及c)用于根据箭头365在ROB上步移多达N个周期的组465。与周期组415类似,周期465被示出为单个周期,而事实上两者都取值N。在图4中在会增强读者的联想的地方重复箭头339、375和365的图标。
然而,具体地,不是每次都包括这些重命名周期436中的一些。包括哪些和不包括哪些的问题取决于在检测到误预测并且因此清除重命名表的时刻定义的场景。现在在此文件中参考图4呈现具体操作场景。
首先,为了理解场景,应认识到,ROB重建窗口在清除重命名表时被定义。如上文在图2A和图2B中已经看到的,ROB重建窗口具有从引退指针开始并且在清除指针的前一条目结束的ROB条目。ROB重建窗口内的ROB条目定义哪些数据需要恢复到重命名表,通过从CPT的并发复制,还是通过在ROB上步移。在任一情况下,重建重命名数据的从ROB复制到重命名表的部分都在ROB重建窗口内。
场景的不同之处在于:每次清除重命名表时,ROB重建窗口将通常涵盖ROB条目的不同集合。因此,不同场景探索相对于先前提到的ROB检查点窗口的深度,ROB重建窗口如何具有不同大小。下列范例场景中的该方面还将确定是否允许CPT表被并发复制到重命名表,或替换地将通过在ROB上步移来复制相同内容。
现在探索各种这样的场景的示例。为了这些场景,与图2A、2B中示出的类似,假设使用ROB360和CPT370。此外,由对于ROB检查点(CP)窗口和CPT370示出的括号指示的,还应用与关系287类似的动态关系587。
图5是针对未从本发明受益的第一范例场景的图3C的组件的图。ROB360中,检查点窗口从由引退指针指向的ROB条目20开始并且在ROB条目67结束。此外,由箭头指示的,ROB重建窗口563从由引退指针指向的ROB条目20开始并且在比由清除指针指向的ROB条目57小一的ROB条目56结束。ROB重建窗口563内的ROB数据562包括重建重命名数据582,其将通过从CPT370的并发复制或者直接通过在ROB360步移而被恢复到重命名表336。
在该示例中,ROB重建窗口563比ROB检查点窗口小。因此,将清除ROB条目57-67的内容,并且因此存储在CPT370中的被设置检查点的重命 名数据580将不作为重建过程的部分被复制到重命名表中,这是因为必须将整个CPT370复制到重命名表336。这就是为什么被设置检查点的重命名数据580被示出为被划掉。因此,根据注释567,全部ROB条目20-56中的重建重命名数据582将根据箭头565被恢复,即,通过在ROB360上步移。
换句话说,图5的CPT不能用于重建,并且因此在图5的场景中本发明没有提供优点。对于图5的场景简要参考图4,重命名周期475将被包括,并且数值N取值高达m,其中m是在这样的场景下可以在ROB360上移动的步子的最大数目。停止脉冲491的持续时间相对于在没有本发明的情况下的持续时间未减少。对于剩余示例场景,情况不是这样。
图6是针对第二范例场景的图3C的组件的图。ROB360中,检查点窗口从由引退指针指向的ROB条目20开始并且在ROB条目67结束。此外,ROB360内的ROB重建窗口663跨越ROB条目20-76。在该示例中,ROB重建窗口663大于ROB检查点窗口。在ROB重建窗口663内,ROB数据662包括要恢复到重命名表336的重建重命名数据部分682A和682B。将理解由ROB检查点窗口的边界引起ROB360内重建重命名数据被分成部分682A和682B。事实上,ROB条目20-67映射到存储在CPT370中的被设置检查点的重命名数据部分680,而ROB条目68-76根本不映射到CPT370。
被设置检查点的重命名数据部分680是可用的,并且根据注释677,将根据箭头675将其恢复。因此,将不需要重建重命名数据部分682A,并且将其示出为被划掉。然而,部分682B不能经由CPT来高效复制,并且根据注释667,通过在ROB360上步移,将根据箭头665恢复ROB条目68-76中的重建重命名数据部分682B。参考图4,根据箭头675的恢复可以在单个时钟脉冲475中发生。N将仍大于0,但小于m,并且由于本发明,将减少停止脉冲491的持续时间。将观察到图6的场景中的重建比图5的场景中的重建需要复制更多数据,但是由于本发明,需要较少时间。
图7是针对第三范例场景的图3C的组件的图。ROB360中,检查点窗口从由引退指针指向的ROB条目20开始并且在ROB条目67结束。此外,ROB重建窗口763跨越ROB条目20-67。在该示例中,ROB重建窗口763与ROB检查点窗口完全相同。这是在统计上以某个频率确实会发生的特殊情况。ROB数据762包括重建重命名数据782。
被设置检查点的重命名数据780是可用的,并且根据注释777,将根据 箭头775将其恢复。此外,根据注释767,在该场景中不会在ROB360上步移;没有重建重命名数据将被从ROB360复制到重命名表336。因此,将不需要重建重命名数据782,并且将其示出为划掉。参考图4,根据箭头775的恢复可以在单个时钟脉冲475中发生。N将等于0,并且将不存在脉冲415、465的组。由于本发明,停止脉冲491的持续时间将被最小化。
参考图8,电子设备包括与根据示例实施例的半导体设备一起工作的系统800。系统800可以用在个人数字助理(PDA)、膝上型计算机、移动计算机、web平板、无线电话、蜂窝电话、数字音乐播放器、有线或无线电子设备、或至少包括其中两者的复杂电子设备中。系统800可以包括通过总线850彼此通信的控制器810、诸如小键盘、键盘、显示器的输入/输出设备820、存储器830和接口840。控制器810可以包括例如根据实施例做成的至少一个微处理器、数字信号处理器或微控制器等。存储器830可以被配置为存储要由控制器810使用的指令和/或可经由I/O设备访问的用户数据。电子设备800可以使用被配置为向通信网络传送数据或从通信网络接收数据的接口840。所述传送可以经由电线,例如经由电缆,或USB接口。可替换地,通信网络可以是无线的,并且接口840可以是无线的,并且包括例如天线和无线收发器等。电子系统800可以在通信系统的通信接口协议中使用,所述通信系统诸如CDMA、GSM、NADC、E-TDMA、WCDMA、CDMA2000、Wi-Fi、Muni Wi-Fi、蓝牙、DECT、无线USB、Flash-OFDM、IEEE802.20、GPRS、iBurst、WiBro、WiMAX、高级WiMAX、UMTS-TDD、HSPA、EVDO、高级LTE和MMDS等。
图9示出用于描述根据实施例的方法的流程图900。流程图900的方法还可以通过上文描述的例如微处理器和电子设备的实施例来实现。
根据操作910,指令被解码为微操作。根据下一操作920,根据微操作生成重命名数据。根据下一操作930,重命名数据被存储在重命名表中。
根据下一操作940,重命名数据的被设置检查点的版本存储在CPT中。根据另一操作950,已从微操作生成的ROB数据被存储在ROB中。如果需要,则ROB数据包括可以用于最终重建重命名表的重建重命名数据。ROB维持与CPT的动态关系。根据操作960,执行微操作。
根据下一操作970,确定是否已清除重命名表;换句话说,是否已从重命名表清除重命名数据。如果否,执行从上文的操作910重新开始。在一些 实施例中,如上所述响应于检测到误预测而清除重命名表。
如果已清除重命名表,则根据下一操作980,重命名数据被恢复到重命名表;换句话说,重建重命名表。操作980包括操作982和984中的一个或两者。对于操作980,当清除重命名表时,ROB条目的ROB重建窗口可以变为已定义的;通过操作982,或通过操作984,将被恢复到重命名表的正是ROB重建窗口内的这些ROB条目的重建重命名数据。
根据操作982,如果操作950的关系允许,则将重命名数据的被设置检查点的版本从CPT复制到重命名表。在一些实施例中,在单个时钟周期中如此复制重命名数据的被设置检查点的版本。
根据操作984,将重建重命名数据从ROB复制到重命名表。优选地,针对操作982未覆盖的任何剩余物进行这样的复制,并且通过在ROB上步移来进行。
上文中,操作的顺序不限于示出的内容,并且根据不同实施例不同顺序是可能的。此外,在某些实施例中,可以添加新的操作,或者可以修改或删除个别操作。
本领域技术人员鉴于将作为整体来理解的本描述将能够实现本发明。包括了细节以提供全面理解。在其他实例中,未描述公知的方面,以便不会不必要地模糊了本发明。
本描述包括一个或多个示例,但其不限制可以如何实现本发明。事实上,本发明的示例或实施例可以根据描述的内容实现,或可以不同地实现,并且还可以与其他现有或未来技术结合地实现。
所附权利要求定义被视为新颖的和非显而易见的元素、特征和步骤或操作的某些组合和子组合。可以在此文件或相关文件中呈现其他这样的组合和子组合的额外的权利要求。

用于重命名表重建基于重新排序缓冲区的动态检查点设置.pdf_第1页
第1页 / 共23页
用于重命名表重建基于重新排序缓冲区的动态检查点设置.pdf_第2页
第2页 / 共23页
用于重命名表重建基于重新排序缓冲区的动态检查点设置.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《用于重命名表重建基于重新排序缓冲区的动态检查点设置.pdf》由会员分享,可在线阅读,更多相关《用于重命名表重建基于重新排序缓冲区的动态检查点设置.pdf(23页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104050027A43申请公布日20140917CN104050027A21申请号201410097569422申请日2014031413/831,48820130314USG06F9/46200601G06F13/1020060171申请人三星电子株式会社地址韩国京畿道72发明人R伊恩加P桑萨纳克里什南74专利代理机构北京市柳沈律师事务所11105代理人刘虹54发明名称用于重命名表重建基于重新排序缓冲区的动态检查点设置57摘要一种减少由于使流水线停止以重建重命名表而导致的时间惩罚的乱序CPU、设备和方法。微处理器可以包括具有解码器、分派器以及至少一个执行单元的流水线。重命。

2、名表存储重命名数据,并且检查点表(CPT)存储从分派器接收到的重命名数据。重新排序缓冲区(ROB)存储ROB数据,并且具有与CPT的动态映射关系。如果诸如由于误预测而清除了重命名表,则至少部分地通过并发复制存储在CPT中的重命名数据,协同在ROB上步移,来重建重命名表。30优先权数据51INTCL权利要求书4页说明书7页附图11页19中华人民共和国国家知识产权局12发明专利申请权利要求书4页说明书7页附图11页10申请公布号CN104050027ACN104050027A1/4页21一种微处理器,包括重命名表,其用于存储重命名数据;分派器;以及检查点表(CPT),其用于存储从所述分派器接收到的。

3、重命名数据,其中如果清除了所述重命名表,则使用存储在所述CPT中的重命名数据来重建重命名表。2如权利要求1所述的微处理器,其中,仅使用存储在所述CPT中的重命名数据来重建所述重命名表。3如权利要求1所述的微处理器,还包括分支执行逻辑,其用于检测误预测,以及其中响应于检测到误预测,清除所述重命名表。4如权利要求1所述的微处理器,还包括时钟,其用于输出定义时钟周期的脉冲,以及其中在所述时钟周期中的单个时钟周期中重建所述重命名表。5如权利要求1所述的微处理器,还包括,重新排序缓冲区(ROB),其具有ROB条目和指向ROB条目中的可变条目的引退指针,并且其中ROB条目的组被定义为ROB检查点窗口,所述。

4、ROB检查点窗口根据动态关系映射到所述CPT,其中基于所述引退指针指向的ROB条目来定义所述ROB检查点窗口,以及如果所述动态关系的方面允许,仅使用存储在所述CPT中的重命名数据来重建所述重命名表。6一种用于微处理器的方法,包括根据微操作生成重命名数据;在重命名表中存储所述重命名数据;分派器向执行单元分派所述微操作中的一个;所述分派器向检查点表(CPT)传送所述重命名数据用于存储;以及如果清除了所述重命名表,则通过将存储在所述CPT中的重命名数据从所述CPT复制到所述重命名表来重建所述重命名表。7如权利要求6所述的方法,还包括检测误预测,以及其中响应于检测到误预测,清除重命名表。8一种微处理器。

5、,包括解码器,其用于将指令解码为微操作;执行单元,其用于执行所述微操作;重命名器,其用于根据所述微操作生成所述重命名数据;重命名表,其用于以所述重命名数据能够从所述重命名表被清除的方式来存储所述重命名数据;检查点表(CPT),其用于存储所述重命名数据的被设置检查点的版本;权利要求书CN104050027A2/4页3重新排序缓冲区(ROB),其具有用于存储从所述微操作生成的ROB数据的ROB条目和指向所述ROB条目中的可变条目的引退指针,所述ROB数据包括重建重命名数据,所述ROB条目的组被定义为ROB检查点窗口,所述ROB检查点窗口根据动态关系映射到所述CPT,其中基于所述引退指针指向的ROB。

6、条目来定义所述ROB检查点窗口,以及其中如果从所述重命名表清除了存储在所述重命名表中的重命名数据,则所述清除的重命名数据通过下列操作能够被恢复到所述重命名表如果动态关系的方面允许,则将所述重命名数据的被设置检查点的版本从所述CPT复制到所述重命名表,并且将ROB重建窗口中的重建重命名数据的至少部分从所述ROB复制到所述重命名表。9如权利要求8所述的微处理器,还包括分派器,其用于向所述执行单元分派所述微操作,以及其中所述CPT从所述分派器接收所述重命名数据的被设置检查点的版本。10如权利要求8所述的微处理器,还包括分支执行逻辑,其用于在执行所述微操作时检测误预测,以及其中响应于检测到误预测,从所。

7、述重命名表清除所述重命名数据。11如权利要求8所述的微处理器,还包括时钟,其用于输出定义时钟周期的脉冲,以及其中在所述时钟周期中的单个时钟周期中将所述重命名数据的被设置检查点的版本从所述检查点表复制到所述重命名表。12一种用于微处理器的方法,包括将指令解码为微操作;执行所述微操作;根据所述微操作生成所述重命名数据;以所述重命名数据能够从所述重命名表被清除的方式将所述重命名数据存储在重命名表中;在具有深度的检查点表(CPT)中存储所述重命名数据的被设置检查点的版本;以及在重新排序缓冲区(ROB)的ROB条目中存储从所述微操作生成的ROB数据,所述ROB数据包括重建重命名数据,ROB的引退指针指向。

8、所述ROB条目中的可变条目,所述ROB条目的组被定义为ROB检查点窗口,所述ROB检查点窗口根据动态关系映射到所述CPT,其中基于所述引退指针指向的ROB条目来定义所述ROB检查点窗口,以及如果从所述重命名表清除了存储在所述重命名表中的重命名数据,则所述清除的重命名数据通过下列操作被恢复到所述重命名表如果动态关系的方面允许,则将所述重命名数据的被设置检查点的版本从所述CPT复制到所述重命名表,并且将重建重命名数据的至少部分从所述ROB复制到所述重命名表。13如权利要求12所述的方法,其中从所述解码器经由分派器接收所述微操作用于执行,以及所述CPT从所述分派器接收所述重命名数据的被设置检查点的版。

9、本。14如权利要求12所述的方法,还包括权利要求书CN104050027A3/4页4在执行所述微操作时检测误预测,以及其中响应于检测到误预测,从所述重命名表清除所述重命名数据。15如权利要求12所述方法,其中脉冲是定义时钟周期的输出,以及在所述时钟周期中的单个所述时钟周期中将所述重命名数据的被设置检查点的版本从所述检查点表复制到所述重命名表。16一种微处理器,包括重命名器,其用于根据微操作生成重命名数据;重命名表,其用于存储所述重命名数据;重新排序缓冲区(ROB),其用于存储从所述微操作生成的ROB数据,所述ROB数据包括重建重命名数据;以及正好一个检查点表(CPT),其用于存储所述重命名数据。

10、的被设置检查点的版本,以及其中如果从所述重命名表清除了存储在所述重命名表中的重命名数据,则通过下列操作恢复所述清除的重命名数据将所述重命名数据的被设置检查点的版本从所述CPT复制到所述重命名表,而不将所述重建重命名数据的任何部分从所述ROB复制到所述重命名表。17如权利要求16所述的微处理器,还包括分派器,其用于向所述执行单元分派所述微操作,以及其中所述CPT从所述分派器接收所述重命名数据的被设置检查点的版本。18如权利要求16所述的微处理器,还包括分支执行逻辑,其用于在所述微操作的执行中检测误预测,以及其中响应于检测到误预测而重建所述重命名表。19如权利要求16所述的微处理器,还包括时钟,其。

11、用于输出定义时钟周期的脉冲,以及在所述时钟周期中的单个时钟周期中将所述重命名数据的被设置检查点的版本从所述检查点表复制到所述重命名表。20一种用于微处理器的方法,包括根据微操作生成重命名数据;在重命名表中存储所述重命名数据;在重新排序缓冲区(ROB)中存储从所述微操作生成的ROB数据;在正好一个检查点表(CPT)中存储所述重命名数据的被设置检查点的版本,所述ROB数据包括重建重命名数据;以及如果从所述重命名表清除了存储在所述重命名表中的重命名数据,则通过下列操作恢复所述清除的重命名数据将所述重命名数据的被设置检查点的版本从所述CPT复制到所述重命名表,而不将任何重建重命名数据从所述ROB复制到。

12、所述重命名表。21如权利要求20所述的方法,还包括在执行所述微操作时检测误预测,以及其中响应于检测到误预测而从重命名表清除重命名数据。权利要求书CN104050027A4/4页522一种电子设备,包括总线;接口,其被配置为向连接到所述总线的通信网络传送数据或者从所述通信网络接收数据;I/O设备,其连接到所述总线;存储器,其连接到所述总线,并且被配置为存储经由所述I/O设备可访问的用户数据或指令;以及控制器,其连接到所述总线,并且被配置为使用所述指令,所述控制器包括至少一个微处理器,所述微处理器包括重命名表,其用于存储重命名数据;分派器;以及检查点表(CPT),其用于存储从所述分派器接收到的重命。

13、名数据,其中如果清除了所述重命名表,则使用存储在所述CPT中的重命名数据来重建重命名表。23如权利要求22所述的设备,其中所述接口是无线的,并且所述通信网络是无线的。24如权利要求22所述的设备,其中仅使用存储在所述CPT中的重命名数据来重建所述重命名表。25如权利要求22所述的设备,还包括,分支执行逻辑,其用于检测误预测,以及其中响应于检测到误预测,清除所述重命名表。26如权利要求22所述的设备,还包括时钟,其用于输出定义时钟周期的脉冲,以及其中在所述时钟周期中的单个时钟周期中重建所述重命名表。27如权利要求22所述的设备,还包括重新排序缓冲区(ROB),其具有ROB条目和指向ROB条目中的。

14、可变条目的引退指针,并且其中ROB条目的组被定义为ROB检查点窗口,所述ROB检查点窗口根据动态关系映射到所述CPT,其中基于所述引退指针指向的ROB条目来定义所述ROB检查点窗口,以及如果所述动态关系的方面允许,则仅使用存储在所述CPT中的重命名数据来重建所述重命名表。权利要求书CN104050027A1/7页6用于重命名表重建基于重新排序缓冲区的动态检查点设置技术领域0001本公开涉及半导体设备,并且更具体地涉及控制电子设备的操作的微处理器,以及使用这样的微处理器的电子设备。背景技术0002微处理器,也被称为中央处理单元(CPU),通过执行指令而工作。一些指令导致分支点,在分支点处,可以选。

15、择一条执行路径而非另一条。如果微处理器做出关于将选择哪条路径的正确推测性预测,并且预先执行沿该路径的指令,则微处理器可以具有增加的速度。这样的CPU被称为乱序CPU。然而,当存在误预测(MISPREDICTION)时,速度优势减少,并且需要恢复。0003乱序CPU的挑战在于诸如写后写(WRITEAFTERWRITE,WAW)和读后写(WRITEAFTERREAD,WAR)的风险。通过寄存器重命名可以避免这些风险,寄存器重命名在跟踪重命名的源和目的地寄存器的重命名表的帮助下实现。0004然而,剩下的问题在于任何时候都存在误预测的分支指令,因此不得不全部清除(FLUSH)重命名表。因为由于分支可以。

16、被乱序执行,因此可能存在比误预测的分支指令早的等待引退(RETIRE)的指令,所以清除是个问题。这些较早指令的重命名信息必须重建到重命名表中。0005因此,该问题本身表现为延迟。在重建过程期间,重命名逻辑必须使流水线的前端停止(STALL)发送用于重命名的新的指令。这种停止导致延迟,其等价于对分支误预测的惩罚。所述惩罚不仅取决于重建等待时间,还取决于重定向等待时间以及流水线的前端的深度。0006为了减少这种停止,已经提出了设置检查点(CHECKPOINTING)方案,其先于分派级,作为重命名流水线的一部分。在这些方案中,传统上每个分支指令开启新的检查点窗口。该方法非常浪费空间,因为其需要与机器。

17、中允许的运行中的分支一样多的检查点。发明内容0007本描述给出微处理器、集成了微处理器的设备以及克服现有技术的问题的实例。0008在一个实施例中,微处理器包括具有解码器、分派器以及至少一个执行单元的流水线。重命名表存储重命名数据,并且检查点表(CPT)存储从分派器接收到的重命名数据。重新排序缓冲区(ROB)存储ROB数据,并且具有与CPT的动态映射关系。如果诸如由于误预测而清除了重命名表,则至少部分地通过并发地复制存储在CPT中的重命名数据,协同在ROB上步移WALKINGTHEROB,来重建该重命名表。0009相对于现有技术的优点在于减少由于使流水线停止以重建重命名表而导致的时间惩罚。另一优。

18、点产生于这样的事实,即,CPT处于分派器之后,其大幅减少成功重建重命名表所需的检查点数目。本发明导致在空间、功率和时序方面比预分派设置检查点方案更高效的实施例。说明书CN104050027A2/7页70010根据下列参考附图进行的详细描述,本说明书的这些及其他特征和优点将变得更加显而易见,在附图中附图说明0011图1是根据示例实施例做出的微处理器的组件的图。0012图2A和图2B是用于图示根据实施例的动态关系的、示出图1中的组件的不同操作场景的图。0013图3A是示出根据示例实施例做出的微处理器正常操作时的框图。0014图3B是示出在正常操作之后重命名表被清除的图3A的微处理器的图,所述清除是。

19、检测到执行指令的误预测的结果。0015图3C是示出重命名表在被清除之后被重建的图3B的微处理器的图。0016图4是示出根据实施例的用于重建诸如图3C的重命名表的重命名表的相对时序脉冲的时序图。0017图5是本发明没有产生益处的第一范例场景的图3C的组件的图。0018图6是本发明产生益处的第二范例场景的图3C的组件的图。0019图7是本发明产生最大益处的第三范例场景的图3C的组件的图。0020图8是用于图示根据示例实施例的包括微处理器的系统的框图。0021图9是用于图示根据示例实施例的方法的流程图。具体实施方式0022如已经提到的,本描述关于微处理器、设备和方法。现在更详细地描述实施例。0023。

20、图1是根据示例实施例做出的微处理器110的组件的图。微处理器110包括用于接收指令,并用于将这些指令解码为微型操作的解码器120,微型操作也被称为微操作(MICROOP)。0024微处理器110还包括用于执行微操作的一个或多个执行单元。图1中,示出三个执行单元,即执行单元A151、执行单元B152和执行单元C153,但是单元的数量作为示例而作为限制示出。0025解码器120和单元151、152、153是所谓的流水线的部分,所述流水线包括额外的组件。一个这样的组件是分派器140,其被提供用于将微操作最终分派到执行单元。在图1的示例中,首先分派到三个调度器中的一个,即调度器A141、调度器B142。

21、和调度器C143。调度器向执行单元151、152、153传送微操作。这些执行单元从物理寄存器文件(PHYSICALREGISTERFILE,PRF)读取源(SOURCE),并且随后执行微操作。本领域技术人员将理解上面仅是流水线的该部分的一个范例架构,并且不同架构是可能的。0026微处理器110额外地包括从解码器120接收微操作的重命名器130。重命名器130根据微操作生成重命名数据。0027此外,微处理器110包括重命名表136。重命名表136存储根据箭头135从重命名器130接收的重命名数据。0028微处理器110还包括重新排序缓冲区(“ROB”)160。ROB160具有图1中未单独示出的R。

22、OB条目。如稍后将更详细地看到的,ROB160包括引退指针(RETIREPOINTER)和清除说明书CN104050027A3/7页8指针(FLUSHPOINTER),所述指针中的每一个指向ROB条目中的可变条目。ROB160可以是循环的或非循环的。ROB条目用于存储从微操作生成的ROB数据162。在一些实施例中,每个ROB条目存储一个微操作,虽然在单个ROB条目中可以存储更多的微操作。ROB数据162包括重建重命名数据182,重建重命名数据182优选地与存储在重命名表136中的重命名数据对应。在图1的实施例中,从分派器140接收ROB数据162。0029微处理器110还包括至少一个检查点表(。

23、CHECKPOINTTABLE,CPT)170。CPT170与重命名表136一样宽。CPT170具有图1中未单独示出的CPT条目。CPT条目与重命名表136中的条目一样多,这意味着CPT与重命名表136一样深。CPT条目的数目定义CPT深度。CPT条目用于存储在重命名表136中存储的重命名数据的被设置检查点的版本(CHECKPOINTEDVERSION)180。重命名数据的被设置检查点的版本180可以是能够产生重命名数据的任何版本,或者其可以与重命名数据完全相同,因为其存储在检查点表170中,所以在该情况下其被称为被设置检查点的重命名数据180。在图1的实施例中,从分派器140接收重命名数据的。

24、被设置检查点的版本180。0030如下文将更详细地描述的,ROB检查点窗口根据动态关系187映射到CPT,其中基于引退指针指向的ROB条目定义ROB检查点窗口。因为引退指针在不同时间指向通常不同的ROB条目,因此关系187是可变的。因此,当ROB条目被分配了新的微操作时,如果该微操作具有目的地,则选择的CPT条目也利用该微操作的目的地重命名信息来更新。0031如前所述,可以清除重命名表136,其更确切地指可以清除存储在重命名表中的重命名数据。在图1的实施例中,微处理器110还包括分支执行逻辑157。逻辑157可以如上所述在执行微操作时检测误预测,误预测由标记190示出。可以响应于检测到误预测1。

25、90而清除重命名表136。0032如果清除了重命名表136,则可以将其重建。为了重建,微处理器110还可以包括可以存储引退被设置检查点的数据的引退表138。作为重建的初始部分,可以根据箭头139将引退被设置检查点的数据复制到重命名表136。0033此外,为了重建,除了从引退表的初始复制之外,已清除的重命名数据可以从两个数据源恢复到重命名表136。首先,重命名数据的被设置检查点的版本180可以作为大规模导入(MASSIMPORTATION)根据箭头175从CPT170复制到重命名表136。如在此文件中稍后解释的,如果动态关系187的方面允许,则通过并发复制实现所述大规模导入。其次,ROB数据16。

26、2内的重建重命名数据182的至少部分可以根据箭头165从ROB160复制到重命名表136,其是另外称为“在ROB上步移(WALKINGROB)”的过程。0034现在提供实现方式细节。图2A和2B示出在图1的微处理器110中可以替换的ROB260和CPT270。将理解,可以以赞成经由箭头175的并发复制而非箭头165的复制从而节省处理器时间的观点,做出对ROB260和CPT270的大小及其之间的功能关系的选择。0035在该示例中,ROB260具有96个ROB条目,命名为从0到95。ROB260可以具有任何数目的ROB条目。此外,ROB检查点窗口被定义为具有一组ROB条目。所述组可以是可以被最优化。

27、的任何数目。在48个ROB条目的情况下,对于所述组来说,效果很好的数目是大约ROB的深度的大小的一半。如从下文将理解的,比最佳大小大得多的ROB检查点窗口不能调用CPT足够时间以产生非常好的效果,而如果ROB检查点窗口比最佳大小小得多,则其能够调用CPT足够时间,但却没有足够的重命名数据。如将在下文中看到的,在两种情况下,如说明书CN104050027A4/7页9果所述组大小偏离最佳大小太远,则其将导致在ROB上步移花费的时间比所需的时间多。0036在图2A和2B中,在其间已清除重命名表的不同场景示出ROB260和CPT270。当然,每次ROB检查点窗口将跨越不同组的48个ROB条目。并且,当。

28、在不同时间由清除重命名表的不同事件定义时,ROB重建窗口每次将通常具有不同数目的ROB条目。0037更具体地,在图2A中,ROB检查点窗口被定义为从ROB条目20处的引退指针开始,并且直到ROB条目67。并且,因为条目56之后的一个条目是由清除指针指向的条目57,所以定义包含37个ROB条目的ROB重建窗口263A,即ROB条目2056。这些37个ROB条目存储包括重建重命名数据282A在内的ROB数据262A。CPT270存储被设置检查点的重命名数据280A。0038此外,在图2B中,ROB检查点窗口被定义为从ROB条目40处的引退指针开始,并且直到ROB条目87。并且,定义仅包含27个RO。

29、B条目的ROB重建窗口263B,即ROB条目4066。这些27个ROB条目存储包括重建重命名数据282B在内的ROB数据262B。CPT270存储被设置检查点的重命名数据280B。0039动态关系287是ROB,并且更具体来说是ROB检查点窗口,如何映射到CPT的方式。所述映射有时称为关联。由于ROB检查点窗口是基于引退指针指向的ROB条目来定义的,所以关系287是变化的,因此关系287被称为动态的。事实上,图2A和2B中,在不同位置处定义ROB检查点窗口。0040为了重建,存在这样的选择,即,特定元素将被存储该特定元素的ROB条目或存储该特定元素的CPT270恢复到重命名表。如果允许从CPT。

30、复制,则该重建将更快。0041动态关系287部分地掌控除了从ROB260重建之外,是否将从CPT270重建或从CPT270重建到什么程度。事实上,如果关系287的方面另外允许,则发生从CPT270的复制。稍后在此文件中描述何时允许的示例。0042现在连续使用图3A、3B、3C以描述根据实施例做出的范例微处理器310的范例事件序列。微处理器310包括解码器320、重命名器330、重命名表336、引退表338、分派器340、调度器341、342、343、PRF350、执行单元351、352、353、分支执行逻辑357和ROB360,其全部可以如上文参考图1中的类似组件所述的那样。ROB360存储与。

31、ROB数据162类似的ROB数据362。ROB数据362包括与重建重命名数据182类似的重建重命名数据382。0043此外,微处理器310包括具有与ROB360的动态关系的CPT370。CPT370和ROB360可以具有与图1、2A、2B的关系187相同的动态关系。CPT370根据动态关系存储被设置检查点的重命名数据380。0044图3A中,微处理器310正常操作。指令通过流水线在解码器320中接收,并在执行单元351、352、353处执行。0045图3B中,如由标记390指示的,检测到误预测。作为结果,如由注释392指示的清除重命名表336。0046图3C中,如由注释393指示的,重建重命名。

32、表336。作为结果,如由注释391指示的,在流水线的前端存在停止。0047重建如下所述地发生首先,根据箭头339从引退表338复制引退检查点。然后,通过通常来自两个不同源的数据来重建。如果可应用的动态关系的方面允许,则根据箭头375复制检查点重命名数据380。并且,根据箭头365通过在ROB360上步移来复制重建重说明书CN104050027A5/7页10命名数据382。然而,在一些特定情况下,如在下文的范例场景中将看到的,这两个源中的一个可能不起作用。0048微处理器310通常还包括未示出的时钟。所述时钟输出定义时钟周期的脉冲。时钟周期是用于衡量本发明的优点的良好方式。现在描述示例。0049。

33、图4是示出用于重建诸如图3C中的重命名表的相对时序脉冲的时序图。时钟周期412包括N个周期的组415,在此示出为单个脉冲。稍后将更详细地描述数字N。0050图4图示检测到误预测的发生,以及随后的惩罚。脉冲492与根据注释392的清除重命名表336对应。延长的停止脉冲STALLINGPULSE491与根据注释391的流水线被停止的时间对应;脉冲491的持续时间与对误预测的时间惩罚以及随后的微处理器性能下降有关。在脉冲491以及周期组415两者中,如果N大,则惩罚较大。脉冲493A和脉冲493B指示与注释393对应的重建的开始和结束。0051一般来说,重命名周期436包括A)用于根据操作339复制。

34、引退检查点的周期439,B)用于根据箭头375从CPT并发复制的周期475,以及C)用于根据箭头365在ROB上步移多达N个周期的组465。与周期组415类似,周期465被示出为单个周期,而事实上两者都取值N。在图4中在会增强读者的联想的地方重复箭头339、375和365的图标。0052然而,具体地,不是每次都包括这些重命名周期436中的一些。包括哪些和不包括哪些的问题取决于在检测到误预测并且因此清除重命名表的时刻定义的场景。现在在此文件中参考图4呈现具体操作场景。0053首先,为了理解场景,应认识到,ROB重建窗口在清除重命名表时被定义。如上文在图2A和图2B中已经看到的,ROB重建窗口具有。

35、从引退指针开始并且在清除指针的前一条目结束的ROB条目。ROB重建窗口内的ROB条目定义哪些数据需要恢复到重命名表,通过从CPT的并发复制,还是通过在ROB上步移。在任一情况下,重建重命名数据的从ROB复制到重命名表的部分都在ROB重建窗口内。0054场景的不同之处在于每次清除重命名表时,ROB重建窗口将通常涵盖ROB条目的不同集合。因此,不同场景探索相对于先前提到的ROB检查点窗口的深度,ROB重建窗口如何具有不同大小。下列范例场景中的该方面还将确定是否允许CPT表被并发复制到重命名表,或替换地将通过在ROB上步移来复制相同内容。0055现在探索各种这样的场景的示例。为了这些场景,与图2A、。

36、2B中示出的类似,假设使用ROB360和CPT370。此外,由对于ROB检查点(CP)窗口和CPT370示出的括号指示的,还应用与关系287类似的动态关系587。0056图5是针对未从本发明受益的第一范例场景的图3C的组件的图。ROB360中,检查点窗口从由引退指针指向的ROB条目20开始并且在ROB条目67结束。此外,由箭头指示的,ROB重建窗口563从由引退指针指向的ROB条目20开始并且在比由清除指针指向的ROB条目57小一的ROB条目56结束。ROB重建窗口563内的ROB数据562包括重建重命名数据582,其将通过从CPT370的并发复制或者直接通过在ROB360步移而被恢复到重命名。

37、表336。0057在该示例中,ROB重建窗口563比ROB检查点窗口小。因此,将清除ROB条目5767的内容,并且因此存储在CPT370中的被设置检查点的重命名数据580将不作为重建过程的部分被复制到重命名表中,这是因为必须将整个CPT370复制到重命名表336。这就是为说明书CN104050027A106/7页11什么被设置检查点的重命名数据580被示出为被划掉。因此,根据注释567,全部ROB条目2056中的重建重命名数据582将根据箭头565被恢复,即,通过在ROB360上步移。0058换句话说,图5的CPT不能用于重建,并且因此在图5的场景中本发明没有提供优点。对于图5的场景简要参考图。

38、4,重命名周期475将被包括,并且数值N取值高达M,其中M是在这样的场景下可以在ROB360上移动的步子的最大数目。停止脉冲491的持续时间相对于在没有本发明的情况下的持续时间未减少。对于剩余示例场景,情况不是这样。0059图6是针对第二范例场景的图3C的组件的图。ROB360中,检查点窗口从由引退指针指向的ROB条目20开始并且在ROB条目67结束。此外,ROB360内的ROB重建窗口663跨越ROB条目2076。在该示例中,ROB重建窗口663大于ROB检查点窗口。在ROB重建窗口663内,ROB数据662包括要恢复到重命名表336的重建重命名数据部分682A和682B。将理解由ROB检查。

39、点窗口的边界引起ROB360内重建重命名数据被分成部分682A和682B。事实上,ROB条目2067映射到存储在CPT370中的被设置检查点的重命名数据部分680,而ROB条目6876根本不映射到CPT370。0060被设置检查点的重命名数据部分680是可用的,并且根据注释677,将根据箭头675将其恢复。因此,将不需要重建重命名数据部分682A,并且将其示出为被划掉。然而,部分682B不能经由CPT来高效复制,并且根据注释667,通过在ROB360上步移,将根据箭头665恢复ROB条目6876中的重建重命名数据部分682B。参考图4,根据箭头675的恢复可以在单个时钟脉冲475中发生。N将仍。

40、大于0,但小于M,并且由于本发明,将减少停止脉冲491的持续时间。将观察到图6的场景中的重建比图5的场景中的重建需要复制更多数据,但是由于本发明,需要较少时间。0061图7是针对第三范例场景的图3C的组件的图。ROB360中,检查点窗口从由引退指针指向的ROB条目20开始并且在ROB条目67结束。此外,ROB重建窗口763跨越ROB条目2067。在该示例中,ROB重建窗口763与ROB检查点窗口完全相同。这是在统计上以某个频率确实会发生的特殊情况。ROB数据762包括重建重命名数据782。0062被设置检查点的重命名数据780是可用的,并且根据注释777,将根据箭头775将其恢复。此外,根据注。

41、释767,在该场景中不会在ROB360上步移;没有重建重命名数据将被从ROB360复制到重命名表336。因此,将不需要重建重命名数据782,并且将其示出为划掉。参考图4,根据箭头775的恢复可以在单个时钟脉冲475中发生。N将等于0,并且将不存在脉冲415、465的组。由于本发明,停止脉冲491的持续时间将被最小化。0063参考图8,电子设备包括与根据示例实施例的半导体设备一起工作的系统800。系统800可以用在个人数字助理(PDA)、膝上型计算机、移动计算机、WEB平板、无线电话、蜂窝电话、数字音乐播放器、有线或无线电子设备、或至少包括其中两者的复杂电子设备中。系统800可以包括通过总线85。

42、0彼此通信的控制器810、诸如小键盘、键盘、显示器的输入/输出设备820、存储器830和接口840。控制器810可以包括例如根据实施例做成的至少一个微处理器、数字信号处理器或微控制器等。存储器830可以被配置为存储要由控制器810使用的指令和/或可经由I/O设备访问的用户数据。电子设备800可以使用被配置为向通信网络传送数据或从通信网络接收数据的接口840。所述传送可以经由电线,例如经由电缆,或USB接口。可替换地,通信网络可以是无线的,并且接口840可以是无线的,并且包括例如天线和无线收发器等。电子系统800可以在通信系统的通信接口协议中使用,所述通信说明书CN104050027A117/7。

43、页12系统诸如CDMA、GSM、NADC、ETDMA、WCDMA、CDMA2000、WIFI、MUNIWIFI、蓝牙、DECT、无线USB、FLASHOFDM、IEEE80220、GPRS、IBURST、WIBRO、WIMAX、高级WIMAX、UMTSTDD、HSPA、EVDO、高级LTE和MMDS等。0064图9示出用于描述根据实施例的方法的流程图900。流程图900的方法还可以通过上文描述的例如微处理器和电子设备的实施例来实现。0065根据操作910,指令被解码为微操作。根据下一操作920,根据微操作生成重命名数据。根据下一操作930,重命名数据被存储在重命名表中。0066根据下一操作94。

44、0,重命名数据的被设置检查点的版本存储在CPT中。根据另一操作950,已从微操作生成的ROB数据被存储在ROB中。如果需要,则ROB数据包括可以用于最终重建重命名表的重建重命名数据。ROB维持与CPT的动态关系。根据操作960,执行微操作。0067根据下一操作970,确定是否已清除重命名表;换句话说,是否已从重命名表清除重命名数据。如果否,执行从上文的操作910重新开始。在一些实施例中,如上所述响应于检测到误预测而清除重命名表。0068如果已清除重命名表,则根据下一操作980,重命名数据被恢复到重命名表;换句话说,重建重命名表。操作980包括操作982和984中的一个或两者。对于操作980,当。

45、清除重命名表时,ROB条目的ROB重建窗口可以变为已定义的;通过操作982,或通过操作984,将被恢复到重命名表的正是ROB重建窗口内的这些ROB条目的重建重命名数据。0069根据操作982,如果操作950的关系允许,则将重命名数据的被设置检查点的版本从CPT复制到重命名表。在一些实施例中,在单个时钟周期中如此复制重命名数据的被设置检查点的版本。0070根据操作984,将重建重命名数据从ROB复制到重命名表。优选地,针对操作982未覆盖的任何剩余物进行这样的复制,并且通过在ROB上步移来进行。0071上文中,操作的顺序不限于示出的内容,并且根据不同实施例不同顺序是可能的。此外,在某些实施例中,。

46、可以添加新的操作,或者可以修改或删除个别操作。0072本领域技术人员鉴于将作为整体来理解的本描述将能够实现本发明。包括了细节以提供全面理解。在其他实例中,未描述公知的方面,以便不会不必要地模糊了本发明。0073本描述包括一个或多个示例,但其不限制可以如何实现本发明。事实上,本发明的示例或实施例可以根据描述的内容实现,或可以不同地实现,并且还可以与其他现有或未来技术结合地实现。0074所附权利要求定义被视为新颖的和非显而易见的元素、特征和步骤或操作的某些组合和子组合。可以在此文件或相关文件中呈现其他这样的组合和子组合的额外的权利要求。说明书CN104050027A121/11页13图1说明书附图。

47、CN104050027A132/11页14图2A图2B说明书附图CN104050027A143/11页15图3A说明书附图CN104050027A154/11页16图3B说明书附图CN104050027A165/11页17图3C说明书附图CN104050027A176/11页18图4说明书附图CN104050027A187/11页19图5说明书附图CN104050027A198/11页20图6说明书附图CN104050027A209/11页21图7说明书附图CN104050027A2110/11页22图8说明书附图CN104050027A2211/11页23图9说明书附图CN104050027A23。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1