快速处置分支指令预测错误的流水线处理器装置制造方法及图纸

技术编号:7180101 阅读:421 留言:0更新日期:2012-04-11 18:40
一种快速处置分支指令预测错误的流水线处理器装置,包括至少按顺序依次包含取指、解码、发射、执行、退休段的流水线处理器,以及分支预测单元,用于提前预测分支方向和目标地址;分支结果检测单元,用于计算实际分支方向和目标地址,并与分支预测单元传递下来的预测分支方向和目标地址进行比较,判定是否发生分支预测错误;分支取指重定向单元,用于接收检测结果和实际分支目标地址,若分支预测错误,则立即通知取指部件;流水线控制单元,用于接收分支结果检测单元产生的检测结果,若发现分支预测错误,则负责控制各级流水线处置分支预测错误。本发明专利技术能消除或大大减少分支指令预测错误导致的流水线空操作、提升流水线处理器性能。

【技术实现步骤摘要】

本专利技术涉及一种流水线处理器,尤其指快速处置分支指令预测错误能力特征的流水线处理器装置。
技术介绍
微处理器一般都使用流水线实现,特别是对于高性能微处理器,其流水线划分细致,级数较多。John Hermessy和David Patterson在其著作《计算机系统结构量化研究方法》中阐述了经典的五级流水线处理器结构。五级流水段分别指取指、解码、执行、访存、回写,其中取指段负责访问指令存储器获得指令;解码段负责解码指令并准备指令执行操作数;执行段负责指令执行得到结果;访存段负责访问数据处理器完成数据的读入和写出; 回写段完成寄存器文件和处理器状态的更新。为提升微处理器的性能,更先进、更复杂的技术应用到了流水线处理器的架构设计中。研究表明,指令之间存在一定的并行性,即前后指令之间不存在绝对的依赖关系, 而指令之间的并行执行可以有效提高单位时间内处理器的指令吞吐量。为充分挖掘指令级并行性,使后续无依赖关系指令尽快执行,现代高性能微处理器引入了乱序推测执行技术。 该技术通常在经典五级流水线中增加一级发射段,用于将操作数准备就绪的指令推入执行部件并缓存操作数未就绪指令。为保证程序语义的正确性和维护精确异常、中断,乱序推测执行技术引入了重排序缓存(ROB,Re-Order Buffer),指令在重排序缓存中按照程序语义定义的顺序依次退休。在实际实现中,通常只有当指令在重排序缓存中变为最老指令时,才可以退休并更新寄存器文件和处理器状态。因此,在乱序推测执行微处理器中,回写段通常被退休段所代替。分支指令影响处理器的取指。实际分支方向和目标地址只有在执行段才可以得到,从而导致了多个流水线空操作,降低了微处理器性能。为消除或降低分支指令对取指的负面影响,现代微处理器一般都使用分支预测技术,即在执行段之前预测分支方向和目标地址。分支预测技术又可分为静态预测和动态预测两种,预测准确率与预测方法和运行程序密切相关。一般静态分支预测的准确率在50 % 60 %左右,动态预测的准确率在80 % 99%左右。无论采用何种预测技术,都存在分支预测错误的情况。对于流水线较深的微处理器而言,尽早处置分支指令预测错误,恢复正确路径上的指令预取对提高处理器性能具有积极意义。现有的乱序推测执行微处理器一般都在分支预测错误指令退休时统一处置分支预测错误,即当分支预测错误指令变为重排序缓存中最老的指令而被退休时,排空整个流水线,并通知取指部件从正确的分支目标地址上开始取指。这种处置方式本质上是等待分支预测错误指令之前的指令全部处置完毕后,再处理分支预测错误。这种方式需等待流水线完全排空后再开始取指,因此需要多个时钟周期才能恢复执行,导致了较多的流水线空操作,影响微处理器性能。
技术实现思路
为了克服现有的流水线处理器在遇到分支指令预测错误时的存在较多流水线空操作、影响了流水线处理器性能的不足,本专利技术提供一种消除或大大减少分支指令预测错误导致的流水线空操作、提升流水线处理器性能的快速处置分支指令预测错误的流水线处理器装置。为了解决上述技术问题采用的技术方案是一种快速处置分支指令预测错误的流水线处理器装置,包括至少按顺序依次包含取指、解码、发射、执行、退休段的流水线处理器,其中取指部件负责从指令存储器中获取指令送到解码部件,解码部件负责译码指令的功能并将指令送入发射部件,发射部件将操作数准备就绪的指令推入执行部件,执行部件完成指令的计算并将结果和执行完成信息一起压入退休部件,退休部件等待指令变为最老后退休指令并完成寄存器文件和处理器状态的更新;所述流水线处理器装置还包括 分支预测单元,位于流水线执行部件之前,用于提前预测分支方向和目标地址,控制取指部件在预测目标地址上进行预取,并将预测方向和地址传递给分支结果检测单元;分支结果检测单元,用于计算实际分支方向和目标地址,并与分支预测单元传递下来的预测分支方向和目标地址进行比较,若比较结果不一致,则发生分支预测错误,并将预测结果传送到分支取指重定向单元和流水线控制单元;分支取指重定向单元,用于接收分支结果检测单元产生的检测结果和实际分支目标地址,若分支预测错误,则立即通知取指部件在实际分支目标地址上进行取指;流水线控制单元,用于接收分支结果检测单元产生的检测结果,若发现分支预测错误,则负责控制各级流水线处置分支预测错误,具体过程如下当分支指令预测错误被检测到时,所述流水线控制单元立即清空取指部件和解码部件,消除取指部件和解码部件中错误分支路径上的所有指令,保证后续取指部件和解码部件中的指令均为正确分支目标地址上预取的指令;当分支指令预测错误被检测到时,所述流水线控制单元立即停止解码部件向发射部件传送正确分支目标地址上预取的指令;当分支预测错误指令在退休部件中变为最老指令而被退休时,所述流水线控制单元立即解除解码部件向发射部件传送指令的停止状态,此时若解码部件中的指令有效,则可以立即传送到发射部件,若解码部件中没有指令,则等待流水线依次填充;当分支预测错误指令在退休部件中变为最老指令而被退休时,所述流水线控制单元立即清空从发射到退休的各段流水线中的错误分支路径上的指令。作为优选的一种方案所述的流水线控制单元中,在分支预测错误被检测到时立即更新分支预测单元的历史信息,或者在分支预测错误指令在退休时更新分支预测单元的历史信息,。作为优选的另一种方案所述的分支结果检测单元中,从发射部件获取分支指令类型信息和分支条件操作数,以及分支指令当前程序计数器值和分支偏移量。进一步,所述的分支结果检测单元中,通过分支指令类型信息和分支条件操作数计算实际分支方向;通过分支指令当前程序计数器值、分支偏移量和分支指令长度信息,以及实际分支方向计算实际分支目标地址。再进一步,所述的分支结果检测单元中,比较预测分支方向和实际分支方向,若结果不相符,则发生分支预测错误。更进一步,所述分支结果检测单元比较预测分支目标地址和实际分支目标地址, 若结果不相符,则发生分支预测错误。作为优选的再一种方案所述的分支取指重定向单元,连接分支结果检测单元和取指部件,当分支预测错误被检测到时,立即将实际分支目标地址传递给取指部件并请求取指部件从实际分支目标地址开始预取指令。本专利技术的技术构思是在流水线处理器中,将分支预测错误的处置分为两个步骤。 第一步,在发现分支指令预测错误时,立即发起正确分支目标地址上的指令预取,同时清空发射级以上各级流水段,并停止解码部件向发射部件继续传送指令。该步骤将整个流水线划分为以发射段为界的两部分,发射段以上各段指令排空,而发射段以下(包括发射段)各段包含的指令,既有语义上位于分支预测错误指令之前的指令,又有错误分支目标地址上的指令。第二步,当分支预测错误指令经若干时钟周期后变为重排序缓存中最老的指令时, 清空发射至退休各级流水段,同时解除解码部件的停止状态。此时,发射段以上各段指令均为重新预取的正确分支目标地址上的指令;而发射段以下(包括发射段),所有语义上位于分支预测错误指令之前的指令均已在退休段退休,而所有分支错误路径上的指令均未退休,此时可以安全的排空所有未退休的指令。分支预测错误指令退休的同时立即解除解码部件的停止状态,则可以第一时间恢复分支指令预测错误处置后指令的执行。本专利技术与现有技术相比,充分利用了流水线本文档来自技高网
...

【技术保护点】
1.一种快速处置分支指令预测错误的流水线处理器装置,包括至少按顺序依次包含取指、解码、发射、执行、退休段的流水线处理器,其中取指部件负责从指令存储器中获取指令送到解码部件,解码部件负责译码指令的功能并将指令送入发射部件,发射部件将操作数准备就绪的指令推入执行部件,执行部件完成指令的计算并将结果和执行完成信息一起压入退休部件,退休部件等待指令变为最老后退休指令并完成寄存器文件和处理器状态的更新;其特征在于:所述流水线处理器装置还包括:分支预测单元,位于流水线执行部件之前,用于提前预测分支方向和目标地址,控制取指部件在预测目标地址上进行预取,并将预测方向和地址传递给分支结果检测单元;分支结果检测单元,用于计算实际分支方向和目标地址,并与分支预测单元传递下来的预测分支方向和目标地址进行比较,若比较结果不一致,则发生分支预测错误,并将预测结果传送到分支取指重定向单元和流水线控制单元;分支取指重定向单元,用于接收分支结果检测单元产生的检测结果和实际分支目标地址,若分支预测错误,则立即通知取指部件在实际分支目标地址上进行取指;流水线控制单元,用于接收分支结果检测单元产生的检测结果,若发现分支预测错误,则负责控制各级流水线处置分支预测错误,具体过程如下:当分支指令预测错误被检测到时,所述流水线控制单元立即清空取指部件和解码部件,消除取指部件和解码部件中错误分支路径上的所有指令,保证后续取指部件和解码部件中的指令均为正确分支目标地址上预取的指令;当分支指令预测错误被检测到时,所述流水线控制单元立即停止解码部件向发射部件传送正确分支目标地址上预取的指令;当分支预测错误指令在退休部件中变为最老指令而被退休时,所述流水线控制单元立即解除解码部件向发射部件传送指令的停止状态,此时若解码部件中的指令有效,则可以立即传送到发射部件,若解码部件中没有指令,则等待流水线依次填充;当分支预测错误指令在退休部件中变为最老指令而被退休时,所述流水线控制单元立即清空从发射到退休的各段流水线中的错误分支路径上的指令。...

【技术特征摘要】

【专利技术属性】
技术研发人员:严晓浪高金加孟建熠杨军
申请(专利权)人:杭州中天微系统有限公司
类型:发明
国别省市:86

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

1