車のラジオを想像してみてください。車が通過する電磁場は処理に干渉しますか? 強力なフィールドがデータを破損する可能性があることは容易に理解できます。しかし、処理中のデータはどうでしょうか? また、変更することはできますか?
もしそうなら、どうすればコードをこれから保護できますか? (電気的保護なしでコード化するだけ)
車のラジオを想像してみてください。車が通過する電磁場は処理に干渉しますか? 強力なフィールドがデータを破損する可能性があることは容易に理解できます。しかし、処理中のデータはどうでしょうか? また、変更することはできますか?
もしそうなら、どうすればコードをこれから保護できますか? (電気的保護なしでコード化するだけ)
最も堅牢なミッション クリティカル システムでは、複数のプロセッサを使用して結果を比較します。これは、航空機の自動操縦 (自動着陸) で行ったことです。3 つの自動操縦装置があり、1 つは航空機を操縦し、2 つはそれをチェックしました。3 つのうちの 1 つでも意見が一致しない場合は、閉鎖されました。
ウィキペディアがソフトエラーと呼んでいるものについて言及しています。Jim Cとfmsfが指摘したように、これに対する従来の業界で受け入れられている回避策は、冗長性によるものです。
数年前、当社の修理部門の分析では、ファームウェアを保持するバッテリーでバックアップされた SRAM にシングル ビット エラーがあり、許容できない数の返品ユニットがあったことが示されました。根本原因の分析に努めましたが、問題の原因を説明することはできませんでした。その時点で、ハードウェアの変更は問題外だったので、症状を治療するためにソフトウェアのみのソリューションが必要でした.
簡単かつ迅速に実装できる信頼性の高い修正が必要だったので、SRAM 内のコード ブロックでパリティ チェックを生成しました。パリティ データ用に追加のストレージをほとんど必要としないブロック サイズを選択しましたが、これまでに見たエラーを検出して修正するのに十分な冗長性を提供しました。検出したエラーをログに記録し、修正できるかどうかを示すため、フィールドでビット エラーがいつ発生したかがわかります。ここまでは順調ですね!
私たちの製品マネージャーは、好奇心からいくつかの追加の調査を行い、犯人は宇宙放射線であると確信しました. 私たちはそれを明確に証明することはできませんでしたが、彼は、エラーの数が彼が見つけたデータに基づいて予想されるものと一致しているように見えたことに満足していました. 返品が止まってよかったです。
できるとは思えません。
変更されたコードは実行されないため、この問題が発生するとプログラムがクラッシュする可能性があります。
これはハードウェアの問題です。