【发布时间】:2021-08-19 17:22:09
【问题描述】:
有人可以根据提供给该问题的解决方案手册向我解释为什么指令 I5 的发布时间是第 6 周期而不是第 5 周期。
注意:1)问题及其已发布的解决方案在下面提到 2)这个问题是 Udacity 计算机体系结构课程问题集的一部分
问题:
使用 Tomasulo 算法,对以下每条指令 序列确定何时(在哪个周期,从开始计数)它 发出,开始执行,并将其结果写入 CDB。认为 一条指令的结果可以写在它之后的循环中 完成其执行,并且依赖指令可以(如果 selected) 在之后的循环中开始执行。执行 所有指令的时间都是两个周期,除了乘法 (需要 4 个周期)和除法(需要 8 个周期)。这 处理器有一个乘法/除法单元和一个加法/减法单元。这 乘法/除法单元有两个保留站和加法/减法 单位有四个预约站。没有一个执行单元是 流水线——每条指令一次只能执行一条指令。如果 选择时发生使用执行单元的冲突 应该开始执行哪条指令,较旧的指令( 在节目顺序中较早出现的节目)具有优先权。如果发生冲突 对于 CBD 的使用,加/减单元的结果有 优先于乘法/除法单元的结果。假设在 开始所有指令已经在指令队列中,但是没有 尚未发给任何预订站。处理器可以 每个周期只发出一条指令,并且只有一个 CDB 用于 写结果。在处理器中处理异常的一种方法 上述将简单地删除所有指令 保留站和指令队列,将所有 RAT 条目设置为 指向寄存器文件,并尽快跳转到异常处理程序 尽可能(即在除以零之后的循环中 被检测到)。 1)找出每条指令的周期时间, 执行和写回阶段。 2)将打印什么 如果以这种方式处理异常,则异常处理程序?
提供的解决方案:
时序图
第二个问题的答案
异常发生在第20个周期,所以我们开始执行异常处理程序的周期 是第21个周期,那个时候处理器已经完成了指令I1-I4,但是也完成了 指令 I6 和 I10。结果,寄存器文件中的寄存器 F4 将有 I10 的结果, 这是-1(5-6)。异常处理程序会打印 2,0、-2、-1,这是不正确的。
【问题讨论】:
-
原题没有段落吗?那是一堵文字墙。
-
没有 @PeterCordes 我只是复制并粘贴了课程中出现的问题
标签: cpu-architecture