gpt4 book ai didi

assembly - 为什么这段汇编代码在管道中有 2 个停顿而不是 1 个?

转载 作者:行者123 更新时间:2023-12-01 09:24:45 24 4
gpt4 key购买 nike

详细说明一下主要问题,为什么第三行在Register2已经写回后一个时钟周期才执行?我认为管道中应该只有 1 个档位。但我错了。是否只是由于 LOAD 和 STORE 标签的某些质量导致我们不得不拖延一个额外的周期?我只是有点困惑。这是代码块:

ADD R2, #4
LSL R4, #5
LDR R1, [R2]
LDR R3, [R2]
SUB R5, #2
SUB R6, #3

我们必须制作一个 5 阶段管道图来显示数据风险。图中有2个危险。

Image of 5 stage pipeline process

friend 发送的过去作业的图片,该作业得到了正确的答案。

我正在添加同一作业中不同问题的代码。评论里面是正确的流程。

@ CLOCK CYCLE      1     2     3     4      5     6      7     8
STR R2, [R5] @IF -> ID -> EX -> MEM -> WB
STR R3, [R6] @ IF -> ID -> EX -> MEM -> WB
MUL R4, R1, R2 @ IF -> ID -> NOP -> EX -> MEM -> WB

这里只有一个摊位。

最佳答案

更新:根据评论,似乎我的分析是错误的。所以我删除了自己的分析。

您可以在此处模拟管道: http://www.ecs.umass.edu/ece/koren/architecture/windlx/main.html

Pipeline

这显示了正常 classic-RISC (MIPS) pipeline 的 1 个失速周期。有联锁但无旁路转发。

关于assembly - 为什么这段汇编代码在管道中有 2 个停顿而不是 1 个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49396712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com