(57)【要約】【課題】データの更新を繰り返しても最新データへのアクセス時間が長くならないデータ管理方法を得る。【解決手段】本発明に係るデータ管理方法は、アドレスが小さい順にデータ領域にデータを書き込むステップと、各メモリ領域について、アドレスが最小のデータ領域にデータが格納されているかを検索するステップと、アドレスが最小のデータ領域にデータが格納されているメモリ領域のうち、アドレスが最大のメモリ領域を使用中のメモリ領域として検索するステップと、使用中のメモリ領域内のデータ領域のうち、データが格納されていないデータ領域を未使用データ領域として検索するステップと、データ書き込み時において、未使用データ領域に新たなデータを書き込むステップと、データ読み出し時において、未使用データ領域からアドレスの小さいデータ領域に遡ってデータを読み出すステップとを有する。【選択図】図３
2008097526.tif 000002
【特許請求の範囲】
【請求項１】
アドレス順に配列した複数のメモリ領域を有し、各メモリ領域内に、データの書き込み及び読み出し単位である複数のデータ領域をアドレス順に配列したフラッシュメモリを用いたデータ管理方法であって、
アドレスが小さい順に前記データ領域にデータを書き込むステップと、
各メモリ領域について、アドレスが最小のデータ領域に前記データが格納されているかを検索するステップと、
前記アドレスが最小のデータ領域に前記データが格納されているメモリ領域のうち、アドレスが最大のメモリ領域を使用中のメモリ領域として検索するステップと、
前記使用中のメモリ領域内のデータ領域のうち、前記データが格納されていないデータ領域を未使用データ領域として検索するステップと、
データ書き込み時において、前記未使用データ領域に新たなデータを書き込むステップと、
データ読み出し時において、前記未使用データ領域からアドレスの小さいデータ領域に遡って前記データを読み出すステップとを有することを特徴とするデータ管理方法。
【請求項２】
前記使用中のメモリ領域を検索する際、及び前記未使用データ領域を検索する際には、二分探索を行なうことを特徴とする請求項１に記載のデータ管理方法。
【請求項３】
各メモリ領域内に、前記複数のデータ領域にそれぞれ対応する複数のフラグ領域を設け、前記フラグ領域により、対応する前記データ領域の使用状況を表示することを特徴とする請求項１又は２に記載のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス順に配列した複数のメモリ領域を有し、各メモリ領域内に、データの書き込み及び読み出し単位である複数のデータ領域をアドレス順に配列したフラッシュメモリを用いたデータ管理方法に関し、特にデータの更新を繰り返しても最新データへのアクセス時間が長くならないデータ管理方法に関するものである。
【背景技術】
【０００２】
データを記録する媒体としてフラッシュメモリがある。フラッシュメモリへのデータの書き込み及び読み出しの単位をデータ領域と呼び、それを複数個集めたものをメモリ領域と呼ぶ。そして、データの消去は通常、メモリ領域単位に実施する。
【０００３】
フラッシュメモリでは、データを更新する際には、書き込まれているデータを一旦消去し、新たに更新データを書き込む必要があった。しかし、消去は書き込みに比べて非常に多くの時間を要するため、データの更新作業には時間がかかっていた。そこで、データ更新時において、新たなデータ領域に更新データを書き込み、旧データ領域からアドレスのポインターを張ることによって、古いデータの消去を伴わない技術が提案されている（例えば、特許文献１又は２参照）。
【０００４】
また、近年のフラッシュメモリの大型化に伴い、フラッシュメモリ内に複数のメモリ領域を用意する場合がある。この場合に、複数のメモリ領域の中から所望のメモリ領域を検索する技術が提案されている（例えば、特許文献３参照）。
【０００５】
【特許文献１】特開２００２−１９６９７６
【特許文献２】特開２００３−１２２６４６
【特許文献３】特開２００６−０３９７７２
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１，２に記載された技術では、データの更新を繰り返した場合、最新データへのアクセス時間が長くなるという問題があった。また、特許文献３に記載された技術では、メモリ領域を検索する際に、最上位のメモリ領域から順次検索しているため、メモリ領域の数が増えた場合に検索時間が長くなるという問題があった。
【０００７】
本発明は、上述のような課題を解決するためになされたもので、その目的は、データの更新を繰り返しても最新データへのアクセス時間が長くならないデータ管理方法を得るものである。
【課題を解決するための手段】
【０００８】
本発明に係るデータ管理方法は、アドレス順に配列した複数のメモリ領域を有し、各メモリ領域内に、データの書き込み及び読み出し単位である複数のデータ領域をアドレス順に配列したフラッシュメモリを用いたデータ管理方法であって、アドレスが小さい順にデータ領域にデータを書き込むステップと、各メモリ領域について、アドレスが最小のデータ領域にデータが格納されているかを検索するステップと、アドレスが最小のデータ領域にデータが格納されているメモリ領域のうち、アドレスが最大のメモリ領域を使用中のメモリ領域として検索するステップと、使用中のメモリ領域内のデータ領域のうち、データが格納されていないデータ領域を未使用データ領域として検索するステップと、データ書き込み時において、未使用データ領域に新たなデータを書き込むステップと、データ読み出し時において、未使用データ領域からアドレスの小さいデータ領域に遡ってデータを読み出すステップとを有する。本発明のその他の特徴は以下に明らかにする。
【発明の効果】
【０００９】
本発明により、データの更新を繰り返しても最新データへのアクセス時間が長くならない。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態に係るデータ管理方法について図を用いて説明する。本実施の形態に係るデータ管理方法は、フラッシュメモリを用いたデータ管理方法である。そして、フラッシュメモリは、図１に示すように、アドレス順に配列した複数のメモリ領域１〜６を有する。ここで、メモリ領域１が最小のアドレスで、以下、メモリ領域２、３、…６の順にアドレスが大きくなる。
【００１１】
そして、各メモリ領域内に、データの書き込み及び読み出し単位である複数のデータ領域１Ａ〜６Ｘ、及び複数のデータ領域１Ａ〜６Ｘにそれぞれ対応する複数のフラグ領域１ａ〜６ｘをそれぞれアドレス順に配列している。ここで、各データ領域のサイズは同じである。また、データ領域は、Ａが最小のアドレスで、以下、Ｂ、Ｃ、…Ｘの順にアドレスが大きくなる。同様に、フラグ領域は、ａが最小のアドレスで、以下、ｂ、ｃ、…ｘの順にアドレスが大きくなる。なお、データの書き込み及び読み出しはデータ領域単位で行ない、データの消去はメモリ領域単位で行なう。
【００１２】
本実施の形態に係るデータ管理方法において、まず、アドレスが小さい順にデータ領域にデータを書き込む。このデータの書き込みが完了したら、１つアドレスの大きいデータ領域に移動し、最新のデータが書き込まれているデータ領域のアドレスデータ（以下、アドレス格納データと呼ぶ）を書き込む。
【００１３】
具体的には、図１に示すように、データ領域３Ｃにデータ１、データ領域３Ｄにデータ２を書き込み、データ領域３Ｃのアドレスα及びデータ領域３Ｄのアドレスβをアドレス格納データとしてデータ領域３Ｅに書き込む。このとき、データ領域３Ｅの１番目の書き込み場所にアドレスαを、データ領域３Ｅの２番目の書き込み場所にアドレスβを書き込む。これにより、読み出し時に、データ領域３Ｅに格納されているアドレス格納データを読むことによって、データ１及びデータ２を読み出すことができる。
【００１４】
また、フラグ領域により、対応するデータ領域の使用状況を表示する。例えば、データが書き込まれていないデータ領域に対応しているフラグ領域を「１１」、データが書き込まれているデータ領域に対応するフラグ領域を「１０」、アドレス格納データの書き込みが完了しているデータ領域に対応するフラグ領域を「００」と表示する。これにより、フラグ領域を検索することで、所望の使用状況のデータ領域を容易に検索することができる。例えば、アドレス格納データが書き込まれていることを示すフラグ領域を検索することで、アドレス格納データを検索することができる。
【００１５】
なお、フラッシュメモリに１つのデータ領域に収まらないサイズのデータを書き込む際には、図２に示すように、書き込みを行なったデータ領域以降のデータ領域に順次書き込めばよい。
【００１６】
次に、各メモリ領域１〜６について、アドレスが最小のデータ領域１Ａ〜６Ａにデータが格納されているかを検索する。具体的には、アドレスが最小のデータ領域１Ａ〜６Ａに対応するフラグ領域１ａ〜６ａが、データが格納されていることを示しているかを検索する。ここで、検索の結果、フラグ領域１ａ〜３ａの表示が、対応するデータ領域にデータが格納されていることを示す「１０」、又はアドレス格納データが格納されていることを示す「００」で、データ領域４ａ〜６ａの表示が、対応するデータ領域にはデータが格納されていないことを示す「１１」であったとする。
【００１７】
次に、アドレスが最小のデータ領域にデータが格納されているメモリ領域１〜３のうち、アドレスが最大のメモリ領域３を使用中のメモリ領域として検索する。ただし、メモリ領域１〜６全体に対して二分探索を行って使用中のメモリ領域を検索してもよい。これにより、メモリ領域の数によらず検索時間をほぼ一定にすることができる。
【００１８】
次に、使用中のメモリ領域３内のデータ領域３Ａ〜３Ｘのうち、データが格納されていないデータ領域を未使用データ領域として検索する。この際に二分探索を用いることで、メモリ領域の数によらず検索時間をほぼ一定にすることができる。ここでは、メモリ領域３内において、データが格納されていないことを示しているフラグ領域３ｆ〜３ｘのうち、アドレスが最小のフラグ領域３ｆに対応するデータ領域３Ｆを検索結果とする。
【００１９】
なお、使用中のメモリ領域３において、最大アドレスをもつフラグ領域３ｘまでデータが格納されていることを示していた場合は、メモリ領域３に未使用データ領域はないと判断し、使用中のメモリ領域３の次のメモリ領域４の最小アドレスをもつデータ領域４Ａを未使用データ領域とする。
【００２０】
そして、データ書き込み時において、検索結果のフラグ領域３ｆに対応する未使用データ領域３Ｆに新たなデータを書き込む。一方、データ読み出し時において、検索結果のフラグ領域３ｆからアドレスの小さい方向にフラグ領域を１つずつ移動し、アドレス格納データが格納されていることを示している（「００」が表示されている）フラグ領域３ｅを検索する。そして、アドレス格納データが書き込まれていることを示しているフラグ領域３ｅに対応するデータ領域３Ｅからアドレス格納データを読み出し、データを読み出す。即ち、未使用データ領域３Ｆからアドレスの小さいデータ領域に遡ってデータを読み出す。
【００２１】
ここで、既に書き込まれているデータを更新する場合について図３（ａ）〜（ｄ）を参照しながら説明する。図３（ａ）に示す状態において、データ１を更新してデータ３にする場合、まず、未使用データ領域に対応するフラグ領域を検索する。ここでは、検索の結果、未使用データ領域に対応するフラグ領域が、フラグ領域１ｅであったとする。次に、図３（ｂ）に示すように、検索によって得られたフラグ領域１ｅのフラグを「１０」に変更し、フラグ領域１ｅに対応するデータ領域１Ｅにデータ３を書き込む。その後、図３（ｃ）に示すように、アドレス格納データを書き込むデータ領域１Ｆに対応するフラグ領域１ｆのフラグを「１０」にし、データ領域１Ｆにアドレス格納データを書き込む。そして、図３（ｄ）に示すように、アドレス格納データの書き込み後、フラグ領域１Ｆのフラグを「００」に変更する。
【００２２】
なお、データ領域１Ｆにアドレス格納データを書き込む際は、データ領域１Ｄにおいて更新前のアドレスαが書き込まれていた書き込み場所（１番目）と同じ書き込み場所に更新後のアドレスγを書き込む。これによって、データ１が更新されてデータ３になったという対応をとることができる。また、データが更新されていないデータ２については、データ領域１Ｄの２番目の書き込み場所に書き込まれていたアドレス格納データをデータ領域１Ｆの２番目の書き込み場所にそのままコピーして書き込む。
【００２３】
以上説明したように、本発明の実施の形態に係るデータ管理方法によれば、データの更新を繰り返しても最新データへのアクセス時間が長くならない。
【００２４】
また、データやアドレス格納データの書き込み中、即ち図３（ｂ）又は図３（ｃ）の状態で電源断が発生した場合、書き込みが完全に終了する前で書き込みが終わるため、データ領域１Ｅやデータ領域１Ｆに書き込まれているデータが不完全なデータとなる。これに対し、本発明の実施の形態に係るデータ管理方法のように、アドレス格納データの書き込みが完了した段階でフラグ領域を「００」に書き換えることで、不完全なデータを検索しないようにすることができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態に係るデータ管理方法で用いられるフラッシュメモリを示すブロック図である。
【図２】フラッシュメモリに１つのデータ領域に収まらないサイズのデータを書き込んだ状態を示すブロック図である。
【図３】本発明の実施の形態に係るデータ管理方法におけるデータの更新について説明するためのブロック図である。
【符号の説明】
【００２６】
１〜６  メモリ領域
１Ａ〜６Ｘ  データ領域
１ａ〜６ｘ  フラグ領域
【図１】
2008097526.tif 000003
【図２】
2008097526.tif 000004
【図３】
2008097526.tif 000005