With hard drives, you can put them in a RAID 0 configuration to split data between drives to increase read and write speed. Is there an equivalent of this for RAM? If I have 16 GB of memory, for instance, can I split it into 2 8GB sections and implement striping across them? Note: I am not talking about using ramdisks at all. I am not trying to treat ram as hard drives but rather to speed it up. I have heard that there is a RAID 1 equivalent for RAM called mirroring, but I have not heard of a RAID 0 equivalent.
-
11en.wikipedia.org/wiki/Interleaved_memory– oakadMar 21, 2019 at 4:10
-
3You may need to look into benchmarks for this method FYI, SSD's and RAM sticks usually don't benefit from RAID configurations like HDD's do. I'm doubtful that RAM will see any speed up that's worth halving the amount of RAM you have.– SupaJordMar 21, 2019 at 15:59
4 Answers
Consumer-grade computers have supported this for years now. You don't have to enable it explicitly, but you have to install RAM sticks into the correct slots. Those are usually color coded, but there's no standard for this: some manufacturers mark slots on the same channel with the same color (so for dual-channel you have to use different colored slots), some use same color for slots that will enable dual-channel. Long story short, check with the manual.
Server-grade motherboards can support triple-channel or even quad-channel if the CPU can support it too. (see the comment by J...)
-
17The CPU must also support n-channel RAM to use it. Some motherboards which support quad-channel, for example, can also accomodate processor SKUs which do not. An i7-7740X in an X299 mobo is an example where the board supports quad channel but the CPU only dual.– J...Mar 21, 2019 at 11:12
-
1They're up to 6 channels now on the Scalable Xeon, 8 on EPYC, and up to 32 on Power9 Mar 23, 2019 at 18:52
It's called interleaving. Simple implementations use two banks of RAM (two separate RAM sticks) but I've seen motherboards with up to four banks interleaved.
Like Raid 0, it exploits the fact that the CPU is often much faster than RAM and that there are lots of instances where you are basically streaming data to and from RAM. The memory controller allows the CPU to initiate the next write without waiting for the current write to complete.
For reads it works a bit like DMA where the memory controller will be told to prefetch the next values from RAM before the current data read is complete.
-
Note that this is not something that you normally can just enable. If and when you use motherboards that support this feature you typically must install RAM of the same size and type in specific paired slots. Mar 21, 2019 at 9:43
-
1@kloddant Neither RAID-0 (striping), nor multi-channel, nor interleaving decrease amount of available memory, because there is no redundancy (unlike in higher RAIDs). Mar 21, 2019 at 14:50
-
1This is very low-level and must be implemented directly on RAM modules, right? Mar 21, 2019 at 14:51
-
2Not RAM modules. Typically these systems use standard RAM available at the time. What's needed is support from the motherboard and depending on the architecture the CPU (older systems with external memory controllers used to use generic CPUs but a lot of modern systems have integrated the memory controller) Mar 22, 2019 at 2:57
-
2@kloddant: No, you still have the total amount of RAM. The hardware just addresses them differently from what the CPU thinks of as memory. For example, the first RAM stick will hold all even addressed data: 0x00000000, 0x00000002, 0x00003284 and another stick will hold all odd addressed data: 0x00000001, 0x00000003, 0x00003285 etc. Mar 22, 2019 at 3:00
Yes, there's indeed an equivalent. But generally you just need to follow the instructions for your motherboard when adding RAM, and the setup will be automatic.
Technically this depends on your CPU, but in practice all CPU's that fit in the socket of your motherboard will use the same interface to RAM.
As the other answers have covered, this has already been available for over a decade.
The Core i7-920 was launched in Q4 2008 and supported tri-channel memory. https://ark.intel.com/content/www/us/en/ark/products/37148/intel-core-i7-940-processor-8m-cache-2-93-ghz-4-80-gt-s-intel-qpi.html
What the other answers do not cover is that 99% of people will not notice a difference. The biggest advantage for the average user is that dual-channel (or better) memory configurations help noticeably in gaming performance when using an:
- integrated GPU - https://www.youtube.com/watch?v=s_2Z208nDGE
- dedicated GPU - https://www.youtube.com/watch?v=-k5wA7EFwpo
If you look up specs for LGA 775 motherboards then you will find dual-channel support going back even further such as https://www.newegg.com/Product/Product.aspx?Item=9SIA4RE8205361