当前位置:首页 >> 农林牧渔 >>

一级缓存和二级缓存


一级缓存可分为一级指令缓存和一级数据缓存。一级指令缓存用于暂时存储并向 CPU 递送各 类运算指令;一级数据缓存用于暂时存储并向 CPU 递送运算所需数据,这就是一级缓存的作 用 那么,二级缓存的作用又是什么呢?简单地说,二级缓存就是一级缓存的缓冲器:一级缓存 制造成本很高因此它的容量有限,二级缓存的作用就是存储那些 CPU 处理时需要用到、一级 缓存又无法存储的数据。 为了分清这两个概念,我们先了解一下 RAM 。RAM 和 ROM 相对的,RAM 是掉电以后,其中的 信息就消失那一种,ROM 在掉电以后信息也不会消失那一种。 RAM 又分两种,一种是静态 RAM,SRAM;一种是动态 RAM,DRAM。前者的存储速度要 比后者快得多,我们现在使用的内存一般都是动态 RAM。 有的菜鸟就说了,为了增加系统的速度,把缓存扩大不就行了吗,扩大的越大,缓 存的数据越多, 系统不就越快了吗?缓存通常都是静态 RAM, 速度是非常的快, 但是静态 RAM 集成度低(存储相同的数据,静态 RAM 的体积是动态 RAM 的 6 倍) 价格高(同容量的静态 , RAM 是动态 RAM 的四倍) 由此可见,扩大静态 RAM 作为缓存是一个非常愚蠢的行为, 但是 , 为了提高系统的性能和速度,我们必须要扩大缓存, 这样就有了一个折中的方法,不扩大原 来的静态 RAM 缓存, 而是增加一些高速动态 RAM 做为缓存, 这些高速动态 RAM 速度要比常规 动态 RAM 快,但比原来的静态 RAM 缓存慢, 我们把原来的静态 ram 缓存叫一级缓存,而把后 来增加的动态 RAM 叫二级缓存。 一级缓存和二级缓存中的内容都是内存中访问频率高的数据的复制品 (映射) 它们 , 的存在都是为了减少高速 CPU 对慢速内存的访问。 通常 CPU 找数据或指令的顺序是: 先到一 级缓存中找,找不到再到二级缓存中找,如果还找不到就只有到内存中找了。 着 CPU 制造工艺的发展,二级缓存也能轻易的集成在 CPU 内核中,容量也在逐年提升。现在 再用集成在 CPU 内部与否来定义一、二级缓存,已不确切。而且随着二级缓存被集成入 CPU 内核中, 以往二级缓存与 CPU 大差距分频的情况也被改变, 此时其以相同于主频的速度工作, 可以为 CPU 提供更高的传输速度。 二级缓存是 CPU 性能表现的关键之一,在 CPU 核心不变化的情况下,增加二级缓存 容量能使性能大幅度提高。而同一核心的 CPU 高低端之分往往也是在二级缓存上有差异,由 此可见二级缓存对于 CPU 的重要性。 CPU 在缓存中找到有用的数据被称为命中,当缓存中没有 CPU 所需的数据时(这时 称为未命中) ,CPU 才访问内存。从理论上讲,在一颗拥有二级缓存的 CPU 中,读取一级缓存 的命中率为 80%。也就是说 CPU 一级缓存中找到的有用数据占数据总量的 80%,剩下的 20%从 二级缓存中读取。由于不能准确预测将要执行的数据,读取二级缓存的命中率也在 80%左右 (从二级缓存读到有用的数据占总数据的 16%) 。那么还有的数据就不得不从内存调用,但这 已经是一个相当小的比例了。目前的较高端的 CPU 中,还会带有三级缓存,它是为读取二级 缓存后未命中的数据设计的—种缓存,在拥有三级缓存的 CPU 中,只有约 5%的数据需要从内 存中调用,这进一步提高了 CPU 的效率。 为了保证 CPU 访问时有较高的命中率,缓存中的内容应该按一定的算法替换。一种

较常用的算法是“最近最少使用算法” (LRU 算法) ,它是将最近一段时间内最少被访问过的 行淘汰出局。因此需要为每行设置一个计数器,LRU 算法是把命中行的计数器清零,其他各 行计数器加 1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学 的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出缓存,提高缓存的 利用率。 CPU 产品中, 一级缓存的容量基本在 4KB 到 64KB 之间, 二级缓存的容量则分为 128KB、 256KB、512KB、1MB、2MB、4MB 等。一级缓存容量各产品之间相差不大,而二级缓存容量则 是提高 CPU 性能的关键。二级缓存容量的提升是由 CPU 制造工艺所决定的,容量增大必然导 致 CPU 内部晶体管数的增加,要在有限的 CPU 面积上集成更大的缓存,对制造工艺的要求也 就越高。 现在主流的 CPU 二级缓存都在 2MB 左右,其中英特尔公司 07 年相继推出了台式机 用的 4MB、6MB 二级缓存的高性能 CPU,不过价格也是相对比较高的,对于对配置要求不是太 高的朋友,一般的 2MB 二级缓存的双核 CPU 基本也可以满足日常上网需要了。


相关文章:
主频、二级缓存和三级缓存哪个更重要
主频、二级缓存和三级缓存哪个更重要缓存的工作原理是当 CPU 要读取一个数据时,首先从缓存中查找,如果找到就立即读 取并送给 CPU 处理;如果没有找到,就用相对慢...
认清CPU的二级缓存,别被它的大小忽悠
现今的 CPU 中,Intel 对一级缓存的理解是“数据代码指令追踪缓存” ,即是说一级缓存中存 储的其实只是二级缓存中数据的地址,而不是这些数据的复制。我们还用...
Intel与AMD二级缓存的差别
AMD 的处理器一级缓存和二级缓存是直接存储和读取数据,比如 AMD 三个字母, 可以直接写在一级缓存上,如果一级缓存只够存储 AM,而不够存储 D,那么 D 这个字母...
二级缓存及使用方法
1)二级缓存 默认关闭,属于 sessionFactory 级别缓存,可以被多个不同 Session 对象访问,启用 二级缓存后查找机制; session 查对象-->一级缓存查找(on)-->二级...
多大缓存够用_图文
这样的设计利弊都很明显,有利的是降低处理器的生产难度和成本(一级缓 存的生产成本比二级缓存更高)。弊端同样明显,因为一级缓存容量有限,并不能满足 CPU 的读取...
Hibernate缓存机制
二级 缓存,Hibernate 在运行时才会把它的实 例加入到二级缓存中 用户管理缓存的方式 一级缓存的物理介质为内存, 由于内存的 二级缓存的物理介质可以使内存和硬盘...
内存、缓存、虚拟内存的区别
一级缓存和二级缓存中的内容都是内存中访问频率高的数据的复制品(映射),它们的 存在都是为了减少高速 CPU 对慢速内存的访问。 通常 CPU 找数据或指令的顺序是:...
Mybatis的二级缓存配置
Mybatis的二级缓存配置_计算机软件应用_IT/计算机_专业资料。一个项目中肯定会...配置完<cache/>表示该mapper映射文件中,所有的select语句都将被缓存, 所有的...
hibernate缓存机制
Hibernate 的缓存范围 Hibernate 的一级缓存和二级缓存都位于均位于持久层,且均用于存放数据库数据的副本,最 大的区别就是缓存的范围各不一样. 缓存的范围分为 3...
CPU 的二线缓存是什么意识
幅度提高缓存的容量.因此出现了集成在与 CPU 同一块 电路板上或主板上的缓存,此时就把 CPU 内核集成的缓存称为一级缓存,而外部的 称为二级缓存.一级缓存中还...
更多相关标签: