Download as pdf or txt
Download as pdf or txt
You are on page 1of 322

用 心 出 版 每 一 本 好 書

敬愛的老師您好:
PDF 檔僅限學校教師搭配紙本教材用於
課堂教學,並未授權其他用途!!
優質好書.盡收眼底 書籍配套 ‧ 軟硬兼俱

用 心 出 版 每 一 本 好 書

tkdbooks.com http://ipoemaker.com/

前進專業 ‧ 淬煉身價 研習競賽 ‧ 沒有問題

勁園科技教育
Jin Yuan TechEdu

http://jytechedu.com/ http://pacme.asia/
技術型高級中等學校 Ⅰ 電機與電子群

微處理機 全
張顯盛 編著

Microprocessor
編 大 意

一、本書依據民國一○七年教育部發布之十二年國民基本教育技術型高級中等
學校群科課程綱要-電機與電子群「微處理機」編輯而成。

二、全書共一冊,供電機與電子群第二學年第二學期,每週 3 節,共 3 學分教


學之用。

三、本書課程內容包含:
第1章 微處理機基本概念
第2章 微處理機硬體架構
第3章 微處理機軟體發展流程
第4章 資料 串 / 並列傳輸
第5章 中斷
第6章 記憶體資料存取
第 7 章 多核心微處理機
第 8 章 微電腦系統架構與應用

四、本書對於微處理機的特性、原理及電路應用等,編寫力求淺顯、扼要,盡
量避免艱深之理論,使學生易於閱讀,達成「微處理機」之教學目標,以
期不同學習能力的學生,皆能獲得的重點精華。

五、本書中每節皆審慎編選「隨堂練習」,供學生課後練習之用。

六、本書每章課文末有「學習目標回顧」,可幫助學生了解學習重點所在,加
深其印象。

七、本書各章附有「課後習題」,供學生做有效的觀念統整練習,並獲得具體
的學習成效。

八、本書編寫期間,承蒙各先進多方指正及審校,謹此致謝。

九、本書雖力求嚴謹,但疏漏之處在所難免,尚祈諸先進惠予指正,以供修訂
時之參考,不勝感激。

ii

AC20410_編特.indd 2 26/8/2020 9:17:16


本 特 色

• 正確
內容正確是最重要的,每一頁都經過嚴謹的校對。

• 學習目標
各章開頭安排學習單元及學習目標,提供學生課前掌握學習重點。

• 編排結構
每章內容均依課綱適當分成數小節,各小節有特定主題的解說和練習題,使
本書更便於學習與參考。

• 易懂的圖解與表格
本書大量採用數百幅精緻彩圖解,說明相關原理,讓學生以最簡易方式學習
艱澀理論。

• 學習目標回顧
章末將重點文字圖形化及表格化,快速掌握複習要點,提升學習效率。

• 課後習題
每一章均有課後習題,依各節順序編排,適合循序複習。

• 學習資源
除了課本外,本書配備有多種學習資源供學生使用,包括習作本、MOSME
行動學習一點通及線上教學資源。

iii

AC20410_編特.indd 3 26/8/2020 9:17:16


本 導 覽 精 彩 ╳ 圖 解

內容條理易讀 以圖輔文,以表歸納,搭配文字說明,讓學習更容易。

88 微處理機 Chapter 4 │資料串 / 並列傳輸 135

表 4-3 DB9 串列埠接腳訊號

名  稱 方 向
接腳
簡稱 英文 中文 DTE DCE
1 DCD Data Carry Detect 資料載波偵測 ←
2 RXD Data Receive 資料接收 ←
3 TXD Data Transmit 資料傳送 →
4 DTR Data Terminal Ready 資料終端備妥 →
5 GND Ground 接地信號 DB9 接腳序
6 DSR Data Setting Ready 資料設定備妥 ←
7 RTS Request To Send 要求發送 →
8 CTS Clear To Send 清除以備發送 ←
9 RI Ring Indicator 振鈴指示 ←

使用 RS-232 進行資料傳輸最簡單的連接接腳至少必須有 TXD、RXD 與 GND 三支,


如圖 4-10(a) 所示,如兩台 PC 裝置之間進行傳輸資料,則需將裝置 1 的 TXD 接至裝置
圖 3-2 指令提取週期 2 的 RXD,裝置 2 的 TXD 接至裝置 1 的 RXD,當然,GND 也需要連接在一起。

首先由 1 將 PC 指向的指令所在的記憶體位址,送到 MAR,並傳送到位址匯流排。


然後 2 發出控制信號 RD,透過資料匯流排,讀取「指令」到 MDR,3 再傳送到指令
暫存器 IR 中。接下來,4 由 ID 進行指令解碼,5 指定執行過程應進行的工作。最後,
6 PC ← PC + 1,使 PC 指向下一個要執行指令的記憶體位址。整理如下,較容易對照、 Chapter 2 │微處理機硬體架構 33
理解。

當提取週期開始時,會 指令由MDR輸入 控制信號產生電路產


先將PC內容放置MAR IR。 生一連串可達成指令

五 指令的管線處理
,作為取得下一個要執 功能的控制信號,負
行指令的記憶體位址。 責執行指令的所有控 (a) 最簡易連接 (b) 全雙工交握協定
制動作。
圖 4-10 RS-232 連接模式

1 2 3 4 5 6 除了不可或缺的資料線 TXD、RXD 與 GND 之外,RS-232 還有幾支交握信號接腳,

控制單元產生記憶體讀 IR內容送入ID進行指 將PC加1,指向下一 可提供更穩定的傳輸,說明如下。


取信號,讀取MAR所指
位置內容至MDR。
令解碼,以解碼指令
的工作,解碼出數個
個CPU要執行的指
令位置。
將每 個指令週期簡化為提取指令與執行指令兩個階段來解釋指令週期重疊的意
1 DTR:資料終端備妥。當 DTE(如 PC)開機後,經自測無誤後,會將 DTR 設
微碼,再送至控制信
號產生電路。 為低電位,表示已經準備好了!
思。如果循序地執行,即提取第一道指令、執行第一道指令之後,再繼續提取第二道指
2 DSR: 資 料 設 定 備 妥。 當 DCE( 如 數 據 機 ) 開 機 後, 經 自 測 無 誤 後, 它 會 將
DSR 設為低電位,表示已經準備好了!
令、執行第二道指令…。這樣循序執行指令相當沒有效率,現在的 CPU 大都利用序列
(Queue)結構的先進先出(First In First Out)特性,進行「 管線 」方式處理以提高效率。
AC20410_03.indd 88 2020/7/9 下午 02:49:55 AC20410_04.indd 135 2020/7/9 下午 03:14:17

如圖 2-6 所示指令序列的動作說明,BIU 負責由記憶體提取指令,暫放到指令序列。


44 微處理機 先放進序列的指令,優先放到 IR,供 EU 進行指令解碼與執行。指令序列中,後面的指令
圖表 重要觀念圖像化,複雜說明秒理解,學習更給力。
依序補位。序列的動作,很像排隊買東西,排在前面的優先買,買完了,後面的依序補位,
稱為先進先出。

(a) 邏輯右移 (b) 邏輯左移


圖 2-6 指令序列的動作

8086 的內部架構中,以 BIU 與 EU 兩個單元,將提取工作與執行工作以兩個獨立


單元分開處理,當在執行第一道指令時,可同時提取第二道指令。BIU 與 EU,再配合
指令序列,兩個單元同時動作,可達成「管線式」重疊指令週期的效果。
(c) 循環右移 (d) 循環左移
如表 2-1 所示,以循序的方式提取指令與執行指令,執行指令 1 到指令 6 共 6 個指令,
需要 12 個時脈才能完成。

表 2-1 循序執行指令
時脈 1 2 3 4 5 6 7 8 9 10 11 12
(e) 算術右移 提取 執行 (f) 算術左移
指令 1
指令 1 指令 1
圖 2-13 移位運算 提取 執行
指令 2
指令 2 指令 2
邏輯移位運算是一種傳入位元填入 0 的移位方式,邏輯右移,簡記 shr,每個位元
提取 執行
指令 3
往右邊移動 R 0 捨棄,R n-1 留下的空位填 0。同理,邏輯左移,簡記 shl,每個位元往左
指令 3 指令 3
提取 執行
邊移動,R n-1 捨棄,R 0 留下的空位填 0。 指令 4
指令 4 指令 4
提取 執行
循環移位運算則是連接暫存器的最低與最高位元的移位方式,循環右移,簡記
指令 5 cir,
指令 5 指令 5
每個位元仍是往右邊移動,R 0 值填到 R n-1。循環左移,簡記 cil,每個位元往左邊移動, 提取 執行
指令 6
指令 6 指令 6
R n-1 值填到 R 0。

iv
算術移位是一種針對有號數進行左移或右移的運算,移位後正負符號不變。所以操
作上,左右位元移動時,符號位元不變。算術右移實際上就是將有號二進制數值「除 2」,
反之,算術左移是將有號二進制數值「乘 2」。
AC20410_02.indd 33 2020/7/9 下午 02:40:34

一般移位功能可使用 D 型正反器完成,如圖 2-14 所示為 4 位元的移位電路,可由


控制接腳 S 決定執行「左移」或「右移」工作,S = 0 時 Y = A、S = 1 時 Y = B。假設
A 3A 2A 1A 0 = 1011,S = 0 時 執 行 左 移, 經 過 CLK 時 脈 正 緣 後 A 3A 2A 1A 0 = 0110。 又 例 如
AC20410_編特.indd 4 26/8/2020 9:17:18
A A A A = 0011,S = 1 時執行右移,經過 CLK 時脈正緣後 A A A A = 0001。
能之間取得最佳平衡,考驗著微處理機設計者的智慧。
早期的 CPU 功能要求簡單,指令數目較少,負責解碼與執行的硬體電路較簡單。當 CPU Chapter 2 │微處理機硬體架構 35
的功能需求愈來愈複雜時,許多 CPU 都支援超過 100 個以上的指令群,有些 CPU 甚至超過
200 個指令,數量相當龐大,也使得指令解碼與執行的硬體線路複雜度相當高。一個擁有大量
指令的 CPU 被歸類為複雜指令集電腦(Complex Instruction Set Computer,簡稱 CISC)。另外一種機器是「哈佛(Harvard)」結構,如圖 2-7(b) 所示,它具有獨立的程式
1980 年 代 開 始 有 另 一 派 的 CPU 設 計 者, 提 倡 使 用 較 少 的 指 令 的 CPU,記憶體與資料記憶體,分別擁有獨立的匯流排與
因為這樣 CPU 連接,允許 CPU 同時提取指令與
可以大大降低 CPU 內部的硬體線路,大部分指令都在 CPU 內部完成執行工作、而且不
存取資料,可以提高效能。兩組匯流排寬度可以不同,也就是指令寬度與資料寬度可
需要常常存取記憶體,所以執行速度較快。這類電腦被稱為精簡指令集電腦(Reduced
以不同,例如 Microchip 公司的 PIC16 的指令是 14 位元,而資料是 8 位元寬度。目前
Instruction Set Computer,簡稱 RISC)。 使用哈佛結構的 CPU 或微控制器有很多,除了 Microchip 公司的 PIC 系列晶片,還有
電腦的指令集設計除了考量機器語言的架構外,也應考慮高階程式語言的因素,高
Motorola 公司的 MC68 系列、Zilog 公司的 Z8 系列、ATMEL 公司的 AVR 系列和 ARM

簡 單 學 習
階語言必須透過編譯器轉換為機械語言,使用複雜指令集,可以降低編譯器的複雜程度
公司的 ARM9、ARM10 和 ARM11 等。
與提高整體效能。CISC 提供較多指令樣式,讓高階語言的程式敘述,可以較容易轉換
位址匯流排 ╳

中央處理單元
到機器語言,就可以降低編譯器的複雜程度。CISC 的另一個特性是「指令格式長度可
變」,運算元的數目可以是 0 ~ n 個,指令的長度多樣,這也造成指令解碼電路的複雜 資料匯流排

度。隨著指令與定址模式的增加,需要更多的硬體邏輯電路來實現並支援,因此可能造
成指令執行速度變慢。
CPU
主記憶體 輸出入單元
CISC 主要特徵 (程式與資料) (I/O 埠)
特徵、特色
01 02 03 04
(a) 范紐曼結構

指 令 數 量 眾 多, 不同長度的指令 提供可直接存取 定址模式多樣 歸 納 課 文 中 特 徵、 特 色, 詳 細 解 說,


通 常 有 100 ~ 格式。 記憶體的指令。 性, 通 常 有 5 ~
250 個 指 令。 但
是某些特殊功能
20 種模式。
加深記憶。
指令並不常用。

反觀 RISC 主要由「暫存器與暫存器間的運算」的指令組成,只提供單純的儲存與
(b) 哈佛結構
載入指令進行記憶體資料的存取,如果指令操作需要記憶體內的運算元,都需要透過載
圖 2-7 范紐曼與哈佛結構
入指令載入暫存器,再進行指令執行,同樣地,如果執行結果需要回存記憶體,也需
要透過儲存指令寫入記憶體。所有微運算都只在暫存器之間進行,大大提升指令效能,
RISC 通常需要大量的暫存器支援這樣的工作模式。 2-1 隨堂練習
1. 小艾設計一個微處理機系統,想要擴充記憶體容量,請問他可以採取以下哪個策略
( 可複選 ) ?      
AC20410_03.indd 102 2020/7/9 下午 02:50:01
(A) 擴大位址匯流排寬度 (B) 擴大資料匯流排寬度 (C) 擴大控制匯流排寬度。

素養題 2. 當 CPU 有 32bits 資 料 匯 流 排 24 位 元 位 址 匯 流 排, 表 示 支 援 的 最 大 記 憶 體 容 量 為


      bytes。

全 書 練 習 題 加 入 大 量 素 養 題 目, 完 全 3. 因為 COVID-19 關係,小健到西藥房排隊買口罩,排前面的人先買到口罩。這樣很
像微處理機課堂講過的哪種結構的運作?      
融入新課綱精神。
AC20410_02.indd 35 2020/7/9 下午 02:40:35

學習重點回顧 重點歸納彙整重要觀念,在最短時間做二次學習。

課後習題 章末提供習題,延伸學習,驗收學習成果。 封面人物:


芸涵.17 歲
246 微處理機 Chapter 2 │微處理機硬體架構 79 B 型/金牛座
Chapter 6 學習目標回顧 Chapter 2 課後習題
 課後習題 細心有毅力、
學習目標 1:能描述記憶體階層分類記憶體
1. 記憶體階層分類如下圖:
選擇題 愛思考善於計畫的
2-1 1. 某一微電腦具有 32 條位址線與 8 條資料線,不外加電路,則它的 CPU 可
直接存取之記憶體位址空間最大可達
(A) 16 MB (B) 256 MB (C) 1 GB (D) 4 GB。
女生
2. 有關微處理機的敘述何者錯誤? (A)8 位元的 CPU 每次可以處理 1byte 位
元組的資料 (B) 微處理機的位元數越大,執行速度愈快 (C) 以 16 位
元的微處理機處理 128 位元的資料,需處理 6 次 (D) 因電腦等級界線愈
來愈模糊,微處理機可稱為中央處理單元(CPU)。

3. CPU 內部結構中,較適合作管線(Pipeline)處理的結構體為
(A) ALU (B) Queue (C) Register (D) Cache。
學習目標 2:能描述三種依製造技術分類的記憶體特性與產品
4. 下列有關「PC 中匯流排(Bus)」的敘述中,何者有誤?
2. 記憶體依據製作材料及揮發性分類如下圖:
(A) 匯 流 排 一 般 分 為 資 料 匯 流 排(DataBus), 位 址 匯 流 排(Address
Address
Bus) 和 控 制 流 排(Control Bus) 三 種 (B) Data Bus 是 在 CPU 和
Memory 之 間 傳 送 資 料, 所 以 是 雙 向 性 (C) Address Bus 可 用 來 標 明
Memory 或 I/O Port 位址的地方 (D) Data Bus 的長度和 Address Bus 的
長度必須一樣。

5. 電腦的哪一個部分負責從主記憶體讀取並解釋指令?
(A) 控制單元 (B) 主記憶體 (C) 輸出 / 入單元 (D) 算術邏輯單元。
(a) 依製作材料分類 (b) 依揮發性分類
2-2 6. 在 CPU 中的暫存器,何者之主要功能是儲存機器碼指令的位址?
學習目標 3:能說明半導體記憶體資料存取原理 (A) 指令暫存器(IR) (B) 程式計數器(PC)

3. ROM 的分類與特性如下表所示: (C) 記憶資料暫存器(MDR) (D) 通用暫存器(GR)。

類 型 特性簡述 7. 下列有關 80×86 微處理機架構的敘述,何者錯誤?


Mask ROM 不能更改資料,適合大量生產 (A) 控制單元負責 CPU 內部各單元間動作的聯繫
PROM 只能燒錄一次
(B) 記憶單元可存放資料
EPROM 可燒錄多次,燒錄前需用紫外線清除原來資料
EEPROM 可燒錄多次,燒錄前需用高電壓清除原來資料 (C) 輸出入單元屬於 CPU
Flash ROM 可讀寫,需以高電壓清除與寫入資料 (D) 算術邏輯單元可實現各類算術及邏輯功能。

v
AC20410_06.indd 246 2020/7/9 下午 03:34:34 AC20410_02.indd 79 2020/7/9 下午 02:40:52

AC20410_編特.indd 5 26/8/2020 9:17:21


目 錄
pter
微處理機基本概念

1
a
Ch

1-1 微處理機之發展與應用 2
1-2 微處理機的結構 11
1-3 指令之提取、解碼及執行 15
1-4 微處理機效能評估 19
學習目標回顧 21
課後習題 23

Chapt
微處理機硬體架構

2
er

2-1 微處理機系統組成架構 28
2-2 微處理機運作原理 36
2-3 記憶體裝置 48
2-4 位址解碼與擴展 54
2-5 輸出入裝置 63
學習目標回顧 77
課後習題 79

pter
微處理機軟體發展流程

3
a
Ch

3-1 指令與程式 86
3-2 定址模式 96
3-3 指令集 102
3-4 高階語言與低階語言之轉換 106
3-5 微處理機軟體處理程序 115
學習目標回顧 118
課後習題 120

vi

AC20410_編特.indd 6 8/9/2020 11:21:02


ap
ter
資料串 / 並列傳輸
Ch

4
4-1 資料輸入 / 輸出方法 126
4-2 資料串列傳輸原理及標準介面 129
4-3 通用序列匯流排介面原理 140
4-4 資料並列傳輸原理 149
4-5 並列顯示介面晶片 156
學習目標回顧 164
課後習題 166

Chapt
中斷

5
er

5-1 中斷的認識 172


5-2 中斷控制原理及優先次序 174
5-3 中斷式資料傳輸原理 181
5-4 常用中斷控制器晶片 183
學習目標回顧 195
課後習題 196

pter
記憶體資料存取

6
a
Ch

6-1 記憶體概述 202


6-2 半導體記憶體資料存取之基本原理 204
6-3 高容量資料儲存裝置資料存取之基本原理 224
6-4 快取記憶體 234
6-5 DMA 基本原理 236
6-6 DMA 控制晶片介紹 241
學習目標回顧 246
課後習題 248

vii

AC20410_編特.indd 7 8/9/2020 11:21:02


Chapt
多核心微處理機

7 er
7-1 平行處理概述 254
7-2 多核心微處理機架構 262
7-3 多核心微處理機應用實例 265
學習目標回顧 269
課後習題 270

pter
微電腦系統架構與應用

8
a
Ch

8-1 微電腦系統架構 274


8-2 嵌入式系統概述 282
8-3 微電腦系統應用 287
學習目標回顧 294
課後習題 295

附錄 隨堂練習簡答 300
圖表資料來源 303
參考文獻 304

viii

AC20410_編特.indd 8 8/9/2020 11:21:03


教學節數

ap
ter 3
1 微處理機基本概念

Ch

本章節次 學習目標
1-1 微處理機的發展與應用 1. 能描述微處理機發展歷史。
1-2 微處理機的結構 2. 能列舉微處理機的分類與應用。
1-3 指令的提取、解碼與執行 3. 能複述微處理機與微處理機系統的
1-4 微處理機效能評估 結構。
學習目標回顧 4. 能解釋指令格式與執行步驟。
課後習題 5. 能列舉微處理機系統效能評估方式。

AC20410_01.indd 1 26/8/2020 3:31:45


2 微處理機

1-1 微處理機的發展與應用
微處理機的身影已經無所不在,相關的產品與應用更遍布在你我的周遭生活,讓我
們從微處理機的發展談起,接著討論它的分類與應用,慢慢的瞭解它 !

1-1-1 微處理機概述
隨著資訊科技的發達,人們資料處理的需求與依賴日漸提高,例如進行計算、查
詢、排序、儲存、列印等工作。將資料(data)進行 資料處理 (Data Processing,簡稱
DP),可取得對人類較有意義的資訊(Information),如圖 1-1 所示,例如找出全校這
次月考國文 90 分以上的學生名字,其中全校學生基本資料與月考成績為資料,經過計
算、排序、比較與篩選等處理後,取得國文 90 分以上的學生名字就是資訊。又例如從
股市變化找出值得投資的股票,眾多股票價格變化是資料,值得投資的股票是資訊。

圖 1-1 資料與資訊

因為大量資料需要重複性、準確與快速的處理與運算,微處理機(microprocessor,
簡記 µP)應運而生。自從 1971 年 Intel 公司發表全球第一顆 4 位元微處理機 4004,如
圖 1-2 所示,改變世界科技的發展,也迅速深入人類的生活中,改變生活模式。環顧四
週,手機、電腦、家電、遊戲機等都有微處理機的影子。由於積體電路製作技術突飛猛
進,微處理機也由 4 位元,一路進步為 8 位元、16 位元,到目前常使用的 32 位元與 64
位元,功能愈來愈強大,體積愈來愈小,價格也更便宜了。

4004 微處理機特性:
內部晶片尺寸 3mm×4mm,外部包裝 DIP
16Pin 針腳,內有 2,300 個電晶體,最高時
脈 740kHz,成本低於 100 美元。

圖 1-2 Intel 4004 外觀與特性簡述

AC20410_01.indd 2 26/8/2020 3:31:46


Chapter 1 │微處理機基本概念 3

微處理機具有高速運算與資料處理的能力,依據應用領域的不同,可以概分為通用
型計算機 (general-purpose computer) 與嵌入式系統 (embedded system) 兩種類型,因功
能需求不同,發展的重點也分道揚鑣,但是兩者架構、原理雷同。通用型計算機,俗稱
電腦(Computer)或電子計算機,是微處理機最早的應用,大家比較熟悉,讓我們從這
裡談起。

1-1-2 微處理機的發展
早期由於人類需要大量重複、複雜的計算,開始使用機械方式製作具有計算能力的
機器,隨著電子技術的進步,成本、體積與執行速度等都劇烈改變,電腦的演進也精彩
絕倫,依照製造技術的時代分成如表 1-1 所示的分類。

中國人使用的算盤應是人類最早用來計算的工具,可惜並未進一步賦予自動化的能
力。西元 1642 年,法國數學家布萊茲 ‧ 巴斯卡(Blaise Pascal)發明以齒輪當成運算
的機構,每個齒輪有 10 個齒(牙),當轉完一圈,會使另一個齒輪前進一格,達成機
械式自動進位的加法器,這也是所有機械式計算機的基本原理,而程式語言 PASCAL
就是以他的名字命名表達紀念之意。但嚴格來說,這個機械時期的主要計算元件不是電
子元件,不能算是電腦,通常暱稱第 0 代電腦。

以巴斯卡發明的機械式計算機為基礎,加入馬達驅動即可實現自動化的機械計算
機,但是終究是使用機械方式實現計算能力。因為真空管的發明,終於有了真正的電子
計算機出現,使用打孔卡片儲存資料的概念,以程式規劃計算機的工作。電腦的發展跟
隨電子零件的進步而演化,由真空管、電晶體、積體電路,到超大型積體電路,電子零
件製作技術的進步,一路走來,也讓組成的電腦不斷地朝快速、體積小、便宜與可靠性
高的趨勢發展。

從第 1 代真空管電腦開始,到現在使用的電腦已跨入第 5 代電腦,除了使用超高速
的積體電路(Very High Speed Integrated Circuit,簡稱 VHSIC)技術外,更加入人工
智慧(Artificial Intelligence,簡稱 AI)的元素,使電腦具有類似人類的推理、判斷、
自然語言等,甚至實現自我學習的能力。

AC20410_01.indd 3 26/8/2020 3:31:46


4 微處理機

表 1-1 依據製造技術區分電腦年代
分 類 年代 主要技術 執行速度單位
機械
第 0 代電腦 1642 ~ 1945 機械
時代
第 1 代電腦 1945 ~ 1954 真空管 ms
第 2 代電腦 1954 ~ 1964 電晶體 µs
電子
第 3 代電腦 1964 ~ 1970 小型與中型積體電路(SSI、MSI) ns
時代
第 4 代電腦 1970 ~至今 超大型積體電路(VLSI) ps
第 5 代電腦 1990 ~至今 人工智慧(AI)

一 第 1 代電腦:真空管時期
西元 1946 年美國賓州大學毛齊雷(J.W. Mauchley)與愛克特 (J.Presper Echert),
利 用 真 空 管 製 作 第 一 臺 自 動 化 數 位 計 算 機, 命 名 為 ENIAC(Electronic Numerical
Integrator And Computer,電子數值積分計算機),如圖 1-3,它的長度為 50 呎、寬 30
呎、重 30 噸,共用了 18800 個真空管,1 秒鐘約可執行 10 萬個運算,必須透過重新接
線進行程式化,以執行不同功能。毛齊雷於西元 1947 年製作 UNIVAC,並將它商品化,
成為第一部商用計算機。真空管電腦的缺點:

1. 體積龐大。 3. 真空管工作時容易產生熱,相當耗電。
2. 執行速度慢,以 ms 為基本單位。 4. 故障率高,信賴性不佳。

圖 1-3 彈道研究實驗室(BRL)Building 328 的 ENIAC

AC20410_01.indd 4 26/8/2020 3:31:47


Chapter 1 │微處理機基本概念 5

二 第 2 代電腦:電晶體時期
1947 年貝爾實驗室創造第一顆電晶體,它的體積小、耗電小、故障率低等特性,
快速取代真空管。西元 1954 年美國麻省理工學院(MIT)利用電晶體製作 TX-0 計算機。
這個時代開始有編寫程式系統(Programming System)的運用,與第一代真空管時期比
較,電晶體電腦有以下優點:

1. 電晶體比真空管體積小很多。
2. 電晶體比真空管速度較快,以 µs 為基本單位。
3. 電晶體工作時產生熱較少,比真空管不耗電。
4. 故障率大大降低,提高信賴性。

三 第 3 代電腦:積體電路時期
西 元 1965 年, 美 國 IBM 公 司 利 用 積 體 電 路 製 作 IBM360 型 電 子 計 算 機, 另 外
PDP-11、CDC-7600 也都屬於第 3 代電腦。 積體電路 (Integrated Circuit,簡稱 IC),
以矽材質製作,將許多電晶體、電阻與二極體等電子電路需要的元件,放在單一個晶片
上,可大大降低電子電路的體積與重量。與第二代電晶體時期比較,積體電路時期有以
下優點:

1. 體積更小,因將許多元件濃縮在單一晶片內,元件可靠性更佳。
2. 執行速度快,以 ns 為基本單位。
3. 產生的熱能更少,消耗電力極少。
4. 故障率相當低,信賴性極佳。
積體電路技術進步很快,依據單一晶片可容納的電子元件數目分類,可整理如表
1-2,表中分別以電子元件與邏輯閘數目描述各種等級 IC 的大小,而 1 個邏輯閘約含 10
個電子元件。

AC20410_01.indd 5 26/8/2020 3:31:47


6 微處理機

表 1-2 積體電路等級分類
簡稱 描述 電子元件數目 容納邏輯閘數目
SSI Small Scale Integrated Circuit(小型積體電路) 10 ~ 100 10 以下
MSI Medium Scale Integrated Circuit(中型積體電路) 100 ~ 1000 10 ~ 100
LSI Large Scale Integrated Circuit(大型積體電路) 1000 ~ 10,000 100 ~ 1000
Very Large Scale Integrated Circuit
VLSI 10,000 ~ 100,000 1000 ~ 10,000
(超大型積體電路)
Ultra Large Scale Integrated Circuit
ULSI 105 ~ 107 104 ~ 106
(超特大型積體電路)
GSI Giant Scale Integration(巨大型積體電路) 107 以上 106 以上

四 第 4 代電腦:超大型積體電路時期
積體電路製作技術愈來愈好,密度(單位
體積的電子零件數目)愈來愈高,於西元 1970
年開始以 VLSI 技術製作計算機。從 1970 年代
Intel 發表 4 位元的微處理器 4004,與後來蘋果
公司的 Apple Ⅱ,到目前使用的 IBM PC 系列
或 Apple 麥金塔(MAC)系列等,都屬於第四
代電腦。以 VLSI 技術製造,體積更小,信賴
性更佳,而且執行速度更快,以 ps 為基本單位。
目前使用的電腦為第四代電腦。圖 1-4 為 1977 圖 1-4 Apple II
年蘋果公司發表的 Apple II。

五 第 5 代電腦:人工智慧時期
第 5 代電腦以 ULSI 以上技術製作電腦,除了體積更小、運算速度更快,並整合人
工智慧的功能,例如目前常採用機器學習和深度學習的方式,使電腦具有類似人類的思
考、推理能力,這樣的人工智慧與自然語言等知識處理能力,使電腦能聽、能看、會說
話、也會思考,更具自我學習與推論能力,可見未來電腦精彩可期。

AC20410_01.indd 6 26/8/2020 3:31:47


Chapter 1 │微處理機基本概念 7

第 5 代電腦以 ULSI 以上技術製作電腦,除了體積更小、運算速度更快,並整合人


工智慧的功能,例如目前常採用機器學習和深度學習的方式,使電腦具有類似人類的思
考、推理能力,這樣的人工智慧與自然語言等知識處理能力,使電腦能聽、能看、會說
話、也會思考,更具自我學習、推論預測等能力,可見未來電腦精彩可期。

圖 1-5 人工智慧、機器學習深度學習的異同

1956 年達特茅斯夏季人工智慧研究計劃,會議中首先提出人工智慧一詞,期望讓電
腦像人一樣具備辨識、思考與學習等能力,之後科學家嘗試應用多種可能技術實現。加
拿大 Geoffrey Hinton 教授被譽為深度學習之父,於 1986 年提出倒傳遞類神經網路模型,
開啟機器學習新頁,幾度面臨瓶頸,但他仍持續推動改進人工神經網路,終於在 2006
年發表深度學習相關理論,突破限制並提高可用性,加上同時期電腦效能大幅提昇與雲
端技術的熟成,引領人類進入人工智慧蓬勃發展與豐收的時代。

圖 1-5 為三者的關係圖,可概略歸納,機器學習為人工智慧的眾多發展技術分支之
一,而深度學習又是機器學習多種策略之一。深度學習主要使用大量數據資料,結合多
層類神經網路進行學習,目前廣泛應用在各個領域。

AC20410_01.indd 7 26/8/2020 3:31:48


8 微處理機

1-1-3 微處理機的應用
微處理機組成電子計算機,俗稱電腦,是最早、最普遍的應用,依據電腦的執行速
度、記憶容量大小、資料儲存能力、資料處理的精確程度與價格等條件,可將電腦區分
為超級電腦、大型電腦、迷你電腦、與微電腦等,如圖 1-6 所示,但由於電子技術的突
飛猛進,現在的微電腦到大型電腦之間的界限已經相當模糊了!目前常見電腦,都屬 微
電腦 (Microcomputer),又稱「 個人電腦 (Personal Computer,簡稱 PC)」,例如桌
上型電腦、筆記型電腦、掌上型電腦、平板電腦等,為提供一般目的個人或商業使用的
電腦設備,有別於太空、科學、軍事或大量資料處理等特殊目的電腦。

圖 1-6 電腦依等級分類

依據電腦處理訊號來分類,可分為 類比電腦(Analog computer)、數位電腦(Digital


computer)與 混合電腦 (Hybrid Computer)等三類,如圖 1-7 所示。類比電腦內部以連
續性類比訊號表示資料來處理工作,輸入與輸出資料也為類比值,例如溫度、類比電壓、
壓力等。類比電腦理論上執行速度較快,但是執行結果準確度較差,且容易受雜訊干擾,
目前沒有實際應用。數位電腦則是以數位訊號表示資料,可得較精確的運算結果,且接
受的雜訊邊界也較大,通常所稱的「電腦」是指數位電腦。而混合電腦則是結合類比電
腦與數位電腦的特點,以數位電腦接受外部的物理量類比訊號轉換為數位資料,而將數
位資料交給數位電腦處理與運算。

圖 1-7 電腦的分類

AC20410_01.indd 8 26/8/2020 3:31:49


Chapter 1 │微處理機基本概念 9

微處理機的應用,除了以「個人電腦」的
外觀呈現外,在其他的應用領域、範圍及採用
的數量都遠遠超過電腦,其中應用數量最大的
是嵌入式系統(Embedded System),例如手機、
遊戲機、汽車、洗衣機、無人飛機等,這些產
品內部都具備有微處理機的控制系統,架構與
電腦雷同,但應用已深入生活中的各種層面了!
(a) 個人電腦

(b) 嵌入式系統
圖 1-8 微處理機的應用:個人電腦與嵌入式系統

所謂嵌入式系統是將微處理機嵌入(放入、整合在一起)到一個實際物體中,實現
該物體的智慧化控制。例如將微處理機系統安裝到大型艦船中,並配置各種週邊介面、
感測電路,構成自動駕駛儀或輪機狀態監測系統。嵌入之後,微處理機便失去了原來的
形態與通用的電腦功能,為了區別於原有的通用電腦系統,便把嵌入到物件體系中,實
現物件體系智慧化控制的電腦,稱作嵌入式系統。

嵌入式系統與通用型電腦系統有著完全不同的技術要求與技術發展方向,兩者比較
如表 1-3。通用型電腦系統的技術要求是高速、大量的數值計算以及擴大儲存容量(能
力),並保留部分的可擴充性,讓使用者有最大彈性的使用權,例如可以文書處理、玩
遊戲、看影片、聽音樂等不同類型的應用,也可依據需求加裝不同的介面卡。

AC20410_01.indd 9 26/8/2020 3:31:58


10 微處理機

而嵌入式系統的技術要求則是在固定的物件中展現智慧化控制能力,技術發展方向
則是要求與物件系統密切相關的嵌入性能、控制能力與控制的可靠性,執行速度只要能
因應該物體環境完成指定工作即可,嵌入之後,只執行與該物體相關的功能與要求,不
需無謂的硬體擴充或軟體安裝。

當然也可以將通用型電腦系統進行改裝,嵌入大型設備中實現嵌入式應用,但是,
這樣做會有體積大、成本高與特殊功能要求上無法符合的問題。例如,對於較小型物件
系統,如家用電器、儀錶、儀器等,無法嵌入大體積的通用型電腦系統。

表 1-3 通用型電腦與嵌入式系統比較
微處理機應用類型 技術要求
‧ 高速執行。
‧ 大量的數值計算能力。
通用型電腦系統
‧ 儲存容量大。
‧ 保持擴充彈性,例如連接不同的印表機、外接式儲存媒體。
‧ 實現物件的智慧化控制能力。
‧ 依據嵌入物件系統要求,完成符合的嵌入性能、控制能力與控制的可靠
性。
嵌入式電腦系統
‧ 體積符合嵌入物件的環境。
‧ 執行速度、儲存容量與計算能力只要符合嵌入環境要求即可。
‧ 通常需要接受類比環境感測訊號的能力。

嵌 入 式 系 統 的 應 用 琳 瑯 滿 目, 從 低 階 的 簡 單 家 電 控 制, 到 高 階 的 物 聯 網(IoT,
Internet of Things)系統,不勝枚舉,發展方向可概分為消費性電子、自動化產業、工
業控制與辦公室自動化四個方向,如圖 1-9 所示,舉出常見的應用。

圖 1-9 嵌入式系統應用分類

AC20410_01.indd 10 26/8/2020 3:31:59


Chapter 1 │微處理機基本概念 11

1-1 隨堂練習
1. 請分別描述微處理機發展歷史五個時代的重點技術
第 1 代為      、第 2 代為      、第 3 代為        、
第 4 代為        、第 5 代為        。

2. 依據積體電路內部容納的邏輯閘數量分類,SSI 應有      、
MSI 應有      、LSI 應有      。

3. 露 西 最 近 購 買 了 一 個 音 箱, 具 有       功 能, 可 以 用 語 音 下 命 令 開 關 燈、
跟它聊天打發無聊時間。。

1-2 微處理機的結構
微處理機組成「微處理機系統」就可以進行不同工作與應用,驅使我們生活深度的
依賴它,讓我們先從如何組成完整的微處理機系統談起,更進一步瞭解微處理機的結構
與如何工作。

1-2-1 微處理機系統概述
微處理機具有強大、快速的計算、比較等能力,但需要配合其他單元組成一個完整
的系統才能完成工作。一個可以工作的「微處理機系統」的組成架構如圖 1-9 所示,包
括 中央處理單元 (Central Processing Unit,簡稱 CPU)、 記憶體單元 (Memory Unit,
簡 稱 MU) 與 輸 出 入 單 元 (Input-Output Unit, 簡 稱 IOU) 三 部 分。 其 中, 中 央 處 理
單元又可分為 控制單元 (Control Unit,簡稱 CU)與 算術邏輯單元 (Arithmetic Logic
Unit,簡稱 ALU),輸出入單元也可分為 輸入單元 (Input Unit,簡稱 IU)與 輸出單元
(Output Unit,簡稱 OU),如圖 1-10 所示微處理機系統的組成架構。

圖 1-10 微處理機系統組成的基本架構

AC20410_01.indd 11 26/8/2020 3:31:59


12 微處理機

微處理機組成的應用系統形式常見的有電腦、嵌入式系統、微控制器等,基本上架
構雷同,以下為陳述方便,以電腦的角度來思考微處理機系統。電腦的架構中,各單元
各司其職,圖中以箭頭表示資料流向。中央處理單元,或稱 CPU,就像系統的首腦,負
責思考、判斷(邏輯運算)、計算與控制、暫存等功能,其中控制單元負責控制整台電
腦的所有動作,像一位指揮家,指揮棒揮動,整個樂團將隨之奏出美妙的樂章。算術邏
輯單元負責算術運算(例如+、-、×、÷ 等)與邏輯運算(例如 AND、OR、XOR、
比較等)兩項運算工作,也是電腦進行資料處理的主要地方。

記憶體單元 MU 負責程式與資料的記憶儲存功能,可供資料的寫入與讀取。當電腦
為要達到某個功能時,必須執行一段程式。而程式是由許多指令組成,要執行之前,必
須先存放(載入)在記憶體內,再依序讀取到 CPU 內部進行執行工作,一道一道指令
依照順序執行,以完成指定功能。

輸入 - 輸出單元 IOU,又可分為輸入單元與輸出單元,是電腦對外的部門,一方面
負責輸出入裝置與 CPU 的資料格式轉換,另一方面緩衝雙方速度的差異。由輸入單元
負責與輸入裝置聯繫,當鍵盤、滑鼠等輸入裝置有資料要送入 CPU,會先經過輸入單元
統整後,再送給 CPU 處理。同樣地,輸出單元負責與輸出裝置聯繫,例如印表機、螢
幕等。當 CPU 要將處理後的資訊透過輸出裝置呈現給使用者,會將資料先送給輸出單
元,再由輸出單元送給輸出裝置,例如透過螢幕顯示出來,或印表機印出。

微處理機系統透過輸入單元,由輸入裝置(例如硬碟、鍵盤)讀入使用者提供的相
關控制命令、程式與資料至記憶體,CPU 負責執行(包括運算、比較等)儲存於記憶體
內的程式與資料,處理完畢後,將處理結果經過輸出單元送至輸出裝置,例如螢幕、印
表機,或儲存結果在磁碟機中。整個處理過程會由 CPU 內部的控制單元擔任控制中樞,
完成各單元的協調工作。

組成 CPU 功能的電路相當複雜,早期需要組合多個積體電路才能達成。因為積體
電路技術的精進,將 CPU 所有電路製作在同一晶片上,稱為 微處理機 ,也譯作 微處理器 ,
簡記為 µP 或 MPU(Micro Processor Unit),所以 CPU、微處理機、微處理器、MPU
等都是相同意義。另外, 單晶片微電腦 (single chip microcomputer)簡稱 單晶片 ,又
稱 微控制器 (microcontroller),則是將 CPU、MU、IOU 與各種輸出入介面等電路都
整合在一塊積體電路晶片上,優點是體積小、成本便宜、使用方便,但功能與效能通常
較弱,常用來作簡單的控制。

AC20410_01.indd 12 26/8/2020 3:31:59


Chapter 1 │微處理機基本概念 13

1-2-2 微處理機的基本結構
微處理機,或稱 CPU,內部至少包含控制單元、算術邏輯單元與許多暫存器,才能
達成執行指令與控制整個系統的功能,如圖 1-11 所示。可完成某種功能的一支程式,
是由許許多多指令組成,由 CPU 依序執行這些指令,以達成程式的功能。

1. 算術邏輯單元(ALU)可依據指令的要求,
對 暫 存 器 的 資 料 進 行 算 術、 邏 輯、 移 位 或
比較等運算。
(1) 算術運算包含加、減、乘、除四則運算。
(2) 邏 輯 運 算 則 至 少 包 含 AND、OR、
NOT、XOR 等。
(3) 移位運算包含左移、右移等運算。
(4) 比較運算則包括大於、小於與等於的比
較。 圖 1-11 中央處理單元的組成
2. 控制單元(CU)負責指令的解碼與執行,控制整個系統各部門的動作,包括 CPU 內
部、記憶體與輸出入單元等,以完成指令的功能。
3. 暫存器(Register)主要作為指令、資料暫時儲存的地方,或是運算結果暫時儲存的
位置。一般暫存器可分為幾類:
(1) 狀 態 暫 存 器 (Status Register): 也 稱 為 旗 標 暫 存 器(Flag Register), 簡 稱
FR,顯示 CPU 目前的狀態,例如運算結果是否為 0 ?是否溢位?是否進位?
(2) 指令暫存器 (Instruction Register):簡稱 IR,由記憶體提取指令到 CPU 內部準
備指令解碼、執行時,暫時存放的位置。
(3) 程式計數器 (Program Counter):簡稱 PC,指向下一個要執行指令所在的記憶
體位置。CPU 依照 PC 所指記憶體位址提取指令,進行執行指令的工作。
(4) 資料暫存器 (Data Register):執行指令時要處理的資料之暫時儲存位置。例如
要進行加法運算的加數與被加數,進行加法前,事先從記憶體讀取放置到資料暫
存器,再進行加法運算。大部分的 CPU 會被設計為運算時只對暫存器進行處理,
可以提高執行效能,所以運算前資料需要事先放到資料暫存器中。
(5) 位址暫存器 (Address Register):執行指令時要處理的資料如果在記憶體中,其
所在位置儲存在位址暫存器。

AC20410_01.indd 13 26/8/2020 3:32:00


14 微處理機

CPU 負責執行儲存於記憶體內的程式碼,這些程式碼是由使用者透過輸入裝置(例
如鍵盤、磁碟機)載入記憶體,要求 CPU 執行的工作內容。而程式碼是由一道一道「指
令」組成,每道指令代表著使用者要求 CPU 執行的一件子工作,而 CPU 就是負責執行
這些指令的首腦,利用本身內部的控制單元、算術邏輯單元與提供暫時儲存資料的暫存
器三個主要部分,完成不同的指令動作。每個 CPU 所能執行的指令群不盡相同,但大
部分,相同廠商生產的 CPU 指令集絕大部分是類似的。

指令是由二進位值所定義的,稱為 機械碼 (machine code)或 機械語言 (machine


language),例如指定 1001 執行加法,0101 執行減法。實際上,微處理機只認得機械
碼,但為了方便人類記憶指令,會以「助憶符號」表示這些二進位值,就成了所謂的「 組
合語言 (assembly language)」,例如以 add 表示上述的 1001,以 sub 表示 0101,讓
使用者比較容易記憶指令的功能。組合語言可以經過「 組譯器 (assembler)」翻譯成二
進位的機械碼,以供 CPU 執行之用。所以無論以高階程式語言或組合語言撰寫程式碼,
最終 CPU 可以接受的指令,一定是轉換後二進位型式的機械碼。

圖 1-12 是 CPU 的 內 部 架 構 圖,CPU


透過位址匯流排、資料匯流排、控制匯流
排與外界(例如記憶體)溝通,達成執行
指令的目的。一開始要執行的指令會先放
置在記憶體中,CPU 從記憶體讀取一道指
令後,會先放在內部的指令暫存器(IR),
再 經 指 令 解 碼 器 (ID,Instruction
Decoder, 簡 稱 ID) 解 碼 後, 決 定 指 令 應
執行的工作,可能是對記憶體或暫存器內
圖 1-12 CPU 內部架構圖
的資料作運算、搬移或比較等工作。

程式是由許多指令組成的,CPU 負責執行程式中的指令,每一次只執行一道指令。
CPU 要執行的程式是放在主記憶體中,程式計數器(PC)則是來指向「下一道要執行
指令所在的記憶體位址」,當指令被提取到指令暫存器時,PC 會自動遞增,再指向下
一道指令的記憶體位址。CPU 執行指令的步驟如下:

AC20410_01.indd 14 26/8/2020 3:32:00


Chapter 1 │微處理機基本概念 15

1. 程式計數器內指示下一個指令在記憶體的位置(位址)。CPU 根據程式計數器,將
指令碼讀入 CPU 後放在指令暫存器,之後,程式計數器會遞增自動指向下一個要執
行指令的位置。
2. 將指令由記憶體讀入 CPU 內的指令暫存器,稱為提取指令。提取後,以指令解碼器
進行指令解碼,決定應送出的控制訊號,以完成指令指定的工作,例如加、減、乘、
除等。

1-2 隨堂練習
1. 微處理機系統的基本架構包括        、        、
        、        與        等五個單元。

2. 用來指向下一個要執行指令所在的記憶體位置是        。

3. 程式是由許多指令組成,而指令則是由二進位值所定義的,稱為        。
用助憶符號表示這些二進制值,則稱為        。

4. 程式描述「A = A + B」,運算碼是        ,運算元是        。

1-3 指令的提取、解碼與執行
程式是由一道一道指令組成,CPU 的工作就是依序執行這些指令,完成程式指定
的 功 能。 指 令 最 基 本 格 式 可 分 成 運 算 碼 (Operation code, 簡 稱 OP code) 與 運 算 元
(Operand)兩部分,其中 運算碼代表指令執行的功能代碼 ( 做什麼事 ),不同的指令具
有不同的運算碼,會執行不同的指令功能。 運算元則是執行功能過程中需要的素材 。例
如 ADD AX,BX,功能為加法運算,示意為 AX ← AX + BX,將 AX + BX 的內容相加,
再將結果 ( 和 ) 放至 AX 中。其中 AX 與 BX 都是暫存器名稱。指令中 AX 為被加數,
BX 為加數。「ADD AX,BX」這道指令中,ADD 為運算碼,AX 與 BX 為運算元。

微處理機內部必須透過「指令解碼器」將運算碼解碼成為處理可執行的「微碼」,
通常由好幾個子動作(微碼)組成一個運算碼。而運算元則是用來指定運算碼執行時所
需的資料或所需資料的儲存位址。

AC20410_01.indd 15 26/8/2020 3:32:01


16 微處理機

運算碼只有一個欄位,因為一個指令只會有一個運算碼(只有一種功能),而運算
元則可能有 0 個或多個欄位,用以指定運算過程中需要的資料或儲存結果的地方。依據
運算元數目區分,常見的指令的格式有四位址指令、三位址指令、二位址指令、單位址
指令與零位址指令等,如圖 1-13 所示。

圖 1-13 指令格式

通常每一道指令都需要經過幾個基本週期才能執行完畢。CPU 執行指令的時間稱為
「指令週期」,可分成提取週期、執行週期二個階段,又可細分為提取指令、指令解碼、
計算運算元有效位址、提取運算元、執行指令、存放結果等六個步驟,如圖 1-14 所示。

圖 1-14 指令週期

1 提取指令: 依據 PC 內容,至記憶體提取指令至指令暫存器。提取完畢,PC 自
動遞增,再指向下一道要執行指令的記憶體位址。

2 指令解碼: 經由指令解碼器將存在指令暫存器中的指令解碼為數個微碼,以方
便 CPU 執行。

3 計算運算元有效位址: 依據不同的定址模式(Addressing Mode)計算運算元的


有效位址。也就是計算運算元真正位置在那裡,可能在暫存器,可能在記憶體
中。所謂定址模式是指「表示運算元所在位置」的不同表示方法。

AC20410_01.indd 16 26/8/2020 3:32:01


Chapter 1 │微處理機基本概念 17

4 提取運算元: 依據算出的運算元有效位址,由暫存器或記憶體內提取運算期間
需要的資料。

5 執行: 執行指令運算碼指定的工作,例如加法、減法、AND 邏輯運算等。


6 存放結果: 將執行結果儲存至指定位置,可能是暫存器,可能是記憶體位址。
如圖 1-15 所示,表示執行指令時中央處理單元與記憶體之間的關係,可以說明指
令執行的 6 個步驟。假設現在程式已經載入到主記憶體中等待執行,PC 也指向記憶體
位址 001 的地方。我們增加 3 個暫存器 MAR、MDR 與 R1,分別說明如下:
1. MAR (Memory Address Register,記憶體位址暫存器),要從記憶體讀取資料,或
寫入資料到記憶體時(進行存、取記憶體的操作),暫存記憶體的位址。
2. MDR (Memory Data Register,記憶體資料暫存器),要從記憶體讀取資料,或寫入
資料到記憶體時(進行存、取記憶體的操作),暫存要寫入或讀取的資料。有時也稱
MBR(Memory Buffer Register)。
3. R1 為通用暫存器,可用來儲存運算的資料與結果。

圖 1-15 指令的執行細部解析

AC20410_01.indd 17 26/8/2020 3:32:02


18 微處理機

假設「指令 1」要執行的工作是將「記憶體中位址 110 的內容 A 與 R1 內容相加,


結果放在 R1 暫存器」,ADD R1, M[110],簡化表示為「R1 ← R1 + M[110]」執行 6 步
驟說明如表 1-4 所示。
表 1-4 指令執行動作
週期 步驟 執行工作描述
初始 PC = 001,依據 PC 所指位址,到記憶體位址 001 處提取
提取 1 提取指令 「指令 1」到 IR。PC 遞增,指向下一道指令位址 010,此時
週期 PC = 010。指令 1 即 ADD R1, M[110]。
2 指令解碼 IR 內指令送至 ID 進行指令解碼。
計算指令中運算元的有效位址,1 個在記憶體內,所在位址放
3 計算運算元有效位址
在 MAR,另 1 個在暫存器 R1。此時 MAR = 110。
執行
4 提取運算元 提取記憶體位址 110(位址在 MAR)處運算元到 MDR。
週期
5 執行指令 將 MDR 與 R1 內容送至 ALU,執行加法運算。
6 儲存運算結果 將 ALU 運算結果儲存到 R1。

1-3 隨堂練習
1. 指令格式可分    與    兩部分,前者只會有 1 個、後者則可能 0 ~多個。

2. 指令週期可概分提取週期與執行週期,其中:
提取週期包括      、      
執行週期包括        、        、        、
        。

3. CPU 存取記憶體資料時,要存取的位址會放在哪一個暫存器?      。

AC20410_01.indd 18 26/8/2020 3:32:02


Chapter 1 │微處理機基本概念 19

1-4 微處理機效能評估
微處理機是電腦系統內部最重要的部分,主要負責思考、判斷與計算,也是電腦的靈
魂,它能力強弱將決定電腦的功能強弱。通常我們以 CPU 一次所能處理的「資料位元數」
客觀地區分 CPU 的能力強弱,例如 32 位元 CPU,是指 CPU 擁有每次處理「32 位元資料」
的能力,兩個 32 位元數值的加法,可以一次計算完成。而 64 位元資料的運算,這顆 CPU
至少必須處理兩次。CPU 每次能處理的資料位元愈多,處理資料的速度愈快,表示處理資
料的能力愈強,常見的有 4 位元、8 位元、16 位元、32 位元、64 位元等。

微處理機系統的系統效能(Performance)主要由整個系統的軟硬體架構、運算速
度等因素決定,系統效能所關注的是執行成效,要客觀取得效能資訊,應讓微處理機系
統長時間執行不同複雜度的應用與計算才能決定。為了較快速獲知系統的性能,通常會
執行稱為「benchmark」的這類程式,快速取得量化的效能指標。

微處理機系統中,除了 CPU 本身的運算速度外,還包括記憶體與 I/O 的效能、另外


CPU 透過與記憶體、I/O 的資料傳輸速度也相當重要,以下將探討常見的效能評估標準。

一 CPU 效能指標
除了處理資料位元數外,使用 MIPS 與 MFLOPS 方式可以客觀地評估 CPU 的執行
速度。其中 MIPS(Million instruction per second)是指「CPU 每秒鐘所能執行多少百
萬 個 指 令 」, 單 位 為「10 6 指 令 / 每 秒 」。 例 如 10MIPS 是 指 CPU 每 秒 鐘 可 以 執 行 10
百萬(10 7)個指令,當然 MIPS 數值愈大,表示 CPU 執行速度愈快。對於科學或工程
計算機,常需要處理含小數的數值,數值精確度與運算能力尤為重要,比較適合是採用
MFLOPS(Million Floating point instruction per second)量測效能,而 MFLOPS 是指
「CPU 每秒鐘可以執行多少百萬個浮點數指令」,單位為「10 6 浮點指令 / 每秒」,浮
點運算較複雜、較慢,所以大多數電腦的 MIPS 略大於 MFLOPS。如果單位仍不夠大,
則 可 使 用 GFLOPS(Giga FLOPS), 單 位 為「10 9 浮 點 指 令 / 每 秒 」。 通 常 CPU 的 工
作頻率愈高、每次可以處理的指令數目與資料頻寬愈大,都能提高 CPU 的執行效能。

二 I/O 效能指標
針對 I/O 的效能常用頻寬(bandwidth)來評量,頻寬是指 I/O 最快「每秒鐘傳送多
少百萬位元組(megabytes per second)」,單位為「MB/s」,通常 I/O 裝置與傳輸協
定都有傳輸速度的限制,而且比 CPU 慢得非常多。CPU 執行過程會儘可能降低存取 I/O
的次數,以免浪費執行效率。如果採串列傳輸,一次傳輸一個位元,頻寬單位則為「bps」
(bit per second),表示每秒傳輸的位元數,可為 Kbps、Mbps、Gbps 等。

AC20410_01.indd 19 26/8/2020 3:32:02


20 微處理機

三 記憶體效能指標
記憶體常見的效能評估方法有記憶體頻寬與記憶體存取時間兩種。記憶體頻寬的意
義與 I/O 頻寬相同,是指記憶體與 CPU 之間的資料傳輸速度,單位為 MB/s。存取時間
則是 CPU 存取記憶體所需的平均時間,單位為 ns(nanosecond)或 ps(picosecond)。

四 摩爾定律
Intel 創始人之一高登 · 摩爾(Gordon Moore)於 1965 年提出「 摩爾定律 (Moore's
Law)」,是指「 相同面積的積體電路上可容納的電晶體數目,因製程技術的提升,約
每隔 18 ~ 24 個月便會增加一倍,性能也將提升一倍 」。摩爾定律是簡單評估半導體
製作技術進步的經驗法則,半個世紀以來半導體製程技術的進步也符合摩爾定律向前推
進,使得 IC 產品能持續縮小體積、提升性能、降低成本、增加功能。如圖 1-16 所示摩
爾定律與 Intel 公司出產的 CPU 內部電晶體數目的關係圖,水平軸為年份,從 1970 年
到 2010 年,垂直軸則顯示各型號 CPU 內含的電晶體數目。從圖上可觀察出積體電路製
作技術幾乎呈現線性成長,一個 CPU 晶片內含的電晶體數目大約 5 年左右就提升 10 倍,
進步之快,令人瞠目結舌。

圖 1-16 摩爾定律與 Intel 系列 CPU 關係(來源:Intel 網站)

1-4 隨堂練習
1. 有一個 64 位元 CPU 執行頻率 1GHz,執行一個指令需要 2 個時脈,則此 CPU 效能
為        MIPS。

2. 某個記憶體每次可以傳輸 32 位元,每次存或取需費時 10us,則傳輸 20Kbytes 需要


花費        秒。

AC20410_01.indd 20 26/8/2020 3:32:03


Chapter 1 │微處理機基本概念 21

Chapter 1 學習目標回顧

學習目標 1:能描述微處理機發展歷史
1. 資料處理是指將資料進行資料處理(DP),可取得對人類較有意義的資訊。
2. 1971 年 INTEL 公司發表全球第一顆 4 位元微處理機 4004。
3. 依據製造技術區分電腦年代如下:

分類 年代 主要技術 執行速度單位
機械時代 第 0 代電腦 1642 ~ 1945 機械
第 1 代電腦 1945 ~ 1954 真空管 ms
第 2 代電腦 1954 ~ 1964 電晶體 μs
小型與中型積體電路(SSI、
電子時代 第 3 代電腦 1964 ~ 1970 ns
MSI)
第 4 代電腦 1970 ~至今 超大型積體電路(VLSI) ps
第 5 代電腦 1990 ~至今 人工智慧(AI)

學習目標 2:能列舉微處理機的分類與應用
4. 微 處 理 機 依 據 應 用 領 域 的 不 同, 可 以 概 分 為 通 用 型 計 算 機 與 嵌 入 式 系 統 兩 種
類型,兩者比較如下:
微處理機應用類型 技術要求
‧ 高速執行。
‧ 大量的數值計算能力。
通用型電腦系統
‧ 儲存容量大。
‧ 保持擴充彈性,例如連接不同的印表機、外接式儲存媒體。
‧ 實現物件的智慧化控制能力。
‧ 依據嵌入物件系統要求,完成符合的嵌入性能、控制能力與控
制的可靠性。
嵌入式電腦系統
‧ 體積符合嵌入物件的環境。
‧ 執行速度、儲存容量與計算能力只要符合嵌入環境要求即可。
‧ 通常需要接受類比環境感測訊號的能力。

5. 依據電腦處理訊號來分類如下圖:

AC20410_01.indd 21 26/8/2020 3:32:04


22 微處理機

Chapter 1 學習目標回顧

學習目標 3:能複述微處理機與微處理機系統的結構
6. 「微處理機系統」的組成架構如下圖:

學習目標 4:能解釋指令格式與執行步驟
7. 指令最基本格式可分成運算碼與運算元兩部分。常見的指令的格式如下:

8. CPU 執行指令的時間稱為「指令週期」,可細分如下圖:

學習目標 5:能列舉微處理機系統效能評估方式
9. 通常以 CPU 一次所能處理的「資料位元數」客觀地區分 CPU 的能力強弱。
10. 使 用 MIPS 與 MFLOPS 方 式 可 以 客 觀 地 評 估 CPU 的 執 行 速 度。 其 中 MIPS
是指「CPU 每秒鐘所能執行多少百萬個指令」, 單位為「10 6 指令 / 每秒」。
MFLOPS 是指「CPU 每秒鐘可以執行多少百萬個浮點數指令」,單位為「10 6
浮點指令 / 每秒」。
11. I/O 頻寬是指 I/O 最快「每秒鐘傳送多少百萬位元組(megabytes per second)」,
單位為「MB/s」。
12. 記憶體常見的效能評估方法有記憶體頻寬與記憶體存取時間兩種。
13. 摩爾定律(Moore's Law)是指「相同面積的積體電路上可容納的電晶體數目,
因製程技術的提升,約每隔 18 ~ 24 個月便會增加一倍,性能也將提升一倍」。

AC20410_01.indd 22 26/8/2020 3:32:05


Chapter 1 │微處理機基本概念 23

Chapter 1 課後習題

選擇題
1-1 1. 4004 為 Intel 在何年代推出第一個一般用途之微處理機?
(A) 1960 年代 (B) 1970 年代 (C) 1980 年代 (D) 1990 以後。

2. 具有人工智慧的電腦是
(A) 第二代 (B) 第三代 (C) 第四代 (D) 第五代 電腦。

3. 一般家庭、學校、個人所使用的電子計算機為
(A) 混合型電子計算機 (B) 類比電子計算機
(C) 數位電子計算機 (D) 儲存式計算機。

1-2 4. 下列何者不是電腦五大部門之一?
(A) 輸入單元 (B) 輸出單元 (C) 暫存器 (D) 記憶體。

5. 下列描述何者正確?
(A) 一計算機系統包含輸入、輸出、控制、記憶、算術及邏輯運算等五
個單元 (B) 控制單元能理解,並且翻譯及執行所有的指令及儲存結果 
(C) 所有的資料運算都是在 CPU 的控制單元中完成 (D) 以上各答案皆是。

6. 電腦中執行算數與邏輯運算是在
(A) 控制單元 (B) 中央處理單元 (C) 記憶單元 (D) 輸入 / 輸出單元。

7. 微電腦中,負責解釋指令的是
(A) 輸入單元 (B) 算術邏輯單元
(C) 控制單元 (D) 暫存器單元。

8. 電腦的五大單元中,何者專門負責整體系統的指揮控制?
(A) 輸入單元 (B) 算術 / 邏輯單元 (C) 記憶單元 (D) 控制單元。

1-3 9. 微處理機執行程式記憶體中的指令,下列何者為正確之執行順序?
(A) 解碼(Decode)→執行(Execute)→提取(Fetch)
(B) 提取(Fetch)→執行(Execute)→解碼(Decode)
(C) 提取(Fetch)→解碼(Decode)→執行(Execute)
(D) 解碼(Decode)→提取(Fetch)→執行(Execute)。

AC20410_01.indd 23 26/8/2020 3:32:06


24 微處理機

Chapter 1 課後習題

10. 下列何者不是 CPU 指令執行的步驟之一?


(A) 提取指令 (B) 指令解碼
(C) 計算目前執行過的指令數目 (D) 存放結果。

11. 微處理機之運算碼(Op-code)告訴微處理機做下列哪一件事?
(A) 做什麼事 (B) 去哪兒做事
(C) 去哪兒並且做什麼事 (D) 負責處理註解的資料。

12. 假設某一型計算機字長 24 bits,其指令型式如下圖所示,試問此型計算


機最多有幾個指令? (A) 32 (B) 64 (C) 128 (D) 256。
(註:OP 代表 Operation Code)
0 7 8 23
操作碼 運算元
OP Code Operand
(註:OP 代表 Operation Code)
1-4 13. 某 4k × 16 bits 的記憶體,讀取週期(read cycle time)為 10 ns,則記
憶體的最大頻 ( 讀取速率)為
(A) 100M bits/s (B) 800M bits/s (C) 1600M bits/s (D) 160M bits/s。

14. 某 CPU 平均執行一個指令所需的時間為 10 ns,則 CPU 的執行速度為


(A) 100 MIPS (B) 10 MIPS (C) 1 MIPS (D) 20 MIPS。

15. 某微處理機執行速度為 5 MIPS,執行一億個指令共需多少時間?


(A) 2 秒 (B) 5 秒 (C) 20 秒 (D) 50 秒。

16. 某 CPU 之工作頻率為 60MHz,若執行每一指令平均花費 3 個時脈週期


(clock cycle),則此 CPU 之執行效能為
(A) 10 MIPS (B) 20 MIPS (C) 60 MIPS (D) 200 MIPS。

17. 某 8086 系統核心時脈為 10MHz,每次的匯流排週期(4 個 clock),皆


會加入一個等待狀態(1 個 clock),每次可存取記憶體 16bits 資料,下
列何者為匯流排理論上的最大頻寬?
(A) 2M bytes/sec (B) 4M bytes/sec
(C) 8M bytes/sec (D) 32M bytes/sec。

AC20410_01.indd 24 26/8/2020 3:32:06


Chapter 1 │微處理機基本概念 25

Chapter 1 課後習題

18. 工作頻率為 40 MHz 之 32 位元 CPU,若其匯流排之讀寫週期為 4 個時脈


(clock),則匯流排的最大資料轉移率為
(A) 10M bytes/sec (B) 20M bytes/sec
(C) 40M bytes/sec (D) 80M bytes/sec。

19. 假設使用一部 2MIPS 的計算機來處理一件總共需要執行 120 億個指令的


工作(Job),則至少需要多少時間才能完成這一件工作?
(A) 60 秒 (B) 10 分鐘 (C) 1 小時 (D) 1 小時 40 分鐘。

20. 假設某一微處理機的處理速度為 10MIPS,請問理論上每分鐘可以處理多


少個指令?
(A) 5 × 10 的 6 次方 (B) 5 × 10 的 8 次方
(C) 6 × 10 的 8 次方 (D) 10 × 10 的 8 次方。

問答題
1. 請依據製造技術的演進敘述電腦的發展年代?

2. 請比較通用型電腦與嵌入式電腦的不同?

3. 請說明微處理機系統的組成架構?

4. 請說明 CPU 執行指令的步驟?

5. 請說明評估 CPU 的效能指標有哪些?

AC20410_01.indd 25 26/8/2020 3:32:07


26 微處理機

AC20410_01.indd 26 26/8/2020 3:32:07


教學節數

ap
ter 12
2 微處理機硬體架構

Ch

本章節次 學習目標
2-1 微處理機系統組成架構 1. 能描述微處理機系統的組成架構。
2-2 微處理機運作原理 2. 能解釋微處理機基本運作原理。
2-3 記憶體裝置 3. 能列舉微處理機系統的記憶體階層。
2-4 位址解碼與擴展 4. 能計算與設計位址解碼電路。
2-5 輸出入裝置 5. 能說明輸出入裝置運作原理
學習目標回顧 6. 能說明常見匯流排標準特性。
課後習題

AC20410_02.indd 27 7/9/2020 15:37:19


28 微處理機

2-1 微處理機系統組成架構
微處理機系統主要由算術邏輯單元(ALU)、控制單元(CU)、記憶體單元(MU)、
輸入單元(IU)與輸出單元(OU)五大單元組成,其中 CU 與 ALU 可合稱為 CPU(中
央處理單元),負責執行指令,運算、處理與控制整個微處理機系統。IU 與 OU 則可合
稱 IOU(輸出入單元),負責對輸入裝置與輸出裝置的資訊溝通橋樑。在 CPU 與記憶體、
輸出入單元之間,負責傳遞訊息的接線稱為 匯流排 (bus),如同公車將旅客由一站運
送至另外一站。1 條傳輸線可以傳輸 1 bit 的訊息,匯流排即多條傳輸線傳輸相同屬性的
訊息,一次可以傳輸多 bits 訊息。

一 系統匯流排
依據傳遞的訊息種類不同,匯流排可分為資料匯流排、位址匯流排與控制匯流排三
種,用來連接電腦主要單元之間的訊息傳遞,合稱為 系統匯流排(System Bus),如圖 2-1
所示,各單元間以匯流排的連接方式表達電腦架構,箭頭方向說明訊息的流動是單向或
雙向。週邊裝置並沒有與系統匯流排直接連接,是另外透過輸出入單元與 CPU 進行資
料傳輸。

圖 2-1 以匯流排方式表達電腦架構

1 資料匯流排
   資料匯流排 (Data Bus)是 CPU 用來傳送資料的通路,為雙向傳遞,可能
是 CPU 送資料給記憶體或 I/O,也可能是記憶體或 I/O 送資料給 CPU。送達的
位置由位址匯流排上的內容(即位址)決定。CPU 的資料匯流排的接線數目(或

AC20410_02.indd 28 7/9/2020 15:37:20


Chapter 2 │微處理機硬體架構 29

說寬度、位元數),直接影響 CPU 的執行效率,資料匯流排愈寬,CPU 每次


處理的資料愈多,執行速度越快。所以通常我們以資料匯流排的位元數來說明
CPU 的等級,例如 32 位元 CPU 是指 CPU 擁有 32 位元的資料匯流排,每次可
傳遞 32 位元的資料,表示該 CPU 每次可進行 32 位元數值或資料的運算,例如
兩個 32 位元數值的相加。

2 位址匯流排
   位址匯流排 (Address Bus)為單向傳遞位址,傳送資料匯流排內容(即資
料)寫入或讀取的位置。位址皆由 CPU 送出至記憶體或 I/O 週邊裝置。相對於
資料匯流排載送資料,位址匯流排是 CPU 用來載送指定裝置位置的「位址」。
傳送資料時,需要同時使用資料匯流排(傳送資料)與位址匯流排(傳送位址)
才能完成工作。
   如 圖 2-2 示 意 中 央 處 理 單 元 與 記 憶 體 間 匯 流 排 工 作 的 關 係。 位 址 匯 流 排
A 2 ~ A 0 傳送 CPU 要到主記憶體讀取或寫入的位址,例如 000 表示讀或寫的位
址 為 000 處。 讀 取 時, 資 料 匯 流 排 D 7 ~ D 0 負 責 將 位 址 000 的 資 料 00001010
透過資料匯流排傳送回 CPU。寫入時,則是將 CPU 要寫到記憶體的資料(事
先放在 MDR)寫到位址 000 處,原來資料會被覆蓋。

圖 2-2 位址與資料匯流排聯合工作

AC20410_02.indd 29 7/9/2020 15:37:20


30 微處理機

  位址匯流排的位元數越多,表示 CPU 能存取的記憶體位置越多。例如圖 2-2


中 有 3 條 位 址 線, 共 可 選 取 2 3 = 8 個 記 憶 體 位 址( 位 置 ), 以 此 類 推,n bits
位址線,可定址(選取)2 n 個位置。資料匯流排的寬度則表示每次可以傳送的
資料量,圖中 D 7 ~ D 0 共 8 條,每次可傳送 8 位元資料,通常也等於記憶體每
個位址的資料寬度、也等於暫存器的寬度。例如 24 條位址匯流排(24bits),
16 條 資 料 匯 流 排(16bits), 則 共 可 管 理 記 憶 體 2 位 址 * 資 料 = 2 24 *16bits =
16M * 2bytes = 32Mbytes, 其 中 M = 2 20、1 byte = 8 bits。 又 例 如 當 CPU
有 32 位 元 的 資 料 匯 流 排、20 位 元 的 位 址 匯 流 排, 表 示 此 CPU 最 多 可 存 取
2 20 個記憶體位置,每個位置為 32 位元資料,所以支援存取的最大記憶體容量
為 2 20 * 32 bits。

3 控制匯流排
   控制匯流排 (Control Bus)為單向傳遞控制信號,由 CPU 發出控制信號,
送至記憶體或 I/O 週邊裝置。微處理機系統中,控制匯流排主要載送 CPU 控制
對外界裝置(記憶體或週邊裝置)的動作模式,例如指定記憶體或週邊裝置的
讀取、寫入等動作。大多數的記憶體或週邊裝置都接受由 CPU 送來的控制信號,
如寫入(write)、讀取(read)、ALE(位址閂鎖致能)等控制信號。

通常 CPU 執行工作時三種匯流排都會同時使用。當 CPU 要送出資料至某裝置﹙記


憶體或 I/O 裝置﹚時,必須知道該裝置的唯一位址,裝置位址如同居家地址一樣,不可
有重複的地址出現,否則郵差將無法順利將信件送達。CPU 將位址放在位址匯流排上,
選定該存取裝置。將資料放在資料匯流排上,再透過控制匯流排送出「寫入」控制信號
給該裝置,指示要將資料寫入該裝置,該裝置即進行寫入動作,將資料匯流排的資料,
寫到位址匯流排指定的位址(置)。

二 CPU 寫入資料到記憶體
將 CPU 的 MDR 暫存器內容,傳送到記憶體指定位置,就是寫入(write)動作,
只要搭配暫存器、三種匯流排,就可以完成指定動作,如圖 2-3 所示。

AC20410_02.indd 30 7/9/2020 15:37:21


Chapter 2 │微處理機硬體架構 31

1 透過位址匯流排將 MAR 位址送到記憶體,用來指定寫入的記憶體位址。例如


傳送 010 2,表示要送到記憶體位址 010 處。

2  將 要寫入的資料 MDR 內容,透過資料匯流排,送至記憶體的資料接腳。此時


資料並還沒有真的寫入記憶體。

3 CPU 發出 write 寫入控制信號,透過控制匯流排送至記憶體,驅使記憶體執行


寫入動作,資料匯流排的資料才真正被寫入記憶體。

圖 2-3 寫入動作分析

三 CPU 從記憶體讀取資料
將 MAR 指定記憶體位置的內容,傳送到 CPU 內部的暫存器 MDR,稱為讀取(read)
動作,如圖 2-4 所示讀取動作的步驟。

1 CPU 將要讀取資料的位址放在 MAR,透過位址匯流排送至記憶體的位址接腳。


2  控 制匯流排送出 read 讀取控制信號給記憶體,記憶體收到控制信號,立即讀取
指定位址的內容,放到資料匯流排。

3  資 料匯流排資料放至 CPU 內部的 MDR 暫存器。

圖 2-4 讀取動作分析

AC20410_02.indd 31 7/9/2020 15:37:21


32 微處理機

四 微處理機的內部架構範例
8086 是 Intel 公 司 一 顆 成 功 的 16 位 元 微 處 理 機, 下 面 以 8086 作 為 一 個 實 用 微 處
理 機 的 範 例。 圖 2-5 為 8086 的 內 部 架 構 圖 示 意, 分 為 匯 流 排 介 面 單 元 (bus interface
unit,簡稱 BIU)與 執行單元 (execute unit,簡稱 EU)兩個獨立的單元,可以同時分
別獨立的工作,提高執行效率。

圖 2-5 8086/8088 內部架構圖

BIU 是 8086 存取外界記憶體與 I/O 的唯一窗口,例如由記憶體提取指令、或將執


行 結 果 回 存 到 記 憶 體。EU 則 是 負 責 指 令 解 碼 與 執 行。 兩 個 單 元 可 以 同 時 工 作, 例 如
BIU 提取指令的同時,EU 仍可執行指令,兩者動作分工描述如下。

1. EU 由指令序列讀取一道新指令到指令暫存器 IR。如果指令序列是空的,BIU 會執行


「指令讀取」的匯流排週期。BIU 提取指令,會先放到指令序列,等待 EU 執行。通
常指令序列能提供多個暫時存放指令的位置,例如 8086 可放置 6 個指令。
2. EU 進行指令解碼與執行,執行期間完全不影響 BIU 工作。
3. 如果執行指令過程中,需要存取 I/O 或記憶體時,EU 會告知 BIU,透過 BIU 執行匯
流排週期完成存取動作。
EU 執行前一個指令期間,BIU 同時可提取之後要執行的指令到指令序列,兩個單
元可以同時動作,達成「管線(pipeline)」重疊指令週期的功能。

AC20410_02.indd 32 7/9/2020 15:37:21


Chapter 2 │微處理機硬體架構 33

五 指令的管線處理
將每個指令週期簡化為提取指令與執行指令兩個階段來解釋指令週期重疊的意
思。如果循序地執行,即提取第一道指令、執行第一道指令之後,再繼續提取第二道指
令、執行第二道指令…。這樣循序執行指令相當沒有效率,現在的 CPU 大都利用序列
(Queue)結構的先進先出(First In First Out)特性,進行「 管線 」方式處理以提高效率。

如圖 2-6 所示指令序列的動作說明,BIU 負責由記憶體提取指令,暫放到指令序列。


先放進序列的指令,優先放到 IR,供 EU 進行指令解碼與執行。指令序列中,後面的指令
依序補位。序列的動作,很像排隊買東西,排在前面的優先買,買完了,後面的依序補位,
稱為先進先出。

圖 2-6 指令序列的動作

8086 的內部架構中,以 BIU 與 EU 兩個單元,將提取工作與執行工作以兩個獨立


單元分開處理,當在執行第一道指令時,可同時提取第二道指令。BIU 與 EU,再配合
指令序列,兩個單元同時動作,可達成「管線式」重疊指令週期的效果。

如表 2-1 所示,以循序的方式提取指令與執行指令,執行指令 1 到指令 6 共 6 個指令,


需要 12 個時脈才能完成。

表 2-1 循序執行指令
時脈 1 2 3 4 5 6 7 8 9 10 11 12
提取 執行
指令 1
指令 1 指令 1
提取 執行
指令 2
指令 2 指令 2
提取 執行
指令 3
指令 3 指令 3
提取 執行
指令 4
指令 4 指令 4
提取 執行
指令 5
指令 5 指令 5
提取 執行
指令 6
指令 6 指令 6

AC20410_02.indd 33 7/9/2020 15:37:25


34 微處理機

如果採用管線週期重疊方式,執行指令 1 到指令 6,如表 2-2 所示,當執行指令 1 時,


同時提取指令 2。同理,執行指令 2 時,也同時提取指令 3,以此類推。結果發現,只
要 7 個時脈就可以完成工作。當然,提取指令可提前動作,直到指令序列塞滿為止。

表 2-2 管線執行指令
時脈 1 2 3 4 5 6 7
提取 執行
指令 1
指令 1 指令 1
提取 執行
指令 2
指令 2 指令 2
提取 執行
指令 3
指令 3 指令 3
提取 執行
指令 4
指令 4 指令 4
提取 執行
指令 5
指令 5 指令 5
提取 執行
指令 6
指令 6 指令 6

有些狀況會使管線作業的效率大打折扣,例如提取指令與執行指令的時間並不相等,
通常執行指令花費時間比較久,會有所謂等待時間,提取動作會有閒置的狀況。另外,
提取指令通常是依序提取指令,如果有條件分支(例如 IF 選擇結構)或跳躍指令(例如
GOTO、JMP 指令),預先提取在指令序列的指令會變成無效,將會被清空,必須重新提取。

六 范紐曼結構與哈佛結構
傳統的計算機大都採用 范紐曼 (Von Neumann)結構,如圖 2-7(a) 所示,典型的范
紐曼結構僅具有 CPU、記憶體與 I/O 等硬體單元,屬於「 程式儲存式(stored-program)」
計算機,程式與資料共用一個記憶單元,程式(指令)和資料一起儲存在同一個記憶體
的不同位置,只有一組位址及資料匯流排。

從圖 2-7(a) 可看出這種結構只有一組位址匯流排與資料匯流排,負責提取指令或存
取資料,所以指令寬度與資料寬度通常相同。由記憶體提取指令時,無法同時存取記憶
體的資料。目前使用范紐曼結構的 CPU 和微控制器種類有很多,例如 Intel 公司的 x86
系列、ARM 公司的 ARM7、MIPS 公司的 MIPS 處理機等。

另外一種機器是「 哈佛 (Harvard)」結構,如圖 2-7(b) 所示,它具有獨立的程式


記憶體與資料記憶體,分別擁有獨立的匯流排與 CPU 連接,允許 CPU 同時提取指令與
存取資料,可以提高效能。兩組匯流排寬度可以不同,也就是指令寬度與資料寬度可

AC20410_02.indd 34 7/9/2020 15:37:25


Chapter 2 │微處理機硬體架構 35

以不同,例如 Microchip 公司的 PIC16 的指令是 14 位元,而資料是 8 位元寬度。目前


使用哈佛結構的 CPU 或微控制器有很多,除了 Microchip 公司的 PIC 系列晶片,還有
Motorola 公司的 MC68 系列、Zilog 公司的 Z8 系列、ATMEL 公司的 AVR 系列和 ARM
公司的 ARM9、ARM10 和 ARM11 等。

位址匯流排
中央處理單元

資料匯流排

CPU
主記憶體 輸出入單元
(程式與資料) (I/O 埠)

(a) 范紐曼結構

(b) 哈佛結構
圖 2-7 范紐曼與哈佛結構

2-1 隨堂練習
1. 小艾設計一個微處理機系統,想要擴充記憶體容量,請問他可以採取以下哪個策略
( 可複選 ) ?      
(A) 擴大位址匯流排寬度 (B) 擴大資料匯流排寬度 (C) 擴大控制匯流排寬度。

2. 當 CPU 有 32bits 資 料 匯 流 排 24 位 元 位 址 匯 流 排, 表 示 支 援 的 最 大 記 憶 體 容 量 為
      bytes。

3. 因為 COVID-19 關係,小健到西藥房排隊買口罩,排前面的人先買到口罩。這樣很
像微處理機課堂講過的哪種結構的運作?      

4. 以匯流排角度區分,計算機組成結構可概分為      與      。

AC20410_02.indd 35 7/9/2020 15:37:26


36 微處理機

2-2 微處理機運作原理
微處理機系統是一套可以連續執行指令的硬體系統,包括中央處理單元、記憶體與
輸出入單元。執行指令的工作主角是 CPU,考量 CPU 的工作,不外乎提取指令、解碼
指令、提取資料、處理資料與寫入資料等項目,為達成指令的執行,內部至少包括算術
運算、邏輯運算、控制系統、匯流排與暫存器等結構。

2-2-1 基本微運算設計
暫存器是微處理機內部暫時儲存資料的地方,也是一種記憶體,存、取速度非常快,
也是指令執行的主要戰場。CPU 包含許多不同功能的暫存器,並且能在「暫存器之間的
資料進行各種運算」。 微運算 (micro operation)是指暫存器內或暫存器間資料的基本
運算與操作,微運算是執行於一個或多個暫存器中所存資料的基本運算,運算的結果可
能取代原暫存器或傳遞到其他暫存器。微運算包括載入、清除、移位與計數等,例如一
個「可清除 / 載入的移位暫存器」就可執行移位微運算。指令透過 指令解碼器 解譯成數
個微運算,CPU 依序連續進行這些微運算就可以完成指令功能。

我們可以使用符號表示微運算,假設 R1 與 R2 都是暫存器,R2 ← R1 則是表示將


R1 的資料傳遞給 R2 暫存器。暫存器之間的資料傳遞是常用的微運算,所以 CPU 內部
需要一個共用的匯流排系統,作為資料傳遞的路徑。另外,將記憶體資料傳遞給暫存器
稱為 讀取 (read),反之,將暫存器資料傳遞給記憶體稱為 寫入 (write)。不論讀取或
寫入都需要知道記憶體的位址, 在 M 後加上中括號表示記憶體位址 。

Read:R1 ← M[AR] ;將記憶體位址 AR 處的資料傳遞給 R1 暫存器。

Write:M[AR] ← R1 ;將 R1 暫存器資料傳遞到記憶體位址 AR 處。

微處理機提供許多微運算,執行一道指令可透過組合這些微運算,達成指令功能。
最常用的微運算可分為四大類,分別說明如下。

1 暫存器間的資料傳遞微運算: 將一個暫存器內容傳至另一個暫存器。

2 算術微運算:對暫存器內的數值進行算術運算。基本的算術微運算通常包括加、
減、遞增、遞減與取補數等運算,通常不包括乘與除運算。

AC20410_02.indd 36 7/9/2020 15:37:26


Chapter 2 │微處理機硬體架構 37

3 邏輯微運算: 對暫存器內的非數值資料進行位元操作,例如 AND、OR、XOR


等邏輯運算。

4 移位微運算: 對暫存器內的資料進行移位運算,例如左移、右移、循環左移、
循環右移、算術左移與算術右移等。

四種常用微運算整理如表 2-3,除了說明微運算功能外,也以符號方式提供一些微
運算的範例,並說明範例的功能。

表 2-3 常見的微運算
類別 說明 範例
暫存器間 將 暫 存 器 的 二 進 制 值 傳 遞
R1 ← R2 ‧ 將 R2 資料傳遞給 R1
資料傳遞 (覆寫)給另一個暫存器
R3 ← R1 + R2 ‧ R1 內容與 R2 內容相加,結果傳遞給
R3
R3 ← R1 – R2 ‧ R1 內容與 R2 內容相減,結果傳遞給
對暫存器內的數值進行算術
算術 R3
運算,例如加、減、遞增、
微運算 R2 ← R2 + 1 ‧ R2 內容遞增(加 1)
遞減等。
R1 ← R1 – 1 ‧ R1 內容遞減(減 1)
R2 ← R2 ‧ R2 取 1 的補數
R1 ← R1 + 1 ‧ R1 取 2 的補數
R1 ← R1 AND R2 ‧ R1 與 R2 進行 AND 運算,結果送至
對暫存器內的資料進行邏
邏輯 R1
輯 運 算, 例 如 AND、OR、
微運算 R2 ← R2 XOR R1 ‧ R2 與 R1 進行 XOR 運算,結果送至
XOR 等運算。
R2
移位 對暫存器內的資料進行移位 R1 ← shl R1 ‧ 暫存器 R1 內容左移
微運算 運算,例如左移、右移等。 R2 ← shr R2 ‧ 暫存器 R2 內容右移

架構一個可執行上述各項基本微運算組合成的微處理機,就可執行簡單的指令。下
面將從四種微運算的電路設計談起,進行微處理機的架構設計說明。

一 暫存器間的資料傳遞設計
圖 2-8 可達成 R0 ~ R3 暫存器之間的資料傳送功能,R0 ~ R3 為 4bits 暫存器,提
供運算時的暫時存放資料之用,資料可能由記憶體讀取,也可能是運算過程暫時結果。
圖中利用多工器選擇暫存器對象,選擇線 S 1S 0 功能如圖中真值表所示。四個暫存器輸入
連接在一起,D I 為資料控制接腳,D I 為 1 時暫存器輸入資料傳遞到輸出,D I 為 0 時則
不會,輸出保存原資料不變。S 1、S 0、D I 都是由控制單元發出,依據指令的需要來決定。

AC20410_02.indd 37 7/9/2020 15:37:26


38 微處理機

圖 2-8 暫存器間資料傳遞電路

例如執行指令 MOV R0, R1,可將 R1 資料傳送到 R0,即 R0 ← R1。S 1S 0 = 01 選擇


R1 輸出,所以 R1 的資料會送到所有暫存器的輸入端,此時搭配暫存器 R0 的 D I = 1(其
餘暫存器 D I 皆為 0),即可將目前 R1 資料送至 R0。

二 算術邏輯單元的設計
通常 ALU 都提供多種運算,包含算術、邏輯、移位與比較運算等,都可以使用多
工器達成功能的選擇,因為運算功能頗多,為降低表達的複雜度,圖 2-9 為邏輯運算多
工電路,只表示四種邏輯運算以多工器達成選擇運算的功能,圖中 S 5S 4 可選擇運算的功
能,如真值表所示。同樣地,如果要設計算術運算,加(ADD)、減(SUB)、乘(MUL)
與除(DIV)四則運算,作法雷同,使用相同結構即可完成算術運算多工電路。

AC20410_02.indd 38 7/9/2020 15:37:27


Chapter 2 │微處理機硬體架構 39

圖 2-9 邏輯運算多工電路

如果搭配暫存器的選擇電路,如圖 2-10 所示,完成一個可以執行暫存器之間算術


運算的 ALU。圖中多工器 A 負責選擇 ALU 的 A 輸入的來源暫存器,由選擇線 S 1S 0 決定,
同理,多工器 B 負責選擇 ALU 的 B 輸入的來源暫存器,由選擇線 S 3S 2 決定。而被加數
A 與加數 B 準備好,即可驅使 S 5S 4 動作,進行指定運算動作。

解多工器則是負責將 ALU 的運算結果回存到指定的暫存器,由 S 7S 6 決定。注意,


S 7 ~ S 0 都是由指令解碼後,控制單元依照需要在正確的時序發出的。每個動作時序其
實不同,應該 S 0 ~ S 3 先動作,資料存入 ALU 後,再驅使 S 5S 4 動作,進行算術運算動作,
取得兩數運算結果。最後使 S 7S 6 動作,將結果存入指定暫存器,完成工作。

圖 2-10 暫存器算術運算電路

AC20410_02.indd 39 7/9/2020 15:37:27


40 微處理機

電路中用了數個多工器、解多工器,完成資料傳送的路徑選擇。為簡化分析過程,
圖中 ALU 每次四種加減乘除都會執行,不符合效能,實作上可以使用控制碼控制一次
只有執行一種運算。底下以指令「ADD R2, R1」為例,說明運算過程控制碼的設計。

第 1 時序:
S 1S 0 = 10,選擇被加數 A 為 R2 的內容,所以運算元 A = R2。
S 3S 2 = 01,選擇加數 B 為 R1 的內容,所以運算元 B = R1。
第 2 時序:S 5S 4 = 00,選擇 ADD(加法)運算。
第 3 時序:S 7S 6 = 10,選擇運算結果送至 R2。

表 2-4 ADD R2, R1 動作時序


指令 功能說明 時序 控制碼設計
S1S0 = 10,選擇 R2,運算元 A = R2
R2 ← R1+R2 1
S3S2 = 01,選擇 R1,運算元 B = R1
暫 存 器 R1 與 R2
ADD R2, R1 S5S4 = 00,選擇 ADD(加法)運算結果,送至解多工
內容相加,運算結 2
器輸入
果送至 R2
3 S7S6 = 10,選擇將運算結果送至 R2

2-2-2 設計簡易 ALU 電路


一個簡易 ALU 電路應該包括算術運算、邏輯運算、移位運算等,以下將分別介紹
三種運算的基本電路,並整合成一個「簡易 ALU」電路,只要賦予適當的控制信號,就
可以完成多種微運算,達成基本指令的執行。

一 4 位元算術運算電路
圖 2-11 所示,使用 4 個 1 位元全加器,搭配 4 個多工器、NOT 閘,組成「4 位元
算術運算電路」,可以執行多種運算工作,包括加法、減法、遞增、遞減等。圖中共 4
個虛線框,每個虛線框內表示 1 位元的算術運算電路。

AC20410_02.indd 40 7/9/2020 15:37:27


Chapter 2 │微處理機硬體架構 41

圖 2-11 4 位元算術運算電路

電路中由 S 1S 0 選擇每個全加器(FA)的輸入 Y,決定了整個電路的算術功能,而輸


入 X 則直接連接 A。左上角 C i 為整個運算電路的進位(或借位)輸入、右下角 C o 為整
個電路的進位(或借位)輸出。整個電路可以執行四位元數值 A 與 B 的加、減運算,與
A 的遞增、遞減運算等。最後運算結果為 4 位元輸出 D 與進位(或借位)C o。

AC20410_02.indd 41 7/9/2020 15:37:27


42 微處理機

1. 當 S 1S 0 = 00 時,B 作為全加器 Y 的輸入,Y = B。


若 C i = 0 時,D = A + B,為不含進位的加法。
若 C i = 1 時,D = A + B + 1,為含進位的加法。
2. 當 S 1S 0 = 01 時,B 的補數作為全加器 Y 的輸入,Y = B。
若 C i = 0 時,D = A+ B = (A+ B +1) – 1 = (A – B) – 1,也就是 A 加上 B 的 2 的補數
再減 1,為有借位的減法。
若 C i = 1 時,D = A + B + 1,也就是 A 加上 B 的 2 的補數 (B + 1),即減法運算,
D = A – B。
3. 當 S 1S 0 = 10 時,Y = 0000 2。
若 C i = 0 時,D = A,單純移轉 A 值至輸出 D。
若 C i = 1 時,D = A + 1,為 A 加 1,也就是 A 遞增。
4. 當 S 1S 0 = 11 時,Y = 1111 2。
若 C i = 0 時,D = A + Y,因為全加器的輸入 Y 全為 1 時(Y = 1111 2),可視為 0001 2 的「2
的補數」(數值 1 的 2 的補數),所以相當於執行減 1 的工作,即 D = A + Y = A – 1。
若 C i = 1 時,D = (A – 1) + 1 = A,單純移轉 A 值至 D。
綜合以上描述,整個算術運算電路提供的微運算很豐富,包括加法、減法、遞增與
遞減等。整理如表 2-5 所示。

表 2-5 算術運算微運算
選擇 輸入 輸出
算術微運算
S1 S0 Ci Y D = A + Y + Ci
0 0 0 B D=A+B 加法
0 0 1 B D=A+B+1 含進位的加法
0 1 0 B D=A+B=A–B–1 有借位的減法
0 1 1 B D=A+B+1=A–B 減法
1 0 0 0 D=A 移轉 A
1 0 1 0 D = A +1 遞增 A
1 1 0 1 D=A–1 遞減 A
1 1 1 1 D=A 移轉 A

AC20410_02.indd 42 7/9/2020 15:37:28


Chapter 2 │微處理機硬體架構 43

二 邏輯運算電路
邏輯微運算是指對暫存器的內容值進行位元邏輯運算,運算時將各位元視為獨立的
二進位進行指定的邏輯運算,例如兩個 4 位元值進行邏輯運算,即上下「位元對位元」
進行運算,下面範例為 AND 與 OR 運算。

A←A AND B A←A OR B


1010 A 運算前 1010 A 運算前
AND 0110 B OR 0110 B
0010 A 運算後 1110 A 運算後

邏輯微運算的硬體設計需要對暫存器中的每一個位元或兩個位元之間加入邏輯運算
的電路,來執行邏輯運算。通常計算機中一般只用到 AND、OR 、XOR 與 NOT 四種基
本運算,其他邏輯運算則可用這四種基本運算推導而得。圖 2-12 使用邏輯電路與 4 對 1
多工器組成 1 位元的邏輯運算,透過選擇輸入 S 1S 0 來決定邏輯運算的種類。例如需要 4
位元邏輯運算電路,則是擴充組合 4 個圖 2-12 電路。

圖 2-12 1 位元邏輯運算電路

三  移位運算電路
移位運算是指將暫存器的內容值以串列的方式傳遞(移動),高位元往低位元移動
(右移),或低位元往高位元移動(左移)。左移運算時,串列資料由最右端傳入位元;
右移運算時,串列資料則由最左端傳入位元。依據傳入位元的方式,移位微運算可分為
邏輯移位、循環移位及算術移位三種,如圖 2-13 所示,每一種移位運算又可分為右移
與左移兩種。

AC20410_02.indd 43 7/9/2020 15:37:28


44 微處理機

(a) 邏輯右移 (b) 邏輯左移

(c) 循環右移 (d) 循環左移

(e) 算術右移 (f) 算術左移

圖 2-13 移位運算
邏輯移位運算是一種傳入位元填入 0 的移位方式,邏輯右移,簡記 shr,每個位元
往右邊移動 R 0 捨棄,R n-1 留下的空位填 0。同理,邏輯左移,簡記 shl,每個位元往左
邊移動,R n-1 捨棄,R 0 留下的空位填 0。

循環移位運算則是連接暫存器的最低與最高位元的移位方式,循環右移,簡記 cir,
每個位元仍是往右邊移動,R 0 值填到 R n-1。循環左移,簡記 cil,每個位元往左邊移動,
R n-1 值填到 R 0。

算術移位是一種針對有號數進行左移或右移的運算,移位後正負符號不變。所以操
作上,左右位元移動時,符號位元不變。算術右移實際上就是將有號二進制數值「除 2」,
反之,算術左移是將有號二進制數值「乘 2」。

一般移位功能可使用 D 型正反器完成,如圖 2-14 所示為 4 位元的移位電路,可由


控制接腳 S 決定執行「左移」或「右移」工作,S = 0 時 Y = A、S = 1 時 Y = B。假設
A 3A 2A 1A 0 = 1011,S = 0 時 執 行 左 移, 經 過 CLK 時 脈 正 緣 後 A 3A 2A 1A 0 = 0110。 又 例 如
A 3A 2A 1A 0 = 0011,S = 1 時執行右移,經過 CLK 時脈正緣後 A 3A 2A 1A 0 = 0001。

圖 2-14 4 位元邏輯移位運算電路

AC20410_02.indd 44 7/9/2020 15:37:30


Chapter 2 │微處理機硬體架構 45

圖 2-15 為 4 位元循環移位運算電路,與圖 2-14 不同的是構成了循環結構。

1 右循環:將最低位元輸出 A 0,連接到最高位元的多工器輸入 B,作為右移(S = 1)


時的 A 0 循環到 A 3。

2 左循環:將最高位元輸出 A 3,連接到最低位元的多工器輸入 A,作為左移(S = 0)


時的 A 3 循環到 A 0。

圖 2-15 4 位元循環移位運算電路

四  組合簡易 ALU
如圖 2-16 所示為 1 位元簡單的 ALU 架構,圖中算術運算與邏輯運算方塊為圖 2-11、
2-12 圖中的「虛線框內」,以 1 位元為單位設計組成的。

圖 2-16 簡單 ALU 設計

AC20410_02.indd 45 7/9/2020 15:37:30


46 微處理機

圖 2-16 中的選擇線 S 3 ~ S 0 與 C i 可以決定 ALU 進行的微運算種類,其中高 2 位元


S 3S 2 選擇運算類別,S 1S 0 則是決定運算項目,整理如表 2-6 所示。

1. S 3S 2 = 00 時進行算術運算,參考表 2-5 算術微運算。


2. S 3S 2 = 01 時進行邏輯運算,參考圖 2-12 邏輯微運算。
3. S 3S 2 = 10 或 11 時進行移位運算。S 3S 2 = 10 時 F i = A i – 1,再移轉到 Ai,即 A i ← A i – 1,
完成低位元移至高位元的「左移」動作。反之,S 3S 2 = 11 時 F i = A i + 1,再移轉到 A i,
即 A i ← A i + 1,完成高位元移至低位元的「右移」動作。

表 2-6 簡易 ALU 微運算


運算 運算選擇
運算式 說明
類別 S3 S2 S1 S0 Ci
0 0 0 0 0 Fi = Ai + Bi 加法
0 0 0 0 1 Fi = Ai + Bi + 1 含進位的加法
0 0 0 1 0 Fi = Ai – Bi – 1 有借位的減法
0 0 0 1 1 Fi = Ai – Bi 減法
算術運算
0 0 1 0 0 Fi = Ai 移轉 A
0 0 1 0 1 Fi = Ai + 1 遞增 A
0 0 1 1 0 Fi = Ai – 1 遞減 A
0 0 1 1 1 Fi = Ai 移轉 A
0 1 0 0 × Fi = Ai and Bi AND 運算
0 1 0 1 × Fi = Ai or Bi OR 運算
邏輯運算
0 1 1 0 × Fi = Ai not Bi NOT 運算
0 1 1 1 × Fi = A xor Bi XOR 運算
1 0 × × × Fi = Ai–1 = shl A 左移
移位運算
1 1 × × × Fi = Ai+1 = shr A 右移

2-2-3 微處理機的控制單元
指令包含運算碼與運算元,運算碼由控制單元進行指令解碼後,依序啟動控制訊
號,進行微運算,完成指令功能。換句話說,指令解碼就是產生一連串的控制訊號,驅
使數個微運算依序執行,完成指令功能。依據解碼方式不同,控制單元的類型可分為固
線式控制單元與微程式控制單元兩種。

AC20410_02.indd 46 7/9/2020 15:37:30


Chapter 2 │微處理機硬體架構 47

使用傳統的邏輯電路進行解碼稱為固線式(hardwired)控制單元,這種方式採純硬
體式依序產生控制訊號,解碼速度比較快,但設計彈性小,一旦設計完成更動不易,當
提供的指令類型越多時電路會愈複雜。而另一種電路較精簡、有彈性,且採系統化的設
計方式,稱為「 微程式 」(microprogramming)控制單元

微程式控制單元可用一串 0 與 1 組成控制變數,稱為控制字組(contrl word),控


制某些微運算被啟動、其餘保持不動,完成指令功能。如果這些控制字組可以被程式化
並儲存在記憶體中,可達成彈性設計控制單元微程式的功能。

控制記憶體中,每個控制字組含有一個微指令(micro instruction),微指令可指
定一個或多個微運算,一連串的微指令則組成微程式(microprogram)。控制單元運作
時,微程式並不需要更改,所以控制記憶體可以是唯讀記憶體(ROM)。大多數基於精
簡指令集計算機(RISC)架構的計算機是使用固線式控制,而非微程式控制。

圖 2-17 微程式控制單元動作順序

2-2 隨堂練習
1. 暫存器之間的資料進行各種運算,稱為      。

2. 常 見 的 微 運 算 可 分 為            、      、       與
      等四類微運算。

3. 依據解碼方式不同,控制單元的類型可分為      與      兩種。

AC20410_02.indd 47 7/9/2020 15:37:31


48 微處理機

2-3 記憶體裝置
具備儲存資料能力的裝置都稱為記憶體,廣義的記憶體包含微處理機內部的 暫存器
(register),以及 快取記憶體 (cache memory)、主記憶體的 ROM 與 RAM,甚至能
離線儲存的軟碟、硬碟與光碟等。記憶體的分類有多種講法,最常用的是依據記憶體所
在位置(與微處理機的相對位置)來區分,可分為 主記憶體 (main memory)與 輔助記
憶體 (auxiliary memory)。其中主記憶體離微處理機較近,而輔助記憶體需要透過輸
出入單元進行資料存取工作,如圖 2-18 所示。

圖 2-18 微處理機系統與記憶體

如圖 2-18 所示微處理機系統中的記憶體關係圖,其中以中央處理單元為主角出發,
內部有暫存器,是除了算術邏輯單元與控制單元外,另一個執行指令時重要的角色。
快取記憶體則可能在中央處理單元內部,或介於中央處理單元與主記憶體之間,以 L1
(Layer 1,第 1 層)快取與 L2(Layer 2,第 2 層)
快取稱呼之。而主記憶體是在微處理機系統內部,
CPU 可以直接讀與寫。而輔助記憶體則是在系統
之外,存取時需要透過輸出入單元。圖 2-19 顯示
記憶體階層間的特性關係,愈接近中央處理單元,
存取速度愈快、價格成本愈貴,容量也就無法太
大。反之,階層愈下方,則講求容量很大,很便
宜,但存取速度可能慢一些!
圖 2-19 記憶體階層

AC20410_02.indd 48 7/9/2020 15:37:31


Chapter 2 │微處理機硬體架構 49

主記憶體是微電腦執行程式時必備的裝置,因為現代的微處理機系統都採「內儲
式」執行程式,程式必須先載入主記憶體內,微處理機才能執行,所以主記憶體的存取
速度直接影響電腦的效率。目前電腦使用的主記憶體大都使用半導體技術製造,可概分
為 唯讀記憶體 (Read Only Memory,簡稱 ROM)與 隨機存取記憶體 (Random Access
Memory,簡稱 RAM)。

ROM 只能讀取資料,不可任意寫入資料,最大的優點是可永久保存資料,即具有
非揮發性,即使沒有電源,資料仍然存在,不會消失,適合用來儲存開機時執行的 基本
輸出入系統 (BIOS,Basic Input Output System)的程式碼。RAM 可隨時讀取或寫入
資料,但是具有揮發性,一旦關機,資料將立即消失。其他例如暫存器、快取記憶體都
視為主記憶體,使用 RAM 技術,並都具有揮發性。通常談論電腦的記憶體容量,就是
指 RAM,並不包括 ROM。ROM 或 RAM 的讀取與寫入的動作很類似,但是位址分配
空間不同,例如儲存 BIOS 程式的 ROM,大部分配置在記憶體位址的最後面。

輔助記憶體大都為非揮發性,資料都可永久保存,採用磁或光的技術。例如硬式磁
碟、磁帶、光碟機等,需要配合機械結構才能完成存取動作,存取速度較慢,但因儲存
容量較大、成本便宜,仍廣受歡迎並大都可以離線操作,可攜性佳。平常將程式存放在
具非揮發性的輔助記憶體中,執行前載入主記憶體備妥後等待執行。

主記憶體與輔助記憶體都是目前電腦的基本配備,當然儲存容量愈大愈好,但限於
存取速度、體積與價格等,應視需要自行配備,表 2-7 為兩者的比較表。以下僅就常用
的主記憶體 ROM 與 RAM 概略特性提出說明,進一步原理於第 6 章有專節討論。

表 2-7 主記憶體與輔助記憶體特性比較表
特性比較
存取速度 體積 成本價格 存取機率
分 類
主記憶體 快 小 較貴 常存取
輔助記憶體 慢 大 便宜 較少存取

AC20410_02.indd 49 7/9/2020 15:37:31


50 微處理機

一 唯讀記憶體 ROM
ROM 不具揮發性,電源關閉後,仍能保存原來的資料。ROM 發展至今,雖然已能
以電子方式燒錄與清除,但讀 / 寫時間仍比 RAM 慢。因資料在關機後仍存在,適合儲
存微電腦開機時執行的 BIOS,進行 POST(Power On Self Test,開機自測)動作。依
其規劃內部資料的方式可分為下列幾種。

1 Mask ROM: Mask ROM 記憶體內部儲存的資料由製造商燒錄,使用者不可更


改其內容或重新規劃。Mask(光罩)是 IC 製造時的術語。Mask ROM 一般用
在大量生產,而且 IC 內容不會再更改時才會使用 Mask ROM。優點是成本便宜,
缺點是內容不得更改,如果內容有錯,整批皆須再重新生產。

2 PROM(Programmable ROM,可程式化 ROM): PROM 可由使用者自行燒


錄記憶體內部資料。出廠時,PROM 每一個位元都有一條熔絲結構,PROM 寫
入資料時就是藉由燒斷或保留熔絲,決定該位元的 0 或 1。PROM 燒錄資料時
需要「ROM 燒錄器」,並在燒錄後不得重新燒錄,只能燒錄一次。

3 EPROM(Erasable PROM, 可 抹 除 式 PROM): EPROM 在 封 裝 時 會 預 留 一


個石英玻璃所製的透明窗,以便進行照射紫外線曝光,以清除資料,可重新燒
錄 資 料。 寫 入 資 料 後 用 不 透 光 的 貼 紙 遮 蓋 透 明 窗, 以 防 曝 光 過 量 影 響 資 料。
EPROM 使用紫外線清除資料,故又稱 UV-EPROM,整個清除過程約需 10 分
鐘左右。

 4 EEPROM(Electrically EPROM, 電 子 抹 除 式 PROM) : 相 對 於 EPROM 使


用紫外線清除內容,EEPROM 可使用「電」清除內容,清除速度較快,一般約
ms 等級。工作在電路時不需取下,只要加上特定電壓就可清除資料,並重新寫
入資料,使用較 EPROM 方便許多。

5 Flash Memory(快閃記憶體): Flash Memory 也是 EEPROM 的一種,不同


的是,Flash 以區塊(blocks)抹除或寫入記憶體的資料,而 EEPROM 抹寫資
料通常以位元組為單位,速度較慢。目前大多數的 BIOS、隨身碟、記憶卡與固
態硬碟(SSD)等都使用 Flash 記憶體。

AC20410_02.indd 50 7/9/2020 15:37:32


Chapter 2 │微處理機硬體架構 51

二 隨機存取記憶體 RAM
RAM 是一種可隨時讀出或寫入資料的記憶元件,但具揮發性,沒有電源資料就會
消失,依其記憶特性又可分 SRAM 與 DRAM 二類。

1 SRAM(Static RAM,靜態 RAM): 由正反器結構組成,以儲存資料。一個正


反器可以儲存 1 位元的資料,電路較為複雜,當要儲存資料容量很大,將使記
憶體體積相當龐大,但 SRAM 存取速度比 DRAM 快,適合用在記憶容量小、
需要存取速度快的場合。當提供的電源切斷後,將使正反器組成的 SRAM 資料
流失。

2 DRAM(Dynamic RAM,動態 RAM): 利用電容特性來儲存資料,當電容充


電,表示儲存資料 1,電容未充電,則表示資料 0。DRAM 電路簡單,所佔的
體 積 較 小, 集 積 密 度 高 且 成 本 便 宜, 故 大 多 數 微 電 腦 系 統 的 主 記 憶 體 皆 使 用
DRAM。但 DRAM 因為是使用電容充電,為避免因漏電而流失資料,必須每隔
一段時間重新充電,也就是「重新讀取目前資料值,再寫入相同資料」,以保
持原來資料,這種動作稱為「更新(Refresh)」。所以 DRAM 的存取速度比
SRAM 慢。

三 記憶體基本接腳
不 論 是 ROM 或 RAM, 每 個 記 憶 元 件 的 接 腳 可
分 為 位 址 接 腳、 資 料 接 腳、 控 制 接 腳 與 選 擇 接 腳 四
類, 如 圖 2-20 所 示, 透 過 這 四 類 的 接 腳, 記 憶 體 就
能擔任資料的記憶功能,提供資料寫入與資料讀取的
功 能。 圖 2-20 中,A n-1 ~ A 0 為 位 址 接 腳、D n-1 ~ D 0
為資料接腳、WE 與 OE 為控制接腳、CS 為晶片選擇
接腳,各類接腳的功能與動作分別說明如下。
圖 2-20 記憶體的基本接腳

AC20410_02.indd 51 7/9/2020 15:37:32


52 微處理機

1 位址接腳
  所有的記憶體都有位址接腳,用來指定寫入或讀取記憶體內部資料的位置,
位址接腳大都標示為 A 0、A 1、…、A n-1,表示共有 n 支位址接腳,有時簡要標示
為 A n-1 ~ A 0。
  記憶體的記憶位置數目從 1K(2 10)到 256M(10 28) 都有,例如記憶體有 10
條位址線 A 9 ~ A 0,位址空間為 2 位址線數 = 2 10 = 1024 = 1K,表示擁有 1024 個位
置可以儲存資料,至於每個位置到底可以儲存多少資料,則由資料接腳的數目決
定,「記憶位置數 * 資料寬度」就是記憶體容量。又例如某記憶體有位址接腳
11 支,表示共有 2K(2 11 = 2048)的記憶位置,以此類推,8K 記憶體有 13 支
位址接腳,因為 2 13 = 8192 = 8K。

2 資料接腳
  每個記憶元件都有資料接腳,以供資料的
寫入與讀出,而資料接腳的數目表示每次存取
資料的寬度,大部分的記憶元件有 8 支資料接
腳, 也 就 是 每 次 存 取 資 料 單 位 為 8bits。 如 果
某 個 記 憶 體 位 址 接 腳 16 支、 資 料 接 腳 8 支,
則其記憶容量 = 2 16×8 bits = 64K×8 bits,有
時也描述為 64K bytes。可以想像記憶體容量
為一個平面,如圖 2-21,資料接腳數為這個記
憶 體 的 寬 度, 位 址 接 腳 決 定 高 度 為 2 位 址 線 數,
所以容量(面積)為高度 × 寬度 = 2 位址線數 ×
圖 2-21 記憶體容量示意
資料接腳數。

3 選擇接腳
  每個記憶元件都必須有選擇接腳,用來選擇或致能記憶元件。選擇接腳可
能稱為 CS(Chip Select,晶片選擇)或 CE(Chip Enable,晶片致能)等,大
部分皆為低態動作。當 CS = 0 或 CE = 0,該記憶體才可以寫入或讀出資料,或
說,此時記憶體可以進行讀或寫動作!反之,CS = 1 或 CE = 1,該記憶體不動
作。通常微處理機一次只選擇一顆記憶體動作,單一時間只對一顆進行讀取或
寫入動作。這支選擇接腳,讓微處理機可以同時連接多個記憶元件,擴充記憶
體容量。

AC20410_02.indd 52 7/9/2020 15:37:32


Chapter 2 │微處理機硬體架構 53

4 控制接腳
  控制接腳就是在記憶體選擇接腳動作後,控制記憶體的動作方式,例如寫
入(write)或讀取(Read)。ROM 只能讀取資料,控制接腳一般為「輸出致
能(Output Enable)」,標示為 OE,當 CE = 0 且 OE = 0,表示 ROM 可以讀
出資料;OE = 1,則資料接腳與外界呈現高阻抗浮接狀態。RAM 可以寫入與讀
取資料,OE = 0 可讀取資料、WE(Write Enable)= 0 可寫入資料。RAM 控制
接腳如果只有一支,可能標示為 R/W。R/W = 1 表示讀取資料,反之,R/W = 0
表示寫入資料。

2-3 隨堂練習
1. 廣義的描述記憶體階層,依存取速度快到慢可分      、      、
      與      。

2. 主記憶體大都使用半導體技術製造,可分為      與      兩大類。

3. ROM 可分為      、      、      、      與
      。

4. RAM 可分為      與      兩類。

5. 通常記憶體基本接腳可分為    、    、    與    四類接腳。

AC20410_02.indd 53 7/9/2020 15:37:32


54 微處理機

2-4 位址解碼與擴展
本節將探討微處理機同時連接多個記憶體元件以擴展容量時,採用的位址解碼電路
之運作方式與實際電路組成,也提出記憶體擴展的實例,深入瞭解位址解碼的工作。

2-4-1 記憶體位址解碼原理
微處理機透過三種匯流排與記憶體進行資料讀或寫的動作,當微處理機同時連接多
個記憶元件時,一次只能對一顆記憶元件存取,此時需要透過「位址解碼電路」決定存
取的對象,常見的有線性解碼、完全 / 部分解碼等兩種方式。

 一 線性解碼
當微處理機需要連接多個記憶體以擴充記憶容量時,圖 2-22 是直覺的連接方法,
直 接 將 微 處 理 機 的 位 址 與 資 料 接 腳 連 接 到 RAM。 請 注 意, 為 簡 化 電 路 與 分 析 容 易 理
解,記憶體 RAM 的選擇接腳 CS 採用高態動作。圖中低位址接腳 A 9 ~ A 0 並接接到每個
RAM 的位址接腳,A 10 ~ A 13 則是分別接至 RAM0 ~ RAM3 的選擇接腳 CS。另外,控
制接腳 R/W、資料接腳 D 7 ~ D 0 也是並接到各個記憶體 RAM0 ~ 3。

圖 2-22 線性解碼電路

AC20410_02.indd 54 7/9/2020 15:37:33


Chapter 2 │微處理機硬體架構 55

當 A 13 ~ A 10 = 0001 時,RAM0 的晶片選擇接腳 CS = 1,其餘 RAM 晶片 CS 皆為 0,


所 以 選 擇 到 RAM0 動 作, 此 時 當 A 9 ~ A 0 =00 0000 0000 2 ~ 11 1111 1111 2, 只 會 選 到
RAM0,RAM0 負責資料的寫入與讀取。以此類推,A 13 ~ A 10 = 0010 則選到 RAM1。
這種方式稱為線性解碼,微處理機與記憶體之間不須額外的電路即可動作,位址解碼與
分配如表 2-8 所示。

表 2-8 線性解碼位址空間
A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 選取裝置 位址範圍
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0400H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM0 |
0 0 0 1 1 1 1 1 1 1 1 1 1 1 07FFH
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0800H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM1 |
0 0 1 0 1 1 1 1 1 1 1 1 1 1 0BFFH
0 1 0 0 0 0 0 0 0 0 0 0 0 0 1000H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM2 |
0 1 0 0 1 1 1 1 1 1 1 1 1 1 13FFH
1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM3 |
1 0 0 0 1 1 1 1 1 1 1 1 1 1 23FFH

但是採用線性解碼管理記憶體位址空間有其缺點:

1. 使 用 A 13 ~ A 0 共 14 位 元 的 位 址 線, 本 來 應 有 2 14 = 16K 的 位 址 空 間, 但 只 能 用
RAM0 ~ RAM3 共 4 顆記憶體,定址數只有 2 10*4 = 1K*4 = 4K,嚴重浪費記憶體位
址空間。
2. 觀察表 2-8 位址空間分析可知,位址空間不連續,是分散的,有些位址空間沒用到。
例如 RAM1 與 RAM2 之間的位址 0C00H ~ 0FFFH 並沒有使用到。
3. 如果 A 13 ~ A 10 有兩支以上接腳同時為 1,會同時選擇到兩個以上的晶片,造成資料
存取錯誤,需要謹慎操作。例如 A 13 ~ A 10 = 0011 2,同時選擇 RAM0 與 RAM1,資料
同時讀取或寫到 RAM0 與 RAM1,會造成誤動作。
基於以上的缺點,我們通常增加「位址解碼電路」解決,稱為「完全 / 部分解碼」。

AC20410_02.indd 55 7/9/2020 15:37:33


56 微處理機

 二  完 全 / 部分解碼
為解決線性解碼定址空間浪費與位址不連續的缺點,額外使用位址解碼電路可以解
決。延續上例,同樣 CPU 需要存取 RAM0~RAM3 四顆記憶體,連接的方法是:

1. 將 CPU 的 R/W、資料匯流排與四顆記憶體的資料匯流排接在一起。這與線性解碼的結
構相同。
2. 將 RAM0 ~ RAM3 選址線 A 9 ~ A 0 與 CPU 較低位元的位址線 A 9 ~ A 0 接在一起。這
也與線性解碼結構相同。
3. 利 用 較 高 位 元 位 址 線(2 條, 因 為 2 2 = 4, 所 以 可 以 選 擇 四 個 記 憶 體 )A 11 ~ A 10 輸
入 2×4 解碼電路,以驅動指定的記憶體的選擇接腳。解碼電路輸出連接至 RAM0 ~
RAM3 的選擇接腳 CS。

圖 2-23 完全位址解碼電路

按 照 上 述 規 則, 則 完 全 位 址 解 碼 電 路 繪 出 如 圖 2-23 所 示,RAM0 ~ RAM3 的 CS


為低態動作。例如 CPU 要將資料寫入記憶器 RAM1,必須能使 RAM1 的 CS = 0,表示
RAM1 被選擇到可以動作,資料匯流排與 CPU 相連接。而 RAM0、RAM2、RAM3 的
CS 都為 1,表示記憶體不可動作、對外為浮接,資料接腳不會與資料匯流排接通。此時
CPU 送出的資料只會到達 RAM1 內部。再由低位元的位址線 A 9 ~ A 0 選址,決定應放
置在 RAM1 內的何處。解碼器與晶片選擇動作方式如表 2-9 所示。

AC20410_02.indd 56 7/9/2020 15:37:33


Chapter 2 │微處理機硬體架構 57

表 2-9 解碼器與晶片選擇動作
輸入 輸出
選擇的記憶體
A 11 A 10 Y3 Y2 Y1 Y0
0 0 1 1 1 0 RAM0
0 1 1 1 0 1 RAM1
1 0 1 0 1 1 RAM2
1 1 0 1 1 1 RAM3

表 2-10 為完全解碼後分析的位址分配情形,我們發現,每個 RAM 都佔用 1K 的位


址空間,例如 RAM0 的位址空間介於 000H ~ 3FFH 之間,並且位址空間是連續的,位
址 空 間 不 浪 費。 雖 然 多 了 1 個 2×4 的 解 碼 電 路, 但 是 位 址 可 以 完 全 使 用,4 個 1K 的
RAM,共佔空間 4K,位址空間從 000H 到 FFFH,完全不浪費。注意,如果選擇接腳
CS 為高態動作,只要更改解碼電路,採用輸出高態動作即可。但是實際上,大部分的
情況下,選擇接腳 CS 都是低態動作。

表 2-10 完全解碼位址分配
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 選取裝置 位址範圍
0 0 0 0 0 0 0 0 0 0 0 0 000H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM0 |
0 0 1 1 1 1 1 1 1 1 1 1 3FFH
0 1 0 0 0 0 0 0 0 0 0 0 400H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM1 |
0 1 1 1 1 1 1 1 1 1 1 1 7FFH
1 0 0 0 0 0 0 0 0 0 0 0 800H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM2 |
1 0 1 1 1 1 1 1 1 1 1 1 BFFH
1 1 0 0 0 0 0 0 0 0 0 0 C00H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM3 |
1 1 1 1 1 1 1 1 1 1 1 1 FFFH

當微處理機可以管理的位址空間比實際連接記憶體總空間還大時,可以採用部分解
碼電路,通常可以簡化解碼電路的複雜度。延續上例,但是只連接兩個記憶體 RAM0 與
RAM1,也就是微處理機可以管理 4K 空間,但只連接 2K 空間的記憶體,如圖 2-24 所示。
部分解碼電路位址解碼時只使用部分位址進行解碼,如圖中,只使用 A 10 進行記憶體選
擇,當 A 10 = 0 時選擇 RAM0,A 10 = 1 時選擇 RAM1。請注意,此時 A 11 為空接,沒有
參與解碼工作。

AC20410_02.indd 57 7/9/2020 15:37:33


58 微處理機

圖 2-24 部分位址解碼電路

表 2-11 整 理 部 分 解 碼 的 位 址 分 配 狀 況, 位 址 000H-3FFH 與 800H-BFFH 都 是


對 應 到 RAM0, 因 為 介 於 這 兩 個 位 址 範 圍 時 A 10 = 0, 都 會 選 到 RAM0。 同 理, 位 址
400H-7FFH 與 C00H-FFFH 都 是 對 應 到 RAM1, 因 為 A 10 = 1, 都 會 選 到 RAM1。 部 分
解碼會造成位址與記憶體單元不是一一對應,而是一個記憶體重複占用了多個地址。當
然也可試著用 A 11 進行選擇 RAM 的選擇工作,分析位址分配情形。

表 2-11 部分解碼位址分配
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 選取裝置 位址範圍
0 0 0 0 0 0 0 0 0 0 0 0 000H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM0 |
0 0 1 1 1 1 1 1 1 1 1 1 3FFH
0 1 0 0 0 0 0 0 0 0 0 0 400H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM1 |
0 1 1 1 1 1 1 1 1 1 1 1 7FFH
1 0 0 0 0 0 0 0 0 0 0 0 800H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM0 |
1 0 1 1 1 1 1 1 1 1 1 1 BFFH
1 1 0 0 0 0 0 0 0 0 0 0 C00H
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ RAM1 |
1 1 1 1 1 1 1 1 1 1 1 1 FFFH

2-4-2 位址解碼電路
解碼電路對整個微處理機系統對記憶體或 I/O 的資料存取,有著不可或缺的重要性,
可以使用以下幾種方法製作負責位址分配的「完全位址解碼電路」,兩條位址線 A 11、
A 10 選擇四個 RAM0 ~ 3。

AC20410_02.indd 58 7/9/2020 15:37:34


Chapter 2 │微處理機硬體架構 59

一 使用邏輯閘製作位址解碼器
最簡單的位址解碼電路就是使用邏輯閘,因為 NAND 閘輸出是低態動作,而 CS 也
是低態動作,兩者配合較為簡單,所以如果使用邏輯閘製作解碼電路大都會選用 NAND
閘。如圖 2-25 所示解碼電路,完成表 2-10 的位址解碼。如果記憶體的晶片選擇腳是高
態動作,則需要在 NAND 閘輸出接上 NOT 閘。

圖 2-25 使用邏輯閘製作位址解碼電路

二 使用 74LS138 製作位址解碼器
74LS138 是實驗時常使用的位址解碼器,如圖 2-26 所示,它是一個 3×8 的解碼器,
有 A、B、C 三個選擇輸入,依據真值表如表 2-12 所示,決定 Y0 ~ Y7 哪一個為低電位
輸出。

  

圖 2-26 74LS138 外觀與接腳圖

AC20410_02.indd 59 7/9/2020 15:37:34


60 微處理機

表 2-12 74LS138 的真值表
輸入
輸出
致能 選擇
G2A G2B G1 C B A Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
0 0 1 0 0 0 1 1 1 1 1 1 1 0
0 0 1 0 0 1 1 1 1 1 1 1 0 1
0 0 1 0 1 0 1 1 1 1 1 0 1 1
0 0 1 0 1 1 1 1 1 1 0 1 1 1
0 0 1 1 0 0 1 1 1 0 1 1 1 1
0 0 1 1 0 1 1 1 0 1 1 1 1 1
0 0 1 1 1 0 1 0 1 1 1 1 1 1
0 0 1 1 1 1 0 1 1 1 1 1 1 1
1 × × × × × 1 1 1 1 1 1 1 1
× 1 × × × × 1 1 1 1 1 1 1 1
× × 0 × × × 1 1 1 1 1 1 1 1

各 個 Y 輸 出 被 接 至 記 憶 體 的 CS 接 腳, 所 以 要 實 現 表 2-10 位 址 分 配 表, 只 要 將
A11 與 A10 接 至 74LS138 的 輸 入 B 與 A,C 空 接,Y0 ~ Y3 分 別 接 至 RAM0 ~ RAM3
的 CS 接 腳。 請 注 意,74LS138 除 了 A、B、C 三 支 輸 入 接 腳 外,74LS138 尚 有 G1、
G2A、G2B 三支輸入致能接腳,由表 2-13 真值表得知,解碼器動作時,必須符合(G1、
G2A、G2B)=(1、0、0)的動作條件。

圖 2-27 使用 74LS138 製作位址解碼電路

AC20410_02.indd 60 7/9/2020 15:37:35


Chapter 2 │微處理機硬體架構 61

2-4-3 記憶體位址擴展實例
可 以 依 據 需 要 的 記 憶 體 結 構, 組 合 多 顆 記 憶 體 組 成 指 定 的 容 量 與 結 構, 例 如 上
例, 以 4 顆 1K×8bits 組 成 4K×8bits 的 結 構, 一 次 只 有 一 顆 記 憶 體 被 選 到, 組 合 前
後資料寬度一樣都是 8bits。也可以組成較寬的資料寬度,例如 2 顆 1K×4bits 組合成
1K×8bits。另外,DRAM 的資料接腳有些只有 1bit、2bits 等不同類型,可以透過不同
的電路連接,達成需要的記憶體架構,以下舉例為 2 顆 1K×4bits 組成 1K×8bits,及
16 顆 1K×1bit 組成 4K×4bits 的結構。

一 2 顆 1K×4bits 組成 1K×8bits
如圖 2-28 所示,使用 2 顆 1K×4bits 組成資料寬度較寬的 1K×8bits 結構,作法是
將 CS 接在一起,表示兩顆記憶體會同時被選到,同時動作,每顆輸出 4bits 資料,所以
共可輸出 8bits 資料。而 A 9 ~ A 0 並接,以選擇記憶體內部的位址。為簡化電路,圖中
省略控制接腳的連接關係,

圖 2-28 1K×4bits 擴展為 1K×8bits 架構

AC20410_02.indd 61 7/9/2020 15:37:35


62 微處理機

二 16 顆 1K×1bit 組成 4K×4bits
總容量
以 下 試 著 組 合 多 顆 1K×1bit 為 4K×4bits 的 記 憶 體 空 間, 共 需 要
單顆容量
4K×4bits
= = 16 顆 1K×1bit 記 憶 體, 如 圖 2-29 所 示, 圖 中 所 有 記 憶 體 的 A 9 ~ A 0 與
1K×1bit
R / W 都連接在一起,因為電路頗為龐大,省略連接關係。整個架構中共有四列記憶體,
每列 4 個記憶體的 CS 連接在一起,會同時動作,提供 4bits 的資料存取。由 A 11、A 10 透
過 74138 進行解碼,選擇哪一列記憶體動作,(A 11、A 10)=(0、0)時選擇最上面第 0 列,
(0、1)時選擇第 1 列,以此類推,每一列 4 個記憶體同時輸出,共 4bits。

圖 2-29 1K×1bit 擴展為 4K×4bits 架構

2-4 隨堂練習
1. 當微處理機同時連接多顆記憶元件時,會使用      。

2. 常見的位址解碼電路有      與        兩種。

3. 8 位元微處理機連接 8 顆 1K×8bits 記憶體,需要哪一種結構的解碼器?     


組成的記憶體系統總容量為      。

4. 力 銘 設 計 微 處 理 機 系 統, 手 邊 只 有 1K×4bits 的 記 憶 體 IC, 希 望 設 計 成 4K×8bits


的記憶體系統,共需要     顆 1K×4bits 記憶體 IC ?需要     解碼器?

AC20410_02.indd 62 7/9/2020 15:37:35


Chapter 2 │微處理機硬體架構 63

2-5 輸出入裝置
所有輸出入裝置(Input/Oput Device)因不同需求,設計著不同的介面、不同的傳
輸協定、不同的結構等,都需要透過輸出入單元的聯繫,才可以與 CPU 進行資料傳輸。
在此主要是探討裝置與 CPU 的資料傳輸與控制原理、特色,完成 CPU、記憶體與 I/O
的金三角合作關係。但是有些問題需要先釐清:

1. CPU 的工作速度遠快於記憶體與 I/O 裝置,與記憶體較為匹配,與大多數的 I/O 裝置


根本是天差地遠。
2. 這麼多樣的 I/O 裝置,有著不同的用途、設計與結構、傳輸格式與速度等,微處理機
系統需要適應這些不同,才能與 I/O 裝置進行資料傳輸。
一部完整的微處理機系統,CPU 主要操作對象是記憶體與 I/O。通常記憶體的操作
速度遠快於 I/O,對於這樣的速度差異,CPU 為了提高效能必須採取因應之道。以下將
就「位址的分配」與「速度的協調」兩個角度說明 CPU 對記憶體與 CPU 對 I/O 的異同。
最後也討論目前微處理機系統與 I/O 裝置較為常見的連接標準。

2-5-1 位址的分配
如同 CPU 讀、寫記憶體的概念,在電腦系統中,每台 I/O 週邊設備都需要一個以
上的專用位址,稱為 埠位址 (port address)以別於記憶體位址,埠位址作為 I/O 裝置與
CPU 傳輸資料的窗口。例如 IBM PC 中分配 PS/2 滑鼠的埠位址為 03F8H ~ 03FFH 之間,
當 CPU 讀取 03F8H 在位址匯流排時,表示選擇滑鼠為資料傳輸的對象,可讀取滑鼠輸
入的資料。對於埠位址的規劃,常見有 記憶體映對式 IO (memory mapping I/O)與 隔
離式 I/O (Isolated I/O)兩種方式。另外,CPU 與 I/O 需要透過匯流排傳輸資訊,可能
採用下面三種方法與記憶體、I/O 溝通。

1. 使用個別的匯流排,一組連接記憶體、一組連接 I/O。
2. 記憶體與 I/O 使用公用(共同)的匯流排,但使用不同的控制線。
3. 記憶體與 I/O 使用公用的匯流排與控制線。

AC20410_02.indd 63 7/9/2020 15:37:36


64 微處理機

一  隔 離式 I/O
如果採用上述方法 2,使用共用匯流排作為 CPU、記憶體與 I/O 之間的資訊傳輸,
記憶體與 I/O 有個別的讀、寫控制線,CPU 可藉由讀、寫訊號指定資訊傳遞的對象是記
憶體或 I/O。I/O 傳輸期間 CPU 控制 IOR(IO 讀取)、IOW(IO 寫入)兩條控制訊號,
反之,記憶體傳輸期間,CPU 控制 MEMR(記憶體讀取)、MEMW(記憶體寫入)兩
條控制線,這種配置記憶體與 I/O 的位址完全獨立、控制線也分開獨立,稱為隔離式 I/O,
是一種用於公用匯流排的位址指定方式。

在隔離式 I/O 中,CPU 讀寫 I/O 與記憶體的指令是不同的,使用 I/O 讀寫指令,就


會啟動 I/O 讀寫控制線 IOR、IOW,反之,使用記憶體讀寫指令,就會啟動記憶體讀寫
控制線 MEMR、MEMW,兩者完全獨立。I/O 與記憶體兩個單元,一次只有一個會動作。

隔離式 I/O 又稱「I/O 映對 I/O(I/O mapping I/O)」,I/O 擁有獨立的位址空間,


例 如 記 憶 體 位 址 為 00000H ~ FFFFFH, 而 I/O 位 址 空 間 0000H ~ 03FFH, 如 圖 2-30
所 示。CPU 對 I/O 的 存 取 指 令 與 CPU 存 取 記 憶 體 完 全 不 同, 不 能 混 用。CPU 存 取 IO
資料時,必須送出特別的控制信號(I/O 通知信號),以通知 IO。相同的,CPU 存取記
憶體資料時,必須送出特別的控制信號(記憶體通知信號)通知記憶體。CPU 只要透過
I/O 通知信號與記憶體通知信號作為辨識,就可分別存取記憶體與 I/O 的資料! Intel 系
列 CPU 就是採用獨立式 I/O 的操作方式。

  

圖 2-30 隔離式 I/O 動作說明

AC20410_02.indd 64 7/9/2020 15:37:36


Chapter 2 │微處理機硬體架構 65

二  記憶體映對式 IO
隔離式 I/O 架構中,I/O 與記憶體有自己的位址空間。另外一種方式是將 I/O 與記
憶體使用相同的位址空間,兩者透過位址空間分配識別,CPU 只要有一組讀寫指令,不
用區分操作對象為何,這種配置稱為「記憶體映對式 I/O」,也就是將 I/O 看成記憶體
的一部分,位址空間共用、控制線共用。

  

圖 2-31 記憶體映對式 I/O 位址分配

此 種 方 式 把 I/O 看 成 記 憶 體 的 一 部 份, 將 記 憶 體 的 部 分 位 址 分 配 給 I/O, 例 如
記 憶 體 位 址 空 間 為 00000H ~ AFFFFH 與 D0000H ~ FFFFFH, 而 I/O 位 址 空 間 為
B0000H ~ CFFFFH, 如 圖 2-31 所 示。 這 種 埠 位 址 規 劃 方 式,CPU 存 取 IO 與 存 取 記
憶體的動作完全相同,只需用同樣的指令就可以了!這樣的模式可以省去額外的 IO 指
令,但也有缺點,因為存取 IO 與記憶體的指令都相同,所以 CPU 無法判斷所存取的資
料或程式碼的對象是記憶體還是 IO,必須嚴格地配置記憶體位址區塊與 IO 位址區塊。
另外,採用這種方式,IO 會佔用記憶體部分位址,浪費一些記憶體位址。曾經盛行的
Apple Ⅱ就是採用記憶體映對 IO 的操作方式。

兩種埠位址規劃方式之間至少有以下不同:
1. 記憶體映對 I/O 使用位址空間的區別來辨識操作的對象是記憶體或是 I/O,所以一律
採用 MEMR 與 MEMW 信號接腳讀取記憶體與 I/O。隔離式 I/O 則是使用控制訊號辨
識操作對象,使用 MEMR 與 MEMW 信號接腳存取記憶體,但是採用 IOR 與 IOW 信
號接腳讀取 I/O。有些 CPU 則是使用 M / IO = 0 與 W / R 來驅動 I/O 裝置。
2. 記憶體映對 I/O 對存取記憶體與 I/O 的指令是相同的。
但隔離式 I/O 存取記憶體與 I/O 的指令是不同的。

AC20410_02.indd 65 7/9/2020 15:37:36


66 微處理機

表 2-13 兩種不同 I/O 模式比較


模式
隔離式 I/O 記憶體映對 I/O
比較項目
‧ 記憶體與 I/O 有個別控制信號 ‧ 記憶體與 I/O 有相同控制信號
‧ 記憶體使用 MEMR、MEMW, ‧ 記 憶 體 與 I/O 皆 使 用 MEMR、
控制(通知)訊號 I/O 使用 IOR、IOW MEMW
‧ 使用不同的通知訊號,辨識存 ‧ 使用位址空間的區別,辨識存
取對象 取對象
位址分配 I/O 有獨立的位址空間 把 I/O 看做記憶體的一部分
存取 I/O 指令 與記憶體使用「不同」指令 與記憶體使用「相同」指令

2-5-2 CPU 與 I/O 的速度協調


對使用者而言,需要透過輸入設備控制電腦系統的運作,利用輸出裝置觀察或儲存
電腦的工作結果。常見的輸入設備有滑鼠、鍵盤、掃描器、數位像機攝影機、唯讀光碟
機(CD-ROM)、搖桿、硬碟、軟碟、磁帶、磁性光碟(MO)、條碼掃描器(barcode
scanner)、觸控式螢幕、語音輸入、光筆、數據機等,輸出設備則有螢幕、印表機、喇
叭、硬碟、軟碟、磁帶、磁性光碟、數據機等。當設備具備輸入與輸出資料功能時,被
稱為輸出入設備,如硬碟、軟碟、數據機、磁帶等。

CPU 工作速度遠快於週邊邊裝置,且 CPU 需要連接很多輸出入裝置,對於工作效


率要求高的工作環境,考量到整體工作效能,不讓 CPU 直接與週邊裝置直接連接,而
是透過 IO 晶片負責隔離、橋接的工作。為了解決這個問題,為 CPU 連接週邊介面設計
兩個晶片:北橋晶片與南橋晶片,由北橋晶片連接較快速的元件與週邊,例如記憶體、
AGP(Accelerated Graphics Port,圖形加速埠)等。南橋晶片則負責連接較慢的週邊裝
置,例如鍵盤、滑鼠、USB 裝置、軟硬碟、網路控制器與音效控制器等,組成結構如圖
2-32 示。

AC20410_02.indd 66 7/9/2020 15:37:36


Chapter 2 │微處理機硬體架構 67

圖 2-32 Intel 晶片組連接關係

北橋 (Northbridge)與 南橋 (Southbridge)是配合 Intel 處理機的主機板晶片組,


北橋設計用來處理高速訊號,與 CPU 直接連接,處理 CPU 與快速週邊裝置之間的通訊,
例如 RAM、AGP 或 PCI Express 與南橋等。所謂「前端匯流排」是指 CPU 與北橋之間
的通道,也是快速通訊介面。

南橋設計用來處理低速訊號,通過北橋與 CPU 聯繫。在部分的晶片組中,會將南


橋 與 北 橋 整 合 在 同 晶 片 中。 南 橋 連 接 大 多 數 速 度 較 慢 的 I/O, 如 PCI 匯 流 排、USB、
LAN、ATA、SATA、音效控制器、鍵盤控制器、即時時鐘控制器、高級電源管理等。

2-5-3 常見輸出入匯流排標準
一 部 微 電 腦 系 統, 除 了 內 部 的 CPU、 記 憶 體 外, 更 有 大 部 分 的 工 作 需 要 與 外 界
的週邊裝置溝通,例如由掃描器掃瞄圖片、顯示相關訊息在螢幕上、列印報表等,為
因 應 各 種 不 同 的 週 邊 設 備 規 格、 特 性 與 需 求, 發 展 出 各 種 不 同 的「 匯 流 排 標 準 (Bus
standard)」,例如 ISA、VL Bus、PCI 等,它們代表著週邊設備與主機的不同溝通方式。

微電腦備有「擴充槽」,以安排這些不同的匯流排標準,方便使用者依據需要插入
「介面卡」,以連接指定的週邊設備。一般而言,不同的匯流排標準都備有不同的擴充
槽型式,我們大都直接以匯流排標準的名稱,來稱呼擴充槽。不同的匯流排標準,包括
匯流排的協定方式、資料匯流排寬度、匯流排的頻寬等都有不同的標準。目前微電腦系

AC20410_02.indd 67 7/9/2020 15:37:37


68 微處理機

統對外連接較為常見的匯流排標準可概分為兩類,第一類是在電腦內部裝置擴充插槽,
以介面卡插入插槽形式連接輸出入裝置,例如 PCI、AGP、PCI-E 等,第二類則是標準
化輸出入介面,以插座與接頭形式連接,例如 IDE、SATA、USB、COM 與 LTP 等。

PCI IDE

AGP SATA

PCI-E 1.0 USB

圖 2-33 常見匯流排插槽(座)外觀比較

一 PCI
週 邊 元 件 連 接 (Peripheral Component Interconnect, 簡 稱 PCI) 取 代 較 舊 ISA 與
VESA,主要作為電腦主機板連接外部裝置的匯流排標準,常見的 PCI 介面卡包括網路
卡、音效卡、數據機、電視卡和硬碟控制器等,另外也有 USB 和串列埠等擴充埠。早期
也有 PCI 顯示卡,後來被 AGP 取代,現在則由 PCI-E 取代。1992 年由 Intel 發表 PCI 1.0,
32bits
為並列 32 位元資料寬度,工作時脈為 33.33MHz,傳輸速度為 33.33× = 133 MB/s。
8
PCI 利用橋接器與 CPU 連接,可隔離 CPU 與週邊裝置,所以 CPU 不需要浪費時間
等待週邊設備,CPU 的執行效率提升不少。例如 CPU 要傳送資料到週邊設備,可先將
資料寫入橋接器內的緩衝器,再由橋接器負責與週邊設備慢慢傳輸。因傳輸速度的限制,
PCI 目前幾乎被淘汰了,新型微處理機系統已很少看到 PCI 插槽。

AC20410_02.indd 68 7/9/2020 15:37:37


Chapter 2 │微處理機硬體架構 69

二 AGP
加速影像處理埠(Accelerated Graphics Port,簡稱 AGP)是在 1997 年由 Intel 提出,
是一種顯示卡專用介面,採用高速點對點傳輸通道,主要應用在 3D 電腦圖形的加速上。
AGP 可以看成特殊的 PCI 插槽,與 PCI 一樣是 32 位元界面,但 AGP 不能多個插槽共
用一組匯流排。一些主機板設有多條獨立的 AGP 埠,目前 AGP 已被 PCI-E 取代。AGP
有 1x/2x/4x/8x 等不同速度規格,最基本的 AGP 1X 時脈為 66 MHz、資料傳輸速度可達
66M×32bits = 266 MB/s,為 PCI 的兩倍,比較如表 2-14 所示,2x 則為 1x 的兩倍時脈
頻率,以此類推。

表 2-14 AGP 不同版本比較
速度 版本 傳輸通道 有效時脈 資料傳輸速度
AGP 1x 1.0 32 bit 66.6MHz 266 MB/s
AGP 2x 1.0 32 bit 133 MHz 533 MB/s
AGP 4x 2.0 32 bit 266 MHz 1066 MB/s(1 GB/s)
AGP 8x 3.0 32 bit 533 MHz 2133 MB/s(2 GB/s)

三 PCI-E
PCI-E 為 PCI Express 的簡稱,官方簡稱 PCIe,為全雙工點對點串列傳輸系統,意
謂每個通道同一週期內可以雙向傳輸資料。PCI-E 是一個多層協定包括對話層、數據交
換層和實體層等,由於 PCI-E 是基於原有的 PCI 系統,只修改 PCI 實體層,改為串列傳
輸的 PCI-E 標準。

PCI-E 擁 有 更 快 的 速 率, 幾 乎 取 代 現 有 的 其 他 內 部 匯 流 排, 包 括 AGP 和 PCI。


PCI-E 最少支援 1 個通道,稱為 PCI-E x1。共有 x1、x2、x4、x8、x12、x16 和 x32 等
7 種版本,表示不同傳輸通道數目。PCI-E 裝置能夠支援熱拔插以及熱交換特性。

AC20410_02.indd 69 7/9/2020 15:37:37


70 微處理機

表 2-15 PCI-E 不同版本比較
版 原始 資料傳
發表年 編碼方式 單向單通道頻寬 雙向 16 通道頻寬
本 傳輸率 輸頻寬
1.0 2003 年 8b/10b 2.5GT/s 2Gb/s 250MB/s 8GB/s
2.0 2007 年 8b/10b 5.0GT/s 4Gb/s 500MB/s 16GB/s
1GB/s 32GB/s
3.0 2010 年 128b/130b 8.0GT/s 8Gb/s
(實際 0.9846 GB/s) (實際 31.5 GB/s)
2GB/s 64GB/s
4.0 2017 年 128b/130b 16.0GT/s 16Gb/s
(實際 1.9692 GB/s) (實際 63 GB/s)
4GB/s 128GB/s
5.0 2019 年 128b/130b 32.0GT/s 32Gb/s
(實際 3.9385 GB/s) (實際 126.0 GB/s)

註 1. GT/s 為 Giga Transfers per second 的縮寫,表示每秒傳輸次數。


128
2. 頻寬計算例子,5.0 版單向單通道頻寬 = (32G × ) ÷ 8 = 3.9385 GB/s。
130

PCI-E 1.0 於 2003 年發表,其傳輸速率為 2.5GT/s,採用 8b/10b 編碼方式,意謂傳


輸 10bits 中有效資料為 8bits,單向單通道頻寬達到 250MB/s,雙向 16 通道雙向帶寬為
8GB/s,如表 2-15 所示。PCI-E 2.0 則在 2007 年正式發布,信號傳輸速率翻倍至 5GT/s,
因此其通道頻寬也提高 2 倍,單通道單向帶寬為 500MB/s,16 通道雙向帶寬為 16GB/s。
以 此 類 推, 資 料 傳 輸 率 PCI-E 3.0 可 達 8.0GT/s,PCI-E 4.0 可 達 16.0GT/s。PCI-E 5.0
於 2019 年推出,可達 32GT/s。

圖 2-34 PCIe 演進

AC20410_02.indd 70 7/9/2020 15:37:38


Chapter 2 │微處理機硬體架構 71

四 IDE
整合性驅動電子設備 (Integrated Drive Electronics,簡稱 IDE),也稱為進階技術
附加裝置(Advanced Technology Attachment,簡稱 ATA),是一種專為硬碟、光碟、
CD/RW 等設計的並列傳輸介面標準,早期只可連接兩台硬碟,加強型 IDE(EIDE)可
連 接 4 台 硬 碟。2002 年 推 出 SATA(Serial ATA) 後, 原 有 的 ATA 改 名 為 PATA(P 意
謂 Parallel,並列),現在幾乎都被淘汰了。

五 SATA
SATA 出 現 已 完 全 取 代 PATA, 具 有 功
耗低、安裝方便、支援熱插拔等優點,為目
前主機板與大容量儲存裝置傳輸介面的主
流, 如 硬 碟 及 光 碟 機 等。SATA 更 改 PATA
的實體層為串列傳輸,有 SATA 1.5Gbit/s、
SATA 3Gbit/s 和 SATA 6Gbit/s 三 種 規 格, 圖 2-35 SATA 插頭與插座外觀
2013 年推出更快速的 SATA Express 規格,
如表 2-16 所示。
表 2-16 SATA 版本比較
版本 發表年 頻寬 理論速度 編碼
SATA 1.0 2003 年 1.5Gb/s 150MB/s 8b/10b
SATA 2.0 2004 年 3Gb/s 300MB/s 8b/10b
SATA 3.0 2009 年 6Gb/s 600MB/s 8b/10b
SATA Express 2013 年 16Gb/s 1969MB/s 128b/130b

六 USB
通用序列匯流排 (universe Serial Bus,簡稱 USB)是目前用得最廣泛的串列傳輸
標準,速度上遠比並列埠(例如 EPP、LPT)與序列埠(例如 COM)等傳統電腦用標
準匯流排快上許多,各版本傳輸速率參考表 2-17 所示。USB 可以使用集線器(Hub)
串接多個裝置,最多串接 127 個裝置,如圖 2-36 所示,使用上相當方便。USB 將於 4-3
專節討論。

AC20410_02.indd 71 7/9/2020 15:37:39


72 微處理機

圖 2-36 USB 集線器連接方式

表 2-17 USB 版本比較
版本 官方名稱 傳輸速率
USB 1.1 USB 2.0 FullSpeed 12Mbps
USB 2.0 USB 2.0 HiSpeed 480Mbps
USB 3.0 USB 3.2 Gen1x1 5Gbps
USB 3.1 USB 3.2 Gen2x1 10Gbps
USB 3.2 USB 3.2 Gen2x2 20Gbps

2-5-4 I/O 介面電路


微處理機與眾多週邊的速度與資料格式差異太大,通常會以輸出入處理單元作為仲
介處理,如圖 2-37 所示。微處理機與週邊設備間靠著 I/O 埠位址傳輸資料,另外,一台
電腦同時連接多台週邊設備,必須有「I/O 埠位址解碼電路」與輸出入指令,才能將資
料完整送達。CPU 動作很快,但週邊設備大都動作緩慢,其中的速度協調工作也是需要
考量的。

圖 2-37 含有 IOP 的微處理機系統

AC20410_02.indd 72 7/9/2020 15:37:39


Chapter 2 │微處理機硬體架構 73

 一 不同控制信號
輸出入指令 IN(輸入)與 OUT(輸出)的動作與記憶體的讀寫動作很類似,如果
採用隔離式 I/O 則會有不同的控制信號,例如 I/O 使用 IOR 表示讀取,IOW 表示寫入,
而記憶體使用 MEMR 表示讀取,MEMW 表示寫入。

 二 速度協調 – 栓鎖與三態緩衝
當 CPU 送資料給 I/O 時,因為 CPU 送出資料的時間極短,大部分的 I/O 都無法在
此短暫時間內完成讀取功能,必須先利用栓鎖器將資料鎖住。但是 I/O 裝置並不全都有
栓鎖的功能,所以必須為輸出入裝置提供栓鎖功能,使 CPU 能將資料送給輸出入設備,
簡單的栓鎖功能可透過如 74LS373 完成。

在輸入資料方面,CPU 透過 I/O 槽同時與多個輸入設備連接,我們需要利用三態


功能隔開它們,當某個輸出入設備要送資料給 CPU 時,再將它與 CPU 的資料匯流排接
起來。這樣的功能可透過三態緩衝器 74LS244 完成,74LS244 與 74LS373 接腳圖如圖
2-38 所示。綜上所述,進行 CPU 與 I/O 的並列資料傳輸時,常使用栓鎖器 74LS373 提
供「CPU → I/O」的栓鎖功能,而使用三態緩衝器 74LS244 提供「I/O → CPU」資料傳
輸時的三態緩衝功能。

(a) 74LS373 接腳圖 (b) 74LS244 接腳圖


圖 2-38 74LS373 與 74LS244 接腳圖

AC20410_02.indd 73 7/9/2020 15:37:39


74 微處理機

三 以 74LS373 設計輸出埠
當 74LS373 的 LE = 1(Latch enable, 栓 鎖 致 能 ) 與 OE = 0(output enable, 輸
出 致 能 ), 就 可 將 D 7 ~ D 0 的 資 料 栓 鎖 住, 並 送 至 輸 出 Q 7 ~ Q 0。 參 考 圖 2-39, 執 行
「OUT 99H,AL」, 當 位 址 匯 流 排 A 7 ~ A 0 = 1001 1001 = 99H 時,IOW 信 號 可 順 利
激 勵 74LS373 的 LE 接 腳, 使 74LS373 動 作, 將 資 料 匯 流 排 D 7 ~ D 0 的 資 料 栓 鎖 在 輸
出接腳 Q 7 ~ Q 0,以供慢速的週邊設備讀取。圖 2-40 為 I/O 埠利用 74LS373 連接 8 個
LED 的基本輸出電路的接法。

圖 2-39 以 74LS373 設計輸出埠

圖 2-40 74LS373 連接 8 個 LED 的輸出電路

AC20410_02.indd 74 7/9/2020 15:37:40


Chapter 2 │微處理機硬體架構 75

 四 以 74LS244 設計輸入埠
三 態 緩 衝 器 74LS244 具 有 兩 組 4 位 元 獨 立 控 制 的 三 態 緩 衝 器, 其 中 G 1 與 G 2 各
控 制 一 組, 將 G 1 與 G 2 同 時 接 至 低 電 位, 就 可 當 成 8 位 元 的 三 態 緩 衝 器。 圖 2-41 以
74LS244 設計「IN AL,99H」的輸入埠,當位址匯流排送來 99H = 1001 1001 時,同
時 I/O 寫入信號動作 IOR = 0,就能激勵 74LS244 的 G 1 與 G 2,使 74LS244 資料的輸入
與輸出端是連通的。當位址匯流排送來的位址非 99H 時,G 1 與 G 2 將得到高電位,使
74LS244 的輸出是浮接的,也就是電腦內部的資料匯流排與週邊設備的資料線是不導通
的。這樣就可以防止任何不是 CPU 指定的週邊設備送來資料的干擾。除了隔絕 CPU 與
週邊設備外,74LS244 也可提高驅動電流,圖 2-42 展示 74LS244 組成連接 8 位元指撥
開關的基本輸入電路。

圖 2-41 以 74LS244 設計 IN AL,99H 輸入埠

圖 2-42 連接 8 位元指撥開關的基本輸入電路

AC20410_02.indd 75 7/9/2020 15:37:40


76 微處理機

2-5 隨堂練習
1. 常見的 I/O 埠位址規劃方式為       與       兩種。

2. CPU 與 I/O 的速度協調常使用橋接方式進行隔離處理,負責連接高速裝置的稱為


       、反之連接較慢速裝置的稱為       。

3. 明君買了一台新電腦,很好奇地仔細看看,但爸爸不准她拆開外殼怕弄壞了,請問
以下哪些是明君不可能看到的 I/O 槽或座? PCI-E、AGP、SATA、IDE、USB
       。

4. I/O 介面電路中,輸出埠可用具有栓鎖功能的       、輸入埠可用具有三態
緩衝功能的       。

AC20410_02.indd 76 7/9/2020 15:37:41


Chapter 2 │微處理機硬體架構 77

Chapter 2 學習目標回顧

學習目標 1:能描述微處理機系統的組成架構
1. 依據傳遞的訊息種類不同,匯流排可區分如下圖:

2. 微處理機結構有范紐曼結構與哈佛結構兩種,如下圖所示:
(a) 范紐曼結構

(b) 哈佛結構

學習目標 2:能解釋微處理機基本運作原理
3. 常用的微運算可分為暫存器間的資料傳遞微運算、算術微運算、邏輯微運算、
移位微運算等四大類。
4. 依 據 解 碼 方 式 不 同, 控 制 單 元 的 類 型 可 分 為 固 線 式 控 制 單 元 與 微 程 式 控 制 單
元兩種。大多數基於精簡指令集計算機 (RISC) 架構的計算機是使用固線式控制,
而非微程式控制。
學習目標 3:能列舉微處理機系統的記憶體階層
5. 廣義的記憶體階層包含暫存器、快取記憶體、主記憶體與輔助記憶體。
6. 主 記 憶 體 大 都 使 用 半 導 體 技 術 製 造, 可 概 分 為 唯 讀 記 憶 體(ROM) 與 隨 機
存取記憶體(RAM)。

AC20410_02.indd 77 7/9/2020 15:37:41


78 微處理機

Chapter 2 學習目標回顧

學習目標 4:能計算與設計位址解碼電路
7. 常 見 的 位 址 解 碼 方 式 有 線 性 解 碼、 完 全 / 部 分 解 碼 等 兩 種 方 式。 常 用 來 組 成
位址解碼電路的有,邏輯閘、74138 解碼器、CPLD/FPGA 等方式。
學習目標 5:能說明輸出入裝置運作原理
8. 對於埠位址的規劃,常見有記憶體映對式 IO 與隔離式 I/O 兩種方式。
9. 為 解 決 I/O 與 CPU 速 度 差 異 太 大 的 問 題, 設 計 北 橋 與 南 橋 兩 個 晶 片, 如 下
圖所示:

學習目標 6:能說明常見匯流排標準特性
10. 常 見 電 腦 內 部 裝 置 擴 充 插 槽, 以 介 面 卡 插 入 插 槽 形 式 連 接 輸 出 入 裝 置, 例 如
PCI、AGP、PCI-E 等。
11. 常 見 標 準 化 輸 出 入 介 面, 以 插 座 與 接 頭 形 式 連 接, 例 如 IDE、SATA、
USB、COM 與 LTP 等。
12. 微 處 理 機 與 眾 多 週 邊 的 速 度 與 資 料 格 式 差 異 太 大, 通 常 會 以 輸 出 入 處 理 單 元
作為仲介處理,如下圖所示:

13. 輸出簡單的栓鎖功能可透過如 74LS373 完成。輸入三態緩衝器常以 74LS244 完成。

AC20410_02.indd 78 7/9/2020 15:37:42


Chapter 2 │微處理機硬體架構 79

Chapter 2 課後習題

選擇題
2-1 1. 某一微電腦具有 32 條位址線與 8 條資料線,不外加電路,則它的 CPU 可
直接存取之記憶體位址空間最大可達
(A) 16 MB (B) 256 MB (C) 1 GB (D) 4 GB。

2. 有關微處理機的敘述何者錯誤? (A)8 位元的 CPU 每次可以處理 1byte 位


元組的資料 (B) 微處理機的位元數越大,執行速度愈快 (C) 以 16 位
元的微處理機處理 128 位元的資料,需處理 6 次 (D) 因電腦等級界線愈
來愈模糊,微處理機可稱為中央處理單元(CPU)。

3. 一部 32 位元電腦和 64 位元的電腦通常是以何者為依據?
(A) 控制匯流排之位元數 (B) 資料匯流排之位元數
(C) 程式匯流排之位元數 (D) 位址匯流排之位元數。

4. 下列有關「PC 中匯流排(Bus)」的敘述中,何者有誤?
(A) 匯 流 排 一 般 分 為 資 料 匯 流 排(DataBus), 位 址 匯 流 排(Address
Bus) 和 控 制 流 排(Control Bus) 三 種 (B) Data Bus 是 在 CPU 和
Memory 之 間 傳 送 資 料, 所 以 是 雙 向 性 (C) Address Bus 可 用 來 標 明
Memory 或 I/O Port 位址的地方 (D) Data Bus 的長度和 Address Bus 的
長度必須一樣。

5. 電腦的哪一個部分負責從主記憶體讀取並解釋指令?
(A) 控制單元 (B) 主記憶體 (C) 輸出 / 入單元 (D) 算術邏輯單元。

2-2 6. 在 CPU 中的暫存器,何者之主要功能是儲存機器碼指令的位址?


(A) 指令暫存器(IR) (B) 程式計數器(PC)
(C) 記憶資料暫存器(MDR) (D) 通用暫存器(GR)。

7. 下列有關 80×86 微處理機架構的敘述,何者錯誤?


(A) 控制單元負責 CPU 內部各單元間動作的聯繫
(B) 記憶單元可存放資料
(C) 輸出入單元屬於 CPU
(D) 算術邏輯單元可實現各類算術及邏輯功能。

AC20410_02.indd 79 7/9/2020 15:37:42


80 微處理機

Chapter 2 課後習題

8. 下列何者用於記錄 CPU 工作進行時的各種狀態?


(A) 程式記數器 (B) 狀態(旗標)暫存器 (C) 堆疊器 (D) 累加器。

9. 下列何者負責記錄程式進行時下一指令所在的記憶體位址?
(A) 程式計數器 (B) 記憶體位址暫存器
(C) 記憶體緩衝暫存器 (D) 指令暫存器。

2-3 10. 有關記憶體的敘述,下列何者錯誤?


(A) ROM 中的資料不因斷電而消失
(B) DRAM 存取資料的速度比 SRAM 快
(C) 磁碟可當作輔助的記憶體
(D) EPROM 可重覆燒錄多次使用。

11. 下列有關隨機存取記憶體 (RAM) 之敘述何者錯誤?


(A) 關閉電源則 RAM 內之資料即消失 (B) DRAM 由正反器所構成
(C) SRAM 比 DRAM 成本高 (D) DRAM 必須週期性更新。

12. 若 80x86 之記憶器位置暫存器(memory address register)是 20 位元,


記憶器緩衝暫存器(memory buffer register)是 16 位元,試問該微處理
機可存取的記憶器空間有多大?
(A) 1 M 位元組 (B) 2 M 位元組  (C) 4 M 位元組 (D) 8 M 位元組。

13. 積 體 電 路(IC) 編 號 6264, 是 一 條 8K×8 的 靜 態 隨 機 存 取 記 憶 體


(SRAM),則其具有:
(A) 10 條位址線、4 條資料線 (B) 12 條條位址線、8 條資料線
(C) 13 條位址線、8 條資料線 (D) 14 條位址線、4 條資料線。

14. 有關記憶體的敘述,下列何者正確?
(A) 斷電後 ROM 中的資料會消失
(B) 斷電後 DRAM 中的資料不會消失
(C)ROM 可清除並重複燒錄使用
(D)EPROM 可清除並重複燒錄使用。

AC20410_02.indd 80 7/9/2020 15:37:43


Chapter 2 │微處理機硬體架構 81

Chapter 2 課後習題

2-4 15. 如圖 (1) 所示,若微處理機有 16 條位址線,則此 SRAM 之位址範圍設計


於何處?
(A) 4000 16 ~ 47FF 16 (B) 4800 16 ~ 4FFF 16
(C) 7000 16 ~ 77FF 16 (D) 7800 16 ~ 7FFF 16。

圖 (1)
16. 承上題,此 SRAM 的容量為何?
(A) 2K Bytes (B) 4K Bytes (C) 8K Bytes (D) 16K Bytes。

17. 採用一 3 對 8 之 74LS138 解碼器擴充記憶體容量,CPU 位址線 A 0 ~ A 15


中的 A 10、A 11、A 12 分別接至解碼器的 A、B、C 輸入。若指定 Y 7 = 0,其
餘 Y 0 ~ Y 6 為 1,則下列何者為 可能的指定記憶體位址?
(A) 1CCCH (B) 1888H (C) 0FFFH (D) 0444H。

18. 利用 256 K * 4 記憶體元件完成 64 M * 8 之記憶體模組,共需多少個記


憶體元件? (A) 512 (B) 256 (C) 128 (D) 1024。

19. 如圖 (2) 所示,下列 ROM 解碼的範圍,何者包含 0D57FFH 的位址?


(Y 0 ~ Y 7 分別接到 ROM 0 ~ ROM 7)
(A) ROM 1  (B) ROM 5 (C) ROM 6 (D) ROM 6 及 ROM 7。

圖 (2)

AC20410_02.indd 81 7/9/2020 15:37:43


82 微處理機

Chapter 2 課後習題

20. 承上題,若不慎將 A14 與 A16 互相接反(A16 接至 A 的接腳,A14 接


至 C 的接腳),則下列有關接反前與接反後的敘述,何者正確?
(A) 接反前 ROM 0 的解碼位址,變為接反後 ROM 1 的解碼位址
(B) 接反前 ROM 2 的解碼位址,變為接反後 ROM 6 的解碼位址
(C) 接反前與接反後,ROM 1 的解碼位址都一樣
(D) 接反前與接反後,ROM 5 的解碼位址都一樣。

2-5 21. Intel 8086 CPU 當 M/IO = 0,RD = 0,表示 CPU 正在執行何種動作?
(A) 讀取記憶體資料 (B) 讀取週邊裝置資料
(C) 將資料寫入記憶體 (D) 將資料寫入週邊裝置。

22. 下列何者不是串列傳輸規格?
(A) IEEE1394 (B) USB (C) RS-232 (D) PCI。

23. 一 8 位 元 微 處 理 機 具 有 界 接 64 K 位 元 組 的 ROM、64 K 位 元 組 的
RAM、64 K 位元組的輸入埠及 64 K 位元組的輸出埠,若此微處理機採
用記憶體對應 I/O(memory mapped I/O),試問其位址線至少需幾條?
(A) 16 條 (B) 17 條 (C) 18 條 (D) 19 條。

24. TTL 數位 IC 的編號若為 74LS244N,表示其功能為下列何者?


(A) 8 個 3 態的匯流排緩衝器(Octal 3-State Bus Buffer)
(B) 8 個 3 態的匯流排收發器(Octal 3-State Bus Transceivers)
(C) 8 個 D 型正反器(Octal D-FF)
(D) 4 個 RS 型正反器(Quad RS-FF)。

25. 下列敘述中,何者不是記憶體映對 (Memory Mapped) I/O 的特點?


(A) 獨立的 I/O 地址,不佔記憶體的空間
(B) 沒有輸入、輸出指令
(C) Memory 和 I/O 同等對待
(D) 所有 Memory 的指令皆可以用來做 I/O 的工作。

AC20410_02.indd 82 7/9/2020 15:37:44


Chapter 2 │微處理機硬體架構 83

Chapter 2 課後習題

問答題
1. 請簡述三種系統匯流排的方向與傳遞訊息。

2. 在微處理系統中,廣義的記憶體包括那些?

3. 試著比較主記憶體與輔助記憶體的特性。

4. 圖 (3) 為 使 用 74LS138 進 行 位 址 解 碼 工 作。 請 分 析 ROM0 ~ ROM7 的 位 址 分


配空間。

圖 (3)

5. 通常微處理機系統對於 I/O 埠位址的規劃方式有哪兩種方式?

AC20410_02.indd 83 7/9/2020 15:37:44


84 微處理機

AC20410_02.indd 84 7/9/2020 15:37:44


教學節數

ap
ter 9
3 微處理機軟體發展流程

Ch

本章節次 學習目標
3-1 指令與程式 1. 能描述執行指令過程 CPU 內部的動作。
3-2 定址模式 2. 能列舉與區分常見的定址模式。
3-3 指令集 3. 能描述指令集的意義與類型。
3-4 高階語言與低階語言之轉換 4. 能說明組合語言格式與組譯器的工作。
3-5 微處理機軟體處理程序 5. 能描述程式的開發與執行的過程。
學習目標回顧
課後習題

AC20410_03.indd 85 7/9/2020 15:39:05


86 微處理機

3-1 指令與程式
上一章已談論微處理機內部的簡單設計概念,也設計一些執行微運算的結構。本節
將從指令的觀點切入,談論指令的細部執行過程等,並設計一個具有軟體架構的簡易微
處理機系統,讓讀者對微處理機的結構有一個更清楚的輪廓。

3-1-1 執行一個指令
每個微處理機都會規範出可執行的指令群,稱為 指令集 (instruction set)。程式設
計師可以參考指令集,安排指令的執行順序,這些依據功能要求安排的指令順序稱為程
式,所謂執行程式,就是微處理機依序執行程式的指令以達成需要的功能。

參考圖 3-1 所示,CPU 執行指令示意方塊圖,圖中包括 IR、ACC、MDR 與 MAR


等暫存器,配合其他單元,完成指令的執行。指令的執行可概分為「提取週期」與「執
行週期」兩個步驟,圖中箭頭表示資料流向。

MAR (記憶體位址暫存器)是 CPU 要讀取或寫入記憶體資料時,先將操作位址放


在 MAR。MDR(記憶體資料暫存器)是要讀取或寫入記憶體資料時,資料的暫存位置。
MDR 有時也稱為 MBR(記憶體緩衝暫存器),意即作為 CPU 資料讀出或寫入記憶體
的緩衝區。 ACC (accumulator register,累積暫存器)則為算術邏輯運算時,運算資料
與運算結果的暫存位置。

PC(程式計數器),暫存下一個 CPU 要執行指令的記憶體位址,程式計數器(PC)


為內部暫存器,專門儲存 CPU 要執行的下一個指令之記憶體位址。依照預設,每當一
個指令執行之後,PC 值會自動增加。假設 PC 起始值為 0000,因此 CPU 會從位址 0000
的指令開始執行程式。指令執行時,PC 會自動遞增至 0001,CPU 接著便會提取與執行
位址 0001 的指令,然後 PC 再往前遞增,以此類推至程式執行完畢。

IR (指令暫存器)為暫時儲存將要解碼、執行的指令。 ID (指令解碼器)負責對
IR 內的指令進行解碼,並利用解碼後的結果依序驅動微處理機計算與運作。指令解碼器
的結果,通常包括數個微運算,只要依序執行這些微運算就可以完成指令的功能。

AC20410_03.indd 86 7/9/2020 15:39:06


Chapter 3 │微處理機軟體發展流程 87

時脈電路則是負責提供系統統一的動作時序,讓各個單元可以依據同一個步調工
作。另外,記憶體與 CPU 除了位址匯流排與資料匯流排的連接,由 MAR 與 MDR 負責
位址與資料的暫時存放。另外,控制匯流排的 RD 控制讀取資料、WR 控制寫入資料。

圖 3-1 CPU 執行指令示意方塊圖(虛線為控制訊號)

 一 指令提取週期工作
指令週期概分為提取週期與執行週期。提取週期的工作是由記憶體提取指令到指令
暫存器 IR,進行指令解碼的動作,這部分的工作主要由控制單元負責。如圖 3-2 中所示,
指示提取週期的動作順序 1 ~ 6 。

AC20410_03.indd 87 7/9/2020 15:39:06


88 微處理機

圖 3-2 指令提取週期

首先由 1 將 PC 指向的指令所在的記憶體位址,送到 MAR,並傳送到位址匯流排。


然後 2 發出控制信號 RD,透過資料匯流排,讀取「指令」到 MDR, 3 再傳送到指令
暫存器 IR 中。接下來, 4 由 ID 進行指令解碼, 5 指定執行過程應進行的工作。最後,
6 PC ← PC + 1,使 PC 指向下一個要執行指令的記憶體位址。整理如下,較容易對照、
理解。

當提取週期開始時,會 指令由MDR輸入 控制信號產生電路產


先將PC內容放置MAR IR。 生一連串可達成指令
,作為取得下一個要執 功能的控制信號,負
行指令的記憶體位址。 責執行指令的所有控
制動作。

1 2 3 4 5 6
控制單元產生記憶體讀 IR內容送入ID進行指 將PC加1,指向下一
取信號,讀取MAR所指 令解碼,以解碼指令 個CPU要執行的指
位置內容至MDR。 的工作,解碼出數個 令位置。
微碼,再送至控制信
號產生電路。

AC20410_03.indd 88 7/9/2020 15:39:07


Chapter 3 │微處理機軟體發展流程 89

 二 指令執行週期
指令執行週期要依據解碼後的控制信號指示,完成指令功能。同樣的,在圖 3-3 中
標示動作順序 1 ~ 6 ,以便觀察。這裡假設指令的工作,需要從記憶體提取運算元,
然後由 ALU 進行運算。運算結果再寫入記憶體中。

圖 3-3 指令執行週期

指令執行時,運算元所在位置與取得方式稱為「定址模式」。運算元可能是數值、
或在暫存器內、或在記憶體內。如果在記憶體內,指令需要由記憶體提取運算元內容,
先由控制單元計算運算元有效位址, 1 將位址放置 MAR。控制單元 2 發出信號 RD,
讀取 MAR 所指位置的運算元至 MDR。 3 將運算元送至 ALU 中,然後, 4 進行算術、
邏輯或比較、移位等運算處理。因為運算結果要寫入記憶體中,所以 5 運算結果送至
MDR、目的位址送至 MAR,然後 6 發出 WR 寫入信號,完成回存執行結果的動作。

AC20410_03.indd 89 7/9/2020 15:39:07


90 微處理機

指令需要由記憶體提 MDR中的資料(運算 指令執行結果可能放


取運算元內容,由控 元)載入ALU中的累積 在暫存器或回存記憶
制單元計算運算元有 器ACC或B暫存器, 體。如需要回存運算
效位址,將位址放置 以進行運算動作。 結果到記憶體,則將
MAR。 運算結果放至MDR。

1 2 3 4 5 6
控制信號產生電路產 ALU執行算術、 配合MAR指定位置與
生記憶體讀取信號, 邏輯運算。 MDR回存資料,產生
讀取MAR所指位置 寫入信號,完成回存
內容至MDR。 結果。

指令執行可能不需要某些步驟,例如「不需要提取運算元」則略 2 、「不需要回存
運算結果至記憶體」則略 6 等,依照執行指令的需要,由控制信號產生電路決定執行
的步驟。

3-1-2 設計一個簡單的微處理機
設計一個微處理機系統,除了硬體結構外,也需要定義可以執行的指令群,即指令
集。程式設計師可以組合這些指令群,完成所需要的程式功能。以下將延續上述的微處
理機結構,設計一個簡單的微處理機系統,指令格式為 8 位元,指令集提供包括暫存器
運算指令與記憶體存取指令等多個指令。

一 暫存器
編碼 暫存器名稱
系 統 中 提 供 通 用 暫 存 器 R1 ~ R3, 共 有 3 個 8 位 元 暫 存 00 無
器,分別給予編碼代號,如右表所示,在指令編碼時使用,其 01 R1
中編碼 00 沒有指定暫存器。除了 R1 ~ R3 以外,當然也需要 10 R2
PC、IR、MAR、MDR 等執行指令必備的暫存器。 11 R3

二 記憶體
整個微處理機系統可存取 8 個記憶體位置(位址),每個
位置寬度 8bits。記憶體位址分別為 000 ~ 111。

AC20410_03.indd 90 7/9/2020 15:39:07


Chapter 3 │微處理機軟體發展流程 91

三 指令集
整個系統支援暫存器運算指令、記憶體存取指令兩種,定義指令的格式與系統可以
執行的指令如下所述。

1 暫存器運算指令(8bit):分為運算碼、目的暫存器、來源暫存器等三個欄位,
如下圖所示,總長度只需要 7bits,所以最後 1 個位元不需使用。運算碼 3bits,
表示整個微處理機系統最多只能支援 2 3 = 8 個指令。而表達目的與來源暫存器
的位元為 2bits,最多能表示 2 2 = 4 個暫存器,系統只有 3 個暫存器,所以足夠。

運算碼(3bit) 目的暫存器(2bit) 來源暫存器(2bit) 未使用(1bit)


OP Rd Rs 0

系統支援 6 個暫存器運算指令,支援算數運算 AND(加)、SUB(減),邏輯


運算 NOT(反)、AND(及)、OR(或),END 表示程式結束。如下表所示,
運算碼編碼由 000 至 101,110 與 111 沒有使用。

運算碼 指令碼 描述
000 END 程式結束
001 ADD Rd,Rs Rd ← Rd + Rs
010 SUB Rd,Rs Rd ← Rd – Rs
011 NOT Rs Rd ← NOT Rs
100 AND Rd,Rs Rd ← Rd AND Rs
101 OR Rd,Rs Rd ← Rd OR Rs

2 記憶體存取指令(8bit):為了存取記憶體資料,系統提供兩個記憶體存取指令,
格式如下表所示,包括 3bits 的運算碼、2bit 的暫存器指示位元、3bits 的記憶
體位址表示位元。

運算碼 (3bit) 暫存器 (2bit) 記憶體位址 (3bits)


OP Rd MAR

AC20410_03.indd 91 7/9/2020 15:39:07


92 微處理機

LOAD 是從記憶體讀取資料到指定的暫存器中,而 STORE 則是將暫存器內容,


儲存到指定記憶體位址中。

運算碼 指令碼 描述
110 LOAD R1,AD R1 ← M[AD],從記憶體讀取之暫存器
111 STORE R1,AD M[AD] ← R1,由暫存器寫入到記憶體

下面是依據這個微處理機提供的指令集與內部結構,撰寫一個簡單的程式範例,主
要功能是將「兩個記憶體位址的內容相加後,再回存記憶體中」。以下將針對這支程式,
說明系統的處理過程。

組合語言 機械碼 說明
LOAD R1,6 110 01 110 ; 位址 6 的內容載入到暫存器 R1
LOAD R2,7 110 10 111 ; 位址 7 的內容載入到暫存器 R2
ADD R1,R2 001 01 10 0 ; R1 ← R1 + R2
STORE R1,7 111 01 111 ; 將暫存器 R1 內容儲存到位址 7
END 000 00 00 0 ; 程式結束

1. 程式開始,將程式機械碼載入記憶體位址 001 ~ 101,PC = 001,指向第一道


指令的記憶體位址。請注意,微處理機只可執行機械碼,但程式設計師通常會
使用組合語言或其他高階語言進行程式設計。

2. 執行第 1 道指令:LOAD R1,6,機械碼 11001110

運算碼 (3bit) 暫存器 (2bit) 記憶體位址 (3bits)


OP = 110,即 LOAD Rd = 01,即 R1 MAR = 110

AC20410_03.indd 92 7/9/2020 15:39:08


Chapter 3 │微處理機軟體發展流程 93

(1) 提 取 PC 所 指 位 址 的 指 令 到 IR 後,PC 指 向 下 一 道 指 令, 所 以 IR =
11001110、PC = 010。
(2) MAR 直接對應到指令碼低 3 位元,所以 MAR = 110。
(3) 經過解碼、執行後,將記憶體位址 (MAR)110 的內容載入到 R1,所以 R1
= 0000101。

3. 執行第 2 道指令:LOAD R2,7,機械碼 11010111,執行過程與第 1 道指令動


作雷同。

運算碼 (3bit) 暫存器 (2bit) 記憶體位址 (3bits)


OP = 110,即 LOAD Rd = 10,即 R2 MAR = 111

(1) 提取 PC 所指位址的指令到 IR 後,PC 指向下一道指令,所以 IR = 11010111、PC


= 011。
(2) MAR 直接對應到指令碼低 3 位元,所以 MAR=111。
(3) 經過解碼、執行後,將記憶體位址 (MAR)111 的內容載入到 R2,所以 R2 =
0000011。

AC20410_03.indd 93 7/9/2020 15:39:08


94 微處理機

4. 執行第 3 道指令:ADD R1,R2,機械碼 00101100

運算碼(3bit) 目的暫存器(2bit) 來源暫存器(2bit) 未使用(1bit)


OP = 001,即 ADD Rd = 01,即 R1 Rs = 10,即 R2 0

(1) 提 取 PC 所 指 位 址 的 指 令 到 IR 後,PC 指 向 下 一 道 指 令, 所 以 IR =
00101100、PC = 100。
(2) MAR 直接對應到指令碼低 3 位元,所以 MAR = 100。注意,此時不是執
行記憶體存取指令,MAR 內容無意義。
(3) 經過解碼、執行後,將暫存器 R1 內容與 R2 內容相加後放至 R1,所以 R2
不變、R1 = 00001000。

5. 執行第 4 道指令:STORE R1,7,機械碼 11101111

運算碼 (3bit) 暫存器 (2bit) 記憶體位址 (3bits)


OP = 111,即 STORE Rd = 01,即 R1 MAR = 111

(1) 提 取 PC 所 指 位 址 的 指 令 到 IR 後,PC 指 向 下 一 道 指 令, 所 以 IR =
11101111、PC = 101。
(2) MAR 直接對應到指令碼低 3 位元,所以 MAR=111。
(3) 經過解碼、執行後,將暫存器 R1 內容回存記憶體位址 (MAR)111,所以
R1 不變,記憶體位址 111 的內容變為 00001000。

AC20410_03.indd 94 7/9/2020 15:39:10


Chapter 3 │微處理機軟體發展流程 95

6. 執行第 5 道指令:END,機械碼 00000000

運算碼(3bit) 目的暫存器(2bit) 來源暫存器(2bit) 未使用(1bit)


OP = 000,即 END Rd(無用) Rs(無用) 0

(1) 提 取 PC 所 指 位 址 的 指 令 到 IR 後,PC 指 向 下 一 道 指 令, 所 以 IR =
00000000、PC = 110
(2) MAR 直接對應到指令碼低 3 位元,所以 MAR = 000。此時不是執行記憶
體存取指令,MAR 內容無意義。
(3) 經過解碼、執行後,這道指令是結束程式。

3-1 隨堂練習
1. 每個微處理機都會規範出可執行的指令群,稱為      。

2. CPU 要讀取或寫入記憶體資料時,要先將操作位址放在      ,將資料放在
      。

3. 一個指令分為運算碼與運算元兩部分,如果運算碼為 6bits,則表示微處理機最多可
有      個指令。

AC20410_03.indd 95 7/9/2020 15:39:10


96 微處理機

3-2 定址模式
指令格式包含「運算碼」與「運算元」兩部分,其中運算元為指令執行期間需要的
資料或儲存該資料的位址(置)。表達運算元所在位置或位址的方法被稱為「定址模式
(addressing mode)」,即由「運算元」取得「運算資料」的過程,也就是換算運算元
為實際位址進而取得運算資料的過程,依據不同的「定址模式」有不同的換算的方式。

為何需要不同的定址模式呢?指令執行過程需要存取運算元,因指令格式的關係,
位址欄寬度受到限制,而運算元所在位置可能含在指令中,或暫存器、記憶體裡,因為
運算資料所在位置不同,所以需要不同的方式來表達。就將這種指令格式中用來「決定
運算元所在位置(址)」稱為定址模式。

定址模式優點

01
經由記憶體指標、迴圈計數控制、資料索引、程式重新定位等方式,讓使用者在程式設計時有
較大的設計彈性,並提高指令的執行效率。

02 減少指令中的位址欄(運算元)的位元數。

通常 CPU 有兩類定址模式,第一類是程式碼的定址模式,也就是「下一個要執行
的指令位置」的表示方法,其位址是由 PC 指定,大多數的情況下,PC 在提取指令後遞
增,除非碰到跳躍或分支指令,此時它的值是由 CPU 的控制單元指定,程式設計者毋
須擔心。

第二類是資料的定址模式,指令執行時,需要的運算元(資料)位置的指定方式
相當多種,不同的定址模式可能可以達成相同的功能,但執行速度不一樣,應慎選執行
效率最高的定址模式,如果沒有特別說明,定址模式都是談論「資料的定址模式」。以
下僅提出一些較常用的定址模式的說明。MOV 是最常用的組合語言指令助憶碼,意指
MOVE,移動的意思,格式為:

  MOV 目的 , 來源
MOV 將來源資料搬移到目的,來源內容不變,目的內容被覆蓋。它的使用可以說
明大多數的定址模式,以下將透過 MOV 說明各種常見的定址模式。定址模式很像一個
「運算元在哪裡 ?」的尋寶遊戲,讓我們進入遊戲裡!

AC20410_03.indd 96 7/9/2020 15:39:10


Chapter 3 │微處理機軟體發展流程 97

常見的定址模式如表 3-1 所示,以演算法示意定址方式與特色說明。表格中,R 表


示暫存器名稱,A 為指令格式中的運算元,[A] 則是表示位址 A 指向的記憶體內容。而
EA 表示運算元有效位址。只要到「EA」所指位置(址),就可以取得運算資料了,即
運算元等於 [EA] !
表 3-1 基本定址模式比較表
定址模式 演算法 特色與說明
立即定址 運算元在指令中。不用記憶體存取,速度較快,
運算元 = A
Immediate addressing 但是運算元長度受限。
直接定址 運算元在所指的記憶體位址中。因指令長度固
EA = A
Direct addressing 定,位址空間(長度)受限。
間接定址 運算元有效位址在所指記憶體位址中。可使用
EA = [A]
Indirect addressing 位址空間大,但多次記憶體存取速度較慢。
暫存器定址
EA = R 無記憶體存取,運算元在暫存器中,速度快。
Register addressing
暫存器間接定址
EA = [R] 位址空間大,但額外記憶體存取速度較慢。
Register indirect addressing
位移定址
EA = A + [R] 存取位址有彈性,但較複雜。
Displacement addressing
堆疊定址
EA =[SP] 使用堆疊結構存取運算元。
Stack addressing

 一 立即定址
立即定址的運算元就在指令中,指令中直接指定運算資料,是最簡單的定址模式。
立即定址的優點是不需要進行記憶體存取,只要提取指令即得運算元,執行速度較快,
但是運算元的寬度被指令格式(長度)限制。

圖 3-4 立即定址
所有定址模式中,暫存器定址與立即定址兩種執行速度最快,因為執行時所需要的
運算元就在 CPU 內部,如果需要到記憶體存取運算元,則速度會大大降低!

AC20410_03.indd 97 7/9/2020 15:39:11


98 微處理機

二  直 接定址
直接定址 MOV R,[A],指令的記憶體位址欄位內容就是運算元的有效位址,只需要
一個記憶體週期,不須額外運算。同樣地,缺點是位址長度被指令格式限制,無法表達
太大的記憶體空間。

圖 3-5 直接定址

三  間 接定址
為解決直接定址的缺點,間接定址於指令格式中的位址欄(A)指到記憶體位址,
存放運算元的完整位址,這個定址方式需要兩次的記憶體週期(一次擷取位址、一次擷
取運算元)。擷取過程是先取得運算元有效位址 EA=[A],再提取運算元 =[EA]。

圖 3-6 間接定址

AC20410_03.indd 98 7/9/2020 15:39:12


Chapter 3 │微處理機軟體發展流程 99

四  暫 存器定址
和直接定址相似,差別在於「位址欄是暫存器名稱」,運算元在指到的暫存器內,
換句話說,以暫存器名稱為運算元,表示暫存器內儲存運算時所需的資料。暫存器定址
有兩個優勢,其一是不需要記憶體週期,執行較快。其二,只需要較短的位址欄寬度(比
記憶體位址短很多)。

圖 3-7 暫存器定址

 五 暫存器間接定址
暫存器間接定址與間接定址類似,於指令格式中位址欄所指的暫存器,存放運算元
的記憶體有效位址,暫存器間接定址只需要一個記憶體存取動作。擷取過程式先取得有
效位址 EA=[R],再提取運算元 =[EA]。

圖 3-8 暫存器間接定址

AC20410_03.indd 99 7/9/2020 15:39:13


100 微處理機

 六  位 移定址
位移定址是結合直接定址與暫存器間接定址的功能,指令格式中需要兩個位址欄,
一個暫存器名稱 R,另一個為記憶體位址 A,先擷取有效位址 EA = A + [R],再提取運
算元 = [EA]。有時會將指令格式中的暫存器名稱隱藏。位移定址又可分為相對定址、基
底暫存器定址、索引定址三種方式。

圖 3-9 位移定址

 七  堆 疊定址
堆 疊(stack) 是 一 種 線 性 陣 列 的 記 憶 體, 常 用 來 與 序 列(queue) 做 比 較。 堆 疊
採 用 LIFO(last in first out, 後 進 先 出 ) 方 式 操 作, 不 論 何 時, 堆 疊 指 標 SP(Stack
Pointer)總是指向堆疊頂端的記憶體位址。推入(push)資料會放在最頂端,堆疊指標
遞減(往上移動)。相反地,彈出(pop)資料時,會從最頂端讀取,並將堆疊指標遞
增(往下移動)。

圖 3-10 堆疊

AC20410_03.indd 100 7/9/2020 15:39:14


Chapter 3 │微處理機軟體發展流程 101

堆疊定址模式是一種隱含定址的操作方式,指令中不須包含記憶體位址,因為堆疊
指標永遠指向最頂端。堆疊指標 SP 也是暫存器,儲存堆疊頂端記憶體位址。只要擷取
SP 內容,即可得知運算元有效位址 EA = [SP],再提取運算元 = [EA]。堆疊定址為暫存
器間接定址的一種,操作過程很類似。

圖 3-11 堆疊定址

3-2 隨堂練習
1. 舉出兩種沒有記憶體存取運算元的定址模式:      、      。

2. 由堆疊讀取一筆資料,SP 是遞增或遞減?      

3. 依據下圖暫存器與記憶體初始內容,回答下列問題。
(1) 執行 MOV Rd,15H 後,Rd =      
(2) 執行 MOV Rd,[15H] 後,Rd =      
(3) 執行 MOV Rd,[Rs] 後,Rd =      
(4) 執行 MOV Rd,[Rs][1] 後,Rd =      

AC20410_03.indd 101 7/9/2020 15:39:14


102 微處理機

3-3 指令集
指令集是指微處理機支援的指令集合,因著功能需求不同,支援的指令數量與執行
方式也不一樣,當然,微處理機內部硬體設計也會不同,如何在支援指令數量與執行效
能之間取得最佳平衡,考驗著微處理機設計者的智慧。
早期的 CPU 功能要求簡單,指令數目較少,負責解碼與執行的硬體電路較簡單。當 CPU
的功能需求愈來愈複雜時,許多 CPU 都支援超過 100 個以上的指令群,有些 CPU 甚至超過
200 個指令,數量相當龐大,也使得指令解碼與執行的硬體線路複雜度相當高。一個擁有大量
指令的 CPU 被歸類為複雜指令集電腦(Complex Instruction Set Computer,簡稱 CISC)。
1980 年 代 開 始 有 另 一 派 的 CPU 設 計 者, 提 倡 使 用 較 少 的 指 令 的 CPU, 因 為 這 樣
可以大大降低 CPU 內部的硬體線路,大部分指令都在 CPU 內部完成執行工作、而且不
需要常常存取記憶體,所以執行速度較快。這類電腦被稱為 精簡指令集電腦 (Reduced
Instruction Set Computer,簡稱 RISC)。
電腦的指令集設計除了考量機器語言的架構外,也應考慮高階程式語言的因素,高
階語言必須透過編譯器轉換為機械語言,使用複雜指令集,可以降低編譯器的複雜程度
與提高整體效能。CISC 提供較多指令樣式,讓高階語言的程式敘述,可以較容易轉換
到機器語言,就可以降低編譯器的複雜程度。CISC 的另一個特性是「指令格式長度可
變」,運算元的數目可以是 0 ~ n 個,指令的長度多樣,這也造成指令解碼電路的複雜
度。隨著指令與定址模式的增加,需要更多的硬體邏輯電路來實現並支援,因此可能造
成指令執行速度變慢。

CISC 主要特徵

01 02 03 04
指 令 數 量 眾 多, 不同長度的指令 提供可直接存取 定址模式多樣
通 常 有 100 ~ 格式。 記憶體的指令。 性, 通 常 有 5 ~
250 個 指 令。 但 20 種模式。
是某些特殊功能
指令並不常用。

反觀 RISC 主要由「暫存器與暫存器間的運算」的指令組成,只提供單純的儲存與
載入指令進行記憶體資料的存取,如果指令操作需要記憶體內的運算元,都需要透過載
入指令載入暫存器,再進行指令執行,同樣地,如果執行結果需要回存記憶體,也需
要透過儲存指令寫入記憶體。所有微運算都只在暫存器之間進行,大大提升指令效能,
RISC 通常需要大量的暫存器支援這樣的工作模式。

AC20410_03.indd 102 7/9/2020 15:39:14


Chapter 3 │微處理機軟體發展流程 103

這樣的操作方式簡化了指令集,只需要少數的定址模式,指令的長度固定,指令解
碼與控制邏輯硬體電路相對地比較簡單,可使用固線式控制(相對「微程式控制」),
提高執行效率。圖 3-12 為 CISC 與 RISC 的執行過程比較。

圖 3-12 CISC 與 RISC 執行過程比較

因 為 指 令 單 純,RISC 可 以 在 每 個 時 脈 週 期 執 行 一 個 指 令, 方 便 以 管 線 式
(pipelining)程序,將 2 ~ 3 個指令的提取、解碼與執行階段重疊完成。但是記憶體的
儲存或載入指令則可能需要 2 個以上的時脈週期。因為精簡指令集與定址模式,使得高
階語言的編譯工作變得複雜許多,需要有更聰明的編譯程式才能提高程式效率。

RISC 主要特徵

01 相對於 CISC 而言,指令較少,通常少於 100 個。

指令長度固定,解碼容易,常使用固線式控制電路。RISC 的指令格式大都只有一種,或少數

02 幾種,例如固定的指令長度、對齊的指令字組邊界、固定的欄位位置等。這樣可以簡化控制單
元的複雜度,提高執行的效能。

執行每一個指令只耗費一個時脈週期的時間。RISC 的指令較為單純,由暫存器中提取兩個運

03 算元,進行 ALU 運算,並將結果儲存到暫存器中,整個工作所花費的時間,只需要一個時脈


週期就可完成工作。

04
定址模式較少,一般不超過 5 個。大部分的 RISC 都只使用最簡單的定址模式。如果需要較複
雜的定址方式,則是以簡單的定址模式為基底,使用軟體加以合成。

05 記憶體的存取只提供儲存與載入指令。

所有微運算只在暫存器之間進行。RISC 希望大部分的工作都在暫存器之間進行,盡可能不用到

06 記憶體,可以提高效能。非要使用記憶體,則使用載入和儲存動作去存取記憶體。將工作限制
在暫存器間,不只指令效能提高,也可簡化指令格式、降低指令集的數量與控制電路的複雜度。

AC20410_03.indd 103 7/9/2020 15:39:15


104 微處理機

表 3-2 為較具代表性的 CISC 與 RISC 不同類型的 CPU,各種特性的比較表。比較


發現 CISC 比 RISC 有更多的指令、更多的定址模式。RISC 則有大量的通用暫存器。

表 3-2 CISC 與 RISC 具代表性的 CPU 比較表


特徵 指令 通用 控制 快取
CPU 發表 指令 定址
大小 暫存器 記憶體 記憶體
代號 年代 數目 模式
類別 (Bytes) 數量 (KB) (KB)
Intel
1989 235 1 ~ 11 11 8 246 8
80486
CISC
VAX
複雜 1978 303 2 ~ 57 22 16 480 64
11/780
指令集
IBM
1973 208 2~6 4 16 420 64
370/168

RISC SPARC 1987 69 4 1 40 ~ 520 × 32


精簡 MIPS
指令集 1991 94 4 1 32 × 128
R4000

針對兩種指令集特性的不同,整理如表 3-3,指令長度、指令數目、定址模式等特
性分別比較兩者的不同。

表 3-3 CISC 與 RISC 特性比較表


指令集類型 CISC RISC
比較項目 複雜指令集 精簡指令集
指令長度 可變長度(格式) 固定長度(格式)
指令數與定址模式 多 少
每個指令執行週期 不一定 一個時脈週期
參考(存取)記憶體 任何指令都可以 只有 LOAD 與 STORE 可以存取記憶體
暫存器集合 一組暫存器 多組大量暫存器
指令管線化 無 高度管線化設計
執行指令 由微程式執行指令 指令由硬體直接執行
缺點 複雜的微程式與硬體 複雜的編譯器與軟體

CISC 與 RISC 各有千秋、不分軒輊,所以出現了加入 CISC 特徵的 RISC 設計,例


如 Pentium II 後續版本;也有加入 RISC 特徵的 CISC 設計,例如 PowerPC。

AC20410_03.indd 104 7/9/2020 15:39:15


Chapter 3 │微處理機軟體發展流程 105

為了概觀一顆微處理機的指令集,將以 Intel 公司生產的微處理機為例展示。由 80X86


到 Pentium,指令集有些許的不同,可能增加,可能減少,但常用的的指令名稱幾乎從
8086 到 Pentium Ⅳ都相同,只是位址或資料的位元數不同而已。Intel 的指令集有 MMX、
SSE、SSE2~4、Intel AES-NI、AVX 等,AMD 則是有 3D Now!、Enhanced 3D Now! 等。

Intel CPU 指令概分為九大類,如表 3-4 所示,包括資料搬移、算術運算、邏輯運算、


移位旋轉等指令,相當複雜龐大,組合語言程式設計師需要通盤瞭解這些指令的功能,
才有能力組成一支指定功能的程式。以下僅列出 Intel 系列 CPU 指令分類,並簡要敘述,
其餘請自行參考相關資料。

表 3-4 Intel CPU 指令集分類表


類別 簡述 指令
資料搬移
包括暫存器與記憶體之間、暫存器之間的資料搬移。 mov、xchg、xlat、lea
指令
算術運算 inc、dec、neg、add、sub、
包括遞增、遞減、變號、四則運算的指令。
指令 mul、div
邏輯運算
運算元各位元的邏輯運算。 and、or、xor、not
指令
移位指令是將位元向左或向右移動,不以迴路方式移
動(不同於旋轉),而旋轉指令則是將第一個運算元
移位旋轉 1. sal、shl、sar、shr
的 內 容 旋 轉, 旋 轉 的 位 元 數 由 第 二 個 運 算 元 指 定。
指令 2. rol、rcl、ror、rcr
旋轉與移位指令通常用於存取位元組或字組中部分位
元。
1. jmp、cmp、test、je、jl、
流程控制 jg
依據條件判斷,符合則跳至指定標記處。
指令 2. call、ret
3. int、int0、iret
重複執行某段程式碼。例如 loop 是以 cx 的內容如果
重複指令 不為 0,則繼續執行迴圈內的指令,每執行一次,cx loop、loopz、loopnz
遞減 1,當 cx = 0 時,則結束迴圈的動作。
字串處理 處理字串資料,通常有 byte、word、dword 三種單位 movs、cmps、stos、lods、
指令 型式。 scas
輸出入
對 IO 埠讀取與寫入資料的指令。 in、out、ins、outs
指令
CPU
檢查與控制 CPU 的執行狀態。 nop、bound、esc、hlt、lock
控制指令

AC20410_03.indd 105 7/9/2020 15:39:15


106 微處理機

3-3 隨堂練習
1. 舉出二個複雜指令集的主要特徵:
        、        。

2. 大 學 生 波 特 選 修 一 門 課 程, 教 授 說 要 課 程 中 要 使 用 ARM 公 司 的 Cortext-A57 微 處
理 機, 波 特 查 閱 資 料 發 現 使 用 ARM v8 指 令 集, 指 令 個 數 約 40 個。 請 幫 忙 判 斷
Cortext-A57 指令集類型為 CISC 或 RISC ?      

3. 舉出三種 INTEL 系列 CPU 的指令集分類?


        、        、        。

3-4 高階語言與低階語言之轉換
微處理機只能執行二進制的機械碼,但是人類習慣使用自己的符號或熟悉的語言撰
寫程式,兩者需要架起「溝通橋樑」,我們將從組合語言談起,如何翻譯成機械碼供微
處理機執行,最後也說明微處理機系統整個軟體架構與軟體執行的步驟。

3-4-1 程式語言概述
所謂執行程式,是指微處理機執行一連串的指令,完成程式指定的功能。程式是由一連
串的指令組成,而指令其實是二進位碼,即「機械語言」。但程式設計者要撰寫程式通常以
自己熟習的語言或符號撰寫開發效率比較高,所以程式撰寫到執行必經「翻譯」的過程。

圖 3-13 程式撰寫與執行過程

我們將使用 C 語言、組合語言與機械語言三者說明「兩數相加」的程式如何撰寫。
以 C 撰寫兩數相加的程式是非常簡單明瞭的,如表 3-5 例是以 C 語言完成兩數相加的功能。

表 3-5 C 語言撰寫兩數相加
C 語言 說明
int A = 9, B = –29, C = 0; // 宣告 A、B、C 三個變數空間,並給定初始值
C = A + B; // C = A + B,將 A+B 的和 –20,指定給 C 變數

AC20410_03.indd 106 7/9/2020 15:39:16


Chapter 3 │微處理機軟體發展流程 107

接下來以組合語言撰寫兩數相加的程式,如表 3-6 所示,程式中使用的指令,在註


解欄中分別說明指令的功能。組合語言終究還是需要翻譯為機械碼(機械語言),微處
理機才能執行,用來翻譯的工具稱為「 組譯器 (assembler)」。

與 C 語言相對來說,組合語言顯得繁複許多,需要在程式中分別宣告 A、B、C 的
記憶體空間,並指定初始值。然後再載入到微處理機內部(指令 LDA A),與 B 相加(指
令 ADD B),最後送到記憶體位址 C(指令 STA C)。除了這些與目標功能相關的程
式碼外,會發現還有 ORG、HLT、END 等指令,稱為虛擬指令(或虛擬碼),用來通
知(規範)組譯器動作的資訊,與要執行的程式功能無關。
表 3-6 組合語言撰寫兩數相加
組合語言
說明
標記 指令
ORG 0H 程式起始位置從位址 0 開始
LDA A ACC ← M[A],載入位置 A 運算元至 ACC
ADD B ACC ← ACC + M[B],與位置 B 運算元相加
STA C M[C] ← ACC,儲存和至(在 ACC)位置 C
HLT 暫停 CPU
A: DEC 9 10 進制值 9
B: DEC –29 10 進制值 –29
C: DEC 0 儲存「和」的記憶體位置
END 程式結束

表 3-7 為翻譯後的機械語言示例,並列出與組合語言的對照關係。特別注意,除了
虛擬指令以外,組合語言與機械語言為 1 對 1 的關係,1 道組合語言翻譯為 1 道機械語言。
而這兩者語言,與微處理機的相依性非常高,不同的微處理機的機械碼也會不同,對應
的組合語言也不一樣。下面這個範例的二進制機械碼只是隨意指定作為說明之用。

AC20410_03.indd 107 7/9/2020 15:39:16


108 微處理機

表 3-7 機械語言撰寫兩數相加
機械語言 組合語言
說明
位置 指令(2 進制) 16 進制 位置 指令
從 004 載 入 第 一 個 運 算 元 至 ACC
000 0010 0000 0000 0100 2004 000 LDA 004
(累積器)
ACC 加上 005 第二個運算元,結果
001 0001 0000 0000 0101 1005 001 ADD 005
放 ACC
010 0011 0000 0000 0110 3006 002 STA 006 將 ACC 內容(和)放至 006
011 0111 0000 0000 0001 7001 003 HLT 暫停 CPU
100 0000 0000 0000 1001 0009 004 0009 第一個運算元 9
101 1111 1111 1110 0011 FFE3 005 FFE3 第二個運算元 –29
110 0000 0000 0000 0000 0000 006 0 儲存「和」的記憶體位置

像 C 語言這類的程式語言非常接近人類習慣的語言,也稱 高階程式語言 (high-level


programming language)。反之,組合語言與機械語言則較不容易瞭解,與人類語言差距
較大,稱為 低階程式語言 (low-level programming language)。組合語言翻譯為機械語言
幾乎是一對一對應單純關係,有別於上述 C 語言與組合語言的對應範例顯得相當繁複。

高階語言比較接近人類語言,學習與閱讀起來比較容易,且移植性較佳,但程式
執行較慢、容量較大。反之,低階語言學習較難,移植性較差,但程式執行快、容量
小。低階語言包括機械語言、組合語言兩種。高階語言則有很多,例如 C、PASCAL、
Visual BASIC 等。

表 3-8 低階語言與高階語言比較
程式撰寫、 移植性、 程式 程式佔
類別 實例
閱讀、學習、除錯 跨平台 執行 記憶體容量
低階語言 較困難 較差 較快 較小 機械語言、組合語言
C、PASCAL、
高階語言 較容易 較佳 較慢 較大
Visual BASIC

3-4-2 組合語言
程式語言希望被正確執行,必須依照一定的規則(格式)撰寫,當廠商發表一顆
CPU 的同時,也必須公布這顆 CPU 的組合語言使用手冊,說明提供的指令與組合語言
的格式。通常組合語言的格式由標記、指令與註解三個欄位組成,指定相關資訊。

AC20410_03.indd 108 7/9/2020 15:39:16


Chapter 3 │微處理機軟體發展流程 109

表 3-9 組合語言格式
欄位 標記 指令 註解
可能是空的,可指 指定機器指令或 可能是空的,用來
說明
定一個符號位址 虛擬指令 說明該列程式功能
範例 A: DB 10 ;10 進位值 10

一 標記
以符號指定目前程式位址(符號位址),可能是空的,用來表示「符號位址」。通
常一個符號位址由文字或數字組成,但第 1 個字必須是英文字母。標記欄一定要在每列
指令的開頭處,且不可有空格!標記欄的符號位址,可用一個「:」或「,」表示標記欄
的結束。

標記欄是用來代表該列指令所在的實際「程式記憶體位址」,因此程式設計者只要
在程式中以「標記符號」代表該指令位址,而不需自己算出跳躍目地的實際記憶體位址,
這對程式設計者而言是非常方便的。待程式完成,再將整個程式交給組譯器作翻譯成機
械碼時,組譯器便會自動幫我們算出該標記的所在實際記憶體位址,如表 3-6、3-7 中的
A、B、C。

二 指令
指 令 撰 寫 的 位 置, 可 能 是 機 器 指 令 或 虛 擬 指 令。 機 器 指 令 包 括 記 憶 存 取 指 令
(MRI)、暫存器存取指令,或輸入 - 輸出指令等。

虛擬指令並非機器指令,而是組譯器的指令,不會翻譯成機械碼,僅是提供組譯器
資訊的指令,如表 3-10 所示為常用的的虛擬指令。「ORG N」用來指定下一列指令或
運算元,放置在記憶體位址 N 處。END 則是告知組譯器程式已經結束。另外 DEC 虛擬
指令則是配合符號位址,標示存放數值的基底(進制)。

表 3-10 常見的虛擬指令
符號 提供組譯器資訊
ORG N 下一列指令或運算元放置於的記憶體位址 N
END 程式結束
DEC N 10 進制有號數 N

AC20410_03.indd 109 7/9/2020 15:39:16


110 微處理機

三 註解
註解欄可有可無,說明這列指令的功能或意義,主要是提供程式設計師作為備忘,
更容易維護、閱讀與瞭解程式的運作。在翻譯成機械碼時,註解會被完全忽略。註解欄
前都會以識別符號標示,端視組譯器的定義,有些在註解前要加註分號「;」,有些加註
反斜線「/」。組譯器遇到註解的識別符號,不會理會,馬上跳到下一列。

3-4-3 組譯器
組譯器的功能是將組合語言程式翻譯成機械語言,成為機械碼,供微處理機執行之
用。組譯器輸入的組合語言稱為 原始程式 (source program),產生的二進制機械碼稱
為 目的程式 (object code),工作流程如圖 3-14 所示。

圖 3-14 組譯器的工作

通常組譯器產生的目的碼雖然是二進制機械碼,但並不可直接執行,需要透過 連結
程式 (Linker)包裹成「可執行檔案」才可執行,如圖 3-15 所示。連結程式時可以包含
其他現成開發的目的程式(包裝成函式庫),以節省開發時程,提高效率。

圖 3-15 組合語言開發流程

因為組合語言只是助憶符號,與機械語言是 1 對 1 對應關係,所以組譯器的工作並
不複雜,最主要的工作是將助憶符號型式的指令轉換成相對應的機器碼。再來,將常數
或符號的運算元,轉換成相對應的機器位址,最後輸出二進制的機械碼(目的碼)。當
然,有時組譯器會提供其他報表檔(listing),供程式設計師參考,例如組合語言與機
械語言的對應表。

AC20410_03.indd 110 7/9/2020 15:39:16


Chapter 3 │微處理機軟體發展流程 111

常見的組譯程式之類型有 單回合組譯程式 (one-pass assembler)、 雙回合組譯程式


(two-pass assembler)與 多回合組譯程式 (multi-pass assembler)三種。組譯器規範了
組合語言撰寫的細節(語法),底下以雙回合組譯器來說明組譯器的工作。

所謂「雙回合組譯」指在進行組譯工作時,會對原始程式做兩次掃瞄,所以允許程
式中存在「向前參考」的未定義符號。也就是在第一次處理(Pass 1)時產生一個中間
檔案,例如符號對應表,而於第二次(Pass 2)處理時參考該中間檔案,並處理第一次
處理未完成的工作。簡要描述如表 3-11 所示雙回合的工作項目。

表 3-11 雙回合組譯器工作項目
第一回合 第二回合
1. 對程式的每一行指令指定位址。 1. 將指令轉譯 ( 查表 ) 為機械碼,並記錄位址
2. 記載程式中所有標記符號的位址,以供第二 值。
回合使用。 2. 將 BYTE、WORD 所定義的值轉為 16 進制、
3. 依據虛擬指令,處理組譯器相關設定。 存入目的程式。
3. 處理在第一回合中尚未處理的組譯程式的
前導指令。
4. 紀錄組譯完成的目的程式與程式列表。

一  第一回合:建立符號表
圖 3-16 簡單示意第一回合的工作,以一般文字編輯器撰寫組合語言原始程式輸入
系統,通常是副檔名 .asm 的檔案。掃描工作過程會參考機器指令表與虛擬指令表,並
產生符號表供第二回合參考。

第一回合首要的工作是,計算程式中每道指令的位址,並建立符號與位址的對應表
(簡稱符號表)。當然過程中,會依照虛擬指令的指示(即組譯資訊)工作,例如程式
的起始位址(指令 ORG)。

1. 輸入: 原始程式。
2. 參考表格:
(1) 虛擬指令表(Pseudo-Operation Table, POT):用以指示虛擬指令所對應的「處
理程式」之位址。
(2) 機器指令表(Machine-Operation Table, MOT):用以將助憶式(組合語言)指
令對應成二進位機械碼。

AC20410_03.indd 111 7/9/2020 15:39:17


112 微處理機

3. 輸出:
(1) 原始程式之副本(Copy)。
(2) 符號表(Symbol Table, ST)。
(3) 文字表(Literal Table, LT)。

圖 3-16 組譯器第一回合工作

二  第二回合:組譯指令產生目的程式
第二次回合處理主要是輸出目的程式,輸入第一回合產生的原始程式副本,並參考
機械指令表 MOT、虛擬指令表 POT 與符號表 ST 等表格,將指令組譯為機械碼,產生
目的程式。通常也會提供組合語言與機械語言的對應等報表檔,便於除錯。

1. 輸入: 原始程式之副本。
2. 參考表格: 機器指令表、虛擬指令表、符號表。
3. 輸出: 目的程式、報表檔。

圖 3-17 組譯器第二回合工作

AC20410_03.indd 112 7/9/2020 15:39:17


Chapter 3 │微處理機軟體發展流程 113

三  組 譯器工作實例
底下以實際例子說明兩回合組譯的過程,表 3-12 為兩數相加的組合語言。執行最
後結果 C = B + A + 1。
表 3-12 兩回合組譯實例之原始程式
ORG 100H ; 程式的起始位置 100H
LDA A ; 載入符號位址 A 的值至 ACC(累加器)
INC ; 遞增 ACC
ADD B ; ACC ← ACC+B
STA C ; 回存 ACC 值至符號位址 C
HLT ; 暫停
A: DB 20 ; 符號位址 A 存放 10 進制 20
B: DB –10 ; 符號位址 A 存放 10 進制 –10
C: DB 0 ; 符號位址 C 存放 10 進制 0
END 程式結束

1 第一回合 指定位址與建立位址符號表
  第一次掃描時不做任何翻譯,只對每列的程式給定記憶體位址。虛擬指令
ORG 100H 用來告訴組譯器下一列程式放在位址 100H 處,END 則是告訴組譯
器程式到此結束,虛擬指令並不會翻譯成機械碼。
  依據虛擬碼「ORG 100H」得知,第一列程式放在位址 100H 處。查詢機械
指令表得知每道指令的長度,假設本例中指令都是 1byte 長度,所以位址都是
遞增的。另外,第一回合的重要任務是建立標記符號位址表,在第一回合掃描
時看到 A、B、C 並不認得,但是可以透過建立位址時,順便建立符號表提供給
第二回合參考使用。
表 3-13 兩回合組譯實例之第一回合
符號位址表
位址 符號 指令
ORG 100H 符號 位址(16 進制)
100 LDA A A 105
101 INC B 106
102 ADD B C 107
103 STA C
104 HLT
105 A DB 20
106 B DB-10
107 C DB 0
END

AC20410_03.indd 113 7/9/2020 15:39:17


114 微處理機

2 第二次掃描:建立目的程式
   符 號 位 址 A 為 105( 放 在 記 憶 體 105H 位 置 ),10 進 制 20 的 16 進 制 為
0014。同理,符號位址 B 為 106H,10 進制 -10 轉換為 2'S 的 16 進制為 FFF6。
   有 了 符 號 表, 得 知 每 個 符 號 代 表 的 位 址, 就 可 以 決 定 標 記 符 號 的 記 憶 體
位 址 值, 配 合 虛 擬 指 令 表、 機 械 指 令 表, 以 查 表 法(table-lookup) 的 方 式,
將每列的組合語言翻譯成機械語言,如表 3-14 所示。例如 LDA A,機械碼為
2105,其中運算碼 LDA 為 2,A 在位址 105 處。
表 3-14 兩回合組譯實例之第二回合
符號 指令 位址 機械碼
ORG 100H
LDA A 100 2105
INC 101 7020
ADD B 102 1106
STA C 103 3107
HLT 104 7001
A DB 20 105 0014
B DB -10 106 FFF6
C DB 0 107 0000
END

機械語言的程式開發不容易,所以有符號化的組合語言出現,但是組合語言究竟也
只是機械語言的符號表示而已,雖然較容易閱讀與識別,仍不容易設計大程式,所以有
了高階語言出現。高階語言更貼近人類的思考習慣,程式設計師容易將程式需求功能,
依照邏輯想法轉化為程式,高階語言必須經過「編譯器(compiler)」才能翻譯為機械
語言供電腦執行。編譯器與組譯器雖然都是將原始程式解譯成機械語言的工具程式,但
是編譯器複雜很多,不再是簡單的查表功能,而是一連串複雜的演算法。

3-4 隨堂練習
1. 程式語言依據接近人類語言的程度可分為      與      。
2. 組合語言的格式可分為      、      與      三個欄位。
3. 組合語言經過組譯程式翻譯為目的程式並不能執行,必需經過      處理才可執行。
4 . 程式設計課考組合語言,阿哲因為打字較慢,他可以省略哪一個欄位提高撰寫速度?
      

AC20410_03.indd 114 7/9/2020 15:39:17


Chapter 3 │微處理機軟體發展流程 115

3-5 微處理機軟體處理程序
微處理機系統的組成架構分為硬體部分與軟體部分,其中硬體部分包括時脈產生
器、CPU、I/O 介面與 I/O 裝置、記憶體、系統匯流排等。軟體部分則分為作業系統、
系統軟體與應用軟體,軟體架構如圖 3-18 所示。

1 作業系統(operating system): 提供使用者與計算機硬體(機器)的介面,


讓使用者可以更有效率使用系統資源(硬體設備與系統程式),通常包括檔案
管理、網路通訊程式、I/O 驅動程式、GUI(圖形化使用者介面)程式、命令解
譯程式(command interpreter)等。

2 系統軟體(system software): 提供開發、執行應用軟體所需之工具,包括


編輯程式(editor)、組譯程式(assembler)、編譯程式(compiler)、連結程
式(linker)、載入程式(loader)、系統程式庫(system library)等。

3 應用軟體(application software):藉由系統軟體提供的程式撰寫、編 ( 組 )
譯功能等,完成使用者需要的特定功能程式,例如文書處理、會計系統、成績
處理等。

圖 3-18 微處理機軟體架構圖

AC20410_03.indd 115 7/9/2020 15:39:18


116 微處理機

圖 3-19 所示為程式開發與執行的過程。電腦開機時,必須經過 BIOS 的硬體基本檢


查與配置、執行作業系統等開機程序,才可讓使用者操作。程式設計師編輯、修改的程
式 ( 文字格式 ) 稱為原始程式,一個程式必須轉換(翻譯)為電腦可以執行的「可執行檔」
格式,使用者才可以在開機完成時執行該程式。

圖 3-19 程式開發與執行過程

一 程式開發過程
作業系統啟動後,使用者可以利用輸入裝置(例如鍵盤)與編輯程式撰寫原始程式。
有時程式語言會提供 IDE(整合發展環境),便於編輯、除錯與編譯等程式開發工作。

高階語言需要透過編譯程式(compiler)與連結程式(linker),轉換成可執行程式。
編譯程式處理過的檔案稱為目的程式,實際上也是二進位格式的機械碼,但無法直接執
行,必須經過連結程式組成完整的可執行程式的結構。可執行檔可直接執行或儲存在輔
助記憶體中,例如硬碟。

AC20410_03.indd 116 7/9/2020 15:39:18


Chapter 3 │微處理機軟體發展流程 117

二 程式執行過程
當使用者執行「可執行檔」時,會由作業系統的載入程式(Loader)載入主記憶體,
並會配置記憶體給執行的程式(可執行檔),包含程式碼區、資料區、堆疊區等,載入
記憶體後,CPU 開始依序執行指令,進行提取、解碼與執行等步驟,逐一執行指令,直
到程式結束為止。

任 何 程 式 語 言 都 需 要 翻 譯 為 機 械 語 言 才 能 被 計 算 機 執 行, 翻 譯 程 式 可 分 為 組 譯
(Assembler)、 編譯 (Compiler)與 直譯 (Interpreter)三種,比較如表 3-15。

表 3-15 組譯、編譯與直譯
翻譯方式 語言翻譯程式 使用的程式語言 特色
1. 不同的 CPU,指令不同,組譯
組譯器
組譯 低階 組合語言 器也不同
(Assembler)
2. 會產生目的檔(.obj)
C、C++、 1. 大多為高階程式語言採用
編譯器
編譯 高階 PASCAL、 2. 偵錯較不易、但執行速度快
(Compiler)
DELPHI 3. 會產生目的檔(.obj)
1. 易學、適合初學者
直譯器 BASIC、
直譯 高階 2. 偵錯容易、但執行速度慢
(Interpreter) Python、Perl
3. 不會產生目的檔(.obj)

組合語言使用組譯器翻譯,高階語言翻譯程式則分為編譯程式與直譯程式兩類。編
譯程式一次將原始程式翻譯為目的程式,再連結函式庫成可執行檔,之後才能執行程式。
但直譯程式一次只翻譯一行程式,馬上執行,如果無誤,再翻譯下一行程式再執行,以
此類推。即使程式的後半部有錯誤,直譯程式在沒有執行之前,並不能發現這個錯誤。

3-5 隨堂練習
1. 微處理機系統的軟體架構可分為      、      與      三類。

2. 執行可執行檔案時,由      配置檔案執行時需要的記憶體。

3. 總統接見外國官員,正式場合通常需要現場即時翻譯人員,請問很像哪種程式語言
翻譯程式?       

AC20410_03.indd 117 7/9/2020 15:39:18


118 微處理機

Chapter 3 學習目標回顧

學習目標 1:能描述執行指令過程 CPU 內部的動作


1. 通 用 暫 存 器:MAR 是 要 讀 取 或 寫 入 記 憶 體 資 料 時, 先 將 操 作 位 址 放 在
MAR。MDR 是要讀取或寫入記憶體資料時,資料的暫存位置。ACC 則為算術
邏輯運算時,運算資料與運算結果的暫存位置。
2. 指 令 相 關 暫 存 器:IR 為 暫 時 儲 存 將 要 解 碼、 執 行 的 指 令。PC 暫 存 下 一 個
CPU 要執行指令的記憶體位址。
學習目標 2:能列舉與區分常見的定址模式
2. 基本定址模式如下表:

定址模式 演算法 特色與說明


立即定址 運算元在指令中。不用記憶體存取,速度較
運算元 = A
Immediate addressing 快, 但是運算元長度受限。
直接定址 運算元在所指的記憶體位址中。因指令長度固
EA = A
Direct addressing 定,位址空間(長度)受限。
間接定址 運算元有效位址在所指記憶體位址中。可使用
EA = [A]
Indirect addressing 位址空間大,但多次記憶體存取速度較慢。
暫存器定址
EA = R 無記憶體存取,運算元在暫存器中,速度快。
Register addressing
暫存器間接定址
EA = [R] 位址空間大,但額外記憶體存取速度較慢。
Register indirect addressing
位移定址
EA = A + [R] 存取位址有彈性,但較複雜。
Displacement addressing
堆疊定址
EA =[SP] 使用堆疊結構存取運算元。
Stack addressing

學習目標 3:能描述指令集的意義與類型
3. 一個擁有大量指令的 CPU 被歸類為 CISC,使用較少的指令的 CPU 被稱為 RISC。
4. CISC 通 常 有 100 ∼ 250 個 指 令、 有 不 同 的 指 令 長 度 與 格 式、 提 供 可 直 接 存
取記憶體的指令。
5. RISC 指令通常少於 100 個,指令長度固定,解碼容易,定址模式較少。
學習目標 4:能說明組合語言格式與組譯器的工作
6. 低階語言包括機械語言與組合語言。組合語言需要透過組譯器翻譯成機械碼,
微處理機才能執行。

AC20410_03.indd 118 7/9/2020 15:39:18


Chapter 3 │微處理機軟體發展流程 119

Chapter 3 學習目標回顧

7. 組合語言的格式如下表所示:
欄位 標記 指令 註解
可能是空的,可指定一個 可能是空的,用來說明該
說明 指定機器指令或虛擬指令
符號位址 列程式功能
範例 A: DB 10 ;10 進位值 10
8. 虛 擬 指 令 並 非 機 器 指 令, 而 是 組 譯 器 的 指 令, 不 會 翻 譯 成 機 械 碼, 僅 是 提 供
組譯器資訊的指令。
9. 組譯器產生的目的碼,透過連結程式(Lilner)包裹成「可執行檔案」才可執行。
10. 常見的組譯程式之類型有單回合、雙回合與多回合組譯程式三種。
學習目標 5:能描述程式的開發與執行的過程
11. 程式開發與執行過程如下圖:

12. 組合語言使用組譯器翻譯,高階語言翻譯程式則分為編譯程式與直譯程式兩類。

AC20410_03.indd 119 7/9/2020 15:39:19


120 微處理機

Chapter 3 課後習題

3-1 1. 指令計數器(Program Counter,PC)是一個暫存器,下列敘述,何者正確?


(A) 計 算 已 執 行 過 的 程 式 指 令 的 數 目 (B) 記 載 下 一 個 執 行 指 令 的 位 址 
(C) 記載程式中可被執行的數目 (D) 計數同一種運算的指令數目。

2. 下列暫存器何者儲存 ALU 運算後的狀態,例如進位、溢位、零值、負值等?


(A) 旗標(狀態)暫存器(B)指令暫存器 (C) 程式計數器 (D) 堆疊。

3. 微電腦系統中,當呼叫副程式、產生中斷等狀況下,會把目前的程式位址
及旗號存起來,等回歸時可再取回,此時程式計數器的值和旗號是存於
何處? (A) 控制單元 (B) 堆疊 (C) 通用暫存器 (D) 虛擬記憶體。

3-2 4. 使用何種定址法,獲得運算元的速度最快?
(A) 直接索引定址法 (B) 直接定址法 (C) 索引定址法 (D) 立即定址法。

5. 某一種使用單位址指令的電腦,其指令結構只有二個欄位:運算碼和位址碼,
每一指令佔用 24 bits,若此電腦之指令組共有 120 種運算,而指令是使用
直接定址模式,則可定址的記憶體空間大小(單位:byte)最接近於
(A) 64K (B) 128K (C) 1M (D) 16M。

6. CPU 具有各種不同拿取運算元的方法,稱為
(A) 定址模式(addressing mode) (B) 指令類型(instrument type)
(C) 提取運算元 (D) 指令執行。

7. 下列哪一種組合語言指令敘述為直接定址模式?
(A) MOV AX,BX (B) MOV AL,4BH (C) MOV CL,[3FFFH] (D) DAA。

3-3 8. 有關 Intel 8088 指令中,當暫存器 AX 與 BX 初始值不等,則執行 MOV


AX, BX 後,下列 何者正確?
(A) 暫存器 AX,BX 值均改變
(B) 暫存器 AX,BX 值均不變
(C) 暫存器 AX 值不變,暫存器 BX 值改變
(D) 暫存器 AX 值改變,暫存器 BX 值不變。

AC20410_03.indd 120 7/9/2020 15:39:19


Chapter 3 │微處理機軟體發展流程 121

Chapter 3 課後習題

9. 執行下列 8088 組合語言之片段程式後,在四個暫存器 A、B、C 及 D 中,


哪二個暫存器的內容會對調?
(A) A 與 B (B) C 與 D (C) D 與 A (D) B 與 C。
PUSH A
PUSH C
PUSH D
PUSH B
POP C
POP D
POP B
POP A

10. 下列何者為使用複雜指令集(CISC)之 CPU ?


(A) Intel i960CA (B) Motorola MC - 88xxx
(C) AMD 29000 (D) Intel Pentium。

11. 在 AX 暫存器中 MSB 為位元 15,而 LSB 為位元 0,請問要將 AX 的位


元 10、位元 3 及 位元 2 的值設為 1 而不改變其它位元的值時,應該使
用下列何種指令?
(A) AND AX, 040CH (B) OR AX, 040CH
(C) XOR AX, 040CH (D) MOV AX, 040CH。

12. 執行下列 80×86 指令後,AX 的值應是多少?


(A) 32 H (B) 26 H (C) 78 H (D) 85 H。
MOV AX , 13H
MOV CX , AX
ADD AX, CX

13. 若 暫 存 器 A,B,C 初 始 值 分 別 為 30,20,10, 今 依 序 執 行 PUSH A,


PUSH B,PUSH C,POP A,POP B,POP C 後,暫存器 A,B,C 的內
容是什麼?
(A) 10,20,30 (B) 20,10,30 (C) 20,30,10 (D) 30,10,20。

AC20410_03.indd 121 7/9/2020 15:39:19


122 微處理機

Chapter 3 課後習題

14. 80×86 執 行 8 位 元 的 相 加 運 算, 下 列 哪 一 種 運 算 結 果 將 使 溢 位 旗 標 (
overflow flag, OF ) 被設定成 1 ?
(A) 7FH + FFH (B) 7FH + B9H (C) 72H + 55H (D) BFH + CFH。

15. 兩個 8-bit 暫存器:AL 與 BL,其內容分別為 AL = 3BH、BL = 0FH。若


將這兩個暫存器進行 NAND 之邏輯處理後,則其結果為何?
(A) C0H (B) 3BH (C) F4H (D) 0BH。

16. 如 果 將 一 個 2 進 位 的 數 同 時 放 入 暫 存 器 A 及 暫 存 器 B, 現 將 A 左 移
一 位 後, 再 加 上 B 的 內 容, 其 結 果 等 於 原 數 乘 多 少?( 不 考 慮 溢 位
overflow) (A) 2 (B) 3 (C) 4 (D) 5。

17. 關於精簡指令集微處理機(RISC CPU)以及複雜指令集微處理機(CISC


CPU)之敘述, 下列何者不正確?
(A) 一般而言,RISC CPU 之定址模式遠比 CISC CPU 之定址模式少
(B) RISC CPU 之指令編碼長度不固定,導致解碼器之設計複雜
(C) 對於 CISC CPU 而言,不同的指令,需要不同的時脈週期來完成
(D) 相較於 RISC CPU,CISC CPU 在實作管線化資料路徑時有較高的設
計困難度。

3-4 18. 下列程式語言,何者屬低階語言?


(A) 組合語言 (B) BASIC (C) Visual Basic (D) C++。

19. 下列有關組合語言假指令(pseudo instruction)的敘述,何者有誤?


(A) 可以增加程式的清楚度
(B) 可以設定組譯器組譯時的選項
(C) 假指令本身有相對應的機器碼(machine code)
(D) EQU 為假指令。

20. 把組合語言程式翻譯成二進制機械語言的程式稱為
(A) 編譯器(compiler) (B) 組譯器(assembler)
(C) 直譯器(interpreter) (D) 函式庫(library)。

AC20410_03.indd 122 7/9/2020 15:39:20


Chapter 3 │微處理機軟體發展流程 123

Chapter 3 課後習題

21. 「編譯器」主要的功能為何?
(A) 將組合語言程式碼轉譯成機器碼 (B) 將程式重新定址
(C) 將高階語言程式碼轉譯成機器碼 (D) 連結互相呼叫的程式。

22. 組合語言指令格式中,下列哪一個欄位不可省略?
(A) 標記欄 (B) 指令碼欄 (C) 註解元欄 (D) 全都不可省略。

3-5 23. (D) 作業系統的功能不包含


(A) 分配及管理系統資源 (B) 建立使用者介面
(C) 執行應用軟體,並提供執行時期所需之服務 (D) 文書處理。

24. 下列有關「載入程式(Loader)」的敘述中,何者是正確的?
(A) 可檢查原始程式是否有語法(Syntax)上的錯誤
(B) 將原始程式編譯成目的程式
(C) 將目的程式載入主記憶體中
(D) 執行目的程式。

25. 下列何者是電腦系統架構的最底層?
(A) 硬體 (B) 系統程式 (C) 應用程式 (D) 作業系統。

問答題
1. 請依據圖 3-1 微處理機架構簡圖,描述指令週期的處理步驟。

2. 請簡述常見的定址模式與特色。

3. 試著比較 CISC 與 RISC 兩種不同指令集電腦的不同。

4. 請說明一個程式的執行過程。

5. 請比較組譯、編譯與直譯的不同。

AC20410_03.indd 123 7/9/2020 15:39:20


124 微處理機

AC20410_03.indd 124 7/9/2020 15:39:20


教學節數

ap
ter 9
4 資料串 / 並列傳輸

Ch

本章節次 學習目標
4-1 資料輸入 / 輸出方法 1. 能區別各種傳輸的類型。
4-2 資料串列傳輸原理及標準介面 2. 能說明非同步串列傳輸格式。
4-3 通用序列匯流排介面原理 3. 能列舉常見的串列傳輸標準。
4-4 資料並列傳輸原理 4. 能描述交握式資料傳輸的原理。
4-5 並列顯示介面晶片 5. 能列舉常見的並列傳輸標準。
學習目標回顧
課後習題

AC20410_04.indd 125 7/9/2020 15:42:20


126 微處理機

4-1 資料輸入 / 輸出方法
資料通訊(data communication)是指接收端與傳送端,兩端之間訊息的傳輸與交
換,也就是資料傳輸。廣義來說,無論採用何種傳輸媒介、傳輸方法與傳輸格式,將訊
息從一地傳送至另一地,都可稱為通訊。傳輸媒介大致上分為有線傳輸與無線傳輸,無
線傳輸探討的層面非常廣泛,這裡我們僅聚焦在有線傳輸,透過不同角度談論資料傳輸
的方法。

4-1-1 串列與並列資料傳輸
微處理機與外界週邊裝置通訊,透過匯流排或傳輸線傳輸資料,屬於有線通訊。可
能只用一條資料線,每次傳送一個位元,稱為「 串列 (Serial)通訊」。或是使用多條
資料線,每次傳送多位元,稱為「 並列 (Parallel)通訊」。圖 4-1 可看出兩種通訊方式
的不同,這兩種方式都可用作微處理機與外界的傳輸資料的方法,但考量傳輸媒介的成
本與可靠性、傳輸速率等因素,會採用比較適合的方式。

當微處理機採用並列通訊傳送資料輸出裝置時,將由資料匯流排每次傳送多個位元
資料給輸出裝置。因為信號線太長將使訊號衰減或失真、互相干擾,所以傳輸線不得太
長。而且並列通訊需要較多的傳輸訊號線,對遠距離的傳輸而言,成本較高。基於以上
兩種原因,遠距離的資料傳輸,大都會考慮採用串列傳輸。

(a) 串列傳輸 (b) 並列傳輸


圖 4-1 串列傳輸與並列傳輸

採用串列傳輸與微處理機溝通,一次只用一條資料線,每次只傳輸一個位元資料,
有別於並列傳輸具有多條資料線,成本大大降低。但是,微處理機內部的資料處理、計
算,與外界的通訊等,都是以位元組(並列資料)為單位,例如微處理機希望輸出或輸
入 8 位元,但串列通信每次只傳輸一個位元,共需要傳輸 8 次,兩者之間的溝通需要透
過移位暫存器負責「並列→串列」或「串列→並列」的轉換。例如微處理機以串列方式

AC20410_04.indd 126 7/9/2020 15:42:21


Chapter 4 │資料串 / 並列傳輸 127

輸出資料,則為「並列→串列」的轉換,需要使用「並入串出移位暫存器 (PISO)」,而
由外界經串列傳輸資料,輸入微處理機,則為「串列→並列」,需要使用「串入並出移
位暫存器(SIPO)」,如圖 4-2 所示。

圖 4-2 串列與並列傳輸轉換

4-1-2 多工資料傳輸
如果資料傳輸雙方,都可發送資料與接收資料,就稱為 雙工 (duplex)傳輸。反之
如果一方只能發送資料,另一方只能接收資料,則稱為 單工 (simplex),如圖 4-3(a),
例如電視台發送無線訊號給家中電視觀看,只存在單方向資料傳輸。進行雙工資料傳輸
時,如果雙方同時間都可以「接收」與「發送」資料,就稱為 全雙工傳輸 ,如圖 4-3(c),
例如電話,在受話同時也可以發話。如果在單一時間只能發送,或只能接收,則稱為 半
雙工 ,如圖 4-3(b)。圖中 T 表示傳送器(Transmitter),R 則表示接收器(Receiver)。

(a) 單工 (b) 半雙工 (c) 全雙工


圖 4-3 單工與雙工串列傳輸

AC20410_04.indd 127 7/9/2020 15:42:21


128 微處理機

4-1-3 同步與非同步資料傳輸
當傳送方與接收方進行資料傳輸時,依據雙方是否共用同一個時脈信號作為同步的
基準,可分為 同步 (Synchronous)傳輸與 非同步 (Asynchronous)傳輸。資料傳輸時,
若以每次傳輸的資料線數多寡來區分,則可分為串列傳輸與並列傳輸。因此微處理機與
週邊設備的資料傳輸方式可分如圖 4-4 所示四大類:

1 並列同步傳輸: 採並列傳輸,一次傳輸多個位元,雙方共有時脈動作同步。
2 並列非同步傳輸:採並列傳輸,一次傳輸多個位元,雙方沒有時脈信號相連接。
3 串列同步傳輸: 採串列傳輸,一次傳輸 1 個位元,雙方共有時脈動作同步。
4 串列非同步傳輸:採串列傳輸,一次傳輸 1 個位元,雙方沒有時脈信號相連接。

(a) 並列同步傳輸 (b) 並列非同步傳輸

(c) 串列同步傳輸 (d) 串列非同步傳輸


圖 4-4 同步與非同步傳輸

同步傳輸的最大特徵是雙方具有相同的時脈訊號,以此時脈當成雙方資料傳輸的同
步基準。資料傳輸時,以時脈訊號讓雙方知道何時送出資料與何時接收資料,達到同步
傳輸的目的。同步傳輸並無法確知接收端是否確實接收到資料,例如接收端忙碌中,無
法接收資料,傳送端仍持續送出資料 , 所以資料並不能準確無誤地傳輸。

同步傳輸的缺點

01 傳輸速度需以慢的為準,大大降低 CPU 的執行效率。

02 CPU 無法確定指定的週邊設備是否準備完畢或接收完成。

AC20410_04.indd 128 7/9/2020 15:42:22


Chapter 4 │資料串 / 並列傳輸 129

針對以上兩個缺點可以使用交握式(Handshake)非同步傳輸方式解決。非同步資
料傳輸雙方沒有同步時脈,為了完成資料傳輸,雙方必須遵循一些規則與傳輸順序才能
達成傳輸資料的完整性,這個過程稱為 交握傳輸 。

4-1 隨堂練習
1. 依據傳送資料每次的位元數目,可分為      與      。

2. 依據傳輸雙方是否共用同一時脈訊號,可分      與      。

3. 判斷以下通訊方式,屬於單工、半雙工與全雙工的哪一種?(連連看)
  手機 單工
數位無線電視 半雙工
火腿族無線電 全雙工
  對講機

4-2 資料串列傳輸原理及標準介面
微處理機內部都是並列資料處理,顯得與串列傳輸格格不入,而串列傳輸一次只傳
輸 1 位元,看似效率差速度慢,它是如何突破瓶頸,完成傳輸工作且快速傳輸,廣受微
處理機系統喜愛,例如 USB、SATA 與 PCI-E 等。

4-2-1 串列傳輸概述
串列傳輸可以採用同步與非同步方式進行。同步串
列傳輸雙方需要共用同一時脈,資料會按照時脈頻率連
續地依次傳送。同步串列傳輸時,兩端會由同一頻率的
時脈驅動,同步信號週期性地在資料線上傳送,以保持
兩端的同步,使傳輸雙方時時備戰。可是,當甲方每秒
鐘送 100 位元的資料資料給乙方,當未確定乙方已收到 圖 4-5 同步串列傳輸
並備妥接收下一筆資料時,下一秒鐘甲方又送出 100 位
元資料。可見同步串列傳輸多了一條共同時脈訊號線,又仍無法保證資料傳輸的正確性。
請注意,通常傳輸雙方為了取得共同電位,都需要額外有接地的連接線。另外,時脈高
低要遷就速率低的裝置,才能確保傳輸正確。

AC20410_04.indd 129 7/9/2020 15:42:26


130 微處理機

相反地,非同步資料傳輸,資料傳輸雙方並沒有同步訊號線,僅靠著雙方互相協定
的傳輸速率與資料格式進行傳輸。資料的格式在非同步串列資傳輸中相當重要,為確定
接收端資料確實收到,會在每一字組前加上 1 位元低態的起始位元(Start bit),表示
資料將開始;於資料結束增加 1 ~ 2 位元的高態結束位元(Stop bit),表示資料已結束,
進入等待狀態,平時資料線皆為高電位狀態。例如資料本身 8 位元,外加 1 位元的起始
位元與 1 位元的結束位元,每筆資料共計 10 位元。

傳輸時難免有資料流失或雜訊干擾,除了起始位元與結束位元,會再增加檢查位元
(Check Bit),以利在接收端接收資料時能確認資料的正確性。最簡單與常用的檢查位
元為 同位位元 (Parity bit),分為 奇同位 (odd parity)與 偶同位 (even parity),其中
偶同位是使「資料加上同位位元後有偶數個 1」,反之,奇同位是使「資料加上同位位
元後有奇數個 1」。表 4-1 舉出一些例子說明同位位元的意義。

表 4-1 同位位元說明
偶同位 奇同位
原來資料 加上同位位元後 原來資料 加上同位位元後
1的 同位 1的 1的 同位 1的
資料 資料 資料 資料
數目 位元 數目 數目 位元 數目
1011011 5 1011011 1 6 1011011 5 1011011 0 5
0110011 4 0110011 0 4 0110011 4 0110011 1 5
0100000 1 0100000 1 2 0100000 1 0100000 0 1
1001001 3 1001001 1 4 1001001 3 1001001 0 3

當接收端接收到 1 個資料框的資料後,可以利用同位位元驗證資料的正確性,同位
位元只需要 1bit。例如,利用偶同位驗證資料正確性,則收到的資料 1 的個數必須是偶
數,否則表示發生傳輸錯誤。當發生錯誤後,接收端會要求重新傳送一次,直到正確為
止。但同位位元有其侷限性,當同時發生兩位元的錯誤時,同位位元無法判斷資料的正
確性,例如利用偶同位驗證資料正確性時,傳送資料 1011010 有偶數個 1,接收到的資
料若為 11 01010,仍有偶數個 1,但實際上資料已發生錯誤了,同位元檢查只適用在錯
誤率極低的場合,而且不具有錯誤更正能力。如果進行串列資料傳輸時,無法收到開始
位元,或無法判斷資料結束,稱為 框架錯誤(Frame Error),一般是訊號線雜訊引起的。

AC20410_04.indd 130 7/9/2020 15:42:26


Chapter 4 │資料串 / 並列傳輸 131

綜合以上所述,非同步串列通信的基本資料框格式包括起始位元、資料位元、檢查
位元、結束位元四部份,圖 4-6 所示。

圖 4-6 非同步串列傳輸資料框

開始位元永遠是 0,用於指示資料的開始,停止位元保持 1(高電位),至少 1 位元,


一直保持到下一字元的來到。非同步串列傳輸一個字元的傳送的規則為:

1. 當沒有資料傳送時,信號線維持 1。
2. 用 0 當成開始位元,字元資料先送最低位元(LSB),依序到最高位元(MSB),再
傳送檢查位元。
3. 當字元資料傳送完畢後,信號線回到 1,至少維持 1 位元,表示資料結束。
4. 字元資料在「起始位元」與「結束位元」之間。
傳送端與接收端雙方都必須知道傳輸資料格式,例如圖 4-6 中資料格式為 1bit 起始
位元、7 bits 資料、1 bit 同位位元、2bits 結束位元,整個資料框共 11bits。除了資料格
式外,在傳輸前,非同步串列傳輸的傳送端與接收端應先溝通好傳輸的速率,兩端雖然
都使用自己產生的時脈,但頻率是相等的。

串列通訊之資料傳輸速率以 每秒位元數 (bits per second,簡稱 bps),表示每秒鐘


傳送的位元數目。另外,也可用 鮑率 (baud rate)表示,但 bps 與鮑率並不完全相等,
鮑率是數據機的術語,指資料線每秒實際傳輸的位元數,也就是每秒鐘傳送包括起始位
元、資料位元、檢查位元與結束位元,所有的位元數。例如美國資料交換標準碼(ASCII)
一個字元有 7 位元,採非同步串列傳輸,包含 1 位元的開始位元,7 位元的資料位元,
1 位元的同位檢查位元,2 位元的結束位元,所以傳送 1 個字元需要傳送 11 位元的資
料。如果每秒鐘能傳 10 個字元,稱為 10 字 ×7 位元 / 字 = 70 bps,相當於每秒傳輸 10
字 ×11 位元 = 110 buad。常見的鮑率為 150、300、600、1200、2400、3600、4800、
9600、19200、38400。目前串列傳輸常將鮑率與 bps 混用。

AC20410_04.indd 131 7/9/2020 15:42:27


132 微處理機

能提供串列資料與並列資料轉換的硬體電路,被稱為「 通用型非同步接收傳送器 ,
UART(Universal asynchronous receiver-transmitter)」。UART 可 作 為 微 處 理 機 系 統
與串列傳輸介面的溝通,有時內建在系統的週邊介面晶片。同時提供同步與非同步則稱
為 USART,譯為通用型同步非同步接收傳送器。

4-2-2 資料串列傳輸標準介面
串列資料傳輸系統中,常將設備分為 資料終端設備 (Data Terminal Equipment,簡
稱 DTE)與 資料通信設備(Data Communication Equipment,簡稱 DCE)兩類。如圖 4-7
所示典型的串列傳輸系統架構,DTE 是指電腦主機,為資料傳輸的終點或資料發送端;
DCE 則是通訊設備,如負責調變與解調變信號的數據機。

圖 4-7 串列傳輸系統

串列傳輸一次只傳輸 1 位元,傳輸速度較慢,而且電路複雜,需要額外的 PISO 與


POSI 等轉換電路,但對長距離的有線通信而言,仍能節省不少成本。為使各廠商間的
通信設備可以相容,在國際標準組織(ISO)定義串列傳輸之機械功能、電器功能與連
接頭規格等標準特性後,美國電子工業協會(Electronics Industries Association,簡稱
EIA)隨即於 1960 制訂出 RS-232(RS 為 Recommended Standard,推薦標準),作為
串列傳輸的傳送標準。之後 EIA 不斷改進,分別在 1963、1965、1969 年陸續發表 RS-
232A、RS-232B、RS-232C,不斷增加可傳送距離、傳送速度與傳輸資料的正確性。

RS-232 為全雙工、點對點通訊標準,只有一對收、發設備(1 對 1)。EIA-422 也


稱 RS-422,由 RS-232 改良而來,為了提高 RS-232 通訊長度不夠用、效率不高的問題,
採用 4 線、全雙工、差分平衡傳輸,可連接多個接收端(1 對多)。RS-422 使用傳輸線
兩端的電壓差值來表示傳遞訊號,例如 A、B 兩個輸入端,VA > V B 為邏輯 1、VA < V B 為
邏輯 0。RS-422 連接長度為 12m 時傳輸速率可以達到 10Mbps,最遠可達 1.2km(此時
速率≤ 100Kbps)。

EIA-485 也稱 RS-485,為 RS-422 的改良,採用 2 線、半雙工、多點通訊的標準(多


對多),使用匯流排拓樸連接可達成雙線多點雙向資料傳輸。以硬體觀點,RS-422 相
當於兩組 RS-485,即兩個半雙工的 RS-485 組成一個全雙工的 RS-422,兩者都適合應

AC20410_04.indd 132 7/9/2020 15:42:30


Chapter 4 │資料串 / 並列傳輸 133

用在工業控制環境下的長距離資料傳輸,如連接遠端週邊控制器或感測器。表 4-2 為三
者串列傳輸標準的特性比較。

表 4-2 串列傳輸標準特性比較表

介面標準
RS-232C RS-422 RS-485
比較特性
I/O 操作方式 單端 差動 差動
傳輸模式 全雙工 全雙工 半雙工
最大傳輸距離 16m 1.2km 1.2km
最快傳輸速度 20K bps 10M bps /12m 10M bps /12m
1:–3V~–15V
電壓標準 1:A>B、0:A<B 1:A>B、0:A<B
0:+3V~+15V
1 個傳送端 1 個傳送端 32 個傳送端
最大扇出
1 個接收端 10 個接收端 32 個接收端

制訂 RS-232 時尚未有 TTL 標準,所以電壓準位並不與 TTL 相容。RS-232 屬於負


邏輯系統,–3V ~ –15V 為邏輯 1,有效負電位的訊號狀態稱為 marking。3V~15V 為邏
輯 0,有效正電位的訊號狀態稱為 spacing。3V ~ –3V 未定義,為模糊電位,無法判斷
邏輯狀態。

所 以 要 透 過 RS-232 傳 輸 資 料 給 微 處 理 機 這 類 TTL 介 面 標 準, 需 要 使 用 類 似
MC1488 與 MC1489、MAX232 等電壓轉換 IC。其中,MC-1488 可將 TTL 電壓準位轉
為 RS-232 準位,MC-1489 則是將 RS-232 電壓準位轉換為 TTL 準位,如圖 4-8 所示。

圖 4-8 MC1488 與 MC1489 使用示意圖

AC20410_04.indd 133 7/9/2020 15:42:30


134 微處理機

由 於 MC1488 需 要 雙 電 源 ±12V, 使 用 上 不 方 便, 常 使 用 MAX232 取 代, 達 成


TTL 與 RS-232 雙向電壓準位轉換,MAX232 內部有倍壓電路,只要接單電源 +5V 即可
工作,如圖 4-9 所示,使用上相當方便。

圖 4-9 MAX232 接腳與內部結構

RS-232 定義標準連接器為 25 支接腳的 D 型連接器,即 DB25 連接器。但為了縮減


連接線數,目前大都使用 9 支接腳的 D 型連接器 DB9 取代。DB9 比 DB25 減少了許多
交握的訊號線,但在大部分的場合已夠用,接腳名稱如表 4-3 所示。電腦提供的 RS-232
串列傳輸埠,稱為 COM1、COM2 等。

AC20410_04.indd 134 7/9/2020 15:42:31


Chapter 4 │資料串 / 並列傳輸 135

表 4-3 DB9 串列埠接腳訊號

名  稱 方 向
接腳
簡稱 英文 中文 DTE DCE
1 DCD Data Carry Detect 資料載波偵測 ←
2 RXD Data Receive 資料接收 ←
3 TXD Data Transmit 資料傳送 →
4 DTR Data Terminal Ready 資料終端備妥 →
5 GND Ground 接地信號 DB9 接腳序
6 DSR Data Setting Ready 資料設定備妥 ←
7 RTS Request To Send 要求發送 →
8 CTS Clear To Send 清除以備發送 ←
9 RI Ring Indicator 振鈴指示 ←

使用 RS-232 進行資料傳輸最簡單的連接接腳至少必須有 TXD、RXD 與 GND 三支,


如圖 4-10(a) 所示,如兩台 PC 裝置之間進行傳輸資料,則需將裝置 1 的 TXD 接至裝置
2 的 RXD,裝置 2 的 TXD 接至裝置 1 的 RXD,當然,GND 也需要連接在一起。

(a) 最簡易連接 (b) 全雙工交握協定

圖 4-10 RS-232 連接模式

除了不可或缺的資料線 TXD、RXD 與 GND 之外,RS-232 還有幾支交握信號接腳,


可提供更穩定的傳輸,說明如下。

1 DTR:資料終端備妥。當 DTE(如 PC)開機後,經自測無誤後,會將 DTR 設


為低電位,表示已經準備好了!

2 DSR: 資 料 設 定 備 妥。 當 DCE( 如 數 據 機 ) 開 機 後, 經 自 測 無 誤 後, 它 會 將
DSR 設為低電位,表示已經準備好了!

AC20410_04.indd 135 7/9/2020 15:42:31


136 微處理機

3 RTS:要求發送。由 DTE 啟動告知 DCE,它已經準備要傳送資料。當 DTE 要


傳送一個位元組,會將 RTS 設定為低電位,告知 DCE 有資料要傳送。

4 CTS:清除以備傳送。數據機以 CTS 低電位,告知 DTE 有空可接收資料。


5 DCD:載波偵測。當數據機與對方的數據機已建立連線,將以 DCD 告知 DTE
連線成功。DCD 是由數據機輸出發給 DTE 的信號。

6 RI:RI 是由 DCE 輸出發給 DTE 的信號,用以指示電話正在鈴響,RI 信號會以


高、低電位變化和響鈴同步。PC 必須偵測此信號,得知有來電,以便回應。

歸納來說,DTR 與 DSR 為電腦與數據機用來表示自己是開機備妥的狀態,RTS 與


CTS 則是控制資料流動的信號。當電腦要送資料時,以 RTS 通知數據機,如果數據機備
妥可以接收資料,則以 CTS 回應電腦。如果數據機尚未備妥,則不發出 CTS,電腦需要
重複送出 RTS 測試。若是兩台電腦進行全雙工連接可如圖 4-10(b) 所示。

4-2-4 常見串列傳輸介面
微處理機領域常見的串列傳輸標準,除了上節所提到 RS-232 以外,還有串列週邊
界面(Serial Peripheral Interface,簡稱 SPI)、積體電路介接匯流排(Inter-Integrated
Circuit Bus,簡稱 IIC)、通用串列匯流排(Universal Serial Bus,簡稱 USB)等,因
為傳輸速度的差異,應用的場合也不同。在此將說明應用在較慢傳輸場合的 SPI 與 IIC
的特性,USB 則是應用在高速資料傳輸,下一節專節說明。

一  SPI 簡介
RS-232 為非同步、全雙工傳輸,SPI 則是一種同步、全雙工串列傳輸,主要應用在
短距離場合,是由 Motorola 主導訂定的串列匯流排標準,常應用於數位相機用的記憶
卡、液晶顯示器等。SPI 傳輸時,裝置之間使用主從式架構、全雙工通訊模式,包含 1
個主機(master)與 1(或多)個從機(slave),由主機產生待讀或待寫的訊框資料,
多個從機通過晶片選擇(chip select)決定由哪個來回應主機的請求。

SPI 匯流排為 4 線同步串列傳輸,包括 SCLK、MOSI、MOSI、SS,如表 4-4 所示。


由 SCLK 提供同步時脈,MOSI 與 MISO 為主從雙方資料傳輸線,SS 則是主從雙方的認
可信號。對於資料的傳輸,SPI 並沒有交握,無法確認 slave 晶片是否有接收,反之,
I2C 則有雙向的確認機制。

AC20410_04.indd 136 7/9/2020 15:42:31


Chapter 4 │資料串 / 並列傳輸 137

表 4-4 SPI 傳輸線
接腳名稱 中譯 方向
SCLK 串列時脈(Serial Clock) 由主機產生作為傳輸控制。
主機輸出從機輸入訊號
MOSI 資料由主機發出、從機接收。
(Master Output Slave Input)
主機輸入從機輸出訊號
MISO 資料由從機發出、主機接收。
(Master Input Slave Output)
晶片致能訊號,由主機發出,從機收到低
SS 從機選擇(Slave Selected) 電位時有效,才會對 master 的操作指令有
反應。

SPI 串列傳輸時,可採 1 對 1 傳輸,或 1 對多傳輸。1 對 1 連接時,只要把主端與


從端相同名稱的接腳接在一起即可操作,如圖 4-11 所示。連接時,如果不需要由從端
回傳資料,則 MISO 可以省略不接,只用 3 條連接線。

圖 4-11 SPI 1 對 1 連接

SPI 的雙方其實是利用二組頭尾相連的移位暫存器來完成主機和從機之間的資料交
換,如圖 4-12 所示,而且傳送與接收動作是同時進行,屬於全雙工,SCLK 由主機產生
發出,用來控制二者同步移位的時脈信號。

圖 4-12 SPI 資料傳輸原理

AC20410_04.indd 137 7/9/2020 15:42:32


138 微處理機

另外,SPI 也支援主端連接多個從端,接法有二種,一種是利用多條獨立的 SS 訊號,


如圖 4-13(a),使用 2 條獨立的 SS 訊號,分別連接 2 個不同的從機,硬體電路較簡單,
但是需要額外的主機端接腳。另一種則利用菊鍊式(Daisy-Chain)的方式連接,如圖
4-13(b),不需要額外的硬體 SS 接腳,但是傳送及接收程式比較繁瑣。

(a) 多重 SS (b) 菊鏈式

圖 4-13 SPI 之多個從端連接

二 IIC 簡介
IIC Bus 通 常 簡 記 I 2C( 唸 成 I-square-C), 或 寫 成 I2C( 唸 成 I-two-C)。
IIC 是 一 種 半 雙 工、 同 步 串 列 傳 輸 標 準,1982 年 由 荷 蘭 飛 利 浦 半 導 體 公 司(Philips
Semiconductor) 所 開 發。 主 要 是 為 了 讓 微 控 制 器 或 CPU 以 較 少 的 接 腳 數 連 接 眾 多 的
低 速 週 邊 裝 置 之 用。IIC 只 使 用 兩 條 訊 號 線: 時 脈 線(serial clock, 簡 稱 SCL) 與 資
料 線(serial data, 簡 稱 SDA), 提 供 三 種 不 同 傳 輸 速 率 的 工 作 模 式, 包 括 標 準 模 式
(100Kbps)、快速模式(400Kbps)與高速模式(3.4Mbps)。

表 4-5 SPI 與 IIC 特性比較


比較項目
SPI IIC
類別
傳輸模式 全雙工、同步、串列 半雙工、同步、串列
4條 2條
連接線
SCLK、MISO、MOSI、SS SCL、SDA
傳輸速率 較快,5M/10M/20Mbps 較慢,100Kbps/400Kbps/3.4Mbps

IIC 和 SPI 一樣也是主從式架構,但不同於 SPI 的點對點或點對多點結構,它是以


匯流排型式介接,同時匯流排上允許有多個主端與多個從端,連接方法如圖 4-14 所示。

AC20410_04.indd 138 7/9/2020 15:42:33


Chapter 4 │資料串 / 並列傳輸 139

圖 4-14 IIC 匯流排連接示例

主 - 從結構中,所有 IIC 裝置的 SCL 與 SDA 都並接在一起。但要注意的是,每個


IIC 裝置這二支接腳都是 CMOS 開汲極(Open Drain)結構的 I/O 接腳,採「線接及閘
(Wired-AND)」方式連接,必需加入提升電阻,如圖中 R p 所示,才能有正確的準位
狀態,典型值約 1.5k ~ 5k 之間。

IIC 是根據 SCL 與 SCA 的準位關係進行協定,決定工作方式,共有三種狀況:

1. SCL 為 High 時,SDA 需保持訊號穩定不變,供對方讀取資料,如圖 4-15 1 的位置。


2. SCL 為 Low 時,SDA 可以改變資料,如圖 4-15 2 的位置。
3. SCL 為 High 時,如果 SDA 有變動則視為特殊狀況。此時若 SDA 由 High 轉為 Low
視為 Start 條件,如圖 4-15 3 的位置。反之,如果此時 SDA 由 Low 轉為 High 則為
Stop 條件,如圖 4-15 4  的 位置。

圖 4-15 IIC 工作原理

IIC 傳輸協定規定,除了 Start(啟始)和 Stop(結束)二個訊號之外 , 所有的資料


傳 輸 固 定 8 bits 為 一 組, 先 送 出 MSB(bit7), 依 序 bit6、bit5、 …、bit0。8bits 資 料
送出後,傳送端需讀取接收端回應 1bit 的 ACK 認可訊號,若 ACK 為 Low 表示認可(接
收成功),反之,若 ACK 為 High 表示不認可,如圖 4-15 5 的位置。

AC20410_04.indd 139 7/9/2020 15:42:33


140 微處理機

4-2 隨堂練習
1. 透過非同步串列傳輸資料,鮑率為 9600,資料框為 8-N-1(資料 8bits、無同位位元、
1bit 結束位元),傳輸 480K Bytes 資料共需費時      秒。
2. 兩 台 裝 置 以 RS-232 連 接, 最 簡 單 至 少 要 連 接      、       與
      三條線。
3. RS-232 為非同步全雙工串列傳輸,SPI 為      傳輸,而 IIC 為      
傳輸。
4. 桐豪上課認真,學到 IIC 相關理論時,發現 IIC 接腳需要連接提升電阻。他靈機一
動, 覺 得 很 像       邏 輯 閘 輸 出 結 構, 這 種 邏 輯 閘 多 個 輸 出 並 接 在 一 起,
有      閘效果。

4-3 通用序列匯流排介面原理
早期微處理機對外接式裝置的傳輸介面各不相同,如印表機只能接 LPT、數據機只
能接 RS-232(COM)、滑鼠鍵盤只能接 PS/2 等。雖然 BIOS 一般都提供可支援並列埠
與串列埠各四個,但主機板設計時為節省 IRQ(中斷要求)的使用,大都只提供 2 個串
列埠與 1 個並列埠,串列埠給滑鼠與數據機使用,並列埠給印表機使用,根本沒有剩餘
的串列或並列埠,而且 LPT 與 COM 的傳輸速度都太慢。繁雜的介面系統,加上必須安
裝驅動程式並重新啟動才能使用等限制,都會造成使用者的困擾。針對上述這些缺點,
因此創造出一個統一且支援易插拔的外接式傳輸介面顯得急迫。

4-3-1 發展歷史
USB 是 Universal Serial Bus 的 縮 寫, 譯 為「 通 用 序 列 匯 流 排 」, 緣 起 於 Compaq、
Digital Equipment Corp.( 現 在 屬 於 Compaq)、IBM、Intel、Microsoft、NEC、North
Telcom 等 7 家公司共同組成「USB 開發者論壇(USB-IF,USB Implementers Forum)」聯
盟進行定義與推廣,共同設計與開發 USB 介面標準與相容設備。

USB-IF 於 1996 年 公 布 USB 1.0 的 規 範, 緊 接 著 1998 年 發 布 USB1.1 規 格, 此


時 聯 盟 也 只 剩 Compaq、Intel、Microsoft、NEC 四 間 組 成。2000 年 發 布 第 三 個 版 本
USB2.0,此時又加入 Hewlett Packard、Philips、Lucent 等公司陸續加入 USB-IF 聯盟,
之後又有許多成員加入,目前是一個龐大的組織,圖 4-16 為歷代 USB 標誌的演進。

AC20410_04.indd 140 7/9/2020 15:42:34


Chapter 4 │資料串 / 並列傳輸 141

           

USB 標誌 USB1 標誌 USB2 標誌 USB3.0 標誌 USB3.1 標誌

圖 4-16 USB 的標誌

USB1.0 傳輸速度 1.5 Mbps,實用度較低,只見用在少數鍵盤與滑鼠上。而 USB1.1


則可達 12Mbps,從發表開始,各大廠商的大力推行,有不少週邊,如鍵盤、滑鼠與印
表機等,皆採用 USB1.1 規格,電腦主機背後也開始看得到 USB 插槽。
USB2.0 傳輸速度已可達 480 Mbps,因為資料傳輸能力大幅提升,此時的 USB 插
槽已經是電腦與網路相關產品的標準配備,USB 隨身碟的廣泛使用與智慧型手機配載
USB 傳輸功能,促使 USB 蓬勃發展,如表 4-6 列出各版本 USB 的名稱與速率比率。
表 4-6 USB 發展歷史列表
傳輸速率
俗稱 官方版本 發表年 速度稱呼
bps B/s
USB 1.0 USB 2.0 Low Speed 1996 年 Low Speed(低速) 1.5 M bps 192KB/s
USB 1.1 USB 2.0 Full Speed 1998 年 Full Speed(全速) 12 M bps 1.5MB/s
USB 2.0 USB 2.0 High Speed 2000 年 High Speed(高速) 480 M bps 60MB/s
USB 3.0 USB3.2 Gen1×1 2008 年 Super Speed(超高速) 5G bps 640MB/s
USB 3.1 USB3.2 Gen1×2 2013 年 Super Speed+(超高速 +) 10G bps 1280MB/s
USB 3.2 USB3.2 Gen2×2 2017 年 Super Speed+(超高速 +) 20G bps 2560MB/s

註 bps(bit per second),每秒鐘傳送的位元數,同 bits/s 的標記法。


B/s 為 bytes/sec 的簡記,每秒傳輸的位元組數。

到了 USB3.0 的傳輸速度更達 5Gbps,被稱為 Super Speed,超快的傳輸速率可應


用在各個領域,幾乎成為大部份電子產品必要的傳輸介面,例如外接式硬碟、DVD 撥
放器等。2013 年推出 USB3.1 支援 10Gbps 的傳輸速度,2014 年公告 Type-C。2017 年
7 月再公布 USB 3.2,傳輸速度可達 20Gbps,並建議使用不分正反面的 Type-C 接頭。
Type-C 的特色

01 較小的尺寸,大小與 USB2.0 的 MircoUSB-Type B 類似。

02 支援正反面都可插入。
03 支援更高的電源充電能力。

AC20410_04.indd 141 7/9/2020 15:42:35


142 微處理機

USB-IF 對 USB 3 後 的 版 本 進 行 幾 次 更 名, 如 表 4-7 所 示, 截 至 2019 年 為 止,


USB3.0 與 USB3.1 名稱會消失,被納入 USB 3.2 的系列,USB3.0 更名為 USB 3.2 Gen 1、
USB3.1 更名為 USB 3.2 Gen 2,原本的 USB 3.2 則更名 USB 3.2 Gen 2x2。
表 4-7 USB 3 系列名稱變動
規格 傳輸速率 2015 更名技術用語 2019 更名技術用語 營銷用語
USB3.0 5G bps USB 3.1 Gen 1 USB 3.2 Gen 1 SuperSpeed USB
USB3.1 10G bps USB 3.1 Gen 2 USB 3.2 Gen 2 SuperSpeed USB 10Gbps
USB3.2 20G bps 尚未發表 USB 3.2 Gen 2×2 SuperSpeed USB 20Gbps

4-3-2 USB 的概述


USB 最 大 的 特 點 是 支 援 熱 插 拔 (Hot Plug) 和 隨 插 即 用 (Plug and Play, 簡 稱
PnP)。當連接裝置時,例如滑鼠、掃描器、印表機、隨身碟等,主機不需關機,主機
會自動辨識各裝置,並載入此裝置所需的驅動程式,完成安裝,使用上非常方便。
USB 連接方式採「階梯式星狀拓僕(tiered star topology)」結構,可透過 hub(集
線器)擴充連接的裝置數量,如圖 4-17 所示。整個 USB 連接結構包括一個主端(master)
與數個從端(slave)組成。主端為 host(主機控制器)、從端為 device(裝置),注意,
hub 也算裝置,包括 hub,USB2.0 最多可連接 127 個裝置。裝置可以插到 hub 上,而
hub 也可以串接插到另一個 hub 上,以此類推,不過最大階層數為 6 層,包含電腦內部
的根集線器 root tier,如圖 4-17 所示,已經使用 1 + 4 = 5 層了。由上述可知,USB 的
匯流排架構是由 USB 主機控制器 / 根集線器、USB 集線器與 USB 裝置三部分組成。

圖 4-17 USB 星狀階層連接關係

AC20410_04.indd 142 7/9/2020 15:42:35


Chapter 4 │資料串 / 並列傳輸 143

如果採用 USB 集線器擴接,不會耗用主機電源,USB 裝置只使用 USB 集線器電源。


並且 USB 具有電能管理能力,如果裝置一段時間閒置,會進入睡眠狀態。

標準的 USB 使用主從式架構,主機為「主」、裝置為「從」。USB 是由 Host 端(主


機)控制整個的匯流排資料傳輸的,整個 USB 匯流排上,只能有一個 Host。USB 協議
本身,是不支持多個 Host 端的。只有 USB 伺服器可以排程該連結的設定與資料傳輸,
USB 週邊裝置不能夠自行啟動資料傳輸,只能回應伺服器的指令。

當 電 腦 主 機 連 上 電 源 時, 所 有 透 過 USB 埠 連 接 的 USB 裝 置 與 集 線 器 都 預 設 位 址
為 0,而且都處於失效的狀態。此時,主機開始搜尋 USB 裝置,第 1 個裝置或集線器
就分配位址 1,第 2 個位址為 2,以此類推。如果為集線器,則繼續往下查詢位址仍為
0 的裝置,直到所有裝置都有了新的位址,或分配位址已達最大值 127 則停止。分配新
位址時,主機也會載入該裝置對應的驅動程式,當移除裝置時,主機會偵測到資料線
(Data+、Data–)電壓發生變化,則回收位址編號。

USB OTG(On-The-Go)是 USB2.0 規格的補充標準。它可使 USB 裝置,例如印


表機、平板電腦、播放器或手機等,從 USB 週邊裝置變為 USB 主機,與其他 USB 裝
置連線通訊。在平時,這些支援 OTG 的 USB 裝置,仍然作為 USB 週邊裝置使用。但
這些支援 OTG 的裝置,如 USB 印表機,可以不連線電腦(主機)的情況下直接連接
USB 隨身碟來讀取裝置內檔案進行列印;或平板電腦可以直接連接 USB 儲存碟、鍵盤
或滑鼠來擴充外界硬體功能。

OTG 引入 主機協商協定 (Host Negotiation Protocol,簡稱 HNP)的新概念,允許


兩個設備之間互相協商誰去當 Host。即使在 OTG 中,在同一時間內,也只存在單個的
Host,同樣不允許存在多個 Host。

USB 為連接不同週邊,發展出不同的連接器,主要分為 Type A、Type B 兩種,分


別用於主機和設備;Type A 與 B 各有插頭與插座。因應不同設備需求,小型化的連接
器有 Mini-A 和 Mini-B、Micro-A 和 Micro-B。另外,新發表的 Type C 可不分方向插入。
插頭與插座接腳鏡射,表 4-8 只列出插頭外型與接腳序。

表 4-8 USB 連接器
插頭接腳
Type A Type B Mini-A Mini-B Micro-A Micro-B
類型

USB 2.0

USB 3.2

AC20410_04.indd 143 7/9/2020 15:42:37


144 微處理機

4-3-3 USB 接腳
USB 2.0 以前的版本只有四條訊號線,包括 Vcc、Gound、Data+ 與 Data–,如表 4-
9 所示。Vcc、Gound 與主機(或集線器)電源、接地連接,靠著 Data+、Data– 的差動
訊號,達成高速傳輸的目的。USB 2.0 為半雙工(Half Duplex)匯流排,只有 2 條資料
線形成差動訊號,傳送時無法接收、接收時無法傳送,由傳送與接收共用頻寬,限制了
整體性能表現。

表 4-9 USB 2.0 引腳
接腳 訊號名稱 顏色 說明
Pin 1 VBUS 紅 +5V,電源線
Pin 2 D– 白 Data–,資料線
Pin 3 D+ 綠 Data+,資料線
Pin 4 GND 黑 Ground,接地線

USB3.0 又稱為 SuperSpeed USB,核心架構經過大改造,高達 5Gbps 的資料傳輸頻


寬,比 USB 2.0 快 10 倍,大大節省傳輸時間,而且還更省電。USB 3.0 的拓樸與分層
結構和 USB 2.0 相同,但是為了提升傳輸頻寬,USB 3.0 採用全單工(Full Simplex)
匯流排,規劃多出 4 條資料傳輸線(SSTX+/–、SSRX+/–),讓傳送與接收擁有獨立通道,
更能夠同時雙向傳輸資料,藉此實現 5Gbps 傳輸頻寬。設計上讓 SuperSpeed 使用專屬
的 4 條差動訊號線,保留 D+、D– 可向下相容其他規範的裝置。如表 4-10 所示,USB 3.0
實際腳位總數為 9pin,較 USB 2.0 多出 5pin。
表 4-10 USB 3.0 的引腳定義
訊號名稱
接腳 顏色
Type A Type B
Pin 1 VBUS 紅
Pin 2 D– 白
Pin 3 D+ 綠
Pin 4 GND 黑
Pin 5 StdA_SSRX– StdA_SSTX– 藍
Pin 6 StdA_SSRX+ StdA_SSTX+ 黃
Pin 7 GND_DRAIN Shield
Pin 8 StdA_SSTX– StdA_SSRX– 紫
Pin 9 StdA_SSTX+ StdA_SSRX+ 橙色

AC20410_04.indd 144 7/9/2020 15:42:38


Chapter 4 │資料串 / 並列傳輸 145

從 USB2.0 到 USB3.0,在整個訊號架構上有幾個重大的改變,除了訊號傳輸率由
480Mbps 提升到 5Gbps 之外,訊號傳輸編碼方式由原本的 NRZI(不歸零翻轉) 架構修
改成 8b/10b 的架構,以降低接收端訊號判斷出錯。
USB3.0 也 進 一 步 提 升 Host 輸 出 電 流 的 能 力, 由 500mA 提 升 到 900mA, 能 提 供
更 廣 泛 產 品 的 應 用。 另 外,USB3.0 採 用 PCI-E 架 構 中 的 展 頻 時 脈(Spread Spectrum
Clock, SSC)技術來降低電磁干擾讓傳輸品質更佳。

表 4-11 USB 3.0 與 USB 2.0 特性比較

版本 USB 3.0 USB 2.0


High-speed 480Mbps
傳輸速率 SuperSpeed 5Gbps Full-speed 12Mbps
Low-speed 1.5Mbps
‧ 全單工(Full Simplex)運作模式
‧ 半雙工(Half Duplex)運作模式
資料介面 ‧ 具備 4 條差分訊號線,可雙向同時
‧ 2 條差分訊號線,單向傳輸資料
傳輸資料
編碼 8b/10b NRZI
訊號線
SuperSpeed 專屬 4 條,其他規範裝置 2 條 2 條
數量
傳輸 Unicast(單播) Broadcast(廣播)
通訊協定 主控端單點廣播 主控端向所有裝置廣播資料封包
匯流排
150mA ~ 900mA 100mA ~ 500mA
供電量
可連結
127 個 127 個
裝置數量
建議
3 公尺 5 公尺
線材長度

2014 年 USB-IF 公布 USB 3.1(SuperSpeed+),是基於 USB 3.0 改良推出的 USB


連接介面的最新版本,包括 Type-A、Type-B 以及全新設計的 Type-C。標準的 Type-A
是目前應用最廣泛的介面,Type-B 主要用於印表機和傳真機等裝置,而 Type-C 用於更
輕薄、更纖細的手持裝置。USB Type-C,又稱 USB-C,是基於 USB 3.1 規範的全新設計,
外觀上最大特色在於其上下端完全一致,也就是使用者不必再區分 USB 正反面,如同
蘋果 Lightning 介面一樣,兩個方向都可以插入。

   

圖 4-19 USB Type C 外觀與接腳

AC20410_04.indd 145 7/9/2020 15:42:39


146 微處理機

4-3-4 資料編碼
底下以 USB2.0 的接腳定義為例來探討 USB 的資料編碼方式,USB2.0 只有兩條資
料線 Data+ 和 Data–,使用差動電位決定資料的 0 或 1,屬於串列傳輸,而這串列傳輸
資料編碼方法是採用 NRZI(Non-Return-to-Zero Inverted,誤差翻轉不歸零制或不歸零
翻轉)。NRZI 編碼方式希望在準位信號內夾帶了「同步時脈」信號,達到傳送與接收
雙方同步的目的,傳送端先將原始資料進行 NRZI 編碼再傳送出去,接收端再進行解碼。

NRZI 採用「電位保持」是一種邏輯狀態,「電位變化」又是另一種邏輯狀態。在
USB 中,NRZI 表達方式為「電壓準位翻轉代表邏輯 0」、「電壓準位不變代表邏輯 1」。
所以編碼與解碼原則如下所述:

1 編碼:從原始資料編碼成 NRZI 時,其編碼規則是「當資料位元為 1 時不轉換,


為 0 時再做轉換」。

2 解碼:從 NRZI 解碼成原始資料,原則是「當電位不變時為 1,電位轉變時為 0」。


如 圖 4-20 所 示, 假 設 資 料 列 原 先 閒 置(Idle) 時 為 1, 要 傳 送 的 原 始 資 料 為
「0110001011101」。經過 NRZI 編碼時,遇到資料為 0 時則轉態,資料 1 則不轉態,
如下圖箭頭↓處。所以 NRZI 編碼後資料為「0001011000011」。同理,解碼時,電位
如有改變資料為 0,如圖中箭頭↓處,反之,電位沒有改變,資料則為 1。所以解碼後
資料為「0110001011101」,與原始資料相同。

圖 4-20 NRZI 編碼與解碼

NRZI 沒 有 自 同 步 特 性, 所 以 在 USB 中, 每 個 USB 資 料 包, 最 開 始 都 有 個 同


步 訊 號(SYNC), 固 定 為 0000 0001, 這 個 值 通 過 NRZI 編 碼 之 後, 就 是 一 串 方 波
(01010100),接收者可以用這個 SYNC 來同步之後的資料信號。另外,因為在 USB
的 NRZI 編碼下,邏輯 0 會造成電位翻轉,所以接收者在接受資料的同時,根據接收到
的翻轉信號不斷調整同步頻率,保證資料傳輸正確。

AC20410_04.indd 146 7/9/2020 15:42:39


Chapter 4 │資料串 / 並列傳輸 147

在 NRZI 編碼時,為了避免重複相同 1 的信號一直進入時,編碼後的資料沒有變化,


導致讀取的時序無法對準會發生嚴重錯誤,所以會執行位元填塞(bit-stuffing)的工作。
若在原始的串列資料中含有連續 6 個 1 位元的話,就需執行位元填塞的工作,在第 6 個
1 後面強制插入一個 0,而在解碼時,會再做位元反填塞(bit-destuffing)的工作。

圖 4-21 NRIZ 與位元填塞

4-3-5 USB 資料傳輸


USB 資 料 傳 輸 共 分 為 控 制 型 傳 輸 (Control Transfer)、 中 斷 型 傳 輸 (Interrupt
Transfer)、 巨 量 型 傳 輸 (Bulk Transfer) 與 等 時 型 傳 輸 (Isochronous Transfer) 四 種
類型,依據不同需求會採用不同的傳輸類型,通常慢速裝置只支援控制型與中斷型傳輸,
大量資料傳輸則採巨量型傳輸,需要固定傳輸速率則用等時型傳輸。四種傳輸類型特性
比較如表 4-12 所示。

 一 控制型傳輸
所有的 USB 裝置必須支援控制型傳輸,是 USB 最重要的傳輸方式,用來提供主機
與裝置之間的通訊,包括設定裝置、取得裝置資訊(狀態)、發送命令到裝置等通訊,
為雙向傳輸。必須正確的執行控制型傳輸,才能進一步地執行其他的傳輸模式。

 二 中斷型傳輸
由 於 USB 不 支 援 硬 體 的 中 斷 方 式 運 行, 所 以 必 須 靠 主 機 以 週 期 性 的 方 式 來 輪 詢
(Polling),故於 USB 的中斷傳輸意即是一種固定週期的輪詢過程。例如對 12Mbps 的
裝置而言,可以訂定 1ms 至 255ms 之間的輪詢週期,所以最快的輪詢速度為 1kHz,適
用低速的裝置,例如鍵盤、搖桿或滑鼠,這類低速的裝置統稱為人機界面裝置 (HID,
Human Interface Device)。

 三 巨量型傳輸
可為單向或雙向的傳輸,適用於傳送大量的資料,且沒有固定的傳輸速率,若傳輸
失敗就會重傳以確保資料正確。適用的設備為印表機、掃描器、USB 隨身碟、硬碟等。

AC20410_04.indd 147 7/9/2020 15:42:39


148 微處理機

 四 等時型傳輸
可為單向或雙向的傳輸,此種傳輸需要維持一定的傳輸速度,且允許錯誤發生,不
確保資料是否到達,不會重傳資料。事先與主機協議好固定的傳輸頻寬,以確保發送端
及接收端的傳送速度。適用在音頻或影像資料的傳輸,例如 USB 視訊裝置、喇叭等裝置,
這種傳輸可以確保撥放的速率是穩定的。

表 4-12 USB 傳輸類型比較
資料最大 發生錯
資料 應用
類型 特性描述 長度 誤時再
週期性 裝置
(bytes) 傳送
‧ 設定裝置、取得裝置資訊、發送命令到 HS:64 主機與
控制型
裝置 FS:64 沒有 可 裝置間
傳輸
‧ 雙向性 LS:8 的通訊
‧ 以預設的時間間隔傳輸資料 HS:1024 鍵盤
中斷型
‧ 慢速 10~255ms、快速 1~255ms FS:64 有 可 滑鼠
傳輸
‧ 雙向性(USB1.0 為單向輸入) LS:8 搖桿
‧ 非同步資料傳輸
巨量型 ‧ 具 CRC 糾錯能力 HS:512 印表機
沒有 可
傳輸 ‧ 慢速 10~255ms、快速 1~255ms FS:64 掃描器
‧ 雙向性、不保證傳輸速率
‧ 需要維持一定的傳輸速度,具保證頻寬
等時型 HS:1024 麥克風
‧  無 CRC 錯誤糾錯、不保證資料正確 有 不可
傳輸 FS:1023 喇叭
‧  可為單向與雙向傳輸

註 HS 表 High-speed、FS 表 Full-speed、LS 表 Low-speed。

完整的 USB 資料傳輸(transfer)包括多個交易(Transaction),而每個交易大多


為 3 種封包(Packet)組成。封包是組成 USB 傳輸資料的最小單位。一個交易的架構通
常由執照(token)封包、資料(data)封包與交握(handshake)封包三種封包組成,
但依傳輸類型需求而定,一個交易可能包含 1 ~ 3 個封包。

圖 4-22 USB 封包架構

AC20410_04.indd 148 7/9/2020 15:42:39


Chapter 4 │資料串 / 並列傳輸 149

每個交易都是以「執照封包」開始,決定交易的傳輸型態,定義裝置、傳輸類型與
方向。「資料封包」則是傳送此交易的資料與 CRC 驗證碼,資料長度與 USB 裝置、傳
輸類型有關。除了等時型傳輸外,所有的傳輸都需保證資料的傳遞正確,接收端以「交
握封包」回應資料是否正確的被收到,若發生錯誤,傳輸動作將重新執行。

4-3 隨堂練習
1. 連連看,請對應 USB 各版本正確的速度稱呼、傳輸速率。

版本 速度稱呼 傳輸速率
Super Speed+ 20Gbps
USB2.0 High Speed 1.5Mbps
Low Speed 12Mbps
USB3.2 Gen2X2 Super Speed 5Gbps
Full Speed 480bps

2. 小梅針對 USB 進行期中報告,以下是她的報告摘錄,幫忙指正錯誤為何?    


「USB 具備 PnP 隨插即用的功能,早期 USB1.1 可達 12Mbps,主要應用在印表機、
鍵 盤 與 滑 鼠 等, 後 來 USB2.0 傳 輸 速 率 可 達 480Mbps, 成 為 電 腦 標 準 配 備。 直 到
USB 3.0 採用 Type-C,正反面皆可插入,才開始用於手機行動裝置。」

3. USB2.0 有四條線:     、     、     、     。

4. 假設資料線閒置時為 1,以 NRZI 編碼資料 1001 1011,結果為       。

5. USB 傳輸類型可分為
       、       、       與       四種。

4-4 資料並列傳輸原理
並列資料傳輸一次同時傳輸多個位元,可以提高傳輸效率,但是線材成本較高,適
用在短距離、高速的資料傳輸。為了確保資料傳輸的完整性,可以採取一些措施達成,
另外,經典的並列傳輸標準:印表機介面與 IEEE488,也值得一窺究竟。

AC20410_04.indd 149 7/9/2020 15:42:40


150 微處理機

4-4-1 非同步並列資料傳輸
同步傳輸因傳輸雙方共有一個時脈,可作為傳輸資料的基準,但要遷就速度較慢
者。反之,非同步並列資料傳輸沒有共同的時脈信號,為達成資料的完整傳送,可採 閃
控式 (Strobe)或 交握式 (Handshake)二種控制方法其中一種。

閃控式傳輸可分為來源觸發與目的觸發兩種,如圖 4-23(a)(c) 所示,將資料的發送


端稱為「來源裝置」,資料的接收端稱為「目的裝置」,透過資料匯流排來傳送資料。
如圖 4-23(a) 所示來源觸發型,閃控線觸發信號是唯一的控制線,提供來源裝置觸發(啟
動)目的裝置接收資料。來源端 1 先備妥資料在資料匯流排後,再 2 發出觸發信號,
通知目的裝置可以接收信號了,動作時序如圖 4-23(b) 所示。目的端應在觸發信號高態
期間時,完成讀取資料的動作。隨後來源端,收回觸發信號,資料失效。這樣的動作,
有如 CPU 將資料寫入記憶體時,以 WE 當成閃控線,觸發記憶體接收資料。有另一種
閃控式資料傳輸,如圖 4-23(c),由目的裝置發出閃控信號,提醒來源裝置發送資料。

(a) 來源觸發 (b) 來源觸發時序圖

(c) 目的觸發 (d) 目的觸發時序圖


圖 4-23 閃控式非同步傳輸

閃控式的缺點是無法確定接收端裝置是否確實接到資料,利用交握式可解決這個問
題,如圖 4-24 所示,除了資料匯流排外,另有兩條控制線:資料有效(Data Valid)與
資料收到(Data Accept)。交握式也分為來源啟動與目的啟動兩種,來源啟動型為達成
有效的資料傳輸,動作步驟如下:

AC20410_04.indd 150 7/9/2020 15:42:40


Chapter 4 │資料串 / 並列傳輸 151

Step 1 來源裝置 1 將資料放置於資料匯流排中,並 2 將「資料有效」轉為高電位。


Step 2 目的裝置因「資料有效」為高電位,所以由資料匯流排上接收資料,接收成
功後 3 將 「 資料收到」轉為高電位。

Step 3 來源裝置因「資料收到」轉為高電位,因而知道目的裝置已收到資料, 4 將
「資料有效」轉為低電位,並 5 取消資料匯流排上的資料。

Step 4 目的裝置因「資料有效」轉為低電位,因而知道來源裝置明白資料已收到,
6 將「資料收到」轉為低電位。整個傳輸過程結束。

(a) (b)
圖 4-24 來源啟動交握式非同步傳輸

目的啟動型也有資料有效與備妥接收(ready for data)兩條交握控制線,如圖 4-25


所示。(b) 圖說明目的啟動的交握程序。

Step 1 目的裝置已備妥可以接收資料了,再 1 啟動「備妥接收」訊號通知來源裝


置。

Step 2 來源裝置 2 將資料放置於資料匯流排,並 3 啟動「資料有效」訊號。


Step 3 目的裝置從資料匯流排接收資料,完成後, 4 取消「備妥接收」訊號。
Step 4 來源裝置偵測到「備妥接收」取消了,得知目的裝置已接收到資料,隨即 5
取消「資料有效」, 6 取消匯流排上的資料。

(a) (b)
圖 4-25 目的啟動交握式非同步傳輸

AC20410_04.indd 151 7/9/2020 15:42:41


152 微處理機

4-4-2 印表機介面
印表機介面 (Line Printer Terminal,簡稱 LPT)也稱 SPP(標準並列埠),是最典
型的 8 位元並列傳輸介面,原本是由 Centronics Data Computer 公司設計的印表機介面,
共有 36 條接線,現用的印表機介面又稱為 Centronics 介面,保留其接腳配置、訊號標準,
精簡為 25 條接線,包括 8 位元資料匯流排、4 條控制匯流排、5 條狀態訊號與一些為消
除雜訊而設的訊號線等,如表 4-13 所示。

(a) 印表機介面外觀 (b) 印表機介面接腳


圖 4-26 印表機介面外觀與接腳
表 4- 13 電腦端 LPT 接腳
接腳 電腦端 說明
方向
類型 名稱 DB-25Pin
平常為高電位,當 STROBE = 0 時,表示電腦已
控制 STROBE 1 →
備妥資料,告知印表機讀取
資料 Data 0 ~ 7 2~9 → 8 bits 並列資料
狀態 ACKNLG 10 ← Acknowledge,印表機收到資料的認可信號
狀態 BUSY 11 ← 印表機忙碌、尚未準備好接受新字元時 BUSY = 1
狀態 PE 12 ← 即 Papre Empty,告知電腦端印表機缺紙
狀態 SLCT 13 ← SLCT = 1 表示印表機有電源且為連線狀態
AUTO FEED = 0 時, 印 表 機 印 完 一 列 會 自 動 換
控制 AUTO FEED 14 →
行,不需電腦端送換行命令
印表機正常時為高電位,當印表機缺紙、離線、
狀態 ERROR 15 ←
卡紙等錯誤狀態時 ERROR = 0
控制 INIT 16 → 當 INIT = 0 時,使印表機重置,進行初始化動作
印表機致能信號,當 SLCT IN = 0,告知印表機已
控制 SLCT IN 17 →
被選到
接地 GND 18 ~ 25 接地

AC20410_04.indd 152 7/9/2020 15:42:41


Chapter 4 │資料串 / 並列傳輸 153

印表機介面標準中有多條接地線,讓許多訊號有自己的接地返回線,以減少雜訊及
互相干擾。而 STROBE、BUSY 與 ACKNLG 為電腦對印表機的交握線,使兩端資料傳輸
確實。例如電腦由 BUSY = 0 得知因表機有空時,會送出字元並觸發 STROBE = 0,以激
勵印表機來取資料。當印表機收到資料後,以 ACKNLG = 0 回覆電腦資料已收到,並可
送下一個新字元。電腦與印表機的交握通訊簡單描述如圖 4-27 所示,動作步驟說明如下。

Step 1 電腦檢查印表機是否 BUSY ?直到印表機 BUSY = 0,表示印表機可接受字


元資料。

Step 2 電腦由 Data0~Data7 送出字元資料(8 位元)後,使 STROBE = 0,通知印


表機資料已備妥在資料線上,可讀取字元質料。

Step 3 當印表機由 STROBE = 0,獲知資料備妥,會將 BUSY 轉為高電位,並開始


讀取字元資料。

Step 4 當印表機讀取字元資料完成後,會送出 ACKNLG 低電位,回覆電腦資料已


收到,並在 ACKNLG 由低電位轉為高電位時,將 BUSY 轉為低電位,表示
可以在接受下一筆字元資料。CPU 可以利用 BUSY 轉為低電位的邊緣信號,
送下一筆字元資料。

圖 4-27 電腦與印表機交握示意

4-4-3 IEEE-488 簡介
美國 Hewlett-Packard 公司於 1975 年訂定出 IEEE-488 介面匯流排標準,主要用於
短距離通信的匯流排規範,也稱為 GPIB(General Purpose Interface Bus,通用目的介
面匯流排),是 24pin 的 8bits 並列雙向匯流排,廣泛用在測試、量測領域以及儀器控
制的通訊介面。GPIB 傳輸速率最高可達 8Mbps,可連結一個系統控制器以及最多 14 台
儀器,纜線最長可達 20 公尺。

IEEE 488 介面,可將控制器(電腦)、量測儀器(裝置)等連接在一起,形成一


個自動量測系統。連接方式可分成 線性 (Linear)串接與 星形 (Star)連接兩種方式,
如圖 4-28 所示。線性串接方式是以一台串聯著一台的方式,連接成一測試迴路。而星
形連接方式,以一台裝置為中心,幅射連接至其他裝置。

AC20410_04.indd 153 7/9/2020 15:42:42


154 微處理機

Device A

Device B Device A Device D

Device C Device B Device C

(a) 線性串接 (b) 星形連接


圖 4-28 IEEE 488 連接方式

IEEE 488 匯 流 排 是 由 16 條 訊 號 線 與 8 條 接 地 線 及 隔 離 線 所 組 成, 如 圖 4-29 所


示 IEEE 488 連接器的接腳圖,其中 16 條訊號線依其功能可區分成 8 條資 料 線(Data
Line)、5 條介面管理線(Management Line)、3 條交握線(Handshake Line)三大類。

  

圖 4-29 IEEE 488 連接器之接腳圖

AC20410_04.indd 154 7/9/2020 15:42:43


Chapter 4 │資料串 / 並列傳輸 155

1 8 條資料線: DIO1、DIO2…至 DIO8 共 8 條資料線,用來傳輸資料或命令訊息


之用。

2 5 條管理線:
1. IFC(Interface Clear)線為系統控制器重置裝置之用。
2. ATN(Attention)線用來指示在匯流排 8bits 資料線上的訊息為資料或是命令。
3. REN(Remote Enable)線是裝置用來切換裝置為遠程控制或是本地控制。
所謂遠程控制乃是透過 GPIB 匯流排所傳送過來的裝置相關訊息進行控制,
而本地控制則是利用裝置本身面板按鈕開關進行控制。
4. EOI(End-or-Identify)線是發話者在傳送資料序列至最後位元組時,令 EOI
線動作,即拉至低準位,表示資料傳輸結束。相對地,收聽者在收到低準位
的 EOI 信號時,即停止讀取資料。
5. SRQ(Service Request)線是裝置用來通知控制器,其需要控制器的服務。
當 SRQ = 0 時,表示裝置須要服務,SRQ = 1,解除服務要求。控制器須隨
時監測其 SRQ 信號,以判斷是否有裝置要求服務中斷。

3 3 條交握線:DAV、NRFD 與 NDAC 三條交握線,作為裝置間的非同步資料傳輸,


來確保裝置間所傳輸或接收的資料不會遺失。

在 IEEE 488 匯流排裡,為了確保資料傳輸的正確性,根據裝置控制匯流排的時機


不同,可區分成控制器(Controller)、發話者(Talker)、收聽者(Listener)三種角色,
分述如下:

1 控制器: 通常一個由 GPIB 介面所組成的測試系統,是由一台電腦與許多不同


種類的儀器所組成,此時,電腦即稱為控制器。若在一系統裡有多台電腦連接
在一起,那麼目前具有控制能力的電腦即稱為值班控制器,值班控制器可經由
控制權的移轉,將控制權轉移至空閒(Idle)的控制器裡。一個裝置要能稱為控
制器,需具備以下四點能力:

1. 管理匯流排之通信連接管道。
2. 回應裝置之服務要求中斷。
3. 送出 GPIB 命令訊息。
4. 移轉/接收匯流排控制權。

AC20410_04.indd 155 7/9/2020 15:42:43


156 微處理機

2 發話者: 大部份 IEEE 488 裝置都具備有發話者的功能,其所需具備的能力為:


1. 可被控制器設定成具有發話的能力。
2. 有能力向 GPIB 匯流排傳送資料。
3. 任一時刻匯流排上只能有一裝置發話。

3 收聽者:大部份的 IEEE 488 裝置都具備有收聽者的功能,其所需具備的能力為:


1. 可被控制器設定成具有收聽的能力。
2. 具有由 GPIB 匯流排接收資料之能力。
3. 任何時刻,匯流排上最多可允許 14 個收聽者同時接收資料。

4-4 隨堂練習
1. 在非同步並列傳輸過程中,接收資料的一方「備妥接收資料時通知對方、收到資料
後也會告知對方」,可猜想雙方可能採取        非同步傳輸。

2. 電 腦 與 LPT 的 交 握 過 程 中, 印 表 機 探 知        , 獲 知 資 料 備 妥, 會 將
BUSY 轉為高電位,並開始讀取資料。

3. IEEE488 連接控制器與量測儀器的方式可分為     與     兩種方式。

4-5 並列顯示介面晶片
顯示器在微處理機系統中幾乎是必備的輸出裝置,依據使用場合需求可概分為大
型、中型與小型顯示器。大型尺寸顯示器通常應用在電視、筆電、與桌上型顯示器等,
中型顯示器則應用在相機、平板電腦與車用顯示螢幕、智慧型手機等顯示器,這兩類顯
示器大都需要圖形處理單元(Graphics Processing Unit,簡稱 GPU)輔助顯示處理,減
少顯示工作對中央處理器的依賴,特別是在 3D 繪圖運算時,GPU 的功效更加明顯。目
前 GPU 常以不同形式出現,大型顯示器的 GPU 常與其他零組件組成顯示卡,中型顯示
器則可能將 GPU 晶片直接內嵌到系統主機板上。GPU 的工作原理頗為複雜,不在此討
論。在此只討論微控制機常使用的小型尺寸顯示器介面晶片。

AC20410_04.indd 156 7/9/2020 15:42:43


Chapter 4 │資料串 / 並列傳輸 157

4-5-1 常見顯示晶片概述
小型尺寸顯示器大都應用在較小型系統,需要顯示資訊較少,常見的顯示形式有
LED(發光二極體)、七段顯示器、矩陣式 LED、LCD(液晶顯示器)、OLED LCD 等,
這些顯示裝置,可視需要配合不同的驅動與控制晶片方便應用。

1. 八位數共陰七段顯示器驅動晶片 MAX7219:MAX7219 是 MAXIM 公司生產的 IC,


外觀上是一個 24 接腳的 DIP 封裝,只需透過 SPI 三線串列傳輸介面,即可控制 8 位
數共陰七段顯示器,內部還有一個 8×8 的靜態 RAM 用來存儲每一個數據。同時支
援多個 MAX7219 串聯方式,這樣微控制機就可以通過 SPI 的 3 條線控制更多的 7 段
顯示器或 8×8 矩陣式 LED。

圖 4-30 MAX7219 應用電路

2. 多功能的 LCD 驅動器 HT1621:HOLTEK HT1621 是一款 128 個位元的 32X4 LCD
控制元件,內部 RAM 直接對應 LCD 的顯示單元。微控制機和 HT1621 的接腳只有 4
線或 5 線串列傳輸,HT1621 內置的省電模式與節電命令用於降低系統功耗。
3. HD44780 組 成 液 晶 顯 示 模 組: 日 立(Hitachi) 的 HD44780 系 列 控 制 晶 片, 組 成 液
晶顯示模組(LCM),最多可顯示 80 個文數字,並列傳送要顯示文字的 ASCII 碼給
LCM,即可顯示該字元於 LCM 面板上,使用上相當方便。
4. 繪圖型液晶顯示驅動器 SED1520:是一種點陣圖形式液晶顯示驅動器,它可直接與 8
位元微處理機相連,具有 16 個行驅動和 16 個列驅動,廣泛應用於點陣數較少的液晶
顯示模組。

AC20410_04.indd 157 7/9/2020 15:42:43


158 微處理機

4-5-2 HD44780 簡介
小型 LCD 組合其他控制元件成為容易使用的顯示裝置稱為 LCM(液晶顯示模組),
HD44780 系 列 晶 片 可 組 成 繪 圖 型 LCM 及 文 字 型 LCM 兩 種, 其 中 文 字 型 LCM 支 援
8bits 並列資料傳輸,最多可以顯示 80 個字,提供多種彈性的顯示大小,例如 16 字 ×2
列、20 字 ×2 列、40 字 ×2 列。

HD44780 系列文字型 LCM 使用極為簡便,只要將欲顯示文數字的 ASCII 碼 送 至


LCM 即可顯示該字碼的符號,由字型產生記憶體(CGROM)儲存 5×7 各字碼的顯示
資料。目前市面常見 HD44780 相容晶片,使用與控制方式都類似,LCM 外觀上大多為
14 支接腳(無背光板)或 16 支接腳(有背光板),接腳序、名稱與功能如下表所示。

表 4-14 HD44780 系列晶片 LCM 接腳與外觀


接腳序 名稱 特性 功能
1 VSS 電源 接地(0 V)
2 VDD 電源 電源(+5 V)
3 Vo 控制 顯示明暗對比控制
暫 存 器 選 擇(Register Select):
4 RS 控制 RS = 0,選擇指令暫存器。
RS = 1,選擇資料暫存器
讀 / 寫(read/Write)選擇:
5 R/W 控制 R / W = 0,將資料寫入 LCD、
R / W = 1,自 LCD 讀取資料
6 EN 控制 致能(Enable)LCD,負緣動作
7 ~ 14 D0 ~ D7 資料 LCD 資料線

一 HD44780 內部方塊
HD44780 的內部方塊如圖 4-31 所示,由微處理機連接 RS、R/W 與 EN 控制接腳與
LCM 溝通,傳送命令給 HD44780 到指令暫存器,並經指令解碼器解碼,決定工作細項。
大部分的工作是由 D7 ~ D0 輸入要顯示的資料,然後到字形產生記憶體(CGROM)取
得對應的字型,送至顯示記憶體(DDRAM)指定位置,完成顯示工作。以下分別說明
各個方塊的功能。

AC20410_04.indd 158 7/9/2020 15:42:44


Chapter 4 │資料串 / 並列傳輸 159

圖 4-31 HD44780 內部方塊圖

1 記 憶 體: HD44780 內 部 包 括 DDRAM、CGROM 與 CGRAM 三 種 記 憶 體,


DDRAM 儲存在 LCD 正顯示的字碼、CGROM 儲存顯示的字形資料、CGRAM
則提供使用者自創字形。

1. 資料顯示記憶體 (Data Display RAM,簡稱 DDRAM)80Bytes,最多顯示


80 個字,可彈性規劃成不同顯示模式,例如 16 字 ×1 列、16 字 ×2 列、20
字 ×1 列、20 字 ×2 列、40 字 ×2 列 等, 其 中 16 字 ×2 列 或 20 字 ×2 列
為較常見的產品包裝。將 ASCII 碼儲存在 DDRAM 的不同位址,就可以顯
示 在 LCD 的 不 同 位 置, 如 果 1 列 顯 示 80 個 字 則 依 序 放 在 位 址 00H ~ 4FH
即可,如果為 2 列,每列 16 字,記憶體位址與顯示位置關係如下所示,第 1
列第 1 個位置為 00H,第 2 列第 1 個位置為 40H。
表 4-15 2 列 16 字位址編碼
位置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
列次
第1列 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
第2列 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F

2. 內 建 字 形 產 生 器 (Character Generate ROM, CGROM), 存 放 現 成 的 5×7


字 型 160 個。 使 用 者 不 可 以 更 改 CGROM 內 容, 只 要 將 字 型 ASCII 碼 寫 入
DDRAM 指 定 位 置( 址 ) 中, 系 統 會 自 動 到 CGROM 存 取 字 形 資 料 顯 示 在
LCD 螢幕指定位置。

AC20410_04.indd 159 9/9/2020 11:55:50


160 微處理機

3. 自 建 字 型 產 生 器 (Character Generate RAM, CGRAM), 可 自 建 8 個 5×8


字型,而要顯示字元時,其字型編碼為 00H ~ 07H。

2 旗標:忙碌旗標(Busy Flag,簡稱 BF)用來告訴微處理機,LCM 內部是否忙碌。


1. 如果 BF = 1,表示 LCM 忙碌,正在處理內部的工作,所以在此時不能將資
料寫入 LCD。
2. 反之,當 BF = 0,表示 LCM 有空,微處理機可將資料寫入 LCM。
3. 當接腳 RS = 0 且 R / W = 1 時,忙碌旗標會由 D7 輸出。

3 控制接腳與暫存器: LCM 由控制信號 RS 來選用 2 組 8 位元暫存器,包括指令


暫 存 器(Instruction Register, 簡 稱 IR) 和 資 料 暫 存 器(Data Register, 簡 稱
DR),如表 4-15 所示。

表 4-15 控制接腳功能說明
EN R/W RS 功能說明
0 × × 不動作
1 0 0 將指令寫入 LCM 指令暫存器 IR
1 0 1 將資料寫入 LCM 之 RAM 中
1 1 0 由 LCM 之資料暫存器 DR 讀取資料
讀取忙碌旗標 BF 及位址計數器 AC 之內容,其
1 1 1
中 DB7 = BF,DB6 ~ DB0 = AC

  指令暫存器 IR 用來接收微處理機送來的命令,例如清除顯示,功能設定
等, 而 資 料 暫 存 器 DR 則 用 來 接 收 微 處 理 機 要 寫 到 DDRAM( 共 80Byte) 或
CGRAM(共 64Byte)的資料緩衝區,而寫入 RAM 的位址(位置)是由 LCM
內部的位址計數器 (Address Counter,簡稱 AC) 指定。綜上所論:

1. R / W = 0 且 RS = 0 時 D7 ~ D0 為命令,在 EN 由 0 轉為 1 時送至 IR。


2. R / W = 0 且 RS = 1 時 D7 ~ D0 為資料,在 EN 由 0 轉為 1 時送至 DR 與 DDRAM。

4 位址計數器 AC: 用來指定要存取的 DDRAM 和 CGRAM 的位址,設定指令將


位址寫入 IR 暫存器之後,LCD 內部控制電路會將 IR 暫存器的內容送至 AC,
當寫入顯示資料之後,AC 便會自動加 1 或減 1。

AC20410_04.indd 160 7/9/2020 15:42:44


Chapter 4 │資料串 / 並列傳輸 161

  LCM 可以接受微處理機送至 IR 暫存器的命令,並加以解碼、執行,常用


指令如表 4-16 所示,除了清除顯示器和游標歸位兩道指令的執行時間需 1.64ms
以上外,其餘命令皆 40us 即可完成。
表 4-16 LCM 控制命令表
指令編碼
命令
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1. 清除顯示器 0 0 0 0 0 0 0 0 0 1
2. 游標歸位 0 0 0 0 0 0 0 0 1 X
3. 進入模式設定 0 0 0 0 0 0 0 1 I/D S
4. 顯示器 ON/Off 控制 0 0 0 0 0 0 1 D C B
5. 顯示器或游標移動 0 0 0 0 0 1 S/C R/L X X
6. 功能設定 0 0 0 0 1 DL N F X X
7. CGRAM 位址設定 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0
8. DDRAM 位址設定 0 0 1 AD6 AD5 AD4 AD3 AD2 AD1 AD0

二 微處理機連接 LCM
圖 4-32 顯示 LCM 與微處理機的連接關係,只需 3 條控制線(EN、R/W、RS)、4
或 8 條並列傳輸資料線 DB0-DB7,即可操作 LCM,使用上相當方便。

圖 4-32 微處理機與 LCM 連接

1 寫入時序
1. RS = 0 或 1,選擇操作對象為命令或資料。
2. R/W = 0,表示要進行寫入動作。
3. EN 由低電位轉為高電位,EN = 0 → EN = 1。
4. 將要寫入的資料或命令放入匯流排 DB7 ~ DB0。
5. EN 由高電位轉為低電位,EN = 1 → EN = 0,即可完成對 LCM 的寫入動作。

AC20410_04.indd 161 7/9/2020 15:42:44


162 微處理機

圖 4-33 LCD 資料寫入時序圖

2 讀取動作
1. RS = 0 或 1,選擇操作對象為命令或資料。
2. R/W = 1,表示要進行讀取動作。
3. 送出一個正緣信號脈波給致能信號 EN,EN = 0 → EN = 1,即可對 LCM 進
行讀取動作,資料送到匯流排。
4. 從 D7 ~ D0 取得要讀取的信號。完成後 EN 回復低態,EN = 1 → EN = 0。

圖 4-34 LCD 資料讀出時序圖

AC20410_04.indd 162 7/9/2020 15:42:45


Chapter 4 │資料串 / 並列傳輸 163

三 LCD 初始化流程
LCM 在 送 電 後, 微 處 理 機 必 須 規 劃 LCM 的 各 項 功 能 或 工 作 模 式, 如 圖 4-35 所
示,LCM 才能正常工作,這個動作稱為 LCM 初始化。首先要設定資料匯流排的寬度
為 8bits 或 4bits。如採 4bits 介面,可以減少微處理機的接腳使用,此時低 4 位元 DB3..
DB0 不用,8bits 資料需要送兩次,先送高 4 位元、再送低 4 位元。決定匯流排寬度後,
再進行其他規劃。

圖 4-35 LCD 初始化流程

4-5 隨堂練習
1. 大型顯示器通常需要用         輔助顯示處理,減少顯示工作對 CPU 的
依賴。

2. HD44780 組成的 LCM 控制接腳有     、     與     三支。

3. 晶美針對使用 HD44780 系列液晶顯示器使用經驗描述,何者有誤?     


(A) 微處理機只需 10 支 I/O 接腳即可完成電路。
(B) 可以將自建字型放在 CGROM,隨時取用,具非揮發性。
(C) 可以讀取忙碌旗標 BF 得知 LCM 是否有空?

AC20410_04.indd 163 7/9/2020 15:42:45


164 微處理機

Chapter 4 學習目標回顧

學習目標 1:能區別各種傳輸的類型
1. 微處理機與外界週邊裝置透過匯流排或傳輸線傳輸資料,若只用一條資料線,
每次傳送一個位元,稱為「串列(Serial)通訊」;若是使用多條資料線,每次
傳送多位元,稱為「並列(Parallel)通訊」。
2. 串列與並列傳輸轉換如下圖所示:

學習目標 2:能說明非同步串列傳輸格式
3. 非同步串列通信的資料格式如下圖所示:

學習目標 3:能列舉常見的串列傳輸標準
4. 串列資料傳輸系統中,常將設備分為 DTE 與 DCE 兩類。DTE 是指電腦主機,
DCE 則是通訊設備,如 MODEM(調變與解調變信號的數據機)。
5. EIA 制 定 RS-232, 為 常 見 的 非 同 步、 全 雙 工 串 列 傳 輸 標 準, 傳 輸 距 離 約
16m,傳輸速度 20Kbps。
6. SPI 與 IIC 特性比較如下表:

比較項目
SPI IIC
類別
傳輸模式 全雙工、同步、串列 半雙工、同步、串列
連接線 4 條 SCLK、MISO、MOSI、SS 2 條 SCL、SDA
傳輸速率 較快,5M/10M/20Mbps 較慢,100Kbps/400Kbps/3.4Mbps
7. USB 最大特點為支援熱插拔(Hot Plug)和隨插即用(Plug and Play, PnP)。
8. USB 連接方式採「階梯式星狀拓僕 (tiered star topology)」結構,可透過 hub(集
線器)擴充連接的裝置數量至 127 個。

AC20410_04.indd 164 7/9/2020 15:42:46


Chapter 4 │資料串 / 並列傳輸 165

Chapter 4 學習目標回顧

9. NRZI 編 碼 方 式 希 望 在 準 位 信 號 內 夾 帶 了「 同 步 時 脈」 信 號, 達 到 傳 送 與 接
收雙方同步的目的,傳送端先將原始資料進行 NRZI 編碼再傳送出去,接收端
再進行解碼。
10. USB 傳 輸 類 型 有 控 制 型 傳 輸、 中 斷 型 傳 輸、 巨 量 型 傳 輸 與 等 時 型 傳 輸 四 種
類型,而慢速裝置通常只有支援控制型與中斷型傳輸。
學習目標 4:能描述交握式資料傳輸的原理
11. 閃控式傳輸分為來源觸發與目的觸發兩種,如下圖所示:

(a) 來源觸發 (b) 目的觸發


12. 交握式傳輸也分為來源啟動與目的啟動兩種,如下圖所示:

(a) 來源啟動 (b) 目的啟動


學習目標 5:能列舉常見的並列傳輸標準
13. 印表機介面(LPT)是最典型的 8 位元並列傳輸介面,傳輸線包括資料匯流排、
控制匯流排與狀態匯流排三種。
14. IEEE-488 主 要 用 於 短 距 離 通 信 的 匯 流 排 規 範, 也 稱 為 GPIB, 是 24pin 的
8bits 並列雙向匯流排,廣泛用在測試、量測領域以及儀器控制的通 訊介 面。
GPIB 傳輸速率最高可達 8Mbps,可連結一個系統控制器以及最多 14 台儀器,
纜線最長可達 20 公尺。
15. IEEE 488 匯 流 排 根 據 裝 置 控 制 匯 流 排 的 時 機 不 同, 可 區 分 成 控 制 器
(Controller)、發話者(Talker)、收聽者(Listener)三種角色。
16. HD44780 系 列 晶 片 可 組 成 繪 圖 型 LCM 及 文 字 型 LCM 兩 種, 其 文 字 型 LCM
支援 8bits 並列資料傳輸,最多可以顯示 80 個字。

AC20410_04.indd 165 7/9/2020 15:42:47


166 微處理機

Chapter 4 課後習題

選擇題
4-1 1. 下列對單工、半雙工與全雙工的敘述何者有誤?
(A) 同一時間可以發送與接收,則稱為全雙工
(B) 現在使用的電話屬於半雙工
(C) 數位無線電視微電腦對印表機為單工
(D) 如果一方只能發送資料,另一方只能接收資料,則稱為單工

2. 串列方式的傳送是指一次傳送
(A) 一個位元 (B) 兩個位元 (C) 四個位元 (D) 八個位元。

3. 無線電視台所使用之傳輸方式為下列何者?
(A) 單工(Simplex) (B) 半雙工(Half-duplex)
(C) 全雙工(Full-duplex) (D) 多工(Multiplex)。

4-2 4. 在工廠中相距 500 公尺的兩部電腦要連線,使用下列何種介面最為適當?


(A) RS-232 (B) USB (C) 並行印表機埠 (D) RS-485。

5. 在非同步串列傳輸中,其資料傳輸速率(data rate)為 2500 bps,當傳輸


格式為 1-bit 起始位元、8-bit 資料位元、無同位位元、且設 1-bit 結束位
元時,連續傳送 1000 個字元(character)所需之時間為:
(A) 0.5 sec (B) 4 sec (C) 1.2 sec (D) 3.2 sec。

6. 圖 (1) 為一標準非同步串列傳送信號(含有 START、同位和 STOP 等位


元),試問此信號 所傳送的資料值(data)為何?
(A) 00111010 (B) 01110100 (C) 10100111 (D) 11010011。

圖 (1)

7. 在 RS - 232 中,奇偶位元檢查(parity check)的作用為何?


(A) 當作非同步傳送的開始位元 (B) 保護傳送資料的完整性
(C) 當作非同步傳送的結束位元 (D) 當作傳送端的參考電位。

AC20410_04.indd 166 7/9/2020 15:42:47


Chapter 4 │資料串 / 並列傳輸 167

Chapter 4 課後習題

8. 以 RS232 進行虛擬數據機(Null Modem)串列傳輸時,若欲達成全雙工


(Fully Duplex;可雙向同時傳輸),則至少需幾條傳導線?
(A) 1 條 (B) 2 條 (C) 3 條 (D) 4 條。

9. 下列串式傳送資料的敘述,何者正確?
(A) 同一個時脈傳輸所有位元
(B) 遠距離傳送資料時,串列式成本比平行式高
(C) 應用開始控制位元和停止控制位元不同狀態之變化,以區分兩筆資料
(D) 資料傳送速率單位為 byte。

10. 採用奇同位(odd parity)錯誤偵測法傳送 7 位元資料,下列四項接收資


料何者法發生錯誤?
(A) 11001100 (B) 10101011 (C) 10010001 (D) 11010101。

11. 某筆資料共 1200bytes,今以每個資料框(frame)包含 1 位元起始位元,


8 位元資料,2 個停止位元,沒有同位位元之非同步串列方式傳輸,共需
5.5 秒才能傳完,則此串列傳輸隻鮑率應為
(A) 300bps (B) 1200bps (C) 2400bps (D) 4800bps。

12. 有個數據傳輸機(MODEM)資料框為起始位元 1bit、資料 8bits、偶同


位 1bits、 結 束 位 元 2bits, 當 使 用 4800 鮑 率(Baud Rate) 來 進 行 串 列
資 料 傳 輸, 連 續 傳 送 10 秒, 則 共 計 可 傳 送 多 少 有 效 位 元 組(byte)?
(A) 6000 (B) 4000 (C) 3000 (D) 2400。

13. 假設某筆資料共 2400Bytes,今以每個框(Frame)包含 8 個資料位元,


1 個起始位元,2 個停止位元,沒有同位位元之非同步串列方式傳輸,共
需要 5 秒才能傳完請問此串列傳輸之鮑率應為
(A) 1920 (B) 3840 (C) 5280 (D) 10560 bps。

14. RS-232 界面邏輯狀態為 "1" 時,其電壓值是


(A) +3V ~ +5V (B) +3V ~ +15V (C) –3V ~ –15V (D) –3V ~ –5V。

15. 標準的 RS-232C 所能傳輸的距離為


(A) 15 公尺 (B) 20 公尺 (C) 25 公尺 (D) 30 公尺。

AC20410_04.indd 167 7/9/2020 15:42:48


168 微處理機

Chapter 4 課後習題

4-3 16. 具有熱插拔特性的界面為


(A) PCI 界面 (B) ISA 界面 (C) USB 界面 (D) AGP 界面。

17. 下列何者不是使用串列式的方式傳輸資料?
(A) IEEE-1394 (B) PCI (C) RS-232C (D) USB。

18. 有關 USB 的敘述,下列何者有誤?


(A) 介面包含電源 (B) 介面僅能輸出訊號
(C) 為串列介面 (D) USB 3.0 傳輸速度比 USB 2.0 快。

19. USB 介面在高速傳輸(High speed)模式時,每秒最快傳輸速度為下列何


者? (A) 1.5M Bits (B) 12M Bits (C) 12M Bytes (D) 60M Bytes。

4-4 20. 下列有關並列資料轉移之描述,何者不正確?


(A) 高速需求的資料轉移,通常利用同步方式
(B) CPU 和 SDRAM 之資料轉移方法屬於同步方式
(C) 低速需求的資料轉移,通常利用非同步方式
(D) 同步方式之控制方法包括閃脈(strobe)及交握式(handshake)。

21. 一個並列式 I / O 的結構,當資料備妥時會以負向脈波告知資料接受端,


其動作時序圖 應為下列何者?

(A)

(B)

(C)

(D) 。

AC20410_04.indd 168 7/9/2020 15:42:49


Chapter 4 │資料串 / 並列傳輸 169

Chapter 4 課後習題

22. 下列非同步並列資料傳輸的敘述何者有誤?
(A) 閃控式的缺點是無法確定接收裝置是否確實收到資料
(B) 交握式增加資料有效與資料收到兩條交握信號線,以確保資料傳輸完整性
(C) 採用閃控式來源觸發時,來源裝置先觸發目的裝置,再備妥資料
(D) 採用交握式時,來源裝置可由「資料收到」得知目的裝置已收到資料。

23. LPT port 屬於下列哪一種電腦傳輸規格?


(A) Parallel (B) Serial (C) IDE (D) SATA。

24. 輸入 / 輸出介面一般可區分為並列與串列,下列哪一種介面與其他三種不
屬於同一類型?
(A) RS-232 (B) USB (C) IEEE-488 (D) IEEE-1394。

4-5 25. 以下針對 HD44780 組成的 LCM 的控制接腳功能說明,何者有誤?


(A) RS = 1 表示選擇指令暫存器
(B) EN 為致能接腳
(C) R/W = 0 時表示要寫入資料或命令到 LCM
(D) RS = 0 且 R/W = 1,可由 D7 讀到忙碌旗標。

問答題
1. 請比較串列通訊與並列通訊?

2. 資料傳輸依據同步與非同步、串列與並列的不同,可分為哪四類?

3. 請試著比較 SPI 與 IIC 兩種短距離串列傳輸標準。

4. USB3.2 採用的 Type-C,有哪些特色?

5. 微處理機 如何連接 HD44780 組成的 LCM 完成顯示初始化工作。

AC20410_04.indd 169 7/9/2020 15:42:49


170 微處理機

AC20410_04.indd 170 7/9/2020 15:42:49


教學節數

ap
ter 3
5 中斷

Ch

本章節次 學習目標
5-1 中斷的認識 1. 能說明輪詢式與中斷的不同。
5-2 中斷控制原理及優先次序 2. 能列舉中斷分類方式。
5-3 中斷式資料傳輸原理 3. 能描述中斷資料傳輸的工作步驟。
5-4 常用中斷控制器晶片 4. 能描述 PIC 的應用功能。
學習目標回顧
課後習題

AC20410_05.indd 171 7/9/2020 15:43:37


172 微處理機

5-1 中斷的認識
當某人正在專心做一件事,突然收到外來的訊息(或狀況)需要暫時中斷手上的
工作,而去處理外來的工作;處理完畢後,應隨即回到剛剛中斷的工作,繼續處理。以
CPU 與 IO 之間的資料傳輸為例,CPU 正在執行使用者交付的功能(程式),但是 IO
隨時都可能有輸入或輸出資料的需求,CPU 必須想辦法因應。CPU 與 IO 之間的資料傳
送可分成兩類:

1. 程式化 (Programmed)I/O,又稱 輪詢式 (Polling)I/O。


2. 中斷式 (Interrupt)I/O。
舉例來說明二種方式的差異,假設 CPU 連接 A、B、C 三個週邊裝置,所謂輪詢式,
CPU 首先詢問 A 是否有資料傳輸的需求?如果沒有,再詢問 B 是否有資料傳輸的需求?
如果沒有,再詢問 C 是否有資料傳輸的需求?同樣地過程一直重複,週而復始詢問 A、
B、C 是否有資料傳輸的需求?當然,如果某週邊裝置有資料傳輸需求,就進行資料傳
輸工作,傳輸完畢後,又同樣重複詢問 A、B、C。所以在整個資料傳輸過程,CPU 都
很忙碌,如果週邊裝置有資料傳輸需求,CPU 則進行資料傳輸工作;即使沒有任何週邊
裝置有傳輸資料需求,CPU 仍不間斷地輪流詢問設備 A、B、C 工作原理,如圖 5-1 所示。

以程式化 I/O 方式執行資料傳輸時,完全由 CPU 控制與監督整個資料傳輸過程。


CPU 必須輪流詢問各台週邊設備是否有資料傳輸的需求,影響 CPU 執行其他工作的時
間,這對 CPU 而言是相當沒有效率的。

圖 5-1 輪詢式 I/O 工作原理

AC20410_05.indd 172 7/9/2020 15:43:37


Chapter 5 │中斷 173

I/O 裝 置 資 料 傳 輸 速 度 通 常 較 慢, 如 果 採 用 程 式 化 I/O 將 浪 費 CPU 的 執 行 效 率,


CPU 必須不斷地詢問週邊裝置是否要輸出或輸入資料?例如鍵盤,CPU 持續不斷地偵
測使用者是否按了按鍵?如果直到第 5 秒鐘時使用者才按了一次按鍵,那麼 CPU 前五
秒鐘的等待似乎都是白費了!

而中斷方式則衍生自週邊設備的速度跟不上 CPU,如果以程式化 I/O 的方式,每一


道 CPU 與 IO 之間的資料傳輸都需 CPU 監視,CPU 幾乎都是在等待週邊設備的回應,
而使 CPU 工作效率降低。這個缺點可以用中斷來避免,中斷式是當週邊設備有資料傳
輸需求時才向 CPU 發出中斷請求,通知 CPU 傳送下一筆資料,或當週邊備妥資料,通
知 CPU 來讀取資料。在週邊處理資料的同時,CPU 可執行其他工作,直到週邊發出中
斷請求,再進行與週邊之間的資料傳輸工作,工作原理如圖 5-2 所示。

圖 5-2 中斷式 I/O 工作原理

以上例而言,中斷式有很大的不同,CPU 平時執行其他工作,不需理會週邊裝置 A、
B、C 是否有資料傳輸的需求。當 A 或 B 或 C 希望與 CPU 進行資料傳輸時,會主動發
出「中斷請求」,告知 CPU 有傳輸資料的需求,此時 CPU 會依狀況決定是否接受中斷,
如果接受中斷請求,大抵會送回「中斷認可」信號表示接受中斷,並進行資料的傳輸。

中斷式資料傳輸對 CPU 而言,執行效率較高,僅於週邊裝置有需求時才撥空處理,


平時專心執行其他工作。如圖 5-2 所示的例子,平時 CPU 執行「主程式」,不需理會
裝置 A、B、C。例如此時裝置 A 提出「中斷請求」,主程式正執行到「N=N+1」這行
程式,CPU 會將它執行完畢,並記錄目前狀態,以便返回繼續執行。之後暫停主程式,
跳到「A 服務」中斷服務程式執行,執行完畢後,再讀取剛剛記錄的狀態,回復至原本
中斷前的狀態,返回主程式,繼續執行下一行「A=N*4」。

AC20410_05.indd 173 7/9/2020 15:43:37


174 微處理機

5-1 隨堂練習
1. CPU 與 I/O 之間的資料傳輸方式可分為      與      二類。

2. CPU 採用中斷方式服務 I/O 時,I/O 有服務需求時會向 CPU 發出      訊號,


如果 CPU 同意服務,會以      訊號回覆 I/O,再進行服務工作。

5-2 中斷控制原理及優先次序
中斷提高微處理機對週邊的工作效率,這節會先談論中斷的控制原理,並瞭解何謂
中斷服務程式與中斷向量、中斷的發生過程。另外,當微處理機可以接收多個中斷來源
時,同時收到多個中斷請求,到底誰先誰後,也就是中斷優先權的問題。

5-2-1 中斷控制原理
微處理機的中斷來源分為硬體中斷(又稱外部中斷)與軟體中斷(又稱內部中斷)。
硬體中斷是指由外界(接腳)送中斷請求信號至 CPU 的接腳 INTR,由 CPU 判斷是否
允許發生中斷的一種模式。而軟體中斷則是由是透過作業系統提出中斷指令,如 INT 命
令、除 0 錯誤、計時中斷等所觸發的中斷。

一 硬體中斷的發生
硬 體 中 斷 除 了 系 統 的 重 置 中 斷( 重 新 開 機 ) 外, 還 分 為 可 遮 罩 中 斷(Maskable
Interrupt,簡稱 MI)與不可遮罩中斷(Non-Maskable Interrupt,簡稱 NMI)兩種。當
NMI 硬體中斷發生時,無論 CPU 正執行何種工作,都需要中斷下來,執行所要求的工
作,此種中斷具有較高的優先順序,一旦發生不容許 CPU 延宕,例如斷電、資料發生
同位錯誤等,所以 NMI 並不需要 CPU 回應 INTA(Interrupt Acknowledge,中斷認可)。
如 圖 5-3 所 示,CPU 對 外 與 中 斷 有 關 的 硬 體 接 腳, 除 了 NMI、INTA 外, 還 有 INTR
(Interrupt Request,中斷要求)。INTR 用來接收外界的可遮罩式中斷要求,由 CPU
決定要否接受中斷?如果接受中斷,則以 INTA = 0 回應,表示 CPU 已接受所要求的中
斷,將進行指定的中斷服務。

AC20410_05.indd 174 7/9/2020 15:43:38


Chapter 5 │中斷 175

可遮罩中斷發生時,CPU 是否接受中斷請求,取決於 清除中斷 (Clear Interrupt,


簡稱 CLI)與 設定中斷 (Set Interrupt,簡稱 STI)兩個指令。當執行 CLI 指令後,CPU
清除中斷旗標 IF = 0,將不接受可遮罩中斷請求;反之,若執行 STI 後,CPU 設定 IF =
1,將會認可可遮罩中斷請求,並發出 INTA 回應。

圖 5-3 可遮罩中斷示意圖

二 軟體中斷的發生
執行「INT nn」指令,系統將發生「軟體中斷,編號 nn」,屬於不可遮罩中斷。
與硬體中斷不同的是,軟體中斷是由程式中的 INT 指令引發,而硬體中斷則是由 CPU
的 INTR 或 NMI 接腳引發。nn 代表中斷的編號,不同的中斷號碼表示不同的中斷服務,
會執行該編號對應的中斷副程式。

三 與中斷相關的旗標暫存器
執行 STI 指令,會令 中斷旗標 (Interrupt Flag)IF = 1,反之,CLI 指令則 IF=0。
如果 IF=1,從 INTR 進來的中斷將可被接受,反之,IF = 0,從 INTR 進來的中斷將被
拒絕。但對於從 NMI 接腳進入或軟體中斷 INT nn 指令發生的中斷,則沒有影響。

旗標暫存器的 TF(Trace Flag)為單步旗標,當需要每執行一個指令,就觀察一次


CPU 暫存器與系統記憶體等相關資料,即單步(Single step)執行,或稱為追蹤(Trace)。
要進行單步執行時,需要設定 TF = 1,則每次執行一個指令後,可讓 CPU 執行「將暫存
器值顯示到螢幕」的服務副程式,程式設計時,方便程式設計師除錯觀察執行狀況。

AC20410_05.indd 175 7/9/2020 15:43:38


176 微處理機

四 中斷控制執行步驟
如圖 5-4 簡單示意 CPU 與記憶體之間在中斷發生時的執行狀態。假設目前正在執行主程
式的「N = N + 1」這行指令,此時,週邊裝置需要中斷服務,向 CPU 的硬體中斷接腳 NMI
或 INTR 發出。CPU 決定要接受中斷並進行中斷服務,進行的過程如圖 5-4 中 1 ~ 6 所
 示。

圖 5-4 中斷執行步驟

1 週邊透過 INTR 向 CPU 發出中斷請求,CPU 以回覆 INTA 表示同意接受中斷請求。


2 首先進行中斷的準備工作,例如將目前執行狀態暫時儲存起來,即 PC(下一個指
令執行位址)與 FR(旗標暫存器)PUSH(堆入)到堆疊中。堆疊是在主記憶體
中規劃一塊空間來使用,利用先進後出的順序來操作,寫入資料稱為 PUSH、讀
取資料稱為 POP,先堆入的資料會被壓在下方,POP 時由最上方讀取。此時會先
PUSH FR、再 PUSH PC。

3 CPU 依據中斷的來源與需求,判斷應執行的「中斷副程式所在位址」,放入 PC。


4 開始執行中斷副程式。此時視需要清除中斷致能旗標(IF)與單步旗標(TF),
即 IF = 0、TF = 0。IF = 0 將使來自 INTR 的中斷被遮罩(即被忽略,不再發生)。
而 TF = 0 將使待會兒執行中斷副程式不採單步執行模式。

5 一直執行,直到中斷副程式最後一行為 IRET(中斷返回)表示執行完畢,準備要
返回主程式。

6 最後,由堆疊中取出暫存的執行狀態,先 POP PC、再 POP FR,返回主程式「N


= N + 1」下面一行「A = N*4」繼續執行。

AC20410_05.indd 176 7/9/2020 15:43:38


Chapter 5 │中斷 177

5-2-2 中斷向量與中斷副程式
微處理機必須接收多個中斷來源,包括軟體中斷與硬體中斷,每個中斷發生時,應
執行的中斷服務或工作都不一樣,稱為 中斷服務副程式 (Interrupt Service Routinue,
簡 稱 ISR)。 對 於 發 生 中 斷 時, 指 向 中 斷 服 務 程 式 位 址 的 方 法 有 兩 種, 一 為 向 量 式,
另一種為非向量式。向量式中斷將每個中斷編上號碼,依據中斷號碼向「 中斷向量表
(Interrupt Vector Table,簡稱 IVT)」查詢中斷服務程式的位址。通常中斷向量表會
放在記憶體的最前面。非向量式中斷則是眾多中斷號碼共用同一個存放中斷服務程式的
位址,執行時在依據編號選擇不同的程式片段,執行不同的工作。

圖 5-5 中斷向量表與中斷執行

假設中斷編號由中斷 0 號、中斷 1 號、…、中斷 N 號。如圖 5-5 所示中斷向量表中,


每個中斷佔用 2bytes 儲存它的「中斷向量」決定中斷服務程式的儲存位置(位址),例
如中斷 0 號用記憶體位址 0000H 與 0001H 儲存中斷 0 號的服務副程式在記憶體的位置,
以 此 類 推, 中 斷 N 號, 則 記 錄 在 (N*2) 與 (N*2+1) 處。 圖 5-5 中 以 中 斷 2 號 為 例, 在
0004H 與 0005H 儲存 2 號的服務副程式位址,即在 3C2AH,當發生 2 號中斷時,CPU
會來 0004H 與 0005H 取得 3C2AH,填入程式計數器 PC,轉往 3C2AH 執行中斷副程式。
這個例子中,每個中斷向量佔 2bytes,在不同微處理機會依據需求有不同大小。

AC20410_05.indd 177 7/9/2020 15:43:38


178 微處理機

以 Intel 的 x86 系 列 CPU 為 例, 中 斷 發 生 表 5-1 中斷向量表


時,CPU 是 依 據 儲 存 在 主 記 憶 體 最 前 面 1KBytes 中斷號碼 實際位址

(00000H ~ 003FFH)的「中斷向量表」決定中斷服 INT 00H 00000

務程式的儲存位置,如表 5-1,共有 256 個中斷向量, INT 01H 00004


INT 02H 00008
每 個 中 斷 向 量 佔 4Bytes。 最 前 面 五 個 中 斷(INT0 ~
INT 03H 0000C
INT4)為特殊中斷,如除零中斷、單步執行與溢位中
INT 04H 00010
斷 等。INT5 ~ INT31 則 是 預 留 給 未 來 的 微 處 理 機 使
INT 05H 00014
用。INT32 ~ INT255 可 供 使 用 者 規 劃 為 硬 體 中 斷 或
…… ……
軟體中斷使用。
INT FFH 003FC

對 CPU 的硬體接腳而言,只有 NMI 與 INTR 兩支接腳容許發生中斷,其中 NMI 用


於 INT 02H,當 NMI 被激能時,CPU 會自動跳到 2 號中斷向量 0008 所指定的位址執行
中斷服務程式。如果其他週邊裝置的硬體中斷需共用 INTR,需利用可程式中斷控制器
擴充中斷數目,例如 8259A 晶片,接收多個硬體中斷請求,經過處理後,接至 INTR 接
腳,以引發不同編號的硬體中斷。

5-2-3 中斷優先權
當 A、B、C 三 個 I/O 裝 置 同 時 發 出 中 斷 要 求,CPU 必 須 先 判 斷 要 接 受 那 一 個 裝
置中斷要求?這也就是中斷優先權的問題。常用來解決中斷優先順序的方法有 輪詢式
(Polling)、 菊鍊式 (Daisy-chain)與 平行式 三種中斷優先權控制方式。

一 輪詢式中斷優先權控制
使用此方法採非向量中斷,所有中斷可共用同一個中斷服務程式存放位址,按 CPU
詢問(測試)的次序決定各中斷的的優先順序。最高優先的 I/O 裝置先詢問是否有中斷
要求?再詢問次高優先的 I/O 裝置先詢問是否有中斷要求?

用軟體或硬體都可達成輪詢式的中斷優先權判斷,但用軟體的缺點是,當連接多個
IO 裝置時,詢問將花費相當多時間,可能超過實際執行中斷服務程式的時間。使用硬體
電路可以提高輪詢式中斷優先的操作速度。

CPU 每隔一段時間,主動詢問外部裝置「是否需要服務(資料傳輸的需求)?」,
由第 1 個裝置開始詢問,該裝置如果有中斷服務需求,CPU 馬上進行服務。如果沒有,
則繼續詢問下一個裝置,直到最後一個裝置,然後再由第 1 個裝置詢問,週而復始這樣
的動作。

AC20410_05.indd 178 7/9/2020 15:43:39


Chapter 5 │中斷 179

輪詢式每個裝置都有均等的服務機會,輪流被 CPU 服務,是「機會均等」的設計,


也就是沒有「優先權」可言,但對 CPU 來講是非常沒有效能的,即使裝置沒有任何中
斷請求,CPU 也要詢問其「是否需要中斷服務?」。

二 菊鍊式中斷優先權控制
菊鍊式的前提是,必須採向量式中斷,每個中斷源必須有自己的中斷服務程式的儲
存位址,一旦 CPU 接受該中斷源的中斷要求,就會跳到該中斷源對應的中斷向量取得
中斷服務程式的存放位址。

菊鍊式是以串接方式連接 I/O 裝置,如圖 5-6 所示,最高優先權 I/O 裝置放在第一


個位置,如圖中裝置 A,以此類推,最低優先權 I/O 裝置放在最後位置,如圖中裝置 Z。
所有裝置共用中斷要求信號線,當中斷要求信號線為低電位,表示某一個裝置發出中斷
要求(假設裝置 D 發出中斷要求),但 CPU 目前並不知哪一個裝置發出中斷要求,甚
至可能兩個以上的裝置同時發出中斷要求。

CPU 認可中斷後,發出中斷認可信號給最高中斷優先權裝置 A 的 PI,如果裝置 A


沒有中斷要求,則將中斷認可信號由 PO 送給裝置 B 的 PI,同樣地,裝置 B 如果沒有中
斷要求,再繼續傳遞中斷認可信號。中斷認可信號的傳遞過程即為「裝置 A-PI → 裝置
A-PO → 裝置 B-PI → 裝置 B-PO → ……」。如果是裝置 D 發出中斷要求,則當傳遞到
裝置 D 時,裝置 D 將自己的中斷向量位址放入資料匯流排,通知 CPU,讓 CPU 執行裝
置 D 的中斷服務程式。當然裝置 D 將截斷中斷認可信號,不會將中斷認可信號傳給裝
置 E。所以菊鍊式的安排使較高優先權的裝置先收到中斷認可信號,有較高的優先權攔
截中斷認可信號。

圖 5-6 菊鍊式中斷優先處理

AC20410_05.indd 179 7/9/2020 15:43:39


180 微處理機

三 平行式中斷優先權控制
平行式中斷優先權控制是使用遮罩暫存器,每個位元分別對應一個裝置,用以遮蓋
拒絕接受中斷的裝置,如圖 5-7 所示,當遮罩暫存器第 0 位元為 0 時,裝置 A 的中斷要
求信號因 AND 閘開關斷開,輸出一直為 0,而不可能進入 CPU,使該裝置被遮罩,不
得產生中斷請求。

圖 5-7 平行式中斷優先電路

平行式中斷優先權控制方式是使用一個優先編碼器,負責決定裝置 A、B、C、D 的
優先順序,如表 5-2 優先編碼器的真值表,當裝置 A 發出中斷要求,不論其他裝置是否
也同時發出中斷,優先編碼器輸出(O 1、O 0)=(0、0),CPU 得知為裝置 A 發出中斷
要求。當裝置 A 沒有發出中斷要求,而裝置 B 發出中斷要求,不論裝置 C 與 D 是否發
出中斷要求,優先編碼器都輸出(O 1、O 0)=(0、1),告知 CPU 裝置 B 發出中斷要求。
所以優先順序為裝置 A > 裝置 B > 裝置 C > 裝置 D。

表 5-2 優先編碼器的真值表
輸 入 輸 出
備 註
I0 I1 I2 I3 O1 O0 IRQ
1 × × × 0 0 1 裝置 A 發出中斷要求(最高優先)
0 1 × × 0 1 1 裝置 B 發出中斷要求
0 0 1 × 1 0 1 裝置 C 發出中斷要求
0 0 0 1 1 1 1 裝置 D 發出中斷要求(最低優先)
0 0 0 0 × × 0 沒有裝置發出中斷要求

AC20410_05.indd 180 7/9/2020 15:43:39


Chapter 5 │中斷 181

5-2 隨堂練習
1. 除了重置中斷外,硬體中斷還可分      與      二種。

2. 如果中斷向量表起始位址為 0000H、每個中斷向量佔 4Bytes,則 INT 22H 中斷副程


式所在位址存在記憶體哪裡?      

3. 常見的中斷優先權控制為      、      、      三種。

5-3 中斷式資料傳輸原理
輪詢式資料傳輸的程式設計較為單純,只要在負責資料傳輸的主程式撰寫輪流詢問
各裝置是否有需求,如果需要資料傳輸服務則執行資料傳輸服務,執行完成則繼續詢問。
中斷式的資料傳輸的軟體規劃較為複雜,可分「初始化」與發生中斷時「執行中斷
服務」兩個階段進行處理。

一 中斷工作初始化
中斷工作初始化有兩件事要做,應先允許中斷發生,並確定發生中斷後要執行的工作。

1 在主程式進行中斷初始化工作
1. 開啟中斷致能,讓中斷 INTR 可以發生。
2. 確定中斷號碼,設定中斷向量,將中斷服務副程式所在位址填入中斷向量表。

2 中斷服務副程式
1. 撰寫中斷服務程式 ISR 的內容,就是發生中斷後,希望 CPU 執行的工作,
例如輸入資料,或輸出資料。中斷副程式應以 IRET 結束。
2. 將中斷服務副程式常駐於記憶體,即中斷向量表所指記憶體位址,等待發生
中斷時執行。

圖 5-8 中斷的初始化工作

AC20410_05.indd 181 7/9/2020 15:43:43


182 微處理機

完成中斷的初始化工作後,主程式不再需要理會 I/O 裝置,只需要專心執行目前工


作即可。

二  執行中斷服務
當中斷發生時,微處理機會確認是否接受中斷請求?如果認可中斷,則會進入執行
中斷服務程式階段,先進行中斷服務準備,再執行中斷服務程式。

1 中斷服務準備:自動將 FR 與 PC 等相關訊息 PUSH 到堆疊,由發生的中斷號碼,


到中斷向量表取得中斷服務副程式的記憶體位址,填入 PC,開始執行中斷副程式。

2 執行中斷服務程式: 中斷服務程式通常一開始需要儲存許多暫存器的內容,將
暫存器內容推入(PUSH)堆疊中,然後開始執行中斷服務工作。完成工作後,
再由堆疊中取回(POP)剛剛儲存的暫存器值,碰到 IRET 即返回。Pop 堆疊中
的 PC 與 FR 相關資訊,然後返回主程式,繼續執行剛剛程式的下一行。

圖 5-9 顯示主程式與中斷服務程式的程式流程圖,主程式只要執行中斷初始化工作
一次後,即可週而復始、專心地執行其他工作,不需要理會中斷是否發生。

而中斷服務副程式中,通常會先設定 IF = 0 禁止其他中斷的發生,然後儲存一些重
要的暫存器值,依序 PUSH 到堆疊中,再開始執行中斷服務工作。執行完畢後,再反方
向 POP 回存剛剛儲存的暫存器值,再設定中斷旗標 IF = 1,最後返回主程式。

(a) 主程式流程圖 (b) 中斷服務程式流程圖


圖 5-9 中斷式資料傳輸程式流程圖

AC20410_05.indd 182 7/9/2020 15:43:43


Chapter 5 │中斷 183

5-3 隨堂練習
1. 要進行中斷資料傳輸,初始化工作包括致能中斷、        、撰寫中斷服
務程式、        等四個工作。

2. 中斷服務程式遇到哪個指令就會返回主程式:       。

5-4 常用中斷控制器晶片
CPU 通常只有一支負責接收中斷的硬體接腳,例如 INTR,為了能接收眾多裝置的
中斷要求,需要有中斷控制功能,來擴充可接收的中斷來源,8259A 就是一顆 可程式化
中斷控制器 (Programmable Interrupt Controller,簡稱 PIC)」,最多能讓 CPU 擴充成
為可接受 64 個中斷要求的系統。

5-4-1 8259 概述
Intel 公司出產的 8259A 是一顆可程式化中斷控制器,可提供外界(如週邊設備)8
個中斷要求 IR0~IR7,相當方便與 CPU 作連接,接受外界的中斷工作,擴充中斷數目。
也可採兩層串接的工作方式,最多可擴充成接受 64 個中斷要求的中斷處理系統。8259A
的外觀如圖 5-10(a) 所示,共有 28 支接腳。

(a) 8259 外觀 (b) 8259 接腳圖


圖 5-10 8259 外觀與接腳圖

AC20410_05.indd 183 7/9/2020 15:43:44


184 微處理機

圖 5-10(b) 示意,微處理機與 8259 連接概略圖,左側接腳 D0 ~ D7 通常接至 CPU 的資


料匯流排,作為 8259 與 CPU 間資料與命令的傳輸線。而 RD 與 WR 與 CPU 對接,RD = 0
時讀取 8259 狀態暫存器,而 WR = 0 時則是寫入控制字組,用來規劃 8259 的工作模式。
位址線 A0 直接接至 CPU,而高位元 An-1 ~ A1 則經過位址解碼電路解碼後用來選擇
CS,可致能或禁能 8259,由此可知 8259 佔兩個埠位址。A0 與 CS、WR、RD 可決定 CPU
寫入 8259 哪一個初始化命令字組(Initialization Command Word)ICW1 ~ ICW4 進行初始化
設定工作,或 CPU 讀取 8259 狀態暫存器,如表 5-3 所示。
表 5-3 寫入控制字組
CS WR RD A0 說明
0 0 1 0 設定 ICW1
0 0 1 1 設定 ICW2、ICW3、ICW4
0 1 0 × 讀取狀態暫存器
1 × × × 8259 未致能

CAS0 ~ CAS2 用來串接多顆 8259,最多可串接 8 顆,因每顆 8259 可以處理 8 個


中斷請求,所以 8259 串接後,最多可以處理 64 個中斷請求,如圖 5-11 所示。如果使
用 兩 顆 以 上 的 8259, 主 8259 的 CAS0 ~ CAS2 應 接 至 相 對 應 串 接 的 8259 的 CAS0 ~
CAS2 接腳。如果只使用一顆 8259,CAS0 ~ CAS2 則不使用,空接即可。

圖 5-11 8259 串接擴充中斷

AC20410_05.indd 184 7/9/2020 15:43:44


Chapter 5 │中斷 185

SP / EN(Slave Program/Enable Buffer,僕 8259 規劃 / 致能緩衝器)作為輸入接腳


時,用來指定 8259 為主或僕的角色,SP = 1 為主 8259,反之,SP = 0 此 8259 為僕控
制器,如圖 5-11 所示,主、僕 8259 的 SP 接法不同。

如 果 CPU 只 使 用 一 顆 8259,8259 的 INT 與 INTA 應 與 CPU 對 接, 作 為 送 出 中 斷


請求與接收中斷認可的功能。如果使用兩顆以上的 8259,則只有主 8259 的 INT 接至
CPU 的 INTR, 其 餘 8259 的 INT 應 接 至 主 8259 的 IR0~IR7 接 腳, 而 主 8259 的 INTA
仍與 CPU 對接。

當只使用一顆 8259,IR0 ~ IR7 用來接至週邊設備,作為週邊設備提出中斷要求的


信號線。如果使用兩顆以上的 8259,則後面一級 8259 的 IR0 ~ IR7 仍接至週邊設備,
但前級 8259 的 IR0 ~ IR7 可接至下一級 8259 的 INT 接腳,作為擴充中斷用。

5-4-2 8259 內部結構


由圖 5-12 為 8259 的內部架構圖,可分為八個方塊,其中 IMR、IRR 與 ISR 三個 8
位元暫存器與 PR 顯得特別重要,直接影響 8259 的工作方式,分別說明如下。

圖 5-12 8259 內部架構圖

AC20410_05.indd 185 7/9/2020 15:43:48


186 微處理機

1. 中斷遮罩暫存器 (Interrupt Mask Register,簡稱 IMR)用來致能與禁能 IR0~IR7 提


出的中斷要求。最低位元 D0 控制 IR0,D1 控制 IR1,以此類推。遮罩工作是高態動作,
例如 IMR 的 D0 = 1,則 IR0 所提出的中斷要求被禁能,不會通過中斷認可,換句話
說,就是不會接受 IR0 的中斷。反之,如果 IMR 的 D0 = 0,則 IR0 所提出的中斷要
求被致能,可以發生中斷。如下範例,如果 IMR 的狀態為 00100110,則表示 IR5、
IR2 與 IR1 中斷被遮罩(禁能),不接受所提出的中斷。
IMR D7 D6 D5 D4 D3 D2 D1 D0
對應 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
範例 0 0 1 0 0 1 1 0

2. 中斷請求暫存器 (Interrupt Request Register,簡稱 IRR)則是用來紀錄 IR0~IR7 提


出的中斷要求狀態。IRR 的 D0 用來紀錄 IR0 的中斷要求狀態,D1 用來紀錄 IR1 的
中斷要求狀態,以此類推,如下範例。例如 IR1 提出中斷要求,並且 IMR 中 D1 未
被遮罩,則 IRR 的 D1 = 1,請注意,有可能發生兩個 IR 同時提出中斷的狀況。
IRR D7 D6 D5 D4 D3 D2 D1 D0
對應 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
範例 0 0 0 0 0 0 1 0

3. 中斷服務暫存器 (Interrupt Service Register,簡稱 ISR)用來紀錄哪一個中斷正被處


理。IR0 ~ IR7 中哪一個中斷正被處理時,相對應的 ISR 位元 D0 ~ D7 會被設定為 1,
處理完會被清除為 0。
另外,當同時有兩個以上的中斷要求發生,會都被記錄在 IRR 中,但 CPU 不可能
同時接受兩個中斷要求。此時優先權協調器(Priority Resolver)被用來決定哪一個中
斷要求優先處理。8259 預設的中斷請求優先順序為:

IR0 > IR1 > IR2 > IR3 > IR4 > IR5 > IR6 > IR7

例如 IR5 與 IR2 同時發生中斷要求,則 8259 將會檢查 IMR,如果 D5 = 0 且 D2 = 0,


兩者中斷要求會都記錄在 IRR 中,並送至優先權協調器依據優先順序決定誰被優先服
務。如果採預設優先順序,則 IR2 勝出,先被服務,完成後再服務 IR5。

AC20410_05.indd 186 7/9/2020 15:43:48


Chapter 5 │中斷 187

另外一種狀況,只有 IR5 提出中斷請求而且沒被遮罩(IMR 的 D5 = 0),8259 將


發 出 INT 信 號 給 CPU, 向 CPU 要 求 中 斷。CPU 接 受 後, 除 發 出 INTA 信 號 告 知 8259
已接受中斷要求外,也將跳至 IR5 相對應的中斷服務程式執行,此時 8259 IRR 的 D5 =
1、ISR 的 D5 = 1。

如果此時 IR1(比 IR5 優先順序高)發出中斷要求,則 IRR 的 D1 = 1,再送至優


先權協調器,檢查到此時的中斷要求 IR1 比正在執行的中斷 IR5 優先順序高,將會再向
CPU 發出中斷要求。

CPU 是否接受新來的 IR1 的中斷要求,則視 IR5 的中斷服務程式中是否有執行 STI


指令來開啟中斷。如果有 STI 指令,則 CPU 將會跳至 IR1 相對應的中斷副程式執行,
完成後再繼續執行 IR5 中斷服務。如果 IR5 的中斷副程式中執行 CLI 指令,則 IR1 中斷
要求要等到 IR5 執行完畢後才會執行。

5-4-3 8259 的 ICW 與 OCW


8259 要正確工作,必須進行初始化與操作規劃兩步驟。在初始化步驟時,我們可
以 利 用 8259 提 供 的 四 組 初 始 化 命 令 字 組 ICW1、ICW2、ICW3、ICW4, 對 8259 進 行
初 始 化 工 作。 初 始 化 後,8259 已 可 接 受 來 自 週 邊 設 備 送 入 IR0~IR7 的 中 斷 要 求 信 號
了,但為了進一步規劃 8259 的操作方式,可以再透過三組「 OCW (Opertion Command
Word, 操作命令字組 )」OCW1、OCW2、OCW3 規劃 8259 的操作方式,包括遮罩的
狀況、各中斷發生的優先順序決定方式等。

對 8259 進行初始化工作時,需要透過寫入 ICW1~ICW4 四組控制字組達成。由表 5-4


中得知,A0 = 0 寫入 ICW1,A0 = 1 時 ICW2~ICW4 是共用同一個寫入位址。首先寫入
ICW1,由 ICW1 決定是否需要有 ICW3 與 ICW4。再視需要依序寫入 ICW2、ICW3、
ICW4。

表 5-4 ICW 寫入位址表

CS WR RD A0 寫入初始化命令字組

0 0 1 0 ICW1

0 0 1 1 ICW2、 ICW3、ICW4

1 X X X 8259 未定址

AC20410_05.indd 187 7/9/2020 15:43:48


188 微處理機

ICW 的主要功能如表 5-5 所示,其中 ICW1 可設定 8259 工作模式為單顆模式或串


接模式,當工作於串列模式時才需要 ICW3,此時 ICW3 用來設定主 8259 的 IRx 那些
有連接僕 8259,並設定每個僕 8259 的識別號碼。

表 5-5 ICW 主要功能

初始化命令字組 主要功能說明

‧ 設定 8259 工作模式為單顆模式或串接模式。
ICW1 ‧ 只有串接模式時才需要 ICW3。
‧ 是否有 ICW4 ?

ICW2 ‧ 設定 IR 的中斷向量號碼。

‧ 串接模式時:
ICW3 1. 設定主 8289 那些 IR 有連接僕 8259
2. 設定僕 8259 的識別碼

‧ 是否工作在全巢模式?
ICW4
‧ 是否需要 EOI(End of Interrup)命令?

ICW2 是用來指定 IR0~IR7 的中斷向量號碼,也就是 IR 發生中斷時引發的中斷向


量號碼。如圖 5-13 所示 ICW2 格式,其中,T7 ~ T0 即指定給 8259 的中斷向量位址對
INTEL x86 以上的 CPU 而言,最低 3 位元不用設定,只需設定 T7 ~ T3。

圖 5-13 ICW2 的格式

例如 T7~T0 = 0010 0xxx,則 IR0 對應的中斷號碼為 INT 20H,同理可推,IR1 對


應的中斷號碼為 INT 21H。所以 ICW2 的值其實是表示 IR0 的中斷號碼,其它的 IR 則
累加計算中斷號碼。例如 T7~T0 = 0010 0000 時,則各 IR 對應的中斷號碼如下表 5-6
所示。

AC20410_05.indd 188 7/9/2020 15:43:48


Chapter 5 │中斷 189

表 5-6 IR 中斷號碼計算範例

中斷要求 計算中斷號碼 中斷號碼

IR0 0010 0000 + 000 = 0010 0000 INT 20H

IR1 0010 0000 + 001 = 0010 0001 INT 21H

IR2 0010 0000 + 010 = 0010 0010 INT 22H

IR3 0010 0000 + 011 = 0010 0011 INT 23H

IR4 0010 0000 + 100 = 0010 0100 INT 24H

IR5 0010 0000 + 101 = 0010 0101 INT 25H

IR6 0010 0000 + 110 = 0010 0110 INT 26H

IR7 0010 0000 + 111 = 0010 0111 INT 27H

當依序送 ICW1、ICW2、ICW3、ICW4 給 8259,以進行初始化工作後,8259 已經


可以接受從 IR0~IR7 來的中斷要求了!為更精確控制 IR0~IR7 遮罩與發生的優先順序,
我們可以在 8259 初始化後,再寫入 OCW(操作命令字組),以進一步規劃 8259 的遮罩、
優先順序等執行方式。OCW 共有 OCW1、OCW2 與 OCW3 三組,寫入的位址表如表 5-7
所示。A0 = 1 時寫入 OCW1,A0=0 時依序寫入 OCW2 與 OCW3。

表 5-7 OCW 寫入位址表

CS A0 寫入操作命令字組

0 0 OCW2、OCW3

0 1 OCW1

1 X 8259 未定址

OCW1~3 主 要 功 能 如 表 5-8 所 示,OCW1 用 於 禁 能 或 致 能 IR0~IR7 的 中 斷 要 求,


也就是對應遮罩暫存器 IMR 的值。而 OCW2 則是優先權的相關設定,OCW3 為主要是
選擇 8259 讀取資料時,是讀取 ISR 或 IRR 暫存器內容。

表 5-8 OCW 主要功能

初始化命令字組 主要功能說明

OCW1 遮罩 IR0~IR7,即寫入 IMR 值

OCW2 指定 IR 的優先順序

OCW3 選擇讀取 ISR 或 IRR 暫存器的內容

AC20410_05.indd 189 7/9/2020 15:43:48


190 微處理機

OCW1 格式中,Mx = 0 表示致能,就是不遮罩相對應的 IRx。Mx = 1 表示禁能中


斷要求,就是遮罩相對應的 IRx。例如 OCW1 = 1100 1111 表示致能 IR4 與 IR5,而其
他的 IR0~IR3、IR6、IR7 則被禁能。當 CS = 0 與 A0 = 1 時,OCW1 將被寫入 8259 內
部中斷遮罩暫存器 IMR。

OCW1 A0 D7 D6 D5 D4 D3 D2 D1 D0

對應 1 M7 M6 M5 M4 M3 M2 M1 M0

範例 1 1 0 0 1 1 1 1

ICW4 與 OCW2 皆與 IRx 的優先順序有關,可設定優先權的工作模式與方式。8259


優先權工作模式有全巢、自動旋轉與特定旋轉三種模式,分別說明如下。

一  全巢模式(Fully Nested Mode)


在全巢模式下,IR0 的優先順序最高,IR7 的優先順序最低,即:

IR0 > IR1 > IR2 > IR3 > IR4 > IR5 > IR6 > IR7

例如 IR2 與 IR4 同時發生中斷要求,8259 將優先接受 IR2 的中斷要求,當 IR2 的


中斷服務副程式執行完畢後,才會對 IR4 中斷要求服務。如果 IR2 執行期間,IR3 也提
出中斷要求,則當 IR2 執行完畢後,會先執行 IR3,再執行 IR4。

二  自動旋轉模式(Automatic Rotation Mode)


在自動旋轉模式中,剛接受過服務的 IRx,它的優先順序會降為最低,除非其它的
IR 都不提出中斷要求,否則不可能連續發生同一個編號的 IR 中斷服務。自動旋轉模式
可以避免某一高優先權的週邊設備獨佔著 CPU 資源不放。

三  特定旋轉模式(Specific Rotation Mode)


在特定旋轉模式中,8259 可被規劃成某個順序旋轉。而非如自動旋轉模式是依照
IR0~IR7 的順序旋轉。其他動作仍和自動旋轉模式相同。

5-4-4 8259 的實際應用電路


8259 可以擴充週邊的中斷請求數量,依據需要可以採用單顆 8259,或者是串接多
顆 8259 兩種工作模式,以下將概略討論兩種 8259 電路,工作前初始化的動作。

AC20410_05.indd 190 7/9/2020 15:43:48


Chapter 5 │中斷 191

一 單顆 8259
單 顆 8259 電 路 連 接 較 為 單 純, 如 圖 5-14
所 示。 單 顆 模 式 CAS0 ~ 2 空 接,INT、
INTA、RD、WR 與 A 0 等都直接與 CPU 接腳連
接,位址解碼電路則是指定 8259 的兩個 I/O 埠
位址。SP/EN 接電源(高準位),表示此 8259
工 作 在 主 8259 模 式。 電 路 連 接 好 後, 經 過 簡
單的 ICW 規劃與寫入,就可以開始接收週邊的
中斷要求了 !

微 處 理 機 的 位 址 線 A0 直 接 接 到 8259 的
A0,A1 ~ A7 經 過 74LS138 解 碼 後, 如 表
5-9 所 示, 所 以 位 址 為 F8H、F9H, 可 透 過
F8H、F9H 進 行 初 始 化 ICW 與 操 作 模 式 OCW
規 劃。IR0 ~ IR7 則 是 直 接 接 至 I/O 設 備 的 中
斷請求 IRQ 接腳。
圖 5-14 單顆 8259 進行中斷管理
表 5-9 單顆 8259 的 ICW 與 OCW 位址
16 進制
功 能
A7 A6 A5 A4 A3 A2 A1 A0 位址
1 1 1 1 1 0 0 0 F8H ICW1 的埠位址
1 1 1 1 1 0 0 1 F9H ICW2、ICW3、ICW4 的埠位址
1 1 1 1 1 0 0 0 F8H OCW2、OCW3 的埠位址
1 1 1 1 1 0 0 1 F9H OCW1 的埠位址

得知 ICW 與 OCW 的埠位址後,就可進行初始化工作了!所以先決定 ICW 各字組


的內容,再視需要依序將 ICW1、ICW2、ICW3、ICW4 寫入 F8H 或 F9H。

Step 1 ICW1 的設定條件如下,將條件填入 ICW1 格式中,所以 ICW1 = 0001 0011B = 13H。


(1) CPU 為 x86 系列,ADI = 0、(A7、A6、A5)=(0、0、0)。
(2) 需要 ICW4,IC4 = 1。
(3) 使用單顆 8259,SNGL = 1。
(4) 採用邊緣觸發,LTIM = 0。

AC20410_05.indd 191 7/9/2020 15:43:49


192 微處理機

D7 D6 D5 D4 D3 D2 D1 D0
A7 A6 A5 1 LTIM ADI SNGL IC4
0 0 0 1 0 0 1 1

Step 2 ICW2 的 設 定 條 件 為 分 配 INT 20 ~ INT 27 給 8259 的 IR0 ~ IR7, 所 以


ICW2 應填入 IR0 的中斷編號 00100000 = 20H。
D7 D6 D5 D4 D3 D2 D1 D0
T7 T6 T5 T4 T3 T2 T1 T0
0 0 1 0 0 0 0 0
所以 ICW2 = 0010 0000B = 20H,而各 IR 的中斷號碼參考表 5-6。

Step 3 ICW3:因為只使用單一 8259,所以不需設定串接模式的 ICW3。


Step 4 ICW4 的設定條件如下,將結果填入 ICW4 格式中,所以 ICW4 = 0000 1001B = 09H。
(1) CPU 為 x86 系列 PM = 1。
(2) 採正常 EOI,AEOI = 0。
(3) 採緩衝模式、主 8259,(BUF、MS)=(1、0)。
(4) 採非巢式,SFNM = 0。
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 SFNM BUF MS AEOI PM
0 0 0 0 1 0 0 1

Step 5 依 序 寫 入 ICW1 ~ ICW4 即 可 完 成 此 8259 中 斷 系 統 的 初 始 化 規 劃 工 作。


8259 完成初始化工作後,就可接受來自 IR0 ~ IR7 的中斷要求了!
Mov AL, 13H ;ICW1 = 13H
Out F8H, AL ; 送出 ICW1
Mov AL, 20H ;ICW2 = 20H
Out F9H, AL ; 送出 ICW2
Mov AL, 09H ;ICW4 = 09H
Out F9H, AL ; 送出 ICW4

二 串接多顆 8259
8259 可 以 組 成 2 層 串 接 的 中 斷 系 統, 如 圖 5-11 所 示 電 路,IRx 分 別 接 至 串 接 的
8259,而所有的 8259 之資料匯流排與 CS0 ~ CS2 都並接在一起。圖 5-15 則是利用主
8259 的 IR2 串接一顆僕 8259 的實際電路,而對於主 8259 與僕 8259 的硬體線路接法與
初始化工作不盡相同,說明如下。

AC20410_05.indd 192 7/9/2020 15:43:49


Chapter 5 │中斷 193

圖 5-15 8259 擴充中斷實際電路

1. 主 8259:要使 8259 進入「主模式」,必須執行下列工作。


(1) 主 8259 的 SP / EN 接腳應為高電位 5V,使此 8259 成為主 8259。
(2) 主 8259 與僕 8259 的 CAS0、CAS1、CAS2 接腳應相連接。
(3) 主 8259 的 INT 接至 CPU 的 INTR,INTA 接至 CPU 的 INTA。
(4) 主 8259 的 IR2 應接到僕 8259 的 INT 接腳。
(5) 主 8259 寫入 ICW(初始化命令字組)時,應規劃為主 8259 工作模式。
2. 僕 8259:要使 8259 進入「僕模式」,必須執行下列工作。
(1) 僕 8259 的 SP / EN 接腳應為低電位 0V,使此 8259 成為僕 8259。
(2) 僕 8259 與主 8259 的 CAS0、CAS1、CAS2 接腳應相連接。
(3) 僕 8259 的 INTA 接至 CPU 的 INTA。
(4) 僕 8259 的 INT 接至主 8259 的 IR2。
(5) 僕 8259 寫入 ICW(初始化命令字組)時,應規劃為僕 8259 工作模式。
(6) 僕 8259 之 IR0 ~ IR7 可接週邊設備的中斷請求訊號 IRQ。

AC20410_05.indd 193 7/9/2020 15:43:49


194 微處理機

5-4-5 APIC 概論
Intel 公 司 在 Pentium P54C 之 後, 提 出 分 散 式
PIC 的 概 念, 稱 為 高 階 可 規 劃 中 斷 控 制 器(Advanced
programmable interrupt controller, 簡 稱 APIC),APIC
主要分為本地 APIC(Local APIC)與 I/O APIC 兩部分,
架構如圖 5-16 所示。

本地 APIC 通常都整合在微處理機內部,負責接收來
自微處理機中斷輸入接腳、微處理機內部的中斷要求、與
外部 I/O APIC 的中斷要求,然後送給微處理機核心處理。
APIC 支援多微處理機的架構,每個微處理機都有一個專
屬的本地 APIC,但 I/O APIC 只會有一個。

I/O APIC 則 是 負 責 接 收 外 部 I/O 設 備 發 出 的 中 斷 要


圖 5-16 APIC 結構示意圖
求,通常整合在系統晶片組,也就是南橋晶片。I/O APIC
接收 I/O 中斷要求後,然後將中斷要求訊息傳送到本地 APIC 處理。IO APIC 連接各個
設備,負責接收外部 I/O 設備發來的中斷,IO APIC 會提供多個 IRQ 輸入,Intel 系列一
般為 24 個,其它微處理機有些高達 64 個,當某支接腳收到中斷要求後,會進行查表,
把中斷轉換為中斷訊息轉發給本地 APIC。

5-4 隨堂練習
1. 有一個綜藝節目請曉華幫忙設計 24 人搶答系統,曉華打算使用微處理機配合 8259,以中
斷方式設計系統。若微處理機只有一支 INTR 可使用,那麼最少需要配合      顆
8259 才夠。

2. 8259 內部用來記錄哪一個中斷正被服務?      

3. 8259 優先權工作模式分為      、      、      三種模式。

4. APIC 可分為      與      兩部分。

AC20410_05.indd 194 7/9/2020 15:43:50


Chapter 5 │中斷 195

Chapter 5 學習目標回顧

學習目標 1:能說明輪詢式與中斷的不同
1. 輪詢式 I/O 及中斷式 I/O 工作原理如下圖所示:

(a) 輪詢式 I/O (b) 中斷式 I/O

學習目標 2:能列舉中斷分類方式
2. 微處理機的中斷來源分為硬體中斷與軟體中斷。
3. 硬 體 中 斷 是 指 由 外 界( 接 腳 ) 送 中 斷 請 求 信 號 至 CPU 的 接 腳 INTR, 由
CPU 判斷是否允許發生中斷的一種模式。
4. 軟 體 中 斷 是 由 是 透 過 作 業 系 統 提 出 中 斷 指 令, 如 INT 命 令、 除 0 錯 誤、 計 時
中斷等所觸發的中斷。
5. 軟 體 中 斷 屬 於 不 可 遮 罩 中 斷, 由 程 式 中 的「INT nn」 指 令 引 發,nn 代 表 中
斷的編號,不同的中斷號碼表示不同的中斷服務。
6. 當 執 行 CLI 指 令 後,CPU 將 不 接 受 可 遮 罩 中 斷 請 求, 反 之, 若 執 行 STI 後,
CPU 將會認可可遮罩中斷請求,並發出回應。
學習目標 3:能描述中斷資料傳輸的工作步驟
7. 中斷初始化包括開啟中斷致能與設定中斷向量。
學習目標 4:能描述 PIC 的應用功能
8. 8259A 就是一顆可程式化中斷控制器(PIC),可提供週邊設備 8 個中斷要求,
如果以串接方式工作,最多讓 CPU 擴充成為可接受 64 個中斷要求的系統。ICW1
的 SNGL=0 表示系統中有多顆 8259 串接,需要 ICW3 進行串接模式的初始化設定。
9. APIC 為分散式 PIC 的概念,主要分為本地 APIC 與 I/O APIC 兩部分。
10. 本地 APIC 整合在微處理機內部,負責接收來自微處理機中斷輸入接腳、微處
理機內部的中斷要求、與外部 I/O APIC 的中斷要求,然後送給微處理機核心處理。
11. I/O APIC 負責接收外部 I/O 設備發出的中斷要求。

AC20410_05.indd 195 7/9/2020 15:43:51


196 微處理機

Chapter 5 課後習題

選擇題
5-1 1. 使用輪詢法(polling)來處理 I/O 時,則下列敘述何者不正確?
(A) 效率較差 (B) 電路簡單
(C) 優先順序由硬體決定 (D) 先被詢問者其優先權最高。

2. 已知一微處理機,當 CPU 執行程式受輪詢中斷(Polled interrupt)時,其


執行速度變慢的主要原因為何?
(A) 硬體電路複雜 (B) 記憶體太少
(C) 週邊設備檢查 (D) 資料太繁多。

3. 當 輸 出 入 埠 與 中 央 處 理 單 元(CPU) 做 資 料 傳 遞 時, 以 中 斷 訊 號 通 知
CPU,要求 CPU 暫停原來的工作,先處理輸出入埠,處理完畢後再恢復
原來的工作,此種方式稱為
(A) 程式控制式 I/O (B) 中斷式 I/O
(C) DMA(直接記憶存取) (D) 並列資料傳輸。

4. 若 CPU 的中斷輸入 INT 及 NMI 之信號同時輸入時


(A) NMI 優先動作 (B) INT 優先動作 (C) 電腦中止執行 (D) 不理會。

5. 如果微處理機同時產生下列狀況時,應執行何者?
(A) 可遮罩中斷 (B) 重置性(Reset)處理
(C) 軟體中斷處理 (D) 不可遮罩中斷處理。

6. CPU 與週邊元件間,試問下列何種方式是 CPU 需主動詢問發送端是否有


資料要傳送?
(A) 輪詢式 I/O(Polling I/O) (B) 中斷式 I/O(Interrupt I/O)
(C) 直接記憶體存取(DMA) (D) 交握式(Handshake)。

7. 在中斷式 I/O 中,當 I/O 裝置需要作 I/O 服務處理時,會以何種信號來通


知 CPU,以進行 I/O 傳輸服務? (A) 匯流排仲裁線(BRQ) (B) 位址
線 (C) 中斷認知(IACK) (D) 中斷要求(IRQ)。

AC20410_05.indd 196 7/9/2020 15:43:51


Chapter 5 │中斷 197

Chapter 5 課後習題

8. CPU 內的旗標暫存器中之 IF = 1 時,則表示此 CPU 將:


(A) 進入單步執行模式 (B) 退出單步執行模式
(C) 可接受外部中斷請求 (D) 無法接受外部中斷請求。

5-2 9. 某計算機系統允許八個中斷要求(IR0 ~ IR7),且對於 IO 中斷採用循環式


優先權,則完成 IR7 中斷服務後,下一次具有最高優先權的 IO 中斷為
(A) IR0 (B) IR1 (C) IR6 (D) IR7。

10. 在 同 時 擁 有 可 遮 罩 式 中 斷 與 不 可 遮 罩 式 中 斷(NMI) 的 微 處 理 機 系 統
中,下列事件的發生,何者最適合使用 NMI 請求? (A) 硬碟資料傳送
(B) 計時器計時終止 (C) 停電 (D) RS - 232 資料發送完成。

11. 微電腦系統如果以組合語言設計中斷式 I/O 時,其中斷服務程式之最後


一行需放置下列哪一個指令,使中斷服務程式結束後能回歸主程式繼續
執行? (A) END (B) ORG (C) IRET (D) EQU。

12. CPU 的每一中斷向量,所儲存的資料為中斷服務常式的


(A) 所在的記憶體位址 (B) 指令運算資料 (C) 長度 (D) 工作內容。

13. 有關菊鍊式中斷,下列敘述何者為非?
(A) 該方式用於處理多個中斷裝置之優先權
(B) 不一定需要中斷致能輸入(IEI)和中斷致能輸出(IEO),為其優點
(C) 連接完成的中斷位置就已決定中斷的優先順序
(D) 該中斷方式,其執行速度高於輪詢 (Polling) 中斷。

5-3 14. 下列有關 x86 中斷處理的敘述,何者是錯誤的?


(A) 當 CPU 執行 STI 指令後,便不再接收 INTR 的中斷
(B) 當 CPU 回應中斷認知後,中斷控制器應回送 8 位元的中斷向量
(C) CPU 利用中斷向量找到中斷處理常式的進入點
(D) 中斷處理常式不可任意破壞暫存器值。

AC20410_05.indd 197 7/9/2020 15:43:52


198 微處理機

Chapter 5 課後習題

15. 以下何者是 I/O 資料轉移的正確敘述?


(A) 中斷 I/O 是由 I/O 設備來啟動 CPU 作資料轉移
(B) DMA 資料轉移可完全利用軟體之方式來完成
(C) 程式 I/O 是由 I/O 設備觸發中斷要求線來啟動 CPU 作資料轉移
(D) 80x86CPU 不支援程式 I/O。

16. 中央處理單元(CPU)處理中斷(interrupt)時,通常採用下列何種方式
來暫存資料?
(A) 表列(list) (B) 指標(pointer)
(C) 佇列(queue) (D) 堆疊(stack)。

17. 下列有關 CPU 執行中斷的敘述,何者有誤?


(A) CPU 會暫停目前的程式進行
(B) CPU 會將旗標狀態推入堆疊
(C) CPU 會將程式計數器的內容推入堆疊
(D) CPU 會對中斷服務程式(ISR)進行變數參數傳入的動作。

18. CPU 存取 I/O 裝置之資料,若採用中斷方式,有何特點?


(A) 可不經 CPU 傳送資料
(B) CPU 中斷動作,不需儲存返回位址、狀態暫存器等
(C) 不需外加硬體控制信號
(D) 可即時反應,且不需經常詢問 I/O 裝置,可節省 CPU 時間。

19. 微處理機與外部硬體中斷介面主要的信號之一是
(A) 中斷記憶 (B) 中斷週期 (C) 中斷認可 (D) 中斷分離信號。

20. Intel 80x86 CPU 的 中 斷 有 四 種 來 源: 第 一 種 為 NMI(Non Maskable


Interrupt), 第 二 種 為 INTR(Interrupt Request), 第 三 種 為 執 行 中 斷
指令 INT xx,第四種為 CPU 執行除算錯誤所產生的除以零中斷(Divid
Zero),當主機板上 DRAM 的同位元錯誤(Parity Error)發生,則會產
生哪一種中斷?
(A) INTR (B) INT xx (C) NMI (D) Divid Zero。

AC20410_05.indd 198 7/9/2020 15:43:52


Chapter 5 │中斷 199

Chapter 5 課後習題

5-4 21. 在 8259A PIC 中是用下列那種方法辨認中斷來源裝置?


(A) 輪詢(polling)
(B) 菊鍊優先權結構(daisy chain)
(C) 中斷優先權裁決器(interrupt priority management hardware)
(D) 巡更優先權(round-robin priority)。

22. 用以規劃系統內是否有多只 8259A(主僕式)的控制字語是


(A) ICW1 (B) ICW2 (C) ICW4 (D) OCW1。

23. 以下哪一個 LSI 周邊 IC 是可程式化中斷控制器(Programmable Interrupt


Controller)? (A) 8255A (B) 8259A (C) 8237 (D) 8254。

24. 8259A 可用主/從控方式串接起來允許系統中容納


(A) 8 (B) 16 (C) 32 (D) 64 個可遮罩式中斷。

25. 8259A 中斷控制器哪一只接腳,用以決定該 PIC 為主控者或從控者?


(A) A0 (B) INTA (C) SP/EN (D) CAS0 ~ CAS2。

問答題
1. 請說明詢問式 I/O 的工作原理?

2. 請說明中斷式 I/O 的工作原理?

3. 請說明可遮罩式中斷的動作過程。

4. 中斷式的資料傳輸的軟體規劃需要哪兩個步驟?

5. 請繪製 PIC-8259 與微處理機連接的方式。

AC20410_05.indd 199 7/9/2020 15:43:52


200 微處理機

AC20410_05.indd 200 7/9/2020 15:43:52


教學節數

ap
ter 12
6 記憶體資料存取

Ch

本章節次 學習目標
6-1 記憶體概述 1. 能描述記憶體階層分類記憶體。
6-2 半導體記憶體資料存取之基本 2. 能描述三種依製造技術分類的記憶
原理 體特性與產品。
6-3 高容量資料儲存裝置資料存取 3. 能 說 明 半 導 體 記 憶 體 資 料 存 取 原
之基本原理 理。
6-4 快取記憶體 4. 能描述高容量儲存裝置的種類與基
6-5 DMA 基本原理 本原理。
6-6 DMA 控制晶片介紹
5. 能描述 DMA 的工作特點。
學習目標回顧
6. 能指出 8237 的簡要特性。
課後習題

AC20410_06.indd 201 7/9/2020 15:44:25


202 微處理機

6-1 記憶體概述
記憶體是整個微處理機系統不可或缺的角色,有多種分類方式。第一種是以記憶體
與 CPU 的遠近程度區分,包括 CPU 內部的暫存器與快取記憶體、主記憶體與輔助記憶
體等,速度、容量要求大不相同,依據需求選擇適當的記憶體類型,如圖 6-1 左圖所示。
右圖則是示意各類型記憶體與中央處理單元的相對位置 。

圖 6-1 記憶體依據記憶體階層分類

第二種分類方式,可就製造材料來區分記憶體,分為半導體記憶體、磁性記憶體與光
學記憶體 。其中半導體記憶體是利用正反器或電容等特性構成,例如以電容是否儲存電荷
來表示 1 或 0。而磁性記憶體則依據磁極方向表示資料的 1 或 0。光學記憶體以雷射光發
射,是否反射而接收到,來表示資料的 1 或 0。三者各有優缺點,但由於目前廣泛使用的
磁性與光學記憶體都需要機械式動作輔助寫入或讀取,所以存取速度比半導體記憶體慢,
這也是主記憶體選擇半導體記憶體的 ROM(唯讀記憶體)與 RAM(隨機存取記憶體)
的原因。而輔助記憶體則是大容量、成本低,速度要求沒那麼高,可使用需要配合機械結
構的記憶體,例如磁碟、光碟等。

表 6-1 記憶體類型特性比較表

比較特性 需要機械 與微處理機


記憶原理 存取速度 產品
類型 結構配合? 的關係

正反器 最快 ROM
半導體記憶體 不需要 主記憶體
電容特性 快 RAM

磁性記憶體 磁極方向 慢 需要 輔助記憶體 磁碟

光學記憶體 雷射激光 最慢 需要 輔助記憶體 光碟

AC20410_06.indd 202 7/9/2020 15:44:26


Chapter 6 │記憶體資料存取 203

由圖 6-2 可看出記憶體依據製造材料不同的分類情形。隨著製造技術不斷進步,記
憶體一直朝存取速度快、儲存密度高(體積小)、價格便宜的方向邁進。容量與存取速
度是評估記憶體優劣的主要指標,通常存取時間與價格是成反比的,存取速度愈快,價
格愈貴,適合用在容量需求較小,但存取頻繁的地方,例如暫存器與快取記憶體。反之,
存取速度慢,大都較便宜,適合用在容量需求大,存取次數較少的地方,例如資料的備
份,可能一天備份一次,例如可用光碟,也就是存取相對耗時的輔助儲存裝置。

圖 6-2 記憶體依據製作材料分類

另 外 一 種 分 類 方 式 是, 根 據 儲 存 資 料 與 電 源 的 關 係, 可 以 分 為「 揮 發 性 記 憶 體
(Volatile memory)」與「 非揮發性記憶體 (Non-volatile memory)」兩類。如圖 6-3
所示,RAM 屬於揮發性記憶體,非揮發性記憶體則包括 ROM、軟碟、硬碟、光碟等。

圖 6-3 記憶體依據揮發性分類

揮發性記憶體是指當電源供應中斷後,記憶體所儲存的資料便會消失的記憶體。
RAM 就是屬於揮發性記憶體,但因為具有存取速度快、集積密度高等優勢,目前微處
理機系統的暫存器、快取記憶體與主記憶體等大都採用 RAM。

非揮發性記憶體即使電源供應中斷,記憶體所儲存的資料並不會消失,重新供電
後,就能夠讀取記憶體中的資料。包括 ROM、軟碟、硬碟與光碟等都屬於此類。

AC20410_06.indd 203 7/9/2020 15:44:27


204 微處理機

6-1 隨堂練習
1. 請幫忙政繁解決電腦記憶體不足的問題,應擴充哪種記憶體?
因為常常拍照、錄影需要備份,應擴充      ,後來迷上電玩遊戲,電腦卡
卡的,應擴充      。

2. 主記憶體的製造技術為    ,反之,輔助記憶體則為    或    。
3. 依據儲存資料與電源的關係,記憶體可分為      與      。

6-2 半導體記憶體資料存取之基本原理
半導體、磁性與光學是三種常用的記憶體製造材料,其中以半導體技術製作的記憶
體存取速度最快、集積密度最高,包括 CPU 內部的暫存器、快取記憶體與主記憶體等
都是採用半導體技術。

6-2-1 基本儲存元件與位址選擇
一顆半導體記憶體,或說一個完整的記憶元件主要有位址、資料與控制接腳對外,
完成記憶體的基本操作寫入資料與讀取資料,如圖 6-4 所示。記憶體內部大都採陣列方
式排列,記憶體陣列大小與安排方式決定位址接腳與資料接腳的數目,例如 512×8 的
記憶體陣列,表示需要 512 = 2 9 個記憶體位址(位置),所以要 9 條位址線,而資料線
8 條,所以記憶體陣列的表示方法為 2 位址線數 × 資料線數。

圖 6-4 記憶元件對外關係
記憶體是由很多基本「 儲存格 (memory cell)」或稱 儲存位元 (Stored bit)組成,
每個儲存格可以儲存 0 或 1 的 1 bit 資料,如圖 6-5 所示。每個儲存位元有 字元線(word
line)為位址線,與 位元線 (bit line)為資料線。圖 6-5(a)(b) 圖顯示,字元線 =1 時,
位元線可以讀取或寫入儲存位元。反之,如圖 (c)(d) 所示,字元線 =0 時,不論儲存位
元為 0 或 1,位元線對外皆為高阻抗(圖中以 Z 表示)。

AC20410_06.indd 204 7/9/2020 15:44:27


Chapter 6 │記憶體資料存取 205

(a) 讀取或寫入 0 (b) 讀取或寫入 1

(c) 位元線與外界高阻 (d) 位元線與外界高阻


圖 6-5 儲存位元

使用解碼器可以將陣列形式的儲存位元組成不同的記憶體架構,例如圖 6-6,使用
2 對 4 解碼器,讓 4 列 ×3 欄 =12 個儲存位元,組成 2 2×3 bits 的記憶體架構,其中記
憶體元件對外有 2bits 位址線、3bits 資料線。

圖 6-6 解碼器與儲存架構

AC20410_06.indd 205 7/9/2020 15:44:28


206 微處理機

一 資料的寫入(write)
資料透過資料匯流排將資料送入記憶體內儲存格,稱為寫入。寫入操作大約可分三
個步驟,如表 6-2 所示。

表 6-2 記憶體寫入資料三步驟

步驟 說明 簡述

位址暫存器透過位址匯流排傳送位址到位址解碼 MAR →位址匯流排→位址解碼器,


1
器,解碼後選定儲存資料的目的地。 進行位址解碼

2 資料匯流排上備妥寫入資料。 MDR →資料匯流排

透過控制匯流排,記憶體寫入控制接腳被致能
3 (enable)。進行寫入資料動作,將資料匯流排 WR = 0 →寫入資料
資料寫入記憶體內部指定位置。

如圖 6-7 所示記憶體寫入動作說明,位址 110 由位址匯流排送至位址解碼器,選擇


到第 6 列,再由資料匯流排送入要寫入的資料 1100 0101,最後由控制匯流排送來寫入
控制信號(WR = 0),驅動記憶體經資料匯流排上的資料寫入記憶體儲存格。當寫入新
資料時,原本的資料將被覆蓋,結果如圖中斜線後紅色下標字。

圖 6-7 記憶體寫入動作說明

AC20410_06.indd 206 7/9/2020 15:44:32


Chapter 6 │記憶體資料存取 207

二 資料的讀取(read)
由記憶體讀取指定位置的資料到資料匯流排,稱為讀取,讀取操作需要三個步驟,
如表 6-3 所示。

表 6-3 記憶體讀取資料三步驟

步驟 說明 簡述

位址暫存器位址透過位址匯流排送到位址解碼 MAR →位址匯流排→位址解碼器,


1
器,解碼後選定儲存資料的目的地。 進行位址解碼

透過控制匯流排,記憶體讀取控制接腳被致能 RD = 0,進行讀取資料動作,將指定
2
(enable)。 位置資料送至資料匯流排

指定位址的資料放在資料匯流排上,並送入資料
3 資料匯流排→ MDR
暫存器。

如圖 6-8 所示記憶體讀取動作說明,位址 100 由位址匯流排送至位址解碼器,選擇


到第 4 列,由控制匯流排送來讀取控制信號(RD = 0),讀取記憶體儲存格內容到資料
匯流排上,資料為 1110 1001。再將資料匯流排資料送入資料暫存器,讀取完成資料暫
存器內容如圖中斜線後紅色下標字。

圖 6-8 記憶體讀取動作說明

AC20410_06.indd 207 7/9/2020 15:44:32


208 微處理機

三 一維與二維解碼
依據儲存格組成架構不同,記憶體內部解碼電路可分為一維位址解碼與二維位址解
碼兩種。如圖 6-9 所示。圖 (a) 是一維位址解碼,C 0 ~ C n–1 表示 n 個儲存格,位址透過
位址解碼電路,可以順利選取到某一個儲存格,以進行讀取或寫入資料的動作。

圖 6-9 圖 (b) 則是採用二維的儲存格架構,內部為記憶體陣列,必須設置列位址解


碼與行位址解碼,兩個方向的位址解碼器,當列與行解碼器同時選到某一個儲存格時,
才能對該儲存格進行讀取或寫入的動作。

列位址或行位址有時是以位址匯流排的高、低位元區分,例如高 2 位元為列位址,
低 2 位元為行位址。有時則是採位址多工的方式,如圖 (b),只有 2 位元位址匯流排,
先送 2 位元列位址,再送 2 位元行位址,兩個位址都送進去了,就可以完整解碼,選擇
指定儲存格。二維位址解碼可以簡化解碼電路的複雜度,也將記憶體對外的位址接腳縮
減一半。

(a) 一維位址解碼 (b) 二維位址解碼


圖 6-9 一維與二維位址解碼

AC20410_06.indd 208 7/9/2020 15:44:32


Chapter 6 │記憶體資料存取 209

四 組成指定記憶體結構
圖 6-10 說明如何使用 32×32 的記憶體陣列,組成 256×4 bits 的結構。結構上先
將每一列 32 個儲存格分為四組,每組有 8 個位元,行位址經行解碼器,每次只能由 8
個儲存格中選一位元輸出資料,如圖 (b) 所示。

這裡需要透過兩維的位址解碼,我們將位址線分為「列位址」(A 0 ~ A 4)與「行
位址」(A 5 ~ A 7)。五位元列位址經列解碼器解碼,選擇 2 5 = 32 條列線,再由三位元
位址經四組行解碼器選擇 2 3 = 8 條行線,以選擇四位元的輸出 D 3 ~ D 0。所以列位址負
責指定資料由第幾列輸出,行位址則由每列 32 個儲存格選定 4 位元輸出。當然,晶片
選擇接腳 S 0 與 S 1 需同時為 0,資料才能輸出。

(a) 以 32×32 陣列組成 256×4 的記憶體架構

(b)「32 選 4」位元資料輸出
圖 6-10 32×32 陣列組成的 256×4

AC20410_06.indd 209 7/9/2020 15:44:33


210 微處理機

6-2-2 ROM
ROM(Read Only Memory),唯讀記憶體,可以永久或半永久地儲存資料,隨時
可讀取儲存的資料。ROM 具有非揮發性(non-volatile),當電源關閉後,仍保有原來
的資料,除非透過高電壓或其他特殊方式(例如紫外線)才能將內部資料清除,重新
寫入資料。ROM 大都應用在儲存系統程式、永久性資料等,例如微電腦開機過程中的
BIOS 程式。因為以硬體儲存軟體程式,達成硬體電路功能,特性介於軟體與硬體之間,
又稱為 韌體 (Firmware)。

ROM 可用雙載子電晶體或單載子 MOS(金屬氧


化物半導體)技術製造,使用 MOS 技術製造的好處
是可以做成 EPROM 與 EEPROM,使 ROM 的重新規
劃 ( 寫入資料 ) 工作更為方便。

以雙載子電晶體製造 ROM 具有高存取速度的優


圖 6-11 半導體 ROM 家族
點,但消耗功率大且成本較高。反之,以 MOS 製造
ROM 則 有 成 本 低, 集 積 密 度 高、 雜 訊 抑 制 力 高、 低
消耗功率等優點,但存取速度較慢。

表 6-4 半導體 ROM 家族特性比較

特性比較
存取速度 成本價格 集積密度 功率消耗 雜訊抑制力
製造技術

TTL 快 高 低 高 低
雙載子
ECL 最快 最高 最低 最高 最低

NMOS 快 低 最高 低 高
MOS
CMOS 最慢 最低 高 最低 最高

常見的 ROM,可分為 Mask ROM、PROM、EPROM、EEPROM 與 Flash ROM 等,


如表 6-5 所示,也簡述它們的特性。

AC20410_06.indd 210 7/9/2020 15:44:36


Chapter 6 │記憶體資料存取 211

表 6-5 ROM 的分類與特性簡述

類 型 特性簡述

Mask ROM 不能更改資料,適合大量生產

PROM 只能燒錄一次

EPROM 可燒錄多次,燒錄前需用紫外線清除原來資料

EEPROM 可燒錄多次,燒錄前需用高電壓清除原來資料

Flash ROM 可讀寫,需以高電壓清除與寫入資料

一 Mask ROM
圖 6-12 是利用雙極性技術組成 ROM 的儲存格,圖 (a) 中,當字元線(即位址線)
選取到此儲存格時基極為高電位,電晶體導通,所以位元線(即資料線)可以取得高電
位,表示內部資料為 1。反之,圖 (b) 中位址線的為高電位時,電晶體基極仍浮接,電
晶體不導通,所以位元線得到低電位,表示內部資料為 0。Mask ROM 依照所要記憶的
資料,預先決定字元線與電晶體基極是否接通,如果字元線與電晶體基極間接通,表示
記憶資料 1,如圖 (a);字元線與電晶體基極間不導通,表示記憶資料 0,如圖 (b)。圖 6-13
則為利用 MOS 技術製作 ROM 儲存格,儲存資料的原理與雙極性電晶體相似。

(a) 儲存 1 (b) 儲存 0
圖 6-12 雙極性電晶體 ROM 儲存格

(a) 儲存 1 (b) 儲存 0
圖 6-13 MOS 的 ROM 儲存格

AC20410_06.indd 211 7/9/2020 15:44:37


212 微處理機

圖 6-14 可說明 ROM 資料的讀取動作。位址


A 3 ~ A 0 經 位 址 解 碼 器 選 擇 到 某 一 列 的 資 料, 該
列 8 個儲存格被選取,同時輸出資料。例如 A 3 ~
A 0 = 0010,位址解碼器的輸出「2」為高電位(其
餘 為 低 電 位 ), 如 果 儲 存 格 資 料 為 1, 使 電 晶 體
導通,則電位降在終端電阻上,使輸出資料為 1。
如果儲存格資料為 0,電晶體不導通,輸出資料為
經終端電阻接地的低電位。

Mask ROM 由 IC 製 作 廠 商 直 接 大 量 製 造 生
圖 6-14 ROM 讀取資料操作
產,事先規劃資料再製造,製成後資料固定,使
用者不可更改,只能讀取資料。Mask 名詞來自積體電路製程的名詞,表示在光刻過程
遮住晶片某些區域。Mask ROM 因為不需要提供寫入資料的功用,電路結構簡單而且大
量生產,成本相對便宜。

二 PROM
PROM(Programmable ROM) 可 規 劃 式 唯
讀記憶體,透過熔斷可熔性接線(fusible link)
的 過 程, 達 成 規 劃 ROM 的 記 憶 資 料 的 目 的。
Mask ROM 在 IC 製造時已決定記憶的資料內容,
PROM 則是可以提供使用者依據需要規劃 ROM
的記憶資料,但是只能規劃一次。
PROM 以儲存格的可熔性接線的燒斷或保
留表示儲存資料的 0 或 1,熔斷過程為不可逆,
所以 PROM 在規劃後,不可以清除資料或再規
劃。圖 6-15 為 PROM 陣列,圖中可熔性接線保
留表示儲存資料 1,燒斷則表示 0。
可熔性接線的技術常見的有金屬接線、矽
接線與 PN 接面三種,每一個儲存格都有一條可
熔性接線,以此接線的燒斷與保留表示儲存資
料的 1 或 0。規劃過程中,先選定位址後,送入
足夠的電流流過可熔性接線,以熔斷接線。
圖 6-15 具可熔性雙極性電晶體組成
PROM 陣列

AC20410_06.indd 212 7/9/2020 15:44:37


Chapter 6 │記憶體資料存取 213

三 EPROM 與 EEPROM
PROM 只 能 規 劃 一 次, 但 EPROM(Erasable PROM, 可 抹 除 式 PROM) 可 利
用 紫 外 線 照 射 清 除 原 來 資 料, 進 行 再 一 次 的 規 劃, 又 稱 UV-EPROM。 而 EEPROM
(Electrically-Erasable PROM, 電 子 抹 除 式 PROM), 也 記 作 E 2PROM, 唸 成 double
E PROM,則是外加特定電壓抹除原來資料,達到重複規劃的目的,抹除資料時比較方
便、快速。

EPROM 與 EEPROM 的基本結構類似,如圖 6-16 所示,MOSFET 多了與外界絕緣


的 浮動閘極 (Floating Gate,簡稱 FG),利用浮動閘極的絕緣特性,沒有放電路徑,
具有長期保存資料的能力,閘極有或無儲存電荷表達儲存資料的 1 或 0。而清除工作則
是消除浮動閘極的電荷,依據消除閘極電荷的方式的不同,可分為以紫外線消除閘極電
荷的 EPROM 與以特定電壓消除閘極電荷的 EEPROM。浮動閘極被絕緣介電質包圍,
例如二氧化矽(SiO 2),下面的介電層稱做穿隧氧化層(tunneling oxide layer),上方
介電層稱做控制氧化層(control oxide layer)。當寫入或抹除電荷時都必須穿過穿隧氧
化層,而控制氧化層功用為將電荷侷限在浮閘中不讓電荷進出。

如 圖 6-16 所 示 N 通 道 MOSFET, 在 控 制 閘 極 加 上 正 電 壓, 注 入 浮 動 閘 極 的 載 子
為電子,最常見的兩種方式就是 熱電子注入 (HEI, Hot electron injection)和 F-N 穿隧
(Fowler-Nordheim tunneling)。電位的改變則是利用浮動閘極 FG 內的電荷量來決定,
當電子被注入到 FG 中,此時的狀態為 1,即「被寫入(Programmed)」。相反的,若
FG 中的沒有電子,此時的狀態稱為 0,即「被清除(Erased)」。

(a) 物理結構 (b) 電路符號


圖 6-16 浮動閘極結構與符號

AC20410_06.indd 213 7/9/2020 15:44:38


214 微處理機

EPROM 雖有浮閘,但沒有控制閘,浮閘內的電荷來自
汲極附近的崩潰區域內產生的熱電子。因為沒有控制閘,清
除必需使用紫外線。EPROM 封裝時會在上方留一透明石英玻
璃罩口,如圖 6-17 所示,平常使用時會以不透光的貼紙貼上,
避免資料流失,延長資料的保存。當要清除資料時,則應將
圖 6-17 EPROM 外觀
貼紙撕去,放置於高密度的紫外線輻射,約數分鐘至十數分
鐘,就可將浮動閘極電荷中和清除,達到資料清除的目的。
大部分的 EPROM 清除後儲存格輸出資料皆為 1。

反之,EEPROM 可用電子方式抹除與重新規劃,約數 ms 就可清除完畢,比 EPROM


快多了。EEPROM 有讀取模式、寫入模式、擦拭模式、校驗模式四種工作模式。讀取模
式時,晶片只需要 VCC 低電壓,例如 +5V 供電。寫入時,則由 Vpp 加高電壓(早期大都為
+25V,較新者可能使用 12V 或 5V),並通過 PGM 加入規劃編程脈衝,一般為 50ms,
完成寫入資料。抹除時,只需使用 Vpp 高電壓,便可以抹除指定位址的內容。為保證寫入
正確,在每寫入一塊資料後,都需要進行類似於讀取、比較的校驗步驟,若錯誤就重新寫
入。現今的 EEPROM 通常內部大都有升壓電路,已不再需要外加額外的 Vpp 電壓,且寫
入時間也已有縮短。

四 Flash Memory
日本東芝公司川岡富士雄博士 1980 年申請 Flash Memory(快閃記憶體)的專利,
並在 1984 年加州舊金山 IEEE 國際電子元件會議上發表了這項發明。Flash Memory 屬
於 EEPROM,可用電性清除資料,允許多次清除或寫入的記憶體。就儲存資料而言,
它是不需要消耗電力的,目前廣泛用於一般性資料儲存,例如相機與手機記憶卡、隨身
碟、固態硬碟(與一般硬碟相比,具有更佳的抗震性)等,在遊戲主機上也快速取代儲
存遊戲資料用的 EEPROM 或帶有電池的 SRAM。另外,目前微電腦的 BIOS 幾乎都是
採用 Flash Memory。表 6-6 為三種 EPROM 的比較表。

AC20410_06.indd 214 7/9/2020 15:44:38


Chapter 6 │記憶體資料存取 215

表 6-6 三種 EPROM 比較
EPROM 種類
UV-EPROM EEPROM Flash Memory
項目
資料規劃方式 熱電子注入 穿透效應 熱電子注入

資料清除方式 紫外線 穿透效應 穿透效應

資料清除時間 20min 5ms ms 等級

小區塊(典型為位
最小清除資料量 整個記憶體 較大區塊抹除
元組)清除

較大區塊寫入
以位元組為單位 以位元組為單位
資料寫入單位 (寫入大量資料時
寫入 寫入
顯著的速度優勢)

資料寫入時間 小於 100ms 5ms 5ms

資料讀取時間 約 100ms 約 35ns 約 100ns

快閃記憶體依結構與設計原理不同,又分為 NOR Flash 與 NAND Flash 兩型。1988


年 Intel 推出第一款商業性的 NOR Flash 晶片,結構示意如圖 6-18(a) 所示,支援隨機
存取,讀取資料的方式與 RAM 類似,提供完整的定址與資料匯流排,並允許隨機存取
記憶體上的任何區域。每次寫入/抹除都是以 1 個區塊(block)為單位,1 block 通常
為 16 ~ 128 Kbytes,在製作小容量(1 ~ 16MB)記憶體時具有很高的成本效益,但是
NOR 寫入和抹除速度較慢。適合用於儲存不需經常更新的程式,例如 BIOS 或韌體。

NOR Flash 晶片抹除操作只能以 block 區段為基礎進行,區段內的所有記憶單元都


會被一起抹除,但寫入 NOR Flash 的動作通常可以單一位元組的方式進行。雖然抹寫都
需要高電壓才能進行,不過實際上現今所有快閃記憶體晶片是藉由晶片內的電荷幫浦產
生足夠的電壓,所以只需要一個單一的電壓供應即可。

(a) NOR 結構
圖 6-18 NOR 與 NAND 快閃記憶體結構

AC20410_06.indd 215 7/9/2020 15:44:39


216 微處理機

(b) NAND 結構
圖 6-18 NOR 與 NAND 快閃記憶體結構(續)

NAND 結構是 Toshiba 於 1989 年發表,適用於大容量、更快的寫入和擦除時間,


具有高密度(單元尺寸是 NOR Flash 的一半)、高壽命(10 倍左右)、低製造成本等
優勢。只有 8 個 I/O pin,允許連續讀取,比較像光碟、硬碟的結構。讀寫操作以 1 page
為單位,抹除(Erase)以 1 block 為單位,通常 1 block = 32 pages,每個 block 的單位
依照廠商製造的不同有區別,通常介於 8~32 KBytes 之間

NAND 抹除單元更小,因此抹除速度(4ms)比 NOR 的(數秒)快,適合於資料


儲存,例如:MMC、固態硬碟(SSD)、USB 3.0 隨身碟、手機、數位相機,甚至手機、
MP3 撥放器用 NAND Flash 當作存放多媒體檔案的媒介,原因在於成本、空間、還有寫
入資料的速度。NAND Flash 中每個區塊的最大擦寫次數是一百萬次,NAND Flash 在
現今的隨身碟與多數記憶卡上都可看到。表 6-7 為兩者各種特性的比較。

表 6-7 NOR Flash 與 NAND Flash 比較

類型 讀取速度 寫入速度 抹除速度 適用容量 成本 壽命 市佔率

NOR Flash 快 慢 慢 小 高 中 減少

NAND Flash 中 快 快 大 低 高 上升

AC20410_06.indd 216 7/9/2020 15:44:39


Chapter 6 │記憶體資料存取 217

6-2-3 RAM
RAM(Random Access Memory),隨機存取記憶體,可重複寫入資料至指定位置,
寫入新資料後,原來資料會被覆蓋。當然也可由指定位置讀出資料,並且不會破壞原來
資料。與 ROM 最大的不同是,RAM 儲存的資料在電源消失後,也會跟著消失,具揮
發性,不像 ROM 可以永久(或長久)保存資料。所以 RAM 適合用資料的暫存,儲存
那些在電源消失後不需保存的資料。RAM 的集積密度很高,成本便宜,存取速度快,
所以能使用 RAM 的地方,大都儘可能使用 RAM。

因 製 造 技 術 的 不 同,RAM 可 分 為 靜 態 RAM(Static RAM, SRAM ) 與 動 態 RAM


(Dynamic RAM, DRAM )兩種。靜態 RAM 只要不切斷電源就可以保存資料,但動態
RAM 除了需要不切斷電源外,還需要定時「 刷新 (Refresh)」資料,也就是定時重複
寫入資料。即使沒有寫入新資料,DRAM 仍需要重複寫入原來的資料,以保證資料不會
流失。如果有寫入新資料,則以新資料寫入。

半導體 RAM 製造時常用的技術可分雙極性電晶體與 MOS 技術兩種。雙極性電晶


體(雙載子式)只能製造 SRAM,MOS 技術則可製造 DRAM 與 SRAM,如圖 6-19 所
示分類。

圖 6-19 半導體 RAM 分類

表 6-8 說明 SRAM 與 DRAM 特性上的不同。SRAM 不需要定時的刷新資料,所以


存取速度比 DRAM 快了許多,但電路較複雜、集積密度較低、製造成本較高,大多使
用在速度要求快,但容量需求較少的地方,例如快取記憶體。

表 6-8 半導體 SRAM 與 DRAM 特性比較

特性比較 刷新
存取速度 成本價格 集積密度 功率消耗
類 別 (Refresh)

SRAM 快 高 低 低 不需要

DRAM 慢 低 高 高 需要

AC20410_06.indd 217 7/9/2020 15:44:40


218 微處理機

一 SRAM
SRAM, 靜 態 RAM, 寫 入 資 料 後,
只要電源不切斷,就可保存資料。雙極性
電晶體與 MOS 技術都可以製造 SRAM。
圖 6-20 為 以 MOSFET 組 成 的 SRAM 基
本儲存格,以雙穩態電路為主要架構,當
字元線 WL 為高電位時,資料能由位元線
BL 寫 入 或 讀 取。 為 簡 化 電 路 方 便 說 明,
圖中省略一些緩衝器與控制電路。 圖 6-20 SRAM 儲存格

例如要寫入資料 1 時,當 WL = high,傳送位元線的電位 BL = high、BL = low 到


雙穩態電路。寫入後正反器的狀態穩定,Q1 與 Q4 為 ON,Q2 與 Q3 為 OFF,表示儲存
資料 1。反之,如果儲存資料 0,則是 Q1 與 Q4 為 OFF,Q2 與 Q3 為 ON。

讀取資料時,當 WL = high,Q2 汲極電位經過 Q6 即呈現在 BL,經過感測放大器


增幅後輸出資料。

二 DRAM
DRAM(動態 RAM)因為是將資料儲存在小電容內,利用小電容幾乎沒有放電迴
路的特性來保存資料,成本相當便宜,且製造的密度極高。但是,電容上的資料並無法
長時間保存,需要附加「刷新(Refresh)電路」,負責定時刷新 DRAM 上的資料,增
加 DRAM 電路的複雜度。

圖 6-21 為 DRAM 的 儲 存 格, 電 路 中 MOSFET 為 開


關 作 用, 當 位 址 線(WL) 送 高 電 位 至 MOSFET 閘 極 時,
MOSFET 導通,此時才能寫入、讀取或刷新電容上儲存的
資料,相反地,位址線如果為低電位,MOSFET 將不導通,
因電容沒有放電迴路,可保存電容上的資料。
圖 6-21 DRAM 儲存格
1 DRAM「寫入」資料的動作
  圖 6-22(a) 與 (b) 為 DRAM 單一儲存格的寫入操作說明,圖 (a) 為寫入資料
1 的過程,而圖 (b) 為寫入資料 0 的過程。動作的流程分別說明如下。

AC20410_06.indd 218 7/9/2020 15:44:40


Chapter 6 │記憶體資料存取 219

1. 當位址線 = 1,MOSFET 導通,可以讀或寫電容上的資料。


2. 令 R/W = 0 則可寫入資料,此時輸出緩衝器開路、輸入緩衝器導通,使 D IN
與資料線接通,D IN 的資料可送達電容,如果 D IN = 1,電容將充電為高電位
(1),如圖 (a) 所示充電路徑。如果 D IN = 0,電容將放電為低電位(0),
如圖 (b) 所示放電路徑。
3. 此時刷新線 = 0,刷新緩衝器開路,不可進行更新動作。

(a) 寫入 1 的過程 (b) 寫入 0 的過程


圖 6-22 DRAM 資料寫入

2 DRAM「讀取」資料的動作
   圖 6-23 為 DRAM 讀出資料的示意圖。動作說明如下。

1. 當位址線 = 1,MOSFET 導通,可以讀、寫或更新電容上的資料。


2. 令 R/W = 1 則 可 讀 出 資 料, 此 時 輸 出 緩 衝 器 導 通、 輸 入 緩 衝 器 開 路。D OUT
與資料線接通,電容上的電位可傳遞至 D OUT。如果電容上的電位為高電位
(1),則 D OUT = 1,反之,如果電容上的電位為低電位(0),D OUT = 0。
3. 此時更新線 = 0,更新緩衝器開路,不可進行更新動作。

圖 6-23 DRAM 資料讀取

AC20410_06.indd 219 7/9/2020 15:44:41


220 微處理機

3 DRAM 的「刷新」動作
  圖 6-24 為 DRAM 資料刷新的示意圖,動作說明如下。

1. 當位址線 = 1,MOSFET 導通,可以讀、寫或更新電容上的資料。


2. 令 R/W = 1,使輸出緩衝器導通、輸入緩衝器開路。刷新線 =1,刷新緩衝器導
通。此時電容上的電位將反應在資料線上。經過輸出緩衝器傳送到刷新緩衝
器,又回到資料線,對電容進行資料刷新動作。刷新時,電位傳遞過程如下:

電容 → 資料線 → 輸出緩衝器 → 刷新緩衝器 → 資料線 → 電容

因經過緩衝器,電位會更新為標準高電位或標準低電位,使電容上的電位保持。

圖 6-24 DRAM 資料刷新

大 多 數 的 DRAM 都 使 用 位 址 多 工 的 方 式 以 減 少 位 址 線 的 數 目, 使 封 裝 後 晶 片 接
腳數減少。位址多工的工作方式如圖 6-25 所示 16 K×1 的 DRAM,應有 14 條位址線
( 因 2 14 = 16K)、1 條 資 料 線, 但 位 址 線 接 腳 卻 只 有 7 支, 配 合 RAS(Row Address
Strobe,列位址激勵)與 CAS(Column Address Strobe,行位址激勵)達成位址多工。

首先送入 7 位元 A 0 ~ A 6 列位址,使 RAS = 0,則激勵列位址存放在列位址閂閘中。


然後,再送入 7 位元 A 7 ~ A 13 行位址,使 CAS = 0,則激勵行位址存放在行位址閂閘中。
7 位元的列位址與 7 位元的行位址分別經過解碼器解碼,就可選擇指定的儲存格,以進
行讀取或寫入的工作。位址多工時序圖可參考圖 6-26 所示。

值得注意的是,電路中 DRAM 記憶體陣列是採用 128×128 的架構組成,利用列位


址與行位址同時選到某一儲存格,以進行存取。但是對使用者而言,卻看成 16K×1 的
DRAM 結構。

AC20410_06.indd 220 7/9/2020 15:44:41


Chapter 6 │記憶體資料存取 221

圖 6-25 DRAM 位址多工

圖 6-26 DRAM 位址多工操作時序圖
三 SDRAM
為提高 DRAM 的存取速度,出現「同步(synchronous)」的技術,稱為 SDRAM,
表示記憶體時脈與 CPU 的時脈能同步存取資料,大大提高記憶體的工作效能。SDRAM
在電腦中被廣泛使用,從起初的 SDRAM 到之後一代的 DDR(或稱 DDR1),然後是
DDR2 和 DDR3 進入大眾市場,2015 年開始 DDR4 進入消費市場,分別說明如下。

1 SDRAM(Synchronous DRAM,同步動態隨機存取記憶體)
  也稱 SDR SDRAM(Single Data Rate SDRAM,單倍資料速率 SDRAM),
其中「同步」是指記憶體時脈與 CPU 的時脈能同步存取資料,微處理機與記憶
體利用時脈邊緣同步進行讀寫動作,在 1 個時脈週期內讀或寫 1 次,大幅提昇
記憶體存取效率。

AC20410_06.indd 221 7/9/2020 15:44:42


222 微處理機

圖 6-27 DDR SDRAM 模組外觀

2 DDR SDRAM(Double Data Rate SDRAM,雙倍資料速率 SDRAM)


  DDR SDRAM 為具有雙倍資料傳輸速率的 SDRAM,利用時脈的邊緣上緣
與下緣皆讀或寫一次,所以資料傳輸速度為系統時脈的兩倍,在時脈不變的情
況下,傳輸效率為 SDR SDRAM 的 2 倍。

3 DDR2、DDR3 與 DDR4 SDRAM


  DDR2 SDRAM, 意 謂「 第 2 代 雙 倍 資 料 速 率 」SDRAM, 以 此 類 推,
DDR3 與 DDR4 分 別 為 第 3 代 與 第 4 代。DDR2 資 料 傳 輸 速 率 有 效 達 到 DDR
的 兩 倍( 為 SDR 的 4 倍 ),DDR3 則 再 提 高 2 倍( 為 SDR 的 8 倍 )。DDR4
則 是 高 頻 寬 的 電 腦 記 憶 體 規 格, 更 低 的 供 電 電 壓 及 更 高 的 資 料 頻 寬, 可 達
3200MT/s,T/s 為每秒傳輸次數。各代 SDRAM 的模組外觀如圖 6-27,特性比
較如表 6-9 所示。

AC20410_06.indd 222 7/9/2020 15:44:42


Chapter 6 │記憶體資料存取 223

  DDR 之後的 SDRAM 採用 Prefetch(預取)技術來提升存取效能,DDR、


DDR2、DDR3 的分別採用 2n、4n、8n 預取技術,意謂一個時脈週期內同時尋
址多個儲存單元,並將這些資料傳輸到緩衝器中,預先提取準備好資料,再依
序送出,藉此得以提高傳輸速率。

表 6-9 不同 SDRAM 比較

內部速率 匯流排時脈 傳輸速率 工作電壓 DIMM


類型 預提取
(MHz) (MHz) (MT/s) (V) (Pins)

SDRAM 100 ~ 166 MHz 100 ~ 166 MHz 1n 100 ~ 166 3.3V 168

DDR 133 ~ 200 MHz 133 ~ 200 MHz 2n 266 ~ 400 2.5/2.6V 184

DDR2 133 ~ 200 MHz 266 ~ 400 MHz 4n 533 ~ 800 1.8V 240

DDR3 133 ~ 200 MHz 533 ~ 800 MHz 8n 1066 ~ 1600 1.5V 240

DDR4 133 ~ 200 MHz 1066 ~ 1600 MHz 8n 2133 ~ 3200 1.2V 288

註 MT/s 代表一秒可傳輸幾百萬次資料,乘以資料匯流排寬度,就是資料傳輸速率。

6-2 隨堂練習
1. 單一個儲存位元,通常會稱位址線為      、稱資料線為      。

2. 依據 DRAM 位址多工原理,排列 CAS、RAS、行位址、列位址的動作順序:


      、      、      、      。

3. EPROM 與 EEPROM 的結構類似,都有      ,使資料可長久保存。

4. DRAM 使用     儲存電荷以保存資料,需要定時     才能保持資料。

AC20410_06.indd 223 7/9/2020 15:44:42


224 微處理機

6-3 高容量資料儲存裝置資料存取之基本原理
半導體記憶體存取速度快,但價格比較貴,如果需要大量儲存資料時,並不划算。
當存取速度要求並不怎麼嚴苛時,會考慮採用磁性或光學的儲存設備,這兩類設備存取
時需要配合機械結構,存取速度較慢,但價格比較便宜。磁性儲存設備包括磁帶、磁碟、
與磁性光碟等,用得最廣的屬磁碟,目前大部分的個人電腦都視硬式磁碟為標準配備。
而磁性光碟利用磁性技術與雷射光束讀寫資料,同時採用磁性與光學特性達成存取資料
的目的。其他的光碟,如 CR-ROM、CR-RW 與 DVD 等,沒有使用磁性原理,但仍透
過雷射光束存取,本章亦提出說明。

表 6-10 輔助記憶體分類

種類 產品

磁性輔助記憶體 磁碟、磁帶、磁泡、軟碟、硬碟、磁性光碟(MO)

光學輔助記憶體 CD-ROM、CD-R、CD-RW、DVD、BD

6-3-1 軟式磁碟
磁碟分為 軟式磁碟 (Floppy,簡稱軟碟)與 硬式磁碟 (Hard Disk,簡稱硬碟),
軟碟雖然目前較少使用,但它的結構是硬碟、光碟的前身,值得探討與瞭解。第一個軟
碟磁片是由 IBM 於 1971 年開發出的,直徑 8 吋。隨著使用的需要與技術提高,又衍生
出 5.25 吋的磁片,並廣泛使用在 Apple II、IBM PC 及其他相容電腦上。1981 年 日 本
Sony 公司首次推出 3.5 吋軟碟,容量有 1.44MB。直到 2000 年以前,這種 5.25 吋與 3.5
吋軟碟幾乎成為個人電腦的標準配備,如圖 6-28 所示,之後 CD-ROM、USB 儲存裝置
出現後,軟碟逐漸被淘汰。

圖 6-28 8 吋、5.25 吋及 3.5 吋軟碟片外觀圖

AC20410_06.indd 224 7/9/2020 15:44:43


Chapter 6 │記憶體資料存取 225

軟碟本體是圓盤狀的柔性聚脂材料,表面塗上磁性物質以記錄資料,所以稱為軟
1 1
碟。常用的軟碟有 5.25(也稱 5 )英吋與 3.5(也稱 3 )英吋,是指圓盤狀磁碟片的
4 2
直徑大小,因怕軟碟過軟,易受損壞,一般都在外層包裝硬塑膠套(殼),作為保護用。

磁碟片的正反兩面都可讀寫資料,兩
面結構相同,如圖 6-29 所示,多個同心圓
形成磁軌(track),由外向內編號,最外
側為第 0 磁軌,再來第 1 磁軌,以此類推。
每 一 磁 軌 都 分 割 成 多 個 磁 區(sector),
常見每個磁區可儲存 512 bytes(0.5KB)
的資料。以「第 n 磁軌第 m 磁區」稱呼指
定磁區,不論外磁軌或內磁軌,每一磁區
所能儲存的資料量是一樣的,因為內磁軌 圖 6-29 磁碟片的結構
的磁區面積較小,所以儲存資料的密度較高。

例如有一磁碟片,兩面都可儲存資料,每一面都有 80 個磁軌,每磁軌分為 15 個
磁區,每個磁區可儲存 512bytes,則此磁碟片的記憶容量為:2 面 ×80 磁軌 ×15 磁區
×512 bytes = 1.2 M bytes。這也是常用的 5.25 英吋軟碟的結構。

5.25 吋軟碟的外觀如圖 6-30(a) 所示,外層保護用的硬殼挖一個缺口,作為防寫保護


用,將缺口貼上貼紙,磁碟機將不允許寫入資料,只能讀取資料。如果留著缺口,則可對
磁碟片讀取與寫入資料。磁碟機的磁頭透過讀寫窗寫入與讀取資料,磁頭可在讀寫窗前後
移動,更換讀寫的磁軌。而夾緊碟片中心,可對內部的磁碟片進行旋轉,可讓磁頭讀取不
同的磁區。索引孔可以決定第 0 磁區的位置,為磁碟存取時可取得正確的相對位置。

(a) 5.25 英吋軟碟 (b) 3.5 英吋軟碟


圖 6-30 軟碟的結構

AC20410_06.indd 225 7/9/2020 15:44:47


226 微處理機

3.5 英吋軟碟的內部結構與 5.25 英吋是類似的,如圖 6-30(b),同樣是圓盤狀的聚


脂材料表層塗上磁性物質以記錄資料,也分為磁區與磁軌,一般而言,常用的 1.44M
bytes 的 3.5 英吋軟碟,共有兩面,每面 80 磁軌,每磁軌分為 18 磁區,每一磁區同樣
可儲存 512bytes,所以可儲存 1.44M bytes:

2 面 ×80 磁軌 ×18 磁區 ×512 bytes = 1.44M Bytes

3.5 英吋軟碟的外觀與 5.25 英吋稍有不同,如圖 6-30(b) 所示,磁片的外層使用比


5.25 軟碟更硬的塑膠殼保護著,而磁頭讀取資料的讀寫窗在上方,以具有彈力的金屬片
防塵保護著,當要讀寫資料時,推開金屬片,就可對內部的磁碟片進行讀寫。而防寫缺
口則在下方,有缺口時不可寫入資料,只能讀取資料,無缺口時可讀寫資料,這點與 5.25
英吋軟碟相反。3.5 英吋軟碟除了比較小,可攜性較佳外,外殼保護層也比較硬,讀寫
窗的防塵保護也較完善。

6-3-2 硬式磁碟
軟碟除了存取速度較慢的缺點外,也怕灰塵侵入磁碟片,當磁頭讀寫資料時造成磨
損,甚至壞掉。硬碟是將碟片封裝在密閉、乾淨(無塵)的方形盒中,並用堅硬的金屬
保護著,所以稱為硬碟。磁頭讀取磁碟片上所儲存的資料時,磁頭浮在磁碟表面的空氣
層,兩者之間的間隙極小。硬碟外觀與內部結構如圖 6-31 所示。

(a) 硬碟外觀 (b) 硬碟結構

圖 6-31 硬碟外觀與內部結構

AC20410_06.indd 226 7/9/2020 15:44:48


Chapter 6 │記憶體資料存取 227

硬 碟 的 內 部 因 工 作 環 境 較 佳, 所 以 磁 碟 片 運 轉 速 度 可 以 相 當 快, 一 般 常 見 為
5400RPM(磁碟片每分鐘旋轉圈數)、7200RPM 或 10000RPM 等。硬式磁碟的內部磁
碟片常見為 5.25 英吋與 3.5 英吋兩種。

磁碟由多片堅硬鋁合金圓盤疊成圓柱狀,每片圓盤兩面都塗上磁性材料,規劃方式
如同軟碟片一樣,也分為磁軌、磁區,比較特別的是,硬碟將所有磁片之同一半徑磁軌
的組合稱為磁柱(cylinder),所以磁柱的數量和單面磁軌數是一樣的。每面的碟片都
擁有專用的磁頭,這些磁頭可以同時存取資料。所以磁頭數就是碟片的面數,磁柱數就
是每面的磁軌數。多個連續的磁區,組成一個磁叢(cluster),是作業系統存取硬碟資
料的單位。計算硬碟容量一般為:

磁軌總數 = 磁頭數目 × 磁柱數目(相當於面數 × 軌數)

硬碟容量 = 磁軌總數 × 每軌磁區數 × 磁區密度

例如 Seagate 公司生產的編號 ST21140A 硬碟,共有 16 個磁頭、4095 個磁柱,每


磁軌有 63 個磁區,每磁區可儲存 512bytes,所以此硬碟容量為:

磁軌總數 = 16 磁頭 ×4095 磁柱 = 65520 軌

硬碟容量 = 65520 軌 ×63 磁區 ×512bytes ≒ 2113M bytes

評估硬碟的效能除了容量外,速度也相當重要。客觀地評估硬碟速度的方式,可
將 資 料 存 入 磁 碟 或 由 磁 碟 讀 取 資 料 所 需 的 時 間 稱 為 存 取 時 間 (Access time, TA), 包
括 搜 尋 時 間 (Seek time, T S)、 旋 轉 時 間 (Rotation time, T R) 與 資 料 傳 輸 時 間 (data
transfer time, T D),即:

TA = TS + TR + TD

‧ 搜尋時間 T S: 也就是「找磁軌」的時間,磁碟機的驅動臂(或稱讀取臂)動作將磁頭移
到指定的磁柱(磁軌)上所需的時間。

‧ 旋轉時間 T R: 即「找磁區」的時間,主軸馬達運轉,磁碟片旋轉,使磁頭能讀取到指定
的磁區所花費的時間。

‧ 資料傳輸時間 T D: 開始「傳輸資料」的時間,磁頭就指定磁區位置後,將資料讀取並傳
送至主記憶體,或將資料寫入碟片,所花費的時間。

AC20410_06.indd 227 7/9/2020 15:44:48


228 微處理機

目前個人電腦常用的硬碟資料傳輸介面有 IDE、SATA、SCSI、SAS 等幾種,目前


以 SATA 最常見,圖 6-32 為四種介面傳輸線外觀。 IDE 是一種並列傳輸連接埠,早期廣
泛用於硬碟和 CD-ROM 的介面,也稱為 ATA 連接埠。一般說來,ATA 是一個控制器技
術,而 IDE 是一個符合 ATA 的磁碟機技術,但是兩個術語經常被互相使用。於 2002 年
推出 SATA(Serial ATA)後,原有的 ATA 改名為 PATA。

SATA 為串列傳輸介面,排線較細,支援熱插拔的功能。SATA I 速度為 1.5 Gbit/s、


SATA II 速度為 3Gb/s,SATAIII 速度為 6Gb/s。因採用的是 8/10 編碼,每 10 位元編碼
中 只 有 8 位 元 是 真 實 資 料, 所 以 例 如 SATA III 速 度 為 6Gb/s, 實 際 資 料 傳 輸 速 率 為
8
(6Gbits × ) / 8bits = 600MB/s 。
10

IDE SATA SCSI SAS


圖 6-32 硬碟傳輸介面外觀比較

SCSI (Small Computer System Interface,小型電腦系統介面)是一種用於電腦及


其週邊裝置之間的並列傳輸介面標準,可以連接例如硬碟、軟碟機、光碟機、印表機、
掃描器等。使用時,需要在電腦擴充槽加裝 SCSI 控制卡,最多可接 15 部裝置,效能高、
價格較昂貴,一般用於伺服器主機。

SAS (serial attached SCSI)介面可說是 SCSI 的串列傳輸版,而 SATA 是 ATA 的


串 列 版。SAS 的 熱 插 拔 插 槽 可 以 同 時 相 容 SAS 和 SATA 兩 類 硬 碟。SATA 的 硬 碟 可 接
在 SAS 的控制器使用,但 SAS 硬碟並不能接在 SATA 的控制器使用。第一代 SAS 可提
供 每 個 驅 動 器 3.0 Gbps 的 傳 輸 速 率, 第 二 代 SAS 為 6.0 Gbps、 第 三 代 SAS 則 為 12.0
Gbps。表 6-11 為四種硬碟傳輸介面的比較。

AC20410_06.indd 228 7/9/2020 15:44:48


Chapter 6 │記憶體資料存取 229

表 6-11 硬碟傳輸介面特性比較

項目 連接 距離 連接
介面 多工模式 接腳數
類型 硬碟數 ( 最長 ) 拓樸

ATA 並列 2 半雙工 0.4m 匯流排 80pin

SATA 串列 1 半雙工 1m 點對點 7pin

16
SCSI 並列 半雙工 12m 匯流排 68pin
( 含控制器 )

SAS 串列 16256 全雙工 10m 點對點 7pin

傳統硬碟需要機械式馬達驅動轉動磁盤,在高速運轉會有噪音,如果震動或摔落造
成讀寫頭位移,容易造成硬碟損壞。 固態硬碟 (Solid State Disk,簡稱 SSD)內部不是
磁碟而是積體電路,沒有會轉動的碟片,也沒有馬達的耗電需求,而是採用 NAND 型
快閃記憶體組裝而成,具有耗電量低、重量輕且薄、無噪音、抗震動與速度快等優勢。
另外有一種 混合式固態硬碟 (SSHD),由傳統硬碟及固態硬碟混合而成,除了傳統大
容量的磁碟片外,還內建 NAND 快閃記憶體,兼具有讀寫快速及容量大的優點,通常
是將最常用的檔案資料存於快閃記憶體,以加快資料的讀取速度。

硬碟以內部磁碟片直徑大小分為 3.5 吋與 2.5 吋兩種,桌上型電腦常使用 3.5 吋,


2.5 吋 則 應 用 在 筆 記 型 電 腦、 行 動 硬 碟 等。 硬 碟 外 觀 上, 正 面 通 常 會 標 示 傳 輸 介 面、
轉速與容量三種規格,通常也常透過這三個規格初步瞭解硬碟,例如圖 6-33 為 SATA
7200RPM 1TB 的硬碟。其中 7200 RPM 是指每分鐘碟片轉動 7200 圈。

早期硬碟大都標示 CHS 表示磁柱 / 磁頭 / 磁


區的數量,即可換算硬碟容量。但是 CHS 模式採
24bits 表 示, 前 10bits 表 示 cylinder, 中 間 8bits
表示 head,後面 6bits 表示 sector( 從 1 開始編號 ),
所 能 定 的 最 大 範 圍 是 1024 磁 柱、256 磁 頭、63
磁區,也就是最大只能定址 8GB。

硬碟容量愈來越大,CHS 顯然不敷使用,衍
伸 出 LBA( Logical Block Address, 邏 輯 區 塊
位址 ),另一種描述硬碟邏輯區塊順序的方法,
LBA 是非常單純的一種定址模式,從 0 開始編號
圖 6-33 硬碟規格識別
磁區號碼,第一區塊 LBA = 0,第二區塊 LBA =
1,依此類推。早期的 LBA 由 24 位元定址,最大

AC20410_06.indd 229 7/9/2020 15:44:48


230 微處理機

定址範圍是 8.4GB,後來又改良 LBA 模式為 28 位元定址,最大定址範圍是 137GB,還


是不夠用,2002 年 ATA-6 規範採用新規格 LBA 使用 48 位元來定址,最大的定址範圍
高達 128PB。

所以如果硬碟有標示 LBA,則以 LBA 計算可使用的最大容量,如圖 6-33 例子,


LBA = 1953525168,表示硬碟共有這麼多磁區,所以硬碟容量 = LAB × 磁區容量 =
1953525168 × 512B = 1TB。

6-3-3 光碟
光碟(Optical disc)泛指「用雷射光掃描碟片以讀出資料」的一種媒介,種類眾多,
這 裡 只 探 討 應 用 在 電 腦 領 域 儲 存 資 料 的 光 碟, 常 見 的 有 CD (Compact Disc)、 DVD
(Digital Versatile Disc)與 BD(Blu-ray Disc,藍光光碟)三大類型,如表 6-12 所示,
以唯讀、可寫一次與可多次複寫分類列出。

表 6-12 光碟分類

項目
唯讀型 可寫一次型 可複寫型
類型

CD CD-ROM、VCD CD-R CD-RW

DVD DVD-ROM DVD-R、DVD+R DVD-RW、DVD-RAM、DVD+RW

BD BD-ROM BD-R BD-RE

CD 最初是為儲存音樂而設計的,1985 年由 SONY 和飛利浦制定的 CD-ROM 標準,


以存取在電腦的二進位數據。CD-ROM(Compact Disc – Read Only Memory,唯讀記
憶光碟)主要提供使用者讀取資料,只能在光碟製作時寫入資料,資料將永久保存在光
碟上,使用者不可以更改或寫入,具有唯讀特性。CD-R 則是提供使用者寫入一次資料,
而 CD-RW 可重複多次清除、寫入資料。

CD-ROM 資料在光碟生產時已經記錄,其材質包括反射層金屬及光碟片基材聚脂塑
膠圓盤碟片。資料記錄原理是將資料記錄在碟片上,在原盤刻畫為凹(pit)與平(land)
連成一條螺旋狀的軌道,如圖 6-34(a) 所示,利用雷射聚光良好的特性,對原盤表面發
射雷射光,當雷射光射在平坦的槽上,幾乎都反射回去,反之,如果射在凹陷的槽中,
則光束散射,只有小部分反射,反射的光束強弱經由光感測器感測決定資料的 1 或 0,
如圖 (b),land 與 pit 變化時資料為 1,沒有變化時為 0。

AC20410_06.indd 230 7/9/2020 15:44:49


Chapter 6 │記憶體資料存取 231

因為圓盤內、外記錄資料的密度(或磁區長度)是一樣的,所以光碟機讀取資料時
旋轉速度需要變化,存取愈內軌轉速愈快。雷射光軌跡間距為 1.6μm,由光碟片轉軸系
統、光束直徑、光碟片傾斜度、光碟片厚度等因素決定凹洞間距約為 0.4 ~ 0.5μm。

(a) 顯微鏡下的 CD-ROM (b) pit 與 land

圖 6-34 CD-ROM 的資料紀錄

光碟機基本構造如圖 6-35 所示,包含雷射頭、光學讀取頭、主軸馬達、控制電路等,


由雷射頭發射雷射光,經聚光鏡聚焦照射在光碟片表面,可能反射或散射,由光學讀取
頭是否接收光源決定資料的 0 或 1。整個讀取過程,由尋軌馬達帶動滑動機構,移動讀
取結構,再配合主軸馬達旋轉光碟片,就可針對整塊光碟進行讀取或寫入資料。

圖 6-35 光碟機機構

就儲存的結構而言,光碟與軟硬碟是類似的,但密度提高不少。一般而言,軟碟每
英吋約有 100 軌,硬碟數千軌,光碟則可達每英吋 16000 軌。

AC20410_06.indd 231 7/9/2020 15:44:49


232 微處理機

可改寫型光碟提供與磁碟機有相同可重複讀、可重複寫的功能,目前常用的技術有
相變 (phase-change)與 磁光 (magneto-optical)兩種。相變型光碟,簡稱 PC-disc,採
用碲合金,是介於晶體與非晶體狀態的物質,在雷射光束的熱力作用下,導致由非晶體
狀態轉變為晶體狀態,也可由晶體狀態轉變為非晶體狀態,即資料的寫入與清除,晶體
狀態反射率高表示資料 1,非晶體狀態反射率低表示資料 0。

表 6-13 是 CD、DVD 與 BD 三種碟片結構的比較。從 DVD 的物理規格來看,共有


DVD-RAM、DVD-R、DVD+R 以 及 DVD-RW、DVD+RW 等 幾 種。DVD 燒 錄 碟 片 軌
道從內圈到外圈呈 螺旋狀 分佈,資料軌道是高低起伏的,呈 蛇形波紋狀 。這種波浪被稱
為 Wobble,週期抖動的 Wobble 給驅動器提供一個恒定的時間資訊,提供雷射光頭確認
調整方向,正確鎖定軌道。

表 6-13 CD-ROM、DVD-ROM 與 BD 特性比較

比較項目 CD-ROM DVD-ROM BD

發表年 1972 年 1995 年 2002 年

780nm 630nm 或 650nm 405 nm


雷射光波長
紅外線 紅光雷射 藍光雷射

碟片直徑 120mm 120mm 120mm

碟片中央孔徑 15mm 15mm 15mm

碟片厚度 1.2mm 1.2mm 1.2mm

磁軌間距離 1.6μm 0.74μm 0.32μm

4.7GB 25GB
儲存容量 約 650MB
(單面單層) (單面單層)

表 6-14 DVD 規格與特性

規格 特性

DVD±R 只可燒錄一次,容量 4.7GB

DVD±R DL 只可燒錄一次,容量 8.5GB,DL 為 Double Layer(雙層),即 DVD-9

DVD±RW 可燒錄多次重複寫入資料,若要刪除資料,整片資料要抹除

DVD-RAM 可燒錄多次重複寫入資料,若要刪除資料,可視需要部分刪除

AC20410_06.indd 232 7/9/2020 15:44:49


Chapter 6 │記憶體資料存取 233

藍 光 光 片 以 405nm 藍 光 雷 射 讀 取 資 料, 碟 片 資 料 密 度 更 高, 軌 間 距 離 0.32μm,
包 括 一 次 燒 錄 型 BD-R, 與 可 重 複 燒 錄 的 BD-RE, 單 層 容 量 為 25GB、 雙 層 50GB 與
BDXL 為 128GB。

表 6-15 DVD 與 BD 結構與容量

規格 結構 容量

DVD-5 單面單層 4.7GB

DVD-9 單面雙層 8.5GB

DVD-10 雙面單層 9.4GB

DVD-18 雙面雙層 17GB

單層 25GB

雙層 50GB
BD
三層(BDXL) 100GB

四層(BDXL) 128GB

光碟機的存取速度,以「倍」為單位,倍速愈高,表示讀寫的速度愈快。但 CD、
DVD 與 BD 的單倍速度並不相同,如表 6-16 所示。

表 6-16 CD、DVD 與 BD 特性比較

光碟種類 雷射光波長 單倍速度 最高倍速

CD 780 nm 150 KB/sec 52 倍

DVD 650 nm 1.35 MB/sec 24 倍

BD 405 nm 4.5 MB/sec 12 倍

6-3 隨堂練習
1. 有一台硬碟標示 CHS:1683/16/63,表示此硬碟磁頭(Header)數為     、
磁柱(Cylinder)數為     、磁區(Sector)數為     ,所以此硬碟容
量為     MB。

2. 硬碟的存取時間包括      、      與      。

3. 某 硬 碟 內 部 資 料 傳 輸 速 率 為 600M bits/s, 平 均 搜 尋 時 間 為 8.4ms, 旋 轉 速 度 為


7200RPM,如果不計算其他延遲時間,請問讀取 3M bytes 資料約需費時     秒。

AC20410_06.indd 233 7/9/2020 15:44:49


234 微處理機

6-4 快取記憶體
計算機的「記憶體系統」通常以階層方式表示,
包 括 CPU 內 部 的 暫 存 器 與 快 取 記 憶 體, 主 機 內 部 的
主 記 憶 體 與 主 機 外 部 的 輔 助 記 憶 體。 為 提 高 CPU 存
取 資 料 的 效 率, 通 常 會 採 用「 快 取 記 憶 體 (cache
memory)」 與「 虛 擬 記 憶 體 (virtual memory)」 兩
種策略。快取記憶體是在主記憶體與 CPU 之間,加上
一層存取速度快、容量小、費用高的快取記憶體,一
般為 SRAM。虛擬記憶體則是電腦系統記憶體管理的
一種技術,管理輔助記憶體與主記憶體之間的資料傳
送,或者說,將輔助記憶體「當成」主記憶體來用,
擴增主記憶體可用容量。典型的記憶體架構,如圖 6-36
所示。就存取速度與費用而言,快取記憶體 > 主記憶
體 > 虛 擬 記 憶 體, 就 容 量 而 言 則 相 反, 虛 擬 記 憶 體 >
主記憶體 > 快取記憶體,但是兩種策略都是為了提高
圖 6-36 快取記憶體與虛擬記
CPU 存取資料的效率。 憶體

對於內儲式微處理機架構而言,CPU 現正執行的程式一定要先由輔助記憶體中,載
入到主記憶體中,再開始一道一道指令執行。在有快取記憶體的系統架構中,如圖 6-37
所示,終極目標是希望 CPU 存取資料的對象大部分都是快取記憶體,因為快取記憶體
速度快,所以這樣就可以提高整個執行程式的效能。

圖 6-37 快取記憶體操作示意圖

AC20410_06.indd 234 7/9/2020 15:44:50


Chapter 6 │記憶體資料存取 235

當 CPU 需要讀取資料時,先檢查是否在快取記憶體內,如果找到,直接讀取,當
然讀取速度很快。如果找不到,則至主記憶體讀取,並將此區段資料與附近的區段資料
(指令)都載入快取記憶體中,區段的大小可以由 1 字組到 16 字組之間。當 CPU 再存
取下一筆資料時,相當可能被「命中(hit)」,已在快取記憶體中,CPU 可直接由快
取記憶體中讀取,提高讀取速度。對於 循序結構 、 重複讀取 (如迴圈)與 副程式呼叫 的
程式碼,命中率(hit ratio)都相當高。為了提高快取記憶體的命中率,主記憶體與快
取記憶體之間的對應方式更顯重要。

提供「快取」的目的是為了讓資料存取的速度提高,原理是記憶體中「執行程式與
提取資料具有區域性」。為了充分發揮快取的作用,主要依靠「暫存剛剛存取過的資料
(副程式)」與「程式循序特性」,還要使用硬體實現的指令預測與資料預取技術,儘
可能把將要使用的資料預先從記憶體中取到快取裡。

快 取 技 術 早 期 只 應 用 在 超 級 電 腦 上, 但 是 現 在 電 腦 上 使 用 的 的 AMD 或 Intel 微
處 理 機 都 在 晶 片 內 部 整 合 了 大 小 不 等 的 資 料 快 取 和 指 令 快 取, 通 稱 為 L1 快 取(L1
Cache),而比 L1 更大容量的 L2 快取曾經被放在 CPU 外部,與主記憶體之間。但是
現在更昂貴的 CPU 會將 L2 Cahce 規劃成為 CPU 內部的標準元件;配備比 L2 快取還要
大的 L3 快取在 CPU 外部。

由於主記憶體容量遠大於快取的容量,因此兩者之間就必須按一定的規則對應起
來。「位址映對」就是指按某種規則把主記憶體塊裝入快取中,當按某種映對方式把主
記憶體區塊裝入快取後,每次存取快取時,需把主記憶體的 實體位址 變換成快取的位址,
進而存取其中的資料。

虛擬記憶體則是希望擴大主記憶體的容量,「將輔助記憶
體當成主記憶體來用」,讓系統可以同時執行更大容量、更多
的程式。但是,當 CPU 要讀取的資料在輔助記憶體中,則必須
先讀入主記憶體中,CPU 才能讀取。所以虛擬記憶體是一種記
憶體管理策略,並不是實體記憶體。快取、主記憶體與虛擬記
憶體的關係如圖 6-38 所示。

虛 擬 記 憶 體 與 快 取 記 憶 體 兩 者 策 略 的 目 的, 都 是 為 提 高
CPU 存取資料的效率,求得最快的平均存取速度,降低記憶體
成本,但在作法上確有很大的差異。主要有以下幾點不同:
圖 6-38 記憶體架構

AC20410_06.indd 235 7/9/2020 15:44:50


236 微處理機

1 快取記憶體所儲存的是 CPU 最近常用的程式與資料,虛擬記憶體所存的,卻是


CPU 目前不用的。

2 CPU 可直接向快取記憶體與主記憶體存取資料,但不可以向輔助記憶體直接存
取資料,必須先將輔助記憶體的資料載入主記憶體中,CPU 才能進行存取工作。

3 三 者 存 取 速 度、 價 格 關 係 皆 為: 快 取 記 憶 體 > 主 記 憶 體 > 輔 助 記 憶 體。
容量關係則為:快取記憶體 < 主記憶體 < 輔助記憶體。

4 快取記憶體的區塊約為 1 ~ 16 字組,虛擬記憶體的區塊約為 64 ~ 4096 字組。


主記憶體容量遠大於 CPU 快取,磁碟容量遠大於主記憶體,因此無論是哪一層次
的快取或緩衝都有相同的問題,當容量有限的快取或緩衝空閒全部用完後,又有新的內
容要加入時,如何決定捨棄哪一部分原有內容,才能騰出空間放入新的內容。解決這個
問題的演算法有幾種,如最久未使用演算法(LFU)、先進先出演算法(FIFO)、最近
最少使用演算法(LRU)、非最近使用演算法(NMRU)等,這些演算法在不同系統環
境的優劣,需要設計者仔細評估,選擇最合適的一種。

6-4 隨堂練習
1. 為提高 CPU 存取記憶體資料效率,通常會採用     與     兩種策略。

2. 那些結構的程式能使快取記憶體命中率較高?
      、      、      等。

3. 虛擬記憶體是主記憶體與      之間的對應關係,希望能提高主記憶體可使
用的容量。

6-5 DMA 基本原理
微處理機系統中 CPU、記憶體與 I/O 組成鐵三角,執行工作時常常需要互相傳輸資
料,而 I/O 裝置速度與 CPU 差異很大,且記憶體與 I/O(例如硬碟)資料傳輸量常常很
龐大,應適時採用合宜的傳輸方式才能提高系統效能。

AC20410_06.indd 236 7/9/2020 15:44:50


Chapter 6 │記憶體資料存取 237

6-5-1 DMA 概述
在微處理機的世界裡 CPU 掌管一切,即使是 I/O 與記憶體之間的資料傳送,CPU
也要全盤瞭解工作的內容,可依 CPU 介入的程度分為輪詢式、中斷與直接記憶體存取
(DMA,Direct Memory Access)。

輪詢式執行作業時,完全由 CPU 控制資料傳輸的起始、操作與終止,適合應用在


CPU 工作不繁忙、資料傳輸量小的場合,程式撰寫較容易。

而中斷方式則衍生自週邊設備的速度跟不上 CPU,如果以輪詢式的方式,每一道
CPU 與 IO 之間的資料傳輸都需 CPU 監視,CPU 幾乎都是在等待週邊設備的回應,而
使 CPU 工作效率降低。這個缺點可以用中斷來避免,中斷是當週邊設備完成上一筆資
料傳輸再發出中斷要求通知 CPU 傳送下一筆資料,或當週邊備妥資料時向 CPU 發出中
斷要求,通知 CPU 來讀取資料。在週邊處理資料的同時,CPU 可執行其他工作,直到
週邊發出中斷要求,再進行週邊要求的資料傳輸工作。

直 接 記 憶 存 取(DMA) 需 要 額 外 的 晶 片 DMA 控 制 器(DMA Controller, 簡 稱


DMAC)幫忙,才能完成資料傳輸工作。圖 6-39 為具有 DMA 控制器的微處理機系統架
構 ,DMA 控制器提供「記憶體與 I/O 週邊裝置間直接做資料傳送」的介面。在快速儲
存裝置與記憶體之間的資料傳送時,如果每一筆資料傳輸 CPU 都介入控制,反而會影
響傳輸速率,假如讓儲存裝置與記憶體直接進行資料傳輸將有助於提升傳輸速度,這種
方式稱為直接記憶存取(DMA),在 DMA 傳輸期間,CPU 並不介入控制記憶體與匯
流排,而是直接由 DMA 控制器管理匯流排,並管理記憶體與 I/O 之間的資料傳送,此
時 CPU 呈現閒置狀態。

圖 6-39 具有 DMA 的微處理機系統方塊圖

AC20410_06.indd 237 7/9/2020 15:44:50


238 微處理機

DMA 進行時,DMAC 會向 CPU 提出「匯流排要求(BR,bus request)」控制訊號,


要求 CPU 讓出匯流排控制權,CPU 接受時,會停止指令執行,並將位址匯流排、資料
匯流排與讀 / 寫控制線呈現高阻抗,發出「匯流排授與(BG,bus grant)」訊號,讓出
匯流排控制權。此時,DMA 控制器就能使用位址與資料匯流排,進行 I/O 與記憶體之
間的直接資料傳輸。BR 與 BG 有時也標示為 HOLD 與 HLDA。

當資料傳輸完畢,DMA 控制器會取消「匯流排要求」訊號,CPU 接收到後會取消


「匯流排授與」訊號,取得匯流排的控制權,恢復正常工作。

DMA 的資料傳輸方向只有「主記憶體→週邊裝置」、「週邊裝置→主記憶體」兩個,
其工作分別說明如下。

1 資料輸出控制:主記憶體 → 週邊裝置
  當 CPU 欲將大量資料送往指定週邊設備時,CPU 會先在主記憶體安排好所
要傳送的資料,並告知 DMA 控制器資料傳輸的起始位址、資料數,啟動 DMA
工作,將匯流排控制權讓給 DMA 控制器就可以了!

2 資料輸入控制:週邊裝置 → 主記憶體
  如果 CPU 希望讀取指定週邊設備的資料時,可先啟動 DMA 控制器,將週
邊設備的資料讀入記憶體,再行處理。CPU 只要告知 DMA 控制器希望將週邊
設備的資料搬移到主記憶體的位址、資料數,再啟動 DMA 控制器並將匯流排
控制權讓給 DMA 控制器。

觀察 CPU 與 DMA 控制器之間的聯繫,在共用匯流排資源的狀況下,瞭解如何協調


以完成記憶體與週邊裝置的資料傳輸,圖 6-39 中標示 1 ~ 6 控制訊號的動作順序。

1 週邊裝置向 DMA 控制器發出 DMA 要求。

2 DMA 啟動 BR(匯流排要求)請求 CPU 讓出匯流排使用權。

3 當 CPU 認可後,在位址暫存器設定起始位址,在字數計數器設定傳輸字數,再
以 BG(匯流排授與)通知 DMA 控制器,表示允許 DMA 控制器使用匯流排。

4 DMA 控制器將位址暫存器的位址值送到位址匯流排,然後發出 WR 或 RD 訊號。


並發送 DMA 認可訊號給週邊裝置。
注意 DMA 控制器的 WR 或 RD 訊號線為雙向,當 BG = 0 為輸入線,使 CPU 可
以讀寫 DMA 控制器內部暫存器;當 BG = 1 為輸出線,DMA 控制器可向主記
憶體發出 WR 或 RD 訊號,以執行寫入或讀取的動作。

AC20410_06.indd 238 7/9/2020 15:44:50


Chapter 6 │記憶體資料存取 239

5 當週邊裝置收到 DMA 認可訊號,會將一個字組資料送入資料匯流排或從資料


匯流排讀出一個字組的資料。

6 當傳輸一個字組後,位址暫存器遞增、字數計數器遞減。若字數計數器不等於
0,傳輸會繼續直到為 0。DMA 控制器取消匯流排要求,通知 CPU 傳輸終止。

DMA 控制器可能有一個以上的通道,每一個通道都有 DMA 要求與 DMA 認可等控


制信號,可連接不同的週邊裝置。每個通道都有獨立的位址暫存器、字數暫存器等內部
暫存器。通道可設定優先順序,使較重要的週邊裝置取得較高優先順序的服務。

6-5-2 DMA 控制器架構


圖 6-40 為典型的 DMA 控制器方塊圖,以資料、位址匯流排及控制邏輯和 CPU 溝
通,藉由啟動 DS(DMA Select)及 RS(Register Select)兩個輸入,CPU 可透過位址
匯流排選擇 DMA 的暫存器,包括位址暫存器、字數暫存器或控制暫存器。WR 或 RD
都是雙向的,當 BG = 0 時,CPU 可藉由資料匯流排對 DMA 暫存器進行讀與寫的動作。
當 BG = 1 時,CPU 已經讓出匯流排控制權給 DMA 控制器,DMA 可以在位址匯流排上
指定位址,並透過控制 RD 與 WR 直接與記憶體溝通進行資料傳輸。

圖 6-40 DMA 控制器方塊圖

DMA 控制器中有三個暫存器,攸關整個資料傳輸動作,包括位址暫存器、字數計
數器與控制暫存器,功能分別敘述如下。

1 位址暫存器 :指示要存取的記憶體位址,位址暫存器所含的位址,透過位址匯
流排緩衝器,送至位址匯流排。當傳輸一字組後,位址暫存器自動加 1(遞增)。

AC20410_06.indd 239 7/9/2020 15:44:51


240 微處理機

2 字數計數器 :字數計數器中存有要傳輸的字數,當傳輸一個字組後,字數暫存
器自動減 1(遞減)。DMA 內部會測試字數暫存器是否為 0,0 即停止傳輸。

3 控制暫存器 :用來指定傳輸的模式。
當 DMA 控制器送出「匯流排請求」訊號給 CPU,要求 CPU 接受 DMA 動作。當
CPU 回覆「匯流排授與」認可時,就會執行下列四個動作:

1. 設定位址暫存器的值,即要讀取或寫入記憶體區塊的「啟始位址」。
2. 設定字數計數器的值,即記憶體區塊的資料數目。
3. 讓出匯流排控制權給 DMA 控制器。
4. DMA 控制器以 DMA 認可訊號,告訴週邊裝置,CPU 已認可 DMA 動作,並開始進
行 DMA 的讀或寫動作。
在 CPU 認可 DMA 後,DMA 控制器即開始動作。CPU 不再與 DMA 溝通。傳輸一
筆資料給週邊設備後,字數計數器自動減 1,位址暫存器加 1。持續資料傳輸動作,直
到字數計數器為 0 才停止,完成工作。

DMA 傳輸資料的工作模式很多,第一種為「 要求式 (demand mode)」,這種工


作模式在 CPU 認可 DMA 時,DMA 會把所有資料傳送完畢才會把匯流排控制權交還給
CPU。第二種「 突發式 (burst mode)」,DMA 控制器以區塊式傳輸資料,傳送一個區
塊資料完成後,就把匯流排控制權交還 CPU,然後再重複 DMA 要求,經 DMA 認可後
再傳下一區塊資料。為了降低 DMA 動作對 CPU 所造成的影響,使用第三種「 週期竊取
式 (cycle stealing mode)」最佳,將 DMA 週期包含在 CPU 週期(系統週期)內,傳
送一個或數個字組(word)資料,之後再把匯流排控制權還給 CPU,所以只當 CPU 不
使用匯流排時,DMA 才會偷取匯流排使用。

6-5 隨堂練習
1. CPU 掌控記憶體與 I/O 之間的資料傳輸可分為      、      與
      三種。

2. 因為匯流排只有一組,DMAC 動作時,CPU 可否正常工作?      。

3. DMA 傳輸資料的工作模式可分為      、      與      三種。

AC20410_06.indd 240 7/9/2020 15:44:51


Chapter 6 │記憶體資料存取 241

6-6 DMA 控制晶片介紹
8237 是 一 顆 可 程 式 化 DMA 控 制 晶 片(Programmable DMA controller), 共 有
40pin,接腳與功能分組如圖 6-41 所示。8237 如同特殊用途的微處理機,負責 I/O 與記
憶體之間的高速資料傳輸,達成 DMA 工作,8237 提供四個通道可用來傳輸資料,但同
時間一次只有一個通道可進行資料傳輸,且四個通道具有優先順序。在新的微處理機系
統中,DMA 控制器大都包含在系統的控制晶片組中。

圖 6-41 8237 接腳與功能分組

8237 內 部 結 構 頗 為 複 雜, 圖 6-42 主 要 展 示 8237 與 CPU 的 工 作 關 係, 只 畫 8237


出內部四個重要的暫存器、計數器。8237 的 DREQ0~DREQ3 與 DACK0~DACK3 提供
四個通道連接 I/O 週邊,圖中標示 1 ~ 4 表示動作順序。 1 週邊以 DREQ 向 8237 發
出 DMA 要求, 2 8237 則以 HOLD 向 CPU 請求匯流排控制權。CPU 如果同意, 3 CPU
以 HLDA 回 覆 8237, 接 著 4 8237 再 以 DACK 回 覆 週 邊, 完 成 DMA 的 前 置 作 業。 如
果 DREQ 0 ~ DREQ 3 同時有兩個以上發出要求,8237 內部有優先控制器決定通道的優
先順序,當工作於固定優先順序時,DREQ 0 的優先順序最高,DREQ 3 優先順序最低。

AC20410_06.indd 241 7/9/2020 15:44:51


242 微處理機

圖 6-42 8237 工作連接簡單示意

1 目前位址暫存器 :為 16 位元暫存器,儲存目前 8237 正執行 DMA 工作的傳輸


位址,當 8237 完成一次傳輸工作後,暫存器內容會自動被減 1 或加 1,以指向
下一個要傳輸的記憶體位址。

2 目前字組計數器 :為 16 位元計數器,儲存 8237 要執行 DMA 傳輸的位元組數,


當 8237 完成一次傳輸工作後,計數器內容會自動減 1。

3 基本位址暫存器 :為 16 位元暫存器,儲存 8237 所要執行 DMA 傳輸工作的起


始位址。基本位址暫存器內容值將保持固定值,除非使用者設定另一個 DMA
工作。當目前字組計數器遞減為 FFFFH,基本位址暫存器的值會自動地被載入
目前位址暫存器。

4 基本字組計數器 :為 16 位元暫存器,儲存 8237 所要執行 DMA 傳輸工作的字


組數,同樣地,基本字組計數器內容值將保持固定值。當目前字組計數器遞減
為 FFFFH,基本字組計數暫存器的值會自動地被載入目前字組計數暫存器。

CPU 開始進行 DMA 工作時,CPU 會將啟始位址與字組數寫入 8237 的基本位址暫


存器與基本自組計數器。接著,8237 將上述基本暫存器內容載入目前暫存器,開始進行
資料傳輸。每傳輸一筆資料,目前字組計數器遞減,目前位址暫存器遞增(或遞減),
直到目前字組計數器遞減至 0 為止。

AC20410_06.indd 242 7/9/2020 15:44:52


Chapter 6 │記憶體資料存取 243

當 8237 執行 DMA 的傳輸工作,會有讀取、寫入兩種不同傳輸方向。讀取傳輸是


利用 IOR 與 MEMW 信號將資料由 I/O 讀出,寫入到所要傳輸的記憶體內。而寫入傳輸
則是利用 MEMR 與 IOW 信號將資料由記憶體讀出,並寫入所要傳輸的 I/O 內。

一 8237 工作模式
8237A 有 四 種 工 作 模 式, 分 別 為 單 一 傳 輸 模 式 (single transfer mode)、 區 塊 傳
輸 模 式 (block transfer mode)、 要 求 傳 輸 模 式 (demand transfer mode)、 串 接 模 式
(cascade mode),工作說明如表 6-17 所示。

表 6-17 8237 四種工作模式
工作模式 工作說明
. 每次 DMA 傳送時,只傳送一個位元組。傳送一個位元組之後,當前位元
組計數器減 1,位址暫存器加 1 或減 1,就將匯流排控制權交還給 CPU。
單一傳輸模式
. 特色:一次傳送一個位元組,效率較低,但保證在兩次 DMA 傳送之間,
CPU 有機會獲得匯流排控制權,執行一次 CPU 匯流排週期。
. 8237A 獲得匯流排控制權後,就會連續地傳送整個區塊資料,直到當前字
組計數器減到 0,才會終止 DMA 傳送,釋放匯流排控制權。
區塊傳輸模式
. 特色:一次請求傳送整個資料區塊,效率高,但在整個 DMA 傳送期間,
CPU 長時間無法控制匯流排。
. 與區塊傳輸模式類似,也是一種連續傳送資料的方式。不同的是,要求傳
輸模式每傳送一個字組就會檢測一次 DREQ 信號是否有效,如果有效,
則繼續傳送下一個位元組,如果無效,則停止資料傳送,停止 DMA 工作,
要求傳輸模式 但會保持目前的位址暫存器和位元組計數器的值。當 DREQ 再次有效時,
DMA 會繼續工作,直到目前字組計數器減到 0 位址,才終止 DMA 傳送,
釋放匯流排控制權。
. 特色:DMA 操作可由 DREQ 信號控制資料傳送的過程。
. 串接多個 8237 增加 DMA 通道,由主、從兩級構成,最多可擴充為 16 個
串接模式 通道。
. 特色:串接多個 8237,可以擴展多個 DMA 通道。

8237 提供串接工作模式,如圖 6-43 所示,將第二級的 HOLD 與 HLDA 接至第一


級的 DREQ0 與 DACK0,以此類推。圖中所示,最多可以提供 16 個通道的 DMA 資料
傳輸。如果需要更多傳輸通道,可以再串接第三層,連接方法相同。

AC20410_06.indd 243 7/9/2020 15:44:52


244 微處理機

圖 6-43 串接 8237 連接方式

二  記憶體對記憶體的資料傳輸

為了提高資料傳輸的效率,DMA 控制器除了可以執行記憶體與 IO 之間的資料傳


輸,也可進行記憶體之間的資料傳輸,也就是記憶體內部資料的拷貝或搬移。當 8237
工作於本工作模式時,只要指定來源位址、目的位址、搬移或拷貝的數量,再啟動 8237
工作即可。

三   通道的優先順序
一顆 8237 擁有四個資料通道,可接受四個 DMA 請求,如果有兩個通道同時發出
DMA 要求時,8237 會依據優先順序決定接受哪一個 DMA 要求。8237 處理通道間的優
先順序有兩種方式:

1 固 定 優 先 順 序(fixed priority) : 當 8237 以「 固 定 優 先 順 序 」 方 式 決 定 通


道間的優先順序時,DREQ 0 的優先順序順序最高,DREQ 3 最低,即 DREQ 0 >
DREQ 1 > DREQ 2 > DREQ 3。

2 旋 轉 式 優 先 順 序(rotating priority) : 當 8237 以「 旋 轉 式 優 先 順 序 」 方 式


決定通道間的優先順序時,以最後被服務的 DMA 通道優先順序最低,這樣將
使各通道的被服務的機會均等。例如表 6-18 可表達利用旋轉式優先順序方式操
作,優先順序的變化,假設一開始優先順序為通道 0 > 通道 1 > 通道 2 > 通道 3。

AC20410_06.indd 244 7/9/2020 15:44:53


Chapter 6 │記憶體資料存取 245

表 6-18 旋轉式優先順序動作說明

時間 正在服務 提出要求
目前優先順序 說  明
序 的通道 服務通道

‧ 假設通道 1 與通道 2 同時提出要求。


通道 1> 通道 2> ‧ 因通道 1> 通道 2,所以先服務通道 1,
1 通道 1 通道 2
通道 0> 通道 3 優先順序列為最高。
‧ 通道 2 將優先順序提高,排於其後。

‧ 通道 1 剛服務完畢,優先順序排於最
後。
通道 2> 通道 3> ‧ 通道 2 正在服務,最高優先。
2 通道 2 通道 3
通道 0> 通道 1 ‧ 假設此時通道 3 也提出要求,但其優
先順序在通道 2 之後,不予執行,排
於其後。

通道 3> 通道 0> ‧ 待通道 2 完成後,8237 接受通道 3 的


3 通道 3
通道 1> 通道 2 要求,並將通道 2 優先順序降為最低。

通道 0> 通道 1>
4 ‧ 通道 3 服務後優先順序降為最低。
通道 2> 通道 3

6-6 隨堂練習
1. 一個 8237 提供    個通道可用來傳輸資料。

2. 8237 串接模式的目的是                。

3. 8237 工作於固定優先順序時,        優先順序最高。

AC20410_06.indd 245 7/9/2020 15:44:53


246 微處理機

Chapter 6 學習目標回顧

學習目標 1:能描述記憶體階層分類記憶體
1. 記憶體階層分類如下圖:

學習目標 2:能描述三種依製造技術分類的記憶體特性與產品
2. 記憶體依據製作材料及揮發性分類如下圖:

(a) 依製作材料分類 (b) 依揮發性分類

學習目標 3:能說明半導體記憶體資料存取原理
3. ROM 的分類與特性如下表所示:

類 型 特性簡述
Mask ROM 不能更改資料,適合大量生產
PROM 只能燒錄一次
EPROM 可燒錄多次,燒錄前需用紫外線清除原來資料
EEPROM 可燒錄多次,燒錄前需用高電壓清除原來資料
Flash ROM 可讀寫,需以高電壓清除與寫入資料

AC20410_06.indd 246 7/9/2020 15:44:54


Chapter 6 │記憶體資料存取 247

Chapter 6 學習目標回顧

4. Flash 快閃記憶體依結構與設計原理不同,可分為 NOR Flash 與 NAND Flash 兩型。


5. RAM 分類如下圖:

6. SRAM 以雙穩態電路為主要架構,寫入資料後,只要電源不切斷,就可保存資料。
7. DRAM 利用小電容幾乎沒有放電迴路的特性來保存資料,但需要附加刷新電路。
為了減少位址線的數目,使用列位址激勵 RAS 與行位址激勵 CAS 達成位址多工。
8. SDRAM 表示記憶體時脈與 CPU 的時脈能同步存取資料,常見的有 DDR2 ∼ DDR4。
學習目標 4:能描述高容量儲存裝置的種類與基本原理
9. 輔助記憶體分類如下:

種類 產品
磁性輔助記憶體 磁碟、磁帶、磁泡、軟碟、硬碟、磁性光碟(MO)
光學輔助記憶體 CD-ROM、CD-R、CD-RW、DVD、BD

10. 軟碟容量 = 儲存面數 × 磁軌數目 × 每軌磁區數 × 磁區密度。


硬碟容量 = 磁頭數目 × 磁柱數目 × 每軌磁區數 × 磁區密度。
11. 硬碟存取時間 = 搜尋時間 + 旋轉時間 + 資料傳輸時間。
12. 常見硬碟傳輸介面為 IDE、SATA、SCSI、SAS 等。
13. 光碟常見的有 CD(Compact Disc)、DVD(Digital Versatile Disc)與 BD(Blu-ray
Disc,藍光光碟)三種。
14. 為 提 高 CPU 存 取 資 料 的 效 率, 通 常 採 用 會 採 用「 快 取 記 憶 體(cache
memory)」與「虛擬記憶體(virtual memory)」兩種策略。
學習目標 5:能描述 DMA 的工作特點
15. I/O 與記憶體之間的資料傳送,CPU 也要全盤瞭解工作的內容,可依 CPU 介入的程
度分為程式化 I/O、中斷與 DMA 三類。
16. DMA 工作時通常需要有三種暫存器,包括位址暫存器、字數計數器與控制暫存器。
學習目標 6:能指出 8237 的簡要特性
17. 8237 是一顆可程式化 DMA 控制晶片,有四種工作模式,分別為單一傳輸模式、
區塊傳輸模式、要求傳輸模式、串接模式(cascade mode)。

AC20410_06.indd 247 7/9/2020 15:44:54


248 微處理機

Chapter 6 課後習題

選擇題
6-1 1. 微算機中 CPU 內部的算術邏輯運算單元所需的資料,由下列那個資料儲存
單元讀取資料的速度最快?
(A) 暫存器 (B) CACHE (C) 主記憶體 (D) 硬碟。

2. 對 CPU 而言,下列何種具有最快的存取速度?
(A) L2 Cache (B) 暫存器 (C) DDR SDRAM (D) L1 Cache。

3. 請依照下列裝置的存取速度,由快到慢依序排列
甲:快取記憶體 乙:硬碟 丙:暫存器 丁:主記憶體
(A) 丙丁乙甲 (B) 甲丙丁乙 (C) 甲丁丙乙 (D) 丙甲丁乙。

6-2 4. 一個 16K×1 DRAM 有 128 列(row)需要在 2 ms 之內更新(refreshing)


完畢,請問相鄰 兩列的更新時間間隔不得大於多少時間?
(A) 7.812 µs (B) 15.625 µs (C) 31.250 µs (D) 62.500 µs。

5. 下列敘述何者不正確?
(A) DRAM 晶片之單位面積的位元數高於 SRAM 晶片
(B) 電源關掉後,DRAM 與 SRAM 的內容皆無法保留
(C) DRAM 控制電路比 SRAM 簡單
(D) DRAM 需做資料更新(refresh),SRAM 則不用。

6. 下列有關快閃(flash)記憶體的敘述,何者錯誤?
(A) 在資料規劃與清除方面,快閃記憶體具有 EPROM 與 EEPROM 的優點
(B) 為揮發性(volatile)記憶體
(C) 常用於隨身碟中
(D) 以電氣方式清除資料。

7. 以下就靜態隨機存取記憶體(SRAM)之敘述何者有錯誤?
(A) 由正反器(Flip-Flop)所構成
(B) 以電容的充放電特性來儲存 0 與 1 的資料
(C) 電源消失後資料隨即消失
(D) 不須定時作翻新(Refresh)。

AC20410_06.indd 248 7/9/2020 15:44:55


Chapter 6 │記憶體資料存取 249

Chapter 6 課後習題

8. 使用 DRAM 時,列位址(RA),行位址(CA),列位址閃控(RAS),
行位址閃控(CAS)等訊號之正確產生時序為何?
(A) RA, RAS, CA, CAS (B) RAS, RA, CAS, CA
(C) CA, CAS, RA, RAS (D) CAS, CA, RAS, RA。

9. 下列敘述何者錯誤?
(A) 動 態 隨 機 存 取 記 憶 體(DRAM) 消 耗 功 率 比 靜 態 隨 機 存 取 記 憶 體
(SRAM) 大 (B)SRAM 乃 由 正 反 器(Flip-Flop) 構 成 基 本 記 憶 單 元
(C) 可程式唯讀記憶體(PROM)只能讓使用者自行規劃、並燒錄程式一
次 (D) 可抹除可程式唯讀記憶體(EPROM)中所寫入之程式,能夠用
紫外線照射將之抹除。

6-3 10. (D) 對於一個 24 倍速 CD-ROM 而言,其最大資料轉移速率為何?


(A) 600 KB/sec (B) 1200 KB/sec (C) 2400 KB/sec (D) 3600 KB/sec。

11. 一台有具 32 個磁頭的硬式磁碟機,若每個磁片有 6256 個磁軌,每一磁軌


有 63 個扇形區,且每一扇形區可儲存 512 個位元組,試問此磁碟機容量
約為多少位元組(byte)? (A) 1.5 G (B) 3.0 G (C) 6.0 G (D) 12.0 G。

12. 磁片的磁面係由很多半徑不同的同心圓組成,這些同心圓稱為
(A) 磁區(sector) (B) 磁軌(track)
(C) 磁柱(cylinder) (D) 以上皆非。

13. 承上題,由於磁片上之內部同心圓小於外部同心圓,則其所儲存資料量
而言
(A) 內部同心圓大於外部同心圓
(B) 內部同心圓等於外部同心圓
(C) 內部同心圓小於外部同心圓
(D) 內部同心圓與外部同心圓之儲存資料密度相同

14. 磁碟機將讀寫頭移到指定的磁柱上所需的時間稱為
(A) 存取時間(Access Time) (B) 搜尋時間(Seek Time)
(C) 迴轉時間(Rotation Time) (D) 傳送時間(Transfer Time)

AC20410_06.indd 249 7/9/2020 15:44:55


250 微處理機

Chapter 6 課後習題

15. 下列關於「藍光光碟」的敘述,何者不正確?
(A) 英文名稱是 Blu-ray Disc,簡稱 BD (B) 可用於大量或高畫質影像的
儲存 (C) 因為使用藍色雷射光進行讀寫,因此稱為藍光光碟 (D) 容量
至少 8.5GB。

6-4 16. 以輔助記憶體(磁碟)模擬主記憶體功能,讓使用者能運用較大之記憶


體空間,稱之為
(A) 快取記憶體(Cache Memory) (B) 虛擬記憶體(Virtual Memory)
(C) 輔助記憶體 (D) 唯讀記憶體。

17. 高速處理機(Processor)與低速記憶體(Memory)間存取速度之不平衡
現象,通常會在它們之間配合哪種記憶體來改善此一現象?
(A) 光電記憶體 (B) 唯讀記憶體
(C) 快取記憶體(Cache Memory) (D) 虛擬記憶體(Virtual Memory)。

18. 下列關於「快取記憶體」的敘述,何者錯誤?
(A) 配置在暫存器和主記憶體之間 (B) 通常配置容量相當於主記憶體的
容量 (C) 由於 CPU 讀取需要的指令或資料時,會先到快取記憶體尋找,
若找不到時才會再到主記憶體中讀取 (D) 若 CPU 在快取記憶體就能找
到需要的資料,便無需再到主記憶體讀取,故資料傳送的時間就能大幅
縮短。

6-5 19. 下列有關直接記憶體存取(DMA),何者敘述是對的?


(A) 裝置啟動的區段資料轉移 (B) CPU 啟動的 I/O 資料轉移
(C) 裝置啟動的中斷式 I/O 資料轉移 (D) CPU 啟動的區段資料轉移。

20. 下列哪一種技術可以將大量資料直接從輸入或輸出(Input/Output)設備
傳輸至主記憶體, 而且資料傳輸過程不需經過 CPU ?
(A) Memory Mapped I/O (B) Programmed I/O
(C) Interrupt Driven I/O (D) DMA(Direct Memory Access)。

AC20410_06.indd 250 7/9/2020 15:44:55


Chapter 6 │記憶體資料存取 251

Chapter 6 課後習題

21. 有關 80x86 系統的直接記憶體存取(DMA)處理的敘述,下列何者不正確?


(A) DMA 須經由直接記憶體存取控制器(DMAC)來做規劃
(B) DMAC 要取得系統匯流排的控制權須經由 HOLD 信號對 CPU 做請求
(C) CPU 對 DMAC 的匯流排請求可以拒絕讓出匯流排
(D) DMA 可以執行 I/O 對記憶體、或記憶體對記憶體的資料轉移。

22. 進行直接記憶存取方式操作時,記憶體的位址是由誰產生?
(A) 執行指令 (B)DMA 控制器 (C) 記憶體界面 (D) CPU。

6-6 23. DMA 控制器 8237A 中,那一種工作模式允許 DMA 系統有較多的通 道


(channel)可用?
(A) 單一轉移模式 (B) 區段轉移模式 (C) 要求轉移模式 (D) 串接模式。

24. 下列何者不是 8237 支援的轉移模式?


(A) 單一轉移模式(Single transfer) (B) 需求轉移模式(Demand transfer) 
(C) 串接模式(Cascade) (D) 並列轉移模式(Parallel transfer)。

25. 下列哪一顆週邊晶片編號為可程式規劃的 DMA 控制器?


(A) 8237 (B) 8251 (C) 8254 (D) 8259。

問答題
1. 如果記憶體以與 CPU 的遠近分類,可分為哪幾類?

2. 如果記憶體以製造材料分類,可分為哪幾類?

3. 何謂一維與二維位址解碼?

4. 請比較幾種常見的 ROM ?

5. 請比較三種 EPROM 的特性?

6. 試比較半導體記憶體 SRAM 與 DRAM 特性?

7. 何謂光碟?常見應用在電腦的有哪些分類?

8. 試比較虛擬記憶體與快取記憶體的異同?

9. I/O 與記憶體之間的資料傳輸,可依 CPU 介入的程度分為哪三類?

10. 請簡述常見 DMA 傳輸資料的工作模式?

AC20410_06.indd 251 7/9/2020 15:44:56


252 微處理機

AC20410_06.indd 252 7/9/2020 15:44:56


教學節數

ap
ter 3
7 多核心微處理機

Ch

本章節次 學習目標
7-1 平行處理概述 1. 能列舉提升計算機系統效能的方法。
7-2 多核心微處理機架構 2. 能 描 述 平 行 處 理、 多 核 心、 多 處 理
7-3 多核心微處理機應用實例 機等名詞。
學習目標回顧 3. 能 列 舉 多 處 理 機 與 多 核 心 處 理 機 架
課後習題 構的類型。
4. 能簡述多核心微處理機實例的特點。

AC20410_07.indd 253 7/9/2020 15:44:59


254 微處理機

7-1 平行處理概述
傳統微處理機的設計是循序機器,CPU 透過提取指令、指令解碼、計算與提取運算
元、執行與回存結果等,依序執行一道一道指令,以完成程式功能。如果要同時執行多
個執令,架構上必須有多個運算電路,由一個控制單元同時控制多個運算電路,同時對
不同指令一起解碼、一起執行、一起得出結果。這樣能同時處理多個指令的架構,就稱
為 平行處理 (parallel processing)。為提升執行效能,平行處理的概念發酵,包括指令
管線技術、多核心同時執行多個指令等,成效都令人刮目相看。

7-1-1 提升效能的方法
計算機的發展與積體電路的技術都息息相關,但受到技術的限制,執行效能是有極
限的。在某些應用,例如地震預報、天氣預報、系統模擬、影像辨識與處理、大數據、
人工智慧等,計算機期望有更強大的計算與處理能力,目前大都採取兩種作法,一是增
強積體電路製造技術,提高計算機的執行效能與速度,不在這裡探討。二是導入平行處
理的觀念進入計算機結構的設計,常見的有以下幾種作法。

1. 利用 管線(pipelining)方法,使處理機達成平行處理。首先,分解指令為數個微動作,
例如將指令分成提取、解碼、執行三個微動作,分別交派給不同的處理單元負責,達
成各個處理單元可以並行處理不同的任務。管線化處理機能夠同時執行多個指令,每
個指令在不同階段完成。管線結構的處理過程是否有效,與採用的指令集(ISA)有
關,其中精簡指令集固定指令長度、單執行週期、簡單定址模式等特性,適合管線處
理架構。如表 7-1 所示,原本 6 個指令需 3 × 6 = 18 個時序,但採用管線處理最理
想只需 8 個時序。

表 7-1 管線處理指令

時序
1 2 3 4 5 6 7 8
指令序

1 提取 解碼 執行

2 提取 解碼 執行

3 提取 解碼 執行

4 提取 解碼 執行

5 提取 解碼 執行

6 提取 解碼 執行

AC20410_07.indd 254 7/9/2020 15:45:00


Chapter 7 │多核心微處理機 255

2. 建構 處理機陣列 (processor arrays),即由多個處理元件(PE)達成計算機並行處


理的功能,使用同一個控制單元管控多個處理單元,調配各個處理單元的工作負荷,
達到整個系統的最大工作效能。如圖 7-1 所示,依據使用記憶體的狀態不同,組成架
構可分為圖 7-1(a) 分享記憶體與圖 7-1(b) 分散記憶體兩種,其中圖 7-1(b) 分散記憶
體每個處理機都有專屬的記憶體(Mem),再透過互聯網路傳遞資料,達到共同工
作的目的。而圖 7-1(a) 則共享記憶體,處理單元(PE)視需要透過切換網路存取指
定的記憶體(Mem)。

(a) 分享記憶體處理機陣列

(b) 分散式記憶體處理機陣列

圖 7-1 處理機陣列組成架構

AC20410_07.indd 255 7/9/2020 15:45:00


256 微處理機

3. 多 處 理 機 (multi-processor) 計 算 機 即 在 一 部 計 算
機中使用多個獨立封裝的處理機同時運算,達成平
行處理的目的。速度的提升主要靠軟體與硬體間不
斷的溝通協調來完成。首先,軟體需將要執行的主
程式分解成多個子程式,分別交派給不同的處理機
來處理,最後再將各子程式的運算處理結果合成最
後的執行結果,以完成程式的執行。注意,這種結 圖 7-2 多處理機計算機架構

構中每個處理機都有完整的結構,擁有自己的控制單元、算術邏輯單元與暫存器等,
溝通協調、分解程式與合成執行結果是靠著軟體完成的。有別於處理機陣列,為全部
處理單元靠著同一個控制單元溝通協調。如圖 7-2 所示,兩個包括快取記憶體的處理
機,組成一個計算機系統,透過共享匯流排共用記憶體。
4. 利用分散式系統進行 分散式計算 (distributed computing),靠著網路傳遞訊息與溝
通,將大量的計算分解交派給分散在世界各地的多台電腦,再回傳運算結果合成執行
結果,完成工作,例如雲端運算。

7-1-2 多核心與平行處理
傳統電腦是一台循序機器,依序一道一道執行程式 ( 指令 ),處理機從提取指令、
解碼、執行與回寫,循序執行每一道指令。但循序的概念,已經被「平行處理」打破了,
具備平行處理能力的處理機可以同一時間處理多個控制信號,同時執行多個指令,平行
處理是指計算機同時處理多項資訊的技術,目的是為了提高系統的執行效率。例如處理
機具備多個 ALU,則多個算術或邏輯運算可以同時執行。

具備平行處理的 CPU 架構被稱為「 超純量 (superscalar)」機器,是指在一顆處理


機內實現平行運算,內核有多個執行單元,例如算術邏輯單元、移位單元、乘法器等,
在一個時脈週期同時 分派 (dispatching)多條指令在不同的執行單元中被執行,實現了
指令平行處理。

平行處理有許多不同的分類方式,可以從處理機的內部組織、處理機之間的交連結
構、或從經過系統的資料流量來分類。美國史丹佛大學名譽教授 Michael J. Flynn 提出
以 指令流 (Instruction Stream,簡稱 IS)與 資料流 (Data Stream,簡稱 DS)的角度,
將電腦的設計架構分成 SISD、SIMD、MISD 與 MIMD 四類,如表 7-2 所示費林分類法。

AC20410_07.indd 256 7/9/2020 15:45:00


Chapter 7 │多核心微處理機 257

表 7-2 費林分類法

指令流
單指令流 多指令流
資料流

單指令流 單資料流 多指令流 單資料流


單資料流
(SISD) (MISD)

單指令流 多資料流 多指令流 多資料流


多資料流
(SIMD) (MIMD)

想要解釋指令流與資料流,必須由計算機的運作方式談起,通常計算機是從記憶體
提取指令,然後在處理機內部解碼、執行。由記憶體提取的指令形成指令流(instruction
stream),而被處理機所運算的資料形成資料流(data stream)。如果希望有多個指令
同時運作執行,CPU 的架構設計就需重新設計考量,需要多個指令解碼器與執行單元、
多個 ALU,讓多個指令能夠同時解碼、同時執行、同時運算。單指令流,是指一次只處
理一個指令,多指令流則是同時處理多個指令。

另外一個角度是由處理資料的多寡,即資料流(Data Stream),考量如何同時處理
指令中的多筆資料,如果一次只可以處理一筆資料,即為單一資料流。多資料流則是在
指令執行階段,可以同時運算與處理多筆資料,當每個指令解碼後,控制電路會協助資
料(即運算元)主動尋找所需的運算單元來執行。

一 單指令流單資料流(SISD)
單指令流意味 CPU 每次只能執行一個指令。單資料
流則指一次只能提取或儲存處理一筆資料。SISD 機器只
有一個 CPU,范紐曼(Von Neuman)型計算機即屬此類。

SISD 架構的電腦只含一個控制單元、一個處理單元
與一個記憶單元。每次僅解碼一道指令,而且在執行時只
處理一筆資料,一道一道指令依序處理。這是早期電腦的
基本執行架構,目前只剩簡單的微處理機使用。SISD 電
腦可以使用管線式處理以具備平行處理的能力。

如圖 7-3 所示,控制單元會提供一筆指令流(IS)給 圖 7-3 SISD 架構


處理單元,處理單元會根據該筆指令流的指示以單一資料
流(DS)的方式存取記憶體單元。

AC20410_07.indd 257 7/9/2020 15:45:01


258 微處理機

二 單指令流多資料流(SIMD)
SIMD 只有一個控制單元,運作與范紐曼機類似,但是 SIMD 有多個處理單元,用
一個控制單元來控制多個處理單元的架構,控制單元會產生一個控制信號給所有處理單
元,所有處理單元由控制單元供給相同的指令,但運算的對象是不同的資料項,此時所
有處理單元可以同步工作,「針對不同資料作相同的處理動作」,也就是多資料流,系
統內的共用記憶單元必須含有多個獨立的記憶模組,分別供多個處理單元使用。處理機
陣列(processor arrays)型的機器就屬此類。可同時對一組資料(又稱「資料向量」)
中的每一個資料分別執行相同的處理或運算。

圖 7-4 SIMD 架構

假設有多筆資料進行同樣的運算,例如陣列 A 與陣列 B 相加,結果存到陣列 C,如


果沒有資料相依性,如表 7-3 程式 1,SIMD 可以同時處理與運算。反之,如果陣列資
料有相依性,則 SIMD 無法同時處理,如表 7-3 程式 2。

表 7-3 資料相依性

程式 1:無資料相依性 程式 2:具資料相依性

For k=1 to 10 For k=1 to 10


  C(k) = A(k) + B(k)   A(k+1) = A(k) + B(k)
Next k Next k

可是實際上,大部分的程式是混合的,較少有連續的同樣運算,所以 SIMD 並不實


用。但是對於處理大量的陣列(Array)資料,則可有高效能的處理。

AC20410_07.indd 258 7/9/2020 15:45:01


Chapter 7 │多核心微處理機 259

三 多指令流單資料流(MISD)
MISD 計算機有多個控制電路及運算電路,可以同時執行多個程式(指令),但是
這些程式都針對同一筆資料作運算,不符合使用效能,目前市面上並沒有這種類型的計
算機。MISD 具有 n 個處理單元,按 n 條不同指令的要求對同一資料流進行不同的處理。
MISD 只有討論理論的價值,目前沒有實用的系統採用這種架構。

圖 7-5 MISD 架構的電腦

如圖 7-5 所示 MISD 架構,電路中有四組控制單元與 ALU 運算,同時可執行四個


不同的指令,但每次只處理一筆資料,也就是這一筆資料可以同時使用四種不同運算,
但這樣做是不具實用性的。

四 多指令流多資料流(MIMD)
MIMD 是使用多個控制器異步地控制多個處理機,實現平行處理的技術。MIMD 可
同時執行多個不同的指令,而且各自能處理不同的資料,在設計上,需要多個控制電路、
多個運算電路與各自獨立的暫存器,才能同時獨立的執行不同指令與多筆資料,MIMD
架構可稱作多處理機或多核心系統的設計。

MIMD 有多個控制單元,每個控制單元都可以提供單一指令留給自己的處理元件,
MIMD 依照使用記憶體使用的方式不同,可分為共用記憶體與分散記憶體兩種。

AC20410_07.indd 259 7/9/2020 15:45:01


260 微處理機

圖 7-6 MIMD 架構

共同記憶體結構上所有的處理機都使用同一個共同記憶體,如圖 7-6 所示,目前功


能較強的計算機都屬於此類。而分散記憶體結構中,每一個處理機都有個別的記憶體系
統,再透過共用匯流排溝通資料。大部分 多處理機 (multiple processors)計算機則不僅
用有自己的記憶體,以便運算與處理;也有共用的記憶體,以便溝通與共享資料。

7-1-3 多核心與多處理機
多核心處理機 (Multi-core processor),又稱多核微處理機,是指單個積體電路計
算元件中,包括兩個或兩個以上的獨立實體中央處理單元,簡稱 核心 (Core),例如只
有兩個核心的處理機,稱為 雙核處理機 (dual-core processor)。這些核心可以分別獨
立地執行程式指令,利用平行計算的能力加快程式的執行速度。

簡單的說,將兩個或更多獨立處理機(核心)封裝在一個單一積體電路(IC)中稱
為多核心處理機;而封裝在不同 IC 中的獨立處理機形成的一部計算機系統則稱為 多處
理機 (Multi processor)。一台計算機系統中使用多個處理機同時執行,稱為「多處理
機系統」,可概分成 緊耦合(Tightly Coupled Multiprocesspr System)與 疏耦合(Coupled
Multiprocesspr System)兩類,分別說明如下。

一 緊耦合多處理機系統
每 個 處 理 機 各 自 擁 有 快 取 記 憶 體, 但 是 使 用 同 一 組 匯 流 排, 稱 為「 共 用 匯 流 排
(Common Bus)」,並且使用同一塊記憶體,稱為「共享記憶體(Shared Memory)」。
從圖 7-7 結構上可以看出來,匯流排一次只能供一個處理機使用,進行記憶體的讀寫,所
以處理機需透過電路中的仲裁器決定匯流排與記憶體的使用權。

AC20410_07.indd 260 7/9/2020 15:45:02


Chapter 7 │多核心微處理機 261

1. 每個處理機都共用一個記憶體,所有作業系統、程式與資料都存放在這個記憶體中,
所以記憶體內只有一個作業系統,由這個作業系統負責整個系統的記憶體管理、輸出
入管理、程式的執行等功能。
2. 每個處理機之間要傳送資料,只能對單個記憶體存取,稍嫌沒有效能。
3. 程式執行時應切割成多個程式片段,再交由多個處理機同時執行。

圖 7-7 緊耦合多處理機系統

二 疏耦合多處理機系統
疏耦合結構中,每個處理機擁有自己的記憶體,處理機透過輸出入的資料線連結,
這種連接稱為鏈結(Link),同時連接多個處理機輸送資料。每個處理機可以有自己的
作業系統、程式與資料,像一台獨立的電腦,再透過鏈結進行如同網路的連接溝通資料。
各個處理機可同時處理不同的程式,如圖 7-8 所示。

圖 7-8 疏耦合多處理機系統

AC20410_07.indd 261 7/9/2020 15:45:02


262 微處理機

7-1 隨堂練習
1. 計算機系統提升效能的方法有      、處理機陣列、      、分散式
計算等。

2. 依 據 Flynn 分 類 法, 將 計 算 機 分 為      、      、       與
      等四類。

3. 計算機採多處理機結構可概分為      與      兩種多處理機系統。

7-2 多核心微處理機架構
自從 2001 年 IBM 推出第一顆雙核心處理機 Power4,開啟多核心處理機的競逐遊
戲,接著昇陽(Sun)也於 2004 年推出雙核心 Ultra SPARC IV 處理機,到了 2005 年微
處理機龍頭 Intel 與 AMD 正式加入戰局,宣布開發多核心處理機。

多核心微處理機(Multi-core micro-processor),是在單個微處理機元件(積體電路)
中,加入兩個或兩個以上的獨立實體中央處理單元,簡稱核心,例如兩個核心的微處理
機,稱為雙核微處理機。把兩個或更多獨立處理機封裝在一個單一積體電路(IC)中稱
為多核心處理機;而封裝在不同 IC 中的獨立處理機形成的電腦系統被稱為多處理機。以
下將使用「多核心」指在同一積體電路中整合多個獨立處理機,亦即多核心處理機。

多核心微處理機是指結合兩個或更多的處理機(或稱核心)到單一矽晶粒(die),
晶 片 中 的 每 一 個 核 心 都 具 備 可 以 獨 立 工 作 的 處 理 機 與 相 關 元 件, 例 如 暫 存 器、CU、
ALU、管線、L1 指令 / 資料快取等,目前大多數的多核心晶片都加入 L2 快取。談到多
核心組織通常會關心幾個因素,包括核心處理機的數量、快取記憶體的容量與階層數、
共用快取記憶體的容量。

圖 7-9 是四種可能的多核心微處理機結構,圖 7-9(a) 是早期的多核心組織,每個核


心有專用的內建 L1(第一層快取),分為 L1-I(指令快取)與 L1-D(資料快取),目
前的嵌入式系統還採用這種結構,如 ARM11 MPCore。圖 7-9(b) 則是每個核心都有專
用的 L1 與 L2 快取,如 AMD Opteron。

AC20410_07.indd 262 7/9/2020 15:45:02


Chapter 7 │多核心微處理機 263

(a) 專用 L1、共用外部 L2 (b) 專用 L1 與 L2

(c) 專用 L1、共用內部 L2 (d) 專用 L1 與 L2、共用內部 L3


圖 7-9 多核心微處理機的架構

圖 7-9(c) 是圖 7-9(a) 的改良版,將 L2 配置在晶片內部,可以提高 L2 的存取速度,


如 Intel Core Duo。圖 7-9(d) 又是圖 7-9(b) 的加強版,每個核心除了具有專用的 L1 與
L2 外,增加共用的 L3 快取,如 Intel Core i7。

圖 7-9(b) 與圖 7-9(c) 兩種結構比較,都是內建快取,L2 分別是專用與共用,優劣


如何?專用快取不需使用共用匯流排,存取效能較高,但命中率可能較低。反之,多個
核心共用快取,不同核心的執行緒參考相同的程式區塊的命中機率比較高。而圖 7-9(d)
則在晶片內部快取容量成長後,增加 L3 共用快取,可以提升更高的存取效能,成本也
相對提高。表 7-4 為四種快取結構的特性與應用的整理表。

AC20410_07.indd 263 7/9/2020 15:45:03


264 微處理機

表 7-4 四種多核心微處理機結構特性比較

圖 7-9 特徵 描述 使用範例

早期多核心晶片的組織,現在嵌入式系統仍然
專用 L1 快取 使 用 這 種 結 構, 在 這 個 組 織 上, 晶 片 僅 內 建 ARM11
(a)
共用外部 L2 快取 L1 快取,每個核心具有自己的專用快取,包 MPCore
括指令快取 (L1-I) 與資料快取 (L1-D)

專用 L1 快取 CPU 核心之間沒有共用快取記憶體,晶片內有
(b) AMD Opteron
專用 L2 快取 足夠的空間容納 L2 快取

專用 L1 快取
(c) 使用共用的內部 L2 快取 Intel Core Duo
共用內部 L2 快取

晶片內部快取記憶體的容量一直成長,在效能
專用 L1 與 L2 快取
(d) 的考量下,使用共用的 L3 快取,每個核心具 Intel Core i7
共用內部 L3 快取
有各自專用的 L1 與 L2 快取

評 估 處 理 機 的 效 能 大 多 是 比 較 時 脈 的 高 低, 但 是 在 整 個 系 統 的 效 能 評 估 上,IPC
(Instruction Per Clock cycle)也是一個重要的指標。IPC 是指每一時脈週期可執行的「指令」
數。例如 A、B 兩個處理機的時脈同樣是 2GHz,處理機 A 的 IPC 值為「1」、B 處理機的
IPC 值為「2」,那麼 A 每秒鐘執行的指令數等於 2GHz×1,而處理機 B 為 2GHz×2,評
估整個效率,B 比 A 快了兩倍。一般而言,指令平行執行策略的目的是提升 IPC。

當追求效能提升的同時,必定要增加處理機內部的電晶體數量,非得精心安排處理
機的架構設計,例如管線、超純量等,並提升時脈頻率。但提昇時脈頻率與晶片密度,
又會增加功率需求。效能與耗能,兩者會因應用場合的需求取得平衡。

最近數十年的經驗被歸納成「 波拉克定律 (Pollack's rule)」,也就是說,效能增


加大約正比於所增加的電路複雜度之平方根。換言之,如果處理機核心增加一倍的邏輯
電路,大該只會提升 40% 多一點的效能。為了突破這個定律,使用多核心技術則可提
供接近線性效能改善的可能性,也就是電路複雜度增加一倍效能也提高一倍。

7-2 隨堂練習
1. 在單一個積體電路中整合多個獨立的處理機,稱為      處理機。

2. IPC 是指處理機每個時脈週期可執行的      數目。

3. 依據波拉克定律,處理機的電路複雜度若提高 4 倍,則效能增加      倍。

AC20410_07.indd 264 7/9/2020 15:45:03


Chapter 7 │多核心微處理機 265

7-3 多核心微處理機應用實例
為了提高效能,多核心架構已經是微處理機的主流,各家大廠也紛紛投入,發展出
不同的產品。以下分別舉出 Intel 與 AMD 廠家共三顆微處理機,作為不同的多核心微處
理機應用實例說明。

7-3-1 Intel Core Duo 雙核心處理機概述


Intel Core 是英特爾在 2006 年發佈的產品,晶片產品代號為 Yonah,這是 Intel 的
第一款 32 位元雙核行動低功耗處理機、第一款 65nm 製程的行動處理機、第一款蘋果
麥金塔電腦所使用的 Intel 處理機。處理機速度為 1.06GHz 至 2.33GHz,前端匯流排速
率則可達 533MT/s 至 667MT/s。

Intel Core 處理機系列硬體部分使用 Intel P6 微架構,採用 x86 指令集,具有 2MB


的 L2 快取。其後繼產品 64 位元 Core 2 則是採用 Intel Core 微處理機架構。於 2006 年
夏季推出。Core 2 與只推出筆記型處理機的 Core 不同,它的推出代表著英特爾於筆記
型處理機及桌上型處理機兩個品牌線的重新整合。

Intel Core 包括 Duo(雙核)與 Solo(單核)


兩 種。Intel Core Duo 晶 片 內 為 雙 核 心, 架 構 如
圖 7-10 所 示, 由 此 二 核 心 共 用 晶 片 內 的 2 MB
L2 快取記憶體,並由仲裁控制器負責 L2 快取記
憶體與 FSB(front-side bus,前端匯流排)的運
作。Core Duo 處 理 機 可 以 暫 停 其 中 一 個 核 心 的
電 力 供 應 以 達 到 省 電 的 功 能。 另 外,Intel Core
Solo 實際上也有兩個核心,然而 Intel 故意關掉 圖 7-10 Intel Core Duo 架構圖

一個,以區別於 Core Duo。

Intel Core Duo 架構中內含兩個 x86 超純量處理機,每個核心擁有 32KB 專用 L1 快


取,包括 32KB 指令快取與 32KB 資料快取,並共用 2MB 的 L2 快取,快取空間可以進
行動態配置,讓各個核心都能存取 100% 的 L2 快取。另外,每個核心也都具備熱度控
制單元(thermal control unit)用來管理晶片的熱散逸,改善冷卻系統與降低風扇的雜
音,以達到最佳化處理機的效能。

AC20410_07.indd 265 7/9/2020 15:45:04


266 微處理機

APIC(進階可程式中斷控制器)提供處理機內部中斷,允許程序中斷一個或多個處
理器,以 Core Duo 為例,核心執行緒可以經由自己的 APIC 產生中斷,或傳送給其他核
心 APIC,讓其他核心收到並產生中斷。
APIC 也可以接收 I/O 的中斷,並且選擇路徑傳送給適當的核心。每個 APIC 都內
含計時器,可以經由設定,產生中斷給自己的核心。
另外,電源管理邏輯負責降低電力消耗,延長行動平台(例如筆電)的電池待機時
間。其實電源管理邏輯會監督 CPU 動作與熱度狀態,以調整電壓準位與電力消耗。
匯流排介面(bus interface)主要用來連接外部匯流排,也就是透過經由 FSB(前
端匯流排)連接主記憶體、I/O 控制器與其他的處理晶片。

7-3-2 AMD 雙核心處理機的簡介


AMD 的 AthlonX2 為 桌 上 型 電 腦 的 微 處 理 機, 採 用 90nm 製 程, 支 援 1GHz 的
Hyper Transport(超傳輸),支援雙通道 DDR 記憶體技術。架構如圖 7-11 所示,內部
可看成是把兩個 Athlon 64 所採用的 Venice 核心整合在同一個處理機內部,每個核心都
擁有獨立的 L2 快取 1MB,兩個核心共用 Hyper Transport,從架構上來說與 Intel 的雙
核心處理機不同的是,由於 AMD 的 Athlon 64 處理機內部整合了記憶體控制器,而且
在當初 Athlon 64 設計時就 雙 核心做了考慮,但是仍然需要仲裁器來保證其緩存資料的
一致性。

AMD 採用了 SRQ(System Request Queue)技術作為核心間的仲裁,在工作的時


候每一個核心都將其請求放在 SRQ 中,當獲得資源之後請求將會被送往相應的執行核
心,所以其緩存資料的一致性不需要通過北橋晶片,直接在處理機內部就可以完成。與
Intel 的雙核心處理機相比,其優點是緩存資料延遲得以大大降低。

圖 7-11 AMD Athlon 64x2 架構

AC20410_07.indd 266 7/9/2020 15:45:04


Chapter 7 │多核心微處理機 267

7-3-3 Intel Core i7-990X 六核心處理機概述


Core i7 處 理 機 是 Intel 公 司 於 2008 年 11 月 推 出 的 高 階 CPU, 第 一 代 Core i7 以
Nehalem 微架構為基礎,取代 Intel Core 2 系列處理機,Nehalem 支援超執行緒的技術,
擁有六核心、十二執行緒。記憶體控制器內建於 CPU 中,支援三通道 DDR3 SDRAM。
Core i7-990X 發表於 2010 年 1 月的 32nm 製程版本,採用第二代 Westmere 微架構,
原生六核心代號為 Gulftown,而原生十核心代號則為 Westmere-EX。比起上一代,新
增 AES(Advanced Encryption Standard,進階加密標準)指令集,整合圖形處理核心
(GPU),將 GPU 核心和 CPU 核心分立於兩塊晶片,並封裝於同一塊印刷電路板上,
兩者之間用 QPI (QuickPath Interconnect,快速路徑互連 ) 匯流排互聯。
從圖 7-12 所示 Intel Core 7-990X 架構來看,採用三層快取結構,每個處理機使用
專用 32KB 的 L1 指令快取、32KB 的 L1 資料快取與 256KB 的 L2 快取,並共用 12MB
的 L3 快取。採取高效率的預先擷取(prefetching)機制,用來檢視記憶體存取型態,
嘗試把請求的資料快速地填入快取。

圖 7-12 Core i7-990X 架構圖

Core i7-990X 提供兩種外部通訊形式連接到其他晶片,DDR3 記憶體控制器提供三


個 8Bytes 通道,共 192bit(3×8×8bits),資料傳輸速率可達 32GB/s,由於記憶體控
制器在處理機內部,所以不使用 FSB 前端匯流排。

QPI 具有快取一致性、點對點連結的電器互連規格,可以用來互連處理機與晶片
組,達成處理機之間的高速通訊,傳輸率可達 6.4GT/s,以 16 位元傳輸時,可加速到
12.8GB/s,當 QPI 工作在專用雙向傳輸時,傳輸頻寬可達 25.6 GB/s。

AC20410_07.indd 267 7/9/2020 15:45:05


268 微處理機

7-3 隨堂練習
1. Intel Core Duo 內部「監督 CPU 動作與熱度狀態,以調整電壓準位與電力消耗」的
單元為       。

2. 明 裕 使 用 CPU-Z( 專 門 用 來 偵 測 CPU 資 訊 的 軟 體 ) 偵 測 自 己 的 電 腦, 結 果 如 下
圖 所 示, 得 知 此 CPU 為        核 心, 採 用 快 取        層 結 構,
L1 指 令 快 取       、 資 料 快 取       ,L2 為       ,
L3 則為       。

3. AMD 採用       作為核心之間的仲裁。

AC20410_07.indd 268 7/9/2020 15:45:05


Chapter 7 │多核心微處理機 269

Chapter 7 學習目標回顧

學習目標 1:能列舉提升計算機系統效能的方法
1. 提 升 計 算 機 效 能 的 方 法, 一 是 增 強 積 體 電 路 製 造 技 術, 二 是 導 入 平 行 處 理 的
觀念。
2. 導 入 平 行 處 理 觀 念 來 設 計 計 算 機 的 架 構 有 管 線、 處 理 機 陣 列、 多 處 理 機、 分
散式系統等四種方法。
學習目標 2:能描述平行處理、多核心、多處理機等名詞
3. 能同時處理多個指令的架構,就稱為平行處理。
4. 所 謂「 超 純 量」 是 指 一 顆 處 理 機 內 實 現 平 行 運 算, 內 核 有 多 個 執 行 單 元, 實
現了指令平行處理。
5. 費林分類法將電腦分為 SISD、SIMD、MISD 與 MIMD 四類,如下表:

指令流
單指令流 多指令流
資料流
單資料流 單指令流單資料流(SISD) 多指令流單資料流(MISD)
多資料流 單指令流多資料流(SIMD) 多指令流多資料流(MIMD)

6. 多 核 心 處 理 機 是 指 單 個 積 體 電 路 計 算 元 件 中, 包 括 兩 個 或 兩 個 以 上 的 獨 立 實
體中央處理單元。
學習目標 3:能列舉多處理機與多核心處理機架構的類型
7. 封 裝 在 不 同 積 體 電 路 中 的 獨 立 處 理 機 形 成 的 一 部 計 算 機 系 統 則 稱 為 多 處 理 機
系統。
8. 多處理機系統可概分成緊耦合與疏耦合兩類。
9. 多核心微處理機結構通常依據核心數量與快取記憶體的組成與應用來分類。
學習目標 4:能簡述多核心微處理機實例的特點
10. Intel Core Duo 架 構 中 內 含 兩 個 x86 超 純 量 處 理 機, 每 個 核 心 擁 有 專 用 L1
快取(包括 32KB 指令快取與 32KB 資料快取),並共用 2MB 的 L2 快取。
11. AMD 的 Athlon X2 每個核心都擁有獨立的 L2 快取 1MB。
12. Intel Core 7-990X 架 構 為 每 個 核 心 使 用 專 用 32KB 的 L1 指 令 快 取、32KB
的 L1 資料快取與 256KB 的 L2 快取,並共用 12MB 的 L3 快取。

AC20410_07.indd 269 7/9/2020 15:45:05


270 微處理機

Chapter 7 課後習題

選擇題
7-1 1. 超純量(super scalar)的 CPU 是指
(A) 超頻使用的 CPU (B) 利用超導體製成的電腦 (C) 多重 CPU 的系統
(D) 至少有兩個以上指令執行管線(pipeline)的 CPU。

2. 下列關於「雙核心 CPU」的敘述,何者正確?
(A) 雙核心 CPU 就是指加入了 Hyper-Threading 技術的 CPU
(B) 雙核心 CPU 是利用平行運算的概念來提高效能
(C) 雙核心 CPU 就是 32 位元 x2,也就是所謂的 64 位元 CPU
(D) 雙核心 CPU 的時脈是單核心 CPU 時脈的兩倍。

3. 下列關於「雙核心 CPU」的敘述,何者錯誤?
(A) 雙核心 CPU 因為有 2 個核心,所以耗電量是單核心 CPU 的 2 倍
(B) 雙核心 CPU 所使用的程式必須經過特別設計,才能發揮效能
(C) 雙核心 CPU 內,共有 2 組的控制單元和算術 / 邏輯運算單元
(D) 雙 核 心 CPU 若 加 上 了 Hyper-Threading 技 術, 作 業 系 統 會 認 為 擁 有
四組處理機。

4. 由一個控制單元同時控制多個運算電路,同時對不同指令一起解碼、一起
執行、一起得出結果。這樣同時處理多個指令的架構稱為
(A) 共時處理 (B) 跨域處理 (C) 交叉處理 (D) 平行處理。

5. 下列哪一種架構不屬於平行處理?
(A) 多核心 (B) 管線處理 (C) 權重處理 (D) 多處理機。

6. 在一部計算機中使用多個獨立封裝的處理機同時運算,達成平行處理的目
的,稱為 (A) 多處理機 (B) 多元 (C) 多核心 (D) 多晶片。

7. 所謂分散式計算是甚麼?
(A) 同一台電腦放在不同地方 (B) 利用網路傳遞,多台電腦處理同一件
事 (C) 將計算結果分配給不同電腦 (D) 一種網路遊戲。

8. 所謂超純量機器是指? (A) 在一顆處理機內實現平行運算 (B) 純數值運


算 (C) 超級大的數值運算 (D) 量子運算的別稱。

AC20410_07.indd 270 7/9/2020 15:45:06


Chapter 7 │多核心微處理機 271

Chapter 7 課後習題

9. Flynn 教授提出的「費林分類法」,將電腦的設計分為四類,目前市面上
並沒有哪一類型的計算機?
(A) SISD (B) SIMD (C) MISD (D) MIMD。

10. 多處理機架構中,每個處理機各自擁有快取記憶體,但是共用匯流排、
共享記憶體,稱為?
(A) 緊耦合 (B) 疏耦合 (C) 緊併聯 (D) 疏併聯。

7-2 11. 可同時插上兩顆以上 CPU 的電腦,並搭配可使用的作業系統,我們稱此


系統為下列何者?
(A) 多人作業系統 (B) 多工作業系統
(C) 多處理機系統 (D) 分散式作業系統。

12. 下列哪一種 CPU 所使用的技術,可允許前一個指令未完成前,就開始處


理下一個指令?
(A) 管線運算 (B) 平行處理 (C) 快取記憶體 (D) 多核心。

13. ARM11 MPCore 多核心處理機屬於哪一種結構?


(A) 專用 L1 快取、共用外部 L2 快取
(B) 專用 L1 快取、共用內部 L2 快取
(C) 專用 L1 快取、專用 L2 快取
(D) 專用 L1 與 L2 快取、共用內部 L3 快取。

14. 關於評估計算機系統的效能,IPC 是指?


(A) 每一時脈週期可執行的記憶體存取次數
(B) 每一時脈週期可執行的指令數
(C) 指令的複雜程度
(D) 內頻與外頻的比值。

15. 所謂「波拉克定律」是指「提升效能」所衍生的「電路複雜度」關係為?
(A) 平方根 (B) 指數 (C) 對數 (D) 平方。

AC20410_07.indd 271 7/9/2020 15:45:06


272 微處理機

Chapter 7 課後習題

7-3 16. 關於 Intel Core Duo 處理機的敘述何者有誤?


(A) Intel 的第一款 32 位元雙核行動低功耗處理機
(B) 處理機速度為可達 2.33GHz
(C) 第一款蘋果麥金塔電腦所使用的 Intel 處理機
(D) 內為四核心。

17. 下列敘述何者有誤?
(A) 匯流排速率 T/s 是指資料傳輸寬度 (B) Intel Core Duo 屬於超純量處
理器 (C) 匯流排介面透過 FSB 連接主記憶體、I/O 控制器等 (D) APIC
為進階可程式中斷控制器。

18. 關於 Intel Core i7-990X 處理機的敘述何者有誤?


(A) 支援三通道 DDR3 SDRAM (B) 援超執行緒的技術,Gulftown 擁有
六核心,十二執行緒 (C) GPU 和 CPU 核心分立於兩塊晶片,用 QPI 匯
流排互聯 (D) 採取 2 層快取結構,L1 為 32Kbytes、L2 為 12Mbytes。

19. 關於 AMD 的 Athlon X2 處理機的敘述何者有誤?


(A) 專為筆記型電腦設計 (B) 雙核心結構 (C) 需要仲裁器來保證其緩
存資料的一致性 (D) 支援雙通道 DDR 記憶體。

20. 關於指令管線的敘述,哪一個錯誤?
(A) 分解指令為微動作以便同時執行,達成平行處理 (B) 精簡指令集適
合應用指令管線 (C) 跳躍指令會降低管線效能 (D) 只有多核心結構才
可使用指令管線。

問答題
1. 提升計算機系統效能的方法有哪些?

2. 依據費林分類法,電腦可分為哪幾類?

3. 何謂多核心與多處理機?

4. 概述可能的多核心處理機架構?

5. 請簡述 Intel Core Duo 的架構?

AC20410_07.indd 272 7/9/2020 15:45:06


教學節數

ap
ter 3
8 微電腦系統架構與應用

Ch

本章節次 學習目標
8-1 微電腦系統架構 1. 能列舉電腦的分類。
8-2 嵌入式系統概述 2. 能區分微電腦各種類型。
8-3 微電腦系統應用 3. 能說明微電腦的組成架構。
學習目標回顧 4. 能描述嵌入式系統的特色與應用。
課後習題 5. 能列舉微電腦系統的應用種類與實例。

AC20410_08.indd273 7/9/202015:47:26
274 微處理機

8-1 微電腦系統架構
讓我們從電腦的分類談起,瞭解微電腦系統的角色扮演,廣義的看待微電腦系統在
生活周遭的應用,再談談兩個微電腦系統的組成架構例子。

8-1-1 電腦的分類
所有電腦,或稱計算機都有相似的架構,通常會以體積大小或資料處理、運算能力
來分類,將電腦分成超級電腦、大型電腦、、小型電腦、與微型電腦四類。不同類型電
腦提供不同的服務,整個電腦系統可以像房間一樣大,也可以像穿戴式設備那麼小,或
像嵌入式系統中的微控制器隱藏起來。

超級電腦 (Supercomputer)具有極大的存儲容量和計算速度,主要用於科學和工
程學科繁複的問題,對大規模數值與大量資料進行非常高速的運算,如天氣分析與預報、
處理量子力學資訊、風洞研究等。超級電腦通常被放置在擁有乾淨無塵和溫度調節的環
境中,例如 IBM Deep Blue(深藍)。

大型電腦 (Mainframe computer)儲存容量與處理速度比小型或微型電腦強大,通


常支持大量的終端操作,例如金融 ATM 交易處理,供許多用戶同時使用。大型電腦也
常作為分散式資料處理的中央主機,其他應用如電子商務、醫療保健、軍事用途、學術
研究、企業和消費者統計等應用,例如 IBM 370、S/390。

小型電腦(Minicomputer),或稱迷你電腦,具有大型計算機的大部分特性和功能,
但物理尺寸較小、運算能力稍弱,可同時為多個用戶提供服務,進行並行處理,小型電
腦有時會以「伺服器(Server)」稱呼,如 DEC 公司 Alpha、Sun 公司的 Ultra 都是應
用的例子。

微型電腦 (Microcomputer),簡稱微電腦,是最常見的電腦類型,運算能力比不
上小型電腦,但電腦基本架構仍然齊全,功能會依據環境需求彈性變化、體積樣式多變,
包括桌上型電腦、平板電腦、穿戴式電腦、遊戲機與車載電腦都屬於微電腦,在生活中
幾乎無所不在。

AC20410_08.indd274 7/9/202015:47:26
Chapter 8 │微電腦系統架構與應用 275

如圖 8-1 所示為四個等級的電腦的區分與應用,因為積體電路製程的進步、成本降
低,區分四個等級的界線漸漸模糊。

圖 8-1 四種等級電腦比較

8-1-2 微電腦的類型
廣義來說,任何「內含微處理機」的系統組成的電腦、設備等,等級低於小型電腦,
都稱為微電腦系統。例如個人電腦、筆記型電腦、平板電腦、智慧型手機、嵌入式系統
等。例如 IBM-PC Pentium 200、Apple Macintosh 都是微電腦的例子。

相對大型與小型電腦而言,微電腦的體積較小、運算能力較弱,但麻雀雖小、五臟
俱全,也擁有完整的微處理機系統架構。微電腦系統可概分為桌上型與可攜式兩類。可
攜式裝置,又稱 行動裝置 (Mobile Device),體積小與重量輕,攜帶方便,通常具有電
池供電、低耗能與無線通訊,例如 Wifi、紅外線、藍牙或 GPS 等,以供隨時取用網路
資訊及接收即時訊息,可分筆記型電腦、個人數位助理、智慧型手機、可穿戴式裝置等
等,分別簡述如下。

1 桌上型電腦,也稱 個人電腦 (Personal Computers,簡稱 PC)專為個人或小型


企業設計的電腦,通常作為資料或文書處理、娛樂、上網查資料。使用時至少
需要硬碟、鍵盤、滑鼠與螢幕等週邊裝置,才能提供工作。

2 筆記型 (Notebooks)電腦,常與 膝上型 (Laptop)電腦混稱,體積與重量比桌


上型電腦小,重量較輕約 1 ~ 3 公斤,便於攜帶,通常主機會包括充電電池,
隨時提供電源。筆記型電腦與桌上型電腦都屬於通用型電腦,可依據需要賦予
電腦不同的任務,從安裝作業系統到應用程式可能都不同,彈性很大。

AC20410_08.indd275 7/9/202015:47:29
276 微處理機

3 個人數位助理 (Personal Digital Assistant,簡稱 PDA),也稱 Palmtop(掌上


型電腦),體積更小,可手持使用,它能夠進行文字處理、電子表格和手寫識
別、 遊 戲、 傳 真 等。 例 如 3com palmV。 需 搭 載 類 似 微 軟 Pocket PC 平 臺 才 能
工作。缺點是螢幕過小,且電池續航能力有限。個人數位助理通常採用觸控筆
(Stylus)作為輸入裝置,以記憶卡作為外部儲存媒介。在無線傳輸方面,大多
數個人數位助理具有紅外線(IrDA)和藍牙 (Bluetooth) 埠,以保證無線傳輸的
便利性,許多個人數位助理還能夠具備 Wi-Fi 連接以及全球定位系統(GPS)。

4 行動電話大致分為 功能型手機 (Feature phone)與 智慧型手機 (Smart Phone)


兩種。功能型手機除了能夠撥接電話及收發簡訊外,有些也可拍攝相片、播放音
樂等,有些甚至可以執行一些應用程式,這些應用程式多數為 JAVA 語言的程式。
智慧型手機是目前最常見的行動裝置,是指行動電話可安裝行動作業系統,例
如 iOS、Android、Windows Mobile、Symbian 等,提供開放的系統環境,允許
第三方自行研發應用軟體(App),使用者可透過安裝這些應用軟體、遊戲等
程式來擴充功能的。智慧型手機如同一台小電腦,其運算能力及資料處理功能
都優於傳統功能型手機。目前智慧型手機大都提供媒體播放器、數位相機、連
接網際網路、GPS 位置資訊、各式感測器等功能,已經成為多樣化功能的行動
裝置。

5 可穿戴式電腦 (Wearable computers)的尺寸非常小,可以戴在身上。它具有較


小的處理能力,常用於健康、醫學領域,例如智慧手錶(環)進行健康管理、
起搏器糾正心率等。可穿戴式電腦外觀上常以手錶、手環形式呈現,使用上則
常與智慧型手機搭配運作,擴增它的功能。

微電腦分類與應用如表 8-1 所示。除了以上各類,也常以嵌入式方式出現,例如車


載電腦、遊戲控制台、智慧型家電等,搭配物聯網、大數據與人工智慧等新科技,更貼
近每個人的生活中,嵌入式微電腦系統將於 8-2 節說明。

AC20410_08.indd276 7/9/202015:47:30
Chapter 8 │微電腦系統架構與應用 277

表 8-1 微電腦分類與應用

類型 項目 常見實際應用

個人電腦 桌上型電腦 工作站、電競電腦、家用桌上型電腦

筆記型電腦 行動工作站、筆記型電腦、小型筆電

平板電腦 行動電腦、行動上網裝置

掌上型電腦 掌上型電腦
行動裝置
PDA 企業數位助理、電子記事本

行動電話 智慧型手機、平板手機

可穿戴式電腦 智慧型手錶、頭戴式顯示器、VR 裝置

電子遊戲機 家用遊戲機、街機、專用遊戲機、掌上遊戲機

影視產品 智慧型電視、家庭劇院個人電腦、機上盒

其他 互動式機台、多媒體機台、自動櫃員機、抽取式電腦、電子書閱讀器 可
終端裝置 攜式資料終端機 / 可行動式資料終端機

8-1-3 微電腦系統架構範例
完整的微電腦系統應包括軟體與硬體兩大部分,硬體架構必須有微處理機、記憶單
元與輸出入單元,並視需求搭配各式各樣的週邊裝置。軟體部分則需安裝系統軟體來管
理電腦系統的軟硬體資源,再依據功能需要安裝應用軟體。另外,視需要安裝驅動程式
驅使硬體可以正常工作。電腦系統組成的架構如圖 8-2 所示,可知瞭解一部電腦系統,
應關注這些硬體規格、軟體項目。

圖 8-2 微電腦系統的組成

AC20410_08.indd277 7/9/202015:47:30
278 微處理機

以下舉出 Intel Core i7 桌上型電腦與 Apple 公司的平板電腦 iPad 2 兩部微電腦,示


範微電腦系統硬體的組成架構。

一 範例 1 Intel Core i7 桌上型電腦系統架構


如圖 8-3 所示為 Intel Core i7 組成的微電腦系統架構,整合各個單元與週邊,形成
完整的電腦系統,包括處理器 Intel Core i7、主記憶體 DDR3,並以 X58(北橋晶片)
與 ICH10(南橋晶片)負責控制與傳輸各種週邊裝置,例如 SATA 硬碟、鍵盤、滑鼠等。

圖 8-3 Intel Core i7 桌上型電腦系統架構

各家電腦系統為提高效能,對各式各樣的週邊服務方法顯得相當重要,晶片組(chip
set)就是統合南橋晶片、北橋晶片來控制這些輸出入介面。北橋晶片主要管理高速介面,
例如記憶體與高速 PCI-Express 和 AGP 系統、繪圖等介面;而南橋晶片則是負責較慢
速介面,例如 PCI、SATA、USB 與音效、鍵鼠等其他各式介面,通常也包含電源管理。
名稱上,北橋晶片又被稱為 MCH(Memory Controller Hub),南橋晶片又被稱為 ICH(I/
O Controller Hub),或 PCH (Platform Controller Hub)。南北橋晶片需要互相搭配才
能完整工作,例如 Intel 的 X58 北橋晶片、搭配 ICH10R 南橋晶片,而 AMD 的 780G 北
橋晶片、搭配 SB800 南橋晶片。

AC20410_08.indd278 7/9/202015:47:30
Chapter 8 │微電腦系統架構與應用 279

X58 與 CPU 使用 QPI(QuickPath Interconnect)通訊,介面速度可達 25.6GB/s,


另有 36 個 PCI-E 2.0 通道,上圖系統中 PCI-E 2.0、16 通道連接顯示卡,負責顯示輸出。
X58 透過 DMI(Direct Media Interface)與南橋 ICH10 互聯,速度可達 2GB/s,而較慢
速 的 週 邊 則 由 ICH10 負 責 通 訊 與 控 制 工 作,ICH10 提 供 6 個 3 Gbit/s 的 SATA 埠、12
個 USB 2.0 埠、網路連接、音效等較慢速的週邊功能。

二 範例 2 iPad 2 平板電腦系統架構
iPad 2 是 Apple 公司設計開發的平板電腦,屬於掌上型電腦,體積大小和重量介於
智慧型手機與筆記型電腦之間,主要使用於娛樂,例如視聽媒體、圖書、遊戲和網路內
容,表 8- 2 是 iPad 2 WiFi 機種的規格簡介。

表 8-2 iPad2 WiFi 機種規格

規  格

中央處理器 Apple A5,雙核 1GHz 高效能低功耗系統級晶片

記憶體(RAM) 512MB DDR2 RAM

硬碟儲存空間 快閃記憶體,有 16GB、32GB 或 64GB 版本

顯示 9.7 吋 1024×768、1080p

圖形處理器 PowerVR 雙核 SGX543MP

音效 支援 5.1 聲道杜比數位環繞立體聲輸出,具有藍牙、揚聲器、
麥克風、耳機插孔等音效輸出入埠口

輸入 多點觸控螢幕、耳機線控、接近傳感器與環境光線傳感器、三
軸陀螺儀、地磁儀、加速度計

連接埠 Wi-Fi 802.11 a/b/g/n、Bluetooth 2.1

圖 8-4 為 iPad 2 系統架構圖,主要由 Apple A5 處理器組成,時脈為 1GHz。A5 內


部採用 ARM Cortex A9 架構,由韓國三星製造,具有專用的 L1 指令快取 32 KB、與資
料快取 32 KB,並有共用的 L2 快取 1 MB。使用 DDR2 主記憶體 512Mbytes,具有優
秀的電源管理電路設計,同時內含雙核圖形處理單元 SGX543MP,時脈為 200MHz。

AC20410_08.indd279 7/9/202015:47:30
280 微處理機

圖 8-4 iPad 2 系統架構

顯示器為 9.7 吋多點觸控螢幕,另有耳機線控、近距離傳感器、環境光感器、三軸


陀螺儀、加速度計等感測裝置,提供更人性化的功能。

PMU(power management unit)電源管理單元,是一種可攜式裝置常用的電源管


理方式,將傳統分開的電源管理電路整合在單個的晶片中,目的是要提供系統穩定電源,
並達成最高效能與最低功耗。PMU 分別控制系統中不同單元電源的開啟與關閉,並保
證提供穩定電壓值,例如不用的電源儘量關掉。

系統方塊中以多種傳輸協定與處理器 A5 進行通訊,包括熟悉的 UART、I2C、SPI


等,也有如 MIPI、HSIC、I2S 等,分別簡述於下。

AC20410_08.indd280 7/9/202015:47:31
Chapter 8 │微電腦系統架構與應用 281

1. MIPI (Mobile Industry Processor Interface, 行 動 產 業 處 理 器 介 面 ): 於 2003 年 7


月,由美國德州儀器(TI)、意法半導體(ST)、英國 ARM 和芬蘭諾基亞(Nokia)
4 家公司共同成立 MIPI 聯盟,為行動裝置制定開放標準,定義一系列手機內部的介
面標準,比如攝像頭介面 CSI、顯示介面 DSI、射頻介面 DigRF、麥克風 / 喇叭介面
SLIMbus 等,從而減少手機設計的複雜程度和增加靈活性。
2. HSIC (High Speed Inter-Chip, 高 速 晶 片 互 連 ) 介 面 使 用 兩 條 訊 號 線(strobe、
data)提供高速 480Mbps 的 USB 傳輸,主要應在實體連線的硬體晶片之間的通訊。
HSIC 是 USB 應用者論壇 (USB-IF) 於 2007 年公布的補充規範,與 USB 介面的差異
只在於實體層,減少不需要的功能,但符合晶片間互連的應用需求,這樣可降低實作
時的複雜性、功耗、成本。例如,該介面是處在永遠的連線狀態下,因此不需要熱插
拔功能。
3. I2S(Integrated Interchip Sound,整合 IC 間音訊,也稱 I²S)由 Philips 在 1986 年發表,
是實體連線的晶片間傳輸數位音訊資料的一種介面標準,包括位元時脈線 BCLK、字
元選擇線 WS、複合資料線 SDATA 等 3 條傳輸線,採用串列的方式傳輸左右聲道 2
組資料。
4. VSP、ASP、XSP 三 者 常 用 於 表 示 音 訊 編 碼、 解 碼 相 關 的 串 列 介 面。 VSP (Voice
Serial Port,語音串列介面)用於打電話受話與送話的通道。而 ASP (Audio Serial
Port,音頻串列介面 ) 用於音樂視頻與錄音通道。 XSP (Auxiliary Serial Port,輔助
串列介面 ) 則用於藍牙傳輸音訊通道。

8-1 隨堂練習
1. 新聞刊載「在中央氣象局裡,有一台電腦「京」,是預報員的得力助手。透過分析
各式數據資料,可預測颱風路徑與每個鄉鎮的降雨量,能協助運算做出正確的氣象
預報。」,猜想這台電腦「京」等級應為      。

2. 微電腦依據可移動性概分為      與      兩類。

3. 所謂的      就是整合北橋晶片與南橋晶片來控制輸出入介面。

AC20410_08.indd281 7/9/202015:47:31
282 微處理機

8-2 嵌入式系統概述
嵌入式系統衍生自不同應用環境的需要,組成架構與一般電腦雷同,但主要以執行
封閉環境與特定功能為設計目的,嚴格要求穩定度、自動化循環操作的微處理機系統。
它的存在已遍佈你我的生活周遭,密不可分,在此以專節討論嵌入式系統原理與應用。

8-2-1 概 述
依據英國電機工程師協會定義:「嵌入式系統為控制、監視或輔助某個設備、機器
或甚至工廠運作的裝置。」簡言之,嵌入式系統是為了執行「特定功能」的系統,並嵌
入到目標裝置裡,負責即時運算與處理的微電腦系統。

嵌入式系統由嵌入式微處理機、週邊硬體設備、嵌入式作業系統及使用者的應用程
式等四個部分組成,緊密結合工作環境、軟體與硬體功能,可謂量身訂做,客製化地符
合功能要求,以期降低成本、體積與功耗等,嵌入到目標裝置中,達成目標指定的功能。

通常嵌入式系統為了縮小體積與降低成本,只提供系統需要的功能,儘量縮減系
統,硬體與軟體如果要擴充較為困難,大都以 SoC (System on Chip,系統單晶片)形
式呈現「專用」、「嵌入」的特性,而且具有以下特色:

1. 專用性較強,用來執行特定功能。
2. 執行環境差異大。
3. 使用的系統資源相對較少。
4. 低功耗、體積小、整合度高、成本低。
5. 具有較長的生命週期。
6. 使用即時作業系統(RTOS, Real Timer Operation System)。

圖 8-5 嵌入式系統架構

AC20410_08.indd282 7/9/202015:47:31
Chapter 8 │微電腦系統架構與應用 283

嵌入式系統除了一般電腦系統的硬體五大單元與系統軟體、應用軟體外,通常還
具備數位及類比轉換功能、感測器、致動器與機械等,硬體設計必須著重空間、重量、
成 本、功耗、即時性等限制。 圖 8-5 所示嵌入式系統的基本架構,包括一般 微 電 腦 系
統的必備項目,CPU、記憶體、I/O 單元等。為了與外界週邊緊密聯繫,也具備輸出功
能 D/A 轉換器、輸入功能 A/D 轉換器、感應器(Sensor)及致動器(Actuator),以及
FPGA/ ASIC(底層硬體)、輔助系統(電源 / 冷卻)及人機介面(HMI)等。
整個系統可透過感測器及致動器間進行閉迴路控制,精準控制機械結構。例如使用
者輸入之類比信號透過整個嵌入式系統,控制致動器作動;而致動器作動之信號亦透過
感測器回饋感應,以調整輸入信號大小,維持整個嵌入式系統之穩定運作。
嵌 入 式 系 統 硬 體 部 分 常 見 的 Soc 有 ARM、MIPS、Rambus、Mentor、Synopsys、
Insilicon、DSP Group、VirageLogic、Artisan 以 及 Parthus 等, 軟 體 作 業 系 統 大 都 為
RTOS,常見的有 VxWORKs、Nucleus 、Palm、Windows CE、Linux 等。

8-2-2 嵌入式系統的分類
如表 8-3 所示,比較 PC 系統與嵌入式系統兩者的硬體設備、軟體平台的不同。因
為目的性的不同,軟硬體的需求也大不相同。嵌入式系統方面,因工作環境固定,為使
用方便與縮小體積,常常使用觸控螢幕當成輸入兼輸出設備,也不太需要彈性擴充其他
額外設備,提供的設備介面大都較為單純。
表 8-3 PC 與嵌入式系統軟硬體比較
組成設備 PC 系統 嵌入式系統
CPU 嵌入式處理機
CPU 例如 INTEL X86、Apple 例如 MIPS、ARM、X86、
PowerPC、AMD K 系列 PowerPC、SuperH
硬 記憶體 SDRAM 或 DDR SDRAM SDRAM
體 主要儲存設備 硬碟 Flash Memory
主要輸入設備 鍵盤、滑鼠 按鍵、觸控螢幕等
主要輸出顯示設備 顯示器 小螢幕、數字顯示器、LED
擴充設備介面 匯流排標準擴充槽、各種連接埠 USB
透過 Bootloader 引導,對不同電
開機程式 主機板 BIOS 引導,無須更改
路進行移植
WinCE、VxWork、Linux,
作業系統 Windows、Linux,不需要移植
需移植

每個設備驅動都必須針對電路板
體 作業系統含有大量驅動程式,或
驅動程式 進行重新開發或移植,一般不能
從網路下載直接安裝使用
直接下載使用
開發環境 在本機就可以開發測試 藉由伺服器進行交叉編譯
模擬器 不需要 需要

AC20410_08.indd283 7/9/202015:47:32
284 微處理機

嵌入式系統的處理 機 依據應用方向與組成結構的不同,可概分為 嵌入式微處理機


(Embedded Microprocessor Unit,EMPU)、 嵌入式微控制機 (Microcontroller Unit,
MCU)、 嵌入式 數 位訊號處理機 (Embedded Digital Signal Processor,EDSP)、 系統
晶片 (System on Chip,SoC)等四類,分別說明如下,表 8-4 為特性比較。

1 嵌入式微處理機 (EMPU):採用一般的中央處理器單元,或稱為一般用途型
微 處 理 機 , 類 似 於 一 般 電 腦 中 的 CPU, 但 是 需 要 專 門 設 計 的 簡 化 電 路 板, 只
保留和嵌入式應用有關的功能,但增強工作溫度、抗電磁干擾、可靠性等方面
功能,功能和工業控制電腦相似,目前最廣受市場歡迎的嵌入式處理 機 就是由
ARM 公司出品的 ARM 系列處理器。如果嵌入式微處理 機 及其記憶體、匯流排、
週邊設備等安裝在一塊電路板上,亦稱之為單板電腦。

2 嵌 入 式 微 控 制 器 (MCU): 以 某 一 種 微 處 理 機 內 核 為 核 心, 晶 片 內 部 整 合
ROM/EPROM、RAM、 匯 流 排、 匯 流 排 邏 輯、 定 時 / 計 數 器、WatchDog、I/
O、 串 列 埠、 脈 寬 調 製 輸 出、A/D、D/A、Flash RAM、EEPROM 等 各 種 必 要
功 能 和 介 面, 如 果 製 作 在 同 一 顆 晶 片 上, 就 稱 為 單 晶 片 控 制 器 (Single Chip
Microcontroller)。具有體積減小,功耗和成本下降、可靠性提高等優勢,目
前 MCU 約占嵌入式系統約 70%的市場,為工業控制的主流。

3 嵌入式 數 位訊號處理機 (EDSP):採用執行 DSP 演算法特殊設計的微處理 機 ,


編譯效率較高,指令執行速度也較高。EDSP 提供在數位濾波、FFT、頻譜分析
等功能。EDSP 具有將嵌入式系統智慧化的優勢,例如生物訊息識別、加解密
算法的鍵盤、即時語音解壓縮等。

4 系統晶片 (SoC):將複雜的嵌入式系統整合到一塊或幾塊晶片中,使得整個
應用系統相當簡潔,通常 SoC 分為通用型和專用型兩類。
表 8-4 各類型嵌入式系統

類型 特性簡述 代表產品

嵌入式微處理機 ARM 系 列、Power PC、MIPS、386EX、


採用一般 CPU 與專用簡化電路板
(EMPU) SC-400、68000 等

嵌入式微控制器 晶 片 內 部 整 合 微 處 理 機、ROM/ M C S - 5 1 系 列 、 M C S - 9 6 / 1 9 6 / 2 9 6 、
(MCU) EPROM、RAM、A/D、D/A 等 C166/167、MC68HC05/11/12/16 等

嵌入式數位訊號處 採用可執行 DSP 特殊設計的處理 TMS320(Texas Instruments) 、DSP56000


理機(EDSP) 器 系列 (Motorola)

通用系列:M-Core(Motorola)、
系統晶片 將複雜的嵌入式系統整合到一塊
TriCore(Infineon)
(SoC) 或幾塊晶片中
專用系列:Smart XA(Philips)

AC20410_08.indd284 7/9/202015:47:32
Chapter 8 │微電腦系統架構與應用 285

嵌入式系統軟體部分包含嵌入式作業系統與應用軟體兩部分。嵌入式作業系統著
重在即時性、硬體依賴性、軟體燒錄性及應用專用性等方面,主要用來支援嵌入式硬
體,通常包括系統核心、硬體的驅動程式、設備驅動介面、通信協定、圖形使用者介面
(GUI)等,可以有效管理系統資源,提供驅動程式、軟體開發工具與函式庫等。

嵌入式作業系統大都採用實時作業系統(Real-Time Operating System,RTOS),


所謂 RTOS 是指作業系統必須在限的時間內,對功能要求產生正確的反應。所以 RTOS
對於時間排程與穩定性有非常嚴格的要求,不容許發生太大的誤差。所以 RTOS 除了
有實時性、與硬體相關依賴性高,還具有多工能力、系統核心小而精簡、專用性強等
特色。常見的嵌入式作業系統有 TinyOS、Embedded Linux、Android、iOS、WinCE、
Symbian、Palm OS 等,如表 8-5 所示。

表 8-5 常見嵌入式作業系統

類型 特色

‧ 主要應用於無線感測器網路方面。
TinyOS
‧ 採用模組化設計,程式核心很小。

‧ 是一個概稱,是指「將 Linux 系統應用於嵌入式系統」為技術核心。


Embedded
‧ 廣泛地使用在行動電話、個人數位助理(PDA)。
Linux
‧ Linux 具有許多優點,包括開放原始碼、所需容量小、免版權費、成熟穩定等。

‧ 基於 Linux 核心開發的作業系統,應用於智慧型手機、平板電腦等可攜式裝置。
‧ 早 期 由 Google 開 發, 目 前 由 開 放 手 機 聯 盟(Open Handset Alliance, 簡 稱
Android OHA)持續開發。
‧ Android 軟體架構分為應用程式、應用程式架構、函式庫、Android 執行環境與
Linux 核心等五部分。

‧ 源自蘋果原有的麥金塔個人電腦 (Macintosh,簡稱 Mac) 作業系統 Mac OS X,


兩者均以 Darwin 為基礎所發展成。
iOS ‧ iOS 的系統架構分為核心作業系統層(the Core OS layer)、核心服務層(the
Core Services layer)、媒體層(the Media layer)與可輕觸層(the Cocoa Touch
layer)四個層次。

‧ 微軟專為嵌入式系統所推出的嵌入式作業系統,須經由微軟授權後才能取得。
WinCE
‧ 可以執行 Mobile Office 套裝軟體、使用 MSN 與收發 Email 等。

AC20410_08.indd285 7/9/202015:47:32
286 微處理機

8-2-3 嵌入式系統的應用
因著各行各業的需求,嵌入式系統已大量融入產業與產品中,其應用大致上可分為
消費性電子、工業控制、辦公室自動化、電訊 / 資料 / 通訊、遠距自動化、醫療電子、
軍事 / 太空與汽車電子等八大類,如圖 8-6 所示。嵌入式系統的應用遍佈在人類的生活
中,從掃地機器人、視訊機上盒等資訊家電,到汽車電子,都是嵌入式系統的應用。而
人手一機的智慧型手機,也是嵌入式系統的延伸應用。

圖 8-6 嵌入式系統的應用

8-2 隨堂練習
1. 請舉出三種嵌入式系統的特色:       、       、       等。

2. 依據應用方向與組成結構不同,嵌入式系統可概分為四類:
       、       、       與       。

3.       是指「作業系統必須在限定的時間內,對功能要求產生正確的反應」。

AC20410_08.indd286 7/9/202015:47:32
Chapter 8 │微電腦系統架構與應用 287

8-3 微電腦系統應用
微處理機系統對現代人已經是不可或缺的生活伙伴,在通訊、控制、資料處理、多
媒體、智慧型電子產品等方面,都有微處理機應用的例子,這裡從多方面談論它們的應
用狀況,並提出應用實例,以更瞭解相關的技術與組成架構。

8-3-1 概 述
從 1940 年代開始,微電腦系統開始發展後,由於數位積體電路技術的快速進展,
使得微電腦系統有相當多的應用,目前我們的生活都和微電腦系統息息相關,基本上,
生活處處都可以看見微電腦系統的身影。

在不同的應用領域中,微處理機也會以不同的型態出現,例如家電製品大都使用
ASIC 或單晶片形式出現,而需要更好的人機介面的應用則會使用個人電腦或伺服器的
形式出現,例如實驗室高級運算應用、電子地圖處理系統等。以下舉出微電腦在多種層
面的應用。

一 CAD/CAM
微 電 腦 在 工 業 上 的 應 用 不 外 乎 CAD (computer aided Design, 電 腦 輔 助 設 計 ) 與
CAM (computer aided manufacture, 電 腦 輔 助 製 造 )。 現 代 的 CAD 結 合 模 擬 技 術 與
3D 繪圖,甚至虛擬實境(VR),使產品開發時間大大縮短,例如汽車的設計,技術人
員只要在電腦上模擬元件雛形的效果,就可以判斷元件是否適用,不需真正裝置在汽車
上測試。而 CAM 發揮微電腦快速、重複、準確的特性,使製造程序更精準,產量與良
率提高,降低製造成本。

二 CAI
CAI (computer aided instruction,電腦輔助教學),顧名思義是利用電腦幫助教學
活動的進行,當然也希望提高學習效率。除了結合多媒體,讓教材與教學過程更生動活
潑,電腦也使學生有重複學習、互動的機會。而透過網際網路進行遠端教材與測驗,進
行遠端學習,甚至遠端線上學習的模式愈來愈成熟,目前已有虛擬教師、虛擬教室、虛
擬學校的建立,電腦對教育的影響可謂深遠。

AC20410_08.indd287 7/9/202015:47:32
288 微處理機

三 通訊與網際網路
網際網路顛覆人們通訊的方法、傳遞與查詢資料檔案的方式,也使商業行為進入另
一紀元,如電子商務的蓬勃發展,網路交易技術的提升,使商業對電腦的依存度提高,
當然也會帶動電腦更廣泛使用。而大哥大風潮,人手一機,縮短人們通訊距離,與使用
通訊的習慣。甚至如視訊會議、影音電話,都會使人類與電腦的關係愈來愈密切。

四 醫學方面
早期微電腦系統主要應用在儲存醫療記錄,提供患者病史、用藥與診療資訊。電腦
進步對醫學的影響也極為深邃,除了藥物的研發時程縮短外,病症的診斷、療程的輔助
與遠端手術都有很大的幫助。甚至利用微型攝影機、磁共振等技術獲得 2D,甚至 3D 影
像,得到病變影像,提高病症的發現率與正確性。

五 飛行與軍事
電腦對飛行或軍事方面的影響有幾項,例如模擬飛行來節省飛行員訓練的成本,也
可以無人駕駛飛機提高軍事戰爭的戰力,並且輔助了客機的駕駛提高安全性。軍事方面
的飛彈彈道計算更快、更精準,軍事演習模擬也更真實。太空已是強國下一階段競逐的
場域,使用機器手臂或機器人可以擴展人類對外太空未知世界的探索。

六 娛樂
數位影音技術愈來愈成熟,媒體製作技術與呈現方法改變,大量特效、虛擬人物,
拉近人類與夢想的距離。3D 繪圖、動畫、虛擬實境、互動式遊戲、語音等技術的大躍進,
都提高遊戲的娛樂性。從 VR,到 AR/MR/XR 的發展,也讓人們的娛樂行為改變。

VR (Virtual Reality,虛擬實境)是以虛擬「取代」現實,用完全數位的虛擬世界
取代人的感官感覺與人類世界呈現,主要透過頭戴式裝置進行,產生包括聲音、影像及
其他人體能夠與感受到的媒介的一種技術。而 AR (Augmented Reality,擴增實境)是
在真實的世界中,即時添加虛擬的物體。目前主要透過手機的攝像頭達成,如 LINE 視
訊時在真人臉上加上特效、Pokemon Go 和 Snapchat 的 AR bitmojis 等都是 AR 的應用。

AC20410_08.indd288 7/9/202015:47:32
Chapter 8 │微電腦系統架構與應用 289

MR (Mixed Reality,混合實境)則是將現實與虛擬「結合」,與 VR 相似,但使


用者所看見的環境是依現實為基礎而建構的,而且現實物體能即時與虛擬中的物件進行
互動。 XR (Extended Reality,延展實境)其實是一個總稱,涵蓋 VR、AR 與 MR 三種
技術的集合,也可說 XR 是虛擬與現實交錯融合技術的總稱,從通過有限感測器輸入的
虛擬世界到完全沉浸式的虛擬世界。圖 8-7 為它們的光譜分布關係。

圖 8-7 VR/AR/MR 光譜

七 企業用途
企業在簿記、庫存管理和通信、客戶消費行為分析藉助微電腦系統頗多,透過企業
內或企業間的商業資訊共享,使企業能夠比以前更快地交易庫存和更新銷售數據,為商
業提供正確的決策依據。除了文書、試算表之外,設計、建築公司的輔助設計與分析、
模擬,金融公司的預測與評估,中小型企業的物料管理、財物與人事管理、會計與財務
處理等。

八 移動設備
廣泛的移動設備(Mobile Devices)是指可攜式的電腦設備或產品,例如筆記型電
腦、智慧型手機、平板電腦等移動設備。這些輕巧設備,可作為通訊、資訊展示與交換、
記事本等個人化功能使用。

九 微控制器(Micro controllers)
微控制器包含 CPU 處理器、主記憶體與輸出 / 入功能,整合在單一晶片中,架構與
一般電腦系統相同,盡量小型化、成本降低、功能精簡等,可作為一些簡單的電腦控制
應用,例如植入式醫療設備、電動工具、辦公設備、玩具和汽車發動機控制系統等等。

廣義的微電腦系統包括微控制器、嵌入式系統等,已遍佈生活周遭,是人類生活不
可或缺的最重要的工具與伙伴,隨著硬體設備效能、體積與成本的發展,再搭配程式設
計師創造出的精彩絕倫的軟體,不論是工作、生活與娛樂,都變得更電腦化了!

AC20410_08.indd289 7/9/202015:47:33
290 微處理機

8-3-2 微電腦系統應用實例
微電腦系統的應用無所不在,以下提出圖書管理系統與工業應用的震動診斷系統為
實例,期能瞭解微電腦系統負責的角色與其重要性。

一 圖書管理系統
典型的 圖書館資訊系統 (Library Information System,簡稱 LIS),如圖 8-8 所示
架構圖,應包括圖書管理系統、數位化圖書管理系統、無線射頻館藏管理系統與讀者服
務系統等,功能會包括圖書與讀者之間的關係,例如圖書採購、編目與管理,讀者的基
本資料與借閱記錄的管理,而現代的圖書館也需要考量到數位化(無紙化)圖書的管理
與借閱,而圖書管理的門禁安全、自助借還書與圖書的安全等管理,也是需要應用的技
術。圖書館自動化,甚至無人圖書館也是熱門話題,技術也日益精進。

圖 8-8 圖書館資訊系統架構圖

使用微電腦系統架設的資訊管理系統,大都採用 Multi-Tier Client-Server (多層


主從式架構),如圖 8-9 所示,依據實際使用狀況,Client/Server 的架構中,Client 就
是個人電腦或終端機,Server 就是應用程式與資料庫伺服器。當讀者透過網際網路連接
圖書館網站時,電腦和網頁瀏覽器就被當做一個用戶端(Client),同時,組成圖書館
管理系統的電腦(伺服器)、資料庫和應用程式就被當做伺服器(Server)。當透過網
頁瀏覽器向管理系統查詢有關「微處理機」的圖書,伺服器從資料庫中找出所有圖書名
稱符合的資訊,組合成一個網頁,再傳送回讀者的瀏覽器。伺服器端是被動的,等待讀
者(使用者)的服務請求,處理後傳回結果。而用戶端是主動的,發出服務要求,等待
回應服務結果。

AC20410_08.indd290 7/9/202015:47:33
Chapter 8 │微電腦系統架構與應用 291

圖 8-9 Multi-Tier Client-Server 架構圖

所 謂 3-Tier( 三 層 ) 就 是 Client / Application Server / DataBase Server( 客 戶 端 /


應用程式伺服器 / 資料庫伺服器)的意思。客戶端應用程式大多為瀏覽器,負責提供使
用者介面,讓使用者向伺服器提出服務項目。由應用程式伺服器提供網際網路常見的服
務項目,如 Web、FTP 等,同時可供多個使用者多個應用程式連線,並回應客戶端的
需求結果。而資料庫伺服器,也就是資料庫管理系統(DBMS,Database Management
System)組成的伺服器,可以管理客戶端的資料庫連線、交易過程與資料讀、寫、備份
等資料庫操作,常用如 MS SQL Server、InterBase、Oracle 等。

二 旋轉機械震動診斷系統
第五代的電腦將朝人工智慧邁進,實際上目前已有多方面的應用實例。圖 8-10 舉
出以微電腦快速計算的能力,達成旋轉機械振動診斷的功能,所謂旋轉機械是指,以軸
為中心,做圓形運動的機械,例如馬達。此系統希望使用者可以透過螢幕瞭解旋轉機械
的振動量,甚至損壞情形。

AC20410_08.indd291 7/9/202015:47:34
292 微處理機

使用位移探針,偵測軸心的偏轉量,如圖 8-10(b) 所是的故障情形,可能是偏心或


質量不平衡。故障情形愈嚴重,位移探針取得的偏轉量愈大,輸出的電壓(約為毫伏級)
愈大。經過放大,並輸入 A/D 轉換為數位資料,以供微電腦判斷目前的偏轉量是否在容
許範圍。大多數的「判斷」都需具備 人工智慧 (artificial intelligence,簡稱 AI)與 專
家系統 (expert system)的技術與架構,例如利用類神經演算法或模糊運算等。

人類腦中約有一千億個神經元,透過連結組成複雜的神經網路,可以傳遞各種外界
的變化情形,例如觸感、視覺、聽覺等,而 類神經網路 (artificial neural network,人
工神經網路,簡稱 ANN),簡單的說,就是希望以電腦快速的計算能力,模仿生物神
經網路的資訊處理系統,具備判斷週遭變化狀況的能力。

(a) 系統方塊圖

(b) 軸心故障可能性
圖 8-10 旋轉機械振動診斷系統

類神經網路基本結構如圖 8-11 所示,包括 輸入層(特徵輸入)、隱藏層 與 輸出層(故


障種類),網路中神經元數量與隱藏層數量,都可視需要增加與減少。兩個神經元之間
有權重值表示關係密切程度,如圖中 Wxh(應有 3 × 4 = 12 項)與 Why(應有 4 × 3
= 12 項),所謂學習(訓練)就是調整這些權重值,決定輸入與輸出的對應關係,例如
在震動診斷系統中,怎樣的故障特徵(輸入向量),對應哪種故障種類(輸出向量)。

AC20410_08.indd292 7/9/202015:47:34
Chapter 8 │微電腦系統架構與應用 293

振動診斷系統會先採集許多不同故障與狀態的樣本資料,經過資料前處理與特徵粹
取,輸入類神經網路的輸入向量,重複多次的學習(訓練),修正神經元之間的權重值,
如同人類有更多的經驗,就能具備更精準的判斷能力。當實際應用時,輸入目前現場的
旋轉機械狀態,經過特徵粹取、透過建置好的神經網路計算,即可判斷出故障種類。

圖 8-11 類神經網路

8-3 隨堂練習
1. 美國加州 Red 6 航太公司新型互動式 A-TARS 系統,利用         技術,讓
飛官們在進行實際飛行訓練時,只要戴上特殊頭盔,就能夠與虛擬的友軍與敵軍載
具進行各類即時互動,進行空中加油、空戰纏鬥、編隊訓練、對地攻擊等訓練。

2. 所謂 3 層 Client-Server 就是指         、         、         


三種角色的電腦。

3. 通常類神經網路包括         、         與輸出層。

AC20410_08.indd293 7/9/202015:47:35
294 微處理機

Chapter 8 學習目標回顧

學習目標 1:能列舉電腦的分類
1. 以 體 積 大 小 或 資 料 處 理、 運 算 能 力 來 分 類, 可 將 電 腦 分 成 超 級 電 腦、 大 型 計
算機、小型計算機與微型電腦四類。
學習目標 2:能區分微電腦各種類型
2. 任 何「 內 含 微 處 理 機」 的 系 統 組 成 的 電 腦、 設 備 等, 等 級 低 於 小 型 電 腦, 都
稱為微電腦系統,可概分為桌上型與可攜式兩類,例如個人電腦、筆記型電腦、
平板電腦、智慧型手機、嵌入式系統等。
學習目標 3:能說明微電腦的組成架構
3. 完 整 的 微 電 腦 系 統 應 包 括 軟 體 與 硬 體 兩 大 部 分, 硬 體 架 構 必 須 有 微 處 理 機、
記憶單元與輸出入單元,並視需求搭配各式各樣的週邊裝置。
4. 軟 體 部 分 則 需 安 裝 系 統 軟 體 來 管 理 電 腦 系 統 的 軟 硬 體 資 源, 再 依 據 功 能 需 要
安裝應用軟體。另外,視需要安裝驅動程式驅使硬體可以正常工作。
學習目標 4:能描述嵌入式系統的特色與應用
5. 嵌 入 式 系 統 是 為 了 執 行「 特 定 功 能」 的 系 統, 並 嵌 入 到 目 標 裝 置 裡, 負 責 即
時運算與處理的微電腦系統。主要由嵌入式微處理機、週邊硬體設備、嵌入式
作業系統及使用者應用程式等四個部分組成。
6. 嵌 入 式 系 統 分 類 可 概 分 為 四 類, 包 括 嵌 入 式 微 處 理 機(EMPU)、 嵌 入 式 微
控制器(MCU)、嵌入式數位訊號處理機(EDSP)、系統晶片(SoC)等。
7. 嵌入式系統硬體除了一般電腦系統的硬體五大單元與系統軟體、應用軟體外,
通常還具備數位及類比轉換功能、感測器、致動器與機械等,硬體設計必須著
重空間、重量、成本、功耗、即時性等限制。
8. 嵌 入 式 系 統 軟 體 包 含 嵌 入 式 作 業 系 統 與 應 用 軟 體 兩 部 分。 常 見 的 嵌 入 式 作 業
系統有 TinyOS、Embedded Linux、Android、iOS、WinCE、Symbian、Palm OS 等。
學習目標 5:能列舉微電腦系統的應用種類與實例
9. XR( 延 展 實 境) 其 實 是 一 個 總 稱, 涵 蓋 VR、AR 與 MR 三 種 技 術 的 集 合,
也可說 XR 是虛擬與現實交錯融合技術的總稱。
10. 資 訊 管 理 系 統 大 都 採 用 Multi-Tier Client-Server( 多 層 主 從 式 架 構),Client 就
是個人電腦或終端機,Server 就是應用程式與資料庫伺服器。

AC20410_08.indd294 7/9/202015:47:35
Chapter 8 │微電腦系統架構與應用 295

Chapter 8 課後習題

選擇題
8-1 1. 以體積大小或資料處理、運算能力來分類,可將電腦分成四類,下列哪一
項不是?
(A) 超級電腦 (B) 大型電腦 (C) 箱型電腦 (D) 微型電腦。

2. 超級電腦的特色,何者為非?
(A) 有極大的存儲容量和計算速度
(B) 主要用於科學和工程學科繁複的問題
(C) 常用於天氣分析與預報、處理量子力學等
(D) 如 DEC 公司 Alpha 就是超級電腦。

3. 下列哪一項不是微型電腦的類型?
(A) 平板電腦 (B) 穿戴式電腦 (C) 遊戲機 (D) 伺服器。

4. 關於各類型微型電腦敘述何者有誤?
(A) 目前可穿戴式電腦大都應用於娛樂
(B) 行動電話分為功能型手機與智慧型手機
(C) PDA 能夠進行文字處理、電子表格和手寫識別等
(D) 筆記型也稱為膝上型電腦。

5. 下列哪一項不是微電腦架構的軟體項目?
(A) 作業系統 (B) 驅動程式 (C) 3D 繪圖軟體 (D) 套裝軟體。

6. 下列關於 Intel Core i7 桌上型電腦系統架構的敘述,何者有誤?


(A) 常配合北橋晶片 X58 與南橋晶片 ICH10
(B) 南橋晶片又被稱為 ICH
(C) 北橋晶片主要管理高速介面
(D) 硬碟介面 SATA 通常連接北橋晶片。

7. 關於 iPad 2,下列敘述何者錯誤?
(A) PMU 是為了達成最高效能與最低功耗
(B) HSIC 主要在硬體接線式晶片互連應用
(C) I2S 是 IC 間傳輸數位影音資料的一種介面標準
(D) VSP、ASP、XSP 三者常用於表示音訊編、解碼相關的串列介面。

AC20410_08.indd295 7/9/202015:47:35
296 微處理機

Chapter 8 課後習題

8-2 8. 微電腦發展過程中,單晶片異軍突起,它有何特色?
(A) 將 CPU、記憶體單元與 IO 單元製作在同一顆晶片上
(B) 具有低成本、使用簡單的優勢
(C) 執行效率與功能都比不上多晶片電腦結構
(D) 以上皆是。

9. 單晶片微電腦與多晶片微電腦(例如 INTEL 的 Pentium)以何差異?


(A) 速度快 (B) CPU 內部是否有介面功能
(C) 資料匯流排接腳數目 (D) 位址匯流排之接腳數目。

10. 單晶片微算機通常是指在一個 IC 晶片中包含有中央處理器(CPU)及記


憶體(Memory)外尚包括
(A) 比較器 (B) 乘法器
(C) 輸入/輸出介面(I/O interface) (D) 編碼器。

11. 所謂嵌入式系統的組成不包括下列哪一項?
(A) 嵌入式微處理 機 (B) 週邊介面晶片
(C) 嵌入式作業系統 (D) 使用者的應用程式。

12. 下列何者不是嵌入式系統的特色?
(A) 專用性較強 (B) 低功耗、體積小
(C) 執行環境雷同 (D) 使用的系統資源少。

13. 關於各類型嵌入式系統,下列敘述何者有誤?
(A) 嵌入式微處理器將一般電腦中 CPU 專門設計簡化電路板來使用
(B) 嵌入式微控制 機 整合記憶體與 I/O 相關單元製作在同一晶片內
(C) 嵌入式數位訊號處理 機 具有較高的數位訊號處理 DSP 能力
(D) 系統晶片(SoC)是將嵌入式系統以系統軟體實現。

14. 嵌入式系統除了一般電腦系統的硬體五大單元與系統軟體、應用軟體外,
通常還具備哪些?哪一項目不包括在內?
(A) 數位及類比轉換功能 (B) 自動偵錯系統 (C) 致動器 (D) 感測器。

AC20410_08.indd296 7/9/202015:47:36
Chapter 8 │微電腦系統架構與應用 297

Chapter 8 課後習題

8-3 15. 下列對電腦相關領域的英文簡稱說明,何者有誤?


(A) CAD,電腦輔助飛行 (B) CAM,電腦輔助製造
(C) CAI 電腦輔助教學 (D) VR,虛擬實境

16. CAI 是下列何者的英文縮寫?


(A) 電腦輔助設計 (B) 電腦輔助製造
(C) 電腦輔助教學 (D) 電腦軟體能力成熟度。

17. 關於 VR、AR、MR 與 XR 三種技術的敘述,何者有誤?


(A) VR 是虛擬取代現實
(B) AR 是在虛擬世界中,添加實體物體
(C) MR 是將現實與虛擬結合
(D) XR 是虛擬與現實交錯融合。

18. 所謂 Client/Server 架構,下列敘述哪一個是不對的?


(A) Client 就是終端機
(B) Server 就是應用程式與資料庫伺服器
(C) 網頁瀏覽器屬於伺服器
(D) 所謂 3-Tier 就是 Client/Application Server/DataBase Server。

19. 關於人工智慧領域的名詞描述,哪一個是錯誤的?
(A) 類神經網路簡稱 ANN
(B) 專家系統通常包括推論引擎、知識庫與人機介面
(C) 神經網路可透過樣本訓練,取得輸入與輸出的邏輯關係,達成人工智
慧的目的
(D) 神經網路就是機器學習的一種。

20. 相對大型與小型電腦而言,微型電腦有甚麼異同,何者為非?
(A) 體積較小
(B) 運算速度較弱
(C) 少了輸出入單元,系統更精簡
(D) 可分為桌上型與可攜式兩種。

AC20410_08.indd297 7/9/202015:47:36
298 微處理機

Chapter 8 課後習題

問答題
1. 請簡述電腦的四種分類的特性與應用範疇。

2. 請簡述微電腦系統的分類與代表的應用產品。

3. 請概述微電腦系統軟硬體的組成。

4. 請敘述嵌入式系統的特色?

5. 請舉出微電腦在各種層面的應用。

AC20410_08.indd298 7/9/202015:47:36
附錄
隨堂練習簡答
圖表資料來源
參考文獻

AC20410_附錄.indd 299 26/8/2020 9:07:58


300 微處理機

隨堂練習簡答 2-2
1. 微運算。

第一章 2. 暫存器間的資料傳遞;算術;邏輯;移位。
3. 固線式控制單元;微程式控制單元。
1-1
2-3
1. 真 空 管; 電 晶 體; 積 體 電 路(SSI 與
1. 暫存器;快取記憶體;主記憶體;輔助記憶。
MSI);超大型積體電路(VLSI);人工智
2. RAM;ROM。
慧(AI)。
3. Mask ROM;PROM;EPROM;EEPROM;
2. 10 個以下;10 ∼ 100 個;100 ∼ 1000 個。
Flash Memory。
3. 自然語言(人工智慧)。
4. SRAM;DRAM。
1-2 5. 位址;資料;控制;選擇。
1. 算術邏輯單元(ALU);控制單元(CU); 2-4
記憶體單元(MU);輸入單元(IU);輸
1. 位址解碼電路。
出單元(OU)。
2. 線性解碼;完全 / 部分解碼。
2. 程式計數器(PC)。
3. 3×8 解碼器;8K×8 bits。
3. 機械語言;組合語言。
4. 8 顆;2×4 解碼器。
4. +;A、B。
2-5
1-3
1. 記憶體映對式 IO;隔離式 IO。
1. 運算碼;運算元。
2. 北橋電路;南橋電路。
2. 提取指令;指令解碼;計算運算元有效位址;
3. PCI-E、AGP、SATA、IDE。
提取運算元;執行;存放結果。
4. 74LS373;74LS244。
3. 記憶體位址暫存器(MAR)。
1-4 第三章
1. 500。
3-1
2. 51.2m。
1. 指令集。
3. 18 ∼ 24。
2. MAR;MDR。

第二章 3. 64。
3-2
2-1
1. 立即定址;暫存器定址。
1. (A)、(B)。
2. 遞增。
2. 64M。
3. (1) 15H;(2) 60H;(3) 51H;(4) 7CH
3. 序列(Queue)。
3-3
4. 范紐曼結構;哈佛結構。
1. 指令數量多;定址模式種類多;指令長度不
同。

AC20410_附錄.indd 300 9/9/2020 16:39:30


附錄│隨堂練習簡答 301

2. RISC。 4-4
3. 資料搬移;算術運算;邏輯運算;移位旋轉。 1. 目的啟動交握式。
3-4 2. STROBE = 0。
1. 高階程式語言;低階程式語言。 3. 線性串接;星型連接。
2. 標記;指令;註解。 4-5
3. 連結程式。 1. GPU(圖形顯示單元)。
4. 註解欄。 2. EN;RS;R/W。
3-5 3. (B)。
1. 作業系統;系統軟體;應用軟體。
2. 載入程式。 第五章
3. 直譯程式。 5-1
1. 程式化 I/O;中斷式 I/O。
第四章
2. 中斷請求(INTR)。
4-1 3. 中斷認可(INTA)。
1. 串列傳輸;並列傳輸。 5-2
2. 同步傳輸;非同步傳輸。 1. NMI;MI。
3. 手機 單工 2. 0088H~008BH。
數位無線電視 半雙工 3. 輪詢式;菊鍊式;平行式。
火腿族無線電 全雙工
  對講機
5-3
4-2 1. 設定中斷向量表;常駐中斷服務程式。
2. IRET。
1. 512。
2. TXD;RXD;GND。
5-4
3. 同步全雙工串列;同步半雙工串列。 1. 4。
4. O.D.(開汲極);AND。 2. ISR。

4-3 3. 全巢;自動旋轉;特定旋轉。
4. 本地 APIC;I/O APIC。
1.
版本 速度稱呼 傳輸速率
Super Speed+ 20Gbps 第六章
USB2.0 High Speed 1.5Mbps
Low Speed 12Mbps 6-1
USB3.2 Gen2×2 Super Speed 5Gbps
Full Speed 480bps 1. 輔助記憶體;主記憶體。
2. USB2.0 即開始用於手機。 2. 半導體;磁性;光學。
3. VBUS;D–;D+;GND。 3. 揮發性記憶體;非揮發性記憶體。
4. 1011 1000。
5. 控制型;中斷型;巨量型;等時型。

AC20410_附錄.indd 301 26/8/2020 9:07:59


302 微處理機

6-2 7-3
1. 字元線(WL);位元線(BL)。 1. 電源管理邏輯。
2. 列位址;RAS;行位址;CAS。 2. 8;3;32KB;32KB;256KB;12MB。
3. 浮動閘極。 3. SRQ。
4. 電容;刷新。
6-3 第八章
1. 16;1683;63;828MB。 8-1
2. 搜尋時間;旋轉時間;資料傳輸時間; 1. 超級電腦。
3. 52.57m。 2. 桌上型;可攜式。
6-4 3. I/O 晶片。
1. 快取記憶體;虛擬記憶體。 8-2
2. 循序結構;重複存取;呼叫副程式。 1. 專用性強;體積小;成本低;使用 RTOS;
3. 輔助記憶體。 使用環境差異大。(任寫其中三種)
6-5 2. EMPU;MCU;EDSP;SoC。
1. 輪詢式;中斷式;直接記憶。 3. RTOS。
2. 不可以。 8-3
3. 要求式;突發式;週期竊取式。 1. AR。
6-6 2. 客戶端;應用程式伺服器;資料庫伺服器。
1. 4。 3. 輸入層;隱藏層。
2. 擴增 DMA 資料傳輸通道。
3. DREQ0。

第七章
7-1
1. 管線;多處理器。
2. SISD;SIMD;MISD;MIMD。
3. 緊耦合;疏耦合。
7-2
1. 多核心。
2. 指令。
3. 2。

AC20410_附錄.indd 302 26/8/2020 9:07:59


附錄│圖表資料來源 303

圖表資料來源
圖 1-2 維基百科,https://en.wikipedia.org/wiki/Intel_4004
圖 1-3 維 基 百 科,https://zh.wikipedia.org/wiki/ 電 子 數 值 積 分 計 算 機 #/media/
File:Eniac.jpg)
圖 1-4 維基百科,https://zh.wikipedia. org/wiki/Apple_II
圖 1-8(a) 123RF 商用圖庫提供
圖 1-8(b) http://cssplab.cn.nctu.edu.tw/research/embedded.php
圖 1-16 Intel 網站
圖 2-26 http://www.datasheetcafe.com/74ls138-datasheet-decoder-demultiplexer/
圖 2-33 123RF 商用圖庫提供
圖 2-35 123RF 商用圖庫提供
圖 4-16 維基百科,https://zh.wikipedia.org/wiki/USB
圖 4-17 Microsoft TechNet
表 4-8 維基百科,https://zh.wikipedia. org/wiki/USB
圖 4-26(a) 123RF 商用圖庫提供
圖 4-33 HITACHI 資料手冊
圖 4-34 HITACHI 資料手冊
圖 5-10(a) https://www.wikiwand.com/zh/Intel_8259
圖 6-17 123RF 商用圖庫提供
圖 6-18 維基百科,https://zh.wikipedia. org/wiki/%E9%97%AA%E5%AD%98
圖 6-27 維基百科,https://zh.wikipedia. org/wiki/SDRAM
圖 6-28 維基百科,https://zh.wikipedia.org/wiki/%E8%BD%AF%E7%9B%98
圖 6-31(a) 123RF 商用圖庫提供
圖 6-32 123RF 商用圖庫提供
圖 6-33 http://www.pcstats.com/articleview.cfm?articleID=2684
圖 6-34(a) 維基百科,https://zh.wikipedia. org/wiki/CD-ROM
表 8-3 https://kknews.cc/zh-tw/design/omka2o.html

AC20410_附錄.indd 303 26/8/2020 9:07:59


304 微處理機

參考文獻
一、 呂 紹 偉、 吳 淑 錦( 譯 )( 民 101)。 計 算 機 系 統 結 構( 原 作 者:M. Morris
Mano)。臺北市:台灣東華書局。
二、 沈雍超、游孟潔、蔡智孝、顧皓翔(譯)(民 103)。計算機組織與結構效能設計
(原作者:Willian Stallings)。臺北市:高立圖書。
三、 林銘波(民 101)。微算機原理與應用 x86/x64 微處理器軟體、硬體、介面與系統。
新北市:全華圖書。
四、 張顯盛(民 98)。微處理機。臺北市:華興書局。
五、 曹 恆 偉、 李 俊 毅、 郭 建 宏、 陳 建 中( 譯 )( 民 88)。INTEL 系 列 微 處 理 器:
8086/8088 , 80186/80188 , 80286 , 80386 , 80486 , Pentium 與 Pentium Pro 處理器
架構,規劃與介面(原作者:Barry B. Brey)。臺北市:台灣東華書局。
六、 解名仁(民 101)。最新計算機組織與結構。新北市:新文京。
七、 劉紹漢(民 77)。IBM PC/XT 硬體線路精解。新北市:全華圖書。

AC20410_附錄.indd 304 26/8/2020 9:07:59


NOTES
NOTES
NOTES
NOTES
NOTES
NOTES
書 名
微處理機 全一冊
書 號 AC20410
版 次 109年9月初版

適用學校 技術型高級中等學校電機與電子群
審定字號 技審字第109319號
編 著 者 張顯盛
總 編 輯 張忠成
責任編輯 楊清淵
校對次數 8次
版面構成 陳依婷
封面設計 陳依婷

出 版 者 台科大圖書股份有限公司
門市地址 24257新北市新莊區中正路649-8號8樓
電 話 02-2908-0313
傳 真 02-2908-0112
網 址 tkdbooks.com
電子郵件 service@jyic.net

版權宣告 有著作權 侵害必究
本書受著作權法保護。未經本公司事前書面授權,不得以任何方式(包括儲存於資料
庫或任何存取系統內)作全部或局部之翻印、仿製或轉載。

書內圖片、資料的來源已盡查明之責,若有疏漏致著作權遭侵犯,我們在此致歉,並
請有關人士致函本公司,我們將作出適當的修訂和安排。

郵購帳號 19133960
戶 名 台科大圖書股份有限公司
※郵撥訂購未滿1500元者,請付郵資,本島地區100元 / 外島地區200元
客服專線 0800-000-599

PChome商店街 博客來網路書店
網路購書 JY國際學院 台科大圖書專區

各服務中心 總 公 司 02-2908-5945 台中服務中心 04-2263-5882


台北服務中心 02-2908-5945 高雄服務中心 07-555-7947
FB041_CH06.indd 171 2/9/2019 下午 02:07:38

You might also like