(57)【特許請求の範囲】
【請求項１】
外部から入力された検索キーを複数の連想メモリに登録されている各エントリの検索キーと比較して一致したエントリの内容を検索結果として出力する検索装置において、
前記検索キーから１つの連想メモリを識別するビット位置を示す複数の検索パターンそれぞれについて前記複数の連想メモリそれぞれの検索回数を算出する算出手段と、
前記複数の検索パターン毎の前記複数の連想メモリそれぞれの検索回数を基に、検索回数が前記複数の連想メモリで均一となる順に前記複数の検索パターンの優先順位を決定する優先順位決定手段と、
前記優先順位が高い検索パターンと前記検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記検索キーを再配置する再配置手段と、
を有することを特徴とする検索装置。
【請求項２】
請求項１記載の検索装置において、
前記検索結果として出力されるエントリの内容で検索され前記検索キーを含む検索情報が格納されたデータテーブルを有し、
前記再配置手段は、前記優先順位が最も高い検索パターンと前記データテーブルから読み出した検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記データテーブルから読み出した検索キーを再配置するとき、前記複数の連想メモリのいずれかで連想メモリの格納数の上限値を超えた場合、次に優先順位が高い検索パターンと前記データテーブルから読み出した検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記データテーブルから読み出した検索キーを再配置する
ことを特徴とする検索装置。
【請求項３】
請求項２記載の検索装置において、
前記複数の検索パターン毎の前記複数の連想メモリそれぞれの検索回数が算出されておらず、かつ、前記データテーブルに前記検索キーを含む検索情報が格納されている場合、前記算出手段は、前記データテーブルから読み出した検索キーから前記複数の検索パターンそれぞれについて前記複数の連想メモリそれぞれの配置予定数を算出し、
前記優先順位決定手段は、前記複数の検索パターン毎の前記複数の連想メモリそれぞれの配置予定数を基に、配置予定数が前記複数の連想メモリで均一となる順に前記複数の検索パターンの優先順位を決定する
ことを特徴とする検索装置。
【請求項４】
外部から入力された検索キーを複数の連想メモリに登録されている各エントリの検索キーと比較して一致したエントリの内容を検索結果として出力する検索装置の検索キー再配置方法において、
前記検索キーから１つの連想メモリを識別するビット位置を示す複数の検索パターンそれぞれについて前記複数の連想メモリそれぞれの検索回数を算出し、
前記複数の検索パターン毎の前記複数の連想メモリそれぞれの検索回数を基に、検索回数が前記複数の連想メモリで均一となる順に前記複数の検索パターンの優先順位を決定し、
前記優先順位が高い検索パターンと前記検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記検索キーを再配置する
ことを特徴とする検索キー再配置方法。
【請求項５】
請求項４記載の検索キー再配置方法において、
前記検索結果として出力されるエントリの内容で検索され前記検索キーを含む検索情報が格納されたデータテーブルを有し、
前記優先順位が最も高い検索パターンと前記データテーブルから読み出した検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記データテーブルから読み出した検索キーを再配置するとき、前記複数の連想メモリのいずれかで連想メモリの格納数の上限値を超えた場合、次に優先順位が高い検索パターンと前記データテーブルから読み出した検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記データテーブルから読み出した検索キーを再配置する
ことを特徴とする検索キー再配置方法。
【請求項６】
請求項５記載の検索キー再配置方法において、
前記複数の検索パターン毎の前記複数の連想メモリそれぞれの検索回数が算出されておらず、かつ、前記データテーブルに前記検索キーを含む検索情報が格納されている場合、前記データテーブルから読み出した検索キーから前記複数の検索パターンそれぞれについて前記複数の連想メモリそれぞれの配置予定数を算出し、
前記複数の検索パターン毎の前記複数の連想メモリそれぞれの配置予定数を基に、配置予定数が前記複数の連想メモリで均一となる順に前記複数の検索パターンの優先順位を決定する
ことを特徴とする検索キー再配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連想メモリを用いた検索装置及び検索キー再配置方法に関する。
【背景技術】
【０００２】
一般的なＩＰネットワークでは複数のネットワークが存在し、各ネットワーク間はルータやスイッチ等の中継装置により接続され、各ネットワーク配下にパーソナルコンピュータ（ＰＣ）等の端末が接続されている。図１にネットワークシステムの一例の構成図を示す。図１において、ネットワーク１は相互に接続されたスイッチ２ａ，２ｂ，２ｃ及びルータ３ａ，３ｂを有し、構成されている。スイッチ２ａには端末４ａ及びサーバ５が接続され、スイッチ２ｃには端末４ｂ，４ｃ，４ｄが接続されている。
【０００３】
スイッチは端末から送信されたパケットを受信し、目的の端末やサーバへの経路に転送を行うが、ネットワークに属する端末数や、端末そのもののパケット送受信数が多い場合、スイッチでのパケット処理には高速かつ大量のデータ処理が求められる。スイッチが行う処理のうち、例えばパケットの送信先ＭＡＣアドレスから出力先のポートを検索するルーティング処理等の検索を伴う処理の場合、メモリに格納されている多数の検索要件から該当の検索要件を高速に検索することが必要となる。
【０００４】
図２にスイッチの一例の構成図を示す。図２において、物理ポート１０−１〜１０−４でネットワークから受信したパケットはＦＩＦＯ１１−１〜１１−４に格納されアービタ／ピリータ１２に供給される。アービタ／ピリータ１２は優先制御を行うことでＦＩＦＯ１１−１〜１１−４のいずれかからパケットを取り出す。アービタ／ピリータ１２内のプロセッサ１３は取り出したパケットの出力先を調べるために、当該パケットの宛先アドレスをルーティングテーブル検索装置１４に渡す。ルーティングテーブル検索装置１４は宛先アドレスでルーティングテーブルを検索して出力先情報を得ると、出力先情報をプロセッサ１３に通知する。アービタ／ピリータ１２は当該パケットを上記出力先情報に応じたＦＩＦＯ１５−１〜１５−４のいずれかに中継して格納する。ＦＩＦＯ１５−１〜１５−４に格納されたパケットは物理ポート１０−１〜１０−４からネットワークに送出される。
【０００５】
一般的に検索を高速に行う場合、連想メモリの一種であるＴＣＡＭ（Ｔｅｒｎａｒｙ  Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）を用いて検索システムとしてのルーティングテーブル検索装置１４を構成する。
【０００６】
図３にルーティングテーブル検索装置１４の一例の構成図を示す。図３において、ルーティングテーブル検索装置１４は、データテーブル１５、ＴＣＡＭ１６−０〜１６−Ｎ、検索制御部１７を有している。ルーティングテーブル検索装置１４はアービタ／ピリータ１２内のプロセッサ１３から検索要求を受け取る。データテーブル１５は検索情報を格納する。ＴＣＡＭ１６−０〜１６−Ｎにはデータテーブルに対応したインデックスが格納される。
【０００７】
検索制御部１７は要求処理部１８、応答処理部１９、登録・削除処理部２０を有する。要求処理部１８はプロセッサ１３からの要求処理を受理し、配下の各ＴＣＡＭ１６−０〜１６−Ｎへの検索キーを作成して通知する。応答処理部１９はＴＣＡＭ１６−０〜１６−Ｎからの検索結果として通知されるインデックスを受理し、データテーブル１５から該当インデックスの検索情報を参照してプロセッサ１３への応答を生成する。登録・削除処理部２０はプロセッサ１３からの検索情報の登録／削除要求に基づきテータテーブル１５及びＴＣＡＭ１６−０〜１６−Ｎからの検索情報の登録／削除を行う。
【０００８】
ところで、連想メモリの各エントリに検索結果の出力回数を表わすヒット回数の記録領域を設け、連想メモリのエントリの内容を検索結果として出力する毎に、当該エントリのヒット回数を増加させる演算手段を有し、マルチヒット時の処理性能の悪化を防止する連想メモリ装置が提案されている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】国際公開第２００６／０７２９８６号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【００１０】
図３においては、検索要件つまり検索キーが多数であり単一のＴＣＡＭに格納できないために、複数のＴＣＡＭ１６−０〜１６−Ｎを設け、ＴＣＡＭ１６−０〜１６−Ｎに全ての検索キーを格納している。この場合、検索に際して、検索キーを分類せずＴＣＡＭ１６−０〜１６−Ｎに格納した場合、全てのＴＣＡＭＴＣＡＭ１６−０〜１６−Ｎから該当の検索キーを検索する。このため、ＴＣＡＭ１６−０〜１６−Ｎに順次検索を実施させる。この場合、一件の検索を実施するために最初のＴＣＡＭ１６−０に検索を要求してから、該当検索キーが格納されているＴＣＡＭ１６−ｉが検索応答を返すまでに、最悪の場合、最後のＴＣＡＭ１６−Ｎが検索応答を返すまでの時間が必要となるという問題があった。この場合の検索時間の概念図を図４と図５に示す。図４は異なる３つの検索キーで４つのＴＣＡＭを順次検索し、検索途中でヒットがなかった場合を示している。図５は異なる３つの検索キーで４つのＴＣＡＭを順次検索し、検索途中でヒットがあった場合を示している。
【００１１】
このため、ＴＣＡＭへの検索キーの配置を行う際に分類を行い、検索実行するＴＣＡＭを限定させることが考えられるが、検索キーを無作為に分類して配置したとしても、頻繁に検索を実施する検索キーが一部のＴＣＡＭに集中して配置された場合がある。図６に頻繁に検索を実施する３つの検索キーが同一のＴＣＡＭに配置された場合の検索の様子を示す。この場合、次検索の応答がＴＣＡＭから送られてくるまで次の検索要求をＴＣＡＭに発行できず、検索実施中に他の検索を行うことができないという問題があった。
【００１２】
開示の検索装置は、検索を高速化でき検索処理可能数が向上することを目的とする。
【課題を解決するための手段】
【００１３】
開示の一実施形態による検索装置は、外部から入力された検索キーを複数の連想メモリに登録されている各エントリの検索キーと比較して一致したエントリの内容を検索結果として出力する検索装置において、前記検索キーから１つの連想メモリを識別するビット位置を示す複数の検索パターンそれぞれについて前記複数の連想メモリそれぞれの検索回数を算出する算出手段と、前記複数の検索パターン毎の前記複数の連想メモリそれぞれの検索回数を基に、検索回数が前記複数の連想メモリで均一となる順に前記複数の検索パターンの優先順位を決定する優先順位決定手段と、前記優先順位が高い検索パターンと前記検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記検索キーを再配置する再配置手段と、を有する。
【発明の効果】
【００１４】
本実施形態によれば、検索を高速化することができ検索処理可能数が向上する。
【図面の簡単な説明】
【００１５】
【図１】ネットワークシステムの一例の構成図である。
【図２】スイッチの一例の構成図である。
【図３】ルーティングテーブル検索装置の一例の構成図である。
【図４】検索途中でヒットがなかった場合の検索の様子を示す図である。
【図５】検索途中でヒットがあった場合の検索の様子を示す図である。
【図６】検索キーが一部のＴＣＡＭに集中した場合の検索の様子を示す図である。
【図７】ルーティングテーブル検索装置の一実施形態の構成図である。
【図８】ＴＣＡＭのデータ構成の一実施形態を示す図である。
【図９】データテーブルのデータ構成の一実施形態を示す図である。
【図１０】検索統計テーブルのデータ構成の一実施形態を示す図である。
【図１１】検索パターンテーブルのデータ構成の一実施形態を示す図である。
【図１２】検索処理のフローチャートを示す図である。
【図１３】登録処理のフローチャートを示す図である。
【図１４】削除処理のフローチャートを示す図である。
【図１５】保守処理全体のフローチャートを示す図である。
【図１６】保守処理（統計分析）を説明するための図である。
【図１７】保守処理（統計分析）のフローチャートを示す図である。
【図１８】保守処理（再配置（１））のフローチャートを示す図である。
【図１９】保守処理（再配置（２））のフローチャートを示す図である。
【図２０】保守処理（再配置（３））のフローチャートを示す図である。
【図２１】時刻統計テーブルの一実施形態を示す図である。
【図２２】時刻統計のサンプリングと保守処理開始時刻の様子を示す図である。
【図２３】保守処理期間を含む検索処理のフローチャートを示す図である。
【図２４】検索キーが別のＴＣＡＭに配置された場合の検索の様子を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面に基づいて実施形態を説明する。
【００１７】
＜ルーティングテーブル検索装置の構成＞
図７にルーティングテーブル検索装置の一実施形態の構成図を示す。図７に示すルーティングテーブル検索装置２４は図２におけるルーティングテーブル検索装置１４に対応している。すなわち、ルーティングテーブル検索装置２４はネットワークシステムを構成するスイッチ内のルーティングテーブル検索装置である。
【００１８】
ルーティングテーブル検索装置２４はデータテーブル２５、ＴＣＡＭ２６−０〜１６−Ｎ、検索制御部２７、検索統計処理部２８、検索統計テーブル２９、検索パターンテーブル３０を有している。
【００１９】
データテーブル２５はＭＡＣ学習テーブルであり、検索情報つまりＭＡＣアドレス、転送先ポート等を格納する。ＴＣＡＭ２６−０〜２６−Ｎにはデータテーブルに対応したインデックスが格納される。検索制御部２７は要求処理部３１、応答処理部３２、登録・削除処理部３３を有する。要求処理部３１は検索キーデコード部３１Ａと検索キー再編集部３１Ｂを有している。要求処理部３１はプロセッサ１３からの要求処理を受理し、配下の各ＴＣＡＭ２６−０〜２６−Ｎの検索キーを作成して通知する。
【００２０】
応答処理部３２はＴＣＡＭ２６−０〜２６−Ｎからの検索結果として通知されるインデックスを受理し、データテーブル２５から該当インデックスの検索情報を参照してプロセッサ１３への応答を生成する。登録・削除処理部３３はプロセッサ１３からの検索情報の登録／削除要求に基づきテータテーブル２５及びＴＣＡＭ２６−０〜２６−Ｎからの検索情報の登録と削除を行う。
【００２１】
検索統計テーブル２９には、一定の期間中に各検索要件に対して実施された検索回数が検索パターン毎に格納される。また、検索パターンテーブル３０には検索キーからインデックスを求める際のビットパターンが格納されている。
【００２２】
検索統計処理部２８は、一定の期間中に収集した検索回数の統計を基に、検索キーから検索パターンテーブル３０を基に特定のビットを抽出して、検索要件を配置する際のＴＣＡＭを識別するためのＴＣＡＭ番号とする。ビット抽出の際には統計の結果から検索される頻度つまり検索回数が各ＴＣＡＭ２６−０〜２６−Ｎで可能な限り均一となるものを選択する。
【００２３】
図８にＴＣＡＭ２６−０〜２６−Ｎそれぞれにおけるデータ構成の一実施形態を示す。ＴＣＡＭには、検索キーとしての送信先ＭＡＣアドレスと、検索結果としてのデータテーブル２５のインデックスが、各エントリに配置される。
【００２４】
図９にデータテーブル２５におけるデータ構成の一実施形態を示す。データテーブル２５には、送信先ＭＡＣアドレスと、転送先ポートのポート番号、エントリの削除要否を示すダイナミック／スタティック情報、削除の際に削除対象かどうかの情報を示すエージングタイムが、各エントリに配置される。各エントリはインデックスを用いて参照される。
【００２５】
図１０に検索統計テーブル２９におけるデータ構成の一実施形態を示す。検索統計テーブルには、検索パターン＃０〜＃ｚ毎にＴＣＡＭ２６−０〜２６−Ｎそれぞれの検索を実施した統計数である検索回数が配置される。
【００２６】
図１１に検索パターンテーブル３０におけるデータ構成の一実施形態を示す。検索パターンテーブルには、検索パターン＃０〜＃ｚ毎に、検索キーつまり送信先ＭＡＣアドレスからＴＣＡＭ番号を決めるビット位置を示すインデックスビットが配置される。例えばインデックスビットは値１でＴＣＡＭ番号を決めるビット位置を示し、検索キーが５ビット、ＴＣＡＭ番号が０〜３であるとすると、インデックスビットは「１１０００」，「０１１００」，「００１１０」，「０００１１」，「１０１００」，「１００１０」，「１０００１」，「０１０１０」，「０１００１」，「００１０１」などである。
【００２７】
＜保守時間を設けてＴＣＡＭへの要件配置を変更する場合＞
以下、検索処理動作について、スイッチにおけるＭＡＣ学習テーブルの処理を例として詳細に説明する。本実施形態では、ＭＡＣアドレスの検索、登録、削除を行いながら、検索回数の統計処理を行う検索処理と、統計結果を分析して検索回数又は頻度が各ＴＣＡＭで均一となるような検索パターンを選択してＴＣＡＭの格納情報を再配置する保守処理を、周期的に交互に繰り返す。これにより、各ＴＣＡＭ２６−０〜２６−Ｎへの検索実施頻度の均一性を維持する。
【００２８】
＜検索処理＞
図２に示すようなスイッチは、パケットを受信すると、そのパケットの送信先ＭＡＣアドレスからどのポートにパケットを転送すべきかを判定するため、送信先ＭＡＣアドレスを検索キーとしてＭＡＣ学習テーブルつまりデータテーブル２５の検索を行い、転送先ポートを求める。
【００２９】
プロセッサ１３は要求処理部３１に対して受信したパケットの送信先ＭＡＣアドレスを検索要求として発行する。要求処理部３１は送信先ＭＡＣアドレスを検索キーとしてＴＣＡＭ２６−０〜２６−Ｎに対して検索を実行する。その際に要求処理部３１の検索キーデコード部３１Ａは検索パターンテーブル３０から現在の運用中の検索パターン番号に従って、ＴＣＡＭを識別するためのＴＣＡＭ番号を決めるビット位置であるインデックスビットを抽出する。検索キー再編集部３１Ｂは送信先ＭＡＣアドレスからインデックスビットで指示されるビットを抽出し、抽出したビットでＴＣＡＭ番号を決定し、決定したＴＣＡＭ番号に該当するＴＣＡＭを検索キーである送信先ＭＡＣアドレスで検索する。
【００３０】
ＴＣＡＭ２６−０〜２６−Ｎは検索キーの送信先ＭＡＣアドレスが登録済みの場合、検索結果として、エントリありの情報とデータテーブル２５の該当インデックスを応答処理部３２に対して通知する。応答処理部３２はＴＣＡＭ２６−０〜２６−Ｎより受理したインデックスを基にデータテーブル２５の検索情報を読み出し、エージングタイムの情報を「削除しないデータ」として更新する。また、プロセッサ１３にデータテーブル２５から読み出した検索情報を転送し、検索統計処理部２８に検索が行われたＭＡＣアドレスを通知する。検索統計処理部２８は応答処理部３２よりＭＡＣアドレスを受理すると、検索パターンテーブル３０に登録されている全パターンについてインデックスビットを抽出し、該当するＴＣＡＭの検索回数を加算する。
【００３１】
検索キーが未登録の場合、ＴＣＡＭはエントリなしの情報を応答処理部３２に対して通知する。応答処理部３２はプロセッサ１３に対して該当ＭＡＣアドレスは未登録と通知する。
【００３２】
図１２に検索処理のフローチャートを示す。図１２において、ステップＳ１１でプロセッサ１３は検索制御部２７に対して検索要求を出す。ステップＳ１２で要求処理部３１は検索制御部２７内の図示しないレジスタに保存されている運用中の検索パターン番号を取得し、当該運用中の検索パターン番号で検索パターンテーブル３０を検索してＴＣＡＭ番号を決めるビット位置つまりインデックスビットを取得する。ステップＳ１３で要求処理部３１は「検索キー」である送信先ＭＡＣアドレスからＴＣＡＭ番号を決めるビット位置を抽出し、抽出したビットから検索するＴＣＡＭを決定する。ステップＳ１４で要求処理部３１は該当ＴＣＡＭに検索要求を実施する。ステップＳ１５で該当ＴＣＡＭは応答処理部３２に検索結果を通知する。
【００３３】
ステップＳ１６で応答処理部３２はＴＣＡＭ検索がヒットしたか否かを判別する。ヒットした場合、ステップＳ１７で応答処理部３２はヒットしたＴＣＡＭエントリ内の結果つまりデータテーブルのインデックスを基に、データテーブル２５の情報を収集し、収集した内容をプロセッサ１３に通知する。ステップＳ１８で応答処理部３２は検索統計処理部２８に「検索キー」と共に検索統計テーブル更新要求を通知する。
【００３４】
この後、検索統計処理部２８はステップＳ１９〜Ｓ２３を、検索パターン番号ｉを０から１ずつインクリメントして検索パターンテーブル３０の検索パターン数分だけ繰り返す。すなわち、ステップＳ２０で検索統計処理部２８は検索パターンテーブル３０から検索パターン番号ｉについてのＴＣＡＭ番号を決めるビット位置であるインデックスビットを取得する。ステップＳ２１で検索統計処理部２８は「検索キー」つまり送信先ＭＡＣアドレスからＴＣＡＭ番号を決めるビット位置を抽出し、統計情報更新対象のＴＣＡＭ番号（＝Ａ）を決定する。ステップＳ２２で検索統計処理部２８は検索統計テーブル２９におけるの検索パターン番号ｉかつＴＣＡＭ番号（＝Ａ）に対応する検索回数に１を加算する。ステップＳ１９〜Ｓ２３の繰り返し処理を終了すると、この処理を終了して通常処理に移行する。
【００３５】
一方、ステップＳ１６でＴＣＡＭ検索がヒットしなかった場合、ステップＳ２４で応答処理部３２は検索要求した「検索キー」がＴＣＡＭに未登録であることをプロセッサ１３に通知し、この処理を終了して登録処理に移行する。
【００３６】
＜登録処理＞
送信先ＭＡＣアドレスを検索キーとして検索を行い、検索を行ったＭＡＣアドレスが検索システムに未登録であった場合、その送信先ＭＡＣアドレスについてデータテーブル２５つまりＭＡＣ学習テーブルへの登録処理を行う。
【００３７】
プロセッサ１３はＭＡＣアドレス未登録の通知を受理すると、検索制御部２７の登録・削除処理部３３に対して送信先ＭＡＣアドレス、転送先ポート、ダイナミック／スタティック情報を通知して登録要求を発行する。登録・削除処理部３３は登録要求を受理すると、データテーブル２５にエントリを登録してダイナミック／スタティック情報がダイナミックの場合はエージングタイムを「削除するデータ」、スタティックの場合は「削除しないデータ」として更新する。また、送信先ＭＡＣアドレスから現在の運用中の検索パターン番号に従ってインデックスビットを抽出し、登録を行うべきＴＣＡＭを判別し、送信先ＭＡＣアドレスとデータテーブル２５に登録したエントリのインデックスを該当ＴＣＡＭに登録する。
【００３８】
図１３に登録処理のフローチャートを示す。図１３において、ステップＳ３１でプロセッサ１３は登録・削除処理部３３に対して登録要求を実施する。ステップＳ３２で登録・削除処理部３３は運用中のパターン番号を取得し、当該パターン番号で検索パターンテーブル３０を検索してＴＣＡＭ番号を決めるビット位置を取得する。ステップＳ３３で登録・削除処理部３３は「検索キー」である送信先ＭＡＣアドレスからＴＣＡＭ番号を決めるビット位置を抽出し、検索するＴＣＡＭを決定する。
【００３９】
ステップＳ３４で登録・削除処理部３３は該当ＴＣＡＭに空き領域が存在するかをチェックする。ステップＳ３５の判断で空き領域が存在する場合は、ステップＳ３６で登録・削除処理部３３は登録要求データを該当ＴＣＡＭ及びデータテーブル２５に登録する。そして、ステップＳ３７で登録・削除処理部３３はプロセッサ１３に正常終了を通知する。一方、ステップＳ３５の判断で空き領域が存在しない場合は、ステップＳ３８で登録・削除処理部３３はプロセッサ１３に異常終了を通知する。ステップＳ３７又はＳ３８の実行後、この処理を終了して通常処理に移行する。
【００４０】
＜削除処理＞
システムに登録された送信先ＭＡＣアドレスが一定期間検索されない場合、そのＭＡＣアドレスについてＭＡＣ学習テーブルであるデータテーブル２５からの削除処理を行う。一般的なスイッチの場合、例えば３００秒程度の期間、検索が行われない場合は削除を行う。
【００４１】
プロセッサ１３は周期的に登録・削除処理部３３に削除要求を発行する。登録・削除処理部３３はデータテーブル２５の各エントリのダイナミック／スタティック情報を参照し、スタティックの場合は何も行わない、ダイナミックの場合はエージングタイムを参照して「削除しないデータ」であればエージングタイムを「削除するデータ」に更新する。「削除するデータ」であればデータテーブル２５から該当のエントリを削除して、そのエントリの送信先ＭＡＣアドレスから運用中の検索パターン番号のインデックスビットを抽出し、削除を行うべきＴＣＡＭ番号を決定し、該当するＴＣＡＭから該当するエントリの削除を行う。
【００４２】
図１４に削除処理のフローチャートを示す。図１４において、ステップＳ４１でプロセッサ１３は登録・削除処理部３３に対して削除要求を実施する。ステップＳ４２で登録・削除処理部３３は運用中の検索パターン番号を取得し、当該パターン番号で検索パターンテーブル３０を検索してＴＣＡＭ配置の決定に用いているビット位置を取得する。ステップＳ４３で登録・削除処理部３３は削除する「検索キー」である送信先ＭＡＣアドレスからＴＣＡＭ番号を決めるビット位置を抽出し、検索するＴＣＡＭを決定する。
【００４３】
ステップＳ４４で登録・削除処理部３３は該当ＴＣＡＭを検索し、削除データが登録されているエントリを特定する。ステップＳ４５で登録・削除処理部３３はヒットしたＴＣＡＭエントリ内の結果であるデータテーブルのインデックスを基に、データテーブル２５のエントリを特定する。ステップＳ４６で登録・削除処理部３３は該当ＴＣＡＭ及びデータテーブルを空き状態に設定する。ステップＳ４７で登録・削除処理部３３はプロセッサ１３に正常終了を通知し、この処理を終了して通常処理に移行する。
【００４４】
＜保守処理＞
保守処理とは、それまで運用で取得された統計結果を分析して検索頻度が各ＴＣＡＭで均一となるような検索パターンを選択し、ＴＣＡＭの格納情報を再配置する処理のことである。
【００４５】
図１５に保守処理全体のフローチャートを示す。図１５において、ステップＳ５１で検索統計処理部２８は現在時刻が保守開始時間であるか否かを判別する。保守開始時間であれば、ステップＳ５２で検索統計処理部２８は検索統計テーブル２９に統計分析結果があるか否かを判別し、統計分析結果があればステップＳ５３で検索統計処理部２８は保守処理（統計分析）を実行する。その後、ステップＳ５４で検索統計処理部２８は保守処理（再配置（１））を実行する。
【００４６】
一方、例えば初期状態などで、ステップＳ５２において統計分析結果がないと判別された場合、ステップＳ５５で検索統計処理部２８はデータテーブル２５に検索情報が登録されているか否かを判別する。そして、データテーブル２５に検索情報が登録されている場合、ステップＳ５６で検索統計処理部２８は保守処理（再配置（２））を実行する。データテーブル２５に検索情報が登録されていない場合、ステップＳ５７で検索統計処理部２８は保守処理（再配置（３））を実行する。ステップＳ５４，Ｓ５６，Ｓ５７を実行すると、この処理を終了して通常処理に移行する。
【００４７】
＜保守処理（統計分析）＞
検索回数の統計情報を基に、現状のデータテーブル２５のエントリをどのＴＣＡＭに配置すべきかを、検索パターンテーブル３０に登録されている検索パターンから選択する。このために、検索検索統計処理部２８は検索統計テーブル２９から各検索パターンにおけるＴＣＡＭの検索回数を読み込む。
【００４８】
図１６（Ａ）に説明のため、検索キーを５ビット、ＴＣＡＭを４つの検索パターンとした場合の例を示す。図中、各行で左端に示す検索キーにおいて梨地で示すブロックは検索パターンテーブル３０に登録されているインデックスビット（ＴＣＡＭ番号を決めるビット位置）を示す。例えば検索パターン＃０では最上位の第５ビットと第４ビットがインデックスビットである。検索キーの右側には検索統計テーブル２９から読み出した各ＴＣＡＭの検索回数を示している。
【００４９】
検索検索統計処理部２８は各検索パターン別の統計情報を読み込んで、各検索パターンでの各ＴＣＡＭの検索回数のうち最小数を求める。なお、最小数が複数ある場合、ＴＣＡＭ番号の若番の値を選択する。図１６（Ｂ）に選択した最小数をアンダーバーで示す。
【００５０】
最少数が求められたら、検索パターン毎に各ＴＣＡＭの検索回数からその最小数を減算し、減算後の各ＴＣＡＭの検索回数を全て合計する。図１６（Ｃ）に検索パターン毎の合計値（ＳＵＭ）を欄外に示す。
【００５１】
この後、その検索パターンで振り分けを行った場合に、各ＴＣＡＭの格納数上限を超過しないという条件を満たし、かつ、検索パターン毎の合計値（ＳＵＭ）が最小のパターンを最適なパターンとして選択する。合計値（ＳＵＭ）が最小の検索パターンは各ＴＣＡＭの検索回数が最も均一化された検索パターンである。これによって、図１６（Ａ），（Ｃ）に実線で囲って示す第２行の検索パターンが、各ＴＣＡＭの検索回数が最も均一であり最適なパターンつまり再配置検索パターンとして選択される。
【００５２】
図１７に保守処理（統計分析）のフローチャートを示す。この処理では、検索統計テーブルの情報から最も均一化されたＴＣＡＭの再配置検索パターンを算出する。また、再配置検索パターンの中で優先順位を決定する。
【００５３】
図１７において、検索統計処理部２８はステップＳ６１〜Ｓ６９を、検索パターン番号ｉを０から１ずつインクリメントして検索パターンテーブル３０の検索パターン数分だけ繰り返す。ステップＳ６２で検索統計処理部２８は検索回数最小値（＝Ｂ）を初期化する。次に、検索統計処理部２８はステップＳ６３〜Ｓ６７を、ＴＣＡＭ番号Ｊを０から１ずつインクリメントしてＴＣＡＭ数分だけ繰り返す。
【００５４】
ステップＳ６４で検索統計処理部２８は検索統計テーブル２９から検索パターン番号ｉかつＴＣＡＭ番号ｊの検索回数（＝Ａ）を取得する。ステップＳ６５で検索統計処理部２８は検索回数最小値（＝Ｂ）が検索回数（＝Ａ）を超えるか否かを判別し、Ａ＜Ｂの場合にのみステップＳ６６で検索回数（＝Ａ）を検索回数最小値（＝Ｂ）に設定し検索回数最小値（Ｂ）を更新する。
【００５５】
ステップＳ６８で検索統計処理部２８は検索回数の均一性の指標値（＝Ｃ）を算出する。検索頻度の指標値算出方法としては、次式に示すように、検索パターン毎に各ＴＣＡＭの検索回数（＝Ａ）と検索回数最小値（＝Ｂ）との差分を求めて、差分を合計する。
【００５６】
Ｃ＿ｐａｔｔｅｒｎ  ＝  Σ（Ａ＿ｔｃａｍ  −  Ｂ＿ｐａｔｔｅｒｎ）
ここで、Ｃ＿ｐａｔｔｅｒｎは各検索パターンの指標値、Ａ＿ｔｃａｍは検索パターン内の各ＴＣＡＭ検索回数、Ｂ＿ｐａｔｔｅｒｎは検索パターン内の各ＴＣＡＭ検索回数の最小値である。
【００５７】
ステップＳ７０で検索統計処理部２８は各検索パターンの指標値（＝Ｃ）を比較して検索パターンの優先順を決定する。この場合、Ｃ＿ｐａｔｔｅｒｎが最小である検索パターンが最も均一化された再配置検索パターンである。検索パターンの優先順位をＣ＿ｐａｔｔｅｒｎが小さい順に決定する。なお、Ｃ＿ｐａｔｔｅｒｎが同値の場合は若番の検索パターンを優先する。
【００５８】
＜保守処理（再配置（１））＞
再配置検索パターンとして選択した検索パターンに従い、ＴＣＡＭに登録されているデータを再配置する。まず、検索検索統計処理部２８より全てのＴＣＡＭの登録データを全てクリアする。クリア実施後、検索検索統計処理部２８での統計分析結果から選択された再配置検索パターンに従い、データテーブル２５から順次ＭＡＣアドレスを読み出して、ＭＡＣアドレスから該当検索パターンのインデックスビットに示されるビットを取得して再配置を行うべきＴＣＡＭ番号を判別する。そして、該当するＴＣＡＭにデータテーブル２５から読み出したＭＡＣアドレスと該当エントリのインデックスの登録を行い、全てのエントリの登録完了後に検索統計テーブル２９の統計情報をクリアし、検索処理に移行する。
【００５９】
なお、上記再配置中にどれか一つのＴＣＳＭでも、ＴＣＡＭの格納数上限値を超えた場合は、例えば図１６（Ｃ）において次に合計値（ＳＵＭ）が小さい検索パターンを再配置検索パターンに採用して再配置処理を実施する。
【００６０】
図１８に保守処理（再配置（１））のフローチャートを示す。この処理では、統計分析で得られた再配置検索パターンを基にＴＣＡＭの再配置を行う。また、このＴＣＡＭの再配置を行った再配置検索パターンを運用中の検索パターン番号として検索制御部２７内のレジスタに保存する。
【００６１】
図１８において、ステップＳ７１で検索統計処理部２８はＴＣＡＭ格納データをクリアする。ステップＳ７２で検索統計処理部２８は統計分析で得られた最優先の再配置検索パターンを取得し、最優先の再配置検索パターンの検索パターンで検索パターンテーブル３０からＴＣＡＭ番号を決めるビット位置つまりインデックスビットを取得する。
【００６２】
検索統計処理部２８はステップＳ７３〜Ｓ７８を、データテーブル２５のエントリ番号ｉを０から１ずつインクリメントしてデータテーブル２５のエントリ数分だけ繰り返す。ステップＳ７４で検索統計処理部２８はデータテーブル２５のエントリ番号ｉから検索キーであるＭＡＣアドレスを取得する。ステップＳ７５で検索統計処理部２８は取得したＭＡＣアドレスからＴＣＡＭ番号を決めるビット位置つまりインデックスビットで指示されるビットを抽出し、抽出したビットで再配置するＴＣＡＭ番号を決定する。ステップＳ７６で検索統計処理部２８は該当ＴＣＡＭにデータテーブル２５から読み出したＭＡＣアドレスと該当エントリのインデックスを登録して再配置する。
【００６３】
ステップＳ７７で検索統計処理部２８は格納数上限値を超過しているＴＣＡＭがあるか否かを判別する。格納数上限値を超過しているＴＣＡＭがなければステップＳ７８に進み、格納数上限値を超過しているＴＣＡＭがあれば、ステップＳ８０で検索統計処理部２８は次の優先順位の検索パターンがあるか否かを判別する。次の優先順位の検索パターンがなければステップＳ７９に進み、ある場合はステップＳ８１に進む。ステップＳ８１で検索統計処理部２８はＴＣＡＭ格納データをクリアする。次に、ステップＳ８２で検索統計処理部２８は次の優先順位の検索パターンを取得し、取得した検索パターンを再配置検索パターンとし、再配置検索パターンで検索パターンテーブル３０からＴＣＡＭ番号を決めるビット位置つまりインデックスビットを取得してステップＳ７３に進む。
【００６４】
ステップＳ７３〜Ｓ７８の繰り返しを終了した場合、又は、ステップＳ８０で次の優先順位の検索パターンがない場合は、ステップＳ７９で検索統計処理部２８は検索統計テーブル２９を初期化すると共に、ＴＣＡＭの再配置を行った再配置検索パターンを検索制御部２７内の図示しないレジスタに保存することで運用中の検索パターン番号に設定して、この処理を終了して通常処理に移行する。
【００６５】
＜保守処理（再配置（２））＞
検索システムが最初に立ち上がった場合等は検索の統計情報が計上されていない。その際はデータテーブル２５の登録状況により初期配置を行う必要がある。データテーブル２５には登録されているが、ＴＣＡＭ２６−０〜２６−Ｎには登録されてない場合について、説明する。
【００６６】
データテーブル２５にエントリ自体は配置されているが、検索統計テーブル２９に統計情報がないような状態では、ＴＣＡＭ２６−０〜２６−Ｎに登録する検索パターンを統計情報によらず選択する必要がある。その場合、検索パターン選択の条件を検索回数ではなく、各ＴＣＡＭに登録されるエントリ数で判断し、各ＴＣＡＭのエントリ数が可能な限り均一に配置されるような検索パターンを選択する。
【００６７】
処理手順としては、（１）データテーブルから順次ＭＡＣアドレスを読み出して、検索パターンテーブル３０の全ての検索パターンに従ってインデックスビットを抽出し、各ＴＣＡＭに配置される配置予定数をそれぞれ求める。
【００６８】
（２）全ての検索パターンについて配置する配置予定数の算出が終わったら、パターン毎に配置されるＴＣＡＭの配置予定数の最小数を求める。
（３）最小数が求められたら、各ＴＣＡＭの配置予定数からその最小数を減算し、その値を全て合計する。
（４）全ての検索パターンについて合計値を求め、ＴＣＡＭの配置条件に到達していないもののうち、一番合計数が少ない検索パターンを再配置検索パターンとして選択する。
【００６９】
図１９に、検索統計テーブル２９に統計分析情報がなく、かつ、データテーブル２５に登録がある場合における保守処理（再配置（２））のフローチャートを示す。この処理では、データテーブル２５の検索キーであるＭＡＣアドレスと、検索パターンテーブル３０の情報を基に、最も配置予定数が均一化される検索パターンを再配置検索パターンに採用して再配置処理を実施する。
【００７０】
図１９において、ステップＳ９０で検索統計処理部２８はＴＣＡＭ格納データをクリアする。検索統計処理部２８はステップＳ９１〜Ｓ９８を、データテーブル２５のエントリ番号ｉを０から１ずつインクリメントしてデータテーブル２５のエントリ数分だけ繰り返し、かつ、ステップＳ９３〜Ｓ９７を、検索パターン番号ｊを０から１ずつインクリメントして検索パターンテーブル３０の検索パターン数分だけ繰り返す。これにより、データテーブル２５の情報と検索パターンテーブル３０の情報を基に、各検索パターンにおける各ＴＣＡＭの配置予定数を算出する。
【００７１】
このため、ステップＳ９２で検索統計処理部２８はデータテーブル２５のエントリ番号ｉから検索キーであるＭＡＣアドレスを取得する。ステップＳ９４で検索統計処理部２８は検索パターンテーブル３０の検索パターン番号ｊからＴＣＡＭ番号を決めるビット位置つまりインデックスビットを取得する。ステップＳ９５で検索統計処理部２８はＭＡＣアドレスから該当検索パターンのインデックスビットに示されるビットを取得して配置候補のＴＣＡＭ番号ｋを決定する。そして、ステップＳ９６で検索統計処理部２８は検索統計テーブル２９の検索パターン番号ｊかつＴＣＡＭ番号ｋの配置予定数（＝Ａ）を１だけインクリメントする。ここでは、配置予定数（＝Ａ）を管理するために検索統計テーブル２９を流用している。
【００７２】
次に、ステップＳ１００で検索統計処理部２８は図１７に示す保守処理（統計分析）を実行する。ここでは、検索統計テーブル２９に登録されている各検索パターンにおける各ＴＣＡＭの配置予定数を検索回数とみなし各検索パターンの中で優先順位を決定し、最も配置予定数が均一化された検索パターンを再配置検索パターンとする
次に、ステップＳ１１０で検索統計処理部２８は図１８に示す保守処理（再配置（１））を実行する。ここでは、ステップＳ１００の保守処理（統計分析）で得られた再配置検索パターンを基にＴＣＡＭの再配置を行う。
【００７３】
＜保守処理（再配置（３））＞
ＭＡＣ学習テーブルとしてのデータテーブル２５に何も登録されていない状態で初期化を行う場合は、検索パターンテーブル３０の特定の検索パターン番号、例えば若番を運用中の検索パターン番号として選択し、通常処理に移行する。
【００７４】
図２０にデータテーブル２５に登録がなく、かつ、検索パターンテーブル３０に統計分析情報がない場合における保守処理（再配置（３））のフローチャートを示す。図２０において、ステップＳ１２１で検索統計処理部２８はＴＣＡＭ格納データをクリアする。ステップＳ１２２で検索統計処理部２８は検索パターン番号（＝０）を検索制御部２７内の図示しないレジスタに保存することで運用中の検索パターン番号に設定し、検索パターンテーブル３０から検索パターン番号（＝０）のＴＣＡＭ番号を決めるビット位置つまりインデックスビットを取得する。その後、この処理を終了して通常処理に移行する。
【００７５】
＜検索時間の閑散期にＴＣＡＭへの要件配置を変更する場合＞
検索処理が常時輻輳しているわけではなく、ある程度閑散となる期間がある場合、ＴＣＡＭ２６−０〜２６−Ｎを使った検索処理から、データテーブル２５を直接順次検索してＴＣＡＭ２６−０〜２６−Ｎの検索を行わないようにし、その間にＴＣＡＭ２６−０〜２６−Ｎのデータ再配置を行うことで保守処理中にも検索処理が可能となる。
【００７６】
検索処理の閑散期を求めるため、検索統計データテーブル２９について検索パターン毎のＴＣＡＭ別検索回数統計の他に、新たに図２１に示す時刻統計テーブルを用いて、時刻別検索実行回数の統計を追加し、その情報を基に保守期間を判断する。図２１では、例えば数分から数１０分程度のタイムスロット毎に検索回数が格納される。一定周期（数分から数１０分程度）毎に時刻別の検索実行回数の統計をサンプリングし、その周期内で最も検索実行回数が少なかった時間帯を閑散期として次周期の保守処理実行時間とする。
【００７７】
図２２に時刻統計のサンプリングと保守処理開始時刻の様子を示す。例えば統計周期を１日、統計周期の開始、終了時刻（図中では基準時刻と記載）を０：００として、サンプリング単位を１時間とした場合、周期のタイムスロット数は２４スロットとなる。現基準時刻になった際に、前基準時刻から現基準時刻までにサンプリングした検索実行回数の統計を解析し、最も検索実行回数が少なかった時間帯を現基準時刻から次基準時刻の間に保守処理を実行する時間帯とする。解析終了後は時刻別統計をクリアして、新たに統計のサンプリングを開始する。
【００７８】
＜保守処理期間中の検索処理＞
保守処理期間中の検索処理は、保守処理と同時に検索を実行するため、ＴＣＡＭ２６−０〜２６−Ｎの検索処理を行わず、データテーブル２５に格納されているデータを直接参照して検索キーが一致するエントリを順次調査する。また、保守処理期間中はＴＣＡＭ別の検索回数統計情報の計上を行わない。
【００７９】
図２３に保守処理期間を含む検索処理のフローチャートを示す。図２３において、ステップＳ１３１でプロセッサ１３は検索制御部２７に対して検索要求を出す。ステップＳ１３２で要求処理部３１は保守処理期間中つまり保守時間中であるか否かを判別する。保守処理期間中であればステップＳ１３３に進み、保守処理期間中でなければステップＳ１３８に進んで、図１２に示す検索処理を実行する。
【００８０】
保守処理期間中はステップＳ１３３で要求処理部３１は直接データテーブル２５を若番のエントリから順次参照し、プロセッサ１３から受け取った送信先ＭＡＣアドレスが一致するエントリの有無を調査する。そして、ステップＳ１３４で要求処理部３１は応答処理部３２に検索結果を通知する。
【００８１】
ステップＳ１３５で要求処理部３１は検索結果から一致するエントリの有無を判別する。一致するエントリがあった場合、ステップＳ１３４で要求処理部３１はエントリありの情報とデータテーブル２５の該当エントリ番号（インデックス）を応答処理部３２に通知しているので、応答処理部３２はステップＳ１３６で要求処理部３１より受理した通知を基にデータテーブル２５の情報を読み出し、エージングタイムの情報を「削除しないデータ」として更新し、プロセッサ１３にデータテーブルの情報を転送する。
【００８２】
一致するエントリがない場合、要求処理部３１はステップＳ１３４でエントリなしの情報を応答処理部３２に通知しているので、ステップＳ１３７で応答処理部３２はプロセッサ１３に対して該当ＭＡＣアドレスは未登録と通知する。上記のステップＳ１３６，Ｓ１３７，Ｓ１３８の実行後、この処理を終了して通常処理に移行する。
【００８３】
＜保守処理期間中の登録・削除処理＞
保守処理期間中に登録・削除処理部３４は登録要求を受理すると、データテーブル２５にエントリを登録し、ダイナミック／スタティック情報がダイナミックの場合はエージングタイムを「削除するデータ」とし、スタティックの場合は「削除しないデータ」として更新する。ＴＣＡＭ２６−０〜２６−Ｎへの登録は保守処理の再配置により行う。
【００８４】
なお、保守処理期間中は図１４に示す削除処理を実行しない。保守処理期間中の保守処理は図１５に示す保守処理全体の処理と同様である。
【００８５】
上記の実施形態では、複数のＴＣＡＭの検索が均一になるように、検索キーを複数のＴＣＡＭに再配置しているため、１つの検索実行で複数のＴＣＡＭへのアクセスが必要でなくなり、処理負荷の軽減及び検索時間の短縮つまり検索の高速化が可能となる。図２４に頻繁に検索を実施する３つの検索キーが別のＴＣＡＭに配置されている場合の検索の様子を示す。
【００８６】
また、１つの検索実行中に他のＴＣＡＭは未アクセスの状態になるため、次の検索要求を受け付けた際に未アクセスのＴＣＡＭに対する検索が可能となり、検索処理輻輳時の検索処理可能数が向上する。更に、特定のＴＣＡＭへのアクセスが続くワーストケースの場合に比べ、約３０％の性能向上を見込むことができる。
【００８７】
なお、上記実施形態ではＴＣＡＭを用いてルーティングテーブル検索装置２４を構成しているが、ＴＣＡＭに限らずＢＣＡＭ（Ｂｉｎａｒｙ  Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）などの他種の連想メモリを用いるものであっても良い。
（付記１）
外部から入力された検索キーを複数の連想メモリに登録されている各エントリの検索キーと比較して一致したエントリの内容を検索結果として出力する検索装置において、
前記検索キーから１つの連想メモリを識別するビット位置を示す複数の検索パターンそれぞれについて前記複数の連想メモリそれぞれの検索回数を算出する算出手段と、
前記複数の検索パターン毎の前記複数の連想メモリそれぞれの検索回数を基に、検索回数が前記複数の連想メモリで均一となる順に前記複数の検索パターンの優先順位を決定する優先順位決定手段と、
前記優先順位が高い検索パターンと前記検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記検索キーを再配置する再配置手段と、
を有することを特徴とする検索装置。
（付記２）
付記１記載の検索装置において、
前記検索結果として出力されるエントリの内容で検索され前記検索キーを含む検索情報が格納されたデータテーブルを有し、
前記再配置手段は、前記優先順位が最も高い検索パターンと前記データテーブルから読み出した検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記データテーブルから読み出した検索キーを再配置するとき、前記複数の連想メモリのいずれかで連想メモリの格納数の上限値を超えた場合、次に優先順位が高い検索パターンと前記データテーブルから読み出した検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記データテーブルから読み出した検索キーを再配置する
ことを特徴とする検索装置。
（付記３）
付記２記載の検索装置において、
前記複数の検索パターン毎の前記複数の連想メモリそれぞれの検索回数が算出されておらず、かつ、前記データテーブルに前記検索キーを含む検索情報が格納されている場合、前記算出手段は、前記データテーブルから読み出した検索キーから前記複数の検索パターンそれぞれについて前記複数の連想メモリそれぞれの配置予定数を算出し、
前記優先順位決定手段は、前記複数の検索パターン毎の前記複数の連想メモリそれぞれの配置予定数を基に、配置予定数が前記複数の連想メモリで均一となる順に前記複数の検索パターンの優先順位を決定する
ことを特徴とする検索装置。
（付記４）
付記１乃至３のいずれか１項記載の検索装置において、
前記算出手段は、前記複数の検索パターンを保持する検索パターンテーブルと、
前記複数の検索パターン毎の前記複数の連想メモリそれぞれの検索回数又は配置予定数を保持する検索統計テーブルと、
を有することを特徴とする検索装置。
（付記５）
外部から入力された検索キーを複数の連想メモリに登録されている各エントリの検索キーと比較して一致したエントリの内容を検索結果として出力する検索装置の検索キー再配置方法において、
前記検索キーから１つの連想メモリを識別するビット位置を示す複数の検索パターンそれぞれについて前記複数の連想メモリそれぞれの検索回数を算出し、
前記複数の検索パターン毎の前記複数の連想メモリそれぞれの検索回数を基に、検索回数が前記複数の連想メモリで均一となる順に前記複数の検索パターンの優先順位を決定し、
前記優先順位が高い検索パターンと前記検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記検索キーを再配置する
ことを特徴とする検索キー再配置方法。
（付記６）
付記５記載の検索キー再配置方法において、
前記検索結果として出力されるエントリの内容で検索され前記検索キーを含む検索情報が格納されたデータテーブルを有し、
前記優先順位が最も高い検索パターンと前記データテーブルから読み出した検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記データテーブルから読み出した検索キーを再配置するとき、前記複数の連想メモリのいずれかで連想メモリの格納数の上限値を超えた場合、次に優先順位が高い検索パターンと前記データテーブルから読み出した検索キーを用いて前記複数の連想メモリから識別した連想メモリに前記データテーブルから読み出した検索キーを再配置する
ことを特徴とする検索キー再配置方法。
（付記７）
付記６記載の検索キー再配置方法において、
前記複数の検索パターン毎の前記複数の連想メモリそれぞれの検索回数が算出されておらず、かつ、前記データテーブルに前記検索キーを含む検索情報が格納されている場合、前記データテーブルから読み出した検索キーから前記複数の検索パターンそれぞれについて前記複数の連想メモリそれぞれの配置予定数を算出し、
前記複数の検索パターン毎の前記複数の連想メモリそれぞれの配置予定数を基に、配置予定数が前記複数の連想メモリで均一となる順に前記複数の検索パターンの優先順位を決定する
ことを特徴とする検索キー再配置方法。
【符号の説明】
【００８８】
１１−１〜１１−４  ＦＩＦＯ
１２  アービタ／ピリータ
１３  プロセッサ
１４，２４  ルーティングテーブル検索装置
２５  データテーブル
２６−０〜１６−Ｎ  ＴＣＡＭ
２７  検索制御部
２８  検索統計処理部
２９  検索統計テーブル
３０  検索パターンテーブル
３１  要求処理部
３２  応答処理部
３３  登録・削除処理部
【図１】
0005741421.tif 000002
【図２】
0005741421.tif 000003
【図３】
0005741421.tif 000004
【図４】
0005741421.tif 000005
【図５】
0005741421.tif 000006
【図６】
0005741421.tif 000007
【図７】
0005741421.tif 000008
【図８】
0005741421.tif 000009
【図９】
0005741421.tif 000010
【図１０】
0005741421.tif 000011
【図１１】
0005741421.tif 000012
【図１２】
0005741421.tif 000013
【図１３】
0005741421.tif 000014
【図１４】
0005741421.tif 000015
【図１５】
0005741421.tif 000016
【図１６】
0005741421.tif 000017
【図１７】
0005741421.tif 000018
【図１８】
0005741421.tif 000019
【図１９】
0005741421.tif 000020
【図２０】
0005741421.tif 000021
【図２１】
0005741421.tif 000022
【図２２】
0005741421.tif 000023
【図２３】
0005741421.tif 000024
【図２４】
0005741421.tif 000025