DMA能够跟CPU同时访问主存吗

问题描述

我做过一个测试,开始一个死循环加拷贝一个大文件和单独拷贝一个大文件,结果两个的所消耗的时间是一样的,按道理,如果CPU一直在使用,DMA就要耽搁,死循环加拷贝大文件的情况下,拷贝大文件应该会更慢才对啊

解决方案

解决方案二:
DMA的作用就是不通过cpu直接访问内存,所以,不管cpu在干什么,都不影响dma操作。“如果CPU一直在使用,DMA就要耽搁”这个说法是不正确的
解决方案三:
啊,学习
解决方案四:
引用楼主aini0403610的回复:

我做过一个测试,开始一个死循环加拷贝一个大文件和单独拷贝一个大文件,结果两个的所消耗的时间是一样的,按道理,如果CPU一直在使用,DMA就要耽搁,死循环加拷贝大文件的情况下,拷贝大文件应该会更慢才对啊

兄弟,看来没去看书啊,DMA跟CPU只能同时一个访问内存

时间: 2024-10-26 01:24:10

DMA能够跟CPU同时访问主存吗的相关文章

全面理解Java内存模型

Java内存模型即Java Memory Model,简称JMM.JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式.JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的. 如果我们要想深入了解Java并发编程,就要先理解好Java内存模型.Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的时候对共享变量进行同步.原始的Java内存模型效率并不是很理想,因此Java1.5版本对其进行了重构,现在的Java8仍沿用了Java1.5的版本. 关于并发编程 在并发

Java 并发/多线程教程(十一)-JAVA内存模型

本系列译自jakob jenkov的Java并发多线程教程,个人觉得很有收获.由于个人水平有限,不对之处还望矫正!         Java内存模型指定Java虚拟机如何与计算机的内存(RAM)一起工作.Java虚拟机是整个计算机的一个模型,所以这个模型自然包含了一个内存模型--也就是Java内存模型.         如果您想要设计正确的并发程序,那么理解Java内存模型是非常重要的.Java内存模型指定了不同线程如何以及何时可以看到由其他线程写入共享变量的值,以及在必要时如何同步访问共享变量

【转载】linux下的DMA详解

直接内存存储 (Direct Memory Access - DMA) 是一种计算机内数据传输的模式,它不需要中央处理器 (CPU) 的干涉.  DMA 的工作方式在不同架构的计算机内是以不同的形式被实现的.因此此篇文章将把讨论限制在对 IBM 个人计算机 (PC) 和 IBM PC/AT 以及其他所有后继者和兼容产品 的 DMA 子系统的实现以及工作方式上. PC 的 DMA 子系统是建立在 Intel? 8237 控制器上的.这个 8237 控制器包含 了四个 DMA 通道,每个通道都可以被

CPU缓存刷新的误解

原文地址  作者:Mechanical Sympathy  译者:潘曦  校对:Simon-SZ ,方腾飞 即使是资深的技术人员,我经常听到他们谈论某些操作是如何导致一个CPU缓存的刷新.看来这是关于CPU缓存如何工作和缓存子系统如何与执行核心交互的一个常见误区.本文将致力于解释CPU缓存的功能以及执行程序指令的CPU核心如何与缓存交互.我将以最新的Intel x86 CPU为例进行说明,其他CPU也使用相似技术以达到相同目的. 绝大部分常见的现代系统都被设计成在多处理器上共享内存.共享内存的系

cpu学习简介1

1.cpu的基本结构: cpu的基本部分由运算器,cache(缓存)和控制器 三大部分组成.一般情况下为了处理异常情况和特殊请求,还必须有中断系统: cpu要完成取指令操作,必须要有存储器来存放当前指令的地址:要分析指令,必须要有存放当前指令的寄存器和对指令译码的部件:要执行指令,必须要有一个能发出各种命令序列的控制部件CU:要完成算数运算和逻辑运算,必须要有存放操作数的寄存器和进行运算的ALU:为了处理特殊情况还应该有中断系统. 因此cpu一般可由寄存器,控制单元(control unit),

linux内核同步之每CPU变量、原子操作、内存屏障、自旋锁【转】

转自:http://blog.csdn.net/goodluckwhh/article/details/9005585 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 一每CPU变量 二原子操作 三优化和内存屏障 四自旋锁 自旋锁 自旋锁的数据结构和宏函数 读写自旋锁 读写自旋锁的相关函数   linux内核中的各种"任务"都能看到内核地址空间,因而它们之间也需要同步和互斥.linux内核支持的同步/互斥手段包括:   技术 功能 作用范围 每CPU变量 为

存储器结构、cache、DMA架构分析--【原创】

存储器的层次结构       高速缓冲存储器  cache   读cache操作     cache如果包含数据就直接从cache中读出来,因为cache速度要比内存快 如果没有包含的话,就从内存中找,找到后就放到cache中去,以后再读的话就直接从cache读了,下次访问很多次的时候就会快很多,相当于提高了命中率,cpu的访问速度就大大提高了   cache能大大提高cpu的访问速率   cache的设计 不能太大,也不能太小   太大的话,因为程序在查看数据的时候需要把cache走一遍,如果

每个程序员都应该了解的内存知识(2)-CPU caches

英文原帖:http://lwn.net/Articles/252125/ 原翻译贴:http://www.oschina.net/translate/what-every-programmer-should-know-about-cpu-cache-part2       现在的CPU比25年前要精密得多了.在那个年代,CPU的频率与内存总线的频率基本在同一层面上.内存的访问速度仅比寄存器慢那么一点点.但是,这一局面在上世纪90年代被打破了.CPU的频率大大提升,但内存总线的频率与内存芯片的性能

cgroup介绍、安装和控制cpu,内存,io示例

cgroup介绍         cgroup是control group的简称,它为Linux内核提供了一种任务聚集和划分的机制,通过一组参数集合将一些任务组织成一个或多个子系统.             Cgroups是control groups的缩写,最初由Google工程师提出,后来编进linux内核.         Cgroups是实现IaaS虚拟化(kvm.lxc等),PaaS容器沙箱(Docker等)的资源管理控制部分的底层基础         子系统是根据cgroup对任务的