看板 Grad-ProbAsk 關於我們 聯絡資訊
https://i.imgur.com/AihTSZK.jpg 請問一下,為何(2)是load,不是store?兩個都是20%,cpi又都是3,是怎麼區分的啊? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.242.94.62 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1542182181.A.70F.html
ss455032: Register-mem,add $t0,t1,0(S2),可以想成先load到一個re 11/14 16:06
ss455032: gister在相加 11/14 16:06
Aa841018: 可是store也是register-memory啊!怎麼就不是store? 11/14 16:12
b10007034: 覺得詳解不知道在幹麻,如果q2是如詳解這樣寫,那為何 11/14 23:41
b10007034: q3計算load的部份沒有把cpi=3改為cpi=2? 11/14 23:41
b10007034: 我的想法是load&store都是受益者,新的cpi計算為2*0.4 11/14 23:44
b10007034: +2*0.2+2*0.2+2*0.2=2,新的cpu time=IC*2*1.05T仍然 11/14 23:44
b10007034: 大於舊的,因此不選擇新的 11/14 23:44
b10007034: 有人可以解釋一下嗎,我也想知道解答寫啥QQ 11/14 23:46
b10007034: 自問自答,我剛剛查了一下知道怎麼了,store-load其實 11/15 00:09
b10007034: 是reg-reg的架構,原文書是這樣的定義。 11/15 00:09
b10007034: 同第一個的推文,只要想add $1,$2,imm,這樣類似的指 11/15 00:13
b10007034: 令可以直接存取記憶體就好 11/15 00:13
b10007034: 只有load的原因是因為原來要做運算的話一定要把資料從 11/15 00:19
b10007034: 記憶體搬到reg(load)才可以,而這個定址模式解放這 11/15 00:19
b10007034: 個限制了,所以load的數量就會變少。 11/15 00:19
b10007034: 沒有store的原因也就是上述說明的相反,沒有人希望在 11/15 00:23
b10007034: 記憶體做運算,因為可以在reg算就盡量在reg算,reg跟 11/15 00:23
b10007034: 記憶體的解碼速度差太多了,還有sram跟dram的差別。 11/15 00:23
seika555: 題目開始有假設ALU的cpi及總cycle time都增加,又他是從 11/15 02:13
seika555: reg-reg改成reg-mem 因此合理的假設ALU多了access mem 11/15 02:13
seika555: 的部分,然後在做運算時是要取暫存器的值,sw 是把reg 11/15 02:13
seika555: 存回mem不會影響讀取,因此能減少的就是原本lw 的指令, 11/15 02:13
seika555: 分給ALU讓他可access mem 和運算,就不用全透過lw去acce 11/15 02:13
seika555: ss 不知道這樣想對不對 11/15 02:13
b10007034: 你是從MIPS現有架構去思考這個問題嗎? 11/15 09:17
b10007034: 假設要相容現有架構的話,我認為是從instruction deco 11/15 09:19
b10007034: de就有access mem.的部份了 11/15 09:19
seika555: 哦哦對耶 沒考慮到 不過我想說的是多pipelined 的第4個s 11/15 09:25
seika555: tep 11/15 09:25