作者icehead (icehead)
看板Grad-ProbAsk
標題Re: [理工] [計組]-台大95-資工
時間Tue Jan 22 00:38:39 2013
這是95台大計算機系統的第二題,
在問下面這個指令需要stall 幾個cycle, 且有forwarding
張凡給的是3個,
分別是LD跟ADDI的load-use data hazard 需 stall 1 個
第二個是SUBI跟BNE的data hazard stall 1 cycle
跟 BNE在ID決定 stall 1 個
我想請問的是
是因為怕branch要是跳的話會浪費後面的那道指令
所以才stall 1 cycle ?
※ 引述《lwtistunning (考驗)》之銘言:
: ADDI r1,r0,#101
: ADDI r2,r0,A
: Loop:LD r3,0(r2)
: ADDI r3,r3,#1
: SD r3,0(r2)
: ADDI r2,r2,#4
: SUBI r1,r1,#1
: BNE r1,r0,Loop
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 119.14.77.145
※ 編輯: icehead 來自: 119.14.77.145 (01/22 00:49)
推 BuliBuchi:這題是LOOP 大部分會跳 也沒有分支預測 所以會清一個nop 01/22 00:51
→ icehead:thanks, B大 01/22 00:57
※ 編輯: icehead 來自: 119.14.77.145 (01/22 01:09)
推 BuliBuchi:他假設bne後面還有指令 跳了就要清掉bne後一條指令 01/22 01:18