(57)【要約】【課題】  既存の規格フォーマットに適応する様式での、任意選択のさらなる誤り検出および修正を実現する。【解決手段】  本発明にかかるデータ記録媒体は、第１のブロックに論理的にフォーマットされた一次データ（３０８、３１６、３２０）であって、前記第１のブロックは該一次データ用の第１の誤り修正コードを含む一次データと、前記第１のブロック中の前記一次データ用の第２の誤り修正コードを含む第２のブロック（３１０、３１８、３２２）とを備える。【選択図】図３Ｂ
2005056397.tif 000002
【特許請求の範囲】
【請求項１】
第１のブロックに論理的にフォーマットされた一次データ（３０８、３１６、３２０）であって、前記第１のブロックは該一次データ用の第１の誤り修正コードを含む一次データと、
前記第１のブロック中の前記一次データ用の第２の誤り修正コードを含む第２のブロック（３１０、３１８、３２２）と
を備えたデータ記憶媒体。
【請求項２】
前記第２のブロックは、前記第２の誤り修正コード用の第３の誤り修正コードを含むこと
をさらに含む請求項１記載のデータ記憶媒体。
【請求項３】
前記第１のブロックは、前記第２のブロックを前記第１のブロックに関連付ける指示（３１２）を含むことを
さらに含む、請求項１記載のデータ記憶媒体。
【請求項４】
データの物理的ロケーションを識別するデータ構造と、
前記第２のブロックを前記第１のブロックに関連付ける、前記データ構造中の指示（３１４）と
をさらに備えた請求項１記載のデータ記憶媒体。
【請求項５】
データ領域（３０６）
をさらに備え、
該データ領域は冒頭および末尾を有し、
前記第１のブロックは、該データ領域内にあり、
前記第２のブロックは、該データ領域の前記末尾付近にある
請求項１記載のデータ記憶媒体。
【請求項６】
一次データを含む複数のブロック（３１６、３２０）と、
前記一次データ用の誤り修正コードを含む複数のブロック（３１８、３２２）と
をさらに備え、
前記誤り修正コードを含むブロックは、前記一次データを含むブロックの中に分散する
請求項１記載のデータ記憶媒体。
【請求項７】
前記一次データの独立した修正を提供する前記第１の誤り修正コードおよび前記第２の誤り修正コード
をさらに含む請求項１記載のデータ記憶媒体。
【請求項８】
一次データを第１のブロックに転送すること（４００）と、
前記第１のブロック中の前記一次データ用の第１の誤り修正コードを前記第１のブロックに転送することと、
前記第１のブロック中の前記一次データ用の第２の誤り修正コードを第２のブロックに転送すること（４０２）と
を含む方法。
【請求項９】
フォーマットされた一次データを第１のブロックに通信する手段と、
前記一次データ用の第１の誤り修正コードを前記第１のブロックに通信する手段と、
前記第１のブロック中の前記一次データ用の第２の誤り修正コードを第２のブロックに通信する手段と
を備えたシステム。
【請求項１０】
プロセッサ（５１０）を備えたシステム（５００）であって、前記プロセッサは、
一次データを第１のブロックに転送することと、
前記第１のブロック中の前記一次データ用の第１の誤り修正コードを前記第１のブロックに転送することと、
前記第１のブロック中の前記一次データ用の第２の誤り修正コードを第２のブロックに転送することと
を含む方法を実行するようにプログラムされたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的にデータ記憶装置に関し、特に、誤りの検出および修正に関する。
【背景技術】
【０００２】
コンピュータデータメモリシステムおよびデータ記憶システムは、誤りを検出し修正する手段を備えている場合が多い。
データのアドレス指定可能な最小単位はセクタと一般に呼ばれ、複数のセクタが論理的にグループ化されてブロックになることが一般的であり、各ブロックはそのブロック用の誤り修正を備える。
これら論理ブロックは誤り修正コード（ＥＣＣ）ブロックと呼ばれる。
大半の用途では、誤りがＥＣＣブロックにおいて検出されず、修正されないまま残る確率は許容できる低さである。
しかし時により、さらに高いデータ保全性保証が求められる場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
既存の規格フォーマットに適応する様式での、任意選択のさらなる誤り検出および修正が必要である。
【課題を解決するための手段】
【０００４】
少なくとも１つのＥＣＣブロックについて、ＥＣＣブロック内のデータ領域に、少なくとも１つの他のＥＣＣブロックのＥＣＣデータを含む。
【発明を実施するための最良の形態】
【０００５】
図１は、符号化前のＥＣＣブロックの一例１００を示す。
図１の例では、セクタ１０２が２０４８バイトの一次データを含む。
現行の光ディスク規格によっては、図１に示すように、ＥＣＣブロックは１６セクタの一次データを含むものもある。
提案されている規格によっては、ＥＣＣブロックが３２セクタの一次データを含むものもある。
図１の例では、各セクタ（１６バイトの識別データおよび他のオーバーヘッドデータを加えて）が、１７２バイトの１２行に論理的にフォーマットされる。
１６セクタの一次データを有するＥＣＣブロックの場合、１６バイトの列ＥＣＣデータ１０６が１７２列（１列あたり１バイト）の一次データそれぞれに計算され、結果として、１６行の列ＥＣＣデータが一次データ行にインタリーブされることになる。
１０バイトの行ＥＣＣデータ１０４が、１７２バイトの一次データの各行に、また１６行の列ＥＣＣそれぞれに添付される。
１６セクタを有するＥＣＣブロックの場合、２７５２バイトの列ＥＣＣデータ（１６行、１行あたり１７２バイト）があり、２０８０バイトの行ＥＣＣデータ（１行あたり１０バイト、１セクタあたり１２行の１６セクタ分に、１６行の列ＥＣＣを加えたもの）があり、総計で４８３２バイトのＥＣＣデータがある。
【０００６】
少なくとも１つのＥＣＣブロックについて、一次データ（図１、１０２）として指定された領域の少なくとも一部が、少なくとも１つの他のＥＣＣブロックの一次データの少なくともいくらかのＥＣＣデータを収容する。
一次データのみを収容するＥＣＣブロックは「一次ＥＣＣブロック」であり、一次データ用として指定された領域にＥＣＣデータを収容したＥＣＣブロックは「二次ＥＣＣブロック」である。
単なる例として、各ＥＣＣブロックに１６セクタがあり、一次ＥＣＣブロック４つ毎に１つの二次ＥＣＣブロックがあると仮定する。
また、各二次ＥＣＣブロックが実質的にＥＣＣデータで満たされているものと仮定する。
各二次ＥＣＣブロックは、関連する４つの一次ＥＣＣブロックそれぞれのＥＣＣデータを最大で８１９２バイト有することができる（各一次ＥＣＣブロック中の４８３２バイトのＥＣＣデータと比較して）。
上記例としての数を使用すると、二次ＥＣＣブロックにより、一次ＥＣＣブロックの約１．７倍もの欠陥ビットの修正が可能である。
【０００７】
一次ＥＣＣブロック４つ毎に１つの二次ＥＣＣブロックを有することは、単なる一例にすぎない。
各一次ＥＣＣブロック毎に複数の二次ＥＣＣブロックを含め、各二次ＥＣＣブロックに４よりも少ない数の一次ＥＣＣブロックを提供することにより、さらに高い誤り修正能力を得ることができる。
さらに、二次ＥＣＣブロック中のすべてのデータがＥＣＣデータである必要はない。
たとえば、１６セクタのデータのいくらかがＥＣＣデータであり、残りが一次データであってもよい。
【０００８】
図２は、上記例における仮定を使用して、二次ＥＣＣブロックの１／４に利用可能なＥＣＣビット数を有する概念的なＥＣＣブロック２００（符号化前）を示す。
すなわち、図２は実際のＥＣＣブロックを示しているのではなく、二次ＥＣＣブロックの１／４により提供されるＥＣＣデータ量とともに、一次ＥＣＣブロック中の一次データ量を示している（一次ＥＣＣブロック４つ毎に１つの二次ＥＣＣブロックがあると仮定して）。
図２では、１６の一次データセクタ２０２がある。
各行には、図１での１０バイトと比較して、１７バイトの行ＥＣＣデータ２０４がある。
図１での１６行の列ＥＣＣデータと比較して、２６行の列ＥＣＣデータ２０６がある。
図２に示すＥＣＣデータは、二次ＥＣＣブロックの一次データ領域に物理的に配置され、利用可能な一次データ空間のおよそ１／４を占める。
図２のＥＣＣデータ自体は、図１に示すように他のＥＣＣデータによって保護される。
【０００９】
二次ＥＣＣブロック中のＥＣＣビットの、一次ＥＣＣブロック中の一次データへの割り振りは任意である。
以下は、図２のＥＣＣデータに基づく、二次ＥＣＣブロック中のＥＣＣデータの考えられる順序の一例にすぎず、各ＥＣＣブロックに１６のデータセクタがあり、一次ＥＣＣブロック４つ毎に１つの二次ＥＣＣブロックがあるものと仮定するとともに、二次ＥＣＣブロック中のデータ領域が実質的にＥＣＣデータで満たされているものと仮定している。
列ＥＣＣ、バイト列１（２６バイト）
・
・
列ＥＣＣ、バイト列１７２（２６バイト）
行ＥＣＣ、行１（１７バイト）
・
・
行ＥＣＣ、行２１８（１７バイト）
【００１０】
上記例では、いくつかの光ディスク規格に指定されているように、ＥＣＣデータが行および列に基づいて計算されると仮定している。
しかし、二次ＥＣＣブロック中のＥＣＣデータは光ディスク規格に準拠する必要がある。
すなわち、二次ＥＣＣブロックのフォーマットは規格に準拠することが好ましいが、二次ＥＣＣブロックの一次データ領域内のＥＣＣデータは、規格に指定されるものと異なってもよい。
たとえば、ＥＣＣデータを行および列ではなく斜線に基づいて計算してもよい。
複数の修正不可能な誤りに繋がる誤りの集団が行および列にある場合、斜線を使用すると、各斜線において修正可能な数の誤りにすることができる。
【００１１】
マルチレベルＥＣＣアルゴリズムによっては、第１レベルの修正により、バイト群に欠陥があり、修正不可能であると判断された場合、第１レベルは、すべてのバイトを消去記号に割り当てられる値に設定することによってそのバイト群を「消去する」ものもある。
そして、次のレベルの修正により、いくらかの数の欠陥バイトに加えて、いくらかの数の消去箇所を修正することができる。
別の一実施形態では、二次ＥＣＣブロックが、一次ＥＣＣブロックによって誤りを修正することができない場合にのみ使用される場合、一次ＥＣＣブロック中の誤り修正は、修正不可能なすべての行を消去し、それから修正不可能なすべての列を消去し、それから二次ＥＣＣブロック中のＥＣＣデータを、結果得られる、消去箇所を有するデータに適用する。
【００１２】
二次ＥＣＣブロックは、通常は一次ＥＣＣブロックによって占有される空間を占有する。
したがって、二次ＥＣＣブロックは媒体のデータ容量を低減させる。
一次ＥＣＣブロック中のＥＣＣデータが、二次ＥＣＣブロック中のＥＣＣデータから独立している場合、追加の容量が必要なときに、二次ＥＣＣブロックを上書きすることができる。
独立している場合、一次ＥＣＣブロック中のＥＣＣデータは、二次ＥＣＣブロックが利用できなくなった（欠陥があるか、または上書きされて）場合であってもなお利用することが可能である。
用法の一例は、関連する一次ＥＣＣブロックが誤りを修正不可能な場合のみ、二次ＥＣＣブロックを使用するというものである。
もちろん、一次ＥＣＣブロック中の誤りが検出されないまま残るいくらかの有限の確率があるため、利用可能な場合に、二次ＥＣＣブロックだけを使用することによってさらなるデータ保全性保証を得ることができる。
【００１３】
図３Ａ〜図３Ｃは、二次ＥＣＣブロックを含む、光ディスク上のトラック３００の一例を示す。
光ディスク（データＣＤおよびＤＶＤ等）は一般に、トラックの冒頭にリードイン領域３０２と呼ばれる確保領域、およびトラックの末尾にリードアウト領域３０４と呼ばれる確保領域を有する。
リードインとリードアウトの間の領域はすべてデータ３０６に利用することが可能である。
リードイン領域およびリードアウト領域は通常、セクタまたはブロックの物理的ロケーションを指定するデータ構造を含む。
リードイン領域およびリードアウト領域は、セクタまたはブロックの制御構造を含むこともできる。
論理ファイルディレクトリは通常、データ領域にある。
図３Ａでは、一次ＥＣＣブロック３０８はデータに利用可能な領域にある。
二次ＥＣＣブロックは、さらなるデータ容量が必要になる場合以外邪魔されないままであるように、データ領域の末尾に配置することができる。
図３Ａおよび図３Ｂでは、二次ＥＣＣブロック３１０はデータ領域３０６の末尾に配置されている。
【００１４】
別法では、二次ＥＣＣブロックを一次ＥＣＣブロックの中に定期的な間隔で配置してもよい。
たとえば、５つ毎のＥＣＣブロックが二次ＥＣＣブロックであってもよく、または９毎および１０毎のＥＣＣブロックが二次ＥＣＣブロックであってもよく、以下同様である。
図３Ｃでは、二次ＥＣＣブロック３１８は、一次ＥＣＣブロック３１６および３２０の中に定期的な間隔で配置されている。
【００１５】
すべての一次ＥＣＣブロックが二次ＥＣＣブロックである必要はない。
すなわち、選択された一次データのみがさらなるデータ保全性保証を必要とし得る。
好ましくは、各一次ＥＣＣブロック毎に、関連する二次ＥＣＣブロックがあるか否かについて指示がある。
指示は、各一次ＥＣＣブロック内に書き込んでも、別個のデータ構造または制御構造に書き込んでも、あるいはフォーマットに固有であってもよい（固定位置の二次ＥＣＣブロック、または関連する一次ＥＣＣブロックに相対する固定位置）。
指示は、単純に、関連する二次ＥＣＣブロックが存在することを示す１ビットであってもよく、または関連する二次ＥＣＣブロックのアドレスまたはポインタを含んでもよい。
図３Ａでは、一次ＥＣＣブロック内のデータフィールド３１２が、関連する二次ＥＣＣブロックのブロックアドレスを示す。
図３Ｂの例では、リードイン領域中のデータ構造または他のディスク情報内のデータフィールド３１４が、一次ＥＣＣブロックに二次ＥＣＣブロックを関連付ける。
別法では、一次ＥＣＣブロックのいくつかまたはすべてのセクタ内の１つまたは複数のビットを、二次ＥＣＣブロックの絶対アドレスまたは相対アドレスを作成するように連結してもよい。
たとえば、ＥＣＣブロック毎に１６セクタがある場合、１セクタあたり１ビットで、関連する二次ＥＣＣブロックの１６ビットアドレスを提供することができる。
【００１６】
図３Ｃでは、二次ＥＣＣブロックは一次ＥＣＣブロックの中に分散する。
第１の群の４つの一次ＥＣＣブロック３１６は関連する二次ＥＣＣブロック３１８を有し、第２の群の４つの一次ＥＣＣブロック３２０は関連する二次ＥＣＣブロック３２２を有する。
図３Ａおよび図３Ｂに示す指示オプションのいずれも、図３Ｃにおける一次ＥＣＣブロックに二次ＥＣＣブロックを関連付けるのに使用することができる。
別法では、固定割合（たとえば、５つ毎のＥＣＣブロックが二次ＥＣＣブロック）の場合、関連性はフォーマットに組み込まれており、別個の指示は必要ない。
図３Ｃでは、二次ＥＣＣブロックは、関連する一次ＥＣＣブロックの後にあるが、別法では関連する一次ＥＣＣブロックの前にあってもよく、最初に書き込まれてもよい。
【００１７】
一次ＥＣＣブロックおよび二次ＥＣＣブロック中のＥＣＣデータが独立している場合、図３Ａ〜図３Ｃのいずれかに示されるように書き込まれた媒体は、二次ＥＣＣデータについての知識を持たないシステムにより読み出すことができる。
すなわち、二次ＥＣＣブロックをいずれも参照することなく、一次ＥＣＣブロック読み出すことができ、また一次ＥＣＣブロック内のＥＣＣデータを誤り修正に使用することができる。
したがって、互換性のあるシステムにさらなるデータ保全性を提供しながら、他のシステムとの読み出し互換性を維持することができる。
【００１８】
二次ＥＣＣブロックは一次ＥＣＣブロックとは別個に書き込まれるため、一次ＥＣＣブロックが、関連する二次ＥＣＣブロックに欠陥があるか、または存在しない場所に（書き込み中、または後の上書き中の電力損失または他の問題）関連する二次ＥＣＣブロックを示すことができる。
一次ＥＣＣブロックに二次ＥＣＣブロックを関連付ける指示は、二次ＥＣＣブロックが首尾良く書き込まれ後に書き込むことができる。
別法では、二次ＥＣＣブロックは、関連する一次ＥＣＣブロックの前に書き込んでもよい。
別法では、１つまたは複数の整合ビットを一次ＥＣＣブロックおよび関連する二次ＥＣＣブロック内に書き込み、整合にビットを必要としてもよく、整合がない場合は誤りを想定する。
別法では、一次ＥＣＣブロック（またはディレクトリもしくは制御構造）が、二次ＥＣＣブロックが書き込まれるという指示を含み、そして、二次ＥＣＣブロックが首尾良く書き込まれた後にその指示をクリアまたは変更してもよい。
さらに、二次ＥＣＣブロックが上書きされる場合、好ましくは、二次ＥＣＣブロックに１つまたは複数の一次ＥＣＣブロックを関連付けるポインタまたは指示をいずれもクリアすべきである。
【００１９】
図４Ａは、媒体にデータを書き込む方法の一例を示す。
ステップ４００において、第１のＥＣＣブロックが転送される（読み出し、書き込み、受信、または送信）。
ステップ４０２において、第１のＥＣＣブロック用のＥＣＣデータを含む第２のＥＣＣブロックが転送される。
ステップ４０４において、これはオプションであるが、第２のＥＣＣブロックに第１のＥＣＣブロックを関連付ける指示が転送される。
ステップ４００、４０２、および４０４はいずれの順序で実行してもよい。
さらに、ステップ４０４をステップ４００またはステップ４０２に含めてもよい。
【００２０】
データを読み取り、または受け取っているとき、システムは、第１のＥＣＣブロック中の一次データに対する第２のＥＣＣデータを常に使用し、第１のＥＣＣデータを無視することを選択することができる。
しかし、常に２つのブロックを処理することはパフォーマンスに影響を与え得る。
別法では、システムは常に、まず第１のＥＣＣデータを使用しようと試み、それから、第１のＥＣＣデータが誤りを修正することができない場合のみ第２のＥＣＣデータを使用してもよい。
この代替形態を図４Ｂに示す。
ステップ４０６において、第１のＥＣＣブロック中のデータが正しい場合、または第１のＥＣＣブロック中のデータが第１のＥＣＣデータにより首尾良く修正された場合、第２のＥＣＣデータは必要ない。
ステップ４０８において、第１のＥＣＣデータが誤りを修正することができなかった場合、第２のＥＣＣデータが使用される。
【００２１】
図５はシステムの一例を示す。
図５では、第１のシステム５００がドライブ５０２を備えることができる。
データ媒体５０４は、ドライブ内に取り込まれても（たとえば、ハードディスク）、または取り外し可能であっても（たとえば、ＤＶＤ）よい。
図３Ａおよび図３Ｂに示すデータトラックは、ドライブ５０２によりデータ媒体５０４に記録することができる。
図４の方法は、データ媒体５０４に記録しているときにドライブ５０２により実施することができる。
代替または追加として、図１に示すようにデータがＥＣＣブロックに論理的にフォーマットされたが、二次ＥＣＣブロックを有するデータは、第１のシステム５００から第２のシステム５０８の間のＩ／Ｏシステム５０６により通信（受信または送信）することができる。
通信はワイヤ、光ケーブルを介して、またはワイヤレスで行うことができる。
第１のシステム５００は、データの記憶、読み出し、書き込み、記録、受信、または送信を行う任意のシステムであることができ、たとえば、コンピュータ、サーバ、ワークステーション、デジタル機器、エンターテイメントシステム、携帯電話、またはデジタルカメラであるが、これらに限定されない。
ドライブまたは第１のシステムは、図４の方法を実行するプロセッサ５１０を備えることができる。
別法では、ドライブ５０２またはＩ／Ｏシステム５０６が図４の方法を実行するプロセッサを備えてもよい。
【図面の簡単な説明】
【００２２】
【図１】ＥＣＣブロックの一実施形態例である。
【図２】図１のＥＣＣブロックよりも多くのＥＣＣデータを有する概念的なＥＣＣブロック例を示す。
【図３Ａ】代替の配置例での二次ＥＣＣブロックを有する媒体上のデータトラックを示す。
【図３Ｂ】代替の配置例での二次ＥＣＣブロックを有する媒体上のデータトラックを示す。
【図３Ｃ】代替の配置例での二次ＥＣＣブロックを有する媒体上のデータトラックを示す。
【図４Ａ】方法の一実施形態例のフローチャートである。
【図４Ｂ】データを読み取る、または受け取る場合、代替の方法の一例に関して、図４Ａの方法のさらに詳細を提供するフローチャートである。
【図５】システムの一実施形態例のブロック図である。
【符号の説明】
【００２３】
５００，５０８・・・システム、
５０２・・・ドライブ、
５１０・・・プロセッサ、
【図１】
2005056397.tif 000003
【図２】
2005056397.tif 000004
【図３Ａ】
2005056397.tif 000005
【図３Ｂ】
2005056397.tif 000006
【図３Ｃ】
2005056397.tif 000007
【図４Ａ】
2005056397.tif 000008
【図４Ｂ】
2005056397.tif 000009
【図５】
2005056397.tif 000010