dma控制器
DMA控制器(直接内存访问控制器)是计算机系统中一种重要的专用硬件芯片(或集成在CPU/芯片组中的模块),它的核心作用是在特定外设(比如硬盘、网卡、显卡、声卡)和系统主内存之间直接传输数据,而无需中央处理器(CPU)的持续干预。
以下是关于DMA控制器关键点的详细说明:
-
核心目的:解放CPU,提高效率
- 在传统的程序控制I/O(PIO)模式下,CPU需要亲自执行指令来读取外设数据再写入内存,或者读取内存数据再写入外设(例如
in和out指令)。 - 这种方式会大量占用CPU时间,尤其是在传输大量数据(如磁盘读写、网络包收发、图形显示数据)时,CPU效率极低。
- DMA控制器就是为了解决这个问题而生的。它像一个“数据搬运工”,接过数据搬运的脏活累活。
- 在传统的程序控制I/O(PIO)模式下,CPU需要亲自执行指令来读取外设数据再写入内存,或者读取内存数据再写入外设(例如
-
核心工作原理:接管总线,直接传输
- 发起请求: 当外设准备好需要传输数据时(例如硬盘读取了一个扇区),它会向DMA控制器发出一个DMA请求信号。
- 仲裁总线: DMA控制器接收到请求后,会向CPU发出一个总线请求信号,请求暂时接管系统总线(地址总线、数据总线、控制总线)的控制权。
- CPU回应: CPU在当前总线周期结束时,如果允许总线出让,会向DMA控制器发出一个总线授权信号,并暂时挂起(或执行与总线无关的内部操作),交出总线控制权。
- DMA传输: DMA控制器获得总线控制权后:
- 向内存发送读写控制信号。
- 在地址总线上放置要读写的内存地址。
- 在数据总线上传输来自(或送往)外设的数据。
- 控制传输的字节(或数据块)计数。
- 传输完成/中断: 当DMA控制器完成了预定数量(由CPU初始化设定)的数据传输后:
- 它会释放总线控制权(撤销总线请求)。
- 向CPU发出一个中断请求信号,通知CPU数据传输已完成。
- CPU恢复: CPU收回总线控制权,恢复正常执行。如果收到中断,会执行相应的中断服务程序进行后续处理(例如处理接收到的网络包)。
-
关键要素(初始化过程):
- 源地址: 数据从哪里来?(内存地址还是I/O端口地址?)
- 目标地址: 数据到哪里去?(内存地址还是I/O端口地址?)
- 传输方向: 内存到外设(写操作),还是外设到内存(读操作)?
- 传输大小: 需要传输多少字节(或数据块数量)?
- 传输模式: 单字节模式、块传输模式、请求传输模式、级联模式等。
- 这些信息通常由CPU在执行I/O操作前,通过向DMA控制器写入特定的寄存器来设置(编程)。
-
主要优点:
- 显著降低CPU占用率: CPU只在传输开始和结束时参与(初始化和中断处理),传输过程完全由DMA硬件完成,极大地释放了CPU资源。
- 提高系统吞吐量和效率: CPU可以并行处理其他计算任务,同时数据在后台高效传输。
- 提高数据传输速率: DMA通常能以接近系统总线带宽的速度进行传输。
- 适用于高速设备: 对硬盘、高速网络接口卡(NIC)、图形卡、音频设备等需要大量数据传输的外设至关重要。
-
应用场景:
- 硬盘读写(IDE/SATA/AHCI控制器、NVMe控制器内部都集成或利用PCIe总线上的DMA)。
- 网络数据包收发(网卡控制器)。
- 图形数据写入显卡显存。
- 声卡播放或录制音频流。
- 内存到内存的快速复制(某些高级DMA控制器支持)。
- 许多其他需要高速数据传输的I/O设备。
-
本质区别:
- DMA控制器 vs. CPU搬运: DMA是硬件直接搬运,CPU是软件执行指令搬运。
- DMA控制器 vs. I/O处理器(如GPU): DMA专注于简单的数据移动(搬砖);更复杂的I/O处理器(如某些高端网卡上的处理器、GPU)不仅搬运数据,还能执行特定计算任务(如网络协议处理、图形渲染)。
总结:DMA控制器是现代计算机架构中提升I/O性能的核心部件。它通过硬件接管CPU的数据搬运工作,在内存和外设(或内存之间)之间建立直接的高速数据通道,最大限度地释放CPU计算能力,保证系统整体高效运行。
使用STM32F101xx和STM32F103xx DMA控制器
这篇应用笔记描述了怎么使用STM32F101xx和STM32F103xx的直接内存访问(DMA)控制器。STM32F101xx和STM32F103xx DMA
2022-12-23 11:42:28
AN3109_用STM32F10x微控制器的DMA和DMA超时仿真通信外设FIFO
AN3109_用STM32F10x微控制器的DMA和DMA超时仿真通信外设FIFO
资料下载
李猛
2022-11-21 08:11:29
DMA控制器原理详解
目录工作原理DMA硬件架构DMA出现的目的工作原理DMA全拼Direct Memory Access(直接内存存取),在传统的CPU存取数据时会
资料下载
南风一号
2021-12-08 16:51:22
带OPB中央DMA的MCH OPB DDR SDRAM控制器系统的详细说明
SDRAM控制器的两个MCH端口连接到Microblaze处理器的缓存端口。端口配置为xilinx cachelink(xcl)协议,该协议允许处理器
资料下载
佚名
2019-09-12 14:14:00
ZYNQ开发案例之DMA控制器系统设计
断给中断控制器; 5. 拥有8个DMA触发事件并且可以编码控制; 6. 128个(64bit)的MFIFO,在传输的时候读写端可写入到此FIFO
2020-12-05 10:17:17
dma控制器是什么_dma控制器工作方式
DMA(Direct Memory Access)控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器
2019-11-15 10:25:56
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览