用于重命名表重建基于重新排序缓冲区的动态检查点设置制造技术

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

【技术实现步骤摘要】
【专利摘要】一种减少由于使流水线停止以重建重命名表而导致的时间惩罚的乱序CPU、设备和方法。微处理器可以包括具有解码器、分派器以及至少一个执行单元的流水线。重命名表存储重命名数据,并且检查点表(CPT)存储从分派器接收到的重命名数据。重新排序缓冲区(ROB)存储ROB数据,并且具有与CPT的动态映射关系。如果诸如由于误预测而清除了重命名表,则至少部分地通过并发复制存储在CPT中的重命名数据,协同在ROB上步移,来重建重命名表。【专利说明】用于重命名表重建基于重新排序缓冲区的动态检查点设置
本公开涉及半导体设备,并且更具体地涉及控制电子设备的操作的微处理器,以及使用这样的微处理器的电子设备。
技术介绍
微处理器,也被称为中央处理单元(CPU),通过执行指令而工作。一些指令导致分支点,在分支点处,可以选择一条执行路径而非另一条。如果微处理器做出关于将选择哪条路径的正确推测性预测,并且预先执行沿该路径的指令,则微处理器可以具有增加的速度。这样的CPU被称为乱序CPU。然而,当存在误预测(misprediction)时,速度优势减少,并且需要恢复。 乱序CPU的挑战在于诸如写后写(Write After Write,WAW)和读后写(WriteAfter 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还包括重新排序缓冲区(“R0B”)160。ROB160具有图1中未单独示出的ROB条目。如稍后将更详细地看到的,R0B160包括引退指针(Retire Pointer)和清除指针(Flush Pointer),所述指针中的每一个指向ROB条目中的可变条目。R0B160可以是循环的或非循环的。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的实本文档来自技高网
...

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

【技术特征摘要】
...

【专利技术属性】
技术研发人员:R伊恩加P桑萨纳克里什南
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国;KR

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1