(57)【要約】【課題】物理ページへの書き込み開始直後の電源遮断後に誤り訂正を行った後のデータは物理ページの消去済みではないにもかかわらず、全消去済と同じになり、正常に書き込みが行われた状態と誤判定するという課題がある。【解決手段】不揮発性メモリにデータを書き込むときに必ず書き込みマークも同時に書き込む。単位ブロックに含まれる複数の書き込み単位毎に情報を読み出し、誤り訂正機能で読み出した情報の誤り訂正を行う。そして読み出した書き込みマークの情報を基にして書き込み単位毎の書き込み状態を判定する。【選択図】図１
2007241618.tif 000002
【特許請求の範囲】
【請求項１】
複数の消去単位ブロックからなる記憶領域を含み、ユーザデータを記憶すると共に、１又は複数の書き込み単位毎に書き込みマークを記憶する領域を有する不揮発性メモリと、
前記不揮発性メモリにデータを書き込み及び読み出すメモリコントローラと、を具備し、
前記メモリコントローラは、
前記メモリから読み出されたデータが全て消去されているデータかどうかを検出する全消去検出回路と、
読み出されたデータの誤りを検出および訂正する誤り検出訂正回路と、
前記書込読出制御回路からデータを書き込む際には書き込みマーク内に書き込みマークを記録すると共に、データの読み出し時には前記書き込みマークと前記全消去検出回路と前記誤り検出訂正回路の出力に基づいて書き込み後の異常を検出する制御回路と、を有する不揮発性記憶装置。
【請求項２】
外部からの１回の書き込みコマンドがあったときに書き込みを行う最小単位を管理単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行う最小単位を書き込み単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行うことができる最大単位を最大書き込み単位とすると、
前記書き込みマークは、管理単位内において最大書き込み単位に区分したときに、最終の最大書き込み単位の書き込み単位毎に設けられる請求項１記載の不揮発性記憶装置。
【請求項３】
外部からの１回の書き込みコマンドがあったときに書き込みを行う最小単位を管理単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行う最小単位を書き込み単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行うことができる最大単位を最大書き込み単位とすると、
前記書き込みマークは、管理単位が最大書き込み単位以下のときに全ての書き込み単位毎に設けられる請求項１記載の不揮発性記憶装置。
【請求項４】
前記消去単位ブロックは、複数の不揮発性メモリにまたがる消去単位をグループとして構成されている請求項１〜３のいずれかに記載の不揮発性記憶装置。
【請求項５】
前記消去単位ブロックは、不揮発性メモリの消去単位の整数倍で構成されている請求項１〜３のいずれかに記載の不揮発性記憶装置。
【請求項６】
複数の消去単位ブロックからなる記憶領域を含み、ユーザデータを記憶すると共に、１又は複数の書き込み単位毎に書き込みマークを記憶する領域を有する不揮発性メモリと、
前記不揮発性メモリにデータを書き込み及び読み出すメモリコントローラと、を具備する不揮発性記憶装置の書き込み判定方法であって、
前記単位ブロックに含まれる少なくとも１つの複数の書き込み単位毎にデータを読み出す読み出しステップと、
読み出したデータが全て消去されているデータかどうかを判定する消去済み判定ステップと、
前記読み出しステップで読み出したデータの誤り訂正を行う誤り訂正ステップと、
データの読み出し時には前記書き込みマークの有無に基づいて書き込み時の異常を検出するステップと、を含み、前記不揮発性メモリの書き込み状態を判定する不揮発性記憶装置の書き込み判定方法。
【請求項７】
前記読み出したデータが消去済みでないと判定され、且つ
前記書き込みマークが未書き込みの場合には、
前記書き込み単位の書き込み中に異常が発生したと判断する請求項６記載の不揮発性記憶装置の書き込み判定方法。
【請求項８】
外部からの１回の書き込みコマンドがあったときに書き込みを行う最小単位を管理単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行う最小単位を書き込み単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行うことができる最大単位を最大書き込み単位とすると、
前記書き込みマークは、管理単位内において最大書き込み単位に区分したときに、最終の最大書き込み単位の書き込み単位毎に設けられている請求項６記載の不揮発性記憶装置の書き込み判定方法。
【請求項９】
外部からの１回の書き込みコマンドがあったときに書き込みを行う最小単位を管理単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行う最小単位を書き込み単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行うことができる最大単位を最大書き込み単位とすると、
前記書き込みマークは、管理単位が最大書き込み単位以下のときに全ての書き込み単位毎に設けられる請求項６記載の不揮発性記憶装置の書き込み判定方法。
【請求項１０】
前記消去単位ブロックは、複数の前記不揮発性メモリにまたがる消去単位をグループとして構成されている請求項６〜９のいずれかに記載の不揮発性記憶装置の書き込み判定方法。
【請求項１１】
前記消去単位ブロックは、前記不揮発性メモリの消去単位の整数倍で構成されている請求項６〜９のいずれかに記載の不揮発性記憶装置の書き込み判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の不揮発性メモリを用いた不揮発性記憶装置及びその書き込み判定方法に関する。
【背景技術】
【０００２】
近年、不揮発性メモリを搭載した不揮発性記憶装置は、メモリカードとして実用化されており、デジタルカメラや携帯電話のメモリカードとして市場を拡大している。メモリカードはデジタルカメラの高画素化や、携帯電話での動画記録等の用途へ向けて大容量化・高速化の拡がりを見せている。
【０００３】
メモリカードで使用されている主な不揮発性メモリはフラッシュメモリである。フラッシュメモリは大容量化に伴い、消去単位である物理ブロックサイズが拡大する傾向にあるが、メモリカードとしてホスト及びホストを操作するユーザー側から見た管理単位は一定である。その結果メモリカードに搭載されているメモリコントローラの制御によりホスト側のデータの管理と、フラッシュメモリ側のデータの管理の調整を行う必要がある。
【０００４】
又この不揮発性メモリには信頼性を向上させるためにデータの書き込み時に誤り訂正符号（以下、単にＥＣＣという）を付加し、読出し後に誤り訂正を行っている。物理ブロックに対し途中まで書込まれた状態を管理するものが知られている。
【０００５】
一般的にホストがメモリカードに格納するデータの管理単位は物理ブロックの容量である１２８ｋＢに比べて小さく、例えば１６ｋＢである。従ってメモリコントローラは物理ブロックに対して途中まで書き込まれた状態を管理する必要が出てくる。物理ブロックにおける部分的な書き込みを管理する方法については特許文献１でも述べられている。
【特許文献１】特開２００１−１５４９０９
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の書き込み判定方法では、物理ページの書き込み途中での電源遮断により、本来の書き込みデータが正常に書き込まれていない事を、ＥＣＣ回路で訂正が不可能な誤りが発生していることで判断する。この判断方法は概ね良好に電源遮断によってデータが正しく書き込まれていないことを検出できる。しかし、電源遮断が発生して本来書き込むべきデータが正しく書き込まれていないにもかかわらずＥＣＣ回路によって誤り訂正可能と判断される場合、特に物理ページへの書き込み開始直後の電源遮断によりほとんど全てのビットに対してはデータは未書き込みであり、訂正可能な範囲でのわずかなビットのみ書き込みが行われている場合には、誤り訂正を行った後のデータは全消去済と同じ全て”１”になる。この場合は物理ページの消去済みではなく、なおかつ正常にデータが書き込まれていないにもかかわらず、正常に書き込みが行われた状態と誤判定してしまうという可能性がある。誤判定が発生した場合、正常に書き込まれたわけでもないデータを正常に書き込まれていると判断するために、誤判定によって誤って更新される元のデータが全消去済みと同じ”１”のデータに置き換えられて、元のデータを消失してしまい、データの信頼性を維持できない事態を引き起こす可能性があるという課題がある。
【０００７】
書き込み途中の電源遮断等の異常を正確に検出することができる不揮発性記憶装置及びその書き込み判定方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
この課題を解決するため、本発明の不揮発性記憶装置は、複数の消去単位ブロックからなる記憶領域を含み、ユーザデータを記憶すると共に、１又は複数の書き込み単位毎に書き込みマークを記憶する領域を有する不揮発性メモリと、前記不揮発性メモリにデータを書き込み及び読み出すメモリコントローラと、を具備し、前記メモリコントローラは、前記メモリから読み出されたデータが全て消去されているデータかどうかを検出する全消去検出回路と、読み出されたデータの誤りを検出および訂正する誤り検出訂正回路と、前記書込読出制御回路からデータを書き込む際には書き込みマーク内に書き込みマークを記録すると共に、データの読み出し時には前記書き込みマークと前記全消去検出回路と前記誤り検出訂正回路の出力に基づいて書き込み後の異常を検出する制御回路と、を有するものである。
【０００９】
ここで外部からの１回の書き込みコマンドがあったときに書き込みを行う最小単位を管理単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行う最小単位を書き込み単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行うことができる最大単位を最大書き込み単位とすると、前記書き込みマークは、管理単位内において最大書き込み単位に区分したときに、最終の最大書き込み単位の書き込み単位毎に設けられるようにしてもよい。
【００１０】
ここで外部からの１回の書き込みコマンドがあったときに書き込みを行う最小単位を管理単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行う最小単位を書き込み単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行うことができる最大単位を最大書き込み単位とすると、前記書き込みマークは、管理単位が最大書き込み単位以下のときに全ての書き込み単位毎に設けられるようにしてもよい。
【００１１】
ここで前記消去単位ブロックは、複数の不揮発性メモリにまたがる消去単位をグループとして構成されているようにしてもよい。
【００１２】
ここで前記消去単位ブロックは、不揮発性メモリの消去単位の整数倍で構成されているようにしてもよい。
【００１３】
この課題を解決するため、本発明の不揮発性記憶装置の書き込み判定方法は、複数の消去単位ブロックからなる記憶領域を含み、ユーザデータを記憶すると共に、１又は複数の書き込み単位毎に書き込みマークを記憶する領域を有する不揮発性メモリと、前記不揮発性メモリにデータを書き込み及び読み出すメモリコントローラと、を具備する不揮発性記憶装置の書き込み判定方法であって、前記単位ブロックに含まれる少なくとも１つの複数の書き込み単位毎にデータを読み出す読み出しステップと、読み出したデータが全て消去されているデータかどうかを判定する消去済み判定ステップと、前記読み出しステップで読み出したデータの誤り訂正を行う誤り訂正ステップと、データの読み出し時には前記書き込みマークの有無に基づいて書き込み時の異常を検出するステップと、を含み、前記不揮発性メモリの書き込み状態を判定するものである。
【００１４】
ここで前記読み出したデータが消去済みでないと判定され、且つ前記書き込みマークが未書き込みの場合には前記書き込み単位の書き込み中に異常が発生したと判断するようにしてもよい。
【００１５】
ここで外部からの１回の書き込みコマンドがあったときに書き込みを行う最小単位を管理単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行う最小単位を書き込み単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行うことができる最大単位を最大書き込み単位とすると、前記書き込みマークは、管理単位内において最大書き込み単位に区分したときに、最終の最大書き込み単位の書き込み単位毎に設けられているようにしてもよい。
【００１６】
ここで外部からの１回の書き込みコマンドがあったときに書き込みを行う最小単位を管理単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行う最小単位を書き込み単位とし、前記不揮発性メモリへの１回の書き込みコマンドで書き込みを行うことができる最大単位を最大書き込み単位とすると、前記書き込みマークは、管理単位が最大書き込み単位以下のときに全ての書き込み単位毎に設けられるようにしてもよい。
【００１７】
ここで前記消去単位ブロックは、複数の前記不揮発性メモリにまたがる消去単位をグループとして構成されているようにしてもよい。
【００１８】
ここで前記消去単位ブロックは、前記不揮発性メモリの消去単位の整数倍で構成されているようにしてもよい。
【発明の効果】
【００１９】
以上のように本発明によれば、全消去検出回路の出力と書き込みマークの有無に基づいて書き込み状態を制御回路によって判定することによって、正確に書き込み途中の電源遮断等の異常を検出することのできる信頼性の高い不揮発性記憶装置及びその書き込み判定方法を提供することができる。
【発明を実施するための最良の形態】
【００２０】
本発明の実施の形態による不揮発性記憶装置及びその書き込み判定方法について説明する。図１は本発明の実施の形態による不揮発性記憶装置及びホストを示すブロック図である。図１において、ホスト１０１は不揮発性記憶装置を取付けてデータを書き込み又は読み出すものである。メモリカード１０２は不揮発性記憶装置である。メモリカード１０２の内部には、ホスト１０１から書き込まれるデータが格納されるフラッシュメモリ１０３、ホスト１０１とインターフェース（ＩＦ）を制御すると共にフラッシュメモリ１０３の制御を行うメモリコントローラ１０４を含んでいる。メモリコントローラ１０４はホスト１０１とのインターフェースを制御するホストインターフェース（ＩＦ）１０５、及びフラッシュメモリ１０３とのインターフェースを制御するフラッシュインターフェース（ＩＦ）１０６が設けられる。制御回路１０７はメモリコントローラ１０４内部の動作を制御する制御部であり、後に詳細に説明するように書き込みマーク判定機能を有している。バッファメモリ１０８はメモリコントローラ１０４の内部にあってホスト１０１とフラッシュメモリ１０３の間の読み出し及び書き込みデータを一時格納するためのバッファである。バッファメモリ１０８は例えば５１２Ｂ（バイト）の容量を持つ。ＥＣＣ回路１０９はホスト１０１からフラッシュメモリ１０３に書き込むデータに付加する誤り訂正符号（ＥＣＣ）を生成する演算を行ったり、フラッシュメモリ１０３からホスト１０１へデータを読み出す際に誤り訂正演算を行い、誤りを訂正する回路である。ＥＣＣ回路１０９はリードソロモン符号等が用いられるが、誤り訂正を行なう必要のあるデータ量よりも訂正符号の訂正能力を大きく取ることで、訂正能力以上の誤りが発生していることを検出することもできる（誤りの訂正位置を演算した結果がデータの存在しないアドレスになる場合や、データの存在しない訂正パターンになる場合）。全消去検出回路１１０はフラッシュメモリ１０３から読み出されたデータが全て消去済みであるか否かを判定するものである。
【００２１】
図２はフラッシュメモリ１０３の内部の構成を示す。フラッシュメモリ１０３は例えば１２８ＭＢの容量を持つフラッシュメモリとすると、内部にはＰＢ０〜ＰＢ１０２３の１０２４個の物理ブロックがある。物理ブロックのそれぞれの容量は１２８ｋＢであり、この物理ブロックがフラッシュメモリ１０３におけるデータの消去単位ブロックとなっている。なおここでの容量値は、ホストから転送されるユーザデータが格納される領域の容量を挙げており、実際にはＥＣＣ等を格納する管理領域も併せ持っている。
【００２２】
図３はフラッシュメモリの１つの物理ブロックの内部の構成を示す。各物理ブロックの内部には、ＰＰ０〜ＰＰ６３の６４個の物理ページがあり、それぞれの容量は２ｋＢであり、この物理ページがフラッシュメモリ１０３における１回の書き込みコマンドで書き込みを行うことのできる単位である。なおここでも容量値はホストから転送されるユーザデータが格納される領域の容量を挙げており、実際にはＥＣＣ等を格納する管理領域も併せ持っている。
【００２３】
図４は物理ページの内部の論理データの構成の一例を示す。各物理ページには２ｋＢのデータ領域と６４Ｂの管理領域がある。データ領域にはホスト１０１からのデータが格納されており、管理領域には論理アドレスやＥＣＣ等のメモリカード１０２内部で使用する管理情報が格納されている。なお、一般的に付加されるＥＣＣ消去済みの状態でＥＣＣが正しいと判断されるように設定される。ここでも消去済みの状態では誤り訂正エラーが発生しない符号化を用いる。更に管理領域には書き込みマークを記録する領域を備えている。書き込みマークＷＭとは、データを書き込むときに必ず書き込む固定値の”０”であり、ここでは２ビットとする。書き込みマークは、書き込み単位である１物理ページにデータを書き込む際に、データ領域や管理領域ともに書き込みを行う。書き込みマークＷＭはＥＣＣ演算の対象となる領域にあり、読み出しの際に誤りがあれば訂正の対象となる。
【００２４】
尚、この例では書き込み単位は１物理ページ、即ち２ｋＢであり、管理単位も１物理ページ、即ち２ｋＢとする。図５はフラッシュメモリ１０３の物理ブロック内部の一例を示しているが、物理ページＰＰ０〜ＰＰ７までの１６ｋＢの容量部分にはデータが書き込み済みであり、物理ページＰＰ８〜ＰＰ６３まではまだ未書き込みの状態である。メモリコントローラ１０４はこの状態を管理することはもちろんのこと、メモリカード１０２に電源が投入された後に図５に示すような書き込み状態であることを判別する必要がある。そのためにメモリコントローラ１０４は物理ブロックの各物理ページのデータを読み出す際に、全消去検出回路１１０を用いて書き込み済であるのかそれとも未書き込みであるのかを判別する。
【００２５】
図６は全消去検出回路１１０の簡単な構成を示す。全消去検出回路１１０の主な構成要素は論理積ゲート１１１とフリップフロップ１１２である。論理積ゲート１１１の出力はフリップフロップ１１２の入力であるＤ端子に接続されているとともに、論理積ゲート１１１の一方の入力はフリップフロップ１１２の出力であるＱ端子に接続されている。また論理積ゲート１１１の他方の入力は全消去検出回路１１０の入力となっており、フリップフロップ１１２の出力であるＱ端子が全消去検出回路１１０の出力となっている。フリップフロップ１１２は全消去検出回路１１０へのデータの入力と同期するクロック信号が入力される。
【００２６】
まず最初にメモリコントローラ１０４は消去済であるかそれとも書き込み済であるかを判定したい物理ページの読み出しに際して、全消去検出回路１１０のフリップフロップ１１２にラッチされたデータを”１”にセットする。そうしておいて物理ページの読み出しデータを全て全消去検出回路１１０に入力する。そうすると読み出し終了後に得られる全消去検出回路１１０の出力は、物理ページから読み出される全データを論理積演算したものになる。つまり全消去検出回路１１０の出力が”１”であれば物理ページのデータは全て”１”の未書き込みの状態であり、全消去検出回路１１０の出力が”０”であれば、物理ページのデータには”０”が少なくとも１ビットは存在する書き込み済の状態であることがわかる。
【００２７】
図７はある消去済みの物理ページのデータの状態を示した図である。物理ページはデータ領域と管理領域から構成され、管理領域には書き込みマーク領域ＷＭがある。ここでは書き込みマーク領域ＷＭに２ビットの領域を割り当てた場合について示している。消去済みの状態であるので、物理ページの全てのデータは”１”データで埋められている。書き込みマーク領域のデータも”１”である。
【００２８】
図８はある書き込み済みの物理ページのデータの状態を示した図である。ハッチングで示された領域は”１”または”０”のどちらかのデータの領域である。データ領域はホスト１０１から送られるデータを格納するので”１”または”０”いずれかの状態であり、管理領域にある論理ブロック情報やＥＣＣも同様に”１”または”０”のいずれの状態もとりうる。しかし書き込みマーク領域ＷＭのデータは”０”を書き込むことになっているので必ず”０”であり、図に示したような状態となる。
【００２９】
図９はある消去済みの物理ページに対して書き込みを開始した直後に電源遮断が発生した場合のデータの状態の一例を示した図である。データ領域及び管理領域のデータはほとんど”１”であるが、データ領域の９０１で示す１ビット及び管理領域の９０２で示す１ビットの合計２ビットのみがデータ”０”になっている。書き込みマーク領域ＷＭには本来データ”０”が書き込まれるはずであったが、書き込み途中に電源遮断が生じたため、まだ未書き込みを示す”１”のままとなっている。
【００３０】
図９に示した物理ページの例に全消去検出回路１１０を適用して読み出した場合の出力結果は、”０”となっている領域９０１，９０２があるので書き込み済を表す”０”である。ここでＥＣＣ回路１０９の性能が２ビット以上の誤りを訂正する能力を有していれば、誤り訂正処理を施して読み出すと、領域９０１と９０２のデータ”０”を”１”に訂正することが可能である。この場合はデータ領域及び管理領域のデータを全て”１”となるように訂正し、誤り訂正が不可能なエラーはないと判断する。ここで注意すべきはＥＣＣの誤り訂正を行った後で、書き込みマーク領域ＷＭには何も書き込まれていない”１”の状態であるということである。
【００３１】
図１０のフローチャートを用いて本実施の形態の物理ブロックの書き込み判定方法を説明する。まず最初にステップ１００１で読み出し対象となる物理ページを先頭ページ、例えば物理ページＰＰ０に設定する。以下、こうして設定した物理ページを設定ページという。次にステップ１００２では対象となった設定ページの全データを読み出す。この際にＥＣＣ回路１０９で誤り訂正の演算を行うとともに、全消去検出回路１１０で消去済みを検出するための演算も行う。次に判定ステップ１００３では、全消去判定回路１１０の結果をもって設定ページが書き込み済であるかどうかを判定する。書き込み済と判定した場合には判定ステップ１００４へと遷移し、消去済みと判定した場合には結果１００９へと遷移する。結果１００９では現状の設定ページが未書き込みの状態であり、設定ページから新たなデータの書き込みが可能であると判断する。一方判定ステップ１００４では、ＥＣＣ回路１０９の演算結果でエラーがないか、または訂正可能なエラーがあるかどうかを判定する。エラーなし又は訂正が可能と判定した場合には、ステップ１００５へと遷移し、訂正不可能なエラーがあると判定された場合（演算結果の示すアドレスは誤り訂正パターンがデータの存在しない領域に及ぶ場合には訂正不可能なエラーである）には結果１０１０へと遷移する。結果１０１０では設定ページにデータ書き込み中に電源遮断等の異常な状態が生じたと判定し、異常状態を解消するためのデータ復旧処理を行う。データ復旧処理では誤りが生じているページの直前までを有効なデータとし、誤りが生じているページ以降のデータ再書き込み等を行う。一方ステップ１００５では、ＥＣＣ回路１０９の演算結果に基づいて誤り訂正を行う。図９の場合には２ビットだけが０となっているため、誤り訂正によって全てのビットが”１”、即ち消去済みの状態となる。その後に判定ステップ１００６へと遷移し、ＥＣＣ回路１０９による誤り訂正後のデータに対して、書き込みマークＷＭが書き込み済みかどうかを制御回路１０７の書き込みマーク判定機能を用いて判定する。書き込み済みであると判定された場合には判定ステップ１００７へと遷移し、書き込み済みでないと判定すれば結果１０１０へと遷移する。結果１０１０では、設定ページに書き込み中に電源遮断等の異常な状態があると判定し、異常状態を解消するためのデータ復旧処理を行う。一方判定ステップ１００７では、現在の設定ページが最終ページ、即ちＰＰ６３であるかどうかを判定し、最終ページであれば結果１０１１へと遷移する。結果１０１１では全てのページが書き込み済であると判定し、処理を終了する。一方、最終ページでなければステップ１００８へ遷移し、読み出し対象である設定ページを１インクリメントし、更にステップ１００２へと遷移して、同様の処理を繰り返す。以上の判定フローチャートにより、物理ブロックのどのページまでデータが書き込み済であるかの判定を行う。
【００３２】
本実施の形態では、図９で示したように書き込み開始直後の電源遮断等で発生する、訂正可能な範囲でのわずかなビットのみが書き込まれた状態において、つまり全消去済でもなくＥＣＣの誤り訂正不可能なエラーがない状態においても、書き込みマーク領域が書き込み済みとなっているかどうかで書き込み途中の電源遮断等の異常を検出することができる。そして本実施の形態では結果ステップ１０１０において異常の処理を行い、データの復旧処理を行うことができ、データの信頼性が向上する。
【００３３】
なお、本実施の形態においては、不揮発性記憶メモリであるフラッシュメモリの書き込み単位である物理ページ毎に書き込み判定を行うケースについて説明したが、必ずしも物理ページに限定される必要がない。不揮発性記憶装置のシステムとして管理している書き込み単位毎に判定を行えれば、本発明の趣旨に従って判定を行うことは可能である。
【００３４】
ここで書き込み単位をフラッシュメモリへの１回への書き込みコマンドで行う最小の単位とし、最大書き込み単位をフラッシュメモリへの１回の書き込みコマンドで書き込みを行うことができる最大の単位とする。又管理単位をホストから１回の書き込みコマンドがあったときにフラッシュメモリに対して書き込みを行う最小の単位とする。ホストからの1回の書き込みコマンドによってフラッシュメモリへの書き込みは１回の書き込みとは限らず、複数回に分けて書き込む場合もあり得る。またフラッシュメモリへの1回の書き込みで複数の管理単位を書き込む場合もありうるが、必ず管理単位の整数倍の書き込みを行なう。
【００３５】
そして物理ページを複数のセクターに分割してデータの書き込みが行えるようなシステムの場合には、書き込み単位であるセクター毎に書き込みマーク領域を設けて判断を行うことができる。例えば図１１は最大書き込み単位を１物理ページとし、書き込み単位及び管理単位は１セクター、即ち１／４物理ページとする。この場合には各ページの管理単位であるセクター毎に書き込みマークＷＭを設ける。フラッシュメモリへの１回での書き込みでの最小単位は１セクターであるが、最大書き込み単位は１ページであり、同一ページに存在する４セクターに対して同時に書き込みを行うこともできるので、各セクター単位でのみ書き込み状態を判別するのでなく、最大書き込み単位であるページにわたって、管理単位毎に未書き込みであるか、書き込み済みであるかを判断する必要がある。図１１中におけるセクター毎に記載されている情報は、それぞれ正常書き込み済みとはそのセクターに正常にデータが書き込まれ、且つ書き込みマークが書き込み済みに設定されているものとする。又消去済み（未書き込み）とはそのセクターが消去済みであり、もちろん書き込みマークが未書き込みの状態になっているものとする。又書き込み済（未書き込み）とはそのセクターは書き込み直後に電源遮断が発生したために消去済ではなく書き込み済の状態ではあるが書き込みマークは未書き込みの状態になっているものとする。
【００３６】
さて図１１の状態は物理ページＰＰ３の第３セクター目を書き込み中の書き込み直後に電源遮断が発生した状態を示している。ＰＰ３の第２セクターまでは正常に書き込みが終了しており、第３セクター目で一部書き込み済みであるが、書き込みマークＷＭは未書き込みの状態となっている。そして第４セクターおよびＰＰ４以降は未書き込みの消去済の状態である。この場合には最大書き込み単位である物理ページにわたって、各セクターの書き込み状態を判定することで、ＰＰ０〜２は書き込み済のページ、ＰＰ３は書き込みマークＷＭによって第２セクターまで正しく書き込みが終了した後に第３セクターの書き込みで電源遮断が発生しデータ書き込みが正常に終了していないことが認識でき、正しくデータ復旧を行うことができる。
【００３７】
図１２は図１１の場合と同じく最大書き込み単位を１物理ページ、書き込み単位は１セクター、即ち１／４物理ページであり、管理単位も１セクター、即ち１／４物理ページである。この場合も図１１の場合と同様に最大書き込み単位であるページにわたって、管理単位毎に未書き込みであるか、書き込み済であるかを判断する必要がある。図１２に書かれたセクター毎の表記は図１１と同じ意味を表す。
【００３８】
さて、図１２の状態は物理ページＰＰ３に含まれる４つのセクターに同時に書き込み中の書込み直後に電源遮断が発生した状態を示している。ＰＰ３に含まれる４つのセクターのうち第３セクターにのみデータが一部書き込まれているが、まだ第３セクターの書き込みマークは未書込みの状態である。この場合にも最大書き込み単位である物理ページにわたって、各セクターの書き込み状態を判定することで、ＰＰ０〜２は書き込み済のページ、ＰＰ３の第１セクターは消去済であるが、ＰＰ３の残りのセクターを確認することで第３セクターが一部書き込み済で書き込みマークＷＭが未書き込みの状態であることがわかるので、ＰＰ２まで正常に書き込みが行なわれた後に、ＰＰ３の書き込み中で電源遮断が発生しデータ書き込みが正常に終了していないことが認識でき、正しくデータ復旧を行うことができる。
【００３９】
また、複数の書き込み単位で、物理ブロック内におけるデータの書き込み状態を許可するようなシステムを構成する場合がある。例えば図１３に示すシステムでは、書き込み単位を１物理ページ、最大書き込み単位も１物理ページ、管理単位を２物理ページとする。この様な場合には、管理単位に含まれる複数の最大書き込み単位のうち最終の最大書き込み単位にのみ書き込みマークＷＭを設けて判断を行うことができる。なぜなら管理単位未満の書き込み状態は、システム上許容していないので、最終の最大書き込み単位が正しく書かれているかどうかを正しく判断できれば管理単位の書き込みを判断できる。言い換えれば管理単位に含まれる最終でない最大書き込み単位が書き込み済であれば正しく書き込まれていても、正しく書き込まれていなくても管理単位としての判断を誤ることはない（最終でない最大書き込み単位で電源遮断による中途半端な書き込みを正常な書き込みであると誤判定しても、最終の最大書き込み単位が消去済であるはずなので、管理単位が構成されていないので異常を検出できる）。従って書き込みマークＷＭは管理単位内の最大書き込み単位の最終単位以外には不要である。図１３に書かれたページ毎の表記は図１１と同じ意味を表す。
【００４０】
さて、図１３の状態は物理ページＰＰ３に書き込み中の書込み直後に電源遮断が発生した状態を示している。この場合には管理単位毎にわたって、各ページの書き込み状態を判定することで、先頭の管理単位を構成する（ＰＰ０、ＰＰ１）は書き込み済のページ、次の管理単位である（ＰＰ２、ＰＰ３）はＰＰ２が正常書き込み済でＰＰ３が一部書き込み済で書き込みマークＷＭが未書き込みの状態であるので、先頭の管理単位まで正常に書き込みが行なわれた後に、次の管理単位の書き込み中で電源遮断が発生しデータ書き込みが正常に終了していないことが認識でき、正しくデータ復旧を行うことができる。
【００４１】
また、書き込み性能の高速化のための並列書き込みを実現するために管理単位が複数の物理ブロックにまたがる場合、もしくは複数の不揮発性メモリに存在する物理ブロックにまたがる場合がある。図１４はこのような場合の例を示しており、ここでは書き込み単位は１物理ページ、最大書き込み単位は１または複数の不揮発性メモリの複数の物理ブロックにまたがる２物理ページ、管理単位は２物理ページとする。図１４は物理ブロックＰＢ０の１つの物理ページと物理ブロックＰＢ１のこれに対応する物理ページの２ページで１つの管理単位を構成する。この場合には図示のように夫々の物理ブロックの物理ページに書き込みマークＷＭを設けておく。図１４に書かれたページ毎の表記は図１１のセクター毎の表記と同じ意味を表す。
【００４２】
さて、図１４の状態はＰＢ０およびＰＢ１の物理ページＰＰ３に同時に書き込み中の書込み直後に電源遮断が発生した状態を示している。この場合には管理単位毎にわたって、各ページの書き込み状態を判定することで、管理単位を構成する（ＰＢ０  ＰＰ０、ＰＢ１  ＰＰ０）、（ＰＢ０  ＰＰ１、ＰＢ１  ＰＰ１）、（ＰＢ０  ＰＰ２、ＰＢ１  ＰＰ２）は書き込み済の管理単位、次の管理単位である（ＰＢ０  ＰＰ３、ＰＢ１  ＰＰ３）はＰＢ０  ＰＰ３が消去済であるが、ＰＢ１  ＰＰ３が一部書き込み済で書き込みマークＷＭが未書き込みの状態であるので、管理単位（ＰＢ０  ＰＰ３、ＰＢ１  ＰＰ３）の書き込み中で電源遮断が発生しデータ書き込みが正常に終了していないことが認識でき、正しくデータ復旧を行うことができる。
【００４３】
尚一般的には書き込みマークは、管理単位内において、最大書き込み単位に区分すると最終の最大書き込み単位の書き込み単位毎に必要となる。但し管理単位が最大書き込み単位よりも小さい場合には、全ての書き込み単位毎に書き込みマークが必要となる。このように書き込みマークを配置することによって、不揮発性メモリの書き込み状態を判定することができる。
【産業上の利用可能性】
【００４４】
本発明にかかる不揮発性記憶装置及びその書き込み判定方法は、大容量の不揮発性記憶装置を対象としてデータを格納するホストに対して、よりデータの信頼性を向上させることができる。本発明は、静止画記録再生装置や動画記録再生装置等のポータブルＡＶ機器、あるいは携帯電話等のポータブル通信機器の記録媒体に適用することができる。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施の形態による不揮発性記憶装置とホスト機器との構成を示すブロック図である。
【図２】本実施の形態の不揮発性記憶装置に搭載の不揮発性メモリの構成を示した図である。
【図３】本実施の形態の不揮発性記憶装置に搭載の不揮発性メモリの構成を示した図である。
【図４】本実施の形態の物理ページのなかのデータの論理構成を示した図である。
【図５】本実施の形態の不揮発性記憶装置に搭載の不揮発性メモリのデータの書き込み状態を示した図である。
【図６】本実施の形態の全消去検出回路の回路図である。
【図７】本実施の形態の消去済みの物理ページのデータを示した図である。
【図８】本実施の形態の書き込み済みの物理ページのデータを示した図である。
【図９】本実施の形態の書き込み済み直後の電源遮断後の物理ページのデータを示した図である。
【図１０】本実施の形態の書き込み済みの物理ページ検出方法を示すフローチャートである。
【図１１】本発明の他の形態による物理ブロックの書き込み状態を示す図である。
【図１２】本発明の他の形態による物理ブロックの書き込み状態を示す図である。
【図１３】本発明の他の形態による物理ブロックの書き込み状態を示す図である。
【図１４】本発明の他の形態による物理ブロックの書き込み状態を示す図である。
【符号の説明】
【００４６】
１０１  ホスト
１０２  メモリカード
１０３  フラッシュメモリ
１０４  メモリコントローラ
１０５  ホストインターフェース
１０６  フラッシュインターフェース
１０７  制御回路
１０８  ページバッファ
１０９  ＥＣＣ回路
１１０  全消去検出回路
【図１】
2007241618.tif 000003
【図２】
2007241618.tif 000004
【図３】
2007241618.tif 000005
【図４】
2007241618.tif 000006
【図５】
2007241618.tif 000007
【図６】
2007241618.tif 000008
【図７】
2007241618.tif 000009
【図８】
2007241618.tif 000010
【図９】
2007241618.tif 000011
【図１０】
2007241618.tif 000012
【図１１】
2007241618.tif 000013
【図１２】
2007241618.tif 000014
【図１３】
2007241618.tif 000015
【図１４】
2007241618.tif 000016