计算机组成与体系结构第六章输入输出系统2020/6/81安徽师范大学计算机科学与技术系陈付龙6.1概述6.2程序直接控制方式6.3程序中断方式6.4DMA方式6.5I/O通道方式6.6输入输出处理机6.7总线6.8I/O设备本章习题目录23输入输出设备简称外设,类型多种多样,速度、信号类型不同如何和主机进行通信?I/O接口I/O设备CPU4输入输出系统由外设、接口电路以及相关的软件程序共同构成。外设往往不能直接和主机进行通信,需要通过接口电路及相关的软件程序进行转换,才能在主机的控制下进行工作。6.1.1I/O接口6.1.2I/O方式6.1.3总线6.1概述56.1.1I/O接口6进行地址译码和设备选择实现主机和外设的通信联络控制实现数据缓冲信号格式的变换传送控制命令和状态信息I/O接口的功能6.1.1I/O接口7CPU数据线地址线命令线状态线I/O接口数据缓冲寄存器DBR控制逻辑电路设备状态标记设备选择电路命令寄存器和命令译码器数据线I/O设备命令状态I/O接口的基本组成设备选择电路命令寄存器、命令译码器数据缓冲寄存器设备状态标记组成功能选址功能传送命令的功能传送数据的功能反映外设工作状态的功能6.1.1I/O接口86.1.1I/O接口I/O接口的类型按数据传送方式分类按主机访问I/O设备的控制方式分类按功能选择的灵活性分类I/O接口举例显示器适配卡声卡网络适配器硬盘驱动器接口电路96.1.2I/O方式程序直接控制方式程序中断方式直接存储器存取(DMA)方式I/O通道方式输入输出处理机方式10概念特点分类多个部件分时共享的公共信息传送线路一个部件发出的信号可以被总线上的所有部件所接收。按传输信息种类可以划分为数据总线地址总线控制总线6.1.3总线116.2程序直接控制方式6.2.1程序查询方式工作流程6.2.2程序查询方式接口126.2.1程序查询方式工作流程无条件传送方式程序查询方式程序直接控制方式无条件传送方式也称为同步传送方式,适用于一些简单的外设,默认外设始终处于准备就绪状态,CPU对外设接口进行周期性的定时访问。软、硬件结构都很简单,但要求时序配合精确,一般的外设难以满足要求,只适用于简单的慢速设备。程序查询方式也称为异步传送方式,由于许多外设的工作状态很难事先预知,就要求CPU在程序中查询外设的工作状态才能执行I/O指令进行数据传送。136.2.1程序查询方式工作流程预置传送参数(设置计数值、主存缓冲区首址)启动I/O设备传送一次数据修改主存地址、计数值结束I/O传送准备好?传送完?未完是完否程序查询方式的特点:CPU有“踏步”等待现象,CPU与I/O串行工作。146.2.2程序查询方式接口QDQB&设备选择电路SEL1启动命令准备就绪数据线输入数据启动设备设备工作结束地址线23456数据缓冲寄存器程序查询方式结构简单、易控制,但是CPU需要从外设接口读取工作状态并在条件不满足时继续等待外设完成任务,浪费了许多处理器的时间。156.3程序中断方式6.3.1中断的基本概念6.3.2中断方式的工作流程6.3.3多重中断和中断屏蔽技术6.3.4程序中断方式接口166.3.1中断的基本概念程序中断模式:计算机在执行程序时,若出现异常情况或特殊请求,计算机停止现行程序的执行转向对这些异常情况或特殊请求的处理,处理结束后再返回到现行程序的中断处的这种对紧急事件的处理模式。将实现这种功能所需的软硬件技术,统称为中断技术。这种处理紧急事件的服务子程序称为中断服务程序,将引起中断的事件称为中断源。176.3.1中断的基本概念发中断请求空闲接收数据接收数据准备发中断请求打印打印打印机执行主程序继续执行主程序继续执行主程序响应中断中断返回响应中断中断返回启动打印机传送数据传送数据CPU以打印机为例18CPU响应哪个中断源的中断请求,这就要求中断系统具有相应的判优逻辑.以及动态调整优先级的手段。•中断源提出中断请求CPU响应中断之后,经过某些操作,转去执行中断服务程序。中断请求中断判优中断响应中断处理进入中断服务程序之后,CPU通过执行程序,按照中断请求的需要进行相应的处理。6.3.2中断方式的工作流程196.3.2中断方式的工作流程系统要为每一个中断源设置一个中断请求触发器INTR。中断请求触发器置1时表示中断源有请求,并一直保留到CPU响应了该中断,才可以将这个中断请求清除。这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可以分散在各个中断源中。206.3.2中断方式的工作流程1&&1INTP1INTR1INTR11&&1INTP2INTR2INTR21&&1INTP3INTR3INTR31&&1INTP4INTR4INTR4硬件判优排队器示意图216.3.2中断方式的工作流程1号中断有请求?2号中断有请求?3号中断有请求?NNNYYY转1号中断服务程序入口地址转2号中断服务程序入口地址转3号中断服务程序入口地址软件排队示意图226.3.2中断方式的工作流程中断判优中断请求之间的判优究竟应首先响应哪一个中断源的请求需要根据中断的性质和处理的轻重缓急,把中断源分成若干等级,以便排出一个处理顺序(称为中断排队),让最紧迫、最重要的事件优先处理。CPU按照优先级处理中断排队。CPU与中断请求之间的判优在CPU中一般都设置有一个“允许中断”触发器,指令系统提供了开中断与关中断的功能,如果关中断,则不响应外中断请求;如果开中断,可以响应外部请求。236.3.2中断方式的工作流程中断响应中断响应的时间一条指令执行完毕,由CPU发查询信号查询是否有中断请求,这是CPU响应中断请求的时间限制条件。中断响应的条件中断系统中有允许中断触发器EINT,它可以被开中断指令置为“1”,也可以被关中断指令置为“0”。当EINT为“1”时,表示CPU允许响应中断源的请求,当EINT为“0”时,表示CPU禁止响应中断。所以当EINT为“1”,且有中断请求时,CPU可以响应中断。每条指令执行结束时刻由CPU发查询信号,如果有中断请求,在中断允许的情况下才能响应中断请求。246.3.2中断方式的工作流程中断响应中断隐指令CPU响应中断之后,经过某些操作,转去执行中断服务程序。这些操作由硬件自动完成,把它称作中断隐指令。中断隐指令并不是一条真正的指令,它完成的操作包括:(1)保存断点(2)关中断(3)引出中断服务程序25入口地址…向量地址…排队器输出由软件产生硬件向量法打印机服务程序键盘I/O服务程序时间JMP400JMP300JMP200…………主存16H17H18H200300向量地址入口地址入口地址中断向量地址形成部件设备编码器1000…00010110由硬件产生向量地址再由向量地址找到入口地址6.3.2中断方式的工作流程引出中断服务程序26实现目的每个中断可以设置它允许被哪些中断打断不允许被哪些中断打断可以动态的改变中断处理的先后次序设置中断屏蔽字来实现。屏蔽字的每一位对应一个外设或中断源,该位称为对应外设的中断屏蔽位,可以用设置为“0”表示允许中断,“1”表示不允许中断即屏蔽中断。屏蔽字的内容可以通过相应的指令修改6.3.3多重中断和中断屏蔽技术中断屏蔽机制276.3.3多重中断和中断屏蔽技术DQ&1INTRMASKQ^来自CPU的查询信号中断请求中断屏蔽示意图286.3.3多重中断和中断屏蔽技术表6.1中断优先级与屏蔽字的关系优先级屏蔽字111111111201111111300111111400011111500001111600000111700000011800000001296.3.3多重中断和中断屏蔽技术响应优先级:CPU响应各中断源的中断请求的优先次序往往是硬件线路设置好的,不便于改动处理优先级:采用了屏蔽技术后,可以通过设置屏蔽字改变CPU实际对各中断源请求的处理优先次序关中断保存断点保护现场识别中断源置屏蔽字开中断执行中断服务程序关中断恢复现场恢复屏蔽字开中断中断返回图6.12采用屏蔽技术的中断处理流程关键概念:CPU按照响应优先级进行中断响应,在关中断后,进行保存断点、保护现场、识别中断源还有置新的屏蔽字的工作,然后开中断,执行中断服务程序,但是由于设置了新的屏蔽字,改变了原来的固有优先级,这时优先级高的中断源如果有中断请求,就可以打断现有的中断,进行中断嵌套。306.3.4程序中断方式接口QDQB&设备选择电路SEL启动命令数据线输入数据启动设备设备工作结束地址线24数据缓冲寄存器&1MASKQ来自CPU的查询信号中断请求INTRQ排队器设备编码器Q至低一级排队器来自高一级的排队器向量地址中断响应INTA^135678316.4.1DMA方式的基本概念6.4.2DMA控制器的组成及传送过程6.4DMA方式326.4.1DMA方式的基本概念DMA方式的特点:主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与CPU并行工作。33控制简单CPU处于不工作状态或保持状态未充分发挥CPU对主存的利用率CPU工作周期分成两个时间片,一片给CPU一片给DMACPU和DMA交替地访问主存不需要申请建立和归还总线的使用权DMA与CPU交替访问主存周期挪用法停止CPU访问主存DMA访问主存有三种可能CPU此时不访存;CPU正在访存;CPU与DMA同时请求访存;此时CPU将总线控制权让给DMADMA与主存交换数据的三种方式6.4.1DMA方式的基本概念34AR主存地址寄存器:存放主存中要交换数据的地址,该计数器的初始值为要读取数据的首地址,传送时,每传送一个数据,将地址计数器加1或者减1直至这批数据传送完毕为止。传送长度计数器:记录传送数据块的长度,初始值为传送数据的总字数或总的字节数,有些DMA控制器中,初始化时将字节数或字数求补后送计数器,每传送一个字(或字节),计数器加1,直到计数值为0。数据缓冲寄存器:用来暂存每次传送的数据。输入时,数据由外设先送往数据缓冲寄存器,再通过数据总线送到主存。输出时,数据由主存通过数据总线送到数据缓冲寄存器,然后再送到外设。WCBR6.4.2DMA控制器的组成及传送过程35DAR设备地址寄存器:存放设备的设备码或者表示设备信息存储区的寻址信息,如磁盘数据所在的盘面号和柱面号。DMA控制逻辑:负责管理DMA的传送过程,由时序电路、控制电路以及命令状态控制器等组成。当设备准备好一个数据字时,就向DMA接口发送DREQ信号提出申请,DMA控制逻辑便向CPU发送HRQ请求信号申请总线使用权。等到接收到响应信号HLDA后,DMA控制逻辑开始负责管理DMA传送的全过程,包括传送过程中主存地址计数器、传送长度计数器的修改等。数据缓冲寄存器:用来暂存每次传送的数据。输入时,数据由外设先送往数据缓冲寄存器,再通过数据总线送到主存。输出时,数据由主存通过数据总线送到数据缓冲寄存器,然后再送到外设。6.4.2DMA控制器的组成及传送过程36预处理:主存起始地址设备地址传送数据个数启动设备DMADMADMA数据传送:继续执行主程序同时完成一批数据传送后处理:中断服务程序做DMA结束处理继续执行主程序CPU允许传送?主存地址送总线数据送I/O设备(或主存)修改主存地址修改字计数器数据块传送结束?向CPU申请程序中断DMA请求否否是是数据传送6.4.2DMA控制器的组成及传送过程37DMA接口主存CPUDMA控制逻辑中断机构设备HLDAARWCDARHRQ中断请求数据线地址线+1+1溢出信号DREQDACKBR6.4.2DMA控制器的组成及传送过程38DMA方式与程序中断方式的比较(1)数据传送(2)响应时间(3)处理异常情况(4)中断请求(5)优先级中断方式DMA方式程序硬件指令执行结束存取周期结束能不能低高传送数据后处理6.4.2DMA控制器的组成及传送过程396.5.1概述6.5.2通道工作原理6.5.3通道的类型6.5.4通道的流量6.5I/O通道方式406.5.1概述通道是一个具有特殊功能的