输入输出控制方式:DMA(直接存储器存取)
适合读者软考中级备考同学阅读时间3.5分钟内容DMA工作原理、工作流程、与中断对比、优缺点、例题1. 为什么需要DMA程序查询和中断方式虽然解决了CPU与外设的交互问题但数据传输过程仍然由CPU执行指令完成从设备读数据再写到内存。当需要传输大量数据如磁盘块、视频流时CPU会被频繁中断或忙等效率低下。DMADirect Memory Access直接存储器存取允许外设绕过CPU直接与内存进行数据交换传输过程不需要CPU参与从而解放CPU执行其他任务。2. DMA的基本原理DMA控制器一个独立的硬件模块负责管理外设与内存之间的数据传输。工作流程CPU设置DMA控制器告诉它数据源地址、目标地址、传输字节数、传输方向读/写。DMA控制器接管总线直接在外设和内存之间传输数据。传输完成后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传输完成后不会产生中断答案CA错DMA采用周期窃取CPU仍可部分工作B错DMA独立传输D错传输完成会产生中断题目2与程序中断方式相比DMA方式的主要优点是 。A. 硬件简单B. 适用于单个字符的输入输出C. 传输大块数据时CPU负担轻D. 响应速度快答案C题目3计算某计算机采用DMA方式从磁盘读入一个4KB的数据块到内存。磁盘每传输一个字节需0.5μsDMA初始化需2μs中断处理需3μs。若没有DMACPU用中断方式每字节需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控制方式 #计算机系统知识