没有合适的资源?快使用搜索试试~ 我知道了~
首页DMA基本原理、结构与应用
DMA基本原理、结构与应用

DMA控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。它之所以属于外设,是因为它是在处理器的编程控制下来执行传输的。值得注意的是,通常只有数据流量较大(kBps或者更高)的外设才需要支持DMA能力,这些应用方面典型的例子包括视频、音频和网络接口。
资源详情
资源评论
资源推荐

直接存储器存取—基本原理、结构与应用(上)
直接存储器存取(DMA)控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专
用总线将内部和外部存储器与每个具有 DMA 能力的外设连接起来的控制器。它之所以属于外设,是因为
它是在处理器的编程控制下来执行传输的。值得注意的是,通常只有数据流量较大(kBps 或者更高)的外
设才需要支持 DMA 能力,这些应用方面典型的例子包括视频、音频和网络接口。
一般而言,DMA 控制器将包括一条地址总线、一条数据总线和控制寄存器。高效率的 DMA 控制器将具
有访问其所需要的任意资源的能力,而无须处理器本身的介入,它必须能产生中断。最后,它必须能在控
制器内部计算出地址。
一个处理器可以包含多个 DMA 控制器。每个控制器有多个 DMA 通道,以及多条直接与存储器站
(memory bank)和外设连接的总线,如图 1 所示。在很多高性能处理器中集成了两种类型的 DMA 控制
器。第一类通常称为“系统 DMA 控制器”,可以实现对任何资源(外设和存储器)的访问,对于这种类型的
控制器来说,信号周期数是以系统时钟(SCLK)来计数的,以 ADI 的 Blackn
处理器 为例,频率最高可达
133MHz。第二类称为内部存储器 DMA 控制器(IMDMA),专门用于内部存储器所处位置之间的相互存取
操作。因为存取都发生在内部(L1-L1、L1-L2,或者 L2-L2),周期数的计数则以内核时钟(CCLK)为
基准来进行,该时钟的速度可以超过 600MHz。
每个 DMA 控制器有一组 FIFO,起到 DMA 子系统和外设或存储器之间的缓冲器的作用。对于
MemDMA(Memory DMA)来说,传输的源端和目标端都有一组 FIFO 存在。当资源紧张而不能完成数据
传输的话,则 FIFO 可以提供数据的暂存区,从而提高性能。
因为你通常会在代码初始化过程中对 DMA 控制器进行配置,内核就只需要在数据传输完成后对中断做出
响应即可。你可以对 DMA 控制进行编程,让其与内核并行地移动数据,而同时让内核执行其基本的处理
任务—那些应该让它专注完成的工作。
图
1
:系统和存储器
DMA
架构。


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1