二级缓存和三级缓存

发布时间:2015-06-11 来源: 苹果a8三级缓存

第一篇:二级缓存和三级缓存

二级缓存是什么 二级缓存和三级缓存的区别 我们知道 CPU 性能主要有核心数量、CPU 架构、CPU 主频以及缓存综合决定的。通 常这些数值都是越大越好。其中对于核心数量、架构以及主频方面大家都很好理解,但对于 缓存方面大家还是有很多疑问, 比如大家问的比较多的有二级缓存是什么以及二级缓存和三 级缓存的区别什么的比较多,下面本文针对该问题详细解读下。

缓存的工作原理是当 CPU 要读取一个数据时,首先从缓存中查找,如果找到就立即读 取并送给 CPU 处理;如果没有找到,就用相对慢的速度从内存中读取并送给 CPU 处理, 同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进 行,不必再调用内存。

CPU 通常有一级缓存、二级缓存以及三级缓存之说,下面我们分别介绍下

二级缓存(L2 CACHE)出现是为了协调一级缓存与内存之间的速度。最初缓存只有 一级,后来处理器速度又提升了,一级缓存不够用了,于是就添加了二级缓存。二级缓存是 比一级缓存速度更慢, 容量更大的内存, 主要就是做一级缓存和内存之间数据临时交换的地 方用。

三级缓存是为读取二级缓存后未命作文中的数据设计的—种缓存, 在拥有三级缓存的 CPU 中,只有约 5%的数据需要从内存中调用,这进一步提高了 CPU 的效率。 二级缓存是什么 二级缓存和三级缓存的区别 目前 AMD 处理器普遍只有一二级缓存,没有三级缓存。而 Intel 主流处理器通常都有 二三级缓存,只是二级缓存较小,三级缓存较大,比如中端热门的 i3 处理器二级缓存仅 512K,三级缓存为 3M,而对于 Intel 高端处理器则主要有一级和三级缓存,三级缓存高 达 6M、8M 等,不过不管是 AMD 处理器还是 Intel 处理器一级缓存都是固定的,并且都 不大。

总的来说,决定 CPU 性能是由 CPU 核心数量、主频、CPU 构架、以及这些 CPU 缓 存共同决定的,一般来说,Intel 构架方面有技术优势,AMD 处理器则有核心数量优势, 二三级缓存也是决定 CPU 性能的细节方面,但并算上不上决定性因素。并且 AMD 处理器 对二级缓存带来的性能提升幅度比 Intel 的小,这主要由于 Intel 技术更先进导致的。三级 缓存本来就是服务器上的东西,依然是靠对应的系统和软件影响来彰显效果的,目前对于 Intel 高端处理器普遍拥有大容量三级缓存,通常三级缓存高达 8M。

第一篇:二级缓存和三级缓存

二级缓存和三级缓存的区别 先来了解教电脑缓存的工作原理? 电脑缓存是当 cpu 在读取数据的时候, 先是从缓存文件中查找, 然后找到之后会自动读取在 输入到 cpu 进行处理,当然如果没有在缓存中找到对应的缓存 文件的话,那么就会从内存 中读取并且传输给 cpu 来处理。

当然这样的话需要一定的时间所以会很慢。

cpu 处理之后, 等 就很贵把这个暑假所在的数据块保存在 缓存文件中,这样的话在以后读取这项数据的时候 就直接在缓存中进行,这样就不要重复在内存中调用并读取数据了。 了解了电脑缓存的作用,对于电脑缓存又分为一级、二级、三级缓存。那么小编就对缓存来 逐一介绍吧。 一级缓存都内置在 CPU 内部并与 CPU 同速运行, 可以有效的提高 CPU 的运行效率。

一级缓存 越大,CPU 的运行效率越高,但受到 CPU 内部结构的限制,一级缓存的容量都很小。

所谓二级缓存,它是为了协调一级缓存和内存之间的速度。cpu 调用缓存首先是一级缓存, 不够当处理器的速度逐渐提升了,导致一级缓存就供应不了需求 了,这样就提升到二级缓 存了。二级缓存它是比一级缓存的速度相对来说会慢,但是它比一级缓存的空间容量要大。

主要就是做一级缓存和内存之间数据临时交换的 地方用。

三级缓存的话也是一样的。

是为读取二级缓存后未命中的数据设计的—种缓存, 在拥有三级 缓存的 CPU 中,只有约 5%的数据需要从内存中调用,这大大提高了 CPU 的效率。 现在我们来分析下现在主流的 cpu 处理器的缓存作用, 如果你使用的 AMD 型号的 cpu 处理器 的话一般只有一二级缓存,是没有三级缓存的。如果是 intel 处理器的话,通常情况是只 有二三级缓存。

但是 intel 高端的处理器的话是只有一级和三级缓存。

那么这些为大家作为 了解。

参考资料:

第一篇:二级缓存和三级缓存

一级缓存、二级缓存、三级缓存是什么?作用?区别? 首先简单了解 一下一级缓存。目前所有主流处理器大都具有一级缓存和二级缓存,少 数高端处理器还集成了三级缓存。其中,一级缓存可分为一级指令缓存 和一级数据缓存。

一级指令缓存用于暂时存储并向 CPU 递送各类运算指 令;一级数据缓存用于暂时存储并向 CPU 递送运算所需数据,这就是一 级缓存的作用。

那么,二级缓存的作用又是什么呢?简单地说,二级 缓存就是一级缓存的缓冲器:一级缓存制造成本很高因此它的容量有 限,二级缓存的作用就是存储那些 CPU 处理时需要用到、一级缓存又无 法存储的数据。同样道理,三级缓存和内存可以看作是二级缓存的缓冲 器,它们的容量递增,但单位制造成本却递减。需要注意的是,无论是 二级缓存、三级缓存还是内存都不能存储处理器操作的原始指令,这些 指令只能存储在 CPU 的一级指令缓存中,而余下的二级缓存、三级缓存 和内存仅用于存储 CPU 所需数据。

根据工作原理的不同,目前主流处 理器所采用的一级数据缓存又可以分为实数据读写缓存和数据代码指 令追踪缓存 2 种,它们分别被 AMD 和 Intel 所采用。不同的一级数据缓 存设计对于二级缓存容量的需求也各不相同, 下面让我们简单了解一下 这两种一级数据缓存设计的不同之处。一、AMD 一级数据缓存设计 AMD 采用的一级缓存设计属于传统的“实数据读写缓存”设计。基于该架构的 一级数据缓存主要用于存储 CPU 最先读取的数据; 而更多的读取数据则 分别存储在二级缓存和系统内存当中。做个简单的假设,假如处理器需 要读取“AMD ATHLON 64 3000+ IS GOOD”这一串数据(不记空格) ,那么 首先要被读取的“AMDATHL”将被存储在一级数据缓存中,而余下的 “ON643000+ISGOOD”则被分别存储在二级缓存和系统内存当中(如下图 所示) 需要注意的是,以上假设只是对 AMD 处理器一级数据缓存的一 。

个抽象描述, 一级数据缓存和二级缓存所能存储的数据长度完全由缓存 容量的大小决定,而绝非以上假设中的几个字节。“实数据读写缓存”的 优点是数据读取直接快速,但这也需要一级数据缓存具有一定的容量, 增加了处理器的制造难度(一级数据缓存的单位制造成本较二级缓存 高) 。二、Intel 一级数据缓存设计 自 P4 时代开始,Intel 开始采用全 新的“数据代码指令追踪缓存”设计。基于这种架构的一级数据缓存不再 存储实际的数据,而是存储这些数据在二级缓存中的指令代码(即数据 在二级缓存中存储的起始地址) 。假设处理器需要读取“INTEL P4 IS GOOD”这一串数据(不记空格) ,那么所有数据将被存储在二级缓存中, 而一级数据代码指令追踪缓存需要存储的仅仅是上述数据的起始地址。

由于一级数据缓存不再存储实际数据,因此“数据代码指令追踪缓存”设 计能够极大地降 CPU 对一级数据缓存容量的要求, 降低处理器的生产难 度。但这种设计的弊端在于数据读取效率较“实数据读写缓存设计”低, 而且对二级缓存容量的依赖性非常大。

在了解了一级缓存、二级缓存 的大致作用及其分类以后, 下面我们来回答以下硬件一菜鸟网友提出的 问题。从理论上讲,二级缓存越大处理器的性能越好,但这并不是说二 级缓存容量加倍就能够处理器带来成倍的性能增长。

目前 CPU 处理的绝 大 部 分 数 据 的 大 小 都 在 0-256KB 之 间 , 小 部 分 数 据 的 大 小 在 256KB-512KB 之间,只有极少数数据的大小超过 512KB。所以只要处理 器可用的一级、二级缓存容量达到 256KB 以上,那就能够应付正常的应 用; 512KB 容量的二级缓存已经足够满足绝大多数应用的需求。这其中, 对于采用“实数据读写缓存”设计的 AMD Athlon 64、Sempron 处理器而 言,由于它们已经具备了 64KB 一级指令缓存和 64KB 一级数据缓存,只 要处理器的二级缓存容量大于等于 128KB 就能够存储足够的数据和指 令,因此它们对二级缓存的依赖性并不大。这就是为什么主频同为 1.8GHz 的 Socket 754 Sempron 3000+ (128KB 二级缓存) Sempron 3100+ 、 (256KB 二级缓存)以及 Athlon 64 2800+(512KB 二级缓存)在大多数 评测中性能非常接近的主要原因。所以对于普通用户而言 754 Sempron 2600+是值得考虑的。

反观 Intel 目前主推的 P4、赛扬系列处理器,它 们都采用了“数据代码指令追踪缓存”架构,其中 Prescott 内核的一级 缓存中只包含了 12KB 一级指令缓存和 16KB 一级数据缓存, Northwood 而 内核更是只有 12KB 一级指令缓存和 8KB 一级数据缓存。所以 P4、赛扬 系列处理器对二级缓存的依赖性是非常大的,赛扬 D 320(256KB 二级 缓存)与赛扬 2.4GHz(128KB 二级缓存)性能上的巨大差距就很好地证 明了这一点; 而赛扬 D 和 P4 E 处理器之间的性能差距同样十分明显。最 后,如果您是狂热的游戏发烧友或者从事多媒体制作的专业用户,那么 具有 1MB 二级缓存的 P4 处理器和具有 512KB/1MB 二级缓存的 Athlon 64 处理器才是您理想的选择。因为在高负荷的运算下,CPU 的一级缓存和 二级缓存近乎“爆满”,在这个时候大容量的二级缓存能够为处理器带来 5%-10%左右的性能提升, 这对于那些要求苛刻的用户来说是完全有必要 的。

一级缓存是在 CPU 内的,用来存放内部指令,2 级缓存和 CPU 封装 在一起,也是用来存放指令数据的,三级和四级缓存只在高端的服务器 CPU 里有,作用差不多,速度更快,更稳定,更有效 并不是缓存越大越 好,譬如 AMD 和 INTER 就有不同的理论,AMD 认为一级缓存越大越好, 所以一级比较大,而 INTER 认为过大会有更长的指令执行时间,所以一 级很小,二级缓存那两个公司的理论又反过来了,AMD 的小,INTER 的 大,一般主流的 INTERCPU 的 2 级缓存都在 2M 左右 我们通常用(L1, L2)来称呼缓存又叫高速缓冲存储器其作用在于缓解主存速度慢、跟不 上 CPU 读写速度要求的矛盾。它的实现原理,是把 CPU 最近最可能用到 的少量信息(数据或指令)从主存复制到 CACHE 中,当 CPU 下次再用这 些信息时,它就不必访问慢速的主存,而直接从快速的 CACHE 中得到, 从而提高了得到这些信息的速度,使 CPU 有更高的运行效率。缓存的大 小:一般说来,更大一点的 cache 容量,对提高命中率是有好处的,如 图 4.20 所示, 由于 cache 是用价格很高的静态存储器 SRAM 器件实现的, 而 cache 容量达到一定大小这后,再增加其容量,对命中率的提高并不 明显,从合理的性能/价格比考虑,cache 的容量设置应在一个合理的 容量范围之内。缓存要分一级二级 三级,是为了建立一个层次存储结 构,以达到最高性价比。而且多级组织还可以提高 cache 的命中率,提 高执行效能。

CPU 缓存(Cache Memory)是位于 CPU 与内存之间的临时 存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存 的出现主要是为了解决 CPU 运算速度与内存读写速度不匹配的矛盾, 因 为 CPU 运算速度要比内存读写速度快很多, 这样会使 CPU 花费很长时间 等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部 分, 但这一小部分是短时间内 CPU 即将访问的, CPU 调用大量数据时, 当 就可避开内存直接从缓存中调用, 从而加快读取速度。

由此可见, CPU 在 中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存) 就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对 CPU 的性能影响很大,主要是因为 CPU 的数据交换顺序和 CPU 与缓存间 的带宽引起的。

缓存的工作原理是当 CPU 要读取一个数据时,首先从 缓存中查找,如果找到就立即读取并送给 CPU 处理;如果没有找到,就 用相对慢的速度从内存中读取并送给 CPU 处理, 同时把这个数据所在的 数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行, 不必再调用内存。

正是这样的读取机制使 CPU 读取缓存的命中率非常 高(大多数 CPU 可达 90%左右) ,也就是说 CPU 下一次要读取的数据 90% 都在缓存中,只有大约 10%需要从内存读取。这大大节省了 CPU 直接读 取内存的时间,也使 CPU 读取数据时基本无需等待。总的来说,CPU 读 取数据的顺序是先缓存后内存。目前缓存基本上都是采用 SRAM 存储器, SRAM 是英文 Static RAM 的缩写, 它是一种具有静志存取功能的存储器, 不需要刷新电路即能保存它内部存储的数据。不像 DRAM 内存那样需要 刷新电路,每隔一段时间,固定要对 DRAM 刷新充电一次,否则内部的 数据即会消失,因此 SRAM 具有较高的性能,但是 SRAM 也有它的缺点, 即它的集成度较低,相同容量的 DRAM 内存可以设计为较小的体积,但 是 SRAM 却需要很大的体积,这也是目前不能将缓存容量做得太大的重 要原因。它的特点归纳如下:优点是节能、速度快、不必配合内存刷新 电路、 可提高整体的工作效率, 缺点是集成度低、 相同的容量体积较大、 而且价格较高,只能少量用于关键性系统以提高效率。

按照数据读取 顺序和与 CPU 结合的紧密程度, CPU 缓存可以分为一级缓存, 二级缓存, 部分高端 CPU 还具有三级缓存, 每一级缓存中所储存的全部数据都是下 一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的, 所以其容量也是相对递增的。当 CPU 要读取一个数据时,首先从一级缓 存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级 缓存或内存中查找。一般来说,每级缓存的命中率大概都在 80%左右, 也就是说全部数据量的 80%都可以在一级缓存中找到,只剩下 20%的总 数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓存 是整个 CPU 缓存架构中最为重要的部分。

一级缓存(Level 1 Cache) 简称 L1 Cache,位于 CPU 内核的旁边,是与 CPU 结合最为紧密的 CPU 缓存,也是历史上最早出现的 CPU 缓存。由于一级缓存的技术难度和制 造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带 来的性能提升却不明显,性价比很低,而且现有的一级缓存的命中率已 经很高, 所以一级缓存是所有缓存中容量最小的, 比二级缓存要小得多。

一般来说,一级缓存可以分为一级数据缓存(Data Cache,D-Cache) 和一级指令缓存(Instruction Cache,I-Cache) 。二者分别用来存放 数据以及对执行这些数据的指令进行即时解码,而且两者可以同时被 CPU 访问,减少了争用 Cache 所造成的冲突,提高了处理器效能。目前 大多数 CPU 的一级数据缓存和一级指令缓存具有相同的容量,例如 AMD 的 Athlon XP 就具有 64KB 的一级数据缓存和 64KB 的一级指令缓存,其 一级缓存就以 64KB+64KB 来表示, 其余的 CPU 的一级缓存表示方法以此 类推。

Intel 的采用 NetBurst 架构的 CPU(最典型的就是 Pentium 4) 的一级缓存有点特殊,使用了新增加的一种一级追踪缓存(Execution Trace Cache,T-Cache 或 ETC)来替代一级指令缓存,容量为 12KμOps, 表示能存储 12K 条即 12000 条解码后的微指令。

一级追踪缓存与一级指 令缓存的运行机制是不相同的, 一级指令缓存只是对指令作即时的解码 而并不会储存这些指令,而一级追踪缓存同样会将一些指令作解码,这 些指令称为微指令(micro-ops),而这些微指令能储存在一级追踪缓存 之内,无需每一次都作出解码的程序,因此一级追踪缓存能有效地增加 在高工作频率下对指令的解码能力,而 μOps 就是 micro-ops,也就是 微型操作的意思。它以很高的速度将 μops 提供给处理器核心。Intel NetBurst 微型架构使用执行跟踪缓存,将解码器从执行循环中分离出 来。这个跟踪缓存以很高的带宽将 uops 提供给核心,从本质上适于充 分利用软件中的指令级并行机制。Intel 并没有公布一级追踪缓存的实 际容量,只知道一级追踪缓存能储存 12000 条微指令(micro-ops) 。所 以,我们不能简单地用微指令的数目来比较指令缓存的大小。实际上, 单核心的 NetBurst 架构 CPU 使用 8Kμops 的缓存已经基本上够用了, 多 出的 4kμops 可以大大提高缓存命中率。

而如果要使用超线程技术的话, 12KμOps 就会有些不够用,这就是为什么有时候 Intel 处理器在使用超 线程技术时会导致性能下降的重要原因。

例如 Northwood 核心的一级 缓存为 8KB+12KμOps,就表示其一级数据缓存为 8KB,一级追踪缓存为 12KμOps;而 Prescott 核心的一级缓存为 16KB+12KμOps,就表示其一 级数据缓存为 16KB,一级追踪缓存为 12KμOps。在这里 12KμOps 绝对 不等于 12KB,单位都不同,一个是 μOps,一个是 Byte(字节) ,而且 二者的运行机制完全不同。

所以那些把 Intel 的 CPU 一级缓存简单相加, 例如把 Northwood 核心说成是 20KB 一级缓存, Prescott 核心说成是 把 28KB 一级缓存,并且据此认为 Intel 处理器的一级缓存容量远远低于 AMD 处理器 128KB 的一级缓存容量的看法是完全错误的,二者不具有可 比性。在架构有一定区别的 CPU 对比中,很多缓存已经难以找到对应的 东西,即使类似名称的缓存在设计思路和功能定义上也有区别了,此时 不能用简单的算术加法来进行对比;而在架构极为近似的 CPU 对比中, 分别对比各种功能缓存大小才有一定的意义。

二级缓存和三级缓存》出自:金链花美文网
链接地址:http://www.nongyeqq.com/content/XnXB6X14v7BLLFAx.html

网站地图 | 关于我们 | 联系我们 | 广告服务 | 免责声明 | 在线留言 | 友情链接 | RSS 订阅 | 热门搜索
版权所有 金链花美文网 www.nongyeqq.com

二级缓存和三级缓存