何为分支预测
分支预测单元,顾名思义需要完成一件基本的任务——分支预测。在深入探讨分支预测单元之前,必须要了解分支预测是什么。
在处理器设计中,一个设计优秀的分支预测器(BPU)是提高处理器性能的关键部件,它负责指导处理器的取指,确定处理器下一步要到哪里取出指令并执行。BPU 是一条指令生命周期最开始的地方,因此想要深入探究一个高性能处理器,从BPU开始是一个很好的选择。
在香山中亦是如此,香山作为一个乱序六发射的高性能处理器,自然需要一个准确度高、预测效率高的分支预测单元。而一个分支预测单元的设计实际中往往需要考虑很多因素,例如时序、结构的复杂度、占用的硅片面积、预测的准确度、预测错误时恢复的速度等等。香山处理器的分支预测单元在这些因素之间都做到了比较好的权衡,通过许多巧妙的设计使其拥有了很高的分支预测效率与准确度,为后端的指令供给提供了基础的保障。
在本节中,我们将会介绍香山预测单元的基础设计,通过阅读本节,可以掌握如下知识:
任何参与BPU众包验证工作的同学,都需要率先阅读本节,以便对香山分支预测单元有基础了解。
分支预测单元,顾名思义需要完成一件基本的任务——分支预测。在深入探讨分支预测单元之前,必须要了解分支预测是什么。
本节介绍了香山分支预测单元(BPU)的基础思想和工作原理,包括采用的分支预测块思想、多预测器、多流水线结构以及取指目标队列(FTQ)的作用,说明了 BPU 对外交互的主要接口。
本节介绍了香山分支预测单元(BPU)的结构,包括多预测器、多流水线方案的整合,以及内部子预测器的组织结构和接口设计,展示了BPU如何与Composer交互,并说明了子预测器之间的连接方式。
三级流水线的时序设计是香山 BPU 的灵魂所在。预测结果重定向信号如何产生,如何根据预测结果生成新的PC,如何处理三个通道的预测结果,都会在本节中进行介绍。