作者quts (生人勿近)
看板Grad-ProbAsk
標題[理工] [計組]-Pipeline
時間Sat Oct 17 17:48:55 2009
從張凡老師的講義看到的
第二本的第21頁
MIPS code為
lw $1, 40($6)
beq $2, $0, Label ;Assume $2=$0
sw $6, 50($2)
Label: add $2, $3, $4
sw $3, 50($4)
在只有一個memory的five-stage pipeline
計算執行時間
答案給
Instruction | Pipeline stage
--------------------------------------------------------------------------
lw $1, 40($6) | IF ID EXE ME WB
beq $2, $0, Lbl | IF ID EXE ME WB
add $2, $3, $4 | IF ID EXE ME WB
sw $3, 50($4) | ** IF ID EXE ME WB
我想問的是
在pipeline的架構下
R-type指令應該不需要做memory access的動作
所以應該不用經過ME這個階段不是嗎?
或著sw應該也不用write back所以不會有WB吧?
那為什麼每個指令在計算的時候都是以五個階段做計算呢?
沒有使用到的階段為什麼不能夠跳過?
請板上大大指正一下我的盲點
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.25.118.136
※ 編輯: quts 來自: 163.25.118.136 (10/17 17:49)
推 nowar100:pipeline沒有不使用的stage喔 那是multicycle 10/17 18:07
推 bennylu:沒有使用的話就bypass掉了, 但為了讓pipeline能夠繼續運作 10/17 18:31
→ bennylu:bypass不會影響其餘指令的運行 10/17 18:33
→ quts:所以即使我沒有使用那個stage我還是要有那段時間嗎? 10/17 20:42
→ quts:如果是這樣的話我大概知道我觀念錯在哪裡了 10/17 20:43
→ quts:謝謝各位 10/17 20:43
→ yesa315:Pipeline 不是以single cycle 基礎做的嗎 有兩個mem耶... 10/18 10:00
→ yesa315:而 multicycle 只有一個 menory 10/18 10:03