【问题标题】:Nehalem memory architecture address mappingNehalem 内存架构地址映射
【发布时间】:2010-11-15 10:30:12
【问题描述】:

给定一台配备 12GB RAM (6x2GB) 的 2 处理器 Nehalem Xeon 服务器,内存地址如何映射到物理内存模块上?

我想在具有 3 个相同内存模块的单个处理器 Nehalem 上,地址空间将在模块上进行条带化,以提供更好的内存带宽。但是有什么样的条纹尺寸?第二个处理器(+内存)如何改变这种情况?

【问题讨论】:

  • 堆栈溢出是问这个问题的正确地方吗?还有更好的地方吗?

标签: memory memory-address nehalem


【解决方案1】:

英特尔对此不是很清楚,您必须深入研究他们的核心技术文档才能了解所有细节。这是我的理解。每个处理器都有一个集成的内存控制器。一些 Nehalem 有三通道控制器,一些有双通道控制器。每个内存模块都分配给一个处理器。三通道意味着访问在三个模块组之间交错,双通道 = 两个组。

特定的交错模式在某种程度上是可配置的,但考虑到它们的设计,您最终会得到 64 到 256 字节的条纹几乎是不可避免的。

如果其中一个处理器想要访问附加到某个其他处理器的 IMC 的内存,则访问会通过这两个处理器并产生额外的延迟。

【讨论】:

  • 你知道两个处理器的地址空间是否交错吗?也就是说,第一个处理器(在这种情况下有一个三通道内存控制器,因此有三个内存模块)控制地址空间的前半部分,而第二个处理器控制其余部分,还是地址空间以某种方式交错?跨度>
  • 这应该取决于 BIOS 和/或操作系统。阅读 NUMA。
  • 我有一些关于 NUMA 的图片,但我希望了解有关英特尔实施的一些细节。
猜你喜欢
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 1970-01-01
  • 2019-02-19
相关资源
最近更新 更多