Memory modules can be made in different ways to allow for additional functions. These functions require additional components.

Registered memory has registers or buffers included on the module for better flow of data which increases data reliability. It also allows for greater memory scalability (larger amounts of RAM can be installed). Because of this, registered memory is used mostly in servers. Some Registered DIMMs comes with a parity function. This is used for additional error checking. Your computer's motherboard would have to support parity in order for this function to be used. But parity registered memory can be used in systems that just takes registered memory. The parity function will just not be used. Registered memory includes ECC functionality but not all ECC is registered.

Fully buffered memory takes some of the functions of the memory controller (a chip that controls the data flow of RAM) and puts it on the memory module. This increases memory scalability further. Fully buffered memory cannot be used in a computer that takes registered memory or vise versa. Fully buffered memory includes ECC functionality but not all ECC is fully buffered.

Unbuffered memory is memory that does not include any buffers or registers. It is the memory most commonly used in desktop and notebook computers. You cannot use registered memory or fully buffered memory in a computer that takes unbuffered memory.

ECC (Error Correcting Code) memory includes an additional memory chip which allows the motherboard to detect and correct one bit errors. This increases data reliability and can help identify a failing memory module. All registered and fully buffered memory modules also include ECC functionality. But there is also ECC unbuffered memory that is usually used in higher end workstation computers. In some cases, you can use ECC unbuffered memory in a computer that takes unbuffered memory but does not have ECC functionality. It just will not use this feature of the memory.