【问题标题】:Pipeline Hazards questions管道危害问题
【发布时间】:2013-12-15 13:02:04
【问题描述】:

我目前正在准备明天的考试,需要一些帮助来理解以下内容:


给出以下程序:

ADDF R12、R13、R14

添加 R1,R8,R9

MUL R4,R2,R3

MUL R5,R6,R7

添加 R10,R5,R7

添加 R11,R2,R3

如果架构具有以下特点,则找出可能出现的潜在冲突:

a) 没有管道

b) 管道

c) 多个管道


因此,对于 (b),我会说第 5 行的指令是数据危害,因为它会根据乘法的结果从前一行获取 R5 的值,因此该指令尚未完成。

但是如果架构没有管道会发生什么?我最好的猜测是不存在危险,但我不确定。

另外,如果它有 2 个或更多管道会发生什么?

干杯。

【问题讨论】:

    标签: mips pipeline


    【解决方案1】:

    您认为 a) 没有危险是正确的,因为每条指令都必须在下一次开始之前完成。

    对于 b):

    • 第 4 行和第 5 行之间存在“Read After Write”依赖关系。
    • 第 4 行和第 5 行之间以及第 2 行和第 6 行之间存在“Read After Read”依赖关系。

    我怀疑 b) 部分和 c) 部分之间的区别在于,问题假设您提前知道管道具有明确定义的阶段数。例如,我们知道如果管道有 3 个阶段,那么第 2 行和第 6 行之间的 RAR 依赖关系是不相关的。

    在具有多个流水线的系统中,但是系统可以在每个周期获取 4 条指令,这使得原本相距太远的依赖关系现在成为潜在的危险。

    【讨论】:

    • 我相信 (c) 意味着并行流水线。
    • RAR 不一定是危险的,但它是一个依赖项
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2016-07-22
    • 2023-04-03
    • 2019-10-14
    • 1970-01-01
    相关资源
    最近更新 更多