CN102360282A - 快速处置分支指令预测错误的流水线处理器装置 - Google Patents
快速处置分支指令预测错误的流水线处理器装置 Download PDFInfo
- Publication number
- CN102360282A CN102360282A CN2011102875659A CN201110287565A CN102360282A CN 102360282 A CN102360282 A CN 102360282A CN 2011102875659 A CN2011102875659 A CN 2011102875659A CN 201110287565 A CN201110287565 A CN 201110287565A CN 102360282 A CN102360282 A CN 102360282A
- Authority
- CN
- China
- Prior art keywords
- branch
- instruction
- prediction
- unit
- target address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
一种快速处置分支指令预测错误的流水线处理器装置,包括至少按顺序依次包含取指、解码、发射、执行、退休段的流水线处理器,以及分支预测单元,用于提前预测分支方向和目标地址;分支结果检测单元,用于计算实际分支方向和目标地址,并与分支预测单元传递下来的预测分支方向和目标地址进行比较,判定是否发生分支预测错误;分支取指重定向单元,用于接收检测结果和实际分支目标地址,若分支预测错误,则立即通知取指部件;流水线控制单元,用于接收分支结果检测单元产生的检测结果,若发现分支预测错误,则负责控制各级流水线处置分支预测错误。本发明能消除或大大减少分支指令预测错误导致的流水线空操作、提升流水线处理器性能。
Description
技术领域
本发明涉及一种流水线处理器,尤其指快速处置分支指令预测错误能力特征的流水线处理器装置。
技术背景
微处理器一般都使用流水线实现,特别是对于高性能微处理器,其流水线划分细致,级数较多。John Hennessy和David Patterson在其著作《计算机系统结构:量化研究方法》中阐述了经典的五级流水线处理器结构。五级流水段分别指取指、解码、执行、访存、回写,其中取指段负责访问指令存储器获得指令;解码段负责解码指令并准备指令执行操作数;执行段负责指令执行得到结果;访存段负责访问数据处理器完成数据的读入和写出;回写段完成寄存器文件和处理器状态的更新。
为提升微处理器的性能,更先进、更复杂的技术应用到了流水线处理器的架构设计中。
研究表明,指令之间存在一定的并行性,即前后指令之间不存在绝对的依赖关系,而指令之间的并行执行可以有效提高单位时间内处理器的指令吞吐量。为充分挖掘指令级并行性,使后续无依赖关系指令尽快执行,现代高性能微处理器引入了乱序推测执行技术。该技术通常在经典五级流水线中增加一级发射段,用于将操作数准备就绪的指令推入执行部件并缓存操作数未就绪指令。为保证程序语义的正确性和维护精确异常、中断,乱序推测执行技术引入了重排序缓存(ROB,Re-Order Buffer),指令在重排序缓存中按照程序语义定义的顺序依次退休。在实际实现中,通常只有当指令在重排序缓存中变为最老指令时,才可以退休并更新寄存器文件和处理器状态。因此,在乱序推测执行微处理器中,回写段通常被退休段所代替。
分支指令影响处理器的取指。实际分支方向和目标地址只有在执行段才可以得到,从而导致了多个流水线空操作,降低了微处理器性能。为消除或降低分支指令对取指的负面影响,现代微处理器一般都使用分支预测技术,即在执行段之前预测分支方向和目标地址。分支预测技术又可分为静态预测和动态预测两种,预测准确率与预测方法和运行程序密切相关。一般静态分支预测的准确率在50%~60%左右,动态预测的准确率在80%~99%左右。无论采用何种预测技术,都存在分支预测错误的情况。对于流水线较深的微处理器而言,尽早处置分支指令预测错误,恢复正确路径上的指令预取对提高处理器性能具有积极意义。
现有的乱序推测执行微处理器一般都在分支预测错误指令退休时统一处置分支预测错误,即当分支预测错误指令变为重排序缓存中最老的指令而被退休时,排空整个流水线,并通知取指部件从正确的分支目标地址上开始取指。这种处置方式本质上是等待分支预测错误指令之前的指令全部处置完毕后,再处理分支预测错误。这种方式需等待流水线完全排空后再开始取指,因此需要多个时钟周期才能恢复执行,导致了较多的流水线空操作,影响微处理器性能。
发明内容
为了克服现有的流水线处理器在遇到分支指令预测错误时的存在较多流水线空操作、影响了流水线处理器性能的不足,本发明提供一种消除或大大减少分支指令预测错误导致的流水线空操作、提升流水线处理器性能的快速处置分支指令预测错误的流水线处理器装置。
为了解决上述技术问题采用的技术方案是:
一种快速处置分支指令预测错误的流水线处理器装置,包括至少按顺序依次包含取指、解码、发射、执行、退休段的流水线处理器,其中取指部件负责从指令存储器中获取指令送到解码部件,解码部件负责译码指令的功能并将指令送入发射部件,发射部件将操作数准备就绪的指令推入执行部件,执行部件完成指令的计算并将结果和执行完成信息一起压入退休部件,退休部件等待指令变为最老后退休指令并完成寄存器文件和处理器状态的更新;
所述流水线处理器装置还包括:
分支预测单元,位于流水线执行部件之前,用于提前预测分支方向和目标地址,控制取指部件在预测目标地址上进行预取,并将预测方向和地址传递给分支结果检测单元;
分支结果检测单元,用于计算实际分支方向和目标地址,并与分支预测单元传递下来的预测分支方向和目标地址进行比较,若比较结果不一致,则发生分支预测错误,并将预测结果传送到分支取指重定向单元和流水线控制单元;
分支取指重定向单元,用于接收分支结果检测单元产生的检测结果和实际分支目标地址,若分支预测错误,则立即通知取指部件在实际分支目标地址上进行取指;
流水线控制单元,用于接收分支结果检测单元产生的检测结果,若发现分支预测错误,则负责控制各级流水线处置分支预测错误,具体过程如下:
当分支指令预测错误被检测到时,所述流水线控制单元立即清空取指部件和解码部件,消除取指部件和解码部件中错误分支路径上的所有指令,保证后续取指部件和解码部件中的指令均为正确分支目标地址上预取的指令;
当分支指令预测错误被检测到时,所述流水线控制单元立即停止解码部件向发射部件传送正确分支目标地址上预取的指令;
当分支预测错误指令在退休部件中变为最老指令而被退休时,所述流水线控制单元立即解除解码部件向发射部件传送指令的停止状态,此时若解码部件中的指令有效,则可以立即传送到发射部件,若解码部件中没有指令,则等待流水线依次填充;
当分支预测错误指令在退休部件中变为最老指令而被退休时,所述流水线控制单元立即清空从发射到退休的各段流水线中的错误分支路径上的指令。
作为优选的一种方案:所述的流水线控制单元中,在分支预测错误被检测到时立即更新分支预测单元的历史信息,或者在分支预测错误指令在退休时更新分支预测单元的历史信息,。
作为优选的另一种方案:所述的分支结果检测单元中,从发射部件获取分支指令类型信息和分支条件操作数,以及分支指令当前程序计数器值和分支偏移量。
进一步,所述的分支结果检测单元中,通过分支指令类型信息和分支条件操作数计算实际分支方向;通过分支指令当前程序计数器值、分支偏移量和分支指令长度信息,以及实际分支方向计算实际分支目标地址。
再进一步,所述的分支结果检测单元中,比较预测分支方向和实际分支方向,若结果不相符,则发生分支预测错误。
更进一步,所述分支结果检测单元比较预测分支目标地址和实际分支目标地址,若结果不相符,则发生分支预测错误。
作为优选的再一种方案:所述的分支取指重定向单元,连接分支结果检测单元和取指部件,当分支预测错误被检测到时,立即将实际分支目标地址传递给取指部件并请求取指部件从实际分支目标地址开始预取指令。
本发明的技术构思是:在流水线处理器中,将分支预测错误的处置分为两个步骤。第一步,在发现分支指令预测错误时,立即发起正确分支目标地址上的指令预取,同时清空发射级以上各级流水段,并停止解码部件向发射部件继续传送指令。该步骤将整个流水线划分为以发射段为界的两部分,发射段以上各段指令排空,而发射段以下(包括发射段)各段包含的指令,既有语义上位于分支预测错误指令之前的指令,又有错误分支目标地址上的指令。第二步,当分支预测错误指令经若干时钟周期后变为重排序缓存中最老的指令时,清空发射至退休各级流水段,同时解除解码部件的停止状态。此时,发射段以上各段指令均为重新预取的正确分支目标地址上的指令;而发射段以下(包括发射段),所有语义上位于分支预测错误指令之前的指令均已在退休段退休,而所有分支错误路径上的指令均未退休,此时可以安全的排空所有未退休的指令。分支预测错误指令退休的同时立即解除解码部件的停止状态,则可以第一时间恢复分支指令预测错误处置后指令的执行。
本发明与现有技术相比,充分利用了流水线各段的时间并行性,在流水线后级等待处置分支预测错误的同时,使流水线前级从正确分支目标地址上开始预取并缓存指令,从而缩短分支预测错误处理后指令恢复执行的时间。
本发明的有益效果主要表现在:消除或减少了分支指令预测错误导致的流水线空操作,提高了流水线处理器的性能。
附图说明
图1是本发明包含的流水线处理器装置各级流水段和快速处置分支预测错误各单元与流水段之间的连接关系的示意图。
图2是分支结果检测单元计算实际分支方向和目标地址并判断分支预测是否出错的结构示意图。
图3是分支取指重定向单元与分支结果检测单元和取指部件的连接关系示意图。
图4是流水线控制单元对流水线各段的控制机制以及与流水线各功能部件的连接关系的示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行说明。
参照图1~图4,一种快速处置分支指令预测错误的流水线处理器装置,包括至少按顺序依次包含取指、解码、发射、执行、退休段的流水线处理器,其中取指部件11负责从指令存储器中获取指令送到解码部件,解码部件12负责译码指令的功能并将指令送入发射部件,发射部件13将操作数准备就绪的指令推入执行部件,执行部件14完成指令的计算并将结果和执行完成信息一起压入退休部件,退休部件15等待指令变为最老后退休指令并完成寄存器文件和处理器状态的更新;
所述流水线处理器装置还包括:
分支预测单元16,位于流水线执行部件之前,用于提前预测分支方向和目标地址,控制取指部件在预测目标地址上进行预取,并将预测方向和地址传递给分支结果检测单元;
分支结果检测单元17,用于计算实际分支方向和目标地址,并与分支预测单元传递下来的预测分支方向和目标地址进行比较,若比较结果不一致,则发生分支预测错误,并将预测结果传送到分支取指重定向单元和流水线控制单元;
分支取指重定向单元18,用于接收分支结果检测单元产生的检测结果和实际分支目标地址,若分支预测错误,则立即通知取指部件在实际分支目标地址上进行取指;
流水线控制单元19,用于接收分支结果检测单元产生的检测结果,若发现分支预测错误,则负责控制各级流水线处置分支预测错误,具体过程如下:
当分支指令预测错误被检测到时,所述流水线控制单元立即清空取指部件和解码部件,消除取指部件和解码部件中错误分支路径上的所有指令,保证后续取指部件和解码部件中的指令均为正确分支目标地址上预取的指令;
当分支指令预测错误被检测到时,所述流水线控制单元立即停止解码部件向发射部件传送正确分支目标地址上预取的指令;
当分支预测错误指令在退休部件中变为最老指令而被退休时,所述流水线控制单元立即解除解码部件向发射部件传送指令的停止状态,此时若解码部件中的指令有效,则可以立即传送到发射部件,若解码部件中没有指令,则等待流水线依次填充;
当分支预测错误指令在退休部件中变为最老指令而被退休时,所述流水线控制单元立即清空从发射到退休的各段流水线中的错误分支路径上的指令。
所述的流水线控制单元中,在分支预测错误被检测到时立即更新分支预测单元的历史信息,或者在分支预测错误指令退休时更新分支预测单元的历史信息,。
图1示出了本发明涉及的流水线处理器装置包含的各级流水段及其连接关系。本发明涉及的流水线处理器装置至少包括取指部件11,解码部件12,发射部件13、执行部件14和退休部件15。取指部件11负责从指令存储器中获取指令并送到解码部件12,解码部件12负责译码指令的功能并将指令送入发射部件13,发射部件13缓存操作数未就绪指令,将操作数准备就绪的指令推入执行部件14,执行部件14完成指令的计算并将指令结果和执行完成信息一起压入退休部件15,退休部件15等待指令变为重排序缓存中最老的指令后退休指令并完成寄存器文件和处理器状态的更新。一般流水线处理器中还包括访存部件,本发明提出的快速处置分支指令预测错误的机制不涉及访存部件,但本说明书定义的流水线处理器装置同样适用于包含有访存部件的流水线处理器。
图1示出的流水线处理器装置中包含分支预测单元16。分支预测单元16在执行流水段之前对分支方向和目标地址进行预测,并按照预测分支目标地址进行指令的预取。在具体实施例中,分支预测单元既可以在取指段实现,也可以在解码段实现,本发明无特别限制。
进一步,图1示出的分支预测单元16对分支预测的方法无特别限制。分支预测方法既可以采用静态预测,也可以采用动态预测,但无论何种方式,都必须将预测信息传送到分支结果检测单元。分支预测信息包括预测分支方向和预测分支目标地址,也可以只包括预测分支方向,但不能只包括预测分支目标地址。
图1示出的流水线处理器装置中包含分支结果检测单元17。分支结果检测单元17位于指令执行段,发射部件13向分支结果检测单元17传送分支指令类型信息、分支条件操作数、当前分支指令程序计数器值(PC)、分支偏移量以及分支指令长度信息。特别的,对于定长指令集而言,分支指令长度固定,无需传送;对于变长指令集或混编指令集而言,不同编码分支指令长度不固定,因此需要从发射部件13传送分支指令长度信息。
图1示出的分支结果检测单元17计算实际分支方向和目标地址,并与分支预测单元16传递的预测分支方向和预测目标地址进行比较,若两者比较均相同,则分支预测正确,处理器无需做分支预测错误处理;反之,若其中之一不相同或两者均不相同,则分支预测错误,处理器必须正确处置。
处理器对分支预测错误的处置分为两个步骤。第一步在分支预测错误被检测到时进行,由分支取指重定向单元18和流水线控制单元19共同完成;第二步在分支预测错误指令退休时进行,由流水线控制单元19完成。两个步骤的具体描述如下:
第一步,分支取指重定向单元18接收到由分支结果检测单元17产生的分支预测错误信息后,立即将正确的分支目标地址传送给取指部件11并向取指部件11发起分支取指重定向请求。若此时取指部件11未收到其他优先级更高的取指重定向请求,则取指部件11立即响应分支取指重定向请求,从正确分支目标地址开始取指。同时,流水线控制单元19发起清空取指部件11和解码部件12的操作,并停止解码部件12向发射部件13传送指令。
第二步,流水线控制单元19接收到退休部件15指示的分支预测错误指令退休的信息后,清空发射至退休各级流水段。同时,流水线控制单元19解除对解码部件12向发射部件13传送指令的停止状态。
流水线控制单元19提供当前分支指令的实际分支方向和目标地址用于更新分支预测单元16的分支历史信息。需要说明的是,流水线控制单元19对分支预测单元16历史信息的更新,既可以在分支结果检测单元17检测到分支预测错误之后进行,也可以在分支预测错误指令在退休部件15中退休时进行。
图2示出了分支结果检测单元17计算实际分支方向和目标地址并判断分支预测是否出错的具体实现方式。发射部件13将操作数准备就绪的分支指令发射到分支结果检测单元17。分支结果检测单元17的组成结构可以划分为三部分:计算实际分支方向、计算实际分支目标地址、判断分支预测是否出错。下面参照图2对分支结果检测单元17组成结构进行说明。
第一部分,计算实际分支方向。分支结果检测单元17从发射部件13获得分支指令类型信息21,分支条件操作数22,用于计算实际分支方向。分支指令类型信息21指示当前分支指令在何种条件下发生跳转。例如,在一个具体实施例中,分支指令类型包含以下集合,{大于、等于、小于};对另一些具体实施例,分支指令类型集合可以更复杂,功能更完善,本说明书不做特别约束。分支条件操作数22用于计算分支条件是否满足。在一个具体实施例中,分支条件操作数22可以是两个用于大小比较的值;对另一些具体实施例,分支条件操作数22可以是一位或几位条件码,本说明书不做特别约束。进一步,分支结果计算逻辑26接收分支条件操作数并计算各分支条件是否满足。分支条件选择27根据分支指令类型信息21选择相应的分支条件,得到当前分支指令的实际分支方向。
第二部分,计算实际分支目标地址。分支结果检测单元17从发射部件13获得当前分支指令程序计数器值(PC)23和分支偏移量24,以及分支指令长度25,用于计算实际分支目标地址。图2中加法器28用于计算分支跳转地址,其输入为当前分支指令程序计数器值(PC)23和分支偏移量24;加法器29用于计算分支不跳转地址,其输入为当前分支指令程序计数器值(PC)23和分支指令长度25。最后数据选择器30根据第一部分中得到的实际分支方向从分支跳转地址和分支不跳转地址两者中选择最终的分支目标地址,即若实际分支方向为跳转,则选择分支跳转地址,若实际分支方向为不跳转,则选择分支不跳转地址。
第三部分,检测分支预测是否出错。图2中比较器31用于判断实际分支方向和预测分支方向是否相同,若比较器31输出为1,表示两者不相等,分支方向预测错误;反之,则分支方向预测正确。比较器32用于判断实际分支目标地址与预测分支目标地址是否相同,若比较器32输出为1,表示两者不相等,分支目标地址预测错误;反之,则分支目标地址预测正确。只有当分支方向预测和分支目标地址预测均正确时,最终的分支预测结果才为正确;反之,若分支方向预测和分支目标地址预测有一个出错,或均错误,则最终的分支预测结果错误。分支预测错误指示信息将输入到流水线控制单元19和分支取指重定向单元18,用于处置分支预测错误,保证程序正确执行。
图3示出了分支取指重定向单元18与分支结果检测单元17和取指部件11的连接关系。分支取指重定向单元18是快速处置分支指令预测错误的核心单元。分支取指重定向单元18接收分支结果检测单元17的检测结果,若分支预测正确,则分支取指重定向单元18无操作;若分支预测发生错误,则分支取指重定向单元18立即将分支结果检测单元17产生的实际分支目标地址传输至取指部11的指令地址产生器42,并向取指部件11的取指请求发生器41发送分支取指重定向请求。若取指请求发生器41在当前周期无更高优先级的取指重定向请求,则取指请求发生器41将响应分支取指重定向请求。分支取指重定向单元18在发现分支预测错误后无需等待分支预测错误指令退休,即可向取指部件11发起取指重定向请求,缩短了分支预测错误造成的流水线空操作,提高了处理器性能。
图4示出了流水线控制单元19对流水线各段的控制机制以及与流水线各功能部件的连接关系。流水线控制单元19负责分支预测错误后对各级流水线动作的控制,以保障分支预测错误被正确处置。流水线控制单元19接收分支结果检测单元17产生的分支预测检测结果,若分支预测正确,则流水线控制单元19无动作;若分支预测错误,则流水线控制单元19控制流水线各段正确处置分支预测错误。发生分支预测错误后,流水线控制单元19对流水线各段的控制分为两个步骤,第一步在分支预测错误被检测到时进行,第二步在分支预测错误指令退休时进行。流水线控制单元19在这两步的具体动作和实现方式如下:
第一步,流水线控制单元19接收到分支结果检测单元17产生的分支预测错误信息后,立即发起操作清空取指部件11和解码部件12,包括这两个部件中的指令缓存,同时停止解码部件12向发射部件13传送指令。流水线控制单元19通过内部有限状态机51记录分支预测错误发生,即有限状态机51由正常态进入冻结态。有限状态机51的正常态表征无分支预测错误发生或分支预测错误已处置完毕,冻结态表征分支预测错误正在处置,此时冻结解码部件12继续向发射部件13传输新的指令。这一步将取指部件11和解码部件12中的分支错误路径上的指令完全清除,保证了后续预取的指令均为正确分支路径上的指令。
第二步,流水线控制单元19接收到退休部件15产生了分支预测错误指令退休的消息后,立即发起操作清空从发射到退休的各级流水段,包括发射缓存中的指令,同时解除对解码部件12向发射部件13传送指令的停止状态。由于退休部件使用按序退休的机制,因此当分支预测错误指令退休时,所有比所述分支预测错误指令老的指令均已退休,而所有比所述分支预测错误指令年轻的指令均未退休。这些未退休的指令均为所述分支指令错误分支路径上的指令。此时流水线控制单元19清空发射段到退休段所有指令,则将第一步处理后剩余的分支错误路径上的指令全部安全的清除。此时,处理器中已无所述分支预测错误导致的错误分支路径上的指令,则流水线控制单元19可以安全的恢复解码部件12向发射部件13继续传送指令。
本发明利用流水线不同段的时间并行性,在等待分支预测错误指令退休的同时,使取指部件和解码部件从正确的分支目标地址上预取指令并缓存,有效的缩短或消除了分支预测错误导致的流水线停顿,提高了流水线处理器的性能。
Claims (7)
1.一种快速处置分支指令预测错误的流水线处理器装置,包括至少按顺序依次包含取指、解码、发射、执行、退休段的流水线处理器,其中取指部件负责从指令存储器中获取指令送到解码部件,解码部件负责译码指令的功能并将指令送入发射部件,发射部件将操作数准备就绪的指令推入执行部件,执行部件完成指令的计算并将结果和执行完成信息一起压入退休部件,退休部件等待指令变为最老后退休指令并完成寄存器文件和处理器状态的更新;其特征在于:
所述流水线处理器装置还包括:
分支预测单元,位于流水线执行部件之前,用于提前预测分支方向和目标地址,控制取指部件在预测目标地址上进行预取,并将预测方向和地址传递给分支结果检测单元;
分支结果检测单元,用于计算实际分支方向和目标地址,并与分支预测单元传递下来的预测分支方向和目标地址进行比较,若比较结果不一致,则发生分支预测错误,并将预测结果传送到分支取指重定向单元和流水线控制单元;
分支取指重定向单元,用于接收分支结果检测单元产生的检测结果和实际分支目标地址,若分支预测错误,则立即通知取指部件在实际分支目标地址上进行取指;
流水线控制单元,用于接收分支结果检测单元产生的检测结果,若发现分支预测错误,则负责控制各级流水线处置分支预测错误,具体过程如下:
当分支指令预测错误被检测到时,所述流水线控制单元立即清空取指部件和解码部件,消除取指部件和解码部件中错误分支路径上的所有指令,保证后续取指部件和解码部件中的指令均为正确分支目标地址上预取的指令;
当分支指令预测错误被检测到时,所述流水线控制单元立即停止解码部件向发射部件传送正确分支目标地址上预取的指令;
当分支预测错误指令在退休部件中变为最老指令而被退休时,所述流水线控制单元立即解除解码部件向发射部件传送指令的停止状态,此时若解码部件中的指令有效,则可以立即传送到发射部件,若解码部件中没有指令,则等待流水线依次填充;
当分支预测错误指令在退休部件中变为最老指令而被退休时,所述流水线控制单元立即清空从发射到退休的各段流水线中的错误分支路径上的指令。
2.如权利要求1所述的快速处置分支指令预测错误的流水线处理器装置,其特征在于:所述的流水线控制单元中,在分支预测错误被检测到时立即更新分支预测单元的历史信息,或者在分支预测错误指令退休时更新分支预测单元的历史信息。
3.如权利要求1或2所述的快速处置分支指令预测错误的流水线处理器装置,其特征在于:所述的分支结果检测单元中,从发射部件获取分支指令类型信息和分支条件操作数,以及分支指令当前程序计数器值和分支偏移量。
4.如权利要求1或2所述的快速处置分支指令预测错误的流水线处理器装置,其特征在于:所述的分支结果检测单元中,通过分支指令类型信息和分支条件操作数计算实际分支方向;通过分支指令当前程序计数器值、分支偏移量和分支指令长度信息,以及实际分支方向计算实际分支目标地址。
5.如权利要求1或2所述的快速处置分支指令预测错误的流水线处理器装置,其特征在于:所述的分支结果检测单元中,比较预测分支方向和实际分支方向,若结果不相符,则发生分支预测错误。
6.如权利要求1或2所述的快速处置分支指令预测错误的流水线处理器装置,其 特征在于:所述分支结果检测单元比较预测分支目标地址和实际分支目标地址,若结果不相符,则发生分支预测错误。
7.如权利要求1或2所述的快速处置分支指令预测错误的流水线处理器装置,其特征在于:所述的分支取指重定向单元,连接分支结果检测单元和取指部件,当分支预测错误被检测到时,立即将实际分支目标地址传递给取指部件并请求取指部件从实际分支目标地址开始预取指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102875659A CN102360282A (zh) | 2011-09-26 | 2011-09-26 | 快速处置分支指令预测错误的流水线处理器装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102875659A CN102360282A (zh) | 2011-09-26 | 2011-09-26 | 快速处置分支指令预测错误的流水线处理器装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102360282A true CN102360282A (zh) | 2012-02-22 |
Family
ID=45585616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102875659A Pending CN102360282A (zh) | 2011-09-26 | 2011-09-26 | 快速处置分支指令预测错误的流水线处理器装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102360282A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808475A (zh) * | 2016-03-15 | 2016-07-27 | 杭州中天微系统有限公司 | 基于预测的低功耗隔离地址翻转请求发射装置 |
CN105930136A (zh) * | 2015-02-26 | 2016-09-07 | 瑞萨电子株式会社 | 处理器和指令码生成设备 |
CN107688468A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 推测执行处理器中分支指令与分支预测功能的验证方法 |
CN107943518A (zh) * | 2017-11-24 | 2018-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种局部跳转指令取指电路 |
CN109690536A (zh) * | 2017-02-16 | 2019-04-26 | 华为技术有限公司 | 将多核指令踪迹从虚拟平台仿真器取到性能模拟模型的方法和系统 |
CN109753308A (zh) * | 2017-11-06 | 2019-05-14 | 展讯通信(上海)有限公司 | 指令通路验证系统及指令通路监测方法 |
CN110336803A (zh) * | 2019-06-21 | 2019-10-15 | 中国科学院软件研究所 | 一种目标主机分支预测单元的安全性评估方法 |
CN110764823A (zh) * | 2019-09-02 | 2020-02-07 | 芯创智(北京)微电子有限公司 | 一种指令流水线的回路控制系统及方法 |
CN110825442A (zh) * | 2019-04-30 | 2020-02-21 | 海光信息技术有限公司 | 一种指令预取方法及处理器 |
CN111209043A (zh) * | 2018-11-21 | 2020-05-29 | 华夏芯(北京)通用处理器技术有限公司 | 一种超前指针法实现前端流水线中指令预取的方法 |
CN111324948A (zh) * | 2020-02-10 | 2020-06-23 | 上海兆芯集成电路有限公司 | 模拟方法及模拟系统 |
CN111538535A (zh) * | 2020-04-28 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 一种cpu指令处理方法、控制器和中央处理单元 |
CN112559048A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种指令处理装置、处理器及其处理方法 |
CN113804470A (zh) * | 2021-04-14 | 2021-12-17 | 山东省计算中心(国家超级计算济南中心) | 一种穴盘育苗流水线的故障检测反馈方法 |
CN114629665A (zh) * | 2022-05-16 | 2022-06-14 | 百信信息技术有限公司 | 一种用于可信计算的硬件平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625787A (en) * | 1994-12-21 | 1997-04-29 | International Business Machines Corporation | Superscalar instruction pipeline using alignment logic responsive to boundary identification logic for aligning and appending variable length instructions to instructions stored in cache |
CN101228507A (zh) * | 2005-06-10 | 2008-07-23 | 高通股份有限公司 | 用于管理微处理器的指令管线中的指令冲刷的方法及设备 |
CN101601009A (zh) * | 2007-01-24 | 2009-12-09 | 高通股份有限公司 | 用于被错误预测分支的分段管线冲洗 |
-
2011
- 2011-09-26 CN CN2011102875659A patent/CN102360282A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625787A (en) * | 1994-12-21 | 1997-04-29 | International Business Machines Corporation | Superscalar instruction pipeline using alignment logic responsive to boundary identification logic for aligning and appending variable length instructions to instructions stored in cache |
CN101228507A (zh) * | 2005-06-10 | 2008-07-23 | 高通股份有限公司 | 用于管理微处理器的指令管线中的指令冲刷的方法及设备 |
CN101601009A (zh) * | 2007-01-24 | 2009-12-09 | 高通股份有限公司 | 用于被错误预测分支的分段管线冲洗 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930136A (zh) * | 2015-02-26 | 2016-09-07 | 瑞萨电子株式会社 | 处理器和指令码生成设备 |
CN105808475A (zh) * | 2016-03-15 | 2016-07-27 | 杭州中天微系统有限公司 | 基于预测的低功耗隔离地址翻转请求发射装置 |
CN105808475B (zh) * | 2016-03-15 | 2018-09-07 | 杭州中天微系统有限公司 | 基于预测的低功耗隔离地址翻转请求发射装置 |
CN107688468B (zh) * | 2016-12-23 | 2020-05-15 | 北京国睿中数科技股份有限公司 | 推测执行处理器中分支指令与分支预测功能的验证方法 |
CN107688468A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 推测执行处理器中分支指令与分支预测功能的验证方法 |
CN109690536A (zh) * | 2017-02-16 | 2019-04-26 | 华为技术有限公司 | 将多核指令踪迹从虚拟平台仿真器取到性能模拟模型的方法和系统 |
CN109753308A (zh) * | 2017-11-06 | 2019-05-14 | 展讯通信(上海)有限公司 | 指令通路验证系统及指令通路监测方法 |
CN107943518A (zh) * | 2017-11-24 | 2018-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种局部跳转指令取指电路 |
CN107943518B (zh) * | 2017-11-24 | 2021-07-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种局部跳转指令取指电路 |
CN111209043B (zh) * | 2018-11-21 | 2022-07-12 | 华夏芯(北京)通用处理器技术有限公司 | 一种超前指针法实现前端流水线中指令预取的方法 |
CN111209043A (zh) * | 2018-11-21 | 2020-05-29 | 华夏芯(北京)通用处理器技术有限公司 | 一种超前指针法实现前端流水线中指令预取的方法 |
CN110825442A (zh) * | 2019-04-30 | 2020-02-21 | 海光信息技术有限公司 | 一种指令预取方法及处理器 |
CN110336803A (zh) * | 2019-06-21 | 2019-10-15 | 中国科学院软件研究所 | 一种目标主机分支预测单元的安全性评估方法 |
CN110336803B (zh) * | 2019-06-21 | 2020-08-11 | 中国科学院软件研究所 | 一种目标主机分支预测单元的安全性评估方法 |
CN110764823B (zh) * | 2019-09-02 | 2021-11-16 | 芯创智(北京)微电子有限公司 | 一种指令流水线的回路控制系统及方法 |
CN110764823A (zh) * | 2019-09-02 | 2020-02-07 | 芯创智(北京)微电子有限公司 | 一种指令流水线的回路控制系统及方法 |
CN112559048A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种指令处理装置、处理器及其处理方法 |
CN112559048B (zh) * | 2019-09-25 | 2023-12-12 | 阿里巴巴集团控股有限公司 | 一种指令处理装置、处理器及其处理方法 |
CN111324948A (zh) * | 2020-02-10 | 2020-06-23 | 上海兆芯集成电路有限公司 | 模拟方法及模拟系统 |
CN111324948B (zh) * | 2020-02-10 | 2023-04-25 | 上海兆芯集成电路有限公司 | 模拟方法及模拟系统 |
CN111538535A (zh) * | 2020-04-28 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 一种cpu指令处理方法、控制器和中央处理单元 |
CN111538535B (zh) * | 2020-04-28 | 2021-09-21 | 支付宝(杭州)信息技术有限公司 | 一种cpu指令处理方法、控制器和中央处理单元 |
CN113804470A (zh) * | 2021-04-14 | 2021-12-17 | 山东省计算中心(国家超级计算济南中心) | 一种穴盘育苗流水线的故障检测反馈方法 |
CN113804470B (zh) * | 2021-04-14 | 2023-12-01 | 山东省计算中心(国家超级计算济南中心) | 一种穴盘育苗流水线的故障检测反馈方法 |
CN114629665A (zh) * | 2022-05-16 | 2022-06-14 | 百信信息技术有限公司 | 一种用于可信计算的硬件平台 |
CN114629665B (zh) * | 2022-05-16 | 2022-07-29 | 百信信息技术有限公司 | 一种用于可信计算的硬件平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102360282A (zh) | 快速处置分支指令预测错误的流水线处理器装置 | |
CN108351777B (zh) | 用于管理处理系统中的辅助分支预测的方法和系统 | |
EP1889152B1 (en) | A method and apparatus for predicting branch instructions | |
TW442733B (en) | System and method for maintaining branch information | |
CN102483696B (zh) | 用以预测有条件非分支指令的不执行的方法和设备 | |
CN105074655A (zh) | 用于取消对循环的数据预取请求的方法和设备 | |
CN107368450B (zh) | 多片处理器及其操作方法 | |
WO2010147857A2 (en) | Dependence prediction in a memory system | |
US10318419B2 (en) | Flush avoidance in a load store unit | |
CN101449238A (zh) | 本地和全局分支预测信息存储 | |
US20090217015A1 (en) | System and method for controlling restarting of instruction fetching using speculative address computations | |
US10346174B2 (en) | Operation of a multi-slice processor with dynamic canceling of partial loads | |
JP2008544353A (ja) | マイクロプロセッサの命令パイプライン内の命令フラッシングを管理する方法及び装置 | |
US10761854B2 (en) | Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor | |
EP2261797B1 (en) | Information processing apparatus and branch prediction method | |
US9524171B1 (en) | Split-level history buffer in a computer processing unit | |
US10042647B2 (en) | Managing a divided load reorder queue | |
US8028180B2 (en) | Method and system for power conservation in a hierarchical branch predictor | |
US7017030B2 (en) | Prediction of instructions in a data processing apparatus | |
US20170329715A1 (en) | Hazard avoidance in a multi-slice processor | |
US10338923B2 (en) | Branch prediction path wrong guess instruction | |
US9086888B2 (en) | Using a plurality of tables for improving performance in predicting branches in processor instructions | |
JP3762816B2 (ja) | マイクロプロセッサにおける早期例外を追跡するシステム及び方法 | |
US20220075624A1 (en) | Alternate path for branch prediction redirect | |
CN118210557A (zh) | 用于过滤无效预取的预取方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120222 |