(57)【特許請求の範囲】
【請求項１】
第１のデータが記憶される消去状態と第２のデータが記憶されるプログラム状態とをそれぞれ持つ複数のセルを有するメモリブロックと、
プログラムコマンドに応答して、前記セルにパルスを印加して電荷をチャージし前記消去状態から前記プログラム状態に変化させるプログラム動作を実行する制御回路とを有し、
前記制御回路は、診断コマンドに応答して、データが書き込まれたメモリブロック内の前記消去状態の診断対象セルが前記プログラム状態に変化しない範囲で前記診断対象セルにパルスを印加し、前記診断対象セルのチャージ速度が、正常なセルのうち最もチャージ速度が遅い最遅セルのチャージ速度以上か否かをチェックする診断動作を実行するメモリデバイス。
【請求項２】
前記診断動作での前記チェックは、前記診断対象セルの閾値電圧が、前記消去状態から、前記消去状態とプログラム状態とを区別する読出基準電圧より低い診断基準電圧に達するときの前記パルス数が、前記最遅セルの閾値電圧が前記診断基準電圧に達するに要するパルス数以下か否かのチェックである請求項１に記載のメモリデバイス。
【請求項３】
前記診断動作での前記チェックは、診断基準パルス数を前記診断対象セルに印加したときの、前記診断対象セルの閾値電圧が、前記最遅セルに前記診断基準パルス数を印加したときに前記最遅セルの閾値電圧が達する診断基準電圧以上か否かのチェックであり、
前記診断基準パルス数は、正常なセルのうち最もチャージ速度が速い最速セルの閾値電圧が、前記消去状態から、前記消去状態とプログラム状態とを区別する読出基準電圧より低い第１の電圧に達するときの診断パルス数である請求項１に記載のメモリデバイス。
【請求項４】
第１のデータが記憶される消去状態と第２のデータが記憶されるプログラム状態とをそれぞれ持つ複数のセルを有するメモリブロックを有し、プログラムコマンドに応答して、前記セルにパルスを印加して電荷をチャージし前記消去状態から前記プログラム状態の方向に変化させるプログラム動作を実行するメモリデバイスと、
書込要求に応答して、前記メモリデバイスにプログラムコマンドを発行して前記メモリデバイスに前記プログラム動作を実行させるコントローラとを有し、
前記コントローラは、診断要求に応答して、データが書き込まれたメモリブロック内の前記消去状態の診断対象セルが前記プログラム状態に反転しない範囲で前記診断対象セルにパルスを印加し、前記診断対象セルのチャージ速度が、正常なセルのうち最もチャージ速度が遅いセルのチャージ速度以上か否かをチェックする診断動作を実行する記憶装置。
【請求項５】
前記診断動作での前記チェックは、前記診断対象セルの閾値電圧が、前記消去状態から、前記消去状態とプログラム状態とを区別する読出基準電圧より低い診断基準電圧に達するときの前記パルス数が、前記最遅セルの閾値電圧が前記診断基準電圧に達するに要するパルス数以下か否かのチェックである請求項４に記載の記憶装置。
【請求項６】
前記診断動作での前記チェックは、診断基準パルス数を前記診断対象セルに印加したときの前記診断対象セルの閾値電圧が、前記最遅セルに前記診断基準パルス数を印加したときに前記最遅セルの閾値電圧が達する診断基準電圧以上か否かのチェックであり、
前記診断基準パルス数は、正常なセルのうち最もチャージ速度が速い最速セルの閾値電圧が、前記消去状態から、前記消去状態とプログラム状態とを区別する読出基準電圧より低い第１の電圧に達するときの診断パルス数である請求項４に記載の記憶装置。 
【請求項７】
第１のデータが記憶される消去状態と第２のデータが記憶されるプログラム状態とをそれぞれ持つ複数のセルを有するメモリブロックを有し、プログラムコマンドに応答して、前記セルにパルスを印加して電荷をチャージし前記消去状態から前記プログラム状態の方向に変化させるプログラム動作を実行するメモリデバイスを有する記憶装置の診断方法であって、
データが書き込まれたメモリブロック内の前記消去状態の診断対象セルが前記プログラム状態に反転しない範囲で前記診断対象セルにパルスを印加する工程と、
前記診断対象セルのチャージ速度が、正常なセルのうち最もチャージ速度が遅いセルのチャージ速度以上か否かをチェックする工程とを有する記憶装置の診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，メモリデバイス、記憶装置及び記憶装置の診断方法に関する。
【背景技術】
【０００２】
従来のハードディスクをメモリ媒体とする記憶装置に加えてまたは代えて、半導体メモリをメモリ媒体とするSSD(Solid State Drive)と呼ばれる記憶装置が広く利用されている。SSDの半導体メモリは、現在、フローティングゲートを有するセルトランジスタを利用するフラッシュメモリが一般的である。
【０００３】
フラッシュメモリは、セルトランジスタにパルスを印加してフローティングゲートに電子を注入またはチャージするプログラム動作と、基板に高電圧を印加してフローティングゲートの電子を引き抜くまたはディスチャージするイレーズ動作（消去動作）とを有する。そのため、フラッシュメモリは、セルトランジスタの半導体基板とフローティングゲート間の絶縁膜をトンネル効果で電子が通過することにより劣化する問題を有する。この絶縁膜の劣化は、プログラム動作に必要なパルス数の増大を招く。
【０００４】
したがって、コンピュータに装着されたSSD記憶装置について、定期的に劣化してないか否かを診断することが必要になる。劣化が検出された場合、そのようなSSD記憶装置を使用し続けることはコンピュータの誤動作の原因になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】WO2006/025083
【特許文献２】特開2004-054966号公報
【特許文献３】特開2008-176826号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、コンピュータに装着されたSSD記憶装置にはデータが書き込まれているので、データが書き込まれている記憶領域に診断データの書き込みを行うことができない。そのため、データが書き込まれている記憶領域の劣化を通常の書込動作で検出することはできない。
【０００７】
また、フラッシュメモリを有するSSD記憶装置は、データが書き込まれている記憶領域に診断データを上書きすることは通常できない。なぜなら、SSD記憶装置は内部にコントローラを有し、そのコントローラが、外部入力される論理アドレスを内部の物理アドレスに変換し、物理アドレスの領域に書き込みデータを書き込む。そして、データが記憶されている記憶領域の論理アドレスにデータの上書きを要求されると、コントローラは、論理アドレスに対応付けていた物理アドレスを変更し、データが書き込まれていない領域に新たにデータを書き込むからである。
【０００８】
そこで，実施の形態の第１の側面の目的は，データが書き込まれている記憶領域の不良を診断できる記憶装置及び記憶装置の診断方法を提供することにある。
【課題を解決するための手段】
【０００９】
本実施の形態の第１の側面は，第１のデータが記憶される消去状態と第２のデータが記憶されるプログラム状態とをそれぞれ持つ複数のセルを有するメモリブロックと、
プログラムコマンドに応答して、前記セルにパルスを印加して電荷をチャージし前記消去状態から前記プログラム状態に変化させるプログラム動作を実行する制御回路とを有し、
前記制御回路は、診断コマンドに応答して、データが書き込まれたメモリブロック内の前記消去状態の診断対象セルが前記プログラム状態に変化しない範囲で前記診断対象セルにパルスを印加し、前記診断対象セルのチャージ速度が、正常なセルのうち最もチャージ速度が遅い最遅セルのチャージ速度以上か否かをチェックする診断動作を実行するメモリデバイスである。
【発明の効果】
【００１０】
第１の側面によれば，データが書き込まれている記憶領域の不良を診断することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態における記憶装置の構成を示す図である。
【図２】コントローラの構成例を示す図である。
【図３】フラッシュメモリの構成例を示す図である。
【図４】フラッシュメモリのメモリセルの消去状態とプログラム状態とを説明する図である。
【図５】フラッシュメモリの読出状態を説明する図である。
【図６】フラッシュメモリのプログラムパルスによるチャージ特性を示す図である。
【図７】本実施の形態におけるフラッシュメモリの診断工程のフローチャート図である。
【図８】本実施の形態における診断工程を説明する図である。
【図９】通常のプログラムパルスのパターンと診断用のプログラムパルスのパターンの例を示す図である。
【図１０】第１の実施の形態における診断方法を示す図である。
【図１１】第１の実施の形態における診断対象セルの良否判定例のフローチャート図である。
【図１２】第２の実施の形態における診断方法を示す図である。
【図１３】第２の実施の形態おける診断パラメータNtst_1の設定工程のフローチャート図である。
【図１４】第２の実施の形態における診断対象セルの良否判定例のフローチャート図である。
【図１５】第３の実施の形態における診断方法を示す図である。
【図１６】第３の実施の形態おける診断パラメータVtst_2、Ntst_2の設定工程のフローチャート図である。
【図１７】第３の実施の形態における診断対象セルの良否判定例のフローチャート図である。
【発明を実施するための形態】
【００１２】
図１は、本実施の形態における記憶装置の構成を示す図である。記憶装置１は、単数または複数のフラッシュメモリFLMと、書込要求及びその書込データと読出要求とを入力する入出力端子２と、書込要求と読出要求に応答してフラッシュメモリFLMを制御するコントローラ３と、書込データや読出データを一時的に記憶するキャッシュメモリ４とを有する。フラッシュメモリFLMは、例えば１チップで構成されるメモリデバイスである。
【００１３】
コントローラ３は、コンピュータ（図示せず）が発行する書込要求に応答して、書込データをキャッシュメモリ４に一時的に格納し、フラッシュメモリFLMへの書込動作を制御する。フラッシュメモリFLMの書込動作は、例えば所定のデータ数を有するページ単位で行われる。また、コントローラ３は、コンピュータが発行する読出要求に応答して、フラッシュメモリFLMへの読出動作を制御する。フラッシュメモリFLMの読出動作も、例えばページ単位で行われる。
【００１４】
例えば、読み出し時も読み出しデータが一時的にキャッシュメモリに格納される場合がある。
【００１５】
図２は、コントローラの構成例を示す図である。コントローラ３は、例えばマイクロプロセッサであり、CPUである演算処理部１０と、ランダムアクセスメモリ１２と、入出力部１４とを有し、それらがバス１６を介して接続される。更に、コントローラ３は、フラッシュメモリFLMを制御するための書込プログラム２０と読出プログラム２２と消去プログラム２４とを有し、CPU１０が書込プログラムを実行してフラッシュメモリFLMへの書込を制御し、読出プログラムを実行してフラッシュメモリFLMへの読出を制御する。更に、CPU１０が消去プログラム２４を実行してフラッシュメモリFLMへの消去を制御する。
【００１６】
書込プログラム２０は、フラッシュメモリFLMのセルを消去状態からプログラム状態に遷移させるプログラム動作制御プログラムを有する。消去プログラム２４は、プログラム状態のセルを消去状態に遷移させる消去動作制御プログラムを有する。
【００１７】
さらに、コントローラ３は、診断プログラム２６を有し、CPU１０が診断プログラム２６を実行してフラッシュメモリFLMへの診断動作を制御する。診断プログラム２６は、例えば診断パラメータの設定を制御するプログラムと、診断動作を制御するプログラムとを有する。
【００１８】
さらに、図には示していないが、コントローラ３は、フラッシュメモリFLM内の複数のブロックに対して不良ブロックの管理と、記憶データの誤り訂正なども行う。
【００１９】
図３は、フラッシュメモリの構成例を示す図である。フラッシュメモリFLMは、１チップで構成されるメモリデバイスであり、マトリクス状に配列されたメモリセルMC00-MC13を有するメモリセルアレイMCAと、書込データを入力し読出データを出力する入出力バッファ３０と、ページバッファ３１と、コマンドを入力するコマンドバッファ３２と、コマンドに対応する動作の制御を行う制御回路３３と、メモリセルアレイMCA内のワード線WLと、セレクトゲート線SGと、ソース線SLを駆動する行駆動回路３４とを有する。
【００２０】
図３のメモリセルアレイMCAは、NAND型フラッシュメモリのメモリセルアレイであり、ビット線BL0,BL1とソース線SLとの間に、選択ゲートトランジスタSGTと、直列に接続された複数（図３の例は４個）のメモリセルMC00-MC03, MC10-13と、選択ゲートトランジスタSGTとを有する。ビット線BL0,BL1はページバッファ３１に接続されている。一対の選択ゲートトランジスタSGT間の複数のセルトランジスタMC00-MC03, MC10-13は、それぞれストリングと呼ばれる。また、図３のメモリセルアレイは、例えばメモリブロックに対応し、各ワード線で選択される２つのメモリセルがページに対応する。
【００２１】
メモリセルトランジスタMCは、半導体基板表面に形成したソース、ドレイン領域の間の半導体基板上に、第１の絶縁膜を介してフローティングゲートを有し、さらにフローティングゲート上に第２の絶縁膜を介してコントロールゲートを有する。コントロールゲートはワード線WLに接続されるか、またはワード線により構成される。
【００２２】
図４は、フラッシュメモリのメモリセルの消去状態とプログラム状態とを説明する図である。横軸はセルトランジスタの閾値電圧Vthを示し、縦軸はフラッシュメモリ内のメモリセルの数を示す。セルの消去状態ERは、フローティングゲートに電子が注入されていない状態であり、セルトランジスタの閾値電圧が読出基準電圧Vrefより低い。消去状態ERのセル群は一定の幅の閾値電圧を有する集合である。また、セルのプログラム状態PRは、フローティングゲートに電子が注入されている状態であり、セルトランジスタの閾値電圧が読出基準電圧Vrefより高い。プログラム状態PRのセル群も一定の幅の閾値電圧を有する集合である。
【００２３】
消去状態は例えばデータ「１」を記憶する状態であり、一方、プログラム状態は例えばデータ「０」を記憶する状態である。したがって、フラッシュメモリの書込動作は、全てのメモリセルが消去状態のブロックに対し、書込データが「０」のメモリセルにプログラムパルスを印加してフローティングゲートに電子を注入し、消去状態からプログラム状態に遷移するプログラム動作である。プログラム動作は複数ビットを有するページ単位で行われる。また、フラッシュメモリの消去動作は、消去状態のメモリセルに消去用の電圧を印加してフローティングゲートの電子を引き抜くことで、プログラム状態のメモリセルを消去状態に遷移する動作である。消去動作はブロック単位で一斉に行われる。
【００２４】
そして、フラッシュメモリの読出動作は、メモリセルのコントロールゲートに読出基準電圧Vrefを印加して、メモリセルが導通（オン）するか非導通（オフ）になるかを検出する動作であり、例えばページ単位で行われる。
【００２５】
ここで、プログラム動作によるフローティングゲートへの電子の注入は、電子のチャージとも称する。また、消去動作によるフローティングゲートから電子の引き抜きは、電子のディスチャージとも称する。
【００２６】
図５は、フラッシュメモリの読出動作を説明する図である。読出動作では、ビット線BL0,BL1を所定の正の電圧にし、ソース線SLをグランド電位Vssにする。その状態で、図３の行駆動回路３４が、選択ゲートトランジスタSGTのゲートに接続されている選択ゲート線SGに選択ゲートトランジスタSGTを導通させる電圧Vselを印加する。これにより、セルトランジスタ列MC00-MC03がビット線BL0とソース線SLとに接続され,別のセルトランジスタ列MC10-13がビット線BL1とソース線SLとに接続される。そして、選択されたセルトランジスタMC01,MC11のワード線WL1に読出基準電圧Vrefを印加し、それ以外の非選択のセルトランジスタのワード線WL0,WL2,WL3にプログラム状態の閾値電圧より高い電圧Vreadを印加する。読出基準電圧Vrefは、図４で示したとおり、消去状態ERとプログラム状態PRの閾値電圧の中間の電圧で、例えば０Vである。また、非選択セル電圧Vreadは、プログラム状態PRの閾値電圧より高い電圧で、例えば３．５Vである。
【００２７】
上記の状態で、選択セルトランジスタMC01,MC11は、消去状態であれば導通し、プログラム状態であれば非導通になる。一方、非選択セルトランジスタは全て導通する。その結果、選択セルトランジスタMC01,MC11が消去状態ならビット線BL0,BL1の電位が低下し、プログラム状態ならビット線BL0,BL1の電位は最初の正の電圧レベルを維持する。したがって、ページバッファ３１内の読出回路が、各ビット線BL0,BL1の電圧が高いか低いかを検出することで、選択セルトランジスタMC01,MC11の記憶データを読み出す。
【００２８】
図５に示された２つの選択ゲートトランジスタSGTで挟まれた２つのメモリセルのストリングが、１つのメモリブロックに対応する。そして、１つのワード線WLで選択される２個のメモリセルが１つのページに対応する。したがって、図５の例では、１つのページが２個のメモリセルを有し、ワード線WL1を選択することで１つのページの２ビットのデータが読み出される。また、１つのブロックが４つのページを有する。
【００２９】
書込動作では、全てのメモリセルが消去状態にあるブロックについて、書込データが「０」のメモリセルに対して、そのコントロールゲート（ワード線WL）と半導体基板との間にプログラムパルスが印加される。例えば、ソース線SLに正の電圧を印加し、半導体基板にグランド電圧を印加し、選択ゲートトランジスタSGTと非選択セルトランジスタMC00,MC02,MC03およびMC10,MC12,MC13を導通状態にする。そして、書込データが「０」の選択セルトランジスタのビット線BLにグランド電位を、書込データが「１」の選択セルトランジスタのビット線に正の電圧をそれぞれ印加し、選択セルのワード線WLに正のプログラムパルスを印加する。これにより、書込データが「０」の選択セルトランジスタのソース、ドレイン間に生じた電子がフローティングゲートに注入（またはチャージ）される。書込データが「１」の選択セルトランジスタには電子が注入されず消去状態のデータ「１」を維持する。
【００３０】
したがって、書込動作も、読出動作と同様に、ページ単位で行われる。
【００３１】
消去動作では、ブロック内の全てのメモリセルをプログラム状態にしてから、ブロック内の全ワード線と半導体基板との間に、プログラムパルスと逆方向の消去電圧を印加して、フローティングゲート内の電子を半導体基板側に引き抜く。消去動作はブロック単位で行われる。
【００３２】
図６は、フラッシュメモリのプログラムパルスによるチャージ特性を示す図である。横軸はプログラムパルスの数Nprogに、縦軸はセルトランジスタの閾値電圧Vthにそれぞれ対応する。上記で説明したとおり、セルトランジスタにプログラムパルスを印加することで、フローティングゲートに電子を注入し、セルトランジスタの閾値電圧Vthを上昇させる。または、別の言葉で言えば、セルトランジスタにプログラムパルスを印加することで、フローティングゲートに電子をチャージし、コントロールゲートとグランド電位の半導体基板との間のチャージ電圧を変化させる。
【００３３】
ここで、プログラムパルス数に対するチャージ電圧の変化率、またはプログラムパルス数に対するセルトランジスタの閾値電圧の変化率を、チャージ速度または電子の注入速度と称する。
【００３４】
図６に示されるとおり、チャージ速度が速いセルは、プログラムパルス数に対して閾値電圧Vth（またはチャージ電圧）の上昇速度が速く、少ないプログラムパルス数でセルトランジスタの閾値電圧Vthが読出基準電圧Vrefを超える。一方、チャージ速度が遅いセルは、プログラムパルス数に対して閾値電圧Vth（またはチャージ電圧）の上昇速度が遅く、多くのプログラムパルス数を印加しないとセルトランジスタの閾値電圧Vthが読出基準電圧Vrefを超えない。
【００３５】
図６中、チャージ速度が最速の正常セルのチャージ特性N_CELL_Fは、例えば二次曲線のように変化する。また、チャージ速度が最も遅い正常セルのチャージ特性N_CELL_Sは、例えばほぼ一次直線のように変化し、しかもチャージ速度または電子の注入速度が遅い。
【００３６】
フラッシュメモリは、工場出荷時のテストにより、全てのメモリセルのチャージ速度が所望の範囲内にあることをチェックされる。したがって、出荷されたフラッシュメモリのメモリセルのうち、チャージ速度が最速のセルのチャージ特性N_CELL_Fと最も遅いセルのチャージ特性N_CELL_Sは、上記の所望の範囲内にある。
【００３７】
しかし、フラッシュメモリは使用状態で、プログラム動作と消去動作を繰り返されることで、半導体基板とフローティングゲート間の絶縁膜が劣化しチャージ速度が低下する不良モードを有する。図６中、不良セルはそのチャージ特性AB_CELLのチャージ速度が低下し、最も遅い正常セルのチャージ特性N_CELL_Sよりチャージ速度が低くなっている。
【００３８】
［本実施の形態］
本実施の形態では、使用状態にあるフラッシュメモリを診断して、チャージ速度が最も遅い正常セルのチャージ特性N_CELL_Sよりもチャージ速度が低下している不良セルを検出する。但し、フラッシュメモリが使用状態にあるので、書込済みのブロックに対して書き込まれているデータを維持したまま診断することが必要になる。
【００３９】
図７は、本実施の形態におけるフラッシュメモリの診断工程のフローチャート図である。診断工程は、フラッシュメモリを内蔵する記憶装置のコントローラが制御する。コントローラ３は、外部からの診断要求等に応答して診断モードに入る（S1）。診断モードは、予め設定した所定間隔のタイミングでコントローラ３が自発的に診断モードに入っても良い。診断モードでは、コントローラ３は、記憶装置の外部からのアクセスに対してビジー状態を通知し、内蔵するフラッシュメモリに診断モードを通知する（S1）。
【００４０】
次に、コントローラ３は、フラッシュメモリFLMにリードコマンドを発行し、診断対象のブロックのデータR_DATAを読み出す（S2）。ここで診断対象のブロックは、既にデータが書き込まれているブロックである。そして、コントローラ３は、読出データR_DATAをキャッシュメモリ４に一時的に格納する。さらに、コントローラ３は、読出データR_DATAを反転して診断データD_DATAを生成する（S3）。この反転により、書き込まれているデータである読出データR_DATAが「１」の場合、診断データD_DATAは「０」になる。
【００４１】
図７の読出データR_DATAと診断データD_DATAは４行１６列のデータを有し、１行の１６ビットのデータがページに対応する。したがって、図７の１ブロックのデータR_DATA, D_DATAは、４ページのデータを有し、１ページは１６ビットを有する。
【００４２】
そして、コントローラ３は、フラッシュメモリFLMに診断プログラムコマンドを発行し、書込データとして診断データD_DATAを供給し、フラッシュメモリに診断データをプログラムさせ、診断セルの良否判定を行う（S4）。前述のとおり、フラッシュメモリは、通常のプログラム動作では書込データが「０」のメモリセルに対してプログラムパルスを印加する。一方、診断モードでは、コントローラが読出データを反転した診断データD_DATAを書き込みデータとしてフラッシュメモリに与える。したがって、診断モードでのプログラム動作（以下診断プログラム動作と称する）では、消去状態（読出データ「１」、診断データ「０」）のメモリセルにのみプログラムパルスを印加する。
【００４３】
更に、診断モードでの診断プログラム動作では、消去状態のメモリセルがプログラム状態に遷移しない範囲でプログラムパルスを印加する。これにより、診断モードでの診断プログラム動作でデータ「１」のメモリセルがデータ「０」の状態に遷移することはなく、診断対象メモリセルの書込データ「１」は維持される。つまり、本実施の形態の診断動作では、書込済みのブロックの書込データを変更することなく、消去状態のメモリセルのチャージ特性をチェックして、ブロック内のメモリセルの劣化状態をチェックする。診断モードでのプログラム動作については、後で詳述する。
【００４４】
図８は、本実施の形態における診断工程を説明する図である。図８は、図４と同様に、横軸がセルトランジスタの閾値電圧Vthであり、縦軸がセル数である。診断工程では、消去状態のセルトランジスタにプログラムパルスを印加してその閾値電圧を上昇させる。この点は図４のプログラム動作と同様である。但し、診断工程では、消去状態のセルトランジスタの閾値電圧が、読出基準電圧Vrefを超えない範囲でプログラムパルスを印加する。例えば、プログラムパルスを印加するたびに診断対象のセルの閾値電圧をチェックし、読出基準電圧Vrefより低い診断基準電圧Vtstに達したか否かを確認する。または、チャージ速度が最速のセルが診断基準電圧Vtstに達するプログラムパルス数を予め測定しておき、診断工程では、その測定したプログラムパルス数までしか診断対象セルに印加しないようにし、診断対象セルのチャージ速度を測定する。
【００４５】
図９は、通常のプログラムパルスのパターンと診断用のプログラムパルスのパターンの例を示す図である。通常のプログラムパルスのパターンPP1は、パルス数が増大するとパルスの電圧Vcg1が上昇する。その理由は、プログラムパルスが印加されフローティングゲートに電子が注入（またはチャージ）されると、フローティングゲートの電位が低下して電子が注入しにくくなるからである。そのため、その後のプログラムパルスの電圧Vcg1をより高くすることで、半導体基板とフローティングゲート間の電圧を電子が注入するのに十分な大きさの電圧にする。
【００４６】
それに対して、診断用のプログラムパルスのパターンPP2も同様にパルス数が増大するとパルスの電圧が上昇する。ただし、各パルスの電圧Vcg2は通常のプログラムパルスの電圧Vcg1よりも低い。そのため、診断用のプログラムパルスの場合、１つのパルスを印加することによりフローティングゲートに注入する電子の数が、通常のプログラムパルスよりも少なくなる。
【００４７】
診断用プログラムパルスを利用することにより、診断動作でのセルのチャージ速度（１パルス当たりのチャージ電圧または閾値電圧の上昇率）を通常のプログラム動作よりも低くすることができる。その結果、確実に診断対象のメモリセルが読出基準電圧Vrefを超えないように制御できる。
【００４８】
本実施の形態では、診断用プログラムパルスを利用してセルの診断を行うが、通常のプログラムパルスでセルの診断を行っても良い。
【００４９】
［第１の実施の形態］
図１０は、第１の実施の形態における診断方法を示す図である。図１０において、横軸は診断プログラムパルスのパルス数Nprogであり、縦軸はセルの閾値電圧Vth(またはチャージ電圧)である。フラッシュメモリには、工場出荷時に正常セルのうちチャージ速度（＝パルス数）が最速の正常セルのチャージ特性N_CELL_Fと最も遅い正常セルのチャージ特性N_CELL_Sのデータまたはそれに関連するデータが書き込まれている。
【００５０】
診断工程において、診断対象セルの閾値電圧Vthが読出基準電圧Vrefより低い診断基準電圧Vtstを超えない範囲で、診断対象セルに診断用のプログラムパルスが印加される。そして、診断対象メモリセルのチャージ速度が、最も遅い正常セルN_CELL_Sのチャージ速度以上であれば正常セル、未満であれば不良セルと判定される。
【００５１】
例えば、コントローラ３が、フラッシュメモリに診断プログラムパルスを印加するたびに診断基準電圧Vtstに基づく読み出しを実行させ、診断読出データを出力させる。そして、コントローラ３が、診断読出データに基づいて診断対象セルの閾値電圧Vthが診断基準電圧Vtstに達した時のパルス数に基づいてチャージ速度を検出し、診断対象セルのチャージ速度が最も遅い正常セルのチャージ速度以上か否かを判定する。この診断工程の判定動作については後で詳述する。
【００５２】
図１１は、第１の実施の形態における診断対象セルの良否判定例のフローチャート図である。このフローチャートは、コントローラ３が主体となって行っても良いし、フラッシュメモリ内の制御回路３３が主体となって行っても良い。
【００５３】
診断開始時の前程として、診断対象ブロック内の消去状態である診断対象セルの閾値電圧Vthが、消去ベリファイ工程により一定の狭い範囲の閾値電圧にされている。その消去状態の閾値電圧をVth_er（図１０参照）とする。
【００５４】
コントローラ３または制御回路３３は、診断パルス回数Nを初期値N=1に設定し（S11）、診断対象セルに１つの診断用プログラムパルスを印加し（S12）、診断対象セルの閾値電圧Vthを測定する（S13）。この閾値電圧Vthの測定は、チャージ電圧を測定していることと実質的に等価である。そして、コントローラ３または制御回路３３は、診断対象セルの閾値電圧Vthが診断基準電圧Vtstに達したか否かチェックする（S14）。このチェックは、例えば診断基準電圧Vtstを読出基準電圧にして行った読出データに基づいて行うことができる。つまり、診断対象セルのワード線に診断基準電圧Vtstを印加して診断対象セルが導通するか否かをビット線電位でチェックする診断用読出動作を実行し、その読出データでチェックできる。
【００５５】
診断対象セルの閾値電圧Vthが未だ診断基準電圧Vtstに達していない場合（S14のNO）、診断パルス回数を増加（N=N+1）し（S15）、診断対象セルの閾値電圧Vthが診断基準電圧Vtstに達するまで（S14のYES）工程S12,S13,S14を繰り返す。
【００５６】
診断対象セルの閾値電圧Vthが診断基準電圧Vtstに達したら（S14のNO）、制御回路３３またはコントローラ３は、診断対象セルのチャージ速度（Vtst-Vth_er）/Nが、最もチャージ速度が遅い正常セルのチャージ速度N_CELL_S以上か否かをチェックする（S16）。制御回路３３またはコントローラ３は、診断対象セルのチャージ速度が最も遅い正常セルのチャージ速度以上であれば良品セル（S17）、未満であれば不良セル（S18）と判定する。
【００５７】
コントローラ３が図１１の診断工程を実行する場合は、コントローラ３は診断プログラムコマンドを１ページの診断データと共にフラッシュメモリFLMに入力する。それに応答して、フラッシュメモリFLMの制御回路３３は、診断対象のページ内の消去状態の診断対象セル（読み出しデータが「１」で診断用データが「０」のセル）に診断プログラムパルスを印加する。その後、コントローラ３は、診断対象ページの診断用の読出を実行する。この診断対象ページの診断用読出要求に応答して、フラッシュメモリFLMは、読出基準電圧を診断基準電圧Vtstに設定して診断対象ページの読出を行う。コントローラ３は、読出データのうち診断対象セルの読出データが「１」から「０」に反転した時点でのパルス回数に基づいて診断対象セルのチャージ速度が最も遅い正常セルのチャージ速度以上か否かをチェックする。
【００５８】
フラッシュメモリFLM内の制御回路３３が図１１の診断工程を実行する場合は、コントローラは診断プログラムコマンドを１ページの診断データとともにフラッシュメモリFLMに入力する。それに応答して、フラッシュメモリFLMの制御回路３３は、図１１の診断工程を実行し、診断データが「０」の診断対象セルが良品か不良品かの診断結果を出力する。
【００５９】
［第２の実施の形態］
図１２は、第２の実施の形態における診断方法を示す図である。図１２においても、図１０と同様に、横軸は診断プログラムパルスのパルス数Nprogであり、縦軸はセルの閾値電圧Vth(またはチャージ電圧)である。
【００６０】
また、フラッシュメモリにおいて、工場出荷時に、最もチャージ速度が遅い正常セルが、診断基準電圧Vtst_1に達するのに必要な診断基準パルス数Ntst_1が調査され、そのデータNtst_1が記憶領域内に記憶されている。診断基準電圧Vtst_1は、読出基準電圧Vrefより十分に低いが消去状態のセルの閾値電圧Vth_erより高い。
【００６１】
診断工程では、コントローラ３またはフラッシュメモリの制御回路３３は、診断対象セルに１つの診断用プログラムパルスを印加するたびに、診断対象セルの閾値電圧Vthが診断基準電圧Vtstを超えたか否かをチェックする。そして、コントローラ３またはフラッシュメモリの制御回路３３は、診断対象セルの閾値電圧が診断基準電圧Vtstを超えたときのパルス数N1またはN2が、診断基準パルス数Ntst_1以下か否かを判定する。図１２中のパルス数N1は診断基準パルス数Ntst_1以下であるので、良品と判定され、パルス数N2は診断基準パルス数Ntst_1を超えているので、不良品と判定される。
【００６２】
この判定は、診断対象セルのチャージ速度が、最も遅い正常セルN_CELL_Sのチャージ速度以上であれば正常セル、未満であれば不良セルと判定することと等価である。つまり、パルス数N1の場合、診断対象セルのチャージ速度は最も遅い正常セルのチャージ速度以上であり、一方、パルス数N2の場合、診断対象セルのチャージ速度は最も遅い正常セルのチャージ速度未満である。
【００６３】
図１３は、第２の実施の形態おける診断パラメータNtst_1の設定工程のフローチャート図である。本実施の形態の診断を行うためには、工場出荷時に診断パラメータNtst_1が検出され、フラッシュメモリFLM内の記憶領域に記憶される。また、診断用プログラムパルスの情報も記憶される。
【００６４】
診断パラメータの設定工程は、試験装置により行われる。試験装置は、全てのセルが消去状態のブロックに対して診断パラメータの設定を行う。まず、試験装置は、パルス回数Nを初期値N=1に設定し（S20）、フラッシュメモリのブロック内のセルに診断用プログラムパルスを印加するたびに（S21）、読出基準電圧を診断基準電圧Vtstに置き換えた診断用読出でセルのデータを読み出す（S22）。そして、その読出データが「１」から「０」に反転したか否かをチェックする（S23）。反転していなければ（S23のNO）、N=N+1にして（S24）、工程S21-S23を読出データが「１」から「０」に反転するまで繰り返す。上記の工程S21-S24は、ブロック内のページ単位で書込データを全て「０」とする診断用プログラムコマンドにより行われる。ページ内の複数のセルが全てデータ「０」に反転するまで繰り返され、セル毎に反転するまでのパルス数Nが記録される。
【００６５】
そして、試験装置は、セルのパルス数Nを予め初期値に設定されている最大数Nmaxと比較し、それより大きければ検出したパルス数Nで最大数Nmaxを更新する（S25）。試験装置は、上記の工程を、ブロック内の全てのセル対して行い（S26,S27）、対象ブロック内の全てのセルの読出データが「１」から「０」に反転するパルス回数を検出するまで繰り返す。試験装置は、ブロック内の全てのセルがチェックされると、対象ブロックの最大数Nmaxを記録する（S28）。
【００６６】
さらに、試験装置は、フラッシュメモリ内の全てのブロックについて繰り返す（S29,S30）。最後に、試験装置は、ブロック毎に最大数Nmaxを診断基準パルス数Ntst_1に記録する（S31）。または、試験装置は、フラッシュメモリ内で最大の最大数Nmaxを診断基準パルス数Ntst_1に記録する（N31）。
【００６７】
図１４は、第２の実施の形態における診断対象セルの良否判定例のフローチャート図である。図１４の診断対象セルの良否判定工程も、コントローラ３またはフラッシュメモリの制御回路３３が実行する。以下は簡単のためにコントローラ３が実行するものとして説明する。
【００６８】
診断開始時の前程として、診断対象ブロック内の消去状態である診断対象セルの閾値電圧Vthが、消去ベリファイ工程により一定の狭い範囲の閾値電圧にされている。その消去状態の閾値電圧をVth_erとする。
【００６９】
コントローラ３は、診断パルス回数Nを初期値N=1に設定し（S41）、診断対象セルに１つの診断用プログラムパルスを印加し（S42）、読出基準電圧Vrefを診断基準電圧Vtst_1に置き換えた診断用読出を行い、診断セルのデータを読み出す（S43）。そして、コントローラ３は、診断対象セルの読出データが「１」から「０」に反転したか否かチェックする（S44）。上記の診断用プログラムパルスの印加と診断セルのデータの読出は、例えば次のようにして行う。つまり、コントローラ３が、フラッシュメモリに診断用プログラムコマンドを１ページの診断用データと共に入力し、フラッシュメモリに診断用プログラムパルスの印加を行わせ、その後診断用リードコマンドを入力し、その診断読出データを出力させる。
【００７０】
診断対象セルの診断読出データが未だデータ「０」に反転していない場合（S44のNO）、コントローラ３は、診断パルス回数を増加（N=N+1）し（S45）、診断対象セルの診断読出データがデータ「０」に反転するまで（S44のYES）工程S42,S43,S44を繰り返す。
【００７１】
診断対象セルの診断読出データがデータ「０」に反転したら（S44のNO）、コントローラ３は、各診断対象セルについてデータ「０」に反転したときのパルス数Nが診断基準パルス数Ntst_1以下か否かチェックする（S46）。コントローラ３は、そのパルス数Nが診断基準パルス数Ntst_1以下であれば良品セル（S47）、超えていれば不良セル（S48）と判定する。
【００７２】
フラッシュメモリFLM内の制御回路３３が図１４の診断工程を実行する場合も、図１１で説明したのと同様に、コントローラは診断プログラムコマンドを１ページの診断データとともにフラッシュメモリFLMに入力する。それに応答して、フラッシュメモリFLMの制御回路３３は、図１４の診断工程を実行し、診断対象セルが良品か不良品かの診断結果を出力する。
【００７３】
［第３の実施の形態］
図１５は、第３の実施の形態における診断方法を示す図である。図１５においても、図１０、図１２と同様に、横軸は診断プログラムパルスのパルス数Nprogであり、縦軸はセルの閾値電圧Vthである。
【００７４】
また、フラッシュメモリには、工場出荷時に、最もチャージ速度が速い正常セルが読出基準電圧Vrefより十分に低い電圧Vtst_0に達する診断基準パルス数Ntst_2と、最もチャージ速度が遅い正常セルに診断基準パルス数Ntst_2を印加した時にその閾値電圧Vthが達する診断基準電圧Vtst_2とが調査される。そして、その診断基準パルスNtst_2と診断基準電圧Vtst_2のデータが記憶領域内に記憶されている。電圧Vtst_0と診断基準電圧Vtst_2は、読出基準電圧Vrefより十分に低いが消去状態のセルの閾値電圧Vth_erより高い。
【００７５】
診断工程では、コントローラ３またはフラッシュメモリの制御回路３３は、診断対象セルに診断基準パルス数Ntst_１の診断用プログラムパルスを印加する。そして、診断対象セルの閾値電圧Vthが診断基準電圧Vtst_2以上か否かをチェックする。診断対象セルの閾値電圧Vthが診断基準電圧Vtst_2以上か否かのチェックは、読出基準電圧を診断基準電圧Vtst_2に置き換えた診断読出で読み出したデータをチェックすることで行う。そして、コントローラ３または制御回路３３は、診断読出データが「０」なら良品、「１」なら不良品と判断する。
【００７６】
この判定は、診断対象セルのチャージ速度が、最も遅い正常セルN_CELL_Sのチャージ速度以上であれば正常セル、未満であれば不良セルと判定することと等価である。つまり、審査対象セルに診断基準パルスNtst_2を印加したときの診断対象セルの閾値電圧Vthが診断基準電圧Vtst_2以上なら、診断対象セルのチャージ速度は最も遅い正常セルのチャージ速度以上であり、一方、以下なら診断対象セルのチャージ速度は未満である。
【００７７】
しかも、第３の実施の形態では、診断工程では診断対象セルに診断基準パルス数Ntst_2の診断パルスを連続して印加した後に、読出基準電圧を診断基準電圧Vtst_2にした診断読出で出力されるデータが「０」か「１」かで、良品か不良品かを判定できる。また、診断対象セルが最速のチャージ速度を有していても、診断基準パルス数Ntst_2を印加することにより、記憶されているデータ「１」が反転することはない。
【００７８】
図１６は、第３の実施の形態おける診断パラメータVtst_2、Ntst_2の設定工程のフローチャート図である。本実施の形態の診断を行うためには、工場出荷時に診断パラメータVtst_2、Ntst_2が検出され、フラッシュメモリFLM内の記憶領域に記憶される。また、診断用プログラムパルスの情報も記憶される。
【００７９】
診断パラメータの設定工程は、試験装置により行われる。試験装置は、全てのセルが消去状態のブロックに対して診断パラメータの設定を行う。まず、試験装置は、パルス回数Nを初期値N=1に設定し（S50）、フラッシュメモリのブロック内のセルに診断用プログラムパルスを印加するたびに（S51）、読出基準電圧を診断基準電圧Vtst_0に置き換えた診断用読出でセルのデータを読み出し（S52）。読出データが「１」から「０」に反転したか否かをチェックする（S53）。反転していなければ（S53のNO）、N=N+1にして（S54）、工程S51-S53を読出データが「１」から「０」に反転するまで繰り返す。ページ内の複数のセルが全てデータ「０」に反転するまで繰り返され、セル毎に反転するまでのパルス数Nを検出される。
【００８０】
そして、試験装置は、セルのパルス数Nを予め初期値に設定されている最小数Nminと比較し、それより小さければ検出したパルス数Nで最小数Nminを更新する（S55）。試験装置は、上記の工程を、ブロック内の全てのセル対して行い（S56,S57）、対象ブロック内の全てのセルの読出データが「１」から「０」に反転するパルス回数を検出するまで繰り返す。
【００８１】
試験装置は、ブロック内の全てのセルがチェックされる(S56のYES)と、ブロック内の全セルに診断基準パルス数Ntst_2=Nminを印加し、全セルの閾値電圧のうち最小値Vtst_2を検出する（S58）。この全セルの最小閾値電圧の測定は、例えば、読出基準電圧を変化させながら全セルの読出動作を繰り返し、最初に読出データが反転したときの読出基準電圧を検出することで行われる。
【００８２】
さらに、試験装置は、フラッシュメモリ内の全てのブロックについて繰り返す（S59,S60）。最後に、試験装置は、ブロック毎に最小数Nminを診断基準パルス数Ntst_2に、最小閾値電圧を診断基準電圧Vtst_2にそれぞれ記録する（S61）。または、試験装置は、フラッシュメモリ内で最小の最小数Nminを診断基準パルス数Ntst_2に、最小の最小閾値電圧を診断基準電圧Vtst_2にそれぞれ記録する（N61）。
【００８３】
図１７は、第３の実施の形態における診断対象セルの良否判定例のフローチャート図である。図１７の診断対象セルの良否判定工程も、コントローラ３またはフラッシュメモリの制御回路３３が実行する。以下は簡単のためにコントローラ３が実行するものとして説明する。
【００８４】
第３の実施の形態でも、診断開始時の前程として、診断対象ブロック内の消去状態である診断対象セルの閾値電圧Vthが、消去ベリファイ工程により一定の狭い範囲の閾値電圧にされている。その消去状態の閾値電圧をVth_erとする。
【００８５】
コントローラ３は、診断対象セルに診断用プログラムパルスを診断基準パルス数Ntst_2印加し（S71）、読出基準電圧Vrefを診断基準電圧Vtst_2に置き換えた診断用読出を行い、診断セルのデータを読み出す（S72）。そして、コントローラ３は、診断対象セルの読出データが「０」か否かチェックする（S73）。上記の診断用プログラムパルスの印加と、診断セルのデータの読出は、例えば次のように行う。つまり、コントローラ３が、フラッシュメモリに診断用プログラムコマンドを診断用データと共に入力して診断用プログラムパルスを印加させ、その後診断用リードコマンドを入力して診断対象ページの診断用データを読み出す。
【００８６】
コントローラ３は、診断対象セルの診断読出データがデータ「０」なら（S73のYES）、良品セル（S74）、データ「１」なら(S73のNO)、不良セル（S75）と判定する。
【００８７】
フラッシュメモリFLM内の制御回路３３が図１７の診断工程を実行する場合は、図１１、図１４で説明したのと同様に、コントローラは診断プログラムコマンドを１ページの診断データとともにフラッシュメモリFLMに入力する。それに応答して、フラッシュメモリFLMの制御回路３３は、図１７の診断工程を実行し、診断対象セルが良品か不良品かの診断結果を出力する。
【００８８】
いずれの場合も、第３の実施の形態によれば、診断工程は診断読出回数が１回で済むので短時間で完了できる。
【００８９】
本実施の形態の診断工程は、フラッシュメモリ内のデータが書き込まれている全てのブロックに対して行い、不良セルがエラーチェックコードで誤り訂正できない数検出されたブロックを不良ブロックと判定する。そして、フラッシュメモリ内の不良ブロックが所定の基準数を越えた場合に、そのフラッシュメモリを寿命がきたと判定する。
【００９０】
以上の実施の形態において、診断基準電圧Vtstは、読出基準電圧Vrefより所定の読出動作マージン電圧より低い電圧であることが好ましい。診断基準電圧Vtstをそのような電圧に設定することで、診断対象セルは診断後においても消去状態を適切に維持でき、診断対象ブロック内の書込データを維持できる。
【００９１】
以上説明したとおり、本実施の形態では、データが書き込まれているフラッシュメモリに対して、書き込まれたデータを維持したまま、劣化したか否かの診断を行うことができる。
【００９２】
以上の実施の形態をまとめると，次の付記のとおりである。
【００９３】
（付記１）
第１のデータが記憶される消去状態と第２のデータが記憶されるプログラム状態とをそれぞれ持つ複数のセルを有するメモリブロックと、
プログラムコマンドに応答して、前記セルにパルスを印加して電荷をチャージし前記消去状態から前記プログラム状態に変化させるプログラム動作を実行する制御回路とを有し、
前記制御回路は、診断コマンドに応答して、データが書き込まれたメモリブロック内の前記消去状態の診断対象セルが前記プログラム状態に変化しない範囲で前記診断対象セルにパルスを印加し、前記診断対象セルのチャージ速度が、正常なセルのうち最もチャージ速度が遅い最遅セルのチャージ速度以上か否かをチェックする診断動作を実行するメモリデバイス。
【００９４】
（付記２）
前記診断動作での前記チェックは、前記診断対象セルの閾値電圧が、前記消去状態から、前記消去状態とプログラム状態とを区別する読出基準電圧より低い診断基準電圧に達するときの前記パルス数が、前記最遅セルの閾値電圧が前記診断基準電圧に達するに要するパルス数以下か否かのチェックである付記１に記載のメモリデバイス。
【００９５】
（付記３）
前記診断動作での前記チェックは、診断基準パルス数を前記診断対象セルに印加したときの、前記診断対象セルの閾値電圧が、前記最遅セルに前記診断基準パルス数を印加したときに前記最遅セルの閾値電圧が達する診断基準電圧以上か否かのチェックであり、
前記診断基準パルス数は、正常なセルのうち最もチャージ速度が速い最速セルの閾値電圧が、前記消去状態から、前記消去状態とプログラム状態とを区別する読出基準電圧より低い第１の電圧に達するときの診断パルス数である付記１に記載のメモリデバイス。
【００９６】
（付記４）
前記正常なセルのうち最もチャージ速度が遅いセルのチャージ速度のデータが記憶されている付記１に記載のメモリデバイス。
【００９７】
（付記５）
前記診断基準電圧と、前記最遅セルの閾値電圧が前記診断基準電圧に達するに要するパルス数のデータが記憶されている付記２に記載のメモリデバイス。
【００９８】
（付記６）
前記診断基準パルス数と、前記診断基準電圧のデータが記憶されている付記３に記載のメモリデバイス。
【００９９】
（付記７）
第１のデータが記憶される消去状態と第２のデータが記憶されるプログラム状態とをそれぞれ持つ複数のセルを有するメモリブロックを有し、プログラムコマンドに応答して、前記セルにパルスを印加して電荷をチャージし前記消去状態から前記プログラム状態の方向に変化させるプログラム動作を実行するメモリデバイスと、
書込要求に応答して、前記メモリデバイスにプログラムコマンドを発行して前記メモリデバイスに前記プログラム動作を実行させるコントローラとを有し、
前記コントローラは、診断要求に応答して、データが書き込まれたメモリブロック内の前記消去状態の診断対象セルが前記プログラム状態に反転しない範囲で前記診断対象セルにパルスを印加し、前記診断対象セルのチャージ速度が、正常なセルのうち最もチャージ速度が遅いセルのチャージ速度以上か否かをチェックする診断動作を実行する記憶装置。
【０１００】
（付記８）
前記診断動作での前記チェックは、前記診断対象セルの閾値電圧が、前記消去状態から、前記消去状態とプログラム状態とを区別する読出基準電圧より低い診断基準電圧に達するときの前記パルス数が、前記最遅セルの閾値電圧が前記診断基準電圧に達するに要するパルス数以下か否かのチェックである付記７に記載の記憶装置。
【０１０１】
（付記９）
前記診断動作での前記チェックは、診断基準パルス数を前記診断対象セルに印加したときの前記診断対象セルの閾値電圧が、前記最遅セルに前記診断基準パルス数を印加したときに前記最遅セルの閾値電圧が達する診断基準電圧以上か否かのチェックであり、
前記診断基準パルス数は、正常なセルのうち最もチャージ速度が速い最速セルの閾値電圧が、前記消去状態から、前記消去状態とプログラム状態とを区別する読出基準電圧より低い第１の電圧に達するときの診断パルス数である付記７に記載の記憶装置。
【０１０２】
（付記１０）
前記正常なセルのうち最もチャージ速度が遅いセルのチャージ速度のデータが記憶されている付記７に記載の記憶装置。
【０１０３】
（付記１１）
前記診断基準電圧と、前記最遅セルの閾値電圧が前記診断基準電圧に達するに要するパルス数のデータが記憶されている付記８に記載の記憶装置。
【０１０４】
（付記１２）
前記診断基準パルス数と、前記診断基準電圧のデータが記憶されている付記９に記載の記憶装置。
【０１０５】
（付記１３）
第１のデータが記憶される消去状態と第２のデータが記憶されるプログラム状態とをそれぞれ持つ複数のセルを有するメモリブロックを有し、プログラムコマンドに応答して、前記セルにパルスを印加して電荷をチャージし前記消去状態から前記プログラム状態の方向に変化させるプログラム動作を実行するメモリデバイスを有する記憶装置の診断方法であって、
データが書き込まれたメモリブロック内の前記消去状態の診断対象セルが前記プログラム状態に反転しない範囲で前記診断対象セルにパルスを印加する工程と、
前記診断対象セルのチャージ速度が、正常なセルのうち最もチャージ速度が遅いセルのチャージ速度以上か否かをチェックする工程とを有する記憶装置の診断方法。
【符号の説明】
【０１０６】
１：SSD記憶装置
２：インターフェース
３：コントローラ
４：キャッシュメモリ
FLM：フラッシュメモリ、NAND型フラッシュメモリ
１０：CPU
１２：RAM
１４：入出力回路、I/O
２０：書き込みプログラム
２２：読み出しプログラム
２４：消去プログラム
２６：診断プログラム
３０：入出力バッファ
３１：ページバッファ（書込回路、読出回路）
３２：コマンドバッファ
３３：制御回路
３４：行駆動回路、ロードライバ
MCA：メモリセルアレイ、メモリブロック
SG：選択ゲート
WL：ワード線
SL：ソース線
BL：ビット線
SGT：選択ゲートトランジスタ
MC：メモリセル、セル、セルトランジスタ
ER：消去状態（データ１）
PR：プログラム状態（データ０）
N_CELL_F：最速正常セル
N_CELL_L：最遅正常セル
AB_CELL：不良セル
【図１】
0006394359.tif 000002
【図２】
0006394359.tif 000003
【図３】
0006394359.tif 000004
【図４】
0006394359.tif 000005
【図５】
0006394359.tif 000006
【図６】
0006394359.tif 000007
【図７】
0006394359.tif 000008
【図８】
0006394359.tif 000009
【図９】
0006394359.tif 000010
【図１０】
0006394359.tif 000011
【図１１】
0006394359.tif 000012
【図１２】
0006394359.tif 000013
【図１３】
0006394359.tif 000014
【図１４】
0006394359.tif 000015
【図１５】
0006394359.tif 000016
【図１６】
0006394359.tif 000017
【図１７】
0006394359.tif 000018