DMA burst 基本概念
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 基本概念相关推荐
- PCI总线 DMA burst 基本概念
转载地址:http://blog.csdn.net/sunjiajiang/article/details/7945057 DMA和burst不是一个概念. DMA传送不经过CPU的控制,假如硬盘的数 ...
- RDMA技术详解——DMA和RDMA概念
1.1 DMA DMA(Direct Memory Access,直接内存访问)是一种能力,允许在计算机主板上的设备直接把数据发送到内存中去,数据搬运不需要CPU的参与.如下图所示 红线部分为传统内存 ...
- DMA/DMA2D概念
目录 DMA DMA-系统框图 DMA分类 传输方向 传输行为 模块设计 学习过程中的疑问 DMA2D DMA2D框图 DMA2D应用方式 (1条消息) [STM32] DMA原理,步骤超细详解,一文 ...
- linux内核驱动 DMA Engine使用
一 DMA control 驱动 1. 前言 前面文章介绍" Linux MMC framework "的时候,涉及到了MMC数据传输,进而不可避免地遭遇了DMA(Direct M ...
- 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 获取传输 ...
- Linux DMA 框架介绍,demengine.c文件
Linux DMA 框架介绍(demengine.c) 1.介绍 从我们的直观感受来说,DMA并不是一个复杂的东西,要做的事情也很单纯直白.因此Linux kernel对它的抽象和实现,也应该简洁.易 ...
- Linux DMA Engine framework(2)_功能介绍及解接口分析
转载.蜗窝科技,www.wowotech.net. Linux DMA Engine framework(2)_功能介绍及解接口分析 作者:wowo 发布于:2017-5-2 22:47 分类:Lin ...
- 嵌入式开发之hi3519---PCIE DMA
http://blog.csdn.net/abcamus/article/details/76167747 大话pcie dma http://blog.csdn.net/qingfengtsing/ ...
- 让容器跑得更快:CPU Burst 技术实践
作者:常怀鑫.丁天琛 让人讨厌的 CPU 限流影响容器运行,有时人们不得不牺牲容器部署密度来避免 CPU 限流出现.我们设计的 CPU Burst 技术既能保证容器运行服务质量,又不降低容器部署密度. ...
- DMA RDMA 技术详解
DMA 技术是一个 直接内存访问技术. 在传统的linux 内存读写操作都必须经过cpu,读写寻址都是有cpu 完成的, 现在有一中技术 让数据读写完全由网卡自己完成. 这样就必须有硬件支持,及系统必 ...
最新文章
- 参加LinuxCon Japan 2012
- C++ 编写DLL文件给易语言调用
- 九种破解Xp登录密码方法
- 资源权限操作-查询所有资源权限
- file is not a zip file_【钢新滨河社团活动】超燃手势舞,牛津A班邀你来battle!
- 大数据对社交媒体的影响_数据如何影响媒体,广告和娱乐职业
- 女子15000元网购兰基博尼跑车,上路就被查了,这操作真没见过!
- POJ 3694Network(Tarjan边双联通分量 + 缩点 + LCA并查集维护)
- sqlserver 列出表字段和字段说明
- Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
- iqc工作职责和工作内容_新媒体实习生是做什么的?新媒体实习生岗位职责工作内容...
- JavaScript JSON 对象使用详解、JSON. parse()、JSON. stringify()
- pandas 日期比较大小_如何计算不同pandas列中两个日期之间的年数
- DF1协议的CSP寻址
- php 实现简单的音乐播放器 (音乐上传 音乐列表 音乐删除)
- SAE 搭建微信公众平台
- CIR 工业自动化雷达
- xilinx zynq zynqmp nvme SSD使用
- 李宏毅自然语言处理——GPT3简介
- 小游戏:红色警戒争霸战!