(57)【要約】【課題】  再配置処理の処理量を低減できるデータ記録装置を提供する。【解決手段】  データを記録する領域の最小単位であるセクタの集合体であるＥＣＣブロックを複数有する光ディスクであり、データの分布状況をセクタごとに示す管理テーブルをさらに備えた光ディスクに、データを記録するデータ記録装置であって、管理テーブルを参照することにより、ＥＣＣブロックに含まれる部分データの数をＥＣＣブロックごとに検出する部分データ数算出部１９と、部分データ数算出部１９によって検出された部分データ数をＥＣＣブロックの間で比較し、部分データ数が最も少ないＥＣＣブロックをデータの記録先に選択する部分データ数比較部２０とを備える。【選択図】  図１
2006331555.tif 000002
【特許請求の範囲】
【請求項１】
データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、データの分布状況を記録単位ごとに示す管理テーブルをさらに備えた記録媒体に、データを記録するデータ記録装置であって、
上記管理テーブルを参照することにより、データの分布状況を管理単位ごとに検出する分布状況検出手段と、
上記分布状況検出手段によって検出された上記分布状況を管理単位の間で比較し、上記分布状況が管理単位の間で平均化されるように、データを記録する記録単位を選択する比較手段とを備えることを特徴とするデータ記録装置。
【請求項２】
上記管理テーブルは、ファイルが記録されている個々の記録単位を特定する記録位置情報をファイルごとに登録したファイル管理テーブルであって、
上記分布状況検出手段は、上記ファイル管理テーブルからファイルごとに記録位置情報を読み出し、当該記録位置情報からファイルが記録されている記録単位を含む管理単位を特定する管理単位特定情報を抽出し、当該管理単位特定情報に基づいて、ファイルを構成し、かつ、連続する複数の記録単位に記録された部分データの数である部分データ数を上記管理単位ごとに算出し、
上記比較手段は、上記部分データ数を上記管理単位の間で比較し、部分データ数の最も小さい上記管理単位にデータを記録する決定を行うことを特徴とする請求項１に記載のデータ記録装置。
【請求項３】
上記管理テーブルは、記録単位ごとに使用されているか否かを示す情報を管理単位ごとに登録した記録単位管理テーブルであり、
上記分布状況検出手段は、上記記録単位管理テーブルを参照することにより、管理単位における使用中の記録単位の割合であるデータ占有率を管理単位ごとに算出し、
上記比較手段は、上記データ占有率を上記管理単位の間で比較し、当該データ占有率の最も低い管理単位にデータを記録する決定を行うことを特徴とする請求項１に記載のデータ記録装置。
【請求項４】
データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、記録単位ごとに使用されているか否かを示す情報を管理単位ごとに登録した記録単位管理テーブルをさらに備えた記録媒体に、データを記録するデータ記録装置であって、
上記記録単位管理テーブルを参照することにより、データが全く記録されていない記録単位が連続している領域である連続空領域のサイズを管理単位ごとに検出する分布状況検出手段と、
記録すべきデータのサイズ以下のサイズを有し、かつ最大のサイズの上記連続空領域に当該記録すべきデータを記録する決定を行う比較手段とを備えることを特徴とするデータ記録装置。
【請求項５】
データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、記録単位ごとに使用されているか否かを示す情報を管理単位ごとに登録した記録単位管理テーブルをさらに備えた記録媒体にデータを記録するとともに、既に記録されているデータを管理単位ごとに別の管理単位に再記録する再配置処理を行うデータ記録装置であって、
上記管理テーブルを参照することにより、データが全く記録されていない記録単位が連続している領域である連続空領域のサイズを管理単位ごとに算出する分布状況検出手段と、
上記分布状況検出手段によって算出された上記連続空領域のサイズを管理単位の間で比較することにより、最も大きな上記連続空領域を有する管理単位を選択する比較手段とを備え、
上記比較手段によって選択された上記管理単位に上記再配置データを記録することを特徴とするデータ記録装置。
【請求項６】
上記管理単位は、エラー訂正処理における処理単位であるエラー訂正符号ブロックであることを特徴とする請求項１または５に記載のデータ記録装置。
【請求項７】
データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、データの分布状況を管理単位ごとに示す管理テーブルをさらに備えた記録媒体に、データを記録するデータ記録装置におけるデータ記録方法であって、
上記管理テーブルを参照することにより、データの分布状況を管理単位ごとに検出する分布状況検出工程と、
上記分布状況検出工程において検出された上記分布状況を管理単位の間で比較し、上記分布状況が管理単位の間で平均化されるように、データを記録する記録単位を選択する比較工程とを含むことを特徴とするデータ記録方法。
【請求項８】
データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、記録単位ごとに使用されているか否かを示す情報を管理単位ごとに登録した記録単位管理テーブルをさらに備えた記録媒体にデータを記録するとともに、既に記録されているデータを管理単位ごとに別の管理単位に再記録するデータ記録装置におけるデータ記録方法であって、
上記管理テーブルを参照することにより、データが全く記録されていない記録単位が連続している領域である連続空領域のサイズを管理単位ごとに算出する分布状況検出工程と、
上記分布状況検出工程において算出された上記連続空領域のサイズを管理単位の間で比較することにより、最も大きな上記連続空領域を有する管理単位に上記再配置データを記録する決定を行う比較工程とを含むことを特徴とするデータ記録方法。
【請求項９】
請求項１〜６のいずれか１項に記載のデータ記録装置を動作させるデータ記録プログラムであって、コンピュータを上記の各手段として機能させるためのデータ記録プログラム。
【請求項１０】
請求項９に記載のデータ記録プログラムを記録した、コンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気ディスク、光ディスク、半導体メモリなどの記録媒体のデータ記録装置に関し、特に上記記録媒体におけるデータの再配置処理を行うデータ記録装置に関する。
【背景技術】
【０００２】
通常、磁気ディスクや光ディスク、半導体メモリなどの記録媒体にデータを記録する場合、セクタと呼ばれる単位で管理されることが多い。
【０００３】
ファイルが１セクタよりも小さいときは、当該ファイルのデータはあるセクタの先頭から連続して記録される。このセクタは当該ファイルによって占有され、余った領域は使用されない。
【０００４】
一方、ファイルが１セクタよりも大きいときは、当該ファイルのデータはあるセクタの先頭から記録され、そのセクタは連続的なデータで埋められる。残りのデータは新たなセクタの先頭から記録され、そのセクタも連続的なデータで埋められる。これを繰り返すことによって全てのデータが記録される。このとき、上記各セクタは連続している必要はない。
【０００５】
そして、上記のいずれの場合においてもファイルがどのセクタにどの順番で記録されているかという情報がファイル管理情報として、当該記録媒体に記録される。
【０００６】
また最近の記録媒体は、エラー判定、またはエラー訂正をするための符号をある単位ごとに、データの記録と同時に記録するフォーマットを持つことが多い。例えば、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅｓ）ブロックと呼ばれる単位ごとにエラー訂正を行うフォーマットを挙げることができる。通常ＥＣＣブロックは複数の連続したセクタから構成される。ＥＣＣブロックはデータを記録するセクタと当該データのエラー訂正符号を記録するセクタとから構成され、データと当該データのエラー訂正符号とが同時に記録される。そのため、ＥＣＣブロック内の１セクタでも書き換えられるときには、当該ＥＣＣブロックのエラー訂正符号も書き換えられる。
【０００７】
一般に、データの書き換えが繰り返されるなどの原因によって記録媒体の劣化が進んだ場合には、新たなデータの書き込みが不可能となることが多い。エラー訂正符号の書き込みが不可能となった場合には、該当するＥＣＣブロックの全てのデータの書き換えができなくなる。
【０００８】
多くのデータ記録装置は、ひとつのＥＣＣブロックの容量よりも大きな容量のキャッシュメモリを持つため、新たなデータが記録されるＥＣＣブロックに既に含まれているデータの全てをキャッシュメモリに保持することができる。そのため、エラー訂正符号の書き込みが不可能となった場合には、該当するＥＣＣブロック内のデータを全て他の領域に再配置することによって当該データは保護される。
【０００９】
このような再配置処理を行えば、データのアドレスも変更されることになる。データのアドレスが変われば、当該データのファイル管理情報を書き換える必要が生じる。そのため、データを再配置しても、当該データのアドレスが変わらないデータ再配置方法が提案されている。
【００１０】
例えば、特許文献１に記載の記録媒体は、ＥＣＣブロックサイズのＳｐａｒｅ  Ａｒｅａと、各ＥＣＣブロックのアドレス情報を管理するためのＳｐａｒｅ  Ａｒｅａ  Ｌｉｓｔとを備えており、書き込みエラーが発生したＥＣＣブロックのデータ全体をそのままＳｐａｒｅ  Ａｒｅａに再配置し、アドレスの置換情報をＳｐａｒｅ  Ａｒｅａ  Ｌｉｓｔに記録する。そのため、本来のアドレスそのままに新しい領域に再配置されたデータにアクセスすることができる。
【００１１】
また、非特許文献１に記載の記録媒体は、特定サイズのＳｐａｒａｂｌｅ  Ｐａｒｔｉｔｉｏｎと、ファイル管理のためのＳｐａｒｉｎｇ  Ｔａｂｌｅとを備えており、書き込みエラーが発生したＥＣＣブロックのデータ全体をそのままＳｐａｒａｂｌｅ  Ｐａｒｔｉｔｉｏｎ内に記録し、アドレスの置換情報をＳｐａｒｉｎｇ  Ｔａｂｌｅに記録する。そのため、本来のアドレスそのままに新しい領域に再配置されたデータにアクセスすることができる。
【００１２】
上記の再配置処理は、書き込みエラーが発生した場合に行われるものであるが、記録媒体のどの領域に新たなデータを書き込むかによって書き込みエラーが発生する頻度は変わってくる。
【００１３】
通常、ある特定の領域において繰返し書き込みを行うよりも、記録媒体の全領域に均等に書き込みを行う方が、書き込みエラーが発生する率は低下する。そのため、記録媒体の全領域に均等にデータを記録する方法が提案されている。
【００１４】
例えば、特許文献２に記載のデータ処理装置においては、ディスクの空き領域の情報を示す空領域マップと、データの記録が可能な領域の探索を始める割り付け開始アドレスとを含む空領域情報を用いてデータの記録を行っている。そして、あるデータが記録されると、当該データのアドレスの次のアドレスを割り付け開始アドレスとして設定することにより、ディスクの全領域に均等にデータを記録する。
【特許文献１】ＷＯ００／１６３２９号公報（２０００年３月２３日公開）
【特許文献２】特許２９４５７３５号（１９９９年６月２５日登録）
【非特許文献１】Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ２．５０（ＯＳＴＡ）
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、Ｓｐａｒｅ  Ａｒｅａや、Ｓｐａｒａｂｌｅ  Ｐａｒｔｉｔｉｏｎと同等の領域／機能を持たない規格の記録媒体の場合には、以下のような処理を行う必要があり、データの書き直しに手間がかかる可能性がある。
【００１６】
すなわち、あるＥＣＣブロックに対して書き込みエラーが発生した場合、そのＥＣＣブロックに含まれる全てのセクタのデータを他のＥＣＣブロックに含まれるセクタに書き直さなければならない。またその書き直したそれぞれのデータのアドレスを管理するファイル管理情報を検索し、新しいアドレスに書き直さなければならない。
【００１７】
上記の処理を行う場合に、例えば書き込みエラーが発生したＥＣＣブロックに含まれる全てのセクタがそれぞれ異なるファイルの一部分であった場合には、ファイルごとにファイル管理情報を検索し、アドレスの変更を行う必要があるため、その検索のステップ数は非常に多くなる。
【００１８】
なお、上記の課題はセクタやＥＣＣブロックに限って生じるものではなく、同様の特徴／機能を持つ領域管理単位であれば同様の課題が発生する。
【００１９】
本発明は、上記の問題点を解決するためになされたもので、その目的は、データの再配置処理を容易に行うことができるデータ記録装置を提供することにある。
【課題を解決するための手段】
【００２０】
本発明に係るデータ記録装置は、上記の課題を解決するために、データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、データの分布状況を記録単位ごとに示す管理テーブルをさらに備えた記録媒体に、データを記録するデータ記録装置であって、上記管理テーブルを参照することにより、データの分布状況を管理単位ごとに検出する分布状況検出手段と、上記分布状況検出手段によって検出された上記分布状況を管理単位の間で比較し、上記分布状況が管理単位の間で平均化されるように、データを記録する記録単位を選択する比較手段とを備えることを特徴としている。
【００２１】
上記の構成によれば、データを記録する記録単位を選択する場合に、まず、分布状況検出手段が、管理テーブルを参照することにより、管理単位ごとにデータの分布状況を検出する。そして、比較手段は、分布状況検出手段によって検出された分布状況を記録可能管理単位の間で比較し、データの分布状況が管理単位の間で平均化されるように、データを記録する管理単位を選択する。
【００２２】
ここで管理単位の意義について説明する。管理単位は、複数の記録単位をひとまとまりとして管理する単位である。このような管理単位を設けることにより、記録単位を個別に管理するよりも、管理に要する処理量を低減できることが多い。
【００２３】
例えば、ＵＤＦ（Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ）規格においては、管理単位とはＥＣＣブロックであり、記録単位とはセクタであり、一定数の連続したセクタによってＥＣＣブロックが構成されている。
【００２４】
管理単位ごとに行われる処理として、データの再配置処理が挙げられる。この再配置処理とは、既に記録されているデータを別の記録単位に再記録する処理である。この再配置処理では、ひとつの管理単位に記録されているデータの全てが別の管理単位に再記録される。
【００２５】
上記の再配置処理が行われた場合には、再配置されたデータに関する管理情報が更新される。そのため、再配置対象となる管理単位におけるデータの分布状況によって再配置処理に要する処理量は異なる。例えば、ひとつの管理単位に記録されているデータの量が多い場合には、その管理単位のデータの再配置に要する処理量は多くなる可能性が高い。
【００２６】
管理単位ごとのデータの分布状況に偏りが生じれば、他の管理単位よりも著しく再配置処理に要する処理量が多くなる管理単位が発生する可能性が高い。このような管理単位が発生すれば、データ記録装置のパフォーマンスは低下する可能性が高い。
【００２７】
上記の構成では、他の管理単位よりも著しくデータの分布状況が異なる管理単位、例えば、ファイルを構成する部分データの数が著しく多い管理単位、が発生することを抑制できる。それゆえ、管理単位ごとに行われる処理の処理量を平均化することができ、例えば、再配置処理に著しく多くの処理を必要とする管理単位の発生を抑制できる。したがって、管理単位ごとに処理が行われる場合、例えば、再配置処理が行われる場合
に当該再配置処理の処理量を低減できる。
【００２８】
上記管理テーブルは、ファイルが記録されている個々の記録単位を特定する記録位置情報をファイルごとに登録したファイル管理テーブルであって、上記分布状況検出手段は、上記ファイル管理テーブルからファイルごとに記録位置情報を読み出し、当該記録位置情報からファイルが記録されている記録単位を含む管理単位を特定する管理単位特定情報を抽出し、当該管理単位特定情報に基づいて、ファイルを構成し、かつ、連続する複数の記録単位に記録された部分データの数である部分データ数を上記管理単位ごとに算出し、上記比較手段は、上記部分データ数を上記管理単位の間で比較し、部分データ数の最も小さい上記管理単位にデータを記録する決定を行うことことが好ましい。
【００２９】
上記の構成によれば、分布状況検出手段は、上記ファイル管理テーブルからファイルごとに記録位置情報を読み出し、当該記録位置情報からファイルが記録されている記録単位を含む管理単位を特定する管理単位特定情報を抽出し、当該管理単位特定情報に基づいて部分データ数を管理単位ごとに算出する。ここで、上記部分データとは、連続する複数の記録単位に記録され、かつ、ファイルを構成するデータの断片であるデータを意味し、上記部分データ数とは、ひとつの管理単位に含まれる部分データの数を意味している。そして、比較手段は、分布状況検出手段によって算出された部分データ数を比較し、部分データ数の最も小さい管理単位にデータを記録する決定を行う。
【００３０】
管理単位のデータを再配置する場合には、当該管理単位に含まれる部分データの全てに関するファイル管理情報を更新する必要がある。具体的には、ファイル管理情報を記録したファイル管理テーブルを更新する必要がある。管理単位の部分データ数が多くなれば、再配置に要する処理量も多くなる。そのため、他の管理単位に比べて部分データ数が著しく多い管理単位が発生した場合には、その管理単位の再配置に要する処理量は著しく多くなる。
【００３１】
上記の構成では、データは部分データ数の最も小さい管理単位に優先的に記録されていくため、部分データ数は管理単位間において平均化される傾向にある。そのため、他の管理単位に比べ部分データ数が著しく多い管理単位が発生する可能性を低減することができる。したがって、データの再配置に多くの処理を要する管理単位が発生する可能性を低減することができる。
【００３２】
上記管理テーブルは、記録単位ごとに使用されているか否かを示す情報を管理単位ごとに登録した記録単位管理テーブルであり、上記分布状況検出手段は、上記記録単位管理テーブルを参照することにより、管理単位における使用中の記録単位の割合であるデータ占有率を管理単位ごとに算出し、上記比較手段は、上記データ占有率を上記管理単位の間で比較し、当該データ占有率の最も低い管理単位にデータを記録する決定を行うことが好ましい。
【００３３】
上記の構成によれば、分布状況検出手段は、記録単位管理テーブルを参照することにより、管理単位のデータ占有率をそれぞれ算出する。ここで、上記データ占有率とは、ひとつの管理単位に含まれる記録単位のうち、どれだけの記録単位に既にデータが記録されているのかを示す割合である。そして、比較手段は、分布状況検出手段によって算出されたデータ占有率を比較し、データ占有率の最も低い管理単位を新規データの記録領域に指定する。換言すれば、データはデータ占有率の最も低い管理単位に優先的に記録され、データ占有率は管理単位間において平均化されていく。
【００３４】
そのため、他の管理単位に比べデータ占有率が著しく高い管理単位が発生する可能性を低減することができる。
【００３５】
管理単位のデータを再配置する場合には、当該管理単位に含まれる部分データ数が大きくなるのに伴い再配置に要する処理量も増加する。一方、管理単位のデータ占有率が高くなれば、当該管理単位の部分データ数も多くなる可能性が高い。その結果、再配置に要する処理量も多くなる可能性が高い。そのため、他の管理単位に比べてデータ占有率が高い管理単位が発生した場合には、その管理単位の再配置に要する処理量は多くなる可能性が高い。
【００３６】
したがって、上記の構成により、データの再配置に多くの処理を要する管理単位が発生する可能性を低減することができる。
【００３７】
本発明に係るデータ記録装置は、上記の課題を解決するために、データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、記録単位ごとに使用されているか否かを示す情報を管理単位ごとに登録した記録単位管理テーブルをさらに備えた記録媒体に、データを記録するデータ記録装置であって、上記記録単位管理テーブルを参照することにより、データが全く記録されていない記録単位が連続している領域である連続空領域のサイズを管理単位ごとに検出する分布状況検出手段と、記録すべきデータのサイズ以下のサイズを有し、かつ最大のサイズの上記連続空領域に当該記録すべきデータを記録する決定を行う比較手段とを備えることを特徴としている。
【００３８】
同じ管理単位に何度もデータが記録されると、当該管理単位は劣化する可能性が高くなる。管理単位が劣化すれば、再配置処理が行われる可能性が高くなる。このような劣化を防止するためには、できるだけ大きなサイズのデータを管理単位に記録する記録することが好ましい。そして、連続空領域が生じた場合には、当該連続空領域のサイズ以上のサイズのデータにより当該連続空領域を一度に全て埋めることが好ましい。
【００３９】
上記の構成によれば、分布状況検出手段は、上記記録単位管理テーブルを参照することにより、管理単位に含まれる連続空領域のサイズをそれぞれ算出する。ここで、上記連続空領域とは、データが全く記録されていない記録単位が連続している領域である。そして、比較手段は、記録すべきデータのサイズ以下のサイズを有し、かつ最大のサイズの上記連続空領域を当該データの記録領域に指定する。
【００４０】
それゆえ、一部の記録単位が既に使用されており、かつ未使用の記録単位を有している管理単位が増える可能性を低減でき、記録媒体が劣化する可能性を低減できる。したがって、再配置処理が行われる可能性を低減することができる。
【００４１】
また、記録すべきデータのサイズ以下で、かつ最大の連続空領域、すなわち、最も記録すべきデータのサイズに近い連続空領域に優先的に当該記録すべきデータを記録していくため、記録すべきデータが分断される可能性が低減される。その結果、上記部分データ数の大きな管理単位が発生する可能性を低減することができ、データの再配置に多くの処理を要する管理単位が発生する可能性を低減できる。
【００４２】
本発明に係るデータ記録装置は、上記の課題を解決するために、データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、記録単位ごとに使用されているか否かを示す情報を管理単位ごとに登録した記録単位管理テーブルをさらに備えた記録媒体にデータを記録するとともに、既に記録されているデータを管理単位ごとに別の管理単位に再記録する再配置処理を行うデータ記録装置であって、上記管理テーブルを参照することにより、データが全く記録されていない記録単位が連続している領域である連続空領域のサイズを管理単位ごとに算出する分布状況検出手段と、上記分布状況検出手段によって算出された上記連続空領域のサイズを管理単位の間で比較することにより、最も大きな上記連続空領域を有する管理単位を選択する比較手段とを備え、上記比較手段によって選択された上記管理単位に上記再配置データを記録することを特徴としている。
【００４３】
上記の構成によれば、データの再配置処理を行う場合に、分布状況検出手段は、上記記録単位管理テーブルを参照することにより、データが全く記録されていない記録単位が連続している領域である連続空領域のサイズを算出する。そして、比較手段は、算出された連続空領域のサイズを管理単位の間で比較することにより、最も大きな連続空領域を有する管理単位を選択する。このようにして選択された管理単位の連続空領域に再配置データが再記録される。
【００４４】
ファイルを構成する部分データを再配置する場合に、当該部分データが別々の管理単位にそれぞれ再記録されると、ファイルが分断されることになる。ファイルの分断化が進めば、当該ファイルを読み込む場合の処理速度が低下する。そのため、データの書き換えや追記を当該ファイルに対して行う場合にも処理速度は低下する。
【００４５】
上記の構成により、再配置処理を行う場合に、最も大きな空領域に再配置データをひとまとめにして再記録することができ、ファイルの分断化が進む可能性を低減できる。したがって、ファイルの分断化が進行することによりデータ記録装置の処理速度が低下する可能性を低減できるとともに、データの再配置処理の処理量を低減できる。
【００４６】
上記管理単位は、エラー訂正処理における処理単位であるエラー訂正符号ブロックであることが好ましい。
【００４７】
上記の構成によれば、管理単位は、エラー訂正処理における処理単位であるエラー訂正符号ブロックである。
【００４８】
それゆえ、データの読取り時に生じる読取りエラーを管理単位ごとに訂正することができる。
【００４９】
本発明に係るデータ記録方法は、上記の課題を解決するために、データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、データの分布状況を管理単位ごとに示す管理テーブルをさらに備えた記録媒体に、データを記録するデータ記録装置におけるデータ記録方法であって、上記管理テーブルを参照することにより、データの分布状況を管理単位ごとに検出する分布状況検出工程と、上記分布状況検出工程において検出された上記分布状況を管理単位の間で比較し、上記分布状況が管理単位の間で平均化されるように、データを記録する記録単位を選択する比較工程とを含むことを特徴とするデータ記録方法。
【００５０】
上記構成によれば、データを記録する記録単位を選択する場合に、まず、分布状況検出工程において、管理テーブルを参照することにより、管理単位ごとにデータの分布状況が検出される。そして、比較工程において、分布状況検出工程において検出された分布状況を記録可能管理単位の間で比較し、データの分布状況が管理単位の間で平均化されるように、データを記録する管理単位が選択される。
【００５１】
それゆえ、他の管理単位よりも著しくデータの分布状況が異なる管理単位、例えば部分データ数が著しく多い管理単位が発生することを抑制できる。そのため、管理単位ごとに行われる処理行う場合に、当該処理の処理量を平均化することができ、例えば再配置処理に多くの処理を必要とする管理単位の発生を抑制できる。従って、管理単位ごとに処理が行われる場合、例えば、再配置処理が行われる場合に、当該処理の処理量を低減できる。
【００５２】
本発明に係るデータ記録方法は、上記の課題を解決するために、データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、記録単位ごとに使用されているか否かを示す情報を管理単位ごとに登録した記録単位管理テーブルをさらに備えた記録媒体にデータを記録するとともに、既に記録されているデータを管理単位ごとに別の管理単位に再記録するデータ記録装置におけるデータ記録方法であって、上記管理テーブルを参照することにより、データが全く記録されていない記録単位が連続している領域である連続空領域のサイズを管理単位ごとに算出する分布状況検出工程と、上記分布状況検出工程において算出された上記連続空領域のサイズを管理単位の間で比較することにより、最も大きな上記連続空領域を有する管理単位に上記再配置データを記録する決定を行う比較工程とを含むことを特徴としている。
【００５３】
上記構成によれば、データの再配置処理を行う場合に、分布状況検出工程において、上記記録単位管理テーブルを参照することにより、データが全く記録されていない記録単位が連続している領域である連続空領域のサイズが算出される。そして、比較工程において、算出された連続空領域のサイズを管理単位の間で比較することにより、最も大きな連続空領域を有する管理単位が選択される。このようにして選択された管理単位の連続空領域に再配置データが再記録される。
【００５４】
それゆえ、最も大きな空領域に再配置データをひとまとめにして再記録することができ、ファイルの分断化が進む可能性を低減できる。したがって、ファイルの分断化が進行することによりデータ記録装置の処理速度が低下する可能性を低減できる。
【００５５】
なお、上記データ記録装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記各手段として動作させることにより上記データ記録装置をコンピュータにて実現させるデータ記録装置のデータ記録プログラムおよびそれを記憶したコンピュータ読取り可能な記録媒体も本発明の範疇に入る。
【発明の効果】
【００５６】
本発明に係るデータ記録装置は、以上のように、データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、データの分布状況を記録単位ごとに示す管理テーブルをさらに備えた記録媒体に、データを記録するデータ記録装置であって、上記管理テーブルを参照することにより、データの分布状況を管理単位ごとに検出する分布状況検出手段と、上記分布状況検出手段によって検出された上記分布状況を管理単位の間で比較し、上記分布状況が管理単位の間で平均化されるように、データを記録する記録単位を選択する比較手段とを備える構成である。
【００５７】
それゆえ、他の管理単位よりも著しくデータの分布状況が異なる管理単位、例えば、部分データ数の大きな管理単位が発生することを抑制でき、管理単位ごとに行われる処理、例えば、データの再配置処理の処理量を低減することができるという効果を奏する。
【００５８】
本発明に係るデータ記録装置は、以上のように、データを記録する領域の最小単位である記録単位の集合体である管理単位を複数有する記憶媒体であり、記録単位ごとに使用されているか否かを示す情報を管理単位ごとに登録した記録単位管理テーブルをさらに備えた記録媒体にデータを記録するとともに、既に記録されているデータを管理単位ごとに別の管理単位に再記録する再配置処理を行うデータ記録装置であって、上記管理テーブルを参照することにより、データが全く記録されていない記録単位が連続している領域である連続空領域のサイズを管理単位ごとに算出する分布状況検出手段と、上記分布状況検出手段によって算出された上記連続空領域のサイズを管理単位の間で比較することにより、最も大きな上記連続空領域を有する管理単位を選択する比較手段とを備え、上記比較手段によって選択された上記管理単位に上記再配置データを記録する構成である。
【００５９】
それゆえ、最も大きな空領域に再配置データをひとまとめにして再記録することができ、ファイルの分断化が進む可能性を低減できるという効果を奏する。したがって、ファイルの分断化が進行することによりデータ記録装置の処理速度が低下する可能性を低減できるとともに、データの再配置処理の処理量を低減できるという効果を奏する。
【発明を実施するための最良の形態】
【００６０】
〔実施の形態１〕
本発明の実施の一形態について図１〜図１１に基づいて説明すれば、以下のとおりである。
【００６１】
（光ディスク２の構成）
まず、本実施形態のデータ記録装置１の記録媒体である光ディスク２の詳細について図２を用いて説明する。
【００６２】
光ディスク２は、データ記録装置１によりデータの読み書きが行われる記録媒体である。データ記録装置１の記録媒体は、例えば、磁気ディスク、半導体メモリであってもよいが、光ディスク２を例に挙げて説明する。なお、光ディスク２は、データ記録装置１の内部に備え付けられていてもよい。
【００６３】
図２は、光ディスク２におけるＥＣＣブロック（管理単位）の構成を示す概略図である。図２に示すように、光ディスク２は複数のＥＣＣブロック３０に分割され、各ＥＣＣブロック３０は一定の記録容量を有する複数のセクタ３１（記録単位）とエラー訂正符号記録領域３２から構成される。エラー訂正符号記録領域３２に記録されたエラー訂正符号データは、同じＥＣＣブロック３０の内部に記録されたデータのエラー訂正を実現するためのものである。また各セクタ３１には、光ディスク２の先頭から順にセクタ番号がふられており、このセクタ番号はデータの記録位置を特定するデータとして利用される。
【００６４】
次に、図３を用いて、光ディスク２におけるファイルシステムについて説明する。図３は、光ディスク２におけるファイルシステムを説明するための概略図であり、（ａ）はファイルが分断されていない場合を示し、（ｂ）はファイルが分断されている場合を示している。
【００６５】
同図（ａ）に示すように、ファイルシステムは、光ディスク２の任意の位置に記録されたデータ３３をファイル３４としてアクセスすることを実現する規格である。このファイルシステムにおいては、個々のファイル３４のファイル管理情報が光ディスク２の特定領域３５に記録され、このファイル管理情報をもとにファイル３４に対するアクセスが行われる。上記ファイル管理情報には、ファイル３４のファイルネーム、ファイル３４が記録されている位置（セクタ番号）、ファイル３４のサイズ、記録日時などが含まれる。
【００６６】
また、同図（ｂ）に示すように、データ３３はひとつの連続したセクタに記録されている必要はなく、複数の部分データに分断されて記録されてもよい。この場合には、それぞれの部分データの位置情報がファイルネームと関連付けられて、ファイル管理情報として特定領域３５に記録される。データ３３の部分データは連続するセクタの先頭から記録され、先頭のセクタのセクタ番号と部分データの長さとによって当該部分データの位置が管理される。
【００６７】
なお、ひとつのファイルを構成する複数の部分データが、それぞれ異なるＥＣＣブロックに記録されてもよい。この場合にも、上記セクタ番号は光ディスク２が有する全てのセクタに対して連番で付されているため、セクタ番号をたどることにより上記ファイルの部分データを特定できる。
【００６８】
上記ファイル管理情報は、図４に示すようなファイル管理テーブル３６を用いて管理されている。図４は、ファイル管理情報を管理するためのファイル管理テーブル３６の一例を示す図である。ファイル管理テーブル３６は、光ディスク２の特定領域３５に記録されており、ファイル管理情報を管理するためのテーブルである。各種のファイル管理情報は、ファイル管理テーブル３６の各フィールドにそれぞれ記録されており、例えば、ファイルサイズはInformation Lengthフィールド３７に記録されている。
【００６９】
これらのフィールドのうちAllocation Descriptorsフィールド３８に、ファイルの記録位置情報（管理単位特定情報）が記録されている。このAllocation Descriptorは、図５に示すように、ファイルが記録された１連続領域をExtent LengthとExtend Positionとによって管理するフォーマットである。ここで、図５は、Allocation Descriptorによるファイル管理方式を説明するための概略図である。Extend Lengthフィールド４０には、当該ファイルのサイズに関する情報が記録されており、Extend Positionフィールド４１には、当該ファイルの位置（先頭のセクタのセクタ番号）が記録されている。
【００７０】
ファイルが複数の部分データに分断されて記録される場合には、複数のAllocation Descriptorによって管理される。この複数のAllocation Descriptorは、当該部分データの記録順にAllocation Descriptorsフィールド３８に記録される。また、Allocation Descriptorsフィールド３８のサイズは、Length of Allocation Descriptorsフィールド３９に記録される。
【００７１】
次に、各セクタの使用状況を管理するシステムについて説明する。各セクタの使用状況、すなわち、どのセクタにデータが既に記録されており、どのセクタが未使用のセクタ（空セクタ）であるのかを検出する方式として、ＵＤＦファイルシステムにおけるSpace Bitmap Descriptorを利用する方式を挙げることができる。
【００７２】
図６は、セクタ管理テーブルの一例を示す図である。セクタ管理テーブル４２は、各セクタの使用状況を管理するためのテーブルである。セクタ管理テーブル４２においては、ファイルシステムによって管理される記録可能な全セクタに対し、１セクタを１ビットに換算してNumber of Bits、Number of Bytesが算出され、図６に示すように、それぞれのフィールド４３・４４に記録されている。
【００７３】
そして、これらのNumber of Bitsフィールド４３、Number of Bytesフィールド４４において、記録可能な全セクタに１ビットを割り当て、そのセクタにデータが記録されていれば対応しているビットを「１」とし、空セクタであれば対応しているビットを「０」とすることでデータの記録位置を管理している。仮に１ＥＣＣブロックが１６セクタから構成されていたとすると、各ＥＣＣブロックは２バイト単位で管理される。
【００７４】
上記セクタ管理テーブルは、特定領域３５に記録されており、このセクタ管理テーブルを参照すれば、どのセクタが使用されていない空セクタなのかを調べることができるとともに、ＥＣＣブロックごとのセクタの使用状況を調べることができる。
【００７５】
なお、部分データの長さはセクタよりも小さい単位、例えばバイト単位であってもよい。
【００７６】
また、先頭のセクタのセクタ番号と部分データの末端を含むセクタのセクタ番号とによって当該部分データの長さが管理されてもよい。その場合には、セクタよりも小さい単位、例えばバイト単位のオフセット情報があってもよい。
【００７７】
また、部分データは、セクタの先頭から記録されずに途中から記録されてもよい。その場合には、セクタよりも小さい単位、例えばバイト単位のオフセット情報によって管理されることが好ましい。
【００７８】
また、本実施の形態では１セクタに複数の部分データを含まない構成としているが、必ずしもその限りではなく、１セクタに複数の部分データを含む構成であってもよい。
【００７９】
（データ記録装置１の構成）
次にデータ記録装置１の構成について、図１、図７〜図８を用いて説明する。
【００８０】
図７は、本実施の形態のデータ記録装置１の構成を示す概略図である。図７に示すように、データ記録装置１は、光ディスク２にアクセスするためのドライブ３、入出力制御部４、データ記録部５、データ再配置部６、メモリ７、入力操作検出部８を備えている。
【００８１】
入出力制御部４は、データ記録部５またはデータ再配置部６から出力される読取り命令または書込み命令に従ってドライブ３を制御するものである。
【００８２】
データ記録部５は、メモリ７に記憶されているデータと、当該データのデータサイズ情報とを、入出力制御部４を介してドライブ３を制御することにより光ディスク２に書き込むものである。このデータ記録部５は、記録コントローラ１１、空領域探索部１２、キャッシュ部１３、管理情報記録部１４、記録エラー検出部１５から構成される。
【００８３】
記録コントローラ１１は、入力操作検出部８から出力された記録命令に従い、光ディスク２にデータを記録するための一連の処理を制御するものである。具体的には、記録コントローラ１１は、メモリ７から記録されるデータ（以下では、新規データと称する）および当該新規データのサイズを示すデータサイズ情報を取得し、空領域探索部１２へ管理情報取得命令およびデータサイズ情報を、キャッシュ部１３へデータ保持・記録命令を、管理情報記録部１４へ管理情報更新命令を、記録エラー検出部１５へ読出し命令を、それぞれ出力するとともに、各部からの応答を受け取り、新規データを光ディスク２に記録する処理を制御する。
【００８４】
空領域探索部１２は、新規データを書き込む空セクタを探索し、その探索結果を記録コントローラ１１へ出力するものである。
【００８５】
図１は、空領域探索部１２の構成を示す概略図である。図１に示すように、空領域探索部１２は、管理情報取得部１７、ＥＣＣブロック検索部１８、部分データ数算出部１９（分布状況検出手段）、部分データ数比較部２０（比較手段）を備えている。
【００８６】
管理情報取得部１７は、記録コントローラ１１から出力された管理情報取得命令を受け取ると、入出力制御部４を介して、光ディスク２から管理情報を取得するものである。上記管理情報とは、具体的には、特定領域３５に記録されているセクタ管理テーブルおよびファイル管理テーブルである。これらのテーブルの取得を終えると、管理情報取得部１７は、セクタ管理テーブルをＥＣＣブロック検索部１８へ、ファイル管理テーブルを部分データ数算出部１９へ出力する。
【００８７】
ＥＣＣブロック検索部１８は、記録コントローラ１１から出力されたデータサイズ情報および管理情報取得部１７から出力されたセクタ管理テーブルを基に、新規データを記録できるサイズの空セクタを含むＥＣＣブロックを検索するものである。この検索を終えると、ＥＣＣブロック検索部１８は、検索結果を部分データ数算出部１９へと出力する。
【００８８】
また、管理情報取得部１７およびＥＣＣブロック検索部１８はデータ再配置部６の再配置コントローラ１６とも接続されている。管理情報取得部１７は、再配置コントローラ１６からの命令に従い、入出力制御部４を介して光ディスク２から管理情報を取得するものでもある。また、ＥＣＣブロック検索部１８は、上記管理情報に基づいて、再配置されるデータ（以下では、再配置データと称する）を記録できるＥＣＣブロックを検索し、その検索結果を再配置コントローラ１６に返すものでもある。
【００８９】
部分データ数算出部１９は、ＥＣＣブロック検索部１８によって検索された、空セクタを有するＥＣＣブロックに含まれる、ファイルを構成する部分データの数（部分データ数）を算出するものである。この算出を終えると、部分データ数算出部１９は、算出結果を部分データ数比較部２０へ出力する。
【００９０】
なお、ＥＣＣブロック検索部１８によって、空セクタを含むＥＣＣブロックが複数見つけられた場合には、当該ＥＣＣブロックの全てに対して部分データ数の算出が行われてもよいし、当該ＥＣＣブロックの一部に対して上記算出が行われてもよい。
【００９１】
部分データ数比較部２０は、部分データ数算出部１９によって算出された各ＥＣＣブロックの部分データ数をそれぞれ比較し、部分データ数が最も小さいＥＣＣブロックを新規データを記録するＥＣＣブロック（以下では、記録先ＥＣＣブロックと称する）に指定するものである。この指定を終えると、部分データ数比較部２０は、指定結果を記録コントローラ１１へ出力する。
【００９２】
キャッシュ部１３は、新規データおよび当該新規データの記録先ＥＣＣブロックの全データを一時的に保存するためのキャッシュメモリを備えているものである。図８は、キャッシュ部１３の構成を示す概略図である。同図に示すように、キャッシュ部１３は、キャッシュメモリＡ２１、キャッシュメモリＢ２２、キャッシュコントローラ２３を備えている。
【００９３】
キャッシュメモリＡ２１は、記録コントローラ１１から出力された新規データを一時的に保持するためのメモリであり、キャッシュメモリＢ２２は、新規データの記録先となったＥＣＣブロックのデータを一時的に保持するためのメモリである。これらキャッシュメモリＡ２１・Ｂ２２は、少なくともＥＣＣブロックサイズの容量を有するものである。
【００９４】
キャッシュコントローラ２３は、記録コントローラ１１からの命令に従い、入出力制御部４を介して光ディスク２に対してデータの読み書きを行う処理を制御するものである。このデータの読み書きを行う場合に、キャッシュコントローラ２３は、記録コントローラ１１から受け取った新規データをキャッシュメモリＡ２１に保存し、光ディスク２から取得した、記録先のＥＣＣブロックのデータをキャッシュメモリＢ２２に保存する。
【００９５】
また、キャッシュコントローラ２３は、再配置コントローラ１６とも接続されており、再配置処理における再配置データの書込みを制御するものでもある。すなわち、キャッシュコントローラ２３は、再配置コントローラ１６からのデータ再記録命令に従い、入出力制御部４を介して、キャッシュメモリＢに保存された再配置データを再配置先セクタに記録するものである。
【００９６】
管理情報記録部１４は、新規データ書き込み時に、記録コントローラ１１から出力された管理情報更新命令を受け取り、特定領域３５に記録されたファイル管理テーブルおよびセクタ管理テーブルを更新するものである。
【００９７】
記録エラー検出部１５は、記録コントローラ１１の読出し命令に従い、記録先ＥＣＣブロックの読出しを行うことにより、記録処理および当該記録処理に伴うエラー訂正符号の更新が正常に行われたか否かを検査するものである。この検査を終えると、記録エラー検出部１５は、検査結果を記録コントローラ１１へ返す。
【００９８】
データ再配置部６は、再配置コントローラ１６を備えている。この再配置コントローラ１６は、記録エラー検出部１５から出力された記録エラーまたは入力操作検出部８から出力された再配置命令に従って、光ディスク２に既に記録されているデータを当該光ディスク２の別の領域に再配置するとともに、そのデータの管理情報を更新するものである。再配置コントローラ１６は、データ記録部５が備える、空領域探索部１２、キャッシュ部１３、管理情報記録部１４を制御することによりデータの再配置処理を行う。
【００９９】
メモリ７は、光ディスク２に書き込むデータを記憶するための記憶装置である。このメモリ７は、外部入力装置１０と接続することができ、当該外部入力装置１０からデータを受け取ってもよい。また、メモリ７は、光ディスク２から読み取ったデータを記憶してもよい。なお、このメモリ７は、必ずしもデータ記録装置１の内部に備えられている必要はなく、外付けの記憶装置であってもよい。
【０１００】
入力操作検出部８は、入力操作部９から入力された入力操作を検出し、当該入力操作に基づいて記録命令または再配置命令をデータ記録部５またはデータ再配置部６へ出力するものである。
【０１０１】
（データ記録処理の流れ）
次に光ディスク２にデータを記録する記録処理の流れについて図９を用いて説明する。図９は、記録処理の流れを説明するためのフローチャートである。
【０１０２】
ユーザからのデータ記録指示を検知した入力操作検出部８は、記録命令を記録コントローラ１１へ出力する。この記録命令を受け取った記録コントローラ１１は、メモリ７から新規データおよび当該新規データのサイズを示すデータサイズ情報を取得し（Ｓ１）、管理情報取得命令を空領域探索部１２の管理情報取得部１７へ、上記データサイズ情報を空領域探索部１２のＥＣＣブロック検索部１８へ出力する。
【０１０３】
管理情報取得命令およびデータサイズ情報を受け取ると、空領域探索部１２は、入出力制御部４を介して、光ディスク２の特定領域３５に記録されたセクタ管理テーブルおよびファイル管理テーブルを取得し、当該両管理テーブルおよび上記データサイズ情報を基に、上記新規データを記録するＥＣＣブロック（以下では、記録先ＥＣＣブロックと称する）を決定する（Ｓ２）。この記録先ＥＣＣブロックの決定方法の詳細については後述する。
【０１０４】
空領域探索部１２は、記録先ＥＣＣブロックを決定すると、その記録先ＥＣＣブロックの位置を示す管理情報を記録コントローラ１１へ出力する。当該管理情報を受け取ると、記録コントローラ１１は、キャッシュ部１３のキャッシュコントローラ２３へデータ保持・記録命令および新規データを出力する。当該データ保持・記録命令には、記録先ＥＣＣブロックの管理情報も含まれている。
【０１０５】
上記新規データおよびデータ保持・記録命令を受け取ると、キャッシュコントローラ２３は、当該新規データをキャッシュメモリＡ２１に保存するとともに、入出力制御部４を介して光ディスク２にアクセスし、記録先ＥＣＣブロックの全データを読み込み、当該データをキャッシュメモリＢ２２に保持する。その後、キャッシュコントローラ２３は、キャッシュメモリＡ２１に保持された新規データを、キャッシュメモリＢ２２に保持されたＥＣＣブロックの記録可能なセクタに記録し、当該ＥＣＣブロックのデータを入出力制御部４を介して、光ディスク２に書き戻す（Ｓ３）。この記録処理が終了すると、キャッシュコントローラ２３は、記録コントローラ１１へ記録終了情報を出力する。
【０１０６】
この記録終了情報を受け取ると、記録コントローラ１１は、管理情報記録部１４へ管理情報更新命令を出力する。当該管理情報更新命令には、記録先ＥＣＣブロックの管理情報も含まれている。
【０１０７】
この管理情報更新命令を受け取ると、管理情報記録部１４は、記録先ＥＣＣブロックのエラー訂正符号を更新するとともに、特定領域３５に記録されているファイル管理テーブルおよびセクタ管理テーブルを更新する（Ｓ４）。これらの更新処理が終了すると、管理情報記録部１４は、更新終了情報を記録コントローラ１１へ出力する。
【０１０８】
この更新終了情報を受け取ると、記録コントローラ１１は、記録エラー検出部１５へ読み出し命令を出力する。当該読み出し命令には、記録先ＥＣＣブロックの管理情報も含まれている。
【０１０９】
この読出し命令を受け取ると、記録エラー検出部１５は、記録先ＥＣＣブロックの読出しを行う（Ｓ５）。
【０１１０】
正常に読み出しが行われた場合には（Ｓ６にて、ＹＥＳ）、記録エラー検出部１５は、記録完了情報を記録コントローラ１１へ出力し、記録処理は終了する。
【０１１１】
一方、正常に読み出しが行われなかった場合には（Ｓ６にて、ＮＯ）、記録エラー検出部１５は、記録エラーを発生した記録先ＥＣＣブロックの管理情報を含む記録エラー情報を記録コントローラ１１へ出力する。この記録エラー情報を受け取ると、記録コントローラ１１は、記録エラーを生じたＥＣＣブロックに含まれるデータを再配置するための再配置命令を再配置コントローラ１６へ出力する。上記再配置命令には上記記録エラー情報も含まれている。
【０１１２】
なお、新規データは、複数のＥＣＣブロックに分割されて記録されてもよい。その場合には、新規データの部分データが記録された記録先ＥＣＣブロックの読み出しがそれぞれ行われ、記録エラーを生じた記録先ＥＣＣブロックに対して後述する再配置処理が行われる。
【０１１３】
（空領域探索部１２における処理の流れ）
次に、図１０を用いて、空領域探索部１２における記録先ＥＣＣブロックの決定方法の詳細について説明する。図１０は、本実施形態の空領域探索部１２における処理の流れを説明するためのフローチャートである。
【０１１４】
上記のように記録命令を受け取った記録コントローラ１１から、管理情報取得命令が管理情報取得部１７へ出力され、新規データのデータサイズ情報がＥＣＣブロック検索部１８へ出力される。
【０１１５】
管理情報取得命令を受け取ると、管理情報取得部１７は、入出力制御部４を介して光ディスク２の特定領域３５にアクセスし、ファイル管理テーブルおよびセクタ管理テーブルを取得し（Ｓ１１）、ファイル管理テーブルを部分データ数算出部１９へ出力し、セクタ管理テーブルをＥＣＣブロック検索部１８へ出力する。
【０１１６】
セクタ管理テーブルを受け取ると、ＥＣＣブロック検索部１８は、記録コントローラ１１から出力されたデータサイズ情報を基に、新規データを記録できるサイズの空セクタを含むＥＣＣブロック（以下では、記録可能ＥＣＣブロックと称する）を検索する（Ｓ１２）。具体的には、セクタ管理テーブルに示された各セクタの使用状況を検出し、空セクタの総数をＥＣＣブロックごとに算出する。そして、新規データのサイズよりも大きなサイズの空セクタを特定する。
【０１１７】
このとき、全てのＥＣＣブロックに対し検索を行ってもよいし、検索時間を考慮して、一部のＥＣＣブロックに対し検索を行ってもよい。また、新規データの全てを記録できるＥＣＣブロックがない場合には、新規データを複数の部分データに分断して、空セクタを含む複数のＥＣＣブロックに記録してもよい。この場合には、空セクタを含む複数のＥＣＣブロックの集合を記録可能ＥＣＣブロックとすればよい。
【０１１８】
ここで、記録可能ＥＣＣブロックが見つからなければ（Ｓ１３にて、ＮＯ）、空セクタが不足していることを示す空セクタ不足情報を記録コントローラ１１へ出力する。
【０１１９】
空セクタ不足情報を受け取ると、記録コントローラ１１は、空セクタが不足している旨を図示しない表示部を介してユーザに報知し、データ記録処理を終了する。
【０１２０】
一方、記録可能ＥＣＣブロックが見つかれば（Ｓ１３にて、ＹＥＳ）、ＥＣＣブロック検索部１８は、当該記録可能ＥＣＣブロックの管理情報を部分データ数算出部１９へ出力する。ここで、記録可能ＥＣＣブロックが複数見つかれば、見つかった全ての記録可能ＥＣＣブロックの管理情報を出力してもよいし、その一部のみを出力してもよい。
【０１２１】
記録可能ＥＣＣブロックの管理情報を受け取ると、部分データ数算出部１９は、当該記録可能ＥＣＣブロックの部分データ数をそれぞれ算出し（Ｓ１４）、その算出結果を部分データ数比較部２０へ出力する。上記部分データ数は、具体的には、管理情報取得部１７から出力されたファイル管理テーブルのAllocation Descriptorsフィールドを参照し、上記記録可能ＥＣＣブロックに含まれる、ファイルの部分データの数を算出することによって求められる。
【０１２２】
上記部分データ数を受け取ると、部分データ数比較部２０は、各記録可能ＥＣＣブロックの部分データ数を比較し、部分データ数の最も小さい記録可能ＥＣＣブロックを記録先ＥＣＣブロックとして指定する（Ｓ１５）。そして、部分データ数比較部２０は、当該記録先ＥＣＣブロックの管理情報を、記録コントローラ１１へ出力する。
【０１２３】
上記記録先ＥＣＣブロックの管理情報を受け取ると、記録コントローラ１１は、当該記録先ＥＣＣブロックに含まれる全てのデータを保持するようにキャッシュ部１３のキャッシュコントローラ２３へデータ保持・記録命令を出力する。これ以降の処理は上述の通りである。
【０１２４】
（再配置処理の流れ）
次に図１１を用いて、再配置処理の流れについて説明する。図１１は、再配置処理の流れを説明するためのフローチャートである。
【０１２５】
まず、再配置命令を受け取ると、再配置コントローラ１６は、管理情報取得命令を空領域探索部１２の管理情報取得部１７へ出力し、再配置対象であるＥＣＣブロックを示す記録エラー情報をＥＣＣブロック検索部１８へ出力する。
【０１２６】
この管理情報取得命令を受け取ると、管理情報取得部１７は、特定領域３５に記録されたセクタ管理テーブルを取得し（Ｓ２１）、セクタ管理テーブルをＥＣＣブロック検索部１８へ出力する。
【０１２７】
このセクタ管理テーブルを受け取ると、ＥＣＣブロック検索部１８は、セクタ管理テーブルおよび記録エラー情報に基づき、再配置対象となったＥＣＣブロックに含まれる再配置データを記録できるサイズを有する空セクタ（以下では、再配置先セクタと称する）を検索する（Ｓ２２）。
【０１２８】
ここで、再配置先セクタが見つからなければ、空セクタが不足していることを示す空セクタ不足情報を再配置コントローラ１６へ出力する（Ｓ２３にて、ＮＯ）。その後、再配置コントローラ１６は、空セクタが不足している旨を図示しない表示部を介して報知し（Ｓ２４）、再配置処理およびデータ記録処理を終了する。
【０１２９】
一方、再配置先セクタが見つかれば（Ｓ２３にて、ＹＥＳ）、ＥＣＣブロック検索部１８は、当該再配置先セクタの管理情報を再配置コントローラ１６へ出力する。
【０１３０】
上記再配置先セクタの管理情報を受け取ると、再配置コントローラ１６は、キャッシュ部１３のキャッシュコントローラ２３へ上記管理情報を含むデータ記録命令を出力する。
【０１３１】
このデータ記録命令を受け取ったキャッシュコントローラ２３は、上記管理情報に基づいて、キャッシュメモリＡ２１に保持されている新規データと、キャッシュメモリＢ２２に保持されている再配置データとを再配置先セクタに記録する（Ｓ２５）。この記録が終了すれば、キャッシュコントローラ２３は、再配置コントローラ１６へ記録終了情報を出力する。
【０１３２】
この記録終了情報を受け取ると、再配置コントローラ１６は、管理情報記録部１４へ管理情報更新命令を出力する。当該管理情報更新命令には、再配置先セクタの管理情報も含まれている。
【０１３３】
この管理情報更新命令を受け取ると、管理情報記録部１４は、当該管理情報更新命令に基づいて再配置先セクタを有するＥＣＣブロックのエラー訂正符号を更新するとともに、特定領域３５に記録されているファイル管理テーブルおよびセクタ管理テーブルを更新する（Ｓ２６）。
【０１３４】
再配置データに複数の部分データが含まれる場合には、全ての部分データの再配置処理が終わるまで上記の再配置処理が繰り返される（Ｓ６にて、ＮＯ）。そして、全ての再配置処理が終了すれば（Ｓ６にて、ＹＥＳ）、一連の再配置処理は終了する。
【０１３５】
これらの更新処理が終了すると、管理情報記録部１４は、更新終了情報を再配置コントローラ１６へ出力する。
【０１３６】
なお、再配置される部分データは、連続した空セクタに再記録されることが望ましいが、連続した空セクタに再記録できない場合には、当該部分データを分断し、複数の空セクタに再記録してもよい。
【０１３７】
（効果）
上記のように、再配置処理には複数のステップが含まれており、特に再配置データに、異なるファイルを構成する部分データが多数含まれている場合には、管理情報記録部１４によるファイル管理テーブルの更新に要する処理量は増大する。
【０１３８】
本実施形態の空領域探索部１２によって、各ＥＣＣブロックに含まれる部分データの数は平均化され、著しく部分データ数の大きいＥＣＣブロックが発生する可能性が低減される。その結果、ＥＣＣブロックの再配置が必要になった場合、例えば記録エラーが発生した場合に行われる再配置処理の処理量は低減する可能性が高い。
【０１３９】
具体的には、空領域探索部１２による再配置先セクタの探索に要する処理量、キャッシュ部１３によるデータの保持・記録に要する処理量、および管理情報記録部１４によるファイル管理テーブルおよびセクタ管理テーブルの更新に要する処理量を低減することができる。
【０１４０】
また、ファイルの追記および更新のたびにＥＣＣブロックのデータが更新されるため、ＥＣＣブロックの部分データ数が多くなると、当該ＥＣＣブロックのデータが更新される可能性も高くなる。したがって、ＥＣＣブロックの部分データ数が平均化されることによって、各ＥＣＣブロックの更新回数も平均化される可能性が高くなる。
【０１４１】
その結果、光ディスク２の劣化によって記録エラーが発生する可能性が低減することにより、再配置処理が必要になる可能性が少なくなり、データ記録装置１のパフォーマンスが良くなる。
【０１４２】
（変更例）
なお、再配置処理を行う場合に、データ再配置部６は、データ記録部５を介さずに、ドライブ３を制御して光ディスク２にアクセスしてもよい。その場合には、データ再配置部６は、空領域探索部１２、キャッシュ部１３、管理情報記録部１４と同様の機能を持つものをいずれかひとつ、または全てを備えていてもよい。
【０１４３】
また、上記の構成では、記録コントローラ１１により、空領域探索部１２、キャッシュ部１３、管理情報記録部１４、記録エラー検出部１５がそれぞれ独立に制御されているが、空領域探索部１２、キャッシュ部１３、管理情報記録部１４、記録エラー検出部１５が互いに接続され、各種情報の伝達を行う構成にしてもよい。
【０１４４】
また、上記の構成では、部分データ数は、新規データを記録するたびに算出されているが、部分データ数を管理する部分データ数管理テーブルを設け、当該部分データ数管理テーブルを参照することにより部分データ数を求めてもよい。この場合には、新規データの記録時に部分データ数管理テーブルを更新する構成にすればよい。また、部分データ数管理テーブルは、メモリ７に記録されていてもよい。
【０１４５】
また、上記の構成では、新規データを記録する場合に、ＥＣＣブロック検索部１８は、記録可能ＥＣＣブロックを検索しているが、単に空きセクタを有するＥＣＣブロックを検索してもよい。
【０１４６】
また、新規データの全てを記録できるＥＣＣブロックが見つからない場合には、当該新規データを複数の部分データに分割し、部分データ数の最も小さいＥＣＣブロックから順に当該部分データの記録先に指定してもよい。
【０１４７】
〔実施の形態２〕
本発明の他の実施形態について図１２〜図１４に基づいて説明すれば、以下のとおりである。なお、実施の形態１と同様の部材に関しては、同じ符号を付し、その説明を省略する。
【０１４８】
図１２は、本実施形態のデータ記録装置５０の構成を示す概略図である。
【０１４９】
図１２に示すように、本実施形態のデータ記録装置５０と上述のデータ記録装置１との違いは、データ記録装置５０が空領域探索部１２とは異なる空領域探索部５１を備えている点にある。
【０１５０】
図１３は、空領域探索部５１の構成を示す概略図である。図１３に示すように、空領域探索部５１は、管理情報取得部１７、ＥＣＣブロック検索部１８、データ占有率算出部５２（分布状況検出手段）、データ占有率比較部５３（比較手段）を備えている。
【０１５１】
管理情報取得部１７およびＥＣＣブロック検索部１８は、空領域探索部１２に備えられたものと同様のものであるため、その説明を省略する。
【０１５２】
データ占有率算出部５２は、ＥＣＣブロック検索部１８によって検索された記録可能ＥＣＣブロックのデータ占有率を算出するものである。上記データ占有率とは、ひとつのＥＣＣブロックに含まれるセクタのうち、どれだけのセクタに既にデータが記録されているのかを示す割合である。この算出を終えると、データ占有率算出部５２は、算出結果をデータ占有率比較部５３へ出力する。
【０１５３】
なお、ＥＣＣブロック検索部１８によって記録可能ＥＣＣブロックが複数見つけられた場合には、全ての記録可能ＥＣＣブロックに対してデータ占有率の算出を行ってもよいし、一部の記録可能ＥＣＣブロックに対して上記算出を行ってもよい。
【０１５４】
データ占有率比較部５３は、データ占有率算出部５２によって算出された、記録可能ＥＣＣブロックのデータ占有率をそれぞれ比較し、データ占有率が最も低い記録可能ＥＣＣブロックを記録先ＥＣＣブロックに指定するものである。この指定を終えると、データ占有率比較部５３は、その指定結果を記録コントローラ１１へ出力する。
【０１５５】
（記録処理の流れ）
次に光ディスク２にデータを記録する場合の処理の流れについて図１４を用いて説明する。図１４は、空領域探索部５１における処理の流れを説明するためのフローチャートである。記録コントローラ１１が、管理情報取得命令を出力するまでの処理と、データ保持・記録命令を出力した後の処理とについては、データ記録装置１と同様のため、その説明を省略する。
【０１５６】
記録コントローラ１１から出力された管理情報取得命令を受け取ると、管理情報取得部１７は、入出力制御部４を介して特定領域３５にアクセスし、セクタ管理テーブルを取得し（Ｓ３１）、ＥＣＣブロック検索部１８へ出力する。
【０１５７】
このセクタ管理テーブルおよび記録コントローラ１１から出力された新規データのデータサイズ情報を受け取ると、ＥＣＣブロック検索部１８は、上記データサイズ情報を基に、新規データを記録できる記録可能ＥＣＣブロックを検索する（Ｓ３２）。
【０１５８】
このとき、全てのＥＣＣブロックに対し検索を行ってもよいし、検索時間を考慮して、一部のＥＣＣブロックに対し検索を行ってもよい。また、新規データの全てを記録できるＥＣＣブロックがない場合には、新規データを複数の部分データに分断して、空セクタを含む複数のＥＣＣブロックに記録してもよい。この場合には、空セクタを含む複数のＥＣＣブロックの集合を記録可能ＥＣＣブロックとすればよい。
【０１５９】
ここで、記録可能ＥＣＣブロックが見つからなければ、空セクタが不足していることを示す空セクタ不足情報を記録コントローラ１１へ出力する（Ｓ３３にて、ＮＯ）。
【０１６０】
空セクタ不足情報を受け取ると、記録コントローラ１１は、空セクタが不足している旨を図示しない表示部を介して報知し（Ｓ３４）、データ記録処理を終了する。
【０１６１】
一方、記録可能ＥＣＣブロックが見つかれば（Ｓ３３にて、ＹＥＳ）、ＥＣＣブロック検索部１８は、当該ＥＣＣブロックの管理情報をデータ占有率算出部５２へ出力する。ここで、記録可能ＥＣＣブロックが複数見つかれば、見つかった全てのＥＣＣブロックの情報を出力してもよいし、その一部のみを出力してもよい。
【０１６２】
記録可能ＥＣＣブロックの管理情報を受け取ると、データ占有率算出部５２は、当該記録可能ＥＣＣブロックのデータ占有率を算出し（Ｓ３５）、その算出結果をデータ占有率比較部５３へ出力する。
【０１６３】
上記算出結果を受け取ると、データ占有率比較部５３は、記録可能ＥＣＣブロックのデータ占有率を比較し、データ占有率の最も小さい記録可能ＥＣＣブロックを新規データの記録先ＥＣＣブロックに指定する（Ｓ３６）。そして、データ占有率比較部５３は、当該記録先ＥＣＣブロックの管理情報を記録コントローラ１１へ出力する。
【０１６４】
記録コントローラ１１は、上記記録先ＥＣＣブロックに含まれる全てのデータを保持するようにキャッシュ部１３のキャッシュコントローラ２３へデータ保持・記録命令を出力する。これ以降の処理はデータ記録装置１における処理と同様である。
【０１６５】
また、再配置処理は、データ記録装置１におけるものと同様のため、その説明を省略する。
【０１６６】
（効果）
ここで、空領域探索部５１により再配置処理の処理量が低減する理由について説明する。
【０１６７】
ファイルサイズＦは、ＥＣＣブロックサイズＥにより以下のように表せる。
Ｆ＝ａＥ＋ｂ  （ａ、ｂは任意の数、ｂ＜Ｅ）
ファイルサイズの統計的分布に偏りがないと仮定すると、ｂの平均値はＥ／２となる。つまり、使用されているセクタの割合が半分以上であるＥＣＣブロックには部分データが複数ある確率が高く、半分未満であるＥＣＣブロックには部分データが２つ未満である確率が高い。
【０１６８】
本実施形態の空領域探索部５１によって、各ＥＣＣブロックにおけるセクタの使用割合は平均化される。その結果、各ＥＣＣブロックに含まれる部分データの数が平均化される可能性が高くなり、著しく部分データ数の多いＥＣＣブロックが発生する可能性が低減する。それゆえ、ＥＣＣブロックの再配置が必要になった場合、例えば記録エラーが発生した場合に行われる再配置処理の処理量は低減する可能性が高い。
【０１６９】
具体的には、空領域探索部５１による再配置先セクタの探索に要する処理量、キャッシュ部１３によるデータの保持・記録に要する処理量、および管理情報記録部１４によるファイル管理テーブルおよびセクタ管理テーブルの更新に要する処理量を低減することができる。
【０１７０】
また、ファイルの追記および更新のたびにＥＣＣブロックのデータが更新されるため、ＥＣＣブロックの部分データ数が多くなると、当該ＥＣＣブロックのデータが更新される可能性も高くなる。したがって、ＥＣＣブロックの部分データ数が平均化されることによって、各ＥＣＣブロックの更新回数も平均化される可能性が高くなる。
【０１７１】
その結果、光ディスク２の劣化によって記録エラーが発生する可能性が低減することにより、再配置処理が必要になる可能性が少なくなり、データ記録装置５０のパフォーマンスが向上する。
【０１７２】
（変更例）
なお、上記の構成では、記録コントローラ１１により、空領域探索部５１、キャッシュ部１３、管理情報記録部１４、記録エラー検出部１５がそれぞれ独立に制御されているが、空領域探索部５１、キャッシュ部１３、管理情報記録部１４、記録エラー検出部１５が互いに接続され、各種情報の伝達を行う構成にしてもよい。
【０１７３】
また、上記の構成では、新規データを記録する場合に、ＥＣＣブロック検索部１８は、記録可能ＥＣＣブロックを検索しているが、単に空きセクタを有するＥＣＣブロックを検索してもよい。
【０１７４】
また、新規データを記録する場合に、ＥＣＣブロック検索部１８によるＥＣＣブロックの検索を行わずに、最もデータ占有率の低いＥＣＣブロックを特定し、当該ＥＣＣブロックに新規データを記録できるか否かを検査してもよい。
【０１７５】
また、新規データの全てを記録できるＥＣＣブロックが見つからない場合には、当該新規データを複数の部分データに分割し、データ占有率の最も低いＥＣＣブロックから順に当該部分データの記録先に指定してもよい。
【０１７６】
〔実施の形態３〕
本発明の他の実施形態について図１５〜図１７に基づいて説明すれば、以下のとおりである。なお、実施の形態１と同様の部材に関しては、同じ符号を付し、その説明を省略する。
【０１７７】
図１５は、本実施形態のデータ記録装置６０の構成を示す概略図である。
【０１７８】
図１５に示すように、本実施形態のデータ記録装置６０と上述のデータ記録装置１との違いは、データ記録装置６０が空領域探索部１２とは異なる空領域探索部６１、および、記録コントローラ１１とは異なる記録コントローラ６５を備えている点にある。
【０１７９】
記録コントローラ６５と記録コントローラ１１との違いは、記録コントローラ６５は、データサイズ情報をＥＣＣブロック検索部１８ではなく後述する連続空領域比較部６４に出力する点である。
【０１８０】
図１６は、空領域探索部の構成を示す概略図である。図１６に示すように、空領域探索部６１は、管理情報取得部１７、ＥＣＣブロック検索部６２、連続空領域探索部６３（分布状況検出手段）、連続空領域比較部６４（比較手段）を備えている。
【０１８１】
管理情報取得部１７は、空領域探索部１２に備えられたものと同様のものであるため、その説明を省略する。
【０１８２】
ＥＣＣブロック検索部６２は、管理情報取得部１７から出力されるセクタ管理テーブルを参照し、空セクタを含むＥＣＣブロックを探索するものである。ＥＣＣブロック検索部６２は、探索結果を連続空領域探索部６３へ出力する。
【０１８３】
連続空領域探索部６３は、ＥＣＣブロック検索部６２によって検索された、空セクタを含むＥＣＣブロックに含まれる連続空セクタのサイズを算出するものである。上記連続空セクタとは、空セクタが連続している領域である。この算出を終えると、連続空領域探索部６３は、算出結果を連続空領域比較部６４へ出力する。
【０１８４】
なお、ＥＣＣブロック検索部６２によって、空セクタを含むＥＣＣブロックが多数見つけられた場合には、全てのＥＣＣブロックに対して上記算出を行ってもよいし、複数のＥＣＣブロックのうち、一部に対して上記算出を行ってもよい。
【０１８５】
連続空領域比較部６４は、連続空領域探索部６３によって算出された連続空セクタのサイズをそれぞれ比較し、新規データのサイズ以下で、かつ最大のサイズの連続空セクタを特定し、当該連続空セクタを新規データの記録先に指定するものである。この指定を終えると、連続空領域比較部６４は、指定結果を記録コントローラ６５へ出力する。
【０１８６】
（記録処理の流れ）
次に光ディスク２にデータを記録する場合の記録処理の流れについて図１７を用いて説明する。図１７は、空領域探索部６１における処理の流れを説明するためのフローチャートである。記録コントローラ６５が、データ保持・記録命令を出力した後の処理については、データ記録装置１と同様のため、その説明を省略する。
【０１８７】
記録コントローラ６５は、記録命令を受け取ると、新規データのデータサイズ情報を空領域探索部６１の連続空領域比較部６４へ出力し、管理情報取得命令を管理情報取得部１７へ出力する。
【０１８８】
この管理情報取得命令を受け取ると、管理情報取得部１７は、入出力制御部４を介して特定領域３５にアクセスし、セクタ管理テーブルを取得し（Ｓ４１）、ＥＣＣブロック検索部６２へ出力する。
【０１８９】
このセクタ管理テーブル受け取ると、ＥＣＣブロック検索部６２は、当該セクタ管理テーブルを基に空セクタを含むＥＣＣブロックを検索する（Ｓ４２）。このとき、全てのＥＣＣブロックに対し検索を行ってもよいし、検索時間を考慮して、一部のＥＣＣブロックに対し検索を行ってもよい。
【０１９０】
ここで、空セクタ含むＥＣＣブロックが見つからなければ（Ｓ４３にて、ＮＯ）、空セクタが不足していることを示す空セクタ不足情報を記録コントローラ６５へ出力する。
【０１９１】
空セクタ不足情報を受け取ると、記録コントローラ６５は、空セクタが不足している旨を図示しない表示部を介して報知し（Ｓ４４）、データ記録処理を終了する。
【０１９２】
一方、空セクタ含むＥＣＣブロックが見つかれば（Ｓ４３にて、ＹＥＳ）、ＥＣＣブロック検索部６２は、当該空セクタの管理情報を連続空領域探索部６３へ出力する。ここで、空セクタ含むＥＣＣブロックが多数見つかれば、見つかった全てのＥＣＣブロックの情報を出力してもよいし、見つかったのＥＣＣブロックの一部を出力してもよい。
【０１９３】
空セクタ含むＥＣＣブロックの管理情報を受け取ると、連続空領域探索部６３は、当該空セクタ含むＥＣＣブロックの連続空セクタのサイズを算出し（Ｓ４５）、その算出結果を連続空領域比較部６４へ出力する。
【０１９４】
上記算出結果を受け取ると、連続空領域比較部６４は、各ＥＣＣブロックの連続空セクタのサイズと新規データのサイズとの差を算出する（Ｓ４６）。このとき、新規データのデータサイズの方が大きかった場合には、差は負の値で示される。
【０１９５】
次に、算出された差を比較し、負の値がなかった場合、すなわちデータサイズ以下のサイズの連続空セクタがなかった場合には（Ｓ４７にて、ＮＯ）、最も小さな正の値を示す差を有する連続空セクタ、すなわち新規データのサイズに最も近いサイズの連続空セクタを新規データの記録先に指定する（Ｓ４８）。そして、連続空領域比較部６４は、指定した記録先セクタの管理情報を記録コントローラ６５へ出力する。
【０１９６】
一方、上記差が負の値であるものがあった場合、すなわち、新規データのデータサイズ以下のサイズの連続空セクタがあった場合には（Ｓ４７にて、ＹＥＳ）、新規データのデータサイズ以下で、かつ最大の連続空セクタを新規データの第１記録先セクタに指定する（Ｓ４９）。
【０１９７】
そして、上記連続空セクタに記録しきれずに残る新規データの部分データのサイズを新たなデータサイズ情報とし（Ｓ５０）、当該部分データを記録する第２連続空セクタを再度探索する（Ｓ４２に戻る）。
【０１９８】
全ての部分データの記録先が指定されれば、連続空領域比較部６４は、指定した記録先セクタの管理情報を記録コントローラ６５へ出力する。
【０１９９】
記録コントローラ６５は、上記記録先セクタを有するＥＣＣブロックに含まれる全てのデータを保持するようにキャッシュ部１３のキャッシュコントローラ２３へデータ保持・記録命令を出力する。これ以降の処理はデータ記録装置１における処理と同様である。
【０２００】
また、再配置処理は、データ記録装置１と同様に行われるため、その説明を省略する。
【０２０１】
（効果）
ここで、空領域探索部６１により再配置処理の処理量が低減する理由について説明する。
【０２０２】
本実施形態の空領域探索部６１によって、新規データのデータサイズ以下で、かつ最大の連続空セクタが記録先セクタに指定される。その結果、すべてのセクタが使用されているＥＣＣブロックを増やすことができる。
【０２０３】
すべてのセクタが使用されているＥＣＣブロックには、それ以上データは書き込まれないため、当該ＥＣＣブロックが劣化する可能性は低減する。それゆえ、当該ＥＣＣブロックに対して読取りエラーが発生する可能性が低減する。
【０２０４】
また、新規データのサイズ以下で、かつ最大の連続空セクタに優先的に当該新規データを記録していくため、新規データが分断される可能性が低減される。その結果、部分データ数の大きな管理単位が発生する可能性を低減することができ、再配置処理に多大な時間を要するＥＣＣブロックが発生する可能性を低減できる。
【０２０５】
それゆえ、再配置処理が必要になる可能性が少なくなるとともに再配置処理の処理量が低減され、データ記録装置６０のパフォーマンスが向上する。
【０２０６】
（変更例）
なお、上記の構成では、記録コントローラ１１により、空領域探索部６１、キャッシュ部１３、管理情報記録部１４、記録エラー検出部１５がそれぞれ独立に制御されているが、空領域探索部６１、キャッシュ部１３、管理情報記録部１４、記録エラー検出部１５が互いに接続され、各種情報の伝達を行う構成にしてもよい。
【０２０７】
また、記録処理を行う場合に、ＥＣＣブロック検索部６２による空セクタを含むＥＣＣブロックの探索を行わずに、連続空領域探索部６３によりデータサイズ以下のサイズを有する連続空セクタを探索し、連続空領域比較部６４によりデータサイズ以下で、かつ最大のデータサイズを有する連続空セクタを特定してもよい。
【０２０８】
また、連続空領域探索部６３は、連続空セクタをリストアップした連続空セクタテーブルを作成し、連続空領域比較部６４は、当該連続空セクタ管理テーブルを参照して再配置データの再配置先を決定してもよい。また、連続空領域探索部６３は、連続空セクタ管理テーブルを記録処理および再配置処理が行われるごとに更新してもよい。
【０２０９】
〔実施の形態４〕
本発明のさらに他の実施形態について図１８〜図２０に基づいて説明すれば、以下のとおりである。なお、実施の形態１と同様の部材に関しては、同じ符号を付し、その説明を省略する。
【０２１０】
図１８は、本実施形態のデータ記録装置７０の構成を示す概略図である。
【０２１１】
図１８に示すように、本実施形態のデータ記録装置７０と上述のデータ記録装置１との違いは、データ再配置部６が空領域探索部７１、再配置コントローラ７５を備えている点にある。
【０２１２】
再配置コントローラ７５と再配置コントローラ１６との違いは、再配置コントローラ７５は、再配置処理を行う場合に、空領域探索部１２ではなく空領域探索部７１を用いて再配置先セクタを決定する点である。再配置コントローラ７５は、再配置命令を受け取ると、管理情報取得部７２へ管理情報取得命令を出力し、再配置領域比較部７４へ再配置データのデータサイズ情報を出力するものである。
【０２１３】
図１９は、空領域探索部７１の構成を示す概略図である。同図に示すように、空領域探索部７１は、管理情報取得部７２、再配置領域探索部７３（分布状況検出手段）、再配置領域比較部７４（比較手段）を備えている。
【０２１４】
管理情報取得部７２は、空領域探索部１２に備えられたものと同様のものであるため、その説明を省略する。
【０２１５】
再配置領域探索部７３は、セクタ管理テーブルを基に各ＥＣＣブロックの連続空セクタのサイズを算出するものである。この算出処理は、全てのＥＣＣブロックに対して行われてもよいし、処理時間を考慮して一部のＥＣＣブロックに対して行われてもよい。この算出を終えると、再配置領域探索部７３は、算出結果を再配置領域比較部７４へ出力する。
【０２１６】
再配置領域比較部７４は、再配置領域探索部７３によって算出された連続空セクタのサイズをそれぞれ比較し、連続空セクタが最も大きいＥＣＣブロックを再配置データの記録先ＥＣＣブロックに指定するものである。この指定を終えると、再配置領域比較部７４は、記録先ＥＣＣブロックの管理情報を再配置コントローラ７５へ出力する。
【０２１７】
（再配置処理の流れ）
次に再配置処理の流れについて図２０を用いて説明する。図２０は、再配置処理の流れを説明するためのフローチャートである。
【０２１８】
データ記録装置１が行う再配置処理と異なっている点は、再配置コントローラ７５がデータ記録部５の空領域探索部１２を利用せずにデータ再配置部６に備えられた空領域探索部７１を利用する点である。
【０２１９】
再配置命令を受け取ると、再配置コントローラ７５は、管理情報取得命令を空領域探索部７１の管理情報取得部７２へ出力し、再配置データのデータサイズ情報を再配置領域比較部７４へ出力する。
【０２２０】
図２０に示すように、この管理情報取得命令を受け取ると、管理情報取得部７２は、特定領域３５にアクセスし、セクタ管理テーブルを取得する（Ｓ５１）。そして、管理情報取得部７２は、取得したセクタ管理テーブルを再配置領域探索部７３へ出力する。
【０２２１】
このセクタ管理テーブルを受け取ると、再配置領域探索部７３は、当該セクタ管理テーブルに基づき、各ＥＣＣブロックの連続空セクタのサイズを算出する（Ｓ５２）。このとき、全てのＥＣＣブロックに対し検索を行ってもよいし、検索時間を考慮して、一部のＥＣＣブロックに対し検索を行ってもよい。
【０２２２】
ここで、空セクタ含むＥＣＣブロックが見つからなければ（Ｓ５３にて、ＮＯ）、空セクタが不足していることを示す空セクタ不足情報を再配置コントローラ７５へ出力する。
【０２２３】
空セクタ不足情報を受け取ると、再配置コントローラ７５は、空セクタが不足している旨を図示しない表示部を介して報知し（Ｓ５４）、再配置処理を終了する。
【０２２４】
空セクタを含むＥＣＣブロックが見つかれば（Ｓ５３にて、ＹＥＳ）、各連続空セクタのサイズを算出した結果を再配置領域比較部７４へ出力する。
【０２２５】
上記算出結果を受け取ると、再配置領域比較部７４は、各連続空セクタのサイズを互いに比較し、最も大きい連続空セクタを特定する（Ｓ５５）。そして、再配置領域比較部７４は、当該連続空セクタのサイズと再配置データのサイズとを比較する（Ｓ５６）。
【０２２６】
再配置データのサイズの方が小さい場合、すなわち、上記連続空セクタに上記再配置データを記録できる場合には（Ｓ５６にて、ＹＥＳ）、当該連続空セクタを再配置データの再配置先セクタに指定する（Ｓ５７）。
【０２２７】
一方、再配置データのサイズの方が大きい場合、すなわち、上記連続空領域に上記再配置データを記録できない場合には（Ｓ５６にて、ＮＯ）、当該連続空セクタを第１再配置先セクタに指定する（Ｓ５８）。
【０２２８】
そして、当該再配置先セクタに記録しきれない再配置データのサイズを新たなデータサイズ情報とし（Ｓ５９）、再配置領域探索部７３による空セクタの探索を再度行う（Ｓ５２に戻る）。すなわち、残りの再配置データを記録できる第２連続空セクタを探索する。
【０２２９】
すべての再配置データの再配置先セクタが指定されれば、再配置領域比較部７４は、再配置先セクタの管理情報を再配置コントローラ７５へ出力する。
【０２３０】
これ以降の処理は、データ記録装置１における再配置処理と同様のため、説明は省略する。
【０２３１】
（効果）
上記のように、空領域探索部７１を利用することにより、再配置データが最も大きな空セクタを有するＥＣＣブロックに再記録される。全てのセクタが使用されていない未使用のＥＣＣブロックが存在する場合には、当該未使用のＥＣＣブロックに優先的に再配置データが記録される。
【０２３２】
その結果、再配置データが複数のＥＣＣブロックに分断されて再記録されることにより新たな部分データが生じる可能性を低減できる。
【０２３３】
また、空領域探索がＥＣＣブロック単位となるため簡易になるとともに、物理的なアクセスもキャッシュされたデータを１ＥＣＣブロックに記録するのみと簡易になる。
【０２３４】
その結果、データ記録装置７０のパフォーマンスが向上する。ただし、特定領域３５に記録された管理データの更新の処理量は、再配置データの状態に依存する。
【０２３５】
（変更例）
なお、図１８に示すように、データ記録装置７０のデータ記録部５は空領域探索部１２を備えているが、空領域探索部１２の代わりに空領域探索部５１または空領域探索部６１を備えていてもよい。
【０２３６】
また、空領域探索部７１をデータ記録装置１、データ記録装置５０、データ記録装置６０にそれぞれ備えてもよい。
【０２３７】
また、再配置領域探索部７３は、連続空セクタをリストアップした連続空セクタテーブルを作成し、再配置領域比較部７４は、当該連続空セクタ管理テーブルを参照して再配置データの再配置先を決定してもよい。また、再配置領域探索部７３は、連続空セクタ管理テーブルを記録処理および再配置処理が行われるごとに更新してもよい。
【０２３８】
また、再配置領域探索部７３は全てのセクタが使用されていない未使用のＥＣＣブロックを探索し、再配置領域比較部７４は当該未使用のＥＣＣブロックを再配置先に指定してもよい。
【０２３９】
また、未使用のＥＣＣブロックにデータを記録する場合には、当該ＥＣＣブロックのデータを保持する必要はないため、キャッシュメモリＢ２２によるデータの保持を行わなくてもよい。
【０２４０】
また、上記の構成では、管理単位としてＥＣＣブロックを例に挙げているが、管理単位は、エラー訂正とは関係のない、複数のセクタから構成される物理アクセス単位となるブロック（クラスタ）であってもよい。また、ＥＣＣブロック、セクタは、同様の機能、特徴を有するものであれば、その名称は問わない。
【０２４１】
また、ファイル管理用のテーブルおよびデータの記録位置管理用のテーブルは、上記のものに限定されず、ファイルの管理およびデータの記録位置の管理が適切に行えるものであればどのようなものを適用してもよい。また、ファイル管理用のテーブルおよびデータの記録位置管理用のテーブルは、一体となっていてもよい。また、ファイル管理テーブルが光ディスク２に記録されている場合には、セクタ管理テーブルは光ディスク２に記録されていなくてもよい。
【０２４２】
また、データ記録装置１、データ記録装置５０、データ記録装置６０、データ記録装置７０の各手段は、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって構成してもよい。
【０２４３】
すなわち、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種情報を格納するメモリ等の記録媒体などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるデータ記録装置１、データ記録装置５０、データ記録装置６０、データ記録装置７０の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読取り可能に記録した記録媒体を、上記データ記録装置１、データ記録装置５０、データ記録装置６０、データ記録装置７０に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０２４４】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０２４５】
また、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Bluetooth（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０２４６】
このように本明細書において、手段とは必ずしも物理的手段を意味するものではなく、各手段の機能がソフトウェアによって実現される場合も包含する。さらに、一つの手段の機能が二つ以上の物理的手段により実現されても、もしくは、二つ以上の手段の機能が一つの物理的手段により実現されてもよい。
【０２４７】
また、本発明のデータ記録装置は、データを記録媒体上のいくつかの連続領域に記録し、その位置データを管理データとして記録媒体に記録するデータ記録手段と、記録されたデータを記録媒体上のいくつかの連続領域に再記録し、その位置データを管理データとして記録媒体に再記録するデータ再配置手段を備え、あらかじめデータ再配置処理が簡易になるようなデータの配置を提供する空領域探索手段を備えていてもよい。
【０２４８】
また、本発明のデータ記録装置は、データを構成する手段分を連続的に記録できる領域の最小管理単位である第１の管理単位と、記録媒体上の１欠陥領域を構成する最小管理単位、もしくは物理的にアクセスが可能な最小管理単位を第２の管理単位としたとき、第２の管理単位が複数の第１の管理単位から構成され、任意の第２の管理単位に含まれる全てのデータを再配置する処理において、あらかじめデータ再配置処理が簡易になるようなデータの配置を提供する空領域探索手段を備えていてもよい。
【０２４９】
また、データを構成する手段分が連続記録された領域を分断とすると、第２の管理単位で区切られた各領域に出来得る限り同数の分断が含まれるように空領域を探索する手段を備えていてもよい。
【０２５０】
また、本発明のデータ記録装置は、第２の管理単位で区切られた各領域のうちデータが記録されている領域の大きさが出来得る限り均等になるように空領域を探索する手段を備えていてもよい。
【０２５１】
また、本発明のデータ記録装置は、第２の管理データで区切られたそれぞれの領域の中の連続した空領域に対し、出来るだけ大きな領域で、かつ、これから記録しようとするデータもしくはその部分が、その空領域を全て埋めることが出来る領域を優先的に提供する空領域探索手段を備えていてもよい。
【０２５２】
また、本発明のデータ記録装置は、再配置の際の空領域探索手段において、まずデータの記録されていない第２の管理単位で区切られた領域を検索し、検出できた場合には再配置対象のデータをその空領域に再配置することを特徴とするデータ再配置手段を備えていてもよい。
【０２５３】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０２５４】
データの再配置処理の処理量が低く抑えられるため、データの再配置処理を行うデータ記録装置として利用できるとともに、再配置処理が施される記録媒体にデータを記録するデータ記録装置として利用できる。
【図面の簡単な説明】
【０２５５】
【図１】一実施の形態のデータ記録装置が備える空領域探索部の構成を示す概略図である。
【図２】光ディスクにおけるＥＣＣブロックの構成を示す概略図である。
【図３】光ディスクにおけるファイルシステムを説明するための概略図であり、（ａ）はファイルが分断されていない場合を示す概略図であり、（ｂ）はファイルが分断されている場合を示す概略図である。
【図４】ファイル管理情報を管理するためのファイル管理テーブルの一例を示す図である。
【図５】Allocation Descriptorによるファイル管理方式を説明するための概略図である。
【図６】セクタ管理テーブルの一例を示す図である。
【図７】一実施の形態のデータ記録装置の構成を示す概略図である。
【図８】一実施の形態のデータ記録装置が備えるキャッシュ部の構成を示す概略図である。
【図９】一実施の形態のデータ記録装置における記録処理の流れを説明するためのフローチャートである。
【図１０】一実施形態の空領域探索部における処理の流れを説明するためのフローチャートである。
【図１１】一実施の形態のデータ記録装置における再配置処理の流れを説明するためのフローチャートである。
【図１２】別の実施形態のデータ記録装置の構成を示す概略図である。
【図１３】別の実施形態のデータ記録装置が備える空領域探索部の構成を示す概略図である。
【図１４】別の実施形態のデータ記録装置が備える空領域探索部における処理の流れを説明するためのフローチャートである。
【図１５】別の実施形態のデータ記録装置の構成を示す概略図である。
【図１６】別の実施形態のデータ記録装置が備える空領域探索部の構成を示す概略図である。
【図１７】別の実施形態のデータ記録装置が備える空領域探索部における処理の流れを説明するためのフローチャートである。
【図１８】別の実施形態のデータ記録装置の構成を示す概略図である。
【図１９】別の実施形態のデータ記録装置が備える空領域探索部の構成を示す概略図である。
【図２０】別の実施形態のデータ記録装置における再配置処理の流れを説明するためのフローチャートである。
【符号の説明】
【０２５６】
１  データ記録装置
２  光ディスク（記録媒体）
１９  部分データ数算出部（分布状況検出手段）
２０  部分データ数比較部（比較手段）
３０  ＥＣＣブロック（管理単位）
３１  セクタ（記録単位）
３３  データ
３４  ファイル
３６  ファイル管理テーブル
４２  セクタ管理テーブル（記録単位管理テーブル）
５０  データ記録装置
５２  データ占有率算出部（分布状況検出手段）
５３  データ占有率比較部（比較手段）
６０  データ記録装置
６３  連続空領域探索部（分布状況検出手段）
６４  連続空領域比較部（比較手段）
７０  データ記録装置
７３  再配置領域探索部（分布状況検出手段）
７４  再配置領域比較部（比較手段）
【図１】
2006331555.tif 000003
【図２】
2006331555.tif 000004
【図３】
2006331555.tif 000005
【図４】
2006331555.tif 000006
【図５】
2006331555.tif 000007
【図６】
2006331555.tif 000008
【図７】
2006331555.tif 000009
【図８】
2006331555.tif 000010
【図９】
2006331555.tif 000011
【図１０】
2006331555.tif 000012
【図１１】
2006331555.tif 000013
【図１２】
2006331555.tif 000014
【図１３】
2006331555.tif 000015
【図１４】
2006331555.tif 000016
【図１５】
2006331555.tif 000017
【図１６】
2006331555.tif 000018
【図１７】
2006331555.tif 000019
【図１８】
2006331555.tif 000020
【図１９】
2006331555.tif 000021
【図２０】
2006331555.tif 000022