(57)【要約】【課題】フラッシュメモリにおおいて大きなサイズのデータの一部分のみを書き換える場合の書き込み処理を高速に実現し、かつ、書き換え回数の低減によりフラッシュメモリの寿命を延ばすフラッシュメモリのデータ管理方法等を提供すること。【解決手段】フラッシュメモリ２に書き込まれている元データ（データＡ（ｖｅｒ＝１））に対して書き換えが必要な差分データ（データＡ差分データ（ｖｅｒ＝１．１））を取得し、該差分データのみをフラッシュメモリ２に書き込む。【選択図】図４
2010003150.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に書き込まれている元データに対して書き換えが必要な差分データを取得し、該差分データのみを前記記憶装置に書き込むように制御することを特徴とするメモリコントローラ。
【請求項２】
前記記憶装置に書き込むデータには、前記差分データを管理可能なデータを含むヘッダを付加することを特徴とする請求項１記載のメモリコントローラ。
【請求項３】
管理テーブルに前記ヘッダに含まれるデータを登録して管理することを特徴とする請求項２記載のメモリコントローラ。
【請求項４】
元データと差分データから本来のデータを再構成し、再構成されたデータを、更新後の元データとして前記記憶装置に書き込むように制御することを特徴とする請求項１から３のいずれか１項に記載のメモリコントローラ。
【請求項５】
各差分データの個数の合計値および／または各差分データのデータの大きさの合計値が所定の閾値を超えたと判断した場合に前記再構成を実施することを特徴とする請求項４記載のメモリコントローラ。
【請求項６】
前記記憶装置のデータを１セクタ単位で消去すべくＧａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを所定のタイミングで実行することを特徴とする請求項１から５のいずれか１項に記載のメモリコントローラ。
【請求項７】
消去済みのセクタの個数が所定の閾値より少ない場合に前記Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを実行することを特徴とする請求項６記載のメモリコントローラ。
【請求項８】
前記再構成した元データの更新のタイミングと併せて前記Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを実行することを特徴とする請求項６記載のメモリコントローラ。
【請求項９】
フラッシュメモリに書き込まれている元データに対して書き換えが必要な差分データを取得し、該差分データのみを前記フラッシュメモリに書き込むことを特徴とするメモリコントローラ。
【請求項１０】
前記フラッシュメモリに書き込むデータには、前記差分データを管理可能なデータを含むヘッダを付加することを特徴とする請求項９記載のメモリコントローラ。
【請求項１１】
管理テーブルに前記ヘッダに含まれるデータを登録して管理することを特徴とする請求項１０記載のメモリコントローラ。
【請求項１２】
所定の記憶装置上で、元データと差分データから本来のデータを再構成し、再構成されたデータを、更新後の元データとして前記フラッシュメモリに書き込むことを特徴とする請求項９から１１のいずれか１項に記載のメモリコントローラ。
【請求項１３】
各差分データの個数の合計値および／または各差分データのデータの大きさの合計値が所定の閾値を超えたと判断した場合に前記再構成を実施することを特徴とする請求項１２記載のメモリコントローラ。
【請求項１４】
Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを所定のタイミングで実行してフラッシュメモリのデータを１セクタ単位で消去することを特徴とする請求項９から１３のいずれか１項に記載のメモリコントローラ。
【請求項１５】
消去済みのセクタの個数が所定の閾値より少ない場合に前記Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを実行することを特徴とする請求項１４記載のメモリコントローラ。
【請求項１６】
前記再構成した元データの更新のタイミングと併せて前記Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを実行することを特徴とする請求項１４記載のメモリコントローラ。
【請求項１７】
フラッシュメモリに書き込まれている元データに対して書き換えが必要な差分データを取得するステップと、
該差分データのみを前記フラッシュメモリに書き込むステップとを有することを特徴とするフラッシュメモリのデータ管理方法。
【請求項１８】
前記フラッシュメモリに書き込むデータには、前記差分データを管理可能なデータを含むヘッダを付加するステップを有することを特徴とする請求項１７記載のフラッシュメモリのデータ管理方法。
【請求項１９】
管理テーブルに前記ヘッダに含まれるデータを登録して管理するステップを有することを特徴とする請求項１８記載のフラッシュメモリのデータ管理方法。
【請求項２０】
所定の記憶装置上で、元データと差分データから本来のデータを再構成するステップと、
再構成されたデータを、更新後の元データとして前記フラッシュメモリに書き込むステップを有することを特徴とする請求項１７から１９のいずれか１項に記載のフラッシュメモリのデータ管理方法。
【請求項２１】
各差分データの個数の合計値および／または各差分データのデータの大きさの合計値が所定の閾値を超えたと判断した場合に前記再構成を実施することを特徴とする請求項２０記載のフラッシュメモリのデータ管理方法。
【請求項２２】
Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを所定のタイミングで実行してフラッシュメモリのデータを１セクタ単位で消去するステップを有することを特徴とする請求項１７から２１のいずれか１項に記載のフラッシュメモリのデータ管理方法。
【請求項２３】
消去済みのセクタの個数が所定の閾値より少ない場合に前記Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを実行することを特徴とする請求項２２記載のフラッシュメモリのデータ管理方法。
【請求項２４】
前記再構成した元データの更新のタイミングと併せて前記Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを実行することを特徴とする請求項２２記載のフラッシュメモリのデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一度データの書き込みを行った領域に再度書き込みを行うためには、書き込みを行う領域に対してセクタ単位でのデータの消去を行う必要があるフラッシュメモリのデータを管理する技術に関する。
【背景技術】
【０００２】
セクタ（ブロック）消去型のフラッシュメモリは、一度データの書き込みを行った領域には、そのままでは再度書き込みを行うことが出来ず、書き込みを行う領域に対してセクタ単位でのデータの消去を行う必要がある。
【０００３】
図１１を参照すると、セクタ（ブロック）消去型のフラッシュメモリは、２ＭＢ等の全体が、６４ＫＢあるいは１２８ＫＢ等というセクタ（ブロック）で構成されており、セクタ単位でのデータ消去しかできない。また、データ消去された領域にしか書き込みはできない。
【０００４】
また、フラッシュメモリは書き換え回数による寿命を持っており、同一ブロックに対して消去、書き込みを繰り返すと、早く寿命に達してしまう。
【０００５】
これまで、大きなサイズのデータであるファイル等を扱うフラッシュメモリにおけるファイルシステム等がいくつかあった。
【０００６】
関連技術として、フラッシュメモリを使用する際の消去回数の制限について、データをセクタサイズに分割して、セクタ単位で効率的に管理することで対応する技術が提案されている（例えば、特許文献１参照）。
【特許文献１】特開平１１−２７２５３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の関連技術におけるファイルシステム等では、大きなサイズのデータはファイルで管理されているため、その一部しか変更しない場合でも、データ全体を書き換えることが必要であった。図１２を参照すると、既登録のデータＡ（ｖｅｒ＝１）の一部を変更して書き換えることが必要な場合には、データＡ（ｖｅｒ＝２）としてそのデータ全体を書き込み可能な領域に書き込むことがなされていた。
【０００８】
このようにデータ全体を書き換えるため書き換え範囲が大きくなり、書き込み処理に時間がかかり、また同一セクタに対して消去、書き込みを繰り返すこととなり寿命も縮めるという問題があった。
【０００９】
本発明は、以上のような課題を解決するためになされたもので、フラッシュメモリにおおいて大きなサイズのデータの一部分のみを書き換える場合の書き込み処理を高速に実現し、かつ、書き換え回数の低減によりフラッシュメモリの寿命を延ばすメモリコントローラおよびフラッシュメモリのデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第一のメモリコントローラは、記憶装置に書き込まれている元データに対して書き換えが必要な差分データを取得し、該差分データのみを前記記憶装置に書き込むように制御することを特徴とする。
【００１１】
また、本発明の第二のメモリコントローラは、フラッシュメモリに書き込まれている元データに対して書き換えが必要な差分データを取得し、該差分データのみを前記フラッシュメモリに書き込むことを特徴とする。
【００１２】
また、本発明のフラッシュメモリのデータ管理方法は、フラッシュメモリに書き込まれている元データに対して書き換えが必要な差分データを取得するステップと、
該差分データのみを前記フラッシュメモリに書き込むステップとを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、大きなサイズのデータの一部分のみを書き換える場合の書き込み処理を高速に実現し、かつ、書き換え回数の低減によりフラッシュメモリの寿命を延ばすことが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について図面を参照して詳細に説明する。図１は本実施の形態におけるメモリコントローラを含むフラッシュメモリのデータ管理システムのハードウェア構成図である。図１を参照すると、本実施の形態におけるデータ管理システムは、ＣＰＵ（Central Processing Unit）１と、フラッシュメモリ２と、メモリコントローラ３と、バッファ４と、記憶装置５から構成され、それぞれバス６を介して接続されている。
【００１５】
メモリコントローラ３は、中央演算処理装置であるＣＰＵ１およびフラッシュメモリ２の間を仲立ちするＬＳＩ（Large Scale Integrated Circuit）である。バッファ４は、後に説明する再構成等の際にデータを一時的に記憶する装置である。記憶装置５は、管理テーブル７等を格納する機能を有している。なお、パーソナルコンピュータ等の情報処理装置においてメモリコントローラ３の機能はチップセットに統合されてもよく、またＣＰＵ１に統合されてもよい。
【００１６】
図２に本実施の形態にかかる機能ブロック図を示す。なお、各部は、メモリコントローラ３に対するＣＰＵ１の制御により実現されるがこれに限定されない。図２を参照すると、上位Ｉ／Ｆ制御部２１と、ヘッダ作成部２２と、書き込み可能位置管理部２３と、消去済みセクタ管理部２４と、テーブル管理部２５と、再構成管理部２６と、フラッシュメモリ制御部２７を備える。
【００１７】
上位Ｉ／Ｆ制御部２１は、上位アプリケーション等とのデータの受け渡し等を制御する機能を有している。ヘッダ作成部２２は、差分データを管理可能なデータを含むヘッダを作成する機能を有している。書き込み可能位置管理部２３は、フラッシュメモリ２に対して次のデータを書き込むことが可能な位置としてＷＰ（Ｗｒｉｔｅ  Ｐｏｉｎｔ）を把握する機能を有している。消去済みセクタ管理部２４は、フラッシュメモリ２の既にデータが消去されているセクタを把握する機能を有している。テーブル管理部２５は、記憶装置５に格納されている管理テーブル７等のデータの登録、更新、削除、参照や、登録されているデータの内容を把握する機能を有している。再構成管理部２６は、再構成に際して必要な制御を司る機能を有している。フラッシュメモリ制御部２７は、フラッシュメモリ２に対する各種の制御を行う機能を有している。
【００１８】
次に、本実施の形態でサイズの大きなデータの一部のみを更新するような場合、書き換えが必要な差分データのみをフラッシュメモリ２に書き込む処理の流れについて、図３のフローチャートを参照して説明する。例として、図４に示すような場合を考える。
【００１９】
まず、上位Ｉ／Ｆ制御部２１は、通常、上位アプリケーション等から差分データのみを渡され、それを受けとる（Ｓ３０１）。差分データの例としては、各種のユーザ属性が１つのかたまりとして管理されている場合において、ユーザ属性の１つである何らかの履歴情報が頻繁に更新され、他のユーザ属性である氏名、生年月日等はほとんど更新されないときの、その履歴情報が相当する。
【００２０】
次に、ヘッダ作成部２２は、フラッシュメモリ２に書き込む、書き換えが必要な差分データ（データＡ差分データ（ｖｅｒ＝１．１））に、差分データを管理可能なデータを含むヘッダを付加する（Ｓ３０２）。ヘッダには、例えば図５に示すように、ｖｅｒｓｉｏｎ情報としての元データのバージョン情報、ＦＵＬＬデータか差分データかのファイル属性情報、ｓｕｂ  ｖｅｒｓｉｏｎ情報としての差分データのバージョン情報、ｏｆｆｓｅｔ情報としての元データの先頭からのｏｆｆｓｅｔ情報等が含まれる。
【００２１】
フラッシュメモリ制御部２７は、書き換えが必要な差分データ（データＡ差分データ（ｖｅｒ＝１．１））のみを新たに追加してフラッシュメモリ２に書き込む（Ｓ３０３）。図４に示すように、書き換えが必要な差分データ（データＡ差分データ（ｖｅｒ＝１．１））のみが新たに追加して書き込まれるに過ぎないので、図１２のようにデータ全体を書き込む場合に比べて書き込まれるデータサイズが小さくなるため、フラッシュメモリ２への書き込みに必要な処理時間は短縮され、また書き込みに必要なフラッシュメモリ２の領域は縮小される。
【００２２】
テーブル管理部２５は、記憶装置５や外部の他の記憶装置に格納される管理テーブル７にヘッダ作成部２２が作成した情報に関するデータを登録する（Ｓ３０４）。
【００２３】
次に、本実施の形態における、元データと差分データから、本来のデータを再構成する処理の流れについて、図６のフローチャートを参照して説明する。例として、図７に示すような場合を考える。
【００２４】
図７および図８に示すような再構成および元データの更新が必要なのは、差分データのみを書き込んでいると、差分データ（ｖｅｒ＝１．１）、差分データ（ｖｅｒ＝１．２）、差分データ（ｖｅｒ＝１．３）・・・等のようにデータが断片的となり次第に再構成時の処理に時間がかかるようになり、上位アプリケーション等からのデータ要求に対する応答性能が悪化するからである。また、差分データ（ｖｅｒ＝１．１）および差分データ（ｖｅｒ＝１．２）等の差分データ同士で一部重複が生じる場合には、次第に冗長的となっていくため、フラッシュメモリ２に書き込まれるデータ容量が増大する。したがって、所定のタイミングで、再構成したデータを更新後の元データとして書き込む処理を実行することが必要である。
【００２５】
まず、テーブル管理部２５は、管理テーブル７を参照して、差分データの（ｖｅｒ＝１．１）等のｓｕｂ  ｖｅｒｓｉｏｎ情報に基づく差分データの個数が所定の閾値を超えたと判断した場合に再構成を実施する（Ｓ６０１）。この閾値には各差分データのデータの大きさが加味されて決定されてもよい。
【００２６】
次に、テーブル管理部２５は、管理テーブル７を参照して、該当する元データと差分データを取得する（Ｓ６０２）。
【００２７】
フラッシュメモリ制御部２７は、フラッシュメモリ２に書き込まれている元データであるデータＡ（ｖｅｒ＝１）と差分データである（データＡ差分データ（ｖｅｒ＝１．１））を読み出して取得する（Ｓ６０３）。
【００２８】
再構成管理部２６は、バッファ４上で、元データであるデータＡ（ｖｅｒ＝１）と差分データである（データＡ差分データ（ｖｅｒ＝１．１））から本来のデータであるデータＡ（ｖｅｒ＝１．１）を再構成する（Ｓ６０４）。
【００２９】
そして、フラッシュメモリ制御部２７は、図７に示すように再構成されたデータＡ（ｖｅｒ＝１．１）を、図８に示すように更新後の元データであるデータＡ（ｖｅｒ＝２）としてフラッシュメモリ２に書き込む（Ｓ６０５）。更新前の元データであるデータＡ（ｖｅｒ＝１）は後に説明するＧａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを実行するまではそのままフラッシュメモリ２に書き込まれているので、更新前の元データに容易に戻すことができる。この効果は図１２に示すこれまでの方法でももたらされていた効果であるが、比較的速度が速くないフラッシュメモリの特性上、処理の途中で電源が切れた場合等に処理の途中のデータを破棄して更新前の元データからやり直せるメリットは大きく、本発明にもこのような効果が引き続きもたらされることは有意義である。
【００３０】
次に、本実施の形態における、フラッシュメモリ２の書き込み可能な領域を増やす処理の流れについて、図９のフローチャートを参照して説明する。例として、図１０に示すような場合を考える。
【００３１】
差分データの書き込みや再構成した元データの更新等を続けていくと、フラッシュメモリ２の書き込み可能な領域が減ってくる。したがってフラッシュメモリ２の書き込み可能な領域を増やすことができると好ましい。
【００３２】
ここで図１０を参照すると、フラッシュメモリ２は、基本的に全領域を巡回利用し、データの書き込みは常に、セクタ単位でデータの消去された書き込み可能な領域に追記することでなされる。セクタ単位のデータの消去は既知の技術であるＧａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを所定のタイミングで実行することでなされる。なお、ここではＧａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎをメモリ等の記憶装置の不要なデータを収集し廃棄することでデータ格納領域を確保する処理一般を広く指すものとする。
【００３３】
まず、消去済みセクタ管理部２４は、２ＭＢ等のフラッシュメモリ２の全体のうちで消去済みのセクタを管理しており、消去済みのセクタの個数が所定の閾値より少なく、フラッシュメモリ２の書き込み可能な領域が減っていると判断した場合にＧａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを実行する（Ｓ９０１）。閾値との比較判定なしに再構成した元データの更新のタイミングと併せてＧａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎは実行されてもよい。
【００３４】
時系列としては古いデータであってもその後に差分データがなければ最新ｖｅｒｓｉｏｎを意味する場合もあるので、テーブル管理部２５が管理テーブル７を参照して、消去したいセクタにそのような必要な消去してはならないデータが存在する場合には、フラッシュメモリ制御部２７は、書き込み可能位置管理部２３が管理するＷＰからデータをコピーする（Ｓ９０２）。
【００３５】
そして、フラッシュメモリ制御部２７は、消去したいセクタの残りのデータ、すなわち差分データがあり最新ｖｅｒｓｉｏｎでない旧ｖｅｒｓｉｏｎを意味するデータとともに消去したいセクタに存在する全データを１セクタ単位で消去する（Ｓ９０３）。これにより、フラッシュメモリ２の書き込み可能な領域を増やすことができる。
【００３６】
上記の本実施の形態によれば、フラッシュメモリにおいて、大きなサイズのデータを扱う場合、その一部分のみを頻繁に書き換えるような書込み処理を高速に実現し、かつ書き換え回数低減による延命を図れ、さらに、書き換え前のデータに戻すことができるデータ管理が可能となる。
【００３７】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。例えば、記憶装置５は、管理テーブル７等を用いないでデータを処理する場合には不要であり、そのような構成であっても本発明を実現できる。また、上記の本システムの機能を実現するためのプログラムを各装置に読込ませて実行することにより各装置の機能を実現する処理を行ってもよい。さらに、そのプログラムは、コンピュータ読み取り可能な記録媒体であるＣＤ−ＲＯＭまたは光磁気ディスクなどを介して、または伝送媒体であるインターネット、電話回線などを介して伝送波により他のコンピュータシステムに伝送されてもよい。また、各装置の機能が他の装置によりまとめて実現されたり、追加の装置により機能が分散されて実現される形態も本発明の範囲内である。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施の形態に係るハードウェア構成を示す図である。
【図２】本発明の実施の形態に係る機能ブロック図である。
【図３】サイズの大きなデータの一部のみを更新するような場合、書き換えが必要な差分データのみをフラッシュメモリに書き込む処理の流れを示すフローチャートである。
【図４】本発明の実施の形態に係る差分データのみのフラッシュメモリへの書き込みを示す図である。
【図５】本発明の実施の形態に係るヘッダのデータ構成例である。
【図６】本発明の実施の形態に係る元データと差分データから、本来のデータを再構成する処理の流れを示すフローチャートである。
【図７】本発明の実施の形態に係る再構成されたデータ例を示す図である。
【図８】本発明の実施の形態に係る更新後の元データのフラッシュメモリへの書き込みを示す図である。
【図９】本発明の実施の形態に係るフラッシュメモリ２の書き込み可能な領域を増やす処理の流れを示すフローチャートである。
【図１０】本発明の実施の形態に係るＧａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎを説明する図である。
【図１１】関連するフラッシュメモリのセクタ構成例である。
【図１２】関連するフラッシュメモリの一部しか変更しない場合でも、データ全体を書き換える処理を説明する図である。
【符号の説明】
【００３９】
１    ＣＰＵ
２    フラッシュメモリ
３    メモリコントローラ
４    バッファ
５    記憶装置
６    バス
７    管理テーブル
２１    上位Ｉ／Ｆ制御部
２２    ヘッダ作成部
２３    書き込み可能位置管理部
２４    消去済みセクタ管理部
２５    テーブル管理部
２６    再構成管理部
２７    フラッシュメモリ制御部
【図１】
2010003150.tif 000003
【図２】
2010003150.tif 000004
【図３】
2010003150.tif 000005
【図４】
2010003150.tif 000006
【図５】
2010003150.tif 000007
【図６】
2010003150.tif 000008
【図７】
2010003150.tif 000009
【図８】
2010003150.tif 000010
【図９】
2010003150.tif 000011
【図１０】
2010003150.tif 000012
【図１１】
2010003150.tif 000013
【図１２】
2010003150.tif 000014