JP4691209B2 - アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム - Google Patents
アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム Download PDFInfo
- Publication number
- JP4691209B2 JP4691209B2 JP2010505400A JP2010505400A JP4691209B2 JP 4691209 B2 JP4691209 B2 JP 4691209B2 JP 2010505400 A JP2010505400 A JP 2010505400A JP 2010505400 A JP2010505400 A JP 2010505400A JP 4691209 B2 JP4691209 B2 JP 4691209B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- file
- information
- extent
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims description 105
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 51
- 238000004364 calculation method Methods 0.000 claims description 45
- 238000000034 method Methods 0.000 description 90
- 230000008569 process Effects 0.000 description 60
- 238000010586 diagram Methods 0.000 description 14
- 238000013500 data storage Methods 0.000 description 9
- 238000005192 partition Methods 0.000 description 9
- 239000004065 semiconductor Substances 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000011989 factory acceptance test Methods 0.000 description 2
- 238000012949 factory acceptance testing Methods 0.000 description 2
- 239000003925 fat Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
このようなメモリカードや機器内蔵ストレージには、主にNAND型フラッシュメモリと呼ばれる半導体素子が使用されている。NAND型フラッシュメモリは、既に記録されたデータを一旦消去した後、再度別のデータを記録することが可能な記録素子であり、従来のハードディスクと同様に、複数回書き換え可能な情報記録装置を構成することが可能である。
従来最も広く使用されているファイルシステムは、「FATファイルシステム」と呼ばれるものである。FATファイルシステムは、領域管理をファイルアロケーションテーブル(FAT)と呼ばれるテーブルで一元管理するという特徴を持っており、比較的構造がシンプルで実装が容易なことから、フレキシブルディスクやPCのハードディスク、メモリカードなどのファイルシステムとして広く使用されている。
FATファイルシステムでは、ファイルアロケーションテーブル内の管理単位のビット幅の違いにより、FAT12、FAT16、FAT32などの種類が存在するが、ファイルアロケーションテーブルによる領域管理方法はほぼ同じであり、以下では、FAT16を例に説明する。
図2に示すように、論理アドレス空間の先頭には、領域割り当て単位やファイルシステムが管理する領域の大きさ等、ファイルシステムの管理情報が格納される領域であるファイルシステム管理情報領域301が存在する。
このファイルシステム管理情報領域301には、マスターブートレコード・パーティションテーブル303、パーティションブートセクタ304、FAT(305、306)、ルートディレクトリエントリ307と呼ばれるファイルシステムの管理情報が含まれ、ユーザデータ領域302を管理するために必要な情報が各々格納されている。
パーティションブートセクタ304は、パーティション内の領域管理単位の大きさなど、1つのパーティション内の管理情報が格納される領域である。
FAT(305、306)は、ファイルに含まれるデータの格納位置に関する情報が格納される領域であり、通常、同じ情報を持つ2つのFAT(305、306)が存在し、一方のFAT(305、306)が破損したとしても他方のFAT(305、306)によりファイルにアクセスできるよう二重化されている。
ルートディレクトリエントリ307は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報(ディレクトリエントリ)が格納される領域である。
ユーザデータ領域302は、512バイトから数十KB程度の大きさを持つクラスタと呼ばれる管理単位毎に分割管理されており、各クラスタには、ファイルに含まれるデータが格納されている。多くのデータを格納するファイルは、複数のクラスタに跨ってデータを格納しており、各クラスタ間の繋がりは、FAT(305、306)に格納されたリンク情報により管理されている。
また、ルートディレクトリ直下のディレクトリ内に存在するファイル、サブディレクトリの情報(ディレクトリエントリ)は、このユーザデータ領域302の一部を利用して格納される。
ディレクトリエントリ308は、1つのファイル、ディレクトリ毎に32バイトのディレクトリエントリ308が割り当てられ、ファイル、ディレクトリに関する情報を格納している。すなわち、1つのファイルやディレクトリが追加される度に32バイトのディレクトリエントリ308の情報が新規に作成され、ルートディレクトリエントリ307の領域、あるいはユーザデータ領域302に記録される。
ディレクトリエントリ308の先頭8バイトには、ファイルやディレクトリの名称が格納される。
続く3バイトには拡張子が格納される。
続く1バイトには、ファイル・ディレクトリの種別を識別するフラグや、ファイル・ディレクトリがリードオンリーか否かを識別するフラグ等の属性情報が格納される。
このように、ディレクトリエントリ308には、データ実体が格納されている領域の最初の1クラスタの位置を示す情報しか含まれておらず、データ実体の大きさが1クラスタよりも大きい場合において2クラスタ目以降のデータがどの領域に格納されているかについては、FAT(305、306)で管理されている。
図4は、FAT16のFAT(305、306)の構成を示した図である。
FAT16では、FAT(305、306)は2バイト(16ビット)の情報を1つのFATエントリとして管理しており、1つのFATエントリが1つのクラスタの状態を示している。すなわち、ユーザデータ領域302にM個のクラスタが存在する場合、FATエントリもM個存在することから、FAT(305、306)の1つ分の大きさは約2×Mバイトとなる。但し、先頭の2つのFATエントリ分は、FATの先頭を示す固定の値(0xF8FF、0xFFFF)がシグネチャとして記録されるため、ユーザデータ領域302の先頭クラスタに対応するFATエントリは、FAT(305、306)の4バイト目、5バイト目の2バイトに存在している。FAT先頭に存在する4バイトのシグネチャをFATエントリの0番、1番とすると、4バイト目および5バイト目の2バイトの位置は2番目になることから、ユーザデータ領域302の先頭クラスタは、便宜上クラスタ番号=“2”と割り当てられており、クラスタ番号=“0”、“1”に対応するクラスタは存在しないことになっている。
また、対応クラスタ番号(M+1)のFATエントリは、0xFFF7に設定されている。これは、対応するクラスタが物理的に壊れていて記録が出来ない状態である等の欠陥状態であることを意味する。
まとめると、0x0000、0xFFFF、0xFFF7の3つのFATエントリ値は各々特殊な意味を持ち、0x0002から0xFFF6までのFATエントリ値がリンク先クラスタ番号として使用されることになる。また、それ以外の0x0001、0xFFF8から0xFFFEまでの値は予約されており、通常は使用されない値になっている。
このように、FATファイルシステムでは、ファイルデータが複数のクラスタに跨って格納されている場合、各クラスタ間のリンク関係をFATエントリの値に格納し管理している。よって、ファイルデータを先頭から順に終端まで読み出す場合、クラスタ境界に来る度にFAT(305、306)を参照し、次のリンク先のクラスタ番号を特定する必要がある。
この方法では、該当ファイルのディレクトリエントリ308をディレクトリ領域内の任意のクラスタにおける先頭位置に格納し、そのクラスタ内の残りの領域には、全て消去済みディレクトリエントリを格納する。
更に、それら消去済みディレクトリエントリ内に、該当ファイルのデータが格納された領域の開始位置と終了位置とを示す情報(LBA(Logical Block Addressing)アクセス情報)を複数格納する。
このように、LBAアクセス情報を格納しておくことで、ファイルのシーク処理を実施する際にはFATを参照せず、LBAアクセス情報のみを参照して処理を実施することにより、シーク処理を高速化することが可能となる。
一方、FAT型ファイルシステムでは、図3に示すようなディレクトリエントリ308の構造が採用されており、予約フィールドも実際には、タイムスタンプの情報を格納する領域等に使用されるため、十分な予約フィールドが存在していない。このため、FAT型ファイルシステムは、拡張性に乏しいファイルシステムとなっている。従来、このような問題を解決する方法として、拡張ファイルシステムフォーマットによる方法が提案されている(例えば、特許文献2参照)。
上記で説明した2つの技術を組み合わせ、ファイルデータ格納領域の位置を示す情報を格納する特殊なディレクトリエントリを“タイプ”により規定し、ファイルを示すディレクトリエントリの付加情報として格納できるようにすることにより、この特殊なディレクトリエントリを解釈しない従来の機器でファイルデータ格納領域の位置を示す情報が破壊されることを防止することが可能となる。
この場合、1つのファイルに対して複数のディレクトリエントリが割り当てられるため、ディレクトリエントリ間の整合性を確保し、信頼性を高める仕組みが必要となる。その1つの仕組みとして、例えば、Unix(登録商標)系オペレーティングシステムで“sum”コマンドとして実装されているような循環シフト型チェックサムを用いることが考えられる。
循環シフト型チェックサムは、算出対象となるデータを単純に加算するだけではなく、加算する度に1ビット分、値を循環シフトさせる。このように循環シフトさせることにより、算出対象データの順序が入れ替わった場合でも誤りを検出できるようになり、信頼性を高めることが可能となる。
1つのファイルに対して割り当てられた全てのディレクトリエントリ領域を算出対象データとして、循環シフト型チェックサムを算出し、ディレクトリエントリ内の特定のフィールドに格納することにより、ディレクトリエントリの破損を検出し、信頼性を高めることが可能となる。
すなわち、上記の方法では、ファイルを追記して、ファイルデータ格納領域が追加される度にファイルデータ格納領域の位置を示す情報を追加する必要がある。
更に、ファイルサイズやタイムスタンプ等、ファイルを追記する際に変化する情報も更新する必要がある。これらの情報は、全て1つのファイルに割り当てられた一連のディレクトリエントリ群の中に含まれるものであるが、先の循環シフト型チェックサムをディレクトリエントリ内に含む場合、チェックサム算出値がデータの並び順に依存することから、1バイトでも情報が変化した場合、算出対象データを全て参照し直してチェックサムを再計算する必要がある。
特に、ファイルサイズが大きくなり、ファイルデータ格納領域の位置を示す情報が増加するに従い、再計算時に参照すべきデータ量が増加し、チェックサム再計算処理にかかるオーバーヘッドが大きくなるという問題が生じる。
エクステント情報エントリは、ファイルデータを固定長ブロック単位で管理し、1つ以上の固定長ブロックから構成される連続領域の管理情報として、少なくとも連続領域の位置と大きさを特定するための情報を含む。ファイルアロケーションテーブルは、固定長ブロック間のリンク関係を示す情報を管理する。エントリ群は、ファイルごとに生成され、ファイルの名称やサイズの情報を含む管理情報を格納する1つ以上の固定長エントリと、1つ以上の固定長エントリのチェックサムに関する情報と、を内部に含む。
このアクセス装置では、ファイルシステム制御部により、エクステント情報エントリとファイルアロケーションテーブル(FAT)との両方で、ファイル管理を行うことができる。
したがって、このアクセス装置では、例えば、エクステント情報エントリにより管理されるサイズの大きなファイル(拡張ファイル)と、それ以外の通常ファイルとを効率良く管理することができる。また、このアクセス装置では、エクステント情報エントリによりファイル管理を行うことができるので、FAT型ファイルシステムの弱点であるシーク処理の高速化を実現することができる。
さらに、このアクセス装置では、ファイルシステム制御部により、エクステント情報エントリが、エントリ群の外部の領域であり任意の固定長ブロックから構成されるエクステント領域内に格納される。このため、処理対象となるファイルのサイズが大きい場合であっても、エントリ群のサイズが大きくなることがないので、チェックサムの算出処理(演算処理)を高速化することができる。
なお、「アクセス装置」は、アクセスモジュールを含む概念である。
これにより、このアクセス装置では、例えば、エクステント領域指定エントリを含みエクステント情報エントリにより管理されるサイズの大きなファイル(拡張ファイル)と、エクステント領域指定エントリを含まない通常ファイル(拡張ファイル以外のファイル)とを効率良く管理(アクセス)することができる。
第3の発明は、第2の発明であって、ファイルシステム制御部は、ファイルのデータを格納する独立した連続領域が増加する度に、連続領域の位置と大きさを特定するための情報を含むエクステント領域用エクステント情報エントリを、エクステント領域に追加する。
第5の発明は、第3の発明であって、エクステント領域用エクステント情報エントリのバイト長は、エントリ群に含まれるエントリと異なるバイト長である。
第6の発明は、第1から第5のいずれかの発明であって、チェックサムに関する情報は、循環シフト型チェックサムによる算出結果を含む情報である。
第7の発明は、第1から第6のいずれかの発明であって、拡張ファイル処理部と、通常ファイル処理部と、を備える。
ファイルにアクセスする場合、拡張ファイル処理部は、ファイルに対応するエントリ群がエクステント領域指定エントリを含むときは、エクステント領域指定エントリおよびエクステント領域用エクステント情報エントリに基づいて、ファイルに対するアクセス制御を行う。
第8の発明は、ファイルデータを格納する不揮発性メモリを含む情報記録装置である。不揮発性メモリには、エクステント情報エントリと、ファイルアロケーションテーブルと、エントリ群と、を格納することができる。
ファイルデータは、固定長ブロック単位で管理されている。
エクステント情報エントリは、1つ以上の固定長ブロックから構成される連続領域の管理情報として、少なくとも連続領域の位置と大きさを特定するための情報を含む。ファイルアロケーションテーブルは、固定長ブロック間のリンク関係を示す情報を管理する。エントリ群は、ファイルごとに生成され、ファイルの名称やサイズの情報を含む管理情報を格納する1つ以上の固定長エントリと、1つ以上の固定長エントリのチェックサムに関する情報と、を内部に含む。
この情報記録装置では、例えば、アクセス装置から制御されることで、エクステント情報エントリとファイルアロケーションテーブル(FAT)との両方で、ファイル管理を行うことができる。
したがって、この情報記録装置では、例えば、エクステント情報エントリにより管理されるサイズの大きなファイル(拡張ファイル)と、それ以外の通常ファイルとを効率良く管理することができる。また、この情報記録装置を用いることで、エクステント情報エントリによりファイル管理を行うことができ、FAT型ファイルシステムの弱点であるシーク処理の高速化を実現することができる。
さらに、この情報記録装置では、エクステント情報エントリが、エントリ群の外部の領域であり任意の固定長ブロックから構成されるエクステント領域内に格納される。このため、処理対象となるファイルのサイズが大きい場合であっても、エントリ群のサイズが大きくなることがないので、チェックサムの算出処理(演算処理)を高速化することができる。
なお、「情報記録装置」は、情報記録モジュールを含む概念である。
第10の発明は、第9の発明であって、エクステント領域は、ファイルのデータを格納する独立した連続領域が増加する度に、連続領域の位置と大きさを特定するための情報を含むエクステント領域用エクステント情報エントリが追加される構成である。
第11の発明は、第10の発明であって、エクステント領域用エクステント情報エントリのバイト長は、エントリ群に含まれるエントリと同一バイト長である。
第12の発明は、第10の発明であって、エクステント領域用エクステント情報エントリのバイト長は、エントリ群に含まれるエントリと異なるバイト長である。
第13の発明は、第8から第12のいずれかの発明であって、チェックサムに関する情報は、循環シフト型チェックサムによる算出結果を含む情報である。
ファイルデータは、固定長ブロック単位で管理されており、不揮発性メモリには、エクステント情報エントリと、ファイルアロケーションテーブルと、エントリ群と、を格納することができる。
エクステント情報エントリは、1つ以上の固定長ブロックから構成される連続領域の管理情報として、少なくとも連続領域の位置と大きさを特定するための情報を含む。ファイルアロケーションテーブルは、固定長ブロック間のリンク関係を示す情報を管理する。エントリ群は、ファイルごとに生成され、ファイルの名称やサイズ等の管理情報を格納する1つ以上の固定長エントリと、1つ以上の固定長エントリのチェックサムに関する情報と、を内部に含む。
そして、エクステント情報エントリは、エントリ群の外部の領域であり、任意の固定長ブロックから構成されるエクステント領域内に格納される。
この情報記録システムでは、ファイルシステム制御部により、エクステント情報エントリとファイルアロケーションテーブル(FAT)との両方で、ファイル管理を行うことができる。
したがって、この情報記録システムでは、例えば、エクステント情報エントリにより管理されるサイズの大きなファイル(拡張ファイル)と、それ以外の通常ファイルとを効率良く管理することができる。また、この情報記録システムでは、エクステント情報エントリによりファイル管理を行うことができるので、FAT型ファイルシステムの弱点であるシーク処理の高速化を実現することができる。
さらに、この情報記録システムでは、エクステント情報エントリが、エントリ群の外部の領域であり任意の固定長ブロックから構成されるエクステント領域内に格納される。このため、処理対象となるファイルのサイズが大きい場合であっても、エントリ群のサイズが大きくなることがないので、チェックサムの算出処理(演算処理)を高速化することができる。
第15の発明は、第1から第7のいずれかの発明であるアクセス装置と、第8から第13のいずれかの発明である情報記録装置と、を備える情報記録システムである。
エクステント情報エントリは、ファイルデータを固定長ブロック単位で管理するためのエクステント情報エントリであって、1つ以上の固定長ブロックから構成される連続領域の管理情報として、少なくとも連続領域の位置と大きさを特定するための情報を含む。ファイルアロケーションテーブルは、固定長ブロック間のリンク関係を示す情報を管理する。エントリ群は、ファイルごとに生成され、ファイルの名称やサイズの情報を含む管理情報を格納する1つ以上の固定長エントリと、1つ以上の固定長エントリのチェックサムに関する情報を当該エントリ群の内部に含む。
このファイル管理方法では、エクステント情報エントリとファイルアロケーションテーブル(FAT)との両方で、ファイル管理を行うことができる。
したがって、このファイル管理方法では、例えば、エクステント情報エントリにより管理されるサイズの大きなファイル(拡張ファイル)と、それ以外の通常ファイルとを効率良く管理することができる。また、このファイル管理方法では、エクステント情報エントリによりファイル管理を行うことができるので、FAT型ファイルシステムの弱点であるシーク処理の高速化を実現することができる。
さらに、このファイル管理方法では、エントリ群に、ファイルに関連するエントリ群のチェックサムに関する情報が含まれているので、エントリ間の不整合を検出することができる。その結果、このファイル管理方法が扱うファイルシステムの信頼性を高めることも可能となる。
第17の発明は、第16の発明であるファイル管理方法をコンピュータに実行させるプログラムである。
これにより、第16の発明と同様の効果を奏するプログラムを実現することができる。
[第1実施形態]
図1は、本発明の第1実施形態に係る情報記録システム1000の構成図である。図1に示すように、情報記録システム1000は、アクセスモジュール1と、情報記録モジュール2と、を備える。
<1.1:アクセスモジュールの構成>
図1に示すように、アクセスモジュール1は、CPU11、RAM12、情報記録モジュールインタフェース13、ROM14を含む。
ROM14には、アクセスモジュール1を制御するプログラムが格納されており、このプログラムは、RAM12を一時記憶領域として使用し、CPU11上で動作する。
ROM14は、更に、アプリケーション制御部101、ファイルシステム制御部102、情報記録モジュールアクセス部105を含む。
アプリケーション制御部101は、データの生成や電源の制御などアクセスモジュール1全体の制御を行う。
ファイルシステム制御部102は、ファイルシステムによりデータをファイルとして管理するための制御を行う。
情報記録モジュールアクセス部105は、ファイルシステム制御部102からデータと共にサイズとアドレスとを渡され、指定されたサイズのデータを情報記録モジュール2の記録領域内における指定された位置に記録するなど、情報記録モジュール2に対するコマンドやデータの送受信を制御する。
通常ファイル処理部103は、FAT(305、306)により領域管理される比較的小さなサイズのファイルにアクセスする処理を行う処理部である。
拡張ファイル処理部104は、本発明の特徴を示す処理部であり、本発明で規定するエクステント情報エントリ203により領域管理される比較的大きなサイズのファイルにアクセスする処理を行う処理部である。
<1.2:情報記録モジュールの構成>
一方、図1において、情報記録モジュール2は、アクセスモジュールインタフェース21、CPU22、RAM23、ROM24、不揮発性メモリ25を含む。
ROM24には、情報記録モジュール2を制御するプログラムが格納されており、このプログラムはRAM23を一時記憶領域として使用し、CPU22上で動作する。
不揮発性メモリ25は、アクセスモジュール1から送信されたデータを記録する領域であり、不揮発性メモリ25において、記録・再生・保持等されるデータは、FAT型ファイルシステム26により管理されている。すなわち、不揮発性メモリ25内の論理アドレス空間は、図2で示した構成を一例とするFAT型ファイルシステム26によるアドレス空間であり、不揮発性メモリ25に、記録(書き込み)・再生(読み出し)・保持等されるデータは、図2で示した構成を一例とするFAT型ファイルシステム26により定義されるデータ構造を有している。すなわち、不揮発性メモリ25の記録領域は、クラスタ単位に分割され、FAT(305、306)を用いて管理されており、ファイルやディレクトリの名称やサイズ等の情報は、ディレクトリエントリを用いて管理されている。
本発明では、これら一連のディレクトリエントリ群を「エントリシーケンス27」と呼ぶ。
(1.2.1:エントリシーケンス)
図1の不揮発性メモリ25内には、エントリシーケンス27の一例が示されている。
図1に示すように、このエントリシーケンス27は、基本エントリ201、名称エントリ202、エクステント情報エントリ203、更新情報エントリ204、ダミーエントリ205から構成されている。
更に、情報記録システム1000では、更新情報エントリ204、ダミーエントリ205を用いることにより、循環シフト型チェックサムを高速に算出することを実現している。
このように情報記録システム1000では、拡張ファイル処理部104で、エクステント情報エントリ203、更新情報エントリ204、ダミーエントリ205を用いたファイル管理を行う。これにより、情報記録システム1000では、循環シフト型チェックサムによりディレクトリエントリの信頼性を高める場合において、チェックサム再計算を効率的に行い、かつ、FAT型ファイルシステムの弱点であるシーク処理の高速化を実現する。
続いて、本発明の第1実施形態における、各ディレクトリエントリの詳細について説明する。本発明の第1実施形態では、ディレクトリエントリは、全て32バイトの固定長である場合を想定している。
各ディレクトリエントリは、先頭1バイトに「タイプフィールド」を持ち、そのフィールドに設定される値に応じて種々のディレクトリエントリが定義される。
本実施形態(情報記録システム1000)では、
(1)基本エントリ201、
(2)名称エントリ202、
(3)エクステント情報エントリ203、
(4)更新情報エントリ204、
(5)ダミーエントリ205、
の5種類のディレクトリエントリが存在する。
≪(1)基本エントリ201≫
図6は、基本エントリ201の構成を示す図である。
基本エントリ201は、ファイルの基本的な情報を格納するディレクトリエントリであり、全てのファイルのエントリシーケンス27に必ず1つずつ含まれるディレクトリエントリである。
“タイプ”フィールドは、基本エントリ201であることを示す固定値を格納するフィールドである。
“チェックサム”フィールドは、該当エントリシーケンス27の循環シフト型チェックサムの値を格納するフィールドである。本フィールドを設けることにより、1つのファイルに複数のディレクトリエントリを割り当てた場合においてもディレクトリエントリ間の不整合を検出し、ファイルシステムの信頼性を高めることが可能となる。
例えば、1つのファイルに複数のディレクトリエントリを割り当てる拡張FATファイルシステムにおいて、当該複数のディレクトリエントリのデータが、不揮発性メモリ25の2つのセクタ(または2つのクラスタ)に跨るデータ(セクタ境界のデータ(またはクラスタ境界のデータ))である場合を考える。この場合において、当該複数のディレクトリエントリのデータを不揮発性メモリ25に書き込んでいるときに、一方のセクタ(あるいはクラスタ)でデータ書き込みを完了し、その後、もう一方のセクタ(あるいはクラスタ)にデータ書き込みが完了しない間に、例えば、電源OFF等の事由によりデータ書き込み処理が中断された場合、当該ディレクトリエントリ間の整合がとれないことになる。このような場合、”チェックサム”フィールドのチェックサムにより、ディレクトリエントリ間の不整合を検出することができるので、ファイルシステムの信頼性を高めることができる。
“属性”フィールドは、読み取り専用属性やシステムファイル属性等のファイル属性を格納するフィールドである。
“タイムスタンプ”フィールドは、ファイルの作成日時や更新日時等のタイムスタンプを格納するフィールドである。
“タイムゾーン”フィールドは、タイムスタンプが設定された時点のタイムゾーンを格納するフィールドである。
“予約”フィールドは、今後の拡張性のために予約されているフィールドであり、通常は0x00を格納する。
“ファイルサイズ”フィールドは、ファイルのサイズを格納するフィールドである。
≪(2)名称エントリ202≫
図7は、名称エントリ202の構成を示す図である。
名称エントリ202は、ファイルの名称を格納するディレクトリエントリであり、基本エントリ201同様、全てのファイルのエントリシーケンス27に必ず1つずつ含まれるディレクトリエントリである。
“タイプ”フィールドは、名称エントリ202であることを示す固定値を格納するフィールドである。
“名前ハッシュ”フィールドは、ファイル名のハッシュ値を格納するフィールドである。
“ファイル名”フィールドは、ファイルの名称を格納するフィールドである。
≪(3)エクステント情報エントリ203≫
図8は、エクステント情報エントリ203の構成を示す図である。
エクステント情報エントリ203は、ファイルデータ格納領域の位置と大きさを示す情報を格納するディレクトリエントリであり、ファイルにより本エントリが存在する場合と存在しない場合があり得る。
1つのエクステント情報エントリ203は、1つの連続領域に関する情報を格納するため、ファイルが複数の連続領域から構成されている場合には、複数のエクステント情報エントリ203がエントリシーケンス27に含まれることになる。エクステント情報エントリ203は、連続領域の位置と大きさを示す情報を格納するため、連続領域が大きくても32バイトの固定長ディレクトリエントリで位置情報を管理することができる。そのため、ファイルをシークする場合には、FAT(305、306)を参照せず、エクステント情報エントリ203を参照することにより、シーク処理を高速化することが可能となる。
“予約”フィールドは、今後の拡張性のために予約されているフィールドであり、通常は0x00を格納する。
“開始クラスタ番号”フィールドは、連続領域の先頭クラスタ番号を格納するフィールドである。
“連続領域サイズ”フィールドは、連続領域の大きさを格納するフィールドである。
≪(4)更新情報エントリ204≫
図9は、更新情報エントリ204の構成を示す図である。
更新情報エントリ204は、基本エントリ201に存在するフィールドの内、ファイルを上書き、追記する際に更新される情報を格納するディレクトリエントリであり、ファイルによりこの更新情報エントリ204が存在する場合と存在しない場合があり得る。但し、更新情報エントリ204が存在する場合には、更新情報エントリ204は、エントリシーケンス27に1つのみ含まれる。本エントリをエントリシーケンス27内の後方に配置し、基本エントリ201に含まれるフィールドの更新が発生する場合には、本エントリのフィールドのみを更新することにより、最新の更新情報を保持する。
“タイプ”フィールドは、更新情報エントリ204であることを示す固定値を格納するフィールドである。
“予約”フィールドは、今後の拡張性のために予約されているフィールドであり、通常は0x00を格納する。
“タイムスタンプ”、“タイムゾーン”、“ファイルサイズ”フィールドは、基本エントリ201に存在する各フィールドと同様の情報を格納するフィールドである。
エントリシーケンス27に更新情報エントリ204が存在する場合、基本エントリ201内に存在するこれらのフィールド(“タイムスタンプ”、“タイムゾーン”、“ファイルサイズ”フィールド)は使用されず、更新情報エントリ204内に存在するフィールド(“タイムスタンプ”、“タイムゾーン”、“ファイルサイズ”フィールド)のみが使用される。
図10は、ダミーエントリ205の構成を示す図である。
ダミーエントリ205は、それ自体には有効なデータを含まず、循環シフト型チェックサムの算出オーバーヘッドを削減するために使用されるディレクトリエントリである。
“タイプ”フィールドは、ダミーエントリ205であることを示す固定値を格納するフィールドである。
“0x00パディング”は、循環シフト型チェックサムの算出を容易にするため、0x00を格納する。
情報記録システム1000では、これら各種ディレクトリエントリを組み合わせて、各ファイルに対応するエントリシーケンス27が構成される。
(1.2.3:通常ファイルのエントリシーケンス27)
情報記録システム1000において、比較的小さなサイズのファイル(以下、「通常ファイル」という。)を取り扱う場合は、アクセスモジュール1の通常ファイル処理部103により、FAT(305、306)を主に使用して領域管理を行う。
図11は、「通常ファイル」のエントリシーケンス27の一例を示した図である。
通常ファイルのエントリシーケンス27には、ファイルの基本的な情報を格納する基本エントリ201、ファイル名を格納する名称エントリ202が存在する。通常ファイルは、ファイルサイズが小さいため、FAT(305、306)を用いてシーク処理を実施しても短時間で処理が終了する。このため、情報記録システム1000において、通常ファイルに対する処理を行う場合、エクステント情報エントリ203は使用しない。したがって、図11に示すように、通常ファイルのエントリシーケンス27にもエクステント情報エントリ203は存在しない。
また、情報記録システム1000において、比較的大きなサイズのファイル(以下、「拡張ファイル」という。)を取り扱う場合は、アクセスモジュール1の拡張ファイル処理部104により、エクステント情報エントリ203を主に使用して領域管理を行う。
図12は、「拡張ファイル」のエントリシーケンス27の一例を示した図である。
拡張ファイルのエントリシーケンス27の先頭には、基本エントリ201、名称エントリ202が存在する。更にその後には、ファイルデータ格納領域の位置と大きさに関する情報を格納するエクステント情報エントリ203が1つ以上存在する。
また、エクステント情報エントリ203の終端の直後には、更新情報エントリ204が存在し、以降、任意の個数のダミーエントリ205が存在する。
<1.3:ファイルデータ書き込み処理手順>
続いて、情報記録システム1000におけるファイルデータ書き込み処理手順について、図13を用いて説明する。情報記録システム1000における書き込み処理手順は、「通常ファイル」と「拡張ファイル」とでは、大きく処理手順が異なる。
(S1301):
アクセスモジュール1は、書き込み対象ファイルのエントリシーケンス27を見つけ出し、基本エントリ201、名称エントリ202を情報記録モジュール2から読み出す。
(S1302):
アクセスモジュール1は、エントリシーケンス27にエクステント情報エントリ203が含まれるか判定する。エクステント情報エントリ203が含まれない「通常ファイル」の場合、S1303の処理に進む。また、エクステント情報エントリ203が含まれる「拡張ファイル」の場合、S1310の処理に進む。
(通常ファイルの場合の処理):
(S1303):
S1302の判定処理において、対象ファイルが「通常ファイル」であると判定された場合、アクセスモジュール1は、FAT(305、306)等の領域管理情報を参照し、空き領域を取得し、実際にファイルデータを空き領域に書き込む処理を情報記録モジュール2に対して指示する。情報記録モジュール2は、アクセスモジュール1の指示に従い、実際にファイルデータを、不揮発性メモリ25の空き領域に書き込む。
(S1304):
アクセスモジュール1からの指示により、情報記録モジュール2において、FAT(305、306)等の領域管理情報が更新され、更新された領域管理情報が情報記録モジュール2の不揮発性メモリ25に書き込まれる。
この処理も、従来のFAT型ファイルシステムにおける領域管理情報更新処理と同様のものである。
(S1305):
アクセスモジュール1は、基本エントリ201の“タイムスタンプ”、“タイムゾーン”、“ファイルサイズ”フィールドをアクセスモジュール1内のRAM12上で更新する。
アクセスモジュール1は、基本エントリ201、名称エントリ202を参照し、循環シフト型チェックサムを算出する。
(S1307):
アクセスモジュール1は、アクセスモジュール1内のRAM12上において、S1306で算出したチェックサムの値を、基本エントリ201の“チェックサム”のフィールドに格納する。
(S1308):
アクセスモジュール1は、情報記録モジュール2に対して、アクセスモジュール1内のRAM12上で更新した基本エントリ201を情報記録モジュール2に書き込むよう指示する。情報記録モジュール2は、アクセスモジュール1の指示に従い、アクセスモジュール1内のRAM12上で更新された基本エントリ201を情報記録モジュール2の不揮発性メモリ25に書き込む。
アクセスモジュール1は、書き込み対象の全ファイルデータの書き込みが完了したか否かを判定する。書き込みが完了した場合は処理を終了し、完了していない場合はS1303の処理に戻る。
(拡張ファイルの場合の処理):
(S1310):
一方、S1302の判定処理において、対象ファイルが「拡張ファイル」であると判定された場合、アクセスモジュール1は、エントリシーケンス27の先頭に存在する基本エントリ201から、エクステント情報エントリ203の終端まで参照し、循環シフト型チェックサムの値(C1)を算出する。
アクセスモジュール1は、FAT(305、306)等の領域管理情報を参照し、空き領域を取得し、実際にファイルデータを空き領域に書き込む処理を情報記録モジュール2に対して指示する。情報記録モジュール2は、アクセスモジュール1の指示に従い、実際にファイルデータを、不揮発性メモリ25の空き領域に書き込む。
この処理は、従来のFAT型ファイルシステムにおける空き領域取得、データ書き込み処理と同様のものである。
(S1312):
アクセスモジュール1は、FAT(305、306)等の領域管理情報を更新し、情報記録モジュール2に書き込む処理を情報記録モジュール2に対して指示する。情報記録モジュール2は、アクセスモジュール1の指示に従い、更新された領域管理情報を、不揮発性メモリ25に書き込む。
(S1313):
アクセスモジュール1は、アクセスモジュール1内のRAM12上において、エントリシーケンス27におけるエクステント情報エントリ203の終端、すなわち、更新情報エントリ204が存在する位置に、新しいエクステント情報エントリ203を追加する。この新しいエクステント情報エントリ203には、S1311で取得した空き領域の位置と大きさを示す情報を格納する。
(S1314):
アクセスモジュール1は、アクセスモジュール1内のRAM12上において、現在の更新情報エントリ204を最新のエクステント情報エントリ203の終端の直後に移動する。この際、“タイムスタンプ”、“タイムゾーン”、“ファイルサイズ”フィールドには、最新の情報を格納する。
アクセスモジュール1は、C1の値に、S1313で追加したエクステント情報エントリ203の循環シフト型チェックサムC_extentを加算する(C2)。すなわち、アクセスモジュール1は、
C2=C1+C_extent
に相当する処理を行う。
(S1316):
C2の値に、S1314で更新した更新情報エントリ204の循環シフト型チェックサムC_updateを加算する(C3)。すなわち、アクセスモジュール1は、
C3=C2+C_update
に相当する処理を行う。
エントリシーケンス27に含まれるダミーエントリ205の循環シフト型チェックサムを演算により算出し、算出したチェックサム値C_dummyをC3の値に加算する(C4)。すなわち、アクセスモジュール1は、
C4=C3+C_dummy
に相当する処理を行う。
ここで、チェックサムの値が16ビット長である場合、図5の循環シフト型チェックサム算出処理手順を適用すると、
「C4=C3+(“タイプ”フィールドの値)×ダミーエントリ数」
となることが分かる。これは、ダミーエントリ205のサイズが16の倍数長の32バイトであり、“0x00パディング”フィールドが全て0x00に設定されていることに起因する。すなわち、ダミーエントリ205のサイズが16の倍数長であることから、“タイプ”フィールドの加算すべきビット位置が常に一意に固定されおり、“タイプ”フィールドの値に関する算出処理は、単純に“タイプ”フィールドの値をダミーエントリ数分だけ加算するという処理に置き換えることが出来る。また、“0x00パディング”フィールドが全て0x00であることから、これらの値はチェックサムの値に影響を与えることがない。
なお、図5に示した循環シフト型チェックサム算出処理手順において、チェックサムの値のビット長は、必ずしも、上記のように16ビット長(2バイト長)にする必要はなく、例えば、チェックサムの値のビット長を、8ビット長(1バイト長)にしてもよい。
(S1318):
アクセスモジュール1は、アクセスモジュール1内のRAM12上において、S1317で算出したC4の値を、基本エントリ201の“チェックサム”のフィールドに格納する。
アクセスモジュール1は、情報記録モジュール2に対して、アクセスモジュール1内のRAM12上で更新した基本エントリ201、S1313で追加したエクステント情報エントリ203、更新情報エントリ204を情報記録モジュール2に書き込むよう指示する。情報記録モジュール2は、アクセスモジュール1の指示に従って、更新した基本エントリ201、S1313で追加したエクステント情報エントリ203、更新情報エントリ204を情報記録モジュール2の不揮発性メモリ25に書き込む。
(S1320):
アクセスモジュール1は、書き込み対象の全ファイルデータの書き込みが完了したか否かを判定する。書き込みが完了した場合は処理を終了し、完了していない場合はS1321の処理に進む。
S1320の判定処理において、全ファイルデータの書き込みが完了していないと判定された場合、C2の値をC1に代入し、S1311の処理に戻る。
≪エントリシーケンス27の構造の一例≫
このような処理手順を実施した場合、ファイルデータを追記する度にエクステント情報エントリ203が増加することになる。その際のエントリシーケンス27の構造の一例を、図14を用いて説明する。
図14(a)は、ファイルデータ書き込み前の初期状態のエントリシーケンス27の一例を示す。この状態で既に3つの連続領域にファイルデータが書き込まれた状態であり、各々の連続領域は、3つのエクステント情報エントリ203により管理されている。
この場合、S1310におけるC1の算出時に参照されるディレクトリエントリは、図14(b)に示す5つのディレクトリエントリ(図14(b)において、「C1の算出範囲」として示している5つのディレクトリエントリ)である。
同様に、C2、C3を算出する際に参照されるディレクトリエントリは、図14(b)に示す各々1つのディレクトリエントリ(図14(b)において、「C2の算出範囲」および「C3の算出範囲」として示しているディレクトリエントリ)である。
更に、S1317におけるC4の算出時に対象となるディレクトリエントリは、図14(b)に示す2つのディレクトリエントリ(図14(b)において、「C4の算出範囲」として示している2つのディレクトリエントリ)であるが、実際にはこれらのディレクトリエントリを参照する必要はなく、簡単な算術演算によりC4を算出することが可能である。
図14(c)は、図14(b)の状態に、更に、ファイルデータを追記した後の状態のエントリシーケンス27の一例を示す。
この場合、S1321において、既にC1(このC1は、図14(b)のC2と同一。)は算出されており、図14(c)の場合において、C2、C3を算出する際に参照されるディレクトリエントリは、図14(c)に示す各々1つのディレクトリエントリ(図14(c)に、「新C2の算出範囲」および「新C3の算出範囲」として示しているディレクトリエントリ)である。
すなわち、情報記録システム1000では、図14(b)で示す初回のファイルデータ追記時には、C1、C2、C3の算出のために、合計7つのディレクトリエントリの参照が必要である。
このように、情報記録システム1000におけるファイルデータ書き込み処理では、ファイルデータ追記時の循環シフト型チェックサム算出時に参照が必要なデータ量を削減することができる。その結果、情報記録システム1000では、高速にチェックサムを算出することが可能となる。
また、図13を用いて説明した処理手順では、基本エントリ201は、“チェックサム”フィールド以外のフィールドを更新していない。これは、更新情報エントリ204を使用していることに加え、ファイル作成時等に予め所定の個数のディレクトリエントリを格納する領域を確保しておき、その領域内の終端付近にはダミーエントリ205を格納しておくことにより、実現している。
このようにすることで、情報記録システム1000では、基本エントリ201内の“2次エントリの個数”フィールドには、常に“31”の値を格納しておけば良いことになり、基本エントリ201の更新が不要となる。但し、予め用意しておいたダミーエントリ205を全て消費してしまった場合は、新たにディレクトリエントリを格納する領域を確保し、ダミーエントリ205を格納する必要がある。この場合、基本エントリ201内の“2次エントリの個数”フィールドの値が変化するので、この場合に限り、情報記録システム1000では、エントリシーケンス27全体を参照して、循環シフト型チェックサムを再計算する必要が生じる。そのため、このような再計算が頻繁に発生しないよう、情報記録システム1000では、ファイル作成時には、ある程度の大きさのディレクトリエントリ領域を確保しておく。
更に、その複数のディレクトリエントリは、循環シフト型チェックサムにより信頼性が確保されており、情報記録システム1000において、大きなサイズのファイルを処理対象とする場合、当該大きなサイズのファイルについて、エクステント情報エントリ203により連続領域の位置と大きさを示す情報が管理されている。
これにより、情報記録システム1000では、FAT型ファイルシステムの弱点であるシーク処理を高速化することが可能となる。
更に、情報記録システム1000では、更新情報エントリ204とダミーエントリ205とを使用することにより、ファイルデータ書き込み時の循環シフト型チェックサムの再計算オーバーヘッドを削減し、高速化することが可能となる。
本実施形態では、情報記録システム1000において、「通常ファイル」と「拡張ファイル」との2種類のファイルを取り扱う場合について説明したが、これに限定されることはなく、例えば、全てのファイルを「拡張ファイル」として取り扱っても良い。
また、本実施形態で説明した各種ディレクトリエントリの構成は、一例であり、必要に応じてフィールドを追加、修正、削除しても良い。1つのディレクトリエントリに含まれる情報を複数のディレクトリエントリに分割しても良いし、逆に、複数のディレクトリエントリに含まれる情報を1つのディレクトリエントリに含ませても良い。例えば、名称エントリ202に含まれる“ファイル名”フィールドを独立した別のディレクトリエントリに移動させる場合が考えられる。このようにすることで、ファイル名が名称エントリ202に格納可能な28バイトを超えた場合においても、ファイル名のみを格納する独立したディレクトリエントリを複数個、エントリシーケンス27に格納することにより、容易に対応することが可能となる。
また、本実施形態で説明したエントリシーケンス27の構成は一例であり、必要に応じて、新たなディレクトリエントリを定義し、エントリシーケンス27に追加しても良いし、その他の変更を加えても良い。
また、S1311、S1312の処理では、領域管理情報としてFAT(305、306)を用いる場合について説明したが、必ずしもFAT(305、306)を用いる必要はない。
また、図13の処理手順では、拡張ファイルへのデータ書き込み時において、空き領域を取得する度にエクステント情報エントリ203を追加する場合について説明した。
しかしながら、S1311で取得した空き領域が、現在の書き込みデータの直前のファイルデータを格納した領域と連続している領域の場合、必ずしもエクステント情報エントリ203を追加する必要はない。
また、上記では、循環シフト型チェックサムによりディレクトリエントリの信頼性を高める場合について説明したが、これに限定されることはなく、例えば、CRC、ハッシュ値(ハッシュ関数)など、循環シフト型チェックサム以外の方法を用いても良い。
また、基本エントリ201の“2次エントリの個数”フィールドが1バイトである例について説明したが、この場合、エントリシーケンス27の大きさは最大でも256個のディレクトリエントリとなる。フィールドを2バイトに拡張して、より多くのディレクトリエントリをエントリシーケンス27に含められるようにしても良いが、その他の方法として、複数のエントリシーケンス27を接続して、1つのファイルの管理情報を格納する方法が考えられる。
図16において、基本エントリ201内の“2次エントリの個数”フィールドは、“255”に設定されており、基本エントリ201内の“チェックサム”フィールドには、先頭256エントリ分のチェックサムが保持される。257番目のディレクトリエントリには、接続エントリ206が格納され、直前のエントリシーケンス27がまだ継続していることを示す。このように256エントリ毎に接続エントリ206を挿入することにより、1ファイルに割り当てられるディレクトリエントリの個数を増加させることが可能となる。
[第2実施形態]
続いて、本発明の第2実施形態について説明する。
本実施形態の情報記録システム2000(図17参照)は、第1実施形態の情報記録システム1000(図1参照)とは、情報記録モジュール2内の不揮発性メモリ25に構築されているFAT型ファイルシステム26内の構成が異なる。それ以外については、情報記録システム2000は、情報記録システム1000とは同様であるので、詳細な説明は省略する。
第1実施形態の情報記録システム1000では、エントリシーケンス27内に、エクステント情報エントリ203、更新情報エントリ204、ダミーエントリ205が存在していたが、第2実施形態の情報記録システム2000では、これらのエントリは、エントリシーケンス27内には存在せず、代わりにエクステント領域指定エントリ207が追加されている。第2実施形態の情報記録システム2000では、エクステント情報エントリ203を直接エントリシーケンス27内に格納するのではなく、任意のクラスタを割り当てて、その中に格納するようにする。
≪エクステント領域指定エントリ207の構成≫
図18は、エクステント領域指定エントリ207の構成を示す図である。
エクステント領域指定エントリ207は、該当ファイルのエクステント情報エントリ203を格納する領域の位置を示す情報を格納するディレクトリエントリである。
“タイプ”フィールドは、エクステント領域指定エントリ207であることを示す固定値を格納するフィールドである。
“予約”フィールドは、今後の拡張性のために予約されているフィールドであり、通常は0x00を格納する。
“エクステント領域サイズ”フィールドは、上記領域全体の大きさを格納するフィールドである。
本実施形態の情報記録システム2000では、エントリシーケンス27は、基本エントリ201、名称エントリ202、エクステント領域指定エントリ207から構成される。
エクステント情報エントリ203は、エクステント領域指定エントリ207で示される任意のクラスタ内に格納されるため、エントリシーケンス27には含まれない。その結果、情報記録システム2000では、エントリシーケンス27の大きさが小さく抑えられ、循環シフト型チェックサムの算出を高速に行うことが可能となる。そのため、タイムスタンプやファイルサイズ等の情報は、直接基本エントリ201を更新することにより実施され、更新情報エントリ204は、不要となる。
≪ファイルデータ書き込み処理手順≫
続いて、情報記録システム2000におけるファイルデータ書き込み処理手順について、図19を用いて説明する。
図19の処理手順は、図13で説明した処理手順と同様に、「通常ファイル」と「拡張ファイル」によって、処理内容が異なる。
(S1901):
アクセスモジュール1は、書き込み対象ファイルのエントリシーケンス27を見つけ出し、基本エントリ201、名称エントリ202を情報記録モジュール2から読み出す。
アクセスモジュール1は、エクステント領域指定エントリ207を参照し、エクステント領域28にエクステント情報エントリ203が含まれているか否かを判定する。
エクステント領域28にエクステント情報エントリ203が含まれない「通常ファイル」の場合、S1903の処理に進む。また、エクステント領域28にエクステント情報エントリ203が含まれる「拡張ファイル」の場合、S1910の処理に進む。
なお、「通常ファイル」に対する処理であるS1903以降の処理は、図13で説明した処理手順と同様であるため、説明を省略する。
(拡張ファイルの場合の処理):
(S1910):
S1902の判定処理において、対象ファイルが「拡張ファイル」であると判定された場合、アクセスモジュール1は、情報記録モジュール2に対して、FAT(305、306)等の領域管理情報を参照し、空き領域を取得し、実際にファイルデータを空き領域に書き込むよう指示する。情報記録モジュール2は、アクセスモジュール1の指示に従い、実際にファイルデータを、不揮発性メモリ25の空き領域に書き込む
この処理は、従来のFAT型ファイルシステムにおける空き領域取得、データ書き込み処理と同様のものである。
アクセスモジュール1は、FAT(305、306)等の領域管理情報を更新し、情報記録モジュール2に書き込む処理を情報記録モジュール2に対して指示する。情報記録モジュール2は、アクセスモジュール1の指示に従い、更新された領域管理情報を、不揮発性メモリ25に書き込む。
この処理も、従来のFAT型ファイルシステムにおける領域管理情報更新処理と同様のものである。
(S1912):
アクセスモジュール1は、基本エントリ201の“タイムスタンプ”、“タイムゾーン”、“ファイルサイズ”フィールドをアクセスモジュール1内のRAM12上で更新する。
アクセスモジュール1は、情報記録モジュール2に対して、エクステント情報エントリ203をエクステント領域28として割り当てられている任意のクラスタ内に追加し、情報記録モジュール2に書き込むよう指示する。情報記録モジュール2は、アクセスモジュール1の指示に従い、エクステント情報エントリ203をエクステント領域28として割り当てられている任意のクラスタ内に追加し、情報記録モジュール2に書き込む。
ここで、エクステント情報エントリ203には、S1910で取得した空き領域の位置と大きさを示す情報を格納する。
また、エクステント情報エントリ203の追加によりエクステント領域28の大きさが変化するため、アクセスモジュール1は、エクステント領域指定エントリ207の“エクステント領域サイズ”フィールドをアクセスモジュール1内のRAM12上で更新する。
アクセスモジュール1は、基本エントリ201、名称エントリ202、エクステント領域指定エントリ207を参照し、循環シフト型チェックサムを算出する。
(S1915):
アクセスモジュール1は、アクセスモジュール1内のRAM12上において、S1914で算出したチェックサムの値を、基本エントリ201の“チェックサム”のフィールドに格納する。
(S1916):
アクセスモジュール1は、情報記録モジュール2に対して、アクセスモジュール1内のRAM12上で更新した基本エントリ201、エクステント領域指定エントリ207を情報記録モジュール2に書き込むよう指示する。情報記録モジュール2は、アクセスモジュール1の指示に従い、更新された基本エントリ201、エクステント領域指定エントリ207を情報記録モジュール2の不揮発性メモリ25に書き込む。
アクセスモジュール1は、書き込み対象の全ファイルデータの書き込みが完了したか否かを判定する。書き込みが完了した場合は処理を終了し、完了していない場合はS1910の処理に戻る。
このように、情報記録システム2000では、拡張ファイルにおいて任意のクラスタをエクステント領域28として割り当て、その領域にエクステント情報エントリ203を格納することにより、該当ファイルのエントリシーケンス27の大きさが増加することを防止し、循環シフト型チェックサムの算出オーバーヘッドを削減することが可能となる。
以上のように、情報記録システム2000では、情報記録モジュール2の不揮発性メモリ25がFAT型ファイルシステム26で管理されており、1つのファイルに複数のディレクトリエントリが割り当てられる。
これにより、情報記録システム2000では、FAT型ファイルシステムの弱点であるシーク処理を高速化することが可能となる。
更に、情報記録システム2000では、任意のクラスタをエクステント領域28として該当ファイルに割り当て、その中にエクステント情報エントリ203を格納する。
これにより、エントリシーケンス27の大きさが増加することを防止し、ファイルデータ書き込み時の循環シフト型チェックサムの再計算オーバーヘッドを削減し、高速化することが可能となる。
また、本発明の第2実施形態では、エクステント領域28に、エクステント情報エントリ203を格納する場合の例について説明した。しかしながら、エクステント領域28は、エントリシーケンス27が格納される通常のディレクトリ領域とは異なる領域である。そのため、エクステント領域28は、エントリシーケンス27と同様にエントリを取り扱う必要がなく、必ずしも32バイトのエントリの形式を取る必要はない。
例えば、4バイトの開始クラスタ番号と、8バイトのエクステント領域サイズのみから構成される12バイトのエントリを1つの単位として、エクステント領域28に複数のエントリが詰めて格納されるような構成としても良い。
例えば、基本エントリ201の“ファイルサイズ”フィールドで、該当ファイルのサイズを認識し、その値とエクステント領域28に格納されているエクステント情報エントリ203の“連続領域サイズ”フィールドとの総和を比較し、“ファイルサイズ”と同じサイズに総和が達した時点で、エクステント領域28が終端されていることを検出するようにしても良い。
また、情報記録システム2000において、エクステント領域28のデータ書き込みされていない領域(実体データが存在しない領域)に、データ”0x00”を書き込んでおき(いわゆる、0スタッフィング(0パッディング)処理をしておき)、エクステント領域28において、順次、書き込まれているデータ値をチェックしていき、データ値が”0x00”である領域が出現した位置の直前が、エクステント領域28の終端位置(実体データが書き込まれている領域の終端位置)であると検出するようにしても良い。
なお、上記実施形態で説明したアクセスモジュール(アクセス装置)、情報記録モジュール(情報記録装置)、及び情報記録システムにおいて、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係るアクセスモジュール(アクセス装置)、情報記録モジュール(情報記録装置)、及び情報記録システムをハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
[付記]
なお、本発明は、次のように表現することも可能である。
(付記1)
ファイルデータを格納する不揮発性メモリを含む情報記録装置にアクセスするアクセス装置であって、
前記ファイルデータを固定長ブロック単位で管理し、1つ以上の前記固定長ブロックから構成される連続領域の管理情報として、少なくとも前記連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリと、
前記固定長ブロック間のリンク関係を示す情報を管理するファイルアロケーションテーブルと、
ファイルごとに生成され、ファイルの名称やサイズの情報を含む管理情報を格納する1つ以上の固定長エントリと、前記1つ以上の固定長エントリのチェックサムに関する情報を当該エントリ群の内部に含むエントリ群と、
を用いて、前記ファイルの管理を行うファイルシステム制御部
を備えるアクセス装置。
(付記2)
前記エントリ群は、内部に前記エクステント情報エントリを含む、
付記1に記載のアクセス装置。
(付記3)
前記ファイルシステム制御部は、
前記ファイルのデータを格納する独立した連続領域が増加する度に、前記連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリを、前記エントリ群に追加する、
付記2に記載のアクセス装置。
(付記4)
前記ファイルシステム制御部は、
ファイルが作成される際に、所定の個数のエントリを含むエントリ群を構成し、
前記エントリ群の中で有効な情報を格納していないエントリには、所定の形式のダミーエントリを格納する、
付記3に記載のアクセス装置。
(付記5)
前記ファイルシステム制御部は、
前記ダミーエントリにおいて、前記ダミーエントリであることを示す識別子を格納するフィールド以外の全ての領域に、所定の値を格納する、
付記4に記載のアクセス装置。
(付記6)
前記ファイルシステム制御部は、
前記エントリ群に
前記エクステント情報エントリを追加する際に、前記ダミーエントリを削除し、前記エントリ群全体の大きさを変化させない、
付記5に記載のアクセス装置。
(付記7)
前記ファイルシステム制御部は、
前記エントリ群に対応するファイルの大きさやタイムスタンプに関する情報を格納する更新情報エントリを、前記エクステント情報エントリの後ろに格納する、
付記3に記載のアクセス装置。
(付記8)
前記ファイルシステム制御部は、
前記エントリ群に前記エクステント情報エントリを追加する際には、前記更新情報エントリの格納位置を後方にずらす、
付記7に記載のアクセス装置。
(付記9)
前記チェックサムに関する情報は、循環シフト型チェックサムによる算出結果を含む情報である、
付記2に記載のアクセス装置。
(付記10)
前記ファイルシステム制御部は、
前記エクステント情報エントリが追加される際に、追加される前記エクステント情報エントリ、及び、前記更新情報エントリに基づいた演算と、
前記エントリ群に含まれる前記ダミーエントリの個数を元にした演算と、で前記循環シフト型チェックサムを算出する、
付記9に記載のアクセス装置。
(付記11)
前記ファイルシステム制御部は、
ファイルにアクセスする場合、
前記ファイルに対応する前記エントリ群が前記エクステント情報エントリを含むときは、前記エクステント情報エントリに基づいて、前記ファイルに対するアクセス制御を行う拡張ファイル処理部と、
前記ファイルに対応する前記エントリ群が前記エクステント情報エントリを含まないときは、前記ファイルアロケーションテーブルに基づいて、前記ファイルに対するアクセス制御を行う通常ファイル処理部と、
備える、
付記1から10のいずれかに記載のアクセス装置。
(付記12)
ファイルデータを格納する不揮発性メモリを含む情報記録装置であって、
前記ファイルデータは、固定長ブロック単位で管理されており、
前記不揮発性メモリには、
1つ以上の前記固定長ブロックから構成される連続領域の管理情報として、少なくとも前記連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリと、
前記固定長ブロック間のリンク関係を示す情報を管理するファイルアロケーションテーブルと、
ファイルごとに生成され、ファイルの名称やサイズの情報を含む管理情報を格納する1つ以上の固定長エントリから構成されるエントリ群であって、前記ファイルに関連するエントリ群のチェックサムに関する情報を当該エントリ群の内部に含むエントリ群と、
を格納する、
情報記録装置。
(付記13)
前記エントリ群は、内部に前記エクステント情報エントリを含む、
付記12に記載の情報記録装置。
(付記14)
前記エントリ群は、
前記ファイルのデータを格納する独立した連続領域が増加する度に、前記連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリを追加する構成である、
付記13に記載の情報記録装置。
(付記15)
前記エントリ群は、
ファイルが作成される際に、所定の個数のエントリを含む構成であり、
前記エントリ群の中で有効な情報を格納していないエントリには、所定の形式のダミーエントリが格納される、
付記14に記載の情報記録装置。
(付記16)
前記ダミーエントリは、
前記ダミーエントリであることを示す識別子を格納するフィールド以外の全ての領域に、所定の値が格納される、
付記15に記載の情報記録装置。
(付記17)
前記エントリ群は、
前記エクステント情報エントリが追加される際には、前記ダミーエントリを削除することで、前記エントリ群全体の大きさが変化しない構成である、
付記16に記載の情報記録装置。
(付記18)
前記エントリ群は、
前記エントリ群に対応するファイルの大きさやタイムスタンプに関する情報を格納する更新情報エントリを前記エクステント情報エントリの後ろに格納する構成である、
付記14に記載の情報記録装置。
(付記19)
前記エントリ群は、
前記エクステント情報エントリが追加される際には、前記更新情報エントリの格納位置を後方にずらす構成である、
付記18に記載の情報記録装置。
(付記20)
前記チェックサムに関する情報は、循環シフト型チェックサムによる算出結果を含む情報である、
付記12に記載の情報記録装置。
(付記21)
ファイルデータを格納する不揮発性メモリを含む情報記録装置と、前記情報記録装置にアクセスするアクセス装置と、備える情報記録システムであって、
前記ファイルデータを、固定長ブロック単位で管理し、
前記不揮発性メモリには、
1つ以上の前記固定長ブロックから構成される連続領域の管理情報として、少なくとも前記連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリと、
前記固定長ブロック間のリンク関係を示す情報を管理するファイルアロケーションテーブルと、
ファイルごとに生成され、ファイルの名称やサイズ等の管理情報を格納する1つ以上の固定長エントリと、前記1つ以上の固定長エントリのチェックサムに関する情報と、を内部に含むエントリ群と、
を格納し、
前記アクセス装置は、
前記不揮発性メモリ内に格納された情報を用いて前記不揮発性メモリ内に格納されたファイルの管理を行うファイルシステム制御部を備える、
情報記録システム。
(付記22)
前記エクステント情報エントリは、前記エントリ群の内部に格納される、
付記21に記載の情報記録システム。
(付記23)
付記1から11のいずれかに記載のアクセス装置と、
付記12から22のいずれかに記載の情報記録装置と、
を備える情報記録システム。
(付記24)
ファイルデータを格納する不揮発性メモリを用いるファイル管理方法であって、
前記ファイルデータを固定長ブロック単位で管理するためのエクステント情報エントリであって、1つ以上の前記固定長ブロックから構成される連続領域の管理情報として、少なくとも前記連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリと、
前記固定長ブロック間のリンク関係を示す情報を管理するファイルアロケーションテーブルと、
ファイルごとに生成され、ファイルの名称やサイズの情報を含む管理情報を格納する1つ以上の固定長エントリと、前記1つ以上の固定長エントリのチェックサムに関する情報を当該エントリ群の内部に含むエントリ群と、
を用いて、前記ファイルの管理を行う、
ファイル管理方法。
(付記25)
付記24に記載のファイル管理方法をコンピュータに実行させるプログラム。
第1の発明は、ファイルデータを格納する不揮発性メモリを含む情報記録装置にアクセスするアクセス装置であって、エクステント情報エントリと、ファイルアロケーションテーブルと、エントリ群と、用いてファイルの管理を行うファイルシステム制御部を備える。
エクステント情報エントリは、ファイルデータを固定長ブロック単位で管理し、1つ以上の固定長ブロックから構成される連続領域の管理情報として、少なくとも連続領域の位置と大きさを特定するための情報を含む。ファイルアロケーションテーブルは、固定長ブロック間のリンク関係を示す情報を管理する。エントリ群は、ファイルごとに生成され、ファイルの名称やサイズの情報を含む管理情報を格納する1つ以上の固定長エントリと、1つ以上の固定長エントリのチェックサムに関する情報を当該エントリ群の内部に含む。
したがって、このアクセス装置では、例えば、エクステント情報エントリにより管理されるサイズの大きなファイル(拡張ファイル)と、それ以外の通常ファイルとを効率良く管理することができる。また、このアクセス装置では、エクステント情報エントリによりファイル管理を行うことができるので、FAT型ファイルシステムの弱点であるシーク処理の高速化を実現することができる。
さらに、このアクセス装置では、エントリ群に、ファイルに関連するエントリ群のチェックサムに関する情報が含まれているので、エントリ間の不整合を検出することができる。その結果、このアクセス装置が扱うファイルシステムの信頼性を高めることも可能となる。
第2の発明は、第1の発明であって、エントリ群は、内部にエクステント情報エントリを含む。
第3の発明は、第2の発明であって、ファイルシステム制御部は、ファイルのデータを格納する独立した連続領域が増加する度に、連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリを、エントリ群に追加する。
第4の発明は、第3の発明であって、ファイルシステム制御部は、ファイルが作成される際に、所定の個数のエントリを含むエントリ群を構成し、エントリ群の中で有効な情報を格納していないエントリには、所定の形式のダミーエントリを格納する。
第5の発明は、第4の発明であって、ファイルシステム制御部は、ダミーエントリにおいて、ダミーエントリであることを示す識別子を格納するフィールド以外の全ての領域に、所定の値を格納する。
なお、「所定の値」は、例えば、”0x00”である。これにより、チェックサムの算出処理を簡略化することができる。
第6の発明は、第5の発明であって、ファイルシステム制御部は、エントリ群に、エクステント情報エントリを追加する際には、ダミーエントリを削除し、エントリ群全体の大きさを変化させない。
このアクセス装置では、エントリ群全体の大きさが変化しないので、アクセス装置でのチェックサムの算出処理の対象となる領域が固定となる。その結果、アクセス装置でのチェックサムの算出処理を高速化することができる。
第7の発明は、第3の発明であって、ファイルシステム制御部は、エントリ群において、エントリ群に対応するファイルの大きさやタイムスタンプに関する情報を格納する更新情報エントリを、エクステント情報エントリの後ろに格納する。
なお、「後ろに格納する」とは、論理アドレス空間において、後段の論理アドレス位置に格納することを意味する。したがって、上記では、エクステント情報エントリが格納されている論理アドレス空間領域に続く論理アドレス空間領域に、更新情報エントリが格納されることになる。
第8の発明は、第7の発明であって、ファイルシステム制御部は、エントリ群に、エクステント情報エントリを追加する際には、更新情報エントリの格納位置を後方にずらす。
なお、「後方にずらす」とは、論理アドレス空間において、領域を後方にずらすという意味である。
このアクセス装置では、循環シフト型チェックサムによりチェックサム演算処理が行われるので、単純なチェックサムによりチェックサム演算処理を行う場合に比べて、エントリ間の不整合をより高精度に検出することができる。
第10の発明は、第9の発明であって、ファイルシステム制御部は、エクステント情報エントリが追加される際に、追加されるエクステント情報エントリ、及び、更新情報エントリに基づいた演算と、エントリ群に含まれるダミーエントリの個数を元にした演算と、で、循環シフト型チェックサムを算出する。
第11の発明は、第1から第10のいずれかの発明であって、ファイルシステム制御部は、拡張ファイル処理部と、通常ファイル処理部と、を備える。
ファイルにアクセスする場合、通常ファイル処理部は、ファイルに対応するエントリ群がエクステント情報エントリを含まないときは、ファイルアロケーションテーブルに基づいて、ファイルに対するアクセス制御を行う。
第12の発明は、ファイルデータを格納する不揮発性メモリを含む情報記録装置である。不揮発性メモリには、エクステント情報エントリと、ファイルアロケーションテーブルと、エントリ群と、が格納される。
ファイルデータは、固定長ブロック単位で管理されている。
この情報記録装置では、例えば、アクセス装置から制御されることで、エクステント情報エントリとファイルアロケーションテーブル(FAT)との両方で、ファイル管理を行うことができる。
したがって、この情報記録装置では、例えば、エクステント情報エントリにより管理されるサイズの大きなファイル(拡張ファイル)と、それ以外の通常ファイルとを効率良く管理することができる。また、この情報記録装置を用いることで、エクステント情報エントリによりファイル管理を行うことができ、FAT型ファイルシステムの弱点であるシーク処理の高速化を実現することができる。
なお、「情報記録装置」は、情報記録モジュールを含む概念である。
第13の発明は、第12の発明であって、エントリ群は、内部にエクステント情報エントリを含む。
第14の発明は、第13の発明であって、エントリ群は、ファイルのデータを格納する独立した連続領域が増加する度に、連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリを追加することができる構成である。
第16の発明は、第15の発明であって、ダミーエントリは、ダミーエントリであることを示す識別子を格納するフィールド以外の全ての領域に、所定の値が格納される。
第17の発明は、第16の発明であって、エントリ群は、エクステント情報エントリが追加される際には、ダミーエントリを削除することにより、エントリ群全体の大きさが変化しないように構成される。
第18の発明は、第14の発明であって、エントリ群は、エントリ群に対応するファイルの大きさやタイムスタンプに関する情報を格納する更新情報エントリをエクステント情報エントリの後ろに格納するように構成される。
第20の発明は、第12の発明であって、チェックサムに関する情報は、循環シフト型チェックサムによる算出結果を含む情報である。
第21の発明は、ファイルデータを格納する不揮発性メモリを含む情報記録装置と、情報記録装置にアクセスするアクセス装置と、備える情報記録システムである。
ファイルデータは、固定長ブロック単位で管理される。
不揮発性メモリには、エクステント情報エントリと、ファイルアロケーションテーブルと、エントリ群と、を格納することができる。
エクステント情報エントリは、1つ以上の固定長ブロックから構成される連続領域の管理情報として、少なくとも連続領域の位置と大きさを特定するための情報を含む。ファイルアロケーションテーブルは、固定長ブロック間のリンク関係を示す情報を管理する。エントリ群は、ファイルごとに生成され、ファイルの名称やサイズ等の管理情報を格納する1つ以上の固定長エントリと、1つ以上の固定長エントリのチェックサムに関する情報と、内部に含む。
この情報記録システムでは、ファイルシステム制御部により、エクステント情報エントリとファイルアロケーションテーブル(FAT)との両方で、ファイル管理を行うことができる。
したがって、この情報記録システムでは、例えば、エクステント情報エントリにより管理されるサイズの大きなファイル(拡張ファイル)と、それ以外の通常ファイルとを効率良く管理することができる。また、この情報記録システムでは、エクステント情報エントリによりファイル管理を行うことができるので、FAT型ファイルシステムの弱点であるシーク処理の高速化を実現することができる。
第22の発明は、第21の発明であって、エクステント情報エントリは、エントリ群の内部に格納される。
第23の発明は、第1から第11のいずれかの発明であるアクセス装置と、第12から第22のいずれかの発明である情報記録装置と、を備える情報記録システムである。
第24の発明は、ファイルデータを格納する不揮発性メモリを用いるファイル管理方法である。このファイル管理方法は、エクステント情報エントリと、ファイルアロケーションテーブルと、エントリ群と、を用いて、ファイルの管理を行う。
このファイル管理方法では、エクステント情報エントリとファイルアロケーションテーブル(FAT)との両方で、ファイル管理を行うことができる。
したがって、このファイル管理方法では、例えば、エクステント情報エントリにより管理されるサイズの大きなファイル(拡張ファイル)と、それ以外の通常ファイルとを効率良く管理することができる。また、このファイル管理方法では、エクステント情報エントリによりファイル管理を行うことができるので、FAT型ファイルシステムの弱点であるシーク処理の高速化を実現することができる。
第25の発明は、第24の発明であるファイル管理方法をコンピュータに実行させるプログラムである。
これにより、第24の発明と同様の効果を奏するプログラムを実現することができる。
更に、その複数のディレクトリエントリは、循環シフト型チェックサムにより信頼性が確保されており、大きなサイズのファイルを扱う場合、エクステント情報エントリ203により連続領域の位置と大きさを示す情報を管理する。これにより、本発明の情報記録システムでは、FAT型ファイルシステムの弱点であるシーク処理を高速化することが可能となる。
更に、本発明の情報記録システムでは、更新情報エントリ204とダミーエントリ205を使用する、あるいは、エクステント領域指定エントリ207を使用することにより、ファイルデータ書き込み時の循環シフト型チェックサムの再計算オーバーヘッドを削減し、高速化することが可能となる。このような情報記録システムを構成するアクセスモジュール1は、音楽や静止画、動画などのデジタルコンテンツを取り扱う機器、とりわけ1ファイルのサイズが大きなコンテンツを取り扱う機器に最適であり、PCアプリケーション、オーディオレコーダ、DVDレコーダ、HDDレコーダ、ムービー、デジタルスチルカメラ、携帯電話端末等として利用することができる。
1 アクセスモジュール
2 情報記録モジュール
11,22 CPU
12,23 RAM
13 情報記録モジュールインタフェース
14,24 ROM
21 アクセスモジュールインタフェース
25 不揮発性メモリ
26 FAT型ファイルシステム
27 エントリシーケンス
28 エクステント領域
101 アプリケーション制御部
102 ファイルシステム制御部
103 通常ファイル処理部
104 拡張ファイル処理部
105 情報記録モジュールアクセス部
201 基本エントリ
202 名称エントリ
203 エクステント情報エントリ
204 更新情報エントリ
205 ダミーエントリ
206 接続エントリ
207 エクステント領域指定エントリ
301 ファイルシステム管理情報領域
302 ユーザデータ領域
303 マスターブートレコード・パーティションテーブル
304 パーティションブートセクタ
305,306 FAT
307 ルートディレクトリエントリ
308 ディレクトリエントリ
Claims (14)
- ファイルデータを格納する不揮発性メモリを含む情報記録装置にアクセスするアクセス装置であって、
前記ファイルデータを固定長ブロック単位で管理し、1つ以上の前記固定長ブロックから構成される連続領域の管理情報として、少なくとも前記連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリと、
前記固定長ブロック間のリンク関係を示す情報を管理するファイルアロケーションテーブルと、
ファイルごとに生成され、ファイルの名称やサイズの情報を含む管理情報を格納する1つ以上の固定長エントリと、前記1つ以上の固定長エントリのチェックサムに関する情報と、を内部に含むエントリ群と、
を用いて、前記ファイルの管理を行うファイルシステム制御部
を備え、
(1)前記ファイルシステム制御部は、
前記エクステント情報エントリを、前記エントリ群の外部の領域であり、任意の前記固定長ブロックから構成されるエクステント領域内に格納し、
(2)前記エントリ群は、
前記エクステント領域の位置と大きさを特定するための情報を含むエクステント領域指定エントリを含み、
(3)前記ファイルシステム制御部は、
ファイルにアクセスする場合、
前記ファイルに対応する前記エントリ群が前記エクステント領域指定エントリを含むときは、前記エクステント領域指定エントリおよび前記エクステント領域用エクステント情報エントリに基づいて、前記ファイルに対するアクセス制御を行う拡張ファイル処理部と、
前記ファイルに対応する前記エントリ群が前記エクステント領域指定エントリを含まないときは、前記ファイルアロケーションテーブルに基づいて、前記ファイルに対するアクセス制御を行う通常ファイル処理部と、
を備える、
アクセス装置。 - 前記ファイルシステム制御部は、
前記ファイルのデータを格納する独立した連続領域が増加する度に、前記連続領域の位置と大きさを特定するための情報を含むエクステント領域用エクステント情報エントリを、前記エクステント領域に追加する、
請求項1に記載のアクセス装置。 - 前記エクステント領域用エクステント情報エントリのバイト長は、前記エントリ群に含まれるエントリと同一バイト長である、
請求項2に記載のアクセス装置。 - 前記エクステント領域用エクステント情報エントリのバイト長は、前記エントリ群に含まれるエントリと異なるバイト長である、
請求項2に記載のアクセス装置。 - 前記チェックサムに関する情報は、循環シフト型チェックサムによる算出結果を含む情報である、
請求項1から4のいずれかに記載のアクセス装置。 - ファイルデータを格納する不揮発性メモリを含む情報記録装置であって、
前記ファイルデータを、固定長ブロック単位で管理し、
前記不揮発性メモリには、
1つ以上の前記固定長ブロックから構成される連続領域の管理情報として、少なくとも前記連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリと、
前記固定長ブロック間のリンク関係を示す情報を管理するファイルアロケーションテーブルと、
ファイルごとに生成され、ファイルの名称やサイズの情報を含む管理情報を格納する1つ以上の固定長エントリと、前記1つ以上の固定長エントリのチェックサムに関する情報と、を内部に含むエントリ群と、
を格納し、
(1)前記エクステント情報エントリは、
前記エントリ群の外部の領域であり、任意の前記固定長ブロックから構成されるエクステント領域内に格納され、
(2)前記エントリ群は、
前記エクステント領域の位置と大きさを特定するための情報を含むエクステント領域指定エントリを含み、
(3)ファイルにアクセスする場合、
前記ファイルに対応する前記エントリ群が前記エクステント領域指定エントリを含むときは、前記エクステント領域指定エントリおよび前記エクステント領域用エクステント情報エントリに基づいて、前記ファイルに対するアクセス制御を行い、
前記ファイルに対応する前記エントリ群が前記エクステント領域指定エントリを含まないときは、前記ファイルアロケーションテーブルに基づいて、前記ファイルに対するアクセス制御を行う、
情報記録装置。 - 前記エクステント領域は、
前記ファイルのデータを格納する独立した連続領域が増加する度に、前記連続領域の位置と大きさを特定するための情報を含むエクステント領域用エクステント情報エントリが追加される構成である、
請求項6に記載の情報記録装置。 - 前記エクステント領域用エクステント情報エントリのバイト長は、前記エントリ群に含まれるエントリと同一バイト長である、
請求項7に記載の情報記録装置。 - 前記エクステント領域用エクステント情報エントリのバイト長は、前記エントリ群に含まれるエントリと異なるバイト長である、
請求項7に記載の情報記録装置。 - 前記チェックサムに関する情報は、循環シフト型チェックサムによる算出結果を含む情報である、
請求項6から9のいずれかに記載の情報記録装置。 - ファイルデータを格納する不揮発性メモリを含む情報記録装置と、前記情報記録装置にアクセスするアクセス装置と、備える情報記録システムであって、
前記ファイルデータを、固定長ブロック単位で管理し、
前記不揮発性メモリには、
1つ以上の前記固定長ブロックから構成される連続領域の管理情報として、少なくとも前記連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリと、
前記固定長ブロック間のリンク関係を示す情報を管理するファイルアロケーションテーブルと、
ファイルごとに生成され、ファイルの名称やサイズ等の管理情報を格納する1つ以上の固定長エントリと、前記1つ以上の固定長エントリのチェックサムに関する情報と、を内部に含むエントリ群と、
を格納し、
前記アクセス装置は、
前記不揮発性メモリ内に格納された情報を用いて前記不揮発性メモリ内に格納されたファイルの管理を行うファイルシステム制御部
を備え、
(1)前記エクステント情報エントリは、
前記エントリ群の外部の領域であり、任意の前記固定長ブロックから構成されるエクステント領域内に格納される、
(2)前記エントリ群は、
前記エクステント領域の位置と大きさを特定するための情報を含むエクステント領域指定エントリを含み、
(3)前記ファイルシステム制御部は、
ファイルにアクセスする場合、
前記ファイルに対応する前記エントリ群が前記エクステント領域指定エントリを含むときは、前記エクステント領域指定エントリおよび前記エクステント領域用エクステント情報エントリに基づいて、前記ファイルに対するアクセス制御を行う拡張ファイル処理部と、
前記ファイルに対応する前記エントリ群が前記エクステント領域指定エントリを含まないときは、前記ファイルアロケーションテーブルに基づいて、前記ファイルに対するアクセス制御を行う通常ファイル処理部と、
を備える、
情報記録システム。 - 請求項1から5のいずれかに記載のアクセス装置と、
請求項6から10のいずれかに記載の情報記録装置と、
を備える情報記録システム。 - ファイルデータを格納する不揮発性メモリを用いるファイル管理方法であって、
前記ファイルデータを固定長ブロック単位で管理するためのエクステント情報エントリであって、1つ以上の前記固定長ブロックから構成される連続領域の管理情報として、少なくとも前記連続領域の位置と大きさを特定するための情報を含むエクステント情報エントリと、
前記固定長ブロック間のリンク関係を示す情報を管理するファイルアロケーションテーブルと、
ファイルごとに生成され、ファイルの名称やサイズの情報を含む管理情報を格納する1つ以上の固定長エントリと、前記1つ以上の固定長エントリのチェックサムに関する情報を内部に含むエントリ群と、
を用いて、前記ファイルの管理を行うファイル管理方法であって、
前記エントリ群は、
前記エクステント領域の位置と大きさを特定するための情報を含むエクステント領域指定エントリを含み、
前記エクステント情報エントリを、前記エントリ群の外部の領域であり、任意の前記固定長ブロックから構成されるエクステント領域内に格納し、
ファイルにアクセスする場合、
前記ファイルに対応する前記エントリ群が前記エクステント領域指定エントリを含むときは、前記エクステント領域指定エントリおよび前記エクステント領域用エクステント情報エントリに基づいて、前記ファイルに対するアクセス制御を行い、
前記ファイルに対応する前記エントリ群が前記エクステント領域指定エントリを含まないときは、前記ファイルアロケーションテーブルに基づいて、前記ファイルに対するアクセス制御を行う、
ファイル管理方法。 - 請求項13に記載のファイル管理方法をコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010505400A JP4691209B2 (ja) | 2008-04-04 | 2009-04-01 | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008097724 | 2008-04-04 | ||
JP2008097724 | 2008-04-04 | ||
PCT/JP2009/001535 WO2009122743A1 (ja) | 2008-04-04 | 2009-04-01 | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム |
JP2010505400A JP4691209B2 (ja) | 2008-04-04 | 2009-04-01 | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011032901A Division JP2011138534A (ja) | 2008-04-04 | 2011-02-18 | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP4691209B2 true JP4691209B2 (ja) | 2011-06-01 |
JPWO2009122743A1 JPWO2009122743A1 (ja) | 2011-07-28 |
Family
ID=41135143
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010505400A Active JP4691209B2 (ja) | 2008-04-04 | 2009-04-01 | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム |
JP2011032901A Pending JP2011138534A (ja) | 2008-04-04 | 2011-02-18 | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011032901A Pending JP2011138534A (ja) | 2008-04-04 | 2011-02-18 | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (2) | US8019800B2 (ja) |
EP (1) | EP2261803B1 (ja) |
JP (2) | JP4691209B2 (ja) |
CN (1) | CN101983376B (ja) |
WO (1) | WO2009122743A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977802B2 (en) | 2009-11-11 | 2015-03-10 | Panasonic Intellectual Property Management Co., Ltd. | Access device, information recording device, controller, real time information recording system, access method, and program |
JP4881469B1 (ja) * | 2010-09-22 | 2012-02-22 | 株式会社東芝 | 情報処理装置、及び情報処理方法 |
US8972747B2 (en) * | 2011-01-26 | 2015-03-03 | Hewlett-Packard Development Company, L.P. | Managing information in a document serialization |
KR102050725B1 (ko) * | 2012-09-28 | 2019-12-02 | 삼성전자 주식회사 | 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법 |
WO2014129160A1 (ja) | 2013-02-20 | 2014-08-28 | パナソニック株式会社 | 無線アクセス装置および無線アクセスシステム |
JP6191022B2 (ja) | 2013-02-20 | 2017-09-06 | パナソニックIpマネジメント株式会社 | アクセス装置、情報記録装置およびアクセスシステム |
WO2017002331A1 (ja) * | 2015-07-01 | 2017-01-05 | パナソニックIpマネジメント株式会社 | 通信システム、記録装置、および通信方法 |
JP6253752B1 (ja) * | 2016-11-29 | 2017-12-27 | 株式会社東芝 | 階層化ストレージシステム |
JPWO2018186455A1 (ja) * | 2017-04-07 | 2019-12-26 | パナソニックIpマネジメント株式会社 | 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム |
JP7262977B2 (ja) * | 2018-11-08 | 2023-04-24 | キヤノン株式会社 | 記録装置及びその制御方法、並びにプログラム |
CN109669640B (zh) * | 2018-12-24 | 2023-05-23 | 浙江大华技术股份有限公司 | 一种数据存储方法、装置、电子设备及介质 |
CN112800007B (zh) * | 2021-01-28 | 2022-06-14 | 上海华元创信软件有限公司 | 适用于fat32文件系统的目录项扩展方法和系统 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6138203A (en) * | 1995-11-10 | 2000-10-24 | Sony Corporation | Information processing apparatus and method enabling a write-once recording medium to be utilized as a rewriteable recording medium |
JP2000200207A (ja) * | 1998-10-30 | 2000-07-18 | Sony Corp | 階層管理ファイル装置及びこれを具備した電子機器 |
JP2000148550A (ja) | 1998-11-18 | 2000-05-30 | Victor Co Of Japan Ltd | ファイルの領域管理方法及び空き領域管理方法 |
TW463107B (en) * | 1998-12-22 | 2001-11-11 | Ibm | Extended card file system |
EP1049029A3 (en) | 1999-04-28 | 2003-07-09 | Emc Corporation | File systems with versatile indirection |
US6895418B1 (en) * | 1999-04-28 | 2005-05-17 | Emc Corporation | Versatile indirection in an extent based file system |
US6654772B1 (en) * | 1999-04-28 | 2003-11-25 | Emc Corporation | Multi-volume extent based file system |
RU2257609C2 (ru) | 1999-10-21 | 2005-07-27 | Мацусита Электрик Индастриал Ко., Лтд. | Устройство доступа к полупроводниковой карте памяти, компьютерно-считываемый носитель записи, способ инициализации и полупроводниковая карта памяти |
KR100633805B1 (ko) * | 2001-11-20 | 2006-10-13 | 마쯔시다덴기산교 가부시키가이샤 | 음성/영상 정보 기록 재생 장치 및 방법, 및 음성/영상정보 기록 재생 장치 및 방법을 이용하여 정보가 기록된기록 매체 |
JP4169577B2 (ja) * | 2001-11-20 | 2008-10-22 | 松下電器産業株式会社 | 音声/映像情報記録再生装置および方法 |
US20050013583A1 (en) * | 2001-11-20 | 2005-01-20 | Masanori Itoh | Audio/video information recording/reproducing apparatus and method, and recording medium in which information is recorded by using the audio/video information recording/reproducing apparatus and method |
WO2004109691A1 (ja) * | 2003-06-04 | 2004-12-16 | Matsushita Electric Industrial Co., Ltd. | 情報記録方法、情報記録システム、ドライブ制御ユニットおよび半導体集積回路 |
JP4492341B2 (ja) * | 2004-01-08 | 2010-06-30 | 日本ビクター株式会社 | ファイルシステムの検査データ記録方法及びデータ変更検出方法 |
US20050152251A1 (en) * | 2004-01-08 | 2005-07-14 | Victor Company Of Japan, Ltd. | Method and apparatus for recording check data of file system on recording medium |
JP2005222483A (ja) * | 2004-02-09 | 2005-08-18 | Mitsubishi Electric Corp | 情報記録装置 |
US7440966B2 (en) * | 2004-02-12 | 2008-10-21 | International Business Machines Corporation | Method and apparatus for file system snapshot persistence |
US7873596B2 (en) * | 2006-05-23 | 2011-01-18 | Microsoft Corporation | Extending cluster allocations in an extensible file system |
US9639554B2 (en) * | 2004-12-17 | 2017-05-02 | Microsoft Technology Licensing, Llc | Extensible file system |
JP2006178632A (ja) | 2004-12-21 | 2006-07-06 | Sony Corp | 情報処理装置、情報処理方法、プログラム |
KR100714691B1 (ko) * | 2005-05-04 | 2007-05-04 | 삼성전자주식회사 | 파일 시스템에 추가 정보를 저장하고 관리하는 장치 및방법 |
US8959125B2 (en) * | 2005-07-01 | 2015-02-17 | 226008 Ontario Inc. | File system having inverted hierarchical structure |
JP2007265010A (ja) | 2006-03-28 | 2007-10-11 | Nec Electronics Corp | ファイル再生装置およびファイル再生方法ならびにプログラム |
GB2456001A (en) * | 2007-12-28 | 2009-07-01 | Symbian Software Ltd | Storage device having a single file allocation table |
-
2009
- 2009-04-01 JP JP2010505400A patent/JP4691209B2/ja active Active
- 2009-04-01 CN CN200980112166.XA patent/CN101983376B/zh active Active
- 2009-04-01 EP EP09728228.9A patent/EP2261803B1/en active Active
- 2009-04-01 WO PCT/JP2009/001535 patent/WO2009122743A1/ja active Application Filing
- 2009-04-01 US US12/934,334 patent/US8019800B2/en active Active
-
2011
- 2011-02-18 JP JP2011032901A patent/JP2011138534A/ja active Pending
- 2011-08-05 US US13/204,323 patent/US20110302225A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP2261803A4 (en) | 2014-02-26 |
CN101983376A (zh) | 2011-03-02 |
EP2261803B1 (en) | 2021-07-07 |
JPWO2009122743A1 (ja) | 2011-07-28 |
US20110302225A1 (en) | 2011-12-08 |
JP2011138534A (ja) | 2011-07-14 |
WO2009122743A1 (ja) | 2009-10-08 |
CN101983376B (zh) | 2014-04-09 |
US8019800B2 (en) | 2011-09-13 |
US20110022645A1 (en) | 2011-01-27 |
EP2261803A1 (en) | 2010-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4691209B2 (ja) | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム | |
JP5481493B2 (ja) | アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム | |
US8108646B2 (en) | Storage system and storage control method that compress and store data elements | |
US10048884B2 (en) | Method for erasing data entity in memory module | |
JP5362594B2 (ja) | アクセス装置、及び残容量算出方法 | |
JP2014044490A (ja) | ホスト装置及びメモリデバイス | |
KR20160103945A (ko) | Ssd 상의 기록-시-복사를 위한 시스템 및 방법 | |
JP2012094220A (ja) | 書込みレコードの重複を排除する記憶装置、及びその書込み方法 | |
CN107391669A (zh) | 一种基于文件系统的多版本文件管理方法及装置 | |
JP5962140B2 (ja) | プログラム、制御方法、制御装置およびシステム | |
KR20070089603A (ko) | 정보 처리 장치 및 정보 처리 방법과 컴퓨터ㆍ프로그램 | |
US20140331007A1 (en) | Virtual library controller and control method | |
EP2669806B1 (en) | Storage system | |
JP2004030232A (ja) | ブリッジファイルシステム及び記録媒体 | |
WO2010001606A1 (ja) | コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法 | |
JP6874348B2 (ja) | ストレージ制御装置、およびストレージ制御プログラム | |
JP2009205591A (ja) | アクセスモジュール、情報記録モジュール、及び情報記録システム | |
JP2009205590A (ja) | アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム | |
JPWO2018186455A1 (ja) | 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム | |
JP4480592B2 (ja) | ファイルシステム | |
JP2008134777A (ja) | ファイル割当テーブルのキャッシュ方法 | |
JP4881469B1 (ja) | 情報処理装置、及び情報処理方法 | |
JP2006106810A (ja) | ファイル管理装置、ファイル管理方法、記録媒体及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110125 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140225 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140225 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150225 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |