(57)【特許請求の範囲】
【請求項１】
入力されるシリアル・ビット・ストリームの所望部分を出力データとして生成する試験測定装置であって、
ユーザ・インタフェースと、
コントローラとを具え、
該コントローラが、
上記シリアル・ビット・ストリームを受け、
該シリアル・ビット・ストリーム内の状態を特定するロジックを適用し、上記シリアル・ビット・ストリーム内の上記状態を特定するビットを、正規表現で認識可能な状態シンボルに変更することによって状態／ビット一体型ストリームを生成し、
状態情報を含む第１正規表現を状態／ビット一体型ストリームに適用することによって上記出力データを生成し、
上記ユーザ・インタフェースを介して上記出力データを提示する
よう構成される試験測定装置。
【請求項２】
上記シリアル・ビット・ストリーム内の上記状態は、上記シリアル・ビット・ストリーム内のパケットの開始又は終了の状態である請求項１の試験測定装置。
【請求項３】
上記コントローラは、更に、もし上記シリアル・ビット・ストリームが上記第１正規表現とマッチしなかったら、状態情報を含む第２正規表現をシリアル・ビット・ストリーム に適用することによって上記出力データを生成するよう構成される請求項１又は２の試験測定装置。
【請求項４】
入力されるシリアル・ビット・ストリームの所望部分を出力データとして生成する方法であって、
上記シリアル・ビット・ストリームを受ける処理と、
上記シリアル・ビット・ストリーム内の状態を特定するロジックを適用し、上記シリアル・ビット・ストリーム内の上記状態を特定するビットを、正規表現で認識可能な状態シンボルに変更することによって状態／ビット一体型ストリームを生成する処理と、
状態情報を含む第１正規表現を状態／ビット一体型ストリームに適用することによって上記出力データを生成する処理と、
ユーザ・インタフェースを介して上記出力データを提示する処理と
を具えるデータ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験測定装置及び方法に関し、特に、正規表現を用いてシリアル・ビット・ストリームを処理する試験測定装置及び方法に関する。
【背景技術】
【０００２】
文字列の分析に正規表現を用いることができる。例えば、Ｐｅｒｌ及びＡＷＫなどのプログラムは、正規表現パターン・マッチングに基づいている。正規表現を用いて、文字の列のマッチングを定義できる。しかし、こうした正規表現マッチングは、バイト、ワード、又は他の多ビット・フォーマットに既に変換されたデータに対して実行される。その一方、シリアル・ビット・ストリームは、こうした多ビット・フォーマットに分類されるものではない。
【０００３】
２０１０年１１月１８日に出願された出願人の先の米国特許出願第１２／９４９,７０３号（米国特許第９,０６９,０１７号として発行され、日本特許第５,６０５,８４２号に対応）は、どのように正規表現をシリアル・ビット・ストリームに適用（apply）できるかを説明している。そして、米国特許出願第１２／９４９,７０３号に説明されたメカニズムを用いることで、任意の所望正規表現を実装することが、一般に可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００７−５２２４５３号公報
【特許文献２】米国特許第７７９７３４６号明細書
【特許文献３】特表２００４−５２３１６６号公報
【特許文献４】特開２００７−２８６０２５号公報
【特許文献５】米国特許第９０６９０１７号明細書
【特許文献６】特許第５６０５８４２号公報
【非特許文献】
【０００５】
【非特許文献１】「８ｂ／１０ｂ」の記事、Wikipedia（英語版）、［オンライン］、［２０１５年８月４日検索］、インターネット、<http://en.wikipedia.org/wiki/８ｂ／１０ｂ_encoding>
【非特許文献２】「８ｂ／１０ｂ」の記事、Wikipedia（日本版）、［オンライン］、［２０１５年８月４日検索］、インターネット、<http://ja.wikipedia.org/wiki/８ｂ／１０ｂ>
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、このやり方で正規表現を完全に記述するのは、複雑なことがある。ちなみに、コンピュータ・サイエンスでは、どのようなプログラムも機械言語（０と１のビットを用いる）で書くことが可能である。しかし、複雑なコンピュータ・プログラムを機械言語で実装することは、良くても長ったらしく退屈であり、最悪の場合、正しく実装するのは実際上不可能である。プログラムをアセンブリ言語又は高級プログラミング言語（例えば、ＣＯＢＯＬ、Ｆｏｒｔｒａｎ又はＣ）で書くことによって、実装とデバッグが簡単になる。
【０００７】
高級プログラミング言語は、機械言語がサポートしない、どのようなプログラムでもプログラマが実装できるようにするわけではないことに注意すべきである。それどころか、その逆は正しい：機械言語では実装できても、高級プログラミング言語には等価なものがない命令シーケンスがある。しかし、実装が単純化されることで、高級プログラミング言語の利用は、機械言語よりも有益である。同様に、正規表現を記述する単純化した方法を提供することが望ましい。
【課題を解決するための手段】
【０００８】
試験測定装置には、ユーザ・インタフェースとコントローラがある。コントローラは、シリアル・ビット・ストリームを受けて、シリアル・ビット・ストリームに正規表現を適用できる。正規表現は、第２正規表現を用いて定義される状態情報を含むことができる。続いて、コントローラは、ユーザ・インタフェースを介して、シリアル・ビット・ストリームに正規表現を適用した結果を提示できる。
【０００９】
本発明の概念１は、試験測定装置であって、
ユーザ・インタフェース（１０２０）と
コントローラ（１００５）を具え、このとき、上記コントローラ（１００５）が、
シリアル・ビット・ストリームを受け、
上記シリアル・ビット・ストリーム内の状態を特定するロジック（１０１０）を適用して状態／ビット一体型ストリームを生成し、
状態情報（１０２５）を含む第１正規表現（１０１５）を上記状態／ビット一体型ストリームに適用することによって、出力データを生成し、
上記第１正規表現を上記状態／ビット一体型ストリームに適用するのに応じて、上記ユーザ・インタフェースを介して、上記出力データを提示する
よう構成されている。
【００１０】
本発明の概念２は、上記概念１の試験測定装置であって、上記シリアル・ビット・ストリーム内の状態を特定する上記ロジックが、ロジック表現（１１０５）を含んでいる。
【００１１】
本発明の概念３は、上記概念１の試験測定装置であって、上記シリアル・ビット・ストリーム内の状態を特定する上記ロジックが、外部関数（１２０５）を含んでいる。
【００１２】
本発明の概念４は、上記概念１の試験測定装置であって、上記状態／ビット一体型ストリームは時間順である。
【００１３】
本発明の概念５は、上記概念１の試験測定装置であって、上記コントローラが、更に、上記状態情報を含む上記第１正規表現（１３０５）を上記シリアル・ビット・ストリームに適用して中間結果（１３１０）を生成し、上記中間結果に第２正規表現（１３１５）を適用して上記出力データを生成するように構成される。
【００１４】
本発明の概念６は、上記概念１の試験測定装置であって、上記コントローラが、更に、もし上記シリアル・ビット・ストリームが上記第１正規表現とマッチするのに失敗したら、状態情報を含む第２正規表現をシリアル・ビット・ストリーム に適用する構成される。
【００１５】
本発明の概念７は、上記概念６の試験測定装置であって、上記第１正規表現が第１パケット形式を定義し、上記第３正規表現が第２パケット形式を定義している。
【００１６】
本発明の概念８は、試験測定方法であって、
シリアル・ビット・ストリーム（１６１０）を受ける処理と、
上記シリアル・ビット・ストリーム内の状態を特定するロジックを適用し（１６１５）、状態／ビット一体型ストリームを生成する処理と、
状態情報を含む第１正規表現を上記状態／ビット一体型ストリームに適用し（１６２０）、それによって出力データを生成する処理と、
上記第１正規表現の上記状態／ビット一体型ストリームへの適用に応答して上記ユーザ・インタフェースを介して上記出力データを提示する処理（１６５０）と
を具える。
【００１７】
本発明の概念９は、上記概念８の方法であって、上記シリアル・ビット・ストリーム内の状態を特定するロジックを適用する処理が、上記シリアル・ビット・ストリーム内の上記状態を特定するロジック表現を適用する処理を含んでいる。
【００１８】
本発明の概念１０は、上記概念８の方法であって、上記シリアル・ビット・ストリーム内の状態を特定するロジックを適用する処理が、上記シリアル・ビット・ストリーム内の上記状態を特定する外部関数（external function）を適用する処理を含んでいる。
【００１９】
本発明の概念１１は、上記概念８の方法であって、上記シリアル・ビット・ストリーム内の状態を特定するロジックを適用する処理が、上記シリアル・ビット・ストリーム内の上記状態を特定する上記ロジックを適用する処理を含み、そして、時間順である上記状態／ビット一体型ストリームを生成する。
【００２０】
本発明の概念１２は、上記概念８の方法であって、第１正規表現を上記状態／ビット一体型ストリームに適用する処理が、
中間結果を生成する処理（１６２５）と、
上記中間結果に第２正規表現を適用して（１６３０）、上記出力データを生成する処理と
を含んでいる。
【００２１】
本発明の概念１３は、上記概念８の方法であって、もし上記シリアル・ビット・ストリームが上記第１正規表現とマッチするのに失敗したら、状態情報を含む第２正規表現を上記シリアル・ビット・ストリームに適用する処理（１６４０）を更に具えている。
【００２２】
本発明の概念１４は、上記概念１３の試験測定方法であって、このとき、
第１正規表現を上記状態／ビット一体型ストリームに適用する処理が、第１パケット形式を定義する上記第１正規表現を、上記シリアル・ビット・ストリームに適用する処理を含み、
第３正規表現を上記状態／ビット一体型ストリームに適用する処理が、第２パケット形式を定義する上記第３正規表現を、上記シリアル・ビット・ストリームに適用する処理を含んでいる。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明の実施例による正規表現エンジンを有する試験測定装置のブロック図である。
【図２】図２は、本発明の実施例によるデジタイザ・フロント・エンドを有する図１の試験測定装置のブロック図である。
【図３】図３は、本発明の実施例による、波形と、波形に対応するビット・シーケンスと、正規表現エンジンからのマッチング・ビット・シーケンスとを示す。
【図４】図４は、本発明の実施例による、波形と、波形に対応するビット・シーケンスと、正規表現エンジンからのマッチング・ビット・シーケンスと、アライメント・シーケンスとを示す。
【図５】図５は、本発明の実施例による正規表現エンジンを有するトリガ・システムを有する試験測定装置のブロック図である。
【図６】図６は、本発明の実施例によるトリガ・システムにおける正規表現エンジンを有する試験測定装置のブロック図である。
【図７】図７は、本発明の実施例による、波形と、波形に対応するビット・シーケンスと、正規表現エンジンからのマッチング・ビット・シーケンスと、関連データとを示す。
【図８】図８は、本発明の実施例による正規表現エンジンを有する試験測定装置のユーザ・インタフェースの例である。
【図９】図９は、本発明の実施例による正規表現エンジンを有する試験測定装置のユーザ・インタフェースの他の例である。
【図１０】図１０は、本発明の実施形態による正規表現エンジン及び状態情報を有する試験測定装置のブロック図を示す。
【図１１】図１１は、状態をロジック表現として定義する図１０の状態特定ロジックを示す。
【図１２】図１２は、状態を外部関数として定義する図１０の状態特定ロジックを示す。
【図１３】図１３は、第２正規表現を第１正規表現の出力に適用する図１０の正規表現エンジンを示す。
【図１４】図１４は、１つよりも多くの正規表現をシリアル・ビット・ストリームに適用する図１０の正規表現エンジンを示す。
【図１５】図１５は、状態情報を有する正規表現を受け取って、図１０の試験測定装置で使用する正規表現エンジンにコンパイルするコンパイラを示す。
【図１６Ａ】図１６Ａは、本発明の実施形態による状態情報を有する正規表現を利用するための手続のフローチャートの一部を示す。
【図１６Ｂ】図１６Ｂは、本発明の実施形態による状態情報を有する正規表現を利用するための手続のフローチャートの残りの部分を示す。
【図１７】図１７は、正規表現エンジンで使用するための構造へ正規表現をコンパイルする本発明の実施形態による手続のフローチャートを示す。
【発明を実施するための形態】
【００２４】
本開示では、シリアル・ビット・ストリーム用の正規表現エンジンを用いる試験測定装置の実施形態を説明する。
【００２５】
図１は、本発明の実施例による正規表現エンジンを有する試験測定装置のブロック図である。この機器は、シリアル・ビット・ストリーム１０を受けるように構成された制御器１２を含む。シリアル・ビット・ストリーム１０は、種々の方法で発生できる。例えば、機器は、入力信号をデジタル化するように構成されたオシロスコープにできる。デジタル化アナログ信号として表すことができるデジタル化入力信号がデジタル・データを表すことができる。すなわち、デジタル化入力信号は、データ・ストリームの一連のビットを表すことができる。シリアル・ビット・ストリーム１０は、デジタル化入力信号から抽出されたかかる一連のビットにできる。
【００２６】
他の実施例において、機器は、ロジック・アナライザにできる。ロジック・アナライザは、入力信号をしきい値と比較して、チャネル用のシリアル・ビット・ストリームを発生するように構成できる。シリアル・ビット・ストリーム１０は、ロジック・アナライザのチャネルからのかかるビデオ・ストリームでもよい。シリアル・ビット・ストリームを発生できる機器は、ここで説明する如く正規表現エンジンを含むことができる。
【００２７】
実施例において、シリアル・ビット・ストリーム１０は、制御器１２が処理する直前に取り込まれる必要がない。例えば、シリアル・ビット・ストリーム１０をメモリに蓄積することができる。かかるメモリは、取込みメモリにできる。他の実施例において、シリアル・ビット・ストリーム１０は、ディスク・ドライブ又は他の大容量蓄積装置の如き不揮発性メモリに蓄積できる。
【００２８】
シリアル・ビット・ストリーム１０のソースに関係なく、制御器１２は、シリアル・ビット・ストリーム１０を受けるように構成できる。制御器１２は、任意の種々の回路にできる。例えば、所望に応じて、デジタル信号プロセッサ（ＤＳＰ）、マイクロプロセッサ、プログラマブル・ロジック装置、汎用プロセッサ、又は、適切な周辺装置を有する他の処理システムを制御器１２として用いて、正規表現エンジン１３の機能を実装できる。制御器１２を実装するのには、完全に集積したものと完全にディスクリートな部品との間の、あらゆるバリエーションを利用できる。正規表現エンジン１３は、正規表現をシリアル・ビット・ストリーム１０に適用する制御器１２の機能を表す。
【００２９】
制御器１２は、ユーザ・インタフェース１４に結合される。ユーザ・インタフェース１４は、任意の種々のインタフェースを含むことができる。例えば、ユーザ・インタフェース１４は、ボタン、ノブ、スライダ、キーボード、ポインティング・デバイスなどの入力インタフェースを含むことができる。ユーザ・インタフェース１４は、表示器、光、スピーカなどの出力インタフェースを含むことができる。ユーザ・インタフェース１４は、コミュニケーション・インタフェース、タッチ・スクリーンなどの入出力インタフェースを含むことができる。任意の種々のユーザ・インタフェース又はかかるユーザ・インタフェースの組合せをユーザ・インタフェースとして用いることができる。
【００３０】
制御器１２は、シリアル・ビット・ストリーム１０への正規表現の適用に応答して、ユーザ・インタフェースにより、取込みデータ（「取込みデータ」は、試験測定装置から出力されるという点で、「出力データ」と呼ぶこともできる）を表すように構成できる。実施例において、取込みデータは、シリアル・ビット・ストリーム１０自体にできる。しかし、他の実施例において、取込みデータ及びシリアル・ビット・ストリーム１０を違えることができる。例えば、更に詳細に後述するように、正規表現のシリアル・ビット・ストリームでのマッチングを用いて、取込みデータとして取り込む他のデータをトリガできる。
【００３１】
正規表現エンジン１３を用いて、シリアル・ビット・ストリーム１０の種々の表現に影響できる。例えば、更に詳細に後述するように、データを正規表現に関連づけることができる。このデータは、マッチング・ビット・シーケンスにてエンコードされたシンボルを表すことができる。オーバーレイとしてのシンボル、シンボル自体などにより、シリアル・ビット・ストリーム１０を表すことができる。
【００３２】
他の例において、正規表現エンジン１３を用いて、シリアル・ビット・ストリーム１０、関連したデータなどにて、パターンを検索、マーク付け、又はそうでなければ識別をできる。例えば、オシロスコープにて、特定のビット・シーケンスに対して取込み信号を表すデジタル化波形を検索できる。ユーザ・インタフェースにより、デジタル化波形の関連シーケンスを表すことができる。代わりに、関連シーケンスにマークを付けることができる。
【００３３】
他の例において、正規表現エンジン１３を用いて、取込みデータを濾波できる。例えば、更に詳細に後述するように、正規表現は、特定のデバイスからのパケットのみにマッチングするマッチング値及びパケット構造を定義できる。データの取込みを濾波できるので、マッチングした取込みのみを蓄積する。
【００３４】
他の実施例において、正規表現エンジン１３の出力は、単なるマッチング以上にできる。例えば、シリアル・ビット・ストリーム１０は、取込みデジタル化波形に関連できる。値対時間としてデジタル波形を表すことができる。マッチングが出力されると、関連したデジタル化波形内の時間の如き追加データを出力に追加できる。
【００３５】
図２は、本発明の実施例によるデジタイザ・フロント・エンドを有する図１の試験測定装置のブロック図である。デジタイザ２０は、入力信号２２をデジタル化して、シリアル・ビット・ストリーム１０を発生するように構成できる。
【００３６】
図示しないが、各デジタイザ２０は、必要に応じてアナログ・チャネル内に前置増幅器、減衰器、フィルタ及び／又は他のアナログ回路を有することができる。よって、デジタイザ２０への入力信号を、デジタル化の前に、増幅し、減衰し、又はそうでなければ濾波できる。さらに、デジタイザ２０は、信号をデジタル化可能な任意の種々の回路にできる。例えば、デジタイザ２０は、必要に応じて関連入力信号をサンプリングするためにトラック及びホールド回路、Ａ／Ｄ変換器、デマルチプレクサ回路の如き回路を含むことができる。
【００３７】
図３は、本発明の実施例による、波形４４と、波形４４に対応するビット・シーケンス４６と、正規表現エンジンからのマッチング・ビット・シーケンス４０及び４２とを示す。実施例において、正規表現文法は、次のように定義できる。
【００３８】
<RegExpr> :=    １ | ０ | X
| <RegExpr> <RegExpr>
| <RegExpr> | <RegExpr>
| <RegExpr> +
| <RegExpr> *
| <RegExpr> ?
| <RegExpr> * INTEGER
|（<RegExpr>）
;
【００３９】
この例において、マッチング・ビットは、１、０又はドントケアＸとして定義できる。正規表現に、正規表現が続くことができる。代わりの正規表現は、ＯＲ「｜」演算子で定義できる。１個以上の「＋」又は０個以上の「＊」の演算子を用いて、繰り返し正規表現を潜在的に定義できる。「？」演算子は、０又は１個の前の正規表現を意味できる。「＊」演算子に続く整数は、正規表現の繰り返し数を意味できる。括弧を用いて、正規表現又は一連の正規表現をグループ分けできる。特定の文法について上述したが、実施例は、他の文法も使用できる。特に、他の文法による更なる例を以下に示す。さらに、正規表現エンジン１３が用いる文法は、上述の文法又は以下の文法の全ての概念を実装するのにただ必要なだけではない。
【００４０】
例として上述の文法を用いたが、正規表現を用いてマッチングを定義できる。例えば、「１０１００００１１０」を正規表現として定義できる。波形４４及び対応デジタル値４６を図３に示す。ビット・シーケンス４０がビット「１０１００００１１０」なので、これをマッチングとして識別できる。しかし、ビット・シーケンス４２は、このシーケンスにマッチングしない。
【００４１】
別の正規表現を「１０１０XX０１１０」と定義できる。上述の例とは対照的に、この正規表現には、２個のドントケア「Ｘ」値が含まれる。よって、シーケンス４０及び４２の両方が、正規表現「１０１０XX０１１０」にマッチングする。
【００４２】
図４は、本発明の実施例による、波形６０と、波形６０に対応するビット・シーケンス６８と、正規表現エンジンからのマッチング・ビット・シーケンス６４と、アライメント・シーケンス６２とを示す。実施例において、正規表現エンジン１３は、シリアル・ビット・ストリーム１０内の演算がアライメントするように構成できる。例えば、８ｂ／１０ｂの如きエンコード技術は、アライメントに使用できるビットの特定の単一シーケンス又は複数シーケンスを定義できる。８ｂ／１０ｂエンコード内のシーケンス「１１０００００」又は「００１１１１１」は、シリアル・ビット・ストリーム内の１０ビットのアライメントを指示できる。周知のように、８ｂ／１０ｂエンコードにおける「１１０００００」は、プラスのランニング・ディスパリティ（ＲＤ）の制御シンボルK.２８.１、K.２８.５、K.２８.７に共通の上位７桁であり、「００１１１１１」はランニング・ディスパリティ（ＲＤ）がマイナスの制御シンボルK.２８.１、K.２８.５、K.２８.７の共通の上位７桁である。これら制御シンボルK.２８.１、K.２８.５、K.２８.７は、コンマ・シンボルと呼ばれ、シリアル・ビット・ストリーム内の１０ビット・シンボルの同期（アライメント）のために利用される（非特許文献１のControl Symbols参照）。
【００４３】
正規表現文法を定義してかかるアライメント・シーケンスの表現を可能にする。例えば、アライメント表現を伴う正規表現は、次のように定義できる。
【００４４】
<RegExprWithAlignment>:＝  <RegExpr> <Alignment>
;
<Alignment>:＝  width <Expr>
|    alignment <RegExpr>
|    <Alignment> width <Expr>
|    <Alignment> alignment <RegExpr>
;
【００４５】
ここでは、演算子「alignment」は、次の正規表現がシリアル・ビット・ストリーム１０内のアライメント・シーケンス用のマッチングを定義することを示せる。例えば、上述のシーケンスを用いることにより、「alignment（１１０００００ | ００１１１１１）」を用いて、「１１０００００」又は「００１１１１１」のいずれかをアライメント・シーケンスとして定義できる。
【００４６】
アライメント・シーケンスに加えて、幅を特定できる。この例の文法において、幅演算は、シリアル・ビット・ストリーム１０内の「シンボル」の幅のビット数を示すことができる。例えば、８ｂ／１０ｂエンコード内で、幅が１０ビットにできる。よって、８ｂ／１０ｂエンコードの正規表現を「alignment（１１０００００ | ００１１１１１）width １０」にできる。
【００４７】
特に、幅の定義は、上述の如く、与えた幅よりも狭いか又は広いアライメント正規表現を可能にする。上述の例において、アライメント正規表現は、１０ビット幅で２個の７ビット・マッチング・シーケンスを定義する。よって、正規表現エンジン１３がシリアル・ビット・シーケンス１０へのインデックスを増分するとき、幅だけの増分にできる。すなわち、実施例において、正規表現は、各ビットには適用しなくても良く、アライメント正規表現に応じてアライメントされたシリアル・ビット・ストリーム１０内の複数のビットにて開始してもよい。
【００４８】
図４を参照し、正規表現「１０１００００１１０ alignment（１１０００００ | ００１１１１１）width １０」を考察する。図３と同様に、波形６０及び対応デジタル値６８を示す。ビット・シーケンス６２は、アライメント正規表現「（１１０００００ | ００１１１１１）」とマッチングする。定義した幅により、識別されたビット・シーケンス６２及び定義された幅に応じて、波形６０への正規表現の適用をアライメントすることを実行できる。
【００４９】
点線７０は、波形６０内の「シンボル」の境界を線引きする。この例において、ビット・シーケンス６４及び６６の両方は、正規表現「１０１００００１１０」にマッチングする。しかし、ビット・シーケンス６４のみが境界７０にアライメントする。よって、ビット・シーケンス６４のみがマッチングし、ビット・シーケンス６６はマッチングしない。
【００５０】
図４において、マッチング・ビット・シーケンス６４をアライメント・ビット・シーケンス６２の近傍として示したが、かかる近接は必要ない。例えば、実施例において、アライメント正規表現を用いてシリアル・ビット・ストリームを検索するように制御器を構成できる。見つかると、アライメント正規表現のマッチングに応答して正規表現の残部を適用するように正規表現エンジン１３を構成できる。すなわち、シリアル・ビット・ストリーム１０内でアライメントさせつつ、かつ、定義幅に従って残部を適用しても良い。
【００５１】
アライメント・シーケンスのかなり後まで、正規表現の残部のマッチングが見つからないかもしれない。例えば、正規表現の残部へのマッチングが見つかる時点までに、アライメント・ビット・シーケンスが取込みメモリから捨てられているかもしれない。しかし、正規表現エンジン１３は、シリアル・ビット・ストリーム１０にアライメントするように依然動作できる。
【００５２】
他の実施例において、アライメント・シーケンスにより、幅を暗に定義できる。例えば、「alignment（１１０００００XXX | ００１１１１１XXX）」のアライメント正規表現は、「alignment（１１０００００ | ００１１１１１）width 10」とほぼ類似に動作できる。すなわち、アライメント正規表現の幅をシリアル・ビット・ストリーム１０内の「シンボル」の幅に決定するように正規表現エンジン１３を構成できる。
【００５３】
実施例において、アライメント・ビット・シーケンスが既知でないかもしれないし存在しないかもしれないが、幅は既知かもしれない。例えば、アライメント正規表現は、「width 10」とできる。かかる環境において、幅に応じてシリアル・ビット・ストリーム１０を参照するインデックスを増分できるが、アライメントを決定する必要があるかもしれない。
【００５４】
種々の技術を用いて、シリアル・ビット・ストリーム１０内のアライメントを決定できる。例えば、正規表現の幅に等しいシリアル・ビット・ストリーム１０を参照する多くのインデックスを用いて、正規表現をシリアル・ビット・ストリーム１０に適用するように正規表現エンジン１３を構成できる。すなわち、早めの類似アライメントと重複しない所定幅に対して、シリアル・ビット・ストリーム１０内の可能性のある各インデックスに対して正規表現を適用できる。例えば、幅が１０ならば、０のインデックスは、１０のインデックスにほぼ類似にできる。幅により定義された細分性のレベルにて可能性のある各アライメントに対して正規表現を適用できる。正規表現への最大数のマッチングを有するインデックスを使用インデックスとして選択できる。
【００５５】
他の実施例において、アライメントを指示できる他の技術を用いて、シリアル・ビット・ストリーム１０により用いるアライメント・インデックスを決定できる。例えば、８ｂ／１０ｂエンコードを用いる場合、シンボルの最後のランニング・ディスパリティを特定のレンジに制限できる。ランニング・ディスパリティが所望レンジ内であるシリアル・ビット・ストリーム１０内のオフセット・インデックスを識別済みインデックスとして用いることができる。シリアル・ビット・ストリーム１０へのオフセット・インデックスの特定に利用できるシリアル・ビット・ストリーム１０の特性の特定の例ではあるが、適切なインデックスを定めるために、アライメントを示せるシリアル・ビット・ストリーム１０の任意の特性、その期待されフォーマットなどが、幅内のインデックスの各々に渡って検索される。
【００５６】
実施例において、シリアル・ビット・ストリーム１０は、ダイナミックな幅にできる。ダイナミックな幅に合わせるため、有効パターンを求めてシリアル・ビット・ストリーム１０を検索するように制御器１２を構成できる。有効パターンが識別されると、有効パターンの位置を用いて、正規表現をシリアル・ビット・ストリーム１０にアライメントすることができる。
【００５７】
他の実施例において、シリアル・ビット・ストリーム１０をデコードし、エラー・チェックをできる。エラーが存在するか、しきい値を超えるかなどすると、シリアル・ビット・ストリーム１０のデコードを他のオフセットで実行できる。最小のエラーのオフセットが見つかると、そのオフセットを用いて、正規表現をシリアル・ビット・ストリーム１０にアライメントできる。
【００５８】
シリアル・ビット・ストリーム１０のアライメント及び／又は幅を決定する種々の方法を説明したが、他の技術を用いてかかる情報を得ることができる。実施例において、ユーザ・インタフェース１４を介してシリアル・ビット・ストリーム１０を参照するインデックスを受けるように制御器１２を構成することもできる。このインデックスは、種々の方法で発生できる。例えば、ユーザは、オフセット、幅又はこれらの両方を提供することができる。かかる提供情報は、ユーザ・インタフェース１４、制御器１２などにより、シリアル・ビット・ストリーム１０を参照するインデックスに変換できる。このインデックスを用いて、制御器は、正規表現をシリアル・ビット・ストリーム１０に適用できる。
【００５９】
他の例において、ユーザは、カーソル位置を用いて、シリアル・ビット・ストリーム１０用のオフセット・インデックスを定義できる。ユーザ・インタフェース１４により、シリアル・ビット・ストリーム１０を提示すことができる。ユーザは、手動や、ある自動機能によるなどして、提示したシリアル・ビット・ストリーム１０内の位置を指示できる。これに応答して、制御器１２は、シリアル・ビット・ストリーム１０を参照するビット・インデックスを決定できる。アライメント・シーケンスが利用できないか、定義されていないなどの環境において、ユーザは、データを依然試験でき、シリアル・ビット・ストリーム１０内のアライメントを指示できる。
【００６０】
図５は、本発明の実施例により正規表現エンジンを有するトリガ・システムによる試験測定装置のブロック図である。トリガ入力９２に応答してトリガ信号９４を発生するようにトリガ・システム９０を構成できる。実施例において、トリガ信号９４に応答して正規表現エンジン１３により正規表現をシリアル・ビット・ストリームに適用するように制御器１２を構成できる。
【００６１】
例えば、トリガ信号９４に関連するシリアル・ビット・ストリーム１０を参照するインデックスを使用するように制御器１２を構成できる。トリガ・システム９０からのトリガ信号９４を受けるように制御器１２を構成できる。トリガ信号９４に時間的に関連したシリアル・ビット・ストリーム１０のビット、トリガ信号９４からの特定オフセットでのビットなどを、正規表現を処理するためのアライメント指示として用いることができる。アライメントが確立すると、正規表現を上述の如く適用できる。
【００６２】
他の実施例において、トリガ・システム９０は、正規表現エンジン９１を有することができる。正規表現をトリガ入力９２に適用するように正規表現エンジン９１を構成できる。この例において、トリガ入力９２をシリアル・ビット・ストリームにできる。上述の例を用いて、正規表現を「（１１０００００|００１１１１１）」にできる。マッチングに対して、正規表現エンジンにより、トリガ入力９２を分析できる。かかるマッチングに応答して、トリガ信号９４を発生できる。実施例において、トリガ信号９４は、識別した時点又はサンプル位置、マッチング表現、トリガ入力９２におけるシリアル・ビット・ストリーム内のアライメント情報、シリアル・ビット・ストリーム自体、かかる情報の組合せなどを含むことができる。かかる情報を制御器１２に供給でき、正規表現エンジン１３用に用いることができ、取込みデータにて又はそうでなければ所望に用いることができる。
【００６３】
上述の如く、正規表現エンジン１３は、トリガ信号９４に応答して、アライメントしたシリアル・ビット・ストリーム１０に関連正規表現を適用できる。しかし、この実施例において、正規表現エンジン９１に応答して、トリガ信号９４を発生できる。上述の如く、トリガ・システム９０の正規表現エンジン９１が供給した正規表現をアライメント正規表現にできる。よって、トリガ・システム９０は、アライメントを決定する処理を実行でき、制御器１２の正規表現エンジン１３は、他の正規表現を適用してマッチングを決定できる。
【００６４】
図６は、本発明の実施例によりトリガ・システム内に正規表現エンジンを有する試験測定装置のブロック図である。正規表現エンジンは、種々の方法で機能的に分散できる。上述の如く、正規表現は、制御器１２及びトリガ・システム９０にわたって機能的に分散できる。この実施例において、制御器９３は、正規表現エンジンを有する必要がない。正規表現エンジン９１は、トリガ・システム９０の一部である。トリガ入力９２のシリアル・ビット・ストリームへの正規表現のマッチングに応答して、取込みをトリガするようにトリガ・システム９０を構成できる。
【００６５】
実施例において、かかるトリガを用いて、マッチングが生じたときのみにデータを取り込める。例えば、機器は、共用媒体からデータを取り込むことができる。特定のデバイス、パケット、ソース・アドレスなどを指示する正規表現を定義できる。よって、マッチング・ソースから信号を受けると、対応するデータのみを使用できる。例えば、かかるデータから実時間データ・アイを発生できる。正規表現を用いることにより、所望ソースからの信号のみがデータ・アイに貢献できる。
【００６６】
図７は、本発明の実施例による、波形１１０と、波形１１０に対応するビット・シーケンス９２と、正規表現エンジンからのマッチング・ビット・シーケンス１１２及び１１４と、関連する関連データ１１６及び１１８とを示す。実施例において、データを正規表現で表すことができる。例えば、次の文法によりデータを表現できる。
【００６７】
<RegExprWithData>:  <RegExpr> : <Data>
【００６８】
明瞭にするため、正規表現文法の残部をリストしないが、正規表現「<RegExprWithData>」を、ここで述べた任意の正規表現「<RegExpr>」として使用できる。
【００６９】
一例において、正規表現「（１０１００００１１０ : "D１５.６+"）」は、ビット・シーケンス「１０１００００１１０」をデータ「D１５.６+」に関連づけることができる。波形１１０及び対応ビット・シーケンス９２を図７に示す。ビット・シーケンス１１２は、「１０１００００１１０」にマッチングする。よって、ユーザ・インタフェース１４を介して、関連データ「D１５.６+」をボックス１１６内に表すことができる。同様に、正規表現「（１０００１１１１０１ : "D１７.４-"）」に対し、ビット・シーケンス１１４がその正規表現にマッチングするので、ボックス１１８は、ユーザ・インタフェース１１４を介して関連データ「D１７.４-」を表すことができる。
【００７０】
実施例において、かかるデータ関連を用いて、デコードを導入できる。例えば、上述の如く、２個のビット・シーケンス１１２及び１１４は、シンボル「D１５.６+」及び「D１７.４-」に関連した。「D１５.６+」及び「D１７.４-」は、８ｂ／１０ｂエンコード技術のシンボルの一部である。デコーダを定義する正規表現は、「（（１０００１１１１００ : "D１７.３-"）|（１０００１１１１０１ : "D１７.４-"）…（１０１００００１１０ : "D１５.６+"））alignment（１１０００００ | ００１１１１１）width １０」として定義できる。この例において、上述の３個の他に、シンボルに対するビット・シーケンスの関係は多数あるが、例として３個を用いる。よって、シンボルに対するビット・シーケンスの関係の全てを定義すると、正規表現を用いてシリアル・ビット・ストリーム１０をデコードできる。上述の如く、ソース波形及び／又はビット・ストリームを表す必要がない。
【００７１】
実施例において、機器のその後の動作において、かかる関連データを用いることができる。例えば、データに基づく検索を実行できるように制御器を構成できる。上述の例を用いて、「D１５.６+」シンボルに対する検索を実行できる。実施例において、基本的な正規表現は、必須ではないが、ユーザから隠すことができる。例えば、種々の正規表現を、特定のシンボルに対して予め定義し、テスト設定によりロードしたりするなどができる。基本的な正規表現における情報を必要とすることなく、ユーザは、正規表現に関連したデータを選択できる。
【００７２】
正規表現に関連できるデータの例としてテキストを用いたが、他の形式の情報をデータとして用いることができる。例えば、数、表現、機能などを関連データの一部にできる。
【００７３】
図８は、本発明の実施例により正規表現エンジンを有する試験測定装置のユーザ・インタフェースの例である。実施例において、正規表現を表すようにユーザ・インタフェース１４を構成できる。一例において、予め定義した正規表現のデータを表すようにユーザ・インタフェースを構成できる。
【００７４】
予め定義された正規表現をブロック１３２及び１３４はユーザ・インタフェース１３０に表す。例えば、ブロック１３２は、正規表現「（１０１００００１１０ : "D１５.６+"）alignment（１１０００００ | ００１１１１１）width １０”を表すことができる一方、ブロック１３４は、“（１０００１１１１０１ : "D１７.４-"）alignment（１１０００００ | ００１１１１１）width １０」を表すことができる。
【００７５】
ポインティング・デバイスのドラグ入力の如きユーザ入力を矢印１３８で表す。この入力により、正規表現を形成する入力ボックス１３６を、ブロック１３２に関連した正規表現により埋めることができることをユーザが指示できる。例えば、最初に、ボックス１３６を空にできた。矢印１３８のユーザ入力に応答して、ブロック１３２に関連した正規表現をボックス１３６に入れる。
【００７６】
しかし、ボックス１３６内の正規表現を拡張する必要がない。すなわち、ボックス１３６内の正規表現は、ソース正規表現に関連したデータが表すのを残せる。この例において、データは、「D１５.６+」だろう。さらに、１個以上の予め定義した正規表現をボックス１３６に追加できる。例えば、ユーザは、ブロック１３４をボックス１３６に追加して、関連正規表現を追加し、演算子を加えるなどができる。
【００７７】
実施例において、表した正規表現は、任意の正規表現にできる。上述の如く、ブロック１３２は、アライメント及び幅の項目を有した。しかし、関連正規表現は、１個以上のアライメント及び幅の項目なしに「（１０１００００１１０ : "D１５.６+"）」としても良い。
【００７８】
他の例において、予め定義した正規表現は、「（（１１０００００１０１ | １０１００００１１０）: “K２８.５”）」にしても良い。この正規表現は、「K２８.５」として表しても良い。ユーザ入力に応答して、正規表現を、拡張した「（（１１０００００１０１ | １０１００００１１０）: “K２８.５”）」という形を有するようにしても良い。すなわち、追加した正規表現を単なる文字列に限定する必要はなく、任意の有効な正規表現を含むことができる。
【００７９】
正規表現を任意の有効な正規表現にでき、これら正規表現を比較的複雑にできるので、より一層複雑な正規表現を形成でき、その複雑さをユーザから隠す可能性がある。例えば、上述の如く、８ｂ／１０ｂデコーダを正規表現として記述できる。同様に、６４ｂ／６６ｂなどの他のエンコード技術を定義できる。８ｂ／１０ｂをブロック１３２に表現でき、「６４ｂ／６６ｂ」をブロック１３４内に表すことができる。ユーザは、８ｂ／１０ｂ及び６４ｂ／６６ｂエンコードの両方に対する組合せデコーダを形成しても良い。すなわち、ユーザが「８ｂ／１０ｂ」をボックス１３６にドラッグし、ＯＲ演算子「|」を入力し、「６４ｂ／６６ｂ」をボックス１３６にドラッグすることにより正規表現を形成しても良い。
【００８０】
さらに、追加した正規表現が任意の正規表現にできるので、かかる複雑な組合を各要素に対して完全にする必要がない。例えば、「８ｂ／１０ｂ」正規表現は、８ｂ／１０ｂビット・ストリームを完全にデコードできるかもしれないが、「６４ｂ／６６ｂ」正規表現は、関連エンコード技術の一部を定義できるのみかもしれない。例えば、「６４ｂ／６６ｂ」用の正規表現は、「（１０ | ０１）X*６４ width ６６」にできる。
【００８１】
正規表現の構造用のユーザ・インタフェースの例としてテキスト・ボックスを用いたが、ユーザがリテラル、演算子、予め定義した正規表現などを入力できるようにする任意のインタフェースを、ボックス１３６の代わり、又は、ボックス１３６に加えて用いることができる。
【００８２】
図９は、本発明の実施例により正規表現エンジンを有する試験測定装置のユーザ・インタフェースの他の例である。ユーザ・インタフェースの表示１５０は、フィールド記述１５８及び入力フィールド１６０で示される。この例において、ＩＰパケット用の正規表現を述べるが、他のフォーマットも利用できる。正規表現を用いたパケットを定義する文法は、次のようにしても良い。
【００８３】
<Packet>:＝    <BasePacket>
|        <BasePacket> <Alignment>
;
<BasePacket>:＝    <Field>
|            <Packet> ',' <Field>
;
<Field>:＝    '[' <RegExpr> ']' ':' ID
;
【００８４】
この例において、予め定義した正規表現は、「[００００１０００００００００００], [X*４]:Version, [X*４]:HeaderLength, [X*８]:TOS, [X*１６]:TotalLength, [X*１６]:ID, [X*３]:Flags, [X*１３]:FragmentOffset, [X*８]:TTL, [X*８]:Protocol, [X*１６]:Checksum, [X*３２]:SourceIPAddr, [X*３２]:DestIPAddr, [X*（TotalLength-２０）*８]:Data」とできる。ここで、TotalLength ID は、バイト単位で長さを表すとしても良い。よって、データ・フィールドのビットの量は、１バイト当たり、TotalLength（バイト単位）−２０ヘッダ・バイトの８倍のビットである。
【００８５】
実施例において、正規表現の「フィールド」部分に対して、ユーザ・インタフェース１４を介して、対応ラベル及び入力フィールドを表すことができる。この例において、ユーザは、フィールド１５２及び１５４を空白のままとし、フィールド１５６を１６進法でC０A８０１０５により埋めた。これは、１９２．１６８．１．５のソースＩＰアドレスに対応する。よって、かかる入力を用いて、「[００００１０００００００００００ X*１６], [X*１６]:TotalLength, [X*５４ １１００００００１０１０１００００００００００１０００００１０１ X*３２ X*（TotalLength-２０）*８]」の如き正規表現を発生することができる。すなわち、フィールドが埋まっていないとフィールド１５２及び１５２を圧縮でき、要素に関連した値を加えて正規表現を変更でき、値をビットに拡張できるなどする。
【００８６】
実施例において、「フィールド」のＩＤパラメータを正規表現の他の場所にて参照できる。この例において、TotalLengthをデータ・フィールドに用いる。特に、データ・フィールドにおけるマッチング・ビットの数の長さは、TotalLenghtフィールドの値に応じる。一例において、TotalLengthフィールドを、ソースＩＰアドレスに類似の定義済み値にできる。他の例において、分析する特定のビット・シーケンスからTotalLengthを決定できる。すなわち、正規表現のTotalLengthフィールドへのマッチングを開始するビットが「１２０」の値を参照すると、データ・フィールドにおけるマッチング・ビットの数を（１２０−２０）＊８、即ち８００ビットにできる。かかる値は、正規表現の各適用に対して、異なるビット・シーケンスに変化でき、ビット・シーケンスでの位置設定を開始するなどする。
【００８７】
実施例において、正規表現を逆に適用できるように正規表現エンジンを構成できる。例えば、正規表現にマッチングするビット・シーケンスの後に、シリアル・ビット・ストリーム１０における特定のアライメント・シーケンスが生じてもよい。よって、アライメント・シーケンスが見つかると、正規表現エンジンをアライメント・シーケンスから逆に適用できる。
【００８８】
他の実施例は、実行の際にコンピュータが任意の上述の動作を行なえるようにするコンピュータ読み出し可能な媒体上に具現化されたコンピュータ読み出し可能なコードを含む。ここで用いる如く、コンピュータは、コードを実行できる任意の装置である。マイクロプロセッサ、プログラマブル・ロジック装置、マルチプロセッサ・システム、デジタル信号プロセッサ、パーソナル・コンピュータなどがかかるコンピュータの全ての例である。実施例において、コンピュータ読み出し可能な媒体は、コンピュータ読み出し可能なコードを非一時的方法にて蓄積するように構成された具体的なコンピュータ読み出し可能媒体にできる。
【００８９】
上述のように、試験測定装置は、シリアル・ビット・ストリームに対してマッチする正規表現を使用できる。しかし、上述した正規表現の文法（Grammar：グラマー）は、状態情報を含んでいない。そこで、状態情報を含む別の実施形態を説明する。
【００９０】
図１０は、本発明の実施形態による状態情報を含む正規表現エンジンを有する試験測定装置のブロック図である。装置には、シリアル・ビット・ストリーム１０を受けるよう構成されたコントローラ１００５がある。シリアル・ビット・ストリーム１０は、様々の方法で発生させることができる。例えば、装置が、入力信号をデジタル化するよう構成されたオシロスコープでも良い。このデジタル化入力信号は、デジタル化アナログ信号として表すことができ、デジタル・データを表す。即ち、このデジタル化入力信号は、データ・ストリームの複数ビットの列（シリーズ）を表すことができる。シリアル・ビット・ストリーム１０は、デジタル化入力信号から抽出されたビットの列のようなものでも良い。
【００９１】
別の実施形態では、装置は、ロジック・アナライザでも良い。ロジック・アナライザは、入力信号をしきい値と比較し、１チャンネルに関するシリアル・ビット・ストリームを生成するよう構成できる。シリアル・ビット・ストリーム１０は、ロジック・アナライザのあるチャンネルからのビット・ストリームのようなものでも良い。シリアル・ビット・ストリームを生成できる任意の装置が、本願で説明するような正規表現エンジンを含むとして良い。
【００９２】
コントローラ１００５には、状態特定ロジック１０１０があっても良い。状態特定ロジック１０１０は、シリアル・ビット・ストリームの状態を特定するロジック（logic）であっても良い。状態特定ロジック１０１０は、シリアル・ビット・ストリーム中の状態を特定するビットを、正規表現によって認識可能な状態シンボルに変化させることによって、シリアル・ビット・ストリーム１０を変更することもできる。このやり方で、状態特定ロジック１０１０は、複数のビット（複数の０と複数の１）に加えて、状態シンボルを含む状態／ビット一体型ストリームを形成できる。状態特定ロジック１０１０については、図１１〜１２を参照して、以下で更に説明する。
【００９３】
また、シリアル・ビット・ストリームと、シリアル・ビット・ストリーム中の特定された状態情報が時間順であることも注目に値する：つまり、情報は、時間に対してシーケンス（順序）を有している。従って、状態／ビット一体型ストリームも時間順である。
【００９４】
ある実施形態では、シリアル・ビット・ストリームは、コントローラ１００５で処理される直前に取り込んでも良いが、直前である必要はない。例えば、シリアル・ビット・ストリームは、メモリに記憶しておいても良い。こうしたメモリは、アクイジション・メモリとしても良い。別の例では、シリアル・ビット・ストリームは、ディスク・ドライブ又は他の大容量記憶装置のような、不揮発性メモリに記憶しても良い。このように、シリアル・ビット・ストリームは、ライブのデータ、試験測定装置で取り込んだデータ、シミュレーション・データ又は予め記録したデータを含めた任意の所望データとして良い。
【００９５】
シリアル・ビット・ストリームの出所に関係なく、コントローラ１００５は、シリアル・ビット・ストリーム１０を受けるように構成できる。コントローラ１００５は、種々の任意の回路として良い。例えば、必要に応じて適当な周辺デバイスを有するデジタル・シグナル・プロセッサ（ＤＳＰ）、マイクロプロセッサ、プログラマブル・ロジック・デバイス、汎用プロセッサ、又は、他の処理システムをコントローラ１００５として利用し、正規表現エンジン１０１５の機能性を実装できる。完全な集積回路から完全にディスクリートな部品の間で任意に変更したものを、コントローラ１００５を実装するのに利用できる。正規表現エンジン１０１５は、正規表現を状態／ビット一体型ストリームに適用するコントローラ１００５の機能性を表している。
【００９６】
コントローラ１００５は、ユーザ・インタフェース１０２０に結合される。ユーザ・インタフェース１０２０としては、任意の様々なインタフェースがあり得る。例えば、ユーザ・インタフェース１０２０は、ボタン、ノブ、スライダ、キーボード、ポインティング・デバイスなどのような入力インタフェースを含んでも良い。ユーザ・インタフェース１０２０は、表示装置、ライト（light）、スピーカなどのような出力インタフェースを含んでも良い。ユーザ・インタフェース１０２０は、通信インタフェース、タッチ・スクリーンなどのような入力／出力インタフェースを含んでも良い。様々なユーザ・インタフェースや、こうしたインタフェースの組み合わせを、ユーザ・インタフェースとして用いることができる。
【００９７】
コントローラ１００５は、状態／ビット一体型ストリームへの正規表現の適用に応答して、ユーザ・インタフェースを介して、出力データを提示するよう構成できる。ある実施形態では、出力データは、シリアル・ビット・ストリームそれ自身か、又は、状態／ビット一体型ストリームであっても良い。しかし、別の実施形態では、出力データと、シリアル・ビット・ストリーム又は状態／ビット一体型ストリームとは、異なっていても良い。例えば、以下で更に詳しく説明するように、正規表現の状態／ビット一体型ストリームにおけるマッチ（一致）を、出力データとして使われる他のデータをトリガするのに利用しても良い。
【００９８】
正規表現エンジン１０１５は、シリアル・ビット・ストリーム又は状態／ビット一体型ストリームの様々な提示に影響を与えるのに利用できる。例えば、後述のように、データを正規表現と関連させることができる。データは、マッチしているビット・シーケンス中に符号化されたシンボルを表すことができる。シリアル・ビット・ストリーム又は状態／ビット一体型ストリームは、シンボルを用いて、オーバレイ、シンボル単独、などとして与えられる。正規表現エンジン１０１５は、状態情報１０２５を含むこともできる。状態情報１０２５は、正規表現エンジン１０１５がいつ、どのように動作するかを定義するのに利用できる。例えば、正規表現でパケットについて定義でき、パケットの開始及び終了を定義する状態情報を持つことができる。この状態情報がないと、状態／ビット一体型ストリーム内の同一のビット・シーケンスが、その正規表現とマッチせず、よって、出力データとして認識されないであろう。
【００９９】
別の例では、正規表現エンジン１０１５は、状態／ビット一体型ストリーム中のパターン、その関連データなどを検索、マーキング、さもなければ、特定するのに利用できる。例えば、オシロスコープ上で、特定のビット・シーケンスを見つけるために、取り込まれた信号を表すデジタル化波形を検索できる。そのデジタル化波形の関連するシーケンスは、ユーザ・インタフェースを介して提示できる。これに代えて、関連するシーケンスにマーキングできる。
【０１００】
別の例では、正規表現エンジン１０１５を取り込んだデータをフィルタ処理するのに利用できる。例えば、詳しくは、更に後述するように、正規表現は、特定のデバイスからのパケットにのみマッチするパケット構造とマッチング値とを定義できる。データの取込みは、マッチングする取込みのみが蓄積されるように、フィルタ処理できる。
【０１０１】
別の実施形態では、正規表現エンジン１０１５の出力は、単にマッチするだけのものでないようにできる。例えば、シリアル・ビット・ストリームを、取り込まれたデジタル化波形と関連させることができる。デジタル化波形は、時間対値として表すことができる。マッチ（一致）が出力されると、その関連デジタル化波形内の時間のような追加データを出力に加えることができる。従って、ユーザ・インタフェース１０２０を、その時間を反映するように調整できる。
【０１０２】
上述の図１０は、図１と似ているが、状態情報を含むように変更されている。図２〜９に示す実施形態は、同様に、状態情報をサポートするように変更できるが、本願では、そうした実施形態を明示的には示さない。
【０１０３】
米国特許出願第１２／９４９,７０３号で説明された正規表現の文法（grammar）とは対照的に、この正規表現文法は、追加のセマンティックス（semantics：動作、意味論）を加えるように強化できる。そして、その正規表現文法は、次のように記述できる。
【０１０４】
<PacketExpr> :=              1 | 0 | X
|        INTEGER
|        INTEGER : <IntExpr>
|        STATEID
|        ^
|        $
|        FIELDID
|        FIELDID : <IntExpr>
|        FIELDID * <IntExpr>
|        <PacketExpr>, <PacketExpr>
|        <PacketExpr> | <PacketExpr>
|        <PacketExpr> +
|        <PacketExpr> *
|        <PacketExpr> ?
|        <PacketExpr> # <IntExpr>
|      （ <PacketExpr> ）
<IntExpr> :=              ID
|        INTEGER
|        <IntExpr> + <IntExpr>
|        <IntExpr> * <IntExpr>
|        <IntExpr> / <IntExpr>
|      （ <IntExpr> ）
【０１０５】
正規表現に状態要素を入れるということからは外れるが、この正規表現文法は、バスが、典型的には、どのように仕様書で定義されているかにも、より近いものになっている。ユーザは、一般に、バス仕様に精通しているので、正規表現文法をバス仕様により似た形態で定義することによって、状態／ビット一体型ストリーム内で特定するための特定正規表現を定義するのが、ユーザにとって、より簡単になる。
【０１０６】
米国特許出願第１２／９４９,７０３号にあるように、マッチング・ビットは、１、０又はドントケアＸとして定義できる。正規表現は、整数値であって、特定の幅があるか又はなくても良い。正規表現は、状態項と呼ぶことができる。正規表現は、開始状態「＾」又は終了状態「＄」であっても良い。正規表現は、フィールドの名前であって、特定の幅があるか又はなく、最上位ビットから最下位ビットへの順序か又は最下位ビットから最上位ビットへの順序のどちらかでも良い。正規表現の後に、正規表現が続いても良い。選択的な正規表現は、ＯＲ「｜」演算子で定義できる。１つ以上の「＋」又は０以上の「＊」演算子は、繰り返すかもしれない正規表現を定義するのに使用できる。「？」演算子は、ゼロ個又は１個の時間的に先行する正規表現を意味するものとできる。「＊」演算子に続く整数は、正規表現の繰り返し数を意味するものとできる。かっこは、１つの正規表現、又は、複数の正規表現のシリーズをグループ化するのに利用できる。先に、特定の文法を説明してきたが、実施形態は他の文法も利用できる。具体的には、他の文法を用いる更なる例が、以下で与えられる。更には、正規表現エンジン１３で使用される文法は、上述の文法又は以下の文法の全ての側面を実装しても良いが、必ずしも実装しなくても良い。
【０１０７】
パケットの内容（コンテンツ）は、米国特許出願第１２／９４９,７０３号に記述されたように定義できるが、これは、必ずしもシリアル・ビット・ストリームを適切に復号化するのに充分な情報を与えるものではない。例えば、パケットがどこで始まり、そして、終わるかを知る必要がある。さもなければ、シリアル・ビット・ストリームは、実際のデータではなくて、単にランダム・ノイズを有しているだけかもしれない。
【０１０８】
図１１は、図１０の状態特定ロジックが、状態をロジック（論理）表現として特定できることを示す。例えば、Ｉ２Ｃバスが使用される場合、パケットの開始は、ロジック表現１１０５として特定でき、このとき、データ信号は立ち下がり（falling）で、クロック信号はハイ（高）である。同様に、パケットの終了は、イベントとして特定でき、このとき、データ信号は、立ち上がり（rising）で、クロック信号はハイ（高）である。ソフトウェアとしては、これらイベントは、次のように記述できる：
【０１０９】
Event S = fall（sda）&& scl == １;
Event P = rise（sda）&& scl == １;
【０１１０】
これらイベント（events）は、シリアル・ビット・ストリームをスキャンして状態を特定し、シリアル・ビット・ストリーム中のこれら情報部分を、開始及び終了状態を表すトークン（token：識別子データ）に変化させるの利用できる（これによって、状態／ビット一体型ストリームを生成する）。これら状態は、次に、パケットに関する正規表現の一部として利用できる。例えば、パケットは、次のように定義しても良い：
【０１１１】
Packet P7 {S, Addr:7, RW, A,（Data:8, A)*, P};
【０１１２】
上記のPacket P7に関する記述を注意深く見ると、Packet P7は、米国特許出願第１２／９４９,７０３号に記述されたものと、異なるシンタックスを使用していることがわかる。具体的には、AddrとDataフィールドは、異なるシンタックスを使用している。しかし、当業者であれば、これら異なるシンタックスは、同じコンセプトを記述しているがわかるであろう。上記シンタックス中のAddr:7は、先のシンタックス中の[X*7]:Addrと機能的に等価である。
【０１１３】
図１１は、１つのロジック表現１１０５だけを示しているが、当業者であれば、イベントとして定義される任意の数の状態があって良いことが理解できよう。
【０１１４】
図１１と対照的に、図１２は、外部表現１２０５を用いて定義された図１０の状態特定ロジックを示す。例えば、パケットの開始及び終了は、シリアル・ビット・ストリームが特定ビット・パターンとマッチした場合に特定できる。先と同様、図１２は、１つの外部関数１２０５だけを示しているが、当業者であれば、正規表現として定義される任意の数の正規状態（regular states）があって良いことが理解できよう。
【０１１５】
加えて、図１１及び１２に示される選択的な実施形態は、相互に排他的ではない。即ち、ある状態は、ロジック表現として定義でき、ある状態は、外部関数として定義できる。加えて、状態は、潜在的に別のやり方で定義でき、これら別の定義は、希望すれば、ロジック表現及び外部関数と組み合わせることができる。
【０１１６】
図１３は、第１正規表現の出力に第２正規表現を適用する図１０の正規表現エンジンを示す。図１３では、米国特許出願第１２／９４９,７０３号に記述されるように、状態／ビット一体型ストリームに適用できる正規表現 １３０５を正規表現エンジン１０１５が含んでいる。正規表現１３０５を適用すると、中間結果１３１０を生成することがあり、これが次に正規表現１３１５への入力として利用できる。このやり方では、複数の正規表現を用いて、状態／ビット一体型ストリームを順次処理できる。複数の正規表現を順次用いることにより、様々な符号化、例えば、マンチェスタ符号化、を実装できる。マンチェスタ符号化は、単一ビットの情報を表す２つの「ビット」（実際には、信号レベルの遷移）を用いる。こうして、第１正規表現は、状態／ビット一体型ストリームを、マンチェスタ符号化内にあるようなビット・パターンへと変換でき、続いて、第２正規表現は、マンチェスタ・ビット・ストリームの情報を復号化できる。更に詳しい情報は、コンピュータ・ネットワークス、第３版、Andrew S. Tanenbaum著、２７９〜８０頁（１９９６年、Prentice-Hall, Inc.発行）で得られ、これは、参照することにより、事実上、本願に援用される。
【０１１７】
マンチェスタ符号化をどのようにデコード（復号化）するかの例として、システムが、次のようなシリアル・ビット・ストリームを受ける：
【０１１８】
１００１０１０１１００１０１１０１０１０１０
【０１１９】
２ビット値１０は、１ビット値１とマッチすると共に、１ビット値１と入れ替えることができる。２ビット値０１は、１ビット値０とマッチすると共に、１ビット値０と入れ替えることができる。これは、２値（binary）で符号化された新しいビット・ストリームを形成する。
【０１２０】
アライメントの問題を除けば、以下のコードは、マンチェスタを用いたビット・ストリームの部分をバイナリ・ビット・ストリームへと符号化するだけで、マンチェスタをプロトコルに変換する。
【０１２１】
packet Data
{
^!,
（D, [（01b:2（0:1)| 10b:2（1:1))+] {Data:16})+,
$!
}
【０１２２】
上記例において、「Ｄ」は、データ状態を参照し、「[（1:2（0:1)| 2:2（1:1))+]」は、新しいバイナリ・ストリームを生成し、「{Data:16}」は、この新しいバイナリ・ストリームを１６ビット・ワードに分割し、「＋」は、１回以上のマッチを繰り返す。フィールド定義「01b:2（0:1)」は、２ビットの１とマッチし、１ビットの０を返す（リターン：回答する）ということを言っている。フィールド定義「10b:2（1:1)」は、２ビットの２とマッチし、１ビットの０を返すということを言っている。１又は２のどちらかがマッチ（一致）であり、その他のものは、マッチの失敗（fail）となる。これは、１回以上（マッチが失敗するまで）繰り返されて、新しいバイナリ・ストリームが生成され、これは、後続のフィールド・マッチ定義に供給される。
【０１２３】
図１３は、２つの正規表現１３０５及び１３１５の適用を示す。しかし、当業者であれば、希望に応じて、任意の回数で複数の正規表現を順次適用できることが理解できよう。よって、３個、４個、又はもっと多数の正規表現があって、それぞれが先行する正規表現の出力に適用され、最後の正規表現の出力を出力データとすることができる。
【０１２４】
先行する正規表現からのデータに正規表現が順次適用される図１３とは対照的に、状態／ビット一体型ストリーム内の異なる情報にマッチできる異なる正規表現を規定することも可能である。即ち、試験測定装置内のある特定正規表現が、状態／ビット一体型ストリーム内のいくつかの（まして全ての）データと必ずしもマッチすることがあるという保障はない。これは、例えば、もし試験測定装置が、異なる複数の方法で符号化されたデータを使って利用されている場合に起こり得る。この状況に取り組むため、試験測定装置が１つよりも多くの正規表現を有しても良く、そのいずれかが、状態／ビット一体型ストリームからの情報とマッチするのに利用されるようにしても良い。図１４は、こうした状況を明示している。
【０１２５】
図１４では、図１０の正規表現エンジンは、１つよりも多くの正規表現を状態／ビット一体型ストリームに適用できる。具体的には、正規表現エンジン１０１５には、正規表現１４０５と１４１０があっても良く、これらのそれぞれは、状態／ビット一体型ストリーム内のデータとマッチする可能性がある。ある実施形態では、正規表現１４０５及び１４１０のそれぞれを、状態／ビット一体型ストリームが、これら正規表現のいずれかとマッチするまで、順番に適用しても良い。正規表現１４０５及び１４１０が適用される順番は、任意の所望のやり方、例えば、それらの定義の順番に定めることができる。別の実施形態では、正規表現エンジン１０１５は、正規表現１４０５及び１４１０の全てを同時に適用し、マッチするものを探すようにできる。更に別の実施形態では、状態／ビット一体型ストリームの異なる複数の部分が、異なる複数の正規表現とマッチするようにできる。
【０１２６】
図１４は、２個の正規表現１４０５及び１４１０を示すが、当業者であれば、正規表現エンジン１０１５内に任意の個数の正規表現があって良いことが理解できよう。
【０１２７】
当業者であれば、上述の正規表現エンジンは、本質的には、チューリング・マシン（Turing machine）の形態であることが理解できよう。チューリング・マシンは、コンピュータ・サイエンスで使われる抽象概念である。チューリング・マシンは、複数セルに区分されたテープから構成される。このテープは、一般に長さが無限と仮定されている。チューリング・マシーンには、ヘッドもあり、これは、テープ上の１つのセルについて、シンボルを読み書きするのに利用できる。シンボルを読み出すか又は書き込んだ後に続いて、ヘッドは、１セル左又は右にテープ上を移動する。チューリング・マシーンには、状態レジスタ（register）もあり、これは、チューリング・マシーンの現在の状態を表す。最後に、チューリング・マシーンは、どのように進むかの命令のテーブルを有している。典型的には、テーブル内の各命令は、現在の状態と、テープから読み出した現在のシンボルとを含むタプル（tuple）と考えることができ、利用する次の状態と、テープに書き込むシンボルと、テープが進む方向（左又は右）とを特定する。
【０１２８】
コンピュータ・サイエンス理論は、単一のチューリング・マシーンが、複数のチューリング・マシーンの動作をシミュレートできることを示している。即ち、２つ以上のチューリング・マシーンの定義を与えれば、これら別々のチューリング・マシーン全ての動作を実行する単一のチューリング・マシーンを定義可能である。よって、複数のチューリング・マシーンが別々に行うごとく、単一のチューリング・マシーンで同じデータを分析できるように、単一のチューリング・マシーンを工夫することが可能である。
【０１２９】
コンピュータ・サイエンス理論は、また、単一のチューリング・マシーンが、２つのチューリング・マシーンの動作を順次シミュレート可能であることを示している。即ち、一方のチューリング・マシーンが入力データに対して動作し、第２のチューリング・マシーンが、この第１のチューリング・マシーンの出力を受け取って、それを異なるやり方で処理するのであれば、同じ結果を実現する単一のチューリング・マシーンを定義可能である。
【０１３０】
別の有用なアナロジー（例え）には、ソフトウェアのプログラミング（coding）がある。ソフトウェアは、単一のサブルーチンで実装可能である。しかし、これは、実装、デバッグ、メンテナンスを困難にする。ソフトウェアをモジュール化することで、実装、デバッグ、メンテナンスが単純化される。
【０１３１】
同様に、図１３〜１４に示すような、複数正規表現のシリアル（順次連続的）な適用や、複数の独立した正規表現の結果を実現する正規表現を定義することは可能である。しかし、これら正規表現の定義は、非常に複雑になることがある。個別の正規表現を定義し、それらを交互に又は順次適用することは、より複雑な全体にわたる結果を実現する単一の正規表現を定義するよりも簡単である。よって、本発明は、米国特許出願第１２／９４９,７０３号に対して優位がある。
【０１３２】
図１５は、状態情報を有する正規表現を受け取って、それを図１０の試験測定装置で使用するための正規表現エンジンにコンパイルするコンパイラを示す。図１５では、コンパイラ１５０５が、状態情報１０２５を伴う正規表現１３０５、１４０５を受ける。正規表現１３０５、１４０５は、正規表現１３０５、１４０５とマッチする状態／ビット一体型ストリームを認識するステート・マシーンを効果的に記述しているので、コンパイラ１５０５は、正規表現エンジン１０１５を構成する状態及び遷移を定義する、このステート・マシンを利用して、正規表現エンジン１０１５を生成できる。
【０１３３】
コンパイラ１５０５は、正規表現１３０５、１４０５を受け取り、それから正規表現エンジン１０１５を生成できるので、当業者であれば、正規表現１３０５、１４０５と、正規表現エンジン１０１５との間の唯一の違いは、実装（implementation）である（これらは、両方とも、シリアル・ビット・ストリーム又は状態／ビット一体型ストリームが特定の表現とマッチする仕方を記述している）ことが理解できよう。従って、正規表現１３０５、１４０５と正規表現エンジン１０１５とは、実際的には異なる構造体である一方で、これら用語は、同じ基本的基礎概念を表している。従って、用語「正規表現エンジン」及び「正規表現」は、実際上、交換可能に利用でき、特定の用語の意図は、文脈から理解すれば良い。
【０１３４】
図１６Ａ〜１６Ｂは、本発明の実施形態による状態情報を伴う正規表現を用いるための手続のフローチャートを示す。図１６Ａにおいて、ブロック１６０５では、状態情報がイベントとして定義される。ブロック１６１０では、シリアル・ビット・ストリームを受ける。ブロック１６１５では、状態を特定するロジックがシリアル・ビット・ストリームに適用され、状態／ビット一体型ストリームを生成する。ブロック１６２０では、正規表現が状態／ビット一体型ストリームに適用される。
【０１３５】
ブロック１６２５（図１６Ｂ中）では、中間結果が正規表現（Regular Expression）から生成される。この中間結果は、ブロック１６３０で、第２正規表現エンジンに入力される。ブロック１６２５及び１６３０は、もし更なる正規表現が適用されるなら、破線矢印１６３５で示されるように、更なる回数、繰り返しても良い。
【０１３６】
別の選択肢では、ブロック１６２５及び１６３０で示されるように複数の正規表現を順次適用するのではなくて、もし状態／ビット一体型ストリームが第１正規表現とマッチしなかったのなら、ブロック１６４０で、第２の正規表現を適用しても良い。破線矢印１６４５で示されるように、もし続いて起こるマッチの失敗に続いて、更なる正規表現でトライしようとするなら、ブロック１６４０が、更なる回数、繰り返しても良い。
【０１３７】
最後に、ブロック１６５０では、１つ又は複数の正規表現の結果がユーザに出力データとして提示されても良い。
【０１３８】
図１７は、正規表現エンジンで使用するための構造へ正規表現をコンパイルする本発明の実施形態による手続のフローチャートを示す。図１７において、ブロック１７０５では、状態情報がイベントして定義される。ブロック１７１０では、正規表現を受ける。ブロック１７１５では、順次適用できる第２正規表現を受けても良い。破線矢印１７２０で示されるように、ブロック１７１５は、どのくらい多くの正規表現を受けるかに応じて、複数回繰り返しても良い。
【０１３９】
別の選択肢では、ブロック１７２５で示すように、複数の正規表現を順次適用するのではなくて、もし状態／ビット一体型ストリームが第１正規表現とマッチしないのなら、ブロック１７２５で、使用すべき第２正規表現を受けるようにしても良い。破線矢印１７３０で示されるように、ブロック１７２５は、どのくらい多くの正規表現を受けるかに応じて、複数回繰り返しても良い。
【０１４０】
最後に、ブロック１７３５において、受けた正規表現をハードウェア構造にコンパイルしても良い。
【０１４１】
上述の図１６Ａ〜１６Ｂ及び１７は、本発明で可能な様々な実施形態を表している。本発明の実施形態は、フローチャートに示したこれらのものに限定されない。本発明の実施形態の一般性を損なうことなく、種々のブロックを省略できるし、ブロックの順番を再配列できる。このように、例えば、図１６Ａの破線１６５５、図１６Ｂの破線１６６０、図１７の破線１７４０ 及び１７４５は、ブロックをスキップできる方法もあることを表す。フローチャートをどのように変更するかというこれら例は、単に例に過ぎず、フローチャートを変更できる唯一の方法を記述しようとするものではない。
【０１４２】
以下の説明は、本発明のある側面を実現できる適切なマシーンの簡潔な概要の説明を提供しようとするものである。典型的には、マシーンは、システム・バスを含み、これに、プロセッサ、メモリ、例えば、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）、又は他の状態保持メディア、記憶装置、ビデオ・インターフェース、そして、入力／出力インターフェース・ポートが取り付けられる。マシーンは、少なくとも一部分は、キーボード、マウスなどの従来の入力デバイスからの入力によって、制御されても良く、加えて、別のマシーンから受けた指示、バーチャル・リアリティ（ＶＲ）環境を用いるインタラクティブな処理、生体フィードバック、又は、他の入力信号によって制御されても良い。本願で用いたように、用語「マシーン（machine：機械）」は、単一のマシーン又は通信可能に結合された複数マシーン若しくは一緒に動作する複数デバイスからなるシステムを広く包含することを意図している。典型的なマシーンとしては、パソコン、ワークステーション、サーバ、ポータブル・コンピュータ、ハンドヘルド・デバイス、電話、タブレットなどのようコンピューティング・デバイスに加えて、例えば、自動車、電話、タクシーなどの私有又は公共の輸送機関のような輸送装置がある。
【０１４３】
マシーンとしては、プログラマブル又はノン・プログラマブル・ロジック・デバイス又はアレー、ＡＳＩＣ、組込み型コンピュータ、スマート・カードなどのような組込み型コントローラ（embedded controller）を含んでも良い。マシーンは、ネットワーク・インターフェース、モデム、他の通信手段など、１つ以上のコネクションを用いて１つ以上の遠隔装置に接続されても良い。複数のマシーンは、イントラネット、インターネット、ＬＡＮ、ＷＡＮなどのような物理的又は論理的なネットワークにより、相互接続されていても良い。当業者であれば、ネットワーク通信には、無線周波数（ＲＦ）、衛星、マイクロ波、IEEE810.11、Bluetooth（登録商標）、光、赤外線、ケーブル、レーザなどといった、有線又は無線の短距離又は長距離のキャリアやプロトコルを利用して良いことが理解できよう。
【０１４４】
本発明は、マシーンがアクセスしたときに、マシーンがタスクを実行するか、又は、抽象データ形式又は低レベルのハードウェア状況を定義するという結果が得られる機能、手続、データ構造、アプリケーション・プログラムなどを含む関連データを参照するか又は連動して記述されても良い。関連データは、例えば、ＲＡＭ、ＲＯＭなどの揮発性及び／若しくは不揮発性メモリ、又は、ハード・ドライブ、ＦＤ、オプティカル・ストレージ、テープ、フラッシュ・メモリ、メモリ・スティック、デジタル・ビデオ・ディスク、生体ストレージなどを含む他の記憶デバイス及びそれらに関連する記憶媒体に記憶しても良い。関連データは、パケット、シリアル・データ、パラレル・データ、伝播信号などの形式で、物理的及び／又は論理ネットワークを含む伝送環境を通して送ることができ、圧縮又は暗号化形態で利用されても良い。関連データは、分散型環境で利用され、マシーンがアクセスするローカル又は遠隔な場所に蓄積されても良い。
【０１４５】
図示した実施形態を参照しながら、本発明の原理を記述し、特徴を説明してきたが、こうした原理から離れることなく、図示した実施形態の構成や細部を変更しても良いことが理解できよう。そして、先の説明では、特定の実施形態に絞って説明しているが、別の構成も考えられる。特に、「本発明のある実施形態によると」といった表現を本願では用いているが、こうした言い回しは、大まかに言って実施形態として可能であることを意味し、特定の実施形態の構成に限定することを意図するものではない。本願で用いているように、これら用語は、別の実施形態に組み合わせ可能な同じ又は異なる実施形態に言及するものである。
【符号の説明】
【０１４６】
１０  シリアル・ビット・ストリーム
１２  制御器
１３  正規表現エンジン
１４  ユーザ・インタフェース
２０  デジタイザ
９０  トリガ・システム
９１  正規表現エンジン
９２  トリガ入力
９３  制御器
９４  トリガ信号
１００５  コントローラ
１０１０  状態特定ロジック
１０１５  正規表現エンジン
１０２０  ユーザ・インタフェース
１０２５  状態情報
１１０５  ロジック表現
１２０５  外部表現
１３０５  正規表現
１３１０  中間結果
１３１５  正規表現
１４０５  正規表現
１４１０  正規表現
１５０５  コンパイラ
【図１】
0006677983.tif 000002
【図２】
0006677983.tif 000003
【図３】
0006677983.tif 000004
【図４】
0006677983.tif 000005
【図５】
0006677983.tif 000006
【図６】
0006677983.tif 000007
【図７】
0006677983.tif 000008
【図８】
0006677983.tif 000009
【図９】
0006677983.tif 000010
【図１０】
0006677983.tif 000011
【図１１】
0006677983.tif 000012
【図１２】
0006677983.tif 000013
【図１３】
0006677983.tif 000014
【図１４】
0006677983.tif 000015
【図１５】
0006677983.tif 000016
【図１６Ａ】
0006677983.tif 000017
【図１６Ｂ】
0006677983.tif 000018
【図１７】
0006677983.tif 000019