JP5362594B2 - アクセス装置、及び残容量算出方法 - Google Patents
アクセス装置、及び残容量算出方法 Download PDFInfo
- Publication number
- JP5362594B2 JP5362594B2 JP2009554651A JP2009554651A JP5362594B2 JP 5362594 B2 JP5362594 B2 JP 5362594B2 JP 2009554651 A JP2009554651 A JP 2009554651A JP 2009554651 A JP2009554651 A JP 2009554651A JP 5362594 B2 JP5362594 B2 JP 5362594B2
- Authority
- JP
- Japan
- Prior art keywords
- remaining capacity
- fixed
- length block
- area
- divided
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
-
- 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/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
このようなメモリカードや機器内蔵ストレージには、主にNAND型フラッシュメモリと呼ばれる半導体素子が使用されている。NAND型フラッシュメモリは、既に記録されたデータを一旦消去した後、再度別のデータを記録することが可能な記録素子であり、従来のハードディスクと同様に、複数回書き換え可能な情報記録装置を構成することが可能である。
従来最も広く使用されているファイルシステムは、FATファイルシステムと呼ばれるものである。FATファイルシステムは、領域管理をファイルアロケーションテーブル(FAT)と呼ばれるテーブルで一元管理するという特徴を持っており、比較的構造がシンプルで実装が容易なことから、フレキシブルディスクやPCのハードディスク、メモリカードなどのファイルシステムとして広く使用されている。
図2に示すように、論理アドレス空間の先頭には、領域割り当て単位やファイルシステムが管理する領域の大きさ等、ファイルシステムの管理情報が格納される領域であるファイルシステム管理情報領域201が存在する。
このファイルシステム管理情報領域201には、マスターブートレコード・パーティションテーブル203、パーティションブートセクタ204、FAT(205、206)、ルートディレクトリエントリ207と呼ばれるファイルシステムの管理情報が含まれ、ユーザデータ領域202を管理するために必要な情報が各々格納されている。
パーティションブートセクタ204は、パーティション内の領域管理単位の大きさなど、1つのパーティション内の管理情報が格納される領域である。FAT(205、206)は、ファイルに含まれるデータの格納位置に関する情報が格納される領域であり、通常、同じ情報を持つ2つのFAT(205、206)が存在し、一方のFAT(205、206)が破損したとしても他方のFAT(205、206)によりファイルにアクセスできるよう二重化されている。
ルートディレクトリエントリ207は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報(ディレクトリエントリ)が格納される領域である。
図3は、FAT16のディレクトリエントリの構成を示した図である。
ディレクトリエントリ208の先頭8バイトには、ファイルやディレクトリの名称が格納される。続く3バイトには、拡張子が格納される。続く1バイトには、ファイル・ディレクトリの種別を識別するフラグや、ファイル・ディレクトリがリードオンリーか否かを識別するフラグ等の属性情報が格納される。また、ファイル・ディレクトリの最終更新日時の情報や、ファイル・ディレクトリデータの実体が格納されているクラスタの開始位置を示す開始クラスタ番号、ファイルサイズのバイト数等が格納される。
図4は、FAT16のFAT(205、206)の構成を示した図である。
FAT16では、FAT(205、206)は、2バイト(16ビット)の情報を1つのFATエントリとして管理しており、1つのFATエントリが1つのクラスタの状態を示している。すなわち、ユーザデータ領域202にM個のクラスタが存在する場合、FATエントリもM個存在することから、FAT(205、206)の1つ分の大きさは約2×Mバイトとなる。但し、先頭2FATエントリ分は、FATの先頭を示す固定の値(0xF8FF、0xFFFF)がシグネチャとして記録されるため、ユーザデータ領域202の先頭クラスタに対応するFATエントリはFAT(205、206)の4バイト目、5バイト目の2バイトに存在している。FAT先頭に存在する4バイトのシグネチャをFATエントリの0番、1番とすると、4バイト目、5バイト目の2バイトの位置は2番目になることから、ユーザデータ領域202の先頭クラスタは、便宜上クラスタ番号=“2”と割り当てられており、クラスタ番号=“0”、“1”に対応するクラスタは存在しないことになっている。
このようにFAT(205、206)は、ファイルデータが格納されている領域のリンク情報と共に、各クラスタの使用状態も管理している。そのため、ファイルシステムで管理されている領域内に存在する残容量は、FAT(205、206)を参照し、空きクラスタの個数をカウントすることにより算出される。図5を用いて、この残容量算出処理について説明する。
(S501):
アクセスモジュールは、残容量を保持する変数(FREE_SPACE)を「0」に初期化する。
(S502):
アクセスモジュールは、アクセスモジュールのRAM上に読み出されたFAT(205、206)のクラスタ番号2に対応するFATエントリの位置に、現在参照位置を設定する。ここでは、情報記録モジュールからアクセスモジュールのRAM上に予めFAT(205、206)が読み出されている場合を想定する。
(S503):
アクセスモジュールは、現在参照位置がFAT終端まで到達し、FAT全体に対して残容量検索の処理が完了しているか判定する。検索が完了している場合には、現在、FREE_SPACEに格納されている値を残容量としてアプリケーション制御部に通知して、処理を終了する。検索が完了していない場合は、S504の処理に進む。
(S504):
アクセスモジュールは、現在参照位置のFATエントリが空きクラスタを示すか判定する。
空きクラスタであると判定した場合は、S505の処理に進み、空きクラスタではないと判定した場合は、S506の処理に進む。
(S505):
空きクラスタが発見されたため、アクセスモジュールは、FREE_SPACEの値を「1」加算する(+1だけインクリメントする)。
(S506):
アクセスモジュールは、現在参照位置を1FATエントリ分進め、S503の処理に戻る。
このように、残容量算出処理では、全FATエントリに対して値を確認し、空きクラスタの個数をカウントする必要があるため、ファイルシステムが管理する総容量が増加するに従いFATエントリが増加し、残容量算出処理時間が長くなるという問題が生じる。
従来、このような問題を解決する方法として、残容量の情報をパーティションブートセクタ204等のファイルシステム管理情報領域201に予め保持しておく方法が提案されている(例えば、特許文献1参照)。この方法では、ファイルシステム管理情報領域201に格納された残容量の情報を読み出すことにより、従来FAT(205、206)を参照して実施していた残容量算出処理を割愛し、残容量算出処理を含むファイルシステム初期化時間を短縮している。
上記の方法では、ファイルデータの記録やファイルの削除など、残容量が変化するタイミングで逐次ファイルシステム管理情報領域201に格納した残容量の情報を上書きし、更新する必要がある。特に、リムーバブルメディアに対して本技術を適用する場合には、全てのアクセス装置がこの情報更新処理に対応していなければならず、対応していない機器が存在する場合には、ファイルシステム管理情報領域201に格納された残容量の情報と、FAT(205,206)上の残容量とが一致せず、矛盾が生じる。
また、機器内蔵ストレージに対して本技術を適用する場合には、不意に電源断が生じた場合等にやはり矛盾が生じる可能性がある。
本発明は、上記問題点に鑑み、ファイルシステムにおいて残容量算出を高速に行い、ファイルシステムの初期化から記録開始までにかかる時間を短縮することが可能なアクセスモジュール、及び残容量算出方法を提供することを目的とする。
分割残容量算出ステップは、不揮発性メモリを管理するファイルシステムの領域管理情報であって、複数の固定長ブロック領域から構成される領域管理情報を、固定長ブロック領域ごとに参照し、固定長ブロック領域ごとに固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量を算出する。ファイルアクセス可否判定ステップは、分割残容量算出ステップにより、分割残容量が算出される度に、固定長ブロック領域ごとに算出された分割残容量を合計することで、算出済み総残容量を算出し、算出した算出済み総残容量と所定の必要残容量とを比較し、算出済み総残容量が必要残容量以上となった時点で、ファイルアクセス処理の開始を許可する。
第2の発明は、第1の発明であって、分割残容量算出ステップは、先頭の固定長ブロック領域から順に、固定長ブロック領域ごとに、分割残容量を算出する。
第3の発明は、第1の発明であって、分割残容量算出ステップは、終端の固定長ブロック領域を第1の処理対象として、分割残容量を算出する。
なお、「第1の処理対象」とは、第1番目の処理対象のことである。
第4の発明は、第1の発明であって、分割残容量算出ステップは、アクセス装置内のメモリ上に、各固定長ブロック領域に対する残容量算出処理の実施の有無を示すステータスと、各固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量の情報と、を含む残容量情報を格納する。
第5の発明は、第4の発明であって、ファイルアクセスにより分割残容量に増減が発生した時点で、残容量情報を逐次更新する残容量情報更新ステップを更に備える。
第6の発明は、第1の発明であって、ファイルアクセス可否判定ステップは、以下のステップを備える。
(1)ファイルアクセス処理の開始を許可した後、生成されたファイルデータをアクセス装置内のメモリ上に一時保持するステップ。
(2)分割残容量が算出されていない残りの固定長ブロック領域に対して、分割残容量を算出する処理を実行するよう分割残容量算出ステップに要求するステップ。
(3)全ての固定長ブロック領域に対して、分割残容量の算出処理が完了した後に、アクセス装置内のメモリに保持したファイルデータを不揮発性メモリに記録するステップ。
第7の発明は、ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法であって、ファイルシステム情報取得ステップと、分割残容量算出ステップと、総残容量算出ステップと、比較ステップと、ファイルアクセス可否判定ステップと、を備える。
そして、第(N−m)固定長ブロック領域(mは自然数)が処理対象である場合に、比較ステップが、算出済み総残容量SUMが必要残容量以上となったとき、
(1)ファイルアクセス可否判定ステップは、ファイルアクセス処理の開始を許可し、
(2)第0固定長ブロック領域から第(N−m−1)固定長ブロック領域を処理対象として、固定長ブロック番号の昇順に、分割残容量算出ステップと、算出済み総残容量算出ステップと、ファイルアクセス処理の開始が許可された後、生成されたファイルデータをアクセス装置内のメモリ上に一時保持するステップと、を繰り返し実行し、
(3)全ての固定長ブロック領域に対して、分割残容量の算出処理が完了し、全ての固定長ブロック領域に対する算出済み総残容量が算出された後に、アクセス装置内のメモリに保持したファイルデータを不揮発性メモリに記録する。
なお、この残容量算出方法では、上記の順番に実行されることが望ましいが、一部の順序を入れ替えて実行されるものであってもよい。
ファイルシステム情報取得ステップは、不揮発性メモリを管理するファイルシステムの領域管理情報であって、第0固定長ブロック領域、第1固定長ブロック領域、・・・、第(N−1)固定長ブロック領域のN個(Nは自然数)の固定長ブロック領域から構成される領域管理情報についての情報であるファイルシステム情報を取得する。分割残容量算出ステップは、第K固定長ブロック領域(Kは自然数、K<N)に対して、第K固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量C(K)を算出する。総残容量算出ステップは、分割残容量算出ステップにより算出された分割残容量C(K)を、算出済み総残容量SUMに加算することで、第K固定長ブロック領域で管理される分割残容量C(K)を含めた算出済み総残容量SUMを算出する算出済み。比較ステップは、算出済み総残容量算出ステップにより算出された算出済み総残容量SUMと所定の必要残容量とを比較する。ファイルアクセス可否判定ステップは、比較ステップでの比較結果に基づいて、ファイルアクセス処理の開始を許可する。
そして、第(N−m)固定長ブロック領域(mは自然数)が処理対象である場合に、比較ステップが、算出済み総残容量SUMが必要残容量以上となったとき、
(1)ファイルアクセス可否判定ステップは、ファイルアクセス処理の開始を許可し、
(2)第(N−m−1)固定長ブロックから第0固定長ブロックを処理対象として、固定長ブロック番号の降順に、分割残容量算出ステップと、算出済み総残容量算出ステップと、ファイルアクセス処理の開始が許可された後、生成されたファイルデータをアクセス装置内のメモリ上に一時保持するステップと、を繰り返し実行し、
(3)全ての固定長ブロック領域に対して、分割残容量の算出処理が完了し、全ての固定長ブロック領域に対する算出済み総残容量が算出された後に、アクセス装置内のメモリに保持したファイルデータを不揮発性メモリに記録する。
なお、この残容量算出方法では、上記の順番に実行されることが望ましいが、一部の順序を入れ替えて実行されるものであってもよい。
分割残容量算出処理部は、不揮発性メモリを管理するファイルシステムの領域管理情報であって、複数の固定長ブロック領域から構成される領域管理情報を、固定長ブロック領域ごとに参照し、固定長ブロック領域ごとに固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量を算出する。アプリケーション制御部は、分割残容量算出処理部に対し分割残容量の算出処理の実行を要求する。
そして、分割残容量算出処理部が固定長ブロック領域ごとの分割残容量を算出する度に、アプリケーション制御部が、固定長ブロック領域ごとに算出された分割残容量を合計することで、算出済み総残容量を算出し、算出した算出済み総残容量と所定の必要残容量とを比較し、算出済み総残容量が必要残容量以上の残容量であると判定された時点で、ファイルアクセス処理の開始を許可する。
なお、「アクセス装置」は、アクセスモジュールを含む概念である。
第10の発明は、第9の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、算出対象として1つ以上の固定長ブロック領域を指定する。分割残容量算出処理部は、指定された1つ以上の固定長ブロック領域に対して、分割残容量の算出処理を実行する。
第12の発明は、第10の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、算出対象領域として、終端の固定長ブロック領域を第1に指定する。
このアクセス装置では、残容量が多い可能性の高い終端の固定長ブロック領域に対して、最初に、分割残容量の算出処理が実施されるので、必要最低限の残容量を高速に取得できる可能性が高くなる。
第13の発明は、第9の発明であって、分割残容量算出処理部は、アクセス装置内のメモリ上に、各固定長ブロック領域に対する分割残容量の算出処理の実施の有無を示すステータスと、各固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量の情報と、を含む残容量情報を格納する。
このアクセス装置では、分割残容量算出処理部により、ファイルアクセスにより分割残容量に増減が発生した時点で、残容量情報が逐次更新されるので、残容量情報を常に最新の情報にすることできる。
第15の発明は、第9の発明であって、アプリケーション制御部は、ファイルアクセス処理の開始を許可した後、生成されたファイルデータをアクセス装置内のメモリ上に一時保持し、全ての固定長ブロック領域に対する残容量算出処理が完了した後に、保持したファイルデータを不揮発性メモリに記録する。
このアクセス装置では、実際に不揮発性メモリにファイルデータを記録する時点では、全ての固定長ブロック領域について分割残容量の算出処理が完了していることから、例えば、先頭の固定長ブロック領域(例えば、先頭のFATブロック)に含まれる空き領域(例えば、空きクラスタ)にファイルデータを記録することが可能となる。そのため、終端の固定長ブロック領域(例えば、終端のFATブロック)に含まれる空き領域(例えば、空きクラスタ)は、終端以外の固定長ブロック領域(例えば、終端のFATブロック以外のFATブロック)に含まれる空き領域(例えば、空きクラスタ)がなくなるまで使用されることがなく、必要最低限の残容量取得を常に高速に実施することが可能となる。
第17の発明は、第16の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、算出対象領域の開始クラスタ番号と領域の大きさに関する情報として、ファイルシステムが管理する領域の先頭から順に、算出対象領域の開始クラスタ番号と領域の大きさに関する情報を指定する。
第18の発明は、第16の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、ファイルシステムが管理する領域の終端領域を、第1に、分割残容量の算出処理の処理対象とし、算出対象領域の開始クラスタ番号と領域の大きさに関する情報として、終端領域の開始クラスタ番号と終端領域の大きさに関する情報を第1に指定する。
第19の発明は、第9の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、所定の必要残容量を指定する。分割残容量算出処理部は、指定された所定の必要残容量以上の残容量が算出されるまで、固定長ブロック領域単位で残容量の算出処理を繰り返す。
第20の発明は、第19の発明であって、分割残容量算出処理部は、指定された所定の必要残容量以上の残容量が算出されるまで、固定長ブロック領域単位で分割残容量の算出処理を繰り返す際に、固定長ブロック領域の先頭から順に分割残容量の算出処理を実行する。
このアクセス装置では、残容量が多い可能性の高い終端の固定長ブロック領域に対して、最初に、分割残容量の算出処理が実施されるので、必要最低限の残容量を高速に取得できる可能性が高くなる。
第22の発明は、ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法をコンピュータに実行させるプログラムである。残容量算出方法は、分割残容量算出ステップと、ファイルアクセス可否判定ステップと、を備える。
これにより、第1の発明と同様の効果を奏するプログラムを実現することができる。
[第1実施形態]
(1.1:全体構成)
図1は、第1実施形態における不揮発性記憶システム100の概略構成図である。不揮発性記憶システム100は、アクセスモジュール(アクセス装置)1と、情報記録モジュール(情報記録装置)2と、を備える。
図1に示すように、アクセスモジュール1は、CPU11、RAM12、情報記録モジュールインタフェース13、ROM14を含む。
ROM14には、アクセスモジュール1を制御するプログラムが格納されており、このプログラムは、RAM12を一時記憶領域として使用し、CPU11上で動作する。
ROM14は、更に、アプリケーション制御部101、ファイルシステム制御部102、情報記録モジュールアクセス部104を含む。なお、本実施形態では、アプリケーション制御部101、ファイルシステム制御部102、情報記録モジュールアクセス部104は、ROM14上において、ソフトウェアにより実現されるものを想定しているが、アプリケーション制御部101、ファイルシステム制御部102、情報記録モジュールアクセス部104は、その全部または一部が、ハードウェアにより実現されるものであってもよい。
アプリケーション制御部101は、データの生成や電源の制御などアクセスモジュール1全体の制御を行う。
情報記録モジュールアクセス部104は、ファイルシステム制御部102からデータと共にサイズとアドレスを渡され、指定されたサイズのデータを情報記録モジュール2の記録領域内における指定された位置に記録するなど、情報記録モジュール2に対するコマンドやデータの送受信を制御する。
ファイルシステム制御部102は、更に、分割残容量算出処理部103を含む。
分割残容量算出処理部103は、本発明の特徴を示す処理部であり、残容量の算出を複数回の処理に分割して実施する処理部である。また、分割残容量算出処理部103が実施する分割残容量算出処理に使用する情報は、RAM12内の残容量情報格納部105に格納される。
アクセスモジュールインタフェース21は、情報記録モジュール2とアクセスモジュール1との接続部であり、情報記録モジュールインタフェース13と同様に、制御信号及びデータを送受信するインタフェースである。
ROM24には、情報記録モジュール2を制御するプログラムが格納されており、このプログラムはRAM23を一時記憶領域として使用し、CPU22上で動作する。
不揮発性メモリ25は、アクセスモジュール1から送信されたデータを記録する領域であり、その中はファイルシステムで管理されている。すなわち、不揮発性メモリ25内の論理アドレス空間には、図2で示した構成を一例とするFAT型ファイルシステムの各種データ構造が格納されている。すなわち、記録領域はクラスタ単位に分割され、FAT(205、206)を用いて管理されており、ファイルやディレクトリの名称やサイズ等の情報はディレクトリエントリ208を用いて管理されている。
(1.2:分割残容量算出処理部)
続いて、本実施形態における分割残容量算出処理部103について、図7、図8を用いて説明する。
図7は、分割残容量算出処理部103におけるFAT(205、206)の管理の一例を示した図である。この図では、クラスタサイズが16KBの場合に65000クラスタからなるユーザデータ領域202をFAT(205、206)で管理した場合の例を示している。FAT16では、1FATエントリ当たり2バイトで管理するため、65000クラスタを管理する場合、FAT(205、206)は128KB弱の大きさとなる。
図8は、分割残容量算出処理部103が残容量情報格納部105に格納する残容量情報301の一例を示した図である。
残容量情報301は、各FATブロックの“ステータス”と“残容量”を示す情報から構成される。
“残容量”は、該当するFATブロックに含まれる残容量を示す情報であり、残容量のクラスタ数が格納される。すなわち、各FATブロックの残容量の総和が、ユーザデータ領域202全体に含まれる残容量を意味する。
このように、本実施形態における分割残容量算出処理部103は、FATブロック単位で残容量を算出、管理することを特徴とする。
(1.3:マウント処理)
続いて、図9を用いて、本実施形態のファイルシステム制御部102におけるマウント処理手順について説明する。このマウント処理は、ファイルシステムの初期化処理として、ファイルシステムを使用する際に最初に実行される処理である。
(S901):
ファイルシステム制御部102は、ファイルシステム管理情報領域201からファイルシステム管理情報を読み出し、構造が正しいかチェックする。
(S902):
ファイルシステム制御部102は、S901のチェックの結果、構造が正しく、マウント処理が行えると判断した場合はS904の処理に進む。また、構造に何らかの異常が検出され、マウント処理が行えないと判断した場合はS903の処理に進む。例えば、セクタサイズを示す情報が「0」に設定されている等、ファイルシステムとして動作することができない状態が検出された場合、構造が異常であると判断される。
(S903):
ファイルシステム制御部102は、S902の判定処理において、マウント処理が行えないと判断した場合、アプリケーション制御部101にマウント処理が失敗したことを示すエラー情報を通知し、処理を終了する。この場合、再度フォーマットしたり、ファイルシステム管理情報の異常を修復したりしない限り、ファイルアクセスが行えないことになる。
(S904):
ファイルシステム制御部102により、S902の判定処理において、マウント処理が行えると判断された場合、読み出したファイルシステム管理情報の内、セクタサイズやクラスタサイズ等、ファイルシステムの制御に必要な情報がRAM12上に保持される。
(S905):
ファイルシステム制御部102は、分割残容量算出処理部103が使用するRAM12上の残容量情報格納部105の情報を初期化し、アプリケーション制御部101にマウント処理が成功したことを示す情報を通知して処理を終了する。この初期化処理では、図10に示すように、各FATブロック番号に対応する“ステータス”を残容量の算出をしていない状態を示す“0”に、“残容量”も“0”に設定する。すなわち、この初期化処理により、全FATブロックに対して残容量の算出が実施されていない状態に設定され、現時点で判明している残容量の総量は「0」となる。
(1.4:ファイルシステム情報取得処理)
続いて、図11を用いて、本実施形態のファイルシステム制御部102におけるファイルシステム情報取得処理手順について説明する。このファイルシステム情報取得処理は、アプリケーション制御部101がファイルシステム制御部102から、ユーザデータ領域202に含まれる総容量等のファイルシステムに関する全般的な情報(以下、「ファイルシステム情報302」と呼ぶ)を取得する処理であり、マウント処理実施後、実際にファイルアクセスする前に実施される。
(S1101):
ファイルシステム制御部102は、マウント処理時にRAM12上に保持したファイルシステム管理情報を元に、ファイルシステム情報302を作成する。ファイルシステム情報302の一例を図12に示す。図12に示されるファイルシステム情報302は、“FS種別”、“セクタサイズ”、“クラスタサイズ”、“総容量”、“FATブロック数”を含む。
“セクタサイズ”は、ファイルシステムの最小管理単位であるセクタの大きさを示す情報を格納する。
“クラスタサイズ”は、ユーザデータ領域202の管理単位であるクラスタの大きさを示す情報を格納する。
“総容量”は、ユーザデータ領域202に含まれる全体の容量を示す情報を格納する。
“FATブロック数”は、FAT(205、206)を固定長ブロック単位で管理した際のブロック数を示す情報を格納する。例えば、図7の例では、FATブロックの個数が8個であることから、本フィールドには“8”が格納される。
(S1102):
ファイルシステム制御部102は、S1101で作成したファイルシステム情報302をアプリケーション制御部101に通知して処理を終了する。
(1.5:残容量算出処理)
続いて、図13を用いて、本実施形態の分割残容量算出処理部103における残容量算出処理手順について説明する。本実施形態では、FATブロック単位で残容量算出処理を実施するため、ここでは、1FATブロック分の残容量算出処理手順を説明する。
(S1301):
分割残容量算出処理部103は、残容量を保持する変数(FREE_SPACE)を0に初期化する。
(S1302):
分割残容量算出処理部103は、算出対象のFATブロックを情報記録モジュール2からアクセスモジュール1内のRAM12上に読み出す。算出対象のFATブロックは、アプリケーション制御部101から指定されるものとする。
(S1303):
分割残容量算出処理部103は、アクセスモジュール1のRAM12上に読み出されたFATブロックの先頭位置に、現在参照位置を設定する。算出対象のFATブロックがFAT(205、206)先頭のブロックであった場合、現在参照位置は、クラスタ番号2に対応するFATエントリの位置に設定される。それ以外の場合、現在参照位置は、FATブロックの先頭に存在するFATエントリの位置に設定される。
(S1304):
分割残容量算出処理部103は、現在参照位置がFATブロック終端まで到達し、算出対象のFATブロック全体に対して残容量検索の処理が完了しているか判定する。検索が完了している場合は、S1308の処理に進む。検索が完了していない場合は、S1305の処理に進む。
(S1305):
分割残容量算出処理部103は、現在参照位置のFATエントリが空きクラスタを示すか判定する。具体的には、FATエントリの値が0x0000である場合は空きクラスタであると判定し、それ以外の場合は空きクラスタではないと判定する。現在参照位置のFATエントリが示しているクラスタが空きクラスタであると判定した場合、S1306の処理に進み、現在参照位置のFATエントリが示しているクラスタが空きクラスタではないと判定した場合、S1307の処理に進む。
(S1306):
分割残容量算出処理部103は、空きクラスタを発見したため、FREE_SPACEの値を「1」加算する(+1だけインクリメントする)。
(S1307):
分割残容量算出処理部103は、現在参照位置を1FATエントリ分進め、S1304の処理に戻る。
(S1308):
算出対象のFATブロック全体に対する残容量検索処理が完了したため、分割残容量算出処理部103は、残容量情報301内の算出対象のFATブロックの残容量のフィールドにFREE_SPACEの値を格納し、ステータスを「1」に設定する。図14は、番号0のFATブロックに対する残容量情報301を更新した場合の例を示している。この例では、番号0のFATブロックに含まれる残容量が3700クラスタであった場合を示している。
(S1309):
分割残容量算出処理部103は、残容量情報301に格納された全FATブロックの残容量のフィールドに格納された値の総和を取り、残容量としてアプリケーション制御部101に通知して処理を終了する。
また、残容量算出処理は、必ずしも1つのFATブロックに対してのみ実施するのではなく、アプリケーション制御部101からの指定に応じて、2つ以上のFATブロックをまとめて処理しても良い。この場合、S1301からS1308までの処理を、アプリケーション制御部101が指定した複数のFATブロックに対して繰り返し実施し(アプリケーション制御部101が指定したFATブロックの数だけS1301からS1308までの処理を繰り返し実施し)、最後にS1309の処理により、全FATブロックの残容量の総和を取るようにする。
続いて、図15を用いて、アプリケーション制御部101とファイルシステム制御部102との間の制御シーケンスの一例について説明する。
(S1501):
まず始めに、アプリケーション制御部101は、ファイルシステム制御部102にマウント処理の実施を要求する。
(S1502):
ファイルシステム制御部102は、図9で説明したマウント処理を実施した後、処理が完了した旨をアプリケーション制御部101に通知する。
(S1503):
マウント処理に成功した場合、アプリケーション制御部101は、ファイルシステム制御部102にファイルシステム情報取得処理の実施を要求する。
(S1504):
ファイルシステム制御部102は、図11で説明したファイルシステム情報取得処理を実施した後、ファイルシステム情報302をアプリケーション制御部101に通知する。
(S1505):
ファイルシステム情報取得処理に成功した場合、アプリケーション制御部101は、ファイルシステム制御部102にFATブロック_0の残容量算出処理の実施を要求する。なお、FATブロック番号K(Kは、K≧0の整数)のFATブロックを「FATブロック_K」と表記することとする。
(S1506):
ファイルシステム制御部102内の分割残容量算出処理部103は、図13で説明した残容量算出処理を実施した後、残容量をアプリケーション制御部101に通知する。この時点では、FATブロック_0に対する残容量算出処理しか完了していないため、アプリケーション制御部101に通知される残容量は、FATブロック_0に含まれるもののみとなる。ここで、アプリケーション制御部101は、通知された残容量に十分な空き容量が存在するか否か判定し、存在すると判定した場合には記録準備が完了したものとし、必要に応じてファイルデータの書き込みを開始する。例えば、アクセスモジュール1を備えるデジタルスチルカメラの場合、通知された残容量が静止画1枚以上の容量であった場合、静止画の撮影を開始できると判断し、アクセスモジュール1は、ユーザに対して静止画撮影を行う準備が完了した旨を通知し、当該デジタルスチルカメラは、撮影待ち状態に入る。
(S1507):
続いて、アプリケーション制御部101は、ファイルシステム制御部102にFATブロック_1の残容量算出処理の実施を要求する。
(S1508):
S1506と同様に、ファイルシステム制御部102内の分割残容量算出処理部103は、図13で説明した残容量算出処理を実施した後、残容量をアプリケーション制御部101に通知する。この時点で、FATブロック_0、FATブロック_1の残容量算出処理が完了しているため、アプリケーション制御部101に通知される残容量は、FATブロック_0、FATブロック_1に含まれるものの総和となる。
(S1509):
以下同様に、アプリケーション制御部101は、FATブロック_(N−1)まで繰り返しファイルシステム制御部102に残容量算出処理の実施を要求する。
(S1510):
ファイルシステム制御部102内の分割残容量算出処理部103は、指定されたFATブロックに対して、図13で説明した残容量算出処理を実施した後、残容量をアプリケーション制御部101に通知する。この時点で、全てのFATブロックに対する残容量算出処理が完了しているため、アプリケーション制御部101に通知される残容量は、全FATブロックに含まれるものの総和となる。
以上のように、本実施形態におけるアクセスモジュール1内の分割残容量算出処理部103は、FAT(205、206)を固定長ブロック単位で管理し、この固定長ブロック単位に分割して残容量算出処理を実施する。これにより、アプリケーション制御部101は、必要最小限の残容量が存在することを確認できた時点で記録準備を完了し、ファイルデータの記録を開始することができる。そのため、従来のようにFAT(205、206)全体に対する残容量算出処理の実施完了を待つことなく記録を開始することができ、ファイルシステムの初期化から記録開始までの時間を短縮することが可能となる。
また、本実施形態で説明した残容量情報301、ファイルシステム情報302の構成は、一例であり、本発明の趣旨を逸脱しない範囲でその他の情報を追加しても良いし、本実施形態で説明された情報をその他の情報に置き換えても良い。
また、図15の例では、先頭のFATブロックから終端のFATブロックへ順に残容量算出処理を実施していく場合の例について説明したが、その他の順番で実施しても良い。例えば、図17のように、最初に終端のFATブロックの残容量算出処理を実施した後、先頭のFATブロックから(終端−1)番目のFATブロックの残容量算出処理を実施するようにしても良い。通常ファイルデータを記録する際にはFAT(205、206)の先頭から空きクラスタを検索し、見つかった空きクラスタにデータを記録していくことが多いことから、FAT(205、206)終端付近には空きクラスタが多数含まれる場合が多い。そのため、このように終端のFATブロックから先頭のFATブロックに向かって順次、残容量算出処理を実施することにより、必要最低限の残容量を高速に取得できる可能性が高くなり、本発明の効果をより高めることが可能となる。
図18の制御シーケンスが図17の制御シーケンスと異なる点は、S1806の直後にアプリケーション制御部101が記録準備完了と判断した後、すぐに情報記録モジュール2にファイルデータを記録し始めるのではなく、全FATブロックに対する残容量算出処理が完了するまでアクセスモジュール1内のRAM12上にファイルデータを保持し、全FATブロックに対する残容量算出処理が完了した後、実際に情報記録モジュール2にファイルデータを記録する点である。
なお、図18は、S1807〜S1809の処理が、FATブロック_0からFATブロック_(N−2)の順に、すなわち、FATブロック番号の昇順にFATブロックごとの残容量算出処理を行う場合について示している。しかし、これに限定されることはなく、例えば、S1807〜S1809の処理が、FATブロック_(N−2)からFATブロック_0の順に、すなわち、FATブロック番号の降順にFATブロックごとの残容量算出処理を行うものであってもよい。
また、本実施形態では、残容量を算出する対象のFATブロックの番号をアプリケーション制御部101がファイルシステム制御部102に指定する場合の例について説明したが、その他の情報を用いても構わない。例えば、FAT(205、206)における残容量算出対象の部分を特定できる情報として、探索開始クラスタ番号と探索終了クラスタ番号との組で指定しても良い。この場合、指定されたクラスタ番号の範囲を含むFATブロックを、残容量算出対象とすることにより本実施形態で説明した処理を適用することが可能となる。同様に、FATブロックを範囲で指定するために、探索開始FATブロック番号と探索終了FATブロック番号との組で指定しても良い。更に、アプリケーション制御部101が必要とする残容量の大きさを指定しても良い。この場合、ファイルシステム制御部102は、任意のFATブロックに対して、アプリケーション制御部101により指定された残容量以上の残容量を取得するまで自動的に分割残容量算出処理を実施していく。
また、上記では、本実施形態における残容量情報301は、マウント処理時に初期化され、対象FATブロックに対する残容量算出処理が実施される際に情報が更新される場合の例について説明した。しかしながら、実際には、ファイルデータの記録や、ファイルの削除等を行うと残容量の情報が変化するため、これらの処理が発生すると、残容量情報301と実際の残容量との間に不整合が生じる。この場合、不整合が生じていることをファイルシステム制御部102が管理し、アプリケーション制御部101が残容量を再度参照する際に残容量を再度算出するという方法が考えられるが、頻繁に残容量が増減する場合には、残容量算出処理のオーバーヘッドが大きくなるという問題が生じる。この場合、ファイルデータ記録やファイル削除等のファイルシステムの各種処理を実施する際に、アクセスモジュール1において、新しく割り当てた、あるいは解放した領域の増減を残容量情報に逐次更新することにより、常に最新の残容量が残容量情報301に保持されるようにし、残容量の再算出を不要とする工夫を実施すると、更に効果的である。また、この処理では、アクセスモジュール1内のRAM12上の残容量情報301を更新するのみで、情報記録モジュール2に対する記録処理は発生しないことから、特許文献1で提案されている従来方法に比べ、高速に残容量情報301を更新することが可能となる。
なお、上記実施形態で説明した不揮発性記憶システム、アクセスモジュール、情報記録モジュールにおいて、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る不揮発性記憶システム、アクセスモジュール、情報記録モジュールをハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
この固定長ブロック単位に分割して残容量算出処理を実施する。これにより必要最小限の残容量が存在することを確認できた時点で記録準備を完了し、ファイルデータの記録を開始することができ、ファイルシステムの初期化から記録開始までの時間を短縮することが可能となる。このようなアクセスモジュール1は、音楽や静止画、動画などのデジタルコンテンツを取り扱う機器に最適であり、PCアプリケーション、オーディオレコーダ、DVDレコーダ、HDDレコーダ、ムービー、デジタルスチルカメラ、携帯電話端末等として利用することができる。
1 アクセスモジュール(アクセス装置)
2 情報記録モジュール(情報記録装置)
11,22 CPU
12,23 RAM
13 情報記録モジュールインタフェース
14,24 ROM
21 アクセスモジュールインタフェース
25 不揮発性メモリ
101 アプリケーション制御部
102 ファイルシステム制御部
103 分割残容量算出処理部
104 情報記録モジュールアクセス部
105 残容量情報格納部
201 ファイルシステム管理情報領域
202 ユーザデータ領域
203 マスターブートレコード・パーティションテーブル
204 パーティションブートセクタ
205,206 FAT
207 ルートディレクトリエントリ
208 ディレクトリエントリ
301 残容量情報
302 ファイルシステム情報
Claims (22)
- ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法であって、
前記不揮発性メモリを管理するファイルシステムのクラスタを所定数有する固定長ブロック領域のサイズの情報を有する領域管理情報を参照する参照ステップと、
複数の前記固定長ブロック領域のうち、各固定長ブロック領域に含まれる分割残容量をファイルアロケーションテーブルに基づいて算出する分割残容量算出ステップと、
前記分割残容量算出ステップにおいて、算出された固定長ブロック領域の前記分割残容量を合計することにより総残容量を取得する総残容量取得ステップと、
前記総残容量と所定の必要残容量とを比較する比較ステップと、
前記比較ステップの結果、前記総残容量が前記必要残容量以上となった場合、前記不揮発性メモリへのアクセスを許可する許可ステップと、
を備える残容量算出方法。 - 前記分割残容量算出ステップは、
先頭の前記固定長ブロック領域から順に、前記固定長ブロック領域ごとに、前記分割残容量を算出する、
請求項1記載の残容量算出方法。 - 前記分割残容量算出ステップは、
終端の前記固定長ブロック領域を第1の処理対象として、前記分割残容量を算出する、
請求項1記載の残容量算出方法。 - 前記分割残容量算出ステップは、
前記アクセス装置内のメモリ上に、前記各固定長ブロック領域に対する残容量算出処理の実施の有無を示すステータスと、前記各固定長ブロック領域で管理される前記不揮発性メモリ上の領域に含まれる残容量である前記分割残容量の情報と、を含む残容量情報を格納する、
請求項1に記載の残容量算出方法。 - ファイルアクセスにより前記分割残容量に増減が発生した時点で、前記残容量情報を逐次更新する残容量情報更新ステップを更に備える、
請求項4記載の残容量算出方法。 - 前記ファイルアクセス可否判定ステップは、
前記ファイルアクセス処理の開始を許可した後、生成されたファイルデータを前記アクセス装置内のメモリ上に一時保持するステップと、
前記分割残容量が算出されていない残りの前記固定長ブロック領域に対して、前記分割残容量を算出する処理を実行するよう前記分割残容量算出ステップに要求するステップと、
全ての前記固定長ブロック領域に対して、前記分割残容量の算出処理が完了した後に、前記アクセス装置内の前記メモリに保持した前記ファイルデータを前記不揮発性メモリに記録するステップと、
を更に備える、
請求項1記載の残容量算出方法。 - ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法であって、
前記不揮発性メモリを管理するファイルシステムの領域管理情報であって、第0固定長ブロック領域、第1固定長ブロック領域、・・・、第(N−1)固定長ブロック領域のN個(Nは自然数)の固定長ブロック領域から構成される前記領域管理情報についての情報であるファイルシステム情報を取得するファイルシステム情報取得ステップと、
第K固定長ブロック領域(Kは自然数、K<N)に対して、前記第K固定長ブロック領域で管理される前記不揮発性メモリ上の領域に含まれる残容量である分割残容量C(K)を算出する分割残容量算出ステップと、
前記分割残容量算出ステップにより算出された前記分割残容量C(K)を、算出済み総残容量SUMに加算することで、前記第K固定長ブロック領域で管理される前記分割残容量C(K)を含めた算出済み総残容量SUMを算出する算出済み総残容量算出ステップと、
前記算出済み総残容量算出ステップにより算出された算出済み総残容量SUMと所定の必要残容量とを比較する比較ステップと、
前記比較ステップでの比較結果に基づいて、ファイルアクセス処理の開始を許可するファイルアクセス可否判定ステップと、
を備え、
第(N−1)固定長ブロック領域から固定長ブロック番号の降順に前記固定長ブロック領域を処理対象として、前記分割残容量算出ステップと、前記算出済み総残容量算出ステップと、前記比較ステップと、前記ファイルアクセス可否判定ステップと、を繰り返し実行し、
第(N−m)固定長ブロック領域(mは自然数)が処理対象である場合に、前記比較ステップが、前記算出済み総残容量SUMが前記必要残容量以上となったとき、
(1)前記ファイルアクセス可否判定ステップは、前記ファイルアクセス処理の開始を許可し、
(2)第0固定長ブロック領域から第(N−m−1)固定長ブロック領域を処理対象として、固定長ブロック番号の昇順に、前記前記分割残容量算出ステップと、前記算出済み総残容量算出ステップと、前記ファイルアクセス処理の開始が許可された後、生成されたファイルデータを前記アクセス装置内のメモリ上に一時保持するステップと、を繰り返し実行し、
(3)全ての前記固定長ブロック領域に対して、前記分割残容量の算出処理が完了し、全ての前記固定長ブロック領域に対する前記算出済み総残容量が算出された後に、前記アクセス装置内の前記メモリに保持した前記ファイルデータを前記不揮発性メモリに記録する、
残容量算出方法。 - ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法であって、
前記不揮発性メモリを管理するファイルシステムの領域管理情報であって、第0固定長ブロック領域、第1固定長ブロック領域、・・・、第(N−1)固定長ブロック領域のN個(Nは自然数)の固定長ブロック領域から構成される前記領域管理情報についての情報であるファイルシステム情報を取得するファイルシステム情報取得ステップと、
第K固定長ブロック領域(Kは自然数、K<N)に対して、前記第K固定長ブロック領域で管理される前記不揮発性メモリ上の領域に含まれる残容量である分割残容量C(K)を算出する分割残容量算出ステップと、
前記分割残容量算出ステップにより算出された前記分割残容量C(K)を、算出済み総残容量SUMに加算することで、前記第K固定長ブロック領域で管理される前記分割残容量C(K)を含めた算出済み総残容量SUMを算出する算出済み総残容量算出ステップと、
前記算出済み総残容量算出ステップにより算出された算出済み総残容量SUMと所定の必要残容量とを比較する比較ステップと、
前記比較ステップでの比較結果に基づいて、ファイルアクセス処理の開始を許可するファイルアクセス可否判定ステップと、
を備え、
第(N−1)固定長ブロック領域から固定長ブロック番号の降順に前記固定長ブロック領域を処理対象として、前記分割残容量算出ステップと、前記算出済み総残容量算出ステップと、前記比較ステップと、前記ファイルアクセス可否判定ステップと、を繰り返し実行し、
第(N−m)固定長ブロック領域(mは自然数)が処理対象である場合に、前記比較ステップが、前記算出済み総残容量SUMが前記必要残容量以上となったとき、
(1)前記ファイルアクセス可否判定ステップは、前記ファイルアクセス処理の開始を許可し、
(2)第(N−m−1)固定長ブロックから第0固定長ブロックを処理対象として、固定長ブロック番号の降順に、前記前記分割残容量算出ステップと、前記算出済み総残容量算出ステップと、前記ファイルアクセス処理の開始が許可された後、生成されたファイルデータを前記アクセス装置内のメモリ上に一時保持するステップと、を繰り返し実行し、
(3)全ての前記固定長ブロック領域に対して、前記分割残容量の算出処理が完了し、全ての前記固定長ブロック領域に対する前記算出済み総残容量が算出された後に、前記アクセス装置内の前記メモリに保持した前記ファイルデータを前記不揮発性メモリに記録する、
残容量算出方法。 - ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置であって、
前記不揮発性メモリを管理するファイルシステムのクラスタを所定数有する固定長ブロック領域のサイズの情報を有する領域管理情報を参照し、複数の前記固定長ブロック領域のうち、各固定長ブロック領域に含まれる分割残容量をファイルアロケーションテーブルに基づいて算出する分割残容量算出処理部と、
前記分割残容量算出処理部に対し前記分割残容量の算出処理の実行を要求するアプリケーション制御部と、
を備え、
前記分割残容量算出処理部が各固定長ブロック領域の前記分割残容量を算出する度に、前記アプリケーション制御部が、算出された固定長ブロック領域の前記分割残容量を合計することにより総残容量を取得し、前記総残容量と所定の必要残容量とを比較し、前記総残容量が前記必要残容量以上となった場合、前記不揮発性メモリへのアクセスを許可する、
アクセス装置。 - 前記アプリケーション制御部は、
前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、算出対象として1つ以上の前記固定長ブロック領域を指定し、
前記分割残容量算出処理部は、
前記指定された1つ以上の固定長ブロック領域に対して、前記分割残容量の算出処理を実行する、
請求項9に記載のアクセス装置。 - 前記アプリケーション制御部は、
前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、算出対象領域として、先頭の前記固定長ブロック領域から順に、1つ以上の前記固定長ブロック領域を指定する、
請求項10に記載のアクセス装置。 - 前記アプリケーション制御部は、
前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、算出対象領域として、終端の前記固定長ブロック領域を第1に指定する、
請求項10に記載のアクセス装置。 - 前記分割残容量算出処理部は、
前記アクセス装置内のメモリ上に、前記各固定長ブロック領域に対する前記分割残容量の算出処理の実施の有無を示すステータスと、前記各固定長ブロック領域で管理される前記不揮発性メモリ上の領域に含まれる残容量である前記分割残容量の情報と、を含む残容量情報を格納する、
請求項9に記載のアクセス装置。 - 前記分割残容量算出処理部は、
ファイルアクセスにより前記分割残容量に増減が発生した時点で、前記分割残容量の増減に関する情報を更新する、
請求項13に記載のアクセス装置。 - 前記アプリケーション制御部は、
前記ファイルアクセス処理の開始を許可した後、生成されたファイルデータを前記アクセス装置内のメモリ上に一時保持し、全ての前記固定長ブロック領域に対する残容量算出処理が完了した後に、前記保持したファイルデータを前記不揮発性メモリに記録する、
請求項9に記載のアクセス装置。 - 前記アプリケーション制御部は、
前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、算出対象領域の開始クラスタ番号と前記領域の大きさに関する情報を指定し、
前記分割残容量算出処理部は、
前記指定された算出対象領域を管理対象とする1つ以上の前記固定長ブロック領域に対して前記分割残容量の算出処理を実行する、
請求項9に記載のアクセス装置。 - 前記アプリケーション制御部は、
前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、算出対象領域の開始クラスタ番号と前記領域の大きさに関する情報として、ファイルシステムが管理する領域の先頭から順に、算出対象領域の前記開始クラスタ番号と前記領域の大きさに関する情報を指定する、
請求項16に記載のアクセス装置。 - 前記アプリケーション制御部は、
前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、ファイルシステムが管理する領域の終端領域を、第1に、前記分割残容量の算出処理の処理対象とし、算出対象領域の開始クラスタ番号と前記領域の大きさに関する情報として、前記終端領域の開始クラスタ番号と前記終端領域の大きさに関する情報を第1に指定する、
請求項16に記載のアクセス装置。 - 前記アプリケーション制御部は、
前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、前記所定の必要残容量を指定し、
前記分割残容量算出処理部は、
前記指定された所定の必要残容量以上の残容量が算出されるまで、前記固定長ブロック領域単位で前記残容量の算出処理を繰り返す、
請求項9に記載のアクセス装置。 - 前記分割残容量算出処理部は、
前記指定された所定の必要残容量以上の残容量が算出されるまで、前記固定長ブロック領域単位で前記分割残容量の算出処理を繰り返す際に、前記固定長ブロック領域の先頭から順に前記分割残容量の算出処理を実行する、
請求項19に記載のアクセス装置。 - 前記分割残容量算出処理部は、
前記指定された所定の必要残容量以上の残容量が算出されるまで、前記固定長ブロック領域単位で前記分割残容量の算出処理を繰り返す際に、前記固定長ブロック領域の終端ブロック領域に対する前記分割残容量の算出処理を、第1に実行する、
請求項19に記載のアクセス装置。 - ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法をコンピュータに実行させるプログラムであって、
前記不揮発性メモリを管理するファイルシステムのクラスタを所定数有する固定長ブロック領域のサイズの情報を有する領域管理情報を参照する参照ステップと、
複数の前記固定長ブロック領域のうち、各固定長ブロック領域に含まれる分割残容量をファイルアロケーションテーブルに基づいて算出する分割残容量算出ステップと、
前記分割残容量算出ステップにおいて、算出された固定長ブロック領域の前記分割残容量を合計することにより総残容量を取得する総残容量取得ステップと、
前記総残容量と所定の必要残容量とを比較する比較ステップと、
前記比較ステップの結果、前記総残容量が前記必要残容量以上となった場合、前記不揮発性メモリへのアクセスを許可する許可ステップと、
を備える残容量算出方法をコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009554651A JP5362594B2 (ja) | 2008-06-09 | 2009-06-05 | アクセス装置、及び残容量算出方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008150424 | 2008-06-09 | ||
JP2008150424 | 2008-06-09 | ||
PCT/JP2009/002554 WO2009150810A1 (ja) | 2008-06-09 | 2009-06-05 | アクセス装置、及び残容量算出方法 |
JP2009554651A JP5362594B2 (ja) | 2008-06-09 | 2009-06-05 | アクセス装置、及び残容量算出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2009150810A1 JPWO2009150810A1 (ja) | 2011-11-10 |
JP5362594B2 true JP5362594B2 (ja) | 2013-12-11 |
Family
ID=41416523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009554651A Active JP5362594B2 (ja) | 2008-06-09 | 2009-06-05 | アクセス装置、及び残容量算出方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9015444B2 (ja) |
JP (1) | JP5362594B2 (ja) |
WO (1) | WO2009150810A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8473708B1 (en) * | 2010-12-23 | 2013-06-25 | Netapp, Inc. | Method and system for managing storage units |
US9020991B2 (en) * | 2012-08-10 | 2015-04-28 | Ca, Inc. | System and method for analyzing available space in data blocks |
US9372635B2 (en) * | 2014-06-03 | 2016-06-21 | Ati Technologies Ulc | Methods and apparatus for dividing secondary storage |
JP6515799B2 (ja) * | 2015-12-18 | 2019-05-22 | 京セラドキュメントソリューションズ株式会社 | 電子機器及びメモリー寿命警告プログラム |
WO2018186455A1 (ja) * | 2017-04-07 | 2018-10-11 | パナソニックIpマネジメント株式会社 | 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム |
US20190044809A1 (en) * | 2017-08-30 | 2019-02-07 | Intel Corporation | Technologies for managing a flexible host interface of a network interface controller |
JP7153435B2 (ja) * | 2017-10-12 | 2022-10-14 | ラピスセミコンダクタ株式会社 | 不揮発性メモリのデータ書換方法及び半導体装置 |
CN110764704B (zh) * | 2019-10-18 | 2023-09-05 | 浙江大华技术股份有限公司 | 一种环境变量写入方法、存储介质及电子装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004078410A (ja) * | 2002-08-13 | 2004-03-11 | Sony Corp | 記録装置および方法、記録媒体、並びにプログラム |
WO2008016081A1 (fr) * | 2006-08-04 | 2008-02-07 | Panasonic Corporation | Contrôleur de mémoire, dispositif de mémoire non-volatile, dispositif d'accès et système de mémoire non-volatile |
WO2008072590A1 (ja) * | 2006-12-15 | 2008-06-19 | Panasonic Corporation | ライトワンス記録装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006098212A1 (ja) * | 2005-03-15 | 2006-09-21 | Matsushita Electric Industrial Co., Ltd. | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 |
JP2007214786A (ja) | 2006-02-08 | 2007-08-23 | Toshiba Corp | 携帯型撮像装置 |
JP4758794B2 (ja) | 2006-03-16 | 2011-08-31 | 富士通株式会社 | メモリ領域割り当て制御装置、メモリ領域割り当て制御プログラム、及びメモリ領域割り当て制御方法 |
-
2009
- 2009-06-05 WO PCT/JP2009/002554 patent/WO2009150810A1/ja active Application Filing
- 2009-06-05 JP JP2009554651A patent/JP5362594B2/ja active Active
- 2009-06-05 US US12/672,373 patent/US9015444B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004078410A (ja) * | 2002-08-13 | 2004-03-11 | Sony Corp | 記録装置および方法、記録媒体、並びにプログラム |
WO2008016081A1 (fr) * | 2006-08-04 | 2008-02-07 | Panasonic Corporation | Contrôleur de mémoire, dispositif de mémoire non-volatile, dispositif d'accès et système de mémoire non-volatile |
WO2008072590A1 (ja) * | 2006-12-15 | 2008-06-19 | Panasonic Corporation | ライトワンス記録装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2009150810A1 (ja) | 2009-12-17 |
JPWO2009150810A1 (ja) | 2011-11-10 |
US9015444B2 (en) | 2015-04-21 |
US20120131301A1 (en) | 2012-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5362594B2 (ja) | アクセス装置、及び残容量算出方法 | |
US6823417B2 (en) | Memory controller for memory card manages file allocation table | |
JP4691209B2 (ja) | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム | |
JP5481493B2 (ja) | アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム | |
JP5485163B2 (ja) | アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム | |
JP5577238B2 (ja) | アクセス装置、情報記録装置、コントローラ、及び情報記録システム | |
JPH11203191A (ja) | 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体 | |
US8549213B2 (en) | Nonvolatile storage device, access device and nonvolatile storage system | |
US20170168735A1 (en) | Reducing time to read many files from tape | |
JP2007233512A (ja) | データ記録装置、データ記録方法、及びプログラム | |
US20140331007A1 (en) | Virtual library controller and control method | |
JP2007148546A (ja) | データ読出しシステム、データ読出し装置およびデータ読出し方法 | |
KR102094786B1 (ko) | 파일 시스템 및 상기 파일 시스템을 이용한 파일 저장 방법 | |
JP2009205591A (ja) | アクセスモジュール、情報記録モジュール、及び情報記録システム | |
WO2018186455A1 (ja) | 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム | |
JP7262977B2 (ja) | 記録装置及びその制御方法、並びにプログラム | |
JP2009205590A (ja) | アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム | |
JP4480592B2 (ja) | ファイルシステム | |
JP2006164017A (ja) | 情報処理装置、情報処理方法、プログラム | |
JP4734898B2 (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2021033615A (ja) | 制御装置 | |
KR100882470B1 (ko) | 미디어 파일 편집 방법 | |
CN116107510A (zh) | 一种文件管理方法、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120302 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130528 |
|
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: 20130827 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130904 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |