(57)【特許請求の範囲】
【請求項１】
ディスク媒体から読み出されるディジタルデータのエラー訂正処理を行うエラー訂正装置において、
前記ディジタルデータに対応し、所定のエラー訂正符号に従う符号語を構成する複数のシンボルをバッファメモリに書き込むと共に、書き込まれたシンボルを読み出すメモリアクセス回路と、
前記バッファメモリから読み出されるシンボルに対してエラー訂正処理のためのシンドローム計算を行う複数の演算回路と、を備え、
前記エラー訂正装置は、前記バッファメモリから読み出されるシンボルの数をカウントするシンボルカウンタを含み、
前記メモリアクセス回路は、複数の符号語を１シンボル毎に順次読み出し、前記シンボルカウンタの下位ビットの値に対応して前記複数の演算回路に振り分けて供給することを特徴とするエラー訂正装置。
【請求項２】
前記メモリアクセス回路は、前記バッファメモリ内での行アドレスを保持し、列アドレスを変更して前記符号語に対応したシンボルを読み出すことを特徴とする請求項１記載のエラー訂正装置。
【請求項３】
前記メモリアクセス回路は、
前記シンボルカウンタのカウント値を保持するレジスタと、
前記カウント値に対応して前記バッファメモリから読み出される前記シンボルを前記複数の演算回路に振り分けるデコーダと、
前記カウント値を前記シンボルの読み出しタイミングに従って順次更新するカウント制御部と、を備え、
前記カウント制御部は、前記カウント値が所定の範囲を超えたとき、前記カウント値の下位ビットに応答して更新条件を更新することを特徴とする請求項１又は２記載のエラー訂正装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はエラー訂正装置に係り、詳しくはランダムアクセスメモリからなるバッファメモリに備蓄されたデータに対してシンドローム計算を行うことでエラー訂正を行うエラー訂正装置に関する。
【０００２】
【従来の技術】
図８に、ＣＤ−ＲＯＭ（Compact Disc ROM）のデータフォーマットの一例を示す。同図８（ａ）に示されるように、２３５２バイトからなる１セクタのデータには、１２バイトの同期データをはじめ、４バイトのヘッダ、２０４８バイトのユーザデータ、４バイトのＥＤＣ（Error Detection Code：誤り検出符号）データ、８バイトのＺＥＲＯデータ、２７６バイトのＥＣＣ(Error Correction Code：誤り訂正符号)データが含まれている。
【０００３】
これら各データのうち、１２バイトの同期データを除いたデータには、上記ＥＣＣによるエラー訂正が適用される。以下、このエラー訂正について詳述する。
【０００４】
エラー訂正に際しては、この同期データを除いた２３４０バイトのデータが、図８（ｂ）に示されるように、その先頭から各１バイト毎にＬＳバイトとＭＳバイトとに分割される。これにより、それぞれ１１７０バイトからなるＬＳバイト（図８（ｃ））及びＭＳバイト（図８（ｄ））のデータが生成される。また、これらＬＳバイト及びＭＳバイトからなる各１１７０バイトのデータには、それぞれ図９に示される態様で、Ｐシーケンス（Ｐ系列）とＱシーケンス（Ｑ系列）との２つの方向に符号化が施されている。
【０００５】
すなわち、上記各１１７０バイトのデータのうちのそれぞれ先頭から１０３２バイトのデータにおいて、そのＰシーケンス方向の各２４バイトのデータに各々２バイトからなるＰパリティが付与されることで、同Ｐシーケンスの方向に符号化された４３個の符号語（Ｐ符号）が構成されている。図９からも明らかなように、このＰ符号は、その第ｉ番目の符号語の第ｊシンボルの位置が「ｉ＋４３ｊ（ｉ＝０，１，…４２：ｊ＝０，１，…２５）」にて表される。
【０００６】
一方、上記先頭から各１０３２バイトのデータと上記Ｐパリティを構成する各８６バイト（２バイト×４３個）のデータとにおいて、そのＱシーケンス方向の各４３バイトのデータにこれも各々２バイトからなるＱパリティが付与されることで、同Ｑシーケンスの方向に符号化された２６個の符号語（Ｑ符号）が構成されている。このＱ符号は、その第ｉ番目の符号語の第ｊシンボルの位置が「４３ｉ＋４４ｊ  ｍｏｄ（残余）１１１８（ｉ＝０，１，…２５：ｊ＝０，１，…４２）」にて表される。
【０００７】
こうしたＰ符号及びＱ符号を構成するシンボルを読み出し、これからシンドロームと呼ばれるデータを算出することで、上記各データにエラーが存在しているか否かを判断することができる。これら各符号語によるエラー検出は、具体的には次のように行われる。
【０００８】
まず、ＣＤ−ＲＯＭから読み出されたデータは、ＣＤ（Compact Disc）信号処理部において、ＣＤオーディオと同様、エラー訂正などのデコード処理が施された後、先の図８（ａ）に示したＣＤ−ＲＯＭデータとして、一旦バッファメモリであるＤＲＡＭ（Dynamic Random Access Memory）に記憶される。図１０に、このＤＲＡＭに対するＣＤ−ＲＯＭデータの記憶態様を示す。
【０００９】
すなわち、先の図８（ａ）に示すＣＤ−ＲＯＭのセクタデータにおいて、１２バイトからなる同期データのうちの６バイト分のデータとＬＳバイト又はＭＳバイトからなる１１７０バイトのデータとからなる１１７６バイトのデータが、ＤＲＡＭのアドレスに沿って書き込まれる。図１０においては、ＤＲＡＭの列アドレスが２５６バイトである場合について例示しているために、２５６バイト周期で行アドレスが「１」ずつインクリメントされる。なお、実際には、このＤＲＡＭには、各アドレスに沿って、ＭＳバイト及びＬＳバイトの各１バイトずつ、合計２バイトずつのデータが書き込まれる構成となっている。そして、これらの各アドレスのうち、同一の行アドレスを有するメモリセルは、同一のワード線に接続されている。
【００１０】
この書き込み順序は、基本的には、ＣＤ−ＲＯＭデータの転送時のデータストリームの順序、換言すれば、先の図８（ａ）に示すＣＤ−ＲＯＭデータのデータストリームの順序である。ただし、実際には、ＬＳバイト及びＭＳバイトからなる各１１７０バイトのデータに分類されているために、メモリセルには、そのアドレスの若いものから順に、６バイトの同期データ、先の図８（ｃ）及び図８（ｄ）に示したデータが書き込まれる。これにより例えば、図１０に示したセクタ１の第０行において、第１列から第５列までには同期データが書き込まれる。また、同第０行において、第６列には先の図８（ｃ）及び図８（ｄ）において第０番目のデータとして示したデータが、第７列には先の図８（ｃ）及び図８（ｄ）において第１番目のデータとして示したデータが、それぞれ書き込まれる。
【００１１】
一方、上記態様にてＤＲＡＭに書き込まれた各セクタ毎のＣＤ−ＲＯＭデータは、各符号語毎に読み出される。ここで、Ｐ符号の読み出し順序を例にとると、図１１に示すように、２６バイトからなる各符号語毎に読み出しが行われる。そして、この読み出された符号語を構成するシンボルから、上記シンドロームと呼ばれるデータが計算される。このシンドロームは、上記各データ（符号語）にエラーが存在しない場合には所定値をとる等、予め設定されるデータである。このため、このシンドロームを計算することで、その値に基づき、当該符号語に誤りがあるか否かを判断することができるようになる。
【００１２】
そして、符号語内に誤りがあると判断されると、その誤りの大きさと誤りの位置とが同じく上記シンドロームに基づいて求められる。そして、エラーのある位置からデータをもう一度リードし直して誤りの大きさとの排他的論理和をとることで正しいデータを生成し、これをＤＲＡＭに書き戻す。
【００１３】
こうしたエラー訂正の後、先の図８（ａ）に示したＥＤＣデータを用いて、上記エラー訂正の過程で過度のエラーによる誤訂正が起こっていないかどうかが検証される。そして、こうしたエラー訂正処理やその後の誤訂正の有無のチェックの終了したデータが、ＤＲＡＭからホストコンピュータへと転送される。
【００１４】
【発明が解決しようとする課題】
このように、上記各符号語を用いることで、エラー訂正を行うことができるようにはなる。ただし、これら各符号語を構成するシンボルは、ＤＲＡＭのアドレス上の不連続なアドレスを有するメモリセルに記憶されているために、上記態様でそれら符号語の読み出しを行う場合には、各メモリセルへのアクセス時間も自ずと長期化するようになる。すなわち、通常、ＤＲＡＭからの１シンボルの読み出しには、プリチャージ、行アドレス指定、列アドレス指定といった３つの動作を必要とする。このため、それら１シンボルの読み出しを行うたびに、クロックとしても３クロックが必要となり、このことが上述したエラー訂正処理にとっての速度的な大きなボトルネックとなっている。
【００１５】
なお、上記ＣＤ−ＲＯＭデータをエラー訂正する回路に限らず、ランダムアクセスメモリからなるバッファメモリに一旦データを記憶した後、順次そのシンボルを読み出しつつエラー検出やエラー訂正を行うエラー訂正装置においては、こうした実情も概ね共通したものとなっている。
【００１６】
本発明は上記実情に鑑みてなされたものであり、その目的は、ランダムアクセスメモリに記憶されたデータから符号語を構成するシンボルを読み出してエラー検出やエラー訂正を行う場合であれ、それらエラー検出やエラー訂正にかかる処理をより高速に行うことのできるエラー訂正装置を提供することにある。
【００１７】
【課題を解決するための手段】
この発明では、ディスク媒体から読み出されるディジタルデータのエラー訂正処理を行うエラー訂正装置において、前記ディジタルデータに対応し、所定のエラー訂正符号に従う符号語を構成する複数のシンボルをバッファメモリに書き込むと共に、書き込まれたシンボルを読み出すメモリアクセス回路と、前記バッファメモリから読み出されるシンボルに対してエラー訂正処理のためのシンドローム計算を行う複数の演算回路と、を備え、前記メモリアクセス回路は、複数の符号語を１シンボル毎に順次読み出し、前記複数の演算回路に振り分けて供給することで、エラー検出やエラー訂正を高速化することを可能とする。
【００１８】
【発明の実施の形態】
以下、本発明にかかるエラー訂正装置を、ＣＤ−ＲＯＭデータにおけるＰ符号を用いてエラーを訂正するエラー訂正装置に具体化した一実施形態について、図面を参照しつつ説明する。
【００１９】
本実施形態においては、ＤＲＡＭに記憶されたデータからＰ符号を読み出す際に、図１に示すように、４つの符号語を並列的に読み出す。すなわち、上述したＭＳバイト及びＬＳバイトの各データにおいて、「ｉ＋４３ｊ」、「（ｉ＋１）＋４３ｊ」、「（ｉ＋２）＋４３ｊ」、「（ｉ＋３）＋４３ｊ」（ｉ＝０，１，…３９：ｊ＝０，１，…２５）」番面のデータを連続的に読み出す。そして、上記４つのデータについて、「ｊ＝０〜２５」の２６バイト分の全てのシンボル値を読み出すことで、これら４つの符号語を完全に読み終わると、次の４つの符号語の読み出しが行われる。
【００２０】
こうした互いに隣接した４つの符号語の対応する各シンボルは、ＤＲＡＭ内で隣接したアドレス上に記憶されているために、この読み出しに際して、ＤＲＡＭの行アドレスを一旦指定した後、各符号語に対応して列アドレスを変更して指定するページモード方式を適用することができる。こうすることで、４つのシンボルの読み出しに際して必要とされるクロックは、プリチャージ、行アドレス指定、列アドレス指定にそれぞれ１クロック、１クロック、４クロックの合計６クロックとなる。このように、４つの符号語を並列して読み出すために、１シンボル当たりの読み出しに必要なクロック数を削減することができ、ひいては、高速アクセスが可能となる。
【００２１】
なお、図１に示すように、４つの符号語を並列して読み出すようにすると、各ＬＳバイト又はＭＳバイトのデータにおいて、１０４０バイト分のデータの読み出し後には、３つの符号語を残すのみとなる。したがって、１０４１バイト目から１１１８バイト目のデータに関しては、３つの符号語を上記同様ページモード方式によって並列的に読み出すようにする。
【００２２】
また、４つの符号語の各シンボルの読み出しに際して、行アドレスが変わるときには例外的に行アドレスを指定し直す。このため本実施形態では、読み出し時にその読み出しにかかるアドレスを検出して、先の図１０に示したＤＲＡＭの列アドレスが「２５５」であるか否かを判断する。そして、列アドレスが「２５５」であると判断されると行アドレスを新たに指定する。
【００２３】
図２に、上記態様にて符号語を読み出しつつエラー訂正処理を行う本実施形態のエラー訂正装置の全体構成を示す。
【００２４】
すなわち、このエラー訂正装置は、先の図１０に示した態様にてＣＤ−ＲＯＭデータを記憶するＤＲＡＭ１０や、ＤＲＡＭ１０内で行われる処理を選択し指定するバスアービタ１１を備えている。ここで、ＤＲＡＭ１０は、先の図１０等を用いて説明したＤＲＡＭと同一の構成を有する。
【００２５】
また、バスアービタ１１には、上記同様、図示しないＣＤ信号処理部から転送される先の図８（ａ）に示したＣＤ−ＲＯＭデータが、ＤＲＡＭ１０内のアドレスとともに入力される。これにより、バスアービタ１１では、上記データをＤＲＡＭ１０内の指定されたアドレスにしたがって書き込むために、ＲＡＳ（Row Address Strobe）信号やＣＡＳ（Column Address Strobe）信号等が生成される。これらＲＡＳ信号やＣＡＳ信号、更には上記ＣＤ−ＲＯＭデータ等がＤＲＡＭ１０に入力されることで、同データのＤＲＡＭ１０への書き込みが行われる。
【００２６】
なお、こうしてＤＲＡＭ１０に書き込まれたデータの読み出しに際しても、読み出し対象となるデータにアクセスすべく、上記ＲＡＳ信号やＣＡＳ信号が用いられる。
【００２７】
そして、この書き込まれたデータを先の図１に示した態様にて読み出すために、上記エラー訂正装置は、エラー訂正タイミング生成回路２０を備えている。このエラー訂正タイミング生成回路２０によってＤＲＡＭ１０から読み出されるデータが指定されると、セクタ先頭アドレス生成部２１では、ＤＲＡＭ１０から読み出されるデータの属するセクタの先頭を指定する。この先頭の指定は、ＤＲＡＭ１０に書き込まれたデータのバイト数の積算値として定義される。すなわち、先の図１０に示したセクタ１に属するデータを読み出す場合にはセクタ１の先頭として「００００」、また、セクタ２に属するデータを読み出す場合にはその先頭として「２３５２」、更に、セクタ３に属するデータを読み出す場合にはその先頭として「４７０４」、というようにその各セクタの先頭に対応するバイト数を指定する。
【００２８】
また、エラー訂正タイミング生成回路２０によってＤＲＡＭ１０から読み出されるデータが指定されると、ＥＣＣオフセットアドレス生成部２２では、読み出し対象となるデータがＤＲＡＭ１０におけるセクタ内の順番によって指定される。すなわち、先の図１に示した態様にて読み出しが行われるために、基本的には、「００００，０００１，０００２，０００３，００４３，００４４，００４５，００４６，００８６…」というように、読み出し対象となるデータが指定される。ただし、上述したように、本実施形態では、ＤＲＡＭ１０に書き込まれたデータのうち、各セクタ（ＬＳバイトのデータ及びＭＳバイトのデータ）の先頭から６バイトのデータは同期データであるため、シンドローム計算のための読み出し対象とはならない。このため、実際には、ＥＣＣオフセットアドレス生成部２２では、「０００６，０００７，０００８，０００９，００４９，００５０，００５１，００５２，００９２…」というように、読み出し対象となるデータが、当該セクタでのＤＲＡＭ１０内での順番によって指定される。
【００２９】
そして、これらセクタ先頭アドレス生成部２１及びＥＣＣオフセットアドレス生成部２２によって指定された値に基づいて、加算器２３では、読み出し対象となるデータのＤＲＡＭ１０内での順番が算出される。この際、上述したように、ＤＲＡＭ１０のメモリセルが各２バイト単位のデータを記憶するセルであることが考慮される。すなわち、先の図１０に示したセクタ１のデータに対しては、「０００６，０００７，０００８，０００９，００４９，００５０，００５１，００５２，００９２…」というように、また、セクタ２上のデータに対しては、上記順番に１１７５バイトを加えた「１１８１，１１８２，１１８３，１１８４，１２２４，１２２５，２２２６，２２２７，２２６７…」というように、それぞれＤＲＡＭ１０内での順番が指定される。
【００３０】
こうして加算器２３において読み出し対象となるデータのＤＲＡＭ１０内での順番が指定されると、同指定値がバスアービタ１１に供給される。バスアービタ１１では、供給された指定値に基づいてＤＲＡＭ１０からのデータの読み出しを行う。
【００３１】
また、加算器２３の生成する指定値は、ページ境界検出部２４にも入力される。このページ境界検出部２４は、読み出し対象となるデータのＤＲＡＭ１０の列アドレスが「２５５」（ページ境界）であるときにページ境界信号を出力する。これは、加算器２３の指定値の２進数表記における下位８ビットが全て「１」となることで検出される。このようにページの境界を検出することで、エラー訂正タイミング生成回路２０では、４つ（又は３つ）の符号語に対応した４つ（又は３つ）のシンボルを読み出す際に、ＤＲＡＭ１０の行アドレスが変化するかどうかを判断する。
【００３２】
そして、エラー訂正タイミング生成回路２０は、行アドレスが変化しないと判断すると、行アドレスを１度指定した後、読み出し対象となる各符号語に対応して列アドレスを４度（又は３度）指定することで、これら符号語の読み出しを行うべく指令を、バスアービタ１１に出力する。一方、行アドレスが変化すると判断すると、ページ境界のデータの読み出し後、再度行アドレスを指定するよう指令をバスアービタ１１に出力する。
【００３３】
こうしてＤＲＡＭ１０から読み出されたデータに対して、ＣＤ−ＲＯＭデコード部３０によってエラー訂正処理が施される。このＣＤ−ＲＯＭデコード部３０は、シンドローム生成部３１やエラー訂正部３２，ＥＣＣアドレス生成部３３，エラー検出部３４を備えている。
【００３４】
ここで、シンドローム生成部３１には、ＤＲＡＭ１０から読み出されたデータがバスアービタ１１を介して入力される。本実施形態では、１エラー訂正を行う場合について例示する。この場合、各符号語毎にＳ０及びＳ１の２つのシンドロームを算出する。ここで、シンドロームＳ０は、初期値を「０」、符号語内のｉ番目のシンボル値をｖ（ｉ）、ガロア体の加算を「＾」として、演算Ｓ０＝Ｓ０＾ｖ（ｉ）を符号語内の全てのシンボル値に渡って行うことで算出される。一方、シンドロームＳ１は、初期値を「０」、ａをプリミティブエレメント、＊をガロア体の乗算として、演算Ｓ０＝（ａ＊Ｓ０）＾ｖ（ｉ）を符号語内の全てのシンボル値に渡って行うことで算出される。
【００３５】
そして、各４つの符号語について、こうしたシンドロームＳ０，Ｓ１を並列して生成すべく、シンドローム生成部３１は、図３に示すような構成を有している。図３においては、演算回路Ｓ００，Ｓ０１，Ｓ０２，Ｓ０３においてシンドロームＳ０が、また、演算回路Ｓ１０，Ｓ１１，Ｓ１２，Ｓ１３においてシンドロームＳ１がそれぞれ算出される。すなわち、バスアービタ１１を介してＤＲＡＭ１０から読み出されたデータ（シンボルｖ（ｉ））に対して、該当する符号語に対応する演算回路の備えるレジスタ（図中、ｒｅｇと表記）が能動とされることで、当該演算回路において上記演算が行われる。そして、各演算回路において、２６のシンボル値ｖ（ｉ）（ｉ＝０，１，…２５）に渡って演算が行われることで、シンドロームが算出される。
【００３６】
そして、こうして各演算回路で算出されたシンドロームのうち、シンドロームＳ１はマルチプレクサＭ１を介して、また、シンドロームＳ２はマルチプレクサＭ２を介して、それぞれ選択的に先の図２に示すエラー検出部３４に転送される。そして、エラー検出部３４において、上記シンドロームに基づいて符号語内に誤りがあるか否かが判断される。そして、誤りがある場合には、その誤りの大きさと誤りの位置とが計算されて、その結果がエラー訂正部３２やＥＣＣアドレス生成部３３に出力される。
【００３７】
これに基づいて、ＥＣＣアドレス生成部３３では誤りのある位置を指定して、バスアービタ１１に出力する。これにより、バスアービタ１１では、ＤＲＡＭ１０上の誤りのある位置からデータを読み出して、エラー訂正部３２に供給する。エラー訂正部３２では、この供給されたデータとエラー検出部３４から供給された誤りの大きさに関するデータとから正しいデータを生成する。こうして生成されたデータは、バスアービタ１１を介してＤＲＡＭ１０に書き戻される。
【００３８】
こうしてエラー訂正が行われると、図示しないＥＤＣデコーダブロックによって、更に先の図８（ａ）に示したＥＤＣデータを用いてエラー訂正の過程で過度のエラーによる誤訂正が起こっていないかどうかのチェックが行われる。こうした一連の処理の後に、図示しないホストコンピュータからデータの転送の指令がバスアービタ１１に入力されると、ＤＲＡＭ１０からバスアービタ１１を介してデータの転送が行われる。
【００３９】
こうした複数の符号語毎のＤＲＡＭ１０からの読み出しや、シンドローム生成部３１でのシンドロームの算出のタイミングは、エラー訂正タイミング生成回路２０にて生成される。このエラー訂正タイミング生成回路２０は、先の図３に示す各演算回路のいずれかに選択的にＤＲＡＭ１０から読み出されたデータを割り振るべく、図４に示すようなシンボルカウンタを備えている。
【００４０】
シンボルカウンタは、レジスタ４０、カウント制御部４２及びデコーダ４１より構成され、例えば、ＣＡＳ等、ＤＲＡＭ１０からデータを読み出すタイミングに同期した信号によってカウント値をインクリメントする。このシンボルカウンタのカウント値の下２桁「００」、「０１」、「１０」、「１１」は、４つの符号語のそれぞれに対応しており、このカウント値に基づいて、ＤＲＡＭ１０から読み出されたデータが複数の演算回路の何れかに振り分けられる。
【００４１】
レジスタ４０は、カウント制御部４２により出力されたカウント値を一時的に保持し、タイミング信号に同期して、そのカウント値をデコーダ４１に出力すると共に、カウント制御部４２に出力する。デコーダ４１は、カウント値の下２桁に基づいて、複数の演算回路Ｓ００及びＳ１０と、Ｓ０１及びＳ１１と、Ｓ０２及びＳ１２と、Ｓ０３及びＳ１３とのレジスタの何れかに選択的にイネーブル信号を出力する。これにより、４つの符号語のシンドロームが各別の演算回路で算出される。
【００４２】
カウント制御部４２は、入力されるカウント値に対して、「１」又は「２」を選択的に加算してレジスタ４０に出力する。カウント値が「００００」から「１０３９」のとき、カウント値に対して、「１」を加算し、カウント値を１ずつインクリメントする。一方、カウント値が「１０４０」まで達したとき、カウント値の下２桁に基づいて、「１」又は「２」の加算値を選択する。カウント値の下２桁が「００」、「０１」の場合、カウント値に対して「１」加算し、「１０」の場合、「２」を加算して、カウント値の下２桁が「００」となるようにしている。これにより、カウント値が「１０４０」以降は、カウント値の下２桁が「１１」となることを回避している。
【００４３】
すなわち、１０４０バイト分のシンボルが読み出された時点では、先の図１に示したように、ＣＤ−ＲＯＭの当該セクタデータ（ＭＳバイトデータ及びＬＳバイトデータ）には、３つの符号語が残されるのみとなる。このため、ＤＲＡＭ１０からのデータの読み出しタイミングに同期して、その３タイミング周期で演算回路Ｓ００及びＳ１０と、Ｓ０１及びＳ１１と、Ｓ０２及びＳ１２とのいずれかのレジスタを順に能動とすることで、３つの符号語のシンドロームを並列して算出することが可能となる。
【００４４】
また、エラー訂正タイミング生成回路２０は、各符号語のシンドロームが算出されると、換言すれば、上記各演算回路に２６個のシンボルが入力されると、同演算回路を初期化すべく、クリア信号を生成する。このクリア信号が演算回路に入力されることで、演算回路では、それ以後入力されるシンボル値に基づいて新たにシンドロームを計算することができるようになる。
【００４５】
更に、エラー訂正タイミング生成回路２０は、ＤＲＡＭ１０が１セクタ分のデータを読み出したと判断したときに、先の図４に示したシンボルカウンタにリセット信号を入力するためのカウンタを備えている。このように、ＤＲＡＭ１０が１セクタ分のデータを読み出したと判断するとそのカウンタ値を初期化することで、シンボルカウンタの構成を複雑にすることなく、上記イネーブル信号の生成が可能となる。
【００４６】
ここで、図５に基づいて、本実施形態にかかるＤＲＡＭ１０へのアクセスタイミングやシンドローム演算タイミングについて、更に説明する。
【００４７】
すなわち、所定のクロック（図５（ａ））に同期して、エラー訂正タイミング生成回路２０からシンドローム生成部３１にクリア信号が入力される（図５（ｆ））と、上記各演算回路Ｓ００及びＳ１０と、Ｓ０１及びＳ１１と、Ｓ０２及びＳ１２と、Ｓ０３及びＳ１３とが初期化される。これにより、これら各演算回路では、新たなシンドローム計算を行う準備が整う。
【００４８】
次に、ＤＲＡＭ１０から読み出すデータのアドレスを指定すべく、ＲＡＳ信号（図５（ｃ））及びＣＡＳ信号（図５（ｄ））が上記バスアービタ１１内で生成される。ここで、ＤＲＡＭ１０内の行アドレス及び列アドレスは、それぞれＲＡＳ信号及びＣＡＳ信号の立ち下がりによって指定される。そして、これらＲＡＳ信号及びＣＡＳ信号の立ち下がりによって指定されたＤＲＡＭ１０内の行アドレス及び列アドレスは、これらＲＡＳ信号及びＣＡＳ信号の次の立ち下がりまで保持される。
【００４９】
そして、本実施形態では、ＣＡＳ信号によって４つの列アドレスが指定されるまでの間、ＲＡＳ信号を一定とすることで行アドレスを一定に保持する。したがって、ＣＡＳ信号の立ち下がりに同期して４つの符号語のデータ（ｄ０、ｄ１、ｄ２、ｄ３）が読み出される（図５（ｅ））。これら読み出された各データから、上記シンドローム生成部３１の所定の演算回路においてシンドロームを算出すべく、上記エラー訂正タイミング生成回路２０ではイネーブル信号を生成する（図５（ｇ））。
【００５０】
このイネーブル信号によって、データｄ０が演算回路Ｓ００及びＳ１０にて（図５（ｈ）、図５（ｉ））、データｄ１が演算回路Ｓ０１及びＳ１１にて（図５（ｊ）、図５（ｋ））、データｄ２が演算回路Ｓ０２及びＳ１２にて（図５（ｌ）、図５（ｍ））、データｄ３が演算回路Ｓ０３及びＳ１３にて（図５（ｎ）、図５（ｏ））、それぞれ演算される。
【００５１】
そして、こうした一連のデータｄ０、ｄ１、ｄ２、ｄ３の読み出しの後、ＲＡＳ信号とＣＡＳ信号とを立ち上げるとともに、上記ＤＲＡＭ１０においてプリチャージ動作を行う（図５（ｂ）でｘｘと表記）。このプリチャージ動作の後には、再度ＲＡＳ信号やＣＡＳ信号を立ち下げることで、ＤＲＡＭ１０内の所定アドレスにアクセスしてデータの読み出しが行われる。
【００５２】
このように、行アドレスを指定した後、４つの符号語に属するデータの記憶された列アドレスを指定して読み出しを行うために、４つのデータの読み出しを６クロックで行うことができる。
【００５３】
これに対して、先の図１１に示したように符号語の読み出しを１つずつ行っていく場合には、ＤＲＡＭ１０へのアクセスも図６に示すようなものとなる。すなわち、ここでは読み出し対象となるデータ毎に、そのＤＲＡＭ１０の行アドレス及び列アドレスを指定する（図６（ｂ））のに加えて、プリチャージ動作を行うために、各データの読み出しに３クロックが必要となる。したがって、４つのデータの読み出しに際しては、１２クロック必要となり、本実施形態と比べて２倍の時間がかかる。
【００５４】
なお、図７に例示されるように、列アドレスを例えば２つ指定した時点（図７（ｂ））において、同アドレスがＤＲＡＭ１０のページの境界となる場合には、上記ページ境界検出部２４においてページ境界信号（図７（ｐ））が生成される。これにより、ＲＡＳ信号（図７（ｃ））及びＣＡＳ信号（図７（ｄ））が一旦立ち上がり、プリチャージ動作（図７（ｂ）においてｘｘと表記）が行われる。そして、行アドレスを再度指定した後、列アドレスを指定することで、残り２つのデータｄ２、ｄ３の読み出しが行われる（図７（ｅ））。
【００５５】
以上説明した本実施形態によれば、以下の効果が得られるようになる。
【００５６】
（１）ＤＲＡＭ１０から複数のＰ符号を同時に読み出すことで、行アドレスの指定後、連続して複数の列アドレスを指定するページモード方式を適用することができるようになる。これにより、ＤＲＡＭ１０へのアクセスにかかる時間を削減することができるようになる。
【００５７】
（２）ページ境界検出部２４によって読み出し対象となるデータがページの境界にあるときを検出するのみで、上記ページモード方式の例外処理を行うことができるようになる。
【００５８】
（３）シンドローム生成部３１において、図３に示す態様にて４つの符号語を並列して計算することができるようにしたことで、シンドローム計算を迅速に行うことができるようになる。
【００５９】
（４）ＭＳバイト及びＬＳバイトのデータにおいて１０４０バイト分のデータの読み出しの後には、シンボルカウンタを用いて、演算回路Ｓ００及びＳ１０と、Ｓ０１及びＳ１１と，Ｓ０２及びＳ１２との３つの演算回路のみにイネーブル信号を入力する構成とした。これにより、符号語の総数が並列して読み出される符号語の数の倍数とならない場合であれ、的確に符号語の読み出しを行うことができるようになる。
【００６０】
（５）並列して算出されたシンドロームがマルチプレクサＭ１及びＭ２によって選択的にエラー検出部３４に入力される構成とした。これにより、エラー検出部３４の回路の大型化を回避することができる。
【００６１】
なお、上記実施形態は、以下のように変更して実施することもできる。
【００６２】
・ＤＲＡＭ１０のページサイズについては、２５６バイトであるものにも限られない。このページサイズの変更に応じて、加算器２３の出力するデータからページの境界を検出するページ境界検出部２４の検出態様を適宜変更すればよい。
【００６３】
・シンボルカウンタを用いる代わりに、上記イネーブル信号の入力態様等をＲＯＭ（Read Only Memory）に設定する構成としてもよい。
【００６４】
・Ｐ符号のシンドローム計算時におけるＤＲＡＭ１０からのシンボルの読み出し時に限らず、例えばＱ符号のシンドローム計算時において、ＤＲＡＭ１０から複数の符号語を並列して読み出すようにしてもよい。ただし、この場合、Ｑ符号の読み出し初期においては、必ずしも複数の符号語を読み出さずに調整することで、それ以降、ＤＲＡＭ１０内で隣接するデータの並列した読み出しを行うことができるようにすることが望ましい。すなわち、先の図９に示したデータにおいては、はじめに「００００」を、次に、「００４３」及び「００４４」を、その次に、「００８６」及び「００８７」及び「００８８」を読み出すようにすることが望ましい。これにより、それ以降の処理においては、「０１２９」及び「１１３０」及び「０１３１」及び「０１３２」等、４つずつの符号語を読み出す際に、それらデータをＤＲＡＭ１０内での隣接したアドレスのデータとすることができる。この際、シンドローム生成部３１へのイネーブル信号やクリア信号の入力態様についても適宜変更して設定する。
【００６５】
・また、複数の符号語の並列的な読み出しやこの読み出された符号語の並列的なシンドローム計算は、ＣＤ−ＲＯＭのデータにおけるエラー訂正処理におけるものにも限られない。例えば、ＣＤやＤＶＤ（Digital Versatile Disc）のデータのエラー訂正処理等に適用してもよい。
【００６６】
・並列的に読みだされる符号語の数や、並列して計算されるシンドロームの数は、上記実施形態のものにも限られない。この際、必ずしも、ランダムアクセスメモリに記憶されるデータの順番において隣接するものを複数並列に読み出すものにも限らず、近接している場合であれページモード方式の採用は可能である。
【００６７】
・複数の符号語の並列的な読み出しは、ページモード方式を採用したものにも限られず、ＥＤＯ（extended data output）方式等、適宜の高速アクセス方式を適用するようにしてもよい。また、上記ＤＲＡＭとして、ＳＤＲＡＭ（synchronous DRAM）等を用いることもできる。
【００６８】
・図３に示したマルチプレクサＭ１及びＭ２については、これを設けずとも、ＤＲＡＭ１０からの高速読み出しやシンドロームの高速計算を行うことはできる。
【００６９】
・シンドローム生成部３１については、必ずしも図３に例示するように複数の符号語のシンドロームを計算する各別の回路を設ける構成としなくても、複数の符号語を同時に読み出すことで、ＤＲＡＭ１０からデータを高速に読み出すことはできる。
【００７０】
【発明の効果】
請求項１記載の発明によれば、複数の符号語のシンドローム計算が各別の演算回路によって並列して実行されるために、読み出し動作を高速化することができるようになる。
【００７１】
請求項２記載の発明によれば、バッファメモリ内での行アドレスを保持し、列アドレスを変更して複数の符号語を並列的に読み出すことで、ページモード等の高速アクセス方式を容易に適用することができるようになる。
【００７２】
請求項３記載の発明によれば、符号語の総数が並列して読み出される符号語の数の倍数とならない場合であれ、的確に符号語の読み出しを行うことができるようになる。
【図面の簡単な説明】
【図１】本発明にかかるエラー訂正装置の一実施形態について、その符号語の読み出し順序を示す図。
【図２】同実施形態のエラー訂正装置の全体構成を示すブロック図。
【図３】同実施形態のシンドローム生成部の構成を示す回路図。
【図４】同実施形態のシンボルカウンタの構成を示す図。
【図５】同実施形態における符号語の読み出しタイミングを示すタイムチャート。
【図６】従来の符号語の読み出しタイミングを示すタイムチャート。
【図７】同実施形態における符号語の読み出しタイミングについて、特にその例外処理を示すタイムチャート。
【図８】ＣＤ−ＲＯＭのデータフォーマットを示す図。
【図９】ＣＤ−ＲＯＭデータにおける符号語の設定態様を示す図。
【図１０】ＤＲＡＭ内でのＣＤ−ＲＯＭデータの記憶態様を示す図。
【図１１】従来の符号語の読み出し順序を示す図。
【符号の説明】
１０…ＤＲＡＭ、１１…バスアービタ、２０…エラー訂正タイミング生成回路、２１…セクタ先頭アドレス生成部、２２…ＥＣＣオフセットアドレス生成部、２３…加算器、２４…ページ境界検出部、３０…ＣＤ−ＲＯＭデコード部、３１…シンドローム生成部、３２…エラー訂正部、３３…ＥＣＣアドレス生成部、３４…エラー検出部、４０…レジスタ、４１…デコーダ、４２…カウント制御部。
【図１】
0003954803.tif 000002
【図２】
0003954803.tif 000003
【図３】
0003954803.tif 000004
【図４】
0003954803.tif 000005
【図５】
0003954803.tif 000006
【図６】
0003954803.tif 000007
【図７】
0003954803.tif 000008
【図８】
0003954803.tif 000009
【図９】
0003954803.tif 000010
【図１０】
0003954803.tif 000011
【図１１】
0003954803.tif 000012