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


XiangShan FrontEnd源码浅析:uBTB

XiangShan是中科院计算所的高性能RISC-V微处理器项目,基于其开源的特性,可以从中一窥高性能微处理器的一些设计理念以及思路等。本系列的文章将从XiangShan开源的微处理器核的前端(除译码器外)代码出发,尝试浅析其分支预测、取指以及指令缓存的微架构设计等。更多关于XiangShan的信息


RISC-V基本指令集概述

RISC-V基本指令集概述RISC-V的主要技术特性:将ISA分离为一个小的基本ISA以及可选的扩展。支持32位和64位地址空间。使ISA扩展更为容易,包括紧密耦合以及松弛耦合的协处理器。支持可变长的指令扩展。提供有效率的现代标准的硬件支持,包括IEEE-754 2008浮点数标准以及C11和C++


基于RISC-V的CPU设计入门——异常处理

Exceptions在处理器的设计当中,控制单元及其信号的设计是最具有挑战性的:它是处理器设计当中最困难的部分,并且要想加快其运行速度需要付出更大的努力。在控制单元的设计当中一个重要且关键的工作就是对异常以及中断处理的实现——不是分支指令,但是同样会改变程序正常的指令执行流。异常用于处理非期望的(不


基于RISC-V的CPU设计入门——控制冒险

Control Hazards在这之前,我们将冒险可能发生的范围限制在算术操作和数据传送操作。然而,就如同我们在第V节所讨论过的一样,条件分支同样会导致流水线冒险,也就是控制冒险。下图展示了一些列的指令以及分支会在流水线的那个地方发生。指令必须要在每个时钟周期都进行取指来维持流水线的进行。在我们的设