DMA-控制器介绍课件.ppt

上传人(卖家):ziliao2023 文档编号:6100654 上传时间:2023-05-29 格式:PPT 页数:17 大小:282KB
下载 相关 举报
DMA-控制器介绍课件.ppt_第1页
第1页 / 共17页
DMA-控制器介绍课件.ppt_第2页
第2页 / 共17页
DMA-控制器介绍课件.ppt_第3页
第3页 / 共17页
DMA-控制器介绍课件.ppt_第4页
第4页 / 共17页
DMA-控制器介绍课件.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、 2007.8.15一一.基本概念基本概念 1.Direct Memory Access(直接存儲器存取)。这是(直接存儲器存取)。这是指一种高速的数据传输操作,允许在外部设备和存儲器之指一种高速的数据传输操作,允许在外部设备和存儲器之间直接读写数据,既不通过间直接读写数据,既不通过CPU,也不需要,也不需要CPU干预。干预。整整个数据传输操作在一个称为个数据传输操作在一个称为“DMA控制器控制器”的控制下进行的控制下进行的。的。CPU除了在数据传输开始和结束时做一点处理外,在除了在数据传输开始和结束时做一点处理外,在传输过程中传输过程中CPU可以进行其他的工作。这样,在大部分时可以进行其他的

2、工作。这样,在大部分时间里,间里,CPU和输入输出都处于并行操作。因此,使整个计和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。算机系统的效率大大提高。DMA技術中,數據的傳送是在技術中,數據的傳送是在DMA控制器控制器(DMAC)的控的控制下進行的。制下進行的。2.DMAC傳送數據的三個階段:傳送數據的三個階段:a.传送前的预处理传送前的预处理 b.数数据传送据传送 c.传送结束处理传送结束处理 3.DMAC有兩種工作狀態有兩種工作狀態:主動工作狀態(有效周期)主動工作狀態(有效周期)和被動工作狀態(空閑周期)。和被動工作狀態(空閑周期)。4.DMA控制器對總線的占用方式有控

3、制器對總線的占用方式有 a.獨占方式獨占方式 b.周期周期挪用方式。挪用方式。三、基本的三、基本的DMA控制器控制器1DMA控制器的基本组成控制器的基本组成一个一个DMA控制器,实际上是采用控制器,实际上是采用DMA方式的外围设备与系统方式的外围设备与系统总线之间的接口电路,这个接口电路是在中断接口的基础上总线之间的接口电路,这个接口电路是在中断接口的基础上再加再加DMA机构组成习惯上将机构组成习惯上将DMA方式的接口电路称为方式的接口电路称为DMA控制器。下页图示出了一个最简单的控制器。下页图示出了一个最简单的DMA控制器组成控制器组成示意图。示意图。一个最简单的一个最简单的DMA控制器由以

4、下逻辑部件组成:控制器由以下逻辑部件组成:(1)内存地址计数器内存地址计数器 用于存放内存中要交换的数据的地址。在用于存放内存中要交换的数据的地址。在DMA传送前,须通过程序将数据在内存中的起始位置传送前,须通过程序将数据在内存中的起始位置(首地首地址址)送到内存地址计数器。而当送到内存地址计数器。而当DMA传送时,每交换一次数传送时,每交换一次数据,将地址计数器加据,将地址计数器加“1”,从而以增量方式给出内存中要交,从而以增量方式给出内存中要交换的一批数据的地址。换的一批数据的地址。(2)字计数器字计数器 用于记录传送数据块的长度用于记录传送数据块的长度(多少字数多少字数)。其内容也。其内

5、容也是在数据传送之前由程序预置,交换的字数通常以补码形式是在数据传送之前由程序预置,交换的字数通常以补码形式表示。在表示。在DMA传送时,每传送一个字,字计数器就加传送时,每传送一个字,字计数器就加“1”,当计数器溢出即最高位产生进位时,表示这批数据传送完毕,当计数器溢出即最高位产生进位时,表示这批数据传送完毕,于是引起于是引起DMA控制器向控制器向CPU发中断信号。发中断信号。(3)数据缓冲寄存器数据缓冲寄存器 用于暂存每次传送的数据用于暂存每次传送的数据(一个字一个字)。当输。当输入时,由设备入时,由设备(如磁盘如磁盘)送往数据缓冲寄存器,再由缓冲寄送往数据缓冲寄存器,再由缓冲寄存器通过数

6、据总线送到内存。反之,输出时,由内存通过存器通过数据总线送到内存。反之,输出时,由内存通过数据总线送到数据缓冲寄存器,然后再送到设备。数据总线送到数据缓冲寄存器,然后再送到设备。(4)“DMA请求请求”标志标志 每当设备准备好一个数据字后给出一个每当设备准备好一个数据字后给出一个控制信号,使控制信号,使“DMA请求请求”标志置标志置“1”。该标志置位后。该标志置位后向向“控制控制/状态状态”逻辑发出逻辑发出DMA请求,后者又向请求,后者又向CPU发出发出总线使用权的请求总线使用权的请求(HOLD),CPU响应此请求后发回响应响应此请求后发回响应信号信号HLDA,“控制控制/状态状态”逻辑接收此

7、信号后发出逻辑接收此信号后发出DMA响响应信号,使应信号,使“DMA请求请求”标志复位,为交换下一个字做好标志复位,为交换下一个字做好准备。准备。(5)“控制控制/状态状态”逻辑逻辑 由控制和时序电路以及状态标志等组成,由控制和时序电路以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送类型用于修改内存地址计数器和字计数器,指定传送类型(输入输入或输出或输出),并对,并对“DMA请求请求”信号和信号和CPU响应信号进行协响应信号进行协调和同步。调和同步。(6)中断机构中断机构 当字计数器溢出时当字计数器溢出时(為為0時時),意味着一组数据交,意味着一组数据交换完毕,由溢出信号触发中断

8、机构,向换完毕,由溢出信号触发中断机构,向CPU提出中断报告。提出中断报告。这里的中断与上一节介绍的这里的中断与上一节介绍的I/O中断所采用的技术相同,但中断所采用的技术相同,但中断的目的不同,前面是为了数据的输入或输出,而这里中断的目的不同,前面是为了数据的输入或输出,而这里是为了报告一组数据传送结束。因此它们是是为了报告一组数据传送结束。因此它们是I/O系统中不同系统中不同的中断事件。的中断事件。2.DMA数据传送过程数据传送过程 DMA的数据块传送过程可分为三个阶段:传送前预处理;的数据块传送过程可分为三个阶段:传送前预处理;正式传送;传送后处理。正式传送;传送后处理。预处理预处理 由由

9、CPU执行几条输入输出指令,测试设备状态,执行几条输入输出指令,测试设备状态,向向DMA控制器的设备地址寄存器中送入设备号并启动设备,控制器的设备地址寄存器中送入设备号并启动设备,向内存地址计数器中送入起始地址,向字计数器中送入交向内存地址计数器中送入起始地址,向字计数器中送入交换的数据字个数。在这些工作完成后,换的数据字个数。在这些工作完成后,CPU继续执行原来继续执行原来的主程序。的主程序。正式传送正式传送 当外设准备好发送数据当外设准备好发送数据(输入输入)或接受数据或接受数据(输出输出)时,它发出时,它发出DMA请求,由请求,由DMA控制器向控制器向CPU发出总线使发出总线使用权的请求

10、用权的请求(HOLD)。下页图示出了停止。下页图示出了停止CPU访内方式的访内方式的DMA传送数据的流程图。传送数据的流程图。当外围设备发出当外围设备发出DMA请求时,请求时,CPU在本机器周期执行结束在本机器周期执行结束后响应该请求,并使后响应该请求,并使CPU的总线驱动器处于第二态的总线驱动器处于第二态(高阻状高阻状态态)之后,之后,CPU与系统总线相脱离,而与系统总线相脱离,而DMA控制器接管控制器接管数据总线与地址总线的控制,并向内存提供地址数据总线与地址总线的控制,并向内存提供地址 于是,在内存和外围设备之间进行数据交换每交换一个字,于是,在内存和外围设备之间进行数据交换每交换一个字

11、,则地址计数器和字计数器加则地址计数器和字计数器加“l”,当计数值到达零时,当计数值到达零时,DMA操作结束,操作结束,DMA控制器向控制器向CPU提出中断报告提出中断报告。DMA的数据传送是以数据块为基本单位进行的,因此,每的数据传送是以数据块为基本单位进行的,因此,每次次DMA控制器占用总线后,无论是数据输入操作,还是输控制器占用总线后,无论是数据输入操作,还是输出操作,都是通过循环来实现的。当进行输入操作时,外出操作,都是通过循环来实现的。当进行输入操作时,外围设备的数据围设备的数据(一次一个字或一个字节一次一个字或一个字节)传向内存;当进行输传向内存;当进行输出操作时,内存的数据传向外

12、围设备。出操作时,内存的数据传向外围设备。后处理后处理 一旦一旦DMA的中断请求得到响应,的中断请求得到响应,CPU停止主程停止主程序的执行,转去执行中断服务程序做一些序的执行,转去执行中断服务程序做一些DMA的结束处理的结束处理工作。这些工作包括校验送入内存的数据是否正确;决定工作。这些工作包括校验送入内存的数据是否正确;决定继续用继续用DMA方式传送下去,还是结束传送;测试在传送过方式传送下去,还是结束传送;测试在传送过程中是否发生了错误等等。程中是否发生了错误等等。基本基本DMA控制器与系统的连接方式:控制器与系统的连接方式:(1)公用的)公用的DMA请求方式;(请求方式;(2)独立的)

13、独立的DMA请求方式,请求方式,这与中断方式类似。这与中断方式类似。四、选择型和多路型四、选择型和多路型DMA控制器控制器 前面介绍的是最简单的前面介绍的是最简单的DMA控制器,一个控制器只控制一控制器,一个控制器只控制一个个IO设备实际中经常采用的是选择型设备实际中经常采用的是选择型DMA控制器和多控制器和多路型路型DMA控制器,它们已经被做成集成电路片子控制器,它们已经被做成集成电路片子1.选择型选择型DMA控制器控制器 下页图是选择型下页图是选择型DMA控制器的逻辑框图,它在物理上可以控制器的逻辑框图,它在物理上可以连接多个设备,而在逻辑上只允许接连接多个设备,而在逻辑上只允许接个设备换

14、句话说,个设备换句话说,在某一段时间内只能为一个设备服务在某一段时间内只能为一个设备服务 选择型选择型DMA控制器工作原理与前面的简单控制器工作原理与前面的简单DMA控制器基本控制器基本相同除了前面讲到的基本逻辑部件外,还有一个设备号相同除了前面讲到的基本逻辑部件外,还有一个设备号寄存器数据传送是以数据块为单位进行的,在每个数据寄存器数据传送是以数据块为单位进行的,在每个数据块传送之前的预置阶段,除了用程序中块传送之前的预置阶段,除了用程序中I/O指令给出数据块指令给出数据块的传送个数、起始地址、操作命令外,还要给出所选择的的传送个数、起始地址、操作命令外,还要给出所选择的设备号从预置开始,一

15、直到这个数据块传送结束,设备号从预置开始,一直到这个数据块传送结束,DMA控制器只为所选设备服务下控制器只为所选设备服务下次预置再根据次预置再根据I/O指令指出指令指出的设备号,为另的设备号,为另选择的设备服务选择的设备服务 显然,选择型显然,选择型DMA控制器相当于一个逻辑开关,根据控制器相当于一个逻辑开关,根据I/O指令来控制此开关与某个设备连接指令来控制此开关与某个设备连接 选择型选择型DMA控制器只增加少量硬件达到了为多个外围控制器只增加少量硬件达到了为多个外围设备服务的目的,它特别适合数据传输串很高以至接设备服务的目的,它特别适合数据传输串很高以至接近内存存取速度的设备在很快地传送完

16、一个数据块近内存存取速度的设备在很快地传送完一个数据块后,控制器又可为其他设备服务后,控制器又可为其他设备服务2.多路型多路型DMA控制器控制器 选择型选择型DMA控制器不适用于慢速设备但是多路型控制器不适用于慢速设备但是多路型DMA控制器却适合于同时为多个慢速外围设备服务控制器却适合于同时为多个慢速外围设备服务 下页图下页图(a)是链式多路型是链式多路型DMA控制器,而控制器,而(b)是独立请是独立请求方式多路型求方式多路型 DMA控制器控制器 多路型多路型DMA不仅在物理上可以连接多个外围设备,而不仅在物理上可以连接多个外围设备,而且在逻辑上也允许这些外围设备同时一工作,各设备且在逻辑上也

17、允许这些外围设备同时一工作,各设备以字节交叉方式通过以字节交叉方式通过DMA控制器进行数据传送控制器进行数据传送 当某个外围设备请求当某个外围设备请求DMA服务时,操作过程如下:服务时,操作过程如下:(1)DMA控制器接到设备发出的控制器接到设备发出的DMA请求时,将请求转送到请求时,将请求转送到CPU。(2)CPU在适当的时刻响应在适当的时刻响应DMA请求。若请求。若CPU不需要占用总线不需要占用总线则继续执行指令;若则继续执行指令;若CPU需要占用需要占用 总线,则总线,则CPU进入等待进入等待状态。状态。(3)DMA控制器接到控制器接到CPU的响应信号后,进行以下工作:的响应信号后,进行

18、以下工作:对现有对现有DMA请求中优先权最高的请求请求中优先权最高的请求 给予给予DMA响应;响应;选择相应的地址寄存器的内容驱动地址总线;选择相应的地址寄存器的内容驱动地址总线;根据所选设备操作寄存器根据所选设备操作寄存器 的内容,向总线发读、写信号;的内容,向总线发读、写信号;外围设备向数据总线传送数据,或从数据总线接收数据;外围设备向数据总线传送数据,或从数据总线接收数据;每个字节传送完毕后,每个字节传送完毕后,DMA控制器使相应的地址寄存器控制器使相应的地址寄存器和长度寄存器加和长度寄存器加“1”或减或减“1”。以上是一个以上是一个DMA请求的过程,在一批数据传送过程中,请求的过程,在

19、一批数据传送过程中,要多次重复上述过程,直到外围设备表示一个数据块已传要多次重复上述过程,直到外围设备表示一个数据块已传送完毕,或该设备的长度控制器判定传送长度已满。送完毕,或该设备的长度控制器判定传送长度已满。【例例】如圖如圖所示为所示为8237DMA的組成示意圖根據圖中所示,的組成示意圖根據圖中所示,请请簡單簡單分析分析其與外設(如軟其與外設(如軟盘盘)工作過程原理)工作過程原理。【解解】CPU和和外設(如軟外設(如軟盘盘)控制器之间的接口电路包括控制器之间的接口电路包括DMA控制和总线控制两部分。控制和总线控制两部分。DMA地址寄存器存放被寻地址寄存器存放被寻址的主存首地址,字节计数寄存

20、器存放本次址的主存首地址,字节计数寄存器存放本次DMA传送的传送的字节数。字节数。操作方式寄存器中包含操作方式寄存器中包含工作方式工作方式(读、写、校验读、写、校验)等信息等信息(状态寄存器状态寄存器)。DMA传输前,传输前,CPU对对8237进行初始化,将数据在主存进行初始化,将数据在主存中的起始地址、数据字节个数、工作方式等参数送入中的起始地址、数据字节个数、工作方式等参数送入8237相应的寄存器中。然后才允许相应的寄存器中。然后才允许外設外設控制器向控制器向8237发出发出DMA传输请求信号传输请求信号DRQ。8237接收到接收到DRQ信信号后,立即发号后,立即发HRQ信号给总数控制线路

21、,请求总线控信号给总数控制线路,请求总线控制权。制权。CPU在识别到在识别到HRQ信号,完成当前总线周期后,信号,完成当前总线周期后,发出发出HLDA响应信号,并放弃总线控制权。此时响应信号,并放弃总线控制权。此时8237向软盘控制器发出向软盘控制器发出DACK回答信号,通知软盘控制器回答信号,通知软盘控制器开始开始DMA传输,并发出读传输,并发出读/写控制信号写控制信号(MEMR/MEMW、IOR/IOW),以便软盘控制器从主存被寻址的单元读取,以便软盘控制器从主存被寻址的单元读取一个字节或写入一个字节。一个字节或写入一个字节。只要只要外設(如軟外設(如軟盘盘)控控制器保持对制器保持对DMA的请求,的请求,8257将保持对总线的控制,将保持对总线的控制,并顺序地重复传送,直到被指定的数据块传送完毕,并顺序地重复传送,直到被指定的数据块传送完毕,通知通知外設(如軟外設(如軟盘盘)控制器,取消控制器,取消DMA请求,并使请求,并使HRQ为无效,放弃总线控制权。为无效,放弃总线控制权。.地址寄存器字節/內存地址計數器操作方式寄存器DRQDACK#HRQHLDAIOWC#IORC#MEMW#MEMR#D0D7A0A15此课件下载可自行编辑修改,此课件供参考!此课件下载可自行编辑修改,此课件供参考!部分内容来源于网络,如有侵权请与我联系删除!部分内容来源于网络,如有侵权请与我联系删除!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(DMA-控制器介绍课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|