JP3700574B2 - 検索成功信号先読み式出力データ選択装置 - Google Patents
検索成功信号先読み式出力データ選択装置 Download PDFInfo
- Publication number
- JP3700574B2 JP3700574B2 JP2000351361A JP2000351361A JP3700574B2 JP 3700574 B2 JP3700574 B2 JP 3700574B2 JP 2000351361 A JP2000351361 A JP 2000351361A JP 2000351361 A JP2000351361 A JP 2000351361A JP 3700574 B2 JP3700574 B2 JP 3700574B2
- Authority
- JP
- Japan
- Prior art keywords
- search
- unit
- circuit
- stage
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は、ネットワークルータ等の通信装置において、入力データの一部のビット列を検索キーとし、テーブル検索回路のデータ記憶手段に予め格納してある複数のデータで構成されているデータテーブルの中から、上記検索キーと一致する項目を含むデータを選択するテーブル検索処理を行い、複数のテーブル検索回路の出力から一意の出力を選択する出力データ選択技術に関する。このような出力データ選択技術は、例えばルータや交換機におけるテーブル検索処理に用いられる。
【0002】
【従来の技術】
図1は、CAMを使用したデータ選択装置の従来技術における構成の一例を示す図である。図1に示すデータ選択装置は、複数のCAM(Content Addressable Memory)と、各CAMの入出力を制御する出力制御回路を有する。各CAMは、入力データである検索キーに対し並列に同時検索処理を行い、検索に成功した各CAMはCAM検索成功信号を出力制御回路に送信し、出力制御回路は、検索に成功したCAMのうち、最もプライオリティの高いCAMを選択し、そのCAMから出力データを出力するように制御する。
【0003】
図2は、従来技術におけるデータ出力選択処理の動作を示すタイムチャートを示す図である。(1)は、CAM検索成功信号を示す図であり、(2)は、従来例における出力選択処理時間を示す。
【0004】
【発明が解決しようとする課題】
上記の場合、CAMの数が多くなると、出力制御回路におけるCAM選択のための論理段数が増加する等の理由により、CAMを選択する処理の時間t_peが非常に長くなるという問題がある。
【0005】
つまり、出力制御回路で制御しなければならないCAMの数が大きくなると、出力制御回路での処理遅延が大きくなり、データ選択装置全体の処理速度が低下するという問題がある。
【0006】
本発明は、複数のテーブル検索回路を用いたデータ選択処理を、処理速度を低下させることなく行うことを可能とするデータ選択装置を提供することを目的とするものである。
【0007】
【課題を解決するための手段】
本発明は、入力データの一部のビット列を検索キーとし、内部記憶領域に予め格納されている複数のデータによって構成されているデータテーブルの中から、上記検索キーと一致する項目を含むデータを選択する複数のテーブル検索回路と、上記各テーブル検索回路が出力する出力データのうちで、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するデータ出力制御回路とを具備する複数の検索ユニットと、上記各検索ユニットがそれぞれ出力する出力データのうちで、出力優先順位が最も高い出力データを所持する検索ユニットを選択するユニット出力制御装置と、を有し、上記各テーブル検索回路が同一の検索キーを用いてテーブル検索処理を行う場合、検索に成功したテーブル検索回路である各ヒット回路は、上記データ出力制御回路にデータ検索成功信号を出力し、当該データ検索成功信号を受信した上記データ出力制御回路は、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するテーブル検索回路選択処理を開始し、上記ヒット回路を有する各検索ユニットは、検索ユニット内に上記ヒット回路が存在していることを示すユニット検索成功信号を、上記ユニット出力制御装置に出力し、上記ユニット検索成功信号を受信した上記ユニット出力制御装置は、出力優先順位が最も高い出力データを所持する検索ユニットを選択する検索ユニット選択処理を開始し、当該検索ユニット選択処理の一部は、上記テーブル検索回路選択処理の一部と並行して実行され、上記ユニット出力制御装置が選択する検索ユニット内のデータ出力制御回路が、1つのテーブル検索回路を選択し、選択されたテーブル検索回路がデータを出力することを特徴とする検索成功信号先読み式出力データ選択装置である。
【0008】
本発明によれば、データ出力制御回路がデータ検索成功信号を受信するのとほぼ同時にユニット検索成功信号がユニット出力制御装置に送信されるので、データ出力制御回路による選択処理とユニット出力制御装置による選択処理を一部並行して行うことができる。
従って、選択処理を分割して並列計算を行うことが可能となり、選択処理を1段で行う場合に比べて処理時間を短縮することができる。
【0009】
本発明は次のように構成することもできる。
【0010】
本発明は、上記の検索成功信号先読み式出力データ選択装置において、上記各検索ユニットを1段目検索ユニットとし、複数の上記1段目検索ユニットと、上記複数の1段目検索ユニットの中から、1つの最優先検索ユニットを選択する1段目ユニット出力制御装置とを有するユニットを2段目検索ユニットとし、複数の上記2段目検索ユニットと、上記複数の2段目検索ユニットの中から、1つの最優先検索ユニットを選択する2段目ユニット出力制御装置とを有するユニットを3段目検索ユニットとし、上記のようにn段の検索ユニット(nは2以上)を階層的に構成し、上記各1段目検索ユニットが有する上記テーブル検索回路が、同一の検索キーについてテーブル検索処理を行い、上記検索処理に成功すると、上記1段目検索ユニットが有する上記データ出力制御回路が、最優先テーブル検索回路を選択する前に、上記ヒット回路が存在することを示す上記ユニット検索成功信号が上記1段目ユニット出力制御装置に先読みされ、同様に、n−1段目ユニット出力制御装置が最優先n−1段目検索ユニットを選択する前に、n段目ユニット検索成功信号がn段目ユニット出力制御装置に先読みされ、上記データ出力制御回路における最優先テーブル検索回路選択処理の一部と、1段目ユニット出力制御装置での最優先1段目検索ユニット選択処理の一部とが並行して実行され、また、n−1段目ユニット出力制御装置における最優先n−1段目検索ユニット選択処理の一部と、n段目ユニット出力制御装置での最優先n段目検索ユニット選択処理の一部とが並行して実行され、最終的に1つのテーブル検索回路を選択する、というものである。
【0011】
上記検索成功信号先読み式出力データ選択装置において、n−1段目ユニット出力制御装置がn段目ユニット出力制御装置にユニット検索成功信号を送信することに代えて、1段目検索ユニットがユニット検索成功信号を3段目以降のユニット出力制御装置に送信するようにしてもよい。
【0013】
また、上記データ出力制御回路は、CAM出力制御回路であり、上記CAM出力制御回路は、フリップフロップで小規模の論理回路に分割し、この分割された小規模論理回路を時系列パイプライン処理させる回路であり、上記ユニット出力制御装置は、フリップフロップで小規模の論理回路に分割し、この分割された小規模の論理回路を時系列パイプライン処理させる回路であるものとしてもよい。
【0014】
本発明の他の特徴及び利点は、添付の図面を用いた以下の説明により明らかになる。
【0015】
【発明の実施の形態】
[第1実施例]
図3は、本発明の第1実施例における検索成功信号先読み式出力データ選択装置100を示す構成図である。以下、検索成功信号先読み式出力データ選択装置はデータ選択装置という。
【0016】
データ選択装置100は、ユニット優先順位表10と、ユニット出力制御装置20と、検索ユニットSU1、SU2、・・・・、SUqとを有する。
【0017】
ユニット優先順位表10は、PLD(プログラマブル・ロジックデバイス)のレジスタに格納されている。
【0018】
検索ユニットSU1、SU2、・・・・、SUqは、入力データである検索キーについて、検索処理を行うユニットである。
【0019】
ユニット出力制御装置20は、各検索ユニットSU1、SU2、・・・・、SUqが出力する出力データの優先順位を決定するために、検索ユニットSU1、SU2、・・・・、SUqから送られるユニット検索成功信号と、ユニット優先順位表10とを読み込み、検索ユニットSU1〜SUqの出力データの中から、優先順位が最も高い出力データを所持する検索ユニットに、出力データを出力することを許可するユニット出力許可信号を送る装置である。
【0020】
検索ユニットSU1は、検索キーについてテーブル検索処理を行う複数の連想記憶メモリCAM1〜CAMpと、連想記憶メモリCAM1〜CAMpが出力する出力データの優先順位を決定するために、PLDのレジスタに格納されているCAM優先順位表31と、CAM出力制御回路41とを有する。
【0021】
CAM出力制御回路41は、CAM優先順位表31を読み込み、連想記憶メモリCAM1〜CAMpの出力データの中から、優先順位が最も高い出力データを所持する連想記憶メモリCAMに、出力データを出力することを許可するCAM出力許可信号を送る回路である。
【0022】
検索ユニットSU2は、検索キーについてテーブル検索処理を行う複数の連想記憶メモリCAM1〜CAMmと、連想記憶メモリCAM1〜CAMmが出力する出力データの優先順位を決定するために、PLDのレジスタに格納されているCAM優先順位表32と、CAM出力制御回路42とを有する。
【0023】
また、検索ユニットSUqは、検索キーについてテーブル検索処理を行う複数の連想記憶メモリCAM1〜CAMnと、連想記憶メモリCAM1〜CAMnが出力する出力データの優先順位を決定するために、PLDのレジスタに格納されているCAM優先順位表3qと、CAM出力制御回路4qとを有する。
【0024】
上記ユニット出力許可信号を得た検索ユニット内のCAM出力制御回路からCAM出力許可信号を受けたCAMが、データ選択装置100における最終的な出力データを出力する。
【0025】
上記の連想記憶メモリ(CAM)は、入力データの一部のビット列を検索キーとし、内部記憶領域に予め格納されている複数のデータによって構成されているデータテーブルの中から、上記検索キーと一致する項目を含むデータを選択するテーブル検索回路の例である。上記テーブル検索回路は、たとえば、MPUとRAMとによって構成された回路でもよく、また、SRAMとハードウェアロジックとによって構成された回路でもよい。なお、上記データテーブルは、テーブル検索回路が持っているデータである。
【0026】
また、CAM出力制御回路41、42、・・・・、4qは、上記各テーブル検索回路が出力する出力データのうちで、出力優先順位が最も高い出力データを選択するデータ出力制御回路の例である。
【0027】
さらに、検索ユニットSU1、SU2、・・・・、SUqのそれぞれは、複数の上記テーブル検索回路と、上記データ出力制御回路とを具備する検索ユニットの例である。
【0028】
図4は、データ選択装置100における出力データの選択方式を詳細に示す図である。
【0029】
検索ユニットSU1に着目すると、検索キーについて検索成功した連想記憶メモリCAMから、CAM検索成功信号が、CAM出力制御回路41に送られる。同図に示すように、CAM出力制御回路41は論理和回路410Rを有し、その論理和回路410Rが各連想記憶メモリCAMl〜CAMpから送られたCAM検索成功信号の論理和を実行し、CAM出力制御回路41が最優先出力データを有する連想記憶メモリCAMを選択する前に、ユニット検索成功信号がユニット出力制御装置20に送られ先読みされる。
【0030】
なお、CAM検索成功信号を受信し、ユニット検索成功信号をユニット出力制御装置20に送信する回路はCAM出力制御回路が持つ必要はない。従って、例えば、論理和回路0RをCAM出力制御回路の外に実装し、その論理和回路0Rからユニット検索成功信号をユニット出力制御装置20に送信することができる。
【0031】
ユニット検索成功信号に応じて、ユニット出力制御装置20が検索ユニットの最優先出力データの選択処理を行うので、ユニット出力制御装置20における検索ユニットの最優先出力データの選択処理の開始が速く、つまり、CAM出力制御回路41が行う連想記憶メモリCAMの最優先出力データの選択処理と、ユニット出力制御装置20が行う検索ユニットの最優先出力データの選択処理とが、同時に行われる。
【0032】
そして、ユニット出力制御装置20は、最優先の出力データを出力する検索ユニットを選択し、その検索ユニットにユニット出力許可信号を送信する。なお、上述のように、このときCAM出力制御回路でもCAMの選択処理が並行して行われる。
【0033】
ユニット出力許可信号を得たCAM出力制御回路(CAM出力制御回路41〜4qのうちの1つのCAM出力制御回路)が、上記のように選択された連想記憶メモリCAMに、CAM出力許可信号を送る。上記CAM出力許可信号を受けた連想記憶メモリCAMが、最終的にデータを出力する。
【0034】
図5の(3)に、データ選択装置100における出力データ選択処理の動作を示すタイムチャートを示す。比較のため、(2)には従来の構成におけるタイムチャートを示す。
【0035】
前述したように、1つのCAM出力制御回路が、全ての連想記憶メモリCAMの出力データ選択処理を行う場合、連想記憶メモリCAMの数が多くなると、上記CAM出力制御回路が行う最優先出力データ選択処理時間t_peが非常に長くなる。
【0036】
ところが、本発明におけるデータ選択装置100では、図3に示すように、階層的な出力選択処理構造を採用するので、最終出力選択処理時間t_hpeは、CAM出力制御回路41〜4qにおける選択処理時間t_camと、ユニット出力制御装置20における選択処理時間t_unitとによって構成される。ここで、CAM出力制御回路41〜4qとユニット出力制御装置20とが、図5(3)に示すように、同時に出力データの選択処理を行うので、上記最優先出力データ選択処理時間t_peよりも、短時間で最終出力処理を終了できる。つまり、最終出力処理を高速で行なうことができる。
【0037】
なお、各CAMが同一の検索キーを用いてテーブル検索処理を行う場合、検索に成功した上記CAMであるヒット回路から、上記CAM出力制御回路にCAM検索成功信号を出力するCAM検索成功信号出力回路を、連想記憶メモリCAM1〜CAMpのそれぞれが有する。
【0038】
論理和回路410Rは、検索ユニット内にヒット回路が存在していることを示すユニット検索成功信号を、ユニット出力制御装置に出力するユニット検索成功信号出力回路の例である。
【0039】
図5(3)に関する上記説明は、検索ユニットSU1についてのものであるが、検索ユニットSU2、・・・・、SUqについても、上記と同様に説明することができる。
【0040】
CAM検索成功信号に基づいて、上記CAM出力制御回路が実行する最優先出力データ選択処理と同時に、最優先ユニット出力選択処理を実行する手段を、ユニット出力制御装置20が有する。
【0041】
図6は、上記実施例におけるデータ出力選択処理動作を具体的に示すタイムチャートである。
【0042】
図6に示す例では、連想記憶メモリCAMは12.5MHzのクロックで動作し、クロックの周期は80nsである。入力信号が128bitである場合、連想記憶メモリCAMの入力ポートが32bitで動作するので、データ入力には、クロックの4周期が必要である。連想記憶メモリCAMの仕様によって、CAM検索成功信号またはユニット検索成功信号は、3クロック+70ns後に利用可能になるので、最優先CAMまたはユニット出力処理動作は、5番目のクロックの先頭から行うことになる。
【0043】
ここで、CAM出力制御回路41、42、・・・・4q、ユニット出力制御装置20は、42nsecの処理時間を要し、エンコーディング動作が1クロック以内で終了するので、出力データを、次のクロックサイクル(6クロック目)で処理することができる。
【0044】
図6に示す例では、データ出力選択処理を400nsで行うことができ、これは2.5Mpps(Mega packets per second)の動作速度と等価である。したがって、上記実施例を、622Mbps(OC−12、1.5Mpps)のネットワークオペレーションに用いることが可能である。
【0045】
[第2実施例]
図7は、本発明の第2実施例である多段階層型検索成功信号先読み式出力データ選択装置200の概略構成を示す図である。以下、多段階層型検索成功信号先読み式出力データ選択装置200をデータ選択装置200という。
【0046】
データ選択装置200において、複数の1段目検索ユニットTU1と1つの1段目ユニット出力制御装置OCD1とによって2段目検索ユニットTU2が構成されている。
【0047】
また、複数の2段目検索ユニットTU2と1つの2段目ユニット出力制御装置OCD2とによって3段目検索ユニットTU3が構成されている。
【0048】
さらに、複数の3段目検索ユニットTU3と1つの3段目ユニット出力制御装置OCD3とによって4段目検索ユニットTU4が構成されている。
【0049】
このようにして、n段目検索ユニットTUnが構成され各n段目検索ユニットTUnが出力するn段目ユニット検索成功信号が、n段目ユニット出力制御装置OCDnに送られる。
【0050】
各段のユニット出力制御装置は、データ選択装置100と同様に、ユニット優先順位表を所持し、最優先出力データを選択する際に、上記ユニット優先順位表を読み込む。
【0051】
1段目検索ユニットTU1は、図3に示す各検索ユニットSU1〜SUqと同じ構成を有する。入力される検索キーについて、1段目検索ユニットTU1内の連想記憶メモリCAMがテーブル検索に成功すると、ヒットした連想記憶メモリCAMから、CAM検索成功信号が1段目検索ユニットTU1内のCAM出力制御回路に送られる。
【0052】
データ選択装置100と同様に、データ選択装置200におけるCAM出力制御回路は、各連想記憶メモリCAMから送られたCAM検索成功信号の論理和を実行し、最優先出力データを有する連想記憶メモリCAMをCAM出力制御回路が選択するよりも前に、1段目ユニット検索成功信号が、1段目ユニット出力制御装置OCD1に先読みされ上記最優先CAM出力選択処理と、上記1段目ユニット出力制御装置OCD1による1段目検索ユニットの最優先出力選択処理とが同時に行なわれる。
【0053】
上記と同様に、上記n−1(以下、nは2以上とする)段目ユニット出力制御装置は、n−2段目ユニット出力制御装置(0段目はCAM出力制御回路を意味する)から送られてきたn−1段目ユニット検索成功信号の論理和を実行し、n段目ユニット出力制御置OCDnに、n段目ユニット検索成功信号を先読みさせ、n−1段目検索ユニットの最優先出力選択処理と、n段目検索ユニットの最優先処理選択処理とが同時に行われる。n段目ユニット出力制御装置OCDnは、n−1段目ユニット出力制御装置に、n段目ユニット出力許可信号を送る。
【0054】
そして、最終的に、1段目ユニット出力制御装置OCD1からCAM出力制御回路に1段目ユニット許可信号が送られ、上記1段目ユニット許可信号を受けたCAM出力制御回路が、出力優先順位が最も高い連想記憶メモリCAMにCAM出力許可信号を送り、上記連想記憶メモリCAMが外部に出力データを出力する。
【0055】
図8は、データ選択装置200において、出力データを選択する動作を示すタイムチャートである。
【0056】
1つのCAM出力制御回路が全ての連想記憶メモリCAMの出力データ選択処理を行う場合、連想記憶メモリCAMの数が多くなると、上記CAM出力制御回路が行う最優先出力データ選択処理時間t_peが、図8(2)に示すように、非常に長くなる。
【0057】
ところが、データ選択装置200では、図7に示すように、階層的な出力選択処理構造を採用するので、最終出力選択処理時間t_hpeは、CAM出力制御回路における選択処理時間t_camと、ユニット出力制御装置における選択処理時間t_unit_1〜t_unit_nとによって構成される。CAM出力制御回路とユニット出力制御装置とが、図8(3)に示すように、同時に出力データの選択処理を行うので、上記最優先出力データ選択処理時間t_peよりも、短時間で最終出力処理を終了でき、つまり、最終出力処理を高速で行なうことができる。
【0058】
なお、図7に示した構成において、1段目検索ユニットから出力する1段目ユニット検索成功信号を、1段目検索ユニット出力制御装置に送ると共に、1段目検索ユニット出力制御装置を飛び越して、2段目以降のユニット出力制御装置に送ってもよい。これにより、各段のユニット出力制御装置における遅延を減らすことができる。すなわち、図8におけるt_hpeを更に短縮することができる。
【0059】
[第3実施例]
図9は、本発明の第3実施例である検索ユニット300を示す図である。
【0060】
検索ユニット300は、データ選択装置100における検索ユニットSU1〜SUqの代わりに使用することができる検索ユニットであり、また、データ選択装置200における1段目検索ユニットTU1の代わりに使用することができる検索ユニットである。
【0061】
検索ユニット300は、検索キーについてテーブル検索処理を行うテーブル検索回路LUTと、各テーブル検索回路LUTが出力する出力データの優先順位を決定するLUT優先順位表51と、LUT優先順位表51を読み込み、テーブル検索回路LUTの出力データの中から優先順位が最も高い出力データを所持するテーブル検索回路LUTについて、出力データの出力を許可するLUT出力制御回路61とによって構成されている。
【0062】
テーブル検索回路LUTは、RAMと、演算回路MPUとによって構成されている。演算回路MPUは、上記RAMの内部記憶領域に予め格納してある複数のデータと検索キーとの一致比較を行うものである。
【0063】
検索ユニット300を、データ選択装置100における検索ユニットSU1〜SUqの代わりに使用したり、また、データ選択装置200における1段目検索ユニットTU1の代わりに使用することによって、データ選択装置100、データ選択装置200と同様に、検索成功信号先読み式出力データ選択装置を構成することができ、出力優先順位が最も高い1つのテーブル検索回路LUTの出力データを高速に選択することができる。
【0064】
また、LUT出力制御回路61は、上記各テーブル検索回路が出力する出力データのうちで、出力優先順位が最も高い出力データを選択するデータ出力制御回路の例である。
【0065】
データ選択装置100におけるCAM1〜p、CAM1〜m、CAM1〜nは、各テーブル検索回路が同一の検索キーを用いてテーブル検索処理を行う場合、検索に成功した上記テーブル検索回路であるヒット回路から、上記データ出力制御回路にデータ検索成功信号を出力するデータ検索成功信号出力手段の例であり、このように、データ検索成功信号出力手段を、ハードウェアで実現するようにしてもよく、また、検索ユニット300におけるテーブル検索回路LUT等のように、ソフトウェアで実現するようにしてもよい。
【0066】
また、検索ユニット内に上記ヒット回路が存在していることを示すユニット検索成功信号を、ユニット出力制御装置に出力するユニット検索成功信号出力手段を、ハードウェア、ソフトウェアのどちらで実現するようにしてもよい。
【0067】
[第4実施例]
図10は、本発明の第4実施例であるパイプラインデータ処理式検索成功信号先読みデータ選択装置400を示す図である。以下、パイプラインデータ処理式検索成功信号先読みデータ選択装置400をデータ選択装置400という。
【0068】
データ選択装置400は、データ選択装置100において、CAM出力制御回路41、42、・・・・、4qの代わりに、ユニット出力制御回路41−1、42−1、・・・・、4q−1を使用し、ユニット出力制御装置20の代わりに、ユニット出力制御装置20−1を使用したものである。
【0069】
ユニット出力制御回路41−1は、複数のフリップフロップによって小規模の論理回路に分割され、この分割された小規模論理回路を時系列パイプライン処理させる回路である。ユニット出力制御回路42−1、・・・・、4q−1のそれぞれも、ユニット出力制御回路41−1と同様の構成を有する。
【0070】
また、ユニット出力制御装置20−1は、複数のフリップフロップによって小規模の論理回路に分割され、この分割された小規模論理回路を時系列パイプライン処理させる回路である。
【0071】
データ選択装置400は、パイプラインデータ処理式CAM出力制御回路、パイプラインデータ処理式ユニット出力制御装置のそれぞれが、遅延の小さい小規模の論理回路で構成されるので、連続して入力されるキーデータについて、最終出力データを高速で選択することができる。
【0072】
[第5実施例]
本発明のデータ選択装置は、ネットワークルータやATM交換機等のパケット処理装置に使用することができる。図11に、本発明のデータ選択装置を用いたルータ500の構成例を示す。ルータ500は、パケットを入力する入力ポート71、通常のデータと経路制御等のためのデータとを振分ける振分部72、経路制御データを処理する経路制御プロトコル処理部、通常のデータの転送処理を行う通常転送処理部74、ルーティングテーブル75、パケットを出力する出力ポート76を有する。
【0073】
入力ポートに入力されたパケットは振分部72で振分けられ、経路制御用のパケットであれば、経路制御プロトコル処理部73を介してルーティングテーブル75の更新に使用されたり、更に出力ポート76を介して他ノードに送信される。通常のパケットであれば、通常転送処理部74においてパケットの宛先アドレスを基にルーティングテーブル75を検索することにより次に送信すべき宛先が決定され、該当の出力ポート75を介してパケットが転送される。本発明のデータ選択装置は通常転送処理部74の一部及びルーティングテーブル75として使用される。
【0074】
上記ルータの動作について更に説明する。図12はTCP/IPネットワークの一例を示す図であり、各円はルータを示す。各ルータはルーティングテーブルを有し、図13にノードDが有するルーティングテーブルの例を示す。同図において、IPプレフィックスは宛先ネットワークのIPアドレスであり、次ホップは入力パケットの宛先に対応した隣接ノードの宛先アドレスである。同図に示すように、入力パケットの宛先アドレスがOを示していた場合、ルーティングテーブルを検索して次ホップとしてFを選択し、パケットをFに転送する。
【0075】
より詳細には、テーブル検索方法としてインターネット(IPv4)においては例えば最長プレフィクス選択処理技術が使用される。第1実施例等のように複数のCAMを用いて検索ユニットを構成する場合、最長プレフィクス選択処理を行うには、例えば次のようにする。
【0076】
マスクが同一であるIPアドレスを持つ被検索データを同じCAMに登録し、一つのマスクをCAM内のマスクレジスタに登録する。検索処理では、まず、検索キーを同時に各CAMに与え、一斉に各CAM毎のマスク処理とテーブル検索を行う。次に、それぞれの検索結果から、優先順位表に基づき、最も長いビットパターンがマッチする結果を選択する。本発明では、この選択処理を多段構成で高速に行う。なお、個々の被検索データ毎にマスクを持つCAMを使用することも可能である。
【0077】
また、テーブル検索には例えば修正2進木/B木による方法(Butler Lampson, et.al. IP Lookups using Multiway and Multicolumn Search, Infocom, vol.3, p.p. 1248-1256, 1998)やtwo-way lookupテーブルによる方法(Pankaji Gupta, et.al. Routing Lookups in Hardware at Memory Access Speeds, Infocom, vol.3, p.p. 1240-1247, 1998)を用いることができ、各アルゴリズムは、例えば本発明の第3実施例で説明した構成を用いてソフトウェアとして実装することができる。
【0078】
本発明は、上記の実施例に限定されることなく、特許請求の範囲内で種々変更・応用が可能である。
【0079】
【発明の効果】
上述したように、本発明によれば、複数の出力制御回路とユニット出力制御装置とで構成する階層的な出力データ選択方式において検索成功信号をユニット出力制御装置が先読みするので、多数のテーブル検索回路で構成するテーブル検索処理を行う場合に最優先出力データを高速で選択することができるという効果を奏する。
【図面の簡単な説明】
【図1】CAMを使用したデータ選択装置の従来技術における構成例を示す図である。
【図2】従来技術におけるデータ出力選択処理の動作を示すタイムチャートを示す図である。
【図3】本発明の第1実施例である検索成功信号先読み式出力データ選択装置100を示す構成図である。
【図4】検索成功信号先読み式出力データ選択装置100における出力データの選択方式を詳細に示す図である。
【図5】データ出力選択処理の動作を示すタイムチャートである。
【図6】上記実施例におけるデータ出力選択処理動作を具体的に示すタイムチャートである。
【図7】本発明の第2実施例である多段階層型検索成功信号先読み式出力データ選択装置200の概略構成を示す図である。
【図8】多段階層型検索成功信号先読み式出力データ選択装置200において、出力データを選択する動作を示すタイムチャートである。
【図9】本発明の第3実施例である検索ユニット300を示す図である。
【図10】本発明の第4実施例であるパイプラインデータ処理式検索成功信号先読みデータ選択装置400を示す図である。
【図11】本発明のデータ選択装置を用いたルータ500の構成例を示す図である。
【図12】TCP/IPネットワークの一例を示す図である。
【図13】ルーティングテーブルの一例を示す図である。
【符号の説明】
10 ユニット優先順位表
20、20−1 ユニット出力制御装置
31〜3q CAM優先順位表
41〜4q CAM出力制御回路
41−1〜4q−1 ユニット出力制御回路
51 LUT優先順位表
61 LUT出力制御回路
71 入力ポート、
72 振分部
73 経路制御プロトコル処理部
74 通常転送処理部
75 ルーティングテーブル
76 出力ポート
100 検索成功信号先読み式出力データ選択装置
200 多段階層型検索成功信号先読み式出力データ選択装置
300 検索ユニット
400 パイプラインデータ処理式検索成功信号先読みデータ選択装置
500 ルータ
SU1〜SUq、SU1−1〜SUq−1 検索ユニット
TUn n段目検索ユニット
OCDn n段目ユニット出力制御装置
LUT テーブル検索回路
Claims (12)
- 入力データの一部のビット列を検索キーとし、内部記憶領域に予め格納されている複数のデータによって構成されているデータテーブルの中から、上記検索キーと一致する項目を含むデータを選択する複数のテーブル検索回路と、上記各テーブル検索回路が出力する出力データのうちで、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するデータ出力制御回路とを具備する複数の検索ユニットと、
上記各検索ユニットがそれぞれ出力する出力データのうちで、出力優先順位が最も高い出力データを所持する検索ユニットを選択するユニット出力制御装置と、を有し、
上記各テーブル検索回路が同一の検索キーを用いてテーブル検索処理を行う場合、検索に成功したテーブル検索回路である各ヒット回路は、上記データ出力制御回路にデータ検索成功信号を出力し、当該データ検索成功信号を受信した上記データ出力制御回路は、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するテーブル検索回路選択処理を開始し、
上記ヒット回路を有する各検索ユニットは、検索ユニット内に上記ヒット回路が存在していることを示すユニット検索成功信号を、上記ユニット出力制御装置に出力し、上記ユニット検索成功信号を受信した上記ユニット出力制御装置は、出力優先順位が最も高い出力データを所持する検索ユニットを選択する検索ユニット選択処理を開始し、当該検索ユニット選択処理の一部は、上記テーブル検索回路選択処理の一部と並行して実行され、
上記ユニット出力制御装置が選択する検索ユニット内のデータ出力制御回路が、1つのテーブル検索回路を選択し、選択されたテーブル検索回路がデータを出力することを特徴とする検索成功信号先読み式出力データ選択装置。 - 上記各検索ユニットを1段目検索ユニットとし、
複数の上記1段目検索ユニットと、上記複数の1段目検索ユニットの中から、1つの最優先検索ユニットを選択する1段目ユニット出力制御装置とを有するユニットを2段目検索ユニットとし、
複数の上記2段目検索ユニットと、上記複数の2段目検索ユニットの中から、1つの最優先検索ユニットを選択する2段目ユニット出力制御装置とを有するユニットを3段目検索ユニットとし、
上記のようにn段の検索ユニット(nは2以上)を階層的に構成し、上記各1段目検索ユニットが有する上記テーブル検索回路が、同一の検索キーについてテーブル検索処理を行い、上記検索処理に成功すると、上記1段目検索ユニットが有する上記データ出力制御回路が、最優先テーブル検索回路を選択する前に、上記ヒット回路が存在することを示す上記ユニット検索成功信号が上記1段目ユニット出力制御装置に先読みされ、
同様に、n−1段目ユニット出力制御装置が最優先n−1段目検索ユニットを選択する前に、n段目ユニット検索成功信号がn段目ユニット出力制御装置に先読みされ、
上記データ出力制御回路における最優先テーブル検索回路選択処理の一部と、1段目ユニット出力制御装置での最優先1段目検索ユニット選択処理の一部とが並行して実行され、
また、n−1段目ユニット出力制御装置における最優先n−1段目検索ユニット選択処理の一部と、n段目ユニット出力制御装置での最優先n段目検索ユニット選択処理の一部とが並行して実行され、
最終的に1つのテーブル検索回路を選択することを特徴とする請求項1に記載の検索成功信号先読み式出力データ選択装置。 - n−1段目ユニット出力制御装置がn段目ユニット出力制御装置にユニット検索成功信号を送信することに代えて、1段目検索ユニットがユニット検索成功信号を3段目以降のユニット出力制御装置に送信する請求項2に記載の検索成功信号先読み式出力データ選択装置。
- 上記データ出力制御回路は、CAM出力制御回路であり、上記CAM出力制御回路は、フリップフロップで小規模の論理回路に分割し、この分割された小規模論理回路を時系列パイプライン処理させる回路であり、
上記ユニット出力制御装置は、フリップフロップで小規模の論理回路に分割し、この分割された小規模の論理回路を時系列パイプライン処理させる回路である請求項1又は2に記載の検索成功信号先読み式出力データ選択装置。 - 上記テーブル検索回路はRAMとMPUを有する請求項1又は2に記載の検索成功信号先読み式出力データ選択装置。
- 上記テーブル検索回路はCAMである請求項1又は2に記載の検索成功信号先読み式出力データ選択装置。
- データ選択装置を有するパケット処理装置であって、
そのデータ選択装置は、
入力パケットの一部のビット列を検索キーとし、内部記憶領域に予め格納されているデータテーブルの中から、上記検索キーと一致する項目を含むデータを選択する複数のテーブル検索回路と、上記各テーブル検索回路が出力する出力データのうちで、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するデータ出力制御回路とを具備する複数の検索ユニットと、
上記各検索ユニットがそれぞれ出力する出力データのうちで、出力優先順位が最も高い出力データを所持する検索ユニットを選択するユニット出力制御装置と、を有し、
上記各テーブル検索回路が同一の検索キーを用いてテーブル検索処理を行う場合、検索に成功したテーブル検索回路である各ヒット回路は、上記データ出力制御回路にデータ検索成功信号を出力し、当該データ検索成功信号を受信した上記データ出力制御回路は、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するテーブル検索回路選択処理を開始し、
上記ヒット回路を有する各検索ユニットは、検索ユニット内に上記ヒット回路が存在していることを示すユニット検索成功信号を、上記ユニット出力制御装置に出力し、上記ユニット検索成功信号を受信した上記ユニット出力制御装置は、出力優先順位が最も高い出力データを所持する検索ユニットを選択する検索ユニット選択処理を開始し、当該検索ユニット選択処理の一部は、上記テーブル検索回路選択処理の一部と並行して実行され、
上記ユニット出力制御装置が選択する検索ユニット内のデータ出力制御回路が、1つのテーブル検索回路を選択し、選択されたテーブル検索回路がデータを出力し、
該データを上記入力パケットを転送するための宛先として使用することを特徴とするパケット処理装置。 - 上記データ選択装置は、
上記各検索ユニットを1段目検索ユニットとし、
複数の上記1段目検索ユニットと、上記複数の1段目検索ユニットの中から、1つの最優先検索ユニットを選択する1段目ユニット出力制御装置とを有するユニットを2段目検索ユニットとし、
複数の上記2段目検索ユニットと、上記複数の2段目検索ユニットの中から、1つの最優先検索ユニットを選択する2段目ユニット出力制御装置とを有するユニットを3段目検索ユニットとし、
上記のようにn段の検索ユニット(nは2以上)を階層的に構成し、上記各1段目検索ユニットが有する上記テーブル検索回路が、同一の検索キーについてテーブル検索処理を行い、上記検索処理に成功すると、上記1段目検索ユニットが有する上記データ出力制御回路が、最優先テーブル検索回路を選択する前に、上記ヒット回路が存在することを示す上記ユニット検索成功信号が上記1段目ユニット出力制御装置に先読みされ、
同様に、n−1段目ユニット出力制御装置が最優先n−1段目検索ユニットを選択する前に、n段目ユニット検索成功信号がn段目ユニット出力制御装置に先読みされ、
上記データ出力制御回路における最優先テーブル検索回路選択処理の一部と、1段目ユニット出力制御装置での最優先1段目検索ユニット選択処理の一部とが並行して実行され、
また、n−1段目ユニット出力制御装置における最優先n−1段目検索ユニット選択処理の一部と、n段目ユニット出力制御装置での最優先n段目検索ユニット選択処理の一部 とが並行して実行され、
最終的に1つのテーブル検索回路を選択する請求項7に記載のパケット処理装置。 - 上記データ選択装置において、
n−1段目ユニット出力制御装置がn段目ユニット出力制御装置にユニット検索成功信号を送信することに代えて、1段目検索ユニットがユニット検索成功信号を3段目以降のユニット出力制御装置に送信する請求項8に記載のパケット処理装置。 - 上記データ出力制御回路は、CAM出力制御回路であり、上記CAM出力制御回路は、フリップフロップで小規模の論理回路に分割し、この分割された小規模論理回路を時系列パイプライン処理させる回路であり、
上記ユニット出力制御装置は、フリップフロップで小規模の論理回路に分割し、この分割された小規模の論理回路を時系列パイプライン処理させる回路である請求項7又は8に記載のパケット処理装置。 - 上記テーブル検索回路はRAMとMPUを有する請求項7又は8に記載のパケット処理装置。
- 上記テーブル検索回路はCAMである請求項7又は8に記載のパケット処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000351361A JP3700574B2 (ja) | 1999-11-19 | 2000-11-17 | 検索成功信号先読み式出力データ選択装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32977199 | 1999-11-19 | ||
JP11-329771 | 1999-11-19 | ||
JP2000351361A JP3700574B2 (ja) | 1999-11-19 | 2000-11-17 | 検索成功信号先読み式出力データ選択装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001209563A JP2001209563A (ja) | 2001-08-03 |
JP3700574B2 true JP3700574B2 (ja) | 2005-09-28 |
Family
ID=26573333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000351361A Expired - Fee Related JP3700574B2 (ja) | 1999-11-19 | 2000-11-17 | 検索成功信号先読み式出力データ選択装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3700574B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451143B2 (en) * | 2002-08-28 | 2008-11-11 | Cisco Technology, Inc. | Programmable rule processing apparatus for conducting high speed contextual searches and characterizations of patterns in data |
-
2000
- 2000-11-17 JP JP2000351361A patent/JP3700574B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001209563A (ja) | 2001-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2517420B1 (en) | Systolic array architecture for fast ip lookup | |
Ravikumar et al. | TCAM architecture for IP lookup using prefix properties | |
EP1425755B1 (en) | Concurrent searching of different tables within a content addressable memory | |
US5920886A (en) | Accelerated hierarchical address filtering and translation using binary and ternary CAMs | |
Kobayashi et al. | A longest prefix match search engine for multi-gigabit IP processing | |
US8780926B2 (en) | Updating prefix-compressed tries for IP route lookup | |
US8295286B2 (en) | Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware | |
US7237058B2 (en) | Input data selection for content addressable memory | |
Bando et al. | Flashtrie: Hash-based prefix-compressed trie for IP route lookup beyond 100Gbps | |
US20120117319A1 (en) | Low power, hash-content addressable memory architecture | |
US7233597B2 (en) | High speed parser | |
Le et al. | Scalable tree-based architectures for IPv4/v6 lookup using prefix partitioning | |
US20120063189A1 (en) | Longest prefix match internet protocol content addressable memories and related methods | |
WO2003044671A1 (en) | Ram-based range content addressable memory | |
US20110255544A1 (en) | System and method for an exact match search using pointer based pipelined multibit trie traversal technique | |
EP1434145A2 (en) | A mechanism to reduce lookup latency in a pipelined hardware implementation of a trie-based IP lookup algorithm | |
JP3700574B2 (ja) | 検索成功信号先読み式出力データ選択装置 | |
JP2004046988A (ja) | 連想メモリ装置及びそれを用いた中継装置 | |
Akhbarizadeh et al. | Prefix segregation scheme for a TCAM-based IP forwarding engine | |
US6853640B1 (en) | Data selection apparatus | |
JPH11102589A (ja) | 連想メモリモジュール | |
US20060018142A1 (en) | Concurrent searching of different tables within a content addressable memory | |
Ghosh et al. | A hash based architecture of longest prefix matching for fast IP processing | |
JP3795881B2 (ja) | テーブル検索方法および装置 | |
Ray et al. | An SRAM-based novel hardware architecture for longest prefix matching for IP route lookup |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041102 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041227 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050621 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050704 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080722 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090722 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090722 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100722 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100722 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110722 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |