计算机组成原理第3章.ppt

上传人:max****ui 文档编号:2890249 上传时间:2019-12-03 格式:PPT 页数:87 大小:850.50KB
返回 下载 相关 举报
计算机组成原理第3章.ppt_第1页
第1页 / 共87页
计算机组成原理第3章.ppt_第2页
第2页 / 共87页
计算机组成原理第3章.ppt_第3页
第3页 / 共87页
点击查看更多>>
资源描述
3.2 输入/输出中的数据传送控制,3.2.1直接程序传送控制 3.2.2程序中断控制 3.2.3 DMA控制 3.2.4通道控制,外部设备的工作过程是其与主机交换数据的过程,输入设备把外界的数据传送给主机处理,输出设备把主机中的数据传送到外部去使用。这一节介绍如何对这些过程进行控制。 3.2.1直接程序传送控制 直接程序传送控制的特点是I/O过程完全处于CPU指令控制下,即外部设备的有关操作(如启、停、传送开始等)都要由CPU指令指定。在典型情况下,I/O操作在CPU寄存器与外部设备(或接口)的数据缓冲寄存器间进行,I/O设备不直接访问主存。 采用程序直接控制,外部设备与CPU的数据传送可有两种方式。,1. 无条件传送方式 无条件程序控制方式下的I/O传送时,CPU像对存储器读写一样,完全不管外设的状态如何。具体操作步骤大致如下: CPU把一个地址送到地址总线上,经译码选择一台特定的外部设备; 输出时CPU向数据总线送出数据;输入时CPU等待数据总线上出现数据; 输出时CPU发出写命令将数据总线上的数据写入外部设备的数据缓冲寄存器;输入时CPU发出读命令,从数据总线上将数据读入CPU的寄存器中。,这种传送方式一般适合于对采样点的定时采样或对控制点的定时控制等场合。为此,可以根据外设的定时,将I/O指令插入程序中,使程序的执行与外设同步。所以这种传送方式也称为程序定时传送方式或同步传送方式。 下面是一段8086程序,它的功能是测试状态寄存器(端口地址为27 H)的第2位是否为1,若为1则转移到ERROR进行处理 IN AL,27H ; 输入 TEST AL,00000100B JNE ERROR。 无条件传送是所有传送方式中最简单的一种,传送方式,它需要的硬件和软件数量极少。 2. 程序查询传送方式 由于多数外部设备与CPU之间的数据传送都是随机的,并且要求CPU必须顾及I/O设备的工作状态。这时CPU必须不断查询各设备的工作状态。当计算机系统中只有一台外设时,CPU要定时地对这台设备的状态进行查询(这时CPU常常处于询问等待状态,或在执行主要功能的程序中穿插地进行询问)。当有多台外设时,CPU一般是循环地逐一进行询问;有些系统,将各个外设的状态标志位线“或”在一条公共检测线上,CPU首先检测此线,有服务请求再去查询是哪台设备。 图3.21是以输入数据为例说明程序查询控制接口原理示意图。,它主要包括如下3个部件: (1) 设备选择电路设备选择电路用以判别地址总线上送出的地址(或称为呼叫的设备)是否为被查询设备,它实际上是设备地址的译码比较电路。 (2) 数据缓冲寄存器输入操作时,用数据缓冲寄存器存放从外部设备读出的数据,然后送往CPU;输出操作时,用数据缓冲寄存器存放从CPU送来的数据,然后送给外部设备输出。 (3) 设备状态位(标志)设备状态位是控制器中的标志触发器,如“忙”、“准备就绪”、“错误”等,用以表示设备的工作状态,以便接口对外设进行监视。一旦CPU用程序询问I/O设备时,则,状态位信息取至CPU进行分析。 程序查询方式是利用程序控制实现CPU与I/O设备之间的数据传送。程序执行过程中的有关动作(以输入为例)如下: CPU 向地址总线上送出地址,选中设备控制器; CPU 看“忙”触发器是否为“0”,若为“0”,则发出命令字,请求启动外设进行数据输入,置“忙”触发器为“1”,置“就绪”触发器为“0”,然后不断检测“就绪”触发器何时变为“1”; 接口接到CPU的命令字后,立即启动外设工作,开始输入数据;, 外设启动后将输入数据送入数据缓冲寄存器; 外设完成数据输入后,置“就绪”触发器为“1”,通知CPU已经“Ready”(准备就绪); CPU从数据缓冲寄存器中读入输入数据,并将控制器状态标志复位。 采用程序直接控制模式简单、控制接口硬设备较少。一般计算机都具有这种功能,但是,明显地存在着以下缺点: (1) CPU与外部设备只能串行工作。由于CPU的速度比外部设备的速度快得多,因此,CPU的大量时间都处于空闲、等待状态,系统的效率较低。 (2) CPU在一段时间内只能和一台外部设备交换信息,无法使其他外部设备同时工作。 (3) 发现和处理预先无法估计的错误和异常比较困难。 因此,这种输入输出控制方式多用于CPU速度不高、外部设备种类不多的情况。,3.2.2程序中断控制 在实际应用中,多数事件是非寻常或非预期的。当这样的要紧事件发生时,CPU应当暂停当前正在执行的程序,先转去执行处理要紧事件的子程序;紧急事件处理完毕之后,恢复原来的状态,再继续执行原来的程序。这种对要紧事件的处理模式,称为程序中断(interrupt)控制模式,简称中断控制或中断。这种处理要紧事件的服务子程序称为中断子程序。这种引起中断的事件称为中断源。 下面以打印控制为例,说明中断控制的基本过程: 每台打印机(外设)都设有自己的缓冲寄存器,CPU用访问指令启动打印机,并将要打印的数据传送到打印机的数据缓冲寄存器;然后,CPU,可以继续执行原来的其他程序,打印机开始打印这批数据。这批数据打印完成后,打印机向CPU发出中断请求,CPU接到中断请求后对打印机进行中断服务,如再送出一批打印数据等,然后又继续执行原来的程序。这一过程如图3.22所示。 在计算机系统中引入中断的概念,是计算机技术发展史上的一个里程碑。中断控制允许CPU与外设在大部分时间并行地工作,只有少部分时间用以互相交换信息(打印机打印一行字需几毫秒到几十毫秒,而中断处理是微秒级的)。从宏观上看,CPU与打印机主要是并行工作。当有多个中断源时,CPU可纵观全局,根据外部事件的轻重缓急进行,权衡安排一个优先队列,掌握I/O的主动权,使计算机的效率大大提高。随着计算机技术的发展,中断进而用于程序错误或硬设备故障的处理、人|机联系、多道程序、分时操作、实时处理、目标程序与操作系统间的联系、多处理机系统中各处理机间的联系等。 1. 中断请求 (1) 中断源 中断由中断源发出。中断的复杂性主要表现在中断源的多样性上。常见的中断源有以下一些: 输入、输出设备中断。如键盘、打印机等工作过程中向主机发出已做好接收或发送准备信息。 数据通道中断。如磁盘、磁带等要同主机,进行数据交换等。 实时时钟中断。当外部时钟电路需要定时时,可由CPU发出命令,令时钟电路(这种电路的延迟时间往往是可编程的即可以用程序确定和改变)开始工作;规定的时间到后,时钟电路发出中断请求,由CPU加以处理。若用无条件传送,要由CPU执行一段程序实现延迟,一方面,在这段时间内CPU不能干别的工作,降低了CPU的利用率,另一方面,时间也不十分精确。 故障中断。例如电源掉电、设备故障等要求CPU进行紧急处理等。 系统中断。如运算过程出现溢出、数据格式非法,数据传送过程出现校验错,控制器遇到,非法指令等等。 为了调试程序而设置的中断。一个新的程序编制好以后,必须经过反复调试才能正确可靠地工作。在程序调试时,为了检查中断结果,或为了寻找毛病所在,往往要求在程序中设置断点或让程序进行单步工作(一次只执行一条指令)。这也要由中断系统来实现。 通常,把由处理机外部引起的中断(如设备中断等)称为外中断,由内部引起的中断称为内中断(如系统中断等);把由于故障等引起的中断称为强迫中断,把程序安排的中断称为自愿中断。下面主要讨论外中断。 中断控制过程实质上是执行一段与中断源相应的中断服务子程序。对不同的中断源,应采取不同,的处理措施,要有相应的中断服务子程序。计算机为了处理多种中断,要事先把处理这些中断的服务子程序分别放在存储器的不同的位置(存储区域)。因此中断系统的主要功能是在中断事件发生时,将控制转向相应的服务子程序。 (2) 中断请求的提出 中断过程是从中断源发出中断请求而始。为了让每个中断源都能发出中断请求信号,要为每一个中断源设一个中断请求触发器INTR。当外部事件发生时,I/O控制器应将相应的中断请求触发器置“1”,并一直保留到CPU响应了这个中断,才可以将这个中断请求清除。 如图3.23所示,中断源向CPU提出中断请求的方法有两种:一是每一个中断请求触发器对应,CPU中断寄存器INT中的一位;一是所有中断请求信号“或”成一个中断信号,送入CPU的一位中断寄存器INT中,形成单线中断,CPU再按一定的顺序查询(如图中用INTA信号查询)是哪一个中断源发出了申请。中断寄存器的内容称为中断字或中断码。 (3) 中断排队 由于中断请求的随机性,有可能出现多个中断源同时(一个指令周期内)发出中断请求的情况。那么在这种情况下,CPU究竟应该响应哪一个中断源的请求呢? 这就需要根据中断源工作性质的重要性、紧迫性把中断源分成若干等级,以便排出一个处理顺序(称为中断排队),让最紧迫、最重要、处理速度较高的事件优先处理。CPU处理中断排队,,即中断判优的原则是: 不同级的中断发生时,按级别高低依次处理。 高级别中断可以使低级别中断过程再中断,称为中断嵌套。但较低级中断不能使较高级中断过程再中断;同级中断过程也不能被同级中断再中断。 同级中断源同时申请中断时,按事先约定的次序处理。 这些原则可以用电路(称硬件判优)或程序(称软件判优)两种方法实现。 (a) 硬件判优 中断优先线路的基本特点,优先级较高的设备提出中断请求后,就自动封锁优先级别较低的设备,的中断请求。图3.24为与图3.23对应的两种中断排队线路,实际上是图3.23两种线路的完善。 (b) 软件判优 实现这种方法需要有专门的语句,每条语句指出不同的设备码。CPU借用专门的检查线路由地址线上按由高到低的顺序发出设备码。不同的设备码经过选择译码,由该设备的D触发器向SELD线上发出信号,最先使SELD线上出现信号的便是需要优先的设备。 (4) 中断屏蔽 简单地说,中断屏蔽就是CPU不理睬某些中断,使这些中断信号暂不被CPU“感觉”,但信号仍保留,以便条件允许时再响应。中断屏蔽的具体方法如图3.25所示,是在I/O的各中断线路中设一个,屏蔽触发器IM,CPU可用指令将它置1或置0。置0时封闭该设备的中断请求触发器INTR,使其不能将申请(“1”)发出。 用中断屏蔽,使同一级及低一级中断不能中断同一级及高一级的中断服务子程序。进而可以利用中断屏蔽作用,组成中断优先管理电路。设某一计算机配备的全部I/O设备分为8级,对应于每一级都有一个定义的8位屏蔽字存于存储器内,可以用一条专门的屏蔽指令取出来送到屏蔽寄存器中。不同屏蔽字中不同位上的0,1码不同,只允许为1的中断请求进入中断寄存器中。这样向屏蔽寄存器中写入不同的屏蔽字,将会得到不同的优先级顺序。 (5) 中断的禁止和开放,简单地说,禁止中断就是CPU拒绝任何中断。拒绝的原因是系统处于两个程序的转换过程或正在执行某些不允许打断的程序。如CPU刚响应了一个中断或刚处理完一个中断过程,寄存器内容还没有来得及保存时,立即响应新的中断,会造成混乱。再如一些用于过程定时控制的程序,在执行过程中一般不允许被中断。为了控制是否响应中断,CPU设置了一个中断允许触发器IFF。 IFF=1 称中断开放,即CPU允许中断; IFF=0 称中断屏蔽,即CPU禁止中断。 开放中断和禁止中断常用两条指令EI和DI来完成 。当CPU执行DI指令后,有中断请求时,CPU不响应,只有等到发出开中断指令后才能响应,如图3.26所示。,DI称为关中断命令,EI称为开中断命令。因此CPU响应中断的条件为: INTIFF=1 它可以用一个“与”门完成。 2. 中断响应 CPU响应中断的条件是: 中断源有中断请求; CPU允许接收中断请求(处于开中断); 通常一条指令执行过程不能响应中断,只有特殊的长指令才允许被中断。 一旦CPU响应中断的条件得到满足,即开始响应,中断,转入响应中断周期。中断响应实际上在计算机中是执行一条隐指令,在该隐指令中CPU完成两个功能: 一是保存原程序的断点和状态;二是转向中断服务程序。 (1) 断点和现场的保存与恢复 CPU响应中断前,即将要执行的下一条指令的地址(由于中断,该条指令不能继续执行了)保存起来,以便返回时,能知道这个地址,继续执行原来的程序。这个地址称为断点。 另一方面,CPU响应中断后,它的累加器、程序状态字PSW(即记录程序执行的一些特征,在微机中称为标志寄存器,但在其他一些机器中,它不仅包括了标志寄存器的内容,还包括了其他特征),以及一些通用寄存器开始转为执行中断服务子程序服务。为此中断处理之前必须把中断前这些寄存器的状态(称中断前的现场)保存起来,以便中断处理结束后被中断的程序能在原来现场状况下恢复继续执行。 值得提及的是,某些微机执行隐指令时,只保存断点的内容,标志寄存器的内容则由中断服务程序开始时通过安排几条指令执行保存。 断点和现场状态的保存地点,因机器而异,但一般有三处可以保存: 把现场状态存入存储器内固定的指定单元。 用堆栈进行保存,如M6800采取这种方式。用堆栈保存现场操作简单,允许多级中断。, 在多组寄存器之间进行切换。如Z|80CPU有两组寄存器,中断服务程序与主程序可以各用一组。这种方法执行速度快,但对有多级中断无能为力。 对现场信息的处理有两种方式: 一种是由硬件对现场信息进行保存和恢复;另一种是由软件,即中断服务程序对现场信息保存和恢复。 (2) 转中断服务子程序入口 对于不同的中断源,CPU要进行的处理不同,中断服务子程序内容也不同。这些中断服务子程序分别放在内存的某些固定区域中。因此中断处理的关键是找出这些服务子程序的首地址。 寻找中断服务子程序入口地址的方法很多,它们大都与中断判优结合进行。下面列举常用的向量,法和查询法作简要介绍。 (a) 向量中断 把中断服务程序入口单元地址(或包括状态字)组织成为向量表,中断响应时利用硬件(中断逻辑)自动地得到存放中断服务程序入口单元地址(或包括状态字),即中断源自己引导CPU获取中断服务程序入口地址的中断过程,称为向量中断。 向量中断往往是在存储空间内划定一些专门的地址单元作为中断向量地址或直接作为中断服务子程序的入口地址。这些地址单元对于硬件来讲是永久性地分配好了的,它们指明了执行中断服务子程序的走向,好像“指路标”。这就是所谓“向量中断”的含义。向量中断可以导致主程序向若干不同,单元中的任一单元转移,至于是哪一单元由中断源决定。如图3.27所示,向量地址是一种间址方式。 采用这种方法的先决条件是,必须用硬件提供中断源的编码(例如利用图3.23所示的中断寄存器,由数据总线向CPU送去一个地址码等),然后用此编码寻找向量地址或中断入口地址。 (b) 中断引导程序查询 在单线中断情况下,处理中断也可以由程序员事先把向量地址编为一段查询程序,即中断引导程序,放在某一存储区间。每当CPU响应中断时,总是使程序转到一个特定的、不可改变的地址单元,从而引出中断引导程序。引导程序根据一定的顺序查询是哪一个I/O设备有中断请求,然后由程序,形成相应的中断服务子程序的入口地址,从而转去执行相应的中断服务子程序。这种方法主要通过软件逐个查询,与向量中断相比,响应中断的时间较长,但所需硬件逻辑少。 3. 中断流程 不同计算机对中断的处理各具特色,就一般而言,中断处理流程如图3.28所示。 4. 中断系统的组成 计算机的中断系统的功能,采用一定的硬件与软件共同实现。这些硬件部分与软件部分紧密配合,不可分离。但哪些功能用硬件(逻辑线路)实现,哪些功能通过软件(程序)实现,各机不同。下面对中断系统的组成仅作一般性说明。,(1) 程序中断控制器(如图3.29) 与程序直接控制输入输出方式相比,程序中断控制器增加了4个触发器和1个寄存器。 (a) 准备就绪触发器(RD) CPU需与外设交换数据时,首先发出启动信号,然后CPU继续完成别的工作。一旦设备做好数据的接收或发送准备工作,便发出一个设备动作完毕信号,置RD标志为“1”,实质上就是程序查询方式中的Ready(准备就绪)标志。在中断模式下,该标志用作中断源触发器,简称中断触发器。,(b) 允许中断触发器(EI) 该触发器可以用程序指令来置位。当EI为“1”时,对应设备可以向CPU发出中断请求;EI为“0”时,不能向CPU发出中断请求,这意味着某中断源的中断请求被禁止。设置EI标志的目的,是通过程序可以控制是否允许某设备发出中断请求。 (c) 中断请求触发器(IR) 该触发器暂存中断请求线上由设备发出的中断请求信号。当IR标志为“1”时,表示设备发出了中断请求。 (d) 中断屏蔽触发器(IM) 该触发器是CPU是否受理中断的标志。IM标志为“0”时,CPU可以受理与该位对应的外界中断请求;IM标志为“1”时,CPU不受理外界中断请求。,(e) 中断向量寄存器(IVR) 该寄存器用来存放对应于中断请求的中断服务程序入口地址。 在图3.29中,标号表示由某一外设输入数据的控制过程: 由程序启动外设,将该外设接口的“忙”标志BS置“1”;“准备就绪”标志置“0”,外设接口开始准备,这是CPU可以继续进行别的工作,实现外设与CPU的并行工作。 接口向外部设备发出启动信号(CPU与外设并行工作) 外设启动完成数据的输入,将输入数据由外设送入接口中的数据缓冲寄存器。 当设备动作结束或缓冲寄存器数据填满时,外设向接口送出一控制信号,将数据“准备就绪”标志RD置“1”,“忙”标志BS清“0”。, 当允许中断标志EI为“1”时,接口向CPU发出中断请求信号IRQ。 表示CPU在一条指令执行结束后检查中断 请求线上有无中断请求,若有,则将该中断请求线上的请求信号IRQ接收到中断请求触发器IR中。 表示如果“中断屏蔽”标志IM为“0”时,CPU在一条指令结束后受理外设的中断请求,向外设发出响应中断信号并关闭中断。 转向该设备的中断服务程序入口。 中断服务程序通过输入指令把接口数据缓冲寄存器里的数据读至CPU中的寄存器组。 CPU发出控制信号C将接口中的BS和RD标志复位。,(2) 中断服务子程序 中断服务子程序是中断过程的核心,它的基本构成如图3.30所示,大体可以分为: 起始、主体和结尾3个部分。 (a) 起始部分的功能是: 判断引起中断的原因,因为INT标志仅仅表明有无中断请求,并不包括有关中断源的进一步的信息,对于不同的原因将转入不同的处理程序; 封锁低级中断请求(设置屏蔽码); 清除中断标志触发器; 保存中断现场,图中的MR语句表示把通用寄存器Ri的内容写入指定单元; 开放中断(IEN1),以便在本次中断处理过程中,可以响应更高级的中断请求,如果本次中断过程不允许再被中断,就可以不进行这一操作,或改为清除IEN操作。,(b) 中断处理程序的主体部分,完成相应的中断处理操作。 (c) 结尾部分的基本功能如下: 封锁中断(IEN0),防止恢复现场过程被其他中断打乱; 恢复本次中断的现场; 清除中断请求寄存器相应位,表明本次中断过程已经结束; 开放低级中断(清除屏蔽); 解除中断封锁(IEN1); 返回被中断的程序,接着往下执行。 5. 多重中断,多重中断处理是指在处理某一个中断过程中又发生了新的中断,即中断一个服务程序的执行,又转去执行新的中断处理。这种重叠处理中断的现象也称为中断嵌套。图3.31所示为一个4级中断嵌套的例子。4级中断的优先级由高到低为1234的顺序。在CPU执行主程序期间同时出现了两处中断请求和时,因2级中断优先级高于3级中断,应首先去执行2级中断服务程序,若此时又出现了第4级的中断请求,则CPU将不予理采。2级中断服务程序执行完返回主程序后,再去执行第3级的中断服务程序,然后执行第4级中断服务程序。若CPU执行第2级中断服务程序过程中,出现了第1级中断请求,因其优先级高于第2级,CPU便暂停对第2级中断服务程序的执行,转去执行第1级中断服务程序,等第1级中断服务程序执行完后,再去执行第2级中断服务程序。,中断级的响应次序可由软件来控制。在有优先级中断屏蔽时, 系统软件可以根据需要改变多重中断的处理次序,使其和中断响应次序不同。由于中断屏蔽码由软件赋值,改变屏蔽位的信息就可以改变多重中断处理次序。这正好反映了中断系统软硬件结合带来的灵活性。,3.2.3 DMA控制 采用程序中断控制,能使多台外设依次启动后,同时进行数据交换的准备工作;若在某一时刻有几台外部设备发中断请求信号,CPU可根据预先规定好的优先顺序,按轻重缓急处理几台外设的数据传送,从而实现了外部设备间的并行工作,提高了计算机系统的工作效率。但是,中断系统的保存与恢复现场需一定的时间,并且主机与外设之间的数据交换要由CPU直接控制。这对一些工作频率高、要成批交换数据且单位数据之间的时间间隔较短的外设,例如磁盘、磁带等来说,将引起CPU频繁干预,CPU长时间为外设服务,同时还可能引起数据丢失。,DMA(直接存储器存取direct memory access)控制是在内存与设备之间开辟一条直接数据传送通路,并把传送过程交DMA控制器进行管理,形成以存储器为中心的体系结构。DMA可以看作是和CPU共享存储器的处理器,只不过“头脑”比较简单而已。CPU与DMA各自能独立地工作,挖掘了系统部件级的并行性。 1. DMA传送方式 DMA控制器与CPU通常采用以下3种方式分别占用内存。 (1) CPU暂停访问内存 对CPU来说,一般DMA的优先级高于中断。CPU暂停访问内存就是用DMA信号迫使CPU暂时,让出对总线的控制权。具体地说,当外部设备要求传送一批数据时,由DMA控制器发一个请求信号给CPU,请求CPU暂时放弃对地址总线、数据总线和有关控制总线的控制权,由DMA控制器用以控制数据传送。一批数据传送完毕,DMA控制器再把总线控制权归还给CPU。 图3.32(a)是这种传送方式的时序图。 这种传送方法的优点是控制简单,适应于数据传输速率很高的设备进行成组传送;缺点是在DMA控制器访问内存阶段,CPU基本处于不工作状态或称保持状态,CPU和内存的效能没有充分发挥,相当一部分内存工作周期是空闲的,因为外部设备传送两个数据之间的间隔一般总是大于内存存储周期,,即使高速I/O设备也是如此。例如,软盘读出一个8位二进制数大约需要32s,而半导体内存的存储周期小于1 s,因此许多空闲的存储周期不能被CPU利用。 (2) DMA与CPU交替访问内存 这种方法是把一个存储周期分成两个时间片,假设CPU工作周期为1.2 s,存取周期小于0.6 s,那么一个存储周期可分为C1和C2两个分周期,其中C1专供DMA控制器访内,C2专供CPU访内。如果CPU工作周期比内存存取周期长很多,此时采用交替访内的方法可以使DMA传送和CPU同时发挥最高的效率,其原理示意图如图3.32(b)所示。,这种方式不需要总线使用权的请求、建立和归还过程,总线使用权是通过C1和C2分时控制的,CPU和DMA控制器各自有自己的访内地址寄存器、数据寄存器和读/写信号等控制寄存器。 实际上C1,C2控制着一个总线的多路转换器,使控制权的转移几乎不需要太多时间,CPU既不停止主程序运行,也不进入等待状态,是一种高效率的工作方式。当然,这是以相应的硬件逻辑复杂性为代价的。 (3) 直接访问和周期挪用 这种传送方式是前两种方式的折衷: 当外部设备没有DMA请求时,CPU按程序要求访问内存;一旦设备有DMA请求,则挪用一个或几个内存周期进行数据传送。,外部设备请求DMA传送数据时可能遇到两种情况: 一种是CPU不需要访问内存,如CPU正在执行乘法指令,由于乘法指令执行时间较长,此时外部访问内存与CPU访问内存没有冲突,即外部设备挪用一、二个内存周期对CPU执行程序没有任何影响。这种情况也称为DMA的直接访存工作方式,是标准的DMA工作方式,DMA也因此而得名。 另一种情况是外部设备访问内存时,CPU也要访问内存,这就产生了访问内存冲突。通常,让外部设备优先访问内存,因为外部访问有时间要求,前一个外部数据必须在下一个访内请求到来之前存取完毕。这样,I/O设备挪用了一、二个内存周期,,意味着CPU延缓了对指令的执行,换句话说,在CPU执行访内指令的过程中插入DMA请求,挪用了一、二个内存周期。 图3.32(c)是周期挪用的DMA方式示意图。 与暂停CPU访内的DMA方法比较,周期挪用的方法既实现了I/O传送又较好地发挥了内存和CPU的效率,是一种广泛采用的方法。但是每一次周期挪用都需要申请总线控制权、建立总线控制权和归还总线控制权的过程。当传送一个字时,对内存来说只需要一个周期的时间,而对DMA控制器来说往往要25个内存周期(视逻辑线路的延迟而定)。通常,周期挪用的方法适用于外部设备读写周期大于内存存储周期的情况。,2. DMA控制器 (1) DMA控制字 与控制器通过执行机器指令字实现运算一样,DMA的工作是通过执行控制字实现的。控制字存放在内存的指定区域中,当某设备需要与内存交换一次数据时,就取出对应的控制字到DMA中的控制字寄存器中,由DMA控制器进行分析和执行,控制字的一般格式为 CZ N D 其中: CZ表示操作的类型,例如外部设备的启停等控制动作; N表示交换代码的字长数; D表示正在交换代码的内存地址。,对于执行输入和输出的控制字来说,每交换一次应修改一下D和N的值,修改在DMA工作的某一节拍里进行。修改后的控制字仍放回内存的特定单元。 (2) DMA控制器的组成 图3.33为DMA系统的框图。图中的设备为输入设备。 为了完成取控制字分析控制字执行控制字的过程,DMA控制器主要应由如下部分组成: 内存地址计数器BA。它用来存放所需读写的数据的起始地址D。操作开始时,存放所要读写的存储字段的首址,以后每传送一个字,其内容加1(或减1),以给出下个要传送的字的地址。, 字计数器BC。用来对要传送的字节数目计数。在操作开始时,填入要传送的字节的总数,即数据块的长度。它应有减1功能,每传送一个字节,其内容减1,直到为0。“0”标志着传送结束。 状态寄存器或控制寄存器。用以存放控制字或状态字。有的使用两个寄存器分别存放。此外,还有一些辅助元件,如数据缓冲寄存器BD、外部设备地址寄存器、地址选择器(用以识别总线地址,控制各设备寄存器的收发)以及中断控制逻辑(预处理和后处理时用)。 3) DMA控制器的操作 DMA执行的操作一般应包括: 接收外设发出的DMA请求;, 向CPU发出DMA请求,CPU回答后,从CPU的控制下对总线进行接管; 由外部逻辑对存储器寻址,决定数据传送的地址单元以及数据传送的长度,并执行数据的传送操作控制; 指出DMA操作的结束,使CPU恢复对总线的控制。 3. DMA传送过程 DMA数据传送过程如图3.34所示,可分为三个阶段: DMA传送前预处理、数据传送及传送后处理。 图3.34DMA传送过程 (1) DMA预处理,DMA预处理是由程序做的一些必要的准备工作: 先由CPU执行几条I/O指令,测试设备状态;向DMA控制器的设备地址寄存器中送入设备号并启动设备;在内存地址计数器BA中送入交换数据的起始地址,在数据字数计数器BC中送入交换的数据个数。在这些工作完成之后,CPU继续执行原来的程序。 外部设备准备好发送的数据(输入)或上次接收的数据已处理完毕(输出)时,将通知DMA控制器发出DMA请求,申请主存总线。当有几个DMA申请时,要按轻重缓急用硬件排队线路按预定优先级别排队。DMA得到主存总线控制权后,即可开始数据传送。,(2) 数据输入输出操作 DMA的数据传送可以以字为基本单位,也可以以数据块为基本单位进行。以数据块为基本单位传送时,每次DMA占用总线后的数据输入和输出操作都是循环实现的。 输入操作,首先从外部设备的存储介质(缓冲寄存器)读入一个字(设每字16位)到DMA数据缓冲寄存器BD中(如果设备是面向字节的,一次读入一个字节,需要将两个字节装配成一个字)。这时,将DMA地址计数器BA的内容送主存地址寄存器,将BD中的字送入主存数据寄存器,启动写操作;BA的内容增值为下一个字地址,数据字数寄存器BC的内容减1。若BC中内容为零,则传送停止,置数据块结束标志,向CPU发中断请示;否则,进入下一个输入循环。, 输出操作。首先将DMA内存地址计数器BA的内容送主存地址寄存器,启动主存读操作;将主存数据寄存器内容送DMA数据缓冲寄存器BD中;将数据缓冲寄存器BD中的一个字经过拆卸输出到I/O设备的存储介质上;BA的内容增值到下一个字地址;字计数器BC减1,直到BC内容为零,传送停止,向CPU发“DMA结束”中断请示,否则进入下一个输出循环。 (3) DMA后处理 一旦DMA的中断请求得到响应,CPU便暂停原来程序的执行,转去执行中断服务程序,做一些DMA的结束处理工作。这些工作常常包括校验送入主存的数据是否正确,决定是继续用DMA方式传送下去还是结束传送等。,4. DMA小结 与中断控制相比,DMA控制有如下特点: (1) 中断方式是通过程序切换进行,CPU要停止执行现行程序转去执行中断服务子程序,在这一段时间内,CPU只为外设服务。DMA控制是硬件切换,CPU不直接干预数据交换过程,只是在开始和结束时借用一点CPU的时间,大大提高了CPU的利用率,系统的并行性较高。 (2) 对中断的响应只能在一条指令执行完成时进行,而对DMA的响应可以在指令周期的任何一个机器周期(存取周期)结束时进行,如图3.35所示。,(3) 中断具有对异常事件的处理能力,而DMA模式主要用于需要大批量数据传送的系统中,如磁盘存取、图像处理、高速数据采集系统、同步通信中的收发信号等方面,可以提高数据吞吐量。有的系统(如IBM PC/XT),采用DMA技术进行存储器的动态刷新。,3.2.4通道控制 DMA直接依靠硬件进行管理,只能实现简单的数据传送。随着系统配置的I/O设备的不断增加,输入输出操作日益繁忙,为此要求CPU不断地对各个DMA进行预置。这样,CPU用于管理输入输出的开销亦日益增加。为了减轻CPU负担,I/O控制部件又把诸如选设备、切换、启动、终止以及数码校验等功能也接过来,进而形成I/O通道,实现输入输出操作的较全面管理。 通道已经有了简单的通道指令,可以在一定的硬件条件下,通过执行通道程序进行I/O过程的控制。,通道结构的弹性比较大,可以根据需要加以简化或增强。早期的通道虽可以独立地执行通道程序,但还没有完整的指令系统,仍需借助CPU协同才能实现控制与处理。这种通道基本上仍可看作主机的一部分。后来,通道结构的功能进一步增强,具有了完整的逻辑结构,形成与主CPU并行工作的I/O处理器(IOP)。主CPU将I/O操作方式与内容存入主存,用命令通知IOP并由IOP独立地管理I/O操作,需要时,CPU可对IOP进行检测,终止IOP操作。图3.36为IBM 4300系统的I/O结构图。它形成一种4级连接: CPU与主存通道设备控制器外部设备。其中,选择通道、字节多路通道、数组多路通道是3种通道类型。,1. 通道控制原理 通道是一种比DMA更高级的I/O控制部件,具有更强的独立处理数据输入输出的功能,能同时控制多台同类型或不同类型的设备。它在一定的硬件基础上利用通道程序实现对I/O的控制,更多地免去了CPU的介入,使系统的并行性更高。 (1) 通道指令和通道程序 和别的处理机一样,通道的功能是通过解释并执行由它特有的通道指令组成的通道程序实现对外部设备的控制。在不同的机器中通道指令的设置是不同的,不过最基本的部分都相差不多,例如一般都有“读”、“写”等等。通道指令除要指出做读或写动作之外,还要指出被传输数据在内存中的开始,地址以及传送数据的个数等。通道独立于CPU,其指令往往用两个或几个字组成一道通道指令,通常称为通道控制字或通道命令字(CCW)。下面是由两个字组成的通道指令格式: 第一字: 命令码 数据地址 第二字: 标 志 传送个数 传送个数在较通用的计算机系统中设置了一组功能较强的通道指令,组成通道指令系统。有了这种指令系统,人们便可以按照程序设计的方法,根据使用外部设备的需要,编写通道程序。通过中央处理机执行输入输出指令,把通道程序交给通道去解释执行。执行完这个通道程序,就完成了该次传输操作的全过程。早期的通道程序存放在主机的,主存中,即通道与CPU共用主存。后来,一些计算机为通道配置了局部存储器,进一步提高了通道与CPU工作的并行性。 (2) 输入输出指令 引进了通道,输入输出工作虽然可以独立于中央处理机进行,但通道的工作还必须听从中央处理机的统一调度。为此,现代的计算机系统中,中央处理机设有“输入输出”指令,常见的该类指令有“启动”、“查询”和“停止”等。中央处理机可以用“启动”指令启动通道,要求输入输出设备完成某种操作或数据传输;可用“查询”指令了解和查询输入输出设备的状态及工作情况;用“停止”指令停止输入输出设备的工作。,输入输出指令应给出通道开始工作所需的全部参数,如通道执行何种操作,在哪一个通道和设备上进行操作等。输入输出指令和中央处理机其他指令形式相同,由操作码和地址码组成,操作码表示执行何种操作,地址码用来表示通道和设备的编码。通道程序的首地址可在执行输入输出指令前预先送入约定内存单元或专用寄存器。下面是一种计算机的输入输出指令格式: 操作码 地址码 通道号 设备号 (3) 输入输出中断 中央处理机启动通道后,通道和外部设备将独立地进行工作。通道和输入输出设备采用“中断”的方式及时向中央处理机报告其工作情况,中央,处理机根据报告作相应处理。这种中断称为输入输出中断,又称外设中断。 输入输出中断可分下面几种: 报告某操作正常结束的“正常结束”中断; 报告输入输出操作已经到达预定环节的“进程中断”; 输入输出设备发现的“故障中断”; 人对输入输出设备发出干预的“干预中断”等等。 2. 通道的功能 通道对外部设备实现管理和控制应有如下功能: 接受中央处理机的输入输出指令,确定要访问的子通道及外部设备;, 根据中央处理机给出的信息,从内存(或专用寄存器)中读取子通道的通道指令,并分析该指令,向设备控制器和设备发送工作命令; 对来自各子通道的数据交换请求,按优先次序进行排队,实现分时工作; 根据通道指令给出的交换代码个数和内存始址以及设备中的区域,实现外部设备和内存之间的代码传送; 将外部设备的中断请求和子通道的中断请求进行排队,按优先次序送往中央处理机,回答传送情况;, 控制外部设备执行某些非信息传送的控制操作,如磁带机的引带等; 接收外部设备的状态信息,保存通道状态信息,并可根据需要将这些信息传送到主存指定单元中。 3. 通道的基本构造 下面以具有较完备功能的通道为例,介绍基本通道的构造形式。图3.37给出了通道基本部分的组成(图中虚线内的部分属于通道)。可以看出,通道已是一个较完整的处理机,它与中央处理机的区别仅在于它是一个专用处理机。 图3.37通道的组成,下面对图中的主要部件作简要介绍。 (1) 通道指令寄存器JZ: 用来存放正在执行的通道指令。 (2) 代码缓冲寄存器JN: 是外部设备与内存进行代码交换时暂存被交换代码的寄存器。 (3) 节拍发生器: 和中央处理机脉冲(节拍)分配器一样,产生通道工作的节拍,控制整个通道有序地工作。 (4) 操作控制器: 根据通道指令所规定的操作或排队结果,按通道节拍产生通道微操作。 (5) 传输控制电路: 控制并传输外部设备和通道之间的代码及信号。,(6) 排队器: 根据预先确定的优先次序,对各子通道提出的请求进行排队,确定通道下一次和哪一个子通道的外部设备进行交换,每次都是让优先级高的先进行交换。排队器加上子通道的记忆部件,就能实现通道逐个地启动子通道进行工作。图中排队器和各设备控制器的连线表示子通道。右边设备控制器与中央处理机以及与传输控制电路之间的连线,是所有设备控制器都有的,为清楚起见图中予以省略,并用虚线所指的圆圈表示被排队器选中的设备。 (7) 地址形成电路: 是根据排队器给出的子通道号确定与该子通道对应的通道程序的指令地址的装置。它相当于中央处理机的程序计数器。,4. 通道控制的工作过程 电子计算机系统执行一次输入输出操作,大体要经过启动,传输和结束三个阶段,基本步骤如下。 中央处理机执行输入输出指令 当程序执行到需要输入输出时,由专门的外设管理程序将本次输入输出的各种主要信息准备好,根据输入输出的具体要求,组织好通道程序,存入内存,并将它的首地址送入约定单元或专用寄存器中,然后执行输入输出指令,向通道发出“启动I/O”命令。 通道控制外部设备进行传输 通道接到“启动I/O”命令后进行以下工作:,从约定的单元或专用寄存器中取得通道程序首地址,并检查其是否正确。 根据这个首地址从内存读取第一条通道指令。 检查通道、子通道的状态是否能使用。如果不能使用,则形成结果特征,回答启动失败,该通道指令无效。 如果该通道和子通道能够使用,就把第一条通道指令的命令码发到响应设备进行启动。等到设备回答并断定启动成功后,建立结果特征“已启动成功”;否则建立结果特征“启动失败”,结束操作。 启动成功后,通道将通道程序首地址保留到子通道中,此时通道可以处理其他工作,设备具体执行通道指令规定的操作。, 若是传送数据操作,设备便依次按自己的工作频率发出使用通道的申请,进行排队。通道响应设备申请,将数据从内存经通道发至设备,或反之。当传输完一个数据后,通道修改内存地址(加1)和传输个数(减1),直至要传输个数达到0为止,结束该条通道指令的执行。 通道指令执行结束及输入输出结束 当设备全部完成一条通道指令规定的操作时,便发出“设备结束”信号,表示该条通道指令确定的传输已经结束,对应子通道可再往下执行一条新的指令。如果执行完的通道指令不是该通道程序中最后一条指令,子通道进入通道请求排队。通道响应该请求后,将保留在子通道中的通道指令地址更新,指向下一条通道指令,并再次从内存读取新的一条,通道指令。一般每取出一条新的通道指令,就将命令码通过子通道发往设备继续进行传输。 如果结束的通道指令是通道程序的最后一条,那么这个设备的结束信号使通道引起输入输出中断,通知中央处理机,本通道程序执行完毕,输入输出操作全部结束。 当中央处理机响应中断后,程序可以根据通道状态,分析结束原因并进行必要的处理。 5. 通道类型 通道装置按它的操作方式可以分成以下3类: (1) 字节多路通道 字节多路通道(multiplexor channel)是一种简单的低速共享通道,在时间分割的基础上,服务于多台,低速和中速外部设备。字节多路通道包括多个子通道,每个子通道服务于一个设备控制器,可以独立地执行通道指令。字节多路通道要求每种设备轮流占用一个很短的时间片,不同的设备在各自分行的时间片内与通道在逻辑上建立不同的传输连接,实现数据的传送。 (2) 选择通道 选择通道是一种高速通道,在物理上它可以连接多个设备,但这些设备不能同时工作。每次只能从所连接的设备中选择一台I/O设备的通道程序,此刻该通道程序独占了整个通道,当它与内存交换完数据后,才能转去执行另一个设备的通道程序,为另一台设备服务。因此连接在选择通道上的若干设备,只能依次使用通道与内存传送数据。数据传送以成组(数据块)方式进行,每次传送一个数据块,因此,传送速率很高。选择通道多适合于快速设备,如固定头磁盘等。 (3) 数组多路通道 数组多路通道是对选择通道的改进,它的基本前提是当某设备进行数据传送时,通道只为该设备服务;当设备在执行寻址等控制动作时,通道暂时断开与这个设备的连接,挂起设备的通道程序,去为其他设备服务,即执行其他设备的通道程序。所以数组多路通道很像一个多道程序的处理器。它有多个子通道,既可以执行多路通道程序,像字节多路通道那样使所有子通道分时共享总通道,又可以像选择通道那样的方式传送数据。如对于磁盘这样的外部设备,虽然传输信息很快,但移臂定位时间很长,如果接在选择通道上,那么,通道很难承受,这样高的传输速率,在磁盘移动臂花费的较长时间里,通道只能空等。数组多路通道可以解决这个矛盾。它允许通道上连接的若干台外部设备同时进行控制操作,例如几台磁盘机可以同时进行移臂操作,但是,只允许一台被选中设备按成组方式进行数据传输操作。因此,对于连接在数组多路通道上的若干台磁盘机,可以启动它们同时进行移臂,查找要访问的扇区,然后按查找完毕的先后次序串行地传输一批批信息。这样就避免了移臂操作过长地占用通道。 对一些小型计算机,为了节省硬件开销,往往不采用独立的通道装置,让中央处理机和通道共用某些硬件。这种通道称为结合型。结合型通道与中央处理机不能并行工作,但是中央处理机与外部设备仍然可以并行工作。,控制,公用寄存器,0,忙,1,0,就绪,1,动作开始,动作结束,交换数据,数据缓冲寄存器,设备 选择,数据总线,地址总线,CPU,接口,设备,置”1”,置”0”,“准备好”,(1),(6),(5),(2),(3),(5),(4),图3.21 程序查询方式的I/O控制器示意图,返回,主程序执行,CPU的其他工作,启动打印机,中断服务子程序 (数据传送),中断服务子程序 (数据传送),响 应 中 断,中 断 返 回,响 应 中 断,中 断 返 回,CPU工作状况,交换数据,交换数据,中 断 请 求,中 断 请 求,空闲,准备,打印,打印,(b) 打印机工作状况,图 3.22 CPU对打印机的中断服务,返回,I / O1,I / O2,I / On,I NTR1,I NTR2,I NTRn,I NT,CPU,I / O1,I / O2,I / On,I NTR1,I NTR2,I NTRn,I NT,CPU,I NTA,1,(a) 多线中断,(b) 单线中断,图 3.23 中断请求,返回,INTR0,INTR0,INTR1,INTR2,1,&,INTR2,1,&,INTR1,&,INTA,&,&,1,INTR1,&,&,1,INTR2,&,&,1,INTR3,&,&,1,INTR4,1,INT,至下一级,允许中断1,允许中断2,允许中断3,允许中断4,(a) 独 立 请 求 线 的 中 断 排 队 线 路,(b) 串 行 优 先 链 中 断 排 队 线 路,图 3.24 中 断 排 队 线 路,返回,&,IM,0,1,IR,1,0,IR,图 3.25 中断屏蔽,返回,指令顺序,K,DI,EI,L,响应中断,不响应中断,响应中断,图 3.26 中断的禁止与开放,返回,中断入口地址1,中断入口地址2,中断入口地址3,. . .,中断服务程序1,中断服务程序2,. . .,中断向量寄存器,中 断 向 量 表,图 3.27 向量中断,返回,关中断,返回断点,开中断,关中断,开中断,保存断点、保存现场,判断中断条件 转入中断服务程序,执行中断服务程序,恢复现场、恢复断点,图 3.28 中断处理流程,返回,返回,转入中断服务程序,屏蔽低级中断(置屏蔽寄存器),IEN 0,保存中断现场: M R,开放中断:IEN 1,根据引起中断的原因转相应处理程序,中断处理程序主体,封锁中断:IEN 0,恢复本次中断现场:R M,IRRi 0,开放低级中断(解除屏蔽),开放中断:IEN 1,执行返回指令,起 始 部 分,结 尾 部 分,图 3.30 中 断 服 务 程 序 的 一 般 结 构,返回,返回,内存工作时间,CPU控制 并使用内存,DMA控制 并使用内存,DMA不访问,CPU 不执行程序,DMA访问,DMA不访问,t,(a) CPU停止访问内存,返回,返回,返回,返回,预处理: 内存起始地址 DMA 设备地址 DMA 传送数据个数 DMA 启动设备,数据传送: 继续执行主程序 同时完成一批数据传送,后处理: 中断服务程序 做DMA结束处理,继续执行主程序,CPU,允许传送?,主存地址送总线; 数据送I / O设备(或主存); 主存地址+1; BC内容(传送个数)减1,数据块 传送结束?,向CPU申请程序中断,DMA请求,Y,N,N,Y,(a) DMA传送,(b) 数据传送阶段的细化,图 3.34 DMA传送过程,返回,CPU工作,取指令,取源操作数,取目的操作数,执行,一个指令周期,DMA允许响应时刻,中断允许响应时刻,图 3.35 DMA与中断响应时刻的比较,返回,存储器管理部件,CPU,内存,选择通道,磁盘 控制器,磁盘 控制器,磁盘,磁盘,磁盘,磁盘,I / O总线,字节多 路通道,设备 控制器,设备 控制器,设备,设备,设备,I / O总线,数组多 路通道,设备 控制器,设备 控制器,设备,设备,设备,I / O总线,图3.36 IBM 4300 系统I / O结构,返回,返回,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!