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

输入输出控制方式:DMA(直接存储器存取)

适合读者:软考中级备考同学
阅读时间:3.5分钟
内容:DMA工作原理、工作流程、与中断对比、优缺点、例题


1. 为什么需要DMA?

程序查询和中断方式虽然解决了CPU与外设的交互问题,但数据传输过程仍然由CPU执行指令完成(从设备读数据再写到内存)。当需要传输大量数据(如磁盘块、视频流)时,CPU会被频繁中断或忙等,效率低下。

DMA(Direct Memory Access,直接存储器存取)允许外设绕过CPU,直接与内存进行数据交换,传输过程不需要CPU参与,从而解放CPU执行其他任务。


2. DMA的基本原理

  • DMA控制器:一个独立的硬件模块,负责管理外设与内存之间的数据传输。
  • 工作流程
    1. CPU设置DMA控制器:告诉它数据源地址、目标地址、传输字节数、传输方向(读/写)。
    2. DMA控制器接管总线,直接在外设和内存之间传输数据。
    3. 传输完成后,DMA控制器向CPU发送中断,通知传输结束。

在DMA传输期间,CPU可以继续执行其他程序(除非总线被DMA占用,CPU需等待,但时间很短)。


3. DMA工作流程详解

3.1 初始化阶段(CPU参与)

  • CPU向DMA控制器写入以下参数:
    • 内存起始地址(缓冲区地址)
    • 外设地址(如设备的数据寄存器端口)
    • 传输字节数
    • 传输方向(内存→外设 或 外设→内存)

3.2 传输阶段(DMA独立完成)

  • DMA控制器向CPU申请总线控制权(通过总线请求信号)。
  • CPU释放总线控制权,DMA控制器接管总线。
  • DMA控制器在总线上传送数据:从外设读取数据写入内存,或从内存读取数据发送给外设。
  • 每传输一个字节,内存地址加1,字节计数器减1,直到计数器为0。

3.3 结束阶段

  • DMA控制器释放总线控制权,交还给CPU。
  • DMA控制器向CPU发送中断请求,通知传输完成。
  • CPU响应中断,进行后续处理(如通知程序数据已就绪)。

4. DMA传输方式(CPU与DMA的关系)

方式描述特点
停止CPU访问DMA时CPU完全停止访问内存简单,但CPU效率低
周期窃取DMA在每个时钟周期末尾占用一个内存周期,CPU暂停一个周期常用,CPU延迟小
交替访存内存工作周期分为两部分,CPU和DMA交替使用硬件复杂,效率高

软考通常默认DMA采用周期窃取方式。


5. DMA vs 中断方式

对比项中断方式DMA方式
数据传输单位一个字(或一个字节)一个数据块
数据传送路径外设 → CPU → 内存外设 ↔ 内存(直接)
CPU参与度每个数据需CPU执行传输指令初始化后CPU不参与
中断次数每次传输一个字都中断整个块传输完才中断一次
适用场景少量、随机数据(如键盘输入)大量、连续数据(如磁盘读写)
硬件复杂度较低(需要中断控制器)高(需要DMA控制器)
传输速度慢(受限于CPU指令执行)快(直接硬件传输)

6. DMA的优点与缺点

6.1 优点

  • 解放CPU:大块数据传输无需CPU参与,CPU可与DMA并行工作。
  • 传输速度快:硬件直接控制总线,不受CPU指令速度限制。
  • 减少中断次数:整个块传输只需一次中断,降低CPU中断开销。

6.2 缺点

  • 硬件复杂:需要专用的DMA控制器。
  • 总线竞争:DMA占用总线时,CPU可能短暂等待(周期窃取)。

7. 软考常见考点与例题

题目1:以下关于DMA方式的描述,正确的是( )。
A. DMA传输过程中CPU完全停止工作
B. DMA传输每个字节都需要CPU干预
C. DMA控制器可以直接访问内存
D. DMA传输完成后不会产生中断

答案:C(A错,DMA采用周期窃取,CPU仍可部分工作;B错,DMA独立传输;D错,传输完成会产生中断)


题目2:与程序中断方式相比,DMA方式的主要优点是( )。
A. 硬件简单
B. 适用于单个字符的输入输出
C. 传输大块数据时CPU负担轻
D. 响应速度快

答案:C


题目3(计算):某计算机采用DMA方式从磁盘读入一个4KB的数据块到内存。磁盘每传输一个字节需0.5μs,DMA初始化需2μs,中断处理需3μs。若没有DMA,CPU用中断方式每字节需5μs处理时间。问DMA方式节省了多少CPU时间?

  • 数据块大小:4KB = 4096字节。
  • 中断方式CPU总时间 = 4096 × 5 = 20480 μs。
  • DMA方式CPU时间 = 初始化2μs + 中断处理3μs = 5μs(传输过程CPU不参与)。
  • 节省时间 = 20480 - 5 = 20475 μs。

答案:约20475 μs


题目4(概念判断):DMA控制器在传输数据时,必须先向CPU申请总线控制权。( )
答案:正确(DMA需获得总线控制权才能直接访存)


8. 记忆口诀

DMA直接访内存,CPU初始化后腾。
块传完成发中断,周期窃取效率升。
适合大量连续数,硬件复杂速度快。


9. 给备考同学的一句话

DMA是I/O控制方式中效率最高的一种,软考主要考查:

  • 与中断方式的区别(传输单位、CPU参与度、中断次数)
  • 工作流程:初始化 → 请求总线 → 传输 → 中断
  • 适用场景:大量、连续数据传输(磁盘、网卡、显卡)

记住DMA的特点:直接、块传、少中断,选择题中看到“大块数据”、“磁盘”、“无需CPU干预”等关键词,一般选DMA。


🔔本专栏日更2篇,点击头像 → 专栏《软考中级高频考点》订阅

#软考中级 #软件设计师 #DMA #直接存储器存取 #I/O控制方式 #计算机系统知识

http://www.jsqmd.com/news/964847/

相关文章:

  • 工业现场稳定性工程:能量秩序的守护之道(目录)
  • CSDN引流数据拆解实战:如何用UTM+GA4+自建归因模型100%区分站内/站外来源?
  • 2026年6月新中式家具品牌推荐:五大榜专业评测原创设计价格注意事项夜读防疲劳 - 品牌推荐
  • 测评|杭州企业培训公司做GEO应该怎么选服务商?靠谱GEO服务商推荐 - 新闻快传
  • 3步掌握LeagueAkari:英雄联盟玩家的智能自动化工具箱完整指南
  • 快速原型设计:借助快马平台十分钟搭建stm32f103c8t6核心引脚测试工程
  • 安卓虚拟摄像头完全指南:5分钟掌握Xposed模块的终极配置技巧
  • 终极免费吉他谱编辑器TuxGuitar完整指南:从零开始制作专业乐谱
  • CSDN AI卡片效果归因闭环(从曝光→点击→转化):手把手调出原始Click Event日志的3种权威方式
  • 超深度测评!上海靠谱黄金回收门店单出炉 - 新闻快传
  • 杭州企业咨询公司做GEO应该怎么选服务商?靠谱GEO服务商推荐 - 新闻快传
  • 威鸿信科技品牌靠谱吗? - mypinpai
  • 2026年 胶合栈板源头厂家推荐:高强度出口级托盘/免熏蒸栈板/防潮承重物流托盘精选 - 品牌企业推荐师(官方)
  • 2026年6月留香沐浴露品牌推荐:十大排名运动持香评测专业价格 - 品牌推荐
  • 超深度测评!天津靠谱黄金回收门店单出炉 - 新闻快传
  • 分布式强一致性与高可用权衡:CAP 理论下 Raft/Consul 共识妥协与 AP 最终一致性底座设计
  • JAX vmap函数使用报错怎么办?教你一招避坑
  • 2026年 硅岩净化板厂家推荐:洁净车间/无菌厂房/电子医药用净化板实力品牌最新精选! - 品牌企业推荐师(官方)
  • 【华为OD机试真题 新系统】1015、项目模块依赖构建顺序规划 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)
  • 如何快速掌握QKeyMapper:Windows全能按键映射工具完整教程
  • 编程教育的新篇章:AI工具如何改变教学方式
  • 2026年 磁翻板液位计厂家推荐:高精度防腐防爆,化工/储罐/锅炉液位监测源头品牌精选! - 品牌企业推荐师(官方)
  • 纯发酵糯米基底果酒技术解析与优质生产品牌盘点:低度酒贴牌、内江果酒、发酵果酒供应商、发酵酒企业、四川果酒、成都果酒厂家选择指南 - 优质品牌商家
  • 2026年6月广东柴油发电机厂家推荐:十大品牌评测工厂选型专业价格 - 品牌推荐
  • 研发效能革命:利用大语言模型(LLM)进行代码自动化静态审查与 AST 抽象语法树质量门禁实战
  • MonkeyCode深度评测:这款 AI 编程助手值得入手吗
  • yt-dlp-gui终极指南:5分钟掌握Windows视频下载神器
  • 三步实现网页小说转电子书:WebToEpub离线阅读终极指南
  • 2026.6.4
  • 国内PET聚酯带生产厂家实力排行及联系方式参考:铝箔复合材料、风管PVC膜、单面铝箔、双面铝箔、抗老化铝塑复合膜选择指南 - 优质品牌商家