具有二级分支预测高速缓存的分支预测装置制造方法及图纸

技术编号:2868890 阅读:163 留言:0更新日期:2012-04-11 18:40
一种用于执行分支预测的方法及机构。处理器被配置成具有第一级分支预测高速缓存,该第一级分支预测高速缓存被配置成存储对应于一组指令的分支预测信息。此外,第二级分支预测高速缓存(260、1828)用来存储从该第一级高速缓存移除的分支预测信息。该第二级分支预测高速缓存被配置成而只有存储从该第一级高速缓存移除的该信息的子集合。从该第一级高速缓存移除及未存储于该第二级高速缓存内的分支预测信息将舍弃。当在该第一级高速缓存内生成错误时,将做出判断为是否该第二级高速缓存含有对应于该错误的分支预测信息。若对应的分支预测信息于该第二级高速缓存内检测到时,该检测到的分支预测信息从该第二级高速缓存中提取并且用来重新建立完整的分支预测信息,该分支预测信息接着可使用于生成预测。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及超标量微处理器,特别是涉及用于分支预测的方法及机制。
技术介绍
超标量处理器通过在每个时钟周期(clock cycle)执行多重指令及通过选择符合该设计的最短可能的时钟周期而达到高效能。依照于此所使用的,该专有名词″时钟周期″意指在该微处理器内给予指令处理管线(instruction processing pipeline)的各种行程的时间间隔。存储装置(例如寄存器及数组)依据该时钟周期获取本身的数值。例如,存储装置可依据定义该时钟周期的时钟信号的上升或下降缘来获取数值。该存储装置接着存储该数值直到该时钟信号各自的后续的上升或下降缘为止。该专有名词″指令处理管线″在此是意指以管线状的方式使用处理指令的逻辑电路。虽然该管线可以分成部分指令处理在其上执行的任意数目的行程,指令处理通常包括提取该指令、解码该指令、执行该指令及存储该执行结果在经由该指令所确认的目的地。超标量处理器(以及超管线微处理器(superpipelined microprocessor))的重要的特征为本身的分支预测机制。该分支预测机制指示用于分支指令的预测方向(采取或不采取),而允许后续的指令提取在经由该分支预测预测的指令流(instruction stream)内继续进行。分支指令为造成后续的指令从至少二个地址的其中一个来提取的指令循序地址确认指令流开始于直接跟随该分支指令的指令;以及目标地址确认指令流开始于存储器中的任何位置。无条件的分支指令总是分支至目标地址,而条件的分支指令基于先前指令的结果可选择该循序或该目标地址。来自该预测指令流的指令在该分支指令执行之前可以推测地执行,并且无论如何在该分支指令执行之前放置于该指令处理管线内。若该预测指令流是正确的,则每个指令循环所执行的指令的数目将有益于增加。然而,若该预测指令流是不正确的(亦即,一个或一个以上的分支指令为不正确预测),则来自该不正确地预测的指令流的指令将由该指令处理管线舍弃并且每个时钟周期所执行的指令的数目将减少。为了要有效率,该分支预测机制必须高度准确使得该预测指令流尽可能是常常正确的。经常地,对于特定的分支先前执行的分支的记录被用于形成较准确的情况,此类的分支预测记录通常需要维持符合该分支指令的数据在存储器中。在该分支预测数据由该存储器逐出(evict),或者因其它原因而失去的情况下,则可能必须在后来的时刻重新建立用于该分支指令的执行记录。一种上述问题的解决方式可以增加该分支预测存储器的尺寸。然而,增加分支预测存储器的尺寸可能需要在闸极面积及该分支预测机制的尺寸上有显著的增加。结果,关于分支情况的重要的数据可能失去并且必须重新建立。因此,改善分支预测能力的机制是需要的,该方法不需要在闸极数目或该分支预测机制的尺寸上有显著的增加。
技术实现思路
上文所列述的问题大部分可以由微处理器及在此所描述的方法来解决。在一个实施例中,处理器被配置成具有第一级分支预测高速缓存,该高速缓存被配置成存储对应于一组指令的分支预测信息。此外,第二级分支预测高速缓存被用于存储由该第一级高速缓存逐出的分支预测信息。该第二级分支预测高速缓存被配置成只存储由该第一级高速缓存逐出的分支预测信息的子集。由该第一级高速缓存逐出并且并未存储于该第二级高速缓存的分支预测信息将会舍弃。当在该第一级高速缓存内未命中(miss)时,将会做出是否该第二级高速缓存含有对应于该未命中的分支预测信息的判断。若对应的分支预测信息在该第二级高速缓存内检测到时,该检测到的分支预测信息由该第二级高速缓存所提取并且用于重建可在接下来用于生成预测的完整的分支预测信息。在一个实施例中,可能包含解码电路以执行来自于该第二级高速缓存所提取的指令的解码。来自于该第二级高速缓存的该解码指令可以使用于该完整的分支预测信息的重建。更有利的,一个减少了尺寸的高速缓存可以用于存储来自于该第一级分支预测高速缓存所逐出的分支预测信息。再者,当在该第一级高速缓存内出现未命中时,完整的分支预测可以快速地由存储于该第二级高速缓存的数据来重新建立。附图说明本专利技术的其它目的及优点在阅读下列的详细说明及在参考该附图的后将会变得明了,其中图1为微处理器的一个实施例的方块图。图2为显示分支预测单元的一个实施例的方块图。图3为显示用于分支预测的方法的流程图。图4为显示用于使用二级分支预测高速缓存的方法的流程图。图5显示程序指令的相邻群组及对应的分支预测条目(entry)。图6显示在分支标记(marker)位及地址偏移(offsets)之间的关系。图7显示在程序指令、分支标记位及地址偏移之间的关系。图8显示预测逻辑的一个实施例。图9显示对于图8中所显示的该预测逻辑的动态逻辑推论。图10显示分支标记位使用。图11显示分支标记位使用。图12显示分支标记位使用。图13显示分支标记位使用。图14显示未命中的预测。图15显示分支目标信息。图16显示预测逻辑单元的一个实施例的方块图。图17显示目标选择电路的一个实施例。图18为显示选择信号电路的一个实施例的方块图。图19显示分支地址计算单元的一个实施例。图20为显示在一级分支预测存储及级二分支预测存储之间的关系的方块图。图21为显示在一级分支预测存储及级二分支预测存储之间的关系的方块图。图22为显示在级一分支预测存储及级二分支预测存储之间的关系的方块图。图23为分支预测单元的一个实施例的方块图。图24为分支地址计算单元的一个实施例。图25为未命中的预测电路的一个实施例的方块图。图26为计算机系统的方块图。虽然本专利技术适用于各种修正及其它的类型,本专利技术的特定的实施例是通过在图式中的例子来呈现并且将于此详细描述。然而,需要了解的是对于本专利技术的该附图及详细说明并非意在限定本专利技术于所揭露的该特定的形式,而相反地,本专利技术是在于含括如同由附加的权利要求范围所定义的落在本专利技术的精神及范围内的所有的修正、等同及替代。具体实施例方式处理器概要兹参照图1,该图显示处理器10的一个实施例的方块图。其它实施例是可能的及经过考虑的。如同图1中所示,处理器10包含预先提取(prefetch)单元12、分支预测单元14、指令高速缓存16、指令对准单元18、多个解码单元20A至20C、多个保留位置(reservation stations)22A至22C、多个功能单元24A至24C、加载/存储单元26、数据高速缓存28、寄存器文件30、重新排序缓冲区32、MROM单元34及总线接口单元37。在此以特定的图式标号及连续字母所指定的组件将总合地通过该单独的附图标号所标示。例如,解码单元20A至20C将总合地以解码单元20所标示。预先提取单元12经由连接以接收来自总线接口单元37的指令,并且更进一步连接至指令高速缓存16及分支预测单元14。同样地,分支预测单元14连接至指令高速缓存16。再者,分支预测单元14连接至解码单元20及功能单元24。指令高速缓存16更进一步连接至MROM单元34及指令对准单元18。指令对准单元18依序连接至解码单元20。每个解码单元20A至20C连接至加载/存储单元26及各自连接至保留位置22A至22C。保留位置22A至22C更进一步连接至各自的功能单元24A至24C。此外,解码单元20及保留位置22连接至寄存器文件30及重新排本文档来自技高网
...

【技术保护点】
一种方法,包括:检测第一级高速缓存(206)并未含有对应于第一地址的分支预测信息(450,52);判定是否第二级高速缓存(260,1828)含有对应于该第一地址的分支预测信息;使用该信息而重新建立第一分支预测以响应于 判定该第二级高速缓存(260)含有该信息,其中该信息包括该第一分支预测的子集合;以及存储该第一分支预测于该第一级高速缓存(206)之第一条目(2100)内,其中该第一条目对应于该第一地址。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:GD左拉斯基JS詹姆士
申请(专利权)人:先进微装置公司
类型:发明
国别省市:US[美国]

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

1