JP5362594B2 - アクセス装置、及び残容量算出方法 - Google Patents

アクセス装置、及び残容量算出方法 Download PDF

Info

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
Application number
JP2009554651A
Other languages
English (en)
Other versions
JPWO2009150810A1 (ja
Inventor
卓治 前田
勉 森
昌史 野阪
剛史 梅本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2009554651A priority Critical patent/JP5362594B2/ja
Publication of JPWO2009150810A1 publication Critical patent/JPWO2009150810A1/ja
Application granted granted Critical
Publication of JP5362594B2 publication Critical patent/JP5362594B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-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

本発明は、データを不揮発性メモリに格納し、ファイルとして管理するアクセス装置(アクセスモジュール)、及び残容量算出方法に関する。
音楽コンテンツや、映像データ等のデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスク等、様々な種類が存在する。これら記録媒体の内、記録素子にFlashROM等の半導体メモリを使用したメモリカードは、記録媒体の小型化が図れることから、ムービーやデジタルスチルカメラ、携帯電話端末等、小型の携帯機器を中心に急速に普及している。更に最近では、FlashROM等の半導体メモリを機器に内蔵してハードディスクの代わりに使用するなど、従来のメモリカードのような着脱可能なリムーバブルメディアとしての用途のみならず、機器内蔵ストレージとしての用途でも半導体メモリが使用されるようになってきた。
このようなメモリカードや機器内蔵ストレージには、主にNAND型フラッシュメモリと呼ばれる半導体素子が使用されている。NAND型フラッシュメモリは、既に記録されたデータを一旦消去した後、再度別のデータを記録することが可能な記録素子であり、従来のハードディスクと同様に、複数回書き換え可能な情報記録装置を構成することが可能である。
従来、メモリカードや機器内蔵ストレージに格納されたデータは、ファイルシステムにより管理されている。データをファイルシステムにより管理することで、同一のファイルシステムを解釈する機器間でデータをファイルとして共有することが可能となり、ユーザは自分の格納したデータを複数の機器間で容易に参照したり、コピーしたりすることが可能となる。
従来最も広く使用されているファイルシステムは、FATファイルシステムと呼ばれるものである。FATファイルシステムは、領域管理をファイルアロケーションテーブル(FAT)と呼ばれるテーブルで一元管理するという特徴を持っており、比較的構造がシンプルで実装が容易なことから、フレキシブルディスクやPCのハードディスク、メモリカードなどのファイルシステムとして広く使用されている。
図2にFATファイルシステムの構成を示す。FATファイルシステムでは、ファイルアロケーションテーブル内の管理単位のビット幅の違いにより、FAT12、FAT16、FAT32などの種類が存在するが、いずれのFATファイルシステムにおいても、ファイルアロケーションテーブルによる領域管理方法は、ほぼ同じであり、以下では、FAT16を例に説明する。
図2に示すように、論理アドレス空間の先頭には、領域割り当て単位やファイルシステムが管理する領域の大きさ等、ファイルシステムの管理情報が格納される領域であるファイルシステム管理情報領域201が存在する。
このファイルシステム管理情報領域201には、マスターブートレコード・パーティションテーブル203、パーティションブートセクタ204、FAT(205、206)、ルートディレクトリエントリ207と呼ばれるファイルシステムの管理情報が含まれ、ユーザデータ領域202を管理するために必要な情報が各々格納されている。
マスターブートレコード・パーティションテーブル203は、ファイルシステムが管理する論理アドレス空間上の領域を複数のパーティションと呼ばれる領域に分割して管理するための情報が格納される領域である。
パーティションブートセクタ204は、パーティション内の領域管理単位の大きさなど、1つのパーティション内の管理情報が格納される領域である。FAT(205、206)は、ファイルに含まれるデータの格納位置に関する情報が格納される領域であり、通常、同じ情報を持つ2つのFAT(205、206)が存在し、一方のFAT(205、206)が破損したとしても他方のFAT(205、206)によりファイルにアクセスできるよう二重化されている。
ルートディレクトリエントリ207は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報(ディレクトリエントリ)が格納される領域である。
また、FATファイルシステムでは、このファイルシステム管理情報領域201に引き続く領域にファイル本体のデータなどを格納するユーザデータ領域202が存在する。ユーザデータ領域202は、512バイトから数十KB程度の大きさを持つクラスタと呼ばれる管理単位毎に分割管理されており、各クラスタにはファイルに含まれるデータが格納されている。多くのデータを格納するファイルは、複数のクラスタに跨ってデータを格納しており、各クラスタ間の繋がりは、FAT(205、206)に格納されたリンク情報により管理されている。また、ルートディレクトリ直下のディレクトリ内に存在するファイル、サブディレクトリの情報(ディレクトリエントリ)は、このユーザデータ領域202の一部を利用して格納される。
図3は、FAT16のディレクトリエントリの構成を示した図である。
ディレクトリエントリ208は、1つのファイル、ディレクトリ毎に32バイトのディレクトリエントリ208が割り当てられ、ファイル、ディレクトリに関する情報を格納している。すなわち、1つのファイルやディレクトリが追加される度に32バイトのディレクトリエントリ208の情報が新規に作成され、ルートディレクトリエントリ207の領域、あるいはユーザデータ領域202に記録される。
ディレクトリエントリ208の先頭8バイトには、ファイルやディレクトリの名称が格納される。続く3バイトには、拡張子が格納される。続く1バイトには、ファイル・ディレクトリの種別を識別するフラグや、ファイル・ディレクトリがリードオンリーか否かを識別するフラグ等の属性情報が格納される。また、ファイル・ディレクトリの最終更新日時の情報や、ファイル・ディレクトリデータの実体が格納されているクラスタの開始位置を示す開始クラスタ番号、ファイルサイズのバイト数等が格納される。
このようにディレクトリエントリ208には、データ実体が格納されている領域の最初の1クラスタの位置を示す情報しか含まれておらず、データ実体の大きさが1クラスタよりも大きい場合において2クラスタ目以降のデータがどの領域に格納されているかについては、FAT(205、206)で管理されている。
図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エントリは、各々対応するクラスタの状態(使用中、空き、欠陥)、及びリンク先のクラスタ番号を示す。例えば、図4において、対応クラスタ番号2のFATエントリは0x0003(十進数では“3”)に設定されており、クラスタ番号2のクラスタ内に格納されたデータの続きのデータは、クラスタ番号3のクラスタ内に格納されていることを意味する。同様に、対応クラスタ番号3のFATエントリは、0x0004(十進数では“4”)に設定されており、クラスタ番号3のクラスタ内に格納されたデータの続きのデータは、クラスタ番号4のクラスタ内に格納されていることを意味する。また、対応クラスタ番号6のFATエントリは0xFFFFに設定されている。これは、次のリンク先が存在せず、リンクが終端していることを意味する。よって、図4の例では、クラスタ番号2、3、4、5、6の順に一連のファイルデータが格納されていることになる。また、対応クラスタ番号7のFATエントリは0x0000に設定されている。これは対応するクラスタが使用されておらず、“空き”の状態であることを意味する。また、対応クラスタ番号(M+1)のFATエントリは0xFFF7に設定されている。これは、対応するクラスタが物理的に壊れていて記録が出来ない状態である等の欠陥状態であることを意味する。
以上をまとめると、0x0000、0xFFFF、0xFFF7の3つのFATエントリ値は各々特殊な意味を持ち、0x0002から0xFFF6までのFATエントリ値がリンク先クラスタ番号として使用されることになる。また、それ以外の0x0001、0xFFF8から0xFFFEまでの値は予約されており、通常は使用されない値になっている。
このように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エントリが空きクラスタを示すか判定する。
具体的には、FATエントリの値が0x0000である場合は空きクラスタであると判定し、それ以外の場合は空きクラスタではないと判定する。
空きクラスタであると判定した場合は、S505の処理に進み、空きクラスタではないと判定した場合は、S506の処理に進む。
(S505):
空きクラスタが発見されたため、アクセスモジュールは、FREE_SPACEの値を「1」加算する(+1だけインクリメントする)。
(S506):
アクセスモジュールは、現在参照位置を1FATエントリ分進め、S503の処理に戻る。
例えば、図6に示すようなFAT(205、206)を想定した場合、クラスタ番号2に対応するFATエントリからクラスタ番号31に対応するFATエントリまでに存在する空きクラスタの総数は16クラスタであり、この値が残容量として、アクセスモジュールのアプリケーション制御部に通知される。
このように、残容量算出処理では、全FATエントリに対して値を確認し、空きクラスタの個数をカウントする必要があるため、ファイルシステムが管理する総容量が増加するに従いFATエントリが増加し、残容量算出処理時間が長くなるという問題が生じる。
従来、このような問題を解決する方法として、残容量の情報をパーティションブートセクタ204等のファイルシステム管理情報領域201に予め保持しておく方法が提案されている(例えば、特許文献1参照)。この方法では、ファイルシステム管理情報領域201に格納された残容量の情報を読み出すことにより、従来FAT(205、206)を参照して実施していた残容量算出処理を割愛し、残容量算出処理を含むファイルシステム初期化時間を短縮している。
特開2007−214786号公報
しかしながら、上記の技術には次のような問題点がある。
上記の方法では、ファイルデータの記録やファイルの削除など、残容量が変化するタイミングで逐次ファイルシステム管理情報領域201に格納した残容量の情報を上書きし、更新する必要がある。特に、リムーバブルメディアに対して本技術を適用する場合には、全てのアクセス装置がこの情報更新処理に対応していなければならず、対応していない機器が存在する場合には、ファイルシステム管理情報領域201に格納された残容量の情報と、FAT(205,206)上の残容量とが一致せず、矛盾が生じる。
また、機器内蔵ストレージに対して本技術を適用する場合には、不意に電源断が生じた場合等にやはり矛盾が生じる可能性がある。
本発明は、上記問題点に鑑み、ファイルシステムにおいて残容量算出を高速に行い、ファイルシステムの初期化から記録開始までにかかる時間を短縮することが可能なアクセスモジュール、及び残容量算出方法を提供することを目的とする。
第1の発明は、ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法であって、分割残容量算出ステップと、ファイルアクセス可否判定ステップと、を備える。
分割残容量算出ステップは、不揮発性メモリを管理するファイルシステムの領域管理情報であって、複数の固定長ブロック領域から構成される領域管理情報を、固定長ブロック領域ごとに参照し、固定長ブロック領域ごとに固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量を算出する。ファイルアクセス可否判定ステップは、分割残容量算出ステップにより、分割残容量が算出される度に、固定長ブロック領域ごとに算出された分割残容量を合計することで、算出済み総残容量を算出し、算出した算出済み総残容量と所定の必要残容量とを比較し、算出済み総残容量が必要残容量以上となった時点で、ファイルアクセス処理の開始を許可する。
この残容量算出方法では、領域管理情報は、固定長ブロック領域単位で管理され、分割残容量算出ステップにより、固定長ブロック領域ごとに固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量が算出される。これにより、必要最小限の残容量が存在することを確認できた時点で、ファイルアクセス処理を開始させることができる。その結果、全体に対する残容量算出処理の実施完了を待つことなく記録を開始することができ、ファイルシステムの初期化から記録開始までの時間を短縮することが可能となる。
第2の発明は、第1の発明であって、分割残容量算出ステップは、先頭の固定長ブロック領域から順に、固定長ブロック領域ごとに、分割残容量を算出する。
第3の発明は、第1の発明であって、分割残容量算出ステップは、終端の固定長ブロック領域を第1の処理対象として、分割残容量を算出する。
この残容量算出方法では、残容量が多い可能性の高い終端の固定長ブロック領域に対して、最初に、分割残容量の算出処理が実施されるので、必要最低限の残容量を高速に取得できる可能性が高くなる。
なお、「第1の処理対象」とは、第1番目の処理対象のことである。
第4の発明は、第1の発明であって、分割残容量算出ステップは、アクセス装置内のメモリ上に、各固定長ブロック領域に対する残容量算出処理の実施の有無を示すステータスと、各固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量の情報と、を含む残容量情報を格納する。
第5の発明は、第4の発明であって、ファイルアクセスにより分割残容量に増減が発生した時点で、残容量情報を逐次更新する残容量情報更新ステップを更に備える。
この残容量算出方法では、残容量情報更新ステップにより、ファイルアクセスにより分割残容量に増減が発生した時点で、残容量情報が逐次更新されるので、残容量情報を常に最新の情報にすることできる。
第6の発明は、第1の発明であって、ファイルアクセス可否判定ステップは、以下のステップを備える。
(1)ファイルアクセス処理の開始を許可した後、生成されたファイルデータをアクセス装置内のメモリ上に一時保持するステップ。
(2)分割残容量が算出されていない残りの固定長ブロック領域に対して、分割残容量を算出する処理を実行するよう分割残容量算出ステップに要求するステップ。
(3)全ての固定長ブロック領域に対して、分割残容量の算出処理が完了した後に、アクセス装置内のメモリに保持したファイルデータを不揮発性メモリに記録するステップ。
この残容量算出方法では、上記(1)〜(3)により、実際に不揮発性メモリにファイルデータを記録する時点では、全ての固定長ブロック領域について分割残容量の算出処理が完了していることから、例えば、先頭の固定長ブロック領域(例えば、先頭のFATブロック)に含まれる空き領域(例えば、空きクラスタ)にファイルデータを記録することが可能となる。そのため、終端の固定長ブロック領域(例えば、終端のFATブロック)に含まれる空き領域(例えば、空きクラスタ)は、終端以外の固定長ブロック領域(例えば、終端のFATブロック以外のFATブロック)に含まれる空き領域(例えば、空きクラスタ)がなくなるまで使用されることがなく、必要最低限の残容量取得を常に高速に実施することが可能となる。
第7の発明は、ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法であって、ファイルシステム情報取得ステップと、分割残容量算出ステップと、総残容量算出ステップと、比較ステップと、ファイルアクセス可否判定ステップと、を備える。
ファイルシステム情報取得ステップは、不揮発性メモリを管理するファイルシステムの領域管理情報であって、第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)全ての固定長ブロック領域に対して、分割残容量の算出処理が完了し、全ての固定長ブロック領域に対する算出済み総残容量が算出された後に、アクセス装置内のメモリに保持したファイルデータを不揮発性メモリに記録する。
この残容量算出方法では、上記処理により、実際に不揮発性メモリにファイルデータを記録する時点では、全ての固定長ブロック領域について分割残容量の算出処理が完了していることから、例えば、先頭の固定長ブロック領域(例えば、先頭のFATブロック)に含まれる空き領域(例えば、空きクラスタ)にファイルデータを記録することが可能となる。そのため、終端の固定長ブロック領域(例えば、終端のFATブロック)に含まれる空き領域(例えば、空きクラスタ)は、終端以外の固定長ブロック領域(例えば、終端のFATブロック以外のFATブロック)に含まれる空き領域(例えば、空きクラスタ)がなくなるまで使用されることがなく、必要最低限の残容量取得を常に高速に実施することが可能となる。
なお、この残容量算出方法では、上記の順番に実行されることが望ましいが、一部の順序を入れ替えて実行されるものであってもよい。
第8の発明は、ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法であって、ファイルシステム情報取得ステップと、分割残容量算出ステップと、総残容量算出ステップと、比較ステップと、ファイルアクセス可否判定ステップと、を備える。
ファイルシステム情報取得ステップは、不揮発性メモリを管理するファイルシステムの領域管理情報であって、第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)全ての固定長ブロック領域に対して、分割残容量の算出処理が完了し、全ての固定長ブロック領域に対する算出済み総残容量が算出された後に、アクセス装置内のメモリに保持したファイルデータを不揮発性メモリに記録する。
この残容量算出方法では、上記処理により、実際に不揮発性メモリにファイルデータを記録する時点では、全ての固定長ブロック領域について分割残容量の算出処理が完了していることから、例えば、先頭の固定長ブロック領域(例えば、先頭のFATブロック)に含まれる空き領域(例えば、空きクラスタ)にファイルデータを記録することが可能となる。そのため、終端の固定長ブロック領域(例えば、終端のFATブロック)に含まれる空き領域(例えば、空きクラスタ)は、終端以外の固定長ブロック領域(例えば、終端のFATブロック以外のFATブロック)に含まれる空き領域(例えば、空きクラスタ)がなくなるまで使用されることがなく、必要最低限の残容量取得を常に高速に実施することが可能となる。
なお、この残容量算出方法では、上記の順番に実行されることが望ましいが、一部の順序を入れ替えて実行されるものであってもよい。
第9の発明は、ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置であって、分割残容量算出処理部と、アプリケーション制御部と、を備える。
分割残容量算出処理部は、不揮発性メモリを管理するファイルシステムの領域管理情報であって、複数の固定長ブロック領域から構成される領域管理情報を、固定長ブロック領域ごとに参照し、固定長ブロック領域ごとに固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量を算出する。アプリケーション制御部は、分割残容量算出処理部に対し分割残容量の算出処理の実行を要求する。
そして、分割残容量算出処理部が固定長ブロック領域ごとの分割残容量を算出する度に、アプリケーション制御部が、固定長ブロック領域ごとに算出された分割残容量を合計することで、算出済み総残容量を算出し、算出した算出済み総残容量と所定の必要残容量とを比較し、算出済み総残容量が必要残容量以上の残容量であると判定された時点で、ファイルアクセス処理の開始を許可する。
このアクセス装置では、領域管理情報は、固定長ブロック領域単位で管理され、分割残容量算出部により、固定長ブロック領域ごとに固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量が算出される。これにより、必要最小限の残容量が存在することを確認できた時点で、ファイルアクセス処理を開始させることができる。その結果、全体に対する残容量算出処理の実施完了を待つことなく記録を開始することができ、ファイルシステムの初期化から記録開始までの時間を短縮することが可能となる。
なお、「アクセス装置」は、アクセスモジュールを含む概念である。
第10の発明は、第9の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、算出対象として1つ以上の固定長ブロック領域を指定する。分割残容量算出処理部は、指定された1つ以上の固定長ブロック領域に対して、分割残容量の算出処理を実行する。
第11の発明は、第10の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、算出対象領域として、先頭の固定長ブロック領域から順に、1つ以上の固定長ブロック領域を指定する。
第12の発明は、第10の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、算出対象領域として、終端の固定長ブロック領域を第1に指定する。
このアクセス装置では、残容量が多い可能性の高い終端の固定長ブロック領域に対して、最初に、分割残容量の算出処理が実施されるので、必要最低限の残容量を高速に取得できる可能性が高くなる。
第13の発明は、第9の発明であって、分割残容量算出処理部は、アクセス装置内のメモリ上に、各固定長ブロック領域に対する分割残容量の算出処理の実施の有無を示すステータスと、各固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量の情報と、を含む残容量情報を格納する。
第14の発明は、第13の発明であって、分割残容量算出処理部は、ファイルアクセスにより分割残容量に増減が発生した時点で、分割残容量の増減に関する情報を更新する。
このアクセス装置では、分割残容量算出処理部により、ファイルアクセスにより分割残容量に増減が発生した時点で、残容量情報が逐次更新されるので、残容量情報を常に最新の情報にすることできる。
第15の発明は、第9の発明であって、アプリケーション制御部は、ファイルアクセス処理の開始を許可した後、生成されたファイルデータをアクセス装置内のメモリ上に一時保持し、全ての固定長ブロック領域に対する残容量算出処理が完了した後に、保持したファイルデータを不揮発性メモリに記録する。
このアクセス装置では、実際に不揮発性メモリにファイルデータを記録する時点では、全ての固定長ブロック領域について分割残容量の算出処理が完了していることから、例えば、先頭の固定長ブロック領域(例えば、先頭のFATブロック)に含まれる空き領域(例えば、空きクラスタ)にファイルデータを記録することが可能となる。そのため、終端の固定長ブロック領域(例えば、終端のFATブロック)に含まれる空き領域(例えば、空きクラスタ)は、終端以外の固定長ブロック領域(例えば、終端のFATブロック以外のFATブロック)に含まれる空き領域(例えば、空きクラスタ)がなくなるまで使用されることがなく、必要最低限の残容量取得を常に高速に実施することが可能となる。
第16の発明は、第9の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、算出対象領域の開始クラスタ番号と領域の大きさに関する情報を指定する。分割残容量算出処理部は、指定された算出対象領域を管理対象とする1つ以上の固定長ブロック領域に対して分割残容量の算出処理を実行する。
第17の発明は、第16の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、算出対象領域の開始クラスタ番号と領域の大きさに関する情報として、ファイルシステムが管理する領域の先頭から順に、算出対象領域の開始クラスタ番号と領域の大きさに関する情報を指定する。
第18の発明は、第16の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、ファイルシステムが管理する領域の終端領域を、第1に、分割残容量の算出処理の処理対象とし、算出対象領域の開始クラスタ番号と領域の大きさに関する情報として、終端領域の開始クラスタ番号と終端領域の大きさに関する情報を第1に指定する。
このアクセス装置では、残容量が多い可能性の高い終端の固定長ブロック領域に対して、最初に、分割残容量の算出処理が実施されるので、必要最低限の残容量を高速に取得できる可能性が高くなる。
第19の発明は、第9の発明であって、アプリケーション制御部は、分割残容量算出処理部に対して、分割残容量の算出処理の実行を要求する際に、所定の必要残容量を指定する。分割残容量算出処理部は、指定された所定の必要残容量以上の残容量が算出されるまで、固定長ブロック領域単位で残容量の算出処理を繰り返す。
第20の発明は、第19の発明であって、分割残容量算出処理部は、指定された所定の必要残容量以上の残容量が算出されるまで、固定長ブロック領域単位で分割残容量の算出処理を繰り返す際に、固定長ブロック領域の先頭から順に分割残容量の算出処理を実行する。
第21の発明は、第19の発明であって、分割残容量算出処理部は、指定された所定の必要残容量以上の残容量が算出されるまで、固定長ブロック領域単位で分割残容量の算出処理を繰り返す際に、固定長ブロック領域の終端ブロック領域に対する分割残容量の算出処理を、第1に実行する。
このアクセス装置では、残容量が多い可能性の高い終端の固定長ブロック領域に対して、最初に、分割残容量の算出処理が実施されるので、必要最低限の残容量を高速に取得できる可能性が高くなる。
第22の発明は、ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法をコンピュータに実行させるプログラムである。残容量算出方法は、分割残容量算出ステップと、ファイルアクセス可否判定ステップと、を備える。
分割残容量算出ステップは、不揮発性メモリを管理するファイルシステムの領域管理情報であって、複数の固定長ブロック領域から構成される領域管理情報を、固定長ブロック領域ごとに参照し、固定長ブロック領域ごとに固定長ブロック領域で管理される不揮発性メモリ上の領域に含まれる残容量である分割残容量を算出する。ファイルアクセス可否判定ステップは、分割残容量算出ステップにより、分割残容量が算出される度に、固定長ブロック領域ごとに算出された分割残容量を合計することで、算出済み総残容量を算出し、算出した算出済み総残容量と所定の必要残容量とを比較し、算出済み総残容量が必要残容量以上となった時点で、ファイルアクセス処理の開始を許可する。
これにより、第1の発明と同様の効果を奏するプログラムを実現することができる。
本発明によれば、ファイルシステムにおいて残容量算出を高速に行い、ファイルシステムの初期化から記録開始までにかかる時間を短縮することが可能となる。
第1実施形態におけるアクセスモジュール、及び情報記録モジュールの構成を示した説明図 FAT型ファイルシステムの構成を示した説明図 ディレクトリエントリの構成を示した説明図 FATの一例を示した説明図 従来の残容量算出処理手順を示したフローチャート FATの別の一例を示した説明図 第1実施形態におけるFAT管理の一例を示した説明図 第1実施形態における残容量情報の一例を示した説明図 第1実施形態におけるマウント処理手順を示したフローチャート 第1実施形態におけるマウント処理直後の残容量情報の一例を示した説明図 第1実施形態におけるファイルシステム情報取得処理手順を示したフローチャート 第1実施形態におけるファイルシステム情報の一例を示した説明図 第1実施形態における残容量算出処理手順を示したフローチャート 第1実施形態における残容量算出処理直後の残容量情報の一例を示した説明図 第1実施形態におけるアプリケーション制御部、ファイルシステム制御部間の制御シーケンスの一例を示した説明図 第1実施形態における全FATブロックに対する残容量算出処理完了後の残容量情報の一例を示した説明図 第1実施形態におけるアプリケーション制御部、ファイルシステム制御部間の制御シーケンスの第2の例を示した説明図 第1実施形態におけるアプリケーション制御部、ファイルシステム制御部間の制御シーケンスの第3の例を示した説明図
以下、本発明の実施形態(特に、アクセスモジュール、及び残容量算出方法)について、図面を参照しつつ説明する。
[第1実施形態]
(1.1:全体構成)
図1は、第1実施形態における不揮発性記憶システム100の概略構成図である。不揮発性記憶システム100は、アクセスモジュール(アクセス装置)1と、情報記録モジュール(情報記録装置)2と、を備える。
図1に示すように、アクセスモジュール1は、CPU11、RAM12、情報記録モジュールインタフェース13、ROM14を含む。
ROM14には、アクセスモジュール1を制御するプログラムが格納されており、このプログラムは、RAM12を一時記憶領域として使用し、CPU11上で動作する。
情報記録モジュールインタフェース13は、情報記録モジュール2とアクセスモジュール1との接続部であり、制御信号及びデータの送受信を行う。
ROM14は、更に、アプリケーション制御部101、ファイルシステム制御部102、情報記録モジュールアクセス部104を含む。なお、本実施形態では、アプリケーション制御部101、ファイルシステム制御部102、情報記録モジュールアクセス部104は、ROM14上において、ソフトウェアにより実現されるものを想定しているが、アプリケーション制御部101、ファイルシステム制御部102、情報記録モジュールアクセス部104は、その全部または一部が、ハードウェアにより実現されるものであってもよい。
アプリケーション制御部101は、データの生成や電源の制御などアクセスモジュール1全体の制御を行う。
ファイルシステム制御部102は、ファイルシステムによりデータをファイルとして管理するための制御を行う。
情報記録モジュールアクセス部104は、ファイルシステム制御部102からデータと共にサイズとアドレスを渡され、指定されたサイズのデータを情報記録モジュール2の記録領域内における指定された位置に記録するなど、情報記録モジュール2に対するコマンドやデータの送受信を制御する。
ファイルシステム制御部102は、更に、分割残容量算出処理部103を含む。
分割残容量算出処理部103は、本発明の特徴を示す処理部であり、残容量の算出を複数回の処理に分割して実施する処理部である。また、分割残容量算出処理部103が実施する分割残容量算出処理に使用する情報は、RAM12内の残容量情報格納部105に格納される。
一方、図1に示すように、情報記録モジュール2は、アクセスモジュールインタフェース21、CPU22、RAM23、ROM24、不揮発性メモリ25を含む。
アクセスモジュールインタフェース21は、情報記録モジュール2とアクセスモジュール1との接続部であり、情報記録モジュールインタフェース13と同様に、制御信号及びデータを送受信するインタフェースである。
ROM24には、情報記録モジュール2を制御するプログラムが格納されており、このプログラムはRAM23を一時記憶領域として使用し、CPU22上で動作する。
不揮発性メモリ25は、アクセスモジュール1から送信されたデータを記録する領域であり、その中はファイルシステムで管理されている。すなわち、不揮発性メモリ25内の論理アドレス空間には、図2で示した構成を一例とするFAT型ファイルシステムの各種データ構造が格納されている。すなわち、記録領域はクラスタ単位に分割され、FAT(205、206)を用いて管理されており、ファイルやディレクトリの名称やサイズ等の情報はディレクトリエントリ208を用いて管理されている。
本発明における分割残容量算出処理部103は、従来技術と同様に情報記録モジュール2からFAT(205,206)をアクセスモジュール1のRAM12に読み出し、残容量を算出する。従来技術と異なる点は、残容量算出処理を分割して実施し、データ記録に必要な最低限の残容量が取得できた時点で記録を開始することを可能とする点である。これにより、不揮発性記憶システム100では、従来に比べファイルシステムの初期化から記録開始までにかかる処理時間を短縮することが可能となる。
(1.2:分割残容量算出処理部)
続いて、本実施形態における分割残容量算出処理部103について、図7、図8を用いて説明する。
図7は、分割残容量算出処理部103におけるFAT(205、206)の管理の一例を示した図である。この図では、クラスタサイズが16KBの場合に65000クラスタからなるユーザデータ領域202をFAT(205、206)で管理した場合の例を示している。FAT16では、1FATエントリ当たり2バイトで管理するため、65000クラスタを管理する場合、FAT(205、206)は128KB弱の大きさとなる。
分割残容量算出処理部103は、このFATを複数の固定長ブロックに分割して管理する。ここでは、固定長ブロックとして16KBの大きさに区切って管理する場合を想定する。128KBのFAT(205、206)を16KBずつのFATブロックに区切って管理する場合、FATブロック_0からFATブロック_7までの合計8つのFATブロックが存在することになる。実際には、FAT(205、206)のサイズが128KBよりも少し小さいため、FATブロック_7の終端には、FATとして使用されない未使用領域が存在している。
図8は、分割残容量算出処理部103が残容量情報格納部105に格納する残容量情報301の一例を示した図である。
残容量情報301は、各FATブロックの“ステータス”と“残容量”を示す情報から構成される。
“ステータス”は、該当するFATブロックに対する残容量算出処理が実施されたか否かを示す情報であり、実施済みであれば「1」が、未実施であれば「0」が格納される。
“残容量”は、該当する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において、S905の処理まで実施してマウント処理が成功した場合、アプリケーション制御部101は、ファイルアクセスを行う準備ができたことになる。但し、現時点では、ファイルシステム制御部102は、残容量の総量を「0」と認識していることから、ファイルへの追記やディレクトリ作成等、新たに空き領域を必要とする処理は行えない状態となっている。これらの処理は、後述する分割残容量算出処理において残容量が検出された後、実行することが可能となる。
(1.4:ファイルシステム情報取得処理)
続いて、図11を用いて、本実施形態のファイルシステム制御部102におけるファイルシステム情報取得処理手順について説明する。このファイルシステム情報取得処理は、アプリケーション制御部101がファイルシステム制御部102から、ユーザデータ領域202に含まれる総容量等のファイルシステムに関する全般的な情報(以下、「ファイルシステム情報302」と呼ぶ)を取得する処理であり、マウント処理実施後、実際にファイルアクセスする前に実施される。
(S1101):
ファイルシステム制御部102は、マウント処理時にRAM12上に保持したファイルシステム管理情報を元に、ファイルシステム情報302を作成する。ファイルシステム情報302の一例を図12に示す。図12に示されるファイルシステム情報302は、“FS種別”、“セクタサイズ”、“クラスタサイズ”、“総容量”、“FATブロック数”を含む。
“FS種別”は、ファイルシステムの種別に関する情報を格納する。例えば“0”はFAT12、“1”はFAT16、“2”はFAT32のように各ファイルシステム種別に数値を対応づけておき、該当する数値を本フィールドに格納する。
“セクタサイズ”は、ファイルシステムの最小管理単位であるセクタの大きさを示す情報を格納する。
“クラスタサイズ”は、ユーザデータ領域202の管理単位であるクラスタの大きさを示す情報を格納する。
“総容量”は、ユーザデータ領域202に含まれる全体の容量を示す情報を格納する。
“FATブロック数”は、FAT(205、206)を固定長ブロック単位で管理した際のブロック数を示す情報を格納する。例えば、図7の例では、FATブロックの個数が8個であることから、本フィールドには“8”が格納される。
(S1102):
ファイルシステム制御部102は、S1101で作成したファイルシステム情報302をアプリケーション制御部101に通知して処理を終了する。
このように、ファイルシステム情報取得処理では、アプリケーション制御部101が総容量等のファイルシステムに関する全般的な情報を取得すると共に、FATブロック数を取得する。本実施形態では、残容量算出処理をこのFATブロック単位で実施する場合の例について説明する。
(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に通知して処理を終了する。
このように、本実施形態における残容量算出処理では、アプリケーション制御部101から指定された1つのFATブロックに対する残容量算出処理を実施し、それ以前に残容量算出が完了している全てのFATブロックの残容量の総和をアプリケーション制御部101に返す。これにより、FAT(205、206)のサイズが大きい場合でも、FAT(205、206)全体の残容量算出処理が完了するまで待つことなく、アプリケーション制御部101に処理を返すことが可能となる。
また、残容量算出処理は、必ずしも1つのFATブロックに対してのみ実施するのではなく、アプリケーション制御部101からの指定に応じて、2つ以上のFATブロックをまとめて処理しても良い。この場合、S1301からS1308までの処理を、アプリケーション制御部101が指定した複数のFATブロックに対して繰り返し実施し(アプリケーション制御部101が指定したFATブロックの数だけS1301からS1308までの処理を繰り返し実施し)、最後にS1309の処理により、全FATブロックの残容量の総和を取るようにする。
(1.6:アプリケーション制御部101とファイルシステム制御部102間の制御シーケンス)
続いて、図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ブロックに含まれるものの総和となる。
図16は、S1510まで処理が完了した後の残容量情報301の一例を示した図である。図16に示すように、S1510まで処理が完了すると、全FATブロックの“ステータス”が「1」に設定され、“残容量”には、各FATブロックに含まれる残容量の値が格納される。
以上のように、本実施形態におけるアクセスモジュール1内の分割残容量算出処理部103は、FAT(205、206)を固定長ブロック単位で管理し、この固定長ブロック単位に分割して残容量算出処理を実施する。これにより、アプリケーション制御部101は、必要最小限の残容量が存在することを確認できた時点で記録準備を完了し、ファイルデータの記録を開始することができる。そのため、従来のようにFAT(205、206)全体に対する残容量算出処理の実施完了を待つことなく記録を開始することができ、ファイルシステムの初期化から記録開始までの時間を短縮することが可能となる。
尚、本発明を上記の実施形態に基づいて説明してきたが、本発明は、上記の実施形態に限定されないのは勿論である。本発明の趣旨を逸脱しない範囲で実施変更することができる。本実施形態で記載された数値は一例であり、他の値を使用しても良い。例えば、残容量情報301に含まれる“ステータス”に格納する値として、0、1、2を使用する場合の例について説明したが、その他の値を用いても良いし、ファイルシステム種別を示す文字列を格納するようにしても良い。
また、本実施形態で説明した残容量情報301、ファイルシステム情報302の構成は、一例であり、本発明の趣旨を逸脱しない範囲でその他の情報を追加しても良いし、本実施形態で説明された情報をその他の情報に置き換えても良い。
また、図15の例では、先頭のFATブロックから終端のFATブロックへ順に残容量算出処理を実施していく場合の例について説明したが、その他の順番で実施しても良い。例えば、図17のように、最初に終端のFATブロックの残容量算出処理を実施した後、先頭のFATブロックから(終端−1)番目のFATブロックの残容量算出処理を実施するようにしても良い。通常ファイルデータを記録する際にはFAT(205、206)の先頭から空きクラスタを検索し、見つかった空きクラスタにデータを記録していくことが多いことから、FAT(205、206)終端付近には空きクラスタが多数含まれる場合が多い。そのため、このように終端のFATブロックから先頭のFATブロックに向かって順次、残容量算出処理を実施することにより、必要最低限の残容量を高速に取得できる可能性が高くなり、本発明の効果をより高めることが可能となる。
しかしながら、毎回終端のFATブロックを優先的に残容量算出した場合、全FATブロックの残容量算出が完了する前にファイルデータが記録されると終端のFATブロックにファイルデータが記録され、終端のFATブロックの残容量が減少し、必要最低限の残容量を高速に取得できる可能性が徐々に低下することになる。この場合、アクセスモジュール1内にファイルデータ用のバッファがRAM12に十分に存在すれば、図18のような制御シーケンスを取ることにより、この問題を回避することが可能となる。
図18の制御シーケンスが図17の制御シーケンスと異なる点は、S1806の直後にアプリケーション制御部101が記録準備完了と判断した後、すぐに情報記録モジュール2にファイルデータを記録し始めるのではなく、全FATブロックに対する残容量算出処理が完了するまでアクセスモジュール1内のRAM12上にファイルデータを保持し、全FATブロックに対する残容量算出処理が完了した後、実際に情報記録モジュール2にファイルデータを記録する点である。
このようにすることにより、実際に情報記録モジュール2にファイルデータを記録する時点では、全FATブロックの残容量算出処理が完了していることから、先頭のFATブロックに含まれる空きクラスタにファイルデータを記録することが可能となる。そのため、終端のFATブロックに含まれる空きクラスタは、終端のFATブロック以外のFATブロックに含まれる空きクラスタがなくなるまで使用されることがなく、必要最低限の残容量取得を常に高速に実施することが可能となる。
なお、図18は、S1807〜S1809の処理が、FATブロック_0からFATブロック_(N−2)の順に、すなわち、FATブロック番号の昇順にFATブロックごとの残容量算出処理を行う場合について示している。しかし、これに限定されることはなく、例えば、S1807〜S1809の処理が、FATブロック_(N−2)からFATブロック_0の順に、すなわち、FATブロック番号の降順にFATブロックごとの残容量算出処理を行うものであってもよい。
また、図18の場合において、情報記録モジュール2への記録開始以降の処理は、上記に示したように、先頭のFATブロックに含まれる空きクラスタから順番に(昇順に)見つかった空きクラスタにファイルデータを記録することが好ましいが、これに限定されることはなく、終端のFATブロック以外の任意のFATブロックに含まれる空きクラスタから順番にファイルデータを記録するようにしてもよい。例えば、情報記録モジュール2への記録開始以降の処理は、2番目のFATブロックに含まれる空きクラスタから順番に(昇順に)見つかった空きクラスタにファイルデータを記録するようにしてもよい。
また、本実施形態では、残容量を算出する対象のFATブロックの番号をアプリケーション制御部101がファイルシステム制御部102に指定する場合の例について説明したが、その他の情報を用いても構わない。例えば、FAT(205、206)における残容量算出対象の部分を特定できる情報として、探索開始クラスタ番号と探索終了クラスタ番号との組で指定しても良い。この場合、指定されたクラスタ番号の範囲を含むFATブロックを、残容量算出対象とすることにより本実施形態で説明した処理を適用することが可能となる。同様に、FATブロックを範囲で指定するために、探索開始FATブロック番号と探索終了FATブロック番号との組で指定しても良い。更に、アプリケーション制御部101が必要とする残容量の大きさを指定しても良い。この場合、ファイルシステム制御部102は、任意のFATブロックに対して、アプリケーション制御部101により指定された残容量以上の残容量を取得するまで自動的に分割残容量算出処理を実施していく。
また、本実施形態では、FATファイルシステムを用いる場合の例について説明したが、UDF(Universal Disk Format)ファイルシステム等の、その他のファイルシステムに本発明を適用しても良い。例えば、UDFファイルシステムでは、FAT(205、206)に相当する領域管理情報としてAllocation Bitmapを保持している。このAllocation Bitmapに含まれる各ビットが各々1論理ブロックの使用状況を示しており、Allocation BitmapはUDFファイルシステムが管理している全論理ブロックの数のビット情報を含むビットマップ情報となっている。即ち、このAllocation BitmapもFAT(205、206)同様に総容量に比例する大きさとなるため、UDFファイルシステムにおいて、本発明を適用することで、分割して残容量を算出することができ、その結果、ファイルシステムの初期化から記録開始までにかかる時間を短縮することが可能である。
また、図13の残容量算出処理手順では、毎回FAT(205、206)をRAM12上に読み出す場合の例について説明したが、図9で説明したマウント処理のタイミング等で全てのFAT(205、206)をRAM12上に読み出している場合には、不揮発性記憶システム100において、残容量算出処理時にFAT(205、206)を読み出す必要がなく、より高速に残容量算出処理を実施することが可能となる。
また、上記では、本実施形態における残容量情報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内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る不揮発性記憶システム、アクセスモジュール、情報記録モジュールをハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
本発明に関わるアクセスモジュール1は、ファイルシステムにより管理されている情報記録モジュール2内の残容量を算出する分割残容量算出処理部103を含む。分割残容量算出処理部103は、ファイルシステムの領域管理情報を固定長ブロック単位で管理し、
この固定長ブロック単位に分割して残容量算出処理を実施する。これにより必要最小限の残容量が存在することを確認できた時点で記録準備を完了し、ファイルデータの記録を開始することができ、ファイルシステムの初期化から記録開始までの時間を短縮することが可能となる。このようなアクセスモジュール1は、音楽や静止画、動画などのデジタルコンテンツを取り扱う機器に最適であり、PCアプリケーション、オーディオレコーダ、DVDレコーダ、HDDレコーダ、ムービー、デジタルスチルカメラ、携帯電話端末等として利用することができる。
100 不揮発性記憶システム
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. ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法であって、
    前記不揮発性メモリを管理するファイルシステムのクラスタを所定数有する固定長ブロック領域のサイズの情報を有する領域管理情報を参する参照ステップと
    複数の前記固定長ブロック領域のうち、各固定長ブロック領域含まれる分割残容量をファイルアロケーションテーブルに基づいて算出する分割残容量算出ステップと、
    前記分割残容量算出ステップにおいて、算出された固定長ブロック領域の前記分割残容量を合計することにより総残容量を取得する総残容量取得ステップと、
    残容量と所定の必要残容量とを比較する比較ステップと
    前記比較ステップの結果、前記残容量が前記必要残容量以上となった場合前記不揮発性メモリへのアクセスを許可する許可ステップと、
    を備える残容量算出方法。
  2. 前記分割残容量算出ステップは、
    先頭の前記固定長ブロック領域から順に、前記固定長ブロック領域ごとに、前記分割残容量を算出する、
    請求項1記載の残容量算出方法。
  3. 前記分割残容量算出ステップは、
    終端の前記固定長ブロック領域を第1の処理対象として、前記分割残容量を算出する、
    請求項1記載の残容量算出方法。
  4. 前記分割残容量算出ステップは、
    前記アクセス装置内のメモリ上に、前記各固定長ブロック領域に対する残容量算出処理の実施の有無を示すステータスと、前記各固定長ブロック領域で管理される前記不揮発性メモリ上の領域に含まれる残容量である前記分割残容量の情報と、を含む残容量情報を格納する、
    請求項1に記載の残容量算出方法。
  5. ファイルアクセスにより前記分割残容量に増減が発生した時点で、前記残容量情報を逐次更新する残容量情報更新ステップを更に備える、
    請求項4記載の残容量算出方法。
  6. 前記ファイルアクセス可否判定ステップは、
    前記ファイルアクセス処理の開始を許可した後、生成されたファイルデータを前記アクセス装置内のメモリ上に一時保持するステップと、
    前記分割残容量が算出されていない残りの前記固定長ブロック領域に対して、前記分割残容量を算出する処理を実行するよう前記分割残容量算出ステップに要求するステップと、
    全ての前記固定長ブロック領域に対して、前記分割残容量の算出処理が完了した後に、前記アクセス装置内の前記メモリに保持した前記ファイルデータを前記不揮発性メモリに記録するステップと、
    を更に備える、
    請求項1記載の残容量算出方法。
  7. ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法であって、
    前記不揮発性メモリを管理するファイルシステムの領域管理情報であって、第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)全ての前記固定長ブロック領域に対して、前記分割残容量の算出処理が完了し、全ての前記固定長ブロック領域に対する前記算出済み総残容量が算出された後に、前記アクセス装置内の前記メモリに保持した前記ファイルデータを前記不揮発性メモリに記録する、
    残容量算出方法。
  8. ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法であって、
    前記不揮発性メモリを管理するファイルシステムの領域管理情報であって、第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)全ての前記固定長ブロック領域に対して、前記分割残容量の算出処理が完了し、全ての前記固定長ブロック領域に対する前記算出済み総残容量が算出された後に、前記アクセス装置内の前記メモリに保持した前記ファイルデータを前記不揮発性メモリに記録する、
    残容量算出方法。
  9. ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置であって、
    前記不揮発性メモリを管理するファイルシステムのクラスタを所定数有する固定長ブロック領域のサイズの情報を有する領域管理情報を参照し、複数の前記固定長ブロック領域のうち、各固定長ブロック領域含まれる分割残容量をファイルアロケーションテーブルに基づいて算出する分割残容量算出処理部と、
    前記分割残容量算出処理部に対し前記分割残容量の算出処理の実行を要求するアプリケーション制御部と、
    を備え、
    前記分割残容量算出処理部が固定長ブロック領域前記分割残容量を算出する度に、前記アプリケーション制御部が、算出された固定長ブロック領域前記分割残容量を合計することにより総残容量を取得し、残容量と所定の必要残容量とを比較し、前記残容量が前記必要残容量以上となった場合、前記不揮発性メモリへのアクセスを許可する、
    アクセス装置。
  10. 前記アプリケーション制御部は、
    前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、算出対象として1つ以上の前記固定長ブロック領域を指定し、
    前記分割残容量算出処理部は、
    前記指定された1つ以上の固定長ブロック領域に対して、前記分割残容量の算出処理を実行する、
    請求項9に記載のアクセス装置。
  11. 前記アプリケーション制御部は、
    前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、算出対象領域として、先頭の前記固定長ブロック領域から順に、1つ以上の前記固定長ブロック領域を指定する、
    請求項10に記載のアクセス装置。
  12. 前記アプリケーション制御部は、
    前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、算出対象領域として、終端の前記固定長ブロック領域を第1に指定する、
    請求項10に記載のアクセス装置。
  13. 前記分割残容量算出処理部は、
    前記アクセス装置内のメモリ上に、前記各固定長ブロック領域に対する前記分割残容量の算出処理の実施の有無を示すステータスと、前記各固定長ブロック領域で管理される前記不揮発性メモリ上の領域に含まれる残容量である前記分割残容量の情報と、を含む残容量情報を格納する、
    請求項9に記載のアクセス装置。
  14. 前記分割残容量算出処理部は、
    ファイルアクセスにより前記分割残容量に増減が発生した時点で、前記分割残容量の増減に関する情報を更新する、
    請求項13に記載のアクセス装置。
  15. 前記アプリケーション制御部は、
    前記ファイルアクセス処理の開始を許可した後、生成されたファイルデータを前記アクセス装置内のメモリ上に一時保持し、全ての前記固定長ブロック領域に対する残容量算出処理が完了した後に、前記保持したファイルデータを前記不揮発性メモリに記録する、
    請求項9に記載のアクセス装置。
  16. 前記アプリケーション制御部は、
    前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、算出対象領域の開始クラスタ番号と前記領域の大きさに関する情報を指定し、
    前記分割残容量算出処理部は、
    前記指定された算出対象領域を管理対象とする1つ以上の前記固定長ブロック領域に対して前記分割残容量の算出処理を実行する、
    請求項9に記載のアクセス装置。
  17. 前記アプリケーション制御部は、
    前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、算出対象領域の開始クラスタ番号と前記領域の大きさに関する情報として、ファイルシステムが管理する領域の先頭から順に、算出対象領域の前記開始クラスタ番号と前記領域の大きさに関する情報を指定する、
    請求項16に記載のアクセス装置。
  18. 前記アプリケーション制御部は、
    前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、ファイルシステムが管理する領域の終端領域を、第1に、前記分割残容量の算出処理の処理対象とし、算出対象領域の開始クラスタ番号と前記領域の大きさに関する情報として、前記終端領域の開始クラスタ番号と前記終端領域の大きさに関する情報を第1に指定する、
    請求項16に記載のアクセス装置。
  19. 前記アプリケーション制御部は、
    前記分割残容量算出処理部に対して、前記分割残容量の算出処理の実行を要求する際に、前記所定の必要残容量を指定し、
    前記分割残容量算出処理部は、
    前記指定された所定の必要残容量以上の残容量が算出されるまで、前記固定長ブロック領域単位で前記残容量の算出処理を繰り返す、
    請求項9に記載のアクセス装置。
  20. 前記分割残容量算出処理部は、
    前記指定された所定の必要残容量以上の残容量が算出されるまで、前記固定長ブロック領域単位で前記分割残容量の算出処理を繰り返す際に、前記固定長ブロック領域の先頭から順に前記分割残容量の算出処理を実行する、
    請求項19に記載のアクセス装置。
  21. 前記分割残容量算出処理部は、
    前記指定された所定の必要残容量以上の残容量が算出されるまで、前記固定長ブロック領域単位で前記分割残容量の算出処理を繰り返す際に、前記固定長ブロック領域の終端ブロック領域に対する前記分割残容量の算出処理を、第1に実行する、
    請求項19に記載のアクセス装置。
  22. ファイルデータを格納する不揮発性メモリを備える情報記録装置にアクセスするアクセス装置における残容量算出方法をコンピュータに実行させるプログラムであって、
    前記不揮発性メモリを管理するファイルシステムのクラスタを所定数有する固定長ブロック領域のサイズの情報を有する領域管理情報を参照する参照ステップと、
    複数の前記固定長ブロック領域のうち、各固定長ブロック領域に含まれる分割残容量をファイルアロケーションテーブルに基づいて算出する分割残容量算出ステップと、
    前記分割残容量算出ステップにおいて、算出された固定長ブロック領域の前記分割残容量を合計することにより総残容量を取得する総残容量取得ステップと、
    前記総残容量と所定の必要残容量とを比較する比較ステップと、
    前記比較ステップの結果、前記総残容量が前記必要残容量以上となった場合、前記不揮発性メモリへのアクセスを許可する許可ステップと、
    を備える残容量算出方法をコンピュータに実行させるプログラム。
JP2009554651A 2008-06-09 2009-06-05 アクセス装置、及び残容量算出方法 Active JP5362594B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 富士通株式会社 メモリ領域割り当て制御装置、メモリ領域割り当て制御プログラム、及びメモリ領域割り当て制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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