作者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)
1F:推 nowar100:pipeline没有不使用的stage喔 那是multicycle 10/17 18:07
2F:推 bennylu:没有使用的话就bypass掉了, 但为了让pipeline能够继续运作 10/17 18:31
3F:→ bennylu:bypass不会影响其余指令的运行 10/17 18:33
4F:→ quts:所以即使我没有使用那个stage我还是要有那段时间吗? 10/17 20:42
5F:→ quts:如果是这样的话我大概知道我观念错在哪里了 10/17 20:43
6F:→ quts:谢谢各位 10/17 20:43
7F:→ yesa315:Pipeline 不是以single cycle 基础做的吗 有两个mem耶... 10/18 10:00
8F:→ yesa315:而 multicycle 只有一个 menory 10/18 10:03