• [Burst]理解下DMA/NorFlash/DDR下的Burst是个什么概念


    转自:http://bbs.eetop.cn/thread-12436-1-1.html

    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.

  • 相关阅读:
    JQuery之动画效果
    JS (随着鼠标的移动,旁边显示放大图)
    jQuery 事件和动画
    jQuery 概述
    CSS (层叠样式表)
    css的文章部分的基本语句
    HTML基本语法
    Web
    JavaScript预解析案例,JavaScript预解析题目
    JavaScript预解析 变量提升与函数提升
  • 原文地址:https://www.cnblogs.com/aaronLinux/p/9403705.html
Copyright © 2020-2023  润新知