作者eecheng87 (EEcheng)
看板Grad-ProbAsk
标题[理工] 计组pipeline branch predict
时间Sun May 26 12:37:18 2019
想问一题出现在白算盘4.15的题目
https://i.imgur.com/M8CMz7h.jpg
题目大概是在问如果用不同的predict方法,会造成几个额外的cycle
而可以在ex知道branch的结果
提供的答案是
https://i.imgur.com/KCzqNSA.jpg
需要额外3个,但我觉得是两个
下面用always not taken猜法
branch. F D E M W
猜not taken. F D E M W
下个指令 F D E M W
此刻知道 F D E M W
branch结果
所以清掉前两个
cycle的东西
但是答案说是三个,想请问为神麽
编辑: 上面cycle图因为手机排版,我想表达的是每条指令都差一个cycle
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.236.38.212
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1558845440.A.693.html
※ 编辑: eecheng87 (36.236.38.212), 05/26/2019 12:38:50
※ 编辑: eecheng87 (36.236.38.212), 05/26/2019 12:40:45
※ 编辑: eecheng87 (36.236.38.212), 05/26/2019 12:42:14
※ 编辑: eecheng87 (36.236.38.212), 05/26/2019 12:42:40
※ 编辑: eecheng87 (36.236.38.212), 05/26/2019 12:43:24
1F:推 b10007034: 我想你的想法跟pg.320搞混了,这边算是比较tricky的地 05/26 20:24
2F:→ b10007034: 方,pg.320可以用这样的方法为什麽前面提到的不行? 05/26 20:25
3F:→ b10007034: 你可以仔细观察一下,文字(pg.318)提到flush的话,是一 05/26 20:26
4F:→ b10007034: 次flush哪些stage? 05/26 20:27
5F:→ b10007034: 还有pg.304 Figure4.51他的branch AND gate画在哪? 05/26 20:28
6F:→ b10007034: 能回答这两个问题的话,你的疑问就不在了。 05/26 20:29
7F:→ eecheng87: @b10007034 那个and gate是在m,可是这题不是说在ex就 05/26 22:14
8F:→ eecheng87: 知道了? 05/26 22:14
9F:→ eecheng87: 318说的flush要冲掉三个state,这是指还没把检查branch 05/26 22:21
10F:→ eecheng87: 提前的情况吧,因为原版的在ex做完才知道 05/26 22:21
11F:→ eecheng87: 至於你问的第一个问题我还是不太懂,方便解释一下吗, 05/26 22:22
12F:→ eecheng87: 感谢你 05/26 22:22
13F:→ b10007034: tricky的地方就是课本没把block diagram画出来branch 05/27 11:38
14F:→ b10007034: and gate在哪里,加上课本只有提到两种方法 05/27 11:38
15F:→ b10007034: 改良前後,所以我认为这边的branch outcome指的是addr 05/27 11:39
16F:→ b10007034: 及zero的结果 05/27 11:41
17F:→ b10007034: 另外你的想法cost要为2个cycle的话,只要and gate在EX 05/27 11:44
18F:→ eecheng87: 嗯嗯,感谢你 05/27 14:03