首页 文章

在MIPS中组织管道

提问于
浏览
3

我不确定以下属性如何影响5阶段MIPS设计(IF,ID,EX,MEM,WB)的管道执行 . 我只需要一些清理工作 .

  • 只有1个内存端口

  • 没有数据发送 .

  • 分支停止直到*阶段结束

1个内存端口是否意味着当我们读取/写入mem时无法获取或写入(即lw上的MEM阶段,sw不能进入IF或其他MEM)?如果没有转发,这意味着指令不会进入ID阶段,直到WB阶段之后或之前,它依赖于前一条指令? Idk分支摊位意味着什么

1 回答

  • 2

    一个常见的假设是,你可以循环 write in the first half ,循环 read in the second half .

    让我们说 I1 是你的第一条指令, I2 是你的第二条指令, I2 正在使用 I1 正在修改的寄存器 .

    • Only 1 memory port . 这意味着您不能在管道的两个不同阶段同时存储 read or write 内存 . 例如,如果 I1 位于 MEM 阶段,则另一条指令 cannot 同时位于 IF 阶段,因为两者都需要内存访问 .

    • No data forwarding. 数据转发反映了这样一个事实:在 EX 阶段 I1 的末尾,您将数据转发到 I2ID 循环 . 因此, no forwarding 表示管道必须等待 I1WB 阶段进入 I2 阶段 I2 . 使用asumption,您可以在前一条指令的 WB 阶段同时进入 ID 阶段,因为 WB 将在循环的前半部分写入内存,而 ID 将在循环的后半部分从内存中读取 .

    • Branch stalls until end of EX stage. 这是一个常见的假设,不使用 branch prediction techniques . 它只是说一个分支后的指令必须等到 end of EX stage 开始 ID 阶段 . 回想一下,只有在分支指令的 EX 阶段才能知道要执行的下一条指令的地址 .

相关问题