(57)【特許請求の範囲】
【請求項１】
試験測定装置と、
該試験測定装置上のメモリと、
正規表現及びビット・ストリームを受けるよう動作する上記試験測定装置上の受信部と、
上記正規表現からステート・マシーンを発生するステート・マシーン発生部と、
上記ステート・マシーンを用いて上記ビット・ストリームを分析するよう動作する分析部と、
上記ステート・マシーン中のある１つの状態に入るたびに、パンくずリストを発生して上記メモリ中に保存するパンくずリスト発生部と
を具える分析用システム。
【請求項２】
上記パンくずリスト発生部は、予期せぬ入力についてエラー状態に入ったときに、形式、ＩＤ及び時間の中の少なくとも１つを含むパンくずリストを生成し、上記メモリに保存するよう動作する請求項１による分析用システム。
【請求項３】
試験測定装置で正規表現を受ける処理と、
上記正規表現からステート・マシーンを生成する処理と、
上記ステート・マシーンをビット・ストリームに適用する処理と、
上記ステート・マシーン中の少なくとも１つの状態に関して、少なくとも１つの上記状態に入るときに、上記試験測定装置のメモリにパンくずリストを保存する処理と
を具える分析用方法。
【請求項４】
少なくとも１つの上記状態に入るときに、上記試験測定装置のメモリにパンくずリストを保存する処理が、予期せぬ入力についてエラー状態に入ったときに、エラーのパンくずリストを保存する処理を含み、上記パンくずリストが、形式、ＩＤ及び時間の中の少なくとも１つを含む請求項３による分析用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験測定装置に関し、特に、試験測定装置においてビット・ストリームの分析を再現する方法に関する。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】特表２００７−５２２４５３号公報
【特許文献２】米国特許第７７９７３４６号明細書
【特許文献３】特表２００４−５２３１６６号公報
【特許文献４】特開２００７−２８６０２５号公報
【特許文献５】米国特許第９０６９０１７号明細書
【特許文献６】特許第５６０５８４２号公報
【非特許文献】
【０００３】
【非特許文献１】「Breadcrumb（navigation）」の記事、Wikipedia（英語版）、［オンライン］、［２０１５年１０月２３日検索］、インターネット、<https://en.wikipedia.org/wiki/Breadcrumb_(navigation）>
【非特許文献２】「パンくずリスト」の記事、Wikipedia（日本語版）、［オンライン］、［２０１５年１０月２３日検索］、インターネット、<https://ja.wikipedia.org/wiki/パンくずリスト>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
信号のリアルタイム分析には、いいところもある。しかし、時として、事後にデータに関する試験測定装置の動作を再現し、その詳細をチェックできるようにするのは有益である。現在、ビット・ストリーム中のデータを分析するときに、この分析の再現を行う方法がない。
【０００５】
本発明の実施形態は、従来技術のこれと他の問題に取り組むものである。
【課題を解決するための手段】
【０００６】
本発明は、次のような種々の概念から表現できる。
【０００７】
本発明の概念１は、システムであって、
試験測定装置と、
該試験測定装置上のメモリと、
正規表現及びビット・ストリームを受けるよう動作する上記試験測定装置上の受信部と、
上記正規表現からステート・マシーンを発生するステート・マシーン発生部と、
上記ステート・マシーンを用いて上記ビット・ストリームを分析するよう動作する分析部と、
上記ステート・マシーン中のある１つの状態に入るたびに、パンくずリストを発生して上記メモリ中に保存するパンくずリスト発生部と
を具えている。
【０００８】
本発明の概念２は、上記概念１によるシステムであって、このとき、上記パンくずリスト発生部は、形式、ＩＤ及び時間の中の少なくとも１つを含むパンくずリストを発生するよう動作する。
【０００９】
本発明の概念３は、上記概念１によるシステムであって、このとき、上記パンくずリスト発生部は、予期せぬ入力についてエラー状態に入ったときに、形式、ＩＤ及び時間の中の少なくとも１つを含むパンくずリストを生成し、上記メモリに保存するよう動作する。
【００１０】
本発明の概念４は、上記概念１によるシステムであって、上記ステート・マシーンを最適化するよう動作するステート・マシーン最適化部を更に具えている。
【００１１】
本発明の概念５は、上記概念１によるシステムであって、保存された上記パンくずリストを利用して、上記ステート・マシーンの動作を再現する再現部を更に具えている。
【００１２】
本発明の概念６は、方法であって、
試験測定装置で正規表現を受ける処理と、
上記正規表現からステート・マシーンを生成する処理と、
上記ステート・マシーンをビット・ストリームに適用する処理と、
上記ステート・マシーン中の少なくとも１つの状態に関して、少なくとも１つの上記状態に入るときに、上記試験測定装置のメモリにパンくずリストを保存する処理と
を具える。
方法を含む。
【００１３】
本発明の概念７は、上記概念６による方法であって、このとき、少なくとも１つの上記状態に入るときに、上記試験測定装置のメモリにパンくずリストを保存する処理が、上記ステート・マシーン中の各状態に入るときに、パンくずリストを保存する処理を含んでいる。
【００１４】
本発明の概念８は、上記概念６による方法であって、このとき、少なくとも１つの上記状態に入るときに、上記試験測定装置のメモリにパンくずリストを保存する処理が、少なくとも１つの上記状態に入るときにパンくずリストを保存する処理を含み、上記パンくずリストが、形式、ＩＤ及び時間の中の少なくとも１つを含んでいる。
【００１５】
本発明の概念９は、上記概念６による方法であって、このとき、少なくとも１つの上記状態に入るときに、上記試験測定装置のメモリにパンくずリストを保存する処理が、予期せぬ入力についてエラー状態に入ったときに、エラーのパンくずリストを保存する処理を含み、上記パンくずリストが、形式、ＩＤ及び時間の中の少なくとも１つを含んでいる。
【００１６】
本発明の概念１０は、上記概念６による方法であって、このとき、上記正規表現からステート・マシーンを生成する処理が、上記ステート・マシーンを最適化する処理を含む。
【００１７】
本発明の概念１１は、上記概念６による方法であって、上記ステート・マシーンへのビット・ストリームの適用を把握（フォロー）するために、保存された上記パンくずリストを利用する処理を更に具えている。
【図面の簡単な説明】
【００１８】
【図１Ａ】図１Ａは、特定のパケットにマッチングするプロトコルの例を示す。
【図１Ｂ】図１Ｂは、図１Ａのパケットにマッチできるステート・マシーンを示す。
【図１Ｃ】図１Ｃは、図１Ａのパケットのデータを含む条件についてトリガできるステート・マシーンを示す。
【図２Ａ】図２Ａは、いくつかのパケットにマッチングするプロトコルの第２の例を示す。
【図２Ｂ】図２Ｂは、図２Ａのパケットにマッチする最適化していないステート・マシーンを示す。
【図２Ｃ】図２Ｃは、図２Ａのパケットにマッチする最適化したステート・マシーンを示す。
【図２Ｄ】図２Ｄは、図２Ａのパケットのデータを含む条件についてトリガできるステート・マシーンを示す。
【図３Ａ】図３Ａは、複合トリガ条件を反映するよう変更された図１Ｂのステート・マシーンの例を示す。
【図３Ｂ】図３Ｂは、複合トリガ条件を反映するよう変更された図１Ｂのステート・マシーンの別の例を示す。
【図４】図４は、図１Ｂ〜１Ｃ及び２Ｂ〜２Ｄのステート・マシーンを生成及び利用し、種々のトリガ条件に合致したときに試験測定装置にトリガをかけることができ、そして、図１Ｂ〜１Ｃ及び２Ｂ〜２Ｄのステート・マシーンの動作を反映しているパンくずリストをメモリに保存できる、本発明の実施形態による試験測定装置を示す。
【図５】図５は、図４のステート・マシーン変更部をより詳細に示す。
【図６】図６は、図４のパンくずリストをより詳細に示す。
【図７Ａ】図７Ａは、図４の試験測定装置を用いて、プロトコル及びユーザ設定からトリガ・ステート・マシーンを生成する本発明の実施形態による手順の一部分のフローチャートを示す。
【図７Ｂ】図７Ｂは、図４の試験測定装置を用いて、プロトコル及びユーザ設定からトリガ・ステート・マシーンを生成する本発明の実施形態による手順の残りの部分のフローチャートを示す。
【図８】図８は、図４の試験測定装置を用いて、プロトコル及び複合トリガ条件からトリガ・ステート・マシーンを生成する本発明の実施形態による手順のフローチャートを示す。
【図９】図９は、図４の試験測定装置を用いて、ステート・マシーンを最適化する本発明の実施形態による手順のフローチャートを示す。
【図１０】図１０は、図４の試験測定装置を用いて、パンくずリストを保存できるステート・マシーンを生成する処理を利用する本発明の実施形態による手順のフローチャートを示す。
【発明を実施するための形態】
【００１９】
本発明がどのように動作するか説明する前に、正規表現及びステート・マシーンの間の関係を理解するのは有益である。
【００２０】
正規表現が与えられると、その正規表現を表すステート・マシーンを構築できる。すると、そのステート・マシーンは、特定の入力がその正規表現とマッチするかどうかを判断するのに利用できる。もしそのステート・マシーンが許容し得る最終状態になれば、入力は、その正規表現とマッチする。さもなくば、入力は正規表現とはマッチしない。
【００２１】
図１Ａは、「データ・パケット」と名前の付けられ、正規表現として表現されたデータのパケットに関するプロトコルの例を示す。プロトコル１０５は、データのパケットを記述している。ビット・ストリームがこの正規表現に対して比較されると、システムは、そのビット・ストリーム内にそのパケットが見つけられるかどうか判断できる。
【００２２】
図１Ｂは、図１Ａの正規表現に対応するステート・マシーンを示す。ステート・マシーン１１０には、状態１１５、１２０、１２５、１３０、１３５、１４０及び１４５があり、これら状態間の遷移を伴う。各状態（これは、ノード又は頂点とも呼ぶことができる）は、その状態に入るのにどのようなデータがマッチする必要があるかを記述している（受容基準）。各矢印は、その状態に関する目標の受容基準が満たされていれば、横断できるパスである。スタート状態１１５及び成功状態１４５は除いて、これら状態は、パケットによって予期されるデータに順次対応している。よって、状態１２０は、ビット・ストリーム内の状態Ｓとマッチし、状態１２５は、「begin（開始）」とラベルされたフィールドに対して、３ビットのデータとマッチし、状態１３０は、「addr」とラベルされたフィールドに対して、４ビットのデータとマッチする、などである。全てのデータがステート・マシーン１１０の複数の状態によって、マッチさせることができるとすると、成功状態１４５に達したとき、システムは、そのパケット「データ・パケット」は、成功裏にマッチしたと宣言できる。
【００２３】
ステート・マシーン１１０は、実際のステート・マシーンの簡略化バージョンを表している。例えば、ステート・マシーン１１０は、種々の状態間の遷移にラベルを付けていないし、ステート・マシーン１１０は、データが予期したものとマッチしない場合に使用されるエラーの状態又は遷移を示してもいない。当業者であれば、これら詳細がなくても、ステート・マシーン１１０がどのように動作するか、理解できよう。
【００２４】
正式には、数学用語では、ステート・マシーンは、５個の成分からなるもの（Σ，Ｓ，ｓ０，δ，Ｆ）として表され、ここで、Σはアルファベット（ステート・マシーンによって認識された複数シンボルからなるセット）であり、Ｓはステート・マシーン中の複数状態からなるセット（set：組、グループ）であり、ｓ０は初期状態であり、δは遷移関数であって、Ｓ中の各状態及びΣ中の各シンボルをＳ中の状態（これは、入力の状態と同じ状態であっても良い）へとマッピングし、そして、Ｆは、Ｓ中の複数の最終状態のセットである。よって、ステート・マシーン１１０は、より正式には、（Σ，Ｓ，ｓ０，δ，Ｆ）として表すことができ、ここで：
【００２５】
Σ＝｛Ｓ，０，１，…｝（状態Ｓ及びバイナリ値０及び１だけよりも、もっと多くの認識されたシンボル（これらはステート・マシーンによって認識されたシンボルだけであるけれども）が潜在的に存在し得る）
【００２６】
Ｓ＝｛１１０，１１５，１２０，１２５，１３０，１３５，１４０，１４５｝
【００２７】
ｓ０＝１１０
【００２８】
δ（δは、その完全な遷移関数を表すのは、非常にめんどうであるし、ほとんど価値がないであろうことから、ここでは、より詳細には表さない）
【００２９】
Ｆ＝｛１４５｝
【００３０】
実際、ステート・マシーン１１０のこの表現は、必ずしも完全ではない。遷移は、典型的には、シンボルのグループでよりは、個々のシンボルで生じる。よって、状態１２０から１２５への遷移は、実際には、３つの遷移（そして、それ故に、いくつかの中間状態）を含むことができる（各ビットについて認識されたものは、そのフィールドが「begin」とラベルが付けられる）。しかし、簡略化しても、当業者であれば、ステート・マシーン１１０がどのように動作するか理解できよう。
【００３１】
ユーザは、ステート・マシーン１１０中で、ある特定の値が所与の状態に関して読み出されたら、ある処理にトリガをかけたい（処理を始動したい）かもしれない。例えば、ユーザは、もしアドレス・フィールドが値１０（バイナリ値で１０１０、１６進数でＡ）を保持していたら、ある処理にトリガをかけたいかもしれない。図１Ｃは、このトリガを実現するためにどのようにステート・マシーン１１０を変更できるかの例を示す。図１Ｃでは、任意のあり得る値をアドレス・フィールドに関してマッチング処理する代わりに、ステート・マシーン１５０が、ビット・ストリームを特定の値１０１０と（状態１５５において）比較している。もしその値が見つかれば、続いて、状態１６０において、トリガが満たされたと考えられ、そして、トリガが処理を開始させる（その処理は、どのようなものでも良い）。
【００３２】
状態１１５及び１２０は、ステート・マシーン１５０と、ステート・マシーン１１０とで同じであることに注意されたい（状態１１５は、ステート・マシーンが開始する状態であり、状態１２０は、ビット・ストリームの状態Ｓとマッチする）。しかし、状態１６５は特定フィールドが読み出されたかに留意しない点で、状態１２５とは異なる。言い換えれば、状態１６５では、重要なのは、３つのビットがビット・ストリームから読み出されることだけである。状態１５５は、そのアドレス・フィールドにマッチするか（状態１３０でのように）ではなく、その特定ビット・パターン１０１０とマッチするかだけに関係があるので、状態１５５も状態１３０とは異なる。最後に、ユーザの条件が一度マッチしたら、更なるマッチング処理を行う必要はなく、そのため、ステート・マシーン１５０は、状態１３５及び１４０に類似するものを持っていない：条件を満たした後、トリガを直ちに出すことができる。
【００３３】
図１Ａ〜１Ｃは、正規表現、この正規表現にマッチするステート・マシーン及びトリガ・ステート・マシーンのかなり単純化した例を示す。（トリガ・ステート・マシーンは、時として、シンプルに「ステート・マシーン」と呼ばれるが、状況から、当業者であれば、特定のステート・マシーンが、トリガ・ステート・マシーンであるか、又は、正規表現にマッチするステート・マシーンであるかを判断できる。）図２Ａ〜２Ｄは、もっと複雑な例を示す。図２Ａでは、３つの異なるパケットに関する正規表現が示されている。これら正規表現は、図２Ｂに示すように、ステート・マシーンに変換できる。図２Ｂのステート・マシーン２０５は、３つの可能なプロトコルをカバーするのに、単一のスタート（start）状態を利用していることに注意されたい。
【００３４】
ステート・マシーン２０５は、示したように利用できる。しかし、ステート・マシーン２０５を示したように使うには、先読み又はバックトラッキングが必要であろうし、これは、追加のメモリを必要とし、ビット・ストリームの処理を低下させることがある。例えば、複数の状態が、特定の入力を前提として、最も左に達したと仮定しよう（図２Ｂは、プロセッサがどのようにステート・マシーン２０５を使うかというよりは、人によって読まれるであろうため）。例えば、状態２１０、２１５及び２２０の全ては、Begin状態にマッチし、そして、状態２２５、２３０及び２３５の全ては、スレーブ・アドレス・フィールドとして、４ビットにマッチすることに注意されたい。最も左を優先するアプローチを用いると、Begin状態と、スレーブ・アドレス・フィールドとして４ビットとを読んだ後には、システムは、状態２２５にあるであろう。しかし、もし次に読むビットが０だと、システムは、ステート・マシーン２０５の間違った枝（ブランチ）をたどり、そして、正しい枝を見つけようとして、ステート・マシーン２０５を巻き戻さなければならないであろう。これは、バックトラッキングの例である。ステート・マシーン２０５を逆行させ、異なる枝を処理しなければならなくなると、ビット・ストリームの処理が遅くなるのは、明かであろう。ステート・マシーン２０５を用いてバックトラッキングを避けるには、先読み処理が必要となろう（システムは、ビット・ストリームにこれからやってくるビットをなんとかして調べなければならない）。先読みも、複雑で高価である。
【００３５】
バックトラッキング及び先読みの両方を避けるように、ステート・マシーン２０５を最適化できる。図２Ｃのステート・マシーン２４０は、最適化したステート・マシーンの例を示す。ステート・マシーン２４０によれば、先読みをする必要がなく、バックトラッキングの心配もない。複数パケットのいずれかの任意のプリフィックス（先頭の値）が与えられると（パケット全体を含めて、パケット全体まで）、そのプリフィックスにマッチするあり得るパスは、ステート・マシーン２４０を通して、１つしかない。従って、先読みをする必要はないし、バックトラッキングを心配する必要もない：ステート・マシーン２４０中の特定の状態と、特定の入力シンボルとが与えられると、遷移する先のあり得る状態は１つしかない（この状態は、簡単のため、図２Ｃでは示していないエラー状態かもしれない）。
【００３６】
最適化は、次の手順を用いて達成できる。スタート状態からツリーを歩くことによってスタートし、等しい複数のノードを組み合わせ（つまり、それら複数ノードを単一のノードに結合する）、同じ親（parent：ペアレント）を持たせる。この処理は、組み合わせるノードが無くなるまで繰り返すことができる。続いて、等しい成功状態を見つけ、それらを組み合わせ、次に等しいノードを組み合わせ、同じ子供（チルドレン）を持たせる（再度、組み合わせノ―ドが無くなるまで、その処理を繰り返す）。
【００３７】
図２Ｄは、ユーザによってカスタマイズされた特定トリガの例を示す。図２Ｄでは、ユーザは、正規表現中のパケットのアドレス・フィールド（スレーブ・アドレス・フィールドではない）が値０に設定された場合に、トリガするように選択している。このフィールドは、パケットのレジスタ０ライト（Register０Write）中に現れないので、そのステート・マシーンのこの枝（ブランチ）全体をトリガ・ステート・マシーン２４５から排除できる。どのような値もスレーブ・アドレス・フィールドに対してマッチでき、その後で、ビット０及び１は、マッチしなければならない。その後、任意のビットが発生でき（実際のビットは、読まれる特定のパケットに依存するであろうが、トリガ・ステート・マシーン２４５は、どの値を受けるに関係がない）、その後に、アドレス・フィールドに関するビットを受け、値０と比較できる。もし値０がアドレス・フィールドについてマッチするなら、トリガ・ステート・マシーン２４５は成功であり、トリガを開始できる。
【００３８】
上記例は、等式として表される単一のトリガ基準を利用する。しかし、そのトリガ条件を等式に限定する理由はない。等式（＝＝）を別にすると、他のトリガ条件の例としては、等しくない（！＝）、より小さい（＜）、以下（＜＝）、より大きい（＞）、又は、以上（＞＝）があり得る。加えて、トリガ条件は、正規表現中のフィールドの情報のサブセットだけに依存するかもしれない。例えば、図２Ｄでは、ユーザは、アドレス・フィールドの中間の３ビットが００１に等しいかどうかだけに感心があるかもしれない（アドレス・フィールド（これは、合計５ビットを持っている）の最初と最後のビットは、任意の値にマッチして良い）。特定の状態に達することだけに依存してトリガ条件を設定することも可能である。例えば、ユーザは、その実際の値に関係なく、いつアドレス・フィールドに達したかを知ることに感心があるかもしれない。
【００３９】
加えて、トリガ条件は、単一の基準（これは、１つの単純なトリガ条件と呼ばれる）に限定される必要はない。ユーザは、任意の所望組み合わせにＡＮＤ及びＯＲ演算子を用いて組み合わせられた複数の基準（複合トリガ条件）を指定できる。よって、ステート・マシーンは、複数の条件（これらのいずれかは、サブ条件などのセットを含むかもしれない）を試験することができる。当業者であれば、ユーザが供給した条件を、どのようにして積和標準形（Disjunctive Normal Form）又は和積標準形（conjunctive normal form）に単純化するかわかるであろうし、これは、ステート・マシーンの構造を単純化できる。（積和標準形は、連言節（conjunctive clause）の選言（disjunction）、即ち、ＡＮＤ（論理積）のＯＲ（論理和）として表現された論理式に言及する。和積標準形は、同様にＯＲ（論理和）のＡＮＤ（論理積）を表す。）
【００４０】
図３Ａ〜３Ｂは、複合トリガ条件を有するステート・マシーンの例を示す。図３Ａでは、ユーザが、（addr == 0xA && parity == 1）のトリガ条件を指定している。こうしたトリガ条件は、２つの条件の連言（conjunction：論理積、結合）である。このトリガ条件は、２つの状態の両方が特定の値を持つことを必要とするので、ステート・マシーン中の２つの状態が（ユーザによって指定されて）特定の値に設定される。他の状態の値は、通常、重要ではなく、単一の状態へと組み合わせることができる。
【００４１】
図３Ｂでは、ユーザは、（addr == 0xA || parity == 1）の特定トリガ条件（選言的トリガ条件）を指定している。このトリガ条件は、２つの状態の一方が特定の値を持つことを必要とするので、別々の条件を有する２つのステート・マシーンを確立し、上述の最適化手法を用いて統合できる。このトリガ条件は、選言（disjunction）のため、１つステート・マシーンに適用されるけれども、成功トリガへのあり得るパスは２つ存在する。
【００４２】
図３Ａ〜３Ｂは、２つの可能なトリガ値を組み合わせる単一のＡＮＤ又はＯＲを含んでいる例を与える。しかし、この処理をもっと複雑なトリガ条件に関して一般化できることは明かであろう。例えば、もしトリガ条件が、ＡＮＤ演算で結合される２つの値か、又は、もう１つの値（（Ｘ  ＡＮＤ  Ｙ）ＯＲ  Ｚ）の形の式）を含むなら、ステート・マシーンはコピーしても良い。１つのコピーは、ＡＮＤ演算の第１値を反映するよう変更でき、第２のコピーは、ＡＮＤ演算の第２値を反映するよう変更でき、第３のコピーは、ＯＲ演算の残りの値を反映するよう変更できる。最初の２つのステート・マシーンは、続いて、第３のステート・マシーンと組み合わせられて最適化され、複合トリガ条件を表すようにできる。
【００４３】
さて、トリガ・ステート・マシーンを説明してきたが、トリガ・ステート・マシーンを利用できるシステムを説明できる。図４は、種々のトリガ条件が満たされたときに、試験測定装置をトリガする図１Ｂ〜１Ｃ及び２Ｂ〜２Ｄのステート・マシーンを生成及び利用できる、本発明の実施形態による試験測定装置を示す。システムは、試験測定装置４０５を含んでいても良い。試験測定装置は、他にも可能性がある中で特にオシロスコープのような、任意の所望の試験測定装置であっても良い。
【００４４】
試験測定装置４０５は、メモリ４１０を含んでも良い。メモリ４１０は、ステート・マシーン４１５のような情報を記憶できる。ステート・マシーン４１５は、正規表現にマッチさせるのに利用されるステート・マシーン、言い換えると、図１Ｂ、２Ｂ及び２Ｃのステート・マシーン１１０、２０５及び２４０のようなステート・マシーンとしても良い。ステート・マシーン４１５は、図１Ｃ及び２Ｄのステート・マシーン１５０及び２４５のような、トリガ・ステート・マシーンであっても良い。
【００４５】
試験測定装置４０５は、試験測定装置４０５の入力を受けることができる受信部４２０も含むことができる。入力は、あらゆる方法で受けることができる。例えば、受信部４２０は、トリガ条件４２５（これ自身が、例えば、特定のビット・フィールドに関してユーザが選択した値４３０を含んでも良い）のような情報をユーザが入力するためのユーザ・インタフェースを含んでいても良い。又は、受信部４２０が、分析すべきビット・ストリーム４３５のようなビット・ストリームを含む信号を受けるのを含んでいても良い。また、受信部４２０は、（例えば、統合開発環境（ＩＤＥ）を通して）正規表現４４０を受けても良く、これは、システムがビット・ストリーム４３５で受けると予期されるデータを特定でき、ステート・マシーン４１５を構築するのに利用できる（正規表現４４０又はトリガ・ステート・マシーンを認識するステート・マシーンである）。
【００４６】
試験測定装置４０５は、種々の他のユニットも含むことができる。ステート・マシーン変更部４４５は、既存のステート・マシーン（例えば、正規表現４４０にデータをマッチさせるもの）を取ってきて、それをトリガ・ステート・マシーンとして動作するように変更する。上述のように、これは、色々な可能性のなかでも特に、トリガ条件満たした後に生じる状態を除去する処理と、トリガ条件の一部と考えられない値の状態を組み合わせる（結合する）処理とを含むことができる。
【００４７】
処理エンジン４５０は、種々のステート・マシーン（例えば、正規表現４４０又はステート・マシーン変更部４４５を用いて生成されたトリガ・ステート・マシーンを用いて生成されるステート・マシーンを含む）を用いてビット・ストリーム４３５を処理できる。この処理は、ビット・ストリーム４３５からビットが読み出されるときに、種々のステート・マシーンのそれぞれに関する現在の状態をアップデートする処理を含んでも良い。
【００４８】
トリガ・システム４５５は、トリガ条件が満たされたとき、即ち、トリガ・ステート・マシーンが満たされたときに、トリガを送信できる。トリガ・システム４５５は、当業者であれば理解するであろうように、トリガの結果として任意のアクションを実行するために、試験測定装置４０５の任意の所望コンポーネントにトリガを送信できる。
【００４９】
ステート・マシーン発生部４６０は、正規表現４４０からステート・マシーンを生成できる。上述のように、これは、正規表現で提示された順番でフィールドにマッチする状態のシーケンシャルなシリーズを生成する処理を含んでも良い。また、これは、異なる正規表現にマッチする種々のステート・マシーンを単一のステート・マシーンに結合して、先読み及びバックトラッキングの問題を避けるように、ステート・マシーンを最適化する処理を含んでも良い。
【００５０】
トリガ・ステート・マシーンを発生及び利用することとは別に、試験測定装置４０５は、パンくずリスト（「パンくず リスト」又は「パンくずナビゲーション」とも呼ばれる：非特許文献１及び２参照）を生成するのにも利用できる。「パンくずリスト」の用語は、パンくずの跡を付けるというヘンデルとグレーテルの童話に由来する。パンくずリストは、ステート・マシーンの動作を、ユーザが再現し、データがどのように処理されたか見るのを可能にする。パンくずリスト４６５のようなパンくずリストは、メモリ４１０に記憶できるデータのほんのちょっとのものである。基本的に、ステート・マシーン中の状態に入るたびに、パンくずリストは保存されて良い。パンくずリストは、状態の形式（例えば、エラー状態、パケット・スタート、パケット・エンド又はフィールド）、状態のＩＤ（これは、フィールド又はパケットを特定できる）及び状態に入ること（エントリー）を生じさせるデータのスタート及びストップ時間のような時間、などのようなデータを含むことができる。当業者であれば、他の可能性のなかでも特に、「時間」は、文字通りの時間の概念（信号のスタートから秒単位で、又は、その何分の１かで）に言及しなければならないものはでなく、むしろ信号へのインデックスに言及しても良いことが理解できよう。パンくずリストは、適宜、分析に関係する追加データも含んで良い。従って、パンくずリストに含めるべきデータのＩＤ（identification：識別）は、ユーザがカスタマイズできる。
【００５１】
パンくずリストは、通常、トリガ・ステート・マシーンを用いて生成できる。しかし、当業者であれば、任意の他のステート・マシーンをパンくずリストの生成に利用できないという理由はなく、従って、任意のステート・マシーンを用いてパンくずリストを生成できることが理解できよう、
【００５２】
パンくずリストの生成をサポートするため、試験測定装置４０５が分析部４７０を含んでも良い。分析部４７０は、ステート・マシーンを用いてビット・ストリーム４３５を分析できる。動作において、分析部４７０は、処理エンジン４５０に類似するが、それらの目的は異なる。処理エンジン４５０が、正規表現を認識しようとして、ビット・ストリーム４３５のビットをマッチングに関与する一方、分析部４７０は、パンくずリストをいつメモリ４１０に保存するか判断することに関与する。また、分析部４７０及び処理エンジン４５０は、典型的には、異なるステート・マシーン上で動作する：分析部４７０は、通常、トリガ・ステート・マシーンを利用する（利用しなければならないことはないが）一方で、プロセッサ４５０は、正規表現にマッチするフルのステート・マシーンを利用する。
【００５３】
試験測定装置４０５は、パンくずリスト発生部４７５も含んで良い。パンくずリストを発生する時間であるという（例えば、新しい状態に入ったと、分析部４７０によって判断されるような）場合に、パンくずリスト発生部４７５は、そのパンくずリストをメモリ４１０に保存できる。
【００５４】
最後に、試験測定装置４０５は、再現部４８０を含んでも良い。再現部４８０は、ユーザが、ビット・ストリーム４３５についてのステート・マシーンの動作を（分析部４７０で処理されたように）再現するのを可能する。この再現は、ユーザが、何が起きたかを追いかける（フォローする）のを可能にする。
【００５５】
上述の試験測定装置４０５は、トリガ・ステート・マシーン又はパンくずリストの生成のいずれか、又は両方を処理できる。試験測定装置の中には、複数のステート・マシーンを処理するのに必要なハードウェア及び／又はソフトウェアを含むものもある。もし試験測定装置が、複数のステート・マシーンを処理できるのなら、試験測定装置４０５は、トリガ条件及びパンくずリストに関する処理の両方を実行できる。
【００５６】
図５は、図４のステート・マシーン変更部をより詳細に示している。図５では、ステート・マシーン変更部４４５は、ステート・マシーン最適化部５０５を含んでいるとして示されている。ステート・マシーン最適化部５０５は、上述のように、ステート・マシーンを最適化できる。こうした最適化は、正規表現にマッチするよう設計されたステート・マシーンについてか、又は、トリガ・ステート・マシーンについてか、どちらでも可能である。
【００５７】
図６は、図４のパンくずリストをより詳細に示している。図６では、パンくずリスト４６５は、形式６０５、ＩＤ６１０及び時間６１５を含むとして示されている。上述のように、形式６０５は、パンくずリスト４６５を生成した状態の形式を特定できる。ＩＤ６１０は、パンくずリスト４６５を生成したステート・マシーン中の特定の状態を特定できる。そして、時間６１５は、その状態がいつパンくずリスト４６５を生成したかの、信号中の時間（又はインデックス）を特定できる。
【００５８】
図７Ａ〜７Ｂは、図４の試験測定装置を用いて、プロトコルとユーザ設定とからトリガ・ステート・マシーンを生成する手順のフローチャートを示す。図７Ａでは、ブロック７０５において、システムが正規表現を受けても良い。ブロック７１０では、システムが、正規表現に対応するステート・マシーンを生成できる。ブロック７１５では、システムがステート・マシーンを最適化できる。
【００５９】
ブロック７２０では、システムは、正規表現に対応するステート・マシーン（ブロック７０５〜７１５で生成されたステート・マシーンと同じでも良い）を特定できる。ブロック７２５では、システムは、ユーザからトリガ条件を受ける。これは、色々な可能性のなかでも特に、例えば、正規表現中の特定フィールドに関するユーザ指定値（又は値の一部）、複数のそうしたユーザ指定値、単に到達するべき（リーチすべき）フィールドを含んでいても良い。ブロック７３０では、システムは、トリガ条件を実行するように変更できるステート・マシーン中の１つの状態（又は１より多い状態）を特定できる。
【００６０】
ブロック７３５（図７Ｂ）では、システムは、特定された状態を変更し、ユーザ選択値と比較しても良い。ブロック７４０、システムは、変更されたステート・マシーンを記憶できる。ブロック７４５では、システムは、ビット・ストリームを受けることができる。ブロック７５０では、システムは、変更されたステート・マシーンを用いて、ビット・ストリームを処理できる。ブロック７１０では、システムは、トリガ条件が満たされたか判断できる。もしそうなら、次に、ブロック７５５において、システムは、トリガ・システムを利用（apply）できる。
【００６１】
上述のように、トリガ条件は、複合トリガ条件でも良い。この場合、手順のフローチャートは、トリガ条件の複合された特性を反映するように変更できる。図８は、この変更を反映している。図８は、図７Ａ〜７Ｂのブロック７３０及び７３５を変更している：図７Ａ〜７Ｂの他のブロックは変更がなく、そのため、図８では示していない。
【００６２】
図８では、ブロック８０５において、システムが、複合トリガ条件で関係する複数の状態を特定する。関係する状態の個数は、複合トリガ条件中に含まれる単純な条件の個数よりも少ないことがある。例えば、図１Ｂに示されるステート・マシーンに関する複合トリガ条件は、（addr == 0xA || addr == 0xF）であっても良い。複合トリガ条件の両側で同じ状態が使われることに注意されたい。ブロック８１０では、システムは、複合トリガ条件中の単純なトリガ条件それぞれについて１回、ステート・マシーンを複製する。上記例を続けると、複合トリガ条件は、２つの単純なトリガ条件（addr == 0xA || addr == 0xF）を含み、そのため、システムは、ステート・マシーンの２つの複製を生成するであろう。ブロック８１５では、各複製ステート・マシーン内で、特定された状態が、ユーザ指定値との比較を反映するよう変更される。最後に、ブロック８２０では、変更された複製ステート・マシーンが、複合トリガ条件を反映する単一のステート・マシーンを生成するように結合される。このポイントにおいて、処理は、図７Ｂのブロック７４０に続く。
【００６３】
図９は、図４の試験測定装置を用いてステート・マシーンを最適化する本発明の実施形態による手順のフローチャートを示す。図９では、ブロック９０５において、システムが、トリガ条件が満たされた後に生じた状態を除去できる。ブロック９１０では、システムが、任意の値を満たすことができる隣接する状態を単一の状態に統合できる。
【００６４】
図１０は、図４の試験測定装置を用いてパンくずリストが保存できるステート・マシーンを生成する処理を利用する本発明の実施形態による手順のフローチャートを示す。ブロック１００５では、システムが正規表現を受けても良い。ブロック１０１０では、システムが正規表現からステート・マシーンを生成できる。ブロック１０１５では、システムは、ステート・マシーンを最適化できる。ブロック１０２０では、システムは、ステート・マシーンをビット・ストリームに適用できる。ブロック１０２５では、システムが、ステート・マシーン中のある状態に入るたびに、パンくずリストを保存できる。ブロック１０３０では、システムは、ビット・ストリームへのステート・マシーンの適用を再現するのに、保存されたパンくずリストを利用できる。
【００６５】
上記フローチャートは、いくつかの可能な本発明の実施形態を示している。しかし、本発明の他の実施形態では、ブロックを異なるアレンジで構成でき、要望に応じて異なるブロックを含めたり、省略したり、又は、必要に応じて１つのブロック（又は複数ブロック）を繰り返したりできる。本発明の実施形態は、フローチャートについてのこのようなバリエーションの全てを含むことを意図している。
【００６６】
本発明の実施形態は、限定されることなく、次の記述（statements）に拡張できる。
【００６７】
本発明の実施形態は、試験測定装置と、試験測定装置上のメモリと、正規表現及びビット・ストリームを受けるように動作する試験測定装置上の受信部と、正規表現からステート・マシーンを生成するステート・マシーン発生部と、ステート・マシーンを用いてビット・ストリームを分析するよう動作する分析部と、ステート・マシーン中のある１つの状態に入る（エントリーする）たびにパンくずリストを生成し、メモリ中に保存するよう動作するパンくずリスト発生部とを具えるシステムを含む。
【００６８】
本発明の実施形態は、試験測定装置と、試験測定装置上のメモリと、正規表現及びビット・ストリームを受けるように動作する試験測定装置上の受信部と、正規表現からステート・マシーンを生成するステート・マシーン発生部と、ステート・マシーンを用いてビット・ストリームを分析するよう動作する分析部と、ステート・マシーン中のある１つの状態に入るたびにパンくずリストを生成し、メモリ中に保存するよう動作するパンくずリスト発生部とを具えるシステムを含み、このとき、パンくずリスト発生部は、形式、ＩＤ及び時間のいずれかを少なくとも含むパンくずリストを生成するよう動作する。
【００６９】
本発明の実施形態は、試験測定装置と、試験測定装置上のメモリと、正規表現及びビット・ストリームを受けるように動作する試験測定装置上の受信部と、正規表現からステート・マシーンを生成するステート・マシーン発生部と、ステート・マシーンを用いてビット・ストリームを分析するよう動作する分析部と、ステート・マシーン中のある１つの状態に入るたびにパンくずリストを生成し、メモリ中に保存するよう動作するパンくずリスト発生部とを具えるシステムを含み、このとき、パンくずリスト発生部は、予期しない入力について、エラー状態に入った場合に、形式、ＩＤ及び時間のいずれかを少なくとも含むパンくずリストを生成するよう動作する。
【００７０】
本発明の実施形態は、試験測定装置と、試験測定装置上のメモリと、正規表現及びビット・ストリームを受けるように動作する試験測定装置上の受信部と、正規表現からステート・マシーンを生成するステート・マシーン発生部と、ステート・マシーンを最適化するよう動作するステート・マシーン最適化部と、最適化されたステート・マシーンを用いてビット・ストリームを分析するよう動作する分析部と、最適化されたステート・マシーン中のある１つの状態に入るたびにパンくずリストを生成し、メモリ中に保存するよう動作するパンくずリスト発生部とを具えるシステムを含む。
【００７１】
本発明の実施形態は、試験測定装置と、試験測定装置上のメモリと、正規表現及びビット・ストリームを受けるように動作する試験測定装置上の受信部と、正規表現からステート・マシーンを生成するステート・マシーン発生部と、ステート・マシーンを用いてビット・ストリームを分析するよう動作する分析部と、ステート・マシーン中のある１つの状態に入る（エントリーする）ときはいつもパンくずリストを生成し、メモリ中に保存するよう動作するパンくずリスト発生部と、保存されたパンくずリストを用いて、ステート・マシーンの動作を再現する再現部とを具えるシステムを含む。
【００７２】
本発明の実施形態は、試験測定装置で正規表現を受ける処理と、正規表現からステート・マシーンを生成する処理と、ステート・マシーンをビット・ストリームに適用する処理と、ステート・マシーン中の少なくとも１つの状態に関して、この少なくとも１つの状態に入る（エントリーする）ときに、試験測定装置のメモリにパンくずリストを保存する処理とを具える方法を含む。
【００７３】
本発明の実施形態は、試験測定装置で正規表現を受ける処理と、正規表現からステート・マシーンを生成する処理と、ステート・マシーンをビット・ストリームに適用する処理と、ステート・マシーン中の少なくとも１つの状態に関して、この少なくとも１つの状態に入るときに、試験測定装置のメモリにパンくずリストを保存する処理であって、ステート・マシーン中の各状態に入るときに試験測定装置のメモリにパンくずリストを保存する処理とを具える方法を含む。
【００７４】
本発明の実施形態は、試験測定装置で正規表現を受ける処理と、正規表現からステート・マシーンを生成する処理と、ステート・マシーンをビット・ストリームに適用する処理と、ステート・マシーン中の少なくとも１つの状態に関して、この少なくとも１つの状態に入るときに、試験測定装置のメモリにパンくずリストを保存する処理であって、ステート・マシーン中の少なくとも１つの状態に入るときに試験測定装置のメモリにパンくずリストを保存する処理とを具える方法を含み、上記パンくずリストは、形式、ＩＤ及び時間の少なくとも１つを含んでいる。
【００７５】
本発明の実施形態は、試験測定装置で正規表現を受ける処理と、正規表現からステート・マシーンを生成する処理と、ステート・マシーンをビット・ストリームに適用する処理と、ステート・マシーン中の少なくとも１つの状態に関して、この少なくとも１つの状態に入るときに、試験測定装置のメモリにパンくずリストを保存する処理であって、予期しない入力についてエラー状態に入るときに試験測定装置のメモリにエラーのパンくずリストを保存する処理とを具える方法を含み、上記パンくずリストは、形式、ＩＤ及び時間の少なくとも１つを含んでいる。
【００７６】
本発明の実施形態は、試験測定装置で正規表現を受ける処理と、正規表現からステート・マシーンを生成する処理と、ステート・マシーンを最適化する処理と、最適化したステート・マシーンをビット・ストリームに適用する処理と、最適化したステート・マシーン中の少なくとも１つの状態に関して、この少なくとも１つの状態に入るときに、試験測定装置のメモリにパンくずリストを保存する処理とを具える方法を含む。
【００７７】
本発明の実施形態は、試験測定装置で正規表現を受ける処理と、正規表現からステート・マシーンを生成する処理と、ステート・マシーンをビット・ストリームに適用する処理と、ステート・マシーン中の少なくとも１つの状態に関して、この少なくとも１つの状態に入るときに、試験測定装置のメモリにパンくずリストを保存する処理と、保存されたパンくずリストを利用して、ステート・マシーンへのビット・ストリームの適用をフォロー（把握）する処理とを具える方法を含む。
【００７８】
以下の説明は、適切なマシーンの簡潔で一般的な説明の提供を意図するものであり、このマシーンにおいて、本発明のいくつかの側面を実現できる。典型的には、マシーンは、システム・バスを含み、これに、プロセッサ、メモリ、例えば、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）、その他の状態保持メディア、ビデオ・インターフェース、そして、入力／出力インターフェース・ポートが取り付けられる。マシーンは、少なくとも一部分は、キーボード、マウスなどの従来の入力デバイスからの入力によって、制御されても良く、加えて、別のマシーンから受けた指示、バーチャル・リアリティ（ＶＲ）環境を用いるインタラクティブな処理、生体フィードバック、又は、他の入力信号によって制御されても良い。本願において、用語「マシーン（機械）」は、単一のマシーン、又は、通信可能に結合された一緒に動作する複数マシーン又は複数デバイスのシステムを広く包含するよう意図している。典型的なマシーンには、パソコン、ワークステーション、サーバ、ポータブル・コンピュータ、ハンドヘルド・デバイス、電話、タブレットなどのようコンピューティング・デバイスに加えて、例えば、自動車、電話、タクシーなどの私有又は公共の輸送機関のような輸送装置を含んでいる。
【００７９】
マシーンは、プログラマブル又はノン・プログラマブル・ロジック・デバイス又はアレー（ＦＰＧＡなど）、ＡＳＩＣ、組込み型コンピュータ、スマート・カードなどのような組込み型コントローラ（embedded controller）を含んで良い。マシーンは、ネットワーク・インターフェース、モデム、他の通信的な結合を介するなど、１つ以上の遠隔装置への１つ以上の接続を利用しても良い。複数のマシーンは、イントラネット、インターネット、ＬＡＮ、ＷＡＮなどのような物理的又は論理的なネットワークにより、相互接続されていても良い。当業者であれば、ネットワーク通信には、無線周波数（ＲＦ）、衛星、マイクロ波、ＩＥＥＥ810.11、Bluetooth（登録商標）、光通信、赤外線通信、ケーブル、レーザなどといった、有線又は無線の短距離、長距離のキャリアやプロトコルを用いて良いことが理解できよう。
【００８０】
発明は、マシーンがアクセスしたときに、マシーンがタスクを実行するか、又は、抽象データ形式又は低レベルのハードウェア状況を定義するという結果が得られる機能、手続、データ構造、アプリケーション・プログラムなどを含む関連データを参照するか又は連動して記述されても良い。関連データは、例えば、ＲＡＭ、ＲＯＭなどの揮発性及び／若しくは不揮発性メモリ、又は、ＨＤＤ、ＦＤ、オプティカル・ストレージ、テープ、フラッシュ・メモリ、メモリ・スティック、デジタル・ビデオ・ディスク、生体ストレージなどを含む他の記憶デバイス及びそれらに関連する記憶媒体に記憶しても良い。関連データは、物理的及び／又は論理ネットワークを含む伝送環境を通して、パケット、シリアル・データ、パラレル・データ、伝播信号などの形式で送ることができ、圧縮又は暗号フォーマットで利用されても良い。関連データは、分散型環境で利用され、マシーンがアクセスするローカル又は遠隔な場所に記録されても良い。
【００８１】
図示した実施形態を参照しながら、本発明の原理を説明及び図示してきたが、こうした原理から離れることなく、説明した実施形態を、構成や細部において変更しても良いことが理解できよう。先の説明では、特定の実施形態に絞って説明しているが、別の構成も考えられる。特に、「実施形態において」といった表現を本願では用いているが、こうした言い回しは、大まかに言って実施形態の可能性を意味し、特定の実施形態の構成に限定することを意図するものではない。本願で用いているように、これら用語は、別の実施形態に組み合わせ可能な同じ又は異なる実施形態に言及するものである。
【符号の説明】
【００８２】
４０５  試験測定装置
４１０  メモリ
４１５  ステート・マシーン
４２０  受信部
４３５  ビット・ストリーム
４４０  正規表現
４６５  パンくずリスト
４７０  分析部
４７５  パンくずリスト発生部
４８０  再現部
６０５  形式
６１０  ＩＤ
６１５  時間
【図１Ａ】
0006596300.tif 000002
【図１Ｂ】
0006596300.tif 000003
【図１Ｃ】
0006596300.tif 000004
【図２Ａ】
0006596300.tif 000005
【図２Ｂ】
0006596300.tif 000006
【図２Ｃ】
0006596300.tif 000007
【図２Ｄ】
0006596300.tif 000008
【図３Ａ】
0006596300.tif 000009
【図３Ｂ】
0006596300.tif 000010
【図４】
0006596300.tif 000011
【図５】
0006596300.tif 000012
【図６】
0006596300.tif 000013
【図７Ａ】
0006596300.tif 000014
【図７Ｂ】
0006596300.tif 000015
【図８】
0006596300.tif 000016
【図９】
0006596300.tif 000017
【図１０】
0006596300.tif 000018