【技术实现步骤摘要】
本专利技术涉及处理器设计的领域,特别是涉及一种由块地址和多个字节偏移形成的多个地址与分支指令历史转移通过散列运算形成的多个条件分支指令预测器索引的分支预测器。
技术介绍
在处理器设计的领域中对分支指令预测器的预测精度要求越来越高是公知的。随着处理器流水级、高速缓存存储器访问延迟和超标量体系结构中的指令发布宽度的增加,该需求更加强烈。分支指令预测器包括预测目标地址,和预测条件分支指令方向,即跳转或者不跳转。典型地,以相对大的块为单位从指令高速缓存器中取指,例如,一次性从指令高速缓存取出16个字节指令。因此,在取出的指令块中可能存在多个分支指令。需要精确地预测取出的块中存在的分支指令,并预测它们的目标地址和它们的方向。因为块内分支指令的位置是相对随机的,所以这是有挑战的。对于固定长度指令如此,但是对于允许指令是可变长度的指令集架构(例如,x86或者ARM)尤其如此。例如,一条x86分支指令可能位于与从指令高速缓存取出的指令字节块的任何字节偏移处。
技术实现思路
根据本专利技术的一方面,提供一种分支预测器。该分支预测器可以包括:可用于访问处理器的指令高速缓存的指令字节块的块地址;所述指令字节块内的第一字节偏移;所述指令字节块内的第二字节偏移;散列逻辑,散列分支转移历史和由块地址和第一字节偏移形成的第一地址以生成第一索引,以及散列分支转移历史和由块地址和第二字节偏移形成的第二地址以生成第二索引;和条件分支预测器,接收第一索引和第二索引,并响应于此分别提供所述指令字节块中的第一和第二条件分支指令的第一和第二方向预测。根据本专利技术的另一方面,提供一种用于操作分支预测器 ...
【技术保护点】
一种分支预测器,包括:可用于访问处理器的指令高速缓存的指令字节块的块地址;所述指令字节块内的第一字节偏移;所述指令字节块内的第二字节偏移;散列逻辑,散列分支转移历史和由块地址和第一字节偏移形成的第一地址以生成第一索引,以及散列分支转移历史和由块地址和第二字节偏移形成的第二地址以生成第二索引;和条件分支预测器,接收第一索引和第二索引,并响应于此分别提供所述指令字节块中的第一和第二条件分支指令的第一和第二方向预测。
【技术特征摘要】
1.一种分支预测器,包括:可用于访问处理器的指令高速缓存的指令字节块的块地址;所述指令字节块内的第一字节偏移;所述指令字节块内的第二字节偏移;散列逻辑,散列分支转移历史和由块地址和第一字节偏移形成的第一地址以生成第一索引,以及散列分支转移历史和由块地址和第二字节偏移形成的第二地址以生成第二索引;和条件分支预测器,接收第一索引和第二索引,并响应于此分别提供所述指令字节块中的第一和第二条件分支指令的第一和第二方向预测。2.如权利要求1所述的分支预测器,进一步包括:分支目标地址高速缓存BTAC,提供对应所述块地址中的第一字节偏移和第二字节偏移。3.如权利要求2所述的分支预测器,进一步包括:其中,所述块地址索引的BTAC,还提供与第一字节偏移和第二字节偏移对应的第一分支目标地址预测和第二分支目标地址预测;以及其中,所述分支预测器静态地关联由所述条件分支预测器提供的第一方向预测与由BTAC提供的第一分支目标地址预测,并静态地关联由所述条件分支预测器提供的第二方向预测与由BTAC提供的第二分支目标地址预测。4.如权利要求2所述的分支预测器,进一步包括:其中,所述第一字节偏移和第二字节偏移每个是N位,其中,N是log2Q,其中,Q是由指令高速缓存响应于块地址提供的指令字节块中的指令字节的数目。5.如权利要求2所述的分支预测器,进一步包括:其中,使用由处理器执行的条件分支指令的正确地址来更新所述条件分支预测器。6.如权利要求1所述的分支预测器,进一步包括:其中,所述第一字节偏移具有第一预定值且所述第二字节偏移具有第二预定值,其中,所述第一预定值和第二预定值不同。7.如权利要求6所述的分支预测器,进一步包括:所述块地址索引的分支目标地址高速缓存BTAC,提供第一条件分支指令和第二条件分支指令中的每一个的分支目标地址预测和相应的字节偏移;其中,所述分支预测器确定由BTAC提供的哪个字节偏移具有较小的值和哪个具有较大的值;以及其中,所述分支预测器动态地关联由所述条件分支预测器提供的第一方向预测与其由BTAC提供的相应的字节偏移具有较小的值的分支目标地址预测,并动态地关联由所述条件分支预测器提供的第二方向预测与其由BTAC提供的相应的字节偏移具有较大的值的分支目标地址预测。8.如权利要求7所述的分支预测器,进一步包括:其中,所述BTAC通过块地址访问,且所述条件分支预测器由同一时钟周期内的第一索引和第二索引访问。9.如权利要求6所述的分支预测器,进一步包括:其中,使用由散列逻辑生成的第一索引和第二索引中对应的一个来更新所述条件分支预测器。10.如权利要求1所述的分支预测器,进一步包括:其中,所述条件分支预测器包括具有分别接收第一索引和第二索引和分别提供第一方向预测和第二方向预测的第一端口和第二端口的存储器。11.如权利要求10所述的分支预测器,进一步包括:其中,所述条件分支预测器包括多个存储器,其中,所述多个存储器中的每个存储器具有第一端口和第二端口,所述第一端口和第二端口分别接收一对第一索引和第二索引并分别提供第一方向预测和第二方向预测;以及其中,所述散列逻辑将不同长度的分支转移历史和由块地址和第一/第二字节偏移形成的第一/第二地址进行散列运算,以生成用于多个存储器中的每一个的第一/第二索引。12.如权利要求1所述的分支预测器...
【专利技术属性】
技术研发人员:王小玲,杨梦晨,陈国华,
申请(专利权)人:上海兆芯集成电路有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。