第 二 章
在一台单流水线多操作部件的处理机上执行下面的程序,每条指令的取指令、指令译
码需要一个时钟周期, 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) 画出指令执行过程的流水线时空图,并计算完成这 3 条指令共需要多少个时钟周
期?
解:(1)就程序本身而言,可能有三种数据相关。若 3 条指令顺序流动,则 k