交换空间和cpu缓存之间有什么区别?

时间:2019-05-05 09:53:18

标签: memory-management cpu cpu-architecture

当我搜寻有关TLB与CPU缓存的信息时,我发现了这张图。 根据虚拟内存机制,如果我们找不到物理内存或磁盘缓存中的内容,CPU将在磁盘(交换位置)中查找内容。也就是说,如果我们扩展此图片,则应在主内存中绘制磁盘缓存,并在主内存之后绘制磁盘。我是否正确理解它们? 参考:CPU缓存和TLB之间有什么区别

1 个答案:

答案 0 :(得分:2)

有关CPU缓存的所有信息与交换空间不同/相反。硬件管理与软件管理相比,在管芯上与DRAM相比“相距甚远”。

如果您考虑使用虚拟内存的旧方法(建议使用交换空间= 2x DRAM的日子),并且您有一个操作系统真正为所有虚拟内存分配分配了交换空间作为备份: / p>

我想您可以将主存储器看作是CPU缓存的后备存储,类似于交换空间是匿名内存页面的后备存储的方式。 (即,未将内存映射到磁盘上的文件。)

尽管如此,页面错误的手动软件管理和软件可见性确实意味着存在重大差异。

最重要的一个是 CPU缓存(通常)基于物理地址进行缓存,而交换空间纯粹是关于虚拟地址空间的。您永远不能在物理地址空间中拥有交换空间(除非使用内存映射的非易失性存储,例如NV-DIMM ...)