在正文开始之前需要先搞明白以下几个问题:
1. 什么是DMA?
DMA的中文名称叫做 直接内存访问,是一种不需要CPU参与,就能实现数据搬移的技术(从一个地址空间到另一个地址空间)。
2. DMA有什么用?
一定程度上解放CPU,对于实现 高效嵌入式系统 与 加速网络数据处理 有极其重要的作用。
3. DMA的实现简述
在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。一个完整的DMA传输过程必须经过DMA请求、DMA响应、DMA传输、DMA结束 4个步骤。
scatter-gather DMA 与 block DMA
传统的block DMA 一次只能传输物理上连续的一个块的数据, 完成传输后发起中断。而scatter-gather DMA允许一次传输多个物理上不连续的块,完成传输后只发起一次中断。
传统的block DMA像这样:

先进的scatter-gather DMA像这样:

这样做的好处是直观的,大大减少了中断的次数,提高了数据传输的效率。
本文深入探讨了DMA(直接内存访问)技术,解释了其如何在不依赖CPU的情况下进行数据传输,从而提升嵌入式系统和网络数据处理的效率。文章对比了传统blockDMA与先进的scatter-gatherDMA,后者通过减少中断次数显著提高了数据传输效率。
399





