DMA Engines之Scatter-Gather DMA

DMA Engines之Scatter-Gather DMA

在实现PCIe总线传输时看到有Scatter-Gather DMA运输方式,特此记录一下。

首先对常规的DMA基本知识进行简单描述

DMA(Direct Memory Access)即直接内存访问,无需CPU干预情况下即可直接由DMA模块硬件实现数据的快速传输。由于DMA传输方式不需要CPU参与,没有取指令、取数据等CPU操作,因而传输数据更快。早在8086的应用中就已经有了Intel的8237这种典型的DMA控制器。
微控制器的硬件系统一般都是由CPU(内核)、外设、内存(SRAM)、总线等模块组成,数据通常需要在内存和外设之间转移,或者从外设A转移到外设B。由CPU进行数据转移时,占用了CPU宝贵的时间,而且需要取指、译指、执行指令等操作,降低了效率。我们希望的是CPU可以更多地处理运算或者响应中断,而把数据转移的工作交由DMA等其他模块完成,以提高效率。

Scatter-Gather DMA

传统的DMA 一次只能传输物理上连续的一个块的数据, 完成传输后发起中断。而 Scatter-Gather DMA允许一次传输多个物理上不连续的块,完成传输后只发起一次中断。

Scatter-Gather的应用

未完待续…

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁头小哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值