What to look at to make sure Memory will be compatible
Memory has a bad rep for sketchy compatibility and random quirks, but in recent years it has actually become very simple because there haven't been many major changes. In this guide, I will explain to you what the various types are, what the various numbers on your memory sticks mean and what will likely be compatible with your system.
ECC Non-ECC FB-DIMM SO-DIMM RDIMM LRDIMM DDR3 DDR4 DDR2
There are a ton of acronyms and names for all of the different kinds of memory so I am going to spend a little bit of time educating you on the different types and then show you that most likely if you are reading this guide that it is very simple and there isn't really anything you can get wrong.
The first distinction is what kind of system are you putting the memory in?
If it is a laptop then almost 100% chance it is the SO-DIMM form factor. These are smaller sticks designed to fit in the smaller body of a laptop. They are roughly half the size of a desktop stick of RAM so they are easy to differentiate.
If it is a desktop then it will almost always be the standard DIMM form factor. In some cases of very small form factor systems, you may see an SO-DIMM used, but rule of thumb is that desktops use the DIMM form factor.
So now that you know about the sizes of memory I can tell you about the types of memory. There is DDR, DDR2, DDR3 and DDR4 all available in both laptop (SO-DIMM) and desktop (DIMM) varieties. This sounds like a lot of different combinations and possibilities, but, in reality, unless you are reading this before I wrote it then you will likely only need to consider DDR3 and DDR4. To start off with some basic party knowledge to impress your friends, DDR stands for double data rate and DDR2, DDR3 and DDR4 are just the second, third and fourth generations of this technology. Each generation has come around and obsoleted the previous generation and since we have now progressed to DDR4, DDR and DDR2 systems are basically extinct. If you find that your system has these in them, it is probably time to buy a new system entirely instead of upgrading the RAM.
Now that you know about the various generations of RAM I can explain what this means for you when you are purchasing memory. The first thing to clear up is that none of the generations are compatible with each other. Some motherboards have both DDR2 and DDR3 sockets or DDR3 and DDR4, but even in this case, you will not be able to run both kinds at the same time. All of the different versions of DDR have different pin layouts so there is no possibility of putting an incompatible type in the wrong socket.
This is true of both desktop and laptop modules
So the most important thing when you are looking for memory is making sure you are purchasing the generation that matches your system. Currently, the majority of systems are DDR3 systems but if you purchased a system in the last 2 years there is a good chance that it uses DDR4 because that has become the new standard. You can easily find this by looking up the part number of the memory you already have by looking up the memory part number that you have pulled by using our custom tool or using CPU-Z and going to the memory tab and it will tell you what type you have.
This is likely the first thing you thought of when you thought of memory. I won't write too much on this because this is something most people already understand. Capacity is simply the amount of information that the stick can store. People generally are already aware how much RAM they have in there system and this is probably why they are considering upgrading. If you open up your task manager and find that the amount of memory being used is almost at 100% of the memory installed you should probably upgrade. Memory comes in all different capacities so you should find an option that comes in a capacity that you think will meet your needs while also being within your budget. One thing I will note about compatibility and sizes is that typically systems will not work with three different sizes of sticks in the same system. So if you have four slots and have 2 4GB sticks and one 8GB stick then it might not be possible to put in a 2GB or 16GB stick.
ECC or Non-ECC
The one thing that most commonly catches people off guard (even season system builders) is ECC memory. ECC memory is memory used for servers and workstations. It stands for error correcting code. This is memory that, as the name states, corrects errors if they come up. This is very useful for servers and workstations that need to be up 100% of the time or run long simulations without errors, but for a typical desktop, it is excessive because you can simply restart a system that is acting up or close and reopen a program that might be acting funny.
If you are reading this guide then you likely do not need and cannot use ECC memory. This is one of the most common mistakes I have seen because counterintuitively these sticks often sell for even below non-ECC prices after they have been out for a while because once a system is retired from a business setting they will likely be sold off and the systems that use these often have many more RAM slots than a typical system and when a business is selling off these it is likely that many other businesses are as well and do not have a need for more because they have moved onto something better. This means they flood the market and prices end up low. If you are not using a system that is designated a workstation or server and has a Xeon or Opteron then you should grab non-ECC memory, sometimes called SDRAM. Now that I have forewarned everyone who might make that mistake, I can explain the types of ECC memory. There are 4 major types and they are all just variations of the same thing.
The first to get out of the way is FB-DIMMs. FB stands for fully buffered. These have basically been phased out since DDR2 so you will not likely encounter these any time soon even if you are using a system that requires ECC memory. These have a different pin layout than even standard DDR2 so they will only fit in sockets that allow FB-DIMMs.
The next type is UDIMM. The U in UDIMM stands for unregistered. This is typically in lower end systems that do not need massive amounts of RAM because UDIMMs limit you to 2 per channel (If you look at the motherboard and see different colored slots, each color is a different channel). This means that they are less commonly used in servers and more often used in Workstations that simply need more reliable options than non-ECC memory but don't need to be able to handle a terabyte of memory. If there is any memory type that will work in a desktop it would be a UDIMM. Some desktops will be able to function just fine with UDIMMs, but they will turn off the error correcting functions so it is still generally better to just go for the non-ECC SDRAM options. On these memory sticks you will likely see the U or E suffix after the speed like on a stick that says 10600U or 10600E.
The final two types of memory are RDIMM and LRDIMM. These stand for registered and load reduced registered memory. Registered, as explained a little bit in the UDIMM explanation is memory that has error correcting functions but also has the ability to be configured with more than two sticks per channel. This is primarily used in high capacity servers that have many slots for RAM.
LRDIMMs are more or less the same thing but are optimized slightly differently so that they can operate at higher frequencies or utilize higher capacity configurations. For example, some systems may max out at 1TB of RDIMMs, but may be able to utilize 2TB of LRDIMMs or they may max out at 1600Mhz in a quad channel configuration with RDIMMs, but may be able to go up to 1866Mhz or 2133Mhz with LRDIMMs.
If you are using a system like this then I highly recommend visiting the manufacturer's site and checking for the most recent documentation to see what these different stipulations are because for each system it is a little different.
Frequencies and Timings
Now that we have talked about the form factors, generations and Types we can move on to the frequencies and timings. Frequency, simply put, is the number of times that a memory stick refreshes the information it is storing. This is the 1600Mhz you might see or the 10600 on the stick. Timings are the number of refreshes that the memory module requires to perform a certain task you will typically see this as 8-8-8-10 or on the memory stick
The fortunate thing about both of these things is that there are standards put out by a group JEDEC so most memory sticks will be the same combination of frequencies and timings. The other thing fortunate thing about memory is that they are all able to run at multiple speeds. This means that if you already have 1333Mhz sticks then they will work with a new set of 1600Mhz sticks that you purchased, but the 1600Mhz will be run at the slower speed of 1333Mhz. This means that if you already have RAM in your system and you are looking to just add new sticks it is likely best to get sticks that are the same speed as what you have unless you can get the faster sticks for cheaper.
Overall I would not worry about frequencies and timings that much other than trying to match with what you have. There have been various benchmarks that have shown mixed results after a certain speed whether there is even any difference at all. Many systems and motherboards do not even officially support the higher speeds and to run them at the RAMs advertised frequency might actually be considered overclocking so it will run at the standard 1600Mhz by default unless you do a little bit of work configuring it in the BIOS.
This is something super simple but also very often overlooked. Sometimes RAM features tall heatsinks or heat spreaders to dissipate the heat produced by the memory sticks and this will hit something in the case or get blocked by the processor's heatsink. It is important to check the inside of your system and find the dimensions of the memory before you purchase it because you might end up with sticks that physically do not fit.
There are plenty of variations of each module of RAM though and it is very unlikely you will be unable to find sticks that do not fit in your system. They also make low profile sticks that are significantly shorter if you do have a system that does not seem to have proper space. These are typically more expensive though so I would recommend going for regular height sticks first.
When looking for memory the first thing you should determine is what form factor of memory your system uses. Either SODIMM if it is a laptop or DIMM if it is a desktop. Then you need to determine what generation of memory it is. You can check this by looking up the documentation of your system or using our custom tool and looking up the part numbers of your current memory or using CPU-Z to tell you. Most likely it is DDR3 or DDR4 at this point. Next, you should determine whether you need ECC or non-ECC memory. By default, everyone should choose non-ECC unless you know that the system you are upgrading is a workstation or server. If you are in the minority and need ECC memory you should choose between UDIMMs, RDIMMs and LRDIMMs based on your use. This is a complex decision to make but, basically, UDIMMs should be for workstations that don't need massive amounts of RAM, RDIMMs for those who need a bit more and LRDIMMs who need the absolute maximum capacity and speed possible. After that, you should determine what frequency and timing you have and try to match that or find the cheapest option that exceeds your current sticks. Then finally you should make sure that the memory will physically fit in your system and has proper clearance. If you follow all of these steps you should have no issues with incompatibility.