摘要:DMA传输技术是现代传输技术的一种,在社会生产生活各领域有着重要的作用。本文将DMA传输技术和操作技术进行探讨。
关键词:DMA传输技术;操作技术;技术特点
中图分类号: 文献标识码:A文章编号:1007-9599 (2010) 13-0000-02
The DMA Transfer Technology and Operating Technique
Le Xiangyun
(Guangxi Vocational&Technical School,Nanning530031,China)
Abstract:DMA transfer technology is a modern transmission technology, production and life in the community plays an important role in all areas. DMA transfer paper will discuss the technical and operational techniques.
Keywords:DMA transfer technology;Operating techniques;Technical characteristics
随着着社会的不断进步发展,高新技术在社会生产生活中的地位越来越重要,对社会各方面都产生着深远的影响。特别是进入信息时代以来,传输技术更是成了影响人们交流、沟通的重要因素。而DMA传输技术作为传输技术的一种,在当前社会信息领域也发挥着积极的作用,对其操作技术的探讨已经成为当前传输技术领域的一个重要话题。
一、DMA传输技术的特点
其实所谓的DMA传输技术,是指数据不经过CPU的转换,而是直接写入或从存储器读出,其传输的方式体现为存储器的直接存取方式。
在高速大批量数据传输的系统中DMA传输技术可以发挥出积极的作用,可以大大提高数据的吞吐量。这也是其能在信息时代备受用户信赖的主要原因之一。其运用领域是较为广泛的,例如,在磁盘存取、视频系统、高速数据采集系统,以及同步通信中的收发信号等方面。
总体来看,传输数据的速率高是DMA传输方式的主要特点。相对一般的传输方式而已,DMA方式传输数据的效率是更为高效的。
一般的程序控制传输方式,其数据都要经过CPU的累加器中转实现的。无论是从存储器送到z/o设备,或从I/0设备传输到存储器都是如此。而且在这过程中,还要加上检查传输是否顺利完成、修改内存地址等操作,这就不可避免的要花费许多时间。而DMA传输方式则不同,其具备让存储器与I/O设备,或I/0设备与I/O设备之间直接交换数据的功能。与其他传输方式相比,不存在需要经过累加器的中间环节,而且在内存地址的修改、传输是否完毕报告都不是由控制程序进行的,而是由硬件完成。这样,减少了中间环节,大大提高了传输速度,也就节省了许多时间。
当然,DMA传输方式的高速度,是有条件的,其在整个传输过程中,必须要增加系统硬件的复杂性和成本。主要原因就在于,DMA方式和程序控制方式相比较,其优势是在于用硬件控制代替软件控制。此外,在DMA传输的过程中,CPU是被挂起的,这必然会导致部分的,甚至是完全的失去对系统总线的控制,其结果是CPU对中断请求的及时响应与处理速度会受到较大的影响。所以,一般来说,如果系统对速度要求不高,或者其数据传输量较小的系统中,是不适宜用DMA方式传输的。
此外,必须要说明的是,尽管DMA传输摆脱了CPU的控制,但这并不意味着DMA传输不需要任何硬件来进行控制和管理。准确的说DMA控制器只是在一定时间内暂时代替CPU,实现对数据传输的全过程控制管理。就目前的情况看,DMA控制器往往是可编程的大规模集成芯片。有许多类型,如Z-80DMA,Intel 8257、8237、82C37A等。由此可知,DMA控制器是实现DMA传输的最核心器件,因此对它的工作原理、外部特性以及编程使用方法等方面的学习,就成了掌握DMA技术的核心内容。
二、DMA传输的过程
DMA传输方式从开始到结束整个过程有几个阶段。一般来说,在进行DMA操作之前,用户必须要对DMA控制器编程,也就是完成DMAC的初始化,准确的把要传输的数据字节数、数据在存储器中的起始地址、传输方向、DMAC的通道号等信息送到DMAC。最后在就等外设来申请DMA的传输。
(一)申请阶段
在初始化工作完成之后,如果外设需要系统通过DMA的方式为它服务,就会向DMAC发出DMA请求信号DREQ;DMAC当允许外设的请求后,就会进一步向CPU发出总线保持信号HOLD,然后申请占用总线。
(二)响应阶段
在每个总线周期结束时CPU会检测HOLD,如果总线锁定的信号LOCK无效时,就会依据DMAC的HOLD请求,进入保持状态,使CPU一侧的三总线“浮空”,CPU摆脱三总线,同时以总线保持回答信号HOLDACK通知DMAC总线已让出,DMAC与总线已经“接通”,这个时候,DMAC接管总线将会正式成为系统的主控者。
(三)数据传输阶段
当DMAC接管三总线成为主控者后,主要进行两个方面的工作。一是依据DMA请求回答信号DACK通知发出请求的外设,将被选中的DMA转换成传输设备。二是DMAC将会行使总线的控制权,对存储器发地址信号、向存储器、外设发读/写控制信号,最后控制数据会依据初始化设定的方向和字节数进行高速传输。
(四)传输结束阶段
一旦初始化中规定的数据字节数传输完毕,DMAC将会出现一个“计数已到”或“过程结束”的信号,同时发给外设备。外设备收到这个信号后,会确认所请求传输的数据完成传输,然后会及时撤销DMA请求信号DREQ,这样就可以保证总线保持信号HOLD和总线保持回答信号HOLDACK相继变为无效,DMAC摆脱三总线,DMAC一侧的总线“浮空”,CPU一侧的总线“接通”,CPU收回总线控制权,又重新控制总线。
三、DMA的操作系统
进行数据传输的操作是DMA传输的主要操作,同时也包括一些不是进行数据传输的操作,比如说数据校验、数据检索等。
(一)数据传输
将源地址的数据传输到目的地址去,就是所谓的数据传输。通常情况下,源地址和目的地址既可以都是存储器,也可以都是I/O端1:3。而且,即DMA读,指的是从存储器读,也就是说DMA传输的读/写操作都是从存储器的角度来定义的;而DMA写,是站在I/O设备的立场上来定义DMA读/写的,是指向存储器的写。
(二)数据校验
校验操作只对数据块内部的每个字节进行某种校验,而不是进行数据传输,所以,在DMA通道用于校验操作的情况下,DMAC并不发送存储器或I/o设备的读/写控制信号。不过,DMA的所有阶段还是要通过外设向DMAC提出申请,在DMAC响应后,会进入DMA周期,但是即使是进入DMA周期,也不进行传输数据,只不过是校验一个数据块的每个字节,直到所规定的字节数校验完毕或外设撤除DMA请求为止。
(三)数据检索
数据检索操作只是在指定的内存区域内查找某个关键字节或某几个关键数据位存在与否,若存在,则自动停止检索,而不进行数据传输。具体检索方法:首先将要查找的关键字节或关键数据位,都有序的写入比较寄存器,再从源地址的起始单元逐一读出数据,然后与寄存器内的关键字节或关键数据位进行对照,如果出现两者一致或不一致的情况,就达到字节匹配或不匹配,进而停止检索。
四、DMA的操作方式
DMA操作方式指的是进行任何一种DMA操作类型时,DMA操作每次所操作的字节数。通常会有以下三种作方式:
(一)单字节方式
每次DMA操作,只操作一个字节,即发出一次总线请求,包括数据传输或数据校验或数据检索操作,当DMAC占用总线之后,进入DMA周期只会传输或只校验或只检索一个字节数据,便释放总线。而在单字节方式下,只能一个字节一个字节地传输或校验或检索,每一个字节的传输完成后,DMAC就要重新向CPU申请占用总线。通常来说单字节方式的实现,都是在DMAC中设置字节计数器,当DMA进行传输时,传输一个字节数据,计数器就减1,同时释放总线,并及时把控制权交还CPU。
(二)连续方式
这种方式就是指,在整个数据块传输的过程中,当DMA一开始传输,DMAC会在数据传输结束或校验完毕或检索到“匹配字节”的前提下才把总线控制权还给CPU,也就是说起会从头到尾占用总线。在这种情况下,即使在传输过程中DMA请求变得无效,DMAC也不释放总线,只会暂停传输或检索,它会等待DMA请求转为有效后,才接着往下传输或检索。这种方式的优势是传输速度快,但因为其在整个数据块的传输过程中一直占用总线,中途不允许其他DMA通道参加竞争,所以,很可能会造成一些冲突。
连续方式的实现:一般也是在DMAC中设置字节计数器,每传输或检索一个字节,计数器减1,直到字节计数器由0减到FFFF时,产生终止计数信号T/C或由外部输入一个过程结束信号EOP为止。
(三)请求方式
这种方式在有请求的情况下,DMAC才占用总线,其是依据外部是否有DMA请求来决定的;如果DMA请求处于无效、数据传输结束、检索到匹配字节、校验完毕、由外部送来过程结束信号等情况下,DMAC就会释放总线,把总线控制权交给CPU。也就是说请求方式,在没有计数结束信号T/C或外部施加的过程结束信号EOP,且DREQ信号有效的情况下,DMA传输就会不中断的进行,直到外设把数据传输或检索完毕为止。
五、结束语
事实上,DMA传输技术与操作技术是一个系统的、复杂的科学范畴,在实际的研究和应用中有许多问题要解决,不是简单的操作就能实现的。因此,为确保传输的有效性,技术人员应该对传输过程、类型、操作方式进行精心研究,充分把握技术的要点。
参考文献:
[1]Freescale.MPC8260 PowerQUICCTM II Family Reference Manual.MPC8260RM Rev.2,2005-12
[2]基于DMA传输的并口设计实现,科学技术与工程,2006年10期
个人简介:乐湘云,女,汉族,湖南新田人,广西理工职业技术学校助理讲师;主要从事计算机应用技术研究。
推荐访问: 技术 传输 探讨 操作 DMA