(57)【要約】【課題】多値フラッシュメモリを用いた不揮発性記憶装置において、書込み中の電源断で書込み中データ以外のデータが破壊されることを防止し、かつ高い記憶密度を保持できる手段を提供する。【解決手段】物理ブロックＰＢ３８の物理ページＰＰ０から順に物理ページＰＰ１２７まで書込みを行う。このとき、メモリセルを共有するページセットのうち物理ページ番号の小さいページ（ＰＰ０、ＰＰ１、ＰＰ２、ＰＰ３、ＰＰ６、ＰＰ７、・・・）に別の物理ブロックからコピーされる巻込みデータを書込み、メモリセルを共有するページセットのうち物理ページ番号の大きいページ（ＰＰ４、ＰＰ５、ＰＰ８、ＰＰ９、・・・）にアクセス装置からのデータを書込む。【選択図】図１４（Ｂ）
2008003684.tif 000002
【特許請求の範囲】
【請求項１】
アクセス装置によりデータの書込み、読出しが可能な不揮発性記憶装置であって、複数のメモリセルを有し、各メモリセルはＭ個（Ｍ＞３）の閾値電圧を有し多値データの記憶が可能な不揮発性多値メモリと、前記不揮発性多値メモリに対してデータの書込み及び読出しの制御を行なうメモリコントローラとを備え、
前記不揮発性多値メモリは複数のメモリセルから構成される消去単位であるブロックを複数有し、
前記ブロックは書込み単位であるページを複数有し、前記ブロックは少なくともメモリセルを共有する１つ以上のページの組であるページセットを有し、
前記メモリコントローラは、データ書込み時において、前記ページセットのうちの１つのページにのみアクセス装置からのデータを書込み、前記ページセットのうちのその他のページには、前記不揮発性記憶装置の内部にある既書込み済データもしくは前記不揮発性記憶装置で決定した所定値データを書込むことを特徴とする不揮発性記憶装置。
【請求項２】
請求項１に記載の不揮発性記憶装置であって、前記ページセットの各ページへの書込み順は、前記アクセス装置からのデータを書込むページが最後となることを特徴とする不揮発性記憶装置。
【請求項３】
アクセス装置と、前記アクセス装置によりデータの書込み、読出しが可能な不揮発性記憶装置とを有する不揮発性記憶システムであって、
前記不揮発性記憶装置は、複数のメモリセルを有し、各メモリセルはＭ個（Ｍ＞３）の閾値電圧を有し多値データの記憶が可能な不揮発性多値メモリと、前記不揮発性多値メモリに対してデータの書込み及び読出しの制御を行なうメモリコントローラとを備え、
前記不揮発性多値メモリは複数のメモリセルから構成される消去単位であるブロックを複数有し、
前記ブロックは書込み単位であるページを複数有し、前記ブロックは少なくともメモリセルを共有する１つ以上のページの組であるページセットを有し、
前記メモリコントローラは、データ書込み時において、前記ページセットのうちの１つのページにのみアクセス装置からのデータを書込み、前記ページセットのうちのその他のページには、前記不揮発性記憶装置の内部にある既書込み済データもしくは前記不揮発性記憶装置で決定した所定値データを書込むことを特徴とする不揮発性記憶システム。
【請求項４】
複数のメモリセルを有し、各メモリセルはＭ個（Ｍ＞３）の閾値電圧を有し多値データの記憶が可能な不揮発性多値メモリに対して、データの書込み及び読出しの制御を行なうメモリコントローラであって、
前記不揮発性多値メモリは、複数のメモリセルから構成される消去単位であるブロックを複数有し、
前記ブロックは書込み単位であるページを複数有し、前記ブロックは少なくともメモリセルを共有する１つ以上のページの組であるページセットを有し、
前記メモリコントローラは、データ書込み時において、前記ページセットのうちの１つのページにのみアクセス装置からのデータを書込み、前記ページセットのうちのその他のページには、前記不揮発性記憶装置の内部にある既書込み済データもしくは前記不揮発性記憶装置で決定した所定値データを書込むことを特徴とするメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多値データの記録が可能な不揮発性半導体記憶素子を用いた不揮発性記憶装置に関する。
【背景技術】
【０００２】
音楽コンテンツや、映像データなどのデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスクなど、様々な種類が存在する。これら記録媒体の１つである半導体メモリカードは、記憶素子としてフラッシュメモリなどの不揮発性半導体メモリを使用しており、小型化できることから、デジタルスチルカメラや携帯電話端末など、小型の携帯機器を中心に急速に普及しつつある。
【０００３】
近年の高い記録画質の要求により、不揮発性半導体メモリには、高い記録密度及び高速なデータ記録性能が必要とされている。
【０００４】
フラッシュメモリに関して、記録容量をより向上させるために、１つのメモリセルに複数ビットのデータを記憶可能とするフラッシュメモリ（多値フラッシュメモリ）が開発されている。これによると、記録密度を高くでき、記録容量を大きくすることができるだけではなく、同一記録容量におけるメモリセル数も少なくすることができ、低価格化も可能になる。以下、この多値フラッシュメモリの記録方法に関して説明する。
【０００５】
一般にフラッシュメモリ等の不揮発性半導体メモリは、メモリセルのフローティングゲート（またはトラップゲート）に電子を注入してメモリセルの閾値電圧を変えることで、データを記憶する。メモリセルの閾値電圧は、電子がフローティングゲート中に存在すると高くなり、電子がフローティングゲート中に存在しないと低くなる。
【０００６】
図２は、４値フラッシュメモリにおけるメモリセルの閾値電圧分布を示した図である。メモリセルの閾値電圧はプログラム（データ書き込み）されたデータに応じて、領域Ｌ０、Ｌ１、Ｌ２、Ｌ３のいずれかに分布する。領域Ｌ０、Ｌ１、Ｌ２、Ｌ３は、２ビットデータの"１１"、"１０"、"００"、"０１"にそれぞれ対応している。
【０００７】
データの書き込み（プログラム）は、各メモリセルにおいて、閾値電圧が検証電圧ＶＶ（ＶＶ１，ＶＶ２、ＶＶ３）を超えるまで行われる。例えば、メモリセルに論理"１０"を書き込む場合、そのメモリセルの閾値電圧が検証電圧ＶＶ１を超えるまで、プログラム動作が繰り返される。各メモリセルの閾値電圧は、領域Ｌ０〜Ｌ３のいずれかに設定される。
【０００８】
データの読み出しは、メモリセルの閾値電圧を、参照電圧ＶＲ（ＶＲ１、ＶＲ２、ＶＲ３）と比較することで行われる。メモリセルの閾値電圧が参照電圧ＶＲ１より低いとき、メモリセルに保持されているデータは、"１１"であると判定される。メモリセルの閾値電圧が参照電圧ＶＲ１、ＶＲ２の間にあるとき、メモリセルに保持されているデータは"１０"であると判定される。メモリセルの閾値電圧が参照電圧ＶＲ２、ＶＲ３の間にあるとき、メモリセルに保持されているデータは"００"であると判定される。メモリセルの閾値電圧が参照電圧ＶＲ３より高いとき、メモリセルに保持されているデータは"０１"であると判定される。
【０００９】
メモリセルの消去動作は、消去するメモリセルの制御ゲートに低電圧を供給し、メモリセルのウエル領域に高電圧を供給し、フローティングゲートに蓄積されている電子を放出することで行われる。このとき、消去しないメモリセルの制御ゲートは、例えばフローティング状態に制御される。
【００１０】
一つの不揮発性メモリセルに多値データを記録する場合、不揮発性メモリセルへのデータの書き込みは複数回行われる。例えば、図２に示したように、領域Ｌ０、Ｌ１、Ｌ２、Ｌ３が、２ビットデータの"１１"、"１０"、"００"、"０１"にそれぞれ対応しているときに、下位１ビットデータの書き込み、上位１ビットデータの書き込み、の２段階に分けて書き込みが実施される。以降、メモリセルに対する２段階目以降の書込みを「追記書込み」と呼ぶ。
【００１１】
下位１ビットデータが"１"の場合は領域Ｌ０、下位１ビットデータが"０"の場合は領域Ｌ１に設定される。その後、上位１ビットデータの追記書込みにおいて、上位１ビットデータが"１"の場合は、各領域は変化しない。上位１ビットデータが"０"の場合は、領域Ｌ０から領域Ｌ３もしくは領域Ｌ１から領域Ｌ２に変化する。
【００１２】
ここで領域Ｌ０から領域Ｌ３に変化する過程で電源断が発生すると、領域Ｌ１や領域Ｌ２の状態になる場合がある。従って、上位１ビットデータの追記書込み中に電源断が発生すると、書込み中の上位１ビットデータに加えて、既に書き込み済の下位１ビットデータが誤ったデータに化ける場合がある。
【００１３】
アクセス装置からの１回の書込みにおいて指定される範囲は、必ずしも下位１ビットデータ及び前記下位１ビットデータに対応する上位１ビットデータの組になっているとは限らない。
【００１４】
従って、上位１ビットデータの追記書込み中の電源断によって、アクセス装置が１回の書込みで指定した範囲以外のデータが破壊される可能性がある。すなわち、書き込み済データの内容を保護することができない。
【００１５】
このような、電源断による書き込み対象外の領域のデータ破壊を回避する方法として、特許文献１に開示されている方法がある。特許文献１に開示の不揮発性記憶装置は、不揮発性多値メモリにおいて設定可能な閾値電圧分布のうち一部の閾値電圧のみを使用する。多値メモリセルを２値メモリセルのように１ビットデータのみを格納するように制御することで、１つの多値メモリセルへの書き込み回数を１回に制限し、書き込み済データの破壊を防ぐことができる。
【特許文献１】特開２０００−１７３２８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、上記の従来技術には次のような問題点がある。
【００１７】
すなわち、従来技術は多値メモリセルを２値メモリセルのように使用するために、格納可能なデータ量が大幅に減少し、単位データ量あたりのコストが増加する。４値メモリセルを２値メモリセルのように使用した場合には各メモリセルに格納可能なデータ量は半減し、単位データ量あたりのコストは倍増する。
【００１８】
従って、データ保護対象が不揮発性記憶装置のシステム情報やファイルシステムの管理情報などの全メモリ容量に占める割合が比較的小さいデータの場合には従来技術は有効であるが、ユーザデータなどの全メモリ容量に占める割合が比較的大きいデータの場合には単位データ量あたりのコストが増大するという問題がある。
【００１９】
本発明は上記課題を解決すべくなされたものであり、その目的とするところは、単位データ量あたりのコストを増大させることなく、データ書込み中の電源断に対する書込み済みデータの保護を実現する不揮発性記憶装置及びそのアクセス装置を提供することにある。
【課題を解決するための手段】
【００２０】
上記課題を解決するために、本発明の不揮発性記憶装置はアクセス装置によりデータの書込み、読出しが可能な不揮発性記憶装置であって、複数のメモリセルを有し、各メモリセルはＭ個（Ｍ＞３）の閾値電圧を有し多値データの記憶が可能な不揮発性多値メモリと、前記不揮発性多値メモリに対してデータの書込み及び読出しの制御を行うメモリコントローラとを備え、前記不揮発性多値メモリは複数のメモリセルから構成される消去単位であるブロックを複数有し、前記ブロックは書込み単位であるページを複数有し、前記ブロックは少なくともメモリセルを共有する１つ以上のページの組であるページセットを有し、前記メモリコントローラは、データ書込み時において、前記ページセットのうちの１つのページにのみアクセス装置からのデータを書込み、前記ページセットのうちのその他のページには、前記不揮発性記憶装置の内部にある既書込み済データもしくは前記不揮発性記憶装置で決定した所定値データを書込むものである。
【発明の効果】
【００２１】
本発明によれば、電源断によって破壊されるデータは電源断発生時に書き込み中であったページ及び前記ページと同一ページセットに属するページに存在するデータであり、常にアクセス装置からの書込み中のデータもしくは前記不揮発性記憶装置の内部にある既書込み済データの巻込みデータのいずれかである。そして、後者は常に巻込み元のデータが不揮発性記憶装置内に存在するために復旧可能である。従って、電源断で書込み済みデータが破壊されることはない。また、データの書込みはページセットを構成する全てのページに対して行われるため、各メモリセルには多値データが記憶されることになり、単位データ量あたりのコストの増大を防止できる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について添付の図面を参照しながら説明する。
【００２３】
（実施の形態１）
図１に、本発明における不揮発性記憶装置及びそれにアクセスするアクセス装置からなる不揮発性記憶システムの構成例を示す。
【００２４】
本実施の形態による不揮発性記憶システム（メモリシステム）は、半導体メモリカードである不揮発性記憶装置１００と、不揮発性記憶装置１００に対してデータの書き込み、読み出しを行うホスト装置であるアクセス装置２００とからなる。
【００２５】
不揮発性記憶装置１００はメモリコントローラ１１０と不揮発性メモリ１２０とを含む。メモリコントローラ１１０は、アクセス装置２００との間でコマンドやデータのやりとりを行うホストインターフェース部１１１と、アクセス装置２００が指定する論理アドレスを不揮発性メモリ１２０内の物理アドレスに変換するために使用するテーブルである論物変換テーブル１１２と、不揮発性メモリ１２０内の各物理ブロックの使用状況を管理する空きブロック管理テーブル１１３と、不揮発性メモリ１２０の制御を行う読出し／書込み制御部１１４とを含む。
【００２６】
不揮発性メモリ１２０はＮＡＮＤ型フラッシュメモリにより構成される。本実施の形態では、不揮発性メモリ１２０は図２に示す閾値分布により４値データを記録可能なメモリセルを含む。不揮発性メモリ１２０は、図３に示すようにデータ消去の最小単位である所定サイズ（データ格納用途の２５６ＫＢ＋管理情報格納用途の８ＫＢ）の物理ブロックを複数個（図３の例では１０２４個）含む。各物理ブロック内には、図４に示すようにデータ書き込みの最小単位である所定サイズ（データ格納用途の２ＫＢ＋管理情報格納用途の６４Ｂ）の物理ページが複数（図４の例では１２８個）含まれる。本実施の形態において、管理情報格納用途の６４Ｂには、少なくとも同一ページのデータ格納用途の２ＫＢのデータに対する誤り訂正符号が格納されるものとする。また、各物理ブロック内において、物理ページへの書込みは常に物理ページ番号の小さいものから順に行われるものとする。
【００２７】
不揮発性メモリ１２０は２ページ構成（第１ページと第２ページからなるページセット）となっている。第１ページと第２ページはメモリセルを共用した物理ページの組であり、各メモリセルの下位１ビットの集合が第１ページであり各メモリセルの上位１ビットの集合が第２ページであるものとする。従って第１ページへのデータ書込み後の第２ページへのデータ書込み中に電源断が発生した場合には第１ページ及び第２ページの両方のデータが破壊される可能性がある。本実施の形態における第１ページ及び第２ページの組合せを図５に示す。第１ページである物理ページ０（ＰＰ０）は、第２ページである物理ページ４（ＰＰ４）と組になっている。同様に、物理ページ１（ＰＰ１）は物理ページ５（ＰＰ５）と、物理ページ２（ＰＰ２）は物理ページ８（ＰＰ８）と組になっている。
【００２８】
不揮発性メモリ１２０は、管理データ格納領域１２１とデータ格納領域１２２とを有する。
【００２９】
データ格納領域１２２には、ユーザがアクセスすることができるデータ、すなわち、アクセス装置２００から論理アドレスを指定して不揮発性メモリ１２０に書き込み、または読み出しを行うことができるデータが記録される。ファイルシステム情報もこの領域に存在する。本実施の形態では、データ格納領域１２２はＦＡＴファイルシステムによって管理されるものとする。
【００３０】
また、管理データ格納領域１２１には、ユーザが直接アクセスできない情報、つまり、アクセス装置２００から論理アドレスを指定してアクセスすることができない情報が格納される。ユーザが直接アクセスできない情報には、アドレス管理情報の一部や、システム情報が含まれる。本実施の形態においては、少なくとも後述する論物変換テーブル１１２及び空きブロック管理テーブル１１３を生成するために必要となるアドレス管理情報を含んでいるものとする。
【００３１】
次に、論物変換テーブル１１２及び空きブロック管理テーブル１１３の構成について説明する。
【００３２】
本実施の形態における論物変換テーブル１２２を図６に示す。論物変換テーブル１１２は、ブロック単位（２５６ＫＢ単位）で論理アドレスと物理アドレスの対応を管理している。論理アドレスで２５６ＫＢ単位のデータは論理ブロックと呼ぶものとする。
【００３３】
本実施の形態において論理ブロックに対応する物理ブロックは、書込み完結ブロック１個と書込み途中ブロック１個の最大２個である。ここで、書込み完結ブロックとは、該ブロックに対する書込みが完結したブロックであり、物理ブロック（２５６ＫＢ）に１論理ブロック（２５６ＫＢ）分のデータが全て書込まれた状態のブロックである。一方、書込み途中ブロックは、該ブロックに対する書込みが途中のブロックであり、物理ブロック（２５６ＫＢ）に１論理ブロック（２５６ＫＢ）未満のデータが書込まれた状態のブロックである。書込み途中ブロックには未書込みの物理ページが存在するため、新たにデータを書込むことができる。
【００３４】
書込み途中ブロックとして割当てる物理ブロックが増加すると、記録容量は低下する。そこで、本実施の形態では、書込み途中ブロックの割当ては最大３個の論理ブロックまでに限定している。
【００３５】
図６において、論理ブロック０（ＬＢ０）に対応する物理ブロックは書込み完結ブロック（ＰＢ２０２）１個である。論理ブロック１（ＬＢ１）に対応する物理ブロックは書込み完結ブロック（ＰＢ３５８）１個と書込み途中ブロック（ＰＢ３８）１個の計２個である。論理ブロック２（ＬＢ２）に対応する物理ブロックは未だ割当てられておらず０個である。
【００３６】
さらに図６において、書込み途中ブロックには「次物理ページ」及び「次論理ページ」の情報が保持されている。
【００３７】
「次物理ページ」は該物理ブロックに対して次に書込みを行うべき物理ページの番号であり、該物理ブロックの未書込みページのうち、最も小さい物理ページ番号が設定される。
【００３８】
「次論理ページ」は該物理ブロックの第２ページに書込まれるデータが論理的に連続になるために、該物理ブロックの最初の未書込みの第２ページに書込まれるべき論理ページの番号が設定される。具体的には、「次物理ページ」が０、すなわち該物理ブロックの全物理ページが未書込みの場合には「次論理ページ」には無効値が格納されている。その後、該物理ブロックの最初の第２ページに論理ページ番号Ｎのデータが１ページ分書込まれると、「次論理ページ」にはＮ＋１が設定される。さらに、次の第２ページに論理ページ番号Ｎ＋１のデータが１ページ分書込まれると、「次論理ページ」にはＮ＋２が設定される。
【００３９】
また、本実施の形態における空きブロック管理テーブル１１３を図７に示す。空きブロック管理テーブル１１３は各物理ブロックが「空き」であるか「使用中」であるかという情報を保持している。
【００４０】
以下、本発明における不揮発性記憶装置１００の各部の動作について説明する。
【００４１】
図８は、アクセス装置２００が不揮発性記憶装置１００に対して初期化コマンドを送信した場合の不揮発性記憶装置１００の動作を示すフローチャートである。初期化コマンドはアクセス装置２００の電源投入時や不揮発性記憶装置１００の装着時などに送信される。
【００４２】
不揮発性記憶装置１００が初期化コマンドを受信すると、メモリコントローラ１１０は論物変換テーブル１１２及び空きブロック管理テーブル１１３などの内部メモリのクリアや、不揮発性メモリ１２０の接続確認などのハードウェアの初期化処理を行う（Ｓ８０１）。その後、読出し／書込み制御部１１４は不揮発性メモリ１２０の管理データ格納領域１２１に格納されているアドレス管理情報等を取得し（Ｓ８０２）、取得した情報を元に論物変換テーブル１１２及び空きブロック管理テーブル１１３を作成して処理を完了させる（Ｓ８０３）。
【００４３】
ここで、論物変換テーブル１１２の書込み途中ブロックとして登録した物理ブロックは書込み中の電源断によってデータが破壊されている可能性がある。そのため、書込み途中ブロックの各ページのデータが破壊されているか否かを、各ページに書き込まれた誤り訂正符号を用いて判定する。誤り訂正不可の場合にのみ電断によりデータが破壊されたと判断し、復旧処理を実施する（Ｓ８０４）。復旧処理の詳細については後述する。
【００４４】
図９は、アクセス装置２００が不揮発性記憶装置１００に対して書込みコマンド及び書込みデータを送信した場合の不揮発性記憶装置１００の動作フローである。
【００４５】
不揮発性記憶装置１００のメモリコントローラ１１０のホストインターフェース部１１１はアクセス装置２００が指定した書込み開始論理アドレスを取得し（Ｓ９０１）、読出し／書込み制御部１１４に通知する。
【００４６】
読出し／書込み制御部１１４は書込み開始論理アドレスの情報と論物変換テーブル１１２の情報を利用して、アクセス装置２００からの書込みデータを書込むための物理ブロック（書込み用物理ブロック）を取得する（Ｓ９０２）。
【００４７】
図１０は、書込み用物理ブロックを取得するための不揮発性記憶装置１００の動作フローである。以下、図１０を用いてＳ９０２の処理の詳細を説明する。
【００４８】
読出し／書込み制御部１１４は書込み開始論理アドレス（セクタ単位、すなわち５１２ＫＢ単位）から書込み開始論理ブロック（ブロック単位、すなわち２５６ＫＢ単位）を算出し、論物変換テーブル１１２を参照する（Ｓ１００１）。
【００４９】
そして、書込み開始論理ブロックに対して書込み途中ブロックが割当てられているか否かを判定し（Ｓ１００２）、割当てられていれば該書込み途中ブロックに書込みデータを追記できるか否かを判定する（Ｓ１００３）。
【００５０】
Ｓ１００３の判定方法の例を図１１に示す。図１１の例では、論物変換テーブル１１２の書込み途中ブロックの次物理ページ及び次論理ページの情報と、書込み開始ページの情報を用いて判定を行う。ここで書込み開始ページとは、前記書込み開始アドレス（セクタ単位）から算出されるブロック内の論理ページである。
【００５１】
次物理ページが０ならば、該書込み途中ブロックは全ページ未書込みの状態であるため追記可と判断する。次物理ページが０でないならば、次に書込み開始ページと次論理ページを比較する。書込み開始ページと次論理ページが一致する場合には、書込み途中ブロックの第２ページに連続なデータを書込むことができるので追記可と判断する。そうでない場合には、追記不可と判断する。
【００５２】
Ｓ１００３の判定にて追記可と判定された場合には、該書込み途中ブロックを書込み用ブロックとし（Ｓ１００９）、処理を終了する。
【００５３】
Ｓ１００３の判定にて追記不可と判定された場合には、現在の該書込み途中ブロックの書込みを完結させるための書込み（以降、集約処理と呼ぶ）を行う（Ｓ１００４）。図１２（Ａ）及び図１２（Ｂ）は集約処理前後の論物変換テーブル１１２及び空きブロック管理テーブル１１３及びフラッシュ上の物理ブロックの例を示している。集約処理では、書込み途中ブロック（ＰＢ３８）の未書込みページに、書込み完結ブロック（ＰＢ９０）から未書込み論理ページのデータを巻込む（すなわち、コピーする）。そして、書込み途中ブロックが全ページ書込み済となったら、論物変換テーブル１１２に該ブロックを書込み完結ブロックとして登録し、書込み途中ブロックの登録を解消する。続けて、空きブロック管理テーブル１１３において旧書込み完結ブロック（ＰＢ９０）を空きに変更する。さらに、論物変換テーブル１１２及び空きブロック管理テーブル１１３の変更情報を記録するために、管理データ格納領域１２１の更新も行う。
【００５４】
Ｓ１００４の処理後、読出し／書込み制御部１１４は空きブロック管理テーブル１１３を参照して、「空き」のブロックを取得し、新規に書込み途中ブロックとして登録する処理（以降、空きブロッ処理と呼ぶ）を行う（Ｓ１００５）。図１３（Ａ）及び図１３（Ｂ）は空きブロック取得処理前後の論物変換テーブル１１２及び空きブロック管理テーブル１１３の例を示している。空きブロック取得処理では、空きブロック管理テーブル１１３上で「空き」となっているブロック（ＰＢ２００）を取得し、該ブロックを物理消去した後に論物変換テーブル１１２の書込み途中ブロックとして登録する。そして、該書込み途中ブロック（ＰＢ２００）は空きブロック管理テーブル１１３上で「使用中」に変更される。さらに、論物変換テーブル１１２及び空きブロック管理テーブル１１３の変更情報を記録するために、管理データ格納領域１２１の更新も行う。その後、該書込み途中ブロックを書込み用物理ブロックとし（Ｓ１００９）、処理を終了する。
【００５５】
図１０のＳ１００２において、書込み途中ブロックが割当てられていないと判定された場合には、論物変換テーブル１１２の書込み途中ブロックの登録位置に空きがあるか否か判定する（Ｓ１００６）。本実施の形態においては、最大３個の論理ブロックが書込み途中ブロックとして登録可能であるが、３個とも別の論理ブロックが登録されていた場合には空きがないことになる。空きがない場合には、書込み途中ブロックとして登録されている論理ブロックのうち、少なくとも１つに対して前記の集約処理を行い（Ｓ１００７）、書込み途中ブロックの登録位置に空きを作成する。その後、前記空きブロック割当て処理を行い（Ｓ１００８）、新規に割当てられた書込み途中ブロックを書込み用物理ブロックとし（Ｓ１００９）、処理を終了する。
【００５６】
以上で説明したように、Ｓ９０２の処理後は書込み用物理ブロックが決定され、該書込み用物理ブロックは論物変換テーブル１１２において書込み途中ブロックとして登録されている。
【００５７】
次に、読出し／書込み制御部１１４はアクセス装置２００から受信した書込みデータを、Ｓ９０２の処理で決定した書込み用物理ブロックに書込む（Ｓ９０３）。書込みは、書込み用物理ブロックの未書込みの物理ページのうち、物理ページ番号の小さいものから順に行われる。また、アクセス装置２００から受信した書込みデータは第２ページに論理ページ番号順に行われ、第１ページには同じ論理ブロックに割当てられている書込み完結ブロックからの巻込みデータが書込まれる。但し、書込み完結ブロックが未割り当ての場合には、巻込みデータは初期値（例えば、全ビット１）となる。この書込みは、書込み用物理ブロックに未書込みの物理ページが存在しない状態（以下、ブロックフルと呼ぶ）になるか、アクセス装置２００からの書込みデータを全て書込み完了するまで実施される。
【００５８】
図１４（Ａ）、（Ｂ）は、Ｓ９０３の書込み前後の論物変換テーブル１１２及びフラッシュ上の物理ブロックの例を示している。図１４（Ａ）の（１）は書込み前の状態例であり、書込み途中ブロックとして消去済みブロックであるＰＢ３８が割当てられている。
【００５９】
アクセス装置２００から受信した書込みデータが論理ページ０（ＬＰ０）のみである場合、書込み後の状態は図１４（Ａ）の（２）に示すようになる。すなわち、アクセス装置２００からの書込みデータは最初の第２ページである物理ページ４（ＰＰ４）に書き込まれており、第１ページである物理ページ０〜３（ＰＰ０〜ＰＰ３）には論理ブロック１（ＬＢ１）に割当てられた書込み完結ブロックのデータが巻込まれている。巻込みデータの論理ページ番号は、「同一ページセットの第２ページに書き込む論理ページ番号」にブロック内の総ページ数の半分である「６４」を加算し、ブロック内の総ページ数「１２８」で割ったときの剰余とする。本実施の形態の場合、最初の第１ページである物理ページ０（ＰＰ０）に巻込むデータの論理ページ番号は「（０＋６４）ｍｏｄ（１２８）」より６４となる。以降の第１ページである物理ページ１（ＰＰ１）、物理ページ２（ＰＰ２）、物理ページ３（ＰＰ３）には順にインクリメントした論理ページ番号である１、２、３が割当てられる。また、論物変換テーブル１１２において、次物理ページには最初の未書込みの物理ページであるＰＰ５を示す「５」が設定され、次論理ページには最後に書込んだ第２ページの論理ページ番号「０」の次の値である「１」が設定される。
【００６０】
同様に、アクセス装置２００から受信した書込みデータが論理ページ０（ＬＰ０）及び論理ページ１（ＬＰ１）の２ページ分であった場合、書込み後の状態は図１４（Ａ）の（３）に示すようになる。
【００６１】
同様に、アクセス装置２００から受信した書込みデータが論理ページ０（ＬＰ０）から論理ページ２（ＬＰ２）の３ページ分であった場合、書込み後の状態は図１４（Ｂ）の（４）に示すようになる。
【００６２】
同様に、アクセス装置２００から受信した書込みデータが論理ページ０（ＬＰ０）から論理ページ３（ＬＰ３）の４ページ分であった場合、書込み後の状態は図１４（Ｂ）の（５）に示すようになる。
【００６３】
同様に、アクセス装置２００から受信した書込みデータが論理ページ０（ＬＰ０）から論理ページ６３（ＬＰ６３）の６４ページ分であった場合、書込み後の状態は図１４（Ｂ）の（６）に示すようにブロックフルになる。ブロックフルの場合には、次物理ページの値が領域外のページ番号である「１２８」にセットされる。
【００６４】
図１５に、物理ブロック内の物理ページ番号、ページ種別（第１ページ／第２ページ）、同一ページセットに属する物理ページの物理ページ番号、論理ページ番号の関係をまとめた一覧表を示す。
【００６５】
Ｓ９０３の書込み後、読出し／書込み制御部１１４はアクセス装置２００から受信した書込みデータの書込みが完了したか否かを判定し（Ｓ９０４）、未書込みのデータが残っている場合（Ｎｏの場合）には書込み用物理ブロックが既にブロックフルの状態になっているため、書込み完結ブロックとして論物変換テーブル１１２に登録する処理（以降、ブロックフル後処理と呼ぶ）を行い（Ｓ９０５）、Ｓ９０３の処理でアクセス装置２００から受信した書込みデータのうち書込み用物理ブロックに書込みを完了したサイズ分だけ書込み開始論理アドレスを加算（Ｓ９０６）し、Ｓ９０２の処理に戻って書込み処理を継続する。
【００６６】
Ｓ９０４で書込み完了と判定した場合、書込み用物理ブロックがブロックフルか否かを判定する（Ｓ９０７）。判定は論物変換テーブル１１２の該書込み途中ブロックの次物理ページが１２８であるか否かで行うことができる。１２８ならばブロックフルであり、前記ブロックフル後処理を実施（Ｓ９０８）した後に書込み処理を終了する。１２８でなければ、そのまま書込み処理を終了する。
【００６７】
図１６（Ａ）及び図１６（Ｂ）は、それぞれブロックフル後処理の前後の論物変換テーブル１１２及び空きブロック管理テーブル１１３の例を示している。論物変換テーブル１１２において、ブロックフルとなった物理ブロック３８（ＰＢ３８）が、書込み完結ブロックとして登録され、書込み途中ブロックとしての登録が解除されている。また、空きブロック管理テーブル１１３において、古い書き込み完結ブロックである物理ブロック９０（ＰＢ９０）は「空き」に変更されている。
【００６８】
以上で説明してきたように、本発明における不揮発性記憶装置１００では、アクセス装置２００からの書込みデータは常に物理ブロック内の第２ページに書込まれ、第１ページには常に巻込みデータが書込まれる。
【００６９】
書込み処理中に電源断が発生した場合、書込み中の物理ページ、及び該物理ページと同一ページセットに属する物理ページのデータが破壊される可能性がある。図１７に電源断が発生するタイミングと電源断後の状態の対応表を示す。
【００７０】
図１７に示すように、Ｓ９０３の書込み実施中かつ第１ページに対する書込み中に電源断が発生した場合には、該第１ページ及び前記第１ページと同一ページセットに属する第２ページのデータが破壊される可能性がある。ここで第１ページのデータは常に巻込みデータであるため、巻込み元データが存在するため、破壊されたとしても巻込み元を参照することでデータの復旧が可能である。また、第２ページは常に未書込みページであるため、破壊されたとしても有効なデータが失われることはない。
【００７１】
Ｓ９０３の書込み実施中かつ第２ページに対する書込み中に電源断が発生した場合には、該第２ページ及び前記第２ページと同一ページセットに属する第１ページのデータが破壊される可能性がある。ここで、第２ページのデータは電源断が発生したときのアクセス装置２００からの書込みデータであり、破壊されたとしても仕方のないデータである。また、第１ページのデータは常に巻込みデータであるため、巻込み元データが存在するため、破壊されたとしても巻込み元を参照することでデータの復旧が可能である。
【００７２】
Ｓ１００４やＳ１００７の集約処理中に電源断が発生した場合には、書込み中の物理ページ及び同一ページセットの物理ページのデータが破壊される可能性がある。しかし、いずれも常に巻込みデータであるため、巻込み元データが存在するため、破壊されたとしても巻込み元を参照することでデータの復旧が可能である。
【００７３】
従って、本発明における不揮発性記憶装置１００では書込み処理中に電源断が発生したとしても常に復旧可能な状態となり、電源断発生時に書き込んでいたアクセス装置２００からの書込みデータ以外の書込み済データが破壊されることはない。
【００７４】
なお、電源断発生後の復旧処理は先述した初期化処理の手順Ｓ８０４のタイミングで実施される。以下、復旧処理の詳細について説明する。
【００７５】
復旧処理は、誤り訂正不可と判定された物理ページを含む書込み途中ブロックと、前記書込み途中ブロックと同じ論理ブロックに割り当てられている書込み完結ブロックを参照し、有効なデータだけを空きブロックに退避させ、前記空きブロックを新規に書込み完結ブロックとする処理である。
【００７６】
復旧前の物理ブロックに同じ論理ページのデータが複数存在する場合、有効なデータは次のルールによって一意に決定することができる。すなわち、（ルール１）書込み途中ブロックの第２ページの書込み済ページのデータのうち誤り訂正可能なものを有効データとする、（ルール２）ルール１の条件を満たす論理ページが存在しない場合、書込み完結ブロックのデータを有効データとする、（ルール３）ルール１及びルール２の条件を満たす論理ページが存在しない場合、初期値（例えば、全ビット１）を有効データとする、という３つのルールである。
【００７７】
図１８（Ａ）、（Ｂ）は復旧処理前後の論物変換テーブル１１２、空きブロック管理テーブル１１３及びフラッシュ上の物理ブロックの例を示している。
【００７８】
図１８（Ａ）は復旧処理前の状態例である。書込み途中ブロック（ＰＢ３８）は物理ページ８（ＰＰ８）への書込み中に電源断が発生し、該物理ページ及び該物理ページと同一ページセットに属する物理ページ２（ＰＰ２）のデータが共に破壊されて誤り訂正不可となった例である。
【００７９】
これに対して復旧処理を実行した後の状態例を図１８（Ｂ）に示す。復旧処理では、空きブロック管理テーブル１１３を参照して空きブロック（ＰＢ４３１）を選択し、前記ルールに従って書込み完結ブロック（ＰＢ９０）及び書込み途中ブロック（ＰＢ３８）の有効データを前記空きブロック（ＰＢ４３１）に書込む。本例において、論理ページ０及び論理ページ１のデータは前記ルール１により、書込み途中ブロック（ＰＢ３８）から巻き込まれる。それ以外の論理ページのデータは前記ルール２により書込み完結ブロック（ＰＢ９０）から巻き込まれる。前記空きブロック（ＰＢ４３１）には全ページに有効データが書込まれた後、前記書込み途中ブロック（ＰＢ３８）及び前記書込み完結ブロック（ＰＢ９０）は論物変換テーブル１１２から登録解除されて空きブロック管理テーブル１１３において空きに変更され、代わりに前記空きブロック（ＰＢ４３１）が論物変換テーブル１１２に書込み完結ブロックとして登録されて空きブロック管理テーブル１１３において使用中に変更される。
【００８０】
次に、本発明による読出し処理について説明する。
【００８１】
図１９は、アクセス装置２００が不揮発性記憶装置１００に対して読出しコマンドを送信した場合の不揮発性記憶装置１００の動作フローである。
【００８２】
不揮発性記憶装置１００のメモリコントローラ１１０のホストインターフェース部１１１はアクセス装置２００が指定した読出し開始論理アドレスを取得し（Ｓ１９０１）、読出し／書込み制御部１１４に通知する。
【００８３】
読出し／書込み制御部１１４は読出し開始論理アドレスの情報と論物変換テーブル１１２の情報を利用して、アクセス装置２００に送信するための読出しデータが書込まれた物理ブロック（読出し用物理ブロック）を取得する（Ｓ１９０２）。
【００８４】
Ｓ１９０２の処理において、読出し／書込み制御部１１４は読出し開始論理アドレス（セクタ単位、すなわち５１２ＫＢ単位）から読出し開始論理ブロック（ブロック単位、すなわち２５６ＫＢ単位）を算出し、論物変換テーブル１１２を参照する。
【００８５】
そして、読出し開始論理ブロックに対して割当てあれている書込み完了ブロック及び書込み途中ブロックを読出し用物理ブロックとする。
【００８６】
次に、読出し／書込み制御部１１４は読出し用物理ブロックからデータを読出し、アクセス装置２００に転送する（Ｓ１９０３）。読出しは次のルールに従って行われる。すなわち、（ルールＲ１）書込み途中ブロックに読出し対象の論理ページのデータが存在する場合にはこれを読出しデータとする、（ルールＲ２）ルールＲ１の条件を満たす論理ページが存在しない場合、書込み完結ブロックのデータを読出しデータとする、（ルールＲ３）ルールＲ１及びルールＲ２の条件を満たす論理ページが存在しない場合、初期値（例えば、全ビット１）を有効データとする、という３つのルールである。
【００８７】
ここで、ルールＲ１の判定は論物変換テーブル１１２に登録されている次論理ページ及び次物理ページを参照して行うことができる。
【００８８】
この読出しは、読出し対象の論理ブロックの最終論理アドレスまで読出しが完了するか、アクセス装置２００が指定した全ての読出しデータを転送完了するまで実施される。
【００８９】
Ｓ１９０３の処理後、アクセス装置２００が指定した全ての読出しデータの転送が完了したか判定し（Ｓ１９０４）、完了していれば読出し処理を終了する。完了していなければ、読出し開始論理アドレスを次の論理ブロックのアドレスに更新し（Ｓ１９０５）、Ｓ１９０２に戻って処理を継続する。
【００９０】
以上のように、上記実施の形態では、電源断によって破壊されるデータは電源断発生時に書き込み中であったページ及び前記ページと同一ページセットに属するページに存在するデータであり、常にアクセス装置からの書込み中のデータもしくは前記不揮発性記憶装置の内部にある既書込み済データの巻込みデータのいずれかである。そして、後者は常に巻込み元のデータが不揮発性記憶装置内に存在するために復旧可能である。従って、電源断で書込み済みデータが破壊されることはない。また、データの書込みはページセットを構成する全てのページに対して行われるため、各メモリセルには多値データが記憶されることになり、単位データ量あたりのコストの増大を防止できる。
【００９１】
本発明は多値化が進むフラッシュメモリを用いた半導体メモリカードにおいて特に有効である。
【００９２】
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は上記の実施の形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。以下のような場合も本発明に含まれる。
【００９３】
（１）本実施の形態において、不揮発性メモリ１２０として４値データを記録可能なメモリセルによるＮＡＮＤ型フラッシュメモリを使用する例を示したが、これに限らず多値データを記録可能なメモリセルによる不揮発性メモリであれば同様の構成を実現できる。
【００９４】
例えば不揮発性メモリ１２０として８値データを記録可能なメモリセルによるＮＡＮＤ型フラッシュメモリを使用し、物理ブロック内で同一ページセットに属する物理ページが４つ存在する場合には、アクセス装置からの書込みデータは常に前記４つの物理ページのうちの最後に書込まれる物理ページに書き込まれ、それ以外の物理ページには常に巻込みデータが書込まれるようにすることで同様の構成を実現できる。
【００９５】
（２）本実施の形態においては、ホストからの書込みデータがページサイズ単位であるものとして記述したが、ページサイズ未満の場合にも次のようにすることで同様の効果を得ることができる。
【００９６】
すなわち、ホストからの書込みデータがページサイズ未満の場合には巻込みデータを含めたページ単位のデータとして第１ページに書込みを行う。
【００９７】
例えば、ホストからの書込みデータがセクタアドレス２の１セクタ分のデータの場合には、セクタアドレス０、１、３の３セクタ分のデータを書込み完結ブロックから巻込んで、１ページ分のデータとして書込み途中ブロックの第１ページに書込む。
【００９８】
（３）本実施の形態におけるメモリコントローラ１１０は、物理的にはマイコン（ＣＰＵ）及びそのプログラムを格納するＲＯＭ、ワーク用ＲＡＭ、論物変換テーブル１１２や空きブロック管理テーブル１１３用のＲＡＭ、不揮発性メモリ１２０にアクセスするための専用ハードウェア等から構成される。そして、これらは１チップに集積された形で実装されていてもよい。
【００９９】
（４）本実施の形態における不揮発性記憶システムは、不揮発性記憶装置１００という形態に限るものではなく、アクセス装置２００とメモリコントローラ１１０と不揮発性メモリ１２０を有するものとして構成してもよい。
【産業上の利用可能性】
【０１００】
本発明は、デジタルＡＶ機器や携帯電話端末、パーソナルコンピュータ等の電子機器に用いられる大容量かつ高信頼性が要求される情報記録媒体に適用可能である。特に、本発明は、記録密度を高くすることができる多値フラッシュメモリを使用できるため、低コストが求められる不揮発性記憶装置に好適である。
【図面の簡単な説明】
【０１０１】
【図１】本発明の実施の形態１における不揮発性記憶システムの構成を示すブロック図
【図２】同不揮発性記憶システムの不揮発性メモリにおけるデータの閾値電圧とセル数の分布を示す模式図
【図３】同不揮発性記憶システムの不揮発性メモリの物理ブロックによる構成を示す模式図
【図４】同不揮発性記憶システムの物理ブロックの物理ページによる構成を示す模式図
【図５】同不揮発性記憶システムの物理ブロックの第１ページと第２ページに割当てられた物理ページの一覧及びその組合せを示す概念図
【図６】同不揮発性記憶システムの論物変換テーブルの構成を示す概念図
【図７】同不揮発性記憶システムの空きブロック管理テーブルの構成を示す概念図
【図８】同不揮発性記憶システムの不揮発性記憶装置の初期化コマンド受信後の動作を示すフローチャート
【図９】同不揮発性記憶システムの不揮発性記憶装置の書込みコマンド受信後の動作を示すフローチャート
【図１０】同不揮発性記憶システムの不揮発性揮発装置の書込み用物理ブロック取得処理の動作を示すフローチャート
【図１１】同不揮発性記憶システムの不揮発性揮発装置の追記可否の判定方法の例を示す概念図
【図１２（Ａ）】同不揮発性記憶システムの集約処理前の論物変換テーブル、空きブロック管理テーブル及びフラッシュ上の物理ブロックの状態例を示す模式図
【図１２（Ｂ）】同不揮発性記憶システムの集約処理後の論物変換テーブル、空きブロック管理テーブル及びフラッシュ上の物理ブロックの状態例を示す模式図
【図１３】同不揮発性記憶システムの空きブロック割当て処理前・後の論物変換テーブル、空きブロック管理テーブルの状態例を示す模式図
【図１４（Ａ）】同不揮発性記憶システムの書込み前、論理ページ０の書込み後及び論理ページ０、１の書込み後の論物変換テーブル、フラッシュ上の物理ブロックの状態例を示す模式図
【図１４（Ｂ）】同不揮発性記憶システムの論理ページ０〜２の書込み後、論理ページ０〜３の書込み後及び論理ページ０〜６３の書込み後の論物変換テーブル、フラッシュ上の物理ブロックの状態例を示す模式図
【図１５】同不揮発性記憶システムの物理ブロック内の物理ページ番号、ページ種別、同一ページセットに属する物理ページの物理ページ番号、論理ページの関係を示す概念図
【図１６】同不揮発性記憶システムのブロックフル後処理前・後の論物変換テーブル、空きブロック管理テーブルの状態例を示す概念図
【図１７】同不揮発性記憶システムの電源断が発生するタイミングと電源断後の状態の対応を示す概念図
【図１８（Ａ）】同不揮発性記憶システムの復旧処理前の論物変換テーブル、空きブロック管理テーブル及びフラッシュ上の物理ブロックの状態例を示す概念図
【図１８（Ｂ）】同不揮発性記憶システムの復旧処理後の論物変換テーブル、空きブロック管理テーブル及びフラッシュ上の物理ブロックの状態例を示す概念図
【図１９】同不揮発性記憶システムの不揮発性記憶装置の読出しコマンド受信後の動作フローを示すフローチャート
【符号の説明】
【０１０２】
１００    不揮発性記憶装置
１１０    メモリコントローラ
１１１    ホストインターフェース部
１１２    論物変換テーブル
１１３    空きブロック管理テーブル
１１４    読出し／書込み制御部
１２０    不揮発性メモリ
１２１    管理データ格納領域
１２２    データ格納領域
２００    アクセス装置
【図１】
2008003684.tif 000003
【図２】
2008003684.tif 000004
【図３】
2008003684.tif 000005
【図４】
2008003684.tif 000006
【図５】
2008003684.tif 000007
【図６】
2008003684.tif 000008
【図７】
2008003684.tif 000009
【図８】
2008003684.tif 000010
【図９】
2008003684.tif 000011
【図１０】
2008003684.tif 000012
【図１１】
2008003684.tif 000013
【図１２（Ａ）】
2008003684.tif 000014
【図１２（Ｂ）】
2008003684.tif 000015
【図１３】
2008003684.tif 000016
【図１４（Ａ）】
2008003684.tif 000017
【図１４（Ｂ）】
2008003684.tif 000018
【図１５】
2008003684.tif 000019
【図１６】
2008003684.tif 000020
【図１７】
2008003684.tif 000021
【図１８（Ａ）】
2008003684.tif 000022
【図１８（Ｂ）】
2008003684.tif 000023
【図１９】
2008003684.tif 000024