Memory – DIMMs: Single vs. Double vs. Quad Rank

hardwarememory

What difference does the 'Rank' of DIMMs make to server memory? For example, when looking at server configurations I see the following being offered for the same server:

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

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

Given the option of Single Rank vs. Dual Rank or Dual Rank vs. Quad Rank is one always:

  • Faster?
  • Cheaper?
  • Higher Bandwidth?

Here's what IBM has to say (page 7) on the subject, at least regarding their HS22s:

It is important to ensure that DIMMs
with appropriate number of ranks are
populated in each channel for optimal
performance. Whenever possible, it is
recommended to use dual-rank DIMMs in
the system. Dual-rank DIMMs offer
better interleaving and hence better
performance than single-rank DIMMs.

For instance, a system populated with
six 2GB dual-rank DIMMs outperforms a
system populated with six 2GB
single-rank DIMMs by 7% for
SPECjbb2005. Dual-rank DIMMs are also
better than quad-rank DIMMs because
quad-rank DIMMs will cause the memory
speed to be down-clocked.

Another important guideline is to
populate equivalent ranks per channel.
For instance, mixing one single-rank
DIMM and one dual-rank DIMM in a
channel should be avoided.


Ultimately, the effect of the number of memory ranks is specific per server/chipset. For example, on IBM's x3850X5 servers more ranks is better (see §3.8.4):

With the Xeon 7500/6500 processors in the x3850 X5, having more ranks gives better
performance. The reason is because of the addressing scheme, which can extend the pages
across ranks thereby making the pages effectively larger and therefore more page-hit cycles.

Best Answer

Wikipedia has a fairly good explanation of rank (link). I'd say RamCity (a vendor for Kingston memory) has a more succint explanation on ranks (link):

A memory rank is, simply put, a block or area of data that is created using some or all the memory chips on a memory module.

A rank must be 64 bits of data wide; on memory modules which support Error Correction Code (ECC), the 64-bit wide data area requires an 8-bit wide ECC area for a total width of 72 bits. Depending on how memory modules are engineered, they can contain one, two, or four areas of 64-bit wide data areas (or 72-bit wide areas, where 72 bits = 64 data bits and 8 ECC bits).

The article goes on mentioning price variation:

Why do the single- and dual-rank memory modules vary in price?

In general, single-rank memory modules are built using x4 (“By 4”) DRAM chips and are more expensive than dual-rank memory modules (which are built using x8 DRAM chips); both module types have the same number of chips but the x4 DRAMs are more expensive than x8 DRAMs. Dual-rank memory modules may limit future upgradeability and capacity of servers when using PC2700 or PC2-3200 memory. This tradeoff between memory cost and capacity is important to consider when purchasing memory modules for Intel Lindenhurst-based servers.

In terms of performance, I'd refer to wikipedia:

The ranks cannot be accessed simultaneously as they share the same data path.

So to sum up everything, it appears that ranks have more to do with density and pricing than actual performance. Granted, I'm working off of generalized statements from a vendor and wikipedia, I don't think most people put much effort into researching ranks. All that matters (for most server admins) is that RAM have matching ranks. I don't think it's an actual specification or requirement but it helps keep some consistency and keeps memory interchangeable within a number of similar servers.

Keep in mind that most servers are upgradeable and RAM density has a large part in factor. It's best (albeit more expensive) to get the more dense RAM for servers to make room for future upgrades.