从单周期处理器到流水线处理器

从单周期处理器到多周期处理器

单周期CPU在某一时间段内,只有少部分的部件在工作。为了增加CPU的工作效率,我们引入流水线。

从实现形式上来看,是将一段组合逻辑按照功能划分为若干阶段。各功能阶段的组合逻辑之间插入时序器件(通常是触发器),前一阶段的组合逻辑输出接入该器件的输入,该器件的输出接入后一阶段组合逻辑的输入。

如何划分流水线涉及的内容过多、过深、过细。这里我们直接采用经典的单发射五级流水线来划分。这五级流水线分别是:

取值(IF)、译码(ID), 执行(EXE), 访存(MEM), 写回(WB)

取值:取出指令

译码:解析指令,生成控制信号、读通用寄存器堆生成源操作数

执行:运算

访存:取回访存的结果

写回:将结果写入通用寄存器堆

流水级缓存

两个相邻的流水阶段之间需要一个触发器,其内容分为控制内容和数据内容。

目前控制内容只需要包括1bit的缓存有效位(valid)。

数据内容包括一个信号从产生的流水线阶段到使用它的流水线阶段中的缓存都要储存这个信号。

同步读RAM

之前我们通过异步读RAM来实现指令RAM和数据RAM,现在我们来调整回同步读RAM。

我们考虑将指令RAM的访问分布到流水线中连续的两个阶段:在更新PC的阶段发起指令RAM的读请求,即把IF阶段分成两部分,数据RAM同指令RAM,在EXE阶段时发出,MEM阶段时返回