JP4295758B2 - 誤り訂正装置、光ディスク制御装置、光ディスク読み取り装置ならびに誤り訂正方法 - Google Patents

誤り訂正装置、光ディスク制御装置、光ディスク読み取り装置ならびに誤り訂正方法 Download PDF

Info

Publication number
JP4295758B2
JP4295758B2 JP2005331536A JP2005331536A JP4295758B2 JP 4295758 B2 JP4295758 B2 JP 4295758B2 JP 2005331536 A JP2005331536 A JP 2005331536A JP 2005331536 A JP2005331536 A JP 2005331536A JP 4295758 B2 JP4295758 B2 JP 4295758B2
Authority
JP
Japan
Prior art keywords
error correction
data
unit
error
syndrome
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005331536A
Other languages
English (en)
Other versions
JP2006139911A (ja
Inventor
文男 中辻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2005331536A priority Critical patent/JP4295758B2/ja
Publication of JP2006139911A publication Critical patent/JP2006139911A/ja
Application granted granted Critical
Publication of JP4295758B2 publication Critical patent/JP4295758B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本発明は、符号化されたデータ中に発生する誤りの訂正に伴う処理を行う装置に関し、特に、2次元に構成されたブロック符号に対して高速に誤りを訂正する装置に関する。
磁気ディスクや光ディスクなどを記録媒体とするデータ記憶装置では、記録媒体上の傷や汚れによってデータの誤りが発生する。そのような誤りデータの回復を可能とするために、記録媒体上にデータを記録するときにはデータに誤り訂正のための符号(以下、「誤り訂正符号」又は「パリティデータ」という。)を付加し、再生時には誤り訂正符号を使って誤ったデータを検出し、それを正しいデータに訂正する処理が行われる。このような誤り訂正符号の付加や誤り訂正の処理(これら2つの処理を併せて、以下、「誤り訂正に伴う処理」という。)においては、その訂正能力を高めるために、誤り訂正符号の種類としてReed-Solomon符号が、また、データの構成方法として積符号が多くのシステムで採用されている。
図37は、積符号の例を示す。k1×k2バイトからなる情報データに対して、行方向(以下、「C1系列」ともいう。)にm1バイトのパリティデータが付加され、列方向(以下、「C2系列」ともいう。)にm2バイトのパリティデータが付加されている。これら情報データ、C1パリティデータ及びC2パリティデータ全体で誤り訂正の最大単位となる1ブロックを構成しており、そのバイト数はn1×n2バイトである。通常、情報データとパリティデータをDRAM等のメモリに格納する方法として、C1系列にメモリのアドレスが1ずつ増加するように格納していく。そのため、C1系列の符号列を形成するデータは連続したアドレスの記憶領域に格納されるが、C2系列の符号列を形成するデータは不連続なアドレスの記憶領域に格納される。なお、積符号を構成する個々の符号を単に「データ」とも呼ぶ。
図38は、C1符号列に対する誤り訂正の流れを示す図である。最初に第1行の符号列に対して誤り訂正する。次に第2行の符号列に対して誤り訂正する。これをn2行全てについて繰り返す。つまり、各行に属する全てのデータをスキャンして誤り訂正を行うことを列方向に1行ずつ進めていく。なお、「スキャン」とは誤り検出や訂正の対象となるデータを記憶領域から読み出すときの読み出し順序をいう。また、「誤り検出」には誤り訂正という処理は含まれないが、「誤り訂正」には、その前置処理としての誤り検出が含まれる。
図39は、C2符号列に対する誤り訂正の流れを示す図である。最初に第1列の符号列に対して誤り訂正する。次に第2列の符号列に対して誤り訂正する。これをn1列全てについて繰り返す。つまり、各列に属する全てのデータをスキャンして誤り訂正を行うことを行方向に1列ずつ進めていく。
図40は、上記流れに沿って誤り訂正を行う従来の誤り訂正装置の構成を示すブロック図である。ここで、d1からd100は100バイトの情報データであり、p1からp10は10バイトのパリティデータであり、これらが1つの符号列を構成するものとする。
これら情報データとパリティデータはメモリから読み出されて順次、シンドローム生成部900に入力される。シンドローム生成部900は、1つのデータが入力される度に一定の演算を行い、1つの符号列を構成する全ての情報データd1〜d100とパリティデータp1〜p10の入力が完了した時点で、10個のシンドロームを生成する。もし、それら10個のシンドローム中に非零が存在する場合には、その符号列に誤りが発生していることになるので、誤り位置・誤り数値演算部901は、それらシンドロームを用いて誤り位置と誤り数値を算出する。ここで、誤り位置とは符号列中の何番目のデータが誤っているかを表わす情報であり、誤り数値とはその誤りの大きさを表わす。最後に、誤りデータ更新部902は、それら誤り位置と誤り数値を用いることで、その符号列中の誤りデータをメモリから読み出し、その誤りを訂正した後に元の位置に書き戻す。このような処理を符号列ごとに繰り返す。
このように、従来の誤り訂正装置は、C1系列に対しては1行ずつスキャンして誤り訂正を進めていき、C2系列に対しては1列ずつスキャンして誤り訂正を進めていくことによって、1ブロック分の符号列全てに対する誤り訂正を行っている。
しかしながら、最近の光ディスクドライブ装置に代表されるデータ記憶装置の処理速度の高速化への要求はますます厳しくなってきており、従来の誤り訂正装置では、そのような要求に応えることが困難になってきている。
そのような厳しい要求を満たすために、1台のデータ記憶装置内に複数の誤り訂正装置を設けて並列化させることが考えられるが、それでは回路規模が大きくなり過ぎ、コストパフォーマンスが著しく低下してしまう。
そこで、本発明はかかる問題点に鑑み、比較的小さな回路規模で高速に誤り訂正に伴う処理を実行する誤り訂正装置を提供することを目的とする。
上記目的達成するために、本発明に係る誤り訂正装置は、ブロック符号を構成する入力データについて誤り訂正を行い、誤り訂正したデータを出力する誤り訂正装置であって、 入力手段から受け取った前記入力データを記憶するメモリと、前記メモリから受け取ったデータに基づいてブロック符号の行方向の誤り訂正を行う誤り訂正部とを備え、前記行方向の誤り訂正は、前記メモリから、第s行(sは自然数)から第(s+t)行(tは自然数)までの行について順に、第1列から第n列(nは2以上の自然数)までのn列分の連続するデータを読み出した後、第s行から第(s+t)行までの行について順に、第(n+1)列から第(2n)列までのn列分の連続するデータを読み出し、それぞれの行を単位として誤り訂正を行うことを特徴とする。
また、自然数nが2のm乗(mは自然数)で表されることとしている。
また、自然数nが2、4、又は8であることとしている。
また、前記ブロック符号が、光ディスクに記録されていることとしている。
また、前記n列分のデータを読み出し転送する際には、DMAモードで転送されることとしている。
また、前記誤り訂正部が、シンドローム計算を行うシンドローム生成部を更に備えることとしている。
また、前記誤り訂正部はt個のシンドローム生成部を備えており、前記t個のシンドローム生成部は、n行分のデータをそれぞれ1行分ずつ受け取ってシンドローム計算を行うこととしている。
また、前記シンドローム生成部で行われるシンドローム計算は、t行分のシンドローム計算を時分割で行うこととしている。
また、前記シンドローム生成部で行われるシンドローム計算は、それぞれのデータにおいて1回の積和演算によることを特徴とすることとしている。
また、前記シンドローム生成部が、データを一時的に記憶するFIFOを備えていることを特徴とすることとしている。
また、前記誤り訂正部により誤り符号が存在すると検出された場合に、前記メモリの符号を訂正後の値に書き換える誤り符号更新部を更に備えることとしている。
また、本発明は、前記誤り訂正部と、光ディスクから受け取った信号を復調し、前記誤り訂正装置に出力するディスクインターフェース部と、前記誤り訂正部から受け取ったデータをホストコンピュータに出力するホストインターフェース部を備えることを特徴とする光ディスク制御装置としている。
また、本発明は、前記光ディスク制御装置と、光ディスクを回転させる回転モータと、前記光ディスクに記録されたデータを、レーザ光線を当てて反射光により読み取って電気信号に変換するピックアップと、前記ピックアップの出力信号を増幅する増幅器と、前記増幅器からの出力信号に応じてフィードバック信号を生成するとともに、信号を前記光ディスク制御装置に出力するフロントエンドプロセッサと、前記フロントエンドプロセッサからのフィードバック信号に応じて、前記回転モータの回転、及び前記ピックアップのレンズ位置を制御するサーボコントローラとを備えることを特徴とする光ディスク読み取り装置としている。
また、本発明は、ブロック符号を構成する入力データについて誤り訂正を行い、誤り訂正したデータを出力する誤り訂正方法であって、外部から入力された前記入力データをメモリに記憶させ、前記メモリからのデータに基づいて、ブロック符号のそれぞれの行を単位として行方向の誤り訂正を行い、前記メモリからデータを読み出す際は、第s行(sは自然数)から第(s+t)行(tは自然数)までの行について順に、第1列から第n列(nは2以上の自然数)までのn列分の連続するデータを読み出した後、第s行から第(s+t)行までの行について順に、第(n+1)列から第(2n)列までのn列分の連続するデータを読み出すことを特徴とする誤り訂正方法としている。
本発明に係る誤り訂正装置は、上述のような構成によって、比較的小さな回路規模で高速に誤り訂正に伴う処理を実行することができる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。
(第1の実施の形態)
第1の実施の形態は、行方向及び列方向のいずれかの4つの符号列に対して並列に誤り訂正を行う高速な誤り訂正装置に関する。
図1は、本発明の第1の実施の形態における誤り訂正装置100の構成を示すブロック図である。本装置100は、光ディスクドライブ装置等に備えられ、光ディスクから読み出されたデータの誤りを訂正する装置であり、バッファメモリ1と、そのバッファメモリ1にアクセスする3つの処理ブロック(ディスクインターフェース部12、誤り訂正部5及びホストインターフェース部13)と、それらアクセスの排他制御を行うバスコントロール部2とから構成される。なお、図中の矢印は誤り訂正の対象となるデータの流れを示す。また、本装置100は、誤り訂正符号の種類としてはReed-Solomon符号を、符号の構成としては積符号を採用している。
バッファメモリ1は、2次元アドレス(行アドレスと列アドレス)によって特定される記憶領域を有するDRAM等の半導体メモリであり、誤り訂正の対象となる複数個のブロックを一時的に記憶する記憶容量を有する。
ディスクインターフェース部12は、光ディスク等の記録媒体から読み出されたデータを中継してバッファメモリ1に書き込むインターフェース回路である。
誤り訂正部5は、ディスクインターフェース部12からバッファメモリ1に書き込まれたデータを順次に読み出して誤りが発生していないか検出し、もし誤りが発見された場合にバッファメモリ1上の誤りを訂正する回路である。具体的には、誤り訂正部5は、4つの符号列に対して同時並列に誤り訂正を行う回路であり、データ分配部51、4つのシンドローム生成部52〜55、誤り位置・誤り数値演算部56及び誤りデータ更新部57から構成される。
データ分配部51は、バッファメモリ1から転送されてきたデータを4つのシンドローム生成部52〜55のいずれかに振り分ける。このとき、同一の符号列に属するデータが同一のシンドローム生成部に入力されるように振り分ける。4つのシンドローム生成部52〜55は、いずれも同一の回路であり、それぞれ、データが振り分けられて入力される度に積和演算を行い、10個のパリティデータが含まれた1つの符号列が完全に入力されたときに、10個のシンドロームを生成する。
誤り位置・誤り数値演算部56は、4つのシンドローム生成部52〜55それぞれについて順に、生成された10個のシンドローム中に非零が存在するか否かを判断し、存在する場合に、それらシンドロームを用いて誤り位置と誤り数値を算出する。具体的には、10個のシンドロームを基にしてユークリッド法等により誤り位置多項式と誤り数値多項式を特定するための各項の係数を算出した後に、その誤り位置多項式の根(誤り位置)をチェーン検索と呼ばれる方法等によって算出し、さらに、誤り数値多項式を用いて誤り数値を算出する。
誤りデータ更新部57は、誤り位置・誤り数値演算部56によって算出された誤り位置に基づいてバッファメモリ1中の誤りデータを読み出し、読み出した誤りデータと誤り位置・誤り数値演算部56によって算出された誤り数値との排他的論理和を計算し、得られた値をバッファメモリ2110内の元の位置に書き戻す。なお、この誤り訂正部5においては、シンドロームの計算回路(シンドローム生成部52〜55)だけが並列化され、それに続く回路(誤り位置・誤り数値演算部56及び誤りデータ更新部57)については並列化されていないのは、シンドローム計算については、誤りの発生の有無に拘わらず1個のデータにつき10回の積和演算が必要とされるが、それ以降の計算処理については、1つの符号列で生成された10個のシンドロームに基づいて計算を行えば良いので、演算回数が少ないからである。
ホストインターフェース部13は、誤り訂正部5による処理が終わったデータをバッファメモリ1から読み出してコンピュータ等のホストに出力するインターフェース回路である。
バスコントロール部2は、バッファメモリ1と3つの処理ブロック12、5、13のいずれかとの間で8ビット幅のデータバスを介するデータ転送を行わせる制御回路であり、バッファメモリ1へのアクセスを排他制御するバス調停制御部22と、バッファメモリ1へのアクセスのためのアドレスを生成して出力するアドレス生成部21と、ディスクインターフェース部12、誤り訂正部5及びホストインターフェース部13のいずれかとバッファメモリ1とをバス接続しDMA(Direct Memory Access)によるデータ転送を行わせるDMAチャネル部23とを有する。
図2は、バスコントロール部2の詳細な構成を示すブロック図である。本図において、3つのDMAチャネル23a〜23cは図1に示されたDMAチャネル部を構成するDMAコントローラである。このバスコントロール部2はバッファメモリ1に対する3つのDMAを排他的に許可する機能を有する。つまり、バス調停制御部22は、ディスクインターフェース部12、誤り訂正部5及びホストインターフェース部13からバッファメモリ1にアクセスしたい旨の要求を受けると、予め定められた優先順位とスケジューリング手順に基づいて、それらのひとつだけを許可する。
具体的には、バス調停制御部22は、第1DMAチャネル23aをイネーブルにし、ディスクインターフェース部12に対してデータ転送を許可する制御信号を出力し、アドレス生成部21からバッファメモリ1に書き込みアドレスを生成させることによって、ディスクインターフェース部12からバッファメモリ1への「データ入力」、即ち、光ディスク等の記録媒体から読み出されたデータをディスクインターフェース部12を介してバッファメモリ1に格納するデータ転送を行わせる。同様に、バス調停制御部22は、第2DMAチャネル23bをイネーブルにし、誤り訂正部5に対してデータ転送を許可する制御信号を出力し、アドレス生成部21からバッファメモリ1に読み出し又は書き込みアドレスを生成させることによって、「誤り訂正のためのデータ転送」、即ち、バッファメモリ1に格納されたデータを誤り訂正部5に読み出したり、訂正後のデータを誤り訂正部5からバッファメモリ1に書き戻すデータ転送を行わせる。さらに、バス調停制御部22は、第3DMAチャネル23cをイネーブルにし、ホストインターフェース部13に対してデータ転送を許可する制御信号を出力し、アドレス生成部21からバッファメモリ1に読み出しアドレスを生成させることによって、バッファメモリ1からホストインターフェース部13への「データ出力」、即ち、誤り訂正のバッファメモリ1に格納されたデータをホストインターフェース部13を介してホスト等に出力するデータ転送を行わせる。
なお、アドレス生成部21は、これら3つのDMA転送においては、バッファメモリ1に対してページモードによる高速アクセスを行う。具体的には、ページヒットする限りは、バッファメモリ1への行アドレス(RAS)を固定して出力したまま、列アドレス(CAS)だけを必要なデータ個数だけインクリメントする。
図3は、データ分配部51の詳細な構成を示すブロック図である。データ分配部51は、バスコントロール部2から送られてくるデータを4つのシンドローム生成部52〜55のいずれかに通過させるセレクタ51aと、バスコントロール部2からの指示に基づいてセレクタ51aでの振り分けを制御する切替え制御部51bとから構成される。切替え制御部51bは、内部に有するカウンタロジック等により、セレクタ51aに入力されるデータに同期してセレクタ51aに制御信号を出力するが、行方向の誤り訂正の場合と列方向の誤り訂正の場合とでは、後述するように、異なる手順でセレクタ51aを制御する。
図4は、1個のシンドローム生成部52(53、54、55)の詳細な構成を示す回路図である。シンドローム生成部52は、入力されたデータを最大8個まで一時的に記憶するFIFO(First-In First-Out)形式のキューバッファ62と、そのキューバッファ62の出力に並列接続された10種類のシンドローム演算部63〜65から構成される。各シンドローム演算部63〜65は、積和演算を繰り返す回路であり、1つの積和値を記憶するレジスタ68と、レジスタ68に格納された積和値を読み出して固有の係数を乗算するガロア体乗算器66と、その乗算結果と次に入力された1つの符号とを加算するガロア体加算器67とからなる。
キューバッファ62から最も古い1個のデータdが読み出されると、そのデータdは10個のシンドローム演算部63に並列に入力され、それぞれにおいて、1回の積和演算d+Sn×αnが実行され、その結果が新たなSnとしてレジスタ68に格納される。例えば、100バイトの情報データd1〜d100と10個のパリティデータp1〜p10とからなる符号列がシンドローム生成部52に順次に入力され入力キューバッファ62を経て10個のシンドローム演算部63〜65に並列に供給されていくとする。すると、第1シンドローム演算部63においては、最初に第1情報データd1が入力されるとそのd1はそのままレジスタ68に保持され、次に情報データd2が入力されると積和演算d2+d1×α0が行われ、その結果がレジスタ68に保持される。
このように1個の符号が入力されるごとに1回の積和演算が行われ、最後のパリティデータp10が入力し終わったときにレジスタ68に保持されたデータがS0シンドロームになる。これと並行して他のシンドローム演算部64〜65においても同様の演算が行われるので、最後のパリティデータp10がこれら10個のシンドローム演算部63〜65に入力された直後において、最終的にS0からS9までの10種類のシンドロームが同時に生成される。
次に、以上のように構成された誤り訂正装置100の動作について説明する。
図5は、本装置100における3つの主要な処理(データ入力、誤り訂正、データ出力)における処理対象となるデータを示すタイミングチャートである。つまり、図37に示された積符号を用いた符号列を複数ブロック連続して処理する場合における処理の流れが示されている。なお、図中の第nブロックは図37に示された1つの積符号のデータ全体に対応する。また、図中の「データ入力」、「誤り訂正」及び「データ出力」は、上述のバスコントロール部2による「データ入力」、「誤り訂正のためのデータ転送」及び「データ出力」に対応する。
まず第1サイクルにおいて第1ブロックについてのデータ入力が行われ、第2サイクルにおいて第2ブロックについてのデータ入力と第1ブロックについての誤り訂正とが並行に行われ、第3サイクルにおいて第3ブロックについてのデータ入力と第2ブロックについての誤り訂正と第1ブロックについてのデータ出力とが並列に行われる。第4サイクル以降においては、第3サイクルと同様に、新たなブロックのデータ入力と、直前に入力されたブロックについての誤り訂正と、誤り訂正が終了したブロックについてのデータ出力とが並行に行われる。
このように、バスコントロール部2は、各ブロックのデータに対して3つの処理がパイプライン的に施されるように、3種類のデータ転送(ディスクインターフェース部12からバッファメモリ1へのデータ転送、バッファメモリ1と誤り訂正部5間のデータ転送、バッファメモリ1からホストインターフェース部13へのデータ転送)を制御する。つまり、3種類のデータ転送はいずれもバッファメモリ1を転送先又は転送元とするが、バッファメモリ1は1つの入出力ポートしか持っていないので、バスコントロール部2は、これら3種類のデータ転送において優先順位を設けることで、瞬時においてはいずれかのデータ転送だけを許可し、それら3種類のデータ転送を時分割で切り替えていくことによって、見かけ上、3種類のデータ転送が並行に行われるよう制御している。
図6は、C1系列の誤り訂正を行う場合におけるバッファメモリ1内の積符号の読み出し順序を示す図である。バス調停制御部22は、第2DMAチャネル23bをイネーブルにし、C1系列の誤り訂正のためのデータを送る旨を誤り訂正部5に通知した後に、アドレス生成部21からバッファメモリ1に一定順序で読み出しアドレスを出力させることによって、以下のように、バッファメモリ1に格納されたデータを誤り訂正部5に転送させる。
つまり、バスコントロール部2は、まず、第1行の4バイト分のデータd1〜d4を連続してバッファメモリ1から読み出して誤り訂正部5に転送する。次に第2行の4バイト分のデータd5〜d8を連続して読み出して転送する。次に第3行の4バイト分のデータd9〜d12を連続して読み出して転送する。次に第4行の4バイト分のデータd13〜d16を連続して読み出して転送する。ここまで来てから再び第1行に戻り、同様にして4バイト分のデータd17〜d20を連続して読み取り転送する。以下同様の読み出しと転送を繰り返すことによって第1行から第4行までの全てのデータについての読み出しと転送を終了すると、今度は第5行から第8行までの4行分のデータに対して同様の処理を繰り返す。このようにして、4行分のデータを並列に読み出して転送する処理を1ブロックの全ての行について繰り返す。
なお、バスコントロール部2は、行方向に連続する4バイト分のデータの読み出しと転送については、時間的に不可分な処理として連続的に行われるようDMAモードで行う。つまり、この間は、他の処理(データ入力、データ出力)のためのバッファメモリ1へのアクセスを禁止している。これは、行方向に連続するデータは通常、バッファメモリ1の連続するアドレスに格納されているので、DRAMのページヒットによる高速アクセスを利用することができるからである。
図7は、図6に示された順序でバッファメモリ1からデータが転送されてきた場合における誤り訂正部5のデータ分配部51の動作を示す図である。切替え制御部51bは、バスコントロール部2からC1系列の誤り訂正を開始する旨の指示を受けると、セレクタ51aを制御することによって、バスコントロール部2から送られてくるデータを以下のように振り分けさせる。
つまり、データ分配部51は、最初に転送されてきた第1行に属する4バイト分のデータd1〜d4についてはシンドローム生成部52に入力されるように振り分け、次に転送されてきた第2行に属するデータd5〜d8についてはシンドローム生成部53に入力されるように振り分け、次に転送されてきた第3行に属するデータd9〜d12についてはシンドローム生成部54に入力されるように振り分け、次に転送されてきた第4行に属するデータd13〜d16についてはシンドローム生成部55に入力されるように振り分ける。同様にして、次に転送されてきた第1行に属するデータd17〜d20については再びシンドローム生成部52に入力させる。このように、データ分配部51は、C1系列の誤り訂正においては、バッファメモリ1からバスコントロール部2を経て4バイトをひとまとまりとして繰り返し送られてくるデータを、4バイトを単位として4つのシンドローム生成部52〜55それぞれに順に切り替えながら入力させる。
図8は、C1系列の誤り訂正におけるバッファメモリ1から誤り訂正部5へのデータ転送と4つのシンドローム生成部52〜55での積和演算のタイミングを示す図である。
連続したアドレスの4バイト分のデータd1〜d4、d5〜d8等がバッファメモリ1から読み出され誤り訂正部5に転送されるのにそれぞれ時間t1だけ必要とし、4バイトを単位とするデータ転送は時間t2の間隔で繰り返されるとする。なお、4バイトを単位とするデータ転送を終えてから次の4バイトを単位とするデータ転送を開始するまでに時間を要しているのは、これら4バイトはそれぞれ異なる行に属するので、新たな4バイトの読み出しに際しては毎回DRAMのページミスが生じている可能性があることを考慮したからである。つまり、4バイト中の第1バイトへのアクセス時にバスコントロール部2が新たな行アドレスをバッファメモリ1に出力しなければならないと仮定している。
4つのシンドローム生成部52〜55は、それぞれ第1行〜第4行のシンドローム計算を行うが、入力された4バイト分のデータに対して必要とされる4つの積和演算を4×t2の時間で行う。例えば、第1行のシンドローム計算を実行するシンドローム生成部52は、入力された4バイト分のデータd1〜d4についての積和演算を4×t2の時間内に行う。これは、シンドローム生成部52に着目すると、最初に入力される4バイトデータがd1〜d4で、次に入力される4バイトデータがd17〜d20であり、これらの時間間隔は4×t2であるので、この時間内に4バイト分の積和演算を終えればよいからである。そして、そのような演算速度が維持される限りは、各シンドローム生成部52〜55の前段に設けられたキューバッファ62に蓄積されるデータ量は、最大で4バイトであり、瞬時であっても4バイトを超えることはない。
このように、各シンドローム生成部52〜55は、1バイトあたりt2の時間で積和演算を終えればよいことになり、データ転送速度(4バイト/t2)に比べて1/4の速度でシンドローム計算を実行すればよいことがわかる。また、異なる複数の符号列に対して小刻みに(4バイト単位で)符号列を切り替えながら並列に処理を進めているので、1符号列ずつ処理する方法に比べて、1符号列あたりに要求されるシンドローム計算の速度は低くて済むと共にキューバッファのサイズも小さくて済む。このことは、逆に言えば、バッファメモリ1から誤り訂正部5への実質的なデータ転送速度(全体としての誤り訂正速度)を従来よりも高速化させることができること、及び、単に誤り訂正回路を複数個設けた場合に比べ、より小さな回路規模で4並列の誤り訂正を行うことができることを意味する。
なお、同一の符号列において連続して読み出すデータ数を増やすことによって、DRAMのページヒットによるデータ転送の高速化を図ることが可能となる。このときには、誤り訂正の並列度を増やすことが望ましい。誤り訂正の並列処理の並列度を増やすにしたがってメモリアドレスの連続転送バイト数を増やしていくことにより、1符号列あたりの処理負荷に対する回路規模は軽減され、効率的な誤り訂正の並列化が実現されるからである。
次にC2系列の誤り訂正を行う場合の本装置100の動作について図9〜図11を用いて説明する。
図9は、C2系列の誤り訂正を行う場合におけるバッファメモリ1内の積符号の読み出し順序を示す図である。バス調停制御部22は、第2DMAチャネル23bをイネーブルにし、C2系列の誤り訂正のためのデータを送る旨を誤り訂正部5に通知した後に、アドレス生成部21からバッファメモリ1に一定順序で読み出しアドレスを出力させることによって、以下のように、バッファメモリ1に格納されたデータを誤り訂正部5に転送させる。
つまり、バスコントロール部2は、まず、第1行の4バイト分のデータd1〜d4を連続してバッファメモリ1から読み出して誤り訂正部5に転送する。次に第2行の4バイト分のデータd5〜d8を連続して読み出して転送する。以下、同様にして、各行について4バイト分のデータの読み出しと転送を第1列〜第4列の全てのデータについて繰り返す。これによって、C2系列の4符号列のデータ転送を終える。同様にして、今度は第5列〜第8列の全てのデータについて4バイト分のデータの読み出しと転送を繰り返す。このようにして、4列分のデータを並列に読み出して転送する処理を1ブロックの全ての列について繰り返す。
なお、バスコントロール部2は、C1系列のデータ転送の場合と同様に、行方向に連続する4バイト分のデータの読み出しと転送については、時間的に不可分な処理として連続的に行われるようDMAモードで行う。つまり、この間は、他の処理(データ入力、データ出力)のためのバッファメモリ1へのアクセスを禁止することにより、DRAMのページヒットによる高速アクセスを利用している。
図10は、図9に示された順序でバッファメモリ1からデータが転送されてきた場合における誤り訂正部5のデータ分配部51の動作を示す図である。切替え制御部51bは、バスコントロール部2からC2系列の誤り訂正を開始する旨の指示を受けると、セレクタ51aを制御することによって、バスコントロール部2から送られてくるデータを以下のように振り分けさせる。
つまり、データ分配部51は、最初に転送されてきた第1行に属する4バイト分のデータd1〜d4については各データが順に4つのシンドローム生成部52〜55に入力されるように振り分ける。具体的には、データd1をシンドローム生成部52に送り、データd2をシンドローム生成部53に送り、データd3をシンドローム生成部54に送り、データd4をシンドローム生成部55に送る。次に転送されてきた第2行に属するデータd5〜d8についても同様に、各データが順に4つのシンドローム生成部52〜55に入力されるように振り分ける。このようにして、データ分配部51は、C2系列の誤り訂正においては、4バイトをひとまとまりとして繰り返し送られてくるデータを各バイトごとに4つのシンドローム生成部52〜55に振り分ける処理を繰り返す。
これによって、第1列に属するデータd1、d5、・・はシンドローム生成部52に入力され、第2列に属するデータd2、d6、・・はシンドローム生成部53に入力され、第3列に属するデータd3、d7、・・はシンドローム生成部54に入力され、第4列に属するデータd4、d8、・・はシンドローム生成部55に入力される。同様に、第5列に属するデータはシンドローム生成部52に入力され、第6列に属するデータはシンドローム生成部53に入力され、第7列に属するデータはシンドローム生成部54に入力され、第8列に属するデータはシンドローム生成部55に入力される。
図11は、C2系列の誤り訂正におけるバッファメモリ1から誤り訂正部5へのデータ転送と4つのシンドローム生成部52〜55での積和演算のタイミングを示す図である。
連続したアドレスの4バイト分のデータd1〜d4、d5〜d8等がバッファメモリ1から読み出され誤り訂正部5に転送されるのにそれぞれ時間t1だけ必要とし、4バイトを単位とするデータ転送は時間t2の間隔で繰り返されることは、図8に示されるC1の場合と同じである。
4つのシンドローム生成部52〜55は、それぞれ第1列〜第4列のシンドローム計算を行うが、1バイトのデータにつき1つの積和演算をt2の時間で行う。例えば、第1行のシンドローム計算を実行するシンドローム生成部52は、最初に入力された1バイトのデータd1についての積和演算をt2の時間内に行い、次に入力された1バイトのデータd5についての積和演算をt2の時間内に行う。これは、シンドローム生成部52に着目すると、時間t2に1バイトのデータが入力されることになるからである。そして、そのような演算速度が維持される限りは、各シンドローム生成部52〜55の前段に設けられたキューバッファ62に蓄積されるデータ量は、最大で1バイトであり、瞬時であっても1バイトを超えることはない。
このように、各シンドローム生成部52〜55は、1バイトあたりt2の時間で積和演算を終えればよいことになり、C1系列の誤り訂正の場合と同様の処理速度で済むことがわかる。また、このC2系列の誤り訂正においては、個々のシンドローム生成部52〜55へのデータ入力は、バースト的に行われるC1系列の場合と異なり、均一的に行われる(常に1バイト/t2の速度で入力される)ので、個々のシンドローム生成部52〜55の前段にキューバッファを設ける必要はなくなる。
以上説明したように、第1の実施の形態によれば、誤り訂正部5における並列処理の並列度と、バッファメモリ1から連続するアドレスのデータ(積符号における同一行の連続するデータ)を読み出して誤り訂正部5に転送する際のデータ数とを同じ数にしているので、C1系列とC2系列の両方向の誤り訂正について、バッファメモリ1からの読み出し速度と個々のシンドローム生成部での積和演算速度との関係が同一になり、そして、個々のシンドローム生成部の前段に必要とされるキューバッファのサイズは小さくて済む。これによって、C1系列とC2系列の両方向の誤り訂正に関して、シンドローム生成部の能力をフルに発揮させるためのバスコントロール部2による制御手順も共通化され、小さい回路規模で高速に誤り訂正を行うことができる誤り訂正装置が実現される。
つまり、C1系列の誤り訂正とC2系列の誤り訂正とをバランス良く実施することができ、誤り訂正装置に必要とされる回路の冗長度は削減される。
なお、図6及び図9に示された読み出し順序は行方向の符号列のバイト数が4の倍数であることを前提としたが、そうでない場合であっても、本装置100は正しく誤り訂正を行うことができる。例えば、行方向の符号列がそのバイト数を4で割ったときの余りが2となるような長さである場合には、バッファメモリ1内の積符号の読み出し順序を以下のように変更すればよい。
図12は、行方向の符号列がそのバイト数を4で割ったときの余りが2となるような長さである場合において、C1系列の誤り訂正を行うときのバッファメモリ1内の積符号の読み出し順序を示す図である。バスコントロール部2は、4行分の符号列に対して、各符号列の最後部の2バイトを除く部分については先頭から順に連続する4バイトの読み出しと転送を繰り返し、最後部の2バイトについては各符号列につき2バイトの読み出しと転送を行う。これに伴って、データ分配部51も同様の動作、即ち、バッファメモリ1から4バイトをひとまとまりとして繰り返し送られてきたデータについては4バイトを単位として4つのシンドローム生成部52〜55それぞれに振り分け、2バイトをひとまとまりとして送られてきたデータについては2バイトを単位として4つのシンドローム生成部52〜55それぞれに振り分ければよい。
同様に、図13は、行方向の符号列がそのバイト数を4で割ったときの余りが2となるような長さである場合において、C2系列の誤り訂正を行うときのバッファメモリ1内の積符号の読み出し順序を示す図である。バスコントロール部2は、最後部の2列を除く符号列に対しては最初から4列ごとに4バイトのデータの読み出しと転送を繰り返し、最後部の2列の符号列に対しては2バイトの読み出しと転送を繰り返す。これに伴って、データ分配部51も同様の動作、即ち、バッファメモリ1から4バイトをひとまとまりとして繰り返し送られてきたデータについては4バイトを単位として4つのシンドローム生成部52〜55それぞれに振り分け、2バイトをひとまとまりとして繰り返し送られてきたデータについては2バイトを単位として4つのシンドローム生成部52〜55それぞれに振り分ければよい。
このようなバスコントロール部2による読み出し順序の変更やデータ分配部51による振り分け順序の変更は、具体的には、バスコントロール部2でのバス調停制御部22による制御手順やデータ分配部51での切替え制御部51bによる制御手順を変更することによって容易に実現することが可能である。
また、第1の実施の形態は4つの符号列に対するシンドローム計算を並列に実行する誤り訂正装置であったが、本発明は、このような並列度に限定されるものではなく、例えば、2並列や8並列の誤り訂正装置であってもよい。つまり、第1の実施の形態では、誤り訂正部5は4個のシンドローム生成部52を有したが、必要に応じて2個としたり8個とすればよい。
図14、図15及び図16は、2並列で誤り訂正を行う誤り訂正装置におけるC1系列の誤り訂正の動作を説明する図であり、それぞれ、バッファメモリからのデータの読み出し順序、その順序でデータが入力されたときの誤り訂正部におけるのデータ分配部の動作、その場合におけるデータ転送とシンドローム計算のタイミングを示す。
同様に、図17、図18及び図19は、2並列で誤り訂正を行う誤り訂正装置におけるC2系列の誤り訂正の動作を説明する図であり、それぞれ、バッファメモリからのデータの読み出し順序、その順序でデータが入力されたときの誤り訂正部におけるのデータ分配部の動作、その場合におけるデータ転送とシンドローム計算のタイミングを示す。
また、第1の実施の形態では、光ディスクなどの記録媒体に記録されたデータを読み取り、読み取ったデータ列から誤りを見つけ、訂正し、訂正後のデータをホストコンピュータに転送するというデータの流れについて説明を行ったが、本発明は、これとは逆に、ホストコンピュータからデータを出力し、そのデータに誤り訂正のためのパリティ符号を付加し、光ディスクなどの記録媒体に書き込む流れに適用することもできる。本発明は、記録媒体とホストコンピュータ間のデータパスの途中に設けられたバッファメモリに一時的に格納された積符号について、その積符号を構成する全ての符号列を効率的に読み出して第3の装置(記録媒体やホストコンピュータを除く処理装置)に転送することにより、第3の装置においてC1系列とC2系列の両方に対する符号処理を高速かつ小規模な回路で行うことを可能とする技術だからである。
具体的には、誤り訂正部5における4つのシンドローム生成部52〜55と誤り位置・誤り数値演算部56とをパリティデータ生成回路に置き換え、誤りデータ更新部57をパリティデータ書き込み回路に置き換える等の変更をすればよい。これによって、記録媒体へのデータの書き込み時における誤り訂正符号の付加と記録媒体からのデータの読み出し時における誤りデータの訂正という「誤り訂正に伴う処理」を高速に実行する誤り訂正装置が実現される。
また、第1の実施の形態では、バスコントロール部2は、バッファメモリ1から誤り訂正部5への4バイトのデータ転送をひとつのDMA転送で行い、このDMA転送と次のDMA転送の間についてはバッファメモリ1にアクセスする他のデータ転送を許可していたが、これを16バイト分のデータ転送をひとつのDMA転送で行うこととしてもよい。これによって、C1系列の誤り訂正においては、図6に示された16バイトのデータd1〜d16がひとつのDMA転送によってバッファメモリ1から誤り訂正部5に転送されることになり、この間においてはバッファメモリ1にアクセスする他のデータ転送による割り込みが禁止されるので、16バイトのデータ転送時間、即ち、4つのシンドローム生成部52〜55それぞれに4バイトずつデータが供給されるのに要する時間が概ね一定化され、誤り訂正部5へのデータ転送がボトルネックとなってシンドローム計算の処理速度が著しく低下している場合には、そのような事態が回避される。
また、第1の実施の形態では、誤り訂正装置100内部のデータバスは8ビット幅であったが、例えば、32ビット幅とすることもできる。このときには、4バイト分のデータは1回のメモリアクセスによってバッファメモリ1から読み出されて誤り訂正部5に転送される。そして、データ分配部51は、C1系列の誤り訂正時には、32ビット幅のデータを8ビットごとに桁分割し、それぞれを4つのシンドローム生成部52〜55に分配すればよい。
また、第1の実施の形態では、誤り訂正部5においては、シンドローム計算だけが並列化されていたが、それに続く誤り位置・誤り数値演算部56や誤りデータ更新部57についても並列化してもよい。これによって、もしシンドローム計算において大量のエラーが発生した場合等においても一定の訂正処理を確保することができる。

(第2の実施の形態)
第2の実施の形態は、誤り検出と誤り訂正とを分離し、誤り検出については、データがバッファメモリに格納されるときに並行して実行しておき、その結果を誤り訂正に反映させることで、誤りが発生していないデータについてはバッファメモリから誤り訂正部に転送されることを回避した高速な光ディスク読み取り装置に関する。
図20は、本発明の第2の実施の形態における光ディスク読み取り装置2000の構成を示すブロック図である。光ディスク読み取り装置2000は、光ディスク2010に記録されているデータを読み取り、読み取ったデータの誤りを訂正した後にホストコンピュータ2070に転送する装置であって、ピックアップ2020と、増幅器2030と、フロントエンドプロセッサ2040と、光ディスク制御部2100と、回転モータ2050と、サーボコントローラ2060と、システム制御部2080とから構成される。
システム制御部2080は、ホストコンピュータ2070からのデータ要求のコマンドを光ディスク制御部2100を介して受け付け、コマンドを解釈し、サーボコントローラ2060および光ディスク制御部2100を制御してデータ要求に応える機能を実現するマイクロプロセッサである。
回転モータ2050は、光ディスク2010を回転させるものであり、サーボコントローラ2060は、フロントエンドプロセッサ2040からの情報をもとにシステム制御部2080の指示を受けて回転モータ2050の回転およびピックアップ2020のレンズ位置を制御するものである。
光ディスク2010は、DVD−ROMであり、ピックアップ2020は、光ディスク2010に記録されたデータをレーザ光線を当てて反射光により読み取って電気信号に変換するものであり、増幅器2030は、ピックアップ2020の出力した信号を増幅してフロントエンドプロセッサ2040に出力する。
フロントエンドプロセッサ2040は、入力された信号に応じてサーボコントローラ2060と回転モータ2050およびピックアップ2020とでフィードバック制御をおこない、安定した信号を光ディスク制御部2100に出力するものであり、イコライザー、AGC(自動利得制御回路)、PLL(Phase Locked Loop)などを有する。なお、フロントエンドプロセッサ2040が光ディスク制御部2100に出力する信号は、変調されたデータである。
光ディスク制御部2100は、ホストコンピュータ2070からのデータ要求のコマンドをシステム制御部2080に通知し、システム制御部2080の制御の元で、フロントエンドプロセッサ2040から入力された信号を復調して必要なデータを取り出し、誤り訂正を施し、ホストコンピュータ2070へデータを出力する。
なお、図20では、太い矢印線は、光ディスク2010に記録されているデータがホストコンピュータ2070に到達するまでの流れを示している。すなわち、光ディスク2010に記録されているデータはピックアップ2020、増幅器2030、フロントエンドプロセッサ2040、光ディスク制御部2100を介してホストコンピュータ2070に到達する。また、光ディスク2010に記録されるデータの構成は、第1の実施の形態と同様に、図37に示される積符号が採用され、誤り訂正符号の種類としてはReed-Solomon符号が採用されている。
図21は、光ディスク制御部2100の詳細な構成を示すブロック図である。光ディスク制御部2100は、フロントエンドプロセッサ2040から送られてきた信号を復調し誤り訂正を行った後にホストコンピュータ2070に送り出す回路であり、バッファメモリ2110と、ディスクインターフェース部2120と、誤り訂正部2130と、ホストインターフェース部2140と、第1転送部2150と、第2転送部2160と、第3転送部2170と、バス制御部2180と、誤り検出部2190と、誤り符号列記憶部2200とを有する。なお、図21中の太い矢印線は、バッファメモリ2110へのDMA転送によるデータの書き込み、及び、バッファメモリ2110からのDMA転送によるデータの読み出しにおけるデータパスを示している。
バッファメモリ2110は、2次元アドレス(行アドレスと列アドレス)によって特定される記憶領域を有するDRAM等の半導体メモリであり、図37に示される積符号を複数個だけ一時的に記憶する記憶容量を有する。
ディスクインターフェース部2120は、フロントエンドプロセッサ2040から入力された信号を復調した後に、得られたデータをバッファメモリ2110に格納するために第1転送部2150に出力する。なお、ディスクインターフェース部2120から出力されたデータは第1転送部2150によってバッファメモリ2110に転送されると共に、そのデータは同時並行して誤り検出部2190にも入力される。
誤り検出部2190は、第1転送部2150によりディスクインターフェース部2120から送られてきたデータについてC1系列の符号列ごとに誤りがあるかないかを判定し、誤りを検出した場合には、その符号列の番号をRAMからなる誤り符号列記憶部2200に格納しておく。なお、この誤り検出部2190は、1列の符号列ごとに一定個数のシンドロームを算出し、それらシンドローム中に非零が存在するか判断し、存在する場合に誤りが発生していると判断する。具体的には、誤り検出部2190は、第1の実施の形態における誤り訂正部5が有する4つのシンドローム生成部52〜55のひとつ(図4に示される回路)と、生成されたシンドローム全てについて零であるか否かを判断する論理積ゲート等からなる。
誤り訂正部2130は、ディスクインターフェース部2120から転送されバッファメモリ2110に格納された積符号のうち、誤りが発生しているデータだけを対象としてC1系列及びC2系列の誤り訂正を行う。具体的には、誤り訂正部2130は、誤り符号列記憶部2200に格納された番号を参照することで、誤りの発生しているC1系列の符号列又は誤りの発生しているブロックのC2系列の符号列だけを対象としてバッファメモリ2110中の誤りデータを訂正する。
ホストインターフェース部2140は、誤り訂正部2130による処理が終わったデータを第3転送部2170によりバッファメモリ2110から読み出してホストコンピュータ2070に出力するインターフェース回路である。
第1転送部2150は、ディスクインターフェース部2120からの転送要求に対するバス制御部2180による許可通知を受けて、ディスクインターフェース部2120からバッファメモリ2110へのDMAによるデータ転送と同一データについての誤り検出部2190へのデータ転送とを同時並列に行うDMAコントローラである。
第2転送部2160は、誤り訂正部2130からの転送要求に対するバス制御部2180による許可通知を受けて、バッファメモリ2110から誤り訂正部2130へのDMAによるデータ転送を行うDMAコントローラである。
第3転送部2170は、ホストインターフェース部2140からの転送要求に対するバス制御部2180による許可通知を受けて、バッファメモリ2110からホストインターフェース部2140へのDMAによるデータ転送を行うDMAコントローラである。
バス制御部2180は、第1転送部2150と第2転送部2160と第3転送部2170それぞれによるDMA転送が排他的に実行されるよう予め定められた優先順位に基づいてそれら3つの転送部2150、2160、2170を制御したり、バッファメモリ2110中の誤りデータを書き換えるときの誤り訂正部2130によるバッファメモリ2110への通常の(非DMAによる)アクセスを制御する。
図22は、バス制御部2180の詳細な構成を示すブロック部である。バス制御部2180は、バッファメモリ1へのアクセスのためのアドレスを生成して出力するアドレス生成部2181と、第1転送部2150、第2転送部2160、第3転送部2170及び誤り訂正部2130のいずれかとバッファメモリ2110とをバス接続するバス切替部2183と、それら3つの転送部2150、2160、2170によるDMA転送及び誤り訂正部2130によるバッファメモリ2110へのアクセスが排他的に実行されるよう予め定められた優先順位に基づいてそれら3つの転送部2150、2160、2170及びバス切替部2183を制御するバス調停制御部2182とからなる。
なお、アドレス生成部21は、これら3つのDMA転送においては、バッファメモリ1に対してページモードによる高速アクセスを行う。具体的には、ページヒットする限りは、バッファメモリ1への行アドレス(RAS)を固定して出力したまま、列アドレス(CAS)だけを必要なデータ個数だけインクリメントしながら出力する。
図23は、バス調停制御部2182による3つの排他的なDMA転送、即ち、第1転送部2150によるディスクインターフェース部2120からバッファメモリ2110へのDMA転送(DMA#1)、第2転送部2160によるバッファメモリ2110から誤り訂正部2130へのMA転送(DMA#2)及び第3転送部2170によるバッファメモリ2110からホストインターフェース部2140へのDMA転送(DMA#3)のスケジューリング例を示すタイミングチャートである。本図において、横軸は時間の経過を示し、三角印は各DMA転送に対する要求の発生を示し、ハッチングされた四角形はDMA転送の実行中を示す。
バス調停制御部2182は、DMA#1を最も高い優先度で許可し、DMA#2を最も低い優先度で許可する。即ち、バス調停制御部2182は、いずれのDMA転送も実行中でない場合には、各DMAに対する要求の発生順序に拘わらず、DMA#1に対する要求が発生していればDMA#1を最優先して実行させ、DMA#1に対する要求が発生していなければ、DMA#3を実行させ、DMA#1に対する要求及びDMA#3に対する要求のいずれも発生していないときに限り、DMA#2を実行させる。但し、DMA#1に対する要求が連続して発生しても、他のDMA#2又はDMA#3に対する要求が発生しているときは、DMA#1を連続して実行させることなく、他のDMA#2又はDMA#3を実行させる。
なお、バッファメモリ2110中の誤りデータを書き換えるときの誤り訂正部2130によるバッファメモリ2110への通常のアクセスについては、バス調停制御部2182は、DMA#3と同等に扱う。つまり、DMA#1に対する要求及びDMA#3に対する要求のいずれも発生していないときに限り、誤り訂正部2130によるバッファメモリ2110への通常のアクセスを許可する。
図24は、誤り訂正部2130の詳細な構成を関連する他の構成要素と共に示す回路図である。誤り訂正部2130は、図37に示された積符号を構成するC1系列及びC2系列の符号列のうち予め誤りが検出されている符号列に対して1行又は1列の符号列ごとに誤り訂正を実行する回路であり、C1符号列転送要求部2135と、シンドローム計算部2131と、ユークリッド計算部2132と、チェーン計算部2133と、エラーデータ更新部2134とから構成される。
C1符号列転送要求部2135は、誤り符号列記憶部2200を参照することにより、誤り符号列記憶部2200に記憶された誤りを含むC1系列の符号列をバッファメモリ2110から読み出すよう第2転送部2160に要求する。
シンドローム計算部2131は、C1符号列転送要求部2135から要求のあった誤りを含むC1符号列をバッファメモリ2110からバス制御部2180、第2転送部2160を介して取得した後に、その符号列のシンドロームを計算する回路であり、その計算結果をユークリッド計算部2132に引き渡す。
なお、このシンドローム計算部2131は、1行又は1列の符号列ごとにシンドロームを算出する回路であり、第1の実施の形態における誤り訂正部5が有する4つのシンドローム生成部52〜55のひとつ(図4に示される回路)と同一である。つまり、いま、積符号の大きさをk1=k2=100バイト、m1=m2=10バイトとした場合には、シンドローム計算部2131は、入力データを一時的にバッファリングするキューバッファと、10個のシンドロームそれぞれを算出する10個の積和演算回路とからなり、それら積和演算回路それぞれは1つの積和値を記憶するレジスタと、そのレジスタに格納された積和値を読み出して固有の係数を乗算するガロア体乗算器と、その乗算結果と次に入力された1つのデータとを加算するガロア体加算器とからなる。
ユークリッド計算部2132は、シンドローム計算部2131から送られるシンドロームを基にしてユークリッド法等により誤り位置多項式と誤り数値多項式を特定するための各項の係数を算出する回路であり、算出した係数をチェーン計算部2133に引き渡す。
チェーン計算部2133は、ユークリッド計算部2132から通知された係数によって特定される誤り位置多項式の根をチェーン検索と呼ばれる方法等によって算出する回路であり、その算出結果をユークリッド計算部2132から通知された誤り数値多項式を特定する係数と共にエラーデータ更新部2134に引き渡す。
エラーデータ更新部2134は、チェーン計算部2133から通知された誤り位置と誤り数値多項式を用いて、その誤りの位置での誤り数値を求めた後に、バッファメモリ2110内のその誤り位置にあたる情報データまたはパリティデータをバス制御部2180を介して読み取り、それらの排他的論理和を計算し、得られた値をバッファメモリ2110内の元の位置に書き戻す。
なお、第2転送部2160によるバッファメモリ2110からシンドローム計算部2131へのデータ転送はDMA転送によるが、バッファメモリ2110とエラーデータ更新部2134間のデータ転送はバス制御部2180による通常の(非DMAによる)メモリアクセスによって行われる。これは、誤り訂正によって書き換える対象となるデータはバッファメモリ2110内の連続するアドレスに格納されたデータとは限らないからである。また、誤り訂正部2130を構成する4つの回路2131〜2134は、それぞれ同期して並列処理、すなわちパイプライン方式による逐次処理をおこなう。
図25は、複数ブロックのデータを連続して処理する場合における光ディスク制御部2100内での処理工程を示すタイミングチャートである。本図において第1ブロックから第5ブロックは、それぞれバッファメモリ2110に格納される1ブロックのデータである。また、「バッファリング」は第1転送部2150によるディスクインターフェース部2120からバッファメモリ2110へのデータ転送を示し、「誤り検出」は第1転送部2150によるディスクインターフェース部2120から誤り検出部2190へのデータ転送と誤り検出部2190での誤り検出を示し、「誤り訂正」は第2転送部2160によるバッファメモリ2110から誤り訂正部2130へのデータ転送と誤り訂正部2130での誤り訂正を示し、「ホスト転送」は第3転送部2170によるバッファメモリ2110からホストインターフェース部2140へのデータ転送を示す。
本図に示されるように、同一のブロックに対する並列したバッファリング及び誤り検出と、バッファリング及び誤り検出が終了したブロックに対する誤り訂正と、誤り訂正が終了したブロックに対するホスト転送とがパイプラインとして逐次かつ並列に実行される。例えば、サイクルT5に注目すると、第5ブロックがディスクインターフェース部からバッファメモリ2110に転送されて格納されると同時に誤り検出部2190において誤り検出が行われ、第4ブロックがバッファメモリ2110から誤り訂正部2130に転送されて誤り訂正が行われ、第3ブロックがバッファメモリ2110からホストインターフェース部2140に転送される。
なお、本図ではバッファメモリ2110にアクセスする3つのデータ転送が並列に行われているが、これはブロックという大きいサイズでのデータ転送の観点から表現されているからであり、ブロックを構成する個々のデータに着目した場合には(瞬時的には)、いずれかのデータ転送だけが実行されている。このような排他的なデータ転送及び上記パイプライン制御は、図23に示されるタイミングチャートのにように、バス制御部2180のバス調停制御部2182が一定の優先順位に基づいて3つの転送部2150、2160、2170によるデータ転送を小さい時間単位で切り替えながら許可することによって実現されている。
また、本図において、第3ブロックに対する誤り訂正が行われていないのは、これらブロックについては誤り検出の工程において全く誤りが発見されなかったからである。つまり、第3ブロックについては誤り検出部2190において全く誤りが検出されなかったので、その旨の通知を受けた誤り訂正部2130は、このブロックに対する誤り訂正についての一切の処理を行わない。つまり、誤り訂正部2130がその旨をバス制御部2180に通知することにより、第3ブロックに属する全ての符号列について第2転送部2160によるバッファメモリ2110から誤り訂正部2130へのデータ転送は行われない。
このように、同一ブロックに対するバッファリングと誤り検出が並列に行われ、その誤り検出において誤りが検出されなかった場合には、その旨が誤り訂正部2130に通知されるので、誤り訂正部2130は、誤り訂正の必要のないデータについてバッファメモリ2110から読み出すという無駄なデータ転送を回避することができる。つまり、従来であれば、光ディスクから読み出された全てのデータについてバッファメモリへの格納と、誤り検出・訂正のためのバッファメモリからの読み出しと、ホストコンピュータにデータを送出するためのバッファメモリからの読み出しという3つのデータ転送が行われていたが、この第2の実施の形態では、誤りが発生していないデータについては、バッファメモリへの格納とホストコンピュータへのデータ送出のためのバッファメモリからの読み出しという2つのデータ転送だけで済む。
図26は、図25に示されたタイミングチャートを詳細にした図であり、誤り検出と誤り訂正の2つの工程に関してC1系列及びC2系列の処理が区別して示されている。ここでは、誤り検出においては、C1系列についてだけ行われ、誤り訂正においては、先ずC1系列の誤り訂正が、続いてC2系列の誤り訂正がそれぞれ1回ずつ行われている。
具体的には、サイクルT1において、誤り検出部2190は、第1転送部2150によってディスクインターフェース部2120から送られてきた第1ブロックに対してC1系列の符号列に対する誤りの発生の有無を調べる。そして、もし誤りの発生を検出した場合には、誤り検出部2190は、誤りの発生している符号列の番号を誤り符号列記憶部2200に記録しておく。
ここで、誤り検出部2190がC1系列について誤り検出をしているのは、ディスクインターフェース部2120からバッファメモリ2110へのデータ転送は積符号を行方向にスキャンすることを第1行から第n2行まで繰り返す順序で行われるので、C1系列の誤り検出が容易となるからである。また、C2系列に誤り検出を行っていないのは、直前のC1系列に対する誤り訂正の結果、1つでも誤り訂正が不可能な符号列が存在すればC2系列の誤り訂正を実行するすることが必要になるため、あえてC2系列の誤り検出をする必要がないからである。
次にサイクルT2において、誤り訂正部2130は、まずC1系列の符号列をバッファメモリ2110から読み出して誤り訂正を行う。ただし、誤り訂正部2130は、誤り符号列記憶部2200に格納されている番号を参照することにより、誤りが検出されたC1系列の符号列だけをバッファメモリ2110から読み出して誤り訂正する。そして、誤りが検出された全てのC1系列の符号列についての誤り訂正を終えると、そのC1系列に1つでも誤り訂正が不可能な符号列が存在した場合には、次にそのブロックを構成する全てのC2系列の符号列を順次にバッファメモリ2110から読み出して誤り訂正を実行する。なお、C2系列に関してはブロックを構成する全ての符号列に対して誤り訂正を行っているが、これは、誤り検出部2190がC1系列についてだけ誤り検出をしているので、C2系列の符号列ごとの誤りの有無が不明だからである。
図27は、C1系列の誤り訂正を行う場合における誤り訂正部2130内での行単位の処理工程を示すタイミングチャートである。ここでは、誤り検出部2190によって第1行、第4行、第6行及び第11行の符号列に誤りが検出された場合におけるシンドローム計算部2131、ユークリッド計算部2132、チェーン計算部2133及びエラーデータ更新部2134による並列処理の様子が示されている。
第2行、第3行、第5行、第8〜10行の符号列については、誤り検出部2190において誤りが検出されなかったので、バッファメモリ2110からシンドローム計算部2131への読み出しが行われず、従って、シンドローム計算、ユークリッド計算、チェーン計算及びエラーデータ更新の対象とはなっていない。
図28は、図27に示された符号列を訂正する場合におけるバッファメモリ2110に格納された積符号の各データへのアクセス順序を示す図である。ここには、先ず第1行の符号列に対する誤り訂正を実行し、次に第2行、第3行をとばして第4行の符号列に対する誤り訂正を実行し、次に第5行をとばして第6行の符号列に対する誤り訂正を実行し、次に第7行の符号列に対すると誤り訂正を実行する流れが示されている。図38に示された行ごとのスキャンと異なる点は、誤りが検出されている行だけに対してスキャンされていることである。
以上のように、この第2の実施の形態では、誤り訂正部2130は、C1系列の誤り訂正については、誤り符号列記憶部2200を参照することによって、誤りが検出されている符号列、即ち、誤り訂正が必要とされる符号列だけをバッファメモリ2110から読み出して誤り訂正し、そうでない符号列については無駄にバッファメモリ2110から読み出すことを回避している。
これによって、誤りが検出されなかったC1系列の符号列については、光ディスクから読み出された全てのデータについてバッファメモリへの格納と、誤り検出・訂正のためのバッファメモリからの読み出しと、ホストコンピュータにデータを送出するためのバッファメモリからの読み出しという3つのデータ転送を行なうことなく、バッファメモリへの格納とホストコンピュータへのデータ送出のためのバッファメモリからの読み出しという2つのデータ転送だけで済む。つまり、バッファメモリ2110へのアクセス回数が削減され、これによって光ディスク制御部2100全体としての処理速度が向上される共に消費電力の低減化が図られ、より高速で低消費電力の光ディスク読み取り装置2000が実現される。
なお、この第2の実施の形態では、図28に示されるように誤り訂正部2130は1行又は1列の符号列ごとに誤り訂正を繰り返したが、第1の実施の形態のごとく、4行や4列等の複数の符号列ごとに並列に誤り訂正を進めてもよい。
図29は、図27に示されたC1系列の誤り訂正を4符号列並行して処理する場合のディスクインターフェース部2120からのデータの読み出し順序を示す。この読み出し順序は、第1の実施の形態における図6に示された順序と基本的な流れが同じであるが、この図29では、誤りが検出された行(第1行、第4行、第6行、第7行、・・)だけを対象として4行の符号列ごとに並列に読み出される点で図6に示されたものと異なる。また、符号列の長さが4で割り切れない場合には、図30に示されるように、最初は誤りが検出された4列の符号列(第1行、第4行、第6行、第7行)それぞれについて4バイト転送を繰り返し、最後にその4列の符号列それぞれについて2バイト転送をすればよい。
このように、この第2の実施の形態における誤り訂正部2130を4つの符号列に対して並列に誤り訂正を実行するよう変形するには、第1の実施の形態における誤り訂正部5のように、誤り訂正部2130に4つのシンドローム計算部と、バッファメモリ2110から送られてくるデータを4つのシンドローム計算部に分配するデータ分配部を設ければよい。これによって、第1の実施の形態における並列化による誤り訂正の高速化と、第2の実施の形態における誤り検出の先行による誤り訂正の高速化の両方の効果を得ることができる。
また、第2の実施の形態では、C1符号列転送要求部2135は誤り訂正部2130内に設けられたが、誤り検出部2190内に設けたり、誤り検出部2190や誤り訂正部2130とは独立の回路として構成してもよい。
また、誤り検出部2190は誤りが検出された符号列の番号だけを通知したが、その検出によって得られたシンドロームも併せて通知することとしてもよい。そして、誤り訂正部2130は誤りが検出された符号列に対して、誤り検出部2190からシンドロームを受け取り、ユークリッド計算とチェーン計算を行ってもよい。これによって、誤り検出部2190と誤り訂正部2130それぞれにおける重複したシンドローム計算を回避することができる。
同様に、誤り検出部2190において、誤り検出だけでなく、続くユークリッド計算やチェーン計算を行ってもよい。この場合には、誤り訂正部2130は誤りが検出された符号列に対して、誤り検出部2190から誤り位置と誤り数値を受け取り、バッファメモリ2110内の誤りデータを訂正すればよい。このように、C1系列の誤り訂正のためのシンドローム計算、ユークリッド計算及びチェーン計算については、処理時間が確保できる範囲において誤り検出部2190に実行させることで、それら計算がディスクインターフェース部2120からバッファメモリ2110へのデータ転送と同時に進行することとなり、誤り訂正部2130での誤り訂正に要する時間が短縮される。

(第3の実施の形態)
第3の実施の形態は、C1系列の誤り訂正については、データがバッファメモリに格納されるときに並行して実行しておくと共に、そのC1系列の誤り訂正において誤りが発生しているブロックだけに対してバッファメモリから読み出してC2系列の誤り訂正を実行することで、バッファメモリへのアクセス回数を削減した高速な光ディスク読み取り装置に関する。
図31は、本発明の第3の実施の形態における光ディスク読み取り装置3000の構成を示すブロック図である。この光ディスク読み取り装置3000は、光ディスク2010に記録されているデータを読み取り、読み取ったデータの誤りを訂正した後にホストコンピュータ2070に転送する装置であって、ピックアップ2020と、増幅器2030と、フロントエンドプロセッサ2040と、光ディスク制御部3100と、回転モータ2050と、サーボコントローラ2060と、システム制御部2080とから構成される。
なお、この光ディスク読み取り装置3000は、図20に示された第2の実施の形態における光ディスク読み取り装置2000と光ディスク制御部3100が異なるだけであるため、この他の構成要素については図20に示された符号と同一の符号を付け、その説明を省略する。
図32は、光ディスク制御部3100の詳細な構成を示すブロック図である。光ディスク制御部3100は、フロントエンドプロセッサ2040から送られてきた信号を復調し誤り訂正を行った後にホストコンピュータ2070に送り出す回路であり、バッファメモリ3110と、ディスクインターフェース部3120と、誤り訂正部3130と、ホストインターフェース部3140と、第1転送部3150と、第2転送部3160と、第3転送部3170と、バス制御部3180と、データ選択部3190とを有する。なお、図32中の太い矢印線は、バッファメモリ2110へのDMA転送によるデータの書き込み、及び、バッファメモリ2110からのDMA転送によるデータの読み出しにおけるデータパスを示している。
バッファメモリ3110は、2次元アドレス(行アドレスと列アドレス)によって特定される記憶領域を有するDRAM等の半導体メモリであり、図37に示される積符号を複数個だけ一時的に記憶する記憶容量を有する。
ディスクインターフェース部3120は、フロントエンドプロセッサ2040から入力された信号を復調した後に、得られたデータをバッファメモリ3110に格納するために第1転送部3150に出力する。ディスクインターフェース部3120から出力されたデータは第1転送部3150によってバッファメモリ3110に転送されるが、そのデータは同時並行してデータ選択部3190にも入力される。
データ選択部3190は、誤り訂正部3130による誤り訂正の対象となる符号列の転送元を選択するセレクタである。第1転送部3150によりディスクインターフェース部3120からバッファメモリ3110へのデータ転送が行われている場合には、そのデータは同時並行してデータ選択部3190にも送られてくるので、そのデータを選択して誤り訂正部3130に通過させる。一方、バッファメモリ3110から第2転送部3160によってC2系列の符号列が送られてきた場合には、そのデータを選択して誤り訂正部3130に通過させる。なお、データ選択部3190は、第1転送部3150及び第2転送部3160からの指示に基づいてこれらデータ転送元の一つを選択する。
誤り訂正部3130は、データ選択部3190から送られてくる2種類(C1系列及びC2系列)の符号列を区別しながら誤り訂正を行う。具体的には、誤り訂正部3130は、データ選択部3190が第1転送部3150からのデータ(C1系列の符号列)を選択して通過させている場合にはC1系列の誤り訂正を行い、一方、データ選択部3190が第2転送部3160からのデータ(C2系列の符号列)を選択して通過させている場合にはC2系列の誤り訂正を行う。
ホストインターフェース部3140は、誤り訂正部3130による処理が終わったデータを第3転送部3170によりバッファメモリ3110から読み出してホストコンピュータ2070に出力するインターフェース回路である。
第1転送部3150はディスクインターフェース部3120からバッファメモリ3110へのDMAによるデータ転送と同一データについてのデータ選択部3190へのデータ転送とを同時並列に行い、第2転送部3160はバッファメモリ3110から誤り訂正部3130へのDMAによるデータ転送を行い、さらに第3転送部3170はバッファメモリ3110からホストインターフェース部3140へのDMAによるデータ転送を行う。
バス制御部3180は、第1転送部3150と第2転送部3160と第3転送部3170それぞれによるDMA転送が排他的に実行されるよう予め定められた優先順位に基づいてそれら3つの転送部3150、3160、3170を制御したり、バッファメモリ3110中の誤りデータを書き換えるときの誤り訂正部3130によるバッファメモリ3110への通常の(非DMAによる)アクセスを制御する。なお、バス制御部3180の詳細な構成及びバス制御部3180によるバッファメモリ3110へのアクセスに対する排他制御は、それぞれ、第2の実施の形態における図22及び図23に示されたものと同じである。
図33は、誤り訂正部3130の詳細な構成を関連する他の構成要素と共に示すブロック図である。誤り訂正部3130は、1行分の符号列と1列分の符号列の2つを時分割で切り替えながら並行して誤り訂正を進めていく回路であり、シンドローム計算部3131と、ユークリッド計算部3132と、チェーン計算部3133と、エラーデータ更新部3134とで構成される。
シンドローム計算部3131は、データ選択部3190から送られてくる2種類の符号列を区別しながらそれぞれのシンドロームを計算する回路であり、2つの一時記憶メモリ(入力データシンドローム記憶部3135、バッファデータシンドローム記憶部3136)を有する。入力データシンドローム記憶部3135は1ブロックを構成する全てのC1系列の符号列に対するシンドロームを一時的に記憶する記憶容量を有するメモリであり、バッファデータシンドローム記憶部3136は1ブロックを構成する全てのC2系列の符号列に対するシンドロームを一時的に記憶する記憶容量を有するメモリである。
シンドローム計算部3131は、データ選択部3190が第1転送部3150からのデータ(C1符号列)を選択して通過させてきたときには、そのC1符号列に対してシンドローム計算を行い、得られたシンドロームを各符号列ごとに蓄積して入力データシンドローム記憶部3135に格納し、一方、データ選択部3190が第2転送部3160からのデータ(C2符号列)を選択して通過させてきたときには、そのC2符号列に対してシンドローム計算を行い、得られたシンドロームを各符号列ごとに蓄積してバッファデータシンドローム記憶部3136に格納する。
なお、このシンドローム計算部3131は、瞬時的には、1行又は1列の符号列ごとにシンドロームを算出する回路であり、第1の実施の形態における誤り訂正部5が有する4つのシンドローム生成部52〜55のひとつと同じ回路(図4に示される回路)を有する。つまり、いま、積符号の大きさをk1=k2=100バイト、m1=m2=10バイトとした場合には、シンドローム計算部3131は、入力データを一時的にバッファリングするキューバッファと、10個のシンドロームそれぞれを算出する10個の積和演算回路とからなり、それら積和演算回路それぞれは1つの積和値を記憶するレジスタと、そのレジスタに格納された積和値を読み出して固有の係数を乗算するガロア体乗算器と、その乗算結果と次に入力された1つのデータとを加算するガロア体加算器とからなる。
ユークリッド計算部3132は、シンドローム計算部3131の入力データシンドローム記憶部3135及びバッファデータシンドローム記憶部3136それぞれに格納されたシンドロームを順次読み出して誤り位置多項式と誤り数値多項式を特定するための各項の係数を算出する回路であり、算出した係数をチェーン計算部3133に引き渡す。
チェーン計算部3133は、ユークリッド計算部3132から通知された係数によって特定される誤り位置多項式の根をチェーン検索と呼ばれる方法等によって算出する回路であり、その算出結果をユークリッド計算部3132から通知された誤り数値多項式を特定する係数と共にエラーデータ更新部3134に引き渡す。
エラーデータ更新部3134は、チェーン計算部3133から通知された誤り位置と誤り数値多項式を用いて、その誤りの位置での誤り数値を求めた後に、バッファメモリ3110内のその誤り位置にあたる情報データまたはパリティデータをバス制御部3180を介して読み取り、それらの排他的論理和を計算し、得られた値をバッファメモリ3110内の元の位置に書き戻す。
なお、第2転送部3160によるバッファメモリ3110からシンドローム計算部3131へのデータ転送はDMA転送によるが、バッファメモリ3110とエラーデータ更新部3134間のデータ転送はバス制御部3180による通常の(非DMAによる)メモリアクセスによって行われる。また、誤り訂正部3130を構成する4つの回路3131〜3134は、それぞれ同期して並列処理、すなわちパイプライン方式による逐次処理をおこなう。
図34は、複数ブロックのデータを連続して処理する場合における光ディスク制御部3100内での処理工程を示すタイミングチャートである。本図において第1ブロックから第5ブロックは、それぞれバッファメモリ3110に格納される1ブロックのデータである。また、「バッファリング」は第1転送部3150によるディスクインターフェース部3120からバッファメモリ3110へのデータ転送を示し、「誤り訂正1」は第1転送部3150によるディスクインターフェース部3120からデータ選択部3190を経て誤り訂正部3130に入力されたC1系列の符号列に対する誤り訂正部3130での誤り訂正を示し、「誤り訂正2」は第2転送部3160によるバッファメモリ3110からデータ選択部3190を経て誤り訂正部3130に入力されたC2系列の符号列に対する誤り訂正部3130での誤り訂正を示し、「ホスト転送」は第3転送部3170によるバッファメモリ3110からホストインターフェース部3140へのデータ転送を示す。
本図に示されるように、同一のブロックに対する並列した「バッファリング」及び「誤り訂正1」と、「バッファリング」及び「誤り訂正1」が終了したブロックに対する「誤り訂正2」と、「誤り訂正2」が終了したブロックに対する「ホスト転送」とがパイプラインとして逐次かつ並列に実行される。例えば、サイクルT5に注目すると、第5ブロックがディスクインターフェース部からバッファメモリ3110に転送されて格納されると同時に誤り訂正部3130において「誤り訂正1」(C1系列の誤り訂正)が行われ、第4ブロックがバッファメモリ3110から誤り訂正部3130に転送されて「誤り訂正2」(C2系列の誤り訂正)が行われ、第3ブロックがバッファメモリ3110からホストインターフェース部3140に転送される。
なお、本図ではバッファメモリ3110にアクセスする3つのデータ転送が並列に行われているが、これはブロックという大きいサイズでのデータ転送の観点から表現されているからであり、ブロックを構成する個々のデータに着目した場合には(瞬時的には)、いずれかのデータ転送だけが実行されている。このような排他的なデータ転送及び上記パイプライン制御は、バス制御部3180が一定の優先順位に基づいて3つの転送部3150、3160、3170によるデータ転送を小さい時間単位で切り替えながら許可することによって実現されている。
また、本図において、第3ブロックに対する「誤り訂正2」(C2系列の誤り訂正)が行われていないのは、このブロックについては「誤り訂正1」(C1系列の誤り訂正)において全く誤りが発見されなかったからである。つまり、第3ブロックのC1系列の符号列については誤り訂正部3130のシンドローム計算部3131において全て零となるシンドロームが算出され入力データシンドローム記憶部3135に格納されたり、あるいはサイクルT3の誤り訂正1でC1系列のすべての符号列に対する誤り訂正が実行され誤りが存在しなくなった場合には、誤り訂正部3130は、シンドローム記憶部3135の内容を参照すること等により、第3ブロックについてはC2系列の誤り訂正を行う必要がないことを知り、このブロックのC2系列に対する誤り訂正についての一切の処理を行わない。つまり、誤り訂正部3130がその旨をバス制御部3180に通知することにより、第3ブロックのC2系列の全ての符号列について第2転送部3160によるバッファメモリ3110から誤り訂正部3130へのデータ転送は行われない。
このように、同一ブロックに対する「バッファリング」とC1系列の誤り訂正(「誤り訂正1」)を並列に行ない、誤り検出に関する情報を入力データシンドローム記憶部3135に格納しているので、もし、C1系列の符号列に全く誤りが発生していない場合には、誤り訂正部3130は入力データシンドローム記憶部3135を参照することによりそのことを知るので、C2系列の誤り訂正が必要とされないデータをバッファメモリ3110から読み出すという無駄なデータ転送を回避することができる。つまり、従来であれば、光ディスクから読み出された全てのデータについてバッファメモリへの格納と、誤り検出・訂正のためのバッファメモリからの読み出しと、ホストコンピュータにデータを送出するためのバッファメモリからの読み出しという3つのデータ転送が行われていたが、この第3の実施の形態では、誤りが発生していないデータについては、バッファメモリへの格納とホストコンピュータへのデータ送出のためのバッファメモリからの読み出しという2つのデータ転送だけで済む。
図35は、図34に示されたタイミングチャートを詳細にした図であり、「誤り訂正1」と「誤り訂正2」の2つの工程に関してC1系列及びC2系列の処理が区別して示されている。ここでは、「誤り訂正1」においては、C1系列についての誤り訂正だけが行われ、「誤り訂正2」においては、C2系列の誤り訂正だけが行われている。
具体的には、サイクルT1において、誤り訂正部3130は、第1転送部3150によってディスクインターフェース部3120から送られてきた第1ブロックに対してC1系列の符号列に対する誤り訂正を行う。このとき、シンドローム計算部3131は、C1系列の全ての符号列について得られたシンドロームを入力データシンドローム記憶部3135に格納している。
ここで、誤り訂正部3130がバッファンリングと並行してC1系列の誤り訂正(「誤り訂正1」)を行っているのは、ディスクインターフェース部3120からバッファメモリ3110へのデータ転送は積符号を行方向にスキャンすることを第1行から第n2行まで繰り返す順序で行われるので、C1系列の誤り訂正が容易となるからである。
次にサイクルT2において、誤り訂正部3130は、第2ブロックに対するC1系列の誤り訂正と第1ブロックに対するC2系列の誤り訂正とを並行して行う。具体的には、これら第2ブロックと第1ブロックのデータは時分割でデータ選択部3190から送られてくるので、誤り訂正部3130は、ディスクインターフェース部3120からデータ選択部3190を経て第2ブロックの符号列が入力されてきたときにはその符号列についてC1系列の誤り訂正を行い、一方、バッファメモリ3110からデータ選択部3190を経て第1ブロックの符号列が入力されてきたときにはその符号列についてC2系列の誤り訂正を行う。
なお、もし第1ブロックに対するC1系列の誤り訂正において全く誤りが検出されなかったり、すべての誤りが正しく訂正されてしまった場合には、第3ブロックや第4ブロックと同様に、第1ブロックに対するC2系列の誤り訂正は行わない。つまり、第1ブロックのC2系列の符号列が第2転送部3160によってバッファメモリ3110から誤り訂正部3130に転送されることはない。
図36は、誤り訂正部3130内での行方向及び列方向の符号列単位での処理工程を示すタイミングチャートである。本図は、図35に示されたタイミングチャートにおけるサイクルT2の先頭部分における「誤り訂正1」と「誤り訂正2」に相当し、誤り訂正部3130において第2ブロックのC1系列の誤り訂正(「誤り訂正1」)と第1ブロックのC2系列の誤り訂正(「誤り訂正2」)とが並行に進んでいる様子が示されている。
時間t1では、シンドローム計算部3131は、第2ブロック第1行の符号列に対するシンドローム計算と第1ブロック第1列の符号列に対するシンドローム計算を並列に行い、それぞれの結果を入力データシンドローム記憶部3135及びバッファデータシンドローム記憶部3136に格納する。なお、実際には、第2ブロック第1行の符号列と第1ブロック第2行の符号列とが時分割で切り替えながらデータ選択部3190から送られてくるので、シンドローム計算部3131は、瞬時的にはいずれかの符号列に対してだけシンドローム計算を行っている。
時間t2では、シンドローム計算部3131は、第2ブロック第2行の符号列に対するシンドローム計算と第1ブロック第2列の符号列に対するシンドローム計算を並列に行い、それぞれの結果を入力データシンドローム記憶部3135及びバッファデータシンドローム記憶部3136に格納する。
これと並行して、ユークリッド計算部3132は、まず入力データシンドローム記憶部3135に格納された第2ブロック第1行の符号列のシンドロームを読み出し、それを用いてユークリッド計算を行い、その結果をチェーン計算部3133に通知した後に、続いて第1ブロック第1列の符号列に対するユークリッド計算を行い、その結果をチェーン計算部3133に通知する。
さらに、この時間t2の後半においては、チェーン計算部3133は、ユークリッド計算部3132からの通知に基づいて第2ブロック第1行の符号列に対するチェーン計算を行い、その結果をエラーデータ更新部3134に通知する。
時間t3では、同様にして、シンドローム計算部3131は第2ブロック第3行の符号列に対するシンドローム計算と第1ブロック第3列の符号列に対するシンドローム計算とを並列に行ない、これと並行して、ユークリッド計算部3132は第2ブロック第2行の符号列に対するユークリッド計算を行った後に続いて第1ブロック第2列の符号列に対するユークリッド計算が行い、これと並行して、チェーン計算部3133は第1ブロック第1行の符号列に対するチェーン計算を行った後に続いて第2ブロック第2列の符号列に対するチェーン計算が行い、これと並行して、エラーデータ更新部3134は、第2ブロック第1行の符号列に対するエラーデータの更新(バッファメモリ3110内のエラーデータの書き換え)を行った後に続いて第1ブロック第1列の符号列に対するエラーデータの更新を行う。
以下、同様にして、各時間tnにおいて、1行の符号列と1列の符号列に対するシンドローム計算、ユークリッド計算、チェーン計算及びエラーデータ訂正が並列に実行される。なお、本図では、全ての行及び列の符号列についてユークリッド計算、チェーン計算及びエラーデータ訂正が行われているが、これは、これら符号列に対するシンドローム計算において誤りが検出されたからであり、もし、そうでなければ、その符号列に対するユークリッド計算、チェーン計算及びエラーデータ訂正は行われない。
以上説明したように、第3の実施の形態によれば、「バッファリング」(ディスクインターフェース部3120からバッファメモリ3110へのデータ転送)と同時に、同一データに対するC1系列の誤り訂正(「誤り訂正1」)を並列に行なっている。これによって、バッファメモリ3110に格納された後においては、C1系列の誤り訂正のためにバッファメモリ3110に格納されたデータを読み出すという工程が不要となる。
また、バッファリングと同時に行われる誤り訂正においては、1ブロック分のC1系列の誤り検出の結果(シンドローム)が入力データシンドローム記憶部3135に記録されるので、1つのブロックを構成する全てのC1系列の符号列について誤りが発生しなかった場合には、その記録を参照することにより、必要のないC2系列の誤り訂正のためにバッファメモリ3110からデータを読み出すという無駄なデータ転送を回避することができる。
このように、第3の実施の形態によって、C1系列の誤り訂正のためのバッファメモリ3110からの読み出しと、誤りの発生していないブロックのC2系列の誤り訂正のためのバッファメモリ3110からの読み出しとが不要となり、従来よりもバッファメモリ3110へのアクセス回数が削減され、これによってより高速で低消費電力の光ディスク読み取り装置2000が実現される。
なお、この第3の実施の形態では、誤り訂正部3130は1行又は1列の符号列ごとに誤り訂正を繰り返したが、第1の実施の形態のごとく、4行や4列等の複数の符号列ごとに並列に誤り訂正を進めてもよい。
例えば、この第3の実施の形態における誤り訂正部3130を4つの符号列に対して並列に誤り訂正を実行するよう変形するには、第1の実施の形態における誤り訂正部5のように、誤り訂正部3130に4つのシンドローム計算部と、バッファメモリ3110から送られてくるデータを4つのシンドローム計算部に分配するデータ分配部を設ければよい。これによって、第1の実施の形態における並列化による誤り訂正の高速化と、第3の実施の形態におけるC1系列の誤り訂正の先行による誤り訂正の高速化の両方の効果を得ることができる。
また、第3の実施の形態では、データ選択部3190とシンドローム計算部3131とによって、第1転送部3150及び第2転送部3160それぞれから送られてくる符号列に対する誤り検出を時分割で行ったが、これらの構成に代えて、第1転送部3150からの符号列に対する誤り検出だけを行うシンドローム計算回路と、第2転送部3160からの符号列に対する誤り検出だけを行うシンドローム計算回路の2つの独立したシンドローム計算回路を設けることにより、それら2つの符号列に対する誤り検出を同時並行に行ってもよい。
以上、本発明について第1〜第3の実施の形態に基づいて説明したが、本発明はこれら実施の形態に限定されるものではないことは言うまでもない。
例えば、第1〜第3の実施の形態では、1つのブロックに対する誤り訂正は、C1系列の誤り訂正とそれに続くC2系列の誤り訂正の1回ずつだけであったが、これらの誤り訂正に続けて、さらにC1系列の誤り訂正とそれに続くC2系列の誤り訂正を追加してもよい。これらの回数を増やすことによって訂正能力が向上されるので、発見された誤りデータの数や、他の処理との関連で許容される時間等を考慮し、各方向に対する誤り訂正の繰り返し回数と決定すればよい。
また、3つの実施の形態それぞれにおける異なる構成要素どうしを組み合わせることで、様々なバリエーションが実現される。例えば、図23に示された第2及び第3の実施の形態における3つのDMA転送に対するスケジューリングを第1の実施の形態に適用してもよい。
また、第1〜第3の実施の形態は、DVD−ROM等の光ディスクを記録媒体とするディスクドライブ装置であったが、本発明に係る誤り訂正装置はこのようなデータ記憶装置への適用に限定されるものではなく、例えば、ネットワーク通信における中継器等のように、中継すべきデータに対する誤り訂正を高速に行うことが要求される機器に適用できることは言うまでもない。
本発明に係る誤り訂正装置は、光ディスク等の読み出し装置やデータ通信における受信装置等で活用することができる。
本発明の第1の実施の形態における誤り訂正装置100の構成を示すブロック図である。 同装置100のバスコントロール部2の詳細な構成を示すブロック図である。 同装置100のデータ分配部51の詳細な構成を示すブロック図である。 同装置100の1個のシンドローム生成部52(53、54、55)の詳細な構成を示す回路図である。 同装置100における主要な処理(データ入力、誤り訂正、データ出力)のタイミングチャートである。 C1系列の誤り訂正を行う場合におけるバッファメモリ1内の積符号の読み出し順序を示す。 図6に示された順序でバッファメモリ1からデータが転送されてきた場合におけるデータ分配部51の動作を示す図である。 C1系列の誤り訂正におけるバッファメモリ1から誤り訂正部5へのデータ転送と4つのシンドローム生成部52〜55での積和演算のタイミングを示す。 C2系列の誤り訂正を行う場合におけるバッファメモリ1内の積符号の読み出し順序を示す図である。 図9に示された順序でバッファメモリ1からデータが転送されてきた場合におけるデータ分配部51の動作を示す。 C2系列の誤り訂正におけるバッファメモリ1から誤り訂正部5へのデータ転送と4つのシンドローム生成部52〜55での積和演算のタイミングを示す図である。 C1系列の端数部分に対する処理順序を示す。 C2系列の端数部分に対する処理順序を示す。 2並列でC1方向に誤り訂正を行う場合におけるバッファメモリからのデータの読み出し順序を示す。 2並列でC1方向に誤り訂正を行う場合におけるデータ分配部の動作を示す。 2並列でC1方向に誤り訂正を行う場合におけるデータ転送とシンドローム計算のタイミングを示す。 2並列でC2方向に誤り訂正を行う場合におけるバッファメモリからのデータの読み出し順序を示す。 2並列でC2方向に誤り訂正を行う場合におけるデータ分配部の動作を示す。 2並列でC2方向に誤り訂正を行う場合におけるデータ転送とシンドローム計算のタイミングを示す。 本発明の第2の実施の形態における光ディスク読み取り装置2000の構成を示すブロック図である。 同装置2000の光ディスク制御部2100の詳細な構成を示すブロック図である。 同装置2000のバス制御部2180の詳細な構成を示すブロック部である。 同装置2000のバス調停制御部2182による3つの排他的なDMA転送の制御例を示す。 同装置2000の誤り訂正部2130の詳細な構成を示す回路図である。 光ディスク制御部2100内での処理工程を示すタイミングチャートである。 図25に示されたタイミングチャートを詳細にした図である。 C1系列の誤り訂正を行う場合における誤り訂正部2130内での行単位の処理工程を示すタイミングチャートである。 図27に示された符号列を訂正する場合におけるバッファメモリ2110に格納された積符号へのアクセス順序を示す図である。 図27に示されたC1系列の誤り訂正を4符号列並行して処理する場合のディスクインターフェース部2120からのデータの読み出し順序を示す。 図27に示されたC1系列の端数部分に対する読み出し順序を示す。 本発明の第3の実施の形態における光ディスク読み取り装置3000の構成を示すブロック図である。 同装置3000の光ディスク制御部3100の詳細な構成を示すブロック図である。 同装置3000の誤り訂正部3130の詳細な構成を示すブロック図である。 複数ブロックのデータを連続して処理する場合における光ディスク制御部3100内での処理工程を示すタイミングチャートである。 図34に示されたタイミングチャートを詳細にした図である。 誤り訂正部3130内での行方向及び列方向の符号列単位での処理工程を示すタイミングチャートである。 積符号のデータ構造を示す。 C1系列の誤り訂正を行ごとに順次行う場合の処理順序を示す。 C2系列の誤り訂正を列ごとに順次行う場合の処理順序を示す。 従来の誤り訂正装置による誤り訂正の処理順序を示す。
符号の説明
1 バッファメモリ
2 バスコントロール部
5 誤り訂正部
12 ディスクインターフェース部
13 ホストインターフェース部
21 アドレス生成部
22 バス調停制御部
23 DMAチャネル部
23a〜23c DMAチャネル
51 データ分配部
51a セレクタ
51b 切替え制御部
52〜55 シンドローム生成部
56 誤り位置・誤り数値演算部
57 データ更新部
62 キューバッファ
63 シンドローム演算部
63〜65 シンドローム演算部
66 ガロア体乗算器
67 ガロア体加算器
68 レジスタ
100 誤り訂正装置
2000 光ディスク読み取り装置
2010 光ディスク
2020 ピックアップ
2030 増幅器
2040 フロントエンドプロセッサ
2050 回転モータ
2060 サーボコントローラ
2070 ホストコンピュータ
2080 システム制御部
2100 光ディスク制御部
2110 バッファメモリ
2120 ディスクインターフェース部
2130 誤り訂正部
2131 シンドローム計算部
2132 ユークリッド計算部
2133 チェーン計算部
2134 エラーデータ更新部
2135 C1符号列転送要求部
2140 ホストインターフェース部
2150 第1転送部
2160 第2転送部
2170 第3転送部
2180 バス制御部
2181 アドレス生成部
2182 バス調停制御部
2183 バス切替部
2190 検出部
2200 誤り符号列記憶部
3000 光ディスク読み取り装置
3100 光ディスク制御部
3110 バッファメモリ
3120 ディスクインターフェース部
3130 誤り訂正部
3131 シンドローム計算部
3132 ユークリッド計算部
3133 チェーン計算部
3134 エラーデータ更新部
3135 シンドローム記憶部
3135 入力データシンドローム記憶部
3136 バッファデータシンドローム記憶部
3140 ホストインターフェース部
3150 第1転送部
3160 第2転送部
3170 第3転送部
3180 バス制御部
3190 データ選択部

Claims (20)

  1. R行L列(R,Lはそれぞれ自然数)のブロック符号を構成する入力データについて誤り訂正を行い、誤り訂正したデータを出力する誤り訂正装置であって、
    入力手段から受け取った前記入力データを記憶するメモリと、
    前記メモリから受け取ったデータに基づいてブロック符号の行方向の誤り訂正を行う誤り訂正部とを備え、
    前記行方向の誤り訂正は、前記メモリから、
    第s行(sは自然数)から第(s+t)行(tは自然数であり、(s+t)はR以下)までの行について順に、第1列から第n列(nは2以上の自然数であり、(2n)はL以下)までのn列分の連続するデータを1行ずつ読み出した後、
    第s行から第(s+t)行までの行について順に、第(n+1)列から第(2n)列までのn列分の連続するデータを1行ずつ読み出し、
    それぞれの行を単位として誤り訂正を行う
    ことを特徴とする誤り訂正装置。
  2. 前記nが2のm乗(mは自然数)で表されることを特徴とする請求項1に記載の誤り訂正装置。
  3. 前記nが2、4、又は8であることを特徴とする請求項1に記載の誤り訂正装置。
  4. 外部の光ディスクに記録されている前記ブロック符号を構成する入力データについて、誤り訂正を行い、誤り訂正したデータを出力することを特徴とする請求項1から請求項3のいずれかに記載の誤り訂正装置。
  5. 前記n列分のデータを読み出し転送する際には、DMAモードで転送されることを特徴とする請求項1に記載の誤り訂正装置。
  6. 前記誤り訂正部が、シンドローム計算を行うシンドローム生成部を更に備えることを特徴とする請求項1に記載の誤り訂正装置。
  7. 前記誤り訂正部は、前記t行分と同数のシンドローム生成部を備えており、
    前記t個のシンドローム生成部は、前記n分のデータをそれぞれ1行分ずつ受け取ってシンドローム計算を行うことを特徴とする請求項6に記載の誤り訂正装置。
  8. 前記シンドローム生成部で行われるシンドローム計算は、前記t行分のシンドローム計算を時分割で行うことを特徴とする請求項6に記載の誤り訂正装置。
  9. 前記シンドローム生成部で行われるシンドローム計算は、それぞれのデータにおいて1回の積和演算によることを特徴とする請求項6から請求項8のいずれかに記載の誤り訂正装置。
  10. 前記シンドローム生成部が、データを一時的に記憶するFIFOを備えていることを特徴とする請求項6に記載の誤り訂正装置。
  11. 前記誤り訂正部により誤り符号が存在すると検出された場合に、前記メモリの符号を訂正後の値に書き換える誤り符号更新部を更に備えることを特徴とする請求項1に記載の誤り訂正装置。
  12. 請求項4に記載の誤り訂正部と、
    前記光ディスクから受け取った信号を復調し、前記誤り訂正装置に出力するディスクインターフェース部と、

    前記誤り訂正部から受け取ったデータをホストコンピュータに出力するホストインターフェース部を備えることを特徴とする光ディスク制御装置。
  13. 請求項12に記載の光ディスク制御装置と、
    光ディスクを回転させる回転モータと、
    前記光ディスクに記録されたデータを、レーザ光線を当てて反射光により読み取って電気信号に変換するピックアップと、
    前記ピックアップの出力信号を増幅する増幅器と、
    前記増幅器からの出力信号に応じてフィードバック信号を生成するとともに、信号を前記光ディスク制御装置に出力するフロントエンドプロセッサと、
    前記フロントエンドプロセッサからのフィードバック信号に応じて、前記回転モータの回転、及び前記ピックアップのレンズ位置を制御するサーボコントローラと
    を備えることを特徴とする光ディスク読み取り装置。
  14. R行L列(R,Lはそれぞれ自然数)のブロック符号を構成する入力データについて誤り訂正を行い、誤り訂正したデータを出力する誤り訂正方法であって、
    外部から入力された前記入力データをメモリに記憶させ、
    前記メモリからのデータに基づいて、ブロック符号のそれぞれの行を単位として行方向の誤り訂正を行い、
    前記メモリからデータを読み出す際は、
    第s行(sは自然数)から第(s+t)行(tは自然数であり、(s+t)はR以下)までの行について順に、第1列から第n列(nは2以上の自然数であり、(2n)はL以下)までのn列分の連続するデータを1行ずつ読み出した後、
    第s行から第(s+t)行までの行について順に、第(n+1)列から第(2n)列までのn列分の連続するデータを1行ずつ読み出す
    ことを特徴とする誤り訂正方法。
  15. 前記nが2、4、又は8であることを特徴とする請求項14に記載の誤り訂正方法。
  16. 外部の光ディスクに記録されている前記ブロック符号を構成する入力データについて、誤り訂正を行い、誤り訂正したデータを出力することを特徴とする請求項14又は請求項15に記載の誤り訂正方法。
  17. 前記誤り訂正の際に、シンドローム計算の結果に基づいて誤り訂正を行うことを特徴とする請求項14に記載の誤り訂正方法。
  18. 前記シンドローム計算は、それぞれのデータにおいて1回の積和演算によることを特徴とする請求項17に記載の誤り訂正方法。
  19. 前記シンドローム計算は、前記t行分のシンドローム計算を時分割で行うことを特徴とする請求項17に記載の誤り訂正方法。
  20. 前記誤り訂正によって誤り符号が存在すると検出された場合に、前記メモリ中の符号を訂正後の値に書き換えることを特徴とする請求項14に記載の誤り訂正方法。
JP2005331536A 1998-02-25 2005-11-16 誤り訂正装置、光ディスク制御装置、光ディスク読み取り装置ならびに誤り訂正方法 Expired - Fee Related JP4295758B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005331536A JP4295758B2 (ja) 1998-02-25 2005-11-16 誤り訂正装置、光ディスク制御装置、光ディスク読み取り装置ならびに誤り訂正方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP4321998 1998-02-25
JP2005331536A JP4295758B2 (ja) 1998-02-25 2005-11-16 誤り訂正装置、光ディスク制御装置、光ディスク読み取り装置ならびに誤り訂正方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004378028A Division JP4157521B2 (ja) 1998-02-25 2004-12-27 誤り訂正装置、光ディスク制御装置、光ディスク読み取り装置ならびに誤り訂正方法

Publications (2)

Publication Number Publication Date
JP2006139911A JP2006139911A (ja) 2006-06-01
JP4295758B2 true JP4295758B2 (ja) 2009-07-15

Family

ID=12657813

Family Applications (3)

Application Number Title Priority Date Filing Date
JP04719499A Expired - Fee Related JP3676939B2 (ja) 1998-02-25 1999-02-24 誤り訂正装置及び誤り訂正装置の誤り訂正方法
JP2004378028A Expired - Fee Related JP4157521B2 (ja) 1998-02-25 2004-12-27 誤り訂正装置、光ディスク制御装置、光ディスク読み取り装置ならびに誤り訂正方法
JP2005331536A Expired - Fee Related JP4295758B2 (ja) 1998-02-25 2005-11-16 誤り訂正装置、光ディスク制御装置、光ディスク読み取り装置ならびに誤り訂正方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP04719499A Expired - Fee Related JP3676939B2 (ja) 1998-02-25 1999-02-24 誤り訂正装置及び誤り訂正装置の誤り訂正方法
JP2004378028A Expired - Fee Related JP4157521B2 (ja) 1998-02-25 2004-12-27 誤り訂正装置、光ディスク制御装置、光ディスク読み取り装置ならびに誤り訂正方法

Country Status (4)

Country Link
US (2) US6332206B1 (ja)
EP (4) EP1517327A3 (ja)
JP (3) JP3676939B2 (ja)
CN (5) CN100430900C (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6948113B1 (en) * 1999-04-21 2005-09-20 Seagate Technology Llc Self-throttling error-correction buffer and method for a disc drive
TW441195B (en) * 1999-07-16 2001-06-16 Via Tech Inc Signal decoding method
JP3450756B2 (ja) * 1999-09-08 2003-09-29 松下電器産業株式会社 誤り訂正方法および誤り訂正装置
TW512320B (en) * 1999-09-10 2002-12-01 Matsushita Electric Ind Co Ltd Signal processing device
CN1286275C (zh) 1999-11-24 2006-11-22 三洋电机株式会社 纠错装置
KR100685360B1 (ko) 2000-01-31 2007-02-22 산요덴키가부시키가이샤 회로 규모를 억제하며 고속의 오류 정정을 행하는 것이 가능한 오류 정정 장치 및 복호 장치
US6983413B2 (en) 2000-12-12 2006-01-03 Kabushiki Kaisha Toshiba Data processing method using error-correcting code and an apparatus using the same method
GB0031436D0 (en) * 2000-12-22 2001-02-07 Koninkl Philips Electronics Nv Method and apparatus for data reproduction
GB0031439D0 (en) * 2000-12-22 2001-02-07 Koninkl Philips Electronics Nv Method and apparatus for data reproduction
KR20020065788A (ko) * 2001-02-07 2002-08-14 삼성전자 주식회사 엠 또는 이엠 비트 데이터 처리 겸용 리드 솔로몬 복호기및 그 복호 방법
JP3954803B2 (ja) * 2001-03-22 2007-08-08 三洋電機株式会社 エラー訂正装置
US6910174B2 (en) * 2001-06-01 2005-06-21 Dphi Acquisitions, Inc. Error correction code block format
JP2003006003A (ja) * 2001-06-18 2003-01-10 Mitsubishi Electric Corp Dmaコントローラおよび半導体集積回路
JP4039227B2 (ja) * 2002-12-13 2008-01-30 日本電気株式会社 復号方法及びプログラム並びにこれを用いた復号回路
JP2004206798A (ja) * 2002-12-25 2004-07-22 Ricoh Co Ltd 光ディスク装置のエンコードデータ符号回路
TWI227395B (en) * 2003-06-02 2005-02-01 Genesys Logic Inc Method for parallel processing of memory data and error correction code and related device thereof
US7386754B2 (en) * 2003-10-16 2008-06-10 Seagate Technology Llc Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity
JP2006004560A (ja) * 2004-06-18 2006-01-05 Elpida Memory Inc 半導体記憶装置及びその誤り訂正方法
JP2006190346A (ja) * 2004-12-28 2006-07-20 Toshiba Corp エラー訂正処理装置及びエラー訂正処理方法
JP4571523B2 (ja) * 2005-03-04 2010-10-27 ルネサスエレクトロニクス株式会社 スクランブル回路、エンコード装置、エンコード方法及び記録装置
US7788570B1 (en) 2005-03-23 2010-08-31 Marvell International Ltd. Optimized Reed-Solomon decoder
US7774676B2 (en) * 2005-06-16 2010-08-10 Mediatek Inc. Methods and apparatuses for generating error correction codes
US7430701B2 (en) * 2005-06-16 2008-09-30 Mediatek Incorporation Methods and systems for generating error correction codes
US20070033507A1 (en) * 2005-08-03 2007-02-08 Xueping Jiang Efficient error code correction
TWI313807B (en) * 2005-08-18 2009-08-21 Realtek Semiconductor Corp Error correction apparatus and method for data stored in memory
US20070058753A1 (en) * 2005-08-30 2007-03-15 Carlos Saavedra BPSK demodulator circuit using an anti-parallel synchronization loop
US20070067702A1 (en) * 2005-09-05 2007-03-22 Kuo-Lung Chien Method and apparatus for syndrome generation
US7743311B2 (en) * 2006-01-26 2010-06-22 Hitachi Global Storage Technologies Netherlands, B.V. Combined encoder/syndrome generator with reduced delay
TW200820231A (en) * 2006-10-31 2008-05-01 Sunplus Technology Co Ltd Error code correction device with high memory utilization efficiency
CN101056157B (zh) * 2007-05-15 2010-06-09 上海微电子装备有限公司 一种传输控制装置及其控制方法
US8041990B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for error correction and detection in a memory system
US8041989B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for providing a high fault tolerant memory system
US8677208B2 (en) * 2007-09-21 2014-03-18 Hewlett-Packard Development Company, L.P. Generating a parallel recovery plan for a data storage system
JP5248300B2 (ja) * 2008-12-24 2013-07-31 三菱電機株式会社 誤り訂正復号装置および誤り訂正復号方法
US20100325490A1 (en) * 2009-06-22 2010-12-23 Anvin H Peter System and method to view crash dump information using a 2-d barcode
JP5544773B2 (ja) * 2009-07-22 2014-07-09 ソニー株式会社 エラー訂正装置、エラー訂正装置のメモリの制御方法および光ディスク記録再生装置
US8631271B2 (en) 2010-06-24 2014-01-14 International Business Machines Corporation Heterogeneous recovery in a redundant memory system
US8549378B2 (en) 2010-06-24 2013-10-01 International Business Machines Corporation RAIM system using decoding of virtual ECC
US8898511B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Homogeneous recovery in a redundant memory system
US8484529B2 (en) * 2010-06-24 2013-07-09 International Business Machines Corporation Error correction and detection in a redundant memory system
US8522122B2 (en) 2011-01-29 2013-08-27 International Business Machines Corporation Correcting memory device and memory channel failures in the presence of known memory device failures
JP2015053096A (ja) 2013-09-09 2015-03-19 マイクロン テクノロジー, インク. 半導体装置、及び誤り訂正方法
US20150311921A1 (en) * 2014-04-25 2015-10-29 Kabushiki Kaisha Toshiba Memory controller, storage device and decoding method
US10381102B2 (en) 2014-04-30 2019-08-13 Micron Technology, Inc. Memory devices having a read function of data stored in a plurality of reference cells
US10572189B2 (en) 2016-11-04 2020-02-25 Sandisk Technologies Llc Method and decoder to adjust an error locator polynomial based on an error parity
US10439644B2 (en) 2015-07-14 2019-10-08 Western Digital Technologies, Inc. Error locator polynomial decoder and method
US10461777B2 (en) 2015-07-14 2019-10-29 Western Digital Technologies, Inc. Error locator polynomial decoder and method
US9760435B2 (en) * 2015-10-14 2017-09-12 Intel Corporation Apparatus and method for generating common locator bits to locate a device or column error during error correction operations
CN105575439B (zh) * 2015-12-15 2020-04-28 山西长河科技股份有限公司 一种存储单元失效纠错的方法及存储器
JP6267251B2 (ja) * 2016-03-02 2018-01-24 Nttエレクトロニクス株式会社 誤り訂正処理回路および誤り訂正処理方法
KR102504176B1 (ko) * 2016-06-23 2023-03-02 에스케이하이닉스 주식회사 반도체장치
KR102333140B1 (ko) * 2017-08-18 2021-12-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN111863106B (zh) * 2019-04-28 2022-08-05 武汉海康存储技术有限公司 闪存纠错方法及装置
US10826538B1 (en) * 2019-06-12 2020-11-03 International Business Machines Corporation Efficient error correction of codewords encoded by binary symmetry-invariant product codes
JP2021140835A (ja) * 2020-03-02 2021-09-16 株式会社東芝 磁気ディスク装置
US12061793B1 (en) * 2020-11-25 2024-08-13 Astera Labs, Inc. Capacity-expanding memory control component
US11722152B1 (en) 2020-11-25 2023-08-08 Astera Labs, Inc. Capacity-expanding memory control component
US11687281B2 (en) * 2021-03-31 2023-06-27 Advanced Micro Devices, Inc. DRAM command streak efficiency management
CN118426735B (zh) * 2024-07-03 2024-09-27 西北工业大学 一种可变流水线纠检错加法运算系统及方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3622985A (en) * 1969-11-25 1971-11-23 Ibm Optimum error-correcting code device for parallel-serial transmissions in shortened cyclic codes
US4506362A (en) * 1978-12-22 1985-03-19 Gould Inc. Systematic memory error detection and correction apparatus and method
JPS62256270A (ja) 1986-04-28 1987-11-07 Casio Comput Co Ltd 誤り訂正装置
USRE34100E (en) * 1987-01-12 1992-10-13 Seagate Technology, Inc. Data error correction system
US4775978A (en) * 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
US4845713A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Method and apparatus for determining the coefficients of a locator polynomial
JPH01293013A (ja) * 1988-05-20 1989-11-27 Matsushita Electric Ind Co Ltd 誤り訂正装置
US5068855A (en) * 1988-07-18 1991-11-26 Canon Kabushiki Kaisha Error correcting method and apparatus
JP2695195B2 (ja) * 1988-09-02 1997-12-24 三菱電機株式会社 誤り訂正回路
US5629949A (en) * 1993-09-21 1997-05-13 Cirrus Logic, Inc. Error correction verification method and apparatus using CRC check remainders
EP0729611B1 (en) * 1993-11-04 2000-06-07 Cirrus Logic, Inc. Reed-solomon decoder
JP3154607B2 (ja) * 1993-12-28 2001-04-09 三菱電機株式会社 誤り訂正復号装置及び誤り訂正復号方法
JP2970994B2 (ja) * 1994-05-25 1999-11-02 三洋電機株式会社 誤り訂正復号回路
US5719884A (en) * 1995-07-27 1998-02-17 Hewlett-Packard Company Error correction method and apparatus based on two-dimensional code array with reduced redundancy
US5701314A (en) * 1995-12-21 1997-12-23 Cirrus Logic, Inc. On-the-fly error correction using thermal asperity erasure pointers from a sampled amplitude read channel in a magnetic disk drive
JP3562544B2 (ja) * 1996-08-13 2004-09-08 ソニー株式会社 復号化装置および復号化方法
US5844919A (en) * 1996-09-16 1998-12-01 Cirrus Logic, Inc. Sector and track level error correction system for disc storage systems
US5872800A (en) * 1996-09-16 1999-02-16 Cirrus Logic, Inc. Write verify method for correcting unrecoverable sectors in a disc storage system using track level redundancy
US5844920A (en) * 1996-11-07 1998-12-01 Cirrus Logic, Inc. Thermal asperity compensation using multiple sync marks for retroactive and split segment data synchronization in a magnetic disk storage system
US6048090A (en) * 1997-04-23 2000-04-11 Cirrus Logic, Inc. Error correction and concurrent verification of a product code
US5974580A (en) * 1997-07-23 1999-10-26 Cirrus Logic, Inc. Concurrent row/column syndrome generator for a product code
US5996105A (en) * 1997-11-14 1999-11-30 Cirrus Logic, Inc. ECC system employing a data buffer for storing codeword data and a syndrome buffer for storing error syndromes
US5991911A (en) * 1997-11-14 1999-11-23 Cirrus Logic, Inc. Concurrent generation of ECC error syndromes and CRC validation syndromes in a DVD storage device
US6052815A (en) * 1997-11-14 2000-04-18 Cirrus Logic, Inc. ECC system for generating a CRC syndrome over randomized data in a computer storage device

Also Published As

Publication number Publication date
EP1517327A2 (en) 2005-03-23
USRE41499E1 (en) 2010-08-10
CN1165906C (zh) 2004-09-08
US6332206B1 (en) 2001-12-18
CN1233053A (zh) 1999-10-27
EP0939403A3 (en) 1999-11-17
JP3676939B2 (ja) 2005-07-27
JP4157521B2 (ja) 2008-10-01
JP2006139911A (ja) 2006-06-01
JPH11338723A (ja) 1999-12-10
CN1897512A (zh) 2007-01-17
CN100383886C (zh) 2008-04-23
CN1897512B (zh) 2010-08-11
EP0939403A2 (en) 1999-09-01
EP1914752A1 (en) 2008-04-23
EP1517327A3 (en) 2005-03-30
CN100430900C (zh) 2008-11-05
JP2005168039A (ja) 2005-06-23
CN1627426A (zh) 2005-06-15
CN1555061A (zh) 2004-12-15
EP1146515A1 (en) 2001-10-17
CN1532837A (zh) 2004-09-29

Similar Documents

Publication Publication Date Title
JP4295758B2 (ja) 誤り訂正装置、光ディスク制御装置、光ディスク読み取り装置ならびに誤り訂正方法
US6357030B1 (en) ECC block format for storage device
US7624330B2 (en) Unified memory architecture for recording applications
JPH10200418A (ja) 誤り訂正方法、誤り訂正装置、データ読み出し装置、及び、データマッピング方法
JPH10207726A (ja) 半導体ディスク装置
US6802040B1 (en) Error correction device
US8181075B2 (en) Error correction device and recording and reproducing device
US6697921B1 (en) Signal processor providing an increased memory access rate
US6564352B1 (en) Error detection circuit applicable to a disk reproduction apparatus
US5761220A (en) Minimum latency asynchronous data path controller in a digital recording system
JP2000137651A (ja) データ誤り訂正装置およびその方法
US6694475B1 (en) Magnetic disk apparatus and method of data transfer
US20020004881A1 (en) Data transfer apparatus and data transfer method
JP3442703B2 (ja) シンドローム演算方法及び装置
JP3609714B2 (ja) 誤り訂正装置
JPH07273672A (ja) 符号化装置、復号化装置及び制御装置
JP2001237715A (ja) 復号装置
JPS62232041A (ja) デ−タ処理装置
JPH05110451A (ja) 行列演算回路
JPH10154941A (ja) 誤り訂正回路
JPH06202819A (ja) ディスク装置
JP2007042179A (ja) エラー訂正装置
JPS6116115B2 (ja)
JP2000148660A (ja) Dmaデータ転送方法および装置
JPH05165660A (ja) シンドローム演算回路

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081014

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090317

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090410

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120417

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130417

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees