当前位置: 首页 > 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.rkmt.cn/news/1476577.html

相关文章:

  • 测评|杭州企业培训公司做GEO应该怎么选服务商?靠谱GEO服务商推荐 - 新闻快传
  • 2026年6月留香沐浴露品牌推荐:十大排名运动持香评测专业价格 - 品牌推荐
  • 2026年 硅岩净化板厂家推荐:洁净车间/无菌厂房/电子医药用净化板实力品牌最新精选! - 品牌企业推荐师(官方)
  • 【华为OD机试真题 新系统】1015、项目模块依赖构建顺序规划 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)
  • 编程教育的新篇章:AI工具如何改变教学方式
  • 网络高并发底座:基于 Netty/Java 的零拷贝(Zero-Copy)网络传输与自定义协议粘包拆包器深度拆解
  • 纯发酵糯米基底果酒技术解析与优质生产品牌盘点:低度酒贴牌、内江果酒、发酵果酒供应商、发酵酒企业、四川果酒、成都果酒厂家选择指南 - 优质品牌商家
  • 研发效能革命:利用大语言模型(LLM)进行代码自动化静态审查与 AST 抽象语法树质量门禁实战
  • 2026年 磁翻板液位计厂家推荐:高精度防腐防爆,化工/储罐/锅炉液位监测源头品牌精选! - 品牌企业推荐师(官方)
  • yt-dlp-gui终极指南:5分钟掌握Windows视频下载神器
  • 架构师的商业博弈:初创研发团队在底层极致性能与业务敏捷性之间的技术选型决策模型
  • ClickHouse 极致吞吐调优:基于稀疏索引(Sparse Index)原理与数据稠密压缩算法的检索加速实战
  • 测评|杭州教育连锁店做GEO应该怎么选服务商?靠谱GEO服务商推荐 - 新闻快传
  • 2026年6月北京国际学校推荐:TOP5排名专业评测升学成果性价比高适用场景 - 品牌推荐
  • 2026年Q2四川靠谱移动厕所厂家综合实力排行:海运箱改造/环保公厕生产厂家/生态移动厕所/移动厕所价格/移动厕所多少钱/选择指南 - 优质品牌商家
  • 2026年异形铝天花厂家推荐:造型铝天花、定制铝天花、异形铝扣板、艺术铝天花品牌精选 - 品牌企业推荐师(官方)
  • MonkeyCode配额管理:如何最大化免费额度
  • 速腾聚创16线雷达+CH110 IMU:手把手教你搞定LIO-SAM数据适配与标定(避坑指南)
  • 2026年6月河南考研机构推荐:十大排名评测专业选择指南 - 品牌推荐
  • 2026年6月靠谱的北京附近发电机出租公司推荐榜,静音发电机/柴油发电机/发电车/大型发电机组公司选择指南 - 海棠依旧大
  • 2026年6月广州婚恋机构公司推荐:十大榜专业评测本地化匹配性价比高价格 - 品牌推荐
  • 2026年重庆黄金典当公司TOP5客观盘点与资质解析:重庆首饰回收/重庆首饰珠宝回收/重庆黄金典当/重庆黄金回收/选择指南 - 优质品牌商家
  • 如何快速反编译微信小程序:完整工具使用指南
  • 2026年装修地面保护膜推荐榜:加厚防穿刺/无异味瓷砖木地板保护膜/工程家居定制厂家精选 - 企业推荐官【官方】
  • 突破GitHub网络瓶颈:三分钟实现10倍加速的专业解决方案
  • 2026.6.8
  • 初中教资科三资料|学科知识与教学能力备考资料合集
  • Windows屏幕取色终极指南:用ColorWanted提升你的设计效率
  • c语言文件读写入门难?快马生成带详解代码,新手秒懂fopen与fclose
  • 2026养生经络拍/腰椎舒缓器/脚底按摩器/械字号拔罐器/艾灸仪/健康养生按摩器实力工厂推荐榜,祥勤按摩器材实力领先 - 变量人生001