[理工] 105交大 計系(20)

看板Grad-ProbAsk作者 (PTT領導)時間9年前 (2017/01/19 19:40), 編輯推噓1(1039)
留言40則, 4人參與, 最新討論串1/1
http://imgur.com/a/iNKFU 想請問 (C) not taken 的話 之前的指令 就不用清除繼續做下去不就好了 為甚麼這選項錯了? 有爬過之前的文說是 flush 會新增硬體 這是甚麼意思? (D) 這選項是錯在哪裡? 是without increasing the cycle time嗎 移到EXE, EXE的latency 也未必會超過 MEM吧? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.232.14.64 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1484826035.A.E4D.html

01/19 19:55, , 1F
我當時一定是鬼打牆了 orz
01/19 19:55, 1F

01/19 19:56, , 2F
要加 forwarding 才能改善吧 我現在思考了話
01/19 19:56, 2F

01/19 20:00, , 3F
不 應該沒有這麼不確定因素的@@ 我再想一下
01/19 20:00, 3F

01/19 20:04, , 4F
(D)選項我覺得是雖然可以減少flush掉的cycle數,可是
01/19 20:04, 4F

01/19 20:04, , 5F
也有可能增加branch的data hazard
01/19 20:04, 5F

01/19 20:05, , 6F
C 應該還是要加上flush 沒錯
01/19 20:05, 6F

01/19 20:05, , 7F
一來一往也許不一定能改善CPI?
01/19 20:05, 7F

01/19 20:05, , 8F
主要是 題目是說「assume branch are no taken」
01/19 20:05, 8F

01/19 20:06, , 9F
假設不跳 但實際還是有可能跳 ,這時就要用Flush
01/19 20:06, 9F

01/19 20:09, , 10F
(D)branch handling應該是指原本在MEM那個看題組A敘述
01/19 20:09, 10F

01/19 20:15, , 11F
D 我後來的想法是 再原本還是mem的時候
01/19 20:15, 11F

01/19 20:15, , 12F
只考慮branch 的情況下 它必須 stall 3次(如題A)
01/19 20:15, 12F

01/19 20:19, , 13F
orz 今天腦袋爆炸 我再想一下
01/19 20:19, 13F

01/19 20:21, , 14F
C要那樣說也行Orz D 要在ID才會多data hazard吧
01/19 20:21, 14F

01/19 20:21, , 15F
不過也是要在有支援forwarding的情況下
01/19 20:21, 15F

01/19 20:22, , 16F
感覺還是很有爭議QQ
01/19 20:22, 16F

01/19 20:25, , 17F
我剛剛原本是想表達 : 在沒支援forwarding 且data
01/19 20:25, 17F

01/19 20:26, , 18F
hazard 的情況下 ,前後兩者皆要 等到上一個指令到達
01/19 20:26, 18F

01/19 20:27, , 19F
WB 因此皆要在ID時 stall 3個cycle 無論EXE or MEM
01/19 20:27, 19F

01/19 20:27, , 20F
handling
01/19 20:27, 20F

01/19 20:30, , 21F
哈哈所以題目說只考慮branch only是不考慮forwarding?
01/19 20:30, 21F

01/19 20:31, , 22F
題組a 好像本來就沒有畫forwarding 和 detect unit了
01/19 20:31, 22F

01/19 20:32, , 23F
但 假如沒有data hazard exe handling 一定比mem快
01/19 20:32, 23F

01/19 20:46, , 24F
P大我的看法跟你一樣,如果有forwarding的話移到EX
01/19 20:46, 24F

01/19 20:46, , 25F
根本不怕data hazard,如果沒有forwarding那會有
01/19 20:46, 25F

01/19 20:48, , 26F
data hazard的問題,我自己在做題目的時候也是有選D
01/19 20:48, 26F

01/19 20:48, , 27F
是看到解答才這樣想的,圖也的確沒給forwarding
01/19 20:48, 27F

01/19 23:49, , 28F
c選項我認為,如果沒有任何硬體的話,遇到branch一定
01/19 23:49, 28F

01/19 23:49, , 29F
要先插nop。並不會有選項說的後面指令繼續通行的狀況
01/19 23:49, 29F

01/19 23:50, , 30F
所以要讓他這種狀況發生一定要有branch prediction跟f
01/19 23:50, 30F

01/19 23:50, , 31F
lush的硬體
01/19 23:50, 31F

01/19 23:59, , 32F
yu大大 沒有forwarding 的話 不管是在mem 還是在exe
01/19 23:59, 32F

01/19 23:59, , 33F
他們的data hazard造成的影響會一樣吧
01/19 23:59, 33F

01/20 00:05, , 34F
我覺得C選項 因為移到ex stage ex 的 critical path要
01/20 00:05, 34F

01/20 00:05, , 35F
在多經過一個and跟mux 也不是不可能改變cycle timeˊ
01/20 00:05, 35F

01/20 00:05, , 36F
ˋ 我是覺得這樣
01/20 00:05, 36F

01/20 07:14, , 37F
對耶...沒有forwarding的話data hazard造成的影響一樣
01/20 07:14, 37F

01/20 07:14, , 38F
看來只能說forwarding path沒改的話data hazard會變嚴
01/20 07:14, 38F

01/20 07:15, , 39F
重而已,那這樣真的怪怪的,我看那個勘誤表的確有人
01/20 07:15, 39F

01/20 07:15, , 40F
對這題提出疑義,不過最後答案沒變@@
01/20 07:15, 40F
文章代碼(AID): #1OWAMpvD (Grad-ProbAsk)