1 / 90

第六章 中断技术

第六章 中断技术. 中断请求. 中断响应. 中断服务. 中断结束. 中断处理. 第一节 中断系统. 一、中断基本概念 定义: CPU 穿插处理随机事件的过程。. 中断过程:. 中断请求: CPU 检测到有中断请求; 中断响应: 取得 中断类型号 、保存现场 ( 含 CS:IP) 、取得 中断服务程序入口地址 ,并置为 CS:IP ; 中断服务: 从 CS:IP 处执行,用 IRET 触发中断结束; 中断结束: 恢复现场 ( 含 CS:IP) 。. 回下页. 回 4 页. 二、中断系统 1 、中断系统组成.

iain
Download Presentation

第六章 中断技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第六章 中断技术

  2. 中断请求 中断响应 中断服务 中断结束 中断处理 第一节 中断系统 一、中断基本概念 定义:CPU穿插处理随机事件的过程。 中断过程: 中断请求:CPU检测到有中断请求; 中断响应:取得中断类型号、保存现场(含CS:IP)、取得中断服务程序入口地址,并置为CS:IP; 中断服务:从CS:IP处执行,用IRET触发中断结束; 中断结束:恢复现场(含CS:IP)。 回下页 回4页

  3. 二、中断系统 1、中断系统组成 由CPU中的中断机构、I/O系统中的中断控制器、OS中的中断服务程序管理机构组成。 (1)中断机构功能 自动检测多种中断请求(软件/硬件); 自动对产生的中断请求进行判优; 自动对中断请求进行响应; 自动实现中断屏蔽; 自动进行优先级管理,并支持中断嵌套处理。 转上页

  4. 全部中断 类型数*4 中断 类型号 偏移量 段地址 (2)中断控制器功能 自动检测、记录多个外部硬件中断请求; 自动对产生的中断请求进行排队、判优; 自动向CPU提出外部硬件中断请求; 根据要求自动实现中断屏蔽; 根据要求自动实现中断源的优先级管理。 (3)中断服务程序管理机构功能 管理中断向量表IVT(为中断机构取得中断服务程序入口地址提供机制)。 IVT的表项为中断服务程序入口 地址,可通过中断类型号检索。 回19页 转2页

  5. 2、中断类型—中断请求类型 回下页 回10页 回7页 回13页

  6. 外部硬件中断源1 请求 CPU INTR NMI 请求 中断 控制器 … 请求 不可屏蔽中断源 外部硬件中断源n 请求 (1)外部硬件中断 中断请求方法: CPU检测方法:检测其INTR引脚和标志REG的IF位。 (2)不可屏蔽中断 中断请求方法:请求信号送到CPU的NMI引脚上。 CPU检测方法:检测其NMI引脚(有效时间≥4TC),不检测标志REG的IF位。 转上页 回9页

  7. (3)软件中断 中断类型: CPU专用中断—除零、溢出、单步、断点等; BIOS中断—I/O控制、实用服务、特殊中断等; DOS中断—公开/未公开的系统功能调用; 自由中断—未定义(未使用)的中断。 中断请求方法:指令间、指令中或为INTn时产生。 CPU专用中断检测方法: --不检测标志REG的IF位 出错中断—指令执行状态电路在指令中做中断源; 调试中断—标志REG状态在指令间做中断源。 其他软件中断检测方法: --不检测标志REG的IF位 指令译码时(指令中),检测是否为INTn指令。 回11页 转5页

  8. 3、中断请求优先级管理 原则:中断机构按中断源类型采用静态优先级管理, 中断控制器可采用动态优先级管理。 结果:①CPU专用>NMI>外部硬件>BIOS>DOS>自由,即基本按中断类型号大小排序; ②应可使外部硬件各中断源服务机会均等。

  9. 中断控制器 CPU 请求 请求 检测 机构 判优 机构 检测 机构 响应 机构 中断源 ①可使部分 请求无效 如:门电路 ②可使请求 得不到响应 如:IF=0 4、中断屏蔽处理 所有中断源中,只有外部硬件中断可被屏蔽。 屏蔽效果: 中断机构可屏蔽外部硬件请求,CPU不响应请求; 中断控制器可屏蔽中断源,使其不参与判优。 屏蔽种类: 屏蔽方法:通过软件控制相应电路完成。 回24页 转6页

  10. 5、中断响应处理 实现功能:取得中断类型号、保存现场、转入中断服务程序。 响应时机:检测机构检测到中断请求后立即响应,不同类型中断请求在不同时侯检测。 (1)取得中断类型号 外部硬件中断:产生总线操作,通过DataBus从中断控制器取得(触发了中断控制器的中断响应); 其它中断:检测机构检测时已得到,无额外动作。 中断控制器的中断响应:当前请求作为正在处理请求、中断源被复位,向CPU提出的请求被复位等。 转5页

  11. (2)保存现场 硬件(非软件)实现标志REG及程序断点地址压栈。 程序断点地址--中断返回点地址 外部硬件中断:下条指令地址(当前CS:IP); 不可屏蔽中断:当前指令地址(当前CS:IP-x); CPU专用中断: 失效(如CPU出错中断)—当前指令地址; 陷阱(如CPU调试中断)—下条指令地址; 中止(如硬件故障)—不保存(需重启机器); 其他软件中断:下条指令地址。 (3)转入中断服务程序 产生总线操作,用刚取得的中断类型号查IVT或IDT,得到中断服务程序入口地址,将其置为CS:IP。 转7页

  12. 6、中断结束处理 实现:通过中断服务程序中IRET指令实现。 处理过程: IRET实现将保存现场时压栈的信息出栈,写入标志REG及CS和IP,某些CPU可进行附加的动作。 7、中断嵌套处理 中断机构/中断控制器一般允许中断响应后(中断结束前),响应/提出高优先级请求。 缺省处理:CPU在中断响应至中断结束间,将标志REG的IF位置为0,即不允许外部硬件中断嵌套,允许其它类型中断嵌套。 手工实现:中断服务程序可将标志REG的IF位在适当时候置为1,实现允许外部硬件中断嵌套。

  13. 时间到 检测 有请求 判优 新请求高 响应 说明:①不同类型中断检测时间不同; ②中断结束由中断服务程序的IRET指令触发完成,不属于中断机构硬件自动完成范围。 硬件自动完成: 检测 排队 判优 新请求高 向CPU提出请求 有响应操作 响应 优先级管理 结束 响应总线操作: 结束 优先级管理 有结束操作 8、中断系统工作原理综述 中断机构、中断控制器的3个工作段并行工作。 (1)CPU中断机构工作原理 (2)中断控制器工作原理 回下页 转5页

  14. 外设请求 请求5 请求1~3 请求4 嵌 套 中断 控制器 检→排→判→请 测 队 优 求 响 检→排→判→请 响 结→动态 结→动态 应 测 队 优 求 应 束 优先级 束 优先级 固定 检→判→响 检→判→响 结 结 优先级 测 优 应 测 优 应 束 束 嵌套 中断机构 软件请求 请求 请求 IVT/IDT 中断类型号→中断向量 中断类型号→中断向量 软件程序 屏蔽 屏蔽 中断1服务 中断2 服务 中断1 服务 时间 (3)中断系统工作原理 中断机构针对不同类型中断,检测时机不同。 转上页

  15. IVT 0000:03FF 255#中断 … 1#中断 0000:0004 段地址 偏移量 0#中断 0000:0000 三、中断向量表(IVT) 1、中断向量表 开始位置:从内存地址0000:0000开始; 表项内容:中断服务程序入口地址,4B大小; 表长度:1KB=256×4B。 2、信息装入 系统启动时已装入所有类型中断服务程序入口地址(未使用中断指向只有1条IRET指令的程序)。 3、中断程序入口地址的获取 段地址=(0+中断类型号×4+2) 偏移量=(0+中断类型号×4)

  16. 四、中断描述符表(IDT) 1、中断描述符表 开始位置:从IDTR内容所对应的主存地址开始; 表项内容:中断描述符,8B大小; 表长度:2KB=256×8B。 2、中断描述符 类型:任务门、中断门、陷阱门, 通过特征位(b40~b44)可区分类型。 3、中断描述符指针 指向IDT中的中断描述符的指针(主存地址)。 中断描述符指针=IDT基地址+中断类型号×8

  17. IDT GDT/LDT 代码段 中断门/陷阱门 段描述符 CS 中断类型号 7 0 … … 偏移 索引 选择符 属性 偏移 基地址 属性 边界 EIP 中断服务子程序 ×8 线性地址 IDTR 4、中断门/陷阱门入口地址的获取 中断门与陷阱门区别: 中断门处理时EFLAG的IF被自动复位,陷阱门不改变IF位状态,故中断门的优先级比陷阱门高。 中断门处理的中断源请求无嵌套。

  18. IDT GDT 任务门 TSS描述符 中断类型号 7 0 … … 基址 选择符 属性 偏移 基地址 段限 属性 TR TSS结构 ×8 线性地址 IDTR 5、任务门TSS结构入口地址的获取 采用任务门进行任务切换的优点: 被中断任务环境的进栈和中断任务环境的出栈均自动完成; 中断任务和被中断任务完全隔开。

  19. 第二节 Intel 8259A 8259A应具有的功能: ⑴自动检测、记录多个中断源(应可扩充)的请求; ⑵自动对中断请求进行判优; 包括同时产生的请求、先后产生的请求 ⑶自动实现中断屏蔽(可用软件控制); ⑷自动向CPU提出中断请求; ⑸被动向CPU提供最高优先级的中断源类型号; ⑹自动实现中断源的优先级管理; 有多种管理方式时,可用软件选择 ⑺被动接收并执行CPU命令—任何接口均应具备 转4页 回22页

  20. CPU侧引脚: CS; DB0~DB7、A0、RD和WR; INT、INTA; 级联引脚: SP/EN、 CAS0~CAS2。 一、8259A内部结构及其工作原理 1、8259A引脚 外设侧引脚: IR0~IR7; 回39页

  21. IRR:用于锁存中断请求(防止遗漏); ISR:CPU响应中断时置位,中断处理完时复位; IMR:用于屏蔽中断请求,通过CPU命令置位和复位。 2、8259A内部结构及工作原理 (1)向CPU提出中断请求⑷原理 —IRi→INT过程

  22. 中断屏蔽寄存器IMR 正在服务寄存器ISR 特殊屏蔽SMM … … … 中断请求寄存器IRR 中断服务优先编码器 IR0 ≥1 … 比B0 较B1 器B2 A>B或A≥B A0 A1 A2 中断请求优先编码器 … … INT … & IBR IR7 & & (2)中断请求检测与记录⑴原理 检测到请求IRR置位,ISR置位时IRR复位 说明:①IBR为最低优先级IRi的位寄存器,为两个编码器的编码基准; ②A2A1A0、B2B1B0为优先级编码,非IR号; ③SMM为特殊屏蔽信号,允许特殊屏蔽时为1。 回下页 回26页 回27页 回28页 转19页 回24页 回29页

  23. & IR0 IR7 IR1 IR6 IR2 S1 S0 设置IBR,可改变输出 IR5 IR3 11 并行输入 01 右移 00 保持 IR4 设置S1 S0 CP IBR I0 移位寄存器 74LS194 优先 编码器 74LS148 IR0&~IMR0 Y0 IR3 &~IMR3 I3 Y1 I4 移位寄存器 74LS194 IR4&~IMR4 Y2 IR7 &~IMR7 I7 (3)优先级编码器原理 8259A规则:为简化电路设计,从IR0→IR7→IR0的优先级为降序循环队列。 例:IR7优先级为0时,IR0为7、IR6为1; IR2优先级为0时,IR3为7、IR1为1。 优先级编码器电路示意图: 转上页

  24. 中断请求优先编码器(排队器)(IR0最高) ?? IR5 (IR7被 阻塞) IR7 IR6 IR2 (IR6、IR7 被阻塞) IR5 IR7 IR2 IR6 请求:无 IRR5复位 IRR2复位 时间 ISR2置位 ISR5置位 ISR2 复位 ISR? 复位 服务:无 比较器(判优器) INT为低 INT为低 INT为高 INT为高 INT=? INT=? (4)自动判优⑵原理 —优先级电路PR 中断请求编码器:负责尚未服务请求(含同时产生和先后产生的请求)的排队; 比较器:负责正在服务与尚未服务请求的判优。 回下页 回30页 转22页

  25. 排队与判优概念的含义: 排队—尚未服务的请求间欲获得中断服务时的优先级比较; 判优—尚未服务请求欲在正在服务请求中进行嵌套时的优先级比较,用于中断嵌套。 嵌套方式—即判优方式(比较器比较条件) 全嵌套 :比较器比较条件为A>B; 特殊全嵌套:比较器比较条件为A≥B。 (如:IR2请求改为IR5) 转上页

  26. 按自动排队规则处理 优先级:IR5>IR7 优先级:IR4>IR5和IR7 IR5 IR7 IR4 t IR4正在服务 ISR4=1,IRR4=0 IR?正在服务 (5)中断请求屏蔽⑶原理 包含正常屏蔽和特殊屏蔽两种手段。 正常屏蔽: 屏蔽中断源请求IRR,使其不参排队; 通过CPU命令,实现IMR的置位与复位。 特定屏蔽: 屏蔽正在服务请求ISR,使ISR不参与判优; 通过CPU命令,实现SMM的允许与禁止。 转22页 转9页

  27. 第一个INTA,CPU封锁总线(LOCK有效),8259A最高优先级请求的ISR相应位置位,IRR相应位复位;第一个INTA,CPU封锁总线(LOCK有效),8259A最高优先级请求的ISR相应位置位,IRR相应位复位; 第二个INTA,总线解锁,8259A将最高优先级请求的中断类型号送上DataBus总线,自动结束方式时ISR相应位复位,INT信号复位(参见自动判优原理)。 CPU取得外部硬件中断请求类型号的动作: 发送两个INTA信号。 (6)响应CPU中断原理 --含提供中断类型号⑸ CPU响应外部硬件中断请求条件: ①当前指令执行完毕;②EFLAG中IF=1; ③INTR信号有效。 8259A响应CPU中断的动作: 转22页

  28. (7)中断结束原理 —ISR复位的时机和方法 自动结束: 时机—接收到第二个INTA时; 方法—ISR中最高优先级IR位(刚被置位)复位; 效果—按“后产生请求优先”原则判优(嵌套)。 手工结束: 时机—接收到CPU中断结束命令(EOI)时; 方法— 不指定方式—ISR中最高优先级IR位复位 指定方式—ISR中指定的IR位复位 效果—按“高优先级请求优先”原则判优(嵌套)。 转22页 回30页

  29. (8)优先级管理⑹原理 —设置IBR 固定优先级:IR0→IR7降序; 轮转优先级:IR0→IR7→IR0循环降序 不指定轮转—ISR中被自动复位IR优先权最低; 指定轮转—ISR中被指定复位IR优先权最低。 优先级管理实现: 时机—ISR位变化时(即中断结束处理时); 方法—控制IBR变化。 固定优先级—IBR固定为80H; 轮转优先级—IBR根据ISR变化而变化。 回下页 转22页

  30. IR2 IR7 IR6 IR4 t CPU响应 IR4服务结束 CPU响应 CPU响应 IR?服务结束 IR?服务结束 CPU响应 所有中断结束 思考:IRR、IMR、ISR、IBR、INT置位和复位时机? 例:轮转优先级(不指定)、手工结束时,相关REG的变化 IRR:10H 00H 00H 84H 04H 44H 04H 04H 04H 00H 00H ISR:00H 10H 00H 00H 80H 80H C0H 80H 00H 04H 00H IBR:80H 80H 10H 10H 10H 10H 10H 40H 80H 80H 04H INT:1 0 0 1 0 1 0 0 1 0 0 转上页 转24页 转28页

  31. 屏蔽方式 特定屏蔽 正常屏蔽 D0 D7 … 自动 手工 结束方式 不指定 指定 正在服务ISR 特殊屏蔽SMM 中断屏蔽IMR … … ≥1 ISR优先编码器 … IR0 中断请求IRR IRR优先编码器 INT 比较器 & 电平触发 边沿触发 请求方式 IBR … … & & IR7 INT 完全嵌套 特殊全嵌套 固定 轮转 缓冲 非缓冲 嵌套方式 优先级管理 不指定 指定 级联方式 3、8259A工作模式设置 含请求、屏蔽、嵌套、结束、优先级、级联方式。 转下页 转36页 转37页 转34页

  32. (1)中断请求方式 [初始化时] 边沿触发:高电平表示有请求; 电平触发:上升沿时表示有请求。 (2)屏蔽方式 [动态操作时] 正常屏蔽:置位/复位IMR某些位; 特定屏蔽:置位/复位SMM位。 (3)嵌套方式:[初始化时] 全 嵌 套:比较器比较条件为A>B; 特殊全嵌套:比较器比较条件为A≥B。 回上页

  33. (4)结束方式 [可动态操作时] 自动结束:中断响应时ISR中最高优先级IR位复位; 手工结束: 不指定—手工使ISR中最高优先级(当前服务)IR位复位; 指 定—手工使ISR中指定的IR位复位。 (5)优先级管理 [可动态操作时] 固定优先级:IR0→IR7降序,IBR为80H; 轮转优先级:IR0→IR7→IR0循环降序,IBR可变 不指定:ISR中被自动复位IR优先权最低; 指 定:ISR中被指定复位IR优先权最低。 回下页 回31页

  34. 结束方式与优先级管理的关联: 转上页

  35. 非缓冲:SP/EN表示级联时主/从关系 主片—SP/EN接高电平;从片—SP/EN接低电平 AB CB 缓冲:SP/EN表示数据传送方向,级联时主/从关系通过软件设定。 DB A0 INT A0 A0 INT INT INTA INTA INTA CAS0~CAS2 主8259 从8259A 从8259B CAS0~CAS2 CAS0~CAS2 SP/EN SP/EN SP/EN IR0 VCC IR7 IR0 IR0 GND GND IR7 IR7 (6)级联方式[初始化时] 回31页

  36. (7)工作模式的设置 所有工作方式的设置均通过对8259A操作实现。 初始化操作:请求、嵌套、结束、优先级、级联 其后的操作:正常/特殊屏蔽、结束、优先级管理 回39页 回31页

  37. 4、8259A级联的请求与响应 思考1:主、从片均有请求时,谁的优先级最高? 思考2:主片或从片向DataBus送中断类型号的条件? 思考3:8259A级联时最多可支持多少个中断源?

  38. 思考4:课件33页图中主片IR3、从片A的IR3、从片B的IR3同时产生中断请求时,谁的优先级最高?思考4:课件33页图中主片IR3、从片A的IR3、从片B的IR3同时产生中断请求时,谁的优先级最高? 思考5:级联时初始化要完成哪些基本设置? 提示:中断响应时,主片如何知道优先级最高的IR连接着从片?从片如何知道自己被选中? 思考6:级联时对主、从片的嵌套方式有何要求? 提示:采用手工结束方式时,如何实现从片的先IR4、后IR3请求的嵌套处理? 思考7:级联且手工结束时应进行哪些操作? 提示:从片有多个请求时,主片应如何处理? 思考8:8259A初始化时应完成哪些设置? 请求、嵌套、结束、优先级、级联(是否有、主从片映射)方式

  39. 二、8259A编程 1、8259A的操作命令 I/O端口地址:只有二个端口(A0)。 操作命令: ICW1~ICW4—初始化(请求、嵌套、结束、优先级、级联), OCW1—正常屏蔽, OCW2—结束方式和优先权管理, OCW3—特殊屏蔽和状态查询选择, 取状态—IMR状态、其他状态(IRR、ISR、查询字)。 I/O端口与操作冲突时解决方法: 信息字(AL)中有空闲位时—特征位方法; 信息字(AL)中无空闲位时—时序方法。 回下页 转20页 转36页

  40. 8259A命令关系表: 说明:⑴ICWx只在初始化时才会出现; ⑵每个8259A芯片均要初始化。 转上页 回OCW1 回OCW2 回OCW3 回ICW1 回ICW2 回ICW3 回ICW4

  41. (1)初始化命令ICW1 功能:设置请求、是否有级联方式 特征位:D4D3=1*;(OCW2=00,OCW3=01) ICW4功能:设定嵌套、级联、结束方式, 缺省值为全嵌套、非缓冲、自动结束方式; 优先级管理:缺省为固定优先级。 转命令表

  42. 初始化时序: A0=0 ICW1 A0=1 ICW2→[ICW3]→[ICW4] (2)初始化命令ICW2 功能:设置IRi在IVT的位置(中断类型号) 如:主片为08H~0FH,从片为70H~77H,…… IR中断类型号=高5位(ICW2设置)+低3位(IR编码) 例:IR3的中断类型号为08H+03H=0BH IR4的中断类型号为08H+04H=0CH 转命令表

  43. N N Y Y ICW1的 D1=1 ICW1的 D0=1 ICW1 ICW2 ICW3 ICW4 (3)初始化命令ICW3 功能:设置级联时主片与从片的连接关系 主片ICW3:哪些位对应的IR有从片连接; 从片ICW3:连接到主片那个IR的编码。 初始化时序:ICW1→ICW2→[ICW3]→[ICW4]。 转命令表

  44. 说明:非缓冲方式级联时,主、从片关系由SP/EN电平决定(高电平为主片、低电平为从片)。说明:非缓冲方式级联时,主、从片关系由SP/EN电平决定(高电平为主片、低电平为从片)。 (4)初始化命令ICW4 功能:设置嵌套、级联、结束方式 转命令表 转50页

  45. (5)操作命令OCW1 功能:正常屏蔽操作 特征位:无,时序:无。 初始化后A1=1端口操作: A1=1,写—正常屏蔽操作 A1=1,读—取正常屏蔽状态(每位表示一个IR) 转命令表

  46. (6)操作命令OCW2 功能:结束方式和优先级管理操作 特征位:D4D3=00;(ICW1=1*,OCW3=01) OCW2使用时机: 手工结束方式(ISR复位); 变换优先级管理方式、指定轮转优先级。 回下页 转命令表

  47. 结束方式与优先级管理关系表: 例:MOV AL,20H OUT 20H,AL的含义是什么? 转上页

  48. (7)操作命令OCW3 功能:设置状态查询类型和特定屏蔽操作 特征位:D4D3=01; (ICW1=1*,OCW2=00) 8259A规定:因端口冲突,读取IRR、ISR、状态查询字需要采用间接访问方式完成。 思考:设置ESMM、RR的目的? 防止某操作导致另外一个操作 回下页 转命令表

  49. 查询字格式: D7(I)—=1有中断请求,=0无中断请求; D2~D0(W2~W0)—所有请求中优先级最高的IR编码。 读取IRR、ISR和状态查询字: 特定屏蔽管理: 转上页

  50. 2、8259初始化编程 (1)初始化编程步骤 (2)初始化编程示例(下页) (3)初始化编程注意点 不同8259A(即主、从片)的I/O端口地址不同; 8259A级联时,每个8259A均必须有完整的初始化过程(端口地址和部分参数不同而已); 初始化刚完成时IR0的优先级最高。 转下页 回44页

More Related