caching - 为什么会有多层缓存

标签 caching

有谁知道为什么在当今的大多数处理器中都有多层缓存。像 L1 L2 和 L3。为什么处理器不能使用一个大的 L1 缓存?

多层缓存不是增加了缓存协议(protocol)的复杂性吗?

最佳答案

模具尺寸。 L1 通常是片上的;片上没有大缓存的空间。 L2/3 有自己的芯片,可以更大,处理方式也不同。

还有速度; L1 是在权衡最大速度的基础上构建的,而 L2/3 不必如此激进地加速。

也是多核的。现代多核处理器为每个内核提供了自己的 L1 以提高速度,但它们共享部分或全部其他缓存以实现一致性。

也就是说,PA-RISC 处理器是用“让我们做一个大的 L1 缓存”的方法构建的。它们很贵。

关于caching - 为什么会有多层缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9648107/

相关文章:

iphone - Cocos2d、iOS : what is the correct way to remove sprites from cache?

c - iPhone内存操作性能

javascript - Service Worker 从缓存中获取然后更新缓存

database - 在 Golang 中缓存数据库结果( revel )

amazon-web-services - AWS Elasticache 与 API 网关缓存

php - 减少包含文件的数量

docker --cache-from 与 BUILDKIT_INLINE_CACHE 不是每两次都工作

ios - 为 UITableViewCell 创建了图像缓存,但只显示一张图像

java - 在 Java 中使用 LRU 逐出策略缓存一组字符串

django - 我如何强制 nginx 使用来自上游服务器的 header 将响应保存在缓存文件夹中?