不揮発性記憶装置および不揮発性メモリコントローラ
【課題】多値メモリセルによって構成される不揮発性メモリを使用したメモリーカードに対してデータを書き込む際に、電源遮断が発生した場合、書き込み先のページとメモリセルを共有する、既にデータが書き込み済みのページのデータが破壊される可能性がある。このことが、メモリーカードのデータ信頼性を低下させる要因となっている。
【解決手段】外部からの書き込みコマンドの発行毎に、多値メモリセルによって構成される不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、書き込み先物理アドレスが第nページでありかつ対応する第1〜(n−1)ページに既書き込みのデータが存在する場合に、前記既書き込みデータを不揮発で記憶可能なバックアップ領域にコピーする。
【解決手段】外部からの書き込みコマンドの発行毎に、多値メモリセルによって構成される不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、書き込み先物理アドレスが第nページでありかつ対応する第1〜(n−1)ページに既書き込みのデータが存在する場合に、前記既書き込みデータを不揮発で記憶可能なバックアップ領域にコピーする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、1つのメモリセルに2ビット以上の情報を格納可能な不揮発性メモリを使用した不揮発性記憶装置に関する。
【背景技術】
【0002】
近年、不揮発性メモリを搭載したメモリーカードはデジタルカメラや携帯電話のメモリーカードとして市場を拡大している。メモリーカードはデジタルカメラの高画素化や、携帯電話での動画記録等の用途へ向けてとさらなる高容量化の拡がりを見せている。そのために不揮発性メモリを高容量化させる手段としてメモリセルの多値化が進められている。メモリセルを多値化することにより、例えばひとつのメモリセルに2ビットの情報を保持できるようにする(以下、この2つのビットのことを、「メモリセルを共有するビット」と表現する)ことで、同じ数のメモリセルで容量を倍にすることができる。
【0003】
しかしながらメモリセルへの書き込みは1ビットずつ行われるために、先に書いた1ビットの情報は、後でメモリセルを共有するビットに対してデータを書き込む際の電源遮断等によって破壊されることがある。
【0004】
上記電源遮断によるデータの破壊を防止するために特許文献1に示されるように、多値メモリセルを2値メモリセルのようにして使用するブロックを導入することで、書き込みデータを一旦2値メモリとして使用するブロックに書き込んでおき、正常に書き込みを終えた後に多値メモリとしてのブロックにコピーするという方法でデータを保護する技術がある。
【0005】
また、特許文献2に示されるように、電源が投入されたことやFATの書き込みを検出することで、既に書き込み済みのデータとメモリセルを共有するビットには新たに書き込みを行わない制御をすることでデータを保護する技術がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−221743号公報
【特許文献2】特開2006−195565号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に示され方法では、必ず2値として書き込んだ後に、データをコピーして多値の状態に書き込むために、書き込みを行うデータサイズとして2倍、書き込みを行うブロックとして3倍のブロックを消費することとなり、そのことがフラッシュメモリの書き込み性能の低下や、エンデュランス特性の劣化につながる。
【0008】
また特許文献2に示される方法では、特許文献1で発生するような性能の低下や特性の劣化は発生しないが、電源投入後には電源投入前に書き込んだデータに対してメモリセル共有に起因するデータの破壊は発生しないが、書き込み中のメモリセル共有に起因するデータの破壊を本質的に回避できる対策とはなっていないという課題がある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明の不揮発性メモリコントローラは、複数のメモリセルブロックを有し、前記メモリセルブロックはm(mは2以上の自然数)ビットのデータを記憶可能に構成された複数の多値メモリセルからなり、前記多値メモリセルのmビットのデータは順に第1ページから第mページに割り当てられた不揮発性メモリに対してデータの書き込みおよび読み出しを行い、不揮発性メモリコントローラ外部からの書き込みコマンドの発行毎に、前記不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、前記書き込み先物理アドレスが前記第n(nは2以上かつm以下の自然数)ページでありかつ対応する第1〜(n−1)ページに既書き込みのデータが存在する場合に、前記既書き込みデータを不揮発で記憶可能なバックアップ領域にコピーするバックアップ機能を備える。
【0010】
また、本発明の不揮発性記憶装置は、外部よりアドレスを指定したコマンドによりデータの書き込み及び読み出しが可能で、不揮発性メモリとコントローラからなり、前記不揮発性メモリは、複数のメモリセルブロックを有し、前記メモリセルブロックはm(mは2以上の自然数)ビットのデータを記憶可能に構成された複数の多値メモリセルからなり、前記多値メモリセルのmビットのデータは順に第1ページから第mページに割り当てられ、前記コントローラは、前記外部からの書き込みコマンドの発行毎に、前記不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、前記書き込み先物理アドレスが前記第n(nは2以上かつm以下の自然数)ページでありかつ対応する第1〜(n−1)ページに既書き込みのデータが存在する場合に、前記既書き込みデータをバックアップ領域にコピーする。
【発明の効果】
【0011】
本発明によれば、多値メモリセルで構成される不揮発性メモリに対するデータの書き込みにおいて、メモリセルの共有に起因する書き込み時の電源遮断時の異常発生を回避することができ、不揮発性記憶装置に対するデータの信頼性を向上させることが出来る。
【図面の簡単な説明】
【0012】
【図1】本発明の不揮発性記憶装置の構成図
【図2】本発明の不揮発性記憶装置に使用する不揮発性メモリのメモリセルアレイの構成図
【図3】本発明の不揮発性記憶装置に使用する不揮発性メモリの多値メモリセルの物理ページ対応図
【図4】本発明の不揮発性記憶装置に使用する不揮発性メモリの共有する物理ページを示した図
【図5】本発明の不揮発性記憶装置におけるデータ書き込み時のフローチャート
【図6】本発明の不揮発性記憶装置に使用する不揮発性メモリにおける書き込み先となる物理ブロックの状態を示した図
【図7】本発明の不揮発性記憶装置に使用する不揮発性メモリにおけるデータのバックアップを示した図
【図8】本発明の不揮発性記憶装置に使用する不揮発性メモリにおけるホストデータの書き込みを示した図
【図9】本発明の不揮発性記憶装置におけるブロック状態確認のフローチャート
【図10】本発明の不揮発性記憶装置に使用する不揮発性メモリにおけるリカバリ処理の書き込みを示した図
【発明を実施するための形態】
【0013】
図面を参照して本発明に係わる不揮発性記憶装置について説明する。
【0014】
図1に本発明の不揮発性記憶装置の構成を示す。本発明の不揮発性記憶装置は、コントローラ101、フラッシュメモリ102で構成されるメモリカードとホスト機器103で構成される。
【0015】
コントローラ101は不揮発性メモリに対してデータの書き込み・消去や読み出しの制御を行う。
【0016】
フラッシュメモリ102は多値メモリセルをNANDタイプに接続した不揮発性メモリである。
【0017】
ホスト機器103はメモリーカードに対してデータの書き込みや読み出しを行う。
【0018】
コントローラ101は、制御部104、ホストI/F105、フラッシュメモリI/F106、バッファ107で構成される。
【0019】
制御部104はコントローラ101内部の制御を司る。
【0020】
ホストI/F105はコントローラ101内部においてホスト機器103とのI/Fを制御する。
【0021】
フラッシュメモリI/F106はコントローラ101内部においてフラッシュメモリ102とのI/Fを制御する。
【0022】
バッファ107はホストI/F105とフラッシュメモリI/F106の間にあり、ホスト機器103からフラッシュメモリ102に書き込むデータおよびフラッシュメモリ102からホスト機器103へ読み出すデータを一時的に格納する。
【0023】
制御部104はコントローラ101内部のホストI/F105やフラッシュメモリI/F106を制御する。
【0024】
コントローラ101は、フラッシュメモリ102へデータを書き込むための書き込み機能108と、フラッシュメモリからデータを読み出すための読み出し機能109と、フラッシュメモリ102に対して書き込みを行う際にバックアップの要否を判定するバックアップ判定機能110と、バックアップが必要なデータを口述するバックアップブロックに対してコピーするバックアップ機能111と、電源投入時にフラッシュメモリ102に対する書き込みの異常を検出する異常判定機能112と、異常が発生したデータを正しくリカバリするリカバリ機能113を備える。
【0025】
また、図1には示していないが、コントローラ101にはフラッシュメモリで発生するビットエラーを検出および訂正する誤り訂正機能を備えている。またその誤り訂正機能を使用し、フラッシュメモリ102への書き込み途中の電源遮断に起因して書き込みデータが不正になってしまった場合に、誤り訂正が出来ないことを持って、その電源遮断等の異常を検出することが可能である。
【0026】
図2にフラッシュメモリ102の内部におけるメモリセルアレイの構成を示す。
【0027】
フラッシュメモリ102は複数の物理ブロックからなる。ここでは物理ブロックはブロック0〜ブロック1023からなるとする。物理ブロックはフラッシュメモリ102におけるデータの消去単位である。それぞれの物理ブロックは複数の物理ページからなる。ここでは物理ページはページ0〜ページ127からなるとする。物理ページはフラッシュメモリ102におけるデータの書き込み単位である。また、一般的なNANDタイプのフラッシュメモリにおいては同一の物理ブロックにおけるデータの書き込みについては物理ページの順番に書き込みを行わなければならないという制限があり、ここでもその制約を守る。
【0028】
図3に物理ブロックに属する多値メモリセルのNAND接続の状態とビット線1本
分だけ図示し、それぞれの多値メモリセルに対応するページを示したものである。物理ブロックは図3に示したものを物理ページの容量分の本数を横に並べたものになる。それぞれの多値メモリセルにはその多値メモリセルに対応した物理ページの番号を右側に記載している。多値メモリセルであるので、メモリセル1にはページ0とページ2、メモリセル2にはページ1とページ4というように、各メモリセルには複数のページが割り当てられる。それぞれの多値メモリセルに対して最初に書き込みを行うページを第1ページ、後で書き込みを行うページを第2ページとしてそれぞれの多値メモリセルに対応する物理ページは第1ページのグループと第2ページのグループとに分けられる。
【0029】
図4には、物理ブロックにおける物理ページの構成を、物理ページ番号と多値メモリセルの共有するページの関係が分かるように示した図である。図の左側に示した数字が物理ページの番号である。上から順に0から127まで並んでいるので、この図に示した物理ブロックに対してデータを書き込む際には上から順にデータを書き込む必要がある。図の右側には、メモリセルを共有するページを矢印線で示している。物理ページ0と物理ページ2とがメモリセルを共有するページである。
【0030】
以上を踏まえて、図5にコントローラ101がホスト機器103からのデータ書き込みのコマンドを受けてフラッシュメモリ102にデータを書き込む際の処理のフローチャートを示す。最初に処理501ではホスト機器103からのデータの書き込みに伴い書き込みが必要となるフラッシュメモリ102の物理ブロックと物理ページを決定する。この際のフラッシュメモリ102への書き込みはホスト機器103からのデータをそのまま書き込む場合もあるし、ホスト機器103からのデータを書き込むために別のデータをコピーする場合もある。
【0031】
次に、判定502では処理501で決定した物理ブロックの物理ページにデータを書き込む際に、既に書き込みを行ったデータを破壊する可能性があるかどうかをバックアップ判定機能110で判定する。この時の判定の詳細を、図6を用いて説明する。
【0032】
図6は、処理501で決定した物理ブロックを書き込み先物理ブロックとして示している。物理ページ番号は図示していないが上から順にインクリメントされる値である。ハッチングを施した領域が既にデータを書き込み済みの物理ページであり、有効なデータが書き込まれている。ハッチングを施していない領域が未書き込みの物理ページである。右側に示した矢印線は図4で使用したときと同様に多値メモリセルを共有するページの関係を示している。物理ページ601と物理ページ603が、物理ページ602と物理ページ604とが多値メモリセルを共有するページである。いま、未書き込みの物理ページの一番上のページから書き込むとする。そうすると太枠で示した既書き込みの物理ページのうちの一番下の物理ページ603と、下から3番目の物理ページ601はこれから書き込みを行う物理ページとメモリセルを共有する物理ページであると判定できる。なお、ここではバックアップブロックは使用しないが、書き込み先物理ブロックと同様にフラッシュメモリ102内の物理ブロックをデータのバックアップの専用のための物理ブロックとして管理しているブロックのことである。
【0033】
図6のような状態の場合、データの書き込み中の電源遮断が発生することによって物理ページ601や物理ページ602のデータが破壊される可能性がある。従って判定502ではバックアップ判定機能110によって破壊の可能性があるページが存在すると判定し、処理503へと遷移する。
【0034】
処理503ではバックアップ機能111により、破壊可能性のある物理ページのデータを一旦バックアップする。この時の処理の詳細を、図7を用いて説明する。
【0035】
図7は、処理503でのデータのバックアップについて示している。判定502でバックアップ機能111によってバックアップが必要と判定した物理ページ601および物理ページ602に、既に書き込まれているデータをそれぞれ読み出して、バックアップブロックの未書き込みの物理ページの中で一番若い物理ページ番号から順に物理ページ701と物理ページ702に書き込むことでデータのバックアップを行う。バックアップブロックに書き込むデータは、破壊の可能性のあるデータを一時的にバックアップし、そのバックアップの手法も、元のデータを消去してバックアップするのではなく、元のデータを残したまま電源遮断等の異常発生時に備えてバックアップするので、異常が発生しなければバックアップしたデータは不要である。そして、後述するが異常が発生した場合には、まず異常の解消処理をおこなう。そのため、バックアップブロックの既に書き込み済みのデータは既に不要となった以前のバックアップデータであり、今回のデータのバックアップで破壊されても問題ない。バックアップブロックにある既書き込みのデータは、既書き込みの無効データであるといえる。従って、バックアップブロックは多値メモリセルを多値メモリセルとして使用して問題ない。
【0036】
処理503でデータのバックアップを行った後は、処理504へ遷移する。
【0037】
処理504では、書き込み機能108でホスト機器103からの書き込みデータを、物理ページ603から順に書き込む。もしくはホスト機器103からの書き込みデータを書き込むための事前のデータのコピーの書き込み先として物理ページ603から順に書き込む。この時の処理の詳細を、図8を用いて説明する。
【0038】
図8は、処理504でのデータの書き込みについて示している。ホスト機器103からの書き込みデータを、未書き込みの物理ページの先頭である物理ページ603から順に書き込む。データを全て正常に書き終えた後で、図示していないが、書き込み先物理ブロックのどの物理ページまでデータを書き込んだかを、フラッシュメモリ101のテーブル情報を記録する物理ブロックに記録しておく。
【0039】
図8においてバックアップブロックの物理ページ701および物理ページ702を含んで旧バックアップデータと記しているが、これはホストデータの書き込み処理を全て正常に終えてテーブル情報を記録した後の段階の状態である。テーブル情報の記録が正しく終了した段階で、処理503でバックアップしたデータは無効データとなる。
【0040】
なお、テーブル情報を記録する物理ブロックは電源遮断等でデータが異常とならないように、2値情報として書き込む、または多重化することでテーブル情報を保護する必要がある。
【0041】
処理504が終われば、判定505へと遷移し、未書き込みのデータがあるかどうかを判定し、未書き込みのデータがある場合には処理501へと遷移して処理を継続する。未書き込みのデータがなければ処理を終了する。
【0042】
図5のフローチャートにおける処理501〜処理504までの処理において、書き込み先物理ブロックに対しての書き込みが行われるのは処理504であり、それまでは書き込み先物理ブロックの既書き込みの有効なデータが破壊されることはないといえる。また、既書き込み先物理ブロックの既書き込みの有効なデータが、書き込み中の電源遮断により破壊される場合には処理503で該データのバックアップが行われる。
【0043】
従って、図5のフローチャートに従ってデータを書き込む際に、その書き込み中の電源遮断によって、既書き込みの有効なデータが破壊されることを回避することが出来る。
【0044】
処理504の書き込み途中で電源遮断が発生した後の電源再投入後に、コントローラ101ではまずフラッシュメモリ102からテーブル情報を読み出して、書き込み先物理ブロックのどの物理ページまでデータが書き込まれているかの情報を得る。
【0045】
テーブル情報を得た後ブロック状態確認の処理のフローを図9に示す。最初に処理901では既書き込みデータの確認を行う。この処理は、テーブル情報に書かれている「書き込み先物理ブロックのどの物理ページまでデータが書き込まれているか」の情報が正しいかどうかを確認する処理であり、データが書き込まれているはずの物理ページの次の物理ページを読み出す。
【0046】
次に判定902では異常判定機能112で異常の有無を判定する。正しくデータが書き込まれ、正しくテーブル情報が更新された後であれば、処理901で読み出した物理ページのデータは未書き込みの状態であるはずである。その場合には正しい状態としてブロック状態確認の処理を終了する。未書き込みの状態でない場合には、なんらかの書き込みが行われているが、最終的にテーブル情報を更新する前に電源遮断がされている、即ち異常な状態であると判定し、処理903へと遷移する。
【0047】
処理903ではバックアップデータからのリカバリ処理を行う。この時の処理の詳細を、図10を用いて説明する。
【0048】
図10は処理504でのホストデータの書き込みにおいて、全てのホストデータを書き終える前の書き込み中に電源遮断が発生した状態の書き込み先物理ブロックが左側に示している。具体的には斜線のパターンで示した物理ページ604を書き込み途中の電源遮断である。物理ページ604を書き込み中に電源が遮断されると、物理ページ604と多値メモリセルを共有し、同じく斜線のパターンで示した物理ページ602のデータが破壊される場合がある。この場合にはバックアップブロックにバックアップしたデータを使用して状態をリカバリする必要がある。新たに消去済みの物理ブロックを新書き込み物理ブロックとして定義する。書き込み先物理ブロックの書き込み済みの物理ページのデータのうち、バックアップブロックにバックアップした物理ページのデータを除いた物理ページと、バックアップブロックにバックアップしている物理ページのデータとを、新書き込み先物理ブロックにコピーする。そして新書き込み先物理ブロックを書き込み先物理ブロックと定義しなおしてテーブル情報を更新する。
【0049】
以上のリカバリ処理を行うことにより、多値メモリセルへのデータ書き込み中に発声する共有ページのデータ破壊をリカバリして、書き込み先物理ブロックの状態として、電源遮断が発生したホストデータの書き込みを行う前の状態に戻すことが出来る。
【0050】
なお、ここでは異常判定機能112はテーブル情報と実際の物理ページへの書き込み状態で判定しているが、誤り訂正が不可能な物理ページが存在するかどうかで判定してもよい。
【産業上の利用可能性】
【0051】
本発明にかかる不揮発性記憶装置、不揮発性メモリコントローラは、多値NANDフラッシュメモリのように、各メモリセルが複数のページに跨ってデータを保持する不揮発性メモリを使用した装置において、信頼性を向上させることができる。本発明は、静止画記録再生装置や動画記録再生装置等のポータブルAV機器、あるいは携帯電話等のポータブル通信機器の記録媒体に適用することができる。
【符号の説明】
【0052】
101 コントローラ
102 フラッシュメモリ
103 ホスト機器
104 制御部
105 ホストI/F
106 フラッシュメモリI/F
107 バッファ
108 書き込み機能
109 読み出し機能
110 バックアップ判定機能
111 バックアップ機能
112 異常判定機能
113 リカバリ機能
【技術分野】
【0001】
本発明は、1つのメモリセルに2ビット以上の情報を格納可能な不揮発性メモリを使用した不揮発性記憶装置に関する。
【背景技術】
【0002】
近年、不揮発性メモリを搭載したメモリーカードはデジタルカメラや携帯電話のメモリーカードとして市場を拡大している。メモリーカードはデジタルカメラの高画素化や、携帯電話での動画記録等の用途へ向けてとさらなる高容量化の拡がりを見せている。そのために不揮発性メモリを高容量化させる手段としてメモリセルの多値化が進められている。メモリセルを多値化することにより、例えばひとつのメモリセルに2ビットの情報を保持できるようにする(以下、この2つのビットのことを、「メモリセルを共有するビット」と表現する)ことで、同じ数のメモリセルで容量を倍にすることができる。
【0003】
しかしながらメモリセルへの書き込みは1ビットずつ行われるために、先に書いた1ビットの情報は、後でメモリセルを共有するビットに対してデータを書き込む際の電源遮断等によって破壊されることがある。
【0004】
上記電源遮断によるデータの破壊を防止するために特許文献1に示されるように、多値メモリセルを2値メモリセルのようにして使用するブロックを導入することで、書き込みデータを一旦2値メモリとして使用するブロックに書き込んでおき、正常に書き込みを終えた後に多値メモリとしてのブロックにコピーするという方法でデータを保護する技術がある。
【0005】
また、特許文献2に示されるように、電源が投入されたことやFATの書き込みを検出することで、既に書き込み済みのデータとメモリセルを共有するビットには新たに書き込みを行わない制御をすることでデータを保護する技術がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−221743号公報
【特許文献2】特開2006−195565号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に示され方法では、必ず2値として書き込んだ後に、データをコピーして多値の状態に書き込むために、書き込みを行うデータサイズとして2倍、書き込みを行うブロックとして3倍のブロックを消費することとなり、そのことがフラッシュメモリの書き込み性能の低下や、エンデュランス特性の劣化につながる。
【0008】
また特許文献2に示される方法では、特許文献1で発生するような性能の低下や特性の劣化は発生しないが、電源投入後には電源投入前に書き込んだデータに対してメモリセル共有に起因するデータの破壊は発生しないが、書き込み中のメモリセル共有に起因するデータの破壊を本質的に回避できる対策とはなっていないという課題がある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明の不揮発性メモリコントローラは、複数のメモリセルブロックを有し、前記メモリセルブロックはm(mは2以上の自然数)ビットのデータを記憶可能に構成された複数の多値メモリセルからなり、前記多値メモリセルのmビットのデータは順に第1ページから第mページに割り当てられた不揮発性メモリに対してデータの書き込みおよび読み出しを行い、不揮発性メモリコントローラ外部からの書き込みコマンドの発行毎に、前記不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、前記書き込み先物理アドレスが前記第n(nは2以上かつm以下の自然数)ページでありかつ対応する第1〜(n−1)ページに既書き込みのデータが存在する場合に、前記既書き込みデータを不揮発で記憶可能なバックアップ領域にコピーするバックアップ機能を備える。
【0010】
また、本発明の不揮発性記憶装置は、外部よりアドレスを指定したコマンドによりデータの書き込み及び読み出しが可能で、不揮発性メモリとコントローラからなり、前記不揮発性メモリは、複数のメモリセルブロックを有し、前記メモリセルブロックはm(mは2以上の自然数)ビットのデータを記憶可能に構成された複数の多値メモリセルからなり、前記多値メモリセルのmビットのデータは順に第1ページから第mページに割り当てられ、前記コントローラは、前記外部からの書き込みコマンドの発行毎に、前記不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、前記書き込み先物理アドレスが前記第n(nは2以上かつm以下の自然数)ページでありかつ対応する第1〜(n−1)ページに既書き込みのデータが存在する場合に、前記既書き込みデータをバックアップ領域にコピーする。
【発明の効果】
【0011】
本発明によれば、多値メモリセルで構成される不揮発性メモリに対するデータの書き込みにおいて、メモリセルの共有に起因する書き込み時の電源遮断時の異常発生を回避することができ、不揮発性記憶装置に対するデータの信頼性を向上させることが出来る。
【図面の簡単な説明】
【0012】
【図1】本発明の不揮発性記憶装置の構成図
【図2】本発明の不揮発性記憶装置に使用する不揮発性メモリのメモリセルアレイの構成図
【図3】本発明の不揮発性記憶装置に使用する不揮発性メモリの多値メモリセルの物理ページ対応図
【図4】本発明の不揮発性記憶装置に使用する不揮発性メモリの共有する物理ページを示した図
【図5】本発明の不揮発性記憶装置におけるデータ書き込み時のフローチャート
【図6】本発明の不揮発性記憶装置に使用する不揮発性メモリにおける書き込み先となる物理ブロックの状態を示した図
【図7】本発明の不揮発性記憶装置に使用する不揮発性メモリにおけるデータのバックアップを示した図
【図8】本発明の不揮発性記憶装置に使用する不揮発性メモリにおけるホストデータの書き込みを示した図
【図9】本発明の不揮発性記憶装置におけるブロック状態確認のフローチャート
【図10】本発明の不揮発性記憶装置に使用する不揮発性メモリにおけるリカバリ処理の書き込みを示した図
【発明を実施するための形態】
【0013】
図面を参照して本発明に係わる不揮発性記憶装置について説明する。
【0014】
図1に本発明の不揮発性記憶装置の構成を示す。本発明の不揮発性記憶装置は、コントローラ101、フラッシュメモリ102で構成されるメモリカードとホスト機器103で構成される。
【0015】
コントローラ101は不揮発性メモリに対してデータの書き込み・消去や読み出しの制御を行う。
【0016】
フラッシュメモリ102は多値メモリセルをNANDタイプに接続した不揮発性メモリである。
【0017】
ホスト機器103はメモリーカードに対してデータの書き込みや読み出しを行う。
【0018】
コントローラ101は、制御部104、ホストI/F105、フラッシュメモリI/F106、バッファ107で構成される。
【0019】
制御部104はコントローラ101内部の制御を司る。
【0020】
ホストI/F105はコントローラ101内部においてホスト機器103とのI/Fを制御する。
【0021】
フラッシュメモリI/F106はコントローラ101内部においてフラッシュメモリ102とのI/Fを制御する。
【0022】
バッファ107はホストI/F105とフラッシュメモリI/F106の間にあり、ホスト機器103からフラッシュメモリ102に書き込むデータおよびフラッシュメモリ102からホスト機器103へ読み出すデータを一時的に格納する。
【0023】
制御部104はコントローラ101内部のホストI/F105やフラッシュメモリI/F106を制御する。
【0024】
コントローラ101は、フラッシュメモリ102へデータを書き込むための書き込み機能108と、フラッシュメモリからデータを読み出すための読み出し機能109と、フラッシュメモリ102に対して書き込みを行う際にバックアップの要否を判定するバックアップ判定機能110と、バックアップが必要なデータを口述するバックアップブロックに対してコピーするバックアップ機能111と、電源投入時にフラッシュメモリ102に対する書き込みの異常を検出する異常判定機能112と、異常が発生したデータを正しくリカバリするリカバリ機能113を備える。
【0025】
また、図1には示していないが、コントローラ101にはフラッシュメモリで発生するビットエラーを検出および訂正する誤り訂正機能を備えている。またその誤り訂正機能を使用し、フラッシュメモリ102への書き込み途中の電源遮断に起因して書き込みデータが不正になってしまった場合に、誤り訂正が出来ないことを持って、その電源遮断等の異常を検出することが可能である。
【0026】
図2にフラッシュメモリ102の内部におけるメモリセルアレイの構成を示す。
【0027】
フラッシュメモリ102は複数の物理ブロックからなる。ここでは物理ブロックはブロック0〜ブロック1023からなるとする。物理ブロックはフラッシュメモリ102におけるデータの消去単位である。それぞれの物理ブロックは複数の物理ページからなる。ここでは物理ページはページ0〜ページ127からなるとする。物理ページはフラッシュメモリ102におけるデータの書き込み単位である。また、一般的なNANDタイプのフラッシュメモリにおいては同一の物理ブロックにおけるデータの書き込みについては物理ページの順番に書き込みを行わなければならないという制限があり、ここでもその制約を守る。
【0028】
図3に物理ブロックに属する多値メモリセルのNAND接続の状態とビット線1本
分だけ図示し、それぞれの多値メモリセルに対応するページを示したものである。物理ブロックは図3に示したものを物理ページの容量分の本数を横に並べたものになる。それぞれの多値メモリセルにはその多値メモリセルに対応した物理ページの番号を右側に記載している。多値メモリセルであるので、メモリセル1にはページ0とページ2、メモリセル2にはページ1とページ4というように、各メモリセルには複数のページが割り当てられる。それぞれの多値メモリセルに対して最初に書き込みを行うページを第1ページ、後で書き込みを行うページを第2ページとしてそれぞれの多値メモリセルに対応する物理ページは第1ページのグループと第2ページのグループとに分けられる。
【0029】
図4には、物理ブロックにおける物理ページの構成を、物理ページ番号と多値メモリセルの共有するページの関係が分かるように示した図である。図の左側に示した数字が物理ページの番号である。上から順に0から127まで並んでいるので、この図に示した物理ブロックに対してデータを書き込む際には上から順にデータを書き込む必要がある。図の右側には、メモリセルを共有するページを矢印線で示している。物理ページ0と物理ページ2とがメモリセルを共有するページである。
【0030】
以上を踏まえて、図5にコントローラ101がホスト機器103からのデータ書き込みのコマンドを受けてフラッシュメモリ102にデータを書き込む際の処理のフローチャートを示す。最初に処理501ではホスト機器103からのデータの書き込みに伴い書き込みが必要となるフラッシュメモリ102の物理ブロックと物理ページを決定する。この際のフラッシュメモリ102への書き込みはホスト機器103からのデータをそのまま書き込む場合もあるし、ホスト機器103からのデータを書き込むために別のデータをコピーする場合もある。
【0031】
次に、判定502では処理501で決定した物理ブロックの物理ページにデータを書き込む際に、既に書き込みを行ったデータを破壊する可能性があるかどうかをバックアップ判定機能110で判定する。この時の判定の詳細を、図6を用いて説明する。
【0032】
図6は、処理501で決定した物理ブロックを書き込み先物理ブロックとして示している。物理ページ番号は図示していないが上から順にインクリメントされる値である。ハッチングを施した領域が既にデータを書き込み済みの物理ページであり、有効なデータが書き込まれている。ハッチングを施していない領域が未書き込みの物理ページである。右側に示した矢印線は図4で使用したときと同様に多値メモリセルを共有するページの関係を示している。物理ページ601と物理ページ603が、物理ページ602と物理ページ604とが多値メモリセルを共有するページである。いま、未書き込みの物理ページの一番上のページから書き込むとする。そうすると太枠で示した既書き込みの物理ページのうちの一番下の物理ページ603と、下から3番目の物理ページ601はこれから書き込みを行う物理ページとメモリセルを共有する物理ページであると判定できる。なお、ここではバックアップブロックは使用しないが、書き込み先物理ブロックと同様にフラッシュメモリ102内の物理ブロックをデータのバックアップの専用のための物理ブロックとして管理しているブロックのことである。
【0033】
図6のような状態の場合、データの書き込み中の電源遮断が発生することによって物理ページ601や物理ページ602のデータが破壊される可能性がある。従って判定502ではバックアップ判定機能110によって破壊の可能性があるページが存在すると判定し、処理503へと遷移する。
【0034】
処理503ではバックアップ機能111により、破壊可能性のある物理ページのデータを一旦バックアップする。この時の処理の詳細を、図7を用いて説明する。
【0035】
図7は、処理503でのデータのバックアップについて示している。判定502でバックアップ機能111によってバックアップが必要と判定した物理ページ601および物理ページ602に、既に書き込まれているデータをそれぞれ読み出して、バックアップブロックの未書き込みの物理ページの中で一番若い物理ページ番号から順に物理ページ701と物理ページ702に書き込むことでデータのバックアップを行う。バックアップブロックに書き込むデータは、破壊の可能性のあるデータを一時的にバックアップし、そのバックアップの手法も、元のデータを消去してバックアップするのではなく、元のデータを残したまま電源遮断等の異常発生時に備えてバックアップするので、異常が発生しなければバックアップしたデータは不要である。そして、後述するが異常が発生した場合には、まず異常の解消処理をおこなう。そのため、バックアップブロックの既に書き込み済みのデータは既に不要となった以前のバックアップデータであり、今回のデータのバックアップで破壊されても問題ない。バックアップブロックにある既書き込みのデータは、既書き込みの無効データであるといえる。従って、バックアップブロックは多値メモリセルを多値メモリセルとして使用して問題ない。
【0036】
処理503でデータのバックアップを行った後は、処理504へ遷移する。
【0037】
処理504では、書き込み機能108でホスト機器103からの書き込みデータを、物理ページ603から順に書き込む。もしくはホスト機器103からの書き込みデータを書き込むための事前のデータのコピーの書き込み先として物理ページ603から順に書き込む。この時の処理の詳細を、図8を用いて説明する。
【0038】
図8は、処理504でのデータの書き込みについて示している。ホスト機器103からの書き込みデータを、未書き込みの物理ページの先頭である物理ページ603から順に書き込む。データを全て正常に書き終えた後で、図示していないが、書き込み先物理ブロックのどの物理ページまでデータを書き込んだかを、フラッシュメモリ101のテーブル情報を記録する物理ブロックに記録しておく。
【0039】
図8においてバックアップブロックの物理ページ701および物理ページ702を含んで旧バックアップデータと記しているが、これはホストデータの書き込み処理を全て正常に終えてテーブル情報を記録した後の段階の状態である。テーブル情報の記録が正しく終了した段階で、処理503でバックアップしたデータは無効データとなる。
【0040】
なお、テーブル情報を記録する物理ブロックは電源遮断等でデータが異常とならないように、2値情報として書き込む、または多重化することでテーブル情報を保護する必要がある。
【0041】
処理504が終われば、判定505へと遷移し、未書き込みのデータがあるかどうかを判定し、未書き込みのデータがある場合には処理501へと遷移して処理を継続する。未書き込みのデータがなければ処理を終了する。
【0042】
図5のフローチャートにおける処理501〜処理504までの処理において、書き込み先物理ブロックに対しての書き込みが行われるのは処理504であり、それまでは書き込み先物理ブロックの既書き込みの有効なデータが破壊されることはないといえる。また、既書き込み先物理ブロックの既書き込みの有効なデータが、書き込み中の電源遮断により破壊される場合には処理503で該データのバックアップが行われる。
【0043】
従って、図5のフローチャートに従ってデータを書き込む際に、その書き込み中の電源遮断によって、既書き込みの有効なデータが破壊されることを回避することが出来る。
【0044】
処理504の書き込み途中で電源遮断が発生した後の電源再投入後に、コントローラ101ではまずフラッシュメモリ102からテーブル情報を読み出して、書き込み先物理ブロックのどの物理ページまでデータが書き込まれているかの情報を得る。
【0045】
テーブル情報を得た後ブロック状態確認の処理のフローを図9に示す。最初に処理901では既書き込みデータの確認を行う。この処理は、テーブル情報に書かれている「書き込み先物理ブロックのどの物理ページまでデータが書き込まれているか」の情報が正しいかどうかを確認する処理であり、データが書き込まれているはずの物理ページの次の物理ページを読み出す。
【0046】
次に判定902では異常判定機能112で異常の有無を判定する。正しくデータが書き込まれ、正しくテーブル情報が更新された後であれば、処理901で読み出した物理ページのデータは未書き込みの状態であるはずである。その場合には正しい状態としてブロック状態確認の処理を終了する。未書き込みの状態でない場合には、なんらかの書き込みが行われているが、最終的にテーブル情報を更新する前に電源遮断がされている、即ち異常な状態であると判定し、処理903へと遷移する。
【0047】
処理903ではバックアップデータからのリカバリ処理を行う。この時の処理の詳細を、図10を用いて説明する。
【0048】
図10は処理504でのホストデータの書き込みにおいて、全てのホストデータを書き終える前の書き込み中に電源遮断が発生した状態の書き込み先物理ブロックが左側に示している。具体的には斜線のパターンで示した物理ページ604を書き込み途中の電源遮断である。物理ページ604を書き込み中に電源が遮断されると、物理ページ604と多値メモリセルを共有し、同じく斜線のパターンで示した物理ページ602のデータが破壊される場合がある。この場合にはバックアップブロックにバックアップしたデータを使用して状態をリカバリする必要がある。新たに消去済みの物理ブロックを新書き込み物理ブロックとして定義する。書き込み先物理ブロックの書き込み済みの物理ページのデータのうち、バックアップブロックにバックアップした物理ページのデータを除いた物理ページと、バックアップブロックにバックアップしている物理ページのデータとを、新書き込み先物理ブロックにコピーする。そして新書き込み先物理ブロックを書き込み先物理ブロックと定義しなおしてテーブル情報を更新する。
【0049】
以上のリカバリ処理を行うことにより、多値メモリセルへのデータ書き込み中に発声する共有ページのデータ破壊をリカバリして、書き込み先物理ブロックの状態として、電源遮断が発生したホストデータの書き込みを行う前の状態に戻すことが出来る。
【0050】
なお、ここでは異常判定機能112はテーブル情報と実際の物理ページへの書き込み状態で判定しているが、誤り訂正が不可能な物理ページが存在するかどうかで判定してもよい。
【産業上の利用可能性】
【0051】
本発明にかかる不揮発性記憶装置、不揮発性メモリコントローラは、多値NANDフラッシュメモリのように、各メモリセルが複数のページに跨ってデータを保持する不揮発性メモリを使用した装置において、信頼性を向上させることができる。本発明は、静止画記録再生装置や動画記録再生装置等のポータブルAV機器、あるいは携帯電話等のポータブル通信機器の記録媒体に適用することができる。
【符号の説明】
【0052】
101 コントローラ
102 フラッシュメモリ
103 ホスト機器
104 制御部
105 ホストI/F
106 フラッシュメモリI/F
107 バッファ
108 書き込み機能
109 読み出し機能
110 バックアップ判定機能
111 バックアップ機能
112 異常判定機能
113 リカバリ機能
【特許請求の範囲】
【請求項1】
不揮発性メモリに対してデータの書き込みおよび読み出しを行う不揮発性メモリコントローラであり、
前記不揮発性メモリは
複数のメモリセルブロックを有し、
前記メモリセルブロックはm(mは2以上の自然数)ビットのデータを記憶可能に構成された複数の多値メモリセルからなり、
前記多値メモリセルのmビットのデータは順に第1ページから第mページに割り当てられ、
前記不揮発性メモリコントローラは
不揮発性メモリコントローラ外部からの書き込みコマンドの発行毎に、前記不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、前記書き込み先物理アドレスが前記第n(nは2以上かつm以下の自然数)ページでありかつ対応する第1〜(n−1)ページに既書き込みのデータが存在する場合に、前記既書き込みデータを不揮発で記憶可能なバックアップ領域にコピーするバックアップ機能を備えた
ことを特徴とする不揮発性メモリコントローラ。
【請求項2】
前記不揮発性メモリコントローラはさらに、前記バックアップ機能によるバックアップ領域へのコピーの後に、前記書き込み先物理アドレスに、前記不揮発性メモリコントローラ外部からの書き込みデータを書き込み、さらにその後、書き込みを終えたことをテーブル領域に記録することを特徴とする
請求項1に記載の不揮発性メモリコントローラ
【請求項3】
前記不揮発性メモリコントローラはさらに、前記バックアップしたデータをリカバリするリカバリ機能を備えたことを特徴とする
請求項2に記載の不揮発性メモリコントローラ
【請求項4】
前記不揮発性メモリコントローラはさらに、前記テーブル領域の情報と前記書き込み先物理アドレスの状態とを比較することで、前記不揮発性メモリに対する書き込み中の異常を検出する異常判定機能を備えたことを特徴とする
請求項3に記載の不揮発性メモリコントローラ
【請求項5】
前記バックアップ領域を前記不揮発メモリ内に設けたことを特徴とする
請求項1〜4に記載の不揮発性メモリコントローラ
【請求項6】
前記テーブル領域を前記不揮発メモリ内に設けたことを特徴とする
請求項2〜4に記載の不揮発性メモリコントローラ
【請求項7】
請求項1〜6に記載の不揮発性メモリコントローラと不揮発性メモリからなり、
不揮発性メモリコントローラ外部のホスト機器よりアドレスを指定したコマンドによりデータの書き込み及び読み出しが可能なことを特徴とする
不揮発性記憶装置
【請求項8】
前記m=n=2であることを特徴とする
請求項7に記載の不揮発性記憶装置
【請求項1】
不揮発性メモリに対してデータの書き込みおよび読み出しを行う不揮発性メモリコントローラであり、
前記不揮発性メモリは
複数のメモリセルブロックを有し、
前記メモリセルブロックはm(mは2以上の自然数)ビットのデータを記憶可能に構成された複数の多値メモリセルからなり、
前記多値メモリセルのmビットのデータは順に第1ページから第mページに割り当てられ、
前記不揮発性メモリコントローラは
不揮発性メモリコントローラ外部からの書き込みコマンドの発行毎に、前記不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、前記書き込み先物理アドレスが前記第n(nは2以上かつm以下の自然数)ページでありかつ対応する第1〜(n−1)ページに既書き込みのデータが存在する場合に、前記既書き込みデータを不揮発で記憶可能なバックアップ領域にコピーするバックアップ機能を備えた
ことを特徴とする不揮発性メモリコントローラ。
【請求項2】
前記不揮発性メモリコントローラはさらに、前記バックアップ機能によるバックアップ領域へのコピーの後に、前記書き込み先物理アドレスに、前記不揮発性メモリコントローラ外部からの書き込みデータを書き込み、さらにその後、書き込みを終えたことをテーブル領域に記録することを特徴とする
請求項1に記載の不揮発性メモリコントローラ
【請求項3】
前記不揮発性メモリコントローラはさらに、前記バックアップしたデータをリカバリするリカバリ機能を備えたことを特徴とする
請求項2に記載の不揮発性メモリコントローラ
【請求項4】
前記不揮発性メモリコントローラはさらに、前記テーブル領域の情報と前記書き込み先物理アドレスの状態とを比較することで、前記不揮発性メモリに対する書き込み中の異常を検出する異常判定機能を備えたことを特徴とする
請求項3に記載の不揮発性メモリコントローラ
【請求項5】
前記バックアップ領域を前記不揮発メモリ内に設けたことを特徴とする
請求項1〜4に記載の不揮発性メモリコントローラ
【請求項6】
前記テーブル領域を前記不揮発メモリ内に設けたことを特徴とする
請求項2〜4に記載の不揮発性メモリコントローラ
【請求項7】
請求項1〜6に記載の不揮発性メモリコントローラと不揮発性メモリからなり、
不揮発性メモリコントローラ外部のホスト機器よりアドレスを指定したコマンドによりデータの書き込み及び読み出しが可能なことを特徴とする
不揮発性記憶装置
【請求項8】
前記m=n=2であることを特徴とする
請求項7に記載の不揮発性記憶装置
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2011−48725(P2011−48725A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−197826(P2009−197826)
【出願日】平成21年8月28日(2009.8.28)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願日】平成21年8月28日(2009.8.28)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
[ Back to top ]