《第6章输入输出与中断.ppt》由会员分享,可在线阅读,更多相关《第6章输入输出与中断.ppt(78页珍藏版)》请在三一办公上搜索。
1、第6章 输入输出和中断控制,6.1 输入/输出接口概述,CPU和外设之间必须要设置输入/输出接口(I/O接口),作为CPU与外设进行信息交换的桥梁。,CPU,接口电路,I/O设备,接口是一组电路,是CPU与输入输出设备等外设之间协调动作的控制电路。,6.1.1 输入/输出接口的功能,(1)I/O地址译码与设备选择,所有外设都通过I/O接口挂接在系统总线上,在同一时刻,总线只允许一个外设与CPU进行数据传送。,(2)信息的输入/输出,通过I/O接口,CPU可以从外部设备输入各种信息,也可将处理结果输出到外设;CPU可以通过向I/O接口写入命令字来控制I/O接口的工作,还可以随时监测与管理I/O接
2、口和外设的工作状态;I/O接口还可以通过接口向CPU发出中断请求。,(3)命令、数据和状态的缓冲与锁存,因为CPU与外设之间的时序和速度差异很大,为了能够确保计算机和外设之间可靠地进行信息传送,要求接口电路应具有信息缓冲能力。接口不仅应缓存(暂时存留)CPU送给外设的信息,也要缓存(暂时存留)外设送给CPU的信息。以实现CPU与外设之间信息交换的同步。,(4)信息转换,I/O接口还要实现信息格式变换、电平转换、码制转换、传送管理以及联络控制等功能。,6.1.2 CPU与输入/输出接口之间的信息,CPU与I/O设备之间传输的信息可分为以下三种:,(1)数据信息 CPU和外设交换的基本信息就是数据
3、,分为数字量、模拟量、开关量。(2)状态信息 状态信息反映了当前外设所处的工作状态,是外设发给CPU的用来协调两者之间的操作。如READY、BUSY。(3)控制信息 控制信息是CPU发给外设的,以控制外设的工作。如外设的启动信号和停止信号。,注意,数据信息、状态信息和控制信息是属于不同性质的信息,需要分别传送。,一个简单的I/O接口内部包含:数据端口、状态和控制端口。,CPU通过数据端口从外设读入数据或向外设输出数据 从状态端口读入设备的当前状态 通过控制端口向外设发出控制命令 一个I/O接口可能仅包含其中的一类或两类端口,当然也可能包含全部三类端口。,端口,I/O接口通常设置有若干个寄存器,
4、用来暂存CPU和外设之间传输的数据、状态和控制信息,这些接口内部的寄存器通常称为端口,分别为数据端口、状态端口、控制端口。每个端口有一个独立的地址,CPU可通过端口地址来读/写它们。,6.1.3 输入/输出端口的编址方式,在微机系统中,CPU对外设的访问实际上是对外设接口电路中相应的I/O端口进行访问,CPU用相应的读写指令来对端口进行读或写。因此,对这些端口必须指定相应的地址码,这就是I/O端口的编址。I/O端口的编址通常有两种不同的方式:,1.I/O端口统一编址,又称为存储器映射编址方式,即把每个I/O端口都当作一个存储单元看待,按照存储单元的编址方式统一安排端口的地址。优点:可以用访问内
5、存的方法来访问I/O端口。由于访问内存的指令种类丰富、寻址方式多样,因此这种编址方式为访问外设带来了很大的灵活性。同时,I/O控制信号也可与存储器的控制信号共用,从而给应用带来了很大的方便。,缺点:外设占用了一部分内存地址空间,这就减少了内存可用的地址范围。此外从指令上不易区分当前是对内存进行操作还是对外设进行操作。Intel MCS-51等系列的单片微型计算机采用统一编址方式。,2.I/O端口独立编址,内存地址空间和外设地址空间是相互独立的。8086/8088系统的内存地址范围为00000H0FFFFFH,共1M空间,而外设端口的地址范围为0000H0FFFFH,共64K空间。这两个地址空间
6、相互独立,互不影响。CPU在寻址内存和外设时,使用不同的控制信号来区分当前是对内存操作还是对I/O端口操作。例如8086的M/IO#。指令系统中单独设置有专用的I/O指令。优点:将输入输出指令和访问存储器的指令明显区分开,使程序清晰,可读性好,而且I/O指令长度短,执行的速度快,也不占用内存空间;I/O地址译码电路较简单,缺点:必须有专门的IN和OUT指令,这些指令的功能没有访问存储器指令强,也增加了指令系统的规模。另外,CPU要能提供区分存储器和I/O的控制信号。,6.2 CPU与外设之间的数据传送方式,6.2.1 无条件传送方式,无条件传送方式主要用于外部控制过程的各种动作是固定的、且是已
7、知的,控制的对象是一些简单的、随时“准备好”的外设。也就是说,在这些设备工作时,随时都可以接收CPU输出的数据,或者它们的数据随时都可以被CPU读出。它不需要查询外设状态,直接使用IO指令与外设实现同步数据交换。采用这种控制方式的接口电路和控制程序都比较简单。它一般应用在工作速度慢,接口电路较简单的外设,如发光二极管、开关等,适合采用这种方式。,6.2.2 条件传输方式程序查询传送方式 在执行输入输出前,要先查询接口中状态寄存器的状态。输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪;输出时,状态寄存器的状态指示输出设备是否空闲。,查询传输方式(1)CPU从状态端口中读取状态字;(2)
8、CPU检测状态字的相应位是否满足“就绪”条件,如果不满足,则转(1),再读取状态;(3)如状态位表明外设已处于“就绪”状态,则通过数据端口传输数据。,特点:利用查询方式进行数据输入输出的过程中,CPU将大量时间耗费在读取和检测外设状态上,真正用于传送数据的时间很少,这样大大降低了CPU的效率。,例题:某输入接口的状态端口地址为86H,数据端口地址为87H,外部输入信息准备好状态标志为D71(D7=0表示外设未准备好)用查询方式写出从外设读入100字节数据并存于内存BUFFER开始的单元中。,LEA BX,BUFFER;将BUFFER偏移地址送BX MOV CX,100;字节数ABC:IN AL
9、,86H;读状态端口(目的读状态位)TEXST AL,80H;测试D7位是否为1(准备好)JZ ABC;若D7=0未准备好,循环检测 IN AL,87H;准备好,读数据端口 MOV BX,AL;存到内存BUFFER缓冲区 INC BX;修改地址指针 LOOP ABC;未送完,继续传送,1)输入指令IN,格式:IN OPD,OPS功能:从端口(地址为n或在DX中)输入位数据到AL或输入16位数据到AX。IN AL,40H;从40H端口读入一个字节送ALMOV DX,8F00H;将端口地址8F00H送DXIN AL,DX;从8F00H端口读入一个字节送AL,2)输出指令OUT,格式:OUT OPD
10、,OPS功能:从AL输出8位数据或从AX输出16位数据到端口(地址为n或在DX中)。OUT 40H,AL;将AL内容送40H端口MOV DX,8F00H;将端口地址8F00H送DXOUT DX,AL;将AL内容送8F00H端口,输入/输出指令在使用时应该注意,输入/输出指令对标志寄存器没有影响。端口地址大于255时,必须用DX指定端口地址。,6.2.3 中断控制方式,在中断传输方式下,当输入设备将数据准备好或者输出设备可以接收数据时,便可以向CPU发出中断请求,使CPU暂时停止执行当前程序,而去执行一个数据输入/输出的中断服务程序,与外设进行数据传输操作,中断程序执行完后,CPU又转回继续执行
11、原来的程序。中断方式的数据传输仍在程序的控制下执行,也可称为程序中断方式,适用于中、慢速外设的数据传输。,利用中断控制方式,CPU不必花费大量的时间去检测外设的状态,提高了CPU的效率。,6.2.4 直接存储器存取DMA方式,在高速的外设或成块交换数据的情况,采用程序控制方式进行数据的传输,是无法满足要求的。在这种情况下,采用DMA方式。,(DMA-Direct Memory Access),DMA方式是在外设与内存间建立起直接的通道,CPU不再直接参加外设和内存间的数据传输。但系统需要进行DMA传输时,将CPU对地址和数据及控制线的管理权交由DMA控制器进行控制,当完成了一次DMA数据传输后
12、,再将这个控制权还给CPU,这些工作都是由硬件自动实现的,并不需要程序进行控制。,6.3 中断技术,6.3.1 中断概述,中断概念:,CPU正在执行某一段程序的过程中,如果外界或内部发生了紧急事件,要求CPU暂停正在运行的程序转去执行这个紧急事件的处理程序,待处理完后再回到被停止执行程序的间断点,继续执行原来被打断了的程序,这一过程称为中断。,1.中断源及其分类,引起中断的事件就称为中断源。分为两大类:内部中断源:来自CPU内部,如:CPU执行指令时产生的异常、特殊操作引起的异常以及由程序员安排在程序中的INT n软件中断指令。中断的控制完全是在CPU内部实现的。外部中断源:来自CPU外部,如
13、:如键盘、打印机、定时器时间到、电源掉电、硬件出错等。利用CPU的两条中断输入信号线INTR和NMI来告诉CPU已发生了中断事件。,2.中断系统及其功能,中断请求,执行中断服务程序,中断过程示意图,断点:主程序中被暂停执行的指令的地址称为断点。,执行主程序,继续执行主程序,响应中断,返回主程序,1)实现中断响应及返回,当某个中断源发出中断请求时,CPU能根据条件决定是否响应该中断请求。若允许响应,则CPU必须在执行完现行指令后:保护断点和现场(即把断点处的断点地址和各寄存器的内容与标志位的状态推入堆栈);转到需要处理的中断服务程序的入口;清除中断请求触发器。当处理完中断服务程序后,再恢复现场和
14、断点地址,使CPU返回断点,继续执行主程序。,2)实现优先权排队,在实际系统中有多个中断源时,有可能出现两个或两个以上中断源同时提出中断请求的情况,而CPU同一时刻只能接受一个中断申请。这样就必须要设计者事先根据轻重缓急,给每个中断源一个中断优先权。当多个中断源同时发出中断申请时,CPU能找到优先级别最高的中断源,响应它的中断请求。在优先权级别最高的中断源处理了以后,再响应级别较低的中断源。,3)高级中断源能中断低级的中断处理,当CPU响应某一中断源的请求,在进行中断处理时,若有优先级别更高的中断源发出中断申请,则CPU要能中断正在进行中的中断服务程序,保留这个程序的断点和现场(类似于子程序嵌
15、套),响应高级中断,在高级中断处理完以后,再继续执行被中断的中断服务程序。这就形成了中断嵌套,如图6.12所示。两个中断形成的是两重中断(或两级嵌套),还可以进行多重中断(或多级嵌套)。,图6.12 中断嵌套过程,6.3.2 中断的处理过程,1.中断请求,外设需要CPU服务时,首先要发出一个有效的中断请求信号送到CPU的中断输入端。中断请求信号分为边沿触发和电平触发。一般来说,CPU能够即时予以响应的中断可以采用边沿触发,而不能即时响应的中断则应采用电平触发,否则中断请求信号就会丢失。8088/8086CPU的NMI为边沿触发,而INTR为电平触发。为了保证产生的中断能被CPU处理,INTR中
16、断请求信号应保持到该请求被CPU响应为止。CPU响应后,INTR信号还应及时撤除,以免造成多次响应。,2.中断响应,响应中断请求的3个条件:(1)一条指令执行结束。(2)CPU处于开中断状态。(3)没有总线请求。在复位(RESET)、总线保持(HOLD)等总线请求时,CPU不工作,当然就不能响应中断。中断响应时,CPU除了要向中断源发出中断响应信号外,还要自动完成下述3项工作:(1)关闭中断。CPU响应中断时,需立即关中断(使IF=0),以保证保护现场、断点和获取中断入口地址等工作不受影响。(2)保护现场和断点。将标志寄存器FR、断点的段基址(CS值)和偏移地址(IP值)压入堆栈,以保证中断结
17、束后能正常返回被中断的程序。(3)获得中断服务程序入口,转入中断服务程序。,3.中断处理,保护现场。保护现场是指把中断服务程序中要用到的寄存器的原内容压入堆栈保存起来。开中断。CPU响应中断时会自动关闭中断(使IF=0)。若进入中断服务程序后允许中断嵌套,则需用指令开中断(使IF=1)。执行中断处理程序。完成具体的中断处理。关中断。确保有效地恢复被中断程序的现场。恢复现场。就是把先前保护的现场进行恢复,也即把所保存的有关寄存器内容按入栈的相反顺序从堆栈中弹出,使这些寄存器恢复到中断前的状态。开中断返回。其操作正好是CPU硬件在中断响应时自动保护硬件现场和断点的逆过程,即CPU会自动地将堆栈内保
18、存的断点信息和标志信息弹出到IP、CS和FR中,保证被中断的程序从断点处继续往下执行。,6.3.3 8086/8088的中断,8086/8088系统中给每种中断都赋予一个中断类型码(或称中断号),编号为0255。CPU可根据中断类型码的不同来识别不同的中断源。,1.中断类型,8086/8088系统的中断源:外部中断:来自CPU外部内部中断:来自CPU内部,1)外部中断,也称为硬件中断,它是由外部硬件或外设接口产生的。8086/8088CPU为外部设备提供了两条中断信号线NMI和INTR。,(1)非屏蔽中断,由NMI引脚上出现的上升沿触发,它不受中断允许标志IF的控制,其中断类型码固定为2。CP
19、U接收到非屏蔽中断请求信号后,会在执行完当前指令后立即响应中断请求而进入相应的中断处理。非屏蔽中断通常用来处理系统中出现的重大故障或紧急情况。,(2)可屏蔽中断,从CPU的INTR端引入,高电平有效。可屏蔽中断受中断允许标志位IF的控制,只有当IF=1,CPU才会响应INTR请求。如果IF=0,即使中断源有中断请求,CPU也不会响应。在微型计算机中,外部设备的中断请求是通过中断控制器8259A来进行统一管理的,由8259A决定是否允许一个外设向CPU发出中断请求。,2)内部中断,内部中断是CPU执行了某些指令或者软件对标志寄存器中某个标志位进行设置而产生的,由于它与外部硬件电路完全无关,故也称
20、为软件中断。在8086/8088 CPU中,内部中断可分为5种类型:除法出错中断单步中断断点中断溢出中断中断指令INT n以上所述内部中断的类型码均是固定,除单步中断外,其他的内部中断不受IF状态标志影响。,(1)除法出错中断,在执行除法指令时,若发现除数为0或商超过了结果寄存器所能表示的最大范围,则立即产生一个中断类型码为0的中断。,(2)单步中断,8086/8088 CPU的标志寄存器中有一位陷阱标志TF。CPU每执行完一条指令都会检查TF的状态。若发现TF=1,则CPU就产生中断类型码为1的中断,使CPU转向单步中断的处理程序。单步中断广泛地用于程序的调试。,(3)断点中断,8086/8
21、088指令系统中有一条专用于设置断点的指令INT 3。CPU执行该指令就会产生一个中断类型码为3的中断。INT 3指令是单字节指令,因而它能很方便地插入程序的任何地方,专门用于在程序中设置断点来调试程序,它也称为断点中断,插入INT 3指令之处便是断点。在断点中断服务程序中,可显示有关的寄存器、存储单元等内容,以便程序员分析到断点为止程序运行是否正确。,(4)溢出中断,若算术指令的执行结果发生溢出(OF=1),则执行INTO指令后立即产生一个中断类型码为4的中断。溢出中断为程序员提供了处理运算溢出的手段,INTO指令通常和算术运算指令配合起来使用。,(5)中断指令INT n,INT n是用户自
22、定义的软件中断指令,CPU执行中断指令INT n也会引起内部中断,其中断类型码由指令中的n指定。,2.中断优先级顺序,80 x86微机可处理256个不同的中断请求。,80 x86将256个中断统一编号为0255,称作中断类型号,中断类型号是中断源的唯一标识。,在80 x86中断系统中,中断响应时自动获得中断类型号,并据此得到该中断服务程序入口地址,然后转去执行中断服务程序。,问题:中断类型号和中断服务程序的入口地址(中断向量)如何联系?,中断服务程序的入口地址叫做中断向量。,中断类型号和中断向量的对应关系,3.中断向量表,每个中断源都有一个中断类型码。中断类型码长度为一个字节,故8086/80
23、88最多允许处理256种类型的中断(中断类型码为0255)。中断向量表位于内存的最低1K字节(即内存中00000H003FFH区域),用以存放256个中断向量,即256个中断的服务程序入口地址。每个中断向量占4个字节,其中低位字(2个字节)存放中断服务程序入口地址的偏移量,高位字(2个字节)存放中断服务程序入口地址的段地址。中断向量在表中的存放地址=4中断类型码n取连续的4n和4n+l字节单元的内容装入IP,取4n+2和4n+3单元的内容装入CS,即可转入中断服务程序。,中断向量表,4.中断处理过程,1)中断类型码的获取,有两种方法获取中断类型码:对于软件中断:类型码为0、1、3、4的中断类型
24、码由系统自动形成;对于INT n指令,类型码由指令指定。对于硬件中断:若为NMI中断,则由系统自动产生中断类型码2;若为INTR中断,则CPU转入2个连续周期的中断响应周期,并在第2个中断响应周期采样数据总线,获取中断类型码。,2)中断处理,将类型码乘4,计算出中断向量的地址。硬件现场保护。即将标志寄存器F压入堆栈,以保护当前指令执行结果的特征。清除IF和TF标志,屏蔽新的INTR中断和单步中断。保存断点,即把断点处的IP和CS值压入堆栈,先压入CS值,再压入IP值。根据计算出来的地址从中断向量表中取出中断服务程序的入口地址(段和偏移),分别送至CS和IP中。转入中断服务程序执行。进入中断服务
25、程序后,首先要保护在中断服务程序中要使用的寄存器内容,然后进行相应的中断处理,现场恢复与中断返回。在中断返回前恢复保护的寄存器内容,最后执行中断返回指令IRET。IRET的执行将使CPU按次序恢复断点处的IP、CS和标志寄存器,从而使程序返回到断点处继续执行。,图6.17,中断处理顺序流程,64 中断控制器8259A,6.4.1 8259A的内部结构及引脚分配,IR0IR1IR2IR7,中断控制器8259A功能:(1)一片8259A可管理8个中断请求,具有8级优先权控制,并能把当前优先权最高的中断请求送到CPU的INTR端;(2)每一级都可以由编程进行屏蔽或开放(3)通过级连可以扩展至64级(
26、4)在中断响应周期,8259A可以提供相应的中断类型号;(5)通过编程可选择8259A的各种工作方式。,(2)中断服务寄存器ISR ISR是一个8位寄存器,用于寄存所有正在被服务的中断级。在中断响应的第一个INTA#周期,使对应的ISR位置1而IRR位清0。,(1)中断请求寄存器IRR 保存从IR0IR7来的中断请求信号,某位=1表示对 应的IRi有中断请求。,(4)优先权电路 用于识别和管理IRR中各位的优先权级别。能进行优先级判别,把未被屏蔽的最高优先级的中断请求送到CPU。,(3)中断屏蔽寄存器IMR IMR是一个8位寄存器,存放中断屏蔽字,某位=1表示对应的IRi输入被屏蔽,为0开放该
27、中断请求。可通过指令设置。,1.内部结构,(5)控制逻辑电路 控制逻辑电路根据CPU对8259A编程设定的工作方式管理8259A,负责发出INTR和接收INTA#,并使INTA#转化为内部所需的各种控制信号。(6)读/写电路 读/写电路可接收CPU对8259A的初始化命令字ICW和操作命令字OCW,并将其存入相应的端口寄存器,来规定8259A的工作方式和控制模式;也可以向CPU提供各端口寄存器的内容。(7)数据总线缓冲器 连接系统总线和8259A的内部总线,用于传输8259A的控制字或状态字,以及中断类型号。(8)级连缓冲/比较器 控制多片8259A的级连,扩展中断级。多片8259A级连时,一
28、片为主,其余为从。最多可9片级连,扩展64级中断。,2.8259A的引脚及其功能,CAS2CAS0:级连信号线,主片为输出,从片为输入;SP/EN:主从/允许缓冲线,具有双向功能;VCC,GND:分别接+5v电源和接地,A0:端口地址选择信号,输入,由8259A片内译码,选择内部寄存器。一片8259A有2个端口地址,一个为偶地址,另一个为奇地址。A0=0选择偶地址端口,A0=1选择奇地址端口。,3、8259A中断响应顺序,8259A对外部中断请求的响应和处理过程如下:(1)当中断请求输入线IRQ0IRQ7中有一条或多条变高时,则中断请求寄存器IRR的相应位置“1”。(2)未被屏蔽的中断请求信号
29、进入优先权判别器,优先级判定电路选出优先级最高的中断请求,控制电路由INT引脚向CPU发出中断请求信号。(3)如CPU是处于开中断状态,则在当前指令执行完后,用INTA#信号作为响应。(4)8259A在接收到CPU的INTA#信号后,使最高优先级的ISR位置“1”,而相应的IRR位清“0”。但在该中断响应周期中,8259A并不向系统总线送任何信息。,8259A响应中断的过程,(5)CPU(8086/8088和80X86)输出第二个INTA#信号,启动第二个中断响应周期。在此周期中,8259A向数据总线输送一个8位的中断类型号;CPU读取此类型号后将它乘以4(左移2位),即可从中断服务程序向量表
30、(即入口地址表)中取出中断服务程序的入口地址,包括段地址和段内偏移地址。据此CPU便可转入中断服务程序。,6.4.2 8259A的工作方式,1.中断嵌套方式,8259A有两种中断嵌套方式:(1)一般全嵌套方式 一般全嵌套方式是8259A最常用的工作方式,初始化后的默认工作方式。此时中断优先权的级别是固定的,IR0IR7递减。CPU响应中断时,屏蔽掉与它同级或低级的中断请求。,在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。8259A有两种中断嵌套方式:,8259A的中断管理功能很强,单片可以管理8级外部中断,在多片级联方式下最多可以管理64级外部中断,并且具有中断嵌套、中断优先权判优
31、、中断结束和中断触发等多种中断管理方式。,(2)特殊全嵌套方式和一般全嵌套方式基本相同,区别在于:在特殊全嵌套方式下,处理某一中断时,可实现对同级中断请求的响应。系统中只有单片8259A时,通常用全嵌套方式;而当8259A多片级连时,主片必须采用特殊全嵌套方式,从片可采用一般全嵌套方式。,1.中断嵌套方式,D.,主8259A,IR0IR1IR2IR3IR4IR5IR6IR7,一般全嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应,特殊全嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本从片封锁),C.,一般全嵌套
32、方式:主片的IR4的中断被服务时,这些中断将被封锁。,B.,特殊全嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。,A.,INT,E.,从8259A,INT,IR0IR1IR2IR3IR4IR5IR6IR7,一般全嵌套方式与特殊全嵌套方式的区别,去CPU,2.中断优先权方式,8259A中断优先权的管理方式有固定优先权方式和自动循环优先权方式两种。,(1)固定优先权方式在固定优先权方式中,IR7IR0的中断优先权的级别是由系统确定的。它们由高到低的优先级顺序是:IR0,IR1,IR2,IR7,其中,IR0的优先级最高,IR7的优先级最低。当有多个IRi请求时,优先权判决器(PR)将它们与当
33、前正在处理的中断源的优先权进行比较,选出当前优先权最高的IRi,向CPU发出中断请求INT,请求为其服务。,注:特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。,(2)自动循环优先权方式,在自动循环优先权方式中,IR7IR0优先权级别是可以改变的。其变化规律是:当某一个中断请求IRi服务结束后,该中断的优先权自动降为最低,而紧跟其后的中断请求IR(i1)的优先权自动升为最高,IR7IR0优先权级别按如下所示的右循环方式改变。,假设在初始状态IR0有请求,CPU为其服务完毕,IR0优先权自动降为最低,排在IR7之后,而其后的IR1的优先权升为最高,
34、其余依次类推。这种优先权管理方式,可以使8个中断请求都拥有享受同等优先服务的权利。,自动循环优先权方式,在自动循环优先权方式中,按确定循环时的最低优先权的方式不同,又分为普通自动循环方式和特殊自动循环方式两种。普通自动循环方式的特点是:IR7IR0中的初始最高优先级由系统指定,即指定IR0的优先级最高,以后按右循环规则进行循环排队。特殊自动循环方式的特点是:IR7IR0中的初始最低优先级,由用户通过置位优先权命令指定。,3.中断结束方式,当某一IRi中断被服务时,ISR中的相应位ISRi=1。当服务结束后,则必须清零该ISRi位。,(2)非自动中断结束方式EOI在中断服务程序结束的末尾(IRE
35、T指令之前)向8259A发出中断结束命令,清除ISR中的相应位,表示该级的中断服务程序已经结束。EOI命令有普通EOI命令和特殊EOI命令两种,分别对应一般全嵌套和特殊全嵌套方式。,因不保留当前正在服务的中断的状态,所以不能用于中断嵌套方式。,4.中断触发方式,边沿触发IRi出现上升沿表示有中断请求,5.中断屏蔽方式,(1)普通屏蔽方式 在普通屏蔽方式中,8259A的每个中断请求输入端都可以通过对应屏蔽位的设置被屏蔽,从而使这个中断请求不能从8259A送到CPU。8259A内部有一个8位的屏蔽寄存器IMR,它的每一位对应了一个中断请求输入。程序可以通过设置操作命令字 使IMR中任一位或几位置1
36、。当IMR某一位为1时,对应的中断请求就受到屏蔽,不能进入优先权裁决器。当IMR某一位为0时,对应的中断请求就被开放。,(2)特殊屏蔽方式,在有些场合中,希望一个中断服务程序能动态地改变系统的优先级结构。例如,在执行中断处理程序某一部分时,希望禁止较低级的中断请求,但是,在执行中断处理程序另一部分时,又能够开放比本身的优先级别较低的中断请求。为达到此目的,引入了特殊屏蔽方式。,在特殊屏蔽方式中,可在中断服务子程序中用中断屏蔽命令来屏蔽当前正在处理的中断,同时可使ISR中的对应当前中断的相应位清0,这样一来不仅屏蔽了当前正在处理的中断,而且也真正开放了较低级别的中断请求。在这种情况下,虽然CPU仍然继续执行较高级别的中断服务子程序,但由于ISR中对应当前中断的相应位已经清0,如同没有响应该中断一样。所以,此时对于较低级别的中断请求,8259A仍然能产生INT中断请求,CPU也会响应较低级别的中断请求。,特殊屏蔽方式允许低优先级中断请求中断正在服务的高优先级中断。,