(57)【特許請求の範囲】
【請求項１】
複数の物理バンクに分割され、各々の前記物理バンクを異なる構成に設定可能に構成された連想メモリアレイと、
各々の前記物理バンクの構成を設定し、これに対応して各論理バンクの構成を設定し、これら各論理バンクと各物理バンクとの間の対応関係を割り当てて、各々の前記物理バンクを制御する論理・物理信号変換回路と、
前記論理バンクに対応する前記物理バンクに対して検索を行い、各々の前記物理バンクから出力される検索結果について、あらかじめ設定されている優先順位に従って順次出力するプライオリティ回路とを備え、異なる構成の複数の連想メモリの機能を１つのデバイスで実現することを特徴とする連想メモリ。
【請求項２】
前記論理・物理信号変換回路は、各々の前記物理バンクに対応して設けられ、外部から設定されて対応する物理バンクの構成を定義するレジスタを有することを特徴とする請求項１記載の連想メモリ。
【請求項３】
前記論理・物理信号変換回路は、外部から入力される信号により、前記各論理バンクへの前記物理バンクの１つもしくは複数の割り当てが設定される論理物理変換テーブルを備えることを特徴とする請求項１または２に記載の連想メモリ。
【請求項４】
前記論理・物理信号変換回路は、前記論理バンクの１つを指定する信号と検索の開始を指示する信号との入力を受け、該１つの論理バンクに対応づけられた１つもしくは複数の物理バンクのみに、検索の開始を指示する信号を出力することを特徴とする請求項１ないし３のいずれかに記載の連想メモリ。
【請求項５】
前記プライオリティ回路は、前記物理バンクから出力される検索結果に、該当する物理バンクを示すビットを追加して出力することを特徴とする請求項１ないし４のいずれかに記載の連想メモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、異なる構成の複数の連想メモリの機能を１つのデバイスで実現する連想メモリに関するものである。
【０００２】
【従来の技術】
近年、インターネットの発展により、例えばスイッチングハブやルータ等のネットワークを構築する中継装置に対して、高速性、高機能が要求されるようになってきている。このような要求に対応するために、これらの装置では、例えばアドレスフィルタリング、パケットの分類処理（クラシフィケーション）等の処理に連想メモリ（ＣＡＭ：Content Addressable Memory）を使用することが多くなってきた。
【０００３】
ＣＡＭは、ネットワークのＯＳＩ（Open Systems Interconnection）モデルのレイヤー２，３，４の各レイヤーでも使用されることが多い。この場合、検索キーデータの長さは３２〜２５６ビット以上まで様々であり、ＣＡＭの機能としては、従来の‘０’と‘１’のみのデータを持つバイナリ（Binary）ＣＡＭの構成で十分なものや、これに加えて‘Ｘ（Don't care）’のデータを持つターナリ（Ternary)ＣＡＭ構成の機能が必要なものもある。
【０００４】
従って、図１２（ａ）に示すように、レイヤー２〜４で必要な機能に対して、それぞれに適した異なる構成のデバイス、図示例の場合、６４ビットのバイナリＣＡＭ、６４ビットのターナリＣＡＭ、２５６ビットのターナリＣＡＭを使用したり、あるいは、同図（ｂ）に示すように、バイナリＣＡＭの機能をターナリＣＡＭの機能で代用して、大きなサイズの同じ構成のデバイス、図示例の場合、２５６ビットの３個のターナリＣＡＭを使用して実現している。
【０００５】
上記図１２（ａ）の例では、それぞれの機能に適応したＣＡＭを使用するため、各処理をパイプラインにできるが、図中各ＣＡＭを制御するネットワークファンクションのブロックが少数または１チップのＬＳＩで構成されている場合にはＣＡＭへの信号ピンの増加が問題となる。また、近年では大容量のＣＡＭが主流であり、メモリ容量の小さいＣＡＭは製造されないため、同図（ｂ）のように、無駄に大容量のＣＡＭを搭載せざるをえないという問題があった。
【０００６】
また、同図（ｂ）の例では、多ビットのＣＡＭで全てを満足させようとするために、例えば６４ビット長のテーブルを１２８ビット長のＣＡＭで実現する場合、図１３に示すように、データをＭＳＢ（最上位ビット）側とＬＳＢ（最下位ビット）側に分割登録し、ＬＳＢ側をマスクしてＭＳＢ側を検索し、逆に、ＭＳＢ側をマスクしてＬＳＢ側を検索した後に結果を得るという外部での処理が必要になる。従って、外部回路が複雑になるという問題点があった。
【０００７】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術に基づく問題点を解消し、構成の異なる複数の連想メモリを使用するシステムにおいて、コスト的に無駄がなく、制御しやすい連想メモリを提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明は、複数の物理バンクに分割され、各々の前記物理バンクを異なる構成に設定可能に構成された連想メモリアレイと、
各々の前記物理バンクの構成を設定し、これに対応して各論理バンクの構成を設定し、これら各論理バンクと各物理バンクとの間の対応関係を割り当てて、各々の前記物理バンクを制御する論理・物理信号変換回路と、
前記論理バンクに対応する前記物理バンクに対して検索を行い、各々の前記物理バンクから出力される検索結果について、あらかじめ設定されている優先順位に従って順次出力するプライオリティ回路とを備え、異なる構成の複数の連想メモリの機能を１つのデバイスで実現することを特徴とする連想メモリを提供するものである。
ここで、前記論理・物理信号変換回路は、各々の前記物理バンクに対応して設けられ、外部から設定されて対応する物理バンクの構成を定義するレジスタを有することが好ましい。
また、前記論理・物理信号変換回路は、外部から入力される信号により、前記各論理バンクへの前記物理バンクの１つもしくは複数の割り当てが設定される論理物理変換テーブルを備えることが好ましい。
さらに、前記論理・物理信号変換回路は、前記論理バンクの１つを指定する信号と検索の開始を指示する信号との入力を受け、該１つの論理バンクに対応づけられた１つもしくは複数の物理バンクのみに、検索の開始を指示する信号を出力することが好ましい。
また、前記プライオリティ回路は、前記物理バンクから出力される検索結果に、該当する物理バンクを示すビットを追加して出力することが好ましい。
【０００９】
【発明の実施の形態】
以下に、添付の図面に示す好適実施例に基づいて、本発明の連想メモリを詳細に説明する。
【００１０】
図１は、本発明の連想メモリの一実施例の構成概略図である。
本発明の連想メモリ（以下、ＣＡＭという）１０は、バイナリＣＡＭ／ターナリＣＡＭの種類の違いや、ビット長の違いを持つ、異なる構成の複数のＣＡＭの機能を１つのデバイスで実現することができるように構成したもので、同図に示すように、連想メモリアレイ１２と、論理・物理信号変換回路１４と、プライオリティ回路１６と、デコーダ１８とを備えている。
【００１１】
まず、連想メモリアレイ１２は、ブロック分割された複数の物理バンクから構成されたもので、図示例の場合、物理バンク０〜７までの８個のブロックに分割されている。各々の物理バンクの構成は、論理・物理信号変換回路１４から入力される信号ＣＯＮＦＩＧに応じて、バイナリＣＡＭあるいはターナリＣＡＭとして使用するかを設定することができ、また、あらかじめ用意されている複数種類のビット長の中から任意のビット長に設定することができる。
【００１２】
続いて、論理・物理信号変換回路１４は、必要とするＣＡＭの構成に応じて、連想メモリアレイ１２の各々の物理バンクの構成を設定し、これに対応して各論理バンクの構成を設定し、これら各論理バンクと連想メモリアレイ１２の各物理バンクとの間の対応関係を割り当てることによって、各論理バンクに対応する連想メモリアレイ１２の各物理バンクに対して正しくアクセスが行われるように、連想メモリアレイ１２の各物理バンクを制御する。
【００１３】
ここで、論理・物理信号変換回路１４には、信号ＩＮ＜６３：０＞、信号ＬＢＡＮＫ＜２：０＞、信号ＳＥＡＲＣＨ、信号ＧＥＮＦＵＬ、信号ＰＵＲＧＥ＿ＨＩＴ、信号ＴＡＢＬＥ＿ＷＲが入力されている。また、論理・物理信号変換回路１４からは、連想メモリアレイ１２の各々の物理バンクに対して、信号ＳＲＣＨ、信号ＧＮＦＬ、信号ＰＲＧ＿ＨＩＴ、信号ＣＯＮＦＩＧ＜２：０＞が出力されている。
【００１４】
連想メモリアレイ１２には、論理・物理信号変換回路１４から入力される各信号の他、信号ＲＥＡＤ、信号ＷＲＩＴＥにより生成される信号ＲＤ、信号ＷＲ、ＡＤＤＲＥＳＳ＜１４：０＞の上位３ビットであるＡＤＤＲＥＳＳ＜１４：１２＞からデコード回路１８によって生成される信号ＡＤＤＲＥＳＳ＜１１：０＞、信号ＤＡＴＩＮ＜６３：０＞が入力され、連想メモリアレイ１２からは、プライオリティ回路１６に対して、信号ＨＨＡ＜１１：０＞、信号ＨＥＡ＜１１：０＞、信号ＨＩＴ、信号ＦＵＬＬが出力されている。連想メモリアレイ１２からは、信号ＤＡＴＯＵＴ＜６３：０＞も合わせて出力されている。
【００１５】
最後に、プライオリティ回路１６は、あらかじめ設定されている優先順位に従って、連想メモリアレイ１２から入力される信号ＨＨＡ＜１１：０＞、信号ＨＥＡ＜１１：０＞にアドレス上位３ビットを付加して信号ＨＨＡ＜１４：０＞、信号ＨＥＡ＜１４：０＞を順次出力する。本実施例では、連想メモリアレイ１２の物理バンク０の優先順位が最も高く、以下順次優先順位が低くなり、物理バンク７の優先順位が最も低いものとする。プライオリティ回路１６からは、信号ＨＩＴ、信号ＦＵＬＬも合わせて出力されている。
【００１６】
本発明において、物理バンクとは、連想メモリアレイ１２を物理的に複数個のブロックに分割した時の各々のブロックのことである。これに対して、論理バンクとは、論理的に物理バンクのメモリ空間を割り当てたもので、必要に応じて複数個の物理バンクを連結し、これを１つのメモリ空間として使用することもできる。この論理バンクの概念により、個々の物理バンクのメモリ空間を意識することなく、論理バンクのメモリ空間を使用することができる。
【００１７】
例えば、図２に示すように、物理バンク０をＡビット長のバイナリＣＡＭに設定し、以下同様に、物理バンク１をＢビット長のバイナリＣＡＭ、物理バンク２をＣビット長のバイナリＣＡＭ、物理バンク３をＡビット長のターナリＣＡＭ、物理バンク４をＢビット長のターナリＣＡＭ、物理バンク５をＣビット長のターナリＣＡＭ、物理バンク６をＡビット長のバイナリＣＡＭ、物理バンク７をＢビット長のターナリＣＡＭとして設定する。
【００１８】
そして、図３に示すように、論理バンク０に、物理バンク０，６を連結したＡビット長のバイナリＣＡＭを割り当て、以下同様に、論理バンク１〜３に、それぞれ物理バンク１〜３のＢビット長のバイナリＣＡＭ、Ｃビット長のバイナリＣＡＭ、Ａビット長のターナリＣＡＭを割り当てる。また、論理バンク４に、物理バンク４，７を連結したＢビット長のターナリＣＡＭを割り当て、論理バンク５に物理バンク５のＣビット長のターナリＣＡＭを割り当てる。
【００１９】
本発明のＣＡＭ１０では、必要とする連想メモリの構成、すなわち、バイナリＣＡＭとして使用するのか、ターナリＣＡＭとして使用するのかのＣＡＭの種類や、必要なビット長に応じて、図２に示すように、連想メモリアレイ１２の各々の物理バンクの構成を決定し、必要なワード数に応じて、図３に示すように、複数の物理バンクを連結して各々の論理バンクを構成することにより、構成の異なる複数のＣＡＭの機能を１つのデバイスで実現することができる。
【００２０】
以下、図４〜図１０に示す実施例を挙げて、本発明のＣＡＭ１０の動作を具体的に説明する。
【００２１】
まず、図４は、図１のＣＡＭ１０における各論理バンクと各物理バンクとの対応関係を表す一実施例の概念図である。本実施例の場合、同図に示すように、物理バンク０，２，６は６４ビット長のバイナリＣＡＭとして設定され、以下同様に、物理バンク１，３，４は１２８ビット長のターナリＣＡＭ、物理バンク５，７は２５６ビット長のターナリＣＡＭとして設定されている。なお、各々の物理バンクの詳細については後述する。
【００２２】
ここで、各々の物理バンクの構成は、既に述べたように、論理・物理信号変換回路１４から各々の物理バンクに対して出力される信号ＣＯＮＦＩＧ＜２：０＞によって設定される。この信号ＣＯＮＦＩＧ＜２：０＞は、例えば論理・物理信号変換回路１４の内部にある３ビット×８個分のレジスタ（図示省略）によって定義され、各々のレジスタは、信号ＴＡＢＬＥ＿ＷＲを与えることにより、ＣＡＭ１０の外部から設定される。
【００２３】
また、図示例では、論理バンク０に物理バンク０，２，６を連結して得られる６４ビット長、１２ＫワードのバイナリＣＡＭ、論理バンク１に物理バンク１，３，４を連結して得られる１２８ビット長、６ＫワードのターナリＣＡＭ、論理バンク２に物理バンク５，７を連結して得られる２５６ビット長、２ＫワードのターナリＣＡＭがそれぞれ割り当てられている。図４の各論理バンクと各物理バンクとの対応関係を図５の表に示す。
【００２４】
論理バンクの指定は、信号ＬＢＡＮＫ＜２：０＞で行われる。論理バンクと物理バンクとの対応関係は、図６に示すように、例えば論理・物理信号変換回路１４の内部にある論理物理変換テーブルによって定義される。この論理物理変換テーブルは、図５に示す各論理バンクと各物理バンクとの対応関係の表に対応するもので、図５の‘Assign（割り当てあり）’、‘No Assign （割り当てなし）’にそれぞれ対応して‘１’、‘０’が設定されている。
【００２５】
この論理物理変換テーブルには、信号ＴＡＢＬＥ＿ＷＲを与えることにより、図７に、その対応関係を表すように、信号ＩＮ＜６３：０＞から入力される値が設定される。各論理バンクと各物理バンクとの対応関係に基づいて、信号ＣＯＮＦＩＧ＜２：０＞を定義する８個のレジスタおよび図６の論理物理変換テーブルの内容を設定することにより、信号ＬＢＡＮＫ＜２：０＞で論理バンクを指定した時に、これに対応する物理バンクを制御することができる。
【００２６】
続いて、図８は、物理バンクに接続される信号を表す一実施例の概念図である。同図は、図１に示すＣＡＭ１０の連想メモリアレイ１２の物理バンクを表すもので、物理バンクには、ＣＯＮＦＩＧ＜２：０＞、ＳＲＣＨ、ＧＮＦＬ、ＰＲＧ＿ＨＩＴ、ＷＲＩＴＥ、ＲＥＡＤ、ＤＡＴＩＮ＜６３：０＞、ＡＤＤＲＥＳＳ＜１１：０＞、ＨＨＡ＜１１：０＞、ＨＥＡ＜１１：０＞、ＨＩＴ、ＦＵＬＬ、ＤＡＴＯＵＴ＜６３：０＞の各信号が接続される。
【００２７】
まず、ＣＯＮＦＩＧ＜２：０＞は、連想メモリアレイ１２の物理バンクの構成を設定するための信号である。本実施例では、図９の表に示すように、物理バンクをバイナリＣＡＭとして使用するのか、あるいは、ターナリＣＡＭとして使用するのかのＣＡＭの種類の違い、また、ビット長を６４，１２８，２５６ビットとするのかの違いに応じて、３ビットの信号により、各々の物理バンクの機能構成を６通りの中から指定することができる。
【００２８】
次に、ＡＤＤＲＥＳＳ＜１１：０＞は、この物理バンクのメモリアドレスを指定する入力信号である。
ＤＡＴＩＮ＜６３：０＞は、この物理バンクに対するエントリデータや検索キーデータの入力信号である。
ＤＡＴＯＵＴ＜６３：０＞は、物理バンクに格納されているエントリデータを読み出した出力信号である。
【００２９】
ＷＲＩＴＥは、ＤＡＴＩＮ＜６３：０＞として入力される６４ビットの信号を、ＡＤＤＲＥＳＳ＜１１：０＞によって指定されるメモリアドレスに書き込むための入力信号である。
ＲＥＡＤは、ＡＤＤＲＥＳＳ＜１１：０＞によって指定される物理バンクのメモリアドレスに格納されているエントリデータをＤＡＴＯＵＴ＜６３：０＞として読み出すための入力信号である。
【００３０】
ＳＲＣＨは、この物理バンクに対して検索開始を指示する入力信号である。
ＨＩＴは、一致検索の結果、この物理バンク内にヒットエントリ、すなわち、検索キーデータと一致するエントリデータが存在するか否かを表す出力信号である。ＨＩＴは、本実施例の場合、エントリデータの中にヒットエントリが１つでも存在する場合にはローレベルとなり、ヒットエントリが１つも存在しない場合にのみハイレベルとなる。
【００３１】
ＨＨＡ＜１１：０＞は、最優先順位のヒットアドレス（Highest Hit Address ）の出力信号である。ＨＨＡ＜１１：０＞としては、一致検索の結果、前述のＨＩＴがローレベルとなり、ヒットエントリが存在する場合に、最も優先順位の高いヒットエントリが格納されているメモリアドレス、すなわち、最優先順位のヒットアドレスが出力される。本実施例の場合、ヒットアドレスの内の最も小さいアドレスが出力される。
【００３２】
ＰＲＧ＿ＨＩＴは、一致検索の結果、ＨＩＴがローレベルとなり、この物理バンク内にヒットエントリが存在する場合に、このヒットエントリを消去するための入力信号である。
ＧＮＦＬは、この物理バンク内の最優先順位のエンプティアドレス（ＨＥＡ：Highest Empty Address ）を検索するための入力信号である。このＧＮＦＬを入力することにより、ＨＥＡ＜１１：０＞が出力される。
【００３３】
ＦＵＬＬは、この物理バンクに対して前述のＧＮＦＬを入力した結果、この物理バンク内にエンプティエントリ、すなわち、一致検索の対象となる有効なエントリデータが格納されていないメモリアドレスが存在するかどうかを表すための出力信号である。ＦＵＬＬは、本実施例の場合、エンプティエントリが全く存在しない場合にのみローレベルとなり、１つでもエンプティエントリが存在する場合にはハイレベルとなる。
【００３４】
最後に、ＨＥＡ＜１１：０＞は、前述の最優先順位のエンプティアドレスの出力信号である。ＨＥＡ＜１１：０＞としては、ＧＮＦＬを入力した結果、ＦＵＬＬがハイレベルとなり、物理バンク内にエンプティエントリが存在する場合に、最も優先順位の高いエンプティエントリが格納されているメモリアドレス、すなわち、最優先順位のエンプティアドレスの出力信号である。本実施例では、エンプティアドレスの内の最も小さいアドレスが出力される。
【００３５】
図示例の物理バンクは、物理的には６４ビット長、４Ｋワードでメモリ容量２５６ＫビットのターナリＣＡＭ構成の連想メモリアレイのブロックである。例えば、この物理バンクを１２８ビット長のバイナリＣＡＭとして設定した場合、異なる６４ビットの検索キーデータを用いて２回の一致検索が行われ、検索結果のＡＮＤがとられて最終的な検索結果として出力される。これにより、見かけ上、１２８ビット長のＣＡＭとして動作する。
【００３６】
この場合、物理バンクのワード数は、見かけ上半分の２Ｋワードになる。従って、１２８ビット長、４ＫワードのＣＡＭが必要な場合には、２つの物理バンクを連結して１つの論理バンクとして使用することになる。なお、ターナリＣＡＭの‘Ｘ（Don't Care）’のデータを適宜設定することにより、ターナリＣＡＭをバイナリＣＡＭとして使用することができる。また、２５６ビット長のＣＡＭの場合には合計４回のＡＮＤ検索が行われる。
【００３７】
図１に示すＣＡＭ１０において、信号ＣＯＮＦＩＧ＜２：０＞、信号ＳＲＣＨ、信号ＧＮＦＬ、信号ＰＲＧ＿ＨＩＴ、信号ＷＲ、信号ＲＤ、信号ＤＡＴＩＮ＜６３：０＞、信号ＡＤＤＲＥＳＳ＜１１：０＞、信号ＨＨＡ＜１１：０＞、信号ＨＥＡ＜１１：０＞、信号ＨＩＴ、信号ＦＵＬＬ、信号ＤＡＴＯＵＴ＜６３：０＞は、図８に示す物理バンクに接続される各々の信号に対応する信号である。
【００３８】
なお、信号ＳＲＣＨ、信号ＧＮＦＬ、信号ＰＲＧ＿ＨＩＴは、それぞれ論理・物理信号変換回路１４に入力される信号ＳＥＡＲＣＨ、信号ＧＥＮＦＵＬ、信号ＰＵＲＧＥ＿ＨＩＴと図６の論理物理変換テーブルからの出力との論理積をとることにより、信号ＬＢＡＮＫ＜２：０＞によって指定される論理バンクで、なおかつ、論理物理変換テーブルに‘１’が設定されている物理バンクに対してのみ出力される信号である。
【００３９】
図１に示すＣＡＭ１０において、まず、一致検索を行う前に、各々の論理バンクに対応する連想メモリアレイ１２の各物理メモリに対してエントリデータを書き込む。エントリデータは、信号ＷＲＩＴＥを与えることにより、信号ＡＤＤＲＥＳＳ＜１４：０＞で指定される論理バンクのメモリアドレス、すなわち、この論理バンクに対応する物理バンクのメモリアドレスに対して信号ＤＡＴＩＮ＜６３：０＞が書き込まれる。
【００４０】
一例として、論理バンク１の１２８ビット長のターナリＣＡＭに対して一致検索を行う場合、まず、信号ＬＢＡＮＫ＜２：０＞＝‘００１（２進数）’として論理バンク１を指定する。この指定により、図６の論理物理変換テーブルの論理バンク１に対応する行の物理バンクの割り当ての設定＝‘０１０１１０００’が出力され、対応する物理バンク１，３，４に対してのみ信号ＳＲＣＨ、信号ＧＮＦＬ、信号ＰＲＧ＿ＨＩＴが与えられる。
【００４１】
例えば、ＤＡＴＩＮ＜６３：０＞として検索キーデータを入力し、かつ、信号ＳＥＡＲＣＨを入力して検索の開始を指示すると、論理・物理信号変換回路１４から、物理バンク１，３，４に対してのみ信号ＳＲＣＨが与えられ、これらの物理バンク１，３，４でのみ一致検索が開始される。論理バンク１は１２８ビット長のターナリＣＡＭであるから、既に述べたように、異なる６４ビットの検索キーデータを用いて２回のＡＮＤ検索が行われる。
【００４２】
その結果、これらの物理バンク１，３，４に登録されたエントリデータの中で、合計１２８ビット長の検索キーデータに一致するヒットエントリが存在する場合、信号ＨＩＴがローレベルとなり、対応する物理バンク１，３，４から、ヒットエントリが登録されているヒットアドレスである信号ＨＨＡ＜１１：０＞が出力され、これらの信号ＨＩＴおよび信号ＨＨＡ＜１１：０＞はプライオリティ回路１６に入力される。
【００４３】
なお、一致検索の結果、物理バンク１，３，４の中でヒットエントリが存在しない物理バンク、および、信号ＳＲＣＨが与えられていない物理バンク０，２，５〜７からは、信号ＨＩＴとしてハイレベルが出力される。
プライオリティ回路１６では、各々の物理バンクから入力される信号ＨＩＴによって優先順位を決定し、最優先順位の信号ＨＨＡ＜１１：０＞に最優先順位を持った物理バンクの番号３ビットを上位に付加した信号ＨＨＡ＜１４：０＞を出力する。例えば、最優先順位を持った物理バンクが‘５’ならば、付加される３ビットは‘１０１’となる。また、合わせて信号ＨＩＴも出力される。
【００４４】
本実施例では、図１０の表に示すように、物理バンクの番号が小さいほど優先順位が高く、例えば物理バンク１にヒットエントリが存在する場合には、物理バンク３，４の状態に係わらず、プライオリティ回路１６からは、物理バンク１の信号ＨＨＡ＜１１：０＞が出力され、ＨＨＡ＜１４：１２＞は‘００１’となる。また、信号ＨＩＴは、各々の物理バンク０〜７から入力される信号ＨＩＴの論理積をとったもので、物理バンク０〜７のいずれかにヒットエントリが存在すればローレベルとなる。
【００４５】
同様に、エンプティアドレスの検索を行う場合、論理バンク１を指定すると、これに対応する物理バンク１，３，４に対してのみ、論理・物理信号変換回路１４から信号ＧＮＦＬが与えられる。信号ＧＥＮＦＵＬを入力して、エンプティアドレスの検索を開始すると、前述のように、物理バンク１，３，４に対してのみ信号ＧＮＦＬが与えられ、これらの物理バンク１，３，４においてエンプティアドレスの検索が開始される。
【００４６】
その結果、エンプティアドレスが存在する物理バンク１，３，４の信号ＦＵＬＬはハイレベルとなり、対応する物理バンク１，３，４から、エンプティアドレスである信号ＨＥＡ＜１１：０＞が出力される。なお、エンプティアドレスの検索の結果、物理バンク１，３，４の中でエンプティアドレスが存在しない物理バンク、および、信号ＧＮＦＬが与えられていない物理バンク０，２，５〜７からは、信号ＦＵＬＬとしてローレベルが出力される。
【００４７】
プライオリティ回路１６では、各々の物理バンクから入力される信号ＦＵＬＬによって優先順位を決定し、図１０の表に示す優先順位に従って最優先順位の信号ＨＥＡ＜１１：０＞に最優先順位を持った物理バンクの番号３ビットを上位に付加した信号ＨＥＡ＜１４：０＞を出力する。また、合わせて信号ＦＵＬＬも出力される。信号ＦＵＬＬは、各々の物理バンク０〜７から入力される信号ＦＵＬＬの論理和をとったもので、物理バンク０〜７のいずれかにエンプティアドレスが存在すればハイレベルとなる。
【００４８】
以上のように、本発明のＣＡＭ１０は、大容量の連想メモリアレイ１２を複数の物理バンクのブロックに分割し、これらの物理バンクを論理バンクとして再構成するので、大規模な連想メモリを使用用途に応じて分割して使用することができる。また、大容量の連想メモリアレイ１２を分割して検索動作を行わせるため、つまり、論理バンクに対応する物理バンクに対してのみ検索動作が行われるため、消費電力を低減することができる。
【００４９】
なお、図示例では、連想メモリアレイ１２を８つの物理バンクに分割した場合を例に挙げているが、本発明はこれに限定されず、２つ以上の物理バンクに分割してあればよい。また、実施例では、設定可能なビット長を６４，１２８，２５６ビットの３種類としたが、これも限定されない。また、別の例を図１１に示すように、物理バンクの構成の設定や、論理バンクと物理バンクとの対応関係の設定も何ら限定されず自由に設定することができる。
【００５０】
また、上記実施例では、物理バンクの構成を決定する要素として、バイナリＣＡＭなのかターナリＣＡＭなのかというＣＡＭの種類、およびビット長の２つを挙げて説明している。しかし、本発明はこれに限定されず、例えばこれ以外の機能的な違い等を物理バンクの構成を決定する要素として選択可能としてもよい。また、物理バンクの構成を決定する要素として、本発明は、少なくとも１つの要素を含んでいればよい。
【００５１】
さらに、上記実施例では、連想メモリアレイ１２、論理・物理信号変換回路１４、プライオリティ回路１６、デコーダ１８の具体的な構成回路を図示していないが、本発明では、これらの具体的な回路構成は何ら限定されず、上述する機能を実現する回路であればどのような構成のものであってもよい。特に、論理・物理信号変換回路１４は、レジスタやテーブルを用いて構成する場合を例示したが、何ら限定されず、他の回路を用いて構成してもよい。
【００５２】
本発明の連想メモリは、基本的に以上のようなものである。
以上、本発明の連想メモリについて詳細に説明したが、本発明は上記実施例に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【００５３】
【発明の効果】
以上詳細に説明した様に、本発明の連想メモリは、大容量の連想メモリアレイを複数の物理バンクのブロックに分割し、これら各々の物理バンクを異なる構成に設定可能に構成しておき、これらの物理バンクを論理バンクとして再構成して使用するようにしたものである。
これにより、本発明の連想メモリによれば、大規模な連想メモリを使用用途に応じて分割して使用することができ、構成の異なる複数の連想メモリの機能を１つのデバイスで実現することができるため、コストを削減することができる。また、本発明の連想メモリによれば、論理バンクの概念により、物理バンクのメモリ空間を意識する必要がないため、制御が容易であるという利点がある。また、本発明の連想メモリによれば、論理バンクに対応する物理バンクに対してのみ検索動作が行われるため、全ての連想メモリセルが同時動作する連想メモリでは常に問題となる消費電力も低減することができる。
【図面の簡単な説明】
【図１】  本発明の連想メモリの一実施例の構成概略図である。
【図２】  各々の各物理バンクの構成を設定した状態を表す一実施例の概念図である。
【図３】  各論理バンクと各物理バンクとの間の対応関係を割り当てた状態を表す一実施例の概念図である。
【図４】  各論理バンクと各物理バンクとの対応関係を表す一実施例の概念図である。
【図５】  各論理バンクと各物理バンクとの対応関係を表す一実施例の表である。
【図６】  各論理バンクと各物理バンクとの対応関係を表す一実施例のテーブルである。
【図７】  図８のテーブルと信号ＩＮ＜６３：０＞の各ビットとの間の関係を表す一実施例の表である。
【図８】  物理バンクに接続される信号を表す一実施例の概念図である。
【図９】  信号ＣＯＮＦＩＧ＜２：０＞と連想メモリアレイの物理バンクの構成との対応を表す一実施例の表である。
【図１０】  物理バンク間の優先順位を表す一実施例の表である。
【図１１】  各論理バンクと各物理バンクとの対応関係を表す別の実施例の概念図である。
【図１２】  （ａ）および（ｂ）は、従来の連想メモリを利用したシステムの一例の構成概略図である。
【図１３】  従来の連想メモリを利用したシステムの一例の構成概略図である。
【符号の説明】
１０  連想メモリ
１２  連想メモリアレイ
１４  論理・物理信号変換回路
１６  プライオリティ回路
１８  デコーダ
【図１】
0004343377.tif 000002
【図２】
0004343377.tif 000003
【図３】
0004343377.tif 000004
【図４】
0004343377.tif 000005
【図５】
0004343377.tif 000006
【図６】
0004343377.tif 000007
【図７】
0004343377.tif 000008
【図８】
0004343377.tif 000009
【図９】
0004343377.tif 000010
【図１０】
0004343377.tif 000011
【図１１】
0004343377.tif 000012
【図１２】
0004343377.tif 000013
【図１３】
0004343377.tif 000014