DMA和burst不是一个概念。

DMA传送不经过CPU的控制,假如硬盘的数据不能经过DMA控制器读到内存,那么每完成一次将硬盘的数据读出来,再存放到内存的操作,都要通过CPU运行几条读写指令来完成,这时CPU就做不了别的事了,如果有DMA控制器,则这个过程不需要CPU的参与,只需要占用总线就可以了。CPU还可以去完成别的运算。

Burst操作还是要通过CPU的参与的,与单独的一次读写操作相比,burst只需要提供一个其实地址就行了,以后的地址依次加1,而非burst操作每次都要给出地址,以及需要中间的一些应答、等待状态等等。如果是对地址连续的读取,burst效率高得多,但如果地址是跳跃的,则无法采用burst操作

一般芯片的dma有基本功能。

1、普通的内存、外设间互传数据,一次性的。

2、支持链表的,美其名曰“scatter”,内核有struct scatter可以参考。

说一下注意点:

dma有burst、burst size、transfer的概念:

burst:

dma实际上是一次一次的申请总线,把要传的数据总量分成一个一个小的数据块。比如要传64个字节,那么dma内部可能分为2次,一次传64/2=32个字节,这个2(a)次呢,就叫做burst。这个burst是可以设置的。这32个字节又可以分为32位 *8或者16位*16来传输。

transfer size:

就是数据宽度,比如8位、32位,一般跟外设的FIFO相同。

burst size:

就是一次传几个 transfer size.

配置数据宽度为32位。一次传8个32位=32个字节。

那么如果总长度为128字节,那么实际dma设置的长度为 128/32 = 4.

DMA burst 基本概念相关推荐

  1. PCI总线 DMA burst 基本概念

    转载地址:http://blog.csdn.net/sunjiajiang/article/details/7945057 DMA和burst不是一个概念. DMA传送不经过CPU的控制,假如硬盘的数 ...

  2. RDMA技术详解——DMA和RDMA概念

    1.1 DMA DMA(Direct Memory Access,直接内存访问)是一种能力,允许在计算机主板上的设备直接把数据发送到内存中去,数据搬运不需要CPU的参与.如下图所示 红线部分为传统内存 ...

  3. DMA/DMA2D概念

    目录 DMA DMA-系统框图 DMA分类 传输方向 传输行为 模块设计 学习过程中的疑问 DMA2D DMA2D框图 DMA2D应用方式 (1条消息) [STM32] DMA原理,步骤超细详解,一文 ...

  4. linux内核驱动 DMA Engine使用

    一 DMA control 驱动 1. 前言 前面文章介绍" Linux MMC framework "的时候,涉及到了MMC数据传输,进而不可避免地遭遇了DMA(Direct M ...

  5. Linux内核4.14版本——DMA Engine框架分析(2)_功能介绍及解接口分析(slave client driver)

    1 前言 2  Slave-DMA API和Async TX API 3 dma engine的使用步骤 3.1 申请DMA channel 3.2 配置DMA channel的参数 3.3 获取传输 ...

  6. Linux DMA 框架介绍,demengine.c文件

    Linux DMA 框架介绍(demengine.c) 1.介绍 从我们的直观感受来说,DMA并不是一个复杂的东西,要做的事情也很单纯直白.因此Linux kernel对它的抽象和实现,也应该简洁.易 ...

  7. Linux DMA Engine framework(2)_功能介绍及解接口分析

    转载.蜗窝科技,www.wowotech.net. Linux DMA Engine framework(2)_功能介绍及解接口分析 作者:wowo 发布于:2017-5-2 22:47 分类:Lin ...

  8. 嵌入式开发之hi3519---PCIE DMA

    http://blog.csdn.net/abcamus/article/details/76167747 大话pcie dma http://blog.csdn.net/qingfengtsing/ ...

  9. 让容器跑得更快:CPU Burst 技术实践

    作者:常怀鑫.丁天琛 让人讨厌的 CPU 限流影响容器运行,有时人们不得不牺牲容器部署密度来避免 CPU 限流出现.我们设计的 CPU Burst 技术既能保证容器运行服务质量,又不降低容器部署密度. ...

  10. DMA RDMA 技术详解

    DMA 技术是一个 直接内存访问技术. 在传统的linux 内存读写操作都必须经过cpu,读写寻址都是有cpu 完成的, 现在有一中技术 让数据读写完全由网卡自己完成. 这样就必须有硬件支持,及系统必 ...

最新文章

  1. 参加LinuxCon Japan 2012
  2. C++ 编写DLL文件给易语言调用
  3. 九种破解Xp登录密码方法
  4. 资源权限操作-查询所有资源权限
  5. file is not a zip file_【钢新滨河社团活动】超燃手势舞,牛津A班邀你来battle!
  6. 大数据对社交媒体的影响_数据如何影响媒体,广告和娱乐职业
  7. 女子15000元网购兰基博尼跑车,上路就被查了,这操作真没见过!
  8. POJ 3694Network(Tarjan边双联通分量 + 缩点 + LCA并查集维护)
  9. sqlserver 列出表字段和字段说明
  10. Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
  11. iqc工作职责和工作内容_新媒体实习生是做什么的?新媒体实习生岗位职责工作内容...
  12. JavaScript JSON 对象使用详解、JSON. parse()、JSON. stringify()
  13. pandas 日期比较大小_如何计算不同pandas列中两个日期之间的年数
  14. DF1协议的CSP寻址
  15. php 实现简单的音乐播放器 (音乐上传 音乐列表 音乐删除)
  16. SAE 搭建微信公众平台
  17. CIR 工业自动化雷达
  18. xilinx zynq zynqmp nvme SSD使用
  19. 李宏毅自然语言处理——GPT3简介
  20. 小游戏:红色警戒争霸战!

热门文章

  1. Java—核心技术类的封装、继承与多态
  2. 生活之美--需要设计
  3. Java SE day02 pm
  4. Joiner拼接String
  5. 电脑端/手机端获取京东pt_key和pt_pin的几种方式
  6. android手机内存单位 吉字节,Android8.1 吉字节问题
  7. Python open和with open的区别
  8. 微信消息接口发送信息到分组和用户,错误代码40003和40008
  9. SRE实战手册-基础篇
  10. Linux服务篇之DNS域名解析服务