- 2
- 0
- 约1.15千字
- 约 2页
- 2022-03-01 发布于浙江
- 举报
PAGE
PAGE 1
CPU一级缓存与二级缓存深度分析
CPU内核集成的缓存称为一级缓存(L1 cache),而外部的称为二级缓存(L2 Cache);后来随着生产技术的不断提高,最终二级缓存也被挪进了CPU当中。通常一级缓存中还分数据缓存(Data Cache, D-Cache)和指令缓存(Instruc(ti)on Cache, I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,削减了争用Cache所造成的冲突,提高了CPU效能。 CPU的一级缓存通常都是静态(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的效率,从某种意义上说,预取效率的提高,大大降低了生产成本却供应了特别接近抱负状态的性能。除非某天生产技术变得特别强,否则内存仍会存在,缓存的性能递增特性也仍会保留。 !--
原创力文档

文档评论(0)