ECCメモリ
システムによっては、EOSメモリ(英語版)モジュールを使うことで同じ効果を達成できる。
誤り検出訂正(EDAC、Error detection and correction)は、発生が予期されるエラーの種類によって異なる。 暗黙的に、メモリワード中の各ビットの故障は独立であり、2つのエラーは同時に起こらないだろうと仮定されている。メモリチップが1ビット幅だった1980年代前半にはそれは事実だった。後年、技術開発によりチップ内のビット数は増大した。この弱点はさまざまな技法によって対処されている。IBMのChipkill、サン・マイクロシステムズのExtended ECC、ヒューレット・パッカードのChipspare、インテルのSingle Device Data Correction(SDDC)などである 。
誤り訂正符号によりDRAMのソフトエラーに対する保護を強化することができる。ECCメモリやEDAC保護メモリとして知られる誤り訂正メモリは、特に高い耐障害性が求められる用途、例えばサーバや多くの放射線にさらされる宇宙機などに特に適している。周期的にすべてのアドレスを読み、ソフトエラーの除去が必要ならば訂正したデータを書き戻す「メモリ磨き(英語版)(スクラブ、スクラビング、scrub)」をするシステムもある。
インターリーブは、潜在的に反転する可能性のある物理的に隣接した複数のビットを異なるワードに配属させることにより、単一の宇宙線による影響の広がりを許容する。
コンピュータシステム内部の電磁気的な干渉により、ダイナミックRAM(DRAM)の1ビットが自発的に反転することがある。 はじめはチップのパッケージに含まれる不純物から放射されるアルファ粒子が主な原因だと考えられていたが、DRAM チップの単発的なソフトエラー(英語版)の多くは環境放射線、主に二次宇宙線に含まれる中性子によって1つかそれ以上のメモリセル(英語版)の内容が変化するか、読み出しまたは書き込み回路が妨害されるためであることが研究で示された 。 したがって誤り率は標高とともに急速に上昇する。たとえば、標高1,500mでは海面よりも中性子束が3.5倍に増え、10〜12kmの高度(旅客機の巡航高度)では300倍にもなる 。 その結果、高度の高い場所で運用される装置には特別な信頼性対策が必要となる 。
一例として、1997年に打ち上げられた土星探査機・カッシーニは、それぞれ2.5ギガビットの市販のDRAMチップを持つ同型のフライトレコーダーを2つ搭載していた。 組み込みの誤り検出訂正機能(EDAC)のおかげで、探査機のエンジニアリングテレメトリは(訂正可能な)ワードあたり1ビットのエラーと(訂正不可能な)ワードあたり2ビットのエラーの数を報告してきた。 はじめの2年半の飛行で、探査機は1日に約280回でほぼ一定の1ビットエラーを知らせてきた。 しかし1997年11月6日、1日のエラーの数は4倍以上だった。これは GOES 9 衛星が検知した太陽フレアの影響だった 。
DRAMがどんどん高密度になり、チップ上の部品が微小化すると同時に、動作電圧が低下し続けるため、DRAMチップがそのような放射線の影響をより頻繁に受けるようになることが懸念された。
なぜCDC 6600からパリティをはずしたのかと問われたシーモア・クレイが「パリティは農夫のためのものだ」と答えたのは有名である(→w:en:Doctrine of parity) 。 次のCDC 7600にはパリティを組み込んだため、専門家から「多くの農夫がコンピュータを買うだろう」と皮肉られた(→w:en:Parity bit#History)。 初代IBM PCと、その後1990年代初期までのPCはパリティチェックを使っていた 。 その後のPCのほとんどはパリティを使っていない。 AMDのほとんどすべての64ビット製品を含む現在のマイクロプロセッサ用メモリコントローラの多くはECCメモリをサポートしているが、多くのマザーボード、特にローエンドのチップセットを使っているものはECCメモリをサポートしていない。
ECC対応のメモリコントローラは、64ビットワード(バス転送幅)につき1ビットのエラーを訂正でき、2ビットのエラーを検出できる(訂正はできない)。 ある種のコンピュータBIOSは、あるバージョンのLinux、macOS、ウインドウズといったOSとの組み合わせにより、大きな故障に至る前に不具合を起こしたメモリモジュールの特定に役立てるため、検出・訂正したメモリエラーを計数することができる。
DRAMチップには誤り訂正回路を内蔵するものがあり、ECCメモリコントローラを持たないシステムでもECCメモリの恩恵の多くを得ることができる 。