本発明がどのように動作するか説明する前に、正規表現及びステート・マシーンの間の関係を理解するのは有益である。正規表現が与えられると、その正規表現を表すステート・マシーンを構築できる。すると、そのステート・マシーンは、特定の入力がその正規表現とマッチするかどうかを判断するのに利用できる。もしそのステート・マシーンが許容し得る最終状態にするなら、その入力は、その正規表現とマッチしており、もしそうでなければ、その入力は、正規表現とマッチしていない。
図1Aは、「データ・パケット」と名前が付けられ、正規表現として表現されたデータのパケットに関するプロトコルの例を示す。プロトコル105は、データのパケットを記述している。ビット・ストリームがこの正規表現に対して比較されると、システムは、そのビット・ストリーム内にそのパケットが見つけられるかどうか判断できる。
図1Bは、図1Aの正規表現に対応するステート・マシーンを示す。ステート・マシーン110には、状態115、120、125、130、135、140及び145があり、これら状態間の遷移を伴う。各状態(これは、ノード又は頂点(vertex)とも呼ぶことができる)は、その状態に入るのにどのようなデータがマッチする必要があるかを記述している(受容基準)。各矢印は、その状態に関する目標の受容基準が満たされていれば、横断できるパスである。スタート状態115及び成功状態145は除いて、これら状態は、パケットによって予期されるデータに順次対応している。よって、状態120は、ビット・ストリーム内の状態Sとマッチし、状態125は、「begin(開始)」とラベルされたフィールドに対して、3ビットのデータとマッチし、状態130は、「addr」とラベルされたフィールドに対して、4ビットのデータとマッチする、などである。全てのデータがステート・マシーン110の複数の状態によって、マッチさせることができるとすると、成功状態145に達したとき、システムは、そのパケット「データ・パケット」は、成功裏にマッチしたと宣言できる。
ステート・マシーン110は、実際のステート・マシーンの簡略化バージョンを表している。例えば、ステート・マシーン110は、種々の状態間の遷移にラベルを付けていないし、ステート・マシーン110は、データが予期したものとマッチしない場合に使用されるエラーの状態又は遷移を示してもいない。当業者であれば、これら詳細がなくても、ステート・マシーン110がどのように動作するか、理解できよう。
正式には、数学用語では、ステート・マシーンは、5個の成分からなるもの(Σ,S,s0,δ,F)として表され、ここで、Σはアルファベット(ステート・マシーンによって認識された複数シンボルからなるセット)であり、Sはステート・マシーン中の複数状態からなるセット(set:組、グループ)であり、s0は初期状態であり、δは遷移関数であって、S中の各状態及びΣ中の各シンボルをS中の1つの状態(これは、入力の状態と同じ状態であっても良い)へとマッピングし、そして、Fは、S中の複数の最終状態のセットである。よって、ステート・マシーン110は、より正式には、(Σ,S,s0,δ,F)として表すことができ、ここで:
Σ={S,0,1,…}(状態S及びバイナリ値0及び1だけよりも、もっと多くの認識されたシンボル(これらはステート・マシーンによって認識されたシンボルだけであるけれども)が潜在的に存在し得る)
S={110,115,120,125,130,135,140,145}
s0=110
δ(δは、その完全な遷移関数を表すのは、非常にめんどうであるし、ほとんど価値がないであろうことから、ここでは、より詳細には表さない)
F={145}
実際、ステート・マシーン110のこの表現は、必ずしも完全ではない。遷移は、典型的には、シンボルのグループでよりは、個々のシンボルで生じる。よって、状態120から125への遷移は、実際には、3つの遷移(そして、それ故に、いくつかの中間状態)を含むことができる(各ビットについて認識されたものは、そのフィールドが「begin」とラベルが付けられる)。しかし、簡略化しても、当業者であれば、ステート・マシーン110がどのように動作するか理解できよう。
ユーザは、ステート・マシーン110中で、ある特定の値が所与の状態に関して読み出されたら、ある処理にトリガをかけたいかもしれない。例えば、ユーザは、もしアドレス・フィールドが値10(バイナリ値で1010、16進数でA)を保持していたら、ある処理にトリガをかけたいかもしれない。図1Cは、このトリガを実現するために、どのようにステート・マシーン110を変更できるかの例を示す。図1Cでは、任意のあり得る値をアドレス・フィールドに関してマッチング処理する代わりに、ステート・マシーン150が、ビット・ストリームを特定の値1010と(状態155において)比較している。もしその値が見つかれば、続いて、状態160において、トリガが満たされたと考えられ、そして、トリガが処理を開始させる(その処理は、どのようなものでも良い)。
状態115及び120は、ステート・マシーン150と、ステート・マシーン110とで同じであることに注意されたい(状態115は、ステート・マシーンが開始する状態であり、状態120は、ビット・ストリームの状態Sとマッチする)。しかし、状態165は、特定フィールドが読み出されたかに留意しない点で、状態125とは異なる。言い換えれば、状態165では、重要なのは、3つのビットがビット・ストリームから読み出されることだけである。状態155は、そのアドレス・フィールドにマッチするか(状態130でのように)ではなく、その特定ビット・パターン1010とマッチするかだけに関係があるので、状態155も状態130とは異なる。最後に、ユーザの条件が一度マッチしたら、更なるマッチング処理を行う必要はなく、そのため、ステート・マシーン150は、状態135及び140に類似するものを持っていない。つまり、条件を満たした後、トリガを直ちに出すことができる。
図1A〜1Cは、正規表現、この正規表現にマッチするステート・マシーン及びトリガ・ステート・マシーンのかなり単純化した例を示す。(トリガ・ステート・マシーンは、時として、シンプルに「ステート・マシーン」と呼ばれるが、状況から、当業者であれば、特定のステート・マシーンが、トリガ・ステート・マシーンであるか、又は、正規表現にマッチするステート・マシーンであるかを判断できる。)図2A〜2Dは、もっと複雑な例を示す。図2Aでは、3つの異なるパケットに関する正規表現が示されている。これら正規表現は、図2Bに示すように、ステート・マシーンに変換できる。図2Bのステート・マシーン205は、3つの可能なプロトコルをカバーするのに、単一のスタート(start)状態を利用していることに注意されたい。
ステート・マシーン205は、示したように利用できる。しかし、ステート・マシーン205を示したように使うには、先読み又はバックトラッキングが必要であろうし、これは、追加のメモリを必要とし、ビット・ストリームの処理を低下させることがある。例えば、複数の状態が、特定の入力を前提として、最も左に達したと仮定しよう(図2Bは、プロセッサがどのようにステート・マシーン205を使うかというよりは、人によって読まれるであろうため)。例えば、状態210、215及び220の全ては、Begin状態にマッチし、そして、状態225、230及び235の全ては、スレーブ・アドレス・フィールドとして、4ビットにマッチすることに注意されたい。最も左を優先するアプローチを用いると、Begin状態と、スレーブ・アドレス・フィールドとして4ビットとを読んだ後には、システムは、状態225にあるであろう。しかし、もし次に読むビットが0だと、システムは、ステート・マシーン205の間違った枝(ブランチ)をたどり、そして、正しい枝を見つけようとして、ステート・マシーン205を巻き戻さなければならないであろう。これは、バックトラッキングの例である。ステート・マシーン205を逆行させ、異なる枝を処理しなければならなくなると、ビット・ストリームの処理が遅くなるのは、明かであろう。ステート・マシーン205を用いてバックトラッキングを避けるには、先読み処理が必要となろう(システムは、ビット・ストリームにこれからやってくるビットをなんとかして調べなければならない)。先読みも、複雑で高価である。
バックトラッキング及び先読みの両方を避けるように、ステート・マシーン205を最適化できる。図2Cのステート・マシーン240は、最適化したステート・マシーンの例を示す。ステート・マシーン240によれば、先読みをする必要がなく、バックトラッキングの心配もない。複数パケットのいずれかの任意のプリフィックス(先頭の値)が与えられると(パケット全体を含めて、パケット全体まで)、そのプリフィックスにマッチするあり得るパスは、ステート・マシーン240を通して、1つしかない。従って、先読みをする必要はないし、バックトラッキングを心配する必要もない。つまり、ステート・マシーン240中の特定の状態と、特定の入力シンボルとが与えられると、遷移する先のあり得る状態は1つしかない(この状態は、簡単のため、図2Cでは示していないエラー状態かもしれない)。
最適化は、次の手順を用いて達成できる。スタート状態からツリーを歩くことによってスタートし、等価(equivalent)で同じ親(parent:ペアレント)を持つ複数のノードを組み合わせる(つまり、それら複数ノードを単一のノードに結合する)。処理は、組み合わせる類似のノードが無くなるまで繰り返すことができる。続いて、等価な複数の成功(Success)状態を見つけ、それらを組み合わせ、次に等価で同じ子供(Children:チルドレン)を持つノードを組み合わせる(再度、組み合わせるノードが無くなるまで、その処理を繰り返す)。
図2Dは、ユーザによってカスタマイズされた特定トリガの例を示す。図2Dでは、ユーザは、正規表現中のパケットのアドレス・フィールド(スレーブ・アドレス・フィールドではない)が値0に設定された場合に、トリガするように選択している。このフィールドは、パケットのレジスタ0ライト(Register 0 Write)中に現れないので、そのステート・マシーンのこの枝(ブランチ)全体をトリガ・ステート・マシーン245から排除できる。どのような値もスレーブ・アドレス・フィールドに対してマッチでき、その後で、ビット0及び1は、マッチしなければならない。その後、任意のビットが発生でき(実際のビットは、読まれる特定のパケットに依存するであろうが、トリガ・ステート・マシーン245は、どの値を受けるかに関係がない)、その後に、アドレス・フィールドに関するビットを受け、値0と比較できる。もし値0がアドレス・フィールドについてマッチするなら、トリガ・ステート・マシーン245は成功であり、トリガを開始できる。
上記例は、等式として表される単一のトリガ基準を利用する。しかし、そのトリガ条件を等式に限定する理由はない。等式(==)を別にすると、他のトリガ条件の例としては、等しくない(!=)、より小さい(<)、以下(<=)、より大きい(>)、又は、以上(>=)があり得る。加えて、トリガ条件は、正規表現中のフィールドの情報のサブセットだけに依存するかもしれない。例えば、図2Dでは、ユーザは、アドレス・フィールドの中間の3ビットが001に等しいかどうかだけに感心があるかもしれない(アドレス・フィールド(これは、合計5ビットを持っている)の最初と最後のビットは、任意の値にマッチして良い)。特定の状態に達することだけに依存してトリガ条件を設定することも可能である。例えば、ユーザは、その実際の値に関係なく、いつアドレス・フィールドに達したかを知ることに関心があるかもしれない。
加えて、トリガ条件は、単一の基準(これは、1つの単純なトリガ条件と呼ばれる)に限定される必要はない。ユーザは、任意の所望組み合わせにAND及びOR演算子を用いて組み合わせられた複数の基準(複合トリガ条件)を指定できる。よって、ステート・マシーンは、複数の条件(これらのいずれかは、サブ条件などのセットを含むかもしれない)を試験することができる。当業者であれば、ユーザが供給した条件を、どのようにして積和標準形(Disjunctive Normal Form)又は和積標準形(conjunctive normal form)に単純化するかわかるであろうし、これは、ステート・マシーンの構造を単純化できる。(積和標準形は、連言節(conjunctive clause)の選言(disjunction)、即ち、AND(論理積)のOR(論理和)として表現された論理式に言及する。和積標準形は、同様にOR(論理和)のAND(論理積)を表す。)
図3A〜3Bは、複合トリガ条件を有するステート・マシーンの例を示す。図3Aでは、ユーザが、(addr == 0xA && parity == 1)のトリガ条件を指定している。こうしたトリガ条件は、2つの条件の連言(conjunction:論理積、結合)である。このトリガ条件は、2つの状態の両方が特定の値を持つことを必要とするので、ステート・マシーン中の2つの状態が(ユーザによって指定されて)特定の値に設定される。他の状態の値は、通常、重要ではなく、単一の状態へと組み合わせることができる。
図3Bでは、ユーザは、(addr == 0xA || parity == 1)の特定トリガ条件(選言的トリガ条件)を指定している。このトリガ条件は、2つの状態の一方が特定の値を持つことを必要とするので、別々の条件を有する2つのステート・マシーンを確立し、上述の最適化手法を用いて統合できる。このトリガ条件は、選言(disjunction)のため、1つステート・マシーンに適用されるけれども、成功トリガへのあり得るパスは2つ存在する。
図3A〜3Bは、2つの可能なトリガ値を組み合わせる単一のAND又はORを含んでいる例を与える。しかし、この処理をもっと複雑なトリガ条件に関して一般化できることは明かであろう。例えば、もしトリガ条件が、AND演算で結合される2つの値か、又は、もう1つの値((X AND Y)OR Z)の形の式)を含むなら、ステート・マシーンはコピーしても良い。1つのコピーは、AND演算の第1値を反映するよう変更でき、第2のコピーは、AND演算の第2値を反映するよう変更でき、第3のコピーは、OR演算の残りの値を反映するよう変更できる。最初の2つのステート・マシーンは、続いて、第3のステート・マシーンと組み合わせられて最適化され、複合トリガ条件を表すようにできる。
さて、トリガ・ステート・マシーンを説明してきたが、トリガ・ステート・マシーンを利用できるシステムを説明できる。図4は、種々のトリガ条件が満たされたときに、試験測定装置をトリガする図1B〜1C及び2B〜2Dのステート・マシーンを生成及び利用できる、本発明の実施形態による試験測定装置を示す。システムは、試験測定装置405を含んでいても良い。試験測定装置は、他にも可能性がある中で特にオシロスコープのような、任意の所望の試験測定装置であっても良い。
試験測定装置405は、メモリ410を含んでも良い。メモリ410は、ステート・マシーン415のような情報を記憶できる。ステート・マシーン415は、正規表現にマッチさせるのに利用されるステート・マシーン、言い換えると、図1B、2B及び2Cのステート・マシーン110、205及び240のようなステート・マシーンとしても良い。ステート・マシーン415は、図1C及び2Dのステート・マシーン150及び245のような、トリガ・ステート・マシーンであっても良い。
試験測定装置405は、試験測定装置405の入力を受けることができる受信部420も含むことができる。入力は、あらゆる方法で受けることができる。例えば、受信部420は、トリガ条件425(これ自身が、例えば、特定のビット・フィールドに関してユーザが選択した値430を含んでも良い)のような情報をユーザが入力するためのユーザ・インタフェースを含んでいても良い。又は、受信部420が、分析すべきビット・ストリーム435のようなビット・ストリームを含む信号を受けるのを含んでいても良い。また、受信部420は、(例えば、統合開発環境(IDE)を通して)正規表現440を受けても良く、これは、システムがビット・ストリーム435で受けると予期されるデータを特定でき、ステート・マシーン415を構築するのに利用できる(正規表現440又はトリガ・ステート・マシーンを認識するステート・マシーンである)。
試験測定装置405は、種々の他のユニットも含むことができる。ステート・マシーン変更部445は、既存のステート・マシーン(例えば、正規表現440にデータをマッチさせるもの)を取ってきて、それをトリガ・ステート・マシーンとして動作するように変更する。上述のように、これは、色々な可能性のなかでも特に、トリガ条件満たした後に生じる状態を除去する処理と、トリガ条件の一部と考えられない値の状態を組み合わせる(結合する)処理とを含むことができる。
処理エンジン450は、種々のステート・マシーン(例えば、正規表現440又はステート・マシーン変更部445を用いて生成されたトリガ・ステート・マシーンを用いて生成されるステート・マシーンを含む)を用いてビット・ストリーム435を処理できる。この処理は、ビット・ストリーム435からビットが読み出されるときに、種々のステート・マシーンのそれぞれに関する現在の状態をアップデートする処理を含んでも良い。
トリガ・システム455は、トリガ条件が満たされたとき、即ち、トリガ・ステート・マシーンが満たされたときに、トリガを送信できる。トリガ・システム455は、当業者であれば理解するであろうように、トリガの結果として任意のアクションを実行するために、試験測定装置405の任意の所望コンポーネントにトリガを送信できる。
ステート・マシーン発生部460は、正規表現440からステート・マシーンを生成できる。上述のように、これは、正規表現で提示された順番でフィールドにマッチする状態のシーケンシャルなシリーズを生成する処理を含んでも良い。また、これは、異なる正規表現にマッチする種々のステート・マシーンを単一のステート・マシーンに結合して、先読み及びバックトラッキングの問題を避けるように、ステート・マシーンを最適化する処理を含んでも良い。
トリガ・ステート・マシーンを発生及び利用することとは別に、試験測定装置405は、パンくずリストを生成するのにも利用できる。パンくずリストは、ステート・マシーンの動作を、ユーザが再現し、データがどのように処理されたか見るのを可能にする。パンくずリスト465のようなパンくずリストは、数ビットのデータであり、メモリ410に記憶できる。基本的に、ステート・マシーン中の状態に入るたびに、パンくずリストが保存できる。パンくずリストは、状態の形式(例えば、エラー状態、パケット・スタート、パケット・エンド又はフィールド)、状態のID(これは、フィールド又はパケットを特定できる)及び状態に入ること(エントリー)を生じさせるデータのスタート及びストップ時間のような時間、などのようなデータを含むことができる。当業者であれば、他の可能性のなかでも特に、「時間」は、文字通りの時間の概念(信号のスタートから秒単位で、又は、その何分の1かで)に言及しなければならないものはでなく、むしろ信号へのインデックスに言及しても良いことが理解できよう。パンくずリストは、適宜、分析に関係する追加データも含んで良い。従って、パンくずリストに含めるべきデータのID(identification:識別)は、ユーザがカスタマイズできる。
パンくずリストは、通常、トリガ・ステート・マシーンを用いて生成できる。しかし、当業者であれば、任意の他のステート・マシーンをパンくずリストの生成に利用できないという理由はなく、従って、任意のステート・マシーンを用いてパンくずリストを生成できることが理解できよう。
パンくずリストの生成をサポートするため、試験測定装置405が分析部470を含んでも良い。分析部470は、ステート・マシーンを用いてビット・ストリーム435を分析できる。動作において、分析部470は、処理エンジン450に類似するが、それらの目的は異なる。処理エンジン450が、正規表現を認識しようとして、ビット・ストリーム435のビットをマッチングに関与する一方、分析部470は、パンくずリストをいつメモリ410に保存するか判断することに関与する。また、分析部470及び処理エンジン450は、典型的には、異なるステート・マシーン上で動作する:分析部470は、通常、トリガ・ステート・マシーンを利用する(利用しなければならないことはないが)一方で、プロセッサ450は、正規表現にマッチするフルのステート・マシーンを利用する。
試験測定装置405は、パンくずリスト発生部475も含んで良い。パンくずリストを発生する時間であるという(例えば、新しい状態に入ったと、分析部470によって判断されるような)場合に、パンくずリスト発生部475は、そのパンくずリストをメモリ410に保存できる。
最後に、試験測定装置405は、再現部480を含んでも良い。再現部480は、ユーザが、ビット・ストリーム435についてのステート・マシーンの動作を(分析部470で処理されたように)再現するのを可能する。この再現は、ユーザが、何が起きたかを追いかける(フォローする)のを可能にする。
上述の試験測定装置405は、トリガ・ステート・マシーン又はパンくずリストの生成のいずれか、又は両方を処理できる。試験測定装置の中には、複数のステート・マシーンを処理するのに必要なハードウェア及び/又はソフトウェアを含むものもある。もし試験測定装置が、複数のステート・マシーンを処理できるのなら、試験測定装置405は、トリガ条件及びパンくずリストに関する処理の両方を実行できる。
図5は、図4のステート・マシーン変更部をより詳細に示している。図5では、ステート・マシーン変更部445は、ステート・マシーン最適化部505を含んでいるとして示されている。ステート・マシーン最適化部505は、上述のように、ステート・マシーンを最適化できる。こうした最適化は、正規表現にマッチするよう設計されたステート・マシーンについてか、又は、トリガ・ステート・マシーンについてか、どちらでも可能である。
図6は、図4のパンくずリストをより詳細に示している。図6では、パンくずリスト465は、形式605、ID610及び時間615を含むとして示されている。上述のように、形式605は、パンくずリスト465を生成した状態の形式を特定できる。ID610は、パンくずリスト465を生成したステート・マシーン中の特定の状態を特定できる。そして、時間615は、その状態がいつパンくずリスト465を生成したかの、信号中の時間(又はインデックス)を特定できる。
図7A〜7Bは、図4の試験測定装置を用いて、プロトコルとユーザ設定とからトリガ・ステート・マシーンを生成する手順のフローチャートを示す。図7Aでは、ブロック705において、システムが正規表現を受けても良い。ブロック710では、システムが、正規表現に対応するステート・マシーンを生成できる。ブロック715では、システムがステート・マシーンを最適化できる。
ブロック720では、システムは、正規表現に対応するステート・マシーン(ブロック705〜715で生成されたステート・マシーンと同じでも良い)を特定できる。ブロック725では、システムは、ユーザからトリガ条件を受ける。これは、色々な可能性のなかでも特に、例えば、正規表現中の特定フィールドに関するユーザ指定値(又は値の一部)、複数のそうしたユーザ指定値、単に到達するべき(リーチすべき)フィールドを含んでいても良い。ブロック730では、システムは、トリガ条件を実行するように変更できるステート・マシーン中の1つの状態(又は1より多い状態)を特定できる。
ブロック735(図7B)では、システムは、特定された状態を変更し、ユーザ選択値と比較しても良い。ブロック740、システムは、変更されたステート・マシーンを記憶できる。ブロック745では、システムは、ビット・ストリームを受けることができる。ブロック750では、システムは、変更されたステート・マシーンを用いて、ビット・ストリームを処理できる。ブロック710では、システムは、トリガ条件が満たされたか判断できる。もしそうなら、次に、ブロック755において、システムは、トリガ・システムを利用(apply)できる。
上述のように、トリガ条件は、複合トリガ条件でも良い。この場合、手順のフローチャートは、トリガ条件の複合された特性を反映するように変更できる。図8は、この変更を反映している。図8は、図7A〜7Bのブロック730及び735を変更している:図7A〜7Bの他のブロックは変更がなく、そのため、図8では示していない。
図8では、ブロック805において、システムが、複合トリガ条件で関係する複数の状態を特定する。関係する状態の個数は、複合トリガ条件中に含まれる単純な条件の個数よりも少ないことがある。例えば、図1Bに示されるステート・マシーンに関する複合トリガ条件は、(addr == 0xA || addr == 0xF)であっても良い。複合トリガ条件の両側で同じ状態が使われることに注意されたい。ブロック810では、システムは、複合トリガ条件中の単純なトリガ条件それぞれについて1回、ステート・マシーンを複製する。上記例を続けると、複合トリガ条件は、2つの単純なトリガ条件(addr == 0xA || addr == 0xF)を含み、そのため、システムは、ステート・マシーンの2つの複製を生成するであろう。ブロック815では、各複製ステート・マシーン内で、特定された状態が、ユーザ指定値との比較を反映するよう変更される。最後に、ブロック820では、変更された複製ステート・マシーンが、複合トリガ条件を反映する単一のステート・マシーンを生成するように結合される。このポイントにおいて、処理は、図7Bのブロック740に続く。
図9は、図4の試験測定装置を用いてステート・マシーンを最適化する本発明の実施形態による手順のフローチャートを示す。図9では、ブロック905において、システムが、トリガ条件が満たされた後に生じた状態を除去できる。ブロック910では、システムが、任意の値を満たすことができる隣接する状態を単一の状態に統合できる。
図10は、図4の試験測定装置を用いてパンくずリストが保存できるステート・マシーンを生成する処理を利用する本発明の実施形態による手順のフローチャートを示す。ブロック1005では、システムが正規表現を受けても良い。ブロック1010では、システムが正規表現からステート・マシーンを生成できる。ブロック1015では、システムは、ステート・マシーンを最適化できる。ブロック1020では、システムは、ステート・マシーンをビット・ストリームに適用できる。ブロック1025では、システムが、ステート・マシーン中のある状態に入るたびに、パンくずリストを保存できる。ブロック1030では、システムは、ビット・ストリームへのステート・マシーンの適用を再現するのに、保存されたパンくずリストを利用できる。
上記フローチャートは、いくつかの可能な本発明の実施形態を示している。しかし、本発明の他の実施形態では、ブロックを異なるアレンジで構成でき、要望に応じて異なるブロックを含めたり、省略したり、又は、必要に応じて1つのブロック(又は複数ブロック)を繰り返したりできる。本発明の実施形態は、フローチャートについてのこのようなバリエーションの全てを含むことを意図している。
本発明の実施形態は、限定されることなく、次の記述(statements)に拡張できる。
本発明の実施形態としては、試験測定装置と、正規表現に対応するステート・マシーンを記憶する試験測定装置中のメモリと、ユーザからトリガ条件を受ける受信部と、上記トリガ条件を反映するように上記ステート・マシーンを変更するステート・マシーン変更部とを具えるシステムがある。
本発明の実施形態としては、試験測定装置と、正規表現に対応するステート・マシーンを記憶する試験測定装置中のメモリと、ユーザから複合トリガ条件を受ける受信部と、上記複合トリガ条件を反映するように上記ステート・マシーンを変更するステート・マシーン変更部とを具えるシステムがある。
本発明の実施形態としては、試験測定装置と、正規表現に対応するステート・マシーンを記憶する試験測定装置中のメモリと、ユーザから複合トリガ条件を受ける受信部と、上記複合トリガ条件を反映するように上記ステート・マシーンを変更するステート・マシーン変更部とを具え、上記ステート・マシーン変更部が、上記複合トリガ条件中の各値に関するステート・マシーンを複製し、複製されたステート・マシーンの夫々が上記複合トリガ条件中の1つの値を含むよう変更し、複数の変更された複製のステート・マシーンを組み合わせるシステムがある。
本発明の実施形態としては、試験測定装置と、正規表現に対応するステート・マシーンを記憶する試験測定装置中のメモリと、ユーザからトリガ条件とビット・ストリームとを受ける受信部と、上記トリガ条件を反映するように上記ステート・マシーンを変更するステート・マシーン変更部と、上記ステート・マシーンを用いて上記ビット・ストリームを処理する処理エンジンと、もし上記トリガ条件が満たされると、トリガを送出するトリガ・システムとを具えるシステムがある。
本発明の実施形態としては、試験測定装置と、正規表現に対応するステート・マシーンを記憶する試験測定装置中のメモリと、ユーザからトリガ条件を受ける受信部と、ステート・マシーン最適化部を有し、上記トリガ条件を反映するように上記ステート・マシーンを変更するステート・マシーン変更部とを具えるシステムがある。
本発明の実施形態としては、試験測定装置と、正規表現に対応するステート・マシーンを記憶する試験測定装置中のメモリと、ユーザからトリガ条件を受ける受信部と、ステート・マシーン最適化部を有し、上記トリガ条件を反映するように上記ステート・マシーンを変更するステート・マシーン変更部とを具え、上記ステート・マシーン最適化部が、変更された上記ステート・マシーンから、上記トリガ条件が満たされた後に生じた全ての状態を除去するように動作するシステムがある。
本発明の実施形態としては、試験測定装置と、正規表現に対応するステート・マシーンを記憶する試験測定装置中のメモリと、ユーザからトリガ条件を受ける受信部と、ステート・マシーン最適化部を有し、上記トリガ条件を反映するように上記ステート・マシーンを変更するステート・マシーン変更部とを具え、上記ステート・マシーン最適化部が、任意の値で上記トリガ条件を満たすことができる状態を組み合わせる(combine:結合)するよう動作するシステムがある。
本発明の実施形態としては、試験測定装置と、正規表現に対応するステート・マシーンを記憶する試験測定装置中のメモリと、ユーザから複合トリガ条件を受ける受信部と、上記複合トリガ条件を反映するように上記ステート・マシーンを変更するステート・マシーン変更部とを具え、上記ステート・マシーン変更部が、ビット・ストリームをユーザが選択した値と比較するように上記ステート・マシーンを設定するシステムがある。
本発明の実施形態としては、試験測定装置と、正規表現に対応するステート・マシーンを記憶する試験測定装置中のメモリと、ユーザからトリガ条件及び上記正規表現を受ける受信部と、上記正規表現から上記ステート・マシーンを生成するステート・マシーン発生部と、上記トリガ条件を反映するように上記ステート・マシーンを変更するステート・マシーン変更部とを具えるシステムがある。
本発明の実施形態としては、試験測定装置と、正規表現に対応するステート・マシーンを記憶する試験測定装置中のメモリと、ユーザからトリガ条件を受ける受信部と、上記トリガ条件を反映するように上記ステート・マシーンを変更するステート・マシーン変更部と、上記ステート・マシーンを最適化するステート・マシーン最適化部とを具えるシステムがある。
本発明の実施形態としては、試験測定装置中に記憶された正規表現に対応するステート・マシーンを特定する処理と、ユーザからトリガ条件を受ける処理と、上記ユーザから受けた上記トリガ条件中で使用される上記ステート・マシーン中の状態を特定する処理と、上記ユーザから受けた上記トリガ条件を反映するように特定された上記ステート・マシーン中の状態を変更する処理と、変更された上記ステート・マシーンを上記試験測定装置中に記憶する処理とを具える方法がある。
本発明の実施形態としては、試験測定装置中に記憶された正規表現に対応するステート・マシーンを特定する処理と、ユーザから複合トリガ条件を受ける処理と、上記ユーザから受けた上記複合トリガ条件中で使用される上記ステート・マシーン中の複数の状態を特定する処理と、上記複合トリガ条件中の各値に関する上記ステート・マシーンを複製する処理と、上記ユーザから受けたトリガ条件を反映するように上記ステート・マシーン中の特定された上記状態を変更する処理であって、上記複合トリガ条件中の各値に関する上記ステート・マシーンを複製する処理と、複製された上記ステート・マシーン中の特定された状態を上記ユーザから受けたトリガ条件中の対応する値を反映するように変更する処理と、複製された複数の上記ステート・マシーンを組み合わせる処理とを有する上記ステート・マシーン中の上記状態を変更する処理と、変更された上記ステート・マシーンを上記試験測定装置中に記憶する処理とを具える方法がある。
本発明の実施形態としては、試験測定装置中に記憶された正規表現に対応するステート・マシーンを特定する処理と、ユーザからトリガ条件を受ける処理と、上記ユーザから受けた上記トリガ条件中で使用される上記ステート・マシーン中の状態を特定する処理と、上記ユーザから受けた上記トリガ条件を反映するように上記ステート・マシーン中の特定された上記状態を変更する処理と、変更された上記ステート・マシーンを上記試験測定装置中に記憶する処理と、ビット・ストリームを受ける処理と、変更された上記ステート・マシーンを用いて上記ビット・ストリームを処理する処理と、もし上記トリガ条件が満たされたと上記ステート・マシーンが示した場合に、上記試験測定装置のトリガ処理システムを利用する処理とを具える方法がある。
本発明の実施形態としては、試験測定装置中に記憶された正規表現に対応するステート・マシーンを特定する処理と、ユーザからトリガ条件を受ける処理と、上記ユーザから受けた上記トリガ条件中で使用される上記ステート・マシーン中の状態を特定する処理と、上記ユーザから受けた上記トリガ条件を反映するように上記ステート・マシーン中の特定された上記状態を変更する処理であって、変更された上記ステート・マシーンを最適化する処理を有する変更する処理と、変更された上記ステート・マシーンを上記試験測定装置中に記憶する処理とを具える方法がある。
本発明の実施形態としては、試験測定装置中に記憶された正規表現に対応するステート・マシーンを特定する処理と、ユーザからトリガ条件を受ける処理と、上記ユーザから受けた上記トリガ条件中で使用される上記ステート・マシーン中の状態を特定する処理と、上記ユーザから受けた上記トリガ条件を反映するように上記ステート・マシーン中の特定された上記状態を変更する処理であって、変更された上記ステート・マシーンから上記トリガ条件が満たされた後に生じた全ての状態を除去する処理を含む変更された上記ステート・マシーンを最適化する処理を有する上記変更する処理と、変更された上記ステート・マシーンを上記試験測定装置中に記憶する処理とを具える方法がある。
本発明の実施形態としては、試験測定装置中に記憶された正規表現に対応するステート・マシーンを特定する処理と、ユーザからトリガ条件を受ける処理と、上記ユーザから受けた上記トリガ条件中で使用される上記ステート・マシーン中の状態を特定する処理と、上記ユーザから受けた上記トリガ条件を反映するように上記ステート・マシーン中の特定された上記状態を変更する処理であって、任意の値で上記トリガ条件を満たすことができる隣接する複数の状態を単一の状態にまとめる処理を含む変更された上記ステート・マシーンを最適化する処理を有する上記変更する処理と、変更された上記ステート・マシーンを上記試験測定装置中に記憶する処理とを具える方法がある。
本発明の実施形態としては、試験測定装置中に記憶された正規表現に対応するステート・マシーンを特定する処理と、ユーザからトリガ条件を受ける処理と、上記ユーザから受けた上記トリガ条件中で使用される上記ステート・マシーン中の状態を特定する処理と、上記ユーザから受けた上記トリガ条件を反映するように上記ステート・マシーン中の特定された上記状態を変更する処理であって、ビット・ストリームをユーザが選択した値と比較するために特定された上記状態を変更する処理を含む変更された上記ステート・マシーンを最適化する処理を有する上記変更する処理と、変更された上記ステート・マシーンを上記試験測定装置中に記憶する処理とを具える方法がある。
本発明の実施形態としては、試験測定装置中に記憶された正規表現に対応するステート・マシーンを特定する処理と、ユーザからトリガ条件を受ける処理と、上記ユーザから受けた上記トリガ条件中で使用される上記ステート・マシーン中の状態を特定する処理であって、上記ユーザから上記トリガ条件を受ける処理と共に上記正規表現から上記ステート・マシーンを生成する処理を含む上記状態を特定する処理と、上記ユーザから受けた上記トリガ条件を反映するように上記ステート・マシーン中の特定された上記状態を変更する処理と、変更された上記ステート・マシーンを上記試験測定装置中に記憶する処理とを具える方法がある。
本発明の実施形態としては、試験測定装置中に記憶された正規表現に対応するステート・マシーンを特定する処理と、ユーザからトリガ条件を受ける処理と、上記ステート・マシーンを最適化する処理を有する上記ユーザから受けた上記トリガ条件中で使用される上記ステート・マシーン中の状態を特定する処理と、上記ユーザから受けた上記トリガ条件を反映するように上記ステート・マシーン中の特定された上記状態を変更する処理と、変更された上記ステート・マシーンを上記試験測定装置中に記憶する処理とを具える方法がある。
以下の説明は、適切なマシーンの簡潔で一般的な説明の提供を意図するものであり、このマシーンにおいて、本発明のいくつかの側面を実現できる。典型的には、マシーンは、システム・バスを含み、これに、プロセッサ、メモリ、例えば、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、その他の状態保持メディア、ビデオ・インターフェース、そして、入力/出力インターフェース・ポートが取り付けられる。マシーンは、少なくとも一部分は、キーボード、マウスなどの従来の入力デバイスからの入力によって、制御されても良く、加えて、別のマシーンから受けた指示、バーチャル・リアリティ(VR)環境を用いるインタラクティブな処理、生体フィードバック、又は、他の入力信号によって制御されても良い。本願において、用語「マシーン(機械)」は、単一のマシーン、又は、通信可能に結合された一緒に動作する複数マシーン又は複数デバイスのシステムを広く包含するよう意図している。典型的なマシーンには、パソコン、ワークステーション、サーバ、ポータブル・コンピュータ、ハンドヘルド・デバイス、電話、タブレットなどのようコンピューティング・デバイスに加えて、例えば、自動車、電話、タクシーなどの私有又は公共の輸送機関のような輸送装置を含んでいる。
マシーンは、プログラマブル又はノン・プログラマブル・ロジック・デバイス又はアレー(FPGAなど)、ASIC、組込み型コンピュータ、スマート・カードなどのような組込み型コントローラ(embedded controller)を含んで良い。マシーンは、ネットワーク・インターフェース、モデム、他の通信的な結合を介するなど、1つ以上の遠隔装置への1つ以上の接続を利用しても良い。複数のマシーンは、イントラネット、インターネット、LAN、WANなどのような物理的又は論理的なネットワークにより、相互接続されていても良い。当業者であれば、ネットワーク通信には、無線周波数(RF)、衛星、マイクロ波、IEEE810.11、Bluetooth(登録商標)、光通信、赤外線通信、ケーブル、レーザなどといった、有線又は無線の短距離、長距離のキャリアやプロトコルを用いて良いことが理解できよう。
発明は、マシーンがアクセスしたときに、マシーンがタスクを実行するか、又は、抽象データ形式又は低レベルのハードウェア状況を定義するという結果が得られる機能、手続、データ構造、アプリケーション・プログラムなどを含む関連データを参照するか又は連動して記述されても良い。関連データは、例えば、RAM、ROMなどの揮発性及び/若しくは不揮発性メモリ、又は、HDD、FD、オプティカル・ストレージ、テープ、フラッシュ・メモリ、メモリ・スティック、デジタル・ビデオ・ディスク、生体ストレージなどを含む他の記憶デバイス及びそれらに関連する記憶媒体に記憶しても良い。関連データは、物理的及び/又は論理ネットワークを含む伝送環境を通して、パケット、シリアル・データ、パラレル・データ、伝播信号などの形式で送ることができ、圧縮又は暗号フォーマットで利用されても良い。関連データは、分散型環境で利用され、マシーンがアクセスするローカル又は遠隔な場所に記録されても良い。
図示した実施形態を参照しながら、本発明の原理を説明及び図示してきたが、こうした原理から離れることなく、説明した実施形態を、構成や細部において変更しても良いことが理解できよう。先の説明では、特定の実施形態に絞って説明しているが、別の構成も考えられる。特に、「実施形態において」といった表現を本願では用いているが、こうした言い回しは、大まかに言って実施形態の可能性を意味し、特定の実施形態の構成に限定することを意図するものではない。本願で用いているように、これら用語は、別の実施形態に組み合わせ可能な同じ又は異なる実施形態に言及するものである。