(57)【特許請求の範囲】
【請求項１】
外部から与えられたマスクデータによって、入力データにマスク処理を施し、上記マスク処理によってマスクされたビット列を検索キーとして取り出し、予め格納してある複数個の被検索データから、上記検索キーとマッチする被検索データを検索する複数の連想メモリと、上記複数の連想メモリのそれぞれが出力した複数個の検索結果から、予め設定された優先順序に従って、１つの検索結果を選び出すプライオリティ・エンコーダとを有する連想メモリモジュールにおいて、
上記プライオリティ・エンコーダにおけるデータ選択の上記優先順序を外部から任意に設定可能な優先順序設定手段と；
上記入力データを上記複数の連想メモリのそれぞれに同時に与え、上記複数の連想メモリのそれぞれに同時に検索を実行させる同時検索実行手段と；
を有し、上記同時に実行して得られた複数の検索結果から、上記設定された優先順序に従って、上記プライオリティ・エンコーダが、１つの検索結果を選び出し、上記優先順序設定手段は、上記連想メモリモジュール内にＮ個の連想メモリが存在する場合、上記プライオリティ・エンコーダによる選択優先順序が定められているＮ種類以下のグループを設け、上記複数の連想メモリのそれぞれが上記グループのうちのどのグループに属するかを示すグループ登録用レジスタを有し、上記グループ登録用レジスタの値を変更することのみによって、上記複数の連想メモリのうちの所定の連想メモリを、上記Ｎ種類以下のグループのうちの所望のグループに登録する手段を持つことを特徴とする連想メモリモジュール。
【請求項２】
外部から与えられたマスクデータによって、入力データにマスク処理を施し、上記マスク処理によってマスクされたビット列を検索キーとして取り出し、予め格納してある複数個の被検索データから、上記検索キーとマッチする被検索データを検索する複数の連想メモリと、上記複数の連想メモリのそれぞれが出力した複数個の検索結果から、予め設定された優先順序に従って、１つの検索結果を選び出す第１のプライオリティ・エンコーダとを有する連想メモリモジュールにおいて、上記第１のプライオリティ・エンコーダにおけるデータ選択の上記優先順序を外部から任意に設定可能な第１の優先順序設定手段と、上記入力データを上記複数の連想メモリのそれぞれに同時に与え、上記複数の連想メモリのそれぞれに同時に検索を実行させる同時検索実行手段とを有する複数の連想メモリモジュールと；
上記複数の連想メモリモジュールのそれぞれから出力された複数個の検索結果から、予め設定された優先順序に従って、１つの検索結果を選び出す第２のプライオリティ・エンコーダと；
上記第２のプライオリティ・エンコーダにおけるデータ選択の上記優先順序を外部から任意に設定可能な第２の優先順序設定手段と；
を有し、上記複数の連想メモリモジュールが階層的に構成されていることを特徴とする連想メモリモジュール群。
【請求項３】
請求項２において、
上記複数の被検索データを格納し、上記連想メモリモジュール群の出力信号をアドレスとみなし、上記格納された複数の被検索データのうちで、上記アドレスに応じた上記被検索データを最終結果として出力する外部メモリを有することを特徴とする連想メモリモジュール群。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力データの一部のビット列を検索キーとし、連想メモリモジュールに内蔵されているデータ記憶手段に予め格納されている複数のデータ群からなるデータテーブルの中から、上記検索キーと一致する項目を含むデータ群を検索し、その内容または格納位置を読み出す機能を持ち、しかも、上記検索キーが複数のデータ群と同時に一致しているときに、検索キーのビット列が最も長いものと一致しているデータ群を取り出す連想メモリモジュールに関する。
【０００２】
【従来の技術】
複数の入出力ポートを持つＩＰルーティング処理装置（ルータ）を用いて、ＩＰルーティング処理を行うには、入力ポートに到着したパケットのヘッダ情報から、３２ビットの「相手ＩＰアドレス」を検出し、この検出された相手ＩＰアドレスに適合する出力ポートに、上記到着したパケットを送出する必要があり、つまり、到着したパケットを送出すべき出力ポートを決定する必要がある。この場合、上記「相手ＩＰアドレス」を検索キーとし、ルータ内に存在するルーティングテーブル中の項目を検索し、上記検索キーと一致した上記項目に登録されている出力ポートを選択することによって、上記到着したパケットを送出すべき出力ポートを決定する。
【０００３】
この出力ポートを決定する処理として、ベストマッチ方式が採用されている。このベストマッチ処理は、まず、ルーティングテーブル内のＩＰアドレスを、そのＩＰアドレス毎に１対１対応で、別途用意されているネットマスク情報によって、「相手ＩＰアドレス」の一部のビットをマッチングの対象から除外するマスク処理を行った後、このマスク処理されたデータを検索キーとして、被検索データと比較処理し、複数の候補とマッチすると、マスクの長さ（マスクのビット幅）が最も長いデータ（マッチング対象から除外したビット幅が最も短いデータ）を最優先候補として採用する処理である。
【０００４】
マスクデータ上、「１」の立っているビットが比較対象であるとした場合、たとえば、マスクデータが「１１１１１１１１  １１１１１１１１  １１１１１１１１  ００００００００」である３２ビット幅のデータ（比較対照が２４ビットであるデータ）と、マスクデータが「１１１１１１１１  １１１１１１１１  ００００００００  ００００００００」である３２ビット幅のデータ（比較対照が１６ビットであるデータ）とに、検索キーがマッチした場合、比較対象が２４ビットである前者のデータを選択する。
【０００５】
このベストマッチ処理は、ルーティング処理の主要部分であるにもかかわらず、従来は、ＣＰＵを使用してソフトウェアでベストマッチ処理を実行しているので、ルータ自身のスループットの向上が阻止されるという問題がある。
【０００６】
【発明が解決しようとする課題】
一方、内容を高速に比較するハードウェアとして、連想メモリ（ＣＡＭ）が従来知られている。この従来の連想メモリは、入力データに対して一律にマスク処理を行い、内容を検索するのみであり、上記ベストマッチ処理を行うために格納されている各ＩＰアドレス毎に、個別にマスク処理を行うものではない。
ところで、ベストマッチ処理に用いるマスクデータは、一般に、複数のＩＰアドレスに対して同一であることが、通信の規約上、多いので、従来の連想メモリを複数用い、上記ベストマッチ処理を実行することが考えられる。
【０００７】
つまり、まず、マスクデータが同一である「相手ＩＰアドレス」を有する被検索データを、同一の連想メモリに格納する。この場合、各連想メモリがそれぞれ有するマスクデータ格納レジスタには、上記同一のマスクデータをセットしておく。実際に検索処理を行う場合、まず、入力データ（検索データ）を各連想メモリに同時に与え、各連想メモリ毎のマスク処理と検索とを一斉に実行する。次に、それぞれの検索結果を、別途設けたプライオリティ・エンコーダに送り、連想メモリが出力した複数の検索結果のうちで、ビット幅が最も長いマスクデータを持つ検索結果を最終的に採用する。このようにすることによって、ベストマッチ処理を実現することができる。
【０００８】
しかし、上記のように従来の連想メモリを複数用いてベストマッチ処理を実行する場合、格納すべき被検索データの件数を予め想定することができないので、ベストマッチ処理を実行する回路を構成するときに、各マスクデータに対して用意すべき連想メモリの容量を予測することができない。
【０００９】
すなわち、同一のマスクデータを持つ被検索データ（検索すべき相手ＩＰデータ）の件数は、マスクデータ毎にバラツキがあることが予想され、したがって、各マスクデータに対して同一容量の連想メモリを用意すると、容量に過不足が生じ、用意した連想メモリ全体の容量を有効に使用できない可能性があるという問題がある。
【００１０】
本発明は、ハードウェアでベストマッチ処理を行うことによる高速性と、用意した連想メモリ全体の容量を有効に使用することができる柔軟性とを有する連想メモリモジュールを提供することを目的とするものである。
【００１１】
【課題を解決するための手段】
本発明は、外部から与えられたマスクデータによって、入力データにマスク処理を施し、上記マスク処理によってマスクされたビット列を検索キーとして取り出し、予め格納してある複数個の被検索データから、上記検索キーとマッチする被検索データを検索する複数の連想メモリと、上記複数の連想メモリのそれぞれが出力した複数個の検索結果から、予め設定された優先順序に従って、１つの検索結果を選び出すプライオリティ・エンコーダとを有する連想メモリモジュールにおいて、上記プライオリティ・エンコーダにおけるデータ選択の上記優先順序を外部から任意に設定可能な優先順序設定手段と、上記入力データを上記複数の連想メモリのそれぞれに同時に与え、上記複数の連想メモリのそれぞれに同時に検索を実行させる同時検索実行手段とを有し、上記同時に実行して得られた複数の検索結果から、上記設定された優先順序に従って、上記プライオリティ・エンコーダが、１つの検索結果を選び出し、上記優先順序設定手段は、上記連想メモリモジュール内にＮ個の連想メモリが存在する場合、上記プライオリティ・エンコーダによる選択優先順序が定められているＮ種類以下のグループを設け、上記複数の連想メモリのそれぞれが上記グループのうちのどのグループに属するかを示すグループ登録用レジスタを有し、上記グループ登録用レジスタの値を変更することのみによって、上記複数の連想メモリのうちの所定の連想メモリを、上記Ｎ種類以下のグループのうちの所望のグループに登録する手段を持つ連想メモリモジュールである。
【００１２】
【発明の実施の形態および実施例】
図１（１）は、本発明の一実施例である連想メモリモジュール１００を示す回路図である。
【００１３】
連想メモリモジュール１００は、４つの連想メモリ（ＣＡＭ）１００ａ、１００ｂ、１００ｃ、１００ｄと、グループ登録用レジスタ１１５とを有する。
【００１４】
連想メモリ１００ａ、１００ｂ、１００ｃ、１００ｄのそれぞれは、入力データ１１７に対して一律にマスク処理を行う回路を内蔵し、マスクデータを格納するマスクレジスタＲａ、Ｒｂ、Ｒｃ、Ｒｄをそれぞれ内蔵している。ここで、連想メモリ１００ａ、１００ｂ、１００ｃ、１００ｄは、３２ビットを１ワードとした場合、ｎワードの容量を有する。また、各マスクレジスタＲａ、Ｒｂ、Ｒｃ、Ｒｄの容量もそれぞれ３２ビットである。
【００１５】
被検索データとマスクデータとは１対１で対応され、互いに同一のマスクデータを有する被検索データ同士が１つのグループにグループ化され、各グループ単位で、互いに異なる連想メモリに被検索データが格納される。また、上記マスクデータは、それぞれ対応する連想メモリに内蔵されているマスクレジスタにセットされる。
【００１６】
連想メモリ１００ａ、１００ｂ、１００ｃ、１００ｄのそれぞれに設けられているマスクレジスタＲａ、Ｒｂ、Ｒｃ、Ｒｄのそれぞれには、図１（２）に示す値が格納されているとする。そして、マスクレジスタＲａ〜Ｒｄが格納しているマスクデータが互いに同じであれば、それらを１つのグループにまとめ、したがって、図１（２）に示す状態では、４つのマスクレジスタが、「Ｒａ」、「Ｒｂ、Ｒｃ」、「Ｒｄ」という３つのグループに分けられる。図１（１）において、同じグループに属するマスクレジスタには、互いに同じ模様を付して表示してある。
【００１７】
連想メモリモジュール１００は、最大４種類のマスクデータを有する被検索データを格納することができ、連想メモリ１００ａ〜１００ｄは、検索の結果一致した被検索データが存在していることを示すヒットフラグと、上記検索の結果一致した被検索データとを出力する。一致した被検索データが存在する場合、ヒットフラグが「１」になり、一致した被検索データが存在しない場合、ヒットフラグが「０」になる。そして、連想メモリ１００ａ〜１００ｄがそれぞれ出力した信号は、全てプライオリティ・エンコーダ１０６に入力される。
【００１８】
プライオリティ・エンコーダ１０６は、複数のヒットフラグが「１」になった場合、どれを最終的に出力にするかを定める優先順序に従って、「１」になった複数のヒットフラグの中から、１つのヒットフラグを選択し、この選択されたヒットフラグに対応する被検索データを選択するものである。上記優先順序は、グループ登録用レジスタ１１５の値によって決定される。
【００１９】
グループ登録用レジスタ１１５は、４つの連想メモリ１００ａ、１００ｂ、１００ｃ、１００ｄのそれぞれがどのグループに属するのかを示すものであり、４本のレジスタＣ０、Ｃ１、Ｃ２、Ｃ３を有し、レジスタＣ０、Ｃ１、Ｃ２、Ｃ３はそれぞれ４ビットで構成され、上記４ビットは、図１中、左から、連想メモリ１００ａ、１００ｂ、１００ｃ、１００ｄにそれぞれ対応している。
【００２０】
たとえば、図１に示す実施例において、レジスタＣ０が「０１１０」であるから、連想メモリ１００ｂと１００ｃとの２つの連想メモリが、グループＣ０に属し、レジスタＣ１が「１０００」であるから、連想メモリ１００ａがグループＣ１に属し、レジスタＣ２が「００００」であるから、グループＣ２に属する連像メモリは存在せず、レジスタＣ３が「０００１」であるから、連想メモリ１００ｄがグループＣ３に属する。
【００２１】
そして、同一のグループに属する連想メモリのそれぞれは、互いに同一のマスクデータを持ち、つまり、上記同一のグループに属する連想メモリのマスクレジスタには、互いに同じマスクデータがセットされる。この場合、レジスタＣ０、Ｃ１、Ｃ２、Ｃ３の順に、優先度が高いグループであるとし、その順に、ビット幅が長いマスクデータを持つ被検索データを、対応する連想メモリに格納する。上記実施例では、図１（２）に示すように、連想メモリ１００ｂと１００ｃとの優先度が最も高く、連想メモリ１００ａの優先度が次に高く、連想メモリ１００ｄの優先度が最後に高い。
【００２２】
ここで、同一グループに属する連想メモリの優先度は、図１に示すグループ登録用レジスタ１１５中、より左側に位置するもの程、高いとする。したがって、上記実施例では、連想メモリ１００ｂの優先度が、連想メモリ１００ｃの優先度よりも高い。
【００２３】
プライオリティ・エンコーダ１０６は、上記規則に従って、入力データに関する優先度を一意に決定することができる。
【００２４】
つまり、連想メモリモジュール１００は、外部から与えられたマスクデータによって、入力データにマスク処理を施し、上記マスク処理によってマスクされたビット列を検索キーとして取り出し、連想メモリ１００ａ〜１００ｄに予め格納してある複数個の被検索データから、上記検索キーとマッチする被検索データを検索する複数の連想メモリ１００ａ〜１００ｄが設けられ、複数の連想メモリ１００ａ〜１００ｄのそれぞれが出力した複数個の検索結果から、予め設定された優先順序に従って、１つの検索結果を選び出すプライオリティ・エンコーダ１０６が設けられた連想メモリモジュールであり、優先順序設定手段と同時検索実行手段とを有するものである。また、上記優先順序設定手段は、プライオリティ・エンコーダ１０６におけるデータ選択の上記優先順序を外部から任意に設定可能な手段であり、同時検索実行手段は、上記入力データを複数の連想メモリ１００ａ〜１００ｄのそれぞれに同時に与え、複数の連想メモリ１００ａ〜１００ｄのそれぞれに同時に検索を実行させる手段である。
【００２５】
次に、上記実施例の動作について説明する。
【００２６】
図１に示す実施例では、入力データ１１７を４つの連想メモリ１００ａ、１００ｂ、１００ｃ、１００ｄに同時に加え、その入力データを検索し、この検索の結果、検索キーと一致する被検索データが、連想メモリ１００ａ、１００ｂ、１００ｃに存在するとする。すなわち、ヒットフラグ１０７、１０９、１１１、１１３が、それぞれ、「１」、「１」、「１」、「０」になったとすると、上記４つの連想メモリ１００ａ、１００ｂ、１００ｃ、１００ｄのうちで、連想メモリ１００ｂの優先度が一番高いことが、グループ登録用レジスタ１１５の設定内容から分かる。つまり、レジスタＣ０、Ｃ１、Ｃ２、Ｃ３の順に、優先度が高く、また、図１に示すグループ登録用レジスタ１１５中、より左側に位置するもの程、優先度が高いので、連想メモリ１００ｂの優先度が一番高いことになる。
【００２７】
したがって、プライオリティ・エンコーダ１０６は、最終結果として、連想メモリ１００ｂの値１１０を出力データ１１９として出力し、さらに、連想メモリモジュール１００の全体として一致データが存在していることを知らせるヒットフラグ１１８を「１」にして外部に知らせる。上記実施例によれば、上記ベストマッチ処理を実現することができる。
【００２８】
また、上記実施例によれば、グループ登録用レジスタ１１５の設定に応じて、４つの連想メモリ１００ａ、１００ｂ、１００ｃ、１００ｄを、いかようにもグループ分けすることができる。たとえば、マスクの種類が３種類であり、それぞれの被検索データの件数がｎ以下であった場合、３つの連想メモリ、たとえば連想メモリ１００ａ、１００ｂ、１００ｃによって対応できる。すなわち、被検索データが新たに追加され、所定のマスクデータのグループ（たとえば連想メモリ１００ａ）のみに対応するマスクデータが、１つの連想メモリに格納することができる被検索データの件数であるｎ件を越えた場合、ｎ＋１件以降の被検索データに対応するマスクデータを、連想メモリ１００ｄに格納し（つまり、連想メモリ１００ｄのマスクレジスタＲｄに、連想メモリ１００ａに書き込まれているマスクデータと同一のマスクデータを書き込み）、さらに、連想メモリ１００ａが属するグループに、連想メモリ１００ｄが属するように、対応するグループ登録用レジスタ１１５の値を書き換えればよい。
【００２９】
このように、所定のグループに属する１つの連想メモリに格納される被検索データの数が多くなったときに、上記被検索データに対応するマスクデータを、上記１つの連想メモリとは別の連想メモリに格納し、上記所定のグループに、上記別の連想メモリが属するように、対応するグループ登録用レジスタ１１５の値を書き換えればよい。このようにすることによって、既に登録されている被検索データ等を一切変更することなく、ｎ件の新たな被検索データの格納領域を新たに作ることができる。
【００３０】
また、図１に示す実施例において、グループ登録用レジスタ１１５を構成するレジスタの数を、グループの総数（＝連想メモリの数）と同じにし、上記各レジスタのビット幅を連想メモリの数と同じに設定したので、グループ登録用レジスタ１１５の総ビット数は、連想メモリの個数の２乗になる。たとえば、図１に示す実施例では、グループ登録用レジスタ１１５の総ビット数は、４×４＝１６ビットになる。このようにしてあるのは、プライオリティ・エンコーダの論理を簡単化するためにとった方策である。ところで、各連想メモリがどのグループに属するのかを表現できればよいので、そのグループの番号をエンコードし、２進数で表現するようにしてもよい。たとえば、図１に示す実施例では、４つのグループが存在し、それぞれのグループ番号を、「００」、「０１」、「１０」、「１１」のように設定すれば、グループの番号を２ビットで表現することができる。このようにすると、４×２＝８ビットによって、プライオリティ・エンコーダにおける被検索データの優先順位を制御することができる。
【００３１】
また、グループ化を行わず、各連想メモリに一意の順番をつけることによって、プライオリティ・エンコーダの優先順位を制御するようにしてもよい。この場合、連想メモリの総数を２進数で表したビット数を、各連想メモリ毎に対応させて持てばよく、レジスタの総ビット数は、グループの番号をエンコードする上記の場合と同様である。これによって、プライオリティ・エンコーダの論理が、グループの番号をエンコードする上記場合よりも一般に簡単になる。しかし、各連想メモリに一意の順番をつけるようにすると、既に使用している連想メモリよりも、新たに追加した連想メモリの優先順位を上げたいときに、他の連想メモリの優先順序を１番づつ前後にずらす必要が生じ、このために、対応するレジスタの値を書き換える必要が生ずる場合がある。これに比べ、連想メモリモジュール１００のようにグループ登録用レジスタ１１５を用いれば、既に存在する同一グループに新たな連想メモリを追加する場合は、既に設定してある他のレジスタの値を変更する必要がない。
【００３２】
図２は、本発明の他の実施例である連想メモリモジュール群２００を示す回路図であり、大規模なベストマッチ処理を行う回路構成を示す図である。
【００３３】
連想メモリモジュール群２００は、連想メモリモジュール２００ａ、２００ｂ、２００ｃと、プライオリティ・エンコーダ２１１と、グループ登録用レジスタ２１５とを有する。
【００３４】
連想メモリモジュール２００ａ、２００ｂ、２００ｃは、それぞれ連想メモリモジュール１００と同様の連想メモリモジュールである。
【００３５】
プライオリティ・エンコーダ２１１、グループ登録用レジスタ２１５のそれぞれの機能は、図１に示すプライオリティ・エンコーダ１０６、グループ登録用レジスタ１１５の機能と同様である。
【００３６】
つまり、連想メモリモジュール群２００は、外部から別途与えられたマスクデータによって、入力データにマスク処理を施し、上記マスク処理によってマスクされたビット列を検索キーとして取り出し、予め格納してある複数個の被検索データから、上記検索キーとマッチする被検索データを検索する複数の連想メモリと、上記複数の連想メモリのそれぞれが出力した複数個の検索結果から、予め設定された優先順序に従って、１つの検索結果を選び出す第１のプライオリティ・エンコーダとを有し、上記第１のプライオリティ・エンコーダにおけるデータ選択の上記優先順序を外部から任意に設定可能な第１の優先順序設定手段と、上記入力データを上記複数の連想メモリのそれぞれに同時に与え、上記複数の連想メモリのそれぞれに同時に検索を実行させる同時検索実行手段とを有する複数の連想メモリモジュールと、上記複数の連想メモリモジュールのそれぞれから出力された複数個の検索結果から、予め設定された優先順序に従って、１つの検索結果を選び出す第２のプライオリティ・エンコーダと、上記第２のプライオリティ・エンコーダにおけるデータ選択の上記優先順序を外部から任意に設定可能な第２の優先順序設定手段とを有し、上記複数の連想メモリモジュールが階層的に構成されている連想メモリモジュール群である。
【００３７】
連想メモリモジュール群２００において、入力データ（検索キー）２１７は、連想メモリモジュール２００ａ、２００ｂ、２００ｃのそれぞれに同時に送られ、並列に検索処理され、全体の検索結果２１２が得られる。図２に示すように、連想メモリモジュール２００ａ、２００ｂ、２００ｃを階層的に構成すると（つまり、複数の連想メモリモジュール１００を階層的に構成すると）、１つの連想メモリモジュールのみを使用する場合に比べて、検索時間をあまり犠牲にすることなく大規模化を容易に図ることができる。つまり、連想メモリモジュール群２００における連想メモリモジュール２００ａ、２００ｂ、２００ｃは、同時に検索処理を行うので、１つの連想メモリモジュールのみの処理と、その時間は同じであり、プライオリティ・エンコーダ２１１の処理時間のみが余分にかかるのみである。
【００３８】
連想メモリモジュール群２００によれば、連想メモリモジュールを階層的に用いることによって、より大規模なマストマッチ処理を行うハードウェアを容易に実現することができる。
【００３９】
また、被検索データ１件あたりのデータ量が多い場合は、検索結果２１２をアドレスとみなし、外部に別途設けた半導体メモリ２１３のアドレス端子に上記アドレスを加え、最終結果２１４を得るようにすればよい。
【００４０】
このようにすれば、連想メモリモジュール２００ａ、２００ｂ、２００ｃに搭載する連想メモリ自体の容量を削減することができる。つまり、被検索データに含まれている情報（出力ポートを特定する情報、装置のセッティングに必要な各種パラメータ等の情報）を連想メモリ１００ａ〜１００ｄに格納するようにすると、その分だけ、連想メモリ１００ａ〜１００ｄに格納する（エントリーする）ことができる被検索データの数が少なくなるが、被検索データに含まれている情報（出力ポートを特定する情報、装置のセッティングに必要な各種パラメータ等の情報）を、連想メモリ１００ａ〜１００ｄに格納せずに、連想メモリモジュール群２００の外部に設けた半導体メモリ２１３に格納し、半導体メモリ２１３から最終結果２１４を出力するようにすれば、連想メモリモジュール２００ａ、２００ｂ、２００ｃに搭載する連想メモリ自体に格納する１つの被検索データの容量を削減することができる。
【００４１】
つまり、複数の被検索データを格納し、連想メモリモジュール群２００の出力信号をアドレスとみなし、上記格納された複数の被検索データのうちで、上記アドレスに応じた上記被検索データを最終結果として出力する外部メモリを有するようにすればよい。
【００４２】
また、連想メモリモジュール群２００において、グループ登録用レジスタ２１５を用いているので、既に存在する同一グループに新たな連想メモリを追加する場合、既に設定してある他のレジスタの値を変更する必要がない。
【００４３】
また、上記各実施例は、インターネットプロトコル（ＩＰ）のためのルーティング処理等で用いられるベストマッチ処理を高速に行う用途に適する。
【００４４】
【発明の効果】
本発明によれば、入力データを一律にしかマスク処理ができない従来型の連想メモリを複数用いた場合、ベストマッチ処理を高速に行うハードウェアを構成することができ、また、単純構成した場合にマスクデータ毎に発生する連想メモリ容量の過不足を阻止することができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の一実施例である連想メモリモジュール１００を示す回路図である。
【図２】本発明の他の実施例である連想メモリモジュール群２００を示す回路図であり、大規模なベストマッチ処理を行う回路構成を示す図である。
【符号の説明】
１００…連想メモリモジュール、
１００ａ、１００ｂ、１００ｃ、１００ｄ…連想メモリ、
Ｒａ、Ｒｂ、Ｒｃ、Ｒｄ…マスクレジスタ、
１０６…プライオリティ・エンコーダ、
１１５…グループ登録用レジスタ、
１１７…入力データ、
１１８…出力データ、
２００…連想メモリモジュール群、
２００ａ、２００ｂ、２００ｃ…連想メモリモジュール、
２１１…プライオリティ・エンコーダ、
２１５…グループ登録用レジスタ、
２１３…半導体メモリ、
２１７…入力データ、
２１４…出力データ。
【図１】
0003623082.tif 000002
【図２】
0003623082.tif 000003