香山分支预测单元(BPU)基础设计

本文档介绍了香山分支预测单元的基础设计思想,通过阅读本文档,你不需要得知具体的信号名称和代码细节便可理解香山分支预测单元的大致工作流程。

在处理器设计中,一个设计优秀的分支预测器(BPU)是提高处理器性能的关键部件,它负责指导处理器的取值,确定处理器下一步要到哪里取出指令并执行。BPU 是一条指令生命周期最开始的地方,因此想要深入探究一个高性能处理器,从BPU开始是一个很好的选择。

在香山中亦是如此,香山作为一个乱序六发射的高性能处理器,自然需要一个准确度高、预测效率高的分支预测单元。而一个分支预测单元的设计实际中往往需要考虑很多因素,例如时序、结构的复杂度、占用的硅片面积、预测的准确度、预测错误时恢复的速度等等。香山处理器的分支预测单元在这些因素之间都做到了比较好的权衡,通过许多巧妙的设计使其拥有了很高的分支预测效率与准确度,为后端的指令供给提供了基础的保障。

在本节中,我们将会介绍香山预测单元的基础设计,通过阅读本节,可以掌握如下知识:

  • 分支预测的基本概念
  • 香山分支预测单元的基本预测单位——分支预测块
  • 香山分支预测单元的对外交互接口
  • 香山分支预测单元的基本结构
  • 香山分支预测单元的基础时序

任何参与BPU众包验证工作的同学,都需要率先阅读本节,以便对香山分支预测单元有基础了解。


何为分支预测

分支预测单元,顾名思义需要完成一件基本的任务——分支预测。在深入探讨分支预测单元之前,必须要了解分支预测是什么。

香山分支预测单元基础

本节介绍了香山分支预测单元(BPU)的基础思想和工作原理,包括采用的分支预测块思想、多预测器、多流水线结构以及取值目标队列(FTQ)的作用,说明了 BPU 对外交互的主要接口。

香山分支预测单元结构介绍

本节介绍了香山分支预测单元(BPU)的结构,包括多预测器、多流水线方案的整合,以及内部子预测器的组织结构和接口设计,展示了BPU如何与Composer交互,并说明了子预测器之间的连接方式。

香山分支预测单元时序介绍

三级流水线的时序设计是香山 BPU 的灵魂所在。预测结果重定向信号如何产生,如何根据预测结果生成新的PC,如何处理三个通道的预测结果,都会在本节中进行介绍。

最后修改 September 13, 2024: Update the picture of BPU Top. (431c050)