首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算机体系结构管道档

计算机体系结构管道档
EN

Stack Overflow用户
提问于 2016-11-03 09:31:54
回答 3查看 827关注 0票数 2

首先,为我糟糕的英语感到抱歉。这个问题是我的“计算机建筑”课程教材中的一个问题。我已经在网上找到了答案,但仍然找不到细节。

以下是五个阶段(获取、解码、执行、内存、写入)单管道微体系结构中的指令阶段,没有转发机制。所有操作都是一个周期,除了LW和SW为1+ 2,分支为1+1。

代码语言:javascript
复制
Loop:             C1  C2  C3  C4  C5  C6  C7  C8  C9  C10 C11 C12 C13 C14 ...
LW   R3, 0(R0)    F   D   E   M   -   -   W
LW   R1, 0(R3)        F   D   -   -   -   E   M   -   -   W
ADDI R1, R1, #1           F   -   -   -   D   -   -   -   E   M   W
SUB  R4, R3, R2                           F   -   -   -   D   E   M   W
SW   R1, 0(R3)                                            F   D   W   M   ...
BNZ  R4, Loop                                                 F   D   E   ...
...

我有几个问题:

  1. 为什么第二指令可以在C2中启动D?正如我所了解的,D阶段包括“注册读取”,但以前的指令直到R3才写回C7。
  2. 与上一次类似,是什么原因导致第三次C7开始,E从C11开始?
  3. 为什么第四阶段必须从C7而不是C4开始呢?

这个问题源于“计算机体系结构:定量方法5e”一书,示例3.11。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-03 12:12:04

经典RISC管道wiki文章非常好。如果你还没查过的话。

  1. 为什么第二指令可以在C2中启动D?D包括reg-read,但以前的指令直到R3才写回C7。

我不确定,我没有花太多时间在经典的RISC管道上。基于我们所看到的这个和ADDI,它看起来像是寄存器-读发生在E阶段。

这很好地解释了E的延迟,直到上次加载的回写。如果您确信read应该发生在您正在研究的管道的D阶段,那么这个解决方案与您的管道不匹配;对于另一个直到执行才读取寄存器的管道,它是正确的。

第三阶段D从C7开始,E从C11开始?

流水线的D级被以前的指令所占据,直到C7,在这一点上它可以解码。

R1直到循环11才准备就绪,此时数据可以被转发。从上一条指令的内存阶段开始,所以ADDI的执行可以与前一条指令中的写回并行进行。这被称为“旁路”。

旁路可以让ALU操作以一个周期延迟运行,因此您可以在下一条指令中使用ADD的输出,而无需中断。

  1. 为什么第四阶段必须从C7而不是C4开始?

因为前面的指令在提取阶段被停止了,而且它是一个有序的管道;没有无序的执行。

票数 0
EN

Stack Overflow用户

发布于 2016-11-03 11:39:38

看起来,在执行与内存相关的操作(LW)时,管道会冻结整个系统,但我想不出为什么ADDI不能在C4中执行其解码。我并不是说load操作冻结整个执行是有效的,但这似乎是“唯一”的逻辑解释。

指令2可以在C3中执行它的解码,但它必须等到指令1将其数据写回R1之后。这就是为什么第二条指令的执行被推迟到C7

顺便问一下,当你说你在“网络”上找到答案时,这是一个可信的来源吗?

票数 1
EN

Stack Overflow用户

发布于 2016-12-29 19:40:41

为什么第二指令可以在C2中启动D?D包括reg-read,但以前的指令直到R3 C7.才会回写。

Ans --这是因为MIPS中的译码器阶段有两个部分/子阶段。

DEC =解码+ RR(寄存器读取)

指令可以被解码,也就是说,操作码可以被读取和解码,但是,由于在这种情况下依赖,RR将暂停到第一个加载指令执行(从内存中获取R3 ),并且在C7中进行简单的转发,下一个负载可以执行。

为了避免结构危害,对两个子阶段的解码阶段进行了分解。如果您再读一次“计算机体系结构:定量方法”的图表,您将看到一条虚线和一条实线,这两条线是有意绘制以显示整体工作的2部分(解码OPCODE + REG REG READ)。

另外两个问题我同意“彼得·科德斯”

希望这能有所帮助。贾敏

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40397993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档