JPH10257084A - コンピュータ・ネットワーク内でデータ・フレームを経路指定するフレーム・ヘッダを解析する方法およびシステム - Google Patents
コンピュータ・ネットワーク内でデータ・フレームを経路指定するフレーム・ヘッダを解析する方法およびシステムInfo
- Publication number
- JPH10257084A JPH10257084A JP10001502A JP150298A JPH10257084A JP H10257084 A JPH10257084 A JP H10257084A JP 10001502 A JP10001502 A JP 10001502A JP 150298 A JP150298 A JP 150298A JP H10257084 A JPH10257084 A JP H10257084A
- Authority
- JP
- Japan
- Prior art keywords
- test
- frame
- search
- computer network
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】
【課題】 コンピュータ・ネットワーク内でデータ・フ
レームを経路指定するフレーム・ヘッダを解析する方法
およびシステムを提供すること。 【解決手段】 本発明の方法およびシステムによれば、
まず、コンピュータ・ネットワークからデータ・フレー
ムを受信する。次いで、データ・フレームのフレーム・
ヘッダを同じ長さの複数のテスト・ユニットに分解す
る。その後、各テスト・ユニットにそれぞれリファレン
ス・パターン・フィールドおよびアクション・コード・
ポインタ・フィールドを含む各テスト・ベクトルを割り
当てる。各テスト・ベクトルを様々なテスト・ブロック
の対応するスロットに挿入することによって多数のテス
ト・ブロックを構成する。最後に、これらの様々なテス
ト・ブロックを使用して、探索ツリーを構成する。各テ
スト・ブロックは、その中に含まれるテスト・ベクトル
によって互いに関連づけられる。
レームを経路指定するフレーム・ヘッダを解析する方法
およびシステムを提供すること。 【解決手段】 本発明の方法およびシステムによれば、
まず、コンピュータ・ネットワークからデータ・フレー
ムを受信する。次いで、データ・フレームのフレーム・
ヘッダを同じ長さの複数のテスト・ユニットに分解す
る。その後、各テスト・ユニットにそれぞれリファレン
ス・パターン・フィールドおよびアクション・コード・
ポインタ・フィールドを含む各テスト・ベクトルを割り
当てる。各テスト・ベクトルを様々なテスト・ブロック
の対応するスロットに挿入することによって多数のテス
ト・ブロックを構成する。最後に、これらの様々なテス
ト・ブロックを使用して、探索ツリーを構成する。各テ
スト・ブロックは、その中に含まれるテスト・ベクトル
によって互いに関連づけられる。
Description
【0001】本発明は、本出願人に譲渡された1994
年9月15日出願の米国特許出願第08/306783
号(特開平8−97844号公報)に関連している。
年9月15日出願の米国特許出願第08/306783
号(特開平8−97844号公報)に関連している。
【0002】
【発明の属する技術分野】本発明は、一般にデータ処理
の方法およびシステムに関し、特にフレーム・ヘッダを
解析する方法およびシステムに関する。さらに詳細に
は、本発明は、コンピュータ・ネットワーク内でデータ
・フレームを経路指定するフレーム・ヘッダを解析する
方法およびシステムに関する。
の方法およびシステムに関し、特にフレーム・ヘッダを
解析する方法およびシステムに関する。さらに詳細に
は、本発明は、コンピュータ・ネットワーク内でデータ
・フレームを経路指定するフレーム・ヘッダを解析する
方法およびシステムに関する。
【0003】
【従来の技術】コンピュータ・ネットワークは、情報を
電子的に伝送する経路をコンピュータ・ユーザに提供す
るための通信機構によって接続されたコンピュータのグ
ループである。コンピュータ・ネットワークは、狭い領
域内の少数のコンピュータのみから構成されるローカル
エリア・ネットワーク(LAN)か、または広大な地理
的領域中に分散された多数のコンピュータから構成され
る広域ネットワーク(WAN)である。
電子的に伝送する経路をコンピュータ・ユーザに提供す
るための通信機構によって接続されたコンピュータのグ
ループである。コンピュータ・ネットワークは、狭い領
域内の少数のコンピュータのみから構成されるローカル
エリア・ネットワーク(LAN)か、または広大な地理
的領域中に分散された多数のコンピュータから構成され
る広域ネットワーク(WAN)である。
【0004】ルータ(またはブリッジ)は、コンピュー
タ・ネットワーク内のメッセージ配送を容易にする中継
装置である。LAN内では、ルータは、メッセージを受
信し、それらを最も効率的に使用できるルートを介して
それらの正しい宛先に転送する。相互接続された複数の
LANの組を有するWAN内では、ルータは、これらの
複数組のLANの間のリンクとして働き、1組のLAN
から別の1組のLANへメッセージを送信できるように
するので幾分異なる役目を果たす。
タ・ネットワーク内のメッセージ配送を容易にする中継
装置である。LAN内では、ルータは、メッセージを受
信し、それらを最も効率的に使用できるルートを介して
それらの正しい宛先に転送する。相互接続された複数の
LANの組を有するWAN内では、ルータは、これらの
複数組のLANの間のリンクとして働き、1組のLAN
から別の1組のLANへメッセージを送信できるように
するので幾分異なる役目を果たす。
【0005】ネットワーク・コンピュータ内の様々なコ
ンピュータは、そのポート(すなわち、データ処理装置
との間でデータを出し入れする場所)を介してルータに
結合される。ルータは、コンピュータ・ネットワーク内
のあるコンピュータから他のコンピュータに向けられた
データ・フレームを受信したとき、データ・フレーム内
に与えられた宛先アドレス(受信側コンピュータのアド
レス)を記憶されたアドレス/ポート・リストと比較す
る。このアドレス/ポート・リストは、ルータ内のどの
ポートが受信側コンピュータに関連するかを示す。次い
で、ルータは、データ・フレームを受信側コンピュータ
に結合された適切なポートに向ける。
ンピュータは、そのポート(すなわち、データ処理装置
との間でデータを出し入れする場所)を介してルータに
結合される。ルータは、コンピュータ・ネットワーク内
のあるコンピュータから他のコンピュータに向けられた
データ・フレームを受信したとき、データ・フレーム内
に与えられた宛先アドレス(受信側コンピュータのアド
レス)を記憶されたアドレス/ポート・リストと比較す
る。このアドレス/ポート・リストは、ルータ内のどの
ポートが受信側コンピュータに関連するかを示す。次い
で、ルータは、データ・フレームを受信側コンピュータ
に結合された適切なポートに向ける。
【0006】従来技術では、アドレス/ポート・リスト
は予めルータに備えられているか、またはルータがアド
レス/ポート・リストを動的に形成する。そのようなア
ドレス/ポート・リストは、ルータ内に記憶され、デー
タ・フレームを受信したときにアクセスされる。次い
で、ルータは、データ・フレームの宛先アドレスを一致
が得られるまでアドレス/ポート・リスト内の各項目と
比較する。一般に、アドレス/ポート・リストの各新し
い探索は、アドレス/ポート・リストの「上部」から始
まり、一致が見つかるまで宛先アドレスを連続的に探索
する。アドレス/ポート・リスト内に非常に多数の宛先
アドレスがある場合、コンピュータ・ネットワーク内の
通信は、ルータにおけるこのネックのためにかなり速度
が落ちる。
は予めルータに備えられているか、またはルータがアド
レス/ポート・リストを動的に形成する。そのようなア
ドレス/ポート・リストは、ルータ内に記憶され、デー
タ・フレームを受信したときにアクセスされる。次い
で、ルータは、データ・フレームの宛先アドレスを一致
が得られるまでアドレス/ポート・リスト内の各項目と
比較する。一般に、アドレス/ポート・リストの各新し
い探索は、アドレス/ポート・リストの「上部」から始
まり、一致が見つかるまで宛先アドレスを連続的に探索
する。アドレス/ポート・リスト内に非常に多数の宛先
アドレスがある場合、コンピュータ・ネットワーク内の
通信は、ルータにおけるこのネックのためにかなり速度
が落ちる。
【0007】
【発明が解決しようとする課題】したがって、データ・
フレームがコンピュータ・ネットワーク内でより効率的
な形で経路指定されるようにフレーム・ヘッダを解析す
る改善された方法を提供することが望ましい。
フレームがコンピュータ・ネットワーク内でより効率的
な形で経路指定されるようにフレーム・ヘッダを解析す
る改善された方法を提供することが望ましい。
【0008】したがって、上記のことから、本発明の目
的は、データ処理の改善された方法およびシステムを提
供することである。
的は、データ処理の改善された方法およびシステムを提
供することである。
【0009】本発明の他の目的は、データ・パケットを
経路指定する改善された方法およびシステムを提供する
ことである。
経路指定する改善された方法およびシステムを提供する
ことである。
【0010】本発明の他の目的は、コンピュータ・ネッ
トワーク内でデータ・フレームを経路指定するフレーム
・ヘッダを解析する方法およびシステムを提供すること
である。
トワーク内でデータ・フレームを経路指定するフレーム
・ヘッダを解析する方法およびシステムを提供すること
である。
【0011】
【課題を解決するための手段】本発明の方法およびシス
テムによれば、まず、コンピュータ・ネットワークから
データ・フレームを受信する。次いで、データ・フレー
ムのフレーム・ヘッダを同じ長さの複数のテスト・ユニ
ットに分解する。その後、各テスト・ユニットにそれぞ
れリファレンス・パターン・フィールドおよびアクショ
ン・コード・ポインタ・フィールドを含むテスト・ベク
トルを割り当てる。各テスト・ベクトルを様々なテスト
・ブロックの対応するスロットに挿入することによって
多数のテスト・ブロックを構成する。最後に、これらの
様々なテスト・ブロックを使用して、探索ツリーを構成
する。各テスト・ブロックは、その中に含まれるテスト
・ベクトルによって互いに関連づけられる。
テムによれば、まず、コンピュータ・ネットワークから
データ・フレームを受信する。次いで、データ・フレー
ムのフレーム・ヘッダを同じ長さの複数のテスト・ユニ
ットに分解する。その後、各テスト・ユニットにそれぞ
れリファレンス・パターン・フィールドおよびアクショ
ン・コード・ポインタ・フィールドを含むテスト・ベク
トルを割り当てる。各テスト・ベクトルを様々なテスト
・ブロックの対応するスロットに挿入することによって
多数のテスト・ブロックを構成する。最後に、これらの
様々なテスト・ブロックを使用して、探索ツリーを構成
する。各テスト・ブロックは、その中に含まれるテスト
・ベクトルによって互いに関連づけられる。
【0012】本発明のすべての目的、特徴および利点
は、以下の詳細に書かれた説明から明らかになろう。
は、以下の詳細に書かれた説明から明らかになろう。
【0013】
【発明の実施の形態】本発明は、コンピュータ・ネット
ワーク内で外部通信用のデータ・パケットを使用する様
々なコンピュータ内で実施することができる。そのよう
なコンピュータは、例えばパーソナル・コンピュータ、
ミニコンピュータ、またはメインフレーム・コンピュー
タである。コンピュータ・ネットワークは、例えばロー
カルエリア・ネットワーク(LAN)または広域ネット
ワーク(WAN)である。
ワーク内で外部通信用のデータ・パケットを使用する様
々なコンピュータ内で実施することができる。そのよう
なコンピュータは、例えばパーソナル・コンピュータ、
ミニコンピュータ、またはメインフレーム・コンピュー
タである。コンピュータ・ネットワークは、例えばロー
カルエリア・ネットワーク(LAN)または広域ネット
ワーク(WAN)である。
【0014】以下の説明では、本発明を完全に理解でき
るように、ワード長、バイト長など、多数の特定の詳細
を示してある。しかしながら、本発明は、そのような特
定の詳細なしに実施できることが当業者には明らかであ
ろう。さらに、周知の回路は、本発明が不必要な詳細に
よって曖昧にならないようにブロック図の形で示してあ
る。さらに、タイミング考慮事項などの詳細は、そのよ
うな詳細が当技術分野において通常の技能を有する者の
技量の範囲内に入り、かつ本発明を完全に理解するため
に必要でない限り省略してある。
るように、ワード長、バイト長など、多数の特定の詳細
を示してある。しかしながら、本発明は、そのような特
定の詳細なしに実施できることが当業者には明らかであ
ろう。さらに、周知の回路は、本発明が不必要な詳細に
よって曖昧にならないようにブロック図の形で示してあ
る。さらに、タイミング考慮事項などの詳細は、そのよ
うな詳細が当技術分野において通常の技能を有する者の
技量の範囲内に入り、かつ本発明を完全に理解するため
に必要でない限り省略してある。
【0015】次に、図1を参照すると、本発明が使用さ
れる代表的なコンピュータ・ネットワーク100のブロ
ック図が示されている。図示のように、LAN10、L
AN11、およびLAN12は、ルータ102を介して
サーバ101に相互接続される。LAN10はノード1
11〜113を含み、LAN11はノード114〜11
6を含み、LAN12はノード117〜120を含む。
LAN内の各ノードがコンピュータ・ネットワーク10
0内で互いに通信しようとするとき、ルータ102は、
通信データを、パケットの形で、対応するLANの適切
な宛先ノードに効率的に向けることによってそのような
通信を容易にする。例えば、LAN11のノード114
がデータ・フレームをLAN12のノード120に送る
ことを望む場合、ノード114は、そのようなデータ・
フレームをノード120に関連する宛先アドレスととも
にルータ102に送信し、次いでルータ102は、ノー
ド114からデータ・フレームとともに受信した宛先ア
ドレスをそのメモリ内のアドレス/ポートのリストと比
較し、その後宛先アドレスとそのメモリ内に記載されて
いるアドレス/ポート対の1つとの一致が得られたとき
にデータ・フレームをノード120に送る。
れる代表的なコンピュータ・ネットワーク100のブロ
ック図が示されている。図示のように、LAN10、L
AN11、およびLAN12は、ルータ102を介して
サーバ101に相互接続される。LAN10はノード1
11〜113を含み、LAN11はノード114〜11
6を含み、LAN12はノード117〜120を含む。
LAN内の各ノードがコンピュータ・ネットワーク10
0内で互いに通信しようとするとき、ルータ102は、
通信データを、パケットの形で、対応するLANの適切
な宛先ノードに効率的に向けることによってそのような
通信を容易にする。例えば、LAN11のノード114
がデータ・フレームをLAN12のノード120に送る
ことを望む場合、ノード114は、そのようなデータ・
フレームをノード120に関連する宛先アドレスととも
にルータ102に送信し、次いでルータ102は、ノー
ド114からデータ・フレームとともに受信した宛先ア
ドレスをそのメモリ内のアドレス/ポートのリストと比
較し、その後宛先アドレスとそのメモリ内に記載されて
いるアドレス/ポート対の1つとの一致が得られたとき
にデータ・フレームをノード120に送る。
【0016】次に、図2を参照すると、図1のコンピュ
ータ・ネットワーク内でデータ・フレームを経路指定す
る従来技術の方法のハイレベル論理流れ図が示されてい
る。ステップ21で、ルータは、コンピュータ・ネット
ワーク内の様々なノードの1つから1つまたは複数のデ
ータ・フレームを受信する。次に、ステップ22で、ル
ータは、1つまたは複数のデータ・フレームとともに送
信された宛先アドレスを、ルータによって形成され、ル
ータ内に記憶されたアドレス/ポート・リスト内のすべ
てのアドレスと比較する。ステップ23で、ルータは、
宛先アドレスがアドレス/ポート・リスト内にあるポー
トのうち、当該宛先アドレスを受信したポートと同じポ
ートに関連しているか否かを決定する。関連している場
合、データ・フレームは、データ・フレームを送信した
のと同じノードに向けられるので、それらを経路指定す
る理由はない。したがって、ステップ24で、ルータ
は、受信したデータ・フレームを廃棄する。
ータ・ネットワーク内でデータ・フレームを経路指定す
る従来技術の方法のハイレベル論理流れ図が示されてい
る。ステップ21で、ルータは、コンピュータ・ネット
ワーク内の様々なノードの1つから1つまたは複数のデ
ータ・フレームを受信する。次に、ステップ22で、ル
ータは、1つまたは複数のデータ・フレームとともに送
信された宛先アドレスを、ルータによって形成され、ル
ータ内に記憶されたアドレス/ポート・リスト内のすべ
てのアドレスと比較する。ステップ23で、ルータは、
宛先アドレスがアドレス/ポート・リスト内にあるポー
トのうち、当該宛先アドレスを受信したポートと同じポ
ートに関連しているか否かを決定する。関連している場
合、データ・フレームは、データ・フレームを送信した
のと同じノードに向けられるので、それらを経路指定す
る理由はない。したがって、ステップ24で、ルータ
は、受信したデータ・フレームを廃棄する。
【0017】しかし、宛先アドレスがそれを受信した同
じポートに関連していない場合、ステップ25で、ルー
タは、宛先アドレスがアドレス/ポート・リスト内の他
のポートに関連しているか否かを決定する。関連してい
る場合、ステップ26で、ルータは、受信したデータ・
フレームを対応するポートに転送する。宛先アドレスが
他のポートに関連していない場合、ルータは、ステップ
27に示すように、受信したデータ・フレームをすべて
のポートに同報通信する。
じポートに関連していない場合、ステップ25で、ルー
タは、宛先アドレスがアドレス/ポート・リスト内の他
のポートに関連しているか否かを決定する。関連してい
る場合、ステップ26で、ルータは、受信したデータ・
フレームを対応するポートに転送する。宛先アドレスが
他のポートに関連していない場合、ルータは、ステップ
27に示すように、受信したデータ・フレームをすべて
のポートに同報通信する。
【0018】上述のように、アドレス/ポート・リスト
は、従来、対応するルータ・ポートに関連するアドレス
の順次リストとして生成されていた。そのような従来の
アドレス/ポート・リストでは、ルータがステップ23
および25を実施する場合、一致が見つかるまで受信し
た宛先アドレスをアドレス/ポート・リスト内のすべて
のアドレスと比較していた。コンピュータ・ネットワー
ク内のノードの数が非常に多い場合、そのような探索は
相当な時間を必要とする。アドレス/ポート・リスト内
の最後の項目で初めて一致が見つかった場合、または一
致が見つからない場合、受信したデータ・フレームが同
報通信されるこの探索方法に関連する最悪の場合が生じ
る。
は、従来、対応するルータ・ポートに関連するアドレス
の順次リストとして生成されていた。そのような従来の
アドレス/ポート・リストでは、ルータがステップ23
および25を実施する場合、一致が見つかるまで受信し
た宛先アドレスをアドレス/ポート・リスト内のすべて
のアドレスと比較していた。コンピュータ・ネットワー
ク内のノードの数が非常に多い場合、そのような探索は
相当な時間を必要とする。アドレス/ポート・リスト内
の最後の項目で初めて一致が見つかった場合、または一
致が見つからない場合、受信したデータ・フレームが同
報通信されるこの探索方法に関連する最悪の場合が生じ
る。
【0019】本発明は、アドレス/ポートを1つまたは
複数の探索ツリー内に記憶するより効率的なアドレス探
索技法を提供する。これらの探索ツリーは、受信アドレ
スを分割することから生じた複数のビット・グループを
用いて作成される。したがって、探索は、(着信データ
・フレームのフレーム・ヘッダからの)受信アドレスを
ビット・グループに分割し、これらのビット・グループ
を探索ツリーの様々なノードと連続的に比較することに
よって実施される。探索プロセス中、受信アドレスと探
索ツリーのエントリとの正確な一致を得ることなしに探
索ツリー内のリーフに到達する場合がある。そのような
場合、受信アドレスがソース・アドレスである場合、ソ
ース・アドレスからのビットを使用して、探索ツリーを
延長する。このプロセスは「学習」または「エントリ更
新」と呼ばれる。しかし、受信アドレスが宛先アドレス
である場合、宛先アドレスに対して探索ツリー内に正確
な一致が生じないことが決定され、宛先アドレスに関連
するデータ・フレームの同報通信が実施される。
複数の探索ツリー内に記憶するより効率的なアドレス探
索技法を提供する。これらの探索ツリーは、受信アドレ
スを分割することから生じた複数のビット・グループを
用いて作成される。したがって、探索は、(着信データ
・フレームのフレーム・ヘッダからの)受信アドレスを
ビット・グループに分割し、これらのビット・グループ
を探索ツリーの様々なノードと連続的に比較することに
よって実施される。探索プロセス中、受信アドレスと探
索ツリーのエントリとの正確な一致を得ることなしに探
索ツリー内のリーフに到達する場合がある。そのような
場合、受信アドレスがソース・アドレスである場合、ソ
ース・アドレスからのビットを使用して、探索ツリーを
延長する。このプロセスは「学習」または「エントリ更
新」と呼ばれる。しかし、受信アドレスが宛先アドレス
である場合、宛先アドレスに対して探索ツリー内に正確
な一致が生じないことが決定され、宛先アドレスに関連
するデータ・フレームの同報通信が実施される。
【0020】本発明の好ましい実施形態として、リファ
レンス・パターン(RP)は、学習すべきビットのパタ
ーン(RPプールに追加する場合)、または削除すべき
ビットのパターン(RPプールから削除する場合)であ
る。RPビットは、多数のテスト・ユニット(TU)に
分割される。各TU内に含まれるビットの数は、探索ツ
リーの好ましい分解能に応じて事前定義される。各TU
は、RP内のその関連位置に従って番号付けされる。テ
スト・ブロック(TB)は、探索パス情報を保持するた
めに使用されるユニットである。各TBは、一組のテス
ト・ベクトル(TV)を保持し、TB内に含まれるTV
の数は、使用されるTUのサイズによって決定される。
TVは、次のTBへのポインタ、次の探索ステップに使
用すべきTU番号、探索の継続のために一致すべきR
P、フラグおよびここまで一致すべきマスクRPのアク
ション・コード・ポインタなど、パターン探索に必要な
情報を保持する。パターン探索中、特定のTUのRPビ
ットは、探索を継続するためにTB内のどのTVを使用
するかを決定する。
レンス・パターン(RP)は、学習すべきビットのパタ
ーン(RPプールに追加する場合)、または削除すべき
ビットのパターン(RPプールから削除する場合)であ
る。RPビットは、多数のテスト・ユニット(TU)に
分割される。各TU内に含まれるビットの数は、探索ツ
リーの好ましい分解能に応じて事前定義される。各TU
は、RP内のその関連位置に従って番号付けされる。テ
スト・ブロック(TB)は、探索パス情報を保持するた
めに使用されるユニットである。各TBは、一組のテス
ト・ベクトル(TV)を保持し、TB内に含まれるTV
の数は、使用されるTUのサイズによって決定される。
TVは、次のTBへのポインタ、次の探索ステップに使
用すべきTU番号、探索の継続のために一致すべきR
P、フラグおよびここまで一致すべきマスクRPのアク
ション・コード・ポインタなど、パターン探索に必要な
情報を保持する。パターン探索中、特定のTUのRPビ
ットは、探索を継続するためにTB内のどのTVを使用
するかを決定する。
【0021】マスクIPアドレスとして、RPは、宛先
アドレスのサイズまでの任意の長さでよい。例えば、宛
先アドレスが長さ4バイト(32ビット)である場合、
RPは、長さ32ビットまでの任意のビット数でよい。
さらに、RP当たりのTUの数は、事前定義したTUサ
イズに依存する。したがって、長さ32ビットのRPの
場合、事前定義したTUが長さ1ビットである場合、R
Pは、32個のTUに分割される。しかし、事前定義し
たTUが長さ2ビットである場合、RPは、16個のT
Uに分割されるだけである。この例を続けると、1ビッ
トTUを使用した場合、TB内のTVの数はわずか2つ
である。一方、2ビットTUを使用した場合、TB内の
TVの数は4つである。本発明を説明するためには、2
ビットTUを選択することが好ましく、したがって開示
の残部ではTB当たりのTVの数は4つである。
アドレスのサイズまでの任意の長さでよい。例えば、宛
先アドレスが長さ4バイト(32ビット)である場合、
RPは、長さ32ビットまでの任意のビット数でよい。
さらに、RP当たりのTUの数は、事前定義したTUサ
イズに依存する。したがって、長さ32ビットのRPの
場合、事前定義したTUが長さ1ビットである場合、R
Pは、32個のTUに分割される。しかし、事前定義し
たTUが長さ2ビットである場合、RPは、16個のT
Uに分割されるだけである。この例を続けると、1ビッ
トTUを使用した場合、TB内のTVの数はわずか2つ
である。一方、2ビットTUを使用した場合、TB内の
TVの数は4つである。本発明を説明するためには、2
ビットTUを選択することが好ましく、したがって開示
の残部ではTB当たりのTVの数は4つである。
【0022】テスト・ベクトルの説明 次に、図3を参照すると、本発明の好ましい実施形態に
よる2つのテスト・ベクトルのブロック図が示されてい
る。テスト・ベクトル38は1ビットTUとともに使用
され、テスト・ベクトル39は2ビットTUとともに使
用される。図示のように、探索ツリー内で使用される両
方のテスト・ベクトル38、39は、同じフィールドを
有する。マスク・リファレンス・パターン・マーカ
(M)フィールド31を使用して、このテスト位置のと
ころに一致したRPが存在するかどうかを決定する。学
習プロセス中、RPがこのテスト・ユニットのところで
終了するときはいつでもMフィールド31がセットされ
る。マークされたフラグごとに、一致したRPのアクシ
ョン記述子の位置を示す対応するアクション・コード・
ポインタが「Mx AC PTR」フィールド内に存在
する。パターン探索(パターン一致プロセス)中、Mフ
ラグが検出されたときはいつでも、テスト・ベクトルの
アドレスおよびそのMフラグが保管される。パターン探
索の終了時に、これらの保管したアドレスおよびフラグ
を使用して、それらの対応するアクション・コード・ポ
インタをフレーム修正プロセスおよび再送信プロセスの
ために後戻りさせる。Mフィールド31内のビットの数
は、選択したTUサイズに等しい。上述のように、テス
ト・ベクトルの2つの可能なフォーマット、1ビットT
U構成用のテスト・ベクトル38内の1ビットMフィー
ルド、および2ビットTU構成用のテスト・ベクトル3
9内の2ビットMフィールド(一方のMビットは奇数ビ
ット境界RPを識別し、他方のMビットは偶数ビット境
界RPを識別する)が示されている。
よる2つのテスト・ベクトルのブロック図が示されてい
る。テスト・ベクトル38は1ビットTUとともに使用
され、テスト・ベクトル39は2ビットTUとともに使
用される。図示のように、探索ツリー内で使用される両
方のテスト・ベクトル38、39は、同じフィールドを
有する。マスク・リファレンス・パターン・マーカ
(M)フィールド31を使用して、このテスト位置のと
ころに一致したRPが存在するかどうかを決定する。学
習プロセス中、RPがこのテスト・ユニットのところで
終了するときはいつでもMフィールド31がセットされ
る。マークされたフラグごとに、一致したRPのアクシ
ョン記述子の位置を示す対応するアクション・コード・
ポインタが「Mx AC PTR」フィールド内に存在
する。パターン探索(パターン一致プロセス)中、Mフ
ラグが検出されたときはいつでも、テスト・ベクトルの
アドレスおよびそのMフラグが保管される。パターン探
索の終了時に、これらの保管したアドレスおよびフラグ
を使用して、それらの対応するアクション・コード・ポ
インタをフレーム修正プロセスおよび再送信プロセスの
ために後戻りさせる。Mフィールド31内のビットの数
は、選択したTUサイズに等しい。上述のように、テス
ト・ベクトルの2つの可能なフォーマット、1ビットT
U構成用のテスト・ベクトル38内の1ビットMフィー
ルド、および2ビットTU構成用のテスト・ベクトル3
9内の2ビットMフィールド(一方のMビットは奇数ビ
ット境界RPを識別し、他方のMビットは偶数ビット境
界RPを識別する)が示されている。
【0023】最終テスト・ベクトル(L)フィールド3
2を使用して、探索ツリーが終了する場所(すなわち、
探索パスの最後のテスト・ベクトル)を識別する。Lフ
ィールド32内のビットの数も選択したTUサイズに等
しい。1ビットTU構成では、ただ1つのビットがLフ
ィールド32内に必要である。2ビットTU構成では、
2つのビットがLフィールド32内に必要である(この
場合も、一方のLビットは奇数ビット境界RPを識別
し、他方のLビットは偶数ビット境界RPを識別す
る)。学習プロセス中、RPがこのテスト・ブロックの
ところで終了する場合、Mフラグを使用して、RPをマ
ークする(RPの最後のTU=CTU#、ただし、CT
U#は、TB内のTVを見つけ出すデコードとして使用
される現在のTUである)。それ以外の場合、(RPが
CTU#よりも長ければ)LフラグおよびNTU#を使
用して、RPをマークし、探索ツリーを終了する。実施
を簡単にするために、ただ1つのLフラグを所与のTV
内にセットすることができる。TB内で複数のRPをL
フラグでマークすることができる場合、探索ツリーを延
長し、Mフラグを使用して、いくつかのRPをマークす
る。パターン探索中にTV内にLフラグが検出された場
合、以下のイベントが行われる。
2を使用して、探索ツリーが終了する場所(すなわち、
探索パスの最後のテスト・ベクトル)を識別する。Lフ
ィールド32内のビットの数も選択したTUサイズに等
しい。1ビットTU構成では、ただ1つのビットがLフ
ィールド32内に必要である。2ビットTU構成では、
2つのビットがLフィールド32内に必要である(この
場合も、一方のLビットは奇数ビット境界RPを識別
し、他方のLビットは偶数ビット境界RPを識別す
る)。学習プロセス中、RPがこのテスト・ブロックの
ところで終了する場合、Mフラグを使用して、RPをマ
ークする(RPの最後のTU=CTU#、ただし、CT
U#は、TB内のTVを見つけ出すデコードとして使用
される現在のTUである)。それ以外の場合、(RPが
CTU#よりも長ければ)LフラグおよびNTU#を使
用して、RPをマークし、探索ツリーを終了する。実施
を簡単にするために、ただ1つのLフラグを所与のTV
内にセットすることができる。TB内で複数のRPをL
フラグでマークすることができる場合、探索ツリーを延
長し、Mフラグを使用して、いくつかのRPをマークす
る。パターン探索中にTV内にLフラグが検出された場
合、以下のイベントが行われる。
【0024】1.テスト・パターン(TP)(すなわ
ち、受信アドレス)とTV内のリファレンス・パターン
(RP)とを、正確に一致するように、NTU#フィー
ルド33内で定義されたテスト・ユニット番号およびL
フラグによるビット境界まで比較する。
ち、受信アドレス)とTV内のリファレンス・パターン
(RP)とを、正確に一致するように、NTU#フィー
ルド33内で定義されたテスト・ユニット番号およびL
フラグによるビット境界まで比較する。
【0025】2.TPとRPが一致した場合、NTB
PTRフィールド34内のデータをAC PTRフィー
ルド36として割り当てる。
PTRフィールド34内のデータをAC PTRフィー
ルド36として割り当てる。
【0026】3.次いで、すべてのAC PTRフィー
ルド36のアクション・コード・ポインタを分類し、さ
らにフレーム処理を行うためにフレーム処理ユニットに
送る。
ルド36のアクション・コード・ポインタを分類し、さ
らにフレーム処理を行うためにフレーム処理ユニットに
送る。
【0027】次テスト・ユニット番号(NTU#)フィ
ールド33内の値は、TPとTV内のRPとの間で一致
する必要があるビット・パターンの長さを保持する。N
TU#フィールド33内の「0」は、探索パスが終了し
たことを示す。マップされたTV内でMフラグがセット
されていない場合、TVスロットは空である。NTU#
=CTU#は、これが探索パス内の最後のTVであるこ
とを示す。このマップされたTV内には、Mフラグおよ
びLフラグの少なくとも一方がセットされたRPが存在
しなければならない。NTU#>CTU#かつLフラグ
がセットされないことは、このマップされたTVが、探
索を継続するための潜在的テスト・ノードであることを
示す。TU(NTU#−1)の長さ内のTPとRPの間
では(すなわちTPがTU(NTU#−1)よりも長い
場合すべてのビットは、探索を継続するために正確に一
致する必要がある。それ以外の場合、探索パスは終了す
る。NTU#>CTU#かつLフラグの1つがセットさ
れることは、これが探索における最後のTVであること
を示す。Lフラグがセットされた場合、TPとRPの間
でTU(NTU#)およびLフラグによって定義された
すべてのビットは、見つかったRPとみなすために正確
に一致しなければならない。
ールド33内の値は、TPとTV内のRPとの間で一致
する必要があるビット・パターンの長さを保持する。N
TU#フィールド33内の「0」は、探索パスが終了し
たことを示す。マップされたTV内でMフラグがセット
されていない場合、TVスロットは空である。NTU#
=CTU#は、これが探索パス内の最後のTVであるこ
とを示す。このマップされたTV内には、Mフラグおよ
びLフラグの少なくとも一方がセットされたRPが存在
しなければならない。NTU#>CTU#かつLフラグ
がセットされないことは、このマップされたTVが、探
索を継続するための潜在的テスト・ノードであることを
示す。TU(NTU#−1)の長さ内のTPとRPの間
では(すなわちTPがTU(NTU#−1)よりも長い
場合すべてのビットは、探索を継続するために正確に一
致する必要がある。それ以外の場合、探索パスは終了す
る。NTU#>CTU#かつLフラグの1つがセットさ
れることは、これが探索における最後のTVであること
を示す。Lフラグがセットされた場合、TPとRPの間
でTU(NTU#)およびLフラグによって定義された
すべてのビットは、見つかったRPとみなすために正確
に一致しなければならない。
【0028】NTB PTRフィールド34内の値は、
次のTB用のベース・アドレスとして使用される。TP
のTU(NTU#)ビット・パターンは、パターン探索
を継続するために次のTVを見つけ出すオフセットとし
て使用される。Lフラグがセットされた場合、NTB
PTRフィールド34は、一致したRPのアクション・
コード・ポインタを保持する。Lフラグがセットされな
い場合、NTB PTRは、次のTBのアドレス・ポイ
ンタを保持する。
次のTB用のベース・アドレスとして使用される。TP
のTU(NTU#)ビット・パターンは、パターン探索
を継続するために次のTVを見つけ出すオフセットとし
て使用される。Lフラグがセットされた場合、NTB
PTRフィールド34は、一致したRPのアクション・
コード・ポインタを保持する。Lフラグがセットされな
い場合、NTB PTRは、次のTBのアドレス・ポイ
ンタを保持する。
【0029】リファレンス・パターン(RP)フィール
ド35は、パターン探索中にビット比較のために使用さ
れるRPを保持し、TB内の各Mフラグごとに、一致ア
クション・コード・ポインタ(Mx AC PTR)フ
ィールド36内に記憶された対応するアクション・コー
ド・ポインタを有する。
ド35は、パターン探索中にビット比較のために使用さ
れるRPを保持し、TB内の各Mフラグごとに、一致ア
クション・コード・ポインタ(Mx AC PTR)フ
ィールド36内に記憶された対応するアクション・コー
ド・ポインタを有する。
【0030】好ましい実施形態として、着信テスト・パ
ターン(TP)(すなわち、受信アドレス)が到着した
とき、TPの長さおよびビット・パターンをパターン突
合せエンジンに送る。パターン突合せエンジンは、TP
ビットおよびテスト・ベクトルを使用して、一致するR
Pを見つけ出すために探索ツリー中を進む。探索ツリー
から得られたテスト・ベクトル情報および(TUの形
の)TPビットを使用して、RP探索の継続を決定す
る。すべての一致したRPを探索パスおよびそれらの対
応するアクション・コード・ポインタとともに一時的に
記憶する。それらは、フレーム処理のためにパターン探
索の終了時に使用される。
ターン(TP)(すなわち、受信アドレス)が到着した
とき、TPの長さおよびビット・パターンをパターン突
合せエンジンに送る。パターン突合せエンジンは、TP
ビットおよびテスト・ベクトルを使用して、一致するR
Pを見つけ出すために探索ツリー中を進む。探索ツリー
から得られたテスト・ベクトル情報および(TUの形
の)TPビットを使用して、RP探索の継続を決定す
る。すべての一致したRPを探索パスおよびそれらの対
応するアクション・コード・ポインタとともに一時的に
記憶する。それらは、フレーム処理のためにパターン探
索の終了時に使用される。
【0031】リファレンス・パターン学習プロセス テスト・ブロック(TB)内のテスト・ベクトル(T
V)は、すべてのTBを結合して、様々な探索パスを形
成する情報を保持する。TB内の一致アクション・コー
ド・ポインタ(Mx AC PTR)フィールドを使用
して、TB内のすべてのMフラグ付きRPについてアク
ション・コード位置を記憶する。
V)は、すべてのTBを結合して、様々な探索パスを形
成する情報を保持する。TB内の一致アクション・コー
ド・ポインタ(Mx AC PTR)フィールドを使用
して、TB内のすべてのMフラグ付きRPについてアク
ション・コード位置を記憶する。
【0032】着信テスト・パターン(TP)がRP探索
のために到着したとき、パターン突合せエンジンは、R
Pビット・パターンおよび探索ツリーの開始点を使用し
て、探索パス中を進む。パターン探索中、(探索パスに
沿ったTV内でMまたはLのフラグを付けられた)一致
したRPを記録する。パターン探索の終了時に、記録さ
れたRPの情報をフレームのフィルタリングまたは修正
および再送信のためにフレーム処理エンジンに送る。
のために到着したとき、パターン突合せエンジンは、R
Pビット・パターンおよび探索ツリーの開始点を使用し
て、探索パス中を進む。パターン探索中、(探索パスに
沿ったTV内でMまたはLのフラグを付けられた)一致
したRPを記録する。パターン探索の終了時に、記録さ
れたRPの情報をフレームのフィルタリングまたは修正
および再送信のためにフレーム処理エンジンに送る。
【0033】上述のように、TBは、探索ツリーを作成
するために使用される。RP学習プロセス中、新しいR
Pが到着したとき、最初のステップは、探索を行い、こ
の「新しい」RPがRPプール内にすでに存在するかど
うかを確かめることである。探索が完了した後、一致し
たRPが見つかった場合、一致したRPのアクション・
コードのみを更新する必要がある。それ以外の場合、新
しいRPおよびその中に含まれるアクション・コードを
有するように探索ツリーを延長する。探索を終了する前
に検査すべき最後のTBは、新しいRPを収容するため
に必要な情報を保持する。
するために使用される。RP学習プロセス中、新しいR
Pが到着したとき、最初のステップは、探索を行い、こ
の「新しい」RPがRPプール内にすでに存在するかど
うかを確かめることである。探索が完了した後、一致し
たRPが見つかった場合、一致したRPのアクション・
コードのみを更新する必要がある。それ以外の場合、新
しいRPおよびその中に含まれるアクション・コードを
有するように探索ツリーを延長する。探索を終了する前
に検査すべき最後のTBは、新しいRPを収容するため
に必要な情報を保持する。
【0034】各TBは、学習したすべてのRPの探索ツ
リー・パスおよび(アクション・コード・ポインタ、長
さなど)パラメータを記憶する情報ブロックである。n
個のRPを記録するために、TBの最大数、max_T
B max_TB=(n−1)*TB+(startTB) が必要である。
リー・パスおよび(アクション・コード・ポインタ、長
さなど)パラメータを記憶する情報ブロックである。n
個のRPを記録するために、TBの最大数、max_T
B max_TB=(n−1)*TB+(startTB) が必要である。
【0035】探索ツリーを形成するために使用されない
TBは、「自由な」TBである。すべての「自由な」T
Bは、結合されて、自由なTB連鎖を形成する。RP更
新エンジンは、学習中に、自由なTBプールから必要に
応じてTBを得ることができる。(自由なTB内の第1
のTVのNTUptrは、自由なTBを結合する(次の
自由なTBを示す)ポインタとして使用される)。自由
なTB連鎖の「頭部」および「尾部」は、固定の位置に
記録される。自由なTBがとられるたびに、「頭部」ポ
インタが更新される。また、(RP削除プロセスから)
TBが自由になったとき、自由なTBは、自由なTB連
鎖の尾部に結合され、「尾部」ポインタが更新される。
TBは、「自由な」TBである。すべての「自由な」T
Bは、結合されて、自由なTB連鎖を形成する。RP更
新エンジンは、学習中に、自由なTBプールから必要に
応じてTBを得ることができる。(自由なTB内の第1
のTVのNTUptrは、自由なTBを結合する(次の
自由なTBを示す)ポインタとして使用される)。自由
なTB連鎖の「頭部」および「尾部」は、固定の位置に
記録される。自由なTBがとられるたびに、「頭部」ポ
インタが更新される。また、(RP削除プロセスから)
TBが自由になったとき、自由なTBは、自由なTB連
鎖の尾部に結合され、「尾部」ポインタが更新される。
【0036】次に、図4を参照すると、本発明の好まし
い実施形態によるリファレンス・パターンを学習する方
法のハイレベル論理流れ図が示されている。最初に、ス
テップ41に示すように、自由なTB内のすべてのTV
をクリアし、すべての自由なTBエントリを連結する。
さらに、ステップ42に示すように、すべてのRP−A
Cバッファをクリアし、またすべての自由なRP−AC
バッファを連結する。これで初期設定プロセスが完了
し、リファレンス・パターンを学習する方法が開始でき
るようになる。
い実施形態によるリファレンス・パターンを学習する方
法のハイレベル論理流れ図が示されている。最初に、ス
テップ41に示すように、自由なTB内のすべてのTV
をクリアし、すべての自由なTBエントリを連結する。
さらに、ステップ42に示すように、すべてのRP−A
Cバッファをクリアし、またすべての自由なRP−AC
バッファを連結する。これで初期設定プロセスが完了
し、リファレンス・パターンを学習する方法が開始でき
るようになる。
【0037】新しい着信RP(NRP)が到着し、かつ
RPプールがいっぱいでない場合、ステップ43に示す
ように、正確に一致したRPを探索する。以下の状態の
1つが発生した場合、探索は終了する。 1.RPが見つかった 2.RPが見つからない、NRPパターンが検査すべき
最後の(現在の)TB(TU(NRP=CTU#)のと
ころで終了した。ただし、CTU#は、探索を終了する
前にテストした最後の(現在の)TB TU#である。 3.RPが見つからない、TV(NRP)がTB内の
「空の」TVスロット内にマップされた、TU(NR
P)>CTU# 4.RPが見つからない、RPがNRPのサブセットで
ある(NRPがRPよりも長い) 5.RPが見つからない、NRPがRPのサブセットで
ある(NRPがRPよりも短い) 6.RPが見つからない、NRPおよびRP(NTU#
−1)ビット・パターンが一致しない
RPプールがいっぱいでない場合、ステップ43に示す
ように、正確に一致したRPを探索する。以下の状態の
1つが発生した場合、探索は終了する。 1.RPが見つかった 2.RPが見つからない、NRPパターンが検査すべき
最後の(現在の)TB(TU(NRP=CTU#)のと
ころで終了した。ただし、CTU#は、探索を終了する
前にテストした最後の(現在の)TB TU#である。 3.RPが見つからない、TV(NRP)がTB内の
「空の」TVスロット内にマップされた、TU(NR
P)>CTU# 4.RPが見つからない、RPがNRPのサブセットで
ある(NRPがRPよりも長い) 5.RPが見つからない、NRPがRPのサブセットで
ある(NRPがRPよりも短い) 6.RPが見つからない、NRPおよびRP(NTU#
−1)ビット・パターンが一致しない
【0038】次いで、ステップ44に示すように、RP
が見つかったか否かを決定する。RPが見つかった場
合、ステップ45に示すように、一致したRPのアクシ
ョン・コード記述子をNRPアクション・コード記述子
と交換する。これで学習プロセスが終了する。
が見つかったか否かを決定する。RPが見つかった場
合、ステップ45に示すように、一致したRPのアクシ
ョン・コード記述子をNRPアクション・コード記述子
と交換する。これで学習プロセスが終了する。
【0039】しかし、RPが見つからない場合、ステッ
プ46に示すように、(RP−ACバッファ・プールか
ら)RP−ACバッファを得、NRP AC記述子をR
P−ACバッファ内に保管し、NRP挿入プロセスのた
めにNRP−ACバッファ・ポインタ(NRP−AC−
ptr)を保管することによってNRPのアクション・
コード記述子を保管する。ステップ47で、NRPパタ
ーンがこの点(すなわち、TB(TU(NRP)=TU
(C))のところで終了したか否かを決定する。NRP
パターンが終了している場合、ステップ48に示すよう
に、TV内でNRPをMフラグRPとしてマークし、N
RP−AC−ptrを適切なTB位置に記憶することに
よってTV(TU(NRP))に関連するTVを修正す
る。TB内の残りのフィールドは不変である。これで学
習プロセスが終了する。
プ46に示すように、(RP−ACバッファ・プールか
ら)RP−ACバッファを得、NRP AC記述子をR
P−ACバッファ内に保管し、NRP挿入プロセスのた
めにNRP−ACバッファ・ポインタ(NRP−AC−
ptr)を保管することによってNRPのアクション・
コード記述子を保管する。ステップ47で、NRPパタ
ーンがこの点(すなわち、TB(TU(NRP)=TU
(C))のところで終了したか否かを決定する。NRP
パターンが終了している場合、ステップ48に示すよう
に、TV内でNRPをMフラグRPとしてマークし、N
RP−AC−ptrを適切なTB位置に記憶することに
よってTV(TU(NRP))に関連するTVを修正す
る。TB内の残りのフィールドは不変である。これで学
習プロセスが終了する。
【0040】しかし、NRPパターンが終了していない
場合、ステップ49に示すように、マップしたTVスロ
ットが「空の」スロットであるか否かを決定する。マッ
プしたTVスロットが「空の」スロットである場合、ス
テップ50に示すように、NRPをLフラグRPとして
マークし、TV(TU(NRP))=(0、L(NR
P)、TU(NRP)、NRP−AC−ptr、NR
P)に設定し、次いでTV(TU(NRP))をマップ
した空のTVスロットに書き込むことによってこのTB
内のTV(NRP)を更新する。これで学習プロセスが
終了する。
場合、ステップ49に示すように、マップしたTVスロ
ットが「空の」スロットであるか否かを決定する。マッ
プしたTVスロットが「空の」スロットである場合、ス
テップ50に示すように、NRPをLフラグRPとして
マークし、TV(TU(NRP))=(0、L(NR
P)、TU(NRP)、NRP−AC−ptr、NR
P)に設定し、次いでTV(TU(NRP))をマップ
した空のTVスロットに書き込むことによってこのTB
内のTV(NRP)を更新する。これで学習プロセスが
終了する。
【0041】それ以外の場合、マップしたTVスロット
が「空の」スロットでない場合、ステップ51に示すよ
うに、自由なTB連鎖から自由なTBを得、(「次の」
自由なTBを示す)自由なTB「頭部」ポインタを更新
し、新たに得られたTBのポインタを後のNRP挿入プ
ロセスのために保管する。さらに、ステップ52に示す
ように、NRPとRP(NTU#)が互いにサブセット
であるか否かを決定する。NRPとRP(NTU#)が
互いにサブセットである場合、ステップ53に示すよう
に、NRPがRP(NTU#)よりも長いか否かをもう
一度決定する。NRPがRP(NTU#)よりも長い場
合、ステップ54に示すように、次のようにRPをMフ
ラグ・エントリとしてマークし、NRPをLフラグ・エ
ントリとしてマークすることによって新しいTBをNR
P挿入のために準備する。 1.TV(TU(RP))=(M(RP)、L(NR
P)、TU(NRP)、NRP−AC−ptr、NR
P) (RPパターン・ビットおよびTUサイズに応じて、新
しいTB(NTB)内でRPをMフラグ・エントリとし
てマークするために複数のTVを修正する必要がある) RP情報は、TB(CTU#)内のTV(TU(R
P))内で得られる。 2.M(RP)−AC−ptr=TB(CTU#)内の
(TV(TU(RP))内で得られる)RP−AC−p
tr 3.TU(RP)=TU(k)とする。
が「空の」スロットでない場合、ステップ51に示すよ
うに、自由なTB連鎖から自由なTBを得、(「次の」
自由なTBを示す)自由なTB「頭部」ポインタを更新
し、新たに得られたTBのポインタを後のNRP挿入プ
ロセスのために保管する。さらに、ステップ52に示す
ように、NRPとRP(NTU#)が互いにサブセット
であるか否かを決定する。NRPとRP(NTU#)が
互いにサブセットである場合、ステップ53に示すよう
に、NRPがRP(NTU#)よりも長いか否かをもう
一度決定する。NRPがRP(NTU#)よりも長い場
合、ステップ54に示すように、次のようにRPをMフ
ラグ・エントリとしてマークし、NRPをLフラグ・エ
ントリとしてマークすることによって新しいTBをNR
P挿入のために準備する。 1.TV(TU(RP))=(M(RP)、L(NR
P)、TU(NRP)、NRP−AC−ptr、NR
P) (RPパターン・ビットおよびTUサイズに応じて、新
しいTB(NTB)内でRPをMフラグ・エントリとし
てマークするために複数のTVを修正する必要がある) RP情報は、TB(CTU#)内のTV(TU(R
P))内で得られる。 2.M(RP)−AC−ptr=TB(CTU#)内の
(TV(TU(RP))内で得られる)RP−AC−p
tr 3.TU(RP)=TU(k)とする。
【0042】NRPがRP(NTU#)よりも短い場
合、ステップ55に示すように、NRPをMフラグ・エ
ントリとしてマークし、RPをLフラグ・エントリとし
てマークすることによってNTBをNRP挿入のために
準備する。 1.TV(TU(NRP))=(M(NRP)、L(R
P)、TU(RP)、RP−AC−ptr、RP) (NRPパターン・ビットおよびTUサイズに応じて、
NTB内でNRPをMフラグ・エントリとしてマークす
るために複数のTVを修正する必要がある) RP情報は、TB(CTU#)内のTV(TU(R
P))内で得られる。 2.(TV(TU(RP))内で得られる)M(NR
P)−AC−ptrをNTB内の適切なMRP−ptr
位置のところで更新する 3.TU(NRP)=TU(k)とする。
合、ステップ55に示すように、NRPをMフラグ・エ
ントリとしてマークし、RPをLフラグ・エントリとし
てマークすることによってNTBをNRP挿入のために
準備する。 1.TV(TU(NRP))=(M(NRP)、L(R
P)、TU(RP)、RP−AC−ptr、RP) (NRPパターン・ビットおよびTUサイズに応じて、
NTB内でNRPをMフラグ・エントリとしてマークす
るために複数のTVを修正する必要がある) RP情報は、TB(CTU#)内のTV(TU(R
P))内で得られる。 2.(TV(TU(RP))内で得られる)M(NR
P)−AC−ptrをNTB内の適切なMRP−ptr
位置のところで更新する 3.TU(NRP)=TU(k)とする。
【0043】ステップ52から、NRPとRP(NTU
#)が互いにサブセットでない場合、ステップ56に示
すように、RPとNRPを比較し、最初のTU、例えば
TU(d)を見つけ出し、ビット・パターンを異ならせ
ることによって、そのビット・パターンがRPとNRP
の間で異なる最下位TUを見つける。さらに、ステップ
57に示すように、次のようにNRPをLフラグ・エン
トリとしてマークし、RP(NTU#)情報をコピーす
ることによってNTBをNRP挿入のために準備する。 1.TV(TU(NRP(d)))=(0、L(NR
P)、TU(NRP)、NRP−AC−ptr、NR
P) 2.TV(TU(RP(d)))=(0、xx、xx、
xx、xx) RP情報は、次のようにしてTB(CTU#)内のTV
(TU(RP(CTU#)))内で得られる。 a.TV(TU(RP(CTU#)))をコピーする b.Mフラグ・フィールド(MフラグおよびMRP−A
C−ptrフィールド)を遮断する c.TV(TU(NRP(d)))TVスロットをNT
B内に書き込む TV(TU(NRP(d)))は、NRPの「d」テス
ト・ユニット・ビット・パターンによって識別されるテ
スト・ベクトルである。 3.TU(d)=TU(k)とする。
#)が互いにサブセットでない場合、ステップ56に示
すように、RPとNRPを比較し、最初のTU、例えば
TU(d)を見つけ出し、ビット・パターンを異ならせ
ることによって、そのビット・パターンがRPとNRP
の間で異なる最下位TUを見つける。さらに、ステップ
57に示すように、次のようにNRPをLフラグ・エン
トリとしてマークし、RP(NTU#)情報をコピーす
ることによってNTBをNRP挿入のために準備する。 1.TV(TU(NRP(d)))=(0、L(NR
P)、TU(NRP)、NRP−AC−ptr、NR
P) 2.TV(TU(RP(d)))=(0、xx、xx、
xx、xx) RP情報は、次のようにしてTB(CTU#)内のTV
(TU(RP(CTU#)))内で得られる。 a.TV(TU(RP(CTU#)))をコピーする b.Mフラグ・フィールド(MフラグおよびMRP−A
C−ptrフィールド)を遮断する c.TV(TU(NRP(d)))TVスロットをNT
B内に書き込む TV(TU(NRP(d)))は、NRPの「d」テス
ト・ユニット・ビット・パターンによって識別されるテ
スト・ベクトルである。 3.TU(d)=TU(k)とする。
【0044】最後に、ステップ58で、探索を終了する
前に実行された最後のTB(TB(CTU#))内のT
V(TU(RP(CTU#)))のNTU#およびNT
U−ptrを、TV(TU(RP(CTU#)))=
(xx、L(RP)=0、NTU#=TU(k)、NT
U−ptr=(新しいTBptr)、xx)の場合のよ
うに、NTBを示すように修正することによって新しい
TB(NTB)を探索パス内に挿入する。ただし、「x
x」は、不変のフィールドである。これで学習プロセス
が終了する。
前に実行された最後のTB(TB(CTU#))内のT
V(TU(RP(CTU#)))のNTU#およびNT
U−ptrを、TV(TU(RP(CTU#)))=
(xx、L(RP)=0、NTU#=TU(k)、NT
U−ptr=(新しいTBptr)、xx)の場合のよ
うに、NTBを示すように修正することによって新しい
TB(NTB)を探索パス内に挿入する。ただし、「x
x」は、不変のフィールドである。これで学習プロセス
が終了する。
【0045】次に、図5および図6を参照すると、図4
に示される学習プロセスによる複数の例示的なリファレ
ンス・パターン挿入の絵画図が示されている。RP
(1、m)が到着したとき、それを最初のTVをフェッ
チし、次いでRPが「空の」TVスロットにマップされ
たことを示す。前のRPの探索が終了し、RPのアクシ
ョン・コード記述子を保管し、新しいTV(TV=
(0、L、RP(1、m)、TU(m)、RP−1 A
C−ptr);RP−1 AC−ptrはAC位置を示
す)を生成し、TU(1)RP(1)位置、例えばRP
のTU(1)「01」に保管する。
に示される学習プロセスによる複数の例示的なリファレ
ンス・パターン挿入の絵画図が示されている。RP
(1、m)が到着したとき、それを最初のTVをフェッ
チし、次いでRPが「空の」TVスロットにマップされ
たことを示す。前のRPの探索が終了し、RPのアクシ
ョン・コード記述子を保管し、新しいTV(TV=
(0、L、RP(1、m)、TU(m)、RP−1 A
C−ptr);RP−1 AC−ptrはAC位置を示
す)を生成し、TU(1)RP(1)位置、例えばRP
のTU(1)「01」に保管する。
【0046】RP(2、h)が到着したとき、再びそれ
を最初のTVフェッチの後でTU(1)内の空のTVス
ロットにマップする。この場合も、AC記述子を保管
し、新しいTVを生成し、そのTU(1)TVスロッ
ト、例えば「11」スロット内に保管する。
を最初のTVフェッチの後でTU(1)内の空のTVス
ロットにマップする。この場合も、AC記述子を保管
し、新しいTVを生成し、そのTU(1)TVスロッ
ト、例えば「11」スロット内に保管する。
【0047】RP(3、n)が到着したとき、RP
(3、n)およびRP(1、m)がそれらの最初の6つ
のTU上のビット・パターンを有すると仮定すると、T
U(7)は、2つのRP間の異なるビット・パターンを
保持する最初のTUである。明らかに、最初のTVの後
でRP(1、m)とRP(3、n)を比較したとき、探
索がRP一致なしでTU(1)のところで終了すること
が示される。この場合、探索パス内にRP(3、n)を
追加する以下の複数のステップを行う。 1.RP(3、n)のAC記述子を保管する 2.新しいTUブロックを得る 3.RP−1とRP−3を区別することができる最初の
TUを見つける。この場合、それはTU(7)である。 4.TV(RP(1))を新しいTU位置TU(RP
(1、7))RP−1TU(7)ビット・パターンにデ
コードとしてコピーする 5.RP−3に対して新しいTV、TV=(0、L、R
P(3、n)、TU(n)、RP−3 AC−ptr)
を生成し、新しいTU位置TU(RP(3、7))に保
管する 6.TV(RP(1、1))をTV(RP(1、1))
=(0、0、RP(1、m)、TU(7)、「新しいT
U(7)−ptr)に修正することによって新しいTU
を探索パスに結合する。
(3、n)およびRP(1、m)がそれらの最初の6つ
のTU上のビット・パターンを有すると仮定すると、T
U(7)は、2つのRP間の異なるビット・パターンを
保持する最初のTUである。明らかに、最初のTVの後
でRP(1、m)とRP(3、n)を比較したとき、探
索がRP一致なしでTU(1)のところで終了すること
が示される。この場合、探索パス内にRP(3、n)を
追加する以下の複数のステップを行う。 1.RP(3、n)のAC記述子を保管する 2.新しいTUブロックを得る 3.RP−1とRP−3を区別することができる最初の
TUを見つける。この場合、それはTU(7)である。 4.TV(RP(1))を新しいTU位置TU(RP
(1、7))RP−1TU(7)ビット・パターンにデ
コードとしてコピーする 5.RP−3に対して新しいTV、TV=(0、L、R
P(3、n)、TU(n)、RP−3 AC−ptr)
を生成し、新しいTU位置TU(RP(3、7))に保
管する 6.TV(RP(1、1))をTV(RP(1、1))
=(0、0、RP(1、m)、TU(7)、「新しいT
U(7)−ptr)に修正することによって新しいTU
を探索パスに結合する。
【0048】RP(4、p)が到着したとき、RP−4
とRP−1はTU(5)のところで異なり、探索はTV
(RP(1、1))比較の後で終了する。RP(3、
n)を挿入する場合と同様に、以下のステップを行う。 1.RP(4、n)のAC記述子を保管する 2.新しいTUブロックを得る 3.RP−1とRP−4を区別することができる最初の
TUを見つける。この場合、それはTU(5)である。 4.TV(RP(1))を新しいTU位置TU(RP
(1、5))RP−1TU(5)ビット・パターンにデ
コードとしてコピーする 5.RP−4に対して新しいTV、TV=(0、L、R
P(4、p)、TU(n)、RP−4 AC−ptr)
を生成し、新しいTU位置TU(RP(4、5))に保
管する 6.TV(RP(1、1))をTV(RP(1、1))
=(0、0、RP(1、m)、TU(5)、「新しいT
U(5)−ptr)に修正することによって新しいTU
を探索パスに結合する。
とRP−1はTU(5)のところで異なり、探索はTV
(RP(1、1))比較の後で終了する。RP(3、
n)を挿入する場合と同様に、以下のステップを行う。 1.RP(4、n)のAC記述子を保管する 2.新しいTUブロックを得る 3.RP−1とRP−4を区別することができる最初の
TUを見つける。この場合、それはTU(5)である。 4.TV(RP(1))を新しいTU位置TU(RP
(1、5))RP−1TU(5)ビット・パターンにデ
コードとしてコピーする 5.RP−4に対して新しいTV、TV=(0、L、R
P(4、p)、TU(n)、RP−4 AC−ptr)
を生成し、新しいTU位置TU(RP(4、5))に保
管する 6.TV(RP(1、1))をTV(RP(1、1))
=(0、0、RP(1、m)、TU(5)、「新しいT
U(5)−ptr)に修正することによって新しいTU
を探索パスに結合する。
【0049】RP−5は9ビット・パターンであり、9
番目のビットは「1」であり、それはRP−1内の最初
の9ビットと同じである。RP−5が到着したとき、そ
れはTV(RP−5、1)テスト(TS(RP−1、
4)=TS(RP−4、4))を送る。探索は継続す
る。しかし、TV(RP−5、5)を処理したとき、R
P−5がそのTUを使い尽くすので探索は終了する。T
V(RP−5、5)を検査することによって、RP−5
に対応するMフラグがセットされることはない。言い換
えれば、探索中にRP−5が一致することはない。した
がって、RP−5を探索パス中に挿入する以下のステッ
プを行う必要がある。 1.RP(5、5.1)のAC記述子を保管する 2.RP−5は「奇数の」TU(5)境界で終了するの
で、MフラグおよびRP−5ACポインタが含まれるよ
うに、RP−5に対応する両方のTV(RP5、5.
1)を修正する。(RP−5が10ビットを有する場
合、1つのTV(RP−5、5)を修正するだけでよ
い)。RPが新しいRPと正確に一致する場合、RP
ACを交換するだけでよい。
番目のビットは「1」であり、それはRP−1内の最初
の9ビットと同じである。RP−5が到着したとき、そ
れはTV(RP−5、1)テスト(TS(RP−1、
4)=TS(RP−4、4))を送る。探索は継続す
る。しかし、TV(RP−5、5)を処理したとき、R
P−5がそのTUを使い尽くすので探索は終了する。T
V(RP−5、5)を検査することによって、RP−5
に対応するMフラグがセットされることはない。言い換
えれば、探索中にRP−5が一致することはない。した
がって、RP−5を探索パス中に挿入する以下のステッ
プを行う必要がある。 1.RP(5、5.1)のAC記述子を保管する 2.RP−5は「奇数の」TU(5)境界で終了するの
で、MフラグおよびRP−5ACポインタが含まれるよ
うに、RP−5に対応する両方のTV(RP5、5.
1)を修正する。(RP−5が10ビットを有する場
合、1つのTV(RP−5、5)を修正するだけでよ
い)。RPが新しいRPと正確に一致する場合、RP
ACを交換するだけでよい。
【0050】リファレンス・パターン削除プロセスリフ
ァレンス・パターン削除プロセスによってリファレンス
・パターン(RP)をRPプールから削除する。削除R
P(DRP)が到着したとき、削除プロセス・エンジン
は、まず、正確に一致したDRPについてRPプールを
探索する。次いで、削除プロセスは、DRPがRPプー
ル内に見つかった場合、DRPを除去し、探索パスを
「掃除」する。それ以外の場合、リファレンス・パター
ン削除プロセスは、それ以上動作せずに終了する。
ァレンス・パターン削除プロセスによってリファレンス
・パターン(RP)をRPプールから削除する。削除R
P(DRP)が到着したとき、削除プロセス・エンジン
は、まず、正確に一致したDRPについてRPプールを
探索する。次いで、削除プロセスは、DRPがRPプー
ル内に見つかった場合、DRPを除去し、探索パスを
「掃除」する。それ以外の場合、リファレンス・パター
ン削除プロセスは、それ以上動作せずに終了する。
【0051】最後の2つのTBおよびそれらのTV内容
は、DRP探索中に保管され、DRP削除を実行する場
合に使用される。削除プロセスを説明するために使用す
る略語を次に示す。 TB(CTU#):DRP探索を終了する前に実行すべ
き最後の(現在の)TB CTU#:探索中にTB(CTU#)内のTVを選択す
るアドレス・デコードとして使用されるTU番号 TB(PTU#):TB(CTU#)の前に実行される
TB PTU#:探索中にTB(PTU#)内のTVを選択す
るアドレス・デコードとして使用されるTU番号 TV(TU(DRP(CTU#))):DRP探索中に
テストすべきTB(CTU#)内のTV TV(TU(DRP(PTU#))):DRP探索中に
テストすべきTB(PTU#)内のTV。
は、DRP探索中に保管され、DRP削除を実行する場
合に使用される。削除プロセスを説明するために使用す
る略語を次に示す。 TB(CTU#):DRP探索を終了する前に実行すべ
き最後の(現在の)TB CTU#:探索中にTB(CTU#)内のTVを選択す
るアドレス・デコードとして使用されるTU番号 TB(PTU#):TB(CTU#)の前に実行される
TB PTU#:探索中にTB(PTU#)内のTVを選択す
るアドレス・デコードとして使用されるTU番号 TV(TU(DRP(CTU#))):DRP探索中に
テストすべきTB(CTU#)内のTV TV(TU(DRP(PTU#))):DRP探索中に
テストすべきTB(PTU#)内のTV。
【0052】次に、図7を参照すると、本発明の好まし
い実施形態による探索ツリーからリファレンス・パター
ンを削除する方法のハイレベル論理流れ図が示されてい
る。削除すべきRP(DRP)を受け取った後、ステッ
プ61に示すように、RPプール内の正確に一致したR
Pを探索する(RP一致プロセスを使用して、正確に一
致したDRPを捜す)。ステップ62に示すように、D
RPが見つかったか否かを決定する。DRPが見つから
なかった場合、削除プロセスは終了する。
い実施形態による探索ツリーからリファレンス・パター
ンを削除する方法のハイレベル論理流れ図が示されてい
る。削除すべきRP(DRP)を受け取った後、ステッ
プ61に示すように、RPプール内の正確に一致したR
Pを探索する(RP一致プロセスを使用して、正確に一
致したDRPを捜す)。ステップ62に示すように、D
RPが見つかったか否かを決定する。DRPが見つから
なかった場合、削除プロセスは終了する。
【0053】しかし、DRPが見つかった場合、ステッ
プ63に示すように、TB(CTU#)内のTV(TU
(CTU#))内のDRPエントリ(すなわち、実行さ
れた最後のTB)を遮断する。DRPがMフラグ・エン
トリの場合、TV内のMフラグを遮断する。しかし、D
RPがLフラグ・エントリの場合、TV内のMフラグ・
フィールドに触れることなく、TV内のLフラグ、NT
U#、RP−AC−ptr、RPをすべて遮断する。そ
の後、ステップ64で、DRP−ACバッファを自由な
RP−ACバッファ・プールに戻す。これは、DRP−
ACバッファを示すように自由なプール内の最後のRP
−ACバッファを更新し、(DRP−ACバッファ位置
に等しい)ACバッファ・プール「尾部」ポインタ・レ
ジスタを更新することによって行う。次に、ステップ6
5に示すように、TB(CTU#)がTB(1)に等し
いか否かを決定する。TB(CTU#)がTB(1)に
等しい場合、削除プロセスが終了する。
プ63に示すように、TB(CTU#)内のTV(TU
(CTU#))内のDRPエントリ(すなわち、実行さ
れた最後のTB)を遮断する。DRPがMフラグ・エン
トリの場合、TV内のMフラグを遮断する。しかし、D
RPがLフラグ・エントリの場合、TV内のMフラグ・
フィールドに触れることなく、TV内のLフラグ、NT
U#、RP−AC−ptr、RPをすべて遮断する。そ
の後、ステップ64で、DRP−ACバッファを自由な
RP−ACバッファ・プールに戻す。これは、DRP−
ACバッファを示すように自由なプール内の最後のRP
−ACバッファを更新し、(DRP−ACバッファ位置
に等しい)ACバッファ・プール「尾部」ポインタ・レ
ジスタを更新することによって行う。次に、ステップ6
5に示すように、TB(CTU#)がTB(1)に等し
いか否かを決定する。TB(CTU#)がTB(1)に
等しい場合、削除プロセスが終了する。
【0054】それ以外の場合、TB(CTU#)がTB
(1)に等しくない場合、ステップ66に示すように、
TB(CTU#)内の有効なエントリの数を検査する。
検査は、TB(CTU#)内のすべてのTV内の有効な
エントリの読取り、検査および計数を含む。Mフラグ・
エントリ、Lフラグ・エントリ、および探索ノード(探
索の継続を知らせるために使用されるエントリ)はすべ
ての有効なエントリである。ステップ67で、TB(C
TU#)内にただ1つの有効なエントリが存在するか否
かを決定する。複数の有効なエントリが存在する場合、
削除プロセスは終了する。ただ1つの有効なエントリが
存在する場合、ステップ68に示すように、次のように
してTB(CTU#)を除去するために探索パスを再経
路指定する。 1.TB(CTU#)からRP情報を取り出す。 RPがMフラグである場合:NL(PR)=M(R
P);NNTU#=TU(k);NNTU−ptr=M
RP−AC−PTR;NRP=(RP(TU(PTU
#))+(M(RP)))、ただし、(RP(TU(P
TU#))+(M(RP))=TV(TU(DRP(P
TU#)))内のRP TU(k)ビットをM(RP)で置き換える。それ以外
の場合、NL(RP)=L(RP);NNTU#=NT
U#;NNTU−ptr=NTU−ptr;NRP=R
P。 2.TV(TU(DRP(PTU#)))=(xx、N
L(RP)、NNTU#、NNTU−ptr、NRP)
を修正する (TB(CTU#)を探索パスから除去するためにTB
(PTU#)を再経路指定する)。
(1)に等しくない場合、ステップ66に示すように、
TB(CTU#)内の有効なエントリの数を検査する。
検査は、TB(CTU#)内のすべてのTV内の有効な
エントリの読取り、検査および計数を含む。Mフラグ・
エントリ、Lフラグ・エントリ、および探索ノード(探
索の継続を知らせるために使用されるエントリ)はすべ
ての有効なエントリである。ステップ67で、TB(C
TU#)内にただ1つの有効なエントリが存在するか否
かを決定する。複数の有効なエントリが存在する場合、
削除プロセスは終了する。ただ1つの有効なエントリが
存在する場合、ステップ68に示すように、次のように
してTB(CTU#)を除去するために探索パスを再経
路指定する。 1.TB(CTU#)からRP情報を取り出す。 RPがMフラグである場合:NL(PR)=M(R
P);NNTU#=TU(k);NNTU−ptr=M
RP−AC−PTR;NRP=(RP(TU(PTU
#))+(M(RP)))、ただし、(RP(TU(P
TU#))+(M(RP))=TV(TU(DRP(P
TU#)))内のRP TU(k)ビットをM(RP)で置き換える。それ以外
の場合、NL(RP)=L(RP);NNTU#=NT
U#;NNTU−ptr=NTU−ptr;NRP=R
P。 2.TV(TU(DRP(PTU#)))=(xx、N
L(RP)、NNTU#、NNTU−ptr、NRP)
を修正する (TB(CTU#)を探索パスから除去するためにTB
(PTU#)を再経路指定する)。
【0055】最後に、ステップ69で、TB(CTU
#)を示すように自由なプール内の最後のTBを更新
し、(TB(CTU#)位置に等しい)TBプール「尾
部」ポインタ・レジスタを更新することによって、削除
したTB(CTU#)を自由なTBプールに戻す。これ
で削除プロセスが終了する。
#)を示すように自由なプール内の最後のTBを更新
し、(TB(CTU#)位置に等しい)TBプール「尾
部」ポインタ・レジスタを更新することによって、削除
したTB(CTU#)を自由なTBプールに戻す。これ
で削除プロセスが終了する。
【0056】次に、図8および図9を参照すると、図7
に示される削除プロセスによる2つの例示的なリファレ
ンス・パターン削除の絵画図が示されている。図示のよ
うに、探索ツリー内には4つのリファレンス・パターン
がある。第2のリファレンス・パターン(RP2)は、
次のようにして探索ツリーから削除される。 1.RP2を探索する(RP2はTU(1)内にある) 2.TB(1)内のRP2のTVを遮断する 3.RP2ACバッファを自由なTUプールに戻す 4.削除の終了。 同様に、第4のリファレンス・パターン(RP4)は、
次のようにして探索ツリーから削除される。 1.RP4を探索する(RP4はTU(5)内にある) 2.TB(5)内のRP4のTVを遮断する 3.RP2ACバッファを自由なTUプールに戻す 4.有効なエントリについてTU(5)を検査する(T
U(5)内のただ一つの有効なエントリ(RP1)) 5.(TU(7)を示す)探索パスを再経路指定するた
めにTU(1)内のRP4のTVを修正する 6.TU(5)を自由なTUプールに戻す 7.削除の終了。
に示される削除プロセスによる2つの例示的なリファレ
ンス・パターン削除の絵画図が示されている。図示のよ
うに、探索ツリー内には4つのリファレンス・パターン
がある。第2のリファレンス・パターン(RP2)は、
次のようにして探索ツリーから削除される。 1.RP2を探索する(RP2はTU(1)内にある) 2.TB(1)内のRP2のTVを遮断する 3.RP2ACバッファを自由なTUプールに戻す 4.削除の終了。 同様に、第4のリファレンス・パターン(RP4)は、
次のようにして探索ツリーから削除される。 1.RP4を探索する(RP4はTU(5)内にある) 2.TB(5)内のRP4のTVを遮断する 3.RP2ACバッファを自由なTUプールに戻す 4.有効なエントリについてTU(5)を検査する(T
U(5)内のただ一つの有効なエントリ(RP1)) 5.(TU(7)を示す)探索パスを再経路指定するた
めにTU(1)内のRP4のTVを修正する 6.TU(5)を自由なTUプールに戻す 7.削除の終了。
【0057】リファレンス・パターン一致プロセス次
に、図10を参照すると、本発明の好ましい実施形態に
よる探索ツリー内でリファレンス・パターンを一致させ
る方法のハイレベル論理流れ図が示されている。ステッ
プ81で、TPの最初のTU(すなわち、受信アドレ
ス)をデコードとして使用して、所定の位置のところで
最初のTB内のTVを読み取る。異なるプロトコルは異
なる探索ツリーから始まるので、所定の開始位置は、受
信アドレスのプロトコルに依存する。次いで、ステップ
82に示すように、可能な一致するRPについてTVを
検査する。一致するRPを次に示す。 1.Mフラグ 2.Lフラグ+正確に一致するTPおよびRPのTS
(NTU#)ビット・パターン、ただし、TS(NTU
#)=(TU(1)からTU(NTU#)までのビット
・パターン) 一致するRPが存在する場合、ステップ83に示すよう
に、すべての一致するRP情報およびそれらのアクショ
ン・コード・ポインタ(すなわち、M、L、MxAC
ptr)を連続的に記録(または保管)する。
に、図10を参照すると、本発明の好ましい実施形態に
よる探索ツリー内でリファレンス・パターンを一致させ
る方法のハイレベル論理流れ図が示されている。ステッ
プ81で、TPの最初のTU(すなわち、受信アドレ
ス)をデコードとして使用して、所定の位置のところで
最初のTB内のTVを読み取る。異なるプロトコルは異
なる探索ツリーから始まるので、所定の開始位置は、受
信アドレスのプロトコルに依存する。次いで、ステップ
82に示すように、可能な一致するRPについてTVを
検査する。一致するRPを次に示す。 1.Mフラグ 2.Lフラグ+正確に一致するTPおよびRPのTS
(NTU#)ビット・パターン、ただし、TS(NTU
#)=(TU(1)からTU(NTU#)までのビット
・パターン) 一致するRPが存在する場合、ステップ83に示すよう
に、すべての一致するRP情報およびそれらのアクショ
ン・コード・ポインタ(すなわち、M、L、MxAC
ptr)を連続的に記録(または保管)する。
【0058】ステップ84で、他のRPの探索を継続す
べきかどうかを決定する。(TU(TP)>NTU#>
CTU#)かつ(TP(TS(NTU#−1))=RP
(TS(NTU#−1)))かつLフラグがない場合、
プロセスはステップ85に進む。(TP(TS(x))
=RP(TS(x)):TPとRPの間で一致するTU
(1)からTU(x)までのビット・パターン)。ステ
ップ85で、次のTBのTVを読み取り、TBポインタ
=N−TU−ptr、TVオフセット=TPの(TU
(N−TU#)ビット・パターン・デコードとなり、プ
ロセスはステップ82に戻る。
べきかどうかを決定する。(TU(TP)>NTU#>
CTU#)かつ(TP(TS(NTU#−1))=RP
(TS(NTU#−1)))かつLフラグがない場合、
プロセスはステップ85に進む。(TP(TS(x))
=RP(TS(x)):TPとRPの間で一致するTU
(1)からTU(x)までのビット・パターン)。ステ
ップ85で、次のTBのTVを読み取り、TBポインタ
=N−TU−ptr、TVオフセット=TPの(TU
(N−TU#)ビット・パターン・デコードとなり、プ
ロセスはステップ82に戻る。
【0059】それ以外の場合、探索ツリーの終了である
ので、他のRPの探索は継続しない。探索ツリーの終了
は次の場合である。 1.(TU(TP)またはNTU#)がCTU#に等し
いかまたはそれよりも小さい場合 2.NTU#がTU(TP)よりも大きい場合(TU
(TP)=TPパターンの長さ) 3.Lフラグ・エントリに到達した場合 4.TPとRPの間のTU(1)からTU(NTU#−
1)までのビット・パターンが一致しない場合 5.不法状態の場合。 ステップ86で、RPアクション・コードをフレーム処
理エンジンにソート/転送する。これでRP一致プロセ
スが完了する。
ので、他のRPの探索は継続しない。探索ツリーの終了
は次の場合である。 1.(TU(TP)またはNTU#)がCTU#に等し
いかまたはそれよりも小さい場合 2.NTU#がTU(TP)よりも大きい場合(TU
(TP)=TPパターンの長さ) 3.Lフラグ・エントリに到達した場合 4.TPとRPの間のTU(1)からTU(NTU#−
1)までのビット・パターンが一致しない場合 5.不法状態の場合。 ステップ86で、RPアクション・コードをフレーム処
理エンジンにソート/転送する。これでRP一致プロセ
スが完了する。
【0060】次に、図11を参照すると、本発明の好ま
しい実施形態が使用される高性能スイッチ・ルータのブ
ロック図が示されている。図示のように、スイッチ・ル
ータ90は、中央演算処理装置(CPU)91、適応フ
レーム・ヘッダ分解/処理装置(AFPU)92、ラン
ダム・アクセス・メモリ(RAM)の第1のバンク9
3、RAMの第2のバンク94、およびスイッチ装置9
5を含んでいる。
しい実施形態が使用される高性能スイッチ・ルータのブ
ロック図が示されている。図示のように、スイッチ・ル
ータ90は、中央演算処理装置(CPU)91、適応フ
レーム・ヘッダ分解/処理装置(AFPU)92、ラン
ダム・アクセス・メモリ(RAM)の第1のバンク9
3、RAMの第2のバンク94、およびスイッチ装置9
5を含んでいる。
【0061】CPU91は、スイッチ・ルータ90内の
すべての標準の動作を制御するだけでなく、プロトコル
関連処理を管理し、フレーム転送テーブルを設定する。
AFPU92は、CPU91によって与えられた各リフ
ァレンス・パターンを学習し、次いで上述の好ましい方
法に従ってリファレンス・パターンのフレーム・ヘッダ
を分解する。AFPU92は、分解結果を使用して、フ
レームをフィルタリングし、転送し、再送信の前にフレ
ームを修正する。すべての着信データ・フレームは、A
FPU92内に記憶されたの先入れ先出しバッファかま
たはRAM93、94の一方においてバッファされ、再
送信の前に処理が完了するのを待つ。システム・パフォ
ーマンスおよびパイプライン設計を高めるために、2つ
のRAM、RAM93および94がスイッチ・ルータ9
0内で使用される。RAM93、94は、AFPU92
によって管理される。フレーム転送アドレス・テーブル
およびポインタは、RAM93、94の一方に記憶さ
れ、フレーム処理記述子およびバッファされた受信フレ
ームは他方のRAMに記憶される。LAN/WAN/A
TMコントローラなど、スイッチ装置95は、フレーム
転送処理のためにAFPU92との間でフレームを供給
するために使用される。
すべての標準の動作を制御するだけでなく、プロトコル
関連処理を管理し、フレーム転送テーブルを設定する。
AFPU92は、CPU91によって与えられた各リフ
ァレンス・パターンを学習し、次いで上述の好ましい方
法に従ってリファレンス・パターンのフレーム・ヘッダ
を分解する。AFPU92は、分解結果を使用して、フ
レームをフィルタリングし、転送し、再送信の前にフレ
ームを修正する。すべての着信データ・フレームは、A
FPU92内に記憶されたの先入れ先出しバッファかま
たはRAM93、94の一方においてバッファされ、再
送信の前に処理が完了するのを待つ。システム・パフォ
ーマンスおよびパイプライン設計を高めるために、2つ
のRAM、RAM93および94がスイッチ・ルータ9
0内で使用される。RAM93、94は、AFPU92
によって管理される。フレーム転送アドレス・テーブル
およびポインタは、RAM93、94の一方に記憶さ
れ、フレーム処理記述子およびバッファされた受信フレ
ームは他方のRAMに記憶される。LAN/WAN/A
TMコントローラなど、スイッチ装置95は、フレーム
転送処理のためにAFPU92との間でフレームを供給
するために使用される。
【0062】上述のように、本発明は、コンピュータ・
ネットワーク内でデータ・フレームを経路指定するフレ
ーム・ヘッダを分解する改善された方法を開示する。開
示の方法は、探索ツリー構造およびビットパターン一致
技法を使用して、フレーム・ヘッダを分解する。本発明
による分解方法は3つの独自の特性を有する。第1に、
学習した各リファレンス・パターンごとに一意の探索パ
スが存在することが保証される。第2に、探索ツリー
は、可変のビット長さのリファレンス・パターンを記憶
することができる。第3に、長さが変化しかつ同じビッ
ト・パターンを有する複数のリファレンス・パターン
は、探索が終了する前に探索パス内でそれに応じてマー
クされる。
ネットワーク内でデータ・フレームを経路指定するフレ
ーム・ヘッダを分解する改善された方法を開示する。開
示の方法は、探索ツリー構造およびビットパターン一致
技法を使用して、フレーム・ヘッダを分解する。本発明
による分解方法は3つの独自の特性を有する。第1に、
学習した各リファレンス・パターンごとに一意の探索パ
スが存在することが保証される。第2に、探索ツリー
は、可変のビット長さのリファレンス・パターンを記憶
することができる。第3に、長さが変化しかつ同じビッ
ト・パターンを有する複数のリファレンス・パターン
は、探索が終了する前に探索パス内でそれに応じてマー
クされる。
【0063】以上、本発明について、特に好ましい実施
形態に関して図示し、説明したが、本発明の主旨および
範囲から逸脱することなく形態および詳細の様々な変更
を本発明に加えることができることを当業者なら理解で
きよう。
形態に関して図示し、説明したが、本発明の主旨および
範囲から逸脱することなく形態および詳細の様々な変更
を本発明に加えることができることを当業者なら理解で
きよう。
【0064】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0065】(1)コンピュータ・ネットワーク内でデ
ータ・フレームを経路指定するフレーム・ヘッダを解析
する方法であって、前記コンピュータ・ネットワークか
らデータ・フレームを受信するステップと、前記データ
・フレームのフレーム・ヘッダをすべて同じ長さを有す
る複数のテスト・ユニットに分解するステップと、前記
複数のテスト・ユニットの各テスト・ユニットにそれぞ
れリファレンス・パターン・フィールドおよびアクショ
ン・コード・ポインタ・フィールドを含むテスト・ベク
トルを割り当てるステップと、各前記テスト・ベクトル
を複数のテスト・ブロックの対応するスロットに挿入す
ることによって前記複数のテスト・ブロックを構成する
ステップと、前記テスト・ベクトルによって互いに関連
づけられた前記複数のテスト・ブロックを使用して、探
索ツリーを構成するステップとを含む方法。 (2)前記分解ステップが、前記フレーム・ヘッダを複
数の2ビット・テスト・ユニットに分解するステップを
さらに含むことを特徴とする、上記(1)に記載の方
法。 (3)前記割当てステップが、各前記テスト・ユニット
にテスト・ベクトルをビット・パターンに従って割り当
てるステップをさらに含むことを特徴とする、上記
(1)に記載の方法。 (4)前記挿入ステップが、各前記テスト・ユニットの
サイズによって制限されるスロットの数選択からテスト
・ブロックの対応するスロットにテスト・ベクトルを挿
入するステップをさらに含むことを特徴とする、上記
(1)に記載の方法。 (5)前記探索ツリーを構成するステップが、異なる通
信プロトコルを有する受信したデータ・フレーム用の別
個の探索ツリーを構成するステップをさらに含むことを
特徴とする、上記(1)に記載の方法。 (6)前記フレーム・ヘッドに一致する前記リファレン
ス・パターン・フィールド内にリファレンス・パターン
を有する前記複数のテスト・ベクトルの1つのテスト・
ベクトル内の前記アクション・コード・フィールド内の
アクション・コードに従って、前記データ・フレームを
前記コンピュータ・ネットワーク内のノードに経路指定
するステップをさらに含むことを特徴とする、上記
(1)に記載の方法。 (7)コンピュータ・ネットワーク内でデータ・フレー
ムを経路指定するデータ処理システムであって、前記コ
ンピュータ・ネットワークからデータ・フレームを受信
する手段と、前記データ・フレームのフレーム・ヘッダ
をすべて同じ長さを有する複数のテスト・ユニットに分
解する手段と、前記複数のテスト・ユニットの各テスト
・ユニットにそれぞれリファレンス・パターン・フィー
ルドおよびアクション・コード・ポインタ・フィールド
を含むテスト・ベクトルを割り当てる手段と、そのうち
のいくつかが前記テスト・ベクトルの1つを含む複数の
スロットをそれぞれ含む複数のテスト・ブロックと、前
記テスト・ベクトルによって互いに関連づけられた前記
複数のテスト・ブロックによって構成された探索ツリー
とを含むデータ処理システム。 (8)前記複数のテスト・ユニットのうちの各テスト・
ユニットが長さ2ビットであることを特徴とする、上記
(7)に記載のデータ処理システム。 (9)前記割当て手段が、各前記テスト・ユニットにテ
スト・ベクトルをビット・パターンに従って割り当てる
手段をさらに含むことを特徴とする、上記(7)に記載
のデータ処理システム。 (10)前記テスト・ベクトルが、各前記テスト・ユニ
ットのサイズによって制限されるスロットの数選択から
テスト・ブロックの対応するスロットに挿入されること
を特徴とする、上記(7)に記載のデータ処理システ
ム。 (11)異なる通信プロトコルを有する受信したデータ
・フレーム用の別個の探索ツリーをさらに含むことを特
徴とする、上記(7)に記載のデータ処理システム。 (12)前記フレーム・ヘッドに一致する前記リファレ
ンス・パターン・フィールド内に記憶されたリファレン
ス・パターンを有する前記複数のテスト・ベクトルの1
つのテスト・ベクトル内の前記アクション・コード・フ
ィールド内に記憶されたアクション・コードに従って、
前記データ・フレームを前記コンピュータ・ネットワー
ク内のノードに経路指定する手段をさらに含むことを特
徴とする、上記(7)に記載のデータ処理システム。
ータ・フレームを経路指定するフレーム・ヘッダを解析
する方法であって、前記コンピュータ・ネットワークか
らデータ・フレームを受信するステップと、前記データ
・フレームのフレーム・ヘッダをすべて同じ長さを有す
る複数のテスト・ユニットに分解するステップと、前記
複数のテスト・ユニットの各テスト・ユニットにそれぞ
れリファレンス・パターン・フィールドおよびアクショ
ン・コード・ポインタ・フィールドを含むテスト・ベク
トルを割り当てるステップと、各前記テスト・ベクトル
を複数のテスト・ブロックの対応するスロットに挿入す
ることによって前記複数のテスト・ブロックを構成する
ステップと、前記テスト・ベクトルによって互いに関連
づけられた前記複数のテスト・ブロックを使用して、探
索ツリーを構成するステップとを含む方法。 (2)前記分解ステップが、前記フレーム・ヘッダを複
数の2ビット・テスト・ユニットに分解するステップを
さらに含むことを特徴とする、上記(1)に記載の方
法。 (3)前記割当てステップが、各前記テスト・ユニット
にテスト・ベクトルをビット・パターンに従って割り当
てるステップをさらに含むことを特徴とする、上記
(1)に記載の方法。 (4)前記挿入ステップが、各前記テスト・ユニットの
サイズによって制限されるスロットの数選択からテスト
・ブロックの対応するスロットにテスト・ベクトルを挿
入するステップをさらに含むことを特徴とする、上記
(1)に記載の方法。 (5)前記探索ツリーを構成するステップが、異なる通
信プロトコルを有する受信したデータ・フレーム用の別
個の探索ツリーを構成するステップをさらに含むことを
特徴とする、上記(1)に記載の方法。 (6)前記フレーム・ヘッドに一致する前記リファレン
ス・パターン・フィールド内にリファレンス・パターン
を有する前記複数のテスト・ベクトルの1つのテスト・
ベクトル内の前記アクション・コード・フィールド内の
アクション・コードに従って、前記データ・フレームを
前記コンピュータ・ネットワーク内のノードに経路指定
するステップをさらに含むことを特徴とする、上記
(1)に記載の方法。 (7)コンピュータ・ネットワーク内でデータ・フレー
ムを経路指定するデータ処理システムであって、前記コ
ンピュータ・ネットワークからデータ・フレームを受信
する手段と、前記データ・フレームのフレーム・ヘッダ
をすべて同じ長さを有する複数のテスト・ユニットに分
解する手段と、前記複数のテスト・ユニットの各テスト
・ユニットにそれぞれリファレンス・パターン・フィー
ルドおよびアクション・コード・ポインタ・フィールド
を含むテスト・ベクトルを割り当てる手段と、そのうち
のいくつかが前記テスト・ベクトルの1つを含む複数の
スロットをそれぞれ含む複数のテスト・ブロックと、前
記テスト・ベクトルによって互いに関連づけられた前記
複数のテスト・ブロックによって構成された探索ツリー
とを含むデータ処理システム。 (8)前記複数のテスト・ユニットのうちの各テスト・
ユニットが長さ2ビットであることを特徴とする、上記
(7)に記載のデータ処理システム。 (9)前記割当て手段が、各前記テスト・ユニットにテ
スト・ベクトルをビット・パターンに従って割り当てる
手段をさらに含むことを特徴とする、上記(7)に記載
のデータ処理システム。 (10)前記テスト・ベクトルが、各前記テスト・ユニ
ットのサイズによって制限されるスロットの数選択から
テスト・ブロックの対応するスロットに挿入されること
を特徴とする、上記(7)に記載のデータ処理システ
ム。 (11)異なる通信プロトコルを有する受信したデータ
・フレーム用の別個の探索ツリーをさらに含むことを特
徴とする、上記(7)に記載のデータ処理システム。 (12)前記フレーム・ヘッドに一致する前記リファレ
ンス・パターン・フィールド内に記憶されたリファレン
ス・パターンを有する前記複数のテスト・ベクトルの1
つのテスト・ベクトル内の前記アクション・コード・フ
ィールド内に記憶されたアクション・コードに従って、
前記データ・フレームを前記コンピュータ・ネットワー
ク内のノードに経路指定する手段をさらに含むことを特
徴とする、上記(7)に記載のデータ処理システム。
【図1】本発明が使用される代表的なコンピュータ・ネ
ットワークのブロック図である。
ットワークのブロック図である。
【図2】図1のネットワーク内でデータ・フレームを経
路指定する従来技術の方法のハイレベル論理流れ図であ
る。
路指定する従来技術の方法のハイレベル論理流れ図であ
る。
【図3】本発明の好ましい実施形態による2つのテスト
・ベクトルのブロック図である。
・ベクトルのブロック図である。
【図4】本発明の好ましい実施形態によるリファレンス
・パターンを学習する方法のハイレベル論理流れ図であ
る。
・パターンを学習する方法のハイレベル論理流れ図であ
る。
【図5】図4に示される学習プロセスによる複数の例示
的なリファレンス・パターン挿入の絵画図である。
的なリファレンス・パターン挿入の絵画図である。
【図6】図4に示される学習プロセスによる複数の例示
的なリファレンス・パターン挿入の絵画図である。
的なリファレンス・パターン挿入の絵画図である。
【図7】本発明の好ましい実施形態による探索ツリーか
らリファレンス・パターンを削除する方法のハイレベル
論理流れ図である。
らリファレンス・パターンを削除する方法のハイレベル
論理流れ図である。
【図8】図7に示される削除プロセスによる2つの例示
的なリファレンス・パターン削除の絵画図である。
的なリファレンス・パターン削除の絵画図である。
【図9】図7に示される削除プロセスによる2つの例示
的なリファレンス・パターン削除の絵画図である。
的なリファレンス・パターン削除の絵画図である。
【図10】本発明の好ましい実施形態による探索ツリー
内でリファレンス・パターンを一致させる方法のハイレ
ベル論理流れ図である。
内でリファレンス・パターンを一致させる方法のハイレ
ベル論理流れ図である。
【図11】本発明の好ましい実施形態が使用される高性
能スイッチ・ルータのブロック図である。
能スイッチ・ルータのブロック図である。
10 LAN 11 LAN 12 LAN 31 マスク・リファレンス・パターン・マーカ(M)
フィールド 32 最後のテスト・ベクトル(L) 33 NTU#フィールド 34 NTB PTRフィールド 35 リファレンス・パターン(RP)フィールド 36 AC PTRフィールド 38 テスト・ベクトル 39 テスト・ベクトル 90 スイッチ・ルータ 91 中央演算処理装置(CPU) 92 適応フレーム・ヘッダ分解/処理装置(AFP
U) 93 ランダム・アクセス・メモリ(RAM)の第1の
バンク 94 RAMの第2のバンク 95 スイッチ装置 100 コンピュータ・ネットワーク 101 サーバ 102 ルータ 111 ノード 112 ノード 113 ノード 114 ノード 115 ノード 116 ノード 117 ノード 118 ノード 119 ノード 120 ノード
フィールド 32 最後のテスト・ベクトル(L) 33 NTU#フィールド 34 NTB PTRフィールド 35 リファレンス・パターン(RP)フィールド 36 AC PTRフィールド 38 テスト・ベクトル 39 テスト・ベクトル 90 スイッチ・ルータ 91 中央演算処理装置(CPU) 92 適応フレーム・ヘッダ分解/処理装置(AFP
U) 93 ランダム・アクセス・メモリ(RAM)の第1の
バンク 94 RAMの第2のバンク 95 スイッチ装置 100 コンピュータ・ネットワーク 101 サーバ 102 ルータ 111 ノード 112 ノード 113 ノード 114 ノード 115 ノード 116 ノード 117 ノード 118 ノード 119 ノード 120 ノード
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームズ・フィリップ・アーヴィン アメリカ合衆国27613 ノースカイライナ 州ローリー カノネーロ・プレース 11804 (72)発明者 ダグラス・レイ・ヘンダーソン アメリカ合衆国27613 ノースカイライナ 州ローリー クィンビー・コート 7300 (72)発明者 リチャード・コルバート・マトラック・ジ ュニア アメリカ合衆国27613 ノースカイライナ 州ローリー ブッシュフェルド・レーン 10005 (72)発明者 ジーン・フェイ・ウィングラー アメリカ合衆国27502 ノースカイライナ 州アペックス ウィックフォード・プレー ス 4205
Claims (12)
- 【請求項1】コンピュータ・ネットワーク内でデータ・
フレームを経路指定するフレーム・ヘッダを解析する方
法であって、 前記コンピュータ・ネットワークからデータ・フレーム
を受信するステップと、 前記データ・フレームのフレーム・ヘッダをすべて同じ
長さを有する複数のテスト・ユニットに分解するステッ
プと、 前記複数のテスト・ユニットの各テスト・ユニットにそ
れぞれリファレンス・パターン・フィールドおよびアク
ション・コード・ポインタ・フィールドを含むテスト・
ベクトルを割り当てるステップと、 各前記テスト・ベクトルを複数のテスト・ブロックの対
応するスロットに挿入することによって前記複数のテス
ト・ブロックを構成するステップと、 前記テスト・ベクトルによって互いに関連づけられた前
記複数のテスト・ブロックを使用して、探索ツリーを構
成するステップとを含む方法。 - 【請求項2】前記分解ステップが、前記フレーム・ヘッ
ダを複数の2ビット・テスト・ユニットに分解するステ
ップをさらに含むことを特徴とする、請求項1に記載の
方法。 - 【請求項3】前記割当てステップが、各前記テスト・ユ
ニットにテスト・ベクトルをビット・パターンに従って
割り当てるステップをさらに含むことを特徴とする、請
求項1に記載の方法。 - 【請求項4】前記挿入ステップが、各前記テスト・ユニ
ットのサイズによって制限されるスロットの数選択から
テスト・ブロックの対応するスロットにテスト・ベクト
ルを挿入するステップをさらに含むことを特徴とする、
請求項1に記載の方法。 - 【請求項5】前記探索ツリーを構成するステップが、異
なる通信プロトコルを有する受信したデータ・フレーム
用の別個の探索ツリーを構成するステップをさらに含む
ことを特徴とする、請求項1に記載の方法。 - 【請求項6】前記フレーム・ヘッドに一致する前記リフ
ァレンス・パターン・フィールド内にリファレンス・パ
ターンを有する前記複数のテスト・ベクトルの1つのテ
スト・ベクトル内の前記アクション・コード・フィール
ド内のアクション・コードに従って、前記データ・フレ
ームを前記コンピュータ・ネットワーク内のノードに経
路指定するステップをさらに含むことを特徴とする、請
求項1に記載の方法。 - 【請求項7】コンピュータ・ネットワーク内でデータ・
フレームを経路指定するデータ処理システムであって、 前記コンピュータ・ネットワークからデータ・フレーム
を受信する手段と、 前記データ・フレームのフレーム・ヘッダをすべて同じ
長さを有する複数のテスト・ユニットに分解する手段
と、 前記複数のテスト・ユニットの各テスト・ユニットにそ
れぞれリファレンス・パターン・フィールドおよびアク
ション・コード・ポインタ・フィールドを含むテスト・
ベクトルを割り当てる手段と、 そのうちのいくつかが前記テスト・ベクトルの1つを含
む複数のスロットをそれぞれ含む複数のテスト・ブロッ
クと、 前記テスト・ベクトルによって互いに関連づけられた前
記複数のテスト・ブロックによって構成された探索ツリ
ーとを含むデータ処理システム。 - 【請求項8】前記複数のテスト・ユニットのうちの各テ
スト・ユニットが長さ2ビットであることを特徴とす
る、請求項7に記載のデータ処理システム。 - 【請求項9】前記割当て手段が、各前記テスト・ユニッ
トにテスト・ベクトルをビット・パターンに従って割り
当てる手段をさらに含むことを特徴とする、請求項7に
記載のデータ処理システム。 - 【請求項10】前記テスト・ベクトルが、各前記テスト
・ユニットのサイズによって制限されるスロットの数選
択からテスト・ブロックの対応するスロットに挿入され
ることを特徴とする、請求項7に記載のデータ処理シス
テム。 - 【請求項11】異なる通信プロトコルを有する受信した
データ・フレーム用の別個の探索ツリーをさらに含むこ
とを特徴とする、請求項7に記載のデータ処理システ
ム。 - 【請求項12】前記フレーム・ヘッドに一致する前記リ
ファレンス・パターン・フィールド内に記憶されたリフ
ァレンス・パターンを有する前記複数のテスト・ベクト
ルの1つのテスト・ベクトル内の前記アクション・コー
ド・フィールド内に記憶されたアクション・コードに従
って、前記データ・フレームを前記コンピュータ・ネッ
トワーク内のノードに経路指定する手段をさらに含むこ
とを特徴とする、請求項7に記載のデータ処理システ
ム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/780803 | 1997-01-09 | ||
| US08/780,803 US5881242A (en) | 1997-01-09 | 1997-01-09 | Method and system of parsing frame headers for routing data frames within a computer network |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10257084A true JPH10257084A (ja) | 1998-09-25 |
Family
ID=25120745
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10001502A Pending JPH10257084A (ja) | 1997-01-09 | 1998-01-07 | コンピュータ・ネットワーク内でデータ・フレームを経路指定するフレーム・ヘッダを解析する方法およびシステム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5881242A (ja) |
| JP (1) | JPH10257084A (ja) |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6393548B1 (en) * | 1997-02-14 | 2002-05-21 | Advanced Micro Devices, Inc. | Variable 16 or 32 bit PCI interface which supports steering and swapping of data |
| US6401171B1 (en) | 1998-02-27 | 2002-06-04 | Cisco Technology, Inc. | Method and device for storing an IP header in a cache memory of a network node |
| US6098125A (en) * | 1998-05-01 | 2000-08-01 | California Institute Of Technology | Method of mapping fibre channel frames based on control and type header fields |
| US6897073B2 (en) * | 1998-07-14 | 2005-05-24 | Zyomyx, Inc. | Non-specific binding resistant protein arrays and methods for making the same |
| US6611524B2 (en) | 1999-06-30 | 2003-08-26 | Cisco Technology, Inc. | Programmable data packet parser |
| DE19938895C1 (de) * | 1999-08-17 | 2001-03-29 | Siemens Ag | Verfahren zum Aufbau einer Signalisierungsverbindung |
| AU4022301A (en) * | 1999-09-22 | 2001-04-24 | Entridia Corporation | Serial routing bus |
| AUPQ312299A0 (en) * | 1999-09-27 | 1999-10-21 | Canon Kabushiki Kaisha | Method and system for addressing audio-visual content fragments |
| AU2098800A (en) * | 1999-12-17 | 2001-06-25 | Nokia Corporation | A method for contention free traffic detection |
| US6970462B1 (en) | 2000-04-24 | 2005-11-29 | Cisco Technology, Inc. | Method for high speed packet classification |
| US6714985B1 (en) | 2000-04-28 | 2004-03-30 | Cisco Technology, Inc. | Method and apparatus for efficiently reassembling fragments received at an intermediate station in a computer network |
| US20020126673A1 (en) * | 2001-01-12 | 2002-09-12 | Nirav Dagli | Shared memory |
| US6735649B2 (en) * | 2001-05-03 | 2004-05-11 | Advanced Micro Devices, Inc. | Multiple buffers for removing unwanted header information from received data packets |
| US7154888B1 (en) | 2002-02-08 | 2006-12-26 | Cisco Technology, Inc. | Method for classifying packets using multi-class structures |
| US7236493B1 (en) | 2002-06-13 | 2007-06-26 | Cisco Technology, Inc. | Incremental compilation for classification and filtering rules |
| US7894480B1 (en) * | 2002-08-27 | 2011-02-22 | Hewlett-Packard Company | Computer system and network interface with hardware based rule checking for embedded firewall |
| US7724740B1 (en) | 2002-08-27 | 2010-05-25 | 3Com Corporation | Computer system and network interface supporting class of service queues |
| US7328463B2 (en) * | 2003-09-08 | 2008-02-12 | Microtek Medical Holdings, Inc. | Water-soluble articles and methods of making and using the same |
| US20060249716A1 (en) * | 2003-10-30 | 2006-11-09 | Rincoe Richard G | Method of maneuvering a mechanical arm assembly relative to a base support |
| US7317723B1 (en) | 2004-02-03 | 2008-01-08 | Cisco Technology, Inc. | Action based termination of multidimensional lookup |
| US7646771B2 (en) | 2005-08-17 | 2010-01-12 | Cisco Technology, Inc. | Compilation of access control lists |
| US7325074B2 (en) * | 2005-09-28 | 2008-01-29 | Cisco Technology, Inc. | Incremental compilation of packet classifications using fragmented tables |
| US10193788B2 (en) * | 2014-12-19 | 2019-01-29 | Disrupter LLC | Systems and methods implementing an autonomous network architecture and protocol |
| US10148576B2 (en) * | 2016-07-28 | 2018-12-04 | Fortinet, Inc. | Network processing unit (NPU) integrated layer 2 network device for layer 3 offloading |
| US9972360B2 (en) * | 2016-08-30 | 2018-05-15 | Oath Inc. | Computerized system and method for automatically generating high-quality digital content thumbnails from digital video |
| US12339770B2 (en) * | 2023-10-10 | 2025-06-24 | International Business Machines Corporation | Storage of threshold voltage shifts |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3979733A (en) * | 1975-05-09 | 1976-09-07 | Bell Telephone Laboratories, Incorporated | Digital data communications system packet switch |
| US5038345A (en) * | 1989-10-30 | 1991-08-06 | Amp Incorporated | Traffic pattern information for a local area network |
| US5191582A (en) * | 1991-08-14 | 1993-03-02 | Transwitch Corporation | Method and apparatus for the high speed modification of a packet address field of a transmitted packet in a frame relay system |
| US5251215A (en) * | 1992-01-13 | 1993-10-05 | At&T Bell Laboratories | Modifying check codes in data packet transmission |
| US5469150A (en) * | 1992-12-18 | 1995-11-21 | Honeywell Inc. | Sensor actuator bus system |
| US5793954A (en) * | 1995-12-20 | 1998-08-11 | Nb Networks | System and method for general purpose network analysis |
-
1997
- 1997-01-09 US US08/780,803 patent/US5881242A/en not_active Expired - Lifetime
-
1998
- 1998-01-07 JP JP10001502A patent/JPH10257084A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| US5881242A (en) | 1999-03-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH10257084A (ja) | コンピュータ・ネットワーク内でデータ・フレームを経路指定するフレーム・ヘッダを解析する方法およびシステム | |
| EP1358739B1 (en) | Method and apparatus for routing table management | |
| CN100465947C (zh) | 用于产生和使用改进的树形位图数据结构的方法和装置 | |
| US7415463B2 (en) | Programming tree data structures and handling collisions while performing lookup operations | |
| US7415472B2 (en) | Comparison tree data structures of particular use in performing lookup operations | |
| US7433871B2 (en) | Efficient ipv4/ipv6 best matching prefix method and apparatus | |
| US8538999B2 (en) | String lookup using three-transition tree structure | |
| CA2274962C (en) | High speed variable length best match look-up in a switching device | |
| US20050021752A1 (en) | Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base | |
| US20050141519A1 (en) | Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware | |
| JP2003196295A (ja) | ツリー型知識ベース検索のルックアップ・パフォーマンスを向上させる方法 | |
| US6532516B1 (en) | Technique for updating a content addressable memory | |
| US6590898B1 (en) | Method and apparatus for routing data packets | |
| US20030023581A1 (en) | Method and system for performing a longest prefix match search | |
| US7809008B2 (en) | Methods and apparatus for routing packets | |
| US7154892B2 (en) | Method and apparatus for managing LPM-based CAM look-up table, and recording medium therefor | |
| JP3198547B2 (ja) | 受信装置のバッファ管理方法 | |
| US7171490B2 (en) | Method and apparatus for reducing the number of write operations during route updates in pipelined forwarding engines | |
| JP3660311B2 (ja) | テーブル検索装置および方法およびプログラムおよび記録媒体 | |
| US20030031179A1 (en) | Self-updateable longest prefix matching method and apparatus | |
| US7610440B2 (en) | Content addressable memory with automated learning | |
| CN100531140C (zh) | 一种实现无回溯的最长前缀匹配搜索的方法和装置 | |
| KR20040003258A (ko) | 인터넷 프로토콜 주소 룩-업 방법 | |
| JPH09259136A (ja) | 内容検索型メモリ及び内容検索型メモリを用いたテーブル管理方式 |