当前位置: 首页 > news >正文

DMA技术原理

        最近在一些技术资料上看见一篇关于讲解DMA技术原理,个人感觉是很通俗易懂的,所以博主就通过该文章分享出来,大家共同成长进步。如有更好的文献,也欢迎分享!

目录

一、DMA的含义

1)狭义定义

2)广义定义

3)示例如下

二、DMA关键参数

三、DMA模式

1)单描述符DMA

2)多描述符DMA


一、DMA的含义

1)狭义定义

        是英文Direct Memory Access(直接内存访问)的缩写,主要指无需CPU介入下的外设、内存、子系统之间的数据交换技术。

2)广义定义

        是指交换数据的双方(或双方的控制者)不直接参与与数据传输的技术,不再局限于CPU构建的系统。

3)示例如下

          将数据0~31传输到UART接口:

二、DMA关键参数

关键参数

描述

数据来源类型

如DDR存储器、Flash存储器、UART、SPI、ETH、PCIE等

数据目的类型

与数据源相同

数据源、目的地址

数据来源或者目的的具体地址

地址模式

数据的源、目的地址更新模式、递增、递减、不变

数据长度

传输数据的长度

工作模式

单/多次模式 = 完成1/N次数据传输

循环模式 = 重复完成设定的数据传输

传输状态

传输进行的状态,表示传输完成了HALF、DONE、ERR等

中断设置

传输各个状态是否产生中断

启动/终止

启动DMA完成数据传输,终止DMA的传输(常用于循环模式的终止)

三、DMA模式

1)单描述符DMA

        也可以称之为BLOCK类型,只能完成1块数据的传输,即DMA参数寄存器只提供了一份DMA相关参数的配置,属于手动步枪。

        CPU配置并启动DMA控制器,DMA控制器替代CPU完成数据从源到目的地的搬移。

        如果DMA的数据传输方式为单次模式,则数据传输完成后通过终端主动上报或者CPU查询DMA状态通知CPU,如果CPU想进行下一次的数据传输,需要重新配置并启动DMA。

        如果DMA的数据传输方式为多次模式,则完成指定次数的数据传输后DMA通过中断或者状态通知CPU此次DMA数据传输完成。

        如果DMA的数据传输方式为循环模式,需要CPU主动终止DMA,之后DMA通过中断或者状态通知CPU此次DMA数据传输完成。

        DMA控制器的内部结构为DMA配置寄存器+DMA执行机构。

2)多描述符DMA

        也可以称之为Scatter-Gather(分散聚合)类型的DMA,DMA参数寄存器保存了一份DMA工作参数,同时增加了一个参数装载机构,在启用SG模式时,自动从外部参数表装载工作参数到参数寄存器,完成参数的连续装载,属于自动步枪。

相关文章:

  • 软件系统的可观测性 Observability
  • 鸿蒙开发中对want的深入理解,want和uiability的关系-深度理解want的意思有利开发-优雅草卓伊凡
  • 聊一聊Qwen3思考模式实现以及背后原理探讨
  • 【Ollama】docker离线部署Ollama+deepseek
  • 深度学习赋能:正面吊车载箱号识别系统的核心技术
  • vue+vite难点和优化,及seo优化
  • 亚远景-ASPICE vs ISO 21434:汽车软件开发标准的深度对比
  • 可视化图解算法34:二叉搜索树的最近公共祖先
  • Docker 容器化部署深度研究与发展趋势
  • mysql中执行select命令的顺序
  • upload-labs靶场通关详解:第一关
  • 基于OpenTelemetry的分布式链路追踪Trace‌实现(PHP篇)
  • FlyEnv:优雅直观的跨平台开发环境管理工具
  • vue3+vite项目引入tailwindcss
  • Spark处理过程-转换算子和行动算子
  • 通过vllm部署qwen3大模型以及基于 vLLM 的 OpenAI 兼容 API 接口调用方法总结
  • 详细剖析传输层协议(TCP和UDP)
  • 数据库即服务(DBaaS)领域的最新创新
  • 仿真系统-学生选课管理
  • DBa作业
  • 网红街区如厕难,如何多管齐下补缺口?
  • 佩斯科夫:俄会考虑30天停火提议,但试图对俄施压无用
  • 读图|展现城市品格,上海城市影像走进南美
  • 调节负面情绪可以缓解慢性疼痛
  • A股26家游戏企业去年营收近1900亿元:过半净利下滑,出海成为主流选择
  • 央行:5月8日起7天期逆回购操作利率由此前的1.50%调整为1.40%