電腦硬體基礎 fundamental of hardware
DESCRIPTION
電腦硬體基礎 Fundamental of Hardware. 陳以德助理教授 : 高醫大舊二棟 2101 07-3121101 轉 2586 [email protected]. 學習目標. 電腦硬體之本質 電腦之數字系統 基本數位電路 半加器、全加器、多工器 由基本電路到簡單的電腦 電腦硬體系統架構. 電腦硬體之本質 1. 電腦硬體本質上就是「電子計算機」 (或者說儲存程式之電子計算機) 利用電子電路來執行一系列的 「算術」 (3+6) 「邏輯」 (3>6) 運算. 電腦硬體之本質 2. - PowerPoint PPT PresentationTRANSCRIPT
電腦硬體基礎Fundamental of Hardware
陳以德助理教授 : 高醫大舊二棟 2101 07-3121101 轉 2586 [email protected]
學習目標
電腦硬體之本質 電腦之數字系統 基本數位電路 半加器、全加器、多工器 由基本電路到簡單的電腦 電腦硬體系統架構
電腦硬體之本質 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
1732
86 12
43 02
21 12
102
52 0
1
22 1
12
0 1
0
17310
17 3
1 7
0 1
10
10
(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
173+ 27
200
1 10101101+ 11011
11001000
1111111
八進位與十進位間的轉換
八進位的轉換原理和二進位相同 整數部份 , 在小數點左邊第一位的位值為 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
數字單位 正因為電腦的數字系統都是二進位,所以許多電腦的大小與容量都用二的倍數或次方來表示
1K = 1024 (210) 1M = 1048576 (220) 1G = 1073741824 (230) 1T = 1099511627776 (240)
1m = 2-10 10≒ -3
1μ = 2-20 10≒ -6 1η = 2-30 10≒ -9
1 p = 2-40 10≒ -12
位元組 - 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 的補數表示法
最高位元表示法
• 最高位元為 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 table
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 標準第一版的第一及第二冊
Unicode 網站
資料傳送出去之前,先加上一個同位位元 ( 通常加在最前面 ) ,待接收到這些位元圖樣後,就檢查看看是否有奇數個 1 或偶數個 1
又分成奇同位檢查和偶同位檢查
同位位元檢查
基本數位電路( MOS 電晶體)
DS
G
NMOS: G=1 S,D 導通 G=0 S,D 不通
PMOS: G=1 S,D 不通 G=0 S,D 導通
A B
C
ALALAL
P
N N
Poly S i0 2S i0 2S i0 2 S i0 2
ALALAL
N
P P
Poly S i0 2S i0 2S i0 2 S i0 2
數位邏輯運算符號 - 3 種
AND
X Y X AND Y
0 0 0
0 1 0
1 0 0
1 1 1
OR
X Y X OR Y
0 0 0
0 1 1
1 0 1
1 1 1
NOT
X NOT X
0 1
1 0
基本數位電路( NOT 閘)
Vcc
Gnd
A
C
NOT Gate:A=1 C=0A=0 C=1
A=1 A=0
Vcc
Gnd
C
Vcc
Gnd
C
基本數位電路( NOR 閘)
NOR 閘:A B C0 0 10 1 01 0 01 1 0
Vcc
Gnd
B
A
C
基本數位電路( NAND 閘)
NAND 閘:A B C0 0 10 1 11 0 11 1 0
Vcc
Gnd
B
A
C
基本數位電路( XOR 閘)
XOR 閘:A B C0 0 00 1 11 0 11 1 0
Vcc
Gnd
A
B
C
AB+AB
半加器與全加器
半加器
10101101+ 11011
11001000
111111
一位元的全加器大約需要 30 個電晶體
NAND
NOT
XOR
A B
和 進位
全加器
BA 前一級的進位
和 進位
AB
四位元加法器
1 byte ( 位元組) = 8 bit (位元)Word ( 字元 ) = ? bit
一位元全加器
A B
Sum
CinCout
一位元全加器
A B
Sum
CinCout
一位元全加器
A B
Sum
CinCout
一位元全加器
A B
Sum
CinCout
基本數位電路(多工器)
ABCD
C0C1C2C3
Out
C0-C3 同時只能有一個為 1C0=1 時 out = A ,只要控制 C0-C3 哪一個為 1 ,就能控制到底哪一個輸入會送到 Out去
移位器
A0 A1 A2 A3 0
B0 B1 B2 B3
Shift
算術邏輯單元( ALU )
依賴控制信號控制多工器與移位器的輸出、藉以完成加減乘除與邏輯運算
127x 101
127 00001270012827
一連串的控制信號就組成「程式」
(十進位)(二進位) 加法器
暫存器
多工器(資料選擇器)
多工器、移位器
A輸入 B輸入
控制信號控制信號
輸出
控制信號
控制信號
時脈與算數邏輯單元
在每一個同步信號週期中,電路作一個運算。
加法器
多工器(資料選擇器)
控制信號
輸出
控制信號
1
3
?
加法器
暫存器
多工器(資料選擇器)
多工器、移位器
A輸入 B輸入
控制信號控制信號
輸出
控制信號
控制信號
暫存器 暫存器同步信號同步信號
同步信號
由基本電路到簡單的電腦
解決問題需要一連串的控制信號例如:計算梯形面積:(上底+下底) x 高 /2
把程式和資料都放在記憶體中循序取出執行
ALUProgram Counter
主記憶體
控 制 信 號位 址 控 制 信 號 資 料
位 址 資 料
ALU
資料
結果
1010.....11011.....0
0110.....1
控制
信號
電腦硬體系統架構
除了處理單元與記憶體外,還需要有裝置把外界的資料與信號轉換成電腦可以處理的電子數位信號,並且把電腦所產生的結果轉換成人可以理解的信號(圖形、文字等)。
因此電腦硬體可以分為:輸出、輸入、運算、控制、記憶(儲存)五大單元。
電腦五大系統舉例
輸入系統:鍵盤、滑鼠、觸控螢幕、條碼、溫度感應器、攝影機、麥克風……
輸出系統:螢幕、印表機、音效卡、 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