[理工] [计组] forwarding unit

楼主: kyuudonut (善良老百姓)   2016-08-03 21:42:32
晚安 各位
张凡上完 forwarding unit 时有补充
课本在下图忘记补了 2-1 MUX (P-479)
补上了应该是这下图这样? 张凡说直接补
但这样设计跑以下的 code:
#1 add t0, s5, s6
#2 lw t0, 0(s2)
====== 当 #1 在 MEM stage,#2 在 EX stage ===
ALUrc 设1
lw此时的 rt -> t0, rs -> s2
因为 #1 的 rd 是 t0
且和 EX stage 的 rt 相同 -> 故 forwarding unit 启动
ALU 最后却挑了 #1 的 t0 读进去,原本的 immediate 被忽略掉 0.0
而导致资料不正确
想确认一下我的想法有没有疏漏的地方?
作者: ken52011219 (呱)   2016-08-04 11:11:00
其实我看不太懂意思 但我觉得你误会 forwarding unit是会造成 datahazard的原因@@?会造成forwading unit启动的原因 主要是 当 add在ex执行s5+s6时 lw 已经需要t0在add运算完后的值此时forwarding 启动 并在 add MEM STAGE 时 提前将s5+s6的值拉回来只要 ALU 下方input 的前面的多工器Mux 接在01的pin即可, 而 我有点忘记张凡那本怎么画整个PIPELINE但 FORWARDING 的图中 前面那个多工器的 OUTPUT又再接一颗多工器判定是否是要传到MEM'S WRITE DATAGOOGLE FORWARDING UNIT的图片第二张 就是我再讲的等我个http://i.imgur.com/q46e7an.jpg 铅笔路径就是这次所用到的黄色和铅笔的使用差别 在于instruction 隔一行还是两行吧 我想其实在第四章开头就有说到 这是抽象化设计 会将系统底层的细节暂时隐藏 所以我们看到的东西都是简化过的诶靠 哈哈 想成SW了 抱歉抱歉睡昏去了

Links booklink

Contact Us: admin [ a t ] ucptt.com