最新の CPU で起こりうる誤算 (たとえば、2 つの整数の加算と 1 回の結果) を計画する必要があり1
ます1
か3
?
- (どのくらいの頻度で) ALU でそのようなエラーが発生しますか?
- 今日、これに対する組み込みの保護はありますか?
上記の例で述べたような算術エラーが、ほとんどの「ハイゼンバグ」の背後にある理由であるという現実的な可能性はありますか?
CPUの機能サイズは、データでこのようなエラーが発生する可能性があるほど小さくなっていますが、実際の誤算が発生するよりも、メモリに格納されているデータで発生する可能性が(はるかに)高くなっています。
一部の放射線が豊富な環境(衛星など)では、(たとえば)結果に「投票」する複数のCPUを使用したり、不一致がある場合に計算を繰り返したりすることがかなり一般的です。それ以外に、それが合理的であるかもしれない唯一の時は、人間の生活に影響を与える可能性が高い何かにあるでしょう。
シングルビットの混乱のようなものの結果であるHeisenbugが存在する可能性はありますが、少なくともIMOではほとんどありません。私はかなりの数のバグを見てきましたが、そのうちのいくつかは追跡するのが困難でした-しかし、それらがあったとき、コードには本当に間違いがありました。
最新のCPUで起こりうる誤算を計画する必要がありますか
はい。また、あなたを含むすべての近くの物質を突然吸収する可能性のあるブラックホールの自発的な形成を計画する必要があります。
ALUでこのようなエラーは発生しますか?
上手。エンジニアだけがエラー訂正コードを使用する場合、その可能性は非常に低くなります。発生しなければならないことは、たまたま有効に見えたエラービットの組み合わせが回路内で自発的に発生しなければならないということです。オッズはゼロではありませんが、小さいです。
最近、これに対する組み込みの保護はありますか?
エラー訂正コードだけが完全に忘れられていなかった場合。「パリティは農民のためのもの」であることを忘れないでください。
http://en.wikipedia.org/wiki/Error_detection_and_correction
http://en.wikipedia.org/wiki/Dynamic_random_access_memory#Errors_and_error_correction
http://en.wikipedia.org/wiki/SECDED#Hamming_codes_with_additional_parity_.28SECDED.29
上記のような算術エラーが発生する現実的な可能性はありますか
はい。「現実的」をゼロ以外の値として定義すると、実際には非常に小さくなります。
最近のテストでは、10 ^ -10〜10 ^ -17エラー/ビット・hの範囲で、7桁以上の差があり、さまざまなエラー率が示されています。
およそ1ビットエラー、1時間あたり、1ギガバイトのメモリから1ビットエラー、1世紀あたり、1ギガバイトのメモリ。
整数演算でエラーが発生することはありません。浮動小数点演算であっても、誰かがはるかに古いプロセッサを使用している場合や、無理数、信じられないほどの精度で何かをしようとしている場合、および特殊な数学ライブラリを使用していない場合を除き、非常にまれです。
整数エラーのように見える何かをしていますか? 私は興味があります。