(57)【特許請求の範囲】
【請求項１】
所定データ量で構成されるデータブロックが連続してなる伝送データの誤り検出訂正を行うデータ処理装置において、
上記データブロックは、データを行列に並べたときのデータ列毎に生成された第１の誤り検出訂正用パリティと、１つ前のデータブロックの所定量単位のデータ行毎に生成された第２の誤り検出訂正用パリティで構成され、
上記データブロックを保持する複数のワークエリアと、
上記第１の誤り検出訂正用パリティと上記第２の誤り検出訂正用パリティによってデータの誤り検出訂正を行う誤り検出訂正処理部と、
上記データブロックが保持された複数のワークエリアから１つのワークエリアを選択し、このワークエリアに保持されたデータブロックを上記誤り検出訂正処理部に供給するデータ選択部を有し、
上記データブロックを順次上記複数のワークエリアに保持すると共に、上記データ選択部で上記複数のワークエリアから順次データブロックを選択して上記誤り検出訂正処理部に供給し、上記第１の誤り検出訂正用パリティを用いて誤り検出訂正を行い、
誤り訂正が不能であるときには、次のデータブロックが保持された上記ワークエリアから上記第２の誤り検出訂正用パリティを上記誤り検出訂正処理部に供給し、上記第２の誤り検出訂正用パリティを用いた誤り検出結果を利用して上記第１の誤り検出訂正用パリティを用いて誤り検出訂正を行うことを特徴とするデータ処理装置。
【請求項２】
次のデータブロックが保持された上記ワークエリアから上記第２の誤り検出訂正用パリティを上記誤り検出訂正処理部に供給し、上記第２の誤り検出訂正用パリティを用いた誤り検出結果を利用して上記第１の誤り検出訂正用パリティを用いて誤り検出訂正を行う際には、
上記第２の誤り検出訂正用パリティを用いた誤り検出結果を利用し、上記第１の誤り検出訂正用パリティを用いて１つのデータ列の誤り訂正を行い、
誤り訂正が可能とされたときには、この誤り検出結果を利用し、上記第１の誤り検出訂正用パリティを用いて次のデータ列の誤り訂正を行うことを特徴とする請求項１記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデータ処理装置に関する。詳しくは、所定データ量で構成されるデータブロックが連続してなる伝送データの誤り検出訂正を行う際に、このデータブロックは、データを行列に並べたときのデータ列毎に生成された第１の誤り検出訂正用パリティと、１つ前のデータブロックの所定量単位のデータ行毎に生成された第２の誤り検出訂正用パリティで構成されており、このデータブロックを順次複数のワークエリアに保持すると共に、データ選択部で複数のワークエリアから順次データブロックを選択して誤り検出訂正処理部に供給して誤り検出訂正を行い、誤り検出訂正処理部で誤り訂正が不能であるときには、次のデータブロックが保持されたワークエリアから第２の誤り検出訂正用パリティを誤り検出訂正処理部に供給し、第２の誤り検出訂正用パリティを用いた誤り検出結果を利用して第１の誤り検出訂正用パリティを用いて誤り検出訂正を行うものである。
【０００２】
【従来の技術】
従来、データの記録媒体として、例えば再生専用形や追記形あるいは書換可能形の光ディスクが提案されている。
【０００３】
これらの光ディスクには、データと共にデータの誤り訂正用のパリティや誤り検出用のＣＲＣ等のパリティが記録されており、再生時には再生されたデータに対して、これらのパリティにより、誤り検出や誤り訂正処理が施される。
【０００４】
このパリティとしては、リードソロモン符号を構成するためのパリティが知られている。リードソロモン符号は、通常、１シンボルを８ビット、データをｋシンボルとしたとき、このｋシンボルのデータにパリティが付加されて合計ｎシンボルの符号とされるものである。このとき、この誤り訂正用の符号の訂正能力を表す言葉としては、最小距離という言葉がある。
【０００５】
例えば１シンボルが１ビットの場合においては、上記ｎシンボルは、ｎビットで表されるので、ｎシンボルがとり得る２進数のデータ列は２n通りあることになる。一方、パリティを除くデータは２k通りだけ必要となるので、上記２n通りのデータ列から２k通りのデータ列を取り出し、任意の取り出した２つのデータ列の間でｄビットの異なるビットがあったとき、このｄについて距離という。そして、上記２k通りのデータ列について全て同様に距離を求めたときの最小値を最小距離と称している。以下の説明では、この「最小距離」をディスタンスと呼ぶこととする。
【０００６】
そして、一般にｔ１個の誤り訂正をするための符号のディスタンスｄは、次に示す（式１）を満たさなければならない。
【０００７】
ｄ≧２ｔ１＋１・・・（式１）
例えばディスタンスｄが１７の場合は、ｔ１は８となる。つまり、８シンボルまでしか訂正ができないのである。
【０００８】
また、上記符号は、訂正を行う能力の他、誤りが生じたことを検出する能力も備えている。この誤りが生じたことを検出する能力により誤りを検出できる誤り検出個数をｔ２とすると、この誤り検出個数ｔ２は、次に示す（式２）で表すことができる。
【０００９】
ｔ２＝ｄ−（２ｔ１＋１）（但しｔ２≧０）・・・（式２）
例えばディスタンスｄが１７の場合の誤り訂正個数ｔ１と、誤り検出個数ｔ２は次に示すようになる。
【００１０】
０シンボル訂正・・・ｔ１＝０，ｔ２＝１６
１シンボル訂正・・・ｔ１＝１，ｔ２＝１４
２シンボル訂正・・・ｔ１＝２，ｔ２＝１２
３シンボル訂正・・・ｔ１＝３，ｔ２＝１０
４シンボル訂正・・・ｔ１＝４，ｔ２＝８
５シンボル訂正・・・ｔ１＝５，ｔ２＝６
６シンボル訂正・・・ｔ１＝６，ｔ２＝４
７シンボル訂正・・・ｔ１＝７，ｔ２＝２
８シンボル訂正・・・ｔ１＝８，ｔ２＝０
このように、８シンボル訂正では誤り検出個数は“０”であるので、もしも９シンボル以上の誤りが発生した場合には、誤りを正しく判別できなくなる場合が生じるのである。従って、ディスタンスｄを大きな値にすれば、それだけ訂正できる個数を増やし、しかも誤り検出能力を維持することができる。以上のようにして構成されたリードソロモン符号を、ディスタンスｄが比較的大きいという意味で、（ｎ，ｋ，ｄ）のＬＤＣ（ロング・ディスタンス・コード）と称している。
【００１１】
このように、リードソロモン符号を構成した後に記録を行うことで、再生時にランダム誤りやディスタンスｄの値、誤り訂正個数ｔ１、誤り検出個数ｔ２に応じた長さのバーストエラーを訂正することができるようにしている。
【００１２】
【発明が解決しようとする課題】
ところで、上述したように、例えばディスタンスｄが１７の場合には、誤り訂正可能な個数は最大で８個である。従って、セクタｎから読み出したデータに９個以上連続して誤りとなるバーストエラーが発生した場合には、誤り訂正ができなくなり、次のセクタｎ＋１のデータの処理が中止されてしまう。
【００１３】
このため、再生時にバーストエラーの如き大きな誤りが発生した場合には、予め記録されている誤り訂正用の符号のみで対処するためには、ディスタンスｄを大きな値にするか、或いはパリティセクタを用いて誤り訂正を行う方法を採用するしかない。しかしながら、ディスタンスｄを大きな値にすればそれだけ符号の冗長度が増加して処理時間が長くなると共に、冗長度が増加した分だけ本来のデータを記録するための容量が減ってしまうという問題が生じる。また、パリティセクタを使用して誤り訂正を行う方法を採用した場合には、バーストエラーが発生したとき、当該エリア（１周またはＮ周分のセクタからなるエリア）に記録されている場合を再度読み込み、この再度読み込んだデータと、上記パリティセクタに記録されているパリティとしてのデータを用いて誤り訂正を行わなければならず、バーストエラーの処理に費やされる時間が長くなるという問題が生じる。
【００１４】
そこで、この発明では、バーストエラーが発生した場合においても、効率良く誤り検出訂正処理を行い、データの記録容量を減らすことなく良好な再生を行うことができるデータ処理装置を提供するものである。
【００１５】
【課題を解決するための手段】
この発明に係るデータ処理装置は、所定データ量で構成されるデータブロックが連続してなる伝送データの誤り検出訂正を行うデータ処理装置であって、データブロックは、データを行列に並べたときのデータ列毎に生成された第１の誤り検出訂正用パリティと、１つ前のデータブロックの所定量単位のデータ行毎に生成された第２の誤り検出訂正用パリティで構成され、データブロックを保持する複数のワークエリアと、第１の誤り検出訂正用パリティと第２の誤り検出訂正用パリティによってデータの誤り検出訂正を行う誤り検出訂正処理部と、データブロックが保持された複数のワークエリアから１つのワークエリアを選択し、このワークエリアに保持されたデータブロックを誤り検出訂正処理部に供給するデータ選択部を有し、データブロックを順次複数のワークエリアに保持すると共に、データ選択部で複数のワークエリアから順次データブロックを選択して誤り検出訂正処理部に供給し、第１の誤り検出訂正用パリティを用いて誤り検出訂正を行い、誤り訂正が不能であるときには、次のデータブロックが保持されたワークエリアから第２の誤り検出訂正用パリティを誤り検出訂正処理部に供給し、第２の誤り検出訂正用パリティを用いた誤り検出結果を利用して第１の誤り検出訂正用パリティを用いて誤り検出訂正を行うものである。
【００１６】
この発明においては、複数のワークエリアに順次データブロックが保持されると共に、保持されたデータが順次誤り検出訂正処理部に供給されて、データ列毎に生成された第１の誤り検出訂正用パリティを用いて誤り検出訂正が行われる。ここで、誤り訂正が不能であるときには、次のデータブロックが保持されたワークエリアから所定量単位のデータ行毎に生成された第２の誤り検出訂正用パリティが誤り検出訂正処理部に供給されて、この第２の誤り検出訂正用パリティを用いて誤り発生位置を検出し、この検出結果を利用して第１の誤り検出訂正用パリティを用いて誤り検出訂正が行われる。
【００１７】
【発明の実施の形態】
次に図を使用してこの発明について詳細に説明する。
【００１８】
図１は、例えば２Ｋバイトセクタのデータフォーマットを示す図である。図１において、ｉはコードワード（図においては行）を示し、ｊは夫々バイトを示し、実線の矢印は書き込み方向を示し、先頭にＤのついている符号はデータを示し、ＵＤはアンディファインド（以下、「未定義領域」という）を示し、ＣＲＣ１〜ＣＲＣ８はデータＤ１〜パリティ（Ｅ１６，１６）までの全体の誤り検出用のパリティを示している。
【００１９】
また、先頭にＥのついている符号はデータＤ１〜Ｄ２０４８、未定義領域ＵＤ及びＣＲＣ１〜８の縦方向に対するリードソロモン符号のパリティ（以下、「第１ＥＣＣ」という）である。即ち、パリティ（Ｅ１，１），（Ｅ１，２），・・・，（Ｅ１，１６）は、データＤ１，Ｄ１７，Ｄ３３，Ｄ４９，・・・Ｄ２０３３、ｉ＝２〜０且つｊ＝０の未定義領域に対するパリティである。またパリティ（Ｅ２，１），（Ｅ２，２），・・・，（Ｅ２，１６）は、データＤ２，Ｄ１８，Ｄ３４，Ｄ５０，・・・Ｄ２０３４、ｉ＝２〜０且つｊ＝１の未定義領域ＵＤに対するパリティ、・・・パリティ（Ｅ９，１），（Ｅ９，２），・・・，（Ｅ９，１６）は、データＤ９，Ｄ２５，Ｄ４１，Ｄ５７，・・・Ｄ２０４１、ｉ＝２〜１且つｊ＝８の未定義領域及びパリティＣＲＣ１に対するパリティ、・・・パリティ（Ｅ１６，１），（Ｅ１６，２），・・・（Ｅ１６，１６）は、データＤ１６，Ｄ３２，Ｄ４８，Ｄ６４、・・・Ｄ２０４８、ｉ＝２〜１且つｊ＝１５の未定義領域ＵＤ及びパリティＣＲＣ８に対するパリティである。
【００２０】
ここで、各縦方向の長さが１４７バイト、パリティを生成するためのデータの各縦方向の長さが１３１バイト、パリティの縦方向の長さが１６バイトであるからディスタンスは１７となる。従って、パリティ（Ｅ１，１）〜パリティ（Ｅ１６，１６）は、（１４７，１３１，１７）のリードソロモン符号となる。
【００２１】
各データ、未定義領域ＵＤ、パリティ全てのバイト数は、ｉが１３０〜−１６、ｊが０〜１６であるから、１６バイト×１４７＝２３５２バイトとなる。
【００２２】
図２は、図１に示したデータフォーマットの内のｉ＝２〜０、ｊ＝０〜１５のエリアを示しており、このエリアの未定義領域ＵＤには第２の誤り訂正用（以下「第２ＥＣＣ」という）のパリティが記録される。
【００２３】
図２において、先頭がＰ１の行は図１におけるｉ＝２に対応し、先頭がＰ１７の行は図１におけるｉ＝１に対応し、先頭がＰ３３の行は図１におけるｉ＝０に対応する。
【００２４】
図１を参照して説明したように、データＤ１〜Ｄ２０３３及びパリティ（Ｅ１，１）〜（Ｅ１，１６）、データＤ２〜Ｄ２０３４及びパリティ（Ｅ２，１）〜（Ｅ２，１６）、・・・上記データＤ１６〜Ｄ２０４８及び（Ｅ１６，１６）で夫々リードソロモン符号を構成した場合、ディスタンスは夫々１７であるから、上述したように、最大で８個までの誤りを訂正することができるが、９個以上連続して誤りがあった場合には誤り訂正をすることができない。
【００２５】
このため、未定義領域ＵＤには、図１に示した未定義領域ＵＤ以外のエリアに記録されるデータに対する、第２ＥＣＣのパリティＰ１〜Ｐ４０が記録される。なお、図２に示すＣＲＣ１〜ＣＲＣ８は図１のＣＲＣ１〜ＣＲＣ８と同じものである。
【００２６】
図３は、図１に示したデータやパリティに対し、どのように図２に示したパリティＰ１〜Ｐ４０が生成されるかを示した図である。
【００２７】
この図３において、「行数」とあるのは、図１に示すｉに対応し、「行数」が「８行」というのは、図１に示すｉが“８”ずつであることを示す。そして、「パリティ」は図３から明らかなように、これら「８行」のデータやパリティに対するパリティである。
【００２８】
つまり、図１に示すｉ＝１３０〜１２４までの全データについてパリティＰ１及びＰ２が生成され、ｉ＝１２３〜１１６までの全データについてパリティＰ３及びＰ４が生成され、ｉ＝１１５〜１０９までの全データについてパリティＰ５及びＰ６が生成され、・・・、ｉ＝５〜−１までの全データについてパリティＰ３５及びＰ３６が生成され、ｉ＝−２〜−８までの全データについてパリティＰ３７及びＰ３８が生成され、ｉ＝−９〜−１６までの全データに対してパリティＰ３９及びＰ４０が生成される。
【００２９】
つまり、上記パリティＰ１〜Ｐ４０の生成により、（１１４，１１２，３）のリードソロモン符号と（１３０，１２８，３）のリードソロモン符号と（１１４，１１２，３）のリードソロモン符号の組が繰り返される。
【００３０】
次に、このようにして形成されたパリティＰ１〜Ｐ４０の記録位置について図４を参照して説明する。図４において、Ｓ１〜ＳＮ＋１は夫々セクタを示し、セクタＳ１は一連のデータを記録したときの先頭セクタであり、セクタＳＮは一連のデータを記録したときの最後尾のセクタであり、セクタＳＮ＋１は一連のデータを記録したときの付加セクタである。
【００３１】
先頭にＤａがついている符号は夫々データを示し、図１に示すデータＤ１〜データＤ２０４８に対応する。先頭にＥが付いてる符号は夫々各セクタＳ１〜ＳＮ＋１の各データＤａ１〜ＤａＮ＋１のパリティである。先頭にＰがついている符号は、図２に示した第２ＥＣＣのパリティを示している。先頭にＣが付いている符号は、夫々誤り検出用のパリティを示し、図１および図２においてはパリティＣＲＣ１〜ＣＲＣ８に対応する。また、セクタＳ１は、一連のデータが記録されている場合の先頭セクタであり、このセクタＳ１の斜線で示すエリアは先頭セクタであるがゆえに、パリティが記録されていないことを示す。以下、この理由について説明する。
【００３２】
この図４に示す符号には夫々先頭の符号に続いて１〜Ｎ＋１までの値を符号に対して補助的に付加されている。この値は、夫々セクタＳ１〜ＳＮ＋１に対応している。例えば、データＤａｎ−１はセクタＳｎ−１に記録されているデータであることを示し、パリティＣｎ−１はセクタＳｎ−１に記録されているデータＤａｎ−１の検出用のパリティであることを示し、パリティＥｎ−１はセクタＳｎ−１に記録されているデータＤａｎ−１の誤り訂正用のパリティであることを示している。
【００３３】
ところで、未定義領域ＵＤのうち、図２で説明した第２ＥＣＣのパリティの符号はこのセクタＳｎ−１と異なる符号、すなわち１つ前のセクタの値“ｎ−２”が付されている。これは、前のセクタＳｎ−２のデータＤａｎ−２で生成したパリティであることを示している。他のセクタも同様であり、セクタＳｎの未定義領域ＵＤのパリティＰｎ−１はセクタＳｎ−１のデータＤａｎ−１で生成したパリティ、セクタＳｎ＋１の未定義領域ＵＤのパリティＰｎはセクタＳｎのデータＤａｎで生成したパリティ、セクタＳＮの未定義領域ＵＤのパリティＰＮ−１はセクタＳＮ−１のデータＤａＮ−１で生成したパリティである。
【００３４】
また、セクタＳ１の未定義領域ＵＤの一部の斜線領域はパリティが記録されておらず、一連のデータを記録した際の先頭セクタであることを示す識別データ、或いは固定データ（オール“０”等）が記録されている。このセクタＳ１にのみパリティを記録していないのは、セクタＳ１が一連データを記録した際の先頭セクタであるがゆえ、このセクタＳ１の前のセクタＳ０がなく、従って、前のセクタＳ０のデータＤａ０に基づいてパリティＰ０を生成できないので、この斜線領域に記録するパリティがないのである。
【００３５】
また、セクタＳＮ＋１のデータ記録用の領域には、例えば“０”がデータ記録用の領域全てに記録される。従って、検出用のパリティＣＮ＋１はこのセクタＳＮ＋１のデータ記録用の領域に記録される“０”の検出用として生成されたパリティであり、また、パリティＥＮ＋１もこのセクタＳＮ＋１のデータ記録用の領域に記録されている“０”で生成されたパリティである。一方、未定義領域ＵＤの一部の領域にのみ前のセクタＳＮのデータＤａＮで生成したパリティＰＮが記録されている。
【００３６】
このセクタＳＮ＋１に、前のセクタＳＮのデータＤａＮで生成したパリティＰＮのみが記録されているのは、データそのものの記録は前のセクタＳＮで完結しているが、本例においては、第２ＥＣＣのパリティは、そのパリティを生成したデータが記録されているセクタの次のセクタに記録するようにしているため、最後のデータのパリティを記録するセクタが必要となるからである。従って、この図４に示すように、一連データを記録したときの最後尾のセクタがＳＮであった場合、このセクタＳＮのデータＤａＮの第２ＥＣＣのパリティを付加セクタとしてのセクタＳＮ＋１の未定義領域ＵＤに記録される。
【００３７】
次に、このようにしてデータやパリティおよび第２ＥＣＣのパリティが記録された記録媒体を再生して再生データを得るデータ処理装置について説明する。
【００３８】
図５は、この発明に係るデータ処理装置を光ディスク装置に用いた場合の構成を示した図である。図５において、光ヘッド固定部１１ａはレーザダイオードや光検出器等から構成されており、光ヘッド可動部１１ｂは反射鏡や対物レンズ等で構成されている。
【００３９】
光ヘッド固定部１１ａのレーザダイオードから出力されたレーザ光は、光学ヘッド可動部１１ｂによって光路が変更されると共に集光されて光ディスク１０に照射される。また光ディスク１０からのレーザ光の反射光は、光学ヘッド可動部１１ｂによって光路が変更されて光ヘッド固定部１１ａに供給される。光学ヘッド固定部１１ａでは、反射光が光電変換されて読出信号ＲＳが生成される。この読出信号ＲＳは読出信号処理部１２に供給される。
【００４０】
読出信号処理部１２では、読出信号ＲＳの符号間干渉がなくされて波形等化が行われると共に、波形等化された信号が波形整形されてディジタルのデータ信号ＤＲに変換される。このデータ信号ＤＲは信号復調部１３に供給される。
【００４１】
信号復調部１３では、データ信号ＤＲが復調されると共に、復調して得られた信号ＤＳがディジタル信号処理部１４に供給される。ディジタル信号処理部１４では、この信号ＤＳに基づきユーザデータ領域を示すタイミング信号ＴＣが生成されて信号復調部１３に供給される。このため、このタイミング信号ＴＣによって、信号ＤＳの中からユーザデータ領域の信号である復調データＤＤがディスクコントローラ２０に供給される。なお、信号復調部１３では、復調データＤＤがディスクコントローラ２０に供給される際に誤りを生じても、この誤りを検出できるよう復調データＤＤにパリティが付加される。
【００４２】
ここで、図６を参照してデータ処理装置であるディスクコントローラ２０の構成について説明する。図６において、復調データＤＤはパリティ検出部２１に供給される。パリティ検出部２１では、信号復調部１３で付加されたパリティに基づき、復調データＤＤが誤りなく供給されたか否かが判別されて、誤りなく復調データＤＤが供給されたときには、この復調データＤＤがＦＩＦＯ部２２に供給される。
【００４３】
なお、タイミング制御部２３では、ディスクコントローラ２０の動作を制御するためのタイミング信号が生成される。また、信号復調部１３からデータ供給開始の要求が出されたときにディスクコントローラ２０がデータを受け取ることが可能であるときには、信号復調部１３に対して信号ＨＳの供給が行われて、この信号ＨＳに基づき信号復調部１３からパリティ検出部２１に復調データＤＤの供給が行われる。
【００４４】
このように、復調データＤＤにパリティが付加されてデータの供給が行われると共に、ディスクコントローラ２０でデータを受け取ることが可能であることが確認されてからデータの供給が行われるので、復調データＤＤを正しくディスクコントローラ２０に供給することができる。
【００４５】
パリティ検出部２１で誤りのないことが確認された復調データＤＤは、ＦＩＦＯ部２２に順次保持される。また保持された復調データＤＤは順次読み出されて、データ選択部２４によってワークエリア２５あるいはワークエリア２６のいずれかに１セクタ分の復調データＤＤが供給される。
【００４６】
このように、ワークエリア２５およびワークエリア２６へのデータの供給は、ＦＩＦＯ部２２を介して行われるため、パリティ検出部２１からワークエリア２５やワークエリア２６に対してのデータの供給タイミング、あるいは後述する誤り検出訂正処理部２７からＤＭＡ（direct memory access）コントローラ２８に対しての誤り訂正されたデータの供給タイミング等を細かく制御する必要がなくデータの供給を容易とすることができる。
【００４７】
ワークエリア２５あるいはワークエリア２６に保持されたデータのうち、光ディスクから先に読み出されたデータがデータ選択部２４によって読み出されてＥＣＣやＣＲＣのデコーダである誤り検出訂正処理部２７に供給される。
【００４８】
誤り検出訂正処理部２７では、供給されたデータに対して第１ＥＣＣのパリティによる誤り訂正、ＣＲＣのパリティによる誤り検出が行われる。なお、バーストエラー等が発生して誤り訂正が不能となった場合には、信号ＮＣが後述するバス５０を介して中央演算処理装置（以下「ＣＰＵ」という）４１に供給されて、ＣＰＵ４１によって第２ＥＣＣのパリティを用いた誤り検出訂正処理がソフトウェア処理で行われる。
【００４９】
このようにして、復調データＤＤから誤りの訂正された再生データＤＴが得られると、この再生データＤＴはデータ選択部２４およびＦＩＦＯ部２２を介して、ＤＭＡコントローラ２８に供給されると共に、ＤＭＡコントローラ２８によってバッファメモリ部３０に順次書き込まれる。
【００５０】
ＤＭＡコントローラ２８は、バス（アドレスバスとデータバスおよびコントロールバスから成る）５０を介してＣＰＵ４１に接続される。このバス５０には再生動作や誤り訂正処理等を行うための各種のプログラムデータが記録されたＲＯＭ（read only memory）４２、およびＲＡＭ（random access memory）４３およびディジタル信号処理部１４等が接続される。
【００５１】
さらに、ＤＭＡコントローラ２８には、例えばＳＣＳＩ（small computer system interface）規格のＳＣＳＩインタフェース２９が接続されており、このＳＣＳＩインタフェース２９を介してホストコンピュータ等に接続される。
【００５２】
なお、ＣＰＵ４１からの制御信号ＣＤに基づきディジタル信号処理部１４で生成されたサーボ制御信号ＳＣがサーボ制御部１５に供給されると共に、このサーボ制御部１５には光ヘッド固定部１１ａからフォーカスやトラッキングの誤差信号ＥＲが供給される。このサーボ制御信号ＳＣおよび誤差信号ＥＲに基づきフォーカスやトラッキング等の駆動信号ＳＶが生成されて、この駆動信号ＳＶに基づき光ヘッド可動部１１ｂが駆動される。また、光ディスク１０はスピンドルモータ１６によって回転駆動される。さらに、ＤＭＡコントローラ２８とホストコンピュータ等との接続はＳＣＳＩ規格に限られるものではない。
【００５３】
次に、動作について説明する。図７は、第２ＥＣＣのパリティを用いることなく誤り訂正された再生データＤＴが得られる場合の動作を示した図である。
【００５４】
図７において、光ディスク１０のセクタ（図７Ａ）の「セクタ１」から再生が開始されると、読出信号ＲＳに基づき信号復調部１３から復調データＤＤ（図７Ｂ）が出力される。
【００５５】
復調データＤＤはパリティ検出部２１でパリティ検出が行われたのち、ＦＩＦＯ部２２に供給される。さらにＦＩＦＯ部２２のデータ（図７Ｃ）は、ワークエリア２５に保持される（図７Ｄ）。また「セクタ１」に続いて「セクタ２」が再生される場合も「セクタ１」と同様に処理される。
【００５６】
ここで、ワークエリア２５に対して「セクタ１」のデータの供給が終了されると、ＦＩＦＯ部２２の「セクタ２」のデータがワークエリア２６に順次供給される（図７Ｅ）。このとき、ワークエリア２５に保持された「セクタ１」のデータがデータ選択部２４を介して誤り検出訂正処理部２７に供給されて、第１ＥＣＣのパリティによる誤り訂正、ＣＲＣのパリティによる誤り検出が行われる（図７Ｆ）。
【００５７】
この誤り検出訂正処理部２７での処理が終了されると、誤り検出訂正処理された「セクタ１」のデータが再生データＤＴとしてバッファメモリ部３０に供給されて保持される（図７Ｇ）。このとき、「セクタ２」のデータがワークエリア２６から誤り検出訂正処理部２７に供給されて、第１ＥＣＣのパリティによる誤り訂正、ＣＲＣのパリティによる誤り検出が「セクタ１」のデータに引き続いて行われる。さらに、「セクタ２」に続いて「セクタ３」が再生される場合には、「セクタ１」および「セクタ２」のデータと同様に処理されて、ＦＩＦＯ部２２の「セクタ３」のデータがワークエリア２５に供給される。
【００５８】
以下同様に、光ディスク１０から順次読み出されたセクタのデータがワークエリア２５，２６に交互に保持されると共に、ワークエリア２５，２６の一方にセクタのデータの供給が行われているときには、他方のセクタのデータが読み出されて誤り検出訂正処理部２７で処理が行われるので、連続して誤り訂正されたデータを得ることができる。
【００５９】
次に、バーストエラー等が発生したことにより、第１ＥＣＣのパリティによる誤り訂正では、セクタのデータの誤り訂正を行うことができない場合の、第１ＥＣＣおよび第２ＥＣＣのパリティを用いた誤り訂正処理について、図８のフローチャートおよび図９のエラーの発生状態を示す図を使用して説明する。
【００６０】
第１ＥＣＣのパリティによる誤り訂正では、例えば「セクタ３」のデータの誤り訂正を行うことができない場合、信号ＮＣがＣＰＵ４１に供給されて、ＣＰＵ４１によって第２ＥＣＣのパリティを用いた誤り検出訂正がソフトウェア処理で行われる。
【００６１】
まず、図８のステップＳＴ１では、次のセクタ、すなわち「セクタ４」に記録されている第２ＥＣＣのパリティがワークエリア２５あるいはワークエリア２６からＤＭＡコントローラ２８およびバス５０を介してＲＡＭ４３に書き込まれる。
【００６２】
ステップＳＴ２では、訂正ができなかった「セクタ３」のデータが、バッファメモリ部３０からＤＭＡコントローラ２８およびバス５０を介してＲＡＭ４３に書き込まれる。
【００６３】
ステップＳＴ３では、ＣＰＵ４１によってＲＡＭ４３に書き込まれた「セクタ３」のデータを用いて列方向のシンドロームＳ０〜Ｓ１５が算出される。
【００６４】
ステップＳＴ４では、ＣＰＵ４１によってＲＡＭ４３に書き込まれた「セクタ４」の第２ＥＣＣのパリティを用いて「セクタ３」のデータの行方向のシンドロームＤ０〜Ｄ１９が算出される。
【００６５】
ステップＳＴ５では、行方向のシンドロームから消失箇所が算出されて、この消失箇所が「ＩX」とされる。例えば図９のシンドロームＤ０によってデータ欠陥箇所Ａが検出されて、このデータ欠陥箇所Ａが消失箇所「ＩX」とされる。
【００６６】
ステップＳＴ６では、変数「Ｊ」が列の最大アドレス、図９の場合には「１５」に設定される。
【００６７】
ステップＳＴ７では、消失箇所「ＩX」で列「Ｊ」の消失訂正が行われ、訂正が完了したときにはステップＳＴ８に進み、訂正ができなかった場合にはステップＳＴ９に進む。
【００６８】
ところで、ディスタンスｄと誤り位置が明確にされている箇所の訂正個数ｔａと誤り位置の不明な箇所の訂正個数ｔｂとは、（式３）の関係となることが知られている。
【００６９】
ｄ≧ｔａ＋２ｔｂ＋１    ・・・（式３）
このため、データＤ１６，Ｄ３２，Ｄ４８，Ｄ６４、・・・Ｄ２０４８、第２ＥＣＣのパリティＰ１６，Ｐ３２及びパリティＣＲＣ８の列に対してパリティ（Ｅ１６，１），（Ｅ１６，２），・・・（Ｅ１６，１６）が付加されて、ディスタンスｄが１７とされている場合には、（式４）の関係をみたすものでなければ訂正を行うことができない。
【００７０】
１６≧ｔａ＋２ｔｂ      ・・・（式４）
ここで、図９のシンドロームＤ０によって位置が検出されたデータ欠陥箇所Ａにより例えばｔａ＝３とされて、バーストエラーを生じたデータ欠陥箇所Ｂにより例えばｔｂ＝８である場合には、（式４）の条件が満たされず訂正を行うことができないことからステップＳＴ９に進む。
【００７１】
ステップＳＴ９では、行方向のシンドロームから次の消失箇所が検出されて、この消失箇所が「ＩX」とされる。例えば図９のシンドロームＤ１４，Ｄ１５によってデータ欠陥箇所Ｂが検出されて、このデータ欠陥箇所Ｂが消失箇所「ＩX」とされてステップＳＴ６に戻り、変数「Ｊ」が「１５」に設定されてステップＳＴ７に進む。
【００７２】
このとき、シンドロームＤ１４，１５によって位置が検出されたデータ欠陥箇所Ｂによりｔａ＝８、データ欠陥箇所Ａにによりｔｂ＝３とされた場合には、（式４）の条件が満たされるので、ステップＳＴ７で訂正が完了してステップＳＴ８に進む。
【００７３】
ステップＳＴ８では、列「Ｊ」から「１」が減算されて新たな列「Ｊ」とされ、さらに新たな列「Ｊ」が「０」以上であるか否かが判別される。ここで、「Ｊ」が「０」以上である場合にはステップＳＴ７に戻り、「Ｊ」が「０」よりも小さい場合にはステップＳＴ１０に進む。
【００７４】
このため、図９においては列「１５」から列「０」までのデータ列に対して順次誤り訂正が行われる。
【００７５】
ステップＳＴ１１では、すべての訂正が完了したらＣＲＣの検出が行われる。このＣＲＣの検出で異常が検出されないときには訂正が正しく行われたものとして動作が終了される。またＣＲＣの検出で異常が検出されたときには訂正が正しく行われなかったものとして動作が終了される。
【００７６】
このように、バーストエラーが発生する方向（書き込み方向）に対応させて、消失箇所を「Ｉ」の小さくなる方向に検出すると共に、「Ｊ」の小さくなる方向に誤り訂正処理を行うことで、誤り訂正を容易に行うことができる。
【００７７】
このため、図１０に示すように、ソフトウェア処理で「セクタ３」の誤り訂正が完了して得られたデータは、再生データＤＴとしてバッファメモリ部３０に保持される（図１０Ｇ）。また、「セクタ３」の誤り検出訂正処理が終了すると、ワークエリア２６に書き込まれている「セクタ４」のデータが読み出されて誤り検出訂正処理部２７に供給されて処理されると共に「セクタ５」のデータが光ディスク１０から読み出される。以下同様に誤り検出訂正処理されてバッファメモリ部３０に保持される。なお、図１０において、図１０Ａ〜Ｆはそれぞれ光ディスク１０のセクタ、復調データＤＤ、ＦＩＦＯ部２２、ワークエリア２５、ワークエリア２６、誤り検出訂正処理部２７のデータを示している。
【００７８】
このように、誤り検出訂正処理部２７で、第２ＥＣＣのパリティを用いて「セクタ３」の処理ができなかった場合であっても、ＣＰＵ部４１でソフトウェア処理による誤り訂正が行われ、誤り検出訂正された「セクタ３」のデータは、バス５０およびディスクコントローラ２０を介して図９に示すようにバッファメモリ部３０に保持される。
【００７９】
次に、第２ＥＣＣのパリティを用いた誤り検出訂正をハードウェアで処理する場合について図１１を使用して説明する。この場合には、上述したソフトウェアによる第２ＥＣＣのパリティを用いた誤り検出訂正処理の機能を誤り検出訂正処理部２７で有するものとされる。
【００８０】
図１１において、読出信号ＲＳに基づき信号復調部１３から復調データＤＤ（図１１Ｂ）が出力されると、復調データＤＤはパリティ検出部２１で誤り検出が行われたのち、ＦＩＦＯ部２２に供給されて、さらにＦＩＦＯ部２２のデータ（図１１Ｃ）は、ワークエリア２５あるいはワークエリア２６に供給されて保持される（図１１Ｄ、図１１Ｅ）。
【００８１】
ワークエリア２５の「セクタ１」のデータおよびワークエリア２６の「セクタ２」のデータは、上述のように誤り検出訂正処理されてバッファメモリ部３０に供給される（図１１Ｇ）。
【００８２】
次に、バーストエラーの発生した「セクタ３」のデータがワークエリア２５から読み出されて誤り検出訂正処理部２７で処理が行われる（図１１Ｆ）と、第１ＥＣＣのパリティによる誤り訂正、ＣＲＣのパリティによる誤り検出だけでは、「セクタ３」のデータの誤り訂正を行うことができない場合が生じ、このとき、誤り検出訂正処理部２７では誤り検出訂正処理が停止される。
【００８３】
また、光ディスク１０から読み出された「セクタ４」のデータは、ワークエリア２６に保持されると共に、この「セクタ４」のデータの第２ＥＣＣのパリティが誤り検出訂正処理部２７に供給される。
【００８４】
誤り検出訂正処理部２７では、この「セクタ４」の第２ＥＣＣのパリティを用いて、上述のソフトウェア処理と同様にして「セクタ３」の誤り訂正が行われ、更にこの後、再び第１ＥＣＣのパリティによる誤り訂正、ＣＲＣのパリティによる誤り検出が行われて、「セクタ３」のデータの誤りが訂正される。
【００８５】
誤り検出訂正処理が完了した「セクタ３」のデータは、再生データＤＴとしてバッファメモリ部３０に供給されて保持される。また、「セクタ３」の誤り検出訂正処理が終了すると、ワークエリア２６に書き込まれている「セクタ４」のデータが誤り検出訂正処理部２７に供給されて処理される。以下同様に誤り検出訂正処理が行われて、誤り検出訂正処理が完了したデータがバッファメモリ部３０に保持される。
【００８６】
このように、ハードウェアで誤り検出訂正処理を行うことにより、ソフトウェアで誤り検出訂正処理を行う場合よりも処理時間を短縮することができる。
【００８７】
また、上述のソフトウェアあるいはハードウェアでの誤り検出訂正処理中に、セクタｎのデータをセクタｎ＋１に記録された第２ＥＣＣのパリティを用いて誤り検出訂正処理ができない場合には、セクタｎ＋２の第２ＥＣＣのパリティを用いてセクタｎ＋１のデータの誤り検出訂正処理を実施してからセクタｎのデータの誤り検出訂正処理を実施するものとすれば、セクタｎ＋１に記録された第２ＥＣＣのパリティに誤りを生じても、セクタｎのデータの誤りを訂正することができる。
【００８８】
なお、誤り検出訂正処理されてバッファメモリ部３０に保持された再生データＤＴは、ＤＭＡコントローラ２８およびＳＣＳＩインタフェース２９を介してホストコンピュータ等に供給される。
【００８９】
このように、上述の実施の形態によれば２つのワークエリア２５，２６を用いて、それそれのワークエリアに連続した２セクタ分のデータを交互に保持するものとし、例えばワークエリア２５に保持されたデータの誤り検出訂正処理を行うときには、次のセクタのデータをワークエリア２６に保持するものとし、ワークエリア２６に保持されたデータの誤り検出訂正処理を行うときには、次のセクタのデータをワークエリア２５に保持するものとする。以下同様に処理することによりリアルタイムでＥＣＣやＣＲＣのデコード処理を行うことができる。
【００９０】
また、１つのセクタのパリティでこのセクタのデータの誤り訂正ができない場合には、次のセクタに記録された第２ＥＣＣのパリティを用いて、例えばＪ＝１５のデータ列の誤り位置を検出してから誤り訂正を行うことにより訂正能力を向上させることができる。さらに検出されたＪ＝１５の誤り位置を利用してＪ＝１４〜０までのデータ列の誤り訂正を行うものとすれば、デコードに要する時間を短縮化することができる。
【００９１】
なお、上述の実施の形態では２つのワークエリアを用いて誤り検出訂正処理を行うものとしたが、ワークエリアは２つに限られるものではなく、ワークエリアを３以上設けて、ワークエリアに保持されている第２ＥＣＣのパリティで前のセクタのデータの誤り訂正を行い、誤り訂正の行われたセクタの第２ＥＣＣのパリティでさらに前のセクタのデータの誤り訂正を行うものとすれば、さらに誤り訂正能力を向上させることができる。
【００９２】
また、光ディスクを再生して得られた復調データだけでなく、他の伝送データに対しても同様に処理することで、効率良く誤り検出訂正処理を行うことができることは勿論である。さらに、ディスタンスｄを大きな値とすることなく効率良く誤り検出訂正処理を行うことができるので、記録媒体に対して記録可能なデータ量を減らすことがない。
【００９３】
【発明の効果】
この発明によれば、複数のワークエリアに順次データブロックが保持されると共に、保持されたデータが順次誤り検出訂正処理部に供給されて、データ列毎に生成された第１の誤り検出訂正用パリティを用いて誤り検出訂正が行われる。ここで、誤り訂正が不能であるときには、次のデータブロックが保持されたワークエリアから所定量単位のデータ行毎に生成された第２の誤り検出訂正用パリティが誤り検出訂正処理部に供給されて、この第２の誤り検出訂正用パリティを用いて誤り発生位置を検出し、この検出結果を利用して第１の誤り検出訂正用パリティを用いて誤り検出訂正が行われる。
【００９４】
また、第２の誤り検出訂正用パリティを用いた誤り検出結果を利用し、第１の誤り検出訂正用パリティを用いて１つのデータ列の誤り訂正が可能とされたときには、この誤り検出結果を利用して次のデータ列の誤り訂正が行われる。
【００９５】
このように、データブロックが複数のワークエリアに順次保持されると共に、保持されたデータが順次誤り検出訂正処理部に供給されるのでリアルタイムでデコード処理を行うことができる。
【００９６】
また、第１の誤り検出訂正用パリティを用いて誤り検出訂正が行われたときに、誤り訂正が不能である場合には、第２の誤り検出訂正用パリティを用いて誤り発生位置を検出し、この検出結果を利用して第１の誤り検出訂正用パリティを用いて誤り検出訂正が行われるので、訂正能力を向上させることができる。
【００９７】
さらに、第２の誤り検出訂正用パリティを用いて誤り発生位置を検出し、この検出結果を利用して１つのデータ列に対して第１の誤り検出訂正用パリティを用いて誤り検出訂正が可能とされたときには、この検出された誤り発生位置を利用して他のデータ列の誤り検出訂正が行われるので、デコード処理に要する時間を短縮化することができる。
【図面の簡単な説明】
【図１】データフォーマットを示す図である。
【図２】第２ＥＣＣのパリティ位置を示す図である。
【図３】第２ＥＣＣのパリティの生成を示す図である。
【図４】セクタと第２ＥＣＣのパリティの関係を示す図である。
【図５】この発明に係るデータ処理装置を光ディスク装置に用いた場合の光ディスク装置の構成を示す図である。
【図６】ディスクコントローラ２０の構成を示す図である。
【図７】第１ＥＣＣのパリティを用いた訂正動作を示す図である。
【図８】第１および第２ＥＣＣのパリティを用いた訂正動作を示すフローチャートである。
【図９】エラーの発生状態を示す図である。
【図１０】ソフトウェア処理による訂正動作を示す図である。
【図１１】ハードウェア処理によるた訂正動作を示す図である。
【符号の説明】
１０  光ディスク
１１ａ  光ヘッド固定部
１１ｂ  光ヘッド可動部
１２  読出信号処理部
１３  信号復調部
１４  ディジタル信号処理部
１５  サーボ制御部
２０  ディスクコントローラ
２１  パリティ検出部
２２  ＦＩＦＯ部
２３  タイミング制御部
２４  データ選択部
２５，２６  ワークエリア
２７  誤り検出訂正処理部
２８  ＤＭＡコントローラ
２９  ＳＣＳＩインタフェース
３０  バッファメモリ部
４１  中央演算処理装置（ＣＰＵ）
【図１】
0003755173.tif 000002
【図２】
0003755173.tif 000003
【図３】
0003755173.tif 000004
【図４】
0003755173.tif 000005
【図５】
0003755173.tif 000006
【図６】
0003755173.tif 000007
【図７】
0003755173.tif 000008
【図８】
0003755173.tif 000009
【図９】
0003755173.tif 000010
【図１０】
0003755173.tif 000011
【図１１】
0003755173.tif 000012