【发布时间】:2014-02-21 02:19:06
【问题描述】:
为什么缓存分为两级(L1&L2)而不是一个完整的缓存?是因为它节省时间吗?我觉得我错过了什么
【问题讨论】:
标签: caching cpu-architecture cpu-cache
为什么缓存分为两级(L1&L2)而不是一个完整的缓存?是因为它节省时间吗?我觉得我错过了什么
【问题讨论】:
标签: caching cpu-architecture cpu-cache
因为快速缓存很昂贵(L1 比 L2 快于 L3 ...)。通过将其分成层,您可以以相对较低的成本扩展缓存的大小。即使是“slow”缓存也会比从 RAM 内存(或者更糟的是 HDD)中检索数据快几个数量级。存在有效的启发式方法来猜测哪些数据应该在哪个级别的缓存中。更多信息可在此处的答案中找到:What is "cache-friendly" code?
以下关于 Herb Sutter talking about caching 的视频包含大量关于缓存的非常有用的信息(它在 12 分钟左右变得与这个问题特别相关)。
【讨论】: