トップ :: G 物理学 :: G06 計算;計数

【発明の名称】 不揮発性記憶装置及び不揮発性記憶システム
【発明者】 【氏名】宗 広和

【氏名】井上 学

【要約】 【課題】多値フラッシュメモリを用いた不揮発性記憶装置において、書込み中の電源断で書込み中データ以外のデータが破壊されることを防止し、かつ高い記憶密度を保持できる手段を提供する。

【構成】物理ブロックPB38の物理ページPP0から順に物理ページPP127まで書込みを行う。このとき、メモリセルを共有するページセットのうち物理ページ番号の小さいページ(PP0、PP1、PP2、PP3、PP6、PP7、・・・)に別の物理ブロックからコピーされる巻込みデータを書込み、メモリセルを共有するページセットのうち物理ページ番号の大きいページ(PP4、PP5、PP8、PP9、・・・)にアクセス装置からのデータを書込む。
【特許請求の範囲】
【請求項1】
アクセス装置によりデータの書込み、読出しが可能な不揮発性記憶装置であって、複数のメモリセルを有し、各メモリセルはM個(M>3)の閾値電圧を有し多値データの記憶が可能な不揮発性多値メモリと、前記不揮発性多値メモリに対してデータの書込み及び読出しの制御を行なうメモリコントローラとを備え、
前記不揮発性多値メモリは複数のメモリセルから構成される消去単位であるブロックを複数有し、
前記ブロックは書込み単位であるページを複数有し、前記ブロックは少なくともメモリセルを共有する1つ以上のページの組であるページセットを有し、
前記メモリコントローラは、データ書込み時において、前記ページセットのうちの1つのページにのみアクセス装置からのデータを書込み、前記ページセットのうちのその他のページには、前記不揮発性記憶装置の内部にある既書込み済データもしくは前記不揮発性記憶装置で決定した所定値データを書込むことを特徴とする不揮発性記憶装置。
【請求項2】
請求項1に記載の不揮発性記憶装置であって、前記ページセットの各ページへの書込み順は、前記アクセス装置からのデータを書込むページが最後となることを特徴とする不揮発性記憶装置。
【請求項3】
アクセス装置と、前記アクセス装置によりデータの書込み、読出しが可能な不揮発性記憶装置とを有する不揮発性記憶システムであって、
前記不揮発性記憶装置は、複数のメモリセルを有し、各メモリセルはM個(M>3)の閾値電圧を有し多値データの記憶が可能な不揮発性多値メモリと、前記不揮発性多値メモリに対してデータの書込み及び読出しの制御を行なうメモリコントローラとを備え、
前記不揮発性多値メモリは複数のメモリセルから構成される消去単位であるブロックを複数有し、
前記ブロックは書込み単位であるページを複数有し、前記ブロックは少なくともメモリセルを共有する1つ以上のページの組であるページセットを有し、
前記メモリコントローラは、データ書込み時において、前記ページセットのうちの1つのページにのみアクセス装置からのデータを書込み、前記ページセットのうちのその他のページには、前記不揮発性記憶装置の内部にある既書込み済データもしくは前記不揮発性記憶装置で決定した所定値データを書込むことを特徴とする不揮発性記憶システム。
【請求項4】
複数のメモリセルを有し、各メモリセルはM個(M>3)の閾値電圧を有し多値データの記憶が可能な不揮発性多値メモリに対して、データの書込み及び読出しの制御を行なうメモリコントローラであって、
前記不揮発性多値メモリは、複数のメモリセルから構成される消去単位であるブロックを複数有し、
前記ブロックは書込み単位であるページを複数有し、前記ブロックは少なくともメモリセルを共有する1つ以上のページの組であるページセットを有し、
前記メモリコントローラは、データ書込み時において、前記ページセットのうちの1つのページにのみアクセス装置からのデータを書込み、前記ページセットのうちのその他のページには、前記不揮発性記憶装置の内部にある既書込み済データもしくは前記不揮発性記憶装置で決定した所定値データを書込むことを特徴とするメモリコントローラ。
【発明の詳細な説明】【技術分野】
【0001】
本発明は、多値データの記録が可能な不揮発性半導体記憶素子を用いた不揮発性記憶装置に関する。
【背景技術】
【0002】
音楽コンテンツや、映像データなどのデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスクなど、様々な種類が存在する。これら記録媒体の1つである半導体メモリカードは、記憶素子としてフラッシュメモリなどの不揮発性半導体メモリを使用しており、小型化できることから、デジタルスチルカメラや携帯電話端末など、小型の携帯機器を中心に急速に普及しつつある。
【0003】
近年の高い記録画質の要求により、不揮発性半導体メモリには、高い記録密度及び高速なデータ記録性能が必要とされている。
【0004】
フラッシュメモリに関して、記録容量をより向上させるために、1つのメモリセルに複数ビットのデータを記憶可能とするフラッシュメモリ(多値フラッシュメモリ)が開発されている。これによると、記録密度を高くでき、記録容量を大きくすることができるだけではなく、同一記録容量におけるメモリセル数も少なくすることができ、低価格化も可能になる。以下、この多値フラッシュメモリの記録方法に関して説明する。
【0005】
一般にフラッシュメモリ等の不揮発性半導体メモリは、メモリセルのフローティングゲート(またはトラップゲート)に電子を注入してメモリセルの閾値電圧を変えることで、データを記憶する。メモリセルの閾値電圧は、電子がフローティングゲート中に存在すると高くなり、電子がフローティングゲート中に存在しないと低くなる。
【0006】
図2は、4値フラッシュメモリにおけるメモリセルの閾値電圧分布を示した図である。メモリセルの閾値電圧はプログラム(データ書き込み)されたデータに応じて、領域L0、L1、L2、L3のいずれかに分布する。領域L0、L1、L2、L3は、2ビットデータの"11"、"10"、"00"、"01"にそれぞれ対応している。
【0007】
データの書き込み(プログラム)は、各メモリセルにおいて、閾値電圧が検証電圧VV(VV1,VV2、VV3)を超えるまで行われる。例えば、メモリセルに論理"10"を書き込む場合、そのメモリセルの閾値電圧が検証電圧VV1を超えるまで、プログラム動作が繰り返される。各メモリセルの閾値電圧は、領域L0〜L3のいずれかに設定される。
【0008】
データの読み出しは、メモリセルの閾値電圧を、参照電圧VR(VR1、VR2、VR3)と比較することで行われる。メモリセルの閾値電圧が参照電圧VR1より低いとき、メモリセルに保持されているデータは、"11"であると判定される。メモリセルの閾値電圧が参照電圧VR1、VR2の間にあるとき、メモリセルに保持されているデータは"10"であると判定される。メモリセルの閾値電圧が参照電圧VR2、VR3の間にあるとき、メモリセルに保持されているデータは"00"であると判定される。メモリセルの閾値電圧が参照電圧VR3より高いとき、メモリセルに保持されているデータは"01"であると判定される。
【0009】
メモリセルの消去動作は、消去するメモリセルの制御ゲートに低電圧を供給し、メモリセルのウエル領域に高電圧を供給し、フローティングゲートに蓄積されている電子を放出することで行われる。このとき、消去しないメモリセルの制御ゲートは、例えばフローティング状態に制御される。
【0010】
一つの不揮発性メモリセルに多値データを記録する場合、不揮発性メモリセルへのデータの書き込みは複数回行われる。例えば、図2に示したように、領域L0、L1、L2、L3が、2ビットデータの"11"、"10"、"00"、"01"にそれぞれ対応しているときに、下位1ビットデータの書き込み、上位1ビットデータの書き込み、の2段階に分けて書き込みが実施される。以降、メモリセルに対する2段階目以降の書込みを「追記書込み」と呼ぶ。
【0011】
下位1ビットデータが"1"の場合は領域L0、下位1ビットデータが"0"の場合は領域L1に設定される。その後、上位1ビットデータの追記書込みにおいて、上位1ビットデータが"1"の場合は、各領域は変化しない。上位1ビットデータが"0"の場合は、領域L0から領域L3もしくは領域L1から領域L2に変化する。
【0012】
ここで領域L0から領域L3に変化する過程で電源断が発生すると、領域L1や領域L2の状態になる場合がある。従って、上位1ビットデータの追記書込み中に電源断が発生すると、書込み中の上位1ビットデータに加えて、既に書き込み済の下位1ビットデータが誤ったデータに化ける場合がある。
【0013】
アクセス装置からの1回の書込みにおいて指定される範囲は、必ずしも下位1ビットデータ及び前記下位1ビットデータに対応する上位1ビットデータの組になっているとは限らない。
【0014】
従って、上位1ビットデータの追記書込み中の電源断によって、アクセス装置が1回の書込みで指定した範囲以外のデータが破壊される可能性がある。すなわち、書き込み済データの内容を保護することができない。
【0015】
このような、電源断による書き込み対象外の領域のデータ破壊を回避する方法として、特許文献1に開示されている方法がある。特許文献1に開示の不揮発性記憶装置は、不揮発性多値メモリにおいて設定可能な閾値電圧分布のうち一部の閾値電圧のみを使用する。多値メモリセルを2値メモリセルのように1ビットデータのみを格納するように制御することで、1つの多値メモリセルへの書き込み回数を1回に制限し、書き込み済データの破壊を防ぐことができる。
【特許文献1】特開2000−173281号公報
【発明の開示】
【発明が解決しようとする課題】
【0016】
しかしながら、上記の従来技術には次のような問題点がある。
【0017】
すなわち、従来技術は多値メモリセルを2値メモリセルのように使用するために、格納可能なデータ量が大幅に減少し、単位データ量あたりのコストが増加する。4値メモリセルを2値メモリセルのように使用した場合には各メモリセルに格納可能なデータ量は半減し、単位データ量あたりのコストは倍増する。
【0018】
従って、データ保護対象が不揮発性記憶装置のシステム情報やファイルシステムの管理情報などの全メモリ容量に占める割合が比較的小さいデータの場合には従来技術は有効であるが、ユーザデータなどの全メモリ容量に占める割合が比較的大きいデータの場合には単位データ量あたりのコストが増大するという問題がある。
【0019】
本発明は上記課題を解決すべくなされたものであり、その目的とするところは、単位データ量あたりのコストを増大させることなく、データ書込み中の電源断に対する書込み済みデータの保護を実現する不揮発性記憶装置及びそのアクセス装置を提供することにある。
【課題を解決するための手段】
【0020】
上記課題を解決するために、本発明の不揮発性記憶装置はアクセス装置によりデータの書込み、読出しが可能な不揮発性記憶装置であって、複数のメモリセルを有し、各メモリセルはM個(M>3)の閾値電圧を有し多値データの記憶が可能な不揮発性多値メモリと、前記不揮発性多値メモリに対してデータの書込み及び読出しの制御を行うメモリコントローラとを備え、前記不揮発性多値メモリは複数のメモリセルから構成される消去単位であるブロックを複数有し、前記ブロックは書込み単位であるページを複数有し、前記ブロックは少なくともメモリセルを共有する1つ以上のページの組であるページセットを有し、前記メモリコントローラは、データ書込み時において、前記ページセットのうちの1つのページにのみアクセス装置からのデータを書込み、前記ページセットのうちのその他のページには、前記不揮発性記憶装置の内部にある既書込み済データもしくは前記不揮発性記憶装置で決定した所定値データを書込むものである。
【発明の効果】
【0021】
本発明によれば、電源断によって破壊されるデータは電源断発生時に書き込み中であったページ及び前記ページと同一ページセットに属するページに存在するデータであり、常にアクセス装置からの書込み中のデータもしくは前記不揮発性記憶装置の内部にある既書込み済データの巻込みデータのいずれかである。そして、後者は常に巻込み元のデータが不揮発性記憶装置内に存在するために復旧可能である。従って、電源断で書込み済みデータが破壊されることはない。また、データの書込みはページセットを構成する全てのページに対して行われるため、各メモリセルには多値データが記憶されることになり、単位データ量あたりのコストの増大を防止できる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の実施の形態について添付の図面を参照しながら説明する。
【0023】
(実施の形態1)
図1に、本発明における不揮発性記憶装置及びそれにアクセスするアクセス装置からなる不揮発性記憶システムの構成例を示す。
【0024】
本実施の形態による不揮発性記憶システム(メモリシステム)は、半導体メモリカードである不揮発性記憶装置100と、不揮発性記憶装置100に対してデータの書き込み、読み出しを行うホスト装置であるアクセス装置200とからなる。
【0025】
不揮発性記憶装置100はメモリコントローラ110と不揮発性メモリ120とを含む。メモリコントローラ110は、アクセス装置200との間でコマンドやデータのやりとりを行うホストインターフェース部111と、アクセス装置200が指定する論理アドレスを不揮発性メモリ120内の物理アドレスに変換するために使用するテーブルである論物変換テーブル112と、不揮発性メモリ120内の各物理ブロックの使用状況を管理する空きブロック管理テーブル113と、不揮発性メモリ120の制御を行う読出し/書込み制御部114とを含む。
【0026】
不揮発性メモリ120はNAND型フラッシュメモリにより構成される。本実施の形態では、不揮発性メモリ120は図2に示す閾値分布により4値データを記録可能なメモリセルを含む。不揮発性メモリ120は、図3に示すようにデータ消去の最小単位である所定サイズ(データ格納用途の256KB+管理情報格納用途の8KB)の物理ブロックを複数個(図3の例では1024個)含む。各物理ブロック内には、図4に示すようにデータ書き込みの最小単位である所定サイズ(データ格納用途の2KB+管理情報格納用途の64B)の物理ページが複数(図4の例では128個)含まれる。本実施の形態において、管理情報格納用途の64Bには、少なくとも同一ページのデータ格納用途の2KBのデータに対する誤り訂正符号が格納されるものとする。また、各物理ブロック内において、物理ページへの書込みは常に物理ページ番号の小さいものから順に行われるものとする。
【0027】
不揮発性メモリ120は2ページ構成(第1ページと第2ページからなるページセット)となっている。第1ページと第2ページはメモリセルを共用した物理ページの組であり、各メモリセルの下位1ビットの集合が第1ページであり各メモリセルの上位1ビットの集合が第2ページであるものとする。従って第1ページへのデータ書込み後の第2ページへのデータ書込み中に電源断が発生した場合には第1ページ及び第2ページの両方のデータが破壊される可能性がある。本実施の形態における第1ページ及び第2ページの組合せを図5に示す。第1ページである物理ページ0(PP0)は、第2ページである物理ページ4(PP4)と組になっている。同様に、物理ページ1(PP1)は物理ページ5(PP5)と、物理ページ2(PP2)は物理ページ8(PP8)と組になっている。
【0028】
不揮発性メモリ120は、管理データ格納領域121とデータ格納領域122とを有する。
【0029】
データ格納領域122には、ユーザがアクセスすることができるデータ、すなわち、アクセス装置200から論理アドレスを指定して不揮発性メモリ120に書き込み、または読み出しを行うことができるデータが記録される。ファイルシステム情報もこの領域に存在する。本実施の形態では、データ格納領域122はFATファイルシステムによって管理されるものとする。
【0030】
また、管理データ格納領域121には、ユーザが直接アクセスできない情報、つまり、アクセス装置200から論理アドレスを指定してアクセスすることができない情報が格納される。ユーザが直接アクセスできない情報には、アドレス管理情報の一部や、システム情報が含まれる。本実施の形態においては、少なくとも後述する論物変換テーブル112及び空きブロック管理テーブル113を生成するために必要となるアドレス管理情報を含んでいるものとする。
【0031】
次に、論物変換テーブル112及び空きブロック管理テーブル113の構成について説明する。
【0032】
本実施の形態における論物変換テーブル122を図6に示す。論物変換テーブル112は、ブロック単位(256KB単位)で論理アドレスと物理アドレスの対応を管理している。論理アドレスで256KB単位のデータは論理ブロックと呼ぶものとする。
【0033】
本実施の形態において論理ブロックに対応する物理ブロックは、書込み完結ブロック1個と書込み途中ブロック1個の最大2個である。ここで、書込み完結ブロックとは、該ブロックに対する書込みが完結したブロックであり、物理ブロック(256KB)に1論理ブロック(256KB)分のデータが全て書込まれた状態のブロックである。一方、書込み途中ブロックは、該ブロックに対する書込みが途中のブロックであり、物理ブロック(256KB)に1論理ブロック(256KB)未満のデータが書込まれた状態のブロックである。書込み途中ブロックには未書込みの物理ページが存在するため、新たにデータを書込むことができる。
【0034】
書込み途中ブロックとして割当てる物理ブロックが増加すると、記録容量は低下する。そこで、本実施の形態では、書込み途中ブロックの割当ては最大3個の論理ブロックまでに限定している。
【0035】
図6において、論理ブロック0(LB0)に対応する物理ブロックは書込み完結ブロック(PB202)1個である。論理ブロック1(LB1)に対応する物理ブロックは書込み完結ブロック(PB358)1個と書込み途中ブロック(PB38)1個の計2個である。論理ブロック2(LB2)に対応する物理ブロックは未だ割当てられておらず0個である。
【0036】
さらに図6において、書込み途中ブロックには「次物理ページ」及び「次論理ページ」の情報が保持されている。
【0037】
「次物理ページ」は該物理ブロックに対して次に書込みを行うべき物理ページの番号であり、該物理ブロックの未書込みページのうち、最も小さい物理ページ番号が設定される。
【0038】
「次論理ページ」は該物理ブロックの第2ページに書込まれるデータが論理的に連続になるために、該物理ブロックの最初の未書込みの第2ページに書込まれるべき論理ページの番号が設定される。具体的には、「次物理ページ」が0、すなわち該物理ブロックの全物理ページが未書込みの場合には「次論理ページ」には無効値が格納されている。その後、該物理ブロックの最初の第2ページに論理ページ番号Nのデータが1ページ分書込まれると、「次論理ページ」にはN+1が設定される。さらに、次の第2ページに論理ページ番号N+1のデータが1ページ分書込まれると、「次論理ページ」にはN+2が設定される。
【0039】
また、本実施の形態における空きブロック管理テーブル113を図7に示す。空きブロック管理テーブル113は各物理ブロックが「空き」であるか「使用中」であるかという情報を保持している。
【0040】
以下、本発明における不揮発性記憶装置100の各部の動作について説明する。
【0041】
図8は、アクセス装置200が不揮発性記憶装置100に対して初期化コマンドを送信した場合の不揮発性記憶装置100の動作を示すフローチャートである。初期化コマンドはアクセス装置200の電源投入時や不揮発性記憶装置100の装着時などに送信される。
【0042】
不揮発性記憶装置100が初期化コマンドを受信すると、メモリコントローラ110は論物変換テーブル112及び空きブロック管理テーブル113などの内部メモリのクリアや、不揮発性メモリ120の接続確認などのハードウェアの初期化処理を行う(S801)。その後、読出し/書込み制御部114は不揮発性メモリ120の管理データ格納領域121に格納されているアドレス管理情報等を取得し(S802)、取得した情報を元に論物変換テーブル112及び空きブロック管理テーブル113を作成して処理を完了させる(S803)。
【0043】
ここで、論物変換テーブル112の書込み途中ブロックとして登録した物理ブロックは書込み中の電源断によってデータが破壊されている可能性がある。そのため、書込み途中ブロックの各ページのデータが破壊されているか否かを、各ページに書き込まれた誤り訂正符号を用いて判定する。誤り訂正不可の場合にのみ電断によりデータが破壊されたと判断し、復旧処理を実施する(S804)。復旧処理の詳細については後述する。
【0044】
図9は、アクセス装置200が不揮発性記憶装置100に対して書込みコマンド及び書込みデータを送信した場合の不揮発性記憶装置100の動作フローである。
【0045】
不揮発性記憶装置100のメモリコントローラ110のホストインターフェース部111はアクセス装置200が指定した書込み開始論理アドレスを取得し(S901)、読出し/書込み制御部114に通知する。
【0046】
読出し/書込み制御部114は書込み開始論理アドレスの情報と論物変換テーブル112の情報を利用して、アクセス装置200からの書込みデータを書込むための物理ブロック(書込み用物理ブロック)を取得する(S902)。
【0047】
図10は、書込み用物理ブロックを取得するための不揮発性記憶装置100の動作フローである。以下、図10を用いてS902の処理の詳細を説明する。
【0048】
読出し/書込み制御部114は書込み開始論理アドレス(セクタ単位、すなわち512KB単位)から書込み開始論理ブロック(ブロック単位、すなわち256KB単位)を算出し、論物変換テーブル112を参照する(S1001)。
【0049】
そして、書込み開始論理ブロックに対して書込み途中ブロックが割当てられているか否かを判定し(S1002)、割当てられていれば該書込み途中ブロックに書込みデータを追記できるか否かを判定する(S1003)。
【0050】
S1003の判定方法の例を図11に示す。図11の例では、論物変換テーブル112の書込み途中ブロックの次物理ページ及び次論理ページの情報と、書込み開始ページの情報を用いて判定を行う。ここで書込み開始ページとは、前記書込み開始アドレス(セクタ単位)から算出されるブロック内の論理ページである。
【0051】
次物理ページが0ならば、該書込み途中ブロックは全ページ未書込みの状態であるため追記可と判断する。次物理ページが0でないならば、次に書込み開始ページと次論理ページを比較する。書込み開始ページと次論理ページが一致する場合には、書込み途中ブロックの第2ページに連続なデータを書込むことができるので追記可と判断する。そうでない場合には、追記不可と判断する。
【0052】
S1003の判定にて追記可と判定された場合には、該書込み途中ブロックを書込み用ブロックとし(S1009)、処理を終了する。
【0053】
S1003の判定にて追記不可と判定された場合には、現在の該書込み途中ブロックの書込みを完結させるための書込み(以降、集約処理と呼ぶ)を行う(S1004)。図12(A)及び図12(B)は集約処理前後の論物変換テーブル112及び空きブロック管理テーブル113及びフラッシュ上の物理ブロックの例を示している。集約処理では、書込み途中ブロック(PB38)の未書込みページに、書込み完結ブロック(PB90)から未書込み論理ページのデータを巻込む(すなわち、コピーする)。そして、書込み途中ブロックが全ページ書込み済となったら、論物変換テーブル112に該ブロックを書込み完結ブロックとして登録し、書込み途中ブロックの登録を解消する。続けて、空きブロック管理テーブル113において旧書込み完結ブロック(PB90)を空きに変更する。さらに、論物変換テーブル112及び空きブロック管理テーブル113の変更情報を記録するために、管理データ格納領域121の更新も行う。
【0054】
S1004の処理後、読出し/書込み制御部114は空きブロック管理テーブル113を参照して、「空き」のブロックを取得し、新規に書込み途中ブロックとして登録する処理(以降、空きブロッ処理と呼ぶ)を行う(S1005)。図13(A)及び図13(B)は空きブロック取得処理前後の論物変換テーブル112及び空きブロック管理テーブル113の例を示している。空きブロック取得処理では、空きブロック管理テーブル113上で「空き」となっているブロック(PB200)を取得し、該ブロックを物理消去した後に論物変換テーブル112の書込み途中ブロックとして登録する。そして、該書込み途中ブロック(PB200)は空きブロック管理テーブル113上で「使用中」に変更される。さらに、論物変換テーブル112及び空きブロック管理テーブル113の変更情報を記録するために、管理データ格納領域121の更新も行う。その後、該書込み途中ブロックを書込み用物理ブロックとし(S1009)、処理を終了する。
【0055】
図10のS1002において、書込み途中ブロックが割当てられていないと判定された場合には、論物変換テーブル112の書込み途中ブロックの登録位置に空きがあるか否か判定する(S1006)。本実施の形態においては、最大3個の論理ブロックが書込み途中ブロックとして登録可能であるが、3個とも別の論理ブロックが登録されていた場合には空きがないことになる。空きがない場合には、書込み途中ブロックとして登録されている論理ブロックのうち、少なくとも1つに対して前記の集約処理を行い(S1007)、書込み途中ブロックの登録位置に空きを作成する。その後、前記空きブロック割当て処理を行い(S1008)、新規に割当てられた書込み途中ブロックを書込み用物理ブロックとし(S1009)、処理を終了する。
【0056】
以上で説明したように、S902の処理後は書込み用物理ブロックが決定され、該書込み用物理ブロックは論物変換テーブル112において書込み途中ブロックとして登録されている。
【0057】
次に、読出し/書込み制御部114はアクセス装置200から受信した書込みデータを、S902の処理で決定した書込み用物理ブロックに書込む(S903)。書込みは、書込み用物理ブロックの未書込みの物理ページのうち、物理ページ番号の小さいものから順に行われる。また、アクセス装置200から受信した書込みデータは第2ページに論理ページ番号順に行われ、第1ページには同じ論理ブロックに割当てられている書込み完結ブロックからの巻込みデータが書込まれる。但し、書込み完結ブロックが未割り当ての場合には、巻込みデータは初期値(例えば、全ビット1)となる。この書込みは、書込み用物理ブロックに未書込みの物理ページが存在しない状態(以下、ブロックフルと呼ぶ)になるか、アクセス装置200からの書込みデータを全て書込み完了するまで実施される。
【0058】
図14(A)、(B)は、S903の書込み前後の論物変換テーブル112及びフラッシュ上の物理ブロックの例を示している。図14(A)の(1)は書込み前の状態例であり、書込み途中ブロックとして消去済みブロックであるPB38が割当てられている。
【0059】
アクセス装置200から受信した書込みデータが論理ページ0(LP0)のみである場合、書込み後の状態は図14(A)の(2)に示すようになる。すなわち、アクセス装置200からの書込みデータは最初の第2ページである物理ページ4(PP4)に書き込まれており、第1ページである物理ページ0〜3(PP0〜PP3)には論理ブロック1(LB1)に割当てられた書込み完結ブロックのデータが巻込まれている。巻込みデータの論理ページ番号は、「同一ページセットの第2ページに書き込む論理ページ番号」にブロック内の総ページ数の半分である「64」を加算し、ブロック内の総ページ数「128」で割ったときの剰余とする。本実施の形態の場合、最初の第1ページである物理ページ0(PP0)に巻込むデータの論理ページ番号は「(0+64)mod(128)」より64となる。以降の第1ページである物理ページ1(PP1)、物理ページ2(PP2)、物理ページ3(PP3)には順にインクリメントした論理ページ番号である1、2、3が割当てられる。また、論物変換テーブル112において、次物理ページには最初の未書込みの物理ページであるPP5を示す「5」が設定され、次論理ページには最後に書込んだ第2ページの論理ページ番号「0」の次の値である「1」が設定される。
【0060】
同様に、アクセス装置200から受信した書込みデータが論理ページ0(LP0)及び論理ページ1(LP1)の2ページ分であった場合、書込み後の状態は図14(A)の(3)に示すようになる。
【0061】
同様に、アクセス装置200から受信した書込みデータが論理ページ0(LP0)から論理ページ2(LP2)の3ページ分であった場合、書込み後の状態は図14(B)の(4)に示すようになる。
【0062】
同様に、アクセス装置200から受信した書込みデータが論理ページ0(LP0)から論理ページ3(LP3)の4ページ分であった場合、書込み後の状態は図14(B)の(5)に示すようになる。
【0063】
同様に、アクセス装置200から受信した書込みデータが論理ページ0(LP0)から論理ページ63(LP63)の64ページ分であった場合、書込み後の状態は図14(B)の(6)に示すようにブロックフルになる。ブロックフルの場合には、次物理ページの値が領域外のページ番号である「128」にセットされる。
【0064】
図15に、物理ブロック内の物理ページ番号、ページ種別(第1ページ/第2ページ)、同一ページセットに属する物理ページの物理ページ番号、論理ページ番号の関係をまとめた一覧表を示す。
【0065】
S903の書込み後、読出し/書込み制御部114はアクセス装置200から受信した書込みデータの書込みが完了したか否かを判定し(S904)、未書込みのデータが残っている場合(Noの場合)には書込み用物理ブロックが既にブロックフルの状態になっているため、書込み完結ブロックとして論物変換テーブル112に登録する処理(以降、ブロックフル後処理と呼ぶ)を行い(S905)、S903の処理でアクセス装置200から受信した書込みデータのうち書込み用物理ブロックに書込みを完了したサイズ分だけ書込み開始論理アドレスを加算(S906)し、S902の処理に戻って書込み処理を継続する。
【0066】
S904で書込み完了と判定した場合、書込み用物理ブロックがブロックフルか否かを判定する(S907)。判定は論物変換テーブル112の該書込み途中ブロックの次物理ページが128であるか否かで行うことができる。128ならばブロックフルであり、前記ブロックフル後処理を実施(S908)した後に書込み処理を終了する。128でなければ、そのまま書込み処理を終了する。
【0067】
図16(A)及び図16(B)は、それぞれブロックフル後処理の前後の論物変換テーブル112及び空きブロック管理テーブル113の例を示している。論物変換テーブル112において、ブロックフルとなった物理ブロック38(PB38)が、書込み完結ブロックとして登録され、書込み途中ブロックとしての登録が解除されている。また、空きブロック管理テーブル113において、古い書き込み完結ブロックである物理ブロック90(PB90)は「空き」に変更されている。
【0068】
以上で説明してきたように、本発明における不揮発性記憶装置100では、アクセス装置200からの書込みデータは常に物理ブロック内の第2ページに書込まれ、第1ページには常に巻込みデータが書込まれる。
【0069】
書込み処理中に電源断が発生した場合、書込み中の物理ページ、及び該物理ページと同一ページセットに属する物理ページのデータが破壊される可能性がある。図17に電源断が発生するタイミングと電源断後の状態の対応表を示す。
【0070】
図17に示すように、S903の書込み実施中かつ第1ページに対する書込み中に電源断が発生した場合には、該第1ページ及び前記第1ページと同一ページセットに属する第2ページのデータが破壊される可能性がある。ここで第1ページのデータは常に巻込みデータであるため、巻込み元データが存在するため、破壊されたとしても巻込み元を参照することでデータの復旧が可能である。また、第2ページは常に未書込みページであるため、破壊されたとしても有効なデータが失われることはない。
【0071】
S903の書込み実施中かつ第2ページに対する書込み中に電源断が発生した場合には、該第2ページ及び前記第2ページと同一ページセットに属する第1ページのデータが破壊される可能性がある。ここで、第2ページのデータは電源断が発生したときのアクセス装置200からの書込みデータであり、破壊されたとしても仕方のないデータである。また、第1ページのデータは常に巻込みデータであるため、巻込み元データが存在するため、破壊されたとしても巻込み元を参照することでデータの復旧が可能である。
【0072】
S1004やS1007の集約処理中に電源断が発生した場合には、書込み中の物理ページ及び同一ページセットの物理ページのデータが破壊される可能性がある。しかし、いずれも常に巻込みデータであるため、巻込み元データが存在するため、破壊されたとしても巻込み元を参照することでデータの復旧が可能である。
【0073】
従って、本発明における不揮発性記憶装置100では書込み処理中に電源断が発生したとしても常に復旧可能な状態となり、電源断発生時に書き込んでいたアクセス装置200からの書込みデータ以外の書込み済データが破壊されることはない。
【0074】
なお、電源断発生後の復旧処理は先述した初期化処理の手順S804のタイミングで実施される。以下、復旧処理の詳細について説明する。
【0075】
復旧処理は、誤り訂正不可と判定された物理ページを含む書込み途中ブロックと、前記書込み途中ブロックと同じ論理ブロックに割り当てられている書込み完結ブロックを参照し、有効なデータだけを空きブロックに退避させ、前記空きブロックを新規に書込み完結ブロックとする処理である。
【0076】
復旧前の物理ブロックに同じ論理ページのデータが複数存在する場合、有効なデータは次のルールによって一意に決定することができる。すなわち、(ルール1)書込み途中ブロックの第2ページの書込み済ページのデータのうち誤り訂正可能なものを有効データとする、(ルール2)ルール1の条件を満たす論理ページが存在しない場合、書込み完結ブロックのデータを有効データとする、(ルール3)ルール1及びルール2の条件を満たす論理ページが存在しない場合、初期値(例えば、全ビット1)を有効データとする、という3つのルールである。
【0077】
図18(A)、(B)は復旧処理前後の論物変換テーブル112、空きブロック管理テーブル113及びフラッシュ上の物理ブロックの例を示している。
【0078】
図18(A)は復旧処理前の状態例である。書込み途中ブロック(PB38)は物理ページ8(PP8)への書込み中に電源断が発生し、該物理ページ及び該物理ページと同一ページセットに属する物理ページ2(PP2)のデータが共に破壊されて誤り訂正不可となった例である。
【0079】
これに対して復旧処理を実行した後の状態例を図18(B)に示す。復旧処理では、空きブロック管理テーブル113を参照して空きブロック(PB431)を選択し、前記ルールに従って書込み完結ブロック(PB90)及び書込み途中ブロック(PB38)の有効データを前記空きブロック(PB431)に書込む。本例において、論理ページ0及び論理ページ1のデータは前記ルール1により、書込み途中ブロック(PB38)から巻き込まれる。それ以外の論理ページのデータは前記ルール2により書込み完結ブロック(PB90)から巻き込まれる。前記空きブロック(PB431)には全ページに有効データが書込まれた後、前記書込み途中ブロック(PB38)及び前記書込み完結ブロック(PB90)は論物変換テーブル112から登録解除されて空きブロック管理テーブル113において空きに変更され、代わりに前記空きブロック(PB431)が論物変換テーブル112に書込み完結ブロックとして登録されて空きブロック管理テーブル113において使用中に変更される。
【0080】
次に、本発明による読出し処理について説明する。
【0081】
図19は、アクセス装置200が不揮発性記憶装置100に対して読出しコマンドを送信した場合の不揮発性記憶装置100の動作フローである。
【0082】
不揮発性記憶装置100のメモリコントローラ110のホストインターフェース部111はアクセス装置200が指定した読出し開始論理アドレスを取得し(S1901)、読出し/書込み制御部114に通知する。
【0083】
読出し/書込み制御部114は読出し開始論理アドレスの情報と論物変換テーブル112の情報を利用して、アクセス装置200に送信するための読出しデータが書込まれた物理ブロック(読出し用物理ブロック)を取得する(S1902)。
【0084】
S1902の処理において、読出し/書込み制御部114は読出し開始論理アドレス(セクタ単位、すなわち512KB単位)から読出し開始論理ブロック(ブロック単位、すなわち256KB単位)を算出し、論物変換テーブル112を参照する。
【0085】
そして、読出し開始論理ブロックに対して割当てあれている書込み完了ブロック及び書込み途中ブロックを読出し用物理ブロックとする。
【0086】
次に、読出し/書込み制御部114は読出し用物理ブロックからデータを読出し、アクセス装置200に転送する(S1903)。読出しは次のルールに従って行われる。すなわち、(ルールR1)書込み途中ブロックに読出し対象の論理ページのデータが存在する場合にはこれを読出しデータとする、(ルールR2)ルールR1の条件を満たす論理ページが存在しない場合、書込み完結ブロックのデータを読出しデータとする、(ルールR3)ルールR1及びルールR2の条件を満たす論理ページが存在しない場合、初期値(例えば、全ビット1)を有効データとする、という3つのルールである。
【0087】
ここで、ルールR1の判定は論物変換テーブル112に登録されている次論理ページ及び次物理ページを参照して行うことができる。
【0088】
この読出しは、読出し対象の論理ブロックの最終論理アドレスまで読出しが完了するか、アクセス装置200が指定した全ての読出しデータを転送完了するまで実施される。
【0089】
S1903の処理後、アクセス装置200が指定した全ての読出しデータの転送が完了したか判定し(S1904)、完了していれば読出し処理を終了する。完了していなければ、読出し開始論理アドレスを次の論理ブロックのアドレスに更新し(S1905)、S1902に戻って処理を継続する。
【0090】
以上のように、上記実施の形態では、電源断によって破壊されるデータは電源断発生時に書き込み中であったページ及び前記ページと同一ページセットに属するページに存在するデータであり、常にアクセス装置からの書込み中のデータもしくは前記不揮発性記憶装置の内部にある既書込み済データの巻込みデータのいずれかである。そして、後者は常に巻込み元のデータが不揮発性記憶装置内に存在するために復旧可能である。従って、電源断で書込み済みデータが破壊されることはない。また、データの書込みはページセットを構成する全てのページに対して行われるため、各メモリセルには多値データが記憶されることになり、単位データ量あたりのコストの増大を防止できる。
【0091】
本発明は多値化が進むフラッシュメモリを用いた半導体メモリカードにおいて特に有効である。
【0092】
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は上記の実施の形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施変更することができる。以下のような場合も本発明に含まれる。
【0093】
(1)本実施の形態において、不揮発性メモリ120として4値データを記録可能なメモリセルによるNAND型フラッシュメモリを使用する例を示したが、これに限らず多値データを記録可能なメモリセルによる不揮発性メモリであれば同様の構成を実現できる。
【0094】
例えば不揮発性メモリ120として8値データを記録可能なメモリセルによるNAND型フラッシュメモリを使用し、物理ブロック内で同一ページセットに属する物理ページが4つ存在する場合には、アクセス装置からの書込みデータは常に前記4つの物理ページのうちの最後に書込まれる物理ページに書き込まれ、それ以外の物理ページには常に巻込みデータが書込まれるようにすることで同様の構成を実現できる。
【0095】
(2)本実施の形態においては、ホストからの書込みデータがページサイズ単位であるものとして記述したが、ページサイズ未満の場合にも次のようにすることで同様の効果を得ることができる。
【0096】
すなわち、ホストからの書込みデータがページサイズ未満の場合には巻込みデータを含めたページ単位のデータとして第1ページに書込みを行う。
【0097】
例えば、ホストからの書込みデータがセクタアドレス2の1セクタ分のデータの場合には、セクタアドレス0、1、3の3セクタ分のデータを書込み完結ブロックから巻込んで、1ページ分のデータとして書込み途中ブロックの第1ページに書込む。
【0098】
(3)本実施の形態におけるメモリコントローラ110は、物理的にはマイコン(CPU)及びそのプログラムを格納するROM、ワーク用RAM、論物変換テーブル112や空きブロック管理テーブル113用のRAM、不揮発性メモリ120にアクセスするための専用ハードウェア等から構成される。そして、これらは1チップに集積された形で実装されていてもよい。
【0099】
(4)本実施の形態における不揮発性記憶システムは、不揮発性記憶装置100という形態に限るものではなく、アクセス装置200とメモリコントローラ110と不揮発性メモリ120を有するものとして構成してもよい。
【産業上の利用可能性】
【0100】
本発明は、デジタルAV機器や携帯電話端末、パーソナルコンピュータ等の電子機器に用いられる大容量かつ高信頼性が要求される情報記録媒体に適用可能である。特に、本発明は、記録密度を高くすることができる多値フラッシュメモリを使用できるため、低コストが求められる不揮発性記憶装置に好適である。
【図面の簡単な説明】
【0101】
【図1】本発明の実施の形態1における不揮発性記憶システムの構成を示すブロック図
【図2】同不揮発性記憶システムの不揮発性メモリにおけるデータの閾値電圧とセル数の分布を示す模式図
【図3】同不揮発性記憶システムの不揮発性メモリの物理ブロックによる構成を示す模式図
【図4】同不揮発性記憶システムの物理ブロックの物理ページによる構成を示す模式図
【図5】同不揮発性記憶システムの物理ブロックの第1ページと第2ページに割当てられた物理ページの一覧及びその組合せを示す概念図
【図6】同不揮発性記憶システムの論物変換テーブルの構成を示す概念図
【図7】同不揮発性記憶システムの空きブロック管理テーブルの構成を示す概念図
【図8】同不揮発性記憶システムの不揮発性記憶装置の初期化コマンド受信後の動作を示すフローチャート
【図9】同不揮発性記憶システムの不揮発性記憶装置の書込みコマンド受信後の動作を示すフローチャート
【図10】同不揮発性記憶システムの不揮発性揮発装置の書込み用物理ブロック取得処理の動作を示すフローチャート
【図11】同不揮発性記憶システムの不揮発性揮発装置の追記可否の判定方法の例を示す概念図
【図12(A)】同不揮発性記憶システムの集約処理前の論物変換テーブル、空きブロック管理テーブル及びフラッシュ上の物理ブロックの状態例を示す模式図
【図12(B)】同不揮発性記憶システムの集約処理後の論物変換テーブル、空きブロック管理テーブル及びフラッシュ上の物理ブロックの状態例を示す模式図
【図13】同不揮発性記憶システムの空きブロック割当て処理前・後の論物変換テーブル、空きブロック管理テーブルの状態例を示す模式図
【図14(A)】同不揮発性記憶システムの書込み前、論理ページ0の書込み後及び論理ページ0、1の書込み後の論物変換テーブル、フラッシュ上の物理ブロックの状態例を示す模式図
【図14(B)】同不揮発性記憶システムの論理ページ0〜2の書込み後、論理ページ0〜3の書込み後及び論理ページ0〜63の書込み後の論物変換テーブル、フラッシュ上の物理ブロックの状態例を示す模式図
【図15】同不揮発性記憶システムの物理ブロック内の物理ページ番号、ページ種別、同一ページセットに属する物理ページの物理ページ番号、論理ページの関係を示す概念図
【図16】同不揮発性記憶システムのブロックフル後処理前・後の論物変換テーブル、空きブロック管理テーブルの状態例を示す概念図
【図17】同不揮発性記憶システムの電源断が発生するタイミングと電源断後の状態の対応を示す概念図
【図18(A)】同不揮発性記憶システムの復旧処理前の論物変換テーブル、空きブロック管理テーブル及びフラッシュ上の物理ブロックの状態例を示す概念図
【図18(B)】同不揮発性記憶システムの復旧処理後の論物変換テーブル、空きブロック管理テーブル及びフラッシュ上の物理ブロックの状態例を示す概念図
【図19】同不揮発性記憶システムの不揮発性記憶装置の読出しコマンド受信後の動作フローを示すフローチャート
【符号の説明】
【0102】
100 不揮発性記憶装置
110 メモリコントローラ
111 ホストインターフェース部
112 論物変換テーブル
113 空きブロック管理テーブル
114 読出し/書込み制御部
120 不揮発性メモリ
121 管理データ格納領域
122 データ格納領域
200 アクセス装置
【出願人】 【識別番号】000005821
【氏名又は名称】松下電器産業株式会社
【出願日】 平成18年6月20日(2006.6.20)
【代理人】 【識別番号】100097445
【弁理士】
【氏名又は名称】岩橋 文雄

【識別番号】100109667
【弁理士】
【氏名又は名称】内藤 浩樹

【識別番号】100109151
【弁理士】
【氏名又は名称】永野 大介


【公開番号】 特開2008−3684(P2008−3684A)
【公開日】 平成20年1月10日(2008.1.10)
【出願番号】 特願2006−170017(P2006−170017)