Bài giảng Kỹ thuật vi xử lý - Chương 5: Ngắt và xử lý ngắt

Giới thiệu về ngắt

Đáp ứng của CPU khi có yêu cầu ngắt

Các thủ tục ngắt của người sử dụng

Xử lý ưu tiên ngắt

Mạch điều khiển ngắt ưu tiên 8259A

Ngắt trong máy tính IBM PC

 

ppt41 trang | Chuyên mục: Kiến Trúc Máy Tính | Chia sẻ: dkS00TYs | Lượt xem: 3737 | Lượt tải: 3download
Tóm tắt nội dung Bài giảng Kỹ thuật vi xử lý - Chương 5: Ngắt và xử lý ngắt, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Nội dung môn học Giới thiệu chung về hệ vi xử lý Bộ vi xử lý Intel 8088/8086 Lập trình hợp ngữ cho 8086 Tổ chức vào ra dữ liệu Ngắt và xử lý ngắt Truy cập bộ nhớ trực tiếp DMA Các bộ vi xử lý trên thực tế Chương 5: Ngắt và xử lý ngắt Giới thiệu về ngắt Đáp ứng của CPU khi có yêu cầu ngắt Các thủ tục ngắt của người sử dụng Xử lý ưu tiên ngắt Mạch điều khiển ngắt ưu tiên 8259A Ngắt trong máy tính IBM PC Giới thiệu về ngắt 2 loai ngắt: Ngắt cứng: tín hiệu yêu cầu ngắt từ NMI (ngắt không che được) Lỗi chẵn lẻ và các lỗi hệ thống nghiêm trọng khác (ví dụ: mất nguồn) và 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 Giới thiệu về ngắt Giới thiệu về 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 Đáp ứng của CPU khi có yêu cầu ngắt Chương trình chính CPU: Cất thanh ghi cờ F Xoá IF và TF Cất CS và IP lấy địa chỉ CTCPVN CPU: Lấy lại IP và CS Lấy lại thanh ghi cờ F CTCPVN lệnh cất các thanh ghi lệnh lấy các thanh ghi IRET Các thủ tục ngắt của người sử dụng Thiết lập vector ngắt: Cất vector ngắt hiện tại: Dùng hàm 35H của ngắt 21H của DOS 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 vector ngắt: Dùng hàm 25H của ngắt 21H Vào: AH=25H, AL= số hiệu ngắt, DS:DX= địa chỉ đoạn: địa chỉ offset cảu CTCPVN của người sử dụng Khôi phục lại vector cũ trước khi kết thúc CTCPVN của người sử dụng Các thủ tục ngắt của người sử dụng .Model Small .Stack 100 .Data OLD_IP	DW	? OLD_CS	DW	? .Code Main Proc ;Lấy vector cũ của ngắt 40H 	MOV 	AH, 35H 	MOV	AL, 40H 	INT	21H MOV	OLD_IP, BX 	MOV	OLD_CS, ES ;Thiết lập vector ngắt 40H mới 	MOV	DX, offset New40 	MOV AX, CS 	PUSH DS 	MOV	DS, AX 	MOV	AH, 25H 	INT	21H 	POP DS Main Endp New40	Proc 	;các lệnh của CTCPVN New40 Endp End Main Xử lý ưu tiên ngắt Ngắt có mức ưu tiên cao nhất sẽ được phục vụ trước Các mức ưu tiên: Ngắt nội bộ: INT 0, INT 1 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? Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A Mạch điều khiển ngắt 8259A 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 Highest 	IRQ0	Timer 0 	IRQ1	Keyboard 	IRQ2	From slave 8259  	IRQ8	Real time clock 	IRQ9	* 	IRQ10 	IRQ11 	IRQ12 	IRQ13	C0-processor 	IRQ14	Hard disk controller 	IRQ15   	IRQ3	COM2 port 	IRQ4	COM1 port 	IRQ5	LPT2 	IRQ6	Floppydisk controller Lowest	IRQ7	LPT1   * IRQ9 interrupt is redirected to IRQ2 vector Các ngắt trong máy tính IBM/PC PC/AT VECTOR TABLE 77h IRQ15 Reserved 76h IRQ14 Fixed Disk Controller 75h IRQ13 80x87 74h IRQ12 Reserved 73h IRQ11...Reserved 72h IRQ10 ..Reserved 71h IRQ9 Directed to IRQ2 70h IRQ8 CMOS RTC 67h EMM 66h User Interrupts 60h 4Ah ROM BIOS and VIDEO 40h 3Fh MSDOS 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 00024 09h IRQ1 Keyboard 00020 08h IRQ0 Timer tick 07h 80x87 not present 06h Invalid opcode 05h Print screen (BIOS) 04h Overflow 03h Break point instruction 02h NMI 01h Single step 0000 00h Divide by zero Nội dung môn học Giới thiệu chung về hệ vi xử lý Bộ vi xử lý Intel 8088/8086 Lập trình hợp ngữ cho 8086 Tổ chức vào ra dữ liệu Ngắt và xử lý ngắt Truy cập bộ nhớ trực tiếp DMA Các bộ vi xử lý trên thực tế Chương 6: Truy cập bộ nhớ trực tiếp DMA Giới thiệu về DMA Mạch DMAC 8237A của Intel Giới thiệu về DMA 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  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 the i8237A  i8237A uses a multiplexed address and data bus to reduce the device pin count. DB0..DB7 lines contain the data bus along with the high byte of the 16-bit address bus. An external latch is required to demultiplex the address lines Mạch DMAC 8237A của Intel Mạch DMAC 8237A của Intel Mạch DMAC 8237A của Intel How the PC uses the i8237A 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 DMA in the PC/XT Cascaded i8237As in the PC/AT DMA Cascadation PC/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 DMA Channels in the PC/AT   DMA 	Priority	Pre-defined	8-bit or 	 	Use in PC/AT	16-bit ____________________________________________________________ DREQ0 Highest	Memory Refresh*	8-bits   DREQ1	Not defined	8-bits   DREQ2	Floppy Disk	8-bits   DREQ3	Not defined	8-bits   DREQ4	Cascade	not used   DREQ5	Not defined	16-bits   DREQ6	Not defined	16-bits   DREQ7	 Lowest	Not defined	16-bits 

File đính kèm:

  • pptBài giảng Kỹ thuật vi xử lý - Chương 5 Ngắt và xử lý ngắt.ppt