(57)【要約】【課題】誤り訂正処理に必要なバッファ容量が多く、面積が大きくなっていたという問題があった。【解決手段】誤り訂正装置１は、訂正前データの誤りを検出して訂正する装置であり、複数の単位に分割された記憶領域を有し、前記訂正前データを前記記憶領域の単位に分割して記憶する一時保存バッファ（データバッファ２０９）と、一時保存バッファに記憶する訂正前データの誤りを検出し、前記記憶領域の単位毎に検出した誤りを訂正して前記一時保存バッファへ書き込むことを繰り返す誤り訂正部（誤り訂正回路１００）と、を備える。誤り訂正部は、一時保存バッファの記憶領域単位毎に訂正前データの誤りを訂正して順次一時保存バッファへ書き込む。【選択図】図１
2008159198.tif 000002
【特許請求の範囲】
【請求項１】
訂正前データの誤りを検出して訂正する誤り訂正装置であって、
複数の単位に分割された記憶領域を有し、前記訂正前データを前記記憶領域の単位に分割して記憶する一時保存バッファと、
前記一時保存バッファに記憶する訂正前データの誤りを検出し、前記記憶領域の単位毎に検出した誤りを訂正して前記一時保存バッファへ書き込むことを繰り返す誤り訂正部と、を備える誤り訂正装置。
【請求項２】
前記誤り訂正部は、
誤りを検出した訂正前データを特定する誤り位置情報を記憶する訂正アドレスバッファと、
前記誤り位置情報で特定される訂正前データの誤りを訂正する誤り訂正符号を記憶する訂正データバッファと、
一つの記憶領域に記憶する前記訂正前データの誤りを検出したタイミングを検出する検出部と、を備え、
前記一時保存バッファは、前記検出部が検出したタイミングで前記訂正データバッファから訂正済みデータが書き込まれることを特徴とする請求項１記載の誤り訂正装置
【請求項３】
前記訂正データバッファは、前記記憶領域の単位が二つ記憶できる大きさを備え、前記検出部から前記タイミングが通知された場合に、前記誤り位置情報と前記誤り訂正符号に基づいて前記訂正前データを訂正した訂正済みデータを、前記誤り訂正符号を記憶していた領域に上書きすることを特徴とする請求項２記載の誤り訂正装置。
【請求項４】
前記一時保存バッファは、前記訂正データバッファに訂正済みデータが前記記憶領域の単位分の上書きされた後に前記訂正済みデータが書き込まれることを特徴とする請求項３記載の誤り訂正装置。
【請求項５】
前記一時保存バッファは、前記複数の単位に分割された記憶領域として、ページ単位にアクセスする複数のページに分割された記憶領域を有し、
前記検出部は、前記タイミングとして、訂正前データを記憶する前記一時保存バッファ上の位置がページ境界を超えた場合を検出することを特徴とする請求項２乃至４のいずれかに記載の誤り訂正装置。
【請求項６】
記録媒体から訂正前データを読み出す読み出し部と、
前記請求項１乃至５のいずれかに記載の誤り訂正装置と、を備える記録再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り訂正装置、特に訂正したデータを複数の記憶領域から構成されるデータバッファへ保存する誤り訂正装置に関する。
【背景技術】
【０００２】
近年、Ｂｌｕ−ｒａｙ規格およびＨＤ  ＤＶＤ（High-Definition Digital Versatile Disc）規格により記録媒体の大容量化が進み、大量のデータを高速で処理する必要があるＤＶＤディスク装置が登場している。例えば、特許文献１に開示されている技術をＤＶＤ／ＣＤ（Digital Versatile Disc / Compact Disc）ディスク装置に適用した場合の構成を図３、図４に示す。また、ＤＶＤのＥＣＣ（error check and correct）ブロックのデータフォーマットについて図５に示す。
【０００３】
図３は従来のＤＶＤ／ＣＤディスク装置の全体構成の一例を示すブロック図である。以下ＤＶＤディスクの再生をする際のデータ処理について説明する。図３に示すように、ＤＶＤ／ＣＤディスク装置２００は、ＣＰＵ（Central Processing Unit）２０２、ピックアップ２０３、リード・ライトチャネル２０４、ＨＯＳＴ  Ｉ／Ｆ２０６、バッファ制御回路２０７、フォーマット制御回路２０８、データバッファ２０９、及び誤り訂正回路３００を備える。
【０００４】
ＣＰＵ２０１は、ＤＶＤ／ＣＤディスク装置の全体を制御する。
ピックアップ２０３は、ＤＶＤディスクからデータ（訂正前データ）を読み取り、リード・ライトチャネル２０４に送る。リード・ライトチャネル２０４は、データを復調し、フォーマット制御回路２０８に送る。フォーマット制御回路２０８は、ディスクの種類により、それぞれのディスク・フォーマットに従ってデータを加工する。フォーマット制御回路２０８で加工されたデータは、誤り訂正回路３００に送られる。
【０００５】
例えば、ＤＶＤでは、図５に示すように１８２バイト×２０８行のデータに加工する。この１８２バイト×２０８行のデータはＥＣＣブロックと呼ばれ、ＤＶＤの誤り訂正処理はこのＥＣＣブロック単位で行う。また、各行の１７３バイト目から１８２バイト目までのデータをＰＩと呼び、ＥＣＣブロックの１９３行目から２０８行目までのデータをＰＯと呼ぶ。このＰＯとＰＩをＥＣＣコードと呼び、ＥＣＣコードを除いた１７２バイト×１９２行のデータがメインデータとなる。
【０００６】
ＨＯＳＴ  Ｉ／Ｆ２０６は、訂正済みデータを利用するデバイスであり、バッファ制御回路２０７を介してデータバッファ２０９に格納された訂正済みデータへアクセスする。
バッファ制御回路２０７は、データバッファ２０９へのデータの書き込みや読み出しをコントロールする回路である。
データバッファ２０９は、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）（例えばＥＤＳ１２１６ＡＧＴＡ：エルピーダメモリ株式会社製）で構成され、誤り訂正中のデータの一時的な記憶を行うものであり、１２８メガバイトの容量を持っている。なお、ＳＤＲＡＭはページと呼ぶ複数の記憶領域で構成され、同一ページ内では連続アクセスが可能であるため処理速度が向上するという利点がある。
【０００７】
誤り訂正回路３００は、ＰＩ訂正回路３０１、復号器３０２および修復器３０３から構成される。
ＰＩ訂正回路３０１は、図５のＰＩ方向（１行１８２バイト）の１回目の訂正を、１行単位で行う回路である。
復号器３０２は、ＥＣＣブロック内の誤りデータの誤り位置情報と誤り訂正符号を生成する回路である。誤り訂正符号については、非特許文献１に説明されている。
修復器３０３は生成された誤り位置情報と誤り訂正符号を元にデータバッファ２０９上のデータを書き換える回路である。
【０００８】
次に、従来例の誤り訂正回路３００の動作について図４を用いて説明する。図４は、従来の誤り訂正回路の構成の一例を示したブロック図である。図４に示す誤り訂正回路300は、ＰＩ訂正回路３０１、復号器３０２及び修復器３０７を備える。
まず、フォーマット制御回路２０８で加工されたデータが、ＰＩ訂正回路３０１に入力される。ＰＩ訂正回路３０１は、図５に示したＤＶＤのＥＣＣブロックのデータフォーマットのＰＩ方向（１行１８２バイト）の１回目の訂正を、１行単位で行った後、訂正したデータからＥＣＣコードを除いてＥＣＣブロック単位でバッファ制御回路２０７を経由してデータバッファ２０９に送る。
【０００９】
１ＥＣＣ分のデータをデータバッファ２０９上に格納するのに必要なページ数は、１ＥＣＣ分のデータを１ページのバイト数で割ればよい。ＥＣＣコードを除いたデータ長は、１７２バイト×１９２行であり、１ページの容量は１０２４バイトであるため、式１のように３３ページである。
１７２バイト×１９２行／１０２４バイト＝３２．２４ページ    ・・・（式１）
ＰＯ訂正用バッファ３０９−１〜３０９−３３、ＰＩ訂正用バッファ３１２−１〜３１４−３３は、ＳＤＲＡＭの転送を簡単にするために、データバッファ２０９上の１ページに１個割り当てることで、１ＥＣＣ分では各々３３個必要になる。
【００１０】
ＰＩ訂正回路３０１が１回目の訂正をしたデータは、ＥＣＣブロック単位でＥＣＣコードを含んで復号器３０２にも送られる。復号器３０２は、ＰＯ演算回路３０３、ＰＩ演算回路３０４及び誤り多項式演算回路３２０から構成される。
ＰＯ演算回路３０３は、入力されたＥＣＣブロックの各列について、図５に示すＰＯ方向（縦方向１９２行）のシンドローム演算を行い、１８２列分の演算結果を保存する。ＰＯ演算回路３０３は、１ＥＣＣ分のＰＯシンドローム演算が終了すると、演算後のデータを誤り多項式演算回路３２０に送り、誤り多項式演算回路３２０は、誤り位置情報と誤り訂正符号を生成する。
【００１１】
また、ＰＩ演算回路３０４は、入力されたＥＣＣブロックの各行について、図５に示すＰＩ方向（横方向１８２バイト）のシンドローム演算を行い、１９２行分の演算結果を２回目のＰＩ訂正処理のために保存しておく。誤り多項式演算回路３２０で生成したＥＣＣブロック内の誤り位置情報と誤り訂正符号は、修復器３０７内の誤りアドレス演算選別回路３０５に送られる。
【００１２】
修復器３０７は、誤りアドレス演算選別回路３０５、ページサイズレジスタ３０６、アドレスオフセットレジスタ３０８、ＰＯ訂正用バッファ３０９−１〜３０９−３３、ＰＩ訂正用バッファ３１２−１〜３１２−３３、ＥＸＯＲ回路３１７、訂正済みバッファ３１６及びバッファアクセス制御回路３１５から構成される。
【００１３】
ページサイズレジスタ３０６には、データバッファ２０９の１ページの大きさを示すデータが格納されている。
アドレスオフセットレジスタ３０８には、データバッファ２０９に格納されているこれから処理すべき訂正後データの先頭アドレスが格納されている。
誤りアドレス演算選別回路３０５は、アドレスオフセットレジスタ３０８のデータとページサイズレジスタ３０６のデータから１ＥＣＣブロック内の誤り位置情報をＰＯ訂正用バッファ３０９−１〜３０９−３３のどこに格納するか決定し、誤り訂正符号と、それに対応するデータが保管されているデータバッファ２０９上のアドレスを、ＰＯ訂正用バッファ３０９−１〜３０９−３３に格納する。修復器３０７は、１ＥＣＣ分の誤り訂正符号と、データバッファ２０９上のアドレスをＰＯ訂正用バッファ３０９−１〜３０９−３３に格納し終えると、次に修復器３０７は、データバッファ２０９上に格納されているデータの書き換え作業を行う。
【００１４】
修復器３０７は、ＰＯ訂正用バッファ３０９−１に格納されているデータバッファ２０９のアドレスを読み出し、そのアドレスの指すデータバッファ２０９のデータを読み出す。読み出したデータは、ＰＯ訂正用バッファ３０９−１上の誤り訂正符号データとＥＸＯＲ回路３１７で排他的論理和演算され、演算結果は訂正済みバッファ３１６に格納される。修復器３０７は、ＰＯ訂正用バッファ３０９−１上のデータの処理を全て終了すると、訂正済みバッファ３１６上のデータをデータバッファ２０９に書き戻していく。
このＰＯ訂正用バッファ３０９−１の書き戻しが終了したら、修復器３０７は、順次ＰＯ訂正用バッファ３０９−２からＰＯ訂正用バッファ３０９−３３について同様の処理を行い、３３個のＰＯ訂正用バッファの処理が終了した時点で１ＥＣＣ分のＰＯ方向の誤り訂正作業を終了する。修復器３０７は、ＰＯ方向の誤り訂正後、再度ＰＩ方向の誤り訂正を行う。
【００１５】
ＰＯ訂正済みのデータがデータバッファ２０９に書き戻される際に、訂正済データはＰＩ演算回路３０４にも送られる。ＰＩ演算回路３０４はＰＯ訂正済みデータに基づいて、ＰＩ演算回路３０４に保存されている演算結果を補正する。ＰＩ演算回路３０４は、すべて補正し終えると、補正したシンドローム演算結果を誤り多項式演算回路３２０に送り、誤り多項式演算回路３２０は、１ＥＣＣブロック内の誤り位置情報と誤り訂正符号を生成する。生成した１ＥＣＣブロック内の誤り位置情報と誤り訂正符号は誤りアドレス演算選別回路３０５に送られる。
【００１６】
誤りアドレス演算選別回路３０５は、アドレスオフセットレジスタ３０８のデータとページサイズレジスタ３０６のデータから１ＥＣＣブロック内の誤り位置情報をＰＩ訂正用バッファ３１２−１〜３１２−３３のどこに格納するか決定し、誤り訂正符号と、それに対応するデータの保管されているデータバッファ２０９上のアドレスを、ＰＩ訂正用バッファ３１２−１〜３１２−３３に格納する。
【００１７】
次に修復器３０７は、データバッファ２０９上に格納されているデータの書き換え作業を行う。ＰＩ訂正用バッファ３１２−１に格納されているデータバッファ２０９のアドレスを読み出し、そのアドレスの指すデータバッファ２０９のデータを読み出す。読み出したデータはＰＩ訂正用バッファ３１２−１上の誤り訂正符号データとＥＸＯＲ回路３１７で排他的論理和演算され、演算結果は訂正済みバッファ３１６に格納される。修復器３０７は、ＰＩ訂正用バッファ３１２−１上のデータの処理を全て終了すると、訂正済みバッファ３１６上のデータをデータバッファ２０９に書き戻す。
このＰＩ訂正用バッファ３１２−１の書き戻しが終了したら、修復器３０７は、順次ＰＩ訂正用バッファ３１２−２からＰＩ訂正用バッファ３１２−３３について同様の処理を行い、３３個の訂正用バッファの処理が終了した時点でＰＩ方向の誤り訂正作業を終了する。以上で１ＥＣＣブロックのデータの誤り訂正処理は終了する。
【００１８】
続いて、データの流れについて図６を用いて説明する。図６は、従来の誤り訂正処理のタイミングチャートである。Ｔ０からＴ５は時刻を表す。フォーマット制御回路２０８からＰＩ訂正回路３０１に入力されたデータは、ＰＩ訂正後、ＰＯ演算回路３０３とＰＩ演算回路３０４及びバッファ制御回路２０７に送られる（４０１、４０２、４０３）。１ＥＣＣ分のデータの転送が終了すると、ＰＯ演算回路３０４の演算結果は、誤り多項式演算回路３２０に入力される（４０４）。誤り多項式演算回路３２０で生成された１ＥＣＣブロック内の誤り位置情報と誤り訂正符号は、誤りアドレス演算選別回路３０５に入力される（４０５）。
【００１９】
誤り位置情報と誤り訂正符号は、誤りアドレス演算選別回路３０５でＰＯ訂正用バッファ３０９−１〜３０９−３３のうち、どのＰＯ訂正用バッファに格納されるか決定され、決定されたＰＯ訂正用バッファに格納される（４０６）。１ＥＣＣ分の誤り位置情報がＰＯ訂正用バッファ３０９−１〜３０９−３３に格納されると、修復器３０７は、ＰＯ訂正用バッファ３０９−１から順番に格納されているデータバッファ２０９上のアドレスと誤り訂正符号を読み出し、データバッファ書き換えバス（バッファ制御回路２０７）を介してデータバッファ２０９上のデータの書き換えを行う（４０７）。この時、書き換え後のデータはＰＩ演算回路３０４にも送られる（４０８）。
【００２０】
ＰＩ演算回路３０４では書き換え後のデータを使用して演算結果の補正を行う。ＰＯ訂正用バッファ３０９−１〜３０９−３３まで書き換え処理が終了すると、ＰＩ演算回路３０４は、補正後の演算結果を誤り多項式演算回路３２０に入力する（４０９）。誤り多項式演算回路３２０で生成された１ＥＣＣブロック内の誤り位置情報と誤り訂正符号は、誤りアドレス演算選別回路３０５に入力される。誤り位置情報と誤り訂正符号は、誤りアドレス演算選別回路３０５でＰＩ訂正用バッファ３１２−１〜３１２−３３のうち、どのＰＩ訂正用バッファに格納されるか決定され、決定されたＰＩ訂正用バッファに格納される（４１０）。
【００２１】
１ＥＣＣ分の誤り位置情報がＰＩ訂正用バッファ３１２−１〜３１２−３３に格納されると、ＰＩ訂正用バッファ３１２−１から順番に格納されているデータバッファ２０９上のアドレスと誤り訂正符号を読み出し、データバッファ２０９上のデータの書き換えを行う（４１１）。ＰＩ訂正用バッファ３１２−３３までデータバッファ２０９上のデータの書き換えが終了すると、１ＥＣＣ分の訂正処理が終了する。
【００２２】
ここで、最後のデータのＰＩ訂正処理が終了するのは、誤り多項式演算回路３２０から最後の誤り位置情報と誤り訂正符号が送られてから（４１２）、データバッファ２０９の書き換え処理を３３ページ分処理し終えた時点となる（４１３）。
【特許文献１】特開２００１−１４３４０８号公報
【非特許文献１】「図解ＤＶＤ読本、３．２．５章  誤り訂正符号の復号」、オーム社、ＩＳＢＮ４−２７４−０３６０６−５、ｐ．１０６〜１０９
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、従来技術では１ＥＣＣブロック分の誤り検出処理が終了し、誤り訂正符号と誤り訂正符号の位置を示すデータバッファ２０９条のアドレスをＰＯ訂正用バッファ３０９−１〜３０９−３３及びＰＩ訂正用バッファ３１２−１〜３１２−３３に格納後、データバッファ２０９上のデータの書き換え処理を行っていた。また、データバッファ２０９上のデータの書き換え時、ＰＯ訂正用バッファ３０９−１〜３０９−３３若しくはＰＩ訂正用バッファ３１２−１〜３１２−３３上のデータ（誤り訂正符号）とデータバッファ２０９上のデータ（訂正するデータ）と排他的論理和演算をしたデータを一時保存する際、専用の訂正済みバッファ３１６に格納してからデータバッファ２０９に書き戻していた。
【００２４】
このため、１ＥＣＣブロック分の誤りデータを格納するには、ＰＯ訂正用バッファが３３個、ＰＩ訂正用バッファが３３個必要となっていた。また、専用の訂正済みバッファ３１６が必要となっていた。このため、誤り訂正回路３００の面積が大きくなっていた。このように、従来の誤り訂正回路では、誤り訂正処理に必要なバッファ容量が多く、面積が大きくなっていたという問題があった。
【課題を解決するための手段】
【００２５】
本発明に係る誤り訂正装置は、訂正前データの誤りを検出して訂正する誤り訂正装置であって、複数の単位に分割された記憶領域を有し、前記訂正前データを前記記憶領域の単位に分割して記憶する一時保存バッファ（例えば、データバッファ２０９）と、前記一時保存バッファに記憶する訂正前データの誤りを検出し、前記記憶領域の単位毎に検出した誤りを訂正して前記一時保存バッファへ書き込むことを繰り返す誤り訂正部（例えば、誤り訂正回路１００）と、を備える。誤り訂正部は、一時保存バッファの記憶領域単位毎に訂正前データの誤りを訂正して順次一時保存バッファへ書き込む。このため、記憶領域単位の容量の訂正済みデータを一時保存バッファへの書き込みが終了するまで保持することになる。従って、誤り訂正処理で使用するバッファに加え、記憶領域単位の容量の訂正済みデータを格納するバッファが必要になる。これは、訂正後にまとめて訂正済みデータを一時保存バッファへ書き込む場合には、一度に誤り訂正処理する訂正済み誤り訂正データ（例えば、１ＥＣＣブロックの訂正済みデータ）を保持するバッファが必要となっていたことに比べ、訂正済みデータを格納するバッファの容量を削減することになる。これにより、半導体チップの面積を小さくすることができる。
【発明の効果】
【００２６】
本発明によれば、訂正したデータを一次保存する一時保存バッファ（データバッファ）の記憶領域の単位（アクセス単位）毎に訂正済みデータを書き換えることが可能となる。これにより、誤り訂正処理で必要なバッファ容量を削減することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施形態について、図面を参照しながら説明する。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００２８】
（実施形態１）
図１は、本発明に係る実施形態１の誤り訂正回路の構成の一例を示すブロック図である。図１に示す誤り訂正回路１００は、図３に示したＤＶＤ／ＣＤディスク装置（記録再生装置）２００と同様の構成の装置で動作し、ＤＶＤ／ＣＤディスク装置２００に含まれる誤り訂正回路３００と差し替えられる回路である。また、図１に示した誤り訂正回路１００は、ＰＩ訂正回路１１０、復号器（復号部）１２０、及び修復器（修復部）１３０を備え、これら３つの構成要素は、図３に示したＰＩ訂正回路３０１、復号器３０２、修復器３０７とそれぞれ対応して差し替えられる。図３のＤＶＤ／ＣＤディスク装置２００の動作は、誤り訂正回路３００の動作を除いて同様であるため説明を省略する。また、図１に示すように、誤り訂正回路１００、バッファ制御回路２０７及びデータバッファ２０９を含む構成を誤り訂正装置１と呼ぶこともある。続いて、図１の各構成要素について説明する。
【００２９】
ＰＩ訂正回路１１０は、フォーマット制御回路２０８で加工されたデータ（訂正前データ）に対し図５のＰＩ方向（１行１８２バイト）の１回目の訂正を、１行単位で行う回路である。
復号器１２０は、ＰＯ演算回路１２１とＰＩ演算回路１２２及び誤り多項式演算回路１２３を含む。ＰＯ演算回路１２１はＰＩ訂正回路１１０で訂正したデータに対し、ＰＯ方向のシンドローム演算を行う回路である。ＰＩ演算回路１２２は、ＰＩ訂正回路１１０で訂正したデータに対し、ＰＩ方向のシンドローム演算を行い、演算結果に対しＰＯ訂正後のデータを使用して補正を行う回路である。誤り多項式演算回路１２３は、ＰＯ演算回路１２１及びＰＩ演算回路１２２で演算された結果から１ＥＣＣブロック内の誤り位置情報及び誤り訂正符号を生成する。
【００３０】
修復器１３０は、アドレスオフセットレジスタ１３１、ページサイズレジスタ１３２、アドレス生成回路（アドレス生成部）１３３、ページ境界検出回路（検出部）１３４、訂正アドレスバッファ１３５、訂正データバッファ１３６、及びＥＸＯＲ回路１３７を含む。
アドレスオフセットレジスタ１３１には、データバッファ２０９に格納されているこれから処理すべき訂正後データの先頭アドレスが格納されている。
ページサイズレジスタ１３２には、データバッファ２０９の１ページの大きさを示すデータが格納されている。
【００３１】
アドレス生成回路１３３は、アドレスオフセットレジスタ１３１のデータとページサイズレジスタ１３２のデータ及び誤り多項式演算回路１２３で生成した１ＥＣＣブロック内の誤り位置情報に基づき、これから訂正する訂正前データが格納されているデータバッファ２０９上のアドレスを生成する。訂正前データは、これから訂正するデータを意味し、一度訂正した訂正済みデータを再度訂正する場合のデータを含む。
【００３２】
ページ境界検出回路１３４は、１ページ（記憶領域の単位）に記憶する訂正前データの誤りを検出したタイミングを検出する。本実施形態では、ページ境界検出回路１３４は、データバッファ２０９の１ページに記憶する訂正前データの誤り検出が終了したタイミングを検出することになる。具体的には、ページ境界検出回路１３４は、アドレス生成回路１３３が生成したデータバッファ２０９上のアドレスが、ページの境界を越えたかどうかを検出する。これにより、ページ境界検出回路１３４は、データバッファ２０９の１ページに記憶する訂正前データについて、誤り訂正符号が訂正データバッファ１３６に記憶されたタイミングを検出することになる。
訂正アドレスバッファ１３５は、誤りを検出した訂正前データの位置を特定する、アドレス生成回路１３３が生成したデータバッファ２０９上のアドレスを誤り位置情報として格納する。訂正アドレスバッファ１３５は、少なくともデータバッファ２０９の２ページ分のアドレスの値を記憶する記憶領域を有する。
【００３３】
訂正データバッファ１３６は、訂正アドレスバッファ１３５に格納されているアドレスに対応する訂正前データについて、誤り訂正符号及び訂正後のデータを格納する。訂正データバッファ１３６は、少なくともデータバッファ２０９の２ページ分の記憶領域を有する。
ＥＸＯＲ回路１３７は訂正データバッファ１３６の値とデータバッファ２０９から読み出したデータを排他的論理和演算する。
【００３４】
また、バッファ制御回路２０７は、データバッファ２０９へのデータの書き込みや読み出しをコントロールする回路である。データバッファ（一時保存バッファ）２０９は、例えばＳＤＲＡＭで構成され、誤り訂正中のデータの一時的な記憶を行うものである。データバッファ２０９は、複数の記憶領域（ページ）に分割され、ページ単位にアクセスすることができる。
【００３５】
続いて、本発明の実施形態１の誤り訂正回路１００の動作について、図１及び図３を用いて説明する。
フォーマット制御回路２０８で加工したデータは、誤り訂正回路１００内のＰＩ訂正回路１１０に入力される。ＰＩ訂正回路１１０は、図５のＰＩ方向（１行１８２バイト）の１回目の訂正を、１行単位で行った後、訂正後のデータを、ＥＣＣコードを除いてＥＣＣブロック単位でバッファ制御回路２０７を経由してデータバッファ２０９に送る。また、ＥＣＣコードを含んだＰＩ訂正後のデータは、復号器１２０にも送られ、ＰＯ演算回路１２１とＰＩ演算回路１２２に入力される。
【００３６】
ＰＯ演算回路１２１は、入力されたＥＣＣブロックの各列について、図５に示すＰＯ方向（縦方向１９２行）のシンドローム演算を行い、１８２列分の演算結果を保存する。ＰＯ演算回路１２１は、１ＥＣＣ分のＰＯシンドローム演算が終了すると、演算後のデータを誤り多項式演算回路１２３に送る。誤り多項式演算回路１２３は、１ＥＣＣブロック内の誤り位置情報と誤り訂正符号を生成する。また、ＰＩ演算回路１２２は、入力されたＥＣＣブロックの各行について、図５に示すＰＩ方向（横方向１８２バイト）のシンドローム演算を行い、１９２行分の演算結果を２回目のＰＩ訂正処理のために保存しておく。誤り多項式演算回路１２３が生成した１ＥＣＣブロック内の誤り位置情報と誤り訂正符号はアドレス生成回路１３３に送られる。
【００３７】
アドレス生成回路１３３は、アドレスオフセットレジスタ１３１のデータとページサイズレジスタ１３２のデータ及び誤り多項式演算回路１２３で生成した１ＥＣＣブロック内の誤り位置情報に基づき、これから訂正する訂正前データが格納されているデータバッファ２０９上のアドレスを生成する。アドレス生成回路１３３は、生成したアドレスを訂正アドレスバッファ１３５に、誤り訂正符号を訂正データバッファ１３６に格納する。
【００３８】
ページ境界検回路１３４は、生成されたデータバッファ２０９上のアドレスが、ページの境界を越えたかどうかを検出する。ページの境界を越えたかどうかは、直前のデータバッファ２０９アドレスの上位７ビット（１６〜１０ビット目）の値から、生成したデータバッファ２０９のアドレスの上位７ビット（１６〜１０ビット目）を減算し、０でなければページ境界を越えたと判定する。ページ境界検回路１３４がページの境界を越えたことを検出したら、修復器１３０は、データバッファ２０９上に格納されているデータの書き換え作業を行う。
【００３９】
まず、修復器１３０は、訂正アドレスバッファ１３５に格納されているアドレスを読み出し、そのアドレスの指すデータバッファ２０９上のデータ（訂正前データ）をバッファ制御回路２０７を介して読み出す。読み出したデータと訂正データバッファ１３６上の誤り訂正符号をＥＸＯＲ回路１３７で排他的論理和演算し、演算した結果を訂正データバッファ１３６の同じ場所に書き戻す。次に、訂正アドレスバッファ１３５と訂正データバッファ１３６のポインタをインクリメントし、以降のデータについても同様にデータ書き換え作業を繰り返す。修復器１３０は、１ページ分のデータの処理を全て終了すると、訂正データバッファ１３６に格納されている訂正済みデータをデータバッファ２０９に書き戻す。
【００４０】
以上で１ページ分の処理を終えるが、修復器１３０は、さらに同様の処理を残り３２ページ分繰り返し、１ＥＣＣ分のＰＯ訂正処理を終了する。このＰＯ訂正処理中も、誤り多項式演算回路１２３から誤り位置情報と誤り訂正符号は連続して送られてくるが、修復器１３０は、送られてきた誤り位置情報と誤り訂正符号とを、訂正アドレスバッファ１３５と訂正データバッファ１３６上の連続した次の領域に順に格納する。必要な訂正アドレスバッファ１３５と訂正データバッファ１３６のサイズは、１ページ分のデータバッファ２０９の書き換え時間は、次の１ページ分のデータが送られてくる時間よりも短い為、最大２ページ分である。
【００４１】
ここで、訂正データバッファ１３６へ誤り訂正符号を格納する動作について具体的に説明する。例えば、データバッファ２０９における１ページ分の誤り訂正符号が訂正データバッファ１３６に格納された後、次のページの誤り訂正符号は、その時点で訂正バッファに格納されている誤り訂正符号に続けて格納される。例えば、１ページ目に６個エラーがあり、２ページ目に５個エラーがあったとすると、訂正バッファの０番地〜５番地に１ページ目の誤り訂正符号が格納され、２ページ目の誤り訂正符号は連続する６番地〜１０番地に格納される。なお、誤りアドレスバッファ１３５も同様にデータバッファ２０９のアドレスが格納される。
【００４２】
ＰＯ訂正済みのデータがデータバッファ２０９に書き戻される際に、訂正済みデータはＰＩ演算回路１２２にも送られる。ＰＩ演算回路１２２は、ＰＯ訂正済みデータに基づいて、ＰＩ演算回路１２２に保存されている演算結果を補正する。ＰＩ演算回路１２２は、すべて補正し終えると、補正したシンドローム演算結果を誤り多項式演算回路１２３に送る。誤り多項式演算回路１２３は、１ＥＣＣブロック内の誤り位置情報と誤り訂正符号を生成する。生成した誤り位置情報と誤り訂正符号はアドレス生成回路１３３に送られ、次に２度目のＰＩ訂正を開始する。
【００４３】
アドレス生成回路１３３は、アドレスオフセットレジスタ１３１のデータとページサイズレジスタ１３２のデータ及び誤り多項式演算回路１２３で生成した１ＥＣＣブロック内の誤り位置情報に基づき、これから訂正すべきデータが格納されているデータバッファ２０９上のアドレスを生成する。アドレス生成回路１３３は、生成したアドレスを訂正アドレスバッファ１３５の続き（連続した領域）に、誤り訂正符号を訂正データバッファ１３６の続きに格納する。
【００４４】
ページ境界検出回路１３４がページの境界を越えたことを検出したら、修復器１３０は、データバッファ２０９上に格納されているデータの書き換え作業を行う。訂正アドレスバッファ１３５に格納されているアドレスを読み出し、そのアドレスの指すデータバッファ２０９上のデータを読み出す。読み出したデータと訂正データバッファ１３６上の誤り訂正符号をＥＸＯＲ回路１３７で排他的論理和演算し、その結果を訂正データバッファ１３６の同じ場所に書き戻す。１ページ分のデータの処理を全て終了すると、修復器１３０は、訂正データバッファ１３６に格納されている訂正済みデータをデータバッファ２０９に書き戻す。
以上で１ページ分の処理を終えるが、さらに同様の処理を残り３２ページ分繰り返し、１ＥＣＣ分のＰＩ訂正処理を終了する。
【００４５】
次に、データの流れについて図２を用いて説明する。図２は、実施形態１の誤り訂正処理のタイミングチャートである。Ｔ０からＴ５は時刻を表す。フォーマット制御回路２０８からＰＩ訂正回路１１０に入力されたデータは、ＰＩ訂正後、ＰＯ演算回路１２１とＰＩ演算回路１２２及びバッファ制御回路２０７に送られる（５０１、５０２、５０３）。１ＥＣＣ分のデータの転送が終了するとＰＯ演算回路の演算結果は、誤り多項式演算回路１２３に入力される（５０４）。誤り多項式演算回路１２３で検出された誤り位置情報と誤り訂正符号は、アドレス生成回路１３３に入力される（５０５）。誤り位置情報は、アドレス生成回路１３３がデータバッファ上のアドレスに変換され、訂正アドレスバッファ１３５へ格納される。誤り訂正符号は、変換したアドレスと対応づけられるようにして訂正データバッファ１３６に格納される（５０６）。以降の説明、及び図２では訂正アドレスバッファ１３５及び訂正データバッファ１３６を、訂正アドレス／データバッファ１３５、１３６ともいう
【００４６】
１ページ分のデータバッファ上のアドレス、及び誤り訂正符号が訂正アドレス／データバッファ１３５、１３６に格納されると、格納されているデータバッファ上のアドレスと誤り訂正符号を読み出し、データバッファ書き換えバス（バッファ制御回路２０７）からデータバッファ２０９上のデータの書き換えを行う（５０７）。この時、書き換え後のデータはＰＩ演算回路１２２にも送られる（５０８）。ＰＩ演算回路１２２では書き換え後のデータを使用して演算結果の補正を行う。１ＥＣＣ分のＰＯの書き換え処理が終了すると、ＰＩ演算回路１２２は補正後の演算結果を、誤り多項式演算回路１２３に入力する（５０９）。誤り多項式演算回路１２３で検出された誤り位置情報と誤り訂正符号は、アドレス生成回路１３３に入力される。
【００４７】
アドレス生成回路１３３でデータバッファ２０９上のアドレスと誤り訂正符号が生成され、訂正アドレス／データバッファ１３５、１３６に格納される（５１０）。１ページ分のデータバッファ２０９上のアドレス、及び誤り訂正符号が訂正アドレス／データバッファ１３５、１３６に格納されると、修復器１３０は、格納されているデータバッファ２０９上のアドレスと誤り訂正符号を読み出し、データバッファ書き換えバス（バッファ制御回路２０７）からデータバッファ２０９上のデータの書き換えを行う（５１１）。１ＥＣＣ分のデータの書き換えが終了すると１ＥＣＣ分の訂正処理が終了する。
【００４８】
上記を繰り返し、全てのＥＣＣの処理が終了すると誤り訂正処理が終了する。ここで、最後のデータのＰＩ訂正処理が終了するのは、誤り多項式演算回路１２３から最後の誤り位置情報と誤り訂正符号が送られてから（５１２）、データバッファ２０９の書き換え処理を１ページ分処理し終えた時点となる（５１３）。
【００４９】
次に、図１及び図４を用いて、本実施形態で従来の問題点が解決されるメカニズムを説明する。従来例では誤り多項式演算回路３２０からの誤り訂正符号と誤り位置情報を、１ＥＣＣ分貯めてからデータバッファ２０９の書き換え処理を開始していた。この為、最後の誤り位置情報と誤り訂正符号が送られてから誤り訂正処理が終了するまで、３３ページ分の転送時間が必要であった。一方本実施形態では、ページ境界検出回路１３４を設け、ページの境界を越えたことを検出したら、データバッファ２０９上に格納されているデータの書き換え作業を開始するようにした。これにより、最後のデータのＰＩ訂正処理が終了するのは、誤り多項式演算回路１２３から最後の誤り位置情報と誤り訂正符号が送られてから、１ページ分処理し終えた時点となる。すなわち、最後の誤り位置情報と誤り訂正符号が送られてから誤り訂正処理が終了するまでの時間が１／３３に短縮される。
【００５０】
また、従来例では誤り多項式演算回路３２０からの誤り訂正符号と誤り位置情報を、１ＥＣＣ分貯めていたので、バッファは３３個必要になっていた。かつ、ＰＯ演算回路１２１が訂正したデータを書き換えている間に次のデータが入力されるため、バッファがもう一組（３３個）必要になっていた。従って、トータル６６個（図４では、ＰＯ訂正用バッファ３０９−１〜３０９−３３及びＰＩ訂正用バッファ３１２−１〜３１２−３３）必要であった。尚、このバッファは、データバッファ２０９上の１ページに１個割り当てているので、６６ページ分に相当する。一方本実施形態では、ページ境界検出回路１３４を設け、ページの境界を越えたことを検出したら、データバッファ２０９上に格納されているデータの書き換え作業を開始するようにしたので、バッファは２ページ分の大きさ（容量）で構成できる。すなわち、必要な訂正用バッファの面積が２／６６になる。
さらに、従来例では、訂正済みデータを専用の訂正済みバッファ３１６を持っていた。一方本実施形態では、訂正済みデータを訂正データバッファ１３６の同じ場所に書き戻すようにしたので、専用の訂正済みバッファ３１６は必要なくなった。
【００５１】
このように、本実施形態の誤り訂正回路によれば、バッファの容量を削減することができる。これにより、誤り訂正回路に必要な装置の面積を小さく（抑制）することができる。また、誤り訂正処理を１ページ分実施するごとに訂正済みデータをデータバッファ２０９へ書き込むことにより、１ＥＣＣブロックの訂正済みデータをまとめて更新する場合に比べ、処理時間を削減することができる。
【００５２】
（実施形態２）
実施形態２では、ディスク装置でＨＤ  ＤＶＤ（High Definition DVD）のディスクを読み出す場合について説明する。システム構成図は実施形態１と同様である為、説明を省略する。
【００５３】
ＨＤ  ＤＶＤの場合、フォーマット制御回路２０８は記録媒体から読み出したデータ（訂正前データ）を３６４バイト×２０８行のデータに加工する。この３６４バイト×２０８行のデータはＥＣＣブロックと呼ばれ、ＨＤ  ＤＶＤの誤り訂正処理はこのＥＣＣブロック単位で行う。また、各行の１７３バイト目から１８２バイト目までのデータ及び３５５バイト目から３６４バイト目のデータをＰＩと呼び、ＥＣＣブロックの１９３行目から２０８行目までのデータをＰＯと呼ぶ。ＰＯとＰＩをあわせた各行の２０バイトと各ＥＣＣブロックの最後の１６行はＥＣＣコードと呼び、ＥＣＣコードを除いた３４４バイト×１９２行のデータが実際のデータとなる。
【００５４】
１ＥＣＣ分のデータをデータバッファ２０９上に格納するのに必要なページ数は、１ＥＣＣ分のデータを１ページのバイト数で割ればよい。ＥＣＣコードを除いたデータ長は、３４４バイト×１９２行であり、１ページの容量は５１２×２（１０２４）バイトであるため、式２のように６５ページである。
３４４バイト×１９２行／１０２４バイト＝６４．５ページ    ・・・（式２）
【００５５】
図４に示したＰＯ訂正用バッファ、ＰＩ訂正用バッファは、本実施形態ではそれぞれ６５個必要になるが、データバッファＳＤＲＡＭの転送を簡単にするために、データバッファ２０９上の１ページに１個割り当てることで、１ＥＣＣ分では各々６５個必要になる。実施形態１と同様の構成にすることで、必要とする訂正データバッファ１３６は２ページ分の容量が必要となる。
【００５６】
従来例と比較してＨＤ  ＤＶＤフォーマットに図１に示した誤り訂正回路１００を適用した場合は、誤り検出処理を終えてから誤り訂正処理が終了するまでの時間は１／６５に、必要なバッファも２／１３０とする事ができる。さらに、従来例では、訂正済みデータを専用の訂正済みバッファ３１６を持っていた。本発明では、訂正済みデータを訂正データバッファの同じ場所に書き戻すようにしたので、専用の訂正済みバッファ３１６は必要なくなる。
【００５７】
以上説明したように、本発明の好適な実施形態によれば、最後の誤り位置情報と誤り訂正符号が送られてから誤り訂正処理が終了するまでの時間が短縮される。例えば、１ＥＣＣブロックが３３ページの場合は、１／３３、すなわち、１／１ＥＣＣブロックのページ数に短縮されることになる。その為、より高速に誤り訂正を処理する事ができ、高速なディスク装置を実現できる。
また、本発明の好適な実施形態では２ページ分の訂正データバッファあるいは訂正アドレスバッファで構成できるため、より小さい誤り訂正回路を実現できる。その為、より小さいＬＳＩ（Large Scale Integration）を実現することができる。
【００５８】
さらに、本発明に係る好適な実施形態によれば、次の点が改善される。１ＥＣＣブロックの最後ページのデータのＰＩ訂正処理が終了するのは、誤り多項式演算回路から最後の誤り位置情報と誤り訂正符号が送られてから、データバッファ２０９の書き換え処理を１ＥＣＣブロックのページ数分（実施形態１では３３ページ分）処理し終えた時点となる。図４に示す従来のアドレス演算選別回路では、送られてきた誤り位置情報をデータバッファのアドレスに変換し、ページ単位に用意されているバッファに振り分けていた。このため、高速なデータ処理の妨げとなっていた。図１に示すアドレス生成回路１３３では、送られてきた誤り位置情報をデータバッファのアドレスに変換し、連続して訂正アドレスバッファに格納するようにした。これにより、高速なデータ処理が実現できる。
【００５９】
また、図４に示す従来の修復器３０７は、１ＥＣＣ分のデータ転送が終了してからデータバッファの書き換えを行っていた。図１に示す修復器１３０は、ページの境界を越えた時にデータバッファ２０９の書き換えを開始するようにした。これにより、誤り訂正処理全体の処理時間を短縮することができる。
さらに、従来の修復器は、データバッファから読み出して排他的論理和演算した後の訂正済みデータを訂正済みバッファに格納していた。図１に示す修復器１３０は、データバッファから読み出して排他的論理和演算した後の訂正済みデータを訂正データバッファ１３６に書き戻すようにした。これにより、訂正済みのデータを保存するバッファが必要なくなり、バッファ容量を削減できる。
【００６０】
また、従来の訂正用データバッファはシングルポートであり、訂正中に次の誤りデータを書き込む事はできなかった。図１に示す訂正データバッファ１３６は２ポートであり、訂正中も次の誤りデータを書き込むことができるようにした。これにより、訂正データバッファに誤り訂正符号と訂正済みデータとを並行して書き込むことができる。
従来の修復器３０７は、訂正用バッファを２組持っており、交互にデータを格納していた。図１に示す修復器１３０は、１つの訂正用バッファ（訂正アドレスバッファ１３５、訂正データバッファ１３６）に連続してデータを格納するようにした。このような構成にすることにより、高速なデータ転送を実現できる。
【図面の簡単な説明】
【００６１】
【図１】本発明に係る実施形態１の誤り訂正回路の構成の一例を示すブロック図である。
【図２】実施形態１の誤り訂正処理のタイミングチャートである。
【図３】ＤＶＤ／ＣＤディスク装置の全体構成の一例を示すブロック図である。
【図４】従来の誤り訂正回路の構成の一例を示したブロック図である。
【図５】ＤＶＤのＥＣＣブロックのデータフォーマットを示す図である。
【図６】従来の誤り訂正処理のタイミングチャートである。
【符号の説明】
【００６２】
１００、３００  誤り訂正回路
１１０、３０１  ＰＩ訂正回路
１２０、３０２  復号器（復号部）
１３０、３０７  修復器（修復部）
１２１、３０３  ＰＯ演算回路
１２２、３０４  ＰＩ演算回路
１２３、３２０  誤り多項式演算回路
１３１、３０８  アドレスオフセットレジスタ
１３２、３０６  ページサイズレジスタ
１３３  アドレス生成回路（アドレス生成部）
１３４  ページ境界検出回路（検出部）
１３５  訂正アドレスバッファ
１３６  訂正データバッファ
１３７、３１７  ＥＸＯＲ回路
２００  ＤＶＤ／ＣＤディスク装置（記録再生装置）
２０２  ＣＰＵ
２０３  ピックアップ
２０４  リード・ライトチャネル
２０６  ＨＯＳＴ  Ｉ／Ｆ
２０７  バッファ制御回路
２０８  フォーマット制御回路
２０９  データバッファ
３０５  誤りアドレス演算選別回路
３０９−１〜３０９−３３  ＰＯ訂正用バッファ
３１２−１〜３１２−３３  ＰＩ訂正用バッファ
３１５  バッファアクセス制御回路
３１６  訂正済みバッファ
【図１】
2008159198.tif 000003
【図２】
2008159198.tif 000004
【図３】
2008159198.tif 000005
【図４】
2008159198.tif 000006
【図５】
2008159198.tif 000007
【図６】
2008159198.tif 000008