重要结构及接口文档

本文档将会对 BPU 中的重要结构以及对外接口进行描述,描述粒度将深入代码级别,通过阅读本文档,你可以理解香山分支预测单元中每一个信号是什么作用,理解各种请求的具体实现方式,也将使你能够结合代码进行功能的理解。

本文档将会对 BPU 中的重要结构以及对外接口进行描述,描述粒度将深入代码级别,文档中描述的结构将与香山分支预测单元 Chisel 版本代码保持一致,信号结构及名称亦来自于 Chisel 版本代码。

文档适用于已经了解了香山分支预测单元基础设计,并想要深入了解信号细节的同学使用。可以根据验证需要的内容有选择的进行阅读,或随时进行查阅。

其中,FTB项与完整预测结果接口涉及 BPU 产生预测结果的方式,建议每位同学进行阅读。


FTB项与完整预测结果接口

BPU 的基本预测单位是分支预测块,然而分支预测块的结构是怎样的呢?为什么一个分支预测块可以指导接下来如此多条指令的执行呢?这一部分将讲述生成分支预测块的核心数据结构——FTB项,以及由 FTB 项生成的完整预测结果结构。

重定向与更新接口

重定向与更新请求是 FTQ 发往 BPU 的两大信息类型,本节中讲述了这两种请求接口的具体结构。

BPU 全局接口

本节中介绍了香山分支预测单元整体对外交互的接口的定义,包括全局分支预测结果和单流水级预测结果的呈现形式。

子预测器基类与子预测器接口

本文档介绍了香山BPU中的子预测器接口,以及子预测器基类的使用,阅读此文档可帮助你了解子预测器的对外交互,和子预测器基类中信号的使用。

最后修改 October 27, 2024: Fix typo (e95831c)