[理工] pipeline harzard判斷

看板Grad-ProbAsk作者 (哈哈阿喔)時間8年前 (2017/04/23 21:22), 8年前編輯推噓3(3021)
留言24則, 3人參與, 最新討論串1/1
題目 第2跟第3小題: http://i.imgur.com/Ht9ScNo.jpg
2.找出有forwarding跟沒有forwarding情況下所有的harzard 3.為了減少clock cycle time,把MEM stage一分為二,找出所有的hazard 答案 http://i.imgur.com/uqIcyfL.jpg
想問兩個問題 1. 第2小題,without forwarding那邊I2跟I4為何會有harzard? 因為I2跟I3已經有hazard,如果透過compiler在I2跟I3間插入兩個nop指令,I2跟I4的距離不就>2了嗎? 像這樣 add $2,$3,$3 nop nop add $1,$1,$2 sw $1,20($2) 還是說要看有沒有hazard以還沒插入nop的情況為準? 2. 第3小題為什麼在with forwarding的情況下只有I1跟I3有hazard,I2跟I4不會有嗎? add $2,$3,$3在MEM2階段應該沒辦法透過forwarding去救sw $1,20($2)吧,MEM harzard不是要到WB階段經過multiplexer才把線拉去forwarding嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.13.48.122 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1492953726.A.FB9.html

04/23 21:22, , 1F
對了這是張凡上冊 p.476練習題
04/23 21:22, 1F

04/23 21:29, , 2F
還有全部是在問part a的情況
04/23 21:29, 2F
※ 編輯: shownlin (101.13.48.122), 04/23/2017 22:52:52

04/24 00:58, , 3F
1.解感覺有誤曲 如果用nop
04/24 00:58, 3F

04/24 01:00, , 4F
2.因為add指令在EXE就計算完
04/24 01:00, 4F

04/24 01:00, , 5F
就算不用傳經MEM值還是一樣
04/24 01:00, 5F

04/24 01:01, , 6F
因為他不是 lw/sw有mem位置
04/24 01:01, 6F

04/24 01:01, , 7F
問題 所以可以直接pass使用
04/24 01:01, 7F

04/24 01:05, , 8F
補充1.它們確實都造成hazard
04/24 01:05, 8F

04/24 01:06, , 9F
只是剛好I2 I3間差2nop 同時
04/24 01:06, 9F

04/24 01:07, , 10F
可以解決 但不表示它不是data
04/24 01:07, 10F

04/24 01:07, , 11F
hazard
04/24 01:07, 11F

04/24 02:07, , 12F
所以是add在exe計算完後存到IF/ID的register嗎?
04/24 02:07, 12F
所以Data Hazard跟Data Dependency是一樣的東西嗎? 因為我以為發生hazard就代表一定會有penalty存在... 另外第二題就是要想成MEM1跟MEM2兩個都有各自的pass路徑囉? 原本是想成原本的forwarding因為一分為二, 所以bypass的路徑一定是落在MEM1或MEM2其中一個階段... 所以是指原本的EX Hazard 和 MEM Hazard之外又多了一條pass的路徑? ※ 編輯: shownlin (220.135.175.163), 04/24/2017 03:56:46

04/24 17:23, , 13F
add在exe後 值還是要穿過MEM再WB回IF File
04/24 17:23, 13F

04/24 17:24, , 14F
有Dependency但不一定會有Hazard
04/24 17:24, 14F

04/24 17:26, , 15F
路徑是先過Mem1再過Mem2 但Path有forward Unit 在
04/24 17:26, 15F

04/24 17:27, , 16F
EXE和Mem Stage中都會有拉線路 因為規格是要執行MIPS
04/24 17:27, 16F

04/24 17:28, , 17F
每一道指令 路徑IF>ID>EXE>Mem1>Mem2>WB 課本這麼寫的
04/24 17:28, 17F

04/24 19:00, , 18F
所以MEM1跟MEM2不管哪個階段都可以看成可以有forwardin
04/24 19:00, 18F

04/24 19:00, , 19F
g path嗎
04/24 19:00, 19F

04/24 19:01, , 20F
那我大概知道了
04/24 19:01, 20F

04/24 20:03, , 21F
原本單元是Data Mem(Mem Unit) 切成兩個整理還是Data
04/24 20:03, 21F

04/24 20:05, , 22F
Mem 指令在跑Path的原理和原本只有單一Mem是一樣的
04/24 20:05, 22F

04/24 20:06, , 23F
只是切Mem好處單一clock可能降低 但整理管線拉長
04/24 20:06, 23F

04/24 20:07, , 24F
penalty會增加
04/24 20:07, 24F
文章代碼(AID): #1O_Af--v (Grad-ProbAsk)