第4章输入输出系统4.1输入输出原理4.2中断系统4.3通道处理机4.4输入输出处理机4.1输入输出原理通常把处理机与主存储器之外的部分统称为输入输出系统,包括输入输出设备、输入输出接口和输入输出软件等。实际上,运算器、控制器、主存储器和总线等也要通过输入输出系统来管理。4.1.1输入输出系统的特点4.1.2输入输出系统的组织方式4.1.3基本输入输出方式4.1.1输入输出系统的特点输入输出系统是处理机与外界进行数据交换的通道。输入输出系统是计算机系统中最具多样性和复杂性的部分。输入输出系统涉及到机、光、电、磁、声、自动控制等多种学科。输入输出系统最典型地反映着硬件与软件的相互结合。输入输出系统的复杂性隐藏在系统软件中,用户无需了解输入输出设备的具体细节。处理机的外部世界包括:处理机系统操作员本地或远程用户实时输入输出输入输出设备虚拟现实系统其它处理机本身出错处理程序请求1.实时性对于一般输入输出设备,如果处理机提供的服务不及时,可能丢失数据,或造成外围设备工作的错误。对于实时控制计算机系统,如果处理机提供的服务不及时,可能造成巨大的损失,甚至造成人身伤害。对于处理机本身的硬件或软件错误:如电源故障、数据校验错、页面失效、非法指令、地址越界等,处理机必须及时处理。对不同类型的设备,必须具有与设备相配合的多种工作方式。2.与设备无关性独立于具体设备的标准接口。例如,串行接口、并行接口、SCSI(SmallComputerSystemInterface)接口等计算机系统的使用者,在需要更换外围设备时,各种不同型号,不同生产厂家的设备都可以直接通过标准接口与计算机系统连接。处理机采用统一的硬件和软件对品种繁多的设备进行管理。某些计算机系统已经实现了即插即用技术。3.异步性输入输出设备通常不使用统一的中央时钟,各个设备按照自己的时钟工作,但又要在某些时刻接受处理机的控制。处理机与外围设备之间,外围设备与外围设备之间能并行工作针对实时性,采用层次结构的方法,针对与设备无关性,采用分类处理的方法针对异步性,采用自治控制的方法,4.1.2输入输出系统的组织方式1.自治控制输入输出系统是独立于CPU之外的自治系统处理机与外围设备之间要有恰当的分工2.层次结构最内层是输入输出处理机、输入输出通道等中间层是标准接口。标准接口通过设备控制器与输入输出设备连接3.分类组织面向字符的设备,如字符终端、打字机等面向数据块的设备,如磁盘、磁带、光盘等。处理机(CPU)主存储器(MM)存储器总线IO处理机IO处理机IO处理机CUDCUDCUDCUDDCUDCUDDIO总线CUDDCU是设备控制器,D是外围设备输入输出系统的层次结构4.1.3基本输入输出方式1.程序控制输入输出方式状态驱动输入输出方式、应答输入输出方式、查询输入输出方式、条件驱动输入输出方式程序控制输入输出方式的4个特点:(1)何时对何设备进行输入输出操作受CPU控制(2)CPU要通过指令对设备进行测试才能知道设备的工作状态。空闲、准备就绪、忙碌等(3)数据的输入和输出都要经过CPU(4)用于连接低速外围设备,如终端、打印机等例4.1:一个处理机在一段时间内只能管理一台打印机。处理机执行指令的速度为1GIPS,字长32位,打印机每秒钟100个字符。解:处理机用一条指令就能向打印机传送4个字符。因此,处理机的实际利用率只有即4千万分之一。100/1094=0.2510-7输入设备ID处理机CPU主存储器MM输出设备OD程序控制方式的数据传送过程一个处理机管理多台外围设备。处理机采用轮流循环测试方法,分时为各台外围设备服务。优点:灵活性很好。可以很容易地改变各台外围设备的优先级。缺点:不能实现处理机与外围设备之间并行工作。在程序控制方式中一个处理机管理多台外部设备的程序流程图DONE1=1?从设备缓冲寄存器读一个字符到主存储器或者从主存储器传送一个字符到设备缓冲寄存器DONE2=1?从设备缓冲寄存器读一个字符到主存储器或者从主存储器传送一个字符到设备缓冲寄存器否否是是2.中断输入输出方式定义:当出现来自系统外部,机器内部,甚至处理机本身的任何例外的,或者虽然是事先安排的,但出现在现行程序的什么地方是事先不知道的事件时,CPU暂停执行现行程序,转去处理这些事件,等处理完成后再返回来继续执行原先的程序。特点:(1)CPU与外围设备能够并行工作。(2)能够处理例外事件。(3)数据的输入和输出都要经过CPU。(4)用于连接低速外围设备。3.直接存储器访问方式直接存储器访问方式(DMA:DirectMemoryAccess),主要用来连接高速外围设备。如磁盘存储器,磁带存储器、光盘辅助存储器,行式打印机等。输入设备ID主存储器MM存储器总线处理机CPU输出设备ODIO总线DMA方式的数据传送过程DMA方式具有如下特点:(1)外围设备的访问请求直接发往主存储器,数据的传送过程不需要CPU的干预。(2)全部用硬件实现,不需要做保存现场和恢复现场等工作。(3)DMA控制器复杂,需要设置数据寄存器、设备状态控制寄存器、主存地址寄存器、设备地址寄存器和数据交换个数计数器及控制逻辑等。(4)在DMA方式开始和结束时,需要处理机进行管理。DMA输入设备的工作流程如下:从设备读一个字节到DMA控制器中的数据缓冲寄存器中。若一个字没有装配满,则返回到上面;若校验出错,则发中断申请;若一个字已装配满,则将数据送主存数据寄存器。把主存地址送主存地址寄存器,并将主存地址增值。把DMA控制器内的数据交换个数计数器减1。若交换个数为0,则DMA数据传送过程结束,否则回到上面。DMA输出设备的工作流程如下:把主存地址送入主存地址寄存器,并启动主存储器,同时将主存地址增值。将主存数据寄存器中的数据送DMA控制器的数据寄存器。把数据写到输出介质上(可能要逐个字符输出)。把DMA控制器内的数据交换个数计数器中的内容减1。若交换个数为0,则DMA数据传送过程结束,否则回到上面。目前使用的DMA方式实际上有如下三种:(1)周期窃取方式:在每一条指令执行结束时,CPU测试有没有DMA服务申请。借用CPU完成DMA工作流程。包括数据和主存地址的传送,交换个数计数器减1,主存地址的增值及一些测试判断等。周期窃取方式的优点是硬件结构简单,比较容易实现。缺点是在数据输入或输出过程种实际上占用了CPU的时间。(2)直接存取方式:整个工作流程全部用硬件完成。优点与缺点正好与周期窃取方式相反。(3)数据块传送方式:在设备控制器中设置一个比较大的数据缓冲存储器。设备控制器与主存储器之间的数据交换以数据块为单位,并采用程序中断方式进行。采用数据块传送方式的外围设备有软盘驱动器、行式打印机、激光打印机、卡片阅读机、绘图仪等。4.2中断系统4.2.1中断源的组织4.2.2中断系统的软硬件分配4.2.3中断源的识别方法4.2.4中断现场的保存和恢复4.2.5中断屏蔽4.2.1中断源的组织中断系统需要硬件和软件共同来实现。引起中断的各种事件称为中断源。中断系统的复杂性实际上主要是由中断源的多样性引起的。中断源可以来自系统外部,也可以来自机器内部,甚至处理机本身。中断可以是硬件引起的,也可以是软件引起的。把各种各样的中断源分类、分级组织好,是中断系统的关键之一。1.中断源的种类(1)由外围设备引起的中断。低速外围设备每传送一个字节申请一次中断;高速外围设备的前、后处理。(2)由处理机本身产生的中断。如算术溢出,除数为零,数据校验错等。(3)由存储器产生的中断。如地址越界、页面失效、访问存储器超时等。(4)由控制器产生的中断。如非法指令、堆栈溢出、时间片到、切换到特权态。(5)由总线产生的中断。输入输出总线出错,存储总线出错等。(6)实时过程控制产生的中断。(7)实时钟的定时中断。(8)多处理机系统中,从其它处理机发送来的中断。(9)程序调试过程中,由断点产生的中断。(10)硬件故障中断。(11)电源故障中断。2.中断源的分类组织中断源分类组织的目的:在响应中断后能尽快找到中断入口。根据中断事件的紧迫程度,中断源工作速度、性质等进行分类为每一类中断源分配一个硬件的中断入口,在进入这个入口之后,再通过软件找到具体的中断源。可屏蔽中断与不可屏蔽中断,或称一般中断和异常中断。IBM公司的机器,把中断源分为7类:(1)机器检验出错中断。由硬件或软件故障时产生。(2)程序性错误引起的中断。(3)访问管理程序中断。当用户程序执行访管指令引起的中断。(4)可以抑制的机器检验错误引起的中断。(5)外部事件中断。(6)输入输出中断。(7)重新启动中断。处理机不能禁止这类中断3.中断优先级安排中断优先顺序主要由下列因素来决定:中断源的急迫性。设备的工作速度。数据恢复的难易程度。要求处理机提供的服务量。中断优先级与中断服务顺序要求:响应速度快,灵活性好。做法:由硬件排队器决定中断优先级,通过软件设置中断屏蔽码改变中断服务顺序。例如:在IBM370系列机中,把7类中断分为5个中断优先级,从高到低分别是:(1)紧急的机器检验错误引起的中断(2)调用管理程序,程序性错误,可以抑制的机器检验错误引起的中断。(3)外部事件引起的中断(4)外围设备的中断(5)重新启动引起的中断例如:DEC公司的机器,其优先级从高到低分别是:(1)总线错误引起的中断(2)主存刷新中断(3)指令错误引起的中断(4)程序跟踪中断(5)电源掉电中断(6)在线停机中断(7)在线事件中断(如实时钟等)(8)外围设备中断(9)用户程序中断例4.2:某处理机共有4个中断源,中断优先级从高到低分别是:1级、2级、3级和4级。当处理机在执行主程序时,同时有3级和2级两个中断源向处理机发出中断服务请求。当处理机为2级中断源服务时又有4级中断源发出中断服务请求。当处理机为4级中断源服务时又有1级中断源发出中断服务请求。解:处理机响应各中断源的中断请求和执行中断服务程序的过程如下:中断请求主程序中断服务程序1级2级3级4级2、3级4级1级时间t按照中断优先级响应中断请求的例子4.2.2中断系统的软硬件分配有些功能必须用硬件实现,有的功能必须用软件实现,而大部分功能既可以用硬件实现,也可以用软件实现。恰当分配中断系统的软硬件功能,是中断系统最关键问题1.主要考虑的两个因素:中断响应时间:中断响应时间是一个非常重要的指标。灵活性:硬件实现速度快,灵活性差;软件实现正好相反2.中断处理过程表示一般用硬件实现表示一般用软件实现表示可以用硬件实现,也可以用软件实现)现行指令结束,且没有更紧急的服务请求关CPU中断保存断点,主要保存PC中的内容撤消中断源的中断请求保存硬件现场,主要是PSW及SP等识别中断源改变设备的屏蔽状态进入中断服务程序入口保存软件现场,在中断服务程序中使用的通用寄存器等开CPU中断,可以响应更高级别的中断请求中断服务,执行中断服务程序关CPU中断恢复软件现场恢复屏蔽状态恢复硬件现场开CPU中断返回到中断点必须用硬件实现的有:保存中断点和进入中断服务程序入口。这两个功能相当于执行一条转子程序指令,因为中断发生在现行程序的什么地方是不确定的,不能由程序员来安排。必须用软件实现的有:中断服务和返回到中断点。返回到中断点,通过执行一条中断返回指令来实现,中断服务必须用软件实现,因为是“程序中断方式”。3.中断响应时间定义:从中断源向处理机发出中断服务请求开始,到处理机开始执行这个中断源的中断服务程序时为止,这一段时间称为中断响应时间。影响中断响应时间的因素主要有4个:(前2个属于处理机设计,后2个属于中断系统)(1)最长指令执行时间有些指令的执行时间很长,甚至无法预测。(2)处理其它更紧急的任务所用时间如处理DMA请求等。(3)从第一次关CPU中断到第一次开CPU中断所经历的时间中断系统的软件与硬件功能分配,主要就是要考虑这一段内要所的事情用软件来实现,还是用硬件来实现。(4)通过软件找到中断服务程序入口所用时间主要是第1和第3两部分。其中,第1部分是指令系统设计时考虑的问题,在中断系统的设计中,主要考虑第3部分。4.2.3中断