林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.1
本章目標
• 了解中斷要求類型與CPU對中斷要求的反應
• 了解80x86/Pentium CPU的中斷要求
• 了解多重中斷要求與優先權的處理
• 了解82C59A可規劃中斷要求控制器的原理
• 了解中斷服務程式的設計
• 了解軟體中斷、TRAP、及其應用
微算機原理與應用 第9章 中斷要求與處理
中斷要求類型
中斷要求發生的來源有三種:
• 內部中斷(internal interrupt)或稱為TRAP:由CPU內部的硬體電路 產生的中斷要求;
• 軟體中斷(software interrupt):由CPU執行一個軟體中斷指令產生 的中斷要求;
• 外部中斷(external interrupt):由CPU外部經由中斷要求輸入線產 生的中斷要求。
• 可抑制式中斷要求
• 不可抑制式中斷要求
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.3
中斷要求類型
中斷要求依其決定中斷服務程式的起始位址的方式可以分成:
• 導向性中斷要求
• 非導向性中斷要求
微算機原理與應用 第9章 中斷要求與處理
9.4
導向性中斷要求動作
80x86 IF
指令結束 中斷來源裝置
1. 產生中斷 (INTR) 3. 讀取中斷類型
資料匯流排
2. 中斷認知
( )
INTA林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.5
80x86中斷程序
記憶器
80x86
IP CS FLAGS
4N 4N+2
SS
SP 位址
00000
新的IP 新的CS
舊的IP 舊的CS 舊的FLAGS
堆疊
中斷類型=N
1 2
4 3 5
微算機原理與應用 第9章 中斷要求與處理
80x86中斷向量表
中斷向量表
}
} } } } } } } } } } }
類型0
類型3 類型1 類型2
類型4 類型5 類型6 類型7 類型8 類型9 類型10 類型11 位址
00000 00004 00008 0000C 00010 00014 00018 0001C 00020 00024 00028 0002C
除以0(80x86) 單步執行(80x86) NMI(80x86)
單位元組軟體中斷(80x86) 溢位(INTO) (80x86) BOUND(80286 ) 不成立OPCODE(80286 ) 浮點運算處理器不存在(80286 ) 雙重錯誤(80286 )
浮點運算處理器節區溢填(80386) 不成立的TSS(80286 )
節區不存在(80286 ) IP
CS
↑
↑
↑
↑
↑
↑
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.7
80x86中斷向量表
} } } } }
類型12 類型13 類型14 類型15 類型16
類型20
~ 類型31 類型32
~ 類型255 00030
00034 00038
00080 00044 0003C 00040
0007C
000FC
~
~
Intel 保留
使用者定義
堆疊節區溢填(80286 ) 一般保護(80286 ) 頁區錯誤(80386 ) 未定義
FPU錯誤(80286 )
↑
↑
↑
↑ 類型17
類型18 類型19 00050
0004C 00048
} } }
對正錯誤(80486 )↑ 機器錯誤(Pentium )↑ SIMD錯誤(Pentium )↑
微算機原理與應用 第9章 中斷要求與處理
9.8
多個I/O裝置利用單一中斷要求輸入線
INTR
CPU
CSR
IE RDY
界面 1
0 1
CSR
IE RDY
界面 2
0 1
CSR
IE RDY
界面 3
1 1
0 0 1
註 註註
註;;;CSR表控制與; 狀態暫存器(control and status register)
1
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.9
程式9.2-1程式的輪呼程序表
輪呼程序表 CSR位址
ISR位址
}
CSR位址
ISR位址
}
CSR位址
ISR位址
}
}
00 00 POOLTAB
裝置 1
裝置 2
裝置 3
END旗號
微算機原理與應用 第9章 中斷要求與處理
鍵結優先權結構
INTR CPU
INTA IEI
IEO IEI
IEO IEI
IEO
裝置 1 界面
裝置 2 界面
裝置 N 界面
INT INT INT
開路 集極閘 +5V
IEI:中斷致能輸入 IEO:中斷致能輸出
最高優先權 次高優先權 最低優先權
裝置1認
知信號 裝置1中
斷要求 裝置2認
知信號
裝置2中 斷要求
裝置N認 知信號
裝置N中 斷要求 INTA
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.11
簡單的INTR擴充方法
D7 D6 D5 D4 D3 D2 D1 D0
INTR INTA
2Y4 2Y3 2Y2 2Y1 1Y4 1Y3 1Y2 1Y1
2A4 2A3 2A2 2A1 1A4 1A3 1A2 1A1
7 6 5 4 3 2 1 0
1G 2G
A2 A1 A0
EO
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 EI
GS 74LS148 74LS244
+5 V
CPU IR0優先權最高
IR7優先權最低
微算機原理與應用 第9章 中斷要求與處理
9.12
中斷優先仲裁器
D0 D1 D2 D3 D4 D5 D6 D7
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 M0 M1 M2 M3 M4 M5 M6 M7
由CPU設定 I0
I1 I2 I3 I4 I5 I6 I7 O0 O1 O2 O3 O4 O5 O6 O7
0 1
6 7 A0 A1 A2
優先權編碼器 門閂
INTR
INTA
OE
STROBE EO
罩網暫存器 中斷要求門閂
(接往CPU)
M
M
M
M
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.13
82C59A內部功能方塊圖
資料匯流排緩衝器
讀/寫 電路
控制電路
中斷罩網暫存器(IMR) 串接緩衝
器/比較器
中斷服務暫存器(ISR) 優先權調解器 中斷要求暫存器(IRR) 18 19 20 21 22 23 24 25
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 Vcc
GND 28
14 INT 17 26
INTA
11 10 9 8 7 6 5 4 D0 D1 D2 D3 D4 D5 D6 D7
3 2 27 1 12 13 15
16 A0
CAS0 CAS1 CAS2 RD WR
CS
SP / EN
微算機原理與應用 第9章 中斷要求與處理
8086中斷要求認知時序圖
T1 T2 T3 T4 T1 T2 T3 T4
第一個中斷要求認知匯流排週期 第二個中斷要求認知匯流排週期
CLK
ALE
LOCK
INTA AD7~AD0
中斷類型
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.15
82C59A與8086 CPU模組的界接
中斷要求輸入
串接輸出
I/O位址解碼 +5V INTA
D0~D7
A0
INTR WAIT1
A0 A1 A15 M/IO RD WR
接往CPU模組
8259A 11 D0
10 D1 9 D2 8 D3 7 D4 6 D5 5 D6 4 D7 27 A0
1 CS 3 RD 2 WR
SP/EN 16 17 INT 26 INTA
IR0 18 IR1 19 IR2 20 IR3 21 IR4 22 IR5 23 IR6 24 IR7 25
CAS0 12 CAS1 13 CAS2 15
微算機原理與應用 第9章 中斷要求與處理
9.16
82C59A讀取與寫入時序圖
(c) 參數值(82C59A-2) 參數
最大值 數值(ns)
tAHWL
tWHAX tDVWH tWHDX tWLWH tAHRL tRLRH tRHAX tRLDV tRHDZ tAHDV
最小值 0
200
160 0
190 10 160
0
5
120
10 85
(b) 讀取時序(與 )INTA A0
CS tAHRL tRHAX
RD INTA
D0~D7
tRLRH
tRHDZ tRLDV
tAHDV
成立的資料 A0
CS
WR
tAHWL tWHAX
tWHDX tDVWH
tWLWH D0~D7
(a) 寫入時序
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.17
82C59A的初值設定程序
82C59A 初值設定程序 Begin
1. 首先使用 A0 = 0 的位址設定 ICW1 2. 使用 A0 = 1 的位址設定 ICW2
3. 若 ICW1 中的 D1(即 SNGL)為 1 則直接進行步驟 4 ;否則設定 ICW3 4. 若 ICW1 中的 D0(即 IC4)為 0 則進行步驟 5 ;否則設定 ICW4 5. 設定完成。此時 82C59A 已經可以接受中斷要求了。
End {82C59A 的初值設定程序}
微算機原理與應用 第9章 中斷要求與處理
ICW1格式(A0 = 0)
D7 D6 D5 D4 D3 D2 D1 D0
A7 A6 A5 1 LTIM ADI SNGL IC4
觸發方式 位址區間 單一模式 ICW4
中斷位址向量的 A7 ~ A5 (MCS80/85A)
1 = 位準 0 = 緣觸發
1 = 4 0 = 8
1 = 單一 0 = 串接
1=需要 ICW4 0=不需要
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.19
ICW2格式(A0 = 1)
D7 D6 D5 D4 D3 D2 D1 D0
A15/T7 A14/T6 A13/T5 A12/T4 A11/T3 A10 A9 A8 中斷位址向量的 A15 ~ A8 (MCS80/85A)
中斷位址向量的 T7 ~ T3 (80x86)
為 IRn 中的 n 值
微算機原理與應用 第9章 中斷要求與處理
9.20
ICW3格式(A0 = 1)
ICW3(主元件)
D7 D6 D5 D4 D3 D2 D1 D0
S7 S6 S5 S4 S3 S2 S1 S0
Si = 1 表示 IRi 輸入端有從屬元件; Si = 0 表示 IRi 輸入端沒有從屬元件。
ICW3(從屬元件)
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 ID2 ID1 ID0
元件識別碼
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.21
ICW4格式(A0 = 1)
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 SFNM BUF M/S AEOI µPM
1 = 特殊巢路串 接
00 = 非緩衝型 10 = 緩衝型/從屬元件 11 = 緩衝型/主元件
1 = 自動 EOI 0 = 正常 EOI
1 = 80x86 0 = MCS 80/85
微算機原理與應用 第9章 中斷要求與處理
82C59A的規劃
MOV AL,13H ;set ICW1
OUT 20H,AL ;single 8259, need ICW4 MOV AL,08H ;set ICW2
OUT 21H,AL ;vector 08H 0FH MOV AL,0DH ;set ICW4
OUT 21H,AL ;normal EOI, buffered master.
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.23
OCW1格式與定義(A0 = 1)
D7 D6 D5 D4 D3 D2 D1 D0
M7 M6 M5 M4 M3 M2 M1 M0
Mn = 1 表示 IRn 對應的罩網為 1 ; Mn = 0 表示 IRn 對應的罩網為 0 。
微算機原理與應用 第9章 中斷要求與處理
9.24
OCW2格式與定義(A0=0)
D7 D6 D5 D4 D3 D2 D1 D0
R SL EOI 0 0 L2 L1 L0
見文中說明 L2 ~ L0 的值表 IR 動作的層次
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.25
Rn優先權順序變化圖
IR0 IR1 IR2 IR3
IR7 IR6 IR5 IR4
最高
最低
次高
微算機原理與應用 第9章 中斷要求與處理
OCW3格式與定義(A0 = 0)
D7 D6 D5 D4 D3 D2 D1 D0
0 ESMM SMM 0 1 P RR RIS
特殊罩網型態 輪呼 讀取暫存器命令
0φ = 沒有動作 10 = 清除特殊罩網 11 = 設定特殊罩網
1 = 有 0 = 無
0φ = 沒有動作 10 = 讀取 IRR 11 = 讀取 ISR
D7 D6 D5 D4 D3 D2 D1 D0
I - - - - W2 W1 W0
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.27
多個82C59A串接使用
0 0 1
8259A(主元件) 8259A(從屬元件B)
8259A(從屬元件A)
中斷要求輸入 A0
INTA
D7~D0 CS1 CS2 CS0 INTR WR RD
D011 D110 D29 D38 D47 D56 D65 D74 A027 CS1 RD3 WR2 SP/EN16 INT17
INTA26 IR018IR119
IR220 IR321IR422IR523 IR624IR725 CAS012 CAS113
CAS215 D011
D110 D29 D38 D47 D56 D65 D74 A027 CS1 RD3 WR2 SP/EN16 INT17
INTA26 IR018IR119
IR220IR321IR422 IR523 IR624IR725 CAS012 CAS113
CAS215 D011
D110 D29 D38 D47 D56 D65 D74 A027 CS1 RD3 WR2 SP/EN16 INT17
INTA26 IR018IR119
IR220IR321IR422 IR523IR624IR725 CAS012 CAS113 CAS215
微算機原理與應用 第9章 中斷要求與處理
9.28
PC中斷系統
CPU NMI
INTR
I/O通道檢查 RAM同位檢查
罩網位元(埠位址70H,位元7)
主8259A
從屬8259A INT
INT 0
1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 IR0
IR1 IR2 IR3 IR4 IR5 IR6 IR7
IR8 IR9 IR10 IR11 IR12 IR13 IR14 IR15 82C54通道0
鍵盤
串列埠 2 串列埠 1 並列埠 2
FDC 並列埠 1 ( 列表機)
即時時脈 軟體重新設定為 IRQ2(INT 0AH)
(保留予I/O插槽)
(保留) FPU HDC
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.29
鍵盤界面電路
鍵盤控制電路 (8042) 8255
A埠(60H)
掃描碼 IRQ1
PC 系統
1 0 B埠(61H) 位元6
位元7
微算機原理與應用 第9章 中斷要求與處理
巢路中斷要求結構
8254 定時器
INT 08H
IRET INT 82H INT 08H ISR
IRET INT 82H ISR
(STI) (STI)
林銘波編著 --- 全華科技圖書公司
第9章 中斷要求與處理
9.31
80x86中斷指令
指令 動作 OF SF ZF AF PF CF
WAIT 令 CPU 檢查數值處理器的例外狀態 - - - - - -
INT imm8 (≠3) (在實址模式)
儲存 FLAGS 於堆疊中並且清除 IF 與 TF;
儲存 CS 於堆疊中;儲存 IP 於堆疊內;
IP ← Mem(imm8×4);
CS ← Mem(imm8×4+2)
- - - - - -
INT 3 與 INT imm8( = 3)的指令相同 - - - - - - INTO (即 INT 4)若 OF = 1 則執行下列動作:
儲存 FLAGS 於堆疊中並且清除 IF 與 TF;
儲存 CS 於堆疊中;儲存 IP 於堆疊內;
IP ← Mem(10H);
CS ← Mem(12H)
- - - - - -
IRET/IRETD (在實址模式)
1. 若為 32 位元模式(IRETD 指令) 自堆疊取回 EIP (80386↑) 否則為 16 位元模式(IRET 指令) 自堆疊取回 IP ; (80x86↑) 2. 自堆疊取回 CS ;
3. 若為 32 位元模式(IRETD 指令) 自堆疊取回 EFLAGS ; (80386↑) 否則為 16 位元模式(IRET 指令) 自堆疊取回 FLAGS ; (80x86↑)
自堆疊取回先前存入的旗號位 元狀態。
微算機原理與應用 第9章 中斷要求與處理
9.32
80286 BOUND指令
指令 動作 OF SF ZF AF PF CF
BOUND r16,m16&16 (80286↑)
若 r16 的值不在(m16) ~ (m16)範圍內則 產生 INT 5 ;
否則繼續執行下一個指令。
- - - -
BOUND r32,m32&32 (80386↑)
若 r32 的值不在(m32) ~ (m32)範圍內則 產生 INT 5 ;
否則繼續執行下一個指令。
- - - -