(57)【要約】【課題】メモリの不揮発エリアにデータを書き込む際における未使用領域の検索回数を削減し、検索時間を短縮することができるメモリの不揮発エリアの管理方法を得る。【解決手段】メモリの不揮発エリアの管理方法であって、データ種別毎に、メモリの不揮発エリアが複数の格納領域に分割され、各データ種別の格納領域について、格納領域に格納されるデータ一件分の領域毎に、当該領域の状態を示す管理情報が設定され、起動時に、管理情報を読み取り、データ一件分の領域の状態を判定し、最新データの書き込み位置を決定するステップと、最新データの書き込み位置をＲＡＭに保存するステップと、を備えたものである。【選択図】図１
2013008129.tif 000002
【特許請求の範囲】
【請求項１】
メモリの不揮発エリアの管理方法であって、
データ種別毎に、前記メモリの不揮発エリアが複数の格納領域に分割され、
各データ種別の格納領域について、前記格納領域に格納されるデータ一件分の領域毎に、当該領域の状態を示す管理情報が設定され、
起動時に、前記管理情報を読み取り、前記データ一件分の領域の状態を判定し、最新データの書き込み位置を決定するステップと、
前記最新データの書き込み位置をＲＡＭに保存するステップと、
を備えたことを特徴とするメモリの不揮発エリアの管理方法。
【請求項２】
前記管理情報は、当該領域に空きが有るか否か、当該領域が使用されているか否か、および当該領域のデータが消去されているか否かを示す情報である
ことを特徴とする請求項１に記載のメモリの不揮発エリアの管理方法。
【請求項３】
格納されるデータのサイズが所定のサイズを超えた場合に、無効データを削除するガベージコレクションを実行するステップをさらに備えた
ことを特徴とする請求項１または請求項２に記載のメモリの不揮発エリアの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばフラッシュメモリを不揮発エリアとして用いた場合におけるメモリの不揮発エリアの管理方法に関する。
【背景技術】
【０００２】
近年、小型の携帯情報端末等において、メモリデータを保持するための電源を必要としないフラッシュ型ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）（以下、「ＦＲＯＭ」と称する）を用いて、データを記録することが一般的になっている。
【０００３】
しかしながら、ＦＲＯＭは、読み出しや書き込みを自由に行うことができるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）とは異なり、データのビット値１からビット値０への書き込みは可能であるが、ビット値０からビット値１への書き込みは不可能である。
【０００４】
そのため、ビット値１とビット値０とが不特定に出現するデータをＦＲＯＭに書き込む場合には、部分的に上書きすることができないので、ＦＲＯＭのデータを一端消去した後でなければ、新たなデータを書き込むことができない。したがって、ＦＲＯＭのデータを一度ＲＡＭ等に退避させ、ＦＲＯＭを消去した上で、データをＦＲＯＭに書き込む必要がある。
【０００５】
従来の携帯電話機のメモリの不揮発エリア管理方法は、不揮発エリアに複数のブロックを設定する第１ステップと、各ブロックにブロック管理領域、複数のページを有するデータ領域、およびページ管理領域を設定する第２ステップと、使用ブロックのページ管理情報から未使用ページを検索してデータを書き込む第３ステップと、完全使用ブロックのデータを消去する第４ステップとを含んでいる（例えば、特許文献１参照）。
【０００６】
具体的には、第１ステップでは、不揮発エリアに、相互に独立に消去することができる複数のブロックを設定する。続いて、第２ステップでは、各ブロックについて、ブロック管理情報が書き込まれたブロック管理領域と、複数のページを有し、ページ単位でデータが書き込まれるデータ領域と、データ領域の各ページについて、ページ管理情報が書き込まれたページ管理領域とを設定する。
【０００７】
次に、第３ステップでは、複数のブロックをブロック毎の輪番で順次使用し、所定の検索アルゴリズムに従って、ページ管理情報から未使用ページを検索して、検索されたページにデータを書き込む。続いて、第４ステップでは、未使用ページが検索されなかった場合、すなわち当該ブロックが完全使用ブロックであった場合に、当該ブロックの有効データを次の輪番の未使用ブロックにコピーして、当該ブロックのデータを消去する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−２０３００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来技術には、以下のような課題がある。
特許文献１に示された携帯電話機のメモリの不揮発エリア管理方法では、データを書き込む際、２分検索アルゴリズムに従って、ページ管理情報に基づいて、未使用ページを検索している。そのため、検索回数が多くなるとともに、検索時間が長くなるという問題がある。
【００１０】
この発明は、上記のような課題を解決するためになされたものであり、メモリの不揮発エリアにデータを書き込む際における未使用領域の検索回数を削減し、検索時間を短縮することができるメモリの不揮発エリアの管理方法を得ることを目的とする。
【課題を解決するための手段】
【００１１】
この発明に係るメモリの不揮発エリアの管理方法は、メモリの不揮発エリアの管理方法であって、データ種別毎に、メモリの不揮発エリアが複数の格納領域に分割され、各データ種別の格納領域について、格納領域に格納されるデータ一件分の領域毎に、当該領域の状態を示す管理情報が設定され、起動時に、管理情報を読み取り、データ一件分の領域の状態を判定し、最新データの書き込み位置を決定するステップと、最新データの書き込み位置をＲＡＭに保存するステップと、を備えたものである。
【発明の効果】
【００１２】
この発明に係るメモリの不揮発エリアの管理方法によれば、データ種別毎に複数の格納領域に分割されたメモリの不揮発エリアの各格納領域について、格納されるデータ一件分の領域毎に、当該領域の状態を示すべく設定された管理情報を起動時に読み取り、データ一件分の領域の状態を判定し、最新データの書き込み位置を決定して、決定した最新データの書き込み位置をＲＡＭに保存する。
そのため、メモリの不揮発エリアにデータを書き込む際における未使用領域の検索回数を削減し、検索時間を短縮することができる。
【図面の簡単な説明】
【００１３】
【図１】この発明の実施の形態１に係るメモリの不揮発エリアの構成を示す説明図である。
【図２】図１に示した複数のセクタのうちの１つの構成を示す説明図である。
【図３】この発明の実施の形態１に係るメモリの不揮発エリアの管理方法を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
以下、この発明に係るメモリの不揮発エリアの管理方法の好適な実施の形態につき図面を用いて説明するが、各図において同一、または相当する部分については、同一符号を付して説明する。なお、以下の実施の形態では、小型の携帯情報端末の不揮発エリアとしてＦＲＯＭのメモリ空間の所定領域を用い、携帯情報端末の動作状態ログや設定情報等のデータを格納する場合について説明する。
【００１５】
実施の形態１．
図１は、この発明の実施の形態１に係るメモリの不揮発エリアの構成を示す説明図である。図１において、不揮発エリアは、それぞれ独立してデータを消去することができる複数（８つ）のセクタに分割されている。ここでは、データ種別に応じて、４種類のデータが、それぞれ２つのセクタを使用して、一情報占有領域１を構成している。
【００１６】
ＦＲＯＭの不揮発エリアの仕様上、物理的なデータの消去については、セクタ単位でしか行うことができない。また、１セクタのデータ消去には、多くの時間（例えば、最大２ｓ程度）を要する。ここで、ＦＲＯＭの不揮発エリアは、書き込み回数の上限が決まっている。そこで、図２に示すデータ格納フォーマット２の通り、セクタ内に管理情報と実データとを保存する。
【００１７】
図２は、図１に示した複数のセクタのうちの１つの構成を示す説明図である。図２において、１つ目の領域（データ一件分の領域）の先頭の１Ｂｙｔｅ目には、当該領域の状態を示す管理情報が設定されている。また、１つ目の領域の先頭の２Ｂｙｔｅ目には、データの書き込みが成功したか否かを示すデータ書き込み失敗フラグが設定されている。
【００１８】
具体的には、管理情報として、当該領域に空きが有るか否かを示す領域空き有りフラグ（７ｂｉｔ目）、当該領域が使用されているか否かを示す領域未使用フラグ（４ｂｉｔ目）、および当該領域のデータが消去されているか否かを示すデータ未消去フラグ（０ｂｉｔ目）が設定されている。
【００１９】
このようなメモリの不揮発エリアに対して、起動時（電源ＯＮ時）に、管理情報を読み取り、データ一件分の領域の状態を判定し、最新データの書き込み位置を決定するとともに、最新データの書き込み位置をＲＡＭに保存する。データの読み出し時は、この書き込み位置のデータを読み出し、データの書き込み時は、この書き込み位置をベースに書き込みデータ数分アドレスを加算する。
【００２０】
これにより、データの読み出し時および書き込み時に、毎回所定の検索アルゴリズムを用いずとも、最新データの書き込み位置を用いることで、未使用領域の検索回数を削減し、読み出しおよび書き込み処理の高速化を図り、検索時間を短縮することができる。
【００２１】
以下、起動時に最新データの書き込み位置を決定する処理について、図３のフローチャートを用いて説明する。
まず、データ毎に１つ目のセクタの先頭２Ｂｙｔｅが読み込まれる（ステップＳ１）。
続いて、領域空き有りフラグ（７ｂｉｔ目）が１（空き有り）であるか否かが判定される（ステップＳ２）。
【００２２】
ステップＳ２において、領域空き有りフラグが１である（すなわち、Ｙｅｓ）と判定された場合には、セクタは使用中である（データがいっぱいでない）ので、最新データの格納セクタが決定される。
【００２３】
一方、領域空き有りフラグが０である（すなわち、Ｎｏ）と判定された場合には、セクタにこれ以上データを書き込むことができない（データがいっぱいである）ので、読み込みセクタ先頭アドレスが変更され、２つ目のセクタに決定される（ステップＳ３）。
【００２４】
読み込みセクタが決定された後、決定セクタ内のデータ分、所定の検索アルゴリズムが実行される。ここで、データ分は、セクタサイズをデータサイズで除算した値として表される。また、この実施の形態１において、所定の検索アルゴリズムは、２分木探索法が用いられる。
【００２５】
次に、領域未使用フラグ（４ｂｉｔ目）が０（領域使用）であるか否かが判定される（ステップＳ４）。
ステップＳ４において、領域未使用フラグが０である（すなわち、Ｙｅｓ）と判定された場合には、領域使用中と判断されて、データ未消去フラグ（０ｂｉｔ目）が１（領域のデータ未消去）であるか否かが判定される（ステップＳ５）。
【００２６】
ステップＳ５において、データ未消去フラグが１である（すなわち、Ｙｅｓ）と判定された場合には、当該領域のデータは書き込み済みで、かつデータが有効（削除済みでない）と判断されて、データ書き込み失敗フラグが０であるか否かが判定される（ステップＳ６）。
【００２７】
ステップＳ６において、データ書き込み失敗フラグが０である（すなわち、Ｙｅｓ）と判定された場合には、データ書き込み時の失敗は発生しておらず、データが有効であると判断されて、最新データの書き込み位置がこの地点に設定される（ステップＳ７）。
【００２８】
続いて、読み込みセクタのデータ数が最大データ数以内であるか否かが判定される（ステップＳ８）。
ステップＳ８において、最大データ数以内である（すなわち、Ｙｅｓ）と判定された場合には、ステップＳ４に移行して、次のデータについて、最新データの書き込み位置が設定される。
【００２９】
一方、ステップＳ８において、最大データ数をオーバーしている（すなわち、Ｎｏ）と判定された場合には、図３の処理が終了される。
すなわち、決定セクタ内のデータ分について、ステップＳ４からステップＳ７までの処理が繰り返されることにより、最新データの書き込み位置が決定される。また、現在検索中の情報について、最新データの書き込み位置が決定された場合、次の情報についても同様のことが繰り返される。
【００３０】
また、ステップＳ４において、領域未使用フラグが１である（すなわち、Ｎｏ）と判定された場合、ステップＳ５において、データ未消去フラグが０である（すなわち、Ｎｏ）と判定された場合、およびステップＳ６において、データ書き込み失敗フラグが１である（すなわち、Ｎｏ）と判定された場合には、ステップＳ８に移行して、次のデータについて最新データの書き込み位置が設定される。
【００３１】
なお、読み込みセクタが２つ目のセクタに決定された場合、最新データの書き込み位置がセクタサイズの２／３を超えた時点でガベージコレクションを実行し、管理情報に設定された有効フラグをチェックして、無効データが全て削除される。
【００３２】
具体的には、ガベージコレクションでは、最新データの書き込み位置から保存データ数分のデータがＲＡＭに保存され、コピー先セクタが消去された後、コピー先セクタにＲＡＭのデータがコピーされる。コピー後、読み込みセクタは、コピー先セクタに更新される。なお、データの書き込み時には、当該領域に管理情報として使用状態フラグが設定され、データの消去時には、当該領域に管理情報として消去状態フラグが設定される。
【００３３】
これにより、未使用領域の検索回数を削減し、検索時間を短縮することができる。具体的には、特許文献１に示された従来の方法では、２分検索アルゴリズムを用いているので、データ数をＮとすると検索回数が最大でｌｏｇ２Ｎ回となるのに対して、本願の方法では、検索回数が起動時の１回のみとなる。すなわち、検索時間を１ｍｓ、データ数Ｎを１０２４と仮定した場合、従来の方法では、検索時間が最大で１０ｍｓ（最小で１ｍｓ）となるのに対して、本願の方法では、１ｍｓとなり、検索時間が短縮されることが分かる。
【００３４】
また、格納されるデータ種別毎に、メモリの不揮発エリアが複数の格納領域に分割されているので、データ種別毎に検索アルゴリズムを実行することができ、検索時間が短縮される。また、格納されるデータ種別毎に、最新データの書き込み位置が保存されるので、検索回数が削減されるとともに、検索時間が短縮される。
【００３５】
以上のように、実施の形態１によれば、データ種別毎に複数の格納領域に分割されたメモリの不揮発エリアの各格納領域について、格納されるデータ一件分の領域毎に、当該領域の状態を示すべく設定された管理情報を起動時に読み取り、データ一件分の領域の状態を判定し、最新データの書き込み位置を決定して、決定した最新データの書き込み位置をＲＡＭに保存する。
そのため、メモリの不揮発エリアにデータを書き込む際における未使用領域の検索回数を削減し、検索時間を短縮することができる。すなわち、不揮発エリアにおける未使用領域を高速に検索することができる。
【符号の説明】
【００３６】
１  データの一情報占有領域、２  データ格納フォーマット。
【図１】
2013008129.tif 000003
【図２】
2013008129.tif 000004
【図３】
2013008129.tif 000005