(57)【要約】 【課題】検索機能を別の検索デバイス内でリモートで行う方法と比較すると、強力で高速な検索機能がより簡単である改善されたアナライザを提供する。【解決手段】第１ステップで第１データストリームを第１データパターンと比較し、第２ステップで第２データストリームを第２データパターンと比較し、それぞれの間の一致を示す一致信号を生成するパターンマッチャと、前記第１ステップの一致信号に依存して前記第１データストリームの一部を記憶し、記憶したデータを第２ステップで第２データストリームとして出力するトレースメモリと、前記第１、第２データストリームを受信し、前記第１ステップで前記第１データストリームを前記パターンマッチャに提供する第１の状態に設定され、前記第２ステップで前記第２データストリームを前記パターンマッチャに提供する第２の状態に設定されるデータスイッチとを備える。  【選択図】図１
2006295892.tif 000002
【特許請求の範囲】
【請求項１】
データソースが供給する第１の着信データストリームを解析するデータアナライザであって、
第１のステップで前記第１のデータストリームを第１のデータパターンと比較し、第２のステップで第２のデータストリームを第２のデータパターンと比較し、前記第１のデータストリームと前記第１のデータパターンの間の一致または前記第２のデータストリームと前記第２のデータパターンの間の一致を示す一致信号を生成するように構成されるパターンマッチャと、
前記第１のステップの一致信号に依存する前記第１のデータストリームの一部を記憶し、記憶したデータを第２のステップで第２のデータストリームとして出力するように構成されたトレースメモリと、
前記第１のデータストリームと第２のデータストリームとを受信するように構成され、前記第１のステップで前記パターンマッチャに前記第１のデータストリームを提供する第１の状態に設定され、前記第２のステップで前記パターンマッチャに前記第２のデータストリームを提供する第２の状態に設定されるデータスイッチと、
を備えるデータアナライザ。
【請求項２】
前記第１のステップと第２のステップを開始するために、前記パターンマッチャ、前記トレースメモリ、前記データスイッチを制御するように構成されたコントローラを備える、請求項１に記載のアナライザ。
【請求項３】
前記コントローラは、
前記第１のステップで、前記データスイッチを前記第１の状態に設定することと、前記パターンマッチャを前記第１のデータパターンに設定することと、前記着信データストリームの一部を記憶するように前記トレースメモリを作動することとを制御するように構成され、
前記第２のステップで、前記データスイッチを前記第２の状態に設定することと、前記パターンマッチャを前記第２のデータパターンに設定することと、前記第２のストリームを出力するように前記トレースメモリを作動することとを制御するように構成される、請求項１又は２に記載のアナライザ。
【請求項４】
前記コントローラは、前記データパターンの入力と、前記第１のステップと前記第２のステップの開始のうち少なくとも１つのために構成されたユーザインタフェースを備える、請求項１から３のいずれか１項に記載のアナライザ。
【請求項５】
前記コントローラは、異なる各データパターンが前記パターンマッチャにロードされる前記第２のステップを繰り返すように構成される、請求項１から４のいずれか１項に記載のアナライザ。
【請求項６】
異なる各データパターンについてトリガ信号発生をカウントするように構成されたカウンタを備える、請求項５に記載のアナライザ。
【請求項７】
前記データストリームを並列に受信するように構成され、各作動されたデータパターンに依存して各一致信号を生成するように構成された、１つまたは複数の別のパターンマッチャを備える、請求項１から６のいずれか１項に記載のアナライザ。
【請求項８】
前記一致信号に基づいて、前記第１のデータストリームの選択された部分を記憶するために前記トレースメモリに供給されるトリガ信号を生成するように構成されたトリガ回路をさらに備える、請求項７に記載のアナライザ。
【請求項９】
前記トリガ回路は、前記一致信号と以前の状態とに基づいて実際の状態を決定し、さらに前記実際の状態に依存してトリガ信号を生成するように構成されたステートマシンを含む、請求項８に記載のアナライザ。
【請求項１０】
前記トリガメモリが、あらかじめ定義された時間とあらかじめ定義された受信データ量のうちいずれかの後にデータ取得を停止するように、前記トレースメモリを制御するために、前記トリガ回路から受信したトリガ信号に依存してトレースメモリ制御信号を生成するように構成された実行制御回路をさらに備える、請求項１から９のいずれか１項に記載のアナライザ。
【請求項１１】
前記着信データストリームＤ１と前記第２のデータストリームＤ２は、複数のパラレルビットのデータのシーケンスである、請求項１から１０のいずれか１項に記載のアナライザ。
【請求項１２】
制御可能な接続上で前記第１のトレースメモリに接続された第２のトレースメモリを備え、前記制御可能な接続は、前記第２のデータストリームの選択されたデータが前記第２のトレースメモリ内に記憶されるように前記トリガ回路によって制御されるように構成される、請求項１から１１のいずれか１項に記載のアナライザ。
【請求項１３】
第１のデータストリームを解析する方法であって、
第１のデータストリームを第１のデータパターンと比べ、前記第１のデータストリームと前記第１のデータパターンの間の一致を示す一致信号を生成するために、パターンマッチャに第１のデータストリームを供給するステップと、
前記一致信号に依存して前記第１のデータストリームの一部をトレースメモリ内に記憶し、前記記憶されたデータを第２のデータストリームとして出力するステップと、
前記第２のデータストリームを前記第２のデータパターンと比べ、前記第２のデータストリームと前記第２のデータパターンの間の一致を示す一致信号を生成するために、前記パターンマッチャに前記第２のデータストリームを供給するステップとを有する方法。
【請求項１４】
好ましくはデータキャリア上に記憶され、前記アナライザのデータ処理システム上で実行したときに請求項１３のステップを制御するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータソースからのデータストリームの解析に関する。
【背景技術】
【０００２】
プロトコルアナライザは２つのデバイス間のデータトラフィックをリアルタイムで記録し、たとえばデータパック指向プロトコル(data packed oriented protocol)のパケットレベルなど、定義されたレベルのデータプロトコルでトレース情報（trace information）を視覚化する。したがって、プロトコルアナライザは対応するプロトコルデコード機能を備える。
【０００３】
通信デバイス間のデータ転送には種々のデータプロトコルが使用される。チップレベルのデータ交換のデータプロトコルの標準の例は、ＰＣＩ（周辺コンポーネント相互接続）とＰＣＩエクスプレスである。これらのプロトコルは、サーバからワークステーション、パーソナルコンピュータ、モバイルデバイスの範囲にわたるコンピュータ内で、たとえばＣＰＵ（中央演算処理装置）と周辺装置の間などのデバイスを信頼性高く高速に相互接続することを可能にする。
【０００４】
プロトコルアナライザは典型的には、ＤＵＴ（被測定物）への物理インタフェース、データストリーム内の特定のシーケンスでトリガするパターンマッチャ(pattern matcher)、リアルタイムでデータをキャプチャするトレースメモリ(trace memory)を備える。たとえば検索またはフィルタリングなど、キャプチャしたデータの解析は典型的には、データキャプチャ後の後処理で行われる。
【０００５】
プロトコルアナライザの例は、アドインカード、マザーボード、チップ、システムなどのＰＣＩエクスプレスベースのデザイン(design,設計)でＰＣＩエクスプレスバスプロトコル(PCI Express bus protocols)を解析する、本出願の出願者であるアジレントテクノロジーズ社のアジレントＥ２９６０Ａプロトコルアナライザである。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は改善されたアナライザを提供することである。この目的は独立項で解決される。好ましい実施形態は従属項に示す。
【課題を解決するための手段】
【０００７】
本発明の実施形態によれば、データスイッチ、パターンマッチャ、トレースメモリ、制御ユニットを備えるアナライザに着信データストリームを供給する。第１のステップではデータソースから着信データを得る。したがって、データスイッチを制御してパターンマッチャに着信データストリームを供給する。パターンマッチャは着信データストリームを第１のデータパターンと比較し、第１の一致を検出した後、すなわち、着信データストリーム内のデータシーケンスが少なくとも部分的に第１のデータパターンと等しい場合、第１の一致信号を生成する。この一致信号に基づいて、着信データストリームの特定の一部を記憶するように、トレースメモリを制御する。第２のステップでは、トレースメモリ内にデータをキャプチャした後、取得したデータ内で検索を行う。したがって、データスイッチを制御して、キャプチャしたデータを、トレースメモリからパターンマッチャに読み出すことによって生成された第２のデータストリームを供給する。パターンマッチャは、トレースメモリが供給した第２のデータストリームを第２のデータパターンと比較し、第２の一致が検出されれば指示を生成する。
【０００８】
したがって、パターンマッチャは、データ取得と取得したデータ内の検索という、解析の２つのステップに使用される。したがって、キャプチャしたデータを検索するワークステーションなど別の検索デバイスにトレースメモリの内容をアップロードする必要はない。
【０００９】
この結果、検索機能を別の検索デバイス内でリモートで行う方法と比較すると、強力で高速な検索機能がより簡単に実現できる。
【００１０】
さらに、パターンマッチャは強力なデータ比較機能を備えているので、キャプチャしたデータの検索はワークステーションが提供するソフトウェア制御式検索アルゴリズムによる検索より大幅に高速である。これは、ソフトウェアプログラムが実現する検索アルゴリズムは、ハードウェアでの実現と比べると遅いという事実による。現在のアナライザのトレースメモリのメモリサイズは非常に大きいので（しばしば１ギガバイト以上である）、検索時間はデータ解析プロセスで重要な役割を果たす。
【００１１】
この実施形態の利点は、テストが高速なため、データキャプチャ回路またはユニットとデータ検索回路またはユニットが異なるアナライザと比べ、同じコストまたは低コストでテストカバレッジ(test coverage,試験範囲)の増大が達成でき、したがってテスト品質が高くなることである。
【００１２】
別の実施形態では、アナライザは第１のステップと第２のステップを開始し制御するコントローラを備える。コントローラは、パターンマッチャにロードするかまたは作動させるためのデータパターンを入力し、および／または、第１のステップと第２のステップを開始するためのユーザインタフェースを備える。
【００１３】
別の実施形態では、コントローラは、パターンマッチャに異なる各データパターンをロードする第２のステップを繰り返すように構成される。
【００１４】
別の実施形態では、異なるデータパターンの発生回数を数えるためのカウンタを備える。
【００１５】
別の実施形態では、アナライザは、並列にデータストリームを受信し、各々がロードされたかまたは作動された各データパターンに依存して、コントローラに提供する異なる一致信号を生成する、複数のパターンマッチャを備える。したがって各パターンマッチャは、複数の異なるパターンのうちの１つにプログラミングできる。この実施形態は、着信データストリームを異なるデータパターンと並列に比較できるという利点を有する。各パターンは、いわゆるドントケアポジション(don’t care positions,それほど重要でない場所)を含んでいてもよい。これにより、データストリームが対応するパターンの一部に一致するかどうかの検出が可能になる。
【００１６】
別の実施形態では、アナライザはトリガ回路を含む。トリガ回路はステートマシン(state machine)を備え、一致信号と最後の状態に基づいて実際の状態を決定する。したがって、トリガ回路は好ましくは、実際の状態を読み込んで入力に戻すフィードバックループを備える。ステートマシンが定義された状態になると、トリガ信号が生成される。これにより、たとえば最初のデータパケットが「Ａ」で、第２のパケットが「Ｂ」である任意のパターンシーケンスの検索が可能になる。
【００１７】
別の実施形態では、アナライザは、トリガ回路がトリガイベント(trigger event)を決定した後、データ取得があらかじめ定義された時間またはあらかじめ定義された取得データ量で停止するように、トリガ回路から受信したトリガ信号に依存して、トレースメモリ制御信号を生成する実行制御ユニットを備える。
【００１８】
本発明は１つまたは複数の適切なソフトウェアプログラムによって部分的または完全に具体化されるかまたはサポートされ、このプログラムは任意の種類のデータキャリアに記憶されるかまたは他の方法でデータキャリアによって提供され、任意の適切なデータ処理ユニット内で実行されるかまたはデータ処理ユニットによって実行されることが明らかであろう。
【発明を実施するための最良の形態】
【００１９】
本発明の実施形態の他の目的および多くの付随する利点は、付随する図面に関して、次の好ましい実施形態のより詳細な説明を参照することにより容易によりよく理解されるであろう。実質的または機能的に等しいかまたは同様な機構は同じ参照記号で参照する。
【００２０】
図１はプロトコルアナライザ１を示す。このプロトコルアナライザ１は、（第１の）パターンマッチャ１１、制御回路１６、トレースメモリ１７、２つのスイッチ入力と１つのスイッチ出力を伴うデータスイッチ１０を有する。第１すなわち着信データストリームＤ１と、トレースメモリ１７の読み出し出力Ｒからの第２すなわちトレースメモリデータストリームＤ２を、データスイッチ１０の第１と第２の入力にそれぞれ提供する。第１のスイッチ状態では、データスイッチは第１のデータストリームＤ１をスイッチ出力に渡し、第２のスイッチ状態では、データスイッチは第２のデータストリームＤ２をスイッチ出力に渡す。スイッチ出力は、パターンマッチャ１１とトレースメモリ１７の書き込み入力Ｗに接続される。パターンマッチャ１１は、受信したデータストリームを選択可能なあらかじめ定義されたデータパターンＰ１およびＰ２とに比較し、パターン一致が検出されたか否かを示す（第１の）一致信号Ｍ１を提供するように構成される。この信号は、トレースメモリ１７の制御入力に供給される。
【００２１】
制御回路１６は、データスイッチ信号Ｃ２を提供し、データスイッチ１０を制御して第１の状態と第２の状態の間で切り替え、着信データストリームＤ１またはトレースメモリデータストリームＤ２のどちらをパターンマッチャ１１に提供するかを決定する。
【００２２】
制御回路１６はさらに、トレースメモリ制御信号Ｃ１を提供し、トレースメモリ１７に、第１の状態に切り替えられているデータスイッチ１０が提供する着信データストリームＤ１を書き込み入力Ｗでキャプチャするか、または、第２の状態に切り替えられているデータスイッチ１０上で読み出し出力ＲにおいてキャプチャされたデータのデータストリームＤ２をパターンマッチャ１１に提供するかのいずれかをアドバイスする。
【００２３】
第１すなわちデータ取得段では、データスイッチ１０は第１の状態に切り替えられるように制御され、着信データストリームＤ１をパターンマッチャ１１とトレースメモリ１７に提供する。パターンマッチャ１１には第１のデータパターンＰ１をロードする。パターンマッチャが第１のデータパターンＰ１と着信データストリームＤ１の間の一致を検出すると、一致信号Ｍ１をトリガ信号としてトレースメモリ１７に提供する。
【００２４】
トレースメモリ１７は着信データのキャプチャを開始し、トリガ信号を受信するまで継続する。トリガ信号を受信するまで、トレースメモリは連続的に着信データＤ１をキャプチャする。したがって、メモリが第１のメモリアドレスから最後のメモリアドレスまで完全に書き込まれると、メモリは対応する記憶データの上書きを第１のアドレスで再開する。ここに示す単純な場合では、一致が検出されるとデータ取得はすぐに然止まる。この場合、トリガイベントの前にキャプチャされたデータだけがキャプチャされる。しかし、図２にさらに詳細に示すように、データ取得はトリガイベントの後の、既定の時間または既定の記憶量の後に停止してもよい。この場合、トリガメモリはトリガイベントに対し、１つの前に記憶した部分と、１つの後に記憶した部分を保持する。
【００２５】
第２すなわちデータ検索段では、トレースメモリ１７内に記憶された取得されたデータをより詳細に分析する。このステップを開始するために、制御回路１６はデータスイッチ１０を第２の状態に切り替え、トレースメモリが第２のデータストリームＤ２をパターンマッチャ１１に出力するように制御する。さらに、パターンマッチャ１７には第２のデータパターンＰ２をロードする。パターンマッチャが第２のデータパターンＰ２と第２のデータストリームＤ２との間の一致を検出すると、再び一致信号Ｍ１を供給するがこのときこの信号は「発見した」ことを示すものとして解釈される。
【００２６】
本実施形態の代替の実施形態では、トリガ発生数をカウントする、図１には図示しないカウンタに信号を提供する。
【００２７】
この実施形態の代替では、第２のパターンの選択は手動解析に基づいていてもよいし自動解析に基づいていてもよい。
【００２８】
図２は、より詳細なプロトコルアナライザ１の例としての構成図で解析セットアップを示す。図２は、プロトコルアナライザ１、被測定物（ＤＵＴ）２、デシリアライザ３を示す。たとえば、８つのデジタルデータストリームＳ１からＳ８がＤＵＴ２のＤＵＴピンからデシリアライザ３に提供される。デシリアライザはこれらのデジタルデータストリームを１つのデータストリームに組み合わせる。ここで各データ値はマルチビット値を表し、対応するデータストリームＤ１をプロトコルアナライザ１に提供する。プロトコルアナライザ１は、図１に加えて、たとえば３つの別のパターンマッチャ１２から１４、トリガシーケンサ１５１、実行制御ブロック１５２を備える。データスイッチ１０はマルチプレクサによって実現される。
【００２９】
パターンマッチャ１１から１４は、データスイッチ１０の出力に並列に接続される。各パターンマッチャ１１から１４からの一致信号Ｍ１からＭ４は、トリガシーケンサ１５１の入力に供給される。さらに、状態フィードバック信号ＦＢがシーケンサ１５１への別の入力としてトリガシーケンサ１５１の出力から提供される。トリガシーケンサ１５１は実行制御ブロック１５２にトリガ信号Ｃ３を供給する。実行制御ブロック１５２は、（第１の）トレースメモリ１７へのトレースメモリ制御信号Ｃ４を生成する。図１に対応して、制御回路１６はデータスイッチ信号Ｃ２を提供してマルチプレクサ１０を制御し、第１の状態と第２の状態の間で切り替え、これによって、着信データストリームＤ１またはトレースメモリデータストリームＤ２のいずれをパターンマッチャ１１から１４に供給するかを決定する。
【００３０】
パターンマッチャ１１から１４は各々、着信データストリームＤ１を制御回路１６からロードされるかまたは起動された各パターンＰ１からＰｎの各々と比較し、対応する一致信号Ｍ１からＭ４を生成する。
【００３１】
トリガシーケンサ１５１は、たとえば８つの状態を含むユーザコンフィギュラブル有限ステートマシン（user-configurable finite state machine,ユーザ設定可能な有限状態機械）である。これらの状態の間の状態遷移は一致信号Ｍ１からＭ４に依存して行われる。エンコードされた状態は状態フィードバック信号ＦＢによってトリガシーケンサ１５１の入力にフィードバックされる（たとえば８つの状態について３ＦＢ信号が必要である）。その後、実際の状態が、前の状態と一致信号Ｍ１からＭ４の状態によって決定される。所望のシーケンスにしたがって、データ取得段と検索段について独立して所望の条件がプログラミングされる。
【００３２】
トリガシーケンサ１５１は、プログラマブルパターンシーケンス(programmable pattern sequences,プログラム可能なパターンシーケンス)でトリガを可能にする。１つの簡単な例として、トリガシーケンサ１５１は「パターンＡとこれに続くパターンＢ」を認識することができる。
【００３３】
さらに、実行時に決定されたデータをパターンマッチャに動的にロードすることが可能である。これにより、パターンの部分は以前に発見されたパターンに依存してもよいパターン検索シーケンスが可能になる。
【００３４】
トリガ信号Ｃ３を実行制御ブロック１５２内に使用し、データ取得を停止し、トレースメモリ１７に提供すべき対応するトレースメモリ制御信号Ｃ４を生成する時点を決定する。たとえば、データ取得はトリガシーケンサ１５がトリガイベントを決定した直後に停止してもよいし、または、たとえばトリガメモリ１７の半分がトリガイベント前の着信データストリームのデータを含み、トリガメモリ１７の他の半分がトリガイベント後に受信したデータを含むように、トリガイベント後に既定の量のデータが取得された後に停止してもよい。
【００３５】
トリガイベントが第２段で決定されると、トリガシーケンサ１５１は発見信号(found signal,発見信号)Ｃ５を生成する。データ検索は発見信号Ｃ５の生成直後に停止してもよい。別法としては、トリガイベントをカウントする、ここには示されないカウンタに発見信号Ｃ５を提供してもよい。
【００３６】
図３は、図２に示すアナライザ１の別の実施形態を示す。したがって図３は、書込み入力Ｗを備えた第２のトレース１８をさらに加えて示す。第１のトレースメモリ１７の読み出し出力Ｒは、フィルタスイッチ１９上で第２のトレースメモリ１８の書き込み入力Ｗに接続される。フィルタスイッチ１９は、トリガシーケンサ１５１が提供するフィルタ信号Ｃ６によって制御される。
【００３７】
パターンマッチャ１１から１４とトリガシーケンサ１５１は、上記のデータ検索段の検索動作と同様に、対応する所望のパターンと所望のシーケンスでプログラミングされる。ついでデータは（第１の）トレースメモリ１７から読みだされ、パターンマッチャ１１から１４に供給される。トリガシーケンサ１５１は、第１のトレースメモリ１７から第２のトレースメモリ１８にどのベクトルを書き込むかを決定し、対応するフィルタ信号Ｃ６を生成する。
【００３８】
トレースメモリの所望の部分を処理した後、第２のトレースメモリ１８はフィルタリングされたデータを含む。このフィルタ機能は検索機能と同様に、パターンマッチャのパワフルなデータ比較機能により高速で行われる。したがって、リモートコンピュータが提供する任意のソフトウェアプログラミングされたフィルタ機能と比較して、大幅に高速なフィルタ機能が実現できる。
【００３９】
例では、８つのデジタルデータストリームＳ１からＳ８は、各々が２．５ギガビット／秒のデータレートを有する。デシリアライザはこれらの信号を１つの信号に組み合わせ、データストリームＤ１のデータレートを１２５ＭＨｚに低減し、所定の変換を行う（たとえば１０ビットから８ビットへの変換）。したがってデータストリームの値は、たとえば１２８ビットなど複数のビットのデータワードである。
【００４０】
図１、図２、図３のブロックは、複数の異なる機能分散中で可能な機能分散を示すだけであることは明らかである。機能ブロックは任意の組み合わせで物理ユニット（回路、ボードなど）にグループ化できる。したがって特に、複数の機能を１つの物理ユニットに統合するか、または、１つの機能ブロックごとに１つまたは複数の物理ユニットを備えることが可能である。さらに、処理ユニット上で実行される機能をハードウェアで実行することもソフトウェアで実行することも可能であるし、または、ハードウェアとソフトウェアの混合として実行することも可能である。
【図面の簡単な説明】
【００４１】
【図１】プロトコルアナライザの主要機能構成図である。
【図２】プロトコルアナライザの例としての詳細な機能構成図による解析セットアップを示す図である。
【図３】プロトコルアナライザの代替の機能構成図である。
【符号の説明】
【００４２】
１  プロトコルアナライザ
２  被測定物
３  デシリアライザ
１０  データスイッチ
１１  パターンマッチャ
１２  パターンマッチャ
１３  パターンマッチャ
１４  パターンマッチャ
１６  制御回路
１７  トレースメモリ
１８  トレースメモリ
１９  フィルタスイッチ
１５１  トリガシーケンサ
１５２  実行制御ブロック
【図１】
2006295892.tif 000003
【図２】
2006295892.tif 000004
【図３】
2006295892.tif 000005