使用 5 级流水线 CPU 的给定指令序列所需的时钟周期数是多少?

发布于 2024-12-21 21:43:08 字数 810 浏览 3 评论 0原文

5 级流水线 CPU 具有以下阶段序列:

  • IF – 从指令存储器中获取指令。

  • RD – 指令解码和寄存器读取。

  • EX – 执行:用于数据和地址计算的 ALU 操作。

  • MA – 数据存储器访问 – 对于写访问,在 RD 状态下读取的寄存器为

  • WB – 寄存器写回。

考虑以下指令序列:

I1: L  R0, loc 1       ; R0 <=M[loc1]
I2: A  R0, R0 1        ; R0 <= R0 + R0
I3: S  R2, R0 1        ; R2 <= R2 - R0

让每个阶段占用一个时钟周期。 完成上述序列需要多少时钟周期 指令从I1的取指令开始?

这是我的解决方案。

    1   2   3   4   5   6   7   8   9   10  11  12  13
I1: IF  RD  EX  MA  WB
I2:     IF  -   -   -   RD  EX  MA  WB
I3:         IF  -   -   -   -   -   -   RD  EX  MA  WB

这样我就得到了总共13个周期。我假设由于问题中没有明确提到操作数转发。因此注册仅在 WB 阶段之后可用。但选项如下:

  • A.8
  • B.10
  • C.12
  • D.15

A 5 stage pipelined CPU has the following sequence of stages:

  • IF – Instruction fetch from instrution memory.

  • RD – Instruction decode and register read.

  • EX – Execute: ALU operation for data and address computation.

  • MA – Data memory access – for write access, the register read at RD state is
    used.

  • WB – Register write back.

Consider the following sequence of instructions:

I1: L  R0, loc 1       ; R0 <=M[loc1]
I2: A  R0, R0 1        ; R0 <= R0 + R0
I3: S  R2, R0 1        ; R2 <= R2 - R0

Let each stage take one clock cycle.
What is the number of clock cycles taken to complete the above sequence of
instructions starting from the fetch of I1?

So here's my solution.

    1   2   3   4   5   6   7   8   9   10  11  12  13
I1: IF  RD  EX  MA  WB
I2:     IF  -   -   -   RD  EX  MA  WB
I3:         IF  -   -   -   -   -   -   RD  EX  MA  WB

In this way I'm getting total 13 cycles. I'm assuming that since operand forwarding is not explicitly mentioned in the question. So register will be only available after WB stage. But option are following:

  • A. 8
  • B. 10
  • C. 12
  • D. 15

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人疚 2024-12-28 21:43:08

对于写访问,使用 RD 阶段读取的寄存器 - 这意味着如果我们无法将操作数转发到 MA 阶段。因此,我们可以假设操作数转发可以在其他阶段完成。

有数据转发:

T1 T2 T3 T4 T5 T6 T7 T8

IF RD EX MA WB
-IF RD - EX MA WB
--IF - RD EX MA WB

因此,答案为 8。

http://www.cs.iastate.edu/~prabhu/Tutorial/PIPELINE/forward.html

For Write access the register read at RD stage is used- this means if we cannot operand forwards a value to MA stage. So, we can assume operand forwarding can be done for other stages.

With data forwarding:

T1 T2 T3 T4 T5 T6 T7 T8

IF RD EX MA WB
-IF RD - EX MA WB
--IF - RD EX MA WB

Hence, answer will be 8.

http://www.cs.iastate.edu/~prabhu/Tutorial/PIPELINE/forward.html

灯角 2024-12-28 21:43:08

由于以下行,给定的问题基于结构危险

MA – 数据存储器访问 – 对于写访问,使用 RD 状态下的寄存器读取”,

而不是在数据依赖性,尽管它似乎具有数据依赖性。因此,问题中没有提及数据转发。

结构危险是针对负载指令的。因此,只有在执行第一条指令之后,才能开始执行下一条指令,因为只有在流水线的执行阶段才会计算M[loc1]所引用的内存位置的有效地址。 。因此,直到那时总线将不会被释放,因此无法获取第二条指令。因此第二条指令将花费额外的2个时钟周期

并且只有第一条指令成功地将数据加载到寄存器R0 后,第三条指令才能开始执行。这导致第三条指令具有3个以上时钟周期。

Hence, total clock cycles = (CC for I1) + (CC for I2) + (CC for I3) 
= 5 + 2 + 3
= 10 clock cycles

The given problem is based on structural hazard because of the below line

" MA – Data memory access – for write access, the register read at RD state is used "

and not on data dependency although it seems to have data dependency. And hence, nothing is mentioned about data forwarding in the question.

Structural hazard is for the load instruction. And hence the execution of the next instruction cannot start until the execution of the first instruction, because the effective address of the memory location referred by M[loc1] will be calculated only during the execution phase of the pipeline. So till then the bus will not be freed and hence the second instruction cannot be fetched. Thus second instruction will take extra 2 clock cycles.

And the third instruction cannot start execution till the first instruction successfully loads the data to register R0. Which results the third instruction to have 3 more clock cycles.

Hence, total clock cycles = (CC for I1) + (CC for I2) + (CC for I3) 
= 5 + 2 + 3
= 10 clock cycles
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文