JP3863252B2 - 誤り訂正方法、誤り訂正装置、データ読み出し装置、及び、データマッピング方法 - Google Patents
誤り訂正方法、誤り訂正装置、データ読み出し装置、及び、データマッピング方法 Download PDFInfo
- Publication number
- JP3863252B2 JP3863252B2 JP14951497A JP14951497A JP3863252B2 JP 3863252 B2 JP3863252 B2 JP 3863252B2 JP 14951497 A JP14951497 A JP 14951497A JP 14951497 A JP14951497 A JP 14951497A JP 3863252 B2 JP3863252 B2 JP 3863252B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- error correction
- row
- column
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
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
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1806—Pulse code modulation systems for audio signals
- G11B20/1809—Pulse code modulation systems for audio signals by interleaving
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は誤り訂正方法、誤り訂正装置、データ読み出し装置、及び、データマッピング方法に関する。
【0002】
近年、光ディスク等の記憶媒体における記憶容量の大容量化に伴い、そのデータ読みとり時間の高速化も要求されている。特に、データ読みとりの際、その処理時間の長い誤り訂正処理装置においては、その処理時間の短縮化が要求されている。そのため、処理時間の短縮化を図る上で、誤り訂正処理におけるデータを格納するバッファメモリに対するアクセスの高速化を図る必要がある。
【0003】
【従来の技術】
従来、記録媒体に記憶されたデータには、そのデータの読み出し時等に発生する誤りを訂正するために誤り訂正符号(ECC:Error Correcting Code) が予め付加されている。例えば、図19に示すように、記録媒体に格納された1つのブロックデータ11は、データ部12と誤り訂正符号13,14とから構成されている。誤り訂正符号13は、データ部12の各列毎に演算されて付加されている。誤り訂正符号14は、データ部12と誤り訂正符号13の各行毎に演算されて付加されている。
【0004】
そして、記録媒体に対してデータの入出力を行うコントローラには、ブロックデータ11の誤りを訂正する誤り訂正回路が備えられる。誤り訂正回路は、先ず、データ部12及び誤り訂正符号13,14に基づいて、各行のデータを1バイト毎に読み出して順次演算し、その演算結果に基づいて各行のデータに発生する誤りを訂正する。その後、誤り訂正回路は、データ部12及び誤り訂正符号13に基づいて、各列のデータを1バイト毎に読み出して順次演算し、その演算結果に基づいて各列のデータに発生する誤りを訂正する。
【0005】
従って、誤り訂正処理には、データ12及び誤り訂正符号13,14の全てのデータが必要であり、誤り訂正回路には大容量のバッファメモリが接続される。誤り訂正回路は、バッファメモリに格納されたデータを読み出して誤り訂正処理を行い、その処理結果である訂正データをバッファメモリに格納する。そして、バッファメモリに格納された誤り訂正後のデータは、ホストコンピュータ等の外部機器に出力される。
【0006】
【発明が解決しようとする課題】
ところで、近年では、ホストコンピュータの処理速度の高速化に伴い、記憶装置に対するデータの読み出し/書き込み速度の高速化が要求されている。例えば、光ディスク等の記録装置では、記録媒体である光ディスクを基準の速度の2倍以上、例えば、4倍の速度で回転制御し、読み出し速度の高速化が図られる。
【0007】
しかしながら、バッファメモリに対するアクセスにより、読み出し速度の高速化が難しい場合がある。即ち、バッファメモリには、ブロックデータ11の各行毎にデータの読み出しと、訂正データの書き込みが繰り返し行われる。即ち、外部バッファメモリに対して多くのアクセスが行われるため、アクセス速度を高速化することが難しく、誤り訂正処理を高速化することができない。
【0008】
本発明は上記問題点を解決するためになされたものであって、その目的は、データのアクセス時間を短くして読み出し時間の高速化を図ることができる誤り訂正方法を提供することにある。
【0009】
また、データのアクセス時間を短くして読み出し時間の高速化を図ることができる誤り訂正装置、及び、データ読み出し装置を提供することにある。
更に、誤り訂正処理におけるデータのアクセス時間の短縮をはかることができるデータマッピング方法を提供することにある。
【0010】
【課題を解決するための手段】
本発明は上記目的を達成するため、請求項1に記載の発明は、二次元配列され、縦方向と横方向のそれぞれに誤り訂正符号が付加されたブロックデータに対して、ブロックデータの各列毎に誤り訂正を行う列誤り訂正と、ブロックデータの各行毎に誤り訂正処理を行う行誤り訂正とを行う誤り訂正方法において、複数の列又は行に対する誤り訂正を並列に行なった後に、前記複数の行又は列に対する誤り訂正を並列に行うようにし、前記ブロックデータは、前記複数の行又は列に対応したデータバス幅を有し、高速ページモードを備えたメモリに格納され、前記データバス幅分の各列又は各行の誤り訂正後のデータ及び複数の行又は列の誤り訂正後のデータを、前記メモリの同一ページ内に格納するようにした。
【0012】
また、請求項2に記載の発明は、請求項1に記載の誤り訂正方法において、複数の行又は列から前記メモリのデータバス幅に対応した数のデータを一度に読み出し、その読み出した複数の行又は列のデータを並列に演算して各行又は列毎に誤り訂正を行うようにした。
【0014】
また、請求項3に記載の発明は、請求項2に記載の誤り訂正方法において、前記メモリには、各列又は各行に対する誤り訂正後のブロックデータが格納され、該メモリから複数の行又は列のデータ、又は各行又は列の複数のデータを順次読み出して各行又は列毎に誤り訂正を行うようにした。
【0015】
また、請求項4に記載の発明は、請求項1,2又は3に記載の誤り訂正方法において、前記ブロックデータは、記録媒体にインタリーブされて記憶され、前記メモリには、各列又は各行に対する誤り訂正後に並び替えて格納するようにした。
【0016】
また、請求項5に記載の発明は、請求項1,2,3又は4に記載の誤り訂正方法において、前記各行,各列をそれぞれ符号語として扱い、符号語全体から各行・各列に対するシンドロームを演算し、前記シンドロームを基に各行,各列に対する誤りを訂正するようにした。
【0017】
また、請求項6に記載の発明は、二次元配列され、縦方向と横方向のそれぞれに誤り訂正符号が付加されて外部に接続されたメモリに格納されたブロックデータに対して、ブロックデータの各列毎に誤り訂正を行う列誤り訂正と、ブロックデータの各行毎に誤り訂正処理を行う行誤り訂正とを行う誤り訂正回路を備えた誤り訂正装置において、前記誤り訂正回路は、複数の列又は行に対する誤り訂正を並列に行なった後に、前記複数の行又は列に対する誤り訂正を並列に行うようにし、前記メモリは、高速ページモードを備え、複数の行又は列に対応したデータバス幅に設定され、前記メモリに誤り訂正後のブロックデータを格納するメモリ制御部は、前記データバス幅分の各列又は各行のデータ及び複数の行又は列のデータを前記メモリの同一ページ内に格納するようにした。
【0019】
また、請求項7に記載の発明は、請求項6に記載の誤り訂正装置において、前記誤り訂正回路は、前記メモリに格納された前記ブロックデータの複数の行又は列から前記メモリのデータバス幅に対応した数のデータを一度に読み出し、その読み出した複数の行又は列のデータを並列に演算して各行又は列毎に誤り訂正を行うようにした。
【0021】
また、請求項8に記載の発明は、請求項7に記載の誤り訂正装置において、前記誤り訂正回路は、各列に対する誤り訂正処理を行う列誤り訂正回路と、各行に対する誤り訂正処理を行う行誤り訂正回路とから構成され、前記メモリ制御部は、前記メモリに行誤り訂正回路による誤り訂正後のブロックデータを格納するとともに、前記メモリに格納されたデータを、前記データバス幅に対応したデータ数毎に順次前記メモリから同時に読み出して前記列誤り訂正回路に出力する。
【0022】
また、請求項9に記載の発明は、請求項6,7又は8に記載の誤り訂正装置において、前記ブロックデータは、記録媒体にインタリーブされて記憶され、前記行誤り訂正回路は、記録媒体から読み出されたデータに対して誤り訂正し、訂正後のブロックデータを前記メモリ制御部に出力し、前記メモリ制御部は、訂正後のデータを並び替えてメモリに記憶するようにした。
【0023】
また、請求項10に記載の発明は、請求項6,7,8又は9に記載の誤り訂正装置において、前記列誤り訂正回路及び行誤り訂正回路は、それぞれ前記各行,各列を符号語として扱い、符号語全体から各行・各列に対するシンドロームを演算し、前記シンドロームを基に各行,各列に対する誤りを訂正するようにした。
【0024】
また、請求項11に記載の発明は、請求項6,7,8,9又は10に記載の誤り訂正装置において、前記列誤り訂正回路は、訂正後の各列のデータを前記メモリに格納し、その各列に対する誤り訂正後のデータを前記メモリのデータバス幅に対応したデータ数毎に読み出し、各行毎に誤り訂正処理を行う第2の行誤り訂正回路を備えた。
【0026】
また、請求項12に記載の発明は、記録媒体から読み出したデータを読み出すデータ読み出し装置であって、前記読み出されたデータに対して誤り訂正を行う請求項6,7,8,9,10又は11に記載の誤り訂正装置と、前記誤り訂正装置により処理される複数の行又は列に対応したデータバス幅に設定され、ブロックデータを記憶するメモリとを備えた。
【0027】
また、請求項13に記載の発明は、高速ページモードを備えたメモリに対して、各行及び各列に対して誤り訂正記号が付加されたブロックデータを各列又は各行単位でアクセスし、各列の複数のデータを同時に演算して各列毎に誤り訂正を行い、複数の行のデータを並列に演算して各行毎に誤り訂正を行う誤り訂正装置におけるデータマッピング方法であって、前記メモリのデータバス幅を、各列毎に同時に演算されるデータ数、又は、並列に演算される複数の行のデータ数に設定し、前記データバス幅分の各列のデータ及び複数の行のデータを前記メモリの同一ページ内に格納するようにした。
【0028】
請求項14に記載の発明は、高速ページモードを備えたメモリに対して、各行及び各列に対して誤り訂正記号が付加されたブロックデータを各列又は各行単位でアクセスし、各行の複数のデータを同時に演算して各行毎に誤り訂正を行い、複数の列のデータを並列に演算して各列毎に誤り訂正を行う誤り訂正装置におけるデータマッピング方法であって、前記メモリのデータバス幅を、各行毎に同時に演算されるデータ数、又は、並列に演算される複数の列のデータ数に設定し、前記データバス幅分の各行のデータ及び複数の列のデータを前記メモリの同一ページ内に格納するようにした。
【0029】
(作用)
従って、請求項1に記載の発明によれば、二次元配列され、縦方向と横方向のそれぞれに誤り訂正符号が付加されたブロックデータの複数の列又は行に対する誤り訂正が並列に行なわれた後に、前記複数の行又は列に対する誤り訂正が並列に行われる。メモリは、高速ページモードを備えており、メモリ制御部は、データバス幅分の各列又は各行の誤り訂正後のデータ及び複数の行又は列の誤り訂正後のデータをメモリの同一ページ内に格納する。
【0031】
また、請求項2に記載の発明によれば、複数の行又は列からメモリのデータバス幅に対応した数のデータが一度に読み出され、その読み出された複数の行又は列のデータが並列に演算されて各行又は列毎に誤り訂正が行われる。
【0033】
また、請求項3に記載の発明によれば、メモリには、各列又は各行に対する誤り訂正後のブロックデータが格納され、そのメモリから複数の行又は列のデータ、又は各行又は列の複数のデータが順次読み出されて各行又は列毎に誤り訂正が行われる。
【0034】
また、請求項4に記載の発明によれば、ブロックデータは、記録媒体にインタリーブされて記憶され、メモリには、各列又は各行に対する誤り訂正後に並び替えて格納される。
【0035】
また、請求項5に記載の発明によれば、各行,各列がそれぞれ符号語として扱われ、符号語全体から各行・各列に対するシンドロームが演算され、シンドロームを基に各行,各列に対する誤りが訂正される。
【0036】
また、請求項6に記載の発明によれば、二次元配列され、縦方向と横方向のそれぞれに誤り訂正符号が付加されて外部に接続されたメモリに格納されたブロックデータに対して、複数の列又は行に対する誤り訂正を並列に行なった後に、前記複数の行又は列に対する誤り訂正を並列に行う誤り訂正回路が備えられる。メモリは、高速ページモードを備えており、メモリ制御部は、データバス幅分の各列又は各行のデータ及び複数の行又は列のデータをメモリの同一ページ内に格納する。
【0038】
また、請求項7に記載の発明によれば、誤り訂正回路は、メモリに格納されたブロックデータの複数の行又は列からメモリのデータバス幅に対応した数のデータが一度に読み出され、その読み出された複数の行又は列のデータが並列に演算されて各行又は列毎に誤り訂正が行われる。
【0040】
また、請求項8に記載の発明によれば、誤り訂正回路は、各列に対する誤り訂正処理を行う列誤り訂正回路と、各行に対する誤り訂正処理を行う行誤り訂正回路とから構成され、メモリには、行誤り訂正回路による誤り訂正後のブロックデータが格納される。メモリ制御部は、メモリに格納されたデータを、データバス幅に対応したデータ数毎に順次メモリから同時に読み出して列誤り訂正回路に出力する。
【0041】
また、請求項9に記載の発明によれば、ブロックデータは、記録媒体にインタリーブされて記憶され、行誤り訂正回路は、記録媒体から読み出されたデータに対して誤り訂正し、訂正後のブロックデータをメモリ制御部に出力し、メモリ制御部は、訂正後のデータを並び替えてメモリに記憶する。
【0042】
また、請求項10に記載の発明によれば、列誤り訂正回路及び行誤り訂正回路は、それぞれ各行,各列を符号語として扱い、符号語全体から各行・各列に対するシンドロームを演算し、シンドロームを基に各行,各列に対する誤りを訂正する。
【0043】
また、請求項11に記載の発明によれば、列誤り訂正回路は、訂正後の各列のデータをメモリに格納し、その各列に対する誤り訂正後のデータをメモリのデータバス幅に対応したデータ数毎に読み出し、各行毎に誤り訂正処理を行う第2の行誤り訂正回路を備える。
【0045】
また、請求項12に記載の発明によれば、記録媒体から読み出されたデータに対して誤り訂正が行われる。メモリは、誤り訂正処理される複数の行又は列に対応したデータバス幅に設定され、ブロックデータが記憶される。
【0046】
また、請求項13に記載の発明によれば、高速ページモードを備えたメモリに対して、各行及び各列に対して誤り訂正記号が付加されたブロックデータが各列又は各行単位でアクセスされ、各列の複数のデータが同時に演算されて各列毎に誤り訂正が行われる。そのメモリのデータバス幅が、各列毎に同時に演算されるデータ数、又は、並列に演算される複数の行のデータ数に設定され、データバス幅分の各列のデータ及び複数の行のデータがメモリの同一ページ内に格納される。
【0047】
また、請求項14に記載の発明によれば、高速ページモードを備えたメモリに対して、各行及び各列に対して誤り訂正記号が付加されたブロックデータが各列又は各行単位でアクセスされ、各行の複数のデータが同時に演算されて各行毎に誤り訂正が行われる。そのメモリのデータバス幅が、各行毎に同時に演算されるデータ数、又は、並列に演算される複数の列のデータ数に設定され、データバス幅分の各行のデータ及び複数の列のデータをメモリの同一ページ内に格納される。
【0048】
【発明の実施の形態】
(第一実施形態)
以下、本発明を具体化した第一実施形態を図1〜図10に従って説明する。
【0049】
図1に示すように、光ディスク制御装置21は、ATAPI(AT attachment packet interface)等の所定のインターフェースを介してコンピュータ22に接続されている。また、光ディスク制御装置21は、インターフェースを介して光ディスク駆動装置23に接続されている。
【0050】
光ディスク駆動装置23は、記録媒体としてのデジタルビデオディスク(DVD:Digital Video Disk)24を所定の速度で回転駆動するとともに、DVD24に記録されたデータを図示しない光ピックアップにより読み出す。そして、光ディスク駆動装置23は、読み出しデータを光ディスク制御装置21に出力する。
【0051】
光ディスク制御装置21は、光ディスクコントローラ25、マイクロプロセッサ26、記憶装置としての外部バッファメモリ27、インターフェース回路28、及び、入出力駆動回路29を備える。
【0052】
光ディスクコントローラ(以下、単にコントローラという)25は、光ディスク駆動装置23への命令送信及びステータス受領と、光ディスクからの読み出しフォーマット解読及びエラー訂正と、光ディスク駆動装置23と外部バッファメモリ27との間のデータ転送と、インターフェース回路28と外部バッファメモリ27との間のデータ転送等の各処理を行う。
【0053】
また、コントローラ25には、光ディスク駆動装置23から出力される読み出しデータが入出力駆動回路29を介して入力される。コントローラ25は、入力されるデータに誤り訂正等の処理を施して外部バッファメモリ27に格納する。そして、コントローラ25は、マイクロプロセッサ26の命令に基づいて、バッファメモリに格納したデータをインターフェース回路28を介して外部機器としてのコンピュータ22に転送する。
【0054】
ここで、DVD24に記録されたデータについて説明する。
記録媒体としてデジタルビデオディスク(DVD:Digital Video Disk)等の光ディスクにおいては、記憶容量が膨大な上、ディスクの製造時の欠陥等や、ディスクの表面に付着した汚れ等によって、読み出したデータの誤り発生率が非常に高い。そのため、図8に示すように、DVD24に記録された1つのブロックデータ31には、情報記号(データ部分)32、第1誤り訂正符号(第1ECC部分)33、及び、第2誤り訂正符号(第2ECC部分)34が格納される。
【0055】
データ部分32は、複数(本実施形態では16個)のデータセクタ35により構成される。図9に示すように、各データセクタ35は、4バイトの識別データID、2バイトのID誤り検出符号IEC、6バイトの予約領域RSV、2048バイト(2Kバイト)のデータDATA、及び、4バイトの誤り検出符号EDCとから構成される。即ち、データセクタ35は、2064バイトのデータから構成され、データ部分32は、約33Kバイト(33024バイト=2064バイト×16セクタ)のデータから構成される。
【0056】
図8に示すように、データ部分32の各データは、所定の行数及び列数(本実施形態では、192行×172列)の二次元配列に並べられる。ここで、データ部分32を構成する各データを、列方向(図8において縦方向)の座標値x(0≦x≦191)と、行方向(図8において横方向)の座標値y(0≦y≦171)とを用いてデータB(x,y) として表すものとする。すると、データ部分32は、データB(0,0) 〜データB(191,171) により構成される。
【0057】
そして、データ部分32には、各列毎のデータに基づいて演算された第1ECC部分33が付加されている。第1ECC部分33は、所定の誤り訂正符号(例えば、リード・ソロモン符号(Reed-Solomon code) )よりなり、各列のデータ数に対応して、所定のバイト数(本実施形態では16バイト)の誤り訂正符号が演算され付加されている。第1ECC部分33を構成する各符号を、データ部分32と同様に、列方向の座標値x(192≦x≦207)と、行方向の座標値y(0≦y≦171)とを用いてデータB(x,y) として表すものとする。すると、第1ECC部分33の各符号(データ)は、データB(192,0)〜B(207,171) により構成される。
【0058】
そして、第1ECC部分33の1列目のデータB(192,0) 〜B(207,0) は、データ部分32の1列目のデータB(0,0) 〜B(191,0) に基づいて演算され、付加されている。同様に、第1ECC部分33の2列目のデータB(192,1) 〜B(207,1) から172列目のデータB(192,171) 〜B(207,171) は、それぞれデータ部分32の2列目のデータB(0,1) 〜B(191,1) から172列目のデータB(0,171) 〜B(191,171) のデータに基づいて演算され、付加されている。
【0059】
更に、データ部分32及び第1ECC部分33には、各行毎のデータに基づいて演算された第2ECC部分34が付加されている。第2ECC部分34は、所定の誤り訂正符号(リード・ソロモン符号)よりなり、各行のデータ数に対応した所定のバイト数(本実施形態では10バイト)の誤り訂正符号が演算され付加されている。第2ECC部分34を構成する各符号を、データ部分32,第1ECC部分33と同様に、列方向の座標値x(0≦x≦207)と、行方向の座標値y(172≦y≦181)とを用いてデータB(x,y) として表すものとする。すると、第2ECC部分34の各符号(データ)は、データB(0,172)〜B(207,181) により構成される。
【0060】
そして、第2ECC部分34の1行目のデータB(0,172) 〜B(0,181) は、データ部分32の1行目のデータB(0,0) 〜B(0,171) に基づいて演算され、付加されている。同様に、第2ECC部分34の2行目のデータB(1,172) 〜B(1,181) から192行目のデータB(191,172) 〜B(191,181) は、それぞれデータ部分32の2行目のデータB(1,0) 〜B(1,171) から192行列目のデータB(191,0) 〜B(191,171) のデータに基づいて演算され、付加されている。
【0061】
更に、第2ECC部分34の193行目のデータB(192,172) 〜B(192,181) から208列目のデータB(207,172) 〜B(207,181) は、それぞれ第1ECC部分33の193列目のデータB(192,0) 〜B(192,171) から208列目のデータB(207,0) 〜B(207,171) のデータに基づいて演算され、付加されている。
【0062】
従って、図1に示されるコントローラ25は、先ず、1つのブロックデータ31の各行のデータに対して誤り訂正処理を行い、その後、各列のデータに対して誤り訂正処理を行う。即ち、コントローラ25は、データ部分32、第1ECC部分33、及び、第2ECC部分34を1つの二次元配列として扱う。
【0063】
そして、コントローラ25は、二次元配列された1つのブロックデータ31の各行をそれぞれ符号語として扱う。配列の1つの行、即ち、1つの符号語を1インタリーブという。
【0064】
コントローラ25は、インタリーブ毎に誤り訂正処理を行う。先ず、コントローラ25は、インタリーブ毎に符号語全体からシンドロームを求める。次に、コントローラ25は、シンドロームを基に、誤りの位置多項式と数値多項式を求める。この時の方法としては、例えば、ユークリッド互除アルゴリズムが用いられる。
【0065】
そして、コントローラ25は、誤り位置多項式及び誤り数値多項式を基に、誤り位置及び誤り数値を求め、該当する位置のデータの誤りを訂正する。即ち、符号語の何番目のデータがどのように誤っているかを求めるわけである。この時の方法としては、たとえは、チェンのアルゴリズム(チェンサーチ)が用いられる。
【0066】
次に、コントローラ25は、二次元配列された1つのブロックデータ31の各列をそれぞれ符号語(インタリーブ)として扱う。そして、コントローラ25は、前記の各行のインタリーブと同様に、各列のインタリーブ毎に誤り訂正処理を行う。即ち、コントローラ25は、各列のインタリーブ毎に符号語全体からシンドロームを求め、そのシンドロームを基に符号語の誤り位置及び誤り数値を求めて誤りを訂正する。
【0067】
従って、コントローラ25は、1つのブロックデータ31の各行と各列をそれぞれ符号語(インタリーブ)として扱い、各インタリーブ毎に誤り訂正処理を行う。ここで、符号語として扱う各行と各列を互いに区別するため、以下、符号語として扱う各列を列インタリーブといい、符号語として扱う各行を行インタリーブという。
【0068】
即ち、図8に示すように、1つのブロックデータ31は、208行の行インタリーブH0〜H207で表される。行インタリーブH0は、1行目のデータB(0,0) 〜B(0,181) により構成される。同様に、行インタリーブH1〜H207は、2行目のデータB(1,0) 〜B(1,181) から208行目のデータB(207,0) 〜B(207,181) により構成される。
【0069】
また、1つのブロックデータ31は、182列の列インタリーブV0〜V182で表される。列インタリーブV0は、1列目のデータB(0,0) 〜B(207,0) により構成される。同様に、列インタリーブV1〜V207は、2列目のデータB(0,1) 〜B(207,1) から208列目のデータB(0,181) 〜B(207,181) により構成される。
【0070】
図1に示されるコントローラ25は、1つのブロックデータ31に対して誤り訂正処理を行う場合に、先ず、各行インタリーブH0〜H207に対して誤り訂正処理を行う。その後、コントローラ25は、各列インタリーブV0〜V171に対して誤り訂正処理を行う。
【0071】
ところで、1つのブロックデータ31は、実際には、データ部分32と第1ECC部分33とがそれぞれ所定数に分割されるとともにインターリーブされ、図1に示されるDVD24に格納される。図10に示すように、1つのブロックデータ31のデータ部分32は、複数の部分(本実施形態では16個)に分割され、各部分には、それぞれ第1ECC部分33が分割されインタリーブされている。そして、分割された1つの部分とインタリーブされた第1ECC部分33の列により1つの記録セクタ(1クラスタ)が構成される。
【0072】
即ち、1つのブロックデータ31は、16個のクラスタC0〜C15から構成される。各クラスタC0〜C15は、それぞれデータ部分32のうちの分割された12行分のデータと、第1ECC部分33のうちの分割された1行分のデータとから構成される。
【0073】
即ち、クラスタC0は、行インタリーブH0〜H11と、インタリーブされた行インタリーブH192とから構成され、DVD24に格納されている。そして、クラスタC15は、行インタリーブH180〜H191と、インタリーブされた行インタリーブH207とから構成され、DVD24に格納されている。
従って、DVD24に格納されたデータは、クラスタC0から順次読み出される。即ち、クラスタC0において、図10に示すように、先ず1行目(図10において1番上の行)の行インタリーブH0から12行目の行インタリーブH11が読み出されると、次に13行目にインタリーブされた行インタリーブH192が読み出され、クラスタC0の読み出しが終了し、次のクラスタC1が読み出される。尚、クラスタC1〜C15における読み出しの順番は、クラスタC0と同じであるため、説明を省略する。
【0074】
読み出されたクラスタC0の行インタリーブH0〜H11,H192は、その読み出された順番でコントローラ25に入力される。コントロ−ラ25は、入力される行インタリーブH0〜H11,H19毎にシンドロームを生成し、その生成したシンドロームデータに基づいて各行インタリーブH0〜H11,H192に対する誤り訂正処理を行う。そして、コントローラ25は、誤り訂正した各行インタリーブH0〜H11,H192を一旦外部バッファメモリ27に格納する。外部バッファメモリ27は、複数のブロックデータ31を格納することができる。
【0075】
即ち、コントローラ25は、行インタリーブH0を入力し、その行インタリーブH0に対する誤り訂正処理を行う。その誤り訂正処理において、コントローラ25は、行インタリーブH0のシンドロームを生成し、そのシンドロームに基づいて行インタリーブH0の誤り訂正を行う。そして、コントローラ25は、訂正処理後の行インタリーブH0を外部バッファメモリ27に一旦格納する。
【0076】
次に、コントローラ25は、行インタリーブH1〜H11,H192を順次入力し、各行インタリーブH1〜H11,H192毎にシンドロームを生成し、誤り訂正処理を行い、訂正後の各行インタリーブH1〜H11,H192を外部バッファメモリ27に一旦格納する。そして、訂正後の行インタリーブH192を外部バッファメモリ27に格納すると、コントローラ25は、次にクラスタC1の各行インタリーブを順に入力する。コントローラ25は、クラスタC0と同様にクラスタC1の各行インタリーブに対する誤り訂正処理を行った後、訂正後の各行インタリーブを外部バッファメモリ27に一旦格納する。更に、コントローラ25は、クラスタC2〜C15の行インタリーブを順に入力し、各行インタリーブに対して誤り訂正処理を行った後、訂正後の各行インタリーブを外部バッファメモリ27に一旦格納する。
【0077】
この時、コントローラ25は、インタリーブされた各行の並び替えを同時に行う。例えば、クラスタC0の各行インタリーブH0〜H11,H192に対して、コントローラ25は、外部バッファメモリ27に対して、クラスタC0の行インタリーブH0〜H11を1行目から12行目となるように格納する。そして、コントローラ25は、行インタリーブH192を193行目となるように外部バッファメモリ27に格納する。
【0078】
1つのブロックデータ31を構成する全てのデータ、即ち、行インタリーブH0〜H207を外部バッファメモリ27に一旦格納すると、コントローラ25は、次に、列インタリーブV0〜V181に対する誤り訂正処理を行う。即ち、コントローラ25は、外部バッファメモリに格納された1つのブロックデータ31の列インタリーブV0〜V181を読み出す。そして、コントローラ25は、読み出した各列インタリーブV0〜V181のシンドロームを生成し、そのシンドロームに基づいて各列インタリーブV0〜V181に対する誤り訂正処理を行う。
【0079】
この時、コントローラ25は、外部バッファメモリ27のデータバス幅に対応した複数の列インタリーブに対するシンドロームの生成を並列に行う。各列インタリーブV0〜V181の各データB(0,0) 〜B(207,0) からB(0,181) 〜B(207,181) はそれぞれ1バイト(8ビット)よりなる。従って、外部バッファメモリ27のデータバス幅は、複数バイト(8ビットの整数倍)に設定されている。
【0080】
コントローラ25は、各列インタリーブV0〜V181のうちの複数の列インタリーブから1バイトずつ、合計複数バイトのデータを入力する。そして、コントローラ25は、読み出したデータを各列インタリーブ毎に演算して各列に対するシンドロームを平行して生成する。
【0081】
例えば、外部バッファメモリ27のデータバス幅が2バイト(16ビット=8ビット×2)に設定されている場合について説明する。この場合、コントローラ25は、2つの列インタリーブ、例えば、列インタリーブV0,V1から1バイトずつ、即ち、図8において横方向のデータB(0,0) とデータB(0,1) とを読み出す。次に、コントローラ25は、列インタリーブV0,V1からそれぞれデータB(1,0) ,B(1,1) を読み出す。同様に、列インタリーブV0,V1からそれぞれデータB(2,0) 〜B(207,0) ,B(2,1) 〜B(207,1) を読み出す。
【0082】
そして、コントローラ25は、読み出したデータB(0,0) ,B(0,1) ,B(1,0) ,B(1,1) ,〜,B(207,0) ,B(207,1) を各列インタリーブV0,V1毎、即ち、データB(0,0) 〜B(207,0) を演算して列インタリーブV0に対応するシンドロームと、データB(0,1) 〜B(207,1) を演算して列インタリーブV1に対応するシンドロームとを生成する。
【0083】
即ち、コントローラ25は、1つのブロックデータ31を、外部バッファメモリ27のデータバス幅に対応した数だけ列方向に読み出す。従って、コントローラ25は、列インタリーブV0〜V181に対して誤り訂正処理を行う場合、各列インタリーブV0〜V181毎にデータを読み出す場合に比べて外部バッファメモリ27から読み出す回数、即ち、外部バッファメモリ27に対するアクセス回数が少なくなる。
【0084】
例えば、外部バッファメモリ27のデータバス幅が2バイトの場合、アクセス回数は従来の1/2になり、データバス幅が4バイトの場合、アクセス回数は従来の1/4になる。その結果、コントローラ25から列インタリーブに対する誤り訂正処理におけるアクセス回数が少なくなった分、外部バッファメモリ27に対するアクセスの負荷が少なくなる。また、列インタリーブに対する誤り訂正処理におけるアクセス回数が少なくなった分、他からのアクセス、行インタリーブに対する誤り訂正後のデータ格納や、図1中のコンピュータ22等の外部機器へのデータの読み出しのためのアクセス回数を増やす、即ち、処理の高速化を図ることができる。
【0085】
次に、コントローラ25の構成を、図2に従って詳述する。
コントローラ25は、信号処理部41、復調回路部42、誤り訂正回路部43、及び、バッファメモリ制御部44を備える。
【0086】
信号処理部41には、DVD24から読み出されたデータが順次入力される。信号処理部41は、入力されるデータをデジタルデータに変換するとともに、変換したデジタルデータに同期したクロック信号CLKを生成する。そして、信号処理部41は、変換したデジタルデータを復調回路部42に出力し、生成したクロック信号CLKを復調回路部42,誤り訂正回路部43等に出力する。
【0087】
復調回路部42は、信号処理部41から入力されるクロック信号CLKに同期して動作し、所定の方式、例えば、EFMplus(Eight-to-Fourteen Modulation plus) 方式等により信号処理部41から入力されるデータを復調する。そして、復調回路部42は、復調後のデータを誤り訂正回路部43に出力する。
【0088】
誤り訂正回路部43は、PIシンドローム生成部(PIsyd部)45、PI誤り訂正部(PIecc部)46、POシンドローム生成部(POsyd部)47、PO誤り訂正部(POecc部)48により構成される。PIsyd部45及びPIecc部46は、図8に示されるブロックデータ31の各行インタリーブH0〜H207に対する誤り訂正を行うために設けられ、行誤り訂正回路49を構成している。
【0089】
POsyd部47及びPOecc部48は、図8に示されるブロックデータ31の各列インタリーブV0〜V181に対する誤り訂正を行うために設けられ、列誤り訂正回路50を構成している。
【0090】
PIsyd部45は、図8に示される各行インタリーブH0〜H207に対して、各行インタリーブ毎にシンドロームを生成するために設けられている。尚、各行インタリーブH0〜H207に対する処理は同じであるため、ここでは、行インタリーブH0に対する処理のみを説明し、行インタリーブH1〜H207に対する処理の説明を省略する。
【0091】
図3に示すように、PIsyd部45は、生成するシンドロームのデータ数に対応した複数のシンドローム演算器51を備える。各シンドローム演算器51は、それぞれ排他的論理和回路(以下、EOR回路という)52、8ビットのフリップフロップ回路(以下、単にFFという)53、及び、乗算回路(G.MUL)54により構成される。
【0092】
各シンドローム演算器51の乗算回路54には、それぞれガロア体よりなる乗数が予め設定されている。各乗算回路54に設定される乗数は、それぞれ異なる値であり、生成するシンドロームに基づいて設定されている。
【0093】
図4に示すように、各シンドローム演算器51には、信号処理部42により生成され出力されるクロック信号CLKに同期して行インタリーブH0のデータB(0,0) 〜B(0,181) が順次入力される。即ち、各シンドローム演算器51には、その時々において同じデータ(例えば、データB(0,0) )が入力される。
【0094】
そして、各シンドローム演算器51は、クロック信号CLKに同期動作し、順次入力されるデータB(0,0) 〜B(0,181) に基づいてシンドロームを生成する。即ち、PIsyd部45は、各行インタリーブH0〜H207を順次入力する。そして、PIsyd部45は、各行インタリーブH0〜H207毎にシンドロームを生成する。
【0095】
PIecc部46は、PIsyd部45にて生成されたシンドロームを基に、各行インタリーブH0〜H207の誤りを訂正するために設けられている。PIecc部46には、1つの行インタリーブ分に対応した容量の内部バッファメモリ46aが備えられる。PIecc部46には、各行インタリーブH0〜H207が順次入力され、各行インタリーブH0〜H207は、順次内部バッファメモリ46aに格納される。
【0096】
また、PIecc部46は、PIsyd部45から各行インタリーブH0〜H207にそれぞれ対応するシンドロームを順次入力する。PIecc部46は、入力したシンドロームを基に、誤りの位置多項式と数値多項式とを求める。その演算には、例えば、ユークリッド互除アルゴリズムが用いられる。
【0097】
次に、PIecc部46は、誤り位置多項式及び誤り数値多項式を基に、誤り位置及び誤り数値を求める。その演算には、例えばチェンのアルゴリズム(チェンサーチ)が用いられる。
【0098】
更に、PIecc部46は、求めた誤り位置及び誤り数値を基に、内部バッファメモリ46aに格納された各行インタリーブH0〜H207の誤りを訂正する。そして、PIecc部46は、訂正後の各行インタリーブH0〜H207を、バッファメモリ制御部44へ出力する。
【0099】
バッファメモリ制御部44は、PIecc部46と、後述するPOsyd部47,POecc部48,及び,インタフェース回路28からの指令に基づいて、外部バッファメモリ27に対するデータの書き込み・読み出しを制御するために設けられている。
【0100】
図7に示すように、バッファメモリ制御部44には、調停回路61、アドレス発生回路62、及び、データパス切替回路63が備えられる。調停回路61は、その時々において、データの読み出し又は書き込みのためのパスを設定するために設けられている。パスとは、データを読み出し・書き込む経路であって、本実施形態では、PIecc部46からデータを書き込むパス、POsyd部47及びPOecc部48からデータを読み出すパス、POecc部48からデータを書き込むパス、及び、インタフェース回路28からデータを読み出すパスとがある。調停回路61は、DVD24からデータを読み出すその時々において、1つのパスのみを許容する。そして、調停回路61は、許容したパスに対応した読み出し・書き込みのための制御信号RD/WRを外部バッファメモリ27に出力する。
【0101】
アドレス発生回路62は、調停回路61により許容されたパスの回路部46〜38,28から入力されるデータ又は指令に基づいて、書き込み・読み出す対象となるデータに対応した外部バッファメモリ27のアドレス信号を発生させる。そして、アドレス発生回路62は、発生させたアドレス信号を外部バッファメモリ27に出力する。データパス切替回路63は、調停回路61により許容されたパスに対して外部バッファメモリ27のデータバスを接続するために設けられている。
【0102】
従って、バッファメモリ制御部44は、PIecc部46から各行インタリーブH0〜H208を外部バッファメモリ27に書き込む。また、バッファメモリ制御部44は、POsyd部47及びPOecc部48からの指令に基づいて、外部バッファメモリ27に格納された図8に示されるブロックデータ31の各列インタリーブV0〜V181を読み出し、POsyd部47及びPOecc部48へそれぞれ出力する。
【0103】
例えば、PIecc部46から外部バッファメモリ27に各行インタリーブH0〜H207を書き込む場合、バッファメモリ制御部44の調停回路61はPIecc部46のパスを許容する。アドレス発生回路62は、各行インタリーブH0〜H207に対応したアドレスを発生させ、外部バッファメモリ27に出力する。そして、データパス切替回路63は、PIecc部46から入力される各行インタリーブH0〜H207を外部バッファメモリ27に出力し、各行インタリーブH0〜H20は、外部バッファメモリ27の所定のアドレスに書き込まれる。
【0104】
外部バッファメモリ27に全ての行インタリーブH0〜H207、即ち、1つのブロックデータ31が格納されると、POsyd部47及びPOecc部48は、バッファメモリ制御部44に対して読み出し指令を出力する。このPOsyd部47及びPOecc部48が指令を出すタイミングは、図1に示されるマイクロプロセッサ26により制御される。
【0105】
即ち、上記のPIecc部46は、各行インタリーブH0〜H207毎の誤り訂正処理を終了する度に、マイクロプロセッサ26に終了を示す信号を出力する。そして、マイクロプロセッサ26は、その信号に基づいて次の列インタリーブV0〜V181に対する誤り訂正処理を行うべく、POsyd部47及びPOecc部48に信号を出力する。すると、POsyd部47及びPOecc部48は、バッファメモリ制御部44に対して指令を出力し、列インタリーブV0〜V181のデータを入力するわけである。
【0106】
次に、図2のPOsyd部47及びPOecc部48について説明する。
POsyd部47は、図8に示される各列インタリーブV0〜V181に対して、各列インタリーブ毎にシンドロームを生成するために設けられている。また、POsyd部47は、外部バッファメモリ27のデータバス幅に対応した数の列インタリーブに対するシンドロームの生成を並列に行う。
【0107】
この時、POsyd部47には、2つの列インタリーブのデータが順次入力される。例えば、図8に示されるブロックデータ31を入力する場合、POsyd部47には、先ず、列インタリーブV0のデータB(0,0) 〜B(207,0) と、列インタリーブV1のデータB(0,1) 〜B(207,1) が外部バッファメモリ27のデータバス幅に対応した2バイトのデータが並列に入力される。
【0108】
即ち、図6に示すように、POsyd部47には、先ず、列インタリーブV0のデータB(0,0) と、列インタリーブV1のデータB(0,1) とが入力され、次に、データB(1,0) とデータB(1,1) とが入力される。そして、列インタリーブV0,V1の全てのデータが入力されると、POsyd部47には、次に、列インタリーブV2,V3の各データが並列に入力される。
【0109】
図5に示すように、POsyd部47は、外部バッファメモリ27のデータバス幅に対応した数(本実施形態では2つ)のシンドローム生成回路71,72を備える。両シンドローム生成回路71,72には、それぞれ生成するシンドロームのデータ数に対応した複数のシンドローム演算器73を備える。各シンドローム演算器73は、それぞれ排他的論理和回路(以下、EOR回路という)74、8ビットのフリップフロップ回路(以下、単にFFという)75、及び、乗算回路(G.MUL)76により構成される。
【0110】
各シンドローム演算器73の乗算回路76には、それぞれガロア体よりなる乗数が予め設定されている。各乗算回路76に設定される乗数は、それぞれ異なる値であり、生成するシンドロームに基づいて設定されている。
【0111】
シンドローム生成回路71の各シンドローム演算器73には、信号処理部42により生成され出力されるクロック信号CLKに同期して列インタリーブV0のデータB(0,0) 〜B(207,0) が順次入力される。即ち、各シンドローム演算器73には、その時々において同じデータ(例えば、データB(0,0) )が入力される。そして、各シンドローム演算器73は、クロック信号CLKに同期動作し、入力されるデータB(0,0) 〜B(207,0) に基づいてシンドロームを生成する。
【0112】
シンドローム生成回路72の各シンドローム演算器73には、信号処理部42により生成され出力されるクロック信号CLKに同期して列インタリーブV1のデータB(0,1) 〜B(207,1) が順次入力される。即ち、各シンドローム演算器73には、その時々において同じデータ(例えば、データB(0,0) )が入力される。そして、各シンドローム演算器73は、クロック信号CLKに同期動作し、入力されるデータB(0,1) 〜B(207,1) に基づいてシンドロームを生成する。
【0113】
尚、POsyd部47は、各列インタリーブV2〜V181に対して列インタリーブV0,V1に対する処理と同じ処理を行うため、詳細な説明を省略する。即ち、POsyd部47は、各列インタリーブV0〜V181を2つの列インタリーブ毎に順次入力する。そして、POsyd部47は、入力した2つの列インタリーブ毎のシンドロームを並列に生成する。
【0114】
図2に示されるPOecc部48は、POsyd部47にて生成された各列インターリーブ毎のシンドロームを基に、各列インタリーブV0〜V181の誤りを訂正するために設けられている。POecc部48は、誤り位置及び誤り数値のペアを1インタリーブ当たりの訂正可能な誤り個数分格納できる容量をもつ内部バッファメモリ48aを備える。
【0115】
また、POecc部48には、POsyd部47にて生成された1つの列インタリーブに対するシンドロームを入力する。POecc部48は、入力したシンドロームを基に、そのシンドロームの列インタリーブに対する誤りの位置多項式と数値多項式とを求める。その演算には、例えば、ユークリッド互除アルゴリズムが用いられる。
【0116】
次に、POecc部48は、誤り位置多項式及び誤り数値多項式を基に、誤り位置及び誤り数値を求める。その演算には、例えばチェンのアルゴリズム(チェンサーチ)が用いられる。
【0117】
更に、POecc部48は、求めた誤り位置及び誤り数値のペアを内部バッファメモリ48aに格納し、対応する行インタリーブの内、誤り位置に該当する外部バッファメモリ27上のデータを読み取って誤り数値と互いにEORを取ったデータを内部バッファメモリ48aに書き戻す。そして、POecc部48は、内部バッファメモリ48aに保持している誤り位置に対応する外部バッファメモリ27のアドレスに、EORを取ったデータをバッファメモリ制御部44を介して外部バッファメモリ27に格納し、1つの列インタリーブに対する誤り訂正処理を終了する。
【0118】
そして、全ての列インタリーブV0〜V181に対して誤り訂正処理が終了すると、インタフェース回路28は、バッファメモリ制御部44に対して読み出し指令を出力する。このインタフェース回路35が指令を出すタイミングは、前記したPOsyd部47及びPOecc部48が指令を出すタイミングと同様であって、図1に示されるマイクロプロセッサ22により制御される。
【0119】
バッファメモリ制御部44は、インタフェース回路28からの指令に基づいて、外部バッファメモリ27に格納された1つのブロックデータ31のうち、データ部分32を順次読み出し、インタフェース回路28に出力する。インタフェース回路35は、入力されるデータ部分32の各データを、所定のフォーマットにてインタフェースを介してコンピュータ22へ順次出力する。
【0120】
以上記述したように、本実施の形態によれば、以下の効果を奏する。
(1)DVD24から読み出したデータを格納する外部バッファメモリ27のデータバス幅を複数バイトに拡張する。その外部バッファメモリ27には、複数の行インタリーブH0〜H207と複数の列インタリーブV0〜V181よりなる二次元配列されたブロックデータ31が格納される。コントローラ25は、外部バッファメモリ27に格納された1つのブロックデータ31を、その外部バッファメモリ27のデータバス幅に対応した複数の列インタリーブ毎に読み出す。そして、コントローラ25は、読み出したデータバス幅分の列インタリーブを並列に演算してシンドロームを生成し、読み出した各列インタリーブに対して誤り訂正を行うようにした。
【0121】
その結果、全ての列インタリーブの数を一度に外部バッファメモリ27から読み出す列数で割った値の数だけ列方向に読み出す。従って、コントローラ25は、列インタリーブV0〜V181に対して誤り訂正処理を行う場合、各列インタリーブV0〜V181毎にデータを読み出す場合に比べて外部バッファメモリ27から読み出す回数、即ち、外部バッファメモリに対するアクセス回数が少なくなる。そのため、アクセス回数が少なくなる分、外部バッファメモリ27に対するアクセスを高速化することができるとともに、シンドロームの生成をDVD24からデータを読み出し処理時間を高速化することができる。
【0122】
(2)コントローラ25には、DVD24から読み出されたブロックデータ31の各行インタリーブH0〜H207に対して誤り訂正処理を行う行誤り訂正回路49が備えられる。行誤り訂正回路49は、DVD24から読み出された行インタリーブH0〜H207を順次入力するとともに、各行インタリーブH0〜H207毎に演算したシンドロームを基に、各行インタリーブH0〜H207に対して誤り訂正処理を行う。そして、行誤り訂正回路49は、訂正後の各行インタリーブH0〜H207を順次外部バッファメモリ27に格納するようにした。
【0123】
その結果、各行インタリーブH0〜H207に対して誤り訂正処理を行うとともに外部バッファメモリ27に格納するので、誤り訂正処理を高速化することができ、DVD24からの読み出しの高速化を行うことができる。
【0124】
(3)コントローラ25には、DVD24から読み出されたブロックデータ31の各列インタリーブV0〜V182に対して誤り訂正処理を行うPOsyd部47及びPOecc部48が備えられる。POsyd部47は、2つのシンドローム生成回路71,72を備える。各シンドローム生成回路71,72には、それぞれ異なる列インタリーブのデータが入力され、各行インタリーブに対するシンドロームがそれぞれ演算され出力される。
【0125】
その結果、外部バッファメモリ27からデータバス幅に対応して読み出した複数の列インタリーブに対応するシンドロームを並列に演算することができ、誤り訂正処理の高速化を行うことができる。
【0126】
(第二実施形態)
以下、本発明を具体化した第二実施形態を図11〜図13に従って説明する。尚、説明の便宜上、第一実施形態と同様の構成については同一の符号を付してその説明を一部省略する。
【0127】
図11に示すように、光ディスクコントローラ(以下、単にコントローラという)81には、信号処理部41、復調回路部42、誤り訂正回路82、バッファメモリ制御部83、及び、インタフェース回路28(図示略)が備えられる。誤り訂正回路82には、第1PIシンドローム生成部(第1PIsyd部)45、第1PI誤り訂正部(第1PIecc部)46、POシンドローム生成部(POsyd部)47、及び、PO誤り訂正部(POecc部)48と、第2PIシンドローム生成部(第2PIsyd部)84及び第2PI誤り訂正部(第2PIecc部)85とが備えられる。
【0128】
バッファメモリ制御部83は、各部46〜48、84,85、及び、インタフェース回路28からの指令に基づいて、外部バッファメモリ27に対するデータの書き込み・読み出しを制御するために設けられている。
【0129】
第2PIsyd部84及び第2PIecc部85は、列誤り訂正回路50(POsyd部47及びPOecc部48)により訂正され外部バッファメモリ27に格納されたデータに対して、再び各行インタリーブに対する誤り訂正を行うために設けられている。即ち、第1PIsyd部45及び第1PIecc部46は第1の行誤り訂正回路49を構成し、第2PIsyd部84及び第2PIecc部85は第2の行誤り訂正回路86を構成している。
【0130】
第2PIsyd部84は、図8に示される各行インタリーブH0〜H207に対して、各行インタリーブ毎にシンドロームを生成するために設けられている。また、第2PIsyd部84は、外部バッファメモリ27のデータバス幅に対応した数のデータを並列に演算し、シンドロームを生成する。
【0131】
例えば、外部バッファメモリ27のデータバス幅が2バイトの場合、第2PIsyd部84には、外部バッファメモリ27から各行インタリーブH0〜H207の各データが2バイトずつ入力される。即ち、図13に示すように、第2PIsyd部84には、先ず、行インタリーブH0のデータB(0,0) ,B(0,1) が入力され、次にデータB(0,2) ,B(0,3) が入力される。そして、行インタリーブH0のデータB(0,206) ,B(0,207) が入力されると、第2PIsyd部84には、次の行インタリーブH1のデータが2バイトずつ入力される。
【0132】
図12に示すように、第2PIsyd部84は、生成するシンドロームのデータ数に対応した複数のシンドローム演算器91を備える。各シンドローム演算器91は、それぞれ2つの排他的論理和回路(以下、EOR回路という)92,93、2つの乗算回路(G.MUL)94,95、及び、8ビットのフリップフロップ回路(以下、単にFFという)96を備える。
【0133】
乗算回路94,95には、それぞれガロア体よりなる同じ値の乗数が予め設定されている。その乗数は、各シンドローム演算器91毎に異なる値であって、生成するシンドロームに基づいて設定されている。FF96には、行インタリーブH0の演算の開始時において「0」が設定される。
【0134】
各シンドローム演算器91には、信号処理部42により生成され出力されるクロック信号CLKに同期して行インタリーブH0のデータB(0,0) 〜B(0,181) が2バイトずつ順次入力される。例えば、図8の行インタリーブH0に対する演算を行う場合、各シンドローム演算器91には、図13に示すように、先ず、データB(0,0) とデータB(0,1) とが入力される。そして、次のクロックでは、各シンドローム演算器91には、データB(0,2) とデータB(0,3) とが入力される。
【0135】
そして、シンドローム演算器91は、クロック信号CLKに同期動作し、順次入力される2バイトを同時に演算する。即ち、シンドローム演算器91のEOR回路92は行インタリーブH0のデータB(0,0) が入力され、EOR回路93は行インタリーブH0のデータB(0,1) が入力される。
【0136】
次に、EOR回路92は次の行インタリーブH0のデータB(0,2) と、FF96にラッチされたデータの乗算回路95による演算結果(この時は「0」)が入力される。また、EOR回路93は次の行インタリーブH0のデータB(0,3) と、乗算回路94から出力されたデータB(0,1) の演算結果とが入力される。
【0137】
従って、乗算回路94は、データB(0,0) ,B(0,2) ,・・・,B(0,180) の演算を順次行い、乗算回路95は、データB(0,1) ,B(0,3) ,・・・,B(0,181) の演算を順次行う。そして、2つのEOR回路92,93の演算は同時に行われる。また、2つの乗算回路94,95の演算は同時に行われる。
【0138】
即ち、第2PIsyd部84は、外部バッファメモリ27のデータバス幅に対応した数のデータを入力する。例えば、外部バッファメモリ27のデータバス幅が2バイトの場合、第2PIsyd部84は、各行インタリーブH0〜H207の各データを2バイトずつ読み出し、その読み出した2バイトのデータを同時に演算する。そして、第2PIsyd部84は、1つの行インタリーブの全てのデータを読み出して演算し、各行インタリーブに対するシンドロームを生成する。
【0139】
従って、第2PIsyd部84の外部バッファメモリ27に対するアクセス回数は、各行インタリーブH0〜H207の各データを1バイトずつ読み出すためのアクセス回数の半分となる。
【0140】
第2PIecc部85は、各行インタリーブH0〜H207の誤りを訂正するために設けられている。第2PIecc部85は、第2PIsyd部84から各行インタリーブH0〜H207にそれぞれ対応するシンドロームを順次入力する。第2PIecc部85は、入力したシンドロームを基に、誤りの位置多項式と数値多項式とを求める。その演算には、例えば、ユークリッド互除アルゴリズムが用いられる。
【0141】
次に、第2PIecc部85は、誤り位置多項式及び誤り数値多項式を基に、誤り位置及び誤り数値を求める。その演算には、例えばチェンのアルゴリズム(チェンサーチ)が用いられる。
【0142】
更に、第2PIecc部85は、求めた誤り位置及び誤り数値のペアを内部バッファメモリ85aに格納し、対応する行インタリーブの内、誤り位置に対応する外部バッファメモリ27上のデータを読み取って誤り数値と互いにEORを取ったデータを内部バッファメモリ85aに書き戻す。そして、第2PIecc部85は、内部バッファメモリ85aが保持している誤り位置に対応する外部バッファメモリ27のアドレスに、EORを取ったデータを、バッファメモリ制御部83を介して外部バッファメモリ27に格納し、1つの行インタリーブに対する誤り訂正処理を終了する。
【0143】
そして、全ての行インタリーブH0〜H207に対して誤り訂正処理が終了すると、インタフェース回路28は、バッファメモリ制御部83に対して読み出し指令を出力する。このインタフェース回路35が指令を出すタイミングは、第一実施形態と同様であり、図1に示されるマイクロプロセッサ22により制御される。
【0144】
バッファメモリ制御部83は、インタフェース回路28からの指令に基づいて、外部バッファメモリ27に格納された1つのブロックデータ31のうち、データ部分32を順次読み出し、インタフェース回路28に出力する。インタフェース回路35は、入力されるデータ部分32の各データを、所定のフォーマットにてインタフェースを介してコンピュータ22へ順次出力する。
【0145】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)上記第一実施形態の(1) 〜(3) と同じ効果を奏する。
(2)更に、コントローラ82には、外部バッファメモリ27に格納されたブロックデータ31に対して、各行インタリーブH0〜H207毎に再び誤り訂正処理を行う第2PIsyd部84及び第2PIecc部85を備える。第2PIsyd部84は、複数バイトを同時に演算するシンドローム生成回路91を備え、外部バッファメモリ27のデータバス幅に対応した複数のデータを並列に演算してシンドロームを生成するようした。
【0146】
その結果、外部バッファメモリ27から読み出す回数、即ち、外部バッファメモリ27に対するアクセス回数が少なくなる。そのため、アクセス回数が少なくなる分、外部バッファメモリ27に対するアクセスを高速化することができるとともに、DVD24からデータを読み出し処理時間を高速化することができる。
【0147】
(第三実施形態)
以下、本発明を具体化した第三実施形態を図14に従って説明する。
尚、説明の便宜上、第一実施形態と同様の構成については同一の符号を付してその説明を一部省略する。
【0148】
また、本実施形態において、第一実施形態と異なる点は、光ディスクコントローラに備えられたバッファメモリ制御部の動作だけであるので同一の符号を用いて、図14に従ってバッファメモリ制御部44の動作についてのみ詳述する。
【0149】
ここで、記憶装置としての外部バッファメモリ27は、複数のブロックデータ31を格納するのに十分な記憶容量のDRAM(Dynamic Random Access Memory)よりなり、ある限られたアドレス範囲(同一ページ)内では高速にアクセスできる、所謂高速ページモードを備えている。そして、バッファメモリ制御部44は、その高速ページモードを用いて外部バッファメモリ27に対してデータの読み出し及び書き込みを行う。
【0150】
また、バッファメモリ制御部44は、許容したパスに対して1度に複数バイト(例えば、16バイト=8ワード(1ワードは2バイト))のデータをアクセス(読み出し・書き込み)するものとする。即ち、PIecc部47から出力される各行インタリーブH0〜H207(図8参照)、POsyd部47及びPOecc部48に入出力される列インタリーブV0〜V181(図8参照)、インタフェース回路28に出力されるデータ部分32(図8参照)は、それぞれ16バイト毎に外部バッファメモリ27にアクセスされる。
【0151】
この構成により、バッファメモリ制御部44は外部バッファメモリ27に対して、PIecc部46からブロックデータ31の書き込み動作、POsyd部47へのブロックデータ31の読み出し動作、POecc部48からブロックデータ31の書き込み動作、及び、インタフェース回路28へのブロックデータ31の読み出し動作を並列に行うことができる。
【0152】
また、図7に示されるアドレス発生回路62は、PIecc部46と、POsyd部47及びPOecc部48とに対して1度に入出力を行う数のデータを、外部バッファメモリ27の同一ページ内に格納するように、各データに対するアドレスを発生させる。例えば、PIecc部46は、図8に示される各行インタリーブH0〜H207を順次出力する。従って、図1に示される外部バッファメモリ27には、1度に16バイトのデータ、即ち、図8に示される行インタリーブH0のデータB(0,0) 〜B(0,15)が格納される。
【0153】
一方、POsyd部47及びPOecc部48は、2つの列インタリーブ毎に外部バッファメモリ27からデータを読み出す。従って、外部バッファメモリ27からは、1度に8ワード(=16バイト)のデータ、即ち、列インタリーブV0,V1のデータB(0,0) ,B(0,1) ,B(1,0) ,B(1,1) ,B(2,0) ,B(2,1) ,B(3,0) ,B(3,1) が読み出される。
【0154】
従って、アドレス発生回路62は、行インタリーブH0のデータB(0,0) 〜B(0,15)と、列インタリーブV0,V1のデータB(0,0) ,B(0,1) 〜B(3,0) ,B(3,1) とを外部バッファメモリ27の1ページに格納するように各データに対するアドレスを発生させる。
【0155】
具体的に、外部バッファメモリ27のアドレス「0」(0h)から順に格納する場合を、図14に従って説明する。尚、外部バッファメモリ27の1ページは、256バイトに設定されているものとする。
【0156】
各行インタリーブH0〜H207は、それぞれ先頭の16バイトずつが外部バッファメモリ27のアドレス「0」(0h)から順に並べて格納される。従って、外部バッファメモリ27には、先ず、行インタリーブH0のデータB(0,0) 〜B(0,15)がアドレス「0」(0h)〜「15」(0Fh) に格納される。以下、アドレスを16進表現にて表すものとする。
【0157】
次に、外部バッファメモリ27には、行インタリーブH1のデータB(0,0) 〜B(0,15)がアドレス(10h) 〜(1Fh) に格納される。そして、行インタリーブH207のデータB(207,0) 〜B(207,15)がアドレス(CF0h)〜(CFFh)に格納される。続いて、各行インタリーブH0〜H207の次の16バイトが順に並べて格納される。即ち、行インタリーブH0のデータB(0,16)〜B(0,31)がアドレス(D00h)〜(D0Fh)に格納される。
【0158】
即ち、アドレス発生回路62は、各行インタリーブH0〜H207のデータを、外部バッファメモリ27に対してアクセスする複数バイト(本実施形態では16バイト)毎に折り返したアドレスを発生させ、そのアドレスに各行インタリーブH0〜H207がそれぞれ格納される。
そして、外部バッファメモリ27の1ページを256バイトとする。すると、外部バッファメモリ27の1ページ目、即ちアドレス(0h)〜(FFh) には、行インタリーブH0のデータB(0,0) 〜B(0,15)から行インタリーブH15のデータB(15,0)〜B(15,15) までが格納される。そして、1度に格納される16バイトのデータに対するアドレスは、256バイト以内であるため、外部バッファメモリ27のロウアドレスは変化しない。尚、行インタリーブH0〜H15の他のデータ、及び、他の行インタリーブH16〜H207に対しても同様であるため、説明を省略する。
【0159】
即ち、バッファメモリ制御部44は、ロウアドレスを変更することなくデータを外部バッファメモリ27に対してアクセスすることができる。従って、図7に示されるバッファメモリ制御部44は、PIsyd部46から出力される各行インタリーブH0〜H207を、高速ページモードを用いて外部バッファメモリ27に格納することができる。
【0160】
この外部バッファメモリ27の1ページ目に格納されたデータB(0,0) 〜B(0,15)からデータB(15,0)〜B(15,15) は、列インタリーブV0〜V15の先頭の16バイトである。そして、図2に示されるPOsyd部47及びPOecc部48に対して1度に出力される列インタリーブV0,V1のデータB(0,0) ,B(0,1) 〜B(3,0) ,B(3,1) は外部バッファメモリ27の1ページ内に格納されている。尚、列インタリーブV0,V1の他のデータ、及び、他の列インタリーブV2〜V181に対しても同様であるため、説明を省略する。
【0161】
従って、図7に示されるバッファメモリ制御部44は、POsyd部47及びPOecc部48に出力する列インタリーブV0〜V181を、高速ページモードを用いて外部バッファメモリ27から読み出すことができる。
【0162】
尚、図14に示すように、外部バッファメモリ27に各データB(0,0) 〜B(207,181) を格納した場合、図2に示されるPOsyd部47及びPOecc部48において、列インタリーブV0〜V181を順次読み出す場合に、1つの行インタリーブ毎、又は3つ以上の行インタリーブ毎にデータを読み出す場合にも有効である。この場合にも、POsyd部47及びPOecc部48は、1度に複数バイト(本実施形態では16バイト)のデータをアクセスする。
【0163】
この場合、外部バッファメモリ27の1ページ目には、各列インタリーブV0〜V15の先頭の16バイトのデータB(0,0) 〜B(15,0)からデータB(0,15)〜B(15,15) が格納されている。即ち、1つの列インタリーブV0を読み出す場合、1度にアクセスされる16バイトのデータB(0,0) 〜B(15,0)は、外部バッファメモリ27の1ページ内に格納されている。従って、図2に示されるバッファメモリ制御部44は、高速ページモードを用いて外部バッファメモリ27からデータを読み出すことができる。
【0164】
尚、列インタリーブV0の他のデータB(16,0)〜B(207,0) 、及び、他の列インタリーブV1〜V181に対しても同様であるため、説明を省略する。また、3つ以上の列インタリーブ毎にデータを読み出す場合も同様であるため、説明を省略する。
【0165】
ところで、PIecc部46から出力されるデータに対して単純にアドレスを発生させて外部バッファメモリ27に格納する場合、図2に示すように、外部バッファメモリ27には、各行インタリーブのデータが先頭アドレスから順次格納される。この時、外部バッファメモリ27には、行インタリーブの各データが連続したアドレスに格納される。従って、各行インタリーブH0〜H207を1度に複数バイトづつ格納する場合には、高速ページモードを使用することができる。
【0166】
しかしながら、列インタリーブV0〜V181の各データのアドレスは不連続であり、なお且つ、1ページ分のアドレスを越えている。例えば、列インタリーブV0の先頭のデータB(0,0) はアドレス(0h)に格納され、次のデータB(1,0) は、アドレス(0B6h)(「182」番地)に、データB(2,0) は、アドレス(16Ch)(「364」番地)に格納される。
【0167】
即ち、列インタリーブV0の各データB(0,0) 〜B(207,0) は、「182」番地毎に格納される。従って、列インタリーブV0を1度に複数バイト読み出す場合、アドレスは必ず1ページを越えるため、ロウアドレスとコラムアドレスとを各データ毎に発生させる必要があるため処理が複雑になるとともに、高速ページモードを使用することができない。
【0168】
一方、本実施形態のように、外部バッファメモリ27に図8に示されるブロックデータ31を格納した場合、1ページ内に各行インタリーブH0〜H207のデータが16バイト格納されるとともに、各列インタリーブV0〜V181のデータが16バイト格納されている。従って、バッファメモリ制御部44は、外部バッファメモリ27に対して、図2に示されるPIecc部46から行インタリーブH0〜H27の書き込み、POsyd部47及びPOecc部48への列インタリーブV0〜V181の読み出しの双方において、高速ページモードを使用することができる。その結果、各データに対してロウアドレスとコラムアドレスとをそれぞれ発生させてアクセスする通常のアクセスモードに比べて、外部バッファメモリ27に対するアクセスが高速化する。
【0169】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)外部バッファメモリ27は、複数のブロックデータ31を格納するのに十分な容量のDRAM(Dynamic Random Access Memory)よりなり、高速ページモードでの読み出し及び書き込み動作が可能なものとする。アドレス発生回路62は、PIecc部46と、POsyd部47及びPOecc部48とに対して1度に入出力を行う数のデータを、外部バッファメモリ27の1ページ内に格納するように、各データに対するアドレスを発生させる。
【0170】
その結果、バッファメモリ制御部44は、外部バッファメモリ27に対して1度に複数バイトアクセスする場合に、各行インタリーブH0〜H207と各列インタリーブV0〜V181との双方に高速ページモードを用いて外部バッファメモリ27からデータを読み出すことができる。従って、外部バッファメモリ27に対するアクセスを通常のアクセスモードに比べて高速化することができ、処理時間の高速化を図ることができる。
【0171】
(2)バッファメモリ制御部44は、許容したパスに対して1度に複数バイトのデータをアクセスするものとする。そして、バッファメモリ制御部44は、PIecc部47から出力される各行インタリーブH0〜H207、POsyd部47及びPOecc部48に入出力される列インタリーブV0〜V181、インタフェース回路28に出力されるデータ部分32を、それぞれ16バイト毎に外部バッファメモリ27にアクセスするようにした。
【0172】
その結果、ブロックデータ31の各行インタリーブH0〜H207の書き込みと、1つ前に外部バッファメモリ2に記憶されたブロックデータ31の各列インタリーブV0〜V181の読み出し及び書き込み、及び、更に1つ前に外部バッファメモリ27に記憶されたブロックデータ31のデータ部分32の読み出しを同時に行うことができる。
【0173】
尚、本発明は前記各実施形態の他、以下の態様で実施してもよい。
○上記各実施形態において、外部バッファメモリ27のデータバス幅を3バイト以上の任意のバイト数に適宜変更する。そして、図15に示すように、POsyd部101には、変更したバイト数に対応した数のシンドローム生成回路71a〜71nを備え、1度に複数バイト(図15においてnバイト)を並列に演算してシンドロームを生成する。
【0174】
また、第二実施形態においては、図12の第2PIsyd部84に備えられる各シンドローム生成回路91の構成を変更する。例えば、外部バッファメモリ27のデータバス幅を3バイトに変更した場合、図16に示すように、各シンドローム生成回路111をそれぞれ3バイトに対応した3つの排他的論理和回路(EOR回路)112a〜112c、3つの乗算回路(G.MUL)113a〜113c、及び、8ビットのフリップフロップ回路(FF)114により構成する。即ち、外部バッファメモリ27のデータバス幅をnバイトとした場合、n個のEOR回路112a〜112n、乗算回路113a〜113n、及び、FF114により各シンドローム生成回路を構成する。
【0175】
上記の構成によれば、外部バッファメモリ27のデータバス幅に対応してアクセスの回数を減らすことができるので、外部バッファメモリ27に対するアクセスを高速化することができる。
【0176】
○上記各実施形態において、外部バッファメモリ27からPOsyd部47にデータを読み出す場合に、外部バッファメモリ27から1度に複数回データバス幅分のデータを読み出すようにしても良い。
【0177】
○上記第三実施形態において、外部バッファメモリ27に格納するデータの配列を適宜変更して実施する。例えば、図17及び図18に示すように、2つの行インタリーブを1組として、各組をそれぞれ1度にアクセスするデータバス幅で折り返して外部バッファメモリ27に記憶する。
【0178】
例えば、列インタリーブV0のデータB(0,0) と列インタリーブV1のデータB(0,1) )を1組とし、1度にアクセスするデータバス幅(16バイト)で折り返し、外部バッファメモリ27に記憶する。このように配列した場合にも、外部バッファメモリ27の1ページ(256バイト)内に行インタリーブと列インタリーブとのそれぞれに対して、1度にアクセスするデータが格納されるので、高速ページモードを利用してアクセスすることができ、アクセス時間を短縮することができる。
【0179】
○上記各実施形態において、記憶装置としての外部バッファメモリ27はある限られた範囲(例えばページ)内に格納されたデータに対するアクセスが、範囲を越えるアドレスに対するアクセスよりも高速に行える物ならばどの様な物を用いて実施しても良い。例えば、高速ページモードを備えたDRAM以外に、EDOモードDRAM,SDRAM等を用いて実施してもよい。
【0180】
○上記各実施形態において、図8〜図10に示されるブロックデータ31のバイト数、二次元配列の行数及び列数、等を適宜変更して実施する。
○上記各実施形態において、DVD24から読み出したデータを先ず外部バッファメモリ27に並べ直して格納する。コントローラ25は、外部バッファメモリ27から行インタリーブH0〜H207を順次読み出して誤り訂正処理を行い、その訂正後に列インタリーブV0〜V181を順次読み出して誤り訂正処理を行うようにする。
【0181】
○上記各実施形態において、行インタリーブと列インタリーブとを入れ替える。即ち、データ部分(情報記号)32の各行に対して第1ECC部分(第1誤り訂正符号)を付加した後、各列に対して第2ECC部分(第2誤り訂正符号)を付加する。そして、コントローラ25は、先ず各列インターリーブに対して誤り訂正処理を行った後、各行インタリーブに対して誤り訂正処理を行うようにする。
【0182】
○上記各実施形態において、記録媒体としてDVDに限らず、LD(Laser Disc),CD(Compact Disc),CD−ROM(CD-Read Only Memory) ,MD(Mini Disc) ,DVD−ROM(DVD-Read Only Memory)等の他の光ディスクや、その他の記録媒体から読み出すデータを訂正する場合について活用してもよい。また、本発明の光ディスク制御装置21は、各記録媒体に対してデータの読み出し及び書き込みを行う装置に用いて実施してもよい。
【0183】
○上記各実施形態では、光ディスクコントローラ25は、訂正後のデータを外部機器としてのコンピュータ22に出力するようにしたが、他の外部機器、例えば、画像データを表示するための画像処理装置等に出力するようにしても良い。
【0184】
○上記各実施形態において、誤り訂正符号として、リード・ソロモン符号に代えて、ファイア符号、BCH符号(Bose-Chaudhuri-Hocquenghem code) 、ハミング符号(Hamming code)、サイクリック符号(cyclic code) 、ゴーレイ符号(Golay code)等を用いて実施してもよい。
【0185】
○上記各実施形態において、バッファメモリ制御部44のアドレス発生回路62を、誤り訂正回路43、インタフェース回路28側に備えて実施する。PIecc部46、POsyd部47、POecc部48、及び、インタフェース回路28は、それぞれ必要とするデータのアドレスをバッファメモリ制御部に出力するようにする。この構成によれば、バッファメモリ制御部44においてアドレスを発生させる必要がないため、バッファメモリ制御部44の負荷を減少させることができる。
【0186】
【発明の効果】
以上詳述したように、請求項1,2,3,4又は5に記載の発明によれば、データのアクセス時間を短くして読み出し時間の高速化を図ることが可能な誤り訂正方法を提供することができる。
【0187】
また、請求項6,7,8,9,10,11又は12に記載の発明によれば、データのアクセス時間を短くして読み出し時間の高速化を図ることが可能な誤り訂正装置を提供することができる。
【0188】
また、請求項13に記載の発明によれば、データのアクセス時間を短くして読み出し時間の高速化を図ることが可能なデータ読み出し装置を提供することにある。
【0189】
更に、請求項14又は15に記載の発明によれば、誤り訂正処理におけるデータのアクセス時間の短縮を図ることが可能なデータマッピング方法を提供することができる。
【図面の簡単な説明】
【図1】 光ディスク制御装置を示すブロック図。
【図2】 第一実施形態の光ディスクコントローラのブロック図。
【図3】 PIシンドローム生成部の回路図。
【図4】 PIシンドローム生成部への入力順序を示す説明図。
【図5】 POシンドローム生成部の回路図。
【図6】 POシンドローム生成部への入力順序を示す説明図。
【図7】 バッファメモリ制御部のブロック図。
【図8】 誤り訂正符号を付加したデータの構成を示す説明図。
【図9】 データセクタのフォーマットを示す説明図。
【図10】 DVDの記録セクタの構成を示す説明図。
【図11】 第二実施形態の光ディスクコントローラのブロック図。
【図12】 第2PIシンドローム生成部の回路図。
【図13】 第2PIシンドローム生成部への入力順序を示す説明図。
【図14】 第三実施形態のデータの配列を示す説明図。
【図15】 別のPOシンドローム生成部のブロック図。
【図16】 別の第2PIシンドローム生成部の回路図。
【図17】 第三実施形態の別の配列を示す説明図。
【図18】 図17の詳細な配列を示す説明図。
【図19】 誤り訂正符号を付加したデータの例を示す説明図。
【符号の説明】
24 記録媒体としてのデジタルビデオディスク
25 誤り訂正装置としての光ディスクコントローラ
43,82 誤り訂正回路
27 記憶装置としての外部バッファメモリ
44,83 メモリ制御回路としてのバッファメモリ制御部
31 ブロックデータ
32 データ部分
33 誤り訂正符号としての第1誤り訂正符号
34 誤り訂正符号としての第2誤り訂正符号
49 行誤り訂正回路
50 列誤り訂正回路
Claims (14)
- 二次元配列され、縦方向と横方向のそれぞれに誤り訂正符号が付加されたブロックデータに対して、ブロックデータの各列毎に誤り訂正を行う列誤り訂正と、ブロックデータの各行毎に誤り訂正処理を行う行誤り訂正とを行う誤り訂正方法において、
複数の列又は行に対する誤り訂正を並列に行なった後に、前記複数の行又は列に対する誤り訂正を並列に行うようにし、
前記ブロックデータは、前記複数の行又は列に対応したデータバス幅を有し、高速ページモードを備えたメモリに格納され、
前記データバス幅分の各列又は各行の誤り訂正後のデータ及び複数の行又は列の誤り訂正後のデータを、前記メモリの同一ページ内に格納するようにした誤り訂正方法。 - 複数の行又は列から前記メモリのデータバス幅に対応した数のデータを一度に読み出し、その読み出した複数の行又は列のデータを並列に演算して各行又は列毎に誤り訂正を行うようにした請求項1に記載の誤り訂正方法。
- 前記メモリには、各列又は各行に対する誤り訂正後のブロックデータが格納され、該メモリから複数の行又は列のデータ、又は各行又は列の複数のデータを順次読み出して各行又は列毎に誤り訂正を行うようにした請求項2に記載の誤り訂正方法。
- 前記ブロックデータは、記録媒体にインタリーブされて記憶され、前記メモリには、各列又は各行に対する誤り訂正後に並び替えて格納するようにした請求項1,2又は3に記載の誤り訂正方法。
- 前記各行,各列をそれぞれ符号語として扱い、符号語全体から各行・各列に対するシンドロームを演算し、前記シンドロームを基に各行,各列に対する誤りを訂正するようにした請求項1,2,3又は4に記載の誤り訂正方法。
- 二次元配列され、縦方向と横方向のそれぞれに誤り訂正符号が付加されて外部に接続されたメモリに格納されたブロックデータに対して、ブロックデータの各列毎に誤り訂正を行う列誤り訂正と、ブロックデータの各行毎に誤り訂正処理を行う行誤り訂正とを行う誤り訂正回路を備えた誤り訂正装置において、
前記誤り訂正回路は、複数の列又は行に対する誤り訂正を並列に行なった後に、前記複数の行又は列に対する誤り訂正を並列に行うようにし、
前記メモリは、高速ページモードを備え、複数の行又は列に対応したデータバス幅に設定され、
前記メモリに誤り訂正後のブロックデータを格納するメモリ制御部は、前記データバス幅分の各列又は各行のデータ及び複数の行又は列のデータを前記メモリの同一ページ内に格納するようにした誤り訂正装置。 - 前記誤り訂正回路は、前記メモリに格納された前記ブロックデータの複数の行又は列から前記メモリのデータバス幅に対応した数のデータを一度に読み出し、その読み出した複数の行又は列のデータを並列に演算して各行又は列毎に誤り訂正を行うようにした請求項6に記載の誤り訂正装置。
- 前記誤り訂正回路は、各列に対する誤り訂正処理を行う列誤り訂正回路と、各行に対する誤り訂正処理を行う行誤り訂正回路とから構成され、
前記メモリ制御部は、前記メモリに行誤り訂正回路による誤り訂正後のブロックデータを格納するとともに、前記メモリに格納されたデータを、前記データバス幅に対応したデータ数毎に順次前記メモリから同時に読み出して前記列誤り訂正回路に出力する請求項7に記載の誤り訂正装置。 - 前記ブロックデータは、記録媒体にインタリーブされて記憶され、
前記行誤り訂正回路は、記録媒体から読み出されたデータに対して誤り訂正し、訂正後のブロックデータを前記メモリ制御部に出力し、
前記メモリ制御部は、訂正後のデータを並び替えて前記メモリに記憶するようにした請求項6,7又は8に記載の誤り訂正装置。 - 前記列誤り訂正回路及び行誤り訂正回路は、それぞれ前記各行,各列を符号語として扱い、符号語全体から各行・各列に対するシンドロームを演算し、前記シンドロームを基に各行,各列に対する誤りを訂正するようにした請求項6,7,8又は9に記載の誤り訂正装置。
- 前記列誤り訂正回路は、訂正後の各列のデータを前記メモリに格納し、
その各列に対する誤り訂正後のデータを前記メモリのデータバス幅に対応したデータ数毎に読み出し、各行毎に誤り訂正処理を行う第2の行誤り訂正回路を備えた請求項6,7,8,9又は10に記載の誤り訂正装置。 - 記録媒体から読み出したデータを読み出すデータ読み出し装置であって、
前記読み出されたデータに対して誤り訂正を行う請求項6,7,8,9,10又は11に記載の誤り訂正装置と、
前記誤り訂正装置により処理される複数の行又は列に対応したデータバス幅に設定され、ブロックデータを記憶するメモリとを備えたデータ読み出し装置。 - 高速ページモードを備えたメモリに対して、各行及び各列に対して誤り訂正記号が付加されたブロックデータを各列又は各行単位でアクセスし、各列の複数のデータを同時に演算して各列毎に誤り訂正を行い、複数の行のデータを並列に演算して各行毎に誤り訂正を行う誤り訂正装置におけるデータマッピング方法であって、
前記メモリのデータバス幅を、各列毎に同時に演算されるデータ数、又は、並列に演算される複数の行のデータ数に設定し、
前記データバス幅分の各列のデータ及び複数の行のデータを前記メモリの同一ページ内に格納するようにした誤り訂正装置のデータマッピング方法。 - 高速ページモードを備えたメモリに対して、各行及び各列に対して誤り訂正記号が付加されたブロックデータを各列又は各行単位でアクセスし、各行の複数のデータを同時に演算して各行毎に誤り訂正を行い、複数の列のデータを並列に演算して各列毎に誤り訂正を行う誤り訂正装置におけるデータマッピング方法であって、
前記メモリのデータバス幅を、各行毎に同時に演算されるデータ数、又は、並列に演算される複数の列のデータ数に設定し、
前記データバス幅分の各行のデータ及び複数の列のデータを前記メモリの同一ページ内に格納するようにした誤り訂正装置のデータマッピング方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14951497A JP3863252B2 (ja) | 1996-11-15 | 1997-06-06 | 誤り訂正方法、誤り訂正装置、データ読み出し装置、及び、データマッピング方法 |
US08/929,063 US6158038A (en) | 1996-11-15 | 1997-09-15 | Method and apparatus for correcting data errors |
KR1019970059951A KR100415136B1 (ko) | 1996-11-15 | 1997-11-14 | 에러정정방법,에러정정장치,데이터판독장치,및데이터맵핑방법 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8-304978 | 1996-11-15 | ||
JP30497896 | 1996-11-15 | ||
JP14951497A JP3863252B2 (ja) | 1996-11-15 | 1997-06-06 | 誤り訂正方法、誤り訂正装置、データ読み出し装置、及び、データマッピング方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10200418A JPH10200418A (ja) | 1998-07-31 |
JP3863252B2 true JP3863252B2 (ja) | 2006-12-27 |
Family
ID=26479376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14951497A Expired - Lifetime JP3863252B2 (ja) | 1996-11-15 | 1997-06-06 | 誤り訂正方法、誤り訂正装置、データ読み出し装置、及び、データマッピング方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6158038A (ja) |
JP (1) | JP3863252B2 (ja) |
KR (1) | KR100415136B1 (ja) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3530388B2 (ja) * | 1998-07-22 | 2004-05-24 | 三洋電機株式会社 | 符号誤り訂正装置 |
JP3531494B2 (ja) * | 1998-10-05 | 2004-05-31 | 株式会社日立製作所 | 投写型画像ディスプレイ装置及びそれに用いるスクリーン |
US6581178B1 (en) * | 1999-02-15 | 2003-06-17 | Nec Corporation | Error correction coding/decoding method and apparatus |
JP2000244332A (ja) * | 1999-02-19 | 2000-09-08 | Matsushita Electric Ind Co Ltd | データ誤り訂正装置 |
CN1286275C (zh) | 1999-11-24 | 2006-11-22 | 三洋电机株式会社 | 纠错装置 |
TW455870B (en) * | 1999-12-09 | 2001-09-21 | Acer Labs Inc | Memory mapping method |
KR100654017B1 (ko) * | 1999-12-09 | 2006-12-04 | 엘지전자 주식회사 | 디지털 데이터의 에러정정 방법 |
KR100589814B1 (ko) * | 1999-12-09 | 2006-06-14 | 엘지전자 주식회사 | 디지털 데이터의 에러정정 방법 |
US6772385B2 (en) * | 2000-01-31 | 2004-08-03 | Sanyo Electric Co., Ltd. | Error-correcting device and decoder enabling fast error correction with reduced circuit scale |
KR100598300B1 (ko) * | 2000-02-14 | 2006-07-07 | 엘지전자 주식회사 | 차세대 고밀도 기록 매체를 위한 디지털 데이터의 오류정정 부호화 방법 |
JP2001291344A (ja) * | 2000-04-04 | 2001-10-19 | Hitachi Ltd | 光ディスク装置およびそのデータ再生方法 |
US6651208B1 (en) * | 2000-04-04 | 2003-11-18 | Mosel Vitelic Corporation | Method and system for multiple column syndrome generation |
JP2002074862A (ja) * | 2000-08-25 | 2002-03-15 | Toshiba Corp | データ処理方法及び装置及び記録媒体及び再生方法及び装置 |
JP2002074854A (ja) * | 2000-08-31 | 2002-03-15 | Nec Corp | ディジタルデータ記録伝送方法およびその装置 |
GB0031436D0 (en) * | 2000-12-22 | 2001-02-07 | Koninkl Philips Electronics Nv | Method and apparatus for data reproduction |
SG143064A1 (en) | 2001-02-16 | 2008-06-27 | Sony Corp | Data processing method and its apparatus |
JP3954803B2 (ja) * | 2001-03-22 | 2007-08-08 | 三洋電機株式会社 | エラー訂正装置 |
US8656246B2 (en) * | 2001-04-16 | 2014-02-18 | Qualcomm Incorporated | Method and an apparatus for use of codes in multicast transmission |
KR100425294B1 (ko) * | 2001-04-20 | 2004-03-30 | 삼성전자주식회사 | 광 정보저장매체, 및 그 데이터 기록장치 |
KR100739669B1 (ko) * | 2001-04-20 | 2007-07-13 | 삼성전자주식회사 | 광 정보저장 매체, 데이터 기록장치 및 데이터 기록방법 |
US7159165B2 (en) * | 2001-04-20 | 2007-01-02 | Samsung Electronics Co., Ltd. | Optical recording medium, data recording or reproducing apparatus and data recording or reproducing method used by the data recording or reproducing apparatus |
US6981198B2 (en) * | 2001-04-26 | 2005-12-27 | Storage Technology Corporation | Dynamic error correction code shortening |
US6910174B2 (en) * | 2001-06-01 | 2005-06-21 | Dphi Acquisitions, Inc. | Error correction code block format |
US7177658B2 (en) * | 2002-05-06 | 2007-02-13 | Qualcomm, Incorporated | Multi-media broadcast and multicast service (MBMS) in a wireless communications system |
US7415658B2 (en) * | 2003-09-10 | 2008-08-19 | Intel Corporation | Forward error correction mapping and de-mapping techniques |
US7389468B2 (en) * | 2004-09-20 | 2008-06-17 | International Business Machines Corporation | Writing and reading of data in probe-based data storage devices |
US20050180332A1 (en) * | 2004-02-13 | 2005-08-18 | Broadcom Corporation | Low latency interleaving and deinterleaving |
JP2006004560A (ja) * | 2004-06-18 | 2006-01-05 | Elpida Memory Inc | 半導体記憶装置及びその誤り訂正方法 |
KR100682243B1 (ko) | 2004-12-02 | 2007-02-15 | 주식회사 대우일렉트로닉스 | 3차원 리드-솔로몬 코드의 오류정정 방법 |
US7395488B2 (en) * | 2004-12-29 | 2008-07-01 | Zoran Corporation | System and method for efficient use of memory device bandwidth |
TWI282087B (en) * | 2005-11-24 | 2007-06-01 | Realtek Semiconductor Corp | Decoding device in optical disc drive and related decoding method thereof |
JP2008204544A (ja) * | 2007-02-20 | 2008-09-04 | Fujitsu Ltd | 誤り訂正装置及びデータ読み出し装置 |
US8196004B1 (en) | 2007-03-27 | 2012-06-05 | Marvell International Ltd. | Fast erasure decoding for product code columns |
US20100169742A1 (en) * | 2008-12-29 | 2010-07-01 | Texas Instruments Incorporated | Flash memory soft error recovery |
US9252815B2 (en) * | 2013-12-16 | 2016-02-02 | International Business Machines Corporation | Extension of product codes with applications to tape and parallel channels |
KR102333140B1 (ko) | 2017-08-18 | 2021-12-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20190030923A (ko) | 2017-09-15 | 2019-03-25 | 에스케이하이닉스 주식회사 | 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 |
US11538546B2 (en) * | 2019-12-16 | 2022-12-27 | Micron Technology, Inc. | Data compression for global column repair |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US34100A (en) * | 1862-01-07 | Improved step-ladder | ||
US4769818A (en) * | 1984-05-30 | 1988-09-06 | Canadian Patents And Development Limited-Societe Canadienne Des Brevets Et D'exploitation Limitee | Method and apparatus for coding digital data to permit correction of one or two incorrect data packets (bytes) |
JP2605271B2 (ja) * | 1987-02-10 | 1997-04-30 | ソニー株式会社 | エラー訂正及びチエツク装置 |
US5068855A (en) * | 1988-07-18 | 1991-11-26 | Canon Kabushiki Kaisha | Error correcting method and apparatus |
JP2554743B2 (ja) * | 1989-05-19 | 1996-11-13 | シャープ株式会社 | 再生のための誤り訂正装置 |
EP0523969B1 (en) * | 1991-07-18 | 1997-12-29 | Canon Kabushiki Kaisha | Error correction encoding and decoding system |
EP0553338B1 (en) * | 1991-08-16 | 1999-10-13 | Cypress Semiconductor Corp. | High-performance dynamic memory system |
JP3154607B2 (ja) * | 1993-12-28 | 2001-04-09 | 三菱電機株式会社 | 誤り訂正復号装置及び誤り訂正復号方法 |
JPH07262031A (ja) * | 1994-03-17 | 1995-10-13 | Toshiba Corp | 誤り訂正符号化装置および誤り訂正符号化方法 |
JPH08204583A (ja) * | 1995-01-20 | 1996-08-09 | Sanyo Electric Co Ltd | ディジタル信号の処理方法および処理装置 |
-
1997
- 1997-06-06 JP JP14951497A patent/JP3863252B2/ja not_active Expired - Lifetime
- 1997-09-15 US US08/929,063 patent/US6158038A/en not_active Expired - Lifetime
- 1997-11-14 KR KR1019970059951A patent/KR100415136B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19980042418A (ko) | 1998-08-17 |
KR100415136B1 (ko) | 2004-04-29 |
JPH10200418A (ja) | 1998-07-31 |
US6158038A (en) | 2000-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3863252B2 (ja) | 誤り訂正方法、誤り訂正装置、データ読み出し装置、及び、データマッピング方法 | |
US4881232A (en) | Method and apparatus for error correction | |
US7530009B2 (en) | Data storage method and data storage device | |
US6594794B1 (en) | Reed-Solomon decoding of data read from DVD or CD supports | |
JPH11249920A (ja) | 符号語データを記憶するデータバッファを用いるeccシステムおよび誤りシンドロームを記憶するシンドロームバッファ | |
US6279135B1 (en) | On-the-fly row-syndrome generation for DVD controller ECC | |
JP2000165259A (ja) | データ復号処理装置および方法 | |
US20070136641A1 (en) | Unified memory architecture for recording applications | |
KR100305973B1 (ko) | 데이터의에러정정방법및에러정정장치 | |
KR100738170B1 (ko) | 오류 정정 장치 | |
WO2005006563A1 (en) | Error correction method for reed-solomon product code | |
KR100509137B1 (ko) | 에러 정정 장치 | |
JP2004362758A (ja) | 記憶媒体から検索されたデータの誤りを訂正するシステムおよび方法、ならびにコンピュータにこれらの誤りを訂正させるためのコンピュータ実行可能な命令を含むコンピュータ読取可能な記憶媒体 | |
JP3272308B2 (ja) | 誤り訂正システム、誤り訂正方法および誤り訂正機能を有するデータ記憶システム | |
JP2001292066A (ja) | 誤り訂正装置および誤り訂正方法 | |
KR100361947B1 (ko) | 디스크 재생 장치에 적용되는 에러 검출 회로 | |
US20080201619A1 (en) | Error correcting device, error correcting method and disk system | |
JP2605270B2 (ja) | エラー訂正及びチエツク装置 | |
KR20080036838A (ko) | 광정보저장매체 재생/기록 장치의 에러 정정 방법 | |
JP3609714B2 (ja) | 誤り訂正装置 | |
JP3279501B2 (ja) | 大容量記憶装置用コントローラの誤り訂正及び誤り検出方法 | |
JP3259688B2 (ja) | データ処理回路 | |
JP2001237715A (ja) | 復号装置 | |
KR20030073532A (ko) | 이중 피오 신드롬 연산장치 및 방법 | |
JP2001319431A (ja) | Eccエンコード装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040604 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040604 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050830 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060623 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060704 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060707 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060904 |
|
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: 20060926 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060928 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091006 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091006 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101006 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101006 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111006 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111006 Year of fee payment: 5 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111006 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111006 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121006 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121006 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131006 Year of fee payment: 7 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |