JP2004280992A - Associative memory - Google Patents
Associative memory Download PDFInfo
- 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
Links
Images
Abstract
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
[0004]
The
[0005]
In the
[0006]
At the time of search, m bits of search data are stored in the
[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
[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
[0012]
As one means for solving such a problem of the
[0013]
FIG. 15 is a configuration circuit diagram of a bit width extension circuit proposed in the CAM of
[0014]
In the CAM of
[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
[0021]
By the way, in the CAM of
[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
[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,
[0024]
On the other hand, when a search is performed using, for example, “BDAB” as search data, the attributes III and IV of the
[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
[0026]
Further, the CAM of
[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
[0029]
Further, in the CAM of
[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
[0042]
In the
[0043]
It should be noted that the
[0044]
The address of each word in the
[0045]
Each CAM block includes one
[0046]
The
[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
[0048]
Also, a signal KEYD [m-1: 0], which is search data, is commonly input to the search bit line driver 20 of the
[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
[0050]
In the
[0051]
Finally, the
[0052]
Although omitted to avoid complication of the drawing, the
[0053]
Next, the one-
[0054]
FIG. 2 is a schematic configuration diagram of one embodiment of a one-word circuit. The one-
[0055]
The
[0056]
FIG. 3 is a configuration circuit diagram of one embodiment of the CAM cell. A
[0057]
The
[0058]
As the
[0059]
The
[0060]
FIG. 4 is a configuration circuit diagram of an embodiment of the coincidence sense circuit. The
[0061]
In the one-
[0062]
At this time, both the
[0063]
At the time of the search, the signal MLPCN is set to “H”, and the
[0064]
When the search bit line pair SL, SLN is driven to '10' or '01', in each
[0065]
On the other hand, if the stored data and the search data are different even in one
[0066]
When the search bit line pair SL, SLN is driven to '00', the
[0067]
The search result output on the match line ML is amplified and output by the
[0068]
The configuration of the
[0069]
Subsequently, in the one-
[0070]
The signal ACI and the signal ACIEN are input to the input terminals of the OR gate constituting the OR-AND
[0071]
The output of the match flag register 60 is input to one input terminal of the
[0072]
As shown in FIG. 1, the signal MFO output from all the one-
[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-
[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-
[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
[0078]
In the one-
[0079]
The signal output from OR-AND
[0080]
The
[0081]
When the signal MFOE is “H”, the match flag latched in the match flag register 60 is output from the AND
[0082]
Further, an OR-AND
[0083]
Hereinafter, the operation of the
[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-
[0086]
Before the search, each entry data is registered in the
[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
[0091]
Since the signal ACI input to the one-
[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
[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
[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
[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
[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
[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
[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-
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[0135]
As described above, the
[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
[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
[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
[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
[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
[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
[0154]
As described above, the
[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手段から出力される信号をラッチするかどうかを制御する手段を備え、
前記第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.
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) |
-
2003
- 2003-03-18 JP JP2003073515A patent/JP2004280992A/en active Pending
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 |