このブログはもともとcimetrix.comに掲載されていました。
背景
数年前、私はEDAを導入しているクライアントと仕事をしていました。そのクライアントは、EDAのトレースデータ収集機能(本質的には定期的なデータポーリング)を使用して、通常のレートよりも高い頻度でデータを収集したいと考えていました。私が慣れていた典型的なEDAデータ収集レートは10Hzで、20Hzや40Hzを実装しているクライアントも数社ありました。しかし、このクライアントは約1000Hzでデータを収集したいと考えていました。 これは通常の実現可能な速度をはるかに上回るものでした。特にWindowsのソフトウェアタイマーやクロック機能は、本質的に約15ミリ秒間隔を想定して設計されているためです。したがって、通常のデータ収集実装手法では十分な効果が得られないことが予想されました。
少し創造的な発想で解決策を思いつきました。トレースデータ収集の代わりに、イベントデータ収集を試すことにしたのです。 1秒ごとにイベント通知をトリガーし、1ミリ秒間隔で収集・保存されたイベントデータ1000サンプルを提供した。この1000サンプルは、EDAが直接サポートするデータ配列としてEDAクライアントに提示され、この解決策は非常にうまく機能した。また、このアプローチは実装と送信に驚くほど少ないリソースしか使用しないことも判明した。その主な理由は、データが非常にコンパクトであるためだ。信頼性も非常に高かった。
この配列データソリューションを用いた手法は、この非常に特殊な状況では機能しましたが、いくつかの欠点がありました。まず第一に、クライアントはデータ収集間隔を選択できませんでした。通常、トレースデータ収集では、クライアントが特定のデータ収集アプリケーションのニーズに合わせてデータ収集レートを選択します。第二に、データを受信するクライアントは、そのデータが何を意味するかを理解している必要がありました。 クライアントアプリケーションソフトウェアは、1000サンプルの配列内の各値が1ミリ秒ごとに収集されたデータを表すことを理解するようプログラムする必要がありました。最後に、収集データの報告を自動的に有効化・無効化するために、トレース開始トリガーと停止トリガーを使用できませんでした。通常、トレースデータ収集は特定の機器イベント間でデータを収集するために自動的に開始・停止でき、これは特定の処理ステップやその他の意味のある活動の間でデータ収集を集中させる便利な機能です。
EDAフリーズ3
数年前、私が共同リーダーを務めるSEMI北米DDA(診断・データ収集)タスクフォースは、EDA規格スイートの次期バージョン(通称EDA Freeze 3)の策定作業を開始することを決定しました。この作業の一環として、私はタスクフォースで検討すべき課題として以下の点を提起しました。 具体的には、現在のトレースデータ収集で一般的な10Hzを超える高頻度でEDA規格を用いたデータ収集を実現したいと考えました。特に、イベントデータ配列ソリューションを用いて1000Hz以上のデータ収集を報告する手法で得た知見を活用し、現行ソリューションの制約なしにこれをEDA規格の不可欠な要素としたいと考えたのです。この新機能は現在「キャッシュドデータ」と呼ばれています。
キャッシュされたデータ機能
この新機能の基本原理は単純です。まず、EDAクライアントがキャッシュデータ要求を定義し、レポート頻度、データ収集頻度、サンプル数、開始トリガー、停止トリガー、トリガーの周期性有無などの属性を指定できるようにします。次に、EDAサーバーが各パラメータのデータをコンパクトなデータ配列として報告します。
例えば、EDAクライアントが0.1ミリ秒(10 KHz)の収集間隔と1秒の報告間隔でパラメータを要求した場合、結果として次のような一連のキャッシュデータレポートが生成されます:

装置は0.1ミリ秒ごとにデータを収集し、1秒間その値を保存した後、収集した値を密に詰められた配列でキャッシュデータレポートとして送信する。EDAクライアントは1秒に1回データを受信し、データ収集頻度を把握する。
制限事項
キャッシュデータ提案にはいくつかの制限があります。例えば、この種のデータ配列レポートは、整数、浮動小数点数、ブール値、バイトなどの特定のデータ型にのみ実用的です。構造化データや文字列に対しては実用的ではありません。さらに、すべてのデータをこれほど高いレートで収集できる、あるいはすべきではありません。このような高レートでのデータ収集には、高速データ収集用に特別に設計された堅牢なソフトウェアが必要です。 したがって、EDA提案では、キャッシュデータ機能の使用可能領域をパラメータメタデータで指定する方法を含み、具体的な最小・最大データ収集頻度を規定しています。このため、キャッシュデータ機能は、EDAサーバーが特に高速データ収集を提供するように設計された、利用可能なパラメータの限定されたサブセットに対してのみ使用されることが想定されています。
gRPC & プロトコルバッファ
提案されているEDA Freeze 3規格には、gRPCおよびProtocol Buffer技術の使用も含まれており、これによりEDAはHTTP経由のSOAP/XMLから移行します。gRPCとProtocol Buffersはバイナリインターフェースのためのソリューションです。 DDAタスクフォースに報告された予備テスト結果では、EDAのスループットが劇的に向上し、必要な帯域幅が削減されることが示された。さらに、大量データ伝送においてコンパクト配列でのデータ報告がはるかに効率的であることも確認された。つまり、このEDAプロトコル変更により、キャッシュドデータ機能の効果はさらに高まると予想される。
SEMI投票
間もなくSEMI規格の新たな投票サイクルが始まり、新規格の改訂版について投票が行われます。 キャッシュデータ機能は、SEMI E134「データ収集管理仕様」の大幅改訂となる投票案6553と、SEMI E125「装置自己記述仕様」の大幅改訂となる投票案6527の2件に含まれています。 いずれも2020年のSEMI投票サイクル2での投票が予定されています。タスクフォースメンバーは現在、提案された投票用紙の最新改訂版をレビュー中です。
1Hzではなく10Hzでデータを収集した場合、工場アプリケーションにおいて大幅な改善が既に実証されています。EDA Freeze 3の性能向上により、1000Hz、10kHz、さらにはそれ以上のレートでデータを収集・報告できるようになれば、業界は製造プロセスをさらに劇的に改善できるでしょう。