顯示具有 Computer Architecture 標籤的文章。 顯示所有文章
顯示具有 Computer Architecture 標籤的文章。 顯示所有文章

2008年1月29日 星期二

IEEE 754

IEEE 754定義了浮點數的表示方法,目前也廣泛被使用。IEEE有四種格式來表示浮點數:

Single-precision (32-bit)
Double-precision (64-bit)
Single-extended precision (≥ 43-bit)
Double-extended precision (≥ 79-bit)

常用的為Single-precision和Double-precision,以下就介紹這兩種表示方法

IEEE 754浮點數表示型式,有三個欄位,分別是sign、exponent、fraction,如下圖:



Sign:一個bit,1為負數,0為正數
Exponent:指數部份
Fraction:小數部份

Single-precision的Exponent為8 bits、Fraction為23 bits
Double-precision的Exponent為11 bits、Fraction為52 bits


為了讓指數部份,可以調到最負的指數能為00....002和最正的指數為11..112,所以指數都要加一個偏移值。Single-precision的偏移值為127,Double-precision的偏移值為1023。將實際的指數加上偏移值才是真正填入Exponent欄位的值。
為了讓fraction能用更多的bit來表示,fraction已隱含開頭的1(Leading 1),所以浮點數要用IEEE 754格式,必須先做正規化,讓開頭為1。

下面就舉簡單的例子 (以Single-precision為例):

將十進位-0.75用IEEE 754 single-precision來表示

首先將-0.75轉換成二進位
-0.11

正規化,讓開頭為1
-1.1 x 2^-1

計算exponent的值,將-1加上偏移值127
Exponent = -1 + 127 = 126

所以我們就得到這三個欄位的值:
負數,所以Sign = 1
Exponent = 12610 = 011111102
Fraction = 1


整個表示出來如下:
1 01111110 10000000000000000000000

2008年1月25日 星期五

Application Binary Interface (ABI)

Application Binary Interface (ABI)其實就是定義了一個標準,讓Binary code能在不同的電腦上可攜(Portability)。由基本的Instruction set加上作業系統的Interfaces組成。 (ABI)的發展,是用來促進在相同的CPU下所發展的應用程式,在不同的作業系統下,都能做到Binary Code相容。例:

同屬於 Intel x86 版本的執行檔能夠自由的在Windows NT/2k/XP之間執行。

2008年1月23日 星期三

滑鼠發明者

最早發明滑鼠是一位美國人Dr. Douglas C. Engelbart。



原始的滑鼠是電子機械式加上一個大的滾球,當它在一個平面滾動時就可以計算其位移量,再透過電子訊號傳至電腦。
然而目前的滑鼠已經被光學滑鼠所取代。光學滑鼠主要包含三個元件,LED、小型黑白照相機、簡單的光學處理器。LED會發射光束照射在平面上,照相機就會以一定的速率拍下相片,連續的相片就會送給處理器,處理器比較圖片的差異來決定滑鼠的移動。

我想,當初滑鼠的發明者,一定沒想到會變得如此普及。不過我對他講的一句話,覺得蠻有趣的。

I got the idea for the mouse while attending a talk at a computer conference. The speaker was so boring that I started daydreaming and hit upon the idea.

Douglas Engelbart
我也常作白日夢,但我為什麼想不到呢~~