接上次,我们简单的说了一下单周期的理解,下面我们说一下多周期。
单周期每一条指令都是一个时钟周期结束。但是不同类型的指令可能进行的步骤不同,导致最终CPU的频率上不去,这是由于木桶原则,时钟必须大于最长一条指令完成的时间。
而在多周期的设计中,我们将一条指令的执行分解成为多个部分,不同部分的每个时钟从上一级寄存器中读入数据,进行计算,然后将数据送入下一级寄存器。这样一条指令就有多个时钟周期完成。每个时钟周期完成指令中的一部分操作。
在多周期的设计中,基本与单周期相同,只是要将单周期数据通路中的纯组合电路(注意,在单周期设计中不包含存储的都是组合电路)在不同级中间加一个寄存器,使每一级计算出数据后都可以把数据写入到寄存器以供下个时钟上升沿到来时下一级从中读取输入。
而多周期需要一个部件就是一个状态机,用状态机来控制当前指令到一个指令的执行部位(即有效数据正在从哪一级流向哪一级),然后输出该级运算的状态控制信号来控制数据通路。
多周期同时要注意直接跳转和跳转分支的执行,状态机在此处注意状态的正确转移。(由于他们的状态不一致)
全部0条评论
快来发表一下你的评论吧 !