JPWO2004031966A1 - 不揮発性記憶装置の制御方法 - Google Patents

不揮発性記憶装置の制御方法 Download PDF

Info

Publication number
JPWO2004031966A1
JPWO2004031966A1 JP2004541247A JP2004541247A JPWO2004031966A1 JP WO2004031966 A1 JPWO2004031966 A1 JP WO2004031966A1 JP 2004541247 A JP2004541247 A JP 2004541247A JP 2004541247 A JP2004541247 A JP 2004541247A JP WO2004031966 A1 JPWO2004031966 A1 JP WO2004031966A1
Authority
JP
Japan
Prior art keywords
data
physical block
flag
written
erased
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004541247A
Other languages
English (en)
Other versions
JP4560408B2 (ja
Inventor
本多 利行
利行 本多
外山 昌之
昌之 外山
坂井 敬介
敬介 坂井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2004031966A1 publication Critical patent/JPWO2004031966A1/ja
Application granted granted Critical
Publication of JP4560408B2 publication Critical patent/JP4560408B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

データの書き込み中又は消去中に電源遮断等の異常が発生し処理が中断した場合であっても、次回起動後のデータ書き込みを正常に行える不揮発性記憶装置の制御方法を提供する。本発明の不揮発性記憶装置の制御方法は、複数の物理ブロックで構成される不揮発性メモリにデータを書き込むときに、物理ブロックの先頭ページの冗長領域にあり、その先頭ページにデータが書き込まれているか否かを示す第1のフラグに、データが書き込まれていることを示す固定値を書き込む第1のフラグ書き込みステップと、その物理ブロックにデータを書き込むデータ書き込みステップと、を有する。

Description

本発明は、不揮発性記憶装置の制御方法に関する。
近年、音楽データや映像データを取り扱う携帯機器の記憶装置として、データの書き換えが可能で、携帯性が高く、電池等によるバックアップが不要であるフラッシュメモリ等の不揮発性メモリを備えた不揮発性記憶装置(例えば、メモリカード)が使われるようになってきた。
図1〜4、図24及び図25を用いて、従来の不揮発性記憶装置の制御方法を説明する。図1は不揮発性記憶装置の構成を示すブロック図である。図1において、101は不揮発性記憶装置、102はホストである。不揮発性記憶装置101は、不揮発性メモリ103、コントローラ104、消去済みテーブル105、論理アドレス/物理アドレス変換テーブル106を有する。不揮発性メモリ103はフラッシュメモリである。ホスト102は不揮発性記憶装置101にデータの書き込み及び読み出し等を指令し、書き込むデータを伝送し、不揮発性記憶装置101から送られた読み出しデータを受け取る。不揮発性記憶装置101のコントローラ104は、ホスト102からの指令に基づいて、不揮発性メモリ103にデータを書き込むこと又は不揮発性メモリ103のデータを読み出すこと等の制御をする。
不揮発性メモリ103は複数の物理ブロックで構成される。図24を用いて、物理ブロックの構成を説明する。図24は従来例の不揮発性メモリ103の物理ブロックの構成を示す図である。物理ブロック501は、32ページで構成される。1ページの容量は528バイトであり、512バイトのデータ領域502と16バイトの冗長領域503とに区分される。データ領域502はホスト102から伝送されるデータを書き込む領域である。冗長領域503はデータ領域502のECC符号及びその物理ブロック501に対応する論理アドレス等の管理情報を書き込む領域である。1ページはデータの書き込み単位、読み出し単位である。データの書き込み時には、物理ブロックのページ0からページ31まで順にページ単位でデータを書き込む。消去済みのメモリに1を書き込む動作は、省略することができる。物理ブロック501はデータの消去単位であり、消去時には物理ブロックに含まれる32ページ全てを一度に消去する。不揮発性メモリ103のデータは、消去済みの状態において全てのビットが1である。
不揮発性記憶装置101の電源投入後、コントローラ104は消去済みテーブル105と論理アドレス/物理アドレス変換テーブル106とをRAMに生成する初期化処理を行う。
図2は消去済みテーブル105の構成を示す図である。消去済みテーブル105は、物理ブロックが消去済み(未書き込み)か否かを示すテーブルであって、各物理ブロックに1ビットのデータが対応付けられている。図2において、左欄が物理アドレス(不揮発性メモリ103の物理ブロックのアドレスを「物理アドレス」と呼ぶ。)であり、右欄が、1が「消去済み」を示し、0が「消去済みでないこと」を示すデータである。左欄の物理アドレスは説明のために記載したものであって、通常RAMに書き込まれない。通常、物理アドレスを所定の変換式でRAMのアドレスに変換し、そのRAMアドレスに消去済み(未書き込み)か否かを示すビットを書き込む。
例えば初期化処理時、物理アドレス0の物理ブロックの先頭ページの冗長領域503に値0のビットを含むデータが書き込まれている場合(先頭ページの冗長領域503の全ビットが1である場合以外の場合)、書き込み済みと判断して、物理アドレス0のデータに0を書き込む。物理アドレス1の物理ブロックの先頭ページの冗長領域503が全て1のデータである場合、消去済みと判断して、物理アドレス1のデータに1を書き込む。このようにして、最終物理アドレスまでの消去済みテーブル105を完成させる。
図3は論理アドレス/物理アドレス変換テーブル106の構成を示す図である。不揮発性メモリ103を用いた不揮発性記憶装置101において、ホスト102から指定されるアドレス(「論理アドレス」と呼ぶ。)と、不揮発性メモリ103内に配置されるアドレス(「物理アドレス」と呼ぶ。)は一般的に一致しない。一致させると、不揮発性メモリ内で不良が発生した物理アドレスを使用できないこと又はデータの書き換えに時間がかかること等によりアプリケーションに負担がかかるからである。又、特定アドレスに書き込みが頻発するシステムでは、その物理アドレスが短期間で書き換え保証回数(一般に不揮発性メモリの書き換え保証回数は制限される。)を上回り短寿命になってしまう、という不都合が生じるからである。不揮発性記憶装置101のコントローラ104は、ホスト102が指定した論理アドレスを物理アドレスに変換し、物理ブロックのデータ記録時に、冗長領域503にその物理アドレスに対応する論理アドレスを書き込む。一般的に先頭ページの冗長領域503に論理アドレスを書き込む。
不揮発性記憶装置101の電源投入後、コントローラ104は物理ブロックの冗長領域503に書き込まれている論理アドレスを読み出して、RAM上に論理アドレス/物理アドレス変換テーブル106を生成する。例えば物理アドレス0の物理ブロックの先頭ページにデータが有り、論理アドレスとして2が書き込まれている場合、論理アドレス/物理アドレス変換テーブル106の論理アドレス2に対応する物理アドレスに0を書き込む。物理アドレス2の物理ブロックの先頭ページにデータが有り、論理アドレスとして999が書き込まれている場合、論理アドレス/物理アドレス変換テーブル106の論理アドレス999に対応する物理アドレスに2を書き込む。対応する論理アドレスのデータが不揮発性メモリ103の中にない場合、例えば論理アドレスとして1が書き込まれた物理ブロックがない場合、論理アドレス/物理アドレス変換テーブル106の論理アドレス1に対応する物理アドレスに、データが存在しないことを示す値である1000を書き込む。
図4は従来の不揮発性記憶装置101の初期化処理のフローチャートである。ブロックカウンタに0(初期値)を設定する(ステップ401)。コントローラ104は、不揮発性メモリ103の読み出し対象である物理ブロックの先頭ページの冗長領域503を読み出す(ステップ402)。冗長領域503が消去済みか否か判断する(ステップ403)。冗長領域503が全て1のデータである場合は消去済み、値0のビットを含むデータが書き込まれている場合は書き込み済みと判断する。冗長領域503が消去済みであれば、消去済みテーブル105のその物理ブロック欄に1を書き込み、物理ブロックが消去済みであると登録する(ステップ404)。冗長領域503が消去済みでなければ、消去済みテーブル105のその物理ブロック欄に0(消去済みでない)を書き込む(ステップ405)。冗長領域503が消去済みでなければ、更に冗長領域503に書き込まれている論理アドレスを読み出して、論理アドレス/物理アドレス変換テーブル106のその論理アドレスに対応する位置に物理アドレスを登録する(ステップ406)。最終物理ブロックであるか否か判断する(ステップ407)。最終物理ブロックでなければ、ブロックカウンタに1を加算し(ステップ408)、ステップ402に戻り処理を繰り返す。最終物理ブロックであれば、初期化を終了する。
不揮発性メモリ103のデータ書き換え方法を説明する。ホスト102が不揮発性記憶装置101にデータの書き込みを指令すると、コントローラ104は不揮発性メモリ103にホスト102から伝送されたデータを書き込む。図25は、従来例の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。コントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロックとして確保する(ステップ601)。確保した物理ブロックにデータをページ単位で書き込む(ステップ603)。無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む物理ブロック(旧物理ブロック)を消去する(ステップ604)。旧物理ブロックをその場で直ちに消去しても良く、一旦、そのデータが無効であるか否かを示すフラグを無効を示す値にセットしておき、別タイミングで消去しても良い。消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。具体的には、消去済みテーブル105に、書き込みを行った物理ブロックに対応するビットに0(書き込み済み)を書き込む。旧物理ブロック(無効データを含む物理ブロック)を消去後、旧物理ブロックに対応するビットに1(消去済み)を書き込む。論理アドレス/物理アドレス変換テーブル106の論理アドレスに対応する物理アドレスを、旧物理ブロックから書き込みを行った新物理ブロックに更新する。
ステップ603でデータの書き込み中に電源遮断等の異常が発生した場合、書き込み途中の物理ブロックのデータが不正なデータになるおそれがある。
特開2001−51883号公報に、電源遮断の異常等により書き込み途中で処理を終了した場合、次回起動時に自動的に書き込み前の状態に復元する自己修復機能を備えた不揮発性メモリを有する従来例1の不揮発性記憶装置が記載されている。従来例1の不揮発性記憶装置は、メモリ外に、書き込み中フラグ、アドレスバッファ及びデータバッファを有する。データ書き込み中には、書き込み中フラグを有効状態にし、それ以外の時には書き込み中フラグを無効状態にする。起動時に書き込み中フラグが有効状態であれば、データバッファの内容をアドレスバッファが示すメモリ領域に書き込む。又、これにより、起動時に、異常な書き込み前の状態に復元できる。
従来例の不揮発性記憶装置において、ステップ603で物理ブロックの先頭ページにデータを書き込んでいる時に電源遮断等の異常が発生した場合、データ領域502のみにデータが一部書き込まれており、冗長領域503は消去済み(未書き込み)という状態があり得る。この状態で初期化処理を行うと、先頭ページの冗長領域503のデータをもとに消去済みテーブル105を生成するので、この物理ブロックを消去済みと誤判定することになる。
ステップ604で旧物理ブロックの消去中に電源遮断等の異常が発生した場合、旧物理ブロックの先頭ページは消去済みで、他のページは消去されていない状態があり得る。この状態で初期化処理を行うと、この旧物理ブロックを消去済みと誤判定することになる。
このように消去済みでない物理ブロックを消去済みと誤判定すると、その後データの書き込みが発生した場合に、消去済みと誤判定された物理ブロックにデータを書き込むことになる。不揮発性メモリは書き込み済みの物理ブロックにデータを上書きすることができない(ページ単位で、0のビットに1を書き込むことはできない。)ため、正しく書き込むことができず不正データとなるという問題があった。
また、書き込み中断又は消去中断により、物理ブロックの先頭ページの冗長領域は書き込み済みで、他のページは書き込み済みでないという状態があり得る。この状態で初期化処理を行うと、先頭ページの冗長領域に書き込まれた論理アドレスを読み出して、論理アドレス/物理アドレス変換テーブル106に登録してしまう。書き込み途中又は消去途中の物理ブロックを書き込み済みの有効な物理ブロックと誤判定してしまう。物理ブロックの先頭ページの冗長領域503には不揮発性メモリ103の管理データが書き込まれていることが多く、初期化処理において誤ったテーブルを生成すると、不揮発性メモリ103に対してアクセスできなくなるおそれがある。
従来例1の不揮発性記憶装置は、データを書き込む前に必ず、多くのバッファ(書き込み中フラグ、アドレスバッファ(論理アドレスバッファ、旧物理アドレスバッファ、新物理アドレスバッファ)及びデータバッファ)にデータを書き込む必要が有る故に、不揮発性記憶装置の処理が遅くなる恐れがある。
本発明は、データの書き込み中又は消去中に電源遮断等の異常が発生し処理が中断した場合であっても、次回起動後のデータ書き込みを正常に行える不揮発性記憶装置の制御方法を提供することを目的とする。これにより、正確に不揮発性メモリにアクセスでき、高いデータ信頼性を有する不揮発性記憶装置の制御方法を提供できる。
上記課題を解決するため、本発明は下記の構成を有する。
本発明の1つの観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の、先頭ページの前記冗長領域に設けられその先頭ページにデータが書き込まれているか否かを示す第1のフラグに、データが書き込まれていることを示す固定値を書き込む第1のフラグ書き込みステップと、その物理ブロックにデータを書き込むデータ書き込みステップと、を有する。
従来の不揮発性記憶装置の制御方法においては、例えば32ページからなる物理ブロックにデータを書き込む場合、1ページを単位とする32回の書き込みステップでデータを書き込んだ。しかし、書き込みの途中で電源が遮断された場合、データの書き込みが完了していない不正な物理ブロックが存在する。このような突然の電源遮断も考慮して、1つの物理ブロックが消去済みであるか否かを確実に知ろうとすれば、32ページの全ビットを調べ、全ビットが1であるか又は0のビットが含まれるかを調べなければならなかった。
第1ページ目に第1のフラグを割り付け、第1ページ目のデータを第1のフラグと一緒に書き込むことも考えられる。しかし、第1ページ目の書き込み途中に電源が遮断された場合、第1ページ目のデータ領域にはデータが正常に書き込まれ、第1のフラグは書き込まれない状態(0を記録しようとしたが、そのビットの値は1のままである状態)が発生し得る。従って、このような方法でも1つの物理ブロックが真に消去済みであるか否かを判断することは困難である。
本発明においては、最初に、固定値(実施の形態では00)の第1のフラグのみを単独で書き込み、その後通常のデータを32ページに書き込む。従って、一旦書き込みを開始したならば、書き込み途中に電源が遮断したとしても、第1のフラグは確実に所定の固定値(例えば00)である。もし第1のフラグが固定値でなければ(例えば11)、その物理ブロックは確実に消去済みである。
本発明は、書き込み途中で電源が遮断されても、物理ブロックが消去済みか否かを確実に検知できる不揮発性記憶装置の制御方法を実現する。
本発明の他の観点による上記の不揮発性記憶装置の制御方法は、不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの前記第1のフラグを読み出して、前記第1のフラグが書き込み済みか否かに基づいて、論理アドレス/物理アドレス変換テーブルと消去済みテーブルとを生成する初期化ステップを更に有する。
本発明によれば、データ書き込みの途中で電源が遮断された後の初期化処理においても、短時間で正確な消去済みテーブルを生成できる。これにより、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。
本発明の別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリの論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルを用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、前記物理ブロックにデータを書き込むデータ書き込みステップと、前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の所定のページの冗長領域に設けられその物理ブロックにデータが書き込まれているか否かを示す第2のフラグに、その物理ブロックにデータが書き込まれていることを示す固定値を書き込む第2のフラグ書き込みステップと、を有する。
従来の不揮発性記憶装置の制御方法においては、例えば32ページからなる物理ブロックにデータを書き込む場合、1ページを単位とする32回の書き込みステップでデータを書き込んだ。しかし、書き込みの途中で電源が遮断された場合、データの書き込みが完了していない不正な物理ブロックが生じる。このような突然の電源遮断も考慮して、1つの物理ブロックが真に書き込み済みであるか否かを判断することは困難である。
所定のページ、好ましくは第32ページ目に第2のフラグを割り付け、第32ページ目のデータを第2のフラグと一緒に書き込むことも考えられる。しかし、第32ページ目の書き込み途中に電源が遮断された場合、第2のフラグは正常に書き込まれ、他のいずれかのビットが書き込まれない状態(0を記録しようとしたが、そのビットの値は1のままである状態)が発生し得る。従って、このような方法でも1つの物理ブロックが真に書き込み済みであるか否かを判断することは困難である。
本発明においては、通常のデータを32ページに書き込み、最後に、所定の固定値(実施の形態では00)の第2のフラグのみを単独で書き込む。従って、第2のフラグが固定値(例えば00)であれば、その物理ブロックの書き込みは確実に終了している。第2のフラグが固定値でなければ(例えば11)、データの書き込みの途中で電源が遮断されたと判断できる。
本発明は、書き込み途中で電源が遮断されても、物理ブロックが正しく書き込み終了したか否かを確実に検知できる不揮発性記憶装置の制御方法を実現する。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの前記第2のフラグを読み出して、前記第2のフラグが書き込み済みか否かに基づいて、論理アドレス/物理アドレス変換テーブルを生成する初期化ステップを更に有する。
本発明によれば、データ書き込みの途中で電源が遮断された後の初期化処理においても、短時間で正確な論理アドレス/物理アドレス変換テーブルを生成できる。これにより、書き込みが完了していない不正な物理ブロックを有効な物理ブロックと誤判定することを防ぐことができる。
本発明の更に別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の先頭ページの前記冗長領域に設けられその先頭ページにデータが書き込まれているか否かを示す第1のフラグに、データが書き込まれていることを示す固定値を書き込む第1のフラグ書き込みステップと、その物理ブロックにデータを書き込むデータ書き込みステップと、前記物理ブロックの所定のページの冗長領域に設けられその物理ブロックにデータが書き込まれているか否かを示す第2のフラグに、その物理ブロックにデータが書き込まれていることを示す固定値を書き込む第2のフラグ書き込みステップと、を有する。
本発明においては、最初に第1のフラグに固定値(実施の形態では00)を単独で書き込み、その後通常のデータを32ページに書き込み、最後に固定値(実施の形態では00)の第2のフラグのみを単独で書き込む。従って、第1のフラグが固定値でなければ(例えば11)、その物理ブロックは消去済みと判断できる。第1のフラグが固定値(例えば00)で、第2のフラグが固定値でなければ(例えば11)、データ書き込みの途中で電源が遮断され、書き込みが完了していないと判断できる。第1のフラグと第2のフラグが共に固定値(例えば00)であれば、その物理ブロックの書き込みは確実に完了していると判断できる。
本発明は、書き込み途中で電源が遮断されても、物理ブロックが消去済みか否か、物理ブロックが正しく書き込み終了したか否かを確実に検知できる不揮発性記憶装置の制御方法を実現する。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの前記第1のフラグ及び前記第2のフラグを読み出して、前記第1のフラグ及び前記第2のフラグが書き込み済みか否かに基づいて、論理アドレス/物理アドレス変換テーブルと消去済みテーブルとを生成する初期化ステップを更に有する。
本発明によれば、データ書き込みの途中で電源が遮断された後の初期化処理においても、短時間で正確な消去済みテーブルと論理アドレス/物理アドレス変換テーブルとを生成できる。これにより、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。書き込みが完了していない不正な物理ブロックを有効な物理ブロックと誤判定することを防ぐことができる。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、物理ブロックにデータを書き込む時、最後のページのデータのECC符号及び/又はCRC符号を、又はそれらと更に前記ECC符号及び/又はCRC符号の相補データとをその最後のページの冗長領域に書き込む書き込みステップと、前記不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの最後のページからデータとそのデータのECC符号及び/又はCRC符号を読み出して、又はそれらと更に前記ECC符号及び/又はCRC符号の相補データとを読み出して、誤り検出を行い、誤りの有無に基づいて、論理アドレス/物理アドレス変換テーブルを生成する初期化ステップを有する。
本発明によれば、データ書き込みの途中で電源が遮断された後の初期化処理においても、短時間で正確な論理アドレス/物理アドレス変換テーブルを生成できる。これにより、書き込みが完了していない不正な物理ブロックを有効な物理ブロックと誤判定することを防ぐことができる。上記の構成において、第1のフラグを有しない構成としても良い。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記物理ブロックの最後のページの、単独で別個に書き込み可能なデータを書き込むための領域を除く領域の全てのアドレスにデータを書き込み、その領域をデータと前記データのECC符号及び/又はCRC符号とで埋め尽くし、又はそれらに更に前記ECC符号及び/又はCRC符号の相補データを加えて埋め尽くす最後のページ書き込みステップを有する。
本発明においては、通常のデータを31ページに書き込み、最後のページにデータを書き込むときに、所定の領域を通常のデータと、ECC符号及び/又はCRC符号とで埋め尽くし、又はそれらと更に相補データとを加えて埋め尽くす。初期化処理において、データの整合性に基づいて(誤り検出の有無)、データの書き込みが完了しているか否か判断できる。
本発明は、書き込み途中で電源が遮断されても、物理ブロックが正しく書き込み完了したか否かを検知できる不揮発性記憶装置の制御方法を実現する。上記の構成において、第1のフラグを有しない構成としても良い。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの最後のページの前記データと、前記データのECC符号及び/又はCRC符号とを読み出して、又はそれらと更に前記ECC符号及び/又はCRC符号の相補データとを読み出して、誤り検出を行い、誤りの有無に基づいて、論理アドレス/物理アドレス変換テーブルを生成する初期化ステップを更に有する。
本発明によれば、データ書き込みの途中で電源が遮断された後の初期化処理においても、短時間で正確な論理アドレス/物理アドレス変換テーブルを生成できる。これにより、書き込みが完了していない不正な物理ブロックを有効な物理ブロックと誤判定することを防ぐことができる。
本発明の更に別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、管理領域とデータ記録領域とを有する前記不揮発性メモリの前記管理領域に設けられ、無効データを有する物理ブロック(以下、「旧物理ブロック」と呼ぶ。)の物理アドレスと、前記旧物理ブロックの無効データが消去済みか否かを示す第3のフラグとを有する無効テーブル(消去予約テーブル)に、旧物理ブロックの物理アドレスを登録する物理アドレス登録ステップと、前記旧物理ブロックの無効データを消去する無効データ消去ステップと、前記旧物理ブロックの物理アドレスに対応する前記第3のフラグに前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、を有する。
従来の不揮発性記憶装置の制御方法において、物理ブロックのデータを消去する場合、例えばデータが無効であるか否かを示すフラグが無効にセットされている物理ブロックを消去した。しかし、消去の途中で電源が遮断された場合、データの消去は終了しておらず、0のビットが含まれている場合があった。このような突然の電源遮断も考慮して、1つの物理ブロックが消去済みであるか否かを確実に知ろうとすれば、32ページの全ビットを調べ、全ビットが1であるか又は0のビットが含まれるかを調べなければならなかった。
本発明においては、消去すべき物理ブロックのアドレスと第3のフラグとで構成される消去予約テーブルを不揮発性メモリの管理領域に生成し、物理ブロックを消去する前に、消去予約テーブルに消去すべき物理ブロックの物理アドレスを登録する。その後、その物理ブロックを消去する。最後に、消去した物理ブロックに対応する第3のフラグに固定値(実施の形態では00)を書き込む。
従って、一旦消去を開始したとしても、消去途中に電源が遮断された場合、第3のフラグは所定の固定値でない(例えば11)。消去予約テーブルに登録されている物理ブロックの第3のフラグが固定値でない場合、その物理ブロックの消去は終了していないことが確実に分かる。もし第3のフラグが所定の固定値であれば(例えば00)、その物理ブロックの消去は確実に終了している。
本発明は、消去途中で電源が遮断されても、物理ブロックの消去が終了したか否かを確実に検知できる不揮発性記憶装置の制御方法を実現する。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記不揮発性記憶装置の起動時に、前記管理領域の前記無効テーブルを読み出して、前記第3のフラグが書き込み済みでない前記旧物理ブロックの無効データを消去する無効データ消去ステップと、前記旧物理ブロックの物理アドレスに対応する前記第3のフラグに、前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、を更に有する。
本発明は、消去途中で電源が遮断されて物理ブロックの消去が終了していなくても、起動時にそのことを確実に検知して、物理ブロックを消去する不揮発性記憶装置の制御方法を実現する。これにより、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。
本発明の更に別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、前記物理ブロックにデータを書き込む時に、前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の所定のページの前記冗長領域に、無効データを有する旧物理ブロックの物理アドレスを登録する物理アドレス登録ステップと、前記旧物理ブロックの無効データを消去する無効データ消去ステップと、前記旧物理ブロックの物理アドレスが登録された前記冗長領域に設けられ、その旧物理ブロックの無効データが消去済みか否かを示す第3のフラグに、前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、を有する。
本発明は、消去途中で電源が遮断されても、物理ブロックの消去が終了したか否かを確実に検知できる不揮発性記憶装置の制御方法を実現する。本発明は、旧物理ブロックの物理アドレスと第3のフラグとをデータ書き込み先の物理ブロックの冗長領域に書き込むため、消去予約テーブルを作成するための専用の領域を不揮発性メモリの管理領域に設ける必要がない。物理ブロックの所定のページのデータ書き込みと同時に、旧物理ブロックの物理アドレスを登録するため、物理アドレス登録に要する時間が余分に発生することがなく、消去予約テーブルを設ける方法と比較して処理時間が短い。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記不揮発性記憶装置の起動時に、前記物理ブロックの冗長領域の前記第3のフラグを読み出して、前記第3のフラグが書き込み済みでない前記旧物理ブロックの無効データを消去する無効データ消去ステップと、前記第3のフラグに、前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、を更に有する。
本発明は、消去途中で電源が遮断されて物理ブロックの消去が終了していなくても、起動時にそのことを確実に検知して、物理ブロックを消去する不揮発性記憶装置の制御方法を実現する。これにより、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。
本発明の更に別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、データの書き込みを実行する前記物理ブロックを決定した後、前記物理ブロックにデータを書き込む前に、必ず前記物理ブロックに書き込まれているデータを消去する旧データ消去ステップと、を有する。
本発明によれば、未消去の物理ブロックに誤ってデータを書き込むという事故を確実に防ぐことができる。
本発明の更に別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、前記物理ブロックにデータを書き込む前に、前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の先頭ページを読み出して、前記先頭ページの前記冗長領域に設けられたその物理ブロックの管理情報に基づいて、前記先頭ページが消去済みか否かを判断し、消去済みでなければ前記物理ブロックに書き込まれているデータを消去する旧データ消去ステップと、を有する。
本発明によれば、未消去の物理ブロックに誤ってデータを書き込むという事故を確実に且つ効率的に防ぐことができる。
発明の新規な特徴は添付の請求の範囲に特に記載したものに他ならないが、構成及び内容の双方に関して本発明は、他の目的や特徴と共に、図面と共同して理解されるところの以下の詳細な説明から、より良く理解され評価されるであろう。
図1は、不揮発性記憶装置の構成を示すブロック図である。
図2は、消去済みテーブル105の構成を示す図である。
図3は、論理アドレス/物理アドレス変換テーブル106の構成を示す図である。
図4は、従来例及び本発明の実施の形態1の不揮発性記憶装置101の初期化処理のフローチャートである。
図5は、本発明の実施の形態1の不揮発性メモリ103の物理ブロックの構成を示す図である。
図6は、本発明の実施の形態1の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。
図7は、本発明の実施の形態1における物理ブロックにデータが書き込まれる状態を段階的に示す図である。
図8は、本発明の実施の形態2の不揮発性メモリ103の物理ブロックの構成を示す図である。
図9は、本発明の実施の形態2の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。
図10は、本発明の実施の形態2における物理ブロックにデータが書き込まれる状態を段階的に示す図である。
図11は、本発明の実施の形態2の不揮発性記憶装置101の初期化処理のフローチャートである。
図12は、本発明の実施の形態3の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。
図13は、本発明の実施の形態4の不揮発性メモリ103の物理ブロックの構成を示す図である。
図14は、本発明の実施の形態5の不揮発性メモリ103の構成を示す図である。
図15は、本発明の実施の形態5の消去予約テーブルの構成を示す図である。
図16は、本発明の実施の形態5の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。
図17は、本発明の実施の形態5における消去予約テーブルの状態変化を段階的に示す図である。
図18は、本発明の実施の形態5の不揮発性記憶装置101の初期化処理のフローチャートである。
図19は、本発明の実施の形態6の不揮発性メモリ103の物理ブロックの構成を示す図である。
図20は、本発明の実施の形態6の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。
図21は、本発明の実施の形態6の不揮発性記憶装置101の初期化処理のフローチャートである。
図22は、本発明の実施の形態7の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。
図23は、本発明の実施の形態8の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。
図24は、従来例の不揮発性メモリ103の物理ブロックの構成を示す図である。
図25は、従来例の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。
図面の一部又は全部は、図示を目的とした概要的表現により描かれており、必ずしもそこに示された要素の実際の相対的大きさや位置を忠実に描写しているとは限らないことは考慮願いたい。
以下本発明の実施をするための最良の形態を具体的に示した実施の形態について、図面とともに記載する。
《実施の形態1》
図1〜7を用いて、実施の形態1の不揮発性記憶装置の制御方法を説明する。図1において、101は不揮発性記憶装置、102はホストである。不揮発性記憶装置101は、不揮発性メモリ103、コントローラ104、消去済みテーブル105、論理アドレス/物理アドレス変換テーブル106を有する。実施の形態1において、不揮発性記憶装置101はメモリカードであり、ホスト102は携帯電話であり、不揮発性メモリ103はフラッシュメモリである。図1〜4は従来例と同一であるため、詳細な説明を省略する。
図5は本発明の不揮発性メモリ103の物理ブロックの構成を示す図である。物理ブロック501は、32ページで構成される。1ページの容量は528バイトであり、512バイトのデータ領域502と16バイトの冗長領域503とに区分される。1ページはデータの書き込み単位、読み出し単位である。データの書き込みは、物理ブロックのページ0からページ31まで順にページ単位で書き込まれる。物理ブロックはデータの消去単位であり、消去時には物理ブロックに含まれる32ページ全てを一度に消去する。
不揮発性メモリの物理ブロック501のデータは1と0とで表され、消去済みの状態において全てのビットが1である。データの書き込みは0を書き込むことであって、0のビットに1を上書きすることはできない。そのため、消去済みでない物理ブロックに新しいデータを上書きで書き込むと、不正データとなる。新しいデータは、消去済みの物理ブロックに書き込まなければならない。
実施の形態1の物理ブロックが従来例の物理ブロックの構成(図24)と違うところは、先頭ページであるページ0の冗長領域503に第1のフラグ511を有することである。第1のフラグ511は、データ信頼性を高めるため、複数ビットデータで表す。実施の形態1において、第1のフラグは2ビットで構成され、論理値11又は00で表す。それ以外の点において、本発明の実施の形態1の物理ブロックは、従来例の構成と同一である。
図6及び図7を用いて、実施の形態1の不揮発性記憶装置101のデータの書き換え方法を説明する。図6は実施の形態1の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図7は、実施の形態1の物理ブロックにデータが書き込まれる状態を段階的に示す図である。
ホスト102からデータの書き込み指令を受信すると、不揮発性記憶装置101のコントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロックとして確保する(ステップ601)。不揮発性メモリ103の物理ブロック501は、消去済みの状態においてビットは全て1である(図7(a))。
まず、確保した物理ブロックの第1のフラグに固定値(消去した時の値と異なる値であって、実施の形態では00)を書き込む(ステップ602、図7(b))。具体的には、第1のフラグのみが00でそれ以外のデータが全て1であるデータを先頭ページに書き込む。書き込み先物理ブロックは、先頭ページの冗長領域503の一部(第1のフラグ511)のみが書き込み済みの状態となる。第1のフラグ511は、これからその物理ブロックにデータの書き込みが開始されることを示す。その後、第1のフラグ以外のデータを物理ブロックのページ0からページ31まで順にページ単位で書き込む(ステップ603、図7(c))。
無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む旧物理ブロックを消去する(ステップ604)。消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。具体的には、消去済みテーブル105に、ステップ601で確保した物理ブロックに対応するビットに0(書き込み済み)を書き込む。ステップ604で消去した旧物理ブロックに対応するビットに1(消去済み)を書き込む。論理アドレス/物理アドレス変換テーブル106の論理アドレスに対応する物理アドレスを、旧物理ブロックから書き込みを行った物理ブロックを示すように更新する。
第1のフラグを別ステップで書き込む実施の形態1の書き込み方法は、従来例の書き込み方法より1ステップ処理が多い。しかし、例えば1ページ(最小書き込み単位)の書き込みを1ステップで実行するとすれば、1物理ブロック(32ページ)の書き込みに要する書き込みステップ数は、従来の32ステップより1ステップ多い33ステップになるだけである。
例えば、不揮発性メモリ103に、1ページ分のデータを転送する時間は40μs、1ページ分のデータの書き込み時間は200μsであるので、1物理ブロックの書き込み時間は、(40+200)×32=7680μsである。これに対し、1ページ分の冗長領域のみのデータを転送する時間は1.5μsで、1ページ分のデータの書き込み時間は200μsであるので、1ページ分の冗長領域のみの書き込み時間は1.5+200=201.5μsである。従って、実施の形態1のデータの書き込み時間(201.5μs+7680μs)は従来例(7680μs)より約2.6%長くなるだけである。実施の形態は、アドレス、データ等を常に2箇所に書き込む従来例1と比較してはるかにデータ書き込み速度が速い。1ページの書き込みステップ数が1ステップでなく複数ステップであれば、第1のフラグを別ステップで書き込むことによる処理速度の低下の割合は、更に小さい。
図4を用いて、実施の形態1の初期化処理を説明する。図4は従来例の不揮発性記憶装置101の初期化処理のフローチャートであり、本発明の実施の形態1は従来例と同一の方法で初期化処理を行う。不揮発性メモリ103の全ての物理ブロックについて、先頭ページのみの冗長領域503を読み出して(ステップ402)、物理ブロックが消去済みか否かを判断する(ステップ403)。物理ブロックが消去済みか否かの判断は、先頭ページの冗長領域503が全て1のデータである場合は消去済み、値0のビットを含むデータが書き込まれている場合は書き込み済みとする。
本発明の実施の形態1は、データの書き込み前に第1のフラグに固定値を書き込んでいるので(ステップ602)、電源遮断等の異常によりデータの書き込みが中断した物理ブロックにおいても、第1のフラグには既に00が書き込まれている。例えば、先頭ページにデータを書き込み中に処理が中断した物理ブロックにおいても、第1のフラグは00である。従って、実施の形態1の不揮発性記憶装置101は、データの書き込みが中断した(完全に消去済みでない)物理ブロックを消去済みと誤って判定し、消去済みテーブル105に登録することはない。
本発明の実施の形態1の不揮発性記憶装置の制御方法によれば、データより先に第1のフラグを書き込むことにより、従来例と同じ初期化処理を用いて、物理ブロックが消去済みか否かを確実に検知できる。データの書き込みが電源遮断等によって途中で中断した場合であっても、消去済みテーブル105を正しく生成することができ、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。
《実施の形態2》
図1〜3、図8〜11を用いて、実施の形態2の不揮発性記憶装置の制御方法を説明する。図1〜3は、従来例及び実施の形態1と同一であるため、詳細な説明を省略する。図8は本発明の実施の形態2の不揮発性メモリ103の物理ブロックの構成を示す図である。図8において、従来例(図24)と同一部には同一符号を付している。
実施の形態2の物理ブロックが従来例の物理ブロックの構成と違うところは、所定のページ(実施の形態2においては、最後のページであるページ31)の冗長領域503に第2のフラグ801を有することである。第2のフラグ801は、データ信頼性を高めるため、複数ビットデータで表す。実施の形態2において、第2のフラグは2ビットで構成され、論理値11又は00で表す。それ以外の点において、本発明の実施の形態2の物理ブロックは、従来例の構成と同一である。
図9及び図10を用いて、実施の形態2の不揮発性記憶装置101のデータの書き換え方法を説明する。図9は実施の形態2の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図9において、実施の形態1の図6と同一ステップには、同一符号を付している。図10は、実施の形態2の物理ブロックにデータが書き込まれる状態を段階的に示す図である。
ホスト102からデータの書き込み指令を受信すると、不揮発性記憶装置101のコントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロックとして確保する(ステップ601)。不揮発性メモリ103の物理ブロック501は、消去済みの状態においてビットは全て1である(図10(a))。
確保した物理ブロックにデータをページ単位で書き込む(ステップ603、図10(b))。具体的には、ページ0からページ30まで順にデータを書き込む。第2のフラグ以外のデータをページ31に書き込む。具体的には、第2のフラグを11として所望のデータを最後のページに書き込む。その結果、書き込み先物理ブロックは、最後のページの冗長領域503の一部(第2のフラグ801)以外は全て書き込み済みの状態となる。
最後に、第2のフラグに固定値(消去した時の値と異なる値であって、実施の形態では00)を書き込む(ステップ901、図10(c))。具体的には、第2のフラグのみが00でそれ以外のデータが全て1であるデータを最後のページに書き込む。第2のフラグの書き込みが完了した時点で、その物理ブロックのデータの書き込みが完了する。第2のフラグ801は、物理ブロックのデータの書き込みが完了したことを示す。
無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む旧物理ブロックを消去する(ステップ604)。
消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。具体的には、消去済みテーブル105に、ステップ601で確保した物理ブロックに対応するビットに0(書き込み済み)を書き込む。ステップ604で消去した旧物理ブロックに対応するビットに1(消去済み)を書き込む。論理アドレス/物理アドレス変換テーブル106の論理アドレスに対応する物理アドレスを、旧物理ブロックから書き込みを行った物理ブロックを示すように更新する。
第2のフラグを別ステップで書き込む実施の形態2の書き込み方法は、従来例の書き込み方法より1ステップ処理が多い。しかし、例えば1ページ(最小書き込み単位)の書き込みを1ステップで実行するとすれば、1物理ブロック(32ページ)の書き込みに要する書き込みステップ数は、従来の32ステップより1ステップ多い33ステップになるだけである。
例えば、不揮発性メモリ103に、1ページ分のデータを転送する時間は40μs、1ページ分のデータの書き込み時間は200μsであるので、1物理ブロックの書き込み時間は、(40+200)×32=7680μsである。これに対し、1ページ分の冗長領域のみのデータを転送する時間は1.5μsで、1ページ分のデータの書き込み時間は200μsであるので、1ページ分の冗長領域のみの書き込み時間は1.5+200=201.5μsである。従って、実施の形態2のデータの書き込み時間(7680μs+201.5μs)は従来例(7680μs)より約2.6%長くなるだけである。実施の形態は、アドレス、データ等を常に2箇所に書き込む従来例1と比較してはるかにデータ書き込み速度が速い。1ページの書き込みステップ数が1ステップでなく複数ステップであれば、第2のフラグを別ステップで書き込むことによる処理速度の低下の割合は、更に小さい。
図11を用いて、実施の形態2の初期化処理を説明する。図11は実施の形態2の不揮発性記憶装置101の初期化処理のフローチャートである。図11において、図4(従来例及び実施の形態1)と同一ステップには同一符号を付している。
ブロックカウンタに0(初期値)を設定する(ステップ401)。コントローラ104は、不揮発性メモリ103の読み出し対象である物理ブロックの先頭ページの冗長領域503を読み出す(ステップ402)。
物理ブロックが消去済みか否か判断する(ステップ403)。物理ブロックが消去済みか否かの判断は、従来例と同様に先頭ページの冗長領域503が全て1のデータであるか、又は値0のビットを含むデータが書き込まれているかで行う。
先頭ページの冗長領域が全て1のデータである場合は、物理ブロックは消去済みと判断し、消去済みテーブル105のその物理ブロックに対応する欄に1を書き込み、物理ブロックが消去済みであると登録する(ステップ404)。ステップ407に進む。
先頭ページの冗長領域に値0のビットを含むデータが書き込まれている場合は消去済みでないと判断し、第2のフラグを有する最後のページの冗長領域を読み出す(ステップ1101)。第2のフラグが書き込み済みか否か判断する(ステップ1102)。第2のフラグが書き込み済みでなければ(=11)、その物理ブロックは電源遮断等によって書き込みが完了していないと判断し、物理ブロックを消去して(ステップ1103)、ステップ404に進む。
第2のフラグが書き込み済み(=00)の場合、消去済みテーブル105のその物理ブロック欄に0(消去済みでない)を書き込む(ステップ405)。先頭ページの冗長領域503に書き込まれている論理アドレスを読み出して、論理アドレス/物理アドレス変換テーブル106のその論理アドレスに対応する位置に物理アドレスを登録する(ステップ406)。ステップ407に進む。
最終物理ブロックであるか否か判断する(ステップ407)。最終物理ブロックでなければ、ブロックカウンタに1を加算し(ステップ408)、ステップ402に戻り処理を繰り返す。最終物理ブロックであれば、初期化を終了する。
実施の形態2の不揮発性記憶装置の制御方法は、データの書き込みが中断した不完全な物理ブロックを誤って論理アドレス/物理アドレス変換テーブル106に登録することがない。例えば、電源遮断等によって書き込み処理が中断した場合、第2のフラグは11のままである。先頭ページは書き込み済みであっても、最後のページまで書き込みが完了していないと判断できる。第2のフラグが00の場合、その物理ブロックの書き込みは完了していると判断できる。
本発明の実施の形態2の不揮発性記憶装置の制御方法によれば、データの書き込みが電源遮断等によって途中で中断した場合であっても、第2のフラグに基づいて論理アドレス/物理アドレス変換テーブル106を正しく生成することができる。
なお、実施の形態2において、第2のフラグ801は物理ブロックの最後のページに有した。これに代えて、第2のフラグを物理ブロックの最後のページ以外の任意のページの冗長領域503に有しても良い。この場合、図11の初期化処理のステップ1101において、最後のページに代えて第2のフラグを有するページの冗長領域を読み出せば良い。
《実施の形態3》
図11及び図12を用いて、実施の形態3の不揮発性記憶装置の制御方法を説明する。実施の形態3の不揮発性メモリ103の物理ブロック501は、第1のフラグと第2のフラグの両方を有する。実施の形態3の物理ブロックが有する第1のフラグ511及び第2のフラグ801はそれぞれ実施の形態1の第1のフラグ511及び実施の形態2の第2のフラグ801と同一である。
図12を用いて、実施の形態3の不揮発性記憶装置101のデータの書き換え方法を説明する。図12は実施の形態3の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図12において、実施の形態1の図6及び実施の形態2の図9と同一ステップには、同一符号を付している。
ホスト102からデータの書き込み指令を受信すると、不揮発性記憶装置101のコントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロックとして確保する(ステップ601)。不揮発性メモリ103の物理ブロック501は、消去済みの状態においてビットは全て1である(図7(a))。
まず、確保した物理ブロックの第1のフラグに固定値(実施の形態では00)を書き込む(ステップ602、図7(b))。書き込み先物理ブロックは、先頭ページの冗長領域503の一部(第1のフラグ511)のみが書き込み済みの状態となる。第1のフラグ511は、これからその物理ブロックにデータの書き込みが開始されることを示す。
その後、物理ブロックにデータをページ単位で書き込む(ステップ603、図7(c))。具体的には、第1のフラグ以外のデータをページ0に書き込む。ページ1からページ30まで順にデータを書き込む。第2のフラグ以外のデータをページ31に書き込む(図10(b))。
最後に、第2のフラグに固定値(実施の形態では00)を書き込む(ステップ901、図10(c))。第2のフラグの書き込みが完了した時点で、その物理ブロックのデータの書き込みが完了する。第2のフラグ801は、物理ブロックのデータの書き込みが完了したことを示す。
無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む旧物理ブロックを消去する(ステップ604)。
消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。具体的には、消去済みテーブル105に、ステップ601で確保した物理ブロックに対応するビットに0(書き込み済み)を書き込む。ステップ604で消去した旧物理ブロックに対応するビットに1(消去済み)を書き込む。論理アドレス/物理アドレス変換テーブル106の論理アドレスに対応する物理アドレスを、旧物理ブロックから書き込みを行った物理ブロックを示すように更新する。
図11を用いて、実施の形態3の初期化処理を説明する。実施の形態3は実施の形態2と同一の方法で初期化処理を行う。ステップ402で、物理ブロックの先頭ページのみの冗長領域503を読み出す。ステップ403の物理ブロックが消去済みか否かの判断において、先頭ページの冗長領域503が全て1のデータである場合は消去済み、値0のビットを含むデータが書き込まれている場合は書き込み済みと判断する。
先頭ページの冗長領域が全て1のデータである場合、つまり第1のフラグに固定値が書き込まれていない場合は、消去済みテーブル105のその物理ブロック欄に1を書き込み、物理ブロックが消去済みであると登録する(ステップ404)。
冗長領域503が消去済みでない、つまり第1のフラグに固定値が書き込まれている場合は、最後のページの冗長領域を読み出す(ステップ1101)。最後のページの冗長領域に有する第2のフラグが書き込み済みか否か判断する(ステップ1102)。第2のフラグが書き込み済みでなければ(=11)、その物理ブロックは電源遮断等によって書き込みが完了していないと判断し、その物理ブロックを消去して(ステップ1103)、ステップ404に進む。
第2のフラグが書き込み済み(=00)の場合、消去済みテーブル105のその物理ブロック欄に0(消去済みでない)を書き込む(ステップ405)。先頭ページの冗長領域503に書き込まれている論理アドレスを読み出して、論理アドレス/物理アドレス変換テーブル106のその論理アドレスに対応する位置に物理アドレスを登録する(ステップ406)。ステップ407に進む。
従って、実施の形態3における物理ブロックの状態は、下記のように判定できる。
第1のフラグ=11かつ第2のフラグ=11の場合、物理ブロックは消去済み(未書き込み)であることを示す。
第1のフラグ=00かつ第2のフラグ=11の場合、データの書き込みが電源遮断等によって途中で中断し、データの書き込みが開始されているが完了していないことを示す。
第1のフラグ=11かつ第2のフラグ=00の場合、正常な処理では発生しない。
第1のフラグ=00かつ第2のフラグ=00の場合、物理ブロックが書き込み済みであることを示す。
本発明の実施の形態3の不揮発性記憶装置の制御方法によれば、データより先に第1のフラグを書き込むことにより、物理ブロックが消去済みか否かを確実に検知できる。
本発明の実施の形態3の不揮発性記憶装置の制御方法によれば、データを書き込んだ後に第2のフラグを書き込むことにより、物理ブロックが書き込み済みか否かを確実に検知できる。
本発明の実施の形態3の不揮発性記憶装置の制御方法によれば、データの書き込みが電源遮断等によって途中で中断した場合であっても、第1のフラグと第2のフラグに基づいて、消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106の両方を正しく生成することができる。実施の形態3は、実施の形態1の効果と実施の形態2の効果の両方を有する。
なお、実施の形態3において、第2のフラグ801は物理ブロックの最後のページに有した。これに代えて、第2のフラグを物理ブロックの最後のページ以外の任意のページの冗長領域503に有しても良い。この場合、図11の初期化処理のステップ1101において、最後のページに代えて第2のフラグを有するページの冗長領域を読み出せば良い。
なお、第1のフラグ及び第2のフラグを別ステップで書き込むことにより、初期化処理において生成する消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106の正確性は向上する。しかし、実施の形態3の書き込み方法は、従来例の書き込み方法より2ステップ処理が多く、実施の形態1又は実施の形態2の書き込み方法より1ステップ処理が多いため、データの書き込みに要する時間は長い。例えば、1物理ブロックの書き込み時間が7680μsで、1ページの冗長領域のみの書き込み時間が201.5μsであるので、実施の形態3のデータの書き込み時間は従来例より5.2%、実施の形態1又は実施の形態2より約2.6%長くなる。
データの書き込みに要する時間及び初期化処理に要する時間の短縮を優先するか、又は消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106の正確性を優先するかによって、第1のフラグのみを有してもよいし(実施の形態1)、第2のフラグのみを有してもよいし(実施の形態2)、第1のフラグと第2のフラグを共に有してもよい(実施の形態3)。
《実施の形態4》
図13を用いて、実施の形態4の不揮発性記憶装置の制御方法を説明する。図13は、実施の形態4の不揮発性メモリ103の物理ブロック501の構成を示す図である。実施の形態4の物理ブロック501が、実施の形態2の物理ブロックと違うところは、第2のフラグ801に代えて、管理情報A1301及び管理情報A’1302を最後のページに有することである。それ以外の点において、実施の形態4の物理ブロックは、実施の形態2と同一である。
実施の形態4において、管理情報A1301は各物理ブロックについてユニークなデータであって、例えば最後のページのデータのECC符号及び/又はCRC符号を含む。管理情報A’1302は、管理情報Aのそれぞれのビットが反転したデータ(相補データ)である。
ECC符号、CRC符号は、最後のページの冗長領域503のデータのみのECC符号、CRC符号であっても良く、データ領域(又はデータ領域及び冗長領域)のデータのECC符号、CRC符号であっても良い。
好ましくは、物理ブロックの最後のページの、単独で別個に書き込み可能なデータ(例えば第2のフラグ等)を書き込むための領域を除く領域の全てのアドレスにデータを書き込み、その領域をデータと、ECC符号及び/又はCRC符号と、そのECC符号及び/又はCRC符号の相補データで埋め尽くす。これにより、電源の瞬時停電に起因する誤判断の確率を更に小さく出来る。
実施の形態4の不揮発性記憶装置101のデータ書き換え方法を説明する。実施の形態4の不揮発性記憶装置101のデータ書き換え方法は、従来例の図25と同一のフローチャートを用いて行う。但し、ステップ603の処理が異なる。実施の形態4の不揮発性記憶装置101は、物理ブロック501にデータを書き込む場合(ステップ603)、最後のページであるページ31のデータ領域502にデータを書き込むのと同時に冗長領域503に管理情報A及び管理情報A’を書き込む。それ以外の点においては、従来例のデータ書き換え方法と同一であるため、説明を省略する。
図11を用いて、実施の形態4の不揮発性記憶装置101の初期化処理を説明する。実施の形態4の初期化処理は、ステップ1101及びステップ1102が実施の形態2と異なる。実施の形態2では、最後のページの冗長領域のみを読み出して(ステップ1101)、第2のフラグ801が書き込み済みか否かに基づいて、物理ブロック501にデータが書き込まれているか否かを判断した(ステップ1102)。実施の形態4では、最後のページのデータ領域と冗長領域とを読み出す(ステップ1101)。データとECC符号及び/又はCRC符号とにより最後のページのデータに誤りがあるか否か、更に管理情報A1301及び管理情報A’1302が相補な関係であるか否か(整合しているか又は誤りを含むか)を判断する(ステップ1102)。データとECC符号及び/又はCRC符号とが整合し、且つ管理情報A及び管理情報A’が相補なデータである場合は、物理ブロックは書き込み済みと判断し、ステップ405に進む。データとECC符号及び/又はCRC符号とが整合せず、又は管理情報A1301及び管理情報A’1302が相補なデータでない(誤りを含む)場合は、物理ブロックの書き込みが電源遮断等により途中で中断したと判断し、ステップ1103で物理ブロックを消去した後、ステップ404に進む。それ以外の点においては、実施の形態2の初期化処理と同一であるため、説明を省略する。
実施の形態4の不揮発性記憶装置の制御方法によれば、データ領域502にデータを書き込むのと同時に冗長領域503に相補なデータ(管理情報A及びA’)を書き込むので、相補なデータを書き込むための余計なプログラム時間が不要である。物理ブロック501にデータを書き込んだ後に、第2のフラグ801を別ステップで書き込む実施の形態2と比較して、処理時間が早い。但し、実施の形態4の制御方法は、誤判断の可能性は極めてゼロに近いもののゼロではなく、正確の信頼性においては、実施の形態2の制御方法のほうが優れている。
データの書き込みに要する時間の短縮を優先するか、又は消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106の正確性を優先するかによって、第2のフラグを有しても良いし(実施の形態2)、相補データを有してもよい(実施の形態4)。
上記方法に代えて、管理情報A’1302を有さず、ECC符号及び/又はCRC符号のみを最後のページの冗長領域に有しても良い。好ましくは、物理ブロックの最後のページの、単独で別個に書き込み可能なデータ(例えば第2のフラグ等)を書き込むための領域を除く領域の全てのアドレスにデータを書き込み、その領域をデータと、ECC符号及び/又はCRC符号とで埋め尽くす。これにより、電源の瞬時停電に起因する誤判断の確率を更に小さく出来る。
ECC符号及び/又はCRC符号は、物理ブロック501の最後のページであるページ31のデータ領域502にデータを書き込むのと同時に、冗長領域503に書き込む。それ以外の点においては、従来例のデータ書き換え方法と同一である。
図11を用いて、管理情報A’1302を有さない場合の不揮発性記憶装置101の初期化処理を説明する。最後のページのデータ領域と冗長領域とを読み出す(ステップ1101)。データとECC符号及び/又はCRC符号とにより最後のページのデータに誤りがあるか否かを判断する(ステップ1102)。データとECC符号及び/又はCRC符号とが整合すれば、物理ブロックは書き込み済みと判断し、ステップ405に進む。データとECC符号及び/又はCRC符号とが整合しなければ、物理ブロックの書き込みが電源遮断等により途中で中断したと判断し、ステップ1103で物理ブロックを消去した後、ステップ404に進む。それ以外の点においては、管理情報A’1302を有する上記の初期化処理と同一であるため、説明を省略する。
《実施の形態5》
図14〜図18を用いて、実施の形態5の不揮発性記憶装置の制御方法を説明する。実施の形態1〜4の不揮発性記憶装置の制御方法は、データの書き込み中に電源遮断が起こった場合に対処する方法であった。実施の形態5の不揮発性記憶装置の制御方法は、データの消去中に電源遮断が起こった場合に対処できる方法である。
従来例(図25)のステップ604において旧物理ブロックを消去している最中に電源遮断が発生すると、その旧物理ブロックの消去が終了していない可能性がある。この状態で、電源再投入時に初期化処理を行うと、完全に消去していない旧物理ブロック(例えば最初のページの冗長領域が消去済みで、残りのデータは書き込み済みの物理ブロック)を誤って消去済みと判断し、消去済みテーブル105に登録する可能性がある。また、完全に消去していない旧物理ブロック(例えば最初のページの冗長領域は書き込み済みで、残りのデータが消去済みの物理ブロック)を誤って書き込み済みと判断し、論理アドレス/物理アドレス変換テーブル106に登録する可能性もある。
上記のような誤判断を防ぐため、実施の形態5の不揮発性記憶装置の制御方法は、データの消去中に電源遮断が起こった場合に対処できる方法を実現する。実施の形態5の不揮発性記憶装置101は、旧物理ブロックが消去済みか否かを判断するための消去予約テーブルを不揮発性メモリに有する。
図14は、不揮発性メモリの構成を示す図である。不揮発性メモリ103は、管理領域1411とデータ記録領域1412とに区分される。データ記録領域1412は、データを書き込むための領域である。実施の形態5において、データ記録領域1412の物理ブロック501は、従来例の物理ブロック501(図24)と同一である。管理領域1411は、不揮発性メモリ103の管理情報を記憶する領域で、管理領域1411の物理ブロック1401を消去予約テーブルに割り当てる。なお、管理領域1411とデータ記録領域1412とは、コントローラ104によって明確に区別できれば良く、管理領域1411を不揮発性メモリ103内の固定した物理ブロックに占有する必要はない。固定した物理ブロックによらず自由にその領域を変化させてもよい。
図15は、消去予約テーブルの構成を示す図である。消去予約テーブル1501は、消去する物理ブロックの物理アドレス1511を登録する消去アドレス登録領域1502と、冗長領域1503とで構成される。冗長領域1503は、第3のフラグ1512を有する。第3のフラグ1512は、データ信頼性を高めるため、複数ビットデータで表す。実施の形態5において、第3のフラグは2ビットで構成され、論理値11又は00で表す。第3のフラグ1512は、そのページの消去アドレス登録領域1502に書き込まれている物理アドレス1511が示す物理ブロックが消去済みか否かを表す。第3のフラグが「11」の場合、物理ブロックは、未消去と判断し、第3のフラグが「00」の場合、物理ブロックは消去済みと判断する。消去予約テーブル1501は、物理ブロック1401で構成されているため、ページ0からページ31を有し、物理アドレスを32個分登録できる。実施の形態5において、物理アドレスの登録は、ページ0から昇順に行う。
図16及び図17を用いて、実施の形態5のデータの書き換え方法を説明する。図16は実施の形態5の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図16(実施の形態5)において、図25(従来例)と同一ステップには同一符号を付している。図17は、消去予約テーブルに物理アドレスと第3のフラグが書き込まれる状態を段階的に示す図である。図17において、ページ0とページ1には既に物理アドレスが書き込まれており、且つ第3のフラグが「00」であるので、ページ0とページ1に登録された物理ブロックは消去済みである。今回ページ2を使用する。
実施の形態5のデータの書き換え方法(図16)が従来例(図25)と違うところは、ステップ1601と1602が追加された点である。ステップ1601以降について説明する。
物理ブロックのデータの書き込みが完了すると、無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む旧物理ブロックの物理アドレス1511を、消去予約テーブル1501の消去アドレス登録領域1502に登録する(ステップ1601、図17(b))。消去予約テーブルに登録することで、消去すべき物理ブロックであることを示す。その後、旧物理ブロックを消去する(ステップ604)。
旧物理ブロックの物理アドレス1511を登録した消去予約テーブルのページ2の冗長領域1503の第3のフラグ1512に固定値(実施の形態では00)を書き込む(ステップ1602、図17(c))。第3のフラグに固定値を書き込むことで、登録した旧物理ブロックの消去が完了したことを示す。
消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。具体的には、消去済みテーブル105に、ステップ601で確保した物理ブロックに対応するビットに0(書き込み済み)を書き込む。ステップ604で消去した旧物理ブロックに対応するビットに1(消去済み)を書き込む。論理アドレス/物理アドレス変換テーブル106の論理アドレスに対応する物理アドレスを、旧物理ブロックから書き込みを行った物理ブロックを示すように更新する。
実施の形態5の不揮発性記憶装置101は、図4に示す初期化処理を行った後に、図18に示す初期化処理を行う。図4においては、従来例と同一であるため、説明を省略する。図18について説明する。
不揮発性メモリ103の管理領域1411に有する消去予約テーブル1501を読み出す(ステップ1801)。消去済みでない物理ブロックが有るか否か判断する(ステップ1802)。消去予約テーブル1501の消去アドレス登録領域1502に物理アドレス1511が登録されていない、又は全ての登録済みの物理アドレス1511に対応する第3のフラグ1512に固定値(00)が書き込まれていれば、消去済みでない物理ブロックは無いと判断し、初期化処理を終了する。
消去予約テーブル1501に物理アドレス1511が登録されているが、第3のフラグ1512が書き込まれていない(11)場合、電源遮断等により消去が途中で終わっていると判断し、登録されている物理ブロックを消去する(ステップ1803)。消去予約テーブル1501の消去した物理ブロックに対応する第3のフラグ1512に固定値を書き込む(ステップ1804)。
消去中の電源遮断等の異常により、作成済みのテーブルに誤りのある可能性があるので、消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を修正する(ステップ1805)。具体的には、消去済みテーブル105に消去した物理ブロックを登録する。論理アドレス/物理アドレス変換テーブル106に消去した物理ブロックがあれば、登録を削除する。ステップ1802に戻り、消去予約テーブルに登録された物理ブロックが全て消去されるまで処理を繰り返す。
本発明の実施の形態5の不揮発性記憶装置の制御方法によれば、消去予約テーブル1501に物理アドレス1511と第3のフラグ1512とを書き込むことにより、物理ブロック501の消去が完了しているか否かを確実に検知できる。物理ブロックの消去が電源遮断等によって途中で中断した場合であっても、次回起動時に、消去予約テーブル1501に基づいて消去済みでない物理ブロックを完全に消去し、消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106の両方を正しく生成することができる。これにより、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。
なお、データ消去中の電源遮断に対応する実施の形態5の不揮発性記憶装置の制御方法と、データ書き込み中の電源遮断に対応する実施の形態1〜4のいずれかの不揮発性記憶装置の制御方法と、を組み合わせても良い。これにより、更に信頼性の高い消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を生成することができる。
なお、実施の形態5の消去予約テーブル1501はデータの書き換え時の旧物理ブロックの消去のみに限られず、ホスト102からの消去指令に基づいて物理ブロックを消去する場合にも使用できる。
《実施の形態6》
図19〜21を用いて、実施の形態6の不揮発性記憶装置の制御方法を説明する。実施の形態6の不揮発性記憶装置の制御方法は、データの消去中に電源遮断が起こった場合に対処できる方法である。
実施の形態6の不揮発性記憶装置の制御方法が、実施の形態5と異なる点について説明する。実施の形態5の制御方法は、消去する物理ブロックの物理アドレス1511とその物理ブロックが消去済みか否かを示す第3のフラグ1512とを不揮発性メモリ103の管理領域1411に有する消去予約テーブル1501に登録した。実施の形態5の制御方法はデータ記録領域1412の物理ブロック501に対するデータ書き込みとは別ステップで、物理アドレス1511を消去予約テーブル1501に登録するため、消去予約テーブル1501の書き込みに要する時間が長いという欠点があった。
実施の形態6では、処理時間の短い制御方法を実現する。図19は、実施の形態6の物理ブロックの構成を示す図である。実施の形態6の物理ブロック501は、所定のページ(実施の形態6において、先頭ページ)の冗長領域503に、旧物理ブロックの物理アドレス(「旧物理アドレス」と呼ぶ。)1911と旧物理ブロックが消去済みか否かを示す第3のフラグ1512とを有する。実施の形態6の旧物理アドレス1911の登録領域は2バイトで構成される。
第3のフラグ1512は、実施の形態5の第3のフラグと同様で、データ信頼性を高めるため、複数ビットデータで表す。実施の形態6において、第3のフラグは2ビットで構成され、論理値11又は00で表す。第3のフラグ1512は、旧物理アドレス1911が示す物理ブロックが消去済みか否かを表す。第3のフラグが「11」の場合、旧物理アドレス1911が示す物理ブロックは未消去と判断し、第3のフラグが「00」の場合は消去済みと判断する。
実施の形態6において、不揮発性メモリ103は消去予約テーブル1501を持たず、データ書き込み先の物理ブロック501の冗長領域503を使用して、旧物理ブロックが消去済みか否かを登録する。
図20を用いて、実施の形態6のデータの書き換え方法を説明する。図20は実施の形態6の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図20において、従来例の図25と同一ステップには同一符号を付している。
ホスト102からデータの書き込み指令を受信すると、不揮発性記憶装置101のコントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロック(「新物理ブロック」と呼ぶ。)として確保する(ステップ601)。
新物理ブロックにデータを書き込むと同時に、無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む旧物理ブロックの物理アドレス1911と旧物理ブロックに対応する第3のフラグ1512(値は未消去であることを示す11)とを、新物理ブロックの先頭ページの冗長領域503に書き込む(ステップ2001)。
旧物理ブロックを消去する(ステップ604)。新物理ブロックの先頭ページの冗長領域503に有する第3のフラグに固定値(実施の形態では消去済みであることを示す00)を書き込む(ステップ2002)。第3のフラグ1512に固定値を書き込むことで、旧物理ブロックが消去されたことを示す。消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。
図21を用いて、実施の形態6の不揮発性記憶装置101の初期化処理を説明する。実施の形態6の不揮発性記憶装置101は、初期化処理時に、第3のフラグ1512に基づいて無効テーブルをRAM上に生成する。無効テーブルは、電源遮断等によりデータの消去が中断した不正な旧物理ブロックの物理アドレスと、旧物理ブロックが消去済みか否かを登録している新物理ブロックの物理アドレスとを登録するためのテーブルである。図21は実施の形態6の不揮発性記憶装置101の初期化処理のフローチャートである。図21において、従来例の図4と同一ステップには同一符号を付し、説明を省略する。ステップ2101〜2107について説明する。
ステップ401〜406において書き込み済みと判断された物理ブロック501に対して、ステップ402で読み出された先頭ページの冗長領域503に基づいて、第3のフラグ1512が未書き込み(=11)の旧物理ブロックが有るか否か判断する(ステップ2101)。旧物理アドレス1911が登録されていない、又は第3のフラグ1512が書き込み済み(=00)であれば、ステップ407に進む。
旧物理アドレス1911は登録されているが、第3のフラグ1512が未書き込みであれば、消去処理中に電源遮断等の異常が発生し、旧物理ブロックの消去が完了していないと判断する。RAM上に作成された無効テーブルに新物理ブロック(冗長領域503に旧物理ブロックの物理アドレス1911が書き込まれている物理ブロック)の物理アドレスと、旧物理ブロックの物理アドレスとを登録し(ステップ2102)、ステップ407に進む。
現在の物理ブロックが最終物理ブロックであるか否かを判断する(ステップ407)。最終物理ブロックでなければ、ブロックカウンタに1を加算し(ステップ408)、ステップ402に戻る。最終物理ブロックであれば、RAM上に生成した無効テーブルに新物理ブロックと旧物理ブロックのアドレスが書き込まれているか否か判断する(ステップ2103)。無効テーブルが空であれば、初期化処理を終了する。無効テーブルにアドレスが登録されていれば、その旧物理ブロックを消去する(ステップ2104)。消去した旧物理ブロックの物理アドレスが書き込まれている新物理ブロックの第3のフラグに固定値を書き込む(ステップ2105)。第3のフラグに固定値を書き込むことで、旧物理ブロックを完全に消去したことを示す。RAM上の無効テーブルを更新する(ステップ2106)。具体的には、新物理ブロックと旧物理ブロックのアドレスを無効テーブルから削除して、未消去の旧物理ブロックがないことを示す。
消去中の電源遮断等の異常により、作成済みのテーブルに誤りのある可能性があるので、消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ2107)。具体的には、消去済みテーブル105に消去した旧物理ブロックを登録する。論理アドレス/物理アドレス変換テーブル106に消去した旧物理ブロックがあれば、登録を削除する。
実施の形態6の不揮発性記憶装置の制御方法は、消去予約テーブル1501を設けるための専用の領域を不揮発性メモリ103の管理領域1411に確保する必要がない。データ記録領域1412の物理ブロック501に対してデータを書き込むと同時に、その先頭ページに旧物理ブロックのアドレス1911を登録するため、実施の形態5と比較して処理時間が短い。但し、実施の形態6の制御方法は、消去する旧物理ブロックの物理アドレス1911を新物理ブロック501の冗長領域503に登録するため、データの書き換え時にのみ使用でき、ホスト102からの消去指令に基づいて物理ブロックを消去する場合には、使用できない。
実施の形態6の不揮発性記憶装置101は、旧物理ブロックの消去と平行して、次に実行する書き込みデータを不揮発性メモリ103に転送することにより、データの書き換えにかかる時間を短縮することができる。
なお、旧物理ブロックの物理アドレス1911及び第3のフラグ1512の登録は、新物理ブロック501の先頭ページに限定されない。新物理ブロックの先頭ページ以外の冗長領域503に登録しても良い。この場合、初期化処理において、図21のステップ406とステップ2101との間に、旧物理アドレス1911と第3のフラグ1512とを有するページの冗長領域を読み出すステップを追加すれば良い。
なお、データ消去中の電源遮断に対応する実施の形態6の不揮発性記憶装置の制御方法と、データ書き込み中の電源遮断に対応する実施の形態1〜4のいずれかの不揮発性記憶装置の制御方法と、を組み合わせても良い。これにより、更に信頼性の高い消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を生成することができる。
《実施の形態7》
図22を用いて、実施の形態7の不揮発性記憶装置の制御方法を説明する。実施の形態1〜6において、データの書き込み中又はデータの消去中に電源遮断等が起こり処理が中断した場合であっても、第1のフラグ、第2のフラグ、第3のフラグ又は相補データを用いて、次回起動時にそのことを検知し、消去済みテーブル105及び/又は論理アドレス/物理アドレス変換テーブル106を正確に生成できる不揮発性記憶装置の制御方法について説明した。
実施の形態7の不揮発性記憶装置の制御方法においては、上記第1〜第3のフラグ及び相補データを有さない、従来の物理ブロックと同じ構成であっても、正確にデータを書き込むことができる方法を実現する。実施の形態7において、物理ブロックは第1〜第3のフラグ及び相補データを有さず、従来例と同一の方法で初期化処理を行うため、電源遮断等により処理が中断されたことを検知することはできない。例えば、電源遮断等により、消去が完了していない不正な物理ブロックを誤って消去済みと判断し、消去済みテーブル105に登録する場合がある(図4、ステップ404)。
そこで、実施の形態7においては、図22の方法を用いてデータの書き換えを行う。図22は実施の形態7の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図22において、図25と同一ステップには同一符号を付し、説明を省略する。実施の形態7のデータの書き換え方法(図22)が、従来例(図25)と違うところは、ステップ2202が追加された点である。
ホスト102からデータの書き込み指令を受信すると、不揮発性記憶装置101のコントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロックとして確保する(ステップ601)。しかし、その書き込み先物理ブロックは書き込み中又は消去中の電源遮断等の異常により、実際には消去済みでないのに、初期化処理において間違って消去済みテーブルに登録されている可能性がある。そのため、確保した書き込み先物理ブロックを一旦消去し、確実に消去済みの状態にする(ステップ2202)。その後、物理ブロックにデータを書き込む(ステップ603)。
実施の形態7の制御方法は、初期化処理で消去済みでない物理ブロックを誤って消去済みと判断し、消去済みテーブル105に登録した場合であっても、データの書き込み前に一旦物理ブロックを消去することによりホスト102からの書き込み指令を正しく処理することができる。
なお、実施の形態7の不揮発性記憶装置の制御方法を実施の形態1〜6と組み合わせても良い。これにより、書き込み時間及び読み出し時間等の処理時間は多くなるが、消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を正確に生成でき、且つ確実に消去済みの物理ブロックにデータを書き込むことができる。
《実施の形態8》
図23を用いて、実施の形態8の不揮発性記憶装置の制御方法を説明する。実施の形態8は、実施の形態7と同様に、物理ブロックが第1〜第3のフラグ及び相補データを有さない、従来の物理ブロックと同じ構成であっても、正しくデータの書き換えをすることができる方法である。
図23は、実施の形態8の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図23において、図22と同一のステップには同一の符号を付し、説明を省略する。実施の形態8のデータの書き換え方法(図23)が、実施の形態7(図22)と違うところは、ステップ2302及びステップ2303が追加されたことである。それ以外の点において、実施の形態7と同一である。
実施の形態7では、データの書き込み前にすべての物理ブロックを一旦消去した。しかし、不揮発性メモリ103の物理ブロックの消去に要する時間は、物理ブロックの1ページの読み出しに要する時間よりもはるかに長い。そこで、実施の形態8においては、書き込み先物理ブロックの管理情報を有する先頭ページのデータを読み出す(ステップ2302)。物理ブロックが消去済みでない場合、先頭ページの冗長領域に、その物理ブロックの管理情報(例えばデータ領域に書き込まれたデータの相補データ、ECC符号及び/又はCRC符号、その物理ブロックに対応する論理アドレス等の情報)が書き込まれている。先頭ページを読み出し、管理情報が全て1か、又は0を含むかを検出すれば、物理ブロックが消去済みか否か判断することができる。
先頭ページが消去済みか否か判断し(ステップ2303)、先頭ページが消去済みでなければ、電源遮断等により物理ブロックの消去が完了していないと判断し、物理ブロックを消去する(ステップ2202)。先頭ページが消去済みであれば、ステップ2202を実行せずにステップ603に進む。
実施の形態8の制御方法は、初期化処理で消去済みでない物理ブロックを誤って消去済みと判断し、消去済みテーブル105に登録した場合であっても、ホスト102からの書き込み指令を正しく処理することができる。
実施の形態8では、物理ブロックの先頭ページを読み出して消去済みか否か判断し、未消去の物理ブロックのみを消去することにより、実施の形態7よりデータの書き換えに要する時間を短縮することができる。
なお、実施の形態8の不揮発性記憶装置の制御方法を実施の形態1〜6と組み合わせも良い。不揮発性メモリ103に不正な状態の物理ブロックが存在した場合、実施の形態を組み合わせて使用することにより、データの書き込みの正確性が向上する。消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を正確に生成でき、且つ確実に消去済みの物理ブロックにデータを書き込むことができる。
本発明は、データの書き込み中又は消去中に電源遮断等の異常が発生し処理が中断した場合であっても、次回起動後のデータ書き込みを正常に行える不揮発性記憶装置の制御方法を実現できるという有利な効果が得られる。これにより、正確に不揮発性メモリにアクセスでき、高いデータ信頼性を有する不揮発性記憶装置の制御方法を実現できる。
発明をある程度の詳細さをもって好適な形態について説明したが、この好適形態の現開示内容は構成の細部において変化してしかるべきものであり、各要素の組合せや順序の変化は請求された発明の範囲及び思想を逸脱することなく実現し得るものである。
本発明は、例えば携帯機器に接続使用する不揮発性記憶装置(例えばメモリカード)の制御方法として有用である。
本発明は、不揮発性記憶装置の制御方法に関する。
近年、音楽データや映像データを取り扱う携帯機器の記憶装置として、データの書き換えが可能で、携帯性が高く、電池等によるバックアップが不要であるフラッシュメモリ等の不揮発性メモリを備えた不揮発性記憶装置(例えば、メモリカード)が使われるようになってきた。
図1〜4、図24及び図25を用いて、従来の不揮発性記憶装置の制御方法を説明する。図1は不揮発性記憶装置の構成を示すブロック図である。図1において、101は不揮発性記憶装置、102はホストである。不揮発性記憶装置101は、不揮発性メモリ103、コントローラ104、消去済みテーブル105、論理アドレス/物理アドレス変換テーブル106を有する。不揮発性メモリ103はフラッシュメモリである。ホスト102は不揮発性記憶装置101にデータの書き込み及び読み出し等を指令し、書き込むデータを伝送し、不揮発性記憶装置101から送られた読み出しデータを受け取る。不揮発性記憶装置101のコントローラ104は、ホスト102からの指令に基づいて、不揮発性メモリ103にデータを書き込むこと又は不揮発性メモリ103のデータを読み出すこと等の制御をする。
不揮発性メモリ103は複数の物理ブロックで構成される。図24を用いて、物理ブロックの構成を説明する。図24は従来例の不揮発性メモリ103の物理ブロックの構成を示す図である。物理ブロック501は、32ページで構成される。1ページの容量は528バイトであり、512バイトのデータ領域502と16バイトの冗長領域503とに区分される。データ領域502はホスト102から伝送されるデータを書き込む領域である。冗長領域503はデータ領域502のECC符号及びその物理ブロック501に対応する論理アドレス等の管理情報を書き込む領域である。1ページはデータの書き込み単位、読み出し単位である。データの書き込み時には、物理ブロックのページ0からページ31まで順にページ単位でデータを書き込む。消去済みのメモリに1を書き込む動作は、省略することができる。物理ブロック501はデータの消去単位であり、消去時には物理ブロックに含まれる32ページ全てを一度に消去する。不揮発性メモリ103のデータは、消去済みの状態において全てのビットが1である。
不揮発性記憶装置101の電源投入後、コントローラ104は消去済みテーブル105と論理アドレス/物理アドレス変換テーブル106とをRAMに生成する初期化処理を行う。
図2は消去済みテーブル105の構成を示す図である。消去済みテーブル105は、物理ブロックが消去済み(未書き込み)か否かを示すテーブルであって、各物理ブロックに1ビットのデータが対応付けられている。図2において、左欄が物理アドレス(不揮発性メモリ103の物理ブロックのアドレスを「物理アドレス」と呼ぶ。)であり、右欄が、1が「消去済み」を示し、0が「消去済みでないこと」を示すデータである。左欄の物理アドレスは説明のために記載したものであって、通常RAMに書き込まれない。通常、物理アドレスを所定の変換式でRAMのアドレスに変換し、そのRAMアドレスに消去済み(未書き込み)か否かを示すビットを書き込む。
例えば初期化処理時、物理アドレス0の物理ブロックの先頭ページの冗長領域503に値0のビットを含むデータが書き込まれている場合(先頭ページの冗長領域503の全ビットが1である場合以外の場合)、書き込み済みと判断して、物理アドレス0のデータに0を書き込む。物理アドレス1の物理ブロックの先頭ページの冗長領域503が全て1のデータである場合、消去済みと判断して、物理アドレス1のデータに1を書き込む。このようにして、最終物理アドレスまでの消去済みテーブル105を完成させる。
図3は論理アドレス/物理アドレス変換テーブル106の構成を示す図である。不揮発性メモリ103を用いた不揮発性記憶装置101において、ホスト102から指定されるアドレス(「論理アドレス」と呼ぶ。)と、不揮発性メモリ103内に配置されるアドレス(「物理アドレス」と呼ぶ。)は一般的に一致しない。一致させると、不揮発性メモリ内で不良が発生した物理アドレスを使用できないこと又はデータの書き換えに時間がかかること等によりアプリケーションに負担がかかるからである。又、特定アドレスに書き込みが頻発するシステムでは、その物理アドレスが短期間で書き換え保証回数(一般に不揮発性メモリの書き換え保証回数は制限される。)を上回り短寿命になってしまう、という不都合が生じるからである。不揮発性記憶装置101のコントローラ104は、ホスト102が指定した論理アドレスを物理アドレスに変換し、物理ブロックのデータ記録時に、冗長領域503にその物理アドレスに対応する論理アドレスを書き込む。一般的に先頭ページの冗長領域503に論理アドレスを書き込む。
不揮発性記憶装置101の電源投入後、コントローラ104は物理ブロックの冗長領域503に書き込まれている論理アドレスを読み出して、RAM上に論理アドレス/物理アドレス変換テーブル106を生成する。例えば物理アドレス0の物理ブロックの先頭ページにデータが有り、論理アドレスとして2が書き込まれている場合、論理アドレス/物理アドレス変換テーブル106の論理アドレス2に対応する物理アドレスに0を書き込む。物理アドレス2の物理ブロックの先頭ページにデータが有り、論理アドレスとして999が書き込まれている場合、論理アドレス/物理アドレス変換テーブル106の論理アドレス999に対応する物理アドレスに2を書き込む。対応する論理アドレスのデータが不揮発性メモリ103の中にない場合、例えば論理アドレスとして1が書き込まれた物理ブロックがない場合、論理アドレス/物理アドレス変換テーブル106の論理アドレス1に対応する物理アドレスに、データが存在しないことを示す値である1000を書き込む。
図4は従来の不揮発性記憶装置101の初期化処理のフローチャートである。ブロックカウンタに0(初期値)を設定する(ステップ401)。コントローラ104は、不揮発性メモリ103の読み出し対象である物理ブロックの先頭ページの冗長領域503を読み出す(ステップ402)。冗長領域503が消去済みか否か判断する(ステップ403)。冗長領域503が全て1のデータである場合は消去済み、値0のビットを含むデータが書き込まれている場合は書き込み済みと判断する。冗長領域503が消去済みであれば、消去済みテーブル105のその物理ブロック欄に1を書き込み、物理ブロックが消去済みであると登録する(ステップ404)。冗長領域503が消去済みでなければ、消去済みテーブル105のその物理ブロック欄に0(消去済みでない)を書き込む(ステップ405)。冗長領域503が消去済みでなければ、更に冗長領域503に書き込まれている論理アドレスを読み出して、論理アドレス/物理アドレス変換テーブル106のその論理アドレスに対応する位置に物理アドレスを登録する(ステップ406)。最終物理ブロックであるか否か判断する(ステップ407)。最終物理ブロックでなければ、ブロックカウンタに1を加算し(ステップ408)、ステップ402に戻り処理を繰り返す。最終物理ブロックであれば、初期化を終了する。
不揮発性メモリ103のデータ書き換え方法を説明する。ホスト102が不揮発性記憶装置101にデータの書き込みを指令すると、コントローラ104は不揮発性メモリ103にホスト102から伝送されたデータを書き込む。図25は、従来例の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。コントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロックとして確保する(ステップ601)。確保した物理ブロックにデータをページ単位で書き込む(ステップ603)。無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む物理ブロック(旧物理ブロック)を消去する(ステップ604)。旧物理ブロックをその場で直ちに消去しても良く、一旦、そのデータが無効であるか否かを示すフラグを無効を示す値にセットしておき、別タイミングで消去しても良い。消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。具体的には、消去済みテーブル105に、書き込みを行った物理ブロックに対応するビットに0(書き込み済み)を書き込む。旧物理ブロック(無効データを含む物理ブロック)を消去後、旧物理ブロックに対応するビットに1(消去済み)を書き込む。論理アドレス/物理アドレス変換テーブル106の論理アドレスに対応する物理アドレスを、旧物理ブロックから書き込みを行った新物理ブロックに更新する。
ステップ603でデータの書き込み中に電源遮断等の異常が発生した場合、書き込み途中の物理ブロックのデータが不正なデータになるおそれがある。
特開2001−51883号公報に、電源遮断の異常等により書き込み途中で処理を終了した場合、次回起動時に自動的に書き込み前の状態に復元する自己修復機能を備えた不揮発性メモリを有する従来例1の不揮発性記憶装置が記載されている。従来例1の不揮発性記憶装置は、メモリ外に、書き込み中フラグ、アドレスバッファ及びデータバッファを有する。データ書き込み中には、書き込み中フラグを有効状態にし、それ以外の時には書き込み中フラグを無効状態にする。起動時に書き込み中フラグが有効状態であれば、データバッファの内容をアドレスバッファが示すメモリ領域に書き込む。又、これにより、起動時に、異常な書き込み前の状態に復元できる。
特開2001−51883号公報
従来例の不揮発性記憶装置において、ステップ603で物理ブロックの先頭ページにデータを書き込んでいる時に電源遮断等の異常が発生した場合、データ領域502のみにデータが一部書き込まれており、冗長領域503は消去済み(未書き込み)という状態があり得る。この状態で初期化処理を行うと、先頭ページの冗長領域503のデータをもとに消去済みテーブル105を生成するので、この物理ブロックを消去済みと誤判定することになる。
ステップ604で旧物理ブロックの消去中に電源遮断等の異常が発生した場合、旧物理ブロックの先頭ページは消去済みで、他のページは消去されていない状態があり得る。この状態で初期化処理を行うと、この旧物理ブロックを消去済みと誤判定することになる。
このように消去済みでない物理ブロックを消去済みと誤判定すると、その後データの書き込みが発生した場合に、消去済みと誤判定された物理ブロックにデータを書き込むことになる。不揮発性メモリは書き込み済みの物理ブロックにデータを上書きすることができない(ページ単位で、0のビットに1を書き込むことはできない。)ため、正しく書き込むことができず不正データとなるという問題があった。
また、書き込み中断又は消去中断により、物理ブロックの先頭ページの冗長領域は書き込み済みで、他のページは書き込み済みでないという状態があり得る。この状態で初期化処理を行うと、先頭ページの冗長領域に書き込まれた論理アドレスを読み出して、論理アドレス/物理アドレス変換テーブル106に登録してしまう。書き込み途中又は消去途中の物理ブロックを書き込み済みの有効な物理ブロックと誤判定してしまう。物理ブロックの先頭ページの冗長領域503には不揮発性メモリ103の管理データが書き込まれていることが多く、初期化処理において誤ったテーブルを生成すると、不揮発性メモリ103に対してアクセスできなくなるおそれがある。
従来例1の不揮発性記憶装置は、データを書き込む前に必ず、多くのバッファ(書き込み中フラグ、アドレスバッファ(論理アドレスバッファ、旧物理アドレスバッファ、新物理アドレスバッファ)及びデータバッファ)にデータを書き込む必要が有る故に、不揮発性記憶装置の処理が遅くなる恐れがある。
本発明は、データの書き込み中又は消去中に電源遮断等の異常が発生し処理が中断した場合であっても、次回起動後のデータ書き込みを正常に行える不揮発性記憶装置の制御方法を提供することを目的とする。これにより、正確に不揮発性メモリにアクセスでき、高いデータ信頼性を有する不揮発性記憶装置の制御方法を提供できる。
上記課題を解決するため、本発明は下記の構成を有する。
本発明の1つの観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の、先頭ページの前記冗長領域に設けられその先頭ページにデータが書き込まれているか否かを示す第1のフラグに、データが書き込まれていることを示す固定値を書き込む第1のフラグ書き込みステップと、その物理ブロックにデータを書き込むデータ書き込みステップと、を有する。
従来の不揮発性記憶装置の制御方法においては、例えば32ページからなる物理ブロックにデータを書き込む場合、1ページを単位とする32回の書き込みステップでデータを書き込んだ。しかし、書き込みの途中で電源が遮断された場合、データの書き込みが完了していない不正な物理ブロックが存在する。このような突然の電源遮断も考慮して、1つの物理ブロックが消去済みであるか否かを確実に知ろうとすれば、32ページの全ビットを調べ、全ビットが1であるか又は0のビットが含まれるかを調べなければならなかった。
第1ページ目に第1のフラグを割り付け、第1ページ目のデータを第1のフラグと一緒に書き込むことも考えられる。しかし、第1ページ目の書き込み途中に電源が遮断された場合、第1ページ目のデータ領域にはデータが正常に書き込まれ、第1のフラグは書き込まれない状態(0を記録しようとしたが、そのビットの値は1のままである状態)が発生し得る。従って、このような方法でも1つの物理ブロックが真に消去済みであるか否かを判断することは困難である。
本発明においては、最初に、固定値(実施の形態では00)の第1のフラグのみを単独で書き込み、その後通常のデータを32ページに書き込む。従って、一旦書き込みを開始したならば、書き込み途中に電源が遮断したとしても、第1のフラグは確実に所定の固定値(例えば00)である。もし第1のフラグが固定値でなければ(例えば11)、その物理ブロックは確実に消去済みである。
本発明は、書き込み途中で電源が遮断されても、物理ブロックが消去済みか否かを確実に検知できる不揮発性記憶装置の制御方法を実現する。
本発明の他の観点による上記の不揮発性記憶装置の制御方法は、不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの前記第1のフラグを読み出して、前記第1のフラグが書き込み済みか否かに基づいて、論理アドレス/物理アドレス変換テーブルと消去済みテーブルとを生成する初期化ステップを更に有する。
本発明によれば、データ書き込みの途中で電源が遮断された後の初期化処理においても、短時間で正確な消去済みテーブルを生成できる。これにより、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。
本発明の別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリの論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルを用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、前記物理ブロックにデータを書き込むデータ書き込みステップと、前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の所定のページの冗長領域に設けられその物理ブロックにデータが書き込まれているか否かを示す第2のフラグに、その物理ブロックにデータが書き込まれていることを示す固定値を書き込む第2のフラグ書き込みステップと、を有する。
従来の不揮発性記憶装置の制御方法においては、例えば32ページからなる物理ブロックにデータを書き込む場合、1ページを単位とする32回の書き込みステップでデータを書き込んだ。しかし、書き込みの途中で電源が遮断された場合、データの書き込みが完了していない不正な物理ブロックが生じる。このような突然の電源遮断も考慮して、1つの物理ブロックが真に書き込み済みであるか否かを判断することは困難である。
所定のページ、好ましくは第32ページ目に第2のフラグを割り付け、第32ページ目のデータを第2のフラグと一緒に書き込むことも考えられる。しかし、第32ページ目の書き込み途中に電源が遮断された場合、第2のフラグは正常に書き込まれ、他のいずれかのビットが書き込まれない状態(0を記録しようとしたが、そのビットの値は1のままである状態)が発生し得る。従って、このような方法でも1つの物理ブロックが真に書き込み済みであるか否かを判断することは困難である。
本発明においては、通常のデータを32ページに書き込み、最後に、所定の固定値(実施の形態では00)の第2のフラグのみを単独で書き込む。従って、第2のフラグが固定値(例えば00)であれば、その物理ブロックの書き込みは確実に終了している。第2のフラグが固定値でなければ(例えば11)、データの書き込みの途中で電源が遮断されたと判断できる。
本発明は、書き込み途中で電源が遮断されても、物理ブロックが正しく書き込み終了したか否かを確実に検知できる不揮発性記憶装置の制御方法を実現する。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの前記第2のフラグを読み出して、前記第2のフラグが書き込み済みか否かに基づいて、論理アドレス/物理アドレス変換テーブルを生成する初期化ステップを更に有する。
本発明によれば、データ書き込みの途中で電源が遮断された後の初期化処理においても、短時間で正確な論理アドレス/物理アドレス変換テーブルを生成できる。これにより、書き込みが完了していない不正な物理ブロックを有効な物理ブロックと誤判定することを防ぐことができる。
本発明の更に別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の先頭ページの前記冗長領域に設けられその先頭ページにデータが書き込まれているか否かを示す第1のフラグに、データが書き込まれていることを示す固定値を書き込む第1のフラグ書き込みステップと、その物理ブロックにデータを書き込むデータ書き込みステップと、前記物理ブロックの所定のページの冗長領域に設けられその物理ブロックにデータが書き込まれているか否かを示す第2のフラグに、その物理ブロックにデータが書き込まれていることを示す固定値を書き込む第2のフラグ書き込みステップと、を有する。
本発明においては、最初に第1のフラグに固定値(実施の形態では00)を単独で書き込み、その後通常のデータを32ページに書き込み、最後に固定値(実施の形態では00)の第2のフラグのみを単独で書き込む。従って、第1のフラグが固定値でなければ(例えば11)、その物理ブロックは消去済みと判断できる。第1のフラグが固定値(例えば00)で、第2のフラグが固定値でなければ(例えば11)、データ書き込みの途中で電源が遮断され、書き込みが完了していないと判断できる。第1のフラグと第2のフラグが共に固定値(例えば00)であれば、その物理ブロックの書き込みは確実に完了していると判断できる。
本発明は、書き込み途中で電源が遮断されても、物理ブロックが消去済みか否か、物理ブロックが正しく書き込み終了したか否かを確実に検知できる不揮発性記憶装置の制御方法を実現する。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの前記第1のフラグ及び前記第2のフラグを読み出して、前記第1のフラグ及び前記第2のフラグが書き込み済みか否かに基づいて、論理アドレス/物理アドレス変換テーブルと消去済みテーブルとを生成する初期化ステップを更に有する。
本発明によれば、データ書き込みの途中で電源が遮断された後の初期化処理においても、短時間で正確な消去済みテーブルと論理アドレス/物理アドレス変換テーブルとを生成できる。これにより、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。書き込みが完了していない不正な物理ブロックを有効な物理ブロックと誤判定することを防ぐことができる。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、物理ブロックにデータを書き込む時、最後のページのデータのECC符号及び/又はCRC符号を、又はそれらと更に前記ECC符号及び/又はCRC符号の相補データとをその最後のページの冗長領域に書き込む書き込みステップと、前記不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの最後のページからデータとそのデータのECC符号及び/又はCRC符号を読み出して、又はそれらと更に前記ECC符号及び/又はCRC符号の相補データとを読み出して、誤り検出を行い、誤りの有無に基づいて、論理アドレス/物理アドレス変換テーブルを生成する初期化ステップを有する。
本発明によれば、データ書き込みの途中で電源が遮断された後の初期化処理においても、短時間で正確な論理アドレス/物理アドレス変換テーブルを生成できる。これにより、書き込みが完了していない不正な物理ブロックを有効な物理ブロックと誤判定することを防ぐことができる。上記の構成において、第1のフラグを有しない構成としても良い。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記物理ブロックの最後のページの、単独で別個に書き込み可能なデータを書き込むための領域を除く領域の全てのアドレスにデータを書き込み、その領域をデータと前記データのECC符号及び/又はCRC符号とで埋め尽くし、又はそれらに更に前記ECC符号及び/又はCRC符号の相補データを加えて埋め尽くす最後のページ書き込みステップを有する。
本発明においては、通常のデータを31ページに書き込み、最後のページにデータを書き込むときに、所定の領域を通常のデータと、ECC符号及び/又はCRC符号とで埋め尽くし、又はそれらと更に相補データとを加えて埋め尽くす。初期化処理において、データの整合性に基づいて(誤り検出の有無)、データの書き込みが完了しているか否か判断できる。
本発明は、書き込み途中で電源が遮断されても、物理ブロックが正しく書き込み完了したか否かを検知できる不揮発性記憶装置の制御方法を実現する。上記の構成において、第1のフラグを有しない構成としても良い。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの最後のページの前記データと、前記データのECC符号及び/又はCRC符号とを読み出して、又はそれらと更に前記ECC符号及び/又はCRC符号の相補データとを読み出して、誤り検出を行い、誤りの有無に基づいて、論理アドレス/物理アドレス変換テーブルを生成する初期化ステップを更に有する。
本発明によれば、データ書き込みの途中で電源が遮断された後の初期化処理においても、短時間で正確な論理アドレス/物理アドレス変換テーブルを生成できる。これにより、書き込みが完了していない不正な物理ブロックを有効な物理ブロックと誤判定することを防ぐことができる。
本発明の更に別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、管理領域とデータ記録領域とを有する前記不揮発性メモリの前記管理領域に設けられ、無効データを有する物理ブロック(以下、「旧物理ブロック」と呼ぶ。)の物理アドレスと、前記旧物理ブロックの無効データが消去済みか否かを示す第3のフラグとを有する無効テーブル(消去予約テーブル)に、旧物理ブロックの物理アドレスを登録する物理アドレス登録ステップと、前記旧物理ブロックの無効データを消去する無効データ消去ステップと、前記旧物理ブロックの物理アドレスに対応する前記第3のフラグに前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、を有する。
従来の不揮発性記憶装置の制御方法において、物理ブロックのデータを消去する場合、例えばデータが無効であるか否かを示すフラグが無効にセットされている物理ブロックを消去した。しかし、消去の途中で電源が遮断された場合、データの消去は終了しておらず、0のビットが含まれている場合があった。このような突然の電源遮断も考慮して、1つの物理ブロックが消去済みであるか否かを確実に知ろうとすれば、32ページの全ビットを調べ、全ビットが1であるか又は0のビットが含まれるかを調べなければならなかった。
本発明においては、消去すべき物理ブロックのアドレスと第3のフラグとで構成される消去予約テーブルを不揮発性メモリの管理領域に生成し、物理ブロックを消去する前に、消去予約テーブルに消去すべき物理ブロックの物理アドレスを登録する。その後、その物理ブロックを消去する。最後に、消去した物理ブロックに対応する第3のフラグに固定値(実施の形態では00)を書き込む。
従って、一旦消去を開始したとしても、消去途中に電源が遮断された場合、第3のフラグは所定の固定値でない(例えば11)。消去予約テーブルに登録されている物理ブロックの第3のフラグが固定値でない場合、その物理ブロックの消去は終了していないことが確実に分かる。もし第3のフラグが所定の固定値であれば(例えば00)、その物理ブロックの消去は確実に終了している。
本発明は、消去途中で電源が遮断されても、物理ブロックの消去が終了したか否かを確実に検知できる不揮発性記憶装置の制御方法を実現する。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記不揮発性記憶装置の起動時に、前記管理領域の前記無効テーブルを読み出して、前記第3のフラグが書き込み済みでない前記旧物理ブロックの無効データを消去する無効データ消去ステップと、前記旧物理ブロックの物理アドレスに対応する前記第3のフラグに、前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、を更に有する。
本発明は、消去途中で電源が遮断されて物理ブロックの消去が終了していなくても、起動時にそのことを確実に検知して、物理ブロックを消去する不揮発性記憶装置の制御方法を実現する。これにより、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。
本発明の更に別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、前記物理ブロックにデータを書き込む時に、前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の所定のページの前記冗長領域に、無効データを有する旧物理ブロックの物理アドレスを登録する物理アドレス登録ステップと、前記旧物理ブロックの無効データを消去する無効データ消去ステップと、前記旧物理ブロックの物理アドレスが登録された前記冗長領域に設けられ、その旧物理ブロックの無効データが消去済みか否かを示す第3のフラグに、前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、を有する。
本発明は、消去途中で電源が遮断されても、物理ブロックの消去が終了したか否かを確実に検知できる不揮発性記憶装置の制御方法を実現する。本発明は、旧物理ブロックの物理アドレスと第3のフラグとをデータ書き込み先の物理ブロックの冗長領域に書き込むため、消去予約テーブルを作成するための専用の領域を不揮発性メモリの管理領域に設ける必要がない。物理ブロックの所定のページのデータ書き込みと同時に、旧物理ブロックの物理アドレスを登録するため、物理アドレス登録に要する時間が余分に発生することがなく、消去予約テーブルを設ける方法と比較して処理時間が短い。
本発明の更に別の観点による上記の不揮発性記憶装置の制御方法は、前記不揮発性記憶装置の起動時に、前記物理ブロックの冗長領域の前記第3のフラグを読み出して、前記第3のフラグが書き込み済みでない前記旧物理ブロックの無効データを消去する無効データ消去ステップと、前記第3のフラグに、前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、を更に有する。
本発明は、消去途中で電源が遮断されて物理ブロックの消去が終了していなくても、起動時にそのことを確実に検知して、物理ブロックを消去する不揮発性記憶装置の制御方法を実現する。これにより、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。
本発明の更に別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、データの書き込みを実行する前記物理ブロックを決定した後、前記物理ブロックにデータを書き込む前に、必ず前記物理ブロックに書き込まれているデータを消去する旧データ消去ステップと、を有する。
本発明によれば、未消去の物理ブロックに誤ってデータを書き込むという事故を確実に防ぐことができる。
本発明の更に別の観点による不揮発性記憶装置の制御方法は、不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、前記物理ブロックにデータを書き込む前に、前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の先頭ページを読み出して、前記先頭ページの前記冗長領域に設けられたその物理ブロックの管理情報に基づいて、前記先頭ページが消去済みか否かを判断し、消去済みでなければ前記物理ブロックに書き込まれているデータを消去する旧データ消去ステップと、を有する。
本発明によれば、未消去の物理ブロックに誤ってデータを書き込むという事故を確実に且つ効率的に防ぐことができる。
発明の新規な特徴は添付の請求の範囲に特に記載したものに他ならないが、構成及び内容の双方に関して本発明は、他の目的や特徴と共に、図面と共同して理解されるところの以下の詳細な説明から、より良く理解され評価されるであろう。
図面の一部又は全部は、図示を目的とした概要的表現により描かれており、必ずしもそこに示された要素の実際の相対的大きさや位置を忠実に描写しているとは限らないことは考慮願いたい。
本発明は、データの書き込み中又は消去中に電源遮断等の異常が発生し処理が中断した場合であっても、次回起動後のデータ書き込みを正常に行える不揮発性記憶装置の制御方法を実現できるという有利な効果が得られる。これにより、正確に不揮発性メモリにアクセスでき、高いデータ信頼性を有する不揮発性記憶装置の制御方法を実現できる。
以下本発明の実施をするための最良の形態を具体的に示した実施の形態について、図面とともに記載する。
《実施の形態1》
図1〜7を用いて、実施の形態1の不揮発性記憶装置の制御方法を説明する。図1において、101は不揮発性記憶装置、102はホストである。不揮発性記憶装置101は、不揮発性メモリ103、コントローラ104、消去済みテーブル105、論理アドレス/物理アドレス変換テーブル106を有する。実施の形態1において、不揮発性記憶装置101はメモリカードであり、ホスト102は携帯電話であり、不揮発性メモリ103はフラッシュメモリである。図1〜4は従来例と同一であるため、詳細な説明を省略する。
図5は本発明の不揮発性メモリ103の物理ブロックの構成を示す図である。物理ブロック501は、32ページで構成される。1ページの容量は528バイトであり、512バイトのデータ領域502と16バイトの冗長領域503とに区分される。1ページはデータの書き込み単位、読み出し単位である。データの書き込みは、物理ブロックのページ0からページ31まで順にページ単位で書き込まれる。物理ブロックはデータの消去単位であり、消去時には物理ブロックに含まれる32ページ全てを一度に消去する。
不揮発性メモリの物理ブロック501のデータは1と0とで表され、消去済みの状態において全てのビットが1である。データの書き込みは0を書き込むことであって、0のビットに1を上書きすることはできない。そのため、消去済みでない物理ブロックに新しいデータを上書きで書き込むと、不正データとなる。新しいデータは、消去済みの物理ブロックに書き込まなければならない。
実施の形態1の物理ブロックが従来例の物理ブロックの構成(図24)と違うところは、先頭ページであるページ0の冗長領域503に第1のフラグ511を有することである。第1のフラグ511は、データ信頼性を高めるため、複数ビットデータで表す。実施の形態1において、第1のフラグは2ビットで構成され、論理値11又は00で表す。それ以外の点において、本発明の実施の形態1の物理ブロックは、従来例の構成と同一である。
図6及び図7を用いて、実施の形態1の不揮発性記憶装置101のデータの書き換え方法を説明する。図6は実施の形態1の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図7は、実施の形態1の物理ブロックにデータが書き込まれる状態を段階的に示す図である。
ホスト102からデータの書き込み指令を受信すると、不揮発性記憶装置101のコントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロックとして確保する(ステップ601)。不揮発性メモリ103の物理ブロック501は、消去済みの状態においてビットは全て1である(図7(a))。
まず、確保した物理ブロックの第1のフラグに固定値(消去した時の値と異なる値であって、実施の形態では00)を書き込む(ステップ602、図7(b))。具体的には、第1のフラグのみが00でそれ以外のデータが全て1であるデータを先頭ページに書き込む。書き込み先物理ブロックは、先頭ページの冗長領域503の一部(第1のフラグ511)のみが書き込み済みの状態となる。第1のフラグ511は、これからその物理ブロックにデータの書き込みが開始されることを示す。その後、第1のフラグ以外のデータを物理ブロックのページ0からページ31まで順にページ単位で書き込む(ステップ603、図7(c))。
無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む旧物理ブロックを消去する(ステップ604)。消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。具体的には、消去済みテーブル105に、ステップ601で確保した物理ブロックに対応するビットに0(書き込み済み)を書き込む。ステップ604で消去した旧物理ブロックに対応するビットに1(消去済み)を書き込む。論理アドレス/物理アドレス変換テーブル106の論理アドレスに対応する物理アドレスを、旧物理ブロックから書き込みを行った物理ブロックを示すように更新する。
第1のフラグを別ステップで書き込む実施の形態1の書き込み方法は、従来例の書き込み方法より1ステップ処理が多い。しかし、例えば1ページ(最小書き込み単位)の書き込みを1ステップで実行するとすれば、1物理ブロック(32ページ)の書き込みに要する書き込みステップ数は、従来の32ステップより1ステップ多い33ステップになるだけである。
例えば、不揮発性メモリ103に、1ページ分のデータを転送する時間は40μs、1ページ分のデータの書き込み時間は200μsであるので、1物理ブロックの書き込み時間は、(40+200)×32=7680μsである。これに対し、1ページ分の冗長領域のみのデータを転送する時間は1.5μsで、1ページ分のデータの書き込み時間は200μsであるので、1ページ分の冗長領域のみの書き込み時間は1.5+200=201.5μsである。従って、実施の形態1のデータの書き込み時間(201.5μs+7680μs)は従来例(7680μs)より約2.6%長くなるだけである。実施の形態は、アドレス、データ等を常に2箇所に書き込む従来例1と比較してはるかにデータ書き込み速度が速い。1ページの書き込みステップ数が1ステップでなく複数ステップであれば、第1のフラグを別ステップで書き込むことによる処理速度の低下の割合は、更に小さい。
図4を用いて、実施の形態1の初期化処理を説明する。図4は従来例の不揮発性記憶装置101の初期化処理のフローチャートであり、本発明の実施の形態1は従来例と同一の方法で初期化処理を行う。不揮発性メモリ103の全ての物理ブロックについて、先頭ページのみの冗長領域503を読み出して(ステップ402)、物理ブロックが消去済みか否かを判断する(ステップ403)。物理ブロックが消去済みか否かの判断は、先頭ページの冗長領域503が全て1のデータである場合は消去済み、値0のビットを含むデータが書き込まれている場合は書き込み済みとする。
本発明の実施の形態1は、データの書き込み前に第1のフラグに固定値を書き込んでいるので(ステップ602)、電源遮断等の異常によりデータの書き込みが中断した物理ブロックにおいても、第1のフラグには既に00が書き込まれている。例えば、先頭ページにデータを書き込み中に処理が中断した物理ブロックにおいても、第1のフラグは00である。従って、実施の形態1の不揮発性記憶装置101は、データの書き込みが中断した(完全に消去済みでない)物理ブロックを消去済みと誤って判定し、消去済みテーブル105に登録することはない。
本発明の実施の形態1の不揮発性記憶装置の制御方法によれば、データより先に第1のフラグを書き込むことにより、従来例と同じ初期化処理を用いて、物理ブロックが消去済みか否かを確実に検知できる。データの書き込みが電源遮断等によって途中で中断した場合であっても、消去済みテーブル105を正しく生成することができ、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。
《実施の形態2》
図1〜3、図8〜11を用いて、実施の形態2の不揮発性記憶装置の制御方法を説明する。図1〜3は、従来例及び実施の形態1と同一であるため、詳細な説明を省略する。図8は本発明の実施の形態2の不揮発性メモリ103の物理ブロックの構成を示す図である。図8において、従来例(図24)と同一部には同一符号を付している。
実施の形態2の物理ブロックが従来例の物理ブロックの構成と違うところは、所定のページ(実施の形態2においては、最後のページであるページ31)の冗長領域503に第2のフラグ801を有することである。第2のフラグ801は、データ信頼性を高めるため、複数ビットデータで表す。実施の形態2において、第2のフラグは2ビットで構成され、論理値11又は00で表す。それ以外の点において、本発明の実施の形態2の物理ブロックは、従来例の構成と同一である。
図9及び図10を用いて、実施の形態2の不揮発性記憶装置101のデータの書き換え方法を説明する。図9は実施の形態2の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図9において、実施の形態1の図6と同一ステップには、同一符号を付している。図10は、実施の形態2の物理ブロックにデータが書き込まれる状態を段階的に示す図である。
ホスト102からデータの書き込み指令を受信すると、不揮発性記憶装置101のコントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロックとして確保する(ステップ601)。不揮発性メモリ103の物理ブロック501は、消去済みの状態においてビットは全て1である(図10(a))。
確保した物理ブロックにデータをページ単位で書き込む(ステップ603、図10(b))。具体的には、ページ0からページ30まで順にデータを書き込む。第2のフラグ以外のデータをページ31に書き込む。具体的には、第2のフラグを11として所望のデータを最後のページに書き込む。その結果、書き込み先物理ブロックは、最後のページの冗長領域503の一部(第2のフラグ801)以外は全て書き込み済みの状態となる。
最後に、第2のフラグに固定値(消去した時の値と異なる値であって、実施の形態では00)を書き込む(ステップ901、図10(c))。具体的には、第2のフラグのみが00でそれ以外のデータが全て1であるデータを最後のページに書き込む。第2のフラグの書き込みが完了した時点で、その物理ブロックのデータの書き込みが完了する。第2のフラグ801は、物理ブロックのデータの書き込みが完了したことを示す。
無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む旧物理ブロックを消去する(ステップ604)。
消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。具体的には、消去済みテーブル105に、ステップ601で確保した物理ブロックに対応するビットに0(書き込み済み)を書き込む。ステップ604で消去した旧物理ブロックに対応するビットに1(消去済み)を書き込む。論理アドレス/物理アドレス変換テーブル106の論理アドレスに対応する物理アドレスを、旧物理ブロックから書き込みを行った物理ブロックを示すように更新する。
第2のフラグを別ステップで書き込む実施の形態2の書き込み方法は、従来例の書き込み方法より1ステップ処理が多い。しかし、例えば1ページ(最小書き込み単位)の書き込みを1ステップで実行するとすれば、1物理ブロック(32ページ)の書き込みに要する書き込みステップ数は、従来の32ステップより1ステップ多い33ステップになるだけである。
例えば、不揮発性メモリ103に、1ページ分のデータを転送する時間は40μs、1ページ分のデータの書き込み時間は200μsであるので、1物理ブロックの書き込み時間は、(40+200)×32=7680μsである。これに対し、1ページ分の冗長領域のみのデータを転送する時間は1.5μsで、1ページ分のデータの書き込み時間は200μsであるので、1ページ分の冗長領域のみの書き込み時間は1.5+200=201.5μsである。従って、実施の形態2のデータの書き込み時間(7680μs+201.5μs)は従来例(7680μs)より約2.6%長くなるだけである。実施の形態は、アドレス、データ等を常に2箇所に書き込む従来例1と比較してはるかにデータ書き込み速度が速い。1ページの書き込みステップ数が1ステップでなく複数ステップであれば、第2のフラグを別ステップで書き込むことによる処理速度の低下の割合は、更に小さい。
図11を用いて、実施の形態2の初期化処理を説明する。図11は実施の形態2の不揮発性記憶装置101の初期化処理のフローチャートである。図11において、図4(従来例及び実施の形態1)と同一ステップには同一符号を付している。
ブロックカウンタに0(初期値)を設定する(ステップ401)。コントローラ104は、不揮発性メモリ103の読み出し対象である物理ブロックの先頭ページの冗長領域503を読み出す(ステップ402)。
物理ブロックが消去済みか否か判断する(ステップ403)。物理ブロックが消去済みか否かの判断は、従来例と同様に先頭ページの冗長領域503が全て1のデータであるか、又は値0のビットを含むデータが書き込まれているかで行う。
先頭ページの冗長領域が全て1のデータである場合は、物理ブロックは消去済みと判断し、消去済みテーブル105のその物理ブロックに対応する欄に1を書き込み、物理ブロックが消去済みであると登録する(ステップ404)。ステップ407に進む。
先頭ページの冗長領域に値0のビットを含むデータが書き込まれている場合は消去済みでないと判断し、第2のフラグを有する最後のページの冗長領域を読み出す(ステップ1101)。第2のフラグが書き込み済みか否か判断する(ステップ1102)。第2のフラグが書き込み済みでなければ(=11)、その物理ブロックは電源遮断等によって書き込みが完了していないと判断し、物理ブロックを消去して(ステップ1103)、ステップ404に進む。
第2のフラグが書き込み済み(=00)の場合、消去済みテーブル105のその物理ブロック欄に0(消去済みでない)を書き込む(ステップ405)。先頭ページの冗長領域503に書き込まれている論理アドレスを読み出して、論理アドレス/物理アドレス変換テーブル106のその論理アドレスに対応する位置に物理アドレスを登録する(ステップ406)。ステップ407に進む。
最終物理ブロックであるか否か判断する(ステップ407)。最終物理ブロックでなければ、ブロックカウンタに1を加算し(ステップ408)、ステップ402に戻り処理を繰り返す。最終物理ブロックであれば、初期化を終了する。
実施の形態2の不揮発性記憶装置の制御方法は、データの書き込みが中断した不完全な物理ブロックを誤って論理アドレス/物理アドレス変換テーブル106に登録することがない。例えば、電源遮断等によって書き込み処理が中断した場合、第2のフラグは11のままである。先頭ページは書き込み済みであっても、最後のページまで書き込みが完了していないと判断できる。第2のフラグが00の場合、その物理ブロックの書き込みは完了していると判断できる。
本発明の実施の形態2の不揮発性記憶装置の制御方法によれば、データの書き込みが電源遮断等によって途中で中断した場合であっても、第2のフラグに基づいて論理アドレス/物理アドレス変換テーブル106を正しく生成することができる。
なお、実施の形態2において、第2のフラグ801は物理ブロックの最後のページに有した。これに代えて、第2のフラグを物理ブロックの最後のページ以外の任意のページの冗長領域503に有しても良い。この場合、図11の初期化処理のステップ1101において、最後のページに代えて第2のフラグを有するページの冗長領域を読み出せば良い。
《実施の形態3》
図11及び図12を用いて、実施の形態3の不揮発性記憶装置の制御方法を説明する。実施の形態3の不揮発性メモリ103の物理ブロック501は、第1のフラグと第2のフラグの両方を有する。実施の形態3の物理ブロックが有する第1のフラグ511及び第2のフラグ801はそれぞれ実施の形態1の第1のフラグ511及び実施の形態2の第2のフラグ801と同一である。
図12を用いて、実施の形態3の不揮発性記憶装置101のデータの書き換え方法を説明する。図12は実施の形態3の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図12において、実施の形態1の図6及び実施の形態2の図9と同一ステップには、同一符号を付している。
ホスト102からデータの書き込み指令を受信すると、不揮発性記憶装置101のコントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロックとして確保する(ステップ601)。不揮発性メモリ103の物理ブロック501は、消去済みの状態においてビットは全て1である(図7(a))。
まず、確保した物理ブロックの第1のフラグに固定値(実施の形態では00)を書き込む(ステップ602、図7(b))。書き込み先物理ブロックは、先頭ページの冗長領域503の一部(第1のフラグ511)のみが書き込み済みの状態となる。第1のフラグ511は、これからその物理ブロックにデータの書き込みが開始されることを示す。
その後、物理ブロックにデータをページ単位で書き込む(ステップ603、図7(c))。具体的には、第1のフラグ以外のデータをページ0に書き込む。ページ1からページ30まで順にデータを書き込む。第2のフラグ以外のデータをページ31に書き込む(図10(b))。
最後に、第2のフラグに固定値(実施の形態では00)を書き込む(ステップ901、図10(c))。第2のフラグの書き込みが完了した時点で、その物理ブロックのデータの書き込みが完了する。第2のフラグ801は、物理ブロックのデータの書き込みが完了したことを示す。
無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む旧物理ブロックを消去する(ステップ604)。
消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。具体的には、消去済みテーブル105に、ステップ601で確保した物理ブロックに対応するビットに0(書き込み済み)を書き込む。ステップ604で消去した旧物理ブロックに対応するビットに1(消去済み)を書き込む。論理アドレス/物理アドレス変換テーブル106の論理アドレスに対応する物理アドレスを、旧物理ブロックから書き込みを行った物理ブロックを示すように更新する。
図11を用いて、実施の形態3の初期化処理を説明する。実施の形態3は実施の形態2と同一の方法で初期化処理を行う。ステップ402で、物理ブロックの先頭ページのみの冗長領域503を読み出す。ステップ403の物理ブロックが消去済みか否かの判断において、先頭ページの冗長領域503が全て1のデータである場合は消去済み、値0のビットを含むデータが書き込まれている場合は書き込み済みと判断する。
先頭ページの冗長領域が全て1のデータである場合、つまり第1のフラグに固定値が書き込まれていない場合は、消去済みテーブル105のその物理ブロック欄に1を書き込み、物理ブロックが消去済みであると登録する(ステップ404)。
冗長領域503が消去済みでない、つまり第1のフラグに固定値が書き込まれている場合は、最後のページの冗長領域を読み出す(ステップ1101)。最後のページの冗長領域に有する第2のフラグが書き込み済みか否か判断する(ステップ1102)。第2のフラグが書き込み済みでなければ(=11)、その物理ブロックは電源遮断等によって書き込みが完了していないと判断し、その物理ブロックを消去して(ステップ1103)、ステップ404に進む。
第2のフラグが書き込み済み(=00)の場合、消去済みテーブル105のその物理ブロック欄に0(消去済みでない)を書き込む(ステップ405)。先頭ページの冗長領域503に書き込まれている論理アドレスを読み出して、論理アドレス/物理アドレス変換テーブル106のその論理アドレスに対応する位置に物理アドレスを登録する(ステップ406)。ステップ407に進む。
従って、実施の形態3における物理ブロックの状態は、下記のように判定できる。
第1のフラグ=11かつ第2のフラグ=11の場合、物理ブロックは消去済み(未書き込み)であることを示す。
第1のフラグ=00かつ第2のフラグ=11の場合、データの書き込みが電源遮断等によって途中で中断し、データの書き込みが開始されているが完了していないことを示す。
第1のフラグ=11かつ第2のフラグ=00の場合、正常な処理では発生しない。
第1のフラグ=00かつ第2のフラグ=00の場合、物理ブロックが書き込み済みであることを示す。
本発明の実施の形態3の不揮発性記憶装置の制御方法によれば、データより先に第1のフラグを書き込むことにより、物理ブロックが消去済みか否かを確実に検知できる。
本発明の実施の形態3の不揮発性記憶装置の制御方法によれば、データを書き込んだ後に第2のフラグを書き込むことにより、物理ブロックが書き込み済みか否かを確実に検知できる。
本発明の実施の形態3の不揮発性記憶装置の制御方法によれば、データの書き込みが電源遮断等によって途中で中断した場合であっても、第1のフラグと第2のフラグに基づいて、消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106の両方を正しく生成することができる。実施の形態3は、実施の形態1の効果と実施の形態2の効果の両方を有する。
なお、実施の形態3において、第2のフラグ801は物理ブロックの最後のページに有した。これに代えて、第2のフラグを物理ブロックの最後のページ以外の任意のページの冗長領域503に有しても良い。この場合、図11の初期化処理のステップ1101において、最後のページに代えて第2のフラグを有するページの冗長領域を読み出せば良い。
なお、第1のフラグ及び第2のフラグを別ステップで書き込むことにより、初期化処理において生成する消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106の正確性は向上する。しかし、実施の形態3の書き込み方法は、従来例の書き込み方法より2ステップ処理が多く、実施の形態1又は実施の形態2の書き込み方法より1ステップ処理が多いため、データの書き込みに要する時間は長い。例えば、1物理ブロックの書き込み時間が7680μsで、1ページの冗長領域のみの書き込み時間が201.5μsであるので、実施の形態3のデータの書き込み時間は従来例より5.2%、実施の形態1又は実施の形態2より約2.6%長くなる。
データの書き込みに要する時間及び初期化処理に要する時間の短縮を優先するか、又は消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106の正確性を優先するかによって、第1のフラグのみを有してもよいし(実施の形態1)、第2のフラグのみを有してもよいし(実施の形態2)、第1のフラグと第2のフラグを共に有してもよい(実施の形態3)。
《実施の形態4》
図13を用いて、実施の形態4の不揮発性記憶装置の制御方法を説明する。図13は、実施の形態4の不揮発性メモリ103の物理ブロック501の構成を示す図である。実施の形態4の物理ブロック501が、実施の形態2の物理ブロックと違うところは、第2のフラグ801に代えて、管理情報A1301及び管理情報A’1302を最後のページに有することである。それ以外の点において、実施の形態4の物理ブロックは、実施の形態2と同一である。
実施の形態4において、管理情報A1301は各物理ブロックについてユニークなデータであって、例えば最後のページのデータのECC符号及び/又はCRC符号を含む。管理情報A’1302は、管理情報Aのそれぞれのビットが反転したデータ(相補データ)である。
ECC符号、CRC符号は、最後のページの冗長領域503のデータのみのECC符号、CRC符号であっても良く、データ領域(又はデータ領域及び冗長領域)のデータのECC符号、CRC符号であっても良い。
好ましくは、物理ブロックの最後のページの、単独で別個に書き込み可能なデータ(例えば第2のフラグ等)を書き込むための領域を除く領域の全てのアドレスにデータを書き込み、その領域をデータと、ECC符号及び/又はCRC符号と、そのECC符号及び/又はCRC符号の相補データで埋め尽くす。これにより、電源の瞬時停電に起因する誤判断の確率を更に小さく出来る。
実施の形態4の不揮発性記憶装置101のデータ書き換え方法を説明する。実施の形態4の不揮発性記憶装置101のデータ書き換え方法は、従来例の図25と同一のフローチャートを用いて行う。但し、ステップ603の処理が異なる。実施の形態4の不揮発性記憶装置101は、物理ブロック501にデータを書き込む場合(ステップ603)、最後のページであるページ31のデータ領域502にデータを書き込むのと同時に冗長領域503に管理情報A及び管理情報A’を書き込む。それ以外の点においては、従来例のデータ書き換え方法と同一であるため、説明を省略する。
図11を用いて、実施の形態4の不揮発性記憶装置101の初期化処理を説明する。実施の形態4の初期化処理は、ステップ1101及びステップ1102が実施の形態2と異なる。実施の形態2では、最後のページの冗長領域のみを読み出して(ステップ1101)、第2のフラグ801が書き込み済みか否かに基づいて、物理ブロック501にデータが書き込まれているか否かを判断した(ステップ1102)。実施の形態4では、最後のページのデータ領域と冗長領域とを読み出す(ステップ1101)。データとECC符号及び/又はCRC符号とにより最後のページのデータに誤りがあるか否か、更に管理情報A1301及び管理情報A’1302が相補な関係であるか否か(整合しているか又は誤りを含むか)を判断する(ステップ1102)。データとECC符号及び/又はCRC符号とが整合し、且つ管理情報A及び管理情報A’が相補なデータである場合は、物理ブロックは書き込み済みと判断し、ステップ405に進む。データとECC符号及び/又はCRC符号とが整合せず、又は管理情報A1301及び管理情報A’1302が相補なデータでない(誤りを含む)場合は、物理ブロックの書き込みが電源遮断等により途中で中断したと判断し、ステップ1103で物理ブロックを消去した後、ステップ404に進む。それ以外の点においては、実施の形態2の初期化処理と同一であるため、説明を省略する。
実施の形態4の不揮発性記憶装置の制御方法によれば、データ領域502にデータを書き込むのと同時に冗長領域503に相補なデータ(管理情報A及びA’)を書き込むので、相補なデータを書き込むための余計なプログラム時間が不要である。物理ブロック501にデータを書き込んだ後に、第2のフラグ801を別ステップで書き込む実施の形態2と比較して、処理時間が早い。但し、実施の形態4の制御方法は、誤判断の可能性は極めてゼロに近いもののゼロではなく、正確の信頼性においては、実施の形態2の制御方法のほうが優れている。
データの書き込みに要する時間の短縮を優先するか、又は消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106の正確性を優先するかによって、第2のフラグを有しても良いし(実施の形態2)、相補データを有してもよい(実施の形態4)。
上記方法に代えて、管理情報A’1302を有さず、ECC符号及び/又はCRC符号のみを最後のページの冗長領域に有しても良い。好ましくは、物理ブロックの最後のページの、単独で別個に書き込み可能なデータ(例えば第2のフラグ等)を書き込むための領域を除く領域の全てのアドレスにデータを書き込み、その領域をデータと、ECC符号及び/又はCRC符号とで埋め尽くす。これにより、電源の瞬時停電に起因する誤判断の確率を更に小さく出来る。
ECC符号及び/又はCRC符号は、物理ブロック501の最後のページであるページ31のデータ領域502にデータを書き込むのと同時に、冗長領域503に書き込む。それ以外の点においては、従来例のデータ書き換え方法と同一である。
図11を用いて、管理情報A’1302を有さない場合の不揮発性記憶装置101の初期化処理を説明する。最後のページのデータ領域と冗長領域とを読み出す(ステップ1101)。データとECC符号及び/又はCRC符号とにより最後のページのデータに誤りがあるか否かを判断する(ステップ1102)。データとECC符号及び/又はCRC符号とが整合すれば、物理ブロックは書き込み済みと判断し、ステップ405に進む。データとECC符号及び/又はCRC符号とが整合しなければ、物理ブロックの書き込みが電源遮断等により途中で中断したと判断し、ステップ1103で物理ブロックを消去した後、ステップ404に進む。それ以外の点においては、管理情報A’1302を有する上記の初期化処理と同一であるため、説明を省略する。
《実施の形態5》
図14〜図18を用いて、実施の形態5の不揮発性記憶装置の制御方法を説明する。実施の形態1〜4の不揮発性記憶装置の制御方法は、データの書き込み中に電源遮断が起こった場合に対処する方法であった。実施の形態5の不揮発性記憶装置の制御方法は、データの消去中に電源遮断が起こった場合に対処できる方法である。
従来例(図25)のステップ604において旧物理ブロックを消去している最中に電源遮断が発生すると、その旧物理ブロックの消去が終了していない可能性がある。この状態で、電源再投入時に初期化処理を行うと、完全に消去していない旧物理ブロック(例えば最初のページの冗長領域が消去済みで、残りのデータは書き込み済みの物理ブロック)を誤って消去済みと判断し、消去済みテーブル105に登録する可能性がある。また、完全に消去していない旧物理ブロック(例えば最初のページの冗長領域は書き込み済みで、残りのデータが消去済みの物理ブロック)を誤って書き込み済みと判断し、論理アドレス/物理アドレス変換テーブル106に登録する可能性もある。
上記のような誤判断を防ぐため、実施の形態5の不揮発性記憶装置の制御方法は、データの消去中に電源遮断が起こった場合に対処できる方法を実現する。実施の形態5の不揮発性記憶装置101は、旧物理ブロックが消去済みか否かを判断するための消去予約テーブルを不揮発性メモリに有する。
図14は、不揮発性メモリの構成を示す図である。不揮発性メモリ103は、管理領域1411とデータ記録領域1412とに区分される。データ記録領域1412は、データを書き込むための領域である。実施の形態5において、データ記録領域1412の物理ブロック501は、従来例の物理ブロック501(図24)と同一である。管理領域1411は、不揮発性メモリ103の管理情報を記憶する領域で、管理領域1411の物理ブロック1401を消去予約テーブルに割り当てる。なお、管理領域1411とデータ記録領域1412とは、コントローラ104によって明確に区別できれば良く、管理領域1411を不揮発性メモリ103内の固定した物理ブロックに占有する必要はない。固定した物理ブロックによらず自由にその領域を変化させてもよい。
図15は、消去予約テーブルの構成を示す図である。消去予約テーブル1501は、消去する物理ブロックの物理アドレス1511を登録する消去アドレス登録領域1502と、冗長領域1503とで構成される。冗長領域1503は、第3のフラグ1512を有する。第3のフラグ1512は、データ信頼性を高めるため、複数ビットデータで表す。実施の形態5において、第3のフラグは2ビットで構成され、論理値11又は00で表す。第3のフラグ1512は、そのページの消去アドレス登録領域1502に書き込まれている物理アドレス1511が示す物理ブロックが消去済みか否かを表す。第3のフラグが「11」の場合、物理ブロックは、未消去と判断し、第3のフラグが「00」の場合、物理ブロックは消去済みと判断する。消去予約テーブル1501は、物理ブロック1401で構成されているため、ページ0からページ31を有し、物理アドレスを32個分登録できる。実施の形態5において、物理アドレスの登録は、ページ0から昇順に行う。
図16及び図17を用いて、実施の形態5のデータの書き換え方法を説明する。図16は実施の形態5の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図16(実施の形態5)において、図25(従来例)と同一ステップには同一符号を付している。図17は、消去予約テーブルに物理アドレスと第3のフラグが書き込まれる状態を段階的に示す図である。図17において、ページ0とページ1には既に物理アドレスが書き込まれており、且つ第3のフラグが「00」であるので、ページ0とページ1に登録された物理ブロックは消去済みである。今回ページ2を使用する。
実施の形態5のデータの書き換え方法(図16)が従来例(図25)と違うところは、ステップ1601と1602が追加された点である。ステップ1601以降について説明する。
物理ブロックのデータの書き込みが完了すると、無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む旧物理ブロックの物理アドレス1511を、消去予約テーブル1501の消去アドレス登録領域1502に登録する(ステップ1601、図17(b))。消去予約テーブルに登録することで、消去すべき物理ブロックであることを示す。その後、旧物理ブロックを消去する(ステップ604)。
旧物理ブロックの物理アドレス1511を登録した消去予約テーブルのページ2の冗長領域1503の第3のフラグ1512に固定値(実施の形態では00)を書き込む(ステップ1602、図17(c))。第3のフラグに固定値を書き込むことで、登録した旧物理ブロックの消去が完了したことを示す。
消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。具体的には、消去済みテーブル105に、ステップ601で確保した物理ブロックに対応するビットに0(書き込み済み)を書き込む。ステップ604で消去した旧物理ブロックに対応するビットに1(消去済み)を書き込む。論理アドレス/物理アドレス変換テーブル106の論理アドレスに対応する物理アドレスを、旧物理ブロックから書き込みを行った物理ブロックを示すように更新する。
実施の形態5の不揮発性記憶装置101は、図4に示す初期化処理を行った後に、図18に示す初期化処理を行う。図4においては、従来例と同一であるため、説明を省略する。図18について説明する。
不揮発性メモリ103の管理領域1411に有する消去予約テーブル1501を読み出す(ステップ1801)。消去済みでない物理ブロックが有るか否か判断する(ステップ1802)。消去予約テーブル1501の消去アドレス登録領域1502に物理アドレス1511が登録されていない、又は全ての登録済みの物理アドレス1511に対応する第3のフラグ1512に固定値(00)が書き込まれていれば、消去済みでない物理ブロックは無いと判断し、初期化処理を終了する。
消去予約テーブル1501に物理アドレス1511が登録されているが、第3のフラグ1512が書き込まれていない(11)場合、電源遮断等により消去が途中で終わっていると判断し、登録されている物理ブロックを消去する(ステップ1803)。消去予約テーブル1501の消去した物理ブロックに対応する第3のフラグ1512に固定値を書き込む(ステップ1804)。
消去中の電源遮断等の異常により、作成済みのテーブルに誤りのある可能性があるので、消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を修正する(ステップ1805)。具体的には、消去済みテーブル105に消去した物理ブロックを登録する。論理アドレス/物理アドレス変換テーブル106に消去した物理ブロックがあれば、登録を削除する。ステップ1802に戻り、消去予約テーブルに登録された物理ブロックが全て消去されるまで処理を繰り返す。
本発明の実施の形態5の不揮発性記憶装置の制御方法によれば、消去予約テーブル1501に物理アドレス1511と第3のフラグ1512とを書き込むことにより、物理ブロック501の消去が完了しているか否かを確実に検知できる。物理ブロックの消去が電源遮断等によって途中で中断した場合であっても、次回起動時に、消去予約テーブル1501に基づいて消去済みでない物理ブロックを完全に消去し、消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106の両方を正しく生成することができる。これにより、消去済みでない物理ブロックに誤ってデータを書くことを防ぐことができる。
なお、データ消去中の電源遮断に対応する実施の形態5の不揮発性記憶装置の制御方法と、データ書き込み中の電源遮断に対応する実施の形態1〜4のいずれかの不揮発性記憶装置の制御方法と、を組み合わせても良い。これにより、更に信頼性の高い消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を生成することができる。
なお、実施の形態5の消去予約テーブル1501はデータの書き換え時の旧物理ブロックの消去のみに限られず、ホスト102からの消去指令に基づいて物理ブロックを消去する場合にも使用できる。
《実施の形態6》
図19〜21を用いて、実施の形態6の不揮発性記憶装置の制御方法を説明する。実施の形態6の不揮発性記憶装置の制御方法は、データの消去中に電源遮断が起こった場合に対処できる方法である。
実施の形態6の不揮発性記憶装置の制御方法が、実施の形態5と異なる点について説明する。実施の形態5の制御方法は、消去する物理ブロックの物理アドレス1511とその物理ブロックが消去済みか否かを示す第3のフラグ1512とを不揮発性メモリ103の管理領域1411に有する消去予約テーブル1501に登録した。実施の形態5の制御方法はデータ記録領域1412の物理ブロック501に対するデータ書き込みとは別ステップで、物理アドレス1511を消去予約テーブル1501に登録するため、消去予約テーブル1501の書き込みに要する時間が長いという欠点があった。
実施の形態6では、処理時間の短い制御方法を実現する。図19は、実施の形態6の物理ブロックの構成を示す図である。実施の形態6の物理ブロック501は、所定のページ(実施の形態6において、先頭ページ)の冗長領域503に、旧物理ブロックの物理アドレス(「旧物理アドレス」と呼ぶ。)1911と旧物理ブロックが消去済みか否かを示す第3のフラグ1512とを有する。実施の形態6の旧物理アドレス1911の登録領域は2バイトで構成される。
第3のフラグ1512は、実施の形態5の第3のフラグと同様で、データ信頼性を高めるため、複数ビットデータで表す。実施の形態6において、第3のフラグは2ビットで構成され、論理値11又は00で表す。第3のフラグ1512は、旧物理アドレス1911が示す物理ブロックが消去済みか否かを表す。第3のフラグが「11」の場合、旧物理アドレス1911が示す物理ブロックは未消去と判断し、第3のフラグが「00」の場合は消去済みと判断する。
実施の形態6において、不揮発性メモリ103は消去予約テーブル1501を持たず、データ書き込み先の物理ブロック501の冗長領域503を使用して、旧物理ブロックが消去済みか否かを登録する。
図20を用いて、実施の形態6のデータの書き換え方法を説明する。図20は実施の形態6の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図20において、従来例の図25と同一ステップには同一符号を付している。
ホスト102からデータの書き込み指令を受信すると、不揮発性記憶装置101のコントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロック(「新物理ブロック」と呼ぶ。)として確保する(ステップ601)。
新物理ブロックにデータを書き込むと同時に、無効データ(新しいデータを書き込むことによって、必要でなくなったデータ)を含む旧物理ブロックの物理アドレス1911と旧物理ブロックに対応する第3のフラグ1512(値は未消去であることを示す11)とを、新物理ブロックの先頭ページの冗長領域503に書き込む(ステップ2001)。
旧物理ブロックを消去する(ステップ604)。新物理ブロックの先頭ページの冗長領域503に有する第3のフラグに固定値(実施の形態では消去済みであることを示す00)を書き込む(ステップ2002)。第3のフラグ1512に固定値を書き込むことで、旧物理ブロックが消去されたことを示す。消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ605)。
図21を用いて、実施の形態6の不揮発性記憶装置101の初期化処理を説明する。実施の形態6の不揮発性記憶装置101は、初期化処理時に、第3のフラグ1512に基づいて無効テーブルをRAM上に生成する。無効テーブルは、電源遮断等によりデータの消去が中断した不正な旧物理ブロックの物理アドレスと、旧物理ブロックが消去済みか否かを登録している新物理ブロックの物理アドレスとを登録するためのテーブルである。図21は実施の形態6の不揮発性記憶装置101の初期化処理のフローチャートである。図21において、従来例の図4と同一ステップには同一符号を付し、説明を省略する。ステップ2101〜2107について説明する。
ステップ401〜406において書き込み済みと判断された物理ブロック501に対して、ステップ402で読み出された先頭ページの冗長領域503に基づいて、第3のフラグ1512が未書き込み(=11)の旧物理ブロックが有るか否か判断する(ステップ2101)。旧物理アドレス1911が登録されていない、又は第3のフラグ1512が書き込み済み(=00)であれば、ステップ407に進む。
旧物理アドレス1911は登録されているが、第3のフラグ1512が未書き込みであれば、消去処理中に電源遮断等の異常が発生し、旧物理ブロックの消去が完了していないと判断する。RAM上に作成された無効テーブルに新物理ブロック(冗長領域503に旧物理ブロックの物理アドレス1911が書き込まれている物理ブロック)の物理アドレスと、旧物理ブロックの物理アドレスとを登録し(ステップ2102)、ステップ407に進む。
現在の物理ブロックが最終物理ブロックであるか否かを判断する(ステップ407)。最終物理ブロックでなければ、ブロックカウンタに1を加算し(ステップ408)、ステップ402に戻る。最終物理ブロックであれば、RAM上に生成した無効テーブルに新物理ブロックと旧物理ブロックのアドレスが書き込まれているか否か判断する(ステップ2103)。無効テーブルが空であれば、初期化処理を終了する。無効テーブルにアドレスが登録されていれば、その旧物理ブロックを消去する(ステップ2104)。消去した旧物理ブロックの物理アドレスが書き込まれている新物理ブロックの第3のフラグに固定値を書き込む(ステップ2105)。第3のフラグに固定値を書き込むことで、旧物理ブロックを完全に消去したことを示す。RAM上の無効テーブルを更新する(ステップ2106)。具体的には、新物理ブロックと旧物理ブロックのアドレスを無効テーブルから削除して、未消去の旧物理ブロックがないことを示す。
消去中の電源遮断等の異常により、作成済みのテーブルに誤りのある可能性があるので、消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を更新する(ステップ2107)。具体的には、消去済みテーブル105に消去した旧物理ブロックを登録する。論理アドレス/物理アドレス変換テーブル106に消去した旧物理ブロックがあれば、登録を削除する。
実施の形態6の不揮発性記憶装置の制御方法は、消去予約テーブル1501を設けるための専用の領域を不揮発性メモリ103の管理領域1411に確保する必要がない。データ記録領域1412の物理ブロック501に対してデータを書き込むと同時に、その先頭ページに旧物理ブロックのアドレス1911を登録するため、実施の形態5と比較して処理時間が短い。但し、実施の形態6の制御方法は、消去する旧物理ブロックの物理アドレス1911を新物理ブロック501の冗長領域503に登録するため、データの書き換え時にのみ使用でき、ホスト102からの消去指令に基づいて物理ブロックを消去する場合には、使用できない。
実施の形態6の不揮発性記憶装置101は、旧物理ブロックの消去と平行して、次に実行する書き込みデータを不揮発性メモリ103に転送することにより、データの書き換えにかかる時間を短縮することができる。
なお、旧物理ブロックの物理アドレス1911及び第3のフラグ1512の登録は、新物理ブロック501の先頭ページに限定されない。新物理ブロックの先頭ページ以外の冗長領域503に登録しても良い。この場合、初期化処理において、図21のステップ406とステップ2101との間に、旧物理アドレス1911と第3のフラグ1512とを有するページの冗長領域を読み出すステップを追加すれば良い。
なお、データ消去中の電源遮断に対応する実施の形態6の不揮発性記憶装置の制御方法と、データ書き込み中の電源遮断に対応する実施の形態1〜4のいずれかの不揮発性記憶装置の制御方法と、を組み合わせても良い。これにより、更に信頼性の高い消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を生成することができる。
《実施の形態7》
図22を用いて、実施の形態7の不揮発性記憶装置の制御方法を説明する。実施の形態1〜6において、データの書き込み中又はデータの消去中に電源遮断等が起こり処理が中断した場合であっても、第1のフラグ、第2のフラグ、第3のフラグ又は相補データを用いて、次回起動時にそのことを検知し、消去済みテーブル105及び/又は論理アドレス/物理アドレス変換テーブル106を正確に生成できる不揮発性記憶装置の制御方法について説明した。
実施の形態7の不揮発性記憶装置の制御方法においては、上記第1〜第3のフラグ及び相補データを有さない、従来の物理ブロックと同じ構成であっても、正確にデータを書き込むことができる方法を実現する。実施の形態7において、物理ブロックは第1〜第3のフラグ及び相補データを有さず、従来例と同一の方法で初期化処理を行うため、電源遮断等により処理が中断されたことを検知することはできない。例えば、電源遮断等により、消去が完了していない不正な物理ブロックを誤って消去済みと判断し、消去済みテーブル105に登録する場合がある(図4、ステップ404)。
そこで、実施の形態7においては、図22の方法を用いてデータの書き換えを行う。図22は実施の形態7の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図22において、図25と同一ステップには同一符号を付し、説明を省略する。実施の形態7のデータの書き換え方法(図22)が、従来例(図25)と違うところは、ステップ2202が追加された点である。
ホスト102からデータの書き込み指令を受信すると、不揮発性記憶装置101のコントローラ104は、消去済みテーブル105から消去済み物理ブロックを検出し、書き込み先の物理ブロックとして確保する(ステップ601)。しかし、その書き込み先物理ブロックは書き込み中又は消去中の電源遮断等の異常により、実際には消去済みでないのに、初期化処理において間違って消去済みテーブルに登録されている可能性がある。そのため、確保した書き込み先物理ブロックを一旦消去し、確実に消去済みの状態にする(ステップ2202)。その後、物理ブロックにデータを書き込む(ステップ603)。
実施の形態7の制御方法は、初期化処理で消去済みでない物理ブロックを誤って消去済みと判断し、消去済みテーブル105に登録した場合であっても、データの書き込み前に一旦物理ブロックを消去することによりホスト102からの書き込み指令を正しく処理することができる。
なお、実施の形態7の不揮発性記憶装置の制御方法を実施の形態1〜6と組み合わせても良い。これにより、書き込み時間及び読み出し時間等の処理時間は多くなるが、消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を正確に生成でき、且つ確実に消去済みの物理ブロックにデータを書き込むことができる。
《実施の形態8》
図23を用いて、実施の形態8の不揮発性記憶装置の制御方法を説明する。実施の形態8は、実施の形態7と同様に、物理ブロックが第1〜第3のフラグ及び相補データを有さない、従来の物理ブロックと同じ構成であっても、正しくデータの書き換えをすることができる方法である。
図23は、実施の形態8の不揮発性記憶装置101のデータの書き換え方法のフローチャートである。図23において、図22と同一のステップには同一の符号を付し、説明を省略する。実施の形態8のデータの書き換え方法(図23)が、実施の形態7(図22)と違うところは、ステップ2302及びステップ2303が追加されたことである。それ以外の点において、実施の形態7と同一である。
実施の形態7では、データの書き込み前にすべての物理ブロックを一旦消去した。しかし、不揮発性メモリ103の物理ブロックの消去に要する時間は、物理ブロックの1ページの読み出しに要する時間よりもはるかに長い。そこで、実施の形態8においては、書き込み先物理ブロックの管理情報を有する先頭ページのデータを読み出す(ステップ2302)。物理ブロックが消去済みでない場合、先頭ページの冗長領域に、その物理ブロックの管理情報(例えばデータ領域に書き込まれたデータの相補データ、ECC符号及び/又はCRC符号、その物理ブロックに対応する論理アドレス等の情報)が書き込まれている。先頭ページを読み出し、管理情報が全て1か、又は0を含むかを検出すれば、物理ブロックが消去済みか否か判断することができる。
先頭ページが消去済みか否か判断し(ステップ2303)、先頭ページが消去済みでなければ、電源遮断等により物理ブロックの消去が完了していないと判断し、物理ブロックを消去する(ステップ2202)。先頭ページが消去済みであれば、ステップ2202を実行せずにステップ603に進む。
実施の形態8の制御方法は、初期化処理で消去済みでない物理ブロックを誤って消去済みと判断し、消去済みテーブル105に登録した場合であっても、ホスト102からの書き込み指令を正しく処理することができる。
実施の形態8では、物理ブロックの先頭ページを読み出して消去済みか否か判断し、未消去の物理ブロックのみを消去することにより、実施の形態7よりデータの書き換えに要する時間を短縮することができる。
なお、実施の形態8の不揮発性記憶装置の制御方法を実施の形態1〜6と組み合わせも良い。不揮発性メモリ103に不正な状態の物理ブロックが存在した場合、実施の形態を組み合わせて使用することにより、データの書き込みの正確性が向上する。消去済みテーブル105及び論理アドレス/物理アドレス変換テーブル106を正確に生成でき、且つ確実に消去済みの物理ブロックにデータを書き込むことができる。
発明をある程度の詳細さをもって好適な形態について説明したが、この好適形態の現開示内容は構成の細部において変化してしかるべきものであり、各要素の組合せや順序の変化は請求された発明の範囲及び思想を逸脱することなく実現し得るものである。
本発明は、例えば携帯機器に接続使用する不揮発性記憶装置(例えばメモリカード)の制御方法として有用である。
不揮発性記憶装置の構成を示すブロック図 消去済みテーブル105の構成を示す図 論理アドレス/物理アドレス変換テーブル106の構成を示す図 従来例及び本発明の実施の形態1の不揮発性記憶装置101の初期化処理のフローチャート 本発明の実施の形態1の不揮発性メモリ103の物理ブロックの構成を示す図 本発明の実施の形態1の不揮発性記憶装置101のデータの書き換え方法のフローチャート 本発明の実施の形態1における物理ブロックにデータが書き込まれる状態を段階的に示す図 本発明の実施の形態2の不揮発性メモリ103の物理ブロックの構成を示す図 本発明の実施の形態2の不揮発性記憶装置101のデータの書き換え方法のフローチャート 本発明の実施の形態2における物理ブロックにデータが書き込まれる状態を段階的に示す図 本発明の実施の形態2の不揮発性記憶装置101の初期化処理のフローチャート 本発明の実施の形態3の不揮発性記憶装置101のデータの書き換え方法のフローチャート 本発明の実施の形態4の不揮発性メモリ103の物理ブロックの構成を示す図 本発明の実施の形態5の不揮発性メモリ103の構成を示す図 本発明の実施の形態5の消去予約テーブルの構成を示す図 本発明の実施の形態5の不揮発性記憶装置101のデータの書き換え方法のフローチャート 本発明の実施の形態5における消去予約テーブルの状態変化を段階的に示す図 本発明の実施の形態5の不揮発性記憶装置101の初期化処理のフローチャート 本発明の実施の形態6の不揮発性メモリ103の物理ブロックの構成を示す図 本発明の実施の形態6の不揮発性記憶装置101のデータの書き換え方法のフローチャート 本発明の実施の形態6の不揮発性記憶装置101の初期化処理のフローチャート 本発明の実施の形態7の不揮発性記憶装置101のデータの書き換え方法のフローチャート 本発明の実施の形態8の不揮発性記憶装置101のデータの書き換え方法のフローチャート 従来例の不揮発性メモリ103の物理ブロックの構成を示す図 従来例の不揮発性記憶装置101のデータの書き換え方法のフローチャート
符号の説明
101 不揮発性記憶装置
102 ホスト
103 不揮発性メモリ
104 コントローラ
105 消去済みテーブル
106 論理アドレス/物理アドレス変換テーブル

Claims (11)

  1. 不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、
    前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の、先頭ページの前記冗長領域に設けられその先頭ページにデータが書き込まれているか否かを示す第1のフラグに、データが書き込まれていることを示す固定値を書き込む第1のフラグ書き込みステップと、
    その物理ブロックにデータを書き込むデータ書き込みステップと、
    を有することを特徴とする不揮発性記憶装置の制御方法。
  2. 不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの前記第1のフラグを読み出して、前記第1のフラグが書き込み済みか否かに基づいて、論理アドレス/物理アドレス変換テーブルと消去済みテーブルとを生成する初期化ステップを更に有することを特徴とする請求項1に記載の不揮発性記憶装置の制御方法。
  3. 不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、
    前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の先頭ページの前記冗長領域に設けられその先頭ページにデータが書き込まれているか否かを示す第1のフラグに、データが書き込まれていることを示す固定値を書き込む第1のフラグ書き込みステップと、
    その物理ブロックにデータを書き込むデータ書き込みステップと、
    前記物理ブロックの所定のページの冗長領域に設けられその物理ブロックにデータが書き込まれているか否かを示す第2のフラグに、その物理ブロックにデータが書き込まれていることを示す固定値を書き込む第2のフラグ書き込みステップと、
    を有することを特徴とする不揮発性記憶装置の制御方法。
  4. 前記不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの前記第1のフラグ及び前記第2のフラグを読み出して、前記第1のフラグ及び前記第2のフラグが書き込み済みか否かに基づいて、論理アドレス/物理アドレス変換テーブルと消去済みテーブルとを生成する初期化ステップを更に有することを特徴とする請求項3に記載の不揮発性記憶装置の制御方法。
  5. 物理ブロックにデータを書き込む時、最後のページのデータのECC符号及び/又はCRC符号を、又はそれらと更に前記ECC符号及び/又はCRC符号の相補データとをその最後のページの冗長領域に書き込む書き込みステップと、
    前記不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの最後のページからデータとそのデータのECC符号及び/又はCRC符号を読み出して、又はそれらと更に前記ECC符号及び/又はCRC符号の相補データとを読み出して、誤り検出を行い、誤りの有無に基づいて、論理アドレス/物理アドレス変換テーブルを生成する初期化ステップを更に有することを特徴とする請求項1に記載の不揮発性記憶装置の制御方法。
  6. 前記物理ブロックの最後のページの、単独で別個に書き込み可能なデータを書き込むための領域を除く領域の全てのアドレスにデータを書き込み、その領域をデータと前記データのECC符号及び/又はCRC符号とで埋め尽くし、又はそれらに更に前記ECC符号及び/又はCRC符号の相補データを加えて埋め尽くす最後のページ書き込みステップを更に有することを特徴とする請求項1に記載の不揮発性記憶装置の制御方法。
  7. 前記不揮発性記憶装置の起動時に、前記不揮発性メモリの全ての前記物理ブロックの最後のページの前記データと、前記データのECC符号及び/又はCRC符号とを読み出して、又はそれらと更に前記ECC符号及び/又はCRC符号の相補データとを読み出して、誤り検出を行い、誤りの有無に基づいて、論理アドレス/物理アドレス変換テーブルを生成する初期化ステップを更に有することを特徴とする請求項6に記載の不揮発性記憶装置の制御方法。
  8. 不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、
    管理領域とデータ記録領域とを有する前記不揮発性メモリの前記管理領域に設けられ、無効データを有する物理ブロック(以下、「旧物理ブロック」と呼ぶ。)の物理アドレスと、前記旧物理ブロックの無効データが消去済みか否かを示す第3のフラグとを有する無効テーブルに、旧物理ブロックの物理アドレスを登録する物理アドレス登録ステップと、
    前記旧物理ブロックの無効データを消去する無効データ消去ステップと、
    前記旧物理ブロックの物理アドレスに対応する前記第3のフラグに前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、
    を有することを特徴とする不揮発性記憶装置の制御方法。
  9. 前記不揮発性記憶装置の起動時に、前記管理領域の前記無効テーブルを読み出して、前記第3のフラグが書き込み済みでない前記旧物理ブロックの無効データを消去する無効データ消去ステップと、
    前記旧物理ブロックの物理アドレスに対応する前記第3のフラグに、前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、
    を更に有することを特徴とする請求項8に記載の不揮発性記憶装置の制御方法。
  10. 不揮発性メモリのデータの最小消去単位である物理ブロックが消去済みか否かを示す消去済みテーブルと、論理アドレスと物理アドレスとを変換する論理アドレス/物理アドレス変換テーブルと、を用いて、前記不揮発性メモリのデータの書き込み及び読み出しを制御する制御ステップと、
    前記物理ブロックにデータを書き込む時に、前記物理ブロックに含まれる、データ領域と冗長領域とを有しデータの最小書き込み単位である複数のページの中の所定のページの前記冗長領域に、無効データを有する旧物理ブロックの物理アドレスを登録する物理アドレス登録ステップと、
    前記旧物理ブロックの無効データを消去する無効データ消去ステップと、
    前記旧物理ブロックの物理アドレスが登録された前記冗長領域に設けられ、その旧物理ブロックの無効データが消去済みか否かを示す第3のフラグに、前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、
    を有することを特徴とする不揮発性記憶装置の制御方法。
  11. 前記不揮発性記憶装置の起動時に、前記物理ブロックの冗長領域の前記第3のフラグを読み出して、前記第3のフラグが書き込み済みでない前記旧物理ブロックの無効データを消去する無効データ消去ステップと、
    前記第3のフラグに、前記旧物理ブロックの無効データの消去が完了したことを示す固定値を書き込む第3のフラグ書き込みステップと、
    を更に有することを特徴とする請求項10に記載の不揮発性記憶装置の制御方法。
JP2004541247A 2002-10-02 2003-09-29 不揮発性記憶装置の制御方法 Expired - Fee Related JP4560408B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002290297 2002-10-02
JP2002290297 2002-10-02
PCT/JP2003/012448 WO2004031966A1 (ja) 2002-10-02 2003-09-29 不揮発性記憶装置の制御方法

Publications (2)

Publication Number Publication Date
JPWO2004031966A1 true JPWO2004031966A1 (ja) 2006-02-02
JP4560408B2 JP4560408B2 (ja) 2010-10-13

Family

ID=32063763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004541247A Expired - Fee Related JP4560408B2 (ja) 2002-10-02 2003-09-29 不揮発性記憶装置の制御方法

Country Status (8)

Country Link
US (1) US7321959B2 (ja)
EP (2) EP1548602B1 (ja)
JP (1) JP4560408B2 (ja)
KR (1) KR20050069925A (ja)
CN (2) CN100377120C (ja)
DE (1) DE60319718D1 (ja)
TW (1) TW200408949A (ja)
WO (1) WO2004031966A1 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4133166B2 (ja) * 2002-09-25 2008-08-13 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP2005107608A (ja) * 2003-09-29 2005-04-21 Nec Electronics Corp 電子機器、不揮発性メモリ及び不揮発性メモリのデータ書き換え方法
KR100619020B1 (ko) * 2004-05-22 2006-08-31 삼성전자주식회사 광 기록 정보 저장 매체 및 기록/재생 장치
JP4637526B2 (ja) * 2004-07-28 2011-02-23 ルネサスエレクトロニクス株式会社 メモリカードおよび不揮発性記憶装置
KR100645044B1 (ko) * 2004-09-17 2006-11-10 삼성전자주식회사 높은 신뢰도를 갖는 불 휘발성 메모리 장치의 프로그램 방법
KR100631765B1 (ko) * 2004-10-18 2006-10-09 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
KR100643288B1 (ko) 2004-11-16 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
KR100643287B1 (ko) * 2004-11-19 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
ITMI20050780A1 (it) * 2005-04-29 2006-10-30 St Microelectronics Srl Metodo di memorizzazione di un array di celle di memoria non-volatile con codice di correzione di errore e relativo dispositivo
US20060294339A1 (en) * 2005-06-27 2006-12-28 Trika Sanjeev N Abstracted dynamic addressing
JP4574475B2 (ja) * 2005-07-15 2010-11-04 キヤノン株式会社 記録再生装置、記録再生装置の制御方法
JP4692231B2 (ja) * 2005-11-04 2011-06-01 株式会社デンソー 車両用の電子制御装置
CN100470504C (zh) * 2006-03-30 2009-03-18 亚洲光学股份有限公司 存储器存取方法
KR100736103B1 (ko) * 2006-06-27 2007-07-06 삼성전자주식회사 비휘발성 메모리, 상기 비휘발성 메모리의 데이터 유효성을판단하는 장치 및 방법
KR100791341B1 (ko) * 2006-09-04 2008-01-03 삼성전자주식회사 비휘발성 메모리 장치의 기입 방법 및 그 방법을 사용하는비휘발성 메모리 장치
US7934050B2 (en) * 2006-12-07 2011-04-26 Denso Corporation Microcomputer for flash memory rewriting
EP2043105A1 (de) * 2007-09-26 2009-04-01 Siemens Aktiengesellschaft Kopierverfahren für NAND-Flash-Speicher
KR101042197B1 (ko) * 2008-12-30 2011-06-20 (주)인디링스 메모리 컨트롤러 및 메모리 관리 방법
US8413016B2 (en) * 2009-04-28 2013-04-02 Panasonic Corporation Nonvolatile memory device and controller for judging a normal or anomalous condition of an error-corrected bit pattern
TWI399644B (zh) * 2009-12-24 2013-06-21 Univ Nat Taiwan 非揮發記憶體區塊管理方法
WO2011081232A1 (ko) * 2009-12-29 2011-07-07 주식회사 프롬나이 Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법
US8255616B2 (en) * 2010-01-12 2012-08-28 Freescale Semiconductor, Inc. Non-volatile memory device and method therefor
JP5010723B2 (ja) * 2010-09-22 2012-08-29 株式会社東芝 半導体記憶制御装置
CN102841819A (zh) * 2011-06-20 2012-12-26 富泰华工业(深圳)有限公司 电子装置及其防止数据丢失的方法
KR101799765B1 (ko) 2011-11-21 2017-11-22 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US9274709B2 (en) * 2012-03-30 2016-03-01 Hewlett Packard Enterprise Development Lp Indicators for storage cells
KR102058509B1 (ko) 2012-06-29 2019-12-24 에스케이하이닉스 주식회사 반도체 집적회로
KR20140020154A (ko) 2012-08-08 2014-02-18 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 소거 방법
JP2014035730A (ja) 2012-08-10 2014-02-24 Hitachi Automotive Systems Ltd 車両用制御装置
JP5862589B2 (ja) * 2013-03-26 2016-02-16 日本電気株式会社 ディスクアレイ装置
US9343162B2 (en) * 2013-10-11 2016-05-17 Winbond Electronics Corporation Protection against side-channel attacks on non-volatile memory
KR102227636B1 (ko) 2014-12-31 2021-03-16 삼성디스플레이 주식회사 표시 장치용 데이터 저장 장치 및 이의 저장 방법
US9679658B2 (en) * 2015-06-26 2017-06-13 Intel Corporation Method and apparatus for reducing read latency for a block erasable non-volatile memory
US9880770B2 (en) * 2015-09-02 2018-01-30 SK Hynix Inc. Supporting invalidation commands for non-volatile memory
EP3349025A4 (en) * 2015-09-11 2019-02-27 Koki Holdings Co., Ltd. BATTERY DIAGNOSTIC DEVICE AND BATTERY PACK
KR102625637B1 (ko) * 2016-02-01 2024-01-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP6742831B2 (ja) * 2016-06-14 2020-08-19 ルネサスエレクトロニクス株式会社 情報処理装置、読み出し制御方法、及びプログラム
CN110910939B (zh) * 2018-09-18 2022-05-31 北京兆易创新科技股份有限公司 存储单元的阈值调整方法、装置、存储设备和存储介质
US10607702B1 (en) * 2018-12-03 2020-03-31 Micron Technology, Inc. Responding to power loss
KR102632690B1 (ko) * 2019-06-13 2024-02-01 삼성전자주식회사 비휘발성 메모리 장치 및 그 프로그램 방법
CN113434086B (zh) * 2021-06-25 2024-02-02 南京英锐创电子科技有限公司 数据存储方法、装置、非易失性存储器件和存储器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09161491A (ja) * 1995-12-04 1997-06-20 Fujitsu Ltd フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット
JPH10240629A (ja) * 1997-02-27 1998-09-11 Mitsubishi Electric Corp メモリ内情報更新方法
JPH11282765A (ja) * 1998-03-27 1999-10-15 Hitachi Ltd フラッシュメモリを使用した外部記憶装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JPH05151097A (ja) * 1991-11-28 1993-06-18 Fujitsu Ltd 書換回数制限型メモリのデータ管理方式
US5337275A (en) * 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US6750908B1 (en) * 1994-02-03 2004-06-15 Canon Kabushiki Kaisha Image processing apparatus using recording medium which needs data erasing processing before recording of data
JP3364356B2 (ja) * 1995-03-30 2003-01-08 富士通株式会社 メモリ書替え装置
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6125435A (en) * 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
JP2001501000A (ja) * 1996-08-16 2001-01-23 東京エレクトロン株式会社 エラー検出および訂正を有する半導体メモリ装置
US6182188B1 (en) * 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
JP3411186B2 (ja) * 1997-06-06 2003-05-26 シャープ株式会社 不揮発性半導体記憶装置
US6076137A (en) * 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
US6311322B1 (en) 1998-03-09 2001-10-30 Nikon Corporation Program rewriting apparatus
JPH11272569A (ja) 1998-03-19 1999-10-08 Hitachi Ltd フラッシュメモリを使用した外部記憶装置のデータ回復方式
JP2000019891A (ja) * 1998-04-27 2000-01-21 Canon Inc 画像形成装置及びその制御方法、記憶媒体
JP2001051883A (ja) 1999-08-12 2001-02-23 Nec Corp 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置
JP4037605B2 (ja) * 2000-12-04 2008-01-23 株式会社東芝 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
US7617352B2 (en) * 2000-12-27 2009-11-10 Tdk Corporation Memory controller, flash memory system having memory controller and method for controlling flash memory device
JP3692313B2 (ja) * 2001-06-28 2005-09-07 松下電器産業株式会社 不揮発性メモリの制御方法
JP2003067244A (ja) * 2001-08-24 2003-03-07 Matsushita Electric Ind Co Ltd 不揮発性記憶装置及びその制御方法
US6977847B2 (en) * 2001-11-23 2005-12-20 M-Systems Flash Disk Pioneers Ltd. Detecting partially erased units in flash devices
EP1533702A4 (en) * 2002-08-29 2007-05-23 Matsushita Electric Ind Co Ltd SEMICONDUCTOR MEMORY AND METHOD FOR RECORDING DATA IN A FLASH MEMORY
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
JP4256175B2 (ja) * 2003-02-04 2009-04-22 株式会社東芝 不揮発性半導体メモリ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09161491A (ja) * 1995-12-04 1997-06-20 Fujitsu Ltd フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット
JPH10240629A (ja) * 1997-02-27 1998-09-11 Mitsubishi Electric Corp メモリ内情報更新方法
JPH11282765A (ja) * 1998-03-27 1999-10-15 Hitachi Ltd フラッシュメモリを使用した外部記憶装置

Also Published As

Publication number Publication date
CN100377120C (zh) 2008-03-26
CN1596401A (zh) 2005-03-16
EP1843358B1 (en) 2010-06-16
EP1843358A1 (en) 2007-10-10
EP1548602B1 (en) 2008-03-12
US7321959B2 (en) 2008-01-22
EP1548602A4 (en) 2006-10-04
US20050013154A1 (en) 2005-01-20
TW200408949A (en) 2004-06-01
WO2004031966A1 (ja) 2004-04-15
JP4560408B2 (ja) 2010-10-13
CN101231618A (zh) 2008-07-30
EP1548602A1 (en) 2005-06-29
CN101231618B (zh) 2012-06-13
KR20050069925A (ko) 2005-07-05
DE60319718D1 (de) 2008-04-24

Similar Documents

Publication Publication Date Title
JP4560408B2 (ja) 不揮発性記憶装置の制御方法
EP2372549B1 (en) Emerging bad block detection
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US8453021B2 (en) Wear leveling in solid-state device
US8510532B2 (en) Logical-to-physical address translation for a removable data storage device
JP4871260B2 (ja) メモリモジュール、メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリの読み書き方法
CN111880749B (zh) 数据读取方法、存储器存储装置及存储器控制电路单元
KR20100094241A (ko) 예비 블록을 포함하지 않는 불휘발성 메모리 장치
US11029885B2 (en) Memory controller for controlling multiple types of flash memories, and memory system
JP4866107B2 (ja) 不揮発性記憶装置及びその書き込み判定方法
JP2009064238A (ja) メモリシステム
TWI651650B (zh) 記憶體管理方法及使用所述方法的儲存控制器
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP3826115B2 (ja) 記憶装置、メモリ管理方法及びプログラム
JP3670151B2 (ja) フラッシュメモリのアクセス方法、フラッシュメモリへアクセスするドライバを備えるシステム、および、フラッシュメモリ
JP2009276883A (ja) 半導体補助記憶装置
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
JP2000122909A (ja) 不揮発性メモリを使用した外部記憶装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060920

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060920

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100713

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100726

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees