2013年3月25日 星期一

浮點數

*浮點數:
是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體來說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學記數法。
浮點計算是指浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或舍入。
一個浮點數a由兩個數m和e來表示:a = m × be。在任意一個這樣的系統中,我們選擇一個基數b(記數系統的基)和精度p(即使用多少位來存儲)。m(即尾數)是形如±d.ddd...ddd的p位數(每一位是一個介於0到b-1之間的整數,包括0和b-1)。如果m的第一位是非0整數,m稱作正規化的。有一些描述使用一個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。
這種設計可以在某個固定長度的存儲空間內表示定點數,但無法表示的更大範圍的數。
*錯誤更正碼 (ECC) 
ECC英文全名為Error Checking and Correction Code,中文名稱為錯誤修正碼檢查。 
ECC是使用一種特殊電路,利用較複雜的演算法檢查儲存在記憶體中的資料是否一致。ECC通常在每個byte的資料使用3bit來作檢查碼。而且它不只是可以從多個位元中找出其中錯誤,並且可以將錯誤的位元並予以更正。一個有ECC的系統,不僅能容許錯誤,並可以將錯誤更正,使系統得以持續正常操作,不致因錯誤而中斷。ECC稱為「錯誤自動檢查與更正」,這也是一種資料檢查的技術,可以檢查資料是否正確;和Parity Check主要的不同點是在只有一個錯誤的狀況下,ECC具有自動更正的能力。 
記憶體要具有檢查與修復的功能,就必須記錄更多的資訊,因此這類的記憶體除了負責資料的記錄之外,還要更多的記憶體來保存核對與更正所需的資訊。以前述的Parity Check為例,每8個位元需要增加1個位元來處理。ECC也是類似的做法,但每家廠商的做法並不完全相同,必須視處理資料的方式而定,例如Intel以64個資料位元搭配8個ECC位元,另外也有以8個資料位元搭配4個ECC位元的做法。

沒有留言:

張貼留言