重点在第二部分
代码风格也很重要,一定要能够带着这种风格看代码,不然根本看不懂
流水线每一级之间都需要握手
E203支持V型指令吗?Rocket core支持V型指令吗?如果不支持,我自己要怎么把它加上去呢?能否加到NCIE接口处,也就是在译码结束后吧V型指令当做长指令,就像NICE接口的那些自定义指令一样 不支持
流水线中的数据冲突:
由于读取32位指令时,使用的地址都是*4后的,也就是只能读取0,4,8,12,这种地址,因此如果中间插入了一个16位的指令,就只能通过读取两个32位指令然后拼接了
两级预测器通过PHT来索引不同的分支的历史记录,但是它怎么把分支情况与历史记录对应上的呢?还要记录跳转地址的历史吗?
GShare算法通过将PC值的一部分与历史缓冲区(应该类似于cache,比如第一次跳转的时候,这时的历史缓冲区就是0,第二次就是1)进行异或,得到PHT
不管分支如何跳转,后面几条指令都会运行,在运行完这后面的几条指令后在运行目标分支指令