第7章-中断系统-微型计算机原理(第三版)(共10章)课件_第1页
第7章-中断系统-微型计算机原理(第三版)(共10章)课件_第2页
第7章-中断系统-微型计算机原理(第三版)(共10章)课件_第3页
第7章-中断系统-微型计算机原理(第三版)(共10章)课件_第4页
第7章-中断系统-微型计算机原理(第三版)(共10章)课件_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

09一月2023第1页

7.1中断的概念

7.2中断的响应和中断处理

7.38086中断系统

7.4中断控制器825909一月2023第1页7.1中断的概念7.209一月2023第2页7.1中断(Interrupt)的概念CPU在正常执行程序时,由于内部或外部事件引起CPU暂时中止正在执行的程序,而去执行服务程序,完毕后,又返回到暂时被终止的程序继续执行的过程——中断。

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。分类:硬件中断(HardwareInterrupt)软件中断(SoftwareInterrupt)09一月2023第2页7.1中断(Interrupt09一月2023第3页7.1中断(Interrupt)的概念计算机科学术语.指处理机处理程序运行中出现的紧急事件的整个过程.程序运行过程中,系统外部、系统内部或者现行程序本身若出现紧急事件,处理机立即中止现行程序的运行,自动转入相应的处理程序(中断服务程序),待处理完后,再返回原来的程序运行,这整个过程称为程序中断;当处理机接受中断时,只需暂停一个或几个周期而不执行处理程序的中断,称为简单中断.中断又可分为屏蔽中断和非屏蔽中断两类.可由程序控制其屏蔽的中断称为屏蔽中断或可屏蔽中断.屏蔽时,处理机将不接受中断.反之,不能由程序控制其屏蔽,处理机一定要立即处理的中断称为非屏蔽中断或不可屏蔽中断.非屏蔽中断主要用于断电、电源故障等必须立即处理的情况.处理机响应中断时,不需执行查询程序.由被响应中断源向CPU发向量地址的中断称为向量中断,反之为非向量中断.向量中断可以提高中断响应速度。09一月2023第3页7.1中断(Interrupt09一月2023第4页7.1中断(Interrupt)的概念中断过程按照事件发生的顺序,中断过程包括

[4]

:①中断源发出中断请求;②判断当前处理机是否允许中断和该中断源是否被屏蔽;③优先权排队;④处理机执行完当前指令或当前指令无法执行完,则立即停止当前程序,保护断点地址和处理机当前状态,转入相应的中断服务程序;⑤执行中断服务程序;⑥恢复被保护的状态,执行“中断返回”指令回到被中断的程序或转入其他程序。上述过程中前四项操作是由硬件完成的,后两项是由软件完成的。09一月2023第4页7.1中断(Interrupt09一月2023第5页7.1中断(Interrupt)的概念CPU在正常执行程序时,由于内部或外部事件引起CPU暂时中止正在执行的程序,而去执行服务程序,完毕后,又返回到暂时被终止的程序继续执行的过程——中断。7.1.1中断的基本概念

中断源的概念:通常在计算机系统中有多个外部设备并行工作,或存在多个事件,它们都可以向CPU发申请,这些外部设备或事件就称为中断源。

1.中断概念:当外设需要服务或事件发生时,向主机发出“请求”信号,CPU暂停当前正在执行的程序,而转去为请求服务的外设或事件进行服务,待服务完毕后又自动返回到暂时被终止的程序继续执行的过程。09一月2023第5页7.1中断(Interrupt09一月2023第6页2.中断的作用

⑴实现CPU与多台I/O设备并行工作。若CPU与设备串行运行,则CPU效率低下。启动启动启动CPU设备完成完成

查询等待(t)查询等待查询等待CPU与设备串行运行示意图⑵实现实时处理。如压力过大、温度过高等情况等。

⑶故障处理。如电源掉电及软、硬件故障等,提高了计算机系统的可靠性。

09一月2023第6页2.中断的作用⑴实09一月2023第7页⑷实现人机对话。操作人员通过控制台发命令,对系统进行随机干预。⑸实现多机系统中各主机间的联系。实现多机系统中,各个处理机之间的信息交流和任务切换。3.中断系统的功能

⑵实现优先排队。响应优先级最高的中断请求。⑶实现中断嵌套。当CPU响应某一中断并进行处理时,若有优先级更高的中断源发出申请,则响应。⑴实现中断和返回。CPU判断中断源,转入相应中断处理程序,处理完毕后返回原断点,继续执行。

09一月2023第7页⑷实现人机对话。操作09一月2023第8页⑴处理机内部中断:如零作除数,为调试程序设置的断点等。8.1.2中断源类型

⑶数据通道中断:如磁盘、磁带等。⑵I/O设备中断:如键盘、打印机等输入输出设备引起的中断。⑷实时时钟中断:如外部时钟电路、内部定时电路等引起的中断。⑸故障源:如电源掉电等。磁带等。⑹软中断:在程序中,用命令设置的中断。09一月2023第8页⑴处理机内部中断:如09一月2023第9页1.软件查询方式7.1.3中断优先排队(优先权)

中断源0INTR

≥1

中断源1中断源2中断源3中断源4中断源5中断源6中断源7各中断请求信号“或”操作后作为INTR信号。当有中断源发出请求时,INTR=1。CPU响应中断后,进入中断处理程序,先从左到右逐位检查状态,先被查询到的中断申请先得到服务。09一月2023第9页1.软件查询方式7.1.3中断09一月2023第10页2.硬件方式——硬件优先权排队电路⑴多线请求优先权排队电路。

&

&

&

&

&

&

INTR0

INTR1

INTR2

INTR2’INTR1’

INTR0’

I/O设

备申请

多线请求优先权排队电路

⑵多线请求,判优响应。

Intel8259——可编程中断控制器,用来接收、屏蔽、判优、传递中断请求,功能强大,应用方便。

如INTR1’有请求,则INTR2’被封锁。09一月2023第10页2.硬件方式——硬件优先权排队电09一月2023第11页7.2中断处理

1.中断响应的条件——三个:

⑴中断源有中断请求。

7.2.1中断响应

⑵CPU允许中断。中断允许标志IF为1⑶一条指令执行完毕。

2.中断响应过程

⑴中断源的识别。

⑵保存中断现场和转向中断服务程序。现场——断点地址、条件码、屏蔽字、通用寄存器中的内容和状态位等等。压入堆栈中保存,由硬件直接控制执行,称为中断隐指令。

09一月2023第11页7.2中断处理1.中断响09一月2023第12页7.2.2中断处理1.中断的处理过程⑴关中断。目的:CPU不响应更高级的中断申请。

⑵保存断点和现场。即将现行状态字和断点地址相继压入堆栈。目的:在中断处理完后返回主程序时,恢复原程序运行状态。⑶开中断。目的:允许更高级中断请求能够及时得到响应,实现中断嵌套。

⑷转入中断服务程序。目的:完成的最终目的。

⑸退出中断。返回到主程序的执行。

09一月2023第12页7.2.2中断处理1.中断的09一月2023第13页2.中断服务程序中断处理过程流程图关中断恢复现场开中断开中断转入中断服务程序执行中断服务程序N取下一条指令YN执行一条指令结束有中断?Y保存断点、保护现场关中断09一月2023第13页2.中断服务程序中断处理过09一月2023第14页3.多重中断处理多重中断:在处理某一中断过程中又发生了新的中断,而中断该服务程序的执行,又转去新的中断处理。——中断嵌套。3级中断服务主程序主程序kk+11级中断服务主程序mm+1n-12n-10n-8n-6n-4n-2nSPm+1(IP)m+1(CS)PSWmSP两级嵌套的情况:k+1(IP)k+1(CS)PSWkSP09一月2023第14页3.多重中断处理多重中断09一月2023第15页1.内部中断⑴单步中断,中断号为01H。当TF为1时,每执行一条指令后立即产生1号中断。7.38086中断系统

7.3.18086的中断分类:内部中断和外部中断。

⑵断点中断,03H。用在程序调试中设置断点。⑶溢出中断,04H。若OF=1,则执行INTO指令,INTO指令经常安排在运算指令之后。⑷除数为0中断,0H。当除法指令所得商大于机器能表示的最大值,则立即产生0号中断。

⑸指令中断,即CPU执行INTn指令。09一月2023第15页1.内部中断⑴09一月2023第16页2.外部中断:分为非屏蔽中断和可屏蔽中断,分别通过NMI和INTR引入。

⑴非屏蔽中断:NMI引脚引入。不受IF的影响,用于处理紧迫事件,如掉电、存储器错误或总线极性错误等紧急事态。中断号2。CPU在执行NMI中断服务时不允许响应INTR引脚上出现的中断请求。⑵可屏蔽中断:通过CPU的INTR引脚引入。特点:①请求经中断控制器判优后再送往CPU;②CPU可通过对中断标志位IF置位或复位来允许或禁止INTR请求;③由中断控制器向CPU提供中断类型码;④可屏蔽中断允许嵌套。09一月2023第16页2.外部中断:分为非屏蔽中断和可09一月2023第17页8086中断系统的各中断源分类示意图

中断逻辑INTn指令非屏蔽中断NMIINT2INT0除数为0INT1单步

INT3断点INT4溢出8259A中断

控制器INTR

IR0IR1

IR7……优先级别:除单步中断外,所有内部中断的优先级最高,其次为不可屏蔽中断、可屏蔽中断,单步中断的优先级最低。09一月2023第17页8086中断系统的各中断源分类示09一月2023第18页7.3.2中断向量和中断向量表

除数为0中断单步中断非屏蔽中断断点中断溢出中断IPLIPHCSLCSH0000H0004H0008H000CH0010H0014H007FH0080H03FCH03FFH类型0类型1类型2类型3类型4类型IFH类型FFH专用中断系统保留中断27个用户使用每个中断向量占4个字节,256个中断向量共占1K个单元。

09一月2023第18页7.3.2中断向量和中断向量09一月2023第19页1.8086硬件中断的响应过程⑴CPU读取中断类型码并存入暂存器;⑵标志寄存器值压栈保护;⑶IF和TF清零,即禁止单步执行中断服务程序;⑷保存断点,即将断点地址(CS,IP)压栈保护;⑸根据中断类型码从中断向量表中取出中断向量,转入中断服务程序执行。7.3.38086硬件中断的响应时序

中断执行示意图如下:09一月2023第19页1.8086硬件中断的响应过程09一月2023第20页执行下一条指令NTF=1?无内部中断?结束当前指令?有Y有NMI?N无取中断类型码Y有有INTR?IF=1?YN返回断点①

开中断执行中断服务程序关中断标志寄存器入栈TEMP=TF(暂存)清除IF、TF标志断点(CS,IP)入栈取中断向量进入中断服务程序①

关中断恢复现场,恢复断点开中断,返回09一月2023第20页执行下一条指令NTF=1?无内部09一月2023第21页2.8086中断响应总线周期说明:第一个总线周期通知外设CPU准备响应中断,外设备好中断类型码;第二个总线周期CPU接收中断类型码;共用7个总线周期完成。软件中断和NMI共用5个总线周期。T1T2T3T4TITITIT1T2T3T4三个空闲状态CLKALED0~D7中断类型码INTA09一月2023第21页2.8086中断响应总线周期09一月2023第22页软件中断有如下特点:

1.INTn指令,中断类型码是n。7.3.4软件中断

3.软件中断不受IF的影响。2.不执行中断响应总线周期,不读取中断类型码。5.软件中断没有随机性,中断指令引起的,事先知道的。4.可进行中断嵌套,即可以响应非屏蔽中断;也可响应屏蔽中断的高优先级请求。09一月2023第22页软件中断有如下特点:09一月2023第23页7.4中断控制器8259A

7.4.18259A的引脚信号、编程结构和工作原理

芯片引脚信号CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GND28272625242322212019181716151234567891011121314VCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A逻辑图8259AD7~D0CSRDWRA0SP/ENINTCAS0CAS1CAS2INTAVCCGNDIR7~IR0可对8个中断源实现优先级控制

9片对64个中断源实现优先级控制

可编程设置不同工作方式向x86提供不同中断类型码09一月2023第23页7.4中断控制器8259A09一月2023第24页1.8259A的外部引脚信号

VCC和GND是电源和地,接+5V。

D7~D0:8根数据引线。D7~D0和数据总线的低8位相连,实现和CPU的数据交换。CS:片选信号。低电平有效,系统中地址总线经过译码后与其相连。用于选择芯片。INT:中断请求引线,它与CPU的INTR相连,以向CPU发出中断请求信号。INTA用来接收来自CPU的中断应答信号。RD:读允许信号。低电平有效,通知8259A将被访问的端口的内容送往数据总线。09一月2023第24页1.8259A的外部引脚信号V09一月2023第25页A0:地址线,选择8259A的端口,8259A有一个偶和一个奇地址,偶地址低,奇地址高。

IR7~IR0:来自I/O设备的中断请求信号。

CAS2~CAS0:级连信号,用于指示从片的标识。SP/EN:双向,若=1时,则8259A为主片,若=0时,8259A为从片。在8086系统中,只用低8位数据线进行连接,需用地址线A1与8259A的A0连接,用两个相邻的偶地址来作为8259A的端口地址。

09一月2023第25页A0:地址线,选择8259A的端09一月2023第26页2.8259A的结构和工作原理CAS2CAS1CAS0SP/EN8259A芯片内部结构数据总线缓冲器读/写逻辑级连缓冲/比较器控制逻辑当前中断服务寄存器(ISR)优先权裁决电路(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)…IR0IR1…IR7INTD7~D0RDWRA0CSINTA09一月2023第26页2.8259A的结构和工作原理C09一月2023第27页☆中断请求寄存器IRR:保存IR0~IR7中断请求信号,某位=1表示对应的IRi有中断请求

☆中断服务寄存器ISR:保存所有正在服务的中断源,某位=1表示对应的IRi中断正在被服务

☆中断屏蔽寄存器IMR:存放中断屏蔽字,某位=1表示对应的IRi输入被屏蔽

☆中断优先权判别电路:确定是否向CPU发出中断请求。☆级连逻辑:当引入的中断超过8级时,用多片8259A级联,构成主从关系。09一月2023第27页☆中断请求寄存器IRR:保存IR09一月2023第28页⑵

工作原理。

8259A对中断请求的处理过程:

当某IRi有效时,IRR相应位置1若有效的IRi未被屏蔽,则向CPU发出中断请求检测到第1个INTA#信号后,ISRi=1,IRRi=0

检测到第2个INTA#信号后,把ISRi=1中最高优先级的中断类型码放到DB上若工作在AEOI方式,在第2个INTA#结束时,使ISRi复位;否则由CPU发出EOI命令使ISRi复位09一月2023第28页⑵工作原理。8259A对中断09一月2023第29页3.8259A的工作方式

⑴设置优先级的方式:有全嵌套、特殊全嵌套、优先级自动循环和优先级特殊循环等4种优先级方式。☆全嵌套方式:IR0的级别最高,IR2的级别次之,……,IR7的级别最低。加电后8259A的默认方式,默认优先级顺序从高到低为IR0~IR7

IR7IR6IR5IR4IR3IR2IR1IR076543210最低级最高级09一月2023第29页3.8259A的工作方式09一月2023第30页☆特殊全嵌套方式:用在多片8259A级连的系统中。主片8259A工作在特殊全嵌套方式。对来自同一从片的较高优先级请求也会开放。☆优先级自动循环方式:一个中断源受到中断服务以后,它的中断优先级自动降为最低。IR7IR6IR5IR4IR3IR2IR1IR076543210最低级最高级01010000ISRiIR4的服务结束以前21076543最高级最低级IR7IR6IR5IR4IR3IR2IR1IR001000000IR4的服务结束以后09一月2023第30页☆特殊全嵌套方式:用在多片82509一月2023第31页☆普通屏蔽方式:可通过编程设置操作命令字OCW1(屏蔽寄存器)屏蔽不需要响应的中断。也可以撤消⑵屏蔽中断源的方式:普通屏蔽和特殊屏蔽方式。☆特殊屏蔽方式:当CPU正在处理某级中断时,要求仅对本级进行屏蔽,而允许其它优先级高的或低的中断进入系统。☆优先级特殊循环方式:8个中断优先级自动循环。通过对8259A的操作命令字OCW2来设置的。09一月2023第31页☆普通屏蔽方式:可通过编程设置操09一月2023第32页☆中断自动结束方式:系统一进入中断过程,在第二个中断响应信号结束时,ISR相应位清0。因不保留当前正在服务的中断的状态,故AEOI不能用于中断嵌套方式⑶

结束中断处理的方式:当IRi中断被服务时,ISRi=1。当服务结束后,则必须清零ISRi位。是通过向8259A发出中断结束命令(EOI命令)实现的。有三种中断结束方式:自动EOI(AEOI)——中断自动结束方式非指定EOI(NSEOI)——一般中断结束方式指定EOI(SEOI)——特殊的中断结束方式

09一月2023第32页☆中断自动结束方式:系统一进入中09一月2023第33页☆一般中断结束方式:用于普通全嵌套方式的情况。由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。☆特殊的中断结束方式:用于优先级自动循环或优先级特殊循环方式中。通过对8259A的OCW2来实现。由CPU发出一条特殊的中断结束命令,命令中指出所要复位的ISR的位号。09一月2023第33页☆一般中断结束方式:用于普通全嵌09一月2023第34页⑷连接系统总线的方式:缓冲方式和非缓冲方式。☆

缓冲方式:多片8259A通过总线缓冲器和数据总线连接,即为缓冲方式。

09一月2023第34页⑷连接系统总线的方式:缓冲09一月2023第35页☆非缓冲方式:相对于缓冲方式而言的。当系统中只有一片或很少几片8259A时,可将8259A的数据线直接与系统总线相连。

采用多片8259A级连,可最多支持64个中断源。只能有一片8259A为主片,其余的均为从属片;涉及到的8259A引脚包括:CAS0-CAS2、SP/EN、IRi、INT单片8259A可支持8个中断源;09一月2023第35页☆非缓冲方式:相对于缓冲方式而言09一月2023第36页⑸引入中断请求的方式:有下列三种。☆边沿触发方式:IRi出现上升沿表示有中断请求

☆电平触发方式:IRi出现高电平表示有中断请求。在第1个INTA#结束前,IRi必须保持高电平☆中断查询方式:CPU通过查询8259A状态来确定是否有中断申请,并判别是哪个中断源。09一月2023第36页⑸引入中断请求的方式:有下09一月2023第37页7.4.28259A的初始化命令字和操作命令字

4个初始化命令字和3个操作命令字。

1.8259A的初始化命令字:由初始化程序填写⑴

ICW1——芯片控制初始化命令字。(A0=0)。ICW1的格式如下:1LTIMADISNGLIC4A0D7D6D5D4D3D2D1D00D7~D5:一般不用。

D4=1:为ICW1的标志位,而不是操作命令OCW2和OCW3。09一月2023第37页7.4.28259A的初始09一月2023第38页D3(LTIM):设置中断请求信号(IRi引脚)的触发方式。LTIM=0:边沿触发;LTIM=1:电平触发。D2(ADI):在8086/8088系统中不用。D1(SNGL):是否与其他8259A处于级连方式。当只有一片8259A时,使D1=1;有多片8259A时,D1=0。D0(IC4):后面是否设置ICW4。当IC4=0,不设置ICW4;若IC4=1,设置ICW4。在8086/8088系统中要求必须使用ICW4命令字,IC4必须设置为1。

09一月2023第38页D3(LTIM):设置中断请求09一月2023第39页⑵ICW2——中断类型码初始化命令字:设置中断类型码。写入8259A的奇地址端口(A0=1)。

T7T6T5T4T3

A0D7D6D5D4D3D2D1D01ICW2的高5位为中断类型码的高5位,低3位由引入中断的引脚序号决定。例如:ICW2的值为40H,则8259A的IR0~IR7对应的8个中断类型码为:40H,41H,42H,…,47H。09一月2023第39页⑵ICW2——中断类型码初始化09一月2023第40页⑶

ICW3——主从片标识字初始化命令字:标识主/从片,写入8259A的奇地址口,跟在ICW2后设置。IR7IR6IR5IR4IR3IR2IR1IR0A0D7D6D5D4D3D2D1D01主片ICW3的格式如下:从片ICW3的格式如下:IRi=1:表示IRi引脚上连有从片;IRi=0:表示IRi引脚上无从片连接。0

0000ID2ID1ID0

A0D7D6D5D4D3D2D1D01D2~D0:为从片标识符。D2~D0的组合决定哪个中断请求输出到INT脚。如从片的INT引脚连在主片的IR5引脚上,则此从片的ICW3中的D2~D0应设置为101B。09一月2023第40页⑶ICW3——主从片标识字初始09一月2023第41页⑷ICW4——方式控制初始化命令字:写入8259A的奇地址口,在ICW1中的第0位(IC4)为1时,才设置ICW4。主机类型主/从片嵌套方式中断结束方式缓冲方式标志000SFNMBUFM/SAEOIPM

A0D7D6D5D4D3D2D1D01D7D6D5:ICW4的标志位,这三位总是为0。D4(SFNM):定义在级连方式下是否采用特殊全嵌套方式。SFNM=0:非特殊全嵌套;SFNM=1:特殊全嵌套。在非级连方式下,D4(SFNM)位无效。09一月2023第41页⑷ICW4——方式控制初始化命令09一月2023第42页D3(BUF):是否采用缓冲方式。BUF=0:非缓冲;BUF=1:缓冲D2(M/S):在缓冲方式,规定本片为主片还是从片。BUF位、M/S位和/信号线之间的关系:

BUF位

M/S位

SP/EN信号线0非缓冲方式无意义有效,输入,=1主8259A0非缓冲方式无意义有效,输入,=0从8259A1缓冲方式1主8259A有效,输出,=1CPU→8259A1缓冲方式0从8259A有效,输出,=0CPU←8259AD1(AEOI):中断结束方式。AEOI=0:正常结束方式;AEOI=1:自动结束方式。09一月2023第42页D3(BUF):是否采用缓冲方09一月2023第43页2.8259A的初始化流程是否为级连方式?用ICW1设置:是否级连、请求信号格式、后面是否用ICW4用ICW2设置中断类型码YESNO设置ICW3,各位对应IR0~IR7的连接情况NO本片为主片?设置ICW3,高5位为0,低3位为标识码YES①需要设置ICW4吗?YES用ICW4设置:是否为特殊全嵌套方式;是否为缓冲方式;是否为自动结束中断方式;是否为8086/88系统设置结束NO①09一月2023第43页2.8259A的初始化流程是否为09一月2023第44页例1:当8086/8088系统,8259A单级使用,端口地址是80H和81H。要求:需要设置ICW4,单级、不设置ICW3、中断请求为边沿方式;中断类型码为30H~37H;非缓冲方式和一般中断结束方式。初始化程序如下:MOV AL,13H;设置ICW1=00010011BOUT80H,AL;写入偶地址端口。MOVAL,30H;设置ICW2=00110000B,OUT81H,AL;写入奇地址端口。MOVAL,01H;设置ICW4=00000001B:OUT81H,AL;写入奇偶地址端口。09一月2023第44页例1:当8086/8088系统,09一月2023第45页3.8259A的操作命令字:3个,即OCW1~OCW3

Mi=1,屏蔽相应的中断请求(IRi);Mi=0,允许相应的中断请求(IRi)⑴OCW1——中断屏蔽操作命令字:实现中断屏蔽功能

M7M6M5M4M3M2M1M0

A0D7D6D5D4D3D2D1D01例如:OCW1=03H(00000011B),则IR1和IR0引脚上的中断请求被屏蔽,其它引脚上的中断请求则允许。09一月2023第45页3.8259A的操作命令字:3个09一月2023第46页D4D3=00:为OCW2的标志。D7(R):决定系统中断优先级是否按循环方式设置。若R=1,优先级循环;若R=0,非循环。D6(SL):决定了OCW2中的L2、L1、L0是否有效,若SL=1,表示由L2、L1、L0设定的优先级有效;D5(EOI):中断结束命令。⑵

OCW2——工作方式操作命令字:设置优先级循环方式和中断结束方式

RSLEOI00L2L1L0A0D7D6D5D4D3D2D1D0009一月2023第46页D4D3=00:为OCW2的标09一月2023第47页D2、D1、D0(L2、L1、L0)有两个用途:一是当特殊的中断结束命令时,L2、L1、L0指出要清除当前中断服务寄存器ISR中的哪一位;二是当OCW2给出特殊的优先级循环方式命令字时,L2、L1、L0指出循环开始时,哪一个中断的优先级最低(SL=1)。EOIRSL

说明

000001010011100101

110

111结束优先级自动循环方式无效设置中断优先级自动循环方式特殊优先级循环方式,按L2L1L0为最低优先级一般EOI命令,清除ISR对应位,非循环方式特殊EOI命令,清除ISR的L2L1L0指定位,自动循环一般EOI命令,清除ISR对应位,自动循环特殊EOI命令,清除ISR中L2L1L0指定位,自动循环09一月2023第47页D2、D1、D0(L2、L09一月2023第48页D4、D3=01:为OCW3标志,用来和OCW2区别;D6(ESMM):特殊屏蔽模式允许位。D5(SMM):特殊屏蔽模式位。⑶OCW3——工作方式操作命令字:设置和撤消特殊屏蔽方式、设置中断查询方式和设置8259A内部寄存器的读命令。

0

ESMMSMM01PRRRISA0D7D6D5D4D3D2D1D00ESMM

SMM

使SMM位无作用

10恢复原优先级,即复位特殊屏蔽方式

11设置特殊屏蔽方式

09一月2023第48页D4、D3=01:为OCW3标志09一月2023第49页D7:无用。D2(P):查询方式位。当CPU往8259A发出查询命令后,执行一条输入指令,得到查询字,表明当前外设有没有中断请求,当前优先级最高的中断请求到底是哪一个中断源。I----W2W1W0A0D7D6D5D4D3D2D1D001:有设备中断请求0:无设备中断请求指示当前中断请求的最高级

例如:当前优先级次序为IR5、IR6、IR7、IR0、IR1、IR2、IR3、IR4,而在IR2和IR6引脚上又有中断请求,得到如下的查询字:1××××110B09一月2023第49页D7:无用。D2(P09一月2023第50页系统中只有一片8259A,对初始化全嵌套方式,执行一条开中断指令STI后,遇到IR3请求中断,允许后,执行IR3的中断服务程序,IS3被置位。

7.4.38259A的编程【例7.1】关于中断全嵌套方式的例子:

在执行IR3的服务中,又有IR2申请中断,比IR3的优先级高,IR3中断处理程序执行了STI指令后,CPU响应IR。

IR2中断处理程序结束时,执行中断结束命令,使IS2复位,再执行中断返回指令,CPU才能返回IR3中断处理程序。09一月2023第50页系统中只有一片8259A09一月2023第51页IR3请求中断初始化开中断STI主程序中断结束命令关中断开中断中断返回IR2请求中断IR3中断处理程序开中断开中断IR2中断处理程序…关中断中断结束命令开中断中断返回09一月2023第51页IR3请求中断初始化开中断STI09一月2023第52页【例7.2】8259A单片系统,管理8级中断,边沿触发,全嵌套,设定0级中断请求对应的中断类型为8,8259的端口地址为20H。

则初始化程序如下:

MOV AL,13H;ICW100010011OUT 20H,ALMOV AL,08H;ICW200001000OUT 21H,ALMOV AL,01H;ICW400000001OUT 21H,AL分析:

ICW1

=00010011,ICW2

=00001000ICW4

=0000000109一月2023第52页【例7.2】8259A单片系统,09一月2023第53页【例7.3】两片8259级连,15级中断,主片偶地址口为20H,从片偶地址口为A0H,边沿触发,全嵌套中断,从片INT端接主片的IR2,主片中断类型为8~FH,从片为:70H~77H。进行初始化编程。

主片初始化:

MOV AL,11HOUT 20H,AL

MOV AL,08HOUT 21H,AL

MOV AL,04HOUT 21H,ALMOV AL,11HOUT 21H,AL从片初始化:

MOV AL,11HOUT 0A0H,ALMOV AL,70HOUT 0A1H,AL

MOV AL,02HOUT 0A1H,ALMOV AL,11HOUT 0A1H,AL09一月2023第53页【例7.3】两片8259级连,109一月2023第54页【例7.4】某一中断服务程序,要读取8259A的ISR,判断是否为硬件中断,若是则发非特殊中断结束命令,结束中断。设8259A的地址为20H、21H。

MOVAL,0BH;发读ISR命令(OCW3)OUT20H,ALNOPIN AL,20H;读ISRMOVAH,AL;保存当前优先级OR AL,AH;ISR=0?JNZ HW_INT;不为0则为硬件中断,转处理

MOV AH,0FFH ;非硬件中断设标志JMP S_I_FLAG09一月2023第54页【例7.4】某一中断服务程序,要09一月2023第55页HW_INT:IN AL,21H;读IMROR AL,AHOUT 21H,AL;写OCW1屏蔽当前优先级

MOV AL,20H ;发EOI命令

OUT 20H,ALS_I_FLAG:MOV INTR_FLAG,AH09一月2023第55页HW_INT:IN AL09一月2023第56页

7.1中断的概念

7.2中断的响应和中断处理

7.38086中断系统

7.4中断控制器825909一月2023第1页7.1中断的概念7.209一月2023第57页7.1中断(Interrupt)的概念CPU在正常执行程序时,由于内部或外部事件引起CPU暂时中止正在执行的程序,而去执行服务程序,完毕后,又返回到暂时被终止的程序继续执行的过程——中断。

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。分类:硬件中断(HardwareInterrupt)软件中断(SoftwareInterrupt)09一月2023第2页7.1中断(Interrupt09一月2023第58页7.1中断(Interrupt)的概念计算机科学术语.指处理机处理程序运行中出现的紧急事件的整个过程.程序运行过程中,系统外部、系统内部或者现行程序本身若出现紧急事件,处理机立即中止现行程序的运行,自动转入相应的处理程序(中断服务程序),待处理完后,再返回原来的程序运行,这整个过程称为程序中断;当处理机接受中断时,只需暂停一个或几个周期而不执行处理程序的中断,称为简单中断.中断又可分为屏蔽中断和非屏蔽中断两类.可由程序控制其屏蔽的中断称为屏蔽中断或可屏蔽中断.屏蔽时,处理机将不接受中断.反之,不能由程序控制其屏蔽,处理机一定要立即处理的中断称为非屏蔽中断或不可屏蔽中断.非屏蔽中断主要用于断电、电源故障等必须立即处理的情况.处理机响应中断时,不需执行查询程序.由被响应中断源向CPU发向量地址的中断称为向量中断,反之为非向量中断.向量中断可以提高中断响应速度。09一月2023第3页7.1中断(Interrupt09一月2023第59页7.1中断(Interrupt)的概念中断过程按照事件发生的顺序,中断过程包括

[4]

:①中断源发出中断请求;②判断当前处理机是否允许中断和该中断源是否被屏蔽;③优先权排队;④处理机执行完当前指令或当前指令无法执行完,则立即停止当前程序,保护断点地址和处理机当前状态,转入相应的中断服务程序;⑤执行中断服务程序;⑥恢复被保护的状态,执行“中断返回”指令回到被中断的程序或转入其他程序。上述过程中前四项操作是由硬件完成的,后两项是由软件完成的。09一月2023第4页7.1中断(Interrupt09一月2023第60页7.1中断(Interrupt)的概念CPU在正常执行程序时,由于内部或外部事件引起CPU暂时中止正在执行的程序,而去执行服务程序,完毕后,又返回到暂时被终止的程序继续执行的过程——中断。7.1.1中断的基本概念

中断源的概念:通常在计算机系统中有多个外部设备并行工作,或存在多个事件,它们都可以向CPU发申请,这些外部设备或事件就称为中断源。

1.中断概念:当外设需要服务或事件发生时,向主机发出“请求”信号,CPU暂停当前正在执行的程序,而转去为请求服务的外设或事件进行服务,待服务完毕后又自动返回到暂时被终止的程序继续执行的过程。09一月2023第5页7.1中断(Interrupt09一月2023第61页2.中断的作用

⑴实现CPU与多台I/O设备并行工作。若CPU与设备串行运行,则CPU效率低下。启动启动启动CPU设备完成完成

查询等待(t)查询等待查询等待CPU与设备串行运行示意图⑵实现实时处理。如压力过大、温度过高等情况等。

⑶故障处理。如电源掉电及软、硬件故障等,提高了计算机系统的可靠性。

09一月2023第6页2.中断的作用⑴实09一月2023第62页⑷实现人机对话。操作人员通过控制台发命令,对系统进行随机干预。⑸实现多机系统中各主机间的联系。实现多机系统中,各个处理机之间的信息交流和任务切换。3.中断系统的功能

⑵实现优先排队。响应优先级最高的中断请求。⑶实现中断嵌套。当CPU响应某一中断并进行处理时,若有优先级更高的中断源发出申请,则响应。⑴实现中断和返回。CPU判断中断源,转入相应中断处理程序,处理完毕后返回原断点,继续执行。

09一月2023第7页⑷实现人机对话。操作09一月2023第63页⑴处理机内部中断:如零作除数,为调试程序设置的断点等。8.1.2中断源类型

⑶数据通道中断:如磁盘、磁带等。⑵I/O设备中断:如键盘、打印机等输入输出设备引起的中断。⑷实时时钟中断:如外部时钟电路、内部定时电路等引起的中断。⑸故障源:如电源掉电等。磁带等。⑹软中断:在程序中,用命令设置的中断。09一月2023第8页⑴处理机内部中断:如09一月2023第64页1.软件查询方式7.1.3中断优先排队(优先权)

中断源0INTR

≥1

中断源1中断源2中断源3中断源4中断源5中断源6中断源7各中断请求信号“或”操作后作为INTR信号。当有中断源发出请求时,INTR=1。CPU响应中断后,进入中断处理程序,先从左到右逐位检查状态,先被查询到的中断申请先得到服务。09一月2023第9页1.软件查询方式7.1.3中断09一月2023第65页2.硬件方式——硬件优先权排队电路⑴多线请求优先权排队电路。

&

&

&

&

&

&

INTR0

INTR1

INTR2

INTR2’INTR1’

INTR0’

I/O设

备申请

多线请求优先权排队电路

⑵多线请求,判优响应。

Intel8259——可编程中断控制器,用来接收、屏蔽、判优、传递中断请求,功能强大,应用方便。

如INTR1’有请求,则INTR2’被封锁。09一月2023第10页2.硬件方式——硬件优先权排队电09一月2023第66页7.2中断处理

1.中断响应的条件——三个:

⑴中断源有中断请求。

7.2.1中断响应

⑵CPU允许中断。中断允许标志IF为1⑶一条指令执行完毕。

2.中断响应过程

⑴中断源的识别。

⑵保存中断现场和转向中断服务程序。现场——断点地址、条件码、屏蔽字、通用寄存器中的内容和状态位等等。压入堆栈中保存,由硬件直接控制执行,称为中断隐指令。

09一月2023第11页7.2中断处理1.中断响09一月2023第67页7.2.2中断处理1.中断的处理过程⑴关中断。目的:CPU不响应更高级的中断申请。

⑵保存断点和现场。即将现行状态字和断点地址相继压入堆栈。目的:在中断处理完后返回主程序时,恢复原程序运行状态。⑶开中断。目的:允许更高级中断请求能够及时得到响应,实现中断嵌套。

⑷转入中断服务程序。目的:完成的最终目的。

⑸退出中断。返回到主程序的执行。

09一月2023第12页7.2.2中断处理1.中断的09一月2023第68页2.中断服务程序中断处理过程流程图关中断恢复现场开中断开中断转入中断服务程序执行中断服务程序N取下一条指令YN执行一条指令结束有中断?Y保存断点、保护现场关中断09一月2023第13页2.中断服务程序中断处理过09一月2023第69页3.多重中断处理多重中断:在处理某一中断过程中又发生了新的中断,而中断该服务程序的执行,又转去新的中断处理。——中断嵌套。3级中断服务主程序主程序kk+11级中断服务主程序mm+1n-12n-10n-8n-6n-4n-2nSPm+1(IP)m+1(CS)PSWmSP两级嵌套的情况:k+1(IP)k+1(CS)PSWkSP09一月2023第14页3.多重中断处理多重中断09一月2023第70页1.内部中断⑴单步中断,中断号为01H。当TF为1时,每执行一条指令后立即产生1号中断。7.38086中断系统

7.3.18086的中断分类:内部中断和外部中断。

⑵断点中断,03H。用在程序调试中设置断点。⑶溢出中断,04H。若OF=1,则执行INTO指令,INTO指令经常安排在运算指令之后。⑷除数为0中断,0H。当除法指令所得商大于机器能表示的最大值,则立即产生0号中断。

⑸指令中断,即CPU执行INTn指令。09一月2023第15页1.内部中断⑴09一月2023第71页2.外部中断:分为非屏蔽中断和可屏蔽中断,分别通过NMI和INTR引入。

⑴非屏蔽中断:NMI引脚引入。不受IF的影响,用于处理紧迫事件,如掉电、存储器错误或总线极性错误等紧急事态。中断号2。CPU在执行NMI中断服务时不允许响应INTR引脚上出现的中断请求。⑵可屏蔽中断:通过CPU的INTR引脚引入。特点:①请求经中断控制器判优后再送往CPU;②CPU可通过对中断标志位IF置位或复位来允许或禁止INTR请求;③由中断控制器向CPU提供中断类型码;④可屏蔽中断允许嵌套。09一月2023第16页2.外部中断:分为非屏蔽中断和可09一月2023第72页8086中断系统的各中断源分类示意图

中断逻辑INTn指令非屏蔽中断NMIINT2INT0除数为0INT1单步

INT3断点INT4溢出8259A中断

控制器INTR

IR0IR1

IR7……优先级别:除单步中断外,所有内部中断的优先级最高,其次为不可屏蔽中断、可屏蔽中断,单步中断的优先级最低。09一月2023第17页8086中断系统的各中断源分类示09一月2023第73页7.3.2中断向量和中断向量表

除数为0中断单步中断非屏蔽中断断点中断溢出中断IPLIPHCSLCSH0000H0004H0008H000CH0010H0014H007FH0080H03FCH03FFH类型0类型1类型2类型3类型4类型IFH类型FFH专用中断系统保留中断27个用户使用每个中断向量占4个字节,256个中断向量共占1K个单元。

09一月2023第18页7.3.2中断向量和中断向量09一月2023第74页1.8086硬件中断的响应过程⑴CPU读取中断类型码并存入暂存器;⑵标志寄存器值压栈保护;⑶IF和TF清零,即禁止单步执行中断服务程序;⑷保存断点,即将断点地址(CS,IP)压栈保护;⑸根据中断类型码从中断向量表中取出中断向量,转入中断服务程序执行。7.3.38086硬件中断的响应时序

中断执行示意图如下:09一月2023第19页1.8086硬件中断的响应过程09一月2023第75页执行下一条指令NTF=1?无内部中断?结束当前指令?有Y有NMI?N无取中断类型码Y有有INTR?IF=1?YN返回断点①

开中断执行中断服务程序关中断标志寄存器入栈TEMP=TF(暂存)清除IF、TF标志断点(CS,IP)入栈取中断向量进入中断服务程序①

关中断恢复现场,恢复断点开中断,返回09一月2023第20页执行下一条指令NTF=1?无内部09一月2023第76页2.8086中断响应总线周期说明:第一个总线周期通知外设CPU准备响应中断,外设备好中断类型码;第二个总线周期CPU接收中断类型码;共用7个总线周期完成。软件中断和NMI共用5个总线周期。T1T2T3T4TITITIT1T2T3T4三个空闲状态CLKALED0~D7中断类型码INTA09一月2023第21页2.8086中断响应总线周期09一月2023第77页软件中断有如下特点:

1.INTn指令,中断类型码是n。7.3.4软件中断

3.软件中断不受IF的影响。2.不执行中断响应总线周期,不读取中断类型码。5.软件中断没有随机性,中断指令引起的,事先知道的。4.可进行中断嵌套,即可以响应非屏蔽中断;也可响应屏蔽中断的高优先级请求。09一月2023第22页软件中断有如下特点:09一月2023第78页7.4中断控制器8259A

7.4.18259A的引脚信号、编程结构和工作原理

芯片引脚信号CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GND28272625242322212019181716151234567891011121314VCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A逻辑图8259AD7~D0CSRDWRA0SP/ENINTCAS0CAS1CAS2INTAVCCGNDIR7~IR0可对8个中断源实现优先级控制

9片对64个中断源实现优先级控制

可编程设置不同工作方式向x86提供不同中断类型码09一月2023第23页7.4中断控制器8259A09一月2023第79页1.8259A的外部引脚信号

VCC和GND是电源和地,接+5V。

D7~D0:8根数据引线。D7~D0和数据总线的低8位相连,实现和CPU的数据交换。CS:片选信号。低电平有效,系统中地址总线经过译码后与其相连。用于选择芯片。INT:中断请求引线,它与CPU的INTR相连,以向CPU发出中断请求信号。INTA用来接收来自CPU的中断应答信号。RD:读允许信号。低电平有效,通知8259A将被访问的端口的内容送往数据总线。09一月2023第24页1.8259A的外部引脚信号V09一月2023第80页A0:地址线,选择8259A的端口,8259A有一个偶和一个奇地址,偶地址低,奇地址高。

IR7~IR0:来自I/O设备的中断请求信号。

CAS2~CAS0:级连信号,用于指示从片的标识。SP/EN:双向,若=1时,则8259A为主片,若=0时,8259A为从片。在8086系统中,只用低8位数据线进行连接,需用地址线A1与8259A的A0连接,用两个相邻的偶地址来作为8259A的端口地址。

09一月2023第25页A0:地址线,选择8259A的端09一月2023第81页2.8259A的结构和工作原理CAS2CAS1CAS0SP/EN8259A芯片内部结构数据总线缓冲器读/写逻辑级连缓冲/比较器控制逻辑当前中断服务寄存器(ISR)优先权裁决电路(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)…IR0IR1…IR7INTD7~D0RDWRA0CSINTA09一月2023第26页2.8259A的结构和工作原理C09一月2023第82页☆中断请求寄存器IRR:保存IR0~IR7中断请求信号,某位=1表示对应的IRi有中断请求

☆中断服务寄存器ISR:保存所有正在服务的中断源,某位=1表示对应的IRi中断正在被服务

☆中断屏蔽寄存器IMR:存放中断屏蔽字,某位=1表示对应的IRi输入被屏蔽

☆中断优先权判别电路:确定是否向CPU发出中断请求。☆级连逻辑:当引入的中断超过8级时,用多片8259A级联,构成主从关系。09一月2023第27页☆中断请求寄存器IRR:保存IR09一月2023第83页⑵

工作原理。

8259A对中断请求的处理过程:

当某IRi有效时,IRR相应位置1若有效的IRi未被屏蔽,则向CPU发出中断请求检测到第1个INTA#信号后,ISRi=1,IRRi=0

检测到第2个INTA#信号后,把ISRi=1中最高优先级的中断类型码放到DB上若工作在AEOI方式,在第2个INTA#结束时,使ISRi复位;否则由CPU发出EOI命令使ISRi复位09一月2023第28页⑵工作原理。8259A对中断09一月2023第84页3.8259A的工作方式

⑴设置优先级的方式:有全嵌套、特殊全嵌套、优先级自动循环和优先级特殊循环等4种优先级方式。☆全嵌套方式:IR0的级别最高,IR2的级别次之,……,IR7的级别最低。加电后8259A的默认方式,默认优先级顺序从高到低为IR0~IR7

IR7IR6IR5IR4IR3IR2IR1IR076543210最低级最高级09一月2023第29页3.8259A的工作方式09一月2023第85页☆特殊全嵌套方式:用在多片8259A级连的系统中。主片8259A工作在特殊全嵌套方式。对来自同一从片的较高优先级请求也会开放。☆优先级自动循环方式:一个中断源受到中断服务以后,它的中断优先级自动降为最低。IR7IR6IR5IR4IR3IR2IR1IR076543210最低级最高级01010000ISRiIR4的服务结束以前21076543最高级最低级IR7IR6IR5IR4IR3IR2IR1IR001000000IR4的服务结束以后09一月2023第30页☆特殊全嵌套方式:用在多片82509一月2023第86页☆普通屏蔽方式:可通过编程设置操作命令字OCW1(屏蔽寄存器)屏蔽不需要响应的中断。也可以撤消⑵屏蔽中断源的方式:普通屏蔽和特殊屏蔽方式。☆特殊屏蔽方式:当CPU正在处理某级中断时,要求仅对本级进行屏蔽,而允许其它优先级高的或低的中断进入系统。☆优先级特殊循环方式:8个中断优先级自动循环。通过对8259A的操作命令字OCW2来设置的。09一月2023第31页☆普通屏蔽方式:可通过编程设置操09一月2023第87页☆中断自动结束方式:系统一进入中断过程,在第二个中断响应信号结束时,ISR相应位清0。因不保留当前正在服务的中断的状态,故AEOI不能用于中断嵌套方式⑶

结束中断处理的方式:当IRi中断被服务时,ISRi=1。当服务结束后,则必须清零ISRi位。是通过向8259A发出中断结束命令(EOI命令)实现的。有三种中断结束方式:自动EOI(AEOI)——中断自动结束方式非指定EOI(NSEOI)——一般中断结束方式指定EOI(SEOI)——特殊的中断结束方式

09一月2023第32页☆中断自动结束方式:系统一进入中09一月2023第88页☆一般中断结束方式:用于普通全嵌套方式的情况。由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。☆特殊的中断结束方式:用于优先级自动循环或优先级特殊循环方式中。通过对8259A的OCW2来实现。由CPU发出一条特殊的中断结束命令,命令中指出所要复位的ISR的位号。09一月2023第33页☆一般中断结束方式:用于普通全嵌09一月2023第89页⑷连接系统总线的方式:缓冲方式和非缓冲方式。☆

缓冲方式:多片8259A通过总线缓冲器和数据总线连接,即为缓冲方式。

09一月2023第34页⑷连接系统总线的方式:缓冲09一月2023第90页☆非缓冲方式:相对于缓冲方式而言的。当系统中只有一片或很少几片8259A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论