第九章 io控制.doc

上传人:ni****g 文档编号:552409701 上传时间:2023-08-04 格式:DOC 页数:11 大小:137KB
返回 下载 相关 举报
第九章 io控制.doc_第1页
第1页 / 共11页
第九章 io控制.doc_第2页
第2页 / 共11页
第九章 io控制.doc_第3页
第3页 / 共11页
第九章 io控制.doc_第4页
第4页 / 共11页
第九章 io控制.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《第九章 io控制.doc》由会员分享,可在线阅读,更多相关《第九章 io控制.doc(11页珍藏版)》请在金锄头文库上搜索。

1、第九章 I/O控制一、概述 * I/O控制器亦称I/O接口电路(Interface)1、各个发展阶段(1)人工控制 * 最早的计算机系统中是此种形式 * 打孔纸带输入输出数据,相应的控制开关控制操作(没有现在意义的输入输出设备)(2)程序查询方式 * CPU通过外设的状态标志对其进行监控和处理 * 处理流程如下:启动I/O查询状态?Y(准备好)N(未就绪)传数 * CPU和I/O外设之间的关系图如下:查询I/O启动I/OI/O准备就绪传数启动I/OI/O准备CPUI/O * CPU存在踏步查询现象(效率低)、实现相对简单(3)程序中断方式 * 中断方式属于软件方式,但需要相应的硬件(中断系统)

2、支持启动I/O运行其它代码I/O就绪中断请求继续其它代码处理程序(传数) * 处理流程如下: 中断请求在时间上是随机的 * CPU和I/O外设之间的关系图如下:CPUI/O其它程序启动I/OI/O准备INT传数启动I/OI/O准备其它继续 特点:数据传递依旧由CPU完成 CPU和I/O外设在某段时间上是并行处理(效率更高)(4)存储器直接访问方式(Direct Memory Access,DMA) 假设计算机模型如下,描述一次I/O输入数据的过程总线M.MCPU接口I/Ocba * 注意区别 传统的I/O输入模式需要ab两步,即先把数送至CPU内,再由CPU把数送至主存 DMA模式仅需c一步,

3、即不需要CPU的干预,I/O一次把数送至主存内 * CPU和I/O(包括外设和接口两部分)之间的关系图如下:CPUI/O接口传数I/O准备其它程序启动I/OI/O准备DMA请求建立通路(很短时间完成)其它继续初始化特点:传数是由I/O接口电路控制完成的,CPU只移交总线 在传数过程中CPU不干预,所以之前CPU不需要保护现场 是一种硬件控制的传数过程,速度快,异常处理能力差(一旦启动,无法停) 传数过程开始之前需CPU预处理一次,传数过程结束之后需CPU后处理一次(5)通道方式(Channel)* 通道即特殊功能的协处理器* 通道可以执行用通道指令编写的I/O程序(非纯的硬件方式)* CPU仅

4、需干预一次(启动通道)2、其它概念(1)I/O编址方式 * 统一编址主存地址和I/O地址编在一个地址空间(所以主存空间相对要小)无相应的I/O指令(所以指令系统相对简单) * 独立编址用单独的I/O指令访问外部设备(指令系统复杂)主存地址和I/O地址是两个独立的地址空间(主存空间相对要大)(2)I/O的互连方式 * 直接互连两个部件之间用一组专用线路互连 * 总线互连 多个部件共用一组传输线(各部件只能分时使用)(3)联络方式 * 立即响应使用时,不用查对方状态(默认对方时刻就绪),直接操作 * 异步方式(即应答模式)设置一组联络信号(一应一答),先发请求,只有对方回应后方可操作,否则等待 *

5、 同步方式双方以同步时钟为基准进行相应的操作二、I/O接口电路 * 主要作用:数据或信息的缓冲(还有其它作用,这里略) * 基本逻辑组成数据端口控制端口状态端口接口译码接口电路命令状态数据DBCBABCPUI/O设备 * 端口:可按地址访问的寄存器或相应部件三、中断系统1、中断的概念(1)中断的描述某程序处理过程中,遇到异常或相应事件,暂停现行程序,转去执行相应的处理程序,处理程序结束后返回原现行程序的过程,称为一次中断。 * 中断(Interrupt) * 异常(Exception):控制流中的突然改变 /不同的称谓(2)中断的分类 * 强迫中断:有请求一般必须相应,请求具有随机性,特殊时可

6、屏蔽自愿中断:由自陷(Trap)指令完成,请求不具有随机性(请求时间即自陷指令执行的时间) * 内中断:由内部事件引起的中断(例如溢出、奇偶校验错、地址失效)外中断:由外部事件引起的中断(例如外部I/O请求、键中断)2、中断系统需考虑的问题(1)如何请求用触发器进行状态标识,设置请求触发器(1表示有请求、0表示无请求) * 逻辑关系如下:MASKQDQD请求触发器查询脉冲屏蔽位请求标识 * 由三个D触发器和一个与门组成,其中MASK为屏蔽位,外部向请求标识置位 * 查询脉冲在指令周期末时刻发出,则逻辑器件只在末时刻触发发出请求(2)优先级排队 * 多个中断源发出请求,只能相应一个,靠排队来决定

7、优先级 * 软件查询(早期采用) 靠查询次序来决定优先级,在流程前面的先查询,后面的后查询,一旦判断哪级中断有请求,直接跳转(后面的各级中断不再查询)判1#?NY判2#?NY判N#?NY跳转至1#处理程序跳转至2#处理程序跳转至N#处理程序 特点:实现简单,易于实现,因为是纯软件方式,速度相对要慢* 硬件排队器四级排队器的逻辑图如下:排队器INT1INT2INT3INT4通常左边优先级最高,依次向右递减,最右边最低。内部是屏蔽原理,即当左边的请求有效,自动把右边的全部屏蔽掉,所以输出只有左边的一个有效。例如,四级请求状态为“1111”,即四个中断源同时请求,则输出为“1000”,最左边的1有效

8、屏蔽掉其右边的所有1有效。此种方式现在普遍采用,即硬件原理不复杂,速度较快。(3)CPU的响应条件 * 时间条件:指令周期末时刻(方便断点保护) * CPU状态:必须CPU允许响应(设置允许触发器标识CPU状态)允许触发器为1,称为开中断,即此时CPU可以响应中断请求允许触发器为0,称为关中断,即此时CPU不可以响应中断请求(4)现场保护 * CPU现场程序执行过程中,一些计算的中间结果均存在CPU的一些寄存器中,这些寄存器里的暂存值称为CPU现场。 * 隐指令程序的断点(当前PC值,返回时需要)由隐指令自动压栈保护(系统自动完成) * 现场保护中断服务程序把CPU所有涉及到的寄存器压栈保护,

9、中断程序返回前再出栈恢复(5)形成服务程序入口地址 * 中断向量为了方便查找,系统中所有的中断不是按名查找,而是按编号查找。即系统中为所有的中断统一编号(统一的系统中,号码是固定的),该编号称中断向量号。 * 中断向量表所有中断的入口地址索引表,示意如下:0#中断的入口地址1#中断的入口地址2#中断的入口地址N#中断的入口地址中断向量表0:1:2:N:注意:所谓的中断向量号实质上就是向量表的偏移地址,经过一次间址操作取出的就是中断的入口地址。(6)现场恢复和中断返回 * 中断返回中断服务处理完成后,返回原断点处,通常由IRET指令完成 注意:相应时断点保护是由系统隐指令完成,程序中不涉及,但返

10、回时必须由IRET指令完成。IRET指令的本质即为出栈操作指令。 * 现场恢复 现场保护的反向操作(7)多重中断 * 多重中断即中断的嵌套(中断处理时再次被新的中断打断) * 实现条件新来中断的级别要比正在执行中断的级别高通常级别可分为相应级别和处理级别两种,相应级别有硬件排队器来决定,处理级别即处理的先后次序,这里指处理级别,通常由屏蔽技术实现 * 屏蔽技术设置屏蔽触发器来标识状态,为1表示屏蔽该级中断,为0表示开放例如:1#2#3#4#四级中断的屏蔽触发器的值依次为“1011”,则表示当前状态,2#中断被屏蔽,1#中断、3#中断和4#中断可以打断当前的处理程序。3、中断系统的逻辑组成为了描

11、述简单,这里只设置了四级中断,依次为1#中断、2#中断、3#中断和4#中断,则请求触发器设置4个(和中断源个数对应),允许触发器1个(和CPU个数对应),屏蔽触发器4个(和中断源个数对应),一个四级排队器以及其它若干门电路,逻辑组成图如下:QQDQQDQQDQQD排队器向量地址形成部件1EINT偏移地址(或编号)INTRINTMINT查询脉冲标识上图中INTR为请求触发器,INTM为屏蔽触发器,EINT为允许触发器(仅1位),当外部事件有中断请求时只触发相应标识,时间上无任何限制,INT为中断系统向CPU发出的请求信号。* INT和允许位EINT的逻辑如下:排队器QSRINTQSREINT1上

12、图中EINT为允许位(为1时表示开中断),只要排队器中有请求(或关系),并且开中断则INT有效,即向CPU发中断请求,同时INT触发允许位EINT复位(即清0),表示响应中断后立即关中断。注:多个触发器构成的逻辑单元可以称为寄存器,上图中虚线部分的内容即可称为相应的寄存器,例如四个INTR构成的逻辑单元可称为中断请求寄存器,其余类似。在PC机中用一片8259管理中断,逻辑关系类似。* 中断指令级处理流程大致可分为:中断请求、中断响应、中断处理(或称为中断服务)和中断返回,流程描述见下图:中断响应中断处理中断返回YN条指令判有中断?下一条指令N在上图中看不到中断请求,即外部事件在请求中断时间上是任意的,不以指令周期为基准。(1)中断请求* I/O设备如有请求设置相应的标识位有效(任意时刻)* 系统在每条指令周期末时刻查询(查询脉冲只在指令周期末时刻发出)(2)中断响应 * 相应是由指令集中的隐指令完成,不需用户干预 * 相应的条件:CPU开中断、指令周期末时刻 * 具体操作包括:系统自动关中断、请求位清0、断点入栈、置相应的屏蔽字、形成向量地址(3)中断处理 * 由中断服务程序来完成 * 服务程序完成的功能包括:现场保护、重新开中断、相应的程序执行(4)中断返回 * 服务程序最后的IRET指令来完成(有的程序根据需要IRET也可不放最后) *

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作范文 > 思想汇报

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号