(57)【要約】【課題】一つのブロック全体のプログラムループ回数を簡単に知ることができる不揮発性半導体記憶装置を有した半導体集積回路装置を提供すること【解決手段】ページバッファに記憶された書き込みデータに応じて、データが書き込まれる複数のメモリセルと、複数のメモリセルへのデータ書き込みに要したプログラムループ回数を累積記憶するプログラムループ累積カウンタ３３と、を具備し、プログラムループ累積カウンタ３３に累積記憶されたプログラムループ回数を出力することを特徴とする。【選択図】図６
2007004892.tif 000002
【特許請求の範囲】
【請求項１】
書き込みデータを記憶するページバッファと、
前記ページバッファに記憶された書き込みデータに応じて、データが書き込まれる複数のメモリセルと、
前記複数のメモリセルへのデータ書き込みに要したプログラムループ回数を累積記憶するプログラムループ累積カウンタと、を具備し、
前記プログラムループ累積カウンタに累積記憶されたプログラムループ回数を出力することを特徴とする半導体集積回路装置。
【請求項２】
前記複数のメモリセルは異なるワード線に接続され、これらワード線が複数集まってブロックを構成し、
前記プログラム累積カウンタは、前記ブロック全体のプログラムループ回数を累積記憶することを特徴とする請求項１に記載の半導体集積回路装置。
【請求項３】
前記ワード線毎のプログラムループ回数をカウントするプログラムループカウンタを、さらに備え、
前記プログラムループカウンタは、ワード線毎のデータ書き込みが終了するとリセットされ、
前記プログラムループ累積カウンタは、前記ワード線毎のデータ書き込みが終了してもリセットされないことを特徴とする請求項２に記載の半導体集積回路装置。
【請求項４】
前記プログラムループ累積カウンタに累積記憶されたプログラムループ回数は、テスト時に出力することを特徴とする請求項１に記載の半導体集積回路装置。
【請求項５】
前記プログラムループ累積カウンタに累積記憶されたプログラムループ回数に基づいて、プログラムループ回数が規定回数以上であればフェイルを示すステータス、又は書き込み速度が遅いクラスを示すステータスを出力することを特徴とする請求項１に記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置に関し、特に、データの書き換えが可能な不揮発性半導体記憶装置を備えた半導体集積回路装置に関する。
【背景技術】
【０００２】
電気的に書き換えが可能な不揮発性半導体記憶装置、例えば、フラッシュメモリでは、データを、ページ単位で書き込む。例えば、この書き込みの際、プログラムとベリファイとを繰り返す。本明細書では、この繰り返しの回数をプログラムループ回数と呼ぶ。プログラムループ回数は無限ではなく、ある制限された回数がある。制限された回数に達する前に、書き込みが充分になされたと判定された場合には、書き込みステータスを“パス”として、そのページに対する書き込みを終了する。反対に、書き込みが充分でないまま、制限された回数に達すると、書き込みステータスを“フェイル”として、そのページに対する書き込みを終了する。
【０００３】
フラッシュメモリ、例えば、ＮＡＮＤ型フラッシュメモリでは、何本かのページ、例えば、３２本のページをひとつにまとめ、ブロックと呼ばれる単位を構成する。ブロックは、データ消去の最小単位である。このため、書き込みはページ単位で実行されるものの、このブロック中に含まれる全てのページに対して書き込みが終わるまで、書き込みは続けられる。例えば、一つのブロックに、３２本のページがあった場合には、３２本全てのページに対する書き込みが終わるまで、書き込みは続けられる。
【０００４】
もしも、書き込み速度を求めたいならば、一つのブロック全体のプログラムループ回数を測定すれば良い。このためには、１本のページの書き込みが終了する度に、プログラムループ回数を測定する。そして、これを、一つのブロック全体の書き込みが終了するまで続け、最後に全てのプログラムループ回数を足し合わせれば良い。
【０００５】
しかし、１本のページの書き込みが終了する度に、プログラムループ回数を測定する方式は、甚だ時間を要することになる。
【特許文献１】特開平５−３１４７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は、一つのブロック全体のプログラムループ回数を簡単に知ることができる不揮発性半導体記憶装置を有した半導体集積回路装置を提供する。
【課題を解決するための手段】
【０００７】
この発明の一態様に係る半導体集積回路装置は、書き込みデータを記憶するページバッファと、前記ページバッファに記憶された書き込みデータに応じて、データが書き込まれる複数のメモリセルと、前記複数のメモリセルへのデータ書き込みに要したプログラムループ回数を累積記憶するプログラムループ累積カウンタと、を具備し、前記プログラムループ累積カウンタに累積記憶されたプログラムループ回数を出力する。
【発明の効果】
【０００８】
この発明によれば、一つのブロック全体のプログラムループ回数を簡単に知ることができる不揮発性半導体記憶装置を有した半導体集積回路装置を提供できる。
【発明を実施するための最良の形態】
【０００９】
以下、この発明の実施形態のいくつかを、図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１０】
（第１実施形態）
図１は、この発明の第１実施形態に係る半導体集積回路装置の一例を示すブロック図である。第１実施形態は、半導体集積回路装置の一例とし、ＮＡＮＤ型フラッシュメモリを示すが、この発明はＮＡＮＤ型フラッシュメモリ以外のメモリにも適用することができる。
【００１１】
メモリセルアレイ１には、不揮発性半導体メモリセルがマトリクス状に配置される。不揮発性半導体メモリセルの一例は、フラッシュメモリセルである。
【００１２】
カラム制御回路２は、メモリセルアレイ１のビット線を制御し、メモリセルのデータ消去、メモリセルへのデータ書き込み、及びメモリセルからのデータ読み出しを行う。カラム制御回路２は、メモリセルアレイ１に隣接して設けられる。
【００１３】
ロウ制御回路３は、メモリセルアレイ１のワード線を選択し、消去、書き込み、及び読み出しに必要な電位を印加する。
【００１４】
ソース線制御回路４は、メモリセルアレイ１のソース線を制御する。
【００１５】
Ｐウェル制御回路５は、メモリセルアレイ１が形成されるＰ型セルウェルの電位を制御する。
【００１６】
データ入出力バッファ６は、カラム制御回路２にＩＯ線対ＩＯ、ＩＯｎを介して電気的に接続され、外部のホスト（図示せず）に外部ＩＯ線を介して電気的に接続される。データ入出力バッファ６には、例えば、入出力バッファ回路が配置される。データ入出力バッファ６は、書き込みデータの受け取り、読み出しデータの出力、及びアドレスデータやコマンドデータの受け取りを行う。データ入出力バッファ６は、受け取った書き込みデータをＩＯ線対ＩＯ、ＩＯｎを介してカラム制御回路２に送り、また、カラム制御回路２から読み出したデータをＩＯ線対ＩＯ、ＩＯｎを介して受け取る。さらに、メモリセルアレイ１のアドレスを選択するために外部から入力されたアドレスデータを、カラム制御回路２やロウ制御回路３に、ステートマシン８を介して送る。また、外部ホストからのコマンドデータを、コマンドインターフェイス７に送る。
【００１７】
コマンドインターフェイス７は、外部制御信号線を介して外部ホストからの制御信号を受け、データ入出力バッファ６に入力されたデータが書き込みデータなのか、あるいはコマンドデータなのか、あるいはアドレスデータなのかを判断し、コマンドデータであれば、コマンドデータとしてステートマシン８に転送する。
【００１８】
ステートマシン８は、フラッシュメモリ全体の管理を行う。外部ホストからのコマンドデータを受け、読み出し、書き込み、消去、及びデータの入出力管理を行う。
【００１９】
図２は、図１に示すメモリセルアレイ１の一例を示す図である。
【００２０】
図２に示すように、メモリセルアレイ１は複数のブロック、例えば、１０２４個のブロックBLOCK0〜BLOCK1023に分割される。ブロックは、例えば、消去の最小単位である。各ブロックBLOCKiは複数のＮＡＮＤ型メモリユニット、例えば、８５１２個のＮＡＮＤ型メモリユニットを含む。この例では、各ＮＡＮＤ型メモリユニットは２つの選択トランジスタＳＴＤ、ＳＴＳと、これらの間に、直列に接続された複数のメモリセルＭ（本例では４つ）を含む。ＮＡＮＤ型メモリユニットの一端は選択ゲート線ＳＧＤに繋がる選択トランジスタＳＴＤを介してビット線ＢＬに接続され、その他端は選択ゲート線ＳＧＳに繋がる選択ゲートＳＴＳを介して共通ソース線Ｃ-sourceに接続される。各メモリセルＭはワード線ＷＬに繋がる。０から数えて偶数番目のビット線ＢＬｅと、奇数番目のビット線ＢＬｏとは、互いに独立してデータの書き込みと読み出しとが行われる。１本のワード線ＷＬに繋がる８５１２個のメモリセルのうち、例えば、ビット線ＢＬｅに接続される４２５６個のメモリセルに対して同時にデータの書き込みと読み出しとが行われる。各メモリセルＭが記憶する１ビットのデータが４２５６個のメモリセル分集まって、ページという単位を構成する。ページは、例えば、読み出しの最小単位である。１つのメモリセルＭで２ビットのデータを記憶する場合、４２５６個のメモリセルは２ページ分のデータを記憶する。同様に、ビット線ＢＬｏに接続される４２５６個のメモリセルで別の２ページが構成され、ページ内のメモリセルに対して同時にデータの書き込みと読み出しとが行われる。
【００２１】
図３は、チップレイアウトの一例を示す平面図である。
【００２２】
図３に示すように、半導体チップ１００には、メモリセルアレイ領域１０２、ロウデコーダ領域１０４、ページバッファ領域１０６、周辺回路領域１０８、チャージポンプ回路領域１１０、及びパッド領域１１２が設けられる。
【００２３】
本例では、メモリセルアレイ領域１０２は二箇所有り、それぞれにメモリセルアレイ１がレイアウトされる。
【００２４】
ロウデコーダ領域１０４は、メモリセルアレイ領域１００の、ロウ方向に沿った両端に配置され、それぞれにロウ制御回路３がレイアウトされる。
【００２５】
ページバッファ領域１０６、周辺回路領域１０８、チャージポンプ回路領域１１０、及びパッド領域１１２は、メモリセルアレイ領域１００の、カラム方向に沿った一端に順次配置される。
【００２６】
ページバッファ領域１０６には、カラム制御回路、例えば、ページバッファがレイアウトされる。ページバッファはデータ回路の一種であり、メモリセルアレイ１へ書き込む、例えば、１ページ分の書き込みデータを一時的に記憶したり、メモリセルアレイ１から読み出した、例えば、１ページ分の読み出しデータを一時的に記憶したりする。
【００２７】
周辺回路領域１０８には、カラム系制御回路２、データ入出力バッファ６、コマンドインターフェイス７、及びステートマシン８がレイアウトされる。
【００２８】
チャージポンプ回路１１０には、チャージポンプ回路がレイアウトされる。チャージポンプ回路は昇圧回路の一種であり、書き込み、消去に必要とされる電源電位、例えば、外部電源電位よりも高い電位や、チップ内部で使用されるチップ内電源電位を発生させる。
【００２９】
本例では、パッド領域１１２は一箇所有り、チップの一つの辺に沿って配置される。パッド領域１１２には、パッドがレイアウトされる。パッドは、半導体チップ１００と、外部との接続点である。パッドは、例えば、データ入出力バッファ６、及びコマンドインターフェイス７に接続される。
【００３０】
次に、第１実施形態に係る半導体集積回路装置の動作の一例を説明する。
【００３１】
本例においては、書き込み動作以外の動作については、従来知られている動作と同じで良い。従って、本明細書においては、書き込み動作のみを説明する。
【００３２】
まず、書き込み動作の流れを簡単に説明する。
【００３３】
図４は書き込みデータの流れを概略的に示すブロック図、図５は書き込み動作を概略的に示す動作波形図である。
【００３４】
図４に示すように、例えば、外部から入力されたデータＤＩＮは、ページバッファ（Page Buffer）２１に、データ入出力バッファ６の、入力バッファ（Input Buffer）２３を介して順次取り込まれる。データＤＩＮがページバッファ２１に全て取りこまれると、図５に示すプログラム信号ｐｒｏｇがアクティブとなり、書き込み動作の開始をコア２５に命令する。書き込み動作においては、ワード線ＷＬをプログラム電圧Ｖｐｒｏｇまで昇圧し、メモリセルへデータを書き込む。書き込み後、図５に示すベリファイ信号ｖｅｒｉｆｙがアクティブとなり、ベリファイ動作に入る。ベリファイの結果、書き込みがパス（pass）であるならば書き込み動作は終了し、反対に、フェイル（fail）であるならば、プログラム電圧Ｖｐｒｏｇを、ステップアップ電圧ΔＶｐｒｏｇの分、ステップアップして、再度書き込み動作を開始する。この“プログラム→ベリファイ”の繰り返し回数がプログラムループ回数である。プログラムループ回数は、カウンタによってカウントされる。
【００３５】
図６は、この発明の第１実施形態に係る半導体集積回路装置が有するカウンタの一例を示すブロック図である。
【００３６】
本例に係る装置は、図６に示すように、プログラムループ回数をカウントするカウンタとして、プログラムループカウンタ３１（以下ループカウンタと略す）と、プログラムループ累積カウンタ３３（以下累積カウンタと略す）と、を有する。ループカウンタ３１は、プログラムループ回数を、例えば、ワード線１本毎、例えば、ページ毎にカウントする。累積カウンタ３３は、プログラムループ回数を、例えば、ワード線複数本、本例ではブロック全体に及んで累積カウントする。
【００３７】
図７は、ループカウンタ３１、及び累積カウンタ３３への入力信号の波形例を示す信号波形図である。
【００３８】
ループカウンタ３１は、リセット信号ＰＬＣＲＳＴが入力されるとリセットされ、セット信号ＰＬＣＳＥＴが入力されるとセットされてカウントを開始する。カウントの仕方は、例えば、信号ＰＲＯＧ／ＶＥＲＩＦＹの立ち上がりをカウントすれば良い。
【００３９】
同様に、累積カウンタ３３は、リセット信号ＰＬＣＲＳＴ２が入力されるとリセットされ、セット信号ＰＬＣＳＥＴ２が入力されるとセットされてカウントを開始する。カウントの仕方は、ループカウンタ３１と同じで良く、例えば、信号ＰＲＯＧ／ＶＥＲＩＦＹの立ち上がりをカウントすれば良い。
【００４０】
ループカウンタ３１、及び累積カウンタ３３は、メモリセルへの書き込みの前、本例ではワード線ＷＬ０に接続されるメモリセルへの書き込み開始前にリセットされ、そして、セットされる。ループカウンタ３１はワード線ＷＬ０に接続されるメモリセルへの書き込みが終了するとリセットされる。そして、次のメモリセルへの書き込みの前、本例ではワード線ＷＬ１に接続されるメモリセルへの書き込み開始前にセットされる。このように、ループカウンタ３１は、ワード線毎のデータ書き込みが終了する毎にリセットされ、そしてセットされる。
【００４１】
対して、累積カウンタ３３は、ワード線毎のデータ書き込みが終了してもリセットされない。このため、累積カウンタ３３は、ワード線毎のデータ書き込みに要したプログラムループ回数を、累積してカウントすることができる。
【００４２】
さらに、本例では、最後のワード線ＷＬ１５に接続されるメモリセルへのデータ書き込みが終了した後、累積カウンタ３３に対して、すぐにリセット信号が入力されない。これにより、累積したプログラムループ回数を一時的に保持することができる。つまり、累積カウンタ３３は、複数のメモリセルへのデータ書き込み、本例では、ワード線ＷＬ０〜ワード線ＷＬ１５の全てのプログラムに要したプログラムループ回数を累積記憶する。累積カウンタ３３に累積記憶されたプログラムループ回数は、累積カウンタ３３から出力される（ＰＬＣ２ＯＵＴ）。出力ＰＬＣ２ＯＵＴは、データ入出力バッファ６のデータ出力バッファを介して、例えば、半導体集積回路装置の外部へと出力される。累積記憶されたプログラムループ回数が出力された後、もしくは次の書き込み動作が始まる時、累積カウンタ３３はリセットされる。
【００４３】
また、図６に示すように、本例の累積カウンタ３３には、イネーブル信号ＰＬＣ２ＥＮＢが入力される。累積カウンタ３３は、イネーブル信号ＰＬＣ２ＥＮＢが入力されたときのみ、動作させることが可能である。累積カウンタ３３を動作させたくないときには、イネーブル信号ＰＬＣ２ＥＮＢを非活性とすれば良い。例えば、累積カウンタ３３を動作させたくないときは、通常の使用中であり、反対に、累積カウンタ３３を動作させたいときは、例えば、工場内におけるテストモード中である。従って、半導体集積回路装置が、テストモードであるときに、イネーブル信号ＰＬＣ２ＥＮＢを活性化するようにしても良い。
【００４４】
次に、ループカウンタ３１、及び累積カウンタ３３の回路例を説明する。
【００４５】
本例のループカウンタ３１は、例えば、ｍ＋１ビットの出力ＰＬＣＯＵＴ<０:ｍ>を持つ２進カウンタである。同様に、本例の累積カウンタ３３は、例えば、ｎ＋１ビットの出力ＰＬＣ２ＯＵＴ<０:ｎ>を持つ２進カウンタである。累積カウンタ３３の出力ビット数は、ループカウンタ３１の出力ビット数よりも多い。このため、累積カウンタ３３には、ループカウンタ３１に比較して、例えば、フリップフロップ回路が多く必要となる。
【００４６】
図８Ａにループカウンタ３１の一回路例を示し、図８Ｂに累積カウンタ３３の一回路例を示す。例えば、累積カウンタ３３のフリップフロップ回路ＦＦをｎ＋１個、ループウンタ３１のフリップフロップ回路ＦＦをｍ＋１個としたとき、“ｎ”と“ｍ”との関係は、ｎ＞＞ｍである。このように、累積カウンタ３３は、ループカウンタ３１よりも多くのフリップフロップ回路ＦＦを必要とする。しかしながら、フリップフロップ回路ＦＦの増加分は、ＮＡＮＤ型フラッシュメモリチップの全ての回路に比較すると僅かである。よって、累積カウンタ３３はチップ面積を無用に増加させたり、回路レイアウトを圧迫したりはしない。
【００４７】
次に、書き込み動作の一例を説明する。
【００４８】
図９は、書き込み動作の一例を示す流れ図である。
【００４９】
図９に示すように、最初に、データを、書き込みを行うブロックから消去する（ＳＴ．１）。
【００５０】
次いで、ループカウンタ、及び累積カウンタをリセットする（ＳＴ．２、ＳＴ．３）。なお、累積カウンタは、通常動作においては非活性とし、テスト動作においてのみ活性化するようにしても良い。この場合には、累積カウンタはテスト動作のときのみリセットされる。次いで、書き込みを行い、書き込んだデータをベリファイする（ＳＴ．５、ＳＴ．６）。
【００５１】
ベリファイがＯＫならば、次に書き込むワード線が有るか否かを判断する（ＳＴ．７）。次に書き込むワード線が無いならば、ステータスをパスとし（ＳＴ．８）、書き込み動作を終了する。次に書き込むワード線があれば、書き込み動作を次の書き込むワード線に移し（ＳＴ．９）、書き込み電位Ｖｐｒｏｇを基準電位として（ＳＴ．１０）、ＳＴ．２に戻り、ループカウンタをリセットする。以下、上述の動作と同様にして、書き込みを行い、書き込んだデータをベリファイする（ＳＴ．５、ＳＴ．６）。
【００５２】
ベリファイがＮＧならば、累積カウンタの値が規定値に達しているか否かを判断する（ＳＴ．１１）。規定値に達していれば、ステータスをフェイルとし（ＳＴ．１２）、書き込み動作を終了する。規定値に達していなければ、次にループカウンタの値が規定値に達しているか否かを判断する。規定値に達していれば、ステータスをフェイルとし（ＳＴ．１４）、書き込み動作を終了する。規定値に達していなければ、ループカウンタの値、及び累積カウンタの値をそれぞれカウントアップする。次いで、書き込み電位Ｖｐｒｏｇの値を、ΔＶｐｒｏｇ分ステップアップし（ＳＴ１７）、ＳＴ．４に戻り、書き込みを行う。以下は、上述の動作を繰り返す。
【００５３】
本動作例においては、累積カウンタの値を、書き込み動作を行う前にリセットし、書き込み動作中にはリセットしない。従って、書き込み動作中、データ書き込みに要したプログラムループ回数を累積記憶することができる。なお、累積カウンタのリセットは、本動作例のように、書き込み動作を行う前にリセットしても良いし、書き込み動作を行った後にリセットしても良い。累積カウンタのリセットは、データ書き込みに要したプログラムループ回数を累積記憶できれば、何時リセットしても構わない。
【００５４】
第１実施形態によれば、累積カウンタを有することで、書き込み動作時、ページが変わっても、プログラムループ回数を累積記憶することができる。このため、例えば、ブロック全体の書き込みに要したプログラムループ回数は、ブロック全体の書き込みが終了した後に、累積カウンタに累積記憶されたプログラムループ回数を調べることで、簡単に知ることができる。累積カウンタに累積記憶されたプログラムループ回数は、例えば、テスト時に出力され、例えば、書き込み速度を、ブロック毎に知りたい場合のデータとして利用される。
【００５５】
従来は、一つのブロック全体の書き込みに要したプログラムループ回数を知るためには、一つのページの書き込みが終了する毎、かつ、ループカウンタがリセットされる前に書き込み動作を止め、ループカウンタに保持されたプログラムループ回数を調べていた。このような操作をブロック全体のページに対して行う必要があるため、膨大な処理時間と、煩雑な作業を要していた。例えば、一つのブロックが１６ページであった場合には、書き込み動作を、１６回停止させなければならない。さらに、一つのブロックが３２ページであった場合には、書き込み動作の停止は３２回に達する。
【００５６】
この点、第１実施形態は、一つのページの書き込みが終了する毎に書き込み動作を止める必要がなく、例えば、一つのブロックの書き込みが終了したときに、書き込み動作を止め、累積カウンタに累積記憶されたプログラムループ回数を調べれば良い。しかも、第１実施形態は、一つのブロックが１６ページであっても、３２ページであっても、それ以上であっても、書き込み動作の停止は１回で済む。
【００５７】
このように、第１実施形態によれば、一つのブロック全体の書き込みに要したプログラムループ回数を簡単に知ることができるばかりでなく、その処理時間を短縮でき、かつ、その操作が簡略化される、という利点を得ることができる。
【００５８】
さらに、第１実施形態は、一つのブロック中のページ数に関わらず、書き込み動作の停止は１回で良い。従って、今後、さらに進展する記憶容量の増大、例えば、一つのブロック中に集積されるページ数の増大にも有利である。
【００５９】
（第２実施形態）
第２実施形態が第１実施形態と異なるところは、半導体集積回路チップ自身で、チップの妥当性、例えば、チップがパスかフェイルかを判断することにある。
【００６０】
図１０は、この発明の第２実施形態に係る半導体集積回路装置の一例を示すブロック図である。
【００６１】
図１０に示すように、第２実施形態は、累積カウンタ３３の出力をデコードするデコーダ４１を有する。デコーダ４１は、累積カウンタ３３の出力、例えば、累積記憶したプログラムループ回数を示す出力ＰＬＣ２ＯＵＴと、１ブロック中のページ数とから平均ループ回数を算出し、出力する。
【００６２】
さらに、第２実施形態は、ステータス出力バッファ４２を有する。ステータス出力バッファ４２は、平均ループ回数が想定平均ループ回数よりも多いか少ないかを判断し、これをステータスとして出力する。例えば、平均ループ回数が想定平均ループ回数よりも多いときは、ステータスを“フェイル”、反対に少ないときは“パス”とする。また、ステータスとしては、“フェイル”、及び“パス”に限らず、書き込み速度に応じて表示するようにしても良い。例えば、“書き込み速度が速いクラス”、及び“書き込み速度が遅いクラス”である。
【００６３】
次に、第２実施形態の具体的な構成の一例を説明する。
【００６４】
具体的な構成の一例は、例えば、外部からステータスコマンドを入力すると、一つのブロック全体の書き込みに要したプログラムループ回数が想定平均ループ回数以下であるか否かが、“パス”もしくは“フェイル”のステータスとして出力されるものである。
【００６５】
図１１は、この発明の第２実施形態に係る半導体集積回路装置の具体的な構成の一例を示すブロック図である。
【００６６】
図１１に示すように、ステータスコマンドを、データ入出力バッファ６に入力する。入力されたステータスコマンドは、ステートマシン８に入力される。ステートマシン８は、入力されたステータスコマンドが“ブロック平均プログラムループの読み出し”である、と判断すると、例えば、図９に示した書き込み動作を開始する。
【００６７】
例えば、ステートマシン８は、まず、イネーブル信号ＰＬＣ２ＥＮＢを出力し、累積カウンタ３３を活性化させる。次いで、ステートマシン８は、リセット信号ＰＬＣＲＳＴ、及びＰＬＣＲＳＴ２を出力し、ループカウンタ３１、及び累積カウンタ３３をリセットする。次いで、ステートマシン８は、セット信号ＰＬＣＳＥＴ、及びＰＬＣＳＥＴ２を出力し、ループカウンタ３１、及び累積カウンタ３３をセットする。次いで、ステートマシン８は、コア２５に対して、プログラム・ベリファイ信号ＰＲＯＧ/ＶＥＲＩＦＹ信号を出力する。これに従って、コア２５は書き込み動作、及びベリファイ動作を繰り返す。信号ＰＲＯＧ/ＶＥＲＩＦＹ信号は、ループカウンタ３１、及び累積カウンタ３３にも入力される。ループカウンタ３１は、第１実施形態と同様に、プログラムループ回数を１ページ毎にカウントする。累積カウンタ３３も第１実施形態と同様であり、プログラムループ回数を１ブロック分カウントする。
【００６８】
１ブロック分のデータ書き込みが終了すると、累積カウンタ３３は、出力ＰＬＣ２ＯＵＴを出力する。出力ＰＬＣ２ＯＵＴは、累積ループカウントデコーダ４１に入力される。デコーダ４１は、出力ＰＬＣ２ＯＵＴと１ブロック中のページ数とから平均ループ回数を算出する。デコーダ４１は、算出された平均ループ回数を、出力ＰＬＣＡＯＵＴとして出力する。出力ＰＬＣＡＯＵＴは、ステータス出力バッファ４２に入力される。ステータス出力バッファ４２は、平均ループ回数が想定平均ループ回数よりも多いか少ないかを判断する。ステータス出力バッファ４２は、平均ループ回数が想定平均ループ回数よりも多いか少ないかを判断する。例えば、図６を参照して説明したように、ステータス出力バッファ４２は、ステータス出力Ｓｔａｔｕｓ Ｏｕｔを出力する。ステータス出力バッファ４２は、平均ループ回数が想定平均ループ回数よりも多いときは、ステータス出力Ｓｔａｔｕｓ Ｏｕｔを“フェイル”、又は“書き込み速度が遅いクラス”とし、反対に少ないときはステータス出力Ｓｔａｔｕｓ Ｏｕｔを“パス”、又は“書き込み速度が速いクラス”とする。
【００６９】
ステータス出力Ｓｔａｔｕｓ Ｏｕｔは、データ入出力バッファ６に入力される。データ入出力バッファ６は、上記ステータスを、例えば、チップの外部へと出力する。
【００７０】
図１２に、上述のステータスコマンドの入力からステータスの出力までの入出力波形の一例を示す。
【００７１】
図１２に示すように、チップのＩ／Ｏピンに、ステータスコマンドを入力すると、レディ／ビジーピンがハイレベルからロウレベルに遷移し、チップがビジー状態になったことが外部に通知される。ビジー状態の間、チップ内では、上述の書き込み動作が行なわれている。レディ／ビジーピンがロウレベルからハイレベルに遷移し、チップがレディ状態に復帰すると、続いてステータスがＩ／Ｏピンに出力される。
【００７２】
第２実施形態によれば、半導体集積回路チップの中で、例えば、１つのブロックの１つのページの書き込みに要する平均プログラムループ回数を算出する。そして、算出した平均プログラムループ回数に基づいて、このチップが“パス”、“フェイル”、“書き込み速度が速いクラス”、及び“書き込み速度が遅いクラス”のいずれであるのかを、このチップ自身で判断する。
【００７３】
従って、第２実施形態によれば、第１実施形態に比較して、その操作を、より簡単化することができる。
【００７４】
次に、ステータスコマンドの入力からステータスの出力までの入出力波形の他例を説明する。
【００７５】
例えば、図９に示したように、“ステータス＝フェイル”を出力するケースは、累積カウンタのカウント値が規定値に達したとき（もしくは超えたとき）、及びループカウンタのカウント値が規定値に達したとき（もしくは超えたとき）がある。これらのケースにおけるステータスを、第２実施形態に反映させるようにしても良い。
【００７６】
図１３は、上述のステータスコマンドの入力からステータスの出力までの入出力波形の一例を示す。
【００７７】
図１３に示すように、図１２に示す入出力波形と異なるところは、ステータスがＩ／Ｏピンに出力される前に、書き込み自体が“パス”であったのか“フェイル”であったのかのステータスを出力することにある。
【００７８】
“フェイル”がＩ／Ｏピンに出力された場合には、累積カウンタのカウント値が規定値に達したとき（もしくは超えたとき）、又はループカウンタのカウント値が規定値に達したとき（もしくは超えたとき）である。これは、ブロックへの書き込み自体ができなかった、つまり、ブロックはバッドブロックである、ことを示す。
【００７９】
対して、“パス”がＩ／Ｏピンに出力された場合には、平均プログラムループ回数に関わらず、ブロックへの書き込み自体はできた、ことを示す。つまり、ブロックはグッドブロックである。
【００８０】
従って、グッドブロックの場合のみ、つまり、“パス”がＩ／Ｏピンに出力された場合のみ、続いて、“ブロック平均プログラムループの読み出し”に対するステータスをＩ／Ｏピンに出力するようにしても良い。このときに、続いて出力されるステータスは、上記一例と同様に、“パス”、“フェイル”、“書き込み速度が速いクラス”、及び“書き込み速度が遅いクラス”のいずれかで良い。
【００８１】
例えば、“パス”の後、続いて、“パス”又は“書き込み速度が速いクラス”が出力された場合には、このチップは、ブロックへの書き込みが成功し、かつ、平均プログラムループ数以下（又は未満）であることが判る。もちろん、書き込んだブロックはグッドブロックであることも判る。
【００８２】
また、“パス”の後、続いて、“フェイル”又は“書き込み速度が遅いクラス”が出力された場合には、このチップは、ブロックへの書き込みが成功し、かつ、平均プログラムループ数を超えた（又は以上）であることが判る。もちろん、書き込んだブロックはグッドブロックであることも判る。
【００８３】
このように他例によれば、ステータスコマンドの入力によって、ブロック自体がグッドブロックであるかバッドブロックであるかも判るので、第２実施形態を、チップのテスト工程、例えば、スクリーニング工程に利用することも可能である。
【００８４】
また、ステータスを、書き込み速度が速いか遅いかで表示する場合には、２段階表示ではなく、３段階、４段階、…といった多段階表示としても良い。例えば、平均プログラムループ回数に応じて、書き込み速度が“高速であるクラス”、“中速であるクラス”、“低速であるクラス”と分類する。
【００８５】
このように、チップを、書き込み速度に応じて分類すれば、ＩＣカード、例えば、メモリカードにおいて、どのクラスのメモリチップを搭載するかによって、メモリカードを、書き込み速度に応じてクラス分けすることが可能となる。例えば、“超高速品”、“高速品”、及び“標準品”といったクラス分けである。
【００８６】
メモリカードを書き込み速度に応じてクラス分けすると、ユーザーは、好みに応じて、“超高速品”、“高速品”、及び“標準品”のいずれかを選択することができる。これは、ユーザーにとって便利である。
【００８７】
このように、一つのブロック全体のプログラムループ回数を簡単に知ることができるメモリを備えた第１、第２実施形態は、ＩＣカード、例えば、メモリカードへの使用に好適である。
【００８８】
以上、この発明をいくつかの実施形態により説明したが、この発明は各実施形態に限定されるものではなく、その実施にあたっては発明の要旨を逸脱しない範囲で種々に変形することが可能である。
【００８９】
また、各実施形態は単独で実施することが可能であるが、適宜組み合わせて実施することも可能である。
【００９０】
また、各実施形態は種々の段階の発明を含んでおり、各実施形態において開示した複数の構成要件の適宜な組み合わせにより、種々の段階の発明を抽出することが可能である。
【００９１】
また、実施形態は、この発明をＮＡＮＤ型フラッシュメモリに適用した例に基づき説明したが、この発明はＮＡＮＤ型フラッシュメモリに限られるものではなく、ＡＮＤ型、ＮＯＲ型等、ＮＡＮＤ型以外のフラッシュメモリにも適用することができる。さらに、これらフラッシュメモリを内蔵した半導体集積回路装置、例えば、プロセッサ、システムＬＳＩ等もまた、この発明の範疇である。
【図面の簡単な説明】
【００９２】
【図１】図１はこの発明の第１実施形態に係る半導体集積回路装置の一例を示すブロック図
【図２】図２は図１に示すメモリセルアレイの一例を示す図
【図３】図３はチップレイアウトの一例を示す平面図
【図４】図４は書き込みデータの流れを概略的に示すブロック図
【図５】図５は書き込み動作を概略的に示す動作波形図
【図６】図６はこの発明の第１実施形態に係る半導体集積回路装置が有するカウンタの一例を示すブロック図
【図７】図７はループカウンタ、及び累積カウンタへの入力信号の波形例を示す信号波形図
【図８】図８Ａはループカウンタの一例を示す回路図、図８Ｂは累積カウンタの一例を示す回路図
【図９】図９は書き込み動作の一例を示す図
【図１０】図１０はこの発明の第２実施形態に係る半導体集積回路装置の一例を示すブロック図
【図１１】図１１は、この発明の第２実施形態に係る半導体集積回路装置の具体的な構成の一例を示すブロック図
【図１２】図１２はステータスコマンド入力からステータスの出力までの入出力波形の一例を示す入出力波形図
【図１３】図１３はステータスコマンド入力からステータスの出力までの入出力波形の他例を示す入出力波形図
【符号の説明】
【００９３】
２１…ページバッファ、３１…ループカウンタ、３３…累積カウンタ、Ｍ…メモリセル、ＷＬ…ワード線
【図１】
2007004892.tif 000003
【図２】
2007004892.tif 000004
【図３】
2007004892.tif 000005
【図４】
2007004892.tif 000006
【図５】
2007004892.tif 000007
【図６】
2007004892.tif 000008
【図７】
2007004892.tif 000009
【図８】
2007004892.tif 000010
【図９】
2007004892.tif 000011
【図１０】
2007004892.tif 000012
【図１１】
2007004892.tif 000013
【図１２】
2007004892.tif 000014
【図１３】
2007004892.tif 000015