有錯請指正,謝謝。
※ 引述《wsx02 ()》之銘言:
: 1. http://ppt.cc/txxl 張凡的書在48頁
: 請問第3題是甚麼意思? 1跟2我會 只是第3題看不懂
第三題應該是要問為什麼這些改變可能減少或增加程式的大小。
a. 會縮短 R-type ,因為 register 需要的 bit 數從 5 -> 3 ,
所以 R-type 可以從 32 bits 變為 26 bits 。
b. 會縮短 I-type ,因為 immediate 從 16 bits -> 10 bits ,
所以 I-type 可以從 32 bits 變為 26 bits 。
如果用了 a. 和 b. ,那麼 R/I-type 的 instruction 就會變短,
如此一來存放這些 instruction 所佔的空間也會變小,
就可以讓程式變得比較小。
但這樣作同時也會有副作用,因為 register 變少,
所以當 register 不夠用時,可能需要作 register spilling 。
就會需要更多的 instruction 才能完成一樣的動作。
immediate 變短也有一樣的問題,
原本 assign 16-bit data 只要一個 instruction ,
現在可能要三個。 jump 距離上限變短,
原本跳一次現在可能要跳兩次。
基於這些可能增加 instruction 數的理由。
這樣的改變也可能會使程式變大。
: 2. http://ppt.cc/Ri2X 張凡的書在49頁
: 1跟2我會
: 請問第3題 為什麼是
: a. jump跟beq都是no
: b. jump跟beq都是yes
: 謝謝
jump (J-type) 的距離上限是 26 bits , beq (I-type) 是 16 bits 。
0x2000 0000 和 0x0000 1000 的距離要 29 bits 才能表示,所以都跳不到。
0x2000 0000 和 0x2000 1400 的距離只要 13 bits 就能表示,所以都跳得到。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.169.122.198