第五章-输入输出系统02-DMA工作方式

上传人:油条 文档编号:101072749 上传时间:2019-09-26 格式:PPT 页数:40 大小:955.50KB
返回 下载 相关 举报
第五章-输入输出系统02-DMA工作方式_第1页
第1页 / 共40页
第五章-输入输出系统02-DMA工作方式_第2页
第2页 / 共40页
第五章-输入输出系统02-DMA工作方式_第3页
第3页 / 共40页
第五章-输入输出系统02-DMA工作方式_第4页
第4页 / 共40页
第五章-输入输出系统02-DMA工作方式_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《第五章-输入输出系统02-DMA工作方式》由会员分享,可在线阅读,更多相关《第五章-输入输出系统02-DMA工作方式(40页珍藏版)》请在金锄头文库上搜索。

1、5.5 DMA方式,5.5.1 DMA的基本概念 5.5.2 DMA的工作过程 5.5.3 DMA的传送方式 5.5.4 DMA方式的接口,主存,CPU,系统总线,DMA接口,高速I/O设备,DMA接口,高速I/O设备,程序中断方式:CPU与慢速外设之间采用的数据传输方式。 1)对比程序查询方式,极大地提高了CPU的利用率; 2)使CPU具有了处理突发事件的能力。 但是当外设速度接近一条指令的处理速度时,CPU的利用率又会降低。 因为:CPU每执行一次中断服务子程序,读写一次数据,都必须要执 行:保护现场和恢复现场操作,以及开中断和关中断操作, 过度频繁的执行,势必降低了CPU的利用率。 CP

2、U除了执行中断服务子程序之外,无太多时间处理其他事务。 (举例:小朋友吃糖特快,不嚼就咽了,不停的问老师要糖吃。) 更有甚者,当外设速度进一步提高,或者多台高速外设同时申 请中断时,还会造成数据丢失。 因此,必须寻求更快捷的输入输出方式:DMA。,5.5.1 DMA的基本概念,5.5.1 DMA的基本概念,DMA (Direct Memory Access) 直接存储器存取方式 DMA不象前两种方式那样,通过CPU执行外设的终端服务子程序, 和外设输入输出数据。 DMA方式不通过CPU,直接由DMA接口(硬件)控制外设与内存 之间的数据交换,输入时由外设(硬盘)直接写入内存,输出时 由内存直接

3、送至外设(硬盘)。 (DMA是一种完全由硬件执行的数据交换方式。) 由于,不再需要CPU执行中断服务子程序进行数据的输入输出,当然 也就不需要进行现场保护和现场恢复了,也不需要CPU反复地开中断、关中断了;使得输入输出数据花费时间更少,对CPU打扰也更少。,5.5.1 DMA的基本概念,DMA:CPU与外设之间的数据传输是并行工作方式。 DMA期间CPU不能访存,但可以继续进行其他内部操作。 DMA接口 从CPU那完全接管对总线的控制之后,不经过CPU, 直接在内存和I/O设备之间进行数据交换。 DMA接口 将向内存发出地址和控制信号,数据传输完毕后, 以中断方式向CPU报告传送操作结束。,主

4、存,CPU,系统总线,DMA接口,高速I/O设备,DMA接口,高速I/O设备,DMA 和中断两种方式的数据通路 DMA与中断方式相比,数据传送速度高,需要更多硬件支持。,主 存,寄存器,中断接口,DMA 接口,I/O 设 备,中断方式数据传输通路,输入数据,输出数据,DMA方式数据传输通路,5.5.1 DMA的基本概念,5.5 DMA方式,5.5.1 DMA的基本概念 5.5.2 DMA的工作过程 5.5.3 DMA的传送方式 5.5.4 DMA方式的接口,主存,CPU,系统总线,DMA接口,高速I/O设备,DMA接口,高速I/O设备,5.5.2 DMA的工作过程,DMA工作过程包括三个阶段:

5、 1)初始准备(中断初始化,DMA初始化)、 2)数据传输、 3)结束处理。,下面以硬磁盘的读操作为例,介绍DMA工作过程。,注意:在DMA方式中,一批数据传送前的准备工作,以及传送结束 后的处理工作,均有CPU参与完成; DMA接口完全负责数据传送的工作。,5.5.2 DMA的工作过程,1)预处理(中断初始化,DMA初始化) DMA接口开始工作之前,CPU先对它进行初始化工作,包括: 中断初始化: 由于DMA接口与内存之间数据传送结束后,DMA接口以中断 方式请求CPU对其进行后处理,所以要进行中断初始化工作。 包括:CPU送中断向量(设备号)给DMA接口设备地址寄存器 、 CPU设置其为允

6、许中断。 DMA初始化: CPU将硬盘数据的地址信息(柱面、盘面、扇区)送入 DAM接口磁盘地址寄存器, CPU将主存数据块的首地址送入DMA接口主存地址寄存器, CPU将传送数据块的长度送入DMA接口块长计数器, CPU将启动外设命令及传送方向(读/写内存)等控制信息送入 DMA接口命令/状态寄存器。,2)数据传送 DMA方式是以数据块为单位进行数据传送的。 硬盘启动后,先根据DAM接口磁盘地址寄存器的内容,完成磁盘寻址 工作,然后进入DMA数据传送阶段,该阶段又可再分为三步:,5.5.2 DMA的工作过程,第一步:DMA请求(小朋友吃完糖了) 当DMA接口数据传输已准备好: 此时,接口缓冲

7、寄存器已满(读硬盘时,硬盘已读数据到接口), 或者,接口缓冲寄存器已空(写硬盘时,可从主存接收新数据); DMA接口向CPU发出DMA请求信号HRQ,申请得到总线控制权。 第二步:DMA响应(小朋友喊着“我要去拿糖”) CPU接到DMA请求信号后,在当前内存存取周期结束后,将总线的 输出端置成高阻态(停止使用总线),并发回DMA应答信号HLDA,将总线控制权交给DMA接口。 注意:CPU对DMA请求的响应速度快,在每次内存存取周期结束后, 而中断响应必须等一条指令执行结束。 因为:1、DMA请求来自高速外设,必须尽快响应,以免丢失数据; 2、DMA方式不改变CPU的工作现场,无须保护现场, 当

8、然无需等到一条指令执行完毕。,5.5.2 DMA的工作过程,第三步:DMA接口访存(小朋友自己去拿糖) DMA接口接到CPU应答信号后(即接过总线控制权), 将DMA接口主存地址寄存器的内容送地址总线, 将DMA接口命令/状态寄存器的读/写控制信号等送控制总线, 将DMA接口数据缓冲寄存器的内容送数据总线, 完成一次与主存单元的数据传送。 每次DMA传送后,DMA接口主存地址寄存器拨动一次(加或减), DMA接口块长计数器自动减1,这两个寄存器都具有计数的功能。 每次DMA传送后,清除DMA请求信号,待磁盘寻找到数据逐位读入, DMA接口缓冲寄存器已满时,再次发出DMA请求信号; 如此重复进行

9、,直至完成整个数据块的传送。,5.5.2 DMA的工作过程,3)后处理 当数据块全部传完后,由DMA接口块长计数器=0时触发信号, DMA接口中的中断逻辑部件向CPU发出中断请求, CPU收到中断请求信号后,停止当前工作去执行中断服务子程序。 CPU中断处理内容: 测试在传送过程中,是否发生错误; 若继续传送,重新初始化,准备下一个数据块的传送; 若传送结束,向DMA接口发终止DMA操作命令。,5.5.2 DMA的工作过程,CPU,设置中断向量 清除屏蔽位 开中断,1)中断初始化,内存数据首地址 接口主存地址寄存器 磁盘数据首地址 接口磁盘地址寄存器 传送数据块长度 接口块长计数器 读/写及启

10、动命令 接口命令寄存器,2)DMA初始化,DMA接口,3)启动磁盘(硬件),柱面找到?,扇面找到?,盘面找到?,4) 磁 盘 寻 址, DMA请求数据寄存器满,Y,N,N,N,CPU访存,当前内存周期结束DMA应答,读盘,DMA接口访存,读盘,DMA接口访存,CPU访存,中断应答,中断请求,一批数据读写完毕,中断向量,硬盘中断 服务程序,当前指令周期结束, DMA请求数据寄存器满,当前内存周期结束DMA应答,CPU访存,根据DMA的工作过程,DMA特点如下: (1)CPU对DMA接口的控制仅限于DMA的开始(接口参数设置 和设备启动)和结束(中断处理,)。 在整个DMA传送数据期间,均由DMA

11、接口直接控制与内存的 读写。因此,DMA方式对CPU打扰少,并行性好。 (2)CPU响应DMA请求只需暂停访问内存,让出总线使用权。 省去了中断方式中保护现场、恢复现场、开中断、关中断的 往复操作,打扰的时间仅为一次内存存取周期,节省了CPU 的大量时间,提高了CPU的利用率。,5.5.2 DMA的工作过程,(3)DMA方式主要是靠硬件实现内存与外设之间的数据传送,因此 DMA接口中除一般接口应有的数据寄存器、命令状态寄存器、 译码器及其他控制线路外,还应有主存地址寄存器和块长寄存器、 磁盘地址寄存器及DMA请求线路。 这些硬件提高了数据传输的速度,同时增加了接口复杂度。 (4)CPU响应DM

12、A请求是在当前内存存取周期结束之后,而响应中断 是当前指令周期结束之后,CPU对DMA响应更及时,更快捷。 (5)在DMA方式中存在着CPU与DMA接口之间内存访问权(对单端口 的存储器)的频繁转换。 (6)DMA方式只能进行数据传送,功能单一; 而中断方式,可以通过中断服务子程序的设计实现各种复杂功能。,5.5.2 DMA的工作过程,5.5 DMA方式,5.5.1 DMA的基本概念 5.5.2 DMA的工作过程 5.5.3 DMA的传送方式 5.5.4 DMA方式的接口,主存,CPU,系统总线,DMA接口,高速I/O设备,DMA接口,高速I/O设备,DMA方式的工作过程实质上是DMA接口与C

13、PU交替访存的过程。 根据DMA接口与CPU访存的时间不同,可分为以下三种传送方式: 1、周期挪用方式 若没有DMA请求,CPU正常工作, 若DMA接口发出DMA请求,CPU让出一个或几个存取周期 给DMA接口访问内存。 若CPU正处于内部处理(比如乘、除指令的执行阶段)无需访存, DMA传送占用内存不对CPU产生任何打扰; 若CPU正处于访问内存(比如取指令、取操作数、或将运算结果 写入内存等),这时就有了争访内存的问题,为了不丢失数据必 让DMA优先。这时DMA接口挪用的存取周期就对CPU的工作构 成影响,相当于把CPU的工作往后推了一个或几个存取周期。,5.5.3 DMA的传送方式,为了

14、减少这种争访内存的冲突,某些机器采用了指令预取技术, 即:当没有DMA请求时,CPU预先把即将执行的指令取到内部的 指令队列中,充分利用内存空闲时间,降低争访内存几率。 周期挪用方式在保证DMA传送的前提下,又较好的发挥了CPU与主存 的效率,因而得到广泛应用。 缺点:每一次DMA传送都伴随着一次DMA请求,DMA响应和两次内 存访问权的转换(先由CPU转给DMA接口,后由DMA接口归 还给CPU),这种频繁往复操作也会使系统效率下降。,5.5.3 DMA的传送方式,2、暂停CPU访问主存 由于周期挪用方式中内存访问权转换过于频繁,自然想到通过 增加DMA接口中数据寄存器的容量,改为一个小容量

15、的RAM 存储器作为数据缓冲区,待RAM满(输入)或空(输出), 发一次DMA请求,取得内存访问权后进行批量数据传送。 这种方式明显地减少了CPU与DMA接口之间内存访问权的转换, 但在DMA接口连续访问内存期间,CPU无法访问内存,因而处 于停止状态,不利于提高CPU的利用率。,5.5.3 DMA的传送方式,3、DMA与CPU交替访存(比较合理) 分时管理内存的使用时间,让两者交替互不冲突访问主存。 例如:规定CPU在第1、3、5、7存取周期时访存, DMA接口在第2、4、6、8存取周期时访存。 这种方式不但解决了CPU和DMA接口争访内存的矛盾,而且免去了每次 DMA传送所必须的DMA请求

16、,DMA响应以及内存使用权的交接。 缺点:对CPU而言,感觉内存存取周期长了一倍,在需要连续访存时, 它必须等待双倍的时间,不利于提高CPU的效率。,5.5 DMA方式,5.5.1 DMA的基本概念 5.5.2 DMA的工作过程 5.5.3 DMA的传送方式 5.5.4 DMA方式的接口,主存,CPU,系统总线,DMA接口,高速I/O设备,DMA接口,高速I/O设备,DMA 接口功能,(1)向CPU发出DMA申请;,(2)处理总线控制权的转交;,(3)管理系统总线、控制数据传送;,(4)确定数据传送的首地址和长度;,(5)DMA传送结束时,向CPU发出中断申请。,修正传送过程中的数据地址和长度;,5.5.4 DMA方式的接口接口组成,在程序查询和程序中断方式中,外设与主存之间的数据传

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号