1、,第八章 输入输出系统,李鹏 主讲,,【相关说明:本课件以白中英老师教材及课件为蓝本制作而成,特表感谢;网上文档会伴随教研过程不定期更新版本;最后,恳请文档使用者批评、指正文中出现的错误、疏漏;版本时间:2014.6】,计算机组成原理(第五版)白中英、戴志涛主编 课件PPT,陕西师范大学 计算机科学学院,I/O接口影响,计算机综合处理能力 可扩展性 兼容性 性价比,第八章 输入输出系统,8.1外围设备的定时方式和信息交换方式 8.2程序查询方式 8.3程序中断方式 8.4DMA方式 8.5通道方式 8.6通用I/O标准接口,8.1外围设备的定时方式和信息交换方式,一、外围设备的速度分级 外设种类繁多,存在以下几种情况: 不同种类的外设数据传输速率差别很大 同一种设备在不同时刻传输速率也可能不同 高速的CPU与速度参差不齐的外设怎样在时间上同步呢? I/O设备和CPU数据交换步骤: CPU发送设备地址到总线 等候总线上出现有效数据 读或者写数据,8.1外围设备的定时方式和信息交换方式,解决办法是在CPU和外设之间数据传送时加以定时: 速度极慢或简单的外设 CPU只需要接受或者发送数据即可
2、 eg.机械开关:输入的信息一直有效 eg.显示二极管:输出随时就绪,8.1外围设备的定时方式和信息交换方式,慢速或者中速的设备 可以采用异步定时的方式 应答式交换 Eg 键盘,“准备就绪”、“忙” 高速外设 采用同步定时方式,8.1外围设备的定时方式和信息交换方式,二、信息交换方式 程序查询方式 程序中断方式 DMA方式 通道方式 分糖果的例子,8.1外围设备的定时方式和信息交换方式,程序查询方式 最简单的输入输出方式 CPU定期查询外设状态 浪费大量CPU时间 适用:单片机、DSP设备 程序中断方式 外设发出中断信号 CPU响应 适用:随机事务,8.1外围设备的定时方式和信息交换方式,DMA 直接内存访问 硬件实现 DMA控制机器完全接管I/O 适用于高速交换、成组交换 通道方式 通道:具有特殊功能的处理器 完成对内存、外设的统一管理,8.2程序查询方式,1、设备编址 统一编址:输入/输出设备中的控制寄存器、数据寄存器、状态寄存器等和内存单元一样看待 独立编址:内存地址和I/O设备地址是分开的,访问内存和访问I/O设备使用不同操作码的指令,8.2程序查询方式,2、输入输出指令 当用
3、程序实现输入/输出传送时,I/O指令一般具有如下功能: 置“1”或置“0”I/O接口的某些控制触发器,用于控制设备进行某些动作,如启动、关闭设备等。 测试设备的某些状态,如“忙”、“准备就绪”等,以便决定下一步的操作。 传送数据,当输入数据时,将I/O接口中数据寄存器的内容送到CPU某一寄存器;当输出数据时,将CPU中某一寄存器的内容送到I/O接口的数据寄存器。 不同的机器,所采用的I/O指令格式和操作也不相同。,8.2程序查询方式,I/O指令格式 01 R0-R7 OP 控制 DM 01 2 3 4 5 6 7 8 9 10-15 I/O指令 寄存器地址 8种操作码 启动、关闭等 外设地址 2、输入输出指令 Eg. DOAS 2 13 Data out A start DICC 3 12 Data in C close,把CPU中R2内容输出到13号设备的A数据缓冲寄存器中,同时启动设备,把12号设备中C寄存器的数据送入CPUR3,并关闭设备,8.2程序查询方式,3、程序查询接口 -接口:转换器 -数据传送方式决定接口结构 -接口包含如下部分: 设备选择电路:接到总线上的每个设备预先
4、都给定了设备地址码。CPU执行I/O指令时需要把指令中的设备地址送到地址总线上,用以指示CPU要选择的设备。每个设备接口电路都包含一个设备选择电路,用它判别地址总线上呼叫的设备是不是本设备。,8.2程序查询方式,数据缓冲寄存器:当输入操作时,用数据缓冲寄存器来存放从外部设备读出的数据,然后送往CPU;当输出操作时,用数据缓冲寄存器来存放CPU送来的数据,以便送给外部设备输出 设备状态寄存器:接口中的标志触发器,如“忙”、“准备就绪”、“错误”等,用来标志设备的工作状态,以便接口对外设动作进行监视。一旦CPU用程序询问外部设备时,将状态标志信息取至CPU进行分析。,8.2程序查询方式,4.程序查询输入输出方式,(1)先向I/O设备发出命令字,请求进行数据传送;,(2)从I/O接口读入状态字;,(3)检查状态字中的标志,看看数据交换是否可以进行;,(4)假如这个设备没有准备就绪,则第(2)、第(3)步重复进行,一直到这个 设备准备好交换数据,发出准备就绪信号“Ready”为止;,(5)CPU从I/O接口的数据缓冲寄存器输入数据,或者将数据从CPU输出至接 口的数据缓冲寄存器。与此同时,CP
5、U将接口中的状态标志复位。,等给出了输入一个字的过程,8.2程序查询方式,对上图流程的改进,Ready为1?,跳到服务子程序,8.2程序查询方式,设备服务子程序功能: 数据传送 修改内存地址 修改传送字节数 状态分析或控制,8.3 程序中断方式,8.3.1中断的概念、功能 8.3.2程序中断方式的基本接口 8.3.3单级中断 8.3.4多级中断 8.3.5Pentium中断机制,8.3.1中断的概念、功能,中断(Interrupt)是指CPU暂时中止现行程序,转去处理随机发生的紧急事件,处理完后自动返回原程序的功能和技术。 中断系统是计算机实现中断功能的软硬件总称。一般在CPU中设置中断机构,在外设接口中设置中断控制器,在软件上设置相应的中断服务程序。,8.3.1中断的概念、功能,中断适合于处理随机出现的事务 主程序只在设备就绪时才与之交互数据,8.3.1中断的概念、功能,中断系统的功能包括: 1)实现主机和外设的并行工作; 2)处理故障; 3)实现多道程序的分时操作; 4)实时控制; 5)实现人机联系; 6)实现多机通信。,8.3.1中断的概念、功能,中断源:能够向CPU发出中断请求
6、的事件。 常见中断源有: 输入、输出设备中断。如键盘、打印机等工作过程中已做好接收或发送准备。 数据通道中断。如磁盘、磁带等要同主机进行数据交换等。 实时时钟中断。 故障中断。例如电源掉电、设备故障等要求CPU进行紧急处理等。 系统中断。如运算过程出现溢出、数据格式非法,数据传送过程出现校验错,控制器遇到非法指令等等。 为了调试程序而设置的中断。,8.3.1中断的概念、功能,硬件实现,软件实现,不再接中断,可再接中断,8.3.1中断的概念、功能,中断处理过程注意几个问题: 响应中断时机:外界中断请求是随机的,但CPU只有在当前指令执行完毕后,才转至公操作 断点保护问题(PC,寄存器内容和状态的保存) 中断屏蔽:开中断和关中断问题。 中断是由软硬件结合起来实现的,8.3.2程序中断方式的基本I/O接口,数据缓冲寄存器 BS外设接口忙(BuSy)标志 RD外设准备就绪(ReaDy)标志 EI(Enable Interrupt中断允许触发器) IR(Interrupt Request)中断请求触发器 IM(Interrupt Mask)中断屏蔽触发器,8.3.2程序中断方式的基本接口,表示由
7、程序启动外设,将该外设接口的“忙”标志BS置“1”,“准备就绪”标志RD清“0”;,表示接口向外设发出启动信号;,表示数据由外设传送到接口的缓冲寄存器;,表示当设备动作结束或缓冲寄存器数据填满时,设备向接口送出一 控制信号,将数据“准备就绪”标志RD置“1”;,表示允许中断标志EI为“1”时,接口向CPU发出中断请求信号;,表示在一条指令执行末尾CPU检查中断请求线, 将中断请求线的请求信号接收到“中断请求”标志IR;,表示如果“中断屏蔽”标志IM为“0”时,CPU在一条指令执行结束 后受理外设的中断请求,向外设发出响应中断信号并关闭中断;,表示转向该设备的中断服务程序入口;,表示中断服务程序通过输入指令把接口中数据缓冲寄存器的数据读至CPU中的寄存器;,(10)表示CPU发出控制信号C将接口中的BS和RD标志复位。,8.3.3单级中断,所有中断源属于同一级,离CPU越近,优先级越高。 要点:在执行某个中断请求的过程中,不允许其他中断源再打断中断服务程序。即使其优先级别更高。 单级中断示意图8.7类似于第六章的链式查询方式。,8.3.3单级中断,中断响应:,8.3.3单级中断,中断源的
8、识别:串行排队链法(菊花链查询方式) IR1,IR2,IR3为中断请求信号 IS1,IS2,IS3为中断选中信号 INTI为中断排队输入 INTO为中断排队输出 中断源识别之后获取中断向量 当CPU响应中断时,由硬件直接产生一个固定的地址(即向量地址) 由向量地址指出每个中断源设备的中断服务程序入口,这种方法通常称为向量中断。,8.3.4多级中断,概念:多级中断系统是指计算机系统中有相当多的中断源,根据各中断事件的轻重缓急程度不同而分成若干级别,每一中断级分配给一个优先权。 多级指的是优先权级别有多个 每级有一个中断优先权 优先权高的中断级别级可以打断低的级别 如图8.9示,8.3.4多级中断,-多级中断可分为一维多级中断和二维多级中断 一维多级中断:每一级中断中有一个中断源。 二维多级中断:每一级中断中有多个中断源 -说明: 中断响应时,确定哪一级中断和中断源采用硬件实现。采用了独立请求方式和链式查询方式相结合的方式。多级中断可以嵌套,但同一级的中断不允许嵌套 使用多级堆栈保存现场(包括IM) 一个系统有n级中断,则CPU中有n个IR,n个IM,某级中断被响应后,则关闭本级和低于本级
9、的IM,开放更高级的IM。,8.3.4多级中断,8.3.4多级中断,多级中断源的识别 中断优先排队电路 中断向量产生电路,举例,例1、参见图8.9所示的二维中断系统。请问: (1)在中断情况下,CPU和设备的优先级如何考虑?请按降序排列各设备的中断优先级。 答:在中断情况下,CPU的优先级最低。各设备的优先次序是:ABCDEFGHICPU。,(2)若CPU现执行设备B的中断服务程序,IM2,IM1,IM0的状态是什么?如果CPU执行设 备D的中断服务程序,IM2,IM1,IM0的状态又是什么? 答:当前执行B的中断: IM2,IM1,IM0为111 当前执行D的中断: IM2,IM1,IM0为011,(3)每一级的IM能否对某个优先级的个别设备单独进行屏蔽?如果不能,采取什么办法可达到目的? 答:不能,因为共用IM。 通过设置允许中断触发器为0,禁止该设备发出中断,对其屏蔽。,(4)假如设备C一提出中断请求,CPU立即进行响应,如何调整才能满足此要求? 答:增加更高一级(第3级)的中断请求逻辑,将C单独放置于第3级中。,例2(略):参见例1所示的系统,只考虑A,B,C三个设备组成的单级中断结构,它要求CPU在执行完当前指令时对中断请求进行服务。假设:(1)CPU“中断批准”机构在响应一个新的中断之前,先要让被中断的程序的一条指令一定要执行完毕;(2)TDC为查询链中每个设备的延迟时间;(3)TA,TB,TC分别为设备A,B,C的服务程序所需的执行时间; (4)TS,TR为保存现场和恢复现场所需的时间;(5)主存工作周期为TM。 试问:就这个中断请求环境来说,系统在什么情况下达到中断饱和?,中断处理流程,并假设执行一条指令的时间也为TM。如果三个设备同时发出中断请求,那么依次分别处理设备A、设备B、设备C的时间如下: tA = 2TM + TDC + TS + TA + TR tB = 2TM + 2TDC + TS + TB + TR tC = 2TM + 3TDC + TS + TC + TR 处理三个设备所需的总时间为:T=tA+tB+tC T是达到中断饱和的最小时间,即中断极
《陕西师范大学-计算机组成原理-课件ppt-白中英第5版-chp8》由会员F****n分享,可在线阅读,更多相关《陕西师范大学-计算机组成原理-课件ppt-白中英第5版-chp8》请在金锄头文库上搜索。