半導体技術におけるデバイスおよびインターコネクトの信頼性評価は、通常、技術認証および定期モニタリングを目的として、条件ごとに比較的小規模(1桁から数十個)のサンプルを用いて行われます。量産データは、スクライブレーンテスト構造におけるランプ電圧破壊測定によって、誘電体の信頼性を長期にわたって評価するために使用できます。これにより、誘電体の完全性に影響を与える内因的および外因的メカニズムの組み合わせを含む、誘電体の挙動の詳細な情報が得られます。特に、故障率の低い外れ値やテールを検出し、対処することができます。これらの外れ値は、そうでなければ市場品質リスクにつながる可能性があります。
実用的な理由から、テスト時間を短縮し、プローブカードやプローブ針の損傷を防ぐために、目標電圧でランプを停止することがあります。その結果、少数のデータポイントが打ち切られる可能性があります。少数の打ち切りデータポイントで大規模なデータセットをフィッティングすると、収束に問題が生じ、フィッティングパラメータが不正確になったり、信頼区間が不足したり、計算上の大きな課題が生じたりする可能性があります。
JMPコミュニティの皆様、こんにちは。テキサス州オースティンのNXPセミコンダクターズに勤めるMehul Shroffと申します。JMPのDon McCormackと共に、半導体製造における誘電体の信頼性評価に関する研究を発表します。
はじめに、MOSFETと呼ばれる基本的な半導体トランジスタの図解をご紹介します。この構造には、ゲートとチャネルを絶縁するゲート絶縁膜があり、これがトランジスタのスイッチング素子として機能します。ゲートはチャネル内の電荷キャリアの流れを制御します。ゲート絶縁膜の完全性は、フィールドにおけるデバイスの信頼性にとって非常に重要です。これを評価する一つの方法は、量産段階におけるランプ電圧ブレークダウン試験です。この測定は、ゲート絶縁膜のドリフトや欠陥の問題を検出するのに役立ちます。これは通常、スクライブラインテスト構造で行われます。この構造では、面積は小さいですが、時間の経過とともにサンプルサイズが大きくなります。半導体の世界では、フィールド品質はよく知られたバスタブ曲線で考えられます。バスタブ曲線では、観測される故障率は最初は時間とともに減少し、その後は増加することがわかります。これは、いくつかの異なるメカニズム群の寄与によるものです。
最初のものは外因的信頼性メカニズムと呼ばれ、主に潜在的欠陥や初期故障などの初期故障に対処します。部品を出荷する前に行う様々なスクリーニングとテストによって、これらをかなり削減できます。次のものは、ソフトエラー、ラッチアップ、ESDなどの定常的またはランダムな故障で構成されます。そして最後のものは、時間の経過とともに発生し、時間の経過とともに増加する、誘電体を含むデバイスの摩耗に焦点を当てた内因的信頼性メカニズムで構成されます。誘電体の破壊データを収集する場合、通常はワイブル分布で表します。理想的な分布がワイブル分布に当てはまるからです。しかし実際には、このデータセットに示すように、分布は混合であることが多く、局所的な薄化の欠陥による外因的な裾を持つ場合があります。そして、データの大部分は、うまくいけば内因的または自然な破壊です。しかし、このウェーハ マップに示されているようなプロセスの変動によって複雑化する可能性があります。このウェーハ マップでは、ゲート誘電体の厚さがウェーハ上で変化し、高い側で確認される固有のブレークダウンと曲率に違いが生じます。
その後、一部のサイトはテスト時間内または最大電圧内で障害が発生しません。
プローブ針の損傷を防ぎ、テスト時間を管理可能な範囲に抑えるために、テストを停止します。その結果、データの感覚が得られます。では、なぜこれを適合させる必要があるのでしょうか。主な理由は、パラメータの変化につながるドリフトを経時的に監視できるようにするためです。プロセスの変更や改善の影響を理解し、自動車などの信頼性の高いアプリケーションで低 PPM の動作を予測したいと考えています。しかし、これらの混合分布を適合させようとすると、収束できず、したがってここに示すようにツールの信頼性が得られないという問題に頻繁に遭遇します。つまり、公称適合は得られますが、ツールの信頼性は得られません。これは、大規模なデータセット、不完全または混合分布、および打ち切りの組み合わせが原因である可能性があります。以下は、同じデータで、ある程度の打ち切りがある分布があり、収束できない例です。ここで、明らかに間違っているが説明目的のためだけに、打ち切りデータを不合格データとして扱うと、収束させることができます。
しかし、適合度自体は以前のものよりもわずかに悪く、本来の分布に完全には適合していないことがわかります。これは、打ち切りデータの存在が、このデータの適合度に影響を与えることを示すための単なる例です。
これはプロセス改善を行った例です。トランジスタのゲートとソース間の配線に断線が発生し、非常に深刻な外因性テールが発生していました。一連のプロセス改善により、この問題は大幅に改善されました。一方のデータセットでは、打ち切り点がいくつかあり、収束できませんでした。もう一方のデータセットでは、打ち切り点がなく、問題なく収束できました。視覚的には改善が見られますが、統計的にどの程度改善されたのかを判断することはできません。分布でも同じことが言えます。平均分布はわずかに変化していますが、大きな変化はありません。スケールと色のグラデーションを見ると、各サイトの最小値が大幅に改善されていることがわかります。
ここでは前と同じデータを取りましたが、同じ収束の問題があることがわかります。ここでは異なるデータ セットを使用しており、このプロセスにも 2 つのバージョンがあり、一方は他方よりもわずかに優れていますが、両方とも有意なテーリングを示しています。ただし、固有の適合度には違いがありました。この場合、両方とも打ち切りデータがありましたが、両方とも収束しました。これがデータ セットのサイズに関係するかどうかをテストするために、このデータ セットを取得し、同じ分布を維持するために 10 倍ずつ膨らませて、この分析で比較しました。打ち切りポイントの数とデータ ポイントの合計数が増えたにもかかわらず、収束することができました。これに基づいて、データ セットのサイズを要因として除外することができました。これは、ワイブル スケール係数と形状係数によって左右されると考えました。
ここまでで、共著者のドンにバトンタッチしたいと思います。ドン、どうぞ。ありがとうございます。
メフルさん、ありがとうございます。スライドモードにして、話を始めましょう。半導体製造という文脈でお話ししていますが、これは大量のデータを収集し、故障メカニズムに影響を与える様々な要因が存在するあらゆるケースに当てはまります。先ほども申し上げたように、半導体データについて話していても、必ずしも半導体データに限った話ではありません。
ライフディストリビューションプラットフォームで何が起こっているのか、少しお話ししましょう。私たちが主に使っているのがライフディストリビューションプラットフォームだからです。内部構造を見て、何が起こっているのか、そしてこれらの適合度の低さや収束しない問題の原因は何なのかを少し理解しましょう。まず、ライフディストリビューションで私たちがしようとしているのは関数の最適化、具体的には尤度関数です。尤度関数の重要な点は、与えられたデータに対して最も尤度が高い、あるいは最も確率の高いパラメータ推定値が得られることです。このアプローチはデータ駆動型であるため、この点が重要です。尤度関数とワイブル分布のもう一つの素晴らしい点は、ワイブル分布にはアルファとベータという2つのパラメータしかないため、視覚的に確認するのが非常に簡単なことです。
左側のグラフを見てください。これは尤度関数を3次元でプロットしたもので、X軸とY軸にベータとアルファが描かれています。ここで目指しているのは、グラフの最小値、つまり最小値を見つけることです。グラフを見ると、グラフのどこから始めても、パラメータ空間内の初期値がどこにあっても、かなり早く最小値に収束することがわかります。データの挙動が良好であれば、物事は速やかに、非常にスムーズに進み、収束が早くなります。さて、問題は、Mehul氏が話していたデータで見られた収束しない問題の原因はどこにあったのか、あるいは何が起こったのかということです。多くの場合、この問題の多くは、データセット内の観測値が、そのモデルの基本モデルを代表していないことに起因しています。多くの人がまず考えるのは当然のことながら、外れ値です。つまり、データの中に問題を引き起こす外れ値が存在する可能性があるのです。
データは複数の分布から取得できます。複数の障害メカニズムが存在する可能性があり、それらがデータセットの一部となる可能性があります。
公平に、正直に、そして完全を期すために言うと、明らかに基礎モデルが間違っている可能性はあります。例えば、ワイブル分布が最適な分布ではなかったかもしれません。デバイス物理学に関するかなり深い理解に基づいて、この場合ワイブル分布が実際に最適な分布であると仮定すると、最後の項目は無視することにします。では、どのような可能性が考えられますか? データの一部が代表的ではないことを認識した上で、JMPプラットフォームのコンテキストで、より良いモデルを適合させたり、問題を診断したりするために何ができるでしょうか? アルゴリズムを変更したり、パラメータ値を変更したりするにはどうすればよいでしょうか? これはLife Distributionでは直接利用できませんが、JMPにはNonlinearという素晴らしいプラットフォームがあり、これを使うことで可能です。Life Distributionよりも少し柔軟性があります。このような問題に遭遇した際に、Nonlinearを使うことができます。これにより、主要な基礎モデルを代表しない値を特定し、削除することができます。JMPには、そのためのツールがたくさんあります。
あまり馴染みのないツール「Fit Parametric Survival(パラメトリック生存時間適合)」をご紹介します。データフィルターを使って、データ内の問題のある観測値を見つけ出すことができます。
そして最後に、より代表的なモデルを見つけて構築します。これはもちろんNonlinearプラットフォームを使って行うこともできますが、今回はLife Distributionプラットフォームのより簡単な機能であるFit Mixture(混合物の適合)を使って行います。ここでも、ツールについて簡単におさらいしておきましょう。Nonlinearプラットフォーム、Nonlinearプラットフォーム、Life DistributionプラットフォームのFit Mixtures、そしてFit Parametric Survival(パラメトリック生存時間適合)について見ていきます。
例を見てみましょう。まずはごく簡単な例から始めましょう。ワイブル分布のデータをシミュレーションしました。特別なことは何もなく、非常に単純なものです。しかし、これから行うのは、データに外れ値を追加することです。これが外れ値を加えたシミュレーションデータです。70万個の観測値がデータの大部分を占めていました。そのうちの1つの観測値が外れ値で、ここにあります。これは取るに足らない、データから抜き出すのは簡単だと思われるかもしれません。しかし、これはLife Distributionプラットフォームで問題を引き起こします。
これをLife Distributionプラットフォームで実行すると、収束しない問題があることがわかります。これはすべて、右端にあるこの1つの外れ値が原因です。このような場合、どうすればよいでしょうか? 結局のところ、Life Distributionでほとんどの問題を解決できます。残りの部分はNonlinearプラットフォームで解決できます。Nonlinearを開いてみましょう。Nonlinearの唯一の難点は、対数尤度関数の形式を知らなければならないことです。文献には多くの情報が掲載されています。統計に詳しい方がいらっしゃれば、ぜひ教えてください。対数尤度関数は、ここにあるデータセットの列の1つに入力されています。Nonlinearプラットフォームを使用します。まず、Life Distributionで取得したパラメータ推定値から始めます。ベータ版を約 35 から開始し、アルファ版を約 5.6 から開始して、[Go] をクリックします。
結局のところ、その程度の制御であれば、収束してパラメータ推定値を得ることができます。
実際に対数尤度を計算してみると、Life Distribution は実に近づいたことがわかります。ただ、最後のステップがうまくいかなかっただけです。Nonlinear プラットフォームを使って計算しています。とはいえ、まだ問題が発生する可能性があります。ここに別のデータセットがあります。まずはそのグラフをお見せしましょう。これも最初の例とほぼ同じです。唯一の違いは、外れ値をさらに右に移動させていることです。当然のことながら、これを Life Distribution で計算しようとすると、最初のデータセットで発生したのと同じ問題が発生します。これを Nonlinear に引き込んで収束計算を実行すると、収束したという警告メッセージが表示されますが、損失計算結果に欠損値があります。これらの推定値を保存すると、2つ目の例の列、つまり2つの観測値、つまり2つの区間が表示され、対数尤度を計算できないことがわかります。
これは、Life Distribution プラットフォームで発生している問題であり、これらの観測値が右端に大きく外れている場合、対数尤度関数が壊れてしまうことです。
これが具体的にいつ起こるのか、詳しく説明する時間はありません。私たちのスライド資料には、これらの値がどこにあるのかを計算する方法を示したスライドが1枚あります。これは、裾野のかなり離れたところに外れ値がある場合に起こる現象です。
2つ目の例に移りましょう。ここでは少し異なります。裾野に1つの観測値があるのではなく、実際には2つのデータセットがあるとします。2つの故障メカニズムがあります。同じデータセットからシミュレーションしたメインの故障メカニズムと、元のデータセットで見られる観測値の約10%に相当するセカンダリ故障メカニズムです。これらをきれいに分離するのではなく、このようなデータを取得します。横並びの棒グラフを積み上げ棒グラフに変更します。つまり、ここで見ているのは、ワイブル分布から予想されるよりも少し太い分布です。データを見ただけではそのことが分からず、Life Distributionプラットフォームにアクセスしたとしましょう。
結局のところ、このデータにワイブル分布を1つ当てはめることができます。しかし、比較分布プロットを見ると、モデルの不適合度がかなり高いことがわかります。収束はしているものの、モデルの不適合度はかなり高いのです。例えば、複数の故障メカニズムがあることを十分に理解しているケースを考えてみましょう。そこで、寿命分布プラットフォームに入り、混合モデルを作成することができます。ここでは、2つのワイブル分布から始めます。それらが重なっているかどうか、わずかに離れているかどうか、完全に離れているかどうかを指定できます。ここでは、それらが完全に重なっていると仮定し、これはかなり良いモデルに適合します。実は、もう一つやってみましょう。この軸をワイブルスケールに変更します。これで完了です。JMP内のどのグラフでも同じようにできます。
モデルの適合度がかなり向上していることがわかります。実際、一番上に戻るとモデルの比較が表示されています。私のデータでは、第2ワイブル分布の適合度がはるかに高いことに気づきました。
最初の方法と同様に、このアプローチが破綻する要因がいくつかあります。そこで、いつ心配になり始め、何ができるかを示すデータセットを作成しました。今回は、2つ目の分布を作成しました。これも最初の分布と非常によく似ています。比較できるように並べて表示します。唯一の違いは、まず、外れ値の場合と同様に、観測値があることです。観測値を裾のさらに外側に押し出しました。次に、グラフからはそれほど明らかではありませんが、2つ目の例では、裾の上の観測値がかなり少なく、約100分の1になっています。最初のシミュレーションデータセットでは約7万個の観測値を使用しましたが、2つ目のデータセットでは約1000個、あるいは1000個を少し超える程度の観測値しか使用していません。つまり、データセットはかなり小さくなっています。これをLife Distributionを使ってフィッティングすると、実際にはフィッティングはより良く見えます。しかし、収束しないという問題は依然として残っています。
さらに、混合分布を適合させようとすると、この場合は 2 つの Weibull を適合させるのですが、非収束の問題が発生しています。
もちろん、観測値や分布の様々なセット、様々な組み合わせを試すことはできます。しかし、その場合、あれこれと手探りで探ることになります。実際、ここで問題になるのは、これらの観測値、つまりデータセットの規模が小さいことです。しかも、かなり端の方にあります。これをモデル化するには、もっと良いアプローチがあるはずです。実は、このデータは分離されているため、空間のこの領域にある観測値を見ると、観測値がありません。これらの観測値は分布の1つから来ていて、残りの観測値は別の分布から来ていると考えるのが妥当かもしれません。そう、2つの異なる分布をそれぞれ異なる方法でモデル化できるのです。とても簡単です。必要なデータセットの一部を除外して非表示にし、同じ分布を実行するだけです。これは事前に設定しておきました。つまり、今回のケースでは、私は…
もう一度やり直させてください。すべての観察結果を削除するか、非表示にして除外する必要があります。
できました。非表示と除外です。もう一度実行してみましょう。もう一度。スクリプトに問題が発生しているので、手動で実行します。非表示と除外を行います。「Life Distribution」プラットフォームを開き、例3の頻度、下限値と上限値を入力して、ワイブル分布を当てはめます。結果として、両方のデータセットを含めなくても、実際にはデータに適合していることがわかります。この時点で、おそらく元に戻るでしょう。観測値を反転し、データの他の部分を再適合させるでしょう。データセットが明確に分離されていれば、それぞれに別々のモデルを当てはめることができます。では、3つ目、そして最後の例に進みましょう。これは、Mehulが親切にも共有してくれた、現実世界の正当な半導体データであり、データに通常あるあらゆる欠点や歪みを取り除いたデータです。
さて、これを見ると、私たちが過去に見たものとはかなり違って見えます。
右裾だけでなく左裾にも観測値があります。他のデータセットのように明確な分離はありません。確かに、これらの観測値に寿命分布を当てはめるという点では、例えば上の2つの観測値と真ん中の観測値に当てはめるといった恣意的な判断は可能です。しかし、必ずしも理想的なアプローチとは言えません。まず、非線形プラットフォームを設定して混合モデルを当てはめようとしました。尤度を計算できない区間がかなりあることにお気づきでしょう。つまり、非常に問題のあるデータセットです。データセットの一部に個別の寿命分布を当てはめる以外に、より豊富なデータセット、つまりデータの出所に関するより多くの情報にアクセスできれば、問題の原因を特定できる可能性があります。ここで、おそらく約2か月分のデータを見ているということを覚えておいてください。
このデータセットは複数のロット、複数のウェハ、そして数十万件の観測データから得られたものです。故障メカニズムの複数の原因が存在する可能性があります。
問題は、このデータセットで実際に問題を引き起こしているのは、データの特定の部分なのかということです。私が行ったのは、データセットの解析です。改めて、この情報を共有してくれたMehul氏に感謝します。フィッティングにかかる時間的な制約から、実際にはデータのサブセットのみを抽出しました。しかし、これが元のデータです。2つの異なるバージョンがあります。ここには4つの異なるロットがあります。各ロットには、数枚から12枚程度のウェーハが含まれています。問題は、問題がどこから生じているのかということです。皆さんもよくご存知のプラットフォームを使用します。もしご存知でなければ、「分析」メニューの「信頼性と生存時間」にある「パラメトリック生存時間への適合」にあります。「適合モデル」をご存知であれば、非常によく似ています。区間打ち切り時に下限と上限を持つ光分布のように設定できます。適合モデルとは異なり、位置の要因だけでなく、データの中心がどこにあるかに影響する要因だけでなく、データがどの程度広がっているか、つまりスケールに影響する要因も指定できます。
設定は既に済んでいます。この非常にシンプルなモデルをそのまま使って、「パラメトリック生存時間適合」を実行します。実行するとすぐに、欠損値がすべてあることに気づくでしょう。これは非収束性があるためです。このプラットフォームの優れた点は、データフィルターを使ってこの問題を診断できることです。データフィルターを開き、条件付きデータフィルターとして設定し、「新規」をクリックします。すると、すべての新しいロットで推定値が得られることがわかります。問題を引き起こしているのは古いロットだけです。もう少し詳しく調べてみましょう。トリプルAロットを見ると、問題があります。これで、このロットのどこかにあることがわかりました。ウェハ1を見てみましょう。これは良さそうです。ウェハ2、3。これが私の問題の一つです。
4枚目のウェハーに何か問題が起きているようです。この時点で、おそらくこれを取り出すことができるでしょう。これまで見てきたツールを駆使して、確認できるかもしれません。
データストアに戻って、このロットの処理方法に何か他の原因があるのかどうか調べる必要があるかもしれません。しかし、これは明らかに別のロットです。残りのウエハーを調べてみると、この最後のウエハー以外はすべて正常です。ウエハー15も問題があります。しかし、このアプローチの最大のメリットは、より豊富なデータソースがあれば、より深くデータを分析できる診断ツールが手に入ることです。
まとめると、半導体業界では大規模な信頼性データが一般的です。これは、特に高品質で欠陥率が非常に低い製品の場合、ドリフトを判断するための貴重なツールとなります。これまで見てきたように、分布は非常に複雑で、複数の故障メカニズムと複数の分布が含まれることがよくあります。そのため、モデルをフィッティングするだけでなく、このデータに合理的なモデルをフィッティングするだけでなく、データ内に存在する問題を診断するためには、少し斬新なフィッティング手法に頼る必要があります。いつものように、そしておそらく最も重要なのは、歴史的およびプロセスに関する知識から、これが私たちが進むべき最善の方向であると判断できるという点で、専門知識が極めて重要であるということです。
お時間をいただきありがとうございました。この講演から何かを得ていただければ幸いです。ありがとうございます。