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

目录

一、引言

二、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

你可能感兴趣的:(dma,linux,系统总线,android,内存管理)