2019独角兽企业重金招聘Python工程师标准>>>

  • DMA 实际上是盗用了总线时间来传输数据,而且由于是硬件处理,所以大大加速了数据复制速度!

1. 基本概念

  • 辅存狭义上是平时讲的硬盘,准确地说,是外部存储器(需要通过 I/O 系统与之交换数据,全称为辅助存储设备)。
  • RAM 与 ROM:计算机内存储器的两种型号 
    • RAM-RamdomAccessMemory易挥发性随机存取存储器,高速存取,读写时间相等,且与地址无关,如计算机内存等。
    • ROM-Read Only Memory只读存储器。断电后信息不丢失,如计算机启动用的 BIOS 芯片。存取速度很低,(较RAM而言)且不能改写。由于不能改写信息,不能升级,现已很少使用。
    • ROM 和 RAM 是计算机内存储器的两种型号,ROM表示的是只读存储器,即:它只能读出信息,不能写入信息,计算机关闭电源后其内的信息仍旧保存,一般用它存储固定的系统软件和字库等。RAM表示的是读写存储器,可其中的任一存储单元进行读或写操作,计算机关闭电源后其内的信息将不在保存,再次开机需要重新装入,通常用来存放操作系统,各种正在运行的软件、输入和输出数据、中间结果及与外存交换信息等,我们常说的内存主要是指RAM

2. CPU 操作外设:传统方式与 DMA 方式

一直不明白DMA(直接内存存储)

  • 传统方式:CPU 操作外设时,将外设的数据读到内部寄存器中,再将数据传送至内存中,之所以还要讲数据送到内存,在于 CPU 内部寄存器数量很少,一般都是靠 RAM 来临时存储大量的代码和数据的。

    • CPU 工作的核心就是一个 PC 指针,PC 指针指向什么地址,CPU 就会把相应地址处的二进制数据送至内部译码器进行译码后运行,
    • RAM 是一个临时存放代码和数据的地方,CPU 要执行代码时,就要到内存(RAM)中去取指令。
  • DMA:在现代操作系统中,外设有数据到来时,基本上都采用中断方式通知CPU,操作系统响应中断,然后再从外设读取数据,这时,如果外设的数据比较频繁,那么是否每到一个数据都中断一次呢??这样 CPU 就非常频繁地被外调中断打断,操作系统在处理中断时要浪费一定时间,而且 CPU 读外部 IO 速度也很慢,这样的话,大量时间被用在了响应中断上,而去调度其它任务的时间减少,让人感觉系统响应速度不够,也会影响外设的数据传输速度(如果外设传输速度太快,操作系统就有可能丢失部分数据),由此引出 DMA 的机制:

    外设直接将一块数据放在了 RAM 中,然后再产生一次中断,这样操作系统直接将内存中的那块数据传给想要获取这块数据的一个任务(或者放在内存的另一空闲部分),此时,系统就少了频繁响应外设中断的开销,也少了读取外设 IO 的时间开销(读取 RAM 比读取外设 IO 要快很多),这就是 DMA 的作用所在!

转载于:https://my.oschina.net/u/3626804/blog/1837654

DMA(direct memory access)直接内存访问相关推荐

  1. DMA(direct memory access)控制方式

    1.DMA控制方式的引入        中断方式是以字节(字)为单位进行I/O的, 每完成一个字节(字) CPU要处理一次中断, 这种方法用于块设备效率极低, 为了进一步减少CPU对I/O的干预, 提 ...

  2. 直接内存访问 (Direct Memory Access, DMA)

    Table of Contents 直接内存访问 (Direct Memory Access, DMA) DMA 模型 设备 DMA 的类型 总线主控器 DMA 第三方 DMA 第一方 DMA 主机平 ...

  3. DAM(Direct Memory Access)

    cpu 和 IO 之间的协作关系 占用-->中断-->异步(IOP专门做IO操作) 以往的io操作都需要经过cpu之手,在以前,cpu要一直轮询io系统,io操作是否已经结束,在这期间,c ...

  4. RDMA,remote direct memory access

    在电脑运算领域,远程直接内存访问(英语:remote direct memory access,RDMA)是一种直接内存访问技术,它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介 ...

  5. Remote Direct Memory Access (RDMA)

    前言 本博文主要是简单介绍RDMA的概念和与它相关的技术.实现RDMA需要许多其他技术的支持,包括硬件和软件.目前RDMA有多种实现方式,比如RoCE1.INFINIBAND2,不同的实现方式所考虑的 ...

  6. Xilinx AXI Central Direct Memory Access (CDMA)手册笔记

    官方手册地址:https://china.xilinx.com/support/documentation/ip_documentation/axi_cdma/v4_1/pg034-axi-cdma. ...

  7. Tricks with Direct Memory Access in Java

    2019独角兽企业重金招聘Python工程师标准>>> Java was initially designed as a safe, managed environment. Nev ...

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

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

  9. 《Linux驱动:DMA直接内存访问》

    目录 一.前言 二.DMA传输主体 三.S3c2440上的DMA 3.1 DMA请求源 3.2 DMA状态机 3.3 DMA请求模式 3.4 DMA服务模式 3.5 DMA传输模式 3.6 DMA读写 ...

最新文章

  1. 监控摄像头服务器维护要多久,监控摄像机如何维护 这几点要牢记
  2. 下列有关mysql数据库中的null值_MySQL数据库中与 NULL值有关的问题
  3. 十六进制字符转二进制字符
  4. 在linux查看内存的大小
  5. 入网许可证_入网许可证怎么办理,申请流程
  6. mongodb mysql资源占用_如何限制mongodb启动时占用过多内存
  7. 5-Scala对象(Class)和类(Object)
  8. Steve Kemp的XSS介绍
  9. 自己配置外接屏幕和驱动,最终通过hdmi连接
  10. 大数据和人工智能体系图
  11. 三角网导线平差实例_三角网间接平差示例
  12. java digester_digester解析xml文件
  13. 抢食生鲜,美团最大对手会是拼多多
  14. Win7 启用Guest账户,设置登录界面不显示 Guest账户
  15. c++11新特性介绍
  16. diy无感无刷电机霍尔安装_无刷直流电机霍尔传感器安装方法研究
  17. matlab典型环节性能仿真,实验一典型环节的matlab仿真
  18. UVA - 1198 POJ - 1612 The Geodetic Set Problem (floyd+set+模拟)
  19. EC预报相关资料整理分享
  20. 杭州计算机中级职称评级流程,杭州本地中级工程师****流程

热门文章

  1. 华为交换机MSTP常见问题定位
  2. Mysql各个版本之间的比较
  3. VBA自定义方法 快捷键设置
  4. 解决Pycharm添加虚拟解释器的报错问题
  5. eclipse git 解决冲突 解决 mergetool 不能使用问题
  6. Win10提示“您未连接到nvidia gpu的显示器”的解决方法
  7. XSS(跨站脚本攻击)漏洞解决方案
  8. VS Code 终端窗口无法输入命令的解决方案
  9. 通过Android上的意图启动Google地图路线
  10. 如何在'纯'Swift中创建弱协议引用(不带@objc)