
第六章-中断控制接口PPT课件.ppt
32页第六章 中断控制接口2011/10 东北大学计算机系统研究所2021/6/71第六章 中断控制接口6.1 中断系统概述6.2 8259A中断控制器习 题2021/6/72外部中断:可屏蔽中断和非可屏蔽中断内部中断:除法错等中断,软中断INT n 指令中断逻辑非屏蔽中断请求8259IRQIRQIRQIRQIRQIRQIRQIRQ51234067INTR(080FH)NMI(2)(70H77H)单 步 (1)断 点 (3)溢 出 (4)TF IF6.1.1 中断请求与中断源6.1 中断系统概述除法错(0)2021/6/73实现中断嵌套:CPU在处理低级中断时,若出现更高级的中断请求,应暂停对较低级的中断的处理,转去处理较高级的中断6.1 中断系统概述实现中断与返回:能够响应中断,转到相应的中断服务程序,处理结束后能够返回到断点处 实现优先级排队:多个中断源同时发出中断请求时,中断系统能够按优先级依次进行处理 6.1.2 中断系统的功能2021/6/74CPU的中断是开放的:CPU只有在标志寄存器中的IF标志为1时才对外部中断请求信号(INTR)进行响应CPU可通过STI、CLI指令对IF标志置1或清0。
6.1 中断系统概述有中断请求信号:主要指外部中断,如INTR、NMI 中断请求没有被屏蔽:每个中断源都可以在CPU的控制下发出中断请求信号(INTR),如8250的IER寄存器和OUT0、OUT1信号,8255A的PC2、4、6以及8259的IMR 6.1.3 中断响应-中断系统响应中断的条件 CPU在现行指令执行完毕时才响应中断:满足以上条件的情况下2021/6/75关中断:CPU响应中断后,首先将标志寄存器入栈,然后关闭中断(IF置0),以防止 在保存断点和保护现场之前再次响应中断 保存断点:将CS、IP推入堆栈,以保证中断结束时返回到断点处 根据中断向量(CPU发中断响应信号时获得的)查询中断向量表,得到中断服务子程序的首地址,并转去执行中断处理程序6.1 中断系统概述 6.1.3 中断响应- CPU中断响应过程2021/6/766.1 中断系统概述 IF=1 IF=1 IF=0 CS IP CS IP 堆栈中断向量表 CS IP CS IP CS IP 012 CS IP 中断号(例如 2)到CS:IP取出指令转入执行中断程序 CPU中断响应过程模拟2021/6/77PCK:RAM奇偶错。
NPI:8087异常I/O CHCK:I/O通道奇偶错INT n 指令中断逻辑INTRNMI除法错单 步断 点溢 出OF IFLS74QXD7DWRTNMIREGCK+5VRESETPCKNPI I/O CHCKENABLE/OCK(OUT 80H A0H)6.1 中断系统概述 6.1.4 PC机中断系统2021/6/78INT n 指令中断逻辑非屏蔽中断请求8259 IRQIRQIRQIRQIRQIRQIRQIRQ51234067INTR(080FH)NMI(2)除法错(70H77H)单 步断 点溢 出OF IF计时器键盘级联COM2COM1LPT2软盘LPT1实时时钟硬盘IRQ14IRQ88259(2)(1)查出其它的中断源6.1 中断系统概述 6.1.4 PC机中断系统2021/6/796.1 中断系统概述0000:0000H0000:0003H0000:0004HIPCSIPCSIPCSIPCS0000:0007H0000:0008H0000:000BH0000:000CH0000:03FCH0000:03FFH中断0中断1中断2中断3中断255中断相量表中断相量:中断子程序的首地址2021/6/710开机或者复位时由BIOS将10H1FH号中断的首地址写入表中。
6.1 中断系统概述中断相量表的初始化执行引导程序时由操作系统将20H2FH号中断的首地址写入表中用户应用程序中的中断服务子程序的首地址,由主程序通过INT 21H和INT 27H指令将其写入表中中断程序一般都常驻内存2021/6/711中断描述符表IDT8字节中断0的门中断1的门中断2的门IDTRGDT门描述符(中断描述符)偏移量1631访问字节选择子偏移量0156.1 中断系统概述2021/6/712调用门:允许较低级的程序调用(CALL)较高级的程序(如操作系统)在GDT中)任务门:允许从特权级较低的任务切换(CALL或中断,如按时间片)到特权级较高的任务在GDT、IDT中)陷阱门:所访问的是异常处理子程序在IDT中)中断门:用于访问中断处理程序与陷阱门的区别是中断处理之前清IF,而陷阱门不管IF的状态在IDT中)6.1 中断系统概述2021/6/713第六章 中断控制接口6.2 8259A中断控制器6.1 中断系统概述习 题2021/6/7146.2.1 8259A的引脚8259AD0D7RDWRCSA0INTINTA.IRQ0IRQ1IRQ7CAS0CAS1CAS2级联SP/EN主从/缓冲中断源6.2 8259A中断控制器2021/6/7156.2.2 8259A的内部结构及中断响应顺序IRQ0IRQ1IRQ7IRRIMR优先级分析器ISR比较器ICW2中断向量INTINTAD076.2 8259A中断控制器2021/6/716外部设备提出中断请求(IRQi)。
中断请求被锁存在IRR中,并与IMR相“与”经优先级分析器检出优先级最高的中断请求由控制电路比较该中断请求与当前中断(CPU正在处理的)的优先级,判断是否能够进行嵌套是则向CPU发出INT信号CPU输出第一个INTA脉冲信号,将IRR的对应位清0,并将ISR的对应位置16.2 8259A中断控制器6.2.2 8259A的内部结构及中断响应顺序 输出第二个INTA脉冲信号,8259A在这个周期将中断向量码输出到数据总线 CPU读取中断向量码,转到相应的中断处理程序2021/6/717INTINTAIRQ1IRQ0IRQ7SP/ENCAS0CAS1CAS2INTINTAIRQ1IRQ0IRQ7SP/ENCAS0CAS1CAS2INTINTAIRQ1IRQ0IRQ7SP/ENCAS0CAS1CAS2主片从片INTAINTR6.2 8259A中断控制器*8259A的级联2021/6/718ICW1ICW2ICW3ICW4OCW1OCW2OCW3偶奇奇奇d4=1IMR奇偶偶d4=0 d3=0d4=0 d3=1IRRISR偶偶读IRR:MOV AL,00001010B OUT 20H,AL IN AL,20H 6.2 8259A中断控制器6.2.3 8259A的程序设计-内部寄存器2021/6/719ICW1ICW2ICW3ICW4OCW1OCW2OCW3偶奇奇奇d4=1IMR奇偶偶d4=0 d3=0d4=0 d3=1IRRISR偶偶读ISR: MOV AL,00001011B OUT 20H,AL IN AL,20H6.2 8259A中断控制器6.2.3 8259A的程序设计-内部寄存器2021/6/720ICW1ICW2ICW3ICW4OCW1OCW2OCW3偶奇奇奇d4=1IMR奇偶偶d4=0 d3=0d4=0 d3=1IRRISR偶偶6.2 8259A中断控制器6.2.3 8259A的程序设计-内部寄存器读IMR:IN AL,21H2021/6/721ICW1: ICW2 :ICW3: 0001LTMXSNGL IC41电平触发0边沿触发1单片使用0级联使用1要求ICW40不要ICW4off7 off6 off5 off4 off3000s7s6s5s4s3s2s1s0主片1:连有从片;0:未连从片中断向量高5位6.2 8259A中断控制器6.2.3 8259A的程序设计-内部寄存器2021/6/722ICW3: ICW4: 00000ID2ID1ID0000SFNM BUFM/S AEOI1从片从片ID1特殊完全嵌套方式0非特殊完全嵌套方式1 缓冲方式0 非缓冲方式1 本片为主片0 本片为从片1 自动 EOI0 非自动 EOI6.2 8259A中断控制器6.2.3 8259A的程序设计-内部寄存器2021/6/723OCW1: /IMR OCW2: M7M6M5M4M3M2M1M01:该中断请求被屏蔽;0:该中断请求开放RSL EOI00L2L1L0选择一个中断级1:优先级自动循环0:优先级非自动循环1:L0L2有效0:L0L2无效ISR对应位复位6.2 8259A中断控制器6.2.3 8259A的程序设计-内部寄存器2021/6/724OCW3: 0ESMM SMM01PRR RIS00=无操作1:查询命令01=无操作10=读IRR11=读ISR00=无操作01=无操作10=取消指定的屏蔽11=设置指定的屏蔽0:非查询命令6.2 8259A中断控制器6.2.3 8259A的程序设计-内部寄存器2021/6/7256.2 8259A中断控制器6.2.4 8259A在IBM PC系列机中的应用IBM PC/AT的中断源IBM PC/AT中8259A的初始化2021/6/726;初始化主控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中8259A的主片初始化2021/6/7276.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 2021/6/728第六章 中断控制接口6.1 中断系统概述6.2 8259A中断控制器习 题2021/6/729习 题什么是中断?86系列CPU响应中断的条件是什么?86系列CPU响应中断时,硬件自动完成哪些工作?外部完成哪些工作?中断向量表的作用是什么?中断号为05H的中断的中断服务子程序的首地址如何得到,CPU如何转向执行中断子程序?在PC系列机中主要的中断源有哪些?试述86系列CPU响应中断而转入中断服务程序的过程。
2021/6/730习 题软中断和硬中断有什么区别?什么是EOI命令?什么是8259A的自动EOI方式?编写一段程序屏蔽IRQ3和IRQ5上的中断请求,但不允许改变其它中断请求编写一段程序读出ISR的内容8259A 如何识别4个ICW命令和3个OCW命令?2021/6/731部分资料从网络收集整理而来,供大家参考,感谢您的关注!。
