资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,41,单击此处编辑母版标题样式,Computer System Organization and Architecture,返回目录,第,21,讲 直接存储器存取,(DMA),方式,1,DMA,的基本概念,2,DMA,传送方式,3,基本的,DMA,控制器,4,DMA,和中断的区别,1,、,DMA,的基本概念,DMA,方式是指直接依靠硬件在主存与,I/O,设备之间进行直接数据传送,传送期间不需要,CPU,干预。,应用 大批量数据采集、主存与,I/O,简单高速数据传送。如:磁 盘、光盘等。,特点,DMA,只需要占用系统总线,不切换程序、不用处理现场等一系列操作。,DMA,方式的五个特点, 它使主存与,CPU,的固定联系脱钩,主存既可被,CPU,访问,又可被外设访问。, 在数据块传送时,主存地址的确定,传送数据的计数等等都用硬件电路直接实现。, 主存中要开辟专用缓冲区,及时供给和接收外设的数据。,DMA,传送速度快,,CPU,和外设并行工作,提高了系统的效率。,DMA,在开始前和结束后要通过程序和中断方式进行预处理和后处理。,2,、常见的,DMA,数据传送方式,(,1,),CPU,暂停方式,(,成组传送,),当外设要求传送一批数据,由,DMAC,发一个停止信号给,CPU,,,CPU,放弃对总线的控制权,并停止使用总线访问内存。,DMAC,获得总线控制权以后,开始在内存和外设之间进行数据传送,在一批数据传送完毕后,,DMAC,把总线控制权交回给,CPU,,,CPU,就可以使用总线。,控制简单,CPU,处于不工作状态,或保持状态,未充分发挥,CPU,对主存的利用率,主存工作时间,CPU,不执行程序,DMA,不工作,DMA,不工作,DMA,工作,CPU,控制,并使用主存,DMA,控制,并使用主存,t,优点,:,缺点,:在,DMAC,访问阶段,因外设传送二个数据之间的间隔一般大于内存的存储周期,因此,许多空闲的存储周期不能被,CPU,利用。,适用场合,:,数据传输率很高的设备进行成组数据传送。,(,2,)周期挪用,(,周期窃取,),(,单字传送,),当外设没有,DMA,请求,,CPU,按程序要求访问内存,一旦外设有,DMA,请求,则由外设挪用一个或几个内存周期。传送完一个数据后立即释放总线。,I/O,设备要求,DMA,传送会遇到三种情况:,一种是此时,CPU,不需访问主存,(,如,CPU,正在执行乘法指令,由于乘法指令执行时间较长,此时,CPU,不需访问主存,),,故,I/O,设备访存与,CPU,不发生冲突。,第二种情况是,I/O,设备要求,DMA,传送时,,CPU,正在访存,此时必须待存取周期结束时刻,,CPU,才能将总线占有权让出。,第三种情况是,I/O,设备要求访存时,,CPU,也要求访存,这就出现了访存冲突。此刻,,I/O,访存优先于,CPU,访存,因为,I/O,不立即访存就可能丢失数据,这时,I/O,要窃取一二个存取周期,意味着,CPU,在执行访存指令过程中插入了,DMA,请求,并挪用了一二个存取周期,使,CPU,延缓了一二个存取周期再访存。,主存工作时间,CPU,控制,并使用主存,DMA,控制,并使用主存,t,周期挪用(或周期窃取),优点:,实现了,CPU,和外设并行工作;,较好地发挥了主存和,CPU,的效率;,缺点:,外设每次挪用周期都要有申请总线控制权、建立总线控制权、归还总线控制权的过程,虽然传送一个数据只需一个主存周期,但,DAMC,一般要用,2,5,主存周期。,适用场合:,外设读写周期大于内存周期的情况,(,3,),DMA,与,CPU,交替访内,如果,CPU,的工作周期比内存的存取周期长得多,可以将一个,CPU,周期分为两个分周期,第一个分周期专供,DMAC,访内,第二个分周期专供,CPU,访内,从而实现,DMAC,与,CPU,交叉访内。,优点,:,DMA,传送效率最高;,DMA,与,CPU,交替访问,主存工作时间,DMA,控制,并使用主存,CPU,控制,并使用主存,t,CPU,工作周期,C,1,专供,DMA,访问内存,C,2,专供,CPU,访问内存,所有指令执行过程中的一个基准时间,DMA,接口的功能和组成,1,DMA,接口的功能利用,DMA,方式传送数据时,数据的传输过程完全由,DMA,接口电路控制。,DMA,接口应具有如下几个功能:,(1),向,CPU,申请,DMA,传送;,(2),在,CPU,允许,DMA,工作时,处理总线控制权的转交,避免因进入,DMA,工作而影响,CPU,正常活动或引起总线竞争,(3),在,DMA,期间管理系统总线,控制数据传送;,(4),确定数据传送的起始地址和数据长度,修正数据传送过程中的数据地址和数据长度。,(5),在数据块传送结束时,给出,DMA,操作完成的信号。,DMA,接口,主,存,CPU,2. DMA,接口组成,DMA,控,制,逻,辑,中,断,逻,辑,设备,HLDA,AR,WC,DAR,HRQ,中断请求,数据线,地址线,+1,+1,溢出信号,DMA,请求,标志,DACK,BR,(1),主存地址寄存器,AR,。,AR,用于存放主存中需要交换数据的地址。在,DMA,传送前,须通过程序将数据在主存中的首地址送到主存地址寄存器。在,DMA,传送过程中,每交换一次数据,将地址寄存器内容加,1,,直到一批数据传送完毕为止。,(2),字计数器,WC,。,WC,用于记录传送数据的总字数,通常以交换字数的补码值预置。在,DMA,传送过程中,每传送一个字,字计数器加,1,,直到计数器为,0,,即最高位产生进位时,表示该批数据传送完毕。于是,DMA,接口向,CPU,发中断请求信号。,(3),数据缓冲寄存器,BR,。,BR,用于暂存每次传送的数据。通常,DMA,接口与主存之间采用字传送,而,DMA,与设备之间可能是字节或位传送。因此,DMA,接口中还可能包括有装配或拆卸字信息的硬件逻辑,如数据移位缓冲寄存器、字节计数器等。,(4)DMA,控制逻辑。它用于负责管理,DMA,的传送过程,由控制电路、时序电路及命令状态控制寄存器等组成。每当设备准备好一个数据字,(,或一个字传送结束,),,就向,DMA,接口提出申请,(DREQ),,,DMA,控制逻辑便向,CPU,请求,DMA,服务,发出总线使用权的请求信号,(HRQ),。待收到,CPU,发出的响应信号,HLDA,后,,DMA,控制逻辑便开始负责管理,DMA,传送的全过程,包括对主存地址寄存器和字计数器的修改、识别总线地址、指定传送类型,(,输入或输出,),以及通知设备已经被授予一个,DMA,周期,(DACK),等,(5),中断机构。当字计数器溢出,(,全“,0”),时,表示一批数据交换完毕,由“溢出信号”通过中断机构向,CPU,提出中断请求,请求,CPU,作,DMA,操作的后处理。必须注意,这里的中断与上一节介绍的,I/O,中断的技术相同,但中断的目的不同,前面是为了数据的输入或输出,而这里是为了报告一批数据传送结束。它们是,I/O,系统中不同的中断事件。,(6),设备地址寄存器,DAR,。,DAR,存放,I/O,设备的设备码或表示设备信息存储区的寻址信息,如磁盘数据所在的区号、盘面号和柱面号。具体内容取决于设备的数据格式和地址的编址方式。,DMA,传送过程,第一步:,DMA,接口的预置,(,初始化,),(由软件实现), 数据传送之前,,CPU,将执行一段初始化程序,完成对,DMA,接口中各参数寄存器的初始值的设定。主要操作包括:,准备内存区,若是从外设输入数据,则进行内存缓冲区的申请,并对缓冲区进行初始化;若是输出到外设,则先在内存准备好数据。,启动外设,然后,CPU,继续执行其他程序。,设置传送参数,执行,I/O,指令,测试外设状态,对,DMA,接口设置各种参数:,* 内存首址,=,地址寄存器,* 字计数值,=,字计数器,* 传送方向,=,控制寄存器,* 设备地址,=,设备地址寄存器,第二步:,DMA,数据传送(由硬件实现),DMA,接口数据传送过程如下:, 当外设准备好数据(从外设取数),或准备好接收数据(向外设送数)时,就发,“,选通,”,信号,使数据送数据缓冲寄存器,同时,DMA,请求触发器置,“,1,”,。,DMA,请求触发器向控制,/,状态端口发,“,Ready,”,信号,同时向,DMA,控制器发,“,DMA,请求,”,信号。,DMA,接口接受到,“,DMA,请求,”,信号后,就向,CPU,发,“,总线请求,”,信号。,CPU,完成现行机器周期后,响应,DMA,请求,向,DMA,接口发出,“,总线响应,”,信号。,DMA,接口接受到该信号后,向外设接口发,“,DMA,响应,”,信号,使,DMA,请求触发器复位。,CPU,浮动它的总线,让出总线控制权,由,DMA,接口控制总线。,DMA,接口给出内存地址,并在其读,/,写线上发出,“,读,”,或,“,写,”,命令,随后在数据总线上给出数据, 根据读写命令,将数据总线上的数据写入存储器中,或写入数据端口,并进行主存地址增量,字计数值减,1,。,若采用,“,CPU,停止法,”,,则循环第,6,步,直到计数值为,“,0,”,。,若采用,“,周期挪用法,”,,则释放总线,下次数据传送时再按过程,(1),到,(6),进行。,第三步:,DMA,结束处理,根据计数值为,“,0,”,,发出,DMA,结束信号送接口控制,产生,DMA,中断请求信号给,CPU,,当,DMA,的中断请求得到响应后,,CPU,停止源程序的执行,转去执行中断服务程序,做一些,DMA,的结束工作。它包括校验送入主存的数据是否正确;决定是否继续用,DMA,传送其他数据块,若继续传送,则又要对,DMA,接口进行初始化,若不需要传送,则停止外设;测试在传送过程中是否发生错误,若出错,则转错误诊断及处理错误程序。,DMA,接口与系统的连接方式,DMA,接口与系统的连接方式有两种。,下图为具有公共请求线的,DMA,请求方式,若干个,DMA,接口通过一条公用的,DMA,请求线向,CPU,申请总线控制权。,CPU,发出响应信号用链式查询方式通过,DMA,接口,首先选中的设备获得总线控制权,即可占用总线与主存传送信息。,上图是独立的,DMA,请求方式,每一个,DMA,接口各有一对独立的,DMA,请求线和,DMA,响应线,它由,CPU,的优先级判别机构裁决首先响应哪个请求,并在响应线上发出响应信号,被获得响应信号的,DMA,接口使可控制总线与主存传送数据。,DMA,接口中控制传送的硬件逻辑称为,DMA,控制器。,DMA,控制器与接口的连接应考虑以下因素,:,DMA,控制器与接口是相互分离,还是合为一体,;,数据传送是经,DMA,控制器,还是经接口直接与存储器相连,;,系统中有多个,DMA,控制器时,采用公共,DMA,请求,还是采用独立,DMA,请求方式。,一个,DMA,控制器控制多个,I/O,设备时,是采用选择型工作方式,还是采用多路型工作方式,;,基于以上考虑的几种常见连接模式:,1.,单通道,DMA,控制器,一个,DMA,控制器只连接一台,I/O,设备,并通常将,DMA,控制器与接口合为一体,传送的数据经由,DMA,控制器。,主机,外设,存储器,总线,向,CPU,提出,DMA,请求,CPU,响应,DMA,请求,DMA,控制器,(,接口,),2.,选择型,DMA,控制器,一个,DMA,控制器连接,(,控制,),多台,I/O,设备,即,:,多台,I/O,设备共享一个,DMA,控制器。,一般采用,DMA,控制器与接口合为一体,传送的数据经由,DMA,控制器。,主机,外设,1,存储器,总线,DMA,请求,CPU,响应,DMA,请求,DMA,控制器,(,接口,),外设,2,.,外设,n,I/O,总线,选择型,DMA,控制器一般采用成组传送方式,分时为各设备服务,。,3.,多路型,DMA,控制器,当一个,DMA,控制器连接,(,控制,),的多台,I/O,设备速度较慢时,让多个外设同时工作,以字或字节方式传送,使多个外设轮流交叉使用系统总线进行,DMA,传送,即为多路型,DMA,控制器。,多路型,DMA,控制器一般采用与外设接口分离的连接方式,数据传送不经过,DMA,控制器,而是直接在内存与接口之间进行传送。,DMA,控制器只负责接收接口的请求信号,并向,CPU,提出,DMA,请求,在收到,CPU,的响应信号后,通知接口, DMA,传送周期开始。,DMA,控制器与接口的连接关系如下图所示:,多路型,DMA,与选择型,DMA,并无严格界限,当以单字,(,或字节,),方式传送,各外设交叉占有总线时,为典型的多路型,DMA;,若按成组方式传送,各设备分时占有总线,即为选择性,DMA,。,系统总线,CPU,存储器,DMA,控制器,接口,接口,I/O,I/O,多路型,DMA,控制器,主机板,接口板,DREQ,1,DACK,1,DREQ,n,DACK,n,DMA,和中断的区别,1,、中断方式是程序切换,需要保护和恢复现场;而,DMA,方式除了开始和结尾时,不占用,CPU,的任何资源。,2,、对中断请求的响应只能发生在每条指令执行完毕时;而对,DMA,请求的响应可以发生在每个机器周期结束时。,3,、中断传送过程需要,CPU,的干预;而,DMA,传送过程不需要,CPU,的干预,故数据传送速率非常高,适合于高速外设的成组数据传送。,4,、,DMA,请求的优先级高于中断请求。,5,、中断方式具有对异常事件的处理能力;而,DMA,方式仅局限于完成传送信息块的,I/O,操作,六、通道控制方式,1,、基本知识,通道是实现,I/O,设备和主存之间直接交换数据的控制器。,(,1,)通道与,DMAC,的区别,DMAC,是通过硬件控制逻辑实现对数据传送的控制,通道是通过执行通道程序实现对数据传送的控制,DMAC,通常只控制一台或少数几台同类设备,通道可同时控制许多台同类或不同类的设备,(,2,)通道控制方式的连接,通道承担数据的输入,/,输出控制,,CPU,负责数据处理,形成了通道与,CPU,分时使用内存的情况,大大提高了,CPU,与通道并行工作能力以及各个通道之间、同一通道控制的各个设备之间的并行工作能力;,增减外部设备灵活;,通道有自己的通道指令、通道地址、通道程序和通道状态字等。通道程序完全独立于主机之外,在通道内执行。,通道的种类, 按通道独立于,CPU,的程度来分,通道分为结合型通道和独立型通道。, 按数据传送方式来分;通常将通道分为以下三种:,字节多路通道、选择通道和成组多路通道。,结合型通道在硬件上与,CPU,做在一起,而独立型通道则硬件上独立于,CPU,。,1,字节多路通道,字节多路通道采用字节交叉传送方式进行数据传送,适合于连接多个低速,I/O,设备,(,在,20K,字节,/,秒以下,),,设备传送一个字节的时间相应较短,相邻字节之间数据准备时间较长,;,分时使用通道,轮流传送数据,实现多台,I/O,设备间的并行,以提高通道利用率;,字节多路通道由多个子通道构成,每个子通道并,行工作,各服务于一个设备控制器。,每个子通道中包含:字符缓冲器、状态,/,控制寄存器以及通道参量(如:字节计数值、内存地址、,)、主存单元的地址指针等。,2,选择通道,选择通道用于对高速设备进行控制;在一段时间内选择通道只执行一个设备的通道程序,采用“成组”方式传送。,某个设备一旦被选中便独占通道,直到传送完毕才释放通道,所以传输速率高。,选择通道可接多台同类设备,其数据宽度是可变的,通道中包含一个参数寄存器,用于记录,I/O,操作所需的通道参量。,3,数组多路通道,多台设备以定长数据块为单位分时使用传输通路,轮流传送数据块。这种通道称为成组多路通道。,既允许各子通道间并行工作,又以独占方式成组地连续传送数据,因而具有很高的传输率。用于控制多台同类高速设备。,2,、具有多种通道的计算机系统结构,(,1,)使用多个通道的优点,可以克服因数据流量大而集中于某一通道所造成的拥塞现象;,可以实现对不同类型的外设分类管理。,(,2,)存储管理部件的主要任务,存储管理部件是主存的控制部件,其主要任务是根据事先确定的优先次序,决定下一周期由哪个部件使用存储总线访问主存。,(,3,)各部件访问主存的优先次序,通道与,CPU,同时要求访问主存,通道优先于,CPU,;,多个通道同时要求访问主存,选择通道和数组多路通道的优先级高于字节多路通道。,(,4,)通道的功能,通道的基本功能是执行通道程序,实施外设与主存的数据传送,按,I/O,指令要求启动外设,向,CPU,报告中断等。,接受,CPU,的,I/O,指令,并按,I/O,指令的要求与指定的外设进行通信;,从主存选取属于该通道程序的通道指令,经译码后向设备控制器和外设发送各种命令;,实现外设与主存之间的数据传送,提供信息传送通路、装配和拆卸信息、提供数据存入主存的地址和传送数据的计数值;,从外设获取设备的状态信息,形成并保存通道本身的状态信息,根据要求把这些信息送到主存的指定单元,供,CPU,使用;,将外设的中断请求和通道本身的中断请求按次序及时通知,CPU,。,(5),设备控制器的功能,从通道接受通道指令,控制外部设备完成所要求的操作,;,向通道反馈外设的状态;,将外设的各种不同信号转换为通道能识别的标准信号。,(,6,),CPU,对通道的管理,CPU,对通道的控制通过两种途径:,(1),执行,I/O,指令,当需要进行,I/O,操作时,,CPU,按约定的格式准备好命令和数据,编制好通道程序,然后通过执行,I/O,指令来启动通道。,通道被启动后,从主存指定单元取出通道程序执行;,I/O,指令是一种特权指令,在用户程序中不能使用。,I/O,指令应给出通道开始工作所需的全部参数,,I/O,指令和,CPU,的其他指令形式相同,由操作码和地址码组成,操作码表示执行何操作,地址码用来表示通道和设备的编号。,CPU,启动通道后,通道和外部设备将独立进行工作。,(2),处理来自通道的中断请求,当通道和外设发生异常或结束处理时,通道采用“中断”方式向处理器报告。,通道的功能,:,通道在一定的硬件基础上利用软件手段实现对,I/O,的控制和传送,更多地,免去了,CPU,的介入,,从而使主机和外设的,并行,工作程度更高。当然,通道并不能完全脱离,CPU,,,它还要受到,CPU,的管理,而且通道还应该向,CPU,报告自己的状态,以便,CPU,决定下一步的处理。,通道型,I/O,处理机和外围处理机,通道结构的进一步发展,出现了两种计算机,I/O,系统结构:,通道结构的,I/O,处理机,(IOP),:,专用处理机(如网卡、显卡上的处理机),不独立于,CPU,工作。,外围处理机,(PPU),:,PPU,基本上是独立于主机工作的,它有自己的指令系统,完成算术,/,逻辑运算,读,/,写主存储器,与外设交换信息等。有的外围处理机干脆就选用已有的通用机(如双,CPU,服务器)。,
展开阅读全文