作者Aa841018 (andrew)
看板Grad-ProbAsk
标题[理工] 95台大计组!
时间Tue Nov 19 07:51:58 2019
https://i.imgur.com/dHBtdRG.jpg
这题想好久还是卡卡的,能够forwarding代表只有load-use需要stall,後面提到branch
在ID决定,所以也要stall,这我也认同,可是应该要stall两个吧?
bne和subi差一个指令,stall一个的结果,一个在Mem一个在ID,连暂存器都还没读取,
应该不可能救吧?
那唯一做法不是stall两个,等到WB写回吗?
不知道我是否理解有误?
然後我真的想不通为什麽BNE下面还要塞一个stall.....没有data dependency吧?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 39.8.13.63 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1574121120.A.314.html
1F:推 mistel: 1.subi在ex就做完结果,但是到了mem才有forwarding unit11/19 08:19
2F:→ mistel: 可以救,这之间需要stall一个cycle11/19 08:19
3F:推 mistel: bne後面还有一个IF抓进来的指令被flush掉也算一个stall11/19 08:21
4F:推 shinle14: 是只要bne放在最後一行,都要多一个stall吗?11/19 09:57
5F:→ Aa841018:可是这样不就是Mem forward ID,但forwarding应该无法在ID stage做吧
?
※ 编辑: Aa841018 (39.8.13.63 台湾), 11/19/2019 15:35:57
6F:推 mistel: 所以张凡有讲在MEM到ID有再拉一条线去拯救在ID的分支指令 11/19 17:00
7F:→ mistel: ,不过我找不到电路图 11/19 17:00