(57)【要約】【課題】不良ブロック等のブロック状態を高速且つ確実に検出することが困難であった。【解決手段】ブロック（ＢＬＫ）は、行及び列に複数の第１のメモリセル（ＤＲ）と制御データを記憶する複数の第２のメモリセル（ＲＤＲ）が配置されている。読み出し部（Ｓ／Ａｍ−１、Ｓ／Ａｍ、Ｓ／Ａｍ＋１）は、ブロック（ＢＬＫ）の判別時に、複数のワード線（ＷＬ０〜ＷＬ１５）を同時に選択し、各ビット線（ＢＬｍ−１、ＢＬｍ、ＢＬｍ＋１）を共有する複数の第２のメモリセルのデータの論理積を各ビット線を介して読み出す。【選択図】図１
2006302342.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する複数の第１のメモリセルと制御データを記憶する複数の第２のメモリセルが行及び列に配置され、前記行に複数のワード線が配置され、前記列に複数のビット線が配置されたブロックと、
前記複数のワード線の１つを選択して前記複数のビット線の少なくとも１つにデータを読み出す第１の読み出し部と、
前記ブロックの状態判別時に、前記複数のワード線を同時に選択し、前記各ビット線を共有する複数の前記第２のメモリセルのデータの論理積を各ビット線を介して読み出す第２の読み出し部と
を具備することを特徴とする不揮発性半導体メモリ装置。
【請求項２】
複数の前記第２のメモリセルは、前記ブロックの欠陥の有無を示す識別データを記憶することを特徴とする請求項１記載の不揮発性半導体メモリ装置。
【請求項３】
前記第２の読み出し部は、前記第１の読み出し部と異なるコマンドにより動作されることを特徴とする請求項１項記載の不揮発性半導体メモリ装置。
【請求項４】
前記複数のワード線の各々に接続された複数の前記第１、第２のメモリセルはページを構成し、
前記複数の第２のメモリセルは、前記ページが書き込まれたことを示すフラグデータを記憶し、各ページの前記フラグデータは、異なる列の前記第２のメモリセルに記憶されることを特徴とする請求項１記載の不揮発性半導体メモリ装置。
【請求項５】
データを記憶する複数の第１のメモリセルと制御データを記憶する複数の第２のメモリセルが行及び列に配置され、前記行に複数のワード線が配置され、前記列に複数のビット線が配置され、前記複数の第１、第２のメモリセル、複数のワード線及び複数のビット線により構成された少なくとも１つのブロックを含むメモリセルアレイと、
前記複数のワード線の１つを選択して前記複数のビット線の少なくとも１つにデータを読み出す第１の読み出し部と、
前記ブロックの状態判別時に、前記複数のワード線を同時に選択し、前記各ビット線を共有する複数の前記第２のメモリセルのデータの論理積を各ビット線を介して読み出す第２の読み出し部と
を有する不揮発性半導体メモリと、
前記不揮発性半導体メモリを制御する制御部とを具備し、
前記制御部は前記第２の読み出し動作の際、前記第１の読み出し動作と異なるコマンドを発行することを特徴とする不揮発性半導体メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばデジタルスチルカメラや携帯情報機器の記憶媒体として使用される不揮発性半導体メモリ装置とメモリシステムに関する。
【背景技術】
【０００２】
デジタルスチルカメラや携帯情報機器の記憶媒体としてメモリカードが使用されている。このメモリカードは薄型のプラスチックパッケージにわずかな窪みが設けられ、その窪みに例えばＥＥＰＲＯＭを用いたフラッシュメモリからなる不揮発性半導体メモリが埋め込まれている。このメモリカードは例えば専用のコネクタを介してホストシステムに電気的に接続され、ホストシステムとの間でデータの入出力を行う。
【０００３】
例えば１２８Ｍビットの不揮発性半導体メモリは、１０２４個の物理的なメモリブロックに分割されている。このブロックはデータ消去時の最小単位であり、メモリセルのデータはブロック単位で消去される。１ブロックはさらに３２個の物理的なページに分割される。１ページはデータの書き込み及び読み出しの単位である。１ページは５２８バイトから構成され、うち５１２バイトはユーザーデータ領域、残りの１６バイトはエラー訂正符号及び管理情報等を格納するための冗長領域として使用される。
【０００４】
冗長領域は、ブロックステータスフラグを有している。このブロックステータスフラグは、１ブロックが３２ページにより構成されている場合、１ブロックについて３２ビット設けられている。すなわち、各ページに１ビットのブロックステータスフラグが配置されている。このブロックステータスフラグのデータにより、対応するブロックが正常なブロックであるか、不良ブロックであるかが判断される。正常なブロックについては、ブロックステータスフラグに“ＦＦｈ”（ｈは１６進を示す）が書き込まれ、出荷時に不良と判断された場合、ブロックステータスフラグに“００ｈ”が書き込まれる。出荷後ユーザが不揮発性半導体メモリを使用している際に不良が発生した場合、ブロックステータスフラグに“Ｆ０ｈ”が書き込まれる。ブロックステータスフラグの２ビット以上にデータ”０”が書き込まれた場合、それに対応するブロックは不良と判断される。
【０００５】
このような、記憶領域の不良を救済する技術として、ブロック毎の救済に替えてセクタ毎に不良領域を代替する技術が開発されている（例えば特許文献１参照）。
【０００６】
ところで、上記ブロック毎に不良を管理する不揮発性半導体メモリにおいて、不良ブロックの検出効率を向上させるため、各ブロックの先頭ページのブロックステータスフラグのデータのみを一般に参照している。すなわち、ブロック内の全ページのブロックステータスフラグのデータを読み出す場合、不良ブロックの検出に時間がかかるため、このような方法がとられている。このため、出荷時に不良ブロックが検出された場合、当該ブロックの各ページのブロックステータスフラグにデータ“００ｈ”を書き込むが、とりわけ先頭ページには確実にデータ”０”が書き込まれなくてはならない。したがって、当該ブロックの先頭ページにデータ”０”が書き込めないメモリは、不良ブロックの識別が不可能であるため出荷することができない。このため、歩留低下の原因になる。
【０００７】
一方、出荷後、ユーザがメモリを使用中に不良ブロックが発生した場合、当該ブロックの各ページのブロックステータスフラグにデータ“Ｆ０ｈ”が書き込まれるが、当該ブロックの先頭ページに少なくとも２ビット以上データ”０”が書き込めなかった場合、不良ブロックとして扱うことができなくなる。このため、当該不良ブロックを再度正常なブロックとして使用する可能性があり、正常なメモリの制御が行われない状況が発生する。
【０００８】
また、不良ブロックが存在する場合、不良ブロックの存在を判別するため、読み出し動作を複数回行なう必要があり、不良ブロックの検出に長時間を要し、システムのパフォーマンスが低下するという問題を有していた。
【０００９】
さらに、メモリカードに記憶されたデータを更新する際などにおいて、ブロックの状態を検出する必要があるが、従来ブロックの状態を検出するために時間を要していた。
【特許文献１】特開２００３−５８４３１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、不良ブロック等のブロック状態を高速且つ確実に検出することができ、システムのパフォーマンスの低下を抑えることが可能な不揮発性半導体メモリ装置とメモリシステムを提供しようとするものである。
【課題を解決するための手段】
【００１１】
本発明の第１の態様は、行及び列にデータを記憶する複数の第１のメモリセルと制御データを記憶する複数の第２のメモリセルが配置され、前記行に複数のワード線が配置され、前記列に複数のビット線が配置されたブロックと、前記複数のワード線の１つを選択して前記複数のビット線の少なくとも１つにデータを読み出す第１の読み出し部と、前記ブロックの状態判別時に、前記複数のワード線を同時に選択し、前記各ビット線を共有する複数の前記第２のメモリセルのデータの論理積を各ビット線を介して読み出す第２の読み出し部とを具備することを特徴とする不揮発性半導体メモリ装置である。
【００１２】
本発明の第２の態様は、行及び列にデータを記憶する複数の第１のメモリセルと制御データを記憶する複数の第２のメモリセルが配置され、前記行に複数のワード線が配置され、前記列に複数のビット線が配置され、前記複数の第１、第２のメモリセル、複数のワード線及び複数のビット線により構成された少なくとも１つのブロックを含むメモリセルアレイと、前記複数のワード線の１つを選択して前記複数のビット線の少なくとも１つにデータを読み出す第１の読み出し部と、前記ブロックの状態判別時に、前記複数のワード線を同時に選択し、前記各ビット線を共有する複数の前記第２のメモリセルのデータの論理積を各ビット線を介して読み出す第２の読み出し部とを有する不揮発性半導体メモリと、前記不揮発性半導体メモリを制御する制御部とを具備し、前記制御部は前記第２の読み出し動作の際、前記第１の読み出し動作と異なるコマンドを発行することを特徴とする不揮発性半導体メモリシステムである。
【発明の効果】
【００１３】
本発明によれば、不良ブロック等のブロック状態を高速且つ確実に検出することができ、システムのパフォーマンスの低下を抑えることが可能な不揮発性半導体メモリ装置とメモリシステムを提供できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について図面を参照して説明する。
【００１５】
図２は、第１の実施形態が適用される不揮発性半導体メモリ装置、例えばＮＡＮＤ型フラッシュメモリを用いたメモリカードの概略構成を示している。
【００１６】
フラッシュメモリ１０において、メモリセルアレイ１は複数のビット線と複数のワード線と共通ソース線を含み、例えばＥＥＰＲＯＭセルからなる電気的にデータを書き換え可能なメモリセルが行及び列にマトリクス状に配置されている。このメモリセルアレイ１には、ビット線を制御するためのビット制御回路２とワード線制御回路６が接続されている。
【００１７】
ビット線制御回路２は、後述するようにビット線に接続された複数のセンスアンプを含んでいる。このビット線制御回路２は、ビット線を介してメモリセルアレイ１中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ１中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ１中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路２には、カラムデコーダ３、データ入出力バッファ４が接続されている。ビット線制御回路２内のセンスアンプはカラムデコーダ３によって選択される。センスアンプに読み出されたメモリセルのデータは、前記データ入出力バッファ４を介してデータ入出力端子５から外部のホストシステム９へ出力される。
【００１８】
また、外部からデータ入出力端子５に入力された書き込みデータは、データ入出力バッファ４を介して、カラムデコーダ３によって選択されたビット線制御回路２に入力される。
【００１９】
ワード線制御回路６は、メモリセルアレイ１に接続されている。このワード線制御回路６は、メモリセルアレイ１中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【００２０】
メモリセルアレイ１、ビット線制御回路２、カラムデコーダ３、データ入出力バッファ４、及びワード線制御回路６は、制御信号及び制御電圧発生回路７に接続され、この制御信号及び制御電圧発生回路７によって制御される。制御信号及び制御電圧発生回路７は、制御信号入力端子８に接続され、外部のホストシステム９から制御信号入力端子８を介して入力される制御信号によって制御される。
【００２１】
前記ビット線制御回路２、カラムデコーダ３、ワード線制御回路６、制御信号及び制御電圧発生回路７は書き込み回路、及び読み出し回路を構成している。
【００２２】
図３は、図２に示すメモリセルアレイ１の一部とビット線制御回路２内のセンスアンプの構成を示している。メモリセルアレイ１には複数のＮＡＮＤセルが配置されている。１つのＮＡＮＤセルは、直列接続された例えば１６個のＥＥＰＲＯＭからなるメモリセルＭＣと、第１、第２の選択ゲートＳ１、Ｓ２とにより構成されている。第１の選択ゲートＳ１はビット線ＢＬｍ−１に接続され、第２の選択ゲートＳ２はソース線ＳＲＣに接続されている。各行に配置されたメモリセルの制御ゲートはワード線ＷＬ０、ＷＬ１、ＷＬ２〜ＷＬ１５に共通接続されている。また、第１の選択ゲートＳ１はセレクト線ＳＧＤに共通接続され、第２の選択ゲートＳ２はセレクト線ＳＧＳに共通接続されている。
【００２３】
メモリセルアレイ１は、破線で示すように、複数のブロックＢＬＫを含んでいる。各ブロックは、複数のＮＡＮＤセルにより構成され、このブロック単位でデータが消去される。
【００２４】
さらに、メモリセルに対するデータの書き込み、読み出しは外部アドレスに応じて、１本のワード線が選択され、１ページ毎に行われる。１ページ分のメモリセルから読み出されたデータは各ビット線を介して対応するセンスアンプにより検出される。
【００２５】
図４は、図２、図３を用いた例えば１２８ＭビットのＮＡＮＤ型フラッシュメモリのフォーマットを示している。この不揮発性半導体メモリ装置は、例えば１０２４個の物理的なメモリブロックに分割されている。このブロックは前述したデータ消去時の最小単位である。１ブロックは３２個の物理的なページに分割されている。１ページはデータの書き込み及び読み出しの基本的な単位である。１ページは５２８バイトにより構成され、このうち５１２バイトはユーザが使用可能なデータ領域であり、残りの１６バイト冗長領域である。この冗長領域はエラー訂正符号及び管理情報等の格納に使用される。
【００２６】
図５（ａ）（ｂ）は、図４に示すフラッシュメモリの物理フォーマットの一例を示している。図５（ａ）は、データ領域ＤＲの構成を示し、図５（ｂ）は冗長領域ＲＤＲに書き込まれるシステムの管理データの例を示している。
【００２７】
図５（ｂ）において、冗長領域ＲＤＲには、前述したブロックステータスフラグが設けられている。このブロックステータスフラグは、１ブロックが３２ページにより構成されている場合、１ブロックについて３２ビット設けられている。すなわち、各ページに１ビットのブロックステータスフラグが配置されている。このブロックステータスフラグに、対応するブロックが正常ブロックであるか、不良ブロックであるかを示すデータが書き込まれる。正常ブロックの場合、ブロックステータスフラグに“ＦＦｈ”が書き込まれる。また、ブロックステータスフラグのデータに２ビット以上のデータ”０”が含まれた場合、そのブロックは不良ブロックであるものと判断するように定義されている。さらに、出荷時に不良ブロックと判断された場合、ブロックステータスフラグに“００ｈ”が書き込まれる。ユーザが使用中に後発的に不良ブロックが発生した場合、そのブロックに対応するブロックステータスフラグに“Ｆ０ｈ”が書き込まれ、正常なブロックと区別される。ユーザ使用時において、メモリセルに例えば書き込み或いは消去が正常に行われなかったと判断された場合、このメモリセルを含む領域は不良ブロックであると認識され、ブロックステータスフラグに不良ブロックである旨のデータが格納される。このため、不良ブロックを示すデータが書き込まれたブロックに格納されたデータは参照されなくなる。
【００２８】
また、冗長領域は、エラー訂正用の符号を格納するＥＣＣ領域１及びＥＣＣ領域２を有し、このエラー訂正用の符号を用いて、リード時にデータが正常か否かを判断できるようになされている。このエラー訂正用の符号を用いてデータが訂正不可能である場合、このデータを含む領域は不良ブロックとして認識され、ブロックステータスフラグに不良ブロックである旨のマーキングが施される。このため、このブロックに格納されているデータは以後参照されなくなる。
【００２９】
さらに、冗長領域は、リザーブド領域、データステータスフラグ、ブロックアドレス領域１、２を有している。
【００３０】
次に、図１、図３、図６、図７を参照して第１の実施形態の動作について説明する。
【００３１】
図３は、通常の読出し時の動作を示している。ＮＡＮＤ型フラッシュメモリカードにおいて、メモリセルに格納されたデータはページ単位で読み出される。アドレスが設定されると、セレクト線ＳＧＤには選択電位Ｖｒｅａｄが印加され、ブロックが選択される。また、ブロック内の選択されたページに対応するワード線ＷＬ１には０Ｖが、非選択のページに対応するワード線ＷＬ０及びＷＬ２〜ＷＬ１５には電位Ｖｒｅａｄが印加される。ここで、ワード線ＷＬ１に接続されたメモリセルａ、ｂ及びｃに着目する。
【００３２】
図６から明らかなように、ワード線ＷＬ１に印加された電位０Ｖにより、メモリセルａ、ｂ、及びｃは、それらが保持するデータ“１”又は”０”により、オン又はオフ状態となる。その他のメモリセルはワード線ＷＬ０及びＷＬ２〜１５に印加された電位Ｖｒｅａｄにより、保持するデータに係わらず、常にオン状態となる。したがって、ワード線ＷＬ１により選択されたメモリセルａ、ｂ及びｃに保持された“１”又は”０”のデータ、すなわちメモリセルのオン又はオフ状態はビット線ＢＬｍ−１、ＢＬｍ及びＢＬｍ＋１を介して、センスアンプＳ／Ａｍ−１、Ｓ／Ａｍ、及びＳ／Ａｍ＋１に供給され検出される。この結果、読み出された“１”又は”０”のデータが確定する。
【００３３】
次に、不良ブロックの検出動作について説明する。不良ブロックの検出は、一括読み出し機能を用いてブロック内のメモリセルのデータを一括して読み出す。
【００３４】
図１は、一括読み出し機能を用いた不良ブロックの検出時における各部の電位を示している。この場合、選択したブロック内の全てのページが選択される。すなわち、全てのワード線ＷＬ０〜ＷＬ１５に選択電位０Ｖが供給される。このため、例えばメモリセルａ’〜ｅ’のうち、少なくとも１つ以上のメモリセルがデータ“０”を保持している場合、その他のメモリセルが保持するデータに関わらず、ビット線ＢＬｍ−１を介してセンスアンプＳ／Ａｍ−１により検出されるデータは“０”となる。
【００３５】
一方、メモリセルａ’〜ｅ’の全てがデータ“１”を保持していた場合、ビット線ＢＬｍ−１を介してセンスアンプＳ／Ａｍ−１により検出されるデータは“１”となる。すなわち、この読み出し動作は、ＮＡＮＤセルを構成する複数のメモリセルから読み出されたデータの論理積を検出している。この読み出し動作により、ブロック内のいずれかのページに格納されたデータ“０”の有無を１度の読み出し動作にて一括検知できる。
【００３６】
このようにして、選択されたブロックの各ビット線を介して各センスアンプにデータを読み出す。この読み出されたデータは、ホストシステム９に供給される。ホストシステム９は、供給されたデータのうち、冗長領域のブロックステータスフラグがデータ“１”であるかデータ“０”であるかを判別する。これにより、選択されたブロックが正常か不良かを判断することができる。
【００３７】
不良ブロックの検出動作は、具体的には、図７に示すように、通常の読み出しコマンドとは異なる一括読み出しコマンド、例えば“Ａ０ｈ”と、カラムアドレス、ページアドレス、ブロックアドレスをホストシステム９から不揮発性半導体メモリ装置に供給する。すなわち、図２に示すように、ホストシステム９から上記一括読み出しコマンドが制御信号入力端子８を介して制御信号及び制御電圧発生回路７に供給される。制御信号及び制御電圧発生回路７は、一括読み出しコマンドに応じて選択されたブロック内の全ワード線を選択するための電圧、及び全ビット線を選択するための電圧を発生する。このようにしてブロック内の各ビット線に選択されたメモリセルから読み出されたデータの論理積のデータが出力される。
【００３８】
上記第1の実施形態によれば、選択したブロックの全ページのデータを一括して読み出し、ビット線を共有する複数のメモリセルのデータの論理積をセンスアンプにより検出し、出力している。このため、ブロック内の少なくとも１つのブロックステータスフラグに不良ブロックを示すデータを書き込むことができれば、上記ブロック内の全ページの一括読に出し動作によりそのブロックが不良であるかどうかを容易に判定できる。したがって、出荷時、或いは出荷後、不良ブロックが検出された場合、ブロックの先頭ページのブロックステータスフラグにデータを書き込むことができなくなった場合においても、他のページのブロックステータスフラグにデータを書き込むことができれば、不良ブロックを判別することができる。
【００３９】
しかも、選択したブロックの全ページのデータを一括して読み出すに要する時間は、従来の先頭ページのデータを読み出し不良ブロックを検出する場合と変わらない。このため、パフォーマンスの低下を招くことなく不良ブロックを確実に検出することができる。
【００４０】
尚、上記説明では、ブロック内の全ページを一括して選択し、データ読み出す場合について説明した。しかし、必ずしも全ページ一括でなくても良く、複数ページ、例えば２ページを同時に選択して検出しても、１ページのみを選択する従来の場合に比べて大きな効果を得ることができる。
【００４１】
また、近年ＮＡＮＤ型フラッシュメモリのブロックサイズの大型化により、大容量化、低コスト化の傾向がある。このため、不良メモリセルが検出された場合、不良メモリセルを含むブロックを不良ブロックとせず、不良メモリセルを含むページのみを不良とし、不良ページを識別するケースも発生する。この場合においても、上記第１の実施形態を適用することにより、不良ブロックの検出と同様に、不良ページを短時間のうちに検出することが可能となる。
【００４２】
図８は、上記不良ページ検出の一例を示している。図８に示す例は、１ページ目と最終ページが不良ページである場合を示している。各ページの冗長領域は、ブロック内の頁数と同数のビット数を有している。不良ページを示すフラグデータ“０”は、冗長領域のそのページに対応するビット位置に書き込まれている。このように、各ページのフラグデータが異なる列に書き込むことにより、一括読み出し時に検出されたデータ“０”のビット位置により、不良ページを特定することができる。
【００４３】
（第２の実施形態）
次に、第２の実施形態について説明する。前述したように、ＮＡＮＤ型フラッシュメモリは、図５（ａ）（ｂ）に示す物理フォーマットが規定されており、これに従ってＮＡＮＤ型フラッシュメモリ内に格納されたデータが管理される。ブロック内の各ページは図５（ａ）（ｂ）に示す物理フォーマットに従ってデータを保持している。
【００４４】
第２の実施形態は、図５（ｂ）に示すブロックアドレス領域１及びブロックアドレス領域２に着目する。ブロックアドレス領域１及びブロックアドレス領域２には同一データが格納されており、且つブロックアドレス領域１及びブロックアドレス領域２に対応して配置されたＥＣＣ領域１，２にそれぞれのパリティビットを格納することにより、ブロックアドレス領域１及びブロックアドレス領域２に格納されたデータのビットエラーに対する耐性を高めている。
【００４５】
また、ブロックアドレス領域１及びブロックアドレス領域２に格納されたデータは論理的なブロックアドレスを示し、ＮＡＮＤ型フラッシュメモリ内の論理アドレスと物理アドレスの対応関係を構築するため、ブロックアドレス領域１及びブロックアドレス領域２が用意されている。
【００４６】
図９（ａ）は、ブロックアドレス領域のデータ更新手順を示している。ここでは、一例として物理ブロックと論理ブロックが１対１に対応している場合について説明する。この例ではフラッシュメモリ１０が４つの物理ブロックにより構成されている場合を示している。初期状態において、物理ブロック０に論理ブロックＬＢＡ０が書き込まれ、物理ブロック１は消去状態、物理ブロック２には論理ブロックＬＢＡ１が書き込まれ、物理ブロック３には論理ブロックＬＢＡ２が書き込まれているものとする。
【００４７】
先ず、ホストシステム９は、パワーオン後、図４、図５（ｂ）に示す物理フォーマットに従い、各物理ブロックの先頭ページを読出し、ブロックアドレス領域に格納された論理アドレスを取得する。ホストシステム９は、図２に示すように、内蔵された例えばＲＡＭからなるメモリ９ａ上に、物理アドレスと論理アドレスの対応関係を示すテーブルＴＢＬを形成する。
【００４８】
図９（ｂ）は、ホストシステム９内に形成されたテーブルＴＢＬを示している。ここで、ホストシステム９が論理ブロックＬＢＡ１のデータの更新を要求した場合、フラッシュメモリ１０において、論理ブロックＬＢＡ１の更新データは、消去状態の物理ブロック１に書き込まれる。この後、更新前のデータを保有する物理ブロック２は消去される。また、ホストシステム９内のテーブルＴＢＬのデータも同様に更新される。すなわち、物理ブロック１に論理ブロックＬＢＡ１が書き込まれる。
【００４９】
以上の繰り返しにより、特定の論理ブロックアドレスが特定の物理ブロックアドレスへ割りつけられることを回避し、特定の物理ブロックに書き換えが集中しないように制御されている。
【００５０】
ここで、上記データ更新中にホストシステム９の電源が不意に遮断されたり、あるいはフラッシュメモリカードがホストシステム９から不意に抜去されたりした場合、フラッシュメモリへのアクセスが中断される。例えば図９（ａ）において、更新後の論理ブロックＬＢＡ１のデータを物理ブロック１へ書き込み中に、上記のような原因によりフラッシュメモリへのアクセスが中断された場合、書き込みが不完全な状態で終了している。
【００５１】
図１０は、物理ブロック１へ書き込み中にフラッシュメモリへのアクセスが中断された場合における物理ブロック１、２の状態を示している。物理ブロック１は、途中のページまで書き込まれ、それ以降のページは不完全なデータとなっている。
【００５２】
上記状態において、再度パワーオンとされ、前述した動作により、フラッシュメモリのブロックアドレス領域が読み出され、ホストシステム９のメモリ上に論理ブロックアドレスと物理ブロックアドレスの対応関係を示すテーブルが生成される。しかし、この例では、物理ブロック１と物理ブロック２に同一の論理アドレスＬＢＡ１が存在するため、ホストシステム９はいずれか一方の物理ブロックを選択しなくてはならない。したがって、一般的には次の手順で処理を行なう。先ず、前述したように、各物理ブロックの先頭ページを読み出す。同一論理ブロックアドレスを有する物理ブロックが複数検出された場合、当該ブロックの最終ページをも読み出す。ここで、最終ページにデータが格納されていない物理ブロックは、データの更新中に異常が発生し作業が中断されたものと判断し、この物理ブロックのデータを消去する。この処理により論理ブロックと物理ブロックが１対１の関係に保持される。また、両物理ブロック共に最終ページまでデータが格納されていた場合、１／２の確率でいずれか一方の物理ブロックのデータを消去することになる。
【００５３】
このように、同一の論理ブロックアドレスを有する物理ブロックが複数存在した場合、以上のように複数回の読み出し動作を経て、論理ブロックと物理ブロックとの対応関係が１対１に保持される。このため、論理ブロックと物理ブロックとの対応関係を確立するまでに長時間を要し、パフォーマンスの低下を招いていた。
【００５４】
そこで、第２の実施形態では、冗長領域にブロック内のどのページまでデータが書き込まれたかを示すフラグ領域を設け、このフラグ領域に書き込まれたデータを第１の実施形態と同様にビット線毎に論理積データとして読み出す。
【００５５】
図１１（ａ）（ｂ）は、フラグ領域を示している。すなわち、各ブロックの各ページには１ビット以上のフラグ領域ＦＬＧが設けられる。書き込みの完了したページは、フラグ領域ＦＬＧの少なくとも１ビットにフラグデータとしてデータ“０”が書き込まれる。このフラグデータは同一ビット線上には書き込まれない。このフラグデータにより書き込み済みであることが表示される。
【００５６】
一方、前述したように書き込みが中断された場合、再度パワーオンされると、第１の実施形態と同様にブロック内のデータが一括読み出し機能を使用して読み出される。すなわち、ホストシステム９は、前記一括読み出しコマンドを発行する。フラッシュメモリは、このコマンドに応じて、物理ブロック内のデータを一括して読み出す。各ビット線には、ＮＡＮＤセルに記憶されたデータの論理積データが読み出される。この読み出されたデータは、ホストシステム９に転送される。ホストシステム９は、供給されたデータのうち、フラグ領域ＦＬＧのデータを判別する。図１１（ａ）に示すように、ブロックの全ページの書き込みが完了している場合、フラグ領域ＦＬＧのデータはオール“０”である。しかし、図１１（ｂ）に示すように、書き込みが不完全である場合、フラグ領域ＦＬＧのデータは“００１…１”となり、オール“０”とはならない。このため、１度の読み出し動作により、物理ブロックのいずれのページまで書き込みが完了したかを容易に判別することができる。
【００５７】
上記第２の実施形態によれば、冗長領域にフラグ領域ＦＬＧを設け、ブロック内の全データをビット線毎に論理積データとして一括して読み出し、このフラグ領域ＦＬＧに書き込まれたデータを検出することにより、ブロック内のどのページまでデータが書き込まれたかを判別することができる。したがって、同一の論理ブロックアドレスが複数存在する場合においても、一度の読み出し動作により、不完全な書き込み状態のブロックを判別することができるため、パフォーマンスの低下を防止することができる。
【００５８】
（第３の実施形態）
第３の実施形態は、第２の実施形態を変形したものである。第２の実施形態において、同一論理ブロックアドレスを有する複数の物理ブロックが存在した場合、書き込みが不完全な物理ブロックのデータを消去した。しかし、可能な限り物理ブロックに書き込まれた新規のデータを尊重するため、更新後のデータと更新前のデータをマージして新規のデータとする制御方法をとるシステムが考えられる。
【００５９】
通常不完全なデータを格納するブロックにおいて、何ページ目までデータが格納されたかを判断するためには、例えば少なくとも“書き込み済みのページ数＋１回”又は“未書き込みのページ数＋１回”の読み出し作業が必要になる。
【００６０】
しかし、この場合においても第２の実施形態に示すフラグ領域ＦＬＧ、及びブロック内のデータを一括して読み出す一括読み出し機能を活用することにより、不完全なデータを含むブロックにおいて、ブロック内の何ページ目まで更新後のデータが格納されているかを容易に検出できる。すなわち、一括読み出し機能を用いて、図１１（ｂ）に示す不完全なデータを含むブロックからデータを読み出した場合、読み出しデータは、“００１…１”となり、何ページまで書き込まれたかを容易に判別することができる。この場合、この読み出されたデータより、第２ページまで書き込まれたことを知ることができる。このため、図１２に示すように、図１１（ｂ）に示す物理ブロック１の第０ページと第１ページのデータ、及び図１１（ａ）に示す物理ブロック２の第２ページ以降のデータを物理ブロックｎに容易にマージすることができる。
【００６１】
上記第３の実施形態によれば、フラグ領域ＦＬＧ、及びブロック内のデータを一括して読み出す一括読み出し機能を活用することにより、不完全なデータを含むブロックにおいて、ブロック内の何ページ目まで更新後のデータが格納されているか１回の読み出し動作により容易に検出できる。このため、効率良くデータのマージ作業を行なうことができる。
【００６２】
（第４の実施形態）
上記第２、第３の実施形態では、物理ブロックと論理ブロックが１対１に対応している場合について説明した。これに対して、第４の実施形態は、１つの論理ブロックが、２つ以上の物理ブロックに存在することを許容した制御方法について説明する。
【００６３】
図１３は、第４の実施形態を示すものであり、同一の論理ブロックアドレスＬＢＡ１を有する物理ブロック２及び１が存在する場合を示している。物理ブロック１、２は、それぞれデータ領域ＤＲ及び冗長領域ＲＤＲを有している。各冗長領域ＲＤＲは、ページ毎に論理ブロックアドレス、複数のフラグデータＦＬＧ、及びプログラムオーダフラグＰＯＦを有している。
【００６４】
物理ブロック１、２に書き込まれた新データ、旧データは、ホストシステム９がフラグデータＦＬＧを用いてブロック内のページの書き込み状況から判断したり、プログラムオーダフラグＰＯＦの値によって判断したりされる。図１３に示す物理ブロック２のように、ブロック内の最終ページまでデータが書き込まれたブロックをプログラムドブロック、図１３に示す物理ブロック１のように、ブロック内の途中のページまでデータが書き込まれたブロックをプログラミングブロックとして区別する。
【００６５】
例えば図１３において、プログラムドブロック（物理ブロック２）の第１ページが更新された場合、Ａ１で示すように、プログラミングブロック（物理ブロック１）の第１ページに新規データが書き込まれる。
【００６６】
論理ブロックアドレスＬＢＡ１のデータを読み出す場合、図１３にＡ２で示すように、先ず、プログラミングブロック（物理ブロック１）の第０ページ及び第１ページのデータが読み出され、次いで、プログラムドブロック（物理ブロック２）の第２ページ、第３ページ…第３１ページのデータが順次読み出される。
【００６７】
次に、例えば論理ブロックアドレスＬＢＡ１の第５ページが更新される場合、プログラムドブロック（物理ブロック２）の第３ページ及び第４ページのデータがプログラミングブロック（物理ブロック１）の第３ページ及び第４ページにコピーされ、新規第５ページのデータがプログラミングブロック（物理ブロック１）の第５ページに格納される。読み出し動作は、上記と同様に、先ず、物理ブロック１が第５ページまで読み出され、次いで、物理ブロック２の第６ページ以降のデータが読み出される。
【００６８】
以上のように、論理ブロックアドレスＬＢＡ１に対する物理ブロック１及び２の新、旧のデータの区別は、プログラムオーダフラグＰＯＦを用い判断することが可能である。
【００６９】
しかし、何ページ目までデータが格納されたかを判断するためには、前述したように、例えば少なくとも“データ書き込み済みのページ数＋１回”、又は“データ未書き込みのページ数＋１回”の読み出し動作が必要になる。
【００７０】
そこで、第４の実施形態は、上記一括読み出し機能を用いて何ページ目までデータが書き込まれたかを判断する。すなわち、ホストシステム９が一括読み出しコマンドを発行し、物理ブロック２、物理ブロック１のデータを前述した各実施形態と同様に一括して論理積データとして読み出す。ホストシステム９は、この論理積データを取り込み、フラグデータＦＬＧのデータを判別する。この結果、物理ブロック２は、フラグデータＦＬＧがオール“１”であるため、プログラムドブロックと判断され、物理ブロック１は、グラグデータＦＬＧが“００１…１”であるため、第１ページまでデータが書き込まれたプログラミングブロックであると判断される。
【００７１】
プログラミングブロックのように、新規物理ブロックにおいて、どのページまで、データが書き込まれているかを知ることはデータの読み出し及び書き込みにおいて必須である。
【００７２】
第４の実施形態によれば、一括読み出し機能を用いて物理ブロックの書き込み状態を検出している。このため、不完全なデータを含むブロックにおいて、ブロック内の何ページ目までにデータが格納されているかを容易に検出できる。したがって、１つの論理ブロックが複数の物理ブロックに存在することを許容した制御方法において、新データ及び旧データをマージして読み出す際のパフォーマンスを向上することができる。さらに、書き込み時に、書き込むべきページアドレスを容易に取得することが可能であるため、大幅なパフォーマンスの向上を図ることが可能である。
【００７３】
（第５の実施形態）
次に、第５の実施形態について説明する。第５の実施形態は、１つの物理ブロックに対して複数の論理ブロックが格納され、かつ同一論理ブロックを格納する物理ブロックが複数存在することを許容する例を示している。
【００７４】
一般に、ＮＡＮＤ型フラッシュメモリの大容量化及び低コスト化に伴い、消去単位であるブロックのサイズを大きくすることが必須条件とされている。一方で論理アドレスの管理単位である論理ブロックのサイズを従来と同様のサイズに維持したいとの要求もある。このため、同一物理ブロックに複数の論理ブロックを格納したデータ管理が必要となる場合がある。このデータ管理を行なう場合、同一物理ブロック内に格納される複数の論理ブロックは常に論理アドレスの小さい順に格納されているとの条件付けを行い制御する方法が考えられる。
【００７５】
図１４は、上記データ管理の一例を示している。物理ブロックｎ内に格納される論理ブロックは、論理ブロックアドレスＬＢＡ０、ＬＢＡ１、ＬＢＡ２、ＬＢＡ３は、小さい順に格納されている。この場合、例えば論理ブロックアドレスＬＢＡ３にデータ更新が発生した場合、論理ブロックアドレスＬＢＡ０〜ＬＢＡ２のデータを新規ブロックにコピーし、次いで、論理ブロックアドレスＬＢＡ３の更新データを新規ブロックに格納する必要がある。これは大きなオーバーヘッドが存在することを意味する。
【００７６】
そこで、同一物理ブロック内に格納される論理ブロックは常に論理アドレスがシーケンシャルになるように格納されているとの条件付けを行い制御する方法も考えられる。しかし、この場合、例えば図１５に示すように、論理ブロックアドレスＬＢＡ３のデータを更新した後に、論理ブロックアドレスＬＢＡ２のデータ更新が発生した場合、先ず、論理ブロックアドレスＬＢＡ０及びＬＢＡ１のデータをコピーし、この後、更新された論理ブロックアドレスＬＢＡ２のデータを書き込む必要がある。したがって、この場合もデータの書き込みは（１）→（２）→（３）の順となりオーバーヘッドは小さくならない。
【００７７】
そこで、同一物理ブロック内に格納される論理ブロックアドレスはアドレスの範囲を限定し、論理ブロックアドレスの並び方はランダムでよいとの条件の下にデータを管理する方法が考えられる。この場合、更新先の物理ブロックに既にどの論理アドレスが格納されているかを知る必要がある。しかし、論理アドレスを知るためには、物理ブロック内のページを複数回読み出す必要があり、時間がかかる。
【００７８】
そこで、第５の実施形態では、上記一括読み出し機能を用いて、論理アドレスの検出時間を短縮することを可能とする。
【００７９】
図１６は、第５の実施形態に適用される物理ブロックのフォーマットを示している。物理ブロックの冗長領域ＲＤＲには、論理ブロックに対応して、論理ブロックアドレスの記憶領域がマトリクス状に設けられ、この記憶領域に論理ブロックアドレスが格納される。論理ブロックに対応して各行に配置される論理ブロックアドレスは、各列に１つのみが格納され、１つの列に複数の論理ブロックアドレスが格納されないようにされる。冗長領域の論理ブロックアドレスが格納された領域以外の領域には“ＦＦ”が書き込まれている。
【００８０】
上記構成において、ホストシステム９から一括読み出しコマンドが発行されると、フラッシュメモリは、このコマンドに応じて、物理ブロック内のデータを一括して読み出す。各ビット線には、ＮＡＮＤセルに記憶されたデータの論理積データが読み出される。この読み出されたデータは、ホストシステム９に転送される。ホストシステム９は、供給されたデータのうち、冗長領域ＲＤＲの論理ブロックアドレスを判別する。図１６に示す例の場合の一括読み出し結果は、“ＬＢ０”“ＦＦ”“ＬＢＡ２”“ＬＢＡ３”となる。したがって、物理ブロックに既にどの論理アドレスが格納されているかを知ることができる。
【００８１】
上記第５の実施形態によれば、物理ブロックの冗長領域に記憶された複数の論理ブロックアドレスを一括して読み出し判別することができる。このため、物理ブロック内に論理ブロックアドレスがランダムに配置されている場合においても、一度の読み出し動作により、更新先の物理ブロックにどの論理アドレスが格納されているかを容易に判別することができる。したがって、パフォーマンスの低下を防止することが可能である。
【００８２】
図１７及び図１８は、上記各実施形態が適用されるアプリケーションの例を示している。図１７はコントローラ（一般的にはマイクロプロセッサ）を搭載していない、すなわち、フラッシュメモリのみを搭載したメモリカード２０や、比較的小規模のロジック回路等を搭載したメモリカード２１を示している。これらメモリカード２０、２１は例えばデジタルスチルカメラ２２に接続される。デジタルスチルカメラ２２はホストシステムとしてのコントローラ２３を有し、このコントローラ２３から出力されるコマンド及びアドレス信号に応じて、フラッシュメモリ２０、２１は、上記各実施形態の動作、又は各実施形態を任意に組み合わせた動作を実行する。ホスト側の機器はデジタルスチルカメラに限定されるものではなく、例えば携帯電話器、メモリカードのリーダ／ライタなど様々な電子機器が適用可能である。
【００８３】
図１８は、コントローラを内蔵したメモリカード３１に上記各実施形態を適用した場合を示している。この例の場合、ホストインタフェースとしては、ＡＴＡインタフェース、ＰＣカードインタフェース、ＵＳＢ等が考えられるが、いかなるインタフェースであっても各実施形態を適用することが可能である。また、図１８に示す例の場合、メモリカード３１内のコントローラ３２が、上記ホストシステム９として機能し、上記各実施形態の動作、又は各実施形態を任意に組み合わせた動作を実行する。
【００８４】
なお、上記各実施形態では、ＮＡＮＤ型フラッシュメモリとして、１つのメモリセルに１ビットの情報を記憶する２値メモリを例に挙げて説明した。しかし、ＮＡＮＤ型フラッシュメモリは、１つのメモリセルに１ビットより多い情報（例えば２ビット）を記憶する多値メモリであっても良い。
【００８５】
また、図８に示すように、ページ毎に正常あるいは不良を管理する必要はなく、例えば、図１４のように、１つの物理ブロックに対して複数の論理ブロックが格納される場合において、その論理ブロックごとに正常あるいは不良を管理することも可能である。この場合、図８と同様に、冗長領域に物理ブロックと同数のビット数とし、不良ブロックを示すフラグデータ“０”を冗長領域のそのブロックに対応するビット位置に書き込むことにより、一括読み出し時に検出されたデータ“０”のビット位置により、不良ブロックを特定することができる。
【００８６】
また、上記各実施形態は、ＮＡＮＤ型フラッシュメモリを例として説明した。しかし、これに限定されるものではなく、ＮＯＲ型、ＡＮＤ型、ＤＩＮＯＲ型など各種フラッシュメモリに適用することも可能である。
【００８７】
さらに、上記各実施形態は、ＥＰＲＯＭからなるフラッシュメモリに限定されるものではなく。例えば磁気によってデータを記憶するＭＲＡＭ（Magnetic Random Access Memory）や、強誘電体を使用したＦｅＲＡＭ（Ferroelectric Random Access Memoryの略）や、カルコゲン化物等を使用したＯＵＭ（Ovonics Unified Memory）等に適用することも可能である。
【００８８】
その他、本発明の要旨を変えない範囲において種々変形実施可能なことは勿論である。
【図面の簡単な説明】
【００８９】
【図１】第１の実施形態の動作を示す回路図。
【図２】第１の実施形態が適用される不揮発性半導体メモリ装置を示す構成図。
【図３】図２に示すメモリセルアレイの一部を示す回路図。
【図４】ＮＡＮＤ型フラッシュメモリのフォーマットを示す図。
【図５】図５（ａ）は記憶領域の構成を示し、図５（ｂ）は冗長領域に書き込まれるシステムの管理データの例を示す図。
【図６】メモリセルのデータと読み出し電位の関係を示す図。
【図７】図１の動作を示すタイミング図。
【図８】第１の実施形態の変形例を示す図。
【図９】図９（ａ）は、ブロックアドレス領域のデータ更新手順を示し、図９（ｂ）は、ホストシステム内に形成されたテーブルＴＢＬを示す図。
【図１０】書き込み中にアクセスが中断された場合における物理ブロックの状態を示す図。
【図１１】図１１（ａ）（ｂ）は、第２の実施形態に係るフラグ領域を示す図。
【図１２】第３の実施形態に係わり、物理ブロックに書き込まれた新データと旧データをマージした状態を示す図。
【図１３】第４の実施形態に係わり、同一の論理ブロックアドレスを有する２つの物理ブロックのアクセス動作を示す図。
【図１４】同一物理ブロックに複数の論理ブロックを格納したデータ管理の例を示す図。
【図１５】図１４と別のデータ管理の例を示す図。
【図１６】第５の実施形態に適用される物理ブロックのフォーマットを示す図。
【図１７】各実施形態が適用されるアプリケーションの例を示す図。
【図１８】各実施形態が適用されるアプリケーションの他の例を示す図。
【符号の説明】
【００９０】
１…メモリセルアレイ、２…ビット線制御回路、６…ワード線制御回路、７…制御信号及び制御電圧発生回路、９…ホストシステム、１０…フラッシュメモリ、ＤＲ…データ領域、ＲＤＲ…冗長領域、ＦＬＧ…フラグデータ、ＬＢＡ０〜ＬＢＡ３…論理ブロックアドレス、２０、２１、３１…メモリカード、２３、３２…コントローラ。
【図１】
2006302342.tif 000003
【図２】
2006302342.tif 000004
【図３】
2006302342.tif 000005
【図４】
2006302342.tif 000006
【図５】
2006302342.tif 000007
【図６】
2006302342.tif 000008
【図７】
2006302342.tif 000009
【図８】
2006302342.tif 000010
【図９】
2006302342.tif 000011
【図１０】
2006302342.tif 000012
【図１１】
2006302342.tif 000013
【図１２】
2006302342.tif 000014
【図１３】
2006302342.tif 000015
【図１４】
2006302342.tif 000016
【図１５】
2006302342.tif 000017
【図１６】
2006302342.tif 000018
【図１７】
2006302342.tif 000019
【図１８】
2006302342.tif 000020