看板 Grad-ProbAsk 關於我們 聯絡資訊
這是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