Chapter 5 可規劃中斷控制器
-
Upload
linda-cochran -
Category
Documents
-
view
49 -
download
5
description
Transcript of Chapter 5 可規劃中斷控制器
![Page 1: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/1.jpg)
1
第 5章
可規劃中斷控制器
Chapter 5Chapter 5
可規劃中斷控制器
149
![Page 2: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/2.jpg)
2
第 5章
可規劃中斷控制器
為了不影響到微處理機處理能力,且又能夠充分的與這些週邊裝置做有效的溝通,一般在微處理機與 I/O 週邊之間所採取的處理方式有兩種分別是為:詢問 (polling) 方式及中斷 (interrupt) 式。
148
![Page 3: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/3.jpg)
3
第 5章
可規劃中斷控制器
詢問式 詢問式 (Polling)(Polling)
微處理機必須有次序的去測試每一個裝置 (devicer) 且有效的詢問每一裝置是否需要服務。 CPU 於每隔一段時間必須去查詢週邊,嚴重影響系統中 CPU 的執行效率,而使得 CPU 的大部時間都花費在週邊裝置詢問上。
詢問方式是為由 CPU 採取主動方式 .
149
![Page 4: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/4.jpg)
4
第 5章
可規劃中斷控制器
INT
PCU
RAM
ROM
I / O (1)
I / O (2)
CPU 所驅動的多工器
I / O (N)
圖 5-1 詢 問 方 式 結 構 圖
150
![Page 5: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/5.jpg)
5
第 5章
可規劃中斷控制器
需再等待下一週期的詢問方可被服務。由上述中可發現到詢問式存在有下列的許多問題:1. 詢問的週期應多久一次最恰當,另外,隨著週邊裝置
的增加,詢問週期也會增加,形成系統執行效率的降低。
2. 每一個週邊裝置並非一定要經常且週期性的被詢問,因此對每個週邊裝置則各別具有不同的被服務時間表,會增加軟體的負荷。
3. 被詢問到的週邊裝置若不需要服務時,形同浪費相當可 惜;但急切被服務的裝置卻需等到被處理器詢問到時方 可產生動作,造成無法達到最大使用效率之目的。
150
![Page 6: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/6.jpg)
6
第 5章
可規劃中斷控制器
中斷式 中斷式 (Interrupt)(Interrupt)
此方式是採取週邊需求主動要求方式,微處理機是處於被動地位,因此 CPU 不必隨時去查詢各週邊裝置是否需要服務,是為多數系統所採用的一種服務方式。
每一個裝置均可在任何的時間中提出被服務的要求,當處理器執行完正在執行的指令之後,便會依一定的程式跳到所需的服務程式中 .
151
![Page 7: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/7.jpg)
7
第 5章
可規劃中斷控制器
INT
CPU
RAM
RAM
I / O (1)
I / O (2)
中斷控制器
I / O (N)
圖 5-2 中 斷 服 務 法
151
![Page 8: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/8.jpg)
8
第 5章
可規劃中斷控制器
中斷與中斷處理中斷與中斷處理 在 IBM PC/AT 的系統中,產生中斷的方式有三種 :
1. 硬體中斷 CPU 中有二個硬體中斷輸入埠分別為可遮罩 的中斷輸入 (INTR) 及非遮罩的中斷輸入 (NMI) 。
2. 軟體中斷,此種中斷方式的產生是由於 CPU執行到 INT XX 時所產生的中斷,可由 BIOS 的中斷向量表中查得 .
執行中的某些指令所造成,如於數值計算中的除零,當 CPU執行到此指令時,會因除數為零而自動產生中斷 .
152
![Page 9: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/9.jpg)
9
第 5章
可規劃中斷控制器
表 5-1 中 斷 類 型
類 型 中 斷 要 求 使 用 說 明
N M I
1 . 基 板 R A M 同 位 錯 誤 。
2 . I / O 通 道 檢 驗 錯 誤 。
3 . 算 術 處 理 器 錯 誤 。
4 . R E S E T。 硬 體 中 斷
I N T R
由 8 2 5 9 控 制 器 發 出 的I R Q 0 - I R Q 1 5 可 參 考 本 章 各節 。
軟 體 中 斷 I N T X X 由 B I O S 之 中 斷 向 量 。
152
![Page 10: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/10.jpg)
10
第 5章
可規劃中斷控制器
中斷的處理過程中斷的處理過程 中斷控制信號依其動作 (active) 的方式可有準位觸發動作及邊緣觸發 (edge-trigger) 動作。一般而言 INTR是為高準位動作,而 NMI 則是為正邊緣動作。
153
中斷需求 主程式繼續
中
斷 進 入
中 斷 返 回
中斷開始中斷程式執行
中斷結果
中斷允許
圖 5-3 中 斷 執 行 步 驟
![Page 11: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/11.jpg)
11
第 5章
可規劃中斷控制器
8259A8259A 可程式規劃中斷控制器可程式規劃中斷控制器 PC/AT 中所使用的中斷控制器是為 8259A 可程式化中斷控制器 CPU 提供八個向量優先中斷,並可在不同額外增加電路的情況下串接擴充到 64個中斷向量。
154
![Page 12: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/12.jpg)
12
第 5章
可規劃中斷控制器
Vcc
INTA
SP
RD
WRCS
(b) 接腳圖
D7D6D5D4
D3D2D1D0
CAS0
GNDCAS1
1
10987
65432
14131211
28
272625242322
21201918
171615
8259
A0
IR7IR6
IR0IR1IR2
IR3IR4
IR5
CAS2
INT
串接緩衝比較器
CAS0CAS1CAS2
SP / EN
讀 / 寫邏輯
RD
WR
CS
資料匯流排緩衝器
中斷服務暫存器(ISR)
優先權分辨器
中斷要求暫存器(IRR)
控 制 邏 輯
控 制 邏 輯
INTA
A0
(a) 結構方塊圖
IR7IR6IR5
IR0IR1IR2IR3IR4
D7
D0|
INT
圖 5-4 8 2 5 9 A 內 部 方 塊 圖 及 接 腳 圖
155
![Page 13: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/13.jpg)
13
第 5章
可規劃中斷控制器
8259A8259A 的工作原理的工作原理 8259A 的功能方塊圖分有八部分,其中較重要的部分為:
中斷要求暫存器 (interrupt request register, IRR) ;
中斷遮罩暫存器 (interrupt mask register, IMR) ;
正在服務暫存器 (in service request, IRS) ;
優先權調解器 (priority resolver, PR) 。
154
![Page 14: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/14.jpg)
14
第 5章
可規劃中斷控制器
IRR 是用來儲存所有的中斷要求輸入, ISR儲存所有正在服務中的中斷要求, IMR 則是用來決定那一中斷輸入被遮罩與否?而 PR則是為縱觀上述三個暫存器以決定必須送出那一條中斷要求線的訊號,再透過控制邏輯單元發出中斷信號 (INT) 給處理器。
154
![Page 15: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/15.jpg)
15
第 5章
可規劃中斷控制器
IRR (IRR ( 中斷要求暫存器中斷要求暫存器 ))
一 8位元暫存器,用來儲存中斷要求的輸入狀態,其中每一個位元對應著一個中斷要求 .元是為“ 1”時,則表示該中斷輸入是被致能,亦即於 8259A 的中斷要求腳有中斷要求被提出,並且被閂鎖在內部暫存器。
154
位元 7 6 5 4 3 2 1 0
IRQ7 IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6
圖 5-5 IR R 暫 存 器
![Page 16: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/16.jpg)
16
第 5章
可規劃中斷控制器
IMR (IMR ( 中斷遮罩暫存器中斷遮罩暫存器 )) 本暫存器也是為一具有 8個位元的暫存器, IRR 中
的 8個位元。也就是當要使某一中斷控制接腳被遮罩 可由 IMR 中所對應的位元予以設定為“ 1”,就可使該 IRQ不被服務 .
IMR 主要是由軟體來規劃設定的,若是 M0~M7均為“ 1”即 IMR 之值為 FFH時,表示 8295A 的 8個中斷要求輸入 IRQ0~IRQ7 將全部沒有作用。
156
![Page 17: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/17.jpg)
17
第 5章
可規劃中斷控制器
至 PR
IRQ7 IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6
IRR
IMR
R4R7 R6 R5 R3 R2 R1 R0
M7 M6 M5 M4 M3 M2 M1 M0
圖 5-6 IR R、 IM R 及 IR Q 之 關 係
156
![Page 18: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/18.jpg)
18
第 5章
可規劃中斷控制器
ISR (ISR ( 正在服務暫存器正在服務暫存器 )) 8 個位元的暫存器,其主要的功能是儲存目前正在
由系統所服務的最高優先權的中斷向量 ( 即 IRQ0~IRQ7) 那一個中斷正在被執行。 圖 5-7是為 ISR 與 IRR 及 IMR 三者之間的動作流程與相互關係。當有中斷要求提出時,則所相對於 IRR 中的位元被設定之,經由 IMR 的比對沒有被遮罩再由 PR作優先權選擇之後,經由控制邏輯發出 INT ,由 CPU認可之後, 8259A 會於 線上收到兩個負脈衝信號。
157
INTA
![Page 19: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/19.jpg)
19
第 5章
可規劃中斷控制器
PRIMR
及電路
INTA
ISR
第一脈衝設定位元
INTA
IRR
二且第脈衝取消位元
準備發生 INT
8259A
CPU INT
INTA
SET
ISR
INT
INTA
中斷要求
RESET
IRR
IRQ7 IRQ0
圖 5-7 第 一 IN T A 負 向 脈 衝 時 IS R 及 IR R 動 作
157
![Page 20: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/20.jpg)
20
第 5章
可規劃中斷控制器
◎第一個負脈衝發生時電路的動作為:1.IRR將會被禁止,不再理會 IRQ0~IRQ7 線上新進入的信號。2.IRR 所相對應的最高優先權中之位元會被清除為 0。3.ISR 的相對應位元會被設定為“ 1”,表示該中斷要求正
要被服務。◎第二負向脈衝發出時的電路動作情形為:1.中斷向量指標會放在 D0~D7 資料匯流排上, CPU利用此位元組來計算中斷副程式的位址。
2.由第一個 INTA脈波所設定的 ISR 之位元會被取消 (1→0) 於收到 EOI 時。
158
![Page 21: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/21.jpg)
21
第 5章
可規劃中斷控制器
PR (PR ( 優先權分解器優先權分解器 )) 優先權分解器並非為一暫存器,而是為一邏輯電路,
其功能是用以決定那一中斷輸入有最高的優先中斷權 .
圖 5-8 為 PR 的動作流程圖,當有中斷要求進來時,先經由 IMR 的比對確定沒有被禁能時,此時中斷要求 ( 一或是數個 ) 再由 PR來決定執行服務的優先權。
158
![Page 22: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/22.jpg)
22
第 5章
可規劃中斷控制器
CPU由邏輯控制單元發出 INT
外界中斷要求輸入
YES
INT
未被遮罩位元仍送到 PR
NO
IRQ7 IRQ0
IRR
IMR
PR
IMR有遮罩?
被遮罩的要求禁止輸入
圖 5-8 P R 動 作 流 程 圖
158
![Page 23: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/23.jpg)
23
第 5章
可規劃中斷控制器
資料匯流排緩衝器資料匯流排緩衝器 8259A 系統方塊圖中,三個暫存器及 PR之外,尚有三個部分加以分工合作以完成中斷控制器的動作 .
(一 ) 資料匯流排緩衝器
( 二 ) 讀 / 寫控制邏輯電路
( 三 ) 串聯緩衝器 / 比較器
159
![Page 24: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/24.jpg)
24
第 5章
可規劃中斷控制器
表 5-2 8 2 5 9 A 的 暫 存 器 讀 / 寫 規 劃
A 0 D 4 D 3 R D W R C S
0 0 1 0 讀 取 I R R、 I S R 或 中 斷 向 量 指 標
1 0 1 0 讀 取 I M R
0 0 0 1 0 0 寫 入 O C W 2
0 0 1 1 0 0 寫 入 O C W 3
0 1 X 1 0 0 寫 入 I C W 1
1 X X 1 0 0 寫 入 O C W 1、 IC W 2、 IC W 3、 I C W 4
X X X 1 1 0 資 料 匯 流 排 浮 接
X X X X X 1 資 料 匯 流 排 浮 接
註 : ( 1 ) D 4、 D 3 為 在 資 料 匯 流 排 上 之 控 制 字 組 的 D 3 及 D 4。
( 2 ) I C W 為 初 始 命 令 字 組 ( 參 考 5 - 8 節 )。
O C W 為 操 作 命 令 字 組 ( 參 考 5 - 9 節 )。
160
![Page 25: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/25.jpg)
25
第 5章
可規劃中斷控制器
中斷電路中斷電路160
8254計時器計數器 8042
鍵盤控制器
J1-J8擴充插槽
J8-J16擴充插槽
RAM
INT8259
( 僕 )IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15
IRQ3IRQ4IRQ5IRQ6IRQ7XIOWXIORA0
IRQ2
IRQ1
IRQ0
8259
( 主 )
INT
XA0XIOR
XIOW
XD0~XD7
INTA
INTA
CSIAO13
ERROR80287
PAL
INTA
82288 80286(CPU)
S0S1
M / IO
INTA( 匯流排控制器 )
CS
XD0~XD7
圖 5-9 IB M P C /A T 的 8 2 5 9 A 相 關 電 路
![Page 26: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/26.jpg)
26
第 5章
可規劃中斷控制器
表 5-3 IB M A T 中 斷 控 制 功 能 表
主 : 中 斷 控 制 器 僕 : 中 斷 控 制 器
中 斷 要 求 功 能 中 斷 要 求 功 能
I R Q 0 8 2 5 4 計 時 器 通 道 I R Q 8 即 時 計 時 器 中 斷
I R Q 1 8 0 4 2 鍵 盤 控 制 器 I R Q 9 L A N 介 面 點
I R Q 2 次 級 ( 僕 ) 中 斷 控 制 器 I R Q 1 0 保 留 未 使 用
I R Q 3 串 列 通 訊 2, L A N 介 面 2 I R Q 1 1 保 留 未 使 用
I R Q 4 串 列 通 訊 1 I R Q 1 2 保 留 未 使 用
I R Q 5 並 列 印 表 機 2 I R Q 1 3 8 0 8 7 錯 誤
I R Q 6 軟 碟 機 控 制 器 I R Q 1 4 硬 式 磁 碟 機 控 制 器
I R Q 7 並 列 印 表 機 1 I R Q 1 5 保 留 未 使 用
161
![Page 27: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/27.jpg)
27
第 5章
可規劃中斷控制器
INTA...
各I/O的中斷要求
各I/O的中斷要求
各I/O的中斷要求
80 86 CPUINTR
主 PIC
IR0
IR6IR5IR4IR3IR2IR1
IR7
僕 PIC1
IR0
IR6IR5IR4IR3IR2IR1
IR7
IR0
IR6IR5IR4IR3IR2IR1
IR7
IR0
IR6IR5IR4IR3IR2IR1
IR7
INT
INTA
CAS0
CAS2CAS1
INT
INTA
CAS0
CAS2CAS1
INT
INTA
CAS0
CAS2CAS1
INT
INTA
CAS0
CAS2CAS1
僕 PIC2
僕 PIC7
圖 5-10 數 個 8 2 5 9 之 串 接 結 構
162
![Page 28: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/28.jpg)
28
第 5章
可規劃中斷控制器
CAS0CAS0、、 CAS1CAS1、、 CAS2 (cascade line)CAS2 (cascade line)
三條線均可當作輸入或是輸出使用,是受制於 8259A 為何種工作型式而決定之。
被規劃為主中斷控制器時間, SP/EN接高態“ H”,則此三條線就為輸入之用。各個串接的 8259A 之 CAS0~CAS2 是並列的接在一起,即構成為一 8259A 的私用匯流排,可用本指示在產生中斷時究竟是應由僕 8259A 的那一中斷裝置來產生中斷指標送到資料匯流排上。
162
![Page 29: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/29.jpg)
29
第 5章
可規劃中斷控制器
串接中斷結構串接中斷結構
8259A 可以擴充到最多 64個等級的中斷輸入要求,並且不需要額外的硬體電路 .
當 SP/EN 為“ H”時則表示 8259A 為主 (master) 中斷控制器;若是 SP/EN接“ L”時則是被當作僕 (slaver) 中斷控制器。
只有主 8259A才可以對 CPU 發出中斷要求,其餘則是被當作僕 8259A 的中斷要求輸入 .
163
![Page 30: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/30.jpg)
30
第 5章
可規劃中斷控制器
中斷指標的產生中斷指標的產生 中斷的過程
1.一個或多個 I/O 裝置提出中斷要求,在 8259A 的內部暫存器 IRR 的相對位元被設定為 1。
2.8259A 的 PR 對中斷要求優先權作分解後,送出 INT給處理機。
3.處理機收到 INT 之後,若允許中斷的要求,則會回送兩個INTA脈波給 8259A 。
164
![Page 31: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/31.jpg)
31
第 5章
可規劃中斷控制器
4.當 8259A收到第一個 INTA 信號時,其最高優先的 ISR 位元被設定為 1,所對應的 IRR 位元被清除掉。
5.接著 8259A收到的第二個 INTA 時, 8259A就送出一八位元預先規劃好的中斷指標於資料匯流排上。
6.CPU收到此中斷向量指標之後再予以轉換成記憶體位址而得到中斷副程式的實際位址。
165
![Page 32: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/32.jpg)
32
第 5章
可規劃中斷控制器
中斷指標中斷指標
此向量指標相當於間接位址指示,在記憶體的位址由 00000H 至 003FFH,是分別存放這 256個中斷指標的位址,每四個位元組代表一中斷指標,前兩個位元組為指令指標 (instruction point, IP) ,後兩個位元組為程式段落暫存器 (code segment, CS)
![Page 33: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/33.jpg)
33
第 5章
可規劃中斷控制器
中斷表CSIPCSIP
CSIPCSIP
IPCSIPCSIPCSIPCSIP
中斷指標記憶體位址3FE3FC3FA3F8
12E12C12A128
0E0C0A080604
指標 254
指標 255
指標 50
指標 51
指標 2
指標 3
指標 0
指標 1
CSIP
0200
圖 5-11 8 2 5 9 A 的 中 斷 向 量 表
165
![Page 34: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/34.jpg)
34
第 5章
可規劃中斷控制器
5 -2 對 一 8 2 5 9 A 在 接 收 到 由 C P U 所 送 出 之 I N T A 之 後,所 送 出 的
中 斷 指 標 為 : ( a ) 7 0; ( b ) 5 0 H 時 , 所 對 應 的 記 憶 體 位 址 各 應
為 多 少 。
解: ( a ) 8 2 5 9 A 所 送 出 的 指 標 值 是 為 7 0, 為 十 進 位 值 , 而 每 一 指
標 是 由 4 個 位 元 組 所 組 成 , 故 轉 換 成 記 憶 體 位 址 時 , 佔 有
之 位 元 組 為
70 4 280 個位元組
再 將 2 8 0 十 進 位 轉 換 成 十 六 進 制 的 記 憶 體 位 址 為 。
280D 118H
即 中 斷 服 務 程 式 的 I P 及 C S 分 別 存 放 於
IP 118H 119H
CS 11AH 11BH
值在 、 位址值在 、 位址
166
![Page 35: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/35.jpg)
35
第 5章
可規劃中斷控制器
(b) 所送出的中斷指標為 50H是十六進位,若直接轉換成記憶體位址可由指標值乘四個位元組所組成
50×4= 140H
即
IP 值存放在 140H 、 141H處
CS 值存放在 142H 、 143H處
![Page 36: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/36.jpg)
36
第 5章
可規劃中斷控制器
8259A8259A 的規劃的規劃 必須對 8259A 的兩個命令字組作規劃,分別是為: 1.初始命令字組 (ICW) :,一旦 ICW被規劃到 8259A以後,
8259A才可以接受外部的中斷要求。2.操作命令字組 (OCW) :這些命令字組可以控制 8259A操
作於不同的中斷模式:(1) 完全巢狀模式(2) 可旋轉的優先模式 (3) 特殊遮罩模式 (4) 輪詢模式
167
![Page 37: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/37.jpg)
37
第 5章
可規劃中斷控制器
初始命令字組 初始命令字組 (ICW)(ICW) ICW 總共有四個, ICW1和 ICW2 是為一定要規劃定義的初始命令字組,而 ICW3和 ICW4則是視 ICW1 的內容而決定之。整個程序若要加以修改時,必須由 ICW1開始,不能僅是對 ICW2、 ICW3或 ICW4中的任何一個單獨為之。
167
![Page 38: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/38.jpg)
38
第 5章
可規劃中斷控制器
ICW2
ICW3
有否串接?
ICW1
ICW4需要?
ICW4
準備接受中斷輸入
是 (sign 0)
是
否
否 (sign 1)
ICW1 D1由 之位元判斷
此兩控制字組不可省略
ICW1 D0由 之位元判斷
圖 5-12 初 始 命 令 字 組 流 程
168
![Page 39: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/39.jpg)
39
第 5章
可規劃中斷控制器
ICW1ICW1
ICW1 的設定之先決條件必須為位址腳 及控制字組的 D4位元為 1才可以。
D0位元是用來決定是否而要規劃 ICW4 命令字組,而 ICW4是為 CPU類型的決定。若 表示需要對 ICW4規劃;反之若 則表示不需要規劃 ICW4。
169
A0 0
D0 1
D0 0
ICW4中斷向量位址
的規劃與否系統是否有串接 8259A
系統的呼叫位址間隔8259A 觸發型式
0A0 D7 D0D1D2D3D4D5D6
A7 A5A6 1 LTIM ADI SNGL ICW4
圖 5-13 IC W 1 的 位 元 定 義
![Page 40: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/40.jpg)
40
第 5章
可規劃中斷控制器
ICW2 ICW2
ICW2命令字組是用來定義中斷向量位址,在 MC 8080/8085型態中,呼叫位址間隔可有差 4及差 8 兩種 .若是所使用的 CPU 為時,因所採用的是中斷指標,故由 D7~D3 (T7~T3) 來定義中斷向量值。
170
A15-A8 MC8088 / 8085
T7-T3 MC8086
。。
為 位址之高位元組為 之中斷指標
A0 D7 D0D1D2D3D4D5D6
1 A15 A14 A8A9A10A11A12A13T3T7 T6 T5 T4
圖 5-14 IC W 2 之 格 式
![Page 41: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/41.jpg)
41
第 5章
可規劃中斷控制器
ICW3 ICW3
ICW3 是用來規劃 8259串接有僕中斷控制器時,也就是當 ICW1 的位元 1 (D1) 是為 0時,則表示有串接 8259A ,才需對 ICW3 作規劃。
當有串接時,應分別對主 8259A 及僕 (slaver) 8259A之 ICW3 作規劃 .
172
![Page 42: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/42.jpg)
42
第 5章
可規劃中斷控制器
若位元為 1則表示該 IRQ端接有僕 8259A
僕 8259A接至主 8259A的 IRQ腳主 8259 IRQ 腳
00001111
00110011
01010101
IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
主 8259A
A0 D7 D0D1D2D3D4D5D6
1 S7 S0S1S2S3S4S5S6
A0 D7 D0D1D2D3D4D5D6
1 0 0000 ID2 ID0ID1僕 8259A
ID2 ID0ID1
圖 5-15 IC W 3 定 義 格 式
172
![Page 43: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/43.jpg)
43
第 5章
可規劃中斷控制器
ICW4ICW4
本命令字組是用來決定微處理機的類型、中斷的方式及巢狀模式等之定義。
CPU 類型自動 EOI
主僕緩衝器巢式模式
A0 D7 D0D1D2D3D4D5D61 0 0 0 SFNM BuF AEOIM / S PM
圖 5-16 IC W 4 的 定 義 格 式
173
![Page 44: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/44.jpg)
44
第 5章
可規劃中斷控制器
操作命令字組 操作命令字組 (OCW)(OCW)
一旦初始命令字組 (ICW) 被規劃之後, 8259A 的IRQ0~IRQ7 就準備接受外部的中斷。
ICW及 OCW的互動關係流程說明。 ICW是為使 8259A 處於固定的操作模式所必備之條件;而 OCW的規劃則是為更加有效影響 8259A 的操作模式 .
175
![Page 45: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/45.jpg)
45
第 5章
可規劃中斷控制器
ICW 一旦規劃好8259A 就處於固定工作模式
8259A
1. 完全巢式模式。 2. 非自動 EOI。 3. IRQ0 為最高優先權。 4. 中斷遮罩暫存器被清除。
OCW1-OCW3( )可有可無
操作模式會隨OCW 而改變
工 作 模 式
ICW1-ICW4( )一定要規劃
圖 5-17 IC W 與 O C W 之 互 動 關 係
176
![Page 46: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/46.jpg)
46
第 5章
可規劃中斷控制器
OCW1 OCW1
OCW1 是為用來定義中斷遮罩暫存器 .其中之 M0~M7位元,是為用來控制中斷要求 (IR) 輸入腳是否被遮罩。
175
10
中斷遮罩控制遮罩設定遮罩取消
A0 D7 D0D1D2D3D4D5D6
1 M7 M0M1M2M3M4M5M6IRQ7 IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6
圖 5-18 O C W 1 定 義 格 式
![Page 47: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/47.jpg)
47
第 5章
可規劃中斷控制器
OCW2OCW2
OCW2 則是用來設定中斷要求輸入腳的 EOI 形式,以及中斷優先權是否旋轉及旋轉方式選擇。
176
IRQ所要設定的
腳EOI及旋轉方式定義
A0 D7 D0D1D2D3D4D5D60 EOISLR 00 L0L1L2
圖 5-19 O C W 2 的 定 義 格 式
![Page 48: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/48.jpg)
48
第 5章
可規劃中斷控制器
旋轉優先權旋轉優先權
D7 (R) 此位元是用來控制所有 8259A 的旋轉優先權操作方式,若此位元為 1,則其優先權的順序是採旋轉的形式來執行,則是由 EOI 與 SL 來決定。若此位元為 0則旋轉動作就不會被執行。
![Page 49: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/49.jpg)
49
第 5章
可規劃中斷控制器
表 5-7 O C W 2 之 E O I、 S L、 R 之 定 義
R S L E O I 動 作 特 性 動 作 說 明
0 0 1 非 特 定 E O I
0 1 1 中 斷 結 束
特 定 E O I 命 令
1 0 1 在 非 特 定 E O I 命 令 且 旋 轉
1 0 0 自 動 E O I 且 旋 轉
0 0 0
自 動 旋 轉
清 除 自 動 E O I 和 旋 轉
1 1 1 特 定 旋 轉 特 定 E O I 且 旋 轉
178
![Page 50: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/50.jpg)
50
第 5章
可規劃中斷控制器
1.1. 非特定的中斷結束命令非特定的中斷結束命令
(R、 SL 、 EOI→0、 0、 1)
於字組的位元中,此命令是用來通知 8259A ,當一個中斷服務程式執行完畢之後,不需要特別指定那一個中斷等級,8259A就會在內部自動的決定要清除所對應的那一個 ISR位元。
![Page 51: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/51.jpg)
51
第 5章
可規劃中斷控制器
2.2. 特定特定 EOIEOI命令命令 R、 SL 、 EOI→0、 1、 1
特定的 EOI命令並非像非特定的 EOI命令,會自動的清除ISR內的最高優先權之位元,而是當 CPU送出 EOI命令時,必須指定所要清除的是 ISR內的那一個位元該被清除,而此被清除的中斷要求可能並非是為最高優先權的中斷。
179
![Page 52: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/52.jpg)
52
第 5章
可規劃中斷控制器
在非特定在非特定 EOIEOI命令下旋轉命令下旋轉 R、 SL 、 EOI→1、 0、 1
由格式中之定義可知, 故知是為非特定的 EOI命令;而表示優先權是會旋轉。
180
SL 0 EOI 1 、
![Page 53: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/53.jpg)
53
第 5章
可規劃中斷控制器
在特定在特定 EOIEOI模式下的旋轉命令模式下的旋轉命令 R、 SL 、 EOI→1、 0、 0
此種旋轉模式與非特定 EOI命令下旋轉是很相近,主要不同點是本指令會在一個中斷要求的最後一個 INTA 的負脈波出現後,自動地將優先權順序做旋轉改變。
181
![Page 54: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/54.jpg)
54
第 5章
可規劃中斷控制器
在自動在自動 EOIEOI模式下旋轉功能的清除模式下旋轉功能的清除 R、 SL 、 EOI→0、 0、 0
是為將先前前所設定的在自動 EOI (AEOI)模式下旋轉的功能狀態給清除掉。
181
![Page 55: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/55.jpg)
55
第 5章
可規劃中斷控制器
設定優先順序命令設定優先順序命令
R、 SL 、 EOI→1、 1、 0
此命令用來提供使用者特定某一中斷等級為最低優先權的順序。若是 SL位元為 1,則所要設定的 IR優先權之順序則由 L0~L2來決定之。又因為 R位元為 1,所以也提供有著旋轉優先權之能力,其旋轉方式則是以完全巢式的模式方式進行。
181
![Page 56: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/56.jpg)
56
第 5章
可規劃中斷控制器
特定特定 EOIEOI命令下旋轉命令下旋轉 R、 SL 、 EOI→1、 1、 1
此命令是將設定優先命令 (110) 和特定 EOI命令 (011) 兩者相合而成。在設定優先命令是為指定一個最低優先順序的等級,而特定 EOI命令則是為清除一特定的中斷要求輸入相對於 ISR內的 IRQ位元。
182
![Page 57: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/57.jpg)
57
第 5章
可規劃中斷控制器
OCW3 OCW3
操作命令字組是用來控制 IRR 及 ISR 的內部暫存器資料讀取,遮罩模式的設定及清除與輪詢 (polling) 模式的設定。
0 0X ESMM SMM 1 P RR RISA0 D7 D0D1D2D3D4D5D6
特別遮罩模式
詢問命令的設定
讀取 ISR、IRR 內容的決定
圖 5-23 O C W 3 的 定 義 格 式
183
![Page 58: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/58.jpg)
58
第 5章
可規劃中斷控制器
RIS此位元用來選擇 ISR或 IRR 是何者將要被讀取暫存器命令 (RR) 所讀取。
RR讀取暫存器命令此位元是為讀取暫存器的命令,若此位元為 1表示要讀取資料,若為 0則不讀取。
表 5-8 R IS 及 R R 組 成 之 讀 取 暫 存 器 狀 態
R R R IS 動 作 狀 態 說 明
0 X 不 動 作
1 0 於 下 一 個 R D 脈 波 時 讀 I R R
1 1 於 下 一 個 R D 脈 波 時 讀 I S R
183
![Page 59: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/59.jpg)
59
第 5章
可規劃中斷控制器
P 詢問命令 當 8259A收到此位元為 (P=1) 的訊號時,相當是輸入一 INTA 的負向脈波訊號般,會去內定下一個 8259A 的操作是為讀取中斷狀態字碼。
是否有中斷發生 要求服務的最高優先等級編號
1:有0:無
1 W2 W1 W0
圖 5-24 詢 問 字 組
![Page 60: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/60.jpg)
60
第 5章
可規劃中斷控制器
3. CPU RD1 S0
發生 命令
8259A 將 RD視為一中斷允許
4.
有 5.設定 ISR 位元
1. CPU 寫入 OCW3
2. 至 CPU沒有作用
INT
P RR RIS OCW3
6. 將詢問字組輸出
ISR有中斷要求否?
圖 5-25 詢 問 字 組 執 行 流 程
184
![Page 61: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/61.jpg)
61
第 5章
可規劃中斷控制器
SMM特殊遮罩模式 此位元用以表示 8259A 是為特殊遮罩模式,
時,表示所選用的是為特殊遮罩模式 .
ESMM 此位元是用來將 SMM 位元致能或禁能,若是 ,則 SMM 的定義才有效的被致能,反之若 時,則 SMM將被除能。
SMM 1
ESMM 1
ESMM 0
185
![Page 62: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/62.jpg)
62
第 5章
可規劃中斷控制器主程式
EI 或 STI
IRQ0-3 致能IRQ5-7 禁能
EI 或 STI
遮罩 IRQ4
設定 SMM
IRQ0-3, 5-7被致能
清除 SMM
清除 IRQ4 遮罩
IRQ0-3致能IRQ5-7 除能
EOI
RET 或 RETI
IRQ0-3 仍能致能,但 IRQ5-7 被除能
現在,IRQ0-3,IRQ5-7都被致能而 IRQ4被禁能 ( 換句話說,再清除 SMM命令發出以前,IRQ5-7也可以提出中斷了 )。
此:命令送到8259A,就開始執行特殊遮罩模式
遮罩IRQ4 ( 利用OCW1)
因為不是遮罩模式,故只有較 IRQ4 高的IRQ0 - IRQ3 可以被致能,IRQ5 - IRQ7 被禁能。
IRQ4 提出要求
IRQ4 服務常式開始
特殊遮罩模式被清除
圖 5-26 特殊遮罩模式執行流程
186
![Page 63: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/63.jpg)
63
第 5章
可規劃中斷控制器
PC ATPC AT 的命令字組規劃的命令字組規劃 在 PC AT 中有兩顆串接的 8259A 中斷控制器,其中的一顆當作主中斷控制器,另一顆為僕中斷控制器,二顆串接在一起可提供 16個中斷要求。
187
表 5-10 P C A T 上 的 8 2 5 9 A I/O 位 址
主 82 59 A 僕 82 59 A
埠 位 址 暫 存 器 埠 位 址 暫 存 器
0 0 2 0 H I C W 1 0 0 A 0 H I C W 1
0 0 2 1 H I C W 2 0 0 A 1 H I C W 2
0 0 2 1 H I C W 3 0 0 A 1 H I C W 3
0 0 2 1 H I C W 4 0 0 A 1 H I C W 4
0 0 2 1 H O C W 1 0 0 A 1 H O C W 1
0 0 2 0 H O C W 2 0 0 A 0 H O C W 2
0 0 2 0 H O C W 3 0 0 A 0 H O C W 3
![Page 64: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/64.jpg)
64
第 5章
可規劃中斷控制器
ICW1:11H:0 0 0 1 0 0 0 1
需要規劃 ICW4
串接有 8259A
位址區間為差 8
以邊緣觸發模式
固定為 1
ICW2:08H:0 0 0 0 1 0 0 0
中斷向量表由 8 開始,接至 8259A 的 IRQ1 是為中斷向量 8。
ICW3:04H:0 0 0 0 0 1 0 0
僕 8259A的 INT接腳接到主8259A的 IRQ2。
圖 5-27 P C A T B O IS 中 8 2 5 9 A 的 規 劃 程 式
188
![Page 65: Chapter 5 可規劃中斷控制器](https://reader033.fdocuments.net/reader033/viewer/2022061614/56813527550346895d9c911c/html5/thumbnails/65.jpg)
65
第 5章
可規劃中斷控制器
結 論結 論 中斷信號主要是用來控制資料的輸入與輸出,也用
來控制 CPU 指令的執行。
在系統的開機啟動時,每個 8259A 均會設定中斷要求的優先權,中斷優先權高者先被處埋。優先權最高者是為報時中斷 IRQ0,次高者為鍵盤輸入 IRQ1 。再來是為 IRQ8 依次到 IRQ15 ,號碼離 IRQ0 愈近者其優先權則愈高。
189