DIMM:单列、双列与四列

Mik*_*eyB 56 hardware memory

DIMM 的“等级”对服务器内存有何不同?例如,在查看服务器配置时,我看到为同一服务器提供以下内容:

2GB (1x2GB) Single Rank PC3-10600 CL9 ECC DDR3-1333 VLP RDIMM

2GB (1x2GB) Dual Rank PC3-10600 CL9 ECC DDR3-1333 VLP RDIMM
Run Code Online (Sandbox Code Playgroud)

鉴于单列与双列或双列与四列的选项总是一个:

  • 快点?
  • 更便宜?
  • 更高的带宽?


以下是IBM对这个主题的评论(第 7 页),至少是关于他们的 HS22:

确保在每个通道中填充具有适当数量的 DIMM 以获得最佳性能非常重要。只要有可能,建议在系统中使用双列 DIMM。双列 DIMM 提供更好的交错,因此比单列 DIMM 具有更好的性能。

例如,在 SPECjbb2005 中,装有 6 个 2GB 双列 DIMM 的系统的性能比装有 6 个 2GB 单列 DIMM 的系统高 7%。双列 DIMM 也优于四列 DIMM,因为四列 DIMM 会导致内存速度降低。

另一个重要的准则是为每个通道填充等效的等级。例如,应避免在一个通道中混合使用一个单列 DIMM 和一个双列 DIMM。


最终,内存列数的影响是特定于每个服务器/芯片组的。例如,在 IBM 的 x3850X5 服务器上,等级越高越好(参见 §3.8.4):

借助 x3850 X5 中的至强 7500/6500 处理器,拥有更多列数可提供更好的性能。原因在于寻址方案,它可以跨行扩展页面,从而使页面有效地更大,因此页面命中周期更多。

osi*_*2is 43

维基百科对排名有相当好的解释(链接)。我想说 RamCity(金士顿内存的供应商)对排名有更简洁的解释(链接):

简单地说,内存列是使用内存模块上的部分或全部内存芯片创建的数据块或区域。

秩必须是 64 位数据宽;在支持纠错码 (ECC) 的内存模块上,64 位宽的数据区需要 8 位宽的 ECC 区,总宽度为 72 位。根据内存模块的设计方式,它们可以包含一个、两个或四个区域的 64 位宽数据区域(或 72 位宽区域,其中 72 位 = 64 个数据位和 8 个 ECC 位)。

文章继续提到价格变化:

为什么单列和双列内存模块价格不同?

一般来说,单列内存模块使用 x4 (“By 4”) DRAM 芯片构建,比双列内存模块(使用 x8 DRAM 芯片构建)更昂贵;两种模块类型具有相同数量的芯片,但 x4 DRAM 比 x8 DRAM 贵。当使用 PC2700 或 PC2-3200 内存时,双列内存模块可能会限制服务器的未来升级能力和容量。在为基于 Intel Lindenhurst 的服务器购买内存模块时,必须考虑内存成本和容量之间的这种权衡。

在性能方面,我会参考维基百科:

由于它们共享相同的数据路径,因此无法同时访问这些列。

因此,总而言之,排名似乎更多地与密度和定价有关,而不是实际性能。诚然,我正在处理来自供应商和维基百科的概括性陈述,我认为大多数人并没有在研究排名方面投入太多精力。重要的(对于大多数服务器管理员)是 RAM 具有匹配的等级。我不认为这是一个实际的规范或要求,但它有助于保持一定的一致性并保持内存在许多类似服务器中的可互换性。

请记住,大多数服务器都是可升级的,而且 RAM 密度在很大程度上是影响因素。最好(虽然更贵)为服务器获得更密集的 RAM,以便为未来的升级腾出空间。

  • 作为对此的补充;在某些服务器上排名确实很重要。以戴尔 R710 为例 - 如果您使用四列 RAM,则只能填充 A 通道(从内存中)并保持完整的 RAM 速度。如果您使用四列 RAM 填充 A 和 B,则 RAM 速度会下降到 800Mhz,并且您根本无法使用 C 通道*。因此,排名可能非常重要。 (3认同)
  • 我一直被告知要使用双列而不是单列。实际上,您的陈述“似乎列与密度和定价的关系比实际性能更多”,这与 IBM 在问题中的陈述不一致,“双列 DIMM 提供更好的交错,因此比单列 DIMM 提供更好的性能”。所以现在我很困惑。 (3认同)

小智 24

原则上,内存排序可以被认为是模块上的内存存储。它具有相同的限制效果,原则上差别不大。

您一次只能访问一个内存通道上的一个内存列,并且无法比安装唯一的单列芯片更快地从/向通道读/写。

内存排序背后的主要思想 - 在单插槽模块中配备更多内存,减少所需的银行数量。

与内存银行相同,您安装的模块(列)越多,允许的内存速度越慢。

一般来说,两列内存(两个单列模块或一个双列)不会影响内存速度(甚至可以将内存生产率提高到10%左右)。

四列(一个四列、两个双列或四个单列)将要求一步降低内存速度(使总生产力与唯一的单列模块大致相同)。

八级(如果支持) - 分两个步骤(与单个单级模块相比,整体生产力低约 10%)。

可以说你在内存量上交换内存速度。

  • 这是一些很好的信息 - 你能引用任何参考资料吗? (4认同)

小智 5

据我所知,单列 DIMM 比双列 DIMM 贵。为了在 Single Rank DIMM 上封装相同数量的内存,制造商必须使用更大容量的芯片来弥补。这就是单列 DIMM 往往更贵的原因。

我相信 Rank 与 DIMM 上芯片的连接器数量有关。由于连接器的数量有限。为了以更低的成本安装更多的内存,他们在一个 DIMM 上使用了两个 bank,这样他们就可以使用更小的芯片来实现相同数量的内存。这就是为什么我们可以在不填满所有内存插槽的情况下运行银行的原因。