我真的很清楚,任何形式的帮助都会非常感激 .
考虑到这个CPU:
我必须:
-
确定完成所有指令所需的总时钟周期数 .
-
自第一条指令开始后6 cc(时钟周期)后确定 ID/EX 寄存器的内容 .
这些是说明:0x450: addi $1, $4, -1
lw $2, 0($1)
lw $3, 0($2)
sw $3, 80($1)
我完成了:完成了:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
addi $1, $4, -1 | IF | ID | EX | M | W | | | | | |
lw $2, 0($1) | | IF | ID | EX | M | W | | | | |
lw $3, 0($2) | | | IF | * | ID | EX | M | W | | |
sw $3, 80($1) | | | | IF | * | * | ID | EX | M | W |
所以我回答了10个时钟周期 .
如果第一个是正确的(我不能确定它是否是),我真的需要一些关于 ID/EX 寄存器内容的帮助 .
提前致谢!
1 回答
您对问题第一部分的回答似乎是正确的 . 当使用Load指令创建RAW危险时,管道将插入气泡(因为该指令的结果仅在管道的MEM阶段之后可用) .
由于您面前有整个管道,因此在周期6之后找出ID / EX寄存器的内容应该不难 . 内容将与存储指令相对应 . 鉴于此,现在弄清楚内容应该相当容易 .