[理工] 计组 data hazard

楼主: livingforest (ecec780)   2020-08-18 00:41:47
想请问第二小题的是否resolvable by forwarding
我画出来的pipeline和forwarding跟解答不太一样
我的想法是(I1, I3), (I4, I6)的data hazard因为register在同个cycle先写入后读取
所以在第5、第9个cycle时,I3的$t2和I6的$t4可以得到正确的值,不需forwarding
剩下的就如我画出来的
不知道我是不是有什么地方搞错了
https://imgur.com/huDMHMS
https://imgur.com/CVy5kCT
https://imgur.com/42Lk8aQ
作者: NTUmaki (西木野真姬)   2020-08-18 18:32:00
4,6 你想想看 add 什么时候才会写入暂存器? 1,3 我不清楚 他一个是从记忆load 我不确定是不是会比读暂存器还快老师上课说先写后读是针对暂存器那边,内存我记得没说过谁会先 但是牵扯到内存应该比暂存器还慢 所以我觉得他会先拿暂存器旧值,然后才会被load进新值
楼主: livingforest (ecec780)   2020-08-18 21:04:00
add最快在EX产生正确的值,然后到MEM forwarding给sw,可是5,6遇到load use需要stall一个cycle,sw在stall的那个cycle时add将正确的值写入暂存器sw再从暂存器读出,这样不就不需要forwarding了吗?
作者: jason35512 (jason2714)   2020-09-11 14:44:00
13 46间都刚好有一个load use所以会stall一个clock所以那两个都不用fowarding就可以拿到正确的值在先写后读的前提下

Links booklink

Contact Us: admin [ a t ] ucptt.com