Wonder what double-sided RAM is and how it compares to single-sided RAM? We’ve got you covered!
If you’ve ever installed RAM in your computer, you’ve probably noticed that some modules have chips on both sides of the circuit board, while other modules have chips only on one side. This is commonly referred to as “single-sided” or “double-sided” RAM.
Aside from the obvious difference in physical layout, you might be wondering if there are any differences in performance or compatibility associated with these two different topologies.
This quick guide will cover everything you need to know about double-sided RAM.
What Actually Matters with RAM
First and foremost, it’s important to emphasize that whether a RAM module is single-sided or double-sided is actually mostly meaningless in the modern day. What actually matters is RAM “rank”, which is the configuration of RAM chips on the RAM module circuit board.
To understand what rank is and why it matters, we first need to lay out some terminology:
Rank
In RAM terminology, a rank is a set of RAM chips connected to the same chip select, meaning basically that they are all accessed at the same time by the memory controller. Each rank has a data bus 64 bits wide.
Each individual RAM chip also has a data bus, and usually these are 8 bits wide. This means that a rank of 8-bit RAM chips will be comprised of 8 physical chips. This is why you’ll typically see 8 chips on each populated side of a RAM module.
A less common scenario is where the RAM chips have 16-bit buses; in that case each rank would be comprised of 4 physical chips.
“Rank” therefore refers to the physical configuration of RAM chips on the RAM module circuit board. A RAM module having only one rank is referred to as “single rank” and a RAM module having two ranks is referred to as “dual rank”.
Less common configurations of four ranks, or “quad rank”, and eight ranks, or “octal rank”, are also possible. Quad and octal rank modules are typically only used in server systems.
Single-Sided and Double-Sided RAM
As mentioned previously, this refers to how many sides of the RAM module circuit board are populated with RAM chips. These are actually antiquated terms for how RAM used to be designed.
Usually, but not always, single-sided modules were single rank and double-sided modules were dual rank. Unless it relates to rank, whether a module is single-sided or double-sided is completely inconsequential in terms of system performance.
Row
“Row” is often used as a pseudonym for rank. Many motherboards limit the number of rows of memory that can be installed to some number smaller than the possible number of rows if all memory slots are populated.
Single rank RAM modules count as one row and dual rank modules count as two rows. If a motherboard has four memory slots and limits installed memory to five rows, for example, that means you could install single rank RAM modules in all four memory slots (for a total of four rows).
Installing two dual rank modules occupies four rows, leaving only one row available. You could install at most one more single rank module in that system for a total of five rows.
Slot
This is the physical connector that a RAM module is installed in. Slots are often also referred to as “sockets” in motherboard documentation.
Slots and sockets are not important to this discussion except for the point that they shouldn’t be confused with rank or row.
Channel
Memory channels are the links between your RAM and your CPU through which data moves between the two. As with slots, channels are not important to this discussion; just don’t confuse them with any of the other terms we’ve outlined.
P.S. – We also recently covered whether or not brand actually matters when it comes to RAM.
Single, Dual, Quad, & Octal Rank: What’s the Difference?
Now that we’ve outlined what rank is, does it matter whether we install single, dual, quad, or octal rank RAM in our system? The short answer is that the effect of rank on performance is often nuanced as well.
We can better understand these nuances by looking at the three topics – overhead, interleaving, and page access.
Overhead
As noted earlier, the RAM data bus is 64 bits wide, and each rank is also 64 bits wide. The key implication of this is that the memory controller can only access one rank at a time.
Whenever the memory controller has to switch between ranks, it has to perform certain actions, and these actions take time. This time is often referred to as overhead.
It therefore follows that, due to the additional overhead, a memory controller in a dual rank system will take slightly longer to accomplish a given task than it would in a single rank system. One such source of overhead is something called a “pipeline stall”.
While pipeline stalls are a complex topic outside the scope of this article, they can be sufficiently defined for our purposes as delays associated with reading a memory location after writing to a location, and vice-versa. This leads to a small performance reduction for multi-rank systems as they require some pipeline stalls between accessing different ranks.
For two ranks on a single RAM module a pipeline stall might not even be required, but this parameter is often programmed independently of the rank location in the system.
Pipeline stalls are relatively negligible delays, but they are one example of many delays that add up to create the overhead in a multi-rank system.
Interleaving
One way in which overhead can be significantly compensated for is the technique of interleaving. In a computer system, memory is organized into banks.
For the purposes of this article we will broadly define a memory bank as a unit of storage determined both by the physical hardware of the RAM module and by the way in which the memory controller organizes it.
Each time the memory controller accesses any location in a bank, it must then wait for some amount of time before accessing another location within that bank. If an operation calls for physically adjacent memory addresses to be accessed successively, defined as a “contiguous” operation, the memory controller will have to wait between accessing each memory address.
If, however, the addresses are spread out among multiple memory banks, the memory controller can access one address and then move on to the next address, located in a different bank, without waiting for access. This process is known as interleaving.
Just as the memory controller can perform interleaving with memory banks, it can also do so with multiple ranks.
For example, the controller can send write data to one rank while it awaits read data previously selected from another rank. While the write data is consumed from the data bus, the other rank could perform read-related operations such as the internal transfer of the data to the output drivers.
Once the bus is free, the RAM module can drive out the read data. In this way, overhead associated with multiple ranks is mitigated.
Page Access
The memory controller accesses RAM by a unit called a page. While being used by the memory controller the page is open.
Multi-rank modules allow several open pages simultaneously. This increases the likelihood that the memory controller will access a page that is already open.
This can provide a performance boost, since the memory controller may not have to reopen the page before accessing it. With that being said, it’s important to note that any possible performance boost is highly dependent on (1) the application and (2) the specific memory controller and its ability to take advantage of open pages.
Compatibility Issues With Mixing Ranks
Can you mix RAM modules of different ranks? The short answer to this question is yes, however there are some possible pitfalls. Many motherboards have specific requirements for what order the different rank modules are installed; if these requirements are violated the memory may not function as expected or at all.
Additionally, if ranks are mixed, the interleaving behavior of the memory controller may revert to that of the lowest rank.
For example, if a single rank module and a dual rank module are installed in the same system, the memory controller may interleave as though all modules are single rank. This could negate the performance boost of having dual rank modules.
Final Recommendations
Hopefully this guide helped to dispel the mystery of “single-sided” and “double-sided” RAM while familiarizing you with the concept of rank and how it may affect your system.
It’s important to reiterate that the number of sides of a RAM module populated with chips is inconsequential. Rather, we are concerned with the rank of the module.
While there are some complex topics involved in its use, rank is primarily a way for RAM module manufacturers to fit more RAM chips onto a single module.
And while there is a small amount of overhead associated with accessing different ranks, interleaving and page access techniques employed by the memory controller largely mitigate this overhead.
What’s more, depending on your memory controller and the specific application, you may end up experiencing a performance boost with a multi-rank system.
Just be careful when mixing modules of different rank, as this may keep your memory controller from capitalizing on the added ranks.