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


为了保证CPU访问时有较高的命中率, Cache中的内容应该按一定的算法替换 。 一种较常用的算法是“最近最少使用算法”(LRU算法), 它是将最近一段时间内最少被访问过的行淘汰出局 。 因此需要为每行设置一个计数器, LRU算法是把命中行的计数器清零, 其他各行计数器加1 。 当需要替换时淘汰行计数器计数值最大的数据行出局 。 这是一种高效、科学的算法, 其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出Cache, 提高Cache的利用率 。 缓存技术的发展
总之, 在传输速度有较大差异的设备间都可以利用Cache作为匹配来调节差距, 或者说是这些设备的传输通道 。 在显示系统、硬盘和光驱, 以及网络通讯中, 都需要使用Cache技术 。 但Cache均由静态RAM组成, 结构复杂, 成本不菲, 使用现有工艺在有限的面积内不可能做得很大, 不过, 这也正是技术前进的源动力, 有需要才有进步!
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缓存架构中最为重要的部分 。

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