説明

書き込み装置、書き込み方法、及び書き込みプログラム

【課題】フラッシュメモリの記憶領域に対する書き込み回数の平準化の程度を一層高めることで、フラッシュメモリの寿命を実質的に延長することができる、書き込み装置、書き込み方法、及び書き込みプログラムを提供すること。
【解決手段】フラッシュメモリ4における連続する記憶領域に順に情報を書き込む書き込み装置1であって、フラッシュメモリ4に情報を書き込む場合、当該フラッシュメモリ4において情報が最後に書き込まれた記憶領域を特定し、当該特定した記憶領域の次の記憶領域から順に、情報を連続して書き込みが可能な空き記憶領域を検索する検索部3aと、この検索部3aによって検索された空き記憶領域に対応する記憶領域に情報を書き込む書き込み部3bとを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、書き込み装置、書き込み方法、及び書き込みプログラムに関する。
【背景技術】
【0002】
SDカードのようにフラッシュメモリを使用したメモリカードにはデータの書き込み回数に制限があるが、単にこのようなメモリカードに対してデータの書き込みや削除を繰り返し行った場合には、このメモリカードのフラッシュメモリの一部の記憶領域のみに書き込みが繰り返し行われてしまい、この記憶領域のみが書き込み回数の制限に達してしまうという不具合が生じる可能性がある。
【0003】
このような不具合を解消するため、従来、ホスト機器が指定する論理アドレスとメモリカードのEEPROMの物理アドレスとを対応させた管理テーブルを設け、このEEPROMに書き込みを行う毎に、この管理テーブルの論理アドレスと物理アドレスとの対応関係を所定アドレス数や乱数の分だけずらすことで、このEEPROMの全記憶領域に対するデータの書き込み回数を平準化することが提案されている(例えば、特許文献1参照)。あるいは、フラッシュメモリの空きブロックの中から、乱数に基づいて選択した空きブロックにデータの書き込みを行うことで、このフラッシュメモリの各ブロックに対するデータの書き込み回数を平均化することが提案されている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平06−139138号公報
【特許文献2】特開2003−050747号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1や特許文献2に記載の方法では、フラッシュメモリの記憶領域に対する書き込み位置が単に所定アドレス数や乱数により決定されるので、一部の記憶領域に書き込みが集中したり、逆に一部の記憶領域に書き込みがほとんど行われない可能性が依然として残り、記憶領域に対する書き込み回数の平準化の程度を高めることが困難であった。
【0006】
本発明は、上記に鑑みてなされたものであって、フラッシュメモリの記憶領域に対する書き込み回数の平準化の程度を一層高めることで、フラッシュメモリの寿命を実質的に延長することができる、書き込み装置、書き込み方法、及び書き込みプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、請求項1に記載の書き込み装置は、フラッシュメモリにおける連続する記憶領域に順に情報を書き込む書き込み装置であって、前記フラッシュメモリに情報を書き込む場合、当該フラッシュメモリにおいて情報が最後に書き込まれた記憶領域を特定し、当該特定した記憶領域の次の記憶領域から順に、前記情報を連続して書き込みが可能な空き記憶領域を検索する検索手段と、前記検索手段によって検索された前記空き記憶領域に対応する前記記憶領域に前記情報を書き込む書き込み手段とを備える。
【0008】
請求項2に記載の書き込み装置は、請求項1に記載の書き込み装置において、当該書き込み装置は、格納対象の情報が格納される情報格納領域と、前記フラッシュメモリを管理するための管理情報が格納される管理情報領域とを有する前記フラッシュメモリに情報を書き込む書き込み装置であって、前記書き込み手段は、前記情報格納領域に情報を書き込んだ場合、当該情報を最後に書き込んだ記憶領域を特定するための記憶領域情報を前記管理情報領域に格納し、前記検索手段は、前記管理情報領域に格納されている前記記憶領域情報に基づき、前記情報格納領域において情報が最後に書き込まれた記憶領域を特定する。
【0009】
請求項3に記載の書き込み装置は、請求項1又は2に記載の書き込み装置において、前記検索手段は、前記フラッシュメモリにおける最後の記憶領域まで前記空き記憶領域を検索した場合、当該フラッシュメモリにおける最初の記憶領域から前記空き記憶領域を検索する。
【0010】
請求項4に記載の書き込み方法は、フラッシュメモリにおける連続する記憶領域に順に情報を書き込む書き込み方法であって、前記フラッシュメモリに情報を書き込む場合、当該フラッシュメモリにおいて情報が最後に書き込まれた記憶領域を特定し、当該特定した記憶領域の次の記憶領域から順に、前記情報の書き込みが可能な空き記憶領域を検索する検索ステップと、前記検索ステップで検索された前記空き記憶領域に対応する前記記憶領域に前記情報を書き込む書き込みステップとを含む。
【0011】
請求項5に記載の書き込みプログラムは、請求項4に記載の方法をコンピュータに実行させる。
【発明の効果】
【0012】
請求項1に記載の書き込み装置、請求項4に記載の書き込み方法、請求項5に記載の書き込みプログラムによれば、フラッシュメモリに情報を書き込む場合、情報が最後に書き込まれた記憶領域の次の記憶領域から順に情報を書き込むので、フラッシュメモリの一部の記憶領域に書き込みが集中したり、逆に一部の記憶領域に書き込みが行われないといった事態を防止でき、フラッシュメモリの記憶領域に対する書き込み回数の平準化の程度を一層高めることができるので、フラッシュメモリの寿命を実質的に延長することができる。
【0013】
請求項2に記載の書き込み装置によれば、管理情報領域に格納されている記憶領域情報に基づき、情報格納領域において情報が最後に書き込まれた記憶領域を特定するので、情報が最後に書き込まれた記憶領域を確実に特定することができる。
【0014】
請求項3に記載の書き込み装置によれば、フラッシュメモリにおける最後の記憶領域まで空き記憶領域を検索した場合、当該フラッシュメモリにおける最初の記憶領域から空き記憶領域を検索するので、例えば、書き込むべき情報の量が多いために、最後の記憶領域までの空き記憶領域では足りない場合であっても、最初の記憶領域から当該情報の書き込みを継続することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施の形態に係るナビゲーション装置を例示するブロック図である。
【図2】フラッシュメモリの構成を示すブロック図である。
【図3】書き込み処理のフローチャートである。
【図4】空き記憶領域の検索順序を示す説明図である。
【発明を実施するための形態】
【0016】
以下、本発明に係る書き込み装置、書き込み方法、及び書き込みプログラムの実施の形態について図面を参照しつつ詳細に説明する。ただし、この実施の形態によって本発明が限定されるものではない。なお、書き込み装置の適用対象は任意で、例えばNAND型のフラッシュメモリを用いたSDカードの如きメモリーカードのリーダライタに適用することができる。
【0017】
(構成)
まず、本実施の形態に係る書き込み装置の構成を説明する。図1は、本実施の形態に係る書き込み装置を例示するブロック図である。図1に示すように、書き込み装置1は、DRAM2、及び制御部3を備えており、フラッシュメモリ4に対する情報の読み書きを行う。
【0018】
(構成−DRAM)
DRAM2は、フラッシュメモリ4に記憶されている情報のバックアップに関する情報が書き込まれる揮発性記録手段であり、公知のDRAMを用いることができる。
【0019】
(構成−制御部)
制御部3は、書き込み装置1を制御する制御手段である。具体的には、CPU、当該CPU上で解釈実行される各種のプログラム(OSなどの基本制御プログラムや、OS上で起動され特定機能を実現するアプリケーションプログラムを含む)、及びプログラムや各種のデータを格納するためのRAMの如き内部メモリを備えて構成される。特に、本実施の形態に係る書き込みプログラムは、任意の記録媒体又はネットワークを介して書き込み装置1にインストールされることで、制御部3の各部を実質的に構成する。
【0020】
この制御部3は、機能概念的に、検索部3a及び書き込み部3bを備えている。検索部3aは、フラッシュメモリ4に情報を書き込む場合、当該フラッシュメモリ4において情報が最後に書き込まれた記憶領域を特定し、当該特定した記憶領域の次の記憶領域から順に、情報を連続して書き込みが可能な空き記憶領域を検索する検索手段である。書き込み部3bは、検索部3aによって検索された空き記憶領域に対応する記憶領域に情報を書き込む書き込み手段である。これらの制御部3の各構成要素によって実行される処理の詳細については後述する。
【0021】
(構成−フラッシュメモリ)
フラッシュメモリ4は、書き込み装置1による情報の書き込み先となる記憶手段であり、例えばNAND型のフラッシュメモリが用いられる。このフラッシュメモリ4は、例えば、SDカードの如き所定の規格に合致したメモリカードとして構成されており、書き込み装置1が備える図示しないカードスロットを介して、書き込み装置1に対して着脱可能なように構成されている。図2は、フラッシュメモリ4の構成を示すブロック図である。このフラッシュメモリ4の領域は、情報格納領域と管理情報領域に大別されている。情報格納領域は、格納対象の情報が格納される領域であり、複数の記憶領域であるセクタに分割されている。管理情報領域は、フラッシュメモリ4を管理するための管理情報が格納される領域である。
【0022】
(処理)
次に、このように構成される書き込み装置1によって実行される書き込み処理について説明する。図3は書き込み処理のフローチャートである(以下の説明ではステップを「S」と略記する)。この書き込み処理は、フラッシュメモリ4に情報を書き込むための処理であり、フラッシュメモリ4に情報を書き込む毎に繰り返し起動される。
【0023】
まず、制御部3の検索部3aは、フラッシュメモリ4の管理情報領域から記憶領域情報を取得する(SA1)。この記憶領域情報は、当該フラッシュメモリ4に最後に情報を書き込んだ際の当該情報の書き込み位置(以下「最終書き込み位置」)を特定するための情報である。この記憶領域情報の具体的な種別や形式は任意であるが、例えば、情報格納領域の最初のセクタから最後のセクタに至るまでの通し番号であるLBA(Logical Block Addressing)の中で、最後に情報が書き込まれたセクタに対応するLBAを含んで構成されている。
【0024】
次いで、検索部3aは、管理情報領域から取得した記憶領域情報に基づいて、情報格納領域の各セクタの中で最終書き込み位置があるセクタを特定し、当該特定したセクタの次のセクタ(以下「検索先頭セクタ」)を先頭として、情報格納領域における空き記憶領域を検索する(SA2)。具体的には、書き込むべき情報の情報量が、検索先頭セクタの記憶容量以下であるか否かを判定する。そして、検索先頭セクタの記憶容量以下である場合には、当該検索先頭セクタに空き記憶領域があるものと判定する。一方、検索先頭セクタの記憶容量以下でない場合には、書き込むべき情報の情報量が、検索先頭セクタの記憶容量と当該検索先頭セクタの次のセクタの記憶容量の合計容量以下であるか否かを判定し、合計容量以下である場合には、当該検索先頭セクタと当該次のセクタに空き記憶領域があるものと判定する。以降、書き込むべき情報の情報量が、セクタの記憶容量の合計容量以下と判定されるまで、セクタの記憶容量をセクタの並び順に沿って一つずつ加算し、セクタの記憶容量の合計容量以下と判定された時点で、それまでに記憶容量が合計されたセクタに空き記憶領域があるものと判定する。なお、各セクタの記憶容量は、例えば、管理情報領域に予め記録しておき、必要に応じてこれを参照することができる。
【0025】
この検索において、検索部3aは、情報格納領域の各セクタの中で、最後のセクタまで空き記憶領域を検索したにも関わらず、空き記憶領域が見つからなかった場合には(SA3、Yes)、情報格納領域の最初のセクタに戻って空き記憶領域を検索する(SA4)。すなわち、それまでに検索されたセクタの記憶容量の合計容量に、さらに最初のセクタの合計容量を合計し、書き込むべき情報の情報量が、当該合計容量以下であるか否かを判定し、合計容量以下である場合には、それまでに検索されたセクタ(検索先頭セクタから情報格納領域の最後のセクタに至るまでの全セクタ)と最初のセクタに空き記憶領域があるものと判定する。一方、合計容量以下でない場合には、書き込むべき情報の情報量が、それまでに検索されたセクタ(検索先頭セクタから情報格納領域の最後のセクタに至るまでの全セクタと、最初のセクタ)の記憶容量とその次のセクタの記憶容量との合計容量以下であるか否かを判定する。以降、書き込むべき情報の情報量が、セクタの記憶容量の合計容量以下と判定されるまで、セクタの記憶容量をセクタの並び順に沿って一つずつ合計し、セクタの記憶容量の合計容量以下と判定された時点で、それまでに記憶容量が合計されたセクタに空き記憶領域があるものと判定する。
【0026】
検索部3aは、SA2からSA4の検索を空き記憶領域が見つかるまで行い、当該検索先頭セクタの一つ前のセクタ(最終書き込み位置があるセクタ)に至るまで検索を行っても空き記憶領域が見つからなかった場合には(SA5、No)、情報格納領域への書き込み容量がオーバーしているものとし、この場合に制御部3は、書き込み容量オーバーの旨を示す情報を出力する(SA6)。この出力形態は任意であるが、例えば、書き込み装置1に備えた図示しない容量オーバー表示灯を点灯させたり、書き込み装置1と連動されている図示しない外部機器に対して容量オーバーの旨を示す信号を出力する。
【0027】
一方、検索部3aは、空き記憶領域を見つけた場合には(SA5、Yes)、検索先頭セクタを特定する情報(例えば、検索先頭セクタのLBA)を書き込み部3bに出力する。この出力を受けた書き込み部3bは、検索先頭セクタを特定する情報に基づいて、情報格納領域への情報の書き込みを行う(SA7)。すなわち、書き込み部3bは、検索先頭セクタを先頭として、セクタの順序に沿って各セクタに順次情報を書き込む。この際、情報格納領域の最後のセクタに至っても情報の書き込みが終わらない場合には、残りの情報を、情報格納領域の最初のセクタを先頭として、セクタの順序に沿って各セクタに順次情報を書き込む。このような処理により、検索部3aにて空き記憶領域があるものと判定された各セクタに、情報が書き込まれることになる。
【0028】
このように情報を書き込んだ場合、書き込み部3bは、管理情報領域に、当該情報を最後に書き込んだセクタを特定するための記憶領域情報(例えば、当該セクタのLBA)を格納する(SA8)。この処理により、管理情報領域の記憶領域情報が最新の情報に更新されるので、次に情報の書き込みを行うためにSA1を実行した場合に、最終書き込み位置があるセクタを確実かつ正確に特定することが可能となる。これにて書き込み処理が終了する。
【0029】
なお、書き込み装置1からフラッシュメモリ4が抜かれた場合であっても、当該フラッシュメモリ4の管理情報領域に記憶領域情報が格納されているので、当該フラッシュメモリ4を次に差し込んだ際に、当該フラッシュメモリ4の管理情報領域から記憶領域情報を取得することで、最終書き込み位置があるセクタを確実かつ正確に特定することが可能となる。同様に、書き込み装置1の電源がOFFとなった場合であっても、その後に書き込み装置1の電源がONとなった場合に、その時点で書き込み装置1に差し込まれているフラッシュメモリ4の管理情報領域から記憶領域情報を取得することで、最終書き込み位置があるセクタを確実かつ正確に特定することが可能となる。
【0030】
次に、このように実行される書き込み処理の流れを、フラッシュメモリ4の構成を参照しつつ説明する。図4は空き記憶領域の検索順序を示す説明図である。この図4には、「検索1回目」として、フラッシュメモリ4の記憶領域情報の最初のセクタ(LBA:0)を検索先頭セクタとして1回目の検索を開始し、最後のセクタよりも手前のセクタ(LBA:X2)で空き記憶領域が発見された例を示す。次に、図4の「検索2回目」として、1回目の検索で空き記憶領域が発見されたセクタ(LBA:X2)を検索先頭セクタとして2回目の検索を開始し、最後のセクタよりも手前のセクタ(LBA:X3)で空き記憶領域が発見された例を示す。
【0031】
次に、図4の「検索3回目」として、2回目の検索で空き記憶領域が発見されたセクタ(LBA:X3)を検索先頭セクタとして3回目の検索を開始し、最後のセクタ(LBA:XX)に至っても空き記憶領域が発見できなかったので、最初のセクタ(LBA:0)に戻って検索を行い、セクタ(LBA:X1)で空き記憶領域が発見された例を示す。
【0032】
また、図4では、「検索3回目」の後に、書き込み装置1からフラッシュメモリ4が一旦抜かれた後で再び差し込まれたり、あるいは、書き込み装置1の電源がOFFとなってから再びONとなった様子を示している。この後、「検索N回目」として示すように、フラッシュメモリ4の抜き差しや書き込み装置1の電源のOFF/ONが行われる前の最後の検索(図4の例では3回目の検索)で空き記憶領域が発見されたセクタ(LBA:X1)を検索先頭セクタとしてN回目の検索が開始されるので、最終書き込み位置があるセクタを確実かつ正確に特定することが可能となる。
【0033】
(効果)
このように実施の形態によれば、フラッシュメモリ4に情報を書き込む場合、情報が最後に書き込まれた記憶領域の次の記憶領域から順に情報を書き込むので、フラッシュメモリ4の一部の記憶領域に書き込みが集中したり、逆に一部の記憶領域に書き込みが行われないといった事態を防止でき、フラッシュメモリ4の記憶領域に対する書き込み回数の平準化の程度を一層高めることができるので、フラッシュメモリ4の寿命を実質的に延長することができる。
【0034】
また、管理情報領域に格納されている記憶領域情報に基づき、情報格納領域において情報が最後に書き込まれた記憶領域を特定するので、情報が最後に書き込まれた記憶領域を確実に特定することができる。
【0035】
また、フラッシュメモリ4における最後の記憶領域まで空き記憶領域を検索した場合、当該フラッシュメモリ4における最初の記憶領域から空き記憶領域を検索するので、例えば、書き込むべき情報の量が多いために、最後の記憶領域までの空き記憶領域では足りない場合であっても、最初の記憶領域から当該情報の書き込みを継続することができる。
【0036】
〔実施の形態に対する変形例〕
以上、本発明に係る実施の形態について説明したが、本発明の具体的な構成及び手段は、特許請求の範囲に記載した各発明の技術的思想の範囲内において、任意に改変及び改良することができる。以下、このような変形例について説明する。
【0037】
(解決しようとする課題や発明の効果について)
まず、発明が解決しようとする課題や発明の効果は、上述の内容に限定されるものではなく、発明の実施環境や構成の細部に応じて異なる可能性があり、上述した課題の一部のみを解決したり、上述した効果の一部のみを奏することがある。
【0038】
(フラッシュメモリについて)
上記実施の形態に係る書き込み装置1により情報を書き込むフラッシュメモリ4としては、任意の形式のフラッシュメモリを使用することができ、NAND型とNOR型のいずれのフラッシュメモリであってもよい。また、フラッシュメモリ4としては、任意の規格により構成されたフラッシュメモリを使用することができ、例えば、SDカードやCFカードであってもよい。
【0039】
(書き込み装置の適用システムや使用目的について)
上記実施の形態に係る書き込み装置1は、単独で使用されてもよく、あるいは上位のシステムに組み込まれた状態で使用されてもよく、また、書き込みの目的は任意である。例えば、書き込み装置1をカーナビゲーションシステムに組み込み、このカーナビゲーションシステムが備えるCDリーダにて音楽CDから読み取られた音楽データを、書き込み装置1を介してSDカードにリッピングすることができる。
【0040】
(記憶領域について)
記憶領域の単位やその名称は、フラッシュメモリ4の規格等に応じて定められる任意の単位や名称を使用することができ、例えば、セクタ以外にも、クラスタやブロックを記憶領域の単位としてもよい。
【0041】
(最終書き込み位置の管理について)
上記実施の形態では、管理情報領域に格納されている記憶領域情報に基づいて、最終書き込み位置を特定しているが、例えば、DRAM2に記憶領域情報を格納してもよい。この場合、書き込み装置1の電源がOFFされた場合であってもDRAM2にはバックアップ用電流を供給しておくことで、記憶領域情報を保持しておくことができる。また、DRAM2に格納した記憶領域情報を、フラッシュメモリ4が交換された場合でも利用できるように、フラッシュメモリ4の管理情報領域には当該フラッシュメモリ4を一意に識別する固有番号を格納しておくと共に、DRAM2には当該固有番号に関連付けて記憶領域情報を格納しておくことで、フラッシュメモリ4が交換された場合であっても、書き込み対象となっているフラッシュメモリ4に対応する記憶領域情報をDRAM2から取得することが可能となる。
【符号の説明】
【0042】
1 書き込み装置
2 DRAM
3 制御部
3a 検索部
3b 書き込み部
4 フラッシュメモリ

【特許請求の範囲】
【請求項1】
フラッシュメモリにおける連続する記憶領域に順に情報を書き込む書き込み装置であって、
前記フラッシュメモリに情報を書き込む場合、当該フラッシュメモリにおいて情報が最後に書き込まれた記憶領域を特定し、当該特定した記憶領域の次の記憶領域から順に、前記情報を連続して書き込みが可能な空き記憶領域を検索する検索手段と、
前記検索手段によって検索された前記空き記憶領域に対応する前記記憶領域に前記情報を書き込む書き込み手段と、
を備える書き込み装置。
【請求項2】
当該書き込み装置は、
格納対象の情報が格納される情報格納領域と、前記フラッシュメモリを管理するための管理情報が格納される管理情報領域とを有する前記フラッシュメモリに情報を書き込む書き込み装置であって、
前記書き込み手段は、
前記情報格納領域に情報を書き込んだ場合、当該情報を最後に書き込んだ記憶領域を特定するための記憶領域情報を前記管理情報領域に格納し、
前記検索手段は、
前記管理情報領域に格納されている前記記憶領域情報に基づき、前記情報格納領域において情報が最後に書き込まれた記憶領域を特定する、
請求項1に記載の書き込み装置。
【請求項3】
前記検索手段は、
前記フラッシュメモリにおける最後の記憶領域まで前記空き記憶領域を検索した場合、当該フラッシュメモリにおける最初の記憶領域から前記空き記憶領域を検索する、
請求項1又は2に記載の書き込み装置。
【請求項4】
フラッシュメモリにおける連続する記憶領域に順に情報を書き込む書き込み方法であって、
前記フラッシュメモリに情報を書き込む場合、当該フラッシュメモリにおいて情報が最後に書き込まれた記憶領域を特定し、当該特定した記憶領域の次の記憶領域から順に、前記情報の書き込みが可能な空き記憶領域を検索する検索ステップと、
前記検索ステップで検索された前記空き記憶領域に対応する前記記憶領域に前記情報を書き込む書き込みステップと、
を含む書き込み方法。
【請求項5】
請求項4に記載の方法をコンピュータに実行させる書き込みプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate