Software techniques are employed to mitigate soft errors. In particular, a
compiler (or other executable code generator) may emit otherwise
duplicative instructions targeting otherwise duplicative storage
locations to facilitate run-time detection and, in some cases, mitigation
of soft errors. In general, a compiler emits a program sequence of
primary instructions that correspond to source code. However, in
addition, for those primary instructions that target storage susceptible
to soft errors, the compiler may emit corresponding additional
instructions that target additional storage. In some implementations the
additional storage is not itself susceptible to soft errors. However,
more generally, implementations may tolerate soft errors affecting the
additional storage, as long as such soft errors are generally
uncorrelated with those affecting the storage targeted by the primary
instructions.