DMA方式的知识点笔记

                                                                            苏泽 

“弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家


目录

1. DMA基本概念

2. DMA传送过程

易错点

DMA控制器操作流程

3. DMA传送方式

这是单总线的结果 (CPU说了算 所以不会产生于CPU的冲突)

这是三总线的结构 (也就是主存下面另外接了一条线到DMA所以 有可能于CPU发生冲突)

5. DMA的组成

6. DMA与其他方式的比较

7. DMA的优缺点

8. DMA的应用场景

9. DMA的中断处理

10. DMA的实现方式


 

1. DMA基本概念

  • DMA(直接内存访问)是一种硬件实现的数据传输方式,允许外围设备直接与主存交换数据,而不需要CPU的干预。
  • DMA方式的基本单位是数据块,数据在I/O设备和内存之间直接传输。

2. DMA传送过程

  • 预处理:CPU完成一些必要的工作,如测试状态、启动设备等,然后继续执行其他任务。
  • 数据传送:DMA设备准备好后,会主动向DMA控制器(DMAC)发出DMA请求,DMAC向CPU发出总线请求。
  • 数据传送后处理:数据传送满一个块后,DMAC向CPU发出中断请求,CPU执行中断程序,进行数据校验、测试传送过程等。

易错点

其实题目问你 CPU 用于 DMA 处理的时间占比,本质上就是在问你 DMA 预处理 +后处理
时间占比
因为其他的部分根本不占时间!
如下

DMA控制器操作流程

  1. CPU响应DMA请求(传送前

    • 当DMA控制器发出总线请求后,CPU响应此请求,并发出总线响应信号。
  2. 接管总线控制权(传送前

    • CPU接管系统总线控制权,准备进入DMA操作周期。
  3. DMA操作周期

    • CPU进入DMA操作周期,此时DMA控制器可以独立进行数据传输。
  4. 数据传送方向与控制信号

    • DMA控制器规定数据在主存和外设之间的传送方向。
    • 发出读写等控制信号,以执行数据传送操作。
  5. 数据传送完成

    • 数据传送完成后,DMA控制器将向CPU报告操作的结束。
  6. 操作结束报告 (传送后

    • DMA操作结束后,DMA控制器会通知CPU,以便CPU可以继续执行其他任务。

3. DMA传送方式

这是单总线的结果 (CPU说了算 所以不会产生于CPU的冲突)

这是三总线的结构 (也就是主存下面另外接了一条线到DMA所以 有可能于CPU发生冲突)

  1. 停止CPU访问主存

    • 目的:在DMA传输期间,完全控制主存,避免与CPU的访问冲突。
    • 操作:在DMA传输期间,暂停CPU对主存的访问。
    • 优点
      • 控制简单,易于实现。
      • DMA可以完全控制主存,提高数据传输效率。
    • 缺点
      • CPU在传输期间不执行程序,导致CPU资源未被充分利用。
  2. DMA与CPU交替访存

    • 目的:允许CPU和DMA控制器交替访问主存,提高资源利用率。
    • 操作
      • 将CPU周期分为两个部分,C1周期专供CPU访存,C2周期专供DMA访存。
      • DMA控制器和CPU交替进行访存操作,无需申请总线使用权。
    • 优点
      • 有效利用CPU和DMA资源,提高系统效率。
    • 缺点
      • 硬件逻辑更为复杂,需要精确控制访问时间。
  3. 周期挪用(周期窃取)

    • 目的:在CPU未使用总线时,允许DMA控制器访问主存。
    • 操作
      • DMA控制器检测CPU的访存周期,当CPU不访存时,DMA控制器利用这个周期进行数据传输。
      • 如果CPU和DMA同时请求访存,根据优先级决定谁先访问主存。
    • 优点
      • 最大限度减少对CPU性能的影响,提高主存的利用率。
    • 缺点
      • 实现较为复杂,需要高级的硬件支持来检测和响应访问请求。
  • DMA请求:表示要向主存传送一个字的数据。
  • DMA中断请求:表示一整块的数据已经传送完成。

5. DMA的组成

  • 主存地址计数器:存放要交换的主存地址。
  • 传送长度计数器:记录传送数据的长度。
  • 数据缓存寄存器:暂存每次传送的数据。
  • DMA请求触发器:I/O设备准备好数据后使触发器置位。
  • 控制/状态逻辑:完成中断机构,数据块传送完毕后触发中断。

6. DMA与其他方式的比较

  • 中断驱动方式:I/O设备主动打断CPU运行请求服务,但每个数据传输需经过CPU。
  • 通道控制方式:专门负责输入/输出的处理机,进一步减少CPU干预,实现并行操作。

7. DMA的优缺点

  • 优点:减少了CPU的干预,提高了数据传输效率。
  • 缺点:在数据块传送的开始和结束时需要CPU干预。

8. DMA的应用场景

  • DMA适用于大量数据的快速传输,如磁盘读写操作。

9. DMA的中断处理

  • 中断服务程序中,CPU需要处理数据校验、传送过程测试等任务,并决定是否继续使用DMA传送。

10. DMA的实现方式

  • DMA的实现依赖于硬件电路,不需要程序干预,是一种纯硬件实现的数据传输方式。


另外,利用了工作之余的一点点时间,整理了一套考研408的知识图谱,

我根据这一套知识图谱打造了这样一个408知识图谱问答系统

里面的每一个回答都是根据考研408的考点回复的

目前暂时只接入了微信,如果大家对这个问答系统感兴趣的话可以在我的主页里找到我的微信号

找我拉进测试群免费体验哦


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/43760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新浪API系列:支付API打造无缝支付体验,畅享便利生活(3)

在当今数字化时代,支付功能已经成为各类应用和平台的必备要素之一。作为开发者,要构建出安全、便捷的支付解决方案,新浪支付API是你不可或缺的利器。新浪支付API提供了全面而强大的接口和功能,帮助开发者轻松实现在线支付的集成和…

软件开发面试题(C#语言,.NET框架)

1. 解释什么是委托(Delegate),并举例说明它在C#中的用法。 委托是一种引用类型,它可以用于封装一个或多个方法。委托对象可以像方法一样调用,甚至可以用于创建事件处理程序。委托是C#中实现事件和回调函数的重要机制。…

【PyTorch][chapter 26][李宏毅深度学习][attention-1]

前言: attention 在自然语言处理,声音处理里面是一个很重要的技巧. attention 要解决的是输入的向量长度不定. 根据输入输出的不同,分为三种场景: 输入N个向量,输出N个向量,这是本章的重点 输入N个向量,输出向量不定 输…

施罗德数列SQL实现

在组合数学中,施罗德数用来描述从(0,0)到(n,n)的格路中,只能使用(1,0)、(0,1)、(1,1)三种移动方式,始终位于对角线下方且不越过对角线的路径数 DECLARE n INT 10 DECLARE i INT DECLARE rst INT DECLARE old INT1CREATE TABLE #rst (i INT ,rst int )INSERT INTO #rst values(…

3-7 使用深度学习解决温度即示数问题

3-7 使用深度学习解决温度即示数问题 直接上代码 %matplotlib inline import matplotlib.pyplot as plt import numpy as np import torch torch.set_printoptions(edgeitems2, linewidth75)设置Jupyter Notebook在单元格中内嵌显示图像,导入所需库并设置PyTorch的…

阿里发布大模型发布图结构长文本处理智能体,超越GPT-4-128k

随着大语言模型的发展,处理长文本的能力成为了一个重要挑战。虽然有许多方法试图解决这个问题,但都存在不同程度的局限性。最近,阿里巴巴的研究团队提出了一个名为GraphReader的新方法,通过将长文本组织成图结构,并利用…

2,区块链、数字货币及其应用场景(react+区块链实战)

2,区块链、数字货币及其应用场景(react区块链实战) 一、什么是区块链?1 ibloackchain(1)安装ibloackchain(2)Blance查询余额(3)Mine挖矿(4&#x…

JavaScript中的拷贝技术探秘:浅拷贝与深拷贝的奥秘

最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/ 前言 JavaScript中的浅拷贝和深拷贝是非常重要的概念,它们在处理对象和数组时具有不同的作用。在编程中,经常需要复制数据以便进行各种操作,但必须注…

小波与傅里叶变换的对比(Python)

直接上代码,理论可以去知乎看。 #Import necessary libraries %matplotlib inline import numpy as np import matplotlib.pyplot as plt import seaborn as snsimport pywt from scipy.ndimage import gaussian_filter1d from scipy.signal import chirp import m…

基于 sftp 的 NAS (局域网文件存储服务器)

局域网 NAS (文件存储服务器) 的基本功能有: 能够存储文件, 同时能够通过多个设备访问 (上传/下载) 文件. 这些功能通过 sftp 可以实现. sftp 是基于 SSH 的文件传输协议, SSH 全程加密传输, 使用 公钥 认证 (不使用密码/口令), 能够提供很高的安全性. 上文说到, 在 LVM 和 bt…

谷粒商城-个人笔记(集群部署篇三)

前言 ​学习视频:​Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强​学习文档: 谷粒商城-个人笔记(基础篇一)谷粒商城-个人笔记(基础篇二)谷粒商城-个人笔记(基础篇三)谷粒商城-个人笔记(高级篇一)谷粒商城-个…

古建筑倾斜在线监测系统:科技守护历史的创新实践

​ ​​在文化遗产保护的广阔领域中,古建筑的健康监测占据着举足轻重的地位。然而,传统的监测方法往往受限于布线复杂、安装难度大以及对古建筑本体可能造成的伤害等问题。近年来,一种新型的古建筑倾斜在线监测系统应运而生,它…

Halcon 模糊圆边的找圆案例

Halcon 模糊圆边的找圆案例 基本思路 1.将图像转成灰度图像 2.再观察要找到的区域的灰度值变化,找到前景与背景的具体数值。 3.根据找到的前景与背景的具体数值,增强图像对比度。(使图像变成黑白图片) 4.使用灰度直图工具进行阈值…

用Vue3和Plotly.js绘制交互式3D散点图

本文由ScriptEcho平台提供技术支持 项目地址:传送门 使用 Plotly.js 创建 2D 密度图 应用场景介绍 密度图是一种可视化数据分布的图表,它显示了数据点的密度在不同区域的变化情况。在许多科学和工程领域中,密度图被广泛用于探索和分析数据…

5G(NR) NTN 卫星组网架构

5G(NR) NTN 卫星组网架构 参考 3GPP TR 38.821 5G NTN 技术适用于高轨、低轨等多种星座部署场景,是实现星地网络融合发展的可行技术路线。5G NTN 网络分为用户段、空间段和地面段三部分。其中用户段由各种用户终端组成,包括手持、便携站、嵌入式终端、车…

git撤销/返回到某次提交(idea工具 + gitbush)

不多说废话,直接展示使用。 方法一:使用idea工具进行返回 准备某次过度提交 使用idea打开git log 找到要回去的版本 点击右键选到reset 模式选hard,强制回滚 这个时候本地代码已经回归你指定的版本了。 这个时候再进行强制推送&#xff0c…

Drools开源业务规则引擎(三)- 事件模型(Event Model)

文章目录 Drools开源业务规则引擎(三)- 事件模型(Event Model)1.org.kie.api.event2.RuleRuntimeEventManager3.RuleRuntimeEventListener接口说明示例规则文件规则执行日志输出 4.AgentaEventListener接口说明示例监听器实现类My…

09 docker 安装tomcat 详解

目录 一、安装tomcat 1. tomcat镜像的获取 2. docker创建容器实列 3. 访问测试 404错误 4. 解决方案 5. 使用免修改版容器镜像 5.1. 运行实列的创建 5.2. 出现问题及解决: 6. 验证 OK 一、安装tomcat 1. tomcat镜像的获取 docker search tomcat #docker …

SCI二区TOP|蜘蛛黄蜂优化算法(SWO)原理及实现【免费获取Matlab代码】

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2023年,M Abdel-Basset受到蜘蛛黄蜂优化社会行为启发,提出了蜘蛛黄蜂优化算法(Spider Wasp Optimizer, SWO)。 2.算法原理 2.1算法思想 S…

视频监控技术在食品安全监管中的关键应用

视频监控技术在食品安全监管中的关键应用 1、视频监控技术在食品安全监管中的作用 在食品安全监管中,视频监控技术发挥着不可替代的作用。通过安装视频监控系统,可以实现对食品生产、运输、储存等各个环节的实时监控和录像存储。这不仅有助于监管部门及…