Nothing Special   »   [go: up one dir, main page]

JP4343377B2 - Associative memory - Google Patents

Associative memory Download PDF

Info

Publication number
JP4343377B2
JP4343377B2 JP2000045643A JP2000045643A JP4343377B2 JP 4343377 B2 JP4343377 B2 JP 4343377B2 JP 2000045643 A JP2000045643 A JP 2000045643A JP 2000045643 A JP2000045643 A JP 2000045643A JP 4343377 B2 JP4343377 B2 JP 4343377B2
Authority
JP
Japan
Prior art keywords
physical
bank
signal
logical
associative memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000045643A
Other languages
Japanese (ja)
Other versions
JP2001236790A (en
JP2001236790A5 (en
Inventor
宏 吉澤
正人 米田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Microelectronics Inc
Original Assignee
Kawasaki Microelectronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawasaki Microelectronics Inc filed Critical Kawasaki Microelectronics Inc
Priority to JP2000045643A priority Critical patent/JP4343377B2/en
Publication of JP2001236790A publication Critical patent/JP2001236790A/en
Publication of JP2001236790A5 publication Critical patent/JP2001236790A5/ja
Application granted granted Critical
Publication of JP4343377B2 publication Critical patent/JP4343377B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、異なる構成の複数の連想メモリの機能を1つのデバイスで実現する連想メモリに関するものである。
【0002】
【従来の技術】
近年、インターネットの発展により、例えばスイッチングハブやルータ等のネットワークを構築する中継装置に対して、高速性、高機能が要求されるようになってきている。このような要求に対応するために、これらの装置では、例えばアドレスフィルタリング、パケットの分類処理(クラシフィケーション)等の処理に連想メモリ(CAM:Content Addressable Memory)を使用することが多くなってきた。
【0003】
CAMは、ネットワークのOSI(Open Systems Interconnection)モデルのレイヤー2,3,4の各レイヤーでも使用されることが多い。この場合、検索キーデータの長さは32〜256ビット以上まで様々であり、CAMの機能としては、従来の‘0’と‘1’のみのデータを持つバイナリ(Binary)CAMの構成で十分なものや、これに加えて‘X(Don't care)’のデータを持つターナリ(Ternary)CAM構成の機能が必要なものもある。
【0004】
従って、図12(a)に示すように、レイヤー2〜4で必要な機能に対して、それぞれに適した異なる構成のデバイス、図示例の場合、64ビットのバイナリCAM、64ビットのターナリCAM、256ビットのターナリCAMを使用したり、あるいは、同図(b)に示すように、バイナリCAMの機能をターナリCAMの機能で代用して、大きなサイズの同じ構成のデバイス、図示例の場合、256ビットの3個のターナリCAMを使用して実現している。
【0005】
上記図12(a)の例では、それぞれの機能に適応したCAMを使用するため、各処理をパイプラインにできるが、図中各CAMを制御するネットワークファンクションのブロックが少数または1チップのLSIで構成されている場合にはCAMへの信号ピンの増加が問題となる。また、近年では大容量のCAMが主流であり、メモリ容量の小さいCAMは製造されないため、同図(b)のように、無駄に大容量のCAMを搭載せざるをえないという問題があった。
【0006】
また、同図(b)の例では、多ビットのCAMで全てを満足させようとするために、例えば64ビット長のテーブルを128ビット長のCAMで実現する場合、図13に示すように、データをMSB(最上位ビット)側とLSB(最下位ビット)側に分割登録し、LSB側をマスクしてMSB側を検索し、逆に、MSB側をマスクしてLSB側を検索した後に結果を得るという外部での処理が必要になる。従って、外部回路が複雑になるという問題点があった。
【0007】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術に基づく問題点を解消し、構成の異なる複数の連想メモリを使用するシステムにおいて、コスト的に無駄がなく、制御しやすい連想メモリを提供することにある。
【0008】
【課題を解決するための手段】
上記目的を達成するために、本発明は、複数の物理バンクに分割され、各々の前記物理バンクを異なる構成に設定可能に構成された連想メモリアレイと、
各々の前記物理バンクの構成を設定し、これに対応して各論理バンクの構成を設定し、これら各論理バンクと各物理バンクとの間の対応関係を割り当てて、各々の前記物理バンクを制御する論理・物理信号変換回路と、
前記論理バンクに対応する前記物理バンクに対して検索を行い、各々の前記物理バンクから出力される検索結果について、あらかじめ設定されている優先順位に従って順次出力するプライオリティ回路とを備え、異なる構成の複数の連想メモリの機能を1つのデバイスで実現することを特徴とする連想メモリを提供するものである。
ここで、前記論理・物理信号変換回路は、各々の前記物理バンクに対応して設けられ、外部から設定されて対応する物理バンクの構成を定義するレジスタを有することが好ましい。
また、前記論理・物理信号変換回路は、外部から入力される信号により、前記各論理バンクへの前記物理バンクの1つもしくは複数の割り当てが設定される論理物理変換テーブルを備えることが好ましい。
さらに、前記論理・物理信号変換回路は、前記論理バンクの1つを指定する信号と検索の開始を指示する信号との入力を受け、該1つの論理バンクに対応づけられた1つもしくは複数の物理バンクのみに、検索の開始を指示する信号を出力することが好ましい。
また、前記プライオリティ回路は、前記物理バンクから出力される検索結果に、該当する物理バンクを示すビットを追加して出力することが好ましい。
【0009】
【発明の実施の形態】
以下に、添付の図面に示す好適実施例に基づいて、本発明の連想メモリを詳細に説明する。
【0010】
図1は、本発明の連想メモリの一実施例の構成概略図である。
本発明の連想メモリ(以下、CAMという)10は、バイナリCAM/ターナリCAMの種類の違いや、ビット長の違いを持つ、異なる構成の複数のCAMの機能を1つのデバイスで実現することができるように構成したもので、同図に示すように、連想メモリアレイ12と、論理・物理信号変換回路14と、プライオリティ回路16と、デコーダ18とを備えている。
【0011】
まず、連想メモリアレイ12は、ブロック分割された複数の物理バンクから構成されたもので、図示例の場合、物理バンク0〜7までの8個のブロックに分割されている。各々の物理バンクの構成は、論理・物理信号変換回路14から入力される信号CONFIGに応じて、バイナリCAMあるいはターナリCAMとして使用するかを設定することができ、また、あらかじめ用意されている複数種類のビット長の中から任意のビット長に設定することができる。
【0012】
続いて、論理・物理信号変換回路14は、必要とするCAMの構成に応じて、連想メモリアレイ12の各々の物理バンクの構成を設定し、これに対応して各論理バンクの構成を設定し、これら各論理バンクと連想メモリアレイ12の各物理バンクとの間の対応関係を割り当てることによって、各論理バンクに対応する連想メモリアレイ12の各物理バンクに対して正しくアクセスが行われるように、連想メモリアレイ12の各物理バンクを制御する。
【0013】
ここで、論理・物理信号変換回路14には、信号IN<63:0>、信号LBANK<2:0>、信号SEARCH、信号GENFUL、信号PURGE_HIT、信号TABLE_WRが入力されている。また、論理・物理信号変換回路14からは、連想メモリアレイ12の各々の物理バンクに対して、信号SRCH、信号GNFL、信号PRG_HIT、信号CONFIG<2:0>が出力されている。
【0014】
連想メモリアレイ12には、論理・物理信号変換回路14から入力される各信号の他、信号READ、信号WRITEにより生成される信号RD、信号WR、ADDRESS<14:0>の上位3ビットであるADDRESS<14:12>からデコード回路18によって生成される信号ADDRESS<11:0>、信号DATIN<63:0>が入力され、連想メモリアレイ12からは、プライオリティ回路16に対して、信号HHA<11:0>、信号HEA<11:0>、信号HIT、信号FULLが出力されている。連想メモリアレイ12からは、信号DATOUT<63:0>も合わせて出力されている。
【0015】
最後に、プライオリティ回路16は、あらかじめ設定されている優先順位に従って、連想メモリアレイ12から入力される信号HHA<11:0>、信号HEA<11:0>にアドレス上位3ビットを付加して信号HHA<14:0>、信号HEA<14:0>を順次出力する。本実施例では、連想メモリアレイ12の物理バンク0の優先順位が最も高く、以下順次優先順位が低くなり、物理バンク7の優先順位が最も低いものとする。プライオリティ回路16からは、信号HIT、信号FULLも合わせて出力されている。
【0016】
本発明において、物理バンクとは、連想メモリアレイ12を物理的に複数個のブロックに分割した時の各々のブロックのことである。これに対して、論理バンクとは、論理的に物理バンクのメモリ空間を割り当てたもので、必要に応じて複数個の物理バンクを連結し、これを1つのメモリ空間として使用することもできる。この論理バンクの概念により、個々の物理バンクのメモリ空間を意識することなく、論理バンクのメモリ空間を使用することができる。
【0017】
例えば、図2に示すように、物理バンク0をAビット長のバイナリCAMに設定し、以下同様に、物理バンク1をBビット長のバイナリCAM、物理バンク2をCビット長のバイナリCAM、物理バンク3をAビット長のターナリCAM、物理バンク4をBビット長のターナリCAM、物理バンク5をCビット長のターナリCAM、物理バンク6をAビット長のバイナリCAM、物理バンク7をBビット長のターナリCAMとして設定する。
【0018】
そして、図3に示すように、論理バンク0に、物理バンク0,6を連結したAビット長のバイナリCAMを割り当て、以下同様に、論理バンク1〜3に、それぞれ物理バンク1〜3のBビット長のバイナリCAM、Cビット長のバイナリCAM、Aビット長のターナリCAMを割り当てる。また、論理バンク4に、物理バンク4,7を連結したBビット長のターナリCAMを割り当て、論理バンク5に物理バンク5のCビット長のターナリCAMを割り当てる。
【0019】
本発明のCAM10では、必要とする連想メモリの構成、すなわち、バイナリCAMとして使用するのか、ターナリCAMとして使用するのかのCAMの種類や、必要なビット長に応じて、図2に示すように、連想メモリアレイ12の各々の物理バンクの構成を決定し、必要なワード数に応じて、図3に示すように、複数の物理バンクを連結して各々の論理バンクを構成することにより、構成の異なる複数のCAMの機能を1つのデバイスで実現することができる。
【0020】
以下、図4〜図10に示す実施例を挙げて、本発明のCAM10の動作を具体的に説明する。
【0021】
まず、図4は、図1のCAM10における各論理バンクと各物理バンクとの対応関係を表す一実施例の概念図である。本実施例の場合、同図に示すように、物理バンク0,2,6は64ビット長のバイナリCAMとして設定され、以下同様に、物理バンク1,3,4は128ビット長のターナリCAM、物理バンク5,7は256ビット長のターナリCAMとして設定されている。なお、各々の物理バンクの詳細については後述する。
【0022】
ここで、各々の物理バンクの構成は、既に述べたように、論理・物理信号変換回路14から各々の物理バンクに対して出力される信号CONFIG<2:0>によって設定される。この信号CONFIG<2:0>は、例えば論理・物理信号変換回路14の内部にある3ビット×8個分のレジスタ(図示省略)によって定義され、各々のレジスタは、信号TABLE_WRを与えることにより、CAM10の外部から設定される。
【0023】
また、図示例では、論理バンク0に物理バンク0,2,6を連結して得られる64ビット長、12KワードのバイナリCAM、論理バンク1に物理バンク1,3,4を連結して得られる128ビット長、6KワードのターナリCAM、論理バンク2に物理バンク5,7を連結して得られる256ビット長、2KワードのターナリCAMがそれぞれ割り当てられている。図4の各論理バンクと各物理バンクとの対応関係を図5の表に示す。
【0024】
論理バンクの指定は、信号LBANK<2:0>で行われる。論理バンクと物理バンクとの対応関係は、図6に示すように、例えば論理・物理信号変換回路14の内部にある論理物理変換テーブルによって定義される。この論理物理変換テーブルは、図5に示す各論理バンクと各物理バンクとの対応関係の表に対応するもので、図5の‘Assign(割り当てあり)’、‘No Assign (割り当てなし)’にそれぞれ対応して‘1’、‘0’が設定されている。
【0025】
この論理物理変換テーブルには、信号TABLE_WRを与えることにより、図7に、その対応関係を表すように、信号IN<63:0>から入力される値が設定される。各論理バンクと各物理バンクとの対応関係に基づいて、信号CONFIG<2:0>を定義する8個のレジスタおよび図6の論理物理変換テーブル内容を設定することにより、信号LBANK<2:0>で論理バンクを指定した時に、これに対応する物理バンクを制御することができる。
【0026】
続いて、図8は、物理バンクに接続される信号を表す一実施例の概念図である。同図は、図1に示すCAM10の連想メモリアレイ12の物理バンクを表すもので、物理バンクには、CONFIG<2:0>、SRCH、GNFL、PRG_HIT、WRITE、READ、DATIN<63:0>、ADDRESS<11:0>、HHA<11:0>、HEA<11:0>、HIT、FULL、DATOUT<63:0>の各信号が接続される。
【0027】
まず、CONFIG<2:0>は、連想メモリアレイ12の物理バンクの構成を設定するための信号である。本実施例では、図9の表に示すように、物理バンクをバイナリCAMとして使用するのか、あるいは、ターナリCAMとして使用するのかのCAMの種類の違い、また、ビット長を64,128,256ビットとするのかの違いに応じて、3ビットの信号により、各々の物理バンクの機能構成を6通りの中から指定することができる。
【0028】
次に、ADDRESS<11:0>は、この物理バンクのメモリアドレスを指定する入力信号である。
DATIN<63:0>は、この物理バンクに対するエントリデータや検索キーデータの入力信号である。
DATOUT<63:0>は、物理バンクに格納されているエントリデータを読み出した出力信号である。
【0029】
WRITEは、DATIN<63:0>として入力される64ビットの信号を、ADDRESS<11:0>によって指定されるメモリアドレスに書き込むための入力信号である。
READは、ADDRESS<11:0>によって指定される物理バンクのメモリアドレスに格納されているエントリデータをDATOUT<63:0>として読み出すための入力信号である。
【0030】
SRCHは、この物理バンクに対して検索開始を指示する入力信号である。
HITは、一致検索の結果、この物理バンク内にヒットエントリ、すなわち、検索キーデータと一致するエントリデータが存在するか否かを表す出力信号である。HITは、本実施例の場合、エントリデータの中にヒットエントリが1つでも存在する場合にはローレベルとなり、ヒットエントリが1つも存在しない場合にのみハイレベルとなる。
【0031】
HHA<11:0>は、最優先順位のヒットアドレス(Highest Hit Address )の出力信号である。HHA<11:0>としては、一致検索の結果、前述のHITがローレベルとなり、ヒットエントリが存在する場合に、最も優先順位の高いヒットエントリが格納されているメモリアドレス、すなわち、最優先順位のヒットアドレスが出力される。本実施例の場合、ヒットアドレスの内の最も小さいアドレスが出力される。
【0032】
PRG_HITは、一致検索の結果、HITがローレベルとなり、この物理バンク内にヒットエントリが存在する場合に、このヒットエントリを消去するための入力信号である。
GNFLは、この物理バンク内の最優先順位のエンプティアドレス(HEA:Highest Empty Address )を検索するための入力信号である。このGNFLを入力することにより、HEA<11:0>が出力される。
【0033】
FULLは、この物理バンクに対して前述のGNFLを入力した結果、この物理バンク内にエンプティエントリ、すなわち、一致検索の対象となる有効なエントリデータが格納されていないメモリアドレスが存在するかどうかを表すための出力信号である。FULLは、本実施例の場合、エンプティエントリが全く存在しない場合にのみローレベルとなり、1つでもエンプティエントリが存在する場合にはハイレベルとなる。
【0034】
最後に、HEA<11:0>は、前述の最優先順位のエンプティアドレスの出力信号である。HEA<11:0>としては、GNFLを入力した結果、FULLがハイレベルとなり、物理バンク内にエンプティエントリが存在する場合に、最も優先順位の高いエンプティエントリが格納されているメモリアドレス、すなわち、最優先順位のエンプティアドレスの出力信号である。本実施例では、エンプティアドレスの内の最も小さいアドレスが出力される。
【0035】
図示例の物理バンクは、物理的には64ビット長、4Kワードでメモリ容量256KビットのターナリCAM構成の連想メモリアレイのブロックである。例えば、この物理バンクを128ビット長のバイナリCAMとして設定した場合、異なる64ビットの検索キーデータを用いて2回の一致検索が行われ、検索結果のANDがとられて最終的な検索結果として出力される。これにより、見かけ上、128ビット長のCAMとして動作する。
【0036】
この場合、物理バンクのワード数は、見かけ上半分の2Kワードになる。従って、128ビット長、4KワードのCAMが必要な場合には、2つの物理バンクを連結して1つの論理バンクとして使用することになる。なお、ターナリCAMの‘X(Don't Care)’のデータを適宜設定することにより、ターナリCAMをバイナリCAMとして使用することができる。また、256ビット長のCAMの場合には合計4回のAND検索が行われる。
【0037】
図1に示すCAM10において、信号CONFIG<2:0>、信号SRCH、信号GNFL、信号PRG_HIT、信号WR、信号RD、信号DATIN<63:0>、信号ADDRESS<11:0>、信号HHA<11:0>、信号HEA<11:0>、信号HIT、信号FULL、信号DATOUT<63:0>は、図8に示す物理バンクに接続される各々の信号に対応する信号である。
【0038】
なお、信号SRCH、信号GNFL、信号PRG_HITは、それぞれ論理・物理信号変換回路14に入力される信号SEARCH、信号GENFUL、信号PURGE_HITと図6の論理物理変換テーブルからの出力との論理積をとることにより、信号LBANK<2:0>によって指定される論理バンクで、なおかつ、論理物理変換テーブルに‘1’が設定されている物理バンクに対してのみ出力される信号である。
【0039】
図1に示すCAM10において、まず、一致検索を行う前に、各々の論理バンクに対応する連想メモリアレイ12の各物理メモリに対してエントリデータを書き込む。エントリデータは、信号WRITEを与えることにより、信号ADDRESS<14:0>で指定される論理バンクのメモリアドレス、すなわち、この論理バンクに対応する物理バンクのメモリアドレスに対して信号DATIN<63:0>が書き込まれる。
【0040】
一例として、論理バンク1の128ビット長のターナリCAMに対して一致検索を行う場合、まず、信号LBANK<2:0>=‘001(2進数)’として論理バンク1を指定する。この指定により、図6の論理物理変換テーブルの論理バンク1に対応する行の物理バンクの割り当ての設定=‘01011000’が出力され、対応する物理バンク1,3,4に対してのみ信号SRCH、信号GNFL、信号PRG_HITが与えられる。
【0041】
例えば、DATIN<63:0>として検索キーデータを入力し、かつ、信号SEARCHを入力して検索の開始を指示すると、論理・物理信号変換回路14から、物理バンク1,3,4に対してのみ信号SRCHが与えられ、これらの物理バンク1,3,4でのみ一致検索が開始される。論理バンク1は128ビット長のターナリCAMであるから、既に述べたように、異なる64ビットの検索キーデータを用いて2回のAND検索が行われる。
【0042】
その結果、これらの物理バンク1,3,4に登録されたエントリデータの中で、合計128ビット長の検索キーデータに一致するヒットエントリが存在する場合、信号HITがローレベルとなり、対応する物理バンク1,3,4から、ヒットエントリが登録されているヒットアドレスである信号HHA<11:0>が出力され、これらの信号HITおよび信号HHA<11:0>はプライオリティ回路16に入力される。
【0043】
なお、一致検索の結果、物理バンク1,3,4の中でヒットエントリが存在しない物理バンク、および、信号SRCHが与えられていない物理バンク0,2,5〜7からは、信号HITとしてハイレベルが出力される。
プライオリティ回路16では、各々の物理バンクから入力される信号HITによって優先順位を決定し、最優先順位の信号HHA<11:0>に最優先順位を持った物理バンクの番号3ビットを上位に付加した信号HHA<14:0>を出力する。例えば、最優先順位を持った物理バンクが‘5’ならば、付加される3ビットは‘101’となる。また、合わせて信号HITも出力される。
【0044】
本実施例では、図10の表に示すように、物理バンクの番号が小さいほど優先順位が高く、例えば物理バンク1にヒットエントリが存在する場合には、物理バンク3,4の状態に係わらず、プライオリティ回路16からは、物理バンク1の信号HHA<11:0>が出力され、HHA<14:12>は‘001’となる。また、信号HITは、各々の物理バンク0〜7から入力される信号HITの論理積をとったもので、物理バンク0〜7のいずれかにヒットエントリが存在すればローレベルとなる。
【0045】
同様に、エンプティアドレスの検索を行う場合、論理バンク1を指定すると、これに対応する物理バンク1,3,4に対してのみ、論理・物理信号変換回路14から信号GNFLが与えられる。信号GENFULを入力して、エンプティアドレスの検索を開始すると、前述のように、物理バンク1,3,4に対してのみ信号GNFLが与えられ、これらの物理バンク1,3,4においてエンプティアドレスの検索が開始される。
【0046】
その結果、エンプティアドレスが存在する物理バンク1,3,4の信号FULLはハイレベルとなり、対応する物理バンク1,3,4から、エンプティアドレスである信号HEA<11:0>が出力される。なお、エンプティアドレスの検索の結果、物理バンク1,3,4の中でエンプティアドレスが存在しない物理バンク、および、信号GNFLが与えられていない物理バンク0,2,5〜7からは、信号FULLとしてローレベルが出力される。
【0047】
プライオリティ回路16では、各々の物理バンクから入力される信号FULLによって優先順位を決定し、図10の表に示す優先順位に従って最優先順位の信号HEA<11:0>に最優先順位を持った物理バンクの番号3ビットを上位に付加した信号HEA<14:0>を出力する。また、合わせて信号FULLも出力される。信号FULLは、各々の物理バンク0〜7から入力される信号FULLの論理和をとったもので、物理バンク0〜7のいずれかにエンプティアドレスが存在すればハイレベルとなる。
【0048】
以上のように、本発明のCAM10は、大容量の連想メモリアレイ12を複数の物理バンクのブロックに分割し、これらの物理バンクを論理バンクとして再構成するので、大規模な連想メモリを使用用途に応じて分割して使用することができる。また、大容量の連想メモリアレイ12を分割して検索動作を行わせるため、つまり、論理バンクに対応する物理バンクに対してのみ検索動作が行われるため、消費電力を低減することができる。
【0049】
なお、図示例では、連想メモリアレイ12を8つの物理バンクに分割した場合を例に挙げているが、本発明はこれに限定されず、2つ以上の物理バンクに分割してあればよい。また、実施例では、設定可能なビット長を64,128,256ビットの3種類としたが、これも限定されない。また、別の例を図11に示すように、物理バンクの構成の設定や、論理バンクと物理バンクとの対応関係の設定も何ら限定されず自由に設定することができる。
【0050】
また、上記実施例では、物理バンクの構成を決定する要素として、バイナリCAMなのかターナリCAMなのかというCAMの種類、およびビット長の2つを挙げて説明している。しかし、本発明はこれに限定されず、例えばこれ以外の機能的な違い等を物理バンクの構成を決定する要素として選択可能としてもよい。また、物理バンクの構成を決定する要素として、本発明は、少なくとも1つの要素を含んでいればよい。
【0051】
さらに、上記実施例では、連想メモリアレイ12、論理・物理信号変換回路14、プライオリティ回路16、デコーダ18の具体的な構成回路を図示していないが、本発明では、これらの具体的な回路構成は何ら限定されず、上述する機能を実現する回路であればどのような構成のものであってもよい。特に、論理・物理信号変換回路14は、レジスタやテーブルを用いて構成する場合を例示したが、何ら限定されず、他の回路を用いて構成してもよい。
【0052】
本発明の連想メモリは、基本的に以上のようなものである。
以上、本発明の連想メモリについて詳細に説明したが、本発明は上記実施例に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【0053】
【発明の効果】
以上詳細に説明した様に、本発明の連想メモリは、大容量の連想メモリアレイを複数の物理バンクのブロックに分割し、これら各々の物理バンクを異なる構成に設定可能に構成しておき、これらの物理バンクを論理バンクとして再構成して使用するようにしたものである。
これにより、本発明の連想メモリによれば、大規模な連想メモリを使用用途に応じて分割して使用することができ、構成の異なる複数の連想メモリの機能を1つのデバイスで実現することができるため、コストを削減することができる。また、本発明の連想メモリによれば、論理バンクの概念により、物理バンクのメモリ空間を意識する必要がないため、制御が容易であるという利点がある。また、本発明の連想メモリによれば、論理バンクに対応する物理バンクに対してのみ検索動作が行われるため、全ての連想メモリセルが同時動作する連想メモリでは常に問題となる消費電力も低減することができる。
【図面の簡単な説明】
【図1】 本発明の連想メモリの一実施例の構成概略図である。
【図2】 各々の各物理バンクの構成を設定した状態を表す一実施例の概念図である。
【図3】 各論理バンクと各物理バンクとの間の対応関係を割り当てた状態を表す一実施例の概念図である。
【図4】 各論理バンクと各物理バンクとの対応関係を表す一実施例の概念図である。
【図5】 各論理バンクと各物理バンクとの対応関係を表す一実施例の表である。
【図6】 各論理バンクと各物理バンクとの対応関係を表す一実施例のテーブルである。
【図7】 図8のテーブルと信号IN<63:0>の各ビットとの間の関係を表す一実施例の表である。
【図8】 物理バンクに接続される信号を表す一実施例の概念図である。
【図9】 信号CONFIG<2:0>と連想メモリアレイの物理バンクの構成との対応を表す一実施例の表である。
【図10】 物理バンク間の優先順位を表す一実施例の表である。
【図11】 各論理バンクと各物理バンクとの対応関係を表す別の実施例の概念図である。
【図12】 (a)および(b)は、従来の連想メモリを利用したシステムの一例の構成概略図である。
【図13】 従来の連想メモリを利用したシステムの一例の構成概略図である。
【符号の説明】
10 連想メモリ
12 連想メモリアレイ
14 論理・物理信号変換回路
16 プライオリティ回路
18 デコーダ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an associative memory that realizes the functions of a plurality of associative memories having different configurations with one device.
[0002]
[Prior art]
In recent years, with the development of the Internet, for example, high speed and high functionality have been required for relay apparatuses that construct networks such as switching hubs and routers. In order to respond to such a request, in these devices, for example, content addressable memory (CAM) has been frequently used for processing such as address filtering and packet classification (classification). .
[0003]
CAM is often used in each of layers 2, 3, and 4 of an OSI (Open Systems Interconnection) model of a network. In this case, the length of the search key data varies from 32 to 256 bits or more, and as a CAM function, a conventional binary CAM configuration having only “0” and “1” data is sufficient. Some of them require a function of a ternary CAM configuration having “X (Don't care)” data.
[0004]
Accordingly, as shown in FIG. 12A, devices having different configurations suitable for the functions required in layers 2 to 4, respectively, in the example shown, a 64-bit binary CAM, a 64-bit ternary CAM, A 256-bit ternary CAM is used, or a binary CAM function is substituted for a ternary CAM function, as shown in FIG. This is implemented using three ternary CAMs of bits.
[0005]
In the example of FIG. 12 (a), each process can be pipelined because CAMs adapted to the respective functions are used. However, in the figure, the network function blocks that control each CAM are few or one-chip LSIs. If configured, an increase in signal pins to the CAM becomes a problem. In recent years, a large-capacity CAM has been mainstream, and a CAM with a small memory capacity has not been manufactured. Therefore, there has been a problem that a large-capacity CAM has to be mounted as shown in FIG. .
[0006]
Further, in the example of FIG. 7B, in order to satisfy all with a multi-bit CAM, for example, when a 64-bit table is realized with a 128-bit CAM, as shown in FIG. Data is divided and registered on the MSB (most significant bit) side and LSB (least significant bit) side, the LSB side is masked to search the MSB side, and conversely, the MSB side is masked to search the LSB side. External processing is required to obtain Therefore, there is a problem that the external circuit becomes complicated.
[0007]
[Problems to be solved by the invention]
An object of the present invention is to provide an associative memory which is free from cost and easy to control in a system which uses a plurality of associative memories having different configurations and solves the problems based on the prior art.
[0008]
[Means for Solving the Problems]
To achieve the above object, the present invention provides an associative memory array that is divided into a plurality of physical banks and each of the physical banks can be set to a different configuration.
Set the configuration of each physical bank, set the configuration of each logical bank corresponding to this, assign the correspondence between each logical bank and each physical bank, and control each physical bank Logical / physical signal conversion circuit
A priority circuit that searches the physical bank corresponding to the logical bank and sequentially outputs search results output from the physical banks in accordance with preset priorities. Realize functions of multiple associative memories with different configurations on a single device An associative memory characterized by the above is provided.
Here, it is preferable that the logical / physical signal conversion circuit includes a register which is provided corresponding to each of the physical banks and which is set from the outside and defines the configuration of the corresponding physical bank.
The logical / physical signal conversion circuit preferably includes a logical / physical conversion table in which one or a plurality of allocations of the physical banks to the respective logical banks are set by a signal input from the outside.
Further, the logical / physical signal conversion circuit receives an input of a signal designating one of the logical banks and a signal instructing start of a search, and receives one or a plurality of signals associated with the one logical bank. It is preferable to output a signal instructing the start of the search only to the physical bank.
The priority circuit preferably outputs a search result output from the physical bank by adding a bit indicating the corresponding physical bank.
[0009]
DETAILED DESCRIPTION OF THE INVENTION
The content addressable memory of the present invention will be described below in detail with reference to the preferred embodiments shown in the accompanying drawings.
[0010]
FIG. 1 is a schematic configuration diagram of an embodiment of an associative memory according to the present invention.
The content addressable memory (hereinafter referred to as CAM) 10 of the present invention can realize the functions of a plurality of CAMs having different configurations having different types of binary CAM / ternary CAM and different bit lengths in one device. As shown in the figure, the content addressable memory array 12, the logical / physical signal conversion circuit 14, the priority circuit 16, and the decoder 18 are provided.
[0011]
First, the associative memory array 12 is composed of a plurality of physical banks divided into blocks. In the illustrated example, the associative memory array 12 is divided into eight blocks of physical banks 0 to 7. The configuration of each physical bank can be set as a binary CAM or a tertiary CAM according to the signal CONFIG input from the logical / physical signal conversion circuit 14, and a plurality of types prepared in advance. The bit length can be set to an arbitrary bit length.
[0012]
Subsequently, the logical / physical signal conversion circuit 14 sets the configuration of each physical bank of the associative memory array 12 according to the required configuration of the CAM, and sets the configuration of each logical bank correspondingly. By assigning a correspondence relationship between each logical bank and each physical bank of the associative memory array 12, the physical bank of the associative memory array 12 corresponding to each logical bank is correctly accessed. Each physical bank of the associative memory array 12 is controlled.
[0013]
Here, the signal IN <63: 0>, the signal LBANK <2: 0>, the signal SEARCH, the signal GENFUL, the signal PURGE_HIT, and the signal TABLE_WR are input to the logical / physical signal conversion circuit 14. The logic / physical signal conversion circuit 14 outputs a signal SRCH, a signal GNFL, a signal PRG_HIT, and a signal CONFIG <2: 0> to each physical bank of the associative memory array 12.
[0014]
In the associative memory array 12, in addition to each signal input from the logical / physical signal conversion circuit 14, the upper 3 bits of the signal RD, the signal RD generated by the signal WRITE, the signal WR, and the ADDRESS <14: 0> A signal ADDRESS <11: 0> and a signal DATIN <63: 0> generated from the ADDRESS <14:12> by the decoding circuit 18 are input, and the associative memory array 12 sends a signal HHA < 11: 0>, signal HEA <11: 0>, signal HIT, and signal FULL are output. The associative memory array 12 also outputs a signal DATOUT <63: 0>.
[0015]
Finally, the priority circuit 16 adds the upper 3 bits of the address to the signal HHA <11: 0> and the signal HEA <11: 0> input from the associative memory array 12 in accordance with a preset priority order. HHA <14: 0> and signal HEA <14: 0> are sequentially output. In this embodiment, it is assumed that the priority of the physical bank 0 of the associative memory array 12 is the highest, the priority is subsequently lowered, and the priority of the physical bank 7 is the lowest. The priority circuit 16 also outputs a signal HIT and a signal FULL.
[0016]
In the present invention, a physical bank is each block when the associative memory array 12 is physically divided into a plurality of blocks. On the other hand, a logical bank is a logically allocated memory space of a physical bank, and a plurality of physical banks can be connected as needed and used as one memory space. With this logical bank concept, the memory space of the logical bank can be used without being conscious of the memory space of each physical bank.
[0017]
For example, as shown in FIG. 2, the physical bank 0 is set to an A-bit binary CAM, and similarly, the physical bank 1 is a B-bit binary CAM, the physical bank 2 is a C-bit binary CAM, Bank 3 is an A-bit ternary CAM, physical bank 4 is a B-bit ternary CAM, physical bank 5 is a C-bit ternary CAM, physical bank 6 is an A-bit binary CAM, and physical bank 7 is B-bit long Set as the ternary CAM.
[0018]
Then, as shown in FIG. 3, an A-bit binary CAM obtained by concatenating physical banks 0 and 6 is assigned to logical bank 0. Similarly, B of physical banks 1 to 3 is assigned to logical banks 1 to 3, respectively. A bit length binary CAM, a C bit length binary CAM, and an A bit length ternary CAM are allocated. Further, a B-bit ternary CAM obtained by connecting the physical banks 4 and 7 is allocated to the logical bank 4, and a C-bit ternary CAM of the physical bank 5 is allocated to the logical bank 5.
[0019]
In the CAM 10 of the present invention, as shown in FIG. 2, depending on the required associative memory configuration, that is, the type of CAM used as a binary CAM or a ternary CAM, and the required bit length, The configuration of each physical bank of the associative memory array 12 is determined, and according to the required number of words, a plurality of physical banks are connected to form each logical bank as shown in FIG. A plurality of different CAM functions can be realized by one device.
[0020]
Hereinafter, the operation of the CAM 10 of the present invention will be described in detail with reference to the embodiments shown in FIGS.
[0021]
First, FIG. 4 is a conceptual diagram of an embodiment showing the correspondence between each logical bank and each physical bank in the CAM 10 of FIG. In the case of the present embodiment, as shown in the figure, the physical banks 0, 2, 6 are set as 64-bit binary CAM, and similarly, the physical banks 1, 3, 4 are 128-bit ternary CAM, The physical banks 5 and 7 are set as a 256-bit ternary CAM. Details of each physical bank will be described later.
[0022]
Here, the configuration of each physical bank is set by the signal CONFIG <2: 0> output from the logical / physical signal conversion circuit 14 to each physical bank, as described above. This signal CONFIG <2: 0> is defined by, for example, 3 bits × 8 registers (not shown) in the logic / physical signal conversion circuit 14, and each register gives a signal TABLE_WR. It is set from outside the CAM 10.
[0023]
Further, in the illustrated example, the logical bank 0 is obtained by concatenating the physical banks 0, 2 and 6 with a 64-bit length, 12K word binary CAM, and the logical bank 1 is obtained by concatenating the physical banks 1, 3 and 4. A 128-bit long, 6K-word ternary CAM, and a 256-bit long 2K-word ternary CAM obtained by concatenating the physical banks 5 and 7 to the logical bank 2 are allocated. The correspondence relationship between each logical bank and each physical bank in FIG. 4 is shown in the table of FIG.
[0024]
The designation of the logical bank is performed by signals LBANK <2: 0>. The correspondence relationship between the logical bank and the physical bank is defined by, for example, a logical / physical conversion table in the logical / physical signal conversion circuit 14 as shown in FIG. This logical-physical conversion table corresponds to the correspondence table between each logical bank and each physical bank shown in FIG. 5, and is assigned to “Assign (assigned)” and “No Assign” (not assigned) in FIG. Corresponding to “1” and “0”, respectively.
[0025]
In this logical-physical conversion table, a value input from the signal IN <63: 0> is set in FIG. 7 so as to represent the correspondence relationship by giving the signal TABLE_WR. Based on the correspondence relationship between each logical bank and each physical bank, eight registers that define the signal CONFIG <2: 0> and the logical-physical conversion table of FIG. of By setting the contents, when a logical bank is designated by the signal LBANK <2: 0>, a physical bank corresponding to the logical bank can be controlled.
[0026]
Next, FIG. 8 is a conceptual diagram of an embodiment showing signals connected to a physical bank. This figure shows a physical bank of the content addressable memory array 12 of the CAM 10 shown in FIG. , ADDRESS <11: 0>, HHA <11: 0>, HEA <11: 0>, HIT, FULL, and DATOUT <63: 0>.
[0027]
First, CONFIG <2: 0> is a signal for setting the physical bank configuration of the associative memory array 12. In this embodiment, as shown in the table of FIG. 9, the difference in the type of CAM whether the physical bank is used as a binary CAM or a ternary CAM, and the bit length is 64, 128, 256 bits. Depending on the difference in whether or not, the functional configuration of each physical bank can be designated from among six types by a 3-bit signal.
[0028]
Next, ADDRESS <11: 0> is an input signal for designating the memory address of this physical bank.
DATIN <63: 0> is an input signal for entry data and search key data for this physical bank.
DATOUT <63: 0> is an output signal obtained by reading entry data stored in the physical bank.
[0029]
WRITE is an input signal for writing a 64-bit signal input as DATAIN <63: 0> to a memory address specified by ADDRESS <11: 0>.
READ is an input signal for reading out the entry data stored in the memory address of the physical bank specified by ADDRESS <11: 0> as DATOUT <63: 0>.
[0030]
SRCH is an input signal that instructs the physical bank to start searching.
HIT is an output signal indicating whether or not there is a hit entry, that is, entry data that matches the search key data in this physical bank as a result of the match search. In this embodiment, the HIT is at a low level when there is even one hit entry in the entry data, and is at a high level only when there is no hit entry.
[0031]
HHA <11: 0> is an output signal of the highest priority hit address. As HHA <11: 0>, as a result of matching search, when the above-mentioned HIT becomes low level and there is a hit entry, the memory address storing the hit entry with the highest priority, that is, the highest priority The hit address is output. In this embodiment, the smallest address among the hit addresses is output.
[0032]
PRG_HIT is an input signal for erasing the hit entry when the HIT becomes low level as a result of the match search and there is a hit entry in this physical bank.
GNFL is an input signal for searching for the highest priority empty address (HEA) in the physical bank. By inputting this GNFL, HEA <11: 0> is output.
[0033]
As a result of inputting the above-described GNFL to this physical bank, FULL indicates whether or not there is an empty entry in this physical bank, that is, a memory address in which valid entry data to be searched for matching is not stored. It is an output signal for representing. In the present embodiment, FULL is low level only when there is no empty entry, and is high level when at least one empty entry exists.
[0034]
Finally, HEA <11: 0> is an output signal of the above-mentioned highest priority empty address. As HEA <11: 0>, when GNFL is input and FULL becomes high level and there is an empty entry in the physical bank, the memory address at which the empty entry with the highest priority is stored, that is, This is the output signal of the highest priority empty address. In this embodiment, the smallest address among the empty addresses is output.
[0035]
The physical bank in the illustrated example is a block of an associative memory array having a ternary CAM configuration having a physical length of 64 bits, 4K words, and a memory capacity of 256K bits. For example, if this physical bank is set as a 128-bit binary CAM, two matching searches are performed using different 64-bit search key data, and the AND of the search results is taken as a final search result. Is output. As a result, it apparently operates as a 128-bit CAM.
[0036]
In this case, the number of words in the physical bank is apparently half of 2K words. Therefore, when a CAM of 128 bits length and 4K words is required, two physical banks are connected and used as one logical bank. The ternary CAM can be used as a binary CAM by appropriately setting the “X (Don't Care)” data of the ternary CAM. In the case of a 256-bit CAM, a total of four AND searches are performed.
[0037]
In the CAM 10 shown in FIG. 1, the signal CONFIG <2: 0>, the signal SRCH, the signal GNFL, the signal PRG_HIT, the signal WR, the signal RD, the signal DATIN <63: 0>, the signal ADDRESS <11: 0>, and the signal HHA <11. : 0>, signal HEA <11: 0>, signal HIT, signal FULL, and signal DATOUT <63: 0> are signals corresponding to the signals connected to the physical bank shown in FIG.
[0038]
The signal SRCH, the signal GNFL, and the signal PRG_HIT are logical products of the signal SEARCH, the signal GENFUL, and the signal PURGE_HIT that are input to the logical / physical signal conversion circuit 14 and the output from the logical physical conversion table of FIG. Thus, this signal is output only to a logical bank designated by the signal LBANK <2: 0> and a physical bank for which “1” is set in the logical-physical conversion table.
[0039]
In the CAM 10 shown in FIG. 1, first, before performing a match search, entry data is written to each physical memory of the associative memory array 12 corresponding to each logical bank. The entry data is supplied with the signal WRITE, so that the signal DATIN <63: 0 with respect to the memory address of the logical bank designated by the signal ADDRESS <14: 0>, that is, the memory address of the physical bank corresponding to this logical bank. > Is written.
[0040]
As an example, when a match search is performed on a 128-bit ternary CAM in the logical bank 1, first, the logical bank 1 is designated as a signal LBANK <2: 0> = '001 (binary number)'. By this designation, the setting of physical bank assignment of the row corresponding to the logical bank 1 of the logical-physical conversion table of FIG. 6 = '01011000' is output, and the signal SRCH, Signal GNFL and signal PRG_HIT are applied.
[0041]
For example, when the search key data is input as DATIN <63: 0> and the signal SEARCH is input to start the search, the logical / physical signal conversion circuit 14 applies to the physical banks 1, 3, and 4. Only the signal SRCH is given, and the matching search is started only in these physical banks 1, 3 and 4. Since the logical bank 1 is a 128-bit ternary CAM, as described above, two AND searches are performed using different 64-bit search key data.
[0042]
As a result, if there is a hit entry that matches the search key data with a total length of 128 bits among the entry data registered in these physical banks 1, 3 and 4, the signal HIT goes low, and the corresponding physical data Signals HHA <11: 0>, which are hit addresses in which hit entries are registered, are output from the banks 1, 3 and 4, and these signals HIT and HHA <11: 0> are input to the priority circuit 16. .
[0043]
As a result of the match search, the physical bank 1, 3, 4 that does not have a hit entry and the physical bank 0, 2, 5 to 7 that is not given the signal SRCH are high as the signal HIT. The level is output.
In the priority circuit 16, the priority is determined by the signal HIT input from each physical bank, and the highest priority signal HHA <11: 0> is added with the top 3 bits of the physical bank having the highest priority. Signal HHA <14: 0> is output. For example, if the physical bank having the highest priority is “5”, the added 3 bits are “101”. In addition, a signal HIT is also output.
[0044]
In this embodiment, as shown in the table of FIG. 10, the lower the physical bank number, the higher the priority, and for example, when there is a hit entry in the physical bank 1, regardless of the state of the physical banks 3 and 4 The priority circuit 16 outputs the signal HHA <11: 0> of the physical bank 1 and HHA <14:12> becomes “001”. The signal HIT is the logical product of the signals HIT input from the respective physical banks 0 to 7. If the hit entry exists in any of the physical banks 0 to 7, the signal HIT becomes low level.
[0045]
Similarly, when searching for an empty address, if the logical bank 1 is designated, the signal GNFL is given from the logical / physical signal conversion circuit 14 only to the corresponding physical banks 1, 3 and 4. When the search for the empty address is started by inputting the signal GENFUL, as described above, the signal GNFL is given only to the physical banks 1, 3 and 4, and the empty address of these physical banks 1, 3 and 4 is supplied. The search is started.
[0046]
As a result, the signal FULL of the physical banks 1, 3, and 4 in which the empty address exists is at a high level, and the signal HEA <11: 0> that is an empty address is output from the corresponding physical bank 1, 3, and 4. As a result of the search for the empty address, the physical bank 1, 3, 4 does not have an empty address, and the physical bank 0, 2, 5 to 7 to which the signal GNFL is not given, Is output as a low level.
[0047]
In the priority circuit 16, the priority is determined by the signal FULL input from each physical bank, and the highest priority signal HEA <11: 0> has the highest priority according to the priority shown in the table of FIG. A signal HEA <14: 0> with the bank number 3 bits added to the upper part is output. In addition, a signal FULL is also output. The signal FULL is the logical sum of the signals FULL input from the respective physical banks 0 to 7, and becomes a high level if any of the physical banks 0 to 7 has an empty address.
[0048]
As described above, the CAM 10 of the present invention divides the large-capacity associative memory array 12 into a plurality of physical bank blocks and reconfigures these physical banks as logical banks. It can be divided and used according to. Further, since the search operation is performed by dividing the large-capacity associative memory array 12, that is, the search operation is performed only on the physical bank corresponding to the logical bank, power consumption can be reduced.
[0049]
In the illustrated example, the case where the associative memory array 12 is divided into eight physical banks is described as an example. However, the present invention is not limited to this, and may be divided into two or more physical banks. In the embodiment, the settable bit lengths are three types of 64, 128, and 256 bits, but this is not limited. In addition, as shown in FIG. 11, the setting of the physical bank configuration and the setting of the correspondence relationship between the logical bank and the physical bank can be freely set without any limitation.
[0050]
Further, in the above-described embodiment, two types of CAM type and bit length, which are binary CAM or ternary CAM, are described as elements that determine the configuration of the physical bank. However, the present invention is not limited to this, and for example, other functional differences may be selected as elements that determine the configuration of the physical bank. Further, the present invention only needs to include at least one element as an element for determining the configuration of the physical bank.
[0051]
Further, in the above embodiment, specific configuration circuits of the associative memory array 12, the logical / physical signal conversion circuit 14, the priority circuit 16, and the decoder 18 are not shown, but in the present invention, these specific circuit configurations are shown. Is not limited at all, and any configuration may be used as long as the circuit realizes the above-described function. In particular, the case where the logical / physical signal conversion circuit 14 is configured using a register or a table is illustrated, but the present invention is not limited to this, and may be configured using another circuit.
[0052]
The content addressable memory of the present invention is basically as described above.
The content addressable memory of the present invention has been described in detail above. However, the present invention is not limited to the above-described embodiments, and various improvements and modifications may be made without departing from the spirit of the present invention. .
[0053]
【The invention's effect】
As described in detail above, the associative memory of the present invention divides a large-capacity associative memory array into a plurality of physical bank blocks, and each of these physical banks can be set to different configurations. The physical bank is reconfigured and used as a logical bank.
Thus, according to the associative memory of the present invention, a large-scale associative memory can be divided and used according to usage, and the functions of a plurality of associative memories having different configurations can be realized by one device. Therefore, cost can be reduced. Further, according to the associative memory of the present invention, it is not necessary to be aware of the memory space of the physical bank due to the concept of the logical bank, so that there is an advantage that the control is easy. Further, according to the associative memory of the present invention, the search operation is performed only on the physical bank corresponding to the logical bank. Therefore, the power consumption which is always a problem in the associative memory in which all the associative memory cells operate simultaneously is reduced. be able to.
[Brief description of the drawings]
FIG. 1 is a schematic configuration diagram of an embodiment of an associative memory according to the present invention.
FIG. 2 is a conceptual diagram of an embodiment showing a state in which the configuration of each physical bank is set.
FIG. 3 is a conceptual diagram of an embodiment showing a state in which a correspondence relationship between each logical bank and each physical bank is assigned.
FIG. 4 is a conceptual diagram of an embodiment showing a correspondence relationship between each logical bank and each physical bank.
FIG. 5 is a table showing an example of a correspondence relationship between each logical bank and each physical bank.
FIG. 6 is a table showing an example of a correspondence relationship between each logical bank and each physical bank.
FIG. 7 is a table of an example showing a relationship between the table of FIG. 8 and each bit of the signal IN <63: 0>.
FIG. 8 is a conceptual diagram of an embodiment showing signals connected to a physical bank.
FIG. 9 is a table showing an example of the correspondence between signals CONFIG <2: 0> and the configuration of the physical bank of the associative memory array;
FIG. 10 is a table showing an example of priorities among physical banks.
FIG. 11 is a conceptual diagram of another embodiment showing a correspondence relationship between each logical bank and each physical bank.
FIGS. 12A and 12B are schematic configuration diagrams of an example of a system using a conventional associative memory. FIGS.
FIG. 13 is a schematic configuration diagram of an example of a system using a conventional associative memory.
[Explanation of symbols]
10 Associative memory
12 Associative memory array
14 logic / physical signal conversion circuit
16 priority circuit
18 Decoder

Claims (5)

複数の物理バンクに分割され、各々の前記物理バンクを異なる構成に設定可能に構成された連想メモリアレイと、
各々の前記物理バンクの構成を設定し、これに対応して各論理バンクの構成を設定し、これら各論理バンクと各物理バンクとの間の対応関係を割り当てて、各々の前記物理バンクを制御する論理・物理信号変換回路と、
前記論理バンクに対応する前記物理バンクに対して検索を行い、各々の前記物理バンクから出力される検索結果について、あらかじめ設定されている優先順位に従って順次出力するプライオリティ回路とを備え、異なる構成の複数の連想メモリの機能を1つのデバイスで実現することを特徴とする連想メモリ。
An associative memory array divided into a plurality of physical banks and configured so that each of the physical banks can be set to a different configuration;
Set the configuration of each physical bank, set the configuration of each logical bank corresponding to this, assign the correspondence between each logical bank and each physical bank, and control each physical bank Logical / physical signal conversion circuit
Perform a search against the physical bank corresponding to the logical bank, search result output from each of the physical bank, and a priority circuit that sequentially outputs according to the order that is set in advance, different configurations plurality of An associative memory characterized by realizing the function of the associative memory in one device .
前記論理・物理信号変換回路は、各々の前記物理バンクに対応して設けられ、外部から設定されて対応する物理バンクの構成を定義するレジスタを有することを特徴とする請求項1記載の連想メモリ。  2. The associative memory according to claim 1, wherein the logical / physical signal conversion circuit includes a register which is provided corresponding to each of the physical banks and which is set from the outside and defines a configuration of the corresponding physical bank. . 前記論理・物理信号変換回路は、外部から入力される信号により、前記各論理バンクへの前記物理バンクの1つもしくは複数の割り当てが設定される論理物理変換テーブルを備えることを特徴とする請求項1または2に記載の連想メモリ。  The logical-physical signal conversion circuit includes a logical-physical conversion table in which one or a plurality of allocations of the physical bank to each logical bank is set by a signal input from the outside. The associative memory according to 1 or 2. 前記論理・物理信号変換回路は、前記論理バンクの1つを指定する信号と検索の開始を指示する信号との入力を受け、該1つの論理バンクに対応づけられた1つもしくは複数の物理バンクのみに、検索の開始を指示する信号を出力することを特徴とする請求項1ないし3のいずれかに記載の連想メモリ。  The logical / physical signal conversion circuit receives an input of a signal for designating one of the logical banks and a signal for instructing the start of a search, and one or a plurality of physical banks associated with the one logical bank 4. The associative memory according to claim 1, wherein a signal for instructing the start of the search is output only. 前記プライオリティ回路は、前記物理バンクから出力される検索結果に、該当する物理バンクを示すビットを追加して出力することを特徴とする請求項1ないし4のいずれかに記載の連想メモリ。  5. The content addressable memory according to claim 1, wherein the priority circuit outputs a search result output from the physical bank by adding a bit indicating the corresponding physical bank.
JP2000045643A 2000-02-23 2000-02-23 Associative memory Expired - Fee Related JP4343377B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000045643A JP4343377B2 (en) 2000-02-23 2000-02-23 Associative memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000045643A JP4343377B2 (en) 2000-02-23 2000-02-23 Associative memory

Publications (3)

Publication Number Publication Date
JP2001236790A JP2001236790A (en) 2001-08-31
JP2001236790A5 JP2001236790A5 (en) 2007-03-29
JP4343377B2 true JP4343377B2 (en) 2009-10-14

Family

ID=18568191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000045643A Expired - Fee Related JP4343377B2 (en) 2000-02-23 2000-02-23 Associative memory

Country Status (1)

Country Link
JP (1) JP4343377B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003303495A (en) * 2002-04-09 2003-10-24 Fujitsu Ltd Semiconductor storage device
US6775166B2 (en) * 2002-08-30 2004-08-10 Mosaid Technologies, Inc. Content addressable memory architecture
JP2004152406A (en) 2002-10-30 2004-05-27 Fujitsu Ltd Associative memory
JP2004265528A (en) * 2003-03-03 2004-09-24 Kawasaki Microelectronics Kk Associative memory
JP2005332372A (en) * 2004-04-23 2005-12-02 Ricoh Co Ltd Image processing apparatus and image forming apparatus
JP4994302B2 (en) * 2008-05-30 2012-08-08 Kddi株式会社 Information retrieval device, data processing device, communication traffic measurement device, database survey device, and computer program

Also Published As

Publication number Publication date
JP2001236790A (en) 2001-08-31

Similar Documents

Publication Publication Date Title
USRE43552E1 (en) Block programmable priority encoder in a cam
US7213101B1 (en) Classless interdomain routing using binary content addressable memory having mask bits and mask valid bits
US6243281B1 (en) Method and apparatus for accessing a segment of CAM cells in an intra-row configurable CAM system
US7185141B1 (en) Apparatus and method for associating information values with portions of a content addressable memory (CAM) device
US8345685B2 (en) Method and device for processing data packets
US6732227B1 (en) Network translation circuit and method using a segmentable content addressable memory
US20030182291A1 (en) Method and data structure for a low memory overhead database
US6252789B1 (en) Inter-row configurability of content addressable memory
US20070022246A1 (en) Distributed programmable priority encoder capable of finding the longest match in a single operation
JP2005501369A (en) Content addressable memory with configurable class-based storage partitions
US6725216B2 (en) Partitioning search key thereby distributing table across multiple non-contiguous memory segments, memory banks or memory modules
JP2648548B2 (en) Computer memory
JP3599273B2 (en) Improvement of memory that can refer to contents
JP4343377B2 (en) Associative memory
US20030097605A1 (en) Range check cell and a method for the use thereof
US6751701B1 (en) Method and apparatus for detecting a multiple match in an intra-row configurable CAM system
US6799243B1 (en) Method and apparatus for detecting a match in an intra-row configurable cam system
JPH11102589A (en) Associative memory module
US6813680B1 (en) Method and apparatus for loading comparand data into a content addressable memory system
US7117300B1 (en) Method and apparatus for restricted search operation in content addressable memory (CAM) devices
JP2004265528A (en) Associative memory
US6801981B1 (en) Intra-row configurability of content addressable memory
US6795892B1 (en) Method and apparatus for determining a match address in an intra-row configurable cam device
JP6170718B2 (en) Search system
US6742077B1 (en) System for accessing a memory comprising interleaved memory modules having different capacities

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090604

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090630

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090709

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130717

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees