- 1、本文档共67页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chapter6-1输入输出与中断
IFF 1 S 允许中断 Q R CPU内设置中断允许触发器IFF ≥1 2 开中指令 关中指令 CPU响应中断信号 CPU INTR RESET IFF=0(关中)时,即使有INTR信号,因与门1被IFF的Q端关闭,CPU不能响应中断; IFF=1(开中)时,CPU才能响应中断。 ② CPU在现行指令结束后响应中断 在CPU开中时,若有中断请求信号发至CPU,CPU并不立即响应; 只有当现行指令运行到最后一个机器周期的最后一个T状态时,CPU才采样INTR信号; 若有INTR信号,CPU把与门1的中断允许输出端置1,CPU进入中断响应周期。 机器周期的最后一个T状态? 指令结束? 有INTR=1? CPU开中断? 处理中断 取下一条指令 Y N N Y Y Y N N 中断时序流程图 3. CPU响应中断及处理过程 满足上述条件后,CPU响应中断,转入中断周期,完成以下操作: 关中断:内部由硬件自动实现关中断。 保护断点:封锁PC+1,并将PC压栈保护。 保护现场:将有关寄存器的内容和标志位的状态压栈保护。 给出中断入口地址,转入相应的中断服务程序:根据中断源提供的中断类型号,在中断向量表中取得中断服务的起始地址。 恢复现场:将压栈的各有关寄存器的内容和标志位的状态弹栈。 开中断与返回:开中断并安排一条返回指令,将PC弹栈,CPU恢复到断点处继续执行。 关中断 恢复现场 中断服务 保护现场 保护断点 开中断 中断返回 6.3.3 向量中断(vectored interrupt) 向量中断:通过中断向量来找中断入口地址进而转向中断服务程序的一种方法。 中断向量:用来提供中断入口地址的一个地址指针。 6.3.4 中断优先权 实际系统中具有多个中断源,而CPU的可屏蔽中断请求线只有一条。 CPU能按多个中断源的优先权由高至低依次来响应中断申请。 CPU正在处理中断时,能响应更高级的中断申请,而屏蔽掉同级或低级的中断申请。 CPU实现按中断优先权对多个中断源管理的方法: 软件查询技术 硬件排队电路 中断控制芯片(8259A) * * 三态 缓冲器 DATA DB 地址译码 查询式输入的接口电路 AB 三态 缓冲器 STATUS 锁存器 输 入 设 备 D Q R +5V ‘1’ 状态信息 READY 至CPU 状态端口译码输出 数据端口译码输出 M/IO RD M/IO RD 数据 选通信号 STB D0 D7 D7 数据(DATA)端口(8位) (输入) 状态(STATUS)端口(1位) (输入) 8位 “READY”(1位) 查询式输入的数据和状态信息 输入状态信息 READY=1? 输入数据 N 查询式输入程序流程图 Y 一般读入的状态信息是1位,不同外设的状态信息可以使用同一个端口中的不同位。 程序查询输入的过程: 输入设备准备好后,发选通信号; 数据进入锁存器锁存,并使D触发器置1,三态缓冲器输出状态信号; CPU从状态端口读入状态字; CPU检测状态字,如果条件满足,CPU从数据端口读入数据,清状态字。 查询输入部分的程序: POLL: IN AL, STATUS_PORT ;读状态端口的信息 TEST AL, 80H ;设READY信息在D7位 JZ POLL ; READY=0 ,则循环再查 IN AL, DATA_PORT ;READY=1 ,则读入数据 这种CPU与外设的状态信息的交换方式称为 “应答式”, 状态信息称为“联络式” 2. 程序查询输出 输出时CPU也必须了解外设的状态,看外设是否“空闲”(即外设的数据锁存器是否已空) 若“空闲”,则CPU执行输出指令; 否则,等待再查。 程序查询输出过程: 当输出装置把CPU输出的数据输出后,发出一个ACK信号,使D触发器置“0”,即让“BUSY”为0,当CPU输入这个状态信息后知道外设为“空”,于是就执行输出指令。 待输出指令执行后,由地址信号和M/IO及WR相“与”,经G1发出选通信号,把在数据线上的输出数据送至锁存器; 同时,使D触发器为“1”状态,它一方面通知外设输出数据已准备好,可以执行数据操作,另一方面在数据由输出装置输出前,一直为“1”,告知CPU外设“BUSY”,阻止CPU输出新的数据。 查询式输出的接口电路 * DB 地址译码 G1 AB 三态 缓冲器 G3 锁 存 器 输 出 设 备 G2 D Q R +5V “BUSY” D7 状态端口译码输出 数据端口译码输出 M/IO RD M/IO WR 数据 来自CPU 去CPU DB BUSY ACK 选通信号 D0 D7 D7 数据(DATA)端口
文档评论(0)