首页 > 编程知识 正文

cache/主存系统的效率(cpu二级缓存重要吗)

时间:2023-05-06 14:48:57 阅读:83310 作者:4913

点击上面的“java全栈技术”关注,每天学习一个java知识点

CPU缓存:通过优化的加载机制,CPU加载缓存的命中率可以非常高。 大多数CPU可以达到90%左右。 也就是说,CPU下一次读取的数据的90%位于缓存中,大约只有10%需要从内存中读取。 这样可以节省CPU直接读取内存的时间,在CPU读取数据的时候几乎不需要等待。

一般来说,CPU读取数据的顺序是先缓存,然后内存。

集成在CPU核心中的缓存称为l1缓存(l1缓存),外部的称为l2缓存。 之后,随着生产技术的提高,l2缓存最终也转移到了CPU上。 主缓存通常还包括数据缓存(数据缓存、D-Cache )和指令缓存) Instruction Cache、I-Cache。 存储数据并分别用于执行这些数据的命令,可以通过CPU同时访问,从而减少Cache争用引起的争用,提高CPU性能。

CPU的l1缓存通常在静态RAM中速度非常高,但静态RAM集成度低(存储相同的数据,静态RAM的体积是动态RAM的6倍),价格也比较昂贵(同容量的静态RAM是动态RAM,

虽然将静态RAM作为高速缓存进行扩展不太合算,但必须扩展高速缓存以提高系统性能和速度。 这有折中的方法。 只需添加几个高速动态RAM作为L2级缓存,而不增加原始静态RAM的缓存容量。 动态RAM的速度比普通动态RAM快,但比原始静态RAM缓存慢,成本也适中。 l1缓存和l2缓存的内容是内存中经常访问的数据的副本(映射),其存在目的是为了减少高速CPU对低速内存的访问。

二级高速缓存是CPU性能的关键之一,可以通过增加二级高速缓存的容量而无需更改CPU内核来大幅提高性能。 另外,可以看到,l2缓存对CPU很重要,因为在同一内核的CPU的低级和低级中,l2缓存往往存在差异。

CPU在缓存中找到有用的数据称为命中,如果缓存中没有CPU需要的数据(在这种情况下称为未命中),则CPU访问内存。 理论上,具有l2缓存的CPU,l1缓存的读取命中率为80%。 也就是说,从CPU的l1缓存中发现的有用数据占数据总量的80%,剩下的20%从l2缓存中读取。 由于无法准确预测要执行的数据,因此l2缓存的读取命中率也只有80%左右。 (有助于从l2缓存读取的数据占总数据的16%。 那么,有些数据必须从内存中调用,但这已经是很小的比例了。

目前的高端CPU也有l3缓存,专为读取l2缓存后未命中的数据而设计。 拥有l3高速缓存的CPU中,只有约5%的数据需要从内存中调用,从而进一步提高CPU的效率,从某种意义上说提高了预取效率,降低了生产成本,但提供了接近理想的性能。 除非有一天生产技术变得非常强大,否则内存仍然存在,并且缓存性能的增长特性也会保持不变。

文章转载:建筑师的顶点

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。