首页 > 其他分享 >8.4-DMA方式

8.4-DMA方式

时间:2023-02-26 21:55:21浏览次数:42  
标签:DMA 控制器 8.4 方式 总线 IO CPU 设备

DMA方式的基本原理

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

用于需要高速大批量数据传送系统中

 

DMA传输计算机系统构成

  • DMA控制器作为主设备之一

总线上进行数据传输时候,能够获得总线控制权的称为主设备,在输入输出中前面的无条件方式,以及程序查询方式,或者中断方式中主设备只有一个CPU,也就是都是由CPU获得总线控制权,在DMA下面我们第一种做法是可以在里面增加DMA控制器,DMA控制器可以获得总线的控制权成为主设备,由于总线中至少有两台主设备,因此需要一个总线的总裁,在进行DMA传输时候,DMA控制器能够获得总线控制权,从而掌握总线完成输入输出,也就是完成数据在存储器和IO之间的数据搬运工作,即DMA成为主设备之一

  • DMA控制器与IO接口集成

DMA同IO设备做在一起,这样IO设备成为主设备,因此DMA就可以获得总线控制权,就可以和存储器进行交换

  • DMA控制器提供专门IO总线,DMA下接多个IO设备,DMA形成一个桥的形式

DMA控制器(DMAC)

DMA控制器两种工作状态

(1)      被动态(受控器):未取得总线控制权,受CPU控制因为DMA控制器它传输什么数据,从什么地方获取数据都必须要受CPU控制,这种状态下DMA控制器可以看作是一个外部设备

(2)      主动态(主控器):接管并取得总线控制权,取代CPU而成为系统的控制者,当受CPU控制是个设备是被动,当获取控制权变成主控设备

DMA传输步骤

DMA操作类型

DMA操作方式

 

第三种就是同步和异步的传输方式

DMA传输模式-停止CPU访问内存

优点:控制起来简单,适用于数据传输速率很高的设备进行组传输,内存带宽几乎被占满,CPU无法访问内存

缺点:DMA访问内存控制阶段,内存的能效没有充分发挥,相当一部分内存工作周期是空闲的。这是因为传送两个数据之间的时间间隔总是大于内存存储周期,即使告诉IO设备也是如此

请求传输模式-周期挪用

请求传输模式-DMA和CPU交替访存

 

标签:DMA,控制器,8.4,方式,总线,IO,CPU,设备
From: https://www.cnblogs.com/smilexm/p/17157872.html

相关文章

  • 7.3-总线的链接方式
    单级总线结构通过一条总线将计算机的存储器,CPU以及输入输出设备全部通过一条总线链接起来,也称为系统总线如何在一条总线上区分不同的设备,简单的方式可以通过地址来区分......
  • 7.4-总线仲裁和数据传输方式
    菊花链式串行总线仲裁什么是总线仲裁,是指在总线上同一时刻只能有一个主设备占用总线,当计算机系统中只有一个主设备的时候不存在仲裁问题,当多个主设备同时提出总线占用的申......
  • 5.3-操作数的寻址方式
    操作数是运算符作用于的实体,表达式中的一个组成部分,它规定了指令中进行数字运算的量。表达式是操作数与操作符的组合。操作数形式:立即操作数:指令要操作的数据以常量的......
  • 5.2-寻址方式及指令寻址
    寻址方式的概念根据冯诺依曼计算机工作原理,需要根据物理地址从内存种取指令和数据,如何获得指令和数据的物理地址?寻找指令和操作数的有效地址的方式指令的寻址方式计......
  • React组件之间的通信方式总结(下)
    一、写一个时钟用react写一个每秒都可以更新一次的时钟importReactfrom'react'importReactDOMfrom'react-dom'functiontick(){letele=<h1>{ne......
  • React组件之间的通信方式总结(上)
    先来几个术语:官方我的说法对应代码ReactelementReact元素letelement=<span>A爆了</span>Component组件classAppextendsReact.Component{}无Ap......
  • 数据驱动ddt安装3种方式_unittest_Python
    命令行安装  pipinstallddt-i 管理员运行命令提示符  pycharm设置里安装pycharmPythonPackages里安装......
  • Required request parameter ‘xxx‘ for method parameter type xxxx is not present
    我在controller层传实体参数时加了@RequestParam,结果报Requiredrequestparameter‘pointlist’formethodparametertypeListisnotpresent,是因为@RequestParam不......
  • 1-n阶乘之和(两种方式)
    #include<stdio.h>intmain(){intn=0;printf("请输入一个正整数:");scanf_s("%d",&n);intall=0;intsun=0;for(inti=1;i<n+1;i++){for(......
  • 3DMAX安装失败怎么办?安装3DMAX失败提示错误怎么解决?
    3DMAX安装失败怎么办?安装3DMAX失败提示错误怎么解决?有很多同学想把3DMAX卸载后重新安装,但是发现3DMAX安装到一半就失败了或者显示3DMAX已安装或者安装未完成,大多数情况下......