(57)【要約】【課題】不揮発性記憶装置が有するメモリコントローラがリフレッシュに対応していないと不揮発性記憶装置のデータ保持期間をフラッシュメモリ単体のデータ保持期間より延長できない。【解決手段】不揮発性記憶システム１０１のメモリアクセス装置１０２では、リフレッシュ制御部が、ファイル単位で不揮発性記憶装置１０３のデータの読出し／書込み指示を行うことができるので、所定のファイルシステムで定義されるファイル単位でリフレッシュ処理を実行することができる。したがって、不揮発性記憶装置１０３が有するメモリコントローラ１０８がリフレッシュ機能を有していなくても、データ保持期間を不揮発性メモリ１０９単体のデータ保持期間よりも長く（延長）することができる。【選択図】図１
2010182160.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリを備えた不揮発性記憶装置に対しデータの書込み／読出しを行うメモリアクセス装置であって、
ファイルシステムが管理する前記不揮発性記憶装置に記録されたファイルについて、該ファイルのみを構成するデータの読出し指示、および、前記不揮発性記憶装置へ該読出したデータを変更することなく書込み指示をすることでリフレッシュ処理を指示するリフレッシュ制御部と、
前記リフレッシュ処理のデータ書込みにおいて、前記不揮発性記憶装置に対して、前記ファイルを構成するデータを書き込むとともに、該データに関して前記ファイルシステムが管理する関連情報を書き込むファイル管理部と、
を備えるメモリアクセス装置。
【請求項２】
前記不揮発性記憶装置に記録されているファイルの付加情報に基づいてリフレッシュ処理の対象となるファイルを選択し、該選択されたファイルのファイル識別情報を前記リフレッシュ制御部に通知するファイル選択部をさらに備え、
前記リフレッシュ制御部は、前記ファイル選択部から通知されたファイル識別情報により特定されるファイルについてリフレッシュ処理を指示し、
前記ファイル管理部は、前記不揮発性記憶装置に対して、さらに前記付加情報を書き込む、
請求項１記載のメモリアクセス装置。
【請求項３】
不揮発性メモリを備えた不揮発性記憶装置に対しデータの書込み／読出しを行うメモリアクセス装置であって、
前記不揮発性記憶装置に記録されているシステム情報を構成するデータの読出し指示と、その後、前記不揮発性記憶装置へ該読出したデータの書込み指示をすることでリフレッシュ処理を指示するリフレッシュ制御部と、
前記不揮発性記憶装置に記録されている前記システム情報の付加情報に基づいて前記リフレッシュ制御部へ、該システム情報のリフレッシュ処理を通知するファイル選択部と、
前記リフレッシュ処理のデータ書込みにおいて、前記不揮発性記憶装置に対して、前記システム情報を構成するデータを書き込むとともに、該システム情報の付加情報を書き込むファイル管理部と、
を備えるメモリアクセス装置。
【請求項４】
前記リフレッシュ制御部は、
前記ファイルを構成するデータのリフレッシュ処理の書込み指示において、該データを前記不揮発性記憶装置から読出した領域と同じ領域に再度書き込むよう前記ファイル管理部に指示する、
請求項２に記載のメモリアクセス装置。
【請求項５】
前記リフレッシュ制御部は、
前記システム情報を構成するデータのリフレッシュ処理の書込み指示において、該データを前記不揮発性記憶装置から読み出した領域と同じ領域に再度書き込むよう前記ファイル管理部に指示する、
請求項３に記載のメモリアクセス装置。
【請求項６】
前記リフレッシュ制御部は、
前記ファイルを構成するデータのリフレッシュ処理の書込み指示において、該データを前記不揮発性記憶装置から読み出した領域と異なる領域に再度書き込むよう前記ファイル管理部に指示する、
請求項２に記載のメモリアクセス装置。
【請求項７】
前記リフレッシュ制御部は、前記ファイル管理部に対して、前記ファイルの分割データを前記不揮発性記憶装置から読み出し、読み出した分割データを、再度前記不揮発性記憶装置に書き込む動作を繰り返すように指示することで、前記ファイル全体に対して、リフレッシュ処理の指示を行う、
請求項１、２、４、６のいずれかに記載のメモリアクセス装置。
【請求項８】
前記ファイル選択部は、前記不揮発性記憶装置の初期化処理時に、リフレッシュ処理の対象となるファイルを選択し、該選択されたファイルのファイル識別情報を前記リフレッシュ制御部に通知する、
請求項２、４、６のいずれかに記載のメモリアクセス装置。
【請求項９】
前記ファイル選択部は、前記メモリアクセス装置が外部からの指示により動作する以外の空き時間に、リフレッシュ処理の対象となるファイルを選択し、該選択されたファイルのファイル識別情報を前記リフレッシュ制御部に通知する、
請求項２、４、６のいずれかに記載のメモリアクセス装置。
【請求項１０】
時間情報を保持する時計部をさらに備え、
前記付加情報は、前記不揮発性記憶装置にデータ書込みを行った時刻である書込み時刻を含み、
前記ファイル管理部は、前記不揮発性記憶装置に前記ファイルを構成するデータを書き込む時点の時刻を示す時間情報を前記時計部から取得し、取得した前記時間情報を前記付加情報の前記書込み時刻とし、
前記ファイル選択部は、現在時刻を示す時間情報を前記時計部から取得し、前記現在時刻を示す時間情報と前記付加情報の書込み時刻とから算出した経過時間を、所定の基準時間と比較し、比較した結果に基づいて、リフレッシュ処理を通知する、
請求項２、４、６、８、９のいずれかに記載のメモリアクセス装置。
【請求項１１】
時間情報を保持する時計部をさらに備え、
前記付加情報は、前記不揮発性記憶装置に前記システム情報を構成するデータ書込みを行った時刻である書込み時刻を含み、
前記ファイル管理部は、前記不揮発性記憶装置に前記リフレッシュ処理の対象となるデータを書き込む時点の時刻を示す時間情報を前記時計部から取得し、取得した前記時間情報を前記付加情報の前記書込み時刻とし、
前記ファイル選択部は、現在時刻を示す時間情報を前記時計部から取得し、前記現在時刻を示す時間情報と前記付加情報の書込み時刻とから算出した経過時間を、所定の基準時間と比較し、比較した結果に基づいて、リフレッシュ処理を通知する、
請求項３、５のいずれかに記載のメモリアクセス装置。
【請求項１２】
前記付加情報の前記書込み時刻は、前記ファイルシステムにより定義されるファイル作成日時を示す情報であって、ファイルごとに管理されるファイル作成又は更新日時を示す情報として、管理される、
請求項１０に記載のメモリアクセス装置。
【請求項１３】
前記付加情報は、前記ファイルの重要度情報を含み、
前記ファイル選択部は、リフレッシュ処理の対象となるファイルを選択する順番を、前記重要度情報に基づき決定する、
請求項２、４、６、８から１０、１２のいずれかに記載のメモリアクセス装置。
【請求項１４】
請求項１から１３のいずれかに記載のメモリアクセス装置と、
不揮発性メモリと、前記不揮発性メモリを制御するメモリコントローラと、を有する不揮発性記憶装置と、
を備える不揮発性記憶システム。
【請求項１５】
外部からの要求によりデータの書込み／読出しを行う不揮発性記憶装置であって、
不揮発性メモリと、
前記不揮発性メモリを制御するメモリコントローラと、
ファイルシステムにより管理される、前記不揮発性メモリに記録されたファイルについて、該ファイルのみを構成するデータの読出し指示、および、前記不揮発性メモリへ該読み出したデータを変更することなく書込み指示をすることでリフレッシュ処理を指示するリフレッシュ制御部と、
前記リフレッシュ処理のデータ書込みにおいて、前記不揮発性メモリに対して、前記ファイルを構成するデータを書き込むとともに、該データに関して前記ファイルシステムが管理する関連情報を書き込むファイル管理部と、
を備える不揮発性記憶装置。
【請求項１６】
前記不揮発性メモリに記録されているファイルの付加情報に基づいてリフレッシュ処理の対象となるファイルを選択し、該選択されたファイルのファイル識別情報を前記リフレッシュ制御部に通知するファイル選択部をさらに備え、
前記リフレッシュ制御部は、前記ファイル選択部から通知されたファイル識別情報により特定されるファイルについてリフレッシュ処理を指示し、
前記ファイル管理部は、前記不揮発性メモリに対して、さらに前記付加情報を書き込む、
請求項１５記載の不揮発性記憶装置。
【請求項１７】
時間情報を保持する時計部をさらに備え、
前記付加情報は、前記不揮発性メモリにデータ書込みを行った時刻である書込み時刻を含み、
前記ファイル管理部は、前記不揮発性メモリに前記ファイルを構成するデータを書き込む時点の時刻を示す時間情報を前記時計部から取得し、取得した前記時間情報を前記付加情報の前記書込み時刻とし、
前記ファイル選択部は、現在時刻を示す時間情報を前記時計部から取得し、前記現在時刻を示す時間情報と前記付加情報の書込み時刻とから算出した経過時間を、所定の基準時間と比較し、比較した結果に基づいて、リフレッシュ処理を通知する、
請求項１６に記載の不揮発性記憶装置。
【請求項１８】
時間情報を外部から取得する時間取得部をさらに備え、
前記付加情報は、前記不揮発性メモリにデータ書込みを行った時刻である書込み時刻を含み、
前記ファイル管理部は、前記不揮発性メモリに前記ファイルを構成するデータを書き込む時点の時刻を示す時間情報を前記時間取得部を介して外部から取得し、取得した前記時間情報を前記付加情報の前記書込み時刻とし、
前記ファイル選択部は、現在時刻を示す時間情報を前記時間取得部を介して外部から取得し、前記現在時刻を示す時間情報と前記付加情報の書込み時刻とから算出した経過時間を、所定の基準時間と比較し、比較した結果に基づいて、リフレッシュ処理を通知する、
請求項１６に記載の不揮発性記憶装置。
【請求項１９】
不揮発性メモリを備えた不揮発性記憶装置に対しデータの書込み／読出しを行うメモリアクセス方法であって、
ファイルシステムが管理する前記不揮発性記憶装置に記録されたファイルについて、該ファイルのみを構成するデータの読出し指示、および、前記不揮発性記憶装置へ該読み出したデータを変更することなく書込み指示をすることでリフレッシュ処理を指示するリフレッシュ制御ステップと、
前記リフレッシュ処理のデータ書込みにおいて、前記不揮発性記憶装置に対して、前記ファイルを構成するデータを書き込むとともに、該データに関して前記ファイルシステムが管理する関連情報を書き込むファイル管理ステップと、
を備えるメモリアクセス方法。
【請求項２０】
不揮発性メモリを備えた不揮発性記憶装置に対しデータの書込み／読出しを行うメモリアクセス方法をコンピュータに実行させるプログラムであって、
ファイルシステムが管理する前記不揮発性記憶装置に記録されたファイルについて、該ファイルのみを構成するデータの読出し指示、および、前記不揮発性記憶装置へ該読み出したデータを変更することなく書込み指示をすることでリフレッシュ処理を指示するリフレッシュ制御ステップと、
前記リフレッシュ処理のデータ書込みにおいて、前記不揮発性記憶装置に対して、前記ファイルを構成するデータを書き込むとともに、該データに関して前記ファイルシステムが管理する関連情報を書き込むファイル管理ステップと、
を備えるメモリアクセス方法をコンピュータに実行させるプログラム。
【請求項２１】
不揮発性メモリを備えた不揮発性記憶装置に対しデータの書込み／読出しを行うメモリアクセス装置に用いられる集積回路であって、
ファイルシステムが管理する前記不揮発性記憶装置に記録されたファイルについて、該ファイルのみを構成するデータの読出し指示、および、前記不揮発性記憶装置へ該読み出したデータを変更することなく書込み指示をすることでリフレッシュ処理を指示するリフレッシュ制御部と、
前記リフレッシュ処理のデータ書込みにおいて、前記不揮発性記憶装置に対して、前記ファイルを構成するデータを書き込むとともに、該データに関して前記ファイルシステムが管理する関連情報を書き込むファイル管理部と、
を備える集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の書き換え可能な不揮発性メモリをデータ記憶媒体として有する半導体メモリカード、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の不揮発性記憶装置に記録されるファイルを管理するファイルシステムと、ファイルシステムによるデータ管理機能を有し、不揮発性記憶装置に対し、書込み、読出しを行うメモリアクセス装置と、さらに、メモリアクセス装置と不揮発性記憶装置とを有する不揮発性記憶システムに関するものである。
【背景技術】
【０００２】
フラッシュメモリ等の書き換え可能な不揮発性メモリを備えた不揮発性記憶装置は、半導体メモリカード、ＳＳＤを中心に広く用いられており、そして、このような不揮発性記憶装置とデジタルカメラやパーソナルコンピュータ等と組み合わせた不揮発性記憶システムの需要が高まっている。
一般に、メモリカードやＳＳＤは、データを記憶するフラッシュメモリと、それを制御するメモリコントローラとから構成されている。メモリコントローラは、デジタルカメラ等のアクセス装置からの読み書き指示に従って、フラッシュメモリへのデータの読み書きを制御するデバイスである。通常、フラッシュメモリに対しては、ディフェクトマネージメント（欠陥制御）、ウェアレベリング（書換え回数の平準化）、ＥＣＣによる誤り訂正処理等の制御が必要であり、これらの制御をメモリコントローラが担っている。フラッシュメモリは、代表的なものにＮＡＮＤ型フラッシュメモリがある。
【０００３】
近年、フラッシュメモリは、半導体製造プロセスの微細化やメモリセルの多値化により、データ保持期間が短くなる傾向にあり、問題である。
この課題に対し、例えば特許文献１に開示された方法がある。この方法によると、フラッシュメモリに記録されたデータをフラッシュメモリの記録単位ごとにフラッシュメモリから読み出し、再度フラッシュメモリに書き込むという「リフレッシュ」を実施することで、不揮発性記憶装置のデータ保持期間をフラッシュメモリ単体のデータ保持期間より延長することができる。
【特許文献１】特開平８−１４７９８８号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら上記従来の方法では、不揮発性記憶装置が有するメモリコントローラがリフレッシュに対応している必要があり、メモリコントローラがリフレッシュに対応していない場合、データ保持期間を不揮発性メモリ単体のデータ保持期間より延長することができない。
また、上記従来の方法では、リフレッシュの時間管理のために、不揮発性記憶装置が時計を具備するか、または、不揮発性記憶装置が時刻情報をメモリアクセス装置から取得する必要がある。
また、上記従来の方法では、時間情報に基づいてリフレッシュを実施する場合、不揮発性記憶装置の記録単位ごとに書込み時刻（時間情報）を記録する必要がある。
また、上記従来の方法では、不揮発性メモリに対するリフレッシュ実行機能を実現させる場合、不揮発性メモリに既にデータが格納されていたとしても、不揮発性記憶装置を、不揮発性メモリに対するリフレッシュ実行機能を備える不揮発性記憶装置に置き換える必要がある。
【０００５】
また、不揮発性記憶装置に記録するデータは、通常、ファイルとしてファイルシステムにより管理されるが、上記従来の方法では、不揮発性記憶装置に記録するファイルの重要度に基づいてリフレッシュすべきファイルを選択することができない。
本発明は、上記問題点に鑑み、メモリアクセス装置がファイル単位でリフレッシュを実施することで、不揮発性記憶装置のメモリコントローラがリフレッシュに対応していなくても、データ保持期間を不揮発性メモリ単体のデータ保持期間より長くすることができるメモリアクセス装置、不揮発性記憶装置、不揮発性記憶システム、メモリアクセス方法、プログラムおよび集積回路を提供することを目的とする。
さらに、本発明は、リフレッシュの時間管理のために、不揮発性記憶装置が時計を具備する必要がなく、また、不揮発性記憶装置が時刻情報をメモリアクセス装置から取得する必要もない。
【０００６】
さらに、本発明は、時間管理でリフレッシュを実施する場合、ファイルシステムがファイル作成日時をリフレッシュで用いる書込み時刻と共用すると、リフレッシュ用に新たに書込み時刻を追加する必要がない。
また、そのようにした場合、本発明のファイルシステムをメモリアクセス装置にインストールし、既存のファイルシステムと置き換えるだけで、既にデータが格納されている不揮発性メモリに対してもリフレッシュを導入することが可能で、不揮発性記憶装置を置き換える必要がない。
さらに、本発明は、ファイルに重要度情報を持たせることで、ファイルの重要度に基づいたリフレッシュを実施することを目的とする。
【課題を解決するための手段】
【０００７】
第１の発明は、不揮発性メモリを備えた不揮発性記憶装置に対しデータの書込み／読出しを行うメモリアクセス装置であって、リフレッシュ制御部と、ファイル管理部と、を備える。
リフレッシュ制御部は、ファイルシステムが管理する不揮発性記憶装置に記録されたファイルについて、該ファイルのみを構成するデータの読出し指示、および、不揮発性記憶装置へ該読み出したデータを変更することなく書込み指示をすることでリフレッシュ処理を指示する。ファイル管理部は、リフレッシュ処理のデータ書込みにおいて、不揮発性記憶装置に対して、ファイルを構成するデータを書き込むとともに、該データに関してファイルシステムが管理する関連情報を書き込む。
このメモリアクセス装置では、リフレッシュ制御部が、ファイルシステムが管理する不揮発性記憶装置に記録されたファイルについて、該ファイルのみを構成するデータの読出し指示、および、不揮発性記憶装置へ該読み出したデータを変更することなく書込み指示をすることでリフレッシュ処理を指示する。
【０００８】
これにより、ファイル単位で不揮発性記憶装置上のデータの読出し／書込み指示を行うことができるので、所定のファイルシステムで定義されるファイル単位でリフレッシュ処理を実行することができる。なお、「ファイル単位のリフレッシュ処理」とは、ファイルを構成するデータの一部に対して実行されるリフレッシュ処理も含む概念である。たとえば、ファイルサイズの大きなファイルに対して、そのファイルを構成する一部分のデーに対して行うリフレッシュ処理を行うようにしてもよく、この場合のリフレッシュ処理も「ファイル単位のリフレッシュ処理」の概念に含まれる。
また、「ファイルを構成するデータに関して前記ファイルシステムが管理する関連情報」とは、ファイルシステムが管理する論理的な記憶領域において、記憶領域の位置に関する情報（例えば、ＦＡＴ）や、該データを有するファイルの書込み時刻、更新時刻、アクセス時刻、ファイルサイズ等の書誌事項の各種情報（例えば、Ｄｉｒｅｃｔｏｒｙ  Ｅｎｔｒｙ）等の、ファイルシステムがファイルを管理する上で、ファイルデータ以外に用いる情報を意味する。
【０００９】
第２の発明は、第１の発明であって、不揮発性記憶装置に記録されているファイルの付加情報に基づいてリフレッシュ処理の対象となるファイルを選択し、該選択されたファイルのファイル識別情報をリフレッシュ制御部に通知するファイル選択部をさらに備える。リフレッシュ制御部は、ファイル選択部から通知されたファイル識別情報により特定されるファイルについてリフレッシュ処理を指示する。ファイル管理部は、不揮発性記憶装置に対して、さらに付加情報を書き込む。
これにより、ファイルの付加情報に基づいて、リフレッシュ処理の対象となるファイルを選択することができる。
なお、「ファイルの付加情報」とは、ファイルのデータまたはシステム情報のデータをリフレッシュする際に、対象となるファイルの選択やリフレッシュの要否判断を行う際の判断材料となる各種の情報を有する情報のことをいう。この情報としては、例えば、ファイルが直前に記録された記録時刻、ファイルの重要度を示す情報、リフレッシュの対象外を意図するフラグ、リフレッシュが実行された回数等がある。これらの情報は、専用に設けてもよいし、ファイルシステムが管理するファイルの各種情報を利用するものであってもよい。
【００１０】
第３の発明は、不揮発性メモリを備えた不揮発性記憶装置に対しデータの書込み／読出しを行うメモリアクセス装置であって、リフレッシュ制御部と、ファイル選択部と、ファイル管理部と、を備える。
リフレッシュ制御部は、不揮発性記憶装置に記録されているシステム情報を構成するデータの読出し指示と、その後、不揮発性記憶装置へ該読出したデータの書込み指示をすることでリフレッシュ処理を指示する。ファイル選択部は、不揮発性記憶装置に記録されているシステム情報の付加情報に基づいてリフレッシュ制御部へ、該システム情報のリフレッシュ処理を通知する。ファイル管理部は、リフレッシュ処理のデータ書込みにおいて、不揮発性記憶装置に対して、システム情報を構成するデータを書き込むとともに、該システム情報の付加情報を書き込む。
【００１１】
これにより、システム情報のリフレッシュ処理を行うことができる。
なお、「システム情報」とは、ファイルシステムがデータを管理する情報以外の情報を意図する。例えば、記憶装置に記録されているＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）やパーティションテーブル等の情報が「システム情報」に該当する。
また、「システム情報の付加情報」とは、ファイルのデータまたはシステム情報のデータをリフレッシュする際に、対象となるファイルの選択やリフレッシュの要否判断を行う際の判断材料となる各種の情報を有する情報のことをいう。この情報としては、例えば、ファイルが直前に記録された記録時刻、ファイルの重要度を示す情報、リフレッシュの対象外を意図するフラグ、リフレッシュが実行された回数等がある。これらの情報は、専用に設けてもよいし、ファイルシステムが管理するファイルの各種情報を利用するものであってもよい。
【００１２】
第４の発明は、第２の発明であって、リフレッシュ制御部は、ファイルを構成するデータのリフレッシュ処理の書込み指示において、該データを不揮発性記憶装置から読み出した領域と同じ領域に再度書き込むようファイル管理部に指示する。
第５の発明は、第３の発明であって、リフレッシュ制御部は、システム情報を構成するデータのリフレッシュ処理の書込み指示において、該データを不揮発性記憶装置から読み出した領域と同じ領域に再度書き込むようファイル管理部に指示する。
第６の発明は、第２の発明であって、リフレッシュ制御部は、ファイルを構成するデータのリフレッシュ処理の書込み指示において、該データを不揮発性記憶装置から読み出した領域と異なる領域に再度書き込むようファイル管理部に指示する。
第７の発明は、第１、第２、第４、第６の発明のいずれかであって、リフレッシュ制御部は、ファイル管理部に対して、ファイルの分割データを不揮発性記憶装置から読み出し、読み出した分割データを、再度不揮発性記憶装置に書き込む動作を繰り返すように指示することで、ファイル全体に対して、リフレッシュ処理の指示を行う。
【００１３】
これにより、ファイルが分割データにより構成される場合であっても、確実に、ファイル単位のリフレッシュ処理を行うことができる。
なお、「分割データ」として、例えば、クラスタが挙げられる。
第８の発明は、第２、第４、第６の発明のいずれかであって、ファイル選択部は、不揮発性記憶装置の初期化処理時に、リフレッシュ処理の対象となるファイルを選択し、該選択されたファイルのファイル識別情報をリフレッシュ制御部に通知する。
これにより、不揮発性記憶装置の初期化時に、リフレッシュ処理を行うことができる。なお、「不揮発性記憶装置の初期化時」には、メモリアクセス装置の起動時、メモリアクセス装置および不揮発性記憶装置により構成される不揮発性記憶システムの起動時、および、メモリアクセス装置に不揮発性記憶装置が装着され、不揮発性記憶システムが動作する状態となった時等が含まれるものとする。
【００１４】
第９の発明は、第２、第４、第６の発明のいずれかであって、ファイル選択部は、メモリアクセス装置が外部からの指示により動作する以外の空き時間に、リフレッシュ処理の対象となるファイルを選択し、該選択されたファイルのファイル識別情報をリフレッシュ制御部に通知する。
これにより、いわゆるシステム空き時間（例えば、メモリアクセス装置が外部からの指示された処理を実行していない時間）に、リフレッシュ処理を行うことができるので、他の処理を妨げることなく、効率的に、ファイル単位のリフレッシュ処理を行うことができる。
第１０の発明は、第２、第４、第６、第８、第９の発明のいずれかであって、時間情報を保持する時計部をさらに備える。
【００１５】
付加情報は、不揮発性記憶装置にデータ書込みを行った時刻である書込み時刻を含む。ファイル管理部は、不揮発性記憶装置にファイルを構成するデータを書き込む時点の時刻を示す時間情報を時計部から取得し、取得した時間情報を付加情報の書込み時刻とする。ファイル選択部は、現在時刻を示す時間情報を時計部から取得し、現在時刻を示す時間情報と付加情報の書込み時刻とから算出した経過時間を、所定の基準時間と比較し、比較した結果に基づいて、リフレッシュ処理を通知する。
このメモリアクセス装置では、ファイルを不揮発性記憶装置に書き込んだ時刻と、現在時刻との間の経過時間に基づいて、リフレッシュ処理を行うので、より精度良く、ファイル単位のリフレッシュ処理を行うことができる。
第１１の発明は、第３または第５の発明であって、時間情報を保持する時計部をさらに備える。付加情報は、不揮発性記憶装置にシステム情報を構成するデータ書込みを行った時刻である書込み時刻を含む。ファイル管理部は、不揮発性記憶装置にリフレッシュ処理の対象となるデータを書き込む時点の時刻を示す時間情報を時計部から取得し、取得した時間情報を付加情報の書込み時刻とする。ファイル選択部は、現在時刻を示す時間情報を時計部から取得し、現在時刻を示す時間情報と付加情報の書込み時刻とから算出した経過時間を、所定の基準時間と比較し、比較した結果に基づいて、リフレッシュ処理を通知する。
【００１６】
このメモリアクセス装置では、システム情報を構成するデータを不揮発性記憶装置に書き込んだ時刻と、現在時刻との間の経過時間に基づいて、リフレッシュ処理を行うので要否判断を行うので、より精度良く、システム情報のリフレッシュ処理を行うことができる。
第１２の発明は、第１０の発明であって、付加情報の書込み時刻は、ファイルシステムにより定義されるファイル作成日時を示す情報であって、ファイルごとに管理されるファイル作成又は更新日時を示す情報として、管理される。
このメモリアクセス装置では、ファイルシステムにより定義され、既に用意されている情報である「ファイル作成日時」を共用して、付加情報の書込み時刻を、不揮発性記憶装置に対して書き込むことができる。このため、このメモリアクセス装置では、従来のファイルシステムに対して、別途、新たなエントリを設ける必要もなく、上位互換を実現しつつ、ファイル単位のリフレッシュ処理を行うことができる。
【００１７】
第１３の発明は、第２、第４、第６、第８から第１０、第１２の発明のいずれかであって、付加情報は、ファイルの重要度情報を含み、ファイル選択部は、リフレッシュ処理の対象となるファイルを選択する順番を、重要度情報に基づき決定する。
これにより、ファイルの重要度を考慮して、ファイル単位のリフレッシュ処理を行うことができる。なお、「重要度情報」は、不揮発性記憶システムにより、定義されるものであってもよく、また、ユーザにより定義されるものであってもよい。
第１４の発明は、第１から第１３のいずれかの発明であるメモリアクセス装置と、不揮発性記憶装置と、を備える。不揮発性記憶装置は、不揮発性メモリと、不揮発性メモリを制御するメモリコントローラと、を有する。
第１５の発明は、外部からの要求によりデータの書込み／読出しを行う不揮発性記憶装置であって、不揮発性メモリと、メモリコントローラと、リフレッシュ制御部と、ファイル管理部と、を備える。
【００１８】
メモリコントローラは、不揮発性メモリを制御する。リフレッシュ制御部は、ファイルシステムにより管理される、不揮発性メモリに記録されたファイルについて、該ファイルのみを構成するデータの読出し指示、および、不揮発性メモリへ該読み出したデータを変更することなく書込み指示をすることでリフレッシュ処理を指示する。ファイル管理部は、リフレッシュ処理のデータ書込みにおいて、不揮発性メモリに対して、ファイルを構成するデータを書き込むとともに、該データに関してファイルシステムが管理する関連情報を書き込む。
これにより、ファイル単位で不揮発性記憶装置上のデータの読出し／書込み指示を行うことができるので、所定のファイルシステムで定義されるファイル単位でリフレッシュ処理を実行することができる。
【００１９】
この不揮発性記憶装置では、リフレッシュ制御部が、ファイル単位で不揮発性メモリ上のデータの読出し／書込み指示を行うことができるので、所定のファイルシステムで定義されるファイル単位でリフレッシュ処理を実行することができる。
これにより、データ保持期間を不揮発性メモリ単体のデータ保持期間よりも長く（延長）することができる。
なお、「ファイル単位のリフレッシュ処理」とは、ファイルを構成するデータの一部に対して実行されるリフレッシュ処理も含む概念である。たとえば、ファイルサイズの大きなファイルに対して、そのファイルを構成する一部分のデーに対して行うリフレッシュ処理を行うようにしてもよく、この場合のリフレッシュ処理も「ファイル単位のリフレッシュ処理」の概念に含まれる。
【００２０】
また、「ファイルを構成するデータに関して前記ファイルシステムが管理する関連情報」とは、ファイルシステムが管理する論理的な記憶領域において、記憶領域の位置に関する情報（例えば、ＦＡＴ）や、該データを有するファイルの書込み時刻、更新時刻、アクセス時刻、ファイルサイズ等の書誌事項の各種情報（例えば、Ｄｉｒｅｃｔｏｒｙ  Ｅｎｔｒｙ）等の、ファイルシステムがファイルを管理する上で、ファイルデータ以外に用いる情報を意味する。
第１６の発明は、第１５の発明であって、不揮発性メモリに記録されているファイルの付加情報に基づいてリフレッシュ処理の対象となるファイルを選択し、該選択されたファイルのファイル識別情報をリフレッシュ制御部に通知するファイル選択部をさらに備える。リフレッシュ制御部は、ファイル選択部から通知されたファイル識別情報により特定されるファイルについてリフレッシュ処理を指示する。ファイル管理部は、不揮発性メモリに対して、さらに付加情報を書き込む。
【００２１】
これにより、ファイルの付加情報に基づいて、リフレッシュ処理の対象となるファイルを選択することができる。
第１７の発明は、第１６の発明であって、時間情報を保持する時計部をさらに備える。付加情報は、不揮発性メモリにデータ書込みを行った時刻である書込み時刻を含む。ファイル管理部は、不揮発性メモリにファイルを構成するデータを書き込む時点の時刻を示す時間情報を時計部から取得し、取得した時間情報を付加情報の書込み時刻とする。ファイル選択部は、現在時刻を示す時間情報を時計部から取得し、現在時刻を示す時間情報と付加情報の書込み時刻とから算出した経過時間を、所定の基準時間と比較し、比較した結果に基づいて、リフレッシュ処理を通知する。
この不揮発性記憶装置では、ファイルを不揮発性記憶装置に書き込んだ時刻と、現在時刻との間の経過時間に基づいて、リフレッシュ処理を行うので、より精度良く、ファイル単位のリフレッシュ処理を行うことができる。
【００２２】
第１８の発明は、第１６の発明であって、時間情報を外部から取得する時間取得部をさらに備える。付加情報は、不揮発性メモリにデータ書込みを行った時刻である書込み時刻を含む。ファイル管理部は、不揮発性メモリにファイルを構成するデータを書き込む時点の時刻を示す時間情報を時間取得部を介して外部から取得し、取得した時間情報を付加情報の書込み時刻とする。ファイル選択部は、現在時刻を示す時間情報を時間取得部を介して外部から取得し、現在時刻を示す時間情報と付加情報の書込み時刻とから算出した経過時間を、所定の基準時間と比較し、比較した結果に基づいて、リフレッシュ処理を通知する。
これにより、時計取得部が内部に時計を持たない場合であっても、外部から時間情報を取得することで、ファイルを不揮発性記憶装置に書き込んだ時刻と、現在時刻との間の経過時間に基づいて、リフレッシュ処理を行うことができる。
【００２３】
第１９の発明は、不揮発性メモリを備えた不揮発性記憶装置に対しデータの書込み／読出しを行うメモリアクセス方法であって、リフレッシュ制御ステップと、ファイル管理ステップと、を備える。
リフレッシュ制御ステップでは、ファイルシステムが管理する不揮発性記憶装置に記録されたファイルについて、該ファイルのみを構成するデータの読出し指示、および、不揮発性記憶装置へ該読み出したデータを変更することなく書込み指示をすることでリフレッシュ処理を指示する。ファイル管理ステップでは、リフレッシュ処理のデータ書込みにおいて、不揮発性記憶装置に対して、ファイルを構成するデータを書き込むとともに、該データに関してファイルシステムが管理する関連情報を書き込む。
これにより、第１の発明と同様の効果を奏するメモリアクセス方法を実現することができる。
【００２４】
第２０の発明は、不揮発性メモリを備えた不揮発性記憶装置に対しデータの書込み／読出しを行うメモリアクセス方法をコンピュータに実行させるプログラムである。メモリアクセス方法は、リフレッシュ制御ステップと、ファイル管理ステップと、を備える。
リフレッシュ制御ステップでは、ファイルシステムが管理する不揮発性記憶装置に記録されたファイルについて、該ファイルのみを構成するデータの読出し指示、および、不揮発性記憶装置へ該読み出したデータを変更することなく書込み指示をすることでリフレッシュ処理を指示する。ファイル管理ステップでは、リフレッシュ処理のデータ書込みにおいて、不揮発性記憶装置に対して、ファイルを構成するデータを書き込むとともに、該データに関してファイルシステムが管理する関連情報を書き込む。
これにより、第１の発明と同様の効果を奏するメモリアクセス方法をコンピュータに実行させるプログラムを実現することができる。
【００２５】
第２１の発明は、不揮発性メモリを備えた不揮発性記憶装置に対しデータの書込み／読出しを行うメモリアクセス装置に用いられる集積回路であって、リフレッシュ制御部と、ファイル管理部と、を備える。
リフレッシュ制御部は、ファイルシステムが管理する不揮発性記憶装置に記録されたファイルについて、該ファイルのみを構成するデータの読出し指示、および、不揮発性記憶装置へ該読み出したデータを変更することなく書込み指示をすることでリフレッシュ処理を指示する。ファイル管理部は、リフレッシュ処理のデータ書込みにおいて、不揮発性記憶装置に対して、ファイルを構成するデータを書き込むとともに、該データに関してファイルシステムが管理する関連情報を書き込む。
これにより、第１の発明と同様の効果を奏するメモリアクセス装置に用いられる集積回路を実現することができる。
【発明の効果】
【００２６】
本発明によれば、メモリアクセス装置がファイル単位でリフレッシュを実施することで、不揮発性記憶装置のメモリコントローラがリフレッシュに対応していなくても、データ保持期間を不揮発性メモリ単体のデータ保持期間より長くすることができる
【発明を実施するための最良の形態】
【００２７】
本発明の実施形態について、図面を用いて説明する。
＜１．１：不揮発性記憶システムの構成＞
図１は、本発明の第１実施形態における不揮発性記憶システム１０１の概略構成図である。
図１に示すように、不揮発性記憶システム１０１は、メモリアクセス装置１０２と、不揮発性記憶装置１０３とを備える。
（１．１．１：メモリアクセス装置の構成）
メモリアクセス装置１０２は、アドレスを指定することで、不揮発性記憶装置１０３にデータを書き込んだり、不揮発性記憶装置１０３からデータを読み出したりする機能を有している。
【００２８】
メモリアクセス装置１０２は、ファイルシステムによりファイル管理を行うファイル制御部１１０と、時計部１０７と、を備える。そして、ファイル制御部１１０は、ファイル管理部１０４と、ファイル選択部１０５と、リフレッシュ制御部１０６とを備える。
ファイル管理部１０４は、不揮発性記憶装置１０３に対して、データ、情報等の読出し／書込みを行う。ファイル管理部１０４が不揮発性記憶装置１０３に対して読出し／書込みを行うデータ、情報としては、ファイルデータ、ファイルとメモリ領域との対応関係、システム情報、ファイル識別情報、および付加情報等がある。
ファイル管理部１０４は、不揮発性記憶装置１０３に対して、書込み処理を行う場合、付加情報に、重要度情報と、時計部１０７から取得した現在時刻と、を含める。重要度情報は、ユーザが、外部インターフェース（不図示）を介して、メモリアクセス装置１０２に入力することで設定した情報でも良いし、メモリアクセス装置１０２内でファイルの内容に基づいて、メモリアクセス装置１０２が決定した情報でも良い。
【００２９】
ファイル選択部１０５は、ファイル識別情報と付加情報とをファイル管理部１０４から受け取り、付加情報内の重要度情報から、重要度の高いファイルを優先的に選択し、そして、ファイルのリフレッシュ要否判断の際、時計部１０７から現在時刻を取得し、付加情報内の書込み時刻からの経過時間を計算し、経過時間が基準時間を超えていた場合、「リフレッシュ必要」と判断し、リフレッシュ制御部１０６にファイル識別情報を渡す。
また、ファイル選択部１０５は、システム情報のリフレッシュ要否判断の際には、ファイル管理部１０４から付加情報を受け取り、時計部１０７から現在時刻を取得し、付加情報内の書込み時刻からの経過時間を計算し、経過時間が基準時間を超えていた場合、「リフレッシュ必要」と判断し、リフレッシュ制御部１０６にシステム情報リフレッシュ通知を渡す。
【００３０】
リフレッシュ制御部１０６は、ファイル選択部１０５からファイル識別情報またはシステム情報リフレッシュ通知を受け取ると、該当するファイルまたはシステム情報の「リフレッシュ」を行う。
具体的には、「リフレッシュ」は、リフレッシュ制御部１０６がファイル管理部１０４に読出し指示と再書込み指示とを行うことで実施され、これにより、不揮発性記憶装置１０３内のデータが書き直される。再書込みの際、ファイル管理部１０４は、時計部１０７から現在時刻（時間情報）を取得し、付加情報内の書込み時刻を更新した後、不揮発性記憶装置１０３に再書込みを行う。
ここで、メモリアクセス装置１０２のファイル制御部１１０をソフトウェアにより実現してもよい。例えば、メモリアクセス装置１０２に、ＣＰＵ、ＲＯＭ、ＲＡＭ等をバス接続した構成を設け、ファイル制御部１１０の機能を実現するプログラムをＲＯＭに記憶しておき、それをＣＰＵにより、ＲＡＭを用いながら実行させることにより、ファイル制御部１１０の機能を実現するようにしてもよい。この場合、本実施形態の機能（ファイル単位でのリフレッシュ機能）を追加したプログラムをメモリアクセス装置１０２にインストールするだけで、従来のファイルシステム（ファイル単位でのリフレッシュ機能を持たないファイルシステム）と互換性を保ったまま、不揮発性記憶装置１０３に対して再フォーマット（不揮発性記憶装置１０３が管理するアドレス空間の再フォーマット）をすることなく、本実施形態の機能（ファイル単位でのリフレッシュ機能）を実現することできる。
【００３１】
（１．１．２：不揮発性記憶装置の構成）
不揮発性記憶装置１０３は、メモリコントローラ１０８と不揮発性メモリ１０９とを備える。
不揮発性メモリ１０９は、電源を切ってもデータを保持し続けるメモリで、主なものとして、フラッシュメモリにより実現される。不揮発性メモリ１０９として、データ保持期間が十分でないフラッシュメモリが用いられている場合、本実施形態に係る不揮発性記憶システム１０１で実施する「リフレッシュ」により、データ保持期間を長期化させることができるので、特に有効である。
メモリコントローラ１０８は、メモリアクセス装置１０２から書込み指示があると、アドレスおよびデータを受け取り、不揮発性メモリ１０９上の対応するアドレスにデータを書き込む。また、メモリアクセス装置１０２から読出し指示があると、メモリコントローラ１０８は、メモリアクセス装置１０２からアドレスを受け取り、不揮発性メモリ１０９上の対応するアドレスに存在するデータを読み出し、読み出したデータをメモリアクセス装置１０２に出力する。不揮発性メモリ１０９がフラッシュメモリである場合、通常、メモリコントローラ１０８は、ディフェクトマネージメント（欠陥制御）、ウェアレベリング（書換え回数の平準化）、ＥＣＣによる誤り訂正処理等を実行する。そのため、メモリコントローラ１０８は、アドレス変換処理を実行する。具体的には、メモリコントローラ１０８は、メモリアクセス装置１０２が不揮発性記憶装置１０３に対して指定するアドレス（論理アドレス）を、メモリコントローラ１０８が不揮発性メモリ１０９に対して指定するときのアドレス（物理アドレス）に変換する。メモリコントローラ１０８がこのようなアドレス変換機能を有していることにより、不揮発性メモリ１０９内のデータの格納方法によらず、不揮発性記憶装置１０３は、メモリアクセス装置１０２に対して、連続的なアドレス空間（連続するアドレスを有する論理アドレス空間）を提供することができる。
【００３２】
≪不揮発性記憶装置内のデータの配置図（論理アドレス空間）≫
次に、不揮発性記憶装置内のデータの配置図（論理アドレス空間）について、説明する。
図２は、本発明の第１実施形態に係る不揮発性記憶装置１０３内のデータの配置図（論理アドレス空間）を模式的に示した図である。
不揮発性記憶装置１０３は、「０」から始まる連続的なアドレスで領域（アドレス領域）を指定することができる。
システム領域２０１は、不揮発性記憶装置１０３のアドレス０に配置され、システム情報が格納される。システム情報には、不揮発性記憶装置１０３の全メモリ容量、システム領域２０１のサイズ、ファイル管理テーブル２０２のサイズ、ルートディレクトリ領域２０３のサイズ、クラスタ２０４のサイズが含まれる。これらの情報は、不揮発性記憶装置１０３に対してフォーマットを行うときに書き込まれるが、通常、再フォーマットしない限り、ほとんど書き換える必要がない。そのため、本実施形態では、システム情報に付加情報を追加し、それに基づきシステム領域２０１のリフレッシュを実施するようにしている。
【００３３】
ファイル管理テーブル２０２は、図２に示すように、システム領域２０１の直後に配置され、ファイル管理テーブル２０２には、ファイルデータが格納されるクラスタ２０４のリンク情報が格納される。ファイル管理テーブル２０２により、ファイルと領域（アドレス領域）との対応関係が明らかになる。また、ファイル管理テーブル２０２を参照することで、どのクラスタ２０４が空きかが分かる。
ルートディレクトリ領域２０３は、ファイル管理テーブル２０２の直後に配置される。
一般にファイルシステムは、ファイルやディレクトリを複数格納するディレクトリにより階層化して管理を行う。階層構造の頂点に位置するディレクトリを「ルートディレクトリ」と呼び、それより下位に位置するディレクトリを「サブディレクトリ」と呼ぶ。ルートディレクトリ領域２０３には、ルートディレクトリに存在するファイルやディレクトリのエントリが複数格納される。ルートディレクトリのエントリに新たなサブディレクトリが追加されると、サブディレクトリに存在するエントリを格納するために、空きのクラスタ２０４がサブディレクトリ領域として割り当てられる。さらに、そのサブディレクトリのエントリに新たなサブディレクトリが追加されると以降、同様にして空きのクラスタ２０４が割り当てられていく。
【００３４】
クラスタ２０４は、ルートディレクトリ領域２０３の直後から不揮発性記憶装置１０３の論理アドレス空間の最終領域まで複数配置され、ファイルデータが格納されるか、または、サブディレクトリ領域としてサブディレクトリのエントリが格納される。
≪ファイル管理テーブル≫
次に、本実施形態に係るファイル管理テーブルの構成について、説明する。
図３は、本発明の第１実施形態に係るファイル管理テーブルの構成図である。
ファイル管理テーブル内の値が０ｘ００００の場合、そのクラスタ番号は、「空きクラスタ」であることを示している。ファイル管理テーブル内の値が０ｘ０００２からＭＡＸ（クラスタ番号の最大値）までの場合、そのクラスタ番号は「使用中」であることを示しており、その値は、次のクラスタ番号を示しており、ファイル管理テーブル内の値が０ｘＦＦＦＦの場合、そのクラスタ番号は、ファイルの最終クラスタであることを示している。
【００３５】
図３中のファイル管理テーブルは、ファイル“ＡＢＣ”とファイル“ＸＹＺ”が存在している場合の例を示している。
ファイル“ＡＢＣ”の先頭クラスタは、０ｘ００１０であり、ファイル管理テーブルのクラスタ番号０ｘ００１０の内容を参照すると、そこに格納されている値が０ｘ００１１であることが分かる。つまり、ファイル“ＡＢＣ”の２番目のクラスタは、０ｘ００１１である。
次に、ファイル管理テーブルのクラスタ番号０ｘ００１１の内容を参照すると、そこに格納されている値が０ｘ００１３であることが分かる。つまり、ファイル“ＡＢＣ”の３番目のクラスタは、０ｘ００１３である。
次に、ファイル管理テーブルのクラスタ番号０ｘ００１３の内容を参照すると、そこに格納されている値が０ｘＦＦＦＦであることが分かる。これは、クラスタ０ｘ００１３がファイル“ＡＢＣ”の最終クラスタであることを意味する。
【００３６】
このようにして、ファイル管理テーブル２０２により、ファイル“ＡＢＣ”は、クラスタ０ｘ００１０、０ｘ００１１、０ｘ００１３から構成されていることが分かる。
同様にして、ファイル“ＸＹＺ”は、クラスタ０ｘ００１２、０ｘ００１５から構成されていることが分かる。
また、ファイル管理テーブルのクラスタ番号０ｘ００１４の内容を参照すると、そこに格納されている値が０ｘ００００であることが分かる。これは、クラスタ０ｘ００１４が空きクラスタであることを意味する。通常、ファイル管理テーブルは、不揮発性記憶装置１０３に新たなファイルを書き込んだときや、ファイルが占有するクラスタが変更されるようなファイル更新を行われたときに更新される。ファイルのリフレッシュの際、ファイルを別のクラスタに書き直す場合、ファイル管理テーブルを更新する必要がある。したがって、この場合、ファイル管理テーブルは、ファイルのリフレッシュの際に同時にリフレッシュされることになる。
【００３７】
一方、ファイルのリフレッシュの際、ファイルを同じクラスタに書き直す場合、ファイル管理テーブルを更新する必要はないが、リフレッシュのために同じ内容でファイル管理テーブルを書き直すようにしてもよい。
≪ディレクトリ領域の構成≫
次に、本実施形態に係るディレクトリ領域の構成について、説明する。
図４は、本発明の第１実施形態に係るディレクトリ領域の構成図である。ルートディレクトリ領域２０３およびサブディレクトリ領域は、図４に示した構成をとる。
ルートディレクトリ領域２０３およびサブディレクトリ領域には、複数のエントリが格納されており、図４では、１つの行が１つのエントリを示している。各エントリは、エントリ種別と、ファイル名またはディレクトリ名と、ファイルまたはディレクトリの先頭クラスタ番号と、付加情報とを含む。
【００３８】
「エントリ種別」は、「０」のとき当該エントリは「ファイル」であることを示し、「１」のとき当該エントリは「サブディレクトリ」であることを示す。
「ファイル名またはディレクトリ名」は、文字列である。異なるディレクトリに同一ファイル名が存在する場合があり得るが、ルートディレクトリから続く全てのサブディレクトリ名とファイル名を特定の区切り文字を挟んで連結したパス名は、ファイルごとに唯一であり、ファイル識別情報となり得る。
「先頭クラスタ番号」は、ファイルまたはディレクトリの先頭クラスタ番号を示している。このファイルまたはディレクトリの先頭クラスタ番号により、先頭クラスタのデータが不揮発性記憶装置１０３の論理アドレス空間のどこに存在しているかが分かる。２番目以降のクラスタのデータが不揮発性記憶装置１０３の論理アドレス空間のどこに存在しているかは、ファイル管理テーブル２０２において、該当する先頭クラスタ番号からたどっていけば知ることができる。例えば、図中のファイル“ＡＢＣ”の場合、先頭クラスタのデータはクラスタ０ｘ００１０に存在し、２番目以降のクラスタのデータの所在は、ファイル管理テーブル２０２をクラスタ番号０ｘ００１０の位置からたどっていくことで知ることができる。
【００３９】
「付加情報」は、「作成日時」と、「重要度情報」とを含む。
「作成日時」は、ファイルが不揮発性記憶装置１０３に書き込まれたときの時間情報（書込み時刻）を示す。つまり、ファイルが不揮発性記憶装置１０３に書き込まれたときに、そのときの現在時刻（時間情報）が、「作成日時」として書き込まれる。そして、この「作成日時」は、外部からの要求により取得される。本実施形態では、「作成日時」をリフレッシュの時間管理にも利用するため、「作成日時」はリフレッシュ時に更新される。つまり、リフレッシュが実行された場合、「作成日時」は、当該リフレッシュが実行された時の時間情報に更新される。
「重要度情報」は、ファイルの重要度を示す値である。つまり、ファイルの重要度に応じた値が、「重要度情報」として、書き込まれる。例えば、図４では、重要度が「普通」なら「重要度情報」を「１」とし、重要度が「やや重要」なら「重要度情報」を「２」とし、重要度が「重要」なら「重要度情報」を「３」としている。
【００４０】
なお、ルートディレクトリ領域２０３およびサブディレクトリ領域のエントリには、上記以外のその他の情報が格納される場合もある。例えば、ファイルサイズがバイト単位の場合、ファイルのバイト数も格納する必要があるので、この場合、ルートディレクトリ領域２０３およびサブディレクトリ領域のエントリに、「ファイルのバイト数」を含める。
＜１．２：不揮発性記憶システムの動作＞
次に、不揮発性記憶システム１０１の動作（リフレッシュ処理）について、フローチャートを用いて説明する。
≪リフレッシュ処理のフローチャート≫
図５は、本発明の第１実施形態に係る全データのリフレッシュ処理のフローチャートである。
【００４１】
ステップＳ５０１〜Ｓ５０４：
まず、ファイル選択部１０５は、システム領域の付加情報を取得し（Ｓ５０１）、取得した付加情報を基にシステム領域のリフレッシュ判断処理を行う（Ｓ５０２）。その結果から、ファイル選択部１０５は、リフレッシュが必要か否かを判定する（Ｓ５０３）。
ファイル選択部１０５により、リフレッシュが必要でないと判定された場合（ステップＳ５０３での判定結果が「ＮＯ」の場合）、処理は、ステップＳ５０７に移行される。
一方、ファイル選択部１０５により、リフレッシュが必要であると判定された場合（ステップＳ５０３での判定結果が「ＹＥＳ」の場合）、システム領域に対するリフレッシュが実行される（Ｓ５０４）。具体的には、ファイル選択部１０５により、リフレッシュが必要であると判定された場合、ファイル選択部１０５は、リフレッシュ制御部１０６に対して、システム情報リフレッシュ通知を出力し、リフレッシュ制御部１０６は、システム情報リフレッシュ通知を受け取ると、ファイル管理部１０４に対して、システム領域の読出し指示と再書込み指示とを行う。そして、ファイル管理部１０４は、リフレッシュ制御部１０６からの読出し指示および再書込み指示に従い、不揮発性記憶装置１０３に対して、システム領域の読出しおよび再書込みを行う。これにより、システム領域のリフレッシュが実行される。
【００４２】
ステップＳ５０５、Ｓ５０６：
次に、ステップＳ５０５では、ファイル管理テーブル２０２のリフレッシュを実施するか否かを判定する。ステップＳ５０５において、リフレッシュを「実施する」と判定されるのは、次の場合である。すなわち、（１）ファイルのリフレッシュを実施する際、読み出したクラスタと同じクラスタに書き直し、かつ、（２）ファイルのリフレッシュ時にファイル管理テーブル２０２のリフレッシュを実施しない場合、つまり、別途ファイル管理テーブル２０２だけリフレッシュする必要がある場合である。
それ以外の場合は、必ずしも、ステップＳ５０５で、ファイル管理テーブル２０２をリフレッシュする必要はない。
ステップＳ５０５において、リフレッシュを「実施する」と判定した場合（ステップＳ５０５での判定結果が「ＹＥＳ」の場合）、ファイル管理テーブル２０２をリフレッシュするステップ（Ｓ５０６）を行う。
【００４３】
一方、ステップＳ５０５において、リフレッシュを「実施する」と判定しなかった場合（ステップＳ５０５での判定結果が「ＮＯ」の場合）、処理は、ステップＳ５０７に移行される。
ステップＳ５０７〜Ｓ５１３：
ステップＳ５０７以降において、各ファイル（サブディレクトリを含む）のリフレッシュ処理が実行される。
ステップＳ５０７では、ファイル選択部１０５は、他にファイルが存在するかを判定する。ステップＳ５０７において、他にファイルが存在すると判定した場合（ステップＳ５０７の判定結果が「ＹＥＳ」の場合）、ファイル選択部１０５は、ファイルを選択するステップ（Ｓ５０８）を行う。ステップＳ５０８では、ファイルまたはサブディレクトリが選択される。具体的には、ファイル選択部１０５は、付加情報内の重要度情報に基づき、重要度の高いものを優先的に選択することで、ファイルの選択を行う。
【００４４】
次に、ファイルの付加情報を取得するステップ（Ｓ５０９）が実行され、取得された付加情報を基にファイルのリフレッシュ判断処理が実行される（Ｓ５１０）。ステップＳ５１０での判定結果からリフレッシュが必要か否かが判定され（Ｓ５１１）、リフレッシュが必要であると判定された場合（ステップＳ５１１での判定結果が「ＹＥＳ」の場合）、ファイルをリフレッシュするステップが実行される（Ｓ５１２）。
一方、リフレッシュが不要であると判定された場合（ステップＳ５１１での判定結果が「ＮＯ」の場合）、処理は、ステップＳ５０７に移行される。
そして、ステップＳ５１２の後、再び、他にファイルが存在するかを判定するステップ（Ｓ５０７）に戻り、同じ手順を繰り返す。そして、ステップＳ５０８〜Ｓ５１２の処理が全てのファイルについて実施される。つまり、他にファイルが存在するかを判定するステップ（Ｓ５０７）で、他にファイルは存在しないと判定された場合（ステップＳ５０７の判定結果が「ＮＯ」となった場合）、全データのリフレッシュ処理は終了する（Ｓ５１３）。
【００４５】
≪リフレッシュ判断処理（ステップＳ５０２、Ｓ５１０）≫
次に、リフレッシュ判断処理Ｓ５０２およびＳ５１０の詳細について、図６を用いて説明する。
図６は、本発明の第１実施形態に係るリフレッシュ判断処理（Ｓ５０２、Ｓ５１０）のフローチャートである。
ステップＳ６０１では、ファイル選択部１０５は、時計部１０７から現在時刻（時間情報）を取得する。そして、ファイル選択部１０５は、現在時刻と付加情報内の作成日時とから経過時間を計算する（Ｓ６０２）。
次に、経過時間が基準時間を超えているか否かを判定するステップ（Ｓ６０３）が実行される。具体的には、ファイル選択部１０５は、時計部１０７から取得した時間情報である「現在時刻」と、ファイル管理部１０４から取得した「付加情報」の「作成日時」と、の差分をとり、「経過時間」（＝「現在時刻」−「作成日時」）を求める。そして、ファイル選択部１０５は、「経過時間」と「基準時間」との比較を行い、「経過時間」が「基準時間」を超えていた場合、「リフレッシュ必要」と判断し（Ｓ６０４）、超えていなかった場合、「リフレッシュ不要」と判断する（Ｓ６０５）。
【００４６】
そして、リフレッシュ判断処理は終了する（Ｓ６０６）。
なお、「基準時間」は、不揮発性記憶装置１０３の不揮発性メモリ１０９の特性を考慮して、設定することが好ましい。
≪ファイルのリフレッシュ処理（ステップＳ５１２）≫
次に、ファイルのリフレッシュ処理Ｓ５１２の詳細について、図７を用いて説明する。
図７は、本発明の第１実施形態に係るファイルのリフレッシュ処理（Ｓ５１２）のフローチャートである。
ステップＳ７０１〜Ｓ７０６：
ステップＳ７０１では、ファイルの終端であるか否かを判定するステップが実行される（Ｓ７０１）。ステップＳ７０１での判定結果から、まだファイルの終端でないと判定された場合（ステップＳ７０１での判定結果が「ＮＯ」の場合）、次のクラスタデータに対して、リフレッシュが実行される（Ｓ７０２〜Ｓ７０６）。
【００４７】
次に、ステップＳ７０２〜Ｓ７０６の処理について説明する。
まず、先頭クラスタ番号とファイル管理テーブルからクラスタを決定するステップが実行される（Ｓ７０２）。
次に、クラスタデータを読み出すステップが実行される（Ｓ７０３）。
そして、リフレッシュ先は異なるクラスタであるか否かを判定するステップが実行される（Ｓ７０４）。ステップＳ７０４の処理について、具体的に説明する。
ファイルのリフレッシュ処理の方法として、以下の２つがある。
第１の方法は、ファイルのリフレッシュ処理の対象となっているファイルのＦＡＴチェーンを変更しない方法である。例えば、図３のファイル“ＡＢＣ”は、クラスタ０ｘ００１０、０ｘ００１１、０ｘ００１３から構成されている。このファイル”ＡＢＣ”のＦＡＴチェーンが、クラスタ０ｘ００１０、０ｘ００１１、０ｘ００１３であり、第１の方法では、このＦＡＴチェーンを変更しないようにファイルのリフレッシュ処理を行う。
【００４８】
第２の方法は、ファイルのリフレッシュ処理の対象となっているファイルのＦＡＴチェーンを変更する方法である。例えば、図３のファイル“ＡＢＣ”について、ファイルのリフレッシュ処理を実行する場合、第２の方法では、元のＦＡＴチェーン（クラスタ０ｘ００１０、０ｘ００１１、０ｘ００１３）とは異なるＦＡＴチェーン（例えば、クラスタ０ｘ００１６、０ｘ００１７、０ｘ００１８）となるように、ファイルのリフレッシュ処理を行う。
ステップＳ７０４では、上記の第１の方法により、ファイルのリフレッシュが実行される場合、リフレッシュ先は「同一クラスタ」であると判定する。一方、上記の第２の方法により、ファイルのリフレッシュが実行される場合、リフレッシュ先は「異なるクラスタ」であると判定する。
【００４９】
リフレッシュ先が異なるクラスタの場合（ステップＳ７０４の判定結果が「ＹＥＳ」の場合）、書込み先クラスタを決定するステップ（Ｓ７０５）で異なるクラスタを選択し、選択したクラスタに、クラスタデータを書き込む（Ｓ７０６）。
一方、リフレッシュ先が同じクラスタの場合（ステップＳ７０４の判定結果が「ＮＯ」の場合）、書込み先を読み出したクラスタと同じクラスタとして、クラスタデータを書き込む（Ｓ７０６）。
なお、上記第２の方法では、ＦＡＴチェーンが変更されるので、上記第２の方法によりファイルのリフレッシュ処理が実行されると、自動的にファイル管理テーブルの内容も更新されることになる（ファイル管理テーブルもリフレッシュされることになる）。
一方、上記第１の方法では、ＦＡＴチェーンが変更されないので、別途、ファイル管理テーブルに対するリフレッシュ処理を実行するか否かを決定しなければならない。
【００５０】
なお、上記第１の方法または第２の方法のいずれにより、ファイルのリフレッシュ処理が実行されるのかは、不揮発性記憶装置１０３の特性、仕様等を考慮して決定すると効果的である。例えば、不揮発性記憶システム１０１に用いられている不揮発性記憶装置１０３で、上記第１の方法を採用した場合、ファイルが書き込まれる不揮発性メモリ１０９上の物理アドレスがメモリコントローラ１０８によりリフレッシュ前後で変更されないが、上記第２の方法を採用した場合、ファイルが書き込まれる不揮発性メモリ１０９上の物理アドレスがメモリコントローラ１０８によりリフレッシュ前後で変更されるならば、上記第２の方法の方が書換え回数が平準化され、信頼性が高まるため、ステップ７０４での判定結果は、「ＹＥＳ」となるようにした方が好ましい。
ステップＳ７０６の処理の後、再び、ファイルの終端であるかを判定するステップ（Ｓ７０１）に戻り、同じ手順を繰り返す。
【００５１】
ステップＳ７０７〜Ｓ７１２：
ファイルの終端まで来ると、次に、リフレッシュ先は、異なるクラスタかを判定するステップ（Ｓ７０７）を行う。これは、Ｓ７０４と同じ判定処理であり、ステップＳ７０７での判定結果は、ステップＳ７０４での判定結果と同じになる。
リフレッシュ先が異なるクラスタの場合（ステップＳ７０７の判定結果が「ＹＥＳ」の場合）、ファイル管理テーブルを更新するステップが実行される（Ｓ７０８）。そして、ファイル管理テーブルの更新と同時に、ファイル管理テーブルの当該ファイルに関する部分のリフレッシュが行われたことにもなる。なお、このステップは、ファイル全体のリフレッシュが終了してからではなく、クラスタをリフレッシュする度に、クラスタデータを書き込むステップ（Ｓ７０６）の直後で実施しても良い。ただし、その場合は、ファイル管理テーブルの更新頻度が高くなる。
【００５２】
一方、リフレッシュ先は異なるクラスタかを判定するステップ（Ｓ７０７）で、リフレッシュ先が同じクラスタの場合（ステップＳ７０７の判定結果が「ＮＯ」の場合）、ファイル管理テーブルのリフレッシュを実施するか否かを判定するステップが実行される（Ｓ７０９）。ファイル管理テーブルのリフレッシュを実施する場合は、ファイル管理テーブルをリフレッシュするステップが実行される（Ｓ７１０）。なお、ステップＳ７０７の判定結果が「ＮＯ」で、かつステップＳ７０９の判定結果が「ＮＯ」の場合は、別途ファイル管理テーブルをリフレッシュする必要があるが、この場合にステップＳ５０５の判定結果が「ＹＥＳ」となるようにすることで、システム領域のリフレッシュと同じタイミングでファイル管理テーブルを別途リフレッシュすることが可能となる。
その後、エントリ（ディレクトリ領域に格納されるエントリ）を更新するステップが実行される（Ｓ７１１）。このとき、付加情報内の作成日時は、ファイル管理部１０４が時計部１０７から取得した現在時刻に更新される。また、ステップＳ７０４およびＳ７０７において、リフレッシュ先が異なるクラスタだった場合、先頭クラスタ番号も更新される。
【００５３】
そして、ファイルのリフレッシュ処理は終了する（Ｓ７１２）。
なお、上記では、ファイルをクラスタ単位でリフレッシュを実行する場合について説明したが、これに限定されることはなく、任意のサイズでリフレッシュを実行するようにしてもよい。ただし、大きなサイズでリフレッシュを実施しようとすると、大きなバッファが必要となるため、適切なサイズで実施することが望ましい。また、ファイル管理上の都合から、クラスタの倍数単位でリフレッシュを実施することが手順の簡略化に有効であり、効率的である。
なお、本実施形態の不揮発性記憶システム１０１では、ファイル書込み時に記録し、外部からの要求により取得されるファイル作成日時をリフレッシュの時間管理に使用したが、ファイル作成日時とは別にリフレッシュの時間管理のための書込み時刻を付加情報内に設けてもよい。
【００５４】
また、本実施形態で示したファイル管理方式はファイルシステムの実装の一例であり、実際、ファイルシステムには、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）やＵＤＦ（Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ）等、様々な方式が存在する。本発明は、そのような異なる方式でも適用可能である。
以上のように、本実施形態の不揮発性記憶システム１０１によれば、メモリアクセス装置１０２がファイル単位で不揮発性記憶装置１０３上のデータをリフレッシュする。
これにより、不揮発性記憶装置が有するメモリコントローラがリフレッシュに対応していなくても（リフレッシュ機能を有していなくても）、データ保持期間を不揮発性メモリ単体のデータ保持期間よりも長く（延長）することができる。
さらに、本実施形態の不揮発性記憶システム１０１では、リフレッシュの時間管理のために、不揮発性記憶装置１０３が時計部を具備する必要がなく、また、不揮発性記憶装置１０３が時刻情報（時間情報）をメモリアクセス装置１０２から取得する必要もない。
【００５５】
さらに、本実施形態の不揮発性記憶システム１０１では、時間管理でリフレッシュを実施する場合、ファイル作成日時をリフレッシュで用いる書込み時刻として用いることで（共用することで）、リフレッシュ用に新たに書込み時刻を追加する必要がない（ディレクトリ領域の各エントリに、別途、「リフレッシュ用の書込み時刻」を追加する必要がない）。
さらに、本実施形態の不揮発性記憶システム１０１では、メモリアクセス装置１０２のファイル制御部１１０をソフトウェアにより実現する場合、すなわち、メモリアクセス装置１０２に、ＣＰＵ、ＲＯＭ、ＲＡＭ等をバス接続した構成を設け、ファイル制御部１１０の機能を実現するプログラムをＲＯＭに記憶しておき、それをＣＰＵにより、ＲＡＭを用いながら実行させることにより、ファイル制御部１１０の機能を実現する場合、本実施形態の機能（ファイル単位でのリフレッシュ機能）を追加したプログラムをメモリアクセス装置１０２にインストールするだけで、従来のファイルシステム（ファイル単位でのリフレッシュ機能を持たないファイルシステム）と互換性を保ったまま、不揮発性記憶装置１０３に対して再フォーマット（不揮発性記憶装置１０３が管理するアドレス空間の再フォーマット）をすることなく、本実施形態の機能（ファイル単位でのリフレッシュ機能）を実現することできる。
【００５６】
さらに、本実施形態の不揮発性記憶システム１０１では、ファイルに重要度情報を持たせることで、ファイルの重要度に基づいたリフレッシュを実施することができる。
［他の実施形態］
≪第１変形例≫
上記実施形態では、メモリアクセス装置１０２が、ファイル制御部１１０を備える場合について説明したが、ファイル制御部１１０を、不揮発性記憶装置内に設けるようにしてもよい。この場合の一例を第１変形例として、説明する。
図８に、第１変形例に係る不揮発性記憶システム１０１Ａの概略構成図を示す。
第１実施形態に係る不揮発性記憶システム１０１と同様の部分については、同一符号を付してある。
【００５７】
第１変形例に係る不揮発性記憶システム１０１Ａでは、メモリアクセス装置１０２ＡのＩＦ部１１１を介して、不揮発性記憶装置１０３Ｂのファイル制御部１１０およびメモリコントローラ１０８との通信が行われる。
不揮発性記憶システム１０１Ａでは、時計部１０７の時間情報が、ＩＦ部１１１を介して、ファイル制御部１１０のファイル管理部１０４およびファイル選択部１０５に入力される。また、重要度情報が、ＩＦ部１１１を介して、ファイル制御部１１０のファイル管理部１０４に入力される。これにより、不揮発性記憶システム１０１Ａにおいて、第１実施形態同様の入出力関係となるので、第１実施形態と同様の効果を奏することができる。
なお、図８では、ファイル制御部１１０が、メモリコントローラ１０８とは、別の機能ブロックとしているが、ファイル制御部１１０は、メモリコントローラ１０８内に設置されるものであってもよい。さらに、ファイル制御部１１０は、メモリコントローラ１０８内で、ソフトウェア（プログラム）により実現されるものであってもよい。
【００５８】
≪第２変形例≫
さらに、第１変形例に係る不揮発性記憶システム１０１Ａにおいて、メモリアクセス装置１０２Ａに設置されていた時計部１０７を、不揮発性記憶装置内に設けるようにしてもよい。この場合の一例を第２変形例として、説明する。
図９に、第２変形例に係る不揮発性記憶システム１０１Ｂの概略構成図を示す。
第２変形例に係る不揮発性記憶システム１０１Ｂにおいて、時計部１０７が不揮発性記憶装置１０３Ｂ内に設置されている点、および、メモリアクセス装置１０２Bにおいて、メモリアクセス装置１０１Ａから時計部１０７が削除されている点以外は、第１変形例に係る不揮発性記憶システム１０１Ａと同様である。第２変形例に係る不揮発性記憶システム１０１Ｂにおいても第１実施形態と同様の効果を奏することができる。
【００５９】
なお、上記実施形態で説明した不揮発性記憶システムにおいて、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
【００６０】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【００６１】
本発明のメモリアクセス装置、不揮発性記憶装置、不揮発性記憶システム、メモリアクセス方法、プログラムおよび集積回路は、データ保持期間を不揮発性メモリ単体のデータ保持期間よりも長く（延長）することができ、また、その導入も容易である。本発明は、不揮発性記憶装置を備える、または、不揮発性記憶装置が着脱可能なデジタルカメラ、デジタルビデオデッキ等のＡＶ機器、あるいはパーソナルコンピュータ用途として有益である。
【図面の簡単な説明】
【００６２】
【図１】本発明の第１実施形態における不揮発性記憶システムを示した概略構成図。
【図２】本発明の第１実施形態における不揮発性記憶装置内のデータの配置図。
【図３】本発明の第１実施形態におけるファイル管理テーブルの構成図。
【図４】本発明の第１実施形態におけるディレクトリ領域の構成図。
【図５】本発明の第１実施形態における全データのリフレッシュ処理のフローチャート。
【図６】本発明の第１実施形態におけるリフレッシュ判断処理のフローチャート。
【図７】本発明の第１実施形態におけるファイルのリフレッシュ処理のフローチャート。
【図８】本発明の第１変形例に係る不揮発性記憶システムを示した概略構成図。
【図９】本発明の第２変形例に係る不揮発性記憶システムを示した概略構成図。
【符号の説明】
【００６３】
１０１  不揮発性記憶システム
１０２  メモリアクセス装置
１０３  不揮発性記憶装置
１０４  ファイル管理部
１０５  ファイル選択部
１０６  リフレッシュ制御部
１０７  時計部
１０８  メモリコントローラ
１０９  不揮発性メモリ（フラッシュメモリ）
１１０  ファイル制御部
【図１】
2010182160.tif 000003
【図２】
2010182160.tif 000004
【図３】
2010182160.tif 000005
【図４】
2010182160.tif 000006
【図５】
2010182160.tif 000007
【図６】
2010182160.tif 000008
【図７】
2010182160.tif 000009
【図８】
2010182160.tif 000010
【図９】
2010182160.tif 000011