[理工] [计组] 白算盘习题4.15(control hazard)

楼主: WishingTree (Tree)   2022-01-12 14:21:48
最近在做白算盘的习题~
对4.15题的解答感到疑惑@@
题目:
https://i.imgur.com/1c7q6C3.png
解答:
https://i.imgur.com/W0eYkaY.png
4.15.1的题目说"Assume that branch outcomes are determined in the EX stage, that
there are no data hazards, and that no delay slots are used"
我想说是否跳跃既然是在EX stage才决定
那假如预测错误的话,不就是要把已经进入IF stage和ID stage的指令flush掉吗@@
这样应该是两个stalls
但解答却说会造成三个stalls
有点不能理解为什么是三个stalls > <''
作者: BusterButter (奶油巴斯特)   2022-01-12 15:55:00
需要花三个cycle计算branch,到下一个cycle的时候,branch指令进入MEM阶段,这时候他才能告诉前面的stage把指令flush掉,这时候已经有三个指令在前面,所以一个misprediction会造成3个cycle的stall
作者: try66889 (小皮)   2022-01-12 19:37:00
楼上B大不好意思,但如果是这样的话,原本beq在mem才判断时,应该会有4个bubbles产生?但我记得在mem stage判断的时候只会有3个bubbles @@还是我有哪里没注意到的地方呢? 谢谢 > <
作者: foogty (夫葛踢)   2022-01-12 21:01:00
如果我的理解没错的话,课本这张图可以参考一下,可以看到在mem stage才决定下一阶段的PCSrc,至于题目说的assume branch out come determine at Ex stage 我认为他说的是判断branch的结果,而在mem stage才将结果传到pc srchttps://i.imgur.com/p2tu1GS.jpg下面这张是实际的范例https://i.imgur.com/e67SgER.jpg
作者: jacksoncsie (资工肥宅)   2022-01-12 21:48:00
我刚看了一下,branch 的确是在 exe 算完没错,但因为要平衡 stage latency 会移 and gate 至 mem所以这题基本上就是原本 branch prediction 的版本stall 3 cycles 没毛病
作者: try66889 (小皮)   2022-01-13 00:23:00
https://i.imgur.com/dlBpcJT.jpghttps://i.imgur.com/zdn4TJB.jpg不过一样的句子张凡这边的解答是写stall两个cycle耶 > <都是branch outcome are determined in the EX stage
作者: jimmy1112111 (仔仔)   2022-01-13 01:57:00
101交大也有类似的问题,而凡哥对于要flush个数的答案分别是3个cycle和1个cyclehttps://i.imgur.com/xvRWZ24.jpghttps://i.imgur.com/zom8nHS.jpg所以凡哥的看法determine in ID -> flush 1determine in EXE -> flush 2determine in MEM -> flush 3建议照张凡的,因为他完全以考试为主
作者: foogty (夫葛踢)   2022-01-13 11:10:00
1. 题目没说的话是默认在mem stage 决定没错2. 我觉得是叙述理解问题,这边是白算盘4.5节control hazard 介绍部分,可以看到课本把determine outcome 跟the branch knows what address to fetch 视作两个动作https://i.imgur.com/m2BIfcN.jpg4.8节 reduce the delay of branch 部分,课本也选择使用next PC select in mem 来说明https://i.imgur.com/FJtov48.jpg如果是交大考卷出determine at exe stage 的话建议是可以按照原文书来做,如果要释疑附上原文书的来源也较可能成功,至于其他学校的话我就不太清楚了,以上是个人浅见抱歉,补一下图https://i.imgur.com/xkSNQ8b.jpg
作者: try66889 (小皮)   2022-01-13 11:38:00
感谢楼上各位大大~有比较清楚惹!

Links booklink

Contact Us: admin [ a t ] ucptt.com