[计组] branch stall cycle的问题

楼主: vigia22922 (德)   2016-12-18 16:10:58
我想请问一下
branch 在有额外硬件下 stall为1
没有额外硬件 stall为3
1.stall为3的话 代表 branch是需执行到MEM级 才知道branch发生或不发生(因为and gat
e 在MEM级) 。这样的话代表 branch需要 4cycle 理解是对的吗?
2.但是在写题目的时候 有的时候branch是用3cycle(也就是执行的EX而已)有的时候是4cy
cle(也就是到MEM) 那要怎么判断?
以上是说 只需要执行到该级 并不用完整pipeline执行五级
谢谢各位
作者: nopainnogain   2016-12-18 16:29:00
pipeline每个指令每个stage都要经过吧? cycle不同应该是multicycle machine吧?
作者: boy00114 (ponny)   2016-12-18 17:28:00
就multicycle来说branch CPI当作3没错
作者: kyuudonut (善良老百姓)   2016-12-18 20:32:00
1. 不太对 精准来讲 令branch miss之机率为pbranch 所需 cycle 应是 p*3 + 1
楼主: vigia22922 (德)   2016-12-18 23:01:00
嗯嗯 是multicycle 不好意思没加上去 因为我看一些解答是写cpi=4 有些又写3 觉得很混乱呀http://i.imgur.com/kt4UZ1K.jpg像这题(e) 他下方解答写 beq是4 而之前学长写的原因是因为 and gate在mem 中
作者: yupog2003 (屁股)   2016-12-19 07:31:00
也许这题的multicycle是在已经切好pipeline的机器上运作?所以才会因为and gate在MEM stage才把CPI设为4?如果只是在前面还没有切好pipeline的机器上因为他只需要IF、Resgister file、ALU所以就把CPI设为3

Links booklink

Contact Us: admin [ a t ] ucptt.com