cpu缓存有什么用 cpu缓存( 六 )


双核心CPU的二级缓存比较特殊, 和以前的单核心CPU相比, 最重要的就是两个内核的缓存所保存的数据要保持一致, 否则就会出现错误, 为了解决这个问题不同的CPU使用了不同的办法:
Intel双核心处理器的二级缓存
目前Intel的双核心CPU主要有Pentium D、Pentium EE、Core Duo三种, 其中Pentium D、Pentium EE的二级缓存方式完全相同 。 Pentium D和Pentium EE的二级缓存都是CPU内部两个内核具有互相独立的二级缓存, 其中, 8xx系列的Smithfield核心CPU为每核心1MB, 而9xx系列的Presler核心CPU为每核心2MB 。 这种CPU内部的两个内核之间的缓存数据同步是依靠位于主板北桥芯片上的仲裁单元通过前端总线在两个核心之间传输来实现的, 所以其数据延迟问题比较严重, 性能并不尽如人意 。
Core Duo使用的核心为Yonah, 它的二级缓存则是两个核心共享2MB的二级缓存, 共享式的二级缓存配合Intel的“Smart cache”共享缓存技术, 实现了真正意义上的缓存数据同步, 大幅度降低了数据延迟, 减少了对前端总线的占用, 性能表现不错, 是目前双核心处理器上最先进的二级缓存架构 。 今后Intel的双核心处理器的二级缓存都会采用这种两个内核共享二级缓存的“Smart cache”共享缓存技术 。
AMD双核心处理器的二级缓存
Athlon 64 X2 CPU的核心主要有Manchester和Toledo两种, 他们的二级缓存都是CPU内部两个内核具有互相独立的二级缓存, 其中, Manchester核心为每核心512KB, 而Toledo核心为每核心1MB 。 处理器内部的两个内核之间的缓存数据同步是依靠CPU内置的System Request Interface(系统请求接口, SRI)控制, 传输在CPU内部即可实现 。 这样一来, 不但CPU资源占用很小, 而且不必占用内存总线资源, 数据延迟也比Intel的Smithfield核心和Presler核心大为减少, 协作效率明显胜过这两种核心 。 不过, 由于这种方式仍然是两个内核的缓存相互独立, 从架构上来看也明显不如以Yonah核心为代表的Intel的共享缓存技术Smart Cache 。
一级缓存与二级缓存的比较
L1 cache vs L2 Cache用于存储数据的缓存部分通常被称为RAM, 掉电以后其中的信息就会消失 。 RAM又分两种, 其中一种是静态RAM(SRAM);另外一种是动态RAM(DRAM) 。 前者的存储速度要比后者快得多, 我们现在使用的内存一般都是动态RAM 。 CPU的L1级缓存通常都是静态RAM, 速度非常的快, 但是静态RAM集成度低(存储相同的数据, 静态RAM的体积是动态RAM的6倍), 而且价格也相对较为昂贵(同容量的静态RAM是动态RAM的四倍) 。 扩大静态RAM作为缓存是一个不太合算的做法, 但是为了提高系统的性能和速度又必须要扩大缓存, 这就有了一个折中的方法:在不扩大原来的静态RAM缓存容量的情况下, 仅仅增加一些高速动态RAM做为L2级缓存 。 高速动态RAM速度要比常规动态RAM快, 但比原来的静态RAM缓存慢, 而且成本也较为适中 。 一级缓存和二级缓存中的内容都是内存中访问频率高的数据的复制品(映射), 它们的存在都是为了减少高速CPU对慢速内存的访问 。 二级缓存是CPU性能表现的关键之一, 在CPU核心不变化的情况下, 增加二级缓存容量能使性能大幅度提高 。 而同一核心的CPU高低端之分往往也是在二级缓存上存在差异, 由此可见二级缓存对CPU的重要性 。 CPU在缓存中找到有用的数据被称为命中, 当缓存中没有CPU所需的数据时(这时称为未命中), CPU才访问内存 。 从理论上讲, 在一颗拥有二级缓存的CPU中, 读取一级缓存的命中率为80% 。 也就是说CPU一级缓存中找到的有用数据占数据总量的80%, 剩下的20%从二级缓存中读取 。 由于不能准确预测将要执行的数据, 读取二级缓存的命中率也在80%左右(从二级缓存读到有用的数据占总数据的16%) 。 那么还有的数据就不得不从内存调用, 但这已经是一个相当小的比例了 。 目前的较高端CPU中, 还会带有三级缓存, 它是为读取二级缓存后未命中的数据设计的—种缓存, 在拥有三级缓存的CPU中, 只有约5%的数据需要从内存中调用, 这进一步提高了CPU的效率, 从某种意义上说, 预取效率的提高, 大大降低了生产成本却提供了非常接近理想状态的性能 。 除非某天生产技术变得非常强, 否则内存仍会存在, 缓存的性能递增特性也仍会保留 。 CPU缓存与内存的关系既然CPU缓存能够在很大程度上提高CPU的性能, 那么, 有些朋友可能会问, 是不是将来有可能, 目前的系统内存将会被CPU取代呢?

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。