第8章输入输出系统.ppt
第八章 输入输出系统,计算机输入输出系统组成计算机总线输入输出接口输入输出设备硬件部分主要由计算机总线和输入输出接口两部分组成,软件方面需要操作系统的支持输入输出系统的作用连通计算机的各个功能部件和设备,并在它们之间实现数据交换系统复杂多变的原因太多的CPU系列和型号:运行速度、处理功能、接口逻辑各不相同;更多的外围设备:运行原理、提供的功能、读写速度、接口逻辑千差万别不同的用户、不同的应用场合提出众多不同的使用要求,无法使用一种方式、一套方法全面解决问题,计算机输入输出系统概述,解决问题的途径建立公用的交换信息的通路,提供各部件协调使用通路的规则,这个通路就是计算机总线在众多不同的CPU和各种不同的外围设备之间设置功能电路,解决二者之间的连接、沟通、匹配、缓冲等,这个功能电路就是设备接口卡(输入输出接口)支持多个I/O设备并发执行输入输出操作,降低输入输出操作对CPU干预的需求,采用多种不同的输入输出方式,例如中断方式、DMA方式等,第八章 输入输出系统,CPU对外围设备的管理方式程序中断方式DMA方式通道方式,外围设备的速度分级,外设种类繁多,存在以下几种情况:不同种类的外设数据传输速率差别很大;同一种设备在不同时刻传输速率也可能不同。高速的CPU与速度参差不齐的外设怎样在时间上同步呢?解决办法时在CPU和外设之间数据传送时加以定时。对于不同速度的外围设备,需要有不同的定时方式。,外围设备的速度分级,1.速度极慢或简单的外围设备 对这类设备,如机械开关、显示二极管等,CPU总是能足够快地作出响应。换句话说,对机械开关来讲,CPU可以认为输入的数据一直有效,因为机械开关的动作相对CPU的速度来讲是非常慢的,对显示二极管来讲,CPU可以认为输出一定准备就绪,因为只要给出数据,显示二极管就能进行显示,所以,在这种情 况下,CPU只要接收或发送数据就可以了。,外围设备的速度分级,2.慢速或中速的外围设备 由于这类设备的速度和CPU的速度并不在一个数量级,或者由于设备(如键盘)本身是在不规则时间间隔下操作的,因此,CPU与这类设备之间的数据交换通常采用异步定时方式。其定时过程如下:如果CPU从外设接收一个字,则它首先询问外设的状态,如果该外设的状态标志表明设备已“准备就绪”,那么CPU就从总线上接收数据。CPU在接收数 据以后,发出输入响应信号,告诉外设已经把数据总线上的数据取走。然后,外设把“准备就绪”的状态标志复位,并准备下一个字的交换。如果CPU起先询问外 设时,外设没有“准备就绪”,那么它就发出表示外设“忙”的标志。于是,CPU将进入一个循环程序中等待,并在每次循环中询问外设的状态,一直到外设发出“准备就绪”信号以后,才从外设接收数据。通常,把这种在CPU和外设间用问答信号进行定时的方式叫做应答式数据交换。,外围设备的速度分级,3.高速的外围设备由于这类外设是以相等的时间间隔操作的,而CPU也是以等间隔的速率执行输入/输出指令的,因此,这种方式叫做同步定时方式。一旦CPU和外设发生同步,它们之间的数据交换便靠时钟脉冲控制来进行。,8.1 CPU对外围设备的管理方式,例子假设幼儿园一个阿姨带10个孩子,要给每个孩子分4块水果糖。假设孩子们把4块糖都吃完,那么她采用什么方法呢?方法1:她先给孩子甲一块糖,盯着甲吃完,然后再给第二块,等吃完第二块又给第三 块,吃完第三块又给第四块。接着给孩子乙,其过程与孩子甲完全一样。依次类推,直至到 第10个孩子发完四块糖。看来这种方法效率太低,重要之点还在于孩子们吃糖时她一直在守 候,什么事也不能干。方法2:每人发一块糖各自去吃,并约定谁吃完后就 向她举手报告,再发第二块。看来这种新方法提高了工作效率,而且在未接到孩子们吃完糖 的 报告以前,她还可以腾出时间给孩子们改作业。但是这种方法还可以改进。方法3:进行批处理:每人拿2块糖各自去吃,吃完2块糖后再向她报告。显然这种方法工作 效率大大提高,她可以腾出更多的时间改作业。方法4:权力下放,把发糖的事交给另一个人分管,只是必要时她才过问一下。,8.1 CPU对外围设备的管理方式,管理方式有以下几种:程序控制方式程序查询方式程序中断方式DMA方式通道方式,1.程序查询方式,程序查询方式是早期计算机中使用的一种方式。数据在CPU和外围设备之间的传送完全靠计算机程序控制,查询方式的优点是CPU的操作和外围设备的操作能够同步,而且硬件结构比较简单。但问题是,外围设备动作很慢,程序进入查询循环时将白白浪费掉CPU很多时间。这种情况同上述例子中第一种方法相仿,CPU此时只能等待,不能处理其他业务。即使CPU采用定期地由主程序转向查询设备状态的子程序进行扫描轮询的办法,CPU宝贵资源的浪费也是可观的。因此当前除单片机外,很少使用程序查询方式。,2.程序中断方式,中断是外围设备用来“主动”通知CPU,准备送出输入数据或接收输出数据的一种方法。通常,当一个中断发生时,CPU暂停它的现行程序,而转向中断处理程序,从而可以输入或输出一个数据。当中断处理完毕后,CPU又返回到它原来的任务,并从它停止的地方开始执行程序。这种方式和我们前述例子的第二种方法相类似。可以看出,它节省了CPU宝贵的时间,是管理I/O操作的一个比较有效的方法。中断方式一般适用于随机出现的服务,并且一旦提出要求,应立即进行。同程序查询方式相比,硬件结构相对复杂一些,服务开销时间较大。,查询:,程序,并行操作,主机,外设,空闲,启动,等待,工作,程序,交换数据,中断:,主机,程序,外设,空闲,启动,工作,程序,请求,中断程序,交换数据,程序,3直接内存访问(DMA)方式,用中断方式交换数据时,每处理一次I/O交换,约需几十微秒到几百微秒。对于一些高速的外围设备,以及成组交换数据的情况,仍然显得速度太慢。直接内存访问(DMA)方式是一种完全由硬件执行I/O交换的工作方式。这种方式既考虑到中断响应,同时又要节约中断开销。此时,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和外围设备之间进行,以高速传送数据。这种方式和前述例子的第三种方法相仿,主要优点是数据传送速度很高,传送速率仅受到内存访问时间的限制。与中断方式相比,需要更多的硬件。DMA方式适用于内存和高速外围设备之间大批数据交换的场合。,4通道方式,DMA方式的出现已经减轻了CPU对I/O操作的控制,使得CPU的效率有显著的提高,而通道的出现则进一步提高了CPU的效率。这是因为,CPU将部分权力下放给通道。通道是一个具有特殊功能的处理器,某些应用中称为输入输出处理器(IOP),它可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。这种方式与前述例子的第四种方法相仿,大大提高了CPU的工作效率。然而这种提高CPU效率的办法是以花费更多硬件为代价的。,程序查询方式和程序中断方式适用于数据传输率比较低的外围设备,而DMA方式、通道方式 适用于数据传输率比较高的设备。目前,单片机和微型机中多采用程序查询方式、程序中断方式和DMA方式。通道方式大都用在中、大型计算机中。,8.2程序查询方式,用I/O指令编程实现信息传送。,(1)外设状态,启动,完成一次工作,调用完,再请求,00,01,10,空闲:调用前,设备不工作;,结束:调用后,设备完成工作。,在接口中设置状态字表示这些状态。,(2)查询流程,启动外设,N,Y,入/出操作,(3)优缺点,硬件开销小;,实时处理能力差,并行程度低。,(4)应用场合,对CPU效率要求不高的场合,,或诊断、,调试过程。,8.2 程序查询方式,1、设备编址 I/O端口(Port)泛指I/O地址,对应I/O接口寄存器一个接口电路可以具有多个I/O端口,每个端口用来保存和交换不同的信息数据寄存器、状态寄存器和控制寄存器占有的I/O地址常依次被称为数据端口、状态端口和控制端口,用于保存数据、状态和控制信息输入、输出端口可以是同一个I/O地址,8.2 程序查询方式,独立编址:内存地址和I/O设备地址是分开的,访问内存和访问I/O设备使用不同操作码的指令,即访问I/O设备有专门的I/O指令组。优点:I/O端口的地址空间独立控制和地址译码电路相对简单专门的I/O指令使程序清晰易读缺点:I/O指令没有存储器指令丰富,8.2 程序查询方式,统一编址:输入/输出设备中的控制寄存器、数据寄存器、状态寄存器等和内存单元一样看待,它们和内存单元联合在一起编排地址。这样就可用访问内存的指令(读、写指令)去访问I/O设备的某个寄存器,因而不需要专门的I/O指令组。优点:不需要专门的I/O指令I/O数据存取灵活缺点:占去部分存储器空间程序不易阅读(在汇编语言级不容易区别访问存储器和访问外设,8.2 程序查询方式,2、输入输出指令 当用程序实现输入/输出传送时,I/O指令一般具有如下功能:置“1”或置“0”I/O接口的某些控制触发器,用于控制设备进行某些动作,如启动、关闭设备等。测试设备的某些状态,如“忙”、“准备就绪”等,以便决定下一步的操作。传送数据,当输入数据时,将I/O接口中数据寄存器的内容送到CPU某一寄存器;当输出数据时,将CPU中某一寄存器的内容送到I/O接口的数据寄存器。不同的机器,所采用的I/O指令格式和操作也不相同。,8.2 程序查询方式,3、程序查询接口设备选择电路数据缓冲寄存器设备状态寄存器,(1)先向I/O设备发出命令字,请求进行数据传送;,(2)从I/O接口读入状态字;,(3)检查状态字中的标志,看看数据交换是否可以进行;,(4)假如这个设备没有准备就绪,则第(2)、第(3)步重复进行,一直到这个设备准备好交换数据,发出准备就绪信号“Ready”为止;,(5)CPU从I/O接口的数据缓冲寄存器输入数据,或者将数据从CPU输出至接口的数据缓冲寄存器。与此同时,CPU将接口中的状态标志复位。,(6)数据传送,8.2 程序查询方式,4、程序查询输入/输出方式 程序查询方式是利用程序控制实现CPU和外部设备之间的数据传送。程序执行的动作如下:(1)先向I/O设备发出命令字,请求进行数据传送。(2)从I/O接口读入状态字。(3)检查状态字中的标志,看看数据交换是否可以进行。(4)假如这个设备没有准备就绪,则第(2)、第(3)步重复进行,直到这个设备发出准备就绪信号“Ready”为止。(5)CPU从I/O接口的数据缓冲寄存器输入数据,或者将数据从CPU输出至接口的数据缓冲寄存器。与此同时,CPU将接口中的状态标志复位。,8.2程序查询方式,8.2程序查询方式,设备服务子程序的主要功能:实现数据传输修改内存地址,为下一次数据传送做准备修改传送字节数,以便修改传送长度进行状态分析或其他控制,8.3 中断方式及接口,8.3.1中断基本概念,1.定义,CPU暂时中止现行程序的执行,转去执行为某个随机事态服务的中断处理程序。处理完毕后自动恢复原程序的执行。中断系统是计算机实现中断功能的软硬件总称。一般在CPU中设置中断机构,在外设接口中设置中断控制器,在软件上设置相应的中断服务程序。,中断处理过程如图:中断处理示意图主程序只是在设备A,B,C数据准备就绪时,才去处理A,B,C,进行数据交换。在速度较慢的外围设备准备自己的数据时,CPU照常执行自己的主程序。在这个意义上说,CPU和外围设备的一些操作是并行地进行的,因而同串行进行的程序查询方式相比,计算机系统的效率是大大提高了。,2.实质与特点,(1)实质,8.3 中断方式及接口,程序切换,方法:,保存断点,保护现场;,恢复现场,返回断点。,时间:,一条指令结束时切换。,保证程序的完整性。,(2)特点:,随机性,8.3 中断方式及接口,3、与子程序调用的比较(1)相同点:正常程序:主程序 中断服务程序:子程序(2)区别:(A)子程序的执行是程序员事先安排好的;中断服务程序的执行则是由随机的中断事件引起的,比如电源掉电、请求I/O数据传送、现场报警等。(B)子程序的执行往往与主程序有关;中断服务程序可能与被中断的程序毫无关系。(C)有可能出现多个中断事件同时请求的情况,此时,主机就需要进行判优,进而决定为哪一个请求服务。子程序不存在此种情况。,中断源:能引起中断的事件或能发出中断请求的设备常见中断源有:输入、输出设备中断。如键盘、打印机等工作过程中已做好接收或发送准备。数据通道中断。如磁盘、磁带等要同主机进行数据交换等。实时时钟中断。故障中断。例如电源掉电、设备故障等要求CPU进行紧急处理等。系统中断。如运算过程出现溢出、数据格式非法,数据传送过程出现校验错,控制器遇到非法指令等等。为了调试程序而设置的中断。,4.中断分类,(1)硬件中断与软中断,硬件中断:由各种输入/输出设备、一些接口卡等引起的中断被称为外(部)中断,而由处理机硬件故障、程序运行出错等引起的中断被称为内(部)中断,例如非法指令、算术运算溢出、校验错、电源故障等都会产生内中断。软件中断:由写在程序中的语句(例如用户程序中的系统调用指令,trap指令等)引起的一段程序的执行过程,它很类似于一次中断处理过程。软件中断是严格的与程序运行过程同步的,而硬件中断则是随机发生的。,4.中断分类,(2)可屏蔽中断与非屏蔽中断,当产生中断请求后,用程序方式有选择的封锁部分中断,而允许其他部分中断仍得到响应,称为中断屏蔽。实现方法是为每个中断源设置一个中断屏蔽触发器来屏蔽该设备的中断请求。从CPU要不要接收中断请求,从能不能限制某些中断发生的角度,可以把中断分成可屏蔽中断和不可屏蔽中断。可以被CPU通过指令限制其发出中断请求的中断属于可屏蔽中断,例如对某些外围设备就可以在一段时间里执行中断屏蔽;一些中断是不允许执行屏蔽中断的,例如电源掉电中断,称这类中断为不可屏蔽中断。,4.中断分类,由硬件提供服务程序入口地址,(3)向量中断与非向量中断,由软件提供服务程序入口地址,向量中断即中断源的识别标志,可用来存放中断服务程序的入口地址或跳转到中断服务程序的入口地址。,工作原理:在速度较慢的外围设备准备自己的数据时,CPU照常执行自己的主程序。采用中断的方式可以使CPU和外围设备在一些操作上并行工作,来提高CPU效率。但是中断方式的操作复杂,并需要硬件支持。,在中断处理过程中需要注意的:,(1)CPU只有在当前一条指令执行完毕后,才能响应中断,(2)中断时的现场保存和返回时的现场恢复(3)“中断屏蔽”触发器IM:0允许中断,1不接受中断(4)中断处理过程由硬件和软件协作完成;中断周期和服务程序,8.3.2程序中断方式的基本接口,程序中断由外设接口的状态和CPU两方面来控制:在接口方面,有决定是否向CPU发出中断请求的机构,主要是接口中的“准备就绪”标志(RD)和“允许中断”标志(EI)两个触发器;在CPU方面,有决定是否受理中断请求的机构,主要是“中断请求”标志(IR)和“中断屏蔽”标志(IM)两个触发器。,8.3.2程序中断方式的基本接口,设备选择器。设备选择器用来判别总线上送出的地址(或称呼叫的设备)是否为本设备,它实际上是设备地址的译码比较电路。BS外设接口忙(BuSy)标志RD外设准备就绪(ReaDy)标志EI(Enable Interrupt中断允许触发器)IR(Interrupt Request)中断请求触发器IM(Interrupt Mask)中断屏蔽触发器,8.3.2程序中断方式的基本接口,准备就绪的标志(RD)一旦设备做好一次数据的接收或发送工作,便发出一个设备动作完毕信号,使RD标志为“1”,它就是程序查询方式中的Ready(就绪)标志。在中断方式中,该标志用作为中断源触发器,简称中断触发器。允许中断触发器(EI)可以用程序指令来置位。EI为“1”时,某设备可以向CPU发出中断请求;EI为“0”时,不能向CPU发出中断请求,这意味着某中断的中断请求被禁止。设置EI标志的目的就是通过程序来控制是否允许某设备发出中断请求。,8.3.2程序中断方式的基本接口,中断请求触发器(IR)它暂存中断请求线上由设备发出的中断请求,当IR标志为“1”时,表示设备发出了中断请求。中断屏蔽触发器(IM)CPU是否受理中断的标志。IM标志为“0”时,CPU可以受理外界的中断请求,反之,IM标志为“1”时,CPU不受理外界的中断请求。,8.3.2程序中断方式的基本接口,设备选择器。设备选择器用来判别总线上送出的地址(或称呼叫的设备)是否为本设备,它实际上是设备地址的译码比较电路。BS外设接口忙(BuSy)标志RD外设准备就绪(ReaDy)标志EI(Enable Interrupt中断允许触发器)IR(Interrupt Request)中断请求触发器IM(Interrupt Mask)中断屏蔽触发器,表示由程序启动外设,将该外设接口的“忙”标志BS置“1”,“准备就绪”标志RD清“0”;,表示接口向外设发出启动信号;,表示数据由外设传送到接口的缓冲寄存器;,表示当设备动作结束或缓冲寄存器数据填满时,设备向接口送出一控制信号,将数据“准备就绪”标志RD置“1”;,表示允许中断标志EI为“1”时,接口向CPU发出中断请求信号;,表示在一条指令执行末尾CPU检查中断请求线,将中断请求线的请求信号接收到“中断请求”标志IR;,表示如果“中断屏蔽”标志IM为“0”时,CPU在一条指令执行结束后受理外设的中断请求,向外设发出响应中断信号并关闭中断;,表示转向该设备的中断服务程序入口;,表示在中断服务程序通过输入指令把接口中数据缓冲寄存器的数据读至CPU中的寄存器;,(10)表示CPU发出控制信号C将接口中的BS和RD标志复位。,1.单级中断的概念,单级中断系统是中断结构中最基本的形式。在单级中断系统中,所有的中断源都属于同一级,所有中断源触发器排成一行,其优先次序是离CPU近的优先权高。当响应某一中断请求时,执行该中断源的中断服务程序。在此过程中,不允许其他中断源再打断中断服务程序,即使优先权比它高的中断源也不能再打断。单级中断示意图和体系结构图如下:,8.3.3 单级中断和多级中断,1.单级中断系统,2.单级中断源的识别,如何确定中断源,并转入被响应的中断服务程序入口地址,是中断处理首先要解决的问题。在单级中断中,采用串行排队链法来实现具有公共请求线的中断源判优识别。,串行排队链判优识别逻辑及中断向量的产生,IR1=1时,IR1=0,IR2=1时,3.中断向量的产生,开关理论中把若干个布尔量排成的序列定义为布尔向量。由于存储器的地址码是一串布尔量的序列,因此常常把地址码称为向量地址。当CPU响应中断时,由硬件直接产生一个固定的地址(即向量地址),由向量地址指出每个中断源设备的中断服务程序入口,这种方法通常称为向量中断。显然,每个中断源分别有一个中断服务程序,而每个中断服务程序又有自己的向量地址。当CPU识别出某中断源时,由硬件直接产生一个与该中断源对应的向量地址,很快便引入中断服务程序。向量中断要求在硬件设计时考虑所有中断源的向量地址,而实际中断时只能产生一个向量地址。有些计算机中由硬件产生的向量地址不是直接地址,而是一个“位移量”,这个位移量加上CPU某寄存器里存放的基地址,最后得到中断处理程序的入口地址。还有一种采用向量地址转移的方法。假设有8个中断源,由优先级编码电路产生8个对应的固定地址码(例如0,1,2,7),这8个单元中存放的是转移指令,通过转移指令可转入设备各自的中断服务程序入口。这种方法允许中断处理程序放在内存中任何地方,非常灵活。,硬件向量法,向量地址 12H、13H、14H入口地址 200、300、400,3.中断向量的产生,4.多级中断根据系统的配置不同,多级中断又可分为一维多级中断和二维多级中断,如图所示。一维多级中断是指每一级中断里只有一个中断源,而二维多级中断是指每一级中断里又有多个中断源图中虚线左边为一维多级中断结构,如果去掉虚线则成为二维多级中断结构。,4.多级中断系统,一维多级中断是指每一级中断里只有一个中断源,而二维多级中断是指每一级中断里又有多个中断源。,(1)一个系统若有n级中断,在CPU中就有n个中断请求触发器,总称为中断请求寄存器;与之对应的有n个中断屏蔽触发器,总称为中断屏蔽寄存器。与单级中断不同,在多级中断中,中断屏蔽寄存器的内容是一个很重要的程序现场,因此在响应中断时,需要把中断屏蔽寄存器的内容保存起来,并设置新的中断屏蔽状态。一般在某一级中断被响应后,要置“1”(关闭)本级和优先权低于本级的中断屏蔽触发器,置“0”(开放)更高级的中断屏蔽触发器,以此来实现正常的中断嵌套。(2)多级中断中的每一级可以只有一个中断源,也可以有多个中断源。在多级中断之间可以实现中断嵌套,但是同一级内有不同中断源的中断是不能嵌套的,必须是处理完一个中断后再响应和处理同一级内其他中断源。(3)设置多级中断的系统一般都希望有较快的中断响应时间,因此首先响应哪一级中断和哪一个中断源,都是由硬件逻辑实现,而不是用程序实现。另外,在二维中断结构中,除了有中断优先级排队电路确定优先响应中断级外,还要确定优先响应的中断源,一般通过链式查询的硬件逻辑来实现。显然,这里采用了独立请求方式与链式查询方式相结合的方法决定首先响应哪个中断源。(4)和单级中断情况类似,在多级中断中也使用中断堆栈保存现场信息。使用堆栈保存现场的好处是:a.控制逻辑简单,保存和恢复现场的过程按先进后出顺序进行。b.每一级中断不必单独设置现场保护区,各级中断现场可按其顺序放在同一个栈里。,5.多级中断源的识别 在多级中断中,每一级均有一根中断请求线送往CPU的中断优先级排队电路,对每一级赋予了不同的优先级。显然这种结构就是独立请求方式的逻辑结构。中断优先排队电路中断向量产生电路,每个中断请求信号保存在“中断请求”触发器中,经“中断屏蔽”触发器控制后,可能有若干个中断请求信号IRi进入虚线框所示的排队电路。排队电路在若干中断源中决定首先响应哪个中断,并在其对应的输出线IRi上给出“1”信号,而其他各线为“0”信号(IR1IR4中有一个信号有效)。之后,编码电路根据排上队的中断源输出信号IRi,产生一个预定的地址码,转向中断服务程序入口地址。在多级中断中,如果每一级请求线上还连接有多个中断源设备,那么在识别中断源时,还需要进一步用串行链式方式查询。这意味着要用二维方式来设计中断排队逻辑。,例1、参见图所示的二维中断系统。请问:(1)在中断情况下,CPU和设备的优先级如何考虑?请按降序排列各设备的中断优先级。(2)若CPU现执行设备B的中断服务程序,IM2,IM1,IM0的状态是什么?如果CPU执行设 备D的中断服务程序,IM2,IM1,IM0的状态又是什么?(3)每一级的IM能否对某个优先级的个别设备单独进行屏蔽?如果不能,采取什么办法可达到目的?(4)假如设备C一提出中断请求,CPU立即进行响应,如何调整才能满足此要求?,(1)在中断情况下,CPU的优先级最低。各设备的优先次序是:ABC DEFGHICPU。(2)执行设备B的中断服务程序时IM2IM1IM0=111;执行设备D的中断服务程序时,IM2IM1IM0=011。(3)每一级的IM标志不能对某个优先级的个别设备进行单独屏蔽。可将接口中的EI(中断允许)标志清“0”,它禁止设备发出中断请求。(4)要使设备C的中断请求及时得到响应,可将设备C从第2级取出来,单独放在第3级上,使第3级的优先级最高,即令IM3=0即可。,8.3.5 中断控制器,8259中断控制器是一个集成电路芯片,它将中断接口与优先级判断等功能汇集于一身,常用于微型机系统。其内部结构如图8.11所示。,8.3.5 中断控制器,8位中断请求寄存器(IR)接受8个外部设备送来的中断请求,每一位对应一个设备。中断请求寄存器的各位送入优先权判断器,根据中断屏蔽寄存器(IM)各位的状态来决定最高优先级的中断请求,并将各位的状态送入中断状态寄存器IS。IS保存着判优结果。由控制逻辑向CPU发出中断请求信号INT,并接受CPU的中断响应信号INTA。数据缓冲器用于保存CPU内部总线与系统数据总线之间进行传送的数据。读/写逻辑决定数据传送的方向,其中IOR为读控制,IOW为写控制,CS为设备选择,A0为I/O端口识别。,8.3.5 中断控制器,多个8259进行级联以处理多达64个中断请求。在这种情况下允许有一个主中断控制器和多个从中断控制器,称为主从系统。优先级选择方式有四种:完全嵌套方式:是一种固定优先级方式,连至IR0的设备优先级最高,IR7的优先级最低。这种固定优先级方式对级别低的中断不利,在有些情况下最低级别的中断请求可能一直不能被处理。轮换优先级方式A:每个级别的中断保证有机会被处理,将给定的中断级别处理完后,立即把它放到最低级别的位置上去。轮换优先级方式B:要求CPU可在任何时间规定最优优先级,然后顺序地规定其他IR线上的优先级。查询方式:由CPU访问8259的中断状态寄存器,一个状态字能表示出正在请求中断的最高优先级IR线,并能表示出中断请求是否有效。,8.3.5 中断控制器,8259提供了两种屏蔽方式:简单屏蔽方式,提供8位屏蔽字,每位对应着各自的IR线。被置位的任一位则禁止了对应IR线上的中断。特殊屏蔽方式,允许CPU让来自低优先级的外设中断请求去中断高优先级的服务程序。当8位屏蔽位的某位置“0”时,例如屏蔽字为11001111,说明IR4和IR5线上的中断请求可中断任何高级别的中断服务程序。8259中断控制器的不同工作方式是通过编程来实现的。CPU送出一系列的初始化控制字和操作控制字来执行选定的操作。,8.4.1 DMA的基本概念 DMA是一种完全由硬件执行I/O交换的工作方式。DMA控制器从CPU接过总线控制权,数据交换不经过CPU,直接在内存和I/O设备之间进行,可以高速地传送成组数据。DMA控制器向内存发出地址和控制信号,修改地址,对传送的个数计数,并且以中断方式向CPU报告传送操作的结束。DMA的种类很多,但DMA至少能执行以下操作:(1)从外围设备发出DMA请求(2)CPU响应请求,把CPU工作改成DMA操作方式,DMA控制器从CPU接管总线的控制(3)由DMA控制器对内存寻址(地址和数据传送个数)并执行数据传送的操作。(4)向CPU报告DMA操作的结束,8.4 直接存储器存取(DMA)方式,DMA 和程序中断两种方式的数据通路,8.4 直接存储器存取(DMA)方式,8.4.2 DMA传送方式,停止CPU访问内存,优点:控制简单,它适用于数据传输率很高的设备进行成组传送。缺点:在DMA控制器访内阶段,内存的效能没有充分发挥。,周期挪用方式:当I/O有DMA请求时,由DMA控制器挪用一个或几个主存周期来完成数据的传输,即在CPU指令周期中插入了DMA操作,有冲突时DMA优先。(用于I/O设备读写周期大于内存存储周期的情况),CPU与DMA交替访问存储器:将一个CPU周期分为两个分周期,由CPU与DMA控制器轮流使用总线,也称为透明的DMA方式(硬件逻辑复杂),8.4.3 基本的DMA控制器,(1)内存地址计数器(2)字计数器(3)数据缓冲寄存器(4)“DMA请求”标志(5)“控制/状态”逻辑(6)中断机构(7)设备选择器,1、DMA控制器的基本组成:实际上是在中断接口的基础上添加DMA机构组成的接口电路。,8.4.3 基本的DMA控制器,(1)主存地址寄存器AR。AR用于存放主存中需要交换数据的地址。在DMA传送前,须通过程序将数据在主存中的首地址送到主存地址寄存器。在DMA传送过程中,每交换一次数据,将地址寄存器内容加1,直到一批数据传送完毕为止。(2)字计数器WC。WC用于记录传送数据的总字数,通常以交换字数的补码值预置。在DMA传送过程中,每传送一个字,字计数器加1,直到计数器为0,即最高位产生进位时,表示该批数据传送完毕。于是DMA接口向CPU发中断请求信号。(3)数据缓冲寄存器BR。BR用于暂存每次传送的数据。通常DMA接口与主存之间采用字传送,而DMA与设备之间可能是字节或位传送。因此DMA接口中还可能包括有装配或拆卸字信息的硬件逻辑,如数据移位缓冲寄存器、字节计数器等。,(4)DMA请求标志:每当设备准备好一次传输时发出的一个控制信号,使DMA请求标志位置“1”,向“控制/状态”逻辑发出DMA请求,“控制/状态”逻辑向CPU发出总线使用权的请求HOLD;CPU响应该请求时,发回响应信号HLDA,“控制/状态”逻辑接收到此信号后发出DMA响应信号,使DMA请求标志复位,为交换下一个字作好准备。(5)“控制/状态”逻辑:由控制和时序电路以及状态标志组成。用于修改内存地址计数器和字计数器,指定传送类型,并对DMA请求信号和CPU响应信号进行协调和同步。,(6)中断机构。当字计数器溢出(全“0”)时,表示一批数据交换完毕,由“溢出信号”通过中断机构向CPU提出中断请求,请求CPU作DMA操作的后处理。必须注意,这里的中断与上一节介绍的I/O中断的技术相同,但中断的目的不同,前面是为了数据的输入或输出,而这里是为了报告一批数据传送结束。它们是I/O系统中不同的中断事件。(7)设备地址寄存器DAR。DAR存放I/O设备的设备码或表示设备信息存储区的寻址信息,如磁盘数据所在的区号、盘面号和柱面号。具体内容取决于设备的数据格式和地址的编址方式。,2.DMA 接口功能,(1)向 CPU 申请 DMA 传送,(2)处理总线 控制权的转交,(3)管理 系统总线、控制 数据传送,(4)确定 数据传送的 首地址和长度,(5)DMA 传送结束时,给出操作完成信号,修正 传送过程中的数据地址和长度,8.4.3 基本的DMA控制器,3、DMA数据传送过程可分为三阶段:预处理、数据传送和后处理三个阶段。(1)预处理 在DMA接口开始工作之前,CPU必须给它预置如下信息:给DMA控制逻辑指明数据传送方向是输入(主存写)还是输出(主存读);向DMA设备地址寄存器送入设备号,并启动设备;向DMA主存地址寄存器送入交换数据的主存起始地址;对字计数器赋以交换数据的个数。,3、DMA数据传送过程可分为三阶段:预处理、数据传送和后处理三个阶段。(1)预处理 上述工作由CPU执行几条输入输出指令完成,即程序的初始化阶段。这些工作完成后,CPU继续执行原来的程序。当外部设备准备好发送的数据(输入)或上次接受的数据已经处理完毕(输出)时,它便通过DMA接口向CPU提出占用总线的申请,若有多个DMA同时申请,则按轻重缓急由硬件排队判优逻辑决定优先等级。待设备得到主存总线的控制权后,数据的传送便由该DMA接口进行管理。,3、DMA数据传送过程可分为三阶段:预处理、数据传送和后处理三个阶段。(2)数据传送 DMA方式是以数据块为单位传送的,以周期挪用的DMA方式为例,其数据传送的流程可用下图示意。,CPU,3、DMA数据传送过程,(3)数据传送过程(输入),控制/状态逻辑,中 断 逻 辑,AR,WC,DAR,DMA接口,+1,+1,DMA请求标志,BR,控制/状态逻辑,中 断 逻 辑,AR,WC,DAR,DMA接口,+1,+1,(4)数据传送过程(输出),DMA请求标志,3、DMA数据传送过程可分为三阶段:预处理、数据传送和后处理三个阶段。(3)后处理 当DMA的中断请求得到响应后,CPU停止源程序的执行,转去执行中断服务程序,做一些DMA的结束工作。它包括校验送入主存的数据是否正确;决定是否继续用DMA传送其他数据块,若继续传送,则又要对DMA接口进行初始化,若不需要传送,则停止外设;测试在传送过程中是否发生错误,若出错,则转错误诊断及处理错误程序。,校验送入主存的数是否正确,是否继续用 DMA,测试传送过程是否正确,错则转诊断程序,由中断服务程序完成,4.DMA 接口与系统的连接方式,基本DMA控制器与系统的连接方式有两种方式:一种是公用的DMA请求方式,另一种是独立的DMA请求方式。(1)具有公共请求线的 DMA 请求,(2)独立的 DMA 请求,5.DMA 方式与程序中断方式的比较,(1)数据传送,(2)响应时间,(3)处理异常情况,(4)中断请求,(5)优先级,程序 硬件,指令执行结束 存取周期结束,能 不能,低 高,传送数据 后处理,8.4.4 选择型和多路型DMA控制器,主机板,接口板,1、选择型DMA控制器,物理上可以连接多个设备,逻辑上只允许连接一个设备,即某一段时间内只能为一个设备服务。,选择型DMA控制器,2、多路型DMA控制器,允许各设备以字节为单位交叉传送,或以数据块为单位成组传送。,8.4.5 选择型和多路型DMA控制器,典型DMA芯片,【例】由图看出,T1间隔中控制器首先为打印机服务,因为此时只有打印机有请求。T2间隔前沿磁盘、磁带同时有请求,首先为优先权高的磁盘服务,然后为磁带服务,每次服务传送一个字节。在120s时间阶段中,为打印机服务只有一次(T1),为磁盘服务四次(T2,T4,T6,T7),为磁带服务三次(T3,T5,T8)。从图上看到,在这种情况下DMA尚有空闲时间,说明控制器还可以容纳更多设备。,8.5 通道方式,通道的基本概念 通道”是计算机系统中代替CPU管理控制外设的独立部件,是一种能执行有限IO指令集合通道命令的IO处理机。通道是一个特殊功能的处理器有自己的指令和程序专门负责数据输入输出的传输控制CPU只负责“数据处理”,将“传输控制”下放给通道通道与CPU分时使用内存,CPU可与I/O设备同时工作,1.通道结构在通道控制方式中,一个主机可以连接几个通道。每个通道又可连接多台IO设备,这些设备可具有不同速度,可以是不同种类。这种输入输出系统增强了主机与通道操作的并行能力以及各通道之间、同一通道的各设备之间的并行操作能力。同时也为用户提供了增减外围设备的灵活性。,8.5.1 通道的功能,1.通道结构采用通道方式组织输入输出系统,多使用主机通道设备控制器IO设备四级连接方式。在CPU启动通道后,通道自动地去内存取出通道指令并执行指令。直到数据交换过程结束向CPU发出中断请求,进行通道结束处理工作。,8.5.1 通道的功能,两种类型的总线存储总线:承担通道与内存、CPU与内存间的数据传输任务通道总线I/O总线:承担外设与通道间的数据传送任务存储管理部件:根据事先确定的优先次序,决定下一周期由哪个部件使用存储总线访问内存,8.5.1 通道的功能,通道与设备控制器之间都有统一的标准接口,设备控制器与设备之间则根据设备要求不同而采用专用接口。具有通道的机器一般是大、中型计算机数据流通量很大。大、中型计算机的I/O系统一般接有多个通道。对不同类型的I/O设备可以进行分类管理。通道优先权高于CPU,8.5.1 通道的功能,8.5.1 通道的功能,执行通道指令,组织外围设备和内存进行数据传输,按I/O指令要求启动外围设备,向CPU报告中断等,具体有以下五项任务:(1)接受CPU的I/O指令,按指令要求与指定的外围设备进行通信。(2)从内存选取属于该通道程序的通道指令,经译码后向设备控制器和设备发送各种命令。(3)组织外围设备和内存之间进行数据传送,并根据需要提供数据缓存的空间,以及提供数据存入内存的地址和传送的数据量。(4)从外围设备得到设备的状态信息,形成并保存通道本身的状态信息,根据要求将这些状态信息送到内存的指定单元,供CPU使用。(5)将外围设备的中断请求和通道本身的中断请求,按次序及时报告CPU。,2.CPU对通道的管理CPU对通道的管理:执行I/O指令以及处理来自通道的中断管态:CPU运行操作系统的管理程序的状态目态:CPU执行目的(应用)程序时的状态I/O指令只能在CPU处于管态时才能执行。,8.5.1 通道的功能,3.通道对设备管理器的管理通道对设备控制器的管理:使用通道指令控制数据传送操作,接收通道状态字了解外设状态。设备控制器的任务从通道接受通道指令向通道反映外围设备状态将各种外围设备的不同信号转换成通道能够识别的标准信号,8.5.1 通道的功能,4.主要过程分为如下三步进行:在用户程序中使用访管指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道。通道处理机执行CPU为它组织的通道程序。完成指定的数据输入输出工