有谁知道为什么在今天的大多数处理器中都有几层缓存。像L1 L2和L3。为什么处理器不能处理一个大的L1缓存?
没有多层缓存会增加缓存协议的复杂性吗?
答案 0 :(得分:4)
模具尺寸。 L1通常在模具上;在模具上没有大容量缓存的空间。 L2 / 3有自己的模具,可以更大,处理方式也不同。
速度; L1建立时需要权衡最大速度,而L2 / 3则不必积极加速。
也是多核的。现代多核处理器为每个核心提供了自己的L1速度,但它们共享部分或全部其他缓存以保持一致性。
也就是说,PA-RISC处理器已经构建了“让我们只做一个大的L1缓存”的方法。它们很贵。
答案 1 :(得分:3)
为什么处理器无法处理一个大的L1缓存?
处理器缓存越大,延迟就越长。还有实际和成本考虑因素,因为较大的高速缓存占用芯片上更多的物理空间。在一定的大小之后,您将失去太多的缓存加速,以便进一步增加缓存大小。因此,最终,大型缓存变得不合需要。
仍然需要大容量缓存的处理器设计可以通过具有多个缓存级别来进行权衡。你从一个小而快的缓存开始,逐渐回到连续未命中的更大,更慢的缓存。
答案 2 :(得分:0)
在今天的架构中,你有多个CPU /核心访问内存。 L3缓存是在所有CPU之间共享的缓存缓存。这减少了需要通过内存总线的数据量,这通常是一个好主意。如果您愿意,可以查看:https://imgur.com/gallery/aBKD0Fv,其中显示了图层的组织方式以及它们是如何随时间演变的。