本次筆記内容:
P11 計算機組成原理(11)
P12 計算機組成原理(12)
本節課對應幻燈片:組成原理13 data,第72頁起。此外,本節課内容“浮點數”已經在“彙編語言”中詳細講解過,具體可見如下筆記:
- 【彙編語言與計算機系統結構筆記03】浮點數的計算機表示,IEEE 754,舍入(rounding),C語言中的浮點數
- 【例題】給定一個浮點格式(IEEE 754),有k位指數和n位小數,對于下列數,寫出階碼E、尾數M、小數f和值V的公式。另外,請描述其位表示。
本次筆記内容可能較少——隻記錄跟硬體相關的(彙編中未提及的)。
文章目錄
-
-
- 浮點數已有知識概括
- 浮點數的進制轉換
- 浮點數的運算
-
- 浮點數加減運算
- 浮點運算的特點
- 浮點運算部件
-
- Intel 80287
- 後來沒有獨立浮點數處理器,都內建到CPU内部
- 資料及資料類型
-
浮點數可以了解為二進制的科學計數法,其中尾數和階需要記錄在計算機内。
資料想要符合計算機記錄規範,需要進行“規格化”處理,然後記錄在計算機裡。
這張圖其實比較清晰。
對于如 ( − 2 − 126 , 2 − 126 ) (-2^{-126},2^{-126}) (−2−126,2−126)的部分,由第二行非規格化數表示。
在計算機運算中,如果由一個數是NaN,那麼其結果一定是NaN。
十進制到二進制:
對于除數不是2的整數倍的:則需要舍入。
首先應該“對階”。
X = M X × 2 E X Y = M Y × 2 E Y X = M_X \times 2^{E_X} \; \; \; Y = M_Y \times 2^{E_Y} X=MX×2EXY=MY×2EY
- 對階操作,求階差: Δ E = M X − M Y \Delta E = M_X - M_Y ΔE=MX−MY,使階碼小的數的尾數右移 ∣ Δ E ∣ |\Delta E| ∣ΔE∣位(右移出的數,被放到保護位中),其階碼取大的階碼值;
- 尾數加減;
- 規格化處理;
- 舍入操作,可能帶來又一次規格化;
- 判斷正确性,是否有溢出等。
- 浮點加、減法不滿足結合律;
- 浮點加、減法不可結合;
- 浮點數最好不要進行相等比較。
兩個ALU分别計算階數與尾數。
在 Intel 80297 中:
- 浮點運算部件以協處理器方式和CPU連接配接,有獨立的控制邏輯;
- 8個80位浮點數寄存器,精度更高,采用堆棧結構并進行了擴充;
- 支援3大類共7種資料,支援約60條指令。