DMA系统能完成哪些功能?简述DMA传输方式的特点?

DMA主要完成I/O设备与内存的交换?具体功能是?传输方式特点是?具体点,谢谢啊。

一、功能

在没有 Cortex-M3 核心的干预下,在后台完成数据传输。在传输数据的过程中,主处理器可以执行其它任务,只有在整个数据块传输结束后,需要处理这些数据时才会中断主处理器的操作。它可以在对系统性能产生较小影响的情况下,实现大量数据的传输。

二、特点

DMA 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。否则,CPU 需要从 来源 把每一片段的资料复制到暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。

DMA 传输将一个内存区从一个装置复制到另外一个, CPU 初始化这个传输动作,传输动作本身是由 DMA控制器来实行和完成。

典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能嵌入式系统算法和网络是很重要的。

扩展资料

原理:

一个设备接口试图通过总线直接向另一个设备发送数据(一般是大批量的数据),它会先向CPU发送DMA请求信号。

外设通过DMA的一种专门接口电路――DMA控制器(DMAC),向CPU提出接管总线控制权的总线请求,CPU收到该信号后,在当前的总线周期结束后,会按DMA信号的优先级和提出DMA请求的先后顺序响应DMA信号。

CPU对某个设备接口响应DMA请求时,会让出总线控制权。于是在DMA控制器的管理下,外设和存储器直接进行数据交换,而不需CPU干预。数据传送完毕后,设备接口会向CPU发送DMA结束信号,交还总线控制权。

参考资料来源:百度百科-DMA方式

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-15
DMA是“Direct Memory Access”的缩写,其意思就是“直接内存访问”,它是一种高速的数据传输操作,允许在外部设备和存储器之间直接读/写数据,既不通过CPU也不需要CPU干预。整个数据传输过程是在一个“DMA控制器”的控制下进行的。在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,使整个计算机系统的效率大大提高。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种,其中所能达到的最大传输速率也只有16.6MB/s。而最新的Ultra DMA 33是一种新的同步DMA(synchronous DMA)协定,由Intel所设计。将ATA-2设备的传输速度从16MB/s提升至33MB/s,DMA方式是I/O系统与主机交换数据的主要方式之一,另外还有程序查询方式和中断方式.

S3C44B0X DMA简述

s3c44b0有4通道DMA控制器:2个ZDMA(普通GDMA),连接于SSB(Samsung System Bus,三星系统总线);另外是2个BDMA(桥梁DMA),在桥内,“桥”是SSB和SPB(Samsung Peripheral Bus,三星外围总线)之间的一个 interface。也就是说BDMA控制器只能在连到SPB上的I/O装置(外设)与存储器之间传输数据。

与SSB相连的ZDMA可以从存储器到存储器,存储器到I/O设备(有固定的目的地址)和I/O设备到存储器传送数据。而另外2个BDMA只能是存储器和I/O设备之间传送数据。I/O设备也就是外围设备,像UART,IIS,SIO等。ZDMA和BDMA的操作由(S/W)或来自内部设备或外部请求引脚(nXDREG0/1)请求启动。

ZDMA最重要的特征是on-the-fly模式,当DMA在外部存储器和一个固定的外部设备之间进行操作时,该模式可减少周期数,在on-the-fly模式下操作,源和目的的总线宽度要匹配。
第2个回答  2013-07-15
DMA的概念:DMA是在专门的硬件( DMA)控制下,实现高速外设和主存储器之间自动成批交换数据尽量减少CPU干预的输入/输出操作方式。通常有两种方式:

◎独占总线方式 ◎周期挪用方式

(2)DMA的组成:

◎主存地址寄存器

◎数据数量计数器

◎DMA的控制/状态逻辑 ◎DMA请求触发器

◎数据缓冲寄存器 ◎中断机构

(3)DMA的传送数据的过程:由三个阶段组成

◎传送前的预处理:由CPU完成以下步骤
向DMA卡送入设备识别信号,启动设备,测试设备运行状态,送入内存地址初值,传送数据个数, DMA的功能控制信号。

◎数据传送:在DMA卡控制下自动完成

◎传送结束处理

DMA 卡上应包括通用接口卡的全部组成部分,并多出如下内容:
主存地址寄存器,传送字数计数器,DMA控制逻辑,DMA请求,DMA响应,DMA工作方式,DMA优先级及排队逻辑等

一次完整的DMA传送过程:
DMA 预处理,CPU向DMA送命令,如DMA方式,主存地址,传送的字数等,之后CPU执行原来的程序

DMA 控制在 I/O 设备与主存间交换数据:
准备一个数据, 向CPU发DMA请求,取得总线控制权,进行数据传送,修改卡上主存地址,修改字数计数器内且检查其值是否为零,不为零则继续传送,若已为零,则向 CPU发中断请求.
第3个回答  推荐于2017-05-22
DMA来源于I/O模型.一般说来,I/O技术有三种:Programmed I/O,Interrupt-Driven I/O和Direct Memory Access (DMA)
下面简单列出这三种技术的流程图,通过比较他们的特点 ,我们可以发现DMA是如何成为一种关键的I/O技术的.
Programmed I/O和Interrupt-Driven I/O的不足
I/O传送速度受处理器测试和给设备提供服务的速度的限制
处理器负责管理I/O传送,对于每一次的I/O传送,处理器必须执行一些指令
当传送大量数据时,需要有更有效的技术:DMA
DMA功能
DMA技术在实现上需要在系统总线上有一个附加模块——DMA Controller
为了传送数据给存储器或从存储器读取数据, DMA Controller数据线需要掌管总线,一般需要将CPU暂时挂起(cycle-stealing)
当CPU想要读写数据块时,它发送一个命令给DMA Controller,向DMA Controller发送信息如下:
是请求读还是写
所涉及的I/O设备地址
读或写时存储器中的起始单元地址
读或写的字数
然后DMA开始工作,而CPU不参与,即数据不经过CPU
当传送结束时,DMA Controller发送一个中断信号给CPU,因此,CPU只是在数据传送的开始和结束时参与
CPU挂起不是中断,CPU不保存现场,也不做其他事情,而只是等待总线
第4个回答  2013-07-15
相似回答