JP4343377B2 - Associative memory - Google Patents
Associative memory Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital 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
[0004]
Accordingly, as shown in FIG. 12A, devices having different configurations suitable for the functions required in
[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
[0011]
First, the
[0012]
Subsequently, the logical / physical
[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
[0014]
In the
[0015]
Finally, the
[0016]
In the present invention, a physical bank is each block when the
[0017]
For example, as shown in FIG. 2, the
[0018]
Then, as shown in FIG. 3, an A-bit binary CAM obtained by concatenating
[0019]
In the
[0020]
Hereinafter, the operation of the
[0021]
First, FIG. 4 is a conceptual diagram of an embodiment showing the correspondence between each logical bank and each physical bank in the
[0022]
Here, the configuration of each physical bank is set by the signal CONFIG <2: 0> output from the logical / physical
[0023]
Further, in the illustrated example, the
[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
[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
[0027]
First, CONFIG <2: 0> is a signal for setting the physical bank configuration of the
[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
[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
[0039]
In the
[0040]
As an example, when a match search is performed on a 128-bit ternary CAM in the
[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
[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
[0043]
As a result of the match search, the
In the
[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
[0045]
Similarly, when searching for an empty address, if the
[0046]
As a result, the signal FULL of the
[0047]
In the
[0048]
As described above, the
[0049]
In the illustrated example, the case where the
[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
[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 .
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)
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 |
-
2000
- 2000-02-23 JP JP2000045643A patent/JP4343377B2/en not_active Expired - Fee Related
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 |