Caching 数据在处理之前是否从RAM通过缓存(L3、L2、L1)?

Caching 数据在处理之前是否从RAM通过缓存(L3、L2、L1)?,caching,memory-management,operating-system,Caching,Memory Management,Operating System,我一直在读关于缓存的书,我从Quora这里找到了一个有趣的答案 但在这里,我有点困惑,如果CPU想要处理来自RAM的数据,那么它是否会像这样通过: CPU缓存的定义是,它是一种比其下面的内存具有更低延迟(更快)的内存结构。除此之外,您还可以按照任何方式设计缓存系统。例如,从主存加载数据块时,可以将其加载到缓存层次结构的所有级别,然后将该块的请求部分加载到寄存器中。具体细节取决于微体系结构。此外,指令缓存和数据缓存可以有不同的策略。我建议您看看这个问题:谢谢@PatrickTrentin,但现在

我一直在读关于缓存的书,我从Quora这里找到了一个有趣的答案

但在这里,我有点困惑,如果CPU想要处理来自RAM的数据,那么它是否会像这样通过:


CPU缓存的定义是,它是一种比其下面的内存具有更低延迟(更快)的内存结构。除此之外,您还可以按照任何方式设计缓存系统。例如,从主存加载数据块时,可以将其加载到缓存层次结构的所有级别,然后将该块的请求部分加载到寄存器中。具体细节取决于微体系结构。此外,指令缓存和数据缓存可以有不同的策略。

我建议您看看这个问题:谢谢@PatrickTrentin,但现在我更困惑了,比如缓存也有数据和指令缓存这样的类型,而且仍然不清楚数据是否通过缓存移动。一般来说,数据和指令都在可能的情况下通过缓存移动,在某些情况下,它们的缓存是分离的,而在另一些情况下是统一的。如果你在谷歌上搜索,网上有很多参考资料。:)@帕特里克特伦丁。。是的,我在谷歌上搜索过,也读过一本关于操作系统的书,现在我想可能是CPU第一次从RAM中读取数据,然后将数据存储到高速缓存中,这对于更快的访问是经常需要的。存储数据/指令取决于缓存的大小(L1,…),但优先级肯定是L1,但我写的只是猜测,我不确定。你认为呢?是的,你是对的,如果CPU需要一条来自某个地址的指令,它会先检查缓存(通过所有级别),如果找不到它,它会进入主内存获取该指令,然后指令字也会传递给CPU和缓存,对吗?我的意思是,这是一个概念,正如你所说,它同样取决于体系结构:)我认为这个答案描述了“包容性缓存”;也可能存在“独占缓存”,其中缓存线只能存在于单个缓存级别中。或者我想我在乌尔里希·德雷珀2007年的论文(第16页)中读到了类似的内容。尽管包容性缓存很常见。我只是举个例子。答案中最重要的部分是“这是一个特定于设计的方面”。@wil还有一些既不包含也不排斥的缓存。有很多很多选择。谢谢你的精确性,我还没有完全理解这些定义。我也不知道所有可能的架构。