JP2013250603A - メモリ管理装置および方法、並びにプログラム - Google Patents

メモリ管理装置および方法、並びにプログラム Download PDF

Info

Publication number
JP2013250603A
JP2013250603A JP2012122852A JP2012122852A JP2013250603A JP 2013250603 A JP2013250603 A JP 2013250603A JP 2012122852 A JP2012122852 A JP 2012122852A JP 2012122852 A JP2012122852 A JP 2012122852A JP 2013250603 A JP2013250603 A JP 2013250603A
Authority
JP
Japan
Prior art keywords
physical
logical
data
unnecessary
block
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.)
Pending
Application number
JP2012122852A
Other languages
English (en)
Inventor
Shusuke Saeki
修祐 佐伯
Kenji Fudono
健治 不殿
Nobuhiro Kaneko
暢宏 金子
Kazumi Sato
和美 佐藤
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2012122852A priority Critical patent/JP2013250603A/ja
Priority to US13/900,682 priority patent/US20130326123A1/en
Priority to CN201310194128.1A priority patent/CN103455430A/zh
Publication of JP2013250603A publication Critical patent/JP2013250603A/ja
Pending 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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】不揮発性メモリにおける空き容量の確保の効率化を図る。
【解決手段】制御部は、データの書き込みおよび読み出しはページ単位で行われ、消去はブロック単位で行われる不揮発性メモリにおけるデータ処理を、TU(Translation Unit)単位で論物変換を行うことで管理し、フォールド処理を行う。制御部は、ファイルシステムにより通知される、物理的に不要なデータが書き込まれている物理TUに対応する論理TUを表す不要論理TU情報に基づいて、不要論理TU情報に対応する物理TUのデータをフォールド処理におけるコピーの対象外に設定する。本技術は、メモリ管理を行う装置に適用することができる。
【選択図】図8

Description

本技術は、メモリ管理装置および方法、並びにプログラムに関し、特に、不揮発性メモリにおける空き容量の確保の効率化を図ることができるようにするメモリ管理装置および方法、並びにプログラムに関する。
NANDフラッシュメモリでは、“書き込み”、“読み出し”、“消去”により電気的にデータが操作される。例えば、“書き込み”による各ビットの書き換えは「1」から「0」への一方向だけであることから、新たにデータを書き込む際には、一旦“消去”により全てのビットを「1」にしてから書き込みを行う必要がある。
NANDフラッシュメモリにおいては、図1に示されるように、“書き込み”/“読み出し”の最小単位はページとされ、“消去”の最小単位は、ページが複数集まったブロックとされる。例えば、ページは、512バイトに予備の16バイトを加えた528バイトで構成され、ブロックは、32個のページを含むように構成される。
このように、NANDフラッシュメモリにおいては、“書き込み”の最小単位に比べて、“消去”の最小単位が数十倍大きいので、書き換えを効率良く行うには何らかの対策が必要であった。
また、NANDフラッシュメモリには、出荷時に不良ブロックと呼ばれる使用できないブロックが存在し、不良ブロックを避けてNANDフラッシュメモリへの読み書きを行う必要があった。
さらに、一般的に、NANDフラッシュメモリにおいて、ブロック内のページの書き込みは、図2のAに示されるように、若い番号のページから順番に行われなければならない。すなわち、NANDフラッシュメモリにおいて、図2のBに示されるような、ブロック内でのランダムな書き込みは禁止されている。
また、NANDフラッシュメモリの各ブロックには、書き換え回数の上限があるため、ブロックに対する書き換えが特定のブロックに偏らないようにする必要があった。
以上のような特徴を有するNANDフラッシュメモリを利用する際には、既存のファイルシステムやツールを、そのままで使えたり、若干の変更を加えるだけで使えることが望ましい。そのためには、“消去”の操作や不良ブロックを意識せずにNANDフラッシュメモリを利用できるようにしなければならなかった。そのため、NANDフラッシュメモリの利用側(例えば、ファイルシステム)からの要求を解釈してNANDフラッシュメモリを操作する命令に変換するレイヤ(論理−物理変換層(以下、論物変換層という))を実装する必要があった。
このような中、図3に示されるような、ブロックのサイズの整数分の1、かつページのサイズの整数倍となるTU(Translation Unit)単位で論理アドレス−物理アドレス変換を行うことで、不揮発性メモリのアクセス管理を行い、ブロックの内容のうち、使用中の物理TUを、別の未使用の物理TUがあるブロックにコピーし、元のブロックを消去することにより、元のブロックに含まれていた無効な物理TUの数だけ、新たに未使用の物理TUを増やすようにした技術が提案されている(特許文献1参照)。
特許文献1の技術によれば、ブロック内に書き込み済みの無効な物理TU(無効なデータが記録されている物理TU)が多ければ多いほど、未使用の物理TUを多く確保することができ、空き容量の確保の効率を向上させることができる。空き容量の確保の効率化は、不揮発性メモリの利用側からみた、不揮発性メモリにおけるデータの書き換えのパフォーマンス向上や、NANDフラッシュメモリのような不揮発性メモリの長寿命化に寄与する。
特開2009−116601号公報
ところで、近年、NANDフラッシュメモリにおける空き容量の確保の効率化、ひいてはNANDフラッシュメモリの長寿命化のために、物理的に不要なデータが書き込まれている領域に関する情報(以下、不要領域情報という)を、ファイルシステム等から論物変換層に通知する機能を実現するために発行されるTrimコマンドが知られている。
この不要なデータが書き込まれている領域は、新たに上書きされない限り、ファイルシステムからは参照されないので、論物変換層では、この領域のデータを削除してもよいし、そのまま保持し続けても問題はない。
しかしながら、本来であれば、論物変換層で不要なデータが削除されることで、空き容量の確保の効率化が実現されるはずが、従来、ファイルシステムから通知される不要領域情報を活用する構成がなかったため、不要なデータは保持されたままとなり、空き容量の確保の観点から無駄があった。
本技術は、このような状況に鑑みてなされたものであり、不揮発性メモリにおける空き容量の確保の効率化を図ることができるようにするものである。
本技術の一側面のメモリ管理装置は、データの書き込みおよび読み出しはページ単位で行われ、消去はブロック単位で行われる不揮発性メモリと、前記不揮発性メモリにおけるデータ処理を、TU(Translation Unit)単位で論物変換を行うことで管理し、フォールド処理を行う制御部とを備え、前記制御部は、ファイルシステムにより通知される、物理的に不要なデータが書き込まれている物理TUに対応する論理TUを表す不要論理TU情報に基づいて、前記不要論理TU情報に対応する物理TUのデータを前記フォールド処理におけるコピーの対象外に設定する。
前記メモリ管理装置には、前記不要論理TU情報を保持する保持部をさらに設けることができる。
前記制御部には、電源断前に、前記保持部に保持されている前記不要論理TU情報を、前記ファイルシステム上のデータとして前記不揮発性メモリに保存し、起動時に、前記不揮発性メモリに保存されている前記不要論理TU情報を前記ファイルシステムに通知させることができる。
前記制御部には、電源断前に、前記保持部に保持されている前記不要論理TU情報を、前記不揮発性メモリの所定の論理TU番号が設定された物理TUに保存し、起動時に、前記所定の論理TU番号が設定された物理TUに保存されている前記不要論理TU情報を前記ファイルシステムに通知させることができる。
前記制御部には、前記ファイルシステムの管理情報に含まれる未使用領域に関する情報に基づいて、前記不要論理TU情報を前記ファイルシステムに生成させ、通知させることができる。
前記保持部には、各物理TUの状態を管理するための物理TU状態マップと、前記不要論理TU情報を格納する不要論理TUリストとを保持させ、前記制御部には、前記ファイルシステムにより前記不要論理TU情報が通知されると、前記物理TU状態マップにおいて前記不要論理TU情報に対応する物理TUの状態を書き込み済みの無効な物理TUとさせるとともに、前記不要論理TUリストに、通知された前記不要論理TU情報を追加させる。
前記保持部には、論理TUのアドレスと物理TUのアドレスとを対応付けた論物変換テーブルをさらに保持させ、前記制御部には、前記ファイルシステムにより前記不要論理TU情報が通知されると、前記論物変換テーブルにおいて、前記不要論理TU情報に対応する物理TUのアドレスを未定義に設定させることができる。
前記制御部は、前記物理TU状態マップにおいて、前記ブロックに含まれる全ての物理TUの状態が、書き込み済みの無効な物理TUとなったとき、前記ブロックを消去させることができる。
前記制御部には、データ処理の結果、データのコピー元となる物理TUを含む前記ブロックが消去可能となる場合、前記データ処理において、消去可能となる前記ブロックを表すブロック番号を、前記データがコピーされる前記未書き込みの物理TUに書き込んで、前記ブロックを消去させることができる。
前記データ処理は、前記ファイルシステムからの要求に応じた論理TUのデータの書き換えとすることができる。
前記データ処理は、前記フォールド処理とすることができる。
前記制御部には、前記データ処理の結果、データのコピー元となる物理TUを含む前記ブロックが消去可能とならず、かつ、他のブロックが消去可能である場合、前記データ処理において、消去可能となる前記他のブロックを表すブロック番号を、前記データがコピーされる前記未書き込みの物理TUに書き込んで、前記他のブロックを消去させることができる。
本技術の一側面のメモリ管理方法は、データの書き込みおよび読み出しはページ単位で行われ、消去はブロック単位で行われる不揮発性メモリと、前記不揮発性メモリにおけるデータ処理を、TU(Translation Unit)単位で論物変換を行うことで管理し、フォールド処理を行う制御部とを備えるメモリ管理装置のメモリ管理方法であって、前記メモリ管理装置が、ファイルシステムにより通知される、物理的に不要なデータが書き込まれている物理TUに対応する論理TUを表す不要論理TU情報に基づいて、前記不要論理TU情報に対応する物理TUのデータを前記フォールド処理におけるコピーの対象外に設定するステップを含む。
本技術の一側面のプログラムは、データの書き込みおよび読み出しはページ単位で行われ、消去はブロック単位で行われる不揮発性メモリと、前記不揮発性メモリにおけるデータ処理を、TU(Translation Unit)単位で論物変換を行うことで管理し、フォールド処理を行う制御部とを備えるコンピュータに、ファイルシステムにより通知される、物理的に不要なデータが書き込まれている物理TUに対応する論理TUを表す不要論理TU情報に基づいて、前記不要論理TU情報に対応する物理TUのデータを前記フォールド処理におけるコピーの対象外に設定するステップを含む処理を実行させる。
本技術の一側面においては、ファイルシステムにより通知される、物理的に不要なデータが書き込まれている物理TUに対応する論理TUを表す不要論理TU情報に基づいて、不要論理TU情報に対応する物理TUのデータがフォールド処理におけるコピーの対象外に設定される。
本技術の一側面によれば、不揮発性メモリにおける空き容量の確保の効率化を図ることが可能となる。
NANDフラッシュメモリのブロックおよびページについて説明する図である。 ブロック内のページの書き込み順序について説明する図である。 NANDフラッシュメモリのブロック、ページ、およびTUの関係を示す図である。 データの書き換えについて説明する図である。 フォールド処理の概要について説明する図である。 従来のフォールド処理の例について説明する図である。 本技術のフォールド処理の例について説明する図である。 本技術を適用したメモリ管理装置の構成例を示すブロック図である。 不要論理TU番号取得処理について説明するフローチャートである。 データ書き込み処理について説明するフローチャートである。 フォールド処理について説明するフローチャートである。 不要論理TUリスト保存処理について説明するフローチャートである。 不要論理TU番号通知処理について説明するフローチャートである。 不要論理TUリスト保存処理について説明するフローチャートである。 不要論理TU番号通知処理について説明するフローチャートである。 電源断対策を施したブロック消去処理の例について説明する図である。 ブロック番号書き込み処理について説明するフローチャートである。 電源断対策を施したブロック消去処理の他の例について説明する図である。 ブロック番号書き込み処理について説明するフローチャートである。 コンピュータのハードウェアの構成例を示すブロック図である。
まず、本技術の実施の形態について説明する前に、従来の技術について、より詳細に説明する。
[従来の技術について]
特許文献1においては、不揮発性メモリ上の実際のTU(Translation Unit)は物理TUと呼ばれ、アドレス変換されて不揮発性メモリの利用側に提供されるTUは論理TUと呼ばれている。これにより、特許文献1の技術では、ファイルシステムにおける読み書きの単位とTUとを一致させる等、データの読み書きのサイズを柔軟に設定することが可能となる。
また、特許文献1におけるデータの書き換えは、図4に示されるように、データが記録されていない空きの物理TUにデータを追記することで行われる。具体的には、書き換え前のデータが記録されていた物理TU P1を無効な状態へと更新し(図4のC)、書き換えを行う新たなデータを、データが記録されていない物理TU P2に書き込むことによって(図4のD)、データの書き換えが行われる。これにより、最新のデータが記録されている状態の物理TU(書き込み済みの有効な物理TU)と、消去対象の古いデータが記録されている状態の物理TU(書き込み済みの無効な物理TU)とが生じる。
なお、以降においては、適宜、物理TUにおいて、最新のデータが記録されている状態を「INUSE」といい、消去対象の古いデータが記録されている状態を「DIRTY」という。また、物理TUにおいて、消去後または初期化後でデータが記録されていない状態を「CLEAN」という。
上述したように、NANDフラッシュメモリのような不揮発性メモリは、ブロック単位でしかデータの消去を行うことができない。そのため、ブロックを構成する一部の物理TUに、例えば図4の物理TU P1のような“書き込み済みの無効な物理TU”があったとしても、“書き込み済みの有効な物理TU”が存在する場合には、消去を行うことができない。
したがって、データの書き換えが繰り返されるにつれて、不揮発性メモリにおける“書き込み済みの無効な物理TU”が増え、また、データの書き込みが可能な物理TU(例えば、CLEANな物理TU)の数が減ってしまう。すなわち、データの書き換えが繰り返されるにつれて、不揮発性メモリにおける空き容量が減ることになる。
そこで、特許文献1では、データの書き込みが可能な物理TUの数を増やして、不揮発性メモリにおける空き容量を確保するためのフォールド処理が提案されている。
フォールド処理とは、ブロックの内容のうち、書き込み済みの有効な物理TUのデータを、(データが記録されていない)未書き込みの物理TUがあるブロックへコピーし、コピー元のブロックを消去することによって、コピー元のブロックに含まれていた書き込み済みの無効な物理TUの数だけ、未書き込みの物理TUを増やす処理である。
図5は、フォールド処理の概要を示している。
図5の状態A,B,Cは、それぞれ、フォールド処理前のブロックB1,B2の状態、フォールド処理中のブロックB1,B2の状態、フォールド処理後のブロックB1,B2の状態を示している。
フォールド処理によれば、図5の状態Aに示されるように、コピー元のブロックB1の書き込み済みの有効な物理TUがコピー先のブロックB2にコピーされ、図5の状態Bに示されるように、コピー元のブロックB1においてコピーされた物理TUが、書き込み済みの無効な物理TUに更新される。そして、図5の状態Cに示されるように、コピー元のブロックB1が消去される。
このように、フォールド処理が行われることによって、“未書き込みの物理TU”が増え、ひいては、不揮発性メモリにおける空き容量が増えるようになる。
しかしながら、上述したように、従来の技術では、ファイルシステムにより通知される、NANDフラッシュメモリにおける空き容量の確保の効率化のための不要領域情報を活用する構成がなかったため、不要なデータは保持されたままとなり、空き容量の確保の観点から無駄があった。
[従来のフォールド処理の例]
ここで、図6を参照して、不要領域情報が考慮されずに実行される、従来のフォールド処理の例について説明する。
図6においては、不揮発性メモリの8個のブロックそれぞれの状態A乃至状態Hが時系列で示されている。なお、図6において、各ブロックを構成する物理TUには、対応する論理TU(LTU)の番号と、物理TUの状態とが示されている。
また、ここでは、論物変換はTU単位で行われるので、以下においては、不要領域情報として、物理的に不要なデータが書き込まれている物理TUに対応する論理TU(不要論理TU)の番号を表す不要論理TU情報(以下、不要論理TU番号ともいう)が、ファイルシステムにより通知されるものとする。
まず、図6の状態Aは、左から6番目のブロックに、論理TU 13(以下、LTU13等と記す)、LTU14、LTU17のデータが書き換えられ、さらにLTU17のデータがそのブロック内で書き換えられて、空き容量が少なくなってきた状態である。
次いで、図6の状態Bは、不要論理TU番号としてLTU10およびLTU11が通知された状態である。すなわち、LTU10およびLTU11のデータは、ファイルシステム側からみて不要なデータとなる。しかしながら、従来の技術では、不要論理TU番号は無視され、論物変換層で不要なデータが削除されることはない。
図6の状態Cは、LTU3の書き換えが行われた状態である。これにより、左から7番目のブロックに新たにLTU3のデータが書き込まれ、LTU3のデータが書き込まれていた物理TUの状態はDIRTYになる。
図6の状態Dは、LTU4の書き換えが行われた状態である。これにより、左から7番目のブロックに新たにLTU4のデータが書き込まれ、LTU4のデータが書き込まれていた物理TUの状態はDIRTYになる。
図6の状態Eは、LTU8の書き換えが行われた状態である。これにより、左から7番目のブロックに新たにLTU8のデータが書き込まれ、LTU8のデータが書き込まれていた物理TUの状態はDIRTYになる。
図6の状態Fは、LTU9の書き換えが行われた状態である。これにより、左から7番目のブロックに新たにLTU9のデータが書き込まれ、LTU9のデータが書き込まれていた物理TUの状態はDIRTYになる。
ここで、直近にデータを書き込んだ書き込み先がブロックにおける最終の物理TUであることを条件にフォールド処理が開始されるものとすると、図6の状態Fでフォールド処理が開始される。すなわち、図6の状態Gに示されるように、左から3番目のブロックにおけるLTU10およびLTU11のデータが、左から8番目のブロックにコピーされ、コピー元の左から3番目のブロックは全てDIRTYな物理TUとなり、消去される。
さらに、フォールド処理が行われると、図6の状態Hに示されるように、左から4番目のブロックにおけるLTU12およびLTU15のデータが、左から8番目のブロックにコピーされ、コピー元の左から4番目のブロックは全てDIRTYな物理TUとなり、消去される。
ここで、フォールド処理により、1ブロックのサイズの該当するサイズ分、未書き込みの物理TU(CLEANな物理TU)が増えることを条件にフォールド処理が停止されるものとすると、図6の状態Hで、フォールド処理は停止される。
このようにして、従来の技術におけるフォールド処理が実行されるが、図6の状態Bでは、不要論理TU番号は無視され、LTU10およびLTU11に対応する物理TUの状態はINUSEのままとなる。結果として、図6の状態Gで、本来不要なデータであるLTU10およびLTU11のデータのコピーが行われてしまう。
そこで、本技術においては、図6の状態Gで示されたような無駄なコピーが行われないように、通知される不要論理TU番号に対応する物理TUのデータを、フォールド処理におけるコピーの対象外とする。
[本技術のフォールド処理の例]
図7は、不要領域情報が考慮されて実行される、本技術のフォールド処理の例を示している。
図7においても、図6と同様、不揮発性メモリの8個のブロックそれぞれの状態A乃至状態Gが時系列で示されている。
まず、図7の状態Aは、左から6番目のブロックに、LTU13、LTU14、LTU17のデータが書き換えられ、さらにLTU17のデータがブロック内で書き換えられて、空き容量が少なくなってきた状態である。
次いで、図7の状態Bは、不要論理TU番号としてLTU10およびLTU11が通知された状態である。このとき、論物変換層側では、不要論理TU番号に対応する物理TUの状態がDIRTYとされる。
図7の状態Cは、LTU3の書き換えが行われた状態である。これにより、左から7番目のブロックに新たにLTU3のデータが書き込まれ、LTU3のデータが書き込まれていた物理TUの状態はDIRTYになる。
図7の状態Dは、LTU4の書き換えが行われた状態である。これにより、左から7番目のブロックに新たにLTU4のデータが書き込まれ、LTU4のデータが書き込まれていた物理TUの状態はDIRTYになる。
図7の状態Eは、LTU8の書き換えが行われた状態である。これにより、左から7番目のブロックに新たにLTU8のデータが書き込まれ、LTU8のデータが書き込まれていた物理TUの状態はDIRTYになる。
図7の状態Fは、LTU9の書き換えが行われた状態である。これにより、左から7番目のブロックに新たにLTU9のデータが書き込まれ、LTU9のデータが書き込まれていた物理TUの状態はDIRTYになる。
ここで、図6の場合と同様に、直近にデータを書き込んだ書き込み先がブロックにおける最終の物理TUであることを条件にフォールド処理が開始されるものとすると、図7の状態Fでフォールド処理が開始されるが、図7の状態Gに示されるように、左から3番目のブロックにおけるLTU10およびLTU11に対応する物理TUは、図7の状態Bで既にDIRTYに設定されているので、LTU10およびLTU11のデータはコピーされることなく、左から3番目のブロックは消去される。
なお、図6の場合と同様に、フォールド処理により、1ブロックのサイズの該当するサイズ分、未書き込みの物理TU(CLEANな物理TU)が増えることを条件にフォールド処理が停止されるものとすると、図7の状態Gで、フォールド処理は停止される。
なお、フォールド処理の開始条件や停止条件は、上述したものに限られない。
このように、本技術におけるフォールド処理においては、図7の状態Bで、不要論理TU番号として通知されたLTU10およびLTU11に対応する物理TUの状態がDIRTYとされ、LTU10およびLTU11のデータは、フォールド処理におけるコピーの対象外に設定される。
結果として、ファイルシステムからの同一の処理要求に対して、図6の例では、2回のブロック消去と1ブロック分のコピーとが行われるのに対し、図7の例では、1回のブロック消去のみが行われるようになる。したがって、本技術によれば、不揮発性メモリにおける空き容量の確保の効率化を図ることができ、ひいては、不揮発性メモリにおけるデータの書き換えのパフォーマンス向上や、NANDフラッシュメモリのような不揮発性メモリの長寿命化を図ることが可能となる。
[メモリ管理装置の構成例]
図8は、本技術を適用したメモリ管理装置の構成例を示している。
メモリ管理装置10は、不揮発性メモリであるNANDフラッシュメモリ11、例えばDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリにより構成されるメモリ12、および制御部としてのCPU(Central Processing Unit)13を備えている。NANDフラッシュメモリ11、メモリ12、およびCPU13は、バス14を介して相互に接続されている。
NANDフラッシュメモリ11は、複数のメモリセルが直列に接続されたNANDストリングがアレイ状に配列されたメモリセルアレイを有し、電気的に書き込み、読み出し、および消去が可能である。
NANDフラッシュメモリ11の書き込み/読み出しの最小単位はページであり、消去の最小単位はページが複数集まったブロックである。例えば、ページは512バイトのデータ領域に拡張領域の16バイトを加えた528バイト、つまり4224ビットにより形成され、ブロックは32個のページを含む。
NANDフラッシュメモリ11へのアクセス管理は、拡張領域に書き込まれる管理情報や、メモリ12に構築される論理−物理変換テーブル(論物変換テーブル)、物理TU状態マップ、および不要論理TUリストの情報に基づいて、CPU13の制御によって行われる。なお、NANDフラッシュメモリ11へのアクセスには、書き込み、読み出し、および消去の各操作に関するメモリアクセスが含まれる。
メモリ12は、プログラム格納用のROM(Read Only Memory)、作業用メモリであるRAM等を含む。メモリ12には、CPU13の制御の下、論物変換テーブル、および物理TU状態マップ、および不要論理TUリストが構築され、保持される。
CPU13は、NANDフラッシュメモリ11の拡張領域に書き込まれる管理情報や、メモリ12に構築される論物変換テーブル、物理TU状態マップ、および不要論理TUリストの情報に基づいて、NANDフラッシュメモリ11へのアクセスを管理する制御部として機能する。
CPU13は、ブロックのサイズの整数分の1、かつページのサイズの整数倍のTU単位で論物変換を行い、NANDフラッシュメモリ11のアクセス管理を行う。
また、CPU13は、ブロックの内容のうち、書き込み済みの有効な物理TUのデータを、(データが記録されていない)未書き込みの物理TUがあるブロックへコピーし、コピー元のブロックを消去することによって、コピー元のブロックに含まれていた書き込み済みの無効な物理TUの数だけ、未書き込みの物理TUを増やすフォールド処理を行う機能を有する。
[メモリ上のデータ構造]
ここで、メモリ12上のデータ構造について説明する。
メモリ12上には、論物変換テーブル、物理TU状態マップ、および不要論理TUリストが形成される。
論物変換テーブルは、論理TU番号(アドレス)から対応する物理TU番号(アドレス)を得るためのテーブルである。論理TU番号に対応する物理TUが存在しない場合、その物理TU番号はUNDEF(未定義)とされる。
物理TU状態マップは、各物理TUの状態を管理するためのマップで、状態としては、以下の4種類が存在する。
CLEAN:消去操作を行った後の未書き込みの状態。
INUSE:論物変換テーブルで参照される有効なデータが格納されている状態。
DIRTY:論物変換テーブルで参照されない無効なデータが格納されている状態。
DEFECT:不良ブロックの中の物理TUである状態。
不要論理TUリストは、通知された不要論理TU情報(不要論理TU番号)を格納するためのリストである。新たに書き込みされるデータの論理TU番号が不要論理TUリストに格納されている場合、不要論理TUリストからは、その論理TU番号は削除される。
以下においては、CPU13の制御によって行われる各種動作について説明する。
まず、図9を参照して、ファイルシステム等のNANDフラッシュメモリ11の利用側から通知される不要論理TU番号の取得処理について説明する。
[不要論理TU番号取得処理]
まず、ステップS11において、CPU13は、NANDフラッシュメモリ11の利用側から通知される不要論理TU番号Lを取得する。
ステップS12において、CPU13は、メモリ12上の論物変換テーブルを参照することで、論物変換テーブルにおいて、取得した不要論理TU番号Lに対応する物理TU番号がUNDEF(未定義)であるか否かを判定する。
ステップS12において、取得した不要論理TU番号Lに対応する物理TU番号がUNDEFでないと判定された場合、処理はステップS13に進む。
ステップS13において、CPU13は、メモリ12上の物理TU状態マップを参照することで、物理TU状態マップにおいて、取得した不要論理TU番号Lに対応する物理TUの状態をDIRTYに設定する。
ステップS14において、CPU13は、メモリ12上の論物変換テーブルを参照することで、論物変換テーブルにおいて、取得した不要論理TU番号Lに対応する物理TU番号をUNDEFに設定する。
ステップS15において、CPU13は、メモリ12上の不要論理TUリストに、取得した不要論理TU番号Lを追加し、処理は終了する。
一方、ステップS12において、取得した不要論理TU番号Lに対応する物理TU番号がUNDEFであると判定された場合、ステップS13乃至S15はスキップされ、処理は終了する。
以上の処理によれば、物理TU状態マップにおいて、NANDフラッシュメモリ11の利用側から通知された不要論理TU番号に対応する物理TUの状態がDIRTYに設定される。これにより、不要論理TU番号に対応する物理TUが、フォールド処理におけるコピーの対象外に設定されるようになるので、図7を参照して説明したように、不揮発性メモリにおける空き容量の確保の効率化を図ることができ、ひいては、不揮発性メモリにおけるデータの書き換えのパフォーマンス向上や、NANDフラッシュメモリのような不揮発性メモリの長寿命化を図ることが可能となる。
次に、データの読み出し動作について説明する。
[データの読み出し]
CPU13は、読み出しを行う論理TU番号を、メモリ12上の論物変換テーブルを参照することで、物理TU番号に変換する。そして、CPU13は、変換された物理TU番号から、データの読み出しを実施する物理TUを特定し、そのデータ領域を読み込む。
ただし、読み出しを行う論理TU番号に対応する物理TUが存在しない場合(UNDEFの場合)、データ領域の読み込みは行われず、0xffのフィルまたは0x00のフィルによりデータが返される。
次に、図10のフローチャートを参照して、データの書き込み動作について説明する。
[データの書き込み]
まず、ステップS31において、CPU13は、直前に書き込まれた物理TUが、ブロックの最後の物理TUであるか否かを判定する。
ステップS31において、直前に書き込まれた物理TUが、ブロックの最後の物理TUでないと判定された場合、処理はステップS32に進む。
ステップS32において、CPU13は、書き込み対象となる物理TU(以下、書き込み対象PTUという)を、ブロックの次のPTU(物理TU)に設定する。
一方、ステップS31において、直前に書き込まれた物理TUが、ブロックの最後の物理TUであると判定された場合、処理はステップS33に進む。
ステップS33において、CPU13は、ブロックにおける先頭の物理TUが“未書き込みの物理TU”であるブロックを1つ選択し、そのブロックにおける先頭の物理TUを、書き込み対象PTUに設定する。
ステップS32またはステップS33の後、ステップS34において、CPU13は、設定された書き込み対象PTUに、指定されたデータを書き込む。
ステップS35において、CPU13は、メモリ12上の論物変換テーブル、物理TU状態マップ、および不要論理TUリストを更新する。
具体的には、書き込みが要求された論理TUの番号をL'とすると、CPU13は、物理TU状態マップにおいて、論物変換テーブルで前に論理TU番号L'に対応していた物理TU番号がUNDEFでない場合には、その物理TUの状態をDIRTYとし、書き込み対象PTUの状態をINUSEとする。
また、CPU13は、論物変換テーブルにおいて、論理TU番号L'と書き込み対象PTUの番号とを対応させる。
さらに、CPU13は、不要論理リストにおいて、論理TU番号L'が含まれる場合には、不要論理リストから論理TU番号L'を削除する。
次に、図11のフローチャートを参照して、フォールド処理における動作について説明する。なお、図11で示されるフォールド処理は、所定の開始条件が満たされたときに開始され、所定の終了条件が満たされるまで繰り返されるものとする。
[フォールド処理]
まず、ステップS51において、CPU13は、フォールド処理の対象となるブロック(以下、フォールド対象ブロックという)を選択する。ここでは、例えば、NANDフラッシュメモリ11におけるブロックの中から、“書き込み済みの無効な物理TU”(DIRTYな物理TU)の数がより多いブロックが選択される。
ステップS52において、CPU13は、選択したフィールド対象ブロックから未コピーの“書き込み済みの有効な物理TU”(INUSEな物理TU)を選択する。
ステップS53において、CPU13は、選択した物理TU内のデータを読み込む。
ステップS54において、CPU13は、読み込んだデータの内容を、コピー先のブロックにおける未書き込みの物理TUにコピーする。
ステップS55において、CPU13は、フォールド対象ブロックの全ての“書き込み済みの有効な物理TU”のコピーが完了したか否かを判定する。
ステップS55において、フォールド対象ブロックの全ての“書き込み済みの有効な物理TU”のコピーが完了していないと判定された場合、処理はステップS52に戻り、これ以降の処理が繰り返される。
一方、ステップS55において、フォールド対象ブロックの全ての“書き込み済みの有効な物理TU”のコピーが完了したと判定された場合、処理はステップS56に進み、CPU13は、フォールド対象ブロックを消去し、処理は終了する。
以上の処理によれば、“未書き込みの物理TU”(CLEANな物理TU)が増え、ひいては、不揮発性メモリにおける空き容量が増えるようになる。なお、フォールド対象ブロックにおいて、不要論理TU番号に対応する物理TUが存在する場合、その物理TUは、“書き込み済みの無効な物理TU”(DIRTYな物理TU)であるので、コピーの対象とならない。すなわち、図7を参照して説明したように、不揮発性メモリにおける空き容量の確保の効率化を図ることができ、ひいては、不揮発性メモリにおけるデータの書き換えのパフォーマンス向上や、NANDフラッシュメモリのような不揮発性メモリの長寿命化を図ることが可能となる。
次に、起動時のテーブル構築について説明する。
[起動時のテーブル構築]
上述したように、論物変換テーブル、物理TU状態マップ、および不要論理TUリストは、メモリ12上のデータであるので、電源断により失われてしまう。これに対して、特許文献1では、電源断後の再起動時に、物理TUの拡張領域に書き込まれている管理情報をブロック毎に走査することで、論物変換テーブルと物理TU状態マップとを復元する手法が開示されている。なお、物理TUの拡張領域に書き込まれている管理情報には、その物理TUに対応する論理TU番号や、ブロック毎に割り当てられている書き込み順序を表す番号が含まれている。
しかしながら、特許文献1の手法では、電源断時に、不要論理TUリストに格納されている不要論理TU番号に対応する物理TUが消去されずにNANDフラッシュメモリ11上に存在していた場合、再起動時のテーブル構築の際、物理TU状態マップにおいて、不要論理TU番号に対応する物理TUの状態がINUSEとなって復元されてしまう。
この場合、不要論理TU番号に対応する物理TUは、ファイルシステム側からはもともと参照されることはないものの、不要論理TUリストが失われているため、論物変換層側から見ればINUSEな状態と判断されてしまう。したがって、不要なデータが保持されたままとなり、空き容量の確保の効率化を妨げる恐れがある。
そこで、以下においては、電源断後の再起動時に不要論理TUリストを復元させる手法について説明する。
まず、電源断後の再起動時に不要論理TUリストを復元させる第1の手法について説明する。
[不要論理TUリストをファイルシステム上のデータとして保存し、不要論理TU番号を通知させる手法]
図12は、不要論理TUリストを保存する処理について説明するフローチャートである。
ステップS71において、CPU13は、電源断を検知したか否かを判定する。ステップS71においては、電源断が検知されるまで処理は進まない。
ステップS71において、電源断を検知したと判定されると、電源断の直前に、処理はステップS72に進み、CPU13は、メモリ12上の不要論理TUリストを、ファイルシステム上のデータとして、NANDフラッシュメモリ11のデータ領域に保存する。
このようにして、電源断前に、不要論理TUリストが保存される。
図13は、不要論理TU番号を通知する処理について説明するフローチャートである。なお、図13の不要論理TU番号通知処理は、電源断後の再起動時に実行される。
ステップS91において、CPU13は、NANDフラッシュメモリ11のデータ領域に保存されている不要論理TUリストを読み出す。
ステップS92において、CPU13は、読み出した不要論理TUリストを基に、不要論理TU番号をファイルシステムに通知させる。
このようにして、ファイルシステムから不要論理TU番号が通知されると、論物変換層において、図9のフローチャートを参照して説明したように、不要論理TUリストが再構築される。
次に、電源断後の再起動時に不要論理TUリストを復元させる第2の手法について説明する。
[不要論理TUリストを論物変換層側で保存し、不要論理TU番号を通知させる手法]
図14は、不要論理TUリストを論物変換層側で保存する処理について説明するフローチャートである。
ステップS111において、CPU13は、電源断を検知したか否かを判定する。ステップS111においては、電源断が検知されるまで処理は進まない。
ステップS111において、電源断を検知したと判定されると、電源断の直前に、処理はステップS112に進み、CPU13は、メモリ12上の不要論理TUリストを保存するための未書き込みの物理TUを選択する。
ステップS113において、CPU13は、選択された物理TUの拡張領域に書き込まれている管理情報に含まれる論理TU番号に特殊な番号を設定する。これにより、不要論理TUリストを保存するための物理TUが、ファイルシステムからのデータが保存されている他の物理TUと区別されるようになる。
ステップS114において、CPU13は、メモリ12上の不要論理TUリストを、特殊な番号を設定した物理TUのデータ領域に保存する。
このようにして、電源断前に、不要論理TUリストが保存される。
保存された不要論理TUリストは、図13のフローチャートを参照して説明した、電源断後の再起動時に実行される不要論理TU番号通知処理と同様にして読み出され、不要論理TU番号が通知される。結果として、論物変換層において、図9のフローチャートを参照して説明したように、不要論理TUリストが再構築される。
さらに、電源断後の再起動時に不要論理TUリストを復元させる第3の手法について説明する。
[ファイルシステムの管理情報から不要論理TU番号を生成し、通知させる手法]
図15は、不要論理TU番号を生成し、通知する処理について説明するフローチャートである。なお、図15の処理は、電源断後の再起動時に実行される。
ステップS131において、CPU13は、ファイルシステムの管理情報に含まれる未使用領域に関する情報から、不要論理TU番号を生成する。
一般的に、ファイルシステムは、自身の管理情報により、自身が使用する領域のうちのどの領域にデータを保存しているか、どの領域が未使用領域かを把握している。したがって、ファイルシステムは、管理情報に含まれる未使用領域に関する情報から、未使用領域を不要論理TUとして認識し、不要論理TU番号を生成することができる。例えば、ファイルシステムが、FAT(File Allocation Table)ファイルシステムである場合、不要論理TU番号は、そのテーブルから生成されるようになる。
ステップS132において、CPU13は、生成した不要論理TU番号をファイルシステムに通知させる。
このようにして、ファイルシステムから不要論理TU番号が通知されると、論物変換層において、図9のフローチャートを参照して説明したように、不要論理TUリストが再構築される。
なお、図15の処理においては、未使用領域に関する情報を収集するのに時間がかかってしまうものの、網羅的に不要論理TU情報を論物変換層に通知することが可能である。
また、図15の処理は、電源断後の再起動時に実行されるものとしたが、システムの空き時間を利用して実行されるようにしてもよい。
以上の処理によれば、電源断後の再起動時に不要論理TUリストが復元されるようになるので、不要なデータが保持されたままとなることはなく、不揮発性メモリにおける空き容量の確保の効率化を図ることができ、ひいては、不揮発性メモリにおけるデータの書き換えのパフォーマンス向上や、NANDフラッシュメモリのような不揮発性メモリの長寿命化を図ることが可能となる。
[書き込み中や消去中の電源断対策について]
次に、停電や動作不良等に起因するシステムダウンが生じた後に実施されるシステム復帰処理に伴ってNANDフラッシュメモリ11におけるデータの記憶状態を正常化するための工夫について説明する。
NANDフラッシュメモリ11への書き込み中に電源断が発生した場合、書き込み中の物理TUのデータや管理情報が中途半端な値になってしまう可能性がある。また、NANDフラッシュメモリ11の消去中に電源断が発生した場合、消去中のブロック中の物理TUのデータや管理情報が完全に消去されずに残ってしまう可能性がある。その結果、再起動時に、中途半端な状態の物理TUを有効な物理TUとみなして利用したり、未書き込みの物理TUとみなして上書きを行ってしまう恐れがあった。
これに対して、特許文献1では、書き込み直後に、書き込みが完了したことを表す情報を物理TUの拡張領域に書き込んだり、再起動時に、物理TUの拡張領域に書き込まれている管理情報に含まれるCRC(Cyclic Redundancy Check)情報をチェックすることで、中途半端な状態の物理TUを正しい状態にする手法が開示されている。
以下においては、消去中の電源断対策をより強化する手法について説明する。
[消去中の電源断対策の強化1]
まず、図16を参照して、電源断対策を施したブロック消去処理の例について説明する。
図16においては、不揮発性メモリの8個のブロックそれぞれの状態A乃至状態Eが時系列で示されている。
まず、図16の状態Aは、左から6番目のブロックに、LTU13、LTU14、LTU17のデータが書き換えられ、さらにLTU17のデータがブロック内で書き換えられ、さらにまた、LTU3、LTU4、LTU8の書き換えが行われて、左から7番目のブロックに新たにLTU3、LTU4、LTU8のデータが書き込まれた状態である。
図16の状態Bは、LTU9の書き換えが行われた状態である。これにより、左から7番目のブロックに新たにLTU9のデータが書き込まれ、LTU9のデータが書き込まれていた物理TUの状態はDIRTYになる。
その結果、左から3番目のブロックは全てDIRTYな物理TUとなり、図16の状態Cのように消去可能な状態となる。このとき、左から7番目のブロックの物理TUにLTU9のデータが書き込まれるとともに、消去可能となる左から3番目のブロックの番号(以下、消去ブロック番号ともいう)BN3が、LTU9のデータが書き込まれる物理TUの拡張領域に書き込まれるようにする。
ここで、図16の状態Cで、左から3番目のブロックが消去されている最中に、電源断が発生したとする。
図16の状態Dは、電源断後、再起動時の不揮発性メモリの状態である。図16の状態Dでは、左から3番目のブロックは、消去中に電源断が発生したため、その状態は中途半端な状態となっている。
そこで、図16の状態Eで、フォールド処理において最後に書き込まれたデータ、すなわちLTU9のデータが書き込まれた物理TUの拡張領域に書き込まれた消去ブロック番号BN3に基づいて、左から3番目のブロックが消去される。
このようにして、ブロックの消去中に電源断が発生した場合であっても、再起動時に、中途半端な状態のブロックが確実に消去される。
次に、図17のフローチャートを参照して、図16を参照して説明したブロック消去中におけるブロック番号書き込み処理について説明する。
なお、ブロックの消去は、図16を参照して説明したような、ファイルシステムからの要求に応じた論理TUのデータの書き換えの処理の結果、消去可能となるブロック(含まれる全ての物理TUの状態がDIRTYとなるブロック)が発生したときの他、フォールド処理においてコピー元のブロックが消去可能となったときに実行される。
すなわち、ステップS151において、CPU13は、論理TUのデータの書き換えまたはフォールド処理で書き込み対象となる(コピー元の)物理TU内のデータを読み込む。
ステップS152において、CPU13は、書き込み対象PTUを含むブロックが消去可能となるか否かを判定する。
ステップS152において、書き込み対象PTUを含むブロックが消去可能となると判定された場合、処理はステップS153に進み、CPU13は、書き込まれる(コピーされる)データを書き込み先(コピー先)の物理TUに書き込むとともに、書き込み先(コピー先)の物理TUの拡張領域に、消去対象ブロックのブロック番号(消去ブロック番号)を書き込む。
そして、ステップS154において、CPU13は、消去対象ブロックを消去し、処理は終了する。
一方、ステップS152において、書き込み対象PTUを含むブロックが消去可能とならないと判定された場合、処理はステップS155に進み、CPU13は、書き込まれる(コピーされる)データのみを書き込み先(コピー先)の物理TUに書き込み、処理は終了する。
以上の処理によれば、所定のデータ処理において消去可能となったブロックのブロック番号(消去ブロック番号)が、消去対象ブロックから最後にコピーされるデータとともに保存されるようになる。これにより、所定のデータ処理におけるブロックの消去中に電源断が発生した場合であっても、再起動時に、消去ブロック番号を参照することで、中途半端な状態のブロックを確実に消去することが可能となる。
[消去中の電源断対策の強化2]
次に、図18を参照して、電源断対策を施したブロック消去処理の他の例について説明する。
図18においては、不揮発性メモリの8個のブロックそれぞれの状態A乃至状態Fが時系列で示されている。
図18の状態Aは、図16の状態Aと同様に、左から6番目のブロックに、LTU13、LTU14、LTU17のデータが書き換えられ、さらにLTU17のデータがブロック内で書き換えられ、さらにまた、LTU3、LTU4、LTU8の書き換えが行われて、左から7番目のブロックに新たにLTU3、LTU4、LTU8のデータが書き込まれた状態である。
次いで、図18の状態Bは、不要論理TU番号としてLTU0、LTU1、およびLTU2が通知された状態である。このとき、論物変換層側では、不要論理TU番号に対応する物理TUの状態がDIRTYとされる。
図18の状態Cは、LTU9の書き換えが行われた状態である。これにより、左から7番目のブロックに新たにLTU9のデータが書き込まれ、LTU9のデータが書き込まれていた物理TUの状態はDIRTYになる。
その結果、左から3番目のブロックは全てDIRTYな物理TUとなり、図18の状態Dのように消去可能な状態となり、消去可能となる左から3番目のブロックの番号(消去ブロック番号)BN3が、LTU9のデータが書き込まれる物理TUの拡張領域に書き込まれる。
図18の状態Eは、LTU10の書き換えが行われた状態である。これにより、左から8番目のブロックに新たにLTU10のデータが書き込まれる。このとき、左から1番目のブロックは、全ての物理TUがDIRTYとなり消去可能となっている。
そこで、図18の状態Eでは、消去可能である左から1番目のブロックの番号(消去ブロック番号)BN1が、LTU10のデータが書き込まれる物理TUの拡張領域に書き込まれるようにする。
そして、図18の状態Fで、消去可能な左から1番目のブロックが消去される。
次に、図19のフローチャートを参照して、図18を参照して説明したブロック消去中におけるブロック番号書き込み処理について説明する。
なお、図19のフローチャートのステップS171乃至S174の処理は、ステップS172における判定がNOである場合の処理を除いて、図17のフローチャートのステップS151乃至S154の処理と、同様であるので、その説明は省略する。
すなわち、ステップS172において、書き込み対象PTUを含むブロックが消去可能とならないと判定された場合、処理はステップS175進み、CPU13は、消去可能な他のブロック、すなわち、論理TUのデータの書き換えまたは不要論理TU番号の通知により全ての物理TUがDIRTYとなっているブロックが存在するか否かを判定する。
ステップS175において、消去可能な他のブロックが存在すると判定された場合、処理はステップS176に進み、CPU13は、書き込まれる(コピーされる)データを書き込み先(コピー先)の物理TUに書き込むとともに、書き込み先(コピー先)の物理TUの拡張領域に、消去可能な他のブロックのブロック番号(消去ブロック番号)を書き込む。
そして、ステップS177において、CPU13は、消去可能な他のブロックを消去し、処理は終了する。
一方、ステップS175において、消去可能な他のブロックが存在しないと判定された場合、処理はステップS178に進み、CPU13は、書き込まれる(コピーされる)データのみを書き込み先(コピー先)の物理TUに書き込み、処理は終了する。
以上の処理によれば、不要論理TU番号の通知により既に消去可能となっているブロックのブロック番号(消去ブロック番号)が、データ処理によりブロックからコピーされるデータとともに保存されるようになる。これにより、所定のデータ処理におけるブロックの消去中に電源断が発生した場合であっても、再起動時に、消去ブロック番号を参照することで、中途半端な状態のブロックを確実に消去することが可能となる。
本技術によれば、次のような効果を実現することができる。
(1)不要論理TU情報(不要論理TU番号)を論物変換層内で保持し、フォールド処理時に不要論理TUの無駄なコピーを行わないようにしたので、書き換えのパフォーマンス向上およびNANDフラッシュメモリの長寿命化を図ることができる。
(2)不要論理TU情報を、通常動作時にはメモリ上で保持し、電源断直前にNANDフラッシュメモリに書き込むようにしたので、特定のファイルシステムに依存せずに、NANDフラッシュメモリへの書き込み負荷を抑えつつ、再起動時には不要論理TU情報を復元することが可能となる。
(3)再起動時に、ファイルシステム側から未使用領域(空き領域)を表す情報を、不要論理TU情報として通知するようにしたので、NANDフラッシュメモリへの書き込み負荷を抑えつつ、再起動時には不要論理TU情報を復元することが可能となる。
(4)フォールド処理において消去可能となったブロックのブロック番号を別のブロックに保持するようにしたので、消去可能となったブロックの消去中に電源断が発生し、そのブロックが中途半端な状態になった場合でも、再起動時にそのブロックを特定し、確実に消去することが可能となる。
以上においては、本技術を、NANDフラッシュメモリのアクセス管理を行うメモリ管理装置に適用するものとしたが、その他の不揮発性メモリのアクセス管理を行うメモリ管理装置に適用することもできる。
また、本技術の実施の形態は、例えば、不揮発性メモリを用いる記憶装置、パーソナルコンピュータ、テレビジョン受像機等の表示装置、携帯電話機等の携帯型通信装置、映像/音楽再生装置(または映像/音楽記録再生装置)、ゲーム機等、様々な機器に適用することができる。さらに、本技術の実施の形態は、以上のような様々な機器に組み込まれる記録媒体の制御IC(Integrated Circuit)に適用することもできる。
なお、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、プログラム記録媒体からインストールされる。
図20は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)901,ROM(Read Only Memory)902,RAM(Random Access Memory)903は、バス904により相互に接続されている。なお、CPU901は、本技術における制御部としてのCPU13に対応し、ROM902およびRAM903は、本技術における保持部としてのメモリ12に対応する。
バス904には、さらに、入出力インタフェース905が接続されている。入出力インタフェース905には、キーボード、マウス、マイクロホン等よりなる入力部906、ディスプレイ、スピーカ等よりなる出力部907、ハードディスクや不揮発性のメモリ等よりなる記憶部908、ネットワークインタフェース等よりなる通信部909、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア911を駆動するドライブ910が接続されている。なお、記憶部908は、本技術における不揮発性メモリとしてのNANDフラッシュメモリ11に対応する。
以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部908に記憶されているプログラムを、入出力インタフェース905およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU901)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア911に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア911をドライブ910に装着することにより、入出力インタフェース905を介して、記憶部908にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部909で受信し、記憶部908にインストールすることができる。その他、プログラムは、ROM902や記憶部908に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
さらに、本技術は以下のような構成をとることができる。
(1)
データの書き込みおよび読み出しはページ単位で行われ、消去はブロック単位で行われる不揮発性メモリと、
前記不揮発性メモリにおけるデータ処理を、TU(Translation Unit)単位で論物変換を行うことで管理し、フォールド処理を行う制御部と
を備え、
前記制御部は、ファイルシステムにより通知される、物理的に不要なデータが書き込まれている物理TUに対応する論理TUを表す不要論理TU情報に基づいて、前記不要論理TU情報に対応する物理TUのデータを前記フォールド処理におけるコピーの対象外に設定する
メモリ管理装置。
(2)
前記不要論理TU情報を保持する保持部をさらに備える
(1)に記載のメモリ管理装置。
(3)
前記制御部は、電源断前に、前記保持部に保持されている前記不要論理TU情報を、前記ファイルシステム上のデータとして前記不揮発性メモリに保存し、起動時に、前記不揮発性メモリに保存されている前記不要論理TU情報を前記ファイルシステムに通知させる
(2)に記載のメモリ管理装置。
(4)
前記制御部は、電源断前に、前記保持部に保持されている前記不要論理TU情報を、前記不揮発性メモリの所定の論理TU番号が設定された物理TUに保存し、起動時に、前記所定の論理TU番号が設定された物理TUに保存されている前記不要論理TU情報を前記ファイルシステムに通知させる
(2)に記載のメモリ管理装置。
(5)
前記制御部は、前記ファイルシステムの管理情報に含まれる未使用領域に関する情報に基づいて、前記不要論理TU情報を前記ファイルシステムに生成させ、通知させる
(2)に記載のメモリ管理装置。
(6)
前記保持部は、各物理TUの状態を管理するための物理TU状態マップと、前記不要論理TU情報を格納する不要論理TUリストとを保持し、
前記制御部は、前記ファイルシステムにより前記不要論理TU情報が通知されると、前記物理TU状態マップにおいて前記不要論理TU情報に対応する物理TUの状態を書き込み済みの無効な物理TUとするとともに、前記不要論理TUリストに、通知された前記不要論理TU情報を追加する
(2)乃至(5)のいずれかに記載のメモリ管理装置。
(7)
前記保持部は、論理TUのアドレスと物理TUのアドレスとを対応付けた論物変換テーブルをさらに保持し、
前記制御部は、前記ファイルシステムにより前記不要論理TU情報が通知されると、前記論物変換テーブルにおいて、前記不要論理TU情報に対応する物理TUのアドレスを未定義に設定する
(6)に記載のメモリ管理装置。
(8)
前記制御部は、前記物理TU状態マップにおいて、前記ブロックに含まれる全ての物理TUの状態が、書き込み済みの無効な物理TUとなったとき、前記ブロックを消去する
(6)に記載のメモリ管理装置。
(9)
前記制御部は、データ処理の結果、データのコピー元となる物理TUを含む前記ブロックが消去可能となる場合、前記データ処理において、消去可能となる前記ブロックを表すブロック番号を、前記データがコピーされる前記未書き込みの物理TUに書き込んで、前記ブロックを消去する
(8)に記載のメモリ管理装置。
(10)
前記データ処理は、前記ファイルシステムからの要求に応じた論理TUのデータの書き換えである
(9)に記載のメモリ管理装置。
(11)
前記データ処理は、前記フォールド処理である
(9)に記載のメモリ管理装置。
(12)
前記制御部は、前記データ処理の結果、データのコピー元となる物理TUを含む前記ブロックが消去可能とならず、かつ、他のブロックが消去可能である場合、前記データ処理において、消去可能となる前記他のブロックを表すブロック番号を、前記データがコピーされる前記未書き込みの物理TUに書き込んで、前記他のブロックを消去する
(9)乃至(11)のいずれかに記載のメモリ管理装置。
(13)
データの書き込みおよび読み出しはページ単位で行われ、消去はブロック単位で行われる不揮発性メモリと、
前記不揮発性メモリにおけるデータ処理を、TU(Translation Unit)単位で論物変換を行うことで管理し、フォールド処理を行う制御部とを備えるメモリ管理装置のメモリ管理方法であって、
前記メモリ管理装置が、
ファイルシステムにより通知される、物理的に不要なデータが書き込まれている物理TUに対応する論理TUを表す不要論理TU情報に基づいて、前記不要論理TU情報に対応する物理TUのデータを前記フォールド処理におけるコピーの対象外に設定する
ステップを含むメモリ管理方法。
(14)
データの書き込みおよび読み出しはページ単位で行われ、消去はブロック単位で行われる不揮発性メモリと、
前記不揮発性メモリにおけるデータ処理を、TU(Translation Unit)単位で論物変換を行うことで管理し、フォールド処理を行う制御部と
を備えるコンピュータに、
ファイルシステムにより通知される、物理的に不要なデータが書き込まれている物理TUに対応する論理TUを表す不要論理TU情報に基づいて、前記不要論理TU情報に対応する物理TUのデータを前記フォールド処理におけるコピーの対象外に設定する
ステップを含む処理を実行させるためのプログラム。
10 メモリ管理装置, 11 NANDフラッシュメモリ, 12 メモリ, 13 CPU

Claims (14)

  1. データの書き込みおよび読み出しはページ単位で行われ、消去はブロック単位で行われる不揮発性メモリと、
    前記不揮発性メモリにおけるデータ処理を、TU(Translation Unit)単位で論物変換を行うことで管理し、フォールド処理を行う制御部と
    を備え、
    前記制御部は、ファイルシステムにより通知される、物理的に不要なデータが書き込まれている物理TUに対応する論理TUを表す不要論理TU情報に基づいて、前記不要論理TU情報に対応する物理TUのデータを前記フォールド処理におけるコピーの対象外に設定する
    メモリ管理装置。
  2. 前記不要論理TU情報を保持する保持部をさらに備える
    請求項1に記載のメモリ管理装置。
  3. 前記制御部は、電源断前に、前記保持部に保持されている前記不要論理TU情報を、前記ファイルシステム上のデータとして前記不揮発性メモリに保存し、起動時に、前記不揮発性メモリに保存されている前記不要論理TU情報を前記ファイルシステムに通知させる
    請求項2に記載のメモリ管理装置。
  4. 前記制御部は、電源断前に、前記保持部に保持されている前記不要論理TU情報を、前記不揮発性メモリの所定の論理TU番号が設定された物理TUに保存し、起動時に、前記所定の論理TU番号が設定された物理TUに保存されている前記不要論理TU情報を前記ファイルシステムに通知させる
    請求項2に記載のメモリ管理装置。
  5. 前記制御部は、前記ファイルシステムの管理情報に含まれる未使用領域に関する情報に基づいて、前記不要論理TU情報を前記ファイルシステムに生成させ、通知させる
    請求項2に記載のメモリ管理装置。
  6. 前記保持部は、各物理TUの状態を管理するための物理TU状態マップと、前記不要論理TU情報を格納する不要論理TUリストとを保持し、
    前記制御部は、前記ファイルシステムにより前記不要論理TU情報が通知されると、前記物理TU状態マップにおいて前記不要論理TU情報に対応する物理TUの状態を書き込み済みの無効な物理TUとするとともに、前記不要論理TUリストに、通知された前記不要論理TU情報を追加する
    請求項2に記載のメモリ管理装置。
  7. 前記保持部は、論理TUのアドレスと物理TUのアドレスとを対応付けた論物変換テーブルをさらに保持し、
    前記制御部は、前記ファイルシステムにより前記不要論理TU情報が通知されると、前記論物変換テーブルにおいて、前記不要論理TU情報に対応する物理TUのアドレスを未定義に設定する
    請求項6に記載のメモリ管理装置。
  8. 前記制御部は、前記物理TU状態マップにおいて、前記ブロックに含まれる全ての物理TUの状態が、書き込み済みの無効な物理TUとなったとき、前記ブロックを消去する
    請求項6に記載のメモリ管理装置。
  9. 前記制御部は、データ処理の結果、データのコピー元となる物理TUを含む前記ブロックが消去可能となる場合、前記データ処理において、消去可能となる前記ブロックを表すブロック番号を、前記データがコピーされる前記未書き込みの物理TUに書き込んで、前記ブロックを消去する
    請求項8に記載のメモリ管理装置。
  10. 前記データ処理は、前記ファイルシステムからの要求に応じた論理TUのデータの書き換えである
    請求項9に記載のメモリ管理装置。
  11. 前記データ処理は、前記フォールド処理である
    請求項9に記載のメモリ管理装置。
  12. 前記制御部は、前記データ処理の結果、データのコピー元となる物理TUを含む前記ブロックが消去可能とならず、かつ、他のブロックが消去可能である場合、前記データ処理において、消去可能となる前記他のブロックを表すブロック番号を、前記データがコピーされる前記未書き込みの物理TUに書き込んで、前記他のブロックを消去する
    請求項9に記載のメモリ管理装置。
  13. データの書き込みおよび読み出しはページ単位で行われ、消去はブロック単位で行われる不揮発性メモリと、
    前記不揮発性メモリにおけるデータ処理を、TU(Translation Unit)単位で論物変換を行うことで管理し、フォールド処理を行う制御部とを備えるメモリ管理装置のメモリ管理方法であって、
    前記メモリ管理装置が、
    ファイルシステムにより通知される、物理的に不要なデータが書き込まれている物理TUに対応する論理TUを表す不要論理TU情報に基づいて、前記不要論理TU情報に対応する物理TUのデータを前記フォールド処理におけるコピーの対象外に設定する
    ステップを含むメモリ管理方法。
  14. データの書き込みおよび読み出しはページ単位で行われ、消去はブロック単位で行われる不揮発性メモリと、
    前記不揮発性メモリにおけるデータ処理を、TU(Translation Unit)単位で論物変換を行うことで管理し、フォールド処理を行う制御部と
    を備えるコンピュータに、
    ファイルシステムにより通知される、物理的に不要なデータが書き込まれている物理TUに対応する論理TUを表す不要論理TU情報に基づいて、前記不要論理TU情報に対応する物理TUのデータを前記フォールド処理におけるコピーの対象外に設定する
    ステップを含む処理を実行させるためのプログラム。
JP2012122852A 2012-05-30 2012-05-30 メモリ管理装置および方法、並びにプログラム Pending JP2013250603A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012122852A JP2013250603A (ja) 2012-05-30 2012-05-30 メモリ管理装置および方法、並びにプログラム
US13/900,682 US20130326123A1 (en) 2012-05-30 2013-05-23 Memory management device and method, and program
CN201310194128.1A CN103455430A (zh) 2012-05-30 2013-05-23 存储器管理设备和方法以及程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012122852A JP2013250603A (ja) 2012-05-30 2012-05-30 メモリ管理装置および方法、並びにプログラム

Publications (1)

Publication Number Publication Date
JP2013250603A true JP2013250603A (ja) 2013-12-12

Family

ID=49671734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012122852A Pending JP2013250603A (ja) 2012-05-30 2012-05-30 メモリ管理装置および方法、並びにプログラム

Country Status (3)

Country Link
US (1) US20130326123A1 (ja)
JP (1) JP2013250603A (ja)
CN (1) CN103455430A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11169871B2 (en) 2017-02-23 2021-11-09 SK Hynix Inc. Data storage device and operating method thereof
KR20180126921A (ko) * 2017-05-19 2018-11-28 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10891077B2 (en) * 2018-12-26 2021-01-12 Macronix International Co., Ltd. Flash memory device and controlling method thereof

Also Published As

Publication number Publication date
CN103455430A (zh) 2013-12-18
US20130326123A1 (en) 2013-12-05

Similar Documents

Publication Publication Date Title
JP5336060B2 (ja) 不揮発性メモリ装置およびそれを動作させる方法
JP3708047B2 (ja) フラッシュメモリの管理方法
US8914702B2 (en) Bit error repair method and information processing apparatus
TWI470426B (zh) Memory management device and memory management method
TWI492051B (zh) 資料儲存裝置與快閃記憶體控制方法
TWI436369B (zh) 記憶裝置之使用壽命量測方法及系統內編程碼置換方法、及其資料儲存系統
JP2009205555A (ja) メモリシステム
JP2013520744A (ja) 最小ブートイメージの生成方法及びその装置
JP2008102900A (ja) メモリ装置内のアドレッシング可能な空間を再配置させる方法及び装置
KR20100110652A (ko) 메모리 장치 및 메모리 장치의 펌웨어 업데이트 방법
WO2009118917A1 (ja) フラッシュメモリを用いた記憶装置
TWI459198B (zh) 記憶體儲存裝置、其記憶體控制器與有效資料識別方法
JP2006120082A (ja) メモリカード、半導体装置、及びメモリカードの制御方法
JP4843222B2 (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP5300496B2 (ja) 半導体記憶装置、ホスト機器及び半導体記憶システム
JP5183662B2 (ja) メモリ制御装置及びメモリ制御方法
JPWO2006011186A1 (ja) コントローラ、データ記憶システム、データ書き換え方法及びコンピュータプログラムプロダクト
JP2013171343A (ja) ストレージデバイス
JP2013250603A (ja) メモリ管理装置および方法、並びにプログラム
TWI451247B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TW201403323A (zh) 記憶體儲存裝置及其修復方法
CN110633056B (zh) 在操作系统层面的Flash芯片的页面管理方法及存储设备
JP4818453B1 (ja) 電子機器およびデータ読み出し方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2014115927A (ja) プログラム更新装置、方法、プログラム、及び記憶媒体