JP2004280992A - Associative memory - Google Patents

Associative memory Download PDF

Info

Publication number
JP2004280992A
JP2004280992A JP2003073515A JP2003073515A JP2004280992A JP 2004280992 A JP2004280992 A JP 2004280992A JP 2003073515 A JP2003073515 A JP 2003073515A JP 2003073515 A JP2003073515 A JP 2003073515A JP 2004280992 A JP2004280992 A JP 2004280992A
Authority
JP
Japan
Prior art keywords
word
search
data
cam
output
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.)
Pending
Application number
JP2003073515A
Other languages
Japanese (ja)
Inventor
Ryuichi Hata
竜一 籏
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 JP2003073515A priority Critical patent/JP2004280992A/en
Publication of JP2004280992A publication Critical patent/JP2004280992A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an associative memory which allows a correct retrieval result to be always obtained regardless of the performance of word linking and has low power consumption and a high retrieval throughput. <P>SOLUTION: In the associative memory, each one word circuit is provided with; a CAM word which stores a one-word portion of data and retrieves coincidence between stored data and retrieval data to output the retrieval result; a first means which outputs a signal obtained by operating the logic between the retrieval result outputted from the CAM word of the one word circuit and a coincidence flag outputted from a corresponding one word circuit of a CAM block in the preceding stage; a register which latches the signal outputted from the first means as a coincidence flag; a second means which outputs the coincidence flag outputted from the register to a corresponding one work circuit of a CAM block in the succeeding stage; and a third means which outputs the coincidence flag outputted from the register to a priority encoder. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、複数ワードを連結してエントリデータを構成し、検索対象となるエントリデータのビット幅を複数ワード数分のビット幅に拡張するワード連結機能を備える連想メモリに関するものである。
【0002】
【従来の技術】
従来より、複数のワードに記憶されたデータと検索データとの一致検索を同時に行い、検索データに一致するデータが記憶されたワードのアドレス、あるいはこれに関連したデータを出力する機能を有する半導体記憶装置として、内容によりデータ検索を行う連想メモリ(内容アドレス式メモリ(Content Addressable Memory):以下、CAMという)がよく知られている。
【0003】
図14は、従来のCAMの一例のブロック図である。同図に示すCAM70は、図中横方向に配列されたmビットのCAMセルからなるN個のワードW_1,W_2,…,W_nと、mビットの検索データを格納する比較レジスタ72と、mビットのマスクデータを格納するマスクレジスタ74と、mビットの検索ビット線ドライバ76と、N個の一致フラグレジスタMFR_1,MFR_2,…,MFR_nと、プライオリティエンコーダ78とを備えている。
【0004】
なお、CAM70は、上記回路に加えて、通常の半導体記憶装置と同様に、それぞれのワードW_1,W_2,…,W_nに対してデータの書き込み/読み出しを行うためのデコーダ、mビットのデータビット線ドライバ、センスアンプ等の回路を備えているが、ここでは図面の煩雑さを避けるために省略されている。
【0005】
CAM70では、検索前に、それぞれのワードW_1,W_2,…,W_nにデータが記憶される。
【0006】
検索時には、比較レジスタ72に、mビットの検索データが格納され、マスクレジスタ74にはmビットのマスクデータが格納される。mビットの検索データの各々のビットは、mビットのマスクデータの各々対応するビットによってマスク処理され、マスク処理後のmビットの検索データが、検索ビット線ドライバ76によって各々対応するmビットの検索ビット線上にドライブされる。
【0007】
各々のワードW_1,W_2,…,W_nでは、記憶されているmビットのデータとmビットの検索ビット線上にそれぞれドライブされたmビットの検索データとの一致検索が同時(並列)に行われる。その検索結果は、それぞれ一致線ML_1,ML_2,…,ML_nを介して対応する一致フラグレジスタMFR_1,MFR_2,…,MFR_nに一致フラグとして格納される。
【0008】
一致フラグレジスタに格納された一致フラグは、それぞれ一致フラグ出力線MF_1,MF_2,…,MF_nを介してプライオリティエンコーダ78に入力され、所定の優先順位に従って、一致が検出されたワードの中から最優先順位のワードのアドレス(最優先一致アドレス:HMA)が出力される。
【0009】
例えば、検索の結果、一致フラグレジスタMFR_1,MFR_2,…,MFR_nに、一致フラグとして、それぞれ‘0’,‘1’,‘1’,‘0’,…,‘1’,‘0’が格納された場合を説明する。ここで、一致フラグの‘1’は一致あり、‘0’は一致なしを意味するものとする。また、ワードの優先順位は、W_1が最も高く、W_nに向かうに従って順次優先順位が低くなるものとする。
【0010】
この場合、ワードW_2,W_3,…,W_n−1で一致が検出されているので、ワードW_2のアドレスがHMAとして出力される。また、一致フラグレジスタMFR_2に格納された一致フラグを‘0’にクリアすることにより、その次に優先順位の高いワードW_3に対応するアドレスをHMAとして出力することができる。以下同様にして、一致が検出されたワードのアドレスを順次出力することができる。
【0011】
上記のような基本構成を有するCAM70は、ワードが設計上特定のビット幅、上記の例ではmビット幅に固定されており、拡張することができないため、用途が限定されるという問題があった。すなわち、mビットよりも少ないビット幅のデータに対する検索は、マスクレジスタ74にマスクデータを設定し、検索対象となるビット位置を指定することで可能であるが、mビットよりも多いビット幅のデータを検索することはできない。
【0012】
従来のCAM70のこのような問題点を解決する1つの手段として、特許文献1には、検索の対象となるワードを連結することによってCAMのビット幅を2ワードもしくはそれ以上の複数ワードに拡張する技術が提案されている。
【0013】
図15は、特許文献1のCAMで提案されたビット幅拡張回路の構成回路図である。同図に示すビット幅拡張回路80は、各々のワードW_1,W_2,…,W_nにおいて、一致フラグを保持するラッチLT_1,LT_2,…,LT_nを備えている。また、ワードW_2,W_3,…,W_nは、自分自身の検索結果と前段のワードW_1,W_2,…,W_n−1の一致フラグとの論理積をとるANDゲートAD_2,AD_3,…,AD_nを備えている。
【0014】
このビット幅拡張回路80を備える特許文献1のCAMでは、検索を行う前に、初期化信号によって、全てのワードW_1,W_2,…,W_nのラッチLT_1,LT_2,…,LT_nの出力MF_1,MF_2,…,MF_nが全て‘1’、すなわち一致の状態に初期化される。これにより、ワードW_2,W_3,…,W_nのANDゲートAD_2,AD_3,…,AD_nの一方の入力も‘1’となる。
【0015】
例えば、ワード連結を行って、2ワード分のビット幅を持つ検索データで検索を行う場合、まず、2ワード分の検索データのうちの第1の1ワード分の検索データで1回目の検索が行われる。
【0016】
その結果、ワードW_1の検索結果はラッチLT_1に格納される。また、ワードW_2,W_3,…,W_nの検索結果は、ANDゲートAD_2,AD_3,…,AD_nによって、それぞれ前段のワードW_1,W_2,…,W_n−1のラッチLT_1,LT2,…,LT_n−1の出力MF_1,MF_2,…,MF_n−1との論理積がとられ、その演算結果がそれぞれ対応するラッチLT_2,LT_3,…,LT_nに一致フラグとして格納される。
【0017】
1回目の検索の場合、前述の通り、ラッチLT_1,LT_2,…,LT_nの出力MF_1,MF_2,…,MF_nは‘1’であるから、ANDゲートAD_2,AD_3,…,AD_nからは、それぞれワードW_2,W_3,…,W_nの検索結果がそのまま出力され、それぞれ対応するラッチLT_2,LT_3,…,LT_nに格納される。
【0018】
続いて、2ワード分の検索データのうちの第2の1ワード分の検索データで2回目の検索が行われる。
【0019】
2回目の検索の場合、ANDゲートAD_2,AD_3,…,AD_nの一方の入力は1回目の検索結果の一致フラグであるから、ANDゲートAD_2,AD_3,…,AD_nからは、それぞれワードW_1,W_2,…,W_n−1の1回目の一致フラグとワードW_2,W_3,…,W_nの2回目の検索結果の論理積が出力される。すなわち、2ワード分のAND検索が行われる。
【0020】
以上のようにして、特許文献1のCAMでは、kワードを連結して、kワード分のビット幅を持つ検索データで検索を行う場合、それぞれ対応する1ワード分の検索データを用いて、k回のAND検索を行うことによって最終的な検索結果を得ることができる。
【0021】
ところで、特許文献1のCAMでは、上述するビット拡張機能を備えることによって2ワード以上にまたがるデータの検索が可能となっているが、検索データによっては誤った検索結果を出力する場合があるという問題点があった。
【0022】
図16は、特許文献1のCAMにおいて、誤った検索結果を出力する可能性のあるデータ構造の一例の概念図である。同図には、それぞれ属性I,II,III,IVの4つのデータがセットとなって1つのエントリを構成するデータ構造が示されている。各属性I,II,III,IVのデータは、1ワード分のビット長と同じビット長のデータであり、それぞれ別々のワードに格納される。
【0023】
図16に示す各エントリの属性I,II,III,IVのデータを、図17に示すようにCAMの各ワードに登録し、1エントリに相当する4ワード分の検索データとして、例えば‘ABCD’で検索を行う場合、前述のように、まず、1回目の検索では検索データ‘A’で検索を行い、以下順に、2〜4回目の検索でそれぞれ検索データ‘B’、‘C’、‘D’で検索を行うことにより、正しい検索結果を得ることができる。この場合、エントリ2が一致する。
【0024】
これに対し、検索データとして、例えば‘BDAB’で検索を行う場合、エントリ4でのみ一致が検出されるべきであるにも関わらず、エントリ1の属性III,IVおよびエントリ2の属性I,IIにまたがるデータ‘BDAB’においても一致が検出される。
【0025】
また、このようなデータを登録したCAMの使用方法の例として、例えば属性I,IIに登録されているデータのみを対象として検索を行う場合もある。この場合、検索データとして、例えば‘AB’で検索すると、エントリ2のみで一致が検出されるべきであるにも関わらず、エントリ1の属性II,IIIのデータ‘AB’でも誤って一致が検出される。
【0026】
さらに、特許文献1のCAMでは、隣接するワード間でのビット幅拡張を基本としている。このため、隣接していないワードに登録されているデータ間でビット拡張をした検索を行うためには、例えば属性Iと属性IIIという隣接していないデータを対象として検索を行うためには、まず、属性Iの検索データで検索を行った後、全ビットをマスク処理した検索データでダミー検索を行って、全てのエントリの属性IIの検索結果を一致とし、その後に属性IIIの検索データで検索を行う必要がある。
【0027】
しかし、このように冗長なダミー検索はCAMの検索スループットを大幅に低下させるという問題がある。
【0028】
また、CAMでは、全てのワードにおいて同時に検索動作が行われるため、本質的に消費電流が大きいという問題があるが、図16のようなエントリデータで逐次検索を行う場合、例えば属性Iのデータを検索する場合には残りの属性II,III,IVは本来検索動作を行わせる必要がないにも関わらず、特許文献1のCAMでは、常に全てのワード、すなわち全ての属性のデータが検索対象となるため、不要な電流を消費するという問題もあった。
【0029】
また、特許文献1のCAMでは、正しい検索結果を得るためには、検索前に、全てのラッチLT_1,LT_2,…,LT_nを初期化する必要があり、その初期化にかかるステップのために検索スループットが低下するという問題もあった。
【0030】
【特許文献1】
特公昭63−5839号公報
【0031】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術に基づく問題点を解消し、ワード連結を行った場合も常に正しい検索結果を得ることができ、しかも低消費電力、かつ高検索スループットの連想メモリを提供することにある。
【0032】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ワード連結機能を備える連想メモリであって、
複数のCAMブロックを有するCAMアレイと、所定の優先順位付けに従い、一致が検出されたワードのアドレスを出力するプライオリティエンコーダとを備え、
各々の前記CAMブロックは、複数の1ワード回路を備え、
各々の前記1ワード回路は、1ワード分のデータを記憶し、この記憶されたデータと検索データとの一致検索を行って、その検索結果を出力するCAMワードと、当該1ワード回路のCAMワードから出力される検索結果と前段のCAMブロックの対応する1ワード回路から出力される一致フラグとの論理をとった信号を出力する第1手段と、この第1手段から出力される信号を一致フラグとしてラッチするレジスタと、このレジスタから出力される一致フラグを、後段のCAMブロックの対応する1ワード回路に出力する第2手段と、前記レジスタから出力される一致フラグを、前記プライオリティエンコーダに出力する第3手段とを備えることを特徴とする連想メモリを提供するものである。
【0033】
更に、本発明は、前記第1手段は、当該1ワード回路のCAMワードから出力される検索結果をそのまま出力するか、当該1ワード回路のCAMワードから出力される検索結果と前記前段のCAMブロックの対応する1ワード回路から出力される一致フラグとの論理をとった信号を出力するかを制御する手段を備え、
前記レジスタは、前記第1手段から出力される信号をラッチするかどうかを制御する手段を備え、
前記第2手段は、前記レジスタから出力される一致フラグを、前記後段のCAMブロックの対応する1ワード回路に出力するかどうかを制御する手段を備え、
前記第3手段は、前記レジスタから出力される一致フラグを、前記プライオリティエンコーダに出力するかどうかを制御する手段を備えることを特徴とする連想メモリを提供するものである。
【0034】
ここで、前記CAMワードは、初期状態で一致の状態であるのが好ましい。
【0035】
また、複数ワードを連結してエントリデータを構成する場合、検索前に、当該エントリデータを構成する各々の1ワード分のデータを各々対応するCAMブロックの1ワード回路に登録し、検索時に、前記エントリデータを構成する各々の1ワード分のデータとこれに対応する検索データの1ワード分のデータとの一致検索を、前記エントリデータを構成する各々の1ワード分のデータに対応するCAMブロックにおいてのみ順次行うのが好ましい。
【0036】
また、前記エントリデータを構成する全ての1ワード分のデータとこれに対応する検索データの全ての1ワード分のデータとが一致するエントリデータの検索を行うのが好ましい。
【0037】
また、前記エントリデータを構成する一部の1ワード分のデータとこれに対応する検索データの一部の1ワード分のデータとが一致するエントリデータの検索を行うのが好ましい。
【0038】
また、隣接していない前段および後段それぞれのCAMブロックの1ワード回路に登録された1ワード分のデータを順次検索する場合、一致検索が行われない前記前段および後段のCAMブロックの間にあるCAMブロックの1ワード回路において、前記前段のCAMブロックの対応する1ワード回路から出力される一致フラグを、前記後段のCAMブロックの対応する1ワード回路に伝達するのが好ましい。
【0039】
また、検索前に、複数の独立したテーブルに含まれるエントリデータを各々対応するCAMブロックの1ワード回路に登録し、検索時に、検索対象のテーブルに対応するエントリデータが登録されているCAMブロックにおいてのみ一致検索を行うのが好ましい。
【0040】
【発明の実施の形態】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の連想メモリを詳細に説明する。
【0041】
図1は、本発明の連想メモリの一実施形態の構成概略図である。同図に示す連想メモリ(以下、CAMという)10は、1ワードで、もしくは2ワードまたは4ワードを連結(最大4ワードまで連結可能)して1つのエントリを構成するように設定可能なもので、CAMアレイ12と、プライオリティエンコーダ14とを備えている。
【0042】
CAM10において、CAMアレイ12は、それぞれN(N=1,2,3,…)ワードからなる4つのCAMブロックCB_0,CB_1,CB_2,CB_3を備えている。すなわち、CAMアレイ12全体では4Nワードを備えている。従って、CAM10では、1つのエントリが1ワード、2ワードおよび4ワードで構成された場合の総エントリ数は、それぞれ4N個、2N個およびN個となる。
【0043】
なお、CAMアレイ12は、少なくとも最大連結ワード数分以上のCAMブロックを備えていればよい。本実施形態の場合、4個以上いくつのCAMブロックを備えていてもよい。
【0044】
CAMアレイ12の各ワードのアドレスは、それぞれ4n,4n+1,4n+2,4n+3(n=0,1,2,…)で指定される。本実施形態では、CAMブロックCB_0はアドレス4n(0,4,8,…)で指定されるNワードを含み、同様に、CAMブロックCB_1,CB_2,CB_3は、それぞれアドレス4n+1(1,5,9,…)、4n+2(2,6,10,…)、4n+3(3,7,11,…)で指定されるNワードを含む。
【0045】
各々のCAMブロックは、Nワード分の1ワード回路16と、ブロックドライバ18とを備えている。1ワード回路16の詳細は後述する。
【0046】
ブロックドライバ18は、信号KEYD[m−1:0]、信号SLE[3:0]、信号ACIEN[3:0]、信号MFLT[3:0]、信号MFOE[3:0]、信号ACOEN[3:0]に応じて、各々対応するCAMブロックに含まれる全ての1ワード回路16をドライブする。ブロックドライバ18は、検索ビット線ドライバ20と、4個のバッファ22とを備えている。
【0047】
CAMブロックCB_0のブロックドライバ18の検索ビット線ドライバ20および4個のバッファ22には、それぞれ信号SLE[0]、ACIEN[0]、MFLT[0]、MFOE[0]およびACOEN[0]が入力されている。同様に、CAMブロックCB_3,CB_2,CB_1のブロックドライバ18の検索ビット線ドライバ20および4個のバッファ22には、それぞれ対応する信号SLE[3:1]、ACIEN[3:1]、MFLT[3:1]、MFOE[3:1]およびACOEN[3:1]が入力されている。
【0048】
また、各々のCAMブロックのブロックドライバ18の検索ビット線ドライバ20には、検索データである信号KEYD[m−1:0]が共通に入力されている。
【0049】
各CAMブロックの検索ビット線ドライバ20は、検索ビット線イネーブル信号SLE[3:0]の各々対応するビットの状態に応じて、各々CAMブロックCB_3,CB_2,CB_1,CB_0の検索ビット線対SL[m−1:0]、SLN[m−1:0]をドライブする。検索ビット線ドライバ20によってドライブされるm対の検索ビット線対は後述する1ワード回路のCAMワードを構成するmビットのCAMセルに接続されている。また、4個のバッファ22によってドライブされる各信号ACIEN[3:0]、MFLT[3:0]、MFOE[3:0]およびACOEN[3:0]の対応するビットは、各々対応するCAMブロックCB_3,CB_2,CB_1,CB_0に含まれる全ての1ワード回路16に共通に接続されている。
【0050】
CAM10では、信号SLE[3:0]によって指定される検索対象のCAMブロックにおいてのみ検索ビット線対SL[m−1:0],SLN[m−1:0]がドライブされ、一致検索が行われる。従って、複数ワードを連結して1エントリを構成した場合、検索対象外のCAMブロックの検索ビット線対SL[m−1:0],SLN[m−1:0]のドライブが抑止されるので、その分の消費電力を削減することができる。
【0051】
最後に、プライオリティエンコーダ14は、所定の優先順位付けに従って、一致が検出されたワードのアドレスを順次エンコードし、最優先一致アドレスHMAとして出力する。プライオリティエンコーダ14には、全てのワードの一致フラグ出力MFOが入力されており、優先順位の高いワードのアドレスから順次出力される。複数ワードを連結して1エントリを構成した場合、エントリを代表するワードのアドレスが出力される。
【0052】
なお、図面の煩雑さを避けるために省略しているが、CAM10においても、デコーダ、データビット線ドライバ、センスアンプ等の回路は当然備えられている。
【0053】
次に、1ワード回路16について説明する。
【0054】
図2は、1ワード回路の一実施形態の構成概略図である。同図に示す1ワード回路16は、CAMワード24と、ワードロジック26とを備えている。
【0055】
CAMワード24は、1ワード分のデータを記憶し、記憶されているデータと検索データとの一致検索を行って、その検索結果を出力するもので、mビットのCAMセル28と、一致センス回路30とを備えている。
【0056】
図3は、CAMセルの一実施形態の構成回路図である。同図に示すCAMセル28は不一致検出型のCAMセルであり、1ビットのデータを記憶する記憶回路32と、この記憶回路32に記憶された1ビットのデータとこれに対応して検索ビット線対SL,SLN上にドライブされる検索データとを比較し、その検出結果を一致線ML上に出力する比較回路34とを備えている。
【0057】
記憶回路32はSRAM構成のものであり、互いに一方の出力が他方の入力に入力された2つのインバータ36,38と、それぞれデータビット線対BL,BLNと2つのインバータ36,38の入力との間に接続され、そのゲートがワード線WLに共通に接続された2つのN型MOSトランジスタ(以下、NMOSという)40,42とを備えている。SRAMの構成は従来公知であるから、ここではその説明は省略する。
【0058】
なお、記憶回路32としては、1ビットのデータを記憶するものであれば、従来公知のメモリセルがいずれも利用可能である。また、記憶回路32のデータの書き込み/読み出しに係る回路も従来公知のものがいずれも利用可能である。
【0059】
比較回路34は、4つのNMOS44,46,48,50を備えている。NMOS44,46は、一致線MLとグランドとの間に直列に接続され、そのゲートは、それぞれ記憶回路32のデータDおよび検索ビット線SLNに接続されている。また、NMOS48,50も一致線MLとグランドとの間に直列に接続され、そのゲートは、それぞれ記憶回路32の反転データDNおよび検索ビット線SLに接続されている。
【0060】
図4は、一致センス回路の一実施形態の構成回路図である。同図に示す一致センス回路30は、一致線MLと一致センス出力線MTとの間に直列に接続された2つのインバータ52,54と、電源と一致線MLとの間に並列に接続された2つのP型MOSトランジスタ(以下、PMOSという)56,58とを備えている。PMOS56,58のゲートには、それぞれ信号MLPCNおよびインバータ52の出力が接続されている。
【0061】
1ワード回路16では、検索前に、あらかじめ検索ビット線対SL[m−1:0],SLN[m−1:0]が共にディスチャージされて‘00’とされる。また、信号MLPCNが‘L(=0:ローレベル)’とされ、一致センス回路30のPMOS56を介して一致線MLがプリチャージされる。
【0062】
この時、CAMセル28の比較回路34のNMOS46,50は共にオフ状態であり、一致線MLとグランドとの間は非導通状態となる。また、インバータ52の出力は‘L’となり、PMOS58がオン状態となって、一致線MLはPMOS56,58の両方を介してプリチャージされる。また、インバータ54の出力、すなわち一致センス出力線MT上に出力される信号(一致センス出力)は‘H’(=1:ハイレベル)状態となる。
【0063】
検索時には、信号MLPCNが‘H’とされ、PMOS56がオフ状態とされる。また、検索ビット線対SL,SLNが、検索データ(データ1、データ0、ドントケア)に応じて、‘10’,‘01’,‘00’のいずれかにドライブされる。
【0064】
検索ビット線対SL,SLNが‘10’または‘01’にドライブされた場合、それぞれのCAMセル28では、検索データと記憶されているデータとが同じであれば、NMOS44,46のうちの一方、かつNMOS48,50のうちの一方がオフ状態となっており、一致線MLはプリチャージされたままの‘H’の状態に保持される。従って、一致線MLは、全てのCAMセル28において全て一致が検出された場合にのみ‘H’の状態に保持される。
【0065】
これに対し、1つのCAMセル28でも、記憶されているデータと検索データとが異なる場合、NMOS44,46の両方、またはNMOS48,50の両方が共にオン状態となり、一致線MLはディスチャージされて‘L’になる。
【0066】
また、検索ビット線対SL,SLNが‘00’にドライブされた場合、CAMセル28においてNMOS46,50がオフ状態となるため、記憶されているデータに関係なく、一致線MLはプリチャージされたままの‘H’の状態に保持される。
【0067】
一致線ML上に出力された検索結果は、一致センス回路30によって増幅出力される。すなわち、一致線MLがプリチャージされたままの‘H’の状態である場合、一致センス出力MTは、前述の通り‘H’の状態に保持される。これに対し、一致線MLがディスチャージされて‘L’となった場合、インバータ52の出力は‘H’となり、PMOS58はオフ状態となって、一致センス出力MTは‘L’となる。
【0068】
なお、CAMセル28の構成は何ら限定されず、不一致検出型のものでも一致検出型のものでも従来公知のものがいずれも利用可能である。CAM10では、不一致検出型のCAMセルを用いることにより、初期状態で一致センス出力が一致の状態である‘H’となるため、後述するように、隣接していない前段および後段のCAMブロック間で部分検索を行う時に、両者の間にある検索対象外のCAMブロックにおいて、前段のCAMブロックの検索結果を後段のCAMブロックに伝達することができる。
【0069】
続いて、1ワード回路24において、ワードロジック26は、自分自身の検索結果、または自分自身の検索結果と前段の1ワード回路16の一致フラグとの論理積をとった演算結果を一致フラグとして保持する一致フラグレジスタ60と、複数のワードの一致フラグを連結するANDチェーンを構成するOR−AND複合ゲート62およびORゲート64と、エントリの一致フラグを出力するANDゲート66とを備えている。
【0070】
OR−AND複合ゲート62を構成するORゲートの入力端子には、信号ACIおよび信号ACIENが入力され、ANDゲートの入力端子には、一致センス回路30からの一致センス出力が入力されている。OR−AND複合ゲート62の出力は一致フラグレジスタ60に入力されている。一致フラグレジスタ60は、信号MFLTの制御によって、OR−AND複合ゲート62から出力される信号をラッチする。
【0071】
一致フラグレジスタ60の出力は、ORゲート64の一方の入力端子、およびANDゲート66の一方の入力端子に入力されている。ORゲート64の他方の入力端子には信号ACOENが入力され、ORゲート64からは信号ACOが出力されている。また、ANDゲート66の他方の入力端子には信号MFOEが入力され、ANDゲート66からは信号MFOが出力されている。
【0072】
図1に示すように、全てのCAMブロックCB_3,CB_2,CB_1,CB_0の全ての1ワード回路16から出力される信号MFOはプライオリティエンコーダ14に入力されている。また、CAMブロックCB_0のそれぞれの1ワード回路16に入力される信号ACIは電源に接続され、CAMブロックCB_0,CB_1,CB_2のそれぞれの1ワード回路16から出力される信号ACOは、信号ACIとして、それぞれ後段のCAMブロックCB_1,CB_2,CB_3の各々対応する1ワード回路16に入力されている。
【0073】
ここで、信号ACIはANDチェーン入力であり、複数ワードを連結して1エントリを構成する場合に、連結される前段のCAMブロックの対応する1ワード回路16のANDチェーン出力(信号ACO)が入力される。なお、初段のCAMブロックCB_0の1ワード回路16に入力される信号ACIは常に‘H’とされる。また、信号ACIEN[3:0]はACI入力イネーブルであり、‘L’はACI入力が有効、‘H’はACI入力が無効であることを表す。
【0074】
信号MFLT[3:0]は一致フラグレジスタ60のラッチ制御信号であり、‘L’は一致フラグレジスタ60がスルー状態、‘H’は一致フラグレジスタ60がホールド状態であることを表す。
【0075】
信号MFOは、エントリの一致フラグ出力である。また、信号MFOE[3:0]は一致フラグ出力イネーブルであり、‘L’は一致フラグ出力MFOが無効(本実施形態では、信号MFOは‘L’固定)、‘H’は一致フラグ出力MFOが有効であることを表す。
【0076】
信号ACOはANDチェーン出力であり、信号ACIとして、連結される後段のCAMブロックの対応する1ワード回路16に入力される。また、信号ACOEN[3:0]はANDチェーン出力イネーブルであり、‘L’は、ANDチェーン出力(信号ACO)を後段のCAMブロックの対応する1ワード回路16に対して出力することを表し、‘H’は、ANDチェーン出力(信号ACO)を後段のCAMブロックの対応する1ワード回路16に出力しない(本実施形態の場合、信号ACOは‘H’固定)ことを表す。
【0077】
信号KEYD[m−1:0]は検索データである。また、信号SLE[3:0]は、検索ビット線対イネーブルであり、検索対象のCAMブロック22を指示する。‘L’は検索ビット線対SL,SLNがディスエーブル状態、‘H’は検索ビット線対SL,SLNがイネーブル状態となることを表す。信号SLE[3:0]のうち、‘H’であるビットに対応するCAMブロックの検索ビット線対SL,SLNだけに検索データ(信号KEYD[m−1:0])がドライブされる。
【0078】
1ワード回路16では、前述のように、検索の結果、CAMワード24の一致センス回路30から一致センス出力が出力される。ワードロジック26のOR−AND複合ゲート62からは、信号ACIENが‘H’の場合には、一致センス回路30から出力される一致センス出力MTがそのまま出力され、信号ACIENが‘L’の場合には、一致センス回路30から出力される一致センス出力MTと信号ACIとの論理積がとられて、その演算結果が出力される。
【0079】
OR−AND複合ゲート62から出力される信号は、信号MFLTの制御により、一致フラグレジスタ60にラッチされる。本実施形態の場合、検索対象のCAMブロックでは、信号MFLTが所定の期間‘L’とされた後、‘H’とされ、OR−AND複合ゲート62の出力が一致フラグレジスタ60にラッチされる。一方、検索対象外のCAMブロックでは、信号MFLTが常に‘H’とされ、一致フラグレジスタ60のデータは変更されない。
【0080】
ORゲート64からは、信号ACOとして、信号ACOENが‘H’の場合には常に‘H’が出力され、信号ACOENが‘L’の場合には、一致フラグレジスタ60にラッチされた一致フラグが出力される。当該CAMブロックの1ワード回路16と前段のCAMブロックの1ワード回路16が連結されない場合、一致フラグレジスタ60には、当該1ワード回路16の検索結果がラッチされ、連結される場合には前段の1ワード回路の一致フラグと当該1ワード回路の検索結果との論理をとった信号がラッチされる。また、当該CAMブロックの1ワード回路16と後段のCAMブロックの1ワード回路16が連結されない場合、信号ACOENを‘H’とし、信号ACOを‘H’に固定することにより、ORゲート64による電力消費を削減することができる。
【0081】
また、ANDゲート66からは、信号MFOとして、信号MFOEが‘H’の場合には、一致フラグレジスタ60にラッチされた一致フラグが出力され、信号MFOEが‘L’の場合には常に‘L’が出力される。複数ワードを連結して1エントリを構成した場合、検索対象外のCAMブロックの信号MFOEを‘L’とし、信号MFOを‘L’に固定することにより、ANDゲート66による電力消費を削減することができる。
【0082】
また、OR−AND複合ゲート62、ORゲート64、およびANDゲート66を設け、信号ACIEN、信号ACOEN、および信号MFOEの制御により、信号ACI入力、信号ACO出力、および信号MFO出力の有効、無効を制御することによって、一致フラグレジスタ60を初期化することなく一致検索を行うことができる。これにより、初期化にかかるステップを省き、検索スループットを向上させることができる。
【0083】
以下、具体例を挙げてCAM10の動作を説明する。
【0084】
(1)4ワードを連結して構成されたエントリデータの検索(4ワードの全てで一致するエントリデータの検索)
【0085】
4ワードを連結してエントリデータを構成する場合、信号ACOEN[3:0]=‘0000’に設定される。これにより、CAMブロックCB_0,CB_1,CB_2,CB_3の全ての1ワード回路16のANDチェーン出力(信号ACO)が有効となり、4ワードで1エントリが構成される。
【0086】
検索の前に、CAMアレイ12に各エントリデータが登録される。例えば、図16に示す4ワード幅のエントリデータを使用する場合、図5に示すように、各エントリの属性I,II,III,IVのデータが、それぞれCAMブロックCB_0,CB_1,CB_2,CB_3に登録される。検索時には、属性I,II,III,IVの順に、それぞれ対応する1ワード幅の検索データを用いて合計4回の検索(AND検索)が行われる。
【0087】
1回目の検索は、信号KEYD[m−1:0]=属性Iに対応する1ワード幅の検索データ、信号SLE[3:0]=‘0001’、信号ACIEN[3:0]=‘XXXX’、信号MFLT[3:0]=‘1110’、信号MFOE[3:0]=‘0001’の状態で行われる。なお、‘X’はドントケアを意味し、‘0’または‘1’のいずれかの状態に設定される(‘0’または‘1’のどちらに設定してもよい)。
【0088】
すなわち、属性Iのデータが登録されているCAMブロックCB_0の検索ビット線対SL[m−1:0],SLN[m−1:0]だけが、検索データ(信号KEYD[m−1:0])に応じてドライブされる。
【0089】
また、CAMブロックCB_0の一致フラグレジスタ60だけがスルー状態とされ、そのデータが更新される。CAMブロックCB_1,CB_2,CB_3の一致フラグレジスタ60は全てホールド状態とされる。
【0090】
また、CAMブロックCB_0の一致フラグ出力(信号MFO)だけがイネーブル状態とされてプライオリティエンコーダ14に入力される。他のCAMブロックCB_1,CB_2,CB_3の一致フラグ出力はディスエーブル状態とされ全て‘L’に固定、すなわち不一致が検出された状態とされてプライオリティエンコーダ14に入力される。
【0091】
また、CAMブロックCB_0の1ワード回路16に入力される信号ACIは常に‘H’であるから、そのOR−AND複合ゲート62からは、信号ACIENの状態に関わらず一致センス回路30から出力される一致センス出力が出力される。
【0092】
すなわち、1回目の検索は、属性Iのデータが登録されているCAMブロックCB_0でのみ行われ、CAMブロックCB_0から出力される一致フラグ出力(信号MFO)がプライオリティエンコーダ14に入力される。この状態でプライオリティエンコーダ14を動作させることにより、属性Iの部分で一致が検出されたエントリのHMAを出力させることが可能である。
【0093】
また、CAMブロックCB_0のANDチェーン出力(信号ACO)は、ANDチェーン入力(信号ACI)として、後段のCAMブロックCB_1に入力される。
【0094】
続いて、2回目の検索は、信号KEYD[m−1:0]=属性IIに対応する1ワード幅の検索データ、信号SLE[3:0]=‘0010’、信号ACIEN[3:0]=‘XX0X’、信号MFLT[3:0]=‘1101’、信号MFOE[3:0]=‘0010’の状態で行われる。
【0095】
すなわち、属性IIのデータが登録されているCAMブロックCB_1の検索ビット線対SL[m−1:0],SLN[m−1:0]だけが、検索データ(信号KEYD[m−1:0])に応じてドライブされる。また、CAMブロックCB_1の一致フラグレジスタ60だけがスルー状態とされ、そのデータが更新される。また、CAMブロックCB_1の一致フラグ出力(信号MFO)だけがイネーブル状態とされてプライオリティエンコーダ14に入力される。また、CAMブロックCB_1のOR−AND複合ゲート62だけがイネーブル状態とされ、前段のCAMブロックCB_0から出力されるANDチェーン出力(信号ACO)とCAMブロックCB_1の一致センス回路30から出力される一致センス出力との論理積がとられて出力される。
【0096】
すなわち、2回目の検索は、属性IIのデータが登録されているCAMブロックCB_1でのみ行われ、CAMブロックCB_1から出力される一致フラグ出力(信号MFO)、すなわちCAMブロックCB_0とCAMブロックCB_1とのAND検索の結果がプライオリティエンコーダ14に入力される。同様に、この状態でプライオリティエンコーダ14を動作させれば、属性IおよびIIの両方で一致が検出されたエントリのHMAを出力させることが可能である。
【0097】
また、CAMブロックCB_1のANDチェーン出力(信号ACO)は、ANDチェーン入力(信号ACI)として、後段のCAMブロックCB_2に入力される。
【0098】
以下同様にして、3回目の検索は、信号KEYD[m−1:0]=属性IIIに対応する1ワード幅の検索データ、信号SLE[3:0]=‘0100’、信号ACIEN[3:0]=‘X0XX’、信号MFLT[3:0]=‘1011’、信号MFOE[3:0]=‘0100’として行われる。
【0099】
すなわち、3回目の検索は、属性IIIのデータが登録されているCAMブロックCB_2でのみ行われ、CAMブロックCB_2から出力される一致フラグ出力(信号MFO)、すなわちCAMブロックCB_0,CB_1およびCB_2のAND検索の結果がプライオリティエンコーダ14に入力される。同様に、この状態でプライオリティエンコーダ14を動作させれば、属性I,IIおよびIIIの全てで一致が検出されたエントリのHMAを出力させることが可能である。
【0100】
また、4回目の検索は、信号KEYD[m−1:0]=属性IVに対応する1ワード幅の検索データ、信号SLE[3:0]=‘1000’、信号ACIEN[3:0]=‘0XXX’、信号MFLT[3:0]=‘0111’、信号MFOE[3:0]=‘1000’として行われる。
【0101】
すなわち、4回目の検索は、属性IVのデータが登録されているCAMブロックCB_3でのみ行われ、CAMブロックCB_3から出力される一致フラグ出力(信号MFO)、すなわちCAMブロックCB_0,CB_1,CB_2およびCB_3のAND検索の結果がプライオリティエンコーダ14に入力される。同様に、この状態でプライオリティエンコーダ14を動作させれば、属性I,II,III,IVの全てで一致が検出されたエントリのHMAを出力させることが可能である。
【0102】
上記のように、4ワードを連結して構成されたエントリデータに対して検索を行う場合、エントリデータの各属性I,II,III,IVの1ワード分のデータとこれに対応する検索データの各1ワード分のデータ(4ワード幅の検索データの中のどの1ワード幅の検索データを使用するか)とを正しく対応させ、検索対象のCAMブロックでのみ検索を行うことにより、従来のCAMのように、誤った検索結果を出力するのを防ぐことができる。
【0103】
また、上記実施形態では、各属性I,II,III,IVの検索時に信号MFOを出力させているので、各属性の検索後にプライオリティエンコーダ14を動作させることにより、検索の途中結果を出力させることもできる。なお、途中結果が不要な場合は、信号MFOEを‘L’として信号MFO出力を‘L’に固定し、消費電力を削減することができる。この場合、プライオリティエンコーダ14を動作させる必要もない。以下の検索例においても同様である。
【0104】
(2)2ワードを連結して構成されたエントリデータの検索(2ワードの両方で一致するエントリデータの検索)
【0105】
2ワードを連結してエントリデータを構成する場合、信号ACOEN[3:0]=‘1010’に設定される。これにより、CAMブロックCB_0,CB_2の1ワード回路16のANDチェーン出力(信号ACO)が有効、CAMブロックCB_1,CB_3の1ワード回路16のANDチェーン出力が無効である‘H’固定となり、CAMブロックCB_0,CB_1で1エントリが、また、CAMブロックCB_2,CB_3で1エントリがそれぞれ構成される。
【0106】
例えば、図6に示す2ワード幅のエントリデータを使用する場合、図7に示すように、各エントリの属性Iのデータが、それぞれCAMブロックCB_0,CB_2に交互に登録され、各エントリの属性IIのデータが、それぞれCAMブロックCB_1,CB_3に交互に登録される。検索時には、例えば属性I,IIの順に、それぞれ対応する1ワード幅の検索データを用いて合計2回の検索(AND検索)が行われる。
【0107】
1回目の検索は、信号KEYD[m−1:0]=属性Iに対応する1ワード幅の検索データ、信号SLE[3:0]=‘0101’、信号ACIEN[3:0]=‘X1XX’、信号MFLT[3:0]=‘1010’、信号MFOE[3:0]=‘0101’の状態で行われる。
【0108】
すなわち、属性Iのデータが登録されているCAMブロックCB_0,CB_2の検索ビット線対SL[m−1:0],SLN[m−1:0]が同時に、検索データ(信号KEYD[m−1:0])に応じてドライブされる。また、CAMブロックCB_0,CB_2の一致フラグレジスタ60がスルー状態とされ、そのデータが更新される。また、CAMブロックCB_0,CB_2の一致フラグ出力(信号MFO)がイネーブル状態とされてプライオリティエンコーダ14に入力される。また、CAMブロックCB_0,CB_2に入力される信号ACIは‘H’であるから、CAMブロックCB_0,CB_2のOR−AND複合ゲート62からは、信号ACIENの状態に関わらず自分自身の一致センス回路30から出力される一致センス出力が出力される。
【0109】
すなわち、1回目の検索は、属性Iのデータが登録されているCAMブロックCB_0,CB_2でのみ行われ、CAMブロックCB_0,CB_2から出力される一致フラグ出力(信号MFO)がプライオリティエンコーダ14に入力される。この状態でプライオリティエンコーダ14を動作させることにより、プライオリティエンコーダ14から、属性Iの部分で一致が検出されたエントリのHMAを出力させることが可能である。
【0110】
また、CAMブロックCB_0,CB_2のANDチェーン出力(信号ACO)は、ANDチェーン入力(信号ACI)として、それぞれCAMブロックCB_1,CB_3に入力される。
【0111】
2回目の検索は、信号KEYD[m−1:0]=属性IIに対応する1ワード幅の検索データ、信号SLE[3:0]=‘1010’、信号ACIEN[3:0]=‘0X0X’、信号MFLT[3:0]=‘0101’、信号MFOE[3:0]=‘1010’の状態で行われる。
【0112】
すなわち、属性IIのデータが登録されているCAMブロックCB_1,3の検索ビット線対SL[m−1:0],SLN[m−1:0]が同時に、検索データ(信号KEYD[m−1:0])に応じてドライブされる。また、CAMブロックCB_1,CB_3の一致フラグレジスタ60がスルー状態とされ、そのデータが更新される。また、CAMブロックCB_1,CB_3の一致フラグ出力(信号MFO)がイネーブル状態とされてプライオリティエンコーダ14に入力される。また、CAMブロックCB_1では、前段のCAMブロックCB_0から出力されるANDチェーン出力(信号ACO)とCAMブロックCB_1の一致センス回路30から出力される一致センス出力との論理積がとられて出力される。同様に、CAMブロックCB_3では、前段のCAMブロックCB_2から出力されるANDチェーン出力とCAMブロックCB_3の一致センス回路30から出力される一致センス出力との論理積がとられて出力される。
【0113】
すなわち、2回目の検索は、属性IIのデータが登録されているCAMブロックCB_1,CB_3でのみ行われ、CAMブロックCB_1,CB_3から出力される一致フラグ出力(信号MFO)、すなわちCAMブロックCB_0,CB_1のAND検索結果およびCAMブロックCB_2,CB_3のAND検索結果がプライオリティエンコーダ14に入力される。この状態でプライオリティエンコーダ14を動作させることにより、プライオリティエンコーダ14から、属性IおよびIIの両方で一致が検出されたエントリのHMAを出力させることが可能である。
【0114】
(3)1ワードのエントリデータの検索(ワード連結なし)
【0115】
ワード連結を行わない場合、信号ACOEN[3:0]=‘1111’に設定される。これにより、全てのCAMブロックCB_0,CB_1,CB_2,CB_3の1ワード回路のANDチェーン出力(信号ACO)が無効である‘H’に固定され、それぞれのCAMブロックCB_0,CB_1,CB_2,CB_3毎に1エントリが構成される。
【0116】
例えば、図8に示す1ワード幅のエントリデータを使用する場合、図9に示すように、各エントリデータのデータが、それぞれCAMブロックCB_0,CB_1,CB_2,CB_3に順次登録される。検索時には、全てのCAMブロックCB_0,CB_1,CB2,CB_3において同時に、1ワード幅の検索データを用いて検索が行われる。
【0117】
検索は、信号KEYD[m−1:0]=1ワード幅の検索データ、信号SLE[3:0]=‘1111’、信号ACIEN[3:0]=‘XXXX’、信号MFLT[3:0]=‘0000’、信号MFOE[3:0]=‘1111’の状態で行われる。
【0118】
すなわち、全てのCAMブロックCB_0,CB_1,CB_2,CB_3の検索ビット線対SL[m−1:0],SLN[m−1:0]が同時に、検索データ(信号KEYD[m−1:0])に応じてドライブされる。また、全てのCAMブロックCB_0,CB_1,CB_2,CB_3の一致フラグレジスタ60がスルー状態とされ、そのデータが更新される。また、全てのCAMブロックCB_0,CB_1,CB_2,CB_3の一致フラグ出力(信号MFO)がイネーブル状態とされてプライオリティエンコーダ14に入力される。また、全てのCAMブロックCB_0,CB_1,CB_2,CB_3に入力される信号ACIは‘H’であるから、全てのCAMブロックのOR−AND複合ゲート62からは、信号ACIENの状態に関わらず自分自身の一致センス回路30から出力される一致センス出力が出力される。
【0119】
すなわち、検索は、全てのCAMブロックで同時に行われ、全てのCAMブロックから出力される一致フラグ出力(信号MFO)がプライオリティエンコーダ14に入力される。この状態でプライオリティエンコーダ14を動作させることにより、一致が検出されたエントリのHMAを出力させることが可能である。
【0120】
(4)4ワードを連結して構成されたエントリデータの部分検索(4ワードの内の一部が一致するエントリデータの検索)
【0121】
前述のように、4ワードを連結してエントリデータを構成する場合、信号ACOEN[3:0]=‘0000’に設定される。例えば、図5に示すエントリデータが登録された状態のCAMにおいて、隣接する属性IIおよびIIIの部分検索を行う場合を説明する。
【0122】
1回目の検索は、信号KEYD[m−1:0]=属性IIに対応する1ワード幅の検索データ、信号SLE[3:0]=‘0010’、信号ACIEN[3:0]=‘XX1X’、信号MFLT[3:0]=‘1101’、信号MFOE[3:0]=‘0010’の状態で行われる。
【0123】
すなわち、属性IIのデータが登録されているCAMブロックCB_1の検索ビット線対SL[m−1:0],SLN[m−1:0]だけが、検索データ(信号KEYD[m−1:0])に応じてドライブされる。また、CAMブロックCB_1の一致フラグレジスタ60だけがスルー状態とされ、そのデータが更新される。また、CAMブロックCB_1の一致フラグ出力(信号MFO)がイネーブル状態とされてプライオリティエンコーダ14に入力される。また、CAMブロックCB_1のOR−AND複合ゲート62からは、信号ACIの状態に関わらず自分自身の一致センス回路30から出力される一致センス出力が出力される。すなわち、CAMブロックCB_1は、前段のCAMブロックCB_0の検索結果を反映しない。
【0124】
すなわち、1回目の検索は、属性IIのデータが登録されているCAMブロックCB_1でのみ行われ、CAMブロックCB_1から出力される一致フラグ出力(信号MFO)がプライオリティエンコーダ14に入力される。この状態でプライオリティエンコーダ14を動作させることにより、プライオリティエンコーダ14から、属性IIの部分で一致が検出されたエントリのHMAを出力させることが可能である。
【0125】
また、CAMブロックCB_1のANDチェーン出力(信号ACO)は、ANDチェーン入力(信号ACI)として、後段のCAMブロックCB_2に入力される。
【0126】
2回目の検索は、信号KEYD[m−1:0]=属性IIIに対応する1ワード幅の検索データ、信号SLE[3:0]=‘0100’、信号ACIEN[3:0]=‘X0XX’、信号MFLT[3:0]=‘1011’、信号MFOE[3:0]=‘0100’の状態で行われる。
【0127】
すなわち、属性IIIのデータが登録されているCAMブロックCB_2の検索ビット線対SL[m−1:0],SLN[m−1:0]だけが、検索データ(信号KEYD[m−1:0])に応じてドライブされる。また、CAMブロックCB_2の一致フラグレジスタ60がスルー状態とされ、そのデータが更新される。また、CAMブロックCB_2の一致フラグ出力(信号MFO)だけがイネーブル状態とされてプライオリティエンコーダ14に入力される。また、CAMブロックCB_2では、前段のCAMブロックCB_1から出力されるANDチェーン出力(信号ACO)とCAMブロックCB_2の一致センス回路30から出力される一致センス出力との論理積がとられて出力される。
【0128】
すなわち、2回目の検索は、属性IIIのデータが登録されているCAMブロックCB_2でのみ行われ、CAMブロックCB_2から出力される一致フラグ出力(信号MFO)、すなわちCAMブロックCB_1,CB_2のAND検索の結果がプライオリティエンコーダ14に入力される。この状態でプライオリティエンコーダ14を動作させることにより、属性IIおよびIIIの両方で一致が検出されたエントリのHMAを出力させることが可能である。
【0129】
続いて、例えば図5に示すエントリデータが登録された状態のCAMにおいて、隣接していない属性IIおよびIVの部分検索を行う場合を説明する。
【0130】
1回目の検索は、上記隣接する属性IIおよびIIIの検索を行う場合と同じである。
【0131】
2回目の検索は、信号KEYD[m−1:0]=属性IVに対応する1ワード幅の検索データ、信号SLE[3:0]=‘1000’、信号ACIEN[3:0]=‘00XX’、信号MFLT[3:0]=‘0011’、信号MFOE[3:0]=‘1000’の状態で行われる。
【0132】
すなわち、属性IVのデータが登録されているCAMブロックCB_3の検索ビット線対SL[m−1:0],SLN[m−1:0]だけが、検索データ(信号KEYD[m−1:0])に応じてドライブされる。また、CAMブロックCB_2,CB_3の一致フラグレジスタ60がスルー状態とされ、そのデータが更新される。また、CAMブロックCB_3の一致フラグ出力(信号MFO)だけがイネーブル状態とされてプライオリティエンコーダ14に入力される。また、CAMブロックCB_2,CB_3では、それぞれ前段のCAMブロックCB_1,CB_2から出力されるANDチェーン出力(信号ACO)と自分自身の一致センス回路30から出力される一致センス出力との論理積がとられて出力される。
【0133】
なお、CAMブロックCB_2では、検索ビット線対SL,SLNがドライブされないため、その一致センス出力は初期状態の‘H’であり、OR−AND複合ゲート62からは信号ACI、すなわちCAMデバイスCB_1のANDチェーン出力が出力される。従って、CAMブロックCB_3には、CAMブロックCB_2を介してCAMブロックCB_1から出力されるANDチェーン出力が入力され、CAMブロックCB_1から出力されるANDチェーン出力と自分自身の一致センス出力との論理積がとられて出力される。
【0134】
すなわち、2回目の検索は、属性IVのデータが登録されているCAMブロックCB_3でのみ行われ、CAMブロックCB_3から出力される一致フラグ出力(信号MFO)、すなわちCAMブロックCB_1,CB_3のAND検索の結果がプライオリティエンコーダ14に入力される。この状態でプライオリティエンコーダ14を動作させることにより、属性IIおよびIVの両方で一致が検出されたエントリのHMAを出力させることが可能である。
【0135】
このように、CAM10では、隣接していないCAMブロック間のデータの部分検索を行う場合も、従来のCAMのようにダミー検索を行う必要がなく、検索スループットの低下を防止できる。
【0136】
(5)2ワードを連結して構成されたエントリデータをそれぞれ独立した2つのテーブルに登録した場合の検索(2ワードの両方で一致するエントリデータの検索)
【0137】
前述の通り、2ワードを連結してエントリデータを構成する場合、信号ACOEN[3:0]=‘1010’に設定される。これにより、CAMブロックCB_0,CB_2の1ワード回路のANDチェーン出力(信号ACO)が有効となり、CAMブロックCB_0,CB_1で1エントリが、また、CAMブロックCB_2,CB_3で1エントリがそれぞれ構成される。
【0138】
例えば、図10に示す2つのテーブル1,2にそれぞれ含まれる2ワード幅のエントリデータを使用する場合、図11に示すように、テーブル1の各エントリデータの属性I,IIのデータが、それぞれCAMブロックCB_0,CB_1に登録され、テーブル2の各エントリの属性I,IIのデータが、それぞれCAMブロックCB_2,CB_3に登録される。検索時には、例えばテーブル1に対して、属性I,IIの順に、それぞれ対応する1ワード幅の検索データを用いて合計2回の検索(AND検索)が行われる。また、テーブル2についても同様である。
【0139】
以下、テーブル2のエントリを検索する場合を説明する。
【0140】
1回目の検索は、信号KEYD[m−1:0]=属性Iに対応する1ワード幅の検索データ、信号SLE[3:0]=‘0100’、信号ACIEN[3:0]=‘X1XX’、信号MFLT[3:0]=‘1011’、信号MFOE[3:0]=‘0100’の状態で行われる。
【0141】
すなわち、テーブル2の属性Iのデータが登録されているCAMブロックCB_2の検索ビット線対SL[m−1:0],SLN[m−1:0]だけが、検索データ(信号KEYD[m−1:0])に応じてドライブされる。また、CAMブロックCB_2の一致フラグレジスタ60がスルー状態とされ、そのデータが更新される。また、CAMブロックCB_2の一致フラグ出力(信号MFO)がイネーブル状態とされてプライオリティエンコーダ14に入力される。また、CAMブロックCB_2のOR−AND複合ゲート62からは、信号ACIに関わらず、自分自身の一致センス回路30から出力される一致センス出力が出力される。
【0142】
すなわち、1回目の検索は、テーブル2の属性Iのデータが登録されているCAMブロックCB_2でのみ行われ、CAMブロックCB_2から出力される一致フラグ出力(信号MFO)がプライオリティエンコーダ14に入力される。この状態でプライオリティエンコーダ14を動作させることにより、プライオリティエンコーダ14から、テーブル2の属性Iの部分で一致が検出されたエントリのHMAを出力させることが可能である。
【0143】
また、CAMブロックCB_2のANDチェーン出力(信号ACO)は、ANDチェーン入力(信号ACI)として、後段のCAMブロックCB_3に入力される。
【0144】
2回目の検索は、信号KEYD[m−1:0]=属性IIに対応する1ワード幅の検索データ、信号SLE[3:0]=‘1000’、信号ACIEN[3:0]=‘0XXX’、信号MFLT[3:0]=‘0111’、信号MFOE[3:0]=‘1000’の状態で行われる。
【0145】
すなわち、テーブル2の属性IIのデータが登録されているCAMブロックCB_3の検索ビット線対SL[m−1:0],SLN[m−1:0]だけが、検索データ(信号KEYD[m−1:0])に応じてドライブされる。また、CAMブロックCB_3の一致フラグレジスタ60がスルー状態とされ、そのデータが更新される。また、CAMブロックCB_3の一致フラグ出力(信号MFO)がイネーブル状態とされてプライオリティエンコーダ14に入力される。また、CAMブロックCB_3のOR−AND複合ゲート62からは、前段のCAMブロックCB_2から出力されるANDチェーン出力とCAMブロックCB_3の一致センス回路30から出力される一致センス出力との論理積がとられて出力される。
【0146】
すなわち、2回目の検索は、テーブル2の属性IIのデータが登録されているCAMブロックCB_3でのみ行われ、CAMブロックCB_3から出力される一致フラグ出力(信号MFO)、すなわちCAMブロックCB_2,CB_3のAND検索結果がプライオリティエンコーダ14に入力される。この状態でプライオリティエンコーダ14を動作させることにより、プライオリティエンコーダ14から、テーブル2の属性IおよびIIの両方で一致が検出されたエントリのHMAを出力させることが可能である。
【0147】
(6)1ワードのエントリデータをそれぞれ独立した4つのテーブルに登録した場合の検索(ワード連結なし)
【0148】
ワード連結を行わない場合、前述の通り、信号ACOEN[3:0]=‘1111’に設定される。これにより、全てのCAMブロックCB_0,CB_1,CB_2,CB_3の1ワード回路のANDチェーン出力(信号ACO)が無効である‘H’に固定され、それぞれのCAMブロックCB_0,CB_1,CB_2,CB_3毎に1エントリが構成される。
【0149】
例えば、図12に示す4つのテーブル1,2,3,4にそれぞれ含まれる1ワード幅のエントリデータを使用する場合、図13に示すように、テーブル1の各エントリデータがCAMブロックCB_0に登録され、以下同様に、テーブル2,3,4の各エントリデータがそれぞれCAMブロックCB_1,CB_2,CB3に登録される。検索時には、検索対象のテーブルに対して1ワード幅の検索データを用いて検索が行われる。
【0150】
以下、テーブル3のエントリを検索する場合を説明する。
【0151】
検索は、信号KEYD[m−1:0]=1ワード幅の検索データ、信号SLE[3:0]=‘0100’、信号ACIEN[3:0]=‘X1XX’、信号MFLT[3:0]=‘1011’、信号MFOE[3:0]=‘0100’の状態で行われる。
【0152】
すなわち、テーブル3のエントリデータが登録されているCAMブロックCB_2の検索ビット線対SL[m−1:0],SLN[m−1:0]だけが、検索データ(信号KEYD[m−1:0])に応じてドライブされる。また、CAMブロックCB_2の一致フラグレジスタ60がスルー状態とされ、そのデータが更新される。また、CAMブロックCB_2の一致フラグ出力(信号MFO)がイネーブル状態とされてプライオリティエンコーダ14に入力される。また、CAMブロックCB_2のOR−AND複合ゲート62からは、信号ACIに関わらず、自分自身の一致センス回路30から出力される一致センス出力が出力される。
【0153】
すなわち、検索は、テーブル3のエントリデータが登録されているCAMブロックCB_2でのみ行われ、CAMブロックCB_2から出力される一致フラグ出力(信号MFO)がプライオリティエンコーダ14に入力される。この状態でプライオリティエンコーダ14を動作させることにより、テーブル3で一致が検出されたエントリのHMAを出力させることが可能である。
【0154】
以上のように、CAM10では、4ワード連結、2ワード連結、ワード連結なしのいずれの状態でも検索を行うことができる。また、4ワード連結を行った場合、4ワードの全てで一致するエントリを検索することもできるし、あるいは4ワードのうちの一部のみが一致するエントリを検索することもできる。また、検索対象となるエントリデータを複数のテーブルに分けて登録し、各々のテーブルに含まれるエントリデータに対してのみ検索を行うことも可能である。
【0155】
なお、本発明のCAMは、上記各実施形態に限定されず、いくつのワードを連結して1エントリを構成可能としてもよい。また、使用するテーブル数も何ら制限されず、必要に応じて適宜決定すればよい。また、信号ACI,ACIEN,MFLT,ACO,ACOEN,MFO,MFOE等の各信号の極性は必要に応じて適宜変更してもよく、1ワード回路の構成はこれら各信号の極性に応じて適宜設計されるべきものである。
【0156】
本発明の連想メモリは、基本的に以上のようなものである。
以上、本発明の連想メモリについて詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【0157】
【発明の効果】
以上詳細に説明した様に、本発明の連想メモリは、ワード連結あり、ワード連結なしのいずれの状態でも検索を正しく行うことができる。また、ワード連結を行う場合、全てのワードあるいは一部のワードで一致するエントリを検索したり、検索対象となるエントリを複数のテーブルに分けて登録し、テーブル毎に別々に検索を行うなど、各種の検索動作をさせることが可能である。
また、本発明の連想メモリでは、ワード連結を行う場合、エントリデータの各1ワード分のデータとこれに対応する検索データの各1ワード分のデータとを正しく対応させて検索を行うことにより、従来の連想メモリで問題になっていた誤一致の発生を防ぐことができる。
また、本発明の連想メモリでは、CAMアレイを複数のCAMブロックに分割し、検索時には検索対象のCAMブロックでのみ検索が行われるため、不要な電流の消費を抑えることができる。
また、本発明の連想メモリでは、一致フラグレジスタを初期化することなく検索を行うことができるため、初期化にかかるステップが不要であり、従来よりも検索スループットを向上させることができる。また、複数ワードを連結してエントリを構成した場合に、隣接していないCAMブロック間で部分検索を行う場合も、検索対象外のCAMブロックにおいてダミー検索を行う必要がないため、従来よりも検索スループットを向上させることができる。
【図面の簡単な説明】
【図1】本発明の連想メモリの一実施形態の構成概略図である。
【図2】図1に示す連想メモリで用いられる1ワード回路の構成概略図である。
【図3】図2に示す1ワード回路で用いられるCAMセルの構成回路図である。
【図4】図2に示す1ワード回路で用いられる一致センス回路の構成回路図である。
【図5】図16に示す4ワード幅のエントリデータをCAMアレイに登録した状態を示す概念図である。
【図6】2つの属性データからなる2ワード幅のエントリデータの概略図である。
【図7】図6に示す2ワード幅のエントリデータをCAMアレイに登録した状態を表す概念図である。
【図8】1ワード幅のエントリデータの概略図である。
【図9】図8に示す1ワード幅のエントリデータをCAMアレイに登録した状態を表す概略図である。
【図10】2ワード幅のエントリデータからなる2つのテーブルを表す概略図である。
【図11】図10に示す2つのテーブルの2ワード幅のエントリデータをCAMアレイに登録した状態を表す概念図である。
【図12】1ワード幅のエントリデータからなる4つのテーブルを表す概略図である。
【図13】図12に示す4つのテーブルの1ワード幅のエントリデータをCAMアレイに登録した状態を表す概略図である。
【図14】従来のCAMの一例のブロック図である。
【図15】従来のビット幅拡張回路の一例の構成回路図である。
【図16】4つの属性データからなる4ワード幅のエントリデータの一例を示す概略図である。
【図17】図16に示すエントリデータの登録例を示す概念図である。
【符号の説明】
10,70 連想メモリ
12 CAMアレイ
14,78 プライオリティエンコーダ
16 1ワード回路
18 ブロックドライバ
20 検索ビット線ドライバ
22 バッファ
24 CAMワード
26 ワードロジック
28 CAMセル
30 一致センス回路
32 記憶回路
34 比較回路
36,38,52,54 インバータ
40,42,44,46,48,50 N型MOSトランジスタ
56,58 P型MOSトランジスタ
60,MFR_1,MFR_2,…,MFR_n 一致フラグレジスタ
62 OR−AND複合ゲート
64 ORゲート
66,AD_2,AD_3,…,AD_n ANDゲート
72 比較レジスタ
74 マスクレジスタ
76 検索ビット線ドライバ
80 ビット幅拡張回路
CB_0,CB_1,CB_2,CB_3 CAMブロック
W_1,W_2,…,W_n ワード
LT_1,LT_2,…,LT_n ラッチ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an associative memory having a word linking function of linking a plurality of words to form entry data and expanding the bit width of entry data to be searched to a bit width corresponding to the number of words.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, a semiconductor memory having a function of simultaneously performing a match search between data stored in a plurality of words and search data and outputting an address of a word in which data matching the search data is stored, or data related thereto As an apparatus, an associative memory (Content Addressable Memory: hereinafter, referred to as CAM) for performing data search according to contents is well known.
[0003]
FIG. 14 is a block diagram of an example of a conventional CAM. The CAM 70 shown in FIG. 7 includes N words W_1, W_2,..., W_n composed of m-bit CAM cells arranged in the horizontal direction in the figure, a comparison register 72 for storing m-bit search data, and an m-bit , MFR_1, MFR_2,..., MFR_n, and a priority encoder 78.
[0004]
The CAM 70 includes, in addition to the above circuits, a decoder for writing / reading data to / from each of the words W_1, W_2,..., W_n, similarly to a normal semiconductor memory device, and an m-bit data bit line. Although circuits such as a driver and a sense amplifier are provided, they are omitted here to avoid complexity of the drawing.
[0005]
In the CAM 70, data is stored in each of the words W_1, W_2,..., W_n before the search.
[0006]
At the time of search, m bits of search data are stored in the comparison register 72, and m bits of mask data are stored in the mask register 74. Each bit of the m-bit search data is masked by a corresponding bit of the m-bit mask data, and the m-bit search data after the mask processing is searched by the search bit line driver 76 for the corresponding m-bit search data. Driven on bit line.
[0007]
In each of the words W_1, W_2,..., W_n, the coincidence search between the stored m-bit data and the m-bit search data driven on the m-bit search bit line is performed simultaneously (in parallel). The search results are stored as match flags in the corresponding match flag registers MFR_1, MFR_2,..., MFR_n via the match lines ML_1, ML_2,.
[0008]
The match flag stored in the match flag register is input to the priority encoder 78 via the match flag output lines MF_1, MF_2,..., MF_n, and is given the highest priority among words in which a match is detected according to a predetermined priority. The address of the word of the order (highest priority match address: HMA) is output.
[0009]
For example, as a result of the search, '0', '1', '1', '0', ..., '1', '0' are stored as match flags in the match flag registers MFR_1, MFR_2, ..., MFR_n, respectively. The following describes the case. Here, the match flag “1” means that there is a match, and “0” means that there is no match. In addition, it is assumed that the word has the highest priority in W_1, and the priority decreases sequentially toward W_n.
[0010]
In this case, since a match is detected in words W_2, W_3,..., W_n−1, the address of word W_2 is output as HMA. Also, by clearing the match flag stored in the match flag register MFR_2 to '0', the address corresponding to the next highest word W_3 can be output as HMA. In the same manner, the addresses of the words for which a match is detected can be sequentially output.
[0011]
In the CAM 70 having the above-described basic configuration, the word is fixed to a specific bit width in design, and in the above example, the width is fixed to m bits. . That is, a search for data having a bit width smaller than m bits can be performed by setting mask data in the mask register 74 and specifying a bit position to be searched. Can not be searched.
[0012]
As one means for solving such a problem of the conventional CAM 70, Patent Document 1 discloses that the bit width of the CAM is extended to two words or more words by concatenating words to be searched. Technology has been proposed.
[0013]
FIG. 15 is a configuration circuit diagram of a bit width extension circuit proposed in the CAM of Patent Document 1. The bit width expansion circuit 80 shown in FIG. 7 includes latches LT_1, LT_2,..., LT_n for holding a match flag in each of the words W_1, W_2,. .., W_n are provided with AND gates AD_2, AD_3,..., AD_n which take the logical product of their own search results and the match flags of the preceding words W_1, W_2,. ing.
[0014]
In the CAM of Patent Document 1 including the bit width extension circuit 80, before performing a search, outputs MF_1 and MF_2 of latches LT_1, LT_2,..., LT_n of all the words W_1, W_2,. ., MF_n are all initialized to “1”, that is, the state of coincidence. Thereby, one of the inputs of the AND gates AD_2, AD_3,..., AD_n of the words W_2, W_3,.
[0015]
For example, in a case where search is performed using search data having a bit width of two words by performing word concatenation, first, the first search is performed using the search data of the first one word of the search data of two words. Done.
[0016]
As a result, the search result of the word W_1 is stored in the latch LT_1. , W_n are latched LT_1, LT2,..., LT_n−1 of the preceding words W_1, W_2,..., W_n−1 by AND gates AD_2, AD_2,. , MF_2,..., MF_n−1, and the operation result is stored as a match flag in the corresponding latches LT_2, LT_3,.
[0017]
In the case of the first search, as described above, the outputs MF_1, MF_2,..., MF_n of the latches LT_1, LT_2,..., LT_n are “1”. The search results of W_2, W_3,..., W_n are output as they are and stored in the corresponding latches LT_2, LT_3,.
[0018]
Subsequently, a second search is performed using the second one-word search data of the two-word search data.
[0019]
In the case of the second search, one of the inputs of the AND gates AD_2, AD_3,..., AD_n is a match flag of the first search result, so that the AND gates AD_2, AD_3,. ,..., W_n−1 and the second search result of the words W_2, W_3,. That is, an AND search for two words is performed.
[0020]
As described above, in the CAM of Patent Document 1, when k words are concatenated and a search is performed using search data having a bit width of k words, k words are searched for using the corresponding search data of 1 word. The final search result can be obtained by performing the AND search twice.
[0021]
By the way, in the CAM of Patent Document 1, it is possible to search data extending over two or more words by providing the above-described bit extension function. However, there is a problem that an erroneous search result may be output depending on search data. There was a point.
[0022]
FIG. 16 is a conceptual diagram of an example of a data structure that may output an incorrect search result in the CAM of Patent Document 1. FIG. 1 shows a data structure in which four data items having attributes I, II, III, and IV form a set, respectively. The data of each of the attributes I, II, III, and IV has the same bit length as the bit length of one word, and is stored in separate words.
[0023]
Data of the attributes I, II, III, and IV of each entry shown in FIG. 16 is registered in each word of the CAM as shown in FIG. 17, and as search data for four words corresponding to one entry, for example, "ABCD" As described above, first, the search is performed using the search data 'A' in the first search, and the search data 'B', 'C', ' By performing a search with D ', a correct search result can be obtained. In this case, entry 2 matches.
[0024]
On the other hand, when a search is performed using, for example, “BDAB” as search data, the attributes III and IV of the entry 1 and the attributes I and II of the entry 2 despite the fact that a match should be detected only in the entry 4 A match is also detected in the data “BDAB” that straddles.
[0025]
Further, as an example of a method of using a CAM in which such data is registered, for example, a search may be performed only for data registered in attributes I and II. In this case, when a search is performed using, for example, “AB” as search data, a match is erroneously detected even in the data “AB” of the attributes II and III of the entry 1 although a match should be detected only in the entry 2. Is done.
[0026]
Further, the CAM of Patent Document 1 is based on the extension of the bit width between adjacent words. Therefore, in order to perform a search with bit expansion between data registered in non-adjacent words, for example, to perform a search on non-adjacent data of attribute I and attribute III, first, After performing a search with the search data of the attribute I, a dummy search is performed with the search data in which all the bits are masked, and the search results of the attribute II of all entries are matched, and thereafter, the search is performed with the search data of the attribute III Need to do.
[0027]
However, there is a problem that such a redundant dummy search significantly reduces the CAM search throughput.
[0028]
Further, in the CAM, since the search operation is performed simultaneously for all the words, there is a problem that the current consumption is essentially large. However, when performing the sequential search using the entry data as shown in FIG. In the case of searching, the CAM of Patent Document 1 always searches all words, that is, data of all attributes, even though the remaining attributes II, III, and IV do not originally need to perform the search operation. Therefore, there is a problem that unnecessary current is consumed.
[0029]
Further, in the CAM of Patent Document 1, in order to obtain a correct search result, it is necessary to initialize all the latches LT_1, LT_2,..., LT_n before the search. There is also a problem that the throughput is reduced.
[0030]
[Patent Document 1]
JP-B-63-5839
[0031]
[Problems to be solved by the invention]
SUMMARY OF THE INVENTION It is an object of the present invention to provide a content addressable memory that solves the above-described problems of the related art, can always obtain correct search results even when word concatenation is performed, and has low power consumption and high search throughput. It is in.
[0032]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides an associative memory having a word connection function,
A CAM array having a plurality of CAM blocks, and a priority encoder that outputs an address of a word in which a match is detected according to a predetermined priority order;
Each of the CAM blocks includes a plurality of one-word circuits,
Each of the one-word circuits stores data of one word, performs a match search between the stored data and search data, and outputs a search result, and a CAM word of the one-word circuit. Means for outputting a signal obtained by taking the logic of the search result output from the CAM block and a match flag output from the corresponding one-word circuit of the preceding CAM block, and a signal output from the first means as a match flag A second means for outputting a match flag output from this register to a corresponding one-word circuit of a CAM block at a subsequent stage, and a match flag output from the register to the priority encoder And a third means.
[0033]
Further, according to the present invention, the first means outputs the search result output from the CAM word of the one-word circuit as it is, or outputs the search result output from the CAM word of the one-word circuit and the CAM block of the preceding stage. Means for controlling whether to output a signal obtained by taking a logic with a match flag output from a corresponding one-word circuit,
The register includes means for controlling whether to latch a signal output from the first means,
The second means includes means for controlling whether or not to output a match flag output from the register to a corresponding one-word circuit of the subsequent CAM block.
The third means provides an associative memory, characterized by comprising means for controlling whether or not to output a match flag output from the register to the priority encoder.
[0034]
Here, it is preferable that the CAM words are in a matching state in an initial state.
[0035]
Further, when the entry data is formed by connecting a plurality of words, before the search, the data of each one word constituting the entry data is registered in the one-word circuit of the corresponding CAM block, and at the time of the search, A match search between each one-word data forming the entry data and the corresponding one-word data of the search data is performed in the CAM block corresponding to each one-word data forming the entry data. It is preferable to perform only one step.
[0036]
In addition, it is preferable to search for entry data in which all data of one word constituting the entry data and data of one word of the search data corresponding thereto match.
[0037]
In addition, it is preferable to perform a search for entry data in which a part of one word of the entry data and a part of one word of the search data corresponding thereto match.
[0038]
When sequentially searching one word of data registered in one word circuit of each of the preceding and succeeding CAM blocks that are not adjacent to each other, a CAM located between the preceding and succeeding CAM blocks where no match search is performed. In one word circuit of the block, it is preferable that a match flag output from a corresponding one-word circuit of the preceding CAM block is transmitted to a corresponding one-word circuit of the following CAM block.
[0039]
Prior to the search, the entry data included in the plurality of independent tables is registered in the one-word circuit of the corresponding CAM block, and at the time of the search, the entry data corresponding to the table to be searched is registered in the CAM block. Preferably, only a match search is performed.
[0040]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an associative memory of the present invention will be described in detail based on a preferred embodiment shown in the accompanying drawings.
[0041]
FIG. 1 is a schematic configuration diagram of an embodiment of an associative memory according to the present invention. An associative memory (hereinafter, referred to as a CAM) 10 shown in FIG. 1 can be set to form one entry by one word or by connecting two or four words (up to a maximum of four words can be connected). , A CAM array 12, and a priority encoder 14.
[0042]
In the CAM 10, the CAM array 12 includes four CAM blocks CB_0, CB_1, CB_2, and CB_3 each having N (N = 1, 2, 3,...) Words. That is, the entire CAM array 12 has 4N words. Therefore, in the CAM 10, the total number of entries when one entry is composed of one word, two words, and four words is 4N, 2N, and N, respectively.
[0043]
It should be noted that the CAM array 12 only needs to include CAM blocks of at least the maximum number of connected words. In the case of the present embodiment, four or more CAM blocks may be provided.
[0044]
The address of each word in the CAM array 12 is specified by 4n, 4n + 1, 4n + 2, 4n + 3 (n = 0, 1, 2,...). In the present embodiment, the CAM block CB_0 includes N words specified by the address 4n (0, 4, 8,...), And similarly, the CAM blocks CB_1, CB_2, and CB_3 each have the address 4n + 1 (1, 5, 9). ,...), 4n + 2 (2, 6, 10,...), And 4n + 3 (3, 7, 11,...).
[0045]
Each CAM block includes one word circuit 16 for N words and a block driver 18. The details of the one-word circuit 16 will be described later.
[0046]
The block driver 18 outputs a signal KEYD [m−1: 0], a signal SLE [3: 0], a signal ACIEN [3: 0], a signal MFLT [3: 0], a signal MFOE [3: 0], and a signal ACOEN [ 3: 0], all one-word circuits 16 included in the corresponding CAM blocks are driven. The block driver 18 includes a search bit line driver 20 and four buffers 22.
[0047]
The signals SLE [0], ACIEN [0], MFLT [0], MFOE [0] and ACOEN [0] are input to the search bit line driver 20 and the four buffers 22 of the block driver 18 of the CAM block CB_0. Have been. Similarly, the search bit line driver 20 and the four buffers 22 of the block driver 18 of the CAM blocks CB_3, CB_2, and CB_1 respectively have corresponding signals SLE [3: 1], ACIEN [3: 1], and MFLT [3 : 1], MFOE [3: 1] and ACOEN [3: 1].
[0048]
Also, a signal KEYD [m-1: 0], which is search data, is commonly input to the search bit line driver 20 of the block driver 18 of each CAM block.
[0049]
The search bit line driver 20 of each CAM block outputs the search bit line pair SL [of each of the CAM blocks CB_3, CB_2, CB_1, and CB_0 according to the state of the corresponding bit of the search bit line enable signal SLE [3: 0]. m-1: 0] and SLN [m-1: 0]. The m pairs of search bit lines driven by the search bit line driver 20 are connected to m-bit CAM cells constituting a CAM word of a one-word circuit described later. The corresponding bits of the signals ACIEN [3: 0], MFLT [3: 0], MFOE [3: 0] and ACOEN [3: 0] driven by the four buffers 22 are respectively associated with the corresponding CAMs. It is commonly connected to all the one-word circuits 16 included in the blocks CB_3, CB_2, CB_1, and CB_0.
[0050]
In the CAM 10, the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] are driven only in the CAM block to be searched specified by the signal SLE [3: 0], and a match search is performed. Is Accordingly, when one entry is formed by connecting a plurality of words, the drive of the search bit line pair SL [m-1: 0] and SLN [m-1: 0] of the CAM block not to be searched is suppressed. The power consumption can be reduced accordingly.
[0051]
Finally, the priority encoder 14 sequentially encodes the addresses of the words for which a match is detected according to a predetermined priority order, and outputs the encoded words as the highest priority match address HMA. The priority encoder 14 receives the match flag outputs MFO of all the words, and outputs them sequentially from the address of the word with the highest priority. When a plurality of words are linked to form one entry, an address of a word representing the entry is output.
[0052]
Although omitted to avoid complication of the drawing, the CAM 10 naturally includes circuits such as a decoder, a data bit line driver, and a sense amplifier.
[0053]
Next, the one-word circuit 16 will be described.
[0054]
FIG. 2 is a schematic configuration diagram of one embodiment of a one-word circuit. The one-word circuit 16 shown in FIG. 1 includes a CAM word 24 and a word logic 26.
[0055]
The CAM word 24 stores one word of data, performs a match search between the stored data and the search data, and outputs a search result. The CAM word 24 includes an m-bit CAM cell 28, a match sense circuit 30.
[0056]
FIG. 3 is a configuration circuit diagram of one embodiment of the CAM cell. A CAM cell 28 shown in FIG. 1 is a CAM cell of a mismatch detection type, and has a storage circuit 32 for storing 1-bit data, a 1-bit data stored in the storage circuit 32, and a corresponding search bit line. A comparison circuit 34 is provided for comparing search data driven on the pair SL and SLN with each other and outputting the detection result on a match line ML.
[0057]
The storage circuit 32 has an SRAM configuration, and includes two inverters 36 and 38 whose one output is input to the other input, a data bit line pair BL and BLN, and inputs of the two inverters 36 and 38, respectively. There are provided two N-type MOS transistors (hereinafter, referred to as NMOS) 40 and 42 whose gates are commonly connected to the word line WL. Since the configuration of the SRAM is conventionally known, its description is omitted here.
[0058]
As the storage circuit 32, any conventionally known memory cells can be used as long as they store 1-bit data. In addition, any conventionally known circuit can be used as a circuit for writing / reading data in the storage circuit 32.
[0059]
The comparison circuit 34 includes four NMOSs 44, 46, 48, and 50. The NMOSs 44 and 46 are connected in series between the match line ML and the ground, and their gates are connected to the data D and the search bit line SLN of the storage circuit 32, respectively. The NMOSs 48 and 50 are also connected in series between the match line ML and the ground, and their gates are connected to the inverted data DN and the search bit line SL of the storage circuit 32, respectively.
[0060]
FIG. 4 is a configuration circuit diagram of an embodiment of the coincidence sense circuit. The match sense circuit 30 shown in the figure is connected in parallel between two inverters 52 and 54 connected in series between the match line ML and the match sense output line MT, and between the power supply and the match line ML. Two P-type MOS transistors (hereinafter, referred to as PMOS) 56 and 58 are provided. The gates of the PMOSs 56 and 58 are connected to the signal MLPCN and the output of the inverter 52, respectively.
[0061]
In the one-word circuit 16, both the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] are discharged in advance to "00" before the search. Further, the signal MLPCN is set to “L (= 0: low level)”, and the match line ML is precharged via the PMOS 56 of the match sense circuit 30.
[0062]
At this time, both the NMOSs 46 and 50 of the comparison circuit 34 of the CAM cell 28 are off, and the connection between the match line ML and the ground is non-conductive. Further, the output of the inverter 52 becomes “L”, the PMOS 58 is turned on, and the match line ML is precharged through both the PMOSs 56 and 58. Further, the output of the inverter 54, that is, the signal (match sense output) output on the match sense output line MT is in the 'H' (= 1: high level) state.
[0063]
At the time of the search, the signal MLPCN is set to “H”, and the PMOS 56 is turned off. Further, the search bit line pair SL, SLN is driven to one of '10', '01', '00' according to the search data (data 1, data 0, don't care).
[0064]
When the search bit line pair SL, SLN is driven to '10' or '01', in each CAM cell 28, if the search data and the stored data are the same, one of the NMOSs 44, 46 , And one of the NMOSs 48 and 50 is in the off state, and the match line ML is held at the “H” state as it is precharged. Therefore, the match line ML is kept at “H” only when all the matches are detected in all the CAM cells 28.
[0065]
On the other hand, if the stored data and the search data are different even in one CAM cell 28, both of the NMOSs 44 and 46 or both of the NMOSs 48 and 50 are turned on, and the match line ML is discharged and L '.
[0066]
When the search bit line pair SL, SLN is driven to '00', the NMOSs 46, 50 are turned off in the CAM cell 28, so that the match line ML is precharged regardless of the stored data. The state is maintained as “H”.
[0067]
The search result output on the match line ML is amplified and output by the match sense circuit 30. That is, when the match line ML is in the “H” state while being precharged, the match sense output MT is held in the “H” state as described above. On the other hand, when the match line ML is discharged and becomes "L", the output of the inverter 52 becomes "H", the PMOS 58 is turned off, and the match sense output MT becomes "L".
[0068]
The configuration of the CAM cell 28 is not limited at all, and any conventionally known one can be used regardless of whether it is a mismatch detection type or a match detection type. In the CAM 10, the use of a mismatch detection type CAM cell causes the match sense output to be "H", which is a match state in the initial state. Therefore, as described later, between the CAM blocks in the preceding and subsequent stages that are not adjacent to each other, When performing a partial search, a search result of a preceding CAM block in a CAM block that is not searched and located between them can be transmitted to a subsequent CAM block.
[0069]
Subsequently, in the one-word circuit 24, the word logic 26 holds, as a match flag, a search result of itself or an operation result obtained by calculating a logical product of the search result of itself and the match flag of the preceding one-word circuit 16. A match flag register 60, an OR-AND composite gate 62 and an OR gate 64 forming an AND chain for connecting match flags of a plurality of words, and an AND gate 66 for outputting a match flag of an entry.
[0070]
The signal ACI and the signal ACIEN are input to the input terminals of the OR gate constituting the OR-AND composite gate 62, and the coincidence sense output from the coincidence sense circuit 30 is input to the input terminals of the AND gate. The output of the OR-AND composite gate 62 is input to the match flag register 60. The match flag register 60 latches the signal output from the OR-AND composite gate 62 under the control of the signal MFLT.
[0071]
The output of the match flag register 60 is input to one input terminal of the OR gate 64 and one input terminal of the AND gate 66. The signal ACOEN is input to the other input terminal of the OR gate 64, and the signal ACO is output from the OR gate 64. A signal MFOE is input to the other input terminal of the AND gate 66, and a signal MFO is output from the AND gate 66.
[0072]
As shown in FIG. 1, the signal MFO output from all the one-word circuits 16 of all the CAM blocks CB_3, CB_2, CB_1 and CB_0 is input to the priority encoder 14. The signal ACI input to each one-word circuit 16 of the CAM block CB_0 is connected to a power supply, and the signal ACO output from each one-word circuit 16 of each of the CAM blocks CB_0, CB_1, and CB_2 is a signal ACI. The signals are input to the corresponding one-word circuits 16 of the subsequent CAM blocks CB_1, CB_2, and CB_3.
[0073]
Here, the signal ACI is an AND chain input. When a plurality of words are connected to form one entry, the AND chain output (signal ACO) of the corresponding one-word circuit 16 of the preceding CAM block to be connected is input. Is done. Note that the signal ACI input to the one-word circuit 16 of the first-stage CAM block CB_0 is always at “H”. The signal ACIEN [3: 0] indicates that the ACI input is enabled, "L" indicates that the ACI input is valid, and "H" indicates that the ACI input is invalid.
[0074]
The signal MFLT [3: 0] is a latch control signal for the match flag register 60, and "L" indicates that the match flag register 60 is in the through state, and "H" indicates that the match flag register 60 is in the hold state.
[0075]
Signal MFO is an entry match flag output. Further, the signal MFOE [3: 0] is a match flag output enable, “L” indicates that the match flag output MFO is invalid (in this embodiment, the signal MFO is fixed at “L”), and “H” indicates the match flag output MFO. Is valid.
[0076]
The signal ACO is an AND chain output, and is input as a signal ACI to the corresponding one-word circuit 16 of the connected CAM block at the subsequent stage. The signal ACOEN [3: 0] is an AND chain output enable, and “L” indicates that the AND chain output (signal ACO) is output to the corresponding one-word circuit 16 of the subsequent CAM block. “H” indicates that the AND chain output (signal ACO) is not output to the corresponding one-word circuit 16 of the subsequent CAM block (in the case of the present embodiment, the signal ACO is fixed to “H”).
[0077]
Signal KEYD [m-1: 0] is search data. Further, the signal SLE [3: 0] is a search bit line pair enable and indicates the CAM block 22 to be searched. 'L' indicates that the search bit line pair SL, SLN is disabled, and 'H' indicates that the search bit line pair SL, SLN is enabled. In the signal SLE [3: 0], the search data (signal KEYD [m−1: 0]) is driven only to the search bit line pair SL and SLN of the CAM block corresponding to the bit of “H”.
[0078]
In the one-word circuit 16, as described above, a match sense output is output from the match sense circuit 30 of the CAM word 24 as a result of the search. From the OR-AND composite gate 62 of the word logic 26, when the signal ACien is “H”, the match sense output MT output from the match sense circuit 30 is output as it is, and when the signal ACien is “L”, Is ANDed with the match sense output MT output from the match sense circuit 30 and the signal ACI, and the operation result is output.
[0079]
The signal output from OR-AND composite gate 62 is latched in match flag register 60 under the control of signal MFLT. In the case of the present embodiment, in the CAM block to be searched, the signal MFLT is set to “H” after being set to “L” for a predetermined period, and the output of the OR-AND composite gate 62 is latched by the match flag register 60. . On the other hand, in the CAM blocks not to be searched, the signal MFLT is always set to “H”, and the data of the match flag register 60 is not changed.
[0080]
The OR gate 64 always outputs "H" as the signal ACO when the signal ACOEN is "H", and outputs the match flag latched in the match flag register 60 when the signal ACOEN is "L". Is output. When the one-word circuit 16 of the CAM block is not connected to the one-word circuit 16 of the preceding CAM block, the search result of the one-word circuit 16 is latched in the match flag register 60. A signal that takes the logic of the match flag of the one-word circuit and the search result of the one-word circuit is latched. When the one-word circuit 16 of the CAM block is not connected to the one-word circuit 16 of the subsequent CAM block, the signal ACOEN is set to “H” and the signal ACO is fixed to “H”, so that the power generated by the OR gate 64 is reduced. Consumption can be reduced.
[0081]
When the signal MFOE is “H”, the match flag latched in the match flag register 60 is output from the AND gate 66, and when the signal MFOE is “L”, the match flag is always “L”. 'Is output. When a plurality of words are linked to form one entry, the power consumption by the AND gate 66 is reduced by setting the signal MFOE of the CAM block not to be searched to “L” and fixing the signal MFO to “L”. Can be.
[0082]
Further, an OR-AND composite gate 62, an OR gate 64, and an AND gate 66 are provided, and the control of the signal ACIEN, the signal ACOEN, and the signal MFOE enables and disables the signal ACI input, the signal ACO output, and the signal MFO output. By performing the control, a match search can be performed without initializing the match flag register 60. As a result, a step for initialization can be omitted, and the search throughput can be improved.
[0083]
Hereinafter, the operation of the CAM 10 will be described with a specific example.
[0084]
(1) Retrieval of entry data formed by linking four words (retrieval of entry data that matches all four words)
[0085]
When four words are concatenated to form the entry data, the signal ACOEN [3: 0] = '0000' is set. As a result, the AND chain output (signal ACO) of all the one-word circuits 16 of the CAM blocks CB_0, CB_1, CB_2, and CB_3 becomes valid, and one entry is composed of four words.
[0086]
Before the search, each entry data is registered in the CAM array 12. For example, when the 4-word width entry data shown in FIG. 16 is used, as shown in FIG. 5, the data of the attributes I, II, III, and IV of each entry are respectively stored in the CAM blocks CB_0, CB_1, CB_2, and CB_3. be registered. At the time of search, a total of four searches (AND search) are performed using search data of one word width corresponding to the attributes I, II, III, and IV, respectively.
[0087]
In the first search, the signal KEYD [m-1: 0] = search data of one word width corresponding to the attribute I, the signal SLE [3: 0] = '0001', and the signal ACIEN [3: 0] = 'XXXX ', The signal MFLT [3: 0] =' 1110 ', and the signal MFOE [3: 0] =' 0001 '. 'X' means don't care and is set to either '0' or '1' (which may be set to either '0' or '1').
[0088]
That is, only the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] of the CAM block CB_0 in which the data of the attribute I is registered are searched data (signals KEYD [m-1: 0] ]).
[0089]
Further, only the match flag register 60 of the CAM block CB_0 is set to the through state, and its data is updated. The match flag registers 60 of the CAM blocks CB_1, CB_2, and CB_3 are all held.
[0090]
Only the match flag output (signal MFO) of the CAM block CB_0 is enabled and input to the priority encoder 14. The output of the match flags of the other CAM blocks CB_1, CB_2, and CB_3 are disabled and all are fixed to 'L', that is, the mismatch is detected and input to the priority encoder 14.
[0091]
Since the signal ACI input to the one-word circuit 16 of the CAM block CB_0 is always “H”, the OR-AND composite gate 62 outputs the signal ACI from the coincidence sense circuit 30 regardless of the state of the signal ACIEN. A match sense output is output.
[0092]
That is, the first search is performed only in the CAM block CB_0 in which the data of the attribute I is registered, and the match flag output (signal MFO) output from the CAM block CB_0 is input to the priority encoder 14. By operating the priority encoder 14 in this state, it is possible to output the HMA of the entry for which a match has been detected in the attribute I portion.
[0093]
The AND chain output (signal ACO) of the CAM block CB_0 is input to the subsequent CAM block CB_1 as an AND chain input (signal ACI).
[0094]
Subsequently, in the second search, the signal KEYD [m-1: 0] = search data of one word width corresponding to the attribute II, the signal SLE [3: 0] = '0010', and the signal ACien [3: 0] = 'XX0X', signal MFLT [3: 0] = '1101', and signal MFOE [3: 0] = '0010'.
[0095]
That is, only the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] of the CAM block CB_1 in which the data of the attribute II are registered are search data (signals KEYD [m-1: 0]). ]). Further, only the match flag register 60 of the CAM block CB_1 is set to the through state, and its data is updated. Only the match flag output (signal MFO) of the CAM block CB_1 is enabled and input to the priority encoder 14. Only the OR-AND composite gate 62 of the CAM block CB_1 is enabled, and the AND chain output (signal ACO) output from the preceding CAM block CB_0 and the coincidence sense output from the coincidence sense circuit 30 of the CAM block CB_1. The output is ANDed with the output.
[0096]
That is, the second search is performed only in the CAM block CB_1 in which the data of the attribute II is registered, and the match flag output (signal MFO) output from the CAM block CB_1, that is, the CAM block CB_1 and the CAM block CB_1 The result of the AND search is input to the priority encoder 14. Similarly, by operating the priority encoder 14 in this state, it is possible to output the HMA of the entry for which a match is detected in both the attributes I and II.
[0097]
The AND chain output (signal ACO) of the CAM block CB_1 is input to the subsequent CAM block CB_2 as an AND chain input (signal ACI).
[0098]
Similarly, in the third search, the signal KEYD [m-1: 0] = search data of one word width corresponding to the attribute III, the signal SLE [3: 0] = '0100', and the signal ACien [3: 0] = 'X0XX', signal MFLT [3: 0] = '1011', and signal MFOE [3: 0] = '0100'.
[0099]
That is, the third search is performed only in the CAM block CB_2 in which the data of the attribute III is registered, and the match flag output (signal MFO) output from the CAM block CB_2, that is, the AND of the CAM blocks CB_0, CB_1 and CB_2 The result of the search is input to the priority encoder 14. Similarly, if the priority encoder 14 is operated in this state, it is possible to output the HMA of the entry in which a match is detected in all of the attributes I, II, and III.
[0100]
In the fourth search, the signal KEYD [m-1: 0] = search data of one word width corresponding to the attribute IV, the signal SLE [3: 0] = '1000', and the signal ACien [3: 0] = '0XXX', signal MFLT [3: 0] = '0111', and signal MFOE [3: 0] = '1000'.
[0101]
That is, the fourth search is performed only in the CAM block CB_3 in which the data of the attribute IV is registered, and the match flag output (signal MFO) output from the CAM block CB_3, that is, the CAM blocks CB_0, CB_1, CB_2 and CB_3 Is input to the priority encoder 14. Similarly, by operating the priority encoder 14 in this state, it is possible to output the HMA of the entry for which a match is detected in all of the attributes I, II, III, and IV.
[0102]
As described above, when a search is performed on entry data formed by linking four words, data for one word of each attribute I, II, III, and IV of the entry data and the search data The conventional CAM can be realized by properly associating each word of data (which one-word width of the 4-word search data is to be used) and performing a search only in the CAM block to be searched. , It is possible to prevent output of an erroneous search result.
[0103]
Further, in the above embodiment, the signal MFO is output at the time of searching for each of the attributes I, II, III, and IV. Therefore, by operating the priority encoder 14 after searching for each attribute, it is possible to output the intermediate result of the search. You can also. If an intermediate result is unnecessary, the signal MFOE is set to “L” and the output of the signal MFO is fixed to “L”, so that power consumption can be reduced. In this case, there is no need to operate the priority encoder 14. The same applies to the following search examples.
[0104]
(2) Search for entry data formed by linking two words (search for matching entry data in both words)
[0105]
When two words are concatenated to form entry data, the signal ACOEN [3: 0] is set to '1010'. As a result, the AND chain output (signal ACO) of the one-word circuit 16 of the CAM blocks CB_0 and CB_2 is valid, and the AND chain output of the one-word circuit 16 of the CAM blocks CB_1 and CB_3 is fixed at “H”. CB_0 and CB_1 constitute one entry, and CAM blocks CB_2 and CB_3 constitute one entry.
[0106]
For example, when the entry data having a two-word width shown in FIG. 6 is used, as shown in FIG. 7, the data of the attribute I of each entry is alternately registered in the CAM blocks CB_0 and CB_2, respectively, and the attribute II of each entry is registered. Are alternately registered in the CAM blocks CB_1 and CB_3, respectively. At the time of search, a total of two searches (AND search) are performed using, for example, search data of one word width corresponding to the attributes I and II, respectively.
[0107]
In the first search, the signal KEYD [m-1: 0] = search data of one word width corresponding to the attribute I, the signal SLE [3: 0] = '0101', and the signal ACIEN [3: 0] = 'X1XX'', The signal MFLT [3: 0] =' 1010 'and the signal MFOE [3: 0] =' 0101 '.
[0108]
That is, the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] of the CAM blocks CB_0 and CB_2 in which the data of the attribute I are registered are simultaneously searched data (signal KEYD [m-1 : 0]). Also, the match flag registers 60 of the CAM blocks CB_0 and CB_2 are set to the through state, and the data is updated. The match flag output (signal MFO) of the CAM blocks CB_0 and CB_2 is enabled and input to the priority encoder 14. Further, since the signal ACI input to the CAM blocks CB_0 and CB_2 is “H”, the OR-AND composite gate 62 of the CAM blocks CB_0 and CB_2 outputs its own coincidence sense circuit 30 regardless of the state of the signal ACIEN. Is output as a match sense output.
[0109]
That is, the first search is performed only in the CAM blocks CB_0 and CB_2 in which the data of the attribute I is registered, and the match flag output (signal MFO) output from the CAM blocks CB_0 and CB_2 is input to the priority encoder 14. You. By operating the priority encoder 14 in this state, it is possible to cause the priority encoder 14 to output the HMA of the entry for which a match is detected in the attribute I portion.
[0110]
The AND chain outputs (signal ACO) of the CAM blocks CB_0 and CB_2 are input to the CAM blocks CB_1 and CB_3 as AND chain inputs (signal ACI), respectively.
[0111]
In the second search, the signal KEYD [m-1: 0] = search data of one word width corresponding to the attribute II, the signal SLE [3: 0] = '1010', and the signal ACIEN [3: 0] = '0X0X ', The signal MFLT [3: 0] =' 0101 ', and the signal MFOE [3: 0] =' 1010 '.
[0112]
That is, the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] of the CAM blocks CB_1 and CAM3 in which the data of the attribute II are registered are simultaneously searched data (signal KEYD [m-1 : 0]). Further, the match flag registers 60 of the CAM blocks CB_1 and CB_3 are set to the through state, and the data is updated. The match flag output (signal MFO) of the CAM blocks CB_1 and CB_3 is enabled and input to the priority encoder 14. In the CAM block CB_1, the AND of the AND chain output (signal ACO) output from the preceding CAM block CB_0 and the match sense output output from the match sense circuit 30 of the CAM block CB_1 is output. . Similarly, in the CAM block CB_3, the AND of the AND chain output output from the preceding CAM block CB_2 and the match sense output output from the match sense circuit 30 of the CAM block CB_3 is output.
[0113]
That is, the second search is performed only in the CAM blocks CB_1 and CB_3 in which the data of the attribute II is registered, and the match flag output (signal MFO) output from the CAM blocks CB_1 and CB_3, that is, the CAM blocks CB_0 and CB_1 AND search results of the CAM blocks CB_2 and CB_3 are input to the priority encoder 14. By operating the priority encoder 14 in this state, it is possible to cause the priority encoder 14 to output the HMA of the entry for which a match is detected in both the attributes I and II.
[0114]
(3) Search for 1-word entry data (no word concatenation)
[0115]
If word concatenation is not performed, the signal ACOEN [3: 0] is set to '1111'. As a result, the AND chain output (signal ACO) of the one-word circuit of all the CAM blocks CB_0, CB_1, CB_2, and CB_3 is fixed to “H”, which is invalid, and the CAM blocks CB_0, CB_1, CB_2, CB_3 One entry is configured.
[0116]
For example, when the one-word-width entry data shown in FIG. 8 is used, as shown in FIG. 9, the data of each entry data is sequentially registered in the CAM blocks CB_0, CB_1, CB_2, and CB_3. At the time of search, search is performed in all CAM blocks CB_0, CB_1, CB2, and CB_3 simultaneously using search data of one word width.
[0117]
In the search, the signal KEYD [m-1: 0] = 1 search data having a word width, the signal SLE [3: 0] = '1111', the signal ACIEN [3: 0] = 'XXXX', and the signal MFLT [3: 0]. ] = '0000' and the signal MFOE [3: 0] = '1111'.
[0118]
That is, the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] of all the CAM blocks CB_0, CB_1, CB_2 and CB_3 are simultaneously searched data (signal KEYD [m-1: 0]). Driven according to). Further, the match flag registers 60 of all the CAM blocks CB_0, CB_1, CB_2, and CB_3 are set to the through state, and the data is updated. The match flag outputs (signals MFO) of all the CAM blocks CB_0, CB_1, CB_2, and CB_3 are enabled and input to the priority encoder 14. Also, since the signal ACI input to all the CAM blocks CB_0, CB_1, CB_2 and CB_3 is 'H', the OR-AND composite gates 62 of all the CAM blocks output their own signals regardless of the state of the signal ACIEN. Is output from the match sense circuit 30.
[0119]
That is, the search is performed simultaneously for all the CAM blocks, and the match flag outputs (signals MFO) output from all the CAM blocks are input to the priority encoder 14. By operating the priority encoder 14 in this state, it is possible to output the HMA of the entry for which a match has been detected.
[0120]
(4) Partial search of entry data formed by linking four words (search for entry data in which a part of four words matches)
[0121]
As described above, when the entry data is formed by connecting four words, the signal ACOEN [3: 0] = '0000' is set. For example, a case will be described where a partial search of adjacent attributes II and III is performed in the CAM in which the entry data shown in FIG. 5 is registered.
[0122]
In the first search, the signal KEYD [m-1: 0] = search data of one word width corresponding to the attribute II, the signal SLE [3: 0] = '0010', and the signal ACIEN [3: 0] = 'XX1X ', The signal MFLT [3: 0] =' 1101 'and the signal MFOE [3: 0] =' 0010 '.
[0123]
That is, only the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] of the CAM block CB_1 in which the data of the attribute II are registered are search data (signals KEYD [m-1: 0]). ]). Further, only the match flag register 60 of the CAM block CB_1 is set to the through state, and its data is updated. The match flag output (signal MFO) of the CAM block CB_1 is enabled and input to the priority encoder 14. In addition, the OR-AND composite gate 62 of the CAM block CB_1 outputs a match sense output output from its own match sense circuit 30 regardless of the state of the signal ACI. That is, the CAM block CB_1 does not reflect the search result of the preceding CAM block CB_0.
[0124]
That is, the first search is performed only in the CAM block CB_1 in which the data of the attribute II is registered, and the match flag output (signal MFO) output from the CAM block CB_1 is input to the priority encoder 14. By operating the priority encoder 14 in this state, it is possible to cause the priority encoder 14 to output the HMA of the entry for which a match has been detected in the attribute II part.
[0125]
The AND chain output (signal ACO) of the CAM block CB_1 is input to the subsequent CAM block CB_2 as an AND chain input (signal ACI).
[0126]
In the second search, the signal KEYD [m-1: 0] = search data of one word width corresponding to the attribute III, the signal SLE [3: 0] = '0100', and the signal ACIEN [3: 0] = 'X0XX'', The signal MFLT [3: 0] =' 1011 'and the signal MFOE [3: 0] =' 0100 '.
[0127]
That is, only the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] of the CAM block CB_2 in which the data of the attribute III are registered are searched data (signals KEYD [m-1: 0] ]). Further, the match flag register 60 of the CAM block CB_2 is set to the through state, and the data is updated. Only the match flag output (signal MFO) of the CAM block CB_2 is enabled and input to the priority encoder 14. In the CAM block CB_2, the AND of the AND chain output (signal ACO) output from the preceding CAM block CB_1 and the match sense output output from the match sense circuit 30 of the CAM block CB_2 is output. .
[0128]
That is, the second search is performed only in the CAM block CB_2 in which the data of the attribute III is registered, and the match flag output (signal MFO) output from the CAM block CB_2, that is, the AND search of the CAM blocks CB_1 and CB_2 The result is input to the priority encoder 14. By operating the priority encoder 14 in this state, it is possible to output the HMA of the entry for which a match is detected in both the attributes II and III.
[0129]
Next, a case will be described in which, for example, a partial search of non-adjacent attributes II and IV is performed in the CAM in which the entry data shown in FIG. 5 is registered.
[0130]
The first search is the same as the search for the adjacent attributes II and III.
[0131]
In the second search, the signal KEYD [m-1: 0] = search data of one word width corresponding to the attribute IV, the signal SLE [3: 0] = '1000', and the signal ACIEN [3: 0] = '00XX ', The signal MFLT [3: 0] =' 0011 ', and the signal MFOE [3: 0] =' 1000 '.
[0132]
That is, only the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] of the CAM block CB_3 in which the data of the attribute IV are registered are searched data (signals KEYD [m-1: 0]). ]). Also, the match flag registers 60 of the CAM blocks CB_2 and CB_3 are set to the through state, and the data is updated. Also, only the match flag output (signal MFO) of the CAM block CB_3 is enabled and input to the priority encoder 14. In the CAM blocks CB_2 and CB_3, the AND of the AND chain outputs (signals ACO) output from the preceding CAM blocks CB_1 and CB_2 and the coincidence sense output output from the coincidence sense circuit 30 of itself is calculated. Output.
[0133]
In the CAM block CB_2, since the search bit line pair SL and SLN are not driven, the coincidence sense output is “H” in the initial state, and the OR-AND composite gate 62 outputs the signal ACI, that is, the AND of the CAM device CB_1. The chain output is output. Therefore, the AND chain output output from the CAM block CB_1 is input to the CAM block CB_3 via the CAM block CB_2, and the logical product of the AND chain output output from the CAM block CB_1 and the own match sense output is obtained. Is output.
[0134]
That is, the second search is performed only in the CAM block CB_3 in which the data of the attribute IV is registered, and the match flag output (signal MFO) output from the CAM block CB_3, that is, the AND search of the CAM blocks CB_1 and CB_3 The result is input to the priority encoder 14. By operating the priority encoder 14 in this state, it is possible to output the HMA of the entry for which a match is detected in both the attributes II and IV.
[0135]
As described above, the CAM 10 does not need to perform a dummy search unlike the conventional CAM even when performing a partial search of data between CAM blocks that are not adjacent to each other, thereby preventing a decrease in search throughput.
[0136]
(5) Search in the case where entry data formed by linking two words is registered in two independent tables (search for entry data that matches in both two words)
[0137]
As described above, when two words are concatenated to form entry data, the signal ACOEN [3: 0] is set to '1010'. As a result, the AND chain output (signal ACO) of the one-word circuit of the CAM blocks CB_0 and CB_2 becomes valid, and one entry is formed by the CAM blocks CB_0 and CB_1, and one entry is formed by the CAM blocks CB_2 and CB_3.
[0138]
For example, when using two-word-width entry data included in the two tables 1 and 2 shown in FIG. 10, respectively, as shown in FIG. The data is registered in the CAM blocks CB_0 and CB_1, and the data of the attributes I and II of each entry of the table 2 are registered in the CAM blocks CB_2 and CB_3, respectively. At the time of the search, a total of two searches (AND search) are performed on the table 1, for example, in the order of the attributes I and II, using the corresponding one-word-width search data. The same applies to table 2.
[0139]
Hereinafter, a case of searching for an entry in Table 2 will be described.
[0140]
In the first search, the signal KEYD [m-1: 0] = search data of one word width corresponding to the attribute I, the signal SLE [3: 0] = '0100', and the signal ACIEN [3: 0] = 'X1XX ', The signal MFLT [3: 0] =' 1011 'and the signal MFOE [3: 0] =' 0100 '.
[0141]
That is, only the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] of the CAM block CB_2 in which the data of the attribute I of the table 2 are registered are searched data (signal KEYD [m- 1: 0]). Further, the match flag register 60 of the CAM block CB_2 is set to the through state, and the data is updated. The match flag output (signal MFO) of the CAM block CB_2 is enabled and input to the priority encoder 14. In addition, the OR-AND composite gate 62 of the CAM block CB_2 outputs a match sense output from its own match sense circuit 30 irrespective of the signal ACI.
[0142]
That is, the first search is performed only in the CAM block CB_2 in which the data of the attribute I of Table 2 is registered, and the match flag output (signal MFO) output from the CAM block CB_2 is input to the priority encoder 14. . By operating the priority encoder 14 in this state, it is possible to cause the priority encoder 14 to output the HMA of the entry for which a match is detected in the attribute I portion of the table 2.
[0143]
The AND chain output (signal ACO) of the CAM block CB_2 is input to the subsequent CAM block CB_3 as an AND chain input (signal ACI).
[0144]
In the second search, the signal KEYD [m−1: 0] = search data of one word width corresponding to the attribute II, the signal SLE [3: 0] = “1000”, and the signal ACIEN [3: 0] = “0XXX”. ', The signal MFLT [3: 0] =' 0111 'and the signal MFOE [3: 0] =' 1000 '.
[0145]
That is, only the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] of the CAM block CB_3 in which the data of the attribute II of Table 2 are registered are searched data (signal KEYD [m- 1: 0]). Further, the match flag register 60 of the CAM block CB_3 is set to the through state, and its data is updated. The match flag output (signal MFO) of the CAM block CB_3 is enabled and input to the priority encoder 14. From the OR-AND composite gate 62 of the CAM block CB_3, the logical product of the AND chain output output from the preceding CAM block CB_2 and the match sense output output from the match sense circuit 30 of the CAM block CB_3 is obtained. Output.
[0146]
That is, the second search is performed only in the CAM block CB_3 in which the data of the attribute II of Table 2 is registered, and the match flag output (signal MFO) output from the CAM block CB_3, that is, the CAM blocks CB_2 and CB_3 The AND search result is input to the priority encoder 14. By operating the priority encoder 14 in this state, it is possible to cause the priority encoder 14 to output the HMA of the entry for which a match is detected in both the attributes I and II of Table 2.
[0147]
(6) Search when one word of entry data is registered in four independent tables (no word concatenation)
[0148]
When word concatenation is not performed, the signal ACOEN [3: 0] is set to '1111' as described above. As a result, the AND chain output (signal ACO) of the one-word circuit of all the CAM blocks CB_0, CB_1, CB_2, and CB_3 is fixed to “H”, which is invalid, and the CAM blocks CB_0, CB_1, CB_2, CB_3 One entry is configured.
[0149]
For example, when using one-word-width entry data included in each of the four tables 1, 2, 3, and 4 shown in FIG. 12, as shown in FIG. 13, each entry data of the table 1 is registered in the CAM block CB_0. Then, similarly, each entry data of the tables 2, 3, and 4 is registered in the CAM blocks CB_1, CB_2, and CB3, respectively. At the time of search, a search is performed on the table to be searched using search data having a width of one word.
[0150]
Hereinafter, a case of searching for an entry in Table 3 will be described.
[0151]
In the search, the signal KEYD [m-1: 0] = 1 search data having a word width, the signal SLE [3: 0] = '0100', the signal ACIEN [3: 0] = 'X1XX', and the signal MFLT [3: 0]. ] = '1011' and the signal MFOE [3: 0] = '0100'.
[0152]
That is, only the search bit line pairs SL [m-1: 0] and SLN [m-1: 0] of the CAM block CB_2 in which the entry data of the table 3 is registered are searched data (signals KEYD [m-1: 0]). Further, the match flag register 60 of the CAM block CB_2 is set to the through state, and the data is updated. The match flag output (signal MFO) of the CAM block CB_2 is enabled and input to the priority encoder 14. In addition, the OR-AND composite gate 62 of the CAM block CB_2 outputs a match sense output from its own match sense circuit 30 irrespective of the signal ACI.
[0153]
That is, the search is performed only in the CAM block CB_2 in which the entry data of the table 3 is registered, and the match flag output (signal MFO) output from the CAM block CB_2 is input to the priority encoder 14. By operating the priority encoder 14 in this state, it is possible to output the HMA of the entry whose match is detected in the table 3.
[0154]
As described above, the CAM 10 can perform a search in any state of four-word connection, two-word connection, and no word connection. When four words are connected, an entry that matches all four words can be searched, or an entry that matches only a part of the four words can be searched. It is also possible to register entry data to be searched in a plurality of tables and register them, and to search only entry data included in each table.
[0155]
It should be noted that the CAM of the present invention is not limited to the above embodiments, and one word can be configured by connecting any number of words. Further, the number of tables to be used is not limited at all, and may be appropriately determined as needed. The polarity of each signal such as the signals ACI, ACIEN, MFLT, ACO, ACOEN, MFO, and MFOE may be changed as necessary, and the configuration of the one-word circuit may be appropriately designed according to the polarity of each of these signals. Something to be done.
[0156]
The associative memory of the present invention is basically as described above.
As described above, the associative memory of the present invention has been described in detail. However, the present invention is not limited to the above-described embodiment, and various improvements and modifications may be made without departing from the gist of the present invention. .
[0157]
【The invention's effect】
As described above in detail, the associative memory of the present invention can perform a search correctly in any state with or without word connection. In addition, when performing word concatenation, searching for an entry that matches in all words or a part of words, registering an entry to be searched in a plurality of tables, registering the table separately, and searching separately for each table, etc. Various search operations can be performed.
Further, in the associative memory of the present invention, when word concatenation is performed, a search is performed by correctly associating each one-word data of entry data with each one-word data of corresponding search data. It is possible to prevent the occurrence of an erroneous match which has been a problem in the conventional associative memory.
Further, in the associative memory of the present invention, since the CAM array is divided into a plurality of CAM blocks and the search is performed only in the CAM block to be searched at the time of search, unnecessary current consumption can be suppressed.
Further, in the associative memory of the present invention, since the search can be performed without initializing the match flag register, a step for initialization is unnecessary, and the search throughput can be improved as compared with the related art. Also, when a partial search is performed between CAM blocks that are not adjacent to each other when an entry is formed by connecting a plurality of words, it is not necessary to perform a dummy search in CAM blocks that are not to be searched. Throughput can be improved.
[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 schematic configuration diagram of a one-word circuit used in the associative memory shown in FIG. 1;
FIG. 3 is a configuration circuit diagram of a CAM cell used in the one-word circuit shown in FIG. 2;
FIG. 4 is a configuration circuit diagram of a coincidence sense circuit used in the one-word circuit shown in FIG. 2;
FIG. 5 is a conceptual diagram showing a state in which entry data having a 4-word width shown in FIG. 16 is registered in a CAM array.
FIG. 6 is a schematic diagram of two-word width entry data including two pieces of attribute data.
FIG. 7 is a conceptual diagram showing a state in which entry data having a two-word width shown in FIG. 6 is registered in a CAM array.
FIG. 8 is a schematic diagram of one-word-width entry data.
FIG. 9 is a schematic diagram showing a state in which the one-word-width entry data shown in FIG. 8 is registered in a CAM array.
FIG. 10 is a schematic diagram illustrating two tables including entry data having a width of two words.
11 is a conceptual diagram showing a state in which entry data of two words of two tables shown in FIG. 10 is registered in a CAM array.
FIG. 12 is a schematic diagram showing four tables including entry data of one word width.
13 is a schematic diagram showing a state where entry data of one word width of the four tables shown in FIG. 12 is registered in a CAM array.
FIG. 14 is a block diagram illustrating an example of a conventional CAM.
FIG. 15 is a configuration circuit diagram of an example of a conventional bit width extension circuit.
FIG. 16 is a schematic diagram showing an example of 4-word entry data composed of four attribute data.
17 is a conceptual diagram showing a registration example of the entry data shown in FIG.
[Explanation of symbols]
10,70 associative memory
12 CAM array
14,78 Priority encoder
16 1-word circuit
18 Block Driver
20 Search bit line driver
22 buffers
24 CAM words
26 word logic
28 CAM cells
30 Match sense circuit
32 memory circuit
34 Comparison circuit
36,38,52,54 Inverter
40, 42, 44, 46, 48, 50 N-type MOS transistors
56,58 P-type MOS transistor
60, MFR_1, MFR_2, ..., MFR_n match flag register
62 OR-AND composite gate
64 OR gate
66, AD_2, AD_3, ..., AD_n AND gate
72 Comparison Register
74 Mask register
76 Search bit line driver
80-bit width extension circuit
CB_0, CB_1, CB_2, CB_3 CAM block
W_1, W_2, ..., W_n words
LT_1, LT_2, ..., LT_n Latch

Claims (7)

ワード連結機能を備える連想メモリであって、
複数のCAMブロックを有するCAMアレイと、所定の優先順位付けに従い、一致が検出されたワードのアドレスを出力するプライオリティエンコーダとを備え、
各々の前記CAMブロックは、複数の1ワード回路を備え、
各々の前記1ワード回路は、1ワード分のデータを記憶し、この記憶されたデータと検索データとの一致検索を行って、その検索結果を出力するCAMワードと、当該1ワード回路のCAMワードから出力される検索結果と前段のCAMブロックの対応する1ワード回路から出力される一致フラグとの論理をとった信号を出力する第1手段と、この第1手段から出力される信号を一致フラグとしてラッチするレジスタと、このレジスタから出力される一致フラグを、後段のCAMブロックの対応する1ワード回路に出力する第2手段と、前記レジスタから出力される一致フラグを、前記プライオリティエンコーダに出力する第3手段とを備えることを特徴とする連想メモリ。
An associative memory having a word connection function,
A CAM array having a plurality of CAM blocks, and a priority encoder that outputs an address of a word in which a match is detected according to a predetermined priority order;
Each of the CAM blocks includes a plurality of one-word circuits,
Each of the one-word circuits stores data of one word, performs a match search between the stored data and search data, and outputs a search result, and a CAM word of the one-word circuit. Means for outputting a signal obtained by taking the logic of the search result output from the CAM block and a match flag output from the corresponding one-word circuit of the preceding CAM block, and a signal output from the first means as a match flag A second means for outputting a match flag output from this register to a corresponding one-word circuit of a CAM block at a subsequent stage, and a match flag output from the register to the priority encoder 3. An associative memory, comprising: third means.
前記第1手段は、当該1ワード回路のCAMワードから出力される検索結果をそのまま出力するか、当該1ワード回路のCAMワードから出力される検索結果と前記前段のCAMブロックの対応する1ワード回路から出力される一致フラグとの論理をとった信号を出力するかを制御する手段を備え、
前記レジスタは、前記第1手段から出力される信号をラッチするかどうかを制御する手段を備え、
前記第2手段は、前記レジスタから出力される一致フラグを、前記後段のCAMブロックの対応する1ワード回路に出力するかどうかを制御する手段を備え、
前記第3手段は、前記レジスタから出力される一致フラグを、前記プライオリティエンコーダに出力するかどうかを制御する手段を備えることを特徴とする請求項1に記載の連想メモリ。
The first means outputs the search result output from the CAM word of the one-word circuit as it is, or outputs the search result output from the CAM word of the one-word circuit and the corresponding one-word circuit of the preceding CAM block. Means for controlling whether to output a signal obtained by taking a logic with a match flag output from
The register includes means for controlling whether to latch a signal output from the first means,
The second means includes means for controlling whether or not to output a match flag output from the register to a corresponding one-word circuit of the subsequent CAM block.
2. The associative memory according to claim 1, wherein said third means includes means for controlling whether or not to output a match flag output from said register to said priority encoder.
複数ワードを連結してエントリデータを構成する場合、検索前に、当該エントリデータを構成する各々の1ワード分のデータを各々対応するCAMブロックの1ワード回路に登録し、検索時に、前記エントリデータを構成する各々の1ワード分のデータとこれに対応する検索データの1ワード分のデータとの一致検索を、前記エントリデータを構成する各々の1ワード分のデータに対応するCAMブロックにおいてのみ順次行う請求項1または2に記載の連想メモリ。When a plurality of words are connected to form entry data, data of one word constituting each entry data is registered in a one-word circuit of a corresponding CAM block before the search. The search for a match between each one-word data constituting the data and the corresponding one-word data of the search data is sequentially performed only in the CAM block corresponding to each one-word data constituting the entry data. 3. The associative memory according to claim 1, wherein the associative memory is used. 前記エントリデータを構成する全ての1ワード分のデータとこれに対応する検索データの全ての1ワード分のデータとが一致するエントリデータの検索を行う請求項3に記載の連想メモリ。4. The associative memory according to claim 3, wherein a search is made for entry data in which all the one-word data of the entry data and all the one-word data of the search data corresponding to the data match. 前記エントリデータを構成する一部の1ワード分のデータとこれに対応する検索データの一部の1ワード分のデータとが一致するエントリデータの検索を行う請求項3に記載の連想メモリ。4. The associative memory according to claim 3, wherein a search is made for entry data in which a part of one-word data constituting the entry data and a part of one-word data of the search data corresponding thereto match. 隣接していない前段および後段それぞれのCAMブロックの1ワード回路に登録された1ワード分のデータを順次検索する場合、一致検索が行われない前記前段および後段のCAMブロックの間にあるCAMブロックの1ワード回路において、前記前段のCAMブロックの対応する1ワード回路から出力される一致フラグを、前記後段のCAMブロックの対応する1ワード回路に伝達する請求項5に記載の連想メモリ。When sequentially searching one word of data registered in one word circuit of each of the preceding and succeeding CAM blocks that are not adjacent to each other, a search is performed for a CAM block between the preceding and succeeding CAM blocks where no match search is performed. 6. The associative memory according to claim 5, wherein in one word circuit, a match flag output from a corresponding one word circuit of the preceding CAM block is transmitted to a corresponding one word circuit of the following CAM block. 検索前に、複数の独立したテーブルに含まれるエントリデータを各々対応するCAMブロックの1ワード回路に登録し、検索時に、検索対象のテーブルに対応するエントリデータが登録されているCAMブロックにおいてのみ一致検索を行う請求項1〜6のいずれかに記載の連想メモリ。Before search, entry data included in a plurality of independent tables are registered in the one-word circuit of the corresponding CAM block, and at the time of search, only the CAM block in which entry data corresponding to the table to be searched is registered 7. The associative memory according to claim 1, wherein a search is performed.
JP2003073515A 2003-03-18 2003-03-18 Associative memory Pending JP2004280992A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003073515A JP2004280992A (en) 2003-03-18 2003-03-18 Associative memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003073515A JP2004280992A (en) 2003-03-18 2003-03-18 Associative memory

Publications (1)

Publication Number Publication Date
JP2004280992A true JP2004280992A (en) 2004-10-07

Family

ID=33289396

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003073515A Pending JP2004280992A (en) 2003-03-18 2003-03-18 Associative memory

Country Status (1)

Country Link
JP (1) JP2004280992A (en)

Similar Documents

Publication Publication Date Title
US6460112B1 (en) Method and apparatus for determining a longest prefix match in a content addressable memory device
TW445410B (en) Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device
US6499081B1 (en) Method and apparatus for determining a longest prefix match in a segmented content addressable memory device
US6768659B2 (en) Circuit and method for reducing power usage in a content addressable memory
US6219748B1 (en) Method and apparatus for implementing a learn instruction in a content addressable memory device
EP1451826B1 (en) Circuit and method for performing variable width searches in a content addressable memory
US6574702B2 (en) Method and apparatus for determining an exact match in a content addressable memory device
US6240485B1 (en) Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6678786B2 (en) Timing execution of compare instructions in a synchronous content addressable memory
US6584003B1 (en) Low power content addressable memory architecture
JP3095064B2 (en) Associative memory
US6901000B1 (en) Content addressable memory with multi-ported compare and word length selection
US6967856B1 (en) Content addressable memory (CAM) devices that utilize segmented match lines and word lines to support pipelined search and write operations and methods of operating same
JP2004295967A (en) Association memory
EP1461811B1 (en) Low power content addressable memory architecture
TWI391946B (en) Content addressable memory
US6868475B2 (en) Content addressable memory having data width extension capability
US6972978B1 (en) Content addressable memory (CAM) devices with block select and pipelined virtual sector look-up control and methods of operating same
US20090290400A1 (en) Bit cell designs for ternary content addressable memory
US6892272B1 (en) Method and apparatus for determining a longest prefix match in a content addressable memory device
US20160358654A1 (en) Low-power ternary content addressable memory
JP2004280992A (en) Associative memory
KR20030039989A (en) Association memory and memory cell thereof
JP2004192695A (en) Associative memory device
WO1999059156A1 (en) Method and apparatus for implementing a learn instruction in a content addressable memory device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080722