chapter 5 可規劃中斷控制器

65
1 第5第 第第第第第第第第 Chapter 5 Chapter 5 第第第第第第第第 149

Upload: linda-cochran

Post on 03-Jan-2016

49 views

Category:

Documents


5 download

DESCRIPTION

149. Chapter 5 可規劃中斷控制器. 148. 為了不影響到微處理機處理能力,且又能夠充分的與這些週邊裝置做有效的溝通,一般在微處理機與 I/O 週邊之間所採取的處理方式有兩種分別是為:詢問 (polling) 方式及中斷 (interrupt) 式。. 149. 詢問式 (Polling). 微處理機必須有次序的去測試每一個裝置 (devicer) 且有效的詢問每一裝置是否需要服務。 CPU 於每隔一段時間必須去查詢週邊,嚴重影響系統中 CPU 的執行效率,而使得 CPU 的大部時間都花費在週邊裝置詢問上。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter    5 可規劃中斷控制器

1

第 5章

可規劃中斷控制器

Chapter 5Chapter 5

可規劃中斷控制器

149

Page 2: Chapter    5 可規劃中斷控制器

2

第 5章

可規劃中斷控制器

為了不影響到微處理機處理能力,且又能夠充分的與這些週邊裝置做有效的溝通,一般在微處理機與 I/O 週邊之間所採取的處理方式有兩種分別是為:詢問 (polling) 方式及中斷 (interrupt) 式。

148

Page 3: Chapter    5 可規劃中斷控制器

3

第 5章

可規劃中斷控制器

詢問式 詢問式 (Polling)(Polling)

微處理機必須有次序的去測試每一個裝置 (devicer) 且有效的詢問每一裝置是否需要服務。 CPU 於每隔一段時間必須去查詢週邊,嚴重影響系統中 CPU 的執行效率,而使得 CPU 的大部時間都花費在週邊裝置詢問上。

 詢問方式是為由 CPU 採取主動方式 .

149

Page 4: Chapter    5 可規劃中斷控制器

4

第 5章

可規劃中斷控制器

INT

PCU

RAM

ROM

I / O (1)

I / O (2)

CPU 所驅動的多工器

I / O (N)

圖 5-1 詢 問 方 式 結 構 圖

150

Page 5: Chapter    5 可規劃中斷控制器

5

第 5章

可規劃中斷控制器

需再等待下一週期的詢問方可被服務。由上述中可發現到詢問式存在有下列的許多問題:1. 詢問的週期應多久一次最恰當,另外,隨著週邊裝置

的增加,詢問週期也會增加,形成系統執行效率的降低。

2. 每一個週邊裝置並非一定要經常且週期性的被詢問,因此對每個週邊裝置則各別具有不同的被服務時間表,會增加軟體的負荷。

3. 被詢問到的週邊裝置若不需要服務時,形同浪費相當可 惜;但急切被服務的裝置卻需等到被處理器詢問到時方 可產生動作,造成無法達到最大使用效率之目的。

150

Page 6: Chapter    5 可規劃中斷控制器

6

第 5章

可規劃中斷控制器

中斷式 中斷式 (Interrupt)(Interrupt)

此方式是採取週邊需求主動要求方式,微處理機是處於被動地位,因此 CPU 不必隨時去查詢各週邊裝置是否需要服務,是為多數系統所採用的一種服務方式。

每一個裝置均可在任何的時間中提出被服務的要求,當處理器執行完正在執行的指令之後,便會依一定的程式跳到所需的服務程式中 .

151

Page 7: Chapter    5 可規劃中斷控制器

7

第 5章

可規劃中斷控制器

INT

CPU

RAM

RAM

I / O (1)

I / O (2)

中斷控制器

I / O (N)

圖 5-2 中 斷 服 務 法

151

Page 8: Chapter    5 可規劃中斷控制器

8

第 5章

可規劃中斷控制器

中斷與中斷處理中斷與中斷處理 在 IBM PC/AT 的系統中,產生中斷的方式有三種 :

1. 硬體中斷 CPU 中有二個硬體中斷輸入埠分別為可遮罩 的中斷輸入 (INTR) 及非遮罩的中斷輸入 (NMI) 。

2. 軟體中斷,此種中斷方式的產生是由於 CPU執行到 INT XX 時所產生的中斷,可由 BIOS 的中斷向量表中查得 .

執行中的某些指令所造成,如於數值計算中的除零,當 CPU執行到此指令時,會因除數為零而自動產生中斷 .

152

Page 9: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

10

第 5章

可規劃中斷控制器

中斷的處理過程中斷的處理過程 中斷控制信號依其動作 (active) 的方式可有準位觸發動作及邊緣觸發 (edge-trigger) 動作。一般而言 INTR是為高準位動作,而 NMI 則是為正邊緣動作。

153

中斷需求 主程式繼續

斷 進 入

中 斷 返 回

中斷開始中斷程式執行

中斷結果

中斷允許

圖 5-3 中 斷 執 行 步 驟

Page 11: Chapter    5 可規劃中斷控制器

11

第 5章

可規劃中斷控制器

8259A8259A 可程式規劃中斷控制器可程式規劃中斷控制器 PC/AT 中所使用的中斷控制器是為 8259A 可程式化中斷控制器 CPU 提供八個向量優先中斷,並可在不同額外增加電路的情況下串接擴充到 64個中斷向量。

154

Page 12: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

13

第 5章

可規劃中斷控制器

8259A8259A 的工作原理的工作原理 8259A 的功能方塊圖分有八部分,其中較重要的部分為:

中斷要求暫存器 (interrupt request register, IRR) ;

中斷遮罩暫存器 (interrupt mask register, IMR) ;

正在服務暫存器 (in service request, IRS) ;

優先權調解器 (priority resolver, PR) 。

154

Page 14: Chapter    5 可規劃中斷控制器

14

第 5章

可規劃中斷控制器

IRR 是用來儲存所有的中斷要求輸入, ISR儲存所有正在服務中的中斷要求, IMR 則是用來決定那一中斷輸入被遮罩與否?而 PR則是為縱觀上述三個暫存器以決定必須送出那一條中斷要求線的訊號,再透過控制邏輯單元發出中斷信號 (INT) 給處理器。

154

Page 15: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

18

第 5章

可規劃中斷控制器

ISR (ISR ( 正在服務暫存器正在服務暫存器 )) 8 個位元的暫存器,其主要的功能是儲存目前正在

由系統所服務的最高優先權的中斷向量 ( 即 IRQ0~IRQ7) 那一個中斷正在被執行。 圖 5-7是為 ISR 與 IRR 及 IMR 三者之間的動作流程與相互關係。當有中斷要求提出時,則所相對於 IRR 中的位元被設定之,經由 IMR 的比對沒有被遮罩再由 PR作優先權選擇之後,經由控制邏輯發出 INT ,由 CPU認可之後, 8259A 會於 線上收到兩個負脈衝信號。

157

INTA

Page 19: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

21

第 5章

可規劃中斷控制器

PR (PR ( 優先權分解器優先權分解器 )) 優先權分解器並非為一暫存器,而是為一邏輯電路,

其功能是用以決定那一中斷輸入有最高的優先中斷權 .

圖 5-8 為 PR 的動作流程圖,當有中斷要求進來時,先經由 IMR 的比對確定沒有被禁能時,此時中斷要求 ( 一或是數個 ) 再由 PR來決定執行服務的優先權。

158

Page 22: Chapter    5 可規劃中斷控制器

22

第 5章

可規劃中斷控制器

CPU由邏輯控制單元發出 INT

外界中斷要求輸入

YES

INT

未被遮罩位元仍送到 PR

NO

IRQ7 IRQ0

IRR

IMR

PR

IMR有遮罩?

被遮罩的要求禁止輸入

圖 5-8 P R 動 作 流 程 圖

158

Page 23: Chapter    5 可規劃中斷控制器

23

第 5章

可規劃中斷控制器

資料匯流排緩衝器資料匯流排緩衝器 8259A 系統方塊圖中,三個暫存器及 PR之外,尚有三個部分加以分工合作以完成中斷控制器的動作 .

(一 ) 資料匯流排緩衝器

( 二 ) 讀 / 寫控制邏輯電路

( 三 ) 串聯緩衝器 / 比較器

159

Page 24: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

28

第 5章

可規劃中斷控制器

CAS0CAS0、、 CAS1CAS1、、 CAS2 (cascade line)CAS2 (cascade line)

三條線均可當作輸入或是輸出使用,是受制於 8259A 為何種工作型式而決定之。

被規劃為主中斷控制器時間, SP/EN接高態“ H”,則此三條線就為輸入之用。各個串接的 8259A 之 CAS0~CAS2 是並列的接在一起,即構成為一 8259A 的私用匯流排,可用本指示在產生中斷時究竟是應由僕 8259A 的那一中斷裝置來產生中斷指標送到資料匯流排上。

162

Page 29: Chapter    5 可規劃中斷控制器

29

第 5章

可規劃中斷控制器

串接中斷結構串接中斷結構

8259A 可以擴充到最多 64個等級的中斷輸入要求,並且不需要額外的硬體電路 .

當 SP/EN 為“ H”時則表示 8259A 為主 (master) 中斷控制器;若是 SP/EN接“ L”時則是被當作僕 (slaver) 中斷控制器。

只有主 8259A才可以對 CPU 發出中斷要求,其餘則是被當作僕 8259A 的中斷要求輸入 .

163

Page 30: Chapter    5 可規劃中斷控制器

30

第 5章

可規劃中斷控制器

中斷指標的產生中斷指標的產生 中斷的過程

1.一個或多個 I/O 裝置提出中斷要求,在 8259A 的內部暫存器 IRR 的相對位元被設定為 1。

2.8259A 的 PR 對中斷要求優先權作分解後,送出 INT給處理機。

3.處理機收到 INT 之後,若允許中斷的要求,則會回送兩個INTA脈波給 8259A 。

164

Page 31: Chapter    5 可規劃中斷控制器

31

第 5章

可規劃中斷控制器

4.當 8259A收到第一個 INTA 信號時,其最高優先的 ISR 位元被設定為 1,所對應的 IRR 位元被清除掉。

5.接著 8259A收到的第二個 INTA 時, 8259A就送出一八位元預先規劃好的中斷指標於資料匯流排上。

6.CPU收到此中斷向量指標之後再予以轉換成記憶體位址而得到中斷副程式的實際位址。

165

Page 32: Chapter    5 可規劃中斷控制器

32

第 5章

可規劃中斷控制器

中斷指標中斷指標

此向量指標相當於間接位址指示,在記憶體的位址由 00000H 至 003FFH,是分別存放這 256個中斷指標的位址,每四個位元組代表一中斷指標,前兩個位元組為指令指標 (instruction point, IP) ,後兩個位元組為程式段落暫存器 (code segment, CS)

Page 33: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

35

第 5章

可規劃中斷控制器

(b) 所送出的中斷指標為 50H是十六進位,若直接轉換成記憶體位址可由指標值乘四個位元組所組成

50×4= 140H

IP 值存放在 140H 、 141H處

CS 值存放在 142H 、 143H處

Page 36: Chapter    5 可規劃中斷控制器

36

第 5章

可規劃中斷控制器

8259A8259A 的規劃的規劃 必須對 8259A 的兩個命令字組作規劃,分別是為: 1.初始命令字組 (ICW) :,一旦 ICW被規劃到 8259A以後,

8259A才可以接受外部的中斷要求。2.操作命令字組 (OCW) :這些命令字組可以控制 8259A操

作於不同的中斷模式:(1) 完全巢狀模式(2) 可旋轉的優先模式 (3) 特殊遮罩模式 (4) 輪詢模式

167

Page 37: Chapter    5 可規劃中斷控制器

37

第 5章

可規劃中斷控制器

初始命令字組 初始命令字組 (ICW)(ICW) ICW 總共有四個, ICW1和 ICW2 是為一定要規劃定義的初始命令字組,而 ICW3和 ICW4則是視 ICW1 的內容而決定之。整個程序若要加以修改時,必須由 ICW1開始,不能僅是對 ICW2、 ICW3或 ICW4中的任何一個單獨為之。

167

Page 38: Chapter    5 可規劃中斷控制器

38

第 5章

可規劃中斷控制器

ICW2

ICW3

有否串接?

ICW1

ICW4需要?

ICW4

準備接受中斷輸入

是 (sign 0)

否 (sign 1)

ICW1 D1由 之位元判斷

此兩控制字組不可省略

ICW1 D0由 之位元判斷

圖 5-12 初 始 命 令 字 組 流 程

168

Page 39: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

41

第 5章

可規劃中斷控制器

ICW3 ICW3

ICW3 是用來規劃 8259串接有僕中斷控制器時,也就是當 ICW1 的位元 1 (D1) 是為 0時,則表示有串接 8259A ,才需對 ICW3 作規劃。

 當有串接時,應分別對主 8259A 及僕 (slaver) 8259A之 ICW3 作規劃 .

172

Page 42: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

44

第 5章

可規劃中斷控制器

操作命令字組 操作命令字組 (OCW)(OCW)

一旦初始命令字組 (ICW) 被規劃之後, 8259A 的IRQ0~IRQ7 就準備接受外部的中斷。

ICW及 OCW的互動關係流程說明。 ICW是為使 8259A 處於固定的操作模式所必備之條件;而 OCW的規劃則是為更加有效影響 8259A 的操作模式 .

175

Page 45: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

47

第 5章

可規劃中斷控制器

OCW2OCW2

OCW2 則是用來設定中斷要求輸入腳的 EOI 形式,以及中斷優先權是否旋轉及旋轉方式選擇。

176

IRQ所要設定的

腳EOI及旋轉方式定義

A0 D7 D0D1D2D3D4D5D60 EOISLR 00 L0L1L2

圖 5-19 O C W 2 的 定 義 格 式

Page 48: Chapter    5 可規劃中斷控制器

48

第 5章

可規劃中斷控制器

旋轉優先權旋轉優先權

D7 (R) 此位元是用來控制所有 8259A 的旋轉優先權操作方式,若此位元為 1,則其優先權的順序是採旋轉的形式來執行,則是由 EOI 與 SL 來決定。若此位元為 0則旋轉動作就不會被執行。

Page 49: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

50

第 5章

可規劃中斷控制器

1.1. 非特定的中斷結束命令非特定的中斷結束命令

(R、 SL 、 EOI→0、 0、 1)

於字組的位元中,此命令是用來通知 8259A ,當一個中斷服務程式執行完畢之後,不需要特別指定那一個中斷等級,8259A就會在內部自動的決定要清除所對應的那一個 ISR位元。

Page 51: Chapter    5 可規劃中斷控制器

51

第 5章

可規劃中斷控制器

2.2. 特定特定 EOIEOI命令命令 R、 SL 、 EOI→0、 1、 1

特定的 EOI命令並非像非特定的 EOI命令,會自動的清除ISR內的最高優先權之位元,而是當 CPU送出 EOI命令時,必須指定所要清除的是 ISR內的那一個位元該被清除,而此被清除的中斷要求可能並非是為最高優先權的中斷。

179

Page 52: Chapter    5 可規劃中斷控制器

52

第 5章

可規劃中斷控制器

在非特定在非特定 EOIEOI命令下旋轉命令下旋轉 R、 SL 、 EOI→1、 0、 1

由格式中之定義可知, 故知是為非特定的 EOI命令;而表示優先權是會旋轉。

180

SL 0 EOI 1 、

Page 53: Chapter    5 可規劃中斷控制器

53

第 5章

可規劃中斷控制器

在特定在特定 EOIEOI模式下的旋轉命令模式下的旋轉命令 R、 SL 、 EOI→1、 0、 0

此種旋轉模式與非特定 EOI命令下旋轉是很相近,主要不同點是本指令會在一個中斷要求的最後一個 INTA 的負脈波出現後,自動地將優先權順序做旋轉改變。

181

Page 54: Chapter    5 可規劃中斷控制器

54

第 5章

可規劃中斷控制器

在自動在自動 EOIEOI模式下旋轉功能的清除模式下旋轉功能的清除 R、 SL 、 EOI→0、 0、 0

是為將先前前所設定的在自動 EOI (AEOI)模式下旋轉的功能狀態給清除掉。

181

Page 55: Chapter    5 可規劃中斷控制器

55

第 5章

可規劃中斷控制器

設定優先順序命令設定優先順序命令

R、 SL 、 EOI→1、 1、 0

此命令用來提供使用者特定某一中斷等級為最低優先權的順序。若是 SL位元為 1,則所要設定的 IR優先權之順序則由 L0~L2來決定之。又因為 R位元為 1,所以也提供有著旋轉優先權之能力,其旋轉方式則是以完全巢式的模式方式進行。

181

Page 56: Chapter    5 可規劃中斷控制器

56

第 5章

可規劃中斷控制器

特定特定 EOIEOI命令下旋轉命令下旋轉 R、 SL 、 EOI→1、 1、 1

此命令是將設定優先命令 (110) 和特定 EOI命令 (011) 兩者相合而成。在設定優先命令是為指定一個最低優先順序的等級,而特定 EOI命令則是為清除一特定的中斷要求輸入相對於 ISR內的 IRQ位元。

182

Page 57: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

59

第 5章

可規劃中斷控制器

P 詢問命令 當 8259A收到此位元為 (P=1) 的訊號時,相當是輸入一 INTA 的負向脈波訊號般,會去內定下一個 8259A 的操作是為讀取中斷狀態字碼。

是否有中斷發生 要求服務的最高優先等級編號

1:有0:無

1 W2 W1 W0

圖 5-24 詢 問 字 組

Page 60: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

61

第 5章

可規劃中斷控制器

SMM特殊遮罩模式 此位元用以表示 8259A 是為特殊遮罩模式,

時,表示所選用的是為特殊遮罩模式 .

ESMM 此位元是用來將 SMM 位元致能或禁能,若是 ,則 SMM 的定義才有效的被致能,反之若 時,則 SMM將被除能。

SMM 1

ESMM 1

ESMM 0

185

Page 62: Chapter    5 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

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 可規劃中斷控制器

65

第 5章

可規劃中斷控制器

結 論結 論 中斷信號主要是用來控制資料的輸入與輸出,也用

來控制 CPU 指令的執行。

在系統的開機啟動時,每個 8259A 均會設定中斷要求的優先權,中斷優先權高者先被處埋。優先權最高者是為報時中斷 IRQ0,次高者為鍵盤輸入 IRQ1 。再來是為 IRQ8 依次到 IRQ15 ,號碼離 IRQ0 愈近者其優先權則愈高。

189