计算机组成与结构课后习题

一、 选择


1、动态流水线一定是多功能流水线

A 正确

B 错误


2、线性流水线数据在流水线中的各个功能段通过时,每个功能段都通过一次,并且仅仅通过一次。

A 正确

B 错误


3、流水线的段数越多,其性能越高。

A 正确

B 错误


4、数据相关又称局部相关。

A 正确

B 错误


5、顺序流动方式,不会发生写-写相关。

A 正确

B 错误

二、 问答题


1、指令执行过程采用顺序方式、一次重叠方式和流水线方式,它们的主要差别是什么?各有什么优点和缺点?




2、假设一条指令的执行过程分为"取指令"、"分析"和"执行"三段,每一段的时间分别为△t、2△t和3△t。在下各种情况下,个别写出连续执行n条指令所需要的时间表达式。
(1) 顺序执行方式。
(2) 仅"取指令"和"执行"重叠。
(3) "取指令"、"分析"和"执行"重叠。




3、在一台单流水线多操作部件的处理机上执行下面的程序,取指令、指令译码各需要一个时钟周期,MOVE、ADD和MUL操作各需要2个、3个和4个时钟周期。每个操作都在第一个时钟周期从通用寄存器中读操作数,在最后一个时钟周期把运算结果写到通用寄存器中。
k :MOVE R1, R0 ;R1 ← (R0)
k+1:MUL R0, R2, R1 ;R0 ←(R2)×(R1)
k+2:ADD R0, R2, R3 ;R0 ←(R2)+(R3)
(1) 就程序本身而言,可能有哪几种数据相关?
(2) 在程序实际执行过程中,有哪几种数据相关会引起流水线停顿?
(3) 画出指令执行过程的流水线时空图,并计算执行完这三条指令共使用了多少个时钟周期。




4、用一条5个功能段的浮点加法器流水线计算F= 。每个功能段的延迟时间均相等,流水线的输出端与输入端之间有直接数据通路,而且设置有足够的缓冲寄存器。要求用尽可能短的时间完成计算,画出流水线时空图,计算流水线的实际吞吐率、加速比和效率。




5、设有一个15000条指令的程序在一台时钟速率为25MHz的线性流水线处理机上执行。假设该指令流水线有5段,并且每个时钟周期发射一条指令。忽略由于转移指令和无序执行造成的损失。
(a) 用该流水线执行这一程序,并用流过延迟与其相等的一个等效非流水线处理机执行同一程序,将两者加以比较,并计算其加速比。
(b) 该流水线处理机的效率和吞吐率是多少?



6、一条线性流水线有4个功能段组成,每个功能段的延迟时间都相等,都为Δt。开始5个Δt,每间隔一个Δt向流水线输入一个任务,然后停顿2个Δt,如此重复。求流水线的实际吞吐率、加速比和效率。



7、在下列不同结构的处理机上运行8×8的矩阵乘法C=A×B,计算所需要的最短时间。只计算乘法指令和加法指令的执行时间,不计算取操作数、数据传送和程序控制等指令的执行时间。加法部件和乘法部件的延迟时间都是3个时钟周期,另外,加法指令和乘法指令还要经过一个"取指令"和"指令译码"的时钟周期,每个时钟周期为20ns,C的初始值为"0"。各操作部件的输出端有直接数据通路连接到有关操作部件的输入端,在操作部件的输出端设置有足够容量的缓冲寄存器。
(a) 处理机内只有一个通用操作部件,采用顺序方式执行指令。
(b) 单流水线标量处理机,有一条两个功能的静态流水线,流水线每个功能段的延迟时间均为一个时钟周期,加法操作和乘法操作各经过3个功能段。
(c) 多操作部件处理机,处理机内有独立的乘法部件和加法部件,两个操作部件可以并行工作。只有一个指令流水线,操作部件不采用流水线结构。
(d) 单流水线标量处理机,处理机内有两条独立的操作流水线,流水线每个功能段的延迟时间均为一个时钟周期。
(e) 超标量处理机,每个时钟周期同时发射一条乘法指令和一条加法指令,处理机内有两条独立的操作流水线,流水线的每个功能段的延迟时间均为一个时钟周期。
(f) 超流水线处理机,把一个时钟周期分为两个流水级,加法部件和乘法部件的延迟时间都为6个流水级,每个时钟周期能够分时发射两条指令,即每个流水级能够发射一条指令。
(g) 超标量超流水线处理机,把一个时钟周期分为两个流水级,加法部件和乘法部件延迟时间都为6个流水级,每个流水级能够同时发射一条乘法指令和一条加法指令。
解释: 要完成上面的矩阵乘法,我们可以计算需要完成的各种操作的数量(假定A和B都是8×8的矩阵。C语言代码如下:
int k;
 for(int i=0;i<8;i++)
  for(int j=0;j<8;j++)
   { sum=0; for(k=0;k<8;k++)
    { sum+=A[i][k]×B[k][j]
    } C[i][j]=sum;
   }
需要完成的乘法数目为8×8×8=512次;
需要完成的加法数目为8×8×7=448次;