一级缓存与二级缓存的比较
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取代呢?
答案应该是否定的 , 首先 , 尽管CPU缓存的传输速率确实很高 , 但要完全取代内存的地位仍不可行 , 这主要是因为缓存只是内存中少部分数据的复制品 , 所以CPU到缓存中寻找数据时 , 也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去) , 这时CPU还是会到内存中去找数据 , 与此同时系统的速度就慢了下来 , 不过CPU会把这些数据复制到缓存中去 , 以便下一次不用再到内存中去取 。 也即是说 , 随着缓存增大到一定程度 , 其对CPU性能的影响将越来越小 , 在性能比上来说 , 越来越不合算 。 就目前缓存容量、成本以及功耗表现来看 , 还远远无法与内存抗衡 , 另外从某种意义上来说 , 内存也是CPU缓存的一种表现形式 , 只不过在速率上慢很多 , 然而却在容量、功耗以及成本方面拥有巨大优势 。 如果内存在将来可以做到足够强的话 , 反而很有取代CPU缓存的可能 。 缓存的读写算法同样重要即便CPU内部集成的缓存数据交换能力非常强 , 也仍需要对调取数据做一定的筛选 。 这是因为随着时间的变化 , 被访问得最频繁的数据不是一成不变的 , 也就是说 , 刚才还不频繁的数据 , 此时已经需要被频繁的访问 , 刚才还是最频繁的数据 , 现在又不频繁了 , 所以说缓存中的数据要经常按照一定的算法来更换 , 这样才能保证缓存中的数据经常是被访问最频繁的 。 命中率算法中较常用的“最近最少使用算法”(LRU算法) , 它是将最近一段时间内最少被访问过的行淘汰出局 。 因此需要为每行设置一个计数器 , LRU算法是把命中行的计数器清零 , 其他各行计数器加1 。 当需要替换时淘汰行计数器计数值最大的数据行出局 。 这是一种高效、科学的算法 , 其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出缓存 , 提高缓存的利用率 。 高速缓存做为CPU不可分割的一部分 , 已经融入到性能提升的考虑因素当中 , 伴随生产技术的进一步发展 , 缓存的级数还将增加 , 容量也会进一步提高 。 作为CPU性能助推器的高速缓存 , 仍会在成本和功耗控制方面发挥巨大的优势 , 而性能方面也会取得长足的发展 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
