Memory that is designed to be used in servers comes in several types with different performance profiles.
Server memory is a bit of a misnomer. While server hardware is designed for slightly different uses than PC hardware, as long as the motherboard is compatible, any memory can be used in a PC. Use the Crucial® Advisor™ Tool or System Scanner tool to find memory compatible with your motherboard.
Server and workstation components are designed to not be shut down under normal circumstances and to maintain a higher degree of data integrity than components used in PCs. For those reasons, server components are generally more expensive than PC components. But if you're building your own PC or looking to upgrade a server and need more robust components with a higher level of data integrity, consider server-level components. Find out how much memory a server needs.
ECC and non-ECC Memory
Server and workstation memory can be ECC or non-ECC and registered or unbuffered. ECC stands for error-correcting code. ECC memory has software that corrects errors that can creep in to volatile memory. Mission-critical industries that cannot tolerate data changes rely on ECC memory. ECC memory includes extra memory bits and memory controllers that control the extra bits in an additional chip on the module. ECC memory uses the extra bits to store the ECC code, as well as an encrypted version of the code. When reading data, the system compares both sets of code. If the code that was read doesn't match the stored code, it's decrypted by the parity bits to discover and correct the error. Syndrome tables are a mathematical way of identifying these bit errors and then correcting them.
Because most PC memory is non-ECC, errors happen about once per one gigabyte of memory per month of uninterrupted operation. Since most PCs do not operate continuously the way servers do, the chances of an error are not as high.
Registered and unbuffered memory
Memory can also be registered or unbuffered. Registered memory has a register between the DRAM modules and the memory controller. The register holds requested data for one clock cycle before it's sent on. This places less electrical load on the memory controller and allow the system to remain stable with more memory modules than would otherwise be possible. This causes a slowdown in data rates. You can increase server performance by choosing memory that interleaves the data across three channels. There are also fully-buffered memory modules, which buffer data lines, in addition to the control lines.
The opposite of registered is unbuffered, meaning that there is no buffer between the system and the DRAM. Buffered is an older term for registered. It is possible to buy unbuffered ECC memory, but its use is limited to very small servers that need an insurance policy against the possibility of flipped bits.
This table shows the combination of ECC, non-ECC, registered, and unbuffered options available for server memory.