【问题标题】:Memory Coalescing with Physical address or Virtual address?内存与物理地址或虚拟地址合并?
【发布时间】:2016-11-23 22:45:21
【问题描述】:

我研究了一些有关内存合并的论文和书籍,但是,我仍然对是否合并具有 虚拟地址 的内存请求或具有 物理地址 的内存请求感到困惑strong> 会合并吗?

由于内存合并旨在减少对内存设备的内存访问,因此可以减少延迟。而这个过程一般是由MMU(内存管理单元)来实现的。但是我没有找到任何明确的断言表明它将内存请求与虚拟或物理地址合并。但考虑到它的用途,虚拟地址转换为物理地址后可能不相邻。所以,我猜它指的是物理地址。

有人熟悉这个领域吗?先谢谢了!!!

【问题讨论】:

    标签: caching memory cpu


    【解决方案1】:

    为了合并,地址必须本地接近(读取:彼此相邻1在主内存中,所以它们必须是物理地址。

    但在大多数架构中,只要不跨越页面边界,连续的虚拟地址也是连续的物理地址2

    当跨页边界时,无法保证物理地址是连续的,甚至无法保证硬件支持合并。

    虽然每个架构都是独一无二的,从这个意义上说,您的问题没有通用答案,但内存合并是负责与内存通信的单元的一个功能。 因此,它发生在比 MMU 操作更低的级别,并且对它们是透明的。


    1 不同的内存架构有不同的“后续”或“关闭”地址的概念。

    2 在页面大小为 4KiB 的系统中,访问 0ffeh0fffh1000h1001h 的线程跨越页面边界在 0fffh1000h 之间,因为这两个地址属于不同的页面。然而,无论映射如何,00feh00ffh0100h0101h 始终是连续的。

    【讨论】:

      猜你喜欢
      • 2013-05-05
      • 2014-09-06
      • 2015-05-04
      • 2010-09-26
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多