- 1、本文档共998页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机制 当I/O设备有输入要处理,或准备接受输出时,允许I/O设备中断处理器的机制 生成中断信号INT,停止当前的执行过程 管理I/O数据传送的机制 处理由该信号发出的请求 中断信号的产生 必须满足以下两个元素: I/O设备必须需要服务 KBSR或DSR的就绪位,当相应的就绪位被设为1时,I/O设备就需要服务 设备必须有权去请求服务 中断允许位(IE) 可以被设置为1或清为0,取决于是否给I/O设备权利去请求服务 在大多数I/O设备里,中断允许位是设备状态寄存器的一部分 INT信号 KBSR和DSR IE位是[1]位 中断请求信号(Interrupt Request,IRQ) IE位和、就绪位的逻辑与 各中断设备发出的IRQ信号经过或门,产生INT信号 31 0 KBSR 1 IRQK DSR 8 CAUSE 15 31 1 IRQD 0 INT 31 0 SR 31 0 ?1 原因寄存器 如果某个设备发出IRQ信号,就会将一个被称为原因寄存器(CAUSE)的相应位设为1 记录哪些设备发出中断信号 DLX的一个特殊寄存器,只有在特权模式下(操作系统),才能访问 CAUSE[15:8]为中断未决位 状态寄存器 所有设备的IE位的信号可以被状态寄存器SR[0]同时改写 DLX的一个特殊寄存器,只能在特权模式下访问 SR[0]表示中断允许位,决定了谁能中断处理器 如果SR[0]为0,那么所有I/O设备都不能中断处理器,在这种情况下,只能采用轮询方式访问I/O设备 如果SR[0]位被设置为1,那么允许所有I/O设备中断 测试INT信号 发出INT信号后,处理器如何发现这个信号? 指令执行按顺序为取指令、译码、执行、访问内存和存储结果5个阶段 为测试中断信号而增加逻辑 将总是从存储结果返回到取指令的最后一步取代为:存储结果,并检测INT信号 如果INT信号为0,那么它与往常一样,控制单元将返回取指令阶段,开始下一条指令的处理 如果INT信号为1,那么控制单元将PC加载为x8000 1000,执行操作系统的中断服务例程, 处理由该信号发出的中断请求 保存及改变程序状态 中断服务例程类似于自陷服务例程 存储在存储器的一些预先分配的单元中的程序片段,为中断请求服务 在进入中断服务例程之前(PC加载为x8000 1000之前) 保存足够的正在运行的程序的状态信息,以便当I/O设备请求被满足之后,能够返回被中断的程序 改变程序状态,以便访问恰当的资源,以及避免各种I/O设备互相干扰 程序状态 程序影响的所有资源所包含的内容的瞬态图,包括 作为程序一部分的存储单元的内容 所有通用寄存器的内容 寄存器:PC和SR PC和EPC 因为PC包含了下一条要执行的指令的地址,必须被保存起来,以便当被中断的程序重新执行时,可以正确的返回到下一条指令地址 DLX有一个特殊寄存器EPC,用于保存中断发生时PC中的值 SR[0] 程序是否可以被I/O设备中断,应该被保存 例如,用户程序允许被中断,而进入中断服务例程,为避免受到来自其他设备的中断信号的干扰,则应屏蔽所有中断,即SR[0]从1改变为0 因此,SR[0]需要保存起来,以便返回到用户程序时,仍可被I/O设备中断 SR[1] 表示正在运行的程序是处于特权(管理员或内核)模式还是非特权(用户)模式 特权模式为0,用户模式为1 在特权模式下,可以访问对用户程序不可见的重要资源,如CAUSE寄存器 SR[1] 程序的特权级别包含了被中断的程序能够访问哪些资源,禁止访问哪些资源,必须被保存 如果从用户程序进入中断服务例程,SR[1]就从1改为0,因为中断服务例程需要访问SR、CAUSE、EPC等寄存器,因此,SR[1]也需要保存起来 当中断发生时,DLX使用SR[2]保存SR[0]的值,使用SR[3]保存SR[1]的值,即利用SR实现了一个硬件栈 中断服务例程 首先,对于一个I/O设备真正能中断处理器,要求来自设备的请求必须比处理器当前的工作更紧急 执行的紧急程度被称为优先级 服务该中断 进入设备处理例程 最后,从中断返回 中断优先级 为了让I/O设备成功的停止处理器,开始中断请求的处理,请求的优先级必须比它希望中断的程序更高 DLX有6个硬件优先级,PL0,... ...,PL5 数字越高,优先级越高 速度越高的I/O设备,优先级也越高 例如,键盘优先级别为1,显示器级别为0 在最低的优先级下,允许所有中断,在最高的优先级下,则屏蔽所有中断 SR[15:8] DLX的中断优先级,采用状态寄存器SR[15:8]表示 SR[15:8]给出了中断阻塞方案,以决定系统响应哪些中断 与CAUSE[15:8]一一对应 从左至右,优先级别依次降低 要允许某一级别的中断,屏蔽位必须为1 原因寄存器中的未决中断要等到相
文档评论(0)