异常和中断节:

总体建议以书本知识为主,知识面较详细且有条理,后续可以补上进一步的逻辑思路

没有太多的复习建议,多看几遍应该不会出问题


流水线的意义:

单周期指令执行的时候,每一个组件完成后就闲着等下一条指令,平均闲一个指令时间

会产生大量的浪费,流水线的目的就在于充分利用组件,尽可能减少组件的闲暇时间

而组件执行的时候中间是会有一个寄存延迟的,流水线设置所有延迟为其中最大的那个

因而在执行单指令的时候流水线的效率似乎还不如单周期

但一旦任务量扩大,那么流水线的效率就会明显体现,因为充分利用了各个组件


流水线指令集的特征建议看书,书上比较完整可靠


就设计原则而言,就是以最长的流水线周期计算,包括了延迟时间

例如寄存延迟20NS,流水线80NS,那么至少一个时钟周期就需要100NS设计

然后是关于一些流水线的计算问题:

首先计算N条指令的执行时间,其实就是(第一条指令执行时间+N-1)

当然这个可能会和之前的91页相关内容配合考察,还是要基于理解去思索的

吞吐率就是执行的指令数/执行的总时间

加速比就是流水线下执行的总时间/非流水线状态下执行的总时间(即顺序状态下)

需要会画相应的流程图、流水线时空图、流水线指令序列图

考试比较频繁考察的就是分为五段式的,也是统考唯一考察的方向

每个流水线阶段都会有对应的一个寄存器存在

第一个视频的内容完全可以看PPT和书,足够详细,这里不再赘述


然后这里介绍几个冲突状态:

这里的重复配置也可以指代重复相关部件的配置,或者配置读写口,分离部件功能等

这里需要注意的就是硬件上降低延迟的方式有两种

一种是数据旁路,那么有时候能直接把延迟压为无延迟,一种就是拓展读写口

对于load-use类数据冒险,对书上解释的一点补充:

MEM段结束后,会把从主存中取出的内容放到MEM段和WB段流水之间的寄存器

书上采用了延迟加转发,这里的转发指的就是直接从这个寄存器转发

然后在WB周期内就可以完成并行的写回寄存器以及到新需要用的一个寄存器里面

猜错了的耗费实际上是很大的,所以一旦流水线长度上去,非常难搞

另外的部分建议看书解决,书上的更为详细


五段式流水线及其相关考点:

首先明确一下,有几个表的内容是必然要背下来的,不过用几次就熟悉了

这几个表的内容以及相应的冲突能够详细解释和考虑到,那么才能算是足够了,都要熟悉

三张表是常考内容,每一张都需要彻底熟悉并能和之前的冲突联系起来

其中的一个比较常见的需要注意的事项:

实际上冲突都只能具体情况具体分析,这里顶多只能列举一些常见的可能冲突

关于冲突本身,实际上尽可能还是要结合例子分析,书上的例子+PPT的例子吃透就够了

有问题不如多问问书、百度、PPT


关于高级流水线技术:

实际上说的就是配置多个重复部件,度为N即为配置N个重复部件,可以让N条并行工作

指令的序列是不能改变的,例如1-2-3-4一个指令,不能变为1-2-3-4-1

当然如果是乱序发射的情况,确实可以变为1-3-2-4这样乱序执行,而和原序列无关

这个就是以空间换效率的思路

这个就是把一个机器周期(这里也就是时钟周期,因为机器周期默认等于时钟周期

给进一步拆分为多个周期,即让同一部件在一个周期内多次工作

具体还是看书吧