電子工学やコンピュータ工学 において、ソフトエラーとは、信号またはデータが誤っているタイプのエラーのことです。エラーは、通常、設計や製造上のミス、あるいは部品の破損といった欠陥によって引き起こされることがあります。ソフトエラーもまた、信号またはデータが誤っている状態ですが、必ずしもそのようなミスや破損を意味するものではありません。ソフトエラーが観測されたとしても、システムが以前よりも信頼性が低下したというわけではありません。ソフトエラーの原因の一つとして、宇宙線によるシングルイベントアップセットが挙げられます。
コンピュータのメモリシステムにおいて、ソフトエラーとは、プログラム内の命令またはデータ値を変更するエラーのことです。ソフトエラーは通常、コンピュータをコールドブートすることで解消できます。ソフトエラーによってシステムのハードウェアが損傷することはありません。影響を受けるのは、処理中のデータのみです。
ソフトエラーには、チップレベルのソフトエラーとシステムレベルのソフトエラーの2種類があります。チップレベルのソフトエラーは、粒子がチップに衝突したときに発生します。例えば、宇宙線からの二次粒子がシリコンダイに衝突した場合などです。特定の特性を持つ粒子がメモリセルに衝突すると、セルの状態が別の値に変化する可能性があります。この例における原子反応は非常に小さいため、チップの物理構造に損傷を与えることはありません。システムレベルのソフトエラーは、処理中のデータがノイズ現象の影響を受けたときに発生します。これは通常、データがデータバス上にある場合に発生します。コンピュータはノイズをデータビットとして解釈しようとしますが、これによりアドレス指定やプログラムコードの処理にエラーが発生する可能性があります。不正なデータビットはメモリに保存され、後で問題を引き起こす可能性もあります。
ソフトエラーが検出された場合、誤ったデータを正しいデータに書き換えることで修正できます。高信頼性システムでは、エラー訂正を使用してソフトエラーをリアルタイムで修正します。しかし、多くのシステムでは、正しいデータを特定すること、あるいはエラーが存在することさえ発見できない場合があります。さらに、修正が行われる前にシステムがクラッシュする可能性があり、その場合は復旧手順に再起動を含める必要があります。ソフトエラーは、データ(たとえば、記憶回路内の電子)の変更を伴いますが、物理的な回路自体(原子)の変更は伴いません。データが書き換えられれば、回路は再び完全に動作します。ソフトエラーは、伝送線路、デジタルロジック、アナログ回路、磁気ストレージなどで発生する可能性がありますが、半導体ストレージで最もよく知られています。
回路がソフトエラーを起こすかどうかは、入射粒子のエネルギー、衝突の形状、衝突位置、および論理回路の設計によって決まります。静電容量と論理電圧が高い論理回路ほど、エラーが発生する可能性は低くなります。この静電容量と電圧の組み合わせは、臨界電荷パラメータ Qcritで表され、これは論理レベルを変化させるために必要な最小電子電荷擾乱です。Qcrit が高いほど、ソフトエラーは少なくなります。しかし、Qcrit が高いということは、論理ゲートの動作速度が遅くなり、消費電力も大きくなることを意味します。多くの理由から望ましいチップの微細化と電源電圧の低減は、Qcrit を低下させます。したがって、チップ技術の進歩に伴い、ソフトエラーの重要性は増していきます。
論理回路において、Qcritとは、回路ノードで誘導される電荷の最小値であり、そのノードから出力まで電圧パルスが伝播し、かつ確実にラッチされるのに十分な持続時間と振幅を持つようにするための値です。論理回路には多数のノードがあり、各ノードはそれぞれ固有の静電容量と出力からの距離を持つ可能性があるため、Qcritは通常、ノードごとに特性評価されます。
ソフトエラーは、 1970年代にダイナミックRAMが導入されたことで広く知られるようになりました。これらの初期のデバイスでは、セラミックチップパッケージ材料に微量の放射性汚染物質が含まれていました。過剰なソフトエラーを回避するには、非常に低い崩壊率が必要であり、それ以来、チップメーカーは時折汚染の問題に悩まされてきました。必要な材料純度を維持することは非常に困難です。ほとんどの回路の信頼性の高い動作には、重要なパッケージ材料のアルファ粒子放出率を0.001カウント/時/cm²(cph/cm²)未満に制御する必要があります。比較のために、一般的な靴底のカウント率は0.1~10 cph/cm²です。
チップパッケージの放射性汚染が、 UltraSPARC IIベースのUltra Enterpriseサーバーのクラッシュを引き起こすことが記録されている。この場合、クラッシュの原因は外部CPU キャッシュ内のSRAMチップであることが判明した。[ 1 ] [ 2 ]
パッケージの放射性崩壊は、通常、アルファ粒子の放出によってソフトエラーを引き起こします。正電荷を帯びたアルファ粒子は半導体内を移動し、電子の分布を乱します。この乱れが十分に大きい場合、デジタル信号は0から1、またはその逆に変化する可能性があります。組み合わせ論理回路では、この影響は一時的なもので、おそらくナノ秒の数分の1程度しか持続しないため、組み合わせ論理回路におけるソフトエラーはほとんど気づかれないままになっています。ラッチやRAMなどの順序論理回路では、この一時的な異常も無期限に記憶され、後で読み出される可能性があります。そのため、設計者は通常、記憶回路におけるこの問題にずっと注意を払っています。
2011年のBlack Hatの論文では、インターネットのドメインネームシステムにおけるこのようなビット反転の実際のセキュリティ上の影響について論じている。この論文では、さまざまな一般的なドメインのビット反転変更により、1日に最大3,434件の誤ったリクエストが発生していることがわかった。これらのビット反転の多くはハードウェアの問題に起因する可能性が高いが、一部はアルファ粒子に起因する可能性がある。[ 2 ]これらのビット反転エラーは、ビットスクワッティングという形で悪意のある攻撃者によって悪用される可能性がある。
アイザック・アシモフは、1950年代の小説でアルファ粒子RAMエラーを偶然予言したことについて、祝福の手紙を受け取った。[ 3 ]
電子機器業界がパッケージの汚染物質を制御する方法を確立すると、他の原因も作用していることが明らかになりました。ジェームズ・F・ジーグラーはIBMで一連の研究を主導し、宇宙線もソフトエラーを引き起こす可能性があることを実証する多数の論文(ジーグラーとランフォード、1979年)を発表しました。実際、現代のデバイスでは、宇宙線が主な原因である可能性があります。宇宙線の一次粒子は一般的に地球の表面には到達しませんが、高エネルギーの二次粒子のシャワーを生成します。地球の表面では、ソフトエラーを引き起こす可能性のある粒子の約95%が高エネルギー中性子であり、残りは陽子とパイ中間子で構成されています。[ 4 ] IBMは1996年に、デスクトップコンピュータでは256 MiBのRAM あたり1か月に1つのエラーが発生すると推定しました。[ 5 ] この高エネルギー中性子の流れは、ソフトエラーの文献では通常「宇宙線」と呼ばれています。中性子は電荷を持たないため、それ自体では回路に影響を与えることはありませんが、チップ内の原子核に捕獲される過程で、アルファ粒子や酸素原子核などの荷電二次粒子が生成され、ソフトエラーを引き起こす可能性があります。
宇宙線束は高度に依存します。海抜の北緯40.7度 、西経74度(米国ニューヨーク州ニューヨーク市)の一般的な基準地点では、束は約14中性子/ cm² /時間です。システムを洞窟に埋めると、宇宙線によるソフトエラーの発生率は無視できるレベルまで低下します。大気の下層では、海抜から高度が1000m (1000フィート)上がるごとに、束は約2.2倍(1.3倍)増加します。山頂で動作するコンピュータは、海抜に比べてソフトエラーの発生率が1桁高くなります。航空機の故障率は、海抜での故障率の300倍以上になる可能性があります。これは、場所によって変化しないパッケージの劣化によるソフトエラーとは対照的です。[ 6 ]チップ密度が増加する につれて、Intelは宇宙線によるエラーが増加し、設計上の制限要因になると予想しています。[ 5 ]
宇宙線によるソフトエラーの平均発生率は、太陽黒点活動に反比例します。つまり、太陽黒点活動が活発な時期には宇宙線によるソフトエラーの平均発生数が減少し、静穏期には増加します。この直感に反する結果は、2つの理由から生じます。太陽は一般的に、 地球の上層大気に到達して粒子シャワーを引き起こすことができる1GeVを超えるエネルギーの宇宙線粒子を生成しないため、太陽フラックスの変化はエラー数に直接影響を与えません。さらに、太陽活動が活発な時期に太陽フラックスが増加すると、地球の磁場が再形成され、高エネルギー宇宙線に対する遮蔽効果がいくらか増加し、結果としてシャワーを生成する粒子の数が減少します。いずれにしても、その影響はかなり小さく、ニューヨーク市の高エネルギー中性子フラックスの±7%の変調にとどまります。他の場所も同様の影響を受けます。
ある実験では、海面でのソフトエラー率は、DRAMチップ1個あたり5,950回の時間的故障(FIT = 10億時間あたりの故障数)と測定されました。同じテスト設定を、宇宙線を効果的に排除する50フィート(15メートル)以上の岩で遮蔽された地下室に移したところ、ソフトエラーはゼロと記録されました。[ 7 ] このテストでは、宇宙線によって引き起こされるエラー率と比較すると、ソフトエラーの他の原因は小さすぎて測定できません。
宇宙線によって生成された高エネルギー中性子は、物質によって散乱される際に運動エネルギーの大部分を失い、周囲との熱平衡状態に達することがあります。こうして生成された中性子は単に熱中性子 と呼ばれ、25 ℃における平均運動エネルギーは約25ミリ電子ボルトです。熱中性子は、ウランやトリウムなどの天然放射性元素の崩壊を含む、環境放射線源からも生成されます。宇宙線シャワー以外の発生源からの熱中性子束は、地下空間では依然として検出可能であり、一部の回路におけるソフトエラーの重要な要因となる可能性があります。
運動エネルギーを失って周囲と熱平衡状態になった中性子は、一部の回路ではソフトエラーの重要な原因となります。低エネルギーでは、多くの中性子捕獲反応がはるかに起こりやすくなり、特定の物質の核分裂を引き起こし、核分裂副産物として荷電二次粒子を生成します。一部の回路では、ホウ素の同位体である 10B の原子核による熱中性子の捕獲が特に重要です。この核反応は、アルファ粒子、7Li原子核、およびガンマ線を効率的に生成します。荷電粒子 (アルファ粒子または7Li ) のいずれかが、回路の重要ノードのごく近傍 (約 5 μm ) で生成されると、ソフトエラーを引き起こす可能性があります。11Bの捕獲断面積は 6桁小さく、ソフトエラーには寄与しません。[ 8 ]
集積回路の相互接続層、特に最下層の絶縁体であるBPSGには、ホウ素が使用されてきました。ホウ素を添加することでガラスの融点が下がり、リフロー特性と平坦化特性が向上します。この用途では、ガラスは重量比で4~5%のホウ素含有量で配合されます。天然に存在するホウ素は、20%が¹⁰Bで、残りが¹¹B同位体です。一部の古い集積回路プロセスでは、この重要な最下層に¹⁰Bが高濃度で含まれているため、ソフトエラーが発生します。p型ドーパントとして低濃度で使用される¹¹Bは、ソフトエラーには寄与しません。集積回路メーカーは、個々の回路部品のサイズが150nmまで縮小した時点で 、主にこの問題のために、ホウ素含有誘電体の使用を廃止しました。
重要な設計では、この影響を回避し、ソフトエラー率を低減するために、ほぼ完全にホウ素11からなる劣化ホウ素が使用されます。ホウ素11は原子力産業の副産物です。
医療用電子機器への応用においては、このソフトエラー機構が非常に重要となる可能性がある。中性子は、10 MeVを超える光子ビームエネルギーを用いた高エネルギーがん放射線治療中に生成される。これらの中性子は、治療室内の機器や壁から散乱される際に減速され、通常の環境中性子束よりも約4000万倍高い熱中性子束となる。この高い熱中性子束は、一般的に非常に高いソフトエラー率とそれに伴う回路の異常を引き起こす。[ 9 ] [ 10 ]
ソフトエラーは、ランダムノイズや、誘導性または容量性クロストークなどの信号品質の問題によっても発生する可能性があります。ただし、一般的に、これらの要因は、放射効果と比較すると、全体のソフトエラー率への寄与は小さいです。
いくつかのテストでは、 DRAMメモリセルの分離は、隣接するセルへの特別に細工されたアクセスによる意図しない副作用によって回避できると結論付けられています。したがって、DRAMに格納されたデータにアクセスすると、最新のメモリのセル密度が高いため、メモリセルが電荷を漏洩して電気的に相互作用し、元のメモリアクセスで実際にはアドレス指定されていなかった近くのメモリ行の内容が変更されます。[ 11 ]この効果は行ハンマー として知られており、特権昇格のコンピュータセキュリティエクスプロイトにも使用されています。[ 12 ] [ 13 ]
20nm以下のDRAM技術以降、製品テスト中の不良セルの選別と管理はますますコストがかかるようになり、故障率を大幅に下げるためにDRAM内ECCが導入されました。DDR5-SDRAM以降、製造後にチップ内に既に存在する欠陥による可変保持時間(VRT)などの現象により、エラーが増加する可能性があることが示唆されています。[ 14 ]
設計者は、適切な半導体、パッケージ、基板材料、およびデバイス形状を選択するなど、慎重なデバイス設計によってソフトエラーの発生率を最小限に抑えるよう努めることができます。しかしながら、多くの場合、デバイスのサイズと電圧の低減、動作速度の向上、および消費電力の低減といったニーズによって、これは制限されます。デバイスの異常動作に対する感受性は、業界ではJEDEC JESD-89規格を用いて規定されています。
デジタル回路におけるソフトエラー率を低減するために用いられる手法の一つに、放射線耐性化と呼ばれるものがあります。これは、選択された回路ノードの静電容量を増加させることで、そのノードの実効Q臨界値を高めるものです。これにより、ノードの論理値が乱される可能性のある粒子エネルギーの範囲が狭まります。放射線耐性化は、多くの場合、ノードでドレイン/ソース領域を共有するトランジスタのサイズを大きくすることで実現されます。放射線耐性化は面積と電力のオーバーヘッドが設計上の制約となる可能性があるため、この手法は、被爆時にソフトエラーが発生する可能性が最も高いと予測されるノードに選択的に適用されることがよくあります。どのノードが最も脆弱であるかを予測できるツールやモデルは、ソフトエラー分野における過去および現在の研究対象となっています。
プロセッサおよびメモリ リソースのソフト エラーに対処するために、ハードウェアとソフトウェアの両方の技術が用いられてきました。いくつかの研究では、ハードウェアベースの冗長マルチスレッドによるエラー検出と回復を提案することでソフト エラーに対処しています。[ 15 ] [ 16 ] [ 17 ] これらのアプローチでは、アプリケーションの実行を複製して出力のエラーを特定するために特別なハードウェアを使用しており、ハードウェア設計の複雑さとコストが増加し、高いパフォーマンス オーバーヘッドも発生しています。一方、ソフトウェアベースのソフト エラー耐性スキームは柔軟性があり、市販のマイクロプロセッサに適用できます。多くの研究では、ソフト エラー検出のためにコンパイラ レベルの命令複製と結果チェックを提案しています。 [ 18 ] [ 19 ] [ 20 ]
設計者は、ソフトエラーが発生することを前提とし、適切なエラー検出および訂正機能を備えたシステムを設計することで、エラーを適切に回復させることができます。一般的に、半導体メモリの設計では、前方エラー訂正方式が用いられ、各ワードに冗長データを組み込むことでエラー訂正コードを作成します。あるいは、ロールバックエラー訂正方式を用いることもできます。この方式では、パリティなどのエラー検出コードを用いてソフトエラーを検出し、別のソースから正しいデータを書き換えます。この手法は、ライトスルーキャッシュメモリでよく用いられます。
論理回路におけるソフトエラーは、フォールトトレラント設計の手法を用いて検出および修正されることがあります。これには、冗長回路やデータ計算の使用が含まれることが多く、通常、回路面積の増加、性能の低下、および/または消費電力の増加といった代償を伴います。トリプルモジュラー冗長(TMR)の概念は、論理回路におけるソフトエラーの信頼性を非常に高くするために利用できます。この手法では、同一の回路の3つのコピーが同じデータを並列に計算し、出力は多数決論理に入力され、3つのうち少なくとも2つで発生した値が返されます。このようにして、他の2つの回路が正しく動作したと仮定すれば、ソフトエラーによる1つの回路の故障は無視されます。しかし実際には、必要な200%を超える回路面積と電力オーバーヘッドを許容できる設計者は少ないため、通常は選択的にのみ適用されます。論理回路におけるソフトエラーを修正するもう1つの一般的な概念は、時間的(または時間)冗長性です。これは、1つの回路が同じデータを複数回処理し、後続の評価を比較して一貫性を確認するものです。しかしながら、この方式は、多くの場合、パフォーマンスのオーバーヘッド、面積のオーバーヘッド(ラッチのコピーを使用してデータを保存する場合)、および電力のオーバーヘッドを伴いますが、モジュール冗長方式よりも面積効率はかなり優れています。
従来、ソフトエラーの低減や回避策において、 DRAMが最も注目を集めてきたのは、デスクトップおよびサーバーコンピュータシステムにおいて、DRAMが影響を受けやすいデバイスの表面積の大部分を占めてきたためである(サーバーコンピュータにおけるECC RAMの普及を参照)。DRAMの脆弱性に関する正確な数値は入手困難であり、設計、製造プロセス、およびメーカーによって大きく異なる。1980年代の技術である256キロビットDRAMでは、1つのアルファ粒子によって5ビットまたは6ビットのクラスターが反転する可能性があった。現代のDRAMははるかに微細な特徴サイズを持つため、同量の電荷を堆積すると、はるかに多くのビットが反転する可能性がある。
エラー検出および訂正回路の設計は、ソフトエラーが通常チップのごく小さな領域に局在するという事実によって容易になります。通常、メモリのセルは1つしか影響を受けませんが、高エネルギーイベントによってマルチセルアップセットが発生することもあります。従来のメモリレイアウトでは、通常、複数の異なる訂正ワードの1ビットがチップ上で隣接して配置されます。そのため、マルチセルアップセットが発生しても、単一の訂正ワードでマルチビットアップセットが発生するのではなく、複数の訂正ワードで個別のシングルビットアップセットが発生するだけです。したがって、エラー訂正コードは、考えられるすべてのソフトエラーに対処するために、各訂正ワードでエラーが発生した1ビットのみを処理すればよいのです。「マルチセル」という用語は、メモリの複数のセルに影響を与えるアップセットに対して使用され、それらのセルがどの訂正ワードに属しているかは関係ありません。「マルチビット」という用語は、単一の訂正ワードで複数のビットがエラーになった場合に使用されます。
組み合わせ論理回路において、単一イベントアップセット(SEU)がソフトエラーに伝播するかどうかを決定する3つの自然なマスキング効果は、電気的マスキング、論理的マスキング、および時間的(またはタイミングウィンドウ)マスキングです。SEUは、オフパスゲート入力によって出力ラッチの論理遷移が妨げられ、その出力ラッチへの伝播がブロックされる場合、 論理的にマスキングされます。SEUは、伝播経路上のゲートの電気的特性によって信号が減衰され、結果として生じるパルスがラッチを確実に保持するのに十分な大きさでない場合、電気的にマスキングされます。SEUは、誤ったパルスが出力ラッチに到達しても、ラッチが実際にトリガーされて保持されるタイミングに十分近いタイミングで発生しない場合、時間的にマスキングされます。
3つのマスキング効果がすべて発生しない場合、伝播されたパルスはラッチされ、論理回路の出力は誤った値になります。回路動作の観点からは、この誤った出力値はソフトエラーイベントとみなされます。しかし、マイクロアーキテクチャレベルの観点からは、影響を受けた結果が現在実行中のプログラムの出力を変更しない場合があります。たとえば、誤ったデータは使用前に上書きされるか、後続の論理演算でマスクされるか、あるいは単に使用されない可能性があります。誤ったデータがプログラムの出力に影響を与えない場合、それはマイクロアーキテクチャマスキングの一例とみなされます。
ソフトエラー率 (SER) は、デバイスまたはシステムがソフトエラーに遭遇する、または遭遇すると予測される割合です。これは通常、時間内故障数 (FIT) または平均故障間隔(MTBF) のいずれかで表されます。時間内故障を定量化するために採用されている単位は FIT と呼ばれ、これはデバイスの動作時間 10 億時間あたり 1 つのエラーに相当します。MTBF は通常、デバイスの動作年数で表されます。分かりやすく言うと、1 FIT は、1 年 MTBF の約 1,000,000,000 / (24 × 365.25) = 114,077 倍のエラー間隔に相当します。
多くの電子システムは、回路の期待寿命を超えるMTBF(平均故障間隔)を備えていますが、SER(ソフトエラー率)はメーカーや顧客にとって許容できないレベルである場合があります。例えば、システムに適切なソフトエラー保護機能がない場合、現場では100万回路あたり多数のソフトエラーによる故障が発生する可能性があります。現場で製品が数個でも故障した場合、特にそれが壊滅的な故障であれば、製品および設計企業の評判を損なう可能性があります。また、システムの故障コストがシステム自体のコストをはるかに上回る、安全性やコストが極めて重要なアプリケーションでは、寿命あたり1%のソフトエラーによる故障リスクは、顧客にとって許容できないほど高い可能性があります。したがって、大量生産を行うシステムや極めて高い信頼性が求められるシステムを製造する際には、SERを低く設計することが有利です。
{{cite book}}: CS1メンテナンス: 場所の発行元が見つかりません (リンク)