深入理解計算機系統實驗日誌(一) Datalab

2021-10-18 15:00:21 字數 1965 閱讀 7944

1. bitand xi

yi~xi

~yi~xi|~yi

~ (~xi|~yi)00

1110

0110

1010

0110

1100

01

int

bitand

(int x,

int y)

2. getbyte
int

getbyte

(int x,

int n)

3. logicalshift

int

logicalshift

(int x,

int n)

4. bitcount

int

bitcount

(int x)

5. bang
int

bang

(int x)

6. tmin
int

tmin

(void

)

7. fitsbits

int

fitsbits

(int x,

int n)

8. divpwr2

int

divpwr2

(int x,

int n)

9. negate
int

negate

(int x)

10. ispositive

sign

!x!(x>>31)

result01

10p0

11n0

00

int

ispositive

(int x)

11. islessorequal

int

islessorequal

(int x,

int y)

12. ilog2

int

ilog2

(int x)

13. float_neg

unsigned

float_neg

(unsigned uf)

14. my_float_i2f

unsigned

my_float_i2f

(int x)

ux=ux<<

(cnt+1)

;/* 留下尾數部分 */

/* 進製的兩種情形:

* ux&0x1ff>0x100說明第9位和要捨入的第8位均為1,偶數捨入法最低有效位為0

* ux&0x3ff>=0x300說明要捨入的第8位為1且低八位大於0,超過一半 */if(

((ux&

0x1ff

)>

0x100)||

((ux&

0x3ff

)>=

0x300

))to_add=1;

return

(sign<<31)

+((127+31

-cnt)

<<23)

+(ux>>9)

+to_add;

}

15. float_twice

unsigned

float_twice

(unsigned uf)

深入理解計算機系統

關鍵路徑是在迴圈的反覆執行中形成的資料相關鏈。迴圈展開是一種程式變換,通過增加每次迭代計算的元素的數量,減少迴圈的迭代次數。重新結合變換能夠減少計算中關鍵路徑上操作的數量,通過更好地利用功能單元的流水線能力得到更好的效能。浮點運算不保證是可結合的,通常迴圈展開和並行地累積在多個值中,是提高程式效能的...

《深入理解計算機系統》

知乎 深入理解計算機系統 這本書需要什麼水平能看懂?15 213 18 218 15 513 introduction to computer systems schedule fall 2016 鏈結失效則 cmu15 213的課程主頁,有ppt,還有錄影,主講人就是這本書的作者。備註 備註 詳細...

深入理解計算機系統

系統的硬體組成 快取記憶體 作業系統管理硬體 程序虛擬記憶體 檔案amdahl定律 併發和並行 0和1組成的位序列,又稱為位元序列,8個位被組織成一組,成為位元組。每個位元組表示程式中的某些文字字元。系統中的所有資訊 包括磁碟檔案 記憶體中的程式 記憶體中存放的的使用者資料以及網路上傳送的資料,都是...