"所定数のデータフレームにスクランブル処理が施され、スクランブルされたデータフレームが所定サイズのデータブロックに変換され、該データブロックの各列にパリティが付加されたパリティ付加ブロックが生成され、該パリティ付加ブロックに対してインターリーブ処理が施されクラスタが生成され、該クラスタが変調されたデータの誤りを訂正する誤り訂正装置であって、前記変調されたデータを復調して復調されたデータとしてクラスタを生成する復調回路と、前記復調回路からのクラスタが所定行数毎に分割された分割クラスタが格納される内蔵メモリ部と、前記内蔵メモリ部を通じて、前記分割クラスタをデインターリーブ処理して生成したパリティ付加ブロックにおける各データが列方向に入力され、該各データに基づいてパリティ演算結果を前記パリティ付加ブロックの列毎に生成するパリティ演算結果生成回路と、前記内蔵メモリ部を通じて、前記分割クラスタにデインターリーブ処理が施され、前記データブロックにおける各スクランブルデータが列方向に読み出しブロックとして入力され、該スクランブルデータに基づいてEDCシンドロームを生成するEDCシンドローム生成回路と、前記EDCシンドローム生成回路により生成されるEDCシンドロームの中間結果を前記データフレーム毎に格納するEDCメモリ部と、前記パリティ演算結果に基づいて、前記スクランブルデータに対して誤り訂正処理を行う誤り訂正回路と、を備え、前記EDCシンドローム生成回路は、前記内蔵メモリ部からバイトデータとして入力される前記スクランブルデータと、第2選択回路から入力されるシフト演算値との排他的論理和を取って、EDC演算値を生成する第2排他的論理和回路と、前記第2排他的論理和から入力されるEDC演算値に対して、所定の第2生成多項式に従って1バイト分シフトさせる重み付けをしてシフト演算値を生成し、該シフト演算値を前記EDCメモリ部に格納する第1重み付け回路と、前記第2排他的論理和から入力されるEDC演算値に対して、{前記データブロックの列方向における全バイト数1-各読み出しブロックの列方向におけるバイト数}バイト分、前記第2生成多項式に従ってシフトさせる重み付けをしてシフト演算値を生成する第2重み付け回路と、前記第2排他的論理和回路から入力されるEDC演算値に対して、前記第2生成多項式に従って108バイト分シフトさせる重み付けをしてシフト演算値を生成し、該シフト演算値を前記EDCメモリ部に格納する第3重み付け回路と、前記第2重み付け回路からのシフト演算値と、前記EDCメモリ部からのEDCシンドロームの中間結果との排他的論理和を取って、シフト演算値を生成する第3排他的論理和回路と、を備え、前記第2選択回路は、前記第2排他的論理和回路に入力される前記バイトデータの前記データブロックにおける位置に応じて、前記第1重み付け回路、前記第2重み付け回路及び前記第3排他的論理和回路から入力されるシフト演算値のうちのいずれか一つのシフト演算値を前記第2排他的論理和回路に出力することを特徴とする誤り訂正装置。前記EDCシンドローム生成回路から外部メモリに格納されたEDCシンドロームが格納される補正メモリ部と、前記誤り訂正回路により算出される誤り位置及び誤り数値に基づいて、前記補正メモリ部に格納されたEDCシンドロームを補正するとともに、前記クラスタのBISクラスタ内のスクランブル値の初期値から算出されるスクランブル値に基づいて、前記EDCシンドロームを補正するEDC補正回路を備えたことを特徴とする請求項1に記載の誤り訂正装置。前記EDCシンドローム生成回路は、前記各読み出しブロックの中で、前記データブロックにおけるデータ配置と同様の順序にて前記各バイトデータを読み出すことを特徴とする請求項1又は2に記載の誤り訂正装置。前記EDCシンドローム生成回路は、前記第2排他的論理和回路から入力されるEDC演算値に対して、前記第2生成多項式に従って211バイト分、逆シフトさせる重み付けをしてシフト演算値を生成し、該シフト演算値を前記EDCメモリ部に格納する第4重み付け回路を備えたことを特徴とする請求項1~請求項3のいずれか1項に記載の誤り訂正装置。前記データブロックにおいて最初に処理されるデータフレームと該データフレームから1つおきに処理されるデータフレームとを偶数データフレームとし、該偶数データフレームの次に処理されるデータフレームを奇数データフレームとしたときに、前記EDCメモリ部には、前記各読み出しブロックの前記各データフレームにおける最終行最終列のバイトデータが前記第2排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第1重み付け回路を通じて前記EDCシンドロームの中間結果として格納され、前記EDCシンドローム生成回路に最後に入力される最終読み出しブロックの前記各偶数データフレームにおける最終行最終列のバイトデータが前記第2排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第3重み付け回路を通じて前記EDCシンドロームとして格納され、前記最終読み出しブロックの前記各奇数データフレームにおける最終行最終列のバイトデータが前記第2排他的論理和回路に入力されたときに生成されるEDC演算値が、前記EDCシンドロームとして格納されることを特徴とする請求項1~請求項4のいずれか1項に記載の誤り訂正装置。前記データブロックにおいて最初に処理されるデータフレームと該データフレームから1つおきに処理されるデータフレームとを偶数データフレームとし、該偶数データフレームの次に処理されるデータフレームを奇数データフレームとしたときに、前記EDCメモリ部には、前記各偶数データフレームにおけるEDC付加時の最終バイトデータが前記第2排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第4重み付け回路を通じて前記EDCシンドロームの中間結果として格納されることを特徴とする請求項4に記載の誤り訂正装置。前記EDCシンドローム生成回路は、前記各読み出しブロックの前記各データフレームにおける各列の最終行のバイトデータが前記第2排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第2重み付け回路を通じてシフト演算値として格納される作業メモリを備え、前記作業メモリは、前記格納されたシフト演算値を前記第3排他的論理和回路及び前記第2選択回路に出力し、前記第2選択回路は、前記第2排他的論理和回路に入力される前記バイトデータの前記データブロックにおける位置に応じて、前記第1重み付け回路、前記作業メモリ及び前記第3排他的論理和回路から入力されるシフト演算値のうちのいずれか一つのシフト演算値を前記第2排他的論理和回路に出力することを特徴とする請求項1~請求項6のいずれか1項に記載の誤り訂正装置。ところが、上記誤り訂正回路114による誤り訂正処理を行うためには、ECCクラスタECCc単位でのデータが必要となる。そのため、図43に示すコントローラ130では、内蔵メモリ131が1つのECCクラスタ分のデータを格納することのできる大容量のメモリとなる。そのため、1つのECCクラスタECCcの容量に相当するバッファメモリを内蔵することになり、コントローラの回路規模が増大するという新たな問題が生じる。本発明は上記問題点を解決するためになされたものであって、その目的は、内蔵メモリ容量の増大による回路規模の増大を抑制しつつも、外部メモリへのアクセス量を低減することのできる誤り訂正装置を提供することにある。上記目的を達成するため、請求項1に記載の発明は、所定数のデータフレームにスクランブル処理が施され、スクランブルされたデータフレームが所定サイズのデータブロックに変換され、該データブロックの各列にパリティが付加されたパリティ付加ブロックが生成され、該パリティ付加ブロックに対してインターリーブ処理が施されクラスタが生成され、該クラスタが変調されたデータの誤りを訂正する誤り訂正装置であって、前記変調されたデータを復調して復調されたデータとしてクラスタを生成する復調回路と、前記復調回路からのクラスタが所定行数毎に分割された分割クラスタが格納される内蔵メモリ部と、前記内蔵メモリ部を通じて、前記分割クラスタをデインターリーブ処理して生成したパリティ付加ブロックにおける各データが列方向に入力され、該各データに基づいてパリティ演算結果を前記パリティ付加ブロックの列毎に生成するパリティ演算結果生成回路と、前記内蔵メモリ部を通じて、前記分割クラスタにデインターリーブ処理が施され、前記データブロックにおける各スクランブルデータが列方向に読み出しブロックとして入力され、該スクランブルデータに基づいてEDCシンドロームを生成するEDCシンドローム生成回路と、前記EDCシンドローム生成回路により生成されるEDCシンドロームの中間結果を前記データフレーム毎に格納するEDCメモリ部と、前記パリティ演算結果に基づいて、前記スクランブルデータに対して誤り訂正処理を行う誤り訂正回路と、を備え、前記EDCシンドローム生成回路は、前記内蔵メモリ部からバイトデータとして入力される前記スクランブルデータと、第2選択回路から入力されるシフト演算値との排他的論理和を取って、EDC演算値を生成する第2排他的論理和回路と、前記第2排他的論理和から入力されるEDC演算値に対して、所定の第2生成多項式に従って1バイト分シフトさせる重み付けをしてシフト演算値を生成し、該シフト演算値を前記EDCメモリ部に格納する第1重み付け回路と、前記第2排他的論理和から入力されるEDC演算値に対して、{前記データブロックの列方向における全バイト数1-各読み出しブロックの列方向におけるバイト数}バイト分、前記第2生成多項式に従ってシフトさせる重み付けをしてシフト演算値を生成する第2重み付け回路と、前記第2排他的論理和回路から入力されるEDC演算値に対して、前記第2生成多項式に従って108バイト分シフトさせる重み付けをしてシフト演算値を生成し、該シフト演算値を前記EDCメモリ部に格納する第3重み付け回路と、前記第2重み付け回路からのシフト演算値と、前記EDCメモリ部からのEDCシンドロームの中間結果との排他的論理和を取って、シフト演算値を生成する第3排他的論理和回路と、を備え、前記第2選択回路は、前記第2排他的論理和回路に入力される前記バイトデータの前記データブロックにおける位置に応じて、前記第1重み付け回路、前記第2重み付け回路及び前記第3排他的論理和回路から入力されるシフト演算値のうちのいずれか一つのシフト演算値を前記第2排他的論理和回路に出力する。上記構成によれば、EDCシンドローム生成回路及びパリティ演算結果生成回路は、内蔵メモリ部に対して独立してアクセスすることが可能なため、EDCシンドローム生成及びパリティ演算処理を並行して実行することができ、誤り訂正処理に要する時間を短縮することができる。また、EDCシンドローム生成回路に第1~第3重み付け回路、第3排他的論理和回路及び第2選択回路を設けるようにしたため、EDC付加時と異なる順序で入力されるバイトデータに対しても、EDC付加時と同様のデータ処理順序でEDC演算処理した場合と同一のバイト数分の重み付けを行うことができる。以上説明したように、本発明によれば、内蔵メモリ容量の増大による回路規模の増大を抑制しつつも、外部メモリへのアクセス量を低減することが可能な誤り訂正装置を提供することができる。第1実施形態以下、本発明を具体化した第1実施形態を図1~図21に従って説明する。図1に示すように、データ読み出し装置としての光ディスク制御装置1は、ATAPIATattachmentpacketinterface等の所定のインターフェースを介してコンピュータ2に接続されている。また、光ディスク制御装置1は、インターフェースを介して光ディスク駆動装置3に接続されている。光ディスク駆動装置3は、ブルーレイディスクBD4を所定の速度で回転駆動するとともに、BD4に記憶されたディスクデータを図示しない光ピックアップにより読み出す。そして、光ディスク駆動装置3は、ディスクデータを光ディスク制御装置1に出力する。光ディスク制御装置1の入出力駆動回路5には、光ディスク駆動装置3から上記ディスクデータが入力され、そのディスクデータを誤り訂正装置としての光ディスクコントローラコントローラ10に出力する。コントローラ10は、光ディスク駆動装置3への命令送信及びステータス受領と、光ディスクであるBD4からの読み出しフォーマット解読及び誤り訂正と、光ディスク駆動装置3と外部バッファメモリ6との間のデータ転送と、インターフェース回路60と外部バッファメモリ6との間のデータ転送等の各処理を行う。すなわち、コントローラ10は、入出力駆動回路5から入力されるディスクデータに対してデスクランブル処理を行ってデスクランブルデータを生成するとともに、EDCシンドローム、LDCシンドローム及びBISシンドロームといった各種シンドロームを生成する。そして、コントローラ10は、これらのデスクランブルデータ及び各種シンドロームを外部バッファメモリ6に格納する。また、コントローラ10は、外部バッファメモリ6に格納した各種シンドロームに基づいて、外部バッファメモリ6に格納されたデスクランブルデータに対して誤り訂正処理を行う。そして、コントローラ10は、マイクロプロセッサ8の命令に基づいて、外部バッファメモリ6に格納した誤り訂正後のユーザデータUDを、インターフェース回路60を介して上記コンピュータ2に転送する。次に、図1に示した光ディスクコントローラ10の内部構成について図2に従って説明する。光ディスクコントローラ10の復調回路11には、BD4から読み出されたディスクデータが入出力駆動回路5を通じて順次入力される。復調回路11は、入力されるディスクデータをデジタルデータに変換するとともに、そのデジタルデータに同期したクロック信号CLKを生成する。復調回路11は、さらにデジタルデータを復調して、該復調済データ、すなわちECCクラスタECCc図40b参照を生成し、該ECCクラスタECCc及びクロック信号CLKを出力する。復調回路11からECCクラスタECCcクラスタのデータが入力される内蔵メモリ部12は、2つのバッファメモリM1,M2から構成されている。各バッファメモリM1,M2の各々は、所定バイト数本実施形態では、2480バイトのデータを格納可能なメモリ容量となっている。本実施形態では、ECCクラスタECCc76880バイトが31=76880/2480個に分割され、2480バイト毎に内蔵メモリ部12の各バッファメモリM1,M2に格納される。すなわち、ECCクラスタECCc図40b参照が16行毎に分割され、16行×155列=2480バイトのブロック単位分割ECCクラスタDECCで各バッファメモリM1,M2に格納される。図3に、復調回路11から最初に内蔵メモリ部12に格納される16行×155列の分割ECCクラスタDECC分割クラスタを示した。図3に示すように、ECCクラスタECCcの各列における1行目から16行目までの各データが復調回路11から内蔵メモリ部12に最初に格納される。内蔵メモリ部12は、同一時間において、バッファメモリM1及びバッファメモリM2のいずれか一方を、復調回路11からのデータを保存するデータ保存用として使用し、他方を、後述するLDCシンドローム生成回路13等にアクセスされるアクセス用として使用する。すなわち、バッファメモリM1がデータ保存用として使用される場合にはバッファメモリM2がアクセス用として使用され、バッファメモリM2がデータ保存用として使用される場合にはバッファメモリM1がアクセス用として使用される。図5に、上記内蔵メモリ部12の回路構成例を示した。図5に示すように、復調回路11から入力されるデータは、第1セレクタ12aに入力される。この第1セレクタ12aには、選択回路12cからの選択信号が入力される。選択回路12cは、復調回路11から入力されるクロック信号CLKをカウントして、所定のタイミングで選択信号の信号レベルを切り替える。本実施形態では、選択回路12cは、2480バイト分のクロックをカウントする度に、上記選択信号の信号レベルを切り替える。なお、この選択信号は、インバータを介して第2セレクタ12bにも入力される。第1セレクタ12aは、選択回路12cからの選択信号の信号レベルに基づいて、復調回路11からのデータをバッファメモリM1あるいはバッファメモリM2に出力する。また、第2セレクタ12bは、インバータを介して入力される選択回路12cからの選択信号の信号レベルに基づいて、バッファメモリM1及びバッファメモリM2のいずれか一方をアクセス可能とする。図2に示すように、LDCシンドローム生成回路13パリティ演算結果生成回路は、アクセス可能に選択された内蔵メモリ部12のバッファメモリに格納された分割ECCクラスタDECC内のLDCクラスタLDCcを並び替えながら読み出す。前述したように、BD4から読み出されるECCクラスタECCcにおけるLDCクラスタLDCc図39参照は、パリティ付加ブロックPB図37参照のデータが第1インターリーブ処理及び第2インターリーブ処理されて並び替えられたブロックである。また、LDCクラスタLDCc内のECC部LDCpは、第1及び第2インターリーブ処理前のデータブロックDB図36b参照に対して付加されたパリティであるため、LDCクラスタLDCcにおけるデータ配列順序のままでは、ECC部LDCpに基づくLDCシンドロームパリティ演算結果を正確に生成することができない。そこで、本実施形態におけるLDCシンドローム生成回路13は、内蔵メモリ部12に格納された分割ECCクラスタDECC内のLDCクラスタLDCcを、第1及び第2デインターリーブ処理を施してパリティ付加ブロックPBの配置順序になるように各データを並べ替えながら読み出すようにしている。この読み出し順序について、内蔵メモリ部12に最初に格納されるデータブロックを例に挙げて説明すると、まず、LDCシンドローム生成回路13は、図3に示す位置f0,0のデータ成分e0,0を読み出し、次に位置f2,149のデータ成分e1,0を読み出し、次に位置f4,146のデータ成分e2,0を読み出す。以後も同様に、LDCシンドローム生成回路13は、図4の実線の矢印で示すように、データ成分e3,0、データ成分e4,0、...、データ成分e7,0の順にパリティ付加ブロックPBにおける1列目のデータ成分を読み出す。続いて、LDCシンドローム生成回路13は、データ成分e0,1、...、データ成分e7,1の順にパリティ付加ブロックPBにおける2列目の1行目~8行目までのデータ成分を読み出す。LDCシンドローム生成回路13は、以後も同様に、パリティ付加ブロックPBにおける各列のデータ成分eを順番に読み出す。このように、31個の分割ECCクラスタDECC内のLDCクラスタLDCcが第1及び第2デインターリーブ処理が施されて読み出されると、図4に示すように、31分割された8行×304列のパリティ付加ブロックPBが読み出しブロックRB第1~第31読み出しブロックRB1~RB31として読み出される。LDCシンドローム生成回路13は、上記読み出し順序にてデータを読み出すとともに、各読み出しブロックRBにおける列方向のバイト数本実施形態では、8バイト毎に各列のLDCシンドロームの中間値を生成し、該LDCシンドロームの中間値をLDCメモリ部14に格納する。また、LDCシンドローム生成回路13は、前回の読み出しブロックRB例えば、第2読み出しブロックRB2のときには第1読み出しブロックRB1のときに格納した同一列のLDCシンドロームの中間値をLDCメモリ部14から読み出す。そして、LDCシンドローム生成回路13は、読み出したLDCシンドロームの中間値と、現在の読み出しブロックRB例えば、第2読み出しブロックRB2の列方向におけるデータとに基づいて、LDCシンドロームの中間値を更新して、該更新後のLDCシンドロームをLDCメモリ部14に格納する。図2に示すように、LDCメモリ部14は、2つのLDCバッファメモリM3,M4から構成されている。各バッファメモリM3,M4の各々は、1つのパリティ付加ブロックPB内の全列のLDCシンドロームを格納可能なメモリ容量、すなわち9728=32×304バイトを格納可能なメモリ容量となっている。LDCメモリ部14は、1つのパリティ付加ブロックPB全体31回分:第1~第31読み出しブロックRB1~RB31のデータ読み出し終了後に格納されているLDCシンドロームの中間値が最終的なLDCシンドロームとなるため、各列毎の最終的なLDCシンドロームを外部バッファメモリ6に格納する。LDCメモリ部14は、同一時間において、バッファメモリM3及びバッファメモリM4のいずれか一方を、LDCシンドローム生成回路13からのLDCシンドロームの中間値を保存するシンドローム保存用として使用し、他方を、最終的なLDCシンドロームを外部バッファメモリ6に出力するシンドローム出力用として使用する。なお、LDCメモリ部14は、内蔵メモリ部12と略同様の構成を有する。BISシンドローム生成回路16に接続されるBISメモリ部15には、アクセス可能に選択された内蔵メモリ部12のバッファメモリに格納された分割ECCクラスタDECC内のBISクラスタBIScが、列方向に順番に格納される。例えば、図3に示すデータブロックの場合には、BISメモリ部15には、B0,0~B15,0が図3の実線の矢印で示す順番に格納される。BISメモリ部15は、BISクラスタBISc全体のデータが格納されると、そのBISクラスタBIScをBISシンドローム生成回路16に出力する。図2に示すように、このBISメモリ部15は、2つのBISバッファメモリM5,M6とから構成されている。各バッファメモリM5,M6の各々は、1つのBISクラスタBIScを格納可能なメモリ容量、すなわち1488=496×3バイトを格納可能なメモリ容量となっている。BISメモリ部15は、同一時間において、バッファメモリM5及びバッファメモリM6のいずれか一方を、内蔵メモリ部12からのBISクラスタBIScのデータを格納するデータ保存用として使用し、他方を、格納したBISクラスタBIScをBISシンドローム生成回路16に出力するデータ出力用として使用する。なお、BISメモリ部15は、内蔵メモリ部12と略同様の構成を有する。BISシンドローム生成回路16は、BISメモリ部15からBISクラスタBIScを読み出し、該BISクラスタBIScに基づいてBISシンドロームを生成する。BISシンドローム生成回路16は、生成したBISシンドロームを外部バッファメモリ6に格納する。デスクランブル回路20は、上記LDCシンドローム生成回路13と同様に、アクセス可能に選択された内蔵メモリ部12のバッファメモリに格納された分割後のLDCクラスタLDCcを読み出しブロックRBとして読み出す。ここで、第1~第31読み出しブロックRB1~RB31のうち、第28~第31読み出しブロックRB28~RB31217行目~248行目のデータを構成するECC部LDCpの各データには、スクランブル処理が施されていない。そのため、デスクランブル回路20は、図7に示すように、第28~第31読み出しブロックRB28~RB31を除く第1~第27読み出しブロックRB1~RB27図36bに示したデータブロックDBのみを読み出す。デスクランブル回路20は、読み出した各読み出しブロックRB毎に各スクランブルデータに対してデスクランブル処理を行って該データにかけられた所定のスクランブルを解除する。デスクランブル回路20は、デスクランブル処理の施されたデスクランブルデータdDuを外部バッファメモリ6及びEDCシンドローム生成回路30に出力する。なお、図7は、デスクランブル回路20により読み出される第1~第27読み出しブロックRB1~RB27のスクランブルデータsDuの読み出し順序を、スクランブルデータフレームSDF図36a参照における行番号uで示した。なお、この行番号uは、スクランブル処理時におけるデータフレームDF毎の処理順序を示す番号であり、0≦u≦2051である。図6に、デスクランブル回路20の回路構成例を示した。図6に示すように、内蔵メモリ部12から読み出されたスクランブルデータsDuは、EOR回路21に入力される。このEOR回路21には、スクランブル値生成回路22により生成されるスクランブル値SCが入力される。EOR回路21は、内蔵メモリ部12からのスクランブルデータsDuと、所定のスクランブル値SCの下位8ビットとの排他的論理和を取ってデスクランブルデータdDuを生成し、該デスクランブルデータdDuを外部バッファメモリ6及びEDCシンドローム生成回路30に出力する。ここで、デスクランブル処理について説明する。前述したように、スクランブル値SCの初期値がS0である場合には、スクランブルデータsDuに対するデスクランブルデータdDuは下記式により生成される。このようにスクランブル処理時と同一のスクランブル値SCとスクランブルデータsDuとの排他的論理和を取ることによって、デスクランブル処理を実行することができる。すなわち、スクランブル処理時と同様の順序で読み出されるスクランブルデータsDuと、スクランブル処理を行った際と同様の順序で生成されるスクランブル値SCとの排他的論理和を取ることによって、全デスクランブルデータdD0~dD2051を正確に生成することができる。但し、本実施形態の場合、データブロックDBが31分割されて読み出されるため、データの読み出し順序がスクランブル処理時と異なる。従って、スクランブル処理時と同様に、1バイト分ずつシフトさせてスクランブル値SCを生成すると、スクランブル処理時とは異なるスクランブル値SCと各データとの排他的論理和が取られ、正確にデスクランブル処理を実行することができない。そこで、本実施形態では、スクランブル値生成回路22内に、EOR回路21に入力されるスクランブルデータsDuに応じてシフト演算子γを所望のバイト数分だけシフトさせるための1シフト演算器24、209シフト演算器25及び108シフト演算器26を備えるようにした。1シフト演算器24及び209シフト演算器25には、フリップフロップFF回路23からスクランブル値SCが入力される。1シフト演算器24は、FF回路23からスクランブル値SCとしてS0γnが入力されたときに、スクランブル値SCとしてS0γn1をセレクタ27に出力する演算器である。すなわち、1シフト演算器24は、入力されたスクランブル値を生成多項式Φxに従って1バイト分シフトさせて新たなスクランブル値SCを生成する演算器である。図15に、1シフト演算器24にI[15:0]が入力されたときに、該1シフト演算器24から出力されるO[15:0]の論理式を示した。209シフト演算器25は、FF回路23からスクランブル値SCとしてS0γnが入力されたときに、スクランブル値SCとしてS0γn209をセレクタ27に出力する演算器である。すなわち、209シフト演算器25は、入力されたスクランブル値を生成多項式Φxに従って209バイト分シフトさせて新たなスクランブル値SCを生成する演算器である。図16に、209シフト演算器25にI[15:0]が入力されたときに、該209シフト演算器25から出力されるO[15:0]の論理式を示した。108シフト演算器26は、初期値レジスタR1からスクランブル値SCの初期値S0が入力されたときに、スクランブル値SCとしてS0γ108を奇数レジスタR3に出力する演算器である。すなわち、108シフト演算器26は、入力されたスクランブル値を生成多項式Φxに従って108バイト分シフトさせて新たなスクランブル値SCを生成する演算器である。図17に、108シフト演算器26にI[15:0]が入力されたときに、該108シフト演算器26から出力されるO[15:0]の論理式を示した。なお、図15~図17におけるO[7]~O[0]が、EOR回路21において実際にスクランブルデータsDuと排他的論理和が取られるデータである。セレクタ27には、各種演算器24,25と併せて、初期値レジスタR1、偶数レジスタR2及び奇数レジスタR3からそれぞれスクランブル値SCが入力される。ここで、初期設定時の偶数レジスタR2には、初期値レジスタR1から入力されるスクランブル値SCの初期値S0が格納される。また、偶数レジスタR2には、各読み出しブロックRB内の最終偶数データフレームデータフレームDF30における1列目の最終行のスクランブルデータに対するスクランブル値SCが1シフト演算器24を通じて格納される。一方、初期設定時の奇数レジスタR3には、初期値レジスタR1から108シフト演算器26を通じて入力されるスクランブル値SC=S0γ108が格納される。また、奇数レジスタR3には、各読み出しブロックRB内の最終奇数データフレームデータフレームDF31における1列目の最終行のスクランブルデータに対するスクランブル値SCが1シフト演算器24を通じて格納される。セレクタ27には、選択回路28からの選択信号が入力される。セレクタ27は、選択回路28からの選択信号に基づいて、各種演算器24,25及び各レジスタR1~R3から入力されるスクランブル値のうち1つのスクランブル値SCを上記FF回路23に出力する。なお、選択回路28は、入力されるクロック信号CLKのパルス数に応じて、すなわち読み出すデータの位置データブロックDBにおける位置に応じて選択信号を生成し、その選択信号をセレクタ27に出力する。例えば、選択回路28は、各読み出しブロックRB内の各偶数データフレームにおける1行1列目の先頭スクランブルデータがEOR回路21に入力されるときには、偶数レジスタ28からのスクランブル値SCをFF回路23に出力させる選択信号を生成する。選択回路28は、各読み出しブロックRB内の各奇数データフレームにおける1行1列目の先頭スクランブルデータがEOR回路21に入力されるときには、奇数レジスタ29からのスクランブル値SCをFF回路23に出力させる選択信号を生成する。選択回路28は、各読み出しブロックの2行目以降のスクランブルデータがEOR回路21に入力されるときには、1シフト演算器24から入力されるスクランブル値SCをFF回路23に出力させる選択信号を生成する。選択回路28は、各読み出しブロックの各データフレームDFにおける2列目以降の各列の1行目のスクランブルデータがEOR回路21に入力されるときには、209シフト演算器25から入力されるスクランブル値SCをFF回路23に出力させる選択信号を生成する。FF回路23は、CK端子に入力されるクロック信号CLKのパルスに基づいて、セレクタ27からD端子に入力されるスクランブル値SCをラッチするとともに、該ラッチしたスクランブル値SCをQ端子からEOR回路21、各種演算器24,25に出力する。図2に示すように、EDCシンドローム生成回路30は、デスクランブル回路20からバイトデータとして入力されるデスクランブルデータdDuに基づいてEDC演算を行ってEDCシンドロームを生成する。すなわち、EDCシンドローム生成回路30は、読み出しブロックRB内のデータフレームDF毎に、デスクランブルデータdDuに対するEDCシンドロームを生成し、そのEDCシンドロームをEDCメモリ部40に格納する。図8に、EDCシンドローム生成回路30の回路構成例を示した。図8に示すように、デスクランブル回路20から入力されるデスクランブルデータdDuは、EOR回路31に入力される。このEOR回路31には、セレクタ32からシフト演算値Esが入力される。EOR回路31は、デスクランブルデータdDuとシフト演算値Esの下位8ビットとの排他的論理和を取って、EDC演算値ErcをFF回路33に出力する。なお、EDC演算値Ercのrは読み出しブロックRB番号であり、1≦r≦27であるとともに、cは各データフレームDFにおけるクロック信号CLKのパルス数を表している。ここで、EDC演算について説明する。前述したように、4バイトのEDCを付加するときのデータ配置データ処理順序と同様に、デスクランブルデータが、dD0→dD1→→dD2050→dD2051の順で入力されると、EDCシンドロームEDCSは下記式により生成される。このように、EDCシンドロームEDCSの演算は、1バイトのデータが演算処理される度に各データに対して1次のベクターβ1による重み付けが行われる。従って、入力順序が早いデータほど重み付けされるベクターβの次数が高次になるとともに、入力順序が遅いデータほど重み付けされるベクターβの次数が低次になる。例えば、各データフレームDFにおいて最も早く入力される入力データバイトデータX2051に対しては、1次のベクターβ1による重み付けが2051回行われる。但し、本実施形態の場合、図7に示すように、デスクランブル回路20からEDCシンドローム生成回路30にデスクランブルデータが、dD0→dD1→→dD7→dD216→dD217→という順序で入力される。このように、EDC付加時のデータ処理順序と異なる順序でデスクランブルデータが入力されると、ベクターβによる重み付けが正確にできないため、正常なEDCシンドロームを生成することができない。そこで、本実施形態のEDCシンドローム生成回路30は、図8に示すように、バイトデータに応じて所望の次数nのベクターβnによる重み付けを行うための1シフト演算器34、209シフト演算器35、108シフト演算器36及び-211シフト演算器37を備えるようにした。これら各種演算器34~37には、FF回路33からEDC演算値Ercが入力される。すなわち、FF回路33は、CK端子に入力されるクロック信号CLKに基づいて、D端子に入力されるEDC演算値Ercをラッチするとともに、該EDC演算値ErcをQ端子から各種演算器34~37及びEDCメモリ部40に出力する。1シフト演算器34は、FF回路33からEDC演算値Ercが入力されたときに、シフト演算値としてErcβ1をセレクタ32に出力する演算器である。すなわち、1シフト演算器34は、入力されるEDC演算値Ercに対して、生成多項式Gxに従って1バイト分シフトさせる重み付けをしてシフト演算値Esを生成する演算器である。図18に、1シフト演算器34にI[31:0]が入力されたときに、該1シフト演算器34から出力されるO[31:0]の論理式を示した。209シフト演算器35は、FF回路33からEDC演算値Ercが入力されたときに、シフト演算値としてErc×β209をセレクタ32及びEOR回路38に出力する演算器である。すなわち、209シフト演算器35は、入力されるEDC演算値Ercに対して、生成多項式Gxに従って209バイト分シフトさせる重み付けをしてシフト演算値Esを生成する演算器である。図19に、209シフト演算器35にI[31:0]が入力されたときに、該209シフト演算器35から出力されるO[31:0]の論理式を示した。108シフト演算器36は、FF回路33からEDC演算値Ercが入力されたときに、EDCシンドロームの中間値EDCsとしてErc×β108をセレクタ32に出力する演算器である。すなわち、108シフト演算器36は、入力されるEDC演算値Ercに対して、生成多項式Gxに従って108バイト分シフトさせる重み付けをしてシフト演算値Esを生成する演算器である。図20に、108シフト演算器36にI[31:0]が入力されたときに、該108シフト演算器36から出力されるO[31:0]の論理式を示した。-211シフト演算器37は、FF回路33からEDC演算値Ercが入力されたときに、EDCシンドロームの中間値EDCsとしてErc×β211をセレクタ32に出力する演算器である。すなわち、-211シフト演算器37は、入力されるEDC演算値Ercに対して、生成多項式Gxに従って211バイト分、逆シフトさせる重み付けをしてシフト演算値Esを生成する演算器である。図21に、-211シフト演算器37にI[31:0]が入力されたときに、該-211シフト演算器37から出力されるO[31:0]の論理式を示した。EDCメモリ部40には、各読み出しブロックRBの各データフレームにおける最終行最終列のバイトデータに対するEDC演算値Ercが1シフト演算器34を通じて中間値EDCsとして格納される。EDCメモリ部40には、第14読み出しブロックRBの各偶数データフレームにおける最後のバイトデータに対するEDC演算値Ercが-211シフト演算器37を通じて中間値EDCsとして格納される。EDCメモリ部40には、第27読み出しブロックRBの各偶数データフレームにおける最終行最終列のバイトデータに対するEDC演算値Ercが108シフト演算器36を通じてEDCシンドロームEDCSとして格納される。EDCメモリ部40には、第27読み出しブロックRBの各奇数データフレームにおける最後のバイトデータに対するEDC演算値ErcがEDCシンドロームEDCSとしてFF回路33から格納される。このEDCメモリ部40は、図8に示すように、2つのEDCバッファメモリM7,M8から構成されている。各バッファメモリM7,M8の各々は、全データフレームDF0~DF31におけるEDCシンドロームを格納可能なメモリ容量、すなわち128=4×32バイトを格納可能なメモリ容量となっている。EDCメモリ部40は、1シフト演算器34及び-211シフト演算器37を通じて格納された中間値EDCsをEOR回路38に出力する。EDCメモリ部40は、FF回路33及び108シフト演算器36からのEDCシンドロームEDCSを外部バッファメモリ6に出力する。EDCメモリ部40は、同一時間において、バッファメモリM7及びバッファメモリM8のいずれか一方を、EDCシンドローム生成回路30からのEDCシンドロームの中間値EDCsを保存するシンドローム保存用として使用し、他方を、最終的なEDCシンドロームEDCSを外部バッファメモリ6に出力するシンドローム出力用として使用する。なお、EDCメモリ部40は、内蔵メモリ部12と略同様の構成を有する。EOR回路38は、209シフト演算器35からのシフト演算値Es=Ercβ209とEDCメモリ部40からの中間値EDCsとの排他的論理和を取って、その演算結果をシフト演算値Esとしてセレクタ32に出力する。セレクタ32は、選択回路39からの選択信号に基づいて、各種演算器34,35及びEOR回路38から入力されるシフト演算値のうち1つのシフト演算値Esを上記EOR回路31に出力する。また、セレクタ32は、選択回路39からの選択信号に基づいて、シフト演算値Esを出力しないようにする。選択回路39は、入力されるクロック信号CLKのパルス数に応じて、すなわちバイトデータの位置データブロックDBにおける位置に応じて各種選択信号を生成し、その選択信号をセレクタ32に出力する。例えば、選択回路39は、各読み出しブロックRBの2行目以降のバイトデータがEOR回路31に入力されるときには、1シフト演算器34からのシフト演算値EsをEOR回路31に出力させる選択信号を生成する。選択回路39は、各読み出しブロックRBにおける各データフレームDFの1列目と最終列を除く各列の1行目のバイトデータが入力されるときには、209シフト演算器35からのシフト演算値EsをEOR回路31に出力させる選択信号を生成する。選択回路39は、各読み出しブロックRBの各データフレームDFにおける最終列の1行目のバイトデータが入力されるときには、EOR回路38からのシフト演算値EsをEOR回路31に出力させる選択信号を生成する。選択回路39は、各読み出しブロックRBの各データフレームDFにおける1行1列目の先頭バイトデータが入力されるときには、セレクタ32からシフト演算値Esを出力しないようにする選択信号を生成する。図2に示すように、誤り訂正回路50内の訂正回路51は、外部バッファメモリ6からLDCシンドローム及びBISシンドロームを読み出し、これらLDCシンドローム及びBISシンドロームに基づいて、外部バッファメモリ6に格納されたデスクランブル処理済のデータフレームDFに対して誤り訂正処理を行う。訂正回路51は、各種シンドロームに基づいて算出した誤り位置及び誤り数値をEDC補正回路52に出力する。EDC補正回路52は、訂正回路51から入力される誤り位置及び誤り数値に基づいて、外部バッファメモリ6から補正メモリ部53に格納されるEDCシンドロームを補正する。EDCチェック回路54は、補正メモリ部53に格納されている補正後のEDCシンドロームを読み出し、EDCチェックを行う。ここで、図41及び図43に示したコントローラ110,130におけるEDCチェック回路116では、誤り訂正後のデータをホストコンピュータに転送すると同時に、EDCチェックを行っていた。そのため、従来のコントローラ110,130では、誤り訂正が正常に終了していない場合であっても、誤り訂正後のデータがホストコンピュータに転送される場合がある。これに対して、本実施形態のコントローラ10では、誤り訂正処理の終了後、直ちにEDCチェックが行われるため、誤った訂正を行ったデータをコンピュータ2に転送されることを抑制することができる。インターフェース回路60は、マイクロプロセッサ8の命令に基づいて、外部バッファメモリ6に格納された誤り訂正後のデータを読み出して上記コンピュータ2に出力する。外部バッファメモリ6は、図9に示すように、複数の格納ブロックから構成される。1つの格納ブロックは、13000Hバイトから構成されている。詳述すると、1つの格納ブロックには、そのアドレス000000H~00FFFFHに全データフレームDF0~DF31のユーザデータUD部分65536バイトが格納され、アドレス010000H~0103FFHにBISデータ720バイトが格納される。また、1つの格納ブロックには、そのアドレス010400H~0129FFHにLDCシンドローム9728バイトが格納され、アドレス012A00H~012DFFHにBISシンドローム768バイトが格納され、アドレス012E00H~12FFFHにEDCシンドローム128バイトが格納される。従って、1つの格納ブロックに、1つのECCクラスタECCc分のデータを格納することができる。なお、周知ではあるが、Hはその値が16進数であることを示す。次に、このように構成された光ディスクコントローラ10の動作について説明する。復調回路11は、BD4からディスクデータを読み込んで復調し、その復調済データECCクラスタECCcを、内蔵メモリ部12の第1及び第2バッファメモリM1,M2のうちデータ保存用として選択されているバッファメモリに格納する。なお、1つのバッファメモリには、ECCクラスタECCcを31個に分割した2480バイト分の分割ECCクラスタDECCが格納される。LDCシンドローム生成回路13は、アクセス用として選択されている第1バッファメモリM1あるいは第2バッファメモリM2から、分割ECCクラスタDECC内のLDCクラスタLDCcを並び替えながら、読み出しブロックRBとして読み出す。このとき、図4に示すように、読み出しブロックRBが任意の24328行×304列バイト分のデータから構成されるため、LDCシンドローム生成回路13は、列方向に8バイト分のデータ毎、すなわち読み出しブロックRBの列毎にLDCシンドロームを生成する。LDCシンドローム生成回路13は、生成したLDCシンドロームをLDCシンドロームの中間値としてLDCメモリ部14に格納する。次に、LDCシンドローム生成回路13は、第2読み出しブロックRB2以降の読み出しブロックRB第2~第31読み出しブロックRB2~RB31を読み出すとき、前回の読み出しブロックRBで生成した同一列のLDCシンドロームの中間値をLDCメモリ部14から読み出す。そして、LDCシンドローム生成回路13は、読み出したLDCシンドロームの中間値と現在の読み出しブロックRBの列方向に8バイト分のデータとからLDCシンドロームを生成し、該LDCシンドロームを新たなLDCシンドロームの中間値としてLDCメモリ部14に格納する。LDCメモリ部14では、1つのパリティ付加ブロックPB第1~第31読み出しブロックRB1~RB31の全データの読み出しが終了すると、バッファメモリM3及びバッファメモリM4におけるシンドローム保存用とシンドローム出力用の選択が切り替えられる。これにより、シンドローム保存用からシンドローム出力用に切り替わったバッファメモリには、1つのパリティ付加ブロックPBにおける列毎の最終的なLDCシンドロームが格納されることになる。シンドローム出力用に切り替えられたバッファメモリは、この列毎の最終的なLDCシンドロームを外部バッファメモリ6に格納する。一方、BISメモリ部15のデータ保存用に選択されているバッファメモリには、アクセス用として選択されている第1バッファメモリM1あるいは第2バッファメモリM2から、分割ECCクラスタDECC内のBISクラスタBIScが格納される。BISメモリ部15では、1つのBISクラスタBIScの全データの格納が終了すると、バッファメモリM5及びバッファメモリM6におけるデータ保存用とデータ出力用の選択が切り替えられる。次に、BISシンドローム生成回路16は、データ出力用に切り替えられたBISメモリ部15のバッファメモリM5あるいはバッファメモリM6から、BISクラスタBIScを読み出す。BISシンドローム生成回路16は、読み出したBISクラスタBIScに基づいてBISシンドロームを生成し、該BISシンドロームを外部バッファメモリ6に格納する。デスクランブル回路20は、上記LDCシンドローム生成回路13によるデータ読み出しと同時に、アクセス用として選択されている第1バッファメモリM1あるいはバッファメモリM2から、スクランブルデータsDuを第1~第27読み出しブロックRB1~RB27として列方向に読み出す。次に、デスクランブル回路20におけるデスクランブル処理を図7及び図10~図12に従って説明する。図10のステップS1において、偶数レジスタR2にスクランブル値SCの初期値S0が格納されるとともに、奇数レジスタR3にスクランブル値SCとしてS0γ108が格納される。ここで、奇数レジスタR3に初期値S0ではなく、S0γ108を格納した理由について説明する。図7に示すように、第1読み出しブロックRB1内の奇数データフレームDF例えば、データフレームDF1において最初に読み出されるスクランブルデータsDuの行番号uが108であるため、S0γ108を格納するようにした。すなわち、このスクランブルデータsD108は、各データフレームのスクランブル処理時における先頭データsD0よりも、スクランブル処理時において108バイト分だけ遅く処理されるデータである。そのため、初期値S0から108バイト分だけシフトさせて得られるS0γ108をスクランブル値SCとして奇数レジスタR3に格納するようにした。なお、初期値S0は、ディスクデータ内のECCクラスタECCcにおける物理セクタ番号に応じて予め設定されている値である。次に、デスクランブル回路20は、第1読み出しブロックRB1のデータフレームDF0偶数データフレームにおけるスクランブルデータsD0を読み出し、該スクランブルデータsD0をEOR回路21に入力するステップS2。このとき、選択回路28は、偶数レジスタR2からのスクランブル値SCをEOR回路21に出力させるための選択信号をセレクタ27に出力する。従って、EOR回路21には、スクランブル値SCとして初期値S0が入力される。EOR回路21は、スクランブルデータsD0と初期値S0の下位8ビットとの排他的論理和を取ってデスクランブルデータdD0を生成し、そのデスクランブルデータdD0を外部バッファメモリ6及びEDCシンドローム生成回路30に出力するステップS3。ここで使用されたスクランブル値SCは、1シフト演算器24及び209シフト演算器25にも入力される。なお、以下の説明において、EOR回路21の排他的論理和演算におけるスクランブル値SCの下位8ビットを、単にスクランブル値SCとするが、以後も同様に、EOR回路21では、スクランブルデータsDuとスクランブル値SCの下位8ビットとの排他的論理和が取られる。次に、ステップS4において、選択回路28は、入力されるクロック信号CLKのパルス数に基づいて、各読み出しブロックRBにおける1列分のデスクランブル処理が終了したかを判断する。選択回路28は、1列分のデスクランブル処理が終了していないと判断するとステップS4においてNO、ステップS5に移る。このとき、上記ステップS3においてデスクランブル回路20により読み出されたスクランブルデータをsDuとすると、次に読み出されるスクランブルデータがsDu1となる。すなわち、ステップS4からステップS5に移る場合には、各読み出しブロックRBにおける列方向にスクランブルデータが読み出され、読み出し順序がスクランブル処理時のデータ処理順序と同一になる。そこで、選択回路28は、ステップS5において、すなわち各読み出しブロックの2行目以降のデータがEOR回路21に入力されるときに、1シフト演算器24からのスクランブル値SCをEOR回路21に出力させるための選択信号をセレクタ27に出力する。これにより、EOR回路21には、1つ前に読み出されたスクランブルデータsDuの時に使用されたスクランブル値から、上記生成多項式Φxに従って1バイト分シフトさせて得られるスクランブル値SC=S0γuγ1が入力される。そして、EOR回路21は、デスクランブル回路20により次に読み出されるスクランブルデータsD1と、1シフト演算器24からのスクランブル値SC=S0γ1との排他的論理和を取って、デスクランブルデータdD1を生成するステップS3。このように、各読み出しブロックRBにおける1列分のデスクランブル処理が終了するまで、ステップS3~ステップS5が繰り返し実行される。なお、本実施形態では、以後、デスクランブル回路20によりスクランブルデータがsD2→sD3→sD4→sD5→sD6→sD7の順図7の実線の矢印参照に読み出されるため、デスクランブルデータdD2~dD7が下記式に示すように生成される。このようにデスクランブルデータdD7が生成されると、ステップS4において、選択回路28は、各読み出しブロックRBにおける1列分のデスクランブル処理が終了したと判断して、ステップS6に移る。次に、選択回路28は、各読み出しブロックRBにおける1つのデータフレーム分のデスクランブル処理が終了したかを判断するステップS6。選択回路28は、1つのデータフレーム分のデスクランブル処理が終了していないと判断するとステップS6においてNO、ステップS7に移る。このとき、上記ステップS3においてデスクランブル回路20により読み出されたスクランブルデータをsDuとすると、次に読み出されるスクランブルデータがsDu209となる。すなわち、ステップS6からステップS7に移る場合には、各読み出しブロックRBの同一データフレーム内において次の列の1行目のスクランブルデータが読み出され、読み出し順序がスクランブル処理時のデータ処理順序と異なるようになる。詳しくは、ステップS7に移ったときに読み出される次列の1行目のデータD2は、その1つ前に読み出されたデータD1よりも、スクランブル処理時において{[データブロックDBの行数1]-1つの読み出しブロックRBの行数=209}バイト分だけ遅く処理されるデータである。そのため、スクランブル値SCをスクランブル処理時の処理順序に合わせるように、上記データD1のときに使用したスクランブル値を生成多項式Φxに従って209バイト分シフトさせることで、正確にデスクランブル処理を行うことができる。そこで、選択回路28は、ステップS7において、すなわち各読み出しブロックの各データフレームにおける2列目以降の1行目のデータがEOR回路21に入力されるときに、209シフト演算器25からのスクランブル値SCをEOR回路21に出力させるための選択信号をセレクタ27に出力する。これにより、EOR回路21には、1つ前に読み出されたスクランブルデータsD7の時に使用されたスクランブル値S0γ7から、上記生成多項式Φxに従って209バイト分シフトさせて得られるスクランブル値SC=S0γ7γ209が入力される。続いて、EOR回路21は、デスクランブル回路20により次に読み出されるスクランブルデータsD216と、209シフト演算器25からのスクランブル値SC=S0×γ216との排他的論理和を取って、デスクランブルデータdD216を生成するステップS3。次に、前述のデータフレームDF0における1列目の処理と同様に、ステップS3~S5が繰り返し実行され、デスクランブル回路20によりスクランブルデータがsD217→sD218→sD219→sD220→sD221→sD222→sD223の順に読み出されるため、デスクランブルデータが下記式に示すように生成される。以後同様に、ステップS3~ステップS7が繰り返し実行され、第1読み出しブロックRB1のデータフレームDF0における各スクランブルデータに対するデスクランブル処理が実行される。そして、第1読み出しブロックRB1のデータフレームDF0における最終行最終列のスクランブルデータsD1951に対するデスクランブルデータdD1951=sD1951^S0γ1951が生成されると、選択回路28は、1つのデータフレーム分のデスクランブル処理が終了したと判断しステップS7においてYES、ステップS8に移る。次に、選択回路28は、デスクランブル処理の終了したデータフレームDFが最終データフレーム、すなわちデータフレームDF31であるかを判断するステップS8。選択回路28は、デスクランブル処理の終了したデータフレームがデータフレームDF31ではないと判断するとステップS8においてNO、次に読み出されるデータフレームDFが偶数データフレームであるかを判断するステップS9。選択回路28は、次データフレームDFが偶数データフレームであると判断するとステップS9においてYES、ステップS10に移り、奇数データフレームであると判断するとステップS9においてNO、ステップS11に移る。ここでは、次データフレームがデータフレームDF1奇数データフレームであるため、ステップS11に移る。続いて、各読み出しブロックRBの各奇数データフレームにおける1行1列目の先頭データが次に読み出されるため、選択回路28は、奇数レジスタR3からのスクランブル値SCここでは、S0γ108をEOR回路21に出力させるための選択信号を生成するステップS11。次に、図11に示すステップS12において、選択回路28は、次データフレームDFが最終奇数データフレーム、すなわちデータフレームDF31であるかを判断する。選択回路28は、次データフレームDFが最終奇数データフレームDF31でないと判断するとステップS12においてNO、ステップS3に戻る。このときのステップS3では、上記ステップ11において生成された選択信号がセレクタ27に入力されるため、EOR回路21には、スクランブル値SCとして奇数レジスタR3に格納されているS0γ108が入力される。また、EOR回路21には、第1読み出しブロックRB1のデータフレームDF1における1行1列目のスクランブルデータsD108が入力される。EOR回路21は、データフレームDF1のスクランブルデータsD108とスクランブル値S0γ108との排他的論理和を取ってデスクランブルデータdD108=sD108^S0γ108を生成する。以後、データフレームDF0のときと同様に、各読み出しブロックRBの各列の2行目以降のデータ例えば、スクランブルデータsD109がEOR回路21に入力されるときには、前回のスクランブル値を1バイト分シフトさせたスクランブル値SCが使用されてデスクランブル処理が行われる。また、各読み出しブロックRBの各データフレームにおける2列目以降の各列の1行目のデータ例えば、スクランブルデータsD324がEOR回路21に入力されるときには、前回のスクランブル値SCを209バイト分シフトさせたスクランブル値が使用されてデスクランブル処理が行われる。そして、図10に示すステップS3~ステップS7が繰り返し実行されて、第1読み出しブロックRB1のデータフレームDF1における最後のスクランブルデータsD1843図7参照に対するデスクランブルデータdD1843=sD1843^S0γ1843が生成されると、ステップS6からステップS8に移り、さらにその後にステップS9に移る。このとき、次データフレームがデータフレームDF2偶数データフレームであるためステップS10においてYES、ステップS10に移る。続いて、各読み出しブロックRBの各偶数データフレームにおける1行1列目の先頭データが次に読み出されるため、選択回路28は、偶数レジスタR2からのスクランブル値SCここでは、S0をEOR回路21に出力させるための選択信号を生成するステップS10。次に、図11に示すステップS13において、選択回路28は、次データフレームが最終偶数データフレーム、すなわちデータフレームDF30であるかを判断する。選択回路28は、次データフレームが最終偶数データフレームでないと判断するとステップS13においてNO、ステップS3に戻る。以後は、データフレームDF0及びデータフレームDF1のときの処理と同様に、データフレームDF2~DF29までデスクランブル処理が行われる。なお、同一の読み出しブロックRB内では、偶数データフレームデータフレームDF0,DF2,...,DF30の各々で使用されるスクランブル値SCの順序が同一である。また、同一の読み出しブロックRB内では、奇数データフレームデータフレームDF1,DF3,...,DF31の各々で使用されるスクランブル値SCの順序が同一である。次に、最終偶数データフレームDF30のデスクランブル処理が開始されるとステップS13においてYES、ステップS14に移る。ステップS14において、ステップS3~ステップS5が繰り返し実行され、データフレームDF30における1列目のデスクランブル処理が終了すると、1列目の最後のデータsD7のときに使用されたスクランブル値SCが1シフト演算器24を通じて偶数レジスタR2に格納される。従って、第1読み出しブロックRB1のときには、偶数レジスタR2にスクランブル値SC=S0γ7γ1=S0γ8が格納される。なお、第2読み出しブロックRB2のときには、偶数レジスタR2にスクランブル値SC=S0S16が格納される。ステップS14以降は、選択回路28において、209シフト演算器25からのスクランブル値SCここでは、S0γ216をEOR回路21に出力させるための選択信号が生成されてステップS16、ステップS3に戻る。以後、データフレームDF0の2列目以降と同様に、データフレームDF31の2列目以降のデスクランブル処理が実行される。次に、最終奇数データフレームDF31のデスクランブル処理が開始されるとステップS12においてYES、ステップS15に移る。ステップS15において、ステップS3~ステップS5が繰り返し実行され、データフレームDF31における1列目のデスクランブル処理が終了すると、1列目の最後のデータsD115のときに使用されたスクランブル値SCが1シフト演算器24を通じて奇数レジスタR3に格納される。従って、第1読み出しブロックRB1のときには、奇数レジスタR3にスクランブル値SC=S0γ115γ1=S0γ116が格納される。なお、第2読み出しブロックRB2のときには、奇数レジスタR3にスクランブル値SC=S0×S124が格納される。データフレームDF31の2列目以降のデスクランブル処理については、データフレームDF1のときと同様に実行される。そして、データフレームDF31の最終行最終列のスクランブルデータsD1843に対するデスクランブルデータdD1843=sD1843^S0γ1843が生成されるとステップS8においてYES、第1読み出しブロックRB1第r読み出しブロックのデスクランブル処理が終了する。第1読み出しブロックRB1のデスクランブル処理が終了すると、第2読み出しブロックRB2のデスクランブル処理が開始される。詳しくは、図10に示すステップS2から処理が開始され、選択回路28は、偶数レジスタR2からのスクランブル値SCここでは、S0γ8をEOR回路21に出力させる選択信号をセレクタ27に出力する。すなわち、選択回路28は、各読み出しブロックの各偶数データフレームにおける1行1列目の先頭データがEOR回路21に入力されるときに、偶数レジスタR2からのスクランブル値SCをEOR回路21に出力させるための選択信号をセレクタ27に出力する。これにより、EOR回路21には、前回の第1読み出しブロックRB1における最終偶数データフレームDF30の1列目の最終行のデータsD7に使用したスクランブル値を、生成多項式Φxに従って1バイト分シフトさせて得られるスクランブル値SC=S0γ8が入力される。従って、ステップS3において、偶数レジスタR2からのスクランブル値S0γ8と、第2読み出しブロックRB2のデータフレームDF0における1行1列目の先頭データsD8との排他的論理和をEOR回路21により取ることで、デスクランブルデータdD8=sD8^S0γ8が生成される。なお、奇数データフレームの場合についても、奇数レジスタR3にはスクランブル値としてS0γ116、すなわち第2読み出しブロックRB2の奇数データフレームにおける1行1列目の先頭データsD116に対するスクランブル値が格納されているため、上記先頭データsD116についても正確にデスクランブル処理が施される。以後同様に、第2~第13読み出しブロックRB2~RB13におけるデスクランブル処理が図10及び図11のフローチャートに従って実行される。次に、第14読み出しブロックRB14におけるデスクランブル処理について説明する。図7に示すデータフレームDF0,DF1を例に説明すると、第1~第13読み出しブロックRB1~RB13では、1~10列目がデータフレームDF0になるとともに、11~19列目がデータフレームDF1になる。なお、第15~第27読み出しブロックRB15~RB27では、1~9列目がデータフレームDF0になるとともに、10~19列目がデータフレームDF0になる。ところが、第14読み出しブロックRB14では、10列目が、データフレームDF0偶数データフレームの最終列になるとともに、データフレームDF1奇数データフレームの1列目になる。また、データフレームDF1については、10列目の5行目から該データフレームDF1におけるスクランブル処理時の先頭データsD0となる。このとき、第13読み出しブロックRB13における最終奇数データフレームのデスクランブル処理時に奇数レジスタR3に格納されるスクランブル値SCは、S0γ212である。そのため、第14読み出しブロックRB14のデータフレームDF1の先頭データsD0がEOR回路21に入力されるときに、図10及び図11のフローチャートに従って奇数レジスタR3からスクランブル値S0γ212がEOR回路21に入力されてしまうと、正確にデスクランブル処理を行うことができない。そこで、本実施形態では、第14読み出しブロックRB14における各偶数データフレームの最終列及び各奇数データフレームの1列目のデスクランブル処理を図12のフローチャートに従って実行するようにした。図12に示すステップS20において、第14読み出しブロックRB14の偶数データフレームここでは、データフレームDF0における最終列の1列前の列ここでは、9列目における最後のデータsD1839に対するデスクランブルデータdD1839=sD1839^S0γ1839が生成されると、ステップS21に移る。ステップS21において、選択回路28は、209シフト演算器25からのスクランブル値SC=S0γ1839γ209=S0γ2048をFF回路23に出力させる選択信号をセレクタ27に出力する。次に、EOR回路21は、デスクランブル回路20により次に読み出されるスクランブルデータここでは、スクランブルデータsD2048と、209シフト演算器25からのスクランブル値SCここでは、S0γ2048との排他的論理和を取って、デスクランブルデータdD2048を生成するステップS22。次に、ステップS23において、選択回路28は、第14読み出しブロックRB14の偶数データフレームにおける最終列のデスクランブル処理が終了したかを判断する。選択回路28は、偶数データフレームのデスクランブル処理が終了していないと判断するとステップS23においてNO、ステップS24に移る。続いて、偶数データフレームのデスクランブル処理が終了するまで、図10に示すステップS3~S5と同様に、ステップS22~S24が繰り返し実行される。そして、下記式に示すように、第14読み出しブロックRB14の各偶数データフレームにおける最終データsD2051に対するデスクランブルデータが生成されるとステップS23においてYES、ステップS25に移る。次に、選択回路28は、初期値レジスタR1からのスクランブル値SC、すなわち初期値S0をEOR回路21に出力させるための選択信号をセレクタ27に出力するステップS25。続いて、EOR回路21は、デスクランブル回路20により読み出される各奇数データフレームにおけるスクランブル処理時の先頭データsD0と、初期値レジスタR1からの初期値S0との排他的論理和を取って、デスクランブルデータdD0=sD0^S0を生成するステップS26。次に、ステップS27において、選択回路28は、第14読み出しブロックRB14の各奇数データフレームにおける1列目のデスクランブル処理が終了したかを判断する。選択回路28は、奇数データフレームの1列目のデスクランブル処理が終了していないと判断するとステップS27においてNO、ステップS28に移る。続いて、第14読み出しブロックRB14の各奇数データフレームにおける1列目のデスクランブル処理が終了するまで、図10に示すステップS3~S5と同様に、ステップS26~S28が繰り返し実行される。なお、第14読み出しブロックRB14の各奇数データフレームにおける2列目以降は、図10に示すステップS3~S7が繰り返し実行されることにより、デスクランブル処理が施される。そして、第14読み出しブロックRB14の各奇数データフレームにおける1列目の最終行のスクランブルデータsD4に対するデスクランブルデータdD4が生成されるとステップS27においてYES、ステップS29に移る。このステップS29おいて、現在のデータフレームDFが最終奇数データフレームデータフレームDF31であると、スクランブルデータsD4に使用したスクランブル値SCが1シフト演算器24を通じて奇数レジスタR3に格納される。すなわち、第14読み出しブロックRB14における最終奇数データフレームのデスクランブル処理時に奇数レジスタR3に格納されるスクランブル値SCは、S0γ4γ1=S0γ5となる。以後、第15~第27読み出しブロックRB15~RB27におけるデスクランブル処理が図10及び図11のフローチャートに従って実行される。このように図10~図12のフローチャートに従って、第1~第27読み出しブロックRB1~RB27におけるデスクランブル処理が終了すると、下記式で示すようにデスクランブルデータdDuを生成することができる。次に、EDCシンドローム生成回路30におけるEDCシンドローム生成方法を図13及び図14に従って説明する。このEDCシンドローム生成回路30には、上記デスクランブル回路20からデスクランブルデータdDuがデスクランブル処理順に入力される。すなわち、EDCシンドローム生成回路30には、デスクランブルデータdDuが各読み出しブロックRB1~RB27毎に入力される。具体的には、第1読み出しブロックRB1の偶数データフレームでは、デスクランブルデータがバイトデータとして、dD0→dD1→...→dD7→dD216→dD217→...→dD223→dD432→...→dD1951という順にEDCシンドローム生成回路30に入力される。また、第1読み出しブロックRB1の奇数データフレームでは、デスクランブルデータがバイトデータとして、dD108→dD109→...dD115→dD324→dD325→...→dD331→dD540→...→dD1843という順にEDCシンドローム生成回路30に入力される。図13に、EDCシンドローム生成回路30に入力されるバイトデータの配置を、該バイトデータを多項式表現Xnしたときの次数nで示した。なお、以下の説明では、バイトデータを多項式で表現する。また、同一読み出しブロックRB内では、偶数データフレームの演算方法はそれぞれ共通しているため、ここではデータフレームDF0を例にして説明する。また、同一読み出しブロックRB内では、奇数データフレームの演算方法はそれぞれ共通しているため、ここではデータフレームDF1を例にして説明する。図14に示すステップS30の初期値設定において、選択回路39は、セレクタ32からシフト演算値Esが出力されないようにする選択信号をセレクタ32に出力する。続いて、ステップS31において、デスクランブル回路20からEOR回路31にバイトデータXnここでは、X2051が入力される。このとき、セレクタ32からEOR回路31にシフト演算値Esが入力されないため、EOR回路31は、バイトデータX2051をEDC演算値E11としてFF回路33を通じて各種演算器34~37に出力する。次に、ステップS32において、選択回路39は、入力されるクロック信号CLKのパルス数に基づいて、各読み出しブロックRBにおける1列分例えば、X2051~X2044のEDC演算処理が終了したかを判断する。選択回路39は、1列分のEDC演算処理が終了していないと判断するとステップS32においてNO、ステップ33に移る。このとき、上記ステップS31においてEOR回路31に入力されるバイトデータをXnとすると、次に入力されるバイトデータがXn-1となる。すなわち、ステップS32からステップS33に移る場合には、各読み出しブロックRBにおける列方向に次のバイトデータが入力され、データ入力順序がEDC付加時のデータ処理順序と同一になる。そこで、選択回路39は、ステップS33において、すなわち各読み出しブロックRBにおける各列の2行目以降のバイトデータがEOR回路31に入力されるときに、1シフト演算器24からのスクランブル値SCをEOR回路31に出力させるための選択信号をセレクタ32に出力する。これにより、EOR回路31には、1つ前に入力されたバイトデータX2051のときに算出されたEDC演算値E11に対して、1次のベクターβ1による重み付けをして得られるシフト演算値Es=β1E11が入力される。そして、EOR回路31は、次に入力されるバイトデータX2050と、1シフト演算器34からのシフト演算値Es=β1E11の下位8ビットとの排他的論理和を取って、新たなEDC演算値E12を算出する。なお、以下の説明において、EOR回路31の排他的論理和演算におけるシフト演算値Esの下位8ビットを、単にシフト演算値Esとするが、以後も同様に、EOR回路31では、バイトデータXnとシフト演算値Esの下位8ビットとの排他的論理和が取られる。続いて、1列分のEDC演算処理が終了するまで、これらステップS31~S33が繰り返し実行される。なお、本実施形態では、以後、バイトデータがX2049→X2048→...→X2045→X2044の順にEOR回路31に入力されるため、EDC演算値Ercが下記式に示す順番で算出される。このように、第1読み出しブロックRB1のデータフレームDF0における1列目の最終行のバイトデータX2044に対するEDC演算処理が終了するとステップS32においてYES、ステップS34に移る。次に、選択回路39は、209シフト演算器35からのシフト演算値Es=β209E18をEOR回路31に出力させるための選択信号を生成するステップS34。続いて、ステップS35において、選択回路39は、各読み出しブロックRB1における1つのデータフレームDF分のEDC演算処理が終了したかを判断する。選択回路39は、1つのデータフレームDF分のEDC演算処理が終了していないと判断するとステップS35においてNO、ステップS36に移る。続いて、選択回路39は、次の列が各データフレームの最終列例えば、第1読み出しブロックRB1のデータフレームDF0の場合には、次列が10列目であるかを判断する。選択回路39は、次列が最終列でないと判断するとステップS36においてNO、ステップS31に戻る。続いて、EOR回路31は、次に入力されるバイトデータX1835と、209シフト演算器35からのシフト演算値Es=β209E18との排他的論理和を取って、下記式に示すEDC演算値Er9を算出する。このように各読み出しブロックの各データフレームDFにおける1列目及び最終列を除く各列の1行目のバイトデータXnが入力されたときには、その前に入力されたバイトデータXn209のときに算出されたEDC演算値Ercに対して、209シフト演算器35を通じて209次のベクターβ209による重み付けを行うようになっている。ここで、209次のベクターβ209による重み付けする理由について説明する。例えば、第1読み出しブロックRB1のデータフレームDF0の2列目における1行目のデータX1835は、同1列目の最終行のデータX2044よりも、EDC付加時においてデータブロックDBにおける全バイト数1-1つの読み出しブロックの列方向におけるバイト数=209バイト分だけ遅く処理されるデータである。すなわち、バイトデータX2051~X2044は、EDC付加時と同様のデータ処理順序でEDC演算した場合には、バイトデータX1835が入力されるまでに、1次のベクターβ1による重み付けが209回行われる。そこで、本実施形態では、前列の最終行のデータのときに算出されたEDC演算値Ercに対して、209バイト分のベクターβベクターβ209による重み付けをすることで、デスクランブル処理を行うようにした。以後同様に、ステップS31~S36が繰り返し実行され、第1読み出しブロックRB1のデータフレームDF0における9列目の最後のバイトデータX31672クロック目に対するEDC演算処理が終了すると、次列が最終列10列目になるためステップS36においてYES、ステップS37に移る。続いて、選択回路39は、EOR回路38からのシフト演算値Es=β209Erc^EDCsをEOR回路31に出力させるための選択信号をセレクタ32に出力する。但し、ここではEDCメモリ部40からEOR回路38に入力されるEDCシンドロームの中間値EDCsが0であるため、EOR回路38からのシフト演算値Esはβ209E172となる。従って、EOR回路31は、ステップS31において、次に入力されるバイトデータX107と、EOR回路38からのシフト演算値Es=β209E172との排他的論理和を取って、下記式に示すEDC演算値E173を算出する。以下、ステップS31~S33が繰り返し実行され、下記式に示すように、第1読み出しブロックRB1のデータフレームDF0における最終列の最終行のバイトデータX10080クロック目に対するEDC演算値E180が算出されるとステップS35においてYES、ステップS38に移る。続いて、選択回路39は、ステップS38において、現在のデータフレームが第14読み出しブロックRB14の偶数データフレームであるか判断し、ステップS39において、第27読み出しブロックRB27の偶数データフレームであるか判断し、ステップS40において、第27読み出しブロックRB27の奇数データフレームであるか判断する。ここでは、現在EDC演算処理を行っているデータフレームDFが第1読み出しブロックRB1のデータフレームDF0偶数データフレームであるためステップS38~S40において全てNO、ステップS41に移る。次に、上記ステップS34において算出されたEDC演算値Ercここでは、E180に対して、1シフト演算器34を通じてベクターβ1による重み付けが行われ、EDCシンドロームの中間値EDCs=β1E180が算出されるステップS41。続いて、上記算出された中間値EDCsがデータフレームDF0におけるEDCシンドロームの中間結果としてEDCメモリ部40に格納されるステップS42。次に、ステップS43において、選択回路39は、現在EDC演算処理を行っているデータフレームDFが最終読み出しブロックRB27の最終データフレームDF31であるかを判断する。ここでは、現在処理しているのは第1読み出しブロックRB1のデータフレームDF0であるため、ステップS30に戻り、次のデータフレームDF1のEDC演算処理に移る。奇数データフレームであるデータフレームDF1のEDC演算処理についても、基本的には、前述したデータフレームDF0偶数データフレームにおけるEDC演算処理と同様に行われる。すなわち、まず各読み出しブロックRBにおけるデータフレームDF1の最初に入力されるバイトデータX1943が1クロック目のEDC演算値E11となる。次いで、EOR回路31は、各読み出しブロックRBの各データフレームにおける各列の2行目以降のバイトデータXnがEOR回路31に入力されるときには、直前に入力されたバイトデータXn1のときに算出されたEDC演算値Ercに対し1次のベクターβ1による重み付けをして得られるシフト演算値EsがEOR回路31に入力される。また、各読み出しブロックRBの各データフレームDFにおける1列目及び最終列を除く各列の1行目のバイトデータXnがEOR回路31に入力されるときには、直前に入力されたバイトデータXn209のときに算出されたEDC演算値Ercに対し209次のベクターβ209による重み付けをして得られるシフト演算値EsがEOR回路31に入力される。これらのEDC演算処理によって、下記式に示すEDC演算値Ercが順番に算出される。このように、第1読み出しブロックRB1のデータフレームDF1における最終列の最終行のバイトデータX20872クロック目に対するEDC演算値E172が算出されると、該EDC演算値E172に対して、1シフト演算器34を通じてベクターβ1による重み付けが行われ、中間値EDCsが生成されるステップS41。そして、上記生成された中間値EDCs=β1E172がデータフレームDF1におけるEDCシンドロームの中間結果としてEDCメモリ部40に格納されるステップS42。以後同様に、ステップS30~S43が繰り返し実行され、第1読み出しブロックRB1内のデータフレームDF2~DF31のEDC演算処理が実行される。次に、第2読み出しブロックRB2のデータフレームDF0におけるEDC演算処理について説明する。1クロック目から72クロック目までは、ステップS30~S36が繰り返し実行され、下記式に示すEDC演算値E21~E272が算出される。最終列、すなわち10列目の1列前の9列目の最後のバイトデータX308のEDC演算処理が終了すると、ステップS37において、選択回路39は、EOR回路38からのシフト演算値Es=β209E272^EDCsをEOR回路31に出力させる選択信号をセレクタ32に出力する。このとき、EDCメモリ部40からEOR回路38に入力される中間値EDCsは、前回の第1読み出しブロックRB1における同一のデータフレームDF0のEDC演算処理時にEDCメモリ部40に格納した値=β1E180である。従って、第2読み出しブロックRB2のデータフレームDF0における73クロック目のEDC演算値E273は、下記式により算出される。以下、ステップS31~S33が繰り返し実行され、下記式に示すように、第2読み出しブロックRB2のデータフレームDF0における最終行最終列のバイトデータX9280クロック目のEDC演算値E280が算出されると、ステップS41に移る。次に、ステップS41において、上記算出されたEDC演算値E280に対して、1シフト演算器34を通じてベクターβ1による重み付けが行われ、中間値EDCsが算出される。そして、上記算出された中間値EDCs=β1E280がデータフレームDF0の新たな中間結果としてEDCメモリ部40に格納されるステップS42。以下同様に、ステップS30~S43が繰り返し実行され、第2~第13読み出しブロックRB2~RB13内の各データフレームDF0~DF31のEDC演算処理が実行される。次に、第14読み出しブロックRB14の偶数データフレームにおいて、76クロック目に入力される入力多項式の次数が最も低いバイトデータX0に対するEDC演算値E1476が下記式のように算出されるとステップS38においてYES、ステップS44に移る。なおここで、偶数データフレームDF0において、入力多項式の次数が最も低いバイトデータX0とは、EDC付加時と同様のデータ処理順序でEDC演算をした場合に、該データフレームDF0内で最も遅く入力されるデータである。次に、ステップS44において、上記算出されたEDC演算値E1476に対し、-211シフト演算器37を通じて-211バイト分のベクターβベクターβ-211による重み付けをする第1補正演算を行って、EDCシンドロームの中間値EDCs=β-211E1476を算出する。続いて、上記算出された中間値EDCsが新たなデータフレームDF0の新たな中間結果としてEDCメモリ部40に格納されるステップS42。以下同様に、ステップS30~S44が繰り返し実行され、第14~第26読み出しブロックRB14~RB26内の各データフレームDF0~DF31のEDC演算処理が実行される。次に、第27読み出しブロックRB27の偶数データフレーム例えば、データフレームDF0における最終行最終列のバイトデータX10872クロック目に対するEDC演算値E2772が下記式のように算出されるとステップS39においてYES、ステップS45に移る。次に、ステップS45において、上記算出されたEDC演算値E2772に対し、108シフト演算器36を通じて108バイト分のベクターβ1ベクターβ108による重み付けをする第2補正演算を行って、下記1式に示すデータフレームDF0における最終的なEDCシンドロームEDCS=β108E2772を算出する。そして、上記算出されたEDCシンドロームEDCSがEDCメモリ部40に格納されるステップS42。ここで、第1補正演算と第2補正演算について説明する。まず、第2補正演算から説明する。本実施形態では、第27読み出しブロックRB27の偶数データフレームにおいて最後に入力されるバイトデータはX108である。このバイトデータX108は、EDC付加時と同様のデータ処理順序でEDC演算した場合において、その演算処理において最後に入力されるバイトデータX0最終バイトデータよりも、108バイト分だけ早く入力されるデータである。換言すると、バイトデータX108は、EDC付加時と同様のデータ処理順序でEDC演算した場合には、最後のバイトデータX0が入力されるまでに、1次のベクターβ1による重み付けが108回行われるデータである。ところが、本実施形態では、偶数データフレームにおいてバイトデータX108が最後に入力されるため、そのバイトデータX108が入力されたときに算出されるEDC演算値E2772では、バイトデータX108に対するベクターβ1による重み付けが一度も行われていない。そこで、本実施形態では、第27読み出しブロックRB27の各偶数データフレームにおける最終行最終列のデータX108が入力されたときのEDC演算値E2672に対し、108バイト分のベクターβベクターβ108による重み付けを行うようにした。次に、第1補正演算について説明する。本実施形態では、第14読み出しブロックRB14の偶数データフレームにおける最後のバイトデータX0が入力されたときに算出されるEDC演算値E1476は、下記式のようになる。上記式から明らかなように、上記EDC演算値E1476が算出されるまでに入力されたバイトデータについては、上記EDC演算値E1476が算出された時点で所望の次数のベクターβによって重み付けが行われている。例えば、偶数データフレームにおいて最初に入力されるバイトデータX2051は、2051次のベクターβ2051による重み付けが行われている。しかしながら、本実施形態では、第14読み出しブロックRB14以降の第15~第27読み出しブロックRB15~RB27におけるEDC演算において、上記EDC演算値E1476に対し、1次のベクターβ1による重み付けが103回行われる。すなわち、上記EDC演算値E1476に対し、{残りの読み出しブロックRBにおける列方向の全バイト数-1}回のベクターβ1による重み付けが行われる。さらに、上述した第2補正演算により、上記EDC演算値E1476に対して108次のベクターβ108による重み付けが行われる。そのため、第15~第27読み出しブロックRB15~RB27におけるEDC演算及び第2補正演算が終了すると、上記EDC演算値E1476が算出されるまでに入力されたバイトデータに対し、ベクターβ1による重み付けがEDC付加時と同様の処理順序でEDC演算した場合よりも211回多く行われることになる。そこで、本実施形態では、第14読み出しブロックRB14の各偶数データフレームにおける最後のデータX0最終デスクランブルデータが入力されたときのEDC演算値E1476に対し、-211バイト分のベクターβベクターβ-211による重み付けを行うようにした。なお、奇数データフレームについては、前述した第1読み出しブロックRB1におけるデータフレームDF1のEDC演算処理と同様に、すなわちステップS44やステップS45のような特殊な補正演算第1及び第2補正演算を施すことなく、上記1式と同様のEDCシンドロームを生成することができる。従って、データフレームDF1奇数データフレームの場合には、第27読み出しブロックRB27における最終列最終行のバイトデータX0のEDC演算値E2780が算出されるとステップS40においてYES、上記算出されたEDC演算値E2780がそのままEDCシンドロームとしてEDCメモリ部40に格納されるステップS42。以下同様に、ステップS30~S45が繰り返し実行され、各データフレームDF0~DF31の最終的なEDCシンドロームEDCSが生成されて、該EDCシンドロームEDCSがEDCメモリ部40に格納される。EDCメモリ部40では、シンドローム保存用に選択されているバッファメモリに全データフレームDF0~DF31の最終的なEDCシンドロームEDCSが格納されると、バッファメモリM7及びバッファメモリM8におけるシンドローム保存用とシンドローム出力用の選択が切り替えられる。これにより、シンドローム保存用からシンドローム出力用に切り替わったバッファメモリには、全データフレームDF0~DF31のEDCシンドロームEDCSが格納されることになる。そして、シンドローム出力用に切り替えられたバッファメモリは、全データフレームDF0~DF31のEDCシンドロームEDCSを外部バッファメモリ6に格納する。1つのパリティ付加ブロックPB分のデスクランブルデータと、LDCシンドロームと、BISシンドロームと、EDCシンドロームとが外部バッファメモリ6に格納されると、誤り訂正回路50は、外部バッファメモリ6からLDCシンドローム及びBISシンドロームを読み出す。誤り訂正回路50内の訂正回路51は、読み出したLDCシンドローム及びBISシンドロームに基づいて、ユークリッド互除演算により誤り位置多項式と数値多項式とを算出する。次に、訂正回路51は、算出した誤り位置多項式と数値多項式とに基づいて、誤り位置及び誤り数値を算出する。続いて、訂正回路51は、算出した誤り位置及び誤り数値に基づいて、外部バッファメモリ6に格納されたデスクランブル処理済のデータフレームDFに対して誤り訂正処理を行うとともに、算出した誤り位置及び誤り数値をEDC補正回路52に出力する。次に、EDC補正回路52は、訂正回路51から入力される誤り位置及び誤り数値に基づいて、外部バッファメモリ6から補正メモリ部53に格納されるEDCシンドロームを補正する。そして、EDCチェック回路54は、補正メモリ部53から補正後のEDCシンドロームを読み出し、誤り訂正が正常に終了されたかをチェックする。EDCチェック回路54において誤り訂正が正常に終了されたことが確認されると、コントローラ10は、マイクロプロセッサ8の命令に基づいて、外部バッファメモリ6に格納された誤り訂正後のデータを、インターフェース回路60を介してコンピュータ2に出力する。以上説明した本実施形態によれば、以下の効果を奏することができる。1内蔵メモリ部12に対して、LDCシンドローム生成回路13、BISシンドローム生成回路16及びデスクランブル回路20がそれぞれアクセスし、各回路13,16,20は、生成したLDCシンドローム、BISシンドローム及びデスクランブルデータdDuを外部バッファメモリ6に格納するようにした。これにより、図41に示すコントローラ110よりも外部バッファメモリ6へのアクセス量を減らすことができる。詳しくは、図41に示すコントローラ110では、バッファメモリ120に対して、a復調回路111からのECCクラスタECCcの入力、bLDCシンドローム生成回路112によるLDCクラスタLDCcの読み出し、cBISシンドローム生成回路113によるBISクラスタBIScの読み出し、d誤り訂正回路からの誤り訂正処理、eデスクランブル回路115による誤り訂正処理済のLDCクラスタLDCcの読み出し、という5種類のアクセスがあった。すなわち、ECCクラスタECCc76880バイトの3個分に略相当するデータ量合計219299バイトのバッファメモリ120へのアクセスがあった。これに対して、本実施形態のコントローラ10では、外部バッファメモリ6に対して、AデスクランブルデータdDu65536バイトの入力、BLDCシンドローム9728バイトの入力、CBISシンドローム1488バイトの入力、DEDCシンドローム128バイトの入力、ELDCシンドロームの読み出し、FBISシンドロームの読み出し、G誤り訂正後のデスクランブルデータの読み出し、という7種類のアクセスがある。アクセスの種類は多いものの、各々のアクセスにおけるデータ量が少ない。すなわち、全体としては、ECCクラスタECCcの2個分に略相当するデータ量合計152272バイトが外部バッファメモリ6に対してアクセスされる。従って、外部バッファメモリ6への全体のアクセス量が従来のコントローラ110に比べて大幅に低減される。これにより、外部バッファメモリ6の利用帯域を減らすことができるため、転送速度の高速化に対応させやすくなる。これらにより、外部バッファメモリ6として、安価で大容量低速なメモリを使用しても、所望の速度によるデータ転送を実現することができる。さらに、このときLDCシンドローム生成回路13及びデスクランブル回路20は、内蔵のメモリ内蔵メモリ部12に対しては高速アクセスが可能という性能があるため、第1及び第2デインターリーブ処理を施しながらLDCクラスタを読み出しても、効率良く高速に内蔵メモリ部12から各データを読み出すことができる。これにより、コントローラ110よりも誤り訂正処理に要する時間を短縮することができる。2内蔵メモリ部12に、1つのECCクラスタECCcが複数個に分割された分割ECCクラスタDECCを格納するようにした。また、デスクランブル回路20に、分割ECCクラスタDECC内のデータブロックDB毎に入力されるデータに対して正確にデスクランブル処理が実行できるように、1シフト演算器24及び209シフト演算器25を設けるようにした。これらにより、内蔵メモリ部12の各バッファメモリM1,M2を、1つの分割ECCクラスタDECC2480バイトを格納できるメモリ容量とすることができる。従って、図43に示すコントローラ130のように、内蔵の大容量76880バイトのメモリを設ける必要がなくなる。そのため、内蔵メモリ部のメモリ容量の増大によって発生する回路規模の増大を抑制することができる。また、デスクランブル回路20によるデスクランブル処理を、LDCシンドローム生成回路13によるLDCシンドローム生成及びBISシンドローム生成回路16によるBISシンドローム生成と並行して実行することができるため、誤り訂正処理に要する時間を短縮することができる。これらにより、回路規模の増大を抑制しつつも、外部バッファメモリ6へのアクセス量を低減することができる。3EDCシンドローム生成回路30に、分割ECCクラスタDECC毎に入力されるデータに対して正確にEDC演算処理重み付けができるように、1シフト演算器34、209シフト演算器35、108シフト演算器36及びEOR回路38を設けるようにした。これにより、EDCシンドローム生成回路30において、デスクランブル回路20から直接入力されるデスクランブルデータdDuに基づいてEDCシンドロームEDCSを生成することができる。従って、LDCシンドローム生成回路13及びBISシンドローム生成回路16によるLDCシンドローム生成及びBISシンドローム生成と並行して、EDCシンドローム生成回路30によるEDCシンドローム生成を実行することができる。そのため、誤り訂正処理に要する時間を短縮することができる。4デスクランブル回路20は、各読み出しブロックの各偶数データフレームにおける1列1行目の先頭スクランブルデータに対するスクランブル値SCを格納する偶数レジスタR2を備えた。また、デスクランブル回路20は、各読み出しブロックの各奇数データフレームにおける1列1行目の先頭スクランブルデータに対するスクランブル値SCを格納する奇数レジスタR3を備えた。これにより、各読み出しブロックの各偶数データフレーム及び各奇数データフレームにおける先頭スクランブルデータに対するスクランブル値を予め算出してメモリ等に格納しておく必要がなくなる。5デスクランブル回路20は108シフト演算器26を備えた。この108シフト演算器26に初期値S0を入力することにより、第1読み出しブロックRB1の各奇数データフレームにおける1行1列目の先頭スクランブルデータに対するスクランブル値SC=S0γ108を簡便に生成することができる。6EDCシンドローム生成回路30にて生成される各データフレーム毎のEDCシンドロームの中間値EDCsを格納するEDCメモリ部40を設けた。これにより、各データフレームのEDCシンドローム生成に共通の回路を使用することができるため、各データフレーム毎のシンドローム生成回路を設ける必要がなくなるため、回路規模の増大を抑制することができる。なお、なお、EDCメモリ部40の各バッファメモリのメモリ容量は、各データフレーム毎のEDCシンドローム128バイトを格納できる容量であり、従来の内蔵メモリの容量76880バイトに比べると小容量であるため、回路規模の増大が抑制される。7LDCシンドローム生成回路13にて生成される各列毎のLDCシンドロームの中間値を格納するLDCメモリ部14を設けた。これにより、各列のLDCシンドローム生成に共通の回路を使用することができるため、各列毎のシンドローム生成回路を設ける必要がなくなるため、回路規模の増大を抑制することができる。なお、なお、LDCメモリ部14の各バッファメモリのメモリ容量は、各列毎のLDCシンドローム9728バイトを格納できる容量であり、従来の内蔵メモリの容量76880バイトに比べると小容量であるため、回路規模の増大が抑制される。8全BISクラスタBIScを格納するBISメモリ部15を設けた。これにより、BISシンドローム生成回路16は、BISメモリ部15から全BISクラスタBIScを連続して読み出し、該BISクラスタBIScに基づいてBISシンドロームを生成することができる。従って、BISシンドローム生成回路16によりBISシンドロームを効率良く生成することができる。なお、BISメモリ部15の各バッファメモリのメモリ容量は、全BISクラスタ1488バイトを格納できる容量であり、従来の内蔵メモリの容量76880バイトに比べると小容量であるため、回路規模の増大が抑制される。9内蔵メモリ部12、LDCメモリ部14、BISメモリ部15及びEDCメモリ部40を、2つのバッファメモリから構成した。そして、例えば内蔵メモリ部12であれば、一方のバッファメモリをデータ保存用として、他方のバッファメモリをアクセス用として使用するようにした。これにより、復調回路11からのデータの格納と、内蔵メモリ部12からのデータの読み出しとを同時に行うことができる。従って、BD4からのディスクデータの読み出しを連続的に行うことができる。同様に、LDCシンドローム生成回路13からのLDCシンドロームの中間値の格納を連続的に行うことができ、内蔵メモリ部12からのBISクラスタBIScの読み出しを連続的に行うことができ、EDCシンドローム生成回路30からのEDCシンドロームの中間値EDCsの格納を連続的に行うことができる。また、内蔵メモリ部12の場合には、2つのバッファメモリM1,M2から構成するようにした場合、回路規模の増大を抑制するという効果がより顕著になる。詳しくは、図43に示すコントローラ130では、BDから連続的に複数個のECCクラスタECCcが読み出されるときに、それら複数個のECCクラスタECCcを連続的に読み出すためには、大容量76880バイトの内蔵メモリ131を2個設ける必要があった。これに対して、本実施形態の内蔵メモリ部12は、そのメモリ容量が合計4960バイトであるため、回路規模の増大を効果的に抑制することができる。10EDCシンドローム生成回路30により生成されたEDCシンドロームEDCSを全て補正メモリ部53に格納した上で、EDC補正回路52により補正メモリ部53に格納されたEDCシンドロームを補正するようにした。これにより、補正メモリ部53に格納された全EDCシンドロームEDCSに対して連続的に補正を行うことができるため、処理効率を向上させることができる。第2実施形態以下、本発明を具体化した第2実施形態について、図22~図25に従って説明する。この実施形態のデスクランブル回路及びEDCシンドローム生成回路の回路構成、それら回路におけるデータの処理順序が上記第1実施形態と異なっている。以下、第1実施形態との相違点を中心に説明する。まず、デスクランブル回路70の回路構成について図22に従って説明する。本実施形態のデスクランブル回路70のスクランブル値生成回路71は、第1実施形態のデスクランブル回路20のスクランブル値生成回路22に、偶数作業レジスタR4と奇数作業レジスタR5とを新たに設けた。偶数作業レジスタR4には、各読み出しブロックRB内の最終偶数データフレームDF30における各列の最終行のデータに対するスクランブル値SCが209シフト演算器25を通じて格納される。一方、奇数作業レジスタR5には、各読み出しブロックRB内の最終奇数データフレームDF31における各列の最終行のデータに対するスクランブル値SCが209シフト演算器25を通じて格納される。これら奇数作業レジスタR4及び偶数作業レジスタR5は、格納したスクランブル値SCをセレクタ27に出力する。セレクタ27には、選択回路72からの選択信号が入力される。セレクタ27は、選択回路72からの選択信号に基づいて、1シフト演算器24及び各レジスタR1~R5から入力されるスクランブル値のうち1つのスクランブル値SCをFF回路23に出力する。なお、選択回路28は、入力されるクロック信号CLKのパルス数に応じて選択信号を生成し、その選択信号をセレクタ27に出力する。例えば、選択回路72は、各読み出しブロックRBの各偶数データフレームにおける2列目以降の各列の1行目のデータがEOR回路21に入力されるときには、偶数作業レジスタR4からのスクランブル値SCをEOR回路21に出力させる選択信号を生成する。選択回路72は、各読み出しブロックRBの各奇数データフレームにおける2列目以降の各列の1行目のデータがEOR回路21に入力されるときには、奇数作業レジスタR5からのスクランブル値SCをEOR回路21に出力させる選択信号を生成する。次に、EDCシンドローム生成回路80の回路構成について図23に従って説明する。本実施形態のEDCシンドローム生成回路80は、第1実施形態のEDCシンドローム生成回路30に作業メモリ81を新たに設けた。作業メモリ81には、各読み出しブロックRBの各データフレームにおける各列の最終行のデータのときに算出されたEDC演算値Ercが209シフト演算器25を通じてシフト演算値Esとして格納される。この作業メモリ81は、格納したシフト演算値EsをEOR回路38及びセレクタ32に出力する。セレクタ32には、選択回路82からの選択信号が入力される。セレクタ27は、選択回路82からの選択信号に基づいて、1シフト演算器34、EOR回路38及び作業メモリ81から入力されるスクランブル値のうちの1つのスクランブル値SCをEOR回路31に出力する、あるいはEOR回路31にシフト演算値Esを出力しない。なお、選択回路82は、入力されるクロック信号CLKのパルス数に応じて選択信号を生成し、その選択信号をセレクタ32に出力する。例えば、選択回路82は、各読み出しブロックRBの各データフレームDFにおける1列目と最終列とを除く各列の1行目のデータがEOR回路31に入力されるときには、作業メモリ81からのシフト演算値EsをEOR回路31に出力させる選択信号を生成する。なお、選択回路82は、各読み出しブロックRBの各データフレームにおける1行1列目の先頭データがEOR回路31に入力されるときには、セレクタ32からシフト演算値Esを出力しないようにする選択信号を生成する。また、選択回路82は、各読み出しブロックRBの各データフレームにおける最終列の1行目のデータがEOR回路31に入力されるときには、EOR回路38からのシフト演算値EsをEOR回路31に出力させる選択信号を生成する。次に、外部バッファメモリ6に格納される各データフレームDF0~DF31のデスクランブルデータdDuの格納配置について図9に従って説明する。図9に示すように、デスクランブル回路70によりデスクランブル処理の施された各データフレームDF0~DF31のデスクランブルデータdDuは、32行×64列のブロックとして列方向に4つのデータフレームDF毎に格納される。具体的には、データフレームDF0,DF1,DF2,DF3が列方向に並んで格納されるとともに、データフレームDF4,DF5,DF6,DF7が列方向に並んで格納される。これにより、行方向には、データフレームDF0,DF4,DF8,DF12,DF16,DF20,DF24,DF28が並んで格納されるとともに、データフレームDF1,DF5,DF9,DF13,DF17,DF21,DF25,DF29が並んで格納される。また、行方向には、DF2,DF6,DF10,DF14,DF18,DF22,DF26,DF30が並んで格納されるとともに、DF3,DF7,DF11,DF15,DF19,DF23,DF27,DF31が並んで格納される。次に、このように構成された光ディスクコントローラ10の動作について説明する。ここでは、とくにデスクランブル回路70及びEDCシンドローム生成回路80におけるデータ処理順序について詳述する。図24aに示すように、デスクランブル回路70は、内蔵メモリ部12から第1読み出しブロックRB1のデータフレームDF0における1列目のスクランブルデータsDuを列方向に読み出し、次にデータフレームDF4における1列目のスクランブルデータsDuを列方向に読み出す。続いて、デスクランブル回路70は、データフレームDF8,DF12,DF16,DF20,DF24,DF28における1列目のスクランブルデータsDuを順にそれぞれ列方向に読み出す。デスクランブル回路70は、読み出したスクランブルデータsDuに対して順番にデスクランブル処理を施し、デスクランブルデータdDuを外部バッファメモリ6に格納するとともに、デスクランブルデータdDuをEDCシンドローム生成回路80に出力する。デスクランブル処理については、上記第1実施形態と同様に、各偶数データフレームDFの1行1列目の先頭データsD0に対して、偶数レジスタR2に格納された初期値S0を使用してデスクランブルデータdD0を生成する。続いて、第1読み出しブロックRB1の各偶数データフレームDFにおける1列目のスクランブルデータsD1~sD7に対しては、前回のスクランブル値を1バイト分シフトさせたスクランブル値SCを使用してデスクランブルデータdD1~dD7を生成する。一方、デスクランブル回路70から外部バッファメモリ6へのデータ格納方法については、図25に示すように、データフレームDF0,DF4,DF8,DF12,DF16,DF20,DF24,DF28における1列目のデスクランブルデータdDuを、外部バッファメモリ6の同一行内1行目に格納する。すなわち、本実施形態では、外部バッファメモリ6に行方向に並んで格納されるデータフレームの同一列のデータを連続して読み出すことにより、8つのデータフレームDFにおける同一列のデータを同一行内に格納できるようにしている。次に、図24bに示すように、デスクランブル回路70は、内蔵メモリ部12からデータフレームDF2,DF6,DF10,DF14,DF18,DF22,DF26,DF30における1列目のスクランブルデータsDuを順にそれぞれ列方向に読み出す。デスクランブル回路70は、読み出したスクランブルデータsDuに対して順番にデスクランブル処理を施し、デスクランブルデータdDuを外部バッファメモリ6の同一行内に格納するとともに、デスクランブルデータdDuをEDCシンドローム生成回路80に出力する。なお、各読み出しブロックRBにおける最終偶数データフレームDF30の各列の最終行のデータここでは、1列目の最終行のスクランブルデータsD7のデスクランブル処理に使用されたスクランブル値SCが209シフト演算器25を通じて偶数作業レジスタR4に格納される。従って、ここでは、偶数作業レジスタR4にスクランブル値SC=S0γ7γ209=S0γ216が格納される。また、上記第1実施形態と同様に、各読み出しブロックRBの最終偶数データフレームDF30における1列目の最終行のデータここでは、スクランブルデータsD7のデスクランブル処理に使用されたスクランブル値SCが1シフト演算器24を通じて偶数レジスタR2に格納される。次に、図24cに示すように、デスクランブル回路70は、内蔵メモリ部12からデータフレームDF1,DF5,DF9,DF13,DF17,DF21,DF25,DF29における1列目のスクランブルデータsDuを順にそれぞれ列方向に読み出す。デスクランブル回路70は、読み出したスクランブルデータsDuに対して順番にデスクランブル処理を施し、デスクランブルデータdDuを外部バッファメモリ6の同一行内に格納するとともに、デスクランブルデータdDuをEDCシンドローム生成回路80に出力する。なお、デスクランブル処理については、上記第1実施形態と同様に、第1読み出しブロックRB1における各奇数データフレームDFの1列目の先頭データsD108に対して、奇数レジスタR3に格納されたスクランブル値SC=S0γ108を使用してデスクランブルデータdD108を生成する。続いて、第1読み出しブロックRB1の各奇数データフレームDFにおける1列目のスクランブルデータsD109~sD115に対しては、前回のスクランブル値を1バイト分シフトさせたスクランブル値SCを使用してデスクランブルデータdD109~dD115を生成する。次に、図24dに示すように、デスクランブル回路70は、内蔵メモリ部12からデータフレームDF3,DF7,DF11,DF15,DF19,DF23,DF27,DF31における1列目のスクランブルデータsDuを順にそれぞれ列方向に読み出す。デスクランブル回路70は、読み出したスクランブルデータsDuに対して順番にデスクランブル処理を施し、デスクランブルデータdDuを外部バッファメモリ6の同一行内に格納するとともに、デスクランブルデータdDuをEDCシンドローム生成回路80に出力する。なお、各読み出しブロックRBにおける最終奇数データフレームDF31の各列の最終行のデータここでは、1列目の最終行のスクランブルデータsD115のデスクランブル処理に使用されたスクランブル値SCが209シフト演算器25を通じて奇数作業レジスタR5に格納される。従って、ここでは、奇数作業レジスタR5にスクランブル値SC=S0γ115γ209=S0γ324が格納される。また、上記第1実施形態と同様に、各読み出しブロックRBの最終奇数データフレームにおける1列目の最終行のデータここでは、スクランブルデータsD115のデスクランブル処理に使用されたスクランブル値SCが1シフト演算器24を通じて奇数レジスタR3に格納される。次に、デスクランブル回路70は、内蔵メモリ部12からデータフレームDF0,DF4,DF8,DF12,DF16,DF20,DF24,DF28における2列目のスクランブルデータsDuを順にそれぞれ列方向に読み出す。デスクランブル回路70は、読み出したスクランブルデータsDuに対して順番にデスクランブル処理を施す。なお、各読み出しブロックRBの各偶数データフレームにおける2列目以降の各列の1行目のデータここでは、スクランブルデータsD216に対しては、偶数作業レジスタR4に格納されたスクランブル値SCここでは、S0γ216を使用してデスクランブルデータdDuを生成する。また、各読み出しブロックRBの各奇数データフレームにおける2列目の1行目のデータ例えば、スクランブルデータsD324に対しては、奇数作業レジスタR5に格納されたスクランブル値SC例えば、S0γ324を使用してデスクランブルデータdDuを生成する。ここで、偶数作業レジスタR5に格納されているスクランブル値SCは、同一読み出しブロックRB内の偶数データフレーム奇数データフレームにおける前列の最終行のデータに使用されたスクランブル値から209バイト分シフトさせたスクランブル値である。このように本実施形態のデスクランブル処理は、上記第1実施形態と、データの処理順序が異なるとともに、その処理順序に合わせて各列の最終行のデータに使用されたスクランブル値が209シフト演算器25を通じて各作業レジスタR4,R5に格納され、その格納されたスクランブル値が次列の1行目のデータの処理に使用されることが異なる。次に、EDCシンドローム生成回路80におけるEDC演算処理について説明する。EDCシンドローム生成回路80には、デスクランブル回路70からデスクランブルデータdDuが生成された順に入力される。すなわち、図24a~dの順番でデスクランブルデータdDuがEDCシンドローム生成回路80に入力される。従って、EDCシンドローム生成回路80には、各読み出しブロックRBの各データフレームDFにおけるデータが1列8バイト毎に入力される。EDCシンドローム生成回路80は、各読み出しブロックRBの各データフレームDFにおけるデータが1列毎に入力されると、上記第1実施形態と同様に、EDC演算値Ercを順次算出する。例えば第1読み出しブロックRB1のデータフレームDF0偶数データフレームにおける1列目のバイトデータX2051~X2044がEOR回路31に順に入力されると、下記式に示すようにEDC演算値Ercが順次算出される。そして、各データフレームDFここでは、データフレームDF0における各列の最終行のデータに対するEDC演算値Ercここでは、EDC演算値E18が算出されると、そのEDC演算値E18が209シフト演算器35を通じてシフト演算値Es=β209E18として作業メモリ81に格納される。この作業メモリ81には、各データフレームDF毎のシフト演算値Esが格納されるようになっている。次に、各読み出しブロックRBの各データフレームにおける1列目と最終列を除く各列の1行目のデータが入力されたときのEDC演算について説明する。例えば、第1読み出しブロックRB1のデータフレームDF0の1行2列目のデータX1835がEOR回路31に入力されると、選択回路82は、作業メモリ81からのシフト演算値EsをEOR回路31に出力させる選択信号をセレクタ32に出力する。これにより、EOR回路31には、第1読み出しブロックRB1におけるデータフレームDF0の1列目同一読み出しブロックにおける同一データフレームの前列のときに作業メモリ81に格納されたシフト演算値Es=β209E18が入力される。従って、上記データX1835に対するEDC演算値E19は下記式により算出される。このように本実施形態のEDCシンドローム生成回路80には、各読み出しブロックRBの各データフレームにおけるデータが1列毎に入力される。そのため、その1列の最後のデータが入力されたときに算出されるEDC演算値Ercに対して209次のベクターβ209による重み付けをして得られるシフト演算値Esをデータフレーム毎に作業メモリ81に格納するようにした。そして、同一読み出しブロックRBにおける各データフレームの次列の1行目のデータがEOR回路31に入力されたときに、作業メモリ81に格納した同一データフレームのシフト演算値Esを読み出してEDC演算処理を行うようにした。なお、その他の演算方法については、上記第1実施形態と同様である。以上説明した実施形態によれば、第1実施形態の1~10の作用効果に加えて以下の効果を奏する。11デスクランブル回路70は、各読み出しブロックの各偶数データフレームにおける2列目以降の各列の1行目のスクランブルデータに対するスクランブル値SCを格納する偶数作業レジスタR4を備えた。また、デスクランブル回路20は、各読み出しブロックの各奇数データフレームにおける2列目以降の各列の1行目のスクランブルデータに対するスクランブル値SCを格納する奇数作業レジスタR5を備えた。これにより、図24に示すようなデータ処理順序、すなわち各データフレーム内の1列のデスクランブル処理が終了する度に、異なるデータフレームに処理が移るようなデータ処理順序であっても、上記作業レジスタR4,R5に格納されたスクランブル値SCを利用することによって、デスクランブル処理を連続的に実行することができる。12EDCシンドローム生成回路80は、各読み出しブロックの各データフレームにおける各列のEDC演算処理終了後のEDC演算値Ercが209シフト演算器35を通じて格納される作業メモリ81を備えた。これにより、図24に示すようなデータ処理順序であっても、作業メモリ81に格納されたスクランブル値SCを利用することによって、デスクランブル処理を連続的に実行することができる。13デスクランブル回路70は、外部バッファメモリ6の行方向に並んで格納されるデータフレームの同一列のデータを連続して処理するようにした。これにより、デスクランブル回路70は、8つのデータフレームDF例えば、データフレームDF0,DF4,DF8,DF12,DF16,DF20,DF24,DF28における同一列のデスクランブルデータdDuを、外部バッファメモリ6の同一行内に格納できる。このとき、外部バッファメモリ6は、同一行内においては連続してアクセスすることができる機能を有している。従って、デスクランブル回路70が外部バッファメモリ6にデスクランブルデータdDuを格納するときのアクセス効率を向上させることができる。第3実施形態以下、本発明を具体化した第3実施形態について、図26~図28に従って説明する。この実施形態のEDCシンドローム生成回路の回路構成が上記第2実施形態と異なっている。以下、第2実施形態との相違点を中心に説明する。なお、デスクランブル回路70による内蔵メモリ部12からのデータ読み出し順序は、上記第2実施形態と同様である。図27に示すように、EDCシンドローム生成回路90は、デスクランブル回路70から1ビットの入力データビットデータXkが入力される16個のアンド回路A1~A16を備えている。ここで、アンド回路A1~A16に入力されるビットデータについて説明する。まず、1つのデータフレームDFは2052バイトであるため、1つのデータフレームDFは16416=2052×8ビットから構成される。EDC付加時と同様のデータ処理順序でEDC演算をした場合の16416ビットのデスクランブルデータdDuの次数重みを表す多項式表現入力多項式は、となる。ここで、EDC演算は、前述したように、入力多項式の各次数をベクターβkで重み付けする演算であるため、EDCシンドロームEDCSは下記式により算出される。なお、本実施形態におけるベクターβkの次数kと、上記第1及び第2実施形態におけるベクターβnの次数nとは、k=8nの関係がある。このように、EDCシンドロームEDCSの演算は、1ビットデータが処理される度に各ビットデータに対して1次のベクターβk=β1による重み付けが行われる。ここで、1ビットデータXkに対してベクターβ1で重み付けするとは、重み付けされるビットデータXkを、所定の生成多項式Gx本例では、Gx=x32x31x41に従って1ビット分シフトさせることである。例えば、各データフレームDFにおいて最も早く入力されるビットデータX16415に対しては、1次のベクターβ1による重み付けが16415回行われる。但し、本実施形態の場合、上記第2実施形態と同様に、デスクランブル回路70から、27個に分割されたデータブロックDBが第1~第27読み出しブロックRB1~RB27として各読み出しブロック毎に入力される。ここで、図26aに、第1読み出しブロックRB1の各偶数データフレームにおける1列目と2列目とのバイトデータXn及びビットデータXkの入力順序を次数n,kで表した。また、図26bに、第1読み出しブロックRB1の各奇数データフレームにおける1列目と2列目とのバイトデータXn及びビットデータXkの入力順序を次数n,kで表した。この図26aに示すように、EDCシンドローム生成回路80にはビットデータXkが、X16415→X16414→...→X16353→X16352→X14687→X14686→...という順序で入力される。すなわち、アンド回路A1~A16図27参照には、まずビットデータとしてデータフレームDF0のX16415~X16400Xk~Xk-15が入力され、次にビットデータとしてX16399~X16384が入力され、続いてビットデータとしてX16387~X16368が入力され、次いでビットデータとしてX16367~X16352が入力される。そして、第1読み出しブロックRB1の全データフレームDF0~DF31における1列目のビットデータの入力が終了すると、アンド回路A1~A16には、次に第1読み出しブロックRB1のデータフレームDF0における2列目のビットデータX14687~X14672が入力される。このように、EDC付加時のデータ入力順序と異なる順序でデータが入力されると、ベクターβによる重み付けが正確にできないため、正常なEDCシンドロームを生成することができない。そこで、本実施形態のEDCシンドローム生成回路90は、ビットデータXkに応じて所望の次数kのベクターβkを生成するベクター生成回路91を備えるようにした。ベクター生成回路91は、16個の-1ビットシフトβ-1演算器B1~B16第1逆シフト演算器群及び-1664ビットシフトβ-1664演算器B17から構成され、ベクターレジスタ92から入力されるベクターβkに基づいて、18個のベクターβを生成する。β-1演算器B1~B16は、ベクターレジスタ92あるいは前段のβ-1演算器からベクターβkが入力されたときに、ベクターβk-1を生成する演算器である。すなわち、β-1演算器B1~B16は、入力されたベクターを生成多項式Gxに従って1ビット分、逆シフトさせて新たなベクターβkを生成する演算器である。図29に、β-1シフト演算器B1~B16にI[31:0]が入力されたときに、該β-1シフト演算器B1~B16から出力されるO[31:0]の論理式を示した。例えば、ベクターレジスタ92からβ-1演算器B1にベクターβkが入力された場合には、β-1演算器B1~B16はそれぞれベクターβk-1~βk-16を生成する。また、β-1演算器B1に入力されるベクターβkがアンド回路A1に入力され、β-1演算器B1から出力されるベクターβk-1がアンド回路A2に入力され、β-1演算器B2から出力されるベクターβk-2がアンド回路A3に入力される。同様に、β-1演算器B3~B15から出力されるベクターβk-3~βk-15がアンド回路A4~A16にそれぞれ入力される。β-1演算器B16は、生成したベクターβk-16を、β-1664演算器B17、偶数レジスタR20、奇数レジスタR21及びセレクタ96に出力する。β-1664演算器B17は、β-1演算器B16からベクターβk-16が入力されたときに、ベクターβk-16-1664を生成し、該ベクターβk-16-1664を、偶数ラインレジスタR22、奇数ラインレジスタR23及びセレクタ96に出力する演算器である。すなわち、β-1664演算器B17は、入力されたベクターを生成多項式Gxに従って1664ビット分、逆シフトさせて新たなベクターβkを生成する演算器である。図30に、β-1664シフト演算器B17にI[31:0]が入力されたときに、該β-1664シフト演算器B17から出力されるO[31:0]の論理式を示した。アンド回路A1~A16は、デスクランブル回路70からそれぞれ入力されるビットデータXk~Xk-15をそれぞれ32ビットに拡張した値と、ベクター生成回路91からそれぞれ入力されるベクターβk~βk-15との論理積を取って、その演算結果をEOR回路94にそれぞれ出力する。ここで、上記32ビットに拡張した値とは、ビット0~ビット31までの全ての値をXnの値にしたデータのことである。EOR回路94は、アンド回路A1~A16から入力される16個の演算結果の排他的論理和を取って、その演算結果をシンドロームレジスタ95に出力する。シンドロームレジスタ95は、EN端子にイネーブル信号ENSに基づいて、上記演算結果をEDCシンドロームの中間値EDCsとしてEOR回路94及び上記EDCメモリ部40に出力する。EDCメモリ部40は、上記第1及び第2実施形態と同様の構成を有しており、各データフレームDF0~DF31毎にEDCシンドロームの中間値EDCs及び最終的なEDCシンドロームEDCSが格納される。セレクタ96は、選択回路97からの選択信号に基づいて、β-1演算器B16及び各種レジスタR20~R23から入力されるベクターのうち1つのベクターβkをベクターレジスタ92に出力する。なお、ベクターレジスタ92は、EN端子に入力されるイネーブル信号ENSに基づいて、セレクタ96から入力されるベクターβkをベクター生成回路91に出力する。初期設定時の偶数レジスタR20には、所定の生成多項式Gxより予め算出されたベクターβ16415が格納される。また、偶数レジスタR20には、各読み出しブロックRBの最終偶数データフレームにおける1列目の最終行のビットデータXの演算処理が終了したときに、β-1演算器B16から入力されるベクターβが格納される。一方、初期設定時の奇数レジスタR21には、所定の生成多項式Gxより予め算出されたベクターβ15551が格納される。また、奇数レジスタR21には、各読み出しブロックRBの最終奇数データフレームにおける1列目の最終行のビットデータXの演算処理が終了したときに、β-1演算器B16から入力されるベクターβが格納される。偶数ラインレジスタR22には、各読み出しブロックRBの最終偶数データフレームにおける各列の最終行のビットデータXのEDC演算処理が終了したときに、β-1664演算器B17から入力されるベクターβが格納される。奇数ラインレジスタR23には、各読み出しブロックRBの最終奇数データフレームにおける各列の最終行のビットデータのEDC演算処理が終了したときに、β-1664演算器B17から入力されるベクターβが格納される。選択回路97は、入力されるクロック信号CLKのパルス数に応じて各種選択信号を生成し、その選択信号をセレクタ96に出力する。例えば、選択回路97は、各読み出しブロックRBの各偶数データフレームにおける1行1列目の先頭ビットデータから16ビット分のデータがアンド回路A1~A16に入力されるときには、偶数レジスタR20からのベクターβをベクターβkとしてベクターレジスタ92に出力させる選択信号を生成する。選択回路97は、各読み出しブロックRBの各奇数データフレームにおける1行1列目の先頭ビットデータから16ビット分のデータがアンド回路A1~A16に入力されるときには、奇数レジスタR21からのベクターβをベクターβkとしてベクターレジスタ92に出力させる選択信号を生成する。選択回路97は、各読み出しブロックRBの各偶数データフレームにおける2列目以降の各列の1行目のビットデータから16ビット分のデータが入力されるときには、偶数ラインレジスタR22からのベクターβをベクターβkとしてベクターレジスタ92に出力させる選択信号を生成する。選択回路97は、各読み出しブロックRBの各奇数データフレームにおける2列目以降の各列の1行目のビットデータから16ビット分のデータが入力されるときには、奇数ラインレジスタR23からのベクターβをベクターβkとしてベクターレジスタ92に出力させる選択信号を生成する。選択回路97は、各読み出しブロックRBにおける列方向の次のビットデータ17行目以降のビットデータから16ビット分のデータが入力されるときには、β-1演算器B16からのベクターβをベクターβkとしてベクターレジスタ92に出力させる選択信号を生成する。次に、このように構成されたEDCシンドローム生成回路90の動作について図28に従って説明する。まずステップS50において、偶数レジスタR20及び奇数レジスタR21に初期値が設定される。すなわち、偶数レジスタR20には、第1読み出しブロックRB1における各偶数データフレームの先頭ビットデータX16415の次数と同一次数のベクターβ16415が格納される。また、奇数レジスタR21には、第1読み出しブロックRB1における各奇数データフレームの先頭ビットデータX15551の次数と同一次数のベクターβ15551が格納される。次に、選択回路97は、偶数レジスタR20あるいは奇数レジスタR21からのベクターβをベクターレジスタ92に出力させる選択信号をセレクタ96に出力するステップS51。詳しくは、選択回路97は、偶数データフレームのEDC演算処理を行う場合には偶数レジスタR20からのベクターβを、奇数データフレームのEDC演算処理を行う場合には奇数レジスタR21からのベクターβをベクターレジスタ92に出力させる選択信号を生成する。ここでは、これから処理するデータフレームDFがデータフレームDF0偶数データフレームであるため、偶数レジスタR20からのベクターβ16415をベクターレジスタ92に出力させる選択信号をセレクタ96に出力する。次に、ステップS52において、デスクランブル回路70からアンド回路A1~A16には、データフレームDF0の先頭ビットデータX16415から16ビット分のデータX16415~X16400がそれぞれ入力される。このとき、ベクター生成回路91からアンド回路A1~A16には、ベクターβ16415~β16400がそれぞれ入力される。これにより、EOR回路94は、アンド回路A1~A16からの演算結果の排他的論理和を取って、下記式に示すEDCシンドロームの中間値EDCsを算出する。この算出された中間値EDCsは、シンドロームレジスタ95を介してEDCメモリ部40に格納されるとともに、EOR回路94に入力される。次に、ステップS53において、選択回路97は、入力されるクロック信号のパルス数に応じて、各読み出しブロックRBにおける1列64ビット分のデータに対するEDC演算処理が終了したかを判断する。選択回路97は、1列分のデータに対するEDC演算処理が終了していないと判断するとステップS53においてNO、β-1演算器B16からのベクターβをベクターレジスタ92に出力させる選択信号をセレクタ96に出力するステップS54。このとき、β-1演算器B16からセレクタ96を介してベクターレジスタ92に入力されるベクターがβ16399であるため、ベクター生成回路91からアンド回路A1~A16にはベクターβ16399~β16384がそれぞれ入力される。また、このアンド回路A1~A16には、デスクランブル回路70からビットデータX16399~X16384がそれぞれ入力される。従って、EOR回路94は、アンド回路A1~A16からの演算結果と直前に算出した中間値EDCsとの排他的論理和を取って、下記式に示す中間値EDCsを算出する。1列分のビットデータに対するEDC演算処理が終了するまで、これらステップS52~S54が繰り返し実行される。このようにEDC付加時のデータ処理順序と同様の順序でビットデータが入力されるとき、すなわち列方向に配置されたビットデータが順番に入力されるときには、β-1演算器B16からのベクターβをベクター生成回路91に入力させる。そして、第1読み出しブロックRB1のデータフレームDF0における1列目の最終行のビットデータX16352を含む16ビットのデータX16367~X16352がアンド回路A1~A16に入力されたときの中間値EDCsが算出されると、その中間値EDCsがEDCメモリ部40に格納され、ステップS55に移る。次に、ステップS55において、選択回路97は、現在処理しているデータフレームDFが最終偶数データフレームDF30あるいは最終奇数データフレームDF31であるかを判断する。ここでは、現在処理しているデータフレームDFがデータフレームDF0であり、且つ1列目のデータであるため、ステップS51に移って次のデータフレームの同一列ここでは、データフレームDF4の1列目のEDC演算処理がデータフレームDF0と同様に行われる。以後、ステップS51~S55が繰り返し実行され、データフレームDF4→DF8→DF12→DF16→DF20→DF24→DF28→DF2→DF6→DF10→DF14→DF18→DF22→DF26→DF30図24a、b参照における1列目のEDC演算処理が順に行われる。そして、第1読み出しブロックRB1のデータフレームDF30における1列目の最終行のビットデータX16352を含む16ビットのデータX16367~X16352が入力されたときの中間値EDCsが算出されるとステップS55においてYES、ステップS56に移る。次に、選択回路97は、現在EDC演算処理しているデータが条件C1~C3のいずれに該当するかを判断する。最終偶数データフレームDF30の1列目のEDC演算処理が終了した場合条件C1には、ステップS57に移り、最終奇数データフレームDF31の1列目のEDC演算処理が終了した場合条件C2には、ステップS58に移り、2列目以降のEDC演算処理が終了した場合条件C3には、ステップS59に移る。ここでは、データフレームDF30の1列目のEDC演算処理が終了しているため条件C1、β-1演算器B16からのベクターβが偶数レジスタR20に格納されるとともに、β-1664演算器B17からのベクターβが偶数ラインレジスタR22に格納されるステップS57。すなわち、第1読み出しブロックRB1の場合には、偶数レジスタR20にベクターβ16351が格納されるとともに、偶数ラインレジスタR22にベクターβ14687が格納される。続いて、ステップS51に戻ると、次に第1読み出しブロックRB1におけるデータフレームDF1奇数データフレームの1列目のEDC演算処理が開始されるため、奇数レジスタR21からの初期値ベクターβ15551がベクターレジスタ92に出力される。以後は、偶数データフレームと同様に、第1読み出しブロックRB1におけるデータフレームDF1の1列目のEDC演算処理が終了するまで、ステップS52~S54が繰り返し実行される。そして、第1読み出しブロックRB1のデータフレームDF1における1列目の最終行のビットデータX16352を含む16ビットのデータX15503~X15488がアンド回路A1~A16に入力されたときの中間値EDCsが算出されると、ステップS55に移る。以後、ステップS51~S55が繰り返し実行され、データフレームDF5→DF9→DF13→DF17→DF21→DF25→DF29→DF3→DF7→DF11→DF15→DF19→DF23→DF27→DF31図24c、d参照における1列目のEDC演算処理が順に行われる。そして、第1読み出しブロックRB1のデータフレームDF31における1列目の最終行のデータX16352を含む16ビットのデータX16367~X16352が入力されたときの中間値EDCsが算出されるとステップS55においてYES及びステップS56の条件C2、ステップS58に移る。次に、β-1演算器B16からのベクターβここでは、β15487が奇数レジスタR21に格納されるとともに、β-1664演算器B17からのベクターβここでは、β13823が奇数ラインレジスタR23に格納されるステップS58。続いて、選択回路97は、偶数ラインレジスタR22あるいは奇数ラインレジスタR23からのベクターβをベクターレジスタ92に出力させる選択信号をセレクタ96に出力するステップS59。詳しくは、選択回路97は、偶数データフレームのEDC演算処理を行う場合には偶数ラインレジスタR22からのベクターβを、奇数データフレームのEDC演算処理を行う場合には奇数ラインレジスタR23からのベクターβをベクターレジスタ92に出力させる選択信号を生成する。ここでは、次に第1読み出しブロックRB1におけるデータフレームDF0の2列目がEDC演算処理されるため、偶数ラインレジスタR22からのベクターβ14687をベクターレジスタ92に出力させる選択信号をセレクタ96に出力する。これにより、ステップS52において、ベクター生成回路91からアンド回路A1~A16にはベクターβ14687~β14672が入力される。また、アンド回路A1~A16には、第1読み出しブロックRB1におけるデータフレームDF0の1行2列目のビットデータX14687から16ビット分のデータX14687~X14672がそれぞれ入力される。そして、EOR回路94は、アンド回路A1~A16からの演算結果と、EDCメモリ部40に格納された同一データフレームの中間値EDCsとの排他的論理和を取って、新たな中間値EDCsを算出する。このように各読み出しブロックの偶数データフレームにおける2列目以降の各列の1行目のビットデータXkには、偶数データフレームにおける前列の最終行のビットデータXk1665に乗算されたベクターβk1665をβ-1演算器B16及びβ-1664演算器B17によりシフト演算して得られるベクターβkが乗算されるようになっている。同様に、各読み出しブロックの奇数データフレームにおける2列目以降の各列の1行目のビットデータXkには、奇数データフレームにおける前列の最終行のビットデータXk1665に乗算されたベクターβk1665をβ-1演算器B16及びβ-1664演算器B17によりシフト演算して得られるベクターβkが乗算されるようになっている。ここでは、例えば第1読み出しブロックRB1のデータフレームDF0における1行2列目のビットデータX14687は、同1列目の最終行のビットデータX16352よりも、EDC付加時において{データブロックDBの列方向における全ビット数:1728ビット-1つの読み出しブロックの列方向におけるビット数:64ビット1}=1665ビット分だけ遅く処理されるデータである。すなわち、ビットデータX14687は、ビットデータX16352よりもベクターβ1による重み付け回数が1665回だけ少ない。従って、上述したように、前列の最終行のビットデータXk1665に乗算したベクターβk1665を1665ビット分だけ逆シフト演算したベクターβkを、2列目以降の各列の1行目のビットデータXkに乗算するようにした。続いて、ステップS52~S54が繰り返し実行され、第1読み出しブロックRB1のデータフレームDF0における2列目の最終行のビットデータX14624を含む16ビットのデータX14639~X14624が入力されたときの中間値EDCsが算出されると、ステップS55に移る。ここでは、最終偶数データフレームDF30及び最終奇数データフレームでないデータフレームDF0の2列目が処理されているため、ステップS59に移る。続いて、データフレームDF4の2列目が次に処理されるため、偶数ラインレジスタR22からのベクターβ14687がベクターレジスタ92に出力される。以後、ステップS51~S55及びステップS59が繰り返し実行され、データフレームDF4→DF8→DF12→DF16→DF20→DF24→DF28→DF2→DF6→DF10→DF14→DF18→DF22→DF26→DF30における2列目のEDC演算処理が順に行われる。そして、第1読み出しブロックRB1のデータフレームDF30における2列目の最終行のビットデータX16352を含む16ビットのデータX16367~X16352が入力されたときの中間値EDCsが算出されるとステップS55においてYES及びステップS56の条件C3、ステップS61に移る。次に、このときのβ-1664演算器B17からのベクターβここでは、β12959が偶数ラインレジスタR22に格納されるステップS61。続いて、データフレームDF1の2列目が次に処理されるため、奇数ラインレジスタR21からのベクターβ13823がベクターレジスタ92に出力される。以後、偶数データフレームと同様に奇数データフレームのEDC演算処理が行われ、データフレームDF31の2列目のEDC演算処理が終了すると、ステップS61に移る。次に、このときのβ-1664演算器B17からのベクターβここでは、β12095が奇数ラインレジスタR23に格納されるステップS61。以下同様に、第1読み出しブロックRB1における各データフレームの3列目以降のEDC演算処理が行われ、第1読み出しブロックRB1における最終列304列目、すなわち最終奇数データフレームDF31の最終列のEDC演算処理が終了するとステップS60においてYES、ステップS62に移る。次に、ステップS62において、選択回路97は、EDC演算処理の終了した読み出しブロックが第13読み出しブロックRB13であるかを判断する。選択回路97は、EDC演算処理の終了した読み出しブロックが第13読み出しブロックRB13でないと判断するとステップS62においてNO、ステップS63に移る。次に、選択回路97は、最終読み出しブロックRB27のEDC演算処理が終了したかを判断するステップS63。そして、読み出しブロックRB2~第13読み出しブロックRB13のEDC演算処理が終了するまで、ステップS50~S63が繰り返し実行され、第13読み出しブロックRB13のEDC演算処理が終了するとステップS62においてYES、ステップS64に移る。ここで、第14読み出しブロックRB14における各奇数データフレームの1行1列目のビットデータは、EDC付加時と同様のデータ入力順序でEDC演算した場合の各奇数データフレームにおいて最初に入力される先頭ビットデータX16415である。そこで、第14読み出しブロックRB14のEDC演算処理が開始される前に、ステップS64において、奇数レジスタR22に初期値として、各奇数データフレームの先頭ビットデータX16415の次数と同一次数のベクターβ16415を格納するようにした。以後は、ステップS50~S63が繰り返し実行され、第14~第27読み出しブロックRB14~RB27のEDC演算処理が実行される。以上説明した実施形態によれば、第1及び第2実施形態の1~13の作用効果に加えて以下の効果を奏する。14EDCシンドローム生成回路90は、16個のアンド回路A1~A16と、ベクター生成回路91とを備えた。これにより、アンド回路A1~A16に入力されるビットデータXkに対して、所望の次数kのベクターβkを乗算させることができる。従って、上記第1及び第2実施形態のEDC演算処理における第1補正演算及び第2補正演算等の特殊な演算処理を施すことなく、EDCシンドロームEDCSを生成することができる。第4実施形態以下、本発明を具体化した第4実施形態について、図31に従って説明する。この実施形態の内蔵メモリ部の構成と、BISメモリ部の接続構成が上記第1実施形態と異なっている。以下、第1実施形態との相違点を中心に説明する。図31に示すように、光ディスクコントローラ10の復調回路11aには、BD4から読み出されたディスクデータが入出力駆動回路5図1参照を通じて順次入力される。復調回路11aは、ディスクデータに基づいて復調済データ、すなわちECCクラスタECCc図40b参照を生成する。復調回路11aは、ECCクラスタECCc内のLDCクラスタLDCcとBISクラスタBIScとを分類し、LDCクラスタLDCcを内蔵メモリ部12eLDCデータメモリ部に出力するとともに、ECCクラスタECCc内のBISクラスタBIScをBISメモリ部15aに出力する。内蔵メモリ部12eを構成する2つのバッファメモリM11,M12の各々は、所定バイト数本実施形態では、2432バイトのデータを格納可能なメモリ容量となっている。本実施形態では、ECCクラスタECCc内のLDCクラスタLDCc75392バイトが31=75392/2432個に分割され、2432バイト毎に内蔵メモリ部12の各バッファメモリM11,M12に格納される。すなわち、LDCクラスタLDCcが16行毎に分割され、16行×152列=2432バイトのブロック単位図3の分割ECCクラスタDECCにおけるBISクラスタBISc部分を除いたブロック単位で各バッファメモリM1,M2に格納される。BISメモリ部15aには、復調回路11aからのBISクラスタBIScが格納される。BISメモリ部15aは、第1実施形態と同様の構成を有しており、BISクラスタBISc全体のデータが格納されると、そのBISクラスタBIScをBISシンドローム生成回路16に出力する。以上説明した実施形態によれば、第1実施形態の1~10の作用効果に加えて以下の効果を奏する。15復調回路11aから直接BISメモリ部15aにBISクラスタBIScを格納するようにし、分割ECCクラスタDECCにおけるLDCクラスタLDCcのみを内蔵メモリ部12eに格納するようにした。これにより、BISメモリ部15aによる内蔵メモリ部12eへのアクセスを省略することができるため、内蔵メモリ部12eへのアクセス量を低減することができる。さらに、BISメモリ部15aは、復調回路11aから直接BISクラスタBIScのみを受け取るため、LDCクラスタLDCcを受け取る処理を省略することができる。このことから、コントローラ10の回路構成を単純化することができる。第5実施形態以下、本発明を具体化した第5実施形態について、図32に従って説明する。この実施形態のデスクランブル回路と、BISシンドローム生成回路と、EDC補正回路とが上記第4実施形態と異なっている。以下、第4実施形態との相違点を中心に説明する。図32に示すように、内蔵メモリ部12eのバッファメモリに順次格納される第1~第27読出しブロックRB1~RB27スクランブルデータsDuは、外部バッファメモリ6に格納されるとともに、EDCシンドローム生成回路30aに入力される。EDCシンドローム生成回路30aは、内蔵メモリ部12eから第1~第27読み出しブロックRB1~RB27を読み出しブロックRB毎に読み出し、該読み出した各読み出しブロックRB内のスクランブルデータsDuに基づいてEDC演算を行ってEDCシンドロームを生成する。すなわち、EDCシンドローム生成回路30aは、読み出しブロックRB内のデータフレームDF毎に、スクランブルデータsDuに対するEDCシンドロームを生成し、そのEDCシンドロームをEDCメモリ部40に格納する。このEDCシンドローム生成回路30aは、図8に示したEDCシンドローム生成回路30と略同様の構成を有しており、デスクランブルデータdDuに代わって内蔵メモリ部12eからのスクランブルデータsDuがバイトデータとしてEOR回路31に入力されるようになっている。なお、このEDCシンドローム生成回路30aを、図23に示したEDCシンドローム生成回路80あるいは図27に示したEDCシンドローム生成回路90に変更してもよい。EDCメモリ部40は、上記第1実施形態と同様に、各データフレームDFのスクランブルデータsDuに対する最終的なEDCシンドロームを外部バッファメモリ6に格納する。BISシンドローム生成回路16aは、BISメモリ部15aからBISクラスタBIScを読み出し、該BISクラスタBIScに基づいてBISシンドロームを生成する。BISシンドローム生成回路16aは、生成したBISシンドロームと、BISメモリ部15aから読み出したBISクラスタBIScとを外部バッファメモリ6に格納する。誤り訂正回路50内の訂正回路51aは、外部バッファメモリ6から読み出したLDCシンドローム及びBISシンドロームに基づいて、外部バッファメモリ6に格納されたスクランブルデータsDuからなるデータフレームDF等に対して誤り訂正処理を行う。訂正回路51aは、各種シンドロームに基づいて算出した誤り位置及び誤り数値をEDC補正回路52aに出力する。また、訂正回路51aは、外部バッファメモリ6に格納された誤り訂正後のBISクラスタBISc内のスクランブル値の初期値S0を読み出し、該初期値S0をEDC補正回路52aに出力する。EDC補正回路52aは、訂正回路51aから入力される初期値S0に基づいて、スクランブル値SCを算出する。EDC補正回路52aは、訂正回路51から入力される誤り位置及び誤り数値に基づくEDCシンドローム補正に加えて、上記算出したスクランブル値SCに基づくEDCシンドローム補正を実行する。EDCチェック回路54において誤り訂正が正常に終了されたことが確認されると、従来と同様のデスクランブル回路115は、外部バッファメモリ6に格納された誤り訂正後のスクランブルデータsDuをスクランブル処理時と同様の順序にて読み出す。また、デスクランブル回路115は、外部バッファメモリ6に格納された誤り訂正後のBISクラスタBISc内の値をスクランブル値の初期値S0として読み出し、該初期値S0に基づいて順次スクランブル値SCを生成する。そして、デスクランブル回路115は、読み出したスクランブルデータsDuに対して順次デスクランブル処理を施し、デスクランブルデータdDuをインターフェース回路60に出力する。以上説明した実施形態によれば、第4実施形態の15の作用効果に加えて以下の効果を奏する。16第4実施形態のデスクランブル回路20がデスクランブル処理に用いるスクランブル値SCは、復調回路11aがデータを読み出すために用いたBD4のアドレス情報、あるいは誤り訂正前のBISクラスタBISc内の値を用いることになる。誤り訂正前にデータが誤っている可能性がある場合には、誤り訂正前のBISクラスタBISc内の値を用いるのではなく、光ディスクコントローラ10内にあるエラーが含まれない値であって、復調回路11が用いたアドレス情報をスクランブル値SCとして用いる。この場合、復調回路11が正しいアドレスを読んでいないと、誤ったスクランブル値SCを用いてしまうことになる。これにより、誤り訂正及びEDCチェックは正しく終了するものの、デスクランブル処理が正しく終了しないという問題が発生する場合がある。これに対して、本実施形態のデスクランブル回路115では、誤り訂正後のBISクラスタBISc内の値をスクランブル値SCとして用いることができる。従って、デスクランブル回路115は、誤り訂正後のBISクラスタBISc内の値を用いて、誤り訂正回路50で誤り訂正及びEDCチェックまで終了したデータに対してデスクランブル処理を施すことができる。その結果、ホストコンピュータに、より正しいデータを送ることができるようになる。なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。上記各実施形態では、デスクランブル回路20,70から入力されるデスクランブルデータdDuに基づいてEDCシンドロームEDCSをEDCシンドローム生成回路30,80,90にて生成するようにした。これに限らず、例えば図33に示すように、従来と同様のEDCチェック回路116により、誤り訂正後のデスクランブルデータに基づいてEDCチェックEDCシンドロームの生成を行うようにしてもよい。上記第4及び第5実施形態におけるコントローラ10に、第2実施形態のデスクランブル回路70、EDCシンドローム生成回路80あるいは第3実施形態のEDCシンドローム生成回路90を適用するようにしてもよい。上記第1実施形態において、デスクランブル回路20とEDCシンドローム生成回路30とが独立して内蔵メモリ部12にアクセスするようにしてもよい。すなわち、この場合のデスクランブル回路20のEOR回路21及びEDCシンドローム生成回路30のEOR回路31には、内蔵メモリ部12から分割ECCクラスタDECC内のスクランブルデータsDuが略同時に入力される。上記各実施形態では、内蔵メモリ部12の各バッファメモリM1,M2に格納される分割ECCクラスタDECCのサイズに特に制限はない。例えば、分割ECCクラスタDECCのデータサイズを32行×155列としてもよい。なお、この場合、内蔵メモリ部12の各バッファメモリM1,M2を、1つの分割ECCクラスタDECCを格納できるメモリ容量に設定変更する。また、この場合、1つの読み出しブロックRBにおける行数が変更される。このように読み出しブロックRBの行数が変更された場合には、デスクランブル回路20,70の209シフト演算器25、EDCシンドローム生成回路30,80の209シフト演算器35及びEDCシンドローム生成回路90のβ-1664演算器B17におけるシフトバイト数シフトビット数が変更される。上記第3実施形態のデスクランブル回路70におけるデータ処理順序を第1実施形態と同様のデータ処理順序に変更してもよい。すなわち、第3実施形態のデスクランブル回路70は、各読み出しブロックRBの中で、データブロックDBにおけるデータ配置と同様の順序にて各スクランブルデータを読み出し、その読み出したスクランブルデータに対して順にデスクランブル処理を実行してもよい。この場合、EDCシンドローム生成回路90における偶数ラインレジスタR22及び奇数ラインレジスタR23を省略してもよい。上記第2及び第3実施形態のデスクランブル回路70におけるデータ処理順序は特に制限されない。例えば、まず図24aに示すように、データフレームDF0→DF4→DF8→DF12→DF16→DF20→DF24→DF28偶数データフレーム群の1列目のデスクランブル処理を行う。次に、図24cに示すように、データフレームDF1→DF5→DF9→DF13→DF17→DF21→DF25→DF29奇数データフレーム群の1列目のデスクランブル処理を行うようにしてもよい。あるいは、図24a、bに示すような偶数データフレーム群の1列目のデスクランブル処理が終了した後に、同偶数データフレーム群の2列目のデスクランブル処理を行うようにしてもよい。このように、偶数データフレームのデスクランブル処理を全て終了した後に、奇数データフレームのデスクランブル処理に移るようにすることにより、例えば第2実施形態のデスクランブル回路70内の偶数作業レジスタR4及び奇数作業レジスタR5を共通の作業レジスタに変更することができる。同様に、第3実施形態のEDCシンドローム生成回路90内の偶数ラインレジスタR22及び奇数ラインレジスタR23を共通のラインレジスタに変更することができる。上記各実施形態では、各データフレームDFを外部バッファメモリ6に、32行×64列のブロックで格納するようにしたが、このブロックサイズに特に制限はない。例えば、各データフレームDFを64行×32列のブロックで外部バッファメモリ6に格納するようにしてもよい。このように格納すると、全偶数データフレームを外部バッファメモリ6の行方向に並んで格納させることができるとともに、全奇数データフレームを外部バッファメモリ6の行方向に並んで格納させることができる。そのため、デスクランブル回路70において、例えばデータフレームDF0,DF2,DF4,DF6,...,DF28,DF30の同一列のスクランブルデータに対して連続的にデスクランブル処理することにより、128=8×16バイトのデスクランブルデータを外部バッファメモリ6の同一行に格納することができる。上記第1及び第2実施形態におけるデスクランブル回路20,70の108シフト演算器26を省略してもよい。この場合、例えば各初期値毎に、その初期値から生成多項式Φxに従って108バイト分シフトさせて得られるスクランブル値SCS0γ108を予め算出してメモリ等に格納しておいてもよい。上記第1及び第2実施形態におけるデスクランブル回路20,70の偶数レジスタR2及び奇数レジスタR3を省略してもよい。あるいは、第3実施形態におけるEDCシンドローム生成回路90の偶数レジスタR20及び奇数レジスタR21を省略してもよい。この場合、例えば各読み出しブロックRBの各偶数データフレーム及び各奇数データフレームにおける1行1列目の先頭スクランブルデータ先頭ビットデータに対するスクランブル値SCベクターβkを予め算出してメモリ等に格納しておいてもよい。上記第1及び第2実施形態におけるEDCシンドローム生成回路30,80の-211シフト演算器37を省略してもよい。この場合、例えば偶数データフレームについては、第1~第14読み出しブロックRB1~RB14のデータに対するEDC演算値E1476、すなわちバイトデータX0がEOR回路31に入力されたときに算出されるEDC演算値E1476を中間値EDCsとは別に格納する。そして、第15~第27読み出しブロックRB15~RB27のデータに対するEDC演算処理は、上記EDC演算値E1476を読み出さずに実行する。最後に、第27読み出しブロックRB27の各偶数データフレームにおける最終行最終列のバイトデータX108が入力されたときのEDC演算値E1476に第1補正演算施した後の演算結果と、上記EDC演算値E1476との排他的論理和を取ることで、上記1式と同様のEDCシンドロームEDCSが生成される。上記各実施形態における補正メモリ部53を省略してもよい。この場合、EDC補正回路52は、外部バッファメモリ6からEDCシンドロームEDCSを読み出しながら、該EDCシンドロームEDCSの補正を行う。上記実施形態では、内蔵メモリ部12、LDCメモリ部14、BISメモリ部15及びEDCメモリ部40の内部構成を図5の構成に具体化したが、同一時間において、一方のバッファメモリをデータ保存用シンドローム保存用として使用し、他方のバッファメモリをアクセス用データ出力用、シンドローム出力用として使用する構成であれば、特に制限されない。上記各実施形態では、内蔵メモリ部12、LDCメモリ部14、BISメモリ部15及びEDCメモリ部40を2つのバッファメモリM1,M2から構成するようにしたが、1つのバッファメモリあるいは3つ以上のバッファメモリから構成するようにしてもよい。また、1つのバッファメモリに対して、同時にデータの格納とデータの読み出しを行えるように構成してもよい。上記各実施形態におけるLDCメモリ部14を省略してもよい。なお、この場合は、LDCシンドローム生成回路13内にパリティ付加ブロックPBの全列304列分のLDCシンドローム演算器を設けることが好ましい。また、LDCシンドローム生成回路13にて生成されるLDCシンドロームの中間値を外部バッファメモリ6に格納するようにしてもよい。上記各実施形態におけるBISメモリ部15を省略してもよい。なお、この場合、BISシンドローム生成回路16は、内蔵メモリ部12から直接BISクラスタBIScを読み出すようにする。このとき、例えばBISシンドローム生成回路16にて生成されるBISシンドロームの中間値を外部バッファメモリ6に格納するようにしてもよい。また、BISシンドローム生成回路16と外部バッファメモリ6との間に、BISシンドロームの中間値を格納するシンドロームメモリを設けるようにしてもよい。上記各実施形態におけるEDCメモリ部40を省略してもよい。なお、この場合は、EDCシンドローム生成回路30,80,90内に全データフレームの個数30個分のEDCシンドローム演算器例えば、EOR回路31や各種演算器34~37等を設けることが好ましい。以上の様々な実施の形態をまとめると、以下のようになる。付記1所定数のデータフレームにスクランブル処理が施され、スクランブルされたデータフレームが所定サイズのデータブロックに変換され、該データブロックの各列にパリティが付加されたパリティ付加ブロックが生成され、該パリティ付加ブロックに対してインターリーブ処理が施されクラスタが生成され、該クラスタが変調されたデータの誤りを訂正する誤り訂正装置であって、前記変調されたデータを復調して復調されたデータとしてクラスタを生成する復調回路と、前記復調回路からのクラスタが所定行数毎に分割された分割クラスタが格納される内蔵メモリ部と、前記内蔵メモリ部を通じて、前記分割クラスタをデインターリーブ処理して生成したパリティ付加ブロックにおける各データが列方向に入力され、該各データに基づいてパリティ演算結果を前記パリティ付加ブロックの列毎に生成するパリティ演算結果生成回路と、前記内蔵メモリ部を通じて、前記分割クラスタにデインターリーブ処理が施され、前記データブロックにおける各スクランブルデータが列方向に読み出しブロックとして入力され、該各スクランブルデータにデスクランブル処理を施したデスクランブルデータを生成するデスクランブル回路と、前記パリティ演算結果に基づいて、前記デスクランブルデータに対して誤り訂正処理を行う誤り訂正回路と、を備え、前記デスクランブル回路は、前記内蔵メモリ部からの前記スクランブルデータが入力される第1排他的論理和回路と、入力されたスクランブル値を、所定の第1生成多項式に従って1バイト分シフトさせて新たなスクランブル値を生成する第1シフト演算器と、入力されたスクランブル値を、{前記データブロックの列方向における全バイト数1-各読み出しブロックの列方向における全バイト数}バイト分、前記第1生成多項式に従ってシフトさせて新たなスクランブル値を生成する第2シフト演算器と、前記第1排他的論理和回路に入力される前記スクランブルデータの前記データブロックにおける位置に応じて、前記第1シフト演算器及び前記第2シフト演算器から入力されるスクランブル値のうちのいずれか一方のスクランブル値を前記第1排他的論理和回路、前記第1シフト演算器及び前記第2シフト演算器に出力する第1選択回路と、を備えることを特徴とする誤り訂正装置。付記2前記パリティ演算結果生成回路は、前記内蔵メモリ部に格納された前記分割クラスタにデインターリーブ処理を施して、前記パリティ付加ブロックにおける各データを列方向に読み出し、前記デスクランブル回路は、前記内蔵メモリ部に格納された前記分割クラスタにデインターリーブ処理を施して、前記データブロックにおける各スクランブルデータを列方向に読み出すことを特徴とする付記1に記載の誤り訂正装置。付記3前記内蔵メモリ部には、前記復調回路からデインターリーブ処理が施されて前記分割クラスタが格納され、前記パリティ演算結果生成回路は、前記内蔵メモリ部に格納された前記パリティ付加ブロックを列方向に読み出し、前記デスクランブル回路は、前記内蔵メモリ部に格納された前記データブロックを列方向に読み出すことを特徴とする付記1に記載の誤り訂正装置。付記4前記データブロックにおいて最初に処理されるデータフレームと該データフレームから1つおきに処理されるデータフレームとを偶数データフレームとし、該偶数データフレームの次に処理されるデータフレームを奇数データフレームとしたときに、前記デスクランブル回路は、前記各読み出しブロックの前記偶数データフレームにおける1列目の最終行のスクランブルデータに対するスクランブル値が前記第1シフト演算器を通じて格納される第1偶数レジスタと、前記各読み出しブロックの前記奇数データフレームにおける1列目の最終行のスクランブルデータに対するスクランブル値が前記第1シフト演算器を通じて格納される第1奇数レジスタと、を備え、前記第1選択回路は、前記第1排他的論理和回路に入力される前記スクランブルデータの前記データブロックにおける位置に応じて、前記第1シフト演算器、前記第2シフト演算器、前記第1偶数レジスタ及び前記第1奇数レジスタから入力されるスクランブル値のうちのいずれか一つのスクランブル値を、前記第1排他的論理和回路、前記第1シフト演算器及び前記第2シフト演算器に出力することを特徴とする付記1~3のいずれか1つに記載の誤り訂正装置。付記5前記デスクランブル回路は、入力されたスクランブル値を、前記第1生成多項式に従って108バイト分シフトさせて新たなスクランブル値を生成する第3シフト演算器を備え、前記各クラスタにおけるデスクランブル処理開始時の初期値設定において、前記第1偶数レジスタには、前記各クラスタに応じて設定されるスクランブル値の初期値が格納されるとともに、前記第1奇数レジスタには、前記初期値が前記第3シフト演算器を通じて格納されることを特徴とする付記4に記載の誤り訂正装置。付記6前記デスクランブル回路は、前記各読み出しブロックの前記偶数データフレームにおける各列の最終行のスクランブルデータに対するスクランブル値が前記第2シフト演算器を通じて格納される偶数作業レジスタと、前記各読み出しブロックの前記奇数データフレームにおける各列の最終行のスクランブルデータに対するスクランブル値が前記第2シフト演算器を通じて格納される奇数作業レジスタと、を備え、前記第1選択回路は、前記第1排他的論理和回路に入力される前記スクランブルデータの前記データブロックにおける位置に応じて、前記第1シフト演算器、前記第2シフト演算器、前記第1偶数レジスタ、前記第1奇数レジスタ、前記偶数作業レジスタ及び前記奇数作業レジスタから入力されるスクランブル値のうちのいずれか一つのスクランブル値を、前記第1排他的論理和回路、前記第1シフト演算器及び前記第2シフト演算器に出力することを特徴とする付記4又は5に記載の誤り訂正装置。付記7前記第1選択回路は、前記各読み出しブロックの前記各偶数データフレームにおける1行1列目の先頭スクランブルデータが前記第1排他的論理和回路に入力されるときに、前記第1偶数レジスタから入力されるスクランブル値を出力し、前記各読み出しブロックの前記各奇数データフレームにおける1行1列目の先頭スクランブルデータが前記第1排他的論理和回路に入力されるときに、前記第1奇数レジスタから入力されるスクランブル値を出力し、前記各読み出しブロックの前記各データフレームにおける各列の2行目以降のスクランブルデータが前記第1排他的論理和回路に入力されるときに、前記第1シフト演算器から入力されるスクランブル値を出力し、前記各読み出しブロックの前記各データフレームにおける2列目以降の各列の1行目のスクランブルデータが前記第1排他的論理和回路に入力されるときに、前記第2シフト演算器から入力されるスクランブル値を出力することを特徴とする付記5に記載の誤り訂正装置。付記8前記第1選択回路は、前記各読み出しブロックの前記各偶数データフレームにおける1行1列目の先頭スクランブルデータが前記第1排他的論理和回路に入力されるときに、前記第1偶数レジスタから入力されるスクランブル値を出力し、前記各読み出しブロックの前記各奇数データフレームにおける1行1列目の先頭スクランブルデータが前記第1排他的論理和回路に入力されるときに、前記第1奇数レジスタから入力されるスクランブル値を出力し、前記各読み出しブロックの前記各偶数データフレームにおける2列目以降の各列の1行目のスクランブルデータが前記第1排他的論理和回路に入力されるときに、前記偶数作業レジスタから入力されるスクランブル値を出力し、前記各読み出しブロックの前記各奇数データフレームにおける2列目以降の各列の1行目のスクランブルデータが前記第1排他的論理和回路に入力されるときに、前記奇数作業レジスタから入力されるスクランブル値を出力し、前記各読み出しブロックの前記各データフレームにおける各列の2行目以降のスクランブルデータが前記第1排他的論理和回路に入力されるときに、前記第1シフト演算器から入力されるスクランブル値を出力することを特徴とする付記6に記載の誤り訂正装置。付記9前記デスクランブル回路は、前記各読み出しブロックの中で、前記データブロックにおけるデータ配置と同様の順序にて各スクランブルデータを読み出すことを特徴とする付記1~8のいずれか1つに記載の誤り訂正装置。付記10前記デスクランブル回路は、前記各読み出しブロックの中で、外部メモリの行方向に並んで格納されるデータフレームの同一列のスクランブルデータを連続して順番に読み出すことを特徴とする付記6又は8に記載の誤り訂正装置。付記11前記第1選択回路は、前記各奇数データフレームにおけるスクランブル処理時の先頭データが前記第1排他的論理和回路に入力されたときに、前記初期値を前記第1排他的論理和回路に出力することを特徴とする付記7~10のいずれか1つに記載の誤り訂正装置。付記12前記デスクランブル回路から前記デスクランブルデータが入力されて、該デスクランブルデータに基づいてEDCシンドロームを生成するEDCシンドローム生成回路と、前記EDCシンドローム生成回路により生成されるEDCシンドロームの中間結果を前記データフレーム毎に格納するEDCメモリ部と、を備えたことを特徴とする付記1~11のいずれか1つに記載の誤り訂正装置。付記13前記EDCシンドローム生成回路は、前記デスクランブル回路からバイトデータとして入力される前記デスクランブルデータと、第2選択回路から入力されるシフト演算値との排他的論理和を取って、EDC演算値を生成する第2排他的論理和回路と、前記第2排他的論理和から入力されるEDC演算値に対して、所定の第2生成多項式に従って1バイト分シフトさせる重み付けをしてシフト演算値を生成し、該シフト演算値を前記EDCメモリ部に格納する第1重み付け回路と、前記第2排他的論理和から入力されるEDC演算値に対して、{前記データブロックの列方向における全バイト数1-各読み出しブロックの列方向におけるバイト数}バイト分、前記第2生成多項式に従ってシフトさせる重み付けをしてシフト演算値を生成する第2重み付け回路と、前記第2排他的論理和回路から入力されるEDC演算値に対して、前記第2生成多項式に従って108バイト分シフトさせる重み付けをしてシフト演算値を生成し、該シフト演算値を前記EDCメモリ部に格納する第3重み付け回路と、前記第2重み付け回路からのシフト演算値と、前記EDCメモリ部からのEDCシンドロームの中間結果との排他的論理和を取って、シフト演算値を生成する第3排他的論理和回路と、を備え、前記第2選択回路は、前記第2排他的論理和回路に入力される前記バイトデータの前記データブロックにおける位置に応じて、前記第1重み付け回路、前記第2重み付け回路及び前記第3排他的論理和回路から入力されるシフト演算値のうちのいずれか一つのシフト演算値を前記第2排他的論理和回路に出力することを特徴とする付記12に記載の誤り訂正装置。付記14所定数のデータフレームにスクランブル処理が施され、スクランブルされたデータフレームが所定サイズのデータブロックに変換され、該データブロックの各列にパリティが付加されたパリティ付加ブロックが生成され、該パリティ付加ブロックに対してインターリーブ処理が施されクラスタが生成され、該クラスタが変調されたデータの誤りを訂正する誤り訂正装置であって、前記変調されたデータを復調して復調されたデータとしてクラスタを生成する復調回路と、前記復調回路からのクラスタが所定行数毎に分割された分割クラスタが格納される内蔵メモリ部と、前記内蔵メモリ部を通じて、前記分割クラスタをデインターリーブ処理して生成したパリティ付加ブロックにおける各データが列方向に入力され、該各データに基づいてパリティ演算結果を前記パリティ付加ブロックの列毎に生成するパリティ演算結果生成回路と、前記内蔵メモリ部を通じて、前記分割クラスタにデインターリーブ処理が施され、前記データブロックにおける各スクランブルデータが列方向に読み出しブロックとして入力され、該スクランブルデータに基づいてEDCシンドロームを生成するEDCシンドローム生成回路と、前記EDCシンドローム生成回路により生成されるEDCシンドロームの中間結果を前記データフレーム毎に格納するEDCメモリ部と、前記パリティ演算結果に基づいて、前記スクランブルデータに対して誤り訂正処理を行う誤り訂正回路と、を備え、前記EDCシンドローム生成回路は、前記内蔵メモリ部からバイトデータとして入力される前記スクランブルデータと、第2選択回路から入力されるシフト演算値との排他的論理和を取って、EDC演算値を生成する第2排他的論理和回路と、前記第2排他的論理和から入力されるEDC演算値に対して、所定の第2生成多項式に従って1バイト分シフトさせる重み付けをしてシフト演算値を生成し、該シフト演算値を前記EDCメモリ部に格納する第1重み付け回路と、前記第2排他的論理和から入力されるEDC演算値に対して、{前記データブロックの列方向における全バイト数1-各読み出しブロックの列方向におけるバイト数}バイト分、前記第2生成多項式に従ってシフトさせる重み付けをしてシフト演算値を生成する第2重み付け回路と、前記第2排他的論理和回路から入力されるEDC演算値に対して、前記第2生成多項式に従って108バイト分シフトさせる重み付けをしてシフト演算値を生成し、該シフト演算値を前記EDCメモリ部に格納する第3重み付け回路と、前記第2重み付け回路からのシフト演算値と、前記EDCメモリ部からのEDCシンドロームの中間結果との排他的論理和を取って、シフト演算値を生成する第3排他的論理和回路と、を備え、前記第2選択回路は、前記第2排他的論理和回路に入力される前記バイトデータの前記データブロックにおける位置に応じて、前記第1重み付け回路、前記第2重み付け回路及び前記第3排他的論理和回路から入力されるシフト演算値のうちのいずれか一つのシフト演算値を前記第2排他的論理和回路に出力することを特徴とする誤り訂正装置。付記15前記EDCシンドローム生成回路から外部メモリに格納されたEDCシンドロームが格納される補正メモリ部と、前記誤り訂正回路により算出される誤り位置及び誤り数値に基づいて、前記補正メモリ部に格納されたEDCシンドロームを補正するとともに、前記クラスタのBISクラスタ内のスクランブル値の初期値から算出されるスクランブル値に基づいて、前記EDCシンドロームを補正するEDC補正回路を備えたことを特徴とする付記14に記載の誤り訂正装置。付記16前記EDCシンドローム生成回路は、前記各読み出しブロックの中で、前記データブロックにおけるデータ配置と同様の順序にて前記各バイトデータを読み出すことを特徴とする付記14又は15に記載の誤り訂正装置。付記17前記EDCシンドローム生成回路は、前記各読み出しブロックの中で、外部メモリの行方向に並んで格納されるデータフレームの同一列の前記バイトデータを連続して順番に読み出すことを特徴とする付記14又は15に記載の誤り訂正装置。付記18前記EDCシンドローム生成回路は、前記第2排他的論理和回路から入力されるEDC演算値に対して、前記第2生成多項式に従って211バイト分、逆シフトさせる重み付けをしてシフト演算値を生成し、該シフト演算値を前記EDCメモリ部に格納する第4重み付け回路を備えたことを特徴とする付記13~17のいずれか1つに記載の誤り訂正装置。付記19前記データブロックにおいて最初に処理されるデータフレームと該データフレームから1つおきに処理されるデータフレームとを偶数データフレームとし、該偶数データフレームの次に処理されるデータフレームを奇数データフレームとしたときに、前記EDCメモリ部には、前記各読み出しブロックの前記各データフレームにおける最終行最終列のバイトデータが前記第2排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第1重み付け回路を通じて前記EDCシンドロームの中間結果として格納され、前記EDCシンドローム生成回路に最後に入力される最終読み出しブロックの前記各偶数データフレームにおける最終行最終列のバイトデータが前記第2排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第3重み付け回路を通じて前記EDCシンドロームとして格納され、前記最終読み出しブロックの前記各奇数データフレームにおける最終行最終列のバイトデータが前記第2排他的論理和回路に入力されたときに生成されるEDC演算値が、前記EDCシンドロームとして格納されることを特徴とする付記13~18のいずれか1つに記載の誤り訂正装置。付記20前記データブロックにおいて最初に処理されるデータフレームと該データフレームから1つおきに処理されるデータフレームとを偶数データフレームとし、該偶数データフレームの次に処理されるデータフレームを奇数データフレームとしたときに、前記EDCメモリ部には、前記各偶数データフレームにおけるEDC付加時の最終バイトデータが前記第2排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第4重み付け回路を通じて前記EDCシンドロームの中間結果として格納されることを特徴とする付記18に記載の誤り訂正装置。付記21前記EDCシンドローム生成回路は、前記各読み出しブロックの前記各データフレームにおける各列の最終行のバイトデータが前記第2排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第2重み付け回路を通じてシフト演算値として格納される作業メモリを備え、前記作業メモリは、前記格納されたシフト演算値を前記第3排他的論理和回路及び前記第2選択回路に出力し、前記第2選択回路は、前記第2排他的論理和回路に入力される前記バイトデータの前記データブロックにおける位置に応じて、前記第1重み付け回路、前記作業メモリ及び前記第3排他的論理和回路から入力されるシフト演算値のうちのいずれか一つのシフト演算値を前記第2排他的論理和回路に出力することを特徴とする付記13~20のいずれか1つに記載の誤り訂正装置。付記22前記第2選択回路は、前記各読み出しブロックの前記各データフレームにおける2行目以降のバイトデータが前記第2排他的論理和回路に入力されるときに、前記第1重み付け回路から入力されるシフト演算値を出力し、前記各読み出しブロックの前記各データフレームにおける1列目及び最終列を除く各列の1行目のバイトデータが前記第2排他的論理和回路に入力されるときに、前記第2重み付け回路から入力されるシフト演算値を出力し、前記各読み出しブロックの前記各データフレームにおける最終列の1行目のバイトデータが前記第2排他的論理和回路に入力されるときに、前記第3排他的論理和回路から入力されるシフト演算値を出力することを特徴とする付記13~20のいずれか1つに記載の誤り訂正装置。付記23前記第2選択回路は、前記各読み出しブロックの前記各データフレームにおける2行目以降のバイトデータが前記第2排他的論理和回路に入力されるときに、前記第1重み付け回路から入力されるシフト演算値を出力し、前記各読み出しブロックの前記各データフレームにおける1列目及び最終列を除く各列の1行目のバイトデータが前記第2排他的論理和回路に入力されるときに、前記作業メモリから入力されるシフト演算値を出力し、前記各読み出しブロックの前記各データフレームにおける最終列の1行目のバイトデータが第前記2排他的論理和回路に入力されるときに、前記第3排他的論理和回路から入力されるシフト演算値を出力することを特徴とする付記21に記載の誤り訂正装置。付記24前記EDCシンドローム生成回路は、入力されるベクターを、所定の第2生成多項式に従って1ビット分、逆シフトさせて新たなベクターを生成する第1逆シフト演算器がN個直列に接続された第1逆シフト演算器群と、該N個の逆シフト演算器の最終段から入力されるベクターを、{前記データブロックにおける列方向の全ビット数-各読み出しブロックの列方向におけるビット数}ビット分、前記第2生成多項式に従って逆シフトさせて新たなベクターを生成する第2逆シフト演算器と、を含んで構成されるベクター生成回路と、前記デスクランブル回路から前記デスクランブルデータがビットデータとして入力されるとともに、前記N個の第1逆シフト演算器に入力されるベクターが入力されるN個のアンド回路と、前記N個のアンド回路からの演算結果の排他的論理和を取って、前記EDCシンドロームの中間結果を生成する第4排他的論理和回路と、前記アンド回路に入力される前記ビットデータの前記データブロックにおける位置に応じて、前記最終段の第1逆シフト演算器及び前記第2逆シフト演算器から入力されるベクターのうちのいずれか一つのベクターを初段の前記第1逆シフト演算器に出力する第3選択回路と、を備えることを特徴とする付記12に記載の誤り訂正装置。付記25所定数のデータフレームにスクランブル処理が施され、スクランブルされたデータフレームが所定サイズのデータブロックに変換され、該データブロックの各列にパリティが付加されたパリティ付加ブロックが生成され、該パリティ付加ブロックに対してインターリーブ処理が施されクラスタが生成され、該クラスタが変調されたデータの誤りを訂正する誤り訂正装置であって、前記変調されたデータを復調して復調されたデータとしてクラスタを生成する復調回路と、前記復調回路からのクラスタが所定行数毎に分割された分割クラスタが格納される内蔵メモリ部と、前記内蔵メモリ部を通じて、前記分割クラスタをデインターリーブ処理して生成したパリティ付加ブロックにおける各データが列方向に入力され、該各データに基づいてパリティ演算結果を前記パリティ付加ブロックの列毎に生成するパリティ演算結果生成回路と、前記内蔵メモリ部を通じて、前記分割クラスタにデインターリーブ処理が施され、前記データブロックにおける各スクランブルデータが列方向に読み出しブロックとして入力され、該スクランブルデータに基づいてEDCシンドロームを生成するEDCシンドローム生成回路と、前記EDCシンドローム生成回路により生成されるEDCシンドロームの中間結果を前記データフレーム毎に格納するEDCメモリ部と、前記パリティ演算結果に基づいて、前記スクランブルデータに対して誤り訂正処理を行う誤り訂正回路と、を備え、前記EDCシンドローム生成回路は、入力されるベクターを、所定の第2生成多項式に従って1ビット分、逆シフトさせて新たなベクターを生成する第1逆シフト演算器がN個直列に接続された第1逆シフト演算器群と、該N個の逆シフト演算器の最終段から入力されるベクターを、{前記データブロックにおける列方向の全ビット数-各読み出しブロックの列方向におけるビット数}ビット分、前記第2生成多項式に従って逆シフトさせて新たなベクターを生成する第2逆シフト演算器と、を含んで構成されるベクター生成回路と、前記復調回路から前記スクランブルデータがビットデータとして入力されるとともに、前記N個の第1逆シフト演算器に入力されるベクターが入力されるN個のアンド回路と、前記N個のアンド回路からの演算結果の排他的論理和を取って、前記EDCシンドロームの中間結果を生成する第4排他的論理和回路と、前記アンド回路に入力される前記ビットデータの前記データブロックにおける位置に応じて、前記最終段の第1逆シフト演算器及び前記第2逆シフト演算器から入力されるベクターのうちのいずれか一つのベクターを初段の前記第1逆シフト演算器に出力する第3選択回路と、を備えることを特徴とする誤り訂正装置。付記26前記データブロックにおいて最初に処理されるデータフレームと該データフレームから1つおきに処理されるデータフレームとを偶数データフレームとし、該偶数データフレームの次に処理されるデータフレームを奇数データフレームとしたときに、前記EDCシンドローム生成回路は、前記各読み出しブロックの前記偶数データフレームにおける1列目の最終行のビットデータに乗算されたベクターが前記最終段の第1逆シフト演算器を通じて格納される第2偶数レジスタと、前記各読み出しブロックの前記奇数データフレームにおける1列目の最終行のビットデータに乗算されたベクターが前記最終段の第1逆シフト演算器を通じて格納される第2奇数レジスタと、を備え、前記第3選択回路は、前記アンド回路に入力される前記ビットデータの前記データブロックにおける位置に応じて、前記最終段の第1逆シフト演算器、前記第2逆シフト演算器、前記第2偶数レジスタ及び前記第2奇数レジスタから入力されるベクターのうちのいずれか一つのベクターを前記初段の第1逆シフト演算器に出力することを特徴とする付記24又は25に記載の誤り訂正装置。付記27前記EDCシンドローム生成回路は、前記各クラスタにおけるEDC演算処理開始時の初期値設定において、前記第2偶数レジスタには、前記第2生成多項式に従って生成された16415次のベクターが格納されるとともに、前記第2奇数レジスタには、前記第2生成多項式に従って生成された15551次のベクターが格納されることを特徴とする付記26に記載の誤り訂正装置。付記28前記EDCシンドローム生成回路は、前記各読み出しブロックの前記偶数データフレームにおける各列の最終行のビットデータに乗算されたベクターが前記第2逆シフト演算器を通じて格納される偶数ラインレジスタと、前記各読み出しブロックの前記奇数データフレームにおける各列の最終行のビットデータに乗算されたベクターが前記第2逆シフト演算器を通じて格納される奇数ラインレジスタと、を備え、前記第3選択回路は、前記アンド回路に入力される前記ビットデータの前記データブロックにおける位置に応じて、前記最終段の第1逆シフト演算器、前記第2偶数レジスタ、前記第2奇数レジスタ、前記偶数ラインレジスタ及び前記奇数ラインレジスタから入力されるベクターのいずれか一つのベクターを前記初段の第1逆シフト演算器に出力することを特徴とする付記26又は27に記載の誤り訂正装置。付記29前記第3選択回路は、前記各読み出しブロックの前記各偶数データフレームにおける1行1列目の先頭ビットデータを含むNビット分のビットデータが前記N個のアンド回路に入力されるときに、前記第2偶数レジスタから入力されるベクターを出力し、前記各読み出しブロックの前記各奇数データフレームにおける1行1列目の先頭ビットデータを含むNビット分のビットデータが前記N個のアンド回路に入力されるときに、前記第2奇数レジスタから入力されるベクターを出力し、前記各読み出しブロックの前記各偶数データフレームにおける2列目以降の各列の1行目のビットデータを含むNビット分のビットデータが前記N個のアンド回路に入力されるときに、前記偶数ラインレジスタから入力されるベクターを出力し、前記各読み出しブロックの前記各奇数データフレームにおける2列目以降の各列の1行目のビットデータを含むNビット分のビットデータが前記N個のアンド回路に入力されるときに、前記奇数ラインレジスタから入力されるベクターを出力し、前記各読み出しブロックの前記各データフレームにおけるN1行目以降のビットデータを含むNビット分のビットデータが前記N個のアンド回路に入力されるときに、前記最終段の第1逆シフト演算器から入力されるベクターを出力することを特徴とする付記28に記載の誤り訂正装置。付記30誤り訂正済のデスクランブルデータに基づいてEDCシンドロームを生成するEDCシンドローム生成回路を備えたことを特徴とする付記1~11のいずれか1つに記載の誤り訂正装置。付記31前記内蔵メモリ部は、前記復調回路から前記分割クラスタ内のLDCクラスタが格納されるLDCデータメモリ部と、前記復調回路から前記クラスタ内のBISクラスタが格納されるBISメモリ部とを備え、前記BISメモリ部から前記BISクラスタを読み出し、該BISクラスタに基づいてBISシンドロームを生成するBISシンドローム生成回路を備えたことを特徴とする付記1~30のいずれか1つに記載の誤り訂正装置。付記32前記LDCデータメモリ部は、少なくとも2つのメモリから構成され、前記LDCデータメモリ部の少なくとも1つのメモリを前記復調回路からの前記分割クラスタ内のLDCクラスタを格納するデータ保存用として使用するとともに、前記LDCデータメモリ部の少なくとも1つのメモリを前記パリティ演算結果生成回路からアクセスされるアクセス用として使用することを特徴とする付記31に記載の誤り訂正装置。付記33前記内蔵メモリ部は、少なくとも2つのメモリから構成され、前記内蔵メモリ部の少なくとも1つのメモリを前記復調回路からの前記分割クラスタを格納するデータ保存用として使用するとともに、前記内蔵メモリ部の少なくとも1つのメモリを前記パリティ演算結果生成回路からアクセスされるアクセス用として使用することを特徴とする付記1~30のいずれか1つに記載の誤り訂正装置。付記34前記内蔵メモリ部から前記分割クラスタ内のBISクラスタが格納される小容量のBISメモリ部と、前記BISメモリ部から読み出した前記BISクラスタに基づいてBISシンドロームを生成することを特徴とする付記1~30,33のいずれか1つに記載の誤り訂正装置。付記35前記BISメモリ部は、少なくとも2つのメモリから構成され、前記BISメモリ部の少なくとも1つのメモリを、前記BISクラスタを格納するデータ保存用として使用するとともに、前記BISメモリ部の少なくとも1つのメモリを前記BISシンドローム生成回路からアクセスされるデータ出力用として使用することを特徴とする付記31,32,34のいずれか1つに記載の誤り訂正装置。付記36前記パリティ演算結果生成回路にて生成されるパリティ演算結果の中間結果を格納する小容量のLDCメモリ部を備えたことを特徴とする付記1~35のいずれか1つに記載の誤り訂正装置。付記37前記LDCメモリ部は、少なくとも2つのメモリから構成され、前記LDCメモリ部の少なくとも1つのメモリを前記パリティ演算結果生成回路からの前記パリティ演算結果の中間結果を格納するシンドローム保存用として使用するとともに、前記LDCメモリ部の少なくとも1つのメモリを外部メモリに前記パリティ演算結果を出力するデータ出力用として使用することを特徴とする付記36に記載の誤り訂正装置。付記38前記EDCシンドローム生成回路から外部メモリに格納されたEDCシンドロームが格納される補正メモリ部と、前記誤り訂正回路により算出される誤り位置及び誤り数値に基づいて、前記補正メモリ部に格納されたEDCシンドロームを補正するEDC補正回路と、を備えることを特徴とする付記12~37のいずれか1つに記載の誤り訂正装置。付記39誤り訂正装置とメモリとを含んで構成され、光ディスクに書き込まれたデータを読み出すデータ読み出し装置であって、前記誤り訂正装置は、所定数のデータフレームにスクランブル処理が施され、スクランブルされたデータフレームが所定サイズのデータブロックに変換され、該データブロックの各列にパリティが付加されたパリティ付加ブロックが生成され、該パリティ付加ブロックに対してインターリーブ処理が施されクラスタが生成され、該クラスタが変調されたデータが書き込まれる高密度光ディスクから前記変調されたデータを読み出して、該変調されたデータを復調して復調されたデータとしてクラスタを生成する復調回路と、前記復調回路からのクラスタが所定行数毎に分割された分割クラスタが格納される内蔵メモリ部と、前記内蔵メモリ部を通じて、前記分割クラスタをデインターリーブ処理して生成したパリティ付加ブロックにおける各データが列方向に入力され、該各データに基づいてパリティ演算結果を前記パリティ付加ブロックの列毎に生成するパリティ演算結果生成回路と、前記内蔵メモリ部を通じて、前記分割クラスタにデインターリーブ処理が施され、前記データブロックにおける各スクランブルデータが列方向に読み出しブロックとして入力され、該各スクランブルデータにデスクランブル処理を施したデスクランブルデータを生成するデスクランブル回路と、前記メモリに格納された前記パリティ演算結果に基づいて、前記メモリに格納された前記デスクランブルデータに対して誤り訂正処理を行う誤り訂正回路と、を備え、前記デスクランブル回路は、前記内蔵メモリ部からの前記スクランブルデータが入力される第1排他的論理和回路と、入力されたスクランブル値を、所定の第1生成多項式に従って1バイト分シフトさせて新たなスクランブル値を生成する第1シフト演算器と、入力されたスクランブル値を、{前記データブロックの列方向における全バイト数1-各読み出しブロックの列方向における全バイト数}バイト分、前記第1生成多項式に従ってシフトさせて新たなスクランブル値を生成する第2シフト演算器と、前記第1排他的論理和回路に入力される前記スクランブルデータの前記データブロックにおける位置に応じて、前記第1シフト演算器及び前記第2シフト演算器から入力されるスクランブル値のうちのいずれか一方のスクランブル値を前記第1排他的論理和回路、前記第1シフト演算器及び前記第2シフト演算器に出力する第1選択回路と、を備えることを特徴とするデータ読み出し装置。付記40所定数のデータフレームにスクランブル処理が施され、スクランブルされたデータフレームが所定サイズのデータブロックに変換され、該データブロックの各列にパリティが付加されたパリティ付加ブロックが生成され、該パリティ付加ブロックに対してインターリーブ処理が施されクラスタが生成され、該クラスタが変調されて光ディスクに書き込まれたデータの読み出しに使用されるデスクランブル回路であって、読み出したデータが入力される第1排他的論理和回路と、入力されたスクランブル値を、所定の第1生成多項式に従って1バイト分シフトさせて新たなスクランブル値を生成する第1シフト演算器と、入力されたスクランブル値を、{前記データブロックの列方向における全バイト数1-各読み出しブロックの列方向における全バイト数}バイト分、前記第1生成多項式に従ってシフトさせて新たなスクランブル値を生成する第2シフト演算器と、前記第1排他的論理和回路に入力される前記読み出したデータのデータブロックにおける位置に応じて、前記第1シフト演算器及び前記第2シフト演算器から入力されるスクランブル値のうちのいずれか一方のスクランブル値を前記第1排他的論理和回路、前記第1シフト演算器及び前記第2シフト演算器に出力する第1選択回路と、を備えることを特徴とするデスクランブル回路。"