[ The PC Guide | Systems and Components Reference Guide | System Memory | Memory Errors, Detection and Correction ] Non-Parity, Parity and ECC Memory Memory modules have traditionally been available in two basic flavors: non-parity and parity. (Actually, some sizes and styles are only available in non-parity, but most are available either way.) Non-parity is "regular" memory--it contains exactly one bit of memory for every bit of data to be stored. 8 bits are used to store each byte of data. Parity memory adds an extra single bit for every eight bits of data, used only for error detection and correction. 9 bits of data are used to store each byte. The table below shows a summary of the different common module sizes and their bit widths:
Parity memory can be used for parity checking, a basic form of error detection, on PCs that support it. It can also be used for an advanced form of error detection and correction called ECC on Pentium class or later systems that support ECC. Non-parity memory provides no error detection capabilities at all unless these are provided through external circuitry (which is basically never done on regular PCs.) In recent years, a new type of memory has become popular: ECC memory. As the name implies, this is memory specifically designed to allow the use of ECC on modern systems that have a chipset that supports it, much the way that parity memory can on some systems. Due to the fact that both types of memory support ECC, there has been a great deal of confusion about the difference between ECC and parity memory, especially since they often are quoted with the same specifications. The biggest difference between the two types of memory is that ECC memory works in ECC mode and so does parity memory, but ECC memory does not work in plain parity checking mode. The reason is that while an ECC module contains one extra bit per byte the way parity ones do, the extra bits cannot be individually accessed, which is required for parity operation. To make matters more confusing, some systems cannot use the ECC modules at all, because they are wired differently than parity modules. To summarize:
Parity memory was once the only kind sold; it is now sold much less frequently than non-parity memory, especially the faster and newer types of memory. This is because of the de-emphasis on error detection in newer systems and the number of popular chipsets that don't support parity checking. Parity memory uses 12.5% more DRAM memory than non-parity (1 bit extra for every 8) which makes it more expensive, but the major reason that it costs more is simply that it is produced in much smaller quantities today. With processors increasing in speed and more high-end applications coming into prominence on the PC platform, error-checking memory is now again on the increase.
|