登录/注册

dma控制器

更多

DMA控制器直接内存访问控制器)是计算机系统中一种重要的专用硬件芯片(或集成在CPU/芯片组中的模块),它的核心作用是在特定外设(比如硬盘、网卡、显卡、声卡)和系统主内存之间直接传输数据,而无需中央处理器(CPU)的持续干预

以下是关于DMA控制器关键点的详细说明:

  1. 核心目的:解放CPU,提高效率

    • 在传统的程序控制I/O(PIO)模式下,CPU需要亲自执行指令来读取外设数据再写入内存,或者读取内存数据再写入外设(例如inout指令)。
    • 这种方式会大量占用CPU时间,尤其是在传输大量数据(如磁盘读写、网络包收发、图形显示数据)时,CPU效率极低。
    • DMA控制器就是为了解决这个问题而生的。它像一个“数据搬运工”,接过数据搬运的脏活累活。
  2. 核心工作原理:接管总线,直接传输

    • 发起请求: 当外设准备好需要传输数据时(例如硬盘读取了一个扇区),它会向DMA控制器发出一个DMA请求信号。
    • 仲裁总线: DMA控制器接收到请求后,会向CPU发出一个总线请求信号,请求暂时接管系统总线(地址总线、数据总线、控制总线)的控制权。
    • CPU回应: CPU在当前总线周期结束时,如果允许总线出让,会向DMA控制器发出一个总线授权信号,并暂时挂起(或执行与总线无关的内部操作),交出总线控制权。
    • DMA传输: DMA控制器获得总线控制权后:
      • 向内存发送读写控制信号。
      • 在地址总线上放置要读写的内存地址。
      • 在数据总线上传输来自(或送往)外设的数据。
      • 控制传输的字节(或数据块)计数。
    • 传输完成/中断: 当DMA控制器完成了预定数量(由CPU初始化设定)的数据传输后:
      • 它会释放总线控制权(撤销总线请求)。
      • 向CPU发出一个中断请求信号,通知CPU数据传输已完成。
    • CPU恢复: CPU收回总线控制权,恢复正常执行。如果收到中断,会执行相应的中断服务程序进行后续处理(例如处理接收到的网络包)。
  3. 关键要素(初始化过程):

    • 源地址: 数据从哪里来?(内存地址还是I/O端口地址?)
    • 目标地址: 数据到哪里去?(内存地址还是I/O端口地址?)
    • 传输方向: 内存到外设(写操作),还是外设到内存(读操作)?
    • 传输大小: 需要传输多少字节(或数据块数量)?
    • 传输模式: 单字节模式、块传输模式、请求传输模式、级联模式等。
    • 这些信息通常由CPU在执行I/O操作前,通过向DMA控制器写入特定的寄存器来设置(编程)。
  4. 主要优点:

    • 显著降低CPU占用率: CPU只在传输开始和结束时参与(初始化和中断处理),传输过程完全由DMA硬件完成,极大地释放了CPU资源。
    • 提高系统吞吐量和效率: CPU可以并行处理其他计算任务,同时数据在后台高效传输。
    • 提高数据传输速率: DMA通常能以接近系统总线带宽的速度进行传输。
    • 适用于高速设备: 对硬盘、高速网络接口卡(NIC)、图形卡、音频设备等需要大量数据传输的外设至关重要。
  5. 应用场景:

    • 硬盘读写(IDE/SATA/AHCI控制器、NVMe控制器内部都集成或利用PCIe总线上的DMA)。
    • 网络数据包收发(网卡控制器)。
    • 图形数据写入显卡显存。
    • 声卡播放或录制音频流。
    • 内存到内存的快速复制(某些高级DMA控制器支持)。
    • 许多其他需要高速数据传输的I/O设备。
  6. 本质区别:

    • DMA控制器 vs. CPU搬运: DMA是硬件直接搬运,CPU是软件执行指令搬运。
    • DMA控制器 vs. I/O处理器(如GPU): DMA专注于简单的数据移动(搬砖);更复杂的I/O处理器(如某些高端网卡上的处理器、GPU)不仅搬运数据,还能执行特定计算任务(如网络协议处理、图形渲染)。

总结:DMA控制器是现代计算机架构中提升I/O性能的核心部件。它通过硬件接管CPU的数据搬运工作,在内存和外设(或内存之间)之间建立直接的高速数据通道,最大限度地释放CPU计算能力,保证系统整体高效运行。

CKS32F107xx系列的DMA控制器简介

直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储

2025-02-18 17:24:46

请问DMA控制器可以减轻CPU负担吗?

直接存储器访问 ( DMA )控制器,可以在内存和/或外设之间传输数据,而不需要 CPU 参与每次传输。合理利用

2024-03-28 09:41:01

使用STM32F101xx和STM32F103xx DMA控制器

这篇应用笔记描述了怎么使用STM32F101xx和STM32F103xx的直接内存访问(DMA)控制器。STM32F101xx和STM32F103xx DMA

2022-12-23 11:42:28

STM32F0xx的DMA控制器的使用

电子发烧友网站提供《STM32F0xx的DMA控制器的使用.pdf》资料免费下载

资料下载 李娜 2023-09-21 14:49:49

AN4104_STM32F0xx的DMA控制器的使用

AN4104_STM32F0xx的DMA控制器的使用

资料下载 杨帆 2022-11-21 08:11:37

AN3109_用STM32F10x微控制器DMADMA超时仿真通信外设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

一文读懂DMA控制器

DMA控制器的主要特性有哪些?DMA控制器通道的配置过程该怎样去完成呢?

2021-12-13 06:12:53

浅析DMA控制器与FSMC控制器

直接存储器存取DMACPU太忙了,那DMA你来帮我吧,这样很多事情CPU就不用停下来去管了。在DMA模式下,CPU只须向

2021-12-09 06:00:30

通过DMA控制器进行介质访问控制

通过 DMA 控制器进行介质访问控制 (MAC)STM32F4xx系列控制器

2021-08-13 08:47:19

stm32的dma控制器有多少个通道

stm32的dma控制器有多少个通道,DMA简介直接存储器存取(

2021-08-05 07:29:16

ZNEO CPU 上的 DMA 控制器特性分析

本应用笔记介绍了 ZNEO CPU 中的 DMA 控制器及其突出的特性,例如 DMA 和 CPU 带宽共享

2021-06-21 17:28:25

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

7天热门专题 换一换
相关标签