以下、図面を参照しながら、本発明の実施の形態を説明する。
(実施の形態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によって実行される。
(ステップS601)ドライブ制御部311は、ホスト装置305から論理NWA要求指示を受け取る。
論理NWA要求指示は、ユーザデータ領域108内に割り付けられた少なくとも1つのトラックの中から1つのトラックを指定する情報を含む。論理NWA要求指示とは、その指定されたトラック内の論理NWAをホスト装置305がドライブ装置310から取得することを目的として、ホスト装置305からドライブ装置310に出力される指示をいう。
論理NWA要求指示は、例えば、READ TRACK INFROMATIONコマンドに対応する。
(ステップS602)ドライブ制御部311は、NWA要求指示に応答して、メモリ回路312を参照し、メモリ回路312に格納されている少なくとも1つの記録データのそれぞれの容量を決定する。ここで、記録データとは、ホスト装置305からの記録指示によって情報記録媒体100に記録されるべきことが指示されているデータをいう。すなわち、記録データとは、情報記録媒体100に記録される前にメモリ回路312に一時的に格納されているデータである。
少なくとも1つの記録データのそれぞれの容量は、例えば、記録指示において指定される記録されるべきデータのサイズを参照することによって決定され得る。
(ステップS603)ドライブ制御部311は、論理NWA要求指示によって指定されたトラック内のLRA213(物理アドレス)と、ステップS602において決定されたメモリ回路312に格納されている少なくとも1つの記録データのそれぞれの容量とに基づいて、論理NWA要求指示によって指定されたトラック内のNWAを決定する。
(ステップS604)ドライブ制御部311は、初期論理アドレス−物理アドレスマッピングに従って、トラック内のNWAをトラック内の論理NWAに変換する。
(ステップS605)ドライブ制御部311は、トラック内の論理NWAをホスト装置305に出力する。
以下、図34に示されるデータ記録の手順に従った具体的な処理の例を説明する。
図35は、本実施の形態によるデータ記録が行われる前の情報記録媒体100のデータ構造、及び、ドライブ装置310内のメモリ回路312の状態の一例を示す。なお、メモリ回路312の代わりに任意のメモリ(例えば、キャッシュメモリ)を用いるようにしてもよい。
図35において、トラック#N 6000は、記録済領域6600と未記録領域6601を含む。LRA6610A(PSN=a1)の位置までユーザデータが記録済みであるとする。
ドライブ装置310は、ホスト装置305からの記録指示に対する応答性を向上させるためにバッファリング処理を行う。
例えば、ホスト装置305がデータ“A”6602及びデータ“B”6603を記録するようにドライブ装置310に指示したとする。
この記録指示に対して、ドライブ装置310のドライブ制御部311は、データ“A”6602及びデータ“B”6603をすぐには情報記録媒体100に記録するようには動作せず、それらのデータをメモリ回路312に一時的に格納する。
その後、ドライブ制御部311は、データ“A”6602及びデータ“B”6603を所定のタイミングで情報記録媒体100に記録するように記録再生部314を制御する。
図35に示される状態において、メモリ回路312に後で記録されるデータが格納されており、ホスト装置305がこの状態を考慮せずに、データ“C”6604をNWA6611Aの位置に記録するようにドライブ装置310に指示する場合を考える。
この場合、ホスト装置305は、データ“C” 6604を記録するようにドライブ装置310に指示する前に、データ“C” 6604を記録すべきトラックの論理NWAを取得することをドライブ装置310に要求する。
データ“C” 6604を記録すべきトラックは、例えば、ホスト装置305で動作するファイルシステムにより決定される。図35に示される例では、データ“C” 6604を記録すべきトラックは、トラック#N 6000である。
ここで、論理NWAを要求されたドライブ装置310は、(数1)を参照して説明したように、LRA6610A(PSN=a1)から、NWA6611A(PSN=a2)を決定するものと仮定する。
この場合、ドライブ装置310は、初期LSN−PSNマッピングに従って、PSN=a2をLSN=A2に変換し、論理アドレス(LSN=A2)を論理NWAとしてホスト装置305に返信する。
論理NWAを受け取ったホスト装置305は、LSN=A2の位置にデータ“C”6604を記録するようにドライブ装置310に記録指示を出す。
この記録指示を受け取ったドライブ装置310は、まず、メモリ回路312内に既に格納されているデータ“A“6602及びデータ”B“6603を情報記録媒体100に記録する。
図36に示すように、データ“A“6602がPSN=a2に記録され、次にデータ“B”6603が記録される。
その後、ドライブ装置310は、ホスト装置305からの記録指示に従い、PSN=a2の位置にデータ”C“6604を記録しようとする。しかしながら、データ“A“6602の記録により、PSN=a2は既に記録済みとなっている。
ドライブ装置310は、PSN=a2の位置の代わりに、PSN=a4の位置にデータ“C”6604を記録する。
その結果、情報記録媒体100上のデータ構造は図36のようになる。
上述したように、ホスト装置305はLSN=A2、すなわちPSN=a2の位置に対してデータ”C“6604の記録指示を出していたのに対し、実際には、データ”C“6604は、それとは異なる位置であるPSN=a4の位置に記録されている。すなわち、このことは、PSN=a2からPSN=a4への交替記録が行われたことを意味する。
よって、データ“C”6604に対する交替管理情報1010が生成されてしまい、交替管理情報リスト1000の容量が増加するという課題が生じる。
これに対し、図34に示される本実施の形態のデータ記録の手順によれば、データ“C”6604に対する交替管理情報1010が生成されることはない。従って、図34に示される本実施の形態のデータ記録の手順によれば、上述した交替管理情報リスト1000の容量が増加するという課題を解決することができる。
以下、論理NWAを要求された場合のドライブ装置310における処理を詳細に説明する。
ドライブ制御部311は、メモリ回路312中に既に格納されているデータ“A”6602の容量とデータ“B”6603の容量とを決定する。データ“A”6602の容量は、例えば、データ“A”6602に対する記録指示に指定されているデータサイズを参照することにより決定され得る。データ“B”6603の容量は、例えば、データ“B”6603に対する記録指示に指定されているデータサイズを参照することにより決定され得る。
ドライブ制御部311は、現在のLRA6610Aと、メモリ回路312中に既に格納されているデータ“A”6602の容量およびデータ“B”6603の容量とに基づいてNWAを決定する。
具体的には、NWAは、以下の手順に従って決定される。
1)現在のLRA6610A(PSN=a1)を(数1)に代入することにより、NWA6611A(PSN=a2)を求める。
2)NWA6611A(PSN=a2)にデータ”A”6602の容量を加算することにより、第1の中間LRAを求める。
3)第1の中間LRAを(数1)に代入することにより、第1の中間NWAを求める。
4)第1の中間NWAにデータ”B”6603の容量を加算することにより、第2の中間LRAを求める。
5)第2の中間LRAを(数1)に代入することにより、NWAを求める。
図35に示される例では、このNWAは、NWA6611B(PSN=a4)に等しい。
ドライブ制御部311は、初期論理アドレス−物理アドレスマッピングに従って、PSN=a4をLSN=A4に変換し、論理アドレス(LSN=A4)を論理NWAとしてホスト装置305に返信する。
このようにしてNWA6611Bの位置を求めることは、NWA6611A以降にデータ“A”6602およびデータ“B”6603が実際に記録されたと仮定して、それらのデータが記録された後の新たなNWAの位置を求めることと同等である。
なお、メモリ回路312に格納されたデータは、異なるトラックへ記録するようにホスト装置305から指示されたデータであっても良い。この場合には、トラック毎に、そのトラックに記録されるデータのサイズを考慮してNWAの位置を求めればよい。
なお、メモリ回路312に格納されるデータは、未記録領域へ記録されるようにホスト装置305から指示されたデータに限らず、記録済みデータを上書きするようにホスト装置305から指示されたデータでも良い。
記録済みデータを上書きするようにホスト装置305から指示されたデータの場合、ドライブ装置310は、ホスト装置305から論理NWAを要求された後で、メモリ回路312に格納された上書きするためのデータを記録するトラックとそのトラック内での記録位置を決めても良い。そして、ドライブ装置310は、その決定されたトラックに対して、実際に記録されたと仮定して、それらのデータが記録された後の新たなNWAの位置を求めてもよい。
NWA6611Bに対応する論理NWAを受け取ったホスト装置305は、LSN=A4の位置にデータ“C”6604を記録するようドライブ装置310に記録指示を出す。
この記録指示を受け取ったドライブ装置310は、メモリ回路312内に既に格納されているデータ“A“6602及びデータ”B“6603を記録し、その後に、データ”C“6604を記録する。
その結果、情報記録媒体100に記録されたデータ”C”6604は、擬似上書き記録されることにならないため、交替管理情報が生成されることはない。
また、図37は、情報記録媒体100に記録されたデータの位置の他の例を示す。例えば、メモリ回路312に格納されているデータをパディングデータを記録せず連続的に記録する。
図37に示される例では、NWAは、以下の手順に従って決定される。
1)現在のLRA6610A(PSN=a1)を(数1)に代入することにより、NWA6611A(PSN=a2)を求める。
2)NWA6611A(PSN=a2)にデータ”A”6602の容量とデータ”B”6603の容量とを加算することにより、NWAを求める。
図37に示される例では、このNWAは、PSN=a3に等しい。
ドライブ制御部311は、初期論理アドレス−物理アドレスマッピングに従って、PSN=a3を論理アドレスに変換し、この論理アドレスを論理NWAとしてホスト装置305に返信する。
この論理NWAを受け取ったホスト装置305は、この同じ位置にデータ“C”6604を記録するようドライブ装置310に記録指示を出す。
この記録指示を受け取ったドライブ装置310は、メモリ回路312内に既に格納されているデータ“A“6602とデータ”B“6603とデータ”C“6604を連続して記録する。
このように、図37に示される例の場合も、データ“C”6604の記録位置はホスト装置305が指定した記録先に一致する。
よって、データ“C”6604の記録は交替記録とはならず、交替管理情報1010も生成されない。
以上説明したように、本実施の形態によれば、ドライブ装置310が、LRA213からだけでなく、さらにメモリ回路312(例えば、キャッシュメモリ)内に既に格納されている記録データの容量とに基づいて論理NWAを決定し、ホスト装置305に出力すことにより、交替管理情報1010の発生を回避することが可能となる。その結果、交替管理情報リスト1000のデータ容量削減の効果が得られる。
(実施の形態7 )
図38 を参照して、本実施の形態のデータ記録の手順を説明する。ここでは、図6に示される情報記録再生装置300を用いて、データが情報記録媒体100に記録されるものとする。図38に示される各ステップは、ドライブ装置310のドライブ制御部311によって実行される。
(ステップS701)ドライブ制御部311は、ホスト装置305から記録指示を受け取る。記録指示は、記録されるべきデータと、そのデータが記録されるべき位置を示す論理アドレスとを指定する。
(ステップS702)ドライブ制御部311は、記録指示に含まれる論理アドレスを物理アドレスに変換する。このような変換は、例えば、初期論理アドレス−物理アドレスマッピングに従って行われる。
(ステップS703)ドライブ制御部311は、ユーザデータ領域108内に割り付けられた少なくとも1つのトラックの中から1つのトラックを決定する。このような決定は、例えば、記録指示に含まれる論理アドレスに対応する物理アドレスとディスク管理情報に含まれるトラック管理情報210(図2B)とに基づいて行われる。トラック管理情報210は、トラックのデータ領域102上での範囲を示すので、物理アドレスが分かれば、対応するトラックを決定できる。
(ステップS704)ドライブ制御部311は、メモリ回路312内に格納されている記録されるべきデータ(以下、メモリ内記録用データという)を参照し、そのメモリ内記録用データの先頭位置からNWAに対応する位置までのデータを第1のデータ部分として定義し、NWAに対応する位置からそのメモリ内記録用データの終端位置までのデータを第2のデータ部分として定義する。ここで、NWAは、ステップS703において決定されたトラック内のNWAである。
NWAに対応する位置がメモリ内記録用データの先頭位置と終端位置との間にある場合には、NWAに対応する位置を境界にしてメモリ内記録用データが第1のデータ部分と第2のデータ部分とに区分されることになる。
(ステップS705)ドライブ制御部311は、第1のデータ部分を記録するよりも前に第2のデータ部分を記録するように記録再生部314を制御する。その結果、第2のデータ部分の記録は、NWAの位置への新規記録となり、第1のデータ部分の記録は、擬似上書き記録となる。
以下、図38に示されるデータ記録の手順に従った具体的な処理の例を説明する。
図39は、本実施の形態によるデータ記録が行われる前の情報記録媒体100のデータ構造の一例を示す。
図39に示されるように、トラック#N 7000は、記録済み領域7600と、未記録領域7601とを含む。LRA7610Aの位置までユーザデータが記録済みである。
図39に示される状態において、ホスト装置305は、LSN=A0の位置にデータ”F”7626を記録するようにドライブ装置310に指示したものとする。
記録指示を受け取ったドライブ制御部311は、データ”F”7626をメモリ回路312に格納する。
ドライブ制御部311は、記録指示によって指定された論理アドレス(LSN=A0)を物理アドレス(PSN=a0)に変換し、PSN=a0を含むトラック#N 7000を決定する。そしてトラック#N 7000のLRA7610Aから、NWA7611A(PSN=a1)を決定する。
ドライブ制御部311は、メモリ回路312に格納されているデータ”F”7626の先頭位置、終端位置と、NWA7611Aに対応する位置とを比較することにより、データ”F”7626の第1データ部分としてデータ”D2”7624を定義し、データ”F”7626の第2データ部分としてデータ”E2”7625を定義する。
ここで、データ”D2”7624は、PSN=a0の位置に対応するデータ”F”7626の先頭位置からNWA7611Aに対応する位置までのデータであり、データ”E2”7625は、NWA7611Aに対応する位置からデータ”F”7626の終端位置までのデータである。
ドライブ制御部311は、NWA7611A(PSN=a1)の位置にデータ”E2”7625を記録するように記録再生部314を制御し、その後、記録指示によって指定されたLSN=A0に対応するPSN=a0の位置にデータ”D2”7624を記録するよう記録再生部314を制御する。その結果、データ”E2”の記録はPSN=a1の位置への追記となり、データ”D2”の記録は、PSN=a0の位置への擬似上書き記録となる。
図39に示される例では、データ”D2”は、PSN=a0の代わりにNWA7611C(PSN=a3)の位置に記録される。
図40は、本実施の形態によるデータ記録が行われた後の情報記録媒体のデータ構造を示す。データ”E2”がPSN=a1の位置に記録されており、データ”D2”がPSN=a3の位置に記録されている。
ここで、追記型記録媒体である本発明の情報記録媒体100に対してシーケンシャル記録と疑似上書き記録を行うドライブ装置310おいて、データ”D2”を記録するよりも前に、データ”E2”を記録することが重要である。このように記録順序を制御することにより、交替記録の範囲を最小化することができ、余分な交替記録を発生させないで済むからである。その結果、交替管理情報リスト1000のデータ容量削減が実現される。
図41は、本実施の形態によるデータ記録が行われる前の情報記録媒体100のデータ構造の他の一例を示す。
図41に示される状態において、ホスト装置305が、LSN=A0の位置にデータ”D1”7622を記録することを指示する第1の記録指示と、LSN=A1の位置にデータ”E1”7623を記録することを指示する第2の記録指示とをこの順番でドライブ装置310に出力したと仮定する。
この場合において、ドライブ制御部311が2つの記録指示を受け取った順序と同じ順序(すなわち、第1の記録指示、第2の記録指示の順序)でデータ記録処理を実行したとすると、その記録結果は、図42に示すようになり、データ”E1”7623の交替記録が行われることになる。この点については、上述の実施の形態でも説明したとおりである。
その結果、データ“E1“7623に対する交替管理情報1010が生成されてしまい、交替管理情報リスト1000の容量が増加するという課題が生じる。
これに対し、図38に示される本実施の形態のデータ記録の手順によれば、データ“E1”7623に対する交替管理情報1010が生成されることはない。従って、図38に示される本実施の形態のデータ記録の手順によれば、上述した交替管理情報リスト1000の容量が増加するという課題を解決することができる。
以下、ホスト装置305から複数の記録指示を受け取った場合のドライブ装置310における処理を詳細に説明する。
ドライブ制御部311は、第1の記録指示に対応するデータ”D1”7622と第2の記録指示に対応するデータ”E1”とをメモリ回路312に格納する。
ドライブ制御部311は、第1および第2の記録指示の内容を解析し、それらに対応する記録されるべきデータのうち、追記可能なデータ部分を検出したら、そのデータ部分の記録をその残りのデータ部分の記録よりも先に実行する。
そのデータ部分が追記可能であるか否かの判定は、例えば、図8AのステップS105やステップS108で説明した方法と同様の方法で行うことができる。
ドライブ制御部311は、追記可能なデータ部分について追記を実行し、その後に、その残りのデータ部分について擬似上書き記録を実行する。
なお、データ”D1”7622とデータ”E1”7623とが単一のデータであるとみなすことができる場合(例えば、データ”E1”7623の先頭アドレスがデータ”D1”7622の終端アドレスの次のアドレスである場合)には、図39に示される例と同様に処理することが可能である。
図41に示される例では、データ“E1”7623の記録が追記として検出され、データ”E1”7623がPSN=a1の位置に記録される。この時点で、NWA7611A(PSN=a1)はNWA7611C(PSN=a3)に更新される。次に、データ“D1”7622は、PSN=a0の位置に擬似上書き記録される。その結果、PSN=a0の代わりにPSN=a3の位置にデータ”D1”7622が記録される。
図43は、このようなデータ記録の手順による記録結果を示す。図43に示されるようにデータ”E1”7623はPSN=a1の位置に追記されるため、データ“E1”7623に対する交替管理情報1010が生成されず、交替管理情報リスト1000の容量増加を防ぐことが可能となる。
以上より、本実施の形態は、ホスト装置305からの記録指示をドライブ装置310が解析し、擬似上書き記録よりも追記を優先して実施する。これにより、疑似上書き記録により記録されるデータ容量を減らし、交替管理情報1010の発生を回避することが可能となり、交替管理情報リスト1000のデータ容量削減に効果がある。
(実施の形態8 )
本実施 の形態においては、異なる疑似上書き記録の記録手順について説明する。
図44Aは本実施の形態における記録手順によるデータが記録される前の状態を示す図である。
ここでは、論理アドレス空間内のLSN=P1〜P3の位置にデータ“H”が記録されている。これらの論理アドレスに対応する物理アドレスは、物理アドレス空間内のPSN=p1〜p3の位置であるが、PSN=p3関しては、内周交替領域106内の代替クラスタである、PSN=s1の位置に交替記録されている。
この交替記録を反映して、図44Bに示す交替管理情報リスト1000には交替管理情報8620が含まれる。
この状態において、ホスト装置305から、データ“H1”の記録指示があったとする。データ“H1”の記録後の状態を図45Aに示す。
本実施の形態においては、上書きデータが、情報記録媒体100上の物理アドレス空間内でなるべく連続的に配置されるように記録を行う。
すなわち、図44Aにおいては、PSN=s2、p4〜p6などの位置が未記録領域であるが、上書きデータであるデータ“H1”が連続的に配置されるよう、PSN=p4〜p6の位置を記録先として選択する。LSN=P3の位置における上書き前のデータ“H”が記録されているPSN=s1の隣のECCクラスタであるPSN=s2の位置は未記録であるが、更新後のデータ“H1”の記録には使用しない。
この交替記録を反映して、図45Bに示す交替管理情報リスト1000には交替管理情報8621及び8622が含まれる。
同様に、図46Aは本実施の形態における記録手順によるデータが記録される前の状態を示す図である。
ここでは、論理アドレス空間内のLSN=P1およびP3の位置の論理セクタにデータ“H”が記録されている。また、LSN=P2の位置の論理セクタにデータ“H2”が記録されている。
LSN=P2の位置の論理アドレス空間においては、データ“H”はデータ“H2”により上書きされている。それに対応して、物理アドレス空間では、データ“H2”はPSN=p2の位置から、ユーザデータ領域内のPSN=p4へ交替されている。
この交替記録を反映して、図46Bに示す交替管理情報リスト1000には交替管理情報8302が含まれる。
この状態において、ホスト装置305から、データ“H3”の記録指示があったとする。データ“H3”の記録後の状態を図47Aに示す。
本実施の形態においては、上書きデータが、情報記録媒体100上の物理アドレス空間内でなるべく連続的に配置されるように記録を行う。
すなわち、図47Aにおいては、PSN=p5〜p6、p7〜の位置が未記録領域であるが、上書きデータであるデータ“H3”が連続的に配置されるよう、PSN=p7〜p9の位置を記録先として選択する。
LSN=P2の位置の上書き前のデータ“H2”が記録されているPSN=p4の隣のECCクラスタであるPSN=p5〜p6の位置は未記録であるが、更新後のデータ“H3”の全てを記録できないので、交替先としては使用しない。
この交替記録を反映して、図47Bに示す交替管理情報リスト1000には交替管理情報8400及び8401が含まれる。
交替管理情報8400及び8401は、複数クラスタからなる連続領域を交替するため、それぞれステータス2 2011Bが“0001”及び“0010”に設定される。
このような記録を行うに際して、ホスト部装置305からの記録指示を受け取ったドライブ装置310は、その指示内容を解析する。
ドライブ装置310は、記録対象となるLSNの値が連続であった場合、交替後の記録領域のPSNも連続になるように代替クラスタの選択を行い、データの記録を行う。
このような配置を行った結果、交替後のデータへの連続的なアクセスが可能となり再生性能を向上させることができる。
また、交替管理情報リスト1000に関しても、図45Bや図47Bに示すように、連続領域の代替記録として扱うことができるので、交替管理情報の数を減らすことができる。
もし、本実施の形態の記録方法を用いなければ、同様の記録を行った場合は、疑似上書き記録を行ったECCクラスタの数に等しいだけの交替管理情報(例えば、図45Aに示す場合であれば3つ)が必要となる。
よって、本実施の形態による交替管理情報削減の効果は大きい。
さらに、複数の交替管理情報(1)または(4)の交替元が物理アドレス空間内で連続となっているが、交替先が連続となっていない状態となった場合、交替先のデータの再配置処理を行うことにより、交替管理情報を削減できる。
すなわち、交替先のECCクラスタに記録されているデータを再生し、未記録領域に連続的な配置となるような記録を行う。
このような再記録を行えば、上述の複数の交替管理情報(1)または(4)に対する交替先も連続となり、上述と同様の処理により交替管理情報(2)及び(5)または(5)及び(6)に変換を行い、交替管理情報リスト1000の容量を小さくできる。
また、再配置の結果、データが連続的に記録されるようになるので、連続的なデータ再生の性能が向上する。
なお、本実施例及び上述の実施例における交替管理情報の変換処理は、変換の効果が検知された時点で行えばよい。すなわち、複数の交替管理情報(1)または(4)を交替管理情報(2)及び(5)または(5)及び(6)に変換した時、交替管理情報の数が減る場合に変換を行う。
また、交替管理情報リスト1000を情報記録媒体100へ記録する直前や、その他、ドライブ装置の定める所定のタイミングや周期で変換を行うかどうかの判断を行い、必要に応じて変換処理を行ってもよい。また、ホスト装置305からの指示により行ってもよい。例えば、ホスト装置305からディスククローズの指示が出された場合、ドライブ装置310は、交替管理情報リスト1000の記録を行うので、この時に交替管理情報の変換処理を行ってもよい。
あるいは、交替管理情報リスト1000の容量が所定の値に達した場合に行ってもよい。
また、ドライブ装置310による交替管理情報1000の更新を行わなかった場合でも、情報記録媒体100から読み出した交替管理情報リスト1000が変換可能な状態であることが検知されたら、ドライブ装置310は、上述の変換処理を行ってから、交替管理情報リスト1000を情報記録媒体100へ書き戻すようにしてもよい。これにより、次回以降の交替管理情報1000の読み出しや更新処理において扱うべきデータ量を削減することができる。
(実施の形態9 )
図48、図49A、図49Bおよび図49Cを参照して、本実施の形態のデータ記録の手順を説明する。ここでは、図6に示される情報記録再生装置300を用いて、データが情報記録媒体100に記録されるものとする。
図48は、図8Aに示されるステップS107 に含まれるステップを示す。図48に示される各ステップは、ドライブ装置310のドライブ制御部311によって実行される。
(ステップS9101)ドライブ制御部311は、記録位置を決定するに際して、所定の条件が満たされているか否かの判断を行う。
ここで所定の条件とは、記録指示によって指定された位置を含むECCクラスタが代替クラスタに既に交替されている、かつ、RMW処理が必要である、という条件である。
この時、さらに、代替クラスタがユーザデータ領域中に割り付けられている、という条件を加えても良い。これにより、交替領域の消費を防ぎ、ユーザデータ領域を有効に使うことが可能となる。
記録指示によって指定された位置を含むECCクラスタが代替クラスタに既に交替されているか否かの判断処理は、図8Bに示されるステップS151の処理と同一である。図8Bに示されるステップS151の判定結果を内部変数の値として保持しておき、ステップS9101においてその内部変数の値を参照するようにしてもよい。
代替クラスタがユーザデータ領域に割り付けられているか否かは、例えば、図8Bに示されるステップS151で発見された交替管理情報1010の交替元位置情報1012の値が、ユーザデータ領域の範囲内であるかどうかを決定することによって決定することができる。
RMW処理が必要か否かの判断処理は、図8Bに示されるステップS152AまたはステップS152Bの処理と同一である。図8Bに示されるS152AまたはステップS152Bの判定結果を内部変数の値として保持しておき、ステップS9101においてその内部変数の値を参照するようにしてもよい。
記録指示によって指定された位置を含むECCクラスタが代替クラスタに既に交替されており、かつ、RMW処理が必要であると決定された場合には、処理はステップS9102に進む。そうでない場合は、処理はステップS9103に進む。
(ステップS9102)ドライブ制御部311は、交替先の代替クラスタの記録位置に近い位置をデータを記録すべき位置として決定する。
ここで、交替先の代替クラスタの記録位置に”近い”位置とは、ステップS151(図8B)で得られた交替先の代替クラスタの記録位置からのアクセス時間が所定の時間以下である位置をいう。例えば、交替先の代替クラスタの記録位置に物理的に隣接する位置は、交替先の代替クラスタの記録位置に”近い”位置の一例である。しかし、交替先の代替クラスタの記録位置に”近い”位置はこの例に限定されない。
(ステップS9103)ドライブ制御部311は、記録指示によって指定された位置以外の特定の位置であって、ユーザデータ領域108内の特定の位置をデータを記録すべき位置として決定する。
ここで、特定の位置とは、図8AのステップS107において説明した特定の位置と同じ意味である。
このようにして、疑似上書き記録において、RMW処理が必要であり、かつ、記録指示によって指定された位置を含むECCクラスタが代替クラスタに既に交替されていると決定された場合には、ドライブ制御部311は、交替先の代替クラスタからの再生データの一部を修正した修正データを、その交替先の代替クラスタの記録位置の近くの位置に記録するように記録再生部314を制御することになる。
このように、交替先の代替クラスタからの再生データの一部を修正した修正データの記録位置を、その交替先の代替クラスタの記録位置の近くに配置することにより、高速な交替記録を実現することが可能になる。また、情報記録媒体100に対するアクセス性能を向上することが可能になる。
図49A、図49Bおよび図49Cは、図48に示されるステップに従って実行される処理の例を説明するための図である。
図49Aでは、トラック#NのECCクラスタ9301がトラック#N+1の代替クラスタ9302に既に交替されているものとする。ECCクラスタ9301は、データ“A1”が記録されたセクタと、データ“A2”が記録されたセクタと、データ“A3”が記録されたセクタとを含む。ECCクラスタ9302は、データ“B1”が記録されたセクタと、データ“B2”が記録されたセクタと、データ“B3”が記録されたセクタとを含む。
さらに、データ“A1”が記録されたセクタの位置にデータ“C1”を記録することを指示する記録指示をドライブ装置310が受け取ったものとする。
この場合には、ドライブ制御部311は、記録指示によって指定された位置を含むECCクラスタ9301が代替クラスタ9302に既に交替されており、RMW処理が必要であると決定する(ステップS151およびS152A)。その結果、ドライブ制御部311は、代替クラスタ9302に記録されたデータ“B1”、データ“B2”、データ“B3”を再生するように記録再生部314を制御する(ステップS153)。
そして、図49Bに示すように、ドライブ制御部311は、データ“B1”をデータ“C1”によって置換することによってデータ“C1”とデータ“B2”とデータ“B3”とを含む修正データを生成する(ステップS155)。
次に、図49Cに示すように、ドライブ制御部311は、代替クラスタ9302の記録位置に近い位置を新たな代替クラスタ9303の記録位置として決定し(ステップS9102)、修正データを新たな代替クラスタ9303に記録するように記録再生部314を制御する。
図49Cに示される例では、代替クラスタ9302の記録位置に近い位置は、代替クラスタ9302の記録位置と同一のトラック内の位置であって、代替クラスタ9302に物理的に隣接している位置である。しかし、この位置は一例であり、この位置に限定されるわけではない。
図49Aの状態では、トラック#N−1に未記録領域があり、新たな代替クラスタの記録位置として決定可能である。しかしながらこの位置を新たな代替クラスタとして決定してしまうと、代替クラスタ9302からのデータ再生後、トラック#N−1へのアクセスが必要となってしまう。
一方、本実施の形態によれば、代替クラスタ9302の近くに新たな代替クラスタの記録位置を決定するので、そのアクセス時間は短くて済む。
よって、高速な交替記録を実現することが可能になる
(実施の形態10 )
図50 は、交替記録を行う前の交替管理情報リスト1000のデータ構造の一例を示す。
図50に示される例では、交替管理情報リスト1000は、交替管理情報9800と、交替管理情報9801とを含む。
交替管理情報9800は、先頭位置がPSN=1132であるECCクラスタが先頭位置がPSN=132である代替クラスタに既に交替されていることを示す。ここで、PSN=132の位置は、交替領域内の位置である。
交替管理情報9801は、先頭位置がPSN=1164の位置であるECCクラスタが先頭位置がPSN=1196である代替クラスタに既に交替されていることを示す。ここで、PSN=1196の位置は、ユーザデータ領域内の位置である。
図50に示される状態において、PSN=1228の位置に新規のデータの記録が行われ、しかしながら、ベリファイに失敗したとする。
この場合において、ドライブ制御部311の動作を以下に説明する。
ドライブ制御部311は、図50に示される交替管理情報リスト1000の中から、PSN=1228の位置を含む欠陥クラスタに最も近いPSN値を交替元位置情報1012として持つ交替管理情報を検索する。
図50に示される例では、交替管理情報9801がその検索条件に該当する交替管理情報として検索される。
ドライブ制御部311は、交替管理情報9801の状態情報1011のFlag2の値を調べることにより、交替管理情報9801の交替先が、交替領域であるか、ユーザデータ領域であるかを判別する。
図50に示される例では、交替管理情報9801の交替先がユーザデータ領域であると判別されるため、ドライブ制御部311は、PSN=1228の位置を含む欠陥クラスタに対応する代替クラスタの記録位置をユーザデータ領域内の位置に決定する。
なお、交替管理情報9801の状態情報1011のFlag2の値を調べる代わりに、交替管理情報9801の交替先位置情報1013の値を調べることによって、交替管理情報9801の交替先が、交替領域であるか、ユーザデータ領域であるかを判別することも可能である。
ドライブ制御部311は、ユーザデータ領域内の特定の位置(この例では、PSN=1260の位置)を修正データを記録する記録位置として決定し、その記録位置にその修正データを記録するように記録再生部314を制御する。
ドライブ制御部311は、PSN=1228の位置を含む欠陥クラスタを先頭位置がPSN=1260の代替クラスタに交替させるための交替管理情報9810を新たに生成し、その交替管理情報9810を交替管理情報リスト1000に追加する。このようにして、図50に示される交替管理情報リスト1000が図51に示される交替管理情報リスト1000に更新される。
このように、本実施の形態においては、ECCクラスタを代替クラスタに交替させる際に、そのECCクラスタの近傍にある近傍クラスタの中に代替クラスタに既に交替されているECCクラスタが存在するか否かを決定し、そのような近傍クラスタが存在する場合には、その近傍クラスタの交替先を記録するための領域と同じ領域をそのECCクラスタの交替先を記録するための領域として選択することを特徴とする。このような処理は例えば、図8Aに示すステップS107で実行される。
なお、ECCクラスタの交替先が交替領域である場合には、複数の交替領域のうちの同一の交替領域をECCクラスタの交替先を記録するための領域として選択することが好ましい。また、ECCクラスタの交替先がユーザデータ領域である場合には、そのユーザデータ領域に割り付けられた同一のトラックをECCクラスタの交替先を記録するための領域として選択することが好ましい。
一般に、PSN値が近いデータは一つのファイルを構成したり、関連が強いデータであったりすることが多い。追記型の情報記録媒体においては、シーケンシャル記録を行うので特にその可能性が高い。
よって、近傍のデータと同じ領域に交替記録しておけば、再生時に連続的に読み出すことが可能となり、再生性能の向上を実現できる。
なお、上述において、交替元クラスタに近いPSN値を交替元位置情報1012として持つ交替管理情報1010Bを検索するとしたが、この検索処理において、以下のような条件を加えるようにしてもよい。
すなわち、交替元クラスタのPSN値に対して、所定の範囲のPSN値のみを検索範囲とする。これは、あまりに遠くの位置の交替記録に関する情報を見ても、別のファイルであったり、関連性の低いデータであったりする可能性が高いので、むしろ再生性能の悪化の可能性が生ずるからである。
あるいは、前記交替元クラスタと同じトラック内のPSN値を交替先位置情報1013として持つ交替管理情報1010Bだけを検索範囲としてよい。上述と同様に、異なるトラックに記録されたデータ間では、別のファイルであったり、関連性の低いデータであったりする可能性が高いからである。
なお、ここでは欠陥クラスタの代替記録について説明したが、代替記録という意味では同じである、疑似上書き記録においても上述は適応可能である。
本発明 の実施の形態における代替クラスタの記録先を選択するための手順についてさらに説明する。
図52Aは交替記録を行う前の情報記録媒体100上のデータ構造の一例を示す。
図52Bは交替記録を行う前の交替管理情報リスト1000のデータ構造の一例を示す。
図53Bは交替記録を行った後の交替管理情報リスト1000のデータ構造の一例を示す。
図52Aでは、ユーザデータ領域にトラック#N 10000、トラック#N+1 10001、トラック#N+2 10002が割り付けられている。
また、トラック#N 10000中のPSN=a1に位置するECCクラスタは、PSN=c1の位置へ交替されているものとする。この交替記録を示す交替管理情報10800が図52Bに示される交替管理情報リスト1000に含まれる。
この状態で、未記録状態であるPSN=a2に位置するECCクラスタに新規のデータ記録が行われ、しかしながら、ベリファイに失敗したとする。
この時、ドライブ装置310が実施する交替記録における代替クラスタの記録位置は以下のようにして決められる。
まず、セッション管理情報200を調べ、PSN=a2のECCクラスタがどのトラックに含まれるかを判別する。図52Aでは、トラック#N 10000に含まれることが分かる。
次に、図52Bの交替管理情報リスト1000を調べ、交替元位置情報1012として、トラック#N 10000に含まれるPSNを持つ交替管理情報を検索する。図52Bでは、交替管理情報10800が見つかる。
次に、ここで見つかった交替管理情報10800の交替先位置情報1013を得る。そして、ここで得られた交替先位置情報1013のPSN値が含まれるトラックをセッション管理情報200から取得する。図52Aの場合では、交替先位置情報1013の値がc1であるので、対応するトラックはトラック#N+2 10002となる。
この時点で、ドライブ装置310は、PSN=a2に位置するECCクラスタの交替先として、トラック#N+2 10002中の未記録ECCクラスタを選択する。
さらに、ドライブ装置310は、トラック#N+2 10002のLAR10103(PSN=c2)を取得し、それ以降の未記録領域に交替記録を行う。
このような処理の結果、PSN=a2の位置に記録指示がされたデータは、結果として例えばPSN=c2へと交替記録される。そして、図53Bに示すように、PSN=a2からPSN=c2への交替記録を示す交替管理情報10801が生成される。
以上より、本実施の形態においては、交替記録の際に交替管理情報リスト1000とセッション管理情報200とを調べ、交替元クラスタと同じトラックに含まれる別の交替元クラスタが、既に別のトラックに交替記録されている場合、そのトラックを交替先として選択することを特徴とする。
一般に、PSN値が近いデータは一つのファイルを構成したり、関連が強いデータであったりすることが多い。追記型の情報記録媒体においては、シーケンシャル記録を行うので特にその可能性が高い。
よって、あるトラックから別のトラックへ交替記録する時、交替先をすべて同じトラックにしておけば、再生時に連続的に読み出すことが可能となり、再生性能の向上を実現できる。
なお、交替先クラスタが複数のトラックに存在する場合、図50などを参照して説明したように、交替元が近い方の交替先を優先すればよい。
なお、上述の説明では、欠陥による交替記録について述べたが、疑似上書き記録における交替にも適用可能である。
また、交替先として交替領域が選択される場合ももちろんあり得る。この場合、交替領域を1つのトラックと同様に考えればよい。