RAM (Random Access Memory) is one of those components of a PC on the face of which seems very simple. In reality, there are many nuances in its workings.
When shopping for RAM, what should you be looking at? Some factors to consider are speed, capacity, cost, number of RAM sticks, ECC etc etc.
Before we dive into each of these factors, let us first try to understand the different types of memory.
RAM can be classified into two : SRAM and DRAM.
SRAM (Static RAM) is typically used as caches for the CPU. These are L1(level 1), L2(level 2) and/or L3(level 3) caches that are located in a very close proximity to the CPU. These are very fast memories but in small quantities since they are expensive. These are soldered to the CPU die and cannot be upgraded or removed(typically). The data resident in these caches don’t need to be refreshed.
When the CPU is processing data, it first looks for the data in L1 cache. If it doesn’t find the data, then it looks for it in L2 and then in L3. If the CPU doesn’t find the data in the cache, then this is called a “cache miss”. If it does find it, then its called a “cache hit”. If there is a cache miss in all the caches, then the data is retrieved from the DRAM. The time it takes to access the data from the DRAM by the CPU is called “Latency”. L1 latency is the lowest/fastest and is higher/slower with L2 and L3 caches.
If want maximum performance, you definitely want to maximize on your vendors offerings of cache sizes.
If you really want to go in-depth and understand real-world numbers, I found this post interesting: https://stackoverflow.com/questions/4087280/approximate-cost-to-access-various-caches-and-main-memory
DRAM(Dynamic RAM) is the volatile memory that you can upgrade\replace in your PC. Data stored in DRAM can be thought of a presence or absence of electric charge on a capacitor on a chip.As time passes, these charges may leak away. An external circuitry is needed to restore the charge and this is called "memory refresh". This is needed for DRAM but not for SRAM.
So what are the different types of DRAM?
When I first built my first machine back in late 90s, RDRAM (Rambus Dynamic RAM) was very prevalent. Then came the SDRAM(Synchronous Dynamic RAM) and now in the present day, we have DDR(Double Data Rate SDRAM) [Not to be mistaken for Dance Dance Revolution!].
DDR RAM has evolved through DDR1, DDR2, DDR3 and presently DDR4 (DDR5 upcoming!)
So how does the DDR SDRAM work?
SDRAM (Synchronous Dynamic RAM) synchronizes with the CPU with a clock for every data fetch or write. SDRAM transfers data on one edge of the clock cycle. Where in a DDR SDRAM, the data transfer happens in both the low and high edge of the clock cycle.
The first important factor to note with DDR SDRAM is “Peak Transfer Rate”. The higher the number, the faster the RAM is.
Peak Transfer Rate
This tells you how many transfers RAM can do in one second to the CPU.
But you should also lookout for another specification called CAS Latency or CL. CAS (Column Address Strobe\Signal) basically tells you the amount time taken for the RAM to get the data from itself and place it on the outpins for it to be transported to the CPU. This is measured in number of clock cycles. For example, DDR 3 may have a CAS of 7 means it take 7 CPU clock cycles of waiting for the data to be available from RAM to be transported to the CPU. The lower the latency, the better the performance and more expensive as well!
Also note that you can have the same CAS latency in different generations of RAM. You may find CAS 14 in DDR3 and in DDR4 based on its manufacturer etc.
You may be confused to see that DDR4 has a much higher CAS latency than DDR3 generation of RAM. But because DDR 4 has a much higher speed/faster clock speed, the overall performance wins with DDR4. So its important to understand the number of clock cycles RAM takes to prepare the date for CPU consumption (CAS latency) but also the duration of each cycle.
So as a consumer, its left up to you compare speed, latency and cost for your own benefit.
The topic of latency is quite complex and if you want to know more, here is a nice resource:
Here’s an example of a RAM configuration on NewEgg.com.
What is a RAM DIMM?
DIMM(Dual In-line Memory Module) is a stick of RAM. The modules on the RAM stick are 64 bit data natively that is fast for data transfers since CPUs these days are also 64 bit data wide.
What is a memory channel?
A memory channel is just a wire in\on the motherboard that connects the CPU and the RAM DIMMS. I’ve heard a lot of confusion here, since manufacturers of RAM may specify RAM channel count on their RAM kit products. The number of channels on your motherboard is independent from the number of RAM sticks you may have.
The number of RAM slots on your motherboard is independent from number of channels.
A channel just requires a DIMM and doesn’t stop working if you add another RAM stick\DIMM. Most motherboards have 2 or 4 channels of memory (higher number of memory channels are found in server motherboards). A CPU also needs to support the number of memory channels but you typically don’t need to be concerned about this, since the CPU needs to be supported by the motherboard, and you just need to look at the motherboard manual for the supported number of channels.
The more the number of channels, the faster is the data exchange as the data can be sent on more than one channel. You may want to consider the cost benefits and see if the performance improvement is worth it to you.
Its always recommended that you use RAM sticks of same size, same speed and same latency. I would suggest getting RAMs in a 2 channel or 4 channel RAM kits. If you have an odd number of RAM sticks, either not use the last one or add another stick to make it an even number. When installing the RAM sticks, you want to match the DIMM configuration in each channel (look for the colors of the channel on your RAM slots on your motherboard). You also want to match the RAM sticks symmetrically on the RAM slots.
Failure in the above conditions can result in your RAM underperforming going into single channel mode.
Examples of channel modes:
So you can see here, as the speed increases for each type of memory, the capacity decreases because of the inherent cost associated.
Intel Persistant Memory
Intel has introduced a new type of memory called the Persistant Memory. These are predominantly used mostly in Data Centers but now available commercially for consumers. These memory dimms are non-volatile and much faster than SSD. You can use the persistant memory as a fast intermediary cache storage.
For more information, see : https://www.intel.com/content/www/us/en/architecture-and-technology/optane-dc-persistent-memory.html
What is ECC RAM?
ECC stands for Error Correcting Code RAM and is a special kind of RAM that detects and rectifies common errors that my corrupt the data in memory that may lead to system crashes or worse corrupt the data. These errors introduced into the data are called single-bit error.
What is a single bit error? Remember, when I mentioned that data is stored as presence or absence of electric charge in DRAM section? Well a single bit error is when an electric charge of a bit changes from a 0 to 1 or 1 to a 0. This can be due to various reasons like temperature, power variation, stress on hardware, magnetic interference etc. ECC RAM has additional circuitries that constantly scans the data as it is processed by the system.
How bad can this be? It could be an inaccurate pixel on your screen or it could alter the decimal precision from a microscopic to macroscopic levels! It could cause a crash on the machine as well.
Is ECC worth it?
As a consumer, an in frequent reboot might be considered OK.. but if you are working with very sensitive data, then having an ECC RAM is no brainer. This is typically used in server application where data storage and manipulation is very important or when you are working with simulation application like SOLIDWORKS Simulia or PDM servers. You may have a minor performance hit with ECC RAM but the advantage you have over Non ECC RAM is stable data.
ECC RAM cannot be combined with Non ECC RAM.ECC RAM is more expensive than normal RAM and is supported on specialized motherboards like Intel’s Xeon range of solutions. ECC memory is also available on nVidia RTX 8000 GPU of 48 gigs of GPU memory.
Here are my thoughts on GPU RAM:
Many of the concepts of RAM on the system translate to GPU memory as well except for the way caches are managed by GPUs. Case in point, if you run out of GPU memory, then graphics driver will start swapping data from the GPU RAM to CPU RAM causing memory thrashing at which point you’re application will be very slow. In my experience, the speed of GPU RAM is not as important as size of GPU RAM available to applications and this is certainly true for SOLIDWORKS.
GDDR (Graphics Double Data Rate) specification is based on DDR standards and there are misconceptions that GDDR is ahead of DDR due to the fact there has been multiple iterations of GDDR based on DDR3. For example, GDDR2 is an early midpoint between DD and DDR2 technologies. GDDR4 and GDDR5 took design elements from DDR3 SDRAM. The latest iteration of GDDR is GDDR6 implemented in nVidia’s Turing lineup(Example: RTX , T series) and in AMD RDNA’s (Example: RX 5000 series). The differences in these generations of GDDR rams is around Speed and Power efficiency.
The other type of memory is HBM (High Bandwidth Memory). HBM takes less space on the PCB, uses less power and more bandwidth than GDDR and this is achieved by stacking multiple DRAM dies on top of each other on the PCB. From what I’ve read a majority of videos games released in 2020 needed as much bandwidth nor were they optimized to make use of HBMs full potential, but I believe professional applications like SOLIDWORKS could make good use of this and is yet to be benchmarked.
The latest version of HBM is HBM2 and this is available in :
- Radeon VII
- Radeon RX Vega 56, 64
- Quadro GP 100
- Tesla P100
- Titan V
To summarize, when you’re shopping for RAM, you want to look for:
- The speed of RAM
- The CAS latency of RAM
- Intended number of channels to use
- And of course cost!
By the way, the JEDEC committee specifies the speed and the form factor for most of these memory devices: https://www.jedec.org/. Major OEMs like Dell, Lenovo, HP, Microsoft etc are committee members of JEDEC. You may be interested in taking a peek there as well.
Hope this helps you in making your decision to buy RAM much easier and in understanding what your money can buy for you. I'm happy to gather your feedback and suggestions to improve this post as well.