JP2009158027A - 連想メモリ - Google Patents

連想メモリ Download PDF

Info

Publication number
JP2009158027A
JP2009158027A JP2007336169A JP2007336169A JP2009158027A JP 2009158027 A JP2009158027 A JP 2009158027A JP 2007336169 A JP2007336169 A JP 2007336169A JP 2007336169 A JP2007336169 A JP 2007336169A JP 2009158027 A JP2009158027 A JP 2009158027A
Authority
JP
Japan
Prior art keywords
search
memory cell
cell array
data
signal
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.)
Granted
Application number
JP2007336169A
Other languages
English (en)
Other versions
JP5119912B2 (ja
Inventor
Makoto Koga
誠 古賀
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007336169A priority Critical patent/JP5119912B2/ja
Publication of JP2009158027A publication Critical patent/JP2009158027A/ja
Application granted granted Critical
Publication of JP5119912B2 publication Critical patent/JP5119912B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】検索後、スタンバイ状態に戻る際に充電を必要とするマッチラインの数を減らし、消費電流の低減化を図ることができる連想メモリを提供する。
【解決手段】検索コマンド信号XSERが“0”とされ、検索が指示されると共に、検索データDINが与えられると、サーチドライバ部36を活性化し、メモリセルアレイ31を対象として検索を実行し、検索データDINがメモリセルアレイ31に記憶されているデータのいずれかと一致した場合には、サーチドライバ部37を非活性とし、メモリセルアレイ32を対象とした検索を実行せず、検索データDINがメモリセルアレイ31に記憶されているデータの全てと不一致の場合にのみ、サーチドライバ部37を活性化し、メモリセルアレイ32を対象とした検索動作を実行する。
【選択図】図1

Description

本発明は、連想メモリ(CAM:Content Addressable Memory)、即ち、外部から与えられた検索データと同一データを記憶するアドレスを検索し、検索データと同一データを記憶するアドレスを示すアドレス信号を外部に出力する機能(いわゆる検索機能)を有するメモリに関する。
図17は連想メモリの機能をRAM(Random Access Memory)と比較して説明するための図である。図17中、1はRAM、2は連想メモリである。RAM1は、書き込み及び読み出しが可能とされたものであり、(A)に示すように、ライトコマンドとアドレス信号とデータが与えられると、アドレス信号が指示するアドレスに対するデータの書き込みを行い、(B)に示すように、リードコマンドとアドレス信号が与えられると、アドレス信号が指示するアドレスからデータを読み出して出力する。
連想メモリ2は、書き込み、読み出し及び検索が可能とされたものであり、(C)に示すように、ライトコマンドとアドレス信号とデータが与えられると、アドレス信号が指示するアドレスに対するデータの書き込みを行い、(D)に示すように、リードコマンドとアドレス信号が与えられると、アドレス信号が指示するアドレスからデータを読み出して出力し、(E)に示すように、検索コマンドとデータが与えられると、与えられたデータと同一データを記憶するアドレスを検索し、検索したアドレスを示すアドレス信号を出力する。
図18は連想メモリが備えるメモリセルの一例を示す回路図である。図18中、WLはライト/リード時にメモリセルの選択を行うためのワードライン、BL、XBLはライト時にはライトアンプが出力する相補化されたライトデータのメモリセルへの伝送を行い、リード時にはメモリセルから読み出された相補化されたリードデータのセンスアンプへの伝送を行うためのビットライン、SB、XSBは外部から与えられた検索データを相補化してなるデータをサーチドライバからメモリセルに伝送するためのサーチバス、MLは検索データとメモリセルの記憶データとの一致、不一致を検出するためのマッチライン、3はSRAM(Static Random Access Memory)セルからなるメモリセルである。
また、メモリセル3において、4は記憶媒体をなすフリップフロップであり、5、6はインバータ、S0、S1はストレージノードである。7、8はワードラインWLの電位によりON、OFFが制御されるNMOSトランジスタ、9はストレージノードS0の電位によりON、OFFが制御されるNMOSトランジスタ、10はストレージノードS1の電位によりON、OFFが制御されるNMOSトランジスタ、11はサーチバスXSBの電位によりON、OFFが制御されるNMOSトランジスタ、12はサーチバスSBの電位によりON、OFFが制御されるNMOSトランジスタである。
本例では、メモリセル3に対するデータの書き込み及びメモリセル3からのデータの読み出しは、ワードラインWLと、ビットラインBL、XBLと、NMOSトランジスタ7、8とを使用して行われる。表1はメモリセル3に対するデータ書き込み時及びメモリセル3からのデータ読み出し時におけるメモリセル3の記憶データとストレージノードS0、S1の論理値とビットラインBL、XBLの論理値との関係を示している。
Figure 2009158027
ここで、メモリセル3にデータ“0”を書き込む場合には、ワードラインWLの論理値=“1”、NMOSトランジスタ7、8の状態=ON、ビットラインBLの論理値=“0”、ビットラインXBLの論理値=“1”とすることにより、ストレージノードS0の論理値=“0”、ストレージノードS1の論理値=“1”とし、その後、ワードラインWLの論理値=“0”、NMOSトランジスタ7、8の状態=OFFとする。
これに対して、メモリセル3にデータ“1”を書き込む場合には、ワードラインWLの論理値=“1”、NMOSトランジスタ7、8の状態=ON、ビットラインBLの論理値=“1”、ビットラインXBLの論理値=“0”とすることにより、ストレージノードS0の論理値=“1”、ストレージノードS1の論理値=“0”とし、その後、ワードラインWLの論理値=“0”、NMOSトランジスタ7、8の状態=OFFとする。
また、メモリセル3の記憶データが“0”の場合、即ち、ストレージノードS0の論理値=“0”、ストレージノードS1の論理値=“1”とされている場合において、ワードラインWLの論理値=“1”、NMOSトランジスタ7、8の状態=ONとし、メモリセル3からデータを読み出すと、ビットラインBLの論理値=“0”、ビットラインXBLの論理値=“1”となる。
これに対して、メモリセル3の記憶データが“1”の場合、即ち、ストレージノードS0の論理値=“1”、ストレージノードS1の論理値=“0”とされている場合において、ワードラインWLの論理値=“1”、NMOSトランジスタ7、8の状態=ONとし、メモリセル3からデータを読み出すと、ビットラインBLの論理値=“1”、ビットラインXBLの論理値=“0”となる。
また、メモリセル3に対する検索は、サーチバスSB、XSBと、NMOSトランジスタ9〜12と、マッチラインMLとを使用して行われる。表2は検索時におけるメモリセル3の記憶データとストレージノードS0、S1の論理値と検索データとサーチバスSB、XSBの論理値とマッチラインMLの論理値との関係を示しており、図19〜図22はメモリセル3に対する検索動作を説明するための回路図である。
Figure 2009158027
本例では、非検索時には、サーチバスSB、XSBの論理値=“0”、NMOSトランジスタ11、12の状態=OFFとされる。これに対して、検索時には、マッチラインMLは、電源電圧VDDにプリチャージされ、その論理値を“1”とされる。そして、検索データ=“0”の場合には、サーチバスSBの論理値=“0”、サーチバスXSBの論理値=“1”とされ、検索データ=“1”の場合には、サーチバスSBの論理値=“1”、サーチバスXSBの論理値=“0”とされる。
ここで、図19に示すように、メモリセル3の記憶データ=“0”の場合(即ち、ストレージノードS0の論理値=“0”、ストレージノードS1の論理値=“1”とされている場合)に、検索データとして“0”が入力された場合(即ち、サーチバスSBの論理値=“0”、サーチバスXSBの論理値=“1”とされた場合)には、NMOSトランジスタ9はOFF、NMOSトランジスタ10はON、NMOSトランジスタ11はON、NMOSトランジスタ12はOFFとなるので、マッチラインMLの論理値=“1”が維持される。
これに対して、図20に示すように、メモリセル3の記憶データ=“0”の場合(即ち、ストレージノードS0の論理値=“0”、ストレージノードS1の論理値=“1”とされている場合)に、検索データとして“1”が入力された場合(即ち、サーチバスSBの論理値=“1”、サーチバスXSBの論理値=“0”とされた場合)には、NMOSトランジスタ9はOFF、NMOSトランジスタ10はON、NMOSトランジスタ11はOFF、NMOSトランジスタ12はONとなるので、マッチラインMLは、NMOSトランジスタ10、12を介して接地され、マッチラインMLの論理値は“0”に遷移する。
また、図21に示すように、メモリセル3の記憶データ=“1”の場合(即ち、ストレージノードS0の論理値=“1”、ストレージノードS1の論理値=“0”とされている場合)に、検索データとして“1”が入力された場合(即ち、サーチバスSBの論理値=“1”、サーチバスXSBの論理値=“0”とされた場合)には、NMOSトランジスタ9はON、NMOSトランジスタ10はOFF、NMOSトランジスタ11はOFF、NMOSトランジスタ12はONとなるので、マッチラインMLの論理値=“1”が維持される。
また、図22に示すように、メモリセル3の記憶データ=“1”の場合(即ち、ストレージノードS0の論理値=“1”、ストレージノードS1の論理値=“0”とされている場合)に、検索データとして“0”が入力された場合(即ち、サーチバスSBの論理値=“0”、サーチバスXSBの論理値=“1”とされた場合)には、NMOSトランジスタ9はON、NMOSトランジスタ10はOFF、NMOSトランジスタ11はON、NMOSトランジスタ12はOFFとなるので、マッチラインMLは、NMOSトランジスタ9、11を介して接地され、マッチラインMLの論理値は“0”に遷移する。
図23はメモリセル3に対する検索時のサーチバスSB、XSB及びマッチラインMLの電位変化を示す波形図であり、(A)はサーチバスSB、XSBの電位変化、(B)はマッチラインMLの電位変化を示している。前述のように、マッチラインMLは、電源電圧VDD(論理1)にプリチャージされるが、検索データとメモリセル3の記憶データとが不一致のときは、マッチラインMLは、NMOSトランジスタ9、11又はNMOSトランジスタ10、12を介して接地され、マッチラインMLの電位は0V(論理0)に下降し、検索データとメモリセル3の記憶データとが一致したときは、マッチラインMLは、接地されず、電源電圧VDD(論理1)を維持する。
図24は実際の連想メモリにおけるメモリセルとマッチラインとの関係を示す回路図である。図24中、3(0)、3(1)、3(2)、3(n−1)はメモリセルであり、メモリセル3(3)〜3(n−2)は図示を省略している。SB(0)、XSB(0)、SB(1)、XSB(1)、SB(2)、XSB(2)、SB(n−1)、XSB(n−1)はサーチバスであり、サーチバスSB(3)、XSB(3)〜SB(n−2)、XSB(n−2)は図示を省略している。
また、15は検索時にマッチラインMLの電位変化を検出して検索結果信号MSZを出力するマッチライン・センスアンプ(MLSA:Match Line Sense Amplifier)である。マッチライン・センスアンプ15は、マッチラインMLの論理値=“1”のときは、検索結果信号MSZの論理値=“1”とし、マッチラインMLの論理値=“0”のときは、検索結果信号MSZの論理値=“0”とする。
図24に示すように、実際の連想メモリにおいては、メモリセルとマッチラインとの関係は、1対1ではなく、マッチラインMLには、検索データのビット数と同じ数のメモリセル3(0)〜3(n−1)が接続されている。そして、マッチラインMLは、nビットからなる検索データの各ビットの論理値が、対応するメモリセルの記憶データの論理値と一致するときは、“1”を維持するが、検索データのいずれかのビットの論理値が、対応するメモリセルの記憶データの論理値と一致しないときは、“0”に遷移する。
図25は従来の連想メモリの一例の一部分を示すブロック図である。図25中、16は図18に示す構成のメモリセルを1行(1ワードライン)当たりn個配列したメモリセル列が512行配列されてなるメモリセルアレイ、17はワードラインを駆動するワードデコーダ(WDEC)のグループであるワードデコーダ部、18はメモリセルに書き込みを行うライトアンプ(W/A)のグループであるライトアンプ部、19はビットラインに読み出されたデータを増幅するセンスアンプ(S/A)のグループであるセンスアンプ部である。
20はサーチバスを駆動するサーチドライバ(S/D)のグループであるサーチドライバ部、21はマッチラインのレベル検出を行うマッチライン・センスアンプ(MLSA)のグループであるマッチライン・センスアンプ部、22はマッチライン・センスアンプ部21が出力する検索結果信号MSZをエンコードして、検索データと同一のデータが記憶されているアドレスを示すアドレス信号を出力するエンコーダ(ENC)である。
23は外部から与えられる検索コマンド信号をデコードするコマンドデコーダ(COMDEC)、24はコマンドデコーダ23が出力する検索コマンドデコード信号を入力してサーチドライバ部20のサーチドライバに与えるサーチドライバ活性化信号を生成するサーチドライバ活性化信号生成回路(SBEGEN)である。
図26は図25に示す従来の連想メモリの一部分をより詳しく示す回路図である。メモリセルアレイ16において、3(0、0)は1行目の1ビット目のメモリセル、3(0、1)は1行目の2ビット目のメモリセル、3(0、n−1)は1行目のnビット目のメモリセルであり、1行目の3ビット目〜n−1ビット目のメモリセル3(0、2)〜3(0、n−2)は図示を省略している。3(1、0)は2行目の1ビット目のメモリセル、3(1、1)は2行目の2ビット目のメモリセル、3(1、n−1)は2行目のnビット目のメモリセルであり、2行目の3ビット目〜n−1ビット目のメモリセル3(1、2)〜3(1、n−2)は図示を省略している。
3(511、0)は512行目の1ビット目のメモリセル、3(511、1)は512行目の2ビット目のメモリセル、3(511、n−1)は512行目のnビット目のメモリセルであり、512行目の3ビット目〜n−1ビット目のメモリセル3(511、2)〜3(511、n−2)は図示を省略している。また、3行目〜511行目のメモリセル3(2、0)〜3(2、n−1)、…、3(510、0)〜3(510、n−1)も図示を省略している。図27は図25に示すメモリセルアレイ16の部分をより詳しく示している。なお、本例では、m行目(但し、m=1、2、…、512であり、以下、同様である。)のメモリセル列の番地は、m−1番地とされる。
また、図26において、WL0は1行目のワードライン、WL1は2行目のワードライン、WL511は512行目のワードラインであり、3行目〜511行目のワードラインWL2〜WL510は図示を省略している。ML0は1行目のマッチライン、ML1は2行目のマッチライン、ML511は512行目のマッチラインであり、3行目〜511行目のマッチラインML2〜ML510は図示を省略している。
ワードデコーダ部17において、25(0)は1行目のワードラインWL0に対応して設けられたワードデコーダ、25(1)は2行目のワードラインWL1に対応して設けられたワードデコーダ、25(511)は512行目のワードラインWL511に対応して設けられたワードデコーダであり、3行目〜511行目のワードラインWL2〜WL510に対応して設けられたワードデコーダ25(2)〜25(510)は図示を省略している。
ライトアンプ部18において、26(0)は1ビット目のビットラインBL(0)、XBL(0)に対応して設けられたライトアンプ、26(1)は2ビット目のビットラインBL(1)、XBL(1)に対応して設けられたライトアンプ、26(n−1)はnビット目のビットラインBL(n−1)、XBL(n−1)に対応して設けられたライトアンプであり、3ビット目〜n−1ビット目のビットラインBL(2)、XBL(2)〜BL(n−2)、XBL(n−2)に対応して設けられたライトアンプ26(2)〜26(n−2)は図示を省略している。
センスアンプ部19において、27(0)は1ビット目のビットラインBL(0)、XBL(0)に対応して設けられたセンスアンプ、27(1)は2ビット目のビットラインBL(1)、XBL(1)に対応して設けられたセンスアンプ、27(n−1)はnビット目のビットラインBL(n−1)、XBL(n−1)に対応して設けられたセンスアンプであり、3ビット目〜n−1ビット目のビットラインBL(2)、XBL(2)〜BL(n−2)、XBL(n−2)に対応して設けられたセンスアンプ27(2)〜27(n−2)は図示を省略している。
サーチドライバ部20において、28(0)は1ビット目のサーチバスSB(0)、XSB(0)に対応して設けられたサーチドライバ、28(1)は2ビット目のサーチバスSB(1)、XSB(1)に対応して設けられたサーチドライバ、28(n−1)はnビット目のサーチバスSB(n−1)、XSB(n−1)に対応して設けられたサーチドライバであり、3ビット目〜n−1ビット目のサーチバスSB(2)、XSB(2)〜SB(n−2)、XSB(n−2)に対応して設けられたサーチドライバ28(2)〜28(n−2)は図示を省略している。
マッチライン・センスアンプ部21において、15(0)は1行目のマッチラインML0に対応して設けられたマッチライン・センスアンプ、15(1)は2行目のマッチラインML1に対応して設けられたマッチライン・センスアンプ、15(511)は512行目のマッチラインML511に対応して設けられたマッチライン・センスアンプであり、3行目〜511行目のマッチラインML2〜ML510に対応して設けられたマッチライン・センスアンプ15(2)〜15(510)は図示を省略している。
図28は図25に示す従来の連想メモリの検索動作例を説明するための回路図、図29及び図30は図25に示す従来の連想メモリの検索動作例を示すタイミング図であり、図29は検索データDINと1番地の記憶データとが一致した場合、図30は検索データDINと0番地の記憶データとが一致した場合である。
図28において、XSERは外部からコマンドデコーダ23に与えられる検索コマンド信号、SERZはコマンドデコーダ23が出力する検索コマンドデコード信号、SBEZはサーチドライバ活性化信号生成回路24が出力するサーチドライバ活性化信号、DINは外部から与えられるnビットからなる検索データ、D(0)は検索データDINの1ビット目のデータ、D(n−1)は検索データDINのnビット目のデータであり、検索データDINの2ビット目〜n−1ビット目のデータD(1)〜D(n−2)は図示を省略している。また、MS0Zは1行目のマッチライン・センスアンプ15(0)が出力する検索結果信号、MS1Zは2行目のマッチライン・センスアンプ15(1)が出力する検索結果信号、EAはエンコーダ22が出力する9ビットからなるアドレス信号である。
また、図29及び図30において、(A)は動作サイクルを決めるクロック信号CLK、(B)は検索コマンド信号XSER、(C)は検索コマンドデコード信号SERZ、(D)はサーチドライバ活性化信号SBEZ、(E)はサーチバスSB(p)、XSB(p)の論理値(但し、p=0、1、…、n−1であり、以下、同様である。)、(F)はマッチラインML0の論理値、(G)は検索結果信号MS0Z、(H)はマッチラインML1の論理値、(I)は検索結果信号MS1Zを示している。
即ち、図25に示す従来の連想メモリにおいては、検索前(スタンバイ時)には、検索コマンド信号XSER=“1”、検索コマンドデコード信号SERZ=“0”、サーチドライバ活性化信号SBEZ=“0”、サーチバスSB(p)、XSB(p)の論理値=“0”、マッチラインML0〜ML511の論理値=“1”、検索結果信号MS0Z〜MS511Z=“1”とされる。
そして、検索を行う場合には、図29及び図30に示すように、検索コマンド信号XSER=“0”とされ、検索が指示されると共に、サーチドライバ28(0)〜28(n−1)に検索データD(0)〜D(n−1)が与えられる。この結果、コマンドデコーダ23は、検索コマンドデコード信号SERZ=“1”とし、これに応答して、サーチドライバ活性化信号生成回路24は、サーチドライバ活性化信号SBEZ=“1”とし、サーチドライバ28(p)は、検索データD(p)の値に対応してサーチバスSB(p)、XSB(p)の一方の論理値=“1”、他方の論理値=“0”とする。
ここで、検索データD(0)〜D(n−1)が0番地の記憶データ(即ち、メモリセル3(0、0)〜3(0、n−1)の記憶データ)と一致せず、1番地の記憶データ(即ち、メモリセル3(1、0)〜3(1、n−1)の記憶データ)と一致すると、図29に示すように、マッチラインML0の論理値=“0”となり、マッチラインML1の論理値=“1”が維持される。この結果、マッチライン・センスアンプ15(0)は、検索結果信号MS0Z=“0”とし、マッチライン・センスアンプ15(1)は、検索結果信号MS1Z=“1”を維持する。したがって、この場合には、エンコーダ22は、1番地を示すアドレス信号EAとして[000000001]を出力する。
これに対して、検索データD(0)〜D(n−1)が0番地の記憶データ(即ち、メモリセル3(0、0)〜3(0、n−1)の記憶データ)と一致し、1番地の記憶データ(即ち、メモリセル3(1、0)〜3(1、n−1)の記憶データ)と一致しなかった場合には、図30に示すように、マッチラインML0の論理値=“1”が維持され、マッチラインML1の論理値=“0”となる。この結果、マッチライン・センスアンプ15(0)は、検索結果信号MS0Z=“1”を維持し、マッチライン・センスアンプ15(1)は、検索結果信号MS1Zの論理値=“0”とする。したがって、この場合には、エンコーダ22は、0番地を示すアドレス信号EAとして[000000000]を出力する。
なお、連想メモリは、検索データが複数番地の記憶データと一致した場合、どの番地を示すアドレス信号を出力するかについて予め優先順位を定めておき、これに従ってアドレス信号を出力するという機能、即ち、プライオリティ・マッチ(Priority match)機能を備えている。例えば、図25に示す従来の連想メモリが、検索データDINが複数番地の記憶データと一致した場合には、最小番地を示すアドレス信号を出力するという優先順位を定めている場合において、例えば、図31に示すように、検索データDINが0番地の記憶データと2番地の記憶データとに一致した場合には、エンコーダ22は、0番地を検出して、0番地を示すアドレス信号を出力することになる。
特開2000−215678号公報 特開平7−287718号公報 特開平3−212896号公報
図25に示す従来の連想メモリにおいては、検索データDINについての検索動作は、512個の全アドレス(0番地〜511番地)に対して行われるが、検索データDINと同一データを記憶するアドレスは、ほんの一部であり、512本のマッチラインML0〜ML511のほとんどは、その論理値が“0”に遷移するので、検索後、スタンバイ状態に戻る際には512本のマッチラインML0〜ML511のほとんどについて充電が必要となる。ここに、検索後、スタンバイ状態に戻る際に充電を必要とするマッチラインの数を減らすことができれば、消費電流を低減することができるので、これを可能とする連想メモリの開発が要請されている。
本発明は、かかる点に鑑み、検索後、スタンバイ状態に戻る際に充電を必要とするマッチラインの数を減らし、消費電流の低減化を図ることができるようにした連想メモリを提供することを目的とする。
本出願で開示する連想メモリは、外部から与えられた検索データについて順に検索対象とされる複数のメモリセルアレイと、前記検索データと同一データを記憶するメモリセルアレイについて検索を実行したときは、前記検索データと同一データを記憶するメモリセルアレイ以降に検索対象とされているメモリセルアレイについては検索を実行しないように検索動作を制御する制御部とを備えるものである。
開示した連想メモリによれば、前記制御部は、前記検索データと同一データを記憶するメモリセルアレイについて検索を実行したときは、前記検索データと同一データを記憶するメモリセルアレイ以降に検索対象とされているメモリセルアレイについては検索を実行しないように検索動作を制御するので、検索後、スタンバイ状態に戻る際に、前記検索データと同一データを記憶するメモリセルアレイ以降に検索対象とされているメモリセルアレイに設けられているマッチラインについては充電の必要がない。したがって、検索後、スタンバイ状態に戻る際に充電を必要とするマッチラインの数を減らし、消費電流の低減化を図ることができる。
(第1実施形態)
図1は本発明の第1実施形態の一部分を示す回路図である。図1中、31、32はそれぞれ図18に示す構成のメモリセルを1行(1ワードライン)当たりn個配列したメモリセル列が256行配列されたメモリセルアレイ(MCA)である。これらメモリセルアレイ31、32は、図25に示す従来の連想メモリが備えるメモリセルアレイ16を0番地〜255番地までの部分と256番地〜512番地までの部分に分割したものであり、メモリセルアレイ31は0番地〜255番地の部分、メモリセルアレイ32は256番地〜512番地の部分である。
本発明の第1実施形態においては、ビットラインは、メモリセルアレイ31、32に対してビットラインBL(0)、XBL(0)〜BL(n−1)、XBL(n−1)が共通に設けられるが、サーチバスは、メモリセルアレイ31に対してはサーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)が設けられ、メモリセルアレイ32に対してはサーチバスSB1(0)、XSB1(0)〜SB1(n−1)、XSB1(n−1)が設けられる。
33はメモリセルアレイ31に配列されているワードラインWL0〜WL255及びメモリセルアレイ32に配列されているワードラインWL256〜WL511を駆動するワードデコーダのグループであるワードデコーダ部、34はメモリセルアレイ31、32のメモリセルに書き込みを行うライトアンプのグループであるライトアンプ部、35はメモリセルアレイ31、32のメモリセルからビットラインBL(0)、XBL(0)〜BL(n−1)、XBL(n−1)に読み出されたデータを増幅するセンスアンプのグループであるセンスアンプ部である。
36はメモリセルアレイ31に配列されているサーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)を駆動するサーチドライバのグループであるサーチドライバ部、37はメモリセルアレイ32に配列されているサーチバスSB1(0)、XSB1(0)〜SB1(n−1)、XSB1(n−1)を駆動するサーチドライバのグループであるサーチドライバ部、38はメモリセルアレイ31に配置されているサーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)の論理値を取り込んでサーチドライバ部37のサーチドライバに転送するフリップフロップ(FF)のグループであるフリップフロップ部である。
39はメモリセルアレイ31に配列されているマッチラインML0〜ML255のレベル検出を行うマッチライン・センスアンプのグループであるマッチライン・センスアンプ部、40はメモリセルアレイ32に配列されているマッチラインML256〜ML511のレベル検出を行うマッチライン・センスアンプのグループであるマッチライン・センスアンプ部である。
41はマッチライン・センスアンプ部39が出力する検索結果信号MS0Z〜MS255Zとマッチライン・センスアンプ部40が出力する検索結果信号MS256Z〜MS511Zとを入力し、検索データDINと同一データを記憶しているアドレスを示す9ビットのアドレス信号EAを生成するエンコーダである。なお、エンコーダ41は、検索データDINが複数番地の記憶データと一致した場合、これら複数番地のうち、最小番地を示すアドレス信号EAを出力するものである。
42は外部から与えられた検索コマンド信号XSERをデコードして検索コマンドデコード信号SERZを出力するコマンドデコーダ、43はコマンドデコーダ42が出力する検索コマンドデコード信号SERZを入力してサーチドライバ部36のサーチドライバに与えるサーチドライバ活性化信号SBE0Zを生成するサーチドライバ活性化信号生成回路、44はサーチドライバ活性化信号生成回路43が出力するサーチドライバ活性化信号SBE0Zをクロック信号CLKに同期して取り込むフリップフロップである。
45はマッチライン・センスアンプ部39が出力する検索結果信号MS0Z〜MS255Zを入力し、検索結果信号MS0Z〜MS255Zが全て“0”の場合(即ち、検索データDINがメモリセルアレイ31に記憶されているデータの全てと不一致の場合)であるか、あるいは、検索結果信号MS0Z〜MS255Zのいずれかが“1”の場合(即ち、検索データDINがメモリセルアレイ31に記憶されているデータのいずれかと一致した場合)であるかを判定して検索結果判定信号DET0Zを出力する検索結果判定回路(DET)である。
検索結果判定回路45は、検索結果信号MS0Z〜MS255Zが全て“0”の場合(即ち、検索データDINがメモリセルアレイ31に記憶されているデータの全てと不一致の場合)には、検索結果判定信号DET0Z=“1”とし、検索結果信号MS0Z〜MS255Zのいずれかが“1”の場合(即ち、検索データDINがメモリセルアレイ31に記憶されているデータのいずれかと一致した場合)には、検索結果判定信号DET0Z=“0”とする。
46は検索結果判定回路45が出力する検索結果判定信号DET0Zとフリップフロップ44が出力するサーチドライバ活性化信号SBE0Zとを入力して、サーチドライバ部37のサーチドライバに与えるサーチドライバ活性化信号SBE1Zを出力するサーチドライバ活性化信号バッファ(SBEBUF)である。サーチドライバ活性化信号バッファ46は、検索結果判定信号DET0Z=“1”のときは、フリップフロップ44が出力するサーチドライバ活性化信号SBE0Zをサーチドライバ活性化信号SBE1Zとして出力し、検索結果判定信号DET0Z=“0”のときは、サーチドライバ活性化信号SBE1Z=“0”とする。
図2は本発明の第1実施形態の一部分をより詳しく示す回路図であり、メモリセルアレイ31、32、ライトアンプ部34、センスアンプ部35、サーチドライバ部36、37及びフリップフロップ部38の部分をより詳細に示している。
メモリセルアレイ31において、50(0、0)は1行目の1ビット目のメモリセル、50(0、n−1)は1行目のnビット目のメモリセルであり、1行目の2ビット目〜n−1ビット目のメモリセル50(0、1)〜50(0、n−2)は図示を省略している。50(255、0)は256行目の1ビット目のメモリセル、50(255、n−1)は256行目のnビット目のメモリセルであり、2行目の2ビット目〜n−1ビット目のメモリセル50(255、1)〜50(255、n−2)は図示を省略している。また、2行目〜255行目のメモリセル50(1、0)〜50(1、n−1)、…、50(254、0)〜50(254、n−1)も図示を省略している。図3はメモリセルアレイ31の部分をより詳しく示している。
メモリセルアレイ32において、50(256、0)は257行目の1ビット目のメモリセル、50(256、n−1)は257行目のnビット目のメモリセルであり、257行目の2ビット目〜n−1ビット目のメモリセル256(0、1)〜256(0、n−2)は図示を省略している。50(511、0)は512行目の1ビット目のメモリセル、50(511、n−1)は512行目のnビット目のメモリセルであり、512行目の2ビット目〜n−1ビット目のメモリセル50(511、1)〜50(511、n−2)は図示を省略している。また、258行目〜511行目のメモリセル50(257、0)〜50(257、n−1)、…、50(510、0)〜50(510、n−1)も図示を省略している。図4はメモリセルアレイ32の部分をより詳しく示している。
WL0は1行目のワードライン、WL255は256行目のワードラインであり、2行目〜255行目のワードラインWL1〜WL254は図示を省略している。WL256は257行目のワードライン、WL511は512行目のワードラインであり、258行目〜511行目のワードラインWL257〜WL510は図示を省略している。
ML0は1行目のマッチライン、ML255は256行目のマッチラインであり、2行目〜255行目のマッチラインML1〜ML254は図示を省略している。ML256は257行目のマッチライン、ML511は512行目のマッチラインであり、258行目〜511行目のマッチラインML257〜ML510は図示を省略している。
ライトアンプ部34において、51(0)は1ビット目のビットラインBL(0)、XBL(0)に対応して設けられたライトアンプ、51(n−1)はnビット目のビットラインBL(n−1)、XBL(n−1)に対応して設けられたライトアンプであり、2ビット目〜n−1ビット目のビットラインBL(1)、XBL(1)〜BL(n−2)、XBL(n−2)に対応して設けられたライトアンプ51(1)〜51(n−2)は図示を省略している。
センスアンプ部35において、52(0)は1ビット目のビットラインBL(0)、XBL(0)に対応して設けられたセンスアンプ、52(n−1)はnビット目のビットラインBL(n−1)、XBL(n−1)に対応して設けられたセンスアンプであり、2ビット目〜n−1ビット目のビットラインBL(1)、XBL(1)〜BL(n−2)、XBL(n−2)に対応して設けられたセンスアンプ52(1)〜52(n−2)は図示を省略している。
サーチドライバ部36において、53(0)は1ビット目のサーチバスSB0(0)、XSB0(0)に対応して設けられたサーチドライバ、53(n−1)はnビット目のサーチバスSB0(n−1)、XSB0(n−1)に対応して設けられたサーチバスであり、2ビット目〜n−1ビット目のサーチバスSB0(1)、XSB0(1)〜SB0(n−2)、XSB0(n−2)に対応して設けられたサーチドライバ53(2)〜53(n−2)は図示を省略している。
サーチドライバ53(p)は、サーチドライバ活性化信号SBE0Z=“1”のときは活性化され、与えられた検索データD(p)に対応して、サーチバスSB0(p)、XSB0(p)の一方の論理値=“1”、他方の論理値=“0”とし、サーチドライバ活性化信号SBE0Z=“0”のときは非活性とされ、サーチバスSB0(p)、XSB0(p)の論理値=“0”とする。
サーチドライバ部37において、54(0)は1ビット目のサーチバスSB1(0)、XSB1(0)に対応して設けられたサーチドライバ、54(n−1)はnビット目のサーチバスSB1(n−1)、XSB1(n−1)に対応して設けられたサーチバスであり、2ビット目〜n−1ビット目のサーチバスSB1(1)、XSB1(1)〜SB1(n−2)、XSB1(n−2)に対応して設けられたサーチドライバ54(2)〜54(n−2)は図示を省略している。
サーチドライバ54(p)は、サーチドライバ活性化信号SBE1Z=“1”のときは活性化され、フリップフロップ部38を介して与えられるサーチバスSB0(p)、XSB0(p)の論理値(検索データDIN)に対応して、サーチバスSB1(p)、XSB1(p)の一方の論理値=“1”、他方の論理値=“0”とし、サーチドライバ活性化信号SBE1Z=“0”のときは非活性とされ、サーチバスSB1(p)、XSB1(p)の論理値=“0”とする。
図5は本発明の第1実施形態の一部分をより詳しく示す回路図であり、ワードデコーダ部33及びマッチライン・センスアンプ部39、40の部分をより詳細に示している。ワードデコーダ部33において、55(0)は1行目のワードラインWL0に対応して設けられたワードデコーダ、55(255)は256行目のワードラインWL255に対応して設けられたワードデコーダであり、2行目〜255行目のワードラインWL1〜WL254に対応して設けられたワードデコーダ55(1)〜55(254)は図示を省略している。
また、55(256)は257行目のワードラインWL256に対応して設けられたワードデコーダ、55(511)は512行目のワードラインWL511に対応して設けられたワードデコーダであり、258行目〜511行目のワードラインWL257〜WL510に対応して設けられたワードデコーダ55(257)〜55(510)は図示を省略している。
マッチライン・センスアンプ部39において、56(0)は1行目のマッチラインML0に対応して設けられたマッチライン・センスアンプ、56(255)は256行目のマッチラインML255に対応して設けられたマッチライン・センスアンプであり、2行目〜255行目のマッチラインML1〜ML254に対応して設けられたマッチライン・センスアンプ56(1)〜56(254)は図示を省略している。
マッチライン・センスアンプ部40において、56(256)は257行目のマッチラインML256に対応して設けられたマッチライン・センスアンプ、56(511)は512行目のマッチラインML511に対応して設けられたマッチライン・センスアンプであり、258行目〜511行目のマッチラインML257〜ML510に対応して設けられたマッチライン・センスアンプ56(257)〜56(510)は図示を省略している。
図6及び図7は本発明の第1実施形態の検索動作例を示すタイミング図であり、図6は検索データDINがメモリセルアレイ31に記憶されているデータの全てと不一致の場合、図7は検索データDINがメモリセルアレイ31に記憶されているデータのいずれかと一致した場合である。
図6及び図7において、(A)は動作サイクルを決めるクロック信号CLK、(B)は検索コマンド信号XSER、(C)は検索コマンドデコード信号SERZ、(D)はサーチドライバ活性化信号SBE0Z、(E)はサーチバスSB0(p)、XSB0(p)の論理値、(F)はマッチラインML0〜ML255の論理値、(G)は検索結果信号MS0Z〜MS255Z、(H)は検索結果判定信号DET0Z、(I)はサーチドライバ活性化信号SBE1Z、(J)はサーチバスSB1(p)、XSB1(p)の論理値、(K)はマッチラインML256〜ML511の論理値、(L)は検索結果判定信号MS256Z〜MS511Zを示している。
即ち、本発明の第1実施形態においては、検索前(スタンバイ時)には、検索コマンド信号XSER=“1”、検索コマンドデコード信号SERZ=“0”、サーチドライバ活性化信号SBE0Z=“0”、サーチバスSB0(p)、XSB0(p)の論理値=“0”、マッチラインML0〜ML255の論理値=“1”、検索結果信号MS0Z〜MS255Z=“1”、検索結果判定信号DET0Z=“0”、サーチドライバ活性化信号SBE1Z=“0”、サーチバスSB1(p)、XSB1(p)の論理値=“0”、マッチラインML256〜ML511の論理値=“1”、検索結果信号MS256Z〜MS511Z=“1”とされる。
そして、検索を行う場合には、図6(B)及び図7(B)に示すように、例えば、サイクルSwで、検索コマンド信号XSER=“0”とされ、検索が指示されると共に、サーチドライバ53(0)〜53(n−1)に検索データD(0)〜D(n−1)が与えられる。この結果、コマンドデコーダ42は、図6(C)及び図7(C)に示すように、検索コマンドデコード信号SERZ=“1”とし、これに応答して、サーチドライバ活性化信号生成回路43は、図6(D)及び図7(D)に示すように、サーチドライバ活性化信号SBE0Z=“1”とすると共に、サーチドライバ53(p)は、検索データD(p)の値に対応して、図6(E)及び図7(E)に示すように、サーチバスSB0(p)、XSB0(p)の一方の論理値=“1”、他方の論理値=“0”とする。
ここで、検索データD(0)〜D(n−1)がメモリセルアレイ31に記憶されているデータの全てと不一致の場合には、図6(F)に示すように、マッチラインML0〜ML255の論理値=“0”となる。この結果、マッチライン・センスアンプ56(0)〜56(255)は、図6(G)に示すように、検索結果信号MS0Z〜MS255Z=“0”とし、これに応答して、検索結果判定回路45は、図6(H)に示すように、検索結果判定信号DET0Z=“1”とする。
したがって、サーチドライバ活性化信号生成回路43は、図6(I)に示すように、サイクルSw+1において、サーチドライバ活性化信号SBE1Z=“1”とし、サーチドライバ54(p)を活性化する。また、サーチバスSB0(p)、XSB0(p)の論理値がフリップフロップ55(p)を介してサーチドライバ54(p)に供給される。この結果、サーチドライバ54(p)は、図6(J)に示すように、検索データD(p)の値に対応してサーチバスSB1(p)、XSB1(p)の一方の論理値=“1”、他方の論理値=“0”とする。
そして、検索データD(0)〜D(n−1)がメモリセルアレイ32に記憶されているデータのいずれかと一致すると、図6(K)に示すように、マッチラインML255〜ML511のうち、検索データD(0)〜D(n−1)と同一データを記憶するアドレスのマッチラインの論理値が“1”に維持されるので、マッチライン・センスアンプ56(256)〜56(511)は、図6(L)に示すように、検索結果信号MS256Z〜MS511Zのうち、検索データD(0)〜D(n−1)と同一データを記憶するアドレスの検索結果信号を“1”に維持する。
これに対して、検索データD(0)〜D(n−1)がメモリセルアレイ31に記憶されているデータのいずれかと一致すると、図7(F)に示すように、マッチラインML0〜ML255のうち、検索データD(0)〜D(n−1)と同一データを記憶するアドレスのマッチラインの論理値が“1”に維持される。この結果、マッチライン・センスアンプ56(0)〜56(255)は、図7(G)に示すように、検索結果信号MS0Z〜MS255Zのうち、検索データD(0)〜D(n−1)と同一データを記憶するアドレスの検索結果信号を“1”に維持し、検索結果判定回路45は、図7(H)に示すように、検索結果判定信号DET0Z=“0”を維持する。
したがって、この場合には、サーチドライバ活性化信号生成回路43は、図7(I)に示すように、サイクルSw+1においても、サーチドライバ活性化信号SBE1Z=“0”を維持し、サーチドライバ54(p)を活性化せず、図7(J)に示すように、サーチバスSB1(p)、XSB1(p)の論理値=“0”に維持されるので、図7(K)に示すように、マッチラインML256〜ML511の論理値=“1”、図7(L)に示すように、検索結果信号MS256Z〜MS511Zの論理値=“1”に維持される。
ここで、エンコーダ41は、図6に示す場合(検索結果信号MS0Z〜MS255Zの全ての論理値=“0”、検索結果信号MS256Z〜MS511Zのいずれかの論理値=“1”の場合)も、図7に示す場合(検索結果信号MS0Z〜MS255Zのいずれかの論理値=“1”、検索結果信号MS256Z〜MS511Zの全ての論理値が“1”場合)も、検索結果信号MS0Z〜MS511Zを入力し、検索データDINと同一データを記憶するアドレスを示すアドレス信号EAを出力する。なお、本発明の第1実施形態においては、フリップフロップ44と、検索結果判定回路45と、サーチバス活性化信号バッファ46とで、メモリセルアレイ32に対する検索動作を制御する制御部が構成されている。
以上のように、本発明の第1実施形態によれば、検索コマンド信号XSERが“0”とされると共に、検索データDINが与えられると、メモリセルアレイ31を対象として検索が実行され、検索データDINがメモリセルアレイ31に記憶されているデータのいずれかと一致した場合には、メモリセルアレイ32を対象とした検索は実行されず、検索データDINがメモリセルアレイ31に記憶されているデータの全てと不一致の場合にのみ、メモリセルアレイ32を対象とした検索動作が実行される。
この結果、検索データDINがメモリセルアレイ31に記憶されているデータのいずれかと一致し、メモリセルアレイ32を対象とした検索を実行しないで済んだ場合には、スタンバイ状態に戻る際に、メモリセルアレイ32に設けられているマッチラインML256〜ML511については充電の必要がない。したがって、検索後、スタンバイ状態に戻る際に充電を必要とするマッチラインの数を減らし、消費電流の低減化を図ることができる。
(第2実施形態)
図8は本発明の第2実施形態の一部分を示す回路図である。図8中、61〜64はそれぞれ図18に示す構成のメモリセルを1行(1ワードライン)当たりn個配列したメモリセル列が128行配列されたメモリセルアレイである。これらメモリセルアレイ61〜64は、図25に示す従来の連想メモリが備えるメモリセルアレイ16を、0番地〜127番地までの部分と、128番地〜255番地までの部分と、256番地〜383番地の部分と、384番地〜511番地の部分とに分割したものであり、メモリセルアレイ61は0番地〜127番地の部分、メモリセルアレイ62は128番地〜255番地の部分、メモリセルアレイ63は256番地〜383番地の部分、メモリセルアレイ64は384番地〜511番地の部分である。
本発明の第2実施形態においては、ビットラインは、図9及び図10に示すように、メモリセルアレイ61〜64に対してビットラインBL(0)、XBL(0)〜BL(n−1)、XBL(n−1)が共通に設けられるが、サーチバスは、メモリセルアレイ61に対しては、図9に示すように、サーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)が設けられ、メモリセルアレイ62に対しては、同じく図9に示すように、サーチバスSB1(0)、XSB1(0)〜SB1(n−1)、XSB1(n−1)が設けられ、メモリセルアレイ63に対しては、図10に示すように、サーチバスSB2(0)、XSB2(0)〜SB2(n−1)、XSB2(n−1)が設けられ、メモリセルアレイ64に対しては、同じく図10に示すように、サーチバスSB3(0)、XSB3(0)〜SB3(n−1)、XSB3(n−1)が設けられる。
65はメモリセルアレイ61に配列されているワードラインWL0〜WL127、メモリセルアレイ62に配列されているワードラインWL128〜WL255、メモリセルアレイ63に配列されているワードラインWL256〜WL383及びメモリセルアレイ64に配列されているワードラインWL384〜WL511を駆動するワードデコーダのグループであるワードデコーダ部、66はメモリセルアレイ61〜64のメモリセルに書き込みを行うライトアンプのグループであるライトアンプ部、67はビットラインBL(0)、XBL(0)〜BL(n−1)、XBL(n−1)に読み出されたデータを増幅するセンスアンプのグループであるセンスアンプ部である。
68はメモリセルアレイ61に配列されているサーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)を駆動するサーチドライバのグループであるサーチドライバ部、69はメモリセルアレイ62に配列されているサーチバスSB1(0)、XSB1(0)〜SB1(n−1)、XSB1(n−1)を駆動するサーチドライバのグループであるサーチドライバ部、70はメモリセルアレイ63に配列されているサーチバスSB2(0)、XSB2(0)〜SB2(n−1)、XSB2(n−1)を駆動するサーチドライバのグループであるサーチドライバ部、71はメモリセルアレイ64に配列されているサーチバスSB3(0)、XSB3(0)〜SB3(n−1)、XSB3(n−1)を駆動するサーチドライバのグループであるサーチドライバ部である。
72はメモリセルアレイ61に配列されているサーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)の論理値を取り込んでサーチドライバ部69のサーチドライバに転送するフリップフロップのグループであるフリップフロップ部、73はメモリセルアレイ62に配列されているサーチバスSB1(0)、XSB1(0)〜SB1(n−1)、XSB1(n−1)の論理値を取り込んでサーチドライバ部70のサーチドライバに転送するフリップフロップのグループであるフリップフロップ部、74はメモリセルアレイ63に配列されているサーチバスSB2(0)、XSB2(0)〜SB2(n−1)、XSB2(n−1)の論理値を取り込んでサーチドライバ部71のサーチドライバに転送するフリップフロップのグループであるフリップフロップ部である。
75はメモリセルアレイ61に配列されているマッチラインML0〜ML127のレベル検出を行うマッチライン・センスアンプのグループであるマッチライン・センスアンプ部、76はメモリセルアレイ62に配列されているマッチラインML128〜ML255のレベル検出を行うマッチライン・センスアンプのグループであるマッチライン・センスアンプ部、77はメモリセルアレイ63に配列されているマッチラインML256〜ML383のレベル検出を行うマッチライン・センスアンプのグループであるマッチライン・センスアンプ部、78はメモリセルアレイ64に配列されているマッチラインML384〜ML511のレベル検出を行うマッチライン・センスアンプのグループであるマッチライン・センスアンプ部である。
79はマッチライン・センスアンプ部75が出力する検索結果信号MS0Z〜MS127Zと、マッチライン・センスアンプ部76が出力する検索結果信号MS128Z〜MS255Zと、マッチライン・センスアンプ部77が出力する検索結果信号MS256Z〜MS383Zと、マッチライン・センスアンプ部78が出力する検索結果信号MS384Z〜MS511Zとを入力し、検索データDINと同一データを記憶しているアドレスを示す9ビットのアドレス信号EAを生成するエンコーダである。なお、エンコーダ79は、検索データDINが複数番地の記憶データと一致した場合、これら複数番地のうち、最小番地を示すアドレス信号EAを出力するものである。
80は外部から与えられた検索コマンド信号XSERをデコードして検索コマンドデコード信号SERZを出力するコマンドデコーダ、81はコマンドデコーダ80が出力する検索コマンドデコード信号SERZを入力してサーチドライバ部68のサーチドライバに与えるサーチドライバ活性化信号SBE0Zを生成するサーチドライバ活性化信号生成回路、82はサーチドライバ活性化信号生成回路81が出力するサーチドライバ活性化信号SBE0Zをクロック信号CLKに同期して取り込むフリップフロップである。
83はマッチライン・センスアンプ部75が出力する検索結果信号MS0Z〜MS127Zを入力し、検索結果信号MS0Z〜MS127Zが全て“0”の場合(即ち、検索データDINがメモリセルアレイ61に記憶されているデータの全てと不一致の場合)であるか、あるいは、検索結果信号MS0Z〜MS127Zのいずれかが“1”の場合(即ち、検索データDINがメモリセルアレイ61に記憶されているデータのいずれかと一致した場合)であるかを判定して検索結果判定信号DET0Zを出力する検索結果判定回路である。
検索結果判定回路83は、検索結果信号MS0Z〜MS127Zが全て“0”の場合(即ち、検索データDINがメモリセルアレイ61に記憶されているデータの全てと不一致の場合)には、検索結果判定信号DET0Z=“1”とし、検索結果信号MS0Z〜MS127Zのいずれかが“1”の場合(即ち、検索データDINがメモリセルアレイ61に記憶されているデータのいずれかと一致した場合)には、検索結果判定信号DET0Z=“0”とする。
84は検索結果判定回路83が出力する検索結果判定信号DET0Zをクロック信号CLKに同期して取り込むフリップフロップ、85はフリップフロップ82が出力するサーチドライバ活性化信号SBE0Zとフリップフロップ84が出力する検索結果判定信号DET0Zaとを入力して、サーチドライバ部69のサーチドライバに与えるサーチドライバ活性化信号SBE1Zを出力するサーチドライバ活性化信号バッファである。
サーチドライバ活性化信号バッファ85は、検索結果判定信号DET0Zaの論理値=“1”のときは、フリップフロップ82から与えられたサーチドライバ活性化信号SBE0Zをサーチドライバ活性化信号SBE1Zとして出力し、検索結果判定信号DET0Zaの論理値=“0”のときは、サーチドライバ活性化信号SBE1Zの論理値=“0”とする。
86はサーチドライバ活性化信号バッファ85が出力するサーチドライバ活性化信号SBE1Zをクロックに同期して取り込むフリップフロップ、87はマッチライン・センスアンプ部76が出力する検索結果信号MS128Z〜MS255Zを入力し、検索結果信号MS128Z〜MS255Zが全て“0”の場合(即ち、検索データDINがメモリセルアレイ62に記憶されているデータの全てと不一致の場合)であるか、あるいは、検索結果信号MS128Z〜MS255Zのいずれかが“1”の場合(即ち、検索データDINがメモリセルアレイ62に記憶されているデータのいずれかと一致した場合)であるかを判定して検索結果判定信号DET1Zを出力する検索結果判定回路である。
検索結果判定回路87は、検索結果信号MS128Z〜MS255Zが全て“0”の場合(即ち、検索データDINがメモリセルアレイ62に記憶されているデータの全てと不一致の場合)には、検索結果判定信号DET1Z=“1”とし、検索結果信号MS128Z〜MS255Zのいずれかが“1”の場合(即ち、検索データDINがメモリセルアレイ62に記憶されているデータのいずれかと一致した場合)には、検索結果判定信号DET1Z=“0”とする。
88は検索結果判定回路87が出力する検索結果判定信号DET1Zをクロック信号CLKに同期して取り込むフリップフロップ、89はフリップフロップ86が出力するサーチドライバ活性化信号SBE1Zとフリップフロップ88が出力する検索結果判定信号DET1Zaとを入力して、サーチドライバ部70のサーチドライバに与えるサーチドライバ活性化信号SBE2Zを出力するサーチドライバ活性化信号バッファである。
サーチドライバ活性化信号バッファ89は、検索結果判定信号DET1Zaの論理値=“1”のときは、フリップフロップ86から与えられたサーチドライバ活性化信号SBE1Zをサーチドライバ活性化信号SBE2Zとして出力し、検索結果判定信号DET1Zaの論理値=“0”のときは、サーチドライバ活性化信号SBE2Zの論理値=“0”とする。
90はサーチドライバ活性化信号バッファ89が出力するサーチドライバ活性化信号SBE2Zをクロックに同期して取り込むフリップフロップ、91はマッチライン・センスアンプ部77が出力する検索結果信号MS256Z〜MS383Zを入力し、検索結果信号MS256Z〜MS383Zが全て“0”の場合(即ち、検索データDINがメモリセルアレイ63に記憶されているデータの全てと不一致の場合)であるか、あるいは、検索結果信号MS256Z〜MS383Zのいずれかが“1”の場合(即ち、検索データDINがメモリセルアレイ63に記憶されているデータのいずれかと一致した場合)であるかを判定して検索結果判定信号DET2Zを出力する検索結果判定回路である。
検索結果判定回路91は、検索結果信号MS256Z〜MS383Zが全て“0”の場合(即ち、検索データDINがメモリセルアレイ63に記憶されているデータの全てと不一致の場合)には、検索結果判定信号DET2Z=“1”とし、検索結果信号MS256Z〜MS383Zのいずれかが“1”の場合(即ち、検索データDINがメモリセルアレイ63に記憶されているデータのいずれかと一致した場合)には、検索結果判定信号DET2Z=“0”とする。
92は検索結果判定回路91が出力する検索結果判定信号DET2Zをクロック信号CLKに同期して取り込むフリップフロップ、93はフリップフロップ90が出力するサーチドライバ活性化信号SBE2Zとフリップフロップ92が出力する検索結果判定信号DET2Zaとを入力して、サーチドライバ部71のサーチドライバに与えるサーチドライバ活性化信号SBE3Zを出力するサーチドライバ活性化信号バッファである。
サーチドライバ活性化信号バッファ93は、検索結果判定信号DET2Zaの論理値=“1”のときは、フリップフロップ90から与えられるサーチドライバ活性化信号SBE2Zをサーチドライバ活性化信号SBE3Zとして出力し、検索結果判定信号DET2Zaの論理値=“0”のときは、サーチドライバ活性化信号SBE3Zの論理値=“0”とする。
図9は本発明の第2実施形態の一部分をより詳しく示す回路図であり、メモリセルアレイ61、62、ライトアンプ部66、センスアンプ部67、サーチドライバ部68、69及びフリップフロップ部72の部分をより詳細に示している。
メモリセルアレイ61において、96(0、0)は1行目の1ビット目のメモリセル、96(0、n−1)は1行目のnビット目のメモリセルであり、1行目の2ビット目〜n−1ビット目のメモリセル96(0、1)〜96(0、n−2)は図示を省略している。96(127、0)は128行目の1ビット目のメモリセル、96(127、n−1)は128行目のnビット目のメモリセルであり、128行目の2ビット目〜n−1ビット目のメモリセル96(127、1)〜96(127、n−2)は図示を省略している。また、2行目〜127行目のメモリセル96(1、0)〜96(1、n−2)、…、96(126、0)〜96(126、n−2)も図示を省略している。
メモリセルアレイ62において、96(128、0)は129行目の1ビット目のメモリセル、96(128、n−1)は129行目のnビット目のメモリセルであり、129行目の2ビット目〜n−1ビット目のメモリセル96(128、1)〜96(128、n−2)は図示を省略している。96(255、0)は256行目の1ビット目のメモリセル、96(255、n−1)は256行目のnビット目のメモリセルであり、256行目の2ビット目〜n−1ビット目のメモリセル96(255、1)〜96(255、n−2)は図示を省略している。また、130行目〜255行目のメモリセル96(129、0)〜96(129、n−2)、…、96(254、0)〜96(254、n−2)も図示を省略している。
WL0は1行目のワードライン、WL127は128行目のワードラインであり、2行目〜127行目のワードラインWL1〜WL126は図示を省略している。WL128は129行目のワードライン、WL255は256行目のワードラインであり、130行目〜255行目のワードラインWL129〜WL254は図示を省略している。
ML0は1行目のマッチライン、ML127は128行目のマッチラインであり、2行目〜127行目のマッチラインML1〜ML126は図示を省略している。ML128は129行目のマッチライン、ML255は256行目のマッチラインであり、130行目〜255行目のマッチラインML129〜ML254は図示を省略している。
ライトアンプ部66において、97(0)は1ビット目のビットラインBL(0)、XBL(0)に対応して設けられたライトアンプ、97(n−1)はnビット目のビットラインBL(n−1)、XBL(n−1)に対応して設けられたライトアンプであり、2ビット目〜n−1ビット目のビットラインBL(1)、XBL(1)〜BL(n−2)、XBL(n−2)に対応して設けられたライトアンプ97(1)〜97(n−2)は図示を省略している。
センスアンプ部67において、98(0)は1ビット目のビットラインBL(0)、XBL(0)に対応して設けられたセンスアンプ、98(n−1)はnビット目のビットラインBL(n−1)、XBL(n−1)に対応して設けられたセンスアンプであり、2ビット目〜n−1ビット目のビットラインBL(1)、XBL(1)〜BL(n−2)、XBL(n−2)に対応して設けられたセンスアンプ98(1)〜98(n−2)は図示を省略している。
サーチドライバ部68において、99(0)は1ビット目のサーチバスSB0(0)、XSB0(0)に対応して設けられたサーチドライバ、99(n−1)はnビット目のサーチバスSB0(n−1)、XSB0(n−1)に対応して設けられたサーチバスであり、2ビット目〜n−1ビット目のサーチバスSB0(1)、XSB0(1)〜SB0(n−2)、XSB0(n−2)に対応して設けられたサーチドライバ99(1)〜99(n−2)は図示を省略している。
サーチドライバ99(p)は、サーチドライバ活性化信号SBE0Z=“1”のときは活性化され、外部から与えられる検索データD(p)に対応して、サーチバスSB0(p)、XSB0(p)の一方の論理値=“1”、他方の論理値=“0”とし、サーチドライバ活性化信号SBE0Z=“0”のときは非活性とされ、サーチバスSB0(p)、XSB0(p)の論理値=“0”とする。
サーチドライバ部69において、100(0)は1ビット目のサーチバスSB1(0)、XSB1(0)に対応して設けられたサーチドライバ、100(n−1)はnビット目のサーチバスSB1(n−1)、XSB1(n−1)に対応して設けられたサーチドライバであり、2ビット目〜n−1ビット目のサーチバスSB1(1)、XSB1(1)〜SB1(n−2)、XSB1(n−2)に対応して設けられたサーチドライバ100(1)〜100(n−2)は図示を省略している。
サーチドライバ100(p)は、サーチドライバ活性化信号SBE1Z=“1”のときは活性化され、サーチバスSB1(p)、XSB1(p)及びフリップフロップ部72を介して与えられる検索データD(p)に対応して、サーチバスSB1(p)、XSB1(p)の一方の論理値=“1”、他方の論理値=“0”とし、サーチドライバ活性化信号SBE1Z=“0”のときは非活性とされ、サーチバスSB1(p)、XSB1(p)の論理値=“0”とする。
フリップフロップ部72において、101(0)はサーチバスSB0(0)、XSB0(0)に対応して設けられたフリップフロップであり、クロック信号CLKに同期してサーチバスSB0(0)、XSB0(0)の論理値を取り込み、サーチドライバ100(0)に転送するものである。101(n−1)はサーチバスSB0(n−1)、XSB0(n−1)に対応して設けられたフリップフロップであり、クロック信号CLKに同期してサーチバスSB0(n−1)、XSB0(n−1)の論理値を取り込み、サーチドライバ100(n−1)に転送するものである。サーチバスSB0(1)、XSB0(1)〜SB0(n−2)、XSB0(n−2)に対応して設けられているフリップフロップ101(1)〜101(n−2)は図示を省略している。
図10は本発明の第2実施形態の一部分をより詳しく示す回路図であり、メモリセルアレイ63、64、サーチドライバ部70、71及びフリップフロップ部73、74の部分をより詳細に示している。
メモリセルアレイ63において、96(256、0)は257行目の1ビット目のメモリセル、96(256、n−1)は257行目のnビット目のメモリセルであり、257行目の2ビット目〜n−1ビット目のメモリセル96(256、1)〜96(256、n−2)は図示を省略している。96(383、0)は384行目の1ビット目のメモリセル、96(383、n−1)は384行目のnビット目のメモリセルであり、384行目の2ビット目〜n−1ビット目のメモリセル96(383、1)〜96(383、n−2)は図示を省略している。また、258行目〜383行目のメモリセル96(257、0)〜96(257、n−2)、…、96(382、0)〜96(382、n−2)も図示を省略している。
メモリセルアレイ64において、96(384、0)は385行目の1ビット目のメモリセル、96(384、n−1)は385行目のnビット目のメモリセルであり、385行目の2ビット目〜n−1ビット目のメモリセル96(384、1)〜96(384、n−2)は図示を省略している。96(511、0)は512行目の1ビット目のメモリセル、96(511、n−1)は512行目のnビット目のメモリセルであり、512行目の2ビット目〜n−1ビット目のメモリセル96(511、1)〜96(511、n−2)は図示を省略している。また、386行目〜511行目のメモリセル96(385、0)〜96(385、n−2)、…、96(510、0)〜96(510、n−2)も図示を省略している。
WL256は257行目のワードライン、WL383は384行目のワードラインであり、258行目〜383行目のワードラインWL257〜WL382は図示を省略している。WL384は385行目のワードライン、WL511は512行目のワードラインであり、386行目〜511行目のワードラインWL385〜WL510は図示を省略している。
ML256は257行目のマッチライン、ML383は384行目のマッチラインであり、258行目〜383行目のマッチラインML257〜ML382は図示を省略している。ML384は385行目のマッチライン、ML511は512行目のマッチラインであり、386行目〜511行目のマッチラインML385〜ML510は図示を省略している。
サーチドライバ部70において、102(0)は1ビット目のサーチバスSB2(0)、XSB2(0)に対応して設けられたサーチドライバ、102(n−1)はnビット目のサーチバスSB2(n−1)、XSB2(n−1)に対応して設けられたサーチドライバであり、2ビット目〜n−1ビット目のサーチバスSB2(1)、XSB2(1)〜SB2(n−2)、XSB2(n−2)に対応して設けられたサーチドライバ102(2)〜102(n−2)は図示を省略している。
サーチドライバ102(p)は、サーチドライバ活性化信号SBE2Z=“1”のときは活性化され、サーチバスSB1(p)、XSB1(p)及びフリップフロップ部73を介して与えられる検索データD(p)に対応して、サーチバスSB2(p)、XSB2(p)の一方の論理値=“1”、他方の論理値=“0”とし、サーチドライバ活性化信号SBE2Z=“0”のときは非活性とされ、サーチバスSB2(p)、XSB2(p)の論理値=“0”とする。
サーチドライバ部71において、103(0)は1ビット目のサーチバスSB3(0)、XSB3(0)に対応して設けられたサーチドライバ、103(n−1)はnビット目のサーチバスSB3(n−1)、XSB3(n−1)に対応して設けられたサーチドライバであり、2ビット目〜n−1ビット目のサーチバスSB3(1)、XSB3(1)〜SB3(n−2)、XSB3(n−2)に対応して設けられたサーチドライバ103(2)〜103(n−2)は図示を省略している。
サーチドライバ103(p)は、サーチドライバ活性化信号SBE3Z=“1”のときは活性化され、サーチバスSB2(p)、XSB2(p)及びフリップフロップ部74を介して与えられる検索データD(p)に対応して、サーチバスSB3(p)、XSB3(p)の一方の論理値=“1”、他方の論理値=“0”とし、サーチドライバ活性化信号SBE3Z=“0”のときは非活性とされ、サーチバスSB3(p)、XSB3(p)の論理値=“0”とする。
フリップフロップ部73において、104(0)はサーチバスSB1(0)、XSB1(0)に対応して設けられたフリップフロップであり、クロック信号CLKに同期してサーチバスSB1(0)、XSB1(0)の論理値を取り込み、サーチドライバ102(0)に転送するものである。104(n−1)はサーチバスSB1(n−1)、XSB1(n−1)に対応して設けられたフリップフロップであり、クロック信号CLKに同期してサーチバスSB1(n−1)、XSB1(n−1)の論理値を取り込み、サーチドライバ102(n−1)に転送するものである。サーチバスSB1(1)、XSB1(1)〜SB1(n−2)、XSB1(n−2)に対応して設けられているフリップフロップ104(1)〜104(n−2)は図示を省略している。
フリップフロップ部74において、105(0)はサーチバスSB2(0)、XSB2(0)に対応して設けられたフリップフロップであり、クロック信号CLKに同期してサーチバスSB2(0)、XSB2(0)の論理値を取り込み、サーチドライバ103(0)に転送するものである。105(n−1)はサーチバスSB2(n−1)、XSB2(n−1)に対応して設けられたフリップフロップであり、クロック信号CLKに同期してサーチバスSB2(n−1)、XSB2(n−1)の論理値を取り込み、サーチドライバ103(n−1)に転送するものである。サーチバスSB2(1)、XSB2(1)〜SB2(n−2)、XSB2(n−2)に対応して設けられているフリップフロップ105(1)〜105(n−2)は図示を省略している。
図11は本発明の第2実施形態の一部分をより詳しく示す回路図であり、メモリセルアレイ61〜64、ワードデコーダ部65及びマッチライン・センスアンプ部75〜78の部分をより詳細に示している。
ワードデコーダ部65において、106(0)は1行目のワードラインWL0に対応して設けられたワードデコーダ、106(127)は128行目のワードラインWL127に対応して設けられたワードデコーダであり、2行目〜127行目のワードラインWL1〜WL126に対応して設けられたワードデコーダ106(1)〜106(126)は図示を省略している。106(128)は129行目のワードラインWL128に対応して設けられたワードデコーダ、106(255)は256行目のワードラインWL255に対応して設けられたワードデコーダであり、130行目〜255行目のワードラインWL129〜WL254に対応して設けられたワードデコーダ106(129)〜106(254)は図示を省略している。
106(256)は257行目のワードラインWL256に対応して設けられたワードデコーダ、106(383)は384行目のワードラインWL383に対応して設けられたワードデコーダであり、258行目〜383行目のワードラインWL257〜WL382に対応して設けられたワードデコーダ106(257)〜106(382)は図示を省略している。106(384)は385行目のワードラインWL384に対応して設けられたワードデコーダ、106(511)は512行目のワードラインWL511に対応して設けられたワードデコーダであり、386行目〜511行目のワードラインWL385〜WL510に対応して設けられたワードデコーダ106(385)〜106(510)は図示を省略している。
マッチライン・センスアンプ部75において、107(0)は1行目のマッチラインML0に対応して設けられたマッチライン・センスアンプ、107(127)は128行目のマッチラインML127に対応して設けられたマッチライン・センスアンプであり、2行目〜127行目のマッチラインML1〜ML126に対応して設けられたマッチライン・センスアンプ107(1)〜107(126)は図示を省略している。
マッチライン・センスアンプ部76において、107(128)は129行目のマッチラインML128に対応して設けられたマッチライン・センスアンプ、107(255)は256行目のマッチラインML255に対応して設けられたマッチライン・センスアンプであり、130行目〜255行目のマッチラインML129〜ML254に対応して設けられたマッチライン・センスアンプ107(129)〜107(254)は図示を省略している。
マッチライン・センスアンプ部77において、107(256)は257行目のマッチラインML256に対応して設けられたマッチライン・センスアンプ、107(383)は384行目のマッチラインML383に対応して設けられたマッチライン・センスアンプであり、258行目〜383行目のマッチラインML257〜ML382に対応して設けられたマッチライン・センスアンプ107(257)〜107(382)は図示を省略している。
マッチライン・センスアンプ部78において、107(384)は385行目のマッチラインML384に対応して設けられたマッチライン・センスアンプ、107(511)は512行目のマッチラインML511に対応して設けられたマッチライン・センスアンプであり、386行目〜511行目のマッチラインML385〜ML510に対応して設けられたマッチライン・センスアンプ107(385)〜107(510)は図示を省略している。
図12は本発明の第2実施形態の検索動作例を示すタイミング図であり、検索データDIN=D(0)〜D(n−1)がメモリセルアレイ61に記憶されているデータのいずれかと一致した場合を例にしている。
図12において、(A)は動作サイクルを決めるクロック信号CLK、(B)は検索コマンド信号XSER、(C)は検索コマンドデコード信号SERZ、(D)はサーチドライバ活性化信号SBE0Z、(E)はサーチバスSB0(p)、XSB0(p)の論理値、(F)はマッチラインML0〜ML127の論理値、(G)は検索結果信号MS0Z〜MS127Z、(H)は検索結果判定信号DET0Z、(I)はサーチドライバ活性化信号SBE1Z、(J)はサーチバスSB1(p)、XSB1(p)の論理値、(K)はマッチラインML128〜ML255の論理値、(L)は検索結果信号MS128Z〜MS255Z、(M)は検索結果判定信号DET1Z、(N)はサーチドライバ活性化信号SBE2Z、(O)はサーチバスSB2(p)、XSB2(p)の論理値、(P)はマッチラインML256〜ML383の論理値、(Q)は検索結果信号MS256Z〜MS383Z、(R)は検索結果判定信号DET2Z、(S)はサーチドライバ活性化信号SBE3Z、(T)はサーチバスSB3(p)、XSB3(p)の論理値、(U)はマッチラインML384〜ML511の論理値、(V)は検索結果信号MS384Z〜MS511Zを示している。
即ち、本発明の第2実施形態においては、検索前(スタンバイ時)には、検索コマンド信号XSER=“1”、検索コマンドデコード信号SERZ=“0”、サーチドライバ活性化信号SBE0Z=“0”、サーチバスSB0(p)、XSB0(p)〜SB3(p)、XSB3(p)の論理値=“0”、マッチラインML0〜ML511の論理値=“1”、検索結果信号MS0Z〜MS511Z=“1”、検索結果判定信号DET0Z〜DET2Z=“0”、サーチドライバ活性化信号SBE1Z〜SBE3Z=“0”とされる。
そして、検索を行う場合には、例えば、サイクルSwにおいて、検索コマンド信号XSER=“0”とされ、検索が指示されると共に、サーチドライバ99(0)〜99(n−1)に検索データD(0)〜D(n−1)が与えられる。この結果、コマンドデコーダ80は、検索コマンドデコード信号SERZ=“1”とし、これに応答して、サーチドライバ活性化信号生成回路81は、サーチドライバ活性化信号SBE0Z=“1”とすると共に、サーチドライバ99(p)は、検索データD(p)の値に対応してサーチバスSB0(p)、XSB0(p)の一方の論理値=“1”、他方の論理値=“0”とする。
ここで、検索データD(0)〜D(n−1)がメモリセルアレイ61に記憶されているデータのいずれかと一致すると、マッチラインML0〜ML127のうち、検索データD(0)〜D(n−1)と同一データを記憶するアドレスのマッチラインの論理値=“1”が維持される。この結果、マッチライン・センスアンプ107(0)〜107(127)は、検索結果信号MS0Z〜MS127Zのうち、検索データD(0)〜D(n−1)と同一データを記憶するアドレスの検索結果信号=“1”を維持し、検索結果判定回路83は、検索結果判定信号DET0Z=“0”を維持する。したがって、サーチドライバ活性化信号バッファ85は、サイクルSw、Sw+1においては、サーチドライバ活性化信号SBE1Z=“0”を維持し、サーチドライバ100(0)〜100(n−1)を活性化しない。
また、この結果、サイクルSw、Sw+1においては、マッチラインML128〜ML255の論理値=“1”が維持されるので、マッチライン・センスアンプ107(128)〜107(255)は、検索結果信号MS128Z〜MS255Z=“1”を維持し、検索結果判定回路87は、検索結果判定信号DET1Z=“0”を維持する。したがって、サーチドライバ活性化信号バッファ89は、サイクルSw〜Sw+2においては、サーチドライバ活性化信号SBE2Z=“0”を維持し、サーチドライバ102(0)〜102(n−1)を活性化しない。
また、この結果、サイクルSw〜Sw+2においては、マッチラインML256〜ML383の論理値=“1”が維持されるので、マッチライン・センスアンプ107(256)〜107(383)は、検索結果信号MS256Z〜MS383Z=“1”を維持し、検索結果判定回路91は、検索結果判定信号DET2Z=“0”を維持する。したがって、サーチドライバ活性化信号バッファ93は、サイクルSw〜Sw+3においては、サーチドライバ活性化信号SBE3Z=“0”を維持し、サーチドライバ103(0)〜103(n−1)を活性化しない。
これに対して、図示は省略するが、検索データD(0)〜D(n−1)が、メモリセルアレイ61に記憶されているデータの全てと不一致で、メモリセルアレイ62に記憶されているデータと一致する場合には、マッチラインML0〜ML127の論理値=“0”となる。この結果、マッチライン・センスアンプ107(0)〜107(127)は、検索結果信号MS0Z〜MS127Z=“0”とし、検索結果判定回路83は、検索結果判定信号DET0Z=“1”とする。
したがって、サーチドライバ活性化信号バッファ85は、サイクルSw+1においては、サーチドライバ活性化信号SBE1Z=“1”とし、サーチドライバ99(p)を活性化する。また、サーチバスSB1(p)、XSB1(p)の論理値がフリップフロップ101(p)を介してサーチドライバ100(p)に供給される。この結果、サーチドライバ100(p)は、検索データD(p)の値に対応してサーチバスSB1(p)、XSB1(p)の一方の論理値=“1”、他方の論理値=“0”とする。
ここで、検索データD(0)〜D(n−1)がメモリセルアレイ62に記憶されているデータのいずれかと一致すると、マッチラインML128〜ML255のうち、検索データD(0)〜D(n−1)と同一データを記憶するアドレスのマッチラインの論理値=“1”が維持される。この結果、マッチライン・センスアンプ107(128)〜107(255)は、検索結果信号MS128Z〜MS255Zのうち、検索データD(0)〜D(n−1)と同一データを記憶するアドレスの検索結果信号=“1”を維持し、検索結果判定回路87は、検索結果判定信号DET1Z=“0”を維持する。したがって、サーチドライバ活性化信号バッファ89は、サイクルSw〜Sw+2においては、サーチドライバ活性化信号SBE2Z=“0”を維持し、サーチドライバ102(0)〜102(n−1)を活性化しない。
また、この結果、サイクルSw〜Sw+2においては、マッチラインML256〜ML383の論理値=“1”が維持される。この結果、マッチライン・センスアンプ107(256)〜107(383)は、検索結果信号MS256Z〜MS383Z=“1”を維持し、検索結果判定回路87は、検索結果判定信号DET2Z=“0”を維持する。したがって、サーチドライバ活性化信号バッファ93は、サイクルSw〜Sw+3においては、サーチドライバ活性化信号SBE3Z=“0”を維持し、サーチドライバ103(0)〜103(n−1)を活性化しない。
また、図示は省略するが、検索データD(0)〜D(n−1)がメモリセルアレイ61、62に記憶されているデータの全てと不一致で、メモリセルアレイ63に記憶されているデータと一致する場合には、マッチラインML0〜ML127の論理値=“0”となる。この結果、マッチライン・センスアンプ107(0)〜107(127)は、検索結果信号MS0Z〜MS127Z=“0”となり、検索結果判定回路83は、検索結果判定信号DET0Z=“1”とする。
したがって、サーチドライバ活性化信号バッファ85は、サイクルSw+1においては、サーチドライバ活性化信号SBE1Z=“1”とし、サーチドライバ100(p)を活性化する。また、サーチバスSB0(p)、XSB0(p)の論理値がフリップフロップ101(p)を介してサーチドライバ100(p)に供給される。この結果、サーチドライバ100(p)は、検索データD(p)の値に対応してサーチバスSB1(p)、XSB1(p)の一方の論理値=“1”、他方の論理値=“0”とする。
しかし、この場合には、マッチラインML128〜ML255の論理値=“0”となるので、マッチライン・センスアンプ107(128)〜107(255)は、検索結果信号MS128Z〜MS255Z=“0”とし、検索結果判定回路87は、検索結果判定信号DET1Z=“1”とする。
したがって、サーチドライバ活性化信号バッファ89は、サイクルSw+2においては、サーチドライバ活性化信号SBE2Z=“1”とし、サーチドライバ102(p)を活性化する。また、サーチバスSB1(p)、XSB1(p)の論理値がフリップフロップ104(p)を介してサーチドライバ102(p)に供給される。この結果、サーチドライバ102(p)は、検索データD(p)の値に対応してサーチバスSB2(p)、XSB2(p)の一方の論理値=“1”、他方の論理値=“0”とする。
ここで、検索データD(0)〜D(n−1)がメモリセルアレイ63に記憶されているデータのいずれかと一致すると、マッチラインML256〜ML383のうち、検索データD(0)〜D(n−1)と同一データを記憶するアドレスのマッチラインの論理値=“1”が維持される。この結果、マッチライン・センスアンプ107(256)〜107(383)は、検索結果信号MS256Z〜MS383Zのうち、検索データD(0)〜D(n−1)と同一データを記憶するアドレスの検索結果信号=“1”を維持し、検索結果判定回路91は、検索結果判定信号DET2Z=“0”を維持する。したがって、サーチドライバ活性化信号バッファ93は、サイクルSw〜Sw+3においては、サーチドライバ活性化信号SBE3Z=“0”を維持し、サーチドライバ103(0)〜103(n−1)を活性化しない。
また、図示は省略するが、検索データD(0)〜D(n−1)がメモリセルアレイ61〜63に記憶されているデータの全てと不一致で、メモリセルアレイ64に記憶されているデータと一致する場合には、まず、マッチラインML0〜ML127の論理値=“0”となる。この結果、マッチライン・センスアンプ107(0)〜107(127)が出力する検索結果信号MS0Z〜MS127Z=“0”となり、検索結果判定回路83が出力する検索結果判定信号DET0Z=“1”となる。
したがって、サーチドライバ活性化信号バッファ85は、サイクルSw+1においては、サーチドライバ活性化信号SBE1Z=“1”とし、サーチドライバ100(p)を活性化する。また、サーチバスSB0(p)、XSB0(p)の論理値がフリップフロップ101(p)を介してサーチドライバ100(p)に供給される。この結果、サーチドライバ100(p)は、検索データD(p)の値に対応してサーチバスSB1(p)、XSB1(p)の一方の論理値=“1”、他方の論理値=“0”とする。
しかし、この場合には、マッチラインML128〜ML255の論理値=“0”となるので、マッチライン・センスアンプ107(128)〜107(255)は、検索結果信号MS128Z〜MS255Z=“0”とし、検索結果判定回路87は、検索結果判定信号DET1Z=“1”とする。
したがって、サーチドライバ活性化信号バッファ89は、サイクルSw+2においては、サーチドライバ活性化信号SBE2Z=“1”とし、サーチドライバ102(p)を活性化する。また、サーチバスSB1(p)、XSB1(p)の論理値がフリップフロップ104(p)を介してサーチドライバ102(p)に供給される。この結果、サーチドライバ102(p)は、検索データD(p)の値に対応してサーチバスSB2(p)、XSB2(p)の一方の論理値=“1”、他方の論理値=“0”とする。
しかし、この場合には、マッチラインML256〜ML383の論理値=“0”となるので、マッチライン・センスアンプ107(256)〜107(383)は、検索結果信号MS256Z〜MS383Z=“0”とし、検索結果判定回路91が出力する検索結果判定信号DET2Z=“1”とする。
したがって、サーチドライバ活性化信号バッファ93は、サイクルSw+3においては、サーチドライバ活性化信号SBE3Z=“1”とし、サーチドライバ103(p)を活性化する。また、サーチバスSB2(p)、XSB2(p)の論理値がフリップフロップ105(p)を介してサーチドライバ103(p)に供給される。この結果、サーチドライバ103(p)は、検索データD(p)の値に対応してサーチバスSB3(p)、XSB3(p)の一方の論理値=“1”、他方の論理値=“0”とする。
ここで、エンコーダ79は、検索データDINが、メモリセルアレイ61に記憶されているデータのいずれかと一致した場合においても、メモリセルアレイ62に記憶されているデータのいずれかと一致した場合においても、メモリセルアレイ63に記憶されているデータのいずれかと一致した場合においても、メモリセルアレイ64に記憶されているデータのいずれかと一致した場合においても、検索結果信号MS0Z〜MS511Zを入力し、検索データDINと同一のデータを記憶するアドレスを示すアドレス信号EAを出力する。
なお、本発明の第2実施形態においては、フリップフロップ部72〜74と、検索結果判定回路83、87、91と、サーチバス活性化信号バッファ85、89、93とで、メモリセルアレイ62〜64に対する検索動作を制御する制御部が構成されている。
以上のように、本発明の第2実施形態によれば、検索コマンド信号XSERが“0”とされると共に、検索データDINが与えられると、メモリセルアレイ61を対象として検索が実行され、検索データDINがメモリセルアレイ61に記憶されているデータのいずれかと一致した場合には、メモリセルアレイ62〜64を対象とした検索は実行されない。
また、メモリセルアレイ61を対象として検索が実行された場合において、検索データDINがメモリセルアレイ61に記憶されているデータの全てと不一致の場合には、メモリセルアレイ62を対象とした検索が実行され、検索データDINがメモリセルアレイ62に記憶されているデータのいずれかと一致した場合には、メモリセルアレイ63、64を対象とした検索は実行されない。
また、メモリセルアレイ61、62を対象として検索が実行された場合において、検索データDINがメモリセルアレイ61、62に記憶されているデータの全てと不一致の場合には、メモリセルアレイ63を対象とした検索が実行され、検索データDINがメモリセルアレイ63に記憶されているデータのいずれかと一致した場合には、メモリセルアレイ64を対象とした検索は実行されない。
したがって、検索データDINがメモリセルアレイ61に記憶されているデータのいずれかと一致し、メモリセルアレイ62〜64を対象とした検索を実行しないで済んだ場合には、スタンバイ状態に戻る際に、メモリセルアレイ62〜64に設けられているマッチラインML128〜ML511については充電の必要がなく、また、検索データDINがメモリセルアレイ62に記憶されているデータのいずれかと一致し、メモリセルアレイ63、64を対象とした検索を実行しないで済んだ場合には、スタンバイ状態に戻る際に、メモリセルアレイ63、64に設けられているマッチラインML256〜ML511については充電の必要がなく、また、検索データDINがメモリセルアレイ63に記憶されているデータのいずれかと一致し、メモリセルアレイ64を対象とした検索を実行しないで済んだ場合には、スタンバイ状態に戻る際に、メモリセルアレイ64に設けられているマッチラインML384〜ML511については充電の必要がないので、検索後、スタンバイ状態に戻る際に充電を必要とするマッチラインの数を減らし、消費電流の低減化を図ることができる。
(第3実施形態)
図13は本発明の第3実施形態の一部分を示す回路図である。本発明の第3実施形態は、本発明の第2実施形態が備えるエンコーダ79の代わりに、エンコーダ110〜120とフリップフロップ118〜120とを設けると共に、その他については、本発明の第2実施形態が備える回路部と同一の回路部を備えている。
エンコーダ110は、マッチライン・センスアンプ107(0)〜107(127)が出力する検索結果信号MS0Z〜MS127Zを入力してエンコードし、7ビットのアドレス信号EAA0を出力すると共に、このアドレス信号EAA0が有効であるか否かを示す1ビットの有効/無効信号C0を出力するものであり、また、検索データDINが複数番地の記憶データと一致した場合、これら複数番地のうち、最小番地を示すアドレス信号EAA0を出力するものである。
ここで、検索結果信号MS0Z〜MS127Zのいずれかが“1”である場合(即ち、検索データDINがメモリセルアレイ61に記憶されているデータのいずれかと一致した場合)には、エンコーダ110は、検索データDINと同一データを記憶する番地のメモリセルアレイ61内での番地を示すアドレス信号EAA0を出力すると共に、有効/無効信号C0=“1”とし、このアドレス信号EAA0が有効であることを示す。これに対して、検索結果信号MS0Z〜MS127Zの全てが“0”である場合(即ち、検索データDINがメモリセルアレイ61に記憶されているデータの全てと不一致の場合)には、有効/無効信号C0=“0”とし、アドレス信号EAA0が無効であることを示す。
エンコーダ111は、マッチライン・センスアンプ107(128)〜107(255)が出力する検索結果信号MS128Z〜MS255Zを入力してエンコードし、7ビットのアドレス信号EAA1を出力すると共に、このアドレス信号EAA1が有効であるか否かを示す1ビットの有効/無効信号C1を出力するものであり、また、検索データDINが複数番地の記憶データと一致した場合、これら複数番地のうち、最小番地を示すアドレス信号EAA1を出力するものである。
ここで、検索結果信号MS128Z〜MS255Zのいずれかが“1”である場合(即ち、検索データDINがメモリセルアレイ62に記憶されているデータのいずれかと一致した場合)には、エンコーダ111は、検索データDINと同一データを記憶している番地のメモリセルアレイ62内での番地を示すアドレス信号EAA1を出力すると共に、有効/無効信号C1=“1”とし、このアドレス信号EAA1が有効であることを示す。これに対して、検索結果信号MS128Z〜MS255Zの全てが“0”である場合(即ち、検索データDINがメモリセルアレイ62に記憶されているデータの全てと不一致の場合)には、有効/無効信号C1=“0”とし、アドレス信号EAA1が無効であることを示す。
エンコーダ112は、マッチライン・センスアンプ107(256)〜107(383)が出力する検索結果信号MS256Z〜MS383Zを入力してエンコードし、7ビットのアドレス信号EAA2を出力すると共に、このアドレス信号EAA2が有効であるか否かを示す1ビットの有効/無効信号C2を出力するものであり、また、検索データDINが複数番地の記憶データと一致した場合、これら複数番地のうち、最小番地を示すアドレス信号EAA2を出力するものである。
ここで、検索結果信号MS256Z〜MS383Zのいずれかが“1”である場合(即ち、検索データDINがメモリセルアレイ63に記憶されているデータのいずれかと一致した場合)には、エンコーダ112は、検索データDINと同一データを記憶している番地のメモリセルアレイ63内での番地を示すアドレス信号EAA2を出力すると共に、有効/無効信号C2=“1”とし、このアドレス信号EAA2が有効であることを示す。これに対して、検索結果信号MS256Z〜MS383Zの全てが“0”である場合(即ち、検索データDINがメモリセルアレイ63に記憶されているデータの全てと不一致の場合)には、有効/無効信号C2=“0”とし、アドレス信号EAA2が無効であることを示す。
エンコーダ113は、マッチライン・センスアンプ107(384)〜107(511)が出力する検索結果信号MS384Z〜MS511Zを入力してエンコードし、7ビットのアドレス信号EAA3を出力すると共に、アドレス信号EAA3が有効であるか否かを示す1ビットの有効/無効信号C3を出力するものであり、また、検索データDINが複数番地の記憶データと一致した場合、これら複数番地のうち、最小番地を示すアドレス信号EAA3を出力するものである。
ここで、検索結果信号MS384Z〜MS511Zのいずれかが“1”である場合(即ち、検索データDINがメモリセルアレイ64に記憶されているデータのいずれかと一致した場合)には、エンコーダ113は、検索データDINと同一データを記憶している番地のメモリセルアレイ64内での番地を示すアドレス信号EAA3を出力すると共に、有効/無効信号C3=“1”とし、このアドレス信号EAA3が有効であることを示す。これに対して、検索結果信号MS384Z〜MS511Zの全てが“0”である場合(即ち、検索データDINがメモリセルアレイ64に記憶されているデータの全てと不一致の場合)には、有効/無効信号C3=“0”とし、アドレス信号EAA3が無効であることを示す。
なお、q=0、1、…、127とすると、メモリセルアレイ61内のメモリセル96(q、0)〜96(q、n−1)の部分のメモリセルアレイ61内での番地はq番地であり、メモリセルアレイ62内のメモリセル96(q+128、0)〜96(q+128、n−1)の部分のメモリセルアレイ62内での番地はq番地であり、メモリセルアレイ63内のメモリセル96(q+256、0)〜96(q+256、n−1)の部分のメモリセルアレイ63内での番地はq番地であり、メモリセルアレイ64内のメモリセル96(q+384、0)〜96(q+384、n−1)の部分のメモリセルアレイ64内での番地はq番地である。
エンコーダ114は、エンコーダ110が出力するアドレス信号EAA0と有効/無効信号C0とを入力し、アドレス信号EAA0に9ビット目及び8ビット目を設定し、これら9ビット目及び8ビット目に“00”を付加して9ビットのアドレス信号EAB0を出力すると共に、このアドレス信号EAB0が有効であるか否かを示す1ビットの有効/無効信号CB0を出力するものである。エンコーダ114は、有効/無効信号C0=“1”の場合には、有効/無効信号CB0=“1”とし、アドレス信号EAB0が有効であることを示し、有効/無効信号C0=“0”の場合には、有効/無効信号CB0=“0”とし、アドレス信号EAB0が無効であることを示す。
このように、エンコーダ114は、検索データDINがメモリセルアレイ61に記憶されているデータのいずれかと一致した場合には、検索データDINと同一データを記憶するメモリセル部分の、メモリセルアレイ61〜64を1つのメモリセルアレイと見たときの番地(本発明の第3実施形態内での番地)を示すアドレス信号EAB0を出力する。また、フリップフロップ118は、エンコーダ114が出力するアドレス信号EAB0と有効/無効信号CB0とをクロック信号CLKに同期して取り込んでエンコーダ115に転送するものである。
エンコーダ115は、フリップフロップ118が出力するアドレス信号EAB0及び有効/無効信号CB0と、エンコーダ111が出力するアドレス信号EAA1及び有効/無効信号C1とを入力し、9ビットのアドレス信号EAB1を出力すると共に、このアドレス信号EAB1が有効であるか否かを示す1ビットの有効/無効信号CB1を出力するものである。
エンコーダ115は、有効/無効信号CB0=“1”、有効/無効信号C1=“0”の場合には、アドレス信号EAB0と同一値のアドレス信号EAB1を出力すると共に、有効/無効信号CB1=“1”とし、このアドレス信号EAB1が有効であることを示す。これに対して、有効/無効信号CB0=“0”、有効/無効信号C1=“1”の場合には、エンコーダ115は、アドレス信号EAA1に9ビット目及び8ビット目を設定し、これら9ビット目及び8ビット目に“01”を付加してなるアドレス信号EAB1を出力すると共に、有効/無効信号CB1=“1”とし、このアドレス信号EAB1が有効であることを示す。また、有効/無効信号CB0=“0”、有効/無効信号C1=“0”の場合には、エンコーダ115は、有効/無効信号CB1=“0”とし、アドレス信号EAB1が無効であることを示す。
このように、エンコーダ115は、検索データDINがメモリセルアレイ62に記憶されているデータのいずれかと一致した場合には、検索データDINと同一データを記憶するメモリセル部分の、メモリセルアレイ61〜64を1つのメモリセルアレイと見たときの番地(本発明の第3実施形態内での番地)を示すアドレス信号EAB1を出力する。また、フリップフロップ119は、エンコーダ115が出力するアドレス信号EAB1と有効/無効信号CB1とをクロック信号CLKに同期して取り込んでエンコーダ116に転送するものである。
エンコーダ116は、フリップフロップ119が出力するアドレス信号EAB1及び有効/無効信号CB1と、エンコーダ112が出力するアドレス信号EAA2及び有効/無効信号C2とを入力し、9ビットのアドレス信号EAB2を出力すると共に、このアドレス信号EAB2が有効であるか否かを示す1ビットの有効/無効信号CB2を出力するものである。
エンコーダ116は、有効/無効信号CB1=“1”、有効/無効信号C2=“0”の場合には、アドレス信号EAB1と同一値のアドレス信号EAB2を出力すると共に、有効/無効信号CB2=“1”とし、このアドレス信号EAB2が有効であることを示す。これに対して、有効/無効信号CB1=“0”、有効/無効信号C2=“1”の場合には、エンコーダ116は、アドレス信号EAA2に9ビット目及び8ビット目を設定し、これら9ビット目及び8ビット目に“10”を付加してなるアドレス信号EAB2を出力すると共に、有効/無効信号CB2=“1”とし、このアドレス信号EAB2が有効であることを示す。また、有効/無効信号CB1=“0”、有効/無効信号C2=“0”の場合には、エンコーダ116は、有効/無効信号CB2=“0”とし、アドレス信号EAB2が無効であることを示す。
このように、エンコーダ116は、検索データDINがメモリセルアレイ63に記憶されているデータのいずれかと一致した場合には、検索データDINと同一データを記憶するメモリセル部分の、メモリセルアレイ61〜64を1つのメモリセルアレイと見たときの番地(本発明の第3実施形態内での番地)を示すアドレス信号EAB2を出力する。また、フリップフロップ120は、エンコーダ116が出力するアドレス信号EAB2と有効/無効信号CB2とをクロック信号CLKに同期して取り込んでエンコーダ117に転送するものである。
エンコーダ117は、フリップフロップ120が出力するアドレス信号EAB2及び有効/無効信号CB2と、エンコーダ113が出力するアドレス信号EAA3及び有効/無効信号C3とを入力し、9ビットのアドレス信号EAを出力すると共に、このアドレス信号EAが有効であるか否かを示す有効/無効信号CB3を出力ものである。
エンコーダ117は、有効/無効信号CB2=“1”、有効/無効信号C3=“0”の場合には、アドレス信号EAB2と同一値のアドレス信号EAを出力すると共に、有効/無効信号CB3=“1”とし、このアドレス信号EAが有効であることを示す。これに対して、有効/無効信号CB2=“0”、有効/無効信号C3=“1”の場合には、エンコーダ117は、アドレス信号EAA3に9ビット目及び8ビット目を設定し、これら9ビット目及び8ビット目に“11”を付加してなるアドレス信号EAを出力すると共に、有効/無効信号CB3=“1”とし、このアドレス信号EAが有効であることを示す。また、有効/無効信号CB2=“0”、有効/無効信号C3=“0”の場合には、エンコーダ117は、有効/無効信号CB3=“0”とし、アドレス信号EAが無効であることを示す。
このように、エンコーダ117は、検索データDINがメモリセルアレイ64に記憶されているデータのいずれかと一致した場合には、検索データDINと同一データを記憶するメモリセル部分の、メモリセルアレイ61〜64を1つのメモリセルアレイと見たときの番地(本発明の第3実施形態内での番地)を示すアドレス信号EAを出力する。
また、本発明の第3実施形態においては、サーチドライバ99(p)は、サーチドライバ活性化信号SBE0Z=“1”、かつ、クロック信号CLK=“1”のときに活性化され、検索データD(p)の値に対応して、サーチバスSB0(p)、XSB0(p)の一方の論理値=“0”、他方の論理値=“1”とし、サーチドライバ活性化信号SBE0Z=“0”又はクロック信号CLK=“0”のときは非活性状態とされ、サーチバスSB0(p)、XSB0(p)の論理値=“0”とする。
また、サーチドライバ100(p)は、サーチドライバ活性化信号SBE1Z=“1”、かつ、クロック信号CLK=“1”のときに活性化され、検索データD(p)の値に対応して、サーチバスSB1(p)、XSB1(p)の一方の論理値=“0”、他方の論理値=“1”とし、サーチドライバ活性化信号SBE1Z=“0”又はクロック信号CLK=“0”のときは非活性状態とされ、サーチバスSB1(p)、XSB1(p)の論理値=“0”とする。
また、サーチドライバ102(p)は、サーチドライバ活性化信号SBE2Z=“1”、かつ、クロック信号CLK=“1”のときに活性化され、検索データD(p)の値に対応して、サーチバスSB2(p)、XSB2(p)の一方の論理値=“0”、他方の論理値=“1”とし、サーチドライバ活性化信号SBE2Z=“0”又はクロック信号CLK=“0”のときは非活性状態とされ、サーチバスSB2(p)、XSB2(p)の論理値=“0”とする。
また、サーチドライバ103(p)は、サーチドライバ活性化信号SBE3Z=“1”、かつ、クロック信号CLK=“1”のときに活性化され、検索データD(p)の値に対応して、サーチバスSB3(p)、XSB3(p)の一方の論理値=“0”、他方の論理値=“1”とし、サーチドライバ活性化信号SBE3Z=“0”又はクロック信号CLK=“0”のときは非活性状態とされ、サーチバスSB3(p)、XSB3(p)の論理値=“0”とする。
また、マッチラインML0〜ML511は、レベル検出時においては、クロック信号CLK=“0”のときにプリチャージされる。その他については、本発明の第2実施形態と同様に構成されている。
図14及び図15は本発明の第3実施形態の検索動作例を示すタイミング図であり、検索データDIN1〜DIN6が連続して与えられ、検索データDIN1がメモリセルアレイ61に記憶されているデータのいずれかと一致し、検索データDIN2がメモリセルアレイ62に記憶されているデータのいずれかと一致し、検索データDIN3がメモリセルアレイ63に記憶されているデータのいずれかと一致し、検索データDIN4がメモリセルアレイ64に記憶されているデータのいずれかと一致し、検索データDIN5がメモリセルアレイ61〜64に記憶されているデータの全てと不一致であり、検索データDIN6がメモリセルアレイ61に記憶されているデータのいずれかと一致した場合を例にしている。
図14において、(A)は動作サイクルを決めるクロック信号CLK、(B)は検索データDIN1〜DIN6、(C)は検索コマンド信号XSER、(D)はサーチドライバ活性化信号SBE0Z、(E)はサーチバスSB0(p)、XSB0(p)の論理値、(F)はマッチラインML0〜ML127の論理値、(G)は検索結果信号MS0Z〜MS127Z、(H)はフリップフロップ84が出力する検索結果判定信号DET0Za、(I)はサーチドライバ活性化信号SBE1Z、(J)はサーチバスSB1(p)、XSB1(p)の論理値、(K)はマッチラインML128〜ML255の論理値、(L)は検索結果信号MS128Z〜MS255Z、(M)はフリップフロップ88が出力する検索結果判定信号DET1Za、(N)はサーチドライバ活性化信号SBE2Z、(O)はサーチバスSB2(p)、XSB2(p)の論理値、(P)はマッチラインML256〜ML383の論理値、(Q)は検索結果信号MS256Z〜MS383Z、(R)はフリップフロップ92が出力する検索結果判定信号DET2Za、(S)はサーチドライバ活性化信号SBE3Z、(T)はサーチバスSB3(p)、XSB3(p)の論理値、(U)はマッチラインML384〜ML511の論理値、(V)は検索結果信号MS384Z〜MS511Zを示している。
図15において、(A)はクロック信号CLK、(B)は検索データDIN1〜DIN6、(C)はエンコーダ110が出力するアドレス信号EAA0、(D)はエンコーダ114が出力するアドレス信号EAB0、(E)はエンコーダ111が出力するアドレス信号EAA1、(F)はエンコーダ115が出力するアドレス信号EAB1、(G)はエンコーダ112が出力するアドレス信号EAA2、(H)はエンコーダ116が出力するアドレス信号EAB2、(I)はエンコーダ113が出力するアドレス信号EAA3、(J)はエンコーダ117が出力するアドレス信号EAを示している。
また、A1は検索データDIN1と同一データを記憶しているメモリセルアレイ61のメモリセル部分のメモリセルアレイ61内での番地(0〜127番地のいずれか)であり、アドレス信号EAA0が示すものである。A1CはA1番地をメモリセルアレイ61〜64を1つのメモリセルアレイと見たときの番地(本発明の第3実施形態内での番地=A1=0〜127番地のいずれか)であり、アドレス信号EAB0、EAB1、EAB2、EAが示すものである。
A2は検索データDIN2と同一データを記憶しているメモリセルアレイ62内のメモリセル部分のメモリセルアレイ62内での番地(0〜127番地のいずれか)であり、アドレス信号EAA1が示すものである。A2CはA2番地をメモリセルアレイ61〜64を1つのメモリセルアレイと見たときの番地(本発明の第3実施形態内での番地=A2+128=128〜255番地のいずれか)であり、アドレス信号EAB1、EAB2、EAが示すものである。
A3は検索データDIN3と同一データを記憶しているメモリセルアレイ63内のメモリセル部分のメモリセルアレイ63内での番地(0〜127番地のいずれか)であり、アドレス信号EAA2が示すものである。A3CはA3番地をメモリセルアレイ61〜64を1つのメモリセルアレイと見たときの番地(本発明の第3実施形態内での番地=A3+256=256〜383番地のいずれか)であり、アドレス信号EAB2、EAが示すものである。
A4は検索データDIN4と同一データを記憶しているメモリセルアレイ64内のメモリセル部分のメモリセルアレイ64内での番地(0〜127番地のいずれか)であり、アドレス信号EAA3が示すものである。A4CはA4番地をメモリセルアレイ61〜64を1つのメモリセルアレイと見たときの番地(本発明の第3実施形態内での番地=A4+384=384〜511番地のいずれか)であり、アドレス信号EAが示すものである。
A6は検索データDIN6と同一データを記憶しているメモリセルアレイ61内のメモリセル部分のメモリセルアレイ64内での番地(0〜127番地のいずれか)であり、アドレス信号EAA0が示すものである。A6CはA6番地の、メモリセルアレイ61〜64を1つのメモリセルアレイと見たときの番地(本発明の第3実施形態内での番地=A6=0〜127番地のいずれか)であり、アドレス信号EAB0、EAB1、EAB2、EAが示すものである。
即ち、本発明の第3実施形態においては、例えば、サイクルSwの後半時に検索コマンド信号XSERが“0”とされると共に、サイクルSwの後半時及びサイクルSw+1の前半時に検索データDIN1が入力されると、サイクルSw+1の前半時に、サーチドライバ99(0)〜99(n−1)は活性化され、メモリセルアレイ61のサーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)を駆動する。
ここで、検索データDIN1は、メモリセルアレイ61に記憶されているデータのいずれかと一致するので、マッチラインML0〜ML127のいずれかの論理値=“1”、検索結果信号MS0Z〜MS127Zのいずれかの論理値=“1”が維持され、サイクルSw+1、Sw+2においては、検索結果判定信号DET0Za=“0”、サーチドライバ活性化信号SBE1Z=“0”が維持され、サーチドライバ100(0)〜100(n−1)は非活性とされる。
この結果、サイクルSw+1、Sw+2においては、マッチラインML128〜ML255の論理値=“1”、検索結果信号MS128Z〜MS255Zの論理値=“1”が維持され、サイクルSw+1〜Sw+3においては、検索結果判定信号DET1Za=“0”、サーチドライバ活性化信号SBE2Z=“0”が維持され、サーチドライバ102(0)〜102(n−1)は非活性とされる。
また、この結果、サイクルSw+1〜Sw+3においては、マッチラインML256〜ML383の論理値=“1”、検索結果信号MS256Z〜MS383Zの論理値=“1”が維持され、サイクルSw+1〜Sw+4においては、検索結果判定信号DET2Za=“0”、サーチドライバ活性化信号SBE3Z=“0”が維持され、サーチドライバ103(0)〜103(n−1)は非活性とされる。
次に、サイクルSw+1の後半時及びサイクルSw+2の前半時に検索データDIN2が入力されると、サイクルSw+2の前半時に、サーチドライバ99(0)〜99(n−1)は活性化され、メモリセルアレイ61のサーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)を駆動する。
ここで、検索データDIN2は、メモリセルアレイ61に記憶されているデータの全てと不一致となるので、マッチラインML0〜ML127の論理値=“0”、検索結果信号MS0Z〜MS127Zの論理値=“0”となり、サイクルSw+3においては、検索結果判定信号DET0Za=“1”、サーチドライバ活性化信号SBE1Z=“1”となり、サーチドライバ100(0)〜100(n−1)は、サイクルSw+3の前半では、活性化され、メモリセルアレイ62のサーチバスSB1(0)、XSB1(0)〜SB1(n−1)、XSB1(n−1)を駆動する。
ここで、検索データDIN2は、メモリセルアレイ62に記憶されているデータのいずれかと一致するので、マッチラインML128〜ML255のいずれかの論理値=“1”、検索結果信号MS128Z〜MS255Zのいずれかの論理値=“1”が維持され、サイクルSw+1〜Sw+4においては、検索結果判定信号DET1Za=“0”、サーチドライバ活性化信号SBE2Z=“0”が維持され、サーチドライバ102(0)〜102(n−1)は非活性とされる。
また、この結果、サイクルSw+1〜Sw+4においては、マッチラインML256〜ML383の論理値=“1”、検索結果信号MS256Z〜MS383Zの論理値=“1”が維持され、サイクルSw+1〜Sw+5においては、検索結果判定信号DET2Za=“0”、サーチドライバ活性化信号SBE3Z=“0”が維持され、サーチドライバ103(0)〜103(n−1)は非活性とされる。
次に、サイクルSw+2の後半時及びサイクルSw+3の前半時に検索データDIN3が入力されると、サイクルSw+3の前半時に、サーチドライバ99(0)〜99(n−1)は活性化され、メモリセルアレイ61のサーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)を駆動する。
ここで、検索データDIN3は、メモリセルアレイ61に記憶されているデータの全てと不一致となるので、マッチラインML0〜ML127の論理値=“0”、検索結果信号MS0Z〜MS127Zの論理値=“0”となり、サイクルSw+4においては、検索結果判定信号DET0Za=“1”、サーチドライバ活性化信号SBE1Z=“1”となり、サイクルSw+4の前半時に、サーチドライバ100(0)〜100(n−1)は活性化され、メモリセルアレイ62のサーチバスSB1(0)、XSB1(0)〜SB1(n−1)、XSB1(n−1)を駆動する。
ここで、検索データDIN3は、メモリセルアレイ62に記憶されているデータの全てと不一致となるので、マッチラインML128〜ML255の論理値=“0”、検索結果信号MS128Z〜MS255Zの論理値=“0”となり、サイクルSw+5においては、検索結果判定信号DET1Za=“1”、サーチドライバ活性化信号SBE2Z=“1”となり、サイクルSw+5の前半時に、サーチドライバ102(0)〜102(n−1)は活性化され、メモリセルアレイ63のサーチバスSB2(0)、XSB2(0)〜SB2(n−1)、XSB2(n−1)を駆動する。
ここで、検索データDIN3は、メモリセルアレイ63に記憶されているデータのいずれかと一致するので、マッチラインML256〜ML383のいずれかの論理値=“1”、検索結果信号MS256Z〜MS383Zのいずれかの論理値=“1”が維持され、サイクルSw+1〜Sw+6においては、検索結果判定信号DET2Za=“0”、サーチドライバ活性化信号SBE3Z=“0”が維持され、サーチドライバ103(0)〜103(n−1)は非活性とされる。
次に、サイクルSw+3の後半時及びサイクルSw+4の前半時に検索データDIN4が入力されると、サイクルSw+4の前半時に、サーチドライバ99(0)〜99(n−1)は活性化され、メモリセルアレイ61のサーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)を駆動する。
ここで、検索データDIN4は、メモリセルアレイ61に記憶されているデータの全てと不一致となるので、マッチラインML0〜ML127の論理値=“0”、検索結果信号MS0Z〜MS127Zの論理値=“0”が維持され、サイクルSw+5においては、検索結果判定信号DET0Za=“1”、サーチドライバ活性化信号SBE1Z=“1”となり、サイクルSw+5の前半時に、サーチドライバ100(0)〜100(n−1)は活性化され、メモリセルアレイ62のサーチバスSB1(0)、XSB1(0)〜SB1(n−1)、XSB1(n−1)を駆動する。
ここで、検索データDIN4は、メモリセルアレイ62に記憶されているデータの全てと不一致となるので、マッチラインML128〜ML255の論理値=“0”、検索結果信号MS128Z〜MS255Zの論理値=“0”となり、サイクルSw+6においては、検索結果判定信号DET1Za=“1”、サーチドライバ活性化信号SBE2Z=“1”となり、サイクルSw+6の前半時に、サーチドライバ102(0)〜102(n−1)は活性化され、メモリセルアレイ63のサーチバスSB2(0)、XSB2(0)〜SB2(n−1)、XSB2(n−1)を駆動する。
ここで、検索データDIN4は、メモリセルアレイ63に記憶されているデータの全てと不一致となるので、マッチラインML256〜ML383の論理値=“0”、検索結果信号MS256Z〜MS383Zの論理値=“0”となり、サイクルSw+7においては、検索結果判定信号DET2Za=“1”、サーチドライバ活性化信号SBE3Z=“1”となり、サイクルSw+7の前半時に、サーチドライバ103(0)〜103(n−1)は、活性化され、メモリセルアレイ64のサーチバスSB3(0)、XSB3(0)〜SB3(n−1)、XSB3(n−1)を駆動する。ここで、検索データDIN4は、メモリセルアレイ64に記憶されているデータの全てと一致となるので、マッチラインML384〜ML511のいずれかの論理値=“1”、検索結果信号MS384Z〜MS511Zのいずれかの論理値=“0”となる。
次に、サイクルSw+4の後半時及びサイクルSw+5の前半時に検索データDIN5が入力されると、サイクルSw+5の前半時に、サーチドライバ99(0)〜99(n−1)は活性化され、メモリセルアレイ61のサーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)を駆動する。
ここで、検索データDIN5は、メモリセルアレイ61に記憶されているデータの全てと不一致となるので、マッチラインML0〜ML127の論理値=“0”、検索結果信号MS0Z〜MS127Zの論理値=“0”となり、サイクルSw+6においては、検索結果判定信号DET0Za=“1”、サーチドライバ活性化信号SBE1Z=“1”となり、サイクルSw+6の前半時に、サーチドライバ100(0)〜100(n−1)は、活性化され、メモリセルアレイ62のサーチバスSB1(0)、XSB1(0)〜SB1(n−1)、XSB1(n−1)を駆動する。
ここで、検索データDIN5は、メモリセルアレイ62に記憶されているデータの全てと不一致となるので、マッチラインML128〜ML255の論理値=“0”、検索結果信号MS128Z〜MS255Zの論理値=“0”となり、サイクルSw+7においては、検索結果判定信号DET1Za=“1”、サーチドライバ活性化信号SBE2Z=“1”となり、サイクルSw+7の前半時に、サーチドライバ102(0)〜102(n−1)は活性化され、メモリセルアレイ63のサーチバスSB2(0)、XSB2(0)〜SB2(n−1)、XSB2(n−1)を駆動する。
ここで、検索データDIN5は、メモリセルアレイ63に記憶されているデータの全てと不一致となるので、マッチラインML256〜ML383の論理値=“0”、検索結果信号MS256Z〜MS383の論理値=“0”となり、サイクルSw+8においては、検索結果判定信号DET2Za=“1”、サーチドライバ活性化信号SBE3Z=“1”となり、サイクルSw+8の前半時に、サーチドライバ103(0)〜103(n−1)は活性化され、メモリセルアレイ64のサーチバスSB3(0)、XSB3(0)〜SB3(n−1)、XSB3(n−1)を駆動する。
次に、サイクルSw+5の後半時及びサイクルSw+6の前半時に検索データDIN6が入力されると、サイクルSw+6の前半時に、サーチドライバ99(0)〜99(n−1)は活性化され、メモリセルアレイ61のサーチバスSB0(0)、XSB0(0)〜SB0(n−1)、XSB0(n−1)を駆動する。
ここで、検索データDIN6は、メモリセルアレイ61に記憶されているデータのいずれかと一致するので、マッチラインML0〜ML127のいずれかの論理値=“1”、検索結果信号MS0Z〜MS127Zのいずれかの論理値=“1”が維持され、サイクルSw+7においては、検索結果判定信号DET0Za=“0”、サーチドライバ活性化信号SBE1Z=“0”が維持され、サーチドライバ100(0)〜100(n−1)は非活性とされる。
この結果、サイクルSw+7においては、マッチラインML128〜ML255の論理値=“1”、検索結果信号MS128〜MS255Zの論理値=“1”が維持され、サイクルSw+8においては、検索結果判定信号DET1Za=“0”、サーチドライバ活性化信号SBE2Z=“0”が維持され、サーチドライバ102(0)〜102(n−1)は非活性とされる。
また、この結果、サイクルSw+8においては、マッチラインML256〜ML383の論理値=“1”、検索結果信号MS256〜ML383の論理値=“1”が維持され、サイクルSw+9においては、検索結果判定信号DET2Za=“0”、サーチドライバ活性化信号SBE3Z=“0”が維持され、サーチドライバ103(0)〜103(n−1)は非活性とされる。
また、本発明の第3実施形態においては、サイクルSw+1の前半時に、サーチドライバ99(0)〜99(n−1)が活性化され、検索データDIN1がメモリセルアレイ61に記憶されているデータのいずれかと一致すると、エンコーダ110は、図15(C)に示すように、検索データDIN1と同一データを記憶するメモリセル部分のメモリセルアレイ61内での番地であるA1番地を示すアドレス信号EAA0を出力する。
この結果、エンコーダ114は、サイクルSw+1で、A1番地を示すアドレス信号EAA0を入力し、図15(D)に示すように、メモリセルアレイ61内での番地であるA1番地をメモリセルアレイ61〜64を1つのメモリセルアレイとして見た場合の番地に変換し、この変換した番地であるA1C番地を示すアドレス信号EAB0を出力する。
また、この結果、エンコーダ115は、サイクルSw+2で、フリップフロップ118を介してA1C番地を示すアドレス信号EAB0を入力し、図15(F)に示すように、A1C番地を示すアドレス信号EAB1を出力する。エンコーダ116は、サイクルSw+3で、フリップフロップ119を介してA1C番地を示すアドレス信号EAB1を入力し、図15(H)に示すように、A1C番地を示すアドレス信号EAB2を出力する。エンコーダ117は、サイクルSw+4で、フリップフロップ120を介してA1C番地を示すアドレス信号EAB2を入力し、図15(J)に示すように、A1C番地を示すアドレス信号EAを出力する。
また、サイクルSw+3の前半時に、サーチドライバ100(0)〜100(n−1)が活性化され、検索データDIN2がメモリセルアレイ62に記憶されているデータのいずれかと一致すると、エンコーダ111は、図15(E)に示すように、検索データDIN2と同一データを記憶するメモリセル部分のメモリセルアレイ62内での番地であるA2番地を示すアドレス信号EAA1を出力する。
この結果、エンコーダ115は、サイクルSw+3で、A2番地を示すアドレス信号EAB1を入力し、図15(F)に示すように、メモリセルアレイ62内での番地であるA2番地をメモリセルアレイ61〜64を1つのメモリセルアレイとして見た場合の番地に変換し、この変換した番地であるA2C番地を示すアドレス信号EAB1を出力する。
また、この結果、エンコーダ116は、サイクルSW+4で、フリップフロップ119を介してA2C番地を示すアドレス信号EAB1を入力し、図15(H)に示すように、A2C番地を示すアドレス信号EAB2を出力する。エンコーダ117は、サイクルSW+5で、フリップフロップ120を介してA2C番地を示すアドレス信号EAB2を入力し、図15(J)に示すように、A2C番地を示すアドレス信号EAを出力する。
また、サイクルSw+5の前半時に、サーチドライバ102(0)〜102(n−1)が活性化され、検索データDIN3がメモリセルアレイ63に記憶されているデータのいずれかと一致すると、エンコーダ112は、図15(G)に示すように、検索データDIN3と同一データを記憶するメモリセル部分のメモリセルアレイ63内での番地であるA3番地を示すアドレス信号EAA2を出力する。
この結果、エンコーダ116は、サイクルSw+5で、A3番地を示すアドレス信号EAA2を入力し、図15(H)に示すように、メモリセルアレイ63内での番地であるA3番地をメモリセルアレイ61〜64を1つのメモリセルアレイとして見た場合の番地に変換し、この変換した番地であるA3C番地を示すアドレス信号EAB2を出力する。エンコーダ117は、サイクルSw+6で、フリップフロップ120を介してA3C番地を示すアドレス信号EAB2を入力し、図15(J)に示すように、A3C番地を示すアドレス信号EAを出力する。
また、サイクルSw+7の前半時に、サーチドライバ103(0)〜103(n−1)が活性化され、検索データDIN4がメモリセルアレイ64に記憶されているデータのいずれかと一致すると、エンコーダ113は、図15(I)に示すように、検索データDIN4と同一データを記憶するメモリセル部分のメモリセルアレイ64内での番地であるA4番地を示すアドレス信号EAA3を出力する。エンコーダ117は、サイクルSw+7で、A4番地を示すアドレス信号EAA3を入力し、図15(J)に示すように、A4C番地を示すアドレス信号EAを出力する。
また、サイクルSw+6の前半時に、サーチドライバ99(0)〜99(n−1)が活性化され、検索データDIN6がメモリセルアレイ61に記憶されているデータのいずれかと一致すると、エンコーダ110は、図15(C)に示すように、検索データDIN6と同一データを記憶するメモリセル部分のメモリセルアレイ61内での番地であるA6番地を示すアドレス信号EAA0を出力する。
この結果、エンコーダ114は、サイクルSw+6で、A6番地を示すアドレス信号EAA0を入力し、図15(D)に示すように、メモリセルアレイ61内での番地であるA6番地をメモリセルアレイ61〜64を1つのメモリセルアレイとして見た場合の番地に変換し、この変換した番地であるA6C番地を示すアドレス信号EAB0を出力する。
また、この結果、エンコーダ115は、サイクルSw+7で、フリップフロップ118を介してA6C番地を示すアドレス信号EAB0を入力し、図15(F)に示すように、A6C番地を示すアドレス信号EAB1を出力する。エンコーダ116は、サイクルSw+8で、フリップフロップ119を介してA6C番地を示すアドレス信号EAB1を入力し、図15(H)に示すように、A6C番地を示すアドレス信号EAB2を出力する。エンコーダ117は、サイクルSw+9で、フリップフロップ120を介してA6C番地を示すアドレス信号EAB2を入力し、図15(J)に示すように、A6C番地を示すアドレス信号EAを出力する。
以上のように、本発明の第3実施形態においては、エンコーダ110を設け、検索データDINがメモリセルアレイ61に記憶されているデータのいずれかと一致した場合には、検索データDINと同一データを記憶するメモリセル部分のメモリセルアレイ61内での番地を示すアドレス信号EAA0を出力するようにしている。また、エンコーダ111を設け、検索データDINがメモリセルアレイ62に記憶されているデータのいずれかと一致した場合には、検索データDINと同一データを記憶するメモリセル部分のメモリセルアレイ62内での番地を示すアドレス信号EAA1を出力するようにしている。
また、エンコーダ112を設け、検索データDINがメモリセルアレイ63に記憶されているデータのいずれかと一致した場合には、検索データDINと同一データを記憶するメモリセル部分のメモリセルアレイ63内での番地を示すアドレス信号EAA2を出力するようにしている。また、エンコーダ113を設け、検索データDINがメモリセルアレイ64に記憶されているデータのいずれかと一致した場合には、検索データDINと同一データを記憶するメモリセル部分のメモリセルアレイ64内での番地を示すアドレス信号EAA3を出力するようにしている。
そして、アドレス信号EAA0が有効であるときは、アドレス信号EAA0が示すメモリセルアレイ61内の番地がメモリセルアレイ61〜64を1つのメモリセルアレイとして見た場合の番地に変換され、アドレス信号EAB0、EAB1、EAB2としてエンコーダ114からエンコーダ115、116を介してエンコーダ117にパイプライン転送され、エンコーダ117からアドレス信号EAとして出力される。
また、アドレス信号EAA1が有効であるときは、アドレス信号EAA1が示すメモリセルアレイ62内の番地がメモリセルアレイ61〜64を1つのメモリセルアレイとして見た場合の番地に変換され、アドレス信号EAB1、EAB2としてエンコーダ115からエンコーダ116を介してエンコーダ117にパイプライン転送され、エンコーダ117からアドレス信号EAとして出力される。
また、アドレス信号EAA2が有効であるときは、アドレス信号EAA2が示すメモリセルアレイ63内の番地がメモリセルアレイ61〜64を1つのメモリセルアレイとして見た場合の番地に変換され、アドレス信号EAB2としてエンコーダ116からエンコーダ117にパイプライン転送される。また、アドレス信号EAA3が有効であるときは、エンコーダ117において、アドレス信号EAA3が示すメモリセルアレイ64内の番地がメモリセルアレイ61〜64を1つのメモリセルアレイとして見た場合の番地に変換され、アドレス信号EAとして出力される。
本発明の第3実施形態によれば、図8に示す本発明の第2実施形態と同様に、検索後、スタンバイ状態に戻る際に充電を必要とするマッチラインの数を減らし、消費電流の低減化を図ることができると共に、メモリセルアレイ61〜64に対してそれぞれ異なる検索データについての検索動作を同時に行うことができ、連続する検索動作の高速化を図ることができる。
(その他)
本発明の第1実施形態〜第3実施形態においては、二値(binary)タイプのメモリセルを使用した場合について説明したが、その他、本発明は、例えば、図16に示すような三値(ternary)タイプのメモリセルを使用することもできる。図16中、123は一方の記憶媒体であるフリップフロップであり、124、125はインバータである。また、S0、S1はストレージノード、126、127はワードラインWLの電位によりON、OFFが制御されるNMOSトランジスタである。128は他方の記憶媒体であるフリップフロップであり、129、130はインバータである。また、S3、S4はストレージノード、131、132はワードラインWLの電位によりON、OFFが制御されるNMOSトランジスタである。
133はストレージノードS1の電位によりON、OFFが制御されるNMOSトランジスタ、134はストレージノードS4の電位によりON、OFFが制御されるNMOSトランジスタ、135はサーチバスSBの電位によりON、OFFが制御されるNMOSトランジスタ、136はサーチバスXSBの電位によりON、OFFが制御されるNMOSトランジスタである。
図16に示すメモリセルに対するデータの書き込み及び図16に示すメモリセルからのデータの読み出しは、ワードラインWLとビットラインBL0、XBL0、BL1、XBL1とNMOSトランジスタ126、127、131、132とを使用して行われる。表3は図16に示すメモリセルに対するデータ書き込み時及び図16に示すメモリセルからのデータ読み出し時における図16に示すメモリセルの記憶データとビットラインBL0、XBL0、BL1、XBL1の論理値との関係を示している。
Figure 2009158027
また、図16に示すメモリセルに対する検索は、サーチバスSB、XSBと、NMOSトランジスタ133〜136と、マッチラインMLを使用して行われる。表4は検索時における図16に示すメモリセルの記憶データとサーチバスSB、XSBの論理値との関係を示している。
Figure 2009158027
また、本発明の第1実施形態〜第3実施形態においては、メモリセルとしてSRAMセルを使用した場合について説明したが、本発明は、SRAMセル以外のメモリセルを使用する場合にも適用することができることは当然である。
本発明の第1実施形態の一部分を示す回路図である。 本発明の第1実施形態の一部分をより詳しく示す回路図である。 本発明の第1実施形態が備える一方のメモリセルアレイの部分をより詳しく示す回路図である。 本発明の第1実施形態が備える他方のメモリセルアレイの部分をより詳しく示す回路図である。 本発明の第1実施形態の一部分をより詳しく示す回路図である。 本発明の第1実施形態の検索動作例を示すタイミング図である。 本発明の第1実施形態の検索動作例を示すタイミング図である。 本発明の第2実施形態の一部分を示す回路図である。 本発明の第2実施形態の一部分をより詳しく示す回路図である。 本発明の第2実施形態の一部分をより詳しく示す回路図である。 本発明の第2実施形態の一部分をより詳しく示す回路図である。 本発明の第2実施形態の検索動作例を示すタイミング図である。 本発明の第3実施形態の一部分を示す回路図である。 本発明の第3実施形態の検索動作例を示すタイミング図である。 本発明の第3実施形態の検索動作例を示すタイミング図である。 本発明に使用することができるメモリセルの他の例を示す回路図である。 連想メモリの機能をRAMと比較して説明するための図である。 連想メモリが備えるメモリセルの一例を示す回路図である。 図18に示すメモリセルに対する検索動作を説明するための回路図である。 図18に示すメモリセルに対する検索動作を説明するための回路図である。 図18に示すメモリセルに対する検索動作を説明するための回路図である。 図18に示すメモリセルに対する検索動作を説明するための回路図である。 図18に示すメモリセルに対する検索時のサーチバス及びマッチラインの電位変化を示す波形図である。 実際の連想メモリにおけるメモリセルとマッチラインとの関係を示す回路図である。 従来の連想メモリの一例の一部分を示すブロック図である。 図25に示す従来の連想メモリの一部分をより詳しく示す回路図である。 図25に示す従来の連想メモリが備えるメモリセルアレイの部分をより詳しく示す回路図である。 図25に示す従来の連想メモリの検索動作例を説明するための回路図である。 図25に示す従来の連想メモリの検索動作例を説明するためのタイミング図である。 図25に示す従来の連想メモリの検索動作例を説明するためのタイミング図である。 図25に示す従来の連想メモリが有するプライオリティ・マッチ機能を説明するための図である。
符号の説明
1…RAM
2…連想メモリ(CAM)
3…メモリセル(MC)
4…フリップフロップ
5、6…インバータ
7〜12…NMOSトランジスタ
15…マッチライン・センスアンプ(MLSA)
16…メモリセルアレイ
17…ワードデコーダ(WDEC)部
18…ライトアンプ(W/A)部
19…センスアンプ(S/A)部
20…サーチドライバ(S/D)部
21…マッチライン・センスアンプ(MLSA)部
22…エンコーダ(ENC)
23…コマンドデコーダ(COMDEC)
24…サーチドライバ活性化信号生成回路(SBEGEN)
25…ワードドライバ(WDEC)
26…ライトアンプ(W/A)
27…センスアンプ(S/A)
28…サーチドライバ(S/D)
31、32…メモリセルアレイ(MCA)
33…ワードデコーダ(WDEC)部
34…ラインアンプ(W/A)部
35…センスアンプ(S/A)部
36、37…サーチドライバ(S/D)部
38…フリップフロップ(FF)部
39、40…マッチライン・センスアンプ(MLSA)部
41…エンコーダ(ENC)
42…コマンドデコーダ(COMDEC)
43…サーチドライバ活性化信号生成回路(SBEGEN)
44…フリップフロップ(FF)
45…検索結果判定回路(DET)
46…サーチドライバ活性化信号バッファ(SBEBUF)
50…メモリセル(MC)
51…ライトアンプ(W/A)
52…センスアンプ(S/A)
53、54…サーチドライバ(S/D)
55…フリップフロップ(FF)
56…マッチライン・センスアンプ(MLSA)
61〜64…メモリセルアレイ(MCA)
65…ワードデコーダ(WDEC)部
66…ライトアンプ(W/A)部
67…センスアンプ(S/A)部
68〜71…サーチドライバ(S/D)部
72〜74…フリップフロップ(FF)部
75〜78…マッチライン・センスアンプ(MLSA)部
79…エンコーダ(ENC)
80…コマンドデコーダ(COMDEC)
81…サーチドライバ活性化信号生成回路(SBEGEN)
82…フリップフロップ(FF)
83…検索結果判定回路(DET)
84…フリップフロップ(FF)
85…サーチドライバ活性化信号バッファ(SBEBUF)
86…フリップフロップ(FF)
87…検索結果判定回路(DET)
88…フリップフロップ(FF)
89…サーチドライバ活性化信号バッファ(SBEBUF)
90…フリップフロップ(FF)
91…検索結果判定回路(DET)
92…フリップフロップ(FF)
93…サーチドライバ活性化信号バッファ(SBEBUF)
96…メモリセル(MC)
97…ライトアンプ(W/A)
98…センスアンプ(S/A)
99、100…サーチドライバ(S/D)
101…フリップフロップ(FF)
102、103…サーチドライバ(S/D)
104、105…フリップフロップ(FF)
106…ワードデコーダ(WDEC)
107…マッチライン・センスアンプ(MLSA)
110〜117…エンコーダ(ENC)
118〜120…フリップフロップ(FF)
123…フリップフロップ(FF)
124、125…インバータ
126、127…NMOSトランジスタ
128…フリップフロップ
129、130…インバータ
131〜136…NMOSトランジスタ

Claims (5)

  1. 外部から与えられた検索データについて順に検索対象とされる複数のメモリセルアレイと、
    前記検索データと同一データを記憶するメモリセルアレイについて検索を実行したときは、前記検索データと同一データを記憶するメモリセルアレイ以降に検索対象とされているメモリセルアレイについては検索を実行しないように検索動作を制御する制御部と
    を備えることを特徴とする連想メモリ。
  2. 外部から与えられた検索データについて順に検索対象とされる第1、第2、…、第k(但し、k=2以上の整数である。)のメモリセルアレイと、
    第i(但し、i=1、2、…、kである。)のメモリセルアレイに対応して設けられた第iのマッチライン・センスアンプと、
    第j(但し、j=1、…、k−1である。)のマッチライン・センスアンプの出力値が、第jのメモリセルアレイが前記検索データと同一データを記憶しているメモリセルアレイでないことを示している場合にのみ、第j+1のメモリセルアレイについて検索を行うように検索動作を制御する第jの制御部と
    を備えることを特徴とする連想メモリ。
  3. 前記第iのメモリセルアレイに対応して設けられ、前記第iのメモリセルアレイ内のメモリセルに接続された第iのサーチバスと、
    前記第iのメモリセルアレイに対応して設けられ、前記第iのサーチバスを駆動して前記第iのメモリセルアレイ内のメモリセルを検索動作状態に設定する第iのサーチドライバ部とを備え、
    前記第jの制御部は、
    前記第jのマッチライン・センスアンプの出力値から、前記第jのメモリセルアレイが前記検索データと同一データを記憶しているメモリセルアレイでないことを示しているか否かを判定する第jの検索結果判定回路と、
    前記第jの検索結果判定回路が、前記第jのメモリセルアレイは前記検索データと同一データを記憶しているメモリセルアレイではないと判定した場合には、第j+1のサーチドライバを活性化し、前記第jのメモリセルアレイが前記検索データと同一データを記憶しているメモリセルアレイであると判定した場合には、前記第j+1のサーチドライバを非活性とする第j+1のサーチドライバ活性化回路と
    を備えることを特徴とする請求項2に記載の連想メモリ。
  4. 第jのサーチバスの論理値を第j+1のサーチドライバ部に転送する転送手段を備え、
    第1のサーチドライバは、前記外部から与えられた検索データに基づいて第1のサーチバスを駆動し、
    前記第j+1のサーチドライバ部は、第j+1のサーチバスの論理値が前記第jのサーチバスの論理値と同一となるように前記第j+1のサーチバスを駆動する
    ことを特徴とする請求項3に記載の連想メモリ。
  5. 前記第iのマッチライン・センスアンプの出力値が、前記検索データが前記第iのメモリセルアレイに記憶されているデータのいずれかと一致したことを示している場合には、前記検索データと同一データを記憶するメモリセル部分の前記第iのメモリセルアレイ内の番地を示す第1型の第iのアドレス信号を出力する第1型の第iのエンコーダと、
    前記第1型の第iのアドレス信号を入力し、前記第1型の第iのアドレス信号が示す番地を前記第1〜第kのメモリセルアレイを1つのメモリセルアレイとして見た場合の番地に変換し、該変換した番地を示す第2型の第iのアドレス信号を出力する第2型の第iのエンコーダとを備え、
    第2型の第1、第2、…、第kのエンコーダは、第2型の第1、…、第k−1型のエンコーダが出力する第2型の第1、…、第k−1のアドレス信号を第2型の第kのエンコーダに向けてパイプライン転送できるように接続されている
    ことを特徴とする請求項3又は4に記載の連想メモリ。
JP2007336169A 2007-12-27 2007-12-27 連想メモリ Expired - Fee Related JP5119912B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007336169A JP5119912B2 (ja) 2007-12-27 2007-12-27 連想メモリ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007336169A JP5119912B2 (ja) 2007-12-27 2007-12-27 連想メモリ

Publications (2)

Publication Number Publication Date
JP2009158027A true JP2009158027A (ja) 2009-07-16
JP5119912B2 JP5119912B2 (ja) 2013-01-16

Family

ID=40961873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007336169A Expired - Fee Related JP5119912B2 (ja) 2007-12-27 2007-12-27 連想メモリ

Country Status (1)

Country Link
JP (1) JP5119912B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011181147A (ja) * 2010-03-02 2011-09-15 Renesas Electronics Corp 連想記憶装置
JP2017097940A (ja) * 2015-11-26 2017-06-01 ルネサスエレクトロニクス株式会社 半導体装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06333395A (ja) * 1993-05-19 1994-12-02 Kawasaki Steel Corp 連想メモリ
JP2003272386A (ja) * 2002-03-20 2003-09-26 Mitsubishi Electric Corp Tcamセル、tcamセルアレイ、アドレス検索メモリおよびネットワークアドレス検索装置
JP2005228461A (ja) * 2004-01-13 2005-08-25 Hitachi Ulsi Systems Co Ltd 半導体記憶装置
JP2006309917A (ja) * 2005-03-31 2006-11-09 Renesas Technology Corp Cam装置及びcam装置の救済方法
JP2007294013A (ja) * 2006-04-25 2007-11-08 Renesas Technology Corp 内容参照メモリ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06333395A (ja) * 1993-05-19 1994-12-02 Kawasaki Steel Corp 連想メモリ
JP2003272386A (ja) * 2002-03-20 2003-09-26 Mitsubishi Electric Corp Tcamセル、tcamセルアレイ、アドレス検索メモリおよびネットワークアドレス検索装置
JP2005228461A (ja) * 2004-01-13 2005-08-25 Hitachi Ulsi Systems Co Ltd 半導体記憶装置
JP2006309917A (ja) * 2005-03-31 2006-11-09 Renesas Technology Corp Cam装置及びcam装置の救済方法
JP2007294013A (ja) * 2006-04-25 2007-11-08 Renesas Technology Corp 内容参照メモリ

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011181147A (ja) * 2010-03-02 2011-09-15 Renesas Electronics Corp 連想記憶装置
US8400803B2 (en) 2010-03-02 2013-03-19 Renesas Electronics Corporation Content addressable memory device
US8780599B2 (en) 2010-03-02 2014-07-15 Renesas Electronics Corporation Content addressable memory device
US9159376B2 (en) 2010-03-02 2015-10-13 Renesas Electronics Corporation Content addressable memory device
JP2017097940A (ja) * 2015-11-26 2017-06-01 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
JP5119912B2 (ja) 2013-01-16

Similar Documents

Publication Publication Date Title
US8625360B2 (en) Semiconductor storage device operative to search for data
US6633952B2 (en) Programmable refresh scheduler for embedded DRAMs
US6480424B1 (en) Compact analog-multiplexed global sense amplifier for RAMS
CN101038785A (zh) 具有统一的存取执行时间的高速动态随机存取存储器结构
US6778435B1 (en) Memory architecture for TCCT-based memory cells
JPH11306751A (ja) 半導体記憶装置
TW201346911A (zh) 內容定址記憶體系統
US20020131312A1 (en) Pseudo differential sensing method and apparatus for DRAM cell
JP2001273193A (ja) キャッシュメモリ
US8724359B2 (en) Methods and circuits for limiting bit line leakage current in a content addressable memory (CAM) device
US6762972B2 (en) Synchronous semiconductor memory device and method of processing data thereof
JP2007273007A (ja) 半導体記憶装置
JP3317746B2 (ja) 半導体記憶装置
TWI252492B (en) Semiconductor memory device having advanced tag block
JPH0636560A (ja) 半導体記憶装置
JPH10106264A (ja) 半導体記憶装置
JP5119912B2 (ja) 連想メモリ
JP4511790B2 (ja) 連想記憶装置
US7187570B2 (en) Content addressable memory architecture providing improved speed
JP5115913B2 (ja) 半導体メモリ素子のメインローデコーダ
JP2001167585A (ja) 連想記憶装置
JP4926129B2 (ja) メモリ用の評価回路
JP5104297B2 (ja) 連想メモリ
JP2000030451A (ja) 半導体メモリ装置及びそのカラムデコ―ダ
KR101986416B1 (ko) 로컬 비트 라인의 전압을 공유하는 정적 랜덤 액세스 메모리 장치 및 그 제어 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120815

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120925

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121008

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

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5119912

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees