(57)【特許請求の範囲】
【請求項１】
（ａ）所定量からなる一連のデータに関して、夫々第１のエラー処理用データを生成し、上記所定量からなる一連のデータを夫々分割して得た複数のブロック毎に第２のエラー処理用データを生成し、
（ｂ）上記所定量からなる一連のデータ、上記第１のエラー処理用データ及び上記第２のエラー処理用データにより、各記録単位のデータを生成し、
（ｃ）上記各記録単位のデータを記録媒体に記録し、
（ｄ）上記記録媒体より上記各記録単位のデータを再生し、
（ｅ）再生した上記各記録単位のデータの内の上記所定量からなる一連のデータに対し、上記記録単位毎に上記第１のエラー処理用データにより、エラー訂正を行い、
（ｆ）上記ステップ（ｅ）においてエラー訂正ができなかった際に、上記第２のエラー処理用データにより、上記ブロック毎の上記所定量からなる一連のデータに対し、少なくともエラー検出を行い、
（ｇ）連続するＮ（Ｎは正の整数）個のブロックにエラーが検出された際に、上記連続するＮ個のブロックの内の両端を除いた少なくとも１個のブロックの全データを消失データと見なして、上記第１のエラー処理用データによりその記録単位の上記所定量からなる一連のデータに対して消失訂正を施すとともに、残りのブロックに対しては上記第１のエラー処理用データにより検出訂正を施すことで、再生データを得るステップとからなるデータ記録再生方法。
【請求項２】
上記ステップ（ａ）において、上記第２のエラー処理用データは、上記所定量からなる一連のデータに対する、上記記録媒体からの再生順に応じた方向の複数のパリティで構成されてなる請求項１記載のデータ記録再生方法。
【請求項３】
上記ステップ（ｇ）において、上記連続するＮ個のブロックの内の端にならない少なくとも１個のブロックの全データとこのブロックに隣接するブロックの一部のデータを消失データと見なして、上記第１のエラー処理用データによりその記録単位の上記所定量からなる一連のデータに対して消失訂正を施す請求項１記載のデータ記録再生方法。
【請求項４】
上記ステップ（ｇ）において、連続する２個のブロックにエラーが検出された際には、上記連続する２個のブロックに跨る１ブロック分のデータを消失データと見なして、上記第１のエラー処理用データにより、その記録単位の上記所定量からなる一連のデータに対して消失訂正を施し、誤り訂正不能である際は、消失データと見なした１ブロック分のデータの位置をずらして上記第１のエラー処理用データにより、再度消失訂正を施す請求項１記載のデータ記録再生方法。
【請求項５】
（ａ）所定量からなる一連のデータに関して、夫々第１のエラー処理用データを生成し、上記所定量からなる一連のデータを夫々分割して得た複数のブロック毎に第２のエラー処理用データを生成し、
（ｂ）上記所定量からなる一連のデータ、上記第１のエラー処理用データ及び上記第２のエラー処理用データにより、各単位の伝送データを生成し、
（ｃ）上記各単位の伝送データを伝送し、
（ｄ）伝送された上記各単位の伝送データに対し、上記記録単位毎に上記第１のエラー処理用データにより、エラー訂正を行い、
（ｆ）上記ステップ（ｄ）でエラー訂正ができなかった際に、上記第２のエラー処理用データにより、上記ブロック毎の上記伝送データに対し、少なくともエラー検出を行い、
（ｇ）連続するＮ（Ｎは正の整数）個のブロックにエラーが検出された際に、上記連続するＮ個のブロックの内の両端を除いた少なくとも１個のブロックの全データを消失データと見なして、上記第１のエラー処理用データによりその伝送端子の上記所定量の一連のデータに対して消失訂正を施すとともに、残りのブロックに対しては上記第１のエラー処理用データにより検出訂正を施すことで、再生データを得るステップとからなるデータ伝送方法。
【請求項６】
上記ステップ（ａ）において、上記第２のエラー処理用データは、上記所定量からなる一連のデータに対する、上記記録媒体からの再生順に応じた方向の複数のパリティで構成されてなる請求項５記載のデータ伝送方法。
【請求項７】
上記ステップ（ｇ）において、上記連続するＮ個のブロックの内の端にならない少なくとも１個のブロックの全データとこのブロックに隣接するブロックの一部のデータを消失データと見なして、上記第１のエラー処理用データによりその記録単位の上記所定量からなる一連のデータに対して消失訂正を施す請求項５記載のデータ伝送方法。
【請求項８】
上記ステップ（ｇ）において、連続する２個のブロックにエラーが検出された際には、上記連続する２個のブロックに跨る１ブロック分のデータを消失データと見なして、上記第１のエラー処理用データにより、その記録単位の上記所定量からなる一連のデータに対して消失訂正を施し、誤り訂正不能である際には、消失データと見なした１ブロック分の位置をずらして上記第１のエラー処理用データにより、再度消失訂正を施す請求項５記載のデータ伝送方法。
【請求項９】
所定量からなる一連のデータに関して、夫々第１のエラー処理用データを生成し、上記所定量からなる一連のデータを夫々分割して得た複数のブロック毎に第２のエラー処理用データを生成するエラー処理用データ生成手段と、
上記所定量からなる一連のデータ、上記第１のエラー処理用データ及び上記第２のエラー処理用データにより、各記録単位のデータを生成する記録単位データ生成手段と、
上記各記録単位のデータを記録媒体に記録し、上記記録媒体より上記各記録単位のデータを再生する記録再生手段と、
上記記録再生手段によって再生された上記各記録単位のデータの内の上記所定量からなる一連のデータに対し、上記記録単位毎に上記第１のエラー処理用データにより、エラー訂正を行い、エラー訂正できなかった際に、上記第２のエラー処理用データにより、上記ブロック毎の上記所定量からなる一連のデータに対し、少なくともエラー検出を行い、連続するＮ（Ｎは正の整数）個のブロックにエラーが検出された際に、上記連続するＮ個のブロックのうちの両端を除いた少なくとも１個のブロックの全データを消失データと見なして、上記第１のエラー処理用データによりその記録単位の上記所定量からなる一連のデータに対して消失訂正を施すとともに、残りのブロックに対しては上記第１のエラー処理用データにより検出訂正を施すことで、誤り訂正を行う誤り訂正手段とからなるデータ記録再生装置。
【請求項１０】
上記エラー処理用データ生成手段は、上記第２のエラー処理用データとして、上記所定量からなる一連のデータに対する、上記記録媒体からの再生順に応じた方向の複数のパリティを生成する請求項９記載のデータ記録装置。
【請求項１１】
上記誤り訂正手段は、上記連続するＮ個のブロックの内の端にならない少なくとも１個のブロックの全データとこのブロックに隣接するブロックの一部のデータを消失データと見なして、上記第１のエラー処理用データによりその記録単位の上記所定量からなる一連のデータに対して消失訂正を施す請求項９記載のデータ記録再生装置。
【請求項１２】
上記誤り訂正手段は、連続する２個のブロックにエラーが検出された際には、上記連続する２個のブロックに跨る１ブロック分のデータを消失データと見なして、上記第１のエラー処理用データにより、その記録単位の上記所量からなる一連のデータに対して消失訂正を施し、誤り訂正不能である際は、消失データと見なす１ブロック分のデータの位置をずらして上記第１のエラー処理用データにより、再度消失訂正を施す請求項９記載のデータ記録再生装置。
【請求項１３】
所定量からなる一連のデータに関して、夫々第１のエラー処理用データを生成し、上記所定量からなる一連のデータを夫々分割して得た複数のブロック毎に第２のエラー処理用データを生成するエラー処理用データ生成手段と、
上記所定量からなる一連のデータ、上記第１のエラー処理用データ及び上記第２のエラー処理用データにより、各単位の伝送データを生成する伝送データ生成手段と、
上記各単位の伝送データを伝送する伝送手段と、
伝送された上記各単位の伝送データに対し、上記記録単位毎に上記第１のエラー処理用データにより、エラー訂正を行い、エラー訂正できなかった際に、上記第２のエラー処理用データにより、上記ブロック毎の上記伝送データに対し、少なくともエラー検出を行い、連続するＮ（Ｎは正の整数）個のブロックにエラーが検出された際に、上記連続するＮ個のブロックの内の両端を除いた少なくとも１個のブロックの全データを消失データと見なして、上記第１のエラー処理用データによりその伝送単位の上記所定量の一連のデータに対して消失訂正を施すとともに、残りのブロックに対しては上記第１のエラー処理用データにより検出訂正を施す誤り訂正手段とからなるデータ伝送装置。
【請求項１４】
上記エラー処理用データ生成手段は、上記第２のエラー処理用データとして、上記所定量からなる一連のデータに対する、上記記録媒体からの再生順に応じた方向の複数のパリティを生成する請求項１３記載のデータ伝送装置。
【請求項１５】
上記誤り訂正手段は、上記連続するＮ個のブロック内の端にならない少なくとも１個のブロックの全データとこのブロックに隣接するブロックの一部のデータを消失データと見なして、上記第１のエラー処理用データによりその記録単位の上記所定量からなる一連のデータに対して消失訂正を施す請求項１３記載のデータ伝送装置。
【請求項１６】
上記誤り訂正手段は、連続する２個のブロックにエラーが検出された際には、上記連続する２個のブロックに跨る１ブロック分のデータを消失データと見なして、上記第１のエラー処理用データにより、その記録単位の上記所定量からなる一連のデータに対して消失訂正を施し、誤り訂正不能である際には、消失データと見なした１ブロック分のデータの位置をずらして上記第１のエラー処理用データにより、再度消失訂正を施す請求項１３記載のデータ伝送装置。
【請求項１７】
（ａ）所定量からなる一連のデータに関して、夫々第１のエラー処理用データを生成し、上記所定量からなる一連のデータを夫々分割して得た複数のブロック毎に第２のエラー処理用データを生成し、
（ｂ）上記所定量からなる一連のデータ、上記第１のエラー処理用データ及び上記第２のエラー処理用データにより、各記録単位のデータを生成し、
（ｃ）上記各記録単位のデータを記録媒体に記録し、
（ｄ）上記記録媒体より上記各記録単位のデータを再生し、
（ｅ）再生した上記各記録単位のデータの内の上記所定量からなる一連のデータに対し、上記記録単位毎に上記第１のエラー処理用データにより、エラー訂正を行い、
（ｆ）上記ステップ（ｅ）においてエラー訂正ができなかった際に、上記第２のエラー処理用データにより、上記ブロック毎の上記所定量からなる一連のデータに対し、少なくともエラー検出を行い、
（ｇ）連続する２個のブロックにエラーが検出された際に、上記連続する２個のブロックに跨る１ブロック分のデータを消失データと見なして、上記第１のエラー処理用データにより、その記録単位の上記所定量からなる一連のデータに対して誤り訂正を施し、誤り訂正不能である際は、消失データと見なした１ブロック分のデータの位置をずらして上記第１のエラー処理用データにより、再度誤り訂正を施すことで、再生データを得るステップとからなるデータ記録再生方法。
【請求項１８】
（ａ）所定量からなる一連のデータに関して、夫々第１のエラー処理用データを生成し、上記所定量からなる一連のデータを夫々分割して得た複数のブロック毎に第２のエラー処理用データを生成し、
（ｂ）上記所定量からなる一連のデータ、上記第１のエラー処理用データ及び上記第２のエラー処理用データにより、各単位の伝送データを生成し、
（ｃ）上記各単位の伝送データを伝送し、
（ｄ）伝送された上記各単位の伝送データに対し、上記記録単位毎に上記第１のエラー処理用データにより、エラー訂正を行い、
（ｆ）上記ステップ（ｄ）でエラー訂正ができなかった際に、上記第２のエラー処理用データにより、上記ブロック毎の上記伝送データに対し、少なくともエラー検出を行い、
（ｇ）連続する２個のブロックにエラーが検出された際に、上記連続する２個のブロックに跨る１ブロック分のデータを消失データと見なして、上記第１のエラー処理用データにより、その記録単位の上記所定量からなる一連のデータに対して誤り訂正を施し、誤り訂正不能である際には、消失データと見なした１ブロック分の位置をずらして上記第１のエラー処理用データにより、再度誤り訂正を施すステップとからなるデータ伝送方法。
【請求項１９】
所定量からなる一連のデータに関して、夫々第１のエラー処理用データを生成し、上記所定量からなる一連のデータを夫々分割して得た複数のブロック毎に第２のエラー処理用データを生成するエラー処理用データ生成手段と、
上記所定量からなる一連のデータ、上記第１のエラー処理用データ及び上記第２のエラー処理用データにより、各記録単位のデータを生成する記録単位データ生成手段と、
上記各記録単位のデータを記録媒体に記録し、上記記録媒体より上記各記録単位のデータを再生する記録再生手段と、
上記記録再生手段によって再生された上記各記録単位のデータの内の上記所定量からなる一連のデータに対し、上記記録単位毎に上記第１のエラー処理用データにより、エラー訂正を行い、エラー訂正できなかった際に、上記第２のエラー処理用データにより、上記ブロック毎の上記所定量からなる一連のデータに対し、少なくともエラー検出を行い、連続する２個のブロックにエラーが検出された際に、上記連続する２個のブロックに跨る１ブロック分のデータを消失データと見なして、上記第１のエラー処理用データにより、その記録単位の上記所量からなる一連のデータに対して誤り訂正を施し、誤り訂正不能である際は、消失データと見なす１ブロック分のデータの位置をずらして上記第１のエラー処理用データにより、再度誤り訂正を施すことで、誤り訂正を行う誤り訂正手段とからなるデータ記録再生装置。
【請求項２０】
所定量からなる一連のデータに関して、夫々第１のエラー処理用データを生成し、上記所定量からなる一連のデータを夫々分割して得た複数のブロック毎に第２のエラー処理用データを生成するエラー処理用データ生成手段と、
上記所定量からなる一連のデータ、上記第１のエラー処理用データ及び上記第２のエラー処理用データにより、各単位の伝送データを生成する伝送データ生成手段と、
上記各単位の伝送データを伝送する伝送手段と、
伝送された上記各単位の伝送データに対し、上記記録単位毎に上記第１のエラー処理用データにより、エラー訂正を行い、エラー訂正できなかった際に、上記第２のエラー処理用データにより、上記ブロック毎の上記伝送データに対し、少なくともエラー検出を行い、連続する２個のブロックにエラーが検出された際に、上記連続する２個のブロックに跨る１ブロック分のデータを消失データと見なして、上記第１のエラー処理用データにより、その記録単位の上記所定量からなる一連のデータに対して誤り訂正を施し、誤り訂正不能である際には、消失データと見なした１ブロック分のデータの位置をずらして上記第１のエラー処理用データにより、再度誤り訂正を施す誤り訂正手段とからなるデータ伝送装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、例えば光ディスクドライブ等に適用して好適なデータ記録再生方法及びその装置、並びにデータ伝送方法及びその装置に関する。
【０００２】
【従来の技術】
光ディスクとしては、光磁気ディスク、相変化型の光ディスク、ライトワンスディスク、読み出し専用の光ディスク等が提案されている。これらの光ディスクは、書き込みが可能なディスクと、読み出し専用のディスクに大別することができる。
【０００３】
書き込み可能なディスクとしての光磁気ディスクは、製造時に行われるディスクサーティファイにおいてディフェクト（欠陥）セクタが検出された場合には、その欠陥セクタの次のセクタを交替セクタとし、この情報を光磁気ディスクの所定のエリアに記録しておき、再生時には、欠陥セクタの交替セクタを用いる。そして、出荷後に新たにディフェクトセクタが発生した場合には、欠陥セクタの交替セクタ専用の領域にその欠陥セクタの交替セクタを設定し、その交替セクタに本来欠陥セクタに記録すべきデータを記録すると共に、その情報を光磁気ディスクの所定のエリアに記録するようにされている。
【０００４】
一方、読み出し専用の光ディスクは、光ディスクドライブでデータが記録されることはなく、周知のように、その製造時にデータが記録され、出荷後においては、製造時に記録されたデータの読み出しだけである。
【０００５】
また、上記光磁気ディスクに対して光ディスクドライブでデータを記録する場合や、上記読み出し専用の光ディスクに対して製造時にデータを記録する場合には、データに夫々エラー訂正用のパリティやエラーチェック用のＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）等のパリティが付加されている。従って、再生時においては、光磁気ディスクであっても、また、読み出し専用の光ディスクであっても、再生されたデータに対して、パリティにより、エラーチェックやエラー訂正処理が施される。
【０００６】
このパリティとしては、リード・ソロモン符号を構成するためのパリティが知られている。リード・ソロモン符号は、通常、１シンボルを８ビット、データをｋシンボルとしたとき、このｋシンボルのデータにパリティが付加されて合計ｎシンボルの符号とされるものである。このとき、この誤り訂正用の符号の訂正能力を表す言葉としては、最小距離という言葉がある。
【０００７】
例えば１シンボルが１ビットの場合においては、上記ｎシンボルは、ｎビットで表されるので、ｎシンボルがとり得る２進数のデータ列は２n 通りあることになる。一方、パリティを除くデータは２k 通りだけ必要となるので、上記２n 通りのデータ列から２k 通りのデータ列を取り出し、任意の取り出した２つのデータ列の間でｄビットの異なるビットがあったとき、このｄについて距離という。そして、上記２k 通りのデータ列について全て同様に距離を求めたときの最小値を最小距離と称している。以下の説明では、この「最小距離」をディスタンスと呼ぶこととする。
【０００８】
そして、一般にｔ１個の誤り訂正をするための符号のディスタンスｄは、次に示す（式１）を満たさなければならない。
【０００９】
ｄ≧２ｔ１＋１・・・（式１）
【００１０】
例えばディスタンスｄが１７の場合は、ｔ１は８となる。つまり、８シンボルまでしか訂正ができないのである。
【００１１】
また、上記符号は、訂正を行う能力の他、誤りが生じたことを検出する能力も備えている。この誤りが生じたことを検出する能力により誤りを検出できる誤り検出個数をｔ２とすると、この誤り検出個数ｔ２は、次に示す（式２）で表すことができる。
【００１２】
ｔ２＝ｄ−（２ｔ１＋１）（但しｔ２≧０）・・・（式２）
【００１３】
例えばディスタンスｄが１７の場合の誤り訂正個数ｔ１と、誤り検出個数ｔ２は次の（表１）に示すようになる。
【００１４】
０シンボル訂正・・・ｔ１＝０、ｔ２＝１６
１シンボル訂正・・・ｔ１＝１、ｔ２＝１４
２シンボル訂正・・・ｔ１＝２、ｔ２＝１２
３シンボル訂正・・・ｔ１＝３、ｔ２＝１０
４シンボル訂正・・・ｔ１＝４、ｔ２＝８
５シンボル訂正・・・ｔ１＝５、ｔ２＝６
６シンボル訂正・・・ｔ１＝６、ｔ２＝４
７シンボル訂正・・・ｔ１＝７、ｔ２＝２
８シンボル訂正・・・ｔ１＝８、ｔ２＝０    ・・・（表１）
【００１５】
この（表１）から明らかなように、８シンボル訂正ではエラー検出個数は“０”であるので、もしも９シンボル以上のエラーが発生した場合には、エラーを正しく判別できなくなる場合が生じるのである。従って、ディスタンスｄを大きな値にすれば、それだけ訂正できる個数を増やし、しかも誤り検出能力を維持することができる。以上のようにして構成されたリード・ソロモン符号を、ディスタンスｄが比較的大きいという意味で、（ｎ、ｋ、ｄ）のＬＤＣ（Ｌｏｎｇ  Ｄｉｓｔａｎｃｅ  Ｃｏｄｅ：ロング・ディスタンス・コード）と称している。
【００１６】
光磁気ディスクや読み出し専用の光ディスク等では、上述したようなリード・ソロモン符号を構成した後に記録を行うことで、再生時にランダムエラーやディスタンスｄの値、誤り訂正個数ｔ１、誤り検出個数ｔ２に応じた長さのバーストエラーを訂正することができるようにしている。
【００１７】
ところで、上記（表１）から分かるように、例えばディスタンスｄが１７の場合は、エラー訂正可能な個数は最大で８個である。従って、９個以上のデータが連続してエラーとなるバーストエラーが発生した場合には、エラー訂正ができなくなり、誤ったデータのまま用いられてしまうという問題点がある。
【００１８】
光磁気ディスク等のように書き込み可能なディスクでは、欠陥セクタがあった場合に交替処理を行うことにより、データを交替セクタに記録して常に良好な再生が行えるようにしたり、更に、上記バーストエラーに対処するために、パリティセクタをディスクの１周或いは複数周に１箇所設け、ディスクの１周、或いは複数周分の他のセクタのデータのエクスクルーシブオアをとったものをパリティとしてこのパリティセクタに記録し、バーストエラーが発生したときに、上記パリティセクタから読み出したパリティに基いて、当該エラーに係るデータのエラー訂正を行うといった方法も採用している。
【００１９】
しかしながら、上記交替処理を行う方法を採用した場合には、交替処理を行うことにより、処理速度が遅くなる。特に、動画像データの場合等のようにリアルタイムで処理しなければならないデータを扱う場合において、処理速度の遅さは問題である。また、パリティセクタを使用してエラー訂正を行う方法を採用した場合、バーストエラーが発生すると、当該エリアに記録されているデータを再度読み込み、この再度読み込んだデータと、上記パリティセクタに記録されているパリティデータを用いてエラー訂正を行わなければならない。従って、バーストエラーが発生した場合にエラー訂正処理に費やされる時間が長くなるという問題が生じる。
【００２０】
一方、読み出し専用の光ディスクにおいては、上記交替処理を行うことができないので、再生時にバーストエラーの如き大きなエラーが発生した場合には、予め記録されているエラー訂正用の符号のみで対処しなければならない。従って、ディスタンスｄを大きな値にするか、或いはパリティセクタを用いてエラー訂正を行う方法を採用せざるを得ない。しかしながら、ディスタンスｄを大きな値にすればそれだけ符号の冗長度が増加して処理時間が長くなると共に、冗長度が増加した分だけ本来のデータを記録するための容量が減ってしまうという問題が生じる。また、パリティセクタを使用してエラー訂正を行う方法を採用した場合、バーストエラーが発生すると、当該エリアに記録されている全てのセクタのデータを再度再生し、この再度再生したデータと、上記パリティセクタに記録されているパリティとしてのデータを用いてエラー訂正を行わなければならず、バーストエラーが発生した場合にその処理に費やされる時間が長くなるという問題が生じる。
【００２１】
本発明はこのような点を考慮してなされたもので、バーストエラーが発生した場合においても、効率良く処理を行い、データの記録容量を減らすことなく、良好な再生を行うことのできるデータ記録再生方法及びデータ伝送装置を提案しようとするものである。
【００２２】
【課題を解決するための手段】
本発明の内の主要な発明の１つは、（ａ）所定量からなる一連のデータに関して、夫々第１のエラー処理用データを生成し、上記所定量からなる一連のデータを夫々分割して得た複数のブロック毎に第２のエラー処理用データを生成し、（ｂ）上記所定量からなる一連のデータ、上記第１のエラー処理用データ及び上記第２のエラー処理用データにより、各記録単位のデータを生成し、（ｃ）上記各記録単位のデータを記録媒体に記録し、（ｄ）上記記録媒体より上記各記録単位のデータを再生し、（ｅ）再生した上記各記録単位のデータの内の上記所定量からなる一連のデータに対し、上記記録単位毎に上記第１のエラー処理用データにより、エラー訂正を行い、（ｆ）上記ステップ（ｅ）においてエラー訂正ができなかった際に、上記第２のエラー処理用データにより、上記ブロック毎の上記所定量からなる一連のデータに対し、少なくともエラー検出を行い、（ｇ）連続するＮ（Ｎは正の整数）個のブロックにエラーが検出された際に、上記連続するＮ個のブロックの内の両端を除いた少なくとも１個のブロックの全データを消失データと見なして、上記第１のエラー処理用データによりその記録単位の上記所定量からなる一連のデータに対して消失訂正を施すとともに、残りのブロックに対しては上記第１のエラー処理用データにより検出訂正を施すことで、再生データを得るステップとからなるものである。
【００２３】
上述せる本発明によれば、第１のエラー処理用のデータの符号間最小距離では訂正不能となる連続する大きなエラーであっても復元する。
【００２４】
また上述せる本発明によれば、上記エラー発生の状態が、複数ブロックに跨るエラーの場合においては、上記エラーの跨る複数のブロックの内の略中央の少なくとも１つのブロックのデータ、並びに上記消失と見なした少なくとも１つのブロックに隣接するブロックのデータが消失したものと見なして上記第１のエラー処理用のデータにより誤り訂正処理を施す。
【００２５】
【発明の実施の形態】
以下に、図面を参照して本発明の実施の形態について詳細に説明する。
【００２６】
図１は光ディスクドライブの構成例を示す構成図である。この光ディスクドライブは、光磁気ディスク及びライトワンスディスクに対するデータの記録及びデータの再生、読み出し専用の光ディスクからのデータの読み出し、書き込み読み出し可能領域と読み出し専用領域からなるいわゆるパーシャルＲＯＭの書き込み読み出し可能領域に対するデータの書き込み及び読み出し、並びに読み出し専用領域からのデータの読み出しを行うことができるものである。
【００２７】
図１において、ドライブ１は、光ディスク４に対するデータの記録、光ディスク４からのデータの再生を行うものである。ドライブコントローラ２は、このドライブ１を制御するものである。ドライブ１は、ドライブコントローラ２のＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）専用の入出力端子ｉｏ１を介してホストコンピュータ３に接続される。そして、ドライブ１は、ドライブコントローラ２を介して、ホストコンピュータ３によりアクセスされる。
【００２８】
ここで、上記光ディスク４としては、光磁気ディスク、相変化型の光ディスク、ライトワンスディスク、書き込み可能領域（ＲＡＭ）と読み出し専用領域（ＲＯＭ）を有するパーシャルディスク、読み出し専用の光ディスク等が使用可能である。
【００２９】
ドライブ１は、光ディスク４をローディングするためのローディング機構５、ローディング機構５によりローディングされた光ディスク４を回転させるためのスピンドルモータ６、このスピンドルモータ６を駆動するドライバ７、光学ブロック８、この光学ブロック８のレーザーダイオード１３を駆動するドライバ１４、この光学ブロック８からの再生信号等をＩ−Ｖ（電流／電圧）変換し、その電圧を複数の系に供給するＩ−Ｖ／マトリクスアンプ１６、光ディスク４に磁界を与えるための磁気ヘッド１７及びこの磁気ヘッド１７を駆動するためのドライバ１８で構成される。ここで、上記Ｉ−Ｖ／マトリクスアンプ１６は、後述する光学ブロック８のフォトディテクタ１５からの多数の出力を組み合わせることにより、ＲＦ信号及びＭＯ（光磁気）信号を得る。
【００３０】
光学ブロック８は、光ディスク４にレーザーダイオード１３からのレーザー光を照射させると共に、光ディスク４で反射された反射光を、フォトディテクタ１５に入射させるためのレンズ系９、光学ブロック１０を光ディスク４の径方向に移動させるためのスライドモータ１０、ガルバノモータ１１、フォーカス用のフォーカスアクチュエータ１２、レーザーダイオード１３で構成される。
【００３１】
この磁気ヘッド１７の駆動用のドライバ１８は、入力端子１ｉ１を介して、ドライブコントローラ２の出力端子２ｏ１に接続される。レーザーダイオード１３の駆動用のドライバ１４は、入力端子１ｉ２及び１ｉ３を夫々介して、ドライブコントローラ２の出力端子２ｏ２及び２ｏ３に接続される。Ｉ−Ｖ／マトリクスアンプ１６は出力端子１ｏ１、１ｏ２、１ｏ３、１ｏ４、１ｏ５を夫々介して、ドライブコントローラ２の入力端子２ｉ１、２ｉ２、２ｉ３、２ｉ４、２ｉ５に接続される。フォーカスアクチュエータ１２は、入力端子１ｉ４を介して、ドライブコントローラ２の出力端子２ｏ４に接続される。ガルバノモータ１１は、入力端子１ｉ５を介して、ドライブコントローラ２の出力端子２ｏ５に接続される。スライドモータ１０は、入力端子１ｉ６を介して、ドライブコントローラ２の出力端子２ｏ６に接続される。スピンドルモータ６のドライバ７は、入力端子１ｉ７を介して、ドライブコントローラ２の出力端子２ｏ７に接続される。ローディング機構５は、入力端子１ｉ８を介して、ドライブコントローラ２の出力端子２ｏ８に接続される。
【００３２】
コマンド及びデータの授受のための処理は、ドライブコントローラ２により行われる。記録時において、ドライブコントローラ２は、ホストコンピュータ３からのデータに対し、ＣＲＣやエラー訂正コード等を付加してドライブ１に転送し、再生時において、ドライブコントローラ２は、ドライブ１からのデータに対してエラー訂正処理を施し、ユーザデータ部分のみをホストコンピュータ３に転送する。上記データの記録時、並びにデータの再生時において、ドライブ１のサーボ系及び各ブロックに対する指令は、ドライブコントローラ２によって行われる。
【００３３】
図２は第１図に示したドライブコントローラ２の構成例を示す構成図である。図２において、入出力回路３１は、バス４３を介してディジタル信号処理回路５３から供給される、レーザーダイオード１３のバイアスデータを、Ｄ−Ａコンバータ３２及び出力端子２ｏ２を介して、図１に示したドライバ１８に供給する。セレクタ／クランプ回路３３は、入力端子２ｉ１及び２ｉ２を夫々介して、図１に示したＩ−Ｖ／マトリクスアンプ１６から供給される出力を、後述するサーボ系タイミングジェネレータ４０からのタイミング信号に基いて選択し、この選択出力をクランプする。Ａ−Ｄコンバータ３４は、セレクタ４１からの選択されたサーボ系クロック信号またはデータ系クロック信号に基いて、セレクタ／クランプ回路３３からの出力を、ディジタルデータに変換する。
【００３４】
データ系クロック生成回路３４は、サーボ系クロック生成回路３９からのサーボ系クロック信号に基いて、データ系クロック信号を生成する。データ系タイミングジェネレータ３６は、データ系クロック信号に基いて、データ系タイミング信号を発生する。データ位相制御回路３７は、Ａ−Ｄコンバータ３４からの再生データ中から抽出した、位相の基準データに基いて、データ系クロック発生回路３５からのデータ系クロック信号の位相を制御して、読み出し／書き込み回路３８に読み出し時のクロックとして供給し、読み出し／書き込み回路３８からの書き込み位置制御信号の位相を制御して、出力端子２ｏ１を介して出力する。
【００３５】
読み出し／書き込み回路３８は、再生時においては、コントローラ４４からのリクエスト信号により、データ系クロック生成回路３５からのデータ系クロック信号、データ系タイミングジェネレータ３６からのデータ系タイミング信号に基いて、Ａ−Ｄコンバータ３４の出力を、コントローラ４４に供給し、アクノーリッジ信号を出力する。また、この読み出し／書き込み回路３８は、記録時においては、コントローラ４４からのデータを、出力端子２ｏ１及び図１に示した入力端子１ｉ１を介して、ドライバ１８に供給する。
【００３６】
サーボ系クロック生成回路３９は、Ａ−Ｄコンバータ３４の出力からサーボ系クロック信号を生成し、このサーボ系クロック信号を、サーボ系タイミングジェネレータ４０、セレクタ４１及びアドレスデコーダ４２に夫々供給する。サーボ系タイミングジェネレータ４０は、サーボ系クロック生成回路３９からのサーボ系クロック信号に基いてサーボ系タイミング信号を生成し、このサーボ系タイミング信号を、セレクタ４１、アドレスデコーダ４２、セレクタ／クランプ回路３３に夫々供給する他、出力端子２ｏ３及び図１に示した入力端子１ｉ３を介してレーザーダイオード１３のドライバ１４に供給する。
【００３７】
マルチプレクサ４５は、図１に示したＩ−Ｖ／マトリクスアンプ１６から入力端子２ｉ３、２ｉ４及び２ｉ５を夫々介して供給されるフロントＡＰＣ（Ａｕｔｏｍａｔｉｃ  Ｐｏｗｅｒ  Ｃｏｎｔｒｏｌ）信号、フォーカスエラー信号及びプルイン信号を、Ａ−Ｄコンバータに供給する。入出力回路４７は、Ａ−Ｄコンバータ４６の出力を、バス４３を介してディジタル信号処理回路５３に供給する。ＰＷＭ（パルス幅変調）回路４８は、ディジタル信号処理回路５３からバス４３を介して供給される、光学ブロック８の駆動用のデータを変調する。
【００３８】
ドライバ４９は、出力端子２ｏ４及び図１に示した入力端子１ｉ４を介して、フォーカスアクチュエータ１２に接続される。ドライバ４９は、図１に示したフォーカスアクチュエータ１２を、駆動する。ドライバ５０は、出力端子２ｏ５及び図１に示した入力端子１ｉ５を介して、ガルバノモータ１１に接続される。ドライバ５０は、図１に示したガルバノモータ１０を、駆動する。ドライバ５１は、出力端子２ｏ６及び図１に示した入力端子１ｉ６を介して、スライドモータ１０に接続される。ドライバ５１は、図１に示したスライドモータ１１を、駆動する。
【００３９】
入出力回路５２は、ディジタル信号処理回路５３からの駆動信号を、出力端子２ｉ６及び図１に示したドライバ７を介して、スピンドルモータ６に供給する。ディジタル信号処理回路５３は、太い実線で示すバスを介して、コントローラ４４に接続される。そして、ディジタル信号処理回路５３は、バス４３を介して、上記各ブロックの制御や駆動処理を行う。
【００４０】
ディジタル信号処理回路５３は、光ディスク４が、ローディング機構５により、スピンドルモータ６に装着された状態で、ホストコンピュータ３からの要求に応じて、あるいは自動スピンアップモードが設定されている場合に、光ディスク４がローディング機構５によりローディングされると、入出力回路５２を介して、ドライバ７に対し、スピンドルモータ６を回転駆動するよう指示を出す。
【００４１】
ドライバ７は、スピンドルモータ６が所定の回転数になると、ロック信号を出力し、ディジタル信号処理回路５３に対し、スピンドルモータ６の回転が安定したことを通知する。この間、ディジタル信号処理回路５３は、ＰＷＭ回路４８を介して、ドライバ５１によりレーザーダイオード１３からのレーザービームを、光ディスク４のユーザエリア外に位置させるようにすると共に、ドライバ５１により光学ブロック８を、光ディスク４の外周又は内周側に移動させる。
【００４２】
ユーザエリアでフォーカスの引き込みを行うと、感度の高いディスクのデータを誤って消去してしまう可能性があるが、ユーザエリア外に光学ブロック８を移動させ、そのユーザエリア外でフォーカスの引き込みを行うことにより、このような誤消去を防止することができる。
【００４３】
スピンドルモータ６が一定速度での回転になり、光学ブロック８が、例えば外周側に移動すると、ディジタル信号処理回路５３は、入出力回路３１及びＤ−Ａコンバータ３２を介して、ドライバ１４に対し、光学ブロック８に設けられているレーザーダイオード１３のバイアス電流を設定し、レーザーダイオード１３のオン、オフを制御するサーボ系タイミングジェネレータ４０に、レーザーを発光するようコマンドを出力する。
【００４４】
レーザーダイオード１３から出射されたレーザービームは、光学ブロック８に設けられているフォトディテクタ１５に入射し、このフォトディテクタ１５により電気信号に変換され、検出出力としてＩ−Ｖ／マトリクスアンプ１６に供給されて電圧に変換され、フロントＡＰＣ信号としてマルチプレクサ４５に供給される。
【００４５】
このフロントＡＰＣ信号は、上記マルチプレクサ４５により、時分割的に選択された信号として、Ａ−Ｄコンバータ４６によりディジタル化され、入出力回路４７及びバス４３を介して、ディジタル信号処理回路５３に供給される。ディジタル信号処理回路５３は、ディジタル化されたフロントＡＰＣ信号により、レーザーダイオード１３から出射されるレーザービームの光量を認識し、図示しないディジタルフィルタにより計算される光量制御データを、上記入出力回路３１及びＤ−Ａコンバータ３２を介して、ドライバ１４に帰還することにより、レーザーダイオード１３のパワーが一定となるよう制御する。
【００４６】
次に、ディジタル信号処理回路５３は、ＰＷＭ回路４８からドライバ４９に電流を流すことにより、光学ブロック８のフォーカスアクチュエータ１２を、上下方向に駆動して、フォーカスアクチュエータ１２を、フォーカスサーチ状態にする。このとき光ディスク４で反射されたレーザービームは、フォトディテクタ１５の受光面に入射する。フォトディテクタ１５で受光されたレーザービームは、電気信号に変換され、検出出力としてＩ−Ｖ／マトリクスアンプ１６に供給され、このＩ−Ｖ／マトリクスアンプ１６により、電圧に変換され増幅された後に、フォーカスエラー信号として出力され、マルチプレクサ４５に供給される。
【００４７】
このフォーカスエラー信号は、フロントＡＰＣ信号と同様に、マルチプレクサ４５により、時分割的に選択された信号として、Ａ−Ｄコンバータ４６により、ディジタル化され、入出力回路４７及びバス４３を介して、ディジタル信号処理回路５３に供給される。ディジタル信号処理回路５３は、ディジタル化されたフォーカスエラー信号に対して、ディジタル的にフィルタ処理を施して得られるフォーカス制御データを、ＰＷＭ回路４８からドライバ４９に帰還することによって、フォーカス制御用のサーボループを構成する。フォーカス制御が安定すると、フォトディテクタ１５から出力され、Ｉ−Ｖ／マトリクスアンプ１６を経て得られるＲＦ信号は、その振幅がある程度一定になり、セレクタ／クランプ回路３３によって所定の電位にクランプされた後、Ａ−Ｄコンバータ３４によってディジタル化される。
【００４８】
このときのクロックは、サーボ系クロック生成回路３９のフリーラン状態の周波数となる。クランプを行うためのタイミングパルスも、このフリーランの周波数を所定の値で分周した信号が用いられる。
【００４９】
サーボ系クロック生成回路３９は、Ａ−Ｄコンバータ３４でディジタル化されたＲＦ信号の振幅差を見ることによって、光ディスク４上に形成されたピットのパターンをチェックし、サーボエリアのピット列と同じパターンを探す。そして、サーボ系クロック生成回路３９は、パターンが見つかると、次のパターンが現れるべき位置にウインドウを開くよう、クロックセレクタ４１を制御し、そこで再びパターンが一致するか否かを確認する。
【００５０】
この動作がある一定の回数連続して確認できると、サーボ系クロック生成回路３９は、光ディスク４のピットのパターンにロックしたものと見なす。位相情報はサーボエリア内のウォブルピットの両肩の振幅差を取ることで得る。更に２個のウォブルピットの両方から得られた位相情報を加算することで、トラッキング位置による振幅変化から生じるゲイン変動を吸収している。
【００５１】
サーボ系クロック生成回路３９がロックすると、セグメント単位の位置が明確になり、光ディスク４上に形成されたセグメントマークピットの位置も認識できるようになり、セグメントマークピット、アドレスマークピット、セクタフラグ１ピット及びセクタフラグ２ピットに対して所定の複数の位置Ａｒ１、Ａｒ２、Ａｒ３及びＡｒ４でサンプリングされたＲＦ信号の内で最大振幅となる位置を探す。
【００５２】
その結果がＡｒ１であるときにアドレスマークであって、このセグメントがアドレスセグメントであり、フレームの先頭を認識することができるので、フレームカウンタをクリアすることでフレーム同期をとることができる。１フレームが１４セグメントで構成されている場合は、１４セグメント毎にウインドウを開くようにクロックセレクタ４１を制御し、アドレスマークとして連続して認識できるときにフレーム同期がロックしたものと判断する。
【００５３】
フレーム同期がかかると、光ディスク４上のアドレスの記録されている位置が認識できるので、アドレスデコーダ４２によりトラックアドレス及びフレームコードのデコードを行う。このアドレスデコーダ４２では、４ビットずつグレーコード化されているパターンをグレーコードテーブルとの一致を見ることにより行われる。但し、４ビットのみではなく、全体でグレーコード化されているので、単純に一致を見るのではなく、上位４ビットの内のＬＳＢが「１」か「０」かによって反転したテーブルとの比較を行う。
【００５４】
ここで、最初にデコードされたフレームコードをフレームカウンタにロードして、このフレームカウンタをフレーム毎にインクリメントして得られる数値と、実際に再生されたフレームコードとを比較して連続して一致することを確認したときに、回転同期がかかったものとする。これ以降、フレームカウンタにより得られる数値を、フレームコードとしてディジタル信号処理回路５３に返すことによって、ディフェクト等が多少あってもフレーム位置を誤認識しないようにしている。
【００５５】
また、ディジタル信号処理回路５３は、先のグレーコード化されたトラックアドレスを読みながら光学ブロック８の速度を演算し、ＰＷＭ回路４８からドライバ５１を介して光学ブロック８のスライドモータ１０を制御することにより、光学ブロック８を光ディスク４上の目的のトラックに移動する。
【００５６】
そして、ディジタル信号処理回路５３は、光学ブロック８の位置が目的のトラックの位置となると、トラッキング動作に入る。上述のようにトラッキングエラー信号はサーボエリアにある２つのウォブルピットに対するＲＦ信号の振幅値の差分を取ることで得られる。ディジタル信号処理回路５３は、この値をディジタル的にフィルタ処理を施して得られるトラッキング制御データを、ＰＷＭ回路４８からドライバを介して、光学ブロック８のガルバノモータ１１を制御することにより、低周波数成分の変動を制御し、更に、レーザーダイオード１３からのレーザービームのスポットが、光ディスク４のトラックの中心に位置するようトラッキング制御を行う。
【００５７】
ディジタル信号処理回路５３は、このようにトラッキングをかけた状態で目的のセクタの先頭位置を検出する。上述のように、各セクタの先頭となるセグメントとその１つ前のセグメントにはセクタマークがあり、各セクタマークは、上記４つの位置Ａｒ１、Ａｒ２、Ａｒ３及びＡｒ４にウインドウを開くようにセレクタ４１を制御し、この４つの位置Ａｒ１、Ａｒ２、Ａｒ３及びＡｒ４でサンプリングされたＲＦ信号のなかで最大振幅となる位置が位置Ａｒ２であるときにセクタの先頭セグメントであることを示し、位置Ａｒ３であるときにセクタの先頭の１つ前のセグメントであることを示す。
【００５８】
基本的にセクタの先頭となるセグメントは、ホストコンピュータ３により与えられるセクタアドレスに対して物理セクタに変換し、そのセクタがどのトラックの何番目のセグメントであるかを演算することによって決定される。但し、上記２種類のセクタマークが同時にディフェクトになる確率は非常に少なく、これによる不良セクタの発生確率は極めて小さい。
【００５９】
また、データ系クロック生成回路３５は、サーボ系クロック生成回路３９から得られるフレーム同期のかかったサーボクロックを、Ｍ／Ｎ倍したデータクロックを生成し、このデータクロックをデータ系タイミングジェネレータ３６及び読み出し／書き込み回路３８に夫々与える。
【００６０】
記録動作モード時には、ホストコンピュータ３から記録データが、コントローラ４４を介して、読み出し／書き込み回路３８に供給される。そして、読み出し／書き込み回路３８は、記録データに対し、例えば１２７周期の乱数を加算（排他的論理和）することによりＹ＝Ｘ7 ＋Ｘ＋１にしたがってスクランブル処理をセクタ単位で行い、スクランブルされた記録データをデータクロックに同期したＮＲＺＩ系列のデータに変調する。このとき、各セグメント毎に初期値を「０」とし、その変調信号をドライバ１８を介して磁気ヘッド１７に供給する。
【００６１】
磁気ヘッド１７は、変調信号に応じた磁界を発生し、この磁界を、レーザーダイオード１３が出射するレーザービームにより、キュリー温度まで加熱された光ディスク４のデータエリアに印加することにより、ＮＲＺＩ系列のデータを記録する。
【００６２】
また、再生動作モード時には、フォトディテクタ１５による検出出力からＩ−Ｖ／マトリクスアンプ１６により得られるＭＯ信号又はＲＦ信号が、セレクタ／クランプ回路３３によって所定の電位にクランプされた後、Ａ−Ｄコンバータ３４によってディジタル化されて読み出し／書き込み回路３８に供給される。そして、読み出し／書き込み回路３８は、Ａ−Ｄコンバータ３４によりディジタル化された再生信号について、パーシャルレスポンスに合わせるディジタルフィルタ処理を施してからビダビ復号によりＮＲＺＩ系列のデータを再生する。そして、このＮＲＺＩ系列のデータをセグメント単位にＮＲＺ系列のデータに変換後、セクタ単位でデ・スクランブルして再生データに変換し、この再生データをコントローラ４４を介してホストコンピュータ３に転送する。尚、ＭＯ信号とＲＦ信号は、フォトディテクタ１５からの多数の出力の内、異なる組み合わせで演算された結果得られるものである。
【００６３】
図３は図２に示したコントローラ４４の構成例を示す構成図である。図３に示すコントローラ４４は、ＣＰＵ６０に、アドレス、データ及びコントロールバスからなるバス６１が接続され、このバス６１に、再生動作時における処理を行うための各種プログラムデータやパラメータデータ等が記憶されているＲＯＭ６２、ＲＯＭ６２に記憶されているプログラムデータ等のワーク用のエリアとして用いられるＲＡＭ６３、入出力ポート６４、再生されたデータに対するエラー訂正やエラーチェックを行うデコーダ６７、ホストコンピュータ３から供給されるデータについてパリティを生成し、この生成したパリティを当該データに付加するためのエンコーダ６８、バッファ７０及びインターフェース回路７１が接続されて構成される。
【００６４】
入力端子６５は、図２に示した読み出し／書き込み回路３８及びスイッチ６６の可動接点６６ｃに夫々接続される。このスイッチ６６の一方の固定接点ａは、デコーダ６７の入力端子に接続され、スイッチ６６の他方の固定接点ｂは、エンコーダ６８の出力端子に接続される。
【００６５】
また、デコーダ６７のデータ用の出力端子は、スイッチ６９の一方の固定接点ａに接続される。エンコーダ６８の入力端子は、スイッチ６９の他方の固定接点ｂに接続される。このスイッチ６９の可動接点ｃは、バッファ７０の入出力端子に接続される。また、バッファ７０の入出力端子は、インターフェース回路７１の入出力端子に接続される。このインターフェース回路７１の入出力端子は、入出力端子ｉｏ１を介して、図１に示したホストコンピュータ３の入出力端子に接続される。
【００６６】
ここで、デコーダ６７は、スイッチ６６を介して供給される再生データに対し、第１のＥＣＣを用いてエラー検出を行い、検出したエラー数が、エラーの訂正ができない数となったとき、並びに、ＣＲＣを用いてエラーチェックを行い、エラーが検出されたときには、更に、第２のＥＣＣを用いたエラー検出処理を行う。
【００６７】
デコーダ６７は、ＲＡＭ６７ａ及び６７ｂと、このＲＡＭ６７ａ及び６７ｂに書き込まれた再生データを制御することにより、ＬＤＣによるエラー訂正処理、ＣＲＣによるエラーチェック、これらの訂正やチェックが不能となるバーストエラー発生時に、２ｎｄＥＣＣでエラー検出を行う、ＲＡＭコントローラ６７ｃとで構成される。以下、２ｎｄＥＣＣを用いたエラー検出を、「エラーチェック」と称する。ここで、上記ＲＡＭ６７ａ及び６７ｂは、夫々再生データを記憶するための１セクタ分（本例においては２３５２バイトとする）の容量と、後述するエラー検出処理やエラー訂正処理において生成される各種データの記憶用の容量との合計の容量を有する。
【００６８】
このデコーダ６７の出力は、スイッチ６９を介してバッファ７０に供給される。ここで、２ｎｄＥＣＣとは、記録中のセクタのデータで生成したＥＣＣのパリティの内、当該セクタの次のセクタの所定領域に記録されたパリティである。そして、この２ｎｄＥＣＣは、デコード時に、或セクタのデータに対し、１ｓｔＥＣＣとしてのパリティによるエラー訂正が不可能な場合や、ＣＲＣによるエラーチェックを行ったときにエラーが発生したことが検出された場合、当該セクタのデータのエラーの位置の検出用に用いられるパリティである。
【００６９】
エンコーダ６８は、図３に示すように、夫々１セクタ分の記憶容量を有するＲＡＭ６８ａ及び６８ｂと、ＲＡＭ６８ａ及び６８ｂに夫々書き込んだ入力データを制御することにより、１ｓｔＥＣＣとしてのパリティの生成、ＣＲＣのパリティの生成、２ｎｄＥＣＣとしてのパリティの生成、これらのパリティの付加を行う。但し、エンコーダ６８は、或セクタのユーザデータについて生成した２ｎｄＥＣＣとしてのパリティのみを、次のセクタのユーザデータに付加する。
【００７０】
エンコーダ６８は、ホストコンピュータ３から転送されるデータに対し、上記パリティを夫々付加すると共に、１つ前のセクタの２ｎｄＥＣＣとしてのパリティを付加する。
【００７１】
尚、図１に示した光ディスクドライブにおいて上記チェック用のパリティやエラー訂正用のパリティを記録することができるのは、光磁気ディスク、ライトワンスディスク及びパーシャルディスクの書き込み可能領域である。従って、読み出し専用の光ディスクやパーシャルディスクの読み出し専用領域の場合には、上記パリティは、ディスクの製造時に記録される。
【００７２】
入出力ポート６４に接続される入出力端子７２は、図２に示したディジタル信号処理回路５３のバス４３に接続される。出力端子７３は、図２に示した読み出し／書き込み回路３８のアクノーリッジ信号用の入力端子に接続される。入力端子７４は、図２に示した読み出し／書き込み回路３８のリクエスト信号用の出力端子に接続される。
【００７３】
先ず、光ディスク４に対してホストコンピュータ３から転送されたデータを記録する場合について説明する。この場合、ＣＰＵ６０は、入出力ポート６４を介してスイッチ６６及び６９にスイッチング制御信号を供給し、スイッチ６６及び６９の各可動接点ｃを各固定接点ｂに接続させる。これによって、ホストコンピュータ３から転送される記録データは、バッファ７０から読み出された後にスイッチ６９を介して、エンコーダ６８に供給され、このエンコーダ６８により、上記エラー検出、エラー訂正のための符号が付加された後に、スイッチ６６及び出力端子６５を介して、図２に示した読み出し／書き込み回路３８に供給され、光ディスク４のユーザエリアに記録される。
【００７４】
このとき、エンコーダ６８は、ＲＡＭ６８ａに記憶された或セクタ（Ｎセクタ）のデータに対してパリティの付加を行い、記録のための処理が終了した時点で、そのＮセクタのデータを、スイッチ６３を介して、入出力端子６５に供給すると共に、その旨を示す信号を、入出力ポート６４及びバス６１を介してＣＰＵ６０に供給する。これにより、ＣＰＵ６０は、図２に示した読み出し／書き込み回路３８に対して記録を行うよう指示すると共に、次の入力データを受け入れるためにバッファ７０及びインターフェース回路７１を制御する。これによって、上記Ｎセクタの全データはドライブ１に供給され、光ディスク４に記録される。そして、この間、次の入力データが、次のセクタ（Ｎ＋１セクタ）のデータとして、ＲＡＭ６８ｂに書き込まれる。
【００７５】
次に、再生時の動作について説明する。ＣＰＵ６０は、入出力ポート６４を介して、スイッチ６６及び６９に、スイッチング制御信号を、夫々供給し、スイッチ６６及び６９の各可動接点ｃを固定接点ａに接続させる。これによって、光ディスク４から読み出され、読み出し／書き込み回路３８、入出力端子６５及びスイッチ６６を介して供給される再生データは、デコーダ６７に供給され、このデコーダ６７においてエラー検出及びエラー訂正処理が施された後に、スイッチ６９、バッファ７０、インターフェース回路７１及び入出力端子ｉｏ１を介して、図１に示したホストコンピュータ３に供給される。
【００７６】
このとき、デコーダ６７は、ＲＡＭ６７ａに記憶されたＮセクタのデータに対し、１ｓｔＥＣＣとしてのパリティによるエラー訂正、ＣＲＣのパリティによるエラーチェック、更にバーストエラー等が発生してエラーの訂正が不能となった場合に、ＲＡＭ６７ｂに記憶されているＮ＋１セクタのデータ中から、２ｎｄＥＣＣとしてのパリティを読み出し、当該２ｎｄＥＣＣのパリティにより、エラーの位置を検出する。そして、デコーダ６７は、エラーの位置を認識した上で、再び１ｓｔＥＣＣとしてのパリティによるエラー訂正を行ってＮセクタのデータを訂正し、次に、ＣＲＣのパリティによるエラーチェックを行う。
【００７７】
デコーダ６７は、以上説明した再生処理が終了した時点で、Ｎセクタのデータを出力すると共に、再生処理が終了したことを示す信号を入出力ポート６４及びバス６１を介してＣＰＵ６０に供給する。これにより、ＣＰＵ６０は、図２に示した読み出し／書き込み回路３８に対して次のセクタの再生を行うよう指示する。これによって、上記Ｎセクタの全データは、バッファ７０に供給される。続いて、光ディスク４から読み出されたＮ＋２セクタの再生データがＲＡＭ６７ａに供給される。
【００７８】
尚、上記図１〜図３に示す光ディスクドライブは、読み出し専用の光ディスクやパーシャルディスク等の書き込み可能領域のみ有するディスクや読み出し専用領域の他に書き込み可能領域を有するディスク、光磁気ディスクやライトワンスディスク等の読み出し専用領域のみ有するディスクや書き込み専用領域の他に読み出し可能領域を有するディスクの何れも使用することができる。
【００７９】
図４は、本発明記録媒体の適用される光ディスクのフォーマットの一例を示す説明図である。図４に示すように、光ディスク４上に、その最外周から最内周に向かって、ディスク種別データ等が記録されるＧＣＰ（グレー・コード・パート）領域、ＣＴＬ（コントロール）領域、ＴＥＳＴ（テスト）領域、ＢＡＮＤ（バンド）０〜ＢＡＮＤ１５のデータ領域、ＴＥＳＴ領域、ＣＴＬ（コントロール）領域、ＧＣＰ領域が設定される。尚、ＧＣＰ領域は、付加情報やアドレス情報が記録される領域で、ピットパターンがグレーコードで形成されている。従って、このＧＣＰ領域の情報は、シーク時においても読み取りが可能である。また、ＣＴＬ領域は、メディアタイプを示す情報等が記録される領域、ＴＥＳＴ領域は、試し書きを行うための領域である。
【００８０】
図５は図４に示した光ディスクの具体的フォーマットの一例を示す説明図である。図５において、一番上の欄のＧＣＰ領域が、図４に示した光ディスク４の最外周のＧＣＰ領域に対応し、以下順に上の欄から下の欄までが、図４に示した光ディスク４の最外周から最内周の各領域に夫々対応する。
【００８１】
尚、本例においては、ゾーンＣＡＶを用いた場合を例にとり説明するので、図５に示すように、データクロックはゾーン毎に異なる。
【００８２】
図６〜図８は、セクタフォーマットの一例を示す説明図である。即ち、図６〜図８により、１セクタの内容を示す。既に説明したように、光ディスク４が光磁気ディスクやライトワンスディスクの場合や、記録を行う場合にパーシャルディスクの書き込み可能領域の場合においては、以下に示すセクタフォーマットを構成する各データは、図１に示した光ディスクドライブによって記録され、光ディスク４が読み出し専用の光ディスクの場合や記録を行う場合にパーシャルディスクの書き込み可能領域の場合においては、以下に示すセクタフォーマットを構成する各データはディスクの製造時に記録される。
【００８３】
図６〜図８において、ｉはコードワード（図においては行）を示し、ｊは夫々バイトを示し、実線の矢印は書き込み方向を示し、Ｄ０〜Ｄ２０４７で示されるデータは、ユーザデータを示し、（Ｐ１、Ｐ２）〜（Ｐ３５、Ｐ３６）で示されるデータは、夫々ｉ＝１３０〜１２３、・・・・ｉ＝１０〜３で示される上記ユーザデータＤ０〜Ｄ１２７、・・・・Ｄ１９２０〜Ｄ２０４７に対するパリティを示し、（Ｑ１、Ｑ２）で示されるデータはパリティＰ１〜Ｐ３６に対するパリティを示し、（Ｑ３、Ｑ４）で示されるデータは、パリティＰ１〜Ｐ３６及びパリティ（Ｑ１、Ｑ２）に対するパリティを示し、ＣＲＣ１〜ＣＲＣ８で示されるデータはユーザデータＤ０〜Ｄ２０４７に対するエラーチェック用のパリティを示す。
【００８４】
また、（Ｅ１、１）〜（Ｅ１６、１６）で示されるデータは、夫々ｊ＝０〜ｊ＝１５で示される上記ユーザデータＤ０〜Ｄ２０４７、パリティＰ１〜Ｐ３６及びＣＲＣ１〜ＣＲＣ８に対するリード・ソロモン符号のパリティである。即ち、パリティ（Ｅ１、１）〜（Ｅ１、１６）でなるｊ＝０のパリティは、データＤ０、Ｄ１６、・・・・Ｄ２０３２、及びｊ＝０、ｉ＝１３０〜０で示されるデータに対するパリティである。また、パリティ（Ｅ２、１）〜（Ｅ２、１６）でなるｊ＝１、ｉ＝−１〜−１６で示されるデータは、ｊ＝１、ｉ＝１３０〜０で示されるデータに対するパリティである。その他の行についても同様のパリティが設けられている。
【００８５】
ところで、図６〜図８を参照して説明したように、ｉ＝１４７〜−１６で示される各行のデータに対し、夫々リード・ソロモン符号を構成した場合、上述したように、ディスタンスは夫々１７である。従って、（表１）から分かるように、連続してエラーが発生した場合、最大で８個までエラーを検出し、訂正することができるが、９個以上連続してエラーが発生した場合、エラーの訂正を行うことはできない。
【００８６】
そこで、本例においては、上述したように、ｉ＝１３０、ｊ＝０〜ｉ＝３、ｊ＝１５で示される各データに対する、エラーチェック、訂正用の２ｎｄＥＣＣとしてのパリティＰ１〜Ｐ３６を生成し、これを再生時に用いる。
【００８７】
ここで、パリティ（Ｅ１、１）〜パリティ（Ｅ１６、１６）は、各縦方向の全データが１４７バイト、パリティの対象となるユーザデータＤ０〜Ｄ２０４７の各縦方向のデータ長が１３１バイト、パリティの各縦方向のデータ長が１６バイトであるから、ディスタンスは１７となる。よって、リード・ソロモン符号は、（１４７、１３１、１７）である。尚、１コードワードは、１バイトである。
【００８８】
ここで、１セクタは、上述したように、１６バイト×１４７＝２３５２バイトとなる。
【００８９】
次に、図６〜図８に示したセクタのデータに対する７行−８行−７行パターンについて、図９を参照して説明する。
【００９０】
この図９から明かなように、図６〜図８に示したｉ＝１３０〜１２４までの、７行からなる全データについてパリティＰ１及びＰ２が生成され、ｉ＝１２３〜１１６までの、８行からなる全データについてパリティＰ３及びＰ４が生成され、ｉ＝１１５〜１０９までの、７行からなる全データについてパリティＰ５及びＰ６が生成され、以下同様に、７行、８行、７行の順でパリティが生成される。
【００９１】
つまり、上記パリティＰ１〜Ｐ４０の生成により、（１１４、１１２、３）と、（１３０、１２８、３）と、（１１４、１１２、３）とからなる３つのリード・ソロモン符号の組が順に形成される。
【００９２】
本例においては、以上説明したように、光ディスク４にデータを記録する際、データのエラー訂正用の第１ＥＣＣとしてのパリティ、データチェック用のＣＲＣのパリティ、第２のＥＣＣとしてのパリティを７行−８行−７行パターンで生成し、光ディスク４が読み出し専用ディスクの場合は、第２のＥＣＣとしてのパリティのみをｎセクタの次のｎ＋１セクタ内の特定領域に記録するようにしている。
【００９３】
しかしながら、この例においても、再生時におけるバーストエラーの発生の仕方によっては、訂正することのできないデータが発生する可能性がある。以下、その理由を説明し、その後、更に、図面を参照しながら上記バーストエラー発生時の対処方法について説明する。
【００９４】
図１０は１つの連続したバーストエラーがあるセクタ内で発生した場合の例を示す説明図である。
【００９５】
図１０において、ＳＥＣは任意のセクタを、ＳＥＣ’は任意のセクタＳＥＣを詳しく示したものである。また、これらセクタＳＥＣ、ＳＥＣ’の図は何れも図９を参照して説明した７行−８行−７行パターンを用いた場合を想定している。ここで、７行や８行からなるデータのかたまりを、ブロックと呼ぶこととする。
【００９６】
再生時において、図１０に示すセクタＳＥＣにおいて斜線で示す領域中のデータが全てエラー（バーストエラー）となった場合を想定する。セクタＳＥＣに示すようなバーストエラーが発生した場合、上述した第１のＥＣＣとしてのパリティＬＤＣを用いて検出訂正をすることができない。何故なら、第１のＥＣＣとしてのパリティＬＤＣはディスタンスｄが“１７”であるから、８バイトの誤りまでしか検出訂正できないからである。そこで、上述した第２のＥＣＣとしてのパリティＰ１〜Ｐ４０を用いれば誤りのあるブロックの検出を行うことができ、誤りのあるブロックを消失と見なすことにより、消失訂正を行うことができる。この消失訂正ができるのは、７行−８行−７行のパターンでは、バーストエラーが、丁度、７行と８行に跨ったときが最大であり、この場合、１５消失訂正となる。尚、８行のみのパターンでは１６消失訂正が最大となる。
【００９７】
しかしながら、このバーストエラーがＳＥＣ’に示すように、７行ブロック−８行ブロック−７行ブロックに跨って１１行分となった場合は、２２（＝７＋８＋７）消失訂正を行わなければならなくなり、上述した第２のＥＣＣとしてのパリティＰ１〜Ｐ４０をもってしても誤り訂正をすることができない。
【００９８】
そこで、本例においては、第１に、このように３つの連続したブロック、例えば７行ブロック−８行ブロック−７行ブロックに跨るバーストエラーに対してもエラー訂正できるようにする。具体的には、この例の場合では、第２のＥＣＣとしてのパリティＰ１〜Ｐ４０を用いてエラー検出を行い、この後中央の８行分のデータを消失したものとみなして第１ＥＣＣとしてのパリティＬＤＣにより８消失訂正を、残り４バイトで検出訂正を行うようにする方法と、第２のＥＣＣとしてのパリティＰ１〜Ｐ４０を用いてエラー検出を行い、この後中央の８行分とその上下Ｎ行分のデータを消失したものとみなして第１ＥＣＣとしてのパリティＬＤＣにより８＋Ｎ消失訂正を、残りＭバイトで検出訂正を行うようにする方法が採用可能である。以下にそのパターンを示す
【００９９】
８消失訂正と４検出訂正・・・・・・・・・・・・・・１２行
１０（８＋上下１行）消失訂正と３検出訂正・・・・・１３行
１２（８＋上下２行）消失訂正と２検出訂正・・・・・１４行
１４（８＋上下３行）消失訂正と１検出訂正・・・・・１５行
１６（８＋上下４行）消失訂正・・・・・・・・・・・１６行
【０１００】
尚、中央のブロックが７行の場合は次の通りである。
７消失訂正と４検出訂正・・・・・・・・・・・・・・１１行
９（７＋上下１行）消失訂正と３検出訂正・・・・・・１２行
１１（７＋上下２行）消失訂正と２検出訂正・・・・・１３行
１３（７＋上下３行）消失訂正と１検出訂正・・・・・１４行
１５（７＋上下４行）消失訂正・・・・・・・・・・・１５行
【０１０１】
何れのパターンにおいても、ディスタンスｄが“１７”の場合であり、“１６”を越えないようにすることが条件となる。
【０１０２】
図１１は、複数のバーストエラーがセクタ内で発生した場合の例を示す説明図である。
【０１０３】
図１１において、ＳＥＣは任意のセクタを詳しく示したものである。また、このセクタＳＥＣは、図９を参照して説明した７行−８行−７行パターンを用いた場合を想定している。
【０１０４】
この図１１に示すように、この例では、８行のブロックを含む位置に８行を越えるバーストエラーが発生し、このバーストエラーの発生位置から夫々離れた２箇所の７行のブロックの位置に夫々バーストエラーが発生した場合、即ち、離れた位置に３箇所のバーストエラーが発生した場合を示している。
【０１０５】
このように、離れた位置に３箇所のバーストエラーが発生した場合には、上記第２のＥＣＣとしてのパリティＰ１〜Ｐ４０によってエラー検出を行い、そのエラー検出の結果得られたエラーフラグの数が“３”で、しかも、そのエラーフラグが連続していることを検出した場合に、離れた位置に３箇所のバーストエラーが発生したものとして、何れかのブロックのデータを消失と見なして消失訂正を行い、これ以外のブロックについて検出訂正を行うようにする。
【０１０６】
例えば、この例では、バーストエラーの発生した８行のブロックのデータを消失と見なして８消失訂正を施し、他のバーストエラーの発生した２つの７行のブロックのデータについて４検出訂正を施すようにする。
【０１０７】
尚、バーストエラーの発生したブロックは連続した３ブロックでなくとも良く、２ブロックが連続し、残りの１ブロックが単独であっても良い。
【０１０８】
図１２〜図１５は、再生時における動作を説明するためのフローチャートである。図１２〜図１５に示すフローチャートを用いて再生時における動作を説明するにあたり、図１〜図３をも参照して説明する。また、この図１２に示すサブルーチンＳＵＢ１〜ＳＵＢ３は、作図の便宜上のものであり、実際のプログラムの作成上でサブルーチン化するものではない。
【０１０９】
ステップＳ１ではコマンドが有るか否かを判断する。即ち、ホストコンピュータ３からコントローラ２に対してセクタ番号及びセクタ長データ等からなるコマンドが入出力端子ｉｏ１、インターフェース回路７１及び入出力ポート６４を介して供給されたか否かを判断する。そして「ＹＥＳ」であればステップＳ２に移行する。
【０１１０】
ステップＳ２では要求範囲のセクタを、順にリードする。但し、１回、このステップＳ２で示す処理を行う毎に、１セクタ分ずつリードする。即ち、コントローラ４４のＣＰＵ６０は、出力端子７３を介して読み出し／書き込み回路３８にリクエスト信号を供給する。これによって、上述したように、光ディスク４から当該セクタのデータがホストコンピュータ３から指示されたセクタ長となるまで順次読み出される。光ディスク４から読み出されたデータは読み出し／書き込み回路３８及び入力端子６５を介してスイッチ６６に供給される。ＣＰＵ６０はスイッチ６６及びスイッチ６９にスイッチング制御信号を供給してスイッチ６６及び６９の各可動接点ｃを各固定接点ａに接続させる。これによって、スイッチ６６に供給された再生データは、このスイッチ６６を介してデコーダ６７に供給される。そしてステップＳ３に移行する。
【０１１１】
ステップＳ３ではＬＤＣ検出訂正を行う。即ち、デコーダ６７において上述したパリティ（Ｅ１、１）〜（Ｅ１６、１６）を用いて検出訂正を施すよう指示する。これによって、デコーダ６７においてデータＤ０〜Ｄ２０４７に対する検出訂正が行われる。そしてステップＳ４に移行する。
【０１１２】
ステップＳ４では訂正ＯＫか否か、即ち、エラー訂正ができたか否かを判断し、「ＹＥＳ」であればステップＳ５に移行し、「ＮＯ」であればステップＳ６に移行する。
【０１１３】
ステップＳ５ではＣＲＣのチェックがＯＫか否かを判断する。即ち、ＣＲＣのチェックによりエラーがあるか否かを判断し、「ＹＥＳ」であればステップＳ６に移行し、「ＮＯ」であればステップＳ９に移行する。
【０１１４】
ステップＳ６ではコマンド分終了か否かを判断する。即ち、ステップＳ１において入力されたコマンドにより要求された全セクタのリードが終了したか否かを判断し、「ＹＥＳ」であれば終了し、「ＮＯ」であれば再びステップＳ２に移行する。
【０１１５】
ステップＳ７では第２のＥＣＣによるエラー検出及びフラグの付加を行う。即ち、デコーダ６７において上述したパリティＰ１〜Ｐ４０を用いてエラー検出を施すよう指示する。これによって、デコーダ６７においてデータＤ０〜Ｄ２０４７に対し、ブロック毎にエラー検出処理及びエラーフラグの生成処理が施される。
【０１１６】
具体的には、ブロック毎にエラー検出処理を施し、エラーがある場合には、そのブロックを消失とみなし、そのブロックが消失であることを示すフラグを付加する。例えばｉ＝１３０〜１２４でなるブロックに対してＰ１及びＰ２を用いてエラーの有無を検出する。そして、エラーがある場合には、そのブロックにバーストエラーがあることを示すエラーフラグを付加する。この処理を全ブロックに対して行う。そして、ステップＳ８に移行する。
【０１１７】
ステップＳ８ではエラーフラグ数≧４または０か否かを判断し、「ＹＥＳ」であればステップＳ９に移行し、「ＮＯ」であればステップＳ１１に移行する。本例においては、１つのセクタ内で４箇所以上のブロックにバーストエラーが発生した場合にはエラー訂正不能となるので、このステップＳ８ではエラーフラグの数が“４”以上かを判断する。尚、“０”のときにエラーとするのは、パリティ（Ｅ１、１）〜（Ｅ１６、１６）を用いて一旦エラーと検出されたにも関わらず、第２のＥＣＣとしてのパリティＰ１〜Ｐ４０でエラー検出を行った結果エラーフラグの数が“０”となるのは、何れかが誤検出であるからである。
【０１１８】
ステップＳ９ではエラーメッセージを表示する。そしてステップＳ１０に移行する。このステップＳ９では、ＣＰＵ６０がＲＯＭ６２に記憶されているメッセージデータをホストコンピュータ３に供給することにより、ホストコンピュータ３のディスプレイ上にメッセージ画像として表示する。このメッセージ画像としては、例えば次のようなメッセージが考えられる。
「エラーが発生しましたのでセクタの再リードを行っています」
【０１１９】
ステップＳ１０では、このセクタの再リードをセットする。そして再びステップＳ６に移行する。このステップＳ１０では、コントローラ４４のＣＰＵ６０は、出力端子７３を介して読み出し／書き込み回路３８にセクタの再リードを示すリクエスト信号を供給する。これによって、上述したように、光ディスク４から当該セクタのデータが再度読み出される。
【０１２０】
ステップＳ１１ではエラーフラグ数が３か否かを判断し、「ＹＥＳ」であればステップＳ１２に移行し、「ＮＯ」であればステップ１００としてのサブルーチンＳＵＢ２に移行する。このステップＳ１１における判断基準である“３”は、１セクタにおいてバーストエラーとされるブロックの数であり、エラー訂正可能な最大値である。
【０１２１】
ステップＳ１２では３連続エラーフラグか否かを判断する。即ち、３つのエラーフラグの付加されたブロックが３つの連続したブロックであるか否かを判断し、「ＹＥＳ」であればステップＳ５０としてのサブルーチンＳＵＢ１に移行し、「ＮＯ」であればステップＳ１５０としてのサブルーチンＳＵＢ３に移行する。ここで３連続エラーフラグか否かを判断するのは、バーストエラーの発生した３ブロックが連続しているか、離れているかを判断し、夫々の場合について最も適した処理を施すためである。
【０１２２】
図１３はサブルーチンＳＵＢ１及びＳＵＢ２を夫々示している。先ず、サブルーチンＳＵＢ１から説明する。
【０１２３】
図１２に示したステップＳ１２において「ＹＥＳ」と判断した場合はサブルーチンＳＵＢ１のステップＳ５１に移行する。そして、このステップＳ５１では中央のブロックと前後のブロックの内の夫々中央のブロック側の１行分を消失と見なしてＬＤＣ、即ち、ｉ＝−１３〜−１６で示される第１のＥＣＣにより、エラー消失訂正とエラー検出訂正を行う。そしてステップＳ５２に移行する。このステップＳ５１では、上述した例の内、中央のブロックとこの中央のブロックの上下１行を消失と見なして消失訂正を行い、残りのディスタンスを用いて検出訂正を行う。中央のブロックが７行の場合は、この７行とこの７行の上下１行の合計９行に対して９バイトの消失訂正を行い、残りのディスタンスを用いて検出訂正を行う。この場合は３バイトまで検出訂正可能である。また、中央のブロックが８行の場合は、この８行のブロックと、この８行のブロックの上下１行の合計１０行に対して１０バイトの消失訂正を行い、残りのディスタンスを用いて３バイトまでの検出訂正を行う。
【０１２４】
ステップＳ５２では訂正ＯＫか否かを判断する。即ち、エラー訂正ができたか否かを判断し、「ＹＥＳ」であれば再び図１２に示したフローチャートのステップＳ５に移行し、「ＮＯ」であればステップＳ５３に移行する。
【０１２５】
ステップＳ５３ではエラーメッセージを表示する。そしてステップＳ５４に移行する。このステップＳ５３では、ＣＰＵ６０がＲＯＭ６２に記憶されているメッセージデータをホストコンピュータ３に供給することにより、ホストコンピュータ３のディスプレイ上にメッセージ画像として表示する。このメッセージ画像としては、例えば次のようなメッセージが考えられる。
「訂正不能のバーストエラーが発生しましたのでセクタの再リードを行っています」
【０１２６】
ステップＳ５４では、このセクタの再リードをセットする。そして再び図１２に示したフローチャートのステップＳ６に移行する。このステップＳ５４では、コントローラ４４のＣＰＵ６０は、出力端子７３を介して読み出し／書き込み回路３８にこのセクタの再リードを示すリクエスト信号を供給する。これによって、上述したように、光ディスク４から当該セクタのデータが再度読み出される。
【０１２７】
次に、サブルーチンＳＵＢ２について説明する。
【０１２８】
図１２に示したステップＳ１１において「ＮＯ」と判断した場合はサブルーチンＳＵＢ２のステップＳ１０１に移行する。そして、このステップＳ１０１ではＬＤＣによるエラー消失訂正及びエラー検出訂正を行う。そしてステップＳ１０２に移行する。このステップＳ１０１は、エラーフラグ数が“２”か“１”の場合、即ち、バーストエラーが２つのブロックに跨って発生した場合、バーストエラーが離れた２つのブロックに夫々発生した場合、バーストエラーが１つのブロックに発生した場合の何れかの場合において処理を行うステップである。従って、このステップＳ１０１では、１ブロック或いは２ブロックのデータが消失したものと見なして消失訂正処理を施し、残りの距離で２ブロックの場合はエラー検出（チェック）を、１ブロック消失の場合はエラー検出訂正を行う。
【０１２９】
ステップＳ１０２では訂正ＯＫか否かを判断する。即ち、エラーが訂正できたか否かを判断し、「ＹＥＳ」であればこのサブルーチンＳＵＢ２を抜けて図１０に示したフローチャートのステップＳ５に移行し、「ＮＯ」であればステップＳ１０３に移行する。
【０１３０】
ステップＳ１０３ではエラーメッセージを表示する。そしてステップＳ１０４に移行する。このステップＳ１０３では、ＣＰＵ６０がＲＯＭ６２に記憶されているメッセージデータをホストコンピュータ３に供給することにより、ホストコンピュータ３のディスプレイ上にメッセージ画像として表示する。このメッセージ画像としては、例えば次のようなメッセージが考えられる。
「訂正可能なバーストエラーを訂正しましたが、エラーチェックでエラーが生じましたのでセクタの再リードを行っています」
【０１３１】
ステップＳ１０４では、このセクタの再リードをセットする。そして再び図１２に示したフローチャートのステップＳ６に移行する。このステップＳ１０４では、コントローラ４４のＣＰＵ６０は、出力端子７３を介して読み出し／書き込み回路３８にセクタの再リードを示すリクエスト信号を供給する。これによって、上述したように、光ディスク４から当該セクタのデータが再度読み出される。
【０１３２】
図１４及び図１５は図１２に示したサブルーチンＳＵＢ３を示している。
【０１３３】
図１２に示したフローチャートのステップＳ１２において３連続エラーフラグではないと判断した場合は、この図１４に示すサブルーチンＳＵＢ３のステップＳ１５１に移行する。図１４及び図１５に示すフローチャートでは、３つのブロックにバーストエラーが発生しており、且つ、少なくとも１つのブロックが他の２つのブロックに対して離れた位置にある場合である。ここで、８バイトを消失と見なした場合、残りのディスタンスで４バイトまでエラー検出訂正することができる。
【０１３４】
ステップＳ１５１では、先頭のブロック、即ち、図１３における一番上のブロックを消失と見なして消失訂正をし、２番目、３番目のブロックに対して、検出訂正を行う。尚、２番目及び３番目のブロックに対しては、４バイトまでのエラーに対して検出訂正を行うことができる。
【０１３５】
ステップＳ１５２では、訂正ＯＫか否かを判断し、「ＹＥＳ」であれば図１２に示したフローチャートのステップＳ５に移行し、「ＮＯ」であればステップＳ５１４に移行する。
【０１３６】
ステップＳ１５３では、２番目のブロック、即ち、図１３における真ん中のブロックを消失と見なして消失訂正をし、１番目、３番目のブロックに対して、検出訂正をする。尚、１番目及び３番目のブロックに対しては、４バイトまでのエラーに対して検出訂正することができる。
【０１３７】
ステップＳ１５４では、訂正ＯＫか否かを判断し、「ＹＥＳ」であれば図１２に示したフローチャートのステップＳ５に移行し、「ＮＯ」であればステップＳ１５４に移行する。
【０１３８】
ステップＳ１５５では、３番目のブロック、即ち、図１３における一番下のブロックを消失と見なして消失訂正をし、１番目、２番目のブロックに対して、検出訂正をする。尚、１番目及び２番目のブロックに対しては、４バイトまでのエラーに対して検出訂正することができる。
【０１３９】
ステップＳ１５６では訂正ＯＫか否かを判断し、「ＹＥＳ」であれば図１２に示したフローチャートのステップＳ５に移行し、「ＮＯ」であれば図１５に示すフローチャートのステップＳ１６０に移行する。
【０１４０】
ステップＳ１６０では２つ連続か否かを判断する。即ち、３つのブロックの内の２つが連続したブロックか否かを判断し、「ＹＥＳ」であればステップＳ１６１に移行し、「ＮＯ」であればステップＳ１６６に移行する。
【０１４１】
ステップＳ１６１では、２ブロックに跨る１ブロック分のデータを消失と見なして残りのデータに検出訂正をする。尚、消失と見なしていないこの２ブロック内のデータに対しては、４バイトまでのエラーに対して検出訂正をすることができる。そして、ステップＳ１６２に移行する。
【０１４２】
ステップＳ１６２では、エラーの検出ができたか否かを判断し、「ＹＥＳ」であればステップＳ１６３に移行し、「ＮＯ」であればステップＳ１６４に戻る。
【０１４３】
ステップＳ１６３では、エラーの訂正を行う。そして、ステップＳ１６５に移行する。
【０１４４】
ステップＳ１６４では、消失と見なす１ブロック分のデータの位置を、１行分ずらす。そして、ステップＳ１６１に移行する。ここで、１行分ずらすのは、消失と見なすブロックの位置をずらすことによりエラー訂正ができる場合があるからである。
【０１４５】
ステップＳ１６５では、エラー訂正がＯＫであったか否かを判断し、「ＹＥＳ」であれば図１０に示したフローチャートのステップＳ６に移行し、「ＮＯ」であればステップＳ１６６に移行する。
【０１４６】
ステップＳ１６６ではエラーメッセージを表示する。そしてステップＳ１６７に移行する。このステップＳ１６６では、ＣＰＵ６０がＲＯＭ６２に記憶されているメッセージデータをホストコンピュータ３に供給することにより、ホストコンピュータ３のディスプレイ上にメッセージ画像として表示する。このメッセージ画像としては、例えば次のようなメッセージが考えられる。
「訂正可能なバーストエラーを訂正しましたが、訂正結果がエラーとなりましたのでセクタの再リードを行っています」
【０１４７】
ステップＳ１６７ではそのセクタの再リードをセットする。そしてステップＳ５に移行する。このステップＳ１６７では、コントローラ４４のＣＰＵ６０は、出力端子７３を介して読み出し／書き込み回路３８にセクタの再リードを示すリクエスト信号を供給する。これによって、上述したように、光ディスク４から当該セクタのデータが再度読み出される。
【０１４８】
〔変形例〕
尚、上記処理において、セクタの再リードはステップＳ１０だけ行い、他のステップにおいてエラーとなった場合にはセクタの再リードを行わずに終了するようにしても良い。例えばステップＳ５４、ステップＳ１０４、ステップＳ１６７においてセクタの再リードを行った場合にエラーを回復できない場合においては、光ディスクドライブの故障や相当なバーストエラーが発生した場合も有り得るので、処理がループしてしまい、光ディスク４を取り出すことができなくなる可能性があるからである。また、セクタの再リードを３回行ってもエラーとなる場合に光ディスクドライブからホストコンピュータ３に「回復不能の大きなバーストエラーが生じたか光ディスクドライブが故障した可能性がありますので強制的に光ディスクを排出します」等のメッセージを供給した後、強制的に光ディスク４を排出するようにしても良い。
【０１４９】
このように本例においては、今まで訂正不可能だったバーストエラーが発生した場合でもデータを回復することができる。
【０１５０】
［他の実施の形態］
【０１５１】
図１６は上記第１の実施の形態において用いた第２ＥＣＣとしてのパリティの代わりにＲＦレベルの検出によってバーストエラーの長さと位置を検出する場合に必要となるレベル検出回路の内部構成例を示す構成図である。
【０１５２】
図２に破線で示したレベル検出回路２００の内部構成例としてはこの図１６に示すような構成が考えられる。
【０１５３】
図において、２０１は図２に示したセレクタ／クランプ回路３３からのクランプ処理が施される前のＲＦ信号が供給される入力端子、２０２はデータ系クロック生成回路３５からのデータクロックが供給される入力端子である。２０３は平均化回路で、入力端子２０１を介して供給されるＲＦ信号を入力端子２０２を介して供給されるデータクロックのタイミングに合わせて平滑化して直流電圧信号を得る。この平均化回路２０３からの直流電圧信号はコンパレータ２０４に供給され、このコンパレータ２０４の基準電源２０５からの基準電圧と比較される。この基準電源からの基準電圧は、例えばサンプルサーボ方式の場合ではデータ２０バイト程度に１バイトずつ形成されるウォブルピットが欠落することによって生じるトラッキングずれによって生じるＲＦレベルの低下時の代表レベルを予め得ておくことが容易なので、そのレベルより高く、トラッキングエラーがない状態でのＲＦレベルよりも小さいレベルとする。
【０１５４】
このコンパレータ２０４は基準電源２０５からの基準電圧よりも平均化回路２０３からの直流電圧信号が小さいときにエラーを示す信号“１”を出力する。この出力は遅延回路２０６に供給される。この遅延回路２０６においては、コンパレータ２０４からの出力を本線信号の処理時間分だけ遅延し、再生データのエラー検出を行うときにその検出系に供給できるようにする。
【０１５５】
図１７は、第２のＥＣＣの代わりにＲＦレベルを検出することによりバーストエラーを検出する場合に用いるコントローラの構成例を示す構成図である。この第２の実施の形態においては、図３に示したコントローラ４４の内部構成が異なることと、図２に示したドライブコントローラ２にレベル検出回路２００が追加されること以外は同じ構成となるので、コントローラの内部構成例のみ示す。この図１７において図３と対応する部分には同一符号を付し、その詳細説明を省略する。
【０１５６】
図１７において、６５は図２に示した読み出し／書き込み回路３８に接続される入出力端子であり、この入出力端子６５はスイッチ６６の可動接点６６ｃに接続される。このスイッチ６６の一方の固定接点ａはデコーダ３００の入力端子に接続され、スイッチ６６の他方の固定接点ｂはエンコーダ３０１の出力端子に接続される。
【０１５７】
また、デコーダ３００のデータ用の出力端子はスイッチ６９の一方の固定接点ａに接続され、エンコーダ３０１の入力端子はスイッチ６９の他方の固定接点ｂに接続され、このスイッチ６９の可動接点ｃはバッファ７０の入出力端子に接続される。また、バッファ７０の入出力端子はインターフェース回路７１の入出力端子に接続され、このインターフェース回路７１の入出力端子は入出力端子ｉｏ１を介して図１に示したホストコンピュータ３の入出力端子に接続される。
【０１５８】
ここで、デコーダ３００は、スイッチ６６を介して供給される再生データに対し、エラー検出及びエラー訂正処理を施し、更に、ＣＰＵ６０から入出力ポートを介して要求があった場合には、後述するバースト検出回路３０２からの検出結果に基いてエラー訂正処理を行う。図１７に示すように、このデコーダ３００は、例えば２セクタ分の容量のＲＡＭ３００ａと、このＲＡＭ３００ａに書き込まれた再生データを制御することによりＬＤＣによるエラー訂正処理、ＣＲＣによるエラーチェック、これらの訂正やチェックが不能となるバーストエラー発生時にバースト検出回路３０２からの検出結果に基いてＬＤＣのパリティでエラー訂正を行うＲＡＭコントローラ３００ｂで構成する。
【０１５９】
エンコーダ３０１は、図１７に示すように、２セクタ分の記憶容量を有するＲＡＭ３０１ａと、このＲＡＭ３０１ａに書き込んだ入力データを制御することにより、第１ＥＣＣとしてのパリティの生成、ＣＲＣのパリティの生成、これらのパリティの付加を行う。
【０１６０】
エンコーダ３０１は、ホストコンピュータ３から転送され、インターフェース回路７１を介してバッファ７０に一旦書き込まれ、更にこのバッファ７０から読み出された後にスイッチ６９を介して供給される記録すべきデータに対し、エラー検出用のパリティやエラー訂正のためのＣＲＣとしてのパリティと第１ＥＣＣとしてのパリティを夫々付加する
【０１６１】
尚、図１に示した光ディスクドライブにおいて上記チェック用のパリティやエラー訂正用のパリティを記録することができるのは、光磁気ディスク、ライトワンスディスク及びパーシャルディスクの書き込み可能領域であるから、エンコーダ側とデコーダ側の両方が関与するが、再生専用やパーシャルディスクの読み出し専用領域の場合には、上記パリティ等やデータがディスクの製造時に記録されることになるので、エンコーダ側は関与せず、デコーダ側だけが関与することとなる。
【０１６２】
バースト検出回路３０２は、入力端子３０３を介して図１６に示したレベル検出回路２００からの検出結果によってバーストエラー発生時にバーストエラーの大きさとその位置を検出し、その検出結果を入出力ポート６４を介してデコーダ３００に供給する。
【０１６３】
尚、以下、再生時の主要動作についてのみ説明する。光ディスク４に記録されているデータを再生する場合においては、ＣＰＵ６０は入出力ポート６４を介してスイッチ６６及び６９に夫々スイッチング制御信号を供給し、スイッチ６６及び６９の各可動接点ｃを固定接点ａに接続させる。これによって、光ディスク４から読み出され、読み出し／書き込み回路３８、入出力端子６５及びスイッチ６６を介して供給される再生データは、デコーダ３００に供給され、このデコーダ３００においてエラー検出、エラー訂正処理が施された後にスイッチ６９、バッファ７０、インターフェース回路７１及び入出力端子ｉｏ１を介して図１に示したホストコンピュータ３に再生データとして供給される。
【０１６４】
このとき、デコーダ６７は、ＲＡＭ６７ａに記憶された２セクタ分のデータの内、一方のセクタのデータに対して第１ＥＣＣとしてのパリティによるエラー訂正、ＣＲＣのパリティによるエラーチェック、更にバーストが発生してエラー訂正及びチェックが不能となった場合にはバースト検出回路３０２からの検出結果によってバーストエラーの大きさとその位置を認識し、更にこの後、再び第１ＥＣＣとしてのパリティによるエラー訂正、ＣＲＣのパリティによるエラーチェックを行ってそのセクタのデータを得、これらの再生処理が終了した時点で、そのセクタのデータを出力すると共に、その旨を示す信号を入出力ポート６４及びバス６１を介してＣＰＵ６０に供給する。これにより、ＣＰＵ６０は図２に示した読み出し／書き込み回路３８に対して次のセクタの再生を行うよう指示し、これによって、上記セクタの全データはバッファ７０に供給され、この後、光ディスク４から読み出された次のセクタの再生データがＲＡＭ６７ａに供給される。
【０１６５】
図１８は第２ＥＣＣの代わりにＲＦレベルを検出することによりバーストエラーを検出する場合の再生時の動作を説明するためのフローチャートである。尚、この図１８は第１の実施の形態の図１２に対応するものであり、第１の実施の形態の図１３〜図１５については同じ処理となるので、これらの図に対応する図の添付は省略する。また、この図１８において、図１２と対応する部分には同一符号を付し、その詳細説明を省略する。
【０１６６】
ステップＳ４において訂正不能となった場合にはステップＳ２００に移行し、このステップＳ２００ではＲＦのレベル検出結果からバーストエラーの長さと位置を求める。そしてステップＳ２０１に移行する。このステップＳ２００では、図１７に示したバースト検出回路３０２が図１６に示したレベル検出回路２００からの検出結果に基いて１セクタ中のバーストエラーの数、長さ、位置を求める。
【０１６７】
ステップＳ２０１では訂正不能か否かを判断し、「ＹＥＳ」であればステップＳ８に移行し、「ＮＯ」であればステップＳ２０２に移行する。このステップＳ２０１では１セクタ中のバーストエラーの数が４以上の場合を訂正不能として判断する。
【０１６８】
ステップＳ２０２では個数は３か否かを判断し、「ＹＥＳ」であればステップＳ２０３に移行し、「ＮＯ」であればステップＳ１００としてのサブルーチンＳ１００に移行する。このステップＳ２０２ではバーストエラーの個数が“３”か否かを判断する。この“３”とは第１の実施の形態におけるエラーフラグの数“３”と実質的に同一である。
【０１６９】
ステップＳ２０３では３つ連続か否かを判断し、「ＹＥＳ」であればステップＳ１５０としてのサブルーチンＳＵＢ３に移行し、「ＮＯ」であればステップＳ５０としてのサブルーチンＳＵＢ１に移行する。このステップＳ２０３ではバーストエラーが“３”つ連続しているか否かを判断する。
【０１７０】
以下の各サブルーチンＳＵＢ１、ＳＵＢ２及びＳＵＢ３における処理は第１の実施の形態と同一となる。そして第２ＥＣＣを使用しないことによってエラー訂正の処理速度を向上させることができる。また、この第２の実施の形態において、第２ＥＣＣとしてのパリティＰ１〜Ｐ４０を第１の実施の形態の場合と同様に記録し、再生時に使用する場合は、ＬＤＣによる検出訂正８バイトを最大１６バイトまで高めることができるといった大きな効果をも得ることができる。
【０１７１】
【発明の効果】
本発明によれば、第１のエラー処理用のデータの符号間最小距離では訂正不能となる連続する大きなエラーであっても復元することができ、これによって、簡単な処理で本来訂正不能であったバーストエラーが発生してもデータを復元でき、よりエラー訂正能力を向上させ、確実にデータの再生を行うことができる。
【０１７２】
更に本発明によれば、複数単位に跨るエラーが発生した場合におけるエラー訂正能力を向上させることができる。
【０１７３】
更に本発明によれば、上記エラー発生の状態が、複数ブロックに跨るエラーの場合においては、上記エラーの跨る複数のブロックの内の略中央の少なくとも１つのブロックのデータ、並びに上記消失と見なした少なくとも１つのブロックに隣接するブロックのデータが消失したものと見なして上記第１のエラー処理用のデータにより誤り訂正処理を施すようにしたので、複数ブロックに跨るエラーが発生した場合におけるエラー訂正能力をより向上させることができ、効率良くエラーを訂正を行って良好に再生が行え、しかも記録媒体の記録容量を低下させないようにすることができる。
【０１７４】
【図面の簡単な説明】
【図１】本発明の光ディスクドライブの一例を示す構成図である。
【図２】図１に示したドライブコントローラを示す構成図である。
【図３】図１に示した光ディスクドライブのコントローラを示す構成図である。
【図４】本発明の光ディスクのフォーマットの一例を示す説明図である。
【図５】図４に示した光ディスクの各領域の大きさと各領域に用いられるデータクロックの周波数の一例を示す説明図である。
【図６】本発明の光ディスクのセクタフォーマットの一例を示す説明図である。
【図７】本発明の光ディスクのセクタフォーマットの一例を示す説明図である。
【図８】本発明の光ディスクのセクタフォーマットの一例を示す説明図である。
【図９】本発明の光ディスクの７行−８行−７行パターンによる第２のＥＣＣとしてのパリティの付加を説明するための図である。
【図１０】セクタ内に１つのバーストエラーが発生した場合の対処方法を説明するための図である。
【図１１】セクタ内に複数のバーストエラーが発生した場合の対処方法を説明するための図である。
【図１２】本発明の光ディスクドライブの再生時のデータの処理動作を説明するためのフローチャートである。
【図１３】本発明の光ディスクドライブの再生時のデータの処理動作を説明するためのフローチャートである。
【図１４】本発明の光ディスクドライブの再生時のデータの処理動作を説明するためのフローチャートである。
【図１５】本発明の光ディスクドライブの再生時のデータの処理動作を説明するためのフローチャートである。
【図１６】本発明の他の実施の形態のレベル検出回路の構成を示す構成図である。
【図１７】本発明の他の実施の形態のコントローラの内部構成を示す図である。
【図１８】本発明の他の実施の形態の動作を説明するためのフローチャートである。
【符号の説明】
４  光ディスク
６０  ＣＰＵ
６１  バス
６２  ＲＯＭ
６３  ＲＡＭ
６４  入出力ポート
６７、３００  デコーダ
６８、３０１  エンコーダ
２００  レベル検出回路
３０２  バースト検出回路
【図１】
0003671470.tif 000002
【図２】
0003671470.tif 000003
【図３】
0003671470.tif 000004
【図４】
0003671470.tif 000005
【図５】
0003671470.tif 000006
【図６】
0003671470.tif 000007
【図７】
0003671470.tif 000008
【図８】
0003671470.tif 000009
【図９】
0003671470.tif 000010
【図１０】
0003671470.tif 000011
【図１１】
0003671470.tif 000012
【図１２】
0003671470.tif 000013
【図１３】
0003671470.tif 000014
【図１４】
0003671470.tif 000015
【図１５】
0003671470.tif 000016
【図１６】
0003671470.tif 000017
【図１７】
0003671470.tif 000018
【図１８】
0003671470.tif 000019