DMA方式

原理:数据传送不经过CPU,由DMA控制器实现内存和外设、外设和外设之间的直接快速传递

系统构成

  • DMA作为主设备之一
  • DMA与IO接口集成
  • DMA提供专门IO总线

DMA控制器(DMAC)

DMA的两种工作状态:被动态(未获得总线控制权,受CPU控制)、主动态(获得总线控制权)

工作过程:CPU分配总线使用权之后,在硬件DMA控制器(DMAC)的控制下完成存储器与高速外设之间的大量数据的传送

硬件要求:需要相应的DMA控制器及数据通路,电路结构复杂,硬件开销大

DMAC对数据传送的控制是建立在掌握系统总线的使用权基础上的

  • 正常工作下,系统总线的使用权归CPU所有
  • DMAC要控制DMA传送,必须要从CPU得到总线使用权

DMAC传送的过程

  • 总线申请阶段
  • 总线响应阶段
  • 数据传送阶段
  • 传送结束阶段

DMA操作类型

  • 数据传送:源地址数据传到目的地址

  • 数据校验:不传输,只校验某数据块内部的每个字节

  • 数据检索:不传输,只在制定内存区域内查找某个关键字或某几个数据位是否存在

DMA操作方式

  • 单字节传输模式:每次DMA操作传送一个字节

  • 块传输模式:连续传送多个字节,每传输一个字节,当前字节计数器减1,当前地址寄存器加1或减1,直到所要求的字节数传输完(当前字节计数器减至0),然后释放总线

  • 请求传输模式:DMA控制器询问外设,当外设请求信号无效时,暂停传输(不释放总线);再次有效再继续传输

  • 级联传输模式:多个DMA级联,分布式

DMA传输模式

  • 停止CPU访问内存(连续方式):传输速率高的设备传输时有优势

  • 周期挪用(单字节方式) :DMA挪用一个或几个内存周期。若此时CPU不需要访存则不冲突,若冲突则DMA优先

  • DMA与CPU交替访存(透明DMA方式):直接交替访存,不需要浪费时间

DMA方式和中断控制方式的区别:

区别 DMA方式 中断控制方式
数据传送实现方式 硬件实现 程序传送
CPU响应请求时间 一个总线周期结束 一个指令周期结束
请求的目的 总线的使用权 CPU的服务
是否需要保护现场 不需要(CPU不参与数据传送) 需要
对于不需要访存的现行程序的执行 无影响 延迟现行程序的执行
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇文章是对DMA基本概念、工作原理、常见问题做一个总结。 DMA概述 DMA的英文拼写是“Direct Memo...
    JamFF阅读 17,501评论 0 2
  • 姓名:姜思维 学号:19020100333 学院:电子工程学院 转自:https://blog.csd...
    了了有点甜阅读 1,092评论 0 0
  • DMA是个啥?官方解释是DMA是一种无需CPU参与就可以让外设(如硬盘)与系统内存之间进行双向数据传输的硬件机制,...
    半笔闪阅读 1,461评论 0 0
  • I/O控制方式主要有程序查询方式、中断方式、DMA方式和通信方式。 1、程序查询方式 程序查询方式也称为程序轮询...
    Zh1为明天1阅读 1,800评论 0 0
  • 计算机组成原理 001.CPU 计算机中的CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控...
    AIGame孑小白阅读 3,788评论 0 3