跳转到主要内容

为什么CPU有多层缓存?

Lee_ /

这是来自于‘jlforrest’的一位读者的提问,我认为值得更详细的解答。以下是他的问题:

● 我理解缓存,但不明白为什么需要多层缓存而不是直接用一层大的。换句话说,如果一级缓存是32K,二级256K,三级2M,为什么不用32K+256k+2M的一级缓存?

简短的回答是不同的缓存级别适用于不同的目的和限制,在设计上完全不同。经验上,随着缓存级别的增加,缓存变得更大,更慢,密度更高,每单位存储消耗的电能更少,能处理更多的任务。

为了把这个问题讲得更直观,我打算用一个有点奇怪但很精巧的类比:

<strong>缓存的故事</strong>

假设你是一位六十年代的白领,在巨大的办公楼里工作,没有电脑,你需要阅读大量的文件并且交叉检索这些文档。

你有一个办公桌(L1 缓存)。桌上的文件是你正在手头处理的资料,还有一些是你最近看过的或者你准备阅读的。通常我们需要阅读文件的每一页(对应于存储单元的一个字节),但除非它们在办公桌上,文件都是作为一个整体。即只想看某一页的内容,我们也必须把整份文件抓过来。