分支预测算法(一):TAGE

引言 在高性能的乱序执行处理器当中,为了尽可能的提高处理器的吞吐率,一个准确的分支预测器可以起到至关重要的作用:这是Þ


SonicBoom BTB 概览

SonicBOOM 的 BTB 采用了2级架构,并涵盖了部份间接跳转预测的功能。本文为读者对SonicBOOM的chisel RTL源码阅读整理得到的BTB微架构分析。


SonicBOOM前端微架构概述

本文是基于SonicBOOM官方文档整理的概述性质文章,具体的实现请参考官方代码。Overview下图是SonicBoom微架构的详细block框图:BOOM系列乱序处理器受MIPS R10000以及Alpha 21264微架构的大量启发,如使用同样的统一物理寄存器组设计(显式寄存器重命名,expl


XiangShan FrontEnd源码浅析:ITTAGE & RAS

ITTAGE概述源代码:/xiangshan/frontend/ITTAGE.scalaITTAGE是xiangshan中用于预测间接跳转(jalr)跳转目标地址的预测器。如果是基于函数返回的jalr,xiangshan规定由RAS来进行预测,其他的间接跳转则交由ITTAGE来进行预测。ITTAGE


XiangShan FrontEnd源码浅析:FTB

FTB概述源代码:/xiangshan/frontend/FTB.scala参数FTB的基本参数如下所示: trait FTBParams extends HasXSParameter with HasBPUConst {   val numEntries = FtbSize  // 2


XiangShan FrontEnd源码浅析:SC

概述源代码:/xiangshan/frontend/SC.scalaSC实现为一个trait(特征),TAGE通过继承这个特征(实现多继承)来启用SC相关的功能。参数// SCNTables = 4// SCNRows = 512// SCCtrBits = 6// SCHistLens = Seq


XiangShan FrontEnd源码浅析:TAGE

概述源代码:/xiangshan/frontend/Tage.scalaXiangShan的TAGE采用2拍延迟的TAGE主预测输出,3拍延迟的SC来校正TAGE主预测输出的结构。TAGE主预测器每周期预测2个Br的结果(numBr=2)。参数trait TageParams extends Has