前面讲过超标量的概念。超标量的目的就是实现指令级并行(Instruction Level Parallelism),来解决stall太多的问题。理想情况下我们希望能有这么一个pipeline:
其中IF ID肯定只能是顺序执行(in order)的。MEM WB这部分也要顺序执行,毕竟指令的完成顺序不能乱嘛。
但是中间指令执行的环节其实可以乱序执行(out of order),这样就可以减少指令之间的依赖,尽量避免stall的问题了。
...
前面讲过超标量的概念。超标量的目的就是实现指令级并行(Instruction Level Parallelism),来解决stall太多的问题。理想情况下我们希望能有这么一个pipeline:
其中IF ID肯定只能是顺序执行(in order)的。MEM WB这部分也要顺序执行,毕竟指令的完成顺序不能乱嘛。
但是中间指令执行的环节其实可以乱序执行(out of order),这样就可以减少指令之间的依赖,尽量避免stall的问题了。
...