"複数のバンクを含み、検索対象のIPアドレスを格納するメモリアレイを備え、前記メモリアレイは、可変数のバンクからなる複数のブロックを含み、同一のブロックのバンクにはプリフィックスが同一のIPアドレスが格納され、IPアドレスを検索データとして受けて、前記検索データと同一のIPアドレスがいずれのブロックに格納されているかをプリサーチするプリ検索部と、前記プリサーチによって特定されたブロックから読み出されたIPアドレスと前記検索データとを比較する検索判定部とをさらに備えた、内容参照メモリ。未使用バンクを表わす情報を保持するFIFOメモリを含みバンク管理部をさらに備え、前記バンク管理部は、初期状態では、前記メモリアレイに含まれるすべてのバンクを表わす情報を前記FIFOメモリに格納し、前記IPアドレスをメモリアレイの未使用のバンクに書込み必要が生じた際には、前記FIFOメモリから未使用バンクを表わす情報を読み出して、読み出した情報に基づいて、前記未使用バンクを前記IPアドレスを書込むバンクとして割り当てる、請求項1記載の内容参照メモリ。ブロックに対応して、属するバンクを表わす情報を記憶するレジスタ群と、前記バンク管理部によって新たに割り当てられたバンクを前記IPアドレスのプリフィックスに基づいて、いずれのブロックに属するかを特定して、特定されたブロックに対応する前記レジスタ群に前記新たに割り当てられたバンクを表わす情報を格納するブロック管理部とをさらに備えた、請求項2記載の内容参照メモリ。各バンクは、複数のエントリを含み、ブロックごとに、前記ブロックに属する書込対象のバンクのエントリの位置を示すアドレスカウンタと、書込み時に、前記書込対象のバンクが属するブロックの前記アドレスカウンタで示されるエントリの位置に前記IPアドレスを書込み、その後前記アドレスカウンタの値を1だけ増加させる書込部とをさらに備えた、請求項3記載の内容参照メモリ。前記バンク内のエントリを消去する際に、前記バンクの使用領域の末尾のエントリに格納されているデータで、前記消去するエントリを上書きし、その後、前記バンクが属するブロックの前記アドレスカウンタの値を1だけ減少させる消去部をさらに備え、前記バンク管理部は、バンク内のすべてのエントリが消去された際に、前記消去されたバンクを表わす情報を前記FIFOメモリに格納する、請求項4記載の内容参照メモリ。ところで、CAMは、IPアドレスのプリフィックスごとにブロック化されることがある。プリフィックスが8ビットの場合、CAMは、256個のブロックに分割される。各ブロックには、同一のメモリ容量が与えられる。しかしながら、インターネット内を伝送するIPアドレスのプリフィックスは等しく平均化されるものではない。あるプリフィックスのIPアドレスについては、多種類が伝送されるが、別のプリフィックスのIPアドレスについては、少ない種類しか伝送されない場合がある。図14aは、IPアドレスの有効ビット長が24ビットの場合に、各プリフィックス上位8ビットごとに、インターネット上に伝送されるIPアドレスのビットパターンの種類を表わす図である。図14bは、IPアドレスの有効ビット長が23ビットの場合に、各プリフィックス上位8ビットごとに、インターネット上に伝送されるIPアドレスのビットパターンの種類を表わす図である。図14cは、IPアドレスの有効ビット長が18ビットの場合に、各プリフィックス上位8ビットごとに、インターネット上に伝送されるIPアドレスのビットパターンの種類を表わす図である。図14a~cに示すように、伝送されるIPアドレスのビットパターンの種類が多いプリフィックスもあれば、伝送されるIPアドレスのビットパターンの種類が少ないプリフィックスもあることがわかる。上述のような場合には、ブロックのメモリ容量が同一であるにもかかわらず、あるプリフィックスに対応するブロックには、多量のIPアドレスが書込まれるが、別のプリフィックスに対応するブロックには、少量のIPアドレスしか書込まれない状態となり、メモリの使用効率が低くなる。その結果、無駄に電力が消費されることになる。それゆえに、本発明の一実施形態の目的は、未使用の記憶領域の発生を低減することができる内容参照メモリを提供することである。本発明の一実施形態の内容参照メモリは、複数のバンクを含み、検索対象のIPアドレスを格納するメモリアレイを備え、メモリアレイは、可変数のバンクからなる複数のブロックを含み、同一のブロックのバンクにはプリフィックスが同一のIPアドレスが格納される。内容参照メモリは、IPアドレスを検索データとして受けて、検索データと同一のIPアドレスがいずれのブロックに格納されているかをプリサーチするプリ検索部と、プリサーチによって特定されたブロックから読み出されたIPアドレスと検索データとを比較する検索判定部とをさらに備える。本発明の一実施形態によれば、未使用の記憶領域の発生を低減することができる。以下、本発明の実施形態について、図面を用いて説明する。[第1の実施形態]図1は、本発明の実施の形態の半導体装置1を表わす図である。図1を参照して、この半導体装置1は、メモリアレイ2と、制御回路3とを備える。メモリアレイ2は、内部参照メモリセルCAMセルであるユニットセルUCが行列状に配列される。メモリアレイ2は、行を単位として複数のエントリに分割される。各エントリに対しては、対応のエントリ内のユニットセルUCが並列に結合されるマッチラインが設けられる。また、メモリアレイ2の列方向に、検索データを伝達するサーチライン対が設けられる。このサーチライン対とマッチラインの交差部に対応してユニットセルが設けられる。メモリアレイ2は、バンク1~バンクNのN個のバンクに分割される。各バンクは、図2aに示すように、エントリ1~エントリKのK個のエントリを有する。各エントリには、図2bに示すように、サーチ対象である32ビットのIPアドレス情報データと、32ビットのホップ先アドレスとが記憶される。各ブロックのバンクの数は可変であり、最大L個である。同一のブロックのバンクにはプリフィックス先頭の8ビットのネットワークアドレス部分が同一のネットワークアドレスが格納される。制御回路3は、ブロックi用制御回路10-ii=1~256と、バンク管理部4と、プリサーチ回路5と、検索判定部14と、ブロック管理部93、書込部95と、消去部94とを備える。各ブロックi用制御回路10-iは、ブロック化支援回路13と、アドレスカウンタ101とを備える。ブロック化支援回路13は、対応するブロックに属するバンクのアドレスを記憶するバンクアドレスレジスタ群を含む。アドレスカウンタ101は、対応のブロックに属する書込対象のバンクのエントリの位置を指示する。プリサーチ回路5は、外部から与えられる検索データ32ビットのIPアドレスのプリフィックス部分である先頭の8ビットに基づいて、検索データがブロック1~ブロック256のいずれに属するかを判定する。検索判定部14は、プリサーチによって特定されたブロックの各エントリからデータを読み出して、読み出したデータに含まれるIPアドレスと検索データとを比較して、一致した場合に、そのIPアドレスとともに読み出されたホップ先アドレスを出力する。バンク管理部4は、未使用バンクを表わす情報を保持するバンクFIFOFirstInFirstOutメモリ91を含む。バンク管理部4は、初期状態では、メモリアレイ2に含まれるすべてのバンクのアドレスをFIFOメモリ91に格納する。バンク管理部4は、IPアドレスをメモリアレイ2の未使用のバンクに書込み必要が生じた際には、FIFOメモリ91から未使用バンクのアドレスを読み出して、読み出した情報に基づいて、未使用バンクをIPアドレスを書込むバンクとして割り当てる。ここで、IPアドレスをメモリアレイ2の未使用のバンクに書込み必要が生じる場合とは、IPアドレスの書込みを指示された場合において、書込み中使用中のバンクの未使用領域がなくなった場合すなわち、全エントリが使用されているときである。また、バンク管理部4は、バンク内のすべてのエントリが消去された際に、消去されたバンクのアドレスをFIFOメモリ91に格納する。ブロック管理部93は、バンク管理部4によって新たに割り当てられたバンクをIPアドレスのプリフィックスに基づいて、いずれのブロックに属するかを特定する。ブロック管理部93は、特定されたブロックに対応するブロック化支援回路13に含まれるバンクアドレスレジスタ群に新たに割り当てられたバンクのアドレスを格納する。書込部95は、書込み時に、書込対象のバンクが属するブロックのアドレスカウンタ101で示されるエントリの位置にIPアドレスを書込み、その後、そのアドレスカウンタ101の値を1だけ増加させる。消去部94は、バンク内のエントリを消去する際に、バンクの使用領域の末尾のエントリに格納されているデータで、消去するエントリを上書きし、その後、バンクが属するブロックのアドレスカウンタ101の値を1だけ減少させる。図3~図6は、ブロック化の例を説明するための図である。図3は、ブロック1~256に属するバンクを表わす図である。図3に示すように、バンク1、7はブロック1に属する。バンク2、5、6、8、10は、ブロック2に属する。バンク3は、ブロック3に属する。バンク4は、ブロック4に属する。バンク9は、ブロック5に属する。バンク687、743は、ブロック256に属する。図4は、図3に示すように複数のバンクがブロック化されている場合に、ブロックi用制御回路ごとのブロック化支援回路13のバンクアドレスレジスタ群に記憶されるデータの例を表わす図である。ブロック1用制御回路のブロック化支援回路13に含まれるバンクアドレスレジスタ群は、バンク1のアドレスと、バンク7のアドレスを記憶する。ブロック2用制御回路のブロック化支援回路13に含まれるバンクアドレスレジスタ群は、バンク2のアドレスと、バンク5のアドレスと、バンク6のアドレスと、バンク8のアドレスと、バンク10のアドレスとを記憶する。ブロック3用制御回路のブロック化支援回路13に含まれるバンクアドレスレジスタ群は、バンク3のアドレスを記憶する。ブロック4用制御回路のブロック化支援回路13に含まれるバンクアドレスレジスタ群は、バンク4のアドレスを記憶する。ブロック5用制御回路のブロック化支援回路13に含まれるバンクアドレスレジスタ群は、バンク9のアドレスを記憶する。ブロック256用制御回路のブロック化支援回路13に含まれるバンクアドレスレジスタ群は、バンク687のアドレスと、バンク743のアドレスとを記憶する。図5は、図3に示すように複数のバンクがブロック化されている場合に、ブロックi用制御回路のアドレスカウンタ101に記憶されるデータの例を表わす図である。図5に示すように、ブロック1用制御回路のアドレスカウンタ101は、エントリ5のアドレスを記憶する。したがって、図4と図5によって、バンク7のエントリ5が現在又は次の書込対象のエントリとなる。ブロック2用制御回路のアドレスカウンタ101は、エントリ7のアドレスを記憶する。したがって、図4と図5によって、バンク10のエントリ7が現在又は次の書込対象のエントリとなる。ブロック3用制御回路のアドレスカウンタ101は、エントリ5のアドレスを記憶する。したがって、図4と図5によって、バンク3のエントリ5が現在又は次の書込対象のエントリとなる。ブロック4用制御回路のアドレスカウンタ101は、エントリ1のアドレスを記憶する。したがって、図4と図5によって、バンク4のエントリ1が現在又は次の書込対象のエントリとなる。ブロック5用制御回路のアドレスカウンタ101は、エントリ12のアドレスを記憶する。したがって、図4と図5によって、バンク9のエントリ12が現在又は次の書込対象のエントリとなる。ブロック256用制御回路のアドレスカウンタ101は、エントリ43のアドレスを記憶する。したがって、図4と図5によって、バンク743のエントリ43が現在又は次の書込対象のエントリとなる。図6aは、FIFOメモリ91に初期状態ブロック化前に格納されるデータの例を表わす図である。初期状態では、FIFOには、バンク1~バンクNのアドレスが格納される。エントリへの書込み時に、新たなバンクを割当る時には、バンク1のアドレスから順次取り出される。取り出されたアドレスで指定されるバンクのエントリに図2bに示すようなデータが書込まれる。図6bは、バンク1~バンク7が利用されて、データが書込まれた状態を表わす図である。バンクに含まれる全エントリのデータが消去された場合には、バンクは解放され、再割当可能となる。たとえば、バンク5が解放された場合に、図6cに示すように、消去部94によって解放されたバンクのアドレスがFIFOメモリ91の末尾に格納される。検索判定部14図7は、検索判定部14の概略構成を説明するための図である。プリサーチによって、検索データがブロック1に属することがわかった場合に、バンク1の各エントリの情報データIPアドレスが順次比較器60_1に出力される。比較器60_1は、検索データと、各エントリの情報データとが一致するか否かを比較して、比較結果を出力する。同時に、バンク7の各エントリのデータ各エントリの情報データIPアドレスが順次比較器60_2に出力される。比較器60_2は、検索データと、各エントリの情報データとが一致するか否かを比較して、比較結果を出力する。論理回路Rは、比較器60_1の出力と比較器60_2の出力とを論理演算して、演算結果を出力する。図8は、検索判定部14の詳細を表わす図である。図8を参照してプリサーチ回路5で特定されたブロックに属するバンクからエントリのデータIPアドレスとホップ先アドレスが出力される。各バンクと接続する比較器60は、外部から与えられる検索データとIPアドレスとを比較して、比較結果を論理回路R1、および論理回路RR1~RRNのうち、特定されたブロックに属するバンクと接続される論理回路へ出力する。論理回路RR1~RRNのうち、特定されたブロックに属するバンクと接続される論理回路には、接続されるバンクのエントリのホップ先アドレスが入力される。論理回路R1は、比較器60_1~60_Nでの比較のうち一致したものがある場合には、Hitを示す信号を出力する。論理回路RR1~RRNのうち、特定されたブロックに属するバンクと接続する論理回路は、そのバンクでHitしたときつまり、接続される比較器が一致を示す信号を出力したときには、入力されたホップ先アドレスを出力し、そのバンクでMissしたときには、全ビットが0の信号を出力する。論理回路R3は、Hitしたバンクのエントリのホップ先アドレスを出力する。論理回路R2およびラッチ回路RA1によって、HitまたはMissの結果を更新されるまで維持し、出力する。論理回路R3、セレクタSL1およびラッチ回路RA2によって、ホップ先アドレスを更新されるまで維持し、出力する。ブロック化支援回路13図9は、ブロック化支援回路13の構成を表わす図である。図9を参照して、カウンタ134は、バンクアドレスレジスタ36_1~36_Nのうちバンクアドレスが格納されているレジスタの個数をカウントする。セレクタ32は、バンクアドレスレジスタ36_1~36_Nのいずれかを指定するアドレス、またはカウンタ134のカウンタ値を受けて、どちらかを出力する。バンクアドレスレジスタ36_1~36_Nのいずれかを指定するアドレスは、メモリアレイ2への書込み時に、このグループ支援回路が対応するブロックへのバンクの割当があった場合に、入力される。デコーダ30は、セレクタ32の出力信号をデコードする。デコーダ30の出力によって、論理回路RL1~RL_Lのいずれかが選択される。またALL_select信号が入力されるときには、論理回路RL_1~RL_Lのすべてが選択される。メモリアレイ2への書込み時には、選択された論理回路RL_iと接続されているバンクアドレスレジスタ36_iに、ライトデータバンクアドレスが書込まれる。また、メンテナンス時には、選択された論理回路RL_iと接続されているバンクアドレスレジスタ36_iからリードデータバンクアドレスが読み出される。エントリ消去消去部94は、ブロックごとにエントリ消去回路12を含む。図10は、エントリ消去回路12の構成を表わす図である。メモリA102は、メモリアレイ2内のバンクを表わす。メモリB104は、検索のために使用するデータを格納するものである。アドレスカウンタ101は、メモリAバンク内で使用されている末尾のエントリの番号をセレクタ103へ出力する。セレクタ103は、命令が入力されて、この命令をメモリAへの命令A_命令またはメモリBへの命令B_命令として出力する。セレクタ103は、アドレスが入力されて、このアドレスをメモリAへのアドレスA_アドレス、メモリBへのアドレスB_アドレスとして出力する。セレクタ103は、ライトデータ、メモリAからのリードデータA_リードデータ、メモリBからのリードデータB_リードデータとが入力されて、これらをメモリAへのライトデータA_ライトデータ、メモリBへのライトデータB_ライトデータとして出力する。図11は、エントリ消去動作を説明するための図である。1つのバンクに0~n番目のエントリが使用され、アドレス順に0~n番目のエントリが存在する場合に、エントリ消去回路は、k番目のエントリを消去する場合に、末尾に存在するn番目のエントリのデータを読み出して、k番目のエントリに上書きする。そして、n番目のエントリを未使用領域として解放し、使用領域を0~n-1番目のエントリとする。これによって、消去したエントリを再利用することができる。図12は、エントリ消去動作を説明するための図である。n番目のエントリアドレスがnとするから読み出したデータをKey1メモリBのiアドレスとする。Key1は、IPアドレスで、メモリBのiアドレスは、ホップ先アドレスである。一方、k番目のエントリアドレスがkとするに格納されているデータがKey2メモリBのjアドレスであるとする。Key2は、IPアドレスで、メモリBのjアドレスは、ホップ先アドレスである。k番目のエントリは、n番目のエントリのデータで上書きされるので、k番目のエントリのデータは、Key1メモリBのiアドレスとなる。一方、メモリBのiアドレスには、メモリAのnアドレスが格納され、メモリBのjアドレスには、メモリAのkアドレスが格納されている。以上のように、本実施の形態によれば、プリフィックス毎の使用状況に偏りが発生した場合にも状況に応じてメモリを使用するため、未使用領域を発生させることなく効率よくメモリを使い切ることができる。[第2の実施形態]図13は、第2の実施形態の検索判定部14の例を表わす図である。この検索判定部14は、ブロック1~ブロック256において、同時に並行して検索処理が実行できる。セレクタ50-iは、バンク1~バンクNのうち、ブロックiに属するバンクのエントリと検索データとを比較する比較器と接続する。ブロック1に属するバンク1の各エントリの情報データIPアドレスと検索データとを比較する比較器60_1の比較結果と、ブロック1に属するバンク7の各エントリの情報データIPアドレスを比較する比較器60_7の比較結果がセレクタ50-1に送られる。セレクタ50-1は、これらの2つの比較器60_1,60_7からの信号を論理回路52-1に出力する。論理回路52-1で2つの比較器60_1,60_7からの出力される信号を論理演算して、演算結果を出力する。同時に、ブロック2に属するバンク2,5,6,8,10の各エントリの情報データIPアドレスと検索データとを比較する比較器60_2,60_5,60_6,60_8,60_10の比較結果がセレクタ50-2に送られる。セレクタ50-2は、これらの比較器60_2,60_5,60_6,60_8,60_10からの信号を論理回路52-2に出力する。論理回路52-2で4つの比較器60_2,60_5,60_6,60_8,60_10からの出力される信号を論理演算して、演算結果を出力する。同様に、同時にブロック3~ブロック256についても、上述と同様にして検索データとの一致/不一致が判定される。並列処理方法の場合は、同時に各プリフィックスで使用されるブロックを動作させ検索を行い、検索結果をプライオリティエンコーダによって選別する。今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"