JPH07118719B2 - パターン探索方法及び装置 - Google Patents

パターン探索方法及び装置

Info

Publication number
JPH07118719B2
JPH07118719B2 JP4111162A JP11116292A JPH07118719B2 JP H07118719 B2 JPH07118719 B2 JP H07118719B2 JP 4111162 A JP4111162 A JP 4111162A JP 11116292 A JP11116292 A JP 11116292A JP H07118719 B2 JPH07118719 B2 JP H07118719B2
Authority
JP
Japan
Prior art keywords
control block
pattern
address
search
patterns
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.)
Expired - Lifetime
Application number
JP4111162A
Other languages
English (en)
Other versions
JPH05191411A (ja
Inventor
クロード・バッソ
ジーン・カルヴィナック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05191411A publication Critical patent/JPH05191411A/ja
Publication of JPH07118719B2 publication Critical patent/JPH07118719B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は通信ネットワーク間のブ
リッジ即ち経路指定機能(router)で実現される基本機能
であるパターン探索機能を実行する方法及び装置に関す
る。
【0002】
【従来の技術】The third edition of "Data and Com
puter Communications" by WilliamStalling at pages
514 to 521に記述されているように、ブリッジを介した
ローカル・エリア・ネットワークの相互接続は一般的な
慣習である。
【0003】このような環境において、1つのローカル
・エリア・ネットワークに接続された発信端末(source
station)から同じローカル・エリア・ネットワーク又は
他のローカル・エリア・ネットワークに接続された宛先
端末(destination station)にメッセージが送られる。
これらのメッセージは発信アドレス(SA)・フィールド
及び宛先アドレス(DA)・フィールドを含むフレームで
運ばれる。ローカル・エリア・ネットワークをリンクす
る前記ブリッジの1つの機能は、フレームを、それらの
宛先アドレスによる決定に従って経路指定することにあ
る。
【0004】この機能を実行するために、前記ブリッジ
はフレームが経路指定されねばならないネットワークを
識別する探索表(search table)を含む。
【0005】異なるアドレス方式が存在し、現在の傾向
は端末の汎用アドレッシング方式に向かっている。これ
は、各端末が唯一の汎用アドレスを与えられることを意
味する。その結果、端末アドレスは48ビットまで含む
ので、248アドレスの端末が使用可能である。
【0006】ブリッジによってリンクされた複数のロー
カル・エリア・ネットワークを含む通信ネットワーク
は、248の可能なアドレス・パターンのうちの800
0のアドレス・パターンを有する8000端末まで含む
ことができる。
【0007】ブリッジ内のパターン探索機能は内容アド
レス指定できるメモリCAMを用いて容易に実現できる
であろう。しかしながら、可能なアドレス・パターンの
極端な数のため、このような実現は非実際的である。な
ぜなら、現に存在する最大のCAMは256x48の密
度を有するからである。従って、パターン探索機能を実
現するには、8000アドレスをサポートする32のC
AMを必要とするであろう。
【0008】更に、端末はネットワークからの接続及び
切断が可能であり、接続されたとき活動状態か非活動状
態のどちらかであり、従って新しいアドレスの挿入又は
もはや使用されないアドレスの削除により前記探索表は
更新されねばならない。
【0009】ブリッジ回路は、前記探索表を更新するた
めのフレーム内の発信アドレス及び該フレームを経路指
定するための宛先アドレスを認識する能力を備えねばな
らない。
【0010】従って、探索されるパターンを前記表内の
アドレスのグループをアドレス指定するために用いるサ
イン(signature) に変換することにより概略のアドレス
を計算することになるハッシング(hashing) 手法の実現
はアドレスが可変であるので困難である。
【0011】この問題を解決する従来の1つの方法は、
米国特許第3916387号及び論文 IEEE Proceeding
s Vo. 135 Pt. E, No. 1, January 1988に記述されてい
るような二分木(binary tree)探索アルゴリズムを実現
することになる。
【0012】米国特許第3916387号の二分木探索
アルゴリズムは、電気的なディレクトリ・エンティティ
内のオブジェクトを見つけるために実現され、その点で
は短い期間(およそ1マイクロ秒)内に探索されて通信
ネットワークのブリッジで探索機能を実行できるように
最適化されている。 「更に、隣接する分類されたキーの
比較により決定されたインデックスによって決められた
探索パターンの選択されたビットすなわち二分木の出口
(sink)即ち葉(leaf)の検査に基づくこのアルゴリズム
は、キーを分類することができかつオブジェクトの探索
はインデックスにより決定された経路をたどって必然的
に出口に通じることを意味する。」 通信ネットワークの
ブリッジのアドレス・ディレクトリで探索が行なわれる
とき、探索されるアドレスが前記アドレス・ディレクト
リに含まれないことがあるので、これは真ではない。
【0013】前記IEEEの論文に記述された探索アルゴリ
ズムにはこの欠点がない。なぜなら、探索されるアドレ
スの各ビットは順次に又は4ビット記号のようなビット
のグループによって検査されるからである。この論文に
は探索表のサイズの最適化に導く探索アルゴリズムの実
現が記述されいる。
【0014】
【発明が解決しようとする課題】本発明の第1の目的
は、多数の参照パターンのうちから1つのビット・パタ
ーンを非常に短い時間で発見できる探索アルゴリズムを
実現する方法及び装置を提供することにある。
【0015】本発明の第2の目的は、前記方法及び装置
が探索機能に用いる探索表で挿入機能及び削除機能を簡
単に実行できるようにすることにある。
【0016】本発明の第3の目的は、前記方法及び装置
を通信ネットワーク間のブリッジ内でのパターン探索機
能の実行に適するようにすることにある。
【0017】本発明の第4の目的は、前記方法及び装置
がアドレスが32ビットの長さでありかつ3つの可変長
フィールドに再分割されるTCP/IP経路指定機能で
実現できるようにすることにある。ここでTCP/IP
は伝送制御プロトコル/インターネット・プロトコルを
意味する。
【0018】本発明の第5の目的は、前記方法及び装置
が探索時間がパターンの長さだけに依存し探索表エント
リの数には依存しないようにすることにある。
【0019】
【課題を解決するための手段】本発明による方法はp個
のnビット・パターンのうちから1つのnビット・パタ
ーンを探索するのに用いることができる。ここでn及び
pは整数であり、pは2よりも小さくかつp個のパタ
ーンは2個の可能なnビット・パターンのうちの任意
のパターンである。この方法は記憶手段に記憶された探
索表の使用を含むとともに、互いに連鎖(chain) される
制御ブロック及び探索すべきパターンに関して実行され
る動作を指示する内容を含む。この方法は: (a) 探索すべきパターンの少なくとも1つの選択された
ビットに関する検査動作を示す第1のタイプ、指定され
た値との比較動作を示す第2のタイプ及びオペレーショ
ンが実行されてはならないことを示す第3のタイプの制
御ブロックを与えるステップ、(b) p個のパターンの値
により、p個のパターンから1つのパターンの発見に至
る動作を各制御ブロック連鎖が決定するような方法で少
なくとも1つの連鎖に制御ブロックを連鎖させるステッ
プ、(c) 探索すべきパターンのkビット(kはnよりも
小さい整数)の選択されたフィールドから取出される探
索表アドレスで第1の制御ブロックを読取るステップ、
(d) もし読取られた制御ブロックが第3のタイプである
か又は制御ブロックとそれに連鎖された制御ブロックに
示された動作を実行していれば、第2のタイプの制御ブ
ロックに達するまで、パターンが見つからなかったこと
を示す信号を返送するステップ、(e) 第2のタイプの制
御ブロックに達すると、探索すべきパターンを前記制御
ブロック内の指定された値と比較するステップ、(f) も
しステップ(e) で一致が検出されればパターン発見情報
を返送し又はもしステップ(e) で不一致が検出されれば
パターン未発見情報を返送し、探索すべきパターンがp
個のパターンのうちの1つのパターンであるかどうかを
それぞれ示すステップを含むことを特徴とする。
【0020】制御ブロックを与えるステップは: ・ 探索表内のp個のパターンの前記選択されたkビッ
トのフィールドの値から取出されたアドレスに位置する
制御ブロックに、選択されたkビット・フィールド内の
同じkビットの組合せを有するp個のパターンのうちの
残りの(n−k)ビットから成る二分木での探索を開始す
る少なくとも1つの動作を示す情報を書込むステップ、 ・ 前記選択されたkビットのフィールドから取出され
たアドレスにある各制御ブロックに、対応する二分木の
葉の数に等しい連鎖の数の制御ブロックを連鎖しかつ、
もしあれば、飛越しが二分木で存在する位置にあるビッ
トに関する第1のタイプの検査動作を含む葉に導く動
作、及び指定された値が前記二分木のp個のパターンの
1つの(n−k)ビットの値である第2のタイプの少なく
とも1つの比較動作を示す情報を前記連鎖の各々の制御
ブロックに書込むステップ、 ・ 前記p個のパターンに存在しないkビットの選択さ
れたフィールドの組合せから取出されたアドレスに制御
ブロック内の第3のタイプの動作を与えるステップによ
り実行される。
【0021】前記方法を実現する探索装置は: ・ 探索すべきパターンの少なくとも1つの選択された
ビットに関する検査動作を示す第1のタイプ、指定され
た値との比較動作を示す第2のタイプ、オペレーション
が実行されてはならないことを示す第3のタイプの制御
ブロック及び、p個のパターンの値により、各制御ブロ
ック連鎖がp個のパターンの1つを発見するに至る動作
を決定するように少なくとも1つの連鎖内の連鎖制御ブ
ロックを探索表に書込む書込み手段、 ・ 探索すべきパターンのk個の選択されたフィールド
(kはnよりも小さい整数である)から取出される探索
表アドレスで第1の制御ブロックを読取る手段、 ・ もし読取られた制御ブロックが第3のタイプであれ
ばパターンが見つからなかったことを示す信号を生成す
る手段、 ・ 第1の読取り制御ブロック及びそれに連鎖された制
御ブロックに示された動作を、第2のタイプの制御ブロ
ックに達するまで実行する手段、 ・ 探索すべきパターンを第2のタイプの制御ブロック
内に示された値と比較する比較手段、 ・ もし前記比較手段により不一致が検出されればパタ
ーンが見つからなかったことを示す情報を生成する手
段、 ・ もし前記比較手段により一致が検出され、探索すべ
きパターンがp個のパターンのうちの1つのパターンで
あることを示すならば、パターン発見情報を生成する手
段を含む。
【0022】更に、前記探索装置は: ・ 前記比較手段により一致を検出するのに応答して、
第2のタイプの制御ブロックに連鎖された最後の制御ブ
ロック(LEAF)を読取りかつ見つかったパターンに
関係した情報を構成する手段を含む。
【0023】本発明による方法及び装置は、各々がnビ
ットのアドレスを有する端末をリンクする通信ネットワ
ーク間のブリッジ即ち経路指定機能のような接続装置で
用いることができる。従って、入力ポート及び出力ポー
トを介して前記接続装置により接続できる通信ネットワ
ークに関係する活動状態の端末のアドレスのセットはp
個のnビット・パターンを含み、前記ブリッジは入力ポ
ートで受信された発信端末からのフレームに応答して発
信端末アドレス・フィールド及び宛先端末アドレス・フ
ィールドを構成し、前記フレームを経路指定すべき出力
ポートを決定する。
【0024】前記ブリッジ即ち経路指定機能は2つの探
索装置を含む。
【0025】第1の探索装置は宛先アドレスに応答して
宛先アドレス・パターンを探索し、もし宛先アドレス・
パターンが見つかれば、最後の制御ブロックを読取り、
関連したパターン情報をフレーム経路指定情報とする。
【0026】第2の探索装置は発信アドレスに応答して
発信アドレス・パターンを探索し、もし発信アドレス・
パターン見つからなければ、前記アドレス・パターンを
見つけるために必要な制御ブロックを探索表に挿入する
ように探索表内の制御ブロックを更新して新しい制御ブ
ロックを書込む。
【0027】
【実施例】図1は本発明による探索機構を実現できるブ
リッジ10のブロック図の概要を示す。ブリッジ10は
フレーム処理及び経路指定装置12を含む。装置12は
リンク14及び16を介してローカル・エリア・ネット
ワークから(に)フレームを受取る(送る)。図1には
2つのローカル・エリア・ネットワーク18及び20が
示されている。ローカル・エリア・ネットワーク(LA
N X)18は端末X1〜Xnを備え、ローカル・エリ
ア・ネットワーク(LAN Y)20は端末Y1〜Yp
を備える。
【0028】フレーム処理及び経路指定装置12は受信
リンク14−RCVおよび16−RCVを介してLAN
X 18及びLAN Y 20をそれぞれ循環するフレー
ムを受取る。装置12は前記フレームから発信アドレス
・フィールド及び宛先アドレス・フィールドを取出し、
これらのフィールドをレジスタ22に供給する。発信ア
ドレス・フィールド及び宛先アドレス・フィールドはパ
ターン探索機構23に送られる。パターン探索機構23
は、受取ったフレームを、送信リンク14−XMIT又
は16−XMITを介してLAN X 18又はLAN
Y 20にそれぞれ回路指定するために宛先アドレスを
処理する。
【0029】後で説明するように、パターン探索機構2
3はその探索表を更新するために探索アドレスを処理す
る。宛先アドレスに関する探索プロセスの結果に従って
パターン探索機構23は出力制御情報を出力バス25で
フレーム処理及び経路指定装置12に供給する。
【0030】本発明による探索機構のブロック図は図2
に示す。
【0031】フレームが処理されると、レジスタ22に
記憶されたSA/DAアドレス・フィールドは、バス2
8及びバス30を介して、DA処理ロジック24及びS
A処理ロジック26にそれぞれ供給される。
【0032】フレーム処理及び経路指定装置12はSA
/DA処理ライン32を活動化し、それに応答してSA
/DA制御回路34は、SA処理ロジック26及びDA
処理ロジック24により発信アドレス及び宛先アドレス
を探索するプロセスをインターリーブするために、ライ
ン36及びライン38に制御信号を生成する。
【0033】ライン36及び38にある制御信号は多重
(multiplex) 回路40及び42に供給される。ライン3
6及び38にある制御信号はオーバラップしないパルス
である。ライン36及び38にある制御信号に応答し
て、多重回路40は探索表アドレスをゲート(gate)し、
DA処理ロジック24によりバス48で又はSA処理ロ
ジック26によりバス50でそれぞれ提供されたバス4
6を介してレジスタ44に送り込む。
【0034】探索表52は制御ブロックを記憶する。制
御ブロックは後で詳細に説明するように探索を実行する
ために読取られる。
【0035】SA/DAアドレスを見つける探索プロセ
ス中に探索表が読取られる毎に、制御ブロック出力レジ
スタ56に制御ブロックが記憶され、ライン36及びラ
イン38のゲート信号の制御の下に、多重回路42及び
バス58及びバス60を介してDA処理ロジック24又
はSA処理ロジック26に供給される。
【0036】DA処理ロジック24によるDA探索プロ
セスの結果、もし宛先アドレスが見つかれば、探索プロ
セスの終了時に読取られる制御ブロック内容であるDA
葉が生成される。もし宛先アドレスが見つからなけれ
ば、発信ポート以外の各ブリッジ・ポートに対するフレ
ームの同報通信コマンドが生成される。従って、DA葉
は経路指定情報を含む。それはレジスタ62に記憶さ
れ、バス27を介してフレーム処理及び経路指定装置1
2に供給される。
【0037】同様に、SA処理ロジック26によるSA
探索プロセスの結果、SA葉が生成されてレジスタ64
に記憶される。復号器回路66は、探索プロセスの終了
時にSA葉レジスタ内容に応答し、SAアドレスが見つ
からないこと及びこの発信アドレスを見つけるために必
要な制御ブロック情報により探索表が更新されねばなら
ないことを意味する放棄状態でSA葉プロセスが終了し
たことを検出すると、その出力ライン72を活動化す
る。
【0038】信号はライン72でゲート回路70に供給
される。ゲート回路70により、レジスタ22内のSA
値と発信端末が属するLAN番号を構成するLAN識別
とが更新機構74に供給される。
【0039】後で説明するように、更新機構74は更新
情報(SA; LAN N゜)を緩衝記憶し、フレーム処
理及び経路指定装置12によってライン33及びライン
35に生成された信号により進行中のSA/DAプロセ
スがないとき活動化されて探索表制御ブロックを更新す
る。
【0040】前記動作を行なうため、ライン33が活動
化されると更新機構74は探索プロセスを開始し、SA
/DA処理ロジックと同じ動作を実行する。この動作は
アドレス・バス78による探索表のアドレス指定、バス
57を介してレジスタ56から受取った読取り制御ブロ
ックの処理、及びバス80によるレジスタ82内の更新
情報の作成を含む。フレーム処理及び経路指定装置12
は各フレームの開始で活動化されるフレーム開始信号を
ライン35に供給する。よって、更新機構74は更新情
報を書込む前にこの信号を検査し、該信号が非活動状態
である場合にだけ更新情報を書込む。更新情報は該信号
が非活動状態でない場合に保管され、非SA/DAプロ
セス・ラインが活動状態のときに書込まれる。これはS
A/DA探索プロセス中の制御ブロックの完全性を保証
する。
【0041】読取/書込制御信号は、SA/DA探索プ
ロセス中にSA/DAプロセス制御回路34から又は更
新プロセス中に更新機構74からライン84で探索表5
2に供給される。
【0042】図3は本発明に従って探索表52を構築す
る方法を示す。説明を簡単にするために、図3の左側の
部分は12ビット・アドレス・リストの最初の項目を示
すものとする。
【0043】0000から1111までのビット位置0
〜3で同じ4ビットを有するアドレスの各セットにおい
て、ビット位置4〜11にあるパターンは、図3の右側
の部分に示すように、2進数から独立した二分木として
表わすことができる。
【0044】探索表52は、探索を実行できる互いに連
鎖された制御ブロックCBを含む。図4は、図3に示す
7つのアドレスに対応する制御ブロックの内容を示す。
【0045】アドレス0000〜1111(十進数表示
で0〜15)に記憶された制御ブロックはパターンの探
索を開始し、対応する二分木で経路を見つける次の制御
ブロックを指す情報を含む。パターン探索のために読取
られた最初の制御ブロックは、該パターンの左側の位置
0〜3にある4ビットによりアドレス指定される。
【0046】特定の制御ブロックのフォーマットが図3
に示されている。
【0047】各制御ブロックはコマンド・フィールドO
Pを含む。このコマンド・フィールドは探索パターンで
実行せねばならない命令を指す値にセットされる。
【0048】コマンド・フィールドOPは、このフィー
ルドの2ビットを符号化して11、01、10又は00
にし、それぞれTEST(検査)、END(終了)、COMPARE(比較)
又はLEAF(葉)にセットすることができる。
【0049】LEAFコマンド・フィールドの符号化は00
に等しくなるように選択される。なぜなら、アドレス0
000〜1111の制御ブロックは決して葉制御ブロッ
クではありえず、従ってこれらの制御ブロックのコマン
ド・フィールドにある00は該制御ブロックが無効であ
る(即ち使用されない)ことを示すからである。
【0050】TESTにセットされると、フィールドNBT(次
に検査するビット) は探索されるパターンのどのビット
が検査を要するかを示す値にセットされ、フィールドNC
A(次の制御ブロック・アドレス) は次の制御ブロックの
アドレスを示す。
【0051】ENDにセットされたコマンド・フィールド
を有する制御ブロックはNCAフィールドを含む。
【0052】COMP(比較)にセットされたコマンド・フ
ィールドを有する、CB1 として図示された制御ブロック
はパターン・フィールドを含み、次の制御ブロックCB2
は、次の制御ブロックを指すNCAフィールドを含む。
【0053】LEAFにセットされたコマンド・フィールド
を有する、CB3 として図示された制御ブロックは経路指
定に用いられるLAN番号のような任意の所望の情報を
含む。次の制御ブロックCB4 は、発信アドレスの探索の
終了時にLEAF制御ブロックを読取る毎に現在時刻の値に
セットされるAGE(時刻) フィールドを含むとともに、対
応する端末アドレスも含む。更新機構74で実行する背
景タスクは定期的に探索表を走査し、古すぎるAGE値が
葉のなかで見つかると、制御ブロックCB4で見つかった
対応するパターンに導く制御ブロックが更新機構74に
よって削除されるように、このパターンのDELETE(削除)
コマンドを生成する。
【0054】制御ブロックのサイズは、種々のフィール
ドを探索表の容量を最小にするのに最も都合よく配列す
る当業者には明白であるので、詳細には記述しない。
【0055】本発明の良好な実施例では、探索表内のエ
ントリを見つけるためにTEST制御ブロックのNBT 値で決
定された探索すべきパターンの指定されたビットを検査
し、見つかったエントリが探索されるパターンに等しい
ことを検査する大域比較を実行することにより探索が実
行される。
【0056】従って、探索パターンの4つの最上位ビッ
トが0000であると仮定すると、探索表のアドレス(A
DD) 0の制御ブロックは、探索機構のDA処理ロジック
24、SA処理ロジック26又は更新機構74によって
読取られる。図4に示すように、この制御ブロックの制
御フィールドはTESTにセットされ、NBT フィールドは8
にセットされ、NCA フィールドは20にセットされる。
位置8のビットは図3に示すように検査されねばならな
いことを示す。もし検査されたビットが0に等しけれ
ば、アドレス NCA=20の制御ブロックが読取られ、もし
それが1に等しければ、アドレス NCA+1=21のNCAフィ
ールドが読取られる。
【0057】アドレス20の制御ブロックの内容は次に検
査するビットNBT がビット9であることを示す。もしビ
ット9が0に等しければ、アドレス NCA=25の制御ブロ
ックが読取られ、もしビット9が1に等しければ、アド
レス NCA+1=26の制御ブロックが読取られる。
【0058】アドレス25及びアドレス26の制御ブロ
ックはEND コマンド・フィールドを含む。
【0059】制御ブロック25のNCA フィールドは制御
ブロック30を指し、制御ブロック26のNCA フィール
ドは制御ブロック40を指す。
【0060】制御ブロック30及び制御ブロック40は
COMPコマンド・フィールドを含む。よって、探索機構の
最後の動作は、制御ブロック30が読取られるか制御ブ
ロック40が読取られるかにより、パターン01110
000又は01110110を有する比較動作である。
制御ブロック・パターンと探索すべきパターンとが一致
すれば、制御ブロック31又は制御ブロック41で見つ
かった次の制御ブロック・アドレスが読取られる。この
ようにしてLEAFに達する。
【0061】アドレス21の制御ブロックはEND コマン
ド・フィールドを含む。もしビット8が1に等しけれ
ば、この制御ブロックは探索機構によって読取られる。
この制御ブロックは、COMPコマンド・フィールドを含む
アドレス NCA=50の制御ブロック及び探索すべきパター
ンと比較せねばならないパターン01111111を指
す。もし制御ブロック・パターンと探索すべきパターン
とが一致すれば、制御ブロック51で見つかった次の制
御ブロック・アドレスが読取られる。このようにしてLE
AFに達する。
【0062】もし探索の終了時に制御ブロック・パター
ンと探索すべきパターンの間に不一致が見つかれば、探
索機構がとる処置は探索されるパターンが発信アドレス
処理ロジックにより探索されたか、宛先アドレス処理ロ
ジックにより探索されたか又は更新機構により探索され
たかによる。
【0063】もし発信アドレスが見つかれば、SA処理
ロジックは葉制御ブロックのAGE 値を現在時刻値に更新
する。そのために、時刻値はバス80を介して更新レジ
スタ82に書込まれる。
【0064】もし発信アドレスが見つからなければ、探
索表は更新されねばならない。後で説明するように、こ
れは更新機構によって行なわれる。また、新しい発信ア
ドレスをフレーム処理及び経路指定装置12が受取る限
り、探索表は更新機構によって構築される。
【0065】図4の右側の部分は図3に示す二番目の二
分木で探索を実行するための制御ブロックの内容を示
す。
【0066】図5は、n=48及びp=8000と仮定
し、従って探索機構により実行される48ビットのアド
レス・パターンを探索する動作の流れ図を示す。本発明
の良好な実施例では、探索すべきパターンの左側のk=
12ビットを用いて探索表をアドレス指定し、最初の制
御ブロックを見つけて探索を開始する。この流れ図か
ら、当業者はSA処理ロジック26及びDA処理ロジッ
ク24をハードウェア又はソフトウェアで設計できる
が、探索プロセスを高速にするためには、ハードウェア
による実現が推奨される。
【0067】SA探索ロジック26又はDA探索ロジッ
ク24の最初の動作100 は探索するパターンを記憶する
ことである。次に、動作102 で、探索すべきパターンの
12の最上位ビットMSBに等しいと仮定できる左側の
12ビットがアドレス・レジスタ44にゲートされる。
【0068】動作102でアドレス・レジスタに記憶され
たアドレスの制御ブロックが動作104で読取られ保管さ
れる。
【0069】動作106 でコマンド・フィールドOPが復
号され検査される。もしOPがTESTに等しければ、保管
されたNBT値により与えられた位置のビットが動作108で
検査される。
【0070】もし前記ビットが0に等しければ、動作10
4で保管されたCB(制御ブロック)のNCA値が動作110で
アドレス・レジスタ44にゲートされ、動作104 のプロ
セスを再開する。
【0071】もしNBT 位置のビットが1に等しければ、
動作112でNCAを1だけ増加してアドレス・レジスタ44
にゲートし、動作104のプロセスを再開する。
【0072】動作106でOPビットがENDに等しければ、
動作104 で保管された制御ブロックからのNCA値が動作1
14でアドレス・レジスタ44にゲートされる。
【0073】このアドレスの制御ブロックは動作116で
読取られ保管される。次に、動作118でコマンド・フィ
ールドが検査される。
【0074】もしこのコマンド・フィールドがCOMPコマ
ンド・フィールドでなければ、誤り(ERROR)信号が生成
される。
【0075】もしコマンド・フィールドがCOMPに等しけ
れば、動作116 で保管された制御ブロックのパターンは
動作120 で探索されるパターンのビット13〜17と比
較される。
【0076】もし動作122 で比較されたパターンが等し
ければ、アドレス・レジスタ44の内容は動作124 で1
だけ増加され、次の制御ブロックが読取られ保管され
る。保管された制御ブロックのNCAフィールドは動作126
でアドレス・レジスタ44にゲートされる。このアドレ
スの制御フィールドは動作128で読取られ保管され、NCA
アドレスも保管される。
【0077】保管された制御ブロックのOPフィールド
は動作130で検査される。
【0078】もしOPフィールドがLEAFに等しければ、
動作132 で、葉制御ブロックのデータ出力内容は探索す
べきパターンが宛先アドレスの場合はレジスタ62にロ
ードされ、又は探索すべきパターンが発信アドレスの場
合はNCA+1アドレス(このNCAは動作128で保管された値
である)のLEAFのAGE フィールドが更新される。
【0079】動作130 でOPフィールドがLEAFでないこ
とが分かれば、誤り信号が生成される。
【0080】動作122で不一致が見つかるか又は動作106
でTESTフィールド又はEND フィールドと異なるコマンド
・フィールドが見つかれば、動作134 でパターンが見つ
からないことを示す。
【0081】次に、動作136 で、もし探索されるパター
ンが発信アドレスであれば、前に図2に関連して説明し
たように、レジスタ64にSA葉値がロードされる。
【0082】もし探索すべきパターンが宛先アドレスで
あれば、DA葉レジスタ62に同報通信コマンドがロー
ドされる。これは、発信ポートを除く全てのブリッジ・
ポートに前記フレームを同報通信せねばならないことを
意味する。従って、宛先アドレスを有する端末がもしあ
れば、そのアドレスを発信アドレスとして含む応答フレ
ームを送ることができるので、このアドレスの走査プロ
セスを実行することができる。
【0083】本発明の良好な実施例では、最初の制御ブ
ロックに続く10進表示のアドレス0〜4095の制御
ブロックは、互いに連鎖されるバッファ・レジスタに記
憶され、新しいパターンが挿入されると、更新機構によ
り、空きバッファ・キューからリース(lease) すること
ができ、パターンが削除されると空きバッファ・キュー
にリリース(release) することができる。このような実
施例は当業者には周知であるので、詳細な説明は行なわ
ない。ここで、図6乃至図10に関連して、SA/DA
処理ロジックによって新しいパターンを見つけることが
できるように制御ブロックを探索表に挿入する更新機構
で実現された方法を説明する。この方法はロジック回路
により又はマイクロプロセッサにより実現できる。
【0084】図6のステップ140 に示すように、図2の
回路64、66及び70による決定に従ってパターンPT
Iの挿入を要するときプロセスが開始される。
【0085】ステップ142 で、PTI を挿入するパターン
の左側の12のビットに対応するアドレスA(MSB)の最初
の制御ブロックCB1が読取られ保管される。
【0086】ステップ144 で制御ブロックCB1のOP1コマ
ンド・フィールドが検査される。
【0087】もしそれがTEST又はENDに等しくなければ
ステップ146に進む。もしそれがENDに等しければステッ
プ148 に進む。もしそれがTESTに等しければ図7の上部
のステップ150に進む。
【0088】ステップ146 で、更新機構は空きバッファ
・キューから4つのバッファ・アドレス、例えばアドレ
ス yi、yi+1、zi及び zi+1を取得する。次に、もしフレ
ーム行の開始が活動状態でなければ、ステップ152 で探
索表は下記のように書込まれて更新される: アドレス A(MSB) : END, NCA=yi アドレス yi : COMP, PTIのビット 12〜
47 アドレス yi+1 : NCA=zi アドレス zi : LEAF, LEAF 値 アドレス zi+1 : AGE, PTI
【0089】ステップ142でCB1から保管されたアドレス
NCA1にある次の制御ブロックCB2 がステップ148で読取
られ保管される。この制御ブロックの制御フィールドOP
2はステップ154で検査される。もしそれがCOMPと異なれ
ば、ERROR信号が生成される。もしそれがCOMPに等しけ
れば、更新機構はステップ156 で空きバッファ・キュー
から6つのバッファ・アドレス、例えばアドレス xi、x
i+1、yi、yi+1、zi 及びzi+1を取得する。次に、ステッ
プ158で、PTIを挿入するパターンのビット12〜47
は、ステップ148でCB2から保管されたパターンPTC2と比
較され、不一致がある場合に、最初のビット位置bmを
左側から検出する。ステップ160 で、前記挿入するパタ
ーン内のbm位置のビットの値が検出される。次に、ス
テップ162 及びステップ164 で、もしフレーム信号の開
始が非活動状態であれば、更新された制御ブロックが書
込まれる。
【0090】ステップ162 は位置bmのビットが0の等
しい場合に開始され、探索表は下記の探索表の書込みに
より更新される: アドレス A(MSB) : TEST bm, NCA=xi アドレス xi : END, NCA=yi アドレス xi+1 : CB1 アドレス yi : COMP, PTIのビット 12〜4
7 アドレス yi+1 : NCA=zi アドレス zi : LEAF, LEAF 値 アドレス zi+1 : AGE, PTI
【0091】ステップ164 は位置bmのビットが1の等
しい場合に開始され、探索表は下記の探索表の書込みに
より更新される: アドレス A(MSB) : TEST bm, NCA=xi アドレス xi : CB1 アドレス xi+1 : END, NCA=yi アドレス yi : COMP, PTIのビット 12〜4
7 アドレス yi+1 : NCA=zi アドレス zi : LEAF, LEAF 値 アドレス zi+1 : AGE, PTI
【0092】ステップ144で制御ブロックCB1のコマンド
・フィールドがTESTに等しければ、ENDでそのOPフィ
ールドがセットされる制御ブロックCBeが読取られるま
で、連続する制御ブロックCBj+1(j=1,2,3...)を読取る
ループが開始される。これは図7のステップ150、166、
168及び170に示す。ステップ150 で、連続する制御ブロ
ックCBj の位置NBTjのビットが検査される。もしそれら
が0に等しければ、ステップ166が開始され、アドレスN
CAjの次の制御ブロックCBj+1を読取る。CBj+1 アドレス
=NCAjと制御ブロックCBj+1の内容とが保管される。
【0093】もしそれらが1に等しければ、ステップ16
8が開始され、アドレス(NCAj)+1 にある次の制御ブロッ
クCBj+1を読取る。CBj+1アドレス=(NCAj)+1と制御ブロ
ックCBj+1の内容とが保管される。
【0094】ステップ170で、連続する制御ブロックCBj
のコマンド・フィールドOPj が検査され、もしそれらが
TESTに等しければ、ステップ150に戻る。
【0095】ENDに等しいコマンド・フィールドOPeを有
する制御ブロックCBe が読取られると、ステップ172が
開始される。
【0096】ステップ172で、アドレスNCAeの次の制御
ブロックCBe+1が読取られる。前に読取られた制御ブロ
ックCBe-1に含まれた制御ブロックCBeのアドレスが保管
される。NCAe=CBe+1アドレスとCBe+1制御ブロックの内
容とが保管される。
【0097】次に図8の上部のステップ174が開始され
る。
【0098】ステップ174 で制御ブロックCBe+1のコマ
ンド・フィールドOPe+1が検査される。もしそれがCOMP
と異なれば、ERROR(誤り)信号が生成される。
【0099】もしそれがCOMPに等しければ、ステップ17
6 で、更新機構は空きバッファ・キューから6つのバッ
ファ・アドレス、例えばアドレスxi、xi+1、yi、yi+1、
zi及びzi+1を取得する。
【0100】次に、ステップ178で、PTIを挿入するパタ
ーンのビット12〜47が、ステップ172でCBe+1から保管さ
れたパターンPTCe+1と比較され、不一致がある場合に、
左側から最初のビット位置bmを検出する。ビット位置
bmと前記挿入するパターンの位置のビットの値とが保
管される。
【0101】ステップ180で、ビット位置bmはステッ
プ142、166及び168で保管された全てのNBTjの値と比較
される。
【0102】ステップ182で、もしbmがNBT1よりも小
さければステップ184が開始され、もしbmが全てのNBT
jの値よりも大きければステップ 188(図9)が開始さ
れ、もしbmがNBT1と最後に見つかったNBTjとの間にあ
ればステップ194 (図10)が開始される。
【0103】ステップ184において、ステップ178で保管
されたbm位置のビット値が検査される。
【0104】もしそれが0に等しければ、ステップ186
において、ステップ162(図6)と同じように制御ブロ
ックが更新され、もしそれが1に等しければ、ステップ
187 において、ステップ164(図6)と同じように制御
ブロックが更新される。
【0105】ステップ188 において、bm位置のビット
値が検査され、ビット値に従って制御ブロックが検査さ
れる。
【0106】もしbm位置のビットが0に等しければ、
ステップ190 が開始され、下記のように探索表が更新さ
れる: CBeアドレス : TEST bm, NCA=xi アドレス xi : END, NCA=yi アドレス xi+1 : CBe アドレス yi : COMP, PTIのビット 12〜
47 アドレス yi+1 : NCA=zi アドレス zi : LEAF, LEAF 値 アドレス zi+1 : AGE, PTI
【0107】もしbm位置のビットが1に等しければ、
ステップ190 が開始され、下記のように探索表が更新さ
れる: CBeアドレス : TEST bm, NCA=xi アドレス xi : CBe アドレス xi+1 : END, NCA=yi アドレス yi : COMP, PTIのビット 12〜
47 アドレス yi+1 : NCA=zi アドレス zi : LEAF, LEAF 値 アドレス zi+1 : AGE, PTI
【0108】ステップ194(図10)において、bmの方
が大きい左側から最初の NBTj=NBTfが決定され、NBTf
を含む制御ブロックのアドレスNCAf-1がステップ166及
び168で保管された制御ブロックから探索される。
【0109】ステップ196 において、bm位置のビット
値が検査される。ビット値に従って制御ブロックが更新
される。
【0110】もしbm位置のビットが0に等しければ、
ステップ198 が開始され、下記のように探索表が更新さ
れる: NCAf-1アドレス : TEST bm, NCA=xi アドレス xi : END, NCA=yi アドレス xi+1 : CBf アドレス yi : COMP, PTIのビット 12〜
47 アドレス yi+1 : NCA=zi アドレス zi : LEAF, LEAF 値 アドレス zi+1 : AGE, PTI
【0111】もしbm位置のビットが1に等しければ、
ステップ200 が開始され、下記のように探索表が更新さ
れる: NCAf-1アドレス : TEST bm, NCA=xi アドレス xi : CBf アドレス xi+1 : END, NCA=yi アドレス yi : COMP, PTIのビット 12〜
47 アドレス yi+1 : NCA=zi アドレス zi : LEAF, LEAF 値 アドレス zi+1 : AGE, PTI
【0112】本発明の他の実施例では、2つの異なるS
A処理ロジック26及びDA処理ロジック24を備える
ことができ、DA処理ロジック24は図5に関連して説
明したように探索機能だけを実行し、SA処理ロジック
26は図5乃至図10の探索機能及び挿入機能を図11
に示すように組合わせる。
【0113】このような実施例では、発信アドレスSA
がSA処理ロジック回路26により探索される毎に、図
11に示す動作が実行される。これらの動作は図5乃至
図10に示されたものと同じ参照番号を有する。
【0114】図6乃至図10に示す動作(即ちステッ
プ)のシーケンスは比較動作に達するまで実行され、ス
テップ158又はステップ178で、読取り制御ブロックにお
けるパターンと探索する発信アドレスのビット12〜4
7の間の比較が実行される。ステップ158^又はステップ
178^に示すように、ステップ158又はステップ178で検出
された一致はSAアドレスが見つかることを意味する。
次に、図5に詳しく示されたステップ124、126、128、1
30及び132が実行される。
【0115】ステップ158又はステップ178で検出された
不一致は、SAパターンが見つからずSAパターンが挿
入されねばならないことを意味し、従って不一致は図
6、図9及び図10の制御ブロック更新ステップにつな
がる。
【0116】もしステップ142 で読取られた最初の制御
ブロックのコマンド・フィールドがTEST又はEND と異な
るならば、SAパターンも挿入されねばならず、図6の
ステップ146及びステップ152が実行される。
【0117】次に、パターンの時刻値が許容できる範囲
から外れているとき探索表を更新してパターンを削除す
る方法を図12乃至図14に関連して説明する。
【0118】前述のように、削除するパターンは更新機
構により発見される。保留されているSA/DAプロセ
ス又はINSERT(挿入)プロセスがないとき、更新機構は図
12乃至図14に示す削除プロセスを開始する。
【0119】前記プロセスは210に示すように削除する
パターンPTDの選択で始まり、前記パターンは図5で説
明した探索方法を用いて探索される。
【0120】削除プロセスは下記の4つのレジスタを必
要とする: ・図12乃至図14でTESTレジスタと呼ばれ、OP=TEST
コマンド・フィールドが検出されると現在の制御ブロッ
クのアドレスがロードされる、最後のTEST制御ブロック
・アドレス・レジスタ・END レジスタと呼ばれ、OP=TE
STコマンド・フィールドが検出されると現在の制御ブロ
ックのアドレスがロードされる、END制御ブロック・ア
ドレス・レジスタ・COMPレジスタと呼ばれ、OP=COMPコ
マンド・フィールドが検出されると、現在の制御ブロッ
クのアドレスがロードされる、COMP制御ブロック・アド
レス・レジスタ・LEAFレジスタと呼ばれ、OP=LEAFコマ
ンド・フィールドが検出されると、現在の制御ブロック
のアドレスがロードされる、LEAF制御ブロック・アドレ
ス・レジスタ
【0121】削除プロセスの最初のステップ212で、削
除するパターンの12個のMSBビットがアドレス・レジ
スタ44にゲートされる。次に、ステップ214 で、前記
アドレス・レジスタに含まれたアドレスの制御ブロック
が読取られ保管される。
【0122】ステップ216でOPコマンド・フィールド
が検査される。
【0123】もしOPがTESTに等しければ、ステップ21
7 で、アドレス・レジスタの内容がTESTレジスタにロー
ドされる。
【0124】そして、ステップ218で、保管された制御
ブロックで見つかったNBTビットが検査される。もしNBT
ビットが0に等しければ、ステップ219 でNBTビットの
値0が保管され、ステップ220で、保管された制御ブロ
ックからのNCAフィールドがアドレス・レジスタ44に
ゲートされる。
【0125】もしNBTビットが1に等しければ、ステッ
プ221 でNBTビットの値1が保管され、ステップ222で、
保管された制御ブロックからNCAフィールド+1が計算さ
れ、アドレス・レジスタ44にゲートされる。
【0126】OP=END コマンド・フィールドを有する制
御ブロックが読取られるまで、ステップ216のプロセス
が反復される。もしOP=ENDの制御ブロックが読取られ
れば、ステップ223で、ENDレジスタにアドレス・レジス
タの内容がロードされる。
【0127】ステップ224で、読取られた制御ブロック
からのNCAフィールドがアドレス・レジスタ44にゲー
トされ、ステップ226 で、前記アドレス指定された制御
ブロックが読取られ保管される。
【0128】ステップ228 で制御ブロックのOPコマン
ド・フィールドが検査される。もしOPがCOMPと異なれ
ばERROR 信号が生成される。もしOPがCOMPに等しけれ
ば、ステップ229 でCOMPレジスタにアドレス・レジスタ
の内容がロードされる。次に、ステップ230で、削除す
るパターンPTDが制御ブロックから読取られたパターン
と比較される。ステップ232で不一致が検出され又はス
テップ216でOPコードがEND 又はTESTと異なることは
パターンが見つからないことを意味し、その結果、ERRO
R信号が生成される。
【0129】ステップ232で一致が検出されれば、ステ
ップ234で次の制御ブロックが読取られる。この制御ブ
ロックには次の制御ブロック・アドレスNCA が含まれ、
ステップ236 でアドレス・レジスタ44にゲートされ
る。アドレス指定された制御ブロックはステップ238で
読取られ保管される。
【0130】この制御ブロックのOPコマンド・フィー
ルドはステップ240 で検査され、もしOPがLEAFと異な
れば、誤り信号が生成される。もしOPがLEAFに等しけ
れば、ステップ242 でアドレス・レジスタ内容がLEAFレ
ジスタにロードされる。次にステップ246 で、バッファ
・アドレスがLEAFレジスタ内容及びLEAFレジスタ+1によ
り与えられる、LEAF制御ブロックを含む2つのバッファ
はリリースされる。
【0131】ステップ248 で、バッファ・アドレスがCO
MPレジスタ内容及びCOMPレジスタ内容+1によって与えら
れる、COMP制御ブロックを含む2つのバッファはリリー
スされる。
【0132】ステップ250 で、TESTレジスタがロードさ
れているかどうかを判定する検査が行なわれる。もしノ
ーなら、END レジスタで見つかったアドレスの制御ブロ
ックのコマンド・フィールドはステップ252で 00 にセ
ットされる。
【0133】もしイエスなら、ステップ219又はステッ
プ221で保管された NBTビット値がステップ254で検査さ
れる。
【0134】もしこの値が0に等しければ、ステップ25
6に示すように、ENDレジスタ内容+1により与えられたア
ドレスの制御ブロックが読取られて作業レジスタに保管
され、ENDレジスタ内容及びENDレジスタ内容+1により与
えられたアドレスのバッファはリリースされる。
【0135】もしこの値が1に等しければ、ステップ25
8に示すように、ENDレジスタ内容-1により与えられたア
ドレスの制御ブロックが読取られて作業レジスタに保管
され、ENDレジスタ内容及びENDレジスタ内容-1により与
えられたアドレスのバッファはリリースされる。
【0136】ステップ256又はステップ258が終了する
と、ステップ260 で、TESTレジスタにより与えられたア
ドレスに作業レジスタ内容が書込まれる。
【0137】前記プロセスが終了すると、TESTレジスタ
はリセットされる。
【0138】次に、TCP/IP経路指定機能機能を実
行するために前述の方法及び装置をどのように使用でき
るかについて説明する。
【0139】TCP/IPは、異質のシステムの相互接
続を可能にする周知の相互作用アーキテクチャである。
これは下記の4つの層を含むアーキテクチャである: ・物理的なネットワーク・インタフェース ・IP層(インターネット層) ・TCP層 ・アプリケーション層
【0140】この環境で二種類のノードが定義される。
ホスト・ノードはアプリケーションを実行してTCP/
IP層スタックの4つの層の機能を実現し、経路指定機
能は複数の物理的なネットワークの全域でメッセージの
経路指定を担当して物理的なネットワーク・インタフェ
ース及びIP層の機能だけを実現する。
【0141】経路指定機能はIPアドレス指定方式に基
づいて経路指定を行なう。
【0142】IPアドレスは4バイト即ち32ビットを
含み、可変長の3つのフィールド、すなわちネットワー
ク番号フィールド、サブネットワーク番号フィールド及
びホスト番号フィールドに分割される。
【0143】ネットワーク番号フィールドはネットワー
ク・クラスにより8、16又は32ビット長フィールド
である。サブネットワーク番号フィールドも可変であ
る。
【0144】各経路指定機能はIPアドレスを特定のネ
ットワーク・インタフェースに関連づける経路指定表を
含み、1つのインタフェースにメッセージを受取ると、
IP経路指定機能はメッセージ宛先アドレスを調べ、経
路指定表で探索を実行し、出力インタフェースを見つ
け、当該インタフェースを介して前記メッセージを送付
する。
【0145】論理的な観点から、経路指定表は: ・ネットワーク番号(8、16又は24ビット) ・サブネットワーク番号(可変長) ・3つのフィールド(32ビット)から成るホスト・ア
ドレスを含む。
【0146】従って、到来するメッセージの宛先IPア
ドレスが経路指定表で探索に付託されると、複数の一致
の発生がありうる。
【0147】例えば、表中に下記のエントリがあるもの
と仮定する: バイト0 バイト1 バイト2 バイト3 パターン0 64 - 0 - 0 - 0 ネットワーク経路 パターン1 64 - 3 - 0 - 0 サブネットワーク経路 パターン2 64 - 3 - 2 -56 ホスト経路 (64、3、2及び56のようなバイト値は10進数表示で示
されている)
【0148】64-3-5-9のIP宛先アドレスを有するメッ
セージは64-0-0-0及び64-3-0-0エントリと一致するが、
最後のエントリ 64-3-2-56とは一致しない。選択される
エントリは最良の一致、即ち64-3-0-0を供給するエント
リに相違ない。
【0149】この問題を解決するために、探索すべきパ
ターンと選択されたパターン1及び2との比較の後、図
4に関連して説明した探索表に等しい経路指定表は中間
の葉に通じる制御ブロックを包含する。
【0150】図15はこれらの3つのパターン、探索す
べきパターン64-3-5-9及び対応する制御ブロックを示
し、ビット ba及び bcが位置 "a"及び "c"で検査されね
ばならないと仮定する。
【0151】例示されたバイト0の内容、即ち"64"を用
いて対応する探索表のアドレス"64"の制御ブロックを読
取る。このアドレスの空の制御ブロックは一致が発見で
きないことを意味している。
【0152】図15に示すように、もし制御ブロックが
TEST制御ブロックであるならば、位置 "a"のNBTビット
が検査され、かつ、もし位置 "a"のビット baが0であ
れば、アドレスNCA1にある次の制御ブロックが読取られ
る。
【0153】アドレスNCA1の制御ブロックはCOMP制御ブ
ロックを指すアドレスNCA2を有するEND 制御ブロックで
あり、そのパターンの値はパターン1のバイトB1であ
る。アドレスNCA2+1の制御ブロックは次の制御ブロック
・アドレスNCA3を含み、アドレスNCA3の制御ブロックは
0にセットされた中間葉標識 IL を有する中間LEAFを包
含する制御ブロックのアドレスを含む。中間葉の内容は
作業レジスタにロードされる。最初の中間葉の内容は、
もし不一致が検出されれば、64-0-0-0ネットワーク経路
の最良の一致を指すためのLEAF値を含み、もし一致が検
出されれば、サブネットワーク経路の一致を指すための
LEAF値を含む。後者の場合、アドレスNCA3+1の制御ブロ
ックは、探索を続けるために次の制御ブロックを指すア
ドレスNCA5を有する位置 "c"のビットのTEST制御ブロッ
クである。
【0154】もしbcが0に等しければ読取られるアドレ
スNCA5の制御ブロックは例示の END制御ブロックであ
る。これはアドレスNCA6のCOMP制御ブロックを指し、そ
のパターンの値はパターン2のバイトB1、B2及びB3であ
る。もし探索パターンとの一致が見つかれば、アドレス
NCA6+1にある次の制御ブロックが読取られ、この制御ブ
ロックは1にセットされた標識 IL を有する最後のLEAF
のアドレスNCA7を含み、このLEAFが最後の葉であること
を示す。
【0155】アドレスNCA7の制御ブロックは最後のLEAF
値を含む。もし一致が見つかれば、この値は中間のLEAF
値を廃棄し、さもなければ、探索の終りに中間のLEAF値
が用いられる。
【0156】特定の制御ブロックの配列は、TCP/I
Pアーキテクチャに適用されたときの本発明の概念を示
すために与えられるだけであり、制御ブロックのサイズ
により変更することができる。
【0157】本発明はTEST制御ブロック内のNBT フィー
ルドによって決定されたビットについて簡単な検査を実
行すると仮定して記述されている。しかしながら、探索
の速度を速くするために、2つ又は3つ以上のビットに
ついて検査を実行することができる。
【0158】2つのビットに関する検査が用いられると
仮定すると、TEST制御ブロックの内容は: TEST, NBT=X, になる。
【0159】NCAは位置X及びX+1のビットが検査される
ことを意味し、アドレスNCAは、検査される2つのビッ
トの値、即ち00、01、10、11による読取り制御ブロック
を含むアドレスNCA、NCA+1、NCA+2、NCA+3の4つの隣接
制御ブロックのグループ内の最初の制御ブロックのアド
レスである。
【0160】3つのビットに関する検査は、検査される
3つのビットの値、即ち000〜111による読取りアドレス
NCA〜NCA+7の8つの隣接制御ブロックを必要とする。
【0161】1ビットよりも多くのビットに関する検査
の実行は探索時間を短縮するが、探索表にはより多くの
制御ブロックを必要とする。
【0162】
【発明の効果】本発明により、多数の参照パターンのう
ちから1つのビット・パターンを非常に短い時間で発見
できる探索アルゴリズムを実現する方法及び装置を提供
できる。
【図面の簡単な説明】
【図1】本発明による探索装置及び方法を実現できる2
つの通信ネットワークの間のブリッジの概要を示す図で
ある。
【図2】本発明による方法を実現するパターン探索機構
をより詳細に示す図である。
【図3】本発明の概念及び制御ブロック・フォーマット
を表わすアドレスのリストを示す図である。
【図4】図3に示されたパターンから1つのパターンを
探索する制御ブロックの内容を示す図である。
【図5】図2の探索ロジック回路24又は26で実現さ
れた、パターンを探索する方法を示す図である。
【図6】制御ブロックを更新して新しいパターンを挿入
する図2の更新機構で実現された方法を示す図である。
【図7】制御ブロックを更新して新しいパターンを挿入
する図2の更新機構で実現された方法を示す図である。
【図8】制御ブロックを更新して新しいパターンを挿入
する図2の更新機構で実現された方法を示す図である。
【図9】制御ブロックを更新して新しいパターンを挿入
する図2の更新機構で実現された方法を示す図である。
【図10】制御ブロックを更新して新しいパターンを挿
入する図2の更新機構で実現された方法を示す図であ
る。
【図11】制御ブロックを更新して新しいパターンを挿
入する探索ロジック回路26で実現できる別の方法を示
す図である。
【図12】制御ブロックを更新してパターンを削除する
更新機構で実現された方法を示す図である。
【図13】制御ブロックを更新してパターンを削除する
更新機構で実現された方法を示す図である。
【図14】制御ブロックを更新してパターンを削除する
更新機構で実現された方法を示す図である。
【図15】本発明の方法及び装置がTCP−IP経路指
定機能で実現されるときに用いる制御ブロック内容を示
す図である。
【符号の説明】
10 ブリッジ 12 フレーム処理及び経路指定装置 14 リンク 16 リンク 18 ローカル・エリア・ネットワーク(LAN
X) 20 ローカル・エリア・ネットワーク(LAN
Y) 22 レジスタ 23 パターン探索機構 24 DA処理ロジック 25 出力バス 26 SA処理ロジック 27 バス 28 バス 30 バス 34 SA/DAプロセス制御回路 40 多重回路 42 多重回路 44 レジスタ 46 バス 48 バス 50 バス 52 探索表 56 制御ブロック出力レジスタ 57 バス 58 バス 60 バス 62 レジスタ 64 レジスタ 66 復号器回路 70 ゲート回路 74 更新機構 78 アドレス・バス 80 バス 82 レジスタ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04L 12/28

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】n及びpは整数であり、pは2よりも小
    さくかつp個のパターンはnビットから生じうる2
    のパターンのうちの任意のパターンであるとき、p個の
    nビット・パターンのうちから1つのnビット・パター
    ンを探索する方法であって、前記方法は記憶手段に記憶
    された探索表の使用を含むとともに互いに連鎖される制
    御ブロックを含み、前記制御ブロックの内容は探索すべ
    きパターンについて実行される動作を表わし、 (a) 探索すべきパターンの選択されたビットの検査動作
    を示す第1のタイプの制御ブロック、指定された値との
    比較動作を示す第2のタイプの制御ブロック及びオペレ
    ーションが実行されてはならないことを示す第3のタイ
    プの制御ブロックを供給するステップと、 (b) p個のパターンの値により、p個のパターンから1
    つのパターンの発見に至る動作を各制御ブロック連鎖が
    決定するように連鎖で制御ブロックを連鎖するステップ
    と、 (c) kがnよりも小さい整数であるとき、探索すべきパ
    ターンにおけるkビットの選択されたフィールドによっ
    て示される探索表アドレスにある最初の制御ブロックを
    読取るステップと、 (d) もし読取られた制御ブロックが第3のタイプであれ
    ばパターンが見つからないことを示す信号を返送し、そ
    うでなければ第2のタイプの制御ブロックに到達するま
    で制御ブロックとそれに連鎖された制御ブロックに示さ
    れた動作を実行するステップと、 (e) 第2のタイプの制御ブロックに到達すると、探索す
    べきパターンを前記制御ブロック内の指定された値と比
    較するステップと、 (f) 探索すべきパターンがp個のパターンのうちの1つ
    のパターンであるか又はそうではないことをそれぞれ示
    すために、もしステップ(e) で一致が検出されればパタ
    ーンが見つかったことを示す情報を返送し、又はもしス
    テップ(e) で不一致が検出されればパターンが見つから
    なかったことを示す情報を返送するステップとを含むこ
    とを特徴とするパターン探索方法。
  2. 【請求項2】(g) ステップ(e) で一致が検出されると、
    第2のタイプの制御ブロックに連鎖されかつ見つかった
    パターンに関連した情報を含む最後の制御ブロックを読
    取るステップを含むことを特徴とする請求項1のパター
    ン探索方法。
  3. 【請求項3】n及びpは整数でありpは2よりも小さ
    くp個のパターンは2個のパターンのうちの任意のパ
    ターンであるとき、p個のnビット・パターンのうちか
    ら1つのnビット・パターンを探索するために、記憶手
    段に記憶された探索表(52)を備え、前記探索表は互
    いに連鎖される制御ブロック(CB)を含みかつその内
    容は探索すべきパターンで実行される動作を示す探索装
    置であって、 ・探索すべきパターンの選択されたビットの検査動作を
    示す第1のタイプの制御ブロック、指定された値との比
    較動作を示す第2のタイプの制御ブロック、オペレーシ
    ョンが実行されてはならないことを示す第3のタイプの
    制御ブロックを探索表に書込み、p個のパターンの値に
    より、p個のパターンの1つの発見に至る動作を各制御
    ブロック連鎖が決定するように、連鎖の制御ブロックを
    連鎖する手段(74、82、6図ないし10図)と、 ・kがnよりも小さい整数であるとき、探索すべきパタ
    ーンの選択されたk個のフィールドから取出される探索
    表アドレスの最初の制御ブロックを読取る手段(44、
    54、56、102)と、 ・もし読取られた制御ブロックが第3のタイプであれば
    パターンが見つからないことを示す信号を生成する手段
    (106、134、136)と、 ・最初に読取られた制御ブロックとそれに連鎖された制
    御ブロックに表示された動作を第2のタイプの制御ブロ
    ックに達するまで実行する手段(114、108、11
    8)と、 ・探索すべきパターンを第2のタイプの制御ブロック内
    の指定された値と比較する手段(120)と、 ・もし前記比較手段によって不一致が検出されればパタ
    ーンが見つからないことを示す情報を生成する手段(1
    34、136)と、 ・もし前記比較手段によって一致が検出されればパター
    ンが見つかったことを示して探索すべきパターンがp個
    のパターンのうちの1つのパターンであることを表わす
    情報を生成する手段(130、132)とを備えること
    を特徴とする探索装置。
  4. 【請求項4】前記比較手段による一致の検出に応答し
    て、第2のタイプの制御ブロックに連鎖された最後の制
    御ブロック(LEAF)及び前記見つかったパターンに関連し
    た構成情報を読取る手段(124、126)を備えるこ
    とを特徴とする請求項3の探索装置。
  5. 【請求項5】前記制御ブロック書込み手段は ・p個のパターンの選択されたkビットのフィールドの
    値から取出されたアドレスの探索表内で見つかった制御
    ブロックに、前記選択されたkビットのフィールド内の
    kビットの同じ組合せを有するパターンのうちの残りの
    (n−k)ビットから成る二分木で探索を開始する動作を
    示す情報を書込む手段(152、164、162)と、 ・選択されたkビットのフィールドの値から取出された
    アドレスの制御ブロックの各々に対応する二分木の葉の
    数に等しい複数の連鎖の制御ブロックを連鎖し、前記連
    鎖の各々の制御ブロックに葉に至る動作を書込み、前記
    動作は、もしあれば、二分木内の飛越しが存在する位置
    のビットに関する第1のタイプの検査動作、及び少なく
    とも1つの第2のタイプの比較動作を含み、前記指定さ
    れた値は前記二分木のp個のパターンの1つの(n−
    k)ビットの値である手段(176、192、194)
    とを備えることを特徴とする請求項3の探索装置。
  6. 【請求項6】端末の各々はnビットのアドレスを有し、
    従って接続装置により入力ポートと出力ポートを介して
    接続できる通信ネットワークに属する活動状態の端末の
    アドレスのセットはp個のnビットのパターンを含み、
    前記接続装置は入力ポートで受取った発信端末からの、
    発信端末アドレス・フィールド及び宛先アドレス・フィ
    ールドを含むフレームに応答して、前記フレームが経路
    指定されねばならない出力ポートを決定する端末連結用
    通信ネットワーク間接続装置(10)において、 ・宛先アドレス・パターンを探索する宛先アドレスに応
    答し、もし宛先アドレス・パターンが見つかれば、関連
    したパターン情報がフレーム経路指定情報である最後の
    制御ブロックを読取る、請求項3、請求項4又は請求項
    5の第1の探索装置と、 ・発信アドレス・パターンを探索する発信アドレスに応
    答し、もし発信アドレス・パターンが見つからなけれ
    ば、前記アドレス・パターンを見つけるために必要な制
    御ブロックを探索表に挿入するように探索表内の制御ブ
    ロックを更新して新しい制御ブロックを書込む請求項
    3、請求項4又は請求項5の第2の探索装置とを備える
    ことを特徴とする通信ネットワーク間接続装置。
  7. 【請求項7】発信アドレス・パターン及び宛先アドレス
    ・パターンで実行される動作がインターリーブされるよ
    うに第1の探索装置と第2の探索装置を交互に活動化す
    る順序づけ手段を備えることを特徴とする請求項6の装
    置。
JP4111162A 1991-06-28 1992-04-30 パターン探索方法及び装置 Expired - Lifetime JPH07118719B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP91480095A EP0520116A1 (en) 1991-06-28 1991-06-28 Method and apparatus for performing pattern search functions
FR91480095.8 1991-06-28

Publications (2)

Publication Number Publication Date
JPH05191411A JPH05191411A (ja) 1993-07-30
JPH07118719B2 true JPH07118719B2 (ja) 1995-12-18

Family

ID=8208711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4111162A Expired - Lifetime JPH07118719B2 (ja) 1991-06-28 1992-04-30 パターン探索方法及び装置

Country Status (3)

Country Link
EP (1) EP0520116A1 (ja)
JP (1) JPH07118719B2 (ja)
CA (1) CA2064957A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815737A (en) * 1995-06-05 1998-09-29 Pmc-Sierra, Inc. Approach for identifying a subset of asynchronous transfer mode (ATM) VPI/VCI values in the complete VPI/VCI range
GB2343035A (en) * 1995-06-05 2000-04-26 Pmc Sierra Ltd Searching a table in memory
GB9622535D0 (en) * 1996-10-30 1997-01-08 3Com Ireland Search apparatus
US6493347B2 (en) * 1996-12-16 2002-12-10 Juniper Networks, Inc. Memory organization in a switching device
US6675163B1 (en) * 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
US6941292B2 (en) * 2002-11-22 2005-09-06 International Business Machines Corporation Method and system for optimizing data searches in tree structures
JP7102311B2 (ja) * 2018-09-27 2022-07-19 キヤノン株式会社 通信装置、通信装置の制御方法、およびプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3916387A (en) * 1971-04-23 1975-10-28 Ibm Directory searching method and means

Also Published As

Publication number Publication date
JPH05191411A (ja) 1993-07-30
EP0520116A1 (en) 1992-12-30
CA2064957A1 (en) 1992-12-29

Similar Documents

Publication Publication Date Title
US5920886A (en) Accelerated hierarchical address filtering and translation using binary and ternary CAMs
JP3735471B2 (ja) パケット中継装置およびlsi
JP2539155B2 (ja) メッセ―ジ経路指定方法及び装置
US7219184B2 (en) Method and apparatus for longest prefix matching in processing a forwarding information database
JPH06203001A (ja) 電子メッセージ通信の経路選択方法
JPH09307581A (ja) ブリッジ装置
CN1489849A (zh) 用于三重内容可寻址存储器(tcam)表管理的方法和设备
TW200301429A (en) A method of improving the lookup performance of tree-type knowledge base searches
EP0746823B1 (en) Bit mapping apparatus and method
JPH0897844A (ja) データ通路の設定方法及び装置
JPH10257084A (ja) コンピュータ・ネットワーク内でデータ・フレームを経路指定するフレーム・ヘッダを解析する方法およびシステム
US6574701B2 (en) Technique for updating a content addressable memory
JPH07118719B2 (ja) パターン探索方法及び装置
EP1172971A2 (en) Route retrieving system, method therefor and a router device to be used in the same
US5535413A (en) System including plurality of data driven processors connected to each other
JP3623082B2 (ja) 連想メモリモジュール
US6341346B1 (en) Method for comparison between a pattern sequence and a variable length key
JP3558151B2 (ja) データ検索回路
KR100460188B1 (ko) 인터넷 프로토콜 주소 룩-업 방법
KR100459542B1 (ko) 인터넷 프로토콜 주소 룩-업 장치
US6401188B1 (en) Method for selection on a pattern sequence
CA1312957C (en) Apparatus for processing bit streams
JPH11220483A (ja) 経路情報検索方式
JPH11289345A (ja) ルータ装置及び伝達ルートの設定方法
JP3178645B2 (ja) スワップ処理をともなうデータ通信装置