指令预取:
图5 BOOM的front-end(前端)
BOOM instantiates its own Front-end , similar to how the Rocket core(s) instantiates its own Front-end . This Front-end fetches instructions and makes predictions throughout the Fetch stage to redirect the instruction stream in multiple fetch cycles (F0, F1…). If a misprediction is detected in BOOM’s Back-end (execution pipeline), or one of BOOM’s own predictors wants to redirect the pipeline in a different direction, a request is sent to the Front-end and it begins fetching along a new instruction path. See Branch Prediction for more information on how branch prediction fits into the Fetch Stage’s pipeline.
BOOM的Front-end前端部件在获取指令同时,在整个获取阶段对指令进行预测,以在多个获取周期(F0、F1、F2..)中重新定向指令流。如果在BOOM的Back-end(执行流水线)检测到预测失误,或者BOOM的一个预测器希望将流水线重定向到另一个方向,一个请求就会被发送给前端部件,它会开始向着一条新的指令路径进行取指。如果希望了解更多关于分支预测是如何在指令预取阶段工作的,可以查看 分支预测 那节的内容。