回路の誤動作

トランジスタが壊れたり、配線が切れたりすると、当然、プロセサは正しい動作をしないので誤動作が起こる。このような故障は自然に直ってしまうことはないので、固定故障という。固定故障は故障した部品を交換するまで直らないという点ではやっかいであるが、同じ動作をさせると毎回同じように誤動作するので、故障個所を見つけるのは比較的容易である。

一方、外部からの雑音などで、一時的に誤動作する場合がある。この場合は、部品が壊れたわけではなく雑音が無くなれば正常に動作するので、誤動作は一過性である。このような故障を間欠故障という。間欠故障は部品が壊れてしまうわけではなく、原因がなくなれば正常動作するという点は良いのであるが、誤動作が発生したことに気付かないと誤った処理結果が見逃されてしまう。これが銀行のお金の勘定で、元帳などに誤ったデータが書きこまれてしまうと影響が大きく、訂正には膨大な手間が掛る。また、車のエンジンやブレーキのコントロールであると、誤動作が検出されれば安全側の動作を取ることができるが、見逃された誤動作は、人命にかかわることも無いとは言えない。

この一過性の間欠故障で一番頻度が高いのは、宇宙線に起因する中性子のヒットである。プロセサなどの規模の大きなLSIでは、チップが壊れてしまう固定故障のfit数よりも、中性子ヒットによる誤動作によるfit数の方が大きいという状況になっている。

超新星爆発などによって生成された超高エネルギーの粒子が地球に向かって飛んでくる。これらの粒子は空気にぶつかり、2次粒子のシャワーを作り、2次粒子がさらに空気にぶつかって3次粒子を生成するというように、色々な粒子が生成される。電荷をもった粒子は地球の磁場などで曲げられてしまい、あまり地上まで届かないが、電荷をもたない中性子は地上に降ってくる。

図1.14に示すように、このような中性子が半導体を作っているシリコン原子とぶつかると、 2次イオンが発生し、それが飛翔経路にあるシリコン原子に衝突して大量の電子を叩き出す。その飛翔経路の近くに正の電位の部分があると、電子はその部分にひきつけられてしまう。負の電荷を持つ電子が流れ込むということは電流が流れだすことであり、正の電位の部分の電位が下がる。つまり、正の電位の信号にマイナス側の電圧のノイズが載ることになる。

図1.14 中性子の衝突によって2次イオンが生成され、それがシリコン原子に衝突し大量の電子を発生する

このノイズが大きく、例えば+1Vの"1"信号が0.5V以下になって"0"と判定されてしまうという誤動作が起こる。しかし、通常の論理ゲートの場合は、しばらくするとプルアップのトランジスタで充電されて、図1.15の右側の図のように元の+1Vに戻る。

図1.15 電子の群の吸収とそれによるゲート出力電圧波形

このため、ちょうど、次の段のフリップフロップがデータを取り込む瞬間にノイズが到着しなければ問題にならない。しかし、図1.16に示すラッチのような記憶回路では信号がループになっているので、右のゲートの出力に載ったノイズが左のゲートで反転増幅されて右側のゲートの入力となる。そして、そのノイズが右側のゲートで反転増幅され、電子群の吸収で生じたノイズを増大させる正のフィードバックがかかる。

図1.16 ラッチでは右のゲート出力に載ったノイズが、左のゲートで反転されて右のゲートの入力となる正のフィードバックがかかる

その結果、もともとは+1Vであった右側のゲートの出力が0Vで安定してしまう。ここでは右側のゲートの出力にノイズが載った場合を書いているが、左側のゲートの出力にノイズが載ると反対の結果になるので、中性子ヒットによるラッチのエラーは1→0、0→1のどちらのケースでも発生する。