什么是?

DMA 首先它是一种数据的传输方式;其次传输包括从设备到内存、内存到存储、内存到内存等;最后,它是在不经过cpu的情况下实现数据传输。、

DAM主要有共享缓存DMA,Scatter/Gather DMA,前者使用主内存的一块共享内存区域,后者则是用多个不同地址的内存块实现。

DMA 控制器,一种特殊的硬件,负责执行DMA操作,包括数据传输及裁决访问系统总线。DMA控制器连接着数据传输的两端,负责监控,跟踪传输的字节数,传输设置(I/O类型、内存类型、CPU执行状态和中断)

外部设备的数据传输触发DMA总线数据传输。例如键盘和鼠标输入。DMA控制器向cpu发送一个要求使用系统总线的DMA的请求信号,CPU在完成当前操作之后通过DMA确认信号让渡总线的控制权。如此,DMA控制器就可以像cpu(此时闲置)一样读写数据和控制信号。当数据传输完成,DMA控制器发送取消DMA传输的信号,cpu移除DMA确认信号并重新获取总线的控制权。

DMA集成在计算机总线架构上,用于加速计算机操作及支持多任务环境。通常来说,CPU会被读写操作完全占据,DMA使得读写数据只发生在内置存储,外部存储及外围设备不需要cpu参与,释放了cpu能力。DMA使得计算机内部操作流化,因为数据的内存读写计算机内部最常见的操作,因此释放与此相关的CPU处理,能够在很大程度上提升计算机的性能。

DMA主要应用在对实时操作完成要求比较高的实时计算任务应用上。流式处理是DM的另一重要应用,即数据的传输和处理同时进行。应用DMA的硬件主要包括:软盘,磁盘驱动控制器,显卡,网卡,声卡和GPU。

实现?

Synchronous DMA:一次在系统内存和外部设备之间传输一个字节或者一个单词。每次传输完成,DMA要求IO端口在准备好下一次事务的时候进行通知,在这种设定下,这DMA和cpu共享总线时钟,DMA在任何情况下都能获取系统总线的控制权。

Burst Mode DMA:假定传输的两端都能够即时的收发数据。cpu设置控制器,当I/O信号触发,全部的数据就会被拷贝到目的地。DMA在数据传输时对系统总线具有唯一的控制权。Burst Mode 模式下DMA数据传输相对于同步DMA要快很多。

Flyby DMA(不是所有的controller都支持): 使用源和目的地地址,构造一个同时读写的环。因为读环和写环被压缩到了同一个环,所以数据传输非常快。Flyby DMA也支持burst和同步类型的事务。

DMA-Direct Memory Access的更多相关文章

  1. (转)DMA(Direct Memory Access)

    DMA(Direct Memory Access) DMA(Direct Memory Access)即直接存储器存取,是一种快速传送数据的机制. 工作原理 DMA是指外部设备不通过CPU而直接与系统 ...

  2. DMA(Direct Memory Access)简介

    什么是DMA(Direct Memory Access) DMA绕过CPU,在内存和外设之间开辟了一条 "隧道" ,直接控制内存与外设之间的操作,并完全由硬件控制. 这样数据传送不 ...

  3. DMA(direct memory access)直接内存访问

    DMA(Direct Memory Access),这里的 memory,指的是计算机的内存,自然与外存(storage)相对.这里的关键词在 Direct (直接),与传统的相对低效的,需要通过 C ...

  4. [中英对照]Introduction to Remote Direct Memory Access (RDMA) | RDMA概述

    前言: 什么是RDMA? 简单来说,RDMA就是指不通过操作系统(OS)内核以及TCP/IP协议栈在网络上传输数据,因此延迟(latency)非常低,CPU消耗非常少. 下面给出一篇简单介绍RDMA的 ...

  5. 直接存储器存取(Direct Memory Access,DMA)详细讲解

    一.理论理解部分. 1.直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输. 2.无须CPU干预,数据可以通过DMA快速移动,这就节省了CPU的资源来做其他操作. ...

  6. DMA(Direct Memory Access直接存储器访问)总结

    转载于http://blog.csdn.net/peasant_lee/article/details/5594753 DMA一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,不需要CP ...

  7. Remote Direct Memory Access (RDMA)

    RDMA有三类实现方式,包括RoCE,iWARP和InfiniBand.RDMA的基础是Virtual Interface Architechure (VIA). 参考文档: https://en.w ...

  8. NONUNIFORM MEMORY ACCESS

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION In terms of commercia ...

  9. ARM: STM32F7: hardfault caused by unaligned memory access

    ARM: STM32F7: hardfault caused by unaligned memory access ARM: STM32F7: 由未对齐的内存访问引起的hardfault异常 Info ...

  10. Catch a Memory Access Violation in C++

    From:  https://stackoverflow.com/questions/16612444/catch-a-memory-access-violation-in-c In C++, is ...

随机推荐

  1. python subprocess 和 multiprocess选择以及我遇到的坑

    The subprocess option: subprocess is 用来执行其他的可执行程序的,即执行外部命令. 他是os.fork() 和 os.execve() 的封装. 他启动的进程不会把 ...

  2. BZOJ 1305 dance跳舞 二分+最大流

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1305 题目大意: 一次舞会有n个男孩和n个女孩.每首曲子开始时,所有男孩和女孩恰好配成 ...

  3. Spring-IOC bean 创建过程中的 ObjectFactory

    AbstractBeanFactory中doGetBean方法里有一段拿到RootBeanDefinition后,实例化该bean的方法 // Create bean instance. if (mb ...

  4. 【CF809E】Surprise me!

    题目 这是一道神仙题 看到这样一个鬼畜的柿子 \[\sum_{i=1}^n\sum_{j=1}^n\varphi(a_i\times a_j)\times dis(i,j)\] 又是树上距离又是\(\ ...

  5. regex_match

    原型:bool regex_match(InputSequence[,MatchResults] , Regex[ , Flags]); 当模式匹配整个输入序列成功时,返回的是true,否则返回fal ...

  6. P2904 [USACO08MAR]跨河River Crossing

    题目描述 Farmer John is herding his N cows (1 <= N <= 2,500) across the expanses of his farm when ...

  7. P1586 四方定理

    题目描述 四方定理是众所周知的:任意一个正整数nn ,可以分解为不超过四个整数的平方和.例如:25=1^{2}+2^{2}+2^{2}+4^{2}25=12+22+22+42 ,当然还有其他的分解方案 ...

  8. HDU 1698 Just a Hook(线段树模板之区间替换更新,区间求和查询)

    Just a Hook Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  9. listener.ora 与 tnsnames.ora

    listener.ora 是oracle服务器端的网络配置文件,oracle 根据它来配置监听服务. tnsnames.ora 类似于unix 的hosts文件,提供的tnsname到主机名或者ip的 ...

  10. Linux下onvif客户端关于ipc摄像头的搜索

    设备搜索:要访问一个IPC摄像头,或者说要调用IPC摄像头提供的WEB服务接口,就要先知道其IP地址,这就是设备发现的过程,或者叫设备搜索的过程.IPC摄像头用的是239.255.255.250(端口 ...