Top Banner
1/Chapter5 © DHBK 2005 Nội dung môn học Nội dung môn học 1. Giới thiệu chung về hệ vi xử lý 2. Bộ vi xử lý Intel 8088/8086 3. Lập trình hợp ngữ cho 8086 4. Tổ chức vào ra dữ liệu 5. Ngắt và xử lý ngắt 6. Truy cập bộ nhớ trực tiếp DMA 7. Các bộ vi xử lý trên thực tế
41

Nội dung môn học

Jan 19, 2016

Download

Documents

reegan

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 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Nội dung môn học

1/Chapter5© DHBK 2005

Nội dung môn họcNội dung môn học

1. Giới thiệu chung về hệ vi xử lý2. Bộ vi xử lý Intel 8088/80863. Lập trình hợp ngữ cho 80864. Tổ chức vào ra dữ liệu5. Ngắt và xử lý ngắt6. Truy cập bộ nhớ trực tiếp DMA7. Các bộ vi xử lý trên thực tế

Page 2: Nội dung môn học

2/Chapter5© DHBK 2005

Chương 5: Ngắt và xử lý ngắtChươ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

Page 3: Nội dung môn học

3/Chapter5© DHBK 2005

Giới thiệu về ngắtGiớ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

Page 4: Nội dung môn học

4/Chapter5© DHBK 2005

Giới thiệu về ngắtGiới thiệu về ngắt

Page 5: Nội dung môn học

5/Chapter5© DHBK 2005

Giới thiệu về ngắtGiới thiệu về ngắt

Page 6: Nội dung môn học

6/Chapter5© DHBK 2005

Đá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

Page 7: Nội dung môn học

7/Chapter5© DHBK 2005

Đá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

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

Page 8: Nội dung môn học

8/Chapter5© DHBK 2005

Các thủ tục ngắt của người sử dụngCá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

Page 9: Nội dung môn học

9/Chapter5© DHBK 2005

Các thủ tục ngắt của người sử dụngCá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, 35HMOV AL, 40H INT 21H

MOV OLD_IP, BXMOV OLD_CS, ES

;Thiết lập vector ngắt 40H mớiMOV DX, offset New40MOV AX, CSPUSH DSMOV DS, AXMOV AH, 25HINT 21HPOP DS

Main EndpNew40 Proc

;các lệnh của CTCPVNNew40 EndpEnd Main

Page 10: Nội dung môn học

10/Chapter5© DHBK 2005

Xử lý ưu tiên ngắtXử 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?

Page 11: Nội dung môn học

11/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 12: Nội dung môn học

12/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 13: Nội dung môn học

13/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 14: Nội dung môn học

14/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 15: Nội dung môn học

15/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 16: Nội dung môn học

16/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 17: Nội dung môn học

17/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 18: Nội dung môn học

18/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 19: Nội dung môn học

19/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 20: Nội dung môn học

20/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 21: Nội dung môn học

21/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 22: Nội dung môn học

22/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 23: Nội dung môn học

23/Chapter5© DHBK 2005

Mạch điều khiển ngắt 8259AMạch điều khiển ngắt 8259A

Page 24: Nội dung môn học

24/Chapter5© DHBK 2005

Các ngắt trong máy tính IBM/PCCác ngắt trong máy tính IBM/PC

D0D1D2D3D4D5D6D7

IR0IR1IR2IR3IR4IR5IR6IR7

IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

INT

INTA

8259A

D0D1D2D3D4D5D6D7

IR0IR1IR2IR3IR4IR5IR6IR7

IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15

INT

INTA

8259A

CAS0CAS1

CAS2

Master

Slave

INTA

INTR

SP/EN

SP/ENHi

Lo

Cascaded i8259As

Page 25: Nội dung môn học

25/Chapter5© DHBK 2005

Các ngắt trong máy tính IBM/PCCác ngắt trong máy tính IBM/PC

Priority Use of PC/AT Interrupt Highest IRQ0 Timer 0

IRQ1 KeyboardIRQ2 From slave 8259 IRQ8 Real time clockIRQ9 *IRQ10IRQ11IRQ12IRQ13 C0-processorIRQ14 Hard disk controllerIRQ15

 IRQ3 COM2 portIRQ4 COM1 portIRQ5 LPT2IRQ6 Floppydisk controller

Lowest IRQ7 LPT1  * IRQ9 interrupt is redirected to IRQ2 vector

Page 26: Nội dung môn học

26/Chapter5© DHBK 2005 Các ngắt trong máy tính IBM/PCCá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

Page 27: Nội dung môn học

27/Chapter5© DHBK 2005

Nội dung môn họcNội dung môn học

1. Giới thiệu chung về hệ vi xử lý2. Bộ vi xử lý Intel 8088/80863. Lập trình hợp ngữ cho 80864. Tổ chức vào ra dữ liệu5. Ngắt và xử lý ngắt6. Truy cập bộ nhớ trực tiếp DMA7. Các bộ vi xử lý trên thực tế

Page 28: Nội dung môn học

28/Chapter5© DHBK 2005

Chương 6: Truy cập bộ nhớ trực tiếp Chương 6: Truy cập bộ nhớ trực tiếp DMADMA

• Giới thiệu về DMA• Mạch DMAC 8237A của Intel

Page 29: Nội dung môn học

29/Chapter5© DHBK 2005

Giới thiệu về DMAGiới thiệu về DMA

Page 30: Nội dung môn học

30/Chapter5© DHBK 2005

Mạch DMAC 8237A của IntelMạch DMAC 8237A của Intel

Page 31: Nội dung môn học

31/Chapter5© DHBK 2005

Mạch DMAC 8237A của IntelMạ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 

Page 32: Nội dung môn học

32/Chapter5© DHBK 2005

Mạch DMAC 8237A của IntelMạ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

Page 33: Nội dung môn học

33/Chapter5© DHBK 2005

Mạch DMAC 8237A của IntelMạch DMAC 8237A của Intel

Page 34: Nội dung môn học

34/Chapter5© DHBK 2005

Mạch DMAC 8237A của IntelMạch DMAC 8237A của Intel

Page 35: Nội dung môn học

35/Chapter5© DHBK 2005

Mạch DMAC 8237A của IntelMạch DMAC 8237A của Intel

Page 36: Nội dung môn học

36/Chapter5© DHBK 2005

How the PC uses the i8237AHow the PC uses the i8237A

DREQ0DACK0DREQ1DACK1DREQ2DACK2DREQ3DACK3

DB0..DB7

A0..A7

i8237DMAfourDMA

channelsHRQ

HLDA

IORIOWMEMRMEMW

ADSTB

EOP

DMA Addr.Latch

DMAPageRegrs.

A16..A23[A16..A19 for PC/XT]

I/O Mappedto MPU, readand write

A8..A15

A0..A7

8253(8254)Timer/Counter

OUT115 usecs.

D

Hi

CLR

Q

Floppy Controller

i8237A Address Latch andPage Registers

Page 37: Nội dung môn học

37/Chapter5© DHBK 2005

DMA Address TrackingDMA 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

Page 38: Nội dung môn học

38/Chapter5© DHBK 2005

DMA in the DMA in the PC/XTPC/XT

Page 39: Nội dung môn học

39/Chapter5© DHBK 2005

Cascaded i8237As in the PC/ATCascaded i8237As in the PC/AT

MPU

i8237AMaster

i8237ASlave

DREQ0DACK0

DREQ1DACK1

DREQ2DACK2

DREQ3DACK3

DREQ5DACK5

DREQ6DACK6

DREQ7DACK7

DREQ4

DACK4HRQ

HOLDA

Cascaded i8237ADMA Controllers

DMA Cascadation

Page 40: Nội dung môn học

40/Chapter5© DHBK 2005

PC/AT DMA Channel prioritiesPC/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

Page 41: Nội dung môn học

41/Chapter5© DHBK 2005

DMA Channels in the PC/ATDMA 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