Abstract—In many computer systems, the contents of memory
are protected by an error detection and correction (EDAC) code.
Bit-flips caused by single event upsets (SEU) are a well-known
problem in memory chips; EDAC codes have been an effective
solution to this problem. These codes are usually implemented
in hardware using extra memory bits and encoding/decoding
circuitry. In systems where EDAC hardware is not available, the
reliability of the system can be improved by providing protection
through software. Codes and techniques that can be used for
software implementation of EDAC are discussed and compared.
The implementation requirements and issues are discussed, and
some solutions are presented. The paper discusses in detail how
system-level and chip-level structures relate to multiple error correction.
A simple solution is presented to make the EDAC scheme
independent of these structures.
The technique in this paper was implemented and used effectively
in an actual space experiment. We have observed that SEU
corrupt the operating system or programs of a computer system
that does not have any EDAC for memory, forcing the system
to be reset frequently. Protecting the entire memory (code and
data) might not be practical in software. However, this paper
demonstrates that software-implemented EDAC is a low-cost
solution that provides protection for code segments and can
appreciably enhance the system availability in a low-radiation
space environment. This reliability improvement is demonstrated
through both a satellite experiment and analytic estimates which
are based on parameter values that closely match the environment
of the satellite experiment.
For applications where read and write operations are done in
blocks of words, such as secondary storage systems made of solidstate
memories (RAM discs), software-implemented EDAC can be
a better choice than hardware EDAC, because it can be used with
a simple memory system and it provides the flexibility of implementing
more complex coding schemes.
Index Terms—Commercial off-the-shelf (COTS) in space,
error-correcting codes (ECC), error detection and correction
(EDAC), low-cost fault tolerance, memory-bit-flips,
memory protection, single-event upset (SEU), soft errors,
software-implemented, transient error.
Download