Error
Correction Techniques
for Solid State Disk
Error
detection and correction (EDAC) techniques are used to ensure that
data is correct and has not been
corrupted, either by hardware failures or by noise occurring during
transmission. There are many different
error correction codes in existence. The two that have been the most
popular are Hamming codes to correct
errors in main memory, and Reed-Solomon codes to correct errors in
peripheral devices such as tape and
disk storage.
The
reason for the different codes being used in different applications
has to do with the historical
development of the data storage, the types of data errors occurring,
and the overhead associated with each
of the error detection techniques.
Hamming
Codes
Traditional DRAM error correction and detection utilizes
a Hamming code. This scheme allows one bit in the word to be corrected, but is unable to correct events
where more than one bit in the word is in
error. These multi-bit errors can only be detected, not corrected,
and therefore will cause a system to
malfunction.
With
the present generation of DRAM semiconductor devices, there is a
requirement for new, more
powerful correction techniques for two important reasons:
1.
Unlike prior generations of DRAM, the 128 and 256-megabit chips are
typically configured with 8 or
more bits per chip. Single-bit error correction using a Hamming code
is not a viable solution without extensive memory mapping, which introduces inefficiencies and design
restrictions.
2.
The ability to correct only a single-bit error in word lengths of 8,
16, or even 32 bits provided sufficient
reliability in earlier architectures, but as memories and word
lengths get larger, the probability
of multiple bit errors increases. With newer memories using 64-bit
and longer words, the probability of
multi-bit errors increase significantly and more error correction is
needed.
Reed-Solomon
Codes
Reed-Solomon coding has historically been used for tape and disk
storage where data is stored on a
magnetic oxide film attached to a substrate. If a small amount of
this magnetic oxide flakes off, multiple
bits, even multiple bytes are lost. Reed-Solomon codes can correct
these large data drop outs by applying
error correction to whole blocks of data.
Reed-Solomon
codes are not used in main computer memory applications because the
memory is used in
words of 32 or 64 bits, not in large byte groups.
In peripheral storage there is no penalty in using Reed-Solomon
codes because the smallest amount of data
written to or read from a disk is a sector which consists of at
least 100 bytes, and most commonly 512
bytes.
Imperial’s
Products
Imperial’s first solid
state disk designs used a Hamming code. Error correction was
applied to 4-byte
data groups and therefore could correct 1 bad bit out of 32 data
bits. Applying EDAC to only 32 data bits
requires the use of 7 additional bits, or 22% overhead. Other, lower
cost designs apply error correction to
8-byte groups. To correct a single bit out of 64 bits, only 8
additional bits are required, a 12.5% overhead.
Imperial’s
current products use a sophisticated and proprietary error
correction technology based upon
Reed-Solomon coding. Solid state disks are read from and written to
like conventional disks at least one
sector at a time. Imperial has organized its error correction
technology around 64-byte groups of data,
which is compatible with any operating system sector size. The
resulting code is extremely powerful and
can correct 6 bytes (48 bits) out of any group of 64 bytes, without
any performance
degradation, while eliminating any system level malfunction due to
multi-bit errors.
Solid
State Disks
Solid state disks are often used to store a system’s most
critical, non-recoverable files. Today, the average
capacity of a solid state disk is over two gigabytes and continuing
to increase. Clearly, more powerful error
correction techniques are needed for data security and Imperial is
proud to be leading the way. The data
stored in an Imperial solid state disk is better protected than in
any other known storage device using
DRAM.
For
those interested in obtaining more details about Imperial
Technology’s use of Reed-Solomon error
correction coding, an additional document has been prepared and is
available upon request. For even
greater detailed information there are a number of books on the
subject, including Error-Correcting
Codes
by W. Wesley Peterson and E.J. Weldon, Jr. published by the MIT
Press.
About
the Author
Craig Harries has worked within the technology industry for over
twenty years for both hardware and software companies.
He has been very involved with solid state acceleration
products for eight years and is currently vice president of Product
Marketing at TapeLabs, Inc.
Get
PDF File

|