Linux驱动学习–DMA的介绍及使用(系统总线、iommu相关知识介绍)

  • Post author:
  • Post category:linux




目录



一、引言



二、DMA介绍



——> MMU IOMMU


——> 系统总线、内部总线、外部总线



三、DMA的数据传输



四、DMA的使用



一、引言

最近发现DMA用的有点频繁,就来系统性的整理一下



二、DMA介绍

DMA “Direct Memory Access(存储器直接访问)。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据。

整个数据传输操作在一个称为”DMA控制器”的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外(开始和结束时候要做中断处理),在传输过程中CPU可以进行其他的工作(前提是未设置停止CPU访问)。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高”。

DMA传送方式是让存储器与外设、或外设与外设之间直接交换数据,不需要经过CPU的累加器中转,减少了这个中间环节,并且内存地址的修改、传送完毕的结束报告都是由硬件电路实现的,因此大大地提高了数据的传输速度。一个DMA传送只需要执行一个DMA周期,相当于一个总线读写周期。

DMA是在专门的硬件( DMA)控制下,实现高速外设和主存储器之间自动成批交换数据尽量减少CPU干预的输入/输出操作方式。

DMA一般都是集成在CPU/MCU内部的&#x



版权声明:本文为weixin_38019025原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。