680 likes | 813 Views
電腦硬體基礎 Fundamental of Hardware. 陳以德助理教授 : 高醫大舊二棟 2101 07-3121101 轉 2586 itchen@kmu.edu.tw. 學習目標. 電腦硬體之本質 電腦之數字系統 基本數位電路 半加器、全加器、多工器 由基本電路到簡單的電腦 電腦硬體系統架構. 電腦硬體之本質 1. 電腦硬體本質上就是「電子計算機」 (或者說儲存程式之電子計算機) 利用電子電路來執行一系列的 「算術」 (3+6) 「邏輯」 (3>6) 運算. 電腦硬體之本質 2.
E N D
電腦硬體基礎Fundamental of Hardware 陳以德助理教授: 高醫大舊二棟 2101 07-3121101 轉 2586 itchen@kmu.edu.tw
學習目標 • 電腦硬體之本質 • 電腦之數字系統 • 基本數位電路 • 半加器、全加器、多工器 • 由基本電路到簡單的電腦 • 電腦硬體系統架構
電腦硬體之本質1 • 電腦硬體本質上就是「電子計算機」(或者說儲存程式之電子計算機) • 利用電子電路來執行一系列的 • 「算術」(3+6) • 「邏輯」(3>6)運算
電腦硬體之本質2 • 任何問題,必須經過「數位化」,對應成電腦可以辨識的數字系統,並提供一套電腦可以處理的數學解決方案(演算法),才能使用電腦解決 • 記帳、查資料 • 親情、愛情
電腦之數字系統 • 人因為有十根手指、腳趾,所以使用十進位的數字系統是很自然的。 • 電子電路最方便使用的系統就是二進位系統(通不通電,有沒有電壓),雖然有些特殊的電路可以使用、處理四、八進位的系統,一般因為穩定與簡單的考量,電腦內部的資料都是使用二進位系統來表示。
常見的數字系統 • 人類習慣以十進位來計算事物 • 時間的計算, 時與分的換算採用六十進位;而日與時則為二十四進位;年與月則是使用十二進位來換算 • 一打 (12個) 這樣的單位來計算東西的數量 • 1 台斤等於 16 兩,為十六進位 • 電腦和人一樣, 亦有屬於自己的數字系統, 如二進位、八進位和十六進位
數字系統 (Number System) • 二進位 (Binary) • 只有0與1 • 八進位 (Octal) • 由 0、1、2、3、4、5、6、7組成 • 十進位 (Decimal) • 由 0、1、2、3、4、5、6、7、8、9 等十個數元所組成 • 十六進位 (Hexadecimal) • 由 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 等十六個數元所組成
十進位轉換成二進位1 以173.25為例 • 十進位系統: 173.25 = 1*102+7*101+3*100+2*10-1+ 5*10-2 • 二進位系統: 173.25 = 10101101.01 =1*27+0*26+1*25+0*24+1*23+1*22+0*21+1*20 +0*2-1+1*2-2
十進位轉換成二進位2 整數部分利用除法求出對應的二進位數字 (173)10=(10101101)2
十進位轉換成二進位3 • 小數部分 (173.25)10=(10101101.01)2
二進位轉換成十進位 • 以 (11101.11)2來做示範:
二進位轉換成十進位 • 要將其轉為十進位, 只要將每一個二進位數乘以該數的位值, 然後相加即可獲得相對應的十進位數值:
二進位轉換成八、十六進位 173=10101101 = 2 5 5 173=10101101 = A D 八進位(0-7) 十六進位(0-9 ABCDEF) 將每三個二進位數字結合在一起,就成了八進位。 每四個二進位數字結合在一起就成了十六進位。
二進位加法 173+27=200 111111 1 1 173 + 27 10101101 + 11011 11001000 200
八進位與十進位間的轉換 • 八進位的轉換原理和二進位相同 • 整數部份, 在小數點左邊第一位的位值為 80、第二位的位值為 81 ... • 小數部份, 在小數點右邊第一位的位值 8-1、第二位的位值 8-2 ... • 再將每一個八進位數乘以該數的位值, 然後相加即可求得
八進位轉換成十進位 • 我們以 (173.3)8轉換成十進位來做示範: (173.3)8 = 1*82 + 7*81 + 3*80 + 3*8-1 = 64 + 56 + 3 + 3*0.125 = (123.375)10
十進位轉換成八進位 • 要將十進位轉成八進位, 同樣地可分為整數與小數兩部份來處理。 • 我們以 (98.375)10 =(142.3)8來示範。
十六進位轉換成十進位 • 十六進位的轉換原理和二進位相同 • 整數部份, 在小數點左邊第一位的位值為 160、第二位的位值為 161 ...。 • 小數部份,在小數點右邊第一位的位值為 16-1、第二位的位值為 16-2 ...。 • 因此十六進位轉換成十進位, 只要將每一個十六進位數乘以該數的位值, 然後相加即可求得
十六進位轉換成十進位 • 我們以 (BCD.E1)16轉換成十進位來做示範: (BCD.E1)16 = 11*162 + 12*161 + 13*160 + 14*16-1 + 1*16-2 = 11*256 + 12*16+13+14*0.0625+0.00390625 = 3021.87890625
十進位轉換成十六進位 • 十進位轉成十六進位的方式, 亦分為整數與小數兩部份來處理 • 在此以(1859.75)10轉成十六進位來做示範 (1859.75)10= (743.C)16
數字單位 • 正因為電腦的數字系統都是二進位,所以許多電腦的大小與容量都用二的倍數或次方來表示 • 1m = 2-10≒ 10-3 • 1μ = 2-20 ≒ 10-6 • 1η = 2-30≒ 10-9 • 1 p = 2-40≒ 10-12 • 1K = 1024 (210) • 1M = 1048576 (220) • 1G = 1073741824 (230) • 1T = 1099511627776 (240)
位元組 - byte • 因為大小寫英文字母、數字與一些常用的符號大約一百多個,所以一般電腦採用八位元 (bit)為一個基本的運算單位,稱之為「位元組」(byte)。
訊號編碼 - NRZ NRZ編碼法 :就是看到1就是高,看到0就是低 NRZ-1編碼法:遇到1就變而0不變,看圖應該也可以了解
訊號編碼 -曼徹斯特2 • 曼徹斯特編碼法:0就是就是高變低,1就是低變高 • 微分曼徹斯特:如果本來是低變高,碰到1就會變成高變低,若是碰到0就還是低變高,不是1就是高變低喔,是看原本是什麼,才改變的,就好像(d)圖,本來是低變高,後來碰到1變成高變低,後來碰到零,就還是高變低,碰到零,高變低,又碰到1變成低變高,又碰到1再變成高變低....依此類推(e)也是一樣
訊號編碼 - MLT-3編碼法 • MLT-3編碼法:規則是:正、零、負、零,仔細看圖,一開始當做零,然後碰到1就變成負(下降) ,然後碰到零不改變,直到碰到1再變成零(上升),然後又碰到1再變成正(再上升),後面都是0不改變,直到碰到1就變成零(下降),又碰到1變成負(下降)....
數值資料表示法 • 電腦內部沒有「+」、「-」等符號來表示正、負數, 也沒有表示小數點的符號 • 儲存在電腦中的資料, 基本上有兩種型態: • 數值資料(正數、負數) • 文字資料
數值資料表示法 • 負數常見的表示法有以下 3 種: • 最高位元表示法 • 1 的補數表示法 • 2 的補數表示法
最高位元表示法 • 最高位元為 0表示正數 • 最高位元為 1表示負數
1 的補數表示法 • 1 的補數(1‘s Complement) 表示法時一個數的負數即是將該數的每一位元數值 0、1 反相(即 1 變 0, 0 變 1)
2 的補數表示法 • 2 的補數(2‘s Complement) 表示法,一個數的負數即是其 1 的補數值再加 1
浮點數的表示法 • 在電腦中, 當用到含有小數的數字 (如 3.14);或是整數的值 (如 10 的 20 次方) 超過整數表示法所有位元所能表現的最大值時, 這時就需要使用一種特別的表示方法, 稱之為浮點數(Floating Point) 表示法。
正規化 • 在正式介紹浮點數表示法之前, 我們先大致說明正規化(Normalization)。 • 當我們要將一個數字以浮點數表示法表示時, 需要先將其正規化。 • 所謂的正規化, 是將該數字轉換成二進位的 1.xxxxxx × 2指數 的形式。
正規化 • 例如要計算 (12.25)10經正規化的結果。 • 需先將其轉換為二進位 (12.25)10 =(1100.01)2 • 再正規化成 1.10001 × 23。 • 1.10001 × 23可解讀出以下資訊, 這些資訊將在轉換成浮點數表示法時用到: • 此數值為正數 • 指數為 3 • 小數部分為 10001
浮點數表示法 • 不同 CPU 有其各自的浮點數表示法。 • 但一般較常採用 IEEE 協會所訂定的浮點數表示法標準 (IEEE Standard 754):分成單精確度(Single Precision) 及雙精確度(Double Precision) • 兩者的差別在於: • 單精確準度是以 32 個位元來表示浮點數。 • 雙精確度則是用 64 位元表示。
文字的表示法 • 數值資料在電腦內部以「二進位」形式表示 • 文字資料, 亦會被轉換成「二進位」碼形式儲存 • 將文字資料轉換成「二進位」碼系統就稱為編碼系統
文字的表示法 - ASCII • 以數值代表字元的方式稱為編碼, 不同的系統可能會使用不同的編碼方式。例如: • ASCII 碼 • ISO8859 碼 • EBCDIC 碼 • 美國標準資訊交換碼 (American Standard Code for Information Interchange) 的縮寫 • 以數字碼來表示文字資料, 例如 65 代表 “A”, 66 代表 “B”
ASCII 碼 • 包含英文大、小寫字母, 還有阿拉伯數字、控制字元以及各種符號等。 • ASCII 碼是以 7 個位元來表示 • 因此共有128 個 ASCII 碼 • 每一個碼都對應一個字元(byte)
ISO8859 碼 • 由於歐洲地區語系除了 26 個英文字母外, 還包含了拉丁字母的變形(例如上下標)與其他字母(例如希臘字母)等, 因此 ASCII 碼的 128 個字元顯然不夠用 • ISO 便將編碼系統由 7 bits擴充到 8 bits • 其中 0 到 127 的編碼與 ASCII 碼相容。 • 128 到 255 碼依地區不同, 包含更多的特殊字元
ISO8859 碼 • ISO8859 的編碼系統又依地區語系的不同, 區分成幾個部分。 • 例如丹麥和芬蘭等語系使用ISO8859-1 • 而羅馬尼亞和波蘭等語系則採用 ISO8859-2
EBCDIC 碼 • EBCDIC 碼的全名是 Extended Binary Code Decimal Interchange Code。 • 是美國 IBM 公司所制定的編碼系統, 主要使用在 IBM 一部份大型主機上。 • EBCDIC 碼的每一個字元是由 8 個位元所組成, 共有 28種組合, 可以表示 256 個字元。
常用的中文電腦編碼系統 • 8 bits(28 = 256) 足以表示所有英文字母、阿拉伯數字及許多特殊符號 ,但不足以表示所有中文字 • 因此中文字是以 2 bytes (16 bits) 來編碼,又稱為中文的內碼 • 目前比較常使用的中文電腦編碼系統有: • Big5-2003 • CP950 • CNS11643 • 大陸推行GB 18030
Big5 碼 • 資策會工業局聯合 13 家業者於 1984 年所共同制定的編碼系統 • 5401個常用字、7652個次常用字及 408 個符號 (含標點符號、注音符號、單位符號…), 共13461 個字
Big5 碼 • Big5 碼是台灣常用的中文編碼系統。雖已收錄 13461 個字,卻沒有一些較罕見的字。 • 例如游錫 “堃 ” 的 “堃 ” 字,王建 “煊 ” 的 “煊” 字、張栢芝的「栢」字、陶喆的「喆」 無法顯示, 這都是因為 Big5 碼沒有所致
CP950 碼 • CP950 (CodePage 950) 碼也稱為 MS950 碼。 • 由微軟公司所發展, 從 Big5 碼擴充而來的, 其應用於微軟的 Windows 作業系統中。 • 只添加了上述0xF9D6-0xF9FE的倚天擴充字及表格符號,並沒有加入日文假名字母等其他延伸,對不少使用Microsoft Windows的用者帶來困擾
CNS11643 • 69年9月行政院國家科學委員會集合國內編碼專家、學者在溪頭開會,達成初步原則 • 71年7月曾編定常用字碼,但所收字數不夠;72年5月9日行政院資訊推動小組再次確立編碼方式,即於5月12日組成編碼技術作業小組,針對已定之編碼原則,進行編碼細則之研討,10月底完成「通用漢字標準交換碼」,並決議試用二年 • 74年8月邀集各相關單位與業者組成技術小組,檢討試用結果、修訂編碼原則後重編,75年3月獲行政院核定,正式公布實施 • 75年8月獲中央標準局審定頒布為國家標準「CNS11643」 • 81年該局再因應各界之需要,由原2個字面 (13,051字) 大幅擴編為7個字面(48,027字),5月公布並更名為「中文標準交換碼 (Chinese Standard Interchange Code)」
全球統一的編碼系統- Unicode • Unicode 協會及 ISO 國際標準化組織針對各國文字、符號制定的統一性編碼系統, 將全球語言編在一起, 而達成統一編碼的目的 • 1987 年底, Xerox (全錄) 及 Apple 公司三位軟體工程師提議制定一套全世界統一的編碼系統, 並將之命名為 Unicode • 1988 年完成了 Unicode 第一個版本, 屬於草案型式 • 1991 年, 由 Xerox、Microsoft、IBM、Sun、Apple、DEC…等十幾家業者共同出資, 成立了 Unicode 協會 (The Unicode Consortium), 並由協會設立非營利性的Unicode 公司 • 1991 及 1992 年分別推出了 Unicode 標準第一版的第一及第二冊