交换 space 和 cpu 缓存有什么区别?
What is the differences between swap space and cpu cache?
当我在谷歌上搜索 TLB 与 CPU 缓存时,我找到了这张图。
根据虚拟内存机制,如果我们在物理内存或磁盘缓存中找不到东西,CPU会在磁盘(交换位置)中寻找东西。也就是说,如果我们扩展这张图,在主存里面应该画一个磁盘缓存,在主存之后画一个磁盘。我理解正确吗?
关于 CPU 缓存的一切 与交换 space 不同/相反。硬件管理与 SW 管理,裸片上与甚至 "farther" 距离 DRAM。
如果您考虑一种处理虚拟内存的旧方法(回到建议交换 space = 2x DRAM 的时代),并且您有一个真正分配交换的 OS space 作为所有虚拟内存分配的支持:
我想您可以将主内存视为 CPU 缓存的后备存储,类似于交换 space 是匿名内存页的后备存储。 (也就是说,这不是内存映射到磁盘上的文件。)
页面错误的手动软件管理和软件可见的性质确实意味着存在重大差异。
最重要的一个是 CPU 缓存(通常)缓存基于 物理 地址,而交换 space纯粹是关于虚拟地址space。您永远不能在物理地址 space 中交换 space(除了内存映射的非易失性存储,如 NV-DIMM...)
当我在谷歌上搜索 TLB 与 CPU 缓存时,我找到了这张图。
根据虚拟内存机制,如果我们在物理内存或磁盘缓存中找不到东西,CPU会在磁盘(交换位置)中寻找东西。也就是说,如果我们扩展这张图,在主存里面应该画一个磁盘缓存,在主存之后画一个磁盘。我理解正确吗?
关于 CPU 缓存的一切 与交换 space 不同/相反。硬件管理与 SW 管理,裸片上与甚至 "farther" 距离 DRAM。
如果您考虑一种处理虚拟内存的旧方法(回到建议交换 space = 2x DRAM 的时代),并且您有一个真正分配交换的 OS space 作为所有虚拟内存分配的支持:
我想您可以将主内存视为 CPU 缓存的后备存储,类似于交换 space 是匿名内存页的后备存储。 (也就是说,这不是内存映射到磁盘上的文件。)
页面错误的手动软件管理和软件可见的性质确实意味着存在重大差异。
最重要的一个是 CPU 缓存(通常)缓存基于 物理 地址,而交换 space纯粹是关于虚拟地址space。您永远不能在物理地址 space 中交换 space(除了内存映射的非易失性存储,如 NV-DIMM...)