(57)【要約】【課題】セクタの全メモリ領域を有効に使用して、セクタの更新回数を削減することが可能な不揮発性データ管理システム、不揮発性データ管理方法及びプログラムを提供する。【解決手段】不揮発性データ管理システム１０が、セクタ管理タスク２０、データ群管理タスク２２、セクタ３０、及びデータ群ポインタテーブル２４から構成されることによって、セクタの更新作業において、セクタの全メモリ領域を有効に使用して、セクタの更新回数を削減することが可能である。従って、デバイスの寿命を延ばしたメンテナンス効率の良い不揮発性データ管理システム１０を構築することが可能である。【選択図】図２
2007122420.tif 000002
【特許請求の範囲】
【請求項１】
セクタ単位に消去可能な不揮発性メモリのデータを管理する不揮発性データ管理システムであって、
前記セクタに属する複数の前記データを所定の条件に基づいて分類した、前記データの集合をデータ群とし、
書き込み対象である前記データを書き込み対象データとし、
読み出し対象である前記データを読み出し対象データとし、
前記書き込み対象データ又は前記読み出し対象データが属する前記セクタを対象セクタとしたとき、
前記対象セクタに属する有効な前記データの最新値の格納場所を示すポインタ情報を、前記データ群毎に管理して格納するポインタ情報格納部と、
有効な前記データの最新値の前記ポインタ情報の前記ポインタ情報格納部への格納、及び、前記書き込み対象データの最新値の前記対象セクタへの格納を行うセクタ管理手段と、
前記セクタ管理手段に対する前記書き込み対象データの格納依頼、及び、前記ポインタ情報格納部の前記ポインタ情報に基づいた前記読み出し対象データの前記対象セクタからの読み出しを行うデータ群管理手段と、
を備え、
前記セクタ管理手段は、
前記対象セクタにおける前記データが格納されている領域に連続するように、前記書き込み対象データの最新値及び前記書き込み対象データに対応付けられたデータ管理情報を格納することを特徴とする不揮発性データ管理システム。
【請求項２】
前記セクタ管理手段は、
前記対象セクタに格納されている前記データの中から、前記データに対応付けられた前記データ管理情報に基づいて有効な前記データを判別し、判別された有効な前記データの最新値の前記ポインタ情報を、前記ポインタ情報格納部に格納するセクタ読み出し手段と、
前記書き込み対象データに対応付けられた前記データ管理情報を生成し、生成した前記データ管理情報及び前記書き込み対象データの最新値を前記対象セクタに格納するとともに、前記対象セクタに格納した前記書き込み対象データの前記ポインタ情報を前記ポインタ情報格納部に格納するセクタ書き込み手段と、
を備えていることを特徴とする請求項１に記載の不揮発性データ管理システム。
【請求項３】
前記セクタ書き込み手段は、
前記書き込み対象データのデータ長と少なくとも同じ大きさの連続した空き領域が、前記対象セクタに存在するか否かを判定する空き領域判定手段と、
前記空き領域判定手段によって、前記空き領域が前記対象セクタに存在すると判定されたときに、前記書き込み対象データの最新値を、前記対象セクタの前記空き領域に格納する対象データ書き込み手段と、
前記空き領域判定手段によって、前記空き領域が前記対象セクタに存在しないと判定されたときに、前記対象セクタを更新する対象セクタ更新手段と、
を備えていることを特徴とする請求項２に記載の不揮発性データ管理システム。
【請求項４】
前記対象セクタ更新手段は、
前記書き込み対象データを書き込む前の前記対象セクタを旧対象セクタとし、
前記書き込み対象データを書き込んだ後の前記対象セクタを新対象セクタとしたとき、
前記旧対象セクタと前記新対象セクタとは異なる前記セクタであり、
前記新対象セクタを消去し、前記書き込み対象データの最新値及び前記旧対象セクタに属する前記書き込み対象データ以外の全ての有効な前記データの最新値を、消去した前記新対象セクタに書き込むことを特徴とする請求項３に記載の不揮発性データ管理システム。
【請求項５】
前記対象セクタ更新手段は、
前記対象セクタとは異なるバックアップセクタを利用して、前記書き込み対象データの最新値及び前記対象セクタに属する前記書き込み対象データ以外の全ての有効な前記データの最新値を、前記バックアップセクタに格納した後、前記対象セクタを消去し、前記バックアップセクタに格納している全ての前記データを、消去した前記対象セクタに書き込むことを特徴とする請求項３に記載の不揮発性データ管理システム。
【請求項６】
前記データ管理情報は、前記データの状態を示すステータス情報、前記データの長さであるデータ長、前記データが属する前記データ群の識別番号、及び前記データの識別番号を少なくとも含んでいることを特徴とする請求項１から５のいずれか１項に記載の不揮発性データ管理システム。
【請求項７】
有効な前記データは、前記データ管理情報の前記ステータス情報及び前記データ長に基づいて判定されることを特徴とする請求項６に記載の不揮発性データ管理システム。
【請求項８】
前記不揮発性メモリは、フラッシュメモリであることを特徴とする請求項１から７のいずれか１項に記載の不揮発性データ管理システム。
【請求項９】
セクタ単位に消去可能な不揮発性メモリのデータを管理する不揮発性データ管理方法であって、
前記セクタに属する複数の前記データを所定の条件に基づいて分類した、前記データの集合をデータ群とし、
書き込み対象である前記データを書き込み対象データとし、
読み出し対象である前記データを読み出し対象データとし、
前記書き込み対象データ又は前記読み出し対象データが属する前記セクタを対象セクタとし、
前記対象セクタに属する有効な前記データの最新値の格納場所を示すポインタ情報が、前記データ群毎に管理されて格納されている記憶領域をポインタ情報格納部としたとき、
（ａ）前記対象セクタに格納されている前記データの中から、前記データに対応付けられた前記データ管理情報に基づいて有効な前記データを判別する有効データ判別工程と、
（ｂ）前記有効データ判別工程（ａ）によって判別された有効な前記データの最新値の前記ポインタ情報を、前記ポインタ情報格納部に格納するポインタ情報格納工程と、
（ｃ）前記ポインタ情報格納工程（ｂ）によって格納された前記ポインタ情報に基づいて、前記対象セクタから前記読み出し対象データを読み出すデータ読み出し工程と、
（ｄ）前記対象セクタへ格納する前記書き込み対象データの最新値に対応付けられたデータ管理情報を生成するデータ管理情報生成工程と、
（ｅ）前記対象セクタにおける前記データが格納されている領域に連続するように、前記データ管理情報生成工程（ｄ）によって生成された前記データ管理情報、及び前記書き込み対象データの最新値を格納するとともに、前記対象セクタに格納した前記書き込み対象データの前記ポインタ情報を前記ポインタ情報格納部に格納するデータ格納工程と、
を備えていることを特徴とする不揮発性データ管理方法。
【請求項１０】
前記データ格納工程（ｅ）は、
（ｆ）前記書き込み対象データのデータ長と少なくとも同じ大きさの連続した空き領域が、前記対象セクタに存在するか否かを判定する空き領域判定工程と、
（ｇ）前記空き領域判定工程（ｆ）によって、前記空き領域が前記対象セクタに存在すると判定されたときに、前記書き込み対象データの最新値を、前記対象セクタの前記空き領域に格納する対象データ書き込み工程と、
（ｈ）前記空き領域判定工程（ｆ）によって、前記空き領域が前記対象セクタに存在しないと判定されたときに、前記対象セクタを更新する対象セクタ更新工程と、
を備えていることを特徴とする請求項９に記載の不揮発性データ管理方法。
【請求項１１】
前記対象セクタ更新工程（ｈ）は、
前記書き込み対象データを書き込む前の前記対象セクタを旧対象セクタとし、
前記書き込み対象データを書き込んだ後の前記対象セクタを新対象セクタとしたとき、
前記旧対象セクタと前記新対象セクタとは異なる前記セクタであり、
前記新対象セクタを消去し、前記書き込み対象データの最新値及び前記旧対象セクタに属する前記書き込み対象データ以外の全ての有効な前記データの最新値を、消去した前記新対象セクタに書き込むことを特徴とする請求項１０に記載の不揮発性データ管理方法。
【請求項１２】
前記対象セクタ更新工程（ｈ）は、
前記対象セクタと少なくとも同じメモリ領域である、前記対象セクタとは異なるバックアップセクタを利用して、前記書き込み対象データの最新値及び前記対象セクタに属する前記書き込み対象データ以外の全ての有効な前記データの最新値を、前記バックアップセクタに格納した後、前記対象セクタを消去し、前記バックアップセクタに格納している全ての前記データを、消去した前記対象セクタに書き込むことを特徴とする請求項１０に記載の不揮発性データ管理方法。
【請求項１３】
セクタ単位に消去可能な不揮発性メモリのデータを管理する処理を、コンピュータに実行させるプログラムであって、
請求項１から８のいずれか１項に記載の不揮発性データ管理システムの各手段を実現させる処理を前記コンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セクタ単位に消去可能な不揮発性メモリのデータを管理する不揮発性データ管理システム、不揮発性データ管理方法及びプログラムに関する。特に、セクタの全メモリ領域を有効に使用して、セクタの更新回数を削減することが可能な不揮発性データ管理システム、不揮発性データ管理方法及びプログラムに関する。
【背景技術】
【０００２】
フラッシュメモリのデータの書き換えは、セクタの一部のデータを消去することができないため、セクタ単位で行われる。セクタ単位にデータを書き換える作業手順は、先ず対象のセクタを消去し、次にそのセクタに属する全てのデータを１ワードずつ書き込む。この作業には数秒間を要し、もし途中で不慮の電源断が起きれば、セクタの一部は消去されたままとなる。つまり、フラッシュメモリのデータの書き換えには、既存の格納データを消失してしまう危険性を伴っていると言える。そこで、セクタの更新処理を、安全に、効率よく実行するため方法として、バックアップ用のセクタを利用して、セクタの更新を実行する方法が提案されている（特許文献１）。
【０００３】
また、従来から、セクタに属するデータは、データの種類によって、データの集合である複数個のデータ群に分割されて管理されていた。そして、データ群毎にセクタの領域は区切られ、１つのデータ群に属するデータは、１つの区切られたセクタの領域に保存されていた。ここで、データ群毎に区切られたセクタの領域をデータ群領域とし、データの保存されていない領域を空き領域とする。セクタの更新は、セクタの複数個のデータ群領域の少なくとも１つの領域に空き領域がなくなったときに、実行されていた。
【０００４】
図８は、従来のセクタの更新タイミングを説明するための図である。図８（ａ）は、セクタを説明する図であり、図８（ｂ）は、データの保存を説明するための図である。図８（ａ）に示すように、セクタ３０は、複数のデータ群領域３１に分割されている。データ群１に属するデータはデータ群１領域３１ａに保存され、データ群２に属するデータはデータ群２領域３１ｂに保存され、データ群３に属するデータはデータ群３領域３１ｃに保存される。
【０００５】
また、図８（ｂ）に示すように、データ保存の初期状態において、データ群に属するデータは、データ群領域３１に連続して保存されている。データの更新は、データ群領域３１の空き領域に、データが保存されている領域に連続して、更新するデータを保存する。従って、同じデータでも、最も遅く保存した値が、そのデータの有効な値となる。データの更新を繰り返し実行して、１つのデータ群領域３１に空き領域がなくなったとき、セクタの更新を行う。図８（ｂ）は、データ群２領域３１ｂに空き領域がなくなったことによるセクタの更新を示している。
【０００６】
【特許文献１】特開２００２−３５１６８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述したように、データ群に属するデータの更新頻度の違いにより、空き領域をデータ群領域に残したまま、セクタの更新を行ってしまうという問題点があった。例えば、図８（ｂ）に示すように、セクタを更新するタイミングにおいて、データ群１領域３１ａとデータ群３領域３１ｃには、空き領域がある。
【０００８】
また、新しいデータを保存対象のデータとして追加する場合、どこのデータ群に追加するかを考慮して、追加されたデータ群の管理を修正しなければならないという問題点もあった。
【０００９】
本発明は、以上のような問題点を解決するためになされたもので、セクタの全メモリ領域を有効に使用して、セクタの更新回数を削減することが可能な不揮発性データ管理システム、不揮発性データ管理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した従来の問題点を解決すべく下記の発明を提供する。
本発明の第１の態様にかかる不揮発性データ管理システムは、セクタ単位に消去可能な不揮発性メモリのデータを管理する不揮発性データ管理システムであって、前記セクタに属する複数の前記データを所定の条件に基づいて分類した、前記データの集合をデータ群とし、書き込み対象である前記データを書き込み対象データとし、読み出し対象である前記データを読み出し対象データとし、前記書き込み対象データ又は前記読み出し対象データが属する前記セクタを対象セクタとしたとき、前記対象セクタに属する有効な前記データの最新値の格納場所を示すポインタ情報を、前記データ群毎に管理して格納するポインタ情報格納部と、有効な前記データの最新値の前記ポインタ情報の前記ポインタ情報格納部への格納、及び、前記書き込み対象データの最新値の前記対象セクタへの格納を行うセクタ管理手段と、前記セクタ管理手段に対する前記書き込み対象データの格納依頼、及び、前記ポインタ情報格納部の前記ポインタ情報に基づいた前記読み出し対象データの前記対象セクタからの読み出しを行うデータ群管理手段と、を備え、前記セクタ管理手段は、前記対象セクタにおける前記データが格納されている領域に連続するように、前記書き込み対象データの最新値及び前記書き込み対象データに対応付けられたデータ管理情報を格納することを特徴とする。
【００１１】
このような構成であれば、不揮発性データ管理システムは、セクタ管理手段によって、有効なデータの最新値のポインタ情報がポインタ情報格納部へ格納される。また、対象セクタにおけるデータが格納されている領域に連続するように、書き込み対象データの最新値及び書き込み対象データに対応付けられたデータ管理情報が、対象セクタへ格納される。また、データ群管理手段によって、セクタ管理手段に対する書き込み対象データの格納依頼が実行される。また、ポインタ情報格納部のポインタ情報に基づいて、読み出し対象データの最新値が対象セクタから読み出される。
【００１２】
これにより、セクタの更新作業中であっても、ポインタ情報格納部を参照することができる。従って、セクタの更新作業中であっても、データの読み出しを行うことが可能である。また、セクタの更新作業において、セクタの全メモリ領域を有効に使用して、セクタの更新回数を削減することが可能である。従って、デバイスの寿命を延ばしたメンテナンス効率の良いシステムを構築することが可能である。また、新しいデータを保存対象のデータとして追加する場合、データ群を考慮する必要がなくなり、新しいデータを保存対象のデータとして追加する作業にかかる時間を削減することが可能である。
【００１３】
本発明の他の態様にかかる不揮発性データ管理システムは、上述した本発明の態様にかかる不揮発性データ管理システムの前記セクタ管理手段が、前記対象セクタに格納されている前記データの中から、前記データに対応付けられた前記データ管理情報に基づいて有効な前記データを判別し、判別された有効な前記データの最新値の前記ポインタ情報を、前記ポインタ情報格納部に格納するセクタ読み出し手段と、前記書き込み対象データに対応付けられた前記データ管理情報を生成し、生成した前記データ管理情報及び前記書き込み対象データの最新値を前記対象セクタに格納するとともに、前記対象セクタに格納した前記書き込み対象データの前記ポインタ情報を前記ポインタ情報格納部に格納するセクタ書き込み手段と、を備えていることを特徴とする。
【００１４】
このような構成であれば、セクタ管理手段は、セクタ読み出し手段によって、対象セクタに格納されているデータの中から、データに対応付けられたデータ管理情報に基づいて有効なデータが判別される。また、判別された有効なデータの最新値のポインタ情報が、ポインタ情報格納部に格納される。また、セクタ書き込み手段によって、書き込み対象データに対応付けられたデータ管理情報が生成される。また、生成されたデータ管理情報及び書き込み対象データの最新値が対象セクタに格納される。また、対象セクタに格納した書き込み対象データのポインタ情報がポインタ情報格納部に格納される。
【００１５】
これにより、セクタの更新作業中であっても、ポインタ情報格納部を参照することができる。従って、セクタの更新作業中であっても、データの読み出しを行うことが可能である。セクタの更新作業において、セクタの全メモリ領域を有効に使用して、セクタの更新回数を削減することが可能である。従って、デバイスの寿命を延ばしたメンテナンス効率の良いシステムを構築することが可能である。また、新しいデータを保存対象のデータとして追加する場合、データ群を考慮する必要がなくなり、新しいデータを保存対象のデータとして追加する作業にかかる時間を削減することが可能である。
【００１６】
本発明の他の態様にかかる不揮発性データ管理システムは、上述した本発明の態様にかかる不揮発性データ管理システムの前記セクタ書き込み手段が、前記書き込み対象データのデータ長と少なくとも同じ大きさの連続した空き領域が、前記対象セクタに存在するか否かを判定する空き領域判定手段と、前記空き領域判定手段によって、前記空き領域が前記対象セクタに存在すると判定されたときに、前記書き込み対象データの最新値を、前記対象セクタの前記空き領域に格納する対象データ書き込み手段と、前記空き領域判定手段によって、前記空き領域が前記対象セクタに存在しないと判定されたときに、前記対象セクタを更新する対象セクタ更新手段と、を備えていることを特徴とする。
【００１７】
このような構成であれば、セクタ書き込み手段は、空き領域判定手段によって、書き込み対象データのデータ長と少なくとも同じ大きさの連続した空き領域が、対象セクタに存在するか否かが判定される。また、空き領域判定手段によって、空き領域が対象セクタに存在すると判定されたときに、対象データ書き込み手段によって、書き込み対象データの最新値が、対象セクタの空き領域に格納される。また、空き領域判定手段によって、空き領域が対象セクタに存在しないと判定されたときに、対象セクタ更新手段によって、対象セクタが更新される。
【００１８】
これにより、セクタの更新作業において、セクタの全メモリ領域を有効に使用して、セクタの更新回数を削減することが可能である。従って、デバイスの寿命を延ばしたメンテナンス効率の良いシステムを構築することが可能である。また、新しいデータを保存対象のデータとして追加する場合、データ群を考慮する必要がなくなり、新しいデータを保存対象のデータとして追加する作業にかかる時間を削減することが可能である。
【００１９】
本発明の他の態様にかかる不揮発性データ管理システムは、上述した本発明の態様にかかる不揮発性データ管理システムの前記対象セクタ更新手段が、前記書き込み対象データを書き込む前の前記対象セクタを旧対象セクタとし、前記書き込み対象データを書き込んだ後の前記対象セクタを新対象セクタとしたとき、前記旧対象セクタと前記新対象セクタとは異なる前記セクタであり、前記新対象セクタを消去し、前記書き込み対象データの最新値及び前記旧対象セクタに属する前記書き込み対象データ以外の全ての有効な前記データの最新値を、消去した前記新対象セクタに書き込むことを特徴とする。
【００２０】
これにより、セクタの更新作業において、セクタの消去処理、及びセクタへの全データの書き込み処理が１回ずつしか実行されなくなり、有効セクタの更新の処理時間を削減することが可能である。従って、セクタの更新処理効率の良いシステムを構築することが可能である。また、１つのセクタの更新回数を減らすことが可能である。従って、デバイスの寿命を延ばしたメンテナンス効率の良いシステムを構築することが可能である。
【００２１】
本発明の他の態様にかかる不揮発性データ管理システムは、上述した本発明の態様にかかる不揮発性データ管理システムの前記対象セクタ更新手段が、前記対象セクタとは異なるバックアップセクタを利用して、前記書き込み対象データの最新値及び前記対象セクタに属する前記書き込み対象データ以外の全ての有効な前記データの最新値を、前記バックアップセクタに格納した後、前記対象セクタを消去し、前記バックアップセクタに格納している全ての前記データを、消去した前記対象セクタに書き込むことを特徴とする。これにより、セクタの更新作業において、安全性の高いセクタの更新作業を実行することが可能である。
【００２２】
本発明の他の態様にかかる不揮発性データ管理システムは、上述した本発明の態様にかかる不揮発性データ管理システムの前記データ管理情報が、前記データの状態を示すステータス情報、前記データの長さであるデータ長、前記データが属する前記データ群の識別番号、及び前記データの識別番号を少なくとも含んでいることを特徴とする。
【００２３】
本発明の他の態様にかかる不揮発性データ管理システムは、上述した本発明の態様にかかる不揮発性データ管理システムの有効な前記データが、前記データ管理情報の前記ステータス情報及び前記データ長に基づいて判定されることを特徴とする。
【００２４】
本発明の他の態様にかかる不揮発性データ管理システムは、上述した本発明の態様にかかる不揮発性データ管理システムの前記不揮発性メモリが、フラッシュメモリであることを特徴とする。
【００２５】
本発明の第１の態様にかかる不揮発性データ管理方法は、セクタ単位に消去可能な不揮発性メモリのデータを管理する不揮発性データ管理方法であって、前記セクタに属する複数の前記データを所定の条件に基づいて分類した、前記データの集合をデータ群とし、書き込み対象である前記データを書き込み対象データとし、読み出し対象である前記データを読み出し対象データとし、前記書き込み対象データ又は前記読み出し対象データが属する前記セクタを対象セクタとし、前記対象セクタに属する有効な前記データの最新値の格納場所を示すポインタ情報が、前記データ群毎に管理されて格納されている記憶領域をポインタ情報格納部としたとき、（ａ）前記対象セクタに格納されている前記データの中から、前記データに対応付けられた前記データ管理情報に基づいて有効な前記データを判別する有効データ判別工程と、（ｂ）前記有効データ判別工程（ａ）によって判別された有効な前記データの最新値の前記ポインタ情報を、前記ポインタ情報格納部に格納するポインタ情報格納工程と、（ｃ）前記ポインタ情報格納工程（ｂ）によって格納された前記ポインタ情報に基づいて、前記対象セクタから前記読み出し対象データを読み出すデータ読み出し工程と、（ｄ）前記対象セクタへ格納する前記書き込み対象データの最新値に対応付けられたデータ管理情報を生成するデータ管理情報生成工程と、（ｅ）前記対象セクタにおける前記データが格納されている領域に連続するように、前記データ管理情報生成工程（ｄ）によって生成された前記データ管理情報、及び前記書き込み対象データの最新値を格納するとともに、前記対象セクタに格納した前記書き込み対象データの前記ポインタ情報を前記ポインタ情報格納部に格納するデータ格納工程と、を備えていることを特徴とする。これにより、上述した本発明の態様にかかる不揮発性データ管理システムと同等の効果が得られる。
【００２６】
本発明の他の態様にかかる不揮発性データ管理方法は、上述した本発明の態様にかかる不揮発性データ管理方法の前記データ格納工程（ｅ）が、（ｆ）前記書き込み対象データのデータ長と少なくとも同じ大きさの連続した空き領域が、前記対象セクタに存在するか否かを判定する空き領域判定工程と、（ｇ）前記空き領域判定工程（ｆ）によって、前記空き領域が前記対象セクタに存在すると判定されたときに、前記書き込み対象データの最新値を、前記対象セクタの前記空き領域に格納する対象データ書き込み工程と、（ｈ）前記空き領域判定工程（ｆ）によって、前記空き領域が前記対象セクタに存在しないと判定されたときに、前記対象セクタを更新する対象セクタ更新工程と、を備えていることを特徴とする。これにより、上述した本発明の態様にかかる不揮発性データ管理システムと同等の効果が得られる。
【００２７】
本発明の他の態様にかかる不揮発性データ管理方法は、上述した本発明の態様にかかる不揮発性データ管理方法の前記対象セクタ更新工程（ｈ）が、前記書き込み対象データを書き込む前の前記対象セクタを旧対象セクタとし、前記書き込み対象データを書き込んだ後の前記対象セクタを新対象セクタとしたとき、前記旧対象セクタと前記新対象セクタとは異なる前記セクタであり、前記新対象セクタを消去し、前記書き込み対象データの最新値及び前記旧対象セクタに属する前記書き込み対象データ以外の全ての有効な前記データの最新値を、消去した前記新対象セクタに書き込むことを特徴とする。これにより、上述した本発明の態様にかかる不揮発性データ管理システムと同等の効果が得られる。
【００２８】
本発明の他の態様にかかる不揮発性データ管理方法は、上述した本発明の態様にかかる不揮発性データ管理方法の前記対象セクタ更新工程（ｈ）が、前記対象セクタと少なくとも同じメモリ領域である、前記対象セクタとは異なるバックアップセクタを利用して、前記書き込み対象データの最新値及び前記対象セクタに属する前記書き込み対象データ以外の全ての有効な前記データの最新値を、前記バックアップセクタに格納した後、前記対象セクタを消去し、前記バックアップセクタに格納している全ての前記データを、消去した前記対象セクタに書き込むことを特徴とする。
【００２９】
本発明の第１の態様にかかるプログラムは、セクタ単位に消去可能な不揮発性メモリのデータを管理する処理を、コンピュータに実行させるプログラムであって、上述した本発明の態様にかかる不揮発性データ管理システムの各手段を実現させる処理を前記コンピュータに実行させることを特徴とするプログラムである。
【００３０】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムによって、コンピュータが処理を実行すると、上述した本発明の態様にかかる不揮発性データ管理システムと同等の作用及び効果が得られる。
【発明の効果】
【００３１】
本発明によれば、セクタの更新作業中であっても、ポインタ情報格納部を参照することができる。従って、セクタの更新作業中であっても、データの読み出しを行うことが可能である。また、セクタの更新作業において、セクタの全メモリ領域を有効に使用して、セクタの更新回数を削減することが可能である。従って、デバイスの寿命を延ばしたメンテナンス効率の良いシステムを構築することが可能である。また、新しいデータを保存対象のデータとして追加する場合、データ群を考慮する必要がなくなり、新しいデータを保存対象のデータとして追加する作業にかかる時間を削減することが可能である。
【発明を実施するための最良の形態】
【００３２】
この発明の一実施態様を、図面を参照しながら説明する。なお、以下に説明する実施態様は説明のためのものであり、本発明の範囲を制限するものではない。従って、当業者であればこれらの各要素もしくは全要素をこれと均等なものによって置換した実施態様を採用することが可能であるが、これらの実施態様も本発明の範囲に含まれる。
【００３３】
図１から図７を参照して、本発明の実施の形態を説明する。
図１は、本発明の形態の不揮発性データ管理システムのハードウェアの構成を示す図である。不揮発性データ管理システム１０は、一括して消去可能な領域であるセクタに分割された書き換えが可能であるフラッシュメモリ１２、読み書きが可能であるＲＡＭ１４、および、不揮発性データ管理システム１０を有する制御装置の制御を実行するＣＰＵ１６を備えている。フラッシュメモリ１２は、制御装置の制御を実行するプログラム、システム制御データ、フォントデータ等を記憶している。
【００３４】
図２は、本発明の実施の形態の不揮発性データ管理システム１０の機能構成図の一例である。図２に示すように、不揮発性データ管理システム１０は、セクタ管理タスク２０、データ群管理タスク２２、セクタ３０、及びデータ群ポインタテーブル２４から構成されている。図においては、セクタ３０に属するデータ群がデータ群１、データ群２及びデータ群３であるとする。また、データ群１の場合、データ群管理タスク２２をデータ群１管理タスク２２ａ、データ群ポインタテーブル２４をデータ群１用ポインタテーブル２４ａとし、データ群２の場合、データ群管理タスク２２をデータ群２管理タスク２２ｂ、データ群ポインタテーブル２４をデータ群２用ポインタテーブル２４ｂとし、データ群３の場合、データ群管理タスク２２をデータ群３管理タスク２２ｃ、データ群ポインタテーブル２４をデータ群３用ポインタテーブル２４ｃとする。
【００３５】
次に、セクタ３０にデータを書き込む場合、セクタ３０を更新する場合、及びセクタ３０からデータを読み出す場合について説明する。ここで、書き込み対象となるデータを、書き込み対象データと、読み込み対象となるデータを読み込み対象データと呼ぶ。
【００３６】
（１）データの格納
データ群管理タスク２２は、セクタ管理タスク２０に対して、書き込み対象データのセクタ３０への格納を、書き込み対象データとともに依頼する。格納依頼されたセクタ管理タスク２０は、受け取った書き込み対象データに基づいて、書き込み対象データのデータ管理情報を生成し、生成したデータ管理情報及び書き込み対象データを１つのセクタ格納データとして、セクタ３０へ格納する。また、格納したセクタ格納データの書き込み対象データの格納位置を示すポインタをデータ群ポインタテーブル２４に格納する。
【００３７】
図３は、セクタ格納データを示した図である。図３に示すように、セクタ格納データは、データ管理情報及び書き込み対象データのデータ列から構成され、データ管理情報は、書き込み対象データの状態を示すステータス、書き込み対象データの長さであるデータ長、書き込み対象データが属するデータ群の識別番号であるデータ群番号、及び書き込み対象データの識別番号であるデータ番号から構成されている。
【００３８】
セクタ格納データのセクタ３０への格納は、セクタ３０に既に格納されているデータ領域に連続するように格納する。図４は、セクタ３０へのセクタ格納データの格納を説明するための図である。図４（ａ）は、セクタ３０を説明する図であり、図４（ｂ）は、セクタ格納データの格納及びセクタ３０の更新を説明するための図である。図４（ａ）に示すように、セクタ３０に属する全てのデータは、１つの集合として管理される。即ち、データ群１、データ群２及びデータ群３の区別なく１つの集合として管理されている。
【００３９】
また、図４（ｂ）に示すように、データ保存の初期状態において、セクタ３０に属するセクタ格納データは、セクタ３０のデータ領域に連続して格納される。書き込み対象データの最新値を書き込む場合は、セクタ３０の空き領域に、データが保存されているデータ領域に連続して、書き込み対象データ及びデータ管理情報から成るセクタ格納データを、セクタ３０へ格納する。
【００４０】
（２）セクタ３０の更新
上述したように、セクタ格納データをセクタ３０に格納していくと次第に空き領域がなくなり、図４（ｂ）に示すように、セクタ格納データを格納する空き領域がなくなったときに、セクタ３０の更新を実行する。ここで、空き領域がなくなったか否かの判定は、書き込み対象データのデータ長と少なくとも同じ大きさの連続した空き領域が、セクタ３０に存在するか否かによって判定する。例えば、８バイトのセクタ格納データをセクタ３０に格納するときに、空き領域が４バイトしかない場合は、空き領域がセクタ３０にないと判定する。
【００４１】
また、セクタ３０の更新は、例えば、更新する前のセクタ３０をセクタＡとしたとき、セクタＡとは異なるセクタＢを予め用意しておく。セクタＢを消去した後、書き込み対象データの最新値に基づいたセクタ格納データ、及び、セクタＡに格納されている書き込み対象データ以外の有効なデータの最新値に基づいたセクタ格納データを、上述した（１）データの格納に従って、セクタＢに格納する。以後、セクタＢを更新した後のセクタ３０として、セクタ格納データを格納していく。
【００４２】
（３）データの読み込み
セクタ管理タスク２０は、不揮発性データ管理システム１０が起動されたとき、予め設定されているポインタテーブル更新タイミング等において、セクタ３０に格納されている全ての有効なセクタ格納データのデータ列の格納位置を示すポインタを、セクタ３０から検索して、データ群ポインタテーブル２４に格納する。このとき、セクタ格納データのデータ管理情報のステータス及びデータ長をチェックして、そのセクタ格納データが有効なデータであるか否かを判定する。次に、有効なセクタ格納データであると判定されたセクタ格納データのデータ列の格納位置を示すポインタを、そのデータ管理情報のデータ群番号及びデータ番号に基づいて、データ群ポインタテーブル２４の所定の格納場所に格納する。
【００４３】
データ群管理タスク２２は、上述したようにセクタ管理タスク２０によって、セクタ３０に格納されているデータのデータ列のポインタが格納されているデータ群ポインタテーブル２４を検索して、読み込み対象データのポインタを取り出し、取り出したポインタに基づいて、セクタ３０から読み出す。
【００４４】
次に、セクタ管理タスク２０の処理について、図５から図７を参照して説明する。図５は、本発明の実施の形態の不揮発性データ管理システム１０のフラッシュメモリ１２に予め格納されている制御プログラムにより実行されるデータの格納処理の一例を示すフローチャート図である。図６は、本発明の実施の形態の不揮発性データ管理システム１０のフラッシュメモリ１２に予め格納されている制御プログラムにより実行されセクタ３０の更新処理の一例を示すフローチャート図である。図７は、本発明の実施の形態の不揮発性データ管理システム１０のフラッシュメモリ１２に予め格納されている制御プログラムにより実行されるデータ群ポインタテーブル２４へのポインタ格納処理の一例を示すフローチャート図である。
【００４５】
図５に示すように、データ群管理タスク２２より、書き込み対象データのセクタ３０への格納を依頼されると、まず、書き込み対象データのデータ管理情報を生成する（Ｓ１０２）。次に、書き込み対象データのデータ長と少なくとも同じ大きさの連続した空き領域が、セクタ３０に存在するか否かを判定する（Ｓ１０４）。
【００４６】
書き込み対象データのデータ長と少なくとも同じ大きさの連続した空き領域が、セクタ３０に存在する場合（Ｓ１０４；Ｙｅｓ）に、書き込み対象データの最新値及びデータ管理情報からなるセクタ格納データを、セクタ３０の空き領域に、データ領域が連続するように格納し（Ｓ１０６）、書き込み対象データの最新値のポインタをデータ群ポインタテーブル２４に格納し（Ｓ１０８）、処理を終了する。
【００４７】
書き込み対象データのデータ長と少なくとも同じ大きさの連続した空き領域が、セクタ３０に存在しない場合（Ｓ１０４；Ｎｏ）に、セクタ３０を更新し（Ｓ１１０）、ステップＳ１０６へ処理を移行する。
【００４８】
次に、上述のステップＳ１１０のセクタ３０の更新処理を説明する。ここでは、セクタＡとセクタＢを利用した場合のセクタ更新を説明する。また、更新前のセクタ３０をセクタＡ、更新後のセクタ３０をセクタＢとする。
【００４９】
図６に示すように、まず、更新後のセクタ３０であるセクタＢを消去する（Ｓ２０２）。次に、データ群ポインタテーブル２４に格納されているポインタを先頭から順番に読み出す（Ｓ２０４）。次に、読み出したポインタに対応するデータ列をセクタＡから読み出し（Ｓ２０６）、読み出したデータのデータ管理情報を生成し（Ｓ２０８）、読み出したデータ列と生成したデータ管理情報とから構成されるセクタ格納データを、セクタＢの空き領域に、データ領域が連続するように格納し（Ｓ２１０）、読み出したデータ列のセクタＢにおける格納位置であるポインタをデータ群ポインタテーブル２４に格納する（Ｓ２１２）。
【００５０】
次に、データ群ポインタテーブル２４に、次に読み出すポインタがあるか否かを判定し（Ｓ２１４）、読み出すポインタがある場合（Ｓ２１４；Ｙｅｓ）は、ステップＳ２０４に戻り、ステップＳ２０４からＳ２１４までの処理を繰り返す。一方、読み出したデータがない場合（Ｓ２１４；Ｎｏ）は、最後に、セクタＡを消去し（Ｓ２１６）、処理を終了する。
【００５１】
次に、不揮発性データ管理システム１０が起動されたとき、予め設定されているデータ群ポインタテーブル２４の更新タイミング等において、セクタ３０に格納されている全ての有効なセクタ格納データのデータ列の格納位置を示すポインタを、データ群ポインタテーブル２４に格納する処理について説明する。
【００５２】
図７に示すように、まず、セクタ３０に格納されているセクタ格納データを格納された順番に１個ずつ読み出し（Ｓ３０２）、読み出したセクタ格納データのデータ列の格納位置であるポインタをデータ群ポインタテーブル２４に格納する（Ｓ３０４）。ここで、既に、データ群ポインタテーブル２４の格納位置に値が格納されている場合は、上書きして格納する。
【００５３】
最後に、セクタ３０に、次に読み出すセクタ格納データがあるか否かを判定し（Ｓ３０６）、読み出すセクタ格納データがある場合（Ｓ３０６；Ｙｅｓ）は、ステップＳ３０２に戻り、ステップＳ３０２からＳ３０６までの処理を繰り返す。一方、読み出すセクタ格納データがない場合（Ｓ３０６；Ｎｏ）は、処理を終了する。
【００５４】
上述したように、不揮発性データ管理システム１０が、セクタ管理タスク２０、データ群管理タスク２２、セクタ３０、及びデータ群ポインタテーブル２４から構成されることによって、セクタの更新作業中であっても、データ群ポインタテーブル２４を参照することができる。従って、セクタの更新作業中であっても、データの読み出しを行うことが可能である。また、セクタの更新作業において、セクタの全メモリ領域を有効に使用して、セクタの更新回数を削減することが可能である。従って、デバイスの寿命を延ばしたメンテナンス効率の良い不揮発性データ管理システム１０を構築することが可能である。また、新しいデータを保存対象のデータとして追加する場合、データ群を考慮する必要がなくなり、新しいデータを保存対象のデータとして追加する作業にかかる時間を削減することが可能である。
【００５５】
また、上述した実施の形態の不揮発性データ管理システム１０において、セクタ管理タスク２０は本発明のセクタ管理手段に対応し、データ群管理タスク２２は本発明のデータ群管理手段に対応し、データ群ポインタテーブル２４は本発明のポインタ情報格納部に対応する。
【００５６】
また、上述した図４及び図６において、セクタ３０の更新は、セクタＡとセクタＢを利用した場合を説明したが、例えば、セクタ３０とは異なるバックアップセクタを利用して、バックアップセクタを消去した後、書き込み対象データの最新値に基づいたセクタ格納データ、及び、セクタ３０に格納されている書き込み対象データ以外の有効なデータの最新値に基づいたセクタ格納データを、上述した図４の説明（１）データの格納に従って、バックアップセクタに格納する。次に、セクタ３０を消去した後、バックアップセクタに格納されている全てのデータを、上述した図４の説明（１）データの格納手順に従って、セクタ３０に格納するようにしても良い。
【００５７】
また、上述した図５から図７のフローチャートに示す処理を実行する場合に、不揮発性データ管理システム１０のフラッシュメモリ１２に予め格納されている制御プログラムを実行する場合について説明したが、これらの各工程を実行させるプログラムを記録した情報記録媒体から、そのプログラムをＲＡＭに読み込んで実行するようにしても良い。
【００５８】
ここで、情報記録媒体とは、ＲＡＭ、ＲＯＭ等の半導体記録媒体、ＦＤ、ＨＤ等の磁気記憶型記録媒体、ＣＤ、ＣＤＶ、ＬＤ、ＤＶＤ等の光学的読取方式記録媒体、ＭＯ等の磁気記憶型／光学的読取方式記録媒体であって、電子的、磁気的、光学等の読み取り方法のいかんにかかわらず、コンピュータによって読み取り可能な情報記録媒体であれば、あらゆる情報記録媒体を含むものである。また、プログラムを、ネットワークを経由してダウンロードして実行するようにしても良い。
【図面の簡単な説明】
【００５９】
【図１】本発明の実施の形態の不揮発性データ管理システムのハードウェアの構成を示す図である。
【図２】本発明の実施の形態の不揮発性データ管理システム１０の機能構成図の一例である。
【図３】セクタ格納データを示した図である。
【図４】セクタ３０へのセクタ格納データの格納を説明するための図であり、図４（ａ）は、セクタ３０を説明する図であり、図４（ｂ）は、セクタ格納データの格納及びセクタ３０の更新を説明するための図である。
【図５】本発明の実施の形態の不揮発性データ管理システム１０のフラッシュメモリ１２に予め格納されている制御プログラムにより実行されるデータの格納処理の一例を示すフローチャート図である。
【図６】本発明の実施の形態の不揮発性データ管理システム１０のフラッシュメモリ１２に予め格納されている制御プログラムにより実行されセクタ３０の更新処理の一例を示すフローチャート図である。
【図７】本発明の実施の形態の不揮発性データ管理システム１０のフラッシュメモリ１２に予め格納されている制御プログラムにより実行されるデータ群ポインタテーブル２４へのポインタ格納処理の一例を示すフローチャート図である。
【図８】従来のセクタの更新タイミングを説明するための図であり、図８（ａ）は、セクタを説明する図であり、図８（ｂ）は、データの保存を説明するための図である。
【符号の説明】
【００６０】
１０    不揮発性データ管理システム
１２    フラッシュメモリ
１４    ＲＡＭ
１６    ＣＰＵ
２０    セクタ管理タスク
２２    データ群管理タスク
２４    データ群ポインタテーブル
３０    セクタ
【図１】
2007122420.tif 000003
【図２】
2007122420.tif 000004
【図３】
2007122420.tif 000005
【図４】
2007122420.tif 000006
【図５】
2007122420.tif 000007
【図６】
2007122420.tif 000008
【図７】
2007122420.tif 000009
【図８】
2007122420.tif 000010