(第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の論理値との関係を示している。
また、図16に示すメモリセルに対する検索は、サーチバスSB、XSBと、NMOSトランジスタ133〜136と、マッチラインMLを使用して行われる。表4は検索時における図16に示すメモリセルの記憶データとサーチバスSB、XSBの論理値との関係を示している。
また、本発明の第1実施形態〜第3実施形態においては、メモリセルとしてSRAMセルを使用した場合について説明したが、本発明は、SRAMセル以外のメモリセルを使用する場合にも適用することができることは当然である。