[发明专利]快速处置分支指令预测错误的流水线处理器装置无效
申请号: | 201110287565.9 | 申请日: | 2011-09-26 |
公开(公告)号: | CN102360282A | 公开(公告)日: | 2012-02-22 |
发明(设计)人: | 严晓浪;高金加;孟建熠;杨军 | 申请(专利权)人: | 杭州中天微系统有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵;王利强 |
地址: | 310012 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 快速 处置 分支 指令 预测 错误 流水线 处理器 装置 | ||
技术领域
本发明涉及一种流水线处理器,尤其指快速处置分支指令预测错误能力特征的流水线处理器装置。
技术背景
微处理器一般都使用流水线实现,特别是对于高性能微处理器,其流水线划分细致,级数较多。John Hennessy和David Patterson在其著作《计算机系统结构:量化研究方法》中阐述了经典的五级流水线处理器结构。五级流水段分别指取指、解码、执行、访存、回写,其中取指段负责访问指令存储器获得指令;解码段负责解码指令并准备指令执行操作数;执行段负责指令执行得到结果;访存段负责访问数据处理器完成数据的读入和写出;回写段完成寄存器文件和处理器状态的更新。
为提升微处理器的性能,更先进、更复杂的技术应用到了流水线处理器的架构设计中。
研究表明,指令之间存在一定的并行性,即前后指令之间不存在绝对的依赖关系,而指令之间的并行执行可以有效提高单位时间内处理器的指令吞吐量。为充分挖掘指令级并行性,使后续无依赖关系指令尽快执行,现代高性能微处理器引入了乱序推测执行技术。该技术通常在经典五级流水线中增加一级发射段,用于将操作数准备就绪的指令推入执行部件并缓存操作数未就绪指令。为保证程序语义的正确性和维护精确异常、中断,乱序推测执行技术引入了重排序缓存(ROB,Re-Order Buffer),指令在重排序缓存中按照程序语义定义的顺序依次退休。在实际实现中,通常只有当指令在重排序缓存中变为最老指令时,才可以退休并更新寄存器文件和处理器状态。因此,在乱序推测执行微处理器中,回写段通常被退休段所代替。
分支指令影响处理器的取指。实际分支方向和目标地址只有在执行段才可以得到,从而导致了多个流水线空操作,降低了微处理器性能。为消除或降低分支指令对取指的负面影响,现代微处理器一般都使用分支预测技术,即在执行段之前预测分支方向和目标地址。分支预测技术又可分为静态预测和动态预测两种,预测准确率与预测方法和运行程序密切相关。一般静态分支预测的准确率在50%~60%左右,动态预测的准确率在80%~99%左右。无论采用何种预测技术,都存在分支预测错误的情况。对于流水线较深的微处理器而言,尽早处置分支指令预测错误,恢复正确路径上的指令预取对提高处理器性能具有积极意义。
现有的乱序推测执行微处理器一般都在分支预测错误指令退休时统一处置分支预测错误,即当分支预测错误指令变为重排序缓存中最老的指令而被退休时,排空整个流水线,并通知取指部件从正确的分支目标地址上开始取指。这种处置方式本质上是等待分支预测错误指令之前的指令全部处置完毕后,再处理分支预测错误。这种方式需等待流水线完全排空后再开始取指,因此需要多个时钟周期才能恢复执行,导致了较多的流水线空操作,影响微处理器性能。
发明内容
为了克服现有的流水线处理器在遇到分支指令预测错误时的存在较多流水线空操作、影响了流水线处理器性能的不足,本发明提供一种消除或大大减少分支指令预测错误导致的流水线空操作、提升流水线处理器性能的快速处置分支指令预测错误的流水线处理器装置。
为了解决上述技术问题采用的技术方案是:
一种快速处置分支指令预测错误的流水线处理器装置,包括至少按顺序依次包含取指、解码、发射、执行、退休段的流水线处理器,其中取指部件负责从指令存储器中获取指令送到解码部件,解码部件负责译码指令的功能并将指令送入发射部件,发射部件将操作数准备就绪的指令推入执行部件,执行部件完成指令的计算并将结果和执行完成信息一起压入退休部件,退休部件等待指令变为最老后退休指令并完成寄存器文件和处理器状态的更新;
所述流水线处理器装置还包括:
分支预测单元,位于流水线执行部件之前,用于提前预测分支方向和目标地址,控制取指部件在预测目标地址上进行预取,并将预测方向和地址传递给分支结果检测单元;
分支结果检测单元,用于计算实际分支方向和目标地址,并与分支预测单元传递下来的预测分支方向和目标地址进行比较,若比较结果不一致,则发生分支预测错误,并将预测结果传送到分支取指重定向单元和流水线控制单元;
分支取指重定向单元,用于接收分支结果检测单元产生的检测结果和实际分支目标地址,若分支预测错误,则立即通知取指部件在实际分支目标地址上进行取指;
流水线控制单元,用于接收分支结果检测单元产生的检测结果,若发现分支预测错误,则负责控制各级流水线处置分支预测错误,具体过程如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州中天微系统有限公司,未经杭州中天微系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110287565.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:派工控制方法及派工控制设备
- 下一篇:卧式全自动拉袋离心机