题干本题共包含 4 个小题

假定最复杂的一条指令所用的组合逻辑分成6块,依次为A~F,其延迟分别为80ps、30ps、60ps、50ps、70ps、10ps。在这些组合逻辑块之间插入必要的流水段寄存器就可实现相应的指令流水线,寄存器延迟为20ps。理想情况下,以下各种方式所得到的时钟周期、指令吞吐率和指令执行时间各是多少?应该在哪里插入流水线寄存器?

简答题1

插入一个流水段寄存器,得到一个两级流水线

正确答案

两级流水线的平衡点在C和D之间,其前面一个流水段的组合逻辑延时为80+30+60=170ps,后面一个流水段的组合逻辑延时为50+70+10=130ps。这样每个流水段都以最长延时调整为170+20=190ps,故时钟周期为190ps,指令吞吐率为1/190ps=5.26GOPS,每条指令的执行时间为2x190=380ps。

答案解析

简答题2

插入两个流水段寄存器,得到一个三级流水线

正确答案

两个流水段寄存器分别插在B和C、D和E之间,这样第一个流水段的组合逻辑延时为80+30=110ps,中间第二段的时延为60+50=110ps,最后一个段延时为70+10=80ps。这样每个流水段都以最长延时调整为110+20=130ps,故时钟周期为130ps,指令吞吐率为1/130ps=7.69GOPS,每条指令的执行时间为3x130=390ps。

答案解析

简答题3

插入三个流水段寄存器,得到一个四级流水线

正确答案

三个流水段寄存器分别插在A和B、C和D、D和E之间,这样第一个流水段的组合逻辑延时为80ps,第二段时延为30+60=90ps,第三段时延为50ps,最后一段延时为70+10=80ps。这样每个流水段都以最长延时调整为90+20=110ps,故时钟周期为110ps,指令吞吐率为1/110ps=9.09GOPS,每条指令的执行时间为4x110=440ps。

答案解析

简答题4

吞吐量最大的流水线

正确答案

因为所有组合逻辑块中最长延时为80ps,所以,达到最大可能吞吐率的划分应该是以一个流水段延时为80ps+20ps来进行,因此,至少按五段来划分,分别把流水段寄存器插在A和B、B和C、C和D、D和E之间,这样第一段的组合逻辑延时为80ps,第二段为30ps,第三段为60ps,第四段为50ps,最后一段为70+10=80ps。这样每个流水段都以最长延时调整为80+20=100ps,故时钟周期为100ps,指令吞吐率为1/100ps=10GOPS,每条指令的执行时间为5x100=500ps。

答案解析