当前位置: 首页 > 专利查询>浙江大学专利>正文

栈式分支预测器的硬件实现方法技术

技术编号:3970765 阅读:207 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种栈式分支预测器的硬件实现方法。分支预测器通过对程序分支预测和提前执行分支之后的指令,提高流水级处理器性能。栈式分支预测器是在两级模式分支预测器的基础上,在分支预测器中设置了一个栈的结构,该结构记录了程序执行的层次。栈式分支预测器由栈、PC记录、比较器和索引组成。栈中记录了程序进入层次的入口和出口PC值,作用是记录程序的层次关系;PC记录里面存放了修改GHR位的PC值;比较器用于比较栈中的PC值和PC记录中的PC值;索引部分用于产生读写一PHT的索引值。程序的层次指的是程序的循环和函数调用。本发明专利技术是通过记录程序的层次,在预测时比较PC记录和栈中元素,过滤层次间的分支预测噪音。

【技术实现步骤摘要】

本专利技术涉及分支预测技术,尤其涉及一种。
技术介绍
分支指令是程序中频繁出现的指令,C语言中平均每9条指令就会出现一条分支 指令,分支指令带来了程序行为的多样性,在单发射顺序执行处理器中,分支指令不影响程 序性能。但是在具有流水的处理器中,分支指令导致流水级中需要插入气泡(Bubble),影响 处理器性能。因此分支预测应运而生,分支预测指的是在计算出分支跳转结果之前,预测分 支的跳转方向,提前执行预测结果处的指令,如果分支结果和预测结果相同,那么提前执行 的指令为有效指令,否则回滚提前执行的指令。随着处理器技术的发展,分支预测技术对处理器性能具有非常大的影响,准确的 分支预测和高效的错误预测结果回滚能够使处理器性能更加强劲。Intel奔腾4处理器为 了能够达到更高的频率,采用了非常深的流水结构,使得流水级的每一步能够在更短的时 间内完成。但是这样设计使分支预测付出了更大的代价,由于深度的流水,当预测器错误预 测分支结果时,处理器需要回滚更多周期的错误结果,导致处理器性能低下,被人诟病。下 面几个部分将详细叙述分支预测技术的发展、先进的分支预测器以及多核时代下分支预测 面临的挑战。在指令级流水处理器发展的初始阶段,分支点之后的指令需要等到计算出分支条 件以后才能够进入流水,刚进入分支指令到计算出分支结果的时间间隔内,指令流水级中 插入气泡(Bubble),这样的方式造成了处理器资源的浪费。于是提出了一种最简单的分支 预测方法,就是当处理器在执行过程中遇到分支指令,则总认为分支指令是跳转的(Taken) 或者不跳转的(Not Taken)。这样分支点之后的指令就可以提前进入流水,等到计算出分支 的结果以后判断预测是否正确。这种方式对没有固定跳转模式的程序,预测的准确率相对 较高。静态分支预测在程序运行阶段缺乏灵活性,使得预测性能底下,于是人们就提出 了动态预测的方法。首先是一位计数器动态预测器,它记录分支指令的执行结果,以0和 1分别表示分支的不跳转和跳转,当下次再次执行到这些分支指令的时候,就可以根据预测 位来预测分支。如果是0则预测不跳转,如果是1则预测跳转。每次分支在得到实际跳转 结果以后更新预测位。和一位预测器原理相同,后来又提出了多位计数器预测器,用来记录该分支以前 的跳转情况。如果当前预测位的值大于等于预测位最大值的一半,那么预测该分支跳转,否 则就预测该分支不跳转。如果实际结果是分支跳转,那么预测位的值更新为原来的值加1, 否则减1。多位预测器能够比1位预测器取得更好的性能,因为多位预测器能够容忍分支跳 转的波动。但实验结果表名,二位计数器的预测器最适合动态分支预测,它存储空间较小而 且状态转换更快。在二位预测器中,0、1表示分支不跳转,2、3表示分支跳转。在程序的执行过程中,当前分支的跳转与否又与该分支之前的分支跳转结果有关,所以又通过一个全局历史寄存器(GHR,Global History Register)记录了当前分支之前的k条分支跳转结果,然后用GHR去索引和更新模式历史表(PHT,Pattern History Table),PHT是由2位计数器组成的一个表。这种结构也是以后Gshare如图1所示、GseIect 等预测器的基础结构。而后发现由于只有一个独立的PHT,不同地址的分支共同读取和更新PHT,导致 了严重的相互干扰,于是为了取得更高的预测效率,预测器又为不同的地址设立了不同的 PHT,一方面由PC的地址去决定索引哪个PHT,另外一方面又由GHR去索引PHT里面的内容。 这样的预测器被叫做全局分支预测器,因为不同地址的分支虽然分离的PHT,但还是共同使 用一个GHR。所以继而又提出了局部分支预测器,也就是说不同地址的分支分别维护各自的 GHR。预测过程中,首先由PC索引决定使用哪个PHT和GHR,然后再由该GHR去索引PHT的 内容作为预测。更新的过程中则只更新相应的PHT和GHR。根据GHR和PHT进行分支预测的分支预测器被称为两级模式分支预测器,这类预 测器存在两个方面的性能缺陷。首先是分支别名,分支别名指的是在分支预测的过程中,存 在PHT表项的冲突问题。即不同的分支访问相同的表项,这使得PHT的某些表项经常未被 使用,而某些表项被不同地址的分支同时使用。其次是分支历史信息干扰,它是由历史分支 与当前分支的无关性引起的,具有干扰作用的分支历史信息也被称作“噪音”,即那些分支 的结果对当前分支的结果不相关。
技术实现思路
为了能够减少分支噪音对分支预测的性能影响,提高分支预测效率,进而改进处 理器性能,本专利技术的目的在于提出了一种。本专利技术解决技术问题所采用的技术方案是1)栈式结构记录程序层次栈为一个先进后出的硬件结构,栈以两个元素为一组,分别记录层次的入口和出 口,当处理器判断当前指令为函数调用或者循环时,栈式分支预测器就把函数或循环的入 口和出口地址插入到栈中成为栈中元素,保存程序的层次,函数不必记录出口地址,当某个 分支的地址大于栈顶层次的出口地址或者遇到了函数返回的指令,那么就说明程序退出了 一个层次,需要弹出一个栈顶的入口和出口元素;2) PC记录中记录修改GHR位的PC值分支的结果将会被记录在GHR中,PC记录中记录了修改GHR对应位的PC值,通过 PC记录中的值和栈中值的比较,能够判断GHR中哪些位与当前被预测分支处在相关层次;3)比较器比较PC记录和栈中元素比较器用于比较PC记录中的值与栈中元素的值,比较器不需要比较值的大小,只 需要比较其值是否相等,因此比较器通过异或逻辑实现,异或为零说明两者相等,比较器的 输出一串GHR的掩码;4)索引计算使用过滤后GHR值索引计算指的是计算索引PHT项的索引值,在栈式预测器中,用于计算索引的GHR 为噪音过滤后的GHR,它是GHR值和比较器输出的掩码相与后的结果;5)预测过程当处理器进行分支预测时候,首先比较每条PC记录与栈顶层次入口的值,如果PC 记录值大于或者等于栈顶入口的值,那么说明该PC记录对应的GHR位为与当前分支是处在 同一层中的分支,否则便是处在不同层次的分支,对于相同层次的GHR位,比较器产生一个 1的结果,对于不同层次的GHR位,比较器产生一个0个结果。于是在比较结束以后,比较器 产生了一串GHR的掩码, 掩码和GHR异或产生用于计算索引的GHR,最后根据索引函数计算 PHT的索引值,进行预测。本专利技术具有的有益效果是栈式分支预测器的作用原理是通过记录程序的层次,在预测时比较PC记录和栈 中元素,过滤层次间的分支预测噪音。附图说明图1是Gshare分支预测器。图2是Gshare上的栈式分支预测器。图3是比较器的实现。具体实施方法下面结合附图和实施例对本专利技术作进一步的说明。1)栈式结构记录程序层次栈为一个先进后出的硬件结构,栈以两个元素为一组,分别记录层次的入口和出 口,当处理器判断当前指令为函数调用或者循环时,栈式分支预测器就把函数或循环的入 口和出口地址插入到栈中成为栈中元素,保存程序的层次,函数不必记录出口地址,当某个 分支的地址大于栈顶层次的出口地址或者遇到了函数返回的指令,那么就说明程序退出了 一个层次,需要弹出一个栈顶的入口和出口元素;2) PC记录中记录修改GHR位的PC值分支本文档来自技高网
...

【技术保护点】
一种栈式分支预测器的硬件实现方法,其特征在于:1)栈式结构记录程序层次:栈为一个先进后出的硬件结构,栈以两个元素为一组,分别记录层次的入口和出口,当处理器判断当前指令为函数调用或者循环时,栈式分支预测器就把函数或循环的入口和出口地址插入到栈中成为栈中元素,保存程序的层次,函数不必记录出口地址,当某个分支的地址大于栈顶层次的出口地址或者遇到了函数返回的指令,那么就说明程序退出了一个层次,需要弹出一个栈顶的入口和出口元素;2)PC记录中记录修改GHR位的PC值:分支的结果将会被记录在GHR中,PC记录中记录了修改GHR对应位的PC值,通过PC记录中的值和栈中值的比较,能够判断GHR中哪些位与当前被预测分支处在相关层次;3)比较器比较PC记录和栈中元素:比较器用于比较PC记录中的值与栈中元素的值,比较器不需要比较值的大小,只需要比较其值是否相等,因此比较器通过异或逻辑实现,异或为零说明两者相等,比较器的输出一串GHR的掩码;4)索引计算使用过滤后GHR值:索引计算指的是计算索引PHT项的索引值,在栈式预测器中,用于计算索引的GHR为噪音过滤后的GHR,它是GHR值和比较器输出的掩码相与后的结果;5)预测过程:当处理器进行分支预测时候,首先比较每条PC记录与栈顶层次入口的值,如果PC记录值大于或者等于栈顶入口的值,那么说明该PC记录对应的GHR位为与当前分支是处在同一层中的分支,否则便是处在不同层次的分支,对于相同层次的GHR位,比较器产生一个1的结果,对于不同层次的GHR位,比较器产生一个0个结果。于是在比较结束以后,比较器产生了一串GHR的掩码,掩码和GHR异或产生用于计算索引的GHR,最后根据索引函数计算PHT的索引值,进行预测。...

【技术特征摘要】

【专利技术属性】
技术研发人员:陈天洲袁辉施青松胡威蒋冠军
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

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

1