中断技术.ppt_第1页
中断技术.ppt_第2页
中断技术.ppt_第3页
中断技术.ppt_第4页
中断技术.ppt_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

1 第六章中断技术 2 第一节中断系统 一 中断基本概念定义 cpu穿插处理随机事件的过程 中断过程 回下页 中断请求 cpu检测到有中断请求 中断响应 取得中断类型号 保存现场 含cs ip 取得中断服务程序入口地址 并置为cs ip 中断服务 从cs ip处执行 用iret触发中断结束 中断结束 恢复现场 含cs ip 回4页 3 二 中断系统1 中断系统组成 由cpu中的中断机构 i o系统中的中断控制器 os中的中断服务程序管理机构组成 转上页 1 中断机构功能自动检测多种中断请求 软件 硬件 自动对产生的中断请求进行判优 自动对中断请求进行响应 自动实现中断屏蔽 自动进行优先级管理 并支持中断嵌套处理 4 2 中断控制器功能自动检测 记录多个外部硬件中断请求 自动对产生的中断请求进行排队 判优 自动向cpu提出外部硬件中断请求 根据要求自动实现中断屏蔽 根据要求自动实现中断源的优先级管理 3 中断服务程序管理机构功能管理中断向量表ivt 为中断机构取得中断服务程序入口地址提供机制 ivt的表项为中断服务程序入口地址 可通过中断类型号检索 转2页 回19页 5 2 中断类型 中断请求类型 回下页 回7页 回10页 回13页 6 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指令 转5页 回11页 8 3 中断请求优先级管理原则 中断机构按中断源类型采用静态优先级管理 中断控制器可采用动态优先级管理 结果 cpu专用 nmi 外部硬件 bios dos 自由 即基本按中断类型号大小排序 应可使外部硬件各中断源服务机会均等 9 4 中断屏蔽处理所有中断源中 只有外部硬件中断可被屏蔽 屏蔽效果 中断机构可屏蔽外部硬件请求 cpu不响应请求 中断控制器可屏蔽中断源 使其不参与判优 屏蔽种类 屏蔽方法 通过软件控制相应电路完成 转6页 回24页 10 5 中断响应处理实现功能 取得中断类型号 保存现场 转入中断服务程序 响应时机 检测机构检测到中断请求后立即响应 不同类型中断请求在不同时侯检测 1 取得中断类型号 外部硬件中断 产生总线操作 通过databus从中断控制器取得 触发了中断控制器的中断响应 其它中断 检测机构检测时已得到 无额外动作 转5页 中断控制器的中断响应 当前请求作为正在处理请求 中断源被复位 向cpu提出的请求被复位等 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 8 中断系统工作原理综述中断机构 中断控制器的3个工作段并行工作 1 cpu中断机构工作原理 2 中断控制器工作原理 回下页 转5页 14 3 中断系统工作原理 中断机构针对不同类型中断 检测时机不同 转上页 15 三 中断向量表 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 4 中断门 陷阱门入口地址的获取 中断门与陷阱门区别 中断门处理时eflag的if被自动复位 陷阱门不改变if位状态 故中断门的优先级比陷阱门高 中断门处理的中断源请求无嵌套 18 5 任务门tss结构入口地址的获取 采用任务门进行任务切换的优点 被中断任务环境的进栈和中断任务环境的出栈均自动完成 中断任务和被中断任务完全隔开 19 第二节intel8259a 8259a应具有的功能 自动检测 记录多个中断源 应可扩充 的请求 自动对中断请求进行判优 包括同时产生的请求 先后产生的请求 自动实现中断屏蔽 可用软件控制 自动向cpu提出中断请求 被动向cpu提供最高优先级的中断源类型号 自动实现中断源的优先级管理 有多种管理方式时 可用软件选择 被动接收并执行cpu命令 任何接口均应具备 转4页 回22页 20 一 8259a内部结构及其工作原理 1 8259a引脚 外设侧引脚 ir0 ir7 回39页 21 2 8259a内部结构及工作原理 irr 用于锁存中断请求 防止遗漏 isr cpu响应中断时置位 中断处理完时复位 imr 用于屏蔽中断请求 通过cpu命令置位和复位 1 向cpu提出中断请求 原理 iri int过程 22 2 中断请求检测与记录 原理检测到请求irr置位 isr置位时irr复位 转19页 回下页 回29页 回24页 说明 ibr为最低优先级iri的位寄存器 为两个编码器的编码基准 a2a1a0 b2b1b0为优先级编码 非ir号 smm为特殊屏蔽信号 允许特殊屏蔽时为1 回26页 回27页 回28页 23 3 优先级编码器原理8259a规则 为简化电路设计 从ir0 ir7 ir0的优先级为降序循环队列 例 ir7优先级为0时 ir0为7 ir6为1 ir2优先级为0时 ir3为7 ir1为1 优先级编码器电路示意图 转上页 24 4 自动判优 原理 优先级电路pr中断请求编码器 负责尚未服务请求 含同时产生和先后产生的请求 的排队 比较器 负责正在服务与尚未服务请求的判优 转22页 回下页 回30页 25 排队与判优概念的含义 排队 尚未服务的请求间欲获得中断服务时的优先级比较 判优 尚未服务请求欲在正在服务请求中进行嵌套时的优先级比较 用于中断嵌套 嵌套方式 即判优方式 比较器比较条件 全嵌套 比较器比较条件为a b 特殊全嵌套 比较器比较条件为a b 如 ir2请求改为ir5 转上页 26 5 中断请求屏蔽 原理包含正常屏蔽和特殊屏蔽两种手段 正常屏蔽 屏蔽中断源请求irr 使其不参排队 通过cpu命令 实现imr的置位与复位 特定屏蔽 屏蔽正在服务请求isr 使isr不参与判优 通过cpu命令 实现smm的允许与禁止 转22页 转9页 27 6 响应cpu中断原理 含提供中断类型号 cpu响应外部硬件中断请求条件 当前指令执行完毕 eflag中if 1 intr信号有效 8259a响应cpu中断的动作 转22页 28 回30页 手工结束 时机 接收到cpu中断结束命令 eoi 时 方法 不指定方式 isr中最高优先级ir位复位指定方式 isr中指定的ir位复位效果 按 高优先级请求优先 原则判优 嵌套 转22页 29 8 优先级管理 原理 设置ibr 固定优先级 ir0 ir7降序 轮转优先级 ir0 ir7 ir0循环降序不指定轮转 isr中被自动复位ir优先权最低 指定轮转 isr中被指定复位ir优先权最低 转22页 优先级管理实现 时机 isr位变化时 即中断结束处理时 方法 控制ibr变化 固定优先级 ibr固定为80h 轮转优先级 ibr根据isr变化而变化 回下页 30 思考 irr imr isr ibr int置位和复位时机 例 轮转优先级 不指定 手工结束时 相关reg的变化 irr 10h00h00h84h04h44h04h04h04h00h00hisr 00h10h00h00h80h80hc0h80h00h04h00hibr 80h80h10h10h10h10h10h40h80h80h04hint 10010100100 转28页 转上页 转24页 31 3 8259a工作模式设置含请求 屏蔽 嵌套 结束 优先级 级联方式 转下页 转34页 转36页 转37页 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 6 级联方式 初始化时 回31页 36 7 工作模式的设置所有工作方式的设置均通过对8259a操作实现 初始化操作 请求 嵌套 结束 优先级 级联其后的操作 正常 特殊屏蔽 结束 优先级管理 回31页 回39页 37 4 8259a级联的请求与响应 思考1 主 从片均有请求时 谁的优先级最高 思考2 主片或从片向databus送中断类型号的条件 思考3 8259a级联时最多可支持多少个中断源 38 思考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芯片均要初始化 转上页 回icw1 回icw2 回icw3 回icw4 回ocw1 回ocw2 回ocw3 41 1 初始化命令icw1功能 设置请求 是否有级联方式 特征位 d4d3 1 ocw2 00 ocw3 01 icw4功能 设定嵌套 级联 结束方式 缺省值为全嵌套 非缓冲 自动结束方式 优先级管理 缺省为固定优先级 转命令表 42 2 初始化命令icw2功能 设置iri在ivt的位置 中断类型号 如 主片为08h 0fh 从片为70h 77h ir中断类型号 高5位 icw2设置 低3位 ir编码 例 ir3的中断类型号为08h 03h 0bhir4的中断类型号为08h 04h 0ch 转命令表 43 3 初始化命令icw3功能 设置级联时主片与从片的连接关系 主片icw3 哪些位对应的ir有从片连接 从片icw3 连接到主片那个ir的编码 初始化时序 icw1 icw2 icw3 icw4 转命令表 44 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 结束方式与优先级管理关系表 例 moval 20hout20h al的含义是什么 转上页 48 7 操作命令ocw3功能 设置状态查询类型和特定屏蔽操作 特征位 d4d3 01 icw1 1 ocw2 00 8259a规定 因端口冲突 读取irr isr 状态查询字需要采用间接访问方式完成 思考 设置esmm rr的目的 防止某操作导致另外一个操作 转命令表 回下页 49 读取irr isr和状态查询字 转上页 特定屏蔽管理 50 2 8259初始化编程 1 初始化编程步骤 2 初始化编程示例 下页 3 初始化编程注意点不同8259a 即主 从片 的i o端口地址不同 8259a级联时 每个8259a均必须有完整的初始化过程 端口地址和部分参数不同而已 初始化刚完成时ir0的优先级最高 转下页 回44页 51 单片8259a初始化编程示例 intm00equ020h 8259a端口0intm01equ021h 8259a端口1 moval 00010011b icw1 边沿触发 要icw4 单片方式 不要icw3 outintm00 aljmpshort 2 i o端口延时moval 00001000b icw2 设置起始中断向量为08houtintm01 aljmpshort 2moval 00000001b icw4 非缓冲 全嵌套 自动结束outintm01 aljmpshort 2 回上页 52 三 现代微机中8259a的应用 1 82801a中8259a级联 注意 主 从区分 irq优先级 请求与响应 回下页 回54页 53 对主片8259a的初始化编程 intm00equ020h 主8259a端口0intm01equ021h 主8259a端口1 moval 00010001b icw1 边沿触发 要icw4 级联方式 要icw3 outintm00 aljmpshort 2 i o端口延时moval 00001000b icw2 主片的起始中断向量为08houtintm01 aljmpshort 2moval 00000100b icw3 表示8259a从片的int输出 是连接到主片的ir2 outintm01 aljmpshort 2moval 00000001b icw4 非缓冲 全嵌套 自动结束outintm01 aljmpshort 2 转上页 54 对从片8259a的初始化编程 ints00equ0a0h 从8259a端口0ints01equ0a1h 从8259a端口1 moval 00010001b icw1边沿触发 要icw4 级联方式 要icw3 outints00 aljmpshort 2moval 01110000b icw2 从片的起始中断向量为70houtints01 aljmpshort 2moval 00000010b icw3 设置从片的识别标志 指定对应主片的ir2 outints01 aljmpshort 2moval 00000001b icw4 非缓冲 全嵌套 自动结束outints01 aljmpshort 2 转52页 55 2 中断请求线连接及中断控制 回下页 回61页 回63页 回66页 56 现代微机中断控制过程 转上页 回64页 57 第三节实模式下中断编程 一 中断编程注意点 1 使用正确的中断号物理连线iri 存放中断服务程序入口地址的中断号间要对应 2 中断编程不应破坏系统环境程序使用某中断号时 应先保存该中断号原始中断向量 程序退出前应恢复原始中断向量 3 避免中断程序中dos重入中断请求可能在int21h中得到服务 故中断程序中不能使用int21h功能调用 58 4 中断程序执行时间的正确估计中断服务程序的执行时间太长或有人 机交互 会导致系统的异常 5 中断的打开与关闭cpu从中断响应开始 到中断结束 iret 前自动使标志reg的if 0 中断服务程序必须使if 1 才可能实现嵌套功能 6 中断程序结束处理及返回 59 二 中断处理程序举例 主程序 old0cdd codesegment movax 350ch 保存原来的0ch中断向量int21h 输入参数在ax中 返回参数在bx es中movwordptrold0c bxmovwordptrold0c 2 escli 关中断 禁止所有外部硬件中断请求movax code 写入新的0ch中断向量movds axmovdx offsetservicemovax 250chint21h 输入参数在ds dx ax中sti 开中断 允许外部硬件中断中断请求 其它程序段 60 中断处理子程序serviceprocpusha 保护现场pushdssti 打开中断 允许其它中断嵌套处理 串口数据处理程序 cli 关闭中断 若8259a设置为手工结束方式 则需要发eoi命令 moval 0a0h 0a0h表示不指定手工结束 且自动轮转优先级管理 out21h alpopds 恢复现场popairetserviceendp 61 第四节pci中断 一 pci中断的请求 pci中断引脚 inta intb inth 所有板卡 每个功能 的pci中断请求均使用这8个引脚 只能采用电平触发方式 漏极开路实现同一引脚的中断请求的共享 pci中断请求 pirqa pirqh pci中断的请求过程 intx int 或intr pci中断控制器将pirq请求映射成isa中断的irq请求 服从8259a的管理规则 只能映射到部分irq 回下页 转55页 62 pirq到irq的映射过程 转上页 回下页 63 pirq到irq映射对双方的限制 只能映射部分isa中断 3 7 9 12 14 15 通过serirq来的已映射中断的irq不可再被isa设备使用 不通过serirq来的已映射中断的irq可再被isa设备使用 pci中断请求的优先级 不同pirq的优先级与所映射的irq相同 不同设备同一pirq的优先级由安装次序决定 最后安装的设备的pirq最高 保存原中断向量后 写入自己的中断向量 中断服务程序入口地址 转上页 转55页 64 二 pci中断响应 具有pci总线的系统中断控制器一般在第一级pci总线上 隐含在82801ba内部 系统中断控制器集成了8259a和pci中断控制器功能 转56页 系统中断控制器将中断类型号通过82801ba的中心接口给815ep 再返回给处理器 65 三 pci中断共享的服务 同一pirq中断各中断向量管理方法 pnp配置时采用链表式管理方法 将同一pirq的原中断向量存放到其设备驱动的特定寄存器后 才替换为新的中断向量 pci中断服务程序实现方法 读取自身中断状态位 若无中断请求 转 处理自身中断请求 调用中断向量链表中下一个中断向量 中断返回 66 第五节串行中断 一 串行中断结构 传输方式 同步 pciclk 单线传输 信号表示 遵循pci信号使用的三态协议 取样 恢复 翻转 传输格式 serirq上信息分帧传输 传输内容 serirq不支持irq0 8 13中断传输 转55页 67 二 帧结构一次信息传输由开始帧 数据帧 停止帧构成 1 信息帧内容开始帧 4 6或8个时钟宽度低电平 数据帧 21 3个时钟宽度 即21个中断源信息 停止帧 2或3个时钟宽度低电平 2 传输方式 模式转换 停止帧长度为2 下次传输为静态模式 停止帧长度为3 下次传输为连续模式 回下页 68 三 串行中断传输工作原理 模式转换 连续 静态 静态2clk连续 静态 连续3clk 转上页 69 第六节apic 一 apic子系统组成 1 组成 localapic i oapic和apic总线 回下页 70 localapic 包含了8259a和8254的功能 响应中断 i oapic送来的系统中断请求 经apic总线送来的处理器间中断请求 ipi 本地的中断请求 定时 错误 计数 连线 i oapic 多达24个中断 中断优先级与中断号独立 不需要中断响应周期 可选择某个或一组处理器中的一个为目标处理器 转上页 71 apic总线 组成 apicd0 apicd1 apicclk 类型 串行同步总线 串行时序 不同时钟先高位 后低位 同一时钟d1高位 d0低位 内容 eoi命令和短消息 应用 连接的每个模块均有自己的模块id 为固定值 每个模块均有自己的仲裁id 可变 初值来自模块id 72 2 apic中断类型 系统中断 类型 经i oapic模块引脚送入的中断请求 处理 交中断请求指定的目标处理器处理 本地中断 类型 定时 计数 错误 intr及nmi 处理 只能由本地处理器处理 处理器间中断 类型 电平撤消初始化 初始化 启动 远程读 smi nmi等 处理 交目标处理器处理 73 二 i oapic的寄存器 1 直接访问寄存器 indr r w 存放需访问的间接寄存器编号 datr r w 间接访问寄存器访问结果 irqpar w 存放声明方式产生的中断向量号 eoir w 存放正在服务 将结束 的中断向量号 2 间接访问寄存器 idr r w32b 存放模块自己的固定的id verr r32b 存放有无irq声明和重定向寄存器数 arbidr r32b 存放模块的仲裁id boot configr r w32b 存放中断传递方式 回77页 74 rdr r w64b 索引编号10h 3fh 每个rdr占两个号 75 三 apic工作过程 1 中断请求产生并递交 收到引脚信号有效改变时 置位rdr的rirr位 争取总线使用权后 向apic总线发送短消息 目标处理器 目标模式及传递模式 已在rdr中设定 边沿触发方式时 消息传送后将rdr的rirr位复位 2 处理器接受中断请求产生并服务 目标处理器 可能多个 的localapic收到请求后 根据传递模式 确定本处理器是否命中 命中的目标处理器做相应中断处理 当处理器核心执行的代码优先级低于中断请求优先级时处理中断 76 3 中断结束阶段 中断为电平触发方式时 发布eoi命令通知i oapic做结束处理 当前处理器的总线使用权降为最低 77 四 apic工作模式 1 apic总线仲裁 结构 分布式仲裁 空闲状态 d1d0 11 某消息结束后

温馨提示

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

最新文档

评论

0/150

提交评论