(57)【特許請求の範囲】
【請求項１】
入力データの一部のビット列を検索キーとし、内部記憶領域に予め格納されている複数のデータによって構成されているデータテーブルの中から、上記検索キーと一致する項目を含むデータを選択する複数のテーブル検索回路と、上記各テーブル検索回路が出力する出力データのうちで、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するデータ出力制御回路とを具備する複数の検索ユニットと、
上記各検索ユニットがそれぞれ出力する出力データのうちで、出力優先順位が最も高い出力データを所持する検索ユニットを選択するユニット出力制御装置と、を有し、
上記各テーブル検索回路が同一の検索キーを用いてテーブル検索処理を行う場合、検索に成功したテーブル検索回路である各ヒット回路は、上記データ出力制御回路にデータ検索成功信号を出力し、当該データ検索成功信号を受信した上記データ出力制御回路は、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するテーブル検索回路選択処理を開始し、
上記ヒット回路を有する各検索ユニットは、検索ユニット内に上記ヒット回路が存在していることを示すユニット検索成功信号を、上記ユニット出力制御装置に出力し、上記ユニット検索成功信号を受信した上記ユニット出力制御装置は、出力優先順位が最も高い出力データを所持する検索ユニットを選択する検索ユニット選択処理を開始し、当該検索ユニット選択処理の一部は、上記テーブル検索回路選択処理の一部と並行して実行され、
上記ユニット出力制御装置が選択する検索ユニット内のデータ出力制御回路が、１つのテーブル検索回路を選択し、選択されたテーブル検索回路がデータを出力することを特徴とする検索成功信号先読み式出力データ選択装置。
【請求項２】
上記各検索ユニットを１段目検索ユニットとし、
複数の上記１段目検索ユニットと、上記複数の１段目検索ユニットの中から、１つの最優先検索ユニットを選択する１段目ユニット出力制御装置とを有するユニットを２段目検索ユニットとし、
複数の上記２段目検索ユニットと、上記複数の２段目検索ユニットの中から、１つの最優先検索ユニットを選択する２段目ユニット出力制御装置とを有するユニットを３段目検索ユニットとし、
上記のようにｎ段の検索ユニット（ｎは２以上）を階層的に構成し、上記各１段目検索ユニットが有する上記テーブル検索回路が、同一の検索キーについてテーブル検索処理を行い、上記検索処理に成功すると、上記１段目検索ユニットが有する上記データ出力制御回路が、最優先テーブル検索回路を選択する前に、上記ヒット回路が存在することを示す上記ユニット検索成功信号が上記１段目ユニット出力制御装置に先読みされ、
同様に、ｎ−１段目ユニット出力制御装置が最優先ｎ−１段目検索ユニットを選択する前に、ｎ段目ユニット検索成功信号がｎ段目ユニット出力制御装置に先読みされ、
上記データ出力制御回路における最優先テーブル検索回路選択処理の一部と、１段目ユニット出力制御装置での最優先１段目検索ユニット選択処理の一部とが並行して実行され、
また、ｎ−１段目ユニット出力制御装置における最優先ｎ−１段目検索ユニット選択処理の一部と、ｎ段目ユニット出力制御装置での最優先ｎ段目検索ユニット選択処理の一部とが並行して実行され、
最終的に１つのテーブル検索回路を選択することを特徴とする請求項１に記載の検索成功信号先読み式出力データ選択装置。
【請求項３】
ｎ−１段目ユニット出力制御装置がｎ段目ユニット出力制御装置にユニット検索成功信号を送信することに代えて、１段目検索ユニットがユニット検索成功信号を3段目以降のユニット出力制御装置に送信する請求項２に記載の検索成功信号先読み式出力データ選択装置。
【請求項４】
上記データ出力制御回路は、ＣＡＭ出力制御回路であり、上記ＣＡＭ出力制御回路は、フリップフロップで小規模の論理回路に分割し、この分割された小規模論理回路を時系列パイプライン処理させる回路であり、
上記ユニット出力制御装置は、フリップフロップで小規模の論理回路に分割し、この分割された小規模の論理回路を時系列パイプライン処理させる回路である請求項１又は２に記載の検索成功信号先読み式出力データ選択装置。
【請求項５】
上記テーブル検索回路はＲＡＭとＭＰＵを有する請求項１又は２に記載の検索成功信号先読み式出力データ選択装置。
【請求項６】
上記テーブル検索回路はＣＡＭである請求項１又は２に記載の検索成功信号先読み式出力データ選択装置。
【請求項７】
データ選択装置を有するパケット処理装置であって、
そのデータ選択装置は、
入力パケットの一部のビット列を検索キーとし、内部記憶領域に予め格納されているデータテーブルの中から、上記検索キーと一致する項目を含むデータを選択する複数のテーブル検索回路と、上記各テーブル検索回路が出力する出力データのうちで、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するデータ出力制御回路とを具備する複数の検索ユニットと、
上記各検索ユニットがそれぞれ出力する出力データのうちで、出力優先順位が最も高い出力データを所持する検索ユニットを選択するユニット出力制御装置と、を有し、
上記各テーブル検索回路が同一の検索キーを用いてテーブル検索処理を行う場合、検索に成功したテーブル検索回路である各ヒット回路は、上記データ出力制御回路にデータ検索成功信号を出力し、当該データ検索成功信号を受信した上記データ出力制御回路は、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するテーブル検索回路選択処理を開始し、
上記ヒット回路を有する各検索ユニットは、検索ユニット内に上記ヒット回路が存在していることを示すユニット検索成功信号を、上記ユニット出力制御装置に出力し、上記ユニット検索成功信号を受信した上記ユニット出力制御装置は、出力優先順位が最も高い出力データを所持する検索ユニットを選択する検索ユニット選択処理を開始し、当該検索ユニット選択処理の一部は、上記テーブル検索回路選択処理の一部と並行して実行され、
上記ユニット出力制御装置が選択する検索ユニット内のデータ出力制御回路が、１つのテーブル検索回路を選択し、選択されたテーブル検索回路がデータを出力し、
該データを上記入力パケットを転送するための宛先として使用することを特徴とするパケット処理装置。
【請求項８】
上記データ選択装置は、
上記各検索ユニットを１段目検索ユニットとし、
複数の上記１段目検索ユニットと、上記複数の１段目検索ユニットの中から、１つの最優先検索ユニットを選択する１段目ユニット出力制御装置とを有するユニットを２段目検索ユニットとし、
複数の上記２段目検索ユニットと、上記複数の２段目検索ユニットの中から、１つの最優先検索ユニットを選択する２段目ユニット出力制御装置とを有するユニットを３段目検索ユニットとし、
上記のようにｎ段の検索ユニット（ｎは２以上）を階層的に構成し、上記各１段目検索ユニットが有する上記テーブル検索回路が、同一の検索キーについてテーブル検索処理を行い、上記検索処理に成功すると、上記１段目検索ユニットが有する上記データ出力制御回路が、最優先テーブル検索回路を選択する前に、上記ヒット回路が存在することを示す上記ユニット検索成功信号が上記１段目ユニット出力制御装置に先読みされ、
同様に、ｎ−１段目ユニット出力制御装置が最優先ｎ−１段目検索ユニットを選択する前に、ｎ段目ユニット検索成功信号がｎ段目ユニット出力制御装置に先読みされ、
上記データ出力制御回路における最優先テーブル検索回路選択処理の一部と、１段目ユニット出力制御装置での最優先１段目検索ユニット選択処理の一部とが並行して実行され、
また、ｎ−１段目ユニット出力制御装置における最優先ｎ−１段目検索ユニット選択処理の一部と、ｎ段目ユニット出力制御装置での最優先ｎ段目検索ユニット選択処理の一部とが並行して実行され、
最終的に１つのテーブル検索回路を選択する請求項７に記載のパケット処理装置。
【請求項９】
上記データ選択装置において、
ｎ−１段目ユニット出力制御装置がｎ段目ユニット出力制御装置にユニット検索成功信号を送信することに代えて、１段目検索ユニットがユニット検索成功信号を３段目以降のユニット出力制御装置に送信する請求項８に記載のパケット処理装置。
【請求項１０】
上記データ出力制御回路は、ＣＡＭ出力制御回路であり、上記ＣＡＭ出力制御回路は、フリップフロップで小規模の論理回路に分割し、この分割された小規模論理回路を時系列パイプライン処理させる回路であり、
上記ユニット出力制御装置は、フリップフロップで小規模の論理回路に分割し、この分割された小規模の論理回路を時系列パイプライン処理させる回路である請求項７又は８に記載のパケット処理装置。
【請求項１１】
上記テーブル検索回路はＲＡＭとＭＰＵを有する請求項７又は８に記載のパケット処理装置。
【請求項１２】
上記テーブル検索回路はＣＡＭである請求項７又は８に記載のパケット処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークルータ等の通信装置において、入力データの一部のビット列を検索キーとし、テーブル検索回路のデータ記憶手段に予め格納してある複数のデータで構成されているデータテーブルの中から、上記検索キーと一致する項目を含むデータを選択するテーブル検索処理を行い、複数のテーブル検索回路の出力から一意の出力を選択する出力データ選択技術に関する。このような出力データ選択技術は、例えばルータや交換機におけるテーブル検索処理に用いられる。
【０００２】
【従来の技術】
図１は、ＣＡＭを使用したデータ選択装置の従来技術における構成の一例を示す図である。図１に示すデータ選択装置は、複数のＣＡＭ（Content Addressable Memory）と、各ＣＡＭの入出力を制御する出力制御回路を有する。各ＣＡＭは、入力データである検索キーに対し並列に同時検索処理を行い、検索に成功した各ＣＡＭはＣＡＭ検索成功信号を出力制御回路に送信し、出力制御回路は、検索に成功したＣＡＭのうち、最もプライオリティの高いＣＡＭを選択し、そのＣＡＭから出力データを出力するように制御する。
【０００３】
図２は、従来技術におけるデータ出力選択処理の動作を示すタイムチャートを示す図である。（１）は、ＣＡＭ検索成功信号を示す図であり、（２）は、従来例における出力選択処理時間を示す。
【０００４】
【発明が解決しようとする課題】
上記の場合、ＣＡＭの数が多くなると、出力制御回路におけるＣＡＭ選択のための論理段数が増加する等の理由により、ＣＡＭを選択する処理の時間ｔ＿ｐｅが非常に長くなるという問題がある。
【０００５】
つまり、出力制御回路で制御しなければならないＣＡＭの数が大きくなると、出力制御回路での処理遅延が大きくなり、データ選択装置全体の処理速度が低下するという問題がある。
【０００６】
本発明は、複数のテーブル検索回路を用いたデータ選択処理を、処理速度を低下させることなく行うことを可能とするデータ選択装置を提供することを目的とするものである。
【０００７】
【課題を解決するための手段】
本発明は、入力データの一部のビット列を検索キーとし、内部記憶領域に予め格納されている複数のデータによって構成されているデータテーブルの中から、上記検索キーと一致する項目を含むデータを選択する複数のテーブル検索回路と、上記各テーブル検索回路が出力する出力データのうちで、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するデータ出力制御回路とを具備する複数の検索ユニットと、上記各検索ユニットがそれぞれ出力する出力データのうちで、出力優先順位が最も高い出力データを所持する検索ユニットを選択するユニット出力制御装置と、を有し、上記各テーブル検索回路が同一の検索キーを用いてテーブル検索処理を行う場合、検索に成功したテーブル検索回路である各ヒット回路は、上記データ出力制御回路にデータ検索成功信号を出力し、当該データ検索成功信号を受信した上記データ出力制御回路は、出力優先順位が最も高い出力データを所持するテーブル検索回路を選択するテーブル検索回路選択処理を開始し、上記ヒット回路を有する各検索ユニットは、検索ユニット内に上記ヒット回路が存在していることを示すユニット検索成功信号を、上記ユニット出力制御装置に出力し、上記ユニット検索成功信号を受信した上記ユニット出力制御装置は、出力優先順位が最も高い出力データを所持する検索ユニットを選択する検索ユニット選択処理を開始し、当該検索ユニット選択処理の一部は、上記テーブル検索回路選択処理の一部と並行して実行され、上記ユニット出力制御装置が選択する検索ユニット内のデータ出力制御回路が、１つのテーブル検索回路を選択し、選択されたテーブル検索回路がデータを出力することを特徴とする検索成功信号先読み式出力データ選択装置である。
【０００８】
本発明によれば、データ出力制御回路がデータ検索成功信号を受信するのとほぼ同時にユニット検索成功信号がユニット出力制御装置に送信されるので、データ出力制御回路による選択処理とユニット出力制御装置による選択処理を一部並行して行うことができる。
従って、選択処理を分割して並列計算を行うことが可能となり、選択処理を１段で行う場合に比べて処理時間を短縮することができる。
【０００９】
本発明は次のように構成することもできる。
【００１０】
本発明は、上記の検索成功信号先読み式出力データ選択装置において、上記各検索ユニットを１段目検索ユニットとし、複数の上記１段目検索ユニットと、上記複数の１段目検索ユニットの中から、１つの最優先検索ユニットを選択する１段目ユニット出力制御装置とを有するユニットを２段目検索ユニットとし、複数の上記２段目検索ユニットと、上記複数の２段目検索ユニットの中から、１つの最優先検索ユニットを選択する２段目ユニット出力制御装置とを有するユニットを３段目検索ユニットとし、上記のようにｎ段の検索ユニット（ｎは２以上）を階層的に構成し、上記各１段目検索ユニットが有する上記テーブル検索回路が、同一の検索キーについてテーブル検索処理を行い、上記検索処理に成功すると、上記１段目検索ユニットが有する上記データ出力制御回路が、最優先テーブル検索回路を選択する前に、上記ヒット回路が存在することを示す上記ユニット検索成功信号が上記１段目ユニット出力制御装置に先読みされ、同様に、ｎ−１段目ユニット出力制御装置が最優先ｎ−１段目検索ユニットを選択する前に、ｎ段目ユニット検索成功信号がｎ段目ユニット出力制御装置に先読みされ、上記データ出力制御回路における最優先テーブル検索回路選択処理の一部と、１段目ユニット出力制御装置での最優先１段目検索ユニット選択処理の一部とが並行して実行され、また、ｎ−１段目ユニット出力制御装置における最優先ｎ−１段目検索ユニット選択処理の一部と、ｎ段目ユニット出力制御装置での最優先ｎ段目検索ユニット選択処理の一部とが並行して実行され、最終的に１つのテーブル検索回路を選択する、というものである。
【００１１】
上記検索成功信号先読み式出力データ選択装置において、ｎ−１段目ユニット出力制御装置がｎ段目ユニット出力制御装置にユニット検索成功信号を送信することに代えて、１段目検索ユニットがユニット検索成功信号を３段目以降のユニット出力制御装置に送信するようにしてもよい。
【００１３】
また、上記データ出力制御回路は、ＣＡＭ出力制御回路であり、上記ＣＡＭ出力制御回路は、フリップフロップで小規模の論理回路に分割し、この分割された小規模論理回路を時系列パイプライン処理させる回路であり、上記ユニット出力制御装置は、フリップフロップで小規模の論理回路に分割し、この分割された小規模の論理回路を時系列パイプライン処理させる回路であるものとしてもよい。
【００１４】
本発明の他の特徴及び利点は、添付の図面を用いた以下の説明により明らかになる。
【００１５】
【発明の実施の形態】
［第１実施例］
図３は、本発明の第１実施例における検索成功信号先読み式出力データ選択装置１００を示す構成図である。以下、検索成功信号先読み式出力データ選択装置はデータ選択装置という。
【００１６】
データ選択装置１００は、ユニット優先順位表１０と、ユニット出力制御装置２０と、検索ユニットＳＵ１、ＳＵ２、・・・・、ＳＵｑとを有する。
【００１７】
ユニット優先順位表１０は、ＰＬＤ（プログラマブル・ロジックデバイス）のレジスタに格納されている。
【００１８】
検索ユニットＳＵ１、ＳＵ２、・・・・、ＳＵｑは、入力データである検索キーについて、検索処理を行うユニットである。
【００１９】
ユニット出力制御装置２０は、各検索ユニットＳＵ１、ＳＵ２、・・・・、ＳＵｑが出力する出力データの優先順位を決定するために、検索ユニットＳＵ１、ＳＵ２、・・・・、ＳＵｑから送られるユニット検索成功信号と、ユニット優先順位表１０とを読み込み、検索ユニットＳＵ１〜ＳＵｑの出力データの中から、優先順位が最も高い出力データを所持する検索ユニットに、出力データを出力することを許可するユニット出力許可信号を送る装置である。
【００２０】
検索ユニットＳＵ１は、検索キーについてテーブル検索処理を行う複数の連想記憶メモリＣＡＭ１〜ＣＡＭｐと、連想記憶メモリＣＡＭ１〜ＣＡＭｐが出力する出力データの優先順位を決定するために、ＰＬＤのレジスタに格納されているＣＡＭ優先順位表３１と、ＣＡＭ出力制御回路４１とを有する。
【００２１】
ＣＡＭ出力制御回路４１は、ＣＡＭ優先順位表３１を読み込み、連想記憶メモリＣＡＭ１〜ＣＡＭｐの出力データの中から、優先順位が最も高い出力データを所持する連想記憶メモリＣＡＭに、出力データを出力することを許可するＣＡＭ出力許可信号を送る回路である。
【００２２】
検索ユニットＳＵ２は、検索キーについてテーブル検索処理を行う複数の連想記憶メモリＣＡＭ１〜ＣＡＭｍと、連想記憶メモリＣＡＭ１〜ＣＡＭｍが出力する出力データの優先順位を決定するために、ＰＬＤのレジスタに格納されているＣＡＭ優先順位表３２と、ＣＡＭ出力制御回路４２とを有する。
【００２３】
また、検索ユニットＳＵｑは、検索キーについてテーブル検索処理を行う複数の連想記憶メモリＣＡＭ１〜ＣＡＭｎと、連想記憶メモリＣＡＭ１〜ＣＡＭｎが出力する出力データの優先順位を決定するために、ＰＬＤのレジスタに格納されているＣＡＭ優先順位表３ｑと、ＣＡＭ出力制御回路４ｑとを有する。
【００２４】
上記ユニット出力許可信号を得た検索ユニット内のＣＡＭ出力制御回路からＣＡＭ出力許可信号を受けたＣＡＭが、データ選択装置１００における最終的な出力データを出力する。
【００２５】
上記の連想記憶メモリ（ＣＡＭ）は、入力データの一部のビット列を検索キーとし、内部記憶領域に予め格納されている複数のデータによって構成されているデータテーブルの中から、上記検索キーと一致する項目を含むデータを選択するテーブル検索回路の例である。上記テーブル検索回路は、たとえば、ＭＰＵとＲＡＭとによって構成された回路でもよく、また、ＳＲＡＭとハードウェアロジックとによって構成された回路でもよい。なお、上記データテーブルは、テーブル検索回路が持っているデータである。
【００２６】
また、ＣＡＭ出力制御回路４１、４２、・・・・、４ｑは、上記各テーブル検索回路が出力する出力データのうちで、出力優先順位が最も高い出力データを選択するデータ出力制御回路の例である。
【００２７】
さらに、検索ユニットＳＵ１、ＳＵ２、・・・・、ＳＵｑのそれぞれは、複数の上記テーブル検索回路と、上記データ出力制御回路とを具備する検索ユニットの例である。
【００２８】
図４は、データ選択装置１００における出力データの選択方式を詳細に示す図である。
【００２９】
検索ユニットＳＵ１に着目すると、検索キーについて検索成功した連想記憶メモリＣＡＭから、ＣＡＭ検索成功信号が、ＣＡＭ出力制御回路４１に送られる。同図に示すように、ＣＡＭ出力制御回路４１は論理和回路４１０Ｒを有し、その論理和回路４１０Ｒが各連想記憶メモリＣＡＭｌ〜ＣＡＭｐから送られたＣＡＭ検索成功信号の論理和を実行し、ＣＡＭ出力制御回路４１が最優先出力データを有する連想記憶メモリＣＡＭを選択する前に、ユニット検索成功信号がユニット出力制御装置２０に送られ先読みされる。
【００３０】
なお、ＣＡＭ検索成功信号を受信し、ユニット検索成功信号をユニット出力制御装置２０に送信する回路はＣＡＭ出力制御回路が持つ必要はない。従って、例えば、論理和回路０ＲをＣＡＭ出力制御回路の外に実装し、その論理和回路０Ｒからユニット検索成功信号をユニット出力制御装置２０に送信することができる。
【００３１】
ユニット検索成功信号に応じて、ユニット出力制御装置２０が検索ユニットの最優先出力データの選択処理を行うので、ユニット出力制御装置２０における検索ユニットの最優先出力データの選択処理の開始が速く、つまり、ＣＡＭ出力制御回路４１が行う連想記憶メモリＣＡＭの最優先出力データの選択処理と、ユニット出力制御装置２０が行う検索ユニットの最優先出力データの選択処理とが、同時に行われる。
【００３２】
そして、ユニット出力制御装置２０は、最優先の出力データを出力する検索ユニットを選択し、その検索ユニットにユニット出力許可信号を送信する。なお、上述のように、このときＣＡＭ出力制御回路でもＣＡＭの選択処理が並行して行われる。
【００３３】
ユニット出力許可信号を得たＣＡＭ出力制御回路（ＣＡＭ出力制御回路４１〜４ｑのうちの１つのＣＡＭ出力制御回路）が、上記のように選択された連想記憶メモリＣＡＭに、ＣＡＭ出力許可信号を送る。上記ＣＡＭ出力許可信号を受けた連想記憶メモリＣＡＭが、最終的にデータを出力する。
【００３４】
図５の（３）に、データ選択装置１００における出力データ選択処理の動作を示すタイムチャートを示す。比較のため、（２）には従来の構成におけるタイムチャートを示す。
【００３５】
前述したように、１つのＣＡＭ出力制御回路が、全ての連想記憶メモリＣＡＭの出力データ選択処理を行う場合、連想記憶メモリＣＡＭの数が多くなると、上記ＣＡＭ出力制御回路が行う最優先出力データ選択処理時間ｔ＿ｐｅが非常に長くなる。
【００３６】
ところが、本発明におけるデータ選択装置１００では、図３に示すように、階層的な出力選択処理構造を採用するので、最終出力選択処理時間ｔ＿ｈｐｅは、ＣＡＭ出力制御回路４１〜４ｑにおける選択処理時間ｔ＿ｃａｍと、ユニット出力制御装置２０における選択処理時間ｔ＿ｕｎｉｔとによって構成される。ここで、ＣＡＭ出力制御回路４１〜４ｑとユニット出力制御装置２０とが、図５（３）に示すように、同時に出力データの選択処理を行うので、上記最優先出力データ選択処理時間ｔ＿ｐｅよりも、短時間で最終出力処理を終了できる。つまり、最終出力処理を高速で行なうことができる。
【００３７】
なお、各ＣＡＭが同一の検索キーを用いてテーブル検索処理を行う場合、検索に成功した上記ＣＡＭであるヒット回路から、上記ＣＡＭ出力制御回路にＣＡＭ検索成功信号を出力するＣＡＭ検索成功信号出力回路を、連想記憶メモリＣＡＭ１〜ＣＡＭｐのそれぞれが有する。
【００３８】
論理和回路４１０Ｒは、検索ユニット内にヒット回路が存在していることを示すユニット検索成功信号を、ユニット出力制御装置に出力するユニット検索成功信号出力回路の例である。
【００３９】
図５（３）に関する上記説明は、検索ユニットＳＵ１についてのものであるが、検索ユニットＳＵ２、・・・・、ＳＵｑについても、上記と同様に説明することができる。
【００４０】
ＣＡＭ検索成功信号に基づいて、上記ＣＡＭ出力制御回路が実行する最優先出力データ選択処理と同時に、最優先ユニット出力選択処理を実行する手段を、ユニット出力制御装置２０が有する。
【００４１】
図６は、上記実施例におけるデータ出力選択処理動作を具体的に示すタイムチャートである。
【００４２】
図６に示す例では、連想記憶メモリＣＡＭは１２．５ＭＨｚのクロックで動作し、クロックの周期は８０ｎｓである。入力信号が１２８ｂｉｔである場合、連想記憶メモリＣＡＭの入力ポートが３２ｂｉｔで動作するので、データ入力には、クロックの４周期が必要である。連想記憶メモリＣＡＭの仕様によって、ＣＡＭ検索成功信号またはユニット検索成功信号は、３クロック＋７０ｎｓ後に利用可能になるので、最優先ＣＡＭまたはユニット出力処理動作は、５番目のクロックの先頭から行うことになる。
【００４３】
ここで、ＣＡＭ出力制御回路４１、４２、・・・・４ｑ、ユニット出力制御装置２０は、４２ｎｓｅｃの処理時間を要し、エンコーディング動作が１クロック以内で終了するので、出力データを、次のクロックサイクル（６クロック目）で処理することができる。
【００４４】
図６に示す例では、データ出力選択処理を４００ｎｓで行うことができ、これは２．５Ｍｐｐｓ（Ｍｅｇａ  ｐａｃｋｅｔｓ  ｐｅｒ  ｓｅｃｏｎｄ）の動作速度と等価である。したがって、上記実施例を、６２２Ｍｂｐｓ（ＯＣ−１２、１．５Ｍｐｐｓ）のネットワークオペレーションに用いることが可能である。
【００４５】
［第２実施例］
図７は、本発明の第２実施例である多段階層型検索成功信号先読み式出力データ選択装置２００の概略構成を示す図である。以下、多段階層型検索成功信号先読み式出力データ選択装置２００をデータ選択装置２００という。
【００４６】
データ選択装置２００において、複数の１段目検索ユニットＴＵ１と１つの１段目ユニット出力制御装置ＯＣＤ１とによって２段目検索ユニットＴＵ２が構成されている。
【００４７】
また、複数の２段目検索ユニットＴＵ２と１つの２段目ユニット出力制御装置ＯＣＤ２とによって３段目検索ユニットＴＵ３が構成されている。
【００４８】
さらに、複数の３段目検索ユニットＴＵ３と１つの３段目ユニット出力制御装置ＯＣＤ３とによって４段目検索ユニットＴＵ４が構成されている。
【００４９】
このようにして、ｎ段目検索ユニットＴＵｎが構成され各ｎ段目検索ユニットＴＵｎが出力するｎ段目ユニット検索成功信号が、ｎ段目ユニット出力制御装置ＯＣＤｎに送られる。
【００５０】
各段のユニット出力制御装置は、データ選択装置１００と同様に、ユニット優先順位表を所持し、最優先出力データを選択する際に、上記ユニット優先順位表を読み込む。
【００５１】
１段目検索ユニットＴＵ１は、図３に示す各検索ユニットＳＵ１〜ＳＵｑと同じ構成を有する。入力される検索キーについて、１段目検索ユニットＴＵ１内の連想記憶メモリＣＡＭがテーブル検索に成功すると、ヒットした連想記憶メモリＣＡＭから、ＣＡＭ検索成功信号が１段目検索ユニットＴＵ１内のＣＡＭ出力制御回路に送られる。
【００５２】
データ選択装置１００と同様に、データ選択装置２００におけるＣＡＭ出力制御回路は、各連想記憶メモリＣＡＭから送られたＣＡＭ検索成功信号の論理和を実行し、最優先出力データを有する連想記憶メモリＣＡＭをＣＡＭ出力制御回路が選択するよりも前に、１段目ユニット検索成功信号が、１段目ユニット出力制御装置ＯＣＤ１に先読みされ上記最優先ＣＡＭ出力選択処理と、上記１段目ユニット出力制御装置ＯＣＤ１による１段目検索ユニットの最優先出力選択処理とが同時に行なわれる。
【００５３】
上記と同様に、上記ｎ−１（以下、ｎは２以上とする）段目ユニット出力制御装置は、ｎ−２段目ユニット出力制御装置（０段目はＣＡＭ出力制御回路を意味する）から送られてきたｎ−１段目ユニット検索成功信号の論理和を実行し、ｎ段目ユニット出力制御置ＯＣＤｎに、ｎ段目ユニット検索成功信号を先読みさせ、ｎ−１段目検索ユニットの最優先出力選択処理と、ｎ段目検索ユニットの最優先処理選択処理とが同時に行われる。ｎ段目ユニット出力制御装置ＯＣＤｎは、ｎ−１段目ユニット出力制御装置に、ｎ段目ユニット出力許可信号を送る。
【００５４】
そして、最終的に、１段目ユニット出力制御装置ＯＣＤ１からＣＡＭ出力制御回路に１段目ユニット許可信号が送られ、上記１段目ユニット許可信号を受けたＣＡＭ出力制御回路が、出力優先順位が最も高い連想記憶メモリＣＡＭにＣＡＭ出力許可信号を送り、上記連想記憶メモリＣＡＭが外部に出力データを出力する。
【００５５】
図８は、データ選択装置２００において、出力データを選択する動作を示すタイムチャートである。
【００５６】
１つのＣＡＭ出力制御回路が全ての連想記憶メモリＣＡＭの出力データ選択処理を行う場合、連想記憶メモリＣＡＭの数が多くなると、上記ＣＡＭ出力制御回路が行う最優先出力データ選択処理時間ｔ＿ｐｅが、図８（２）に示すように、非常に長くなる。
【００５７】
ところが、データ選択装置２００では、図７に示すように、階層的な出力選択処理構造を採用するので、最終出力選択処理時間ｔ＿ｈｐｅは、ＣＡＭ出力制御回路における選択処理時間ｔ＿ｃａｍと、ユニット出力制御装置における選択処理時間ｔ＿ｕｎｉｔ＿１〜ｔ＿ｕｎｉｔ＿ｎとによって構成される。ＣＡＭ出力制御回路とユニット出力制御装置とが、図８（３）に示すように、同時に出力データの選択処理を行うので、上記最優先出力データ選択処理時間ｔ＿ｐｅよりも、短時間で最終出力処理を終了でき、つまり、最終出力処理を高速で行なうことができる。
【００５８】
なお、図７に示した構成において、１段目検索ユニットから出力する１段目ユニット検索成功信号を、１段目検索ユニット出力制御装置に送ると共に、１段目検索ユニット出力制御装置を飛び越して、２段目以降のユニット出力制御装置に送ってもよい。これにより、各段のユニット出力制御装置における遅延を減らすことができる。すなわち、図８におけるｔ＿ｈｐｅを更に短縮することができる。
【００５９】
［第３実施例］
図９は、本発明の第３実施例である検索ユニット３００を示す図である。
【００６０】
検索ユニット３００は、データ選択装置１００における検索ユニットＳＵ１〜ＳＵｑの代わりに使用することができる検索ユニットであり、また、データ選択装置２００における１段目検索ユニットＴＵ１の代わりに使用することができる検索ユニットである。
【００６１】
検索ユニット３００は、検索キーについてテーブル検索処理を行うテーブル検索回路ＬＵＴと、各テーブル検索回路ＬＵＴが出力する出力データの優先順位を決定するＬＵＴ優先順位表５１と、ＬＵＴ優先順位表５１を読み込み、テーブル検索回路ＬＵＴの出力データの中から優先順位が最も高い出力データを所持するテーブル検索回路ＬＵＴについて、出力データの出力を許可するＬＵＴ出力制御回路６１とによって構成されている。
【００６２】
テーブル検索回路ＬＵＴは、ＲＡＭと、演算回路ＭＰＵとによって構成されている。演算回路ＭＰＵは、上記ＲＡＭの内部記憶領域に予め格納してある複数のデータと検索キーとの一致比較を行うものである。
【００６３】
検索ユニット３００を、データ選択装置１００における検索ユニットＳＵ１〜ＳＵｑの代わりに使用したり、また、データ選択装置２００における１段目検索ユニットＴＵ１の代わりに使用することによって、データ選択装置１００、データ選択装置２００と同様に、検索成功信号先読み式出力データ選択装置を構成することができ、出力優先順位が最も高い１つのテーブル検索回路ＬＵＴの出力データを高速に選択することができる。
【００６４】
また、ＬＵＴ出力制御回路６１は、上記各テーブル検索回路が出力する出力データのうちで、出力優先順位が最も高い出力データを選択するデータ出力制御回路の例である。
【００６５】
データ選択装置１００におけるＣＡＭ１〜ｐ、ＣＡＭ１〜ｍ、ＣＡＭ１〜ｎは、各テーブル検索回路が同一の検索キーを用いてテーブル検索処理を行う場合、検索に成功した上記テーブル検索回路であるヒット回路から、上記データ出力制御回路にデータ検索成功信号を出力するデータ検索成功信号出力手段の例であり、このように、データ検索成功信号出力手段を、ハードウェアで実現するようにしてもよく、また、検索ユニット３００におけるテーブル検索回路ＬＵＴ等のように、ソフトウェアで実現するようにしてもよい。
【００６６】
また、検索ユニット内に上記ヒット回路が存在していることを示すユニット検索成功信号を、ユニット出力制御装置に出力するユニット検索成功信号出力手段を、ハードウェア、ソフトウェアのどちらで実現するようにしてもよい。
【００６７】
［第４実施例］
図１０は、本発明の第４実施例であるパイプラインデータ処理式検索成功信号先読みデータ選択装置４００を示す図である。以下、パイプラインデータ処理式検索成功信号先読みデータ選択装置４００をデータ選択装置４００という。
【００６８】
データ選択装置４００は、データ選択装置１００において、ＣＡＭ出力制御回路４１、４２、・・・・、４ｑの代わりに、ユニット出力制御回路４１−１、４２−１、・・・・、４ｑ−１を使用し、ユニット出力制御装置２０の代わりに、ユニット出力制御装置２０−１を使用したものである。
【００６９】
ユニット出力制御回路４１−１は、複数のフリップフロップによって小規模の論理回路に分割され、この分割された小規模論理回路を時系列パイプライン処理させる回路である。ユニット出力制御回路４２−１、・・・・、４ｑ−１のそれぞれも、ユニット出力制御回路４１−１と同様の構成を有する。
【００７０】
また、ユニット出力制御装置２０−１は、複数のフリップフロップによって小規模の論理回路に分割され、この分割された小規模論理回路を時系列パイプライン処理させる回路である。
【００７１】
データ選択装置４００は、パイプラインデータ処理式ＣＡＭ出力制御回路、パイプラインデータ処理式ユニット出力制御装置のそれぞれが、遅延の小さい小規模の論理回路で構成されるので、連続して入力されるキーデータについて、最終出力データを高速で選択することができる。
【００７２】
［第５実施例］
本発明のデータ選択装置は、ネットワークルータやＡＴＭ交換機等のパケット処理装置に使用することができる。図１１に、本発明のデータ選択装置を用いたルータ５００の構成例を示す。ルータ５００は、パケットを入力する入力ポート７１、通常のデータと経路制御等のためのデータとを振分ける振分部７２、経路制御データを処理する経路制御プロトコル処理部、通常のデータの転送処理を行う通常転送処理部７４、ルーティングテーブル７５、パケットを出力する出力ポート７６を有する。
【００７３】
入力ポートに入力されたパケットは振分部７２で振分けられ、経路制御用のパケットであれば、経路制御プロトコル処理部７３を介してルーティングテーブル７５の更新に使用されたり、更に出力ポート７６を介して他ノードに送信される。通常のパケットであれば、通常転送処理部７４においてパケットの宛先アドレスを基にルーティングテーブル７５を検索することにより次に送信すべき宛先が決定され、該当の出力ポート７５を介してパケットが転送される。本発明のデータ選択装置は通常転送処理部７４の一部及びルーティングテーブル７５として使用される。
【００７４】
上記ルータの動作について更に説明する。図１２はＴＣＰ／ＩＰネットワークの一例を示す図であり、各円はルータを示す。各ルータはルーティングテーブルを有し、図１３にノードＤが有するルーティングテーブルの例を示す。同図において、ＩＰプレフィックスは宛先ネットワークのＩＰアドレスであり、次ホップは入力パケットの宛先に対応した隣接ノードの宛先アドレスである。同図に示すように、入力パケットの宛先アドレスがＯを示していた場合、ルーティングテーブルを検索して次ホップとしてＦを選択し、パケットをＦに転送する。
【００７５】
より詳細には、テーブル検索方法としてインターネット（ＩＰｖ４）においては例えば最長プレフィクス選択処理技術が使用される。第１実施例等のように複数のＣＡＭを用いて検索ユニットを構成する場合、最長プレフィクス選択処理を行うには、例えば次のようにする。
【００７６】
マスクが同一であるＩＰアドレスを持つ被検索データを同じＣＡＭに登録し、一つのマスクをＣＡＭ内のマスクレジスタに登録する。検索処理では、まず、検索キーを同時に各ＣＡＭに与え、一斉に各ＣＡＭ毎のマスク処理とテーブル検索を行う。次に、それぞれの検索結果から、優先順位表に基づき、最も長いビットパターンがマッチする結果を選択する。本発明では、この選択処理を多段構成で高速に行う。なお、個々の被検索データ毎にマスクを持つＣＡＭを使用することも可能である。
【００７７】
また、テーブル検索には例えば修正２進木／Ｂ木による方法（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）を用いることができ、各アルゴリズムは、例えば本発明の第３実施例で説明した構成を用いてソフトウェアとして実装することができる。
【００７８】
本発明は、上記の実施例に限定されることなく、特許請求の範囲内で種々変更・応用が可能である。
【００７９】
【発明の効果】
上述したように、本発明によれば、複数の出力制御回路とユニット出力制御装置とで構成する階層的な出力データ選択方式において検索成功信号をユニット出力制御装置が先読みするので、多数のテーブル検索回路で構成するテーブル検索処理を行う場合に最優先出力データを高速で選択することができるという効果を奏する。
【図面の簡単な説明】
【図１】ＣＡＭを使用したデータ選択装置の従来技術における構成例を示す図である。
【図２】従来技術におけるデータ出力選択処理の動作を示すタイムチャートを示す図である。
【図３】本発明の第１実施例である検索成功信号先読み式出力データ選択装置１００を示す構成図である。
【図４】検索成功信号先読み式出力データ選択装置１００における出力データの選択方式を詳細に示す図である。
【図５】データ出力選択処理の動作を示すタイムチャートである。
【図６】上記実施例におけるデータ出力選択処理動作を具体的に示すタイムチャートである。
【図７】本発明の第２実施例である多段階層型検索成功信号先読み式出力データ選択装置２００の概略構成を示す図である。
【図８】多段階層型検索成功信号先読み式出力データ選択装置２００において、出力データを選択する動作を示すタイムチャートである。
【図９】本発明の第３実施例である検索ユニット３００を示す図である。
【図１０】本発明の第４実施例であるパイプラインデータ処理式検索成功信号先読みデータ選択装置４００を示す図である。
【図１１】本発明のデータ選択装置を用いたルータ５００の構成例を示す図である。
【図１２】ＴＣＰ／ＩＰネットワークの一例を示す図である。
【図１３】ルーティングテーブルの一例を示す図である。
【符号の説明】
１０  ユニット優先順位表
２０、２０−１    ユニット出力制御装置
３１〜３ｑ  ＣＡＭ優先順位表
４１〜４ｑ  ＣＡＭ出力制御回路
４１−１〜４ｑ−１  ユニット出力制御回路
５１  ＬＵＴ優先順位表
６１  ＬＵＴ出力制御回路
７１  入力ポート、
７２  振分部
７３  経路制御プロトコル処理部
７４  通常転送処理部
７５  ルーティングテーブル
７６  出力ポート
１００  検索成功信号先読み式出力データ選択装置
２００  多段階層型検索成功信号先読み式出力データ選択装置
３００  検索ユニット
４００  パイプラインデータ処理式検索成功信号先読みデータ選択装置
５００  ルータ
ＳＵ１〜ＳＵｑ、ＳＵ１−１〜ＳＵｑ−１  検索ユニット
ＴＵｎ  ｎ段目検索ユニット
ＯＣＤｎ  ｎ段目ユニット出力制御装置
ＬＵＴ  テーブル検索回路
【図１】
0003700574.tif 000002
【図２】
0003700574.tif 000003
【図３】
0003700574.tif 000004
【図４】
0003700574.tif 000005
【図５】
0003700574.tif 000006
【図６】
0003700574.tif 000007
【図７】
0003700574.tif 000008
【図８】
0003700574.tif 000009
【図９】
0003700574.tif 000010
【図１０】
0003700574.tif 000011
【図１１】
0003700574.tif 000012
【図１２】
0003700574.tif 000013
【図１３】
0003700574.tif 000014