DMA、Cache其具体工作原理是

DMA、Cache其具体工作原理是,第1张

Cache被用作CPU针对内存的缓存,利用程序的空间局部性和时间局部性原理,达到较高的命中率,从而避免CPU每次都必须要与相对慢速的内存交互数据来提高数据的访问速率。DMA可以作为内存与外设之间传输数据的方式,在这种传输方式之下,数据并不需要经过CPU中转。假设DMA针对内存的目的地址与Cache缓存的对象没有重叠区域,DMA和Cache之间将相安无事。

但是,如果DMA的目的地址与Cache所缓存的内存地址访问有重叠,经过DMA *** 作,与Cache缓存对应的内存中的数据已经被修改,而CPU本身并不知道,它仍然认为Cache中的数据就是内存中的数据,那在以后访问Cache映射的内存时,它仍然使用陈旧的Cache数据。这样就会发生Cache与内存之间数据“不一致性”的错误。所谓Cache数据与内存数据的不一致性,是指在采用Cache的系统中,同样一个数据可能既存在于Cache中,也存在于主存中,Cache与主存中的数据一样则具有一致性,数据若不一样则具有不一致性。需要特别注意的是,Cache与内存的一致性问题经常被初学者遗忘。在发生Cache与内存不一致性错误后,驱动将无法正常运行。如果没有相关的背景知识,工程师几乎无法定位错误的原因,因为这时所有的程序看起来都是完全正确的。Cache的不一致性问题并不是只发生在DMA的情况下,实际上,它还存在于Cache使能和关闭的时刻。例如,对于带MMU功能的ARM处理器,在开启MMU之前,需要先置Cache无效,对于TLB,也是如此。

1 大概率事件优先原则(哈夫曼压缩原理)

加快经常性事件的速度(make the common case fast)

2 阿姆达尔(Amdahl)定律

定义系统性能的加速比,确定对性能限制最大的部件,计算改进某些部件所获得的性能提高

3 程序的局部性原理

程序的顺序执行和程序的循环等原因,程序往往重复使用它刚刚使用过的数据和指令

时间局部性:程序即将用到的信息很可能就是目前正在使用的信息(近期被访问的程序,很可能不久又将再次被访问)

空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近(地址上相邻近的程序可能会被连续的访问)

存储器访问的局部性原理是指,在程序执行过程中,程序访问的数据和指令往往集中在某些特定的区域,而不是分散在整个存储器中。这种局部性包括时间局部性和空间局部性两种,时间局部性指的是程序在一段时间内多次访问同一块数据或指令的现象,而空间局部性则指的是程序在访问某个数据或指令时,往往会连续地访问其附近的数据或指令。利用局部性原理,可以采用缓存、预取等技术来提高存储器的访问效率和性能,从而提高计算机系统的整体性能。

高速缓存内存标识位于主内存中的重复指令和数据,并将其复制到其内存中。CPU不再为相同的指令和数据重复访问较慢的主内存,而是访问更快的缓存。

缓存有时称为CPU内存,通常运行在高性能的SRAM内存模块上。CPU可以访问更快的缓存内存来运行性能敏感的 *** 作。高速缓存内存通常集成在主板下,或者在不同的芯片上,通过总线与CPU互连。

扩展资料

Cache 技术所依赖的原理是”程序执行与数据访问的局部性原理“,这种局部性表现在两个方面:

时间局部性:如果程序中的某条指令一旦执行,不久以后该指令可能再次执行,如果某数据被访问过,不久以后该数据可能再次被访问。

空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,这是因为指令或数据通常是顺序存放的。

时间局部性是通过将近来使用的指令和数据保存到Cache中实现。空间局部性通常是使用较大的高速缓存,并将 预取机制 集成到高速缓存控制逻辑中来实现。

参考资料来源:百度百科-高速缓冲存储器

cache是高速缓冲存储器存储了频繁访问的主存,直接接受CPU的访问,速度也比主存快?错,错在 并不是所有的数据cache 都比主存快,例如处理器引用某些地址时,先看cache里有没有,他有的化,就直接复制到哪里,速度就提高了,要是没有,一样跟主存一样速度

应该是“接受CPU访问”之前的错了 高速缓存分为多级,有一级缓存,主要用来缓存CPU指令,二级缓存,才是CPU于物理内存之间的缓存,至于三级缓存应该就是二级缓存于内存间的另一个缓存,所以不是统一编址的

传统意义上,我们把memory翻译成内存,这个词在台湾似乎是翻译为记忆体。在pc上一般指的ram。但是在移动设备中还有一个词叫做internal storage,这个词直译就是内存,但跟我们pc时代所说的内存具有完全不同的含义。所以,现在内存确实可以是ram,是内存条,也可能是手机上的flash。在说内存的时候现在倾向于直接使用ram来指代,避免歧义。

概述

存储器分类

存储器的层次结构

主存储器

概述:

半导体芯片简介

随机存取存储器(RAM)

只读存储器(ROM)

存储器与CPU的连接

存储器的校验

汉明码简介:

提高访问速度的措施

高速缓冲存储器

Cache的工作原理:

主存—Cache的地址映射

写 *** 作

Pentium的Cache

辅助存储器

概述

存储器分类

按存储介质分类:

半导体存储器 TTL,MOS

磁表面存储器 磁头,载磁体

磁芯存储器 硬磁材料,环状元件

光盘存储器 激光,磁光材料

按存取方式分类:

1存取时间与物理地址无关(随机访问)

随机存储器 在程序的执行过程中 读 写

只读存储器 在程序的执行过程中 读

2存取时间与物理地址有关(串行访问)

顺序存取存储器 磁带

直接存取存储器 磁盘

3按在计算机中的作用分类

存储器:主存储器,Flash Memory,高速缓冲存储器(Cache),辅助存储器

主存储器:RAM,ROM,

RAM:静态RAM,动态RAM

ROM:MROM,PROM,EPROM,EEPROM

辅助存储器:磁盘,磁带,光盘

存储器的层次结构

存储器三个主要特性的关系:

速度:快--慢

容量:小--大

价格:高--低

缓存—主存层次和主存—辅助层次

缓存—主存:主存储器地址 注重速度 由硬件来处理

主存—辅存:虚拟存储器 注重容量 由软硬件相结合

程序的局部性原理:程序在执行时呈现出局部规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。相应的,执行所访问的存储空间也局限于某个内存区域。

主存储器

概述:

1主存的基本组成

2主存和CPU的联系

3主存中存储单元地址的分配

高位字节 地址为字地址

地址线24根,按字节寻址范围为224224 =16M;

若字长32位,则一个字有4个字节,所以要留2根地址线指出该字中的哪个字节[00,01,10,11],即寻址范围为 224−2=4M224−2=4M;

若字长16位,则一个字有2个字节,所以要留1根地址线指出该字中的哪个字节[0,1],即寻址范围为 224−1=8M224−1=8M;

以上就是关于DMA、Cache其具体工作原理是全部的内容,包括:DMA、Cache其具体工作原理是、计算机体系结构设计和分析中最经常使用的三条基本原则是、存储器访问的局部性原理是指等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9452826.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存