(57)【要約】【課題】多値メモリセルによって構成される不揮発性メモリを使用したメモリーカードに対してデータを書き込む際に、電源遮断が発生した場合、書き込み先のページとメモリセルを共有する、既にデータが書き込み済みのページのデータが破壊される可能性がある。このことが、メモリーカードのデータ信頼性を低下させる要因となっている。【解決手段】外部からの書き込みコマンドの発行毎に、多値メモリセルによって構成される不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、書き込み先物理アドレスが第ｎページでありかつ対応する第１〜（ｎ−１）ページに既書き込みのデータが存在する場合に、前記既書き込みデータを不揮発で記憶可能なバックアップ領域にコピーする。【選択図】図１
2011048725.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに対してデータの書き込みおよび読み出しを行う不揮発性メモリコントローラであり、
前記不揮発性メモリは
複数のメモリセルブロックを有し、
前記メモリセルブロックはｍ（ｍは２以上の自然数）ビットのデータを記憶可能に構成された複数の多値メモリセルからなり、
前記多値メモリセルのｍビットのデータは順に第１ページから第ｍページに割り当てられ、
前記不揮発性メモリコントローラは
不揮発性メモリコントローラ外部からの書き込みコマンドの発行毎に、前記不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、前記書き込み先物理アドレスが前記第ｎ（ｎは２以上かつｍ以下の自然数）ページでありかつ対応する第１〜（ｎ−１）ページに既書き込みのデータが存在する場合に、前記既書き込みデータを不揮発で記憶可能なバックアップ領域にコピーするバックアップ機能を備えた
ことを特徴とする不揮発性メモリコントローラ。
【請求項２】
前記不揮発性メモリコントローラはさらに、前記バックアップ機能によるバックアップ領域へのコピーの後に、前記書き込み先物理アドレスに、前記不揮発性メモリコントローラ外部からの書き込みデータを書き込み、さらにその後、書き込みを終えたことをテーブル領域に記録することを特徴とする
請求項１に記載の不揮発性メモリコントローラ
【請求項３】
前記不揮発性メモリコントローラはさらに、前記バックアップしたデータをリカバリするリカバリ機能を備えたことを特徴とする
請求項２に記載の不揮発性メモリコントローラ
【請求項４】
前記不揮発性メモリコントローラはさらに、前記テーブル領域の情報と前記書き込み先物理アドレスの状態とを比較することで、前記不揮発性メモリに対する書き込み中の異常を検出する異常判定機能を備えたことを特徴とする
請求項３に記載の不揮発性メモリコントローラ
【請求項５】
前記バックアップ領域を前記不揮発メモリ内に設けたことを特徴とする
請求項１〜４に記載の不揮発性メモリコントローラ
【請求項６】
前記テーブル領域を前記不揮発メモリ内に設けたことを特徴とする
請求項２〜４に記載の不揮発性メモリコントローラ
【請求項７】
請求項１〜６に記載の不揮発性メモリコントローラと不揮発性メモリからなり、
不揮発性メモリコントローラ外部のホスト機器よりアドレスを指定したコマンドによりデータの書き込み及び読み出しが可能なことを特徴とする
不揮発性記憶装置
【請求項８】
前記ｍ＝ｎ＝２であることを特徴とする
請求項７に記載の不揮発性記憶装置
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、1つのメモリセルに２ビット以上の情報を格納可能な不揮発性メモリを使用した不揮発性記憶装置に関する。
【背景技術】
【０００２】
近年、不揮発性メモリを搭載したメモリーカードはデジタルカメラや携帯電話のメモリーカードとして市場を拡大している。メモリーカードはデジタルカメラの高画素化や、携帯電話での動画記録等の用途へ向けてとさらなる高容量化の拡がりを見せている。そのために不揮発性メモリを高容量化させる手段としてメモリセルの多値化が進められている。メモリセルを多値化することにより、例えばひとつのメモリセルに２ビットの情報を保持できるようにする（以下、この２つのビットのことを、「メモリセルを共有するビット」と表現する）ことで、同じ数のメモリセルで容量を倍にすることができる。
【０００３】
しかしながらメモリセルへの書き込みは１ビットずつ行われるために、先に書いた１ビットの情報は、後でメモリセルを共有するビットに対してデータを書き込む際の電源遮断等によって破壊されることがある。
【０００４】
上記電源遮断によるデータの破壊を防止するために特許文献１に示されるように、多値メモリセルを2値メモリセルのようにして使用するブロックを導入することで、書き込みデータを一旦２値メモリとして使用するブロックに書き込んでおき、正常に書き込みを終えた後に多値メモリとしてのブロックにコピーするという方法でデータを保護する技術がある。
【０００５】
また、特許文献２に示されるように、電源が投入されたことやＦＡＴの書き込みを検出することで、既に書き込み済みのデータとメモリセルを共有するビットには新たに書き込みを行わない制御をすることでデータを保護する技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２２１７４３号公報
【特許文献２】特開２００６−１９５５６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に示され方法では、必ず２値として書き込んだ後に、データをコピーして多値の状態に書き込むために、書き込みを行うデータサイズとして2倍、書き込みを行うブロックとして３倍のブロックを消費することとなり、そのことがフラッシュメモリの書き込み性能の低下や、エンデュランス特性の劣化につながる。
【０００８】
また特許文献２に示される方法では、特許文献１で発生するような性能の低下や特性の劣化は発生しないが、電源投入後には電源投入前に書き込んだデータに対してメモリセル共有に起因するデータの破壊は発生しないが、書き込み中のメモリセル共有に起因するデータの破壊を本質的に回避できる対策とはなっていないという課題がある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の不揮発性メモリコントローラは、複数のメモリセルブロックを有し、前記メモリセルブロックはｍ（ｍは２以上の自然数）ビットのデータを記憶可能に構成された複数の多値メモリセルからなり、前記多値メモリセルのｍビットのデータは順に第１ページから第ｍページに割り当てられた不揮発性メモリに対してデータの書き込みおよび読み出しを行い、不揮発性メモリコントローラ外部からの書き込みコマンドの発行毎に、前記不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、前記書き込み先物理アドレスが前記第ｎ（ｎは２以上かつｍ以下の自然数）ページでありかつ対応する第１〜（ｎ−１）ページに既書き込みのデータが存在する場合に、前記既書き込みデータを不揮発で記憶可能なバックアップ領域にコピーするバックアップ機能を備える。
【００１０】
また、本発明の不揮発性記憶装置は、外部よりアドレスを指定したコマンドによりデータの書き込み及び読み出しが可能で、不揮発性メモリとコントローラからなり、前記不揮発性メモリは、複数のメモリセルブロックを有し、前記メモリセルブロックはｍ（ｍは２以上の自然数）ビットのデータを記憶可能に構成された複数の多値メモリセルからなり、前記多値メモリセルのｍビットのデータは順に第１ページから第ｍページに割り当てられ、前記コントローラは、前記外部からの書き込みコマンドの発行毎に、前記不揮発性メモリにおけるデータの書き込み先物理アドレスを決定し、前記書き込み先物理アドレスが前記第ｎ（ｎは２以上かつｍ以下の自然数）ページでありかつ対応する第１〜（ｎ−１）ページに既書き込みのデータが存在する場合に、前記既書き込みデータをバックアップ領域にコピーする。
【発明の効果】
【００１１】
本発明によれば、多値メモリセルで構成される不揮発性メモリに対するデータの書き込みにおいて、メモリセルの共有に起因する書き込み時の電源遮断時の異常発生を回避することができ、不揮発性記憶装置に対するデータの信頼性を向上させることが出来る。
【図面の簡単な説明】
【００１２】
【図１】本発明の不揮発性記憶装置の構成図
【図２】本発明の不揮発性記憶装置に使用する不揮発性メモリのメモリセルアレイの構成図
【図３】本発明の不揮発性記憶装置に使用する不揮発性メモリの多値メモリセルの物理ページ対応図
【図４】本発明の不揮発性記憶装置に使用する不揮発性メモリの共有する物理ページを示した図
【図５】本発明の不揮発性記憶装置におけるデータ書き込み時のフローチャート
【図６】本発明の不揮発性記憶装置に使用する不揮発性メモリにおける書き込み先となる物理ブロックの状態を示した図
【図７】本発明の不揮発性記憶装置に使用する不揮発性メモリにおけるデータのバックアップを示した図
【図８】本発明の不揮発性記憶装置に使用する不揮発性メモリにおけるホストデータの書き込みを示した図
【図９】本発明の不揮発性記憶装置におけるブロック状態確認のフローチャート
【図１０】本発明の不揮発性記憶装置に使用する不揮発性メモリにおけるリカバリ処理の書き込みを示した図
【発明を実施するための形態】
【００１３】
図面を参照して本発明に係わる不揮発性記憶装置について説明する。
【００１４】
図１に本発明の不揮発性記憶装置の構成を示す。本発明の不揮発性記憶装置は、コントローラ１０１、フラッシュメモリ１０２で構成されるメモリカードとホスト機器１０３で構成される。
【００１５】
コントローラ１０１は不揮発性メモリに対してデータの書き込み・消去や読み出しの制御を行う。
【００１６】
フラッシュメモリ１０２は多値メモリセルをＮＡＮＤタイプに接続した不揮発性メモリである。
【００１７】
ホスト機器１０３はメモリーカードに対してデータの書き込みや読み出しを行う。
【００１８】
コントローラ１０１は、制御部１０４、ホストＩ／Ｆ１０５、フラッシュメモリＩ／Ｆ１０６、バッファ１０７で構成される。
【００１９】
制御部１０４はコントローラ１０１内部の制御を司る。
【００２０】
ホストＩ／Ｆ１０５はコントローラ１０１内部においてホスト機器１０３とのＩ／Ｆを制御する。
【００２１】
フラッシュメモリＩ／Ｆ１０６はコントローラ１０１内部においてフラッシュメモリ１０２とのＩ／Ｆを制御する。
【００２２】
バッファ１０７はホストＩ／Ｆ１０５とフラッシュメモリＩ／Ｆ１０６の間にあり、ホスト機器１０３からフラッシュメモリ１０２に書き込むデータおよびフラッシュメモリ１０２からホスト機器１０３へ読み出すデータを一時的に格納する。
【００２３】
制御部１０４はコントローラ１０１内部のホストＩ／Ｆ１０５やフラッシュメモリＩ／Ｆ１０６を制御する。
【００２４】
コントローラ１０１は、フラッシュメモリ１０２へデータを書き込むための書き込み機能１０８と、フラッシュメモリからデータを読み出すための読み出し機能１０９と、フラッシュメモリ１０２に対して書き込みを行う際にバックアップの要否を判定するバックアップ判定機能１１０と、バックアップが必要なデータを口述するバックアップブロックに対してコピーするバックアップ機能１１１と、電源投入時にフラッシュメモリ１０２に対する書き込みの異常を検出する異常判定機能１１２と、異常が発生したデータを正しくリカバリするリカバリ機能１１３を備える。
【００２５】
また、図１には示していないが、コントローラ１０１にはフラッシュメモリで発生するビットエラーを検出および訂正する誤り訂正機能を備えている。またその誤り訂正機能を使用し、フラッシュメモリ１０２への書き込み途中の電源遮断に起因して書き込みデータが不正になってしまった場合に、誤り訂正が出来ないことを持って、その電源遮断等の異常を検出することが可能である。
【００２６】
図２にフラッシュメモリ１０２の内部におけるメモリセルアレイの構成を示す。
【００２７】
フラッシュメモリ１０２は複数の物理ブロックからなる。ここでは物理ブロックはブロック０〜ブロック１０２３からなるとする。物理ブロックはフラッシュメモリ１０２におけるデータの消去単位である。それぞれの物理ブロックは複数の物理ページからなる。ここでは物理ページはページ０〜ページ１２７からなるとする。物理ページはフラッシュメモリ１０２におけるデータの書き込み単位である。また、一般的なＮＡＮＤタイプのフラッシュメモリにおいては同一の物理ブロックにおけるデータの書き込みについては物理ページの順番に書き込みを行わなければならないという制限があり、ここでもその制約を守る。
【００２８】
図３に物理ブロックに属する多値メモリセルのＮＡＮＤ接続の状態とビット線1本
分だけ図示し、それぞれの多値メモリセルに対応するページを示したものである。物理ブロックは図３に示したものを物理ページの容量分の本数を横に並べたものになる。それぞれの多値メモリセルにはその多値メモリセルに対応した物理ページの番号を右側に記載している。多値メモリセルであるので、メモリセル１にはページ０とページ２、メモリセル２にはページ１とページ４というように、各メモリセルには複数のページが割り当てられる。それぞれの多値メモリセルに対して最初に書き込みを行うページを第１ページ、後で書き込みを行うページを第２ページとしてそれぞれの多値メモリセルに対応する物理ページは第１ページのグループと第２ページのグループとに分けられる。
【００２９】
図４には、物理ブロックにおける物理ページの構成を、物理ページ番号と多値メモリセルの共有するページの関係が分かるように示した図である。図の左側に示した数字が物理ページの番号である。上から順に０から１２７まで並んでいるので、この図に示した物理ブロックに対してデータを書き込む際には上から順にデータを書き込む必要がある。図の右側には、メモリセルを共有するページを矢印線で示している。物理ページ０と物理ページ２とがメモリセルを共有するページである。
【００３０】
以上を踏まえて、図５にコントローラ１０１がホスト機器１０３からのデータ書き込みのコマンドを受けてフラッシュメモリ１０２にデータを書き込む際の処理のフローチャートを示す。最初に処理５０１ではホスト機器１０３からのデータの書き込みに伴い書き込みが必要となるフラッシュメモリ１０２の物理ブロックと物理ページを決定する。この際のフラッシュメモリ１０２への書き込みはホスト機器１０３からのデータをそのまま書き込む場合もあるし、ホスト機器１０３からのデータを書き込むために別のデータをコピーする場合もある。
【００３１】
次に、判定５０２では処理５０１で決定した物理ブロックの物理ページにデータを書き込む際に、既に書き込みを行ったデータを破壊する可能性があるかどうかをバックアップ判定機能１１０で判定する。この時の判定の詳細を、図６を用いて説明する。
【００３２】
図６は、処理５０１で決定した物理ブロックを書き込み先物理ブロックとして示している。物理ページ番号は図示していないが上から順にインクリメントされる値である。ハッチングを施した領域が既にデータを書き込み済みの物理ページであり、有効なデータが書き込まれている。ハッチングを施していない領域が未書き込みの物理ページである。右側に示した矢印線は図４で使用したときと同様に多値メモリセルを共有するページの関係を示している。物理ページ６０１と物理ページ６０３が、物理ページ６０２と物理ページ６０４とが多値メモリセルを共有するページである。いま、未書き込みの物理ページの一番上のページから書き込むとする。そうすると太枠で示した既書き込みの物理ページのうちの一番下の物理ページ６０３と、下から３番目の物理ページ６０１はこれから書き込みを行う物理ページとメモリセルを共有する物理ページであると判定できる。なお、ここではバックアップブロックは使用しないが、書き込み先物理ブロックと同様にフラッシュメモリ１０２内の物理ブロックをデータのバックアップの専用のための物理ブロックとして管理しているブロックのことである。
【００３３】
図６のような状態の場合、データの書き込み中の電源遮断が発生することによって物理ページ６０１や物理ページ６０２のデータが破壊される可能性がある。従って判定５０２ではバックアップ判定機能１１０によって破壊の可能性があるページが存在すると判定し、処理５０３へと遷移する。
【００３４】
処理５０３ではバックアップ機能１１１により、破壊可能性のある物理ページのデータを一旦バックアップする。この時の処理の詳細を、図７を用いて説明する。
【００３５】
図７は、処理５０３でのデータのバックアップについて示している。判定５０２でバックアップ機能１１１によってバックアップが必要と判定した物理ページ６０１および物理ページ６０２に、既に書き込まれているデータをそれぞれ読み出して、バックアップブロックの未書き込みの物理ページの中で一番若い物理ページ番号から順に物理ページ７０１と物理ページ７０２に書き込むことでデータのバックアップを行う。バックアップブロックに書き込むデータは、破壊の可能性のあるデータを一時的にバックアップし、そのバックアップの手法も、元のデータを消去してバックアップするのではなく、元のデータを残したまま電源遮断等の異常発生時に備えてバックアップするので、異常が発生しなければバックアップしたデータは不要である。そして、後述するが異常が発生した場合には、まず異常の解消処理をおこなう。そのため、バックアップブロックの既に書き込み済みのデータは既に不要となった以前のバックアップデータであり、今回のデータのバックアップで破壊されても問題ない。バックアップブロックにある既書き込みのデータは、既書き込みの無効データであるといえる。従って、バックアップブロックは多値メモリセルを多値メモリセルとして使用して問題ない。
【００３６】
処理５０３でデータのバックアップを行った後は、処理５０４へ遷移する。
【００３７】
処理５０４では、書き込み機能１０８でホスト機器１０３からの書き込みデータを、物理ページ６０３から順に書き込む。もしくはホスト機器１０３からの書き込みデータを書き込むための事前のデータのコピーの書き込み先として物理ページ６０３から順に書き込む。この時の処理の詳細を、図８を用いて説明する。
【００３８】
図８は、処理５０４でのデータの書き込みについて示している。ホスト機器１０３からの書き込みデータを、未書き込みの物理ページの先頭である物理ページ６０３から順に書き込む。データを全て正常に書き終えた後で、図示していないが、書き込み先物理ブロックのどの物理ページまでデータを書き込んだかを、フラッシュメモリ１０１のテーブル情報を記録する物理ブロックに記録しておく。
【００３９】
図８においてバックアップブロックの物理ページ７０１および物理ページ７０２を含んで旧バックアップデータと記しているが、これはホストデータの書き込み処理を全て正常に終えてテーブル情報を記録した後の段階の状態である。テーブル情報の記録が正しく終了した段階で、処理５０３でバックアップしたデータは無効データとなる。
【００４０】
なお、テーブル情報を記録する物理ブロックは電源遮断等でデータが異常とならないように、２値情報として書き込む、または多重化することでテーブル情報を保護する必要がある。
【００４１】
処理５０４が終われば、判定５０５へと遷移し、未書き込みのデータがあるかどうかを判定し、未書き込みのデータがある場合には処理５０１へと遷移して処理を継続する。未書き込みのデータがなければ処理を終了する。
【００４２】
図５のフローチャートにおける処理５０１〜処理５０４までの処理において、書き込み先物理ブロックに対しての書き込みが行われるのは処理５０４であり、それまでは書き込み先物理ブロックの既書き込みの有効なデータが破壊されることはないといえる。また、既書き込み先物理ブロックの既書き込みの有効なデータが、書き込み中の電源遮断により破壊される場合には処理５０３で該データのバックアップが行われる。
【００４３】
従って、図５のフローチャートに従ってデータを書き込む際に、その書き込み中の電源遮断によって、既書き込みの有効なデータが破壊されることを回避することが出来る。
【００４４】
処理５０４の書き込み途中で電源遮断が発生した後の電源再投入後に、コントローラ１０１ではまずフラッシュメモリ１０２からテーブル情報を読み出して、書き込み先物理ブロックのどの物理ページまでデータが書き込まれているかの情報を得る。
【００４５】
テーブル情報を得た後ブロック状態確認の処理のフローを図９に示す。最初に処理９０１では既書き込みデータの確認を行う。この処理は、テーブル情報に書かれている「書き込み先物理ブロックのどの物理ページまでデータが書き込まれているか」の情報が正しいかどうかを確認する処理であり、データが書き込まれているはずの物理ページの次の物理ページを読み出す。
【００４６】
次に判定９０２では異常判定機能１１２で異常の有無を判定する。正しくデータが書き込まれ、正しくテーブル情報が更新された後であれば、処理９０１で読み出した物理ページのデータは未書き込みの状態であるはずである。その場合には正しい状態としてブロック状態確認の処理を終了する。未書き込みの状態でない場合には、なんらかの書き込みが行われているが、最終的にテーブル情報を更新する前に電源遮断がされている、即ち異常な状態であると判定し、処理９０３へと遷移する。
【００４７】
処理９０３ではバックアップデータからのリカバリ処理を行う。この時の処理の詳細を、図１０を用いて説明する。
【００４８】
図１０は処理５０４でのホストデータの書き込みにおいて、全てのホストデータを書き終える前の書き込み中に電源遮断が発生した状態の書き込み先物理ブロックが左側に示している。具体的には斜線のパターンで示した物理ページ６０４を書き込み途中の電源遮断である。物理ページ６０４を書き込み中に電源が遮断されると、物理ページ６０４と多値メモリセルを共有し、同じく斜線のパターンで示した物理ページ６０２のデータが破壊される場合がある。この場合にはバックアップブロックにバックアップしたデータを使用して状態をリカバリする必要がある。新たに消去済みの物理ブロックを新書き込み物理ブロックとして定義する。書き込み先物理ブロックの書き込み済みの物理ページのデータのうち、バックアップブロックにバックアップした物理ページのデータを除いた物理ページと、バックアップブロックにバックアップしている物理ページのデータとを、新書き込み先物理ブロックにコピーする。そして新書き込み先物理ブロックを書き込み先物理ブロックと定義しなおしてテーブル情報を更新する。
【００４９】
以上のリカバリ処理を行うことにより、多値メモリセルへのデータ書き込み中に発声する共有ページのデータ破壊をリカバリして、書き込み先物理ブロックの状態として、電源遮断が発生したホストデータの書き込みを行う前の状態に戻すことが出来る。
【００５０】
なお、ここでは異常判定機能１１２はテーブル情報と実際の物理ページへの書き込み状態で判定しているが、誤り訂正が不可能な物理ページが存在するかどうかで判定してもよい。
【産業上の利用可能性】
【００５１】
本発明にかかる不揮発性記憶装置、不揮発性メモリコントローラは、多値ＮＡＮＤフラッシュメモリのように、各メモリセルが複数のページに跨ってデータを保持する不揮発性メモリを使用した装置において、信頼性を向上させることができる。本発明は、静止画記録再生装置や動画記録再生装置等のポータブルＡＶ機器、あるいは携帯電話等のポータブル通信機器の記録媒体に適用することができる。
【符号の説明】
【００５２】
１０１    コントローラ
１０２    フラッシュメモリ
１０３    ホスト機器
１０４    制御部
１０５    ホストＩ／Ｆ
１０６    フラッシュメモリＩ／Ｆ
１０７    バッファ
１０８    書き込み機能
１０９    読み出し機能
１１０    バックアップ判定機能
１１１    バックアップ機能
１１２    異常判定機能
１１３    リカバリ機能
【図１】
2011048725.tif 000003
【図２】
2011048725.tif 000004
【図３】
2011048725.tif 000005
【図４】
2011048725.tif 000006
【図５】
2011048725.tif 000007
【図６】
2011048725.tif 000008
【図７】
2011048725.tif 000009
【図８】
2011048725.tif 000010
【図９】
2011048725.tif 000011
【図１０】
2011048725.tif 000012