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ế
41 trang |
Chia sẻ: Mr Hưng | Lượt xem: 721 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Kĩ thuật viễn thông - Ngắt và xử lý ngắt, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Nội dung môn họcGiới thiệu chung về hệ vi xử lýBộ vi xử lý Intel 8088/8086Lập trình hợp ngữ cho 8086Tổ chức vào ra dữ liệuNgắt và xử lý ngắtTruy cập bộ nhớ trực tiếp DMACác bộ vi xử lý trên thực tế1Chương 5: Ngắt và xử lý ngắtGiới thiệu về ngắtĐáp ứng của CPU khi có yêu cầu ngắtCác thủ tục ngắt của người sử dụngXử lý ưu tiên ngắtMạch điều khiển ngắt ưu tiên 8259ANgắt trong máy tính IBM PC2Giới thiệu về ngắt2 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 <=2553Giới thiệu về ngắt4Giới thiệu về ngắt5Đáp ứng của CPU khi có yêu cầu ngắtBảng vector ngắt: 1 Kbytes 00000H đến 003FF H256 vector ngắt1 vector 4 bytes, chứa IP và CS của CTCPVN32 vector đầu dành riêng cho Intel224 vector sau dành cho người dùng6Đáp ứng của CPU khi có yêu cầu ngắtChương trình chínhCPU: Cất thanh ghi cờ FXoá IF và TFCất CS và IPlấy địa chỉ CTCPVNCPU: Lấy lại IP và CS Lấy lại thanh ghi cờ FCTCPVNlệnh cất các thanh ghilệnh lấy các thanh ghiIRET7Các thủ tục ngắt của người sử dụngThiế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 DOSVào: AH=35h, AL= số hiệu ngắtRa: ES:BX = địa chỉ đoạn : địa chỉ offset của CTCPVNCấ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 21HVà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ụngKhôi phục lại vector cũ trước khi kết thúc CTCPVN của người sử dụng8Các thủ tục ngắt của người sử dụng.Model Small.Stack 100.DataOLD_IP DW ?OLD_CS DW ?.CodeMain 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 DSMain EndpNew40 Proc ;các lệnh của CTCPVNNew40 EndpEnd Main9Xử lý ưu tiên ngắtNgắt có mức ưu tiên cao nhất sẽ được phục vụ trướcCác mức ưu tiên:Ngắt nội bộ: INT 0, INT 1Ngắt không che được: NMINgắt che được INTRNgắt mềm INT NCPU 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?10Mạch điều khiển ngắt 8259A11Mạch điều khiển ngắt 8259A12Mạch điều khiển ngắt 8259A13Mạch điều khiển ngắt 8259A14Mạch điều khiển ngắt 8259A15Mạch điều khiển ngắt 8259A16Mạch điều khiển ngắt 8259A17Mạch điều khiển ngắt 8259A18Mạch điều khiển ngắt 8259A19Mạch điều khiển ngắt 8259A20Mạch điều khiển ngắt 8259A21Mạch điều khiển ngắt 8259A22Mạch điều khiển ngắt 8259A23Các ngắt trong máy tính IBM/PC24Các ngắt trong máy tính IBM/PCPriority 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 controllerLowest IRQ7 LPT1 * IRQ9 interrupt is redirected to IRQ2 vector25Các ngắt trong máy tính IBM/PCPC/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 26Nội dung môn họcGiới thiệu chung về hệ vi xử lýBộ vi xử lý Intel 8088/8086Lập trình hợp ngữ cho 8086Tổ chức vào ra dữ liệuNgắt và xử lý ngắtTruy cập bộ nhớ trực tiếp DMACác bộ vi xử lý trên thực tế27Chương 6: Truy cập bộ nhớ trực tiếp DMAGiới thiệu về DMAMạch DMAC 8237A của Intel28Giới thiệu về DMA29Mạch DMAC 8237A của Intel30Mạch DMAC 8237A của IntelAlthough 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 channelsOriginal PC/XT design had one i8237A for four DMA channelsPC/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 31Mạch DMAC 8237A của Inteli8237A allows byte addressing for 8-bit data transfersIn 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 lines32Mạch DMAC 8237A của Intel33Mạch DMAC 8237A của Intel34Mạch DMAC 8237A của Intel35How the PC uses the i8237A36DMA Address TrackingThe i8237A has four registers for tracking memory addresses during a DMA blockBASE ADDRESS REGISTERBASE WORD COUNT REGISTERCURRENT ADDRESS REGISTERCURRENT WORD COUNT REGISTER37DMA in the PC/XT38Cascaded i8237As in the PC/ATDMA Cascadation39PC/AT DMA Channel prioritiesDMA channel 0 (DREQ0) has the highest priorityDMA channel 7 (DREQ7) has the lowestNote, 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 40DMA 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-bits41
Các file đính kèm theo tài liệu này:
- microprocessor_final_ver1_part5_314.ppt