(57)【要約】【課題】  不揮発性メモリにおけるＥＣＣにおいて、書き込み／消去時のｎビットのエラー検出をオンチップにて高速に行い、コントローラの負荷を軽減することができる技術を提供する。【解決手段】  電気的に消去および書き込み可能な複数の不揮発性メモリセルを備え前記不揮発性メモリセルへの書き込み動作において書き込みベリファイ処理を行う不揮発性メモリであって、前記書き込みベリファイ処理において検出された書き込みエラーのビット数をカウントしその情報を出力するＥＣＣ判定回路１９と、前記書き込み動作のパス／フェイル情報とＥＣＣ判定回路１９から出力された前記書き込みエラーのビット数の情報とを保持するステータスレジスタ２０とを有するフラッシュメモリ１１１。【選択図】  図１
2006048783.tif 000002
【特許請求の範囲】
【請求項１】
電気的に消去および書き込み可能な複数の不揮発性メモリセルを備え前記不揮発性メモリセルへの書き込み動作において書き込みベリファイ処理を行う不揮発性メモリであって、
前記書き込みベリファイ処理において検出された書き込みエラーのビット数をカウントしその情報を出力するエラー訂正判定部と、
前記エラー訂正判定部から出力された前記書き込みエラーのビット数の情報を保持するレジスタとを有することを特徴とする不揮発性メモリ。
【請求項２】
電気的に消去および書き込み可能な複数の不揮発性メモリセルを備え前記不揮発性メモリセルへの書き込み動作において書き込みベリファイ処理を行う不揮発性メモリであって、
前記書き込みベリファイ処理において検出された書き込みエラーのビット数をカウントしその情報を出力するエラー訂正判定部と、
前記書き込み動作のパス／フェイル情報と前記エラー訂正判定部から出力された前記書き込みエラーのビット数の情報とを保持するレジスタとを有することを特徴とする不揮発性メモリ。
【請求項３】
請求項１または２記載の不揮発性メモリにおいて、
前記レジスタが保持する前記書き込みエラーのビット数の情報は、前記書き込みエラーのビット数がｎビット以下であるか否かを示すものであることを特徴とする不揮発性メモリ。
【請求項４】
請求項３記載の不揮発性メモリにおいて、
前記エラー訂正判定部は、ｎの値を任意に設定するための手段を有することを特徴とする不揮発性メモリ。
【請求項５】
請求項１〜４のいずれか１項に記載の不揮発性メモリにおいて、
前記不揮発性メモリセルは、多値メモリセルであることを特徴とする不揮発性メモリ。
【請求項６】
電気的に消去および書き込み可能な複数の不揮発性メモリセルを備え前記不揮発性メモリセルへの書き込み動作において書き込みベリファイ処理を行う不揮発性メモリと、前記不揮発性メモリの動作を制御するコントローラとを有するメモリカードであって、
前記不揮発性メモリは、前記書き込みベリファイ処理において検出された書き込みエラーのビット数をカウントしその情報を出力するエラー訂正判定部と、前記エラー訂正判定部から出力された前記書き込みエラーのビット数の情報を保持するレジスタとを有し、
前記コントローラは、前記書き込みエラーのビット数の情報を前記レジスタから読み出す手段と、前記書き込みエラーのビット数の情報に基づいて前記書き込みエラーの訂正可否の判断を行うエラー訂正可否判断部とを有することを特徴とするメモリカード。
【請求項７】
電気的に消去および書き込み可能な複数の不揮発性メモリセルを備え前記不揮発性メモリセルへの書き込み動作において書き込みベリファイ処理を行う不揮発性メモリと、前記不揮発性メモリの動作を制御するコントローラとを有するメモリカードであって、
前記不揮発性メモリは、前記書き込みベリファイ処理において検出された書き込みエラーのビット数をカウントしその情報を出力するエラー訂正判定部と、前記書き込み動作のパス／フェイル情報と前記エラー訂正判定部から出力された前記書き込みエラーのビット数の情報とを保持するレジスタとを有し、
前記コントローラは、前記書き込み動作のパス／フェイル情報と前記書き込みエラーのビット数の情報とを前記レジスタから読み出す手段と、前記書き込み動作のパス／フェイル情報がフェイルのとき、前記書き込みエラーのビット数の情報に基づいて前記書き込みエラーの訂正可否の判断を行うエラー訂正可否判断部とを有することを特徴とするメモリカード。
【請求項８】
請求項６または７記載のメモリカードにおいて、
前記レジスタが保持する前記書き込みエラーのビット数の情報は、前記書き込みエラーのビット数がｎビット以下であるか否かを示すものであることを特徴とするメモリカード。
【請求項９】
請求項８記載のメモリカードにおいて、
前記エラー訂正判定部は、ｎの値を任意に設定するための手段を有することを特徴とするメモリカード。
【請求項１０】
請求項８または９記載のメモリカードにおいて、
前記ｎの値は、前記コントローラでエラー訂正可能か否かに応じて決定されることを特徴とするメモリカード。
【請求項１１】
請求項６〜１０のいずれか1項に記載のメモリカードにおいて、
前記コントローラは、前記不揮発性メモリに書き込まれるデータが高信頼性を要求されるデータである場合は、前記書き込み動作のパス／フェイル情報がパスのとき、前記不揮発性メモリの書き込み完了とし、
前記不揮発性メモリに書き込まれるデータが高信頼性を要求されないデータである場合は、前記書き込み動作のパス／フェイル情報がパスのとき、または前記エラー訂正可否判断部により訂正可能と判断されたとき、前記不揮発性メモリの書き込み完了とする手段を有することを特徴とするメモリカード。
【請求項１２】
請求項６〜１１のいずれか１項に記載のメモリカードにおいて、
前記不揮発性メモリセルは、多値メモリセルであることを特徴とするメモリカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリおよびそのメモリを含むメモリカードに関し、特に不揮発性メモリの書き込み／消去ビットエラーの検出および訂正（ＥＣＣ）に適用して有効な技術に関するものである。
【背景技術】
【０００２】
例えば、本発明者が検討した技術として、フラッシュメモリなどの不揮発性メモリの書き込み動作においては、メモリセルの閾値電圧が期待値に達したか否かを確認するベリファイ処理が行われる。このベリファイ処理においては、一般的に、書き込み対象ビットがすべてパスするまで、書き込みとベリファイ処理を繰り返す。そして書き込み動作時に１ビットでも書き込みエラーがあると、書き込みエラーとなっていた。この書き込みエラーを救済するため、エラービットの検出および訂正（以下、「ＥＣＣ」という。ＥＣＣ；Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ）を行う技術がある。
【０００３】
また、公開されていない特願２００３−０３０２９２号出願には、不揮発性メモリとコントローラからなるメモリカードについての記載がある。このメモリカードのコントローラは、メモリのエラービットを検出して訂正するＥＣＣ機能を備えている。１ビットエラーまでは訂正が容易であるので、このコントローラが通常通りビットエラーを訂正する。２ビットエラーについては、１ビットエラー訂正と比較して訂正に長時間を要し、また発生頻度も低いので、２ビットエラーが検出された場合は、コントローラがホストにその旨を通知し、ホストが訂正するか否かを判断して訂正指示をするというものである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、前記のような不揮発性メモリまたはメモリカードの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００５】
従来の不揮発性メモリでは、１ビットでもエラーがあると書き込みエラーとなるため、実際にＥＣＣ訂正可能であるかを判定するために全データを読み出す必要がある。すなわち、メモリカード内のコントローラが、メモリへの書き込み時に全データの空読み出しを行い、エラービット数がＥＣＣ訂正可能であるビット数以下であるか否かを検出していた。そのため、コントローラの負荷が大きく、またホストへのエラー通知までに時間が必要であった。
【０００６】
そこで、本発明の目的は、不揮発性メモリにおけるＥＣＣにおいて、書き込み／消去時のｎビットのエラー検出をオンチップにて高速に行い、コントローラの負荷を軽減することができる技術を提供することにある。
【０００７】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【０００９】
（１）本発明による不揮発性メモリは、電気的に消去および書き込み可能な複数の不揮発性メモリセルを備え前記不揮発性メモリセルへの書き込み動作において書き込みベリファイ処理を行う不揮発性メモリであって、前記書き込みベリファイ処理において検出された書き込みエラーのビット数をカウントしその情報を出力するエラー訂正判定部と、前記エラー訂正判定部から出力された前記書き込みエラーのビット数の情報を保持するレジスタとを有するものである。
【００１０】
（２）本発明による不揮発性メモリは、電気的に消去および書き込み可能な複数の不揮発性メモリセルを備え前記不揮発性メモリセルへの書き込み動作において書き込みベリファイ処理を行う不揮発性メモリであって、前記書き込みベリファイ処理において検出された書き込みエラーのビット数をカウントしその情報を出力するエラー訂正判定部と、前記書き込み動作のパス／フェイル情報と前記エラー訂正判定部から出力された前記書き込みエラーのビット数の情報とを保持するレジスタとを有するものである。
【００１１】
（３）本発明によるメモリカードは、電気的に消去および書き込み可能な複数の不揮発性メモリセルを備え前記不揮発性メモリセルへの書き込み動作において書き込みベリファイ処理を行う不揮発性メモリと、前記不揮発性メモリの動作を制御するコントローラとを有するメモリカードであって、前記不揮発性メモリは、前記書き込みベリファイ処理において検出された書き込みエラーのビット数をカウントしその情報を出力するエラー訂正判定部と、前記エラー訂正判定部から出力された前記書き込みエラーのビット数の情報を保持するレジスタとを有し、前記コントローラは、前記書き込みエラーのビット数の情報を前記レジスタから読み出す手段と、前記書き込みエラーのビット数の情報に基づいて前記書き込みエラーの訂正可否及び再書き込みの要否の判断を行うエラー訂正可否判断部とを有するものである。
【００１２】
（４）本発明によるメモリカードは、電気的に消去および書き込み可能な複数の不揮発性メモリセルを備え前記不揮発性メモリセルへの書き込み動作において書き込みベリファイ処理を行う不揮発性メモリと、前記不揮発性メモリの動作を制御するコントローラとを有するメモリカードであって、前記不揮発性メモリは、前記書き込みベリファイ処理において検出された書き込みエラーのビット数をカウントしその情報を出力するエラー訂正判定部と、前記書き込み動作のパス／フェイル情報と前記エラー訂正判定部から出力された前記書き込みエラーのビット数の情報とを保持するレジスタとを有し、前記コントローラは、前記書き込み動作のパス／フェイル情報と前記書き込みエラーのビット数の情報とを前記レジスタから読み出す手段と、前記書き込み動作のパス／フェイル情報がフェイルのとき、前記書き込みエラーのビット数の情報に基づいて前記書き込みエラーの訂正可否及び再書き込みの要否の判断を行うエラー訂正可否判断部とを有するものである。
【発明の効果】
【００１３】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００１４】
不揮発性メモリからのＥＣＣ訂正可能／不可能の判定出力により、コントローラによる空読み出しが不要になり、コントローラの負担が軽減する。
【００１５】
また不揮発性メモリへ書き込みデータの信頼度と単位時間あたりの書き込みデータ量に応じて、書き込みエラーが発生した場合であっても再書き込みをしないことにより、メモリカードとしての書き込み速度を向上することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１７】
（実施の形態１）
図１は本発明の実施の形態１による不揮発性メモリの構成を示すブロック図、図２は本実施の形態１の不揮発性メモリにおいて、ＥＣＣ判定回路の構成を示す図、図３および図４はＥＣＣ判定回路における電流判定回路を示す図、図５はステータスレジスタのビット構成を示す図、図６および図７は書き込み動作のフローを示す図、図８および図９は多値メモリセルの書き込み動作のフローを示す図、図１０は多値メモリセルのエラービット数を示す説明図である。
【００１８】
まず、図１により、本実施の形態１による不揮発性メモリの構成の一例を説明する。本実施の形態の不揮発性メモリは、例えばフラッシュメモリ１１１とされ、複数の不揮発性メモリセルを含むメモリアレイ１０、Ｘアドレスデコーダ／メインデコーダ／サブデコーダ１１、センスラッチ１２、Ｙアドレスデコーダ１３、ＣＰＵ１４、フラッシュメモリ１１１の動作を制御するシーケンスプログラムを格納したＲＯＭ１５、コマンドデコーダ１６、論理制御回路１７、電源回路１８、ＥＣＣ判定回路（エラー訂正判定部）１９、ステータスレジスタ２０、ＰＡＤ（パッド）２１などから構成され、周知の半導体製造技術によって１個の半導体チップ上に形成されている。
【００１９】
このフラッシュメモリは、図示していないが、外部端子およびバッファを介して論理制御回路１７などに、チップイネーブル信号、リードイネーブル信号、ライトイネーブル信号、コマンドラッチイネーブル信号、アドレスラッチイネーブル信号、リセット信号などの制御信号が入力されている。また、論理制御回路１７の出力がＸアドレスデコーダ／メインデコーダ／サブデコーダ１１、センスラッチ１２、Ｙアドレスデコーダ１３、ＣＰＵ１４、電源回路１８、ステータスレジスタ２０に入力している。また、電源回路１８の出力がＸアドレスデコーダ／メインデコーダ／サブデコーダ１１に入力している。また、センスラッチ１２の出力が論理制御回路１７、ＥＣＣ判定回路１９に入力している。また、ＣＰＵ１４の出力が論理制御回路１７、ＲＯＭ１５に入力している。また、ＲＯＭ１５の出力がＣＰＵ１４に入力している。また、コマンドデコーダ１６の出力がＣＰＵ１４、論理制御回路１７、ＰＡＤ２１に入力している。また、ＥＣＣ判定回路１９の出力がステータスレジスタ２０に入力している。また、ステータスレジスタ２０の出力がＰＡＤ２１に入力している。また、ＰＡＤ２１の出力がコマンドデコーダ１６に入力している。
【００２０】
このフラッシュメモリ１１１において、メモリアレイ１０は、ワード線とビット線との交点に配置される電気的に消去および書き込み可能な複数の不揮発性メモリセルから構成されている。この不揮発性メモリセルは、１メモリセルあたり１ビットの情報を格納可能な２値メモリセルまたは１メモリセルあたり複数ビット（例えば２ビット）の情報を格納可能な多値メモリセルである。
【００２１】
このメモリアレイ１０内の任意のメモリセルがＸアドレスデコーダ／メインデコーダ／サブデコーダ１１およびＹアドレスデコーダ１３により選択され、この選択されたメモリセルに対して、センスラッチ１２などを介してデータの書き込み／読み出しが行われる。センスラッチ１２は、図２に示すように、各ビット線ＢＬ，／ＢＬに接続された複数のラッチ１２ａ〜１２ｍからなり、そのラッチ１２ａ〜１２ｍの数はビット線ＢＬ，／ＢＬの本数に対応する。本実施の形態では、ビット線対の本数すなわちラッチの数をＭ個とする。
【００２２】
データの書き込み／読み出しのタイミング信号発生などの制御は、論理制御回路１７などにより行われる。コマンドデコーダ１６は、ＰＡＤ２１を介して外部から入力されたコマンドを解読する。解読されたコマンドの命令に従い、論理制御回路１７、ＣＰＵ１４、ＲＯＭ１５は、メモリセルに対する書き込み、読み出しおよび消去などのメモリ動作をＲＯＭ１５に格納されているシーケンスプログラムに基づき実行させる。
【００２３】
メモリセルへの書き込み動作においては、書き込みベリファイ処理が行われる。書き込みベリファイ処理では、書き込み対象のメモリセルの閾値電圧が期待値に到達しているか否かをチェックして書き込みエラーを検出する。
【００２４】
次に図２により、ＥＣＣ判定回路１９の構成の一例を説明する。ＥＣＣ判定回路１９は、書き込みベリファイ処理において検出された書き込みエラーのビット数をカウントしその情報を出力するものである。
【００２５】
図２は、ＥＣＣ判定回路１９の構成例を示す。ＥＣＣ判定回路１９は、センスラッチ１２を構成するＭ個のラッチ１２ａ〜１２ｍにそれぞれ設けたｎＭＯＳトランジスタ２２と電流判定回路２３などからなる。ｎＭＯＳトランジスタ２２のソースは接地され、ゲートはビット線／ＢＬに接続され、ドレインは電流判定回路のノードＡに接続されている。
【００２６】
書き込み動作時のベリファイ処理において、各ビットをベリファイした結果をラッチ１２ａ〜１２ｍに取り込んだ後、ラッチ１２ａ〜１２ｍに付加したｎＭＯＳトランジスタ２２に電流を流す。正常な場合はビット線ＢＬが”１”、ビット線／ＢＬが”０”となる。したがって、正常ビットについては、ビット線／ＢＬが”０”であるので、ｎＭＯＳトランジスタ２２はオフ状態でありドレインからソースへ電流Ｉが流れない。一方、エラービットについては、ビット線／ＢＬが”１”となり、ｎＭＯＳトランジスタ２２がオン状態でありドレインからソースへ電流Ｉが流れる。この電流Ｉの総和（ΣＩ）は、書き込みエラーのビット数に比例する。したがって、電流Ｉの総和（ΣＩ）を求めることにより、書き込みエラーのビット数をカウントすることができる。
【００２７】
電流判定回路２３では、電流Ｉの総和（ΣＩ）をビット数に換算し、書き込みエラーのビット数がｎビット以下であるか否かを判定して、その情報を判定結果として出力する。なお、ｎは自然数である。
【００２８】
図３に、電流判定回路２３の一例を示す。図３の電流判定回路２３は、例えば差動増幅回路を応用したものであり、ｐＭＯＳトランジスタ３１，３２，３３、ｎＭＯＳトランジスタ３４，３５、定電流源３６、バッファ３７などから構成される。ｐＭＯＳトランジスタ３１のドレインおよびゲートは定電流源３６の正極およびｐＭＯＳトランジスタ３２のゲートに接続され、ソースは電源に接続されている。ｐＭＯＳトランジスタ３２のソースは電源に接続され、ドレインはｎＭＯＳトランジスタ３５のドレインおよびバッファ３７の入力に接続されている。ｐＭＯＳトランジスタ３３のソースは電源に接続され、ゲートは接地され、ドレインはｎＭＯＳトランジスタ３５のゲートおよびｎＭＯＳトランジスタ３４のドレインに接続されている。ｎＭＯＳトランジスタ３４のゲートはｎＭＯＳトランジスタ３５のソースおよびノードＡに接続され、ソースは接地されている。定電流源３６の負極は接地されている。
【００２９】
ｐＭＯＳトランジスタ３１，３２はカレントミラー回路を構成し、ｐＭＯＳトランジスタ３３はバイアス回路を構成し、ｎＭＯＳトランジスタ３４，３５は増幅回路を構成している。ノードＡを流れる電流は図２の電流Ｉの総和（ΣＩ）であり、定電流源３６を流れる電流Ｉ0と比較した結果がバッファ３７を通して出力される。すなわち、バッファ３７の出力は、ΣＩ＞Ｉ0のとき”０”、ΣＩ＜Ｉ0のとき”１”となる。したがって、電流値Ｉ0を調整することにより、書き込みエラーのビット数がｎビット以下であるか否かを判定することができる。電流値Ｉ0を調整する手段としては、例えば、図４に示すように、定電流源３６を複数個並列接続して、その個数を変更することにより、ｎの値を任意に設定することができる。
【００３０】
ＥＣＣ判定回路１９の判定結果は、後述のステータスレジスタ２０に保存される。なお、上記図２〜図４の回路において、同じ作用を奏する限りにおいて、論理が逆であったり、電源／接地が逆であったり、ｐＭＯＳ／ｎＭＯＳが逆であったりしてもよい。また、ＭＯＳトランジスタの代わりにバイポーラトランジスタなどであってもよい。
【００３１】
次に、図５により、ステータスレジスタ２０のビット構成を説明する。このステータスレジスタ２０は、本実施の形態１による不揮発性メモリの状態（ステータス）を表す情報を保持する記憶装置である。図５では、その一例として８ビット構成のレジスタを示す。このステータスレジスタ２０は、ＥＣＣ判定回路１９から出力された書き込みエラーのビット数の情報（書き込みエラーのビット数がｎビット以下であるか否か）を保持する。各ビットは、不揮発性メモリの各種の状態を示す。本実施の形態１では、ステータスレジスタ２０に、書き込み動作中／終了を示すＩＯ７、書き込みステータス（パス／フェイル）を示すＩＯ６、ＥＣＣ判定情報を示すＩＯ３などの各ビットを設けた。ＩＯ７が”０”の時は書き込み動作等のフラッシュメモリ１１１内での処理動作を行っているすなわちビジィ（Ｂｕｓｙ）の状態、”１”の時はフラッシュメモリ１１１内での処理動作を行っていないすなわちレディ（Ｒｅａｄｙ）の状態である。ＩＯ６が”０”の時は書き込み動作がフェイル（Ｆａｉｌ）の状態、”１”の時は書き込み動作がパス（Ｐａｓｓ）の状態である。ＩＯ３が”０”の時は書き込みエラーのビット数がｎ＋１ビット以上の状態、”１”の時は書き込みエラーのビット数がｎビット以下の状態である。ＩＯ３には、ＥＣＣ判定回路１９の判定結果が書き込まれる。
【００３２】
したがって、ステータスレジスタ２０のＩＯ３に書き込まれている書き込みエラービット数の情報をフラッシュメモリ１１１の外部から読み出すことにより、ＥＣＣ訂正の可否を判断することが容易になる。
【００３３】
次に図６により、本実施の形態１によるフラッシュメモリの２値メモリセルへの書き込み動作フローの一例を説明する。
【００３４】
まず、ステップＳ６１で、書き込み用ラッチ（センスラッチ１２、ラッチ１２ａ〜１２ｍ）にデータを格納する。次に、ステップＳ６２で、メモリアレイ１０内の書き込み対象であるメモリセルにデータを書き込む。ステップＳ６３で、書き込んだデータについてベリファイを行う。ベリファイは、メモリセルの閾値電圧が設定されるべきしきい値電圧範囲の下限値に到達したか否かについて行う。ステップＳ６４で、書き込みエラーがあるか否かを確認して書き込み終了の判定を行う。その結果、パス（Ｐａｓｓ）の場合は、そのまま書き込み動作を終了する（正常終了）。ステップＳ６４の判定結果が、フェイル（Ｆａｉｌ）の場合は、ステップＳ６５へ進む。ステップＳ６４のパス／フェイルの判定結果は、図５に示したステータスレジスタ２０のＩＯ６に書き込まれる。ステップＳ６５では、書き込み回数が最大値（ｍａｘ）に達したか否かを判定し、書き込み回数が最大値（ｍａｘ）未満の場合はステップＳ６６へ進み、ベリファイ結果を書き込みラッチに反映させて、ステップＳ６２で再書き込みを行う。その際、閾値電圧が下限値よりも上に行ったメモリセルに対しては、再書き込みを行わず、下限値よりも下にあるメモリセルのみ再書き込みを行う。ステップＳ６５の判定の結果、書き込み回数が最大値（ｍａｘ）に達した場合は、ステップＳ６７へ進みＥＣＣ可否の判定を行う。ステップＳ６７では、図２〜図４に示したＥＣＣ判定回路１９により、書き込みエラーのビット数をカウントし、その情報をステータスレジスタ２０内のＩＯ３に書き込む。ステップＳ６７のＥＣＣ可否判定の結果、書き込みエラーのビット数がｎビット以下の場合は、エラー訂正可能であるとして書き込み動作を終了する（正常終了）。ステップＳ６７のＥＣＣ可否判定の結果、書き込みエラーのビット数がｎ＋１ビット以上の場合は、エラー訂正不可能であるとして書き込み動作を終了する（異常終了）。以上の書き込み動作フローは、書き込み回数が最大値になった時に初めてＥＣＣ可否判定を行うので、書類などの電子データで正確性を重視するような場合に適している。
【００３５】
次に図７により、本実施の形態１によるフラッシュメモリの２値メモリセルへの書き込み動作フローの他の例を説明する。
【００３６】
まず、ステップＳ７１〜ステップＳ７４は、ステップＳ６１〜ステップＳ６４と同じであるので、説明を省略する。
【００３７】
ステップＳ７４での書き込み終了の判定の結果、パス（Ｐａｓｓ）の場合は、そのまま書き込み動作を終了する（正常終了）。ステップＳ７４の判定結果が、フェイル（Ｆａｉｌ）の場合は、ステップＳ７５へ進む。ステップＳ７４のパス／フェイルの判定結果は、図５に示したステータスレジスタ２０のＩＯ６に書き込まれる。ステップＳ７５では、ベリファイ結果を書き込みラッチに反映させて、ステップＳ７６へ進みＥＣＣ可否の判定を行う。ステップＳ７６では、図２〜図４に示したＥＣＣ判定回路１９により、書き込みエラーのビット数をカウントし、その情報をステータスレジスタ２０内のＩＯ３に書き込む。ステップＳ７６のＥＣＣ可否判定の結果、書き込みエラーのビット数がｎビット以下の場合は、エラー訂正可能であるとして書き込み動作を終了する（正常終了）。ステップＳ７６のＥＣＣ可否判定の結果、書き込みエラーのビット数がｎ＋１ビット以上の場合は、エラー訂正不可能であるとしてステップＳ７７へ進む。ステップＳ７７では、書き込み回数が最大値（ｍａｘ）に達したか否かを判定し、書き込み回数が最大値（ｍａｘ）未満の場合は、ステップＳ７１へ戻り、書き込み用ラッチにデータを格納する。ステップＳ７７の判定の結果、書き込み回数が最大値（ｍａｘ）に達した場合は、書き込み動作を終了する（異常終了）。以上の書き込み動作フローは、書き込み回数を判定する前にＥＣＣ可否判定を行い、エラー訂正可能の場合は、そのまま正常終了するので、画像・音声・映像などのストリームデータで正確性をあまり重視しないような場合に適している。但し、この動作フローは、書き込み時間が短縮され、パフォーマンスは向上する。
【００３８】
次に図８により、メモリセルが多値メモリセルの場合におけるフラッシュメモリの書き込み動作フローの一例を説明する。
【００３９】
ステップＳ８１〜ステップＳ８６は、ステップＳ６１〜ステップＳ６６と同じであるので、説明を省略する。
【００４０】
ステップＳ８４の書き込み終了判定でパスと判定された場合、ステップＳ８８で飛び出し判定を行う。飛び出し判定では、メモリセルの閾値電圧が設定されるべきしきい値電圧範囲の上限値を超えていないか確認を行う。ステップＳ８８の飛び出し判定で、閾値電圧の上限値を超えているメモリセルがない場合は、書き込みエラーなし（パス）として書き込み動作を終了する（正常終了）。ステップＳ８８で、閾値電圧の上限値を超えているメモリセルがある場合は、書き込みエラーあり（フェイル）として、ステップＳ８７へ進み、ＥＣＣ可否判定を行う。ステップＳ８８の飛び出し判定のパス／フェイル結果は、ステータスレジスタ２０のＩＯ６に書き込まれる。ステップＳ８７では、図２〜図４に示したＥＣＣ判定回路１９により、書き込みエラーのビット数をカウントし、その情報をステータスレジスタ２０内のＩＯ３に書き込む。ステップＳ８７のＥＣＣ可否判定の結果、書き込みエラーのビット数がｎビット以下の場合は、エラー訂正可能であるとして書き込み動作を終了する（正常終了）。ステップＳ８７のＥＣＣ可否判定の結果、書き込みエラーのビット数がｎ＋１ビット以上の場合は、エラー訂正不可能であるとして書き込み動作を終了する（異常終了）。メモリセルが多値の場合は、そのレベルに応じて以上の書き込み動作フローを繰り返し実行し、書き込みエラーのビット数を累積的にカウントする。以上の書き込み動作フローは、書き込み回数が最大値になった時、または飛び出し判定でフェイルになった時にＥＣＣ可否判定を行うので、書類などの電子データで正確性を重視するような場合に適している。
【００４１】
次に図９により、メモリセルが多値メモリセルの場合におけるフラッシュメモリの書き込み動作フローの他の例を説明する。
【００４２】
ステップＳ９１〜ステップＳ９７は、ステップＳ７１〜ステップＳ７７と同じであるので、説明を省略する。
【００４３】
ステップＳ９４での書き込み終了の判定の結果、パス（Ｐａｓｓ）の場合は、ステップＳ９８で飛び出し判定を行う。飛び出し判定では、メモリセルの閾値電圧が上限値を超えていないか確認を行う。ステップＳ９８の飛び出し判定で、閾値電圧の上限値を超えているメモリセルがない場合は、書き込みエラーなし（パス）として書き込み動作を終了する（正常終了）。ステップＳ９８で、閾値電圧の上限値を超えているメモリセルがある場合は、書き込みエラーあり（フェイル）として、ステップＳ９９へ進み、ＥＣＣ可否判定を行う。ステップＳ９８の飛び出し判定のパス／フェイル結果は、ステータスレジスタ２０のＩＯ６に書き込まれる。ステップＳ９９では、図２〜図４に示したＥＣＣ判定回路１９により、書き込みエラーのビット数をカウントし、その情報をステータスレジスタ２０内のＩＯ３に書き込む。ステップＳ９９のＥＣＣ可否判定の結果、書き込みエラーのビット数がｎビット以下の場合は、エラー訂正可能であるとして書き込み動作を終了する（正常終了）。ステップＳ９９のＥＣＣ可否判定の結果、書き込みエラーのビット数がｎ＋１ビット以上の場合は、エラー訂正不可能であるとして書き込み動作を終了する（異常終了）。メモリセルが多値の場合は、そのレベルに応じて以上の書き込み動作フローを繰り返し実行し、書き込みエラーのビット数を累積的にカウントする。以上の書き込み動作フローは、書き込み回数を判定する前にＥＣＣ可否判定を行い、エラー訂正可能の場合は、そのまま正常終了するので、画像・音声・映像などのストリームデータで正確性をあまり重視しないような場合に適している。但し、この動作フローは、書き込み時間が短縮され、パフォーマンスは向上する。
【００４４】
次に図１０により、多値メモリセルの書き込みエラービット数の判定方法を説明する。図１０（ａ）は、４値メモリセルの”１０”データの飛び出しによる１ビット不良を示し、図１０（ｂ）は２ビット不良を示す。Ｖｔｈは、メモリセルの閾値電圧である。図１０（ａ）に示すように、”１０”データが”００”データの領域に飛び出しているとする。このとき、判定レベル１における判定でエラービット数は零、判定レベル２における判定ではエラービット数は１ビットであるので、合計したエラービット数は１ビットとなる。
【００４５】
エラービット＝判定レベル１（０ビット）＋判定レベル２（１ビット）＝１ビット
また、図１０（ｂ）に示すように、”１０”データが”０１”データの領域に飛び出しているとする。このとき、判定レベル１における判定でエラービット数は１ビット、判定レベル２における判定ではエラービット数は１ビットであるので、合計したエラービット数は２ビットとなる。
【００４６】
エラービット＝判定レベル１（１ビット）＋判定レベル２（１ビット）＝２ビット
以上において、図８または図９の書き込み動作フローを判定レベル１と判定レベル２とで２回繰り返す。
【００４７】
したがって、本実施の形態１の不揮発性メモリによれば、ＥＣＣ判定回路１９により書き込み／消去エラービットがｎビット以下であるか否かを判定し、その結果がステータスレジスタ２０に保存されるので、外部からステータスレジスタ２０の内容を読み出すことにより、ＥＣＣ可否の判断ができるため、メモリデータの空読み出しが不要となり、外部コントローラの負担が軽減される。また、フラッシュメモリ１１１内部でデータを読み出しているわけではないため、フラッシュメモリ１１１のパフォーマンスにも影響しない。
【００４８】
（実施の形態２）
図１１は本発明の実施の形態２によるメモリカードの構成を示すブロック図、図１２は本実施の形態２のメモリカードにおいて、書き込みフローの一例を示す図、図１３はコントローラによる書き込みフローを示す図、図１４はメモリカードにおける書き込みフローの他の例を示す図である。
【００４９】
まず、図１１により、本実施の形態２によるメモリカードの構成の一例を説明する。本実施の形態２のメモリカード１１０は、前記実施の形態１のフラッシュメモリ１１１、コントローラ１１２、ホストＩ／Ｆ（インターフェイス）１１３などからなり、フラッシュメモリ１１１にはＥＣＣ判定回路（エラー訂正判定部）１９などが含まれ、コントローラ１１２にはＥＣＣ（エラー訂正可否判断部）１１４などが含まれる。フラッシュメモリ１１１とコントローラ１１２、コントローラ１１２とホストＩ／Ｆ１１３はそれぞれ接続されている。
【００５０】
コントローラ１１２は、フラッシュメモリ１１１の書き込み／消去／読み出し等のメモリ動作を制御するものであり、フラッシュメモリ１１１の書き込み動作のパス／フェイル情報（ＩＯ６）と書き込みエラーのビット数の情報（ＩＯ３）とをステータスレジスタ２０から読み出す手段と、書き込み動作のパス／フェイル情報（ＩＯ６）がフェイルのとき、書き込みエラーのビット数の情報（ＩＯ３）に基づいて書き込みエラーの訂正可否の判断を行うＥＣＣ（エラー訂正可否判断部）１１４とを有する。ホストＩ／Ｆ１１３は、外部とのインターフェイスである。
【００５１】
次に図１２により、本実施の形態２によるメモリカード１１０の書き込みフローを説明する。まず、ステップＳ１２１で、フラッシュメモリ１１１に対して書き込みが行われる。このフラッシュ書き込みは、前記実施の形態１で説明した図６〜図９の書き込み動作フローに従って行われる。次にコントローラ１１２が、ステップＳ１２２で、ステータスレジスタ２０の判定を行う。ステータスレジスタ判定は、フラッシュメモリ１１１内のステータスレジスタ２０の情報を読み出し、ＩＯ６の値が”１”のときパス（Ｐａｓｓ）、”０”のときフェイル（Ｆａｉｌ）、ＩＯ３の値が”１”のときＥＣＣ可能（エラービット数がｎビット以下）、”０”のときＥＣＣ不可能（エラービット数がｎ＋１ビット以上）とする。パスまたはＥＣＣ可能のときは、そのまま書き込みフローを終了する。フェイルかつＥＣＣ不可能のときは、ステップＳ１２３でリライト処理を行い、ステップＳ１２１へ戻り、フラッシュ書き込みを行う。ステップＳ１２２およびステップＳ１２３の処理は、コントローラ１１２が行う。なお、ｎビットの値は、メモリカードなどのＥＣＣ仕様などにより可変とする。このｎビットの値は、コントローラ１１２でエラー訂正可能か否かに応じて決定される。
【００５２】
次に、図１３により、コントローラ１１２による書き込みフローを説明する。
【００５３】
まず、コントローラ１１２は、ステップＳ１３１で、ステータスレジスタ２０の情報を読み出す。そして、ステップＳ１３２で、ステータスレジスタ２０内のＩＯ７の値が”１”であるか否かをチェックして、”１”でない場合すなわち”０”（ビジィ）の場合は、ステップＳ１３１へ戻る。ＩＯ７の値が”１”（レディ）の場合は、ステップＳ１３３へ進む。ステップＳ１３３では、ＩＯ６の値をチェックして、”１”（パス）のときは書き込み／消去を終了する。ＩＯ６の値が”０”（フェイル）のときは、ステップＳ１３４へ進む。ステップＳ１３４では、再度、ステータスレジスタ２０の情報を読み出し、ステップＳ１３５でＩＯ３の値をチェックする。ＩＯ３の値が”１”（エラーｎビット以下）のときはＥＣＣ可能として書き込み／消去を終了する。ＩＯ３の値が”０”（エラーｎ＋１ビット以上）のときはステップＳ１３６へ進む。ステップＳ１３６で、ＥＣＣチェック読み出しを行った後、ステップＳ１３７で、ＥＣＣ可否判断を行う。ＥＣＣ可能であるときは書き込み／消去を終了する。ＥＣＣ不可能であるときはフェイルとしてリライト処理を行う。
【００５４】
したがって、本実施の形態２によるメモリカードによれば、従来メモリカード内のコントローラが行っていたＥＣＣ可否判定を、フラッシュメモリ側で行うことにより（オンチップ判定）、コントローラによる空読み出しが不要になり、コントローラの負荷を軽くすることができる。
【００５５】
次に図１４により、メモリカードの書き込みフローの他の一例を説明する。
【００５６】
コントローラ１１２に、フラッシュメモリ１１１に書き込まれるデータが高信頼性を要求されるデータである場合は、書き込み動作のパス／フェイル情報（ＩＯ６）がパスのとき、フラッシュメモリ１１１の書き込み完了とし、フラッシュメモリ１１１に書き込まれるデータが高信頼性を要求されないデータである場合は、書き込み動作のパス／フェイル情報（ＩＯ６）がパスのとき、またはＥＣＣ１１４により訂正可能と判断されたとき、フラッシュメモリ１１１の書き込み完了とする手段を設ける。
【００５７】
ステップＳ１４１は、前記図１２のステップＳ１２１と同じであるので説明を省略する。ステップＳ１４２で、コントローラ１１２が、ステータスレジスタ２０の判定を行う。ステータスレジスタ判定は、フラッシュメモリ１１１内のステータスレジスタ２０の情報を読み出し、ＩＯ６の値が”１”でパス（Ｐａｓｓ）のときは、そのまま終了する。ＩＯ６の値が”０”でフェイル（Ｆａｉｌ）のときは、ステップＳ１４３へ進む。ステップＳ１４３では、フラッシュメモリに書き込まれるデータが高信頼度データであるか否かを判定し、高信頼度データである場合は、ステップＳ１４５へ進み、リライト処理を行った後、ステップＳ１４１へ戻り、再度、フラッシュ書き込みを行う。ステップＳ１４３での判定の結果、高信頼度データでない場合は、ステップＳ１４４でＥＣＣ可否の判断を行う。ＥＣＣ可否の判断の結果、ステータスレジスタ２０内のＩＯ３の値が”１”でＥＣＣ可能（エラービット数がｎビット以下）のときは、そのまま書き込みフローを終了する。ＩＯ３の値が”０”でＥＣＣ不可能（エラービット数がｎ＋１ビット以上）のときは、ステップＳ１４５でリライト処理を行った後、ステップＳ１４１へ戻り、フラッシュ書き込みを行う。ステップＳ１４２〜ステップＳ１４５の処理は、コントローラ１１２が行う。
【００５８】
すなわち、エラー零ビットおよびＥＣＣ訂正可否ステータスを用い、ストリームデータなどの高信頼度を要求されないデータは書き込みフェイル／エラービット少（ｎ以下）にて書き込み完了とし、テキストなどの高信頼度を要求されるデータは書き込みパスにて書き込み完了とする。このようにすることにより、データ信頼度に応じた柔軟なＥＣＣが可能となる。
【００５９】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００６０】
例えば、前記実施の形態においては、不揮発性メモリとしてフラッシュメモリについて説明したが、これに限定されるものではなく、ＥＥＰＲＯＭなど他の不揮発性メモリについても適用可能である。
【産業上の利用可能性】
【００６１】
本願において開示される発明は、フラッシュメモリ、ＥＥＰＲＯＭなどの不揮発性メモリについて適用可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施の形態１による不揮発性メモリの構成を示すブロック図である。
【図２】本発明の実施の形態１による不揮発性メモリにおいて、ＥＣＣ判定回路の構成を示す図である。
【図３】図２に示す電流判定回路の構成の一例を示す回路図である。
【図４】図２に示す電流判定回路の構成の一例を示す回路図である。
【図５】本発明の実施の形態１による不揮発性メモリにおいて、ステータスレジスタのビット構成を示す図である。
【図６】本発明の実施の形態１による不揮発性メモリにおいて、書き込み動作のフローの一例を示す図である。
【図７】本発明の実施の形態１による不揮発性メモリにおいて、書き込み動作のフローの一例を示す図である。
【図８】本発明の実施の形態１による不揮発性メモリにおいて、多値メモリセルの書き込み動作のフローの一例を示す図である。
【図９】本発明の実施の形態１による不揮発性メモリにおいて、多値メモリセルの書き込み動作のフローの一例を示す図である。
【図１０】本発明の実施の形態１による不揮発性メモリにおいて、多値メモリセルのエラービット数を示す説明図である。
【図１１】本発明の実施の形態２によるメモリカードの構成を示すブロック図である。
【図１２】本発明の実施の形態２によるメモリカードにおいて、書き込みフローの一例を示す図である。
【図１３】本発明の実施の形態２によるメモリカードにおいて、コントローラによる書き込みフローを示す図である。
【図１４】本発明の実施の形態２によるメモリカードにおいて、書き込みフローの一例を示す図である。
【符号の説明】
【００６３】
１０  メモリアレイ
１１  Ｘアドレスデコーダ／メインデコーダ／サブデコーダ
１２  センスラッチ
１２ａ〜１２ｍ  ラッチ
１３  Ｙアドレスデコーダ
１４  ＣＰＵ
１５  ＲＯＭ
１６  コマンドデコーダ
１７  論理制御回路
１８  電源回路
１９  ＥＣＣ判定回路（エラー訂正判定部）
２０  ステータスレジスタ
２１  ＰＡＤ（パッド）
２２，３４，３５  ｎＭＯＳトランジスタ
２３  電流判定回路
３１，３２，３３  ｐＭＯＳトランジスタ
３６  定電流源
３７  バッファ
１１０  メモリカード
１１１  フラッシュメモリ（不揮発性メモリ）
１１２  コントローラ
１１３  ホストＩ／Ｆ
１１４  ＥＣＣ（エラー訂正可否判断部）
【図１】
2006048783.tif 000003
【図２】
2006048783.tif 000004
【図３】
2006048783.tif 000005
【図４】
2006048783.tif 000006
【図５】
2006048783.tif 000007
【図６】
2006048783.tif 000008
【図７】
2006048783.tif 000009
【図８】
2006048783.tif 000010
【図９】
2006048783.tif 000011
【図１０】
2006048783.tif 000012
【図１１】
2006048783.tif 000013
【図１２】
2006048783.tif 000014
【図１３】
2006048783.tif 000015
【図１４】
2006048783.tif 000016