DRAM 高速缓存未命中

DRAM cache miss

我读了一段关于 DRAM(主内存)高速缓存未命中和 SRAM(L1、L2、L3)高速缓存未命中的段落,我不确定它是什么意思。

Since DRAM is slower than SRAM, the cost for cache misses is expensive because DRAm cache misses are served from disk, while SRAM cache misses are usually served from DRAM based main memory.

这是我的理解: 如果 DRAM 中存在高速缓存未命中,它将进入磁盘(第二内存)以查找数据。而如果 SRAM 中有缓存未命中,它会进入 SRAM 中查找数据。

你能告诉我我是对还是错吗?

一般来说,如果 L 关卡未命中,您必须再往下一层 L+1

典型的内存层次结构包括以下级别,从 0 开始:

  • 处理器寄存器
  • 处理器高速缓存 (SRAM)
  • 系统内存 (DRAM)
  • 大容量存储(Flash/Spinning 台设备)

如果你想在本地寄存器中存储一些东西,你必须先从内存中取出它。

如果你的数据在处理器的缓存之一(SRAM),你不需要再往下走。但是,如果缓存未命中,则必须转到系统内存 (DRAM)

这里发生的情况是,您可能会尝试访问不在内存中的内存页,这可能是因为它从未被加载过,也可能是因为它在某个时候已被换出。您有一个 页面错误,您需要从存储设备中获取您的页面。一旦找到数据,此过程就会停止。

请注意,您希望尽可能避免访问慢速存储驱动器,因此您可以通过更快的设备(例如磁盘)在 DRAM 和旋转磁盘之间创建额外的缓存层。固态硬盘(ZFS L2ARC, bcache 等)