【问题标题】:Clock cycle and R-type command execution times时钟周期和 R 型命令执行时间
【发布时间】:2021-02-23 08:26:51
【问题描述】:

时钟周期需要多长时间,以ns为单位,R型命令ADD $1, $2, $3执行需要多长时间,in a:

单周期数据路径

多周期数据路径

流水线数据路径

【问题讨论】:

    标签: mips cpu-architecture


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

    • 在流水线CPU中(如图所示有旁路转发),后面的指令可以使用add $1, $2, $3在ALU阶段运行后的循环中的结果。此外,在到达 ALU 阶段之前,它不需要准备好输入。所以你可以说它是一个单周期指令(吞吐量和延迟)。谈论管道的整个长度与 ADD 无关。
    • 关于多周期实现的时钟的要点。我们不知道这些是否只是最大关键路径长度(但限制为与流水线相同的时钟速度),或者这些是否是执行期间花费的实际时间。像这样的事情(以及缺乏尝试/努力)是我否决这个问题的原因。但是由于您发布了一个有趣的答案,我再次编辑以内联图像。
    猜你喜欢
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    相关资源
    最近更新 更多