• Mạch điều khiển ngắt ưu tiên 8259A• Ngắt trong máy tính IBM PC... ;Thiết lập vector ngắt 40H mớiMOV DX, offset New40... Latch DMA Page Regrs.. D Hi CLR Q Floppy Controller i8237A Addre
Trang 2• Mạch điều khiển ngắt ưu tiên 8259A
• Ngắt trong máy tính IBM PC
Trang 3và INTR (ng t che đ c)ắ ượ
Ng t m m: CPU th c hi n các l nh ng t INT N, 0=< N ắ ề ự ệ ệ ắ
<=255
Trang 4Gi i thi u v ng t ớ ệ ề ắ
Gi i thi u v ng t ớ ệ ề ắ
Trang 5© DHBK 2005
Gi i thi u v ng t ớ ệ ề ắ
Gi i thi u v ng t ớ ệ ề ắ
Trang 6Đáp ng c a CPU khi có yêu c u ng t ứ ủ ầ ắ
Đáp ng c a CPU khi có yêu c u ng t ứ ủ ầ ắ
• Bảng vector ngắt: 1 Kbytes 00000H đến 003FF H
256 vector ng t ắ
1 vector 4 bytes, ch a IP và CS c a CTCPVN ứ ủ
32 vector đ u dành riêng cho Intel ầ
224 vector sau dành cho ng i dùng ườ
Trang 7l nh l y các ệ ấthanh ghiIRET
Trang 8 Vào: AH=35h, AL= s hi u ng t ố ệ ắ
Ra: ES:BX = đ a ch đo n : đ a ch offset c a CTCPVN ị ỉ ạ ị ỉ ủ
C t ES và BX vào thanh ghi ho c ô nhấ ặ ớ
Đ a vector c a th t c ng t c a ng i s d ng vào b ng ư ủ ủ ụ ắ ủ ườ ử ụ ả
Trang 9;Thiết lập vector ngắt 40H mới
MOV DX, offset New40
Trang 10 Ng t không che đ c: NMI ắ ượ
Ng t che đ c INTR ắ ượ
Ng t m m INT N ắ ề
• CPU sẽ xử lý thế nào nếu CPU đang thực hiện phép chia và số chia bằng 0
đồng thời có yêu cầu ngắt từ chân INTR?
Trang 11© DHBK 2005
M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 12M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 13© DHBK 2005
M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 14M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 15© DHBK 2005
M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 16M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 17© DHBK 2005
M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 18M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 19© DHBK 2005
M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 20M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 21© DHBK 2005
M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 22M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 23© DHBK 2005
M ch đi u khi n ng t 8259A ạ ề ể ắ
M ch đi u khi n ng t 8259A ạ ề ể ắ
Trang 24Các ng t trong máy tính IBM/PC ắ Các ng t trong máy tính IBM/PC ắ
D0 D1 D2 D3 D4 D5 D6 D7
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
INT
INTA
8259A
D0 D1 D2 D3 D4 D5 D6 D7
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15
Trang 25© DHBK 2005
Các ng t trong máy tính IBM/PC ắ Các ng t trong máy tính IBM/PC ắ
Priority Use of PC/AT Interrupt
IRQ10IRQ11IRQ12
IRQ15
Trang 26MSDOS SWI (30 -3F reserved)
20h 1Fh
ROM BIOS SWI 10h
0Fh IRQ 7 LPT1 0Eh IRQ6 Floppy Disk 0Dh IRQ5 LPT2 0Ch IRQ4 COM1 Port 0Bh IRQ3 COM2 Port
00028 0Ah IRQ2 Cascade from Slave 8259
07h 80x87 not present 06h Invalid opcode 05h Print screen (BIOS) 04h Overflow
03h Break point instruction 02h NMI
01h Single step
Trang 2727/Chapter5
Trang 28• Giới thiệu về DMA
• Mạch DMAC 8237A của Intel
Trang 29© DHBK 2005
Gi i thi u v DMA ớ ệ ề
Gi i thi u v DMA ớ ệ ề
Trang 30M ch DMAC 8237A c a Intel ạ ủ
M ch DMAC 8237A c a Intel ạ ủ
Trang 31© DHBK 2005
M ch DMAC 8237A c a Intel ạ ủ
M ch DMAC 8237A c a Intel ạ ủ
• Although i8237A may not appear as a discrete component in recent PCs, it’s
still there… (integrated in chipsets, ISPC)
• The i8237A has four independent DMA channels
• Original PC/XT design had one i8237A for four DMA channels
• PC/AT used two i8237As to provide 7 DMA channels
• i8237A is programmable device and can be configured for single transfers,
block transfers, Reads, Writes or Memory-to-Memory transfers
Trang 32M ch DMAC 8237A c a Intel ạ ủ
M ch DMAC 8237A c a Intel ạ ủ
• i8237A allows byte addressing for 8-bit data transfers
• In the PC/AT design, a contrived 16-bit transfer design is implemented using
Trang 33© DHBK 2005
M ch DMAC 8237A c a Intel ạ ủ
M ch DMAC 8237A c a Intel ạ ủ
Trang 34M ch DMAC 8237A c a Intel ạ ủ
M ch DMAC 8237A c a Intel ạ ủ
Trang 35© DHBK 2005
M ch DMAC 8237A c a Intel ạ ủ
M ch DMAC 8237A c a Intel ạ ủ
Trang 36How the PC uses the i8237A
DREQ0 DACK0 DREQ1 DACK1 DREQ2 DACK2 DREQ3 DACK3
DB0 DB7
A0 A7
i8237 DMA
four DMA channels
HRQ
HLDA
IOR IOW MEMR MEMW
ADSTB
EOP
DMA Addr.
Latch
DMA Page Regrs.
A16 A23
[A16 A19 for PC/XT]
I/O Mapped
to MPU, read and write
A8 A15
A0 A7
8253 (8254) Timer/
Counter
OUT1
15 usecs.
D Hi
CLR Q
Floppy Controller
i8237A Address Latch and
Page Registers
Trang 37© DHBK 2005
DMA Address Tracking
• The i8237A has four registers for tracking memory addresses during a DMA block
BASE ADDRESS REGISTER
BASE WORD COUNT REGISTER
CURRENT ADDRESS REGISTER
CURRENT WORD COUNT REGISTER
Trang 38DMA in the
PC/XT
Trang 39© DHBK 2005
Cascaded i8237As in the PC/AT
MPU
i8237A Master
i8237A Slave
DREQ0 DACK0
DREQ1 DACK1 DREQ2 DACK2
DREQ3 DACK3
DREQ5 DACK5
DREQ6 DACK6
DREQ7 DACK7
DREQ4 DACK4 HRQ
HOLDA
Cascaded i8237A DMA Controllers
DMA Cascadation
Trang 40PC/AT DMA Channel priorities
• DMA channel 0 (DREQ0) has the highest priority
• DMA channel 7 (DREQ7) has the lowest
• Note, when a DMA transfer is in session, it cannot be 'interrupted' by
another DMA request, even if the DMA request is made by a higher
priority DMA channel.
• The current DMA transfer session will be completed before the
pending DMA request is accepted
Trang 41© DHBK 2005
DMA Channels in the PC/AT