JP3904138B2 - Data processing apparatus and processing method - Google Patents
Data processing apparatus and processing method Download PDFInfo
- Publication number
- JP3904138B2 JP3904138B2 JP2000552676A JP2000552676A JP3904138B2 JP 3904138 B2 JP3904138 B2 JP 3904138B2 JP 2000552676 A JP2000552676 A JP 2000552676A JP 2000552676 A JP2000552676 A JP 2000552676A JP 3904138 B2 JP3904138 B2 JP 3904138B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- dram
- circuit
- row
- correction
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
- Optical Recording Or Reproduction (AREA)
Abstract
Description
技術分野
本発明は、ダイナミック・ランダム・アクセス・メモリ(以下DRAMと称す)をデータバッファに用いたDVD(Digital Versatile Disk)およびCD−ROM(Compact Disk Read Only Memory)に、もしくは両者に対応できる誤り訂正のための読み出し装置を含むデータ処理装置および処理方法に関する。
背景技術
次世代のパーソナル・コンピュータ周辺装置として、DVDドライブ装置が注目されてきている。現在搭載されているCD−ROMを置き換える形のDVDドライブ装置は、従来から多用されてきているCD−ROMディスクに対応できることが、事実上の必須要件となっている。CD−ROMとDVDドライブ装置それぞれのディスクから読み出された信号を再生する装置を構成する場合に、両者に対応できる構成手段を開発することは重要な課題である。このとき、DVDとCD−ROMの記録フォーマットが著しく異なることが、両者に対応できる構成手段を開発する場合の隘路となっている。
先ず、CD−ROMのデータフォーマットの規格を、図19を用いて簡単に説明する。図19(a)は、CD−ROM復調後の時系列データの配列図であり、図19(b)は、CD−ROMデータの誤り訂正符号のフォーマット図である。ディスクから読み出された信号は、復調回路を経て、図19(a)に示すような8ビット(1バイト)の時系列信号になる。サブコード1バイトとそれに続く32バイトのデータ列をフレームと呼び、98フレームで1セクションとなる。1セクションはその開始を示す特殊なサブコードS0,S1から始まる98フレームで構成され、サブコードは1セクション単位に意味のあるデータ群が書き込まれている。時系列で入力されたデータを、1フレームを1行にして並べ直したものが図19(b)である。図中、1シンボルのデータは(s,f,b)で示されており、このときsはセクション番号、fはフレーム番号、bはバイト番号である。
図20は、規格で定められたCD,CD−ROMの誤り訂正符号のフォーマット図である。
C1,C2は、2重に保護するための訂正部であって、ともに1バイトを1シンボルとするリードソロモンの誤り訂正符号である。C1は、符号長32シンボル=データ28シンボル+パリティ4シンボルで構成されている。また、C2は、符号長28シンボル=データ24シンボル+パリティ4シンボルで構成されている。図20では訂正に掛かる時間を仮にゼロとして供給されるデータとC1,C2の誤り訂正に入力されるデータ、訂正されて出力されるデータの遅延関係を示している。数字の記入された長方形はその数値のフレーム遅延を施す遅延回路である。インバータは全ビット反転を表す。
図20に示されているように、仮に訂正に掛かる時間を無視したとしても、最初のデータ(1、10、0)が入力されたとき、はじめてデータ(0、0、0)がC2訂正ブロックに入力される。すなわち、図19(b)のフレーム列(0,10,0)の位置から明らかなように、最低108フレーム分のデータが貯まった後でなければ、C2訂正を開始することはできない。
CD−ROMの規格に従って誤り訂正を行う場合、図19(b)に薄線枠付きで示した(0,1,0),(0,0,1),(0,1,2)・・・(0,1,30),(0,0,31)が、符号長32シンボルのC1符号であり、太線枠付きで示した(0,0,0),(0,3,1),(0,8,2),・・・・(1,9,27)が符号長28シンボルのC2符号である。
次に、規格で定められたDVDの誤り訂正符号のフォーマットを、図21を用いて簡単に説明する。図21(a)はDVD符号の復調後の時系列データを示す図であり、図21(b)はDVDデータの誤り訂正符号のフォーマット図である。
ディスクから読み出された信号は、復調回路を経て、図21(a)に示すような8ビット(1バイト)の時系列信号になる。CD−ROMのサブコードに相当するデータは存在せず、訂正に必要なデータの区切りを表す信号は復調回路で除去される。訂正の単位は182列208行のマトリクスで、これをECC(Error Correction Code)ブロックと呼ぶ。ECCブロックは8ビット(1バイト)を1シンボルとするリードソロモンの誤り訂正符号で、行方向(内符号パリティ)と列方向(外符号パリティ)に独立にパリティを付加した積符号である。図中、1シンボルのデータは(b,r,c)で示されており、このときbはブロック番号、rは行番号、cは列番号である。時系列出入力される182シンボルのデータ(b,r,0),(b,r,1),(b,r,2)・・・・(b,r,181)を1行とし、それぞれの行は172シンボルの本体データと10シンボルの内符号パリティで構成されている。また、列方向の208シンボル(b,0,c),(b,1,c),(b,2,c),・・・・(b,207,c)は192シンボルの本体データと16シンボルの外符号パリティで構成されている。ただし、外符号パリティの行は、時系列的には12行の本体データに対して1行挿入されている。誤り訂正は、内符号訂正を行単位で208行、外符号訂正を列単位で182列実行し、必要に応じて消失訂正などを実行して完了する。
以上述べてきたように、CD−ROM,DVDの誤り訂正処理は、時系列で入力されたデータをその順序を大きく変更することなく実行できる第1の誤り訂正処理と、ある程度の期間データを蓄積してからはじめて実行できる第2の訂正処理の組合せであると言うことができる。第1の訂正処理は、CD−ROMではC1訂正処理を、DVDでは内符号訂正処理を差し、第2の訂正処理は、CD−ROMではC2訂正処理を、DVDでは外符号訂正処理を差す。このような誤り訂正フォーマットはその他の記録系媒体に留まらず、ディジタル・テレビ受像機などの放送系媒体にも広く適用されているものである。
上記の誤り訂正符号の規格から明らかなように、CD−ROMもDVDもある程度の量のデータが蓄積されないと誤り訂正を実行できない。すなわち、CD−ROMにおいては、(0,0,0),(0,3,1),(0,8,2),・・・・(1,9,27)の符号長28シンボルのC2符号を訂正しようとすれば、(0,0,0)から(1,9,27)までの108フレーム分のデータを保持しておく必要がある。DVDにおいても、外符号の訂正を行うためには、列方向の208シンボル(b,0,c),(b,1,c),(b,2,c),・・・・(b,207,c)のデータが必要となるから、最低限1ECCブロック分のデータは保持しておく必要がある。
従来、データを保持する手段(データバッファ)として、CD−ROMには2kByteから4kByteのSRAMが、DVDには256kByteから512kByteのDRAMが用いられてきた。CD−ROM,DVDのどちらも再生できる装置を開発しようとする場合、DVDの誤り訂正のために必要な256kByteから512kByteものDRAMを備えながら、さらにCD−ROMの誤り訂正のために2kByteのSRAMを備えることは、同時に両方の媒体の再生をすることはないのであるから無駄であって、コスト上昇を招くという課題がある。また、DVD再生装置にSRAMではなくDRAMが用いられているのも、コストを抑えるという経済的な理由からである。
CD−ROMとDVDの両方に対応する再生装置を開発する場合、DVDの誤り訂正のために必要な256kByteから512kByteのDRAMを、CD−ROMのデータバッファとしても動作できるようにすることが可能であれば、コストの上昇を抑えることができる。ところが、DRAMは、一旦ROWアドレスを発行した後の同一ROWアドレス内のデータアクセスは高速であるが、異なるROWをアクセスには別のROWアドレス発行などのアクセスサイクルが余分に必要となって、アクセスが遅くなる。特にCD−ROMのC2訂正および出力のための読み出しは、アドレスが不規則となって異なるROWアドレスにまたがるアクセスが多くなり、アクセスに時間が掛かり過ぎて実時間処理に間に合わないという問題がある。
このように、CD−ROM、DVDの誤り訂正の規格に準拠するためには、ある程度のデータ量が入力されないと誤り訂正処理が開始できないため、バッファメモリが必要であり、また価格の制約上、バッファメモリはDRAMで構成することが望ましい。そして、バッファメモリは、DVDとCD−ROMの共用として、DVDドライブ装置でCD−ROMも読み出すことができるようにしたい。さらに、DRAMは同一ROWアドレス内のアクセスは高速であるが、異なるROWアドレスにまたがるランダムアクセスは極端に低速となる。
そこで、本発明の目的は、これら従来の課題を解決し、DRAMの同一ROWアドレス内の高速アクセスを利用でき、また特に高速で高価なメモリを用いることなく、安価な構成で、媒体から読み出されたデータのバッファメモリへの書き込み、DVD、CD−ROMの第1の訂正処理と第2の訂正処理のための読み出しと書き込みに好適なデータ処理装置および処理方法を提供することにある。
発明の開示
本発明のデータ処理装置では、媒体から読み出した信号の前処理を行う手段と、前処理した結果をDRAMに書き込む(第1のDRAMアクセス)手段と、前記DRAMから第2の訂正のためのデータを読み出す(第2のDRAMアクセス)手段と、訂正したデータを後段に出力するためのデータを読み出す(第3のDRAMアクセス)手段と、前記第1、第2及び第3のDRAMアクセスが数ワードに渡ってそれぞれ同一ROWアドレス内に収納されるように構成されたアクセス制御回路を備えることを特徴としている。
また、本発明のデータ処理方法では、入力回路からDRAMへの書き込みと、第2の訂正処理のためのDRAMからの読み出しで、アクセスされるデータが適当なワード数の単位でDRAM上のそれぞれ同一ROWアドレス内に割り付けられており、それぞれのアクセスにおいてROWアドレスと該ROW内のカラムアドレスを該ワード数分連続して発行するDRAMアクセス制御を行うことを特徴としている。
これにより、DRAMの同一ROWアドレス内の高速なアクセスを利用することができ、異なる媒体からの信号の誤り訂正に共通に対応することができるので、高速で高価なメモリを用いる必要がなく、CD−ROMとDVDの誤り訂正を並列処理することができる。また、内部バスに接続する入力回路、出力回路をシステムに適応するように設計することにより、DRAMアクセスを含めて訂正処理の回路を若干の変更により異なるシステムに転用できるので、開発コストも削減することができる。
発明を実施するための最良の形態
本発明をより詳細に説明するために、添付の図面に従ってこれを説明する。
図1は、本発明の第1の実施例を示すデータ処理装置のブロック図である。
データのバッファに用いられるDRAM18と入力回路11、出力回路12、データ処理のためのバッファレジスタ14が内部バス13を介して相互に接続されている。それぞれからのデータ転送要求信号が優先順位判定回路16に入力されており、その判定結果にしたがったデータが内部バス13に出力され、また、アドレス発生アクセス制御回路17では優先順位の判定結果にしたがったアドレス発生を行なって、DRAM18のアクセス制御を行なう。
媒体から入力された信号に対して、入力回路11では媒体に適した前処理を施し、DRAM18に書き込むまとまったワード数になるまで蓄積する。ここで「まとまったワード数」とは、シンクロナスDRAMや通常のDRAMのページモードアクセスで同一のROWアドレス内に連続して書き込まれるデータのワード数を指す。入力回路11に必要なワード数のデータが蓄えられたときに、優先判定回路16に書き込み要求信号を送る。要求が受け付けられたとき、アドレス発生アクセス制御回路17では入力データ書き込みのためのアドレス生成を行ない、入力回路11から内部バス13に出力されたデータをDRAMに書き込む。
訂正に必要な量のデータがDRAM18に格納されたとき、データ処理回路15からデータ要求信号を制御回路17に出力する。制御回路17により訂正のためのデータ要求信号が受け付けられると、訂正のための読み出しのアドレス生成が行なわれ、必要なデータが内部バス13を介してバッファレジスタ14に蓄えられる。データ処理回路15は必要なデータをバッファレジスタ14から逐次読み出して誤り訂正などの必要な処理を行なう。
発見された誤りの位置と値はシンボル単位でDRAM18をアクセスして訂正される。訂正されたデータは、出力回路12をとおして定められたプロトコルで後段に送出される。出力回路12も、必要に応じてデータ要求信号を優先判定回路16に送る。
優先判定回路16は、上記のメモリアクセス要求の優先順位を判定して、優先度の高いものから順にアクセスを許可することによって、効率良く、またリアルタイム処理の制約を守りながら、システムを動作させる。たとえば、入力回路11からの要求は通常最優先に処理される。入力されたデータが処理される前に失われることがあってはならないためである。図示した以外に、DRAM18のリフレッシュも優先度の高い要求である。
図2は、図1における入力回路の詳細ブロック図である。
CD−ROMとDVDの信号の誤り訂正をする装置を構成する場合、入力回路11の好適な実施例としては、図2に示すように構成される。CD−ROMから復調回路を経て入力されるデータは1シンボル(8ビット)刻みで、それに同期したクロックとフレームの先頭を示す信号とが入力されている。復調データは第1のデータ並べ替え回路111を経て、C1訂正に適した順序に並べ替えられ、C1訂正回路114と第2のデータ並べ替え回路112に送られる。C1訂正回路114では訂正処理全てを行なってもよいが、最低限シンドローム生成だけ行なって、そのシンドロームを訂正演算回路(図示省略)に転送してもよい。このとき、通常のCD−ROMディスクでは、誤り発生頻度は1,000シンボル中1シンボル程度と高くない。誤りのないデータ列のシンドロームはゼロになるので、誤りがあったシンドロームのみを訂正処理回路に転送することにすれば、訂正処理回路をより効率よく使用することができる。
一方、DVDの誤り訂正のためには、復調されたデータとそれに同期した復調クロック、ECCブロックの先頭を表す信号が入力されている。さらに、行アドレス信号が入力されていれば、何らかの原因で行アドレスがECCブロック内で不規則になった場合の救済措置に利用することができる。DVDの誤り訂正は、復調回路から時系列に入力された信号の順序のまま、内符号訂正回路115に入力することにより、訂正処理を実行できる。従って、CD−ROMの場合とは異なり、第1のデータ並べ替え回路111の必要はない。また、DRAMのアドレッシングを工夫することによって、第2のデータ並べ替え回路112も不要になる場合がある。
図3は、図2におけるCD−ROM復調信号の第1のデータ並べ替え回路とカウンタの構成例を示す図であり、図4は、そのタイミングチャートである。
復調されたデータは、復調クロックに同期して入力されている。33進カウンタ119がCD−ROMの復調クロックを計数して計数値iを出力する。計数値iはフレーム先頭信号が入力される度にリセットされて、0から32の値を出力する。i=0のときCD−ROMの復調データはサブコードであるのでそのまま出力する。i=1,3,5,・・・11,17,19,・・・27のときは、図20に示したように1フレーム遅延の必要ないデータであるので、選択回路122によって端子aが選ばれて出力される。i=13,15,29,31のときは、選択回路122によって端子bが選ばれ反転されたデータが出力される。i=2,4,6,・・・32のとき、1フレーム遅延回路121を経由して出力する。i=2,4,・・・12,18,20,・・・28のときは、図20に示したように1フレーム遅延の必要なデータであるので、選択回路122によって端子cが選ばれて出力される。i=14,16,30,32は、選択回路122によって端子dが選ばれ反転されたデータが出力される。1フレーム遅延回路121はi=2,4,6,・・・32のときのみクロックを入力される16段のシフトレジスタで構成されている。図3に示した回路を通過させることによって、C1訂正に必要なデータが適切な順序で供給される。
図3における端子a,b,c,dに出力されている信号を、図4の端子a,b,c,dに示してある。選択回路122の出力は、C1被訂正データとして示してあり、C1訂正に適した順序のデータとなっている。C1被訂正データに同期したクロックも出力される。また、サブコードは通常の誤り訂正の処理とは別系統で用いられるため、別の端子から出力される。
第2のデータ並べ替え回路112は、バッファとして用いるDRAMの構成に適応できるように工夫して構成する必要がある。DRAMには、8ビット/1ワード、16ビット/1ワード、32ビット/1ワードなどの構成がある。CD−ROMもDVDも訂正単位は1シンボルすなわち8ビットであるので、DRAMのワード長に合わせて1、2、4シンボルのアクセスになる。
8ビット/1ワードのDRAMを用いる場合は、第2のデータ並べ替え回路112は不要で、C1被訂正データをそのままDRAMのアドレシングを工夫して書き込むだけでよい。
図5は、CD−ROMデータの8ビット/ワードDRAM上のデータ割り付け方法を示す図である。
C1被訂正データとして出力された(0,0,0),(−1,97,1),(0,0,2),・・・,(−1,97,31)は、DRAMの第1ROW内のアドレスH’000,H’021,H’042,・・・,H’3FFに書き込まれる。ここで、データ(s,f,b)は、(s:セクション番号、f:フレーム番号、b:バイト番号)のバイト番号=12,13,14,15,28,29,30,31のデータは全ビット反転されているが、特に反転データであることが重要ではないので、表記上これを区別しない。また、アドレスの表記で用いたH’XはXが16進表示あることを表す。次のフレームのC1被訂正データ(0,1,0),(0,0,1),(0,1,2),・・・,(0,0,341)は、DRAMの第2ROW内のアドレスH’400,H’421,H’442,・・・,H’7FFに書き込まれる。同様に第3、第4ROWに書き込むと、次は第1ROWに戻り、C1被訂正データ(0,4,0),(0,3,1),(0,4,2),・・・,(0,3,31)を、DRAMの第1ROW内のアドレスH’3E0,H’001,H’022,・・,H’3DFに書き込む。一見、アドレスが不連続になってアドレス発生回路が複雑になるように思われるが、DRAMのカラムアドレスはオーバーフローを無視した10ビット加算器を用いてH’021(10進で33)を順次前の値に加え合わせていくことで容易に実現できる。
以上説明してきた方法によりデータを書き込むと、図5に示すように連続するアドレスH’000,H’001,H’002,・・・,H’01FにC2訂正に必要な一連のデータが配列される。以下順次、アドレスH’400,H’401,H’402,・・・,H’41F,アドレスH’800,H’801,H’802,・・・,H’81F,アドレスH’C00,H’C01,H’C02,・・・,H’C1Fにつづいて、アドレスH’3E0,H’3E1,H’3E2,・・・,H’3FFに、C2訂正用の一連のデータが書き込まれている。連続アドレスであるため、アドレス生成回路の構成は容易である。この実施例では、バイト番号28,29,30,31もDRAMに書き込むとして説明しているが、これらはC1訂正用のパリティであるので、C2訂正の後に再度C1訂正を行なうなどの理由がないかぎり、特に書込みの必要はない。
訂正の終了したデータの読み出しは、図20に示したように規格で定められたディインターリーブを施す必要がある。
本実施例のDRAM上のデータ割付では、ディインターリーブをDRAM読み出しのアドレッシングで実現することができる。
図20のディインターリーブには、2バイト遅延が随所に含まれている。
これは、DRAM上では第1と第3ROWあるいは第2と第4ROWの差に相当する。したがって、図20における(0,0,0),(0,3,1),(0,24,6),(0,27,7),(0,62,16),(0,65,17),(0,86,22),(0,89,23),(0,8,2),(0,11,3),(0,32,8),(0,35,9),(0,70,18),(0,73,19),(0,94,24),(0,97,25),(0,16,4),(0,19,5),(0,40,10),(0,43,11),(0,78,20),(0,81,21),(1,4,26),(1,7,27)を出力する場合、ROWアドレス更新と4バイトのROWアドレス内読み出しを以下のように6回繰り返すことによって達成される。
1:第1ROW アドレスH’000,H’001,H’006,H’007
2:第3ROW アドレスH’810,H’811,H’816,H’817
3:第1ROW アドレスH’002,H’003,H’008,H’009
4:第3ROW アドレスH’812,H’813,H’818,H’819
5:第1ROW アドレスH’004,H’005,H’00A,H’00B
6:第3ROW アドレスH’814,H’815,H’81A,H’81B
上記のアクセスは第1ROWと第3ROWを交互にアクセスするので、必ずしも効率が良いとは言い難いが、出力に必要なディインンターリーブの処理(図20参照)を特別なハードウエアをもたず、DRAMのアドレッシングだけで実現している点で、簡略構成およびコスト削減に効果がある。
図13は、図1における出力回路の第1の実施例(8ビット/ワードDRAM用)を示す構成図である。
アドレッシングを、第1ROWと第3ROWの2組に分けて、図13に示すような出力回路を付加して、ディインターリーブを実現することもできる。
すなわち、以下に示すように、図5に示す第1ROWと第3ROWからそれぞれ12ワードずつ読み出す。
1:第1ROW アドレスH’000からH’00B
2:第3ROW アドレスH’810からH’81B
読み出されたデータは、内部バスを通して図13に示した出力回路に転送される。データの転送は読み出しクロックに同期して行なわれ、出力回路内の入力側の24進カウンタ131で書き込むべきレジスタのアドレスを指定する。最初のデータが入力されたときに、24進カウンタ131は0で、読み出しクロックが入力される毎に1ずつ加算される。デコーダ132の出力はカウンタ値に対応して0から23までの24本あり、24個の出力ラッチ134にデータが出力順に格納されるようにライトイネーブルを発行する。出力ラッチ134にデータがすべて格納された後、出力要求クロックが入力される毎に1シンボルのデータが出力される。
図13では、出力側のデコーダ136の出力の接続先を明示していないが、出力側の24進カウンタ137のカウント値に対応して上から順に出力されるように設計されている。本実施例では、入力側を工夫して、データがラッチ回路134に出力順に格納されるように設計してある。そのため、出力はシーケンシャルアクセスであるから、シフトレジスタの形式を採用してもよい。また、入力側をDRAMから読み出された順に格納しておいて、適切な順序で出力する設計にすることも可能である。
以上述べてきたCD−ROMの入力データ書き込み、C2訂正のための読み出し、訂正済みデータの出力の、3種のDRAMアクセスのアドレッシングは比較的規則性を見い出しやすいので、簡単なレジスタと加算器で構成することができる。
図6は、本発明におけるDVDデータのビット/ワードDRAM上のデータ割り付けの例を示す図である。
図6では、同じDRAMをDVDから読み出された信号の誤り訂正に使う場合のデータの割付け方法が示されている。復調回路から時系列的に入力されるECCブロック1行目のデータ(0,0,0),(0,0,1),・・・(0,0,181)をDRAMの第1ROWから第6ROWに順次書き込む。第1ROWにはアドレスH’0000からH’001Fまでにデータ(0,0,0)から(0,0,31)が格納される。次のデータ(0,0,32)から(0,0,63)は第2ROWのアドレスH’0400からH’041Fまでに格納され、同様に第3、第4、第5、第6ROWの先頭から順次データを書き込む。
ECCブロック1行分のデータは182バイトで32では割り切れないので、第6ROWのアドレスH’1416からH’141Fは未使用領域となる。復調回路から続いて時系列的に入力されるECCブロック2行目のデータ(0,1,0),(0,1,1),・・・(0,1,181)は、DRAMの第1ROWに戻って、1行目のデータの続きのアドレスH’0020からH’003Fまでに書き込まれる。同様にECCブロック3行目から32行目のデータは、DRAMの第1ROWから第6ROWに順次書き込まれる。さらに、ECCブロック33行目から64行目のデータはDRAMの第7ROWから第12ROWに、65行目から96行目のデータはDRAMの第13ROWから第18ROWに、97行目から128行目のデータはDRAMの第19ROWから第24ROWに、129行目から160行目のデータはDRAMの第25ROWから第30ROWに、161行目から192行目のデータはDRAMの第31ROWから第36ROWに、残りの193行目から208行目のデータはDRAMの第37ROWから第42ROWに、それぞれ、ECCブロック1行目から32行目のデータをDRAMの第1ROWから第6ROWに書き込んだのと同様に、順次書き込む。
ただし、最後の第37ROWから第42ROWには、アドレスの規則性を保つ意味から本来存在しないECCブロック209行目から228行目のデータの領域を仮想的に割り付けてある。実際には、そのようなデータは入力されないので、この領域も未使用となる。
図2に示した実施例では、内符号訂正の全部もしくは一部の実行を、DRAMにデータを格納する前に行なう例を示したが、図6に示したデータの割り付けによれば、内符号訂正に必要な一連の182シンボルが32シンボルずつDRAMの同一ROWアドレスに格納されていて、ROWアドレスの再発行なしに最大32シンボルまで連続して読み出すことができるので、データをDRAMに格納した後に内符号訂正を行なってもよい。
外符号訂正に必要な一連のデータは(b,0,c),(b,1,c),・・・(b,207,c)である。図6に示したように(0,0,0),(0,1,0),・・・(0,31,0)はDRAMの第1ROWに格納されていて、ROWアドレスの再発行なしに、最大32シンボルまで連続して読み出すことができる。したがって、外符号訂正に必要な一連のデータ(0,0,0),(0,1,0),・・・(0,207,0)を読み出すには、以下のステップを行なえばよい。
1:第1ROW H’0000,0020,0040,・・・,03E0
2:第7ROW H’1800,1820,1840,・・・,1BE0
3:第13ROW H’2000,2020,2040,・・・,23E0
4:第19ROW H’2800,2820,2840,・・・,2BE0
5:第25ROW H’3000,3020,3040,・・・,33E0
6:第31ROW H’3800,3820,3840,・・・,3BE0
7:第37ROW H’4000,4020,4040,・・・,41E0
1から6のステップは、ROWアドレスを発行した後、32バイト連続が可能であるが、最後の第7ステップはROWアドレスを発行した後、16バイト以上の読み出しは未使用領域のアクセスになって好ましくない。
ECCブロックの2列目以降の読み出しも同様の手順で行なうことができる。
訂正後のデータの読み出しは、最初の書込みと全く同じ順序で行なえばよい。
図6には、1ECCブロック分のみのデータ割り付けを示したが、通常の装置では、最低限3ECCブロックのデータをDRAM上に蓄積して処理するのが一般的である。すなわち、第1のECCブロックはデータの書き込みに、第2のECCブロックは訂正のためのアクセスに、第3のECCブロックは出力のための読み出しに、それぞれ区分し、第1、第2、第3のECCブロックを処理が完了する毎にパイプライン的に使い回しをするものである。誤り訂正時間の余裕を取るために、4ECCブロック以上のデータを蓄積して順次処理する場合もまれではない。
図7は、16ビット/1ワードのDRAMを用いる場合の、第2のデータ並べ替え回路の一実施例を示す図である。
バイト番号が偶数(i=1,3,5,・・・31)のデータは4フレーム遅延を与えて上位バイト側へ、バイト番号が奇数(i=2,4,6,・・・32)のデータは遅延なしで下位バイト側へ出力する。図4のタイミングチャートに示したように、データ(0,0,0)はデータ(0,3,1)と組み合わされて出力される。第2のデータ並べ替え回路で遅延を受け、組合せて出力された2バイト(16ビット)は、DRAMの1ワードに書き込まれる。
図8は、CD−ROMデータの16ビット/ワードDRAM上のデータの割り付け方法を示す図である。
データ(0,0,0)と(0,3,1)の組合せでできる2バイトのデータを{(0,0,0),(0,3,1)}と表記すると、時系列で出力される16ワード{(0,0,0),(0,3,1)},{(0,0,2),(0,3,3)},{(0,0,4),(0,3,5)},・・・,{(0,0,30),(0,3,31)}をDRAMの第1ROW内のアドレスH’000,H’011,H’022,・・・H’0FFに書き込む。その後、データ{(0,1,0),(0,4,1)},{(0,1,2),(0,4,3)},{(0,1,4),(0,4,5)},・・・,{(0,1,30),(0,4,31)}をDRAMの第2ROW内のアドレスH’100,H’111,H’122,・・・H’1FFに書き込む。これを順次DRAMの第8ROWまで書き込んだ後、データ{(0,8,0),(0,11,1)},{(0,8,2),(0,11,3)},{(0,8,4),(0,11,5)},・・・,{(0,8,30),(0,11,31)}を再びDRAMの第1ROW内のアドレスH’0F0,H’001,H’012,・・・H’1EFに書き込む。ROWアドレスは第1から第8までを繰り返せばよく、COLUMNアドレスはROWアドレスが変わる度に適当な初期値を与え、その後、オーバーフローを無視してH’11(10進で17)づつ加算していけばよい。この結果、図8からも明らかなように、アドレスの下位4ビットH’0から連続する16ワードはC2訂正に必要な一連の32シンボルになっている。
訂正の終了したデータの読み出しは、図20に示したように規格で定められたディインターリーブを施す必要がある。本実施例のDRAM上のデータ割付ではディインターリーブをDRAM読み出しのアドレッシングで実現することができる。図20のディインターリーブには、2バイト遅延が随所に含まれている。
これは、DRAM上では、第1と第3、第2と第4、第3と第5、第4と第6、第5と第7、第6と第8、第7と第1、あるいは第8と第2ROWの差に相当する。したがって、図20にある(0,0,0),(0,3,1),(0,24,6),(0,27,7),(0,62,16),(0,65,17),(0,86,22),(0,89,23),(0,8,2),(0,11,3),(0,32,8),(0,35,9),(0,70,18),(0,73,19),(0,94,24),(0,97,25),(0,16,4),(0,19,5),(0,40,10),(0,43,11),(0,78,20),(0,81,21),(1,4,26),(1,7,27)を出力する場合、ROWアドレス更新と4バイトのROWアドレス内読み出しを、以下のように6回繰り返すことによって達成される。
1:第1ROW アドレスH’000,H’003
2:第3ROW アドレスH’108,H’10B
3:第1ROW アドレスH’001,H’004
4:第3ROW アドレスH’109,H’10C
5:第1ROW アドレスH’002,H’005
6:第3ROW アドレスH’10A,H’10D
上記のアクセスは、第1ROWと第3ROWを交互にアクセスするので、必ずしも効率が良いとは言い難いが、出力に必要なディインンターリーブの処理(図20参照)を特別なハードウエアをもたず、DRAMのアドレッシングだけで実現している点が有効である。
一方、アドレッシングを、第1ROWと第3ROWの2組に分けて、図14に示すような出力回路を付加してディインターリーブを実現することもできる。以下に示すように、第1ROWと第3ROWそれぞれ6ワードずつ読み出す。
1:第1ROW アドレスH’000からH’005
2:第3ROW アドレスH’108からH’10D
読み出されたデータは、内部バスを通して図14に示した出力回路に転送される。データの転送は読み出しクロックに同期して行なわれ、出力回路内の入力側の12進カウンタ141で書き込むべきレジスタのアドレスを指定する。最初のデータが入力されたときに12進カウンタ141は0で、読み出しクロックが入力される毎に1ずつ加算される。デコーダ142の出力は、カウンタ141の値に対応して0から11までの12本あり、24個の出力ラッチ144にデータが出力順に格納されるようにライトイネーブルを発行する。ラッチ144にデータがすべて格納された後、出力要求クロックが入力される毎に、1シンボルのデータが出力される。図14では、出力側のデコーダ146の出力の接続先を明示していないが、出力側の24進カウンタ147のカウント値に対応して上から順に出力されるように設計されている。本実施例では、入力側を工夫して、データがラッチ回路144に出力順に格納されるように設計してある。そのため、出力はシーケンシャルアクセスであるから、シフトレジスタの形式を採用してもよい。また、入力側をDRAMから読み出された順に格納しておいて、適切な順序で出力する設計も可能である。
以上述べてきたCD−ROMの入力データ書き込み、C2訂正のための読み出し、訂正済みデータの出力の、3種のDRAMアクセスのアドレッシングは比較的規則性を見い出しやすいので、簡単なレジスタと加算器で構成できる。
図9は、同じ16ビット/ワードのDRAMをDVDから読み出された信号の誤り訂正に使う場合のデータの割付け方法を示す図である。
復調回路から時系列的に入力されるECCブロック1行目のデータ(0,0,0),(0,0,1),・・・(0,0,181)を、DRAMの第1ROWから第6ROWに順次書き込む。ただし、連続する2シンボルをまとめて16ビット=1ワードのデータにする。第1ROWにはアドレスH’0000からH’000Fまでにデータ{(0,0,0),(0,0,1)}から{(0,0,30),(0,0,31)}が格納される。次のデータ{(0,0,32),(0,0,33)}から{(0,0,62),(0,0,63)}は、第2ROWのアドレスH’0100からH’010Fまでに格納され、同様に第3、第4、第5、第6ROWの先頭から順次データを書き込む。
ECCブロック1行分のデータは、182バイトを32では割り切れないので第6ROWのアドレスH’050BからH’050Fは未使用領域となる。復調回路から続いて時系列的に入力されるECCブロック2行目のデータ{(0,1,0),(0,1,1)},・・・{(0,1,180),(0,1,181)}は、DRAMの第1ROWに戻って1行目のデータの続きのアドレスH’0010からH’001Fまで第2ROWアドレスH’0110から順次第6ROWアドレスH’051Aに書き込まれる。同様に、ECCブロック3行目から16行目のデータは、DRAMの第1ROWから第6ROWに順次書き込まれる。さらに、ECCブロック17行目から32行目のデータはDRAMの第7ROWから第12ROWに、33行目から48行目のデータはDRAMの第13ROWから第18ROWに、最後の193行目から208行目のデータはDRAMの第73ROWから第78ROWに、それぞれ、ECCブロック1行目から32行目のデータをDRAMの第1ROWから第6ROWに書き込んだのと同様に、順次書き込む。
図2に示した実施例では、内符号訂正の全部もしくは一部をDRAMにデータを格納する前に実行する例を示したが、図9に示したデータの割り付けによれば、内符号訂正に必要な一連の182シンボルが32シンボルずつDRAMの同一ROWアドレスに格納されていて、ROWアドレスの再発行なしに最大32シンボルまで連続して読み出すことができるので、データをDRAMに格納した後に内符号訂正を行なってもよい。
外符号訂正に必要な一連のデータは(b,0,c),(b,1,c),・・・(b,207,c)である。図9に示したように(0,0,0),(0,1,0),・・・(0,15,0)はDRAMの第1ROWに格納されていて、ROWアドレスの再発行なしに最大16シンボルまで連続して読み出すことができる。DRAMは2バイト/ワードであるから、このとき(0,0,1),(0,1,1),・・・(0,15,1)も同時に読み出すことができるので、第0列と第1列の外符号訂正を並列に処理すると効率的である。DRAMのアドレスの発生方法は、8ビット/ワードのDRAMの場合と同様に容易に構成できる。
訂正後のデータの読み出しは、最初の書込と全く同じ順序で行なえばよい。
図9にも、図6と同様1ECCブロック分のみのデータ割り付けを示したが、通常の装置では、前述のとおり最低限3ECCブロックのデータをDRAM上に蓄積して処理するのが一般的である。
図10は、本発明の第2の実施例を示す第2のデータ並べ替え回路の構成図であって、32ビット/1ワードのDRAMを用いる場合を示す。
バイト番号が4の倍数(i=1,5,9,・・・29)のデータは12フレーム遅延を与えて最上位バイト側、バイト番号が4で割って1余る数(i=2,6,10,・・・30)のデータは12フレーム遅延を与えて第2上位バイトへ、バイト番号が4で割って2余る数(i=3,7,11,・・・31)のデータは8フレーム遅延を与えて第3上位バイトへ、バイト番号が4で割って3余る数(i=4,8,12,・・・32)のデータは遅延なしで最下位バイトへ、合計4バイトにして出力する。図4のタイミングチャートに示したように、データ(0,0,0)(0,3,1)(0,8,2)(0,11,3)が組み合わされて出力される。第2のデータ並べ替え回路で遅延を受け組合せて出力され4バイト(32ビット)をDRAMの1ワードに書き込む。
図11は、CD−ROMデータの32ビット/ワードDRAM上のデータの割り付け方法を示す図である。
データ(0,0,0)、(0,3,1)、(0,8,2)、(0,11,3)の組合せでできる4バイトのデータを{(0,0,0),(0,3,1),(0,8,2),(0,11,3)}と表記すると、時系列で出力される16ワード{(0,0,0),(0,3,1),(0,8,2),(0,11,3)},{(0,0,4),(0,3,5),(0,8,6),(0,11,7)},・・・,{(0,0,28),(0,3,29),(0,8,30),(0,11,31)}をDRAMの第1ROW内のアドレスH’000,H’009,H’012,・・・H’03Fに書き込む。その後、データ{(0,1,0),(0,4,1),(0,9,2),(0,12,3)},{(0,1,4),(0,4,5)},(0,9,6),(0,12,7)},・・・,{(0,1,28),(0,4,29),(0,9,30),(0,12,31)}をDRAMの第2ROW内のアドレスH’040,H’049,・・・H’07Fに書き込む。これを順次DRAMの第16ROWまで書き込んだ後、データ{(0,16,0),(0,19,1),(0,24,2),(0,27,3)},・・・,{(0,16,28),(0,19,29),(0,24,30),(0,27,31)}を再びDRAMの第1ROW内のアドレスH’038,H’001,H’012,・・・H’036に書き込む。ROWアドレスは第1から第16までを繰り返せばよく、COLUMNアドレスはROWアドレスが変わる度に適当な初期値を与え、その後、オーバーフローを無視してH’11(10進で17)づつ加算していけばよい。この結果、図11からも明らかなように、アドレスの下位3ビットH’0から連続する4ワードはC2訂正に必要な一連の32シンボルになっている。
訂正の終了したデータの読み出しは、図20に示したように規格で定められたディインターリーブを施す必要がある。本実施例のDRAM上のデータ割付けでは、ディインターリーブをDRAM読み出しのアドレッシングで実現することができる。図20のディインターリーブには、2バイト遅延が随所に含まれている。これは、DRAM上では、第1と第3、第2と第4、第3と第5、第4と第6、第5と第7、第6と第8、・・・第15と第1、あるいは第16と第2ROWの差に相当する。したがって、図20にある(0,0,0),(0,3,1),(0,24,6),(0,27,7),(0,62,16),(0,65,17),(0,86,22),(0,89,23),(0,8,2),(0,11,3),(0,32,8),(0,35,9),(0,70,18),(0,73,19),(0,94,24),(0,97,25),(0,16,4),(0,19,5),(0,40,10),(0,43,11),(0,78,20),(0,81,21),(1,4,26),(1,7,27)を出力する場合、ROWアドレス更新と3ワードのROWアドレス内読み出しを以下のように2回繰り返すことによって達成される。
1:第1ROW アドレスH’000,H’001,H’002
2:第3ROW アドレスH’084,H’085,H’086
32ビット/ワードであるのでアクセス回数は少なくてすむ反面、バイト単位のデータ(シンボル)の入れ替えまではアドレッシングだけではできない。
図15は、本発明の第3の実施例を示す出力回路の構成図(32ビット/ワードDRAM用)である。
規格どおりの出力順序を実現するには、図15に示したようなディインターリーブ回路が必要となる。読み出されたデータは、内部バスを通して図15に示した出力回路に転送される。データの転送は読み出しクロックに同期して行なわれ、出力回路内の入力側の6進カウンタ152で書き込むべきレジスタのアドレスを指定する。1ワードあたり4シンボルであるので、書き込まれるラッチ153は4個同時に指定される。最初のデータが入力されたときに6進カウンタ152は0で、読み出しクロックが入力される毎に1ずつ加算される。デコーダ151の出力はカウンタ152の値に対応して0から5までの6本あり、24個の出力ラッチ153にデータが出力順に格納されるようにライトイネーブルを発行する。ラッチ153にデータがすべて格納された後、出力要求クロックが入力される毎に、1シンボルのデータが出力される。
図15では出力側のデコーダ155の出力の接続先を明示していないが、出力側の24進カウンタ156のカウント値に対応して上から順に出力されるように設計されている。本実施例では入力側を工夫して、データがラッチ回路に出力順に格納されるように設計してある。そのため出力はシーケンシャルアクセスであるから、シフトレジスタの形式を採用してもよい。
以上述べてきたCD−ROMの入力データ書き込み、C2訂正のための読み出し、訂正済みデータの出力の、3種のDRAMアクセスのアドレッシングは比較的規則性を見い出しやすいので、簡単なレジスタと加算器で構成できる。
図12は、同じ32ビット/ワードのDRAMをDVDから読み出された信号の誤り訂正に使う場合のデータの割付け方法を示す図である。
復調回路から時系列的に入力されるECCブロック1行目のデータ(0,0,0),(0,0,1),・・・(0,0,181)を、DRAMの第1ROWから第6ROWに順次書き込む。ただし、連続する4シンボルをまとめて32ビット=1ワードのデータにする。
第1ROWにはアドレスH’0000からH’0007までにデータ{(0,0,0),(0,0,1),(0,0,2),(0,0,3)}から{(0,0,28),(0,0,29),(0,0,30),(0,0,31)}が格納される。次のデータ{(0,0,32),(0,0,33),(0,0,34),(0,0,35)}から{(0,0,60),(0,0,61),(0,0,62),(0,0,63)}は第2ROWのアドレスH’0040からH’0047までに格納され、同様に第3、第4、第5、第6ROWの先頭から順次データを書き込む。
ECCブロック1行分のデータは、182バイトを32では割り切れないので、第6ROWのアドレスH’0145の下位2バイトからH’014Fは未使用領域となる。復調回路から続いて時系列的に入力されるECCブロック2行目のデータ{(0,1,0),(0,1,1),(0,1,2),(0,1,3)},・・・{(0,1,178),(0,1,179),(0,1,180),(0,1,181)}は、DRAMの第1ROWに戻って1行目のデータの続きのアドレスH’0008からH’000Fまで第2ROWアドレスH’0048から順次第6ROWアドレスH’004Fに書き込まれる。同様にECCブロック3行目から16行目のデータは、DRAMの第1ROWから第6ROWに順次書き込まれる。さらに、ECCブロック17行目から32行目のデータはDRAMの第7ROWから第12ROWに、33行目から48行目のデータはDRAMの第13ROWから第18ROWに、最後の193行目から208行目のデータはDRAMの第151ROWから第156ROWに、それぞれ、ECCブロック1行目から32行目のデータをDRAMの第1ROWから第6ROWに書き込んだのと同様に、順次書き込む。
図2に示した実施例では、内符号訂正の全部もしくは一部をDRAMにデータを格納する前に実行する例を示したが、図12に示したデータの割り付けによれば、内符号訂正に必要な一連の182シンボルが32シンボルずつDRAMの同一ROWアドレスに格納されていて、ROWアドレスの再発行なしに最大32シンボルまで連続して読み出すことができるので、データをDRAMに格納した後に内符号訂正を行なってもよい。
外符号訂正に必要な一連のデータは(b,0,c),(b,1,c),・・・(b,207,c)である。図12に示したように(0,0,0),(0,1,0),・・・(0,7,0)はDRAMの第1ROWに格納されていて、ROWアドレスの再発行なしに最大8シンボルまで連続して読み出すことができる。
DRAMは4バイト/ワードであるから、このとき、第1列(0,0,1),(0,1,1),・・・(0,7,1)、第2列(0,0,2),(0,1,2),・・・(0,7,2)、第3列(0,0,3),(0,1,3),・・・(0,7,3)も同時に読み出すことができるので、第0列から第3列の外符号訂正を並列に処理すると効率的である。DRAMのアドレスの発生方法は、8ビット/ワードのDRAMの場合と同様に容易に構成できる。訂正後のデータの読み出しは、最初の書込と全く同じ順序で行なえばよい。
図12にも、図6と同様に1ECCブロック分のみのデータ割り付けを示したが、通常の装置では、前述のとおり最低限3ECCブロックのデータをDRAM上に蓄積して処理するのが一般的である。
図16は、本発明の各実施例に適用するアドレス発生回路の構成図である。
加算回路165と加算回路165の第1及び第2の入力バス、出力バス、複数のレジスタとして、ROWアドレスレジスタ163、COLアドレスレジスタ163a、レジスタ0からレジスタn(164)で構成されている。ROWアドレスレジスタ163とCOLアドレスレジスタ163aの値は、それぞれマスク/オフセット回路167をとおして、マルチプレクサ168で選択されてDRAMのアドレス端子に入力されている。マスク/オフセット回路166は、汎用のALU(Arithmetic Logic Unit)とレジスタを用いて構成する。ALUはビット毎の論理演算(論理和、論理積、排他的論理和など)と数値加減算を行なうので、アドレス値の一部を0または1に固定するマスク、定数値を加算するオフセットを容易に実現できる。加算回路165の第1の入力バスは、ROWアドレスレジスタ163、COLアドレスレジスタ163a、レジスタ0からレジスタn(164)のうちの1個を選択して、加算回路165の一方に入力し、第2の入力バスは、レジスタ0からレジスタn(164)のうちの1個を選択して加算回路165の他方に入力する。
加算結果は、出力バスを通して複数のレジスタ164,163のうちの1個に書き込まれる。また、出力バスを通して直接値をレジスタ164,163に格納することもできる。図には示されていないが、アドレス生成回路は、優先判定回路の結果を受けたシーケンス制御回路によって、演算手順を与えられる。
以上述べてきたように、DRAMのワードのビット数に応じて適当な入力回路、特にCD−ROMにおける第2のデータ並べ替え回路、と適当な出力回路、特にCD−ROMにおけるディインターリーブ回路を備えることによって、DRAMへのアクセスが同一ROWアドレスへの連続したワードアクセスにまとめることができる。このためページモードアクセスを利用した高い転送レートを得ることができて、動作速度の低い、すなわち低価格のDRAMも有効に用いることができる。DRAMの1ワード当りのビット数は多い程アクセスサイクル数を減らすことができる反面、ピン数が増える、入力出力回路の規模が大きくなるなどの欠点が発生してくる。この点がトレードオフになる。
同一LSI上にDRAMを構成する場合にも、以上述べてきたDRAM外付けの場合とほぼ同様であるが、1ワード当り8ビットとするのが最も好適である。オンチップDRAMの場合、アドレスマルチプレックスの必要がない、すなわちローアドレスとカラムアドレスを同時に発行できる。また、同一ローアドレスのデータは一旦一括して読み出されるので、カラムアドレスを変化しながら同一ローアドレス内のデータを読み出す速度は十分早いので、複数のシンボルをまとめる第2のデータ並べ替え回路は必要ない場合が多い。
図17は、本発明を実施したCD−ROM,DVDを再生することのできる光ディスク再生装置の一例を示す図である。
ディスクを回転させるスピンドルモータ174、ディスクに光を照射するレーザダイオード172、反射した光を検出するフォトディテクタ173、2個のレーザダイオード172を切り替えるアクチュエータ171、レーザーダイオード172、フォトディテクタ173の設置されたステージを移動させるアクチュエータ171などの、光学系機械系の装置と、電気系の装置を組合せて構成されている。CD−ROMとDVDでは、波長の異なる別のレーザダイオード172をそれぞれ備えることになる。
電気系は、マイクロコントローラ174が全体を制御している。マイクロコントローラ174の指示によって、レーザ制御回路178が動作してレーザードライバ176を通してレーザダイオード172の出力を制御し、サーボ信号処理回路179がアクチュエータドライバ175、モータドライバ180を通して機械系の制御を行なう。フォトディテクタ173で検出された信号はアナログ信号処理回路177を通してサーボ処理回路179と標本化2値化回路182に入力される。サーボ信号処理回路179に入力されている信号は、トラッキングやフォーカスのエラー情報で、ステージの位置やレンズの微調整、スピンドルモータの回転数の調整の源信号として用いられる。標本化2値化された情報は、再生したいディスク情報である。
フォトディテクタ173の信号からデータに同期したクロックを再生し、そのクロックを使って標本化2値化を行ない、ディジタル信号を得る。得られたディジタル信号から規格に定められた同期パターンを検出して、CD−ROMやDVDのフレームの開始タイミングを同定する。再生クロックの同期状態、同期パターン検出の状態及び同期状態をマイクロコントローラ184が監視して、アクチュエータ171、サーボ、レーザの制御、およびCD−ROM/DVDのモード設定に用いる。2値化されたシリアルのディジタル信号は、CD−ROM/DVDのモード設定に応じてそれぞれ17ビットまたは16ビットのパラレル信号に変換され、14/8復調、16/8復調されて、前述の実施例で示した入力回路に入力される。CD−ROMの場合は、EFM(Eight to Fourteen Modulation)変調の14ビットに接続のため3ビットが追加されているので、S/P変換回路185,186の出力は17ビットである。
入力回路、出力回路、アドレス生成回路、優先判定回路、誤り訂正処理回路、DRAMなどの動作は、既に示した実施例のとおりである。出力回路を通して送出される訂正済みのデータは、プロトコル制御回路187によって、定められたプロトコルでパーソナルコンピュータ、映像/音声再生機器など188に転送される。
マイクロコントローラ184は、ディスクが装填されるとCD−ROMもしくはDVDと仮定して、レーザダイオード172を選択し、サーボ処理、誤り訂正処理回路192などを動作させる。仮定が装填されたディスクとは異なる場合は、クロックが再生されない、同期パターンが検出できない、誤りが訂正できないなど、マイクロコントローラ184が監視している情報から判定して、他方のディスクの再生モードに切り替える。このようにして、媒体は自動判別される。
訂正処理・能力を向上するために、図1に示したデータ処理回路15を並列プロセッサで構成する場合がある。並列プロセッサを構成するプロセッサエレメントをn個とすると、n組のCD−ROMのC1符号、C2符号、DVDの内符号、外符号の受信符号を並列に入力すると効率が良い。すなわち、DVDの内符号の場合n行、外符号の場合n列のデータをn個のプロセッサエレメントにそれぞれ入力して並列処理を行なう。
図18は、本発明の一実施例を示すデータ処理回路の構成図であって、プロセッサエレメントPEの数が8個の場合のバッファレジスタとデータ処理回路の構成を示す。
DRAMは16ビット/ワード、したがって内部バスも16ビット幅を想定している。また、DRAM上のデータ割り付けは、CD−ROMの再生の場合、図8に示したとおりであり、DVDの再生の場合、図9に示したとおりである。
図18において、バッファレジスタは8行8列の1入力2出力の1バイトレジスタで構成されている。データ入力端子DB[15:0]は前述の内部バスに接続されており、行のライトイネーブル信号WAR0からWAR7で選択される行、列のライトイネーブル信号WAC0からWAC3で選択される列の1バイトレジスタ2個にデータを格納する。一方、読み出しは、行方向もしくは列方向に並んだ8個のレジスタから並列に出力される。制御端子R/Cで行または列の方向を指定し、行方向の場合はRR0からRR7のうち選択された1行、8バイトのデータが読みだされて1バイトづつデータ処理回路のプロセッサエレメントPE0からPE7に供給される。列方向の場合は、RC0からRC7のうち選択された1列、8バイトのデータが読みだされて、1バイトづつデータ処理回路のプロセッサエレメントPE0からPE7に供給される。
CD−ROMのC2訂正を、図18の並列プロセッサPE0〜PE7で行なう場合のデータの転送手順を説明する。前述のとおり、図8においてC2訂正に必要な28バイトは、下位アドレスH’0からH’Dまでの連続するアドレスに格納されている。DRAMの第1ROWのアドレスH’000からH’003のデータ8バイトをバッファレジスタの1行目に転送する。続けて第2ROWのアドレスH’100からH’103のデータ8バイトをバッファレジスタの2行目に、と繰り返し、第8ROWのアドレスH’700からH’703のデータ8バイトをバッファレジスタの8行目に転送する。これでバッファレジスタが満杯の状態になる。
R/C端子でC側、すなわち列側を選択してRC0から順次RC7まで8バイトずつのデータをプロセッサエレメントPE0からPE7に転送する。この操作により、バッファレジスタの1行目から8行目データがそれぞれプロセッサエレメントPE0からPE7に順次転送される。これでバッファレジスタが空になるので、再度DRAMの第1ROWから第8ROWの次の4ワード、計64バイトをバッファレジスタを通してプロセッサエレメントPE0からPE7に転送する。これを繰り返すことによって、必要なデータがすべてプロセッサエレメントPE0からPE7に転送される。データ処理回路では、C2訂正を8個のプロセッサエレメントで並列の訂正処理を実行することができる。C2訂正に必要なデータは28バイトで、転送単位は8バイトであるから、4回目の転送では最後の4バイトが不要のデータとなる。この4バイトはC1パリティであるから、C2の訂正には必要がない。そこで、この4バイトを利用して、C1訂正の状態フラグとして利用することもできる。
次に、DVDの内符号訂正を、図18の並列プロセッサPE0〜PE7で行なう場合のデータの転送手順を説明する。
前述のとおり、図9において内符号訂正に必要な182バイトは32バイトごとにDRAMの第1ROWから第6ROWの下位アドレスH’0からH’Fまでの連続するアドレスに格納されている。DRAMの第1ROWの、アドレスH’0000からH’0003のデータ8バイトをバッファレジスタの1行目に、アドレスH’0010からH’0013のデータ8バイトをバッファレジスタの2行目に、これを繰り返して、アドレスH’0070からH’0073のデータ8バイトをバッファレジスタの8行目に転送する。これにより、ECCブロックの1行目から8行目までの最初の8バイトがバッファレジスタの1行目から8行目までに転送された。R/C端子でC側、すなわち列側を選択してRC0から順次RC7まで8バイトずつのデータをプロセッサエレメントPE0からPE7に転送する。この操作により、バッファレジスタの1行目から8行目までのデータがそれぞれプロセッサエレメントPE0からPE7に順次転送される。これでバッファレジスタが空になるので、再度DRAMの第1ROWの次のアドレスH’0004からH’0007、H’0014からH’0017、・・・H’0074からH’0077、の計64バイトをバッファレジスタを通してプロセッサエレメントPE0からPE7に転送する。これを繰り返すことによって、必要なデータがすべてプロセッサエレメントPE0からPE7に転送される。データ処理回路では、内符号訂正を8個のプロセッサエレメントPE0〜PE7で並列に訂正処理を実行することができる。
次に、DVDの外符号訂正を、図18の並列プロセッサPE0〜PE7で行なう場合のデータの転送手順を説明する。
前述のとおり、図9において外符号訂正に必要な208バイトは16バイトごとにDRAMの第1ROWから第78ROWまで6ROWおきの同一下位アドレスに格納されている。DRAMの第1ROWの、アドレスH’0000からH’0003のデータ8バイトをバッファレジスタの1行目に、アドレスH’0010からH’0013のデータ8バイトをバッファレジスタの2行目に、これを繰り返して、アドレスH’0070からH’0073のデータ8バイトをバッファレジスタの8行目に転送する。これにより、ECCブロックの1行目から8行目までの最初の8バイトがバッファレジスタの1行目から8行目までに転送された。これは、ECCブロックの1列目から8列目までの最初の8バイトにも相当する。
内符号訂正では、R/C端子でC側、すなわち列側を選択したが、外符号訂正では、R側すなわち行側を選択してRR0から順次RR7まで8バイトずつのデータをプロセッサエレメントPE0からPE7に転送する。この操作により、バッファレジスタの1列目から8列目までのデータがそれぞれプロセッサエレメントPE0からPE7に順次転送される。これでバッファレジスタが空になるので、次はDRAMの第7ROWの次のアドレスH’0600からH’0603、H’0700からH’0703、・・・H’0BF0からH’0BF3、の計64バイトをバッファレジスタを通してプロセッサエレメントPE0からPE7に転送する。これを繰り返すことによって、必要なデータがすべてプロセッサエレメントPE0からPE7に転送される。
データ処理回路では、外符号訂正を8個のプロセッサエレメントPE0〜PE7で並列に訂正処理を実行することができる。
図18では、CD−ROMとDVDの誤り訂正を並列処理することについて説明したが、特にDVDのための動作は一般のリードソロモンの積符号の誤り訂正に広く応用できる。
入力回路までの信号処理を入力媒体に応じて変更し、出力回路以降を出力先に応じて変更すれば、本発明はその他の媒体にも容易に対応できる。蓄積系メディアであっても、放送系メディアであっても、誤り訂正のデータフォーマットは、上記実施例で説明したCD−ROMもしくはDVDのデータフォーマットと類似しているため、アドレス生成回路、優先判定回路などはシーケンス制御を多少変更するだけで、容易に異なるフォーマットへの適用が可能になっている。
このため、設計データの有効活用という点で極めて有利である。
図22は、本発明の他の実施例を示すデータ処理装置の構成図であって、本発明の処理方法をソフトウェアで実現する場合である。
図1に示した実施例は本発明のデータ処理装置をハードウェアで構成したものであるが、図1におけるアドレス発生、アクセス制御回路17、優先判定回路16、データ処理回路15、バッファレジスタ14は、マイクロコントローラなどのプロセッサのソフトウェアで実現することもできる。
図22では、マイクロコントローラ223上のソフトウェアで実現する場合を前提とするハードウェア構成を示している。メインメモリ224とDRAMインターフェース回路225が共通バスを介して、また入力回路221と出力回路222が周辺バスを介して、それぞれマイクロコントローラ223に接続されている。マイクロコントローラ223は、DRAM226に対するアクセス要因別にアクセスを要求するレジスタ(DRAMアクセス要求ステータスレジスタReg st)を監視しており、要求の優先度に応じて適切な処理を行なう。DRAMアクセス要求ステータスレジスタは、アクセス要因に要求の有無を示すレジスタであって、ハードウェアで実現しても、またソフトウェアで仮想的に実現してもよい。入力回路221には、1シンボル以上のレジスタがあって、データが準備されるとDRAMアクセス要求ステータスレジスタに要求を出する。マイクロコントローラ223では、誤り訂正ルーチン、出力処理ルーチン、DRAMリフレッシュ制御ルーチンが動作しており、必要に応じてDRAMアクセス要求ステータスレジスタに要求を出す。
図23は、マイクロプロセッサの優先判定ルーチンのフローチャートであって、DRAMアクセス要求ステータスを監視して、適宜必要な処理サブルーチンを起動するソフトウェアのフローを示している。
先ず最初にDRAMアクセス要求ステータスレジスタの内容を読み込み(ステップ230,231)、優先順位に従ってアクセス要求の有無を調べて、要求があればその要求に応じるサブルーチンを起動し、要求をリセットしてステータスレジスタの読み込みに戻る。ここで示した優先順位はあくまでも一例であって、順位はシステムを構成する上で変更されることも十分に考えられる。また、プログラムの動作中にも変更される場合がある。
refresh処理サブルーチン232,240,248は、マイクロコントローラ223の周辺機能であるタイマで時間管理を行ない、一定周期でDRAMのリフレッシュを行なうサブルーチンである。復調回路からのwrite accessを行なうサブルーチン233,241,249は、媒体の種類やDRAM上のデータの位置や方法により構成が異なる。
C1訂正のための読み出しアクセス処理サブルーチン(ステップ234,242,250)、C2訂正のための読み出しアクセス処理ルーチン(ステップ235,243,251)、出力のための読み出し処理サブルーチン(ステップ236,244,252)、訂正のための読み出しと書き込み処理サブルーチン(ステップ237,245,253)、およびその他の読み出しおよび書き込み処理サブルーチン(ステップ238,239,246,247,254,255)が優先順位に従って起動される。
図24は、復調回路からのwrite access処理ルーチンの一例を示すフローチャートである。
ここでは、CD−ROMの復調を行なうシステムにおいて、8ビットのデータ幅のDRAMを用いて、図5に示したデータの配置になるようにデータを書き込むサブルーチンを示す。復調回路からの入力データを“DATA”とし、このときのデータの位置を図3に示した33進カウンタ119の出力“i”として、この2個のデータが与えられるものとする。ただし、この33進カウンタ119はハードウェアでもソフトウェアでも容易に実現できる。i=0のとき(ステップ261)、DATAはサブコードであるので、サブコード処理サブルーチンを起動する(ステップ267)。サブコード処理自体は本発明とは本質的に関係がないので説明を省略する。iが偶数の場合には1フレーム遅延を与え(ステップ262,263)、奇数の場合には遅延なしでDRAMに書き込む(ステップ262,268)。フロー中のout bufは配列変数で、次にDRAMに書き込まれる32バイトのデータを格納する。dly bufは1フレーム遅延のための配列変数で、1フレーム前のデータを保持している(ステップ265)。
データが奇数の場合(ステップ262)、1フレーム前のdly but〔i〕を次に出力するout buf〔i〕に格納しておく(ステップ270)。また、i=13,14,15,16,29,30,31,32のDATAはパリティで図20のCDの規格に示されているように、パリティは全ビット反転して以降の処理に用いられる(ステップ264,269)。
32バイト連続して書き込むので、i=32すなわちフレームの最後尾になるまではDRAMにアクセスせずに次の入力を待つ。i=32になると(ステップ266)、out bufには、DRAMに書き込むべき32バイトのデータが格納された状態になるので、実際にDRAMにアドレスを発行して書き込み動作を行なう。フロー中、変数row,col0,colはそれぞれDRAMのロウ、初期カラム、カラムアドレス計算のための変数であり、変数DRAM ROW,DRAM COL,DRAM DATAは、それぞれ実際にDRAMに発行されるロウ、カラムアドレスとデータである。
DRAMのロウアドレスはCDの1フレーム毎に1ずつ増加して、適当な値で0に戻る(271参照)。また、初期カラムアドレスcol0は1フレーム毎に32ずつ(24進表示でH’20ずつ)増加して、同一ロウ内の最大値まで進むと次に0に戻る(272参照)。初期カラムアドレスが求められた時点で、実際にカラムアドレスをDRAMに発行し、同時にデータをDRAMに出力して書き込みを行なう(ステップ271,272)。その後、同一ロウアドレス内でカラムアドレスを33(H’21)ずつ増加して、順次残り31バイトの書き込みを行なう(ステップ274)。
カラムアドレスが最大値H’400を超えようとした場合、H’400を差し引いて同一ロウアドレス内の若いカラムアドレスに折り返すことにより、ロウアドレスの再発行による書き込みサイクルの増加を防いでいる(274参照)。
以上説明した図24のフローチャートを実現するソフトウェアにより、図3に示したハードウェアで実現していたデータの並べ替え回路はソフトウェアで実現することができる。
以下、C1,C2訂正のためのデータの読み出し、出力のためのデータの読み出し、訂正のためのデータの読み出し訂正書き込み、などのサブルーチンが必要であるが、これらは既に適切に並べ替えられたデータに対するアクセスであって、容易に実現できるので説明は省略する。
DRAMの制御をソフトウェアで実現した場合、DRAMの余分な空間を別の目的のデータのワークエリアとして使用することができるという効果もある。
産業上の利用可能性
以上に述べたように、本発明のデータ処理装置は、DRAMの同一ROWアドレス内の高速なアクセスを利用することができ、異なる媒体からの信号の誤り訂正に共通に対応することができるので、特に高速で高価なメモリを用いる必要がなくなり、廉価なデータ処理装置を実現できる。さらに、内部バスに接続する入力回路、出力回路をシステムに適応するように設計すれば、DRAMアクセスを含めて訂正処理回路を若干の変更だけで、異なるシステムに転用できるので、開発コストを削減できるという効果もある。
【図面の簡単な説明】
図1は、本発明の第1の実施例を示すデータ処理装置のブロック図である。
図2は、図1における入力回路の詳細なブロック図である。
図3は、図1における第1のデータ並べ替え回路及びカウンタの詳細なブロック図である。
図4は、CD−ROM信号の入力回路の動作を説明するタイミングチャートである。
図5は、CD−ROMデータの8ビット/ワードDRAM上のデータ割り付け例を示す図である。
図6は、DVDデータの8ビット/ワードDRAM上のデータ割り付け例を示す図である。
図7は、本発明の第2のデータ並べ替え回路の一実施例を示す構成図である。
図8は、CD−ROMデータの16ビット/ワードDRAM上のデータ割り付け例を示す図である。
図9は、DVDデータの16ビット/ワードDRAM上のデータ割り付け例を示す図である。
図10は、本発明の第2のデータ並べ替え回路の他の実施例を示す構成図である。
図11は、CD−ROMデータの32ビット/ワードDRAM上のデータ割り付け例を示す図である。
図12は、DVDデータの32ビット/ワードDRAM上のデータ割り付け例を示す図である。
図13は、図1における出力回路の第1の実施例(8ビット/ワードDRAM用)を示す構成図である。
図14は、図1における出力回路の第2の実施例(16ビット/ワードDRAM用)を示す構成図である。
図15は、図1における出力回路の第3の実施例(32ビット/ワードDRAM用)を示す構成図である。
図16は、図1におけるアドレス生成回路の実施例を示す構成図である。
図17は、本発明を適用したCD−ROM/DVD再生装置の実施例のブロック図である。
図18は、本発明のデータ処理回路の実施例を示す構成図である。
図19は、CD−ROM復調後の時系列データおよびCD−ROMデータの誤り訂正符号のフォーマット図である。
図20は、CD−ROMの誤り訂正、ディインターリーブの規格を示す図である。
図21は、CD−ROM復調後の時系列データおよびCD−ROMデータの誤り訂正符号のフォーマット図である。
図22は、本発明の第2の実施例を示すデータ処理装置のブロック図である。
図23は、図22におけるマイクロプロセッサの優先判定ルーチンのフローチャートである。
図24は、図22における復調回路からのwrite access処理ルーチンのフローチャートである。Technical field
The present invention relates to a DVD (Digital Versatile Disk) and a CD-ROM (Compact Disk Read Only Memory) using a dynamic random access memory (hereinafter referred to as DRAM) as a data buffer, or an error correction that can handle both. TECHNICAL FIELD The present invention relates to a data processing apparatus and a processing method including a reading device.
Background art
As a next-generation personal computer peripheral device, a DVD drive device has attracted attention. The DVD drive device that replaces the currently installed CD-ROM is required to be compatible with CD-ROM discs that have been widely used in the past. In constructing a device that reproduces a signal read from a disc of each of a CD-ROM and a DVD drive device, it is an important issue to develop a configuration means that can cope with both. At this time, the remarkably different recording formats of the DVD and the CD-ROM is a bottleneck when developing a configuration means that can handle both.
First, the data format standard of the CD-ROM will be briefly described with reference to FIG. FIG. 19A is an arrangement diagram of time-series data after CD-ROM demodulation, and FIG. 19B is a format diagram of an error correction code of CD-ROM data. A signal read from the disk passes through a demodulation circuit and becomes a time series signal of 8 bits (1 byte) as shown in FIG. A
FIG. 20 is a format diagram of CD, CD-ROM error correction codes defined by the standard.
C1 and C2 are correction units for double protection, and both are Reed-Solomon error correction codes with one byte as one symbol. C1 includes
As shown in FIG. 20, even if the time required for correction is ignored, when the first data (1, 10, 0) is input, the data (0, 0, 0) is the first C2 correction block. Is input. That is, as is apparent from the position of the frame sequence (0, 10, 0) in FIG. 19B, the C2 correction cannot be started unless data for at least 108 frames have been accumulated.
When error correction is performed in accordance with the CD-ROM standard, (0, 1, 0), (0, 0, 1), (0, 1, 2) shown with a thin line frame in FIG. (0, 1, 30) and (0, 0, 31) are C1 codes having a code length of 32 symbols, and (0, 0, 0), (0, 3, 1) shown with a thick frame. (0, 8, 2),... (1, 9, 27) is a C2 code having a code length of 28 symbols.
Next, the format of the DVD error correction code defined by the standard will be briefly described with reference to FIG. FIG. 21A is a diagram showing time-series data after demodulation of the DVD code, and FIG. 21B is a format diagram of the error correction code of the DVD data.
The signal read from the disk is converted into an 8-bit (1 byte) time-series signal as shown in FIG. There is no data corresponding to the sub-code of the CD-ROM, and a signal indicating a data break required for correction is removed by the demodulation circuit. The unit of correction is a matrix of 182 columns and 208 rows, and this is called an ECC (Error Correction Code) block. The ECC block is a Reed-Solomon error correction code with 8 bits (1 byte) as one symbol, and is a product code with parity added independently in the row direction (inner code parity) and column direction (outer code parity). In the figure, data of one symbol is indicated by (b, r, c), where b is a block number, r is a row number, and c is a column number. 182 symbol data (b, r, 0), (b, r, 1), (b, r, 2),. This row is composed of main data of 172 symbols and inner code parity of 10 symbols. Further, 208 symbols (b, 0, c), (b, 1, c), (b, 2, c),... (B, 207, c) in the column direction are 192 symbol main data and 16 symbols. It consists of the outer code parity of the symbol. However, one row of outer code parity is inserted with respect to 12 rows of main data in time series. The error correction is completed by executing inner code correction for 208 rows in units of rows and outer code correction for 182 columns in units of columns, and performing erasure correction as necessary.
As described above, the error correction processing of CD-ROM and DVD is the first error correction processing that can be executed without changing the order of the data input in time series, and the data is accumulated for a certain period of time. It can be said that this is a combination of the second correction processes that can be executed for the first time. The first correction process includes a C1 correction process for a CD-ROM and an inner code correction process for a DVD, and the second correction process includes a C2 correction process for a CD-ROM and an outer code correction process for a DVD. Such an error correction format is widely applied not only to other recording media but also to broadcasting media such as digital television receivers.
As apparent from the above error correction code standards, neither CD-ROM nor DVD can execute error correction unless a certain amount of data is accumulated. That is, in the CD-ROM, C2 having a code length of 28 symbols of (0, 0, 0), (0, 3, 1), (0, 8, 2), ... (1, 9, 27). If the code is to be corrected, it is necessary to hold data for 108 frames from (0, 0, 0) to (1, 9, 27). Also in the DVD, in order to correct the outer code, 208 symbols in the column direction (b, 0, c), (b, 1, c), (b, 2, c), ... (b, 207, c) data is required, so it is necessary to hold at least one ECC block of data.
Conventionally, 2 kbyte to 4 kbyte SRAM has been used for CD-ROM and 256 kbyte to 512 kbyte DRAM has been used for CD-ROM as means for holding data (data buffer). When developing a device capable of reproducing both CD-ROM and DVD, a 2 kbyte SRAM is provided for error correction of CD-ROM, while having 256 kbyte to 512 kbyte of DRAM necessary for error correction of DVD. The provision of this method is wasteful because both media are not played back at the same time, and there is a problem that the cost increases. In addition, the reason why the DRAM is used in the DVD reproducing apparatus instead of the SRAM is because of an economical reason for suppressing the cost.
When developing a playback device that supports both CD-ROM and DVD, it is possible to operate a 256 kbyte to 512 kbyte DRAM required for DVD error correction as a CD-ROM data buffer. If so, the increase in cost can be suppressed. However, in DRAM, data access within the same ROW address after issuing a ROW address is fast, but access to a different ROW requires an extra access cycle such as issuing another ROW address. Becomes slower. In particular, C2 correction for CD-ROM and reading for output has a problem in that the address becomes irregular and access across different ROW addresses increases, and the access takes too much time to be in time for real-time processing.
As described above, in order to comply with the error correction standards of CD-ROM and DVD, the error correction process cannot be started unless a certain amount of data is input. Therefore, a buffer memory is necessary. The buffer memory is preferably composed of DRAM. The buffer memory is intended to be used for both DVD and CD-ROM so that the DVD drive can read the CD-ROM. Furthermore, DRAM accesses at the same ROW address at high speed, but random access across different ROW addresses becomes extremely slow.
Therefore, an object of the present invention is to solve these conventional problems and to use high-speed access within the same ROW address of DRAM, and to read from a medium with an inexpensive configuration without using a high-speed and expensive memory. Another object of the present invention is to provide a data processing apparatus and a processing method suitable for writing the written data into the buffer memory, and reading and writing for the first correction processing and the second correction processing of the DVD and CD-ROM.
Disclosure of the invention
In the data processing apparatus of the present invention, means for preprocessing a signal read from the medium, means for writing the result of the preprocessing into the DRAM (first DRAM access), and data for the second correction from the DRAM Means for reading data (second DRAM access), means for reading data for outputting corrected data to the subsequent stage (third DRAM access), and the first, second and third DRAM accesses are several words. And an access control circuit configured to be accommodated in the same ROW address.
In the data processing method of the present invention, the data to be accessed is the same on the DRAM in units of an appropriate number of words when writing from the input circuit to the DRAM and reading from the DRAM for the second correction processing. A DRAM access control is performed in which a ROW address and a column address in the ROW are continuously issued for the number of words assigned in the ROW address.
As a result, high-speed access within the same ROW address of the DRAM can be used, and error correction of signals from different media can be handled in common, so there is no need to use a high-speed and expensive memory, and CD -ROM and DVD error correction can be processed in parallel. In addition, by designing the input and output circuits connected to the internal bus to be adapted to the system, the correction processing circuit including DRAM access can be diverted to a different system with slight changes, thus reducing development costs. be able to.
BEST MODE FOR CARRYING OUT THE INVENTION
In order to explain the present invention in more detail, it will be described with reference to the accompanying drawings.
FIG. 1 is a block diagram of a data processing apparatus showing a first embodiment of the present invention.
A
The
When the amount of data necessary for correction is stored in the
The position and value of the found error are corrected by accessing the
The
FIG. 2 is a detailed block diagram of the input circuit in FIG.
When configuring an apparatus for correcting errors of CD-ROM and DVD signals, a preferred embodiment of the
On the other hand, for error correction of a DVD, demodulated data, a demodulated clock synchronized with the demodulated data, and a signal indicating the head of the ECC block are input. Furthermore, if the row address signal is input, it can be used for a remedy when the row address becomes irregular in the ECC block for some reason. DVD error correction can be performed by inputting the same to the inner
FIG. 3 is a diagram showing a configuration example of the first data rearrangement circuit and counter of the CD-ROM demodulated signal in FIG. 2, and FIG. 4 is a timing chart thereof.
The demodulated data is input in synchronization with the demodulation clock. A 33-
Signals output to terminals a, b, c, and d in FIG. 3 are shown as terminals a, b, c, and d in FIG. The output of the
The second
When an 8-bit / 1-word DRAM is used, the second
FIG. 5 is a diagram showing a data allocation method for CD-ROM data on an 8-bit / word DRAM.
(0, 0, 0), (-1, 97, 1), (0, 0, 2), ..., (-1, 97, 31) output as C1 corrected data , H′3FF are written in addresses H′000, H′021, H′042,. Here, the data (s, f, b) is data of (s: section number, f: frame number, b: byte number) = 12, 13, 14, 15, 28, 29, 30, 31 Although all bits are inverted, it is not particularly important that the data is inverted data. Also, H′X used in address notation represents that X is in hexadecimal notation. The C1 corrected data (0, 1, 0), (0, 0, 1), (0, 1, 2), ..., (0, 0, 341) of the next frame is stored in the second ROW of the DRAM. , H′7FF, the addresses H′400, H′421, H′442,. Similarly, when writing to the third and fourth ROWs, the process returns to the first ROW, and C1 corrected data (0, 4, 0), (0, 3, 1), (0, 4, 2),. (0, 3, 31) is written to addresses H′3E0, H′001, H′022,..., H′3DF in the first ROW of the DRAM. At first glance, it seems that the address is discontinuous and the address generation circuit becomes complicated, but the DRAM column address is sequentially preceded by H'021 (33 in decimal) using a 10-bit adder that ignores overflow. This can be easily realized by adding to the value of.
When data is written by the method described above, a series of data necessary for C2 correction is arranged at consecutive addresses H′000, H′001, H′002,..., H′01F as shown in FIG. Is done. Hereinafter, addresses H′400, H′401, H′402,..., H′41F, addresses H′800, H′801, H′802,..., H′81F, addresses H′C00, Following H′C01, H′C02,..., H′C1F, a series of data for C2 correction is written to addresses H′3E0, H′3E1, H′3E2,. It is. Since the addresses are continuous, the configuration of the address generation circuit is easy. In this embodiment, it is described that
To read the corrected data, it is necessary to perform deinterleaving defined by the standard as shown in FIG.
In the data allocation on the DRAM of the present embodiment, deinterleaving can be realized by DRAM read addressing.
The deinterleave shown in FIG. 20 includes a 2-byte delay everywhere.
This corresponds to the difference between the first and third ROWs or the second and fourth ROWs on the DRAM. Accordingly, (0, 0, 0), (0, 3, 1), (0, 24, 6), (0, 27, 7), (0, 62, 16), (0, 65, 17), (0, 86, 22), (0, 89, 23), (0, 8, 2), (0, 11, 3), (0, 32, 8), (0, 35, 9) , (0, 70, 18), (0, 73, 19), (0, 94, 24), (0, 97, 25), (0, 16, 4), (0, 19, 5), ( 0, 40, 10), (0, 43, 11), (0, 78, 20), (0, 81, 21), (1, 4, 26), (1, 7, 27) , ROW address update and 4-byte ROW address read-out are repeated 6 times as follows.
1: 1st ROW address H'000, H'001, H'006, H'007
2: Third ROW address H'810, H'811, H'816, H'817
3: 1st ROW address H'002, H'003, H'008, H'009
4: Third ROW address H'812, H'813, H'818, H'819
5: 1st ROW address H'004, H'005, H'00A, H'00B
6: Third ROW address H'814, H'815, H'81A, H'81B
Since the above access alternately accesses the first ROW and the third ROW, it is not necessarily efficient. However, the deinterleaving process (see FIG. 20) necessary for output is not performed with special hardware. Since it is realized only by the addressing of the DRAM, it is effective for a simple configuration and cost reduction.
FIG. 13 is a block diagram showing a first embodiment (for 8-bit / word DRAM) of the output circuit in FIG.
Deinterleaving can be realized by dividing the addressing into two sets of the first ROW and the third ROW and adding an output circuit as shown in FIG.
That is, as shown below, 12 words are read from each of the first ROW and the third ROW shown in FIG.
1: 1st ROW address H'000 to H'00B
2: Third ROW address H'810 to H'81B
The read data is transferred to the output circuit shown in FIG. 13 through the internal bus. Data transfer is performed in synchronization with the read clock, and the address of the register to be written is designated by the
In FIG. 13, the output connection destination of the
Since the above three types of DRAM access addressing, ie, CD-ROM input data write, C2 correction read, and corrected data output are relatively easy to find, simple registers and adders are used. Can be configured.
FIG. 6 is a diagram showing an example of data allocation on the bit / word DRAM of DVD data in the present invention.
FIG. 6 shows a data allocation method when the same DRAM is used for error correction of a signal read from a DVD. Data (0, 0, 0), (0, 0, 1),... (0, 0, 181) in the first row of the ECC block input in time series from the demodulator circuit are transferred from the first ROW of the DRAM to the first. Write sequentially to 6ROW. In the first ROW, data (0, 0, 0) to (0, 0, 31) are stored from addresses H'0000 to H'001F. The next data (0, 0, 32) to (0, 0, 63) are stored at addresses H'0400 to H'041F of the second ROW, and similarly, the heads of the third, fourth, fifth and sixth ROWs. Write data sequentially.
Since the data for one row of the ECC block is 182 bytes and cannot be divided by 32, the addresses H'1416 to H'141F of the sixth ROW become unused areas. The data (0, 1, 0), (0, 1, 1),... (0, 1, 181) in the second row of the ECC block input in time series from the demodulation circuit Returning to 1ROW, the continuation addresses H'0020 to H'003F of the data in the first row are written. Similarly, the data in the third to thirty-second rows of the ECC block are sequentially written from the first ROW to the sixth ROW of the DRAM. Further, the data from the 33rd to 64th rows of the ECC block are from the 7th to 12th ROW of the DRAM, the data from the 65th to 96th row are from the 13th to 18th ROW of the DRAM, and from the 97th to 128th row. The data from the 19th row to the 24th row of the DRAM, the data from the 129th row to the 160th row are the data from the 25th row to the 30th row of the DRAM, the data from the 161st row to the 192th row are the remaining from the 31st row to the 36th row of the DRAM The data from the 193rd row to the 208th row are sequentially written from the 37th row to the 42nd row of the DRAM, and the data from the 1st row to the 32nd row of the ECC block are written to the first ROW to the sixth row of the DRAM, respectively. Write.
However, from the last 37th row to the 42nd row, the data areas of the ECC blocks 209 to 228 which do not exist originally are virtually allocated in order to keep the address regularity. Actually, since such data is not input, this area is also unused.
In the embodiment shown in FIG. 2, an example in which all or part of the inner code correction is performed before data is stored in the DRAM is shown. However, according to the data allocation shown in FIG. Since a series of 182 symbols necessary for correction is stored in the same ROW address of the DRAM by 32 symbols and can be continuously read up to 32 symbols without reissuing the ROW address, the data is stored in the DRAM. Inner code correction may be performed.
A series of data necessary for outer code correction is (b, 0, c), (b, 1, c),... (B, 207, c). As shown in FIG. 6, (0, 0, 0), (0, 1, 0),... (0, 31, 0) are stored in the first ROW of the DRAM, and there is no reissue of the ROW address. In addition, a maximum of 32 symbols can be read continuously. Therefore, in order to read a series of data (0, 0, 0), (0, 1, 0),... (0, 207, 0) necessary for outer code correction, the following steps may be performed.
1: 1st ROW H'0000,0020,0040, ..., 03E0
2: 7th ROW H'1800, 1820, 1840, ..., 1BE0
3: 13th ROW H'2000, 2020, 2040, ..., 23E0
4: 19th ROW H'2800, 2820, 2840, ..., 2BE0
5: 25th ROW H'3000, 3020, 3040, ..., 33E0
6: 31st ROW H'3800, 3820, 3840, ..., 3BE0
7: 37th ROW H'4000, 4020, 4040, ..., 41E0
Reading the second and subsequent columns of the ECC block can be performed in the same procedure.
Reading the corrected data may be performed in exactly the same order as the first writing.
Although FIG. 6 shows data allocation for only one ECC block, in a normal apparatus, data of at least 3 ECC blocks is generally stored on a DRAM and processed. That is, the first ECC block is divided into data writing, the second ECC block is divided into access for correction, and the third ECC block is divided into reading for output. 3 ECC blocks are reused in a pipeline every time processing is completed. It is not uncommon for data of 4 ECC blocks or more to be accumulated and processed sequentially in order to provide a margin for error correction time.
FIG. 7 is a diagram showing an example of the second data rearrangement circuit when a 16-bit / 1-word DRAM is used.
Data with an even byte number (i = 1, 3, 5,... 31) gives a 4-frame delay to the upper byte side, and an odd byte number (i = 2, 4, 6,... 32). Is output to the lower byte without delay. As shown in the timing chart of FIG. 4, data (0, 0, 0) is output in combination with data (0, 3, 1). Two bytes (16 bits) output in combination after receiving a delay in the second data rearrangement circuit are written in one word of the DRAM.
FIG. 8 is a diagram showing a data allocation method of CD-ROM data on a 16-bit / word DRAM.
2-byte data created by combining data (0,0,0) and (0,3,1) is expressed as {(0,0,0), (0,3,1)}. 16 words {(0, 0, 0), (0, 3, 1)}, {(0, 0, 2), (0, 3, 3)}, {(0, 0, 4), ( 0, 3, 5)},..., {(0, 0, 30), (0, 3, 31)} to addresses H'000, H'011, H'022,.・ ・ Write to H'0FF. Thereafter, the data {(0, 1, 0), (0, 4, 1)}, {(0, 1, 2), (0, 4, 3)}, {(0, 1, 4), (0 , 4, 5)},..., {(0, 1, 30), (0, 4, 31)} to addresses H'100, H'111, H'122 in the second ROW of the DRAM.・ Write to H'1FF. After this is sequentially written up to the eighth ROW of the DRAM, data {(0,8,0), (0,11,1)}, {(0,8,2), (0,11,3)}, { (0,8,4), (0,11,5)},..., {(0,8,30), (0,11,31)} is again assigned to the address H′0F0 in the first ROW of the DRAM. , H′001, H′012,..., H′1EF. The ROW address can be repeated from 1st to 8th. The COLUMN address gives an appropriate initial value every time the ROW address changes, and then ignores the overflow and increments by H'11 (decimal 17). I'll do it. As a result, as is clear from FIG. 8, 16 words consecutive from the lower 4 bits H′0 of the address are a series of 32 symbols necessary for C2 correction.
To read the corrected data, it is necessary to perform deinterleaving defined by the standard as shown in FIG. In the data allocation on the DRAM of this embodiment, deinterleaving can be realized by DRAM read addressing. The deinterleave shown in FIG. 20 includes a 2-byte delay everywhere.
On the DRAM, the first and third, second and fourth, third and fifth, fourth and sixth, fifth and seventh, sixth and eighth, seventh and first, or This corresponds to the difference between the eighth and second ROW. Accordingly, (0, 0, 0), (0, 3, 1), (0, 24, 6), (0, 27, 7), (0, 62, 16), (0, 65) in FIG. 17), (0, 86, 22), (0, 89, 23), (0, 8, 2), (0, 11, 3), (0, 32, 8), (0, 35, 9) ), (0, 70, 18), (0, 73, 19), (0, 94, 24), (0, 97, 25), (0, 16, 4), (0, 19, 5), (0, 40, 10), (0, 43, 11), (0, 78, 20), (0, 81, 21), (1, 4, 26), (1, 7, 27) are output. In this case, it is achieved by repeating the ROW address update and reading in the 4-byte ROW address six times as follows.
1: First ROW address H'000, H'003
2: Third ROW address H'108, H'10B
3: 1st ROW address H'001, H'004
4: Third ROW address H'109, H'10C
5: 1st ROW address H'002, H'005
6: Third ROW address H'10A, H'10D
Since the above access alternately accesses the first ROW and the third ROW, it is not necessarily efficient. However, the deinterleaving process (see FIG. 20) necessary for output has special hardware. However, it is effective that it is realized only by DRAM addressing.
On the other hand, the addressing can be divided into two groups of the first ROW and the third ROW, and an output circuit as shown in FIG. 14 can be added to realize deinterleaving. As shown below, each of the first ROW and the third ROW is read by 6 words.
1: 1st ROW address H'000 to H'005
2: Third ROW address H'108 to H'10D
The read data is transferred to the output circuit shown in FIG. 14 through the internal bus. Data transfer is performed in synchronization with the read clock, and the address of the register to be written is designated by the input side
Since the above three types of DRAM access addressing, ie, CD-ROM input data write, C2 correction read, and corrected data output are relatively easy to find, simple registers and adders are used. Can be configured.
FIG. 9 is a diagram showing a data allocation method when the same 16-bit / word DRAM is used for error correction of a signal read from a DVD.
Data (0, 0, 0), (0, 0, 1),... (0, 0, 181) in the first row of the ECC block input from the demodulation circuit in time series are transferred from the first ROW of the DRAM. Write sequentially to the sixth ROW. However, two consecutive symbols are combined into 16 bits = 1 word data. In the first ROW, data {(0,0,0), (0,0,1)} to {(0,0,30), (0,0,31)} from address H'0000 to H'000F Is stored. The next data {(0,0,32), (0,0,33)} to {(0,0,62), (0,0,63)} are stored in the second ROW addresses H′0100 to H ′. The data is stored by 010F, and data is similarly written sequentially from the head of the third, fourth, fifth, and sixth ROWs.
Since the data for one row of the ECC block cannot divide 182 bytes by 32, the addresses H'050B to H'050F of the sixth ROW are unused areas. The data {(0, 1, 0), (0, 1, 1)}, ... {(0, 1, 180), (, sequentially input from the demodulation circuit in
In the embodiment shown in FIG. 2, an example is shown in which all or part of the inner code correction is executed before data is stored in the DRAM. However, according to the data allocation shown in FIG. A necessary series of 182 symbols are stored in the DRAM at the same ROW address by 32 symbols and can be read out continuously up to 32 symbols without reissuing the ROW address. Corrections may be made.
A series of data necessary for outer code correction is (b, 0, c), (b, 1, c),... (B, 207, c). As shown in FIG. 9, (0, 0, 0), (0, 1, 0),... (0, 15, 0) are stored in the first ROW of the DRAM, and there is no reissue of the ROW address. Up to 16 symbols can be read out continuously. Since DRAM is 2 bytes / word, (0, 0, 1), (0, 1, 1),... (0, 15, 1) can be read at the same time. It is efficient to process the outer code correction of the first column in parallel. The DRAM address generation method can be easily configured as in the case of an 8-bit / word DRAM.
Reading data after correction may be performed in exactly the same order as the first writing.
FIG. 9 also shows the data allocation for only one ECC block as in FIG. 6, but in a normal apparatus, as described above, it is common to store and process at least 3 ECC block data on the DRAM. .
FIG. 10 is a configuration diagram of the second data rearrangement circuit showing the second embodiment of the present invention, and shows a case where a DRAM of 32 bits / 1 word is used.
Data with a byte number that is a multiple of 4 (i = 1, 5, 9,... 29) gives a 12 frame delay, the most significant byte side, and the byte number divided by 4 leaves a remainder (i = 2, 6). , 10,... 30) gives a 12 frame delay to the second upper byte, and the data of the number that is left by dividing the byte number by 4 (i = 3, 7, 11,... 31) Gives 8 frame delay to the 3rd upper byte, and the data of the number remaining after dividing the byte number by 4 (i = 4, 8, 12,... 32) to the lowest byte without delay is a total of 4 bytes And output. As shown in the timing chart of FIG. 4, data (0, 0, 0) (0, 3, 1) (0, 8, 2) (0, 11, 3) are combined and output. The second data rearrangement circuit receives the delay and combines and
FIG. 11 is a diagram showing a data allocation method of CD-ROM data on a 32-bit / word DRAM.
4-byte data formed by a combination of data (0,0,0), (0,3,1), (0,8,2), (0,11,3) {(0,0,0), When expressed as (0, 3, 1), (0, 8, 2), (0, 11, 3)}, 16 words {(0, 0, 0), (0, 3, 3) output in time series. 1), (0, 8, 2), (0, 11, 3)}, {(0, 0, 4), (0, 3, 5), (0, 8, 6), (0, 11, 7)},..., {(0,0,28), (0,3,29), (0,8,30), (0,11,31)} is replaced with the address H in the first ROW of the DRAM. Write to '000, H'009, H'012, ... H'03F. Then, the data {(0, 1, 0), (0, 4, 1), (0, 9, 2), (0, 12, 3)}, {(0, 1, 4), (0, 4 , 5)}, (0, 9, 6), (0, 12, 7)}, ..., {(0, 1, 28), (0, 4, 29), (0, 9, 30) , (0, 12, 31)} are written to addresses H′040, H′049,... H′07F in the second ROW of the DRAM. After this is sequentially written up to the 16th row of the DRAM, the data {(0, 16, 0), (0, 19, 1), (0, 24, 2), (0, 27, 3)},... , {(0, 16, 28), (0, 19, 29), (0, 24, 30), (0, 27, 31)} are again converted to the addresses H'038, H'001 in the first ROW of the DRAM. , H′012,..., H′036. The ROW address only needs to be repeated from 1st to 16th. The COLUMN address gives an appropriate initial value every time the ROW address changes, and then ignores the overflow and increments by H'11 (decimal 17). I'll do it. As a result, as is apparent from FIG. 11, the 4 words continuing from the lower 3 bits H′0 of the address are a series of 32 symbols necessary for C2 correction.
To read the corrected data, it is necessary to perform deinterleaving defined by the standard as shown in FIG. In the data allocation on the DRAM of this embodiment, deinterleaving can be realized by DRAM read addressing. The deinterleave shown in FIG. 20 includes a 2-byte delay everywhere. On the DRAM, the first and third, second and fourth, third and fifth, fourth and sixth, fifth and seventh, sixth and eighth,... This corresponds to 1 or the difference between the 16th and 2nd ROWs. Accordingly, (0, 0, 0), (0, 3, 1), (0, 24, 6), (0, 27, 7), (0, 62, 16), (0, 65) in FIG. 17), (0, 86, 22), (0, 89, 23), (0, 8, 2), (0, 11, 3), (0, 32, 8), (0, 35, 9) ), (0, 70, 18), (0, 73, 19), (0, 94, 24), (0, 97, 25), (0, 16, 4), (0, 19, 5), (0, 40, 10), (0, 43, 11), (0, 78, 20), (0, 81, 21), (1, 4, 26), (1, 7, 27) are output. In this case, it is achieved by repeating the ROW address update and reading in the ROW address of 3 words twice as follows.
1: 1st ROW address H'000, H'001, H'002
2: Third ROW address H'084, H'085, H'086
Since it is 32 bits / word, the number of accesses is small. However, replacement of data (symbols) in units of bytes cannot be performed only by addressing.
FIG. 15 is a block diagram of the output circuit (for 32-bit / word DRAM) showing the third embodiment of the present invention.
In order to realize the output order according to the standard, a deinterleave circuit as shown in FIG. 15 is required. The read data is transferred to the output circuit shown in FIG. 15 through the internal bus. Data transfer is performed in synchronization with the read clock, and the address of the register to be written is designated by the hex counter 152 on the input side in the output circuit. Since there are 4 symbols per word, 4 latches 153 to be written are designated simultaneously. When the first data is input, the hex counter 152 is 0, and is incremented by 1 every time a read clock is input. There are six outputs from the
Although the output connection destination of the
Since the above three types of DRAM access addressing, ie, CD-ROM input data write, C2 correction read, and corrected data output are relatively easy to find, simple registers and adders are used. Can be configured.
FIG. 12 is a diagram showing a data allocation method when the same 32-bit / word DRAM is used for error correction of a signal read from a DVD.
Data (0, 0, 0), (0, 0, 1),... (0, 0, 181) in the first row of the ECC block input from the demodulation circuit in time series are transferred from the first ROW of the DRAM. Write sequentially to the sixth ROW. However, four consecutive symbols are combined into 32 bits = 1 word data.
In the first ROW, data {(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 0, 3)} from address H'0000 to H'0007 to { (0, 0, 28), (0, 0, 29), (0, 0, 30), (0, 0, 31)} are stored. From the next data {(0,0,32), (0,0,33), (0,0,34), (0,0,35)} to {(0,0,60), (0,0 , 61), (0, 0, 62), (0, 0, 63)} are stored in addresses H'0040 to H'0047 of the second ROW, and similarly, the third, fourth, fifth and sixth ROWs are stored. Data is written sequentially from the beginning of.
Since the data for one row of the ECC block cannot divide 182 bytes by 32, the lower 2 bytes of the 6th ROW address H′0145 to H′014F are unused areas. The data in the second row of the ECC block {(0, 1, 0), (0, 1, 1), (0, 1, 2), (0, 1, 3) successively input in time series from the demodulation circuit )},... {(0,1,178), (0,1,179), (0,1,180), (0,1,181)} return to the first row of the DRAM and return to the first row. The second ROW address H′0048 to the sixth ROW address H′004F are sequentially written from the address H′0008 to H′000F following the eye data. Similarly, the data in the third to sixteenth rows of the ECC block are sequentially written from the first ROW to the sixth ROW of the DRAM. Further, the data from the 17th to the 32nd row of the ECC block are the 7th to 12th ROW of the DRAM, the data from the 33rd to the 48th row are the 13th to 18th ROW of the DRAM, and the 208th row from the last 193th row. The first data is sequentially written from the 151st row to the 156th row of the DRAM, and the data of the ECC block from the first row to the 32nd row is written in the same manner as the data from the first row to the sixth row of the DRAM.
In the embodiment shown in FIG. 2, the example in which all or part of the inner code correction is executed before storing the data in the DRAM is shown. However, according to the data allocation shown in FIG. A necessary series of 182 symbols are stored in the DRAM at the same ROW address by 32 symbols and can be read out continuously up to 32 symbols without reissuing the ROW address. Corrections may be made.
A series of data necessary for outer code correction is (b, 0, c), (b, 1, c),... (B, 207, c). As shown in FIG. 12, (0, 0, 0), (0, 1, 0),... (0, 7, 0) are stored in the first ROW of the DRAM, and there is no reissue of the ROW address. Up to 8 symbols can be read out continuously.
Since the DRAM has 4 bytes / word, at this time, the first column (0,0,1), (0,1,1),... (0,7,1), the second column (0,0) , 2), (0, 1, 2), ... (0, 7, 2), third column (0, 0, 3), (0, 1, 3), ... (0, 7, Since 3) can also be read out simultaneously, it is efficient to process the 0th to 3rd column outer code corrections in parallel. The DRAM address generation method can be easily configured as in the case of an 8-bit / word DRAM. Reading data after correction may be performed in exactly the same order as the first writing.
FIG. 12 also shows the data allocation for only one ECC block as in FIG. 6, but in a normal apparatus, as described above, it is common to store and process at least 3 ECC block data on the DRAM. is there.
FIG. 16 is a block diagram of an address generation circuit applied to each embodiment of the present invention.
The
The addition result is written to one of the plurality of
As described above, an appropriate input circuit, particularly the second data rearrangement circuit in the CD-ROM, and an appropriate output circuit, particularly a deinterleave circuit in the CD-ROM, are provided according to the number of bits of the DRAM word. As a result, accesses to the DRAM can be grouped into consecutive word accesses to the same ROW address. For this reason, a high transfer rate using page mode access can be obtained, and a low-speed DRAM, that is, a low-cost DRAM can also be used effectively. As the number of bits per word of DRAM can be increased, the number of access cycles can be reduced. However, there are disadvantages such as an increase in the number of pins and an increase in the scale of the input / output circuit. This is a trade-off.
When the DRAM is configured on the same LSI, it is almost the same as the case of the external DRAM described above, but it is most preferable to use 8 bits per word. In the case of an on-chip DRAM, there is no need for an address multiplex, that is, a row address and a column address can be issued simultaneously. In addition, since the data of the same row address is once read out at a time, the speed of reading out the data in the same row address while changing the column address is sufficiently fast, so a second data rearrangement circuit that collects a plurality of symbols is necessary. Often not.
FIG. 17 is a diagram showing an example of an optical disk reproducing apparatus capable of reproducing a CD-ROM and DVD embodying the present invention.
A spindle motor 174 that rotates the disk, a
The electrical system is entirely controlled by the microcontroller 174. Under the instruction of the microcontroller 174, the
A clock synchronized with the data is reproduced from the signal of the photodetector 173, and sampling and binarization is performed using the clock to obtain a digital signal. A synchronization pattern defined in the standard is detected from the obtained digital signal, and the start timing of a CD-ROM or DVD frame is identified. The
The operations of the input circuit, the output circuit, the address generation circuit, the priority determination circuit, the error correction processing circuit, the DRAM, and the like are as described in the embodiment. The corrected data transmitted through the output circuit is transferred by the
The
In order to improve the correction processing / capability, the
FIG. 18 is a configuration diagram of a data processing circuit showing an embodiment of the present invention, and shows a configuration of a buffer register and a data processing circuit when the number of processor elements PE is eight.
DRAM assumes 16 bits / word, so the internal bus is also assumed to be 16 bits wide. Data allocation on the DRAM is as shown in FIG. 8 in the case of CD-ROM reproduction, and as shown in FIG. 9 in the case of DVD reproduction.
In FIG. 18, the buffer register is composed of a 1-byte 2-output 1-byte register of 8 rows and 8 columns. The data input terminals DB [15: 0] are connected to the above-described internal bus, and are 1 byte of a row selected by the row write enable signals WAR0 to WAR7 and a column selected by the column write enable signals WAC0 to WAC3. Data is stored in two registers. On the other hand, reading is output in parallel from eight registers arranged in the row direction or the column direction. The row or column direction is specified by the control terminal R / C. In the case of the row direction, the data of the selected 1 row and 8 bytes selected from RR0 to RR7 is read and the processor element PE0 of the data processing circuit is read byte by byte. To PE7. In the case of the column direction, data of one column and eight bytes selected from RC0 to RC7 is read and supplied to the processor elements PE0 to PE7 of the data processing circuit one byte at a time.
A data transfer procedure when the CD-ROM C2 correction is performed by the parallel processors PE0 to PE7 in FIG. 18 will be described. As described above, 28 bytes necessary for C2 correction in FIG. 8 are stored in consecutive addresses from the lower addresses H′0 to H′
The C side, that is, the column side is selected at the R / C terminal and data of 8 bytes is sequentially transferred from RC0 to RC7 to the processor elements PE0 to PE7. By this operation, the data in the first to eighth rows of the buffer register are sequentially transferred to the processor elements PE0 to PE7, respectively. Since the buffer register becomes empty, the next 4 words from the first ROW to the eighth ROW of the DRAM, 64 bytes in total, are transferred to the processor elements PE0 to PE7 through the buffer register again. By repeating this, all necessary data is transferred to the processor elements PE0 to PE7. In the data processing circuit, C2 correction can be executed in parallel by eight processor elements. Since the data required for C2 correction is 28 bytes and the transfer unit is 8 bytes, the last 4 bytes become unnecessary data in the fourth transfer. Since these 4 bytes are C1 parity, it is not necessary to correct C2. Therefore, these 4 bytes can be used as a C1 correction status flag.
Next, a data transfer procedure when the internal code correction of the DVD is performed by the parallel processors PE0 to PE7 in FIG. 18 will be described.
As described above, in FIG. 9, 182 bytes necessary for the inner code correction are stored in consecutive addresses from the lower addresses H′0 to H′F of the first ROW to the sixth ROW of the DRAM every 32 bytes. In the first ROW of the DRAM, 8 bytes of data from addresses H'0000 to H'0003 are stored in the first row of the buffer register, and 8 bytes of data from addresses H'0010 to H'0013 are stored in the second row of the buffer register. Repetitively, 8 bytes of data from addresses H′0070 to H′0073 are transferred to the eighth row of the buffer register. As a result, the first 8 bytes from the first line to the eighth line of the ECC block were transferred from the first line to the eighth line of the buffer register. The C side, that is, the column side is selected at the R / C terminal and data of 8 bytes is sequentially transferred from RC0 to RC7 to the processor elements PE0 to PE7. By this operation, the data from the first line to the eighth line of the buffer register are sequentially transferred to the processor elements PE0 to PE7, respectively. Since the buffer register is emptied again, the next address H'0004 to H'0007, H'0014 to H'0017,... Is transferred from the processor elements PE0 to PE7 through the buffer register. By repeating this, all necessary data is transferred to the processor elements PE0 to PE7. In the data processing circuit, the inner code correction can be executed in parallel by the eight processor elements PE0 to PE7.
Next, a data transfer procedure when DVD outer code correction is performed by the parallel processors PE0 to PE7 in FIG. 18 will be described.
As described above, 208 bytes necessary for outer code correction in FIG. 9 are stored at the same lower address every 6 ROW from the first ROW to the 78th ROW of the DRAM every 16 bytes. In the first ROW of the DRAM, 8 bytes of data from addresses H'0000 to H'0003 are stored in the first row of the buffer register, and 8 bytes of data from addresses H'0010 to H'0013 are stored in the second row of the buffer register. Repetitively, 8 bytes of data from addresses H′0070 to H′0073 are transferred to the eighth row of the buffer register. As a result, the first 8 bytes from the first line to the eighth line of the ECC block were transferred from the first line to the eighth line of the buffer register. This corresponds to the first 8 bytes from the first column to the eighth column of the ECC block.
In the inner code correction, the C side, that is, the column side is selected at the R / C terminal, but in the outer code correction, the R side, that is, the row side is selected, and data of 8 bytes from RR0 to RR7 is sequentially transmitted from the processor element PE0. Transfer to PE7. By this operation, data from the first column to the eighth column of the buffer register are sequentially transferred to the processor elements PE0 to PE7, respectively. Since the buffer register is emptied, the next address of the seventh ROW of the DRAM H'0600 to H'0603, H'0700 to H'0703, ... H'0BF0 to H'0BF3, a total of 64 The bytes are transferred from the processor elements PE0 to PE7 through the buffer register. By repeating this, all necessary data is transferred to the processor elements PE0 to PE7.
In the data processing circuit, the outer code correction can be executed in parallel by the eight processor elements PE0 to PE7.
FIG. 18 illustrates the parallel processing of CD-ROM and DVD error correction. In particular, the operation for DVD can be widely applied to error correction of general Reed-Solomon product codes.
If the signal processing up to the input circuit is changed according to the input medium, and the output circuit and the subsequent parts are changed according to the output destination, the present invention can be easily applied to other media. Since the data format for error correction is similar to the data format of the CD-ROM or DVD described in the above embodiment, whether it is storage media or broadcast media, the address generation circuit, priority determination Circuits and the like can be easily applied to different formats by slightly changing the sequence control.
This is extremely advantageous in terms of effective utilization of design data.
FIG. 22 is a configuration diagram of a data processing apparatus showing another embodiment of the present invention, in which the processing method of the present invention is realized by software.
The embodiment shown in FIG. 1 is a hardware configuration of the data processing apparatus of the present invention. The address generation,
FIG. 22 shows a hardware configuration on the assumption that the software is realized by software on the
FIG. 23 is a flowchart of a priority determination routine of the microprocessor, and shows a flow of software for monitoring a DRAM access request status and starting a necessary processing subroutine as appropriate.
First, the contents of the DRAM access request status register are read (
The
Read access processing subroutine for C1 correction (
FIG. 24 is a flowchart illustrating an example of a write access processing routine from the demodulation circuit.
Here, a subroutine for writing data so as to have the data arrangement shown in FIG. 5 using a DRAM with an 8-bit data width in a system for demodulating a CD-ROM is shown. Assume that the input data from the demodulating circuit is “DATA”, and the position of the data at this time is the output “i” of the 33-
If the data is an odd number (step 262), dly but [i] one frame before is stored in out buf [i] to be output next (step 270). Further, DATA of i = 13, 14, 15, 16, 29, 30, 31, 32 is parity, and the parity is all bits inverted as shown in the CD standard in FIG. (
Since 32 bytes are written continuously, i = 32, that is, until the end of the frame is reached, the next input is waited without accessing the DRAM. When i = 32 (step 266), 32 bytes of data to be written to the DRAM is stored in out buf, so that an address is actually issued to the DRAM and a write operation is performed. In the flow, the variables row, col0, and col are variables for calculating the DRAM row, initial column, and column address, respectively, and the variables DRAM ROW, DRAM COL, and DRAM DATA are the row and column that are actually issued to the DRAM, respectively. Address and data.
The row address of the DRAM increases by 1 for each frame of the CD and returns to 0 with an appropriate value (see 271). Further, the initial column address col0 increases by 32 for each frame (in H'20 in 24 digits), and then returns to 0 when it reaches the maximum value in the same row (see 272). When the initial column address is obtained, the column address is actually issued to the DRAM, and at the same time, the data is output to the DRAM for writing (
When the column address is about to exceed the maximum value H′400, the write cycle is prevented from increasing due to reissue of the row address by subtracting H′400 and returning to a young column address in the same row address (274). reference).
With the software for realizing the flowchart of FIG. 24 described above, the data rearrangement circuit realized by the hardware shown in FIG. 3 can be realized by software.
In the following, subroutines such as reading data for C1, C2 correction, reading data for output, reading data for correction, and writing for correction are necessary, but these are already properly rearranged data. Since this is an access to, and can be easily realized, description thereof is omitted.
When the control of the DRAM is realized by software, there is an effect that the extra space of the DRAM can be used as a work area for data of another purpose.
Industrial applicability
As described above, the data processing apparatus of the present invention can use high-speed access within the same ROW address of the DRAM, and can cope with error correction of signals from different media in common. In particular, it is not necessary to use a high-speed and expensive memory, and an inexpensive data processing apparatus can be realized. Furthermore, if the input and output circuits connected to the internal bus are designed to adapt to the system, the correction processing circuit including DRAM access can be diverted to a different system with only minor changes, thus reducing development costs. There is also an effect.
[Brief description of the drawings]
FIG. 1 is a block diagram of a data processing apparatus showing a first embodiment of the present invention.
FIG. 2 is a detailed block diagram of the input circuit in FIG.
FIG. 3 is a detailed block diagram of the first data rearrangement circuit and counter in FIG.
FIG. 4 is a timing chart for explaining the operation of the CD-ROM signal input circuit.
FIG. 5 is a diagram showing an example of data allocation on the 8-bit / word DRAM of CD-ROM data.
FIG. 6 is a diagram showing an example of data allocation on the 8-bit / word DRAM of DVD data.
FIG. 7 is a block diagram showing an embodiment of the second data rearrangement circuit of the present invention.
FIG. 8 is a diagram showing an example of data allocation on a 16-bit / word DRAM of CD-ROM data.
FIG. 9 is a diagram showing an example of data allocation on a 16-bit / word DRAM of DVD data.
FIG. 10 is a block diagram showing another embodiment of the second data rearrangement circuit of the present invention.
FIG. 11 is a diagram showing an example of data allocation on a 32-bit / word DRAM of CD-ROM data.
FIG. 12 is a diagram showing an example of data allocation on a 32-bit / word DRAM of DVD data.
FIG. 13 is a block diagram showing a first embodiment (for 8-bit / word DRAM) of the output circuit in FIG.
FIG. 14 is a block diagram showing a second embodiment (for 16-bit / word DRAM) of the output circuit in FIG.
FIG. 15 is a block diagram showing a third embodiment (for 32-bit / word DRAM) of the output circuit in FIG.
FIG. 16 is a block diagram showing an embodiment of the address generation circuit in FIG.
FIG. 17 is a block diagram of an embodiment of a CD-ROM / DVD playback apparatus to which the present invention is applied.
FIG. 18 is a block diagram showing an embodiment of the data processing circuit of the present invention.
FIG. 19 is a format diagram of error correction codes of time-series data and CD-ROM data after CD-ROM demodulation.
FIG. 20 is a diagram showing standards for error correction and deinterleaving of a CD-ROM.
FIG. 21 is a format diagram of error correction codes of time-series data and CD-ROM data after CD-ROM demodulation.
FIG. 22 is a block diagram of a data processing apparatus showing a second embodiment of the present invention.
FIG. 23 is a flowchart of the microprocessor priority determination routine in FIG.
FIG. 24 is a flowchart of a write access processing routine from the demodulation circuit in FIG.
Claims (10)
上記媒体から時系列で入力されるデータ列に前処理を施す入力回路と、前処理が終了したデータ列を記憶するDRAMと、該DRAMに記憶されたデータに対して誤り訂正を行なうデータ処理回路と、処理の完了したデータを出力する出力回路と、該入力回路から該DRAMへの書き込みと、第2の訂正処理のための該DRAMからの読み出しと、該出力回路へデータを出力するための該DRAMからの読み出しとで、それぞれアクセスされるデータが、予め定められたワード数の単位で該DARM上のそれぞれ同一ROWアドレス内に割り付けられ、上記の各アクセスで該ROWアドレスと該ROW内のカラムアドレスを該ワード数分連続して発行するDRAMのアクセス制御回路と、処理の完了したデータを出力する前記出力回路とが共通のデータバスを介して相互接続されており、前記それぞれの回路からの要求信号を元に優先判定をして、判定結果DRAMアクセスのスケジューリングに反映する手段を具備したデータ処理装置であって、
前記DRAMにデータを書き込む前に、第1の訂正処理の一部を実行する他のデータ処理回路を前記入力回路に備えたことを特徴とするデータ処理装置。A first error correction code that can start correction processing when a small amount of data is stored in a time-series data string input from the medium, and correction processing can be started when a data amount larger than the above data amount is stored. In a data processing apparatus for reproducing a signal composed of a second error correction code,
An input circuit for performing pre-processing on the data string input in time series from the medium, pretreated with DRAM that stores the data sequence has been completed, the data processing circuit for performing error correction on data stored in the DRAM An output circuit for outputting processed data, writing to the DRAM from the input circuit, reading from the DRAM for second correction processing, and outputting data to the output circuit When data is read from the DRAM, the data to be accessed is allocated to the same ROW address on the DARM in units of a predetermined number of words, and the ROW address and the ROW It said output circuit and is co outputting the access control circuit of the DRAM to issue the column address successively several minutes the word, the completed data processing Are connected each other via a data bus, and a priority determination based on the request signal from the circuit of the respective judgment results A data processing apparatus comprising means for reflecting the scheduling of DRAM access,
A data processing apparatus comprising: another data processing circuit that executes a part of a first correction process in the input circuit before writing data to the DRAM.
DVDの再生時には、前記第1の誤り訂正符号を内符号、前記第2の誤り訂正符号を外符号とし、該DRAMへのアクセスのワード数を、該入力回路から該DRAMへの書き込みのとき32バイト分、外符号訂正処理のための該DRAMからの読み出しのとき32バイト分、該出力回路へデータを出力するための該DRAMからの読み出しのとき32バイト分を、それぞれ同一のROWアドレスに割り付け、それぞれのアクセスにおいて該ROWアドレスと該ROW内のカラムアドレスを該ワード数分連続して発行することを特徴とする請求項2記載のデータ処理装置。The DRAM access control circuit issues an address for reproducing both CD-ROM and DVD media,
When reproducing a DVD, the first error correction code is an inner code, the second error correction code is an outer code, and the number of words accessed to the DRAM is 32 when writing from the input circuit to the DRAM. Bytes, 32 bytes when reading from the DRAM for outer code correction processing, and 32 bytes when reading from the DRAM for outputting data to the output circuit are allocated to the same ROW address. 3. The data processing apparatus according to claim 2 , wherein in each access, the ROW address and the column address in the ROW are issued continuously for the number of words.
媒体から時系列で入力されるデータ列に前処理を施すステップと、
DRAMに対するアクセス要因別にアクセスを要求するレジスタを監視し、要求の優先度に応じて、リフレッシュ処理、復調回路からのDRAMへの書き込み処理、C1訂正のための該DRAMからの読み出し処理、C2訂正のための該DRAMからの読み出し処理、外部への出力のための該DRAMからの読み出し処理、訂正のための該DRAMからの読み出しおよび書き込み処理を実行するマイクロコントローラの処理ステップと、
該DRAMに記憶されたデータに対して誤り訂正を行うステップと、
処理の完了したデータを出力するステップとを含み、
入力回路から該DRAMへの書き込みと、第2の訂正処理のための該DRAMからの読み出しと、出力回路へデータを出力するための該DRAMからの読み出しとで、それぞれアクセスされるデータが、予め定められたワード数の単位で該DRAM上のそれぞれ同一ROWアドレス内に割り付けられ、上記の各アクセスで該ROWアドレスと該ROW内のカラムアドレスを該ワード数分連続して発行するものであり、
該DRAMにデータを書き込む前に、第1の訂正処理の一部を実行するデータ処理ステップを前記前処理を施すステップ中に含むことを特徴とするデータ処理方法。A first error correction code that can start correction processing when a small amount of data is stored in a data sequence input in time series from a medium, and correction processing can be started when a larger amount of data than the data sequence is stored In a method for reproducing a signal composed of a second error correction code,
Pre-processing the data sequence input in time series from the medium;
A register that requests access to each DRAM access factor is monitored, and according to the priority of the request , refresh processing, write processing from the demodulation circuit to DRAM, read processing from the DRAM for C1 correction, C2 correction read process from the DRAM for a processing step of microcontroller that executes read processing from the DRAM for output to the outside, the read and write operations to the DRAM for the correction,
Performing error correction on the data stored in the DRAM;
Outputting completed data, and
Data to be accessed by writing from the input circuit to the DRAM, reading from the DRAM for the second correction process, and reading from the DRAM for outputting data to the output circuit is previously stored. Allocated in the same ROW address on the DRAM in units of a predetermined number of words, and the ROW address and the column address in the ROW are continuously issued by the number of words in each access described above,
A data processing method characterized by including a data processing step for executing a part of the first correction processing before the data is written in the DRAM.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP1998/002476 WO1999063540A1 (en) | 1998-06-04 | 1998-06-04 | Data processor and data processing method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO1999063540A1 JPWO1999063540A1 (en) | 2002-11-19 |
| JP3904138B2 true JP3904138B2 (en) | 2007-04-11 |
Family
ID=14208340
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000552676A Expired - Fee Related JP3904138B2 (en) | 1998-06-04 | 1998-06-04 | Data processing apparatus and processing method |
Country Status (4)
| Country | Link |
|---|---|
| JP (1) | JP3904138B2 (en) |
| AU (1) | AU7550198A (en) |
| TW (1) | TW436724B (en) |
| WO (1) | WO1999063540A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3668673B2 (en) | 2000-06-09 | 2005-07-06 | 株式会社日立コミュニケーションテクノロジー | Error correction code configuration method, decoding method, transmission apparatus, network |
| US10380024B2 (en) * | 2017-12-05 | 2019-08-13 | Nanya Technology Corporation | DRAM and method of operating the same in an hierarchical memory system |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6226930A (en) * | 1985-07-26 | 1987-02-04 | Nec Corp | Error correction decoder |
| JPH097365A (en) * | 1995-06-23 | 1997-01-10 | Nec Corp | Dram-address forming circuit for cd-rom |
| JPH09115244A (en) * | 1995-10-20 | 1997-05-02 | Hitachi Ltd | Recording / reproducing apparatus and integrated circuit thereof |
| JPH09259261A (en) * | 1996-03-22 | 1997-10-03 | Toshiba Corp | Memory address generator and method |
-
1998
- 1998-06-04 JP JP2000552676A patent/JP3904138B2/en not_active Expired - Fee Related
- 1998-06-04 AU AU75501/98A patent/AU7550198A/en not_active Abandoned
- 1998-06-04 WO PCT/JP1998/002476 patent/WO1999063540A1/en not_active Ceased
-
1999
- 1999-04-01 TW TW088105230A patent/TW436724B/en not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| WO1999063540A1 (en) | 1999-12-09 |
| TW436724B (en) | 2001-05-28 |
| AU7550198A (en) | 1999-12-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6119260A (en) | Decoder for executing error correction and error detection in parallel | |
| CN100431034C (en) | Method and device for data reproduction | |
| US6877126B2 (en) | Method and apparatus for data reproduction | |
| US6185640B1 (en) | Minimal frame buffer manager allowing simultaneous read/write access by alternately filling and emptying a first and second buffer one packet at a time | |
| US6651208B1 (en) | Method and system for multiple column syndrome generation | |
| JPS62298970A (en) | Sequential buffer | |
| US6243845B1 (en) | Code error correcting and detecting apparatus | |
| JPH08106733A (en) | Information storage medium utilization system | |
| JPH1198462A (en) | Data playback device | |
| JP3904138B2 (en) | Data processing apparatus and processing method | |
| US6044484A (en) | Method and circuit for error checking and correction in a decoding device of compact disc-read only memory drive | |
| US6697921B1 (en) | Signal processor providing an increased memory access rate | |
| JP2952198B2 (en) | Memory control circuit and method for CD-ROM drive system | |
| JPWO1999063540A1 (en) | Data processing device and processing method | |
| KR19980042386A (en) | Code Error Correction Decoder and Address Generation Circuit | |
| JP4386615B2 (en) | Data processing device | |
| JPH0721700A (en) | Error correction memory device | |
| JPH11120124A (en) | Bus access device, bus arbitration system, CD-ROM decoder, DVD-ROM decoder, and CD-ROM drive | |
| US5815691A (en) | Method for controlling an external memory for a CD-ROM decoder and apparatus therefor | |
| KR100269533B1 (en) | Apparatus for decoding and method for correcting error in hi-speed compact disc-rom drive | |
| JPS63285778A (en) | Disk recording system | |
| JP2001117825A (en) | Data recording device and data reproducing device | |
| JP3744134B2 (en) | Error correction apparatus and method, and digital signal reproduction apparatus and method | |
| KR100266165B1 (en) | Method of Accessing DRAM for Processing Error Correction Code | |
| WO1998041987A1 (en) | Device and method for reproducing digital signal using variable bus-width memory and device and method for recording digital signal |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060929 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061128 |
|
| 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: 20061222 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070104 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |