因此,我最近主要在Y86-64的背景下研究了流水线处理器架构。在那里,我刚刚了解了分支预测,以及在分支预测错误的情况下,如何刷新提取,解码和执行管道寄存器,以及如何处理新的正确分支指令。
我想知道是否有可能实际设计一种硬件,也许有两组流水线寄存器,以便当它获取条件指令时,它开始并行处理两个结果,更新一组寄存器,就好像分支不会发生,而另一组好像将发生分支。
[值得注意的是,如果两个分支中的一个或两个分支依次导致它们本身也是分支指令的指令出现了问题,那么2套指令是不够的。但是由于在第一个分支条件到达执行阶段时,我们将知道实际采用哪个分支,因此我们可以消除错误的分支及其所有子分支。而且由于第一条分支指令从Fetch进入Execute阶段需要3个时钟周期,所以我认为在最坏的情况下,我们只需要2 ^ 3,即8套流水线寄存器。] >
除了在实现硬件方面有点困难之外,我认为这种方法可行的假设有什么错误吗?还是已经在诸如X86-64之类的更复杂的体系结构中完成了?
谢谢。
因此,我最近主要在Y86-64的背景下研究了流水线处理器架构。在这里,我刚刚了解了分支预测,以及在分支预测错误的情况下,...
就RISC与CISC架构而言,我想起后者尝试的技术大致类似于您在1980年代末/ 1990年代初所建议的。检查Wikipedia中的[[分支预测分析