时钟周期和R型命令执行时间

Clock cycle and R-type command execution times

时钟周期需要多少ns,R型指令ADD $1, $2, $3执行需要多长时间,in a:

单周期数据路径

多周期数据路径

流水线数据路径

对于单周期处理器,一个周期的时序和一条指令的时序是同一个值。所有功能都必须能够在同一个周期内发生,所以将所有功能的时序加起来,这既是一个周期可以是的最小时序,也是一条指令的时序。

对于多周期处理器和流水线处理器,周期和指令的时序是分开的,因为指令分布在多个周期。

对于流水线处理器,每个函数(阶段)必须具有相同的循环时间,因为所有阶段都是重叠的。因此,循环时间是各个阶段中的最大值。将该周期时间乘以阶段数,即为一条指令的持续时间。 (同样由于阶段重叠,每条指令都经过每个阶段。)

因此,这给出了一条指令通过整个流水线的时间;然而,由于指令执行重叠,在理想情况下,尽管每个周期在一个周期内经过 5 个流水线阶段,但在理想情况下,每个周期完成一条指令,因此这为加法指令的周期数提供了另一个答案。

多周期,更复杂(与流水线相比),因为没有阶段重叠,就没有真正的要求(1)所有阶段具有相同的持续时间,以及(2)每条指令执行所有阶段。

关于前者,每个阶段的时间可能会有所不同,因为没有理由将任何一个阶段的时间延长到必要的时间。这样做的方法是 运行 一个更快的时钟,并使各个阶段成为该更快时钟的倍数。例如,使用 1ns 时钟,第一阶段可能需要 3 个周期来完成 3ns 的工作,然后分别为 2、2、4 和 2。这使得第一个问题很难回答,因为它问的是时钟速度,在我的示例中必须是 1ns,但也可以是 1/2 ns 或 1/4 ns,只要每个阶段使用尽可能多的周期因为它需要导致那个持续时间。

关于后者,Data Mem阶段与add指令无关,因此很可能被阶段控制单元跳过。在那种情况下,加法指令的时序将只是相关阶段的总和。