(57)【要約】【課題】自動書き込み動作時間を可及的に短縮することを可能にする。【解決手段】複数の不揮発性メモリセルを有するメモリセルアレイ４と、複数の前記不揮発性メモリセルにデータを書き込む際に、書き込み対象データを検索し、前記書き込み対象データが存在するアドレスを出力するアドレス検索回路３５と、前記アドレス検索回路から出力される前記アドレスに従って、前記メモリセルに前記書き込み対象データを書き込むように制御する制御回路２０と、を備えている。【選択図】図１
2009146555.tif 000002
【特許請求の範囲】
【請求項１】
複数の不揮発性メモリセルを有するメモリセルアレイと、
複数の前記不揮発性メモリセルにデータを書き込む際に、書き込み対象データを検索し、前記書き込み対象データが存在するアドレスを出力するアドレス検索回路と、
前記アドレス検索回路から出力される前記アドレスに従って、前記メモリセルに前記書き込み対象データを書き込むように制御する制御回路と、
を備えていることを特徴とする不揮発性半導体記憶装置。
【請求項２】
入力データを保持し、前記入力データ中に前記書き込み対象データが存在するか否かを判定する判定機能を有しているデータバッファを更に備え、
前記アドレス検索回路は、前記データバッファの判定結果に基づいて、前記書き込み対象データが存在する前記アドレスを出力することを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
入力データを保持する第１データバッファと、
前記書き込み対象データに応じて、前記第１データバッファに保持された入力データを変換するデータ変換回路と、
前記データ変換回路によって変換された入力データを保持するとともに、この保持した入力データ中に前記書き込み対象データが存在するか否かを判定する判定機能を有している第２データバッファと、を更に備え、
前記アドレス検索回路は、前記第２データバッファの判定結果に基づいて、前記書き込み対象データが存在する前記アドレスを出力することを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【請求項４】
前記書き込み後にベリファイ判定を行うベリファイデータ制御回路を備え、前記ベリファイデータ制御回路は、ベリファイ判定の対象ビットが存在するデータはベリファイデータを反転して前記データバッファに出力し、ベリファイ判定の非対象ビットおよびベリファイで一度パスしたビットは、パスデータを前記データバッファに出力することを特徴とする請求項２または３に記載の不揮発性半導体記憶装置。
【請求項５】
複数の前記不揮発性メモリセルは４値レベルのデータを記憶することが可能であり、前記制御回路は、前記４値レベルのデータのうち、閾値電圧が最も高いレベルおよび閾値電圧が最も低いレベルのデータを除いた２つのレベルのデータを、同時に前記不揮発性メモリセルに書き込むように制御する請求項１乃至請求項４のいずれか１項に記載の不揮発性半導体記憶装置。
【請求項６】
入力データを保持する第１データバッファと、
前記書き込み対象データに応じて、前記第１データバッファに保持された入力データを多値圧縮して変換し、この変換されたデータを更に半分に圧縮した第１圧縮データと、残りの半分である第２圧縮データとを出力するデータ変換回路と、
前記データ変換回路から出力される前記第１圧縮データを保持するとともに、前記第１圧縮データ中に前記書き込み対象データが存在するか否かを判定する判定機能を有している第２データバッファと、を更に備え、
前記アドレス検索回路は、前記データバッファの判定結果に基づいて、前記書き込み対象データが存在する前記アドレスを出力することを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【請求項７】
前記書き込み対象データの種類を示すデータパターン信号と、前記第２データバッファに保持された前記第１圧縮データと、前記データ変換回路から出力される第２圧縮データとに基づいて、前記第２データバッファに保持された前記第１圧縮データが前記書き込み対象データであるときはマスクしないで出力し、前記書き込み対象データであるときはマスクして出力する書き込みデータマスク回路を更に備え、
前記書き込みデータマスク回路の出力と、前記アドレス探索回路から出力されるアドレスに基づいて書き込みが行われることを特徴とする請求項６記載の不揮発性半導体記憶装置。
【請求項８】
ベリファイ読み出しを行うベリファイ用センスアンプと、
前記ベリファイ用センスアンプの出力と、前記第２圧縮データと、前記データパターン信号と、に基づいて、ベリファイ判定の対象ビットが存在しないデータの場合のみベリファイが行われないように、前記ベリファイ用センスアンプの出力をマスクするセンスアンプデータマスク回路と、
を備えていることを特徴とする請求項６または７に記載の不揮発性半導体記憶装置。
【請求項９】
前記第２データバッファは、前記第１圧縮データを保持するとともに、前記第１および第２圧縮データとに基づいて、前記第１圧縮データ中に前記書き込み対象データが存在するか否かを判定し、この判定結果と前記書き込み対象データの種類を示すデータパターン信号とに基づいて前記アドレス検索回路に判定信号を送り、前記書き込み対象データが存在する前記アドレスを出力させることを特徴とする請求項６乃至８のいずれかに記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
一般に、フラッシュメモリに代表される不揮発性半導体記憶装置には、ワード単位でメモリセルに書き込みができる自動ワード書き込み動作と、書き込み時間を短縮化するための複数ワードの書き込みを可能にする自動ページ書き込み動作がある（例えば、特許文献１参照。）。
【０００３】
近年、不揮発性半導体記憶装置の大容量化に伴い、一回の自動ページ書き込み動作で書き込みできるワード数も、従来の８ワード、１６ワード、３２ワードから、２５６ワード、５１２ワードとすることにより、全体の書き込み時間の短縮化を図っている。
【０００４】
従来の不揮発性半導体記憶装置の自動ページ書き込み動作、例えば８ワード自動ページ書き込み動作においては、まず、ページアドレスでデコードされた、４ページ分のデータがデータバッファから出力され、書き込みが行われる。先頭ページの書き込み時間が終了すると、アドレス生成回路がアドレスを＋４だけ増加し、ページアドレスを次の４ページ分のデータ領域に移して、次の書き込みデータをデータバッファから読み出して、同様に書き込み動作を行う。
【特許文献１】特開２００６−１７２６８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、自動書き込み動作時間を可及的に短縮することができる不揮発性半導体記憶装置を提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様による不揮発性半導体記憶装置は、複数の不揮発性メモリセルを有するメモリセルアレイと、複数の前記不揮発性メモリセルにデータを書き込む際に、書き込み対象データを検索し、前記書き込み対象データが存在するアドレスを出力するアドレス検索回路と、前記アドレス検索回路から出力される前記アドレスに従って、前記メモリセルに前記書き込み対象データを書き込むように制御する制御回路と、を備えていることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、自動書き込み動作時間を可及的に短縮することができる。
【発明を実施するための最良の形態】
【０００８】
従来、自動ページ書き込み動作においては、書き込みデータが存在しない場合、すなわち書き込みデータが無いので書き込みは行われない場合も、書き込みデータが存在するときと同様の書き込み時間だけ経過させ、その後、アドレスを＋４だけ増加させる。全てのページに対して書き込みが行われた後、アドレスを、ページ書き込みを行う先頭アドレスに戻し、ベリファイ動作に移る。このベリファイ動作の場合も、書き込みのデータの有無に関わらず、アドレスの増加動作が毎回発生する。
【０００９】
ページ数が少ない場合、書き込みデータの有無に関わらず、全てのページアドレスのインクリメントが挿入されても、トータルの書き込み動作時間にはさほど影響が出ないが、ページ数が多くなった場合は無視できなくなり、トータルの書き込み動作時間が長くなるという問題があった。
【００１０】
また、従来の自動消去動作モードにおいても、例えば消去ベリファイ動作、過消去ベリファイ動作、過消去セルの再書き込み動作で、ページアドレスの増加動作は、対象ビットの有無に関わらず、毎回発生していた。このため、トータルの消去動作時間が長くなるという問題があった。
【００１１】
出願人が見出した上記課題に対応して、本発明の実施形態を以下に図面を参照して詳細に説明する。
【００１２】
（第１実施形態）
本発明の第１実施形態による不揮発性半導体記憶装置を図１に示す。本実施形態の不揮発性半導体記憶装置は、複数のメモリブロック２と、読み出し用センスアンプ回路１２と、自動動作用センスアンプ回路１４と、自動動作制御システム２０と、データ制御システム３０と、ＣＥ端子１０１と、ＷＥ端子１０２と、アドレス入力端子１０３と、同時に１６ビットデータの入出力が可能なデータ入出力端子１０４と、を備えている。
【００１３】
メモリブロック２のそれぞれには、メモリセルアレイ４と、メモリセルアレイ４の周辺に設けられたメモリデコーダ６とが設けられている。メモリデコーダ６は、例えば、ロウデコーダ、カラムデコーダ等である。メモリセルアレイ４は、例えば４値データを記憶することのできる、マトリクス状に配列された複数のメモリセルを有している。
【００１４】
本実施形態においては、不揮発性半導体記憶装置はＮＯＲ型フラッシュメモリであって、各メモリセルは、半導体基板上で互いに離間して形成されたソース領域およびドレイン領域と、上記ソース領域と上記ドレイン領域との間のチャネルとなる半導体基板の領域上に形成されたトンネル絶縁膜と、このトンネル絶縁膜上に形成されたフローティングゲートと、このフローティングゲート上に形成された電極間絶縁膜と、この電極間絶縁膜上に形成された制御ゲートとを備えている。
【００１５】
制御ゲートとドレイン領域に高い正の電圧を印可し、ソース領域と半導体基板とを接地電位とすることにより、半導体基板からトンネル絶縁膜を通ってフローティングゲートに電子が注入されて蓄積され、これによりメモリセルの閾値が変化する。本実施形態においては、４値データを、閾値の低い方向から順番にデータ（１１）、（１０）、（００）、（０１）と表す。すなわち、データ（１１）は、フローティングゲートに電子が蓄積していない状態（消去状態）を表している。
【００１６】
自動動作制御システム２０は、コマンド判定回路２２と、アドレス生成回路２４と、自動動作制御回路２６とを備えている。
【００１７】
データ制御システム３０は、２５６ページのデータを保持することのできる第１データバッファ３１と、データ変換回路３２と、データ入力選択回路３３と、２５６ページのデータ保持することができるデータ保持回路およびデータ判定回路を含む第２データバッファ３４と、書き込みデータの存在するアドレスを自動検索し出力する自動アドレス検索回路３５（以下、ＡＡＳ回路３５ともいう）と、アドレス選択回路３６と、書き込みデータ多値圧縮回路３７と、ベリファイデータ制御回路３８と、ベリファイデータ出力デコード回路３９とを備えている。
【００１８】
自動書き込み動作
次に、本実施形態の不揮発性半導体記憶装置の構成および動作を、自動ページ書き込み動作を例にとって説明する。この自動ページ書き込み動作の一例として、データ（１０）の書き込みとそのベリファイ、続いてデータ（００）の書き込みとそのベリファイ、最後にデータ（０１）の書き込みとそのベリファイを行う制御シーケンスとして説明する。
【００１９】
まず、ＣＥ端子１０１からチップイネーブル信号を入力し、不揮発性半導体記憶装置を起動する。自動ページ書き込み動作を行う前に、自動ページ書き込み動作が行われるメモリセルアレイ４の領域の各メモリセルは、消去状態（データ（１１））になっているものとする。
【００２０】
次に、自動ページ書き込みのコマンドをアドレス端子１０３およびデータ入出力端子１０４から入力する。すると、コマンド判定回路２２が自動ページ書き込み動作を認識し、自動動作制御回路２６に、自動ページ書き込み動作の制御開始を通知するコマンド割り込み信号を出力する。
【００２１】
続けて、書き込みアドレスおよび書き込みデータを、アドレス端子１０３およびデータ入出力端子１０４から入力する。すると、アドレス生成回路２４では、自動動作制御回路２６から入力されるアドレス制御信号により、書き込みアドレスの先頭アドレスをラッチするとともに、書き込みデータを格納する為のカラムアドレスＡを、データ制御システム３０の第１データバッファ３１に出力する。
【００２２】
書き込みデータは、コマンド入力毎にコマンド判定回路２２で生成されるラッチクロックＣＬＫＡのパルスにより、入力データバスを介して、カラムアドレスＡが示す第１データバッファ３１の領域に送られてラッチされる。カラムアドレスＡは、データラッチ毎に、自動インクリメントされる。
【００２３】
第１データバッファ３１に全てのページの書き込みデータが格納されると、アドレス生成回路２４は、ページ書き込みを行う対象となるブロックアドレス、ロウアドレス、および先頭のページアドレスをカラムアドレスＡに示す。第１データバッファ３１には、各ページを１６ビットとして、２５６ページのデータＰａｇｅ０〜Ｐａｇｅ２５５のデータが格納されている。
【００２４】
第１データバッファ３１に格納された書き込みデータから、書き込むべきデータ（１０）を検索するために、上記格納された書き込みデータがデータ変換回路３２によって変換される。このデータ変換回路３２によって変換されたデータが、データ入力選択回路３３を介して第２データバッファ３４の保持回路に格納される。このデータ変換は、以下のように行われる。
【００２５】
まず、書き込むべきデータ（書き込み対象データ）がデータ（１０）であるので、自動動作制御回路２６からデータ変換回路３２に送られてくるデータパターン選択信号［１：０］は、“１０”とする。なお、書き込むべきデータがデータ（００）、データ（０１）である場合は、図２に示すように、データパターン選択信号［１：０］はそれぞれ“００”、“０１”となる。データパターン選択信号［１：０］が“１１”の場合は、後述する状態マルチ書き込みの場合である。
【００２６】
他方、第１データバッファ３１から１回の転送で１６ページ（２５６ビット）のデータ群がデータバスを介して送られ、そしてこの転送が１６回行われる。すなわち、データ群Ｐａｇｅ０〜Ｐａｇｅ１５が送られてきた後、データ群Ｐａｇｅ１６〜Ｐａｇｅ３１が送られてくる。このデータ転送が１５回行われた後、最後にデータ群Ｐａｇｅ２４０〜Ｐａｇｅ２５５がデータ変換回路３２に送られてくる。
【００２７】
第１バッファ回路３１から１回の転送で送られてくるデータ群のうち前半の８ページ分のデータ群を上位ビットデータ群とし、後半の８ページ分のデータ群を下位ビットデータ群とする。例えば、１回の転送で送られてくるデータ群をＰａｇｅ０〜Ｐａｇｅ１５とすると、上位ビットデータ群はデータ群Ｐａｇｅ０〜Ｐａｇｅ７となり、下位ビットデータ群はデータ群Ｐａｇｅ８〜Ｐａｇｅ１５となる。
【００２８】
そして、１回の転送で送られてくる例えば上位ビットデータ群Ｐａｇｅ０〜Ｐａｇｅ７と下位ビットデータ群Ｐａｇｅ８〜Ｐａｇｅ１５におけるそれぞれの順序が同じデータの組、例えばデータＰａｇｅ０とデータＰａｇｅ８の組を「多値圧縮ペア」と呼ぶ。したがって、データＰａｇｅ１とデータＰａｇｅ９の組も多値圧縮ペアとなり、データＰａｇｅ２とデータＰａｇｅ１０の組も多値圧縮ペアとなる。
【００２９】
また、データＰａｇｅ２４１とデータＰａｇｅ２４９の組も多値圧縮ペアとなり、データＰａｇｅ２４８とデータＰａｇｅ２５５の組も多値圧縮ペアとなる。そして、多値圧縮ペアのうち上位ビットデータ群に含まれるデータを上位ビットデータと呼び、下位ビットデータ群にふくまれるデータを下位ビットデータと呼ぶ。
【００３０】
この多値圧縮ペア、例えばデータＰａｇｅ０とＰａｇｅ８は、それぞれ１６ビットのデータであるから、図３に示すように、それぞれ、１６個のバイナリビットＩＯ＜０＞，ＩＯ＜１＞，・・・，ＩＯ＜１５＞から構成されているものとする。ここで、各ＩＯ＜ｉ＞（ｉ＝０，・・・，１５）は、ｉ番目の入出力端子１０４から入力されたバイナリビットを表している。
【００３１】
そして、多値圧縮ペアのうち、上位ビットデータおよび下位ビットデータの同一の入出力端子から入力されたバイナリビットを、それぞれ上位ビット（以下、ＵＢともいう）および下位ビット（以下、ＬＢともいう）と呼び、これらのビットを「多値圧縮ビットペア」と呼ぶ。
【００３２】
データ変換回路３２においては、データパターン選択信号が“００”、“１０”の場合は図４（ａ）に示すように、データ変換回路３２に入力されるデータ群における多値圧縮ペアの多値圧縮ビットペアを構成する上位ビットと下位ビットは、その組み合わせによって出力される多値圧縮ビットペアの上位ビットデータと下位ビットデータのビット値を換え、出力する。
【００３３】
例えば、入力された多値圧縮ビットペアの上位ビットＵＢが「０」、下位ビットＬＢが「０」のときは、出力する多値圧縮ビットペアの上位ビットＵＢは換えずに「０」、下位ビットＬＢは換えて「１」とする。入力された多値圧縮ビットペアの上位ビットＵＢが「０」、下位ビットＬＢが「１」のときは、出力する多値圧縮ビットペアの上位ビットＵＢは換えて「１」、下位ビットＬＢは換えずに「１」とする。
【００３４】
入力された多値圧縮ビットペアの上位ビットＵＢが「１」、下位ビットＬＢが「０」のときは、出力する多値圧縮ビットペアの上位ビットＵＢおよび下位ビットＬＢはそれぞれ換えない。また、入力された多値圧縮ビットペアの上位ビットＵＢが「１」、下位ビットＬＢが「１」のときも、出力する多値圧縮ビットペアの上位ビットＵＢおよび下位ビットＬＢはそれぞれ換えない。
【００３５】
すなわち、データパターン選択信号が“００”または“１０”の場合（書き込むべきデータが（００）または（１０）の場合）は、入力された多値圧縮ビットペアの上位ビットＵＢおよび下位ビットＬＢがそれぞれ「０」および「０」のときは出力する多値圧縮ビットペアの下位ビットＬＢのみを「１」に換えて出力する。入力された多値圧縮ビットペアの上位ビットＵＢおよび下位ビットＬＢがそれぞれ「０」および「１」のときは出力する多値圧縮ビットペアの上位ビットＵＢのみを「１」に換えて出力する。入力される多値圧縮ビットペアがその他のときは、出力する多値圧縮ビットの上位ビットＵＢおよび下位ビットＬＢは換えないで出力する。
【００３６】
また、データパターン選択信号が“０１”の場合は、図４（ｂ）に示すように、データ変換回路３２に入力されるデータ群の多値圧縮ペアの多値圧縮ビットペアを構成する上位ビットＵＢと下位ビットＬＢは、その組み合わせによって出力される多値圧縮ビットペアの上位ビットデータと下位ビットデータのビット値を換え、出力する。
【００３７】
すなわち、データパターン選択信号が“０１”場合（書き込むべきデータが（０１）の場合）は、入力された多値圧縮ビットペアの上位ビットＵＢおよび下位ビットＬＢがそれぞれ「０」および「１」のとき、またはそれぞれ「１」および「１」のときは出力する多値圧縮ビットの上位ビットＵＢおよび下位ビットＬＢは換えないで出力する。入力された多値圧縮ビットペアの上位ビットＵＢおよび下位ビットＬＢがそれぞれ「０」および「０」のときは出力する多値圧縮ビットペアの上位ビットＵＢおよび下位ビットＬＢを「１」に換え、入力された多値圧縮ビットペアの上位ビットＵＢおよび下位ビットＬＢがそれぞれ「１」および「０」のときは出力する多値圧縮ビットペアの上位ビットＵＢは換えずに「１」、下位ビットＬＢは「１」に換え、出力する。
【００３８】
このようなデータ変換を行う理由は、後述する状態マルチ書き込み動作を実現する際にデータ（００）とデータ（１０）の対象ビットの情報が必要なことと、第２データバッファ３４のデータ判定回路の構成を簡略化するためである。すなわち、多値圧縮ビットペア「００」を変換後に「００」として出力すると、データ判定回路における、データ（１０）とデータ（００）を区別する論理が増加するためである。
【００３９】
このようにして変換されたデータは、データ入力選択回路３３を介して第２データバッファ３４に転送される。なお、データ入力選択回路３３は、自動動作制御回路２６から送られてくる経路選択信号[1:0]または信号ＡＰＲＧ[1:0]に基づいて、第１データバッファ３１からデータ変換回路３２を介して転送されてくるデータ群およびベリファイデータ制御回路３８から転送されてくるデータ群のいずれか一方を選択し、選択したデータ群を第２データバッファ３４に転送する。
【００４０】
１回の転送で１６ページ（２５６ビット）のデータ群がデータバスを介して送られ、そしてこの転送が１６回行われる。すなわち、データ変換回路３２によって変換されたデータ群Ｐａｇｅ０〜Ｐａｇｅ１５が送られてきた後、データ群Ｐａｇｅ１６〜Ｐａｇｅ３１が送られてくる。このデータ転送が１５回行われた後、最後にデータ群Ｐａｇｅ２４０〜Ｐａｇｅ２５５がデータ変換回路３２から送られてくる。
【００４１】
データ変換回路３２からのデータを第２データバッファ３４でラッチする場合、第２データバッファ３４へのラッチアドレスは、カラムアドレスＡ→カラムアドレスＢ（ＡＡＳＥＮ＝０）経由でＰａｇｅ０〜Ｐａｇｅ１５のときカラムアドレスＡ[4:1]＝００００、Ｐａｇｅ１６〜Ｐａｇｅ３１のときカラムアドレスＡ[4:1]＝０００１、Ｐａｇｅ２４０〜Ｐａｇｅ２５５のときカラムアドレスＡ[4:1]＝１１１１と、インクリメントした値となる。なお、Ｐａｇｅ０〜Ｐａｇｅ１５は、一回で同時ラッチされるため、Ａ[0]はDon't Careとなる。
【００４２】
第２データバッファ３４の一具体例の構成を図５に示す。第２データバッファ３４は、１６個のデータバッファ回路３４００〜３４０１５を備えている。各データバッファ回路３４０ｉ（ｉ＝０，・・・，１５）は、１６個のデータ保持回路３４１０〜３４１１５と、第１乃至第４データ判定回路３４３１，３４３２，３４３３，３４３４と、判定結果出力回路３４５と、を備えている。各データ保持回路３４１ｉ（ｉ＝０，・・・，１５）は１６ビットのデータを保持することが可能である。
【００４３】
データ変換回路３２から第１回目の転送で送られてきたデータ群Ｐａｇｅ０〜Ｐａｇｅ１５は、データバッファ回路３４００のデータ保持回路３４１０〜３４１１５にそれぞれ格納される。データ変換回路３２から第ｉ（ｉ＝１，・・・，１６）回目の転送で送られてきたデータ群Ｐａｇｅ（１６×（ｉ−１））〜Ｐａｇｅ（１６×ｉ−１）は、データバッファ回路３４０ｉのデータ保持回路３４１０〜３４１１５にそれぞれ格納される。
【００４４】
なお、データバッファ回路３４０ｉ（ｉ＝０，・・・，１５）の選択は、アドレス選択回路３６から送られてくるカラムアドレスＢをデコードしたデコード信号ＲｏｗＤＥＣｉに基づいて行われる。データの格納は自動動作制御回路２６から送られてくるラッチパルスＣＬＫＢと、制御信号ＵＢＥＮ１，ＬＢＥＮ１とに基づいて行われる。なお、図５に示すように、例えばデータバッファ回路３４００のデータ保持回路３４１０〜３４１３およびデータ保持回路３４１８〜３４１１１に保持されるデータ群のカラムアドレスＢは、メモリセルアレイに書き込まれるべきデータのアドレス番地であって「０００００」となり、データ保持回路３４１４〜３４１７およびデータ保持回路３４１１２〜３４１１５に保持されるデータ群のカラムアドレスＢは「００００１」となる。
【００４５】
第１データ判定回路３４３１は、この第１データ判定回路３４３１が含まれているデータバッファ回路内のデータ保持回路３４１０〜３４１３内に保持されているデータ群に基づいて、書き込むべきデータ（すなわちデータ「０」）が存在するか否かを判定する。
【００４６】
第２データ判定回路３４３２は、この第２データ判定回路３４３２が含まれているデータバッファ回路内のデータ保持回路３４１８〜３４１１１内に保持されているデータ群に基づいて書き込むべきデータが存在する否かを判定する。
【００４７】
第３データ判定回路３４３３は、この第３データ判定回路３４３３が含まれているデータバッファ回路内のデータ保持回路３４１４〜３４１７内に保持されているデータ群に基づいて書き込むべきデータが存在する否かを判定する。
【００４８】
第４データ判定回路３４３４は、この第４データ判定回路３４３４が含まれているデータバッファ回路内のデータ保持回路３４１１２〜３４１１５内に保持されているデータ群に基づいて書き込むべきデータが存在する否かを判定する。
【００４９】
各データ判定回路は判定の対象とするデータ群の各ビットが「１」のときは、書き込むべきデータはなしと判定し、ビットに「０」が存在するときの書き込むべきデータがあると判定する。
【００５０】
データバッファ回路３４０ｉ（ｉ＝０，・・・，１５）の判定結果出力回路３４５は、第１データ判定回路３４３１の第１判定結果と制御信号ＵＢＥＮ２とのＡＮＤ演算を行う第１のＡＮＤゲートと、第２データ判定回路３４３２の第２判定結果とＬＢＥＮ２とのＡＮＤ演算を行う第２のＡＮＤゲートと、上記第１および第２のＡＮＤゲートの出力のＯＲ演算を行って第１判定信号ＨＩＴ（２ｉ）を出力する第１のＯＲゲートと、第３データ判定回路３４３３の第３判定結果と制御信号ＵＢＥＮ２とのＡＮＤ演算を行う第３のＡＮＤゲートと、第４データ判定回路３４３４の第４判定結果とＬＢＥＮ２とのＡＮＤ演算を行う第４のＡＮＤゲートと、上記第３および第４のＡＮＤゲートの出力のＯＲ演算を行って第２判定信号ＨＩＴ（２ｉ＋１）を出力する第２のＯＲゲートと、を備えている。
【００５１】
制御信号ＵＢＥＮ１、ＬＢＥＮ１、ＵＢＥＮ２、ＬＢＥＮ２の値と動作との関係を図６に示す。図６において、制御信号ＭＯＤＥＶＥＲＩＦＹは、その値が「０」のときが書き込み動作または第１データバッファから第２データバッファにデータが転送させ、その値が「１」のときはベリファイ動作をさせる。
【００５２】
第１判定信号、例えば第１判定信号ＨＩＴ０の値が「１」ならば、上位ビットデータ群Ｐａｇｅ０〜Ｐａｇｅ３または下位ビットデータ群Ｐａｇｅ８〜Ｐａｇｅ１１に書き込みデータが存在し、その値が「０」ならば上位ビットデータ群Ｐａｇｅ０〜Ｐａｇｅ３および下位ビットデータ群Ｐａｇｅ８〜Ｐａｇｅ１１に書き込みデータがないことを表している。また、第２判定信号、例えば第２判定信号ＨＩＴ１の値が「１」ならば、上位ビットデータ群Ｐａｇｅ４〜Ｐａｇｅ７または下位ビットデータ群Ｐａｇｅ１２〜Ｐａｇｅ１５に書き込みデータが存在し、その値が「０」ならば上位ビットデータ群Ｐａｇｅ４〜Ｐａｇｅ７および下位ビットデータ群Ｐａｇｅ１２〜Ｐａｇｅ１５に書き込みデータがないことを表している。
【００５３】
このように構成された第２データバッファ３４から、書き込むデータが存在する否かを示す判定信号ＨＩＴ０〜ＨＩＴ３１が出力され、自動アドレス検索回路３５（ＡＡＳ回路３５）に送られる。
【００５４】
次に、ＡＡＳ回路３５を図７に示す。ＡＡＳ回路３５は、ＡＡＳメイン回路３５１と、フリップフロップ３５２とを備えている。ＡＡＳメイン回路３５１は、第２データバッファ３４から送られてくる第１および第２判定信号ＨＩＴ０〜ＨＩＴ３１と、自動動作制御回路２６から送られてくる制御信号ＡＤＤＩＮＣＥＮＴに基づいて、出力信号ＡＡＳ＿Ｉを出力する。フリップフロップ３５２は制御信号ＡＤＤＩＮＣＥＮに基づいて動作し、ＡＡＳメイン回路３５１の出力信号ＡＡＳ＿ＩをＡＡＳアドレスとしてアドレス選択回路３６に出力する。
【００５５】
次に、ＡＡＳ回路３５の動作を説明する。第１データバッファ３１から第２データバッファ３４へのデータの転送が終了し、第２データバッファにおいて、データの判定が行われて第１および第２判定信号ＨＩＴ０〜ＨＩＴ３１の値が決定されると、自動動作制御回路２６からＡＡＳ回路３５に制御信号ＡＡＤＩＮＣＥＮが送られるとともに、アドレス選択回路３６に送られる制御信号ＡＡＳＥＮの値が「１」にされる。
【００５６】
すると、ＡＡＳ回路が動作するとともに、アドレス選択回路３６がアドレス制御をＡＡＳ回路３５から出力されるＡＡＳアドレスを選択して出力し、これによりＡＡＳ回路から出力されるＡＡＳアドレスに基づいて書き込み動作（以下、ＡＡＳ書き込み動作ともいう）が行われる。
【００５７】
このＡＡＳアドレスに基づいた書き込み動作のタイミング図を図８に示す。この図８に示すタイミング図においては、判定信号ＨＩＴ１、ＨＩＴ３、ＨＩＴ３１のみが書き込むデータが存在していることを示しているものする。
【００５８】
制御信号ＡＤＤＩＮＣＥＮの立ち上がりエッジで、判定信号ＨＩＴ０〜ＨＩＴ３１に対応したアドレス（判定信号ＨＩＴ１に対応するアドレスは「００００１」、判定信号ＨＩＴ３に対応するアドレスは「０００１１」）をＡＡＳアドレスに出力する。この例では、初めは、判定信号ＨＩＴ１に対応するアドレス「００００１」が出力される。
【００５９】
ＡＡＳアドレスは、アドレス選択回路３６を介してカラムアドレスＢとして、第２データバッファ３４とメモリブロック２に出力される。第２データバッファ３４に対しては、書き込みデータを出力するためのアドレス、メモリブロック２に対しては、データを書き込むアドレスを意味する。第２データバッファ３４は判定信号ＨＩＴ１の対応するＵＢ側（上位ビット側）のデータＰａｇｅ４〜Ｐａｇｅ７、ＬＢ側（下位ビット側）のデータＰａｇｅ１２〜Ｐａｇｅ１５を出力する。
【００６０】
第２データバッファ３４からの出力データは、書き込み多値データ圧縮回路３７によって圧縮され、ＰＲＧデータバスを介してメモリブロック２に送られる。データ（１０）の書き込みは、多値圧縮ビットペアの下位ビットＬＢが０のビットを、ＰＲＧデータバスに１（書き込み対象ビット）として出力し、書き込みが行われる。
【００６１】
すなわち、第２データバッファ３４から１回の転送で送られてくる１２８ビットのデータは、多値データ圧縮回路３７によって半分の６４ビットに圧縮される。書き込み時間が経過後、制御信号ＡＤＤＩＮＣＥＮの立ち上がりエッジで次の書き込みアドレスへスキップする。
【００６２】
例えば、図８においては、判定信号ＨＩＴ１に対応するＡＡＳアドレスの領域にデータ（１０）の書き込みを行った後、判定信号ＨＩＴ３に対応するＡＡＳアドレスへスキップし、このＡＡＳアドレスの領域にデータ（１０）の書き込みを行う。その後、判定信号ＨＩＴ３１に対応するＡＡＳアドレスへスキップし、このＡＳＳアドレスの領域にデータ（１０）を書き込む。順次書き込みを行い、書き込みデータが存在する最後のＡＡＳアドレスを出力するとき、最後のＡＡＳアドレスを実行していることを示すＥＮＤ信号を、ＡＡＳ回路が自動動作制御回路２６に出力する。
【００６３】
自動動作制御回路２６は、ＥＮＤ信号を受け取ることで、最後のアドレスの書き込み時間が経過すると、制御信号ＡＡＳＲＳＴを発生し、ＡＡＳ回路３５を初期化（リセット）する。制御信号ＡＡＳＲＳＴにより、判定信号ＨＩＴ０〜３１の値が「１」となっている一番若いアドレス、つまり、書き込みデータが存在する最初のアドレス００００１を信号ＡＡＳ＿Ｉに出力し、データ（１０）のベリファイのモードに移る。
【００６４】
なお、書き込み対象となるビット（メモリセル）が存在しない場合、波形図を図９に示す。
【００６５】
上述の動作をするＡＡＳメイン回路３５１の一具体例を図１０に示す。ＡＡＳメイン回路３５１は、３２個のカラムアドレスＢに対応して設けられるアドレスドライバ３５４ｉ（ｉ＝０，・・・，３１）と、１６個の判定信号デコーダ３５６ｉ（ｉ＝０，・・・，１５）と、３３個の出力ドライバ３５８ｉ（ｉ＝０，・・・，３２）からなる出力ドライバ回路３５８と、を備えている。
【００６６】
判定信号デコーダ３５６ｉ（ｉ＝０，・・・，１５）は、判定信号ＨＩＴ（２ｉ）、判定信号ＨＩＴ（２ｉ＋１）、および制御信号ＭＯＤＥＶＥＲＩＦＹに基づいて、第１デコード信号をアドレスドライバ３５４２ｉに送出する第１デコーダ回路と、判定信号ＨＩＴ（２ｉ＋１）および制御信号ＭＯＤＥＶＥＲＩＦＹに基づいて第２デコード信号をアドレスドライバ３５４２ｉ＋１に送出する第２デコード回路と、を備えている。
【００６７】
判定信号デコーダ３５６ｉ（ｉ＝０，・・・，１５）の第１デコード回路は、判定信号ＨＩＴ（２ｉ＋１）および制御信号ＭＯＤＥＶＥＲＩＦＹを受けＮＡＮＤ演算する第１のＮＡＮＤゲートと、この第１のＮＡＮＤゲートの出力を反転する第１のインバータと、この第１のインバータの出力および判定信号ＨＩＴ（２ｉ）を受けＮＯＲ演算するＮＯＲゲートと、このＮＯＲゲートの出力を反転する第２のインバータと、からなっている。
【００６８】
また、判定信号デコーダ３５６ｉ（ｉ＝０，・・・，１５）の第２デコード回路は、判定信号ＨＩＴ（２ｉ＋１）、および制御信号ＭＯＤＥＶＥＲＩＦＹの反転信号を受けＮＡＮＤ演算する第２のＮＡＮＤゲートと、この第２のＮＡＮＤゲートの出力を反転する第３のインバータと、を備えている。
【００６９】
各アドレスドライバ３５４ｉ（ｉ＝０，・・・，３１）は、１個のＯＲゲートと、１個のフリップフロップと、第１および第２のＮＡＮＤゲートと、１個のＮＯＲゲートを備えている。アドレスドライバ３５４ｉ（ｉ＝０，・・・，３１）のＯＲゲートは、ＮＯＲゲートの出力とフリップフロップの出力とに基づいてＯＲ演算をし、演算結果をフリップフロップに送出する。このフリップフロップは制御信号ＡＤＤＩＮＣＥＮに基づいて動作し、リセット信号ＡＡＳＲＳＴに基づいてリセットされる。
【００７０】
アドレスドライバ３５４２ｉ（ｉ＝０，・・・，１５）の第１のＮＡＮＤゲートは、フリップフロップの出力の反転した信号と、判定信号デコーダ３５６ｉの第１判定信号デコード回路の出力とに基づいてＮＡＮＤ演算を行い、演算結果を第２のＮＡＮＤゲートおよびＮＯＲゲートのそれぞれの２つの入力端子の一方の入力端子に送出する。なお、アドレスドライバ３５４０のＮＯＲゲートの他方の入力端子には「０」が入力され、第２のＮＡＮＤゲートは他方の入力端子には「１」が入力される。
【００７１】
また、アドレスドライバ３５４２ｉ（ｉ＝１，・・・，１５）の第２のＮＡＮＤゲートの他方の入力端子には、アドレスドライバ３５４２ｉ＋１の第２のＮＡＮＤゲートの出力を反転した信号が入力され、ＮＯＲゲートの他方の入力端子にはアドレスドライバ３５４２ｉ＋１の第２のＮＡＮＤゲートの出力が入力される。
【００７２】
また、アドレスドライバ３５４２ｉ＋１（ｉ＝０，・・・，１５）の第１のＮＡＮＤゲートは、フリップフロップの出力の反転した信号と、判定信号デコーダ３５６ｉの第２判定信号デコード回路の出力とに基づいてＮＡＮＤ演算を行い、演算結果を第２のＮＡＮＤゲートおよびＮＯＲゲートのそれぞれの２つの入力端子の一方の入力端子に送出する。
【００７３】
また、アドレスドライバ３５４２ｉ＋１（ｉ＝０，・・・，１５）の第２のＮＡＮＤゲートの他方の入力端子には、アドレスドライバ３５４２ｉの第２のＮＡＮＤゲートの出力を反転した信号が入力され、ＮＯＲゲートの他方の入力端子にはアドレスドライバ３５４２ｉの第２のＮＡＮＤゲートの出力が入力される。アドレスドライバ３５４３１の第２のＮＡＮＤゲートの出力を反転した信号がＥＮＤ信号となる。
【００７４】
出力ドライバ回路３５８の出力ドライバ３５８ｉ（ｉ＝０，・・・，３１）は、アドレスドライバ３５４ｉのＮＯＲゲートの出力に基づいて駆動され判定信号ＨＩＴｉに対応するＡＡＳアドレスとなる信号ＡＡＳ＿Ｉを出力し、出力ドライバ３５８３２はＥＮＤ信号に基づいて駆動されＡＡＳアドレスが０００００となるＡＡＳ＿Ｉ信号を出力する。
【００７５】
このように構成されたＡＡＳメイン回路３５１の動作を図１１乃至図１３に示す。図１１は第２データバッファ３４に書き込みデータをラッチしたときの状態（一番左のブロックＤ出力が「１」の状態）を示し、図１２は、制御信号ＡＤＤＩＮＣＥＮの立ち上がりエッジで、次に書き込みデータがあるアドレスへスキップした例（左から３個目のブロック）を示し、図１３は、制御信号ＡＤＤＩＮＣＥＮの立ち上がりエッジで、これ以降、書き込みデータが存在するアドレスが無く、終了信号ＥＮＤを出力した状態を示している。
【００７６】
これらの図からわかるように、アドレスドライバの一つが動作しているときは、他のアドレスドライバはＯｆｆ状態になっている。
【００７７】
データ（１０）のベリファイ判定動作
次に、データ（１０）のベリファイ判定動作を説明する。
【００７８】
データ（１０）のベリファイにおいて、ベリファイ判定がＯＫとなるためには、書き込みデータが存在しないこと、すなわち判定信号ＨＩＴ０〜ＨＩＴ３１のすべての値が「０」となり、ＥＮＤ信号の値が「１」となることである。判定信号ＨＩＴ０〜ＨＩＴ３１のすべて値が「０」になるためには、図５に示す第２データバッファ３４において、下位ビット側（ＬＢ側）の全保持データが１となれば良い。
【００７９】
データ（１０）のベリファイ判定動作は、まずＡＡＳ回路３５を使用して、ＬＢ側に書き込みデータが存在する領域のみ、自動動作用センスアンプ回路１４を用いてメモリセルアレイ４からデータを読み出す。この読み出されたデータは、ベリファイデータ制御回路３８に送られる。ベリファイデータ制御回路３８は、図１および図１４に示すように、制御信号ＭＯＤＥＥＶおよび制御信号ＡＡＳＥＮによって動作し、センスアンプ回路１４の出力と、第２データバッファのＡＡＳアドレスに対応する出力データとに基づいてベリファイ判定を行い、その判定結果を、入力選択回路３３を介して第２データバッファ３４に送出する。なお、第２データバッファの出力データは、書き込み対象ビットが０、非対象のビットが１となっている。
【００８０】
ベリファイデータ制御回路３８の一具体例の回路図を図１５に示す。この具体例のベリファイデータ制御回路３８は、書き込みベリファイ（ＭＯＤＥＥＶ＝「０」）のとき動作しセンスアンプ１４の出力を反転するクロックドインバータ３８１と、センスアンプ１４の出力を反転するインバータ３８２と、消去ベリファイ（ＭＯＤＥＥＶ＝「１」）のとき動作しインバータ３８２の出力を反転するクロックドインバータ３８３と、制御信号ＡＡＳＥＮおよび第２データバッファ３４の出力を受けるＮＡＮＤゲート３８４と、クロックドインバータ３８１および３８３のうちの一方の出力とＮＡＮＤゲート３８４の出力とを受けるＮＯＲゲート３８５とを備えている。
【００８１】
メモリブロック２における１回の書き込み動作は６４ビットで行っていたのに対して、ベリファイデータ制御回路３８における１回のベリファイ判定は１２８ビットで行う。つまり、第２判定信号ＨＩＴ１（ＡＡＳアドレス［４：０］＝「００００１」）のベリファイ判定を行う時は、第１判定信号ＨＩＴ０と第２判定信号ＨＩＴ１（ＡＡＳアドレス［４：０］＝「０００００」）のメモリセル領域を１回でベリファイ判定を行っている。
【００８２】
ベリファイ判定されるデータをラッチしている第２データバッファ３４も、ＡＡＳアドレス［４：１］で制御する。つまり、ベリファイ判定時のＡＡＳアドレスのスキップは、ＡＡＳアドレス［４：１］の単位でスキップしている。例えば、第１判定信号ＨＩＴ０または第２判定信号ＨＩＴ１の次のアドレス検索は第１判定信号ＨＩＴ２または第２判定信号ＨＩＴ３に対応するＡＡＳアドレスとなる。これは、図１０に示すＡＡＳメイン回路３５１の制御信号ＭＯＤＥＶＥＲＩＦＹ信号＝「１」で実現する。このときのＡＡＳメイン回路３５１の状態を図１６に示す。
【００８３】
このように本実施形態においては、ＡＡＳ回路３５によるアドレス生成は、書き込みモードやベリファイモードごとに、可変であることが特徴である。
【００８４】
ベリファイデータ制御回路３８は図１５に示したように、ベリファイ判定の対象ビット（＝書き込みの対象ビット）のみ、ベリファイデータＡを反転（書き込みベリファイのとき）して通過させ、書き込み非対象のビットは強制的に１としている。この理由は、自動動作用センスアンプ回路１４は、書き込み対象ビットの書き込みベリファイパス（ベリファイ判定が合格）で０、ベリファイフェイル（ベリファイ判定が不合格）で１を出力し、書き込み非対象のビットは１を出力するためで、書き込み非対象のビットが書き込み対象ビットとならないように対策している。また、一度ベリファイパスしたビットは、書き込み対象ビットにならないように対策している。
【００８５】
なお、ベリファイ動作時には、書き込みモードと同様に、最後のＡＡＳアドレスを実行する時、ＥＮＤ信号の値が「１」となる。
【００８６】
最後のＡＡＳアドレスのビットをベリファイ後、自動動作制御回路２６は制御信号ＡＡＳＲＳＴを発生する。このとき、ＥＮＤ信号の値が「１」であれば、データ（１０）の書き込みが全てパスしたことを意味する（判定信号ＨＩＴがないので、ＥＮＤ信号の値は「１」のままとなる）。フェイルビットがある場合はＥＮＤ信号の値が「０」となり、制御信号ＭＯＤＥＶＥＲＩＦＹの値を「０」にセットして、再度データ（１０）の書き込みを実行する。
【００８７】
書き込み動作とベリファイ動作を繰り返した場合のタイミング図を図１７に示す。図１７は、書き込み動作（判定信号ＨＩＴ１、ＨＩＴ３、ＨＩＴ３１に対応するＡＡＳアドレスのみ）を実行後、ベリファイ動作（判定信号ＨＩＴ１、ＨＩＴ３、ＨＩＴ３１に対応するＡＡＳアドレスのみ）で、判定信号ＨＩＴ３１に対応するＡＡＳアドレスだけフェイルした場合を示している。制御信号ＡＡＳＲＳＴが発生されると、判定信号ＨＩＴ３１だけ１となっているために、ＥＮＤ＝「０」、またＡＡＳ＿Ｉは「１１１１１」を示す。よって、再度書き込みを実行するときは、ＡＡＳアドレス「１１１１１」から実行する（図１７参照）。このようにして、データ（１０）の書き込み動作とベリファイ動作が行われる。
【００８８】
データ（００）の書き込み動作とベリファイ判定
次に、データ（００）の書き込み動作とベリファイ判定を説明する。
【００８９】
データ（１０）の書き込み動作およびベリファイが完了後、データ（００）の書き込み動作に移行するが、第２データバッファ３４には、上位ビット側（ＵＢ側）にデータ（００）の書き込み対象ビットが記憶されているので、データパターン選択信号［１：０］を“００”にセットして、データ（１０）で説明したと同様に、ＡＡＳ回路３５を使用して書き込み動作とベリファイ動作を行う。
【００９０】
データ（０１）の書き込み動作とベリファイ
次に、データ（０１）の書き込み動作とベリファイ判定を説明する。
【００９１】
データ（０１）の書き込みデータは第２データバッファ３４に存在しないので、データパターン選択信号［１：０］を“０１”にセットして、第１データバッファ３１から第２データバッファ３４にデータ転送してから、データ（１０）で説明したと同様に、ＡＡＳ回路３５を使用して書き込み動作とベリファイ動作を行う。
【００９２】
なお、本実施形態においては、第２データバッファ３４は、図１８に示すように、データ保持回路３４１の出力段に、ＰチャネルトランジスタとＮチャネルトランジスタからなるアナログスイッチ（トランスファゲート）４０１を備えている。
【００９３】
しかし、本実施形態の一変形例のように、書き込み動作やベリファイ動作といった異なる動作モードで、異なるデータを、同一出力バスに出力するために、第２データバッファ３４は、図１９に示すように、データ保持回路３４１の出力段に、それぞれがＰチャネルトランジスタとＮチャネルトランジスタからなる２個のアナログスイッチ（トランスファゲート）４１２、４１４を備えていてもよい。すなわち、２ポート出力制御が行われるように構成してもよい。
【００９４】
この場合、スイッチ４１２は、制御信号ＭＯＤＥＶＥＲＩＦＹ＝「０」のとき（書き込みモードのとき）、カラムアドレスＢ[４：０]が示す８ページ分のデータを出力する。またスイッチ４１４は、制御信号ＭＯＤＥＶＥＲＩＦＹ＝「１」のとき（ベリファイモードのとき）、カラムアドレスＢ[４：１]と、制御信号ＵＢＥＮ１＝「１」の示す上位ビット側（ＵＢ側）の８ページ分のデータを出力するか、または、カラムアドレスＢ[４：１]と、制御信号ＬＢＥＮ１＝「１」の示す下位ビット側（ＬＢ側）の８ページ分のデータを出力する。
【００９５】
この２ポート出力制御が行われるときの、書き込み動作とベリファイ動作における各ページと、第２データバッファの出力が送られるデータ出力バスとの関係を図２０に示す。
【００９６】
例えば、図２０に示すように、Ｐａｇｅ４のデータは、書き込み時においては、データバス[０：１５]に出力され、ベリファイ動作時においては、データバス[６４：７９]に出力される。
【００９７】
以上説明したように、本実施形態によれば、書き込み対象ビットが存在しない場合には、そのアドレスを書き込み対象ビットが存在するアドレスまでスキップするように構成されているので、自動書き込み動作時間を可及的に短縮することができる。
【００９８】
（第２実施形態）
次に、本発明の第２実施形態による不揮発性半導体記憶装置を説明する。
【００９９】
本実施形態の不揮発性半導体記憶装置は、第１実施形態の不揮発性半導体記憶装置において、状態マルチ書き込みとベリファイ動作を行う。状態マルチ書き込みは、多値記憶レベルの（１０）レベルと（００）レベルを同時に書き込むモードである。第１実施形態で説明したように、データパターン選択信号［１：０］を“１０”と設定して、第１データバッファ３１から第２データバッファ３４にデータを転送すると、第２データバッファ３４の上位ビット側（ＵＢ側）には（００）レベルの書き込み対象データが、下位ビット側（ＬＢ側）には（１０）レベルの書き込み対象データが格納される。
【０１００】
書き込み動作に入る前に、データパターン選択信号［１：０］を“１１”（状態マルチ書き込みモード）と設定する（図２参照）。図５において、制御信号ＵＢＥＮ２、ＬＢＥＮ２の値が両方とも「１」となり、判定信号ＨＩＴを生成するロジックは、（１０）レベル、（００）レベルの両方の書き込み対象ビットを検索する。ここで、制御信号ＡＡＳＥＮ＝「１」として、第１実施形態におけるＡＡＳ回路３５によるデータ（１０）の書き込みと同様の制御を行うことで、ＡＡＳ回路３５によるアドレススキップで（１０）レベルと（００）レベルを同時に書き込むことが可能となる。
【０１０１】
状態マルチの書き込みデータは、第２データバッファ３４からの出力データを、データ多値圧縮回路３７によって圧縮され、ＰＲＧデータバスを介してメモリブロック２に送られる。状態マルチ書き込みのときは、データ（１０）の書き込みとして、多値圧縮ビットペアの下位ビットＬＢが０のビット、あるいは、データ（００）の書き込みとして、多値圧縮ビットペアの上位ビットＵＢが０のビットを、ＰＲＧデータバスに１（書き込み対象ビット）として出力し、多値記憶レベルの（１０）レベルと（００）レベルを同時に書き込むことが可能となる。
【０１０２】
書き込み終了後に、ベリファイ動作を行う。しかし、（１０）レベルと（００）レベルでは異なる閾値レベルであるため、（１０）レベルのベリファイと、（００）レベルのベリファイとを別々に行う。（１０）レベルのベリファイを行うときは、データパターン選択信号［１：０］を“１０”と設定し、ＡＡＳ回路３５を使用してベリファイを行う。ここでデータパターン選択信号［１：０］が“１０”と設定されているため、図５において判定信号ＨＩＴの生成は、ＵＢＥＮ２＝「０」、ＬＢＥＮ２＝「１」となり、ＬＢ側（データ（１０）側）の書き込み対象ビットが存在するアドレスのベリファイを行う。同様に、データ（００）のベリファイもデータパターン選択信号［１：０］を“００”と設定することで、ＵＢ側（データ（００）側）の書き込み対象ビットが存在するアドレスのみベリファイを行うことができる。
【０１０３】
動作終了の判定は、データ（１０）のベリファイ、データ（００）のベリファイを実行後、データパターン選択信号［１：０］を“００”に設定し（状態マルチ書き込み）、ＥＮＤ信号の値が「１」であれば終了する。フェイルビットが残っている場合は、再度、ベリファイ更新後の、判定信号ＨＩＴから、ＡＡＳ回路３５によるデータ（１０）、データ（００）の同時書き込みを行う。
【０１０４】
以上説明したように、本実施形態によれば、状態マルチ書き込み動作は、第１実施形態と同様に、書き込み対象ビットが存在しない場合には、そのアドレスを書き込み対象ビットが存在するアドレスまでスキップするように構成されているので、自動書き込み動作時間を可及的に短縮することができる。
【０１０５】
（第３実施形態）
次に、本発明の第３実施形態による不揮発性半導体記憶装置を説明する。
【０１０６】
本実施形態の不揮発性半導体記憶装置は、第１実施形態の不揮発性半導体記憶装置において、自動消去動作の消去ベリファイ、過消去ベリファイと過消去セルの再書き込み、および製品テストにおける消去、書き込み動作時にＡＡＳ回路３５を使用したものである。
【０１０７】
ＮＯＲ型フラッシュメモリでは、消去状態の閾値制御が重要である。消去後のメモリセルの閾値は、０Ｖ以上に制御されている必要がある。以下、上述した構成によりこの様な閾値制御を行う方法に関して説明する。
【０１０８】
第１実施形態の不揮発性半導体記憶装置において、第２データバッファ３４の入力側に、制御信号ＡＰＲＧ［１：０］を入力する。制御信号ＡＰＲＧ［１］を第２データバッファ３４の入力データバスの上位ビット側（ＵＢ側（１２８ビット））に、入力バスからデータおよび制御信号ＡＰＲＧ［０］を下位ビット側（ＬＢ側（１２８ビット））に入力する。
【０１０９】
初期設定
初期設定は次のように行われる。まず、制御信号ＡＡＳＥＮ＝「０」、制御信号ＭＯＤＥＶＥＲＩＦＹ＝「０」、データパターン選択信号［１：０］＝“０１”で、制御信号ＡＰＲＧ［１：０］＝“０１”と設定し、第２データバッファ３４でラッチを行う。このときのアドレスは自動動作制御システム２０のアドレス生成回路２４が生成するカラムアドレスＡを使用して、順次、第２データバッファ３４の全ての上位ビット（ＵＢ）側を「０」とラッチする。このとき、下位ビット（ＬＢ）側は全て「１」である。これによりラッチ完了後は、判定信号ＨＩＴ０〜３１は全てデータ有りの判定となっている。
【０１１０】
ここで、データパターン選択信号［１：０］＝“０１”の設定は、メモリセルのレベルが（０１）対象と言う意味では無く、ベリファイの対象ビットの有無を調べるために、第２データバッファ３４のＵＢ側の領域を使用する、と言う意味で設定している。
【０１１１】
消去ベリファイ
消去ベリファイは次のように行われる。まず、制御信号ＭＯＤＥＥＶ＝「１」、制御信号ＭＯＤＥＶＥＲＩＦＹ＝「１」、制御信号ＡＡＳＥＮ＝「１」として、ＡＡＳ回路３５からのＡＡＳアドレスを使用してベリファイを行う。消去モードにおける自動動作用センスアンプ回路１４の判定結果は消去ベリファイパスで「１」、消去ベリファイフェイルで「０」を出力するので、図１５に示すベリファイデータ制御回路３８は、自動動作用センスアンプ回路１４の出力を反転することなく、第２データバッファ３４にラッチする。ここでも、第１実施形態におけるデータ（１０）のベリファイ判定と第２データバッファへのラッチで説明した様に、ベリファイの対象ビットのみ判定結果をスルーし、非対象ビットは「１」を出力する。
【０１１２】
最初の消去ベリファイは、判定信号ＨＩＴ０〜３１は全てデータ有りの状態なので、ＡＡＳ回路３５はスキップなしでＡＡＳアドレスを出力し、ベリファイが行われる。消去ベリファイフェイルビットが存在した場合（判定方法はＶｅｒｉｆｙ後ＡＡＳＲＳＴ挿入し、ＥＮＤ信号が０ならば終了）、消去動作実行→消去ベリファイを繰り返すが、以降のベリファイからベリファイの対象ビットの存在するアドレスのみベリファイを行う。なお、消去ベリファイフェイルビットが存在しない場合は、ベリファイ後、制御信号ＡＡＳＲＳＴを発生し、ＥＮＤ信号が０ならば終了する。
【０１１３】
過消去ベリファイと過消去セルの再書き込み
次に、過消去ベリファイと過消去セルの再書き込みを説明する。まず、初期設定の状態から、制御信号ＭＯＤＥＥＶ＝「０」、制御信号ＭＯＤＥＶＥＲＩＦＹ＝「１」、制御信号ＡＡＳＥＮ＝「１」として、ＡＡＳ回路３５からのＡＡＳアドレスを使用して過消去ベリファイを行う。過消去ベリファイでファイルビットが存在した場合、制御信号ＭＯＤＥＥＶ＝「０」、制御信号ＭＯＤＥＶＥＲＩＦＹ＝「０」、制御信号ＡＡＳＥＮ＝「１」で、ＡＡＳ回路３５からのＡＡＳアドレスを使用して書き込みを行う。
【０１１４】
製品テストにおける消去、書き込み
製品テストにおける、消去動作、書き込み動作も上述したと同様に、ＡＡＳ回路３５を使用してアドレススキップが可能となる。この場合、テスト時間を短縮することができる。
【０１１５】
以上説明したように、本実施形態においても、第１実施形態と同様に、ベリファイの対象ビットが存在しない場合には、そのアドレスをベリファイの対象ビットが存在するアドレスまでスキップするように構成されているので、製品テストにおける、消去、書き込み動作時間を可及的に短縮することができる。
【０１１６】
（第４実施形態）
次に、本発明の第４実施形態による不揮発性半導体記憶装置を説明する。
【０１１７】
本実施形態の不揮発性半導体記憶装置は、第１実施形態の不揮発性半導体記憶装置において、製品テスト時に、書き込みおよび消去後のセル閾値レベルを確認するメモリセルリードテストを行うものである。
【０１１８】
第１実施形態の不揮発性半導体記憶装置において、図１に示すベリファイデータ出力デコードＤＥＣ回路３９を使用する。
【０１１９】
まず、制御信号ＭＯＤＥＶＥＲＩＦＹ＝「１」、制御信号ＡＡＳＥＮ＝「０」、データパターン選択信号［１：０］＝“０１”と設定し、ＡＡＳアドレスは使用せず、自動動作制御回路２６のアドレス生成回路２４で生成したアドレスで、メモリセルのセルリード（自動動作用センスアンプ回路１４の読み出し）を行い、リード結果を第２データバッファ３４に保存する。
【０１２０】
ここで、制御信号ＡＡＳＥＮ＝「０」としているので、図１５に示すベリファイデータ制御回路３８は、センスアンプ１４から送られてくる全ビットをスルーして第２データバッファ３４に保存する。本実施形態では、一回のベリファイリードデータは１２８ビットなので、ベリファイリード後に、図１に示すＰＡＧＥアドレスを使用して、８ページ分のページ読み出しが可能となる。
【０１２１】
なお、ＰＡＧＥアドレスは、アドレス端子に直結し、すなわち外部アドレス端子１０３から出力したいページを選択できる。同様に、ベリファイリード時のメモリセルアレイのアドレスも、外部アドレス端子１０３から入力したブロックアドレス、ロウアドレス、カラムアドレスＢで示した番地のデータをリードする。
【０１２２】
ベリファイデータ出力デコード回路３９の出力が送出されるベリファイページ出力バスは、データ入出力端子１０４から外部に出力可能である。また、ベリファイデータ出力デコード回路３９の出力は、自動動作制御回路２６に送ると、ＢＩＳＴ（Built In Self Test）テストを含むチップ内部で閉じた自動動作テストでも、ページ読み出しが可能となるので、テスト時間の向上が図れる。ＢＩＳＴ時のブロックアドレス、ロウアドレス、カラムアドレスＢ、およびＰＡＧＥアドレスは、自動動作制御回路２６から生成される。
【０１２３】
（第５実施形態）
次に、本発明の第５実施形態による不揮発性半導体記憶装置を説明する。
【０１２４】
第１乃至第４実施形態の不揮発性半導体記憶装置においては、第２データバッファ３４は、６４個のデータ判定回路３４３１〜３４３４と、合計で４０９６ビット分のデータを保持するデータ保持回路３４１０〜３４１１５とを有しており、チップにおける占有面積がかなり大きい。そこで、本実施形態の不揮発性半導体記憶装置においては、第２データバッファを、その占有面積を可及的に小さくした構造とした。
【０１２５】
本実施形態の不揮発性半導体記憶装置を図２３に示す。本実施形態の不揮発性半導体記憶装置は、図１に示す第１実施形態の不揮発性半導体記憶装置と基本的な回路構造はほぼ同じであるが、下記の点で異なっている。
【０１２６】
第１実施形態における、第１データバッファ３１、データ変換回路３２、データ入力選択回路３３、および第２データバッファ３４をそれぞれ、第１データバッファ３１Ａ、データ変換回路３２Ａ、データ入力回路３３Ａ、第２データバッファ３４Ａに置き換えるとともに、書き込みデータ多値圧縮回路３７を書込みデータマスク回路４０および書き込みデータ切り替え回路４２に置き換え、更にセンスアンプデータマスク回路４４を新たに設けた構成となっている。書込みデータマスク回路４０および書き込みデータ切り替え回路４２は、第２データバッファ３４Ａと、メモリブロック２との間に設けられ、センスアンプデータマスク回路４４は自動動作用センスアンプ回路１４とベリファイデータ制御回路３８との間に設けられている。
【０１２７】
第１データバッファ３１Ａは、第１実施形態の第１データバッファ３１と同様に２５６ページのデータを保持することが可能であるが、第１データバッファ３１と異なり、カラムアドレス信号Ｂを受ける。データ変換回路３２Ａは、第１データバッファ３１Ａから第１出力データバスを介して送られてくる２５６ビットのデータを変換し、変換された１２８ビットのデータＤＡＴＡをデータ入力選択回路３３Ａに送るとともに、ＵＢＢデータバスを介して１２８ビットのＵＢＢデータを第２データバッファ３４Ａ、書き込みデータマスク回路４０、およびセンスアンプデータマスク回路４４に送信する。
【０１２８】
次に、本実施形態の不揮発性半導体記憶装置の構成と動作を、自動ページ書き込み動作を例にとって説明する。第１実施形態の場合と同様に、自動ページ書き込みのページ数は２５６ページ、メモリブロック２に一回で書き込みのできるビット数を６４ビット、自動動作用センスアンプ回路１４が一回で読み出しのできるビット数を１２８ビットとして説明する。
【０１２９】
自動ページ書き込みコマンドを入力し、書き込みデータを第１データバッファ３１Ａに保存するまでは、第１実施形態で説明したと同様にして行う。したがって、第１データバッファ３１Ａへの書き込みデータの転送が終了すると、第１データバッファ３１Ａには、各ページを１６ビットとして、２５６ページのデータＰａｇｅ０〜Ｐａｇｅ２５５のデータが格納されている。
【０１３０】
第１データバッファ３１Ａへの書き込みデータの転送の終了後、第１データバッファ３１Ａに格納された書き込みデータから、書き込むべきデータ（例えば、データ（１０））を検索するために、上記格納された書き込みデータがデータ変換回路３２Ａによって変換される。このデータ変換は、以下のように行われる。
【０１３１】
まず、書き込むべきデータがデータ（０１）である場合は、自動動作制御回路２６からデータ変換回路３２Ａに送られてくるデータパターン選択信号[1:0]は“０１”となる。この場合、データ変換回路３２Ａは、図２４（ｂ）に示すように、多値圧縮ビットペア（０１）はＤＡＴＡ信号の値が「０」と変換されてデータ入力選択回路３３Ａに送信される。このとき多値圧縮ビットペア（０１）の上位ビットＵＢは「０」なので、図２４（ｂ）に示すように、ＵＢの反転データであるデータＵＢＢは「１」となり、データ変換回路３２Ａから、第２データバッファ３４Ａ、書き込みデータマスク回路４０、およびセンスアンプデータマスク回路４４に送信される。なお、この場合、他の多値圧縮ビットペア（００）、（１０）、（１１）はＤＡＴＡ信号の値が「１」と変換されてデータ入力選択回路３３Ａに送信される。
【０１３２】
また、書き込むべきデータがデータ（００）またはデータ（１０）である場合は、自動動作制御回路２６からデータ変換回路３２Ａに送られてくるデータパターン選択信号[1:0]は“００”または“１０”となる。この場合、データ変換回路３２Ａは、図２４（ａ）に示すように、多値圧縮ビットペア（００）または（１０）はそれぞれＤＡＴＡ信号の値が「０」と変換され出力される。なお、このとき多値圧縮ビットペア（００）または（１０）の上位ビットＵＢはそれぞれ「０」または「１」なので、図２４（ａ）に示すように、ＵＢの反転データであるデータＵＢＢはそれぞれ「１」または「０」となり、データ変換回路３２Ａから、第２データバッファ３４Ａ、書き込みデータマスク回路４０、およびセンスアンプデータマスク回路４４に送信される。なお、この場合、他の多値圧縮ビットペア（０１）、（１１）はＤＡＴＡ信号の値が「１」と変換されてデータ入力選択回路３３Ａに送信される。
【０１３３】
このように、データ変換回路３２Ａによってデータ変換を行うことで、多値圧縮ビットペアの２ビットを１ビットに圧縮し、この圧縮されたビットデータＤＡＴＡが第２データバッファに送信される。したがって、３２ビットの多値圧縮ペアは、データ変換回路３２Ａによって圧縮されて１６ビットデータとなる。例えば、１６ビットのデータＰａｇｅ０と、１６ビットのデータＰａｇｅ８からなる３２ビットの多値圧縮ペアは、データ変換回路３２Ａによって圧縮されて１６ビットの圧縮データＰａｇｅ０_８となり、１６ビットのデータＰａｇｅ１と、１６ビットのデータＰａｇｅ９からなる３２ビットの多値圧縮ペアは、データ変換回路３２Ａによって圧縮されて１６ビットの圧縮データＰａｇｅ１_９となる。同様に、ｉを０〜７までの整数とすると、１６ビットのデータＰａｇｅ（ｉ）と、１６ビットのデータＰａｇｅ（ｉ＋８）からなる３２ビットの多値圧縮ペアは、データ変換回路３２Ａによって圧縮されて１６ビットの圧縮データＰａｇｅ（ｉ）_（ｉ＋８）となる。また、データ変換回路３２Ａでは上位ビットＵＢの反転信号であるＵＢＢデータも出力し、第２データバッファ３４Ａ、書き込みデータマスク回路４０、およびセンスアンプデータマスク回路４４に送信される。
【０１３４】
データ入力選択回路３３Ａは、自動動作制御回路２６から送られてくる経路選択信号[1:0]または信号ＡＰＲＧ[1:0]に基づいて、データ変換回路３２Ａによって変換された１２８ビットのデータ群ＤＡＴＡおよびベリファイデータ制御回路３８から転送されてくるデータ群のいずれか一方を選択し、選択したデータ群を第２データバッファ３４Ａに転送する。
【０１３５】
次に、本実施形態に係る第２データバッファ３４Ａについて説明する。この第２データバッファ３４Ａの回路の一具体例を図２５に示す。この具体例の第２データバッファ３４Ａは、第１乃至第４データマスク回路４０２１〜４０２４と、第１乃至第４データ判定回路４０４１〜４０４４と、１６個のデータバッファ回路４２００〜４２０１５と、１６個の判定結果出力回路４４００〜４４０１５とを備えている。各データバッファ回路４２０ｉ（ｉ＝０，１，・・・，１５）は、８個のデータ保持回路４２２０〜４２２７を有している。データ保持回路４２２ｉ（ｉ＝０，１，・・・，７）は、データ変換回路３２Ａによって圧縮された１６ビットの圧縮データＰａｇｅ（ｉ）_（ｉ＋８）を保持する。各判定結果出力回路４４０ｉ（ｉ＝０，１，・・・，１５）は、それぞれが１ビットのデータを保持する４個のデータ保持回路ＨＩＴ１０_０、ＨＩＴ０Ｘ_０、ＨＩＴ１０_１、ＨＩＴ０Ｘ_１と、ロジック回路４４２とを備えている。
【０１３６】
次に、この第２データバッファ３４Ａの構成と動作を説明する。
【０１３７】
データ変換回路３２Ａからデータ入力選択回路３３Ａを介して、第２データバッファ３４Ａに一回の転送で、１６ビットの圧縮データが８個からなる圧縮データ群Ｐａｇｅ０_８、Ｐａｇｅ１_９、Ｐａｇｅ２_１０、Ｐａｇｅ３_１１、Ｐａｇｅ４_１２、Ｐａｇｅ５_１３、Ｐａｇｅ６_１４、Ｐａｇｅ７_１５が転送され、それぞれデータ保持回路４２２０、４２２１、４２２２、４２２３、４２２４、４２２５、４２２６、４２２７に保持される。なお、第ｉ（ｉ＝１，・・・，１６）回目の転送による上記圧縮データ群Ｐａｇｅ０_８、Ｐａｇｅ１_９、Ｐａｇｅ２_１０、Ｐａｇｅ３_１１、Ｐａｇｅ４_１２、Ｐａｇｅ５_１３、Ｐａｇｅ６_１４、Ｐａｇｅ７_１５は、データバッファ回路４２０ｉのデータ保持回路４２２０、４２２１、４２２２、４２２３、４２２４、４２２５、４２２６、４２２７に保持される。なお、本実施形態では、８組の圧縮データ群Ｐａｇｅ０_８、Ｐａｇｅ１_９、Ｐａｇｅ２_１０、Ｐａｇｅ３_１１、Ｐａｇｅ４_１２、Ｐａｇｅ５_１３、Ｐａｇｅ６_１４、Ｐａｇｅ７_１５の中、４組の圧縮データ群Ｐａｇｅ０_８、Ｐａｇｅ１_９、Ｐａｇｅ２_１０、Ｐａｇｅ３_１１を上位圧縮データ群と呼び、残りの４組の圧縮データ群Ｐａｇｅ４_１２、Ｐａｇｅ５_１３、Ｐａｇｅ６_１４、Ｐａｇｅ７_１５を下位圧縮データ群と呼ぶ。
【０１３８】
各回のデータ転送時に、第１乃至第４データマスク回路４０２１〜４０２４と、第１乃至第４データ判定回路４０４１〜４０４４で書き込みデータの有無を調べる。
【０１３９】
第１データマスク回路４０２１は、上位圧縮データ群の６４ビットデータの各データＤＡＴＡと、このデータＤＡＴＡに対応するデータＵＢＢとに基づいて、上位圧縮データ群中に書き込むべきデータ（１０）があるか否か、すなわち上位圧縮データ群の元の多値圧縮ペア中に多値圧縮ビットペアが（１０）となるものがあるか否かを決定する。この第１データマスク回路４０２１には、データＤＡＴＡと、データＵＢＢとが対となる６４ビット対が入力され、この入力された６４ビット対中、ＤＡＴＡ＝０かつＵＢＢ＝０となるビット対の場合にのみ、対応する出力ビットを「０」として出力し、それ以外のビット対の場合には対応する出力ビットを「１」として出力する。したがって、第１データマスク回路４０２１においては、書き込むべきデータが（１０）がある場合に「０」を出力し、書き込むべきデータが（１０）以外の場合は、マスクして「１」を出力する。
【０１４０】
同様に、第２データマスク回路４０２２は、下位圧縮データ群の６４ビットデータの各データＤＡＴＡと、このデータＤＡＴＡに対応するデータＵＢＢとに基づいて、下位圧縮データ群中に書き込むべきデータ（１０）があるか否かを決定する。この第２データマスク回路４０２２は、第１データマスク回路４０２１と同様に、データＤＡＴＡと、データＵＢＢとが対となる６４ビット対が入力され、この入力された６４ビット対中、ＤＡＴＡ＝０かつＵＢＢ＝０となるビット対の場合にのみ、対応する出力ビットを「０」として出力し、それ以外のビット対の場合には対応する出力ビットを「１」として出力する。したがって、第２データマスク回路４０２２においては、書き込むべきデータ（１０）がある場合に「０」を出力し、書き込むべきデータが（１０）以外の場合は、マスクして「１」を出力する。
【０１４１】
第３データマスク回路４０２３は、上位圧縮データ群の６４ビットデータの各データＤＡＴＡと、このデータＤＡＴＡに対応するデータＵＢＢとに基づいて、上位圧縮データ群中に書き込むべきデータ（００）または（０１）があるか否かを決定する。この第３データマスク回路４０２３には、データＤＡＴＡと、データＵＢＢとが対となる６４ビット対が入力され、この入力された６４ビット対中、ＤＡＴＡ＝０かつＵＢＢ＝１となるビット対の場合にのみ、対応する出力ビットを「０」として出力し、それ以外のビット対の場合には対応する出力ビットを「１」として出力する。したがって、第１データマスク回路４０２１においては、書き込むべきデータ（００）または（０１）がある場合に「０」を出力し、書き込むべきデータが（００）または(０１)以外の場合は、マスクして「１」を出力する。
【０１４２】
第４データマスク回路４０２４は、下位圧縮データ群の６４ビットデータの各データＤＡＴＡと、このデータＤＡＴＡに対応するデータＵＢＢとに基づいて、下位圧縮データ群中に書き込むべきデータ（００）または（０１）があるか否かを決定する。この第４データマスク回路４０２４は、第３データマスク回路４０２３と同様に、データＤＡＴＡと、データＵＢＢとが対となる６４ビット対が入力され、この入力された６４ビット対中、ＤＡＴＡ＝０かつＵＢＢ＝１となるビット対の場合にのみ、対応する出力ビットを「０」として出力し、それ以外のビット対の場合には対応する出力ビットを「１」として出力する。したがって、第１データマスク回路４０２１においては、書き込むべきデータ（００）または（０１）がある場合に「０」を出力し、書き込むべきデータが（００）または(０１)以外の場合は、マスクして「１」を出力する。
【０１４３】
第１データ判定回路４０４１は、第１データマスク回路４０２１の６４ビットの出力に基づいて、書き込みデータが有るか否かを判定する。書き込みデータが有る場合すなわち第１データマスク回路４０２１の出力である６４ビット中に「０」となるビットが１つでもある場合には第１判定結果として「１」を出力し、ない場合すなわち第１データマスク回路４０２１の出力である６４ビットが全て「１」である場合には第１判定結果として「０」を出力し、この第１判定結果をデータ保持回路ＨＩＴ１０_０に送り、保持させる。
【０１４４】
第２データ判定回路４０４２は、第２データマスク回路４０２２の６４ビットの出力に基づいて、書き込みデータが有るか否かを判定する。書き込みデータが有る場合すなわち第２データマスク回路４０２２の出力である６４ビット中に「０」となるビットが１つでもある場合には第２判定結果として「１」を出力し、ない場合すなわち第２データマスク回路４０２２の出力である６４ビットが全て「１」である場合には第２判定結果として「０」を出力し、この第２判定結果をデータ保持回路ＨＩＴ１０_１に送り、保持させる。
【０１４５】
第３データ判定回路４０４３は、第３データマスク回路４０２３の６４ビットの出力に基づいて、書き込みデータが有るか否かを判定する。書き込みデータが有る場合すなわち第３データマスク回路４０２３の出力である６４ビット中に「０」となるビットが１つでもある場合には第３判定結果として「１」を出力し、ない場合すなわち第３データマスク回路４０２３の出力である６４ビットが全て「１」である場合には第３判定結果として「０」を出力し、この第３判定結果をデータ保持回路ＨＩＴ０Ｘ_０に送り、保持させる。
【０１４６】
第４データ判定回路４０４４は、第４データマスク回路４０２４の出力に基づいて、書き込みデータが有るか否かを判定する。書き込みデータが有る場合すなわち第４データマスク回路４０２４の出力である６４ビット中に「０」となるビットが１つでもある場合には第４判定結果として「１」を出力し、ない場合すなわち第４データマスク回路４０２３の出力である６４ビットが全て「１」である場合には第４判定結果として「０」を出力し、この第４判定結果をデータ保持回路ＨＩＴ０Ｘ_１に送り、保持させる。
【０１４７】
なお、データ保持回路ＨＩＴ１０_０、ＨＩＴ１０_１、ＨＩＴ０Ｘ_０、ＨＩＴ０Ｘ_１に判定結果を保持するタイミングはデータを各データ保持回路４２２ｉ（ｉ＝０，１，・・・，７）に保持するタイミングと同じタイミングで行う。
【０１４８】
各判定結果出力回路４４０ｉ（ｉ＝０，・・・，１５）のロジック回路４４２は第１乃至第６のＮＯＲゲートを有している。第１のＮＯＲゲートはデータ保持回路ＨＩＴ１０_０に保持された第１判定結果と、信号ＰＲＧＰＴＮ１ＸＢとに基づいてＮＯＲ演算を行う。第２のＮＯＲゲートはデータ保持回路ＨＩＴ０Ｘ_０に保持された第３判定結果と、信号ＰＲＧＰＴＮＮ１０とに基づいてＮＯＲ演算を行う。第３のＮＯＲゲートは、第１および第２のＮＯＲゲートの出力に基づいてＮＯＲ演算を行い、判定信号ＨＩＴ（２ｉ）を出力する。第４のＮＯＲゲートはデータ保持回路ＨＩＴ１０_１に保持された第２判定結果と、信号ＰＲＧＰＴＮ１ＸＢとに基づいてＮＯＲ演算を行う。第５のＮＯＲゲートはデータ保持回路ＨＩＴ０Ｘ_１に保持された第４判定結果と、信号ＰＲＧＰＴＮＮ１０とに基づいてＮＯＲ演算を行う。第６のＮＯＲゲートは、第４および第５のＮＯＲゲートの出力に基づいてＮＯＲ演算を行い、判定信号ＨＩＴ（２ｉ＋１）を出力する。なお、
全てのデータが第１データバッファ３１Ａから第２データバッファ３４Ａに転送されると、データパターン選択信号[1:0]が“１０”の場合は信号ＰＲＧＰＴＮ１０が「１」、信号ＰＲＧＰＴＮ１ＸＢが「０」となり、データ保持回路ＨＩＴ１０_０、ＨＩＴ１０_１の出力、つまり、データ“１０”となる箇所の判定結果が判定信号ＨＩＴ０〜ＨＩＴ３１に現れる。また、データパターン選択信号[1:0]が“００”または“０１”の場合は、信号ＰＲＧＰＴＮ１０が「０」、信号ＰＲＧＰＴＮ１ＸＢが「１」となり、データ保持回路ＨＩＴ０Ｘ_０、ＨＩＴ０Ｘ_１の出力、つまり、データ“００”またはデータ“０１”となる箇所の判定結果が判定信号ＨＩＴ０〜ＨＩＴ３１に現れる。なお、判定信号ＨＩＴ０〜ＨＩＴ３１は書き込みデータ有りで「１」となる。
【０１４９】
状態マルチ書き込み動作時は、書き込み動作に入る前に、データパターン選択信号[1:0]を“１１”(状態マルチ書き込みモード)と設定する。この場合、図２５に示す信号ＰＲＧＰＴＮ１０が「０」、信号ＰＲＧＰＴＮ１ＸＢが「０」となり、判定信号ＨＩＴ０〜ＨＩＴ３１を生成するロジックは、データ保持回路ＨＩＴ１０_０、ＨＩＴ１０_１、ＨＩＴ０Ｘ_０、ＨＩＴ０Ｘ_１の書き込み対象ビットを検索することによって行う。
【０１５０】
第２データバッファの出力データは書き込みデータマスク回路４０に入力される。この書き込みデータマスク回路４０の一具体例を図２６に示す。この書き込みデータマスク回路４０は、第１乃至第４のＮＡＮＤゲート４０１〜４０４を備えている。第１のＮＡＮＤゲート４０１は、信号ＰＲＧＰＴＮ１０と、上位ビットＵＢの反転信号ＵＢＢとに基づいてＮＡＮＤ演算を行う。第２のＮＡＮＤゲート４０２は、信号ＵＢＢの反転値ＵＢと、信号ＰＲＧＰＴＮ００とに基づいてＮＡＮＤ演算を行う。第３のＮＡＮＤゲート４０３は、第１および第２のＮＡＮＤゲートの出力に基づいてＮＡＮＤ演算を行う。第４のＮＡＮＤゲート４０３は、第３のＮＡＮＤゲートの出力の反転値と、第２データバッファ３４Ａの出力とに基づいてＮＡＮＤ演算を行い、演算結果を書き込みデータ切り替え回路４２に送出する。
【０１５１】
書き込みデータマスク回路４０では、データパターン選択信号[1:0]が“１０”の場合の場合）、信号ＰＲＧＰＴＮ１０が「１」、信号ＰＲＧＰＴＮ００が「０」になり、信号ＵＢＢが「１」の場合に書き込みデータ切り替え回路４２への出力を「１」にマスクする。また、データパターン選択信号[1:0]が“００”の場合、信号ＰＲＧＰＴＮ１０が「０」、信号ＰＲＧＰＴＮ００が「１」になり、信号ＵＢＢが「０」の場合に書き込みデータ切り替え回路４２への出力を「１」にマスクする。これにより、例えばデータパターン選択信号[1:0]が“１０”の場合、第２データバッファ３４Ａには多値圧縮ペアが（００）の箇所も「０」となっているが、信号ＵＢＢが「１」なので、書き込みデータ切り替え回路４２への出力は「１」にマスクされる。データパターン選択信号[1:0]が“１０”、“００”以外の場合は、信号ＵＢＢの値によらず第２データバッファ３４Ａの出力データがそのまま書き込みデータ切り替え回路４２へ出力される。したがって、書き込みデータマスク回路４０においては、第２データバッファ３４Ａに保持されたデータ中に、データ（１０）、（００）、（０１）のいずれかの書き込み対象データが存在する場合にのみ、データ「０」を出力し、存在しない場合には「１」を出力する。信号ＰＲＧＰＴＮ１ＸＢ、信号ＰＲＧＰＴＮ１０、信号ＰＲＧＰＴＮ００のデコード値を図２７に示す。すなわち、書き込みデータマスク回路４０は、書き込み対象ビットの場合には「０」を出力する。
【０１５２】
書き込みデータ切り替え回路４２は、書き込みデータマスク回路４０の出力データ（１２８ビット）の上位ビット（第１乃至第６４ビット）と下位ビット（第６５ビット乃至第１２４ビット）とを切り替える。カラムアドレスＢ［０］が「０」の場合は下位ビット側の「０」のビットを、「１」の場合は上位ビット側の「０」のビットをＰＲＧデータバスに「１」（書き込み対象ビット）として出力し、書き込みを行う。すなわち、書き込み対象データが存在する場合にのみ、書き込みが行われる。書き込みデータ切り替え回路４２は、書き込み対象ビットの場合には「１」を出力する。
【０１５３】
書き込み終了後のベリファイ動作は、異なる閾値レベルを判定するため、各レベルのベリファイを別々に行う。センスアンプデータマスク回路４４の一具体例を図２９に示す。このセンスアンプデータマスク回路４４は、ＮＡＮＤゲート４４１と、ＡＮＤゲート４４２とを備えている。ＮＡＮＤゲート４４１は、信号ＰＧＲＴＮ１０と、信号ＵＢＢとに基づいてＮＡＮＤ演算を行い、演算結果をＡＮＤゲート４４２に送出する。ＡＮＤゲート４４２は、ＮＡＮＤゲート４４１の出力と、センスアンプ１４の出力とに基づいて、ＡＮＤ演算を行い、演算結果をベリファイデータ制御回路３８に送出する。データパターン選択信号[1:0]が“１０”の場合、信号ＰＲＧＰＴＮ１０が「１」になり信号ＵＢＢが「１」（多値圧縮ペアが“００”、“０１”）の場合、センスアンプ回路１４の出力によらず、「０」を出力する。これにより、“１０”レベルをベリファイした場合に、第２データバッファ３４Ａの多値圧縮ペアが“００”となる箇所のデータを破壊しないことを実現する。
【０１５４】
以上説明した本実施形態の第２データバッファ３４Ａの処理動作を図３０に示し、第１乃至第４実施形態の第２データバッファ３４の処理動作を図３１に示す。図３０からわかるように、本実施形態においては、第１データバッファ３１Ａから送出されたデータは、データ変換回路３２Ａによって多値圧縮されて変換され、多値圧縮ビットペアの２ビットを１ビットに圧縮して第２データバッファ３４Ａに送られる。そして、この変換されたデータは第２データバッファ３４Ａにおいて、ラッチされると同時にデータの判定が行われる。ラッチされたデータは、図示しない書き込みデータマスク回路４０（図２３参照）を介して書き込みデータ出力回路４２に送出される。一方、第２データバッファ３４Ａにおいて、データ判定された後は、この判定結果に基づいて判定信号ＨＩＴが出力され、ＡＡＳ回路３５に送出される。
【０１５５】
これに対して、図３１からわかるように、第１乃至第４実施形態においては、第１データバッファ３１から送出されたデータは、データ変換回路３２によって多値圧縮されて変換され、多値圧縮ビットペアが圧縮されずに２ビットのまま、第２データバッファ３４に送られる。この変換されたデータは第２データバッファ３４において、まずラッチされる。その後、このラッチされたデータはデータ出力される。一方、上記ラッチされたデータは、第２データバッファ３４において、データ判定され、この判定結果に基づいて判定信号ＨＩＴが出力され、ＡＡＳ回路３５に送出される。
【０１５６】
以上説明したように、本実施形態は、データ変換回路３２Ａによって多値圧縮ペアの２ビットを１ビットに圧縮することで、第２データバッファ３４Ａにおける各データバッファ回路４２０ｉ（ｉ＝０，・・・，１５）のサイズ（１２８ビット）を、第１乃至第４実施形態の第２データバッファ３４の各データバッファ回路のサイズ（２５６ビット）の半分にすることができる。更に、第１乃至第４実施形態においては、各データバッファ回路４２０ｉ（ｉ＝０，・・・，１５）に対して１組の第１乃至第４データ判定回路を設けていたが、本実施形態においては、共通にして用いている。このため、第１乃至第４実施形態に比べて、本実施形態の第２データバッファの面積を小さくすることができる。
【０１５７】
また、本実施形態も、第１乃至第４実施形態と同様に、書き込み対象ビットが存在しない場合には、そのアドレスを書き込み対象ビットが存在するアドレスまでスキップするように構成されているので、自動書き込み動作時間を可及的に短縮することができる。
【０１５８】
（応用例）
以下、上記各実施例で述べた構成および機能を有するＮＯＲ型フラッシュメモリ１００を半導体チップに搭載した一例について説明する。
【０１５９】
図２１は、応用例に係るＮＯＲ型フラッシュメモリ１００を備えた半導体チップ（マルチ・チップ・パッケージ：ＭＣＰ（Multi Chip Package））１０００の一例を示す断面図である。
【０１６０】
図２１に示すように、半導体チップ１０００は、基板１００１上に順次積層されたＮＡＮＤ型フラッシュメモリ１００２、スペーサ１００３、ＮＯＲ型フラッシュメモリ１００、スペーサ１００４、ＰＳＲＡＭ（Pseudo Static Random Access Memory）１００５、およびコントローラ１００６を同一パッケージ内に搭載している。
【０１６１】
ＮＡＮＤ型フラッシュメモリ１００２は、例えば、多値データの記憶が可能な複数のメモリセルを有している。また、半導体チップ１０００において、ＰＳＲＡＭに換えて、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）を用いた構成であっても良い。
【０１６２】
上記メモリのうち、メモリシステムによる用途により、ＮＡＮＤ型フラッシュメモリ１００２は、例えば、データ格納用メモリとして使用される。また、ＮＯＲ型フラッシュメモリ１００は、例えば、プログラム格納用メモリとして使用される。また、ＰＳＲＡＭ１００５は、例えば、ワーク用メモリとして使用される。
【０１６３】
コントローラ１００６は、主としてＮＡＮＤ型フラッシュメモリ１００２に対するデータ入出力制御、データ管理を行う。コントローラ１００６は、ＥＣＣ訂正回路（図示せず）を有しており、データを書き込む際には誤り訂正符合（ＥＣＣ）付加し、読み出す際にも誤り訂正符号の解析・処理を行う。
【０１６４】
ＮＡＮＤ型フラッシュメモリ１００２、ＮＯＲ型フラッシュメモリ１００、ＰＳＲＡＭ１００５、およびコントローラ１００６は、ワイヤ１００７により基板１００１にボンディングされている。
【０１６５】
基板１００１の裏面に設けられた各半田ボール１００８は、それぞれワイヤ１００７に電気的に接続されている。パッケージ形状としては、例えば、各半田ボール１００８が二次元的に配置された表面実装型のＢＧＡ（Ball Grid Array）が採用される。
【０１６６】
なお、実施例１におけるＥＣＣ訂正回路１１は、既述のようにＮＯＲ型フラッシュメモリ１００内に設けられてもよく、または、コントローラ１００６内に設けられていても良い。この場合、ＮＡＮＤ型フラッシュメモリ１００２とＥＣＣ訂正回路を共用しても良いし、ＮＡＮＤ型フラッシュメモリ１００２とＮＯＲ型フラッシュメモリ１００とで、それぞれ異なるＥＣＣ訂正回路を有していても良い。また、ＥＣＣ訂正回路１１は、コントローラ１００２の外部に独立して設けられていても良い。
【０１６７】
次に、上記半導体チップ１０００を、電子機器の一例である携帯電話に適用する場合について説明する。
【０１６８】
図２２は、半導体チップ１０００を内部に実装する携帯電話を示す図である。図２２に示すように、携帯電話２０００は、メイン画面２００１を有する本体上部２００２と、キーパッド２００３を有する本体下部２００４と、を備えている。この携帯電話２０００には、半導体チップ１０００が搭載される。
【０１６９】
携帯電話２０００に搭載されたＣＰＵ（図示せず）は、半導体チップ１０００にインターフェイス（図示せず）を介してアクセスし、データ等の転送を行うようになっている。
【０１７０】
携帯電話２０００は、例えば、ＮＡＮＤ型フラッシュメモリ１００２をユーザデータの格納領域として、ＮＯＲ型フラッシュメモリ１００をファームウェア等のプログラム格納領域として使用する。
【０１７１】
この様なメモリシステムにおいて、ＮＯＲ型フラッシュメモリ１００には、高速な書き込み動作が要求される。また一方で、アプリケーションソフトの高機能化に伴い、格納すべきプログラムのデータ量も増大傾向にある。
【０１７２】
応用例に係るＮＯＲ型フラッシュメモリ１００は、上述したように、多値データを記憶可能なメモリセルを設け、また、書き込み対象ビットが存在しない場合には、そのアドレスを書き込み対象ビットが存在するアドレスまでスキップするように構成されていることで、上記２つの課題を共に解決することが可能である。
【０１７３】
なお、半導体チップ１０００は、上記携帯電話以外にも、パーソナルコンピュータ、デジタルスチルカメラ、ＰＤＡ等の各種電子機器に適用することができる。
【図面の簡単な説明】
【０１７４】
【図１】第１実施形態による不揮発性半導体記憶装置を示すブッロク図。
【図２】多値圧縮ペアを示す図。
【図３】データパターン選択信号を説明する図。
【図４】データ変換回路のデータ変換を説明する図。
【図５】第２データバッファの一具体例の構成を示すブロック図。
【図６】制御信号と動作モードとの関係を説明する図。
【図７】自動アドレス検索回路を示すブロック図。
【図８】書き込み対象ビットがある場合のＡＡＳアドレスに基づいた書き込み動作のタイミング図。
【図９】書き込み対象ビットがない場合のＡＡＳアドレスに基づいた書き込み動作のタイミング図。
【図１０】ＡＡＳメイン回路の一具体例を示す回路図。
【図１１】第２データバッファに書き込みデータをラッチした状態を示す図。
【図１２】制御信号ＡＤＤＩＮＣＥＮの立ち上がりエッジで、次に書き込むデータがあるアドレスへスキップした状態を示す図。
【図１３】制御信号ＡＤＤＩＮＣＥＮの立ち上がりエッジで、これ以降、書き込みデータが存在するアドレスが無く、終了信号ＥＮＤを出力した状態を示す図。
【図１４】ベリファイデータ制御回路と第２データバッファとの関係を示すブロック図。
【図１５】ベリファイデータ制御回路の一具体例を示す回路図。
【図１６】ベリファイ動作時のＡＡＳメイン回路の状態を示す図。
【図１７】書き込み動作とベリファイ動作を繰り返した場合のタイミング図。
【図１８】第１実施形態における第２データバッファの出力段を示す回路図。
【図１９】第１実施形態の変形例における第２データバッファの出力段を示す回路図。
【図２０】２ポート出力制御が行われるときの、書き込み動作とベリファイ動作における各ページと、第２データバッファの出力が送られるデータ出力バスとの関係を示す図。
【図２１】応用例におけるＮＯＲ型フラッシュメモリを備えた半導体チップの一例を示す断面図。
【図２２】応用例におけるＮＯＲ型フラッシュメモリを備えた半導体チップを格納する携帯電話を示す模式図。
【図２３】第５実施形態による不揮発性半導体記憶装置を示すブロック図。
【図２４】第５実施形態に係るデータ変換回路のデータ変換を説明する図。
【図２５】第２データバッファの一具体例の構成を示すブロック図。
【図２６】書き込みデータマスク回路の一具体例を示す回路図。
【図２７】信号ＰＲＧＰＴＮＮ１０Ｂ、信号ＰＲＧＰＴＮ１ＸＢ、信号ＰＲＧＰＴＮ１０、信号ＰＲＧＰＴＮ００のデコード値を示す図。
【図２８】書き込みデータ切り替え回路の一具体例を示す回路図。
【図２９】センスアンプデータマスク回路の一具体例を示す回路図。
【図３０】第５実施形態に係る第２データバッファの処理動作を説明する図。
【図３１】第１乃至第４実施形態に係る第２データバッファの処理動作を説明する図。
【符号の説明】
【０１７５】
２  メモリブロック
４  メモリセルアレイ
６  メモリデコーダ
１２  読み出し用センスアンプ回路
１４  自動動作用センスアンプ回路
２０  自動動作制御システム
２２  コマンド判定回路
２４  アドレス生成回路
２６  自動動作制御回路
３０  データ制御システム
３１  第１データバッファ
３１Ａ  第１データバッファ
３２  データ変換回路
３２Ａ  データ変換回路
３３  入力選択回路
３４  第２データバッファ
３４Ａ  第２データバッファ
３５  自動アドレス検索回路（ＡＡＳ回路）
３６  アドレス選択回路
３７  書き込みデータ多値圧縮回路
３８  ベリファイデータ制御回路
３９  ベリファイデータ出力デコード回路
４０  書き込みデータマスク回路
４２  書き込みデータ切り替え回路
４４  センスアンプデータマスク回路
１０００  半導体チップ
１００１  基板
１００２  ＮＡＮＤ型フラッシュメモリ
１００３、１００４  スペーサ
１００５  ＰＳＲＡＭ
１００６  コントローラ
１００７  ワイヤ
１００８  半田ボール
２０００  携帯電話
２００１  メイン画面
２００２  本体上部
２００３  キーパッド
２００４  本体下部
【図１】
2009146555.tif 000003
【図２】
2009146555.tif 000004
【図３】
2009146555.tif 000005
【図４】
2009146555.tif 000006
【図５】
2009146555.tif 000007
【図６】
2009146555.tif 000008
【図７】
2009146555.tif 000009
【図８】
2009146555.tif 000010
【図９】
2009146555.tif 000011
【図１０】
2009146555.tif 000012
【図１１】
2009146555.tif 000013
【図１２】
2009146555.tif 000014
【図１３】
2009146555.tif 000015
【図１４】
2009146555.tif 000016
【図１５】
2009146555.tif 000017
【図１６】
2009146555.tif 000018
【図１７】
2009146555.tif 000019
【図１８】
2009146555.tif 000020
【図１９】
2009146555.tif 000021
【図２０】
2009146555.tif 000022
【図２１】
2009146555.tif 000023
【図２２】
2009146555.tif 000024
【図２３】
2009146555.tif 000025
【図２４】
2009146555.tif 000026
【図２５】
2009146555.tif 000027
【図２６】
2009146555.tif 000028
【図２７】
2009146555.tif 000029
【図２８】
2009146555.tif 000030
【図２９】
2009146555.tif 000031
【図３０】
2009146555.tif 000032
【図３１】
2009146555.tif 000033