DMA总线

作者: zhitingxie | 来源:发表于2017-03-24 14:37 被阅读59次

DMA 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。否则,CPU 需要从来源 把每一片段的资料复制到 暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。
DMA 传输主要地将一个内存区从一个装置复制到另外一个。当 CPU初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。
DMA 传输对于高效能 嵌入式系统 算法和网络是很重要的。  
在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。 一个完整的DMA传输过程必须经过下面的4个步骤。

  1. DMA请求
    CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。
  2. DMA响应
    DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。
  3. DMA传输
    DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。
    在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。
  4. DMA结束
    当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。当I/O接口收到结束信号后,一方面停 止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。

由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。

相关文章

  • DMA总线

    DMA 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。否则,...

  • 运动控制器35:STM32的存储器和BOOT设置

    系统架构 四个驱动单元:DCODE总线,系统总线,DMA1和DMA2 四个被动单元:SRAM,FLASH,FSMC...

  • DMA与CPU总线控制问题

    转自 https://bbs.csdn.net/topics/392159760?page=1zhouxiangb...

  • 基于FPGA的PCI总线DMA逻辑

    今天清理电脑,好久以前的VHDL逻辑,感觉以后都不会和FPGA有缘了,传git吧。现在大部分PCI板卡都是基于PC...

  • 13/71天阅读

    《编码》第21章 总线 DMA可以使存储设备快速的执行存储操作。通常情况下,所有读写内存的操作都是由微处理器来完成...

  • 2018-01-26课后总结

    今天主要学习了DMA,DMA包括DMA1、DMA2,每一个DMA下面包括8个stream,每个stream包括8个...

  • 网络工程师错题知识点集合(二)

    网络工程师纠错本 本题考查计算机组成基础知识。DMA控制器在需要的时候代替CPU作为总线主设备,在不受CPU干预的...

  • STM32 DMA

    STM32 DMA 1 什么是DMA? DMA(Direct memory access)意为直接内存访问,主要优...

  • DMA

    DMA:Data Memory Access,直接存储器访问Ⅰ、DMA请求 Ⅱ、DMA通道 (通道1-7) 3.仲...

  • 带你玩转基于SkyEye的TLE987 DMA控制器实现

    01.DMA 介绍 DMA,全称Direct Memory Access,即直接存储器访问。 DMA传输将数据从一...

网友评论

    本文标题:DMA总线

    本文链接:https://www.haomeiwen.com/subject/edkfottx.html