JP3968167B2 - データを内部メモリに取り込み当該データに演算を施して出力する高速動作可能なデータ入出力装置 - Google Patents

データを内部メモリに取り込み当該データに演算を施して出力する高速動作可能なデータ入出力装置 Download PDF

Info

Publication number
JP3968167B2
JP3968167B2 JP08856698A JP8856698A JP3968167B2 JP 3968167 B2 JP3968167 B2 JP 3968167B2 JP 08856698 A JP08856698 A JP 08856698A JP 8856698 A JP8856698 A JP 8856698A JP 3968167 B2 JP3968167 B2 JP 3968167B2
Authority
JP
Japan
Prior art keywords
data
transfer
syndrome
unit
memory
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 - Lifetime
Application number
JP08856698A
Other languages
English (en)
Other versions
JPH10334040A (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
Publication of JPH10334040A publication Critical patent/JPH10334040A/ja
Application granted granted Critical
Publication of JP3968167B2 publication Critical patent/JP3968167B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Bus Control (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、データ入出力装置に関し、特に入力されたデータに特定の演算を施し出力するものであって入力及び出力に関してそれぞれ所定の転送レートでデータ転送を行う入出力装置に関する。
【0002】
【従来の技術】
コンピュータあるいはAV機器等が、光ディスク、磁気ディスク等に蓄積されたディジタルデータを利用するためには、データ入出力装置を必要とする。
データ入出力装置は、光ディスク等に記録されているデータを読み取り、必要に応じてデータの加工や誤り訂正を行い、データをコンピュータ等が利用可能な形式にしてコンピュータ等に転送する装置である。
<光ディスク読み取り装置>
このようなデータ入出力装置の一例として、以下、従来の光ディスク読み取り装置について図を用いて説明する。
【0003】
図20は、従来の光ディスク読み取り装置の概略構成図である。
光ディスク読み取り装置1000は、光ディスク1010に記録されているデータを読み取り、読み取ったデータの誤りを訂正した後にホストコンピュータ1070に転送する装置であって、ピックアップ1020と、増幅器1030と、フロントエンドプロセッサ1040と、光ディスク制御部1100と、回転モータ1050と、サーボコントローラ1060と、システム制御部1200とを備えるものである。
【0004】
ここで、システム制御部1200は、ホストコンピュータ1070からのデータ要求のコマンドを光ディスク制御部1100を介して受け付け、コマンドを解釈し、サーボコントローラ1060及び光ディスク制御部1100を制御してデータ要求に応える機能を実現するマイクロプロセッサである。
回転モータ1050は、光ディスク1010を回転させるものであり、サーボコントローラ1060は、フロントエンドプロセッサ1040からの情報をもとにシステム制御部1200の指示を受けて回転モータ1050の回転及びピックアップ1020のレンズ位置を制御するものである。
【0005】
ピックアップ1020は、光ディスク1010に記録されたデータをレーザ光線を当てて反射光により読み取って電気信号にかえるものであり、増幅器1030は、ピックアップ1020の出力した信号を増幅してフロントエンドプロセッサ1040に出力するものである。
フロントエンドプロセッサ1040は、入力された信号に応じてサーボコントローラ1060と回転モータ1050及びピックアップ1020とでフィードバック制御を行い、安定した信号を光ディスク制御部1100に出力するものであり、イコライザー、AGC(自動利得制御回路)、PLL(phase locked loop)等を有する。なお、フロントエンドプロセッサ1040が光ディスク制御部1100に出力する信号は、変調されたデータである。
【0006】
光ディスク制御部1100は、ホストコンピュータ1070からのデータ要求のコマンドをシステム制御部1200に通知し、システム制御部1200の制御の下で、フロントエンドプロセッサ1040から入力された信号を復調して必要なデータを取り出し、誤り訂正を施し、ホストコンピュータ1070へデータを転送するものである。
【0007】
なお、図20では、太線で光ディスク1010に記録されているデータがホストコンピュータ1070に到達するまでの流れを示している。即ち、光ディスク1010に記録されているデータはピックアップ1020、増幅器1030、フロントエンドプロセッサ1040、光ディスク制御部1100を介してホストコンピュータ1070に到達する。
【0008】
以下、従来の光ディスク読み取り装置における光ディスク制御部1100について詳細に説明する。
図21は、従来の光ディスク制御部1100の構成図である。
光ディスク制御部1100は、第1メモリ1110と、第2メモリ1120と、第3メモリ1130と、ディスクインタフェース部1140と、誤り訂正部1150と、ホストインタフェース部1160と、第1転送部1170と、第2転送部1180とを有する。
【0009】
なお、図21中の太線は、フロントエンドプロセッサ1040から入力されたデータがホストコンピュータ1070に到達するまでの流れを示している。
ここで、ディスクインタフェース部1140は、フロントエンドプロセッサ1040から入力された信号を復調し必要なデータを取り出し、第1メモリに格納するものである。
【0010】
誤り訂正部1150は、ディスクインタフェース部1140により第1メモリに格納された所定バイト数のデータに対して誤り訂正の演算処理を施し必要に応じてデータを修正するものである。ここで、前記の所定バイト数は、誤り訂正処理を行うための処理単位であるブロックを構成するデータの数であり、以下この所定バイト数のデータを1ブロックのデータという。なお、誤り訂正部1150の行う誤り訂正処理については後にさらに詳しく説明する。
【0011】
また、第1転送部1170は、誤り訂正部1150による誤り訂正の演算処理が施された後の第1メモリ内のデータを、第2メモリに転送するものである。
第1メモリ1110は1メガビットの容量で、内部に1ブロックのデータが格納できる領域を3つ含む。
ディスクインタフェース部1140と誤り訂正部1150と第1転送部1170とはそれぞれ独立して実行し得るものであるため、ある一定期間において、前記の3つの領域のそれぞれは、ディスクインタフェース部1140と、誤り訂正部1150と、第1転送部1170とのうちの1つからアクセスされる。また、ディスクインタフェース部1140にアクセスされた領域は次の一定期間においては誤り訂正部1150にアクセスされ、誤り訂正部1150にアクセスされた領域は次の一定期間においては第1転送部1170にアクセスされ、第1転送部1170にアクセスされた領域は次の一定期間においてはディスクインタフェース部1140にアクセスされる。
【0012】
即ち、第1メモリ全体についてのアクセスに着目すれば、第1メモリは、ディスクインタフェース部1140と、誤り訂正部1150と、第1転送部1170との3系統から同時にアクセスされるといえる。第1メモリ1110はこのように同時に3系統からのアクセスが可能なものである。
また、1ブロックのデータに着目すれば、ディスクインタフェース部1140から第1メモリ1110に格納されたデータは、次に誤り訂正部1150により誤り訂正の演算処理が施され、次に第1転送部1170により第2メモリへ転送されることになる。
【0013】
第2メモリ1120は、第1転送部1170により転送されたデータを蓄積するためのものであり、蓄積されたデータは第2転送部1180によって随時、第3メモリに転送される。
第3メモリ1130は4メガビットの容量のメモリであり15ブロック分のデータを格納することができる。この第3メモリ1130には、光ディスクから読み込んだデータが第1メモリ、第2メモリを経て最終的に蓄積される。
【0014】
ホストインタフェース部1160は、ホストコンピュータ1070からのデータ要求のコマンドをシステム制御部1200に伝え、また、システム制御部1200の指示を受けて第3メモリに格納されているデータをホストコンピュータに転送するものである。
なお、システム制御部1200は、第3メモリ1130に蓄積されているデータを管理しており、第3メモリ1130に格納されていないデータをホストコンピュータ1070から要求されている場合には、サーボコントローラ1060を介して回転モータ1050の駆動を行い、その結果、第3メモリ1130に運ばれてきたデータについて、ホストインタフェース部1160を制御することによりコンピュータに転送する。また、既に第3メモリ1130に格納されているデータをホストコンピュータ1070から要求されている場合には、システム制御部1200は、サーボコントローラ1060を介しての回転モータ1050の駆動をせずに、ホストインタフェース部1160を制御することにより第3メモリ1130中のデータをホストコンピュータに転送する。
【0015】
このように、従来の光ディスク制御部1100は、第1メモリ1110を中心としたデータの取り込みと誤り訂正の処理を行う部分と、第3メモリ1130を中心としたデータのホストコンピュータへの転送の処理を行う部分との2つに大別して、それらの処理の間結ぶFIFOバッファとして第2メモリ1120を用いた構成となっている。
【0016】
即ち、ディスクインタフェース部1140がフロントエンドプロセッサ1040から入力されるデータの転送速度は低速であるにもかかわらず、ホストインタフェース部1160がホストコンピュータに出力するデータの転送速度についてはホストコンピュータの処理を滞らせないように高速であることが求められることに対応して、従来の光ディスク制御部1100は、低速処理部分と高速処理部分とを設けてこれらの処理間をバッファを介して接続した構成が採られている。<誤り訂正部>
以下、上述した従来の光ディスク読み取り装置1000における光ディスク制御部1100内の誤り訂正部1150についてさらに詳しく説明する。
【0017】
まず、誤り訂正部1150の行う誤り訂正について説明する。
光ディスク等のディジタルデータを記録する記憶媒体は、記録密度が非常に高いので、媒体上の小さな傷、汚れやちり等によりデータ誤りを発生させる可能性が高い。従って、光ディスク等の読み取り装置は正しいデータを読み取ることができない可能性がある。
【0018】
このような状況を防止するために、記憶媒体にデータを記録するときにはデータに誤り訂正用の符号を付加し、この記憶媒体を読み取る装置においては、この誤り訂正用の符号を利用して誤っているデータを検出し、正しいデータに訂正するといった誤り訂正処理が行われる。誤り訂正処理のために用いられる符号として、例えば誤り訂正能力が優れているリードソロモン符号が用いられる。
【0019】
図22は、誤り訂正符号の例を示す図である。
同図には、2つの符号を組み合わせて作られる符号として最も基本的なものである積符号を示している。
n1×n2バイトの情報データ1311に対し、C1方向にk1バイトのパリティデータが付加され、C2方向にはk2バイトのパリティデータが付加されている。また、C1パリティデータに対してC2方向にk2バイトのパリティデータが付加されている。
【0020】
即ち、情報データ1311に対し、k1×n2バイトのパリティデータ1312と、n1×k2バイトのパリティデータ1313と、k1×k2バイトのパリティデータ1314とが付加されており、これら(n1+k1)×(n2+k2)バイトのデータが誤り訂正処理の単位である1ブロックを構成する。
図22に示す積符号に対しての誤り訂正の処理は、例えば、最初に1行目(n1バイト)の情報データをC1方向のパリティデータ(k1バイト)を利用して誤り訂正を行い、2行目から(n2+k2)行目までにも同様に誤り訂正を行う。これである程度の誤り訂正はできるが、情報の精度を高めるために、さらに1列目(n2バイト)の情報データをC2方向のパリティデータを利用して誤り訂正を行い、2列目から(n1+k1)行目までにも同様に誤り訂正を行うこともできる。またさらにC1方向のパリティデータを利用して誤り訂正を行うことにより情報の精度はさらに高まる。
【0021】
また、例えばC1方向のパリティデータを利用して行う1行目の情報データについての誤り訂正の演算は、次の手順で行われる。
(1)1行の情報データ及びパリティデータからシンドロームを計算する。なお、複数次元であるシンドロームが0、即ちシンドロームのすべての成分が0であれば、誤りはないと判断できる。
【0022】
(2)シンドロームを基にして誤り位置多項式と誤り数値多項式を求める。この計算の方法としてユークリッド法等が知られている。
(3)誤り位置多項式の根を求める。この計算の方法としてチェン検索と呼ばれる方法等が知られている。
(4)誤りの値を求め、誤り位置にある情報データの値を前記の誤りの値との排他的論理和をとったものに修正する。
【0023】
次に、誤り訂正部1150の構成について説明する。
図23は、従来の誤り訂正部1150の構成図である。
誤り訂正部1150は、シンドローム計算回路1151と、ユークリッド計算回路1152と、チェン計算回路1153と、エラーデータ訂正回路1154とを含む。
【0024】
シンドローム計算回路1151は、前記の手順(1)の処理を行う回路であり、ユークリッド計算回路1152は、前記の手順(2)の処理を行う回路であり、チェン計算回路1153は、前記の手順(3)の処理を行う回路であり、エラーデータ訂正回路1154は、前記の手順(4)の処理を行う回路であり、これらの回路はそれぞれ同期して並列処理、即ちパイプライン方式による逐次処理を行う。
【0025】
同図中の太線は、第1メモリ1110に関するデータの流れを示している。
シンドローム計算回路1151は、第1メモリ1110に格納されているデータを取得し計算結果をユークリッド計算回路1152に引き渡し、ユークリッド計算回路1152は計算結果をチェン計算回路1153に引き渡し、チェン計算回路1153は計算結果をエラーデータ訂正回路1154に引き渡し、エラーデータ訂正回路1154は誤りの値を求め、第1メモリ1110内の誤り位置にあたる情報データを参照して、求めた誤りの値との排他的論理和を計算して第1メモリ1110内の情報データを更新する。
【0026】
図24は、従来の誤り訂正部1150における並列処理の様子を示す図である。
同図中では、符号化されたデータ列、例えば上述のC1方向のパリティデータが付加された1行の情報データを、No.1、No.2等で表している。それぞれのデータ列は、ブロック符号化された1つの符号語(code word)であり、この符号語は通信路を介して受信されたものであるとき受信語(received word)ともいわれるものである。ここでブロック符号化とは、1行のデータ等のひとまとまりのデータの符号化が他の1行のデータ等のひとまとまりのデータの符号化と独立に行われているような符号化をいう。なお、ここでは、ピックアップ1020等の光ディスクを読み取る経路を通信路ととらえている。
【0027】
また、同図にはそれぞれの処理に要する時間を太線の長さで例示している。
同図に示すように、例えば、シンドローム計算回路1151は、時間t4においてNo.4のデータ列についての計算を行い、時間t5においてNo.5のデータ列についての計算を行い、時間ごとに異なるデータ列を処理しており、時間t4においてユークリッド計算回路1152はNo.3のデータ列を、チェン計算回路1153はNo.2のデータ列を、エラーデータ訂正回路1154はNo.1のデータ列をそれぞれ処理している。
【0028】
このように4つの回路がパイプライン方式による逐次処理を実現するために、t1、t2等の時間は、4つの回路のうち最も処理時間の長いものに揃えている。
同図中に太線で例示すように実際上は各回路の処理時間は同一ではないので、パイプライン方式による逐次処理を実現するために、回路によっては待ち時間を設けて調整している。なお、一般的にはユークリッド計算の計算量が最も大きく、これに対しシンドローム計算、チェン計算、エラーデータ訂正のそれぞれの計算量は小さい。
【0029】
【発明が解決しようとする課題】
以上、従来のデータ入出力装置の例として、光ディスク読み取り装置について説明したが、この光ディスク読み取り装置には、次の様な問題がある。
まず、光ディスク制御部1100における第1メモリと第3メモリのように、同一内容が格納されるものであるにもかかわらず、データ入力におけるデータの転送速度とデータ出力におけるデータの転送速度とが相違すること、入力データに対する演算処理の機構と高速データ出力処理の機構とを一体化するとメモリアクセス制御が複雑になることその他の理由から別々のメモリが用いられている点である。この場合における第1メモリのように装置内に無駄なメモリを設けることは望ましくない。
【0030】
次に、誤り訂正部1150が、4つの回路によるパイプライン方式の逐次処理を行っているため、4つの回路のうち最も処理が遅い回路以外の回路には、待ち時間が発生する点である。
最近のように、家電製品、情報機器等に一層の小型化、高性能化が求められている状況においては、上記のような無駄なメモリの存在や、無駄な待ち時間の存在は特に問題である。無駄の削除が直接、間接に小型化、高性能化に結びつくからである。
【0031】
そこで、本発明は、かかる観点からなされたものであり、第1の所定の転送速度で入力されるデータを格納するためのメモリと第2の所定の転送速度で出力するデータを格納するためのメモリとを別々に備える必要のないデータ入出力装置を提供することを第1の目的とする。
また、入力したデータに誤り訂正処理を施してデータを出力するようなデータ入出力装置であって、無駄に遅滞することなく誤り訂正処理を行うデータ入出力装置を提供することを第2の目的とする。
【0032】
【課題を解決するための手段】
上記の第1の目的を達成するために、本発明は、外部の第1装置から受け取ったデータについて演算をして外部の第2装置に出力するデータ入出力装置であって、第1装置から継続的にデータを受け取る入力手段と、与えられたデータについて演算を行う演算手段と、データを第2装置に出力する出力手段と、データを格納するための1つのメモリと、前記入力手段、前記演算手段及び前記出力手段と前記メモリとを接続するバスである1つのメモリバスと、前記入力手段を転送元とし、前記メモリを転送先とした第1DMA転送を行う第1データ転送手段と、前記第1データ転送手段による第1バイト数分の第1DMA転送が終了した場合に第1DMA転送によりデータが格納された前記メモリ中の領域を転送元とし前記演算手段を転送先として前記演算手段に演算対象のデータを与えるための第2DMA転送を行う第2データ転送手段と、前記演算手段による第1バイト数分のデータについての演算が終了した場合に当該データが格納されている前記メモリ中の領域を転送元とし前記出力手段を転送先とした第3DMA転送を行う第3データ転送手段と、前記第1データ転送手段と前記第2データ転送手段と前記第3データ転送手段とが排他的にデータ転送を実行するよう制御するデータ転送制御手段とを備え、前記データ入出力装置における前記入力手段と前記演算手段と前記出力手段とは、並列にそれぞれの動作を実行することを特徴とする。
【0033】
上記構成により、第1DMA転送と第2DMA転送と第3DMA転送とをデータ転送制御手段により排他的に実行するので、継続的に入力されるデータを受け取り、当該データに演算を施した後に当該データを出力する一連の処理を1つのメモリのみを使用して行うことのできるデータ入出力装置が実現される。
また、上述の第2の目的を達成するために、本発明は、ブロック符号化された複数の受信語のそれぞれについて誤り訂正を連続して行う誤り訂正装置であって、受信語を逐次取得して当該受信語に基づき当該受信語に対応するシンドロームを算出するシンドローム計算処理を連続的に複数回行うシンドローム計算手段と、複数のシンドロームを格納可能なキューであるシンドローム格納キューと、前記シンドローム計算手段が算出したシンドロームを前記シンドローム格納キューに格納するシンドローム格納手段と、前記シンドローム格納キューにシンドロームが1つ以上格納されている場合に当該シンドローム格納キューから1つのシンドロームを取り出し、取り出した当該シンドロームが0でないときのみに、当該シンドロームに基づき当該シンドロームに対応する受信語の誤りを訂正する訂正手段とを備え、前記誤り訂正装置における前記シンドローム計算手段と前記訂正手段とは、並行してそれぞれの動作を実行することを特徴とする。
【0034】
上記構成により、シンドローム計算を、シンドローム計算以外の誤り訂正処理と独立した実行速度で行うことができるようになるため、従来の誤り訂正の方式のようにシンドローム計算の実行速度をユークリッド計算の実行速度と統一する必要がなくなり、同一データ列に対するシンドローム計算に必要な時間がユークリッド計算に必要な時間より長い場合であっても、誤り訂正全体としての実行速度を高速化できる誤り訂正装置が実現される。
【0035】
即ち、シンドローム計算と、シンドローム計算以外の誤り訂正処理とを並行して実行するので、誤り訂正全体に必要な時間は、シンドローム計算に必要な時間とほぼ等しくなり、高速な誤り訂正を行う誤り訂正装置が実現される。
【0036】
【発明の実施の形態】
以下、本発明に係るデータ入出力装置の実施の形態である光ディスク読み取り装置について説明する。
<光ディスク読み取り装置>
図1は、本発明の実施の形態である光ディスク読み取り装置の概略構成図である。
【0037】
光ディスク読み取り装置2000は、光ディスク1010に記録されているデータを読み取り、読み取ったデータの誤りを訂正した後にホストコンピュータ1070に転送する装置であって、ピックアップ1020と、増幅器1030と、フロントエンドプロセッサ1040と、光ディスク制御部2100と、回転モータ1050と、サーボコントローラ1060と、システム制御部2200とを備えるものである。
【0038】
なお、本発明の実施の形態である光ディスク読み取り装置は、従来技術の光ディスク読み取り装置と、光ディスク制御部2100及びシステム制御部2200が異なるのみであるため、この他の構成要素については図1において図20で示したのと同一の符号を付している。
ここで、光ディスク1010はDVD−ROMである。
【0039】
また、システム制御部2200は、ホストコンピュータ1070からのデータ要求のコマンドを光ディスク制御部2100を介して受け付け、コマンドを解釈し、サーボコントローラ1060及び光ディスク制御部2100を制御してデータ要求に応える機能を実現するマイクロプロセッサである。
回転モータ1050は、光ディスク1010を回転させるものであり、サーボコントローラ1060は、フロントエンドプロセッサ1040からの情報をもとにシステム制御部2200の指示を受けて回転モータ1050の回転及びピックアップ1020のレンズ位置を制御するものである。
【0040】
ピックアップ1020は、光ディスク1010に記録されたデータをレーザ光線を当てて反射光により読み取って電気信号にかえるものであり、増幅器1030は、ピックアップ1020の出力した信号を増幅してフロントエンドプロセッサ1040に出力するものである。
フロントエンドプロセッサ1040は、入力された信号に応じてサーボコントローラ1060と回転モータ1050及びピックアップ1020とでフィードバック制御を行い、安定した信号を光ディスク制御部2100に出力するものであり、イコライザー、AGC、PLL等を有する。
【0041】
光ディスク制御部2100は、ホストコンピュータ1070からのデータ要求のコマンドをシステム制御部2200に通知し、システム制御部2200の制御の下で、フロントエンドプロセッサ1040から入力された信号を復調して必要なデータを取り出し、誤り訂正を施し、ホストコンピュータ1070へデータを転送するものである。光ディスク制御部2100は後述する内部構成及び内部動作において従来技術における光ディスク制御部1100とは異なる。
【0042】
なお、図1では、太線で光ディスク1010に記録されているデータがホストコンピュータ1070に到達するまでの流れを示している。即ち、光ディスク1010に記録されているデータはピックアップ1020、増幅器1030、フロントエンドプロセッサ1040、光ディスク制御部2100を介してホストコンピュータ1070に到達する。
【0043】
以下、光ディスク制御部2100について詳細に説明する。
図2は、光ディスク制御部2100の回路構成図である。
同図に示すように、光ディスク制御部2100は、メモリ2110と、バス制御部2120と、ディスクインタフェース部2130と、シンドローム計算回路2140と、チェン計算回路2150と、CPU2160と、命令ROM2170と、データRAM2180と、ホストインタフェース部2190とを備える。
【0044】
ここで、メモリ2110は4メガビットの容量のダイナミックメモリであり15ブロック分のデータを格納することができる。なお、このメモリ2110は、既に格納してある内容を再度必要とした場合に、いわゆるディスクキャッシュとしても利用可能なように大きな容量としているが、本説明においてはディスクキャッシュ的なメモリの利用については特に触れない。
【0045】
また、ディスクインタフェース部2130は、フロントエンドプロセッサ1040から入力された信号を復調し必要なデータを取り出し、バス制御部2120を介してメモリ2110に転送するものであり、メモリ2110に転送するデータを一時的に蓄積する8バイト以上のサイズのFIFOを有する。
シンドローム計算回路2140は、上述した手順(1)の処理を行う回路であり、メモリ2110に格納されたデータをバス制御部2120を介して取り込みシンドローム計算を行うものである。
【0046】
チェン計算回路2150は、上述した手順(3)の処理を行う回路であり、即ち誤り位置多項式を入力とし誤り位置多項式の根を出力とするものである。
CPU2160は、光ディスク制御部2100におけるデータ処理全体を制御するものであり、命令ROM2170に格納されているプログラムを解読し実行し、プログラムの実行に際して作業用のデータを格納するためのメモリとしてデータRAM2180を利用する。また、CPU2160は、誤り訂正処理として上述した手順(2)及び手順(4)の処理をも行う。
【0047】
ホストインタフェース部2190は、誤り訂正が施された後のメモリ2110中のデータをバス制御部2120を介して取り込み、ホストコンピュータ1070に転送するものであり、ホストコンピュータ1070に転送するデータを一時的に蓄積する8バイト以上のサイズのFIFOを有する。
また、ディスクインタフェース部2130と、シンドローム計算回路2140とチェン計算回路2150とホストインタフェース部2190とは同一バスで接続されている。
【0048】
バス制御部2120は、メモリ2110へのアクセスを可能とするため1つのメモリバスについての使用権その他のバスの使用権の付与に関する制御を行うものであり、DMAコントローラ2122を含んでいる。
ここで、DMAコントローラ2122は3つの独立したデータ転送を制御し得るものである。以下、それぞれのデータについてのデータ転送制御部分をDMAコントローラの第1チャネル、DMAコントローラの第2チャネル、DMAコントローラの第3チャネルといい、それぞれのデータ転送を第1チャネルのDMA転送、第2チャネルのDMA転送、第3チャネルのDMA転送という。
【0049】
図3は、光ディスク制御部2100におけるデータの流れを示す図である。
フロントエンドプロセッサ1040から光ディスク制御部2100に入力されたデータは、ディスクインタフェース部2130からバス制御部2120を介してメモリ2110に格納され、メモリ2110に格納されたデータはバス制御部2120を介して誤り訂正部2101に転送され、誤りの訂正の必要に応じて誤り訂正部2101によりバス制御部2120を介してメモリ2110のデータが更新され、誤り訂正後のデータはメモリ2110からバス制御部2120を介してホストインタフェース部2190に転送され、ホストインタフェース部2190からホストコンピュータ1070へと転送される。
【0050】
ここで、誤り訂正部2101とは、シンドローム計算回路2140と、チェン計算回路2150と、ユークリッド計算部2164と、エラーデータ訂正部2168とからなり、同図に示すようにバス制御部2120を介してメモリ2110にアクセスするのはシンドローム計算回路2140及びエラーデータ訂正部2168である。
【0051】
なお、ユークリッド計算部2164とエラーデータ訂正部2168とは命令ROM2170に格納されたプログラムとCPU2160により実現される機能処理部分であり、ユークリッド計算部2164は上述の手順(2)の処理を行い、エラーデータ訂正部2168は上述の手順(4)の処理を行う。
従って、誤り訂正部2101の動作は、シンドローム計算回路2140がメモリ2110中のデータを取得しシンドローム計算をした結果をユークリッド計算部2164が参照して誤り位置多項式及び誤り数値多項式を求め、ユークリッド計算部2164は、計算結果をチェン計算回路2150に送り込み、エラーデータ訂正部2168は、チェン計算回路2150による計算結果である誤り位置とユークリッド計算部2164による計算結果である誤り数値多項式とを参照して誤り数値を求めて、誤り数値とメモリ2110内のデータとの排他的論理和を求めてメモリ2110内のデータを更新することにより実現される。
【0052】
以下、上述の構成を備える光ディスク読み取り装置2000における光ディスク制御部2100のメモリ2110へのアクセス動作の概要について説明する。
図4は、光ディスク制御部2100の動作概要を示すフローチャートである。
光ディスク制御部2100は、ホストコンピュータ1070から光ディスク読み出し要求コマンドを受け付ける(ステップS3010)。受け付けたコマンドはバス制御部2120を介してシステム制御部2200に渡される。
【0053】
システム制御部2200は、前記コマンドにより読み出すべき光ディスクの媒体上のアドレス及び読み出すべきデータサイズを得て、これに基づきサーボコントローラ1060に回転モータ1050及びピックアップ1020の駆動指示を与え、CPU2160にはデータサイズを通知する。
ここで、1ブロック分のデータの読み出し要求がなされたとする。1ブロック分のデータは、図22に示す(n1+k1)×(n2+k2)バイトのデータであり、ここでは約38KByteのデータである。
【0054】
CPU2160は、ディスクインタフェース部2130からメモリ2110への1ブロックのデータ転送をDMAコントローラの第1チャネルに指示する(ステップS3020)。即ち、CPU2160は、ディスクインタフェース部2130のアドレスを転送元とし、メモリ2110内のデータを格納すべきアドレスを転送先とし、1ブロック分を転送データサイズとしてDMAコントローラの第1チャネルに設定する。
【0055】
DMAコントローラの第1チャネルへの指示の後に、回転モータ1050が光ディスク1010を回転させ、ピックアップ1020と増幅器1030を介してフロントエンドプロセッサ1040は光ディスク1010のデータを獲得して光ディスク制御部2100中のディスクインタフェース部2130にデータを転送する。
【0056】
ディスクインタフェース部2130に転送されたデータは、ディスクインタフェース部2130及びバス制御部2120の制御によりメモリ2110に転送される(ステップS3030)。このデータ転送の制御については後に詳細に説明する。
CPU2160は、第1チャネルのDMA転送が、1ブロック分のデータについてなされたのち(ステップS3030、S3040)、DMAコントローラ2122からの転送終了の旨のCPUへの割込みを受け付けることにより転送終了を判断し(ステップS3040)、メモリ2110からシンドローム計算回路2140へのデータ転送をDMAコントローラの第2チャネルに指示する(ステップS3050)。シンドローム計算回路2140は、1ブロック分のデータについて1データ列分ごとに受け付けて計算するものであるため(図22参照)、CPU2160は、メモリ2110内の1つのデータ列のアドレスを転送元とし、シンドローム計算回路2140のアドレスを転送先とし、1データ列分のサイズを転送データサイズとしてDMAコントローラの第2チャネルに設定する。
【0057】
この結果、メモリ2110に格納されている1データ列分のデータは、シンドローム計算回路2140及びバス制御部2120の制御により第2チャネルのDMA転送としてシンドローム計算回路2140に転送される(ステップS3060、ステップS3070)。シンドローム計算回路2140は、1データ列分のデータを受け取るとシンドローム計算を行う。
【0058】
第2チャネルのDMA転送の終了を割込みによりCPUが検知したことにより(ステップS3070)、シンドローム計算回路の計算結果に基づきCPU2160及びチェン計算回路2150が計算を行い、必要に応じてCPU2160はエラーデータ訂正部2168の機能処理としてバス制御部2120を介してメモリ2110のデータを更新する(ステップS3080)。なお、第2チャネルのDMA転送の終了のCPU割込みの時点ではシンドローム計算回路2140によるシンドロームの計算は終了している。
【0059】
このシンドローム計算からエラーデータ訂正までの動作については後に詳細に説明する。
1データ列分の誤り訂正処理が終了した後に、他のデータ列についてもステップS3050からステップS3080までの処理を行うことにより(ステップS3090)、1ブロックについての1回の誤り訂正が終了した後、ステップS3050からステップS3090までの処理を行って2回目の誤り訂正を行い、同様に3回目の誤り訂正を行うことにより誤り訂正を完了する(ステップS3100)。
【0060】
ここで、1回目の誤り訂正は図22に示すC1方向に行い、2回目はC2方向に、3回目は再度C1方向に行う。即ち、ステップS3080における誤り訂正は、C1方向のパリティデータを用いて1行目から始められ(n2+k2)行まで繰り返され、次にC2方向のパリティデータを用いて1列目から始められ(n1+k1)列まで繰り返され、次に再度C1方向のパリティデータを用いて1行目から始められ(n2+k2)行まで繰り返される(図22参照)。
【0061】
1ブロック分のデータについてのすべての誤り訂正処理が完了した後に、CPU2160は、メモリ2110からホストインタフェース部2190へのデータ転送をDMAコントローラの第3チャネルに指示する(ステップS3110)。即ち、CPU2160は、メモリ2110中の誤り訂正の終了した1ブロックのデータのアドレスを転送元とし、ホストインタフェース部2190のアドレスを転送先とし、1ブロック分を転送データサイズとしてDMAコントローラの第3チャネルに設定する。
【0062】
なお実際は、ホストインタフェース部2190がメモリ2110から取り出すべきデータは、パリティデータを除いた情報データのみであるため、情報データを格納する領域とパリティデータとを格納する領域を別の領域としている。これは、パリティデータを格納する領域は再利用可能なので当該領域の数を削減するためである。このため、情報データは連続したアドレスに存在し、パリティデータはまた別の連続したアドレスに存在する。従って、例えば、第2チャネルのDMA転送では、メモリ2110中の転送すべきデータすべてが連続したアドレスに存在するのではないため、複数回に分けて転送元アドレス等を繰り返し設定するのだが、本実施形態の説明においては、1ブロックまとめて転送するように概略的に表現している。
【0063】
従って、メモリ2110内の1ブロック分のデータはホストインタフェース部2190及びバス制御部2120の制御により第3チャネルのDMA転送としてホストインタフェース部2190に転送される(ステップS3120、S3130)。このデータ転送の制御については後に詳しく説明する。
DMAコントローラ2122は第3チャネルのDMA転送の終了をCPU2160に割込みをかけることによって通知する。
【0064】
以上、光ディスク制御部2100の動作の概要について1ブロック分のデータに着目して説明したが、次に複数ブロックにわたるデータを処理する場合について説明する。
図5は、光ディスク制御部2100が複数ブロックのデータを処理する場合の各部の動作タイミングを示す図である。
【0065】
また、図6は、メモリ2110の内部へのアクセスのイメージを示す概念図である。
図5中における第1ブロックから第4ブロックで示したものは、それぞれメモリ2110に格納される1ブロックのデータである。
図5に示すように、いずれのブロックのデータについてもディスクインタフェース部2130の処理が完了すると、誤り訂正部2101が処理を開始し、誤り訂正部2101の処理が完了すると、ホストインタフェース部2190が処理を開始するのであるが、ある時刻においては、ディスクインタフェース部2130と誤り訂正部2101とホストインタフェース部2190はそれぞれ別のブロックのデータを処理対象として並列動作を行う。
【0066】
例えば、ディスクインタフェース部2130が第3ブロックのデータをメモリ2110に格納している間に、誤り訂正部2101はメモリ2110にアクセスして第2ブロックのデータの誤り訂正をしており、ホストインタフェース部2190はメモリ2110から第1ブロックのデータを取り出している。
この状態におけるメモリ2110へのアクセスは、図6に示すようになる。即ち、ディスクインタフェース部2130と誤り訂正部2101とホストインタフェース部2190とは、あるタイミングにおいては、それぞれメモリ2110中の別の領域にアクセスしている。
【0067】
なお、図5は、大まかな時間について各処理が並列に処理する様子を示したものであるが、実際にはメモリ2110へのアクセス経路は1つのみであるため、バス制御部2120は、ディスクインタフェース部2130と誤り訂正部2101とホストインタフェース部2190とメモリへのアクセスを細かいタイミングで切り替えている。
【0068】
もし、ディスクインタフェース部2130が1ブロック分のデータをメモリ2110に格納するのに要する時間に比べて、ホストインタフェース部2190が1ブロック分のデータをメモリ2110から取り出すのに要する時間が長いならば、ディスクインタフェース部2130からデータがメモリ2110に一定の間隔で継続的に格納される場合にメモリ2110にディスクインタフェース部2130からのデータがたまっていき、ついにはデータがあふれる事態が生ずる。
【0069】
これを避けるため、外部からディスクインタフェース部2130に1ブロック分のデータが到着する時間に対して、当該1ブロックのデータを処理するために必要なディスクインタフェース部2130と誤り訂正部2101とホストインタフェース部2190とのメモリアクセスの合計時間が短くなるように、メモリ2110の制御クロック等が設定されている。
【0070】
ここで、CPU2160がDMAコントローラに設定するメモリ2110中のアドレスについて説明する。
CPU2160は、データRAM2180内にメモリ2110に関する状況を管理するためのメモリ管理情報を作成している。
図7は、メモリ管理情報のイメージを示す図である。
【0071】
同図に示すように、メモリ管理情報は、メモリ2110内の領域をブロック単位に分割して管理するものであり、それぞれのブロックについて入力可能か、誤り訂正可能か、出力可能かの3つの状態として管理するものである。初期状態においては、すべてのブロックについて入力可能としている。
ここで、入力可能とは、ディスクインタフェース部2130からのデータ格納ができる状態を示し、誤り訂正可能とは、ディスクインタフェース部2130からのデータ格納が完了した段階をいい、CPU2160は上述のステップS3040において転送終了と判断したときに入力可能から誤り訂正可能に状態を変える。また、出力可能とは、誤り訂正が完了した段階であり、CPU2160は上述のステップS3100において誤り訂正が完了したと判断したときに誤り訂正可能から出力可能に状態を変える。さらに、CPU2160は上述のステップS3130において転送終了と判断したときに出力可能から入力可能に状態を変える。
【0072】
従って、CPU2160は、メモリ管理情報を参照し、所定の演算によりブロック番号からメモリアドレスを算出することにより、入力可能な1つのブロックのアドレスをDMAコントローラの第1チャネルに転送先として設定し、誤り訂正可能なブロックのアドレスをDMAコントローラの第2チャネルに転送元として設定し、出力可能なブロックのアドレスをDMAコントローラの第3チャネルに転送元として設定する。
【0073】
以下、上述したディスクインタフェース部2130、誤り訂正部2101、ホストインタフェース部2190それぞれとメモリ2110との間のデータ転送について詳細に説明する。
図8は、バス制御部2120の機能ブロック図である。
同図中には、バス制御部2120の他にCPU2160、ディスクインタフェース部2130、シンドローム計算回路2140、ホストインタフェース部2190を示している。
【0074】
バス制御部2120は、前述のDMAコントローラ2122の他にバス調停部2121を有し、また、DMAコントローラ2122は、転送制御情報記憶部2123とリクエスト受付部2124とを含む。
ここで、バス調停部2121は、CPU2160又はDMAコントローラ2122からのバス使用要求を受けてバス使用権を与えるものである。ここでCPU2160からのバス使用要求には、エラーデータ訂正部2168によるデータ訂正のためのメモリアクセス要求の他に、シンドローム計算回路2140の計算結果の読み出し、チェン計算回路2150へのデータ転送、チェン計算回路2150からの計算結果の読み出しのためのものがある。なお、シンドローム計算回路2140のデータ入力のためのアドレス及び計算結果を出力するためのアドレス、チェン計算回路2150のデータ入力のためのアドレス及び計算結果を出力するためのアドレス、ディスクインタフェース部2130のアドレス、ホストインタフェース部2190のアドレスに関する情報は命令ROM2170に予め格納されておりCPU2160はこれを参照することができる。
【0075】
転送制御情報記憶部2123は、CPU2160により設定されるDMA転送のための転送元及び転送先アドレスと転送データサイズとを記憶する。
リクエスト受付部2124は、ディスクインタフェース部2130、シンドローム計算回路2140、ホストインタフェース部2190からの転送開始要求を受け付ける。
【0076】
ここで、図9から図12を用いてデータ転送に関わる制御動作について説明する。
図9は、ディスクインタフェース部2130の動作の一部を示すフローチャートである。
ディスクインタフェース部2130は、フロントエンドプロセッサ1040から受け取ったデータを復調して所定の形式とした後に、FIFOにデータを蓄積するのであるが、FIFOに8バイト以上データがたまった場合には(ステップS4010)、DMAコントローラの第1チャネルにリクエストを出す(ステップS4020)。なお、このリクエストはリクエスト受付部2124が受け付ける。
【0077】
ディスクインタフェース部2130には、所定の転送速度で継続してデータが入力されるため、ディスクインタフェース部2130は、ほぼ一定の時間ごとに、ステップS4020のリクエストを行うことになる。
図10は、シンドローム計算回路2140の動作の一部を示すフローチャートである。
【0078】
シンドローム計算回路2140は、DMAコントローラの第2チャネルへのリクエストをリクエスト受付部2124に出す(ステップS4110)。
シンドローム計算回路2140は、転送されてきたデータを取得し(ステップS4120)、8バイトのデータを取得してなければデータ取得を繰り返し(ステップS4130)、8バイトのデータを取得した段階で再度DMAコントローラの第2チャネルにリクエストを出す(ステップS4130、S4110)。
【0079】
なお、同図には示していないがステップS4120により取得したデータについては、シンドローム計算回路2140はデータの取得等の動作と並行してシンドローム計算を行う。
図11は、ホストインタフェース部2190の動作の一部を示すフローチャートである。
【0080】
ホストインタフェース部2190は、ATAPIインタフェースによりホストコンピュータ1070に接続されており、メモリ2110から取り込んだデータはFIFOに蓄積されるが、このFIFOに蓄積されたデータは所定の転送速度でATAPIインタフェースによりホストコンピュータ1070に転送される。
従って、ホストインタフェース部2190は、所定の転送速度を保つため、FIFOに蓄積されたデータが不足しないように制御する必要があり、図11に示す動作を行う。
【0081】
即ち、ホストインタフェース部2190は、FIFOに8バイト以上の空きが生じた時点で(ステップS4210)、DMAコントローラの第3チャネルについてのリクエストをリクエスト受付部2124に出す(ステップS4220)。
図12は、バス制御部2120の動作の一部を示すフローチャートである。
バス制御部2120は、ディスクインタフェース部2130とメモリ2110との間のデータ転送と、ホストインタフェース部2190とメモリ2110との間のデータ転送と、誤り訂正処理に関してのメモリアクセスとについて、それぞれに優先度をつけて調整するものである。ここではディスクインタフェース部2130とメモリ2110との間のデータ転送の優先度が最も高く、次にホストインタフェース部2190とメモリ2110との間のデータ転送の優先度が高いものとしている。誤り訂正処理に関してのメモリアクセスは前2者よりも優先度が低い。ここで、誤り訂正処理に関してのメモリアクセスとは、メモリ2110からシンドローム計算回路2140へのデータ転送及びCPU2160とメモリ2110との間のデータ転送をいう。
【0082】
バス調停部2121は、リクエスト受付部2124により受け付けたリクエストを検査する(ステップS4301)。バス調停部2121は、ステップS4301における検査時のリクエスト状況に対してステップS4310、S4330、S4350の判断をなす。
ディスクインタフェース部2130からのリクエストを受け付けているならば(ステップS4310)、バス調停部2121は、DMAコントローラの第1チャネルにバス使用権を与え、バス制御部2120は、DMAコントローラ2122によりディスクインタフェース部2130からメモリ2110へ8バイトのデータを転送する(ステップS4320)。このデータ転送は、CPU2160に設定され転送制御情報記憶部2123に格納されている転送元、転送先の情報に基づき行われるものであり、上述の第1チャネルのDMA転送である。
【0083】
バス調停部2121は、前述のディスクインタフェース部2130からのリクエストがない状況で、リクエスト受付部2124によりホストインタフェース部2190からのリクエストを受け付けると(ステップS4330)、DMAコントローラの第3チャネルにバス使用権を与え、バス制御部2120は、DMAコントローラ2122によりメモリ2110からホストインタフェース部2190へ8バイトのデータを転送する(ステップS4340)。このデータ転送は、第3チャネルのDMA転送である。
【0084】
また、バス調停部2121は、前述のディスクインタフェース部2130又はホストインタフェース部2190からのリクエストがなされていない状況で、リクエスト受付部2124によりシンドローム計算回路2140からのリクエストを受け付けると(ステップS4350)、DMAコントローラの第2チャネルにバス使用権を与え、バス制御部2120は、DMAコントローラ2122によりメモリ2110からシンドローム計算回路2140へ8バイトのデータを転送する(ステップS4360)。
【0085】
また、バス調停部2121は、シンドローム計算回路2140からのリクエストの他に、エラーデータ訂正部2168としてのCPU2160からのメモリアクセス要求を受け付けた場合も、前記のシンドローム計算回路2140からリクエストを受け付けた場合と同様に、ディスクインタフェース部2130又はホストインタフェース部2190からのリクエストがなされていない場合に限りデータ転送のためのバス使用を認める。但し、バス調停部2121は、CPU2160のリクエストよりシンドローム計算回路2140のリクエストの方を優先的に扱う。即ち、このエラーデータ訂正部2168としてのCPU2160によるメモリアクセスは、他のメモリアクセスのリクエストが全くない状態でのみなされるものであり、1バイト単位で行われる。なお、第1チャネルから第3チャネルのDMA転送によるメモリ2110へのアクセスと比べて、エラーデータ訂正部2168によるメモリ2110へのアクセスはかなり低頻度で生じる。
【0086】
バス制御部は、ステップS4320、S4340又はS4360の動作を行った後に再度リクエスト受付部2124が受け付けているリクエストの検査に戻り(ステップS4301)、図12に示す動作を繰り返す。
図13は、メモリ2110を対象とするデータ転送のタイミングの例を示す図である。
【0087】
同図の例では、ディスクインタフェース部2130のFIFOに低いデータ転送速度でフロントエンドプロセッサ1040から継続的にデータが入力されているとしており、ディスクインタフェース部2130からメモリ2110への8バイトのデータ転送が大きな間隔を空けて行われている様子を示している。
また同図は、ホストインタフェース部2190が、高いデータ転送速度でホストコンピュータにデータを転送する必要があることにより、ディスクインタフェース部の転送が行われていない間に、メモリ2110からホストインタフェース部2190への8バイトのデータ転送がある程度高い頻度で行われている様子を示している。
【0088】
また同図は、優先度が前記の2つより低いものである誤り訂正用のデータ転送が、前記の2つのデータ転送がなされていない間に行われている様子を示している。
以下、第1チャネルから第3チャネルのDMA転送を、8バイト毎に分割して行っている理由を説明する。
【0089】
DMA転送において共有する資源のうち、メモリが最もアクセスに時間がかかるものであるため、メモリアクセスの競合をどのように調整するかを考える。
ダイナミックメモリであるメモリ2110は、RAS(row address strobe)とCAS(column address strobe)との2つの制御クロックにより制御されており、RASを一定にしてCASを連続的に変化させるページモードにより、メモリアクセスをある程度まとめまった単位で行うほうが、1バイトあたりのアクセス速度は向上するため、DMA転送は複数バイト毎に行うべきである。
【0090】
例えば、フロントエンドプロセッサ1040から送られてくるデータの平均転送速度をvバイト/秒とし、上述のように誤り訂正をc1方向、c2方向、再度c1方向の3回行うとすると、第2チャネルのこの3回のDMA転送に加えて第1チャネルのDMA転送と第3チャネルのDMA転送との合計5回のDMA転送が1つのデータについてなされるため、1秒当たりに5vバイトのデータについてメモリアクセスが必要となり、ある程度まとまった単位でメモリアクセスすることにより1バイト当たりのメモリアクセス時間がt秒となるとすると、5vtの時間ですべてのメモリアクセスが完了する。この場合、5vt秒が1秒より短くなるようする必要があるため、ある程度多くのまとまった単位でDMA転送を行うのである。
【0091】
しかし、バス制御部2120は、所定バイト数のデータのDMA転送毎にリクエストを判断しているため(図12参照)、大きなバイト数毎にDMA転送を行うとしたならば、ディスクインタフェース部2130やホストインタフェース部2190のような所定の速度でのデータ転送を要求される回路からの転送のリクエストに、即座に応じることができないという問題がある。
【0092】
例えば、ディスクインタフェース部2130のFIFOにデータが蓄積され、第1チャネルのDMA転送を行う必要が生じた場合においても、その時にいずれかのチャネルのDMA転送が行われていたならば、所定の単位分の当該DMA転送が終了するまで、第1チャネルのDMA転送が待たされることになる。
ここで、第1チャネルのDMA転送の優先度が最も高いとして、上述と同様にフロントエンドプロセッサ1040から送られてくるデータの平均転送速度をvバイト/秒とし、ディスクインタフェース部2130のFIFOの容量をmバイトとし、前記の所定の単位分のDMA転送におけるメモリアクセスに要する時間をT秒とすると、m/v>Tを満たすように前記の所定の単位は小さいものでなければならなくなる。
【0093】
従って、適度なバイト数単位毎にデータ転送をする必要があり、本実施の形態においては、メモリ2110の制御クロック速度等と照らし上述の条件を満たすべく、8バイトをデータ転送の単位としている。
以上説明したように光ディスク制御部2100は、バス制御部2120を中心としたメモリ2110へのアクセス制御機構を備えており、これにより1つのメモリ2110だけを用いて、データの入力、当該データの誤り訂正、誤り訂正後データの出力という機能を実現している。
<誤り訂正部>
以下、上述した光ディスク読み取り装置2000における光ディスク制御部2100内の誤り訂正部2101についてさらに詳しく説明する。
【0094】
上述したように、誤り訂正部2101は、シンドローム計算回路2140と、チェン計算回路2150と、ユークリッド計算部2164と、エラーデータ訂正部2168とからなる。ユークリッド計算部2164と、エラーデータ訂正部2168とは命令ROM2170に格納されたプログラムとCPU2160により実現される。
【0095】
前記プログラムは、ユークリッド計算、エラーデータ訂正の他に、シンドローム計算回路2140からのシンドローム計算結果の取り込み、チェン計算回路2150とのデータ入出力をも行う。以下、命令ROM2170に格納されているプログラムとCPU2160とデータRAM2180とにより実現される誤り訂正に関する機能部分を誤り訂正制御部という。
【0096】
図14は、誤り訂正制御部に関する機能ブロック図である。
誤り訂正制御部は、割込受付部2161と、制御部2162と、シンドローム計算結果取込部2163と、ユークリッド計算部2164と、チェン計算結果取込部2165と、シンドローム計算結果格納用キュー領域2166と、チェン計算起動部2167と、エラーデータ訂正部2168と、データ入出力部2169とを有する。
【0097】
割込受付部2161は、CPU2160への割込みを受け付ける部分であり、制御部2162は、命令ROM2170に格納されているプログラムの実行を制御する部分である。
また、データ入出力部2169は、バス制御部2120を介して他の回路とデータをやり取りする部分であり、CPU2160のレジスタと他の回路との間でデータの授受をなす。
【0098】
シンドローム計算結果格納用キュー領域2166は、データRAM2180の一部の領域であり、シンドローム計算の結果を10個分格納できるキューである。
シンドローム計算結果取込部2163は、シンドローム計算回路2140のシンドローム計算結果をデータ入出力部2169を介して取り込みシンドローム計算結果格納用キュー領域2166に格納する機能をもつ部分である。
【0099】
ユークリッド計算部2164は、シンドローム計算結果格納用キュー領域2166から1個分のシンドローム計算結果のデータを取り出して、このデータに基づき必要に応じてチェン計算起動部2167にチェン計算回路2150の起動を指示する。チェン計算回路2150は、データを与えると計算を開始するものであり、ここでチェン計算回路の起動とは、チェン計算回路にデータを与えることをいう。
【0100】
チェン計算起動部2167は、ユークリッド計算部2164の指示に基づきデータ入出力部2169を介してチェン計算回路2150にユークリッド計算結果であるデータを転送しチェン計算回路2150を起動する機能をもつ部分である。
チェン計算結果取込部2165は、チェン計算回路2150の計算結果をデータ入出力部を介して取り込み、エラーデータ訂正部2168に渡す機能をもつ部分である。
【0101】
また、エラーデータ訂正部2168は、データ入出力部2169を介してメモリ2110にアクセスし、メモリ2110内のデータを更新する部分である。
以下、図15から図17を用いて上述の機能構成を有する誤り訂正制御部の動作を説明する。
図15は、誤り訂正制御部の通常動作を示すフローチャートである。
【0102】
誤り訂正制御部の通常動作はユークリッド計算部2164によって行われる。
ユークリッド計算部2164は、シンドローム計算結果がシンドローム計算結果格納用キュー領域2166に格納されているかを検査し、格納されていなければ動作を進めない(ステップS5010)。但し、CPU2160が全く停止しているわけではなく、ステップS5010を繰り返している間にも誤り訂正制御部として以外の動作や、割込み対応の動作は行う。
【0103】
シンドローム計算結果がシンドローム計算結果格納用キュー領域2166に格納されている場合には、ユークリッド計算部2164は、データRAM2180内のシンドローム計算結果格納用キュー領域2166からシンドローム計算結果を読み出す(ステップS5020)。シンドローム計算結果であるシンドローム値が0であれば、データ列に誤りがないことを示しているので(ステップS5030)、再度、ステップS5010の動作に戻る。
【0104】
また、シンドローム値が0以外であれば(ステップS5030)、データ列には誤りがあることを示しているのでデータを訂正する必要があるため、ユークリッド計算部2164は、当該シンドローム値に基づいてユークリッド計算を行うことにより誤り位置多項式と誤り数値多項式とを求める(ステップS5040)。
【0105】
ユークリッド計算部2164は、ユークリッド計算を行った後にチェン計算起動部2167を介して、チェン計算回路2150に誤り位置多項式を与え(ステップS5050)、再度、ステップS5010の動作に戻る。
図16は、第2チャネル転送終了割込処理を示すフローチャートである。
この第2チャネル転送終了割込処理は、誤り訂正制御部の割込受付部2161が第2チャネルのDMA転送の終了を示す割込みを受け付けた場合に実行される割込処理である。
【0106】
割込受付部2161が割込みを受け付けた旨を制御部2162に通知すると、制御部2162は、ユークリッド計算部2164による図15のフローチャートに示す動作を一時的に中断し、シンドローム計算結果取込部2163を制御してシンドローム計算回路2140から計算結果を読み出させ(ステップS5110)、読み出した計算結果をデータRAM2180中のシンドローム計算結果格納用キュー領域2166に格納させ(ステップS5120)、その後ユークリッド計算部2164に図15に示す動作を続行させる。
【0107】
図17は、チェン計算終了割込処理を示すフローチャートである。
このチェン計算終了割込処理は、誤り訂正制御部の割込受付部2161がチェン計算回路2150からCPU2160への割込みを受け付けた場合に実行される割込処理である。
割込受付部2161が割込みを受け付けた旨を制御部2162に通知すると、制御部2162は、ユークリッド計算部2164による図15のフローチャートに示す動作を一時的に中断し、エラーデータ訂正部2168にエラーデータ訂正の処理を実行させる。
【0108】
エラーデータ訂正部2168は、まずチェン計算結果取込部2165に、チェン計算回路2150からのチェン計算の結果であるデータを読み出させる(ステップS5210)。
エラーデータ訂正部2168は、次にチェン計算の結果である誤り位置と、ユークリッド計算で得られた誤り数値多項式から誤り数値を求め(ステップS5220)、データ入出力部2169を介してメモリ2110中の前記誤り位置で示される位置のデータを読み込み(ステップS5230)、読み込んだデータと前記誤り数値との排他的論理和を求め(ステップS5240)、求めた値をデータ入出力部2169を介してメモリ2110中の前記誤り位置で示される位置に書き込む(ステップS5250)。
【0109】
エラーデータ訂正部2168によるエラーデータ訂正の処理が終了すると、制御部2162は、ユークリッド計算部2164に図15に示す動作を続行させる。
図18は、誤り訂正部2101内の各部の動作タイミングの例を示す図である。
【0110】
同図では、誤り訂正部2101の動作を、シンドローム計算回路2140が行うシンドローム計算と、CPU2160を含む誤り訂正制御部が行うシンドローム値格納、ユークリッド計算、エラーデータ訂正と、チェン計算回路2150が行うチェン計算とに分けて表している。同図において、シンドローム値格納は、図16に示したシンドローム計算結果取込部2163による動作であり、ユークリッド計算は、図15に示したユークリッド計算部2164による動作であり、エラーデータ訂正は、図17に示したエラーデータ訂正部2168による動作である。
【0111】
同図に示すように、シンドローム計算回路2140と、CPU2160と、チェン計算回路2150とは同時に並列してそれぞれの動作を行うことができるが、シンドローム値格納と、ユークリッド計算と、エラーデータ訂正とは1つのCPU2160により実行されるために同時に並列して行われることはない。
以下、同図に示す例に基づいて、図14から図17を用いて、誤り訂正部2101の動作を説明する。
【0112】
同図中では、符号化されたデータ列、例えば上述のC1方向のパリティデータが付加された1行の情報データを処理する単位毎に模様を変えて表示している。シンドローム計算の処理単位6001〜6008は、いずれも大体等しい時間である。
以下、シンドローム計算の処理単位6001、処理単位6002、・・・、処理単位6008で扱うデータ列を、それぞれデータ列No.1、データ列No.2、・・・、データ列No.8という。
【0113】
シンドローム計算回路2140は、データ列No.1を取得してシンドローム計算をした後、データ列No.2を取得してシンドローム計算をし、その後データ列No.3を取得してシンドローム計算をし、同様に順次データ列No.4以後についても処理を行う。ここでは、シンドローム計算回路2140がデータ列No.1とNo.2とNo.5とについてシンドローム値が0でないという結果を算出したものとする。
【0114】
まずデータ列No.1に着目して説明すると、データ列No.1は上述の第2チャネルのDMA転送(図4、図10、図12参照)によりメモリ2110からシンドローム計算回路2140に転送される。転送されたデータの取得と並行してシンドローム計算回路2140はシンドローム計算を行い、シンドローム計算の完了は第2チャネルのDMA転送の終了とほぼ同時となるため、CPU2160を含む誤り訂正制御部は、DMAコントローラ2122による第2チャネルのDMA転送の終了を示す割込みによってシンドローム計算の完了を知る。
【0115】
割込受付部2161が第2チャネルのDMA転送の終了を示す割込みを受け付けると、制御部2162の制御によりシンドローム計算結果取込部2163は、シンドローム計算回路からデータ列No.1についてのシンドローム値を読み出し(ステップS5110)、データRAM2180中のシンドローム計算結果格納用キュー領域2166に格納する(ステップS5120)。なお、シンドローム計算回路2140は、シンドローム計算の最終段階で計算結果を内部バッファに格納するものであり、この内部バッファからシンドローム計算結果取込部2163はシンドローム値を読み出すが、シンドローム計算回路2140は前記の読み出しがなされる前に次のデータ列についてのシンドローム値が当該内部バッファに上書きされることはない。
【0116】
ユークリッド計算部2164は、シンドローム値がシンドローム計算結果格納用キュー領域2166に格納される前は動作を進めていないが(ステップS5010)、データ列No.1についてのシンドローム値がシンドローム計算結果格納用キュー領域2166に格納された時点から動作を進め、シンドローム値が0か否かを判断し(ステップS5020、S5030)、0でないため、ユークリッド計算を行う(ステップS5040)。
【0117】
ユークリッド計算部2164がユークリッド計算を行っている間に、シンドローム計算回路2140がデータ列No.2のシンドローム計算を完了し、割込受付部2161を介して第2チャネルのDMA転送終了割込みを受けた制御部2162は、ユークリッド計算部2164によるユークリッド計算を中断し、シンドローム計算結果取込部2163によりシンドローム計算回路2140から計算結果を読み出し(ステップS5110)、シンドローム計算結果格納用キュー領域2166にデータ列No.2についてのシンドローム値を格納し(ステップS5120)、その後、ユークリッド計算部2164によるユークリッド計算の処理を続行させる。
【0118】
その後データ列No.1についてのユークリッド計算を終えたユークリッド計算部2164は、チェン計算起動部を介して、チェン計算回路2150を起動する(ステップS5050)。これによりチェン計算回路2150はデータ列No.1についてのチェン計算を開始する。
ユークリッド計算部2164は、チェン計算回路2150を起動すると、シンドローム計算結果格納用キュー領域2166に既にデータ列No.2についてのシンドローム値が格納されているので(ステップS5010)、これを読み出して0か否か判断する(ステップS5020、S5030)。データ列No.2についてのシンドローム値は0でないので、ユークリッド計算部2164は、ユークリッド計算を行う(ステップS5040)。
【0119】
こうしてユークリッド計算部2164がユークリッド計算を行っている間に、シンドローム計算回路2140がデータ列No.3のシンドローム計算を完了し、制御部2162は、第2チャネルのDMA転送終了割込みを受けた時点でユークリッド計算を中断し、シンドローム計算結果取込部2163によりシンドローム計算回路2140から計算結果を読み出し(ステップS5110)、シンドローム計算結果格納用キュー領域2166にデータ列No.3についてのシンドローム値を格納し(ステップS5120)、その後ユークリッド計算部2164にユークリッド計算の処理を続行させる。
【0120】
その後、ユークリッド計算部2164がユークリッド計算を続行している間に、チェン計算回路215
0がデータ列No.1についてのチェン計算を完了し、制御部2162は割込受付部2161を介してチェン計算回路2150からの割込みを受け付け、ユークリッド計算を中断し、エラーデータ訂正部2168にエラーデータ訂正処理を実行させる。
【0121】
エラーデータ訂正部2168は、チェン計算結果取込部2165を介してデータ列No.1についてのチェン計算の結果をチェン計算回路2150から読み出し(ステップS5210)、誤り数値を求め(ステップS5220)、メモリ2110にアクセスしてデータ列No.1に関連した誤りのあるデータを訂正する(ステップS5230、S5240、S5250)。
【0122】
エラーデータ訂正部2168によるエラーデータ訂正処理の終了後に、制御部2162は、ユークリッド計算部2164に中断していたデータ列No.2のユークリッド計算を続行させる。
その後、またシンドローム計算回路2140がデータ列No.4のシンドローム計算を完了すると、誤り訂正制御部は、上述したのと同様にユークリッド計算を中断し、データ列No.4シンドローム値がシンドローム計算結果格納用キュー領域2166に読み込み、ユークリッド計算を続行する。
【0123】
ユークリッド計算が終了したとき、ユークリッド計算部2164は、チェン計算回路2150を起動する(ステップS5050)。これによりチェン計算回路2150はデータ列No.2についてのチェン計算を開始する。
ユークリッド計算部2164は、チェン計算回路2150を起動した後、シンドローム計算結果格納用キュー領域2166に既にデータ列No.3についてのシンドローム値とデータ列No.4についてのシンドローム値が格納されているので(ステップS5010)、先に格納されたデータ列No.3についてのシンドローム値を読み出して0か否か判断する(ステップS5020、S5030)。
【0124】
データ列No.3についてのシンドローム値は0であるため、ユークリッド計算部2164は、ユークリッド計算等は行わずに、シンドローム計算結果格納用キュー領域2166からデータ列No.4についてのシンドローム値を読み出して0か否か判断する(ステップS5010、S5020、S5030)。
データ列No.4についてのシンドローム値も0であるため、ユークリッド計算部2164は、ユークリッド計算等は行わず、シンドローム計算結果格納用キュー領域2166にシンドローム値が格納されるまで待つ(ステップS5010)。
【0125】
これ以後も誤り訂正部2101は同様に動作を進める。
上述のように誤り訂正部2101は、シンドローム計算とシンドローム計算以外の処理とを並行動作する構成とし、1つのデータ列についてシンドローム計算が終了した時点で、シンドローム計算の結果をキューに格納してシンドローム計算以外の処理に引き渡すように制御している。
【0126】
従って、シンドローム値が0であるか否かの判断に要する時間がユークリッド計算及びエラーデータ訂正にかかる時間と比べて非常に小さいことと、シンドローム値が0以外であるデータ列のデータ列全体に対する割合はかなり少ないことという一般的事実に鑑みれば、上述のような誤り訂正部2101は、多数のデータ列を処理対象とした場合に、データ列毎に要するシンドローム計算に必要な時間の合計にほぼ等しい時間で処理を完了するものであることが明らかである。
【0127】
以上、本発明に係るデータ入出力装置について、実施形態の1つである光ディスク読み取り装置に関して説明したが、本発明は、この実施形態に示した形態に限られないことは言うまでもない。即ち、
(1)実施形態では、光ディスク1010がDVD−ROMであるとしたが、CD−ROM等の他の媒体であってもよい。さらに、光ディスク制御部2100へのデータを入力する回路はフロントエンドプロセッサ1040であり、光ディスク制御部2100からデータを受け取る装置はホストコンピュータ1070であるとしたが(図2参照)、光ディスク制御部2100へデータを入力する回路はいかなる回路又は装置であってもよく、光ディスク制御部2100からデータを受け取る装置もいかなる回路又は装置であってもよい。この場合、入力されるデータが変調されたものでなければディスクインタフェース部2130は復調を行う必要はない。
【0128】
即ち、本発明に係るデータ入出力装置についてのデータ入出力のインタフェースはSCSIその他どのようなものであってもよく、あらゆる場合においてデータ入出力装置は、入力されたデータに誤り訂正等の演算を施して出力する機能を提供する。例えば、データ入出力装置は、ホストコンピュータから転送された情報データを受け取り、当該データに誤り訂正のパリティデータを付加して、ディスクインターフェース経由で記憶メディアに情報データとパリティデータを書き込むものであってもよい。
(2)実施形態では、CPU2160により実行されるプログラムは命令ROM2170に格納していることとしたが、この限りではなく、プログラムは外部から供給されデータRAM2180に格納されることとしてもよい。
(3)実施形態では、誤り訂正はC1方向、C2方向、C1方向と行うこととしたが、これに限定されることはなく、例えばC1方向1回のみでもよい。また、実施形態では、符号化が積符号としてなされているものとしているが、これに限定されることはなく、別の符号化方法によって符号化された情報データであってもよく、この場合には当該符号化方法に対応した誤り訂正を行うこととすればよい。
(4)実施形態では、図12に示すように、ディスクインタフェース部2130とメモリ2110との間のデータ転送の優先度が最も高く、ホストインタフェース部2190とメモリ2110との間のデータ転送の優先度が次に高いこととしていたが、これに限定されることはなく、ホストインタフェース部2190とメモリ2110との間のデータ転送の優先度が最も高く、ディスクインタフェース部2130とメモリ2110との間のデータ転送の優先度が次に高いこととしてもよい。これらはデータ入出力装置に入力するデータの転送速度の条件や演算処理後にデータ入出力装置から出力されるデータの転送速度の条件等のデータ入出力装置に対するインタフェースがどのように定められているか等の事情に応じて定めればよい。
(5)実施形態では、シンドローム計算回路2140と、チェン計算回路2150と、プログラムを実行するCPU2160とにより誤り訂正を行うこととしたが、誤り訂正を行うための回路構成はこの限りではない。
【0129】
例えば、チェン計算回路が行っているチェン計算をプログラムによりCPU2160に実行させることとしてもよい。この場合でも多数のデータ列に対して誤り訂正処理を行ったときには、データ列毎に要するシンドローム計算に必要な時間の合計にある程度近い時間で処理を完了する。
また、ユークリッド計算をハードウェア回路によって行うようにしてもよい。
【0130】
即ち、シンドローム計算を行う回路とシンドローム計算以後に必要な処理を行う回路とを並列動作可能とし、シンドローム計算の結果をキューに格納しするようにし、シンドローム計算以後に必要な処理を行う回路は当該キューに格納されたシンドローム計算結果に基づいて処理を行うことができる構成とするならば、誤り訂正の高速化という本発明の第2の目的を達成することができる。
【0131】
また、誤り訂正の高速化にはつながらないが、本発明の第1の目的を達成するための構成としては、シンドローム計算とチェン計算との両方をもプログラムによりCPU2160に実行させてもよい。
図19は、シンドローム計算とチェン計算との両方をプログラムによりCPU2160に実行させる場合の光ディスク制御部7100の構成図である。光ディスク制御部7100は光ディスク制御部2100とほとんど同じであり、同一の構成要素には同図中で同一符号を付している。
【0132】
この場合には、実施形態においてCPU2160がDMAコントローラ2122の第2チャネルに情報を設定することによりメモリ2110からシンドローム計算回路2140にデータを転送させていたことに代えて、CPU2160はDMAコントローラ7122の第2チャネルにメモリ2110からデータRAM2180に1ブロック分のデータを転送するように情報を設定して、データRAM2180にデータを転送させて、このデータを対象としてシンドローム計算等をするようなプログラムが命令ROM2170に格納されている必要がある。即ち、図4のフローチャートにおけるステップS3050の動作を、メモリからデータRAMへの1ブロック分のデータ転送の指示に代え、ステップS3090とステップS3100を削除した動作をCPU2160が行う。なお、CPU2160はC1方向、C2方向、再度のC1方向のパリティに基づく誤り訂正をすべて完了した段階で、次のステップS3110の動作を行う。
【0133】
ここで、DMAコントローラ7122は、DMAコントローラ2122と同等の動作に加えて、第2チャネルのDMA転送においては、図10に示したステップS4110の動作を8バイトのデータの転送毎に行うものである。
なお、光ディスク制御部7100を図19に示すものとした場合、複数の誤り訂正方式のうちのいずれかにより符号化されたデータを、命令ROM2170に複数の誤り訂正方式に対応するプログラムを格納しておき、そのいずれかを選択して実行することにより、誤り訂正することができるので、ハードウェアの変更を伴わず複数の誤り訂正方式に対応できる。
【0134】
また、誤り訂正のための演算内容については実施形態で示したものに限定されない。即ち、実施形態では、誤り訂正のための誤り位置多項式及び誤り数値多項式を求めるためにはユークリッド法によることとしたが、他の方法によって誤り位置多項式及び誤り数値多項式を求めることとしてもよく、誤り位置多項式の根を求めるのにチェン検索と呼ばれる方法を用いることとしたが、他の方法で誤り位置多項式の根を求めてもよい。
(6)実施形態では、メモリ2110は15ブロック分のデータを格納できる容量としたが、これに限定されることはなく、データを入力して誤り訂正等の演算を施してその後にデータを出力することを前提とし、前記演算を施すのに適当なまとまったサイズをnバイトとすると、nバイトの2倍以上のメモリがあればよい。また、メモリ2110は光ディスク制御部2100の外部に存在するものであってもよい。
【0135】
また、実施形態では、1ブロック分のデータは約38KByteとしたが、この数値に限定されることはない。
(7)実施形態では、CPU2160は、図7に示すメモリ管理情報を用いて所定の演算によりDMAコントローラに設定するためのアドレスを取得することとしているが、DMAコントローラに設定するためのアドレスの記憶方法やメモリ2110の内容の管理方法はこれに限定されることはなく、例えば、データを入力すべきメモリ内のアドレスと、誤り訂正が可能なメモリ内のアドレスと、出力可能なデータのメモリ内のアドレスとをそれぞれ記憶し、これを参照・更新するような方式を用いてもよい。
(8)実施形態では、メモリと他の回路間でのデータのDMA転送については8バイト毎に、リクエストをチェックしつつ行うこととしたが(図9〜図12参照)、この8バイトというサイズに限定されることはない。ディスクインタフェース部2130に入力されるデータの転送速度と、ホストインタフェース部2190から出力されるデータの転送速度とをそれぞれある値に保つ必要がある場合において、前記のDMA転送をする単位であるデータサイズを大きくすると、大きくするにつれてディスクインタフェース部2130とホストインタフェース部2190とは大きなサイズのFIFOを必要とするようになる。
【0136】
また、1データ列が8バイトで割り切れない場合は、余りのバイト数を最後に転送すればよい。
(9)実施形態では、シンドローム計算結果格納用キュー領域2166は、シンドローム計算の結果を10個分格納できるキューとしたが、この10個という数値に限定されることはなく、シンドローム計算に必要な時間、誤り訂正のための処理のうちシンドローム計算以外にかかる時間、誤りの発生率等に基づいて、キューを通常はあふれないような大きさとすればよい。
(10)実施形態では、シンドローム計算回路2140は内部バッファを持ち、計算結果が上書きされることのないように処理時間等が調整されていることとしたが、例えば当該内部バッファをFIFOとしていてもよい。
(11)実施形態における誤り訂正制御部の処理手順(図15〜図17のフローチャートの手順)等を機械語プログラムにより実現し、これを記録媒体に記録して流通・販売の対象にしても良い。このような記録媒体には、ICカードや光ディスク、フロッピーディスク、ROM等があるが、これらに記録された機械語プログラムは汎用のハードウェアにインストールされることにより利用に供される。ここでいう汎用ハードウェアは、一般のパーソナルコンピュータやプログラム実行能力を有する家電機器等であり、インストールした上記機械語プログラムを逐次実行して、前記誤り訂正制御部の機能を実現する。
【0137】
【発明の効果】
以上の説明から明らかなように、本発明に係るデータ入出力装置は、外部の第1装置から受け取ったデータについて演算をして外部の第2装置に出力するデータ入出力装置であって、第1装置から継続的にデータを受け取る入力手段と、与えられたデータについて演算を行う演算手段と、データを第2装置に出力する出力手段と、データを格納するための1つのメモリと、前記入力手段、前記演算手段及び前記出力手段と前記メモリとを接続するバスである1つのメモリバスと、前記入力手段を転送元とし、前記メモリを転送先とした第1DMA転送を行う第1データ転送手段と、前記第1データ転送手段による第1バイト数分の第1DMA転送が終了した場合に第1DMA転送によりデータが格納された前記メモリ中の領域を転送元とし前記演算手段を転送先として前記演算手段に演算対象のデータを与えるための第2DMA転送を行う第2データ転送手段と、前記演算手段による第1バイト数分のデータについての演算が終了した場合に当該データが格納されている前記メモリ中の領域を転送元とし前記出力手段を転送先とした第3DMA転送を行う第3データ転送手段と、前記第1データ転送手段と前記第2データ転送手段と前記第3データ転送手段とが排他的にデータ転送を実行するよう制御するデータ転送制御手段とを備え、前記データ入出力装置における前記入力手段と前記演算手段と前記出力手段とは、並列にそれぞれの動作を実行することを特徴とする。
【0138】
これにより、上述の第1の目的を達成し、第1DMA転送と第2DMA転送と第3DMA転送とをデータ転送制御手段により排他的に実行するので、継続的に入力されるデータを受け取り、当該データに演算を施した後に当該データを出力する一連の処理を1つのメモリのみを使用して行うことのできるデータ入出力装置が実現される。
【0139】
また、前記データ転送制御手段は、第2バイト数分のデータについての第1DMA転送、第2DMA転送又は第3DMA転送の必要性が生じた場合に、前記第1データ転送手段、前記第2データ転送手段又は前記第3データ転送手段であって当該必要性が生じたデータ転送を行うものに、第2バイト数分のデータを連続して転送させ、第1DMA転送、第2DMA転送又は第3DMA転送のうちの複数につきデータ転送の必要性が競合したときには、前記第1データ転送手段、前記第2データ転送手段又は前記第3データ転送手段であって当該必要性が生じたデータ転送を行うもののうち所定の優先度に基づいて定めたものに、第2バイト数分のデータを連続して転送させることとすることもできる。
【0140】
これにより、優先度に基づいてメモリアクセスが制御されるので、前記データ入出力装置に対し外部の装置からデータが送られてくる速度や、当該データ入出力装置からデータを受け取る外部の装置が要求する転送速度について、規格等により一定の速度が定められている場合に、これらの転送速度の要求に応えた制御を行うことができる。即ち、このような構成によれば、転送速度要求がなされているものの優先度を高く設定することにより、そのようなものについてのデータ転送の必要性に即応することができる。
【0141】
また、これにより、データ転送を第2バイト数分まとめて行うため、データ毎に換算した場合のメモリアクセス速度が向上し、上述のようなデータの転送速度についての要求に対応しやすくなる。
また、前記メモリは、ダイナミックメモリであり、第2バイト数は、前記メモリを転送先又は転送元として第2バイト数分のデータを連続してDMA転送する場合に1バイト当たりのメモリアクセスに要する時間をt秒とし、前記入力手段が第1装置から受け取るデータの平均転送速度をvバイト/秒とし、あるデータにつき第2DMA転送が必要な回数をnとすると、tv(n+2)<1を満たすように定めた数であることとすることもできる。
【0142】
これにより、継続的にデータが入力されても、メモリをオーバフローさせることがないデータ入出力装置が実現される。
また、前記入力手段は、第1装置から受け取ったデータを一時的に蓄積するための第1FIFOを有し、前記出力手段は、第2装置に出力するデータを一時的に蓄積するための第2FIFOを有し、前記第1データ転送手段は、前記入力手段中の第1FIFOを第1DMA転送の転送元とし、前記第3データ転送手段は、前記出力手段中の第2FIFOを第3DMA転送の転送先とし、第1DMA転送の必要性は、第1FIFOに第2バイト数分のデータが蓄積された場合に生じ、第3DMA転送の必要性は、前記メモリ中に前記演算手段による演算が終了した第2バイト数分のデータが存在する場合であって、第2FIFOに第2バイト数分のデータの空きが生じたときに生じることとすることもできる。
【0143】
これにより、あるデータ転送のためにメモリアクセスがなされていること等により、第1DMA転送又は第3DMA転送の必要性に即時に対応できない場合においても、FIFOにより、入力されるデータを受け取り損なうことや出力するデータが途切れることを防止することができる。即ち、データ入出力装置に対し外部の装置から継続的にデータが送られてくる状況下で、当該データ入出力装置からデータを受け取る外部の装置が要求するデータの転送速度を確実に保証することができるデータ入出力装置が実現される。
【0144】
また、前記優先度は、前記第1データ転送手段による第1DMA転送が最も高く、前記データ転送制御手段は、前記第1DMA転送の必要性が生じた時に既に前記第1データ転送手段、前記第2データ転送手段又は前記第3データ転送手段のうちいずれかにDMA転送を実行させている場合には、実行中の第2バイト数分のDMA転送の終了後に前記第1データ転送手段に第1DMA転送を実行させ、前記第1DMA転送の必要性が生じた時に既に前記第1データ転送手段、前記第2データ転送手段又は前記第3データ転送手段のうちいずれかにDMA転送を実行させていない場合には、即時に前記第1データ転送手段に第1DMA転送を実行させ、第2バイト数は、第1FIFOの容量をmバイトとし、前記メモリを転送先又は転送元として第2バイト数分のデータを連続してDMA転送する場合にメモリアクセスに要する時間をT秒とし、前記入力手段が第1装置から受け取るデータの平均転送速度をvバイト/秒とすると、m/v>Tを満たすように定めた数であることとすることもできる。
【0145】
これにより、データ入出力装置に継続的に送られてくるデータを即座にメモリに格納でき、データを受け取り損なうことのないデータ入出力装置が実現される。
また、前記優先度は、前記第1データ転送手段及び前記第3データ転送手段によるDMA転送よりも前記第2データ転送手段による第2DMA転送の方が低く、前記データ転送制御手段は、第1DMA転送の必要性及び第3DMA転送の必要性の生じていない場合に限り第2データ転送手段に第2DMA転送を実行させることとすることもできる。
【0146】
これにより、演算処理のためのDMA転送は、入力手段からメモリへのDMA転送と、メモリから出力手段へのDMA転送との合間に行われることとなるため、データ入力とデータ出力との双方のデータ転送速度が定まっている場合に対応しうるデータ入出力装置が実現される。
また、前記入力手段が第1装置から受け取るデータには誤り訂正符号が含まれ、前記演算は、誤り訂正であり、前記演算手段は、前記誤り訂正を行うために前記メモリにアクセスして前記誤り訂正符号に基づいて前記メモリ中に格納されているデータを参照及び更新し、前記データ転送制御手段はさらに、前記第1データ転送手段と前記第2データ転送手段と前記第3データ転送手段とがデータ転送を実行していない間に限り前記演算手段に誤り訂正のための前記メモリへのアクセスを許可することとすることもできる。
【0147】
これにより、入力されたデータについて誤り訂正を施して出力するデータ入出力装置が実現される。
また、前記第1装置は、光ディスクからデータを読み出す装置であり、前記光ディスクは、第2バイト数以上の数である第3バイト数毎に積符号による符号化がされたデータを記録しており、前記メモリは、第3バイト数の2倍以上のサイズであることとすることもできる。
【0148】
これにより、光ディスクから読み出したデータについて誤り訂正を施して出力するデータ入出力装置が実現される。
また、前記演算手段は、第4バイト数のデータが与えられると当該データに対応するシンドロームを算出するシンドローム計算処理を連続的に複数回行うシンドローム計算部と、複数のシンドロームを格納可能なキューであるシンドローム格納キューと、前記シンドローム計算部が算出したシンドロームを前記シンドローム格納キューに格納するシンドローム格納部と、前記シンドローム格納キューにシンドロームが1つ以上格納されている場合に当該シンドローム格納キューから1つのシンドロームを取り出し、取り出した当該シンドロームが0でないときのみに、当該シンドロームに基づき当該シンドロームに対応するデータの誤りを訂正する訂正部とを有し、前記演算手段における前記シンドローム計算部と前記訂正部とは、並行してそれぞれの動作を実行することとすることもできる。
【0149】
これにより、シンドローム計算を、シンドローム計算以外の誤り訂正処理と独立した実行速度で行うことができるようになるため、従来の誤り訂正の方式のようにシンドローム計算の実行速度をユークリッド計算の実行速度と統一する必要がなくなり、誤り訂正全体としての実行速度を高速化できるデータ入出力装置が実現される。
【0150】
即ち、シンドローム計算と、シンドローム計算以外の誤り訂正処理とを並行して実行することにより、誤り訂正全体に必要な時間は、シンドローム計算に必要な時間とほぼ等しくなり、高速な誤り訂正を行うデータ入出力装置が実現される。
従って、本発明は、これにより上述の第2の目的をも達成する。なお、このように第1の目的と第2の目的とをともに達成することにより、小型高速化に最適なデータ入出力装置が実現されることになる。
【0151】
また、前記訂正部は、前記シンドロームに基づき誤り位置多項式及び誤り数値多項式を求める多項式算出部と、前記多項式算出部が求めた誤り位置多項式の根である誤り位置を求める誤り位置算出部と、前記多項式算出部が求めた誤り数値多項式と、前記誤り位置算出部が求めた誤り位置とに基づき誤り数値を求め、これらに基づき前記メモリ中のデータを訂正するデータ訂正部とを含み、前記誤り位置算出部は、前記多項式算出部又はデータ訂正部と並行して動作を行うこととすることもできる。
【0152】
これにより、シンドローム計算以外の誤り訂正処理において、あるデータ列に対する誤り位置の算出と、別のデータ列に対する誤り位置多項式及び誤り数値多項式の算出とを同時に行うことができるため、誤り訂正全体に必要な時間は、シンドローム計算に必要な時間に一層近くなり、高速な誤り訂正を行うデータ入出力装置が実現される。
【0153】
また、上述の第2の目的を達成するために、本発明は、ブロック符号化された複数の受信語のそれぞれについて誤り訂正を連続して行う誤り訂正装置であって、受信語を逐次取得して当該受信語に基づき当該受信語に対応するシンドロームを算出するシンドローム計算処理を連続的に複数回行うシンドローム計算手段と、複数のシンドロームを格納可能なキューであるシンドローム格納キューと、前記シンドローム計算手段が算出したシンドロームを前記シンドローム格納キューに格納するシンドローム格納手段と、前記シンドローム格納キューにシンドロームが1つ以上格納されている場合に当該シンドローム格納キューから1つのシンドロームを取り出し、取り出した当該シンドロームが0でないときのみに、当該シンドロームに基づき当該シンドロームに対応する受信語の誤りを訂正する訂正手段とを備え、前記誤り訂正装置における前記シンドローム計算手段と前記訂正手段とは、並行してそれぞれの動作を実行することを特徴とする。
【0154】
これにより、シンドローム計算を、シンドローム計算以外の誤り訂正処理と独立した実行速度で行うことができるようになるため、従来の誤り訂正の方式のようにシンドローム計算の実行速度をユークリッド計算の実行速度と統一する必要がなくなり、同一データ列に対するシンドローム計算に必要な時間がユークリッド計算に必要な時間より長い場合であっても、誤り訂正全体としての実行速度を高速化できる誤り訂正装置が実現される。
【0155】
即ち、シンドローム計算と、シンドローム計算以外の誤り訂正処理とを並行して実行するので、誤り訂正全体に必要な時間は、シンドローム計算に必要な時間とほぼ等しくなり、高速な誤り訂正を行う誤り訂正装置が実現される。
また、前記誤り訂正装置はさらに、前記シンドローム計算手段が取得する受信語が複数格納されている受信語記憶手段を備え、前記訂正手段は、前記受信語記憶手段に格納されている受信語を更新することにより前記訂正を行うこととすることもできる。
【0156】
これにより、メモリ内に格納されている複数の受信語に対しての誤り訂正を高速に行える誤り訂正装置が実現される。
また、前記訂正手段は、前記シンドロームに基づき誤り位置多項式及び誤り数値多項式を求める多項式算出手段と、前記多項式算出手段が求めた誤り位置多項式の根である誤り位置を求める誤り位置算出手段と、前記多項式算出手段が求めた誤り数値多項式と、前記誤り位置算出手段が求めた誤り位置とに基づき誤り数値を求め、これらに基づき前記受信語中のデータを訂正するデータ訂正手段とを有し、前記誤り位置算出手段は、前記多項式算出手段又はデータ訂正手段と並行して動作を行うこととすることもできる。
【0157】
これにより、シンドローム計算以外の誤り訂正処理において、あるデータ列に対する誤り位置の算出と、別のデータ列に対する誤り位置多項式及び誤り数値多項式の算出とを同時に行うことができるため、誤り訂正全体に必要な時間は、シンドローム計算に必要な時間に一層近くなり、高速な誤り訂正を行う誤り訂正装置が実現される。
【図面の簡単な説明】
【図1】本発明の実施の形態である光ディスク読み取り装置の概略構成図である。
【図2】光ディスク制御部2100の回路構成図である。
【図3】光ディスク制御部2100におけるデータの流れを示す図である。
【図4】光ディスク制御部2100の動作概要を示すフローチャートである。
【図5】光ディスク制御部2100が複数ブロックのデータを処理する場合の各部の動作タイミングを示す図である。
【図6】メモリ2110の内部へのアクセスのイメージを示す概念図である。
【図7】メモリ管理情報のイメージを示す図である。
【図8】バス制御部2120の機能ブロック図である。
【図9】ディスクインタフェース部2130の動作の一部を示すフローチャートである。
【図10】シンドローム計算回路2140の動作の一部を示すフローチャートである。
【図11】ホストインタフェース部2190の動作の一部を示すフローチャートである。
【図12】バス制御部2120の動作の一部を示すフローチャートである。
【図13】メモリ2110を対象とするデータ転送のタイミングの例を示す図である。
【図14】誤り訂正制御部に関する機能ブロック図である。
【図15】誤り訂正制御部の通常動作を示すフローチャートである。
【図16】第2チャネル転送終了割込処理を示すフローチャートである。
【図17】チェン計算終了割込処理を示すフローチャートである。
【図18】誤り訂正部2101内の各部の動作タイミングの例を示す図である。
【図19】シンドローム計算とチェン計算との両方をプログラムによりCPU2160に実行させる場合の光ディスク制御部7100の構成図である。
【図20】従来の光ディスク読み取り装置の概略構成図である。
【図21】従来の光ディスク制御部1100の構成図である。
【図22】誤り訂正符号の例を示す図である。
【図23】従来の誤り訂正部1150の構成図である。
【図24】従来の誤り訂正部1150における並列処理の様子を示す図である。
【符号の説明】
1010 光ディスク
1020 ピックアップ
1030 増幅器
1040 フロントエンドプロセッサ
1050 回転モータ
1060 サーボコントローラ
1070 ホストコンピュータ
1154 エラーデータ訂正回路
1160 ホストインタフェース部
2000 光ディスク読み取り装置
2100 光ディスク制御部
2101 誤り訂正部
2110 メモリ
2120 バス制御部
2121 バス調停部
2122 DMAコントローラ
2123 転送制御情報記憶部
2124 リクエスト受付部
2130 ディスクインタフェース部
2140 シンドローム計算回路
2150 チェン計算回路
2160 CPU
2161 割込受付部
2162 制御部
2163 シンドローム計算結果取込部
2164 ユークリッド計算部
2165 チェン計算結果取込部
2166 シンドローム計算結果格納用キュー領域
2167 チェン計算起動部
2168 エラーデータ訂正部
2169 データ入出力部
2170 命令ROM
2180 データRAM
2190 ホストインタフェース部
2200 システム制御部

Claims (14)

  1. 外部の第1装置から受け取ったデータについて演算をして外部の第2装置に出力するデータ入出力装置であって、
    第1装置から継続的にデータを受け取る入力手段と、
    与えられたデータについて演算を行う演算手段と、
    データを第2装置に出力する出力手段と、
    データを格納するための1つのメモリと、
    前記入力手段、前記演算手段及び前記出力手段と前記メモリとを接続するバスである1つのメモリバスと、
    前記入力手段を転送元とし、前記メモリを転送先とした第1DMA転送を行う第1データ転送手段と、
    前記第1データ転送手段による第1バイト数分の第1DMA転送が終了した場合に、第1DMA転送によりデータが格納された前記メモリ中の領域を転送元とし、前記演算手段を転送先として前記演算手段に演算対象のデータを与えるための第2DMA転送を行う第2データ転送手段と、
    前記演算手段による第1バイト数分のデータについての演算が終了した場合に、当該データが格納されている前記メモリ中の領域を転送元とし、前記出力手段を転送先とした第3DMA転送を行う第3データ転送手段と、
    前記第1データ転送手段と前記第2データ転送手段と前記第3データ転送手段とが排他的にデータ転送を実行するよう制御するデータ転送制御手段とを備え、
    前記データ入出力装置における前記入力手段と前記演算手段と前記出力手段とは、並列にそれぞれの動作を実行する
    ことを特徴とするデータ入出力装置。
  2. 前記データ転送制御手段は、
    第2バイト数分のデータについての第1DMA転送、第2DMA転送又は第3DMA転送の必要性が生じた場合に、前記第1データ転送手段、前記第2データ転送手段又は前記第3データ転送手段であって当該必要性が生じたデータ転送を行うものに、第2バイト数分のデータを連続して転送させ、
    第1DMA転送、第2DMA転送又は第3DMA転送のうちの複数につきデータ転送の必要性が競合したときには、前記第1データ転送手段、前記第2データ転送手段又は前記第3データ転送手段であって当該必要性が生じたデータ転送を行うもののうち所定の優先度に基づいて定めたものに、第2バイト数分のデータを連続して転送させる
    ことを特徴とする請求項1記載のデータ入出力装置。
  3. 前記メモリは、ダイナミックメモリであり、
    第2バイト数は、前記メモリを転送先又は転送元として第2バイト数分のデータを連続してDMA転送する場合に1バイト当たりのメモリアクセスに要する時間をt秒とし、前記入力手段が第1装置から受け取るデータの平均転送速度をvバイト/秒とし、あるデータにつき第2DMA転送が必要な回数をnとすると、tv(n+2)<1を満たすように定めた数である
    ことを特徴とする請求項2記載のデータ入出力装置。
  4. 前記入力手段は、第1装置から受け取ったデータを一時的に蓄積するための第1FIFOを有し、
    前記出力手段は、第2装置に出力するデータを一時的に蓄積するための第2FIFOを有し、
    前記第1データ転送手段は、前記入力手段中の第1FIFOを第1DMA転送の転送元とし、
    前記第3データ転送手段は、前記出力手段中の第2FIFOを第3DMA転送の転送先とし、
    第1DMA転送の必要性は、第1FIFOに第2バイト数分のデータが蓄積された場合に生じ、
    第3DMA転送の必要性は、前記メモリ中に前記演算手段による演算が終了した第2バイト数分のデータが存在する場合であって、第2FIFOに第2バイト数分のデータの空きが生じたときに生じる
    ことを特徴とする請求項3記載のデータ入出力装置。
  5. 前記優先度は、前記第1データ転送手段による第1DMA転送が最も高く、
    前記データ転送制御手段は、前記第1DMA転送の必要性が生じた時に既に前記第1データ転送手段、前記第2データ転送手段又は前記第3データ転送手段のうちいずれかにDMA転送を実行させている場合には、実行中の第2バイト数分のDMA転送の終了後に前記第1データ転送手段に第1DMA転送を実行させ、前記第1DMA転送の必要性が生じた時に既に前記第1データ転送手段、前記第2データ転送手段又は前記第3データ転送手段のうちいずれかにDMA転送を実行させていない場合には、即時に前記第1データ転送手段に第1DMA転送を実行させ、
    第2バイト数は、第1FIFOの容量をmバイトとし、前記メモリを転送先又は転送元として第2バイト数分のデータを連続してDMA転送する場合にメモリアクセスに要する時間をT秒とし、前記入力手段が第1装置から受け取るデータの平均転送速度をvバイト/秒とすると、m/v>Tを満たすように定めた数である
    ことを特徴とする請求項4記載のデータ入出力装置。
  6. 前記優先度は、前記第1データ転送手段及び前記第3データ転送手段によるDMA転送よりも前記第2データ転送手段による第2DMA転送の方が低く、
    前記データ転送制御手段は、第1DMA転送の必要性及び第3DMA転送の必要性の生じていない場合に限り第2データ転送手段に第2DMA転送を実行させる
    ことを特徴とする請求項5記載のデータ入出力装置。
  7. 前記入力手段が第1装置から受け取るデータには誤り訂正符号が含まれ、
    前記演算は、誤り訂正であり、
    前記演算手段は、前記誤り訂正を行うために前記メモリにアクセスして前記誤り訂正符号に基づいて前記メモリ中に格納されているデータを参照及び更新し、
    前記データ転送制御手段はさらに、
    前記第1データ転送手段と前記第2データ転送手段と前記第3データ転送手段とがデータ転送を実行していない間に限り前記演算手段に誤り訂正のための前記メモリへのアクセスを許可する
    ことを特徴とする請求項6記載のデータ入出力装置。
  8. 前記第1装置は、光ディスクからデータを読み出す装置であり、
    前記光ディスクは、第2バイト数以上の数である第3バイト数毎に積符号による符号化がされたデータを記録しており、
    前記メモリは、第3バイト数の2倍以上のサイズである
    ことを特徴とする請求項7記載のデータ入出力装置。
  9. 前記演算手段は、
    第4バイト数のデータが与えられると当該データに対応するシンドロームを算出するシンドローム計算処理を連続的に複数回行うシンドローム計算部と、
    複数のシンドロームを格納可能なキューであるシンドローム格納キューと、
    前記シンドローム計算部が算出したシンドロームを前記シンドローム格納キューに格納するシンドローム格納部と、
    前記シンドローム格納キューにシンドロームが1つ以上格納されている場合に当該シンドローム格納キューから1つのシンドロームを取り出し、取り出した当該シンドロームが0でないときのみに、当該シンドロームに基づき当該シンドロームに対応するデータの誤りを訂正する訂正部とを有し、
    前記演算手段における前記シンドローム計算部と前記訂正部とは、並行してそれぞれの動作を実行する
    ことを特徴とする請求項8記載のデータ入出力装置。
  10. 前記訂正部は、
    前記シンドロームに基づき誤り位置多項式及び誤り数値多項式を求める多項式算出部と、
    前記多項式算出部が求めた誤り位置多項式の根である誤り位置を求める誤り位置算出部と、
    前記多項式算出部が求めた誤り数値多項式と、前記誤り位置算出部が求めた誤り位置とに基づき誤り数値を求め、これらに基づき前記メモリ中のデータを訂正するデータ訂正部とを含み、
    前記誤り位置算出部は、前記多項式算出部又はデータ訂正部と並行して動作を行う
    ことを特徴とする請求項9記載のデータ入出力装置。
  11. ブロック符号化された複数の受信語のそれぞれについて誤り訂正を連続して行う誤り訂正装置であって、
    受信語を逐次取得して当該受信語に基づき当該受信語に対応するシンドロームを算出するシンドローム計算処理を連続的に複数回行うシンドローム計算手段と、
    複数のシンドロームを格納可能なキューであるシンドローム格納キューと、
    前記シンドローム計算手段が算出したシンドロームを前記シンドローム格納キューに格納するシンドローム格納手段と、
    前記シンドローム格納キューにシンドロームが1つ以上格納されている場合に当該シンドローム格納キューから1つのシンドロームを取り出し、取り出した当該シンドロームが0でないときのみに、当該シンドロームに基づき当該シンドロームに対応する受信語の誤りを訂正する訂正手段とを備え、
    前記誤り訂正装置における前記シンドローム計算手段と前記訂正手段とは、並行してそれぞれの動作を実行する
    ことを特徴とする誤り訂正装置。
  12. 前記誤り訂正装置はさらに、
    前記シンドローム計算手段が取得する受信語が複数格納されている受信語記憶手段を備え、
    前記訂正手段は、前記受信語記憶手段に格納されている受信語を更新することにより前記訂正を行う
    ことを特徴とする請求項11記載の誤り訂正装置。
  13. 前記訂正手段は、
    前記シンドロームに基づき誤り位置多項式及び誤り数値多項式を求める多項式算出手段と、
    前記多項式算出手段が求めた誤り位置多項式の根である誤り位置を求める誤り位置算出手段と、
    前記多項式算出手段が求めた誤り数値多項式と、前記誤り位置算出手段が求めた誤り位置とに基づき誤り数値を求め、これらに基づき前記受信語中のデータを訂正するデータ訂正手段とを有し、
    前記誤り位置算出手段は、前記多項式算出手段又はデータ訂正手段と並行して動作を行う
    ことを特徴とする請求項12記載の誤り訂正装置。
  14. ブロック符号化された複数の受信語のそれぞれについて誤り訂正を連続して行うために、受信語を逐次取得して当該受信語に基づき当該受信語に対応するシンドロームを算出するシンドローム計算手段と並列して実行可能でありRAMを有するコンピュータに、誤り訂正処理を実行させるための誤り訂正制御プログラムを記録した記録媒体であって、
    前記誤り訂正制御プログラムは、
    前記シンドローム計算手段がシンドロームを算出した時に、当該シンドロームを前記シンドローム計算手段から取り込み前記RAMに格納するシンドローム格納ステップと、
    前記RAMにシンドロームが1つ以上格納されている場合に当該RAMから1つのシンドロームを読み出し、読み出した当該シンドロームが0でないときのみに、当該シンドロームに基づき当該シンドロームに対応する受信語の誤りを訂正する訂正ステップとを含む
    ことを特徴とする記録媒体。
JP08856698A 1997-04-02 1998-04-01 データを内部メモリに取り込み当該データに演算を施して出力する高速動作可能なデータ入出力装置 Expired - Lifetime JP3968167B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9-83642 1997-04-02
JP8364297 1997-04-02

Publications (2)

Publication Number Publication Date
JPH10334040A JPH10334040A (ja) 1998-12-18
JP3968167B2 true JP3968167B2 (ja) 2007-08-29

Family

ID=13808114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08856698A Expired - Lifetime JP3968167B2 (ja) 1997-04-02 1998-04-01 データを内部メモリに取り込み当該データに演算を施して出力する高速動作可能なデータ入出力装置

Country Status (8)

Country Link
US (1) US6041368A (ja)
EP (1) EP0874320B1 (ja)
JP (1) JP3968167B2 (ja)
KR (1) KR100455012B1 (ja)
CN (2) CN1501248B (ja)
DE (1) DE69837123T2 (ja)
HK (1) HK1015479A1 (ja)
TW (1) TW432362B (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3782840B2 (ja) * 1995-07-14 2006-06-07 株式会社ルネサステクノロジ 外部記憶装置およびそのメモリアクセス制御方法
JP3176638B2 (ja) * 1997-04-02 2001-06-18 松下電器産業株式会社 エラー検出用情報付加装置
US6115837A (en) * 1998-07-29 2000-09-05 Neomagic Corp. Dual-column syndrome generation for DVD error correction using an embedded DRAM
US6662334B1 (en) * 1999-02-25 2003-12-09 Adaptec, Inc. Method and device for performing error correction on ECC data sectors
JP2002041445A (ja) 2000-05-19 2002-02-08 Matsushita Electric Ind Co Ltd 高性能dmaコントローラ
TW541519B (en) * 2000-05-24 2003-07-11 Acer Labs Inc Encoding/decoding system in optical disk storage device
KR100403634B1 (ko) * 2001-10-17 2003-10-30 삼성전자주식회사 고속 파이프라인 리드-솔로몬 디코더에 적용하기 위한메모리 장치와 메모리 액세스 방법 및 그 메모리 장치를구비한 리드-솔로몬 디코더
FR2834146A1 (fr) * 2001-12-20 2003-06-27 St Microelectronics Sa Turbo-decodeur compact a haute efficacite
WO2003079194A1 (fr) * 2002-03-18 2003-09-25 Matsushita Electric Industrial Co., Ltd. Appareil de traitement de donnees
JP3743509B2 (ja) * 2002-03-20 2006-02-08 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6941428B2 (en) * 2002-09-25 2005-09-06 International Business Machines Corporation Memory controller optimization
JP4551635B2 (ja) 2003-07-31 2010-09-29 ソニー株式会社 パイプライン処理システムおよび情報処理装置
US20050038946A1 (en) * 2003-08-12 2005-02-17 Tadpole Computer, Inc. System and method using a high speed interface in a system having co-processors
JP4082300B2 (ja) 2003-08-29 2008-04-30 ソニー株式会社 パイプライン処理システムおよび情報処理装置
CN1300703C (zh) * 2003-11-05 2007-02-14 松下电器产业株式会社 调节电路及其具有它的功能处理电路
US7219258B2 (en) * 2003-12-10 2007-05-15 International Business Machines Corporation Method, system, and product for utilizing a power subsystem to diagnose and recover from errors
JP2006004560A (ja) * 2004-06-18 2006-01-05 Elpida Memory Inc 半導体記憶装置及びその誤り訂正方法
JP2006190346A (ja) * 2004-12-28 2006-07-20 Toshiba Corp エラー訂正処理装置及びエラー訂正処理方法
US7496695B2 (en) 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
US20070260961A1 (en) * 2006-04-21 2007-11-08 Kuo-Lung Chien Error correction system and related method thereof
US20070260963A1 (en) * 2006-04-21 2007-11-08 Kuo-Lung Chien Error correction system and related method thereof
US20070260960A1 (en) * 2006-04-21 2007-11-08 Kuo-Lung Chien Error correction system and related method thereof
GB0622408D0 (en) * 2006-11-10 2006-12-20 Ibm Device and method for detection and processing of stalled data request
JP2011130008A (ja) * 2009-12-15 2011-06-30 Hitachi-Lg Data Storage Inc データ入出力装置
US8612834B2 (en) * 2011-03-08 2013-12-17 Intel Corporation Apparatus, system, and method for decoding linear block codes in a memory controller
JP2014071834A (ja) * 2012-10-01 2014-04-21 Toshiba Corp 通信装置およびプログラム
US9299387B2 (en) * 2014-07-25 2016-03-29 Kabushiki Kaisha Toshiba Magnetic disk apparatus, controller and data processing method
US9800271B2 (en) * 2015-09-14 2017-10-24 Qualcomm Incorporated Error correction and decoding
KR102504176B1 (ko) * 2016-06-23 2023-03-02 에스케이하이닉스 주식회사 반도체장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5833767A (ja) * 1981-08-21 1983-02-28 Canon Inc デイスク制御装置
JPS60229160A (ja) * 1984-04-26 1985-11-14 Toshiba Corp マルチプロセツサシステム
JPS60254463A (ja) * 1984-05-31 1985-12-16 Sony Corp デジタルデ−タの記録ないし再生方式
US5148432A (en) * 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
US5497344A (en) * 1989-01-26 1996-03-05 Sharp Kabushiki Kaisha Data flow type information processor
US5068858A (en) * 1989-12-21 1991-11-26 International Business Machines Corporation Error correction capability varied with track location on a magnetic or optical disk
US5243581A (en) * 1990-07-23 1993-09-07 Matsushita Electric Industrial Co., Ltd. Data recording/reproducing apparatus having plural optical disk drives operating in parallel
WO1992015054A1 (en) * 1991-02-19 1992-09-03 International Business Machines Corporation Data transfer between a data storage subsystem and host system
JP2703417B2 (ja) * 1991-04-05 1998-01-26 富士通株式会社 受信バッファ
US5530901A (en) * 1991-11-28 1996-06-25 Ricoh Company, Ltd. Data Transmission processing system having DMA channels running cyclically to execute data transmission from host to memory and from memory to processing unit successively
EP0582370B1 (en) * 1992-06-05 1998-10-07 Compaq Computer Corporation Disk drive controller with a posted write cache memory
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus
US5604753A (en) * 1994-01-04 1997-02-18 Intel Corporation Method and apparatus for performing error correction on data from an external memory
US5661848A (en) * 1994-09-08 1997-08-26 Western Digital Corp Multi-drive controller with encoder circuitry that generates ECC check bytes using the finite field for optical data for appending to data flowing to HDA
JPH08102140A (ja) * 1994-09-30 1996-04-16 Sony Corp ディスク装置
US5640286A (en) * 1995-05-08 1997-06-17 Western Digital Corporation Disk drive with error code embedded sector identification
KR0160193B1 (ko) * 1995-12-30 1998-12-15 김광호 직접메모리접근 제어장치
JP3234493B2 (ja) * 1996-03-11 2001-12-04 三洋電機株式会社 符号誤り訂正方法及び符号誤り訂正装置
US5822568A (en) * 1996-05-20 1998-10-13 Advanced Micro Devices, Inc. System for improving the real-time functionality of a personal computer which employs an interrupt servicing DMA controller

Also Published As

Publication number Publication date
EP0874320A3 (en) 2001-01-17
EP0874320A2 (en) 1998-10-28
KR100455012B1 (ko) 2004-12-17
CN1501248A (zh) 2004-06-02
US6041368A (en) 2000-03-21
CN1202646A (zh) 1998-12-23
KR19980081024A (ko) 1998-11-25
HK1015479A1 (en) 1999-10-15
EP0874320B1 (en) 2007-02-21
JPH10334040A (ja) 1998-12-18
CN1154908C (zh) 2004-06-23
DE69837123T2 (de) 2007-11-29
TW432362B (en) 2001-05-01
CN1501248B (zh) 2010-05-26
DE69837123D1 (de) 2007-04-05

Similar Documents

Publication Publication Date Title
JP3968167B2 (ja) データを内部メモリに取り込み当該データに演算を施して出力する高速動作可能なデータ入出力装置
US6092231A (en) Circuit and method for rapid checking of error correction codes using cyclic redundancy check
KR100430657B1 (ko) 신호 처리 장치
TWI466126B (zh) 多通道儲存裝置及在其中儲存資料之方法
JP3676939B2 (ja) 誤り訂正装置及び誤り訂正装置の誤り訂正方法
KR20010022987A (ko) 데이터 저장장치용 최소 프레임 버퍼 관리자
US20080301403A1 (en) System for integrity protection for standard 2n-bit multiple sized memory devices
JPH08106733A (ja) 情報記憶媒体利用システム
US8181075B2 (en) Error correction device and recording and reproducing device
US6728806B2 (en) Data processing unit
JPH0612791A (ja) Cd−rom再生装置
JP2548475B2 (ja) アレイディスク装置のデータ復元量制御方法
JP3300376B2 (ja) 光ディスクの信号処理方法
US7941574B2 (en) CKD partial record handling
EP1090462B1 (en) Circuit and method for rapid checking of error correction codes using cyclic redundancy check
TW200814010A (en) Optical storage device and data storage method thereof
JP3154414B2 (ja) 追記型光ディスクの信号処理用半導体集積回路
JPS60214043A (ja) パイプライン制御回路
JPH0520220A (ja) 小型電子計算装置
JPH05289947A (ja) Eccチェック方式
JP2011044203A (ja) ディスク装置およびディスク記録テスト方法
JPS639259B2 (ja)
JPH04213147A (ja) 追記型コンパクトディスク用半導体集積回路のインタフェース回路
JPH04213145A (ja) ランダムアクセスメモリへのアクセス制御回路
JPS6074032A (ja) マイクロプログラム制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040927

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070214

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: 20070508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070604

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: 20100608

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110608

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120608

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120608

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130608

Year of fee payment: 6

EXPY Cancellation because of completion of term