【DMA】认识 DMA 及其工作流程(与传统CPU存取方式的区别)

本文介绍了传统CPU存取数据的方式及局限,引出DMA。阐述了DMA的概念,即直接存储器访问,可实现内存和外设间数据传输,减轻CPU负担。还介绍了其工作模式、数据传输方式、寻址模式,以及DMA数据传输的准备、请求、传送、善后四个阶段。

DMA(Direct Memory Access),字面意思“直接访问内存”,无需 CPU 干预直接读写内存。传统CPU读写数据时,需要先将要使用的数据保存到 RAM,等要用时再从RAM 加载。


目录

一、传统CPU存取数据

二、认识DMA

1、什么是DMA

2、DMA 的工作模式、数据传输方式、寻址模式

3、为什么要使用DMA

三、DMA 数据传输

1、准备阶段

2、传输请求

3、数据传送

4、善后处理


一、传统CPU存取数据

CPU 不直接存取外设的原因:

  • CPU 的工作速度和外设的工作速度差距太大
  • 外设格式种类繁多,无法直接存取,需要经过转换

基于上述原因,CPU 不能直接从外设获取或者向外设写入内容。传统CPU 获取数据的步骤如下:

1、CPU 将外设数据加载到内存(和CPU的处理速度最接近)

2、CPU 检查 cache 是否有自己需要的数据(是否命中)

3、如果命中,直接返回数据;如未命中,继续从内存获取(这里暂时不考虑MMU)

4、返回数据

二、认识DMA

由上面CPU 读取数据来看,无论是将外设数据搬移到内存,还是从内存读取数据,都需要CPU 的参与。为了让 CPU 能够专注于处理手中事务,DMA 将负责数据的搬移工作。

1、什么是DMA

DMA(Direct Memory Access)即直接存储器访问,借助内部的控制器来实现内存和外设之间的数据传输。有了DMA,CPU 可以专注于内存数据的存取;数据的搬运过程完全可以交由DMA硬件完成。有了DMA以后,不代表完全不需要CPU了,只是不会像中断那样频繁向CPU发送请求。

  • 开始传输时刻:DMA向CPU申请至少一个总线周期的占用时间来做数据传输工作
  • 结束传输时刻:DMA向CPU发送中断请求,请求CPU处理这些数据

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值