JP7362349B2 - 制御装置 - Google Patents

制御装置 Download PDF

Info

Publication number
JP7362349B2
JP7362349B2 JP2019152798A JP2019152798A JP7362349B2 JP 7362349 B2 JP7362349 B2 JP 7362349B2 JP 2019152798 A JP2019152798 A JP 2019152798A JP 2019152798 A JP2019152798 A JP 2019152798A JP 7362349 B2 JP7362349 B2 JP 7362349B2
Authority
JP
Japan
Prior art keywords
cluster
recording
directory
clusters
data
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
JP2019152798A
Other languages
English (en)
Other versions
JP2021033615A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2019152798A priority Critical patent/JP7362349B2/ja
Priority to US16/986,690 priority patent/US11604593B2/en
Publication of JP2021033615A publication Critical patent/JP2021033615A/ja
Application granted granted Critical
Publication of JP7362349B2 publication Critical patent/JP7362349B2/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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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

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)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は記録媒体へのデータの記録を制御する制御装置に関する。
デジタルカメラなどの記録装置(記録制御装置)の記録媒体には、SDカードやCF(コンパクトフラッシュ(登録商標))、CFexpressなどの着脱可能な小型記録媒体が用いられることが多い。そのような小型記録媒体のファイルシステムのフォーマットにはFAT(File Allocation Table)ファイルシステムが多く用いられている。
このような小型記録媒体では、セクタと呼ばれる最小アクセス単位で管理されるが、FATファイルシステムでは、記録する情報を、複数のセクタから構成されるクラスタと呼ばれる単位を利用して管理する。記録する情報としては、静止画や動画などのデータ(ファイル)本体と、そのデータ本体を管理するためのメタデータであるディレクトリエントリを示すディレクトリがある。
SDカード等で一般的に用いられているNAND型フラッシュメモリにおいて、一回の書き込み要求で書き込み可能な最小単位はページと呼ばれる。書き込み済のページはページ単位では上書きすることが出来ない。ページの内容を変更するには、複数の連続したページであるブロック単位で書き込み済の内容を一時的に揮発性メモリに退避し、ブロック内の全データを消去し、揮発性メモリ上で編集した内容を書き込むという手順が必要になる。
このような特性を持っているため、ブロックに満たないページの書き換えが頻発すると書き込み性能が劣化する。特に動画のようなリアルタイムデータの記録では一定時間内にデータの書き込みを完了する必要があるため、ページの書き換えがおきないようにデータを書き込む必要がある。そこで、リアルタイムデータの記録時はブロック全体を書き換えるように制御することで、記録媒体への記録性能を向上させる。ブロック全体の書き換えを実現するために、FATファイルシステムの管理単位であるクラスタよりも記録媒体のブロックサイズが大きい場合は、ブロックサイズに対応するサイズのAllocation Unit(AU)単位で、データを記録する。Allocation Unit(AU)のサイズは、記録媒体によってきめられており、ブロックサイズと同じ、又は、ブロックサイズの整数倍である。リアルタイムデータの書き込みにおいて、クラスタではなく複数の連続するクラスタから構成されるAU単位でデータを記録することにより、ブロック全体を書き換えるように制御され、記録媒体の記録性能を向上することができる。
一方で、データの記録にはそのデータのメタデータであるディレクトリエントリを記録するディレクトリが必要となる。ディレクトリは1クラスタ毎に構成し、同じ領域を複数回更新するという性質を持っている。
特許文献1では、複数のディレクトリ(ディレクトリエントリ)が、記録媒体の異なるAUに配置されている場合は、空のAUの先頭から順に再配置することにより、書き込み性能を向上させることが記載されている。
特開2011-164733号公報
しかしながら、上記従来技術の構成では、データ書き込み速度を保証するモードでのデータ書き込みにおいてデータ記録可能な空のAUに、ディレクトリを配置している。ここで、データ書き込み速度を保証するモードとしては、SDカードではスピードクラス、CFexpressではVPG(Video Performance Guarantee)等があげられる。
前記の通り、リアルタイムデータの書き込みでは、AU単位(ブロック単位)で書き換えるように制御するため、1つでもディレクトリが記録されているAU(ブロック)は、データを記録することが出来ないAU(ブロック)となる。近年では記録媒体の大容量化に伴い、AU(ブロック)サイズも大きくなる傾向にあるため、AU(ブロック)にディレクトリが記録されることによる容量の損失が大きくなってしまう。
本発明は上記の問題に鑑み、記録媒体におけるデータ記録に使用されないと思われる領域をディレクトリ用に割り当てることにより、記録の容量効率を落とさないようにディレクトリを記録可能な制御装置を提供することを目的とする。
上述の課題を解決するため、本発明の制御装置は、記録媒体にデータを記録するための制御装置であって、記録媒体の記録領域内の所定の領域をクラスタで管理するクラスタ管理手段と、所定の領域内のクラスタを、クラスタよりも大きいサイズの所定の記録単位で管理する記録単位管理手段と、所定の領域内のクラスタを、ディレクトリを記録するためのディレクトリ用クラスタに設定するディレクトリ用クラスタ割り当て手段と、を有し、ディレクトリ用クラスタ割り当て手段は、所定の記録単位に満たずに記録単位管理手段により管理されない所定の領域の末尾の領域のクラスタを、ディレクトリ用クラスタに割り当てることを特徴とする。
本発明によれば、記録の容量効率を落とさないようにディレクトリを記録可能となる。
デジタルカメラ100の内部構成の概略を示すブロック図である。 CPU105の機能ブロック図である。 記録媒体の記録領域内の構成を示す図である。 MBR形式のフォーマットを示す図である。 フォーマット処理のフローチャートである。 File Allocation Tableを示す図である。 AU割当表を示す図である。 データ用クラスタ開始位置特定処理のフローチャートである。 AU割当AU割当表作成処理のフローチャートである。 データ用クラスタ割り当て処理のフローチャートである。 ディレクトリ用クラスタ割り当て処理のフローチャートである。 GPT形式のフォーマットを示す図である。 GPT形式のフォーマット処理のフローチャートである。
[実施例1]
発明の実施形態に関する記録装置を含むデジタルカメラ100について図1から図11を用いて説明する。デジタルカメラ100は記録媒体109に対して撮影した動画データを記録することが出来る。
図1は本実施形態のデジタルカメラ100の内部構成を示すブロック図である。デジタルカメラ100は撮像部101、操作部102、表示部103、CPU105、ROM106、RAM107、記録媒体制御部108、記録媒体109から構成されている。これらは図1に示すように内部バス104によって相互に接続されている。
撮像部101は、撮像センサなどで構成され、画像データを撮像する。操作部102は、ユーザからの各種操作を受け付ける操作ボタン、タッチパネル等から構成され、操作部102で受け付けた操作をCPU105に通知し、CPU105は、操作部102が受け付けた操作に応じた処理を実行する。表示部103は、液晶デイスプレイ等で構成され、撮像部101で撮像された画像データを表示する。ROM106はデジタルカメラ100を制御するプログラムやデータを予め格納した不揮発メモリである。RAM107はROM106などから供給されるプログラムや、画像データや設定データ等の各種データを一時的に記憶する領域である。CPU105はROM106またはRAM107に格納されているプログラムを読み出すことによって動作し、各種演算処理を実行したり、デジタルカメラ100の各部を制御したりする。記録媒体109は、SDカードやCF(コンパクトフラッシュ(登録商標))、CFexpress規格に準拠したメモリカードなどの着脱可能な小型のメモリカード等の記録媒体である。さらに、本実施形態の記録媒体109は、FATファイルシステムにより記録されるデータがクラスタ単位で管理される記録媒体である。記録媒体制御部108は記録媒体109と物理的かつ電気的に接続され、撮像部101で撮像して各種処理が施されたデジタル画像データや、管理データなどのデータの記録媒体109への書き込みや、記録媒体109からのデータの読み出しの制御をする。
デジタルカメラ100では、操作部102により、画像の記録指示が入力されると、撮像部101により画像データを撮像し、撮像した画像データに対して不図示の画像処理部により各種画像処理や圧縮処理を施された画像データが、RAM107に一時保持される。そして、RAMに保持された画像データを、記録媒体制御部108を介して記録媒体109に画像ファイルとして記録する。デジタルカメラ100では、動画データの記録が可能であり、操作部102により記録開始指示が入力されてから記録終了指示が入力されるまでに撮像した画像データを記録媒体109に記録することができる。
なお、記録媒体109において、記録媒体制御部108からデータの書き込みの要求があった場合は、前述したように、ブロック単位で、書き込み済の内容を記録媒体109内の揮発性メモリに一時退避してからブロック内の全データを消去する。そして、記録媒体109内の揮発性メモリ上で書き込む要求があったデータを編集し、編集後のブロック全体データを、ブロックに書き込むことにより、記録媒体制御部108から要求されたデータの書き込みが行われる。そのため、ブロックに満たないサイズのデータの書き換えが頻発すると書き込み性能が劣化する。特に動画のようなリアルタイムデータの記録では一定時間内にデータの書き込みを完了する必要がある。
そこで、記録媒体109は、ブロックの一部のみを書き換えるのではなく、ブロック全体を書き換えるように制御することで、記録媒体への記録性能を向上させ、書き込み速度を保証する書き込み速度保証モードでの書き込みが可能である。前述したように、書き込み速度保証モードとしては、SDカードでのスピードクラスや、CFexpressカードでのVPG等がある。書き込み速度保証モードでは、クラスタよりもサイズが大きいAllocation Unit(AU)を記録単位として、データの書き込みが行われる。なお、AUのサイズは、記録媒体によってきめられており、ブロックサイズと同じである。あるいは、AUサイズをブロックサイズの整数倍としてもよい。書き込み速度保証モードでは、AU単位でデータを記録することにより、ブロック全体を書き換えるように制御され、記録媒体の記録性能を向上することができる。ただし、AU単位でデータの記録を行うため、データが全く記録されていない空のAUにしかデータを記録することができないという制約がある。つまり、データが記録されていないクラスタを含んでいてもデータが記録されているクラスタを含んでいるAUには、書き込み速度保証モードでのデータの記録はできない。
図2は、のデジタルカメラ100のCPU105がROM106から読み出したプログラムに基づいて実行する処理についての機能ブロック図である。ROM106のプログラムでCPU105が実行する処理には記録媒体109のフォーマットを実施するフォーマット処理部201とフォーマット後のパーティション内のデータを管理するためのファイル管理処理部202が格納されている。ファイル管理処理部202はデータ用クラスタ開始位置特定処理部203、AU割当表作成処理部204、データ用クラスタ割り当て部処理205とディレクトリ用クラスタ割り当て処理部206を備える。なお、これらの処理は、CPU105で実行せずに、記録媒体制御部108が実行するようにしてもよい。あるいは、デジタルカメラ100のCPU105と記録媒体制御部108とで処理を分担してもよい。また、ファイル管理処理部202は、FATを記録・読み出すことにより、記録媒体109のユーザ領域に記録されるデータをクラスタ毎に管理するクラスタ管理部(不図示)も有している。
なお、後述する図5、8,9,10,11の処理は、CPU105(または記録媒体制御部108)がROM106に記憶されたプログラムを読み出して、図2の各処理部によって実行される処理である。
フォーマット処理部201は、図3(a)に示す様に記録媒体109上の記録領域300を分割して記録媒体109をフォーマットする処理を実行する。記録媒体109ではセクタと呼ばれる最小アクセス単位ごとに一意のアドレス(セクタアドレス)が0番から付与されている。MBR(Master Boot Record)301は記録媒体109の0番セクタに記録される記録媒体109全体に関する情報を記録する領域である。BPB(Bios Parameter Block)302はパーティション304の先頭に記録されるパーティション全体304の情報を記録する領域である。FAT303は、FAT(File Allocation Table)を記録する領域であり、このFATにより複数の連続セクタから構成されるクラスタ306を管理する。パーティション304には、システム領域とユーザ領域305とが含まれる。システム領域は、BPB302、FAT303を含み、パーティション内の記録領域を管理するための管理情報が記録される領域である。そして、システム領域の後に設けられるユーザ領域(クラスタヒープ)305は、データを記録するための領域であり、FAT303でクラスタ毎に管理される。FAT303は、ユーザ領域内のすべてのクラスタを管理するため、ユーザ領域のサイズに応じてFAT303のサイズが決定される。ユーザ領域305の先頭には、Allocation Bitmap306、Upcase Table307が記録され、その後、ルートディレクトリ308が順に記録される。記録媒体109の種類や規格によっては、Allocation Bitmap306、Upcase Table307は記録せずに、ユーザ領域305の先頭にルートディレクトリ308が記録される場合もある。ルートディレクトリ308はパーティション304内のディレクトリ階層の最上位のディレクトリが記録される領域である。各クラスタにはクラスタ単位で一意に決まるアドレスが付与される。各クラスタに割り振られるアドレスをクラスタ番号と呼ぶ。
図4は、MBR形式のフォーマットを示す図である。MBR301は記録媒体109内のパーティション304を管理するための仕組みである。MBR301にはブートストラップローダ401、第一パーティション情報402、第二パーティション情報403、第三パーティション情報404、第四パーティション情報405、ブートシグネチャ406が記録される。パーティション情報にはパーティションが開始するセクタアドレスとそのセクタ数などを記録する。小型可搬記録媒体で利用するフォーマットでは、パーティションは一つしか利用しないことが一般的であるため、第一パーティション情報402のみに情報が記録される。
記録媒体109の領域を図3で示したフォーマットにするために、フォーマット処理部201が実行するフォーマット処理について、図5のフローチャートを用いて説明する。このフォーマット処理は、CPU105のフォーマット処理部201によって実行される。記録媒体109でのデータの記録は、記録媒体制御部108を介して実行される。このフォーマット処理は、操作部102を介してユーザによりフォーマット処理の実行指示があった場合に実行する。
ステップS501では、フォーマット処理部201は、記録媒体制御部108を介して記録媒体109から総セクタ数を取得する。ステップS502では、フォーマット処理部201は、記録媒体制御部108を介して記録媒体109内のすべてのセクタをイレースする。ステップS503では、フォーマット処理部201は、第一パーティションの開始セクタアドレスを算出する。第一パーティションのセクタアドレスは1番セクタ以降であればどこでもよい。ただし、多くのセクタをパーティションに割り当てるため、MBR201(0番セクタ)からパーティションでクラスタとして利用するセクタ数(SPC:Sectors Per Cluster)離れたセクタアドレスとする。SPCは記録媒体109の容量や特性によって定める。例えば128GBまでの容量では256SPC、512GBまでの容量では512SPC、2TBまでの容量では1024SPCとする。ステップS504では、フォーマット処理部201は、第一パーティションの終了セクタアドレスを算出する。パーティションの終了セクタアドレスは、記録媒体109の最終セクタアドレスとする。ステップS505では、フォーマット処理部201は、MBR201を0番セクタに記録する。ここでは、ステップS503とステップS504で算出したパーティションの開始セクタアドレスと終了セクタアドレス、その情報から算出したセクタ数を、MBR201内に第一パーティション情報402として記録する。ステップS506では、フォーマット処理部201は、BPB202を記録する。BPBはステップS503で算出した第一パーティションの開始セクタアドレスから記録する。ステップS507では、フォーマット処理部201は、第一パーティション304に、FAT303の初期状態を記録する。FAT303の記録開始位置はBPB202以降の任意のセクタアドレスでよい。多くのクラスタを利用できるようにするために、BPB202から1SPC分離れたセクタアドレスをFAT303の記録開始位置とする。FAT303の初期状態に関しての詳細は後述する。ステップS508では、フォーマット処理部201は、システム用クラスタを記録する。システム用クラスタはFATの種別によって異なる。FAT32ファイルシステムではルートディレクトリ308が該当する。exFATファイルシステムではアロケーションビットマップ306、アップケーステーブル307、ルートディレクトリ308が該当する。システム用クラスタの開始セクタアドレスは、パーティション内の総クラスタ数を記録可能な十分な大きさのFATのセクタの次のセクタ以降の任意の場所でよい。ただし、なるべく多くのクラスタを割り当てるために、FAT303の開始セクタアドレスから64SPC分離れたセクタアドレスとする。システム用クラスタの開始セクタアドレスから、パーティション304の終了セクタアドレスまでが、ユーザ領域(クラスタヒープ)305となり、この領域が、FAT303によりクラスタ単位で管理される。
以上で、フォーマット処理部201によるフォーマット処理を終了する。
図6を用いてFAT303に関して説明を補足する。FATファイルシステムではFAT(File Allocation Table)303を利用してクラスタを管理する。ユーザ領域305内の各クラスタには2番から順番にクラスタ番号が付与されている。FAT303はクラスタ番号に一意に対応するFATエントリが記録されている。FATエントリは対応するクラスタが使用中もしくは未使用であることを示している。未使用のクラスタのFATエントリ601には0x0が記録されている。このクラスタはデータを新たに割り当てることが出来るクラスタであることを示す。使用中のクラスタのうちデータが途中であるクラスタの場合にはFATエントリ602には次のデータが記録されるクラスタのクラスタ番号が記録される。使用中のクラスタのうちデータの終端を示す場合はFATエントリ603には終端を表す値が記録される。図6では、説明のため、終端を表す値をENDとしたが、終端を表す値はFAT32ファイルシステムやexFATファイルシステムの場合は0xFFFFFFFFが記録される。フォーマット処理のステップS607ではFATの初期状態が記録される。FATの初期状態は、FAT予約エントリ604に0xFFFFFFF8が記録され、ステップS608で記録されるシステム用クラスタ以外のすべてのクラスタに対応するFATエントリに0x0が記録された状態である。ステップS608で記録されるシステム用クラスタに対応するFATエントリ605には終端を示す値が記録される。
ファイル管理処理部202は、動画などデータを書き込み速度保証モードで記録する際に、データを記録するデータ用クラスタを割り当てる(決定する)ために、AU割当表作成処理部204、及び、データ用クラスタ割り当て処理部205を備える。AU割当表作成処理部204は、複数(所定数)の連続したクラスタでAUを構成するように、各クラスタをAUに割り当てる。1つのAUを構成するクラスタ数は、AUサイズとクラスタサイズによって決められる。AU割当表作成処理部204は、複数(所定数)の連続したクラスタをAUに割り当てるために、図7のようなAU割当表700を作成し、データ用クラスタ割り当て処理部205は、AU割当表700利用して、データ用クラスタを決定する。AU割当表700は、FAT303の情報をAUごとにまとめた表で、AU割当表作成処理部204が、RAM107上に作成する。AU割当表700はAU毎の空きクラスタ数を記録する。AU割当表の値が0の場合、そのAUには空きクラスタは一つもないことを示す。一方で、AU割当表の値が8の場合はそのAUには8つの空クラスタがあることを示しており、8つのクラスタで1つのAUを構成する場合には、すべて空きクラスタであることを示す。動画などのリアルタイムデータを書き込み速度保証モードで記録する場合は、前述のようにAU全体が空きであるクラスタにデータが記録されるように、データ用クラスタ割り当て処理部205は、データを記録するデータ用クラスタを決定する。
AU割当表700を作成するにあたり、AU割当表で管理するクラスタの開始クラスタ番号、すなわちデータ用クラスタとして使用可能なクラスタの開始位置を特定する必要がある。そこで、ファイル管理処理部202のデータ用クラスタ開始位置特定処理部203は、データ用クラスタとして使用可能なクラスタの開始位置を特定するためのデータ用クラスタ開始位置特定処理を実行する。その後、AU割当表作成処理部204が、AU割当表作成処理を実行する。データ用クラスタ開始位置特定処理とAU割当表作成処理は、デジタルカメラ100の電源がONとなったとき、又は、記録媒体109がデジタルカメラ100装着されたときに実行する、記録媒体109を使用するための初期処理において実行される。
まず、データ用クラスタ開始位置特定処理部203によるデータ用クラスタ開始位置特定処理について図8のフローチャートを用いて説明する。
S801では、データ用クラスタ開始位置特定処理部203は、記録媒体がデータ用クラスタの開始位置を保持しているかを確認する。記録媒体109の種別によってはデータ用クラスタの開始位置のセクタアドレスを保持している。記録媒体109がデータ用開始クラスタの開始位置を保持している場合(S801でYES)、S802に進み、S802では、データ用クラスタ開始位置特定処理部203は、記録媒体109からデータ用クラスタ開始セクタアドレスを取得する。S803では、データ用クラスタ開始位置特定処理部203は、S702で取得したデータ用開始クラスタ開始セクタアドレスをクラスタ番号に変換し、S806へ処理を進める。一方で、記録媒体109がデータ用クラスタ開始位置を保持していない場合(S801でNO)、S804に進み、S804では、データ用クラスタ開始位置特定処理部203は、ルートディレクトリ305などのシステム用クラスタを含むAUを特定する。ここでは、データ用クラスタ開始位置特定処理部203は、記録媒体109の0番セクタから順にAUサイズでAUを区切っていき、システム用クラスタが含まれる割り当て単位を特定する。ここで、AUはブロックに対応しており、ブロックは0番セクタからブロックサイズで区切られているため、0番セクタからAUサイズごとにAUを区切っていく。S805では、データ用クラスタ開始位置特定処理部203は、S804で特定したシステム用クラスタが含まれるAUの次のAUの先頭クラスタ番号を算出する。先頭クラスタ番号を算出したらS806へ処理を進める。S806では、データ用クラスタ開始位置特定処理部203は、S803、又は、S805で特定したクラスタ番号を、データ用クラスタの開始クラスタ番号とする。
データ用クラスタ開始位置特定処理で特定したデータ用クラスタの開始位置は、続いて実行されるAU割当表作成処理や、AUに対応するクラスタ番号を判定する処理において利用する。そのため、データ用クラスタの開始位置(開始クラスタ番号)は、RAM107に保持しておくとよい。
AU割当表作成処理部204が実行するAU割当表作成処理について図9のフローチャートを用いて説明する。AU割当表作成処理では、記録媒体109のFAT303に基づいて、AU毎のクラスタの記録状態を示すAU割当表がRAM107上に生成される。
S901では、AU割当表作成処理部204は、データ用クラスタ開始位置特定処理で特定した開始クラスタ番号を、FAT走査開始クラスタ番号に設定する。S902では、AU割当表作成処理部204は、1AUあたりのクラスタの数であるAUクラスタ数(CPA:Clusters Per Au)を算出する。ここでは、AUサイズとクラスタサイズとからAUクラスタ数(CPA)を算出する。AUサイズについては、記録媒体制御部108を介して記録媒体109から取得する。クラスタサイズについては、記録媒体109の容量や特性によって定められるSPCに対応するサイズとなる。S903では、AU割当表作成処理部204は、AU割当表作成の処理対象とするAU番号を0に設定する。S904では、AU割当表作成処理部204は、FAT走査開始クラスタからCPA分のクラスタがあるかを確認する。S904で、CPA分のクラスタがない場合、すなわち、FAT走査開始クラスタからパーティションの最後までのクラスタ数がCPA分のクラスタ数に満たない場合(S904でNO)、AU割当表作成処理部204を終了する。このように、CPA分のクラスタ数がない場合は、AUを構成できないため、パーティションの末尾は、書き込み速度保証モードでの書き込みはできない領域となる。FAT走査開始クラスタからCPA分のクラスタがある場合(S904でYES)、S905に処理を進める。S905では、AU割当表作成処理部204は、FAT走査開始クラスタからCPAクラスタ分までのFATを走査し、空きクラスタ数を算出する。S906では、AU割当表作成処理部204は、S905で算出した空きクラスタ数をAU割当表中のAU割当表番号に対応するRAM107上の領域に記録する。FAT走査開始クラスタからCPAクラスタ分までが、現在設定されているAU番号で管理されるAUとなるため、このAU内の空クラスタを走査しその結果をRAMのAU割当表に記録する。S907では、AU割当表作成処理部204は、FAT走査開始クラスタ番号をCPA分加算し、AU割当表に空クラスタを記録した次のクラスタのクラスタ番号がFAT走査開始クラスタ番号となるようにする。S908では、AU割当表作成処理部204は、AU割当表番号を1加算し、S904以降の処理を繰り返す。この処理を繰り返すことで、データ用クラスタ開始位置特定処理で特定した開始クラスタ番号のクラスタからパーティション終了までのクラスタを、CPA分のクラスタ数のAUに区切ってAU番号を付与する。そして、各AU番号のAUについての空クラスタ数が記載されたAU割当表700を生成する。AU割当表にはAU番号が0番から割り振られる。AU割当表700のAU番号は、そのAUの開始クラスタ番号を算出するためにも利用する。AU番号とCPAを乗算し、データ用クラスタの開始クラスタ番号を加算した値が、そのAU番号の開始クラスタ番号となる。このように作成したAU割当表700は、書き込み速度保証モードでのデータ記録の際に、データ用クラスタ割り当て処理部205でクラスタを割り当てるための情報として利用される。
動画などのリアルタイムデータを記録速度が保証される書き込み速度保証モードで記録媒体109上へ記録する際には、CPU103はデータ用クラスタ割り当て処理部205によりデータ用クラスタ割り当て処理を実行し、データを記録するクラスタを確保する。データ用クラスタはAU割当表700を利用して割り当てる。データ用クラスタ割り当て処理部205によるデータ用クラスタ割り当て処理について図10のフローチャートを用いて説明する。この処理においては、データ用のクラスタは書き込むデータのサイズに応じて、複数のクラスタを割り当てる。動画などのリアルタイムデータは、通常、記録対象のデータをRAM107に保持し、所定サイズごとに、データを記録媒体109に書き込んでいく。そして、記録対象のデータの記録がすべて完了し、1つのデータファイル(動画ファイル)として記録するまで、所定サイズ分のデータの書き込みを繰り返す。そのため、データ用クラスタ割り当て処理においても、データの記録開始から、そのデータを1つのデータファイルとして記録が完了するまで、データ用クラスタ割り当て処理を行う。
ステップS1001では、データ用クラスタ割り当て処理部205は、記録対象の領域として新たなAUが必要かを確認する。ひとつの同じファイルデータを記録中は、AUの途中からでもクラスタを割り当てることが可能であるため、その場合は、S1001でNOとなる。一方で、新しいファイルとしてデータ記録する場合や、AU内のクラスタをすべてデータ用クラスタとして割り当てた後は、新しいAU領域が必要となるため、YESに処理を進める。新しいAUが必要な場合(S1001でYES)、ステップS1002へ処理を進める。新たなAU領域が不要な場合(S1001でNO)、ステップS1006へ処理を進める。ステップS1002では、データ用クラスタ割り当て処理部205は、処理の対象とするAU番号を0に設定する。これはAU割当表の先頭から末尾方向に向かって、空き領域を検索するためである。ステップS1003では、データ用クラスタ割り当て処理部205は、AU割当表700中の処理対象のAU番号に対応する領域に記録されている空きクラスタ数を確認し、AUが空き領域(すべてのクラスタが空き領域)かどうかを確認する。処理対象のAU番号に対応する領域に記録されている空きクラスタ数が、CPAの場合は、処理対象のAU番号のAUが空き領域であると判定する。処理対象のAU番号のAUが空き領域である場合(S1003でYES)、ステップS1006へ処理を進める。空き領域ではなく、少なくとも1つのクラスタが使用されている場合(S1003でNO)、ステップS1004へ処理を進める。ステップS1004では、データ用クラスタ割り当て処理部205は、AU番号を1加算し、次のAU番号を処理対象とする。ステップS1005では、データ用クラスタ割り当て処理部205は、処理対象となったAU番号が、AU割当表で管理されているAU番号を超えたかを確認する。処理対象のAU番号が、AU割当表で管理しているAU番号を超えた場合(S1005でYES)、このAU番号のAUは存在しないこととなる。そのため、書き込み速度保証モードで記録可能なAUが存在せず、データ用クラスタとして割り当てることができないため、データ用クラスタ割り当て処理を終了する。このケースはデータ書き込みのために必要なクラスタが割り当てられなかったため、データの記録ができないことになる。処理対象のAU番号が、AU割当表で管理しているAU番号を超得ておらず、AU割当表で管理されている(記録されている)AU番号の場合(S1005でNO)、ステップS1003へ処理を進める。ステップS1006では、データ用クラスタ割り当て処理部205は、現在の処理対象のAU番号について、前出した算出方法で、AU番号をクラスタ番号に変換する。ステップS1007では、データ用クラスタ割り当て処理部205は、FAT303を参照して、処理対象のAU番号のAU内のクラスタをデータ用クラスタとして割り当て、データ用クラスタとして割り当てたクラスタのFAT303を更新する。ここで、処理対象のAU番号のAU内のクラスタをデータ用クラスタに割り当てる際には、クラスタ順にデータが記録されるように、AU内の空クラスタのうち、クラスタ番号が小さいクラスタから順にデータ用クラスタとして割り当てる。また、データ用クラスタとして割り当てるクラスタ数は、AU割当表内のAU番号に対応する領域の空きクラスタ数と、記録するデータサイズに対応するクラスタ数を比較し、小さいクラスタ数を割り当てるクラスタ数とする。ステップS1008では、データ用クラスタ割り当て処理部205は、AU割当表700中のAU番号に対応する領域に記録されている空きクラスタ数を、ステップS1007でデータ用クラスタとして割り当てたクラスタ数分減算した値で再度記録してAU割当表700を更新する。ステップS1009では、データ用クラスタ割り当て処理部205は、データの書き込みに必要なクラスタを割り当てたか、つまり、今回の書き込み速度保証モードでの記録において記録するすべてのデータについて、データ用クラスタを割り当てたかを確認する。データの書き込みに必要なクラスタ数を割り当てた場合(S1009でYES)は、データ用クラスタ割り当て処理部205によるデータ用クラスタ割り当て処理を終了する。データの書き込みに必要なクラスタ数がまだ残っている場合(S1009でNO)は、また、データ用クラスタ割り当て処理が必要であるため、次の記録対象のデータのデータ用クラスタを割り当てるためステップS1001に戻る。
以上のデータ用クラスタ割り当て処理によって、記録するデータにデータ用クラスタを割り当てることで、AU全体が空きクラスタである領域をデータ用に割り当てることが出来る。記録媒体109上に空きクラスタが存在する場合でも、AUとして空き領域が存在しない場合は、記録可能なクラスタは存在しないと判断される。このように、記録媒体109のユーザ領域のうち、AUとしてAU割当表で管理されるクラスタが、データ用クラスタとして割り当てることが可能となる。つまり、図3(b)の、データ用クラスタと記される範囲が、データ用クラスタとして割り当て可能な範囲となる。つまり、記録媒体109の記録領域全体をセクタ0番地からAUサイズごとに区切る。そして、システム用クラスタ(ルートディレクトリ)が含まれる次のAUの開始位置であるデータ用クラスタ開始位置から、パーティション304内の最後のAU(AU_N)の最後のクラスタまでの領域が、データ用クラスタとして割り当て可能な領域となる。
データ用クラスタ割り当て処理によりデータ用クラスタとして割り当て、その後、CPU105は、記録媒体制御部108を介して、データ用クラスタとして割り当てられたクラスタに、記録対象のデータを記録する処理を実行する。
次に、ディレクトリを記録媒体109上へ新たに作成する際(ファイルやフォルダを作成する際)に、CPU103のディレクトリ用クラスタ割り当て処理部206は、ディレクトリを記録するためのディレクトリ用クラスタを確保する。CPU103のディレクトリ用クラスタ割り当て処理部206が実行するディレクトリ用クラスタ割り当て処理について、図11のフローチャートを用いて説明する。ディレクトリ用クラスタ割り当て処理では、ディレクトリ毎に1つのクラスタをディレクトリ用クラスタとして割り当てる。ディレクトリ用クラスタ割り当て処理部206は、基本的には、AU割当表の管理外のクラスタをディレクトリ用クラスタとして割り当てる。基本的には、AU割当表の管理外のクラスタのみで十分である。しかし、万が一、AU割当表外のクラスタをすべてディレクトリ用途で利用しきってしまった場合のため、本実施形態では、AU割当表内の空きクラスタをディレクトリ用クラスタとして割り当て可能とする。
ステップS1101では、ディレクトリ用クラスタ割り当て処理部206は、先頭クラスタ番号をFAT走査開始クラスタ番号にセットする。前述したように、クラスタ番号は2番から順に付与されるため、FAT走査開始クラスタ番号を2番に設定する。ステップS1102では、ディレクトリ用クラスタ割り当て処理部206は、AU割当表開始クラスタ番号の一つ前のクラスタ番号をFAT走査終了クラスタ番号にセットする。AU割当表開始クラスタ番号は、データ用クラスタ開始位置特定処理で特定した開始クラスタ番号であるので、開始クラスタ番号の1つ前のクラスタ番号をFAT走査終了クラスタ番号に設定する。ステップS1103では、ディレクトリ用クラスタ割り当て処理部206は、ステップS1101とS1102で設定したFAT走査開始クラスタ番号からFAT走査終了クラスタ番号までの間のクラスタをFAT303上で走査し、空きクラスタを検索する。ステップS1104では、ディレクトリ用クラスタ割り当て処理部206は、ステップS1103の処理で、空きクラスタが見つかったかを確認する。空きクラスタがあった場合(S1104でYES)、ステップS1121に進む。
ステップS1121では、ディレクトリ用クラスタ割り当て処理部206は、ステップS1103で検索した空クラスタを、ディレクトリ用クラスタとして割り当てる。そして、ディレクトリ用クラスタ割り当て処理を終了する。ステップS1121では、図3(b)の、AU割当表で管理されるデータ用クラスタ領域外の、ディレクトリ用クラスタ_1の領域内に、ディレクトリ用クラスタが割り当てられる。ディレクトリ用クラスタ_1は、システム用クラスタの次のクラスタから、次のAUの境界となるクラスタまでの領域である。この領域はデータ用クラスタとして使用できないため、ディレクトリ用クラスタとして使用することで、空クラスタを有効活用することができる。
FAT走査開始クラスタ番号からFAT走査終了クラスタ番号までの間のクラスタに空きクラスタがない場合(S1104でNO)、ステップS1105へ処理を進める。
ステップS1105では、ディレクトリ用クラスタ割り当て処理部206は、AU割当表の最後のクラスタ番号(最後のAU番号内の最後のクラスタ番号)の次のクラスタ番号をFAT走査開始クラスタ番号に設定する。ステップS1106は、ユーザ領域305の最終クラスタ番号をFAT走査終了クラスタ番号に設定する。ステップS1107では、ディレクトリ用クラスタ割り当て処理部206は、ステップS1105、S1106で設定したFAT走査開始クラスタ番号からFAT走査終了クラスタ番号までの間のクラスタについて、FAT303を参照して空きクラスタを検索する。ステップS1108では、ディレクトリ用クラスタ割り当て処理部206は、ステップS1007で空きクラスタが見つかったかを確認する。空きクラスタがあった場合(S1108でYES)、ステップS1122に処理を進める。
ステップS1122では、ディレクトリ用クラスタ割り当て処理部206は、ステップS1107で検索した空クラスタを、ディレクトリ用クラスタとして割り当てる。そして、ディレクトリ用クラスタ割り当て処理部206を終了する。ステップS1122では、図3(b)の、AU割当表で管理されるデータ用クラスタ領域外の、ディレクトリ用クラスタ_2の領域内に、ディレクトリ用クラスタが割り当てられる。ディレクトリ用クラスタ_2の領域は、記録媒体109内の記録領域をAUサイズ(CPA)で分割した場合に、AUサイズに満たない(CPA分のクラスタ数に満たないクラスタ数)、末尾の領域である。複数のパーティションに区切って使用する場合は、AU割当表の最後のクラスタを、ユーザ領域の最終クラスタとなるようにパーティションを区切ることも可能である。しかし、それでも、記録媒体109の記録領域内の末尾の領域にはこのようなAUクラスタ数に満たない領域が出てきてしまう。本実施形態の記録媒体109のフォーマット処理では、パーティションを1つとしたため、記録媒体109の末尾の領域は、AUサイズに満たずにAUを構成できず、データ用クラスタとして使用できないクラスタが発生してしまう。本実施形態では、このような記録媒体の末尾のAUとして使用できない領域をディレクトリ用クラスタとして使用することで、通常は使用されずに残ってしまう空クラスタを有効活用している。
空きクラスタがない場合(S1108でNO)、ステップS1109へ処理を進める。
ステップS1109では、ディレクトリ用クラスタ割り当て処理部206は、AU割当表の開始クラスタ番号をFAT走査開始クラスタ番号に設定する。ステップS1110では、ディレクトリ用クラスタ割り当て処理部206は、AU割当表の最後のクラスタ番号をFAT走査終了クラスタ番号に設定する。S1111では、ディレクトリ用クラスタ割り当て処理部206は、S1109、S1110で設定したFAT走査開始クラスタ番号からFAT走査終了クラスタ番号までの間で空きクラスタを検索する。ステップS1112では、ディレクトリ用クラスタ割り当て処理部206は、S1111で空きクラスタが見つかったかを確認する。S1112で空きクラスタがあった場合(S1112でYES)はS1123へ処理を進める。
ステップS1123では、ディレクトリ用クラスタ割り当て処理部206は、ステップS1111で検索した空クラスタを、ディレクトリ用クラスタとして割り当てる。そして、S1113へ処理を進める。なお、空クラスタを検索し、最初に見つかったクラスタをディレクトリ用クラスタに割り当るようにしてもよいが、空きAUのクラスタを使用してしまうと、そのAUはスピードクラスでのデータ記録に使用できなくなってしまう。そのため、一部のクラスタを使用済みのAU内の未使用の空クラスタを、優先的にディレクトリ用クラスタに割り当て、全く使用されていない空のAU内のクラスタは、ディレクトリ用クラスタに割り当てないように制御してもよい。ただし、空きクラスタが、空のAU内にしかない場合は、空のAU内のクラスタをディレクトリ用クラスタに割り当てるようにする。ステップS1113では、ディレクトリ用クラスタ割り当て処理部206は、検索した空クラスタのクラスタ番号をAU割当表のAU番号に換算する。このAU番号の換算は、クラスタ番号からデータ用クラスタの開始クラスタ番号を減算した値を、CPAで除算した商がAU番号となる。S1114では、ディレクトリ用クラスタ割り当て処理部206は、ステップS1113で算出したAU番号に対応するAU割当表の領域に記録されている空きクラスタ数を1減算した値で再記録する。ここで、ディレクトリは1クラスタで記録するため、S1123においてディレクトリ用クラスタとして1クラスタ分を割り当てたため、空クラスタ数を1減算している。
ステップS1112で空きクラスタがなかった場合(S1112でNO)、ディレクトリ用クラスタ割り当て処理を終了する。このケースでは記録媒体109上に空きクラスタが存在せずに、ディレクトリ用クラスタを割り当てることができないこととなる。
以上の処理により、ディレクトリ用クラスタ割り当て処理部206は、記録するディレクトリにディレクトリ用クラスタを割り当てる。なお、ディレクトリ用クラスタ割り当て処理部206がディレクトリ用クラスタを割り当てた後は、CPU105は、記録媒体制御部108を介して、ディレクトリ用クラスタとして割り当てられたクラスタに、記録対象のディレクトリを記録する処理を実行する。
上述の処理では、万が一、AU割当表で管理されないクラスタに空クラスタがなくなってしまった場合には、AU割当表で管理されるクラスタをディレクトリ用クラスタとして割り当てることとした。しかし、記録媒体109の構成やフォーマット等に応じて、ディレクトリ用クラスタとして使用するクラスタが、AU割当表の管理外のクラスタのみで十分である場合は、AU割当表の管理外のクラスタのみをディレクトリ用クラスタに割り当てるようにしてもよい。
このように、本実施形態では、フォーマット上リアルタイムデータの記録に適さない領域を、ディレクトリ用の領域とすることで、記録媒体109の容量効率を落とさずにデータを記録することが可能となる。
上述の説明では、データ用クラスタ割り当て処理において、AUが空き領域と判断する空きクラスタ数をCPAと同数としたが、これは、動画のようなリアルタイムデータを記録速度保証の書き込み速度保証モードで記録する場合である。例えば静止画や管理データなどの場合はCPAのクラスタ数未満で1クラスタ以上のサイズの領域に空がある場合にデータ用クラスタを割り当てるようにしてもよい。
本実施形態では、CPU105は、Allocation Unit(AU)を、書き込み速度保証モードにおけるデータ記録の記録単位として、ユーザ領域内のデータ用クラスタをAUという記録単位で管理する。そして、空のAUにのみ書き込み速度保証モードにおけるデータ記録を可能とした。しかし、記録媒体のブロックに対応する領域毎の記録単位で管理するのであれば、AUではない、他の記録単位で、データ記録を管理してもよい。
[実施例2]
第1の実施形態では、パーティションを管理する規格としてMBRを利用したが、MBRではセクタ数が最大で0xFFFFFFFFセクタまでしか扱えない。これはセクタサイズが512バイトの場合、2テラバイト‐512バイトに相当する。このセクタ数以上の記録媒体109を利用する場合は、MBRではなくGPT(GUID Partition Table)形式でパーティションを作成する必要がある。
GPT形式のフォーマットを利用する第2の実施形態に関する記録装置を含むデジタルカメラ100について図12、図13を用いて説明する。
第2の実施形態では、第1の実施形態におけるデータ用クラスタ位置特定処理部203、AU割当表作成処理部204、データ用クラスタ割り当て処理部205、ディレクトリ用クラスタ割り当て処理部206はそのまま利用することができる。
GPTは記録媒体109内のパーティション304を管理するための仕組みである。GPTの構成について図12を図示して説明する。GPTはPMBR(Protective MBR)1201、Primary GPT Header1202、GPT Entry Array1203、Backup GPT Entry Array1204、Backup GPT Header1205で構成される。
GPTはデータ破壊への対応として、Primary GPT Header1202、GPT Entry Array1203の内容がバックアップとしてそれぞれBackup GPT Header1205、Backup GPT Entry Array1204に保持されている。Primary GPT Header1202に含まれるCRCの値が記録されている値から算出した値と異なる場合、バックアップしている内容から復旧することが出来る。バックアップされるデータBackup GPT Header1205、Backup GPT Entry Array1204は記録媒体109の最後尾に記録されることが一般的である。
PMBR1201はMBRのみサポートしている機器向けの領域で、0番セクタに記録される。MBRのみサポートしている機器には記録媒体109全体が一つのパーティションとして見える。GPTをサポートしている機器に対しては、後述するPrimary GPT Header1202のセクタアドレス(通常は1番セクタ)を示す情報が記録される。
Primary GPT Header1202にはシグネチャ、リビジョン番号、ヘッダCRC32、自身が記録されているセクタアドレス、Backup GPT Header1205のセクタアドレス、GPT Entry Arrayの開始セクタアドレス、パーティション数などが記録される。パーティション数は一般的に128エントリとされている。
GPT Entry Array1203には前記Primary GPT Header1202に記載のパーティション数分のパーティションに関する情報が記録される。各パーティション情報として、パーティションの開始セクタアドレス、パーティションの終了セクタアドレスなどが記録される。可搬記録媒体109の場合は、パーティションは一つのみ利用することが一般的であるため、第一パーティション情報1206のみに情報が記録される。
記録媒体109の領域を図12で示したフォーマットにするフォーマット処理部201について、図13のフローチャートを用いて説明する。
ステップS1301は、記録媒体109から総セクタ数を取得する。ステップS1302は、すべてのセクタをイレースする。ステップS1303は、第一パーティションのセクタアドレスを算出する。第一パーティションのセクタアドレスは1番セクタ以降であればどこでもよい。ただし、多くのセクタをパーティションに割り当てるため、0番セクタからクラスタとして利用するセクタ数(SPC:Sectors Per Cluster)離れたセクタアドレスとする。ステップS1304は第一パーティションの終了セクタアドレスを算出する。パーティションの終了セクタアドレスは記録媒体109の最終セクタアドレスからSPC減算したセクタアドレスとする。パーティションの終了セクタアドレスから記録媒体109の最終セクタアドレスまでの間はBackup GPT Header1205とBackup GPT Entry Array1204が記録される領域となる。ステップS1305はPMBR1201を記録する。PMBR1201は1番セクタからPrimary GPT Header1202が記録されていることを示す様に作成する。ステップS1306はPrimary GPT Header1202、GPT Entry Array1203を作成する。Primary GPT Header1202は2番セクタに記録され、GPT Entry Array1203は3番セクタから開始されていることを示す様に作成する。また、Backup GPT Header1205は記録媒体109の最終セクタアドレスに記録されていることを示す様に作成する。第一パーティション情報1206にS1303とS1304で算出したパーティションの開始セクタアドレスと終了セクタアドレスを記録する。S1307はBackup GPT Header1205,Backup GPT Entry Array1204を記録する。Backup GPT Entry Array1204内の第一パーティション情報1207にS1303とS1304で算出したパーティションの開始セクタアドレスと終了セクタアドレスを記録する。ステップS1308はBPB302を記録する。BPBはステップS1303で算出した第一パーティションの開始位置から記録する。ステップS1309はFAT303の初期状態を記録する。FAT303の記録開始位置はBPB302以降の任意のアドレスでよい。多くのクラスタを利用できるようにするために、BPB302から1SPC分離れた位置とする。ステップS1310はシステム用クラスタを記録し、フォーマット処理を終了する。
以上のように、GPT形式でのフォーマットの場合もフォーマット上リアルタイムデータの記録に適さない領域をディレクトリ用の領域とすることで、記録媒体109の容量効率を落とさずにデータを記録することが可能となる。
[その他の実施形態]
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。また、上述の実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線/無線通信を用いてプログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのプログラムを実行する場合も本発明に含む。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムを供給するための記録媒体としては、例えば、ハードディスク、磁気テープ等の磁気記録媒体、光/光磁気記憶媒体、不揮発性の半導体メモリでもよい。また、プログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムを記憶し、接続のあったクライアントコンピュータはがコンピュータプログラムをダウンロードしてプログラムするような方法も考えられる。

Claims (11)

  1. 記録媒体にデータを記録するための制御装置であって、
    前記記録媒体の記録領域内の所定の領域をクラスタで管理するクラスタ管理手段と、
    前記所定の領域内のクラスタを、前記クラスタよりも大きい所定のサイズの記録単位で管理する記録単位管理手段と、
    前記所定の領域内のクラスタを、ディレクトリを記録するためのディレクトリ用クラスタに設定するディレクトリ用クラスタ割り当て手段と、
    を有し、
    前記ディレクトリ用クラスタ割り当て手段は、前記所定のサイズの記録単位に満たずに前記記録単位管理手段により管理されない前記所定の領域の末尾の領域のクラスタを、ディレクトリ用クラスタに割り当てることを特徴とする制御装置。
  2. 前記クラスタ管理手段は、FAT(File Allocation Table)で管理することを特徴とする請求項1に記載の制御装置。
  3. 記録単位管理手段は、記録速度が保証されるスピードクラスでのデータの記録を行うために、前記所定の領域内のクラスタを前記記録単位で管理することを特徴とする請求項1または2に記載の制御装置。
  4. 前記クラスタ管理手段は、前記所定の領域内を所定のクラスタサイズで分割されたクラスタで管理し、
    前記記録単位管理手段は、前記所定の領域以外の領域を含む前記記録媒体の記録領域の先頭から前記所定のサイズで分割し、前記所定の領域内に前記所定のサイズの記録単位の全体が含まれる記録単位のクラスタを管理することを特徴とする請求項1乃至3のいずれか1項に記載の制御装置。
  5. 前記ディレクトリ用クラスタ割り当て手段は、
    前記所定のサイズの記録単位に満たずに前記記録単位管理手段により管理されない前記所定の領域の先頭の領域のクラスタをディレクトリ用クラスタに割り当て、
    前記先頭の領域のクラスタに空クラスタがなくなったことに応じて、前記所定のサイズの記録単位に満たずに前記記録単位管理手段により管理されない前記所定の領域の末尾の領域のクラスタを、ディレクトリ用クラスタに割り当てる
    ことを特徴とする請求項1乃至4のいずれか1項に記載の制御装置。
  6. 前記ディレクトリ用クラスタ割り当て手段は、前記末尾の領域のクラスタに空クラスタがなくなったことに応じて、前記記録単位管理手段により管理されているクラスタを、ディレクトリ用クラスタに割り当てることを特徴とする請求項5に記載の制御装置。
  7. 前記ディレクトリ用クラスタ割り当て手段は、前記記録単位管理手段により管理されているクラスタのうち、前記記録単位の一部のクラスタが使用されている記録単位内のクラスタを、ディレクトリ用クラスタに優先的に割り当てるように制御することを特徴とする請求項6に記載の制御装置。
  8. 前記記録媒体は、SDカードであることを特徴とする請求項1に記載の制御装置。
  9. 前記記録媒体は、CFexpress規格に準拠した記録媒体であることを特徴とする請求項1に記載の制御装置。
  10. 記録領域内の所定の領域がクラスタで管理される記録媒体にデータを記録するための記録装置の制御方法であって、
    前記所定の領域内のクラスタを、前記クラスタよりも大きい所定のサイズの記録単位で管理する記録単位管理工程と、
    前記所定の領域内のクラスタを、ディレクトリを記録するためのディレクトリ用クラスタに設定するディレクトリ用クラスタ割り当て工程と、
    を有し、
    前記ディレクトリ用クラスタ割り当て工程では、前記所定のサイズの記録単位に満たずに前記記録単位管理工程により管理されない前記所定の領域の末尾の領域のクラスタを、ディレクトリ用クラスタに割り当てることを特徴とする記録装置の制御方法。
  11. コンピュータを、請求項1乃至9のいずれか1項に記載の制御装置の各手段として機能させるためのプログラム。
JP2019152798A 2019-08-23 2019-08-23 制御装置 Active JP7362349B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019152798A JP7362349B2 (ja) 2019-08-23 2019-08-23 制御装置
US16/986,690 US11604593B2 (en) 2019-08-23 2020-08-06 Control apparatus that improves recording of data in a recording medium by allocating directory clusters to recording units in a more effective manner, and control method and non-transitory computer readable storage medium storing instructions thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019152798A JP7362349B2 (ja) 2019-08-23 2019-08-23 制御装置

Publications (2)

Publication Number Publication Date
JP2021033615A JP2021033615A (ja) 2021-03-01
JP7362349B2 true JP7362349B2 (ja) 2023-10-17

Family

ID=74645766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019152798A Active JP7362349B2 (ja) 2019-08-23 2019-08-23 制御装置

Country Status (2)

Country Link
US (1) US11604593B2 (ja)
JP (1) JP7362349B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005103903A1 (ja) 2004-04-20 2005-11-03 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶システム
JP2008171257A (ja) 2007-01-12 2008-07-24 Toshiba Corp ホスト装置およびメモリシステム
JP2014044490A (ja) 2012-08-24 2014-03-13 Toshiba Corp ホスト装置及びメモリデバイス

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5363487A (en) * 1989-08-29 1994-11-08 Microsoft Corporation Method and system for dynamic volume tracking in an installable file system
JP2011164733A (ja) 2010-02-05 2011-08-25 Panasonic Corp 記録装置及び記録方法
JP2015029231A (ja) * 2013-07-30 2015-02-12 キヤノン株式会社 記録装置およびその制御方法
US10140055B2 (en) * 2015-12-21 2018-11-27 Memory Technologies Llc Ensuring that memory device actions are valid using reference values
WO2018186455A1 (ja) * 2017-04-07 2018-10-11 パナソニックIpマネジメント株式会社 不揮発性メモリにおける空き容量管理方法、及び不揮発性メモリを含む情報記録装置にデータを記録するアクセス装置、情報記録装置および情報記録システム
US10895991B2 (en) * 2018-11-14 2021-01-19 Western Digital Technologies, Inc. Solid state device with improved sustained data writing speed

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005103903A1 (ja) 2004-04-20 2005-11-03 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶システム
JP2008171257A (ja) 2007-01-12 2008-07-24 Toshiba Corp ホスト装置およびメモリシステム
JP2014044490A (ja) 2012-08-24 2014-03-13 Toshiba Corp ホスト装置及びメモリデバイス

Also Published As

Publication number Publication date
US20210055877A1 (en) 2021-02-25
US11604593B2 (en) 2023-03-14
JP2021033615A (ja) 2021-03-01

Similar Documents

Publication Publication Date Title
US7610434B2 (en) File recording apparatus
JP5129156B2 (ja) アクセス装置、および、ライトワンス記録システム
JP5481493B2 (ja) アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム
JP2003157193A (ja) 拡張可能なdos用fatファイルシステム構造を1回だけ記録可能な媒体に設定する方法
JP4608434B2 (ja) 情報記録媒体のデータ処理装置及びデータ記録方法
JP2007233512A (ja) データ記録装置、データ記録方法、及びプログラム
JP7362349B2 (ja) 制御装置
JP5555489B2 (ja) フォーマット装置、フォーマット方法およびプログラム
JP2006228138A (ja) 半導体記憶装置、記憶制御方法および情報機器
JP7314276B2 (ja) ストレージ管理装置、ストレージ管理方法およびプログラム
JP4714291B2 (ja) 情報記録装置、情報記録方法及び情報記録用プログラム
JP2009205591A (ja) アクセスモジュール、情報記録モジュール、及び情報記録システム
JP2006133923A (ja) データ記録再生装置、記録再生方法、プログラム並びにデータ記録媒体
JP2021082005A (ja) 記録装置
JP7262977B2 (ja) 記録装置及びその制御方法、並びにプログラム
JP2006155461A (ja) 情報処理装置、情報処理方法、並びにプログラム
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP5161989B2 (ja) 情報記録装置、情報記録方法及び情報記録用プログラム
JP5958440B2 (ja) 仮想テープ制御装置、仮想テープ装置、制御方法、プログラムおよび記録媒体
JP2008134777A (ja) ファイル割当テーブルのキャッシュ方法
JP5311705B2 (ja) 記録制御装置
JP2016015057A (ja) 記録装置
JP2016015059A (ja) 記録装置
JP2008027108A (ja) 記録装置、記憶媒体および記録方法、記録プログラム
JP2016015058A (ja) 記録装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220729

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230824

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: 20230905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231004

R151 Written notification of patent or utility model registration

Ref document number: 7362349

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151