エンジニアリング計算にIEEE754浮動小数点演算(NaNおよびInfsを使用)を使用したいセーフティクリティカルな組み込みプログラム(C)に取り組んでいます。ここでは、浮動小数点の例外を処理するための2つのアプローチ(afaik)があります。
- 例外が発生した場合は、永続的な障害状態になります。これは、エラー検出の観点からはより堅牢である可能性がありますが、フォールトトレランス/可用性には適していません。
例外を無視し、それらが有限数(完全な計算に成功)またはNaN、inf(失敗した計算)であるかどうかの最終結果を確認します。このソリューションはフォールトトレラントですが、出力が誤ってチェックから除外される可能性があるため、リスクが高くなります。
- セーフティクリティカルシステムでより良い解決策はどれですか?
- 他に選択肢はありますか?
- 計算の複雑さが最初の解決策を許可しない場合(通常の使用法では例外を回避できません)、最終チェックは十分ですか、それとも考慮すべき他の側面がありますか?