(57)【特許請求の範囲】
【請求項１】
ユーザ・インタフェースと、
直列ビット列を受け、所定の文法に従って上記直列ビット列中の特定ビット・シーケンスを特定可能な正規表現を定義し、該正規表現を上記直列ビット列に適用し、上記直列ビット列における上記正規表現のマッチングに応答して上記直列ビット列から取り込んだデータを上記ユーザ・インタフェースを介して提示するように構成された制御器と
を具えた試験測定機器。
【請求項２】
上記制御器が、
上記正規表現のアライメント正規表現を用いて上記直列ビット列を検索し、上記直列ビット列での上記アライメント正規表現に対するマッチングに応じて、上記正規表現の残部を上記直列ビット列に適用するように構成された請求項１記載の試験測定機器。
【請求項３】
上記制御器が、上記ユーザ・インタフェースを介して予め定義した正規表現のデータを提示し、上記予め定義した正規表現の上記提示したデータに関連したユーザ入力に応答して上記正規表現を形成するように構成されることを特徴とする請求項１又は２記載の試験測定機器。
【請求項４】
直列ビット列を受ける処理と、
所定の文法に従って上記直列ビット列中の特定ビット・シーケンスを特定可能な正規表現を定義する処理と、
上記正規表現を上記直列ビット列に適用する処理と、
上記直列ビット列における上記正規表現のマッチングに応答して上記直列ビット列から取り込んだデータをユーザ・インタフェースを介して提示する試験測定方法。
【請求項５】
上記正規表現のアライメント正規表現を用いて上記直列ビット列を検索する処理と、
上記直列ビット列での上記アライメント正規表現に対するマッチングに応じて、上記正規表現の残部を上記直列ビット列に適用する処理と
を更に具える請求項４記載の試験測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験測定機器及び方法に関し、特に、正規表現を用いて直列ビット列を処理する試験測定機器及び方法に関する。
【背景技術】
【０００２】
文字列の分析に正規表現を用いることができる。例えば、Ｐｅｒｌ及びＡＷＫなどのプログラムは、正規表現パターン・マッチングに基づいている。正規表現を用いて、文字の列のマッチングを定義できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００７−５２２４５３号公報
【特許文献２】米国特許第７７９７３４６号明細書
【特許文献３】特表２００４−５２３１６６号公報
【特許文献４】特開２００７−２８６０２５号公報
【非特許文献】
【０００４】
【非特許文献１】「8b/10b」の記事、Wikipedia（英語版）、［オンライン］、［２０１４年７月７日検索］、インターネット<http://en.wikipedia.org/wiki/8b/10b_encoding>
【非特許文献２】「8b/10b」の記事、Wikipedia（日本版）、［オンライン］、［２０１４年７月７日検索］、インターネット<http://ja.wikipedia.org/wiki/8b/10b>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、こうした正規表現マッチングは、バイト、ワード、又は他の多ビット・フォーマットに既に変換されたデータに対して実行される。その一方、直列ビット列は、かかる多ビット・フォーマットにグループ化されない。
【課題を解決するための手段】
【０００６】
本発明の概念は、次の通りである。
（１）ユーザ・インタフェースと；直列ビット列を受け、正規表現を上記直列ビット列に適用し、上記直列ビット列への上記正規表現の適用に応答して上記ユーザ・インタフェースを介して取り込んだデータを表すように構成された制御器とを具えた試験測定機器。
（２）上記制御器は、上記正規表現のアライメント正規表現を用いて上記直列ビット列を検索し、上記直列ビット列での上記アライメント正規表現に対するマッチングに応答して上記正規表現の残部を適用するように構成された概念１の試験測定機器。
（３）上記制御器は、上記正規表現が定義した幅に応答して上記正規表現を上記直列ビット列に適用したときに、上記直列ビット列を参照するインデックスを増分するように更に構成された概念１の試験測定機器。
（４）上記制御器は、上記正規表現の幅に等しい上記直列ビット列を参照する複数のインデックスを用いて上記正規表現を上記直列ビット列に適用し、複数の上記インデックスからを選択するように更に構成された概念１の試験測定機器。
（５）トリガ信号を発生するように構成されたトリガ・システムを更に具え；上記制御器は、上記トリガ信号に関連した上記直列ビット列を参照するインデックスを用いて上記正規表現を上記直列ビット列に適用するように更に構成された概念１の試験測定機器。
（６）上記制御器は、上記ユーザ・インタフェースに応答して上記直列ビット列を参照するインデックスを発生し、上記インデックスを用いて上記正規表現を上記直列ビット列に適用するように更に構成された概念１の試験測定機器。
（７）上記制御器は、上記正規表現のデータを上記正規表現のマッチングに関連するように更に構成された概念１の試験測定機器。
（８）上記ユーザ・インタフェースは、予め定義した正規表現のデータを提示するように構成され；上記制御器は、上記予め定義した正規表現の上記提示したデータに関連したユーザ入力に応答して上記正規表現を形成するように構成された概念１の試験測定機器。
（９）上記直列ビット列への上記正規表現のマッチングに応答して取込みをトリガするように構成されたトリガ・システムを更に具える概要１の試験測定機器。
（１０）直列ビット列を受け；正規表現を上記直列ビット列に適用し；上記直列ビット列への上記正規表現の適用に応答しユーザ・インタフェースを介して取込みデータを提示する方法。
（１１）更に、上記正規表現のアライメント正規表現を用いて上記直列ビット列を検索し；上記アライメント正規表現への上記直列ビット列でのマッチングに応答して上記正規表現の残部を適用する概念１０の方法。
（１２）更に、上記正規表現が定義した幅に応答して上記正規表現を上記直列ビット列に適用したときに、上記直列ビット列を参照するインデックスを増分する概念１０の方法。
（１３）更に、上記正規表現の幅に等しい上記直列ビット列を参照する多数のインデックスを用いて上記正規表現を上記直列ビット列に適用し；複数の上記インデックスから上記正規表現への最大数のマッチングを有する１個のインデックスを選択する概念１０の方法。
（１４）更に、トリガ信号に関連した上記直列ビット列を参照するインデックスを用いて上記正規表現を上記直列ビット列に適用する概念１０の方法。
（１５）更に、上記ユーザ・インタフェースに応答して上記直列ビット列を参照するインデックスを発生し；上記インデックスを用いて、上記正規表現を上記直列ビット列に適用する概念１０の方法。
（１６）更に、上記正規表現のデータを上記直列ビット列における上記正規表現のマッチングに関連させる概念１０の方法。
（１７）更に、予め定義した正規表現のデータを提示し；上記予め定義した正規表現の上記提示したデータに関連したユーザ入力に応答して上記正規表現を形成する概念１０の方法。
（１８）更に、上記直列ビット列への上記正規表現のマッチングに応答して取込みをトリガする概念１０の方法。
（１９）ユーザ・インタフェースと；上記ユーザ・インタフェースを介して予め定義した正規表現のデータを提示し、上記予め定義した正規表現の上記提示したデータに関連したユーザ入力に応答して上記正規表現を形成するように構成された制御器とを具える試験測定機器。
（２０）上記制御器は、上記ユーザ・インタフェースを介した上記予め定義された正規表現に関連した少なくとも１個のマッチング値を受け、上記少なくとも１個のマッチング値を上記正規表現に加えるように構成された概念１９の試験測定機器。
（２１）上記制御器は、上記予め定義された正規表現から上記正規表現を形成し、上記予め定義された正規表現の要素に関連した値を受け、上記値に応答して上記正規表現を変更するように構成された概念１９の試験測定機器。
【図面の簡単な説明】
【０００７】
【図１】図１は、本発明の実施例による正規表現エンジンを有する試験測定機器のブロック図である。
【図２】図２は、本発明の実施例によるデジタイザ・フロント・エンドを有する図１の試験測定機器のブロック図である。
【図３】図３は、本発明の実施例による正規表現エンジンからのビット・シーケンスに対応する波形とマッチング・ビット・シーケンスとを示す。
【図４】図４は、本発明の実施例による正規表現エンジンからのビット・シーケンスに対応する波形とマッチング・ビット・シーケンスとアライメント・シーケンスとを示す。
【図５】図５は、本発明の実施例による正規表現エンジンを有するトリガ・システムを有する試験測定機器のブロック図である。
【図６】図６は、本発明の実施例によるトリガ・システムにおける正規表現エンジンを有する試験測定機器のブロック図である。
【図７】図７は、本発明の実施例による正規表現エンジンからの関連データ、マッチング・ビット・シーケンス及びビット・シーケンスに対応する波形を示す。
【図８】図８は、本発明の実施例による正規表現エンジンを有する試験測定機器のユーザ・インタフェースの例である。
【図９】図９は、本発明の実施例による正規表現エンジンを有する試験測定機器のユーザ・インタフェースの他の例である。
【発明を実施するための形態】
【０００８】
本開示では、直列ビット列用の正規表現エンジンを有する試験測定機器の実施例を説明する。
【０００９】
図１は、本発明の実施例による正規表現エンジンを有する試験測定機器のブロック図である。この機器は、直列ビット列１０を受けるように構成された制御器１２を含む。直列ビット列１０は、種々の方法で発生できる。例えば、機器は、入力信号をデジタル化するように構成されたオシロスコープにできる。デジタル化アナログ信号として表すことができるデジタル化入力信号がデジタル・データを表すことができる。すなわち、デジタル化入力信号は、データ・ストリームの一連のビットを表すことができる。直列ビット列１０は、デジタル化入力信号から抽出されたかかる一連のビットにできる。
【００１０】
他の実施例において、機器は、ロジック・アナライザにできる。ロジック・アナライザは、入力信号をしきい値と比較して、チャネル用の直列ビット列を発生するように構成できる。直列ビット列１０は、ロジック・アナライザのチャネルからのかかるビデオ・ストリームでもよい。直列ビット列を発生できる機器は、ここで説明する如く正規表現エンジンを含むことができる。
【００１１】
実施例において、直列ビット列１０は、制御器１２が処理する直前に取り込まれる必要がない。例えば、直列ビット列１０をメモリに蓄積することができる。かかるメモリは、取込みメモリにできる。他の実施例において、直列ビット列１０は、ディスク・ドライブ又は他の大容量蓄積装置の如き不揮発性メモリに蓄積できる。
【００１２】
直列ビット列１０のソースに関係なく、制御器１２は、直列ビット列１０を受けるように構成できる。制御器１２は、任意の種々の回路にできる。例えば、所望に応じて、デジタル信号プロセッサ（ＤＳＰ）、マイクロプロセッサ、プログラマブル・ロジック装置、汎用プロセッサ、又は、適切な周辺装置を有する他の処理システムを制御器１２として用いて、正規表現エンジン１３の機能を実現できる。制御器１２を実現するのには、完全に集積したものと完全にディスクリートな部品との間の、あらゆるバリエーションを利用できる。正規表現エンジン１３は、正規表現を直列ビット列１０に適用する制御器１２の機能を表す。
【００１３】
制御器１２は、ユーザ・インタフェース１４に結合される。ユーザ・インタフェース１４は、任意の種々のインタフェースを含むことができる。例えば、ユーザ・インタフェース１４は、ボタン、ノブ、スライダ、キーボード、ポインティング・デバイスなどの入力インタフェースを含むことができる。ユーザ・インタフェース１４は、表示器、光、スピーカなどの出力インタフェースを含むことができる。ユーザ・インタフェース１４は、コミュニケーション・インタフェース、タッチ・スクリーンなどの入出力インタフェースを含むことができる。任意の種々のユーザ・インタフェース又はかかるユーザ・インタフェースの組合せをユーザ・インタフェースとして用いることができる。
【００１４】
制御器１２は、直列ビット列１０への正規表現の適用に応答して、ユーザ・インタフェースにより取込みデータを表すように構成できる。実施例において、取込みデータは、直列ビット列１０自体にできる。しかし、他の実施例において、取込みデータ及び直列ビット列１０を違えることができる。例えば、更に詳細に後述するように、正規表現の直列ビット列でのマッチングを用いて、取込みデータとして取り込む他のデータをトリガできる。
【００１５】
正規表現エンジン１３を用いて、直列ビット列１０の種々の表現に影響できる。例えば、更に詳細に後述するように、データを正規表現に関連づけることができる。このデータは、マッチング・ビット・シーケンスにてエンコードされたシンボルを表すことができる。オーバーレイとしてのシンボル、シンボル自体などにより、直列ビット列１０を表すことができる。
【００１６】
他の例において、正規表現エンジン１３を用いて、直列ビット列１０、関連したデータなどにて、パターンを検索、マーク付け、又はそうでなければ識別をできる。例えば、オシロスコープにて、特定のビット・シーケンスに対して取込み信号を表すデジタル化波形を検索できる。ユーザ・インタフェースにより、デジタル化波形の関連シーケンスを表すことができる。代わりに、関連シーケンスにマークを付けることができる。
【００１７】
他の例において、正規表現エンジン１３を用いて、取込みデータを濾波できる。例えば、更に詳細に後述するように、正規表現は、特定のデバイスからのパケットのみにマッチングするマッチング値及びパケット構造を定義できる。データの取込みを濾波できるので、マッチングした取込みのみを蓄積する。
【００１８】
他の実施例において、正規表現エンジン１３の出力は、単なるマッチング以上にできる。例えば、直列ビット列１０は、取込みデジタル化波形に関連できる。値対時間としてデジタル波形を表すことができる。マッチングが出力されると、関連したデジタル化波形内の時間の如き追加データを出力に追加できる。
【００１９】
図２は、本発明の実施例によるデジタイザ・フロント・エンドを有する図１の試験測定機器のブロック図である。デジタイザ２０は、入力信号２２をデジタル化して、直列データ列１０を発生するように構成できる。
【００２０】
図示しないが、各デジタイザ２０は、必要に応じてアナログ・チャネル内に前置増幅器、減衰器、フィルタ及び／又は他のアナログ回路を有することができる。よって、デジタイザ２０への入力信号を、デジタル化の前に、増幅し、減衰し、又はそうでなければ濾波できる。さらに、デジタイザ２０は、信号をデジタル化できる任意の種々の回路にできる。例えば、デジタイザ２０は、必要に応じて関連入力信号をサンプリングするためにトラック及びホールド回路、Ａ／Ｄ変換器、デマルチプレクサ回路の如き回路を含むことができる。
【００２１】
図３は、本発明の実施例による正規表現エンジンからのビット・シーケンスに対応する波形とマッチング・ビット・シーケンスとを示す。実施例において、正規表現文法は、次のように定義できる。
【００２２】
<RegExpr> :=  1 | 0 | X
| <RegExpr> <RegExpr>
| <RegExpr> | <RegExpr>
| <RegExpr> +
| <RegExpr> *
| <RegExpr> ?
| <RegExpr> * INTEGER
| (<RegExpr>)
;
【００２３】
この例において、マッチング・ビットは、１、０又はドントケアＸとして定義できる。正規表現に、正規表現が続くことができる。代わりの正規表現は、ＯＲ「｜」演算子で定義できる。１個以上の「＋」又は０個以上の「＊」の演算子を用いて、繰り返し正規表現を潜在的に定義できる。「？」演算子は、０又は１個の前の正規表現を意味できる。「＊」演算子に続く整数は、正規表現の繰り返し数を意味できる。括弧を用いて、正規表現又は一連の正規表現をグループ分けできる。特定の文法について上述したが、実施例は、他の文法も使用できる。特に、他の文法による更なる例を以下に示す。さらに、正規表現エンジン１３が用いる文法は、上述の文法又は以下の文法の全ての概念を実現するのにただ必要なだけではない。
【００２４】
例として上述の文法を用いたが、正規表現を用いてマッチングを定義できる。例えば、「1010000110」を正規表現として定義できる。波形４４及び対応デジタル値４６を図３に示す。ビット・シーケンス４０がビット「1010000110」なので、これをマッチングとして識別できる。しかし、ビット・シーケンス４２は、このシーケンスにマッチングしない。
【００２５】
別の正規表現を「1010XX0110」と定義できる。上述の例とは対照的に、この正規表現には、２個のドントケア「Ｘ」値が含まれる。よって、シーケンス４０及び４２の両方が、正規表現「1010XX0110」にマッチングする。
【００２６】
図４は、本発明の実施例による正規表現エンジンからの波形、対応するビット・シーケンス、マッチング・ビット・シーケンス、そしてアライメント・シーケンスとを示す。実施例において、正規表現エンジン１３は、直列ビット列１０内の演算がアライメントするように構成できる。例えば、８ｂ／１０ｂの如きエンコード技術は、アライメントに使用できるビットの特定の単一シーケンス又は複数シーケンスを定義できる。８ｂ／１０ｂエンコード内のシーケンス「1100000」又は「0011111」は、直列ビット列内の１０ビットのアライメントを指示できる。周知のように、８ｂ／１０ｂエンコードにおける「1100000」は、ランニング・ディスパリティ（ＲＤ）がプラスの制御シンボルK.28.1、K.28.5、K.28.7に共通の上位７桁であり、「0011111」はランニング・ディスパリティ（ＲＤ）がマイナスの制御シンボルK.28.1、K.28.5、K.28.7の共通の上位７桁である。これら制御シンボルK.28.1、K.28.5、K.28.7は、コンマ・シンボルと呼ばれ、直列ビット列内の１０ビット毎に区切られる各シンボルと同期（アライメント）を取るために利用されている（非特許文献１のControl Symbols参照）。
【００２７】
正規表現文法を定義してかかるアライメント・シーケンスの表現を可能にする。例えば、アライメント表現を伴う正規表現は、次のように定義できる。
【００２８】
<RegExprWithAlignment>:  <RegExpr> <Alignment>
;
【００２９】
<Alignment>:  width <Expr>
|alignment <RegExpr>
|<Alignment> width <Expr>
|  <Alignment> alignment <RegExpr>
; 
【００３０】
ここでは、演算子「alignment」は、次の正規表現が直列ビット列１０内のアライメント・シーケンス用のマッチングを定義することを示せる。例えば、上述のシーケンスを用いることにより、「alignment (1100000 | 0011111)」を用いて、「1100000」又は「0011111」のいずれかをアライメント・シーケンスとして定義できる。
【００３１】
アライメント・シーケンスに加えて、幅を特定できる。この例の文法において、幅演算は、直列ビット列１０内の「ワード」の幅のビット数を示すことができる。例えば、８ｂ／１０ｂエンコード内で、幅が１０ビットにできる。よって、８ｂ／１０ｂエンコードの正規表現を「alignment (1100000 | 0011111) width 10」にできる。
【００３２】
特に、幅の定義は、上述の如く、与えた幅よりも狭いか又は広いアライメント正規表現を可能にする。上述の例において、アライメント正規表現は、１０ビット幅で２個の７ビット・マッチング・シーケンスを定義する。よって、正規表現エンジン１３が直列ビット・シーケンス１０へのインデックスを増分するとき、幅だけの増分にできる。すなわち、実施例において、正規表現は、各ビットには適用しなくても良く、アライメント正規表現に応じてアライメントされた直列ビット列１０内の複数のビットにて開始してもよい。
【００３３】
図４を参照し、正規表現「1010000110 alignment (1100000 | 0011111) width 10」を考察する。図３と同様に、波形６０及び対応デジタル値６８を示す。ビット・シーケンス６２は、アライメント正規表現「(1100000 | 0011111)」とマッチングする。定義した幅により、識別されたビット・シーケンス６２及び定義された幅に応じて、波形６０への正規表現の適用をアライメントすることを実行できる。
【００３４】
点線７０は、波形６０内の「ワード」の境界を線引きする。この例において、ビット・シーケンス６４及び６６の両方は、正規表現「1010000110」にマッチングする。しかし、ビット・シーケンス６４のみが境界７０にアライメントする。よって、ビット・シーケンス６４のみがマッチングし、ビット・シーケンス６６はマッチングしない。
【００３５】
図４において、マッチング・ビット・シーケンス６４をアライメント・ビット・シーケンス６２の近傍として示したが、かかる近接は必要ない。例えば、実施例において、アライメント正規表現を用いて直列ビット列を検索するように制御器を構成できる。見つかると、アライメント正規表現のマッチングに応答して正規表現の残部を適用するように正規表現エンジン１３を構成できる。すなわち、直列ビット列１０内でアライメントさせつつ、かつ、定義幅に従って残部を適用しても良い。
【００３６】
アライメント・シーケンスのかなり後まで、正規表現の残部のマッチングが見つからないかもしれない。例えば、正規表現の残部へのマッチングが見つかる時点までに、アライメント・ビット・シーケンスが取込みメモリから捨てられているかもしれない。しかし、正規表現エンジン１３は、直列ビット列１０にアライメントするように依然動作できる。
【００３７】
他の実施例において、アライメント・シーケンスにより、幅を暗に定義できる。例えば、「alignment (1100000XXX | 0011111XXX)」のアライメント正規表現は、「alignment (1100000 | 0011111) width 10」とほぼ類似に動作できる。すなわち、アライメント正規表現の幅を直列ビット・ストリーム１０内の「ワード」の幅に決定するように正規表現エンジン１３を構成できる。
【００３８】
実施例において、アライメント・ビット・シーケンスが既知でないかもしれないし存在しないかもしれないが、幅は既知かもしれない。例えば、アライメント正規表現は、「width 10」とできる。かかる環境において、幅に応じて直列ビット列１０を参照するインデックスを増分できるが、アライメントを決定する必要があるかもしれない。
【００３９】
種々の技術を用いて、直列ビット列１０内のアライメントを決定できる。例えば、正規表現の幅に等しい直列ビット列１０を参照する多くのインデックスを用いて、正規表現を直列ビット・ストリーム１０に適用するように正規表現エンジン１３を構成できる。すなわち、早めの類似アライメントと重複しない所定幅に対して、直列ビット列１０内の可能性のある各インデックスに対して正規表現を適用できる。例えば、幅が１０ならば、０のインデックスは、１０のインデックスにほぼ類似にできる。幅により定義された細分性のレベルにて可能性のある各アライメントに対して正規表現を適用できる。正規表現への最大数のマッチングを有するインデックスを使用インデックスとして選択できる。
【００４０】
他の実施例において、アライメントを指示できる他の技術を用いて、直列ビット列１０により用いるアライメント・インデックスを決定できる。例えば、８ｂ／１０ｂエンコードを用いる場合、シンボルの最後のランニング・ディスパリティを特定のレンジに制限できる。ランニング・ディスパリティが所望レンジ内である直列ビット列１０内のオフセット・インデックスを識別済みインデックスとして用いることができる。直列ビット列１０へのオフセット・インデックスの特定に利用できる直列ビット列１０の特性の特定の例ではあるが、適切なインデックスを定めるために、アライメントを示せる直列ビット列１０の任意の特性、その期待されフォーマットなどが、幅内のインデックスの各々に渡って検索される。
【００４１】
実施例において、直列ビット列１０は、ダイナミックな幅にできる。ダイナミックな幅に合わせるため、有効パターンを求めて直列ビット列１０を検索するように制御器１２を構成できる。有効パターンが識別されると、有効パターンの位置を用いて、正規表現を直列ビット列１０にアライメントすることができる。
【００４２】
他の実施例において、直列ビット列１０をデコードし、エラー・チェックをできる。エラーが存在するか、しきい値を超えるかなどすると、直列ビット列１０のデコードを他のオフセットで実行できる。最小のエラーのオフセットが見つかると、そのオフセットを用いて、正規表現を直列ビット列１０にアライメントできる。
【００４３】
直列ビット列１０のアライメント及び／又は幅を決定する種々の方法を説明したが、他の技術を用いてかかる情報を得ることができる。実施例において、ユーザ・インタフェース１４を介して直列ビット列１０を参照するインデックスを受けるように制御器１２を構成することもできる。このインデックスは、種々の方法で発生できる。例えば、ユーザは、オフセット、幅又はこれらの両方を提供することができる。かかる提供情報は、ユーザ・インタフェース１４、制御器１２などにより、直列ビット列１０を参照するインデックスに変換できる。このインデックスを用いて、制御器は、正規表現を直列ビット列１０に適用できる。
【００４４】
他の例において、ユーザは、カーソル位置を用いて、直列ビット列１０用のオフセット・インデックスを定義できる。ユーザ・インタフェース１４により、直列ビット列１０を提示すことができる。ユーザは、手動や、ある自動機能によるなどして、提示した直列ビット列１０内の位置を指示できる。これに応答して、制御器１２は、直列ビット列１０を参照するビット・インデックスを決定できる。アライメント・シーケンスが利用できないか、定義されていないなどの環境において、ユーザは、データを依然試験でき、直列ビット列１０内のアライメントを指示できる。
【００４５】
図５は、本発明の実施例により正規表現エンジンを有するトリガ・システムによる試験測定機器のブロック図である。トリガ入力９２に応答してトリガ信号９４を発生するようにトリガ・システム９０を構成できる。実施例において、トリガ信号９４に応答して正規表現エンジン１３により正規表現を直列ビット列に適用するように制御器１２を構成できる。
【００４６】
例えば、トリガ信号９４に関連する直列ビット列１０を参照するインデックスを使用するように制御器１２を構成できる。トリガ・システム９０からのトリガ信号９４を受けるように制御器１２を構成できる。トリガ信号９４に時間的に関連した直列ビット列１０のビット、トリガ信号９４からの特定オフセットでのビットなどを、正規表現を処理するためのアライメント指示として用いることができる。アライメントが確立すると、正規表現を上述の如く適用できる。
【００４７】
他の実施例において、トリガ・システム９０は、正規表現エンジン９１を有することができる。正規表現をトリガ入力９２に適用するように正規表現エンジン９１を構成できる。この例において、トリガ入力９２を直列ビット列にできる。上述の例を用いて、正規表現を「（1100000|0011111）」にできる。マッチングに対して、正規表現エンジンにより、トリガ入力９２を分析できる。かかるマッチングに応答して、トリガ信号９４を発生できる。実施例において、トリガ信号９４は、識別した時点又はサンプル位置、マッチング表現、トリガ入力９２における直列ビット列内のアライメント情報、直列ビット列自体、かかる情報の組合せなどを含むことができる。かかる情報を制御器１２に供給でき、正規表現エンジン１３用に用いることができ、取込みデータにて又はそうでなければ所望に用いることができる。
【００４８】
上述の如く、正規表現エンジン１３は、トリガ信号９４に応答して、アライメントした直列データ列１０に関連正規表現を適用できる。しかし、この実施例において、正規表現エンジン９１に応答して、トリガ信号９４を発生できる。上述の如く、トリガ・システム９０の正規表現エンジン９１が供給した正規表現をアライメント正規表現にできる。よって、トリガ・システム９０は、アライメントを決定する処理を実行でき、制御器１２の正規表現エンジン１３は、他の正規表現を適用してマッチングを決定できる。
【００４９】
図６は、本発明の実施例によりトリガ・システム内に正規表現エンジンを有する試験測定機器のブロック図である。正規表現エンジンは、種々の方法で機能的に分散できる。上述の如く、正規表現は、制御器１２及びトリガ・システム９０にわたって機能的に分散できる。この実施例において、制御器９３は、正規表現エンジンを有する必要がない。正規表現エンジン９１は、トリガ・システム９０の一部である。トリガ信号９２の直列ビット列への正規表現のマッチングに応答して、取込みをトリガするようにトリガ・システム９０を構成できる。
【００５０】
実施例において、かかるトリガを用いて、マッチングが生じたときのみにデータを取り込める。例えば、機器は、共用媒体からデータを取り込むことができる。特定のデバイス、パケット、ソース・アドレスなどを指示する正規表現を定義できる。よって、マッチング・ソースから信号を受けると、対応するデータのみを使用できる。例えば、かかるデータから実時間データ・アイを発生できる。正規表現を用いることにより、所望ソースからの信号のみがデータ・アイに貢献できる。
【００５１】
図７は、本発明の実施例による正規表現エンジンからの関連データ、マッチング・ビット・シーケンス及びビット・シーケンスに対応する波形を示す。実施例において、データを正規表現で表すことができる。例えば、次の文法によりデータを表現できる。
【００５２】
<RegExprWithData>:  <RegExpr> : <Data>
【００５３】
明瞭にするため、正規表現文法の残部をリストしないが、正規表現「<RegExprWithData>」を、ここで述べた任意の正規表現「<RegExpr>」として使用できる。
【００５４】
一例において、正規表現「(1010000110 : "D15.6+")」は、ビット・シーケンス「1010000110」をデータ「D15.6+」に関連づけることができる。波形１１０及び対応ビット・シーケンス９２を図７に示す。ビット・シーケンス１１２は、「1010000110」にマッチングする。よって、ユーザ・インタフェース１４を介して、関連データ「D15.6+」をボックス１１６内に表すことができる。同様に、正規表現「(1000111101 : "D17.4-")」に対し、ビット・シーケンス１１４がその正規表現にマッチングするので、ボックス１１８は、ユーザ・インタフェース１１４を介して関連データ「D17.4-」を表すことができる。
【００５５】
実施例において、かかるデータ関連を用いて、デコードを導入できる。例えば、上述の如く、２個のビット・シーケンス１１２及び１１４は、シンボル「D15.6+」及び「D17.4-」に関連した。「D15.6+」及び「D17.4-」は、８ｂ／１０ｂエンコード技術のシンボルの一部である。デコーダを定義する正規表現は、「((1000111100 : "D17.3-") | (1000111101 : "D17.4-") … (1010000110 : "D15.6+")) alignment (1100000 | 0011111) width 10」として定義できる。この例において、上述の３個の他に、シンボルに対するビット・シーケンスの関係は多数あるが、例として３個を用いる。よって、シンボルに対するビット・シーケンスの関係の全てを定義すると、正規表現を用いて直列ビット列１０をデコードできる。上述の如く、ソース波形及び／又はビット・ストリームを表す必要がない。
【００５６】
実施例において、機器のその後の動作において、かかる関連データを用いることができる。例えば、データに基づく検索を実行できるように制御器を構成できる。上述の例を用いて、「D15.6+」シンボルに対する検索を実行できる。実施例において、基本的な正規表現は、必須ではないが、ユーザから隠すことができる。例えば、種々の正規表現を、特定のシンボルに対して予め定義し、テスト設定によりロードしたりするなどができる。基本的な正規表現における情報を必要とすることなく、ユーザは、正規表現に関連したデータを選択できる。
【００５７】
正規表現に関連できるデータの例としてテキストを用いたが、他の形式の情報をデータとして用いることができる。例えば、数、表現、機能などを関連データの一部にできる。
【００５８】
図８は、本発明の実施例により正規表現エンジンを有する試験測定機器のユーザ・インタフェースの例である。実施例において、正規表現を表すようにユーザ・インタフェース１４を構成できる。一例において、予め定義した正規表現のデータを表すようにユーザ・インタフェースを構成できる。
【００５９】
予め定義された正規表現をブロック１３２及び１３４はユーザ・インタフェース１３０に表す。例えば、ブロック１３２は、正規表現「(1010000110 : "D15.6+") alignment (1100000 | 0011111) width 10”を表すことができる一方、ブロック１３４は、“(1000111101 : "D17.4-") alignment (1100000 | 0011111) width 10」を表すことができる。
【００６０】
ポインティング・デバイスのドラグ入力の如きユーザ入力を矢印１３８で表す。この入力により、正規表現を形成する入力ボックス１３６を、ブロック１３２に関連した正規表現により埋めることができることをユーザが指示できる。例えば、最初に、ボックス１３６を空にできた。矢印１３８のユーザ入力に応答して、ブロック１３２に関連した正規表現をボックス１３６に入れる。
【００６１】
しかし、ボックス１３６内の正規表現を拡張する必要がない。すなわち、ボックス１３６内の正規表現は、ソース正規表現に関連したデータが表すのを残せる。この例において、データは、「D15.6+」だろう。さらに、１個以上の予め定義した正規表現をボックス１３６に追加できる。例えば、ユーザは、ブロック１３４をボックス１３６に追加して、関連正規表現を追加し、演算子を加えるなどができる。
【００６２】
実施例において、表した正規表現は、任意の正規表現にできる。上述の如く、ブロック１３２は、アライメント及び幅の項目を有した。しかし、関連正規表現は、１個以上のアライメント及び幅の項目なしに「(1010000110 : "D15.6+")」としても良い。
【００６３】
他の例において、予め定義した正規表現は、「((1100000101 | 1010000110) : “K28.5”)」にしても良い。この正規表現は、「K28.5」として表しても良い。ユーザ入力に応答して、正規表現を、拡張した「((1100000101 | 1010000110) : “K28.5”)」という形を有するようにしても良い。すなわち、追加した正規表現を単なる文字列に限定する必要はなく、任意の有効な正規表現を含むことができる。
【００６４】
正規表現を任意の有効な正規表現にでき、これら正規表現を比較的複雑にできるので、より一層複雑な正規表現を形成でき、その複雑さをユーザから隠す可能性がある。例えば、上述の如く、８ｂ／１０ｂデコーダを正規表現として記述できる。同様に、６４ｂ／６６ｂなどの他のエンコード技術を定義できる。８ｂ／１０ｂをブロック１３２に表現でき、「64b/66b」をブロック１３４内に表すことができる。ユーザは、８ｂ／１０ｂ及び６４ｂ／６６ｂエンコードの両方に対する組合せデコーダを形成しても良い。すなわち、ユーザが「8b/10b」をボックス１３６にドラッグし、ＯＲ演算子「|」を入力し、「64b/66b」をボックス１３６にドラッグすることにより正規表現を形成しても良い。
【００６５】
さらに、追加した正規表現が任意の正規表現にできるので、かかる複雑な組合を各要素に対して完全にする必要がない。例えば、「8b/10b」正規表現は、８ｂ／１０ｂビット・ストリームを完全にデコードできるかもしれないが、「64b/66b」正規表現は、関連エンコード技術の一部を定義できるのみかもしれない。例えば、「64b/66b」用の正規表現は、「(10 | 01)X*64 width 66」にできる。
【００６６】
正規表現の構造用のユーザ・インタフェースの例としてテキスト・ボックスを用いたが、ユーザがリテラル、演算子、予め定義した正規表現などを入力できるようにする任意のインタフェースを、ボックス１３６の代わり、又は、ボックス１３６に加えて用いることができる。
【００６７】
図９は、本発明の実施例により正規表現エンジンを有する試験測定機器のユーザ・インタフェースの他の例である。ユーザ・インタフェースの表示１５０は、フィールド記述１５８及び入力フィールド１６０で示される。この例において、ＩＰパケット用の正規表現を述べるが、他のフォーマットも利用できる。正規表現を用いたパケットを定義する文法は、次のようにしても良い。
【００６８】
<Packet>:  <BasePacket>
| <BasePacket> <Alignment>
;
【００６９】
<BasePacket>:  <Field>
| <Packet> ',' <Field>
;
【００７０】
<Field>:  '[' <RegExpr> ']' ':' ID
;
【００７１】
この例において、予め定義した正規表現は、「[0000100000000000], [X*4]:Version, [X*4]:HeaderLength, [X*8]:TOS, [X*16]:TotalLength, [X*16]:ID, [X*3]:Flags, [X*13]:FragmentOffset, [X*8]:TTL, [X*8]:Protocol, [X*16]:Checksum, [X*32]:SourceIPAddr, [X*32]:DestIPAddr, [X*(TotalLength-20)*8]:Data」とできる。ここで、TotalLength ID は、バイト単位で長さを表すとしても良い。よって、データ・フィールドのビットの量は、１バイト当たり、TotalLength（バイト単位）−２０ヘッダ・バイトの８倍のビットである。
【００７２】
実施例において、正規表現の「フィールド」部分に対して、ユーザ・インタフェース１４を介して、対応ラベル及び入力フィールドを表すことができる。この例において、ユーザは、フィールド１５２及び１５４を空白のままとし、フィールド１５６を１６進法でC0A80105により埋めた。これは、１９２．１６８．１．５のソースＩＰアドレスに対応する。よって、かかる入力を用いて、「[0000100000000000 X*16], [X*16]:TotalLength, [X*54 11000000101010000000000100000101 X*32 X*(TotalLength-20)*8]」の如き正規表現を発生することができる。すなわち、フィールドが埋まっていないとフィールド１５２及び１５２を圧縮でき、要素に関連した値を加えて正規表現を変更でき、値をビットに拡張できるなどする。
【００７３】
実施例において、「フィールド」のＩＤパラメータを正規表現の他の場所にて参照できる。この例において、TotalLengthをデータ・フィールドに用いる。特に、データ・フィールドにおけるマッチング・ビットの数の長さは、TotalLenghtフィールドの値に応じる。一例において、TotalLengthフィールドを、ソースＩＰアドレスに類似の定義済み値にできる。他の例において、分析する特定のビット・シーケンスからTotalLengthを決定できる。すなわち、正規表現のTotalLengthフィールドへのマッチングを開始するビットが「１２０」の値を参照すると、データ・フィールドにおけるマッチング・ビットの数を（１２０−２０）＊８、即ち８００ビットにできる。かかる値は、正規表現の各適用に対して、異なるビット・シーケンスに変化でき、ビット・シーケンスでの位置設定を開始するなどする。
【００７４】
実施例において、正規表現を逆に適用できるように正規表現エンジンを構成できる。例えば、正規表現にマッチングするビット・シーケンスの後に、直列データ列１０における特定のアライメント・シーケンスが生じてもよい。よって、アライメント・シーケンスが見つかると、正規表現エンジンをアライメント・シーケンスから逆に適用できる。
【００７５】
他の実施例は、実行の際にコンピュータが任意の上述の動作を行なえるようにするコンピュータ読み出し可能な媒体上に具現化されたコンピュータ読み出し可能なコードを含む。ここで用いる如く、コンピュータは、コードを実行できる任意の装置である。マイクロプロセッサ、プログラマブル・ロジック装置、マルチプロセッサ・システム、デジタル信号プロセッサ、パーソナル・コンピュータなどがかかるコンピュータの全ての例である。実施例において、コンピュータ読み出し可能な媒体は、コンピュータ読み出し可能なコードを非一時的方法にて蓄積するように構成された具体的なコンピュータ読み出し可能媒体にできる。
【００７６】
特定実施例について説明したが、本発明の原理がこれら実施例に限定されないことは明らかであろう。本発明の原理を逸脱することなく、変形及び変更が可能であろう。
【符号の説明】
【００７７】
１２  制御器
１３  正規表現エンジン
１４  ユーザ・インタフェース
２０  デジタイザ
９０  トリガ・システム
９１  正規表現エンジン
９３  制御器
【図１】
0005605842.tif 000002
【図２】
0005605842.tif 000003
【図３】
0005605842.tif 000004
【図４】
0005605842.tif 000005
【図５】
0005605842.tif 000006
【図６】
0005605842.tif 000007
【図７】
0005605842.tif 000008
【図８】
0005605842.tif 000009
【図９】
0005605842.tif 000010