電腦硬體基礎 Fundamental of Hardware 陳以德助理教授: 高醫大舊二棟 2101 07-3121101 轉 2586 itchen@kmu.edu.tw
學習目標 電腦硬體之本質 電腦之數字系統 基本數位電路 半加器、全加器、多工器 由基本電路到簡單的電腦 電腦硬體系統架構
電腦硬體之本質1 電腦硬體本質上就是「電子計算機」 (或者說儲存程式之電子計算機) 利用電子電路來執行一系列的 「算術」(3+6) 電腦硬體本質上就是「電子計算機」 (或者說儲存程式之電子計算機) 利用電子電路來執行一系列的 「算術」(3+6) 「邏輯」(3>6)運算
電腦硬體之本質2 任何問題,必須經過「數位化」,對應成電 腦可以辨識的數字系統,並提供一套電腦可 以處理的數學解決方案(演算法),才能使 用電腦解決 記帳、查資料 親情、愛情
電腦之數字系統 人因為有十根手指、腳趾,所以使用十進位 的數字系統是很自然的。 電子電路最方便使用的系統就是二進位系統 (通不通電,有沒有電壓),雖然有些特殊 的電路可以使用、處理四、八進位的系統, 一般因為穩定與簡單的考量,電腦內部的資 料都是使用二進位系統來表示。
常見的數字系統 人類習慣以十進位來計算事物 時間的計算, 時與分的換算採用六十進位;而 日與時則為二十四進位;年與月則是使用十 二進位來換算 一打 (12個) 這樣的單位來計算東西的數量 1 台斤等於 16 兩,為十六進位 電腦和人一樣, 亦有屬於自己的數字系統, 如 二進位、八進位和十六進位
數字系統 (Number System) 二進位 (Binary) 八進位 (Octal) 十進位 (Decimal) 只有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=10 101 101 = 2 5 5 173=1010 1101 = 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不變,看圖應該也可以了解
訊號編碼 -曼徹斯特1
訊號編碼 -曼徹斯特2 曼徹斯特編碼法:0就是就是高變低,1就是低變高 微分曼徹斯特:如果本來是低變高,碰到1就會變 成高變低,若是碰到0就還是低變高,不是1就是高 變低喔,是看原本是什麼,才改變的,就好像(d)圖, 本來是低變高,後來碰到1變成高變低,後來碰到 零,就還是高變低,碰到零,高變低,又碰到1變 成低變高,又碰到1再變成高變低....依此類推(e)也 是一樣
訊號編碼 - MLT-3編碼法 MLT-3編碼法:規則是:正、零、負、零,仔細看圖,一 開始當做零,然後碰到1就變成負(下降) ,然後碰到零 不改變,直到碰到1再變成零(上升),然後又碰到1再變 成正(再上升),後面都是0不改變,直到碰到1就變成零 (下降),又碰到1變成負(下降)....
數值資料表示法 電腦內部沒有「+」、「-」等符號來表示正、 負數, 也沒有表示小數點的符號 儲存在電腦中的資料, 基本上有兩種型態: 數值資料(正數、負數) 文字資料
數值資料表示法 負數常見的表示法有以下 3 種: 最高位元表示法 1 的補數表示法 2 的補數表示法
最高位元表示法 有 2 個 0 (00000000 與10000000) 最高位元為 0 表示正數 最高位元為 1 表示負數
1 的補數表示法 也有 2 個 0 (00000000 與 11111111) 1 的補數 (1‘s Complement) 表示法時 一個數的負數即是將該數的每一位元數值 0、1 反相(即 1 變 0, 0 變 1)
2 的補數表示法 2 的補數 (2‘s Complement) 表示法, 一個數的負數即是其 1 的補數值再加 1 127 ~ -128共可表示 256 個數 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 以數值代表字元的方式稱為編碼, 不同的系統可能會使用 不同的編碼方式。例如: ISO8859 碼 EBCDIC 碼 美國標準資訊交換碼 (American Standard Code for Information Interchange) 的縮寫 以數字碼來表示文字資料, 例如 65 代表 “A”, 66 代表 “B”
ASCII table
ASCII 碼 包含英文大、小寫字母, 還有阿拉伯數字、控 制字元以及各種符號等。 ASCII 碼是以 7 個位元來表示 每一個碼都對應一個字元(byte)
ISO8859 碼 由於歐洲地區語系除了 26 個英文字母外, 還包 含了拉丁字母的變形(例如上下標)與其他字母 (例如希臘字母)等, 因此 ASCII 碼的 128 個字元 顯然不夠用 ISO 便將編碼系統由 7 bits擴充到 8 bits 其中 0 到 127 的編碼與 ASCII 碼相容。 128 到 255 碼依地區不同, 包含更多的特殊字元
ISO8859 碼 ISO8859 的編碼系統又依地區語系的不同, 區 分成幾個部分。 例如丹麥和芬蘭等語系使用ISO8859-1
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 個字,卻沒有一些較罕見的字。
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 標準第一版的第一及第二冊
Unicode 網站
同位位元檢查 資料傳送出去之前,先加上一個同位位元 (通常 加在最前面),待接收到這些位元圖樣後,就檢 查看看是否有奇數個1或偶數個1 又分成奇同位檢查和偶同位檢查
基本數位電路(MOS電晶體) NMOS: G=1 S,D 導通 G=0 S,D 不通 PMOS: G=1 S,D 不通 G=0 S,D 導通
數位邏輯運算符號- 3 種 AND OR NOT X Y X AND Y 1 X Y X OR Y 1 X NOT X 1
基本數位電路(NOT 閘) A=1 A=0 NOT Gate: A=1 C=0 A=0 C=1
基本數位電路(NOR 閘) NOR閘: A B C 0 0 1 0 1 0 1 0 0 1 1 0
基本數位電路(NAND 閘) NAND閘: A B C 0 0 1 0 1 1 1 0 1 1 1 0
基本數位電路(XOR 閘) AB+AB XOR閘: A B C 0 0 0 0 1 1 1 0 1 1 1 0
半加器與全加器 111111 NOT 10101101 + 11011 A B XOR 11001000 NAND 一位元的全加器 進位 和 和 進位 111111 NOT 10101101 + 11011 A B XOR 全加器 11001000 NAND 一位元的全加器 大約需要30個電 晶體 A B 前 一 級 的 進 位 A B 半加器
四位元加法器 1 byte (位元組) = 8 bit (位元) Word (字元) = ? bit A B Sum A B Sum 一位元全加器 A B Sum Cin Cout 一位元全加器 A B Sum Cin Cout 1 byte (位元組) = 8 bit (位元) Word (字元) = ? bit
基本數位電路(多工器) C0-C3同時只能有一 個為1 C0=1時out = A, 只要控制C0-C3哪一 個為1,就能控制到底 去 A0 A1 A2 A3 Shift 移位器 B0 B1 B2 B3
算術邏輯單元(ALU) 依賴控制信號控制 多工器與移位器的 輸出、藉以完成加 減乘除與邏輯運算 127 x 101 一連串的控制 127 (十進位) (二進位) 一連串的控制 信號就組成 「程式」 127 0000 12700 12827
時脈與算數邏輯單元 在每一個同步信號週期中,電路作一個運算。
由基本電路到簡單的電腦 資料 ALU 結果 解決問題需要一連串 的控制信號 把程式和資料都放在 例如:計算梯形面積: 記憶體中循序取出執行 0110.....1 1011.....0 1010.....1 控制 信號 ALU 結果 解決問題需要一連串 的控制信號 例如:計算梯形面積: (上底+下底)x高/2 把程式和資料都放在 記憶體中循序取出執行
電腦硬體系統架構 除了處理單元與記憶體外,還需要有裝置把 外界的資料與信號轉換成電腦可以處理的電 子數位信號,並且把電腦所產生的結果轉換 成人可以理解的信號(圖形、文字等)。 因此電腦硬體可以分為:輸出、輸入、運算、 控制、記憶(儲存)五大單元。
電腦五大系統舉例 輸入系統:鍵盤、滑鼠、觸控螢幕、條碼、溫度感應器、 攝影機、麥克風…… 輸出系統:螢幕、印表機、音效卡、VR頭盔…. CPU:Core 2 Dual、Athlon、Power PC… (不一定一個 電腦只有一個CPU) 記憶體:DDRII SDRAM、SRAM、Cache、….. 儲存元件:硬碟、軟碟、磁帶、光碟 (有時間就示範一下電腦組裝)
Summery 電腦硬體之本質 電腦之數字系統 基本數位電路 半加器、全加器、多工器 由基本電路到簡單的電腦 電腦硬體系統架構
參考資料 http://zh.wikipedia.org http://www.cns11643.gov.tw http://www.unicode.org