【手続補正書】
【提出日】平成19年6月29日(2007.6.29)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】  コンピュータネットワーク上の接続点を介して通過するパケットを検査する方法であって、各パケットは１つ又はそれ以上のプロトコルに従うものであり、当該方法は：
パケット捕捉装置からパケットを受信する段階；
前記パケットに関して少なくとも１つの分解作業及び少なくとも１つの抽出作業を実行し、前記パケットの選択された部分の関数を有する分解レコードを作成する段階であって、前記分解及び／又は前記抽出作業の少なくとも１つは前記パケットが従う前記プロトコルの１つ以上に依存する段階；
以前に遭遇した何れかの会話フローのフローエントリを有するフローエントリデータベースを探索する段階であって、該探索は、前記選択されたパケット部分の少なくとも一部を利用し、前記パケットが既存のフローのものであるか否かを判定する段階；
前記パケットが既存のフローのものであった場合、前記パケットを発見された既存のフローに属するものとして分類し、前記フローの状態を確認し、該フローの状態について指定された作業又は状態作業を実行する段階；および
前記パケットが新たなフローのものであった場合、前記フローエントリデータベース内に、前記新たなフローのための新規フローエントリを格納し、該新規フローエントリにより識別される将来のパケットに関する識別情報を含める段階；
を有する方法。
【請求項２】
前記少なくとも１つの分解及び／又は抽出作業を実行する段階が、ある情報を含む分解及び抽出作業のデータベースに従って行われ、前記情報は、パケット中のデータから１以上のプロトコルに依存する一群の抽出作業が該パケットで使用されていることをどのように決定するかを示し、
新規フローエントリを格納する前記段階は、前記パケットが新たなフローのものであった場合、前記新たなフローの初期状態に関して要求される分析を実行する請求項１記載の方法。
【請求項３】  前記状態の少なくとも１つに関して特定された状態作業の１つが、前記フローエントリを更新することを含み、前記フローエントリにより識別される将来のパケットに関する情報を識別することを含む請求項２記載の方法。
【請求項４】  前記状態の少なくとも１つに関して特定された状態作業の１つが、少なくとも１つの参照ストリングの前記パケットの内容を探索する請求項２記載の方法。
【請求項５】  前記状態の少なくとも１つに関して特定された状態作業の１つが、前記フローにより識別される将来のパケットの新規フローエントリを作成することを含み、前記新規フローエントリは、前記フローにより識別される将来のパケットに関する識別情報を含む請求項３記載の方法。
【請求項６】  前記選択されたパケット部分から署名を形成する段階を更に有し、前記探索作業は前記署名を使用し、前記新規の又は更新されたフローエントリに含まれる識別情報が、将来のパケットを識別するための署名である請求項２記載の方法。
【請求項７】  前記状態作業が、状態作業に依存するプロトコルのデータベースによるものである請求項２記載の方法。
【請求項８】  前記接続点を介して通過する各パケットが、リアルタイムで検査される請求項２記載の方法。
【請求項９】  前記パケットを発見された既存のフローに属するものとして分類する段階が、既存のフローのフローエントリを更新する段階を有する請求項１記載の方法。
【請求項１０】  前記の更新が、既存のフローのフローエントリに含まれた１つまたはそれ以上の統計的指標を格納する請求項９記載の方法。
【請求項１１】  前記１つまたはそれ以上の統計的指標が、前記フローに関する全パケット総数，時間，および最後に入力された時点から現時点までの時間差を含む群から選択された指標を含む請求項１０記載の方法。
【請求項１２】  前記パケットの選択された部分の前記関数が、前記選択された部分を含み且つ将来のパケットを識別可能である署名を作成し、前記探索作業は前記署名を使用し、前記新規のまたは更新されたフローエントリに含まれる識別情報が、将来のパケットを識別するための署名である請求項１記載の方法。
【請求項１３】  前記パケットの前記プロトコルの少なくとも１つがソースおよびあて先アドレスを使用し、前記パケットの前記選択された部分が前記ソースおよびあて先アドレスを含む請求項１記載の方法。
【請求項１４】  同一フローのパケットについて前記選択された部分の前記関数が、前記パケットの方向とは独立したものである請求項１３記載の方法。
【請求項１５】  前記パケットの選択された部分の関数が該選択されたパケットの一部を含む署名を形成し、前記ソースおよびあて先アドレスが、選択された部分の前記関数における前記アドレスの数値順序で決定される順序で並べられる請求項１４記載の方法。
【請求項１６】  選択された部分の関数によって形成された署名の中で、数値的に低いアドレスが数値的に高いアドレスの前に並べられる請求項１５記載の方法。
【請求項１７】  前記フローエントリデータベースの探索が、選択されたパケット部分のハッシュを利用する請求項１記載の方法。
【請求項１８】  少なくとも１つの前記分解及び／又は抽出作業が、分解及び／又は抽出作業のデータベースによるものであり、前記データベースは、前記パケットで使用されたプロトコルを示す前記パケット内のデータから、１つ又はそれ以上のプロトコルに依存した一群の抽出作業をどのように決定するかを示す情報を含む請求項１記載の方法。
【請求項１９】  パケットを分類する前記段階が、前記パケットが既存のフローのものであった場合、前記フローの最後に遭遇した状態を求め、前記フローの最後に遭遇した状態から始まる前記フローの前記状態に関して特定された状態作業を実行し；および新たなフローエントリを格納する前記段階が、前記パケットが新たなフローのものであった場合、前記新たなフローの初期状態に要求される状態作業を実行することを含む請求項１記載の方法。
【請求項２０】
フローシーケンスの特定の会話が特定のアプリケーションプログラムの動作に関連付けられ、受信したフローのパケット各々の状態処理は、どのアプリケーションプログラムが該フローに関連付けられているかを確認する請求項１９記載の方法。
【請求項２１】  前記状態作業が、前記フローエントリを更新することを含み、前記フローエントリにより識別される将来のパケットの識別情報を格納することを含む請求項１９記載の方法。
【請求項２２】  受信したフローのパケット各々の状態処理が、前記フローの前記アプリケーションプログラムを識別する請求項２１記載の方法。
【請求項２３】  前記状態作業が、１つ又はそれ以上の参照ストリングの存在に関する前記分解レコードを探索する請求項１９記載の方法。
【請求項２４】  前記状態作業が、プロトコルに依存する状態作業のデータベースに従って、プログラム可能な状態プロセッサにより実行される請求項１９記載の方法。
【請求項２５】  前記パケットを分類するステップは、前記パケットが既存のフローのものであった場合、前記既存のフローの前記フローエントリを更新し、該更新は前記フローエントリで維持される１つ又はそれ以上の統計的測定値を格納することを含み、及び前記新たフローエントリを格納する段階は、前記パケットが新たなフローのものであった場合、前記新たなフローエントリで１つ又はそれ以上の統計的測定値を格納し、前記接続点を介して通過する全パケットが前記パケット捕捉装置によって受信される請求項１記載の方法。
【請求項２６】  前記パケットから識別部分を抽出する段階を更に含み、前記探索が、前記識別部分の関数を利用する請求項２５記載の方法。
【請求項２７】  各段階が、前記接続点を介して通過する各パケットに対して、リアルタイムで実行される請求項２５記載の方法。
【請求項２８】  前記１つまたはそれ以上の統計的指標が、前記フローに関するパケット総数，時間，および最後に入力された時点から現時点までの時間差を含む群から選択された指標を含む請求項２５記載の方法。
【請求項２９】  前記フローエントリの１つ又はそれ以上の前記統計的指標から、フローエントリの前記フローに関連する１つ又はそれ以上のメトリックを報告する段階を更に有する請求項２５記載の方法。
【請求項３０】  前記メトリックが１つ又はそれ以上のサービス品質メトリックを含む請求項２９記載の方法。
【請求項３１】  前記の報告が時々行われ、前記１つ又はそれ以上のメトリックが、最終報告時点からの時間間隔に関連する基本メトリックである請求項２９記載の方法。
【請求項３２】  前記基本メトリックから１つ又はそれ以上のサービス品質メトリックを計算する段階を更に有する請求項３１記載の方法。
【請求項３３】  隣接する時間間隔からのメトリックが結合され、結合された間隔に対するメトリック各々を判定するように、前記１つ又はそれ以上のメトリックがスケーラブルに選択される請求項３１記載の方法。
【請求項３４】  通話フローが初期状態を含む状態を有し、フローのフローエントリは、該フローの状態について状態作業を一切含まない又は該フローの状態を実行するための１以上の状態作業を含み、前記パケットを分類する前記段階は、前記パケットが既存のフローのものであった場合、前記フローの最後に遭遇した状態を求め、前記フローの最後に遭遇した状態から始まる前記フローの前記状態について指定された状態作業を実行することを含み；および新たなフローエントリを格納する前記段階は、前記パケットが新たなフローのものであった場合、前記新たなフローの初期状態に要求される状態作業を実行する請求項２５記載の方法。
【請求項３５】  前記フローエントリの１つ又はそれ以上の前記統計的指標から、フローエントリの前記フローに関連する１つ又はそれ以上のメトリックを報告する段階を更に有する請求項３４記載の方法。
【請求項３６】  前記の報告が時々行われ、前記１つ又はそれ以上のメトリックが、最終報告時点からの時間間隔に関連する基本メトリックである請求項３５記載の方法。
【請求項３７】  前記の報告が、前記フローの前記状態についての前記状態作業の一部である請求項３６記載の方法。
【請求項３８】  前記状態作業が、前記フローエントリを更新することを含み、前記フローエントリにより識別される将来のパケットについての識別情報を格納することを含む請求項３４記載の方法。
【請求項３９】  パケットを更に受信する段階を更に有し、受信したフローのパケット各々の状態処理が、前記フローの前記アプリケーションプログラムを識別する請求項３８記載の方法。
【請求項４０】  前記フローの状態に関連する１つ又はそれ以上のメトリックが、前記フローの状態について指定された状態作業の一部として判定される請求項３９記載の方法。
【請求項４１】  コンピュータネットワーク上の接続点を介して通過するパケットを検査するパケットモニタであって、各パケットは１つ又はそれ以上のプロトコルに従い、当該パケットモニタは：
前記接続点に結合され、前記接続点を介して通過するパケットを受信するよう形成されたパケット捕捉装置であって、前記パケットを受け入れるように結合および形成された入力バッファメモリを含むパケットモニタ；
前記入力バッファメモリに結合されおよびスライサを有する分解サブシステムであって、前記分解サブシステムは、受け入れられた前記パケットの選択された部分を抽出し、前記選択された部分を含む分解レコードを出力するよう形成され、前記分解サブシステムの動作は前記パケットの従う１以上のプロトコルに依存する分解サブシステム；
以前遭遇した会話フローのフローエントリを含むデータベースを格納するメモリであって、各フローエントリは、該フローエントリに含まれている情報を識別することで確認され、会話フローは１以上の状態を有するメモリ；
前記分解サブシステムの出力および前記メモリに結合され、前記分解サブシステムから出力される特定のパケットの分解レコードが、フローエントリデータベース中のフローエントリに一致するか否かを調査するように形成された探索エンジンであって、前記の調査は、選択されたパケット部分の少なくとも一部を利用して、前記パケットが既存のフローのものであるか否かを判定する探索エンジン；および
前記メモリおよび前記探索エンジンに結合され、前記フローエントリデータベース内でフローエントリを作成するよう形成されたフロー挿入エンジンであって、前記フローエントリは、新規フローエントリにより識別される将来のパケットの識別情報を含むフロー挿入エンジン；および
前記フローの状態について指定された状態作業を実行する状態プロセッサ；
を有し、前記探索エンジンは、前記パケットが既存のフローのものであった場合、前記パケットを発見された既存のフローに属するものとして分類し、前記パケットが新たなフローのものであった場合、前記フロー挿入エンジンは、該新たなフローの新規フローエントリを前記フローエントリデータベースに格納し、前記新規フローエントリは、該新規フローエントリにより識別される将来のパケットの識別情報を含むパケットモニタ。
【請求項４２】  ある情報を含む抽出作業および分解作業のデータベースを格納する分解及び抽出作業メモリであって、前記情報は前記パケットで使用される少なくとも１つのプロトコルを前記パケット中のデータからどのように判定するかを記述する分解及び抽出作業メモリ；
一群の所定の状態遷移パターン及び状態作業を格納する状態パターン及び作業メモリであって、特定の会話フローシーケンスのパケットによる特定の遷移パターンの動きは、該特定の会話フローシーケンスが特定のアプリケーションプログラムの動作に関連付けられていることを示し、前記パターンの動きの中で訪れる各状態は、1以上の所定の状態作業が存在していた場合に、該状態について予め決められている1以上の状態を実行する状態パターン及び作業メモリ；
前記状態パターン又は作業メモリに及び前記探索エンジンに結合され、前記会話フローのパケットのプロトコル及び状態を確認するプロトコル及び状態識別手段；
を有し、前記状態プロセッサは、前記フローエントリデータベースに、前記プロトコル及び状態識別手段に、並びに前記状態パターン及び作業メモリに結合され、前記状態プロセッサは、パケットのフローのプロトコル及び状態に関して前記状態パターン及び作業メモリで指定されている状態動作を実行するよう構成され、
前記分解サブシステムは前記パターン及び抽出作業メモリにも結合され、前記状態プロセッサは、パケットの会話フローシーケンスにどのアプリケーションプログラムが関連付けられているかを確認するプロセスの状態動作を実行し、前記状態プロセッサは、受け入れたパケットについて実行する状態作業が一切なくなるまで、一連の状態及び状態作業を介して動作を進め、フローエントリを更新する、或いは前記状態プロセッサは、フローの分析が全く不要になったことを示す最終状態に至るまで、一連の状態及び状態作業を介して動作を進め、分析結果を通知する
請求項４１記載のパケットモニタ。
【請求項４３】  前記フローエントリが前記フローの前記状態を含み、前記探索エンジンが受け入れた前記フローのフローエントリを発見した場合に、前記プロトコル及び状態識別手段が、前記フローエントリから前記パケットの前記状態を判定する請求項４２記載のパケットモニタ。
【請求項４４】  前記分解サブシステムが前記選択された部分からハッシュを作成する手段を含み、前記探索エンジンは前記ハッシュを利用して前記フローエントリデータベースを探索し、前記ハッシュは前記フローエントリデータベース内に前記フローエントリを分散するように用意される請求項４２記載のパケットモニタ。
【請求項４５】  前記分解及び抽出作業メモリに結合されたコンパイラプロセッサを更に有し、前記コンパイラプロセッサはコンパイルプロセスを実行するよう形成され、前記コンパイルプロセスは：
前記モニタが遭遇するパケットで使用される前記プロトコルを記述する高レベルプロトコル記述言語の命令を受信すること、および
複数の分解又は抽出作業に、又は分解及び抽出作業メモリ中に初期化される分解及び抽出作業の双方に、該プロトコル記述言語命令を翻訳することを含む請求項４２記載のパケットモニタ。
【請求項４６】  前記プロトコル記述言語命令が、１つ又はそれ以上のアプリケーションプログラム群と、アプリケーションプログラムに関連する特定の会話フローシーケンスに起因して生じる前記状態遷移パターン及び作業との間の対応関係も記述し、前記コンパイラプロセッサは前記状態パターン及び作業メモリにも結合され且つコンパイルプロセスを実行し、前記コンパイルプロセスは、前記プロトコル記述言語命令を、前記状態パターン及び作業メモリ内に初期化される複数の状態パターン及び状態作業に翻訳する請求項４５記載のパケットモニタ。
【請求項４７】  更に：
前記フローエントリデータベースの中でアクセスされやすいフローエントリ群へ高速にアクセスするために、前記探索エンジンおよび前記フローエントリデータベース間に結合されたキャッシュメモリを更に有する請求項４２記載のパケットモニタ。
【請求項４８】  前記キャッシュが、最近最も少なく使用したキャッシュメモリに関連するものとして機能する請求項４７記載のパケットモニタ。
【請求項４９】  前記キャッシュが、最近最も少なく使用したキャッシュメモリに関連するものとして機能し、スタックとして形成されたアドレス可能なメモリ内容を有する請求項４８記載のパケットモニタ。
【請求項５０】  前記フロー挿入エンジンが、各フローエントリ中のフローに関する１つ又はそれ以上の統計的指標を格納するよう形成され、当該パケットモニタは、受け入れたパケットのフローエントリ中の前記統計的指標を更新する計算機を有する請求項４２記載のパケットモニタ。
【請求項５１】  フローの前記アプリケーションプログラムが決定される場合に、前記アプリケーションに関連するおよび前記統計的指標から決定された１つ又はそれ以上のネットワーク利用メトリックが、ネットワークパフォーマンスを監視するユーザに提供される請求項５０記載のパケットモニタ。
【請求項５２】  前記入力バッファメモリは、接続点を介して通過する各パケットを受け入れ、前記分解サブシステムは各パケットをリアルタイムで検査する請求項４１記載のパケットモニタ。
【請求項５３】  前記探索エンジンは、探索が成功した場合に既存のフローの前記フローエントリを更新する請求項４１記載のパケットモニタ。
【請求項５４】  前記分解サブシステムは、前記選択された部分からハッシュを作成し且つ前記探索エンジンに対する特定のパケットの入力に前記ハッシュを含め、前記探索エンジンは、前記ハッシュを用いて前記フローエントリデータベースを探索する請求項４１記載のパケットモニタ。
【請求項５５】  分解作業及び抽出作業のデータベースを含むメモリを更に有し、分解及び抽出データベースメモリは前記分解サブシステムに結合され、前記分解サブシステムは、分解及び抽出データベースから探索された１以上の作業に従って、分解作業及び／又は抽出作業を実行する請求項４１記載のパケットモニタ。
【請求項５６】  分解及び抽出作業の前記データベースが或る情報を含み、該情報は、前記パケットで使用されるプロトコルを指示するパケット内のデータから、１つ以上のプロトコル依存性の抽出作業群をどのように決定するかを記述する請求項５５記載のパケットモニタ。
【請求項５７】  前記分解サブシステムの前記出力に、前記探索エンジンにおよび前記フロー挿入エンジンに結合されたフローキーバッファを更に含み、分解サブシステムの出力は前記フローキーバッファを介して前記探索エンジンに結合され、前記フロー挿入エンジンは前記フローキーバッファを介して前記探索エンジンに結合される請求項４１記載のパケットモニタ。
【請求項５８】  前記状態プロセッサは、前記探索エンジンおよび前記フローエントリデータベースメモリに結合され、前記パケットが既存のパケットからのものであった場合、前記フローの最後に遭遇した状態から始まるフローの状態について特定された状態作業を実行し、前記パケットが既存のパケットからのものであった場合、新たなフローの初期状態に要求される状態作業を実行する請求項４１記載のパケットモニタ。
【請求項５９】  前記状態プロセッサの実行する状態作業が、パケット部分内の１つ以上のパターンを探索することを含む請求項５８記載のパケットモニタ。
【請求項６０】  前記状態プロセッサはプログラム可能であり、前記分解サブシステムは前記状態プロセッサに結合された状態パターン及び作業メモリを更に含み、前記状態パターン及び作業メモリは、プロトコル依存性の状態パターン及び作業のデータベースを格納する請求項５８記載のパケットモニタ。
【請求項６１】  前記フローキーバッファにおよび前記フローエントリデータベースメモリに結合された状態プロセッサを更に含み、該状態プロセッサは、前記パケットが既存のパケットからのものであった場合、前記フローの最後に遭遇した状態から始まるフローの状態について特定される状態作業を実行し、前記パケットが既存のパケットからのものであった場合、新たなフローの初期状態に要求される状態作業を実行する請求項５７記載のパケットモニタ。
【請求項６２】  前記状態作業が、前記フローエントリを更新することを含み、前記フローエントリにより識別される将来のパケットについての識別情報を格納する請求項５８記載のパケットモニタ。
【請求項６３】  前記分解及び抽出作業メモリに結合されたコンパイラプロセッサを更に有し、前記コンパイラプロセッサはコンパイルプロセスを実行するよう形成され、該コンパイルプロセスは：
前記モニタが遭遇するパケットで使用される前記プロトコルおよびその任意の子プロトコルを記述する高レベルプロトコル記述言語の命令を受信し、および
該プロトコル記述言語命令を、複数の分解又は抽出作業に翻訳する、或いは前記分解及び抽出作業メモリ内に初期化される複数の分解及び抽出作業の双方に翻訳する請求項４１記載のパケットモニタ。
【請求項６４】  前記分解及び抽出作業メモリに結合されたコンパイラプロセッサを更に有し、前記コンパイラプロセッサはコンパイルプロセスを実行するよう形成され、該コンパイルプロセスは：
１つ以上のアプリケーションプログラム群と、アプリケーションプログラムに関連する特定の会話フローシーケンスに起因して生じる前記状態遷移パターン及び作業との間の対応関係を記述する高レベルプロトコル記述言語の命令を受信し、および
該プロトコル記述言語命令を、前記分解及び抽出作業メモリ内に初期化された複数の状態パターンおよび状態作業に翻訳する請求項６０記載のパケットモニタ。
【請求項６５】  前記フローエントリデータベースから、アクセスされやすいフローエントリ群への高速アクセスを行うために、前記探索エンジンおよび前記フローエントリデータベースメモリにおよびそれらの間に結合されたキャッシュサブシステムを更に有する請求項４１記載のパケットモニタ。
【請求項６６】  前記キャッシュサブシステムが、１つ以上のアドレス可能なメモリセル内容を含む連合キャッシュサブシステムである請求項６５記載のパケットモニタ。
【請求項６７】  前記キャッシュサブシステムが、最近最も少なく利用したキャッシュメモリであり、キャッシュミスが、最近最も少なく使用されたキャッシュエントリを更新する請求項６８記載のパケットモニタ。
【請求項６８】  前記フロー挿入エンジンが、前記フローに関する１つ以上の統計的指標と共に各フローエントリを格納し、前記分解サブシステムは、受け入れたパケットの前記フローエントリ中の少なくとも１つの統計的指標を更新する計算機を有する請求項４１記載のパケットモニタ。
【請求項６９】  前記１つ以上の統計的指標が、前記フローに関するパケット総数，時間，および最後に入力された時点から現時点までの時間差を含む群から選択された指標を含む請求項６８記載のパケットモニタ。
【請求項７０】  前記フローエントリにおける１つ以上の前記統計的指標から、前記フローに関する１つ以上のネットワーク利用メトリックを判定するよう形成された統計プロセッサを更に有する請求項６８記載のパケットモニタ。
【請求項７１】  前記フローエントリデータベースが複数のビンに組織化され、複数のビン各々が１つ以上のフローエントリを有し、前記分解サブシステムは、前記選択されたパケット部分に基づいてハッシュデータ値を作成し、前記検索エンジンは、作成されたハッシュデータ値を介して前記ビンにアクセスする請求項４１記載のパケットモニタ。
【請求項７２】  前記分解サブシステムは、複数のフローエントリを前記フローエントリデータベースにわたって分散するようにハッシュデータ値を作成し、比較的浅いバケットが作成され、探索エンジンによる探索が比較的高速に行われる請求項７１記載のパケットモニタ。
【請求項７３】  前記状態プロセッサが新しいおよび既存のフローの両者を分析し、それらをアプリケーションにより分類し、１組の所定の規則に基づいて状態から状態に進む請求項５８記載のパケットモニタ。
【請求項７４】  前記探索エンジンが、前記分解サブシステムから分解レコードが到着すると直ちに処理を開始する請求項４１記載のパケットモニタ。
【請求項７５】  前記探索エンジンは、フロー状態エントリを検査し、フローキーが前記状態プロセッサに送られるべきか否かを検査し、前記フローに対してプロトコル識別子を出力する請求項５８記載のパケットモニタ。
【請求項７６】  前記パケットが既存のフローのものであった場合、前記探索エンジンは該フローエントリで維持されている１以上の統計的指標を格納し、前記パケットが新たなフローのものであった場合、前記フロー挿入エンジンは前記フローエントリで維持されている１つ以上の統計的指標を格納する請求項４１記載のパケットモニタ。
【請求項７７】  前記分解サブシステムは、受信したパケットからの識別情報を抽出し、前記探索エンジンは抽出された識別情報の機能を用いて探索を行う請求項７６記載のパケットモニタ。
【請求項７８】  前記１つ以上の統計的指標が、前記フローに関するパケット総数，時間，および最後に入力された時点から現時点までの時間差を含む群から選択された指標を含む請求項７６記載のパケットモニタ。
【請求項７９】  前記フローのフローエントリにおける１つ以上の前記統計的指標から、前記フローに関する１つ以上のメトリックを判定する統計プロセッサを更に有する請求項７６記載のパケットモニタ。
【請求項８０】  前記統計プロセッサが、前記１つ以上のメトリックを時々判定および報告する請求項７９記載のパケットモニタ。
【請求項８１】  前記データベースを格納する前記メモリに及び前記探索エンジンに結合されたキャッシュサブシステムを更に有し、前記キャッシュサブシステムはフローエントリデータベースの中でフローエントリに高速にアクセスするよう形成されている請求項４１記載のパケットモニタ。
【請求項８２】  前記探索エンジンは前記分解サブシステムを介して前記パケット捕捉装置に結合され、前記分解サブシステムは受信したパケットから識別情報を抽出するよう形成され、各フローエントリは前記フローエントリに含まれる識別情報によって識別され、キャッシュの探索は、抽出した識別情報の関数を使用して前記キャッシュサブシステムを探索する請求項８１記載のパケットモニタ。
【請求項８３】  前記キャッシュサブシステムが、１つ以上のアドレス可能なメモリセル内容を含む連合キャッシュメモリである請求項８２記載のパケットモニタ。
【請求項８４】  前記キャッシュサブシステムが：
フローエントリデータベースメモリに結合された１組のキャッシュメモリ要素であって、各キャッシュメモリ要素はフローエントリを入力するための入力ポートを含み、前記フローエントリデータベースのフローエントリを格納する１組のキャッシュメモリ要素；
アドレス可能なコンテンツメモリセルと呼ばれ、上部のアドレス可能なコンテンツメモリセルから下部のアドレス可能なコンテンツメモリセルへの接続の順序に従って接続された１組のアドレス可能なコンテンツメモリセルであって、アドレス可能なコンテンツメモリセル各々は、前記キャッシュメモリ要素の１つに対するアドレスおよびポインタを含み且つアドレス可能なコンテンツメモリセル各々は：
入力を有する一致回路であって、前記入力がアドレス可能なコンテンツメモリセル内のアドレスと同一であった場合に、アドレス可能なコンテンツメモリセルが一致出力をアサートし、アサートされた一致出力はヒットを示す一致回路，
アドレスおよびポインタを受け入れるアドレス可能なコンテンツメモリセル入力，および
アドレス可能なコンテンツメモリセルのアドレス出力およびアドレス可能なコンテンツメモリセルのポインタ出力
を含む１組のアドレス可能なコンテンツメモリセル；
前記アドレス可能なコンテンツメモリセルの組に結合されるアドレス可能なコンテンツメモリセルコントローラ；および
前記アドレス可能なコンテンツメモリセルコントローラに、前記キャッシュメモリの組におよび前記フローエントリメモリに結合されたメモリコントローラ；
を含み、前記アドレス可能なコンテンツメモリセルの一致回路入力が前記探索エンジンに結合され、前記一致回路入力への入力が、前記入力に等しいアドレスを含む任意のアドレス可能なコンテンツメモリセルで一致出力を生じさせ、および
前記アドレス可能なコンテンツメモリセルコントローラは、特定のアドレス可能なコンテンツメモリセルが指示するキャッシュメモリ要素が時間と共に変化するように形成される請求項８２記載のパケットモニタ。
【請求項８５】  前記下部のアドレス可能なコンテンツメモリセルが最近最も少なく利用したキャッシュメモリ要素を指すように、前記アドレス可能なコンテンツメモリセルコントローラが形成される請求項８４記載のパケットモニタ。
【請求項８６】  前記上部のアドレス可能なコンテンツメモリセルから始まるアドレス可能なコンテンツメモリセル各々のアドレスおよびポインタ出力が、次のアドレス可能なコンテンツメモリセルのアドレスおよびポインタ入力に結合され、次のアドレス可能なコンテンツメモリセルの最後は下部のアドレス可能なコンテンツメモリセルであり、キャッシュヒットが起こった場合に、ヒットを引き起こしたアドレス可能なコンテンツメモリセルのアドレスおよびポインタの内容はスタックの上部のアドレス可能なコンテンツメモリセルに配置され、アサートされた一致出力を生成したアドレス可能なコンテンツメモリセルより上側のアドレス可能なコンテンツメモリセルのアドレスおよびポインタの内容はシフトダウンされ、下部のアドレス可能なコンテンツメモリセルによって指示される最近最も少なく使用したキャッシュメモリ要素と共におよび上部のアドレス可能なコンテンツメモリセルによって指示される最近最も多く使用したキャッシュメモリ要素と共に、最近の利用度に従ってアドレス可能なコンテンツメモリセルが順序付けられるように、前記アドレス可能なコンテンツメモリセルコントローラが形成される請求項８５記載のパケットモニタ。
【請求項８７】  前記探索エンジンに結合され、前記受信したパケットが前記フローエントリに属する場合にフローの状態を判定し、受信したパケットが前記フローエントリデータベース内のフローに属していなかった場合に初期状態を設定する状態判定手段を更に有し；
前記状態プロセッサは、前記探索エンジンにおよび前記状態判定手段に結合され、前記パケットが既存のフローからのものであった場合に、前記フローの最後に遭遇した状態から始まるフローの状態について指定された状態作業を実行し、前記パケットが既存のフローからのものであった場合に、新たなフローの初期状態に要求される状態作業を実行する請求項４１記載のパケットモニタ。
【請求項８８】  状態プロセッサが実行する１組の可能な状態作業が、パケット部分における１つ以上のパターンを探索することを含む請求項８７記載のパケットモニタ。
【請求項８９】  前記分解サブシステムが、前記接続点を通過する総てのパケットをリアルタイムで処理する請求項８８記載のパケットモニタ。
【請求項９０】  前記状態プロセッサがプログラム可能であり、前記分解サブシステムが前記状態プロセッサに結合された状態パターン及び作業メモリを更に含み、前記状態作業メモリが状態パターン及び作業のデータベースを格納する請求項８７記載のパケットモニタ。
【請求項９１】  前記パケット捕捉装置，前記状態プロセッサおよび前記探索エンジンに結合されるバッファを更に有し、前記バッファは前記受信したパケットの少なくとも選択された部分を受け入れる請求項８７記載のパケットモニタ。
【請求項９２】  前記状態プロセッサが、バッファコンテンツの中にＮＲユニットの参照ストリングを探索する探索装置を含み、当該探索装置は：
第１参照ストリングの前記ＮＲユニットを受信するよう形成された第１参照ストリングレジスタ；
直列に結合され且つ前記バッファに結合された１つ以上のターゲットデータレジスタであって、前記ターゲットデータレジスタは前記バッファからコンテンツを受信する１つ以上のターゲットデータレジスタ；および
第１の複数の比較器群であって、ある比較器群は前記ターゲットデータレジスタ内の各々の開始点に対応し、特定の開始位置の比較器群が、前記第１参照レジスタの各ユニットと前記特定の開始位置から始まる前記ターゲットデータレジスタのＮＲユニットとに結合され、前記第１参照レジスタ内容と、前記特定の開始位置から始まる前記ターゲットデータレジスタのＮＲ個の隣接するユニットの対応する内容とを比較する第１の複数の比較器群；
を有し、各比較器群は、対応する異なる開始位置から始まる前記ターゲットデータの中で前記第１参照ストリングの一致の有無を示し、前記第１の複数の比較器群は、任意の開始位置で始まる前記ターゲットデータレジスタに前記第１参照ストリングが含まれているか否かを並列的に示す請求項９１記載のパケットモニタ。
【請求項９３】  コンピュータネットワーク上の接続点を介して通過するパケットについてプロトコル固有の作業を実行する方法であって、当該方法は：
前記パケットを受信する段階；
階層モデルに従う複数のプロトコルに関する１組のプロトコル記述を受信する段階であって、特定の階層レベルにおける特定のプロトコルに関するプロトコル記述は：
前記特定のプロトコルの少なくとも１つの子プロトコルが存在する場合に、該特定のプロトコルの１つ以上の子プロトコルを含み、前記パケットは、前記特定のプロトコルの特定の子プロトコルについて、前記特定の子プロトコルに関連する前記パケット中のる１つ以上の場所に情報を含み、
前記プロトコル記述は、前記特定のプロトコルの子プロトコルに関連する情報が格納される前記パケット内の１つ以上の場所を含み，および
前記プロトコル記述は、少なくとも１つのプロトコル固有の実行する作業が存在する場合に、前記特定の階層レベルにおける特定のプロトコルに関して、前記パケットに実行される１つ以上のプロトコル固有の作業を含むところの段階；および
前記パケットの基本プロトコルおよび前記パケットで使用される前記プロトコルの子に基づく前記１組のプロトコル記述によって特定される前記パケットについての前記プロトコル固有の作業を実行する段階；
を有する方法。
【請求項９４】  プロトコル固有の作業を実行する段階が、前記子の任意の子に関して繰り返し行われる請求項９３記載の方法。
【請求項９５】  当該方法がパケットの内容に従って様々なプロトコルに適合するように、プロトコル固有の作業を実行する段階で実行されるプロトコル固有の作業が前記パケットのコンテンツに依存する請求項９３記載の方法。
【請求項９６】  メモリ内にデータベースを格納する段階を更に有し、前記データベースは、前記１組のプロトコル記述から生成され、可能なプロトコルに関する情報を含むデータ構造を有し、任意のプロトコルに対して子プロトコル関連情報を探索するように組織され、前記データ構造の内容は１つ以上の１組の指標によって指示され、前記データベースエントリは有効性の指示を含む指標値の特定の組によって指示され、
前記子プロトコル関連情報は子認識パターンを含み、前記プロトコル特有作業を実行する段階は、ベース階層から始まる特定のプロトコル階層レベルにおいて、前記子フィールドに関する前記特定のプロトコルにおける前記パケットを探索し、該探索は、有効なエントリが見出されるまで前記データ構造を指示することを含む請求項９３記載の方法。
【請求項９７】  前記プロトコル記述がプロトコル記述言語で用意され、前記方法が、前記データベースを作成するためにプロトコル記述言語の記述をコンパイルする段階を更に有する請求項９６記載の方法。
【請求項９８】  前記データ構造が１組のアレイを有し、各アレイは、各プロトコルに対して少なくとも１つのアレイの第１指標によって識別され、各アレイは、子プロトコル関連情報が格納される前記パケット内の場所である第２指標によって更に指示され、前記データ構造における有効なエントリの探索が、前記パケット内の前記場所を用意し、識別されたプロトコルに関する子認識パターンを見出す請求項９６記載の方法。
【請求項９９】  各アレイは子プロトコル関連情報が格納される前記パケット内の領域の大きさである第３指標によって更に指示され、前記データ構造における有効なエントリの探索は、前記パケットにおける前記場所および前記領域の大きさを用意し、前記子認識パターンを見出すことを特徴とする請求項９８記載の方法。
【請求項１００】  前記データ構造における有効エントリのスパースネス(sparseness)を利用した圧縮手法に従って前記データ構造が圧縮される請求項９９記載の方法。
【請求項１０１】  前記圧縮手法が、競合する共通エントリを有しない２つ以上のアレイを結合する請求項１００記載の方法。
【請求項１０２】  前記データ構造が１組のテーブルを有し、各テーブルは、各プロトコルに対して少なくとも１つのテーブルの第１指標によって識別され、各テーブルは更に、前記子認識パターンである第２指標によって指示され、前記データ構造は、各プロトコルに対して、子プロトコル関連情報が格納される前記パケット内の場所を提供するテーブルを更に含み、前記データ構造における有効なエントリの探索が、前記パケット内の前記場所を用意し、識別されたプロトコルに関する子認識パターンを見出す請求項９６記載の方法。
【請求項１０３】  テーブルの前記組における有効エントリのスパースネスを利用した圧縮手法に従って前記データ構造が圧縮される請求項１０２記載の方法。
【請求項１０４】  前記圧縮手法が、競合する共通エントリを有しない２つ以上のテーブルを結合する請求項１０３記載の方法。
【請求項１０５】  前記プロトコル固有の作業が、前記パケットに関する１つ以上の分解および抽出作業を含み、前記パケットの選択された部分を抽出し、会話フローに属するものとして前記パケットを識別するために前記選択された部分の関数を形成する請求項９３記載の方法。
【請求項１０６】  前記プロトコル記述が、プロトコル記述言語で用意される請求項９３記載の方法。
【請求項１０７】  データベースを作成し、前記データベースをメモリ内に格納するためのプロトコル記述言語の記述をコンパイルする段階を更に有し、前記データベースは、前記１組のプロトコル記述から生成され、可能なプロトコルに関する情報を含むデータ構造を有し、任意のプロトコルに対して子プロトコル関連情報を探索するように組織され、前記データ構造の内容は１つ以上の１組の指標によって指示され、前記データベースエントリは有効性の指示を含む指標値の特定の組によって指示され、
前記子プロトコル関連情報は子認識パターンを含み、
前記プロトコル固有の作業を実行する段階は、ベース階層から始まる特定のプロトコル階層レベルにおいて、前記子フィールドに関する前記特定のプロトコルにおける前記パケットを探索し、該探索は、有効なエントリが見出されるまで前記データ構造を指示することを含み、前記データ構造は、前記指標の組を利用して高速探索される請求項１０６記載の方法。
【請求項１０８】  以前に遭遇した会話フローに関する少なくとも１つフローエントリをフローエントリデータベースが含む場合に、ゼロ又はより多くのフローエントリを、以前に遭遇した会話フロー各々の少なくとも１つのフローエントリで含むフローエントリデータベースを探索するステップであって、該探索は、前記選択されたパケット部分の少なくとも一部を利用し、前記パケットが既存のフローのものであるか否かを判定する段階；
前記パケットが既存のフローのものであった場合、前記パケットを発見された既存のフローに属するものとして分類する段階；および
前記パケットが新たなフローのものであった場合、前記新たなフローのための新規フローエントリを、該新たなフローエントリにより識別される将来のパケットについての識別情報を含むフローエントリデータベースに格納する段階；
を有し、前記分解および抽出作業が、少なくとも１つのパケットヘッダのコンテンツに依存しない、或いはゼロ又はそれ以上のパケットヘッダのコンテンツに依存する請求項１０５記載の方法。
【請求項１０９】  前記プロトコル固有の作業が、更に、前記パケットの前記フローの前記状態の関数である１つ以上の状態処理作業を含む請求項１０５記載の方法。
【請求項１１０】  前記プロトコル固有の作業が、前記パケットの前記フローの前記状態の関数である１つ以上の状態処理作業を含む請求項９３記載の方法。
【請求項１１１】  コンピュータネットワーク上の接続点を介して通過するパケットの内容を処理するプロセッサであって：
前記接続点を介して通過する各パケットの前記内容の少なくとも一部を受信するバッファ；
状態プロセッサに対する命令群の内の１つ以上の命令を含むメモリ；
前記バッファに結合された算術論理装置；
前記算術論理装置に及び前記命令メモリに結合され、命令をデコードする制御ブロック；及び
前記命令メモリに及び前記算術論理装置に結合され、前記メモリで処理する次の状態プロセッサ命令を示すプログラムカウンタ；
を有し、前記算術論理装置は、パケットのコンテンツの中で参照ストリングを探索する１つ以上の比較器を有する探索装置を含むプロセッサ。
【請求項１１２】  前記状態プロセッサが、前記接続点を介して通過する全パケットの内容をリアルタイムで処理する請求項１１１記載のプロセッサ。
【請求項１１３】  前記命令群が、前記算術論理装置の前記探索装置を起動し、前記パケットの或る範疇で未知の位置から始まるパケット中の特定の参照ストリングを探索させる命令を含む請求項１１１記載のプロセッサ。
【請求項１１４】  前記探索装置が、パケットのコンテンツ中の任意の一群の参照ストリングを探索し、前記命令群が、前記探索装置に対して、前記パケットの或る範疇で未知の位置から始まるパケット中の特定の一群の参照ストリングを探索させる命令を含む請求項１１１記載のプロセッサ。
【請求項１１５】  前記ターゲットデータ内の任意の一群の開始位置から始まるターゲットデータ中のＮＲユニットの参照ストリングを探索する探索装置であって：
第１参照ストリングの前記ＮＲユニットを受信するよう形成された第１参照レジスタ；
直列に結合され前記ターゲットデータを受信する１つ以上のターゲットデータレジスタ；および
第１の複数の比較器群であって、ある比較器群は前記開始点の各々に対応し、特定の開始位置からの比較器群は、前記第１参照レジスタの各ユニットと前記特定の開始位置から始まる前記ターゲットデータレジスタのＮＲユニットとに結合され、前記第１参照レジスタ内容と、前記特定の開始位置から始まる前記ターゲットデータレジスタのＮＲ個の隣接するユニットの対応する内容とを比較する第１の複数の比較器群；
を有し、各比較器群は対応する異なる開始位置から始まる前記ターゲットデータの中で前記第１参照ストリングの一致の有無を示し，前記第１の複数の比較器群は、任意の開始位置で始まる前記ターゲットデータレジスタ内に前記第１参照ストリングが含まれているか否かを並列に示す探索装置。
【請求項１１６】  １組の可能な開始位置が、Nstart個の位置を含み、前記１つ以上のターゲットデータレジスタが直列に結合され前記ターゲットデータの少なくともＮＲ＋Nstart−１個のユニットを受信し、前記第１の複数の比較器群が、Nstart個の比較器群、Nstart個の開始位置各々について１つの比較器群を含む請求項１１５記載の探索装置。
【請求項１１７】  前記ターゲットデータレジスタの各々は、データのNstart個のユニットを保持する請求項１１６記載の探索装置。
【請求項１１８】  前記ターゲットデータのNstart個のユニットが前記ターゲットデータレジスタ内に１クロックサイクルでクロック入力されるようにターゲットデータレジスタが動作し、前記第１の複数の比較器群は、前記第１参照ストリングが、Nstart個の開始位置の何れかにおいて開始するターゲット領域中のものであるか否かを１クロックサイクルで示す請求項１１７記載の探索装置。
【請求項１１９】  オフセットNoffsetを特定するための手段を更に有し、第１の動作クロックサイクルの間に、前記第１のNoffset個の開始位置が無視され、複数の比較器群は、前記第１参照ストリングが、第１Noffset開始位置の後に始まる前記第１データの任意のNstart−Noffsetの開始位置で始まるターゲットデータ領域中のものであるか否かを、前記第１クロックサイクルで示し、以後のクロックサイクルにおいて総てのNstartの開始位置が処理され、１つ以上のクロックサイクルにおいて、前記探索装置が、第１のNoffsetユニット以外の任意の場所で始まるターゲットデータ中に前記第１参照ストリングがあるか否かを示す請求項１１８記載の探索装置。
【請求項１２０】  各比較器群がＮＲ個の隣接する比較器を有し、各比較器は参照ユニット入力，ターゲットユニット入力および一致を示す出力を有し、前記参照およびターゲットデータ入力が一致し且つ先行する比較器の出力が一致を示す場合に比較器の出力がアサートされるように、各比較器は先行する比較器の出力に結合される請求項１１５記載の探索装置。
【請求項１２１】  １つ以上の更なる参照ストリングのＮＲユニットを受信する１つ以上の更なる参照レジスタ；および
1つ以上の更なる複数の比較器群であって、１つの比較器群について対応する複数の開始位置があり、複数個の内の特定の比較器群の各々が、対応する更なる参照レジスタの各ユニットと前記特定の比較器群の開始位置から始まる前記データレジスタのＮＲユニットとに結合され、対応する更なる参照レジスタ内容と、前記特定の比較器群の開始位置から始まる前記ターゲットデータレジスタのＮＲ個ユニットとを比較する1つ以上の更なる複数の比較器群；
を更に有し、前記探索装置が、任意の開始位置から始まる前記ターゲットデータレジスタの内容において、ＮＲユニットの前記第１又は更なる参照ストリングを探索する請求項１１５記載の探索装置。
【請求項１２２】  各比較器群がＮＲ個の隣接する比較器を有し、各比較器は参照ユニット入力，ターゲットデータユニット入力および一致を示す出力を有し、前記参照およびターゲットデータ入力が一致し先行する比較器の出力が一致を示す場合に比較器の出力がアサートされるように、各比較器は先行する比較器の出力に結合される請求項１２１記載の探索装置。
【請求項１２３】  各比較器群はＮＲ個の隣接する比較器を有し、各比較器は参照ユニット入力，ターゲットデータユニット入力，イネーブル入力および一致を示す出力を有し、前記参照およびターゲットデータ入力が一致しイネーブル入力がアサートされる場合に比較器の出力がアサートされ、
特定の開始位置に関する特定の比較器群に対して、隣接する比較器の参照入力が前記参照レジスタの隣接するユニットに結合され、隣接する比較器のターゲットデータ入力が、特定の開始位置から始まるターゲットデータレジスタの隣接するユニットに結合され、第1の比較器群がイネーブルされ、各比較器のイネーブル入力が先行する比較器の出力に結合され、参照ストリングのＮＲユニットおよび前記ターゲットデータのＮＲユニットが合致する場合に、最後の比較器の出力がアサートされる請求項１１５記載の探索装置。
【請求項１２４】  １ユニットが１バイトである請求項１１５記載の探索装置。
【請求項１２５】  前記比較器群中の最終比較出力が、前記ターゲットデータ中に前記参照ストリングの一致が生じたか否かおよびその場所を示す出力を有する優先選択器に結合される請求項１２３記載の探索装置。
【請求項１２６】  ＮＲが１６バイトである請求項１２４記載の探索装置。
【請求項１２７】  ＮＲが１６バイトであり、データレジスタの各々がNstartバイトであり、前記探索装置が前記第１データレジスタ内の何れかから開始して一致を示す請求項１１６記載の探索装置。
【請求項１２８】  ターゲットデータストリーム内のＮＲユニットの参照ストリングを探索する探索装置であって：
入力のＮＲ個の対と、前記入力のＮＲ個の対の各対の一致を示す出力とを有する第１のＮＲユニットの比較器；
前記参照ストリングの値を示し行列の第１軸を定めるＮＲ個の接続部であって、ＮＲ個の接続部は、前記第１の軸に垂直な行列の第２の軸を定める前記ターゲットデータの値を示し、ターゲットデータ接続部は、前記ターゲットデータの第１の開始位置から始まり、終了位置で終了するＮＲ個の接続部；
を有し、前記ターゲットデータのＮＲ個の接続部が、ＮＲ個の参照ストリングの接続部と比較されるように、第１の比較器が前記行列の対角線に沿って並べられる探索装置。
【請求項１２９】  前記行列の前記ターゲットデータ接続部に並列に隣接し且つ終端部から始まる１つ以上の付加的な接続部；および
前記付加的なターゲットデータ接続部の各々について及びそれらに対応する付加的なＮＲユニットの比較器であって、各付加的な比較器は前記第１比較器に並列しており且つ前記行列の中で前記付加的なターゲット接続部に向けてシフトされる付加的なＮＲユニットの比較器；
を有し、各付加的な比較器が、前記参照ストリングを、異なる開始点から始まる前記ターゲットデータのＮＲユニット連続値の異なる組と比較する請求項１２８記載の探索装置。
【請求項１３０】１つ以上のＮＲユニットの更なる比較器群；および
ＮＲユニットの更なる比較器群に対応する更なる接続部であって、前記更なる接続部が１つ以上の行列を定め、前記第１軸に沿う更なる接続部の各々が、前記第１軸に沿う更なる参照ストリングに対応する１つ以上の値を示し、ＮＲ個の接続部が前記第２軸に沿う前記ターゲットデータの値を含む更なる比較器群；
を有し、付加的な比較器群の各々が、前記参照ストリングの対応するものと、異なる開始位置から開始するターゲットデータのＮＲ個の隣接する値の異なる組を比較する請求項１２９記載の探索装置。
【請求項１３１】  外部メモリの１つ以上の要素を探索するキャッシュシステムであって：
前記外部メモリに結合された１組のキャッシュメモリ要素であって、各キャッシュメモリ要素は前記外部メモリの要素を入力するための入力ポートを含み、前記外部メモリの要素の入力を格納する１組のキャッシュメモリ要素；
上部のアドレス可能なコンテンツメモリセルから下部のアドレス可能なコンテンツメモリセルへの接続の順序に従って接続された１組のアドレス可能なコンテンツメモリセルであって、アドレス可能なコンテンツメモリセル各々が、前記キャッシュメモリ要素の１つに対するアドレスおよびポインタを含み、アドレス可能なコンテンツメモリセル各々は：
入力を有する一致回路であって、前記入力がアドレス可能なコンテンツメモリセルのアドレスと同一である場合にアドレス可能なコンテンツメモリセルが一致出力をアサートし、アサートされた一致出力はヒットを示す一致回路，
アドレスおよびポインタを受け入れるアドレス可能なコンテンツメモリセル，および
アドレス可能なコンテンツメモリセルのアドレス出力およびアドレス可能なコンテンツメモリセルのポインタ出力
を含む１組のアドレス可能なコンテンツメモリセル；
前記アドレス可能なコンテンツメモリセルの組に結合されたアドレス可能なコンテンツメモリセルコントローラ；および
前記アドレス可能なコンテンツメモリセルコントローラ，前記キャッシュメモリの組および前記外部メモリに結合されたメモリコントローラ
を含み、前記一致回路入力への入力が、前記入力に等しいアドレスを含む任意のアドレス可能なコンテンツメモリセルで一致出力を生じさせるように、前記アドレス可能なコンテンツメモリセルの一致回路入力が結合され、および
前記アドレス可能なコンテンツメモリセルコントローラが、特定のＣＡＭが指示するキャッシュメモリ要素が時間と共に変化するキャッシュシステム。
【請求項１３２】  前記下部のアドレス可能なコンテンツメモリセルが最近最も少なく利用したキャッシュメモリ要素を指示するように、前記ＣＡＭコントローラが形成され、前記アドレス可能なコンテンツメモリセルコントローラは、最近最も少なく利用したキャッシュメモリ要素が、処理される第１メモリ要素であるようにアドレス可能なコンテンツメモリセルコントローラが形成される請求項１３１記載のキャッシュシステム。
【請求項１３３】  前記上部のアドレス可能なコンテンツメモリセルから始まるアドレス可能なコンテンツメモリセル各々のアドレスおよびポインタ出力が、次のアドレス可能なコンテンツメモリセルのアドレスおよびポインタ入力に結合され、次のアドレス可能なコンテンツメモリセルの内の最後が下部のアドレス可能なコンテンツメモリセルであり、キャッシュヒットが起こった場合に、ヒットを引き起こしたＣＡＭのアドレスおよびポインタの内容はスタックの上部のアドレス可能なコンテンツメモリセルに配置され、アサートされた一致出力を引き出したアドレス可能なコンテンツメモリセルより上側のＣＡＭのアドレスおよびポインタの内容はシフトダウンされ、下部のアドレス可能なコンテンツメモリセルよって指示される最近最も少なく使用したキャッシュメモリ要素と共におよび上部のアドレス可能なコンテンツメモリセルによって指示される最近最も多く使用したキャッシュメモリ要素と共に、最近の利用度に従ってアドレス可能なコンテンツメモリセルが順序付けられる請求項１３２記載のキャッシュシステム。
【請求項１３４】  最初に処理されるキャッシュメモリエントリである最近最も少なく利用したエントリと共に、キャッシュメモリ要素の置換が、利用の最新性とは逆の順序に従って行われるように、アドレス可能なコンテンツメモリセルコントローラが形成される請求項１３３記載のキャッシュシステム。
【請求項１３５】  各メモリ要素がメモリのページである請求項１３１記載のキャッシュシステム。
【請求項１３６】  各キャッシュメモリ要素は、それがダーティであるか否かの指標と共に用意され、前記アドレス可能なコンテンツメモリセルコントローラは、前記のダーティな内容を前記外部メモリにバックアップすることによって、ダーティキャッシュメモリ要素をクリーニングする特徴とする請求項１３１記載のキャッシュシステム。
【請求項１３７】  最も最近少なく使用したことを指針にする置換法に従って、キャッシュ内容が置換される必要が生じるまで、キャッシュメモリ要素の内容がクリーニング後も維持される請求項１３６記載のキャッシュシステム。
【請求項１３８】  各キャッシュメモリ要素は、それがダーティであるか否かの指標と共に用意され、前記アドレス可能なコンテンツメモリセルコントローラは、前記のダーティな内容を前記外部メモリにバックアップすることによって、ダーティキャッシュメモリ要素をクリーニングする特徴とする請求項１３２記載のキャッシュシステム。
【請求項１３９】  前記アドレス可能なコンテンツメモリセルコントローラが、前記キャッシュメモリ要素の内容を置換するのに先立って、ダーティキャッシュメモリ要素をクリーニングする請求項１３８記載のキャッシュシステム。
【請求項１４０】  前記アドレス可能なコンテンツメモリセルコントローラが、前記キャッシュメモリ要素の内容を置換するのに先立って、ダーティキャッシュメモリ要素をクリーニングする請求項１１９記載のキャッシュシステム。
【請求項１４１】  各キャッシュメモリ要素は、それがダーティであるか否かの指標と共に用意され、前記アドレス可能なコンテンツメモリセルコントローラは、前記のダーティな内容を前記外部メモリにバックアップすることによって、利用の最新性とは逆の順序で、ダーティキャッシュメモリ要素をクリーニングする請求項１３３記載のキャッシュシステム。
【請求項１４２】  前記アドレス可能なコンテンツメモリセルコントローラがアイドルのときはいつでも、アドレス可能なコンテンツメモリセルコントローラは、利用の最新性とは逆の順序で自動的にクリーニングを進める請求項１４１記載のキャッシュシステム。
【請求項１４３】  外部メモリの１つ以上の要素を探索するキャッシュシステムであって：
前記外部メモリに結合された１組のキャッシュメモリ要素であって、各キャッシュメモリ要素は前記外部メモリの要素を入力するための入力ポートを含み、外部メモリ要素に入力を格納する１組のキャッシュメモリ要素；および
キャッシュメモリ要素の１つに対するアドレスおよびポインタを含む１組のアドレス可能なコンテンツメモリセルであって、前記入力がアドレス可能なコンテンツメモリセルのアドレスと同一である場合にアドレス可能なコンテンツメモリセルが一致出力をアサートする入力を有する一致回路を含む１組の内容アドレス可能なメモリセル；
を有し、特定のアドレス可能なコンテンツメモリセルの指示するキャッシュメモリ要素が時間と共に変化するキャッシュシステム。
【請求項１４４】  アドレス可能なコンテンツメモリセルが上部から下部への順序で結合され、下部のアドレス可能なコンテンツメモリセルは最近最も少なく利用したキャッシュメモリ要素を指示する請求項１４３記載のキャッシュシステム。