参考《CS:APP》,其中大部分思想均直接摘录,加入我自己的理解。
PC的设计与流水线
1、SEQ
SEQ的设计是取址、译码、执行、访存、写回、更新PC
【问题】:时钟必须非常慢,以使信号能在一个周期内传播过所有阶段。从更新过的PC开始,要读取指令,从寄存器读取栈指针,ALU要减小栈指针,还要从存储器中读出返回地址。这一切都要在一个周期结束之前完成。
这种实现方法不能充分利用硬件单元。因为每个单元只在整个时钟周期的一部分时间内才被使用。为了引入流水线,需要对PC作修改
![image image](http://hi.csdn.net/attachment/201104/14/0_1302753834xWHM.gif)
2、SEQ+
SEQ+只是把PC已到了时钟开始之前。它同样计算当前PC,然后与SEQ一样取指然后继续下去。但是不同的是,