《《中断控制接口》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《中断控制接口》PPT课件.ppt(31页珍藏版)》请在三一办公上搜索。
1、第六章 中断控制接口,2011/10 东北大学计算机系统研究所,第六章 中断控制接口,6.1 中断系统概述,6.2 8259A中断控制器,习 题,外部中断:可屏蔽中断和非可屏蔽中断。内部中断:除法错等中断,软中断。,INT n 指令,中断逻辑,非屏蔽中断请求,8259,IRQ,IRQ,IRQ,IRQ,IRQ,IRQ,IRQ,IRQ,5,1,2,3,4,0,6,7,INTR(080FH),NMI(2),(70H77H),单 步(1),断 点(3),溢 出(4),TF,IF,6.1.1 中断请求与中断源,6.1 中断系统概述,除法错(0),实现中断嵌套:CPU在处理低级中断时,若出现更高级的中断请
2、求,应暂停对较低级的中断的处理,转去处理较高级的中断。,6.1 中断系统概述,实现中断与返回:能够响应中断,转到相应的中断服务程序,处理结束后能够返回到断点处。,实现优先级排队:多个中断源同时发出中断请求时,中断系统能够按优先级依次进行处理。,6.1.2 中断系统的功能,CPU的中断是开放的:CPU只有在标志寄存器中的IF标志为1时才对外部中断请求信号(INTR)进行响应。CPU可通过STI、CLI指令对IF标志置1或清0。,6.1 中断系统概述,有中断请求信号:主要指外部中断,如INTR、NMI。,中断请求没有被屏蔽:每个中断源都可以在CPU的控制下发出中断请求信号(INTR),如8250的
3、IER寄存器和OUT0、OUT1信号,8255A的PC2、4、6以及8259的IMR。,6.1.3 中断响应-中断系统响应中断的条件,CPU在现行指令执行完毕时才响应中断:满足以上条件的情况下,关中断:CPU响应中断后,首先将标志寄存器入栈,然后关闭中断(IF置0),以防止 在保存断点和保护现场之前再次响应中断。保存断点:将CS、IP推入堆栈,以保证中断结束时返回到断点处。根据中断向量(CPU发中断响应信号时获得的)查询中断向量表,得到中断服务子程序的首地址,并转去执行中断处理程序。,6.1 中断系统概述,6.1.3 中断响应-CPU中断响应过程,6.1 中断系统概述,IF=1,IF=1,IF
4、=0,CS,IP,CS,IP,堆栈,中断向量表,CS,IP,CS,IP,CS,IP,0,1,2,CS,IP,中断号(例如 2),到CS:IP取出指令,转入执行中断程序,CPU中断响应过程模拟,PCK:RAM奇偶错。NPI:8087异常。I/O CHCK:I/O通道奇偶错。,INT n 指令,中断逻辑,INTR,NMI,除法错,单 步,断 点,溢 出,OF,IF,LS74,Q,XD,7,D,WRTNMIREG,CK,+5V,RESET,PCK,NPI,I/O CHCK,ENABLE/OCK,(OUT 80H A0H),6.1 中断系统概述,6.1.4 PC机中断系统,INT n 指令,中断逻辑,
5、非屏蔽中断请求,8259,IRQ,IRQ,IRQ,IRQ,IRQ,IRQ,IRQ,IRQ,5,1,2,3,4,0,6,7,INTR(080FH),NMI(2),除法错,(70H77H),单 步,断 点,溢 出,OF,IF,计时器,键盘,级联,COM2,COM1,LPT2,软盘,LPT1,实时时钟,硬盘,IRQ,14,IRQ,8,8259(2),(1),查出其它的中断源,6.1 中断系统概述,6.1.4 PC机中断系统,6.1 中断系统概述,0000:0000H,0000:0003H,0000:0004H,IP,CS,IP,CS,IP,CS,IP,CS,0000:0007H,0000:0008H
6、,0000:000BH,0000:000CH,0000:03FCH,0000:03FFH,中断0,中断1,中断2,中断3,中断255,中断相量表,中断相量:中断子程序的首地址,开机或者复位时由BIOS将10H1FH号中断的首地址写入表中。,6.1 中断系统概述,中断相量表的初始化,执行引导程序时由操作系统将20H2FH号中断的首地址写入表中。,用户应用程序中的中断服务子程序的首地址,由主程序通过INT 21H和INT 27H指令将其写入表中。,中断程序一般都常驻内存。,中断描述符表IDT,8字节,中断0的门,中断1的门,中断2的门,IDTR,GDT,门描述符(中断描述符),偏移量1631,访问
7、字节,选择子,偏移量015,6.1 中断系统概述,调用门:允许较低级的程序调用(CALL)较高级的程序(如操作系统)。(在GDT中),任务门:允许从特权级较低的任务切换(CALL或中断,如按时间片)到特权级较高的任务。(在GDT、IDT中),陷阱门:所访问的是异常处理子程序。(在IDT中),中断门:用于访问中断处理程序。与陷阱门的区别是中断处理之前清IF,而陷阱门不管IF的状态。(在IDT中),6.1 中断系统概述,第六章 中断控制接口,6.2 8259A中断控制器,6.1 中断系统概述,习 题,6.2.1 8259A的引脚,8259A,D0D7,RD,WR,CS,A0,INT,INTA,.,
8、IRQ0,IRQ1,IRQ7,CAS0,CAS1,CAS2,级联,SP/EN,主从/缓冲,中断源,6.2 8259A中断控制器,6.2.2 8259A的内部结构及中断响应顺序,IRQ0,IRQ1,IRQ7,IRR,IMR,优先级分析器,ISR,比较器,ICW2,中断向量,INT,INTA,D07,6.2 8259A中断控制器,外部设备提出中断请求(IRQi)。中断请求被锁存在IRR中,并与IMR相“与”。经优先级分析器检出优先级最高的中断请求。由控制电路比较该中断请求与当前中断(CPU正在处理的)的优先级,判断是否能够进行嵌套。是则向CPU发出INT信号。CPU输出第一个INTA脉冲信号,将I
9、RR的对应位清0,并将ISR的对应位置1。,6.2 8259A中断控制器,6.2.2 8259A的内部结构及中断响应顺序,输出第二个INTA脉冲信号,8259A在这个周期将中断向量码输出到数据总线。CPU读取中断向量码,转到相应的中断处理程序。,INT,INTA,IRQ1,IRQ0,IRQ7,SP/EN,CAS0,CAS1,CAS2,INT,INTA,IRQ1,IRQ0,IRQ7,SP/EN,CAS0,CAS1,CAS2,INT,INTA,IRQ1,IRQ0,IRQ7,SP/EN,CAS0,CAS1,CAS2,主片,从片,INTA,INTR,6.2 8259A中断控制器,*8259A的级联,I
10、CW1,ICW2,ICW3,ICW4,OCW1,OCW2,OCW3,偶,奇,奇,奇,d4=1,IMR,奇,偶,偶,d4=0 d3=0,d4=0 d3=1,IRR,ISR,偶,偶,读IRR:MOV AL,00001010B OUT 20H,AL IN AL,20H,6.2 8259A中断控制器,6.2.3 8259A的程序设计-内部寄存器,ICW1,ICW2,ICW3,ICW4,OCW1,OCW2,OCW3,偶,奇,奇,奇,d4=1,IMR,奇,偶,偶,d4=0 d3=0,d4=0 d3=1,IRR,ISR,偶,偶,读ISR:MOV AL,00001011B OUT 20H,AL IN AL,2
11、0H,6.2 8259A中断控制器,6.2.3 8259A的程序设计-内部寄存器,ICW1,ICW2,ICW3,ICW4,OCW1,OCW2,OCW3,偶,奇,奇,奇,d4=1,IMR,奇,偶,偶,d4=0 d3=0,d4=0 d3=1,IRR,ISR,偶,偶,6.2 8259A中断控制器,6.2.3 8259A的程序设计-内部寄存器,读IMR:IN AL,21H,ICW1:ICW2:ICW3:,0,0,0,1,LTM,X,SNGL,IC4,1电平触发,0边沿触发,1单片使用,0级联使用,1要求ICW4,0不要ICW4,off7,off6,off5,off4,off3,0,0,0,s7,s6,
12、s5,s4,s3,s2,s1,s0,主片,1:连有从片;0:未连从片,中断向量高5位,6.2 8259A中断控制器,6.2.3 8259A的程序设计-内部寄存器,ICW3:ICW4:,0,0,0,0,0,ID2,ID1,ID0,0,0,0,SFNM,BUF,M/S,AEOI,1,从片,从片ID,1特殊完全嵌套方式,0非特殊完全嵌套方式,1 缓冲方式,0 非缓冲方式,1 本片为主片,0 本片为从片,1 自动 EOI,0 非自动 EOI,6.2 8259A中断控制器,6.2.3 8259A的程序设计-内部寄存器,OCW1:/IMR OCW2:,M7,M6,M5,M4,M3,M2,M1,M0,1:该
13、中断请求被屏蔽;0:该中断请求开放,R,SL,EOI,0,0,L2,L1,L0,选择一个中断级,1:优先级自动循环,0:优先级非自动循环,1:L0L2有效,0:L0L2无效,ISR对应位复位,6.2 8259A中断控制器,6.2.3 8259A的程序设计-内部寄存器,OCW3:,0,ESMM,SMM,0,1,P,RR,RIS,00=无操作,1:查询命令,01=无操作,10=读IRR,11=读ISR,00=无操作,01=无操作,10=取消指定的屏蔽,11=设置指定的屏蔽,0:非查询命令,6.2 8259A中断控制器,6.2.3 8259A的程序设计-内部寄存器,6.2 8259A中断控制器,6.
14、2.4 8259A在IBM PC系列机中的应用,IBM PC/AT的中断源,IBM PC/AT中8259A的初始化,;初始化主控8259A MOV AL,11H;ICW1,8259A级联使用,边沿检测 OUT 20H,AL MOV AL,08H;ICW2,设置中断向量的高5位,OUT 21H,AL;IRQ0IRQ7分别对应INT08H到0FH MOV AL,04H;ICW3,在IRQ2上接有一从属8259A OUT 21H,AL MOV AL,01H;ICW4,指定非AEOI方式 OUT 21H,AL,6.2 8259A中断控制器,6.2.4 8269A在PC机中的应用-IBM PC/AT中8
15、259A的主片初始化,6.2 8259A中断控制器,6.2.4 8269A在PC机中的应用-IBM PC/AT中8259A的从片初始化,;初始化从属8259A MOV AL,11H;ICW1,8259A级联使用,边沿检测 OUT 0A0H,AL MOV AL,70H;ICW2,设置中断向量的高5位,OUT 0A1H,AL;IRQ8IRQ15分别对应 INT70H77H MOV AL,02H;ICW3,该从控制器接在主控制器的 IRQ2上 OUT 0A1H,AL MOV AL,01H;ICW4,指定非AEOI方式 OUT 0A1H,AL,第六章 中断控制接口,6.1 中断系统概述,6.2 8259A中断控制器,习 题,习 题,什么是中断?86系列CPU响应中断的条件是什么?86系列CPU响应中断时,硬件自动完成哪些工作?外部完成哪些工作?中断向量表的作用是什么?中断号为05H的中断的中断服务子程序的首地址如何得到,CPU如何转向执行中断子程序?在PC系列机中主要的中断源有哪些?试述86系列CPU响应中断而转入中断服务程序的过程。,习 题,软中断和硬中断有什么区别?什么是EOI命令?什么是8259A的自动EOI方式?编写一段程序屏蔽IRQ3和IRQ5上的中断请求,但不允许改变其它中断请求。编写一段程序读出ISR的内容。8259A 如何识别4个ICW命令和3个OCW命令?,