(57)【要約】【課題】情報記録モジュールの不揮発性メモリをファイルシステムにより領域管理する場合において、ファイルシステム管理情報の電源断対策を実現しつつ高速にファイルデータを記録すると共に、不揮発性メモリの書き換え寿命低下を防止する方法を提供する。【解決手段】電源断が発生した場合にファイルシステム管理情報を修復するための情報であるファイルログを情報記録モジュールに記録するファイルログ記録部をアクセスモジュールに設ける。また、不揮発性メモリ内にファイルログ管理情報を格納し、その情報を元に特定の物理ブロックをファイルログ格納用領域として制御するファイルログ制御部を情報記録モジュールに設ける。これらアクセスモジュールと情報記録モジュールを組み合わせ、電源断対策としてファイルデータ書き込み処理の合間にファイルログを書き込む。【選択図】図１
2009205590.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する不揮発性メモリを具備する情報記録モジュールにアクセスするアクセスモジュールであって、
前記情報記録モジュール内に格納したデータをファイルシステムにより管理するファイルシステム制御部と、
前記ファイルシステムにより管理されるファイルデータの一部を前記情報記録モジュールへ記録する際に、当該ファイルに関するファイルシステム管理情報の差分情報であるファイルログを生成し、前記情報記録モジュールに記録するファイルログ記録部と、を具備することを特徴とするアクセスモジュール。
【請求項２】
前記ファイルログは、
前記情報記録モジュール内の特定の論理アドレス領域に格納され、
前記特定の論理アドレス領域の位置は、全論理アドレス空間を第１の領域管理単位毎に区切った際の特定の１つの領域管理単位の先頭位置であり、
前記特定の論理アドレス領域の大きさは、第２の領域管理単位の大きさであることを特徴とする請求項１記載のアクセスモジュール。
【請求項３】
前記第１の領域管理単位は、
前記不揮発性メモリの物理ブロックサイズの整数倍であることを特徴とする請求項２記載のアクセスモジュール。
【請求項４】
前記第２の領域管理単位は、
前記不揮発性メモリのページサイズの整数倍であることを特徴とする請求項２記載のアクセスモジュール。
【請求項５】
前記ファイルログを記録する前記特定の論理アドレス領域に引き続く領域であり、前記特定の論理アドレスと同一の前記第１の領域管理単位内の領域は、アクセスが禁止される領域であることを特徴とする請求項２記載のアクセスモジュール。
【請求項６】
前記ファイルログは、
前記不揮発性メモリ内に格納され、
前記格納領域は論理アドレスが割り当てられないことを特徴とする請求項１記載のアクセスモジュール。
【請求項７】
データを格納する不揮発性メモリと、
前記不揮発性メモリ上に構築されたファイルシステムにおけるファイルシステム管理情報の差分情報であるファイルログを、外部のアクセスモジュールから受信し、前記不揮発性メモリ内の所定の領域に記録するファイルログ制御部と、を具備することを特徴とする情報記録モジュール。
【請求項８】
前記所定の領域は、
前記不揮発性メモリ上の特定の論理アドレス領域であり、
前記特定の論理アドレス領域の位置は、全論理アドレス空間を第１の領域管理単位毎に区切った際の特定の１つの領域管理単位の先頭位置であり、
前記特定の論理アドレス領域の大きさは、第２の領域管理単位の大きさであることを特徴とする請求項７記載の情報記録モジュール。
【請求項９】
前記第１の領域管理単位は、
前記不揮発性メモリの物理ブロックサイズの整数倍であることを特徴とする請求項８記載の情報記録モジュール。
【請求項１０】
前記第２の領域管理単位は、
前記不揮発性メモリのページサイズの整数倍であることを特徴とする請求項８記載の情報記録モジュール。
【請求項１１】
前記ファイルログを記録する前記特定の論理アドレス領域に引き続く領域であり、前記特定の論理アドレスと同一の前記第１の領域管理単位内の領域に対するアクセスを禁止することを特徴とする請求項８記載の情報記録モジュール。
【請求項１２】
前記ファイルログは、
前記不揮発性メモリ内に格納され、
前記格納領域は論理アドレスが割り当てられないことを特徴とする請求項７記載の情報記録モジュール。
【請求項１３】
前記不揮発性メモリは、
前記ファイルログを格納する領域を管理するために使用する情報であるファイルログ管理情報を格納することを特徴とする請求項７記載の情報記録モジュール。
【請求項１４】
前記所定の領域は、
前記不揮発性メモリ内の論理アドレス空間上に存在する領域であり、
前記ファイルログ管理情報は、
前記ファイルログの格納用領域として使用される領域の物理アドレスと、
前記領域内の使用済み領域に関する情報と、
前記領域に対応づけられた論理アドレスと、を含むことを特徴とする請求項１３記載の情報記録モジュール。
【請求項１５】
前記所定の領域は、
前記不揮発性メモリ内の論理アドレス空間の外部に存在する領域であり、
前記ファイルログ管理情報は、
前記ファイルログの格納用領域として使用される領域の物理アドレスと、
前記領域内の使用済み領域に関する情報と、を含むことを特徴とする請求項１３記載の情報記録モジュール。
【請求項１６】
データを格納する不揮発性メモリを具備する情報記録モジュールを制御するコントローラであって、
前記不揮発性メモリ上に構築されたファイルシステムにおけるファイルシステム管理情報の差分情報であるファイルログを、外部のアクセスモジュールから受信し、前記不揮発性メモリ内の所定の領域に記録するファイルログ制御部を具備することを特徴とするコントローラ。
【請求項１７】
前記所定の領域は、
前記不揮発性メモリ上の特定の論理アドレス領域であり、
前記特定の論理アドレス領域の位置は、全論理アドレス空間を第１の領域管理単位毎に区切った際の特定の１つの領域管理単位の先頭位置であり、
前記特定の論理アドレス領域の大きさは、第２の領域管理単位の大きさであることを特徴とする請求項１６記載のコントローラ。
【請求項１８】
前記第１の領域管理単位は、
前記不揮発性メモリの物理ブロックサイズの整数倍であることを特徴とする請求項１７記載のコントローラ。
【請求項１９】
前記第２の領域管理単位は、
前記不揮発性メモリのページサイズの整数倍であることを特徴とする請求項１７記載のコントローラ。
【請求項２０】
前記ファイルログを記録する前記特定の論理アドレス領域に引き続く領域であり、前記特定の論理アドレスと同一の前記第１の領域管理単位内の領域に対するアクセスを禁止することを特徴とする請求項１７記載のコントローラ。
【請求項２１】
前記ファイルログは、
前記不揮発性メモリ内に格納され、
前記格納領域は論理アドレスが割り当てられないことを特徴とする請求項１６記載のコントローラ。
【請求項２２】
前記不揮発性メモリは、
前記ファイルログを格納する領域を管理するために使用する情報であるファイルログ管理情報を格納することを特徴とする請求項１６記載のコントローラ。
【請求項２３】
前記所定の領域は、
前記不揮発性メモリ内の論理アドレス空間上に存在する領域であり、
前記ファイルログ管理情報は、
前記ファイルログの格納用領域として使用される領域の物理アドレスと、
前記領域内の使用済み領域に関する情報と、
前記領域に対応づけられた論理アドレスと、を含むことを特徴とする請求項２２記載のコントローラ。
【請求項２４】
前記所定の領域は、
前記不揮発性メモリ内の論理アドレス空間の外部に存在する領域であり、
前記ファイルログ管理情報は、
前記ファイルログの格納用領域として使用される領域の物理アドレスと、
前記領域内の使用済み領域に関する情報と、を含むことを特徴とする請求項２２記載のコントローラ。
【請求項２５】
情報記録モジュールと、前記情報記録モジュールにアクセスするアクセスモジュールからなる情報記録システムであって、
前記情報記録モジュールは、
データを格納する不揮発性メモリと、
前記不揮発性メモリ上に構築されたファイルシステムにおけるファイルシステム管理情報の差分情報であるファイルログを、外部のアクセスモジュールから受信し、前記不揮発性メモリ内の所定の領域に記録するファイルログ制御部と、を具備し、
前記アクセスモジュールは、
前記情報記録モジュール内に格納したデータをファイルシステムにより管理するファイルシステム制御部と、
前記ファイルシステムにより管理されるファイルデータの一部を前記情報記録モジュールへ記録する際に、当該ファイルに関するファイルシステム管理情報の差分情報であるファイルログを生成し、前記情報記録モジュールに記録するファイルログ記録部と、を具備することを特徴とする情報記録システム。
【請求項２６】
前記ファイルログは、
前記情報記録モジュール内の特定の論理アドレス領域に格納され、
前記特定の論理アドレス領域の位置は、全論理アドレス空間を第１の領域管理単位毎に区切った際の特定の１つの領域管理単位の先頭位置であり、
前記特定の論理アドレス領域の大きさは、第２の領域管理単位の大きさであることを特徴とする請求項２５記載の情報記録システム。
【請求項２７】
前記第１の領域管理単位は、
前記不揮発性メモリの物理ブロックサイズの整数倍であることを特徴とする請求項２６記載の情報記録システム。
【請求項２８】
前記第２の領域管理単位は、
前記不揮発性メモリのページサイズの整数倍であることを特徴とする請求項２６記載の情報記録システム。
【請求項２９】
前記ファイルログを記録する前記特定の論理アドレス領域に引き続く領域であり、前記特定の論理アドレスと同一の前記第１の領域管理単位内の領域は、アクセスが禁止される領域であることを特徴とする請求項２６記載の情報記録システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを不揮発性メモリに格納し、ファイルとして管理するアクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システムに関する。
【背景技術】
【０００２】
音楽コンテンツや、映像データ等のデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスク等、様々な種類が存在する。これら記録媒体の内、記録素子にフラッシュＲＯＭ等の半導体メモリを使用したメモリカードは、記録媒体の小型化が図れることから、デジタルスチルカメラや携帯電話端末等、小型の携帯機器を中心に急速に普及している。更に最近では、フラッシュＲＯＭ等の半導体メモリを機器に内蔵してハードディスクの代わりに使用するなど、従来のメモリカードのような着脱可能なリムーバブルメディアとしての用途のみならず、機器内蔵ストレージとしての用途でも半導体メモリが使用されるようになってきた。
【０００３】
このようなメモリカードや機器内蔵ストレージには、主にＮＡＮＤ型フラッシュメモリと呼ばれる半導体素子が使用されている。ＮＡＮＤ型フラッシュメモリは、既に記録されたデータを一旦消去した後、再度別のデータを記録することが可能な記録素子であり、従来のハードディスクと同様に、複数回書き換え可能な情報記録装置を構成することが可能である。
【０００４】
従来、メモリカードや機器内蔵ストレージに格納されたデータはファイルシステムにより管理されている。データをファイルシステムにより管理することで、同一のファイルシステムを解釈する機器間でデータをファイルとして共有することが可能となり、ユーザは自分の格納したデータを複数の機器間で容易に参照したり、コピーしたりすることが可能となる。
【０００５】
従来最も広く使用されているファイルシステムはＦＡＴファイルシステムと呼ばれるものである。ＦＡＴファイルシステムは、領域管理をファイルアロケーションテーブル（ＦＡＴ）と呼ばれるテーブルで一元管理するという特徴を持っており、比較的構造がシンプルで実装が容易なことから、フレキシブルディスクやＰＣのハードディスク、メモリカードなどのファイルシステムとして広く使用されている。
【０００６】
図２にＦＡＴファイルシステムの構成を示す。ＦＡＴファイルシステムではファイルアロケーションテーブル内の管理単位のビット幅の違いにより、ＦＡＴ１２、ＦＡＴ１６、ＦＡＴ３２などの種類が存在するが、ファイルアロケーションテーブルによる領域管理方法はほぼ同じであり、以下ではＦＡＴ１６を例に説明する。同図に示すように論理アドレス空間の先頭には、領域割り当て単位やファイルシステムが管理する領域の大きさ等、ファイルシステムの管理情報が格納される領域であるファイルシステム管理情報領域３０１が存在する。このファイルシステム管理情報領域３０１には、マスターブートレコード・パーティションテーブル３０３、パーティションブートセクタ３０４、ＦＡＴ（３０５、３０６）、ルートディレクトリエントリ３０７と呼ばれるファイルシステムの管理情報が含まれ、ユーザデータ領域３０２を管理するために必要な情報が各々格納されている。マスターブートレコード・パーティションテーブル３０３は、ファイルシステムが管理する論理アドレス空間上の領域を複数のパーティションと呼ばれる領域に分割して管理するための情報が格納される領域である。パーティションブートセクタ３０４は、パーティション内の領域管理単位の大きさなど、１つのパーティション内の管理情報が格納される領域である。ＦＡＴ（３０５、３０６）は、ファイルに含まれるデータの格納位置に関する情報が格納される領域であり、通常、同じ情報を持つ２つのＦＡＴ（３０５、３０６）が存在し、一方のＦＡＴ（３０５、３０６）が破損したとしても他方のＦＡＴ（３０５、３０６）によりファイルにアクセスできるよう二重化されている。ルートディレクトリエントリ３０７は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報（ディレクトリエントリ）が格納される領域である。
【０００７】
またＦＡＴファイルシステムでは、このファイルシステム管理情報領域３０１に引き続く領域にファイル本体のデータなどを格納するユーザデータ領域３０２が存在する。ユーザデータ領域３０２は、５１２バイトから３２ＫＢ程度の大きさを持つクラスタと呼ばれる管理単位毎に分割管理されており、各クラスタにはファイルに含まれるデータが格納されている。多くのデータを格納するファイルは、複数のクラスタに跨ってデータを格納しており、各クラスタ間の繋がりは、ＦＡＴ（３０５、３０６）に格納されたリンク情報により管理されている。また、ルートディレクトリ直下のディレクトリ内に存在するファイル、サブディレクトリの情報（ディレクトリエントリ）は、このユーザデータ領域３０２の一部を利用して格納される。
【０００８】
図３はＦＡＴ１６のディレクトリエントリの構成を示した図である。ディレクトリエントリ３０８は１つのファイル、ディレクトリ毎に３２バイトのディレクトリエントリ３０８が割り当てられ、ファイル、ディレクトリに関する情報を格納している。すなわち、１つのファイルやディレクトリが追加される度に３２バイトのディレクトリエントリ３０８の情報が新規に作成され、ルートディレクトリエントリ３０７の領域、あるいはユーザデータ領域３０２に記録される。ディレクトリエントリ３０８の先頭８バイトにはファイルやディレクトリの名称が格納される。続く３バイトには拡張子が格納される。続く１バイトにはファイル・ディレクトリの種別を識別するフラグや、ファイル・ディレクトリがリードオンリーか否かを識別するフラグ等の属性情報が格納される。また、ファイル・ディレクトリの最終更新日時の情報や、ファイル・ディレクトリデータの実体が格納されているクラスタの開始位置を示す開始クラスタ番号、ファイルサイズのバイト数等が格納される。このようにディレクトリエントリ３０８ではファイルの先頭データを格納したクラスタの位置に関する情報しか保持しないため、ファイルデータが複数クラスタに跨って格納される場合には、その位置情報はＦＡＴ（３０５、３０６）に保持される。すなわち、ファイルを更新する場合にはファイルデータを書き込むと共に、ディレクトリエントリ３０８、ＦＡＴ（３０５、３０６）の情報も書き込む必要がある。
【０００９】
続いて、図４を用いてＦＡＴファイルシステムにおけるファイルデータ書き込み処理手順について説明する。
（Ｓ４０１）対象ファイルのディレクトリエントリ３０８を読み出す。
（Ｓ４０２）読み出したディレクトリエントリ３０８に格納された開始クラスタ番号を取得し、ファイルデータの先頭位置を確認する。
（Ｓ４０３）ＦＡＴ（３０５、３０６）をアクセスモジュールのＲＡＭ上に読み出し、Ｓ４０２で取得したファイルデータの先頭位置から順にＲＡＭ上のＦＡＴ（３０５、３０６）内でリンクを辿り、書き込み位置のクラスタ番号を取得する。
（Ｓ４０４）ファイルデータ書き込みに際し、ファイルに新たに空き領域を割り当てる必要があるか判定する。空き領域の割り当てが必要な場合Ｓ４０５の処理に進む。空き領域の割り当てが不要な場合Ｓ４０８の処理に進む。
（Ｓ４０５）ＲＡＭ上のＦＡＴ（３０５、３０６）内で空き領域を検索し、１クラスタの空き領域を取得する。ＦＡＴ（３０５、３０６）では値が０ｘ００００に設定されているＦＡＴエントリが空きクラスタを意味するため、空き領域を取得する処理は、ＦＡＴ（３０５、３０６）上で０ｘ００００の値を持つＦＡＴエントリを取得するという処理になる。具体的にはＲＡＭ上のＦＡＴ（３０５、３０６）内のＦＡＴエントリを順次参照し、値が０ｘ００００に設定されているＦＡＴエントリを見つけ、該ＦＡＴエントリの対応クラスタ番号の値を求める。ＦＡＴエントリの検索処理は例えばＦＡＴ（３０５、３０６）の先頭から終端まで順に処理を実施しても良いし、前回空き領域を割り当てたＦＡＴエントリの次のＦＡＴエントリから処理を開始してＦＡＴ（３０５、３０６）の終端まで到達したらＦＡＴ（３０５、３０６）の先頭に折り返し、前回空き領域を割り当てたＦＡＴエントリまで処理を実施しても良い。このようにＦＡＴエントリの検索処理手順はＦＡＴ（３０５、３０６）領域の全面に対して空き領域を検索する処理を実現できるものであれば良く、特に限定はされない。
（Ｓ４０６）Ｓ４０５で取得した空きクラスタの番号に対応するＦＡＴエントリの値を、リンク終端を意味する値に設定する。ＦＡＴ（３０５、３０６）では値が０ｘＦＦＦＦに設定されているＦＡＴエントリがリンク終端を意味するため、Ｓ４０６では該当ＦＡＴエントリの値をＲＡＭ上で０ｘＦＦＦＦに設定する処理を実施する。
（Ｓ４０７）現在のリンク終端のクラスタ番号に対応するＦＡＴエントリの値を０ｘＦＦＦＦからＳ４０５で取得した空きクラスタの番号にＲＡＭ上で設定する。空き領域を取得する必要がある場合は、ファイル終端への追記を意味し、その場合Ｓ４０３でのリンクを辿る処理においてファイル終端までリンクが辿られている。そのため、現在のリンク終端のクラスタ番号に対応するＦＡＴエントリの値はリンク終端を意味する０ｘＦＦＦＦが設定されている。そのため、Ｓ４０７の処理により、Ｓ４０５で新たに取得した空きクラスタへリンクを接続することによりファイルのリンクが１クラスタ分長くなり、ファイルデータを追記することが可能となる。
（Ｓ４０８）現在参照している書き込み位置のクラスタ内にファイルデータを書き込む。Ｓ４０４で空き領域取得が必要と判断した場合は、現在参照している書き込み位置はＳ４０５で取得した空きクラスタとなる。またＳ４０４で空き領域取得が不要と判断した場合は、現在参照している書き込み位置はＳ４０３でリンクを辿った結果到達したクラスタとなる。
（Ｓ４０９）全ファイルデータの書き込みが完了したか判定する。まだファイルデータが残っている場合Ｓ４０４の処理に戻る。全ファイルデータの書き込みが完了した場合Ｓ４１０の処理に進む。
（Ｓ４１０）ディレクトリエントリ３０８内に格納されたファイルサイズや最終更新日時等の情報を更新し、情報記録モジュールの不揮発性メモリ内に格納されたディレクトリエントリ３０８を上書きする。
（Ｓ４１１）情報記録モジュールの不揮発性メモリ内に格納されたＦＡＴ（３０５、３０６）に、アクセスモジュールのＲＡＭ上のＦＡＴ（３０５、３０６）のデータを上書きし、処理を完了する。
【００１０】
このファイルデータ書き込み処理により、図５に示された６００００バイトのデータを持つＦＩＬＥ１．ＴＸＴに１００００バイトのデータを追記した場合、図６に示されるような７００００バイトのデータを持つファイルに変化する。すなわち、空きクラスタとしてクラスタ番号６のクラスタが取得されてファイルデータが追記され、ＦＡＴ（３０５、３０６）上のリンクにクラスタ番号６が接続される。その結果、ＦＩＬＥ１．ＴＸＴのリンクは、クラスタ番号２〜５の４クラスタからなる状態から、クラスタ番号２〜６の５クラスタからなる状態に更新される。
【００１１】
このようにＦＡＴファイルシステムでは、ファイルの管理情報がＦＡＴ（３０５、３０６）とディレクトリエントリ３０８の両方に格納されていることから、ファイルを更新する場合には、これらの情報も共に更新する必要がある。すなわち、アクセスモジュールが情報記録モジュールに格納されたファイルを更新する場合、図７に示すようにファイルデータ（ＤＡＴＡ）、ディレクトリエントリ３０８（ＤＩＲ）、ＦＡＴ（３０５、３０６）（ＦＡＴ１、ＦＡＴ２）のような一連の書き込み処理を実施することになる。
【００１２】
また、ディレクトリエントリ３０８（ＤＩＲ）、ＦＡＴ（３０５、３０６）の更新を実施するまでは、例えファイルデータが書き込まれていてもファイルとして読み出すことができない。例えばムービーで動画コンテンツを１時間記録した場合に、これらファイルシステム管理情報の更新を全くしなかった場合、記録終了直前に電源断が生じると動画コンテンツを格納したファイルが読み出せなくなり、１時間分の動画コンテンツが消失してしまう。そのためこのようなファイル消失を防ぐため、これらファイルシステム管理情報の更新は数秒間に１回実施する等、定期的に実施しておく必要がある。
【００１３】
一方、ハイビジョン動画のようなコンテンツファイルを情報記録モジュールに格納する場合、映像のビットレートが高いため、例えば数秒に１回の割合でディレクトリエントリ３０８、ＦＡＴ（３０５、３０６）を更新する場合でもファイルデータの記録サイズは数ＭＢ程度の比較的大きなサイズで記録されることになる。一方、ディレクトリエントリ３０８やＦＡＴ（３０５、３０６）は情報が更新される部分のみを情報記録モジュールに書き込むため、５１２バイトから３２ＫＢ程度の比較的小さなサイズで記録されることになる。
【００１４】
情報記録モジュールの不揮発性メモリにＮＡＮＤ型フラッシュメモリを使用する場合、データを記録する前に一旦データを消去する必要があり、その消去単位の大きさが数百ＫＢから数ＭＢであることから、小サイズの書き込みを実施する場合には同一物理ブロック内に存在する有効なデータを他のブロックにコピーする巻き込み退避処理が発生する。そのため、ＮＡＮＤ型フラッシュメモリでは消去単位より小さな単位でデータを書き込むと記録速度が低下する。ムービーのような大容量のコンテンツファイルを情報記録モジュールに書き込む機器の場合、電源断対策として頻繁にファイルシステム管理情報を更新する必要があるため、ディレクトリエントリ３０８やＦＡＴ（３０５、３０６）等の小サイズのファイルシステム管理情報の書き込みに生じる速度低下が顕著になるという問題が生じる。また、巻き込み退避により小サイズの書き込みを実施する際にも大きなサイズの書き込み処理が発生することから、ファイルシステム管理情報の更新を頻繁に行った場合、ＮＡＮＤ型フラッシュメモリの書き換え寿命が短くなるという問題も発生する。
【００１５】
従来、このような問題を解決する方法として、データ書き込みの際にアクセスモジュールが情報記録モジュールへデータ種別を通知する方法が提案されている（例えば、特許文献１参照）。この方法では、データ種別として、大きなサイズのファイルデータなのか小さなサイズのファイルシステム管理情報なのかを通知し、情報記録モジュールに設けられた管理単位の異なる２つの不揮発性メモリにデータを振り分けることにより、ファイルデータ、ファイルシステム管理情報の各々を高速に記録する。これにより、電源断対策で頻繁にファイルシステム管理情報が更新されたとしても高速にファイルデータを書き込むことが可能となる。また、巻き込み退避処理による無駄なデータ書き込み処理が削減されるため、不揮発性メモリの書き換え寿命低下も防止される。
【特許文献１】ＷＯ２００５／０４３３９４Ａ１
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、上記の従来技術では管理単位の異なる２つの不揮発性メモリを情報記録モジュールに設ける必要があり、従来のような１つの不揮発性メモリで構成した情報記録モジュールに比べコストが高くなる可能性がある。また２つの不揮発性メモリを搭載することにより情報記録モジュールにおける不揮発性メモリの実装面積が大きくなり、情報記録モジュールの小型化を図ることが難しくなる可能性がある。
【００１７】
本発明では上記問題点に鑑み、複数の不揮発性メモリを必要とすることなく、ファイルシステム管理情報の電源断対策を実現しつつ、高速にファイルデータを記録することが可能であり、且つ不揮発性メモリの書き換え寿命低下を防止可能なアクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明のアクセスモジュールは、データを格納する不揮発性メモリを具備する情報記録モジュールにアクセスするアクセスモジュールであって、前記情報記録モジュール内に格納したデータをファイルシステムにより管理するファイルシステム制御部と、前記ファイルシステムにより管理されるファイルデータの一部を前記情報記録モジュールへ記録する際に、当該ファイルに関するファイルシステム管理情報の差分情報であるファイルログを生成し、前記情報記録モジュールに記録するファイルログ記録部とを具備することを特徴とする。
【００１９】
また、前記ファイルログは、前記情報記録モジュール内の特定の論理アドレス領域に格納され、前記特定の論理アドレス領域の位置は、全論理アドレス空間を第１の領域管理単位毎に区切った際の特定の１つの領域管理単位の先頭位置であり、前記特定の論理アドレス領域の大きさは、第２の領域管理単位の大きさであるようにすると良い。
【００２０】
この際、前記第１の領域管理単位は、前記不揮発性メモリの物理ブロックサイズの整数倍であるようにしても良い。
【００２１】
一方、前記第２の領域管理単位は、前記不揮発性メモリのページサイズの整数倍であるようにしても良い。
【００２２】
また、前記ファイルログを記録する前記特定の論理アドレス領域に引き続く領域であり、前記特定の論理アドレスと同一の前記第１の領域管理単位内の領域は、アクセスが禁止される領域としても良い。
【００２３】
また別の方法として、前記ファイルログは、前記不揮発性メモリ内に格納され、前記格納領域は論理アドレスが割り当てられないようにしても良い。
【００２４】
本発明の情報記録モジュールは、データを格納する不揮発性メモリと、前記不揮発性メモリ上に構築されたファイルシステムにおけるファイルシステム管理情報の差分情報であるファイルログを、外部のアクセスモジュールから受信し、前記不揮発性メモリ内の所定の領域に記録するファイルログ制御部とを具備することを特徴とする。
【００２５】
更に、前記不揮発性メモリは、前記ファイルログを格納する領域を管理するために使用する情報であるファイルログ管理情報を格納するようにすると効果的である。
【００２６】
また、前記所定の領域は前記不揮発性メモリ内の論理アドレス空間上に存在する領域であり、前記ファイルログ管理情報は前記ファイルログの格納用領域として使用される領域の物理アドレスと、前記領域内の使用済み領域に関する情報と、前記領域に対応づけられた論理アドレスとを含むようにすると良い。
【００２７】
また別の方法として、前記所定の領域は前記不揮発性メモリ内の論理アドレス空間の外部に存在する領域であり、前記ファイルログ管理情報は前記ファイルログの格納用領域として使用される領域の物理アドレスと、前記領域内の使用済み領域に関する情報とを含むようにしても良い。
【００２８】
本発明のコントローラは、データを格納する不揮発性メモリを具備する情報記録モジュールを制御するコントローラであって、前記不揮発性メモリ上に構築されたファイルシステムにおけるファイルシステム管理情報の差分情報であるファイルログを、外部のアクセスモジュールから受信し、前記不揮発性メモリ内の所定の領域に記録するファイルログ制御部を具備することを特徴とする。
【００２９】
本発明の情報記録システムは、情報記録モジュールと、前記情報記録モジュールにアクセスするアクセスモジュールからなる情報記録システムであって、前記情報記録モジュールは、データを格納する不揮発性メモリと、前記不揮発性メモリ上に構築されたファイルシステムにおけるファイルシステム管理情報の差分情報であるファイルログを、外部のアクセスモジュールから受信し、前記不揮発性メモリ内の所定の領域に記録するファイルログ制御部とを具備し、前記アクセスモジュールは、前記情報記録モジュール内に格納したデータをファイルシステムにより管理するファイルシステム制御部と、前記ファイルシステムにより管理されるファイルデータの一部を前記情報記録モジュールへ記録する際に、当該ファイルに関するファイルシステム管理情報の差分情報であるファイルログを生成し、前記情報記録モジュールに記録するファイルログ記録部とを具備することを特徴とする。
【発明の効果】
【００３０】
本発明によれば、複数の不揮発性メモリを必要とすることなく、ファイルシステム管理情報の電源断対策を実現しつつ、高速にファイルデータを記録することが可能となる。また、不揮発性メモリの書き換え寿命低下を防止することが可能となる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明のアクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システムについて、図面を参照しつつ説明する。
【００３２】
（実施の形態１）
図１は本発明の実施の形態１におけるアクセスモジュール、情報記録モジュールの構成図である。図１においてアクセスモジュール１は、ＣＰＵ１１、ＲＡＭ１２、情報記録モジュールインタフェース１３、ＲＯＭ１４を含む。ＲＯＭ１４にはアクセスモジュール１を制御するプログラムが格納されており、このプログラムはＲＡＭ１２を一時記憶領域として使用し、ＣＰＵ１１上で動作する。情報記録モジュールインタフェース１３は、情報記録モジュール２とアクセスモジュール１との接続部であり、制御信号及びデータの送受信を行う。ＲＯＭ１４は更に、アプリケーション制御部１０１、ファイルシステム制御部１０２、情報記録モジュールアクセス部１０３を含む。アプリケーション制御部１０１は、データの生成や電源の制御などアクセスモジュール１全体の制御を行う。ファイルシステム制御部１０２は、ＦＡＴファイルシステム等のファイルシステムによりデータをファイルとして管理するための制御を行う。情報記録モジュールアクセス部１０３は、ファイルシステム制御部１０２からデータと共にサイズとアドレスを渡され、指定されたサイズのデータを情報記録モジュール２の記録領域内における指定された位置に記録するなど、情報記録モジュール２に対するコマンドやデータの送受信を制御する。ファイルシステム制御部１０２は更に、ファイルログ記録部１０４を含む。ファイルログ記録部１０４は、本発明の特徴であるファイルログに対するアクセスを制御する制御部であり、従来のアクセスモジュールには存在しないものである。
【００３３】
一方、図１において情報記録モジュール２は、コントローラ２１と不揮発性メモリ２２を含む。コントローラ２１は、不揮発性メモリ２２の制御全般を行うモジュールであり、ＣＰＵ等を含むシステムＬＳＩとして構成される。コントローラ２１は更に、アクセスモジュールインタフェース２１１、ＣＰＵ２１２、ＲＡＭ２１３、ＲＯＭ２１４、不揮発性メモリインタフェース２１５を含む。アクセスモジュールインタフェース２１１は、情報記録モジュール２とアクセスモジュール１との接続部であり、情報記録モジュールインタフェース１３同様、制御信号及びデータを送受信するインタフェースである。ＲＯＭ２１４には情報記録モジュール２を制御するプログラムが格納されており、このプログラムはＲＡＭ２１３を一時記憶領域として使用し、ＣＰＵ２１２上で動作する。不揮発性メモリインタフェース２１５はコントローラ２１と不揮発性メモリ２２との接続部であり、不揮発性メモリ２２に対するコマンドやデータの送受信を制御する。ＲＯＭ２１４は更に、アドレス変換制御部２１６、ファイルログ制御部２１７を含む。アドレス変換制御部２１６は、不揮発性メモリ２２上の物理アドレスと、アクセスモジュール１からアクセス可能なアドレス空間として情報記録モジュール２が提供する論理アドレス空間における論理アドレスとの対応付けを制御する制御部であり、従来の情報記録モジュールに存在するアドレス変換制御部と同様の制御部である。ファイルログ制御部２１７は、本発明の特徴であるファイルログを制御する制御部であり、従来の情報記録モジュールには存在しないものである。また、不揮発性メモリ２２は、ユーザデータを格納する領域とは別の領域にアドレス管理情報２２１を格納する。アドレス管理情報２２１は先に説明した物理アドレスと論理アドレスの対応付け等、不揮発性メモリ２２内の記録領域のアドレス管理に使用する情報である。そのため、ユーザデータはアクセスモジュール１からアクセス可能な論理アドレス空間内に格納されるのに対し、アドレス管理情報２２１はアクセスモジュール１からアクセスできないよう論理アドレス空間の外側に格納される。アドレス管理情報２２１は更に、物理アドレスと論理アドレスの対応付けを管理するアドレス変換情報２２２、空き物理ブロックを管理するフリーブロック情報２２３、ファイルログを管理するファイルログ管理情報２２４を含む。アドレス変換情報２２２、フリーブロック情報２２３は従来の情報記録モジュールに含まれる情報と同様のものである。一方ファイルログ管理情報２２４は、本発明の特徴であるファイルログを管理するための情報であり、従来の情報記録モジュールには存在しないものである。また、不揮発性メモリ２２内の論理アドレス空間上にはユーザデータが格納されると共に、ファイルログ２２５を格納する領域が存在する。ファイルログ２２５は、ファイルシステム管理情報の差分情報であり、電源断が生じた際にファイルシステム管理情報を修復することを可能とする必要最低限の情報である。
【００３４】
本発明の実施の形態１における情報記録モジュール２は不揮発性メモリ２２内にファイルログ管理情報２２４を格納する。情報記録モジュール２内のファイルログ制御部２１７は、このファイルログ情報２２４を用いてファイルログ２２５を特定の物理ブロックに書き込む。また、本発明の実施の形態１におけるアクセスモジュール１は、ファイルデータ書き込みの合間にファイルログ２２５を情報記録モジュール２に書き込む。また、ファイルログ２２５を書き込む領域を特定論理アドレスに該当するブロックの先頭ページに限定することにより、ファイルログ２２５の書き込み処理を高速化する。これにより、複数の不揮発性メモリを必要とすることなく、ファイルシステム管理情報の電源断対策を実現しつつ、高速にファイルデータを記録することが可能となる。また、不揮発性メモリの書き換え寿命低下を防止することが可能となる。
【００３５】
続いて図８を用いて、本発明の実施の形態１における不揮発性メモリ２２の構成について説明する。不揮発性メモリ２２は例えばＮＡＮＤ型フラッシュメモリが用いられる。不揮発性メモリ２２は複数の物理ブロックから構成される。物理ブロックはデータを消去する単位であり、データを書き込む前にこの単位で一旦データを消去する必要がある。また物理ブロックは複数のページから構成される。ページはデータの読み出し、書き込みを行う単位である。更にページはデータ部と冗長部を含む。データ部は論理アドレス空間としてアクセスモジュール１からアクセスが可能な領域であり、実際にファイルデータ等が格納される領域である。また冗長部は、不揮発性メモリ２２の管理情報やＥＣＣ等が格納される領域であり、アクセスモジュール１からアクセスできない領域である。データ部の大きさは例えば４ＫＢ、冗長部の大きさは１２８バイト程度となる。また、データ部にのみ着目した場合の物理ブロックの大きさは、例えば５１２ＫＢ程度となる。よって、この大きさの物理ブロック２０４８個から構成される不揮発性メモリ２２は、総容量１ＧＢとなる。
【００３６】
続いて本発明の特徴を明確にするために、従来の情報記録モジュールにおけるデータ書き込み処理手順と、本発明の実施の形態１における情報記録モジュールにおけるデータ書き込み処理手順とを比較して説明する。まずは、図９、図１０を用いて従来の情報記録モジュールにおけるデータ書き込み処理手順について説明する。
【００３７】
図９は従来の情報記録モジュールにおけるデータ書き込み処理手順を示したフロー図であり、同処理におけるアドレス変換については、情報記録モジュール内のアドレス変換制御部により実施される。図１０は従来の情報記録モジュールにおけるアドレス管理情報と物理ブロックの一例を示した説明図である。図１０（ａ）は書き込み前の状態を示し、図１０（ｂ）は書き込み後の状態を示す。図１０（ａ）に示すように、従来の情報記録モジュールにおけるアドレス管理情報は、アドレス変換情報と、フリーブロック情報を含む。アドレス変換情報は、論理アドレスと物理アドレスの対応付けを管理する情報であり、構成の一例としては各論理ブロックに対して割り当てられている物理ブロックの番号を格納した表により構成される。また、フリーブロック情報は未割り当ての空き物理ブロックの番号を管理する情報である。
【００３８】
以下、図９を用いて従来の情報記録モジュールにおけるデータ書き込み処理手順について説明する。
（Ｓ９０１）アドレス変換情報を参照し、書き込み対象領域の元データが格納された物理ブロックの番号を取得する。図１０の例では、論理ブロック番号０ｘ０００１の先頭ページに存在するデータＡをデータＥで上書きする場合を想定する。この場合、アドレス変換情報を参照し論理ブロック番号０ｘ０００１に対応する物理ブロック番号として０ｘ０００１を取得する。
（Ｓ９０２）フリーブロック情報を参照し、フリーブロックの物理ブロック番号を取得する。図１０（ａ）の例ではフリーブロック情報を参照し、先頭に格納されている値である０ｘ０００Ｅを取得する。すなわち、物理ブロック番号０ｘ０００Ｅのブロックは現在未使用で空きブロックとして管理されており、物理ブロック内のデータは消去済みの状態となっている。
（Ｓ９０３）Ｓ９０２で取得したフリーブロックに新データを書き込む。図１０の例では、物理ブロック番号０ｘ０００Ｅのブロックの先頭ページにデータＥを書き込む。
（Ｓ９０４）フリーブロックに残りの有効データをコピーする。図１０の例では、物理ブロック０ｘ０００１のデータＢ以降のデータは書き込み後も有効なデータとして保持される必要があることから、データＢ以降の全データをフリーブロックである物理ブロック番号０ｘ０００Ｅのブロックにコピーする。この処理が一般に巻き込み退避処理と呼ばれている処理である。
（Ｓ９０５）アドレス変換情報を更新し、データを書き込んだフリーブロックの物理ブロック番号を登録する。図１０の例では、論理ブロック番号０ｘ０００１に対応する物理ブロックとして０ｘ０００１が管理されていたが、今回の書き込み処理により０ｘ０００Ｅに変化するため、アドレス変換情報の該当箇所を０ｘ０００Ｅに書き換える。
（Ｓ９０６）元データが格納されていた物理ブロックを消去する。図１０の例では、物理ブロック番号０ｘ０００１のブロックに含まれる全データを消去する。
（Ｓ９０７）使用したフリーブロックをフリーブロック情報から削除する。図１０の例では、物理ブロック番号０ｘ０００Ｅのブロックが使用されたため、フリーブロック情報から０ｘ０００Ｅの番号を削除する。
（Ｓ９０８）元データが格納されていた物理ブロックをフリーブロック情報に登録する。図１０の例では、元データが格納されていた物理ブロック番号０ｘ０００１のブロックがフリーブロックとして管理されるよう、フリーブロック情報に０ｘ０００１の番号を登録する。
【００３９】
これら一連の処理により、図１０（ａ）の状態から図１０（ｂ）の状態に変化する。この例では、１ページの書き込み処理を実施する場合について説明したが、実際にはＳ９０４の巻き込み退避処理により該当物理ブロックの残り有効データも全て書き込まれるため、１物理ブロック分の書き込み処理が発生することになる。この巻き込み退避処理は書き込みデータが大きい程減少し、物理ブロック単位でデータを書き込んだ場合、巻き込み退避処理は発生しなくなる。すなわち、ページサイズが４ＫＢ、物理ブロックサイズが５１２ＫＢの場合を想定すると、４ＫＢ書き込む場合と５１２ＫＢ書き込む場合で処理時間がほぼ同じになるため、処理速度でみるとページ単位で書き込んだ場合は物理ブロック単位で書き込んだ場合に比べ１２８倍遅くなることになる。この速度低下は、電源断対策としてファイルシステム管理情報を頻繁に更新する場合に顕著になる。
【００４０】
本発明では、ファイルシステム管理情報の電源断対策を実現しつつ、高速にファイルデータを記録することを可能とし、且つ、不揮発性メモリの書き換え寿命低下を防止する方法を提供する。
【００４１】
図１１は、本発明の実施の形態１における不揮発性メモリ２２上の論理アドレス空間の一例を示す説明図である。図１１におけるファイルシステム管理情報３０１、ユーザデータ領域３０２は従来のファイルシステムの構成と同じである。本発明の実施の形態１における不揮発性メモリ２２は、論理アドレス空間内の特定の論理アドレスにファイルログ２２５を格納する領域を有する。この領域の大きさは物理ブロックの大きさと同じであり、ファイルログ２２５の格納に占有されるため、ファイルデータ等のその他のデータは格納されない。この領域は更にファイルログ格納領域とアクセス禁止領域から構成される。ファイルログ格納領域は実際にファイルログの格納に使用される領域であり、１ページの大きさの領域である。また、アクセス禁止領域はファイルログ格納領域の直後に存在する1物理ブロック−１ページの大きさの領域である。この領域はアクセスモジュール１からの読み書きが禁止されており、読み書きを実施した場合にはエラーが情報記録モジュール２から返される。すなわち、論理アドレス空間の１物理ブロック分の大きさを持つ領域がファイルログ用に占有されており、且つその領域の先頭１ページのみが実際にファイルログを格納するために使用される領域となる。
【００４２】
図１２は、本発明の実施の形態１における情報記録モジュール２内に存在するアドレス管理情報２２１の構成の一例を示した説明図である。図１２におけるアドレス変換情報２２２、フリーブロック情報２２３は従来の情報記録モジュールに存在する情報と同様である。本発明の実施の形態１におけるアドレス管理情報２２１は更にファイルログ管理情報２２４を含む。ファイルログ管理情報２２４は、ファイルログを格納する領域として割り当てられた物理ブロックの状態等、管理に必要な情報を格納したものである。図１２の例では、物理ブロック番号０ｘ０３Ｆ０のブロックがファイルログを格納する領域として割り当てられており、その物理ブロック内で既にファイルログが書き込まれているページ数は１であり、ファイルログを格納する領域の論理アドレス（論理ブロック番号）は０ｘ０７ＣＦである場合を想定している。
【００４３】
続いて、図１２から図１５を用いて本発明の実施の形態１の情報記録モジュール２におけるデータ書き込み処理手順について説明する。図１２はデータ書き込み前のアドレス管理情報２２１の状態の一例を示しており、図１５はデータ書き込み後のアドレス管理情報２２１の状態の一例を示している。また、図１３はデータ書き込み処理手順を示している。また図１４はデータ書き込み途中における、ファイルログの格納用に割り当てられた物理ブロックの状態を示している。これらの例では、ファイルログの情報としてデータＡが既に書き込まれており、データＢ、データＣ、…データＺを順に上書きする場合を想定している。尚、ファイルログの書き込みは、アクセスモジュール１が論理アドレス空間上に存在するファイルログ格納領域の１ページの領域に対する書き込み処理を実施することで実現される。すなわち、アクセスモジュール１はファイルログ格納領域の１ページの領域に既に格納されているデータＡをデータＢで上書きし、次のファイルログ更新タイミングでは同一アドレスに対してデータＣを書き込み、以降、同様に処理を繰り返す。
【００４４】
以下、図１３を用いて本発明の実施の形態１の情報記録モジュール２におけるデータ書き込み処理手順について説明する。
（Ｓ１３０１）ファイルログ管理情報２２４を参照し、書き込み対象領域がファイルログ２２５の領域に該当するか確認する。該当する場合はＳ１３０３の処理に進み、該当しない場合はＳ１３０２の処理に進む。図１２の例では、書き込み対象領域が論理ブロック番号０ｘ０７ＣＦ内の領域である場合にファイルログ２２５の領域に該当すると判定する。
（Ｓ１３０２）Ｓ１３０１の判定で該当しないと判定した場合、ファイルログ２２５以外の書き込みであるため、通常の書き込み処理を実施し、処理を終了する。具体的には図９のフローで説明した書き込み処理と同様の処理を実施する。
（Ｓ１３０３）Ｓ１３０１の判定で該当すると判定した場合、書き込み対象領域がファイルログ格納領域に該当するか確認する。該当する場合にはＳ１３０５の処理に進み、該当しない場合はＳ１３０４の処理に進む。図１２の例では、書き込み対象領域が論理ブロック番号０ｘ０７ＣＦ内の先頭ページの領域である場合にファイルログ格納領域に該当すると判定する。
（Ｓ１３０４）Ｓ１３０３の判定で該当しないと判定した場合、アクセス禁止領域への書き込み処理であるため、アクセスモジュール１にエラーを通知して処理を終了する。
（Ｓ１３０５）Ｓ１３０３の判定で該当すると判定した場合、ファイルログの格納用に割り当てられた物理ブロック内に空きページが存在するか確認する。空きページが存在する場合はＳ１３０６の処理に進み、存在しない場合はＳ１３０７の処理に進む。空きページの存在は、ファイルログ管理情報２２４の記録済みページ数を参照することにより確認できる。すなわち、記録済みページ数が１物理ブロック内のページ数と同じであれば、空きページが存在しないことを意味し、記録済みページ数がそれ未満の値であれば、空きページが存在することを意味する。
（Ｓ１３０６）Ｓ１３０５の判定において空きページが存在すると判定した場合、該当空きページに新データを書き込み、処理を終了する。図１４（ａ）の状態ではファイルログの格納用に割り当てられている物理ブロック番号０ｘ０３Ｆ０のブロックの先頭ページにデータＡが格納されており、以降のページは空きページとして管理されている。そのため、ファイルログとしてデータＢが書き込まれた場合、この物理ブロック内の２番目のページにデータが書き込まれ、図１４（ｂ）の状態となる。同様にデータＣ、…、データＹまでファイルログが書き込まれた場合、図１４（ｃ）の状態となる。
（Ｓ１３０７）Ｓ１３０５の判定において空きページが存在しないと判定した場合、フリーブロック情報２２３を参照し、フリーブロックの物理ブロック番号を取得する。図１２の例ではフリーブロック情報２２３を参照し、先頭に格納されている値である０ｘ０００Ｅを取得する。すなわち、物理ブロック番号０ｘ０００Ｅのブロックは現在未使用で空きブロックとして管理されており、物理ブロック内のデータは消去済みの状態となっている。
（Ｓ１３０８）Ｓ１３０７で取得したフリーブロックに新データを書き込む。図１４（ｄ）の例では、物理ブロック番号０ｘ０００Ｅのブロックの先頭ページにデータＺを書き込む。
（Ｓ１３０９）ファイルログ管理情報２２４を更新し、データを書き込んだフリーブロックの物理ブロック番号を登録する。図１２の例では、ファイルログ管理情報２２４の物理ブロック番号として０ｘ０３Ｆ０が管理されていたが、今回の書き込み処理により０ｘ０００Ｅに変化するため、ファイルログ管理情報２２４の該当箇所を０ｘ０００Ｅに書き換える。
（Ｓ１３１０）従来ファイルログの格納用領域として使用されていた旧物理ブロックを消去する。図１４（ｄ）の例では、物理ブロック番号０ｘ０３Ｆ０のブロックに含まれる全データを消去する。
（Ｓ１３１１）使用したフリーブロックをフリーブロック情報２２３から削除する。図１５の例では、物理ブロック番号０ｘ０００Ｅのブロックが使用されたため、フリーブロック情報２２３から０ｘ０００Ｅの番号を削除する。
（Ｓ１３１２）ファイルログの格納用領域として使用されていた旧物理ブロックをフリーブロック情報２２３に登録し、処理を終了する。図１５の例では、ファイルログの格納用領域として使用されていた物理ブロック番号０ｘ０３Ｆ０のブロックがフリーブロックとして管理されるよう、フリーブロック情報２２３に０ｘ０３Ｆ０の番号を登録する。
【００４５】
これら一連の処理により、図１２の状態から図１５の状態に変化する。図９の従来の書き込み処理手順と図１３の本発明の実施の形態１の書き込み処理手順で最も異なる点は、Ｓ９０４の巻き込み退避処理が本発明の実施の形態１では発生しない点である。本発明の実施の形態１ではファイルログを格納する領域として特定論理アドレスに存在するブロックの先頭ページのみを使用する。これによりファイルログの格納用領域として割り当てられている物理ブロック内に格納される有効なデータは常に１ページ分となるため、該物理ブロックの全ページにデータが書き込まれても、有効データを別の物理ブロックにコピーする必要がなく、巻き込み退避処理が発生しない。そのため、本発明の実施の形態１におけるファイルログの機能を使用することにより、巻き込み退避処理の発生を防止し、小サイズのファイルログ情報を高速に書き込むことが可能となる。
【００４６】
続いて、図１６を用いて本発明の実施の形態１におけるデータ読み出し処理手順を説明する。
（Ｓ１６０１）ファイルログ管理情報２２４を参照し、読み出し対象領域がファイルログ２２５の領域に該当するか確認する。該当する場合はＳ１６０４の処理に進み、該当しない場合はＳ１６０２の処理に進む。図１２の例では、読み出し対象領域が論理ブロック番号０ｘ０７ＣＦ内の領域である場合にファイルログ２２５の領域に該当すると判定する。
（Ｓ１６０２）Ｓ１６０１の判定で該当しないと判定した場合、アドレス変換情報２２２を参照し、読み出し対象領域のデータを格納している物理ブロック番号を取得する。
（Ｓ１６０３）Ｓ１６０２で取得した物理ブロック番号のブロックからデータを読み出し、処理を終了する。
（Ｓ１６０４）Ｓ１６０１の判定で該当すると判定した場合、読み出し対象領域がファイルログ格納領域に該当するか確認する。該当する場合にはＳ１６０６の処理に進み、該当しない場合はＳ１６０５の処理に進む。図１２の例では、読み出し対象領域が論理ブロック番号０ｘ０７ＣＦ内の先頭ページの領域である場合にファイルログ格納領域に該当すると判定する。
（Ｓ１６０５）Ｓ１６０４の判定で該当しないと判定した場合、アクセス禁止領域からの読み出し処理であるため、アクセスモジュール１にエラーを通知して処理を終了する。
（Ｓ１６０６）Ｓ１６０４の判定で該当すると判定した場合、ファイルログの格納用に割り当てられた物理ブロックからデータを読み出し、処理を終了する。
本発明の実施の形態１では特定の論理アドレスに該当する領域をファイルログの格納に使用する。そのため該論理アドレス領域の先頭ページに対する読み出し処理がアクセスモジュール１から要求された場合には、ファイルログの格納用領域として割り当てられている物理ブロック内で最後に書き込まれた１ページ分のデータが読み出される。これは同一物理ブロック内に１ページ単位で追記的にファイルログの情報が書き込まれるため、有効なファイルログの情報は、常に最後に書き込まれた１ページ分のデータになることに起因する。また、アクセス禁止領域への読み出しが発生した場合には、データ読み出し処理を実施せず、アクセスモジュール１にエラーを返す。
【００４７】
続いて本発明の実施の形態１のアクセスモジュール１内のファイルログ記録部１０４について説明する。アクセスモジュール１内のファイルログ記録部１０４は、情報記録モジュール２に対してファイルログ２２５を記録する処理を実施する。図７で説明したように従来のアクセスモジュールは、電源断対策のためにＤＡＴＡ、ＤＩＲ、ＦＡＴ１、ＦＡＴ２の順で書き込み処理を繰り返す。これに対し、本発明の実施の形態１におけるアクセスモジュール１は、図１７に示すようにＤＡＴＡ、ＦＩＬＥＬＯＧ（ファイルログ２２５）の順で書き込み処理を繰り返す。すなわち、従来実施していたＤＩＲ、ＦＡＴ１、ＦＡＴ２の３回の小サイズの書き込み処理を、１回のファイルログ２２５の書き込み処理に変更している。これにより、小サイズの書き込み処理回数が削減されると共に、ファイルログ２２５の書き込み処理が高速に行えることから、ファイルデータの書き込み処理以外に発生する電源断対策用の書き込み処理が高速化されることになる。但し、ファイルログ２２５の情報はファイルシステム管理情報の差分情報であるため、最終的には本来のファイルシステム管理情報を更新する必要がある。そのため、ファイルデータ記録を終了する際には、ＤＩＲ、ＦＡＴ１、ＦＡＴ２の書き込み処理を実施する必要がある。
【００４８】
また、ファイルログ２２５を格納する領域は特定の論理アドレスに割り当てられていることを先に説明した。この論理アドレスは必ずしも固定のアドレスである必要はなく、アクセスモジュール１から情報記録モジュール２にファイルログ領域設定コマンドを発行することにより変更できるようにしても良い。具体的には、ＳｅｔＦｉｌｅＬｏｇＡｒｅａ（ＬｏｇｉｃａｌＡｄｄｒｅｓｓ）のような形式のコマンドを情報記録モジュール２に発行し、ファイルログ２２５を格納する領域の論理アドレスをＬｏｇｉｃａｌＡｄｄｒｅｓｓで指定するようにすると実現できる。
【００４９】
続いて図１８を用いて、ファイルログ２２５に格納される情報について説明する。ファイルログ２２５に格納される情報は、電源断が生じた際にファイルシステム管理情報を復元することが可能な必要最低限の情報から構成される。図１８はその一例を示した説明図である。
【００５０】
ファイルログ２２５は複数のファイルログエントリから構成されている。基本的には１つのファイルログエントリが、従来のＤＩＲ、ＦＡＴ１、ＦＡＴ２の書き込み１セット分に相当するファイルシステム管理情報の差分情報を含んでいる。
【００５１】
ＤＩＲ＿ＳＥＣはディレクトリエントリが格納されている領域の論理セクタ番号を、ＤＩＲ＿ＢＹＴＥはディレクトリエントリが格納されている領域のセクタ内バイトオフセットを、ＤＩＲ＿ＥＮＴは３２バイトのディレクトリエントリそのものの情報を意味する。これにより、更新すべきディレクトリエントリの情報と、その更新位置が明確になるため、電源断が生じた場合、この情報を元に正しくディレクトリエントリ３０８を更新することが可能となる。
【００５２】
また、ＦＡＴ＿ＳＴＡＴＵＳはＦＡＴ上で領域が新たに割り当てられたのか、解放されたのかのいずれかの状態を示すフラグを、ＦＡＴ＿ＳＴＡＲＴはＦＡＴ上の対象領域の開始クラスタ番号を、ＦＡＴ＿ＬＥＮＧＴＨはＦＡＴ上の対象領域の大きさをクラスタ数で表現したものを意味する。図１８のファイルログエントリ１の例では、ＦＡＴ＿ＳＴＡＴＵＳが０ｘ００（ＡＬＬＯＣＡＴＥ）であり、領域が新たに割り当てられたことを意味し、その割り当てられた領域はクラスタ番号０ｘ０１００から始まる長さ０ｘ００２０クラスタの領域であることを意味する。これにより、更新すべきＦＡＴ上の位置と値が明確になるため、電源断が生じた場合、この情報を元に正しくＦＡＴ（３０５、３０６）を更新することが可能となる。
【００５３】
また図１８では２つの連続領域に関する情報をそれぞれファイルログエントリ１、ファイルログエントリ２に格納する場合の例を示している。しかしながら複数のファイルログエントリが示す連続領域が互いに隣り合う場合には１つのファイルログエントリにまとめることができる。そのため連続領域にファイルデータを追記していくような場合にはファイルログ２２５に格納する情報は増加せず常に一定となるため、ファイルログ格納領域が溢れることはない。逆に、不連続な領域に記録し続けるような場合にはファイルログエントリの個数が増加し、ファイルログ格納領域に収まらない場合が生じる。この場合には、一旦ディレクトリエントリ３０８、ＦＡＴ（３０５、３０６）を情報記録モジュール２に書き込み、全ファイルログエントリの情報を削除することにより、処理を継続することが可能となる。
【００５４】
以上のように、本発明の実施の形態１のアクセスモジュール１と情報記録モジュール２を組み合わせて使用し、電源断対策としてファイルデータ書き込み処理の合間にファイルログを書き込むことにより無駄な巻き込み退避処理を防止し、ファイルシステム管理情報の電源断対策を実現しつつ、高速にファイルデータを記録することが可能となる。また、無駄な巻き込み退避処理を防止することで不揮発性メモリ２２に対する書き込み処理回数が削減されるため、不揮発性メモリ２２の書き換え寿命の低下を防止することも可能となる。更に、本発明の実施の形態１のファイルログを用いた管理方法では、アクセスモジュール１からファイルログ２２５を書き込む場合、不揮発性メモリ２２上に書き込まれるデータは常に１ページとなる。そのため、ムービー等でリアルタイムに動画を記録するような場合、従来の書き込み処理手順ではＤＩＲ、ＦＡＴ１、ＦＡＴ２の更新時に一例で１２８倍遅くなるタイミングが来るため安定してリアルタイム記録が行えなかったのに対し、本発明ではファイルログ２２５の更新時間が常に一定の短時間で処理されるため、安定してリアルタイム記録を実施することが可能となる。
【００５５】
尚、本発明を上記の実施形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのは勿論である。本発明の趣旨を逸脱しない範囲で実施変更することができる。本発明の実施の形態で記載された数値は一例であり、他の値を使用しても良い。例えば、物理ブロックサイズやページサイズ等の値は全て一例であり、本発明の実施の形態１で記載した値に限定されるものではない。
【００５６】
また、図１の説明において情報記録モジュール２のコントローラ２１の構成を説明したが、その他の構成としても良い。例えば、コントローラ２１内のＣＰＵ２１２やＲＡＭ２１３等をコントローラ２１の外部に配置しても良いし、逆にその他の構成要素をコントローラ２１内に含ませても良い。
【００５７】
また、本発明の実施の形態ではファイルシステムとしてＦＡＴ１６を例として説明したが、その他のファイルシステムを用いても良い。この場合、ファイルログ２２５に格納されるデータが図１８で説明したものとは異なるものである必要があるが、ファイルシステム管理情報を修復するために必要となる情報が含まれるよう、ファイルログ２２５に格納するデータを選択すれば良い。
【００５８】
また、情報記録モジュール２の不揮発性メモリ２２に格納されるアドレス管理情報２２１として、アドレス変換情報２２２、フリーブロック情報２２３、ファイルログ管理情報２２４から構成される例について説明したが、この構成は一例であり、同様のアドレス管理を実現できるものであれば、その他の構成としても良い。例えば、アドレス変換情報２２２を一元的な管理テーブルとして実現せず、ページの冗長部内に情報を分散して格納するような構成としても良い。あるいはアドレス変換情報とフリーブロック情報を１つのテーブルで一元管理するような構成としても良い。
【００５９】
また、情報記録モジュール２に使用される不揮発性メモリ２２の枚数は１枚である必要はなく、複数枚を組み合わせて使用しても良い。特に複数の不揮発性メモリ２２に対して並列にデータ書き込みできるように構成した場合、更に書き込み処理を高速化することが可能となる。
【００６０】
また、本発明の実施の形態におけるファイルログを有効に使用するためには、書き込みサイズをファイルログの管理単位に合わせて適切に設定する必要がある。そのため、アクセスモジュール１と情報記録モジュール２の間でページサイズや物理ブロックサイズ等の情報を送受信できるコマンドを設けると更に効果的である。
【００６１】
また、本発明の実施の形態では、ファイルログの格納用領域として使用される物理ブロックにページ単位で新データが追記される場合について説明した。そのため、該物理ブロック上に格納されたデータの中で最新の有効データは常に同一物理ブロック内の最後尾に格納されたデータとなり、一意に特定することが可能となる。この方法は一例であり、本発明はこの方法に限定されるものではない。例えば、ファイルログの格納用領域として使用される物理ブロック内の任意のページにデータを書き込み、冗長領域に最新のデータであることを示すフラグやシーケンス番号などを格納することにより、最新の有効データが格納されたページを特定しても良い。
【００６２】
また、本発明の実施の形態で説明したＳｅｔＦｉｌｅＬｏｇＡｒｅａコマンドの形式は一例であり、コマンドの引数として設定する情報は、同様の情報を設定できるものであればその他の情報形式を用いても良い。
【００６３】
また、本発明の実施の形態ではファイルログ格納領域として、１ブロック内の先頭１ページの領域を使用する場合について説明した。ここでブロックサイズやページサイズは必ずしも不揮発性メモリ２２の物理ブロックサイズ、ページサイズと一致している必要はなく、コントローラ２１が不揮発性メモリ２２を管理する際の管理単位を用いても良い。例えば不揮発性メモリ２２を２枚使用して並列にデータを書き込む構成をとった場合、物理ブロックサイズ、ページサイズの各々２倍の値を使用してファイルログ格納領域を決定しても良い。例えば物理ブロックサイズが５１２ＫＢ、ページサイズが４ＫＢの場合、物理ブロック２つ分の１ＭＢの領域の先頭に存在する、ページ２つ分の８ＫＢの領域をファイルログ格納領域として使用しても良い。
【００６４】
（実施の形態２）
続いて本発明の別の実施の形態について説明する。本発明の実施の形態２におけるアクセスモジュール、情報記録モジュールの構成を図１９に示す。図１９が図１で説明した構成と異なる点は、ファイルログ２２６が論理アドレス空間の外側に配置されている点である。すなわち、図２０のように不揮発性メモリ２２内の論理アドレス空間にはファイルシステム管理情報領域３０１、ユーザデータ領域３０２のみが存在し、ファイルログ２２６はアドレス管理情報２２１と共に、論理アドレス空間の外側に配置される。そのため、アクセスモジュール１からは論理アドレス空間内の領域を読み書きするコマンドではファイルログ２２６にアクセスすることができず、ファイルログ２２６にアクセスする専用のコマンドが必要となる。
【００６５】
例えばこの専用のコマンドはＲｅａｄＦｉｌｅＬｏｇ（Ｄａｔａ）、ＷｒｉｔｅＦｉｌｅＬｏｇ（Ｄａｔａ）のような形式で実現することができる。本発明の実施の形態１で説明したように、ファイルログ２２６にアクセスできるのは常に１ページ分の領域であるため、これらの読み書きコマンドにはデータサイズを指定する必要がない。またアドレスについても論理アドレス空間外の特別な領域で管理されるため、指定する必要がない。そのため、この専用コマンドにはアドレス、サイズの指定が不要であり、シンプルな形式のコマンドで実現することが可能である。
【００６６】
続いて図２１を用いて、本発明の実施の形態２におけるアドレス管理情報２２１の構成について説明する。図２１の構成が図１２の構成と異なる点は、ファイルログ管理情報２２４に論理ブロック番号の情報を含まない点である。本発明の実施の形態２では、ファイルログ２２６を格納する領域は論理アドレス空間の外側に存在するため、対応する論理アドレスを持っていない。そのため、ファイルログ管理情報２２４では論理アドレスを管理する必要がなく、論理ブロック番号に関する情報が存在しない。
【００６７】
続いて図２２を用いて、本発明の実施の形態２におけるデータ書き込み処理手順について説明する。図２２の処理手順が図１３の処理手順と異なる点は、Ｓ１３０３、Ｓ１３０４の処理を含まない点である。本発明の実施の形態２では、ファイルログ２２６を格納する領域は論理アドレス空間の外側に存在するため、本発明の実施の形態１で説明したアクセス禁止領域をアクセスモジュール１に見せる必然性がない。そのため、本発明の実施の形態２では、ファイルログ２２６を格納する領域は１ページ分の領域しか存在しておらず、アクセス禁止領域も存在しない。そのため、アクセス禁止領域に対応する処理である、図１３におけるＳ１３０３、Ｓ１３０４に該当する処理も存在しない。同様に本発明の実施の形態２におけるデータ読み出し手順も図２３に示すように、アクセス禁止領域に関する処理が存在しないフローとなっている。
【００６８】
以上のように本発明の実施の形態２の情報記録モジュールは、ファイルログ２２６を格納する領域を論理アドレス空間の外側に配置し、専用のコマンドを用いてアクセスする。これによりアクセスモジュール１はアクセス禁止領域の存在を認識することなく、全論理アドレス空間を従来のアクセスモジュール同様にアクセスすることが可能となる。
尚、本発明を上記の実施形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのは勿論である。本発明の趣旨を逸脱しない範囲で実施変更することができる。例えば、本発明の実施の形態１に記載された種々の変形例を本発明の実施の形態２に適用しても良い。
【産業上の利用可能性】
【００６９】
本発明に関わるアクセスモジュール１は、電源断が発生した場合にファイルシステム管理情報を修復するための情報であるファイルログを情報記録モジュール２に記録するファイルログ記録部１０４を含む。また、本発明の情報記録モジュール２は、不揮発性メモリ２２内にファイルログ管理情報２２４を格納し、その情報を元に特定の物理ブロックをファイルログ格納用領域として制御するファイルログ制御部２１７を含む。これらアクセスモジュール１と情報記録モジュール２を組み合わせ、電源断対策としてファイルデータ書き込み処理の合間にファイルログを書き込むことにより、無駄な巻き込み退避処理を防止し、ファイルシステム管理情報の電源断対策を実現しつつ、高速にファイルデータを記録することが可能となる。また、無駄な巻き込み退避処理を防止することで不揮発性メモリ２２に対する書き込み処理回数が削減されるため、不揮発性メモリ２２の書き換え寿命の低下を防止することも可能となる。更に、ファイルログの更新時間が常に一定時間で処理されることから、リアルタイム記録を安定して実施することが可能となる。このようなアクセスモジュール１は、音楽や静止画、動画などのデジタルコンテンツを取り扱う機器、とりわけコンテンツデータをリアルタイムに情報記録モジュールに記録する必要がある機器に最適であり、ＰＣアプリケーション、オーディオレコーダ、ＤＶＤレコーダ、ＨＤＤレコーダ、ムービー、デジタルスチルカメラ、携帯電話端末等として利用することができる。また、本発明の情報記録モジュール２は、上記デジタルコンテンツなどを格納するメモリカードなどのリムーバブルメディア、あるいは内蔵記録装置などとして利用することができる。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施の形態１におけるアクセスモジュール、及び情報記録モジュールの構成を示した説明図
【図２】ＦＡＴファイルシステムの構成を示した説明図
【図３】ディレクトリエントリの構成を示した説明図
【図４】ＦＡＴファイルシステムにおけるファイルデータ書き込み処理手順を示したフローチャート
【図５】ＦＡＴファイルシステムにおけるファイルデータ書き込み前の状態の一例を示した説明図
【図６】ＦＡＴファイルシステムにおけるファイルデータ書き込み後の状態の一例を示した説明図
【図７】ＦＡＴファイルシステムにおけるファイル更新時のアクセスシーケンスの一例を示した説明図
【図８】本発明の実施の形態１における不揮発性メモリの構成の一例を示した説明図
【図９】従来の情報記録モジュールにおけるデータ書き込み処理手順を示したフローチャート
【図１０】従来の情報記録モジュールにおけるアドレス管理情報と物理ブロックの一例を示した説明図
【図１１】本発明の実施の形態１における不揮発性メモリ上の論理アドレス空間の一例を示した説明図
【図１２】本発明の実施の形態１におけるデータ書き込み前のアドレス管理情報の一例を示した説明図
【図１３】本発明の実施の形態１におけるデータ書き込み処理手順を示したフローチャート
【図１４】本発明の実施の形態１におけるデータ書き込み途中の物理ブロックの状態の一例を示した説明図
【図１５】本発明の実施の形態１におけるデータ書き込み後のアドレス管理情報の一例を示した説明図
【図１６】本発明の実施の形態１におけるデータ読み出し処理手順を示したフローチャート
【図１７】本発明の実施の形態１におけるファイル更新時のアクセスシーケンスの一例を示した説明図
【図１８】本発明の実施の形態１におけるファイルログの一例を示した説明図
【図１９】本発明の実施の形態２におけるアクセスモジュール、及び情報記録モジュールの構成を示した説明図
【図２０】本発明の実施の形態２における不揮発性メモリの一例を示した説明図
【図２１】本発明の実施の形態２におけるアドレス管理情報の一例を示した説明図
【図２２】本発明の実施の形態２におけるデータ書き込み処理手順を示したフローチャート
【図２３】本発明の実施の形態２におけるデータ読み出し処理手順を示したフローチャート
【符号の説明】
【００７１】
１  アクセスモジュール
２  情報記録モジュール
１１，２１２  ＣＰＵ
１２，２１３  ＲＡＭ
１３  情報記録モジュールインタフェース
１４，２１４  ＲＯＭ
２１  コントローラ
２２  不揮発性メモリ
１０１  アプリケーション制御部
１０２  ファイルシステム制御部
１０３  情報記録モジュールアクセス部
１０４  ファイルログ記録部
２１１  アクセスモジュールインタフェース
２１５  不揮発性メモリインタフェース
２１６  アドレス変換制御部
２１７  ファイルログ制御部
２２１  アドレス管理情報
２２２  アドレス変換情報
２２３  フリーブロック情報
２２４  ファイルログ管理情報
２２５，２２６  ファイルログ
３０１  ファイルシステム管理情報領域
３０２  ユーザデータ領域
３０３  マスターブートレコード・パーティションテーブル
３０４  パーティションブートセクタ
３０５，３０６  ＦＡＴ
３０７  ルートディレクトリエントリ
３０８  ディレクトリエントリ
【図１】
2009205590.tif 000003
【図２】
2009205590.tif 000004
【図３】
2009205590.tif 000005
【図４】
2009205590.tif 000006
【図５】
2009205590.tif 000007
【図６】
2009205590.tif 000008
【図７】
2009205590.tif 000009
【図８】
2009205590.tif 000010
【図９】
2009205590.tif 000011
【図１０】
2009205590.tif 000012
【図１１】
2009205590.tif 000013
【図１２】
2009205590.tif 000014
【図１３】
2009205590.tif 000015
【図１４】
2009205590.tif 000016
【図１５】
2009205590.tif 000017
【図１６】
2009205590.tif 000018
【図１７】
2009205590.tif 000019
【図１８】
2009205590.tif 000020
【図１９】
2009205590.tif 000021
【図２０】
2009205590.tif 000022
【図２１】
2009205590.tif 000023
【図２２】
2009205590.tif 000024
【図２３】
2009205590.tif 000025