(57)【要約】【課題】リードオンリーファイルに対してもフラッシュメモリの書換回数の平準化を行うことにより、フラッシュメモリの製品寿命を延長する。【解決手段】フラッシュメモリ群中の一部の未使用領域を利用し、該未使用領域に「再書き込み処理」をプログラム記述しておくことで、ブートする際にこの処理が実施されることにより、リードオンリーファイルに対してもフラッシュメモリの書き換え回数の平準化を行う。また、平準化処理をＯＳがブートする以前に実行することにより、ＯＳやアプリケーションソフトウェアに拘束されることなく円滑な処理を可能とする。【選択図】図１
2008171246.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリコントローラを備えるフラッシュメモリドライブ装置であって、
ブート時にフラッシュメモリの各論理ブロックからデータを読み出し、読み出されたデータを該読み出されたデータが読み出された論理ブロックと同一の論理ブロックに書き戻す論理ブロック再書き込み手段と、
前記論理ブロック書き込みによる書き込みの際に読み出し時とは異なった物理ブロックにデータを書き戻す物理ブロック変更手段と、
を備えることを特徴とするフラッシュメモリドライブ装置。
【請求項２】
請求項１に記載のフラッシュメモリドライブ装置であって、
前記論理ブロック再書き込み手段と、
前記物理ブロック変更手段とはＯＳローダ起動前に動作することを特徴とするフラッシュメモリドライブ装置。
【請求項３】
請求項１に記載のフラッシュメモリドライブ装置であって、
前記物理ブロック変更手段は、
論理ブロックと物理ブロックとの対応関係を保持する変換テーブルに基づいて動作することを特徴とするフラッシュメモリドライブ装置。
【請求項４】
請求項１乃至３のいずれか１項に記載のフラッシュメモリドライブ装置であって、
前記再書き込み手段を複数回に分割して動作させる手段を更に備えることを特徴とするフラッシュメモリドライブ装置。
【請求項５】
請求項１乃至３のいずれか１項に記載のフラッシュメモリドライブ装置であって、
ＢＩＯＳから日付情報を読み取る手段を更に備え、該日付情報に基づいて前記再書き込み手段を定期的に動作させる手段を備えることを特徴とするフラッシュメモリドライブ装置。
【請求項６】
フラッシュメモリコントローラを備えるフラッシュメモリドライブの制御方法であって、
ブート時にフラッシュメモリの各論理ブロックからデータを読み出し、読み出されたデータを該読み出されたデータが読み出された論理ブロックと同一の論理ブロックに書き戻す論理ブロック再書き込みステップと、
前記論理ブロック書き込みによる書き込みの際に読み出し時とは異なった物理ブロックにデータを書き戻す物理ブロック変更ステップとを備えることを特徴とするフラッシュメモリドライブ装置の制御方法。
【請求項７】
請求項６に記載のフラッシュメモリドライブ装置の制御方法であって、
前記論理データ再書き込みステップをＯＳローダ起動前に行うことを特徴とするフラッシュメモリドライブ装置の制御方法。
【請求項８】
請求項６に記載のフラッシュメモリドライブの制御方法であって、
前記物理ブロック変更ステップは、
論理ブロックと物理ブロックとの対応関係を保持する変換テーブルに基づいて行うことを特徴とするフラッシュメモリドライブ装置の制御方法。
【請求項９】
請求項６乃至８のいずれか１項に記載のフラッシュメモリドライブ装置の制御方法であって、
前記再書き込みステップを複数回に分割して処理するステップを更に備えることを特徴とするフラッシュメモリドライブ装置の制御方法。
【請求項１０】
請求項６乃至８のいずれか１項に記載のフラッシュメモリドライブ装置の制御方法であって、
ＢＩＯＳから日付情報を読み取るステップを更に備え、該日付情報に基づいて前記再書き込みステップを定期的に処理するステップを備えることを特徴とするフラッシュメモリドライブ装置の制御方法。
【請求項１１】
コンピュータに請求項６乃至１０のいずれかの１項に記載の方法を行なわせるためのプログラム。
【請求項１２】
請求項１１のプログラムをフラッシュメモリの未割り当て領域に格納することを特徴とするフラッシュメモリドライブ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＯＳを格納し、該ＯＳをブートするフラッシュメモリドライブ装置、その制御方法及びそのプログラムに関し、より詳細には、フラッシュメモリの書換回数の平準化に関する。
【背景技術】
【０００２】
従来、フラッシュメモリはブロックで単位消去・書き込みが行われるが、このブロックは、半導体製造時に先天的に不良セルが存在する場合があることと、後天的にも、書換寿命に到達したブロックが不良となることにより、書き込みができないブロック、すなわち不良ブロックが存在あるいは出現することが知られている。不良ブロックと論理ブロックは結びつけられないようにされており、論理ブロックからはいつも正常な論理ブロックが見えるようにしてある。
【０００３】
上記背景もあり、フラッシュメモリの使い方としては、図２に示すように、ホストコンピュータから通知される、あるいは応答する論理ブロックに対して、実際のフラッシュメモリの物理ブロックを対応させた論理・物理変換テーブルを有し、消去・更新・追加が行われる度に、変換テーブルを更新するのが一般的であり、周知技術である。
【０００４】
つまり、ホストコンピュータ側から見るとフラッシュメモリの物理ブロックは、直接コントロールすることが出来ず、一切のコントロールはフラッシュメモリコントローラが行うことになる。
【０００５】
ここで、一般的なフラッシュメモリは、ブロック単位の書き込み可能回数が有限である。今、仮にそれを１０万回と置く。書き込み回数が１０万回付近に近づいたり、それをこえると、前述した不良ブロックとなる確率が著しく高くなる。そのため周知技術でのフラッシュメモリコントローラは、図３，図４に示すアルゴリズムにより、ブロックあたりの書換回数を分散化させている。
【０００６】
まず、図３を用いて説明する。ホストコンピュータより「データ  Ａ  更新」の命令をフラッシュメモリコントローラが受けると、データＡが格納されている物理ブロックのデータを読み出す。次に、データＡを更新後に格納する「空きブロック」を探す。この場合図５に示すように、空きブロックを探す方向を物理ブロックの降順方向という規則で動作するものとすると、物理ブロック２に対してデータＡを更新して結果を書き写す。物理ブロック２への書き戻しが完了したら、不要になった物理ブロック１の元々のデータＡを消去し、空き領域とする。
【０００７】
この処理により、物理ブロック１と物理ブロック２の間で、書き込み回数が分散化されたことになる。
【０００８】
次に図４を用いて説明を加える。ホストコンピュータより「データ  Ｃ  更新」の命令をフラッシュメモリコントローラが受けると、データＣが格納されている物理ブロックのデータを読み出す。次に、データＡを更新後に格納する「空きブロック」を探す。この場合図５に示すように、空きブロックを探す方向を前述と同様に物理ブロックの降順方向という規則で動作するものとすると、物理ブロック５に対してデータＣを更新して結果を書き写す。物理ブロック５への書き戻しが完了したら、不要になった物理ブロック４の元々のデータＡを消去し、空き領域とする。
【０００９】
この処理により、物理ブロック４と物理ブロック５の間で、書き込み回数が分散化されたことになる。
【００１０】
上述の処理を繰り返すことにより、書き込みが特定の物理ブロックに集中することが防止される。すなわち、各物理ブロックについて書き込み回数の平準化が行われる。
【００１１】
しかし、ここで解決すべき技術的な課題がある。これを図４を用いて説明する。物理ブロック３に格納されたデータＢに対して、ホストコンピュータよりなんら消去・更新命令が無い場合、このブロックは、書換回数平準化の対象とならない。
【００１２】
更に、従来技術ではリードオンリーファイルが、原理上書換平準化の対象とはなっていなかった（例えば、特許文献１参照）。
【００１３】
また、図９、図１０にはフラッシュメモリデバイス装置の中でＯＳが立ち上がるまでの遷移を示す。
図９では、ホストコンピュータの電源が投入されるとブートデバイスとなっているフラッシュメモリデバイス装置に対して、ファイルシステム郡の先頭にあるマスターブートレコードを読みに来る。ここで、フラッシュメモリがブートドライブであることが認識されると、図９で示すようにパーテンションブートレコードにジャンプし、ＯＳローダを起動し、ＯＳが立ち上がることになる。（例えば、特許文献２参照）ＯＳ起動後に、リードオンリーファイルの移動を試みようとしても、それは困難であった。
【特許文献１】特開２０００−２８５００１号公報
【特許文献２】特開２００４−３１８８７１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
前述のように、一度ＯＳが立ち上がってしまうと、ＯＳやアプリケーションソフトウェアが走行してしまうため、フラッシュメモリデバイス装置内の個々のファイルがソフトウェアによって拘束されてしまう局面が生まれる。このため、リードオンリーファイルを移動する。つまり、一度読み込み、再び書き戻しを行うためには、ＯＳやアプリケーションプログラムが排他制御されなくてはならない。これを実行することは、非常に困難である。
【００１５】
よって、上述のように従来技術では、リードオンリーファイルが、原理上、書換平準化の対象とはなっていなかったが、これが、既存のフラッシュメモリドライブ装置の潜在的な問題点となる場合があった。
【００１６】
この点を図６を用いて説明する。ファイル構成郡Ｂタイプで示されるファイルの構成は図６で示されるように、概ねリードオンリーファイルが５０％、リライトファイル２５％、空き領域２５％の割合である。このとき書換回数平準化に供されるリライトファイル、及び空き領域が多く存在しているため、書換回数平準化の対象となる領域の占める割合が大きい。そのため、消去／ライト回数に対して、物理ブロックが有する消去／ライト回数寿命がそれ以下になるため、寿命課題は解決されている。
一方、図７で示されるファイル構成郡Ｂタイプの構成は、概ねリードオンリーファイルが７０％、リライトファイル１５％、空き領域１５％の割合である。図６のファイル群構成Ｂタイプと比較してリライトファイルと空き領域の占める割合が少ない、すなわち、平準化の対象領域が少ない。このため、物理ブロックが有する消去／ライト回数寿命に対して、実際の消去／ライト回数が上回ってしまい、不良ブロックに到達してしまうことから装置として機能しない状態に至る。この状況に至る原因は、従来技術では、図３を用いて上記で説明したように、リードオンリーファイルが原理上、書換平準化の対象となっていないからである。
【００１７】
そこで、本発明はリードオンリーファイルを書換の対象とする事により、リードオンリーファイルを含めた全記憶領域を書換平準化の対象とし、フラッシュメモリドライブ装置の製品寿命を延長することを目的とする。
【課題を解決するための手段】
【００１８】
本発明によれば、フラッシュメモリコントローラを備えるフラッシュメモリドライブ装置であって、
ブート時にフラッシュメモリの各論理ブロックからデータを読み出し、読み出されたデータを該読み出されたデータが読み出された論理ブロックと同一の論理ブロックに書き戻す論理ブロック再書き込み手段と、
前記論理ブロック書き込みによる書き込みの際に読み出し時とは異なった物理ブロックにデータを書き戻す物理ブロック変更手段と、
を備えることを特徴とするフラッシュメモリドライブ装置が提供される。
【００１９】
上記のフラッシュメモリドライブ装置において、上記論理データの再書き込み手段をＯＳローダ起動前に行うことによって、リードオンリーファイル又はリライトファイルであっても書き込み回数平準化手段の対象とすることを特徴とするようにしてもよい。
【発明の効果】
【００２０】
本発明によれば、内蔵されるフラッシュメモリ群中の一部の未使用領域を利用することが出来る。該未使用領域に「再書き込み処理」をプログラム記述しておくことで、ブートする際にこの処理が実施されることにより、リードオンリーファイルに対してもフラッシュメモリの書き換え回数の平準化を行うことが可能となる。
【発明を実施するための最良の形態】
【００２１】
次に、本発明の最良の形態について図面を用いて説明する。
［実施形態１］
まず、図１、図９、図１０及び図１１で構成を説明する。
【００２２】
本発明のフラッシュメモリドライブ装置は、一般的に図１で示される。フラッシュメモリドライブ装置は内部にフラッシュメモリ群１０とそれを制御するための、フラッシュメモリコントローラ２０を備える。フラッシュメモリドライブ装置は、ホストコンピュータ３０と図１に示したようにＩＤＥバスなどを介して接続されており、本装置は、一般的なＨＤＤ（ハードディスクドライブ）と同様に、本装置がブートデバイスとなり、ＯＳ（オペレーティングシステム）が起動する仕組みである。
【００２３】
ここで、上述したように図９は周知技術であり、ＯＳが立ち上がる流れを示している。一方、図１０は、本発明であるフラッシュメモリにおけるリードオンリーファイルについても、書換回数を平準化する機能を実現する方法を示している。また、図１１は、本発明を実現するための処理の流れを示している。図１０、図１１で示される本発明手段を用いることによりリードオンリーファイルを別ブロックに書き換えることを容易に行うことができる。以下その動作について説明する。
【００２４】
図１０においてマスターブートレコードでブートドライブの認識が完了した後、パーティションブートレコードにジャンプする前に、「ブロック単位・再書き込み」実行プログラムが書かれている箇所にジャンプする。この領域は、元々未割り当て領域である部分を割り当てるため、該実行プログラムを割り当てた場合であってもなんら支障はない。
【００２５】
次に、この「ブロック単位・再書き込み」実行プログラムの処理内容について、図１０，図１１を用いて説明する。該実行プログラムが開始されると、開始論理ブロックＳＬＢと論理終了ブロックＥＬＢがセットされる（Ｓ１）。このＳＬＢ及びＥＬＢは、図１０のマスターブートレコードに格納されている。次に論理ブロックの先頭から順にブロック単位でデータを読み込み（Ｓ２）、その内容を全く保持したまま同一の論理ブロックにデータを書き戻す（Ｓ３）。ここで、前記、図２で示したように論理ブロックと物理ブロックは、変換テーブルに基づいて変換が行われる。この際、変換テーブルを更新しない場合は、特定の物理ブロックに書換が集中してしまい該物理ブロックの寿命が著しく低下してしまう。よって、これを防止するために、前記、図３で示したように、空きブロックに書き込みを行い、不要となった該物理ブロックのデータを消去し新たに空き領域とするという、書き込み回数分散化手段を本発明でも用いている。
【００２６】
つまり、重要なのは論理ブロックとしては同一の部分に書き戻されるが、前記論理・物理変換テーブルに基づくことにより、物理ブロックとしては元々の物理ブロックと異なる部分に書き込まれるということである。
【００２７】
以上より、リードオンリーファイルであろうが、リライトファイルであろうが属性に制限されることなく、書換回数平準化のアルゴリズムに従うこととなる。
【００２８】
次に、前記、図２、図３で示した原理を実現するためにホストコンピュータから通知される、あるいは応答する論理ブロックに対して、実際のフラッシュメモリの物理ブロックを対応させた論理・物理変換テーブルのカウンタを一つ増加させ（Ｓ４）、同じ処理を終了論理ブロックＥＬＢに到達するまで繰り返す（Ｓ５）。
【００２９】
上記本発明手段を用いることにより、得られる効果を図８を用いて説明する。比較すると、図８（ａ）でリードオンリーファイルが書換回数平準化の対象とならなかった欠点に対して、本発明装置により、図８（ｂ）で示すようにリードオンリーファイルも書換回数平準化の対象となり、消去／ライト回数は領域全体で平均化される。
【００３０】
なお、図５−３において、リライトファイル及び空き領域での消去／ライト回数がリードオンリーファイルより若干増えるのはＯＳが立ち上がった後に物理ブロックの書換が行われるためである。
［実施形態２］
本発明実施形態として第２に次が挙げられる。基本構成は実施形態１と同様である。
相違点として、実施形態１では、論理開始ブロックＳＬＢから、論理終了ブロックＥＬＢまで、全ブロックに対して読み込み・再書き込みを行ったが、実施形態２では、毎回全領域に対して行わず、今回は偶数論理ブロック、再ブートした次回は、奇数論理ブロックと処理を分割して行う。
［実施形態３］
本発明実施形態として第３に次が挙げられる。基本構成は実施形態１と同様である。
相違点として、実施形態１では、論理開始ブロックＳＬＢから、論理終了ブロックＥＬＢまで、全ブロックに対して読み込み・再書き込みを行ったが、実施形態３では、毎回全領域に対して行わず、今回は論理ブロックの前半、再ブートした次回は、論理ブロックの後半と処理を分割して行う。
［実施形態４］
本発明実施形態として第４に次が挙げられる。基本構成は実施形態１と同様である。
相違点として、実施形態１では、論理開始ブロックＳＬＢから、論理終了ブロックＥＬＢまで、全ブロックに対して読み込み・再書き込みを行ったが、実施形態４では、毎回全領域に対して行わず、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｏｐｕｔ  Ｓｙｓｔｅｍ）から日付情報を読みとり、それに基づき処理を行うか否か設定することが考えられる。例えば毎月、１日にブートされた場合、処理を実行するが、他の日は実行しないと処理を分割して行う。
【００３１】
上記、実施形態２至乃４の何れか一つの実施形態を採用することにより、書換回数平準化処理を分散することになり、これにより実施形態１と比較してＯＳの起動を迅速にすることも可能となる。
【００３２】
以上より得られる、本発明第１の効果は、リードオンリーファイルを含む全領域が書換回数の平準化対象となり、結果としてフラッシュメモリの劣化レベルの均一化が図られ製品寿命を延長することができる点である。
【００３３】
第２の効果は、該書換回数の平準化処理をＯＳがブートする以前に実行されることにより、ＯＳやアプリケーションソフトウェアに拘束されることなく円滑な処理が可能となることである。
【図面の簡単な説明】
【００３４】
【図１】本発明の構成例を示す図である。
【図２】フラッシュメモリコントローラのメモリ管理方式の例を示す図である。
【図３】書換回数の平準化アルゴリズムの例を示す図である。
【図４】書換回数の平準化アルゴリズムの例を示す図である。
【図５】空き物理ブロックのサーチ方向を示す図である。
【図６】ファイルの構成と消去／ライト回数の関係を表す図である。
【図７】ファイルの構成と消去／ライト回数の関係を表す図である。
【図８】ファイルの構成と消去／ライト回数の関係を表す図である。
【図９】ブートデバイスからＯＳが起動する仕組みを表す概念図である。
【図１０】本発明によりＯＳ起動以前に再書き込み処理が実行されることを表す概念図である。
【図１１】本発明によるブロック単位・再書き込みを表すフローチャートである。
【符号の説明】
【００３５】
１０  フラッシュメモリ群
２０  フラッシュメモリコントローラ
３０  ホストコンピュータ
【図１】
2008171246.tif 000003
【図２】
2008171246.tif 000004
【図３】
2008171246.tif 000005
【図４】
2008171246.tif 000006
【図５】
2008171246.tif 000007
【図６】
2008171246.tif 000008
【図７】
2008171246.tif 000009
【図８】
2008171246.tif 000010
【図９】
2008171246.tif 000011
【図１０】
2008171246.tif 000012
【図１１】
2008171246.tif 000013