在一台单流水线多操作部件的处理机上执行下面的程序,取指令、指令译码各需要一个时钟周期,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) |
画出指令执行过程的流水线时空图,并计算完成这3条指令共需要多少个时钟周期?
解: 该指令流水线由六个功能组成,分别为:段取指、译码、取数、运一、运二和存数。因此,
流水线时空图:
答: 3条指令顺序流动,共需要9个时钟周期。