5.在一条单流水线多操作部件的处理机上执行下面的程序,取指令、指令译码各需要一个时钟周期, MOVE、ADD和MUL操作各需要2个、3个和4个时钟周期。每个操作都在第一个时钟周期从通用寄存器中读操作数, 在最后一个时钟周期把运算结果写到通用寄存器中。 K: MOVE RI, R0 ;R1←(R0) K+1: MUL R0, R2, R1 ;R0←(R2)*(R1) K+2: ADD R0, R3, R2 ;R0←(R3)+(R2) 画出指令执行的流水线时空图,并计算执行完三条指令共使用了多少个时钟周期。
时间: 2023-12-06 14:43:51 浏览: 30
指令执行的流水线时空图如下:
| 时钟周期 | 操作 | 取指令 | 指令译码 | 操作1:MOVE RI, R0 | 操作2:MUL R0, R2, R1 | 操作3:ADD R0, R3, R2 |
|----------|----------------|--------|----------|---------------------|-----------------------|---------------------|
| 1 | | IF | ID | | | |
| 2 | | | | EX | IF | |
| 3 | | | | MEM | EX | IF |
| 4 | | | | WB | MEM | EX |
| 5 | IF | | | | WB | MEM |
| 6 | ID | IF | | | | WB |
| 7 | EX(MOVE) | ID | IF | | | |
| 8 | MEM(MOVE) | EX | ID | | | |
| 9 | WB(MOVE) | MEM | EX | | | |
| 10 | IF | WB | MEM | EX | | |
| 11 | ID | IF | WB | MEM | | EX |
| 12 | EX(MUL) | ID | IF | WB | | |
| 13 | MEM(MUL) | EX | ID | | WB | |
| 14 | WB(MUL) | MEM | EX | | | |
| 15 | IF | WB | MEM | EX | ID | |
| 16 | ID | IF | WB | MEM | EX | |
| 17 | EX(ADD) | ID | IF | | | WB |
| 18 | MEM(ADD) | EX | ID | | | |
| 19 | WB(ADD) | MEM | EX | | | |
共使用了19个时钟周期。