MIPS流水线

来源:互联网 发布:c语言在线编译器提交 编辑:程序博客网 时间:2024/04/28 06:15

 MIPS通常包含5个步骤,5级流水:

1.存储器取指令

2.指令译码同时读寄存器

3.执行操作或计算地址

4.在数据存储器中读取操作数

5.结果写回寄存器

针对流水线设计的指令集:

1.所有指令具有相同的长度。简化了取指令和指令译码。x86中指令长度不等。

2.只有几种指令格式。每条指令源寄存器字段保持不变。确保指令类型确定的同时,读取寄存器堆。否则,需要把译码和读寄存器堆分级。

3.堆内存的操作仅出现在存取操作中。意味着在指令执行级得到的内存地址,可以接着在下一级访问内存。

4.内存中操作数必须对齐。

流水线冒险:

冒险:在下一个时钟周期中下一条指令不能执行。

1.结构冒险。硬件不支持多条指令在同一时钟周期内执行。

2.数据冒险。一个操作必须等待另一个操作完成后才能执行时,流水线必须停顿。解决方法:数据定向/旁路。

3.控制冒险。处理器需要根据一条指令的结果做出决策,其它指令可能还在执行中。解决方法:分支预测/延迟决定。

0 0
原创粉丝点击