Siltronic AGは、半導体ウェーハ業界における世界的なテクノロジーリーダーです。シリコンウェーハの製造には、結晶成長からウェーハのパッケージングに至るまで、多くの工程が必要です。
複雑な運用環境では大量のデータが生成されるため、様々な観点から様々な詳細情報が重要になります。データは、JMPが一般的に読み込み可能なデータベースやその他のリソースに保存される場合があります。これらのデータは、1つのデータテーブルに収まりきらないため、この講演では、状況に応じてマスターデータテーブルを追加データで拡張する方法を説明します。また、より詳細な情報を含み、マスターデータテーブルにリンクされている追加テーブルをクエリする方法の例も紹介します。
マスターデータテーブルには、説明した機能を実装するためのテーブルスクリプトのセットが付属しています。また、説明した機能を実現するための詳細なJSLスニペットについても説明します。
皆さん、こんにちは。このビデオをご覧いただきありがとうございます。私のプレゼンテーション「データコックピット:クリックするだけでマスターテーブルを拡張し、追加データを追加する方法」へようこそ。まず、私の会社であるSiltronicについてお話しさせていただきます。当社は4つの世界クラスの生産拠点、4,500人の従業員を擁し、グローバルな規模とネットワークを有し、シリコン技術において50年以上の歴史を誇ります。当社はWacker傘下として設立され、1984年に最初の200ミリメートルウエハーを、1990年には最初の300ミリメートルウエハーを生産しました。現在もサイズは縮小の一途を辿っており、ご覧のとおり、デザインルール11ナノメートル、7ナノメートル、8ナノメートル、5ナノメートル、3ナノメートル、そして現在は2ナノメートルとなっています。
2015年に株式会社として上場し、現在、シンガポールの新工場とフライブルクの結晶引き上げ工場を開設し、事業を拡大しています。ここでは、エレクトロニクスのバリューチェーンと、半導体シリコンウェーハから超高純度ポリシリコンに至るまでの価値向上の様子をご覧いただけます。これは半導体およびエレクトロニクスにおける当社の生産工程であり、その価値は1000倍以上です。ここでは、国際的な製造ネットワークをご覧いただけます。ドイツのフライブルクとブルクハウゼンには、小径ラインと結晶引き上げ・ウェーハ製造施設があり、ブルクハウゼンは当社の研究開発拠点の中心地です。
ポートランドとシンガポールに200ミリウエハー工場を保有しています。また、シンガポールには結晶引き上げ工場と300ミリウエハー工場も保有しています。シンガポールのこれらのFAPは、世界最新かつ最大級の規模を誇ります。トップレベルの技術力と高い品質レベルは、当社にとって等しく重要です。現在、2ナノメートルノードに取り組んでおり、ウエハーの50以上のパラメータを同時最適化し、枚葉式ウエハートレーサビリティも確保しています。そのため、膨大なデータが生成されます。これが当社の生産ワークフローです。原材料である超高純度シリコンから始まり、チョクラルスキー法またはフロートゾーン引き上げ法による結晶引き上げ、インゴット研削、マルチワイヤースライス、エッジラウンディング、レーザーマーキング、ラッピング、洗浄とエッチング、研磨、そして最後にエピタキシー工程へと続きます。自己紹介を少し。私は電気技術者で、当社で行っているような電熱プロセスのシミュレーションに関する博士号を取得しています。私は統計学の教育を受けており、主な仕事はシルトロニック・フライブルク社でのシリコン結晶成長プロセスの開発です。ディスカバリーサミットへの参加、そしてJMPを使った仕事の恩恵を与えてくれた会社に感謝したいと思います。
私は、約500人のユーザーを抱えるSiltronic社内のJMPソフトウェアのサポートも担当しています。次に、アプリケーション「データコックピット:クリック時にマスターテーブルを追加データで拡張する方法」についてです。私たちが抱えていた問題は、1つのテーブルに製品やバッチなどの概要と、パフォーマンスやその他のパラメータを評価するためのグラフをいくつか含める必要があることでした。メインテーブルの内容と選択に基づいて生成される追加のテーブルと、特定の値を持つ追加の列を追加したいと考えています。また、より詳細なデータにドリルダウンするためのリンクも提供したいと考えています。JMPは優れたグラフィカルユーザーインターフェースであることは認識していました。JMPデータテーブルは、そのための優れたグラフィカルユーザーインターフェースです。この問題を解決するために、多くのデータベースクエリ、特に新しいSQLクエリオブジェクトを使用しました。概要にはJMPデータテーブルを使用し、クリック時にイベントハンドラーを動作させ、プラットフォームの起動、列の追加、詳細テーブルの生成、またはワンクリックですべてを実行するためのテーブルスクリプトを多数使用しました。つまり、JSLはこれらすべての機能を実装するのに適したツールです。実際のアプリケーションでは、データは企業のデータベースから取得されます。
このプレゼンテーションでは、サンプルデータテーブル「陽極接合」を用いてこれをシミュレートします。コックピットの概要は、実際には多くの異なるテーブルへのクエリによって作成されます。追加のテーブルは、同じテーブル、または他のテーブル、あるいは他のデータベースから追加されます。また、ファイル、図、動画など、JMPで利用可能な他のソースも実装できます。しかし、このプレゼンテーションでは、データベースクエリが企業データベースへのデータベースアクセスと非常に似ているため、「陽極接合」テーブルを使用します。このデータテーブル「陽極接合」には、複数のバッチ情報が含まれており、各ウェーハのバッチはウェーハIDです。各ウェーハには、ここに示すように、5つの変数(電荷、流量、位置、ピストン力、真空度、電圧)などのデータの関数があります。各ウェーハには、良否などの評価があります。これが、データとスクリプトを含むコックピットの外観です。ウェーハIDと評価、そしてここに示すようにいくつかの集計データが含まれており、多くのテーブルスクリプトがあります。ドリルダウンするためのリンクはこちらです。ここに列があり、追加の列は列グループの詳細にグループ化されています。後ほど説明します。式型のグラフ列もあります。
より詳細な表示はこんな感じです。ここでJMPに切り替えます。コックピットは現在空の状態です。ここには、プレゼンテーションの概要を表示して背景を確認できるスクリプトがあります。ここには、この表の使い方を説明するドキュメント付きのスクリプトがあります。後ほど詳しく説明します。スクリプトはグループ化されています。スクリプトグループを開き、「コックピットを更新」をクリックすると、コックピットの主要データを取得できます。ここには30枚のウェーハがリストされており、集計データも表示されています。
これはテーブルをクリアして、再度データを入力するスクリプトです。データベース全体を見ることができますが、実際のアプリケーションでは不可能です。しかし、ここで開くことができます。これはJMPのサンプルデータテーブルです。122行、2,000個のウェーハIDが表示されています。このグラフでは、陽極接合サンプルテーブルにある電荷、流量などの機能データを確認できます。コックピットにアクセスするために、ここで興味深い詳細データを探しました。これは電荷の位置43かもしれません。ここで大きく変化しているのがわかります。または、ここで特徴的な流量の位置40、この位置、そしてピストン力です。
特性位置として位置30、つまり真空、つまり位置3があります。これは興味深いかもしれません。そして、位置27の電圧が興味深いです。ここには変数を簡単に切り替えるための列スイッチャーがあります。これが使用するデータベースです。閉じます。コックピットに戻り、これがどのように行われるかを見てみましょう。コックピットを更新します。スクリプトを編集します。これは非常に小さく、主に新しいSQLクエリを使用しています。ご覧のとおり、データベースではなくJMPテーブルにアクセスします。これがJMPテーブルとデータベースにアクセスする主な違いです。クエリを入力するためにカスタムSQLも使用しています。ここでは、コックピットで操作できるように、ウェーハIDの一部だけをフィルタリングしています。ご覧のとおり、最大値や平均値などの集計データも取得しています。カスタムSQL文字列内の二重引用符をエスケープする必要があるため、SQLが少し見にくくなっています。
後ほど、より分かりやすい方法を紹介します。クエリが実行され、テーブル(コックピット)が更新されます。JMPはこのテーブルを開いてクエリの終了時に閉じないので、ここでJMPデータテーブルを閉じる必要があります。ここでは、クエリの実行時に不要なスクリプトをいくつか削除します。これは非常に小さなスクリプトで使いやすく、メンテナンスも容易です。データテーブルをクリアするには、ここで何をするかを見てみましょう。すべての行を削除します。後ほど表示するグラフの列を削除します。後ほど表示される列グループの詳細のすべての列を削除し、ウェーハIDのプロパティを削除します。すべて実行してみましょう。すると、コックピット全体がどのように表示されるかを確認できます。グラフを含む追加の詳細テーブルがいくつか取得されます。ここでは、コックピット内のウェーハについて、クエリで指定した30個のウェーハIDと、フローの詳細データを取得しています。テーブル内には、詳細曲線を表示するためのグラフビルダーを表示するスクリプトを配置しています。ここで締め切らせていただきます。料金についても同様です。
ここにリンク参照があり、ここにリンクIDがあります。このグラフビルダーではコントロールパネルを表示でき、この詳細テーブルで使用できます。この詳細テーブルでは、コックピットのメインテーブル(例えば状態)のデータをリンクするだけで、同じテーブルにあるかのように使用できます。ここではオーバーレイとして使用し、良品と不良品のウェーハを異なる色で表示しています。これがリンクの目的です。コックピットの詳細を見てみましょう。グラフの下には、ウェーハIDごとの最大電荷量などの概要グラフがあり、列切り替え機能を使用してさまざまな変数を確認できます。ポイントにマウスを合わせると詳細グラフが表示されます。これは、グラフをデータテーブルに列として追加し、この列をラベルとして設定したためです。そのため、グラフで詳細をラベルとして確認できます。真空平均値に差があるかどうか、なぜ良品と不良品があるのかをここで評価できるかもしれません。
あるいは、例えば一元配置分析を行うこともできます。ここでも詳細が表示されています。これはスクリプトとしてどのように実行されるのでしょうか?これは単純なグラフビルダーです。グラフビルダーを作成し、そこからスクリプトを取り出し、ここにあるようにテーブルスクリプトに貼り付けました。ここでは、集計値と詳細値を使って予測スクリーニングを実行できます。どのパラメータが状態を良好または不良にするかを確認できます。これがどのように行われるかは、ここで確認できます。これは単純に…詳細列、グループ詳細を検索し、もしあれば、集計値を使って予測スクリーニングを呼び出します。詳細列グループ詳細がある場合は、列グループ詳細も追加します。つまり、これらの列も予測スクリーニングに使用されます。これで、セクショングラフの内容を確認できました。さらに詳細を見てみましょう。ウェーハIDの詳細です。これはウェーハIDをクリックするためのヒントです。ここをクリックすると、ウェハー ID 1971 または 1973 の詳細が表示されます。
単に新しいテーブルが生成され、そのテーブルにはこのグラフを表示するスクリプトが付属します。
これはどのように実現できるでしょうか?ここで使用されている技術はイベントハンドラーです。列情報の下に、イベントハンドラーがあります。イベントハンドラーには、JMPが既にスクリプトフレームを提供しています。クエリを開始するためのスクリプトを実装しました。このクエリでは、現在位置の列と行を使用できます。ここでアクセスできるのは、ウェハIDとウェハIDの番号です。ここでデータベース接続が必要です。このSQL文では、二重引用符をエスケープする必要のない文字列を入力する別の方法が示されています。少し見栄えが良くなりました。「Eval Insert」を使用して、クエリフィルター、つまりクエリ条件をこのクエリに挿入します。ここで現在の列のID、つまりウェハIDを取得し、クエリにフィルターを挿入します。完了したら、データテーブルを閉じ、いくつかのスクリプトを削除し、「Charge vs. Order」というスクリプトをテーブルに追加します。これが私の作業です。ここをクリックするとテーブルが表示され、ここをクリックするとグラフが表示されます。これも 1 ステップだけで実行できます。
これはもう必要ありません。次のスクリプトを見てみましょう。すべての列とすべての行の選択を解除します。選択した行の詳細を表示します。行をいくつか選択する必要があります。これを実行してみましょう。コントロールボタンを押しながら、1、3、5を選択し、選択した行の詳細を表示します。そうすると、グラフの異なる列に状態が良好または不良である、これら3つのウェーハIDの真空曲線が表示されます。比較することができます。これはどのように行われるのでしょうか?JMPのホームウィンドウに移動すると、背景に陽極結合テーブルが作成されていることがわかりますが、非表示になっており、このウィンドウであるグラフのみが表示されます。これをダブルクリックするとテーブルを見ることができます。そうすると、テーブルは非表示ではなくなります。これがどのように機能するかを見てみましょう。グラフを閉じるとテーブルも消える別の機能があります。テーブルのみが表示されます。これがどのように行われるかを見てみましょう。ここでは、まず、何も選択されていない場合はこれがポップアップウィンドウです。何かが選択されると、ウェーハリスト文字列をコンパイルします。これはウェーハIDのリストを含む文字列で、substituteを使って角括弧をこれらの括弧に置き換えます。
このリストについても同じです。JMPデータテーブルへの新しいSQLクエリを入力し、「評価挿入」を使用して、このウェーハリストをSQLの条件として指定します。実行時に同じ操作を実行すると、グラフビルダーがスクリプトとして追加されます。ここでグラフビルダーが実行されます。ここでグラフビルダーオブジェクトに、閉じる際にデータテーブルと陽極接合の詳細を閉じ、何も保存しないように指示します。これは小さなスクリプトで、選択したウェーハIDの曲線を表示する便利な機能があると思います。スクリプトを閉じると、すべてが消えます。ここまでが詳細です。
それでは、詳細を更新してみましょう。ご覧のとおり、これらは追加された詳細列です。ポイントがなぜ重要なのかは既に説明しましたが、これらはこのスクリプトによって追加されています。もう一度テーブルをクリアし、コックピットを更新してメインデータを表示します。このスクリプトを詳細列から開始しましょう。ここに詳細が表示されていますね。これがどのように動作するかはここで説明します。まず、必要な列名、クエリに必要な名前、そしてクエリに必要なフィルター値のリストを作成します。
各データセットを連想配列にまとめ、連想配列のリストを作成します。詳細列が存在しない場合は、ここでご覧の通り作成します。そして、すべての詳細リストを調べて… 次のステップでは、すべての詳細列に対して列グループの詳細を作成します。そして、すべての詳細列に対してループを実行し、ここでご覧の通り、各詳細列のクエリを実行します。ここでも、Eval Insert を使用して、クエリに必要な名前と値を入力します。これが各詳細列のテーブルを作成するためのループです。この更新により、これまで見てきたように、詳細列に値が導入されます。そして最後に、ループ内では、もちろん詳細テーブルを閉じる必要があります。では、これがどのように動作するかをもう一度確認してみましょう。テーブルをクリアし、コックピットを更新し、ここでご覧の通り詳細列を追加します。これはそれほど大きなスクリプトではありません。仕組みを理解しようと思えば、メンテナンスは比較的簡単だと思います。次の詳細は、真空のグラフを追加することです。
仕組みはこんな感じです。これを押すとグラフが生成されます。少し右にスクロールします。仕組みは以下のとおりです。まず列を生成し、データテーブルの更新をミュートします。そして各行に対して、先ほどと同様に必要な詳細に関するクエリを実行します。そしてグラフビルダーオブジェクトを作成し、それを画像として列グラフのバキュームに保存します。最後に、もちろんグラフビルダーとデータテーブルを閉じます。そして、グラフが表示されるようにセルの高さを設定します。これが仕組みです。
次の詳細は、チャージの詳細クエリです。ここで、ご覧の通り、グラフビルダーを備えた追加テーブルが生成されます。これは非常に簡単です。これは、このようにウェーハリストを検索するだけです。次に、詳細テーブルをクエリし、テーブルにプロパティを追加し、グラフビルダー用のスクリプトを実行してスクリプトを実行します。さらに、ここでリンクIDと参照を生成して閉じます。このウェーハIDで使用できるように、再度実行します。ここでは評価は行われません。
評価は、ここではコックピットテーブルにのみ表示されます。これにより、詳細グラフで評価を活用できるようになります。もう一度閉じましょう。フローについては、同じです。例えば、すべてのウィンドウが表示されたくない場合、例えば、多くのウィンドウがある場合は、テーブルをクリアして、ここで実行できるように、すべてをプロジェクトに移動できます。現在のデータテーブル、つまりコックピットのプロジェクトを作成できます。これはもう必要ありません。テーブルを単独で使用できます。ここでのように左側のパネルを閉じて、全画面にすることができます。ここでもすべて同じように機能します。コックピットの更新などが可能です。料金のクエリ詳細など、詳細を作成する場合は、ここでご覧のとおり、別のウィンドウではなく、タブで表示されます。これで私のプレゼンテーションは終了です。ご清聴ありがとうございました。ご質問がありましたら、ディスカバリーサミット、ユーザーグループ、またはスクリプターズクラブでお会いしましょう。改めて感謝申し上げます。良い一日をお過ごしください。 バイバイ。