説明

半導体記憶装置

【課題】 効率的なデータ検索が可能な半導体記憶装置を提供する。
【解決手段】 半導体記憶装置は、複数の単位構造を含む。単位構造は、メモリセルとそれぞれ接続されたセンスアンプ(SA)と、センスアンプと接続された第1線(LBUS)と、第1線と接続された第1ラッチ(XDL)と、第1線と接続された第2ラッチ(LDL)と、第1線と接続され、第1および第2ラッチ中のデータに対する論理演算を行なう演算回路(Y)と、を含む。複数の第1検知回路(31,32)は、各々が複数の単位構造の相違する一部を含んだ複数の単位構造群とそれぞれ接続され、対応する単位構造群において少なくとも1つの第1線の電位がLレベルであることを検知する。第2検知回路(43)は、少なくとも1つの第1検知回路によって検知がなされたことを検知する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【0002】
記憶装置に保持されているデータは、多くの場合、アドレスにより特定される。一方、CAM(content addressable memory(連想メモリ))のように、データが検索語により特定されることもある。すなわち、検索語を指定し、この検索語を含んだデータがメモリ中から見つけられる。検索語を通じたデータの指定は、通常、ソフトウェアによって実行される。例えば、半導体記憶装置とプロセッサとを含む装置が用意され、プロセッサをソフトウェアに基づいて動作させて検索が行なわれる。プロセッサは、検索対象のデータを一時記憶装置に読み出し、検索語を含んだデータを発見する。記憶装置の大容量化に伴い、このような検索の完了には、長時間を要するようになっている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011−044200号公報
【特許文献2】特開2005−353171号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
効率的なデータ検索が可能な半導体記憶装置を提供しようとするものである。
【課題を解決するための手段】
【0005】
一実施形態による半導体記憶装置は、半導体記憶装置は、複数の単位構造を含む。単位構造は、メモリセルとそれぞれ接続されたセンスアンプと、センスアンプと接続された第1線と、第1線と接続された第1ラッチと、第1線と接続された第2ラッチと、第1線と接続され、第1および第2ラッチ中のデータに対する論理演算を行なう演算回路と、を含む。複数の第1検知回路は、各々が複数の単位構造の相違する一部を含んだ複数の単位構造群とそれぞれ接続され、対応する単位構造群において少なくとも1つの第1線の電位がLレベルであることを検知する。第2検知回路は、少なくとも1つの第1検知回路によって検知がなされたことを検知する。
【図面の簡単な説明】
【0006】
【図1】第1実施形態に係る半導体記憶装置を概略的に示すブロック図。
【図2】メモリセルアレイの一部の回路図。
【図3】メモリセルアレイの一部の断面図。
【図4】第1実施形態のビット線制御回路の一部を示す回路図。
【図5】第1実施形態に係る半導体記憶装置によるデータ検索のフローチャート。
【図6】第1実施形態のデータラッチ中のデータの一状態を示す図。
【図7】第2実施形態のビット線制御回路の一部を示すブロック図。
【図8】第2実施形態に係る半導体記憶装置によるデータ検索のフローチャート。
【図9】第2実施形態のデータラッチ中のデータの一状態を示す図。
【図10】図9に続くデータラッチ中のデータの状態を示す図。
【図11】図10に続くデータラッチ中のデータの状態を示す図。
【図12】図11に続くデータラッチ中のデータの状態を示す図。
【図13】図12に続くデータラッチ中のデータの状態を示す図。
【発明を実施するための形態】
【0007】
以下に実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。ただし、図面は模式的なものであることに留意すべきである。
【0008】
また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものではない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【0009】
以下の記載における各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明されている。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も実施形態の範疇に含まれる。また、各機能ブロックが、以下の具体例のように区別されていることは必須ではない。例えば、一部の機能が以下の説明において例示されている機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。どの機能ブロックによって特定されるかによって実施形態が限定されるものではない。
【0010】
(第1実施形態)
図1は、第1実施形態に係る半導体記憶装置を概略的に示すブロック図である。図1に示されるように、半導体記憶装置(フラッシュメモリ)1は、メモリセルアレイ2を含んでいる。メモリセルアレイ2は、複数のメモリセル、複数のビット線、複数のワード線、および共通のソース線等を含んでいる。メモリセルは、例えばEEPROMセルからなり、保持しているデータを電気的に書き換えられることが可能に構成されている。
【0011】
ビット線制御回路3は、ビット線を介して、メモリセルのデータを読み出したり、メモリセルの状態を検出したり、メモリセルに書き込み(プログラム)電圧を印加してメモリセルにデータを書き込む。ビット線制御回路3は、制御回路4によって制御される。ビット線制御回路3は、センスアンプ3a、データラッチ3b、検索回路3c、レジスタ3d、判定モジュール3e等を含んでいる。
【0012】
データラッチ3bおよび検索回路3cは、データ回路(データバッファ)6およびI/Oインターフェース7を介してデータ入出力端子に接続されている。データ入出力端子は、外部から、種々のコマンドCMD、アドレスAA、データDTを受け取る。これらのうち、コマンドCMDおよびアドレスAAは制御回路4に供給され、アドレスAAおよびデータDTはビット線制御回路3に供給される。一方、メモリセルから読み出されたデータは、ビット線制御回路3を介して入出力端子から出力される。
【0013】
ワード線制御回路11は、データの読み出し、書き込み、あるいは消去等に必要な電圧を電圧生成回路12から受け取る。ワード線制御回路11は、制御回路4の制御に従って選択されたワード線に、電圧生成回路12からの電圧を印加する。電圧生成回路12は、制御回路4の制御に従って、データの読み出し、書き込み、消去等に必要な電圧をワード線制御回路11等に供給する。
【0014】
制御回路4は、入力インターフェース13を介して制御信号入力端子と接続されている。制御回路4は、制御信号入力端子を介して制御信号ALE(アドレスラッチイネーブル)、/CLE(コマンドラッチイネーブル)、/WE(ライトイネーブル)、/RE(リードイネーブル)を受け取る。制御回路4は、これらの制御信号およびコマンドCMDならびにアドレスAAに従って、ビット線制御回路3、ワード線制御回路11、電圧生成回路12を制御する。制御回路4は、また、レディービジーインターフェース14を介してレディー/ビジー信号R/Bを出力する。
【0015】
メモリセルアレイ2は複数のブロックを含んでいる。図2は、メモリセルアレイの一部(1ブロック)の回路図である。図3は、メモリセルアレイの一部(1ブロック)の断面図である。図2、図3に示されるように、ブロックBlockは、ワード線方向(WL方向)に沿って並ぶ複数のメモリセル列(メモリセルユニット)MUを含んでいる。メモリセル列MUは、NANDストリングと、選択トランジスタS1、S2を含んでいる。NANDストリングは、電流経路(ソース/ドレインSD)同士を相互に直列接続された複数個(例えば64個)のメモリセルトランジスタMTからなる。選択トランジスタS1、S2は、NANDストリングの両端にそれぞれ接続される。選択トランジスタS2の電流経路の他端はビット線BLに接続され、選択トランジスタS1の電流経路の他端はソース線SLに接続される。ブロックBlock中のメモリセルトランジスタMTは、一括して消去される。すなわち、ブロックは消去単位である。ワード線WL0〜WL63は、WL方向に延び、同じ行に属する全てのメモリセルトランジスタMTに接続される。セレクトゲート線SGDは、WL方向に延び、ブロック中の全選択トランジスタS2に接続されている。セレクトゲート線SGSは、WL方向に延び、ブロック中の全選択トランジスタS1に接続されている。
【0016】
同じワード線WLと接続されている複数のメモリセルトランジスタMTによる記憶空間は、ページ(Page)と称する単位を構成する。ページごとにデータが読み出され、また書き込まれる。半導体記憶装置1は、1つのメモリセルが複数ビットのデータを保持できるように構成されていてもよい。そのようなメモリセルの場合、1つのワード線に複数ページが割り当てられる。
【0017】
メモリセルMTは、ビット線BLとワード線WLとの各交点に設けられる。メモリセルMTは、半導体基板中に形成されたウェル上に設けられる。ウェルは、電圧生成回路12から所定の電圧を受け取る。メモリセルMTは、ウェル上に積層されたトンネル絶縁膜、電荷蓄積層としてのフローティングゲート電極FG、ゲート間絶縁膜(図示せず)、コントロールゲート電極CG(ワード線WL)、ソース/ドレイン領域SDを有している。あるメモリセルMTの電流経路であるソース/ドレインは、隣接するメモリセルMTのソース/ドレインに直列接続されている。選択トランジスタS1、S2は、それぞれ、半導体基板上に積層されたゲート絶縁膜(図示せず)、ゲート電極SGS、SGD、ソース/ドレイン領域SDを含んでいる。
【0018】
次に、ビット線制御回路3について説明する。図4は、ビット線制御回路3の一部を示す回路図である。図4に示されるように、ビット線制御回路3は、8つの単位構造USを含んでいる。1つの単位構造USは、I/O0〜7のいずれかのために動作する。各単位構造USは、同じ構成を有する。図では、図の明瞭化のために、I/O2〜I/O6用の単位構造USは省略されている。各単位構造USは、センスアンプ回路3aおよびデータラッチ3bの一部を構成する。8つの単位構造USを1つの組としているのは、ビット線制御回路3とデータ回路6を繋ぐデータバスYIOが8本のデータ線YIO0〜YIO7を有することに基づいている。データ線YIO0〜YIO7は、それぞれI/O0〜I/O7に対応する。相違する単位構造USは、相違するデータ線YIO0〜YIO7およびビット線と接続されている。図4に示される8つの連続する単位構造USは1組の単位構造USを構成し、1組が協働で8カラム(COL)に対応するデータ(8バイトデータ)を処理および保持等する。このような1組の単位構造USを単位構造群と称する。このような単位構造群が、複数個、ビット線制御回路3に含まれている。単位構造群の数は、例えば全ての群によって、1ページと等しい大きさのデータを処理および保持できるだけの数である。例えば1ページの大きさが8kBであれば、ビット線制御回路3は、1k個の単位構造群を含んでいる。ビット線制御回路3は、各単位構造群に対して1つの検索回路3cを有している。
【0019】
各単位構造USは、下端(メモリセルアレイ2に最も位置)において、センスアンプSA0〜SA7を含んでいる。センスアンプSA0〜SA7の各々は、1本のビット線BLと接続されている。センスアンプSA0〜SA7は、各々のスイッチ回路21を介して、1本のデータバスSBUSに共通に接続されている。データバスSBUSは、1つの単位構造USに共通であり、1ビットの幅を有する。スイッチ回路21は、制御回路4により制御される。
【0020】
各単位構造において、データバスSBUSは、演算回路Yの一端と接続されている。演算回路Yの主たる用途の1つは、1つのメモリセルに複数ビットのデータを書き込むことを可能にするための処理を行なうことである。その達成のために、演算回路Yは、種々の論理演算を行えるように構成されている。具体的には、演算回路Yは、例えば、後述のあるデータラッチ(例えばデータラッチLDL)中のデータと別のデータラッチ(例えばデータラッチUDL)中のデータに対して特定の論理演算を行い、その結果を先のいずれかのデータラッチまたはさらに別のデータラッチに転送して保持することができる。論理演算には、少なくとも否定演算(NOT)、論理和(OR)、論理積(AND)、排他的論理和(XOR)の算出、またはそれらの組合せが含まれる。演算回路Yは、制御回路4により制御される。センスアンプSA0〜SA7および演算回路Yは、図3のセンスアンプ回路3aに対応する。
【0021】
各単位構造USにおいて、演算回路Yの他端はデータバスLBUSと接続されている。データバスLBUSは、データラッチXDL0〜XDL7に、それぞれのスイッチ回路22を介して接続されている。データバスLBUSは、また、データラッチUDL0〜UDL7に、それぞれのスイッチ回路23を介して接続されている。データバスLBUSは、さらに、データラッチLDL0〜LDL7に、それぞれのスイッチ回路24を介して接続されている。図では、データラッチUDL0〜UDL7は1組のデータラッチUDLとして描かれている。データラッチLDL0〜LDL7も1組のデータラッチLDLとして描かれている。各単位構造USにおいて、データバスLBUSは、さらに、スイッチ26を介して、データ線YIO0〜YIO7のうちの対応する1つと接続されている。スイッチ22〜24、26は、制御回路4により制御される。データラッチXDL0〜XDL7、UDL0〜UDL7、LDL0〜LDL7は、図3のデータラッチに対応する。
【0022】
各データバスLBUSは、対応する1つのn型MOS(metal oxide semiconductor)FET(field effect transistor)31のゲートに接続されている。各トランジスタ31の一端は接地され、他端は1つのn型MOSFET32の一端に接続されている。単位構造群中の全トランジスタ32の他端は、ローカル検知線LDLに共通に接続されている。単位構造群中の全トランジスタ32のゲートは、制御回路4から信号DETECTを受け取る。トランジスタ31、32、33は、1つの単位構造群中で1カラムのデータに対する検索のための第1検知回路を構成する。
【0023】
ローカル検知線LDは、p型MOSFET33を介して電源電位端と接続されている。トランジスタ33のゲートは、制御回路4から制御信号CHR1を受け取る。ローカル検知線LDLは、また、タグラッチ34の入力に接続されている。タグラッチ34の出力は、n型MOSFET41のゲートに接続されている。トランジスタ41は、一端において接地され、他端においてn型MOSFET42の一端に接続されている。トランジスタ42の他端は、検知線DLに接続されている。各単位構造群は、検知線DLに共通に接続されている。検知線DLは、p型MOSFET43を介して電源電位端と接続されている。タグラッチ34、トランジスタ41、42、43は、複数の単位構造群の中で検索ヒットがあったかの検知のための第2検知回路を構成する。トランジスタ31、32、33、34、41、42、43、タグラッチ34は、図3の検知回路3cに対応する。
【0024】
1つの単位構造群は、連続する8つのカラム(例えばCOL(カラム)0〜COL7)のためのデータを処理および転送するために機能する。同様に、別の単位構造群は、1組目とは別の8つのカラム(例えばCOL8〜COL15)用である。以下、同様に、複数の単位構造群が、8つの連続するカラムの複数の組のいずれかのために機能する。
【0025】
次に、データ読み出しについて説明する。以下では、COL0〜COL7用の単位構造群を代表として取り上げて説明する。しかしながら、実際には、全ての単位構造群が独立して同じ動作を並行して実行していることに留意されたい。すなわち、COL0についての以下に記述する動作は、COL8、COL16、COL23…についても並行して行なわれている。同様に、COL1についての以下に記述する動作は、COL9、COL17、COL24…についても並行して行なわれている。同じ記述が、残りのCOLについても当てはまる。
【0026】
まず、8カラムのうちのいずれか1つのカラムについてデータが読み出される。どのカラムが選ばれるかは任意であるが、以下では、最小番号のCOL0が選ばれたものとして説明する。
【0027】
COL0のI/O0〜I/O7にそれぞれ対応する8つの1ビットデータが、それぞれ、I/O0〜I/O7用のセンスアンプSA0に対応するビット線BLから入力される。続いて、I/O0〜I/O7用のセンスアンプSA0によって増幅されたデータは、それぞれ、I/O〜I/O7用の演算回路Yを介してI/O0〜I/O7用のデータラッチXDL0に保持される。I/O0〜I/O7用のデータラッチXDL0に保持されたデータは、データ線YIO0〜YIO7にそれぞれ供給される。こうして、COL0のデータが一括してデータバスYIOに転送される。
【0028】
次に、同様に、別のカラム(例えばCOL1)についてデータが読み出される。すなわち、COL1のI/O0〜I/O7のデータが、I/O0〜I/O7用の各センスアンプSA1に入力される。続いて、I/O0〜I/O7用のセンスアンプSA1によって増幅されたデータは、それぞれ、I/O〜I/O7用の演算回路Yを介してI/O〜I/O7用のデータラッチXDL1に保持される。I/O〜I/O7用のデータラッチXDL1に保持されたデータは、データ線YIO0〜YIO7にそれぞれ供給される。こうして、COL1のデータが一括してデータバスYIOに転送される。以下、同様にして、COL2〜COL7の全てについて、8ビットのデータがデータバスYIOに順次転送される。したがって、XDL0〜XDL7は、COL0〜COL7用である。別の単位構造群についても同様で、例えばCOL8〜COL15を受け持つ単位構造群では、XDL0〜XDL7は、COL8〜COL15用である。処理されるCOLの順序は任意であるが、最小番号から最大番号の順が典型的である。
【0029】
このような転送は、各I/Oについて、センスアンプSA0〜SA7の組が1つの演算回路Yを共有するための施策である。その目的は、演算回路Yの個数削減による半導体記憶装置の面積縮小である。したがって、そのような面積縮小が必要でなければ、演算回路Yを共有する方式は必須ではない。非共有の例の場合、単純に、各単位構造USにおいて、1つのカラム用の1つの演算回路Y、1つのデータバスSBUS、1つのLBUSが設けられる。すなわち、1つのセンスアンプSAは、専用のデータバスSBUS、専用の演算回路Y、専用のデータバスLBUSを介して、対応する1つのラッチXDL、対応する1つのラッチUDL、対応する1つのラッチLDLに接続される。
【0030】
データ書き込みについては、データは、データバスYIO、データバスLBUS、データラッチXDL、演算回路Y、センスアンプSAを、この順に通過してビット線BLに至る。
【0031】
次に、データ検索について図4〜図6を参照して説明する。図5は、第1実施形態に係る半導体記憶装置によるデータ検索のフローチャートである。
【0032】
まず、半導体記憶装置1は、検索対象データを読み出すための読み出しコマンドを受け取る(ステップS1)。以下の例では、説明の簡略化のために、検索対象データが1ページと同サイズであるものとする。検索対象データが1ページを超えている場合については、後に触れる。
【0033】
制御回路4は、読み出しコマンドを受け取ると、ワード線制御回路11等の制御を通じてメモリセルから、読み出し対象のデータを読み出してデータラッチLDLに保持する(ステップS2)。読み出しの詳細は、上記のとおりである。読み出しデータがデータラッチLDLに保持された状態は、図6に模式的に示されている。図6中の各囲み(箱)は、1つのカラムに対応する1バイトのデータを示している。実態としては、例えばCOL0の1バイトデータは、COL0用の8つのデータラッチLDL0の各々に保持されている1ビットデータの集合である。以下の説明では、同じカラムのための1バイトデータを保持する8つ1組のデータラッチをデータラッチ群と称する。データラッチ群XDL、UDLも、同様に、1つのデータラッチ群XDLまたはUDLは、対応するカラムの8ビットデータを保持する。
【0034】
図6に示されるように、COL0〜COL7用の各データラッチ群LDLは、それぞれデータD0〜D7を保持する。図6では、簡略化のために省略されているが、COL8以降についても同様である。上記のように、カラムは、全体で1ページのデータを保持できる個数だけ設けられている。従って、データ読み出しの結果、1ページ分の容量のデータラッチ群LDLによって、1ページサイズのデータが保持されている。
【0035】
図5に戻る。半導体記憶装置1は、外部から検索データを受け取り、これを例えばデータ回路6中のレジスタ(図示せず)に保持する(ステップS3)。検索データは、1組の単位構造USと同じ数(本例では8)のビット数を有する。検索データは、キーなどとも称され、典型的には任意の一文字を表わすためのビット列からなる。次いで、検索データは、レジスタから出力されて、データバスYIOを経て全てのデータラッチ群XDLで保持される(ステップS4)。図6の例では、検索データはD2である。検索データD2は1つであるので、全てのデータラッチ群XDLが検索データD2を保持することになる。このために、全単位構造USにおいてスイッチ26および全スイッチ22をオンして、検索データD2をデータラッチ群XDLに同時に供給することが可能である。このことは、検索データD2を効率的に保持することに繋がる。
【0036】
図5に戻る。演算回路Yは、書く単位構造群中の1つのカラムについてデータラッチ群XDL中のデータとデータラッチ群LDL中のデータとのXORを計算し、この計算を全8カラムについて繰り返す(ステップS5)。8つのカラムの順序は任意であるが、最小番号から最大番号の順が典型的である。論理演算の結果は、対応するデータラッチ群UDLで保持される。具体的には、以下の通りである。まず、各単位構造群において、いずれか1つのカラム(例えばCOL0、COL8、COL16、COL24…)についての論理演算が並行して行なわれる。以下の記載では、COL0〜COL7用の単位構造群に注目して説明し、その説明が全ての単位構造群に独立して当てはまるものとする。処理中のCOL0用のI/O0〜I/O7用の各データラッチXDL0中の1ビットデータと、COL0用のI/O0〜I/O7用の各データラッチLDL0中の1ビットデータとのXORが、それぞれ、I/O0〜I/O7用の演算回路Yにより算出される。論理演算の結果は、ビットごとにデータバスLBUS上に現れ、次いで、COL0用の各データラッチUDL0で保持される。8つのデータバスLBUSのうちの少なくとも1つにHレベルのデータが表れる。COL0用のデータラッチ群XDL、LDLが、相違するデータD2、D0を保持するからである。
【0037】
次に、COL0について説明したのと同様の処理が、各単位構造において、単位構造群中の残りの全カラムについて順に繰り返される。この結果、各単位構造群において、全カラムについて、データラッチ群UDLに、論理演算の結果が保持される。
【0038】
次に、各単位構造群中の1つのカラムについてデータラッチ群中の8ビットデータのワイヤードORタグラッチ34に保持し、これを全カラムについて繰り返す。具体的には、以下の通りである。まず、制御回路4は、信号CHR1をアクティブにすることによりローカル検知線LDLをプリチャージし、次いで信号DETECTをアクティブにする。まず、各単位構造群においていずれか1つのカラム(例えばCOL0)用のデータラッチ群UDL中のデータが、それぞれ対応するデータバスLBUSに読み出される。8つのデータバスLBUSのうち1つでも、その電位がHレベルであれば、対応するトランジスタ31がオンしているので、ローカル検知線LDLはLレベルに遷移する。COL0については、ローカル検知線LDLはLレベルに遷移する。ローカル検知線LDL上の信号はタグラッチ34に保持される(ステップS6)。タグラッチ34のLレベル出力は、トランジスタ41はオンさせない。
【0039】
次に、複数の単位構造群中の各タグラッチ34中のデータのワイヤードオアを算出する(ステップS7)。具体的には、以下の通りである。まず、制御回路4は、信号CHR2をアクティブにすることにより検知線DLをハイレベルにプリチャージするとともに信号DETECT2をアクティブにする。結果、オンしているトランジスタ41を含んでいる単位構造群中では、検知線DLのための放電経路が形成される。一方、オフしているトランジスタ41を含んでいる単位構造群中では、検知線DLのための放電経路は形成されない。図6の単位構造群においては、現在の検索対象のCOL0については、タグラッチ34の出力はローレベルなので、検知線DLからの放電経路は形成されない。いずれかの単位構造群中のタグラッチがHレベルを保持している場合、この単位構造群によって、検知線DLの電位はLレベルに遷移する。レジスタ3dは、こうして得られた各単位構造群中の最少番号カラムについての検知線DLの電位を保持する。
【0040】
次に、同様にして、各単位構造群において全カラムについての判定が完了するまで、ステップS6、S7の組が繰り返される(ステップS8)。8つのカラムの順序は任意であるが、最小番号から最大番号の順が典型的である。図6の単位構造群では、COL2のデータに対してヒット判定がある。このため、COL2についてのステップS7において、COL0〜COL7用の単位構造群中のローカル検知線LDLはHレベルを維持する。ローカル検知線LDL上のHレベルデータは、トランジスタ41をオンさせ、結果、検知線DL上の電位はLレベルに遷移する。ステップS6、S7の組の繰り返しが完了すると、レジスタ3dに、カラムの組8つについての比較結果を示す計8つのビットが蓄積されることになる。このうち、1つでもヒット判定があれば、検索対象のページが検索データを含んでいることを意味する。このことに基づいて、判定モジュール3eは検査結果を判定する(ステップS9)。ステップS8において、カラムの8つの組についての検索の完了前に、ヒット判定があった時点で、検索対象のページに対するヒット判定としてステップS8を完了してもよい。判定モジュール3eは、判定の結果を制御回路4に送信する(ステップS10)。この送信は、例えば、データプログラム(書き込み)時のパス・フェイル判定結果の送信に用いられるステータスにより行なうことができる。制御回路4は、さらに、受け取った判定結果を半導体記憶装置1の外部に出力する。
【0041】
検索対象データが1ページを超えている場合は、ステップS1〜S10の組が1ページを超えた分に対する検索が終了するまで、繰り返される。ただし、各繰り返しにおいて、検索データを保持するためのステップS3およびS4はスキップされる。検索データは各繰り返しにおいて不変だからである。
【0042】
以上説明したように、第1実施形態に係る半導体記憶装置は、データラッチXDL、UDL、LDL、演算回路Yに加えて、検索回路3cを含んでいる。これらの要素を用いて、すなわちハードウェア要素によって特定の記憶空間中に指定のデータが含まれているかを判定することができる。したがって、CAMのようにアドレスではなく検索データ(検索キー)によりデータを指定することができる。ハードウェアによる検索は、従来のソフトウェアによる検索に比べて高速で完了可能である。また、検索回路3cは極簡単なロジック回路であり、データラッチXDL、UDL、LDL、演算回路Yは本願の技術とは無関係に元々設けられているので、それらの有効活用により、回路面積の増加はほとんどない。
【0043】
(第2実施形態)
第2実施形態は、第1実施形態の動作に加えて、検索データを含んだデータが見つけられた後にその中の検索データを更新することに関する。
【0044】
図7は、第2実施形態に係る半導体記憶装置のビット線制御回路の一部を示すブロック図である。第2実施形態の検索回路3cは、第1実施形態のものに加えて、トランジスタ51と、トランジスタ52および53の複数の組を含んでいる。各単位構造群において、全データバスLBUSは、p型のMOSFET51の一端に共通に接続されている。トランジスタ51は、他端において電源電位を受け取り、ゲートにおいて制御回路4から信号CHR3を受け取る。各データバスLBUSは、それぞれ、直列接続されたn型MOSFET52、53の一端に接続されている。トランジスタ53は、また、接地されている。各単位構造群において、全トランジスタ52のゲートは、タグラッチ34の出力に共通に接続され、全トランジスタ53のゲートは、制御回路4から信号TAG2DLが共通に接続されている。トランジスタ51、52、53は、検索結果に基づいた値をデータラッチに書き込むことに資する。ここまで説明した点以外の構成は、全て第1実施形態と同じである。
【0045】
次に、図8を参照して、データ更新について説明する。図8は、第2実施形態に係る半導体記憶装置よるデータ更新のフローチャートである。まず、ステップS1〜S7までが行なわれる。ただし、ステップS7は、任意で実行され、例えば検索の結果が出力されることが求められている場合のみ行なわれる。
【0046】
第1実施形態において記載されているように、ステップS6の結果、タグラッチ34は、検索対象のカラムのデータについて検索ヒットの場合はHレベルデータを保持し、検索ミスの場合はLレベルデータを保持している。第1実施形態と同様に、8カラムののうちの1つのカラム(例えばCOL0)ごとに、全カラムのデータが読み出される。したがって、現在は、そのサイクルの一巡目であり、したがって、典型例として、COL0が検索対象である。
【0047】
次に、タグラッチ34中のデータに基づいた値が、検索対象カラム用のデータラッチ群UDLに書き込まれる(ステップS21)。具体的には以下の通りである。まず、制御回路4は信号CHR3をアクティブにすることによって、各単位構造群中の全データバスLBUSをハイレベルにプリチャージする。次いで、制御回路4は、信号TAG2DLをアクティブにする。このアクティブ化により、各単位構造群において、タグラッチ34にLレベルのデータが保持されていれば(すなわち、検索ミス時)、全トランジスタ52はオフしているため、データバスLBUSはHレベルを維持する。このときのI/O0〜I/O7用の各データバスLBUSの電位が、それぞれ、現在の検索対象カラム用のデータラッチUDL0〜UDL7に書き込まれる。したがって、図9に示されるように、COL0用のデータラッチ群UDL0には、全てがHレベルのデータ、すなわち全てが“1”のデータが保持される。なお、図では、16進数にて表示されている。
【0048】
図8に戻る。同様にして、各単位構造群において全カラムについてのデータラッチ群UDLでの結果保持が完了するまで、ステップS6、必要に応じてステップS7、およびステップ21の組が繰り返される(ステップS23)。図9の例では、COL2のデータに対してヒット判定がある。このため、COL2についてのS21において、信号TAG2DLのアクティブ化によって、COL0〜COL7用の単位構造群中の全データバスLBUSはL(0)レベルに遷移する。よって、図9に示されるように、COL2用のデータラッチ群UDL2には、全てがLレベルのデータ、すなわち全てが“0”のデータが保持される。一方、残りのCOL1、3〜7用のデータラッチ群UDL1、3〜7には全てが“1”のデータが保持される。
【0049】
続くステップS9およびS10も任意で実行され、例えば検索の結果が出力されることが求められている場合のみ行なわれる。
【0050】
次に、演算回路Yは、各単位構造群中の1つのカラムについてデータラッチ群LDL中のデータとデータラッチ群UDL中のデータとのANDを計算し、この計算を全8カラムについて繰り返す(ステップS24)。8つのカラムの順序は任意であるが、最小番号から最大番号の順が典型的である。演算の結果は、処理中のカラム用のデータラッチ群LDLに保持される。具体的には、以下の通りである。まず、各単位構造群において、いずれか1つのカラム(例えばCOL0、COL8、COL16、COL24…)について、各データラッチUDL(例えばUDL0)中の1ビットデータと各データラッチLDL(例えばLDL0)の対応する1ビットデータとのANDが、それぞれ、I/O0〜I/O7用の演算回路Yにより算出される。演算の結果は、対応する(同じ)カラムの各データラッチLDL0に保持される。この結果、処理中のカラム(例えばCOL0)のデータラッチ群LDL(例えばデータラッチ群LDL0)には、データ(例えばデータD0)が再び書き込まれる。同様にして、各単位構造群において、残りのカラムについても、AND演算および結果の保持が繰り返される。この繰り返しの最中、図10の単位構造群では、COL2についてのANDは全ビットについて“0”である。その他のCOL1、3〜7についての論理和は、全ビットについて“1”である。
【0051】
次に、半導体記憶装置1は、検索データに対して上書きされるデータ(N2)を受け取る(ステップS25)。この更新データは、検索データと同じ大きさ、すなわち1バイトを有する。受け取られたデータは、例えば、検索回路3c中のレジスタ(図示せず)に保持される。次いで、更新データは、レジスタから出力されて、データバスYIOを経て全カラムについてのデータラッチ群XDLに保持される(ステップS26)。このために、全単位構造USにおいてスイッチ26および全スイッチ22をオンして、更新データN2をデータラッチ群XDLに同時に供給することが可能である。このことは、更新データN2を効率的に保持することに繋がる。COL0〜COL7用の単位構造群についてのステップS26の結果は、図11に示されている。
【0052】
次に、演算回路Yは、各単位構造群中の1つのカラムについてデータラッチ群XDL中のデータとデータラッチ群UDL中のデータの反転された形態とのORを計算し、この計算を全8カラムについて繰り返す(ステップS27)。8つのカラムの順序は任意であるが、最小番号から最大番号の順が典型的である。演算の結果は、処理中のカラム用のデータラッチ群XDLに上書きされる。具体的には、ステップS24等と同様に、いずれか1つのカラムずつ全カラムについて、対応するビット同士についてのOR演算および結果の保持が繰り返される。この結果、COL0〜COL7用の単位構造群については、図12に示されるように、COL2用のデータラッチ群XDLは更新データN2を保持し、その他のCOL0、1、3〜7用のデータラッチ群XDLは、全てが“0”のデータを保持する。
【0053】
次に、演算回路Yは、各単位構造群中の1つのカラムについてデータラッチ群UDL中のデータとデータラッチ群LDL中のデータとのANDを計算し、この計算を全8カラムについて繰り返す(ステップS28)。8つのカラムの順序は任意であるが、最小番号から最大番号の順が典型的である。演算の結果は、処理中のカラム用のデータラッチ群XDLに上書きされる。具体的には、ステップS24等と同様に、いずれか1つのCOLずつ全カラムについて、対応するビット同士についてのAND演算および結果の保持が繰り返される。この結果、COL0〜COL7用の単位構造群については、図13に示されるように、COL2用のデータラッチ群XDLは更新データN2を保持し、その他のCOL0、1、3〜7用のデータラッチ群XDLは、それぞれ元々のデータD0、D1、D3〜D7を保持する。
【0054】
次に、半導体記憶装置1は、検索および更新のために処理されている1ページ分のデータを書き込むためのプログラムコマンドおよび書き込まれるべきアドレスを外部より受け取る(ステップS31)。このコマンドに応答して、制御回路4は、ビット線制御回路3、ワード線制御回路11、電圧生成回路12の制御を通じて、指定されたアドレスのページに、データラッチ群XDLに保持されている計ページサイズのデータを書き込む(ステップS32)。
【0055】
以上説明したように、第2実施形態に係る半導体記憶装置は、第1実施形態と同じくデータラッチXDL、UDL、LDL、演算回路Yに加えて、検索回路3cを含んでいる。さらに第2実施形態に係る検索回路3cは、タグラッチ34中のデータに基づいたデータをデータラッチXDL、LDL等に書き込むための仕組みを有する。このため、CAMのように、アドレスではなく検索データによりデータを指定し、見つかったデータを上書きすることをハードウェアにより実現できる。ハードウェアによる検索は、従来のソフトウェアによる検索に比べて高速で完了可能である。また、検索回路3cは極簡単なロジック回路であり、データラッチXDL、UDL、LDL、演算回路Yは本願の技術とは無関係に元々設けられているので、それらの有効活用により、回路面積の増加はほとんどない。
【0056】
その他、各実施形態は、上記のものに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の実施形態が抽出され得る。例えば、上記各実施形態に示される全構成要件から幾つかの構成要件が削除されても、この構成要件が削除された構成が実施形態として抽出され得る。
【符号の説明】
【0057】
1…半導体記憶装置、2…メモリセルアレイ、3…ビット線制御回路、4…制御回路、6…データ回路、7…I/Oインターフェース、11…ワード線制御回路、12…電圧生成回路、13…入力インターフェース、14…レディービジーインターフェース、21〜24、26…スイッチ、31、32、33、41、42、43、51〜53…MOSFET、LDL…ローカル検知線、DL…検知線。

【特許請求の範囲】
【請求項1】
メモリセルとそれぞれ接続されたセンスアンプと、
前記センスアンプと接続された第1線と、
前記第1線と接続された第1ラッチと、
前記第1線と接続された第2ラッチと、
前記第1線と接続され、前記第1および第2ラッチ中のデータに対する論理演算を行なう演算回路と、
を具備する複数の単位構造と、
各々が複数の単位構造の相違する一部を含んだ複数の単位構造群とそれぞれ接続され、対応する前記単位構造群において少なくとも1つの前記第1線の電位がLレベルであることを検知する複数の第1検知回路と、
少なくとも1つの前記第1検知回路によって前記検知がなされたことを検知する第2検知回路と、
を具備することを特徴とする半導体記憶装置。
【請求項2】
前記単位構造が、複数の前記センスアンプと、複数の前記第1ラッチと、複数の前記第2ラッチと、を具備し、
前記単位構造中の相違する複数の前記第1線に接続された複数の第1ラッチが1つのカラムのための組を構成し、
前記単位構造中の相違する複数の前記第1線に接続された複数の第2ラッチが1つのカラムのための組を構成し、
前記演算回路が、1つの前記第1ラッチと、前記1つの第1ラッチと同じカラムのための1つの前記第2ラッチとに対する論理演算を行い、
前記第1検知回路が複数のカラムの各々について前記検知を行なう、
ことを特徴とする請求項1の半導体記憶装置。
【請求項3】
前記第1ラッチが、前記半導体記憶装置の外部からのデータを保持し、
前記第2ラッチが、前記メモリセルからのデータを保持し、
前記演算回路が、共通するカラムのための前記第1および第2ラッチ中のデータの排他的論理和を算出し、
前記第1検知回路が、一端を選択的に接地され且つ他端を選択的にHレベルにプリチャージされ且つ導通を制御する端子において複数の前記演算回路の出力をそれぞれ受け取る複数の第1トランジスタを具備する、
ことを特徴とする請求項2の半導体記憶装置。
【請求項4】
前記半導体記憶装置が、前記複数の検知回路によって前記検知がなされたことを示す値をそれぞれ保持する複数の第3ラッチをさらに具備し、
前記単位構造が、前記第1線と接続された複数の第4ラッチをさらに具備し、
前記単位構造群が、一端を選択的に接地され且つ他端を選択的にHレベルにプリチャージされ且つ導通を制御する端子において前記第3ラッチの出力を受け取る複数の第2トランジスタをさらに具備する、
ことを特徴とする請求項3の半導体記憶装置。
【請求項5】
前記第1ラッチが、前記半導体記憶装置の外部からのデータを保持し、
前記第2ラッチが、前記メモリセルからのデータを保持し、
前記演算回路が、共通するカラムのための前記第1および第2ラッチ中のデータの排他的論理和を算出し、
前記第4ラッチが、前記排他的論理和に基づいた値を前記第2トランジスタを介して受け取り且つ保持する、
ことを特徴とする請求項4の半導体記憶装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate