HOME

TheInfoList



OR:

RAM parity checking is the storing of a redundant
parity bit A parity bit, or check bit, is a bit added to a string of binary code. Parity bits are a simple form of error detecting code. Parity bits are generally applied to the smallest units of a communication protocol, typically 8-bit octets (bytes), ...
representing the
parity Parity may refer to: * Parity (computing) ** Parity bit in computing, sets the parity of data for the purpose of error detection ** Parity flag in computing, indicates if the number of set bits is odd or even in the binary representation of the ...
(odd or even) of a small amount of computer data (typically one byte) stored in
random-access memory Random-access memory (RAM; ) is a form of computer memory that can be read and changed in any order, typically used to store working data and machine code. A random-access memory device allows data items to be read or written in almost the ...
, and the subsequent comparison of the stored and the computed parity to detect whether a data error has occurred. The parity bit was originally stored in additional individual memory chips; with the introduction of plug-in DIMM, SIMM, etc. modules, they became available in non-parity and parity (with an extra
bit The bit is the most basic unit of information in computing and digital communications. The name is a portmanteau of binary digit. The bit represents a logical state with one of two possible values. These values are most commonly represente ...
per
byte The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable uni ...
, storing 9 bits for every 8 bits of actual data) versions.


History

Early computers sometimes required the use of parity RAM, and parity-checking could not be disabled. A parity error typically caused the machine to halt, with loss of unsaved data; this is usually a better option than saving corrupt data. ''Logic parity RAM'', also known as fake parity RAM, is non-parity RAM that can be used in
computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations ( computation) automatically. Modern digital electronic computers can perform generic sets of operations known as programs. These prog ...
s that require parity RAM. Logic parity RAM recalculates an always-valid parity bit each time a byte is read from memory, instead of storing the parity bit when the memory is written to; the calculated parity bit, which will not reveal if the data has been corrupted (hence the name "fake parity"), is presented to the parity-checking logic. It is a means of using cheaper 8-bit RAM in a system designed to use only 9-bit parity RAM.


Memory errors

In the 1970s-80s, RAM reliability was often less-than-perfect; in particular, the 4116 DRAMs which were an industry standard from 1975 to 1983 had a considerable failure rate as they used triple voltages (-5, +5, and +12) which resulted in high operating temperatures. By the mid-1980s, these had given way to single voltage DRAM such as the 4164 and 41256 with the result of improved reliability. However, RAM did not achieve modern standards of reliability until the 1990s. Since then errors have become less visible as simple parity RAM has fallen out of use; either they are invisible as they are not detected, or they are corrected invisibly with ECC RAM. Modern RAM is believed, with much justification, to be reliable, and error-detecting RAM has largely fallen out of use for non-critical applications. By the mid-1990s, most DRAM had dropped parity checking as manufacturers felt confident that it was no longer necessary. Some machines that support parity or ECC allow checking to be enabled or disabled in the
BIOS In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the b ...
, permitting cheaper non-parity RAM to be used. If parity RAM is used the chipset will usually use it to implement error correction, rather than halting the machine on a single-bit parity error. However, as discussed in the article on
ECC memory Error correction code memory (ECC memory) is a type of computer data storage that uses an error correction code (ECC) to detect and correct n-bit data corruption which occurs in memory. ECC memory is used in most computers where data corruption c ...
, errors, while not everyday events, are not negligibly infrequent. Even in the absence of manufacturing defects, naturally occurring radiation causes random errors; tests on
Google Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
's many servers found that memory errors were not rare events, and that the incidence of memory errors and the range of error rates across different DIMMs were much higher than previously reported.Cnet news - Google: Computer memory flakier than expected
/ref>


Error correction

Simple go/no go parity checking requires that the memory have extra, redundant bits beyond those needed to store the data; but if extra bits are available, they can be used to correct, as well as detect, errors. Earlier memory as used in, for example, the
IBM PC/AT The IBM Personal Computer/AT (model 5170, abbreviated as IBM AT or PC/AT) was released in 1984 as the fourth model in the IBM Personal Computer line, following the IBM PC/XT and its IBM Portable PC variant. It was designed around the Intel 80 ...
( FPM and
EDO Edo ( ja, , , "bay-entrance" or "estuary"), also romanized as Jedo, Yedo or Yeddo, is the former name of Tokyo. Edo, formerly a ''jōkamachi'' (castle town) centered on Edo Castle located in Musashi Province, became the ''de facto'' capital of ...
memory) were available in versions that supported either no checking or parity checkingcrucial.com FAQ: Are ECC and parity the same thing? If not what's the difference?
{{webarchive, url=https://web.archive.org/web/20120401004015/http://www.crucial.com/uk/kb/answer.aspx?qid=3872 , date=2012-04-01
(in earlier computers that used individual RAM chips rather than
DIMM A DIMM () (Dual In-line Memory Module), commonly called a RAM stick, comprises a series of dynamic random-access memory integrated circuits. These memory modules are mounted on a printed circuit board and designed for use in personal computers ...
or
SIMM A SIMM (single in-line memory module) is a type of memory module containing random-access memory used in computers from the early 1980s to the early 2000s. It differs from a dual in-line memory module (DIMM), the most predominant form of memo ...
modules, extra chips were used to store parity bits); if the computer detected a
parity error A parity bit, or check bit, is a bit added to a string of binary code. Parity bits are a simple form of Error detection and correction, error detecting code. Parity bits are generally applied to the smallest units of a communication protocol, ...
it would display a message to that effect and stop. The
SDRAM Synchronous dynamic random-access memory (synchronous dynamic RAM or SDRAM) is any DRAM where the operation of its external pin interface is coordinated by an externally supplied clock signal. DRAM integrated circuits (ICs) produced from the ...
and DDR modules that replaced the earlier types are usually available either without error-checking or with ECC (full correction, not just parity). An example of a single-bit error that would be ignored by a system with no error-checking, would halt a machine with parity checking, or would be invisibly corrected by ECC: a single bit is stuck at 1 due to a faulty chip, or becomes changed to 1 due to background or cosmic radiation; a spreadsheet storing numbers in ASCII format is loaded, and the number "8" is stored in the byte which contains the stuck bit as its eighth bit; then another change is made to the spreadsheet and it is stored. However, the "8" (00111000 binary) has become a "9" (00111001). If the stored parity is different from the parity computed from the stored data, at least one bit must have been changed due to data corruption. Undetected memory errors can have results ranging from undetectable and without consequence, to permanent corruption of stored data or machine crash. In the case of the home PC where data integrity is often perceived to be of little importance—certainly true for, say games and web browsing, less so for Internet banking and home finances—non-parity memory is an affordable option. However, if data integrity is required, parity memory will halt the computer and prevent the corrupt data from affecting results or stored data, although losing intermediate unstored data and preventing use until any faulty RAM is replaced. For the expense of some computational overhead, of negligible impact with modern fast computers, detected errors can be corrected—this is increasingly important on networked machines serving many users.


ECC type RAM

RAM with ''ECC'' or ''Error Correction Code'' can detect and correct errors. As with parity RAM, additional information needs to be stored and more processing needs to be done, making ECC RAM more expensive and a little slower than non-parity and logic parity RAM. This type of
ECC memory Error correction code memory (ECC memory) is a type of computer data storage that uses an error correction code (ECC) to detect and correct n-bit data corruption which occurs in memory. ECC memory is used in most computers where data corruption c ...
is especially useful for any application where uptime is a concern: failing bits in a memory word are detected and corrected on the fly with no impact to the application. The occurrence of the error is typically logged by the operating system for analysis by a technical resource. In the case where the error is persistent, server downtime can be scheduled to replace the failing memory unit. This mechanism of detection and correction is known as ''EEC'' or ''Extended Error Correction''.


How to distinguish Parity Ram versus ECC Ram

Parity rams compose of same chips in quantity of 3 and 9 (single side), and 6 or 18 (double side) on the memory module of the 30 pin unit. Parity ram chips have exact '2 to 1' or '8 to 1 pin' count on 30 pin modules. But on a 72 pin module, parity chips compositions are quite different, 'either a square 4x12 pin chip at the center complementing 8 piece of 2x12 pin ram chips for one side', '4 little 2x7 pin chips complementing to a normal 8 piece 2x7 pin ram chips' or 'totally same 9 chips stays on each side'. Important thing here is that, parity ram chips have the exact '8 to 1' or '4 to 1' pin count for the parity on a 72 pin module. For ECC, it is a bit different again. All ECC chips have different markings on them, other than the normal ram chips. There might be one or four ECC chips. On 5x2 pin modules in quantity of 8, there can be a single 6x2 pin ECC chip present at the center (for one side). The second option for 5x2 pin ram modules again in quantity of 8, there can be four additional pieces of 5x2 pin ECC modules, either on the same side or at the other side staying together. If ram modules present on both sizes, chip count doubles to 18 chips or 24 chips respectively. Finally, if ram capacity increases more, the pin count on all chips increases by +4 more for every present chip. So, unlike parity chips, there is no exact '8 to 1' and '2 to 1' pin count; only '4 to 1' pin count design and/or +4 pin on each side ECC chip design, if it has single side 9 or double side 18 piece of chips, for ECC to function. "Non Parity/non ECC", "Parity" and "ECC" modules do not work together!


See also

* DRAM error detection and correction *
Single-event upset A single-event upset (SEU), also known as a single-event error (SEE), is a change of state caused by one single ionizing particle (ions, electrons, photons...) striking a sensitive node in a live micro-electronic device, such as in a microprocesso ...


References


SCL Cluster Cookbook on memory (Last updated in 1998)
Computer memory