以下、図面を参照しながら、本発明の実施の形態を説明する。
(実施の形態1)
1−1.追記型記録媒体
図1Aは、本発明の実施の形態における情報記録媒体100の外観を示す。
情報記録媒体100の最内周にリードイン領域101が配置されている。情報記録媒体100の最外周にリードアウト領域103が配置されている。情報記録媒体100のリードイン領域101とリードアウト領域103との間にデータ領域102が配置されている。
リードイン領域101には、後述する記録再生部314に含まれる光ピックアップが情報記録媒体100へアクセスする時に必要な基準情報や、他の記録媒体との識別情報等が記録されている。リードアウト領域103にもリードイン領域101に記録されている情報と同様の情報が記録されている。
リードイン領域101、データ領域102およびリードアウト領域103には複数の物理セクタが割り付けられている。各物理セクタは最小のアクセス単位である。各物理セクタは物理セクタ番号(以降、PSN)というアドレス情報により識別される。
複数の物理セクタを含むECCクラスタ(または、ECCブロック)を最小の単位としてデータの記録・再生が行われる。
図1Bは、情報記録媒体100のデータ構造を示す。図1Bでは、図1Aにおいて同心円状に示されているリードイン領域101、データ領域102およびリードアウト領域103を横方向に配置して示している。
リードイン領域101は、ディスク管理情報領域104を含み、リードアウト領域103は、ディスク管理情報領域105を含む。
ディスク管理情報領域104、105のそれぞれには、ディスク管理情報が記録される。ディスク管理情報は、後述する交替管理情報リストや、セッション管理情報、空き領域管理情報などを含む。ディスク管理情報領域104、105はディスク管理情報を更新するための領域として用いられる。この更新のための領域は一時ディスク管理情報領域とも呼ばれる。
なお、本発明をBD−R規格に適用する場合には、本明細書における用語「ディスク管理情報領域」を「ディスク管理領域」に読み替え、本明細書における用語「一時ディスク管理情報領域」を「一時ディスク管理領域」に読み替え、本明細書における用語「ディスク管理情報」を「ディスク管理構造」に読み替え、本明細書における用語「一時ディスク管理情報」を「一時ディスク管理構造」に読み替えるものとする。
データ領域102は、内周交替領域106と、ユーザデータ領域108と、外周交替領域107とを含む。
ユーザデータ領域108は、ユーザデータを記録するために使用される領域である。
図1Cは、ユーザデータ領域108のデータ構造を示す。
ユーザデータ領域108は、複数のセッションを含む。各セッションは、複数のトラックを含む。
各トラックは、情報記録媒体100上の連続領域である。各トラックは、後述するトラック管理情報によって管理される。
なお、本発明をBD−R規格に適用する場合には、本明細書における用語「トラック」を「シーケンシャル記録領域(SRR)」に読み替えるものとする。
各セッションは、情報記録媒体100上に連続して配置される複数のトラックを含む。各セッションは、後述するセッション管理情報によって管理される。
図2Aは、セッションを管理するためのセッション管理情報200のデータ構造を示す。セッション管理情報200は、ディスク管理情報に含まれる。
セッション管理情報200は、ヘッダ情報201と、複数のトラック管理情報とを含む。
ヘッダ情報201は、セッション管理情報200の識別子や、図2Bに示されるトラック管理情報210の数などの一般的な情報を有する。
トラック管理情報#Nは、図1Cに示されるトラック#Nに対応する情報を有する。ここで、Nは1以上の整数である。
図2Bは、トラックを管理するためのトラック管理情報210のデータ構造を示す。トラック管理情報210は、ディスク管理情報に含まれる。
トラック管理情報210は、トラックがセッションの先頭トラックであるかどうかを示すセッション開始情報211と、トラックの開始位置を示すトラック開始位置情報212と、トラック内で最後にデータが記録された位置を示すトラック内最終データ記録位置情報(以降、LRA)213とを含む。
もしあるトラック管理情報210によって管理されるトラックがセッションの先頭に位置する場合には、そのトラックがセッションの先頭に位置することを示す値(例えば、”1”)がセッション開始情報211に設定される。それ以外の場合には、異なる値(例えば、”0”)がセッション開始情報211に設定される。
トラック開始位置情報212は、トラックの開始位置を示す物理アドレスを含む。
トラック内最終データ記録位置情報213は、トラック内で有効なデータが記録された最終位置を示す物理アドレスを含む。有効なデータとは、例えば、ホスト装置305から供給されたユーザデータである。図1Cに示されるLRA120やLRA121は、トラック内最終データ記録位置情報213の一例である。
なお、本発明をBD−R規格に適用する場合には、本明細書における用語「トラック管理情報」を「シーケンシャル記録領域エントリ」に読み替え、本明細書における用語「セッション管理情報」を「シーケンシャル記録領域情報」に読み替えるものとする。
なお、情報記録媒体100がECCクラスタを最小単位としてデータ記録を行う場合には、トラック内最終データ記録位置情報213はECCクラスタ境界するとは限らない。一般に、記録指示されるデータ容量はECCクラスタの容量の整数倍とならないからである。この時、LRA213は、記録指示されたデータが記録された最後の物理セクタのアドレスを示す。
また、LRA213がECCクラスタ境界に一致しない場合、記録指示されたデータデータに続き、パディングデータがECCクラスタ境界まで記録される。
本実施の形態においては、トラック毎にデータの記録が可能である。新たなデータの記録は、各トラックの先頭から行われ、トラック内においては連続的にデータが配置される(シーケンシャル記録)。そのトラック内でデータの記録が行われると、そのトラック内で最後に記録された位置がトラック内最終データ記録位置情報213に反映される。
そのトラック内で記録を再開する場合には、最新のトラック内最終データ記録位置情報213の値を調べることにより、そのトラック内での次の記録開始位置を知ることができる。
なお、トラックが割り付けられた直後で、そのトラックにデータがまったく記録されていない場合は、その状態を示す所定の値(例えば、”0”)をトラック内最終データ記録位置情報213に設定するようにしてもよい。
次回記録可能位置(以降、NWA)は、トラック内最終データ記録位置情報213によって示される物理セクタの次の物理セクタの位置を示す。あるいは、情報記録媒体100があるECCクラスタを最小単位としてデータ記録を行う場合には、NWAは、トラック内最終データ記録位置情報213によって示される物理セクタを含むECCクラスタの次のECCクラスタの先頭位置を示す。
このことを数式を用いて表すと、(数1)のようになる。
(数1)
(a)LRA ≠ 0のとき、
NWA = N × (Floor (LRA/N) + 1)
N: ECCクラスタに含まれる物理セクタ数(例えば、N = 32)
(b)LRA = 0のとき、
NWA = (該当トラックの開始位置)
ただし、Floor(x)は、x以下の最大の整数値。
以降の説明では、NWAは、ECCクラスタの先頭位置を示すものと仮定する。
データの記録が可能な状態にあるトラックはオープントラックと呼ばれる。
オープントラックのトラック番号は、図2Aに示されるセッション管理情報200中のヘッダ情報201に含まれる(例えば、第1のオープントラック番号203、第2のオープントラック番号204など)。
一方、オープントラックではないトラックはクローズドトラックと呼ばれる。
例えば、未記録領域が存在しないトラックや、ユーザから指示されたトラックがクローズドトラックとなる。
オープントラックとは異なり、クローズドトラックのトラック番号は、セッション管理情報200中のヘッダ情報210内に格納されない。
クローズドトラックへのデータ記録は禁止されている。
オープントラック番号とトラック管理情報210中のトラック内最終データ記録位置情報213とを調べることにより、情報記録媒体100上での未記録領域を知ることができる。
なお、本発明をBD−R規格に適用する場合、オープントラックは、オープンSRRを示す。また、クローズドトラックは、クローズドSRRを示す。
また、追記型の情報記録媒体100においても、記録済みのECCクラスタを管理することにより、情報記録媒体上の任意の位置(物理アドレス)にデータを記録する、一種のランダム記録を行うことが可能である。
このようなランダム記録を実現するためには、情報記録媒体100上での空き領域の管理と最終データ記録位置の管理とを行う必要がある。
本実施の形態においては、図2Cに示される空き領域管理情報220とディスク管理情報領域104、105に記録されたディスク管理情報とを用いてこのような管理を実現する。
ランダム記録を行う場合には、ディスク管理情報領域104に図2Cに示される空き領域管理情報220が記録される。
図2Cは、空き領域情報220のデータ構造を示す。空き領域情報220は、ヘッダ情報221と、管理対象領域情報222と、空き領域情報223とを含む。
ヘッダ情報221は、空き領域管理情報220の識別子などの一般的な情報を有する。
管理対象領域情報222は、空き領域管理情報220によって未記録/記録済み状態を管理されるセクタが含まれるユーザデータ領域108中の領域を特定する情報を含む。例えば、管理対象領域情報222は、その領域の開始位置やその領域の長さを含む。
空き領域情報223は、管理対象となる領域に含まれる各ECCクラスタが未記録か記録済みであるかを示す情報を含む。例えば、各ECCクラスタに対して1ビットずつのデータを割り当て、該当ECCクラスタが未記録であれば例えば”0”を、記録済みであれば例えば”1”を設定することにより、対象領域のすべてのECCクラスタに対する空き状況を管理することが可能となる。
ディスク管理情報領域104に記録されたディスク管理情報は、図3に示されるディスク構造情報1100を含む。ディスク構造情報1100は、最終データ記録位置情報1107を含む。最終データ記録位置情報1107はユーザデータ領域108内で最後にデータが記録された位置を示す物理アドレスを含む。
ディスク構造情報1100は、ディスク構造情報1100全般に関する一般情報1101と、最新の交替管理情報リスト1000のディスク管理情報領域内104、105内での位置情報を示す交替管理情報リスト位置情報1102と、ユーザ領域108の開始位置を示すユーザ領域開始位置情報1103と、ユーザ領域108の終端位置を示すユーザ領域終端位置情報1104と、ディスク管理情報領域情報1107b 、内周交替領域106、外周交替領域107の容量や交替のために使用可能な領域を示す交替領域情報1105及び交替領域管理情報1108とをさらに含む。
ディスク管理情報領域情報1107bを用いることにより、ディスク管理情報領域の容量を情報記録媒体毎に変更することが可能になる。さらに、ディスク管理情報領域情報1107bを用いることにより、内周交替領域106や外周交替領域107中に上述の一時ディスク管理情報領域の容量を変更することが可能になる。
交替領域情報1105を用いることにより、交替領域の容量を情報記録媒体毎に変更することが可能となる。例えば、内周交替領域106や外周交替領域107の容量を0と指定することも可能である。
交替領域管理情報1108は、内周交替領域106、外周交替領域107において、次に利用可能な位置を示す次回使用可能位置情報を含む。
各交替領域においては、トラックと同様、シーケンシャルに記録される。各交替領域における次回使用可能位置情報は、トラックおけるNWAと同様の機能を果たすものであり、各交替領域への新たなデータの記録は、次回使用可能位置情報により示される位置からシーケンシャルに行われる。
ディスク構造情報1100は、最新のセッション管理情報200のディスク管理情報領域内104、105内での位置情報を示すセッション管理情報位置情報1109と、最新の空き領域管理情報220のディスク管理情報領域内104、105内での位置情報を示す空き領域管理情報位置情報1110とをさらに含む。
上述の通り、セッション管理情報200又は空き領域管理情報220のいずれを用いても、情報記録媒体100上の物理セクタの空き状況を管理することが可能である。よって、用途に応じてセッション管理情報200又は空き領域管理情報220のいずれかを選択して使用するようにしても良い。あるいは、両方を同時に使用するようにしても良い。このような、空き領域管理方式に関する情報は、ディスク構造情報1100の記録種別情報1106に含まれる。
なお、ディスク管理情報領域105は、情報記録媒体100の信頼性を向上させるため、ディスク管理情報領域104に記録されたディスク管理情報の複製を記録したり、ディスク管理情報等を更新する際に、ディスク管理情報領域104に格納しきれない場合に用いられる拡張領域であるので、以降では詳細の説明は省略する。また、交替領域中などに記録される一時ディスク管理情報等についても同様である。
図1Cに示される例では、ユーザデータ領域108上に記録されるユーザデータの管理はファイルシステムによって行われる。ファイルシステムが管理を行う空間は、ボリューム空間109と呼ばれる。
ボリューム空間には複数の論理セクタが割り付けられている。各論理セクタは論理セクタ番号(以降、LSN)というアドレス情報により識別される。
なお、以下の説明においては、ファイルシステムを構成するボリューム/ファイル構造として情報記録媒体100に記録される記述子やポインタ、メタデータパーティションやメタデータファイル等は、特に詳細な記載がない限り、ISO/IEC13346規格あるいはUDF(Universal Disk Format)規格に規定されたデータ構造を持つものとする。もちろん、他のファイルシステムを用いることも可能である。
なお、図1A〜図1Cに示される情報記録媒体100は、1つの記録層を有するものとして説明したが、2つ以上の記録層を有する情報記録媒体も存在し得る。
図4は、2つの記録層を有する情報記録媒体100bのデータ構造を示す。
図4において、L0が第1層を示し、L1が第2層を示す。第1層および第2層のそれぞれは情報記録媒体100とほぼ同じ構造を有している。すなわち、リードイン領域101は第1層の最内周側に設けられおり、リードアウト領域103aは第2層の最内周に設けられている。さらに、第1層の最外周には外周領域103bが設けられており、第2層の最外周には外周領域103cが設けられている。リードイン領域101、外周領域103b、リードアウト領域104a、外周領域103cは、それぞれ、
ディスク管理情報領域104、105、104a、105aを含む。
また、図4に示されるように、交替領域106、106a、107、107aが設けられる。各交替領域の容量は上述の通り情報記録媒体毎に変更することが可能である。また、各交替領域中に追加の一時ディスク管理情報領域を設けることも可能である。そして、ユーザデータ領域108及び108aは、連続的な論理アドレスを有する論理的に1つのボリューム空間として扱われる。
以上により、複数の記録層を持った情報記録媒体を論理的には1つの記録層を有する情報記録媒体として扱うことが可能となる。以降では、1つの記録層を有する情報記録媒体について説明するが、それらの説明は、複数の記録層を有する情報記録媒体にも適用することが可能である。それ故、特に説明が必要な場合についてのみ、複数の記録層を有する情報記録媒体に関する説明を適宜行うものとする。
1−2.擬似上書き記録
次に図5Aおよび図5Bを参照して交替情報について説明する。
交替情報とは、情報記録媒体上で欠陥が生じたクラスタ(欠陥クラスタ)の位置を示す交替元位置情報と、その欠陥クラスタを交替する代替クラスタの位置を示す交替先位置情報とを含む交替管理情報(またはディフェクトリストエントリ)を含む交替管理情報リスト(またはディフェクトリスト)のことをいう。
また、本発明は、ユーザデータ領域に代替クラスタを記録することを可能とする。
さらに、本発明は、交替情報を用いて追記型の情報記録媒体における擬似的な上書き記録を実現する。
図1Bに示されるように、データ領域102は、内周交替領域106と、ユーザデータ領域108と、外周交替領域107とを含む。
内周交替領域106および外周交替領域107のうちの少なくとも一部は、ユーザデータ領域108上に記録されたデータの代替記録を行うための領域として使用される。
例えば、ユーザデータ領域108上に欠陥クラスタが存在する場合には、内周交替領域106および外周交替領域107のうちの少なくとも一部が、その欠陥クラスタを交替する代替クラスタを記録するための領域として使用される。
あるいは、内周交替領域106および外周交替領域107のうちの少なくとも一部は、後述の疑似上書き記録における更新後のデータを記録するための領域としても使用され得る。
交替情報と交替領域とを組み合わせた交替記録は、ベリファイ処理とともに実施される。
ベリファイ処理とは、データを記録した直後にそのデータを再生し、記録したデータと再生されたデータとの比較を行い、データが正しく記録されているかどうかを調べる処理である。このような一連の処理はベリファイ・アフター・ライト処理と呼ばれる。
ベリファイ処理時にエラーが生じた場合、すなわち、データが正しく記録されなかった場合に、交替記録が実施される。すなわち、欠陥クラスタは代替クラスタに交替され、データは代替クラスタに記録される。
この代替クラスタは、内周交替領域106(もしくは、外周交替領域107)またはユーザデータ領域108内に記録される。
疑似的な上書き記録とは、データが記録されている見かけ上の論理アドレスを変えることなく、実際にデータが記録される物理アドレスを別の場所にマッピングする手法である。
もし、記録済みの論理アドレスに対してデータの上書きが指示された場合、その上書き前にデータが記録されていた物理アドレスとは別の物理アドレス上のECCクラスタに新しいデータを記録し、上書き前のECCクラスタと新しいデータが記録された代替クラスタとのマッピングを行う。
この擬似的な上書き記録における代替クラスタは交替領域又はユーザデータ領域内に記録される。
このようなマッピングを行うための交替情報として、図5Aに示される交替管理情報リスト1000が使用される。
このようなマッピング処理により、実際にデータが上書きされたわけではないが、擬似的にデータが上書きされたかのような状態を実現することが可能となる。以降、このような記録方法を、疑似上書き記録と呼ぶ。
図5Aは、本発明の交替情報である交替管理情報リスト1000のデータ構造を示す。交替管理情報リスト1000は、欠陥クラスタの位置と代替クラスタの位置とのマッピングを行なうために使用される。交替管理情報リスト1000は、ヘッダ情報1001と、複数の交替管理情報1010(交替管理情報#1、#2、#3・・・)とを含む。
ヘッダ情報1001は、交替管理情報リスト1000に含まれる交替管理情報の数を含む。交替管理情報は、上記マッピングを示す情報を含んでいる。
図5Bは、交替管理情報1010のデータ構造を示す。交替管理情報1010は、状態情報1011と、交替元位置情報1012と、交替先位置情報1013とを含む。
状態情報1011は、上記マッピングに関する状態情報を含む。例えば、交替管理情報1010の種類や属性、交替元位置情報1012および交替先位置情報1013の有効・無効状態などを示す。
交替元位置情報1012は、交替元の情報(例えば、欠陥クラスタ)の位置を示す。
交替先位置情報1013は、交替先の情報(例えば、代替クラスタ)の位置を示す。
また、疑似上書き記録の場合は、上書き前のECCクラスタの位置を交替元位置情報1012で指し示し、上書き後のECCクラスタの位置を交替先位置情報1013で指し示すことによりマッピングが行なわれる。
ここで、交替管理情報1010に登録される交替元位置情報1012と交替先位置情報1013は、対応するECCクラスタの先頭セクタの物理アドレス(例えば、PSN)を用いて示されても良い。欠陥管理および疑似上書き記録において、ECCクラスタ単位でのマッピングが行われるからである。
従来のリニアリプレイスメントにおいては、代替クラスタは交替領域に記録されていた。よって、交替先位置情報1013には常に、交替領域内のECCクラスタの位置情報が設定されていた。
一方、本発明においては、代替クラスタは交替領域に限られず、ユーザデータ領域にも記録可能とする。そのため、交替先位置情報1013には、交替領域内のECCクラスタの位置を示す情報、もしくは、ユーザデータ領域内のECCクラスタの位置を示す情報を設定することが可能である。
そして、交替先位置情報1013が二つの領域のいずれかに記録されたECCクラスタを指し示すことが可能となったので、交替先位置情報1013が交替領域内のECCクラスタを指し示すのか、交替先位置情報1013がユーザデータ領域内のECCクラスタを指し示すのかを判別するために、状態情報1011にその判別情報を設けるようにしてもよい。
1−3.記録再生装置
図6は、本発明の実施の形態における、情報記録再生装置300の構成を示す。
情報記録再生装置300は、ホスト装置305とドライブ装置310とを含む。
ホスト装置305は、例えば、コンピュータシステムあるいはパーソナルコンピュータであり得る。
ドライブ装置310は、記録装置、再生装置、記録再生装置のいずれかであり得る。なお、情報記録再生装置300全体を記録装置、再生装置、記録再生装置と呼んでもよい。
ホスト装置305は、システム制御部301と、メモリ回路302とを含む。ホスト装置305は、ハードディスクドライブのような磁気ディスク装置304をさらに含んでもよい。ホスト装置305内の構成要素は、I/Oバス303を介して相互に接続されている。
システム制御部301は、例えば、システムの制御プログラムや演算用メモリを含むマイクロプロセッサによって実現され得る。システム制御部301は、ファイルシステムのボリューム構造/ファイル構造の記録・再生、後述するメタデータパーティション/ファイル構造の記録・再生、ファイルの記録・再生、リードイン/リードアウト領域の記録・再生などの処理の制御や演算を行う。
メモリ回路302は、ボリューム構造、ファイル構造、メタデータパーティション/ファイル構造及びファイルの演算や一時保存などに使用される。
ドライブ装置310は、ドライブ制御部311と、メモリ回路312と、記録再生部314とを含む。ドライブ装置310内の構成要素は、内部バス313を介して相互に接続されている。
ドライブ制御部311は、例えば、ドライブの制御プログラムや演算用メモリを含むマイクロプロセッサによって実現され得る。ドライブ制御部311は、ディスク管理情報領域や交替領域の記録・再生、疑似上書き記録・再生などの処理の制御や演算を行う。
なお、図6に示されるシステム制御部301や、ドライブ制御部311は、LSI等の半導体集積回路によって実現されてもよいし、汎用プロセッサとメモリ(例えばROM)とによって実現されてもよい。
メモリ(例えばROM)にはコンピュータ(例えば汎用プロセッサ)が実行可能なプログラムが格納されている。このプログラムは上述及び後述する本発明の再生処理及び記録処理を示しており、コンピュータ(例えば汎用プロセッサ)はこのプログラムに従って、本発明の再生処理及び記録処理を実行する。
メモリ回路312は、ディスク管理情報領域や交替領域に関するデータ及びドライブ装置310に転送されてきたデータの演算や一時保存などに使用される。
1−4.記録処理手順(1)
次に、図7を参照して、本実施の形態におけるフォーマット処理が行われた後の情報記録媒体100上のデータ構造を説明する。
ユーザデータ領域108に、トラック#1 401、トラック#2 402、トラック#3 403が割り付けられている。
ユーザデータ領域108にボリューム空間109が割り付けられている。ボリューム空間109内に、ボリューム構造領域410と、物理パーティション420と、ボリューム構造領域411とが割り付けられている。
物理パーティション420内には、UDF規格バージョン2.5、あるいは、それ以降のバージョンで規定されるメタデータパーティション430が含まれる。
物理パーティション420内には、メタデータファイル440が記録されている。なお、以後の説明では簡単のため、メタデータファイル440の複製であるメタデータミラーファイルに関する説明は省略するが、もちろん、メタデータミラーファイルが記録されていてもよい。
そして、メタデータファイル440の物理パーティション420中での記録位置を示すファイルエントリー(FE)であるFE(メタデータファイル)441が記録されている。
ユーザデータファイルの記録位置や容量を示すFEや、ディレクトリファイルなどのファイル構造の情報は、すべてメタデータパーティション430、すなわち、メタデータファイル440内に配置されている。
図7では、ROOTディレクトリのみが記録されており、そのため、メタデータファイル440中には、ファイル集合記述子(FSD)433及びFE(ROOT)442のみが記録されている。なお、ディレクトリファイルについては、説明の簡単化のため、各FE内に含まれる形式とする。
また、この時点ではいかなる交替記録も行われていない状態であるとする。なお、メタデータパーティション430中の空き領域管理は、UDF規格バージョン2.5で規定されているようにメタデータビットマップ(図示せず)で行ってもよい。
あるいは、メタデータパーティション430の空き領域を未記録のままとし、トラック#1のLRA405によってメタデータパーティション430中の空き領域管理を行うようにしてもよい。
なお、トラックの割り付け方法は図7に示すものに限定されず、例えば、より多くのトラックを割りつけてもよい。また、ユーザデータ領域の最後尾のトラックを、新規のトラックが追加可能な状態としておき、必要な時点でトラックを追加するようにしてもよい。
次に、図8Aに示すフローチャートを参照して、本発明におけるデータ記録の手順を説明する。
ここでは、データファイル(File−a)が情報記録媒体100に記録されることとする。
なお 、情報記録媒体100のユーザデータ領域108には、複数の論理アドレスと複数の物理アドレスとが割り当てられており、その複数の論理アドレスとその複数の物理アドレスとの対応関係は、予め決定されているものとする。
その複数の論理アドレスのそれぞれは、例えば、論理セクタ番号(LSN)もしくは論理ブロックアドレス(LBA)によって表される。
その複数の物理アドレスのそれぞれは、例えば、物理セクタ番号(PSN)もしくは物理ブロックアドレス(PBA)によって表される。また、ユーザデータ領域108には、少なくとも1つのトラックが割り当てられているものとする。
(ステップS101)データファイル(File−a)の記録に先立ち、ドライブ制御部311は、データ記録の準備処理を実行する。このようなデータ記録の準備処理は、例えば、情報記録媒体100がドライブ装置310にローディングされた時に実行される。
例えば、ドライブ制御部311は、情報記録媒体100のディスク管理情報領域104(もしくは、ディスク管理情報領域105)から最新のディスク管理情報を読み出す。
そのディスク管理情報から、ユーザデータ領域108に割り当てられている複数の論理アドレスと複数の物理アドレスとの対応関係を示す初期論理アドレス−物理アドレスマッピングを決定するため、図3のユーザデータ領域開始位置情報1103、ユーザデータ領域終端位置情報1104、交替領域情報1105などを取得する。
以降、ドライブ制御部311は、初期論理アドレス−物理アドレスマッピングに従って、論理アドレスと初期物理アドレスの変換を行う。
また、ドライブ制御部311は、ディスク管理情報に含まれるトラック管理情報を取得する。
(ステップS102)ドライブ制御部311は、ホスト装置305から記録指示を受け取る。記録指示は、データが記録されるべき位置を示す論理アドレスを含む。この論理アドレスは、例えば、論理セクタ番号(LSN)もしくは論理ブロックアドレス(LBA)によって表される。記録指示は、単一のデータが記録されるべき位置を示す単一の論理アドレスを含んでいてもよいし、複数のデータがそれぞれ記録されるべき複数の位置を示す複数の論理アドレスを含んでいてもよい。
記録指示に含まれる論理アドレスは、例えば、特定のトラック内において次にデータが記録可能な位置を示す論理アドレス(すなわち、論理NWA )に基づいてホスト装置305によって決定される。
論理NWAは、例えば、ホスト装置305からドライブ装置310へのリクエストに応答して、ドライブ装置310からホスト装置305に出力される。
論理NWAは、上述の(数1)から決定されたNWAを、初期論理アドレス−物理アドレスマッピングに従って変換することによって得られる。このような変換は、ドライブ制御部311によって行なわれる。NWAおよび論理NWAの決定手順は、後述される実施の形態2で詳しく説明する。
ホスト装置305のシステム制御部301は、データファイル(File−a)を記録するのにあたって、必要なファイルシステム情報の生成や更新を行う。例えば、システム制御部301は、メモリ回路302において、データファイル(File−a)に対するFE(File−a)の生成や、データファイル(File−a)の親ディレクトリであるROOTディレクトリの更新を行なう。
このような生成されたデータファイル(File−a)に対するFE(File−a)や更新されたROOTディレクトリは、ホスト装置305からドライブ装置310に記録指示を出力することによって情報記録媒体100に記録され、最新ファイルシステム情報が反映される。
その他、ホスト装置305は、必要に応じて、交替記録を行うための未記録領域が残っているかどうかなどを所定のコマンドを用いてドライブ装置310に問い合わせる。
なお、ホスト装置305からドライブ装置310に出力される指示は、SCSIマルチメディアコマンドなどの規格化されたコマンドであってもよい。
例えば、論理NWAのリクエストや記録指示は、それぞれ、READ TRACK INFORMATIONコマンドやWRITEコマンドであってもよい。
(ステップS103)ドライブ制御部311は、初期論理アドレス−物理アドレスマッピングに従って、ステップS102において受け取った記録指示に含まれる論理アドレスを物理アドレスに変換する。
(ステップS104)ドライブ制御部311は、その記録指示に含まれる論理アドレスに対応する物理アドレスとディスク管理情報に含まれるトラック管理情報210(図2B)とに基づいて、ユーザデータ領域108に割り当てられた少なくとも1つのトラックのうちの1つのトラック(オープントラック) を決定する。
ドライブ制御部311は、その決定されたトラックのLRA213に基づいて、その決定されたトラック内において次にデータが記録可能な位置を示す物理アドレス(すなわち、NWA)を決定する。このNWAは、例えば、上述の(数1)に従って決定される次回記録可能アドレスである。
なお、NWAの決定は、ステップS104において行なわれてもよいが、その他のステップにおいて行われてもよい。例えば、上述したデータ記録の準備処理において予め行なわれてもよい。
ここで、LRA213を用いてNWAを算出することで、NWAの情報をトラック管理情報に保存する必要がなく、トラック管理情報のデータ構造を簡単にすることができる。
(ステップS105)ドライブ制御部311は、その記録指示に含まれる論理アドレスに対応する物理アドレスがNWAより小さいか否かを決定する。
その記録指示に含まれる論理アドレスに対応する物理アドレスがNWAより小さいと決定された場合には、その記録指示は、ユーザデータ領域108の中の記録済み領域に対する記録指示であるとして決定される。すなわち、記録指示されたデータ記録が擬似上書き記録であるとして決定される。この場合には、処理はステップS106に進む。そうでなければ、処理はステップS108に進む。
(ステップS106)ドライブ制御部311は、記録すべきデータを決定する。情報記録媒体100におけるデータ記録の単位がECCクラスタである場合、ドライブ制御部311は、記録指示によって指定されたデータを記録すべきデータとして決定する。例えば、記録指示によって指定されたデータの記録位置と容量がECCクラスタ境界に一致する場合には、ECCクラスタ全体が書き換えられるので、記録指示によって指定されたデータそのものを記録すべきデータとして決定する。
一致しない場合には、ドライブ制御部311は、後述するリード・モディファイ・ライト処理を実行する。この場合には、ドライブ制御部311は、リード・モディファイ・ライト処理の過程で得られるECCクラスタ単位のデータを記録すべきデータとして決定する。
(ステップS107)ドライブ制御部311は、ステップS106によって決定された記録すべきデータの記録位置を決定する。具体的には、ドライブ制御部311は、その記録指示に含まれる論理アドレスに対応する物理アドレスによって示される位置以外の特定の位置であって、ユーザデータ領域108における特定の位置をステップS106によって決定された記録すべきデータの記録位置として決定する。
ここで、その特定の位置は、ステップS104において決定されたトラック内のNWAであってもよい。
あるいは 、その特定の位置は、ステップS104において決定されたトラックとは異なるオープントラック内のNWAであってもよい。この場合には、そのオープントラック内のNWAは、記録指示に含まれる論理アドレスに対応する物理アドレスによって示される位置に最も近い位置を示すものであることが好ましい。
(ステップS108)ドライブ制御部311は、その記録指示に含まれる論理アドレスに対応する物理アドレスがNWAに等しいか否かを決定する。その記録指示に含まれる論理アドレスに対応する物理アドレスがNWAに等しいと決定された場合には、その記録指示は、NWAによって示される位置に対する記録指示であるとして決定される。すなわち、記録指示されたデータ記録が追記(新規記録)であるとして決定される。この場合には、処理はステップS109に進む。そうでなければ、処理はステップS111に進む。
(ステップS109)ドライブ制御部311は、記録すべきデータを決定する。具体的には、ドライブ制御部311は、記録指示によって指定されたデータを記録すべきデータとして決定する。
この時、ドライブ制御部311は、記録指示によって指定されたデータの終端がECCクラスタ境界に一致するかどうか判断する。もし、一致しない場合は、パディングデータ(例えばすべて00hのデータ)を挿入し、データの終端がECCクラスタ境界に一致させ、記録すべきデータとして決定する。
(ステップS110)ドライブ制御部311は、ステップS109によって決定された記録すべきデータの記録位置を決定する。具体的には、ドライブ制御部311は、その記録指示に含まれる論理アドレスに対応する物理アドレスによって示される位置(すなわち、NWAによって示される位置)をステップS109によって決定された記録すべきデータの記録位置として決定する。
(ステップS111)ドライブ制御部311は、エラー処理を行う。
(ステップS112)ドライブ制御部311は、決定された記録位置への記録処理を実行する。
ステップS105の判定が「はい」であって場合には、ドライブ制御部311は、ステップS106において決定された記録すべきデータをステップS107において決定された記録位置に記録するように記録再生部314を制御する。
ステップS108の判定が「はい」であって場合には、ドライブ制御部311は、ステップS109において決定された記録すべきデータをステップS110において決定された記録位置に記録するように記録再生部314を制御する。
さらに、ドライブ制御部311は、記録されたデータに対してベリファイ処理を行うことにより、そのデータの記録が成功したか否かを決定する。そのデータの記録に成功した場合には、処理はステップS113に進む。
そのデータの記録に失敗した場合には、内周交替領域106などの交替領域及びユーザデータ領域108のいずれかの領域中の未記録領域が代替クラスタとして割り付けられ、その代替クラスタにそのデータが記録される。
そのデータの記録が最終的に成功した後に、処理はステップS113に進む。
なお、上述したステップS106およびステップS112の処理は、リード・モディファイ・ライト処理(以降、RMW処理)によって実現されてもよい。
RMW処理では、第1に、ドライブ制御部311は、記録指示に含まれる論理アドレスに対応する物理アドレスによって示される位置にある物理セクタを含むECCクラスタに記録されたデータを再生するように記録再生部314を制御し、そのECCクラスタから再生されたデータをメモリ回路312に格納する(リード処理)。
なお、この再生処理を行う時点で再生対象のECCクラスタが交替記録されている可能性がある。このため、ドライブ制御部311は、交替管理情報リスト1000を参照し、必要に応じて交替先のECCクラスタに記録されたデータを再生するように記録再生部314を制御する。交替管理情報リスト1000を参照したデータ再生の手順については後述する。
第2に、ドライブ制御部311は、そのECCクラスタから再生されたデータのうち、記録指示に含まれる論理アドレスに対応する物理アドレスによって示される位置にある物理セクタに記録されたデータを記録指示にによって指定されるデータに置き換える(モディファイ処理)。その結果、更新後のECCクラスタのデータが得られる。
ドライブ制御部311は、リード処理およびモディファイ処理をステップS106において実施する。
図8Bは、図8Aに示されるステップS106でリード処理およびモディファイ処理を行うときに実施されるステップを示す。図8Bに示される各ステップは、ドライブ装置310のドライブ制御部311によって実行される。
(ステップS151)ドライブ制御部311は、記録指示によって指定された位置を含むECCクラスタが代替クラスタに既に交替されているか否かを決定する。このような決定は、例えば、交替管理情報リスト1000を検索することによって行なわれる。
記録指示によって指定された位置を交替元として示す交替管理情報1010が発見された場合、代替クラスタに既に交替されていると決定し、処理はステップS152Aに進む。そうでない場合は、処理はステップ152Bに進む。
なお、ステップS151の判定結果を内部変数の値として保持しておき、他のステップにおいて必要な時、その内部変数の値を参照することにより、記録指示によって指定された位置を含むECCクラスタが代替クラスタに既に交替されているか否かを決定するようにしてもよい。これにより、同一の処理を繰り返し実行することを避けることができる。例えば、ステップS151の判定結果が「はい」の場合には、その内部変数の値として”1”を保持しておき、ステップS151の判定結果が「いいえ」の場合には、その内部変数の値として”0”を保持しておくようにしてもよい。
(ステップS152A)ドライブ制御部311は、RMW処理が必要であるか否かを決定する。例えば、記録指示によって指定されるデータの位置とサイズがECCクラスタ境界に一致する場合には、ドライブ制御部311は、RMW処理が必要でないと決定し、記録指示によって指定されるデータの位置とサイズがECCクラスタ境界に一致しない場合には、ドライブ制御部311は、RMW処理が必要であると決定する。
RMW処理が必要であると決定された場合には、処理はステップS153に進み、そうでない場合には、処理はステップS157に進む。
ステップS151と同様にして、ステップS152Aの判定結果を内部変数の値として保持しておき、他のステップにおいて必要な時、その内部変数の値を参照することにより、RMW処理が必要であるか否かを決定するようにしてもよい。
(ステップS152B)ドライブ制御部311は、RMW処理が必要であるか否かを決定する。ステップS152Bの処理は、ステップS152Aの処理と同一である。
RMW処理が必要であると決定された場合には、処理はステップS154に進み、そうでない場合には、処理はステップS157に進む。
(ステップS153)ドライブ制御部311は、記録指示によって指定された位置を含むECCクラスタの代わりに、ステップS151で発見した交替管理情報1010が示す代替クラスタに記録されているデータを再生するように記録再生部314を制御し、再生されたデータをメモリ回路312に格納する。
(ステップS154)ドライブ制御部311は、記録指示によって指定された位置を含むECCクラスタに記録されているデータを再生するように記録再生部314を制御し、再生されたデータをメモリ回路312に格納する。
(ステップS155)ドライブ制御部311は、再生されたデータを記録指示によって指定されたデータによって置換することにより、修正されたデータを生成する。
(ステップS156)ドライブ制御部311は、修正されたデータを情報記録媒体100に記録すべきデータとして決定する。
(ステップS157)ドライブ制御部311は、記録指示によって指定されたデータを情報記録媒体100に記録すべきデータとして決定する。
以上でリード処理およびモディファイ処理を完了する。
第3に、ドライブ制御部311は、モディファイ処理において得られた更新後のECCクラスタのデータを元のECCクラスタの位置に記録するように記録再生部314を制御する(ライト処理)。ドライブ制御部311は、ライト処理をステップS112において実施する。
ただし、本発明においては、情報記録媒体は追記型メディアであるため、実際には元のECCクラスタの位置には記録できない。
そこで、内周交替領域106などの交替領域及びユーザデータ領域108のいずれかの領域中の未記録領域が代替クラスタとして割り付けられ、その代替クラスタに更新後のデータが記録される。
さらに、ドライブ制御部311は、記録されたデータに対してベリファイ処理を行うことにより、そのデータの記録が成功したか否かを決定する。そのデータの記録に成功した場合には、処理はステップS113に進む。
そのデータの記録に失敗した場合には、内周交替領域106などの交替領域及びユーザデータ領域108のいずれかの領域中の未記録領域が更なる代替クラスタとして割り付けられ、その更なる代替クラスタにそのデータが記録される。
そのデータの記録が最終的に成功した後に、処理はステップS113に進む。
なお、記録指示によって指定された領域がECCクラスタ全体に対応する場合には、すべてのECCクラスタが書き換えられるので上述のリード処理は不要となる。
(ステップS113)ドライブ制御部311は、ステップS112における処理に応じて交替管理情報1010を生成し、その交替管理情報をメモリ回路312に格納する。例えば、ステップS112において、ドライブ制御部311が、その記録指示に含まれる論理アドレスに対応する物理アドレスによって示される位置以外の特定の位置であって、ユーザデータ領域108における特定の位置にデータを記録するように記録再生部314を制御(疑似上書きを実施)した場合には、ドライブ制御部311は、その記録指示に含まれる論理アドレスに対応する物理アドレスをその特定の位置を示す物理アドレスにマッピングする交替管理情報1010を生成する。
なお 、既存の交替管理情報リスト1000を検索することにより、記録指示に含まれる論理アドレスに対応する物理アドレスと同一の交替元位置情報1012を有する交替管理情報1010が既存の交替管理情報リスト1000の中に発見されたか否かを決定するようにしてもよい。
もし発見された場合には、ドライブ制御部311は、その特定の位置を示す物理アドレスを新たな交替先位置情報1013として設定するようにその交替管理情報1010を更新する。
もし発見されなかった場合には、ドライブ制御部311は、新たな交替管理情報1010を生成し、その新しい交替管理情報1010を交替管理情報リスト1000に追加する。
次に、ドライブ制御部311は、交替管理情報リスト1000の並べ替えを行う。例えば、ドライブ制御部311は、状態情報1011について交替管理情報リスト1000の並べ替えを行い、次に交替元位置情報1012の物理アドレスについて交替管理情報リスト1000の並べ替えを行ってもよい。
このようにして、記録指示に含まれる論理アドレスに対応する物理アドレスをその特定の位置を示す物理アドレスにマッピングする交替管理情報1010を含む新たな交替管理情報リスト1000が生成される。
(ステップS114)ドライブ制御部311は、上述した記録動作を反映するようにディスク管理情報を更新する。例えば、ドライブ制御部311は、最終データ記録位置情報1107を更新する。また、ドライブ制御部311は、最新の記録状態を反映するためデータが記録されたトラックに対応するトラック管理情報210内のLRA213を更新する。
さらに、ドライブ制御部311は、新たな交替管理情報リスト1000やトラック管理情報210などの更新された情報を含む新たなディスク管理情報を生成する。また、新たな交替管理情報リスト1000やトラック管理情報210の情報記録媒体100上での最新の記録位置を示すために、新たなディスク管理情報に含まれる交替管理情報リスト位置情報1102やセッション管理情報位置情報1109を設定する。
ドライブ制御部311は、新たなディスク管理情報を情報記録媒体100上の所定の領域(例えば、一時ディスク管理情報領域)に記録するように記録再生部314を制御する。このようにして、ディスク管理情報が最新の状態に更新される。
なお、データの記録が終了した後、ドライブ装置310は、上述の記録動作の結果をホスト装置305に通知するようにしてもよい。記録動作の結果とは、例えば、データの記録が成功したこと、もしくは、データの記録が失敗したことなどを示す情報である。
このような通知は、所定のタイミングでホスト装置305に送信され得る。例えば、ステップS108の終了時や、ステップS112でエラーが発生した時にこのような通知をホスト装置305に送信するようにしてもよい。あるいは、データの記録が実際に終了する前にこのような通知をホスト装置305に送信するようにしてもよい。例えば、ドライブ装置310がホスト装置305から記録指示を受け取り、その記録指示を正しく解釈することができた時点で記録終了を示す通知をホスト装置305に送信するようにしてもよい。
なお、上述の交替記録処理において、交替元のECCクラスタの位置からPSNが大きくなる方向に未記録領域を検索するようにしてもよい。そのような検索において未記録領域が発見されたら、その未記録領域が代替クラストとして割り付けられる。
また、最初に交替元クラスタを含むトラック内で未記録領域を検索し、次にそのトラックからPSNが大きくなる方向に順に各トラック内の未記録領域を検索するようにしてもよい。
未記録領域が発見されないまま未記録領域の検索がユーザデータ領域108の終端に到達した場合には、そのユーザデータ領域108に続く領域である外周交替領域107において未記録領域を検索するようにしてもよい。
さらに、未記録領域が発見されないまま未記録領域の検索が交替領域107の終端に到達した場合には、情報記録媒体100の内周側の所定の位置(例えば、内周交替領域106の先頭、ユーザデータ領域108の先頭、もしくは、それらの先頭から所定の距離だけ離れた位置)からPSNが大きくなるように未記録領域を検索するようにしてもよい。
なお 、データ記録の手順のステップS105およびステップS108では、記録指示に含まれる論理アドレスに対応する物理アドレスとNWAとを比較することにより、そのデータ記録が疑似上書き記録であるか、追記であるかを決定した。
このような比較処理により、そのデータ記録が疑似上書き記録であるか、追記であるかを決定することができるのは、情報記録媒体100が追記型の情報記録媒体であり、さらに、その追記型の情報記録媒体に対してシーケンシャル記録が行われるからである。
本発明で述べた、ユーザデータ領域を用いた交替記録は、書き換え型光ディスクにも適応可能である。しかしながら、書き換え型光ディスクの場合には、そのデータ記録が上書き記録であるか、追記(または新規記録)であるかを決定するためには、より複雑な処理手順が必要となる。なぜなら、書き換え型光ディスクの場合には、光ディスク上の任意の場所がランダムに書き換え可能なためである。
もし、上述の実施の形態のように、書き換え型光ディスク上の空き領域管理をドライブ装置が行おうとすれば、背景技術の説明で述べたように、例えば、SDLにより書き換え型光ディスク上の全てのECCクラスタに対応する交替管理情報を管理する必要がある。その上で、ある書き換え型光ディスク上のユーザデータ領域中のある場所へのデータ記録が上書き記録なのか、新規記録なのかは、例えば、交替管理情報リスト1000をすべて検索し、記録済かどうかを判断する必要がある。同様に、あるECCクラスタが代替クラスタとして既に使用されていないかどうかを知るために交替管理情報リスト1000をすべて検索する必要がある。このような処理は、交替管理情報リスト1000の容量に応じて処理量も増大し、ますます容量が増加していく光ディスクに対して大きな課題となってしまう。
一方、本発明においては、追記型の情報記録媒体であり、シーケンシャル記録であることから、あるトラック内で、NWAより小さなアドレス値を持つ領域はすべて記録済みであることが保証されている。
よって、ステップS105および108のような比較処理により、交替管理情報リスト1000の容量にかかわらず、そのデータ記録が疑似上書き記録であるか、追記であるかの決定を簡単に行うことが可能となる。また、代替クラスタもNWA以降の位置から選択すればよいので容易に選択することが可能である。
また 、追記型光ディスクのランダム記録方式において疑似上書き記録を行う場合も書き換え型光ディスクの場合と同様である。
さらに、追記型光ディスクのランダム記録方式の場合には、上述した空き領域管理情報220のような特別な構造が必要とされる。シーケンシャル記録方式の空き領域管理に比べてランダム記録方式の空き領域管理情報220はドライブ制御部311に対する処理負荷が大幅に大きくなる。
特にシーケンシャル記録方式においては、オープントラックの数をファイルシステムに対する利便性を損ねない程度に制限する(例えば最大4つ)ことが可能である。
この時、オープントラックの数はファイルシステムの構造に依存するものであり、光ディスクの容量が増えても影響を受けないが、一方、ランダム記録の空き領域管理情報220は、光ディスクの容量の増加に伴い、その容量が増加し、処理負荷も増大する。
すなわち、ますます容量が増加していく光ディスクに対して、シーケンシャル記録方式において疑似上書き方式を行う本発明の効果は非常に大きい。
また 、疑似上書き記録であるか、追記であるかの決定のため、NWAを、最新のトラック管理情報210に含まれるLRA213と(数1)に従って決定することが発明の特徴である。
データ記録によって更新されたLRA213をディスク上に記録しておくことで、情報記録媒体100をドライブ装置310にローディングしたときに、最新のLRA213を見つける時間が早くなる。
そしてLRA213を用いてNWAを算出することで、NWAの情報をトラック管理情報に保存する必要がなく、トラック管理情報のデータ構造を簡単にすることができる。
もし、本発明によらなければ、疑似上書き記録であるか、追記であるかの決定を行うために、例えば、次のような手順が必要となる。
すなわち、記録指示に含まれる論理アドレスに対応する物理アドレスを含むトラックを決定し、そのトラックの先頭から順次ECCクラスタを調べ、記録済かどうかを判断しなければならなくなる。
そして、記録指示された位置のECCクラスタが記録済のであれば疑似上書き記録であると決定する。
このような処理は、特にトラックの容量が大きくなると処理量も大きくなってしまい好ましくない。
一方、本実施の形態であれば、トラックの容量によらず、疑似上書き記録であるか、追記であるかの決定を容易に行うことが可能となる。
また、トラック管理情報内210にLRA213を含ませることにより、ドライブ10が記録指示を受けた時、記録先のトラックを決定すると共に、NWAの決定を容易に行うことが可能となる。
図9は、このような記録手順によりデータファイルが記録された後の情報記録媒体100上のデータ構造を示す。
図9では、データファイルの一例としてデータファイル(File−a)460について説明する。データファイル(File−a)460では、上述の記録手順において、欠陥クラスタ#1と欠陥クラスタ#2が検出されたものとする。
そのため、欠陥クラスタ#1を代替クラスタ#1に交替させることを示す交替管理情報と欠陥クラスタ#2を代替クラスタ#2に交替させることを示す交替管理情報とを含むディスク管理情報がディスク管理情報領域104中に記録されているものとする。
図9に示すように、代替クラスタ#1は交替領域106に記録されており、代替クラスタ#3はユーザデータ領域108に記録されている。
さらに、(データファイルFile−a)460は、その記録が行われてから、疑似上書き記録により、内容が更新されている。
具体的には更新クラスタ#2及び更新クラスタ#4の部分が疑似上書き記録による更新部分に相当する。
疑似上書き記録により更新された新しいデータは、更新クラスタ#2及び更新クラスタ#4を代替として割り付けられた代替クラスタ#2及び代替クラスタ#4にそれぞれ記録され、対応する交替情報がディスク管理情報領域104中に記録されているものとする。
図9に示すように、代替クラスタ#2は交替領域106に割り付けられており、代替クラスタ#4はユーザデータ領域108に割り付けられている。
1−5.再生処理手順(1)
ファイルの再生処理について、図10のフローチャートを参照して説明する。ここでは、図9に示されるデータファイル(File−a)460を再生する動作を例にあげて説明する。
(ステップS201)データの再生に先立ち、ドライブ制御部311は、データ再生の準備処理を実行する。このようなデータ再生の準備処理は、例えば、情報記録媒体100がドライブ装置310にローディングされた時に実行される。例えば、ドライブ制御部311は、情報記録媒体100のディスク管理情報領域104(もしくは、ディスク管理情報領域105)からディスク管理情報を読み出す。
ドライブ制御部311は、ユーザデータ領域108に割り当てられている複数の論理アドレスと複数の物理アドレスとの対応関係を示す初期論理アドレス−物理アドレスマッピングを決定するため、そのディスク管理情報から、ユーザデータ領域開始位置情報1103、ユーザデータ領域終端位置情報1104、交替領域情報1105などを取得する。
以降、ドライブ制御部311は、初期論理アドレス−物理アドレスマッピングに従って、論理アドレスと初期物理アドレスの変換を行う。
(ステップS202)まず、システム制御部301は、ドライブ装置310に再生指示を出し、情報記録媒体100の所定の位置(例えば、LSN=256)に記録されているAVDPを再生する。
なお、AVDPはUDF規格で定められた、ファイルシステム情報の起点となるデータ構造であり、ボリューム構造領域410及びボリューム構造領域411に記録される。
(ステップS203)次に、システム制御部301は、AVDPから、ボリューム構造領域410中に記録されている主ボリューム記述子列410Aの位置情報を取得する。システム制御部301は、さらに、ドライブ装置310に指示を出して主ボリューム構造410Aを再生する。
システム制御部301は、さらに、再生した主ボリューム記述子列410Aから順次、データ構造を読み出し、FE(メタデータファイル)441の位置情報(LSN)を取得する。
(ステップS204)次に、システム制御部301は、ファイル構造の再生を行う。ファイル構造の再生のため、システム制御部301は、取得したFE(メタデータファイル)441の位置情報(LSN)を元に、ドライブ装置310に再生の指示を行い、FE(メタデータファイル)441を再生する。
ここで、システム制御部301は、取得したFE(メタデータファイル)441の情報から、メタデータファイル440の位置情報を得て、メタデータファイル440へアクセス可能となる。
(ステップS205)以降、通常のUDF規格の再生手順により、FSD433、FE(ROOT)442、FE(File−a)443、データファイル(File−a)460の順に再生が行われる(ディレクトリファイルの再生については説明を省略する)。
上述の再生処理の各ステップにおいて、ホスト装置305からドライブ装置310に再生指示が出力される。ドライブ装置310のドライブ制御部311は、ホスト装置305から再生指示を受け取り、その再生指示に従って再生処理を実行する。
再生指示は、データが再生されるべき位置を示す論理アドレスを含む。論理アドレスは、例えば、論理セクタ番号(LSN)によって表される。あるいは、論理アドレスは、論理ブロックアドレス(LBA)によって表されてもよい。なお、再生指示は、例えば、READコマンドである。
ドライブ制御部311は、初期論理アドレス−物理アドレスマッピング(例えば、図12参照)に従って、再生指示に含まれる論理アドレスを物理アドレスに変換する。
次に、ドライブ制御部311は、交替管理情報リスト1000を検索することにより、再生指示に含まれる論理アドレスに対応する物理アドレスと同一の交替元位置情報1012を有する交替管理情報1010が交替管理情報リスト1000の中に発見されたか否かを決定する。
もし発見された場合には、ドライブ制御部311は、その交替管理情報1010の交替先位置情報1013を参照し、その交替先位置情報1013によって示される位置からデータを再生するように記録再生部314を制御する。
もし発見されなかった場合には、ドライブ制御部311は、再生指示に含まれる論理アドレスに対応する物理アドレスによって示される位置からデータを再生するように記録再生部314を制御する。このようにして再生されたデータは、ホスト装置305に返信される。
1−6.記録処理手順(2)
図11は、交替管理情報1010Bのデータ構造を示す。交替管理情報1010Bは、図5Bに示される交替管理情報1010の異なる実施の形態を示す。
図11の交替管理情報1010Bでは、状態情報1011として次の3つの情報を含む。この3つの情報を図11に示すように、Flag1、Flag2、Flag3とする。
Flag1は、交替管理情報1010Bの分類のための情報で、その交替情報が代替記録のためものものか、欠陥クラスタを指し示すためのものかを示す情報を含む。
Flag2は、交替管理情報1010Bが管理する代替クラスタの記録位置に関する情報で、交替領域中又は交替先無しか、ユーザデータ領域中かを示す情報を含む。
Flag3は、交替管理情報1010Bが管理するクラスタの数に関する情報で、その交替情報が単一クラスタに対応するのか、連続的な複数クラスタに対応するのかを示す情報を含む。連続的な複数クラスタに対応する場合には、Flag3は、連続領域の開始位置に対応するか、終了位置に対応するかを示す情報をさらに含む。
以降、図11に従って、本発明の詳細な記録手順について説明する。
なお、以降では必要に応じて交替管理情報の種別を図11の右端列の記号を使って表すこととする。例えば、第一行目のFlag1=1(代替用)、Flag2=0(交替領域への代替)、Flag3=00(単一クラスタ)という状態情報1011を持つ交替管理情報は、交替管理情報(1)と表記する。
図12は、本発明における情報記録媒体100上での、物理アドレス空間と論理アドレス空間のデータ構造の例示図である。
また、図12は、ホスト装置305から見た時の情報記録媒体100上での位置を示す論理アドレスである論理セクタ番号(LSN)と、情報記録媒体100上での実際の位置を示す物理アドレスである物理セクタ番号(PSN)との初期状態における対応関係も示している。このような対応関係を初期論理アドレス−物理アドレスマッピングと呼ぶ(図中、波線矢印で示す。以降同様。)。
図12に示される一つの行が一つのECCクラスタに対応する。図12では、物理アドレス(PSN)と、その物理アドレスに割り当てられている論理アドレス(LSN)とが同一行に示されている。
図12において、PSN及びLSNの値は、対応するECCクラスタの先頭セクタから終端セクタのPSN及びLSNの値として示されている。
ここでは、1つのECCクラスタが32セクタから構成される場合を例としているが他の構成でもかまわない。
PSNは内周交替領域106、外周交替領域107及びユーザデータ領域108に割り当てられる。
そして、ユーザデータ領域108の先頭からトラックが割り当てられているものとする。図12の状態ではデータがまったく記録されていないのでLRA500は、ユーザデータ領域108の先頭を指す。
一方、LSNは、ユーザデータ領域108(あるいはボリューム空間109)のみに割り当てられる。
ホスト装置305は、このLSNを使って情報記録媒体100上の特定の論理セクタを指定し、記録や再生の指示を行う。
ドライブ装置310は、ホスト装置305から受け取ったLSNを初期論理アドレス−物理アドレスマッピングに従いPSNに変換し、得られたPSNに従って物理セクタやECCクラスタへのアクセスを行う。
以降で説明する代替記録においては、初期論理アドレス−物理アドレスマッピングを基本とし、この対応関係と異なる論理アドレス−物理アドレスマッピングが必要な時に交替管理情報1010が用いられる。
なお、図12におけるPSNやLSNの値は、説明のための例にすぎず、情報記録媒体100の構成や容量に従って実際の値は異なる。
また、上述したように、ディスク管理情報や交替領域の容量は可変であるが、それらの容量はホスト装置305からの指示などにより行われるフォーマット処理時に決定される。そして、フォーマット処理後においては、ユーザデータ領域108の開始及び終了位置は変化しない。
初期論理アドレス−物理アドレスマッピングは、ディスク管理情報に含まれるディスク構造情報1100の情報(より詳細には、ユーザデータ領域開始位置情報1103、ユーザデータ領域終端位置情報1104、交替領域情報1105など)から、所定の演算等により一意に決定することが可能である。
図12〜図17Bを参照して、図11に示される交替管理情報1010Bの使用例について説明する。
まず、図12の状態から図13Aの状態への変化について説明する。
ホスト装置305は、LSN=0の位置にデータ”A”を新規に記録するよう指示する。
この記録指示を受け取ったドライブ装置310は、初期論理アドレス−物理アドレスマッピングに従ってLSN=0をPSN=1100へ変換し、PSN=1100の位置に、データ”A”を記録する。
次に、ドライブ装置310は、記録したデータをベリファイする。ここではベリファイが成功したものとする。
さらに、ホスト装置305は、LSN=0の位置にデータ”A1”を疑似上書き記録するよう指示する。
この記録指示を受け取ったドライブ装置310は、初期論理アドレス−物理アドレスマッピングに従ってLSN=0をPSN=1100へ変換し、PSN=1100の位置にRMW処理を行う。そして、交替領域106中のPSN=100の位置に、データ”A1”を記録する。
この時、ドライブ装置310により交替管理情報511が生成される。交替管理情報511の交替元には、データ”A”の記録位置であるPSN=1100が設定されており、交替管理情報511の交替先には、データ”A1”の記録位置であるPSN=100が設定されている。交替管理情報511の状態情報1011は、図11に従って設定されている。
なお、交替管理情報511は、図13A中の実線矢印に対応する。矢印の起点が交替元を示し、矢印の先が交替先を示す(以降同様)。
さらに図13Aでは、ホスト装置305は、LSN=2の位置にデータ”B”を記録するよう指示する。
データ”B”の記録においてベリファイに失敗したとすると、データ”B”は、内周交替領域106内のPSN=132の位置に記録される。
この交替記録に対応して交替管理情報512が生成される。交替管理情報512の交替元には、PSN=1032が設定されており、交替管理情報512の交替先にはPSN=132が設定されている。交替管理情報512の状態情報1011も同様に、図11に従って設定されている。
上記の記録後のデータ配置と交替管理情報リストは図13Aおよび図13Bのようになる。図13Bの交替管理情報リスト1000Aでは交替管理情報(1)が使用されている。
一方、図14Aおよび図14Bは、交替管理情報(4)、(7)が使用される時の状態を説明するための図である。
ここでは、ホスト装置305は、LSN=64の位置にデータ“C”の記録を指示する。この記録指示に従い、ドライブ装置310はデータ“C”をPSN=1164の位置に記録する。ここでベリファイの結果がエラーであったとすると、ユーザデータ領域108内の未記録領域(PSN=1196)が割り付けられ、データ“C”は、PSN=1196の位置に代替記録される。
この結果に従い、交替管理情報513が生成される。
さらにホスト装置305は、LSN=128の位置にデータ“D”の記録指示を行い、その後、データ“D1”の記録を指示する。
そして、データ“D1”の記録後のベリファイが失敗したとすると、データ“D1”は、PSN=1292の位置に代替記録される。
この時、交替管理情報514が生成される。
また、PSN=1260は、代替先の無い欠陥クラスタとなり、対応する交替管理情報515が生成される。
さらに、ホスト装置305がLSN=128の位置にデータ“D2”の疑似上書き記録を指示したとすると、データ“D2”は、PSN=1324の位置に代替記録される。
この時、交替管理情報514Aが生成される。一方、交替管理情報514は不要となるので、交替管理情報リスト1000からは削除される。
以上の記録処理の後は、LRAは500Bの位置に更新される。
なお、交替管理情報リスト1000B(図14B)は、状態情報1011中のFlag1について並べ替えが行われ、次に交替元位置情報1012のPSNの値について並べ替えが行われる。
図15Aおよび図15Bは、交替管理情報(5)、(6)が使用される時の状態を説明するための図である。
ここでは、ホスト装置305は、LSN=256〜X1の位置にデータ“E”を記録するよう指示する。
この時、ベリファイに失敗し、データ“E”は、PSN=x2〜x3の位置に代替記録されたとすると、交替管理情報516及び交替管理情報517が生成される。それぞれの交替管理情報は、代替記録の開始位置に相当するECCクラスタの先頭PSN及び終了位置に相当するECCクラスタの先頭PSNを示す。
図16Aおよび図16Bでさらに、ホスト装置305は、LSN=257〜X1の位置にデータ“E1”を疑似上書き記録するよう指示したとする。
この時、データ“E1”は、図15Aでは未記録領域であったPSN=x4〜x5の位置に記録される。
そして、この交替の開始点を示す情報として交替管理情報516Aが、代替記録の終了点を示す情報として交替管理情報517Aが生成される。
この時点で、交替管理情報516、517は不要となるので、交替管理情報リストからは削除される。
なお、図15A及び16Aでは、代替記録先をすべてユーザデータ領域内108としたが、もちろん交替領域106内としてもよい。この場合、交替管理情報(2)、(3)が使用される。
なお、図8Aを参照して説明したように、更新された交替管理情報リストは、ディスク管理情報領域に記録される。
1−7.再生処理手順(2)
このように記録されたデータを再生する際には、以下のような処理が行われる。
データの再生に先立ち、ドライブ制御部311は、データ再生の準備処理を実行する。このようなデータ再生の準備処理は、例えば、上述のステップS201と同様である。
そして、例えば、図13Aの状態において、LSN=32のデータ“B”の再生指示がホスト装置305から行われたとすると、ドライブ装置310は、初期論理アドレス−物理アドレスマッピングに従い、PSN=1132を得る。
そこでドライブ装置310は、最新の交替管理情報リスト1000から、交替元としてPSN=1132を持つ交替管理情報を検索する。
ここでは、交替管理情報512が見つかるので、そこから交替先のPSN=132を取得する。
ドライブ装置310は、PSN=132からデータ“B”を再生し、LSN=32の再生データとしてホスト装置305へ返信する。
ホスト装置305が指定するLSNが変わったとしてもドライブ装置310側の処理は同じである。受け取ったLSNを初期論理アドレス−物理アドレスマッピングに従いPSNに変換し、対応する交替管理情報が見つかれば、代替クラスタからデータを再生する。対応する交替管理情報が見つからなければ、そのままPSNに従って再生を行えばよい。
以上により、情報記録媒体100の疑似上書き記録において、ユーザデータ領域を交替先として無駄なく使用することが可能となる。
1−8.記録処理手順(3)
図18は、上述した交替管理情報1010や交替管理情報1010Bと同様の交替管理情報の異なる構成例であるDFL entry2010を示す。
DFL entry2010に含まれるステータス1 2011A及びステータス2 2011B、欠陥クラスタ先頭PSN 2012、代替クラスタ先頭PSN2013は、それぞれ上述の、状態情報1011、交替元位置情報1012、交替元位置情報1013と同様のものである。
ここで、図5Bを参照して説明したのと同様、欠陥クラスタ先頭PSN 2012と代替クラスタ先頭PSN 2013は、対応するECCクラスタの先頭セクタの物理アドレス(例えば、PSN)を用いて示されても良い。欠陥管理および疑似上書き記録において、ECCクラスタ単位でのマッピングが行われるからである。
ここでステータス1 2011Aは、少なくとも交替管理情報1010BにおけるFlag1及びFlag2と同様の情報を含む。すなわち、例えば、ステータス1 2011Aの値が“1000”の場合は、その交替情報は交替先の無いことを示す(Flag2=0で交替先無しの場合に相当)。この場合、代替クラスタ先頭PSN2013には“0”が設定される。
一方、交替先が存在する場合は、ステータス1に“0000”が設定される(Flag2=0で交替先有りの場合に相当)。
また、ステータス2 2011Bは、少なくとも交替管理情報1010BにおけるFlag3と同様の情報を含む。
すなわち、例えば、ステータス2 2011Bの値が“0000”の場合は、その交替情報は単一クラスタに対応する(Flag3=00に相当)。
同様に、ステータス2の値が、例えば、“0001”の場合は、その交替情報は複数のクラスタを含む連続領域の開始クラスタの先頭セクタの位置に対応する(Flag3=01に相当)。一方、“0010”の場合は、複数のクラスタを含む連続領域の終端クラスタの先頭セクタの位置に対応する(Flag3=10に相当)。
このDFL entry2010は全ての実施の形態に適用可能である。
次に 、図18に示したDFL entry2010のデータ構造と、図19Aのフローチャートを参照して、上述の図8Aを用いて説明したステップS113における交替管理情報に対する処理例をさらに詳しく説明する。
ここでは、図8AのステップS112で疑似上書き記録のための交替先への記録が行われ、ステップS113へ進んだ場合を想定する。
(ステップS301)まず、この疑似上書き記録が、1回目の上書き記録か、2回目あるいはそれ以降の上書き記録かを判断する。
この判断は、例えば、最新の交替管理情報リストに対し、図8AのステップS103で得られた、記録指示に含まれる論理アドレスに対応する物理アドレスを含むECCクラスタの先頭PSNの値を、欠陥クラスタ先頭PSN2012の値として持つDFL entry2010を検索することにより行える。
この最新の交替管理情報リストは、例えば、ステップS101(図8A)において、ディスク管理情報領域から再生され、メモリ回路312に保持される。
もし、該当する交替管理情報(例えば、DFL entry2010)が交替管理情報リスト中に発見されなかった場合には、1回目の擬似上書き記録であるとして、処理はステップS302に進む。
該当する交替管理情報が交替管理情報リスト中に発見された場合には、2回目の擬似上書き記録であるとして、処理はステップS304に進む。
なお、疑似上書き記録が、1回目の上書き記録か、2回目あるいはそれ以降の上書き記録かの判断は、他のステップで予め行っておいてもよい。例えば、ステップS106で行ってもよい。その時の判断結果を保持しておき、ステップS301で使用するようにしてもよい。
(ステップS302)1回目の交替記録の場合は次の処理を行う。
まず、ドライブ制御部311により新しいDFL entry2010がドライブ装置310のメモリ回路312上に生成される。
(ステップS303)次に、このDFL entry2010に値を設定する。
すなわち、ステータス1 2011Aに対して適切な値を設定する。例えば、交替先の存在する交替記録であれば“0000”が設定される。
次に、欠陥クラスタ先頭PSN2012に対して、記録指示に含まれる論理アドレスに対応する物理アドレスに位置するECCクラスタの先頭PSNの値を設定する。
次に、代替クラスタ先頭PSN2013に対して、直前の交替記録において、実際にデータが記録された代替クラスタの先頭PSNの値を設定する。
さらに、このDFL entry2010のステータス2 2011Bに対して適切な値を設定する。例えば、単一クラスタの交替記録であれば“0000”が設定される。
(ステップS304)2回目以降の交替記録の場合は次の処理を行う。
すなわち、直前のステップで見つかったDFL entry2010に対する更新処理を行うため、ステップS305へ進む。
(ステップS305)まず、このDFL entry2010のステータス1 2011Aを適切な値に更新する。例えば、交替先の存在する交替記録であれば“0000”が設定される。
次に、代替クラスタ先頭PSN2013を、直前の交替記録において、実際にデータが記録された代替クラスタの先頭PSNの値に更新する。すなわち、新たな交替先が設定される。
なお、欠陥クラスタ先頭PSN2012については、同じECCクラスタに対する2回目以降の交替記録であるので、変更の必要はなく、同じ値を保持すればよい。
さらに、このDFL entry2010のステータス2 2011Bを適切な値に更新する。例えば、単一クラスタの交替記録であれば“0000”が設定される。
(ステップS306)以上の処理により、交替管理情報リストの更新が行われる。すなわち、新しいDFL entry2010の追加、又は、既存のDFL entry2010の値が更新される。
そして、交替管理情報リストの並べ替えを行う。この並べ替えは例えば、ステータス1 2011Aについて並べ替えを行う。さらに、欠陥クラスタ先頭PSN 2012、ステータス2 2011B、代替クラスタ先頭PSN 2013の順に並べ替えを行う。
以上で図8AのステップS113は終了である。ここで得られた、最新の交替管理情報リストは、(一時)ディスク管理情報領域に追記される。
なお、上述の処理例では、疑似上書き記録のための交替記録が行われた場合について説明したが、これが、欠陥クラスタの発生による交替記録についても同じく適用可能である。
ところで、背景技術で図33A及び図33Bを参照して説明したように、従来の追記型光ディスクの欠陥管理においては、交替記録が発生するたびに既存の交替管理情報を残し、新たな交替管理情報を追加していた。
このような方法を、本実施の形態のようにユーザデータ領域を交替先として使用する記録方法に適用すると、交替記録が発生するたびに交替管理情報が増えてゆき、交替管理情報リストの容量が大きくなるため、ドライブ装置等の実装上好ましくない。
特に、従来の追記型光ディスクの欠陥管理においては、一旦交替されたクラスタは再度交替されることはなかったが、本実施の形態のように疑似上書き記録が行われる場合は、何度も交替記録の対象になりうる。そのため、交替管理情報リストの容量は非常に大きくなる可能性がある。
また、同じ欠陥クラスタ先頭PSN2012の値を持つ交替管理情報が交替管理情報リスト中に複数存在することになり、最新の交替管理情報を得るためにさらに追加の処理や仕組みが必要となる。
また、書き換え型光ディスクの欠陥管理においては、全ての交替先クラスタに対して、既に交替先として使用済みであるかどうかにかかわらず、交替管理情報を設けていた。
このような方法を、本実施の形態のようにユーザデータ領域を交替先として使用する方法に適用すると、初めから非常に大量の交替管理情報が必要となり、やはり実装上好ましくない。
一方、図19Aを用いた方法によれば、必要最低限の欠陥管理情報のみを生成し、管理すれば良く、最新の交替管理情報も容易に見つけることが可能となる。
1−9.記録処理手順(4)
図19Bを参照して、データ記録の手順における交替管理情報の処理例をさらに詳しく説明する。
図19Bに示される各ステップは、図8Aに示されるステップS113に含まれる。以下の説明では、図18に示した交替管理情報の一例であるDFL entry2010のデータ構造を参照する。
なお、ここでは、図8AのステップS112において疑似上書き記録のための交替先への記録が行われ、ステップS113に進んだ場合を想定する。
(ステップS601)ドライブ制御部311は、記録指示によって指定された領域が物理アドレス空間において連続領域であるか否かを決定する。
例えば、ドライブ制御部311は、記録指示によって指定される記録位置と記録指示によって指定される記録されるべきデータの容量とに基づいて物理アドレス空間上の領域のサイズを決定する。このようにして決定された物理アドレス空間上の領域のサイズが、1つECCクラスタのサイズよりも大きい場合には、ドライブ制御部311は、記録指示によって指定された領域が物理アドレス空間において連続領域であると決定する。
ステップS601の判定結果が「はい」である場合には、処理はステップS602に進む。ステップS601の判定結果が「いいえ」である場合には、処理はステップS603に進む。
(ステップS602)ドライブ制御部311は、ステップS112において実際にデータが記録された領域が物理アドレス空間において連続領域であるか否かを決定する。
例えば、ステップS112で記録処理を実施した領域のサイズが、記録指示によって指定された領域のサイズと等しかった場合、ドライブ制御部311は、ステップS112において実際にデータが記録された領域が物理アドレス空間において連続領域であると決定する。
ステップS602の判定結果が「はい」である場合には、処理はステップS604に進む。ステップS602の判定結果が「いいえ」である場合には、処理はステップS603に進む。
(ステップS603)ドライブ制御部311は、例えば、図19Aを参照して説明した処理を行う。
(ステップS604)ドライブ制御部311は、疑似上書き記録が、1回目の上書き記録か、2回目あるいはそれ以降の上書き記録かを決定する。
このような決定は、例えば、最新の交替管理情報リストを検索することにより、ステップS601で決定された連続領域と同じ領域を示す交替元位置情報を有する第1のDFL entry2010(ステータス2 2011B = “0001”)と第2のDFL entry2010(ステータス2 2011B = “0010”)とが交替管理情報リストの中に発見されるか否かに応じて行われる。
該当する第1のDFL entry2010と第2のDFL entry2010とが交替管理情報リスト中に発見されなかった場合には、1回目の擬似上書き記録であるとして、処理はステップS605に進む。
該当する第1のDFL entry2010と第2のDFL entry2010とが交替管理情報リスト中に発見された場合には、2回目の擬似上書き記録であるとして、処理はステップS607に進む。
(ステップS605)ドライブ制御部311は、新たな第1のDFL entry2010と新たな第2のDFL entry2010とを生成し、これらをメモリ回路312に格納する。
(ステップS606)ドライブ制御部311は、第1および第2のDFL entry2010に値を設定する。
第1のDFL entry2010のステータス1 2011Aには、交替先の存在する交替記録であることを示す“0000”が設定される。
第1のDFL entry2010の欠陥クラスタ先頭PSN2012には、記録指示によって指定された領域の開始位置を含むECCクラスタの先頭PSNの値が設定される。
第1のDFL entry2010の交替クラスタ先頭PSN2013には、実際にデータが記録された連続領域の開始位置を含むECCクラスタの先頭PSNの値が設定される。
第1のDFL entry2010のステータス2 2011Bには、連続領域の開始位置であることを示す“0001”が設定される。
第2のDFL entry2010のステータス1 2011Aには、交替先の存在する交替記録であることを示す“0000”が設定される。
第2のDFL entry2010の欠陥クラスタ先頭PSN2012には、記録指示によって指定された領域の終端位置を含むECCクラスタの先頭PSNの値が設定される。記録指示によって指定された領域の終端位置は、例えば、記録指示に含まれる論理アドレスに対応する物理アドレスと、記録されるべきデータのデータ長とから求められる。
第2のDFL entry2010のの交替クラスタ先頭PSN2013には、実際にデータが記録された連続領域の終端位置を含むECCクラスタの先頭PSNの値が設定される。
第2のDFL entry2010のステータス2 2011Bには、連続領域の終端位置であることを示す“0010”が設定される。
(ステップS607)ドライブ制御部311は、ステップS604において発見された第1および第2のDFL entry2010に対する更新処理を行う。具体的には、この更新処理は、ステップ608において、第1および第2のDFL entry2010に値を設定することによって行われる。
(ステップS608)ドライブ制御部311は、第1および第2のDFL entry2010に値を設定する。
第1のDFL entry2010の交替クラスタ先頭PSN2013には、実際にデータが記録された連続領域の開始位置を含むECCクラスタの先頭PSNの値が設定される。すなわち、新たな交替先領域の開始位置が設定される。
第1のDFL entry2010の欠陥クラスタ先頭PSN2012については、変更の必要はなく、同じ値を保持すればよい。同じECCクラスタに対する2回目以降の交替記録であるからである。
第2のDFL entry2010の交替クラスタ先頭PSN2013には、実際にデータが記録された連続領域の終端位置を含むECCクラスタの先頭PSNの値が設定される。すなわち、新たな交替先領域の終了位置が設定される。
第2のDFL entry2010の欠陥クラスタ先頭PSN2012については、変更の必要はなく、同じ値を保持すればよい。同じECCクラスタに対する2回目以降の交替記録であるからである。
(ステップS609)上述した処理により、交替管理情報リストの更新が行われる。すなわち、新たな第1および第2のDFL entry2010が交替管理情報リストに追加される。又は、交替管理情報リスト内の既存の第1および第2のDFL entry2010の値が更新される。
交替管理情報リストの並べ替えが行われる。この並べ替えは、例えば、更新管理情報のステータス1 2011Aの順に行われる。さらに、並べ替えは、欠陥クラスタ先頭PSN 2012、ステータス2 2011B、交替クラスタ先頭PSN 2013の順に行われる。
以上で図8AのステップS113は終了である。ここで得られた、最新の交替管理情報リストは、(一時)ディスク管理情報領域に追記される。
なお、上述の処理例では、疑似上書き記録のための交替記録が行われた場合について説明したが、これが、欠陥クラスタの発生による交替記録についても同じく適用可能である。
図20Aから図24Bを用いて、記録処理手順についてさらに説明する。
図20Aは、図13A等と同様、情報記録媒体100上の物理アドレス空間と論理アドレス空間を示す。図20Aでは、フォーマット処理直後に、LSN=0の位置にデータ“A0”が記録された状態を示す。物理アドレス空間では、PSN=1000の位置にデータ“A0”が記録されている。
この時、LSN=0とPSN=1000は初期論理アドレス−物理アドレスマッピングの関係を維持している。
そのため、図20Bに示す、図20Aに対応する交替管理情報リストは交替管理情報は含まれておらず、ヘッダ情報1001だけを含む。
次に、図20Aの状態で、ホスト装置305からLSN=0の位置にデータ“A1”を記録するよう指示がなされたとする。この記録が行われた後の状態を図21Aに示す。
図21Aに示すように、PSN=1000の位置は既に記録済であるので、データ“A1”は、例えばユーザデータ領域中のPSN=1132の位置に交替される。
この時の交替記録は、1回目の交替記録であるので、図19Aを用いて説明したステップS302以降の手順に従い、図21Bに示すDFL entry2100Aが交替管理情報リストへ追加される。
次に、図21Aの状態で、ホスト装置305からLSN=0の位置にデータ“A2”を記録するよう指示がなされたとする。この記録が行われた後の状態を図22Aに示す。
図22Aに示すように、PSN=1000は既に記録済であるので、データ“A2”は、例えばユーザデータ領域中のPSN=1164の位置に交替される。
この時の交替記録は、2回目の交替記録であるので、図19Aを用いて説明したステップS304以降の手順に従い、図22Bに示すように、DFL entry2100Aが更新され、DFL entry2100Bとなる。(すなわち、DFL entryの追加は行われない。)
次に、図22Aの状態で、ホスト装置305からLSN=96の位置にデータ“B0”を、LSN=128〜192の位置にデータ“C0”を記録するよう指示がなされたとする。この記録が行われた後の状態を図23Aに示す。
図23Aに示すように、データ“B0”をPSN=1196の位置に記録するとき、ベリファイ処理がエラーとなったとする。
この時、データ“B0”は例えば、外周交替領域107中のPSN=x10に交替される。
この時の交替記録は、1回目の交替記録であるので、図19Aを用いて説明したステップS302以降の手順に従い、図23Bに示すように、DFL entry2101Aが追加される。
一方、データ“C0”の記録後のベリファイには成功したものとすると交替管理情報リストは変化しない。
次に、図23Aの状態で、ホスト装置305からLSN=128〜192の位置にデータ“C1”を記録するよう指示がなされたとする。 この記録が行われた後の状態を図24A示す。
図24Aに示すように、PSN=1228〜1292の位置は既に記録済であるので、データ“C1”は例えばユーザデータ領域中のPSN=1324〜1388の位置に交替される。
この時の交替記録は、1回目の交替記録であるので、図19Aを用いて説明したステップS302以降の手順に従い、図24Bに示すように、DFL entry2102A及び2103Aが追加される。
ここで、この交替記録は、連続領域2200(PSN=1228〜1292)から連続領域2201(PSN=1324〜1388)への交替記録であるので、上述のように、交替領域の先頭を示すDFL entry2102Aと、終了位置を示すDFL entry2103Aを用いている。
すなわち 、本発明のドライブ装置310は、連続領域2200をユーザデータ領域108中の連続領域2201へ交替する疑似上書きにおいて、連続領域2200の開始位置を、連続領域2201の開始位置にマッピングする第1の交替管理情報(DFL entry2102A)と、連続領域2200の終了位置を、連続領域2201の終了位置にマッピングする第2の交替管理情報(DFL entry2103A)とを生成する。
ここで、3つのECCクラスタ分の連続領域の交替記録を行ったにもかかわらず、DFL entryは2つしか追加されていない。これは、DFL entry2102A及びDFL entry2103Aによって、ユーザ領域中の交替先を連続領域としてマッピングすることにより得られる効果である。
なお、連続領域の交替に関しても、2回目以降については既存のDFL entryを更新することは言うまでもない。
(実施の形態2)
2−1.NWA決定処理手順
ここでは、ホスト装置305の要求によりドライブ装置310が返信する論理アドレスで表された次回記録可能位置(以降、論理NWA)の決定方法について説明する。
本実施の形態においては、論理NWAは、次の手順により決定される。
まず、LRAで示される物理セクタを含むECCクラスタの次のECCクラスタを決定する。このECCクラスタが次の記録ECCクラスタである。記録ECCクラスタの先頭物理セクタが次回記録可能位置となり、この物理アドレスで表された次回記録可能位置が上述したNWAである。
論理NWAの値は、このNWAが示すPSNの値を初期論理アドレス−物理アドレスマッピングに従いLSNへ変換して得られる値となる。
以下、幾つかの具体例を用いて説明を行う。
図12の状態においては、LRA500がユーザデータ領域108の先頭を指しているので、この時点での物理アドレス空間でのNWAはPSN=1100である。PSN=1100に対するLSNはLSN=0であるので、論理NWA=0となる。
図13Aでは、ホスト装置305は、ドライブ装置310から論理NWA=0を得て、データ“A”をLSN=0に記録するよう指示を行っている。
また、データ“A”の記録直後では、トラック#1のLRAはPSN=1100を含むECCクラスタを指すので、そのNWAはPSN=1132である。よって論理NWA=32となる。この時、ホスト装置305は、論理NWA=32に対してデータ“B”の記録を指示することがあり得る。
データ“B”の記録直後では、トラック#1のLRAはPSN=1132を含むECCクラスタ内の物理セクタを指すので、そのNWAはPSN=1164である。よって論理NWA=64となる。
以上のような論理NWAの決定方法の特徴は、初期論理アドレス−物理アドレスマッピングの関係を維持するように論理NWAを決めることである。すなわち、トラック内のLRAからNWAを先に決めてから、初期論理アドレス−物理アドレスマッピングにより論理NWA得ているので、新規のデータ記録については交替管理情報1010Bが必要ない。
なお、図14Aにおいて、実際の最新の論理NWAがLRA500Bに対応するにもかかわらず、ホスト装置305が論理NWAとしてLRA501Bに対する値を保持してしまう場合がある。
このような状態は、PSN=1292の位置以降への記録が、ドライブ装置310によりホスト装置305からは独立した動作として実行され、また、ホスト装置305がドライブ装置310から最新の論理NWAを取得しなかった場合に生じる。
そしてもし、この状態でホスト装置305が新規データを記録指示しようとすると、LRA501Bに対応する論理NWAへ記録指示を出すことになるが、実際のデータはドライブ装置310によりPSN=1336の位置へ記録される。
この記録は交替記録となるので、新たな交替管理情報が必要となってしまう。
一方、ホスト装置305が最新のLRA500Bに対応する論理NWAをドライブ装置310から取得してから新規データの記録の指示を行えば、その記録は交替記録とならず、新たな交替管理情報も不要である。
図15A及び図16Aでも同様であり、各図においてホスト装置305は論理NWAとしてLRA501Cに対する値を保持してしまう場合があるが、実際の最新のLRAはそれぞれLRA500C及びLRA500Dである。
よってホスト装置305は、新規データの記録の前に、最新の論理NWAを取得することが望ましい。
以上、まとめると、ホスト装置305が新規データの記録を指示する時例えば、図8AのステップS102の直前に、最新の論理NWAをドライブ装置310から取得するための要求を出力する。一方、この要求を受け取ったドライブ装置310は、上述の手順により、LRAおよびNWAから決定される論理NWAをホスト装置305へ返す。
論理NWAを受け取ったホスト装置305はその値を元に、次の記録指示を行う。
このような動作により、新規データの記録には交替管理情報1010Bが不要であり、交替記録を行った時にだけ交替管理情報1010Bが必要となる。
その結果、交替管理情報リスト1000のデータ量の増加を抑制することが可能となり、データ記録再生時の処理量の低減、メモリ量の削減、情報記録媒体100上でのデータ容量の削減等の効果が得られる。
(実施の形態3)
3−1.記録処理手順(1)
上述の実施の形態2におけるNWA決定方法では、あるLSNが使用されない状況が発生する。
例えば、図14Aで、LSN=96の位置の論理セクタは、ホスト装置305あるいはファイルシステムから見ると、一度もデータが記録されていない論理セクタとなる。
このような論理セクタは未記録論理セクタ、あるいは、未使用論理セクタ、孤立論理セクタ、等と呼ばれる。
また、このような未記録論理セクタからなる論理クラスタを未記録論理クラスタと呼ぶ。例えば、図14Aでは、LSN=96〜127の位置が未記録論理クラスタである。
同様に、図15Aにおいては、LSN=X2の位置が未記録論理セクタである。
図14A等に示す通り、このような未記録論理セクタに対しても、他の通常の論理セクタと同様、LSNが割り当てられ、それ以降の論理セクタのLSNも変化しないことが上述の実施の形態におけるNWA決定処理手順の特徴である。
このような未記録論理セクタに対する記録指示が行われた場合は上述の実施の形態と同様、疑似上書き記録が行われる。例えば、次のような処理が考えられる。
ここでは、図14Aの状態で、LSN=96の位置に対するデータ“F”の記録指示が発生したとする。
この時ドライブ装置310は、LSN=96を初期論理アドレス−物理アドレスマッピングに従いPSN=1196に変換する。
PSN=1196とNWAを比較すると、PSN=1196は記録済出ることが分かる。
この時、上述の他の実施の形態と同様、疑似上書き記録を行う。
そこで、ドライブ装置310は、NWAで示される位置(この場合、PSN=1336)にデータ“F”を記録し、さらに交替管理情報518を生成する。
このような処理により、LSN=96の位置に対する記録が行われる。その結果、LSN=96は未記録論理クラスタではなくなり、通常の論理クラスタとなる。
ただし、PSN=1336の位置に対して初期論理アドレス−物理アドレスマッピングで関連づけられるLSN=256〜287の位置が新たに未記録論理クラスタとなる。
さらに、データ“G”の記録を行うとすると図17Aおよび図17Bの状態となる。
3−2.再生処理手順(1)
図14Aで、LSN=224の位置の論理クラスタは、未記録論理クラスタである。
LSN=224の位置の未記録論理クラスタに対し、初期論理アドレス−物理アドレスマッピングで対応する物理クラスタはPSN=1324の位置となる。
PSN=1324の位置の物理クラスタは、さらに、交替管理情報514により、PSN=1228の位置の物理クラスタと関連づけられている。
そしてPSN=1228の位置の物理クラスタは、初期論理アドレス−物理アドレスマッピングに従い、LSN=128の位置の論理クラスタとマッピングされる。
すなわち、PSN=1228の位置の物理クラスタは、LSN=128の位置の論理クラスタと、LSN=224の位置の未記録論理クラスタの2つの論理クラスタが割り付けられている。
このような2つの論理クラスタが1つの物理クラスタに割り付けられている状態で再生が行われる時の手順について以下で説明する。
まず、LSN=128の位置の論理クラスタに対しホスト装置305から再生指示が出されたら、まず、ドライブ装置310は、受け取ったLSNを初期論理アドレス−物理アドレスマッピングに従いPSNに変換する(再生先PSNと呼ぶ)。
ここでは再生先PSNはPSN=1228となる。交替管理情報リストに対してPSN=1228を交替元として持つ交替管理情報を検索すると交替管理情報514Aが見つかる。
そして交替管理情報514Aが指す代替クラスタであるPSN=1324の位置の物理クラスタを再生する。
一方、LSN=224の位置の論理クラスタに対し再生指示が出されたら、初期論理アドレス−物理アドレスマッピングに従い、再生先PSNとしてPSN=1324の値が得られる。しかしながら、交替管理情報リストに対してPSN=1324を交替元として持つ交替管理情報を検索しても見つからない。
そこでドライブ装置310は、PSN=1324からデータを再生する。
このような再生処理により、論理的には一度もデータを記録されていない未記録論理セクタに対して再生指示が出された場合でも、対応する物理セクタからデータが再生される。
よって、ホスト側のファイルシステム等から見ると、情報記録媒体100上の領域に対して例外的な領域が無くなり、そのシステム構成中に複雑なエラー処理を実装する必要が無くなり、より簡単な実装でシステムを構築することが可能となる。
なお 、未記 録論理セクタに対して再生指示が行われた時、上述のように対応する物理クラスタからデータの再生を行ってしまうと、本来再生されるべきではないデータが再生されることになる。もし、このようなデータ再生がシステム構成上、不都合な場合は、次のような再生手順を用いても良い。
すなわち、データの再生に際して、再生指定されたLSNを初期論理アドレス−物理アドレスマッピングに従いPSNに変換し、得られたPSNを交替管理情報リスト1000中の交替元位置情報1012として持つ交替管理情報1010Bを検索する。
もし、対応する交替元位置情報1012が見つかったら、上述の他の実施の形態と同様、交替先位置情報1013が示す位置のECCクラスタからデータを再生する。
もし、見つからなかったら、次に、交替先位置情報1013を対象として、再生指定されたLSNに対応するPSNの値を持つ交替元位置情報1012を検索する。
もし、該当する交替先位置情報1013が見つかったら、その交替先位置情報1013で指示されるECCクラスタは、代替クラスタとして既に記録済みであると判断される。
この時、ドライブ装置310はこのECCクラスタからデータを再生せず、その代わりに再生データとして所定の値、例えばすべて0の値をホスト装置305からへ返信する。
このような再生処理により、未記録論理セクタに対して再生指示が出された場合でも、対応する物理セクタから適切なデータが再生される。
なお、このような再生処理は、図10を参照して説明した再生処理の各ステップにおいて、ドライブ装置310がホスト装置305から再生指示を受け取った時に実行される。
3−3 NWA決定手順の比較
上述 の実施の形態とは異なり、未記録論理セクタが発生しないNWA決定手順について説明する。
本NWA決定手順においては、論理LRAを管理し、論理LRAの隣の位置である論理NWAに新たなデータを記録する。
この時、論理NWAを示すLSNを初期論理アドレス−物理アドレスマッピングによりPSN(PSN−1とする)へ変換する。
また、この論理NWAに対して、実際にデータを記録するECCクラスタは、LRA213で示されるPSNを含むECCクラスタの次のECCクラスタであるNWAとする(このNWAの位置を示すPSNをPSN−2とする)。
このPSN−1を交替元、PSN−2を交替先とする交替記録を行う。
この時 、論理NWAを管理するため、図25に示すトラック管理情報3210の異なる実施の形態を用いる。
図25のトラック管理情報3210では、新たにトラック内最終データ記録論理位置情報3214が定義される。
トラック内最終データ記録論理位置情報3214は、トラック内最終データ記録位置情報213がPSNによる物理アドレス空間における最終記録位置を管理していたのに対し、LSNによる論理アドレス空間による最終記録位置を管理するためものである。
ドライブ装置310は、トラック内最終データ記録論理位置情報3214を参照することにより、各トラック毎の論理NWAを決めることができる。
トラック内最終データ記録論理位置情報3214の更新方法は以下の通りである。
すなわち、トラック内最終データ記録論理位置情報3214の初期値として0が設定される。そして、ホスト装置305から記録指示を受け取ったドライブ装置310は、記録位置をLSNとして受け取る。受け取ったLSNがトラック内最終データ記録論理位置情報3214よりも大きい場合、そのLSNでトラック内最終データ記録論理位置情報3214を更新する。
このような処理により、トラック内最終データ記録論理位置情報3214を最大の値に保つことが可能である。
図26A に、上述のNWA決定手順によって、図13A、図14A、図17Aと同様の順序でデータ“A”、“B”、“C”、“D”、“F”、“G”の記録を行った場合のデータ構造を示す。
図26Bでは、すべての欠陥クラスタを交替管理情報(7)として登録している。ただし、これらの交替管理情報(7)については、交替管理情報リスト1000Fから削除してもよい。削除することにより、交替管理情報リスト1000F中の容量を小さくすることができる。
ここで 、図17Bと、図26Bのそれぞれの交替管理情報リスト1000Eと1000Fを比較すると、交替管理情報リスト1000Eの方が交替管理情報の数が少なくなっている。
交替管理情報(7)を削除した状態で比較すれば、交替管理情報リスト1000Eの方がさらに交替管理情報の数が少なる。
よって、実施の形態1や実施の形態2で説明した、未記録論理セクタが発生するようなNWAの決定方法は、図26Aを参照して説明した未記録論理セクタが発生しない方法より、交替管理情報リストのデータ容量を抑制できる点で望ましい。
なお、交替管理情報リスト1000F中で、交替管理情報(7)を残しておくことにより、情報記録媒体上100の欠陥クラスタの分布をあらかじめ把握でき、再生時においてそれらを避けながらデータを先読みする等の処理の最適化に利用可能である。
(実施の形態4 )
本実施 の形態において、データの記録手順についてさらに述べる。
図27は、本実施の形態によるデータ記録が行われる前の情報記録媒体100のデータ構造の一例を示す図である。図中で▼で示される位置はECCクラスタ間の境界を示している。以降、他の図面においても同様である。
この状態において、ホスト装置305から、データ“D1”4622とデータ“E1”4623の記録指示がドライブ装置310へ出された時の記録手順について説明する。
データ“D1”4622の記録指示は、例えば記録済み領域4600中のPSN=a0の位置への疑似上書き記録となる。
記録指示を行うにあたって、ホスト装置305は論理NWAをドライブ装置310へと要求する。
論理NWAを要求されたドライブ装置310は、LRA4610AからNWA4611Aを決定し、NWA4611Aに対応する論理NWAをホスト装置305へ返信する。
この時、ホスト装置305がドライブ装置310に対して、PSN=a0に対応するLSN=A0へのデータ“D1”4622の記録指示と、NWA4611A(PSN=a2)に対応するLSN=A2へのデータ“E1”4623の記録指示を連続的に行う場合がありうる。
もし、ドライブ装置310が、ホスト装置305の記録指示通りデータ“D1”4622、データ“E1”4623の順に記録指示を行うと、その記録結果は、図28のようになる。
ここで、データ“D1”4622の記録指示は、記録済み領域4600への疑似上書き記録となる。よって、データ“D1”4622はNWA4611A(PSN=a2)へ交替される。そして、NWA4611AはNWA4611B(PSN=a3)となる。
この交替記録によりPSN=a2の位置は記録済となるので、データ“E1”4623はさらに、NWA4611B(PNS=a3)へ交替される。
上述したように、ホスト装置305はNWA4611A(PSN=a2)に対応するLSN=A2に対して記録指示を出していたにもかかわらず、実際には、それとは異なる位置(PNS=a3)に記録されることになる。
よって、データ“D1”4622Aに対してのみならず、データ“E1”4223Aに対する交替管理情報1010が生成されてしまい、交替管理情報リスト1000の容量が増加するという課題が発生する。
このような課題は、ホスト装置305が予期しない交替記録がドライブ装置により実施されたことが原因である。
すなわち、ドライブ装置による交替記録の実施後、ホスト装置305からの更なる記録指示により、交替処理が必要となり、交替管理情報リスト1000の容量を増加させてしまう。
一方、本実施の形態における記録手順において、データ“E1”4623に対する交替管理情報1010が発生しない方法を以降で説明する。
本実施の形態においては、図27の状態でホスト装置305が記録指示を行う場合、追記を先に記録指示を行うこととする。
そして追記の記録指示の後に上書き記録の記録指示を行う。このような記録手順の結果は、図29のようなデータ構造となる。
なお、ホスト装置305上で動作するファイルシステムは、すべてのファイルの更新や新規作成の管理を行うので、記録指示の順番を決定できる。
図29では、データ“E1”4623Bが、NWA4611A(PSN=a2)に記録されている。また、データ“D1”4622BがPSN=a4に記録されている。
上述したように、ホスト装置305はNWA4611A(PSN=a2)に対して記録指示を出していたので、記録指示がなされた位置と実際に記録された位置が同じになる。よってこの記録は交替記録とならない。
すなわち、データ“E1”4623に対する交替管理情報1010が生成されず、交替管理情報リスト1000の容量増加を防ぐことが可能となる。
なお、データ“D1”4622の記録においては、図28及び図29のいずれの場合でも、同じだけの交替管理情報1010が必要となる。図28及び図29において、データ“D1”4622の記録位置(すなわち交替先の位置)が変わるだけで、必要な交替管理情報1010の数は変化しない。
以上より、本実施の形態は、ホスト装置305が、上書き記録と追記を行おうとしている場合は、追記の方を優先して記録指示することにより、交替管理情報1010の発生を回避することが可能となり、交替管理情報リスト1000のデータ容量削減に効果がある。
(実施の形態5)
ここ で、ある容量のデータをホスト装置305がECCクラスタの容量(例えば64KB)毎に分割し、分割した単位毎にドライブ装置310へ順次、記録指示を行う場合を考える。
ドライブ装置310がこれらのデータを連続的に記録している時、ある記録位置で欠陥クラスタが存在し、その欠陥クラスタを代替するために隣接するECCクラスタが使用される場合がある。
このような場合、それ以降の記録位置以降で、すべての記録が1クラスタずつ、PSNが大きい方向にデータを交替記録することになる。
この時、記録単位毎に交替管理情報が必要となり、記録するデータ容量が大きい場合、多数の交替管理情報が必要となり、交替管理情報リスト1000のデータ容量が大きくなってしまう。
そこで 本実施の形態 においては、交替記録において、交替管理情報リスト1000のデータ容量削減に効果がある、ドライブ装置310による代替クラスタの記録先選択手順について図30を参照して説明する。
図30では、例えば、ホスト装置305による記録指示により、交替元クラスタ5700を交替元とする交替記録が行われる。
この時、交替先は、以下の手順により決定される。
図30において、代替クラスタが割り付け可能な交替先としては、未記録領域5601A(トラック#N 5602中)、未記録領域5612(トラック#N+1 5610中)、未記録領域5622(トラック#N+2 5620中)、未記録領域5632(トラック#N+3 5630中)がある。
ここで、交替元クラスタ5700の位置(例えば、交替元クラスタ5700中の先頭物理セクタ)から、交替先の候補の位置(例えば、オープントラックのNWA位置)に対する距離を調べる。図30においては、上述の各交替先候補に対して、それぞれD13、D12、D10、D11となる。
ここで各距離の値の大小関係が、D13>D12>D11>D10であるとする。
最も距離の近い(すなわちD10の)未記録領域5622を交替先として選択することにより、交替元から交替先への距離は、その時点での最短となり、データの再生に際してはアクセス時間を最短にすることが可能となる。
しかしながら、未記録領域5622は交替元位置5700と同じトラック#N+2 5620に含まれる。よって、交替先を未記録領域5622とすると、上述したように、ホスト装置305から連続的な記録指示が行われた場合に、交替管理情報リスト1000のデータ容量が増加するという課題が発生する。
そこで本実施の形態においては、交替元クラスタから最も距離の近い未記録領域を交替先として選択するが、この選択においては、交替元クラスタと同一トラック内の未記録領域を除くことを特徴とする。
すなわち、最も距離の近い未記録領域5622を除き、次に距離の近い(すなわちD11の)未記録領域5632を交替先とする。
よって、交替元クラスタ5700に対してホスト装置305から記録指示が行われた時、ドライブ装置310は、未記録領域5632のNWA位置に交替先クラスタ5710を記録する。
そして、交替元クラスタ5700から交替先クラスタ5710へのマッピングを示す交替管理情報を生成し、記録する。
ステップ S107およびS112(図8A)を参照して説明したように、本発明のドライブ制御部311は、擬似上書き記録を実行する時、受け取った記録指示に含まれる論理アドレスに対応する物理アドレスによって示される位置以外の特定の位置であって、ユーザデータ領域108における特定の位置にデータを記録するように記録再生部314を制御する。
本実施例においては、その特定の位置は、ステップS104(図8A)において決定されたトラックとは異なるオープントラック内のNWAである。
更に、そのオープントラック内のNWAは、記録指示に含まれる論理アドレスに対応する物理アドレスによって示される位置に最も近い位置を示すものである。
このような記録手順により、ホスト装置305によりさらに続けて記録指示が出されたとしても、未記録領域5622への新規のデータ記録を行っても交替記録とはならず、交替管理情報の追加は不要である。
また、交替元から交替先への距離は、同一トラックを除き最も近くなる。よって、データの再生においてアクセス時間を短縮できる。
なお、交替元クラスタより大きなPSNを持つ未記録領域だけを対象として距離を調べ、交替先を決めるようにしてもよい。追記型の情報記録媒体では、PSNが増加する方向にシーケンシャル記録を行うので、PSNが増加する方向に交替記録した方が、データへのアクセスが効率的に行えるからである。この場合、大きなPSNを持つ未記録領域が無くなったら、小さなPSNを持つ未記録領域を対象とすればよい。
なお、距離が等しい未記録領域が複数あった場合、PSNが増加する方向を選択するのが望ましい。追記型の情報記録媒体では、PSNが増加する方向にシーケンシャル記録を行うので、PSNが増加する方向に交替記録した方が、データへのアクセスが効率的に行えるからである。
なお、交替元と交替先の距離については、交替元と交替先のPSN値の差から決定しても良い。あるいは、交替元と交替先の物理的な距離から決定しても良い。情報記録媒体100においては、PSNは内周側からスパイラル状に増加していくため、PSN値の差が物理的な距離に一致しない場合もありえるからである。例えば情報記録媒体100の半径方向に隣接するECCクラスタ同士は物理的には距離が近いが、PSN値の差は最小とはならない。
(実施の形態6 )
図34 を参照して、本実施の形態のデータ記録の手順を説明する。ここでは、図6に示される情報記録再生装置300を用いて、データが情報記録媒体100に記録されるものとする。図34に示される各ステップは、ドライブ装置310のドライブ制御部311によって実行される。
(ステップS1101)ドライブ制御部311は、ホスト装置305から記録指示を受け取る。記録指示は、記録されるべきデータと、そのデータが記録されるべき位置を示す論理アドレスとを指定する。
この処理は、図8Aに示されるステップS102の処理と同一である。
(ステップS1102)ドライブ制御部311は、記録指示に含まれる論理アドレスを物理アドレスに変換する。このような変換は、例えば、初期論理アドレス−物理アドレスマッピングに従って行われる。
この処理は、図8Aに示されるステップS103の処理と同一である。
(ステップS1103)ドライブ制御部311は、ユーザデータ領域108内に割り付けられた少なくとも1つのトラックの中から1つのトラックを決定する。このような決定は、例えば、記録指示に含まれる論理アドレスに対応する物理アドレスとディスク管理情報に含まれるトラック管理情報210(図2B)とに基づいて行われる。トラック管理情報210は、トラックのデータ領域102上での範囲を示すので、物理アドレスが分かれば、対応するトラックを決定できる。
この処理は、図8Aに示されるステップS104の処理と同一である。
(ステップS1104)ドライブ制御部311は、ステップS1103において決定されたトラックがオープントラックであるかクローズドトラックであるかを決定する。このような決定は、例えば、トラック管理情報210(図2B)に基づいて行われる。ヘッダ情報201にトラック番号が含まれていないトラックがクローズドトラックである。
なお、オープントラックの定義については、実施の形態1を参照のこと。クローズドトラックの定義については、実施の形態1を参照のこと。
なお、本発明をBD−R規格に適用する場合には、本明細書における用語「オープントラック」を「オープンSRR」に読み替えるものとし、本明細書における用語「クローズドトラック」を「クローズドSRR」に読み替えるものとする。
ステップS1104においてオープントラックであると決定された場合には、処理はステップS1105に進み、クローズドトラックであると決定された場合には、ステップS1106に進む。
(ステップS1105)本ステップでは、オープントラックに対する記録処理が実行される。オープントラックに対する記録処理は、例えば、図8Aに示されるステップS105〜S114を含む。
(ステップS1106)本ステップでは、クローズドトラックに対する記録処理が実行される。クローズドトラックに対する記録処理は、例えば、図8Aに示されるステップS106〜S114を含む。
すなわち、クローズドトラックへの記録処理においては、疑似上書き記録が行われる。この時、交替先としては、ステップS1104で決定されたクローズドトラックとは異なるオープントラックのNWAでありうる。
以下、図34に示されるデータ記録の手順に従った具体的な処理の例を説明する。
図35Aは、図34に示されるデータ記録の手順に従った処理が行われる前の情報記録媒体100のデータ構造の一例を示す。
図35Aに示される例では、トラック#N−1、トラック#Nがユーザデータ領域108内に割り付けられている。ここで、トラック#N−1はオープントラックである。
トラック#N−1には、記録済み領域6600と未記録領域6602が含まれる。
図35Aに示される状態において、ドライブ制御部311がホスト装置305から記録指示を受信したと仮定する。ここで、この記録指示は、データ”A”6602をLSN=A1(PSN=a1)の位置に記録することを指示するものであるとする。
従来のシーケンシャル記録方法によれば、このような記録指示は記録エラーとなっていた。LSN=A1がNWA6611Aより大きいからである。
あるいは、このような記録指示を記録エラーとしない場合は、図36Aに示すように、PSN=b1からPSN=a1までの領域にダミーデータもしくはパディングデータ(例えば、すべての値が”00h”)を記録し、その領域に続く領域にデータ“A”6602を記録する処理が行われていた。このような処理は、例えば、図8Aに示されるステップS112の直前にダミーデータもしくはパディングデータを記録するステップを挿入することによって達成される。
この方法によれば、PSN=a1の位置にデータ”A”6602が記録される。しかし、パディングデータの記録という無駄な動作が必要となる、あるいは、情報記録媒体100の容量を無駄に消費してしまう、という別の課題が発生する。
また、図36Aに示す方法は、データの追記を行っているため、トラック#N−1がオープントラックの場合にしか用いることが出来ない。
もし、トラック#N−1がクローズドトラックであれば、データの追記が禁止される。よって、クローズドトラックに対しては、図36Aに示す方法による記録は行えない。
トラック#N−1がオープントラックであるかクローズドトラックであるかにかかわらず、データを記録することを可能とするためには、例えば、図37Aに示すように、PSN=a1の位置にデータ”A”6602を記録する代わりに、交替領域内の特定の位置にデータ”A”6602を記録するようにすればよい。
図37Aに示される例では、内周交替領域106内のPSN=s1の位置にデータ”A”6602が記録されている。このように、図37Aに示される例では、トラック#N−1内にデータが記録されないため、LRA6610Aの位置も更新されない。
ドライブ制御部311は、記録指示に含まれる論理アドレスに対応する物理アドレス(すなわち、PSN=a1)をデータ”A”6602が実際に記録された位置を示す物理アドレス(すなわち、PSN=s1)にマッピングするために、交替管理情報6615を生成する。
図37Bは、交替管理情報6615のデータ構造の一例を示す。交替管理情報6615は、交替元アドレスとしての欠陥クラスタ先頭PSN 2012と、交替先アドレスとしての交替クラスタ先頭PSN 2013とを含んでいる。交替管理情報6615の欠陥クラスタ先頭PSN 2012には、記録指示に含まれる論理アドレスに対応する物理アドレス(すなわち、PSN=a1)が設定されている。交替管理情報6615の交替クラスタ先頭PSN 2013には、データ”A”6602が実際に記録された位置を示す物理アドレス(すなわち、PSN=s1)が設定されている。
このような交替管理情報6615を生成することにより、LSN=A1の位置からデータを再生することを示す再生指示をドライブ制御部311がホスト装置315から受信した場合には、LSN=A1に対応するPSN=a1の位置の代わりに、PSN=s1の位置からデータ“A”6602を再生することが可能になる。
あるいは、ステップS1104においてトラック#N−1がオープントラックであると決定された場合には、図38Aに示すように、トラック#N−1のNWA6611Aの位置(すなわち、PSN=b1の位置)にデータ”A”6602を記録するようにしてもよい。この場合には、データ”A”6602の記録に伴って、トラック#N−1内の最終記録位置を示すLRA6610AがLRA6610Bに更新される。
ドライブ制御部311は、記録指示に含まれる論理アドレスに対応する物理アドレス(すなわち、PSN=a1)をデータ”A”6602が実際に記録された位置を示す物理アドレス(すなわち、PSN=b1)にマッピングするために、交替管理情報6616を生成する。
図38Bは、交替管理情報6616のデータ構造の一例を示す。交替管理情報6616の構造は、交替管理情報6615の構造と同一である。交替管理情報6616の欠陥クラスタ先頭PSN 2012には、記録指示に含まれる論理アドレスに対応する物理アドレス(すなわち、PSN=a1)が設定されている。交替管理情報6616の交替クラスタ先頭PSN 2013には、データ”A”6602が実際に記録された位置を示す物理アドレス(すなわち、PSN=b1)が設定されている。
このような交替管理情報6616を生成することにより、LSN=A1の位置からデータを再生することを示す再生指示をドライブ制御部311がホスト装置315から受信した場合には、LSN=A1に対応するPSN=a1の位置の代わりに、PSN=b1の位置からデータ“A”6602を再生することが可能になる。
あるいは、ステップS1104においてトラック#N−1がクローズドトラックであると決定された場合には、図39Aに示すように、トラック#N−1とは異なるオープントラックのNWAの位置にデータ”A”6602を記録するようにしてもよい。
図39Aに示される例では、トラック#N−1に隣接するトラック#Nがオープントラックであるため、トラック#NのNWA6621Aの位置にデータ”A”6602が記録されている。この場合には、データ”A”6602の記録に伴って、トラック#N内の最終記録位置を示すLRA6621AがLRA6621Bに更新される。
一方、記録指示が行われたクローズドトラックであるトラック#N−1内の最終記録位置を示すLRA6611Aは更新されない。
なお、トラック#Nとは異なるオープントラックは、トラック#Nに隣接するトラックに限定されない。トラック#Nとは異なるオープントラックは、トラック#N以外の任意のオープントラックであり得る。
例えば、記録指示に含まれる論理アドレスに対応する物理アドレスから近いオープントラックの次回記録位置であれば、アクセス性の観点から望ましい。
ドライブ制御部311は、記録指示に含まれる論理アドレスに対応する物理アドレス(すなわち、PSN=a1)をデータ”A”6602が実際に記録された位置を示す物理アドレス(すなわち、PSN=b2)にマッピングするために、交替管理情報7615を生成する。
図39Bは、交替管理情報7615のデータ構造の一例を示す。交替管理情報7615の構造は、交替管理情報6615の構造と同一である。交替管理情報7615の欠陥クラスタ先頭PSN 2012には、記録指示に含まれる論理アドレスに対応する物理アドレス(すなわち、PSN=a1)が設定されている。交替管理情報7615の交替クラスタ先頭PSN 2013には、データ”A”6602が実際に記録された位置を示す物理アドレス(すなわち、PSN=b2)が設定されている。
このような交替管理情報7615を生成することにより、LSN=A1の位置からデータを再生することを示す再生指示をドライブ制御部311がホスト装置315から受信した場合には、LSN=A1に対応するPSN=a1の位置の代わりに、PSN=b2の位置からデータ“A”6602を再生することが可能になる。
図37A、図38Aおよび図39Aのいずれの場合でも、情報記録媒体100において使用された領域は、記録指示により指定されるデータ“A”6602の容量分だけであり、ダミーデータなどの無駄な記録は行う必要がない。
以上より、記録指示に含まれる論理アドレスに対応する物理アドレスがNWAよりも大きい場合でも、交替管理情報を用いた交替記録を行うことにより、記録エラーとならず、かつ、効率的なデータ記録を行うことが可能となる。
図40A は、図34に示されるデータ記録の手順に従った処理が行われる前の情報記録媒体100のデータ構造の一例を示す。
図40Aに示される例では、トラック#N−1、トラック#Nがユーザデータ領域108内に割り付けられている。ここで、トラック#N−1は、未記録領域6701を含むクローズドトラックである。トラック#Nは、オープントラックである。
トラック#N−1にはデータ”A”6700が既に記録されているが、トラック#N−1はクローズドトラックであるため、トラック#N−1への新規データの追記は禁止されている。
上述した通り、クローズドトラックは、ヘッダ情報201にトラック番号が含まれていないトラックであり、新規データの追加が禁止されているトラックであるからである。
トラック#Nはオープントラックであるため、トラック#Nへの新規データの追記は可能である。
図40Aに示される状態において、ドライブ制御部311がホスト装置305から記録指示を受信したと仮定する。ここで、この記録指示は、データ”A1”6703AをLSN=A1(PSN=a1)の位置に記録することを指示するものであるとする。ここで、LSN=A1(PSN=a1)の位置は、データ”A”6700が既に記録されている位置である。従って、この記録指示は、データ“A1”6703をデータ”A”6700に擬似上書き記録することを指示するものである。
ここで、仮に、図41Aに示すように、クローズドトラックであるトラック#N−1の未記録領域中のNWA6711Aの位置(すなわち、PSN=a2の位置)にデータ“A1”6703Aを記録したとする。
この場合には、ドライブ制御部311は、記録指示に含まれる論理アドレスに対応する物理アドレス(すなわち、PSN=a1)をデータ”A1”6703Aが実際に記録された位置を示す物理アドレス(すなわち、PSN=a2)にマッピングするために、交替管理情報6730を生成する。
図41Bは、交替管理情報6730のデータ構造の一例を示す。交替管理情報6730の構造は、交替管理情報6615の構造と同一である。交替管理情報6730の欠陥クラスタ先頭PSN 2012には、記録指示に含まれる論理アドレスに対応する物理アドレス(すなわち、PSN=a1)が設定されている。交替管理情報6730の交替クラスタ先頭PSN 2013には、データ”A1”6703Aが実際に記録された位置を示す物理アドレス(すなわち、PSN=a2)が設定されている。
データ”A1”6730の記録に伴って、トラック#N−1内の最終記録位置を示すLRA6710AがLRA6710Bに更新される。このように、クローズドトラックの未記録領域にデータを記録するためには、クローズドトラック内のLRAを更新する処理が必須となる。
情報記録媒体100の記録容量の増加に伴い、ユーザデータ領域108に割り当て可能なトラックの数は非常に大きくなっている。特に、クローズドトラックに関しては、一旦割り付けられらた場合、その数は減ることはない。(一方、オープントラックの数は増減する。例えば、オープントラックがクローズドトラックになるとき、オープントラックの数が減少する。)
その結果、クローズドトラック内のLRAの更新処理は非常に処理量の大きい処理となる可能性がある。
このよう処理量の大きい処理を避けるために、本実施の形態においては、図39Aを参照して説明したデータ記録の手順と同様に、トラック#N−1がクローズドトラックであると決定された場合には、図42Aに示すように、トラック#N−1とは異なるオープントラックのNWAの位置にデータ”A1”6703Aを記録する。
図42Aに示される例では、トラック#N−1に隣接するトラック#Nがオープントラックであるため、トラック#NのNWA6721Aの位置にデータ”A1”6703Aが記録されている。
ドライブ制御部311は、記録指示に含まれる論理アドレスに対応する物理アドレス(すなわち、PSN=a1)をデータ”A1”6703Aが実際に記録された位置を示す物理アドレス(すなわち、PSN=a3)にマッピングするために、交替管理情報6733を生成する。
図42Bは、交替管理情報6733のデータ構造の一例を示す。交替管理情報6733の構造は、交替管理情報6615の構造と同一である。交替管理情報6733の欠陥クラスタ先頭PSN 2012には、記録指示に含まれる論理アドレスに対応する物理アドレス(すなわち、PSN=a1)が設定されている。交替管理情報6733の交替クラスタ先頭PSN 2013には、データ”A1”6703Aが実際に記録された位置を示す物理アドレス(すなわち、PSN=a3)が設定されている。
データ”A1”6703Aの記録に伴って、トラック#N内の最終記録位置を示すLRA6721AがLRA6721Bに更新される。しかし、トラック#N−1内の最終記録位置を示すLRA6710Aを更新する必要はない。このように、オープントラックの未記録領域にデータを記録するために、クローズドトラック内のLRAを更新する処理は不要である。
このようなデータ記録の手順により、クローズドトラックに対する疑似上書き記録を可能としながら、クローズドトラック内のLRA213の管理を不要とすることが可能となる。
なお 、実施の形態1において、データの記録はRMW処理によって実現されてもよい、と述べた。
もし、記録指示により指定されるデータの終端がECCクラスタ境界に一致しておらず、かつ、記録指示に含まれる論理アドレスに対応する物理アドレスがクローズドトラック中の未記録領域に含まれると決定された場合、記録されるべきデータにパディングデータ(例えば、”00h”)を挿入し、トラックに記録されるデータの終端がECCクラスタ境界に一致するようにしたデータをトラックに記録するようにしてもよい。
(実施の形態7 )
上述したように、図8AのステップS112において、記録先として指定された位置にデータが記録される。データが記録された後に、そのデータの記録が成功したか否かを判定する処理が実行される。このような処理をベリファイ処理という。ベリファイ処理の結果、そのデータの記録が失敗したと判定された場合には、ベリファイエラーが発生したという。ベリファイ処理は、例えば、記録したデータを情報記録媒体100から読み出し、その読み出されたデータが記録されるべきデータに一致するか否かを判定することによって行われる。
上述の交替記録において、ユーザデータ領域108中の交替クラスタにデータを記録した際にベリファイエラーが発生する場合がありうる。この場合には、その交替クラスタを欠陥クラスタとして、交替領域中に新たな交替クラスタを割り付け、その新たな交替クラスタにデータを記録する。
交替領域中の新たな交替クラスタにデータを記録した際にベリファイエラーが発生した場合には、その新たな交替クラスタを交替領域中のさらに新たな交替クラスタに交替させる処理を繰り返す。
図43は、図8AのステップS112において実行される処理の手順の一例を示す。図43に示される各ステップは、ドライブ装置310のドライブ制御部311によって実行される。
(ステップS1108)ドライブ制御部311は、ユーザデータ領域108の特定の位置にデータを記録する。ここで、その特定の位置は、図8AのステップS107、110において決定される。
(ステップS1109)ドライブ制御部311は、ユーザデータ領域108へのデータの記録が成功したか否かを判定する。このような判定は、例えば、上述したベリファイ処理を実行することによってなされる。もし成功なら、処理は図8のステップS113に進む。もし失敗なら、処理はステップS1110に進む。
(ステップS1110)ドライブ制御部311は、交替領域(例えば、内周交替領域106もしくは外周交替領域107)の特定の位置にデータを記録する。ここで、その特定の位置は、交替領域管理情報1108に含まれる交替領域中での次回使用可能位置情報を参照することにより決定される。
(ステップS1111)ドライブ制御部311は、交替領域へのデータの記録が成功したか否かを判定する。このような判定は、例えば、上述したベリファイ処理を実行することによってなされる。もし成功なら、処理は図8AのステップS113に進む。もし失敗なら、処理はステップS1110に戻る。このように、交替領域へのデータの記録が成功するまで交替領域へのデータの記録が繰り返される。
上述したように、ユーザデータ領域108内に欠陥クラスタが存在する場合には、内周交替領域106および外周交替領域107のうちの少なくとも一部が、その欠陥クラスタを交替する代替クラスタを記録するための領域として使用される。
あるいは、内周交替領域106および外周交替領域107のうちの少なくとも一部は、後述の疑似上書き記録における更新後のデータを記録するための領域としても使用され得る。
すなわち、疑似上書き記録の交替記録におけるベリファイエラーによりユーザデータ領域108内で欠陥クラスタが発生した場合には、内周交替領域106および外周交替領域107のうちの少なくとも一部は、疑似上書き記録における更新後のデータを記録するための領域として使用され得る。
以下、図34、図43に示されるデータ記録の手順に従った具体的な処理の例を説明する。
図44Aは、図34に示されるデータ記録の手順に従った処理が行なわれる前の情報処理媒体100のデータ構造の一例を示す。
図44Aに示される例では、トラック#M 7000、トラック#N 7100がユーザデータ領域108内に割り付けられている。ここで、トラック#M 7000は、データ“A”7001を含む記録済領域7003と未記録領域7002とを含むオープントラックである。
また、トラック#N 7100は、未記録領域7102を含むオープントラックである。
図44Aに示される状態において、ドライブ制御部311がホスト装置305から記録指示を受信したと仮定する。ここで、この記録指示は、データ“A1” 7101をLSN=A0(PSN=a0)の位置に記録することを指示するものであるとする。ここで、LSN=A0(PSN=a0)の位置は、データ”A”7001が既に記録されている位置である。従って、この記録指示は、データ“A1” 7101をデータ”A”7001に擬似上書き記録することを指示するものである。
ドライブ制御部311は、ユーザデータ領域108の特定の位置にデータ“A1” 7101Aを記録する(ステップS1108)。
図45Aに示される例では、ユーザデータ領域108中の1つのNWAの位置であるPSN=a1の位置にある交替クラスタにデータ“A1” 7101Aが記録されている。
この場合、ドライブ制御部311は、PSN=a1の位置にある交替クラスタへのデータ“A1” 7101Aの記録が成功したか否かを判定する(ステップS1109)。
もし成功なら、ドライブ制御部311は、図45Bに示す交替管理情報7200を生成する。もし失敗なら、ドライブ制御部311は、交替領域の特定の位置にデータ“A1” 7101Aを記録する(ステップS1110)。
図46Aに示される例では、内周交替領域106内の位置であるPSN=s1の位置にある交替クラスタにデータ“A1” 7101Aが記録されている。この場合、ドライブ制御部311は、PSN=s1の位置にある交替クラスタへのデータ“A1” 7101Aの記録が成功したか否かを判定する(ステップS1111)。
もし成功なら、ドライブ制御部311は、図46Bに示す交替管理情報7201を生成する。もし失敗なら、ドライブ制御部311は、交替領域の特定の位置にデータ“A1” 7101Aを記録する。
交替領域 へのデータ記録が成功するまで、交替領域へのデータ記録が繰り返される。従って、交替記録が何回行なわれるかは、事前に知ることができない。
よって、ドライブ装置310が1回の記録指示をホスト装置305から受信した場合において、ドライブ装置310が複数回の交替記録を行う場合がありうる。この時、2回目以降の交替記録はホスト装置305が予期しない交替記録となる。
実施の形態4などで述べたように、ホスト装置305が予期しない交替記録がドライブ装置により実施さると交替管理情報リスト1000の容量が増加するという課題がある。
一方、本実施の形態においては、疑似上書きによる交替がオープントラックのNWAに対して行われ、ベリファイエラーとなった場合、以降の交替記録は交替領域に行うものとする。
これにより、ユーザデータ領域内で、ホスト装置305が予期しない交替記録が発生しなくなる。
よってホスト装置305が連続的に記録指示を行った場合でも、交替管理情報リストの容量増加が生じない。
また 、ベリファイエラーとなった場合、交替先をユーザデータ領域とせず、交替領域とすることにより、NWAが定まるまで時間を短縮することが可能となる。
もし、交替先をユーザデータ領域内に割り付けるとすると、NWAへ交替した後、ベリファイ処理が終了するまで、最新のNWAが定まらない。
なぜなら、交替先でベリファイ処理が成功するまでNWAが更新され続けるからである。
一方、本発明によれば、NWAは、疑似上書き記録が行われることが決定された時点で定まるので、ドライブ装置310は、ホスト装置305からの要求に対して、時間的な遅れを発生させることなく最新のNWAを返信することが可能となる。
なお 、上記では、トラック#M 7000がオープントラックである例を説明したが、トラック#M 7000は、クローズドトラックであってもよい。また、記録指示が示す位置が未記録領域7002に含まれていてもよい。いずれの場合にも、上記と同様に、図43に示されるステップS1118〜S1111が実行される。
なお 、各実施の形態において、交替管理情報として、図5Bの交替管理情報1010、図11の交替管理情報1010B、図16のDFL entry2010のいずれも用いることができる。
交替管理情報は、交替元位置情報1012(あるいは、欠陥クラスタ先頭PSN 2012)と、交替先位置情報1013(あるいは、交替クラスタ先頭PSN 2013)とを少なくとも含む。
さらに、交替の目的(欠陥による交替、または、疑似上書きによる交替)によらず、同じ交替管理情報を用いることができる。これにより、交替の目的や交替先の種類や位置に関わらず、単一の構造の交替管理情報により疑似上書き記録方式を実現可能である。
これにより、疑似上書き記録された情報記録媒体100からデータを再生するときは、交替の目的や交替先の種類や位置を意識することなく、同一の処理で再生することが可能となり、ドライブ装置310が容易に実装可能となる。
なお、交替管理情報の交替先位置情報1013(あるいは、交替クラスタ先頭PSN 2013)には、疑似上書きを目的とする交替が発生した場合には、ユーザデータ領域108の特定の位置を示す物理アドレスが設定され、欠陥による記録を目的とする交替が発生した場合には、交替領域(例えば、内周交替領域106もしくは外周交替領域107)の特定の位置を示す物理アドレスが設定される。
それ故、疑似上書きを目的とする交替が発生した場合に交替管理情報の交替先位置情報1013(あるいは、交替クラスタ先頭PSN 2013)に設定される物理アドレスの範囲は、ユーザデータ領域108の範囲(以下、第1の範囲ともいう)に限定される。また、欠陥による記録を目的とする交替が発生した場合に交替管理情報の交替先位置情報1013(あるいは、交替クラスタ先頭PSN 2013)に設定される物理アドレスの範囲は、交替領域の範囲(以下、第2の範囲ともいう)に限定される。
このよう に、交替の目的に関する情報を保持したまま、単一の構造で交替管理情報を生成できるので、交替クラスタからの再生時にエラーが発生した場合のリカバリーのための情報として利用できる。
すわなち、交替管理情報が欠陥による記録を目的とする交替である場合、交替元には交替先と同じデータが記録されていると判断できる。この時、交替元を再生してみることにより、正しいデータを再生できる場合がある。正しいデータを再生できた場合、再生エラーを回避することが可能となる。
(実施の形態8 )
本実施 の形態においては、交替記録において、代替クラスタの記録先を選択するための手順について図47を参照して説明する。
図47は、本発明の情報記録媒体100において、交替領域やトラック構造、未記録領域の状態の一例を示している。
情報記録媒体100には、内周交替領域106、外周交替領域107及びそれらの未記録領域601A、601Bが含まれる。
また、トラック#1 8610(オープン)、トラック#2 8620(オープン)及びそれらの未記録領域8612、8622が含まれる。
よって情報記録媒体100上には複数の代替クラスタの記録先が存在することになる。
本実施の形態は、交替領域中の未記録領域の容量が所定の基準を満たす状態においては、ユーザデータ領域を優先的に代替クラスタの記録先として使用する。
すなわち、代替クラスタの記録先を決定する際、その時点での交替領域中の未記録領域の容量をディスク構造情報1100から取得する。
そして、未記録領域の容量が所定の基準値を満たしているかどうかを判別する。
もし、満たしていたら、記録先としてユーザデータ領域を選択する。
ここで所定の基準値とは、例えば、未記録領域の容量値が所定の容量値を下回っている、未記録領域の容量値が交替領域の全容量に対する所定の割合を下回っている、などである。
なお、ユーザデータ領域に未記録領域が無くなった時には交替領域を代替クラスタの記録先とし使用してよい。
このような交替クラスタは、例えば図47の次回使用可能位置情報8600Aに示される位置に記録される。
また、一般に、例えばUDFのようなファイルシステムでは、特定の情報(例えばLVIDと呼ばれるデータ構造)を情報記録媒体100をクローズする際に必ず更新する必要がある。
そしてユーザデータ領域に未記録領域が無くなったら、それ以上ユーザデータの追加は出来ないので、情報記録媒体100のクローズ処理が行われる。
本実施の形態によれば、この状態においても交替領域に未記録領域が残るので、LVIDのような情報を確実に記録可能である。
逆に、もし交替領域を先に使ってしまうと、情報記録媒体100をクローズする際にLVIDを記録できなくなり、クローズ処理が不可能となる。
すなわち、確実なクローズ処理の実行が本実施の形態の効果の一つである。
なお、上述の説明は、欠陥クラスタ及び疑似上書き記録の両方の代替記録について適用可能であることはもちろんのことである。
(実施の形態9 )
本実施 の形態においては、交替記録において、代替クラスタの記録先を選択するための手順について図48を参照して説明する。
図48では、交替元位置9650が欠陥クラスタであり、この位置を交替元とする交替記録が行われる。
この時、交替先は、以下の手順により決定される。
図48において、代替クラスタが記録可能な交替先としては、未記録領域9601A(内周交替領域106中)、未記録領域9612(トラック9610中)、未記録領域9622(トラック9620中)、9601B(外周交替領域107中)がある。
ここで、内周交替領域106から、所定の範囲をD1として示している。
本実施の形態においては、交替元クラスタがD1の範囲にある場合は、交替先を内周交替領域106とする。
同様に、外周交替領域107から、所定の範囲をD4として示している。
本実施の形態においては、交替元クラスタがD4の範囲にある場合は、交替先を外周交替領域107とする。
図48の交替元位置9650は、内周交替領域106からD2の位置にあり、D1>D2であるとすると、交替元位置9650の交替先は内周交替領域106に決定される。
この時、交替クラスタは、例えば図48の次回使用可能位置情報9600Aに示される位置に記録される。
ここで、交替元位置9650として未記録領域9612も使用可能であるが、交替元位置9650は内周交替領域106から所定の範囲D1にあるので、未記録領域9612を使用しない点が本実施の形態の特徴の一つである。
一方、図48の交替元位置9651は、内周交替領域106からD3の位置にあり、D1<D3であるので、交替元位置9651の交替先は内周交替領域106とはならない。同様に、外周交替領域107へも交替されない。
ここで、交替元位置9651は、例えば未記録領域9622などのユーザデータ領域内に交替される。すなわち、内周交替領域106や外周交替領域107に未記録領域があったとしても、上述の範囲に関する条件を満たさない場合、それらを使用しない点が本実施の形態の特徴の一つである。
このような交替先選択手順により、ボリューム空間の先頭部分は優先的に情報記録媒体100の内周部分である内周交替領域106へ交替される。また、ボリューム空間の末尾部分は優先的に情報記録媒体100の外周部分である外周交替領域107へ交替される。
一般に、例えばUDFのようなファイルシステムでは、ボリューム空間の先頭と末尾にボリューム構造や、ディレクトリ構造の起点となる情報(例えば、FSDやROOTディレクトリ)、スペースビットマップなどを配置する。
これらのデータは、情報記録媒体100の読み込み時に最初にアクセスされ、また、頻繁にアクセスされることが多い。
本実施の形態によれば、これらのデータが交替領域中に集中的に配置されるようになるので、データの記録再生の性能を向上させることが可能となる。
なお、ここでは欠陥クラスタの代替記録について説明したが、代替記録という意味では同じである、疑似上書き記録においても上述は適用可能である。
(実施の形態10 )
本実施 の形態において、データの記録手順についてさらに述べる。
図49Aは、本実施の形態によるデータ記録が行われる前の情報記録媒体100のデータ構造の一例を示す図である。
図49Aにおいて、トラック#N−1 10000、トラック#N 10010が割り付けられている。
トラック#N 10010においては、すべてが未記録領域10003である。また、トラック#N 10010は、ユーザデータ領域の終端に位置する。
従来のシーケンシャル記録方式では、トラック#N10010のようなユーザデータ領域の終端に位置するトラック中においてのみ、任意の位置で新たなトラックを割り付けることが可能である。
図49Aの状態において、ホスト装置305からドライブ装置310に対して、データ”B”10820の記録の指示がなされたとする。
ここでデータ”B”10820がLSN=A2(PSN=a2)に対して記録指示されたとすると、従来のシーケンシャル記録における記録方法であれば、例えばダミーデータをPSN=a2の直前まで記録してからデータ”B”10820を記録していた。
この方法であればデータの記録は行われるが、情報記録媒体100の容量をダミーデータにより無駄に消費してしまう、という課題が発生する。特に、PSN=a2がユーザデータ領域の終端に近い場合、ユーザデータ領域の非常に大きな領域が無駄になってしまう。
あるいは、図50Aに示すように、トラック#N 10010の一部をトラック#N+1 10020として新たに追加し、トラック#N+1 10020の先頭からデータ”B”10820を記録していた。
この場合、ユーザデータ領域の無駄はないが、ユーザデータ領域の終端にトラックを割り付けてしまうことになり、これ以上のトラック追加が不可能となってしまう、という課題が発生する。
そこで本実施の形態においては、次のような記録方法により、これらの課題を解決する。
すなわち、新たなトラックが追加可能であるようなトラックにおいて、NWAより大きい物理アドレスに対して記録指示が行こなわれた場合、そのデータは、代替クラスタ上に交替記録する。
そして、記録指示された物理クラスタを交替元とし、実際に記録を行った代替クラスタを交替先とする交替管理情報1010を生成する。
例えば、図51Aは交替先を外周交替管理領域107とした場合のデータ構造の一例である。
図51Aでデータ”B”10820Bは外周交替領域107に記録されている。一方、トラック#N 10010中のPSN=a2の位置、すなわち、ホスト装置305から記録指示のあった位置にはデータは記録されない。よって、LRA10030Aも更新されていない。
この時、生成される交替管理情報10817は、図51Bに示すように、交替元位置情報1012にPSN=a2が、交替先位置情報1013にPSN=s2が、それぞれ設定される。
PSN=a2は上述の通り、ホスト装置305から記録指示のあった位置に相当する。一方、PSN=s2は、外周交替領域107内にデータ”B”10820が実際に記録された位置である。
このような交替管理情報817を生成することにより、ホスト装置305からのLSN=A2に対する再生指示があった場合、PSN=s2からデータ”B”10820を再生することが可能となる。
同様に、図52Aではデータ”B”10820Cは記録可能なトラック#N−1 10000のNWA10011Aの位置に記録されている。この記録に従って、LRA10010AがLRA10010Cに更新される。
そしてこの時、生成される交替管理情報10818は、図52Bに示すように、交替元位置情報1012にPSN=a2が、交替先位置情報1013にPSN=b1(NWA611Aに対応する物理アドレス)が、それぞれ設定される。
さらに、PSN=b1に対応する論理クラスタは未記録クラスタとなるので、交替元位置情報1012にPSN=b1が、交替先位置情報1013に0が設定された交替管理情報10819を設けるようにしてもよい。
このような交替管理情報10818を生成することにより、ホスト装置305からのLSN=A2に対する再生指示があった場合、PSN=b1からデータ”B”10820Cを再生することが可能となる。
また、交替管理情報10819を生成することにより、ホスト装置305からPSN=b1に対応するLSNへの再生指示があった場合、データ”B”を再生することなく、例えばすべて0のデータを返すことが可能となる。
図51A及び図52Aのいずれの場合でも、情報記録媒体100で使用した領域は、記録指示のあったデータ”B”10802の容量分だけであり、ダミーデータ等の無駄な記録は行う必要が無い。
また、新たなトラックを追加することなくデータ記録を行っているので、トラック#N 10010に対して、さらなるトラックの追加は自由に行うことが可能である。
以上より、新たなトラックが追加可能であるようなトラックにおいて、NWAよりも大きなアドレス位置にデータの記録が指示された場合でも、交替管理情報を用いた交替記録を行うことにより、記録エラーとならず、効率的で、その後の新たなトラックの追加を妨げないようなデータ記録を行うことが可能となる。
また、図53Aは、図52Aの状態からさらにトラック#N 10010に対してデータが記録され、記録済み領域10840が形成された後、PSN=a2の直前のECCクラスタ(PSN=c1)にデータ”C”10842が記録される時のデータ構造の例示図である。
ここでは、データ”C”10842の記録後のベリファイ処理によりPSN=c1のECCクラスタが欠陥クラスタ10841であり、その結果、データ”C”10842AがPNS=a2のECCクラスタに交替記録されている。
この交替記録を反映するため、図53Bに示す、交替管理情報10820が設けられる。交替管理情報10820の交替元はPNS=c1、交替先はPNS=a2となる。
図52Aの状態では、PNS=a2にはデータは記録されなかったが、図53Aのように、シーケンシャル記録により、順次データが記録された後には、そのような領域にデータを記録することになり、ユーザデータ領域を有効に利用することが可能である。
(実施の形態11 )
本実施 の形態において、データの記録手順についてさらに述べる。
ここでは、UDF規格に則り、ファイルシステムのフォーマット処理を行う処理を例として、記録手順について説明する。
図54は、交替記録が行われていない時の、論理アドレス空間と物理アドレス空間の対応例を示す図である。
また、図54では、UDF規格で定められたボリューム構造領域410に含まれるデータの配置についても示している。
ファイルシステムのフォーマット処理とは、これらのボリューム構造領域410のデータや、パーティション空間内のメタデータファイル440などを含むファイル管理情報を記録する処理のことである。
従来、ファイルシステムは、図54の状態を想定してファイル管理情報をメモリ回路302等内で生成してから情報記録媒体100に記録していく。
実際に記録を行うと、例えば図55のように、途中で欠陥クラスタが発生し、交替記録が行われる場合がある。
この交替記録に伴い、以降のデータはすべて交替記録しなければならなくなる。
これにより、交替管理情報リスト1000の容量が増加してしまう。
このような状況を回避する1つの方法は、PSN=1292の欠陥クラスタを交替領域に交替記録することである。
しかしながら、ボリューム構造領域410やメタデータファイル440は、情報記録媒体100中のユーザデータにアクセスするために必ず最初に読み出す必要があるデータである。
このようなデータが、交替領域に分散して記録されるとユーザデータの再生開始までの時間が延びてしまい、ユーザの利便性を損ねてしまう。
また、別の回避方法は、ファイル管理情報内のデータを変更し、記録先の論理アドレスを変更することである。すなわち、交替記録により記録先がずれてしまう場合、そのずれ分を、ファイル管理情報の記録先を変更することにより吸収してしまう。これにより、交替記録の必要が無くなる。
しかしながら、このような処理のためには、フォーマット処理の開始時に確定していたファイル管理情報のデータを再度、生成する必要が発生し、ファイルシステムの複雑さを増加させ、処理時間の増大にもつながる。
そこで本実施の形態においては、次のような記録方法により、これらの課題を解決する。
すなわち、図56に示すように、ボリューム構造領域410に含まれるデータを記録する際に、開始ボリューム記述子ポインタ703とそれ以外のデータとの間に所定の数の予約クラスタ9000を確保してファイルシステムのフォーマット処理を行う。
予約クラスタ9000は初期状態では有効なデータが記録されない領域であるが、ボリューム構造領域410の記録時に、ベリファイ処理に失敗した場合、代替クラスタとして使用するための領域である。
本実施の形態においては、ボリューム識別子列700、主ボリューム記述子列701及び論理ボリューム保全記述子702を順にベリファイ・アフター・ライト処理により記録していく。
そしてベリファイ処理に失敗した場合は予約クラスタ11000に交替記録を行う。
図56では例えば、PSN=1132が欠陥クラスタでその交替先がPSN=1164である。以降、論理ボリューム保全記述子702も交替記録されるが、予約クラスタ11000を複数個確保しておくことにより、開始ボリューム記述子ポインタ703やそれ以降のパーティション空間710は、記録位置をずらすことなく、PSN=1356に記録することが可能となる。
さらに、本実施の形態においては、予約クラスタ11000内に開始ボリューム記述子ポインタ703の予備記録を行う。
開始ボリューム記述子ポインタ703の予備記録とは、開始ボリューム記述子ポインタ703の実際の記録に先立ち、開始ボリューム記述子ポインタ703と同じ内容のデータを記録しておくことである。
図56においては、PSN=1292や1324への記録がそれに該当する。
予備記録を行うことによる効果は次の通りである。
もし、PSN=1356への開始ボリューム記述子ポインタ703の記録が失敗した場合、交替記録が必要となる。
その時点で、予備記録済みのPSN=1292や1324を交替先に指定した交替管理情報1010を生成すれば、開始ボリューム記述子ポインタ703が交替記録されたことになり、なおかつ、PSN=1356以降にアドレスずれを発生させない。
また、ファイル管理情報に関しては、交替先と交替元が非常に近くなり、再生時のアクセス時間も短縮される。
なお、開始ボリューム記述子ポインタ703とパーティション空間710の先頭との間にさらに予約クラスタ11000を設けるようにしてもよい。
以上より、本実施の形態は、UDF規格によるファイルシステムのフォーマット処理に置いて、ファイル管理情報への高速なアクセスを実現し、さらに、交替管理情報1010の発生を回避することを可能とする。
なお、予約クラスタ11000を特定の記録済みクラスタと関連づけるための特別な交替管理情報1010を定義してもよい。
具体的には、交替管理情報1010の状態情報1011に、この特別な交替情報であることを示す新たなフラグを設ける。
そして、交替元位置情報1012に、記録済みクラスタのPSNを設定する。一方、交替先位置情報1013に、予約クラスタ11000のPSNを設定する。
例えば、PSN=1196の論理ボリューム保全記述子702に対して、PSN=1228の未記録予約クラスタ11001の関連づけが可能となる。
この未記録クラスタに対しては、交替管理情報1010により関連づけられた記録済みクラスタの疑似上書き記録の時にだけデータの記録が許される。
このような関連づけを行うことにより、ある記録済みクラスタの将来における疑似上書き記録が保証される。
例えば、論理ボリューム保全記述子702は、UDF規格でフォーマットされた情報記録媒体100において、最後に必ず記録する必要があるデータである。
よって、特定の記録済みクラスタと予約クラスタを関連づけしておくことにより、その疑似上書き記録を確実に実行できるようになる。