(57)【要約】【課題】アドレス情報を容易に管理すること可能な検索メモリを提供する。【解決手段】入力された検索データがメモリセルアレイに格納されたエントリデータに一致するか否かを検索し、一致するエントリデータに対応するアドレス情報を出力する検索メモリであって、複数の検索ブロックと、アドレス情報を出力する出力制御部とを備える。アドレス情報は、複数の検索ブロックのうちの少なくとも１つを指定するためのブロックアドレスと、指定された検索ブロックにおけるエントリデータに対応する論理アドレスとを含み、出力制御部は、エントリデータのサイズに基づくアドレス空間において、エントリデータに対応するアドレス情報が連続的になるように再設定されたアドレス情報を出力する。【選択図】図５
2019114311.tif 000002
【特許請求の範囲】
【請求項１】
入力された検索データがメモリセルアレイに格納されたエントリデータに一致するか否かを検索し、一致するエントリデータに対応するアドレス情報を出力する検索メモリであって、
複数の検索ブロックと、
前記アドレス情報を出力する出力制御部とを備え、
前記アドレス情報は、前記複数の検索ブロックのうちの少なくとも１つを指定するためのブロックアドレスと、指定された検索ブロックにおけるエントリデータに対応する論理アドレスとを含み、
前記出力制御部は、前記エントリデータのサイズに基づくアドレス空間において、前記エントリデータに対応するアドレス情報が連続的になるように再設定されたアドレス情報を出力する、検索メモリ。
【請求項２】
前記出力制御部は、前記エントリデータのサイズが２N倍（Ｎ：自然数）に設定された場合に、最大ビット長−Ｎビットのアドレス空間において、前記エントリデータに対応するアドレス情報が連続的になるように再設定されたアドレス情報を出力する、請求項１記載の検索メモリ。
【請求項３】
前記出力制御部は、前記ブロックアドレスをＮビットシフトさせるシフト演算処理を実行する、請求項２記載の検索メモリ。
【請求項４】
入力された検索データがメモリセルアレイに格納されたエントリデータに一致するか否かを検索し、一致するエントリデータに対応するアドレス情報を出力する検索メモリであって、
前記検索メモリは、
複数の検索ブロックと、
前記アドレス情報を出力する出力制御部とを備え、
前記アドレス情報は、前記複数の検索ブロックのうちの指定された検索ブロックにおけるエントリデータのサイズに関する情報と、指定された検索ブロックにおけるエントリデータに対応する論理アドレスとを含み、
前記出力制御部は、前記エントリデータのサイズに基づくアドレス空間において、前記エントリデータに対応する論理アドレスが連続的になるように再設定されたアドレス情報を出力する、検索メモリ。
【請求項５】
前記出力制御部は、
前記複数の検索ブロックにそれぞれ対応して設けられ、一致するエントリデータに対応するローカルアドレスを出力する複数のローカルエンコーダと、
前記複数の検索ブロックにそれぞれ対応して設けられ、エントリデータのサイズに関する情報と、前記複数の検索ブロックのうち前記エントリデータのサイズ毎にそれぞれ割り当てられた検索ブロックに関する情報とを格納する複数のブロックレジスタと、
前記複数の検索ブロックにそれぞれ対応して設けられ、対応するローカルアドレスと、対応するブロックレジスタに格納されている情報とに基づいて指定された検索ブロックにおける一致したエントリデータに対応する論理アドレスに変換する複数のアドレス変換部とを有する、請求項１記載の検索メモリ。
【請求項６】
前記出力制御部は、前記複数の検索ブロックにそれぞれ対応して設けられ、対応するローカルエンコーダから出力されるローカルアドレスと、対応するアドレス変換部から出力される論理アドレスとを選択的に切り替えて出力する複数のセレクタとをさらに含む、請求項５記載の検索メモリ。
【請求項７】
入力された検索データがメモリセルアレイに格納されたエントリデータに一致するか否かを検索し、一致するエントリデータに対応するアドレス情報を出力する直列または並列に接続された複数の検索メモリを備え、
各前記検索メモリは、複数の検索ブロックと、前記アドレス情報を出力する出力制御部とを含み、
前記アドレス情報は、前記複数の検索ブロックのうちの指定された検索ブロックにおけるエントリデータのサイズに関する情報と、指定された検索ブロックにおけるエントリデータに対応する論理アドレスとを含み、
前記出力制御部は、前記エントリデータのサイズに基づくアドレス空間において、前記エントリデータに対応する論理アドレスが連続的になるように再設定されたアドレス情報を出力する、検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、半導体装置に関し、たとえば、検索メモリに関する。
【背景技術】
【０００２】
検索メモリまたはＣＡＭ（内容参照メモリ：Content Addressable Memory）と呼ばれる記憶装置は、記憶しているデータワードの中から検索ワードに一致しているものを検索し、一致しているデータワードが見つかった場合は、そのアドレスを出力するものである。
【０００３】
ＣＡＭにはＢＣＡＭ（Binary CAM）とＴＣＡＭ（Ternary CAM）とがある。ＢＣＡＭの各メモリセルは“０”か“１”かのいずれかの情報を記憶する。一方、ＴＣＡＭの場合には、各メモリセルは、“０”および“１”の他に“ドントケア（Don't Care）”（本例においては、“＊”の記号を用いる）の情報を記憶可能である。“＊”は“０”および“１”のどちらでも良いことを示す。
【０００４】
ＴＣＡＭ装置は、インターネットなどのネットワーク用のルータにおいてアドレス検索およびアクセス制御のために幅広く利用されている。大容量化に対応するために、ＴＣＡＭ装置は、通常、複数のアレイを有し、各アレイに対して同時にサーチ動作が実行される構成となっている。
【０００５】
ＴＣＡＭ装置は、入力サーチデータ（入力パケット）とＴＣＡＭセルデータとを一斉に比較することができるので、全ての検索用途においてＲＡＭ（Random Access Memory）を用いるよりも高速である。
【０００６】
具体的には、ＴＣＡＭ装置は、メモリセルに格納した情報とユーザーが検索したいデータとを比較して、双方のデータが一致、不一致を示すためのマッチ線（ＭＬ）を有している。
【０００７】
そして、一致したマッチ線に対応するアドレス情報（Hit Index）を出力する構成が設けられている。
【０００８】
また、近年、エントリデータ幅のサイズを調整（切り替え）可能なＴＣＡＭ装置が登場しており、当該切り替えに従って、アドレス情報（Hit Index）をデータブロックサイズ毎に変換するテーブルをそれぞれ設ける方式が開示されている（特許文献１、特許文献２）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第６９３４７９５号明細書
【特許文献２】米国特許第７２４６１９８号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１０】
一方で、ＴＣＡＭ装置から出力されるアドレス情報（Hit Index）は、エントリデータ幅のサイズの調整に従って不連続となる場合がある。
【００１１】
したがって、アドレス空間に空きが生じ、管理面においては改善の余地があった。
本開示は、上記の課題を解決するためになされたものであって、アドレス情報を容易に管理すること可能な検索メモリを提供する。
【００１２】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
ある局面に従う入力された検索データがメモリセルアレイに格納されたエントリデータに一致するか否かを検索し、一致するエントリデータに対応するアドレス情報を出力する検索メモリであって、複数の検索ブロックと、アドレス情報を出力する出力制御部とを備える。アドレス情報は、前記複数の検索ブロックのうちの少なくとも１つを指定するためのブロックアドレスと、指定された検索ブロックにおけるエントリデータに対応する論理アドレスとを含む。出力制御部は、前記エントリデータのサイズに基づくアドレス空間において、前記エントリデータに対応するアドレス情報が連続的になるように再設定されたアドレス情報を出力する。
【発明の効果】
【００１４】
一実施例によれば、本開示の検索メモリは、アドレス情報を容易に管理することが可能である。
【図面の簡単な説明】
【００１５】
【図１】実施形態１に基づく通信機器１の構成を説明する図である。
【図２】ＴＣＡＭセルの構成の一例を示す回路図である。
【図３】図２のＸセルおよびＹセルの記憶内容とＴＣＡＭデータとの対応関係を表形式で示す図である。
【図４】実施形態１に基づく検索メモリ８に含まれるセグメント（サブブロック）１２の構成を説明する図である。
【図５】実施形態１に基づく検索メモリ８に含まれる複数のセグメント（サブブロック）１２の構成を説明する図である。
【図６】比較例として説明する複数のセグメント１２のアドレス情報について説明する図である。
【図７】比較例として説明する４個のセグメント１２のアドレス空間について説明する図である。
【図８】実施形態１に基づく変換回路１７のビットシフト量について説明する図である。
【図９】実施形態１に基づくアドレス情報について説明する図である。
【図１０】実施形態１に基づく複数のセグメント１２のアドレス空間について説明する図である。
【図１１】比較例として説明する複数のセグメント１２の別のアドレス情報について説明する図である。
【図１２】実施形態２に基づく通信機器１＃の構成の一部を説明する図である。
【図１３】実施形態２に基づく検索ユニット８１〜８４にそれぞれ含まれる複数のセグメント（サブブロック）１２の構成を説明する図である。
【図１４】実施形態２に基づく検索メモリ８を管理する管理テーブルの構成を説明する図である。
【図１５】実施形態２に基づく論理ブロックアドレスの設定について説明する図である。
【図１６】実施形態３に基づく検索ユニット８１〜８４にそれぞれ含まれる複数のセグメント（サブブロック）１２の構成を説明する図である。
【図１７】実施形態３の変形例に基づく検索ユニット８１〜８４にそれぞれ含まれる複数のセグメント（サブブロック）１２の構成を説明する図である。
【図１８】実施形態４に基づく検索システムについて説明する図である。
【図１９】実施形態４に基づく検索メモリ８Ａ，８Ｂの構成を説明する図である。
【図２０】実施形態４に基づく検索メモリ８Ｃ，８Ｄの構成を説明する図である。
【発明を実施するための形態】
【００１６】
実施形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。
【００１７】
（実施形態１）
＜通信機器１の全体構成＞
図１は、実施形態１に基づく通信機器１の構成を説明する図である。
【００１８】
図１に示されるように、通信機器１は、スイッチあるいはルータ等の通信装置である。
通信機器１は、ＣＰＵ（Central Processing Unit）２と、転送制御回路４と、汎用メモリ６と、検索メモリ８とを含む。
【００１９】
ＣＰＵ２は、機器全体を制御する。
ＣＰＵ２は、汎用メモリ６に格納されたプログラムと協働して種々の機能を実現する。たとえば、汎用メモリ６は、ＤＲＡＭ（Dynamic Random Access Memory）で構成することが可能であり、ＣＰＵ２と協働することによりオペレーティングシステム（ＯＳ）を構築する。ＣＰＵ２は、隣接する通信機器等と情報交換し、転送処理に必要な情報を維持管理する。
【００２０】
転送制御回路４は、通信パケットの転送処理を実行する。転送制御回路４は、転送処理に特化したＡＳＩＣ（Application Specific Integrated Circuit）回路あるいはＮＰＵ(Network Processing Unit)といった専用ハードウェアが設けられている。転送制御回路４は、検索メモリ８にアクセスして、転送処理に必要な情報を取得する。
【００２１】
検索メモリ８は、本例においては、ＴＣＡＭ装置を用いる場合について説明する。
［ＴＣＡＭセルの構成］
図２は、ＴＣＡＭセルの構成の一例を示す回路図である。
【００２２】
図２を参照して、ＴＣＡＭセル（メモリセルＭＣとも称する）は、２個のＳＲＡＭセル（Static Random Access Memory Cell）１１，１２と、データ比較部１３とを含む。ＳＲＡＭセル１１をＸセルとも称し、ＳＲＡＭセル１４をＹセルとも称する。Ｘセル１１は、内部の記憶ノード対ＮＤ１，ＮＤ１＿ｎに互いに相補となる（一方が“１”のとき他方が“０”となる）１ビット（ｂｉｔ）のデータを記憶する。Ｙセル１４は、内部の記憶ノード対ＮＤ２，ＮＤ２＿ｎに互いに相補となる１ビットのデータを記憶する。ＴＣＡＭセルは、検索メモリセルとも称する。
【００２３】
ＴＣＡＭセルは、ビット線対ＢＬ，／ＢＬ、サーチ線対ＳＬ，／ＳＬ、マッチ線ＭＬ、およびワード線ＷＬＸ，ＷＬＹと接続される。ビット線対ＢＬ，／ＢＬは、図６のＴＣＡＭセルアレイ２０の列方向（Ｙ方向）に延在し、列方向に配列された複数のＴＣＡＭセルによって共有される。サーチ線対ＳＬ，／ＳＬは、ＴＣＡＭセルアレイ２０の列方向（Ｙ方向）に延在し、列方向に配列された複数のＴＣＡＭセルによって共有される。
【００２４】
マッチ線ＭＬは、ＴＣＡＭセルアレイ２０の行方向（Ｘ方向）に延在し、行方向に配列された複数のＴＣＡＭセルによって共有される。ワード線ＷＬＸ，ＷＬＹは、ＴＣＡＭセルアレイ２０の行方向（Ｘ方向）に延在し、行方向に配列された複数のＴＣＡＭセルによって共有される。
【００２５】
Ｘセル１１は、インバータＩＮＶ１，ＩＮＶ２と、ＮチャネルＭＯＳ（Metal Oxide Semiconductor）トランジスタＱ１，Ｑ２とを含む。インバータＩＮＶ１は、記憶ノードＮＤ１＿ｎから記憶ノードＮＤ１へ向かう方向が順方向となるように、記憶ノードＮＤ１と記憶ノードＮＤ１＿ｎの間に接続される。インバータＩＮＶ２は、ＩＮＶ１と並列かつ逆方向に接続される。ＭＯＳトランジスタＱ１は、記憶ノードＮＤ１とビット線ＢＬとの間に接続される。ＭＯＳトランジスタＱ２は、記憶ノードＮＤ１＿ｎとビット線／ＢＬとの間に接続される。ＭＯＳトランジスタＱ１，Ｑ２のゲートは、ワード線ＷＬＸと接続される。
【００２６】
Ｙセル１４は、インバータＩＮＶ３，ＩＮＶ４と、ＭＯＳ（Metal Oxide Semiconductor）トランジスタＱ３，Ｑ４とを含む。インバータＩＮＶ３は、記憶ノードＮＤ２＿ｎから記憶ノードＮＤ２に向かう方向が順方向となるように、記憶ノードＮＤ２と記憶ノードＮＤ２＿ｎの間に接続される。インバータＩＮＶ４は、ＩＮＶ３と並列かつ逆方向に接続される。ＭＯＳトランジスタＱ３は、記憶ノードＮＤ２とビット線ＢＬとの間に接続される。ＭＯＳトランジスタＱ４は、記憶ノードＮＤ２＿ｎとビット線／ＢＬとの間に接続される。ＭＯＳトランジスタＱ３，Ｑ４のゲートは、ワード線ＷＬＹと接続される。
【００２７】
データ比較部１３は、ＮチャネルＭＯＳトランジスタＱ６〜Ｑ９を含む。ＭＯＳトランジスタＱ６，Ｑ７はマッチ線ＭＬとの接続点であるノードＮＤ３と接地ノードＧＮＤとの間に直列に接続される。ＭＯＳトランジスタＱ８，Ｑ９は、ノードＮＤ３と接地ノードＧＮＤとの間に直列に、かつ、直列接続されたＭＯＳトランジスタＱ６，Ｑ７の全体と並列に接続される。ＭＯＳトランジスタＱ６，Ｑ８のゲートは、記憶ノードＮＤ１，ＮＤ２とそれぞれ接続される。ＭＯＳトランジスタＱ７，Ｑ９のゲートは、サーチ線ＳＬ，／ＳＬとそれぞれ接続される。
【００２８】
図３は、図２のＸセルおよびＹセルの記憶内容とＴＣＡＭデータとの対応関係を表形式で示す図である。
【００２９】
図２および図３を参照して、ＴＣＡＭセルは、２ビットのＳＲＡＭセルを用いて、“０”、“１”、“＊”（ドントケア：don't care）の３値を格納することができる。具体的に、Ｘセル１１の記憶ノードＮＤ１に“１”が格納され、Ｙセル１４の記憶ノードＮＤ２に“０”が格納されているとき、ＴＣＡＭセルには“０”が格納されているとする。Ｘセル１１の記憶ノードＮＤ１に“０”が格納され、Ｙセル１４の記憶ノードＮＤ２に“１”が格納されているとき、ＴＣＡＭセルには“１”が格納されているとする。Ｘセル１１の記憶ノードＮＤ１に“０”が格納され、Ｙセル１４の記憶ノードＮＤ２に“０”が格納されているとき、ＴＣＡＭセルには“＊”（ドントケア）が格納されているとする。Ｘセル１１の記憶ノードＮＤ１に“１”が格納され、Ｙセル１４の記憶ノードＮＤ２に“１”が格納されている場合は使用しない。
【００３０】
上記のＴＣＡＭセルの構成によれば、サーチデータが“１”（すなわち、サーチ線ＳＬが“１”、かつ、サーチ線／ＳＬが“０”）であり、ＴＣＡＭデータが“０”（記憶ノードＮＤ１が“１”、かつ、記憶ノードＮＤ２が“０”）である場合には、ＭＯＳトランジスタＱ６，Ｑ７がオン状態となるために、プリチャージされたマッチ線ＭＬの電位が接地電位まで引き抜かれる。サーチデータが“０”（すなわち、サーチ線ＳＬが“０”、かつ、サーチ線／ＳＬが“１”）であり、ＴＣＡＭデータが“１”（記憶ノードＮＤ１が“０”、かつ、記憶ノードＮＤ２が“１”）である場合には、ＭＯＳトランジスタＱ８，Ｑ９がオン状態となるために、プリチャージされたマッチ線ＭＬの電位が接地電位まで引き抜かれる。すなわち、サーチデータとＴＣＡＭデータとが不一致の場合には、マッチ線ＭＬの電位は接地電位まで引き抜かれる。
【００３１】
逆に、入力されたサーチデータが“１”であり、かつ、ＴＣＡＭデータが“１”または“＊”の場合、もしくは、サーチデータが“０”であり、かつ、ＴＣＡＭデータが“０”または“＊”の場合（すなわち、両者が一致する場合）、プリチャージされたマッチ線ＭＬの電位（電源電圧ＶＤＤレベル）は維持される。
【００３２】
上記のように、ＴＣＡＭでは、１つのエントリ（行）に対応するマッチ線ＭＬに接続された全てのＴＣＡＭセルのデータが入力サーチデータと一致しない限り、マッチ線ＭＬに蓄えられた電荷が引き抜かれる。このため、ＴＣＡＭでの検索は高速であるが、消費電流が大きいという問題がある。
【００３３】
図４は、実施形態１に基づく検索メモリ８に含まれるセグメント（サブブロック）１２の構成を説明する図である。
【００３４】
図４に示されるように、セグメント１２は、ＴＣＡＭセルアレイ２０（単にセルアレイとも称する）と、書込ドライバ２１と、サーチ線ドライバ２２と、マッチアンプ部２３と、制御論理回路２４と、読出回路２５とを含む。
【００３５】
セグメント１２は、図示していないがワード線ＷＬＸ，ＷＬＹを駆動するためのワード線ドライバ（不図示）と、制御信号やアドレス信号等の入力を受ける入出力回路（不図示）とを含む。
【００３６】
ＴＣＡＭセルアレイ２０は、行列状（ｍ行；ｋ列）に配列されたＴＣＡＭセルを含む。本例においては、セルアレイ２０は、行数（エントリ数）ｍがＮであり、列数（ビット数）ｋが４０の場合が示されている。なお、セルアレイ２０は、少なくとも１つ以上の冗長メモリセル列を有している。
【００３７】
セルアレイ２０の各列に対応して、ｋ個（ｋ＝４０）のビット線対（ＢＬ０，／ＢＬ０からＢＬ（ｋ−１），／ＢＬ（ｋ−１）まで）と、ｋ個（ｋ＝４０）のサーチ線対（ＳＬ０，／ＳＬ０からＳＬ（ｋ−１），／ＳＬ（ｋ−１）まで）とが設けられる。
【００３８】
セルアレイ２０の各行に対応して、ｍ本（ｍ＝Ｎ）のマッチ線（ＭＬ０〜ＭＬ（Ｎ−１）まで）と、図示しないｍ本のＸセル用のワード線（ＷＬＸ０〜ＷＬＸ（Ｎ−１）まで）と、図示しないｍ本のＹセル用のワード線（ＷＬＹ０〜ＷＬＹ（Ｎ−１）まで）とが設けられている。
【００３９】
書込ドライバ２１は、書込時に、ビット線対ＢＬ，／ＢＬを介して各ＴＣＡＭセルに書込データを供給する。サーチ線ドライバ２２は、検索時に、サーチ線対ＳＬ，／ＳＬを介して各ＴＣＡＭセルにサーチデータを供給する。
【００４０】
制御論理回路２４は、セグメント１２全体の動作を制御する。たとえば、制御論理回路２４は、検索時には、サーチコマンドを受け取り、サーチ線ドライバ２２と、マッチアンプ部２３に制御信号を出力することによって、サーチ線ドライバ２２、マッチアンプ部２３、およびプリチャージ回路の動作を制御する。制御論理回路２４は、読出時には読出コマンドを受け取り、読出回路２５を制御する制御信号を出力する。これによりセルアレイ２０に格納されているエントリデータを読み出して出力することが可能である。
【００４１】
マッチアンプ部２３は、セルアレイの行にそれぞれ対応する複数のマッチアンプＭＡを含む。マッチアンプＭＡは、検索時に、対応するマッチ線ＭＬの電位に基づいて、対応するＴＣＡＭセルデータと入力サーチデータの対応部分とが一致するか否かを検出する。この実施形態では、マッチアンプＭＡは、検索時に対応するマッチ線ＭＬをプリチャージするためのプリチャージ回路を含む。
【００４２】
図５は、実施形態１に基づく検索メモリ８に含まれる複数のセグメント（サブブロック）１２の構成を説明する図である。
【００４３】
図５を参照して、複数のセグメント１２−０〜１２−（Ｎ−１）と、複数のプライオリティエンコーダ（ＰＥ）１５−０〜１５−（Ｎ−１）と、複数のレジスタ１６−０〜１６−（Ｎ−１）と、複数の変換回路１７−０〜１７−（Ｎ−１）と、グローバルプライオリティエンコーダ（ＧＰＥ）１８とが設けられる。
【００４４】
セグメント１２−０〜１２−（Ｎ−１）の各々の構成は、図４で説明したセグメント１２の構成と同様である。総称してセグメント１２とも称する。
【００４５】
また、実施形態１において各セグメント１２は、エントリデータのサイズを調整可能に設けられている。また、複数のレジスタ１６−０〜１６−（Ｎ−１）を総称してレジスタ１６とも称する。また、複数の変換回路１７−０〜１７−（Ｎ−１）を総称して変換回路１７とも称する。
【００４６】
具体的には、一例としてエントリデータのサイズ（ＤＢＷ）として８０ビット、１６０ビット、３２０ビット、６４０ビットに調整可能に設けられている。
【００４７】
例えば、セグメント１２の１行のビット幅が８０ビットとして設けられている場合には、１６０ビットの場合には２行を用いて１つのエントリデータを格納することが可能である。３２０ビットの場合には、４行を用いて１つのエントリデータを格納することが可能である。６４０ビットの場合には８行を用いて１つのエントリデータを格納することが可能である。
【００４８】
したがって、割り当てられるアドレスの個数が変化する。たとえば、１６０ビットの場合には２行を用いて１つのエントリデータを格納するためアドレスの個数は８０ビットの場合と比較して１／２になる。３２０ビットの場合には４行を用いて１つのエントリデータを格納するためにアドレスの個数は８０ビットの場合と比較して１／４になる。６４０ビットの場合には８行を用いて１つのエントリデータを格納するためにアドレスの個数は８０ビットの場合と比較して１／８になる。
【００４９】
各プライオリティエンコーダ１５は、マッチアンプＭＡからの入力をアドレスデータに変換し、最終的な出力を生成する。具体的には、優先度の高いアドレスデータを出力する。
【００５０】
各レジスタ１６は、対応するセグメントのブロックアドレスを格納するとともに、対応するセグメントのエントリデータのサイズに関するサイズ情報を格納する。
【００５１】
これらの情報は、本検索メモリ８のユーザーによって設定される。
各変換回路１７は、プライオリティエンコーダ１５から出力されるアドレスデータと、レジスタ１６から入力されるブロックアドレスと、サイズ情報とに基づいてアドレス情報（Hit Index）を再設定する。
【００５２】
グローバルプライオリティエンコーダ１８は、複数の変換回路１７−０〜１７−（Ｎ−１）の出力を受けて優先度の高いアドレス情報を最終的に出力する。
【００５３】
図６は、比較例として説明する複数のセグメント１２のアドレス情報について説明する図である。
【００５４】
図６を参照して、一例として本例においては２１ビットのアドレス空間が設定されている場合について説明する。
【００５５】
２１ビットのアドレス空間のうち上位の９ビットはブロックアドレスＢＡとして割り当てられる。また、下位の１２ビットはローカルアドレスＬＡとして割り当てられる。ブロックアドレスＢＡはレジスタ１６に設定されたブロックアドレスに基づくものであり、ローカルアドレスＬＡはプライオリティエンコーダ１５から出力されるアドレスデータである。
【００５６】
例えば、エントリデータのサイズとして８０ビット（ＤＢＷ８０）が設定される場合には、セグメント１２に格納される４０９６個のエントリデータのそれぞれに対応してローカルアドレスＬＡ［１１：０］がそれぞれ割り当てられる。
【００５７】
また、５１２個のセグメント１２−０〜１２−５１１のそれぞれに対応してブロックアドレスＢＡ［８：０］がそれぞれ割り当てられている。
【００５８】
次に、エントリデータのサイズとして１６０ビット（ＤＢＷ１６０）が設定される場合には、セグメント１２に格納される２０４８個のエントリデータのそれぞれに対応してローカルアドレスＬＡ［１０：０］がそれぞれ割り当てられる。この場合、プライオリティエンコーダ１５は、ローカルアドレスＬＡ［１０：０］に固定値の１２ビット目を加えた１２ビットからなるアドレスデータを出力する。
【００５９】
次に、エントリデータのサイズとして３２０ビット（ＤＢＷ３２０）が設定される場合には、セグメント１２に格納される１０２４個のエントリデータのそれぞれに対応してローカルアドレスＬＡ［９：０］がそれぞれ割り当てられる。この場合、プライオリティエンコーダ１５は、ローカルアドレスＬＡ［９：０］に固定値の１１ビット目、１２ビット目を加えた１２ビットからなるアドレスデータを出力する。
【００６０】
次に、エントリデータのサイズとして６４０ビット（ＤＢＷ６４０）が設定される場合には、セグメント１２に格納される５１２個のエントリデータのそれぞれに対応してローカルアドレスＬＡ［８：０］がそれぞれ割り当てられる。この場合、プライオリティエンコーダ１５は、上記同様に、ローカルアドレスＬＡ［８：０］に固定値の１０〜１２ビット目を加えた１２ビットからなるアドレスデータを出力する。
【００６１】
上述のように、図６に示される比較例において、プライオリティエンコーダ１５は、レジスタ１６に設定されたサイズ情報に基づき、ローカルアドレスをビットシフトさせたアドレスデータを出力する。
【００６２】
図７は、比較例として説明する４個のセグメント１２のアドレス空間について説明する図である。
【００６３】
図７（Ａ）を参照して、エントリデータのサイズとアドレス情報（Hit Index）との関係について説明する図である。
【００６４】
例えば、４個のセグメント１２に対してブロック番号Ｂｌｋ＃０〜Ｂｌｋ＃３が設けられている場合について説明する。
【００６５】
この場合、ブロック番号Ｂｌｋ＃０のブロックアドレスＢＡ［８：０］は、１０進数標記で「０」とする。ブロック番号Ｂｌｋ＃１のブロックアドレスＢＡ［８：０］は、１０進数標記で「１」とする。ブロック番号Ｂｌｋ＃２のブロックアドレスＢＡ［８：０］は、１０進数標記で「２」とする。ブロック番号Ｂｌｋ＃３のブロックアドレスＢＡ［８：０］は、１０進数標記で「３」とする。
【００６６】
エントリデータのサイズとして８０ビット（ＤＢＷ８０）が設定される場合に、ブロック（Blk#0）に対応するエントリデータ４０９６個に対してアドレス情報（Hit Index）は、ローカルアドレスＬＡ［１１：０］によって、１０進数標記で「０〜４０９５」にそれぞれ割り当てられる。
【００６７】
また、ブロック（Blk#1）に対応するエントリデータ４０９６個に対してアドレス情報（Hit Index）は、１０進数標記で「４０９６〜８１９１」にそれぞれ割り当てられる。
【００６８】
また、ブロック（Blk#2）に対応するエントリデータ４０９６個に対してアドレス情報（Hit Index）は、１０進数標記で「８１９２〜１２２８７」にそれぞれ割り当てられる。
【００６９】
また、ブロック（Blk#3）に対応するエントリデータ４０９６個に対してアドレス情報（Hit Index）は、１０進数標記で「１２２８８〜１６３８３」にそれぞれ割り当てられる。
【００７０】
エントリデータのサイズとして１６０ビット（ＤＢＷ１６０）が設定される場合に、ブロック（Blk#0）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、ローカルアドレスＬＡ［１０：０］によって、１０進数標記で「０〜２０４７」にそれぞれ割り当てられる。
【００７１】
また、ブロック（Blk#1）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、１０進数標記で「４０９６〜６１４３」にそれぞれ割り当てられる。
【００７２】
また、ブロック（Blk#2）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、１０進数標記で「８１９２〜１０２３９」にそれぞれ割り当てられる。
【００７３】
また、ブロック（Blk#3）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、１０進数標記で「１２２８８〜１４３３５」にそれぞれ割り当てられる。
【００７４】
エントリデータのサイズとして３２０ビット（ＤＢＷ３２０）に設定される場合に、ブロック（Blk#0）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、ローカルアドレスＬＡ［９：０］によって、１０進数標記で「０〜１０２３」にそれぞれ割り当てられる。
【００７５】
また、ブロック（Blk#1）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１０進数標記で「４０９６〜５１１９」にそれぞれ割り当てられる。
【００７６】
また、ブロック（Blk#2）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１０進数標記で「８１９２〜９２１５」にそれぞれ割り当てられる。がそれぞれ出力される。
【００７７】
また、ブロック（Blk#3）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１０進数標記で「１２２８８〜１３３１１」にそれぞれ割り当てられる。
【００７８】
エントリデータのサイズとして６４０ビット（ＤＢＷ６４０）に設定される場合に、ブロック（Blk#0）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、ローカルアドレスＬＡ［８：０］によって、１０進数標記で「０〜５１１」にそれぞれ割り当てられる。
【００７９】
また、ブロック（Blk#1）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１０進数標記で「４０９６〜４６０７」にそれぞれ割り当てられる。
【００８０】
また、ブロック（Blk#2）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１０進数標記で「８１９２〜８７０３」にそれぞれ割り当てられる。
【００８１】
また、ブロック（Blk#3）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１０進数標記で「１２２８８〜１２７９９」にそれぞれ割り当てられる。
【００８２】
図７（Ｂ）は、比較例としてアドレス情報（Hit Index）とエントリデータ幅との関係を説明する図である。
【００８３】
図７（Ｂ）に示されるように、エントリデータのサイズとして８０ビット（ＤＢＷ８０）に設定されている場合には、ブロックアドレスとローカルアドレスとからなるアドレス情報（Hit Index）のアドレス空間は、各ブロック間において連続している。
【００８４】
一方、エントリデータのサイズとして１６０ビット（ＤＢＷ１６０）、３２０ビット（ＤＢＷ３２０）、６４０ビット（ＤＢＷ６４０）に設定される場合には、各ブロック間におけるアドレス空間は非連続であり、隙間（空き領域）が存在することになる。それゆえ、アドレスの管理として複雑な管理が必要であった。
【００８５】
実施形態１に従う方式においては、各ブロック間における空き領域を無くす方式について説明する。
【００８６】
具体的には、図６に示されるようにエントリデータのサイズとして１６０ビット（ＤＢＷ１６０）が設定される場合には、下位の１２ビットのうちローカルアドレスＬＡ［１０：０］はアドレスデータとして用いられるが、１２ビット目であるローカルアドレスＬＡ［１１］は用いられず固定値のため、１ビットのブランク領域が生じる。
【００８７】
また、エントリデータのサイズとして３２０ビット（ＤＢＷ３２０）が設定される場合には、下位の１２ビットのうちローカルアドレスＬＡ［９：０］はアドレスデータとして用いられるが、１１、１２ビット目であるローカルアドレスＬＡ［１１］，ＬＡ［１０］は用いられず固定値のため、２ビットのブランク領域が生じる。
【００８８】
また、エントリデータのサイズとして６４０ビット（ＤＢＷ６４０）が設定される場合には、下位の１２ビットのうちローカルアドレスＬＡ［８：０］はアドレスデータとして用いられるが、１０、１１、１２ビット目であるローカルアドレスＬＡ［１１］，ＬＡ［１０］，ＬＡ［９］は用いられず固定値のため、３ビットのブランク領域が生じる。
【００８９】
したがって、実施形態１に従う方式においては、変換回路１７は、エントリデータのサイズに従ってビットシフトを行う。
【００９０】
図８は、実施形態１に基づく変換回路１７のビットシフト量について説明する図である。
【００９１】
図８を参照して、変換回路１７は、エントリデータのサイズとして８０ビット（ＤＢＷ８０）が設定される場合には、ビットシフトは行なわない。
【００９２】
変換回路１７は、エントリデータのサイズとして１６０ビット（ＤＢＷ１６０）が設定される場合には、ビットシフトとして１ビットシフトを行う。
【００９３】
変換回路１７は、エントリデータのサイズとして３２０ビット（ＤＢＷ３２０）が設定される場合には、ビットシフトとして２ビットシフトを行う。
【００９４】
変換回路１７は、エントリデータのサイズとして６４０ビット（ＤＢＷ６４０）が設定される場合には、ビットシフトとして３ビットシフトを行う。
【００９５】
上述のように、変換回路１７はエントリデータのサイズに応じて生じるブランク領域に相当する分だけビットシフトを行う。
【００９６】
図９は、実施形態１に基づくアドレス情報について説明する図である。
図９を参照して、変換回路１７は、サイズ情報に従ってレジスタ１６から入力されるブロックアドレスＢＡと、プライオリティエンコーダ１５から出力されるローカルアドレスＬＡとを組み合わせてアドレス情報（Hit Index）として再設定する。この場合、エントリデータのサイズとして８０ビット（ＤＢＷ８０）が設定される場合には、ビットシフトさせずにそのまま組み合わせてアドレス情報（Hit Index）として出力する。
【００９７】
変換回路１７は、エントリデータのサイズとして１６０ビット（ＤＢＷ１６０）が設定される場合には、ブロックアドレスＢＡをビットシフトとして１ビットシフトさせたものとプライオリティエンコーダ１５から出力される１２ビットのアドレスデータのうちローカルアドレスＬＡ［１０：０］とを組み合わせてアドレス情報（Hit Index）として出力する。
【００９８】
変換回路１７は、エントリデータのサイズとして３２０ビット（ＤＢＷ３２０）が設定される場合には、ブロックアドレスＢＡをビットシフトとして２ビットシフトさせたものとプライオリティエンコーダ１５から出力される１２ビットのアドレスデータのうちローカルアドレスＬＡ［９：０］とを組み合わせてアドレス情報（Hit Index）として出力する。
【００９９】
変換回路１７は、エントリデータのサイズとして６４０ビット（ＤＢＷ６４０）が設定される場合には、ブロックアドレスＢＡをビットシフトとして３ビットシフトさせたものと、プライオリティエンコーダ１５から出力される１２ビットのアドレスデータのうちローカルアドレスＬＡ［８：０］とを組み合わせてアドレス情報（Hit Index）として出力する。
【０１００】
すなわち、エントリデータのサイズに応じてブロックアドレスＢＡをビットシフトさせることで、ブロックアドレスＢＡとローカルアドレスＬＡからなるアドレス情報（Hit Index）を連続するアドレス空間として扱うことが可能になる。
【０１０１】
図１０は、実施形態１に基づく複数のセグメント１２のアドレス空間について説明する図である。
【０１０２】
図１０（Ａ）を参照して、エントリデータのサイズとアドレス情報（Hit Index）との関係について説明する図である。
【０１０３】
例えば、４個のセグメント１２に対してブロック番号Ｂｌｋ＃０〜Ｂｌｋ＃３が設けられている場合について説明する。
【０１０４】
この場合、ブロック番号Ｂｌｋ＃０のブロックアドレスＢＡ［８：０］は、１０進数標記で「０」とする。ブロック番号Ｂｌｋ＃１のブロックアドレスＢＡ［８：０］は、１０進数標記で「１」とする。ブロック番号Ｂｌｋ＃２のブロックアドレスＢＡ［８：０］は、１０進数標記で「２」とする。ブロック番号Ｂｌｋ＃３のブロックアドレスＢＡ［８：０］は、１０進数標記で「３」とする。
【０１０５】
エントリデータのサイズとして８０ビット（ＤＢＷ８０）が設定される場合に、ブロック（Blk#0）に対応するエントリデータ４０９６個に対してアドレス情報（Hit Index）は、１０進数標記で「０〜４０９５」にそれぞれ割り当てられる。
【０１０６】
また、ブロック（Blk#1）に対応するエントリデータ４０９６個に対してアドレス情報（Hit Index）は、１０進数標記で「４０９６〜８１９１」にそれぞれ割り当てられる。
【０１０７】
また、ブロック（Blk#2）に対応するエントリデータ４０９６個に対してアドレス情報（Hit Index）は、１０進数標記で「８１９２〜１２２８７」にそれぞれ割り当てられる。
【０１０８】
また、ブロック（Blk#3）に対応するエントリデータ４０９６個に対してアドレス情報（Hit Index）は、１０進数標記で「１２２８８〜１６３８３」にそれぞれ割り当てられる。
【０１０９】
エントリデータのサイズとして１６０ビット（ＤＢＷ１６０）が設定される場合に、ブロック（Blk#0）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、１０進数標記で「０〜２０４７」にそれぞれ割り当てられる。
【０１１０】
また、ブロック（Blk#1）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、１０進数標記で「２０４８〜４０９５」にそれぞれ割り当てられる。
【０１１１】
また、ブロック（Blk#2）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、１０進数標記で「４０９６〜６１４３」にそれぞれ割り当てられる。
【０１１２】
また、ブロック（Blk#3）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、１０進数標記で「６１４４〜８１９１」にそれぞれ割り当てられる。
【０１１３】
エントリデータのサイズとして３２０ビット（ＤＢＷ３２０）が設定される場合に、ブロック（Blk#0）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１０進数標記で「０〜１０２３」にそれぞれ割り当てられる。
【０１１４】
また、ブロック（Blk#1）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１０進数標記で「１０２４〜２０４７」にそれぞれ割り当てられる。
【０１１５】
また、ブロック（Blk#2）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１０進数標記で「２０４８〜３０７１」にそれぞれ割り当てられる。
【０１１６】
また、ブロック（Blk#3）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１０進数標記で「３０７２〜４０９５」にそれぞれ割り当てられる。
【０１１７】
エントリデータのサイズとして６４０ビット（ＤＢＷ６４０）が設定される場合に、ブロック（Blk#0）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１０進数標記で「０〜５１１」にそれぞれ割り当てられる。
【０１１８】
また、ブロック（Blk#1）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１０進数標記で「５１２〜１０２３」にそれぞれ割り当てられる。
【０１１９】
また、ブロック（Blk#2）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１０進数標記で「１０２４〜１５３５」にそれぞれ割り当てられる。
【０１２０】
また、ブロック（Blk#3）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１０進数標記で「１５３６〜２０４７」がそれぞれ割り当てられる。
【０１２１】
図１０（Ｂ）は、実施形態１に基づくアドレス情報（Hit Index）とエントリデータ幅との関係を説明する図である。
【０１２２】
図１０（Ｂ）に示されるように、エントリデータのサイズとして８０ビット（ＤＢＷ８０）に設定されている場合には、各ブロック間におけるアドレス空間は連続している。
【０１２３】
また、エントリデータのサイズとして１６０ビット（ＤＢＷ１６０）、３２０ビット（ＤＢＷ３２０）、６４０ビット（ＤＢＷ６４０）に設定される場合においても、各ブロック間における隙間（空き領域）は無くなり、アドレス空間は連続している。
【０１２４】
したがって、各変換回路１７は、エントリデータのサイズに基づくアドレス空間において、エントリデータに対応するアドレス情報が連続的になるように再設定されたアドレス情報を出力する。
【０１２５】
各変換回路１７は、エントリデータのサイズが２N倍（Ｎ：自然数）に設定された場合に、最大ビット長−Ｎビットのアドレス空間において、エントリデータに対応するアドレス情報が連続的になるように再設定されたアドレス情報を出力する。
【０１２６】
各変換回路１７は、エントリデータのサイズに応じてブロックアドレスをＮビットシフトさせるシフト演算処理を実行する。
【０１２７】
実施形態１に基づく方式によりアドレス情報は連続しているため検索メモリを管理する管理側の負荷を軽減することが可能である。
【０１２８】
次に、プライオリティエンコーダＰＥの出力方式が異なる場合について説明する。
図１１は、比較例として説明する複数のセグメント１２の別のアドレス情報について説明する図である。
【０１２９】
図１１を参照して、一例として本例においては２１ビットのアドレス空間が設定されている場合について説明する。
【０１３０】
２１ビットのアドレス空間のうち上位の９ビットはブロックアドレスＢＡとして割り当てられる。また、下位の１２ビットはローカルアドレスＬＡとして割り当てられる。
【０１３１】
例えば、エントリデータのサイズとして８０ビット（ＤＢＷ８０）が設定される場合には、セグメント１２に格納される４０９６個のエントリデータのそれぞれに対応してローカルアドレスＬＡ［１１：０］がそれぞれ割り当てられ、出力される。
【０１３２】
また、５１２個のセグメント１２−０〜１２−５１１のそれぞれに対応してブロックアドレスＢＡ［８：０］がそれぞれ割り当てられている。
【０１３３】
次に、エントリデータのサイズとして１６０ビット（ＤＢＷ１６０）が設定される場合には、セグメント１２に格納される２０４８個のエントリデータのそれぞれに対応してローカルアドレスＬＡ［１１：１］がそれぞれ割り当てられ、０ビット目、すなわちローカルアドレスＬＡ［０］を固定値としたローカルアドレスＬＡ［１１：０］がプライオリティエンコーダ１５から出力される。
【０１３４】
次に、エントリデータのサイズとして３２０ビット（ＤＢＷ３２０）が設定される場合には、セグメント１２に格納される１０２４個のエントリデータのそれぞれに対応してローカルアドレスＬＡ［１１：２］がそれぞれ割り当てられる。０，１ビット目、すなわちローカルアドレスＬＡ［０］，ＬＡ［１］を固定値としたローカルアドレスＬＡ［１１：０］がプライオリティエンコーダ１５から出力される。
【０１３５】
次に、エントリデータのサイズとして６４０ビット（ＤＢＷ６４０）が設定される場合には、セグメント１２に格納される５１２個のエントリデータのそれぞれに対応してローカルアドレスＬＡ［１１：３］がそれぞれ割り当てられる。０，１，２ビット目、すなわちローカルアドレスＬＡ［０］，ＬＡ［１］，ＬＡ［２］を固定値としたローカルアドレスＬＡ［１１：０］がプライオリティエンコーダ１５から出力される。
【０１３６】
当該構成において、エントリデータのサイズとして８０ビット（ＤＢＷ８０）に設定されている場合には、各ブロック間におけるアドレス空間は連続している。
【０１３７】
一方、エントリデータのサイズとして１６０ビット（ＤＢＷ１６０）、３２０ビット（ＤＢＷ３２０）、６４０ビット（ＤＢＷ６４０）に設定される場合には、各ブロック間におけるアドレス空間は非連続であり、隙間（空き領域）が存在することになる。
【０１３８】
したがって、当該構成においても変換回路１７は、エントリデータのサイズに従って、ブロックアドレスＢＡとローカルアドレスＬＡとを組み合わせてアドレス情報（Hit Index）として出力する。
【０１３９】
具体的には、変換回路１７は、エントリデータのサイズとして１６０ビット（ＤＢＷ１６０）が設定される場合には、ブロックアドレスＢＡとローカルアドレスＬＡとを組み合わせたデータを１ビットシフトさせて、アドレス情報（Hit Index）として出力する。
【０１４０】
変換回路１７は、エントリデータのサイズとして３２０ビット（ＤＢＷ３２０）が設定される場合には、ブロックアドレスＢＡとローカルアドレスＬＡとを組み合わせたデータを２ビットシフトさせて、アドレス情報（Hit Index）として出力する。
【０１４１】
変換回路１７は、エントリデータのサイズとして６４０ビット（ＤＢＷ６４０）が設定される場合には、ブロックアドレスＢＡとローカルアドレスＬＡとを組み合わせたデータを３ビットシフトさせて、アドレス情報（Hit Index）として出力する。
【０１４２】
これにより図９で説明したのと同様のアドレス情報となる。
各ブロック間における隙間（空き領域）は無くなり、アドレス空間は連続する。
【０１４３】
実施形態１に基づく方式によりアドレス情報は連続しているため検索メモリを管理する管理側の負荷を軽減することが可能である。
【０１４４】
（実施形態２）
図１２は、実施形態２に基づく通信機器１＃の構成の一部を説明する図である。
【０１４５】
図１２を参照して、検索メモリ８の代わりに検索メモリ８＃を設けた点が異なる。
検索メモリ８＃は、複数の検索ユニット８１〜８４を含む。
【０１４６】
各検索ユニット８１は、複数のセグメント１２を含む。複数の検索ユニット８１〜８４は、それぞれエントリデータのサイズが異なっていてもよい。一例として検索ユニット８１は、エントリデータのサイズ（ＤＢＷ）として８０ビットに設定される。検索ユニット８２は、エントリデータのサイズ（ＤＢＷ）として１６０ビットに設定される。検索ユニット８３は、エントリデータのサイズ（ＤＢＷ）として３２０ビットに設定される。検索ユニット８４は、エントリデータのサイズ（ＤＢＷ）として６４０ビットに設定される。
【０１４７】
図１３は、実施形態２に基づく検索ユニット８１〜８４にそれぞれ含まれる複数のセグメント（サブブロック）１２の構成を説明する図である。
【０１４８】
図１３を参照して、複数のセグメント１２−０〜１２−（Ｎ−１）と、複数のプライオリティエンコーダ（ＰＥ）１５−０〜１５−（Ｎ−１）と、複数のレジスタ１６＃−０〜１６＃−（Ｎ−１）と、複数の変換回路１７＃−０〜１７＃−（Ｎ−１）と、グローバルプライオリティエンコーダ（ＧＰＥ）１８とが設けられる。
【０１４９】
セグメント１２−０〜１２−（Ｎ−１）の各々の構成は、図４で説明したセグメント１２の構成と同様である。
【０１５０】
また、実施形態２において各セグメント１２は、エントリデータのサイズを調整可能に設けられている。
【０１５１】
具体的には、一例としてエントリデータのサイズ（ＤＢＷ）として８０ビット、１６０ビット、３２０ビット、６４０ビットに調整可能に設けられている。
【０１５２】
各プライオリティエンコーダ１５は、マッチアンプＭＡからの入力をアドレスデータに変換し、最終的な出力を生成する。具体的には、優先度の高いアドレスデータを出力する。
【０１５３】
各レジスタ１６＃は、対応するセグメントの論理ブロックアドレスを格納するとともに、対応するセグメントのエントリデータのサイズに関するサイズ情報を格納する。
【０１５４】
各変換回路１７＃は、プライオリティエンコーダ１５から出力されるアドレスデータと、レジスタ１６から入力される論理ブロックアドレスと、サイズ情報とに基づいてアドレス情報（Hit Index）を再設定する。
【０１５５】
グローバルプライオリティエンコーダ１８は、複数の変換回路１７＃−０〜１７＃−（Ｎ−１）の出力を受けて優先度の高いアドレス情報を最終的に出力する。
【０１５６】
図１４は、実施形態２に基づく検索メモリ８を管理する管理テーブルの構成を説明する図である。
【０１５７】
図１４を参照して、管理テーブルは、検索メモリよりも上位層、例えばシステムメモリに設けられており、検索メモリの各セグメントの物理ブロックアドレスと論理ブロックアドレスとの関係が規定されている。
【０１５８】
本例においては、物理アドレスとして設定されているブロックアドレスをエントリデータサイズ毎の論理ブロックアドレスに変換して、管理する。
【０１５９】
転送制御回路４は、初期設定時に、管理テーブルを参照して、物理ブロックアドレスによって指定されるセグメントに対応するレジスタに論理ブロックアドレスを設定する。
【０１６０】
図１５は、実施形態２に基づく論理ブロックアドレスの設定について説明する図である。
【０１６１】
図１５に示されるように、エントリデータのサイズ（ＤＢＷ）に従って論理ブロックアドレスが設定される場合が示されている。
【０１６２】
具体的には、エントリデータのサイズ（ＤＢＷ）として８０ビットに設定された最初のセグメント１２の最初の論理ブロックアドレスは、「０００」に設定される。
【０１６３】
以降、エントリデータのサイズ毎に順番に論理ブロックアドレスが昇順的に設定される。
【０１６４】
再び図１４を参照して、エントリデータのサイズに従ってアドレス情報（Hit Index）を管理する。
【０１６５】
本例においては、物理アドレスとしてブロック番号Ｂｌｋ＃０００のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「０００」を割り当て、エントリデータのサイズ（ＤＢＷ）として８０ビットに設定した場合が示されている。
【０１６６】
この場合、ブロック番号Ｂｌｋ＃０００（論理ブロックアドレス「０００」）に対応するエントリデータ４０９６個に対してアドレス情報（Hit Index）は、１６進数標記で「０００００−００ＦＦＦ」にそれぞれ割り当てられることになる。
【０１６７】
次に、物理アドレスとしてブロック番号Ｂｌｋ＃００１のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００１」を割り当て、エントリデータのサイズ（ＤＢＷ）として８０ビットに設定した場合が示されている。
【０１６８】
この場合、ブロック番号Ｂｌｋ＃００１（論理ブロックアドレス「００１」）に対応する４０９６個に対してアドレス情報（Hit Index）は、１６進数標記で「０１０００−０１ＦＦＦ」にそれぞれ割り当てられることになる。
【０１６９】
次に、物理アドレスとしてブロック番号Ｂｌｋ＃００２のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００２」を割り当て、エントリデータのサイズ（ＤＢＷ）として８０ビットに設定した場合が示されている。
【０１７０】
この場合、ブロック番号Ｂｌｋ＃００２（論理ブロックアドレス「００２」）に対応する４０９６個に対してアドレス情報（Hit Index）は、１６進数標記で「０２０００−０２ＦＦＦ」にそれぞれ割り当てられることになる。
【０１７１】
次に、物理アドレスとしてブロック番号Ｂｌｋ＃００３のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００３」を割り当て、エントリデータのサイズ（ＤＢＷ）として８０ビットに設定した場合が示されている。
【０１７２】
この場合、ブロック番号Ｂｌｋ＃００３（論理ブロックアドレス「００３」）に対応する４０９６個に対してアドレス情報（Hit Index）は、１６進数標記で「０３０００−０３ＦＦＦ」にそれぞれ割り当てられることになる。
【０１７３】
この場合、各セグメント１２に対応して設けられるレジスタ１６には、初期設定時に、管理テーブルに基づいて論理ブロックアアドレスの値と、エントリデータのサイズに関する情報とが格納される。
【０１７４】
変換回路１７＃は、レジスタ１６＃に格納されている情報と、プライオリティエンコーダ１５から出力されるローカルアドレスＬＡとに基づいてアドレス情報（Hit Index）を出力する。すなわち、変換回路１７＃は、レジスタ１６＃に格納されている論理ブロックアドレスとプライオリティエンコーダ１５から出力されるローカルアドレスＬＡとからなるアドレスデータを、実施形態１と同様の方式を用いて、連続したアドレス空間になるように変換する。
【０１７５】
例えば、エントリデータのサイズ（ＤＢＷ）が８０ビットに設定される検索ユニット８１に含まれるセグメント１２とそれに対応するレジスタ１６＃および変換回路１７＃について説明する。
【０１７６】
例えば、図１３で説明したレジスタ１６＃−０には、論理ブロックアドレス「０００」と、エントリデータのサイズ情報「ＤＢＷ８０」とが格納される。
【０１７７】
変換回路１７＃−０は、レジスタ１６＃−０に格納されるエントリデータのサイズ情報「ＤＢＷ８０」に基づいて、レジスタ１６＃−０に格納される論理ブロックアドレス「０００」と、プライオリティエンコーダ１５−０から出力されるローカルアドレスからなるアドレスデータを再設定する。
【０１７８】
その結果、変換回路１７＃−０は、アドレス情報（Hit Index）として割り当てられた「０００００−００ＦＦＦ」のうちの１つの値に変換したアドレス情報として出力する。
【０１７９】
同様に、レジスタ１６＃−１〜１６＃−３には、論理ブロックアドレス「００１」〜「００３」と、エントリデータのサイズ情報「ＤＢＷ８０」とがそれぞれ格納される。
【０１８０】
変換回路１７＃−１〜１７＃−３は、レジスタ１６＃−１〜１６＃−３にそれぞれ格納される論理ブロックアドレス「００１」〜「００３」と、エントリデータのサイズ情報「ＤＢＷ８０」とに基づいて、プライオリティエンコーダ１５−１〜１５−３からそれぞれ出力されるアドレスデータを再設定する。
【０１８１】
変換回路１７＃−１は、プライオリティエンコーダ１５−１から出力されるアドレスデータをアドレス情報（Hit Index）として割り当てられた「０１０００−０１ＦＦＦ」のうちの１つの値に変換したアドレス情報として出力する。
【０１８２】
変換回路１７＃−２は、プライオリティエンコーダ１５−２から出力されるアドレスデータをアドレス情報（Hit Index）として割り当てられた「０２０００−０２ＦＦＦ」のうちの１つの値に変換したアドレス情報として出力する。
【０１８３】
変換回路１７＃−３は、プライオリティエンコーダ１５−３から出力されるアドレスデータをアドレス情報（Hit Index）として割り当てられた「０３０００−０３ＦＦＦ」のうちの１つの値に変換したアドレス情報として出力する。
【０１８４】
このように、各レジスタ＃１６に論理ブロックアドレスを設定することによって、物理ブロックアドレスに関わらず、検索ユニット８１から出力されるアドレス情報（Hit Index）を、エントリデータのサイズに基づくアドレス空間において連続させることが可能である。
【０１８５】
同様にして、エントリデータのサイズ（ＤＢＷ）として１６０ビットに設定された最初のセグメント１２の最初の論理ブロックアドレスは、「０００」に設定される。
【０１８６】
物理アドレスとしてブロック番号Ｂｌｋ＃００４のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「０００」を割り当て、エントリデータのサイズ（ＤＢＷ）として１６０ビットに設定した場合が示されている。
【０１８７】
この場合、ブロック番号Ｂｌｋ＃００４（論理ブロックアドレス「０００」）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、１６進数標記で「０００００−００７ＦＦ」にそれぞれ割り当てられる。
【０１８８】
次に、物理アドレスとしてブロック番号Ｂｌｋ＃００５のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００１」を割り当て、エントリデータのサイズ（ＤＢＷ）として１６０ビットに設定した場合が示されている。
【０１８９】
この場合、ブロック番号Ｂｌｋ＃００５（論理ブロックアドレス「００１」）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、１６進数標記で「００８００−００ＦＦＦ」にそれぞれ割り当てられる。
【０１９０】
エントリデータのサイズ（ＤＢＷ）として３２０ビットに設定された最初のセグメント１２の最初の論理ブロックアドレスは、「０００」に設定される。
【０１９１】
物理アドレスとしてブロック番号Ｂｌｋ＃００６のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「０００」を割り当て、エントリデータのサイズ（ＤＢＷ）として３２０ビットに設定した場合が示されている。
【０１９２】
この場合、ブロック番号Ｂｌｋ＃００６（論理ブロックアドレス「０００」）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１６進数標記で「０００００−００３ＦＦ」にそれぞれ割り当てられる。
【０１９３】
物理アドレスとしてブロック番号Ｂｌｋ＃００７のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００１」を割り当て、エントリデータのサイズ（ＤＢＷ）として３２０ビットに設定した場合が示されている。
【０１９４】
この場合、ブロック番号Ｂｌｋ＃００７（論理ブロックアドレス「００１」）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１６進数標記で「００４００−００７ＦＦ」にそれぞれ割り当てられる。
【０１９５】
物理アドレスとしてブロック番号Ｂｌｋ＃００８のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００２」を割り当て、エントリデータのサイズ（ＤＢＷ）として３２０ビットに設定した場合が示されている。
【０１９６】
この場合、ブロック番号Ｂｌｋ＃００８（論理ブロックアドレス「００２」）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１６進数標記で「００８００−００ＢＦＦ」にそれぞれ割り当てられる。
【０１９７】
物理アドレスとしてブロック番号Ｂｌｋ＃００９のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００３」を割り当て、エントリデータのサイズ（ＤＢＷ）として３２０ビットに設定した場合が示されている。
【０１９８】
この場合、ブロック番号Ｂｌｋ＃００９（論理ブロックアドレス「００３」）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１６進数標記で「００Ｃ００−００ＦＦＦ」に割り当てられる。
【０１９９】
物理アドレスとしてブロック番号Ｂｌｋ＃００Ａのセグメント１２に対して論理ブロックアドレスとして１６進数標記で「０００」を割り当て、エントリデータのサイズ（ＤＢＷ）として６４０ビットに設定した場合が示されている。
【０２００】
この場合、ブロック番号Ｂｌｋ＃００Ａ（論理ブロックアドレス「０００」）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１６進数標記で「０００００−００１ＦＦ」にそれぞれ割り当てられる。
【０２０１】
物理アドレスとしてブロック番号Ｂｌｋ＃００Ｂのセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００１」を割り当て、エントリデータのサイズ（ＤＢＷ）として６４０ビットに設定した場合が示されている。
【０２０２】
この場合、ブロック番号Ｂｌｋ＃００Ｂ（論理ブロックアドレス「００１」）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１６進数標記で「００２００−００３ＦＦ」にそれぞれ割り当てられる。
【０２０３】
当該方式により、各検索ユニット８１〜８４から出力されるアドレス情報（Hit Index）は、エントリデータのサイズに基づくアドレス空間において連続している。具体的には、エントリデータのサイズ毎に、エントリデータに対応するアドレス情報が連続的になるように再設定されたアドレス情報が出力される。
【０２０４】
したがって、実施形態２に基づく方式により、物理ブロックアドレスが連続していない場合であっても、アドレス情報における隙間（空き領域）は無くなり、アドレス情報は連続しているため検索メモリを管理する管理側の負荷を軽減することが可能である。
【０２０５】
また、検索メモリの検索機能を拡張する場合にも当該方式は有利である。
例えば、エントリデータのサイズ（ＤＢＷ）として１６０ビットのデータを追加する場合について考える。
【０２０６】
本例においては、物理アドレスとしてブロック番号Ｂｌｋ＃１００のセグメント１２をエントリデータのサイズが１６０ビットのセグメントとして追加設定する。追加設定されたセグメントの物理ブロックアドレス番号ＢＬＫ＃１００は、すでにエントリデータのサイズとして１６０ビットが設定されたセグメントの物理ブロックアドレスＢＬＫ＃００５と連続していない。そのため、物理アドレスとしてブロック番号ＢＬＫ＃１００のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００２」を割り当て、エントリデータのサイズ（ＤＢＷ）として１６０ビットに設定する。
【０２０７】
この結果、ブロック番号Ｂｌｋ＃１００（論理ブロックアドレス「００２」）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、１６進数標記で、物理ブロックアドレス番号ＢＬＫ＃００５のセグメントから得られるアドレス情報（Hit Index）に続く「０１０００−０１７ＦＦ」にそれぞれ割り当てられる。
【０２０８】
同様に、物理アドレスとしてブロック番号Ｂｌｋ＃１０１のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００３」を割り当て、エントリデータのサイズ（ＤＢＷ）として１６０ビットに設定する。
【０２０９】
この結果、ブロック番号Ｂｌｋ＃１０１（論理ブロックアドレス「００３」）に対応するエントリデータ２０４８個に対してアドレス情報（Hit Index）は、１６進数標記で、物理ブロックアドレス番号ＢＬＫ＃１００のセグメントから得られるアドレス情報（Hit Index）に続く「０１８００−０１ＦＦＦ」にそれぞれ割り当てられる。
【０２１０】
本実施形態２の方式とは異なり、仮に論理アドレスを定義せずに、物理アドレスのみで管理する場合、アドレス情報の連続性を維持するためには、現在使用されている物理アドレスをシフトさせる必要が生じる。
【０２１１】
それによって、アドレスの割り付けを大幅に変更させる必要があり、検索メモリの再構築が煩雑となる。
【０２１２】
一方、本方式の如く、論理アドレスを定義することにより、物理アドレスをシフトさせることなく、論理アドレスとしてアドレス情報の連続性を維持することが容易に可能である。したがって、検索メモリの再構築も簡易に実行することが可能である。
【０２１３】
本例においては、エントリデータのサイズ（ＤＢＷ）として、６４０ビットのデータを追加する場合も示されている。
【０２１４】
本例においては、物理アドレスとしてブロック番号Ｂｌｋ＃１０２のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００２」を割り当て、エントリデータのサイズ（ＤＢＷ）として６４０ビットに設定する。
【０２１５】
この場合、ブロック番号Ｂｌｋ＃１０２（論理ブロックアドレス「００２」）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１６進数標記で「００４００−００５ＦＦ」にそれぞれ割り当てられる。
【０２１６】
次に、物理アドレスとしてブロック番号Ｂｌｋ＃１０３のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００３」を割り当て、エントリデータのサイズ（ＤＢＷ）として６４０ビットに設定する。
【０２１７】
この場合、ブロック番号Ｂｌｋ＃１０３（論理ブロックアドレス「００３」）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１６進数標記で「００６００−００７ＦＦ」にそれぞれ割り当てられる。
【０２１８】
次に、物理アドレスとしてブロック番号Ｂｌｋ＃１０４のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００４」を割り当て、エントリデータのサイズ（ＤＢＷ）として６４０ビットに設定する。
【０２１９】
この場合、ブロック番号Ｂｌｋ＃１０４（論理ブロックアドレス「００４」）に対応するエントリデータ５１２個に対してアドレス情報（Hit Index）は、１６進数標記で「００８００−００９ＦＦ」にそれぞれ割り当てられる。
【０２２０】
また、本例においては、エントリデータのサイズ（ＤＢＷ）として、３２０ビットのデータを追加する場合も示されている。
【０２２１】
本例においては、物理アドレスとしてブロック番号Ｂｌｋ＃１０５のセグメント１２に対して論理ブロックアドレスとして１６進数標記で「００４」を割り当て、エントリデータのサイズ（ＤＢＷ）として３２０ビットに設定する。
【０２２２】
この場合、ブロック番号Ｂｌｋ＃１０５（論理）ブロックアドレス「００４」）に対応するエントリデータ１０２４個に対してアドレス情報（Hit Index）は、１６進数標記で「０１０００−０１３ＦＦ」にそれぞれ割り当てられる。
【０２２３】
この場合においても、論理アドレスとしてアドレス情報の連続性を維持することが容易に可能であるため検索メモリの再構築も簡易に実行することが可能である。
【０２２４】
さらには、検索メモリを管理するシステムでは、ある一定期間でアクセスされないエントリデータを削除する等のメンテナンス動作を実行する場合がある。
【０２２５】
その場合に、初期設定にて定義されたブロックがメンテナンス動作によって不要となった場合に、当初連続して定義したはずのメモリ空間が、歯抜け状態のアドレス情報に変化してしまうことがある。
【０２２６】
そのような状態になった場合、アドレス情報の連続性を維持するためには従来の方式では、検索メモリに含まれている全てのブロックに対するアドレス情報の割り付けを再構築する必要であったが、本方式を用いることにより、削除が必要になったブロックの論理ブロックアドレスを削除すれば良い。たとえば、エントリデータのサイズ（ＤＢＷ）として８０ビットに設定されたブロックの一部が削除された場合には、当該エントリデータのサイズ（ＤＢＷ）が８０ビットに設定されたブロック群のアドレス情報の再構築をすれば良く、他のエントリデータのサイズに関するアドレス情報は、そのまま維持することが可能であるためメンテナンス動作も簡易に実行することが可能である。
【０２２７】
このような、自由度の高いアドレス情報の割り付けが実現できることで、検索メモリの再構築にかかる時間を大幅に改善することで処理性能の向上ができるだけでなく、不要なデータのやり取りをなくすことで消費電力の削減も可能となる。
【０２２８】
（実施形態３）
図１６は、実施形態３に基づく検索ユニット８１〜８４にそれぞれ含まれる複数のセグメント（サブブロック）１２の構成を説明する図である。
【０２２９】
図１６を参照して、図５の構成と比較して、複数の合成回路２７−０〜２７（Ｎ−１）と、複数のセレクタＳＬ０〜ＳＬ（Ｎ−１）と、レジスタ１９とをさらに設けた点が異なる。セレクタＳＬ０〜ＳＬ（Ｎ−１）を総称してセレクタＳＬとも称する。
【０２３０】
その他の構成については実施形態１の図５で説明したのと同様であるのでその詳細な説明については繰り返さない。
【０２３１】
合成回路２７−０〜２７（Ｎ−１）は、プライオリティエンコーダ１５−０〜１５−Ｎからそれぞれ出力されるアドレスデータと、レジスタ１６−０〜１６（Ｎ−１）にそれぞれ格納されているブロックアドレスとを合成したアドレス情報を出力する。
【０２３２】
セレクタＳＬ０〜ＳＬ（Ｎ−１）は、レジスタ１９に格納されているデータに従って出力を切り替える。たとえば、レジスタ１９にデータ「０」が格納されている場合には、合成回路２７−０〜２７（Ｎ−１）から出力されるビットシフトされていないアドレス情報がグローバルプライオリティエンコーダ１８に出力される。
【０２３３】
一方、レジスタ１９にデータ「１」が格納されている場合には、変換回路１７から出力されるビットシフトされたアドレス情報がグローバルプライオリティエンコーダ１８に出力される。
【０２３４】
したがって、ビットシフトされたアドレス情報ではなく、ビットシフトされていないアドレス情報をそのまま使用する場合には、レジスタ１９に「０」を格納する。一方、論理アドレスを使用する場合には、レジスタ１９に「１」を格納する。
【０２３５】
当該構成により、物理アドレスの使用と、再設定された論理アドレスの使用とを切り替えることが可能であり、汎用性がさらに向上する。
【０２３６】
図１７は、実施形態３の変形例に基づく検索ユニット８１〜８４にそれぞれ含まれる複数のセグメント（サブブロック）１２の構成を説明する図である。
【０２３７】
図１７を参照して、図１３の構成と比較して、複数の合成回路２７−０〜２７（Ｎ−１）と、複数のレジスタ２６＃−０〜２６＃−（Ｎ−１）と、複数のセレクタＳＬ０〜ＳＬ（Ｎ−１）と、レジスタ１９とをさらに設けた点が異なる。
【０２３８】
その他の構成については実施形態２の図１３で説明したのと同様であるのでその詳細な説明については繰り返さない。
【０２３９】
レジスタ２６＃−０〜２６＃−（Ｎ−１）は、それぞれ物理的なブロックアドレスを格納する。
【０２４０】
合成回路２７＃−０〜２７＃（Ｎ−１）は、プライオリティエンコーダ１５−０〜１５−Ｎからそれぞれ出力されるアドレスデータと、レジスタ２６＃−０〜２６＃（Ｎ−１）にそれぞれ格納されているブロックアドレスとを合成したアドレス情報を出力する。
【０２４１】
セレクタＳＬ０〜ＳＬ（Ｎ−１）は、レジスタ１９に格納されているデータに従って出力を切り替える。たとえば、レジスタ１９にデータ「０」が格納されている場合には、合成回路２７＃−０〜２７＃（Ｎ−１）から出力される物理的なブロックアドレスとローカルアドレスとを合成したアドレス情報がグローバルプライオリティエンコーダ１８に出力される。
【０２４２】
一方、レジスタ１９にデータ「１」が格納されている場合には、変換回路１７＃−０〜１７＃−（Ｎ−１）から出力されるデータがグローバルプライオリティエンコーダ１８に出力される。
【０２４３】
したがって、論理アドレスではなく、物理的なブロックアドレスとローカルアドレスとを合成したアドレス情報をそのまま使用する場合には、レジスタ１９に「０」を格納する。一方、論理アドレスを使用する場合には、レジスタ１９に「１」を格納する。
【０２４４】
当該構成により、物理アドレスの使用と、論理アドレスの使用とを切り替えることが可能であり、汎用性がさらに向上する。
【０２４５】
なお、合成回路に物理的なブロックアドレスを供給するものは、物理的なブロックアドレスを示すユニークな固定値を供給するものであればどのようなものでもよく、レジスタに限定されるものではない。
【０２４６】
（実施形態４）
図１８は、実施形態４に基づく検索システムについて説明する図である。
【０２４７】
図１８を参照して、実施形態４においては複数の検索メモリを搭載する検索システムについて説明する。具体的には、検索メモリが搭載されたチップが複数個設けられている。
【０２４８】
また、本例においては、独立した複数のチップを１つの検索メモリとして検索可能な検索システムについて説明する。ここでは、複数のチップが多段接続（カスケード接続）される場合について説明する。
【０２４９】
図１８（Ａ）を参照して、検索メモリ８Ａと、検索メモリ８Ｂとがカスケード接続されている。
【０２５０】
転送制御回路４からサーチデータが検索メモリ８Ａに入力される。検索メモリ８Ａは、サーチデータに従うサーチ動作を実行するとともに、サーチデータを検索メモリ８Ｂに転送する。
【０２５１】
検索メモリ８Ｂは、検索メモリ８Ａから転送されたサーチデータに従うサーチ動作を実行する。
【０２５２】
検索メモリ８Ｂは、サーチ結果であるアドレス情報（Hit Index）を検索メモリ８Ａに出力する。
【０２５３】
検索メモリ８Ａは、サーチ動作に従うサーチ結果と、検索メモリ８Ｂから入力されたサーチ結果とに基づいて最終的なサーチ結果であるアドレス情報（Hit Index）を転送制御回路４に出力する。
【０２５４】
図１８（Ｂ）を参照して、別の方式で検索メモリ８Ａと、検索メモリ８Ｂとがカスケード接続されている。
【０２５５】
転送制御回路４からサーチデータが検索メモリ８Ａに入力される。検索メモリ８Ａは、サーチデータに従うサーチ動作を実行するとともに、サーチデータを検索メモリ８Ｂに転送する。
【０２５６】
また、検索メモリ８Ａは、サーチ結果であるアドレス情報（Hit Index）を検索メモリ８Ｂに出力する。
【０２５７】
検索メモリ８Ｂは、検索メモリ８Ａから転送されたサーチデータに従うサーチ動作を実行する。
【０２５８】
検索メモリ８Ｂは、サーチ動作に従うサーチ結果と、検索メモリ８Ａから入力されたサーチ結果とに基づいて最終的なサーチ結果であるアドレス情報（Hit Index）を転送制御回路４に出力する。
【０２５９】
図１９は、実施形態４に基づく検索メモリ８Ａ，８Ｂの構成を説明する図である。
図１９を参照して、検索メモリ８Ａは、ＡＮＤ回路ＡＤ０，ＡＤ１と、ブロック群１１０と、ＰＥ群１２０と、変換回路群１３０と、レジスタ群１４０と、グローバルプライオリティエンコーダ（ＧＰＥ）１５０とを含む。
【０２６０】
検索メモリ８Ｂは、ＡＮＤ回路ＡＤ２，ＡＤ３と、ブロック群２１０と、ＰＥ群２２０と、変換回路群２３０と、レジスタ群２４０と、グローバルプライオリティエンコーダ（ＧＰＥ）２５０とを含む。
【０２６１】
ＡＮＤ回路ＡＤ０は、カスケード接続信号ｃａｓ＿ｏｎと、入力端子Ｒｘ０に入力されるサーチデータとの入力に基づいてサーチデータを後段に転送するか否かを設定する。
【０２６２】
カスケード接続信号ｃａｓ＿ｏｎが“１”の場合には、後段の回路にサーチデータを転送する。一方、カスケード接続信号ｃａｓ＿ｏｎが“０”の場合には、後段の回路にサーチデータを転送しない。
【０２６３】
本例の場合には、カスケード接続信号ｃａｓ＿ｏｎが“１”の場合であるので、後段の検索メモリ８Ｂにサーチデータを転送する。具体的には、検索メモリ８Ａの出力端子Ｔｘ０から検索メモリ８Ｂの入力端子Ｒｘに対してサーチデータが出力される。
【０２６４】
ＡＮＤ回路ＡＤ１は、カスケード接続信号ｃａｓ＿ｏｎと、入力端子Ｒｘ１に入力されるサーチ結果の入力とに基づいてサーチ結果をグローバルプライオリティエンコーダ（ＧＰＥ）１５０に出力するか否かを設定する。
【０２６５】
カスケード接続信号ｃａｓ＿ｏｎが“１”の場合には、グローバルプライオリティエンコーダ（ＧＰＥ）１５０にサーチ結果を入力する。一方、カスケード接続信号ｃａｓ＿ｏｎが“０”の場合には、グローバルプライオリティエンコーダ（ＧＰＥ）１５０にサーチ結果を入力しない。
【０２６６】
本例の場合には、カスケード接続信号ｃａｓ＿ｏｎが“１”の場合であるので、検索メモリ８Ｂからのサーチ結果を受け付けて、グローバルプライオリティエンコーダ（ＧＰＥ）１５０に入力する。具体的には、検索メモリ８Ｂの出力端子Ｔｘ３から検索メモリ８Ａの入力端子Ｒｘ１に対して出力されたサーチ結果を受け付ける。
【０２６７】
ブロック群１１０は、複数のセグメントを含む。ブロック番号は物理アドレス［８：０］で定義される。本例の場合には１０進数標記でブロック番号ＢＬＫ＃「０〜５１１」にそれぞれ割り当てられている。
【０２６８】
ＰＥ群１１０は、複数のセグメントにそれぞれ対応して設けられた複数のプライオリティエンコーダ１５を含む。
【０２６９】
変換回路群１２０は、複数のセグメントにそれぞれ対応して設けられた複数の変換回路１７を含む。
【０２７０】
レジスタ群１３０は、複数のセグメントにそれぞれ対応して設けられた複数のレジスタ１６を含む。
【０２７１】
グローバルプライオリティエンコーダ（ＧＰＥ）１５０は、複数の変換回路１７の出力を受けて優先度の高いアドレス情報を最終的に出力する。その際、グローバルプライオリティエンコーダ（ＧＰＥ）１５０は、検索メモリ８Ｂからのサーチ結果が入力される場合には、当該検索メモリ８Ｂのサーチ結果も考慮したアドレス情報を最終的に出力する。
【０２７２】
ＡＮＤ回路ＡＤ２は、カスケード接続信号ｃａｓ＿ｏｎと、入力端子Ｒｘ２に入力されるサーチデータとの入力に基づいてサーチデータを後段に転送するか否かを設定する。
【０２７３】
カスケード接続信号ｃａｓ＿ｏｎが“１”の場合には、後段の回路にサーチデータを転送する。一方、カスケード接続信号ｃａｓ＿ｏｎが“０”の場合には、後段の回路にサーチデータを転送しない。
【０２７４】
本例の場合には、カスケード接続信号ｃａｓ＿ｏｎが“０”の場合であるので、後段の回路にサーチデータを転送しない。
【０２７５】
ＡＮＤ回路ＡＤ３は、カスケード接続信号ｃａｓ＿ｏｎと、入力端子Ｒｘ３に入力されるサーチ結果の入力とに基づいてサーチ結果をグローバルプライオリティエンコーダ（ＧＰＥ）１５０に出力するか否かを設定する。
【０２７６】
カスケード接続信号ｃａｓ＿ｏｎが“１”の場合には、グローバルプライオリティエンコーダ（ＧＰＥ）２５０にサーチ結果を入力する。一方、カスケード接続信号ｃａｓ＿ｏｎが“０”の場合には、グローバルプライオリティエンコーダ（ＧＰＥ）２５０にサーチ結果を入力しない。
【０２７７】
本例の場合には、カスケード接続信号ｃａｓ＿ｏｎが“０”の場合であるので、グローバルプライオリティエンコーダ（ＧＰＥ）２５０にサーチ結果を入力しない。
【０２７８】
ブロック群２１０は、複数のセグメント１２を含む。ブロック番号は物理アドレス［８：０］で定義される。本例の場合には１０進数標記でブロック番号ＢＬＫ＃「０〜５１１」にそれぞれ割り当てられている。
【０２７９】
ＰＥ群２１０は、複数のセグメント１２にそれぞれ対応して設けられた複数のプライオリティエンコーダ１５を含む。
【０２８０】
変換回路群２２０は、複数のセグメント１２にそれぞれ対応して設けられた複数の変換回路１７＃を含む。
【０２８１】
レジスタ群２３０は、複数のセグメント１２にそれぞれ対応して設けられた複数のレジスタ１６＃を含む。
【０２８２】
グローバルプライオリティエンコーダ（ＧＰＥ）２５０は、複数の変換回路１７＃の出力を受けて優先度の高いアドレス情報を最終的に出力する。その際、グローバルプライオリティエンコーダ（ＧＰＥ）２５０は、他のカスケード接続されたサーチ結果が入力される場合には、当該検索メモリ８Ｂのサーチ結果も考慮したアドレス情報を最終的に出力する。
【０２８３】
再び図１８を参照して、実施形態４においては、図１３で説明したように各検索メモリ８Ａ，８Ｂに含まれる複数のセグメント１２を用いてエントリデータのサイズ（ＤＢＷ）として８０ビット、１６０ビット、３２０ビット毎の検索ユニットを形成する。
【０２８４】
そして、実施形態２で説明したように物理アドレスとして設定されているブロックアドレスをエントリデータサイズ毎の論理ブロックアドレスに変換して、管理する。
【０２８５】
具体的には、論理ブロックアドレスと、エントリデータのサイズ情報を各レジスタ１６＃に格納する。なお、本例の場合には、検索メモリ８Ａ，８Ｂに含まれる総合計のセグメント１２の個数が１０２４個である。したがって、論理ブロックアドレスとしては、図１５で説明したようにエントリデータのサイズ毎に、１０進数標記で［９：０］にそれぞれ割り当てる。
【０２８６】
そして、実施形態２で説明した方式に従って、論理ブロックアドレスに対応するエントリデータの個数に対してアドレス情報をそれぞれ割り当てる。
【０２８７】
当該方式により、各検索ユニットから出力されるアドレス情報（Hit Index）は、エントリデータのサイズに基づくアドレス空間において連続している。エントリデータのサイズ毎に、エントリデータに対応するアドレス情報が連続的になるように再設定されたアドレス情報が出力される。
【０２８８】
これにより検索メモリ８Ａ，８Ｂに含まれている複数のセグメント１２を１つの検索メモリとして扱うことが可能となる。
【０２８９】
したがって、複数のチップ間にサイズが異なるエントリデータが含まれる場合であっても、アドレス情報は連続しているため検索メモリを管理する管理側（システム側）の負荷を軽減することが可能である。
【０２９０】
図２０は、実施形態４に基づく検索メモリ８Ｃ，８Ｄの構成を説明する図である。
図２０を参照して、検索メモリ８Ｃは、検索メモリ８Ａと比較して、ＡＮＤ回路ＡＤ１が設けられていない点が異なる。また、検索メモリ８Ｄは、検索メモリ８Ｂと比較して、ＡＮＤ回路ＡＤ３が設けられていない点が異なる。その他の構成については、図１９で説明した検索メモリ８Ａ，８Ｂの構成と同様であるのでその詳細な説明については繰り返さない。
【０２９１】
ＡＮＤ回路ＡＤ０は、カスケード接続信号ｃａｓ＿ｏｎと、入力端子Ｒｘ０に入力されるサーチデータとの入力に基づいてサーチデータを後段に転送するか否かを設定する。
【０２９２】
カスケード接続信号ｃａｓ＿ｏｎが“１”の場合には、後段の回路にサーチデータを転送する。一方、カスケード接続信号ｃａｓ＿ｏｎが“０”の場合には、後段の回路にサーチデータを転送しない。
【０２９３】
本例の場合には、カスケード接続信号ｃａｓ＿ｏｎが“１”の場合であるので、後段の検索メモリ８Ｄにサーチデータを転送する。具体的には、検索メモリ８Ｃの出力端子Ｔｘ０から検索メモリ８Ｄの入力端子Ｒｘ２に対してサーチデータが出力される。
【０２９４】
グローバルプライオリティエンコーダ（ＧＰＥ）１５０は、サーチ結果を出力端子ＣＴｘ０から出力する。
【０２９５】
ＡＮＤ回路ＡＤ２は、カスケード接続信号ｃａｓ＿ｏｎと、入力端子Ｒｘ２に入力されるサーチデータとの入力に基づいてサーチデータを後段に転送するか否かを設定する。
【０２９６】
カスケード接続信号ｃａｓ＿ｏｎが“１”の場合には、後段の回路にサーチデータを転送する。一方、カスケード接続信号ｃａｓ＿ｏｎが“０”の場合には、後段の回路にサーチデータを転送しない。
【０２９７】
本例の場合には、カスケード接続信号ｃａｓ＿ｏｎが“０”の場合であるので、後段の回路にサーチデータを転送しない。
【０２９８】
グローバルプライオリティエンコーダ（ＧＰＥ）２５０は、複数の変換回路１７＃の出力を受けて優先度の高いアドレス情報を最終的に出力する。その際、グローバルプライオリティエンコーダ（ＧＰＥ）２５０は、他のカスケード接続されたサーチ結果が入力される場合には、当該検索メモリ８Ｃのサーチ結果も考慮したアドレス情報を最終的に出力する。
【０２９９】
本例の場合には、入力端子ＣＲｘ１から検索メモリ８Ｃのサーチ結果が入力される。
したがって、グローバルプライオリティエンコーダ（ＧＰＥ）２５０は、検索メモリ８Ｃのサーチ結果も考慮したアドレス情報を最終的に出力端子ＣＴｘ１から出力する。
【０３００】
出力端子ＣＴｘ１から転送制御回路４にアドレス情報が出力される。
図１８を参照して、実施形態４においては、図１３で説明したように各検索メモリ８Ｃ，８Ｄに含まれる複数のセグメント１２を用いてエントリデータのサイズ（ＤＢＷ）として８０ビット、１６０ビット、３２０ビット毎の検索ユニットを形成する。
【０３０１】
そして、実施形態２で説明したように物理アドレスとして設定されているブロックアドレスをエントリデータサイズ毎の論理ブロックアドレスに変換して、管理する。
【０３０２】
具体的には、論理ブロックアドレスと、エントリデータのサイズ情報を各レジスタ１６＃に格納する。なお、本例の場合には、検索メモリ８Ｃ，８Ｄに含まれる総合計のセグメント１２の個数が１０２４個である。したがって、論理ブロックアドレスとしては、図１５で説明したようにエントリデータのサイズ毎に、１０進数標記で［９：０］にそれぞれ割り当てる。
【０３０３】
そして、実施形態２で説明した方式に従って、論理ブロックアドレスに対応するエントリデータの個数に対してアドレス情報をそれぞれ割り当てる。
【０３０４】
当該方式により、各検索ユニットから出力されるアドレス情報（Hit Index）は、エントリデータのサイズに基づくアドレス空間において連続している。エントリデータのサイズ毎に、エントリデータに対応するアドレス情報が連続的になるように再設定されたアドレス情報が出力される。
【０３０５】
これにより検索メモリ８Ｃ，８Ｄに含まれている複数のセグメント１２を１つの検索メモリとして扱うことが可能となる。
【０３０６】
したがって、複数のチップ間にサイズが異なるエントリデータが含まれる場合であっても、アドレス情報は連続しているため検索メモリを管理する管理側（システム側）の負荷を軽減することが可能である。
【０３０７】
以上、本開示を実施形態に基づき具体的に説明したが、本開示は、実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０３０８】
１  通信機器、４  転送制御回路、６  汎用メモリ、８，８Ａ，８Ｂ，８Ｃ，８Ｄ  検索メモリ、１１  ＲＡＭセル、１２  セグメント、１３  データ比較部、１５  プライオリティエンコーダ、１６，１９，２６＃  レジスタ、１７  変換回路、１８  グローバルプライオリティエンコーダ、２０  セルアレイ、２１  書込ドライバ、２２  サーチ線ドライバ、２３  マッチアンプ部、２４  制御論理回路、２５  読出回路、２７，２７＃  合成回路、８１，８２，８３，８４  検索ユニット。
【図１】
2019114311.tif 000003
【図２】
2019114311.tif 000004
【図３】
2019114311.tif 000005
【図４】
2019114311.tif 000006
【図５】
2019114311.tif 000007
【図６】
2019114311.tif 000008
【図７】
2019114311.tif 000009
【図８】
2019114311.tif 000010
【図９】
2019114311.tif 000011
【図１０】
2019114311.tif 000012
【図１１】
2019114311.tif 000013
【図１２】
2019114311.tif 000014
【図１３】
2019114311.tif 000015
【図１４】
2019114311.tif 000016
【図１５】
2019114311.tif 000017
【図１６】
2019114311.tif 000018
【図１７】
2019114311.tif 000019
【図１８】
2019114311.tif 000020
【図１９】
2019114311.tif 000021
【図２０】
2019114311.tif 000022