JP5365683B2 - Error correction device - Google Patents

Error correction device Download PDF

Info

Publication number
JP5365683B2
JP5365683B2 JP2011283485A JP2011283485A JP5365683B2 JP 5365683 B2 JP5365683 B2 JP 5365683B2 JP 2011283485 A JP2011283485 A JP 2011283485A JP 2011283485 A JP2011283485 A JP 2011283485A JP 5365683 B2 JP5365683 B2 JP 5365683B2
Authority
JP
Japan
Prior art keywords
data
circuit
edc
input
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011283485A
Other languages
Japanese (ja)
Other versions
JP2012094245A (en
Inventor
展 小崎
一輝 碓井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2011283485A priority Critical patent/JP5365683B2/en
Publication of JP2012094245A publication Critical patent/JP2012094245A/en
Application granted granted Critical
Publication of JP5365683B2 publication Critical patent/JP5365683B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

<P>PROBLEM TO BE SOLVED: To provide an error correction device capable of reducing an access amount to an external memory even while suppressing an increase in a circuit scale due to an increase in a built-in memory capacity. <P>SOLUTION: A descramble circuit 20 includes an EOR circuit 21 for receiving scramble data sDu from a built-in memory in which an ECC cluster is divided from a demodulator circuit and stored. The descramble circuit 20 includes: a one-shift computing element 24 for shifting an inputted scramble value for one byte according to a generating function &Phi;(x) to generate a new scramble value, and a 209 shift computing element 25 for shifting the inputted scramble value for 209 bytes according to the generating function &Phi;(x) to generate a new scramble value. The descramble circuit 20 includes a selection circuit 28 and a selector 27 for selecting a scramble value to be outputted to the EOR circuit 21 in accordance with a processing order during scramble processing of the scramble data sDu to be inputted to the EOR circuit 21. <P>COPYRIGHT: (C)2012,JPO&amp;INPIT

Description

本発明は、誤り訂正装置に関するものである。
近年、光ディスク等の記録媒体における記憶容量の大容量化に伴い、そのデータ読み取り時間の高速化も要求されている。しかし、光ディスクの製造時の欠陥や光ディスクの表面に付着した汚れ等によって、その光ディスクから高速に正しくデータを読み取ることが困難である。そこで、このような光ディスクの記録データは、リード・ソロモン符号を用いたエラー訂正符号がデータと併せて記録されており、そのエラー訂正符号に基づいてエラー訂正処理を行うことにより正しいデータを復元するようにしている。このエラー訂正処理の処理時間が長いため、データ読み取り時間の高速化を実現するためには、上記エラー訂正処理の高速化が要求される。
The present invention relates to an error correction apparatus.
In recent years, with an increase in storage capacity in a recording medium such as an optical disk, it is also required to increase the data reading time. However, it is difficult to correctly read data from the optical disk at high speed due to defects during manufacture of the optical disk or dirt attached to the surface of the optical disk. Therefore, the recorded data of such an optical disc is recorded with an error correction code using a Reed-Solomon code together with the data, and correct data is restored by performing error correction processing based on the error correction code. I am doing so. Since the processing time of this error correction processing is long, in order to realize a high data reading time, it is necessary to increase the speed of the error correction processing.

近年、高画質のビデオデータと高音質のオーディオデータを長時間記録することができる新しい高密度光ディスク、例えばブルーレイディスク(BD:Blu-ray Disc)の開発が進んでいる(例えば、特許文献1参照)。このBDに記録されたデータには、そのデータの読み出し時等に発生する誤りを検出するための誤り検出符号(EDC:Error Detecting Code)と、読み出し時等に発生する誤りを訂正するための誤り訂正符号(ECC:Error Correcting Code)とが予め付加されている。   In recent years, development of a new high-density optical disc capable of recording high-quality video data and high-quality audio data for a long time, for example, a Blu-ray Disc (BD) (for example, see Patent Document 1). ). The data recorded on the BD includes an error detection code (EDC) for detecting an error that occurs when the data is read and an error for correcting an error that occurs when the data is read. An error correcting code (ECC) is added in advance.

ここで、BDに記憶されるデータのフォーマットについて詳述すると、図34に示すように、ユーザデータUDは、32個のデータフレームDF0〜DF31(総称してデータフレームDFという)から構成される。1つのデータフレームDFは、2048バイト(2kバイト)のUser Dataを含み、1データフレームDFの最後には下記式により算出された4バイトの誤り検出符号EDCが付加されている。   Here, the format of the data stored in the BD will be described in detail. As shown in FIG. 34, the user data UD is composed of 32 data frames DF0 to DF31 (collectively referred to as data frames DF). One data frame DF includes 2048 bytes (2 kbytes) of User Data, and a 4-byte error detection code EDC calculated by the following equation is added to the end of one data frame DF.

BDに記録される際には、各データフレームDF毎にスクランブル処理が施されて、図36(a)に示すように、各データフレームDFが1列に配列され、2052行×32列のデータd(u,v)からなるスクランブルデータフレームSDFに変換される。なお、データd(u,v)のuはスクランブルデータフレームSDFにおける行番号を示し、vはスクランブルデータフレームSDFにおける列番号を示す。 When the data is recorded on the BD, each data frame DF is scrambled, and each data frame DF is arranged in one column as shown in FIG. It is converted into a scrambled data frame SDF consisting of d (u, v). Note that u of the data d (u, v) indicates a row number in the scrambled data frame SDF, and v indicates a column number in the scrambled data frame SDF.

ここで、スクランブルデータは周知のように、スクランブル処理前の元データの各バイトとスクランブル値SCの下位8ビットとの排他的論理和を取ることによって生成されている。このようなスクランブル値SCの生成には、図35に示すスクランブル値生成回路100が使用される。図35に示すように、スクランブル値生成回路100は、所定の生成多項式Φ(x)(図35の例では、Φ(x)=x16+x15+x13+x+1)に従って構成されており、ビットb15〜b0からなる帰還型シフトレジスタ101と、EOR回路102,103,104とを備える。 Here, as is well known, the scrambled data is generated by taking the exclusive OR of each byte of the original data before the scramble process and the lower 8 bits of the scramble value SC. For the generation of such a scramble value SC, a scramble value generation circuit 100 shown in FIG. 35 is used. As shown in FIG. 35, the scramble value generation circuit 100 is configured according to a predetermined generation polynomial Φ (x) (in the example of FIG. 35, Φ (x) = x 16 + x 15 + x 13 + x 4 +1), A feedback shift register 101 composed of bits b15 to b0 and EOR circuits 102, 103, and 104 are provided.

EOR回路102は、ビットb15とビットb14との排他的論理和を取り、その演算結果をEOR回路103に出力する。EOR回路103は、EOR回路102からの演算結果とビットb12との排他的論理和を取り、その演算結果をEOR回路104に出力する。EOR回路104は、EOR回路103からの演算結果とビットb3との排他的論理和を取り、その演算結果をビットb0に出力する。   The EOR circuit 102 takes an exclusive OR of the bits b15 and b14 and outputs the operation result to the EOR circuit 103. The EOR circuit 103 takes an exclusive OR of the operation result from the EOR circuit 102 and the bit b12 and outputs the operation result to the EOR circuit 104. The EOR circuit 104 takes an exclusive OR of the operation result from the EOR circuit 103 and the bit b3, and outputs the operation result to the bit b0.

シフトレジスタ101は、予め設定されたスクランブル値の初期値S0を取り込み、その初期値S0の下位8ビット(ビットb7〜b0)を、元データが入力されるEOR回路に出力する。そして、そのEOR回路において、スクランブル値SC(初期値S0)の下位8ビットと各データフレームの1バイト目のデータD0との排他的論理和(以下、本明細書における数式において、排他的論理和を^で表す)を取ることで、データD0にスクランブル処理が施される。すなわち、データD0にスクランブル処理を施した後のスクランブルデータsD0は、下記式に従って生成される。   The shift register 101 takes in an initial value S0 of a preset scramble value and outputs the lower 8 bits (bits b7 to b0) of the initial value S0 to an EOR circuit to which original data is input. In the EOR circuit, the exclusive OR of the lower 8 bits of the scramble value SC (initial value S0) and the data D0 of the first byte of each data frame (hereinafter referred to as an exclusive OR Scramble processing is performed on the data D0. That is, the scrambled data sD0 after the data D0 is scrambled is generated according to the following equation.

なお、1つのユーザデータUD内では、全てのデータフレームDF0〜DF31について同一の初期値S0が使用される。 In one user data UD, the same initial value S0 is used for all data frames DF0 to DF31.

次に、シフトレジスタ101は、クロック信号CLKのパルスが入力される毎にビットb14〜b0の値をそれぞれビットb15〜b1にシフトさせるとともに、EOR回路104の出力をビットb0として取り込む。そして、スクランブル値生成回路100はクロック信号CLKの8パルス後に、すなわち8ビット(1バイト)分シフトさせた後に、そのときのビットb7〜b0を上記元データが入力されるEOR回路に出力する。ここで、このときのスクランブル値SCをS0・γと表す。このγは、上記生成多項式Φ(x)で与えられる1バイトシフト演算子であり、上記S0・γは、初期値S0から生成多項式Φ(x)に従って1バイト分シフトさせたときに得られるスクランブル値SCであることを示している。そして、上記スクランブル値SC(=S0・γ)の下位8ビットと各データフレームDFの2バイト目のデータD1との排他的論理和を取ることで、データD1にスクランブル処理が施される。すなわち、データD1に対するスクランブルデータsD1は、下記式に従って生成される。 Next, every time a pulse of the clock signal CLK is input, the shift register 101 shifts the values of the bits b14 to b0 to the bits b15 to b1, respectively, and takes in the output of the EOR circuit 104 as the bit b0. Then, the scramble value generation circuit 100 outputs the bits b7 to b0 at that time to the EOR circuit to which the original data is input after 8 pulses of the clock signal CLK, that is, after shifting by 8 bits (1 byte). Here, representing the scramble value SC of the time and S0 · γ 1. Γ is a 1-byte shift operator given by the generator polynomial Φ (x), and S0 · γ 1 is obtained by shifting the initial value S0 by 1 byte according to the generator polynomial Φ (x). The scramble value SC is indicated. The data D1 is scrambled by calculating an exclusive OR between the lower 8 bits of the scramble value SC (= S0 · γ 1 ) and the data D1 of the second byte of each data frame DF. That is, the scramble data sD1 for the data D1 is generated according to the following equation.

以後同様に、スクランブルデータsD2〜sD2051が下記式に従って生成される。 Thereafter, similarly, scrambled data sD2 to sD2051 are generated according to the following equation.

なお、S0・γは、初期値S0から生成多項式Φ(x)に従って3バイト分シフトさせたときに得られるスクランブル値SCであることを示すとともに、S0・γ2051は、初期値S0から生成多項式Φ(x)に従って2051バイト分シフトさせたときに得られるスクランブル値SCであることを示す。 S0 · γ 3 indicates a scramble value SC obtained by shifting the initial value S0 by 3 bytes according to the generator polynomial Φ (x), and S0 · γ 2051 is generated from the initial value S0. The scramble value SC obtained when shifted by 2051 bytes according to the polynomial Φ (x) is shown.

そして、このように生成された各データフレームDFのスクランブルデータsD0〜sD2051が列方向に上から順に配列されると、上記スクランブルデータフレームSDFが生成される。   When the scrambled data sD0 to sD2051 of each data frame DF generated in this way is arranged in order from the top in the column direction, the scrambled data frame SDF is generated.

次に、図36に示すように、スクランブルデータフレームSDF(図36(a)参照)は、216行×304列のデータブロックDB(図36(b)参照)に変換される。詳しくは、スクランブルデータフレームSDFの1つのデータフレームDFの列方向の各データd(u,v)が、図36(b)に示す実線の矢印の順にデータブロックDBに格納される。すなわち、データフレームDF0のデータd(0,0)〜データd(215,0)は、データブロックDBの1列目に上から順に格納される。また、データフレームDF0のデータd(216,0)〜d(431,0)は、データブロックDBの2列目に上から順に格納される。そして、データフレームDF0のデータd(1944,0)〜データd(2051,0)は、データブロックDBの10列目の1行目〜108行目に上から順に格納される。次に、データフレームDF1のデータd(0,1)〜データ(107,1)は、データブロックDBのデータフレームDF0の最後のデータd(2051,0)が格納された次の位置、すなわち10列目の109行目〜216行目に上から順に格納される。また、データフレームDF1のデータd(108,1)〜d(323,1)は、データブロックDBの11列目に上から順に格納される。そして、データフレームDF1のデータd(1836,1)〜データd(2051,1)は、データブロックDBの19列目に上から順に格納される。データフレームDF2〜DF31についても、データフレームDF0,DF1と同様にデータブロックDBに格納される。このようにデータブロックDBに各データフレームDFのデータd(u,v)が格納されると、偶数データフレーム(例えば、データフレームDF0.DF2,DF4)と奇数データフレーム(例えば、データフレームDF1,DF3,DF5)とを合わせると、216行×19列の2次元配列されたブロックとなる。従って、1つのデータブロックDB内のデータフレーム配列は、2データフレームDF毎に繰り返し配列となっている。   Next, as shown in FIG. 36, the scrambled data frame SDF (see FIG. 36A) is converted into a data block DB of 216 rows × 304 columns (see FIG. 36B). Specifically, each data d (u, v) in the column direction of one data frame DF of the scrambled data frame SDF is stored in the data block DB in the order of the solid line arrows shown in FIG. That is, data d (0, 0) to data d (215, 0) of the data frame DF0 are stored in order from the top in the first column of the data block DB. The data d (216, 0) to d (431, 0) of the data frame DF0 are stored in order from the top in the second column of the data block DB. Data d (1944, 0) to data d (2051, 0) of the data frame DF0 are sequentially stored from the top to the 10th column in the 10th column of the data block DB. Next, data d (0, 1) to data (107, 1) of the data frame DF1 are the next positions where the last data d (2051, 0) of the data frame DF0 of the data block DB is stored, that is, 10 The 109th to 216th rows in the column are stored in order from the top. The data d (108, 1) to d (323, 1) of the data frame DF1 are sequentially stored from the top in the 11th column of the data block DB. Data d (1836, 1) to data d (2051, 1) of the data frame DF1 are sequentially stored from the top in the 19th column of the data block DB. The data frames DF2 to DF31 are also stored in the data block DB in the same manner as the data frames DF0 and DF1. When the data d (u, v) of each data frame DF is thus stored in the data block DB, even data frames (for example, data frames DF0.DF2, DF4) and odd data frames (for example, data frames DF1, for example) are stored. When combined with DF3 and DF5), a two-dimensionally arranged block of 216 rows × 19 columns is obtained. Therefore, the data frame array in one data block DB is a repeated array every two data frames DF.

次に、図37に示すように、この216行×304列のデータd(u,v)からなるデータブロックDBに、32行×304列のパリティビットp(i,j)からなるECC部LDCp(ECCパリティ)が付加される。すなわち、データブロックDBにおける各列に、32バイトのパリティビットp(i,j)がそれぞれ付加される。これにより、216行×304列のデータ成分e(i,j)及び32行×304列のパリティビットp(i,j)からなるパリティ付加ブロックPB(LDC(Long-distance code)ブロック)が形成される。なお、データ成分e(i,j)及びパリティビットp(i,j)のiはパリティ付加ブロックPBにおける行番号を示し、jはパリティ付加ブロックPBにおける列番号を示す。また、パリティビットpは、下記式により算出されて付加されたものである。   Next, as shown in FIG. 37, an ECC unit LDCp consisting of parity bits p (i, j) of 32 rows × 304 columns is added to the data block DB consisting of data d (u, v) of 216 rows × 304 columns. (ECC parity) is added. That is, a 32-byte parity bit p (i, j) is added to each column in the data block DB. As a result, a parity addition block PB (LDC (Long-distance code) block) composed of data components e (i, j) of 216 rows × 304 columns and parity bits p (i, j) of 32 rows × 304 columns is formed. Is done. Note that i of the data component e (i, j) and the parity bit p (i, j) indicates a row number in the parity addition block PB, and j indicates a column number in the parity addition block PB. The parity bit p is calculated and added by the following equation.

上記ECC部LDCpは、パリティ付加ブロックPBにおける列方向のデータに対する誤り訂正符号であり、パリティ付加ブロックPBの列毎の誤り訂正を行うためのLDCシンドローム(パリティ演算結果)を生成するために付加されている。 The ECC unit LDCp is an error correction code for data in the column direction in the parity addition block PB, and is added to generate an LDC syndrome (parity calculation result) for performing error correction for each column of the parity addition block PB. ing.

次に、248行×304列のデータからなるパリティ付加ブロックPBが496(=248×2)行×152(=304/2)列のLDCクラスタLDCc(図39参照)に変換される。   Next, the parity added block PB made up of 248 rows × 304 columns of data is converted into 496 (= 248 × 2) rows × 152 (= 304/2) columns of LDC clusters LDCc (see FIG. 39).

まず、データ成分e(i,j)及びパリティビットp(i,j)が第1インターリーブ処理されて、データ成分e(i,j)及びパリティビットp(i,j)が図38における位置f(m,n)に所定の規則に従ってインターリーブされる。ここで、位置f(m,n)のmはLDCクラスタLDCcにおける行番号を示し、nはLDCクラスタLDCcにおける列番号を示す。   First, the data component e (i, j) and the parity bit p (i, j) are first interleaved, and the data component e (i, j) and the parity bit p (i, j) are located at the position f in FIG. (M, n) is interleaved according to a predetermined rule. Here, m at the position f (m, n) indicates a row number in the LDC cluster LDCc, and n indicates a column number in the LDC cluster LDCc.

第1インターリーブ処理について図37及び図38に従って詳述すると、j=0,2,4,6,8,・・・,302(偶数列)のデータ成分e(i,j)及びパリティビットp(i,j)は、位置f(m(=2i),n(=j/2))にインターリーブされる。また、j=1,3,5,7,9,・・・,303(奇数列)のデータ成分e(i,j)及びパリティビットp(i,j)は、位置f(m(=2i+1),n(=(j−1)/2))にインターリーブされる。例えば、偶数列のデータ成分e(1,2)は、m=2×1=2、n=2/2=1であるため、位置f(2,1)にインターリーブされる。また、奇数列のデータ成分e(1,3)は、m=2×1+1=3、n=(3−1)/2=1であるため、位置f(3,1)にインターリーブされる。これにより、図38に示す496行×152列のデータからなる第1インターリーブ処理済のブロックに変換される。   The first interleaving process will be described in detail with reference to FIGS. 37 and 38. Data components e (i, j) of j = 0, 2, 4, 6, 8,..., 302 (even columns) and parity bits p ( i, j) is interleaved at position f (m (= 2i), n (= j / 2)). Further, the data component e (i, j) and the parity bit p (i, j) of j = 1, 3, 5, 7, 9,..., 303 (odd column) are located at the position f (m (= 2i + 1). ), N (= (j−1) / 2)). For example, the data component e (1,2) in the even column is interleaved at the position f (2,1) because m = 2 × 1 = 2 and n = 2/2 = 1. Further, the data component e (1, 3) in the odd-numbered column is interleaved at the position f (3, 1) because m = 2 × 1 + 1 = 3 and n = (3-1) / 2 = 1. As a result, the block is converted into a block that has been subjected to the first interleave processing and includes 496 rows × 152 columns of data shown in FIG.

次に、図38に示す第1インターリーブ処理済の各データ(データ成分e及びパリティビットp)が第2インターリーブ処理されて、図39に示すLDCクラスタLDCcが形成される。この第2インターリーブ処理について詳述すると、位置f(m,n)に配置されたデータ成分e(i,j)及びパリティビットp(i,j)は、下記式のシフト量SIバイト分だけ同一行内の左方向にシフトされる。   Next, the first interleaved data (data component e and parity bit p) shown in FIG. 38 is second interleaved to form the LDC cluster LDCc shown in FIG. The second interleaving process will be described in detail. The data component e (i, j) and the parity bit p (i, j) arranged at the position f (m, n) are the same by the shift amount SI bytes in the following equation. Shift left in line.

すなわち、位置f(m,n(=n1))に配置されたデータ成分e(i,j)及びパリティビットp(i,j)は、位置f(m,n(n2=n1−SI))にインターリーブされる。但し、このシフト方向は巡回的であるため、n2が負の値になった場合には、n2=−1がn=151に対応し、n2=−2がn=150に対応するように、負の値であるn2の絶対値が大きくなるに連れて、実際のシフト先の列番号nは151から順に小さくなっていく。 That is, the data component e (i, j) and the parity bit p (i, j) arranged at the position f (m, n (= n1)) are the position f (m, n (n2 = n1-SI)). Is interleaved. However, since this shift direction is cyclic, when n2 becomes a negative value, n2 = −1 corresponds to n = 151, and n2 = −2 corresponds to n = 150. As the absolute value of n2, which is a negative value, increases, the actual column number n of the shift destination decreases sequentially from 151.

例えば、m=2,3の位置fに配置された各データ成分eは、SI=mod(1×3,152)=3バイト分だけ同一行内の左方向にシフトされる。従って、図38において位置f(2,0)及び位置f(3,0)にそれぞれ配置されていたデータ成分e(1,0)及びデータ成分e(1,1)は、図39に示すように、n2=0−3=−3に対応する列番号n=149の位置f(2,149)及び位置f(3,149)にそれぞれインターリーブされる。同様に、m=2,3の位置fに配置された各データ成分eは、全て同一行内において左方向に3バイト分だけシフトされた位置fにインターリーブされる。   For example, each data component e arranged at the position f where m = 2, 3 is shifted to the left in the same row by SI = mod (1 × 3, 152) = 3 bytes. Therefore, the data component e (1, 0) and the data component e (1, 1) respectively arranged at the position f (2, 0) and the position f (3, 0) in FIG. 38 are as shown in FIG. Are interleaved at position f (2,149) and position f (3,149) of column number n = 149 corresponding to n2 = 0-3 = -3. Similarly, each data component e arranged at the position f where m = 2, 3 is all interleaved at the position f shifted by 3 bytes to the left in the same row.

このようにパリティ付加ブロックPBに対して、第1インターリーブ処理及び第2インターリーブ処理が完了すると、図39に示すLDCクラスタLDCcが形成される。
次に、図40に示すように、アドレス情報やユーザコントロールデータ等を含むデータブロック(720バイト)とパリティ(768バイト)とからなる496行×3列のBIS(Burst Indicator Subcode)クラスタBIScが、上記LDCクラスタLDCcにインターリーブされる。詳しくは、図40(b)に示すように、BISクラスタBIScは1列毎に分割され、LDCクラスタLDCcの38列毎に、分割後のBISクラスタBISc(図40(a)のB1〜B3)が1列ずつ挿入される。
As described above, when the first interleaving process and the second interleaving process are completed for the parity added block PB, the LDC cluster LDCc shown in FIG. 39 is formed.
Next, as shown in FIG. 40, a B96 (Burst Indicator Subcode) cluster BISc of 496 rows × 3 columns composed of a data block (720 bytes) including address information, user control data, and the like and parity (768 bytes) Interleaved with the LDC cluster LDCc. Specifically, as shown in FIG. 40B, the BIS cluster BISc is divided for each column, and the divided BIS cluster BISc (B1 to B3 in FIG. 40A) is divided into 38 columns of the LDC cluster LDCc. Are inserted one column at a time.

そして、LDCクラスタLDCcとBISクラスタBIScとからなるECCクラスタECCc(図40(b)参照)が17PP変調方式等により変調されて、BD上に書き込まれる。このようなフォーマットにより、データ再生時の誤り訂正処理において、高い誤り検出・訂正能力が確保される。   Then, an ECC cluster ECCc (see FIG. 40B) composed of the LDC cluster LDCc and the BIS cluster BISc is modulated by the 17PP modulation method or the like and written onto the BD. With such a format, high error detection / correction capability is ensured in error correction processing during data reproduction.

次に、このようにBDに書き込まれたデータを読み出す動作について説明する。図41に示すように、記録媒体としてのBDに対してデータの入出力を行うコントローラ110では、まず、復調回路111がBDからデータを読み出し、該データを復調したデータ、すなわちECCクラスタECCcをバッファメモリ120に格納する。次に、LDCシンドローム生成回路112は、バッファメモリ120に格納されたECCクラスタECCcにおけるLDCクラスタLDCcを、上記第1及び第2インターリーブ処理により並び替えられる前の配置順になるように各データを並び替えながら読み出す(第1及び第2デインターリーブ処理を施しながら各データを読み出す)。すなわち、LDCシンドローム生成回路112には、第1及び第2インターリーブ処理が施される前のパリティ付加ブロックPB(図37参照)が入力される。そして、LDCシンドローム生成回路112は、入力されるパリティ付加ブロックPBに基づいてLDCシンドロームを生成し、そのLDCシンドロームを誤り訂正回路114に出力する。   Next, an operation of reading data written on the BD in this way will be described. As shown in FIG. 41, in the controller 110 that inputs / outputs data to / from a BD as a recording medium, first, the demodulation circuit 111 reads data from the BD, and buffers the data obtained by demodulating the data, that is, the ECC cluster ECCc. Store in memory 120. Next, the LDC syndrome generation circuit 112 rearranges the data so that the LDC cluster LDCc in the ECC cluster ECCc stored in the buffer memory 120 is in the arrangement order before being rearranged by the first and second interleaving processes. (Read each data while performing the first and second deinterleave processing). That is, the LDC syndrome generation circuit 112 receives the parity addition block PB (see FIG. 37) before the first and second interleaving processes are performed. Then, the LDC syndrome generation circuit 112 generates an LDC syndrome based on the input parity addition block PB and outputs the LDC syndrome to the error correction circuit 114.

また、BISシンドローム生成回路113は、バッファメモリ120に格納されたECCクラスタECCcにおけるBISクラスタBIScを読み出す。そして、BISシンドローム生成回路113は、読み出したBISクラスタBIScに基づいてBISシンドロームを生成し、そのBISシンドロームを誤り訂正回路114に出力する。誤り訂正回路114は、入力されるLDCシンドローム及びBISシンドロームに基づいて、バッファメモリ120に格納されたECCクラスタECCc内のユーザデータUD等の誤りを訂正する。   Further, the BIS syndrome generation circuit 113 reads out the BIS cluster BISc in the ECC cluster ECCc stored in the buffer memory 120. The BIS syndrome generation circuit 113 generates a BIS syndrome based on the read BIS cluster BISc, and outputs the BIS syndrome to the error correction circuit 114. The error correction circuit 114 corrects errors such as user data UD in the ECC cluster ECCc stored in the buffer memory 120 based on the input LDC syndrome and BIS syndrome.

次に、デスクランブル回路115は、バッファメモリ120から誤り訂正処理済のLDCクラスタLDCc内のユーザデータUDに相当するデータ成分eを、第1及び第2デインターリーブ処理を施しながら読み出す。すなわち、デスクランブル回路115には、誤り訂正処理済のデータブロックDB(図36(b)参照)が入力される。そして、デスクランブル回路115は、データフレームDF毎にスクランブル処理時に使用されたスクランブル値SCを生成し、そのスクランブル値SCの下位8ビットと読み出されたデータブロックDBの各バイトとの排他的論理和を順番に取って、デスクランブル処理を実行する。従って、デスクランブルデータdD0〜dD2051は、下記式により生成される。   Next, the descrambling circuit 115 reads the data component e corresponding to the user data UD in the error-corrected LDC cluster LDCc from the buffer memory 120 while performing the first and second deinterleaving processes. That is, the data block DB (see FIG. 36B) subjected to error correction processing is input to the descrambling circuit 115. Then, the descrambling circuit 115 generates a scramble value SC used at the time of the scramble processing for each data frame DF, and performs exclusive logic between the lower 8 bits of the scramble value SC and each byte of the read data block DB. The sum is taken in order and the descrambling process is executed. Accordingly, the descrambling data dD0 to dD2051 is generated by the following equation.

次に、EDCチェック回路116は、デスクランブル回路115から入力されるデスクランブル処理済のデータブロックDB(ユーザデータUD等)をホストコンピュータ等の外部機器に転送するとともに、上記デスクランブル処理済のデータブロックDBに基づいてEDCチェックを行う。EDCチェック回路116におけるEDCチェックは、まずデータフレームDF(2052バイト)毎にEDCシンドロームEDCSを生成する。詳しくは、図42に示すように、デスクランブル回路115からEDCチェック回路116には、dD0→dD1→dD2→・・・→dD2049→dD2050→dD2051の順にデスクランブルデータが入力される。このデスクランブルデータdDu(2052バイト)の次数重みを表す多項式表現(入力多項式)は、 Next, the EDC check circuit 116 transfers the descrambled data block DB (user data UD, etc.) input from the descrambling circuit 115 to an external device such as a host computer and the descrambled data. EDC check is performed based on the block DB. The EDC check in the EDC check circuit 116 first generates an EDC syndrome EDCS for each data frame DF (2052 bytes). Specifically, as shown in FIG. 42, descrambling data is input from descrambling circuit 115 to EDC check circuit 116 in the order of dD0 → dD1 → dD2 →... → dD2049 → dD2050 → dD2051. A polynomial expression (input polynomial) representing the order weight of this descrambling data dDu (2052 bytes) is:

となる。ここで、EDC演算は入力多項式の各次数をベクターβで重み付けする演算であるため、EDCシンドロームEDCSは下記式により算出される。 It becomes. Here, since the EDC operation is an operation in which each order of the input polynomial is weighted by the vector β, the EDC syndrome EDCS is calculated by the following equation.

すなわち、このEDCシンドロームEDCSは、1バイトのデータ(例えば、デスクランブルデータdD0,dD2050等)を演算する度に、各データに1次のベクターβの重み付けを行うことで得ることができる。従って、入力順序が早いデータほど重み付けされるベクターβの次数が高次になるとともに、入力順序が遅いデータほど重み付けされるベクターβの次数が低次になる。例えば、入力順序の最も早いデータdD0に対応するベクターβの次数は、最も高次な2051次(β2051)であり、入力順序の最も遅いデータdD2051に対応するベクターβの次数は、最も低次な0次(β=1)である。なお、1バイトのデータXに対してベクターβで重み付けするとは、重み付けされるデータXを、所定の生成多項式G(x)(本例では、G(x)=x32+x31+x+1)に従って1バイト分シフトさせることである。そして、EDCチェック回路116では、算出されたEDCシンドロームが全て「0」であったときに、誤り訂正が正常に終了したことを確認する。この確認後、EDCチェックが終了される。 That is, the EDC syndrome EDCS can be obtained by performing a byte of data (e.g., descramble data DD0, DD2050, etc.) each time for calculating a primary weighting vectors beta 1 to the data. Therefore, the order of the vector β to be weighted becomes higher as the data is input earlier, and the order of the vector β to be weighted becomes lower as the data is input later. For example, the order of the vector β corresponding to the data dD0 having the earliest input order is the highest order 2051 (β 2051 ), and the order of the vector β corresponding to the data dD2051 having the latest input order is the lowest order. 0th order (β 0 = 1). The weighting of the 1-byte data X n with the vector β 1 means that the weighted data X n is a predetermined generator polynomial G (x) (in this example, G (x) = x 32 + x 31 + x 4 + 1) to shift by 1 byte. Then, the EDC check circuit 116 confirms that the error correction is normally completed when the calculated EDC syndromes are all “0”. After this confirmation, the EDC check is terminated.

ところで、近年では、ホストコンピュータの処理速度の高速化等に伴い、記憶装置に対するデータの読み出し/書き込み速度の高速化が要求されている。しかしながら、バッファメモリ120のアクセス能力の限界により、読み出し速度の高速化が阻害されている。すなわち、バッファメモリ120に対して以下の(1)〜(5)のアクセスが行われるため、アクセス速度を高速化することが難しく、誤り訂正処理を高速化することができない。
(1)復調回路111からのECCクラスタECCcの入力。
(2)LDCシンドローム生成回路112によるLDCクラスタLDCcの読み出し。
(3)BISシンドローム生成回路113によるBISクラスタBIScの読み出し。
(4)誤り訂正回路の誤り訂正処理。
(5)デスクランブル回路115による誤り訂正処理済のLDCクラスタLDCcの読み出し。
Incidentally, in recent years, with the increase in processing speed of a host computer, there has been a demand for an increase in data reading / writing speed with respect to a storage device. However, the increase in reading speed is hindered by the limit of the access capability of the buffer memory 120. That is, since the following accesses (1) to (5) are performed on the buffer memory 120, it is difficult to increase the access speed and the error correction processing cannot be increased.
(1) Input of the ECC cluster ECCc from the demodulation circuit 111.
(2) Reading of the LDC cluster LDCc by the LDC syndrome generation circuit 112.
(3) Reading of the BIS cluster BISc by the BIS syndrome generation circuit 113.
(4) Error correction processing of the error correction circuit.
(5) Reading the error-corrected LDC cluster LDCc by the descrambling circuit 115.

さらに、上記構成におけるLDCシンドローム生成回路112(デスクランブル回路115)は、バッファメモリ120からLDCクラスタLDCc(LDCクラスタLDCc内のデータ成分e)を、第1及び第2デインターリーブ処理を施しながらパリティ付加ブロックPB(データブロックDB)として読み出す必要がある。ここで、一般的に外付けのバッファメモリ120は安価で処理速度の遅いSDRAMから構成されているため、LDCクラスタLDCcが並べ替えながら読み出されると、パリティ付加ブロックPBの各データが細切れに読み出されることになる。このようにバッファメモリ120に対してデータアクセスサイズの小さい効率の悪いアクセスとなり、ひいてはバッファメモリ120のアクセス帯域を減らすという問題がある。   Further, the LDC syndrome generation circuit 112 (descrambling circuit 115) having the above configuration adds parity to the LDC cluster LDCc (data component e in the LDC cluster LDCc) from the buffer memory 120 while performing the first and second deinterleaving processes. It is necessary to read as a block PB (data block DB). Here, since the external buffer memory 120 is generally composed of an SDRAM that is inexpensive and has a low processing speed, when the LDC cluster LDCc is read out while being rearranged, each data of the parity addition block PB is read out in pieces. It will be. As described above, there is a problem that the buffer memory 120 is accessed with a small data access size and inefficient, and the access bandwidth of the buffer memory 120 is reduced.

そこで、バッファメモリ120へのアクセス量を減らすために、図43に示すように、一旦内蔵メモリ131に1つのECCクラスタECCcを格納し、その内蔵メモリ131に対してLDCシンドローム生成回路112及びBISシンドローム生成回路113が直接アクセスするようにしたコントローラ130が提案されている。これにより、LDCシンドローム生成回路112及びBISシンドローム生成回路113によるバッファメモリ120へのアクセス量がなくなるため、バッファメモリ120に対する全体のアクセス量を減らすことができ、誤り訂正処理の高速化を実現することができる。   Therefore, in order to reduce the access amount to the buffer memory 120, as shown in FIG. 43, one ECC cluster ECCc is temporarily stored in the built-in memory 131, and the LDC syndrome generation circuit 112 and the BIS syndrome are stored in the built-in memory 131. A controller 130 is proposed in which the generation circuit 113 is directly accessed. As a result, the amount of access to the buffer memory 120 by the LDC syndrome generation circuit 112 and the BIS syndrome generation circuit 113 is eliminated, so that the total access amount to the buffer memory 120 can be reduced and the speed of error correction processing can be increased. Can do.

特開2003−242720号公報。JP2003-242720A.

ところが、上記誤り訂正回路114による誤り訂正処理を行うためには、ECCクラスタECCc単位でのデータが必要となる。そのため、図43に示すコントローラ130では、内蔵メモリ131が1つのECCクラスタ分のデータを格納することのできる大容量のメモリとなる。そのため、1つのECCクラスタECCcの容量に相当するバッファメモリを内蔵することになり、コントローラの回路規模が増大するという新たな問題が生じる。   However, in order to perform error correction processing by the error correction circuit 114, data in ECC cluster ECCc units is required. Therefore, in the controller 130 shown in FIG. 43, the built-in memory 131 is a large-capacity memory that can store data for one ECC cluster. Therefore, a buffer memory corresponding to the capacity of one ECC cluster ECCc is built in, and a new problem arises that the circuit scale of the controller increases.

本発明は上記問題点を解決するためになされたものであって、その目的は、内蔵メモリ容量の増大による回路規模の増大を抑制しつつも、外部メモリへのアクセス量を低減することのできる誤り訂正装置を提供することにある。   The present invention has been made to solve the above-described problems, and an object of the present invention is to reduce the access amount to the external memory while suppressing an increase in circuit scale due to an increase in the built-in memory capacity. An object of the present invention is to provide an error correction apparatus.

上記目的を達成するため、請求項1に記載の発明は、所定数のデータフレームにスクランブル処理が施され、スクランブルされたデータフレームが所定サイズのデータブロックに変換され、前記データブロックの各列にパリティが付加されたパリティ付加ブロックが生成され、前記パリティ付加ブロックに対してインターリーブ処理が施されクラスタが生成され、前記クラスタが変調されたデータの誤りを訂正する誤り訂正装置であって、前記変調されたデータを復調して復調されたデータとしてクラスタを生成する復調回路と、前記復調回路からのクラスタが所定行数毎に分割された分割クラスタが格納される内蔵メモリ部と、前記内蔵メモリ部を通じて、前記分割クラスタをデインターリーブ処理して生成したパリティ付加ブロックにおける各データが列方向に入力され、前記各データに基づいてパリティ演算結果を前記パリティ付加ブロックの列毎に生成するパリティ演算結果生成回路と、前記内蔵メモリ部を通じて、前記分割クラスタにデインターリーブ処理が施され、前記データブロックにおける各スクランブルデータが列方向に読み出しブロックとして入力され、前記スクランブルデータに基づいてEDCシンドロームを生成するEDCシンドローム生成回路と、前記EDCシンドローム生成回路により生成されるEDCシンドロームの中間結果を前記データフレーム毎に格納するEDCメモリ部と、前記パリティ演算結果に基づいて、前記スクランブルデータに対して誤り訂正処理を行う誤り訂正回路と、を備え、前記EDCシンドローム生成回路は、前記内蔵メモリ部からバイトデータとして入力される前記スクランブルデータと、選択回路から入力されるシフト演算値との排他的論理和を取って、EDC演算値を生成する第1排他的論理和回路と、前記第1排他的論理和から入力されるEDC演算値に対して、所定の生成多項式に従って1バイト分シフトさせる重み付けをしてシフト演算値を生成し、前記シフト演算値を前記EDCメモリ部に格納する第1重み付け回路と、前記第1排他的論理和から入力されるEDC演算値に対して、
{(前記データブロックの列方向における全バイト数)+1−(各読み出しブロックの列方向におけるバイト数)}
バイト分、前記生成多項式に従ってシフトさせる重み付けをしてシフト演算値を生成する第2重み付け回路と、前記第1排他的論理和回路から入力されるEDC演算値に対して、前記生成多項式に従って108バイト分シフトさせる重み付けをしてシフト演算値を生成し、前記シフト演算値を前記EDCメモリ部に格納する第3重み付け回路と、前記第2重み付け回路からのシフト演算値と、前記EDCメモリ部からのEDCシンドロームの中間結果との排他的論理和を取って、シフト演算値を生成する第2排他的論理和回路と、を備え、前記選択回路は、前記第1排他的論理和回路に入力される前記バイトデータの前記データブロックにおける位置に応じて、前記第1重み付け回路、前記第2重み付け回路及び前記第2排他的論理和回路から入力されるシフト演算値のうちのいずれか一つのシフト演算値を前記第1排他的論理和回路に出力し、前記データブロックにおいて最初に処理されるデータフレームと前記データフレームから1つおきに処理されるデータフレームとを偶数データフレームとし、前記偶数データフレームの次に処理されるデータフレームを奇数データフレームとしたときに、前記EDCメモリ部には、前記各読み出しブロックの前記各データフレームにおける最終行最終列のバイトデータが前記第1排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第1重み付け回路を通じて前記EDCシンドロームの中間結果として格納され、前記EDCシンドローム生成回路に最後に入力される最終読み出しブロックの前記各偶数データフレームにおける最終行最終列のバイトデータが前記第1排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第3重み付け回路を通じて前記EDCシンドロームとして格納され、前記最終読み出しブロックの前記各奇数データフレームにおける最終行最終列のバイトデータが前記第1排他的論理和回路に入力されたときに生成されるEDC演算値が、前記EDCシンドロームとして格納される
To achieve the above object, a first aspect of the present invention, the scrambling process is performed on a predetermined number of data frames, scrambled data frame is converted into data blocks of a predetermined size, to each column of the data block parity is generated and added parity added block, the parity adding block interleaving against there is subjected clusters are generated, the cluster is a error correction device for correcting errors in data modulated, the modulation A demodulating circuit that demodulates the generated data to generate a cluster as demodulated data, a built-in memory unit that stores a divided cluster obtained by dividing the cluster from the demodulating circuit every predetermined number of rows, and the built-in memory unit Through the parity added block generated by deinterleaving the divided cluster. That each data is input in the column direction, the parity calculation result generating circuit for generating a parity operation results in each column of the parity addition block based on the data, via the internal memory unit, deinterleaving processing on the divided clusters is performed, the scramble data in the data block is inputted as a read block in a column direction, said the EDC syndrome generation circuit for generating EDC syndrome based on the scramble data, the EDC syndrome EDC syndrome generated by the generating circuit An EDC memory unit that stores an intermediate result for each data frame; and an error correction circuit that performs an error correction process on the scrambled data based on the parity calculation result. The EDC syndrome generation circuit includes: Built-in memo And the scrambling data input as byte data from the parts, taking an exclusive OR of the shift operation value input from the channel selection択回passage, a first exclusive OR circuit which generates an EDC calculated value, the first against EDC operation value input from the 1 XOR generates the shift operation value by weighting for one byte shift in accordance with a predetermined generate polynomial and stores the shift operation value to the EDC memory unit For the EDC operation value input from the first weighting circuit and the first exclusive OR,
{(Total number of bytes in the column direction of the data block) + 1− (number of bytes in the column direction of each read block)}
Bytes, relative to the front and a second weighting circuit for generating a shift operation value by weighting shifting according Kisei formed polynomial, EDC computation value input from the first exclusive OR circuit, before Kisei formed by weighting to 108 bytes shifted according polynomial to generate a shift operation value, a third weighting circuit for storing the shift operation value to the EDC memory unit, and the shift operation value from said second weighting circuit, the EDC taking the exclusive OR of the intermediate result of EDC syndrome from the memory unit, and a second exclusive OR circuit for generating a shift operation value comprises, before hexene択回path, the first exclusive depending on the position in the data block of the byte data input to the oR circuit, said first weighting circuit, or the second weighting circuit and said second exclusive oR circuit Processing one of the shift operation value is output to the first XOR circuit, wherein the data block from the first data frame to be processed the data frame every other one of the shift operation value input When the data frame to be processed is an even-numbered data frame and the data frame processed next to the even-numbered data frame is an odd-numbered data frame, the EDC memory unit stores the final data frame in each data frame. An EDC operation value generated when byte data in the last row of rows is input to the first exclusive OR circuit is stored as an intermediate result of the EDC syndrome through the first weighting circuit, and the EDC syndrome generation circuit To each even data frame of the last read block that is input last An EDC operation value generated when byte data in the last row and last column is input to the first exclusive OR circuit is stored as the EDC syndrome through the third weighting circuit. An EDC operation value generated when byte data in the last row and last column in each odd data frame is input to the first exclusive OR circuit is stored as the EDC syndrome .

上記構成によれば、EDCシンドローム生成回路及びパリティ演算結果生成回路は、内蔵メモリ部に対して独立してアクセスすることが可能なため、EDCシンドローム生成及びパリティ演算処理を並行して実行することができ、誤り訂正処理に要する時間を短縮することができる。また、EDCシンドローム生成回路に第1〜第3重み付け回路、第3排他的論理和回路及び第2選択回路を設けるようにしたため、EDC付加時と異なる順序で入力されるバイトデータに対しても、EDC付加時と同様のデータ処理順序でEDC演算処理した場合と同一のバイト数分の重み付けを行うことができる。   According to the above configuration, since the EDC syndrome generation circuit and the parity calculation result generation circuit can access the built-in memory unit independently, it is possible to execute EDC syndrome generation and parity calculation processing in parallel. The time required for error correction processing can be shortened. In addition, since the EDC syndrome generation circuit is provided with the first to third weighting circuits, the third exclusive OR circuit, and the second selection circuit, even for byte data that is input in a different order from when the EDC is added, The same weighting as the number of bytes can be performed when the EDC calculation processing is performed in the same data processing order as when EDC is added.

以上説明したように、本発明によれば、内蔵メモリ容量の増大による回路規模の増大を抑制しつつも、外部メモリへのアクセス量を低減することが可能な誤り訂正装置を提供することができる。   As described above, according to the present invention, it is possible to provide an error correction device capable of reducing the access amount to the external memory while suppressing an increase in circuit scale due to an increase in the built-in memory capacity. .

光ディスク制御装置を示すブロック図。The block diagram which shows an optical disk control apparatus. 第1実施形態における光ディスクコントローラを示すブロック図。1 is a block diagram showing an optical disk controller in a first embodiment. 内蔵メモリに格納される分割ECCブロックを示す説明図。Explanatory drawing which shows the division | segmentation ECC block stored in a built-in memory. LDCシンドローム生成回路に読み出される読み出しブロックを示す説明図。Explanatory drawing which shows the read block read by the LDC syndrome production | generation circuit. 内蔵メモリ部を示すブロック図。The block diagram which shows a built-in memory part. 第1実施形態におけるデスクランブル回路を示すブロック図。The block diagram which shows the descrambling circuit in 1st Embodiment. デスクランブル回路に読み出される読み出しブロックを示す説明図。Explanatory drawing which shows the read-out block read by a descrambling circuit. 第1実施形態におけるEDCシンドローム生成回路を示すブロック図。The block diagram which shows the EDC syndrome production | generation circuit in 1st Embodiment. 外部バッファメモリを示す説明図。Explanatory drawing which shows an external buffer memory. デスクランブル処理の動作を示すフローチャート。The flowchart which shows the operation | movement of a descrambling process. デスクランブル処理の動作を示すフローチャート。The flowchart which shows the operation | movement of a descrambling process. デスクランブル処理の動作を示すフローチャート。The flowchart which shows the operation | movement of a descrambling process. EDCシンドローム生成回路に入力される入力多項式を示す説明図。Explanatory drawing which shows the input polynomial input into an EDC syndrome production | generation circuit. 第1実施形態におけるEDC演算処理の動作を示すフローチャート。The flowchart which shows operation | movement of the EDC arithmetic processing in 1st Embodiment. デスクランブル回路の1シフト演算器における入出力の論理式を示す説明図。Explanatory drawing which shows the logical expression of the input / output in 1 shift arithmetic unit of a descrambling circuit. デスクランブル回路の209シフト演算器における入出力の論理式を示す説明図。Explanatory drawing which shows the logical expression of the input / output in the 209 shift calculator of a descrambling circuit. デスクランブル回路の108シフト演算器における入出力の論理式を示す説明図。Explanatory drawing which shows the logical expression of the input / output in the 108 shift calculator of a descrambling circuit. EDCシンドローム生成回路の1シフト演算器における入出力の論理式を示す説明図。Explanatory drawing which shows the logical expression of the input / output in 1 shift arithmetic unit of an EDC syndrome production | generation circuit. EDCシンドローム生成回路の209シフト演算器における入出力の論理式を示す説明図。Explanatory drawing which shows the logical expression of the input / output in the 209 shift computing unit of an EDC syndrome production | generation circuit. EDCシンドローム生成回路の108シフト演算器における入出力の論理式を示す説明図。Explanatory drawing which shows the logical expression of the input / output in the 108 shift arithmetic unit of an EDC syndrome production | generation circuit. EDCシンドローム生成回路の−211シフト演算器における入出力の論理式を示す説明図。Explanatory drawing which shows the logical expression of the input / output in the -211 shift computing unit of an EDC syndrome production | generation circuit. 第2実施形態におけるデスクランブル回路を示すブロック図。The block diagram which shows the descrambling circuit in 2nd Embodiment. 第2実施形態におけるEDCシンドローム生成回路を示すブロック図。The block diagram which shows the EDC syndrome production | generation circuit in 2nd Embodiment. (a)〜(d)は、第2実施形態におけるデータ処理順序を示す説明図。(A)-(d) is explanatory drawing which shows the data processing order in 2nd Embodiment. 第2実施形態における外部バッファメモリへのデータ格納方法を示す説明図。Explanatory drawing which shows the data storage method to the external buffer memory in 2nd Embodiment. (a)、(b)は、EDCシンドローム生成回路に入力される入力多項式を示す説明図。(A), (b) is explanatory drawing which shows the input polynomial input into an EDC syndrome production | generation circuit. 第3実施形態におけるEDCシンドローム生成回路を示すブロック図。The block diagram which shows the EDC syndrome production | generation circuit in 3rd Embodiment. 第3実施形態におけるEDC演算処理の動作を示すフローチャート。The flowchart which shows operation | movement of the EDC arithmetic processing in 3rd Embodiment. EDCシンドローム生成回路のβ−1シフト演算器における入出力の論理式を示す説明図。Explanatory drawing which shows the logical expression of the input / output in the beta- 1 shift arithmetic unit of an EDC syndrome production | generation circuit. EDCシンドローム生成回路のβ−1664シフト演算器における入出力の論理式を示す説明図。Explanatory drawing which shows the input / output logic type | formula in the (beta) -1664 shift arithmetic unit of an EDC syndrome production | generation circuit. 第4実施形態における光ディスクコントローラを示すブロック図。The block diagram which shows the optical disk controller in 4th Embodiment. 第5実施形態における光ディスクコントローラを示すブロック図。The block diagram which shows the optical disk controller in 5th Embodiment. 別例における光ディスクコントローラを示すブロック図。The block diagram which shows the optical disk controller in another example. ユーザデータを示す説明図。Explanatory drawing which shows user data. 従来のスクランブル値生成回路を示すブロック図。The block diagram which shows the conventional scramble value generation circuit. (a)、(b)は、データブロックを示す説明図。(A), (b) is explanatory drawing which shows a data block. LDCブロックを示す説明図。Explanatory drawing which shows a LDC block. 第1インターリーブ処理を示す説明図。Explanatory drawing which shows a 1st interleave process. LDCクラスタを示す説明図。Explanatory drawing which shows a LDC cluster. (a)、(b)は、ECCクラスタを示す説明図。(A), (b) is explanatory drawing which shows an ECC cluster. 従来における光ディスクコントローラを示すブロック図。The block diagram which shows the conventional optical disk controller. 従来のデスクランブル処理を示す説明図。Explanatory drawing which shows the conventional descrambling process. 従来における光ディスクコントローラを示すブロック図。The block diagram which shows the conventional optical disk controller.

(第1実施形態)
以下、本発明を具体化した第1実施形態を図1〜図21に従って説明する。
図1に示すように、データ読み出し装置としての光ディスク制御装置1は、ATAPI(AT attachment packet interface)等の所定のインターフェースを介してコンピュータ2に接続されている。また、光ディスク制御装置1は、インターフェースを介して光ディスク駆動装置3に接続されている。
(First embodiment)
A first embodiment embodying the present invention will be described below with reference to FIGS.
As shown in FIG. 1, an optical disk control device 1 as a data reading device is connected to a computer 2 via a predetermined interface such as ATAPI (AT attachment packet interface). The optical disk control device 1 is connected to the optical disk drive device 3 through an interface.

光ディスク駆動装置3は、ブルーレイディスク(BD)4を所定の速度で回転駆動するとともに、BD4に記憶されたディスクデータを図示しない光ピックアップにより読み出す。そして、光ディスク駆動装置3は、ディスクデータを光ディスク制御装置1に出力する。   The optical disk drive 3 rotates and drives the Blu-ray disk (BD) 4 at a predetermined speed, and reads the disk data stored in the BD 4 with an optical pickup (not shown). Then, the optical disk drive device 3 outputs the disk data to the optical disk control device 1.

光ディスク制御装置1の入出力駆動回路5には、光ディスク駆動装置3から上記ディスクデータが入力され、そのディスクデータを誤り訂正装置としての光ディスクコントローラ(コントローラ)10に出力する。   The disk data is input from the optical disk driving device 3 to the input / output drive circuit 5 of the optical disk control device 1, and the disk data is output to an optical disk controller (controller) 10 as an error correction device.

コントローラ10は、光ディスク駆動装置3への命令送信及びステータス受領と、光ディスクであるBD4からの読み出しフォーマット解読及び誤り訂正と、光ディスク駆動装置3と外部バッファメモリ6との間のデータ転送と、インターフェース回路60と外部バッファメモリ6との間のデータ転送等の各処理を行う。すなわち、コントローラ10は、入出力駆動回路5から入力されるディスクデータに対してデスクランブル処理を行ってデスクランブルデータを生成するとともに、EDCシンドローム、LDCシンドローム及びBISシンドロームといった各種シンドロームを生成する。そして、コントローラ10は、これらのデスクランブルデータ及び各種シンドロームを外部バッファメモリ6に格納する。また、コントローラ10は、外部バッファメモリ6に格納した各種シンドロームに基づいて、外部バッファメモリ6に格納されたデスクランブルデータに対して誤り訂正処理を行う。そして、コントローラ10は、マイクロプロセッサ8の命令に基づいて、外部バッファメモリ6に格納した誤り訂正後のユーザデータUDを、インターフェース回路60を介して上記コンピュータ2に転送する。   The controller 10 transmits instructions to the optical disk drive 3 and receives status, decodes the read format from the BD 4 that is an optical disk, corrects errors, transfers data between the optical disk drive 3 and the external buffer memory 6, and an interface circuit. Each process such as data transfer between 60 and the external buffer memory 6 is performed. That is, the controller 10 performs descrambling processing on the disk data input from the input / output drive circuit 5 to generate descrambling data, and generates various syndromes such as EDC syndrome, LDC syndrome, and BIS syndrome. The controller 10 stores these descrambling data and various syndromes in the external buffer memory 6. Further, the controller 10 performs error correction processing on the descrambling data stored in the external buffer memory 6 based on various syndromes stored in the external buffer memory 6. Then, the controller 10 transfers the user data UD after error correction stored in the external buffer memory 6 to the computer 2 via the interface circuit 60 based on the instruction of the microprocessor 8.

次に、図1に示した光ディスクコントローラ10の内部構成について図2に従って説明する。
光ディスクコントローラ10の復調回路11には、BD4から読み出されたディスクデータが入出力駆動回路5を通じて順次入力される。復調回路11は、入力されるディスクデータをデジタルデータに変換するとともに、そのデジタルデータに同期したクロック信号CLKを生成する。復調回路11は、さらにデジタルデータを復調して、該復調済データ、すなわちECCクラスタECCc(図40(b)参照)を生成し、該ECCクラスタECCc及びクロック信号CLKを出力する。
Next, the internal configuration of the optical disk controller 10 shown in FIG. 1 will be described with reference to FIG.
Disc data read from the BD 4 is sequentially input to the demodulation circuit 11 of the optical disc controller 10 through the input / output drive circuit 5. The demodulating circuit 11 converts the input disk data into digital data and generates a clock signal CLK synchronized with the digital data. The demodulation circuit 11 further demodulates the digital data to generate the demodulated data, that is, the ECC cluster ECCc (see FIG. 40B), and outputs the ECC cluster ECCc and the clock signal CLK.

復調回路11からECCクラスタECCc(クラスタ)のデータが入力される内蔵メモリ部12は、2つのバッファメモリM1,M2から構成されている。各バッファメモリM1,M2の各々は、所定バイト数(本実施形態では、2480バイト)のデータを格納可能なメモリ容量となっている。本実施形態では、ECCクラスタECCc(76880バイト)が31(=76880/2480)個に分割され、2480バイト毎に内蔵メモリ部12の各バッファメモリM1,M2に格納される。すなわち、ECCクラスタECCc(図40(b)参照)が16行毎に分割され、16行×155列(=2480バイト)のブロック単位(分割ECCクラスタDECC)で各バッファメモリM1,M2に格納される。図3に、復調回路11から最初に内蔵メモリ部12に格納される16行×155列の分割ECCクラスタDECC(分割クラスタ)を示した。図3に示すように、ECCクラスタECCcの各列における1行目から16行目までの各データが復調回路11から内蔵メモリ部12に最初に格納される。   The built-in memory unit 12 to which data of the ECC cluster ECCc (cluster) is input from the demodulation circuit 11 includes two buffer memories M1 and M2. Each of the buffer memories M1 and M2 has a memory capacity capable of storing data of a predetermined number of bytes (2480 bytes in this embodiment). In the present embodiment, the ECC cluster ECCc (76880 bytes) is divided into 31 (= 76880/2480) pieces and stored in the buffer memories M1 and M2 of the built-in memory unit 12 every 2480 bytes. That is, the ECC cluster ECCc (see FIG. 40B) is divided every 16 rows and stored in each buffer memory M1, M2 in block units (divided ECC cluster DECC) of 16 rows × 155 columns (= 2480 bytes). The FIG. 3 shows a divided ECC cluster DECC (divided cluster) of 16 rows × 155 columns first stored in the built-in memory unit 12 from the demodulation circuit 11. As shown in FIG. 3, each data from the first row to the 16th row in each column of the ECC cluster ECCc is first stored in the built-in memory unit 12 from the demodulation circuit 11.

内蔵メモリ部12は、同一時間において、バッファメモリM1及びバッファメモリM2のいずれか一方を、復調回路11からのデータを保存するデータ保存用として使用し、他方を、後述するLDCシンドローム生成回路13等にアクセスされるアクセス用として使用する。すなわち、バッファメモリM1がデータ保存用として使用される場合にはバッファメモリM2がアクセス用として使用され、バッファメモリM2がデータ保存用として使用される場合にはバッファメモリM1がアクセス用として使用される。   The built-in memory unit 12 uses one of the buffer memory M1 and the buffer memory M2 for data storage for storing data from the demodulation circuit 11, and the other is used for the LDC syndrome generation circuit 13 to be described later, etc. It is used for access to be accessed. That is, when the buffer memory M1 is used for data storage, the buffer memory M2 is used for access, and when the buffer memory M2 is used for data storage, the buffer memory M1 is used for access. .

図5に、上記内蔵メモリ部12の回路構成例を示した。図5に示すように、復調回路11から入力されるデータは、第1セレクタ12aに入力される。この第1セレクタ12aには、選択回路12cからの選択信号が入力される。選択回路12cは、復調回路11から入力されるクロック信号CLKをカウントして、所定のタイミングで選択信号の信号レベルを切り替える。本実施形態では、選択回路12cは、2480バイト分のクロックをカウントする度に、上記選択信号の信号レベルを切り替える。なお、この選択信号は、インバータを介して第2セレクタ12bにも入力される。   FIG. 5 shows a circuit configuration example of the built-in memory unit 12. As shown in FIG. 5, the data input from the demodulation circuit 11 is input to the first selector 12a. A selection signal from the selection circuit 12c is input to the first selector 12a. The selection circuit 12c counts the clock signal CLK input from the demodulation circuit 11, and switches the signal level of the selection signal at a predetermined timing. In this embodiment, the selection circuit 12c switches the signal level of the selection signal every time it counts 2480 bytes of clock. This selection signal is also input to the second selector 12b via an inverter.

第1セレクタ12aは、選択回路12cからの選択信号の信号レベルに基づいて、復調回路11からのデータをバッファメモリM1あるいはバッファメモリM2に出力する。また、第2セレクタ12bは、インバータを介して入力される選択回路12cからの選択信号の信号レベルに基づいて、バッファメモリM1及びバッファメモリM2のいずれか一方をアクセス可能とする。   The first selector 12a outputs the data from the demodulation circuit 11 to the buffer memory M1 or the buffer memory M2 based on the signal level of the selection signal from the selection circuit 12c. Further, the second selector 12b enables access to either the buffer memory M1 or the buffer memory M2 based on the signal level of the selection signal from the selection circuit 12c input via the inverter.

図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(図36(b)参照)に対して付加されたパリティであるため、LDCクラスタLDCcにおけるデータ配列順序のままでは、ECC部LDCpに基づくLDCシンドローム(パリティ演算結果)を正確に生成することができない。   As shown in FIG. 2, the LDC syndrome generation circuit 13 (parity calculation result generation circuit) rearranges the LDC cluster LDCc in the divided ECC cluster DECC stored in the buffer memory of the internal memory unit 12 selected to be accessible. Read while. As described above, the LDC cluster LDCc (see FIG. 39) in the ECC cluster ECCc read from the BD 4 is rearranged by the data of the parity addition block PB (see FIG. 37) being subjected to the first interleave process and the second interleave process. It is a block. Further, since the ECC unit LDCp in the LDC cluster LDCc is a parity added to the data block DB before the first and second interleaving processes (see FIG. 36B), the data arrangement order in the LDC cluster LDCc As it is, the LDC syndrome (parity calculation result) based on the ECC unit LDCp cannot be generated accurately.

そこで、本実施形態におけるLDCシンドローム生成回路13は、内蔵メモリ部12に格納された分割ECCクラスタDECC内のLDCクラスタLDCcを、第1及び第2デインターリーブ処理を施してパリティ付加ブロックPBの配置順序になるように各データを並べ替えながら読み出すようにしている。この読み出し順序について、内蔵メモリ部12に最初に格納されるデータブロックを例に挙げて説明すると、まず、LDCシンドローム生成回路13は、図3に示す位置f(0,0)のデータ成分e(0,0)を読み出し、次に位置f(2,149)のデータ成分e(1,0)を読み出し、次に位置f(4,146)のデータ成分e(2,0)を読み出す。以後も同様に、LDCシンドローム生成回路13は、図4の実線の矢印で示すように、データ成分e(3,0)、データ成分e(4,0)、…、データ成分e(7,0)の順にパリティ付加ブロックPBにおける1列目のデータ成分を読み出す。続いて、LDCシンドローム生成回路13は、データ成分e(0,1)、…、データ成分e(7,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)として読み出される。   Therefore, the LDC syndrome generation circuit 13 according to the present embodiment performs the first and second deinterleave processing on the LDC cluster LDCc in the divided ECC cluster DECC stored in the built-in memory unit 12, and arranges the parity added block PB. Each data is read out while rearranging so that The reading order will be described by taking the data block first stored in the built-in memory unit 12 as an example. First, the LDC syndrome generation circuit 13 first outputs the data component e (at the position f (0, 0) shown in FIG. 0, 0) is read, then the data component e (1, 0) at position f (2, 149) is read, and then the data component e (2, 0) at position f (4, 146) is read. In the same manner, the LDC syndrome generation circuit 13 performs the data component e (3, 0), the data component e (4, 0),..., The data component e (7, 0) as indicated by the solid arrows in FIG. The data components in the first column in the parity added block PB are read out in the order of). Subsequently, the LDC syndrome generation circuit 13 performs the data components e (0, 1),..., Data component e (7, 1) in order of the data from the first row to the eighth row in the second column in the parity addition block PB. Read the component. Similarly, the LDC syndrome generation circuit 13 sequentially reads out the data components e of the respective columns in the parity addition block PB. As described above, when the LDC cluster LDCc in the 31 divided ECC clusters DECC is read by performing the first and second deinterleaving processes, as shown in FIG. 4, it is divided into 31 divided 8 rows × 304 columns. The parity addition block PB is read as a read block RB (first to 31st read blocks RB1 to 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に格納する。   The LDC syndrome generation circuit 13 reads out the data in the reading order, and generates an intermediate value of the LDC syndrome of each column for each number of bytes in the column direction (8 bytes in the present embodiment) in each read block RB. The intermediate value of the LDC syndrome is stored in the LDC memory unit 14. Further, the LDC syndrome generation circuit 13 reads the intermediate value of the LDC syndrome in the same column stored in the previous read block RB (for example, the first read block RB1 in the case of the second read block RB2) from the LDC memory unit 14. . Then, the LDC syndrome generation circuit 13 updates the intermediate value of the LDC syndrome based on the intermediate value of the read LDC syndrome and the data in the column direction of the current read block RB (for example, the second read block RB2). Then, the updated LDC syndrome is stored in the LDC memory unit 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と略同様の構成を有する。   As shown in FIG. 2, the LDC memory unit 14 includes two LDC buffer memories M3 and M4. Each of the buffer memories M3 and M4 has a memory capacity capable of storing LDC syndromes of all columns in one parity addition block PB, that is, a memory capacity capable of storing 9728 (= 32 × 304) bytes. In the LDC memory unit 14, the intermediate value of the LDC syndrome stored after the end of data reading of the entire one parity addition block PB (31 times: first to 31st read blocks RB1 to RB31) becomes the final LDC syndrome. Therefore, the final LDC syndrome for each column is stored in the external buffer memory 6. The LDC memory unit 14 uses one of the buffer memory M3 and the buffer memory M4 for the syndrome storage for storing the intermediate value of the LDC syndrome from the LDC syndrome generation circuit 13 at the same time. A new LDC syndrome is used for outputting a syndrome to the external buffer memory 6. Note that the LDC memory unit 14 has substantially the same configuration as the built-in memory unit 12.

BISシンドローム生成回路16に接続されるBISメモリ部15には、アクセス可能に選択された内蔵メモリ部12のバッファメモリに格納された分割ECCクラスタDECC内のBISクラスタBIScが、列方向に順番に格納される。例えば、図3に示すデータブロックの場合には、BISメモリ部15には、B(0,0)〜B(15,0)が図3の実線の矢印で示す順番に格納される。BISメモリ部15は、BISクラスタBISc全体のデータが格納されると、そのBISクラスタBIScをBISシンドローム生成回路16に出力する。   In the BIS memory unit 15 connected to the BIS syndrome generation circuit 16, the BIS cluster BISc in the divided ECC cluster DECC stored in the buffer memory of the internal memory unit 12 selected to be accessible is sequentially stored in the column direction. Is done. For example, in the case of the data block shown in FIG. 3, B (0,0) to B (15,0) are stored in the BIS memory unit 15 in the order indicated by solid line arrows in FIG. When the data of the entire BIS cluster BISc is stored, the BIS memory unit 15 outputs the BIS cluster BISc to the BIS syndrome generation circuit 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と略同様の構成を有する。   As shown in FIG. 2, the BIS memory unit 15 is composed of two BIS buffer memories M5 and M6. Each of the buffer memories M5 and M6 has a memory capacity capable of storing one BIS cluster BISc, that is, a memory capacity capable of storing 1488 (= 496 × 3) bytes. The BIS memory unit 15 uses one of the buffer memory M5 and the buffer memory M6 for data storage for storing the data of the BIS cluster BISc from the built-in memory unit 12, and the other is used as the stored BIS at the same time. The cluster BISc is used for data output to be output to the BIS syndrome generation circuit 16. The BIS memory unit 15 has substantially the same configuration as the built-in memory unit 12.

BISシンドローム生成回路16は、BISメモリ部15からBISクラスタBIScを読み出し、該BISクラスタBIScに基づいてBISシンドロームを生成する。BISシンドローム生成回路16は、生成したBISシンドロームを外部バッファメモリ6に格納する。   The BIS syndrome generation circuit 16 reads the BIS cluster BISc from the BIS memory unit 15 and generates a BIS syndrome based on the BIS cluster BISc. The BIS syndrome generation circuit 16 stores the generated BIS syndrome in the external buffer memory 6.

デスクランブル回路20は、上記LDCシンドローム生成回路13と同様に、アクセス可能に選択された内蔵メモリ部12のバッファメモリに格納された分割後のLDCクラスタLDCcを読み出しブロックRBとして読み出す。ここで、第1〜第31読み出しブロックRB1〜RB31のうち、第28〜第31読み出しブロックRB28〜RB31(217行目〜248行目のデータ)を構成するECC部LDCpの各データには、スクランブル処理が施されていない。そのため、デスクランブル回路20は、図7に示すように、第28〜第31読み出しブロックRB28〜RB31を除く第1〜第27読み出しブロックRB1〜RB27(図36(b)に示したデータブロックDB)のみを読み出す。デスクランブル回路20は、読み出した各読み出しブロックRB毎に各スクランブルデータに対してデスクランブル処理を行って該データにかけられた所定のスクランブルを解除する。デスクランブル回路20は、デスクランブル処理の施されたデスクランブルデータdDuを外部バッファメモリ6及びEDCシンドローム生成回路30に出力する。なお、図7は、デスクランブル回路20により読み出される第1〜第27読み出しブロックRB1〜RB27のスクランブルデータsDuの読み出し順序を、スクランブルデータフレームSDF(図36(a)参照)における行番号uで示した。なお、この行番号uは、スクランブル処理時におけるデータフレームDF毎の処理順序を示す番号であり、0≦u≦2051である。   Similar to the LDC syndrome generation circuit 13, the descrambling circuit 20 reads the divided LDC cluster LDCc stored in the buffer memory of the built-in memory unit 12 selected to be accessible as a read block RB. Here, among the 1st to 31st read blocks RB1 to RB31, each data of the ECC unit LDCp constituting the 28th to 31st read blocks RB28 to RB31 (data on the 217th to 248th rows) is scrambled. It has not been processed. Therefore, as shown in FIG. 7, the descrambling circuit 20 includes the first to 27th read blocks RB1 to RB27 (the data block DB shown in FIG. 36B) excluding the 28th to 31st read blocks RB28 to RB31. Read only. The descrambling circuit 20 performs descrambling processing on each scrambled data for each read block RB, and releases a predetermined scramble applied to the data. The descrambling circuit 20 outputs descrambling data dDu subjected to descrambling processing to the external buffer memory 6 and the EDC syndrome generation circuit 30. FIG. 7 shows the reading order of the scrambled data sDu of the first to 27th read blocks RB1 to RB27 read by the descrambling circuit 20 by the row number u in the scrambled data frame SDF (see FIG. 36A). It was. The row number u is a number indicating the processing order for each data frame DF at the time of scramble processing, and 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に出力する。   FIG. 6 shows a circuit configuration example of the descrambling circuit 20. As shown in FIG. 6, the scrambled data sDu read from the built-in memory unit 12 is input to the EOR circuit 21. The EOR circuit 21 receives the scramble value SC generated by the scramble value generation circuit 22. The EOR circuit 21 generates the descrambling data dDu by taking the exclusive OR of the scrambled data sDu from the built-in memory unit 12 and the lower 8 bits of the predetermined scramble value SC, and the descrambling data dDu is stored in the external buffer. The data is output to the memory 6 and the EDC syndrome generation circuit 30.

ここで、デスクランブル処理について説明する。前述したように、スクランブル値SCの初期値がS0である場合には、スクランブルデータsDuに対するデスクランブルデータdDuは下記式により生成される。   Here, the descrambling process will be described. As described above, when the initial value of the scramble value SC is S0, the descramble data dDu for the scramble data sDu is generated by the following equation.

このようにスクランブル処理時と同一のスクランブル値SCとスクランブルデータsDuとの排他的論理和を取ることによって、デスクランブル処理を実行することができる。すなわち、スクランブル処理時と同様の順序で読み出されるスクランブルデータsDuと、スクランブル処理を行った際と同様の順序で生成されるスクランブル値SCとの排他的論理和を取ることによって、全デスクランブルデータdD0〜dD2051を正確に生成することができる。但し、本実施形態の場合、データブロックDBが31分割されて読み出されるため、データの読み出し順序がスクランブル処理時と異なる。従って、スクランブル処理時と同様に、1バイト分ずつシフトさせてスクランブル値SCを生成すると、スクランブル処理時とは異なるスクランブル値SCと各データとの排他的論理和が取られ、正確にデスクランブル処理を実行することができない。 In this way, the descrambling process can be executed by taking the exclusive OR of the same scramble value SC and the scrambled data sDu as in the scramble process. That is, by taking an exclusive OR of the scrambled data sDu read in the same order as in the scramble process and the scramble value SC generated in the same order as in the scramble process, all the descrambled data dD0 ~ DD2051 can be generated accurately. However, in the case of this embodiment, the data block DB is divided into 31 parts and read out, so the data reading order is different from that in the scramble process. Therefore, as in the scramble process, when the scramble value SC is generated by shifting one byte at a time, the exclusive OR of the scramble value SC and each data different from the scramble process is taken, and the descramble process is accurately performed. Can not run.

そこで、本実施形態では、スクランブル値生成回路22内に、EOR回路21に入力されるスクランブルデータsDuに応じてシフト演算子γを所望のバイト数分だけシフトさせるための1シフト演算器24、209シフト演算器25及び108シフト演算器26を備えるようにした。1シフト演算器24及び209シフト演算器25には、フリップフロップ(FF)回路23からスクランブル値SCが入力される。1シフト演算器24は、FF回路23からスクランブル値SCとしてS0・γが入力されたときに、スクランブル値SCとしてS0・γn+1をセレクタ27に出力する演算器である。すなわち、1シフト演算器24は、入力されたスクランブル値を生成多項式Φ(x)に従って1バイト分シフトさせて新たなスクランブル値SCを生成する演算器である。図15に、1シフト演算器24にI[15:0]が入力されたときに、該1シフト演算器24から出力されるO[15:0]の論理式を示した。 Therefore, in this embodiment, 1-shift arithmetic units 24 and 209 for shifting the shift operator γ by the desired number of bytes in the scramble value generation circuit 22 in accordance with the scramble data sDu input to the EOR circuit 21. The shift calculator 25 and the 108 shift calculator 26 are provided. The scramble value SC is input from the flip-flop (FF) circuit 23 to the 1-shift calculator 24 and the 209-shift calculator 25. The 1 shift computing unit 24 is a computing unit that outputs S0 · γ n + 1 as the scramble value SC to the selector 27 when S0 · γ n is inputted as the scramble value SC from the FF circuit 23. That is, the 1-shift calculator 24 is a calculator that shifts the inputted scramble value by 1 byte according to the generator polynomial Φ (x) to generate a new scramble value SC. FIG. 15 shows a logical expression of O [15: 0] output from the 1-shift calculator 24 when I [15: 0] is input to the 1-shift calculator 24.

209シフト演算器25は、FF回路23からスクランブル値SCとしてS0・γが入力されたときに、スクランブル値SCとしてS0・γn+209をセレクタ27に出力する演算器である。すなわち、209シフト演算器25は、入力されたスクランブル値を生成多項式Φ(x)に従って209バイト分シフトさせて新たなスクランブル値SCを生成する演算器である。図16に、209シフト演算器25にI[15:0]が入力されたときに、該209シフト演算器25から出力されるO[15:0]の論理式を示した。 The 209 shift computing unit 25 is a computing unit that outputs S0 · γ n + 209 as the scramble value SC to the selector 27 when S0 · γ n is input from the FF circuit 23 as the scramble value SC. In other words, the 209 shift computing unit 25 is a computing unit that shifts the inputted scramble value by 209 bytes according to the generator polynomial Φ (x) to generate a new scramble value SC. FIG. 16 shows a logical expression of O [15: 0] output from the 209 shift calculator 25 when I [15: 0] is input to the 209 shift calculator 25.

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と排他的論理和が取られるデータである。 The 108 shift calculator 26 is a calculator that outputs S0 · γ 108 to the odd register R3 as the scramble value SC when the initial value S0 of the scramble value SC is input from the initial value register R1. That is, the 108 shift calculator 26 is a calculator that shifts the inputted scramble value by 108 bytes according to the generator polynomial Φ (x) to generate a new scramble value SC. FIG. 17 shows a logical expression of O [15: 0] output from the 108 shift calculator 26 when I [15: 0] is input to the 108 shift calculator 26. Note that O [7] to O [0] in FIGS. 15 to 17 are data that are actually exclusive-ORed with the scrambled data sDu in the EOR circuit 21.

セレクタ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を通じて格納される。 The selector 27 receives the scramble value SC from the initial value register R1, the even number register R2, and the odd number register R3 together with the various arithmetic units 24 and 25. Here, the initial value S0 of the scramble value SC input from the initial value register R1 is stored in the even register R2 at the time of initial setting. Further, the even register R2 stores the scramble value SC for the scrambled data in the last row of the first column in the last even data frame (data frame DF30) in each read block RB through the 1 shift calculator 24. On the other hand, the scramble value SC (= S0 · γ 108 ) input from the initial value register R1 through the 108 shift calculator 26 is stored in the odd-numbered register R3 at the time of initial setting. The odd register R3 stores the scramble value SC for the scrambled data in the last row of the first column in the last odd data frame (data frame DF31) in each read block RB through the 1-shift calculator 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に出力させる選択信号を生成する。   The selector 27 receives a selection signal from the selection circuit 28. Based on the selection signal from the selection circuit 28, the selector 27 outputs one scramble value SC among the scramble values input from the various arithmetic units 24 and 25 and the registers R 1 to R 3 to the FF circuit 23. The selection circuit 28 generates a selection signal according to the number of pulses of the input clock signal CLK, that is, according to the position of data to be read (position in the data block DB), and outputs the selection signal to the selector 27. . For example, when the first scrambled data in the first row and the first column in each even data frame in each read block RB is input to the EOR circuit 21, the selection circuit 28 supplies the scramble value SC from the even register 28 to the FF circuit 23. A selection signal to be output is generated. The selection circuit 28 causes the FF circuit 23 to output the scramble value SC from the odd register 29 when the first scramble data in the first row and the first column in each odd data frame in each read block RB is input to the EOR circuit 21. A selection signal is generated. The selection circuit 28 generates a selection signal that causes the FF circuit 23 to output the scramble value SC input from the 1-shift arithmetic unit 24 when the scramble data of the second and subsequent rows of each read block is input to the EOR circuit 21. . When the scramble data of the first row of each column after the second column in each data frame DF of each read block is input to the EOR circuit 21, the selection circuit 28 receives the scramble value SC input from the 209 shift computing unit 25. Is generated by the FF circuit 23.

FF回路23は、CK端子に入力されるクロック信号CLKのパルスに基づいて、セレクタ27からD端子に入力されるスクランブル値SCをラッチするとともに、該ラッチしたスクランブル値SCをQ端子からEOR回路21、各種演算器24,25に出力する。   The FF circuit 23 latches the scramble value SC input from the selector 27 to the D terminal based on the pulse of the clock signal CLK input to the CK terminal, and the latched scramble value SC from the Q terminal to the EOR circuit 21. And output to various arithmetic units 24 and 25.

図2に示すように、EDCシンドローム生成回路30は、デスクランブル回路20からバイトデータとして入力されるデスクランブルデータdDuに基づいてEDC演算を行ってEDCシンドロームを生成する。すなわち、EDCシンドローム生成回路30は、読み出しブロックRB内のデータフレームDF毎に、デスクランブルデータdDuに対するEDCシンドロームを生成し、そのEDCシンドロームをEDCメモリ部40に格納する。   As shown in FIG. 2, the EDC syndrome generation circuit 30 performs EDC calculation based on the descrambling data dDu input from the descrambling circuit 20 as byte data, and generates an EDC syndrome. That is, the EDC syndrome generation circuit 30 generates an EDC syndrome for the descrambling data dDu for each data frame DF in the read block RB, and stores the EDC syndrome in the EDC memory unit 40.

図8に、EDCシンドローム生成回路30の回路構成例を示した。図8に示すように、デスクランブル回路20から入力されるデスクランブルデータdDuは、EOR回路31に入力される。このEOR回路31には、セレクタ32からシフト演算値Esが入力される。EOR回路31は、デスクランブルデータdDuとシフト演算値Esの下位8ビットとの排他的論理和を取って、EDC演算値Er(c)をFF回路33に出力する。なお、EDC演算値Er(c)のrは読み出しブロックRB番号であり、1≦r≦27であるとともに、cは各データフレームDFにおけるクロック信号CLKのパルス数を表している。   FIG. 8 shows a circuit configuration example of the EDC syndrome generation circuit 30. As shown in FIG. 8, the descrambling data dDu input from the descrambling circuit 20 is input to the EOR circuit 31. The EOR circuit 31 receives the shift operation value Es from the selector 32. The EOR circuit 31 calculates the exclusive OR of the descrambling data dDu and the lower 8 bits of the shift operation value Es and outputs the EDC operation value Er (c) to the FF circuit 33. Note that r in the EDC operation value Er (c) is a read block RB number, 1 ≦ r ≦ 27, and c represents the number of pulses of the clock signal CLK in each data frame DF.

ここで、EDC演算について説明する。前述したように、4バイトのEDCを付加するときのデータ配置(データ処理順序)と同様に、デスクランブルデータが、dD0→dD1→・・・→dD2050→dD2051の順で入力されると、EDCシンドロームEDCSは下記式により生成される。   Here, the EDC calculation will be described. As described above, when descrambling data is input in the order of dD0 → dD1 →... → dD2050 → dD2051, similarly to the data arrangement (data processing order) when adding 4-byte EDC, EDC The syndrome EDCS is generated by the following equation.

このように、EDCシンドロームEDCSの演算は、1バイトのデータが演算処理される度に各データに対して1次のベクターβによる重み付けが行われる。従って、入力順序が早いデータほど重み付けされるベクターβの次数が高次になるとともに、入力順序が遅いデータほど重み付けされるベクターβの次数が低次になる。例えば、各データフレームDFにおいて最も早く入力される入力データ(バイトデータ)X2051に対しては、1次のベクターβによる重み付けが2051回行われる。但し、本実施形態の場合、図7に示すように、デスクランブル回路20からEDCシンドローム生成回路30にデスクランブルデータが、dD0→dD1→・・・→dD7→dD216→dD217→・・・という順序で入力される。このように、EDC付加時のデータ処理順序と異なる順序でデスクランブルデータが入力されると、ベクターβによる重み付けが正確にできないため、正常なEDCシンドロームを生成することができない。 Thus, operation of the EDC syndrome EDCS is weighted by the primary vector beta 1 for each data every time 1-byte data is arithmetic processing is performed. Therefore, the order of the vector β to be weighted becomes higher as the data is input earlier, and the order of the vector β to be weighted becomes lower as the data is input later. For example, the input data (byte data) X 2051 input earliest in each data frame DF is weighted 2051 times by the primary vector β 1 . However, in the present embodiment, as shown in FIG. 7, the descrambling data from the descrambling circuit 20 to the EDC syndrome generation circuit 30 is in the order of dD0 → dD1 →... → dD7 → dD216 → dD217 →. It is input with. Thus, when descrambling data is input in an order different from the data processing order at the time of EDC addition, weighting by the vector β cannot be performed accurately, so that a normal EDC syndrome cannot be generated.

そこで、本実施形態のEDCシンドローム生成回路30は、図8に示すように、バイトデータに応じて所望の次数nのベクターβによる重み付けを行うための1シフト演算器34、209シフト演算器35、108シフト演算器36及び−211シフト演算器37を備えるようにした。これら各種演算器34〜37には、FF回路33からEDC演算値Er(c)が入力される。すなわち、FF回路33は、CK端子に入力されるクロック信号CLKに基づいて、D端子に入力されるEDC演算値Er(c)をラッチするとともに、該EDC演算値Er(c)をQ端子から各種演算器34〜37及びEDCメモリ部40に出力する。 Therefore, as shown in FIG. 8, the EDC syndrome generation circuit 30 of the present embodiment includes a 1-shift calculator 34 and a 209-shift calculator 35 for performing weighting with a vector β n of a desired order n according to byte data. , 108 shift computing unit 36 and -211 shift computing unit 37. The EDC calculation value Er (c) is input from the FF circuit 33 to these various calculators 34 to 37. That is, the FF circuit 33 latches the EDC operation value Er (c) input to the D terminal based on the clock signal CLK input to the CK terminal, and the EDC operation value Er (c) from the Q terminal. The data is output to various arithmetic units 34 to 37 and the EDC memory unit 40.

1シフト演算器34は、FF回路33からEDC演算値Er(c)が入力されたときに、シフト演算値としてEr(c)・βをセレクタ32に出力する演算器である。すなわち、1シフト演算器34は、入力されるEDC演算値Er(c)に対して、生成多項式G(x)に従って1バイト分シフトさせる重み付けをしてシフト演算値Esを生成する演算器である。図18に、1シフト演算器34にI[31:0]が入力されたときに、該1シフト演算器34から出力されるO[31:0]の論理式を示した。 The 1-shift computing unit 34 is a computing unit that outputs Er (c) · β 1 to the selector 32 as a shift computation value when the EDC computation value Er (c) is input from the FF circuit 33. That is, the 1-shift computing unit 34 is a computing unit that generates a shift computation value Es by weighting an input EDC computation value Er (c) by one byte according to the generator polynomial G (x). . FIG. 18 shows a logical expression of O [31: 0] that is output from the 1-shift calculator 34 when I [31: 0] is input to the 1-shift calculator 34.

209シフト演算器35は、FF回路33からEDC演算値Er(c)が入力されたときに、シフト演算値としてEr(c)×β209をセレクタ32及びEOR回路38に出力する演算器である。すなわち、209シフト演算器35は、入力されるEDC演算値Er(c)に対して、生成多項式G(x)に従って209バイト分シフトさせる重み付けをしてシフト演算値Esを生成する演算器である。図19に、209シフト演算器35にI[31:0]が入力されたときに、該209シフト演算器35から出力されるO[31:0]の論理式を示した。 The 209 shift arithmetic unit 35 is an arithmetic unit that outputs Er (c) × β 209 as a shift arithmetic value to the selector 32 and the EOR circuit 38 when the EDC arithmetic value Er (c) is input from the FF circuit 33. . In other words, the 209 shift computing unit 35 is a computing unit that generates the shift computation value Es by weighting the input EDC computation value Er (c) by 209 bytes according to the generator polynomial G (x). . FIG. 19 shows a logical expression of O [31: 0] outputted from the 209 shift computing unit 35 when I [31: 0] is inputted to the 209 shift computing unit 35.

108シフト演算器36は、FF回路33からEDC演算値Er(c)が入力されたときに、EDCシンドロームの中間値EDCsとしてEr(c)×β108をセレクタ32に出力する演算器である。すなわち、108シフト演算器36は、入力されるEDC演算値Er(c)に対して、生成多項式G(x)に従って108バイト分シフトさせる重み付けをしてシフト演算値Esを生成する演算器である。図20に、108シフト演算器36にI[31:0]が入力されたときに、該108シフト演算器36から出力されるO[31:0]の論理式を示した。 The 108 shift computing unit 36 is a computing unit that outputs Er (c) × β 108 to the selector 32 as the intermediate value EDCs of the EDC syndrome when the EDC computed value Er (c) is input from the FF circuit 33. That is, the 108 shift computing unit 36 is a computing unit that generates a shift computation value Es by weighting the input EDC computation value Er (c) by 108 bytes according to the generator polynomial G (x). . FIG. 20 shows a logical expression of O [31: 0] output from the 108 shift calculator 36 when I [31: 0] is input to the 108 shift calculator 36.

−211シフト演算器37は、FF回路33からEDC演算値Er(c)が入力されたときに、EDCシンドロームの中間値EDCsとしてEr(c)×β-211をセレクタ
32に出力する演算器である。すなわち、−211シフト演算器37は、入力されるEDC演算値Er(c)に対して、生成多項式G(x)に従って211バイト分、逆シフトさせる重み付けをしてシフト演算値Esを生成する演算器である。図21に、−211シフト演算器37にI[31:0]が入力されたときに、該−211シフト演算器37から出力されるO[31:0]の論理式を示した。
The −211 shift arithmetic unit 37 is an arithmetic unit that outputs Er (c) × β− 211 to the selector 32 as the intermediate value EDCs of the EDC syndrome when the EDC arithmetic value Er (c) is input from the FF circuit 33. is there. In other words, the -211 shift computing unit 37 performs a weighting that reversely shifts the input EDC computation value Er (c) by 211 bytes according to the generator polynomial G (x) to generate the shift computation value Es. It is a vessel. FIG. 21 shows a logical expression of O [31: 0] output from the −211 shift calculator 37 when I [31: 0] is input to the −211 shift calculator 37.

EDCメモリ部40には、各読み出しブロックRBの各データフレームにおける最終行最終列のバイトデータに対するEDC演算値Er(c)が1シフト演算器34を通じて中間値EDCsとして格納される。EDCメモリ部40には、第14読み出しブロックRBの各偶数データフレームにおける最後のバイトデータに対するEDC演算値Er(c)が−211シフト演算器37を通じて中間値EDCsとして格納される。EDCメモリ部40には、第27読み出しブロックRBの各偶数データフレームにおける最終行最終列のバイトデータに対するEDC演算値Er(c)が108シフト演算器36を通じてEDCシンドロームEDCSとして格納される。EDCメモリ部40には、第27読み出しブロックRBの各奇数データフレームにおける最後のバイトデータに対するEDC演算値Er(c)がEDCシンドロームEDCSとしてFF回路33から格納される。   In the EDC memory unit 40, an EDC operation value Er (c) for the byte data of the last row and last column in each data frame of each read block RB is stored as an intermediate value EDCs through the 1-shift operation unit 34. In the EDC memory unit 40, the EDC operation value Er (c) for the last byte data in each even data frame of the 14th read block RB is stored as an intermediate value EDCs through the -211 shift operation unit 37. In the EDC memory unit 40, the EDC operation value Er (c) for the byte data of the last row and the last column in each even data frame of the 27th read block RB is stored as the EDC syndrome EDCS through the 108 shift calculator 36. The EDC memory unit 40 stores the EDC operation value Er (c) for the last byte data in each odd data frame of the 27th read block RB from the FF circuit 33 as the EDC syndrome EDCS.

この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と略同様の構成を有する。   As shown in FIG. 8, the EDC memory unit 40 includes two EDC buffer memories M7 and M8. Each of the buffer memories M7 and M8 has a memory capacity capable of storing EDC syndrome in all the data frames DF0 to DF31, that is, a memory capacity capable of storing 128 (= 4 × 32) bytes. The EDC memory unit 40 outputs the intermediate value EDCs stored through the 1 shift computing unit 34 and the −211 shift computing unit 37 to the EOR circuit 38. The EDC memory unit 40 outputs the EDC syndrome EDCS from the FF circuit 33 and the 108 shift calculator 36 to the external buffer memory 6. The EDC memory unit 40 uses one of the buffer memory M7 and the buffer memory M8 for the syndrome storage for storing the intermediate value EDCs of the EDC syndrome from the EDC syndrome generation circuit 30 at the same time, and the other is used as the final A typical EDC syndrome EDCS is used for syndrome output to be output to the external buffer memory 6. The EDC memory unit 40 has substantially the same configuration as the built-in memory unit 12.

EOR回路38は、209シフト演算器35からのシフト演算値Es(=Er(c)・β209)とEDCメモリ部40からの中間値EDCsとの排他的論理和を取って、その演算結果をシフト演算値Esとしてセレクタ32に出力する。 The EOR circuit 38 obtains the exclusive OR of the shift operation value Es (= Er (c) · β 209 ) from the 209 shift operation unit 35 and the intermediate value EDCs from the EDC memory unit 40, and the operation result is obtained. The shift operation value Es is output to the selector 32.

セレクタ32は、選択回路39からの選択信号に基づいて、各種演算器34,35及びEOR回路38から入力されるシフト演算値のうち1つのシフト演算値Esを上記EOR回路31に出力する。また、セレクタ32は、選択回路39からの選択信号に基づいて、シフト演算値Esを出力しないようにする。   Based on the selection signal from the selection circuit 39, the selector 32 outputs one shift calculation value Es among the shift calculation values input from the various calculators 34 and 35 and the EOR circuit 38 to the EOR circuit 31. Further, the selector 32 prevents the shift operation value Es from being output based on the selection signal from the selection circuit 39.

選択回路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を出力しないようにする選択信号を生成する。   The selection circuit 39 generates various selection signals according to the number of pulses of the input clock signal CLK, that is, according to the byte data position (position in the data block DB), and outputs the selection signal to the selector 32. For example, the selection circuit 39 outputs a selection signal that causes the EOR circuit 31 to output the shift operation value Es from the 1-shift operation unit 34 when the byte data of the second and subsequent rows of each read block RB is input to the EOR circuit 31. Generate. When the byte data of the first row of each column excluding the first column and the last column of each data frame DF in each read block RB is input to the selection circuit 39, the selection circuit 39 receives the shift calculation value Es from the 209 shift calculator 35. A selection signal to be output to the EOR circuit 31 is generated. The selection circuit 39 generates a selection signal that causes the EOR circuit 31 to output the shift operation value Es from the EOR circuit 38 when the byte data of the first row of the last column in each data frame DF of each read block RB is input. To do. The selection circuit 39 generates a selection signal that prevents the selector 32 from outputting the shift operation value Es when the first byte data in the first row and the first column in each data frame DF of each read block RB is input.

図2に示すように、誤り訂正回路50内の訂正回路51は、外部バッファメモリ6からLDCシンドローム及びBISシンドロームを読み出し、これらLDCシンドローム及びBISシンドロームに基づいて、外部バッファメモリ6に格納されたデスクランブル処理済のデータフレームDFに対して誤り訂正処理を行う。訂正回路51は、各種シンドロームに基づいて算出した誤り位置及び誤り数値をEDC補正回路52に出力する。   As shown in FIG. 2, the correction circuit 51 in the error correction circuit 50 reads the LDC syndrome and BIS syndrome from the external buffer memory 6, and based on these LDC syndrome and BIS syndrome, stores the data stored in the external buffer memory 6. Error correction processing is performed on the scrambled data frame DF. The correction circuit 51 outputs an error position and an error value calculated based on various syndromes to the EDC correction circuit 52.

EDC補正回路52は、訂正回路51から入力される誤り位置及び誤り数値に基づいて、外部バッファメモリ6から補正メモリ部53に格納されるEDCシンドロームを補正する。EDCチェック回路54は、補正メモリ部53に格納されている補正後のEDCシンドロームを読み出し、EDCチェックを行う。ここで、図41及び図43に示したコントローラ110,130におけるEDCチェック回路116では、誤り訂正後のデータをホストコンピュータに転送すると同時に、EDCチェックを行っていた。そのため、従来のコントローラ110,130では、誤り訂正が正常に終了していない場合であっても、誤り訂正後のデータがホストコンピュータに転送される場合がある。これに対して、本実施形態のコントローラ10では、誤り訂正処理の終了後、直ちにEDCチェックが行われるため、誤った訂正を行ったデータをコンピュータ2に転送されることを抑制することができる。   The EDC correction circuit 52 corrects the EDC syndrome stored in the correction memory unit 53 from the external buffer memory 6 based on the error position and error value input from the correction circuit 51. The EDC check circuit 54 reads the corrected EDC syndrome stored in the correction memory unit 53 and performs an EDC check. Here, the EDC check circuit 116 in the controllers 110 and 130 shown in FIGS. 41 and 43 performs the EDC check at the same time as transferring the data after error correction to the host computer. Therefore, in the conventional controllers 110 and 130, the data after error correction may be transferred to the host computer even when error correction is not normally completed. On the other hand, in the controller 10 of this embodiment, since the EDC check is performed immediately after the error correction processing is completed, it is possible to suppress transfer of erroneously corrected data to the computer 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進数であることを示す。
The interface circuit 60 reads out the error-corrected data stored in the external buffer memory 6 based on an instruction from the microprocessor 8 and outputs it to the computer 2.
As shown in FIG. 9, the external buffer memory 6 is composed of a plurality of storage blocks. One storage block is composed of 13000 H bytes. Specifically, in one storage block, the user data UD portion (65536 bytes) of all data frames DF0 to DF31 is stored at addresses 000000H to 00FFFFH, and BIS data (720 bytes) is stored at addresses 010000H to 0103FFH. The In one storage block, the LDC syndrome (9728 bytes) is stored at addresses 010400H to 0129FFH, the BIS syndrome (768 bytes) is stored at addresses 012A00H to 012DFFH, and the EDC syndrome (128 bytes) is stored at addresses 012E00H to 12FFFH. ) Is stored. Therefore, data for one ECC cluster ECCc can be stored in one storage block. As is well known, “H” indicates that the value is a hexadecimal number.

次に、このように構成された光ディスクコントローラ10の動作について説明する。
復調回路11は、BD4からディスクデータを読み込んで復調し、その復調済データ(ECCクラスタECCc)を、内蔵メモリ部12の第1及び第2バッファメモリM1,M2のうちデータ保存用として選択されているバッファメモリに格納する。なお、1つのバッファメモリには、ECCクラスタECCcを31個に分割した2480バイト分の分割ECCクラスタDECCが格納される。
Next, the operation of the optical disk controller 10 configured as described above will be described.
The demodulating circuit 11 reads the disk data from the BD 4 and demodulates it, and the demodulated data (ECC cluster ECCc) is selected as data storage among the first and second buffer memories M1 and M2 of the built-in memory unit 12. Stored in the existing buffer memory. One buffer memory stores a divided ECC cluster DECC of 2480 bytes obtained by dividing the ECC cluster ECCc into 31 pieces.

LDCシンドローム生成回路13は、アクセス用として選択されている第1バッファメモリM1あるいは第2バッファメモリM2から、分割ECCクラスタDECC内のLDCクラスタLDCcを並び替えながら、読み出しブロックRBとして読み出す。このとき、図4に示すように、読み出しブロックRBが任意の2432(8行×304列)バイト分のデータから構成されるため、LDCシンドローム生成回路13は、列方向に8バイト分のデータ毎、すなわち読み出しブロックRBの列毎にLDCシンドロームを生成する。LDCシンドローム生成回路13は、生成したLDCシンドロームをLDCシンドロームの中間値としてLDCメモリ部14に格納する。   The LDC syndrome generation circuit 13 reads out the read blocks RB from the first buffer memory M1 or the second buffer memory M2 selected for access while rearranging the LDC clusters LDCc in the divided ECC cluster DECC. At this time, as shown in FIG. 4, since the read block RB is composed of data of an arbitrary 2432 (8 rows × 304 columns) bytes, the LDC syndrome generation circuit 13 performs every 8 bytes of data in the column direction. That is, the LDC syndrome is generated for each column of the read block RB. The LDC syndrome generation circuit 13 stores the generated LDC syndrome in the LDC memory unit 14 as an intermediate value of the LDC syndrome.

次に、LDCシンドローム生成回路13は、第2読み出しブロックRB2以降の読み出しブロックRB(第2〜第31読み出しブロックRB2〜RB31)を読み出すとき、前回の読み出しブロックRBで生成した同一列のLDCシンドロームの中間値をLDCメモリ部14から読み出す。そして、LDCシンドローム生成回路13は、読み出したLDCシンドロームの中間値と現在の読み出しブロックRBの列方向に8バイト分のデータとからLDCシンドロームを生成し、該LDCシンドロームを新たなLDCシンドロームの中間値としてLDCメモリ部14に格納する。   Next, when the LDC syndrome generation circuit 13 reads the read blocks RB after the second read block RB2 (second to 31st read blocks RB2 to RB31), the LDC syndrome of the same column generated by the previous read block RB is read. The intermediate value is read from the LDC memory unit 14. Then, the LDC syndrome generation circuit 13 generates an LDC syndrome from the read intermediate value of the LDC syndrome and data of 8 bytes in the column direction of the current read block RB, and the LDC syndrome is generated as an intermediate value of the new LDC syndrome. Is stored in the LDC memory unit 14.

LDCメモリ部14では、1つのパリティ付加ブロックPB(第1〜第31読み出しブロックRB1〜RB31)の全データの読み出しが終了すると、バッファメモリM3及びバッファメモリM4におけるシンドローム保存用とシンドローム出力用の選択が切り替えられる。これにより、シンドローム保存用からシンドローム出力用に切り替わったバッファメモリには、1つのパリティ付加ブロックPBにおける列毎の最終的なLDCシンドロームが格納されることになる。シンドローム出力用に切り替えられたバッファメモリは、この列毎の最終的なLDCシンドロームを外部バッファメモリ6に格納する。   In the LDC memory unit 14, when all the data in one parity addition block PB (first to 31st read blocks RB1 to RB31) has been read, selection for saving syndromes and outputting syndromes in the buffer memory M3 and the buffer memory M4 is performed. Is switched. As a result, the final LDC syndrome for each column in one parity addition block PB is stored in the buffer memory switched from the syndrome storage to the syndrome output. The buffer memory switched for the syndrome output stores the final LDC syndrome for each column in the external buffer memory 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に格納する。   On the other hand, the buffer memory selected for data storage in the BIS memory unit 15 includes the BIS cluster BISc in the divided ECC cluster DECC from the first buffer memory M1 or the second buffer memory M2 selected for access. Stored. In the BIS memory unit 15, when the storage of all data in one BIS cluster BISc is completed, the selection of data storage and data output in the buffer memory M5 and the buffer memory M6 is switched. Next, the BIS syndrome generation circuit 16 reads the BIS cluster BISc from the buffer memory M5 or the buffer memory M6 of the BIS memory unit 15 switched for data output. The BIS syndrome generation circuit 16 generates a BIS syndrome based on the read BIS cluster BISc, and stores the BIS syndrome in the external buffer memory 6.

デスクランブル回路20は、上記LDCシンドローム生成回路13によるデータ読み出しと同時に、アクセス用として選択されている第1バッファメモリM1あるいはバッファメモリM2から、スクランブルデータsDuを第1〜第27読み出しブロックRB1〜RB27として列方向に読み出す。   The descrambling circuit 20 reads the scrambled data sDu from the first buffer memory M1 or the buffer memory M2 selected for access simultaneously with the data reading by the LDC syndrome generation circuit 13, and the first to 27th reading blocks RB1 to RB27. Read in the column direction.

次に、デスクランブル回路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における物理セクタ番号に応じて予め設定されている値である。
Next, the descrambling process in the descrambling circuit 20 will be described with reference to FIGS. 7 and 10 to 12.
In step S1 of FIG. 10, the initial value S0 of the scramble value SC is stored in the even register R2, and S0 · γ 108 is stored as the scramble value SC in the odd register R3. Here, the reason why not the initial value S0 but S0 · γ 108 is stored in the odd register R3 will be described. As shown in FIG. 7, since the row number u of the scrambled data sDu read first in the odd data frame DF (for example, the data frame DF1) in the first read block RB1 is 108, S0 · γ 108 is stored. I did it. That is, the scrambled data sD108 is data that is processed by 108 bytes later in the scramble process than the start data sD0 in the scramble process of each data frame. Therefore, S0 · γ108 obtained by shifting by 108 bytes from the initial value S0 is stored in the odd register R3 as the scramble value SC. The initial value S0 is a value set in advance according to the physical sector number in the ECC cluster ECCc in the disk data.

次に、デスクランブル回路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ビットとの排他的論理和が取られる。   Next, the descrambling circuit 20 reads the scrambled data sD0 in the data frame DF0 (even data frame) of the first read block RB1, and inputs the scrambled data sD0 to the EOR circuit 21 (step S2). At this time, the selection circuit 28 outputs to the selector 27 a selection signal for causing the EOR circuit 21 to output the scramble value SC from the even register R2. Accordingly, the initial value S0 is input to the EOR circuit 21 as the scramble value SC. The EOR circuit 21 generates the descrambling data dD0 by taking the exclusive OR of the scrambled data sD0 and the lower 8 bits of the initial value S0, and supplies the descrambling data dD0 to the external buffer memory 6 and the EDC syndrome generation circuit 30. Output (step S3). The scramble value SC used here is also input to the 1-shift calculator 24 and the 209-shift calculator 25. In the following description, the lower 8 bits of the scramble value SC in the exclusive OR operation of the EOR circuit 21 are simply referred to as “scramble value SC”. An exclusive OR with the lower 8 bits of the scramble value SC is taken.

次に、ステップS4において、選択回路28は、入力されるクロック信号CLKのパルス数に基づいて、各読み出しブロックRBにおける1列分のデスクランブル処理が終了したかを判断する。選択回路28は、1列分のデスクランブル処理が終了していないと判断すると(ステップS4においてNO)、ステップS5に移る。このとき、上記ステップS3においてデスクランブル回路20により読み出されたスクランブルデータをsDuとすると、次に読み出されるスクランブルデータがsDu+1となる。すなわち、ステップS4からステップS5に移る場合には、各読み出しブロックRBにおける列方向にスクランブルデータが読み出され、読み出し順序がスクランブル処理時のデータ処理順序と同一になる。   Next, in step S4, the selection circuit 28 determines whether the descrambling process for one column in each read block RB is completed based on the number of pulses of the input clock signal CLK. If selection circuit 28 determines that the descrambling process for one column has not been completed (NO in step S4), it proceeds to step S5. At this time, if the scramble data read by the descrambling circuit 20 in step S3 is sDu, the next read scramble data is sDu + 1. That is, when moving from step S4 to step S5, the scrambled data is read in the column direction in each read block RB, and the read order is the same as the data processing order during the scramble process.

そこで、選択回路28は、ステップS5において、すなわち各読み出しブロックの2行目以降のデータがEOR回路21に入力されるときに、1シフト演算器24からのスクランブル値SCをEOR回路21に出力させるための選択信号をセレクタ27に出力する。これにより、EOR回路21には、1つ前に読み出されたスクランブルデータsDuの時に使用されたスクランブル値から、上記生成多項式Φ(x)に従って1バイト分シフトさせて得られるスクランブル値SC(=S0・γ・γ)が入力される。そして、EOR回路21は、デスクランブル回路20により次に読み出されるスクランブルデータsD1と、1シフト演算器24からのスクランブル値SC(=S0・γ)との排他的論理和を取って、デスクランブルデータdD1を生成する(ステップS3)。このように、各読み出しブロックRBにおける1列分のデスクランブル処理が終了するまで、ステップS3〜ステップS5が繰り返し実行される。なお、本実施形態では、以後、デスクランブル回路20によりスクランブルデータがsD2→sD3→sD4→sD5→sD6→sD7の順(図7の実線の矢印参照)に読み出されるため、デスクランブルデータdD2〜dD7が下記式に示すように生成される。 Therefore, the selection circuit 28 causes the EOR circuit 21 to output the scramble value SC from the 1 shift computing unit 24 in step S5, that is, when the data of the second and subsequent rows of each read block are input to the EOR circuit 21. A selection signal for output is output to the selector 27. As a result, the EOR circuit 21 shifts the scramble value SC (=) obtained by shifting the scramble value used at the time of the previously read scramble data sDu by 1 byte according to the generator polynomial Φ (x). S0 · γ u · γ 1 ) is input. Then, the EOR circuit 21 obtains an exclusive OR of the scrambled data sD1 read next by the descrambling circuit 20 and the scramble value SC (= S0 · γ 1 ) from the 1 shift computing unit 24, and descrambles Data dD1 is generated (step S3). Thus, steps S3 to S5 are repeatedly executed until the descrambling process for one column in each read block RB is completed. In this embodiment, the descrambling circuit 20 reads the scrambled data in the order of sD2->sD3->sD4->sD5->sD6-> sD7 (see the solid line arrow in FIG. 7). Is generated as shown in the following equation.

このようにデスクランブルデータdD7が生成されると、ステップS4において、選択回路28は、各読み出しブロックRBにおける1列分のデスクランブル処理が終了したと判断して、ステップS6に移る。次に、選択回路28は、各読み出しブロックRBにおける1つのデータフレーム分のデスクランブル処理が終了したかを判断する(ステップS6)。選択回路28は、1つのデータフレーム分のデスクランブル処理が終了していないと判断すると(ステップS6においてNO)、ステップS7に移る。このとき、上記ステップS3においてデスクランブル回路20により読み出されたスクランブルデータをsDuとすると、次に読み出されるスクランブルデータがsDu+209となる。すなわち、ステップS6からステップS7に移る場合には、各読み出しブロックRBの同一データフレーム内において次の列の1行目のスクランブルデータが読み出され、読み出し順序がスクランブル処理時のデータ処理順序と異なるようになる。詳しくは、ステップS7に移ったときに読み出される次列の1行目のデータD2は、その1つ前に読み出されたデータD1よりも、スクランブル処理時において{[(データブロックDBの行数)+1]−(1つの読み出しブロックRBの行数)=209}バイト分だけ遅く処理されるデータである。そのため、スクランブル値SCをスクランブル処理時の処理順序に合わせるように、上記データD1のときに使用したスクランブル値を生成多項式Φ(x)に従って209バイト分シフトさせることで、正確にデスクランブル処理を行うことができる。 When the descrambling data dD7 is generated in this way, in step S4, the selection circuit 28 determines that the descrambling process for one column in each read block RB is completed, and proceeds to step S6. Next, the selection circuit 28 determines whether the descrambling process for one data frame in each read block RB is completed (step S6). If the selection circuit 28 determines that the descrambling process for one data frame has not been completed (NO in step S6), the selection circuit 28 proceeds to step S7. At this time, if the scramble data read by the descrambling circuit 20 in step S3 is sDu, the next read scramble data is sDu + 209. That is, when moving from step S6 to step S7, the scrambled data in the first row of the next column is read in the same data frame of each read block RB, and the read order is different from the data processing order during the scramble process. It becomes like this. Specifically, the data D2 in the first row of the next column read when moving to step S7 is {[(the number of rows in the data block DB] at the time of the scramble processing than the data D1 read out immediately before. ) +1] − (number of rows in one read block RB) = 209} data that is processed later by bytes. Therefore, the descrambling process is accurately performed by shifting the scramble value used at the time of the data D1 by 209 bytes according to the generator polynomial Φ (x) so that the scramble value SC matches the processing order at the time of the scramble process. be able to.

そこで、選択回路28は、ステップS7において、すなわち各読み出しブロックの各データフレームにおける2列目以降の1行目のデータがEOR回路21に入力されるときに、209シフト演算器25からのスクランブル値SCをEOR回路21に出力させるための選択信号をセレクタ27に出力する。これにより、EOR回路21には、1つ前に読み出されたスクランブルデータsD7の時に使用されたスクランブル値S0・γから、上記生成多項式Φ(x)に従って209バイト分シフトさせて得られるスクランブル値SC(=S0・γ・γ209)が入力される。続いて、EOR回路21は、デスクランブル回路20により次に読み出されるスクランブルデータsD216と、209シフト演算器25からのスクランブル値SC(=S0×γ216)との排他的論理和を取って、デスクランブルデータdD216を生成する(ステップS3)。 Therefore, the selection circuit 28 determines the scramble value from the 209 shift computing unit 25 in step S7, that is, when the first row data after the second column in each data frame of each read block is input to the EOR circuit 21. A selection signal for outputting the SC to the EOR circuit 21 is output to the selector 27. Thus, the EOR circuit 21, scrambling scrambled value S0 · gamma 7, which is used when the scramble data sD7 read in the previous, obtained by 209 bytes shifted in accordance with the above generator polynomial [Phi (x) The value SC (= S0 · γ 7 · γ 209 ) is input. Subsequently, the EOR circuit 21 obtains an exclusive OR of the scramble data sD216 read next by the descramble circuit 20 and the scramble value SC (= S0 × γ 216 ) from the 209 shift computing unit 25, Scramble data dD216 is generated (step S3).

次に、前述のデータフレームDF0における1列目の処理と同様に、ステップS3〜S5が繰り返し実行され、デスクランブル回路20によりスクランブルデータがsD217→sD218→sD219→sD220→sD221→sD222→sD223の順に読み出されるため、デスクランブルデータが下記式に示すように生成される。   Next, similarly to the processing of the first column in the data frame DF0 described above, steps S3 to S5 are repeatedly executed, and the scramble data is scrambled by the descrambling circuit 20 in the order of sD217 → sD218 → sD219 → sD220 → sD221 → sD222 → sD223. Since it is read, descrambling data is generated as shown in the following equation.

以後同様に、ステップS3〜ステップS7が繰り返し実行され、第1読み出しブロックRB1のデータフレームDF0における各スクランブルデータに対するデスクランブル処理が実行される。そして、第1読み出しブロックRB1のデータフレームDF0における最終行最終列のスクランブルデータsD1951に対するデスクランブルデータdD1951(=sD1951^S0・γ1951)が生成されると、選択回路28は、1つのデータフレーム分のデスクランブル処理が終了したと判断し(ステップS7においてYES)、ステップS8に移る。 Thereafter, similarly, Steps S3 to S7 are repeatedly executed, and the descrambling process for each scrambled data in the data frame DF0 of the first read block RB1 is executed. When descrambling data dD1951 (= sD1951 ^ S0 · γ 1951 ) for the scrambled data sD1951 in the last row and last column in the data frame DF0 of the first read block RB1 is generated, the selection circuit 28 outputs the data for one data frame. Is determined to have been completed (YES in step S7), and the process proceeds to step S8.

次に、選択回路28は、デスクランブル処理の終了したデータフレームDFが最終データフレーム、すなわちデータフレームDF31であるかを判断する(ステップS8)。選択回路28は、デスクランブル処理の終了したデータフレームがデータフレームDF31ではないと判断すると(ステップS8においてNO)、次に読み出されるデータフレームDFが偶数データフレームであるかを判断する(ステップS9)。選択回路28は、次データフレームDFが偶数データフレームであると判断すると(ステップS9においてYES)、ステップS10に移り、奇数データフレームであると判断すると(ステップS9においてNO)、ステップS11に移る。ここでは、次データフレームがデータフレームDF1(奇数データフレーム)であるため、ステップS11に移る。   Next, the selection circuit 28 determines whether the data frame DF that has been descrambled is the final data frame, that is, the data frame DF31 (step S8). When the selection circuit 28 determines that the data frame for which the descrambling process has been completed is not the data frame DF31 (NO in step S8), the selection circuit 28 determines whether the data frame DF to be read next is an even data frame (step S9). . If the selection circuit 28 determines that the next data frame DF is an even data frame (YES in step S9), the selection circuit 28 proceeds to step S10. If the selection circuit 28 determines that the next data frame DF is an odd data frame (NO in step S9), the selection circuit 28 proceeds to step S11. Here, since the next data frame is the data frame DF1 (odd data frame), the process proceeds to step S11.

続いて、各読み出しブロックRBの各奇数データフレームにおける1行1列目の先頭データが次に読み出されるため、選択回路28は、奇数レジスタR3からのスクランブル値SC(ここでは、S0・γ108)をEOR回路21に出力させるための選択信号を生成する(ステップS11)。 Subsequently, since the first data in the first row and the first column in each odd-numbered data frame of each read block RB is read next, the selection circuit 28 scrambles the SC from the odd-numbered register R3 (here, S0 · γ 108 ). Is generated by the EOR circuit 21 (step 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)を生成する。 Next, in step S12 shown in FIG. 11, the selection circuit 28 determines whether the next data frame DF is the last odd data frame, that is, the data frame DF31. If selection circuit 28 determines that next data frame DF is not final odd data frame DF31 (NO in step S12), it returns to step S3. In step S3 at this time, since the selection signal generated in step 11 is input to the selector 27, S0 · γ 108 stored in the odd register R3 is input to the EOR circuit 21 as the scramble value SC. The Further, the EOR circuit 21 receives the scrambled data sD108 in the first row and the first column in the data frame DF1 of the first read block RB1. The EOR circuit 21 generates the descrambling data dD108 (= sD108 ^ S0 · γ 108 ) by taking the exclusive OR of the scrambled data sD108 and the scramble value S0 · γ 108 of the data frame DF1.

以後、データフレーム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に移る。 Thereafter, as in the case of the data frame DF0, when data from the second row onward in each column of each read block RB (for example, scrambled data sD109) is input to the EOR circuit 21, the previous scramble value is set to 1 byte. The descramble process is performed using the shifted scramble value SC. When data in the first row of each column after the second column in each data frame of each read block RB (for example, scrambled data sD324) is input to the EOR circuit 21, the previous scramble value SC is 209 bytes. The descramble processing is performed using the shifted scramble value. Then, Steps S3 to S7 shown in FIG. 10 are repeatedly executed, and the descrambling data dD1843 (= sD1843 ^ S0 · γ 1843 ) for the last scrambled data sD1843 (see FIG. 7) in the data frame DF1 of the first read block RB1. ) Is generated, the process proceeds from step S6 to step S8, and then to step S9. At this time, since the next data frame is the data frame DF2 (even data frame) (YES in step S10), the process proceeds to step 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の順序が同一である。   Subsequently, since the first data in the first row and the first column in each even data frame of each read block RB is read out next, the selection circuit 28 uses the scramble value SC (here, S0) from the even register R2 as an EOR circuit. A selection signal to be output to 21 is generated (step S10). Next, in step S13 shown in FIG. 11, the selection circuit 28 determines whether the next data frame is the last even data frame, that is, the data frame DF30. If selection circuit 28 determines that the next data frame is not the last even data frame (NO in step S13), it returns to step S3. Thereafter, the descrambling process is performed for the data frames DF2 to DF29 in the same manner as the process for the data frame DF0 and the data frame DF1. In the same read block RB, the order of the scramble values SC used in each of the even data frames (data frames DF0, DF2,..., DF30) is the same. In the same read block RB, the order of the scramble values SC used in each of the odd data frames (data frames DF1, DF3,..., DF31) is the same.

次に、最終偶数データフレームDF30のデスクランブル処理が開始されると(ステップS13においてYES)、ステップS14に移る。ステップS14において、ステップS3〜ステップS5が繰り返し実行され、データフレームDF30における1列目のデスクランブル処理が終了すると、1列目の最後のデータsD7のときに使用されたスクランブル値SCが1シフト演算器24を通じて偶数レジスタR2に格納される。従って、第1読み出しブロックRB1のときには、偶数レジスタR2にスクランブル値SC(=S0・γ・γ=S0・γ)が格納される。なお、第2読み出しブロックRB2のときには、偶数レジスタR2にスクランブル値SC(=S0・S16)が格納される。ステップS14以降は、選択回路28において、209シフト演算器25からのスクランブル値SC(ここでは、S0・γ216)をEOR回路21に出力させるための選択信号が生成されて(ステップS16)、ステップS3に戻る。以後、データフレームDF0の2列目以降と同様に、データフレームDF31の2列目以降のデスクランブル処理が実行される。 Next, when the descrambling process of the final even data frame DF30 is started (YES in step S13), the process proceeds to step S14. In step S14, steps S3 to S5 are repeatedly executed, and when the descrambling process of the first column in the data frame DF30 is completed, the scramble value SC used for the last data sD7 of the first column is calculated by one shift operation. It is stored in the even register R2 through the device 24. Therefore, in the first read block RB1, the scramble value SC (= S0 · γ 7 · γ 1 = S0 · γ 8 ) is stored in the even-numbered register R2. Note that when the second read block RB2 is scramble value SC (= S0 · S 16) is stored in the even register R2. After step S14, the selection circuit 28 generates a selection signal for causing the EOR circuit 21 to output the scramble value SC (in this case, S0 · γ 216 ) from the 209 shift computing unit 25 (step S16). Return to S3. Thereafter, the descrambling process of the second and subsequent columns of the data frame DF31 is executed in the same manner as the second and subsequent columns of the data frame DF0.

次に、最終奇数データフレームDF31のデスクランブル処理が開始されると(ステップS12においてYES)、ステップS15に移る。ステップS15において、ステップS3〜ステップS5が繰り返し実行され、データフレームDF31における1列目のデスクランブル処理が終了すると、1列目の最後のデータsD115のときに使用されたスクランブル値SCが1シフト演算器24を通じて奇数レジスタR3に格納される。従って、第1読み出しブロックRB1のときには、奇数レジスタR3にスクランブル値SC(=S0・γ115・γ=S0・γ116)が格納される。なお、第2読み出しブロックRB2のときには、奇数レジスタR3にスクランブル値SC(=S0×S124)が格納される。データフレームDF31の2列目以降のデスクランブル処理については、データフレームDF1のときと同様に実行される。そして、データフレームDF31の最終行最終列のスクランブルデータsD1843に対するデスクランブルデータdD1843(=sD1843^S0・γ1843)が生成されると(ステップS8においてYES)、第1読み出しブロックRB1(第r読み出しブロック)のデスクランブル処理が終了する。 Next, when the descrambling process of the last odd data frame DF31 is started (YES in step S12), the process proceeds to step S15. In step S15, steps S3 to S5 are repeatedly executed, and when the descrambling process for the first column in the data frame DF31 is completed, the scramble value SC used for the last data sD115 in the first column is calculated by one shift operation. It is stored in the odd register R3 through the device 24. Accordingly, in the first read block RB1, the scramble value SC (= S0 · γ 115 · γ 1 = S0 · γ 116 ) is stored in the odd-numbered register R3. In the case of the second read block RB2, a scramble value SC (= S0 × S 124 ) is stored in the odd register R3. The descrambling process for the second and subsequent columns of the data frame DF31 is executed in the same manner as for the data frame DF1. When descrambling data dD1843 (= sD1843 ^ S0 · γ 1843 ) for scrambled data sD1843 in the last row and last column of data frame DF31 is generated (YES in step S8), first read block RB1 (rth read block) ) Is descrambled.

第1読み出しブロックRB1のデスクランブル処理が終了すると、第2読み出しブロックRB2のデスクランブル処理が開始される。詳しくは、図10に示すステップS2から処理が開始され、選択回路28は、偶数レジスタR2からのスクランブル値SC(ここでは、S0・γ)をEOR回路21に出力させる選択信号をセレクタ27に出力する。すなわち、選択回路28は、各読み出しブロックの各偶数データフレームにおける1行1列目の先頭データがEOR回路21に入力されるときに、偶数レジスタR2からのスクランブル値SCをEOR回路21に出力させるための選択信号をセレクタ27に出力する。これにより、EOR回路21には、前回の第1読み出しブロックRB1における最終偶数データフレームDF30の1列目の最終行のデータsD7に使用したスクランブル値を、生成多項式Φ(x)に従って1バイト分シフトさせて得られるスクランブル値SC(=S0・γ)が入力される。従って、ステップS3において、偶数レジスタR2からのスクランブル値S0・γと、第2読み出しブロックRB2のデータフレームDF0における1行1列目の先頭データsD8との排他的論理和をEOR回路21により取ることで、デスクランブルデータdD8(=sD8^S0・γ)が生成される。なお、奇数データフレームの場合についても、奇数レジスタR3にはスクランブル値としてS0・γ116、すなわち第2読み出しブロックRB2の奇数データフレームにおける1行1列目の先頭データsD116に対するスクランブル値が格納されているため、上記先頭データsD116についても正確にデスクランブル処理が施される。 When the descrambling process of the first read block RB1 is completed, the descrambling process of the second read block RB2 is started. Specifically, the processing is started from step S2 shown in FIG. 10, and the selection circuit 28 gives the selector 27 a selection signal for causing the EOR circuit 21 to output the scramble value SC (here, S0 · γ 8 ) from the even-numbered register R2. Output. That is, the selection circuit 28 causes the EOR circuit 21 to output the scramble value SC from the even register R2 when the first data in the first row and the first column in each even data frame of each read block is input to the EOR circuit 21. A selection signal for output is output to the selector 27. As a result, the EOR circuit 21 shifts the scramble value used for the data sD7 in the last row of the first column of the last even data frame DF30 in the previous first read block RB1 by 1 byte according to the generator polynomial Φ (x). The scramble value SC (= S0 · γ 8 ) obtained as described above is input. Thus, in step S3, the scramble value S0 · gamma 8 from even register R2, the exclusive OR of the first data sD8 in the first row and the first column of the data frame DF0 the second read block RB2 take the EOR circuit 21 Thus, descrambling data dD8 (= sD8 ^ S0 · γ 8 ) is generated. Incidentally, the odd case of the data frame also, S0 · gamma 116 as the scramble value in the odd register R3, that is, the scramble value is stored for the leading data sD116 in the first row and the first column in an odd-numbered data frames of the second read block RB2 Therefore, the descrambling process is also accurately performed on the top data 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に入力されてしまうと、正確にデスクランブル処理を行うことができない。
Thereafter, similarly, the descrambling process in the second to thirteenth read blocks RB2 to RB13 is executed according to the flowcharts of FIGS.
Next, the descrambling process in the fourteenth read block RB14 will be described. The data frames DF0 and DF1 shown in FIG. 7 will be described as an example. In the first to thirteenth read blocks RB1 to RB13, the 1st to 10th columns become the data frame DF0, and the 11th to 19th columns become the data frame DF1. Become. In the 15th to 27th read blocks RB15 to RB27, the 1st to 9th columns become the data frame DF0, and the 10th to 19th columns become the data frame DF0. However, in the fourteenth read block RB14, the tenth column becomes the last column of the data frame DF0 (even data frame) and the first column of the data frame DF1 (odd data frame). Further, the data frame DF1 is the first data sD0 in the scramble process in the data frame DF1 from the fifth row of the tenth column. At this time, the scramble value SC stored in the odd register R3 during the descrambling process of the last odd data frame in the thirteenth read block RB13 is S0 · γ 212 . Therefore, when the first data sD0 of the data frame DF1 of the fourteenth read block RB14 is input to the EOR circuit 21, the scramble value S0 · γ 212 is input to the EOR circuit 21 from the odd register R3 according to the flowcharts of FIGS. If this happens, the descrambling process cannot be performed accurately.

そこで、本実施形態では、第14読み出しブロックRB14における各偶数データフレームの最終列及び各奇数データフレームの1列目のデスクランブル処理を図12のフローチャートに従って実行するようにした。   Therefore, in the present embodiment, the descrambling process of the last column of each even data frame and the first column of each odd data frame in the fourteenth read block RB14 is executed according to the flowchart of FIG.

図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に出力する。 In step S20 shown in FIG. 12, the descrambling for the last data sD1839 in the column (here, the ninth column) one column before the last column in the even-numbered data frame (here, the data frame DF0) of the fourteenth read block RB14. When data dD1839 (= sD1839 ^ S0 · γ 1839 ) is generated, the process proceeds to step S21. In step S 21, the selection circuit 28 outputs to the selector 27 a selection signal that causes the FF circuit 23 to output the scramble value SC (= S 0 · γ 1839 · γ 209 = S 0 · γ 2048 ) from the 209 shift computing unit 25.

次に、EOR回路21は、デスクランブル回路20により次に読み出されるスクランブルデータ(ここでは、スクランブルデータsD2048)と、209シフト演算器25からのスクランブル値SC(ここでは、S0・γ2048)との排他的論理和を取って、デスクランブルデータdD2048を生成する(ステップS22)。 Next, the EOR circuit 21 generates the scrambled data (here, scrambled data sD2048) to be read next by the descrambling circuit 20 and the scramble value SC (here, S0 · γ 2048 ) from the 209 shift computing unit 25. The exclusive OR is taken to generate descrambling data dD2048 (step S22).

次に、ステップS23において、選択回路28は、第14読み出しブロックRB14の偶数データフレームにおける最終列のデスクランブル処理が終了したかを判断する。選択回路28は、偶数データフレームのデスクランブル処理が終了していないと判断すると(ステップS23においてNO)、ステップS24に移る。続いて、偶数データフレームのデスクランブル処理が終了するまで、図10に示すステップS3〜S5と同様に、ステップS22〜S24が繰り返し実行される。そして、下記式に示すように、第14読み出しブロックRB14の各偶数データフレームにおける最終データsD2051に対するデスクランブルデータが生成されると(ステップS23においてYES)、ステップS25に移る。   Next, in step S23, the selection circuit 28 determines whether the descrambling process of the last column in the even-numbered data frame of the fourteenth read block RB14 is completed. If the selection circuit 28 determines that the descrambling process of the even data frame has not been completed (NO in step S23), the selection circuit 28 proceeds to step S24. Subsequently, steps S22 to S24 are repeatedly executed in the same manner as steps S3 to S5 shown in FIG. 10 until the descrambling process of the even data frame is completed. Then, as shown in the following equation, when descrambling data for the final data sD2051 in each even data frame of the fourteenth read block RB14 is generated (YES in step S23), the process proceeds to step S25.

次に、選択回路28は、初期値レジスタR1からのスクランブル値SC、すなわち初期値S0をEOR回路21に出力させるための選択信号をセレクタ27に出力する(ステップS25)。続いて、EOR回路21は、デスクランブル回路20により読み出される各奇数データフレームにおけるスクランブル処理時の先頭データsD0と、初期値レジスタR1からの初期値S0との排他的論理和を取って、デスクランブルデータdD0(=sD0^S0)を生成する(ステップS26)。 Next, the selection circuit 28 outputs to the selector 27 a selection signal for causing the EOR circuit 21 to output the scramble value SC from the initial value register R1, that is, the initial value S0 (step S25). Subsequently, the EOR circuit 21 obtains an exclusive OR of the head data sD0 at the time of the scramble processing in each odd data frame read out by the descrambling circuit 20 and the initial value S0 from the initial value register R1, and performs descrambling. Data dD0 (= sD0 ^ S0) is generated (step 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が繰り返し実行されることにより、デスクランブル処理が施される。   Next, in step S27, the selection circuit 28 determines whether the descrambling process for the first column in each odd data frame of the fourteenth read block RB14 is completed. If the selection circuit 28 determines that the descrambling process for the first column of the odd data frame has not been completed (NO in step S27), the selection circuit 28 proceeds to step S28. Subsequently, steps S26 to S28 are repeatedly executed in the same manner as steps S3 to S5 shown in FIG. 10 until the descrambling process of the first column in each odd data frame of the fourteenth read block RB14 is completed. Note that the descrambling process is performed on the second and subsequent columns in each odd data frame of the fourteenth read block RB14 by repeatedly executing steps S3 to S7 shown in FIG.

そして、第14読み出しブロックRB14の各奇数データフレームにおける1列目の最終行のスクランブルデータsD4に対するデスクランブルデータdD4が生成されると(ステップS27においてYES)、ステップS29に移る。このステップS29おいて、現在のデータフレームDFが最終奇数データフレーム(データフレームDF31)であると、スクランブルデータsD4に使用したスクランブル値SCが1シフト演算器24を通じて奇数レジスタR3に格納される。すなわち、第14読み出しブロックRB14における最終奇数データフレームのデスクランブル処理時に奇数レジスタR3に格納されるスクランブル値SCは、S0・γ・γ=S0・γとなる。 When descrambling data dD4 is generated for scrambled data sD4 in the last row of the first column in each odd-numbered data frame of 14th read block RB14 (YES in step S27), the process proceeds to step S29. In this step S29, if the current data frame DF is the last odd data frame (data frame DF31), the scramble value SC used for the scrambled data sD4 is stored in the odd register R3 through the 1 shift calculator 24. That is, the scramble value SC stored in the odd register R3 during the descrambling process of the last odd data frame in the fourteenth read block RB14 is S0 · γ 4 · γ 1 = S0 · γ 5 .

以後、第15〜第27読み出しブロックRB15〜RB27におけるデスクランブル処理が図10及び図11のフローチャートに従って実行される。このように図10〜図12のフローチャートに従って、第1〜第27読み出しブロックRB1〜RB27におけるデスクランブル処理が終了すると、下記式で示すようにデスクランブルデータdDuを生成することができる。   Thereafter, the descrambling process in the 15th to 27th read blocks RB15 to RB27 is executed according to the flowcharts of FIGS. As described above, when the descrambling process in the first to twenty-seventh read blocks RB1 to RB27 is completed according to the flowcharts of FIGS. 10 to 12, descrambling data dDu can be generated as shown in the following equation.

次に、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に入力されるバイトデータの配置を、該バイトデータを多項式表現Xしたときの次数nで示した。なお、以下の説明では、バイトデータを多項式で表現する。また、同一読み出しブロックRB内では、偶数データフレームの演算方法はそれぞれ共通しているため、ここではデータフレームDF0を例にして説明する。また、同一読み出しブロックRB内では、奇数データフレームの演算方法はそれぞれ共通しているため、ここではデータフレームDF1を例にして説明する。 Next, an EDC syndrome generation method in the EDC syndrome generation circuit 30 will be described with reference to FIGS. The descrambling data dDu is input from the descrambling circuit 20 to the EDC syndrome generation circuit 30 in the descrambling process order. That is, descrambling data dDu is input to the EDC syndrome generation circuit 30 for each of the read blocks RB1 to RB27. Specifically, in the even-numbered data frame of the first read block RB1, the descrambling data is generated as byte data in the order of dD0 → dD1 → ... → dD7 → dD216 → dD217 → ... → dD223 → dD432 → ... → dD1951. Input to the circuit 30. In the odd data frame of the first read block RB1, the descrambling data is input as byte data to the EDC syndrome generation circuit 30 in the order of dD108 → dD109 →... DD115 → dD324 → dD325 →... → dD331 → dD540 →. Is done. FIG. 13 shows the arrangement of the byte data input to the EDC syndrome generation circuit 30 by the order n when the byte data is represented by a polynomial expression Xn . In the following description, byte data is expressed by a polynomial. In the same read block RB, even-numbered data frame calculation methods are common to each other, and the data frame DF0 will be described as an example here. In the same read block RB, the odd-numbered data frame calculation method is common to each other, and the data frame DF1 will be described as an example here.

図14に示すステップS30の初期値設定において、選択回路39は、セレクタ32からシフト演算値Esが出力されないようにする選択信号をセレクタ32に出力する。
続いて、ステップS31において、デスクランブル回路20からEOR回路31にバイトデータX(ここでは、X2051)が入力される。このとき、セレクタ32からEOR回路31にシフト演算値Esが入力されないため、EOR回路31は、バイトデータX2051をEDC演算値E1(1)としてFF回路33を通じて各種演算器34〜37に出力する。
In the initial value setting of step S30 shown in FIG.
Subsequently, in step S31, byte data X n (here, X 2051 ) is input from the descramble circuit 20 to the EOR circuit 31. At this time, since the shift operation value Es is not input from the selector 32 to the EOR circuit 31, the EOR circuit 31 outputs the byte data X 2051 as the EDC operation value E1 (1) to the various arithmetic units 34 to 37 through the FF circuit 33. .

次に、ステップS32において、選択回路39は、入力されるクロック信号CLKのパルス数に基づいて、各読み出しブロックRBにおける1列分(例えば、X2051〜X2044)のEDC演算処理が終了したかを判断する。選択回路39は、1列分のEDC演算処理が終了していないと判断すると(ステップS32においてNO)、ステップ33に移る。このとき、上記ステップS31においてEOR回路31に入力されるバイトデータをXとすると、次に入力されるバイトデータがXn−1となる。すなわち、ステップS32からステップS33に移る場合には、各読み出しブロックRBにおける列方向に次のバイトデータが入力され、データ入力順序がEDC付加時のデータ処理順序と同一になる。 Next, in step S32, the selection circuit 39 determines whether the EDC calculation processing for one column (for example, X 2051 to X 2044 ) in each read block RB is completed based on the number of pulses of the input clock signal CLK. Judging. When selecting circuit 39 determines that the EDC operation processing for one column has not been completed (NO in step S32), the process proceeds to step 33. At this time, if the byte data input to the EOR circuit 31 in step S31 is Xn , the next byte data input is Xn-1 . That is, when moving from step S32 to step S33, the next byte data is input in the column direction in each read block RB, and the data input order is the same as the data processing order when EDC is added.

そこで、選択回路39は、ステップS33において、すなわち各読み出しブロックRBにおける各列の2行目以降のバイトデータがEOR回路31に入力されるときに、1シフト演算器24からのスクランブル値SCをEOR回路31に出力させるための選択信号をセレクタ32に出力する。これにより、EOR回路31には、1つ前に入力されたバイトデータX2051のときに算出されたEDC演算値E1(1)に対して、1次のベクターβによる重み付けをして得られるシフト演算値Es(=β・E1(1))が入力される。そして、EOR回路31は、次に入力されるバイトデータX2050と、1シフト演算器34からのシフト演算値Es(=β・E1(1))の下位8ビットとの排他的論理和を取って、新たなEDC演算値E1(2)を算出する。なお、以下の説明において、EOR回路31の排他的論理和演算におけるシフト演算値Esの下位8ビットを、単に「シフト演算値Es」とするが、以後も同様に、EOR回路31では、バイトデータXとシフト演算値Esの下位8ビットとの排他的論理和が取られる。 Therefore, the selection circuit 39 EORs the scramble value SC from the 1-shift arithmetic unit 24 in step S33, that is, when the byte data from the second row onward in each column in each read block RB is input to the EOR circuit 31. A selection signal for outputting to the circuit 31 is output to the selector 32. Thereby, the EOR circuit 31 is obtained by weighting the EDC operation value E1 (1) calculated for the byte data X 2051 input immediately before by the primary vector β 1. The shift operation value Es (= β 1 · E1 (1)) is input. Then, the EOR circuit 31 performs exclusive OR operation between the byte data X 2050 inputted next and the lower 8 bits of the shift operation value Es (= β 1 · E1 (1)) from the 1-shift operation unit 34. Then, a new EDC calculation value E1 (2) is calculated. In the following description, the lower 8 bits of the shift operation value Es in the exclusive OR operation of the EOR circuit 31 are simply referred to as “shift operation value Es”. The exclusive OR of Xn and the lower 8 bits of the shift operation value Es is taken.

続いて、1列分のEDC演算処理が終了するまで、これらステップS31〜S33が繰り返し実行される。なお、本実施形態では、以後、バイトデータがX2049→X2048→…→X2045→X2044の順にEOR回路31に入力されるため、EDC演算値Er(c)が下記式に示す順番で算出される。 Subsequently, these steps S31 to S33 are repeatedly executed until the EDC operation processing for one column is completed. In this embodiment, since the byte data is input to the EOR circuit 31 in the order of X 2049 → X 2048 →... → X 2045 → X 2044 , the EDC operation value Er (c) is in the order shown in the following formula. Calculated.

このように、第1読み出しブロックRB1のデータフレームDF0における1列目の最終行のバイトデータX2044に対するEDC演算処理が終了すると(ステップS32においてYES)、ステップS34に移る。次に、選択回路39は、209シフト演算器35からのシフト演算値Es(=β209・E1(8))を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(=β209・E1(8))との排他的論理和を取って、下記式に示すEDC演算値Er(9)を算出する。 As described above, when the EDC operation processing for the byte data X 2044 in the last row of the first column in the data frame DF0 of the first read block RB1 is completed (YES in step S32), the process proceeds to step S34. Next, the selection circuit 39 generates a selection signal for causing the EOR circuit 31 to output the shift calculation value Es (= β209 · E1 (8)) from the 209 shift calculator 35 (step S34). Subsequently, in step S35, the selection circuit 39 determines whether or not the EDC calculation process for one data frame DF in each read block RB1 is completed. If the selection circuit 39 determines that the EDC calculation processing for one data frame DF has not been completed (NO in step S35), the selection circuit 39 proceeds to step S36. Subsequently, the selection circuit 39 determines whether the next column is the last column of each data frame (for example, in the case of the data frame DF0 of the first read block RB1, the next column is the tenth column). If selection circuit 39 determines that the next column is not the last column (NO in step S36), it returns to step S31. Subsequently, the EOR circuit 31 calculates the exclusive OR of the byte data X 1835 inputted next and the shift operation value Es (= β 209 · E1 (8)) from the 209 shift operation unit 35, An EDC operation value Er (9) shown in the following equation is calculated.

このように各読み出しブロックの各データフレームDFにおける1列目及び最終列を除く各列の1行目のバイトデータXが入力されたときには、その前に入力されたバイトデータXn+209のときに算出されたEDC演算値Er(c)に対して、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次のベクターβによる重み付けが209回行われる。そこで、本実施形態では、前列の最終行のデータのときに算出されたEDC演算値Er(c)に対して、209バイト分のベクターβ(ベクターβ209)による重み付けをすることで、デスクランブル処理を行うようにした。 As described above, when the byte data Xn of the first row of each column excluding the first column and the last column in each data frame DF of each read block is input, the byte data Xn + 209 input before that The calculated EDC operation value Er (c) is weighted by the 209th-order vector β 209 through the 209 shift operation unit 35. Here, the reason why the 209th-order vector β 209 is weighted will be described. For example, the data X 1835 in the first row in the second column of the data frame DF0 of the first read block RB1 is greater than the data X 2044 in the last row in the first column when EDC is added (all bytes in the data block DB). Number) + 1− (number of bytes in the column direction of one read block) = data that is processed later by 209 bytes. That is, the byte data X 2051 to X 2044 are weighted 209 times by the primary vector β 1 until the byte data X 1835 is input when the EDC operation is performed in the same data processing order as when EDC is added. Done. Therefore, in the present embodiment, descrambling is performed by weighting the EDC operation value Er (c) calculated for the last row data of the previous column with the vector β (vector β 209 ) for 209 bytes. It was made to process.

以後同様に、ステップS31〜S36が繰り返し実行され、第1読み出しブロックRB1のデータフレームDF0における9列目の最後のバイトデータX316(72クロック目)に対するEDC演算処理が終了すると、次列が最終列(10列目)になるため(ステップS36においてYES)、ステップS37に移る。続いて、選択回路39は、EOR回路38からのシフト演算値Es(=β209・Er(c)^EDCs)をEOR回路31に出力させるための選択信号をセレクタ32に出力する。但し、ここではEDCメモリ部40からEOR回路38に入力されるEDCシンドロームの中間値EDCsが「0」であるため、EOR回路38からのシフト演算値Esはβ209・E1(72)となる。従って、EOR回路31は、ステップS31において、次に入力されるバイトデータX107と、EOR回路38からのシフト演算値Es(=β209・E1(72))との排他的論理和を取って、下記式に示すEDC演算値E1(73)を算出する。 Thereafter, similarly, Steps S31 to S36 are repeatedly executed, and when the EDC arithmetic processing for the last byte data X 316 (the 72nd clock) of the ninth column in the data frame DF0 of the first read block RB1 is completed, the next column is final. Since it becomes a column (10th column) (YES in step S36), the process moves to step S37. Subsequently, the selection circuit 39 outputs to the selector 32 a selection signal for causing the EOR circuit 31 to output the shift operation value Es (= β 209 · Er (c) ^ EDCs) from the EOR circuit 38. However, since the intermediate value EDCs of the EDC syndrome input from the EDC memory unit 40 to the EOR circuit 38 is “0” here, the shift operation value Es from the EOR circuit 38 is β 209 · E1 (72). Therefore, in step S31, the EOR circuit 31 calculates the exclusive OR of the byte data X 107 inputted next and the shift operation value Es (= β 209 · E1 (72)) from the EOR circuit 38. The EDC calculation value E1 (73) shown in the following equation is calculated.

以下、ステップS31〜S33が繰り返し実行され、下記式に示すように、第1読み出しブロックRB1のデータフレームDF0における最終列の最終行のバイトデータX100(80クロック目)に対するEDC演算値E1(80)が算出されると(ステップS35においてYES)、ステップS38に移る。 Hereinafter, steps S31~S33 are repeated, as shown in the following formula, EDC calculated value for the byte data X 100 of the last row of the last column of the data frame DF0 the first read block RB1 (80 th clock) E1 (80 ) Is calculated (YES in step S35), the process proceeds to step S38.

続いて、選択回路39は、ステップS38において、現在のデータフレームが第14読み出しブロックRB14の偶数データフレームであるか判断し、ステップS39において、第27読み出しブロックRB27の偶数データフレームであるか判断し、ステップS40において、第27読み出しブロックRB27の奇数データフレームであるか判断する。ここでは、現在EDC演算処理を行っているデータフレームDFが第1読み出しブロックRB1のデータフレームDF0(偶数データフレーム)であるため(ステップS38〜S40において全てNO)、ステップS41に移る。次に、上記ステップS34において算出されたEDC演算値Er(c)(ここでは、E1(80))に対して、1シフト演算器34を通じてベクターβ1による重み付けが行われ、EDCシンドロームの中間値EDCs(=β・E1(80))が算出される(ステップS41)。続いて、上記算出された中間値EDCsがデータフレームDF0におけるEDCシンドロームの中間結果としてEDCメモリ部40に格納される(ステップS42)。 Subsequently, in step S38, the selection circuit 39 determines whether the current data frame is an even data frame of the 14th read block RB14, and determines whether it is an even data frame of the 27th read block RB27 in step S39. In step S40, it is determined whether it is an odd data frame of the 27th read block RB27. Here, since the data frame DF currently undergoing EDC calculation processing is the data frame DF0 (even data frame) of the first read block RB1 (NO in steps S38 to S40), the process proceeds to step S41. Next, the EDC operation value Er (c) (here, E1 (80)) calculated in step S34 is weighted by the vector β1 through the 1-shift operation unit 34, and the intermediate value EDCs of the EDC syndrome is obtained. (= Β 1 · E1 (80)) is calculated (step S41). Subsequently, the calculated intermediate value EDCs is stored in the EDC memory unit 40 as an intermediate result of the EDC syndrome in the data frame DF0 (step S42).

次に、ステップS43において、選択回路39は、現在EDC演算処理を行っているデータフレームDFが最終読み出しブロックRB27の最終データフレームDF31であるかを判断する。ここでは、現在処理しているのは第1読み出しブロックRB1のデータフレームDF0であるため、ステップS30に戻り、次のデータフレームDF1のEDC演算処理に移る。   Next, in step S43, the selection circuit 39 determines whether the data frame DF currently undergoing EDC calculation processing is the final data frame DF31 of the final read block RB27. Here, since it is the data frame DF0 of the first read block RB1 that is currently being processed, the process returns to step S30 and moves to the EDC calculation process of the next data frame DF1.

奇数データフレームであるデータフレームDF1のEDC演算処理についても、基本的には、前述したデータフレームDF0(偶数データフレーム)におけるEDC演算処理と同様に行われる。すなわち、まず各読み出しブロックRBにおけるデータフレームDF1の最初に入力されるバイトデータX1943が1クロック目のEDC演算値E1(1)となる。次いで、EOR回路31は、各読み出しブロックRBの各データフレームにおける各列の2行目以降のバイトデータXがEOR回路31に入力されるときには、直前に入力されたバイトデータXn+1のときに算出されたEDC演算値Er(c)に対し1次のベクターβによる重み付けをして得られるシフト演算値EsがEOR回路31に入力される。また、各読み出しブロックRBの各データフレームDFにおける1列目及び最終列を除く各列の1行目のバイトデータXがEOR回路31に入力されるときには、直前に入力されたバイトデータXn+209のときに算出されたEDC演算値Er(c)に対し209次のベクターβ209による重み付けをして得られるシフト演算値EsがEOR回路31に入力される。これらのEDC演算処理によって、下記式に示すEDC演算値Er(c)が順番に算出される。 The EDC calculation process for the data frame DF1 which is an odd data frame is basically performed in the same manner as the EDC calculation process for the data frame DF0 (even data frame) described above. That is, first, the byte data X 1943 input at the beginning of the data frame DF1 in each read block RB becomes the EDC operation value E1 (1) of the first clock. Next, when the byte data Xn of the second and subsequent rows of each column in each data frame of each read block RB is input to the EOR circuit 31, the EOR circuit 31 has the byte data Xn + 1 input immediately before. A shift operation value Es obtained by weighting the calculated EDC operation value Er (c) with the primary vector β 1 is input to the EOR circuit 31. Further, when the byte data X n of the first row of each column excluding the first column and the last column in each data frame DF of each read block RB is input to the EOR circuit 31, the byte data X n + 209 input immediately before is input . A shift operation value Es obtained by weighting the EDC operation value Er (c) calculated at this time by the 209th-order vector β 209 is input to the EOR circuit 31. By these EDC calculation processes, EDC calculation values Er (c) shown in the following formulas are calculated in order.

このように、第1読み出しブロックRB1のデータフレームDF1における最終列の最終行のバイトデータX208(72クロック目)に対するEDC演算値E1(72)が算出されると、該EDC演算値E1(72)に対して、1シフト演算器34を通じてベクターβによる重み付けが行われ、中間値EDCsが生成される(ステップS41)。そして、上記生成された中間値EDCs(=β・E1(72))がデータフレームDF1におけるEDCシンドロームの中間結果としてEDCメモリ部40に格納される(ステップS42)。 Thus, when the EDC operation value E1 (72) for the byte data X 208 (72nd clock) of the last column in the data frame DF1 of the first read block RB1 is calculated, the EDC operation value E1 (72 relative), weighting throughout the shift calculator 34 by a vector beta 1 is performed, the intermediate value EDCs is generated (step S41). Then, the generated intermediate value EDCs (= β 1 · E1 (72)) is stored in the EDC memory unit 40 as an intermediate result of the EDC syndrome in the data frame DF1 (step S42).

以後同様に、ステップS30〜S43が繰り返し実行され、第1読み出しブロックRB1内のデータフレームDF2〜DF31のEDC演算処理が実行される。
次に、第2読み出しブロックRB2のデータフレームDF0におけるEDC演算処理について説明する。1クロック目から72クロック目までは、ステップS30〜S36が繰り返し実行され、下記式に示すEDC演算値E2(1)〜E2(72)が算出される。
Thereafter, similarly, Steps S30 to S43 are repeatedly executed, and the EDC calculation processing of the data frames DF2 to DF31 in the first read block RB1 is executed.
Next, an EDC calculation process in the data frame DF0 of the second read block RB2 will be described. From the first clock to the 72nd clock, steps S30 to S36 are repeatedly executed, and EDC operation values E2 (1) to E2 (72) shown in the following equations are calculated.

最終列、すなわち10列目の1列前の9列目の最後のバイトデータX308のEDC演算処理が終了すると、ステップS37において、選択回路39は、EOR回路38からのシフト演算値Es(=β209・E2(72)^EDCs)をEOR回路31に出力させる選択信号をセレクタ32に出力する。このとき、EDCメモリ部40からEOR回路38に入力される中間値EDCsは、前回の第1読み出しブロックRB1における同一のデータフレームDF0のEDC演算処理時にEDCメモリ部40に格納した値(=β・E1(80))である。従って、第2読み出しブロックRB2のデータフレームDF0における73クロック目のEDC演算値E2(73)は、下記式により算出される。 When the EDC arithmetic processing for the last byte data X 308 in the last column, that is, the ninth column preceding the tenth column is completed, in step S37, the selection circuit 39 outputs the shift operation value Es (= A selection signal for causing the EOR circuit 31 to output β 209 · E2 (72)) EDCs) is output to the selector 32. At this time, the intermediate value EDCs input from the EDC memory unit 40 to the EOR circuit 38 is a value (= β 1) stored in the EDC memory unit 40 during the EDC operation processing of the same data frame DF0 in the previous first read block RB1. E1 (80)). Accordingly, the 73rd clock EDC operation value E2 (73) in the data frame DF0 of the second read block RB2 is calculated by the following equation.

以下、ステップS31〜S33が繰り返し実行され、下記式に示すように、第2読み出しブロックRB2のデータフレームDF0における最終行最終列のバイトデータX92(80クロック目)のEDC演算値E2(80)が算出されると、ステップS41に移る。 Thereafter, steps S31 to S33 are repeatedly executed, and the EDC operation value E2 (80) of the byte data X 92 (80th clock) of the last row and last column in the data frame DF0 of the second read block RB2 as shown in the following equation. Is calculated, the process proceeds to step S41.

次に、ステップS41において、上記算出されたEDC演算値E2(80)に対して、1シフト演算器34を通じてベクターβによる重み付けが行われ、中間値EDCsが算出される。そして、上記算出された中間値EDCs(=β・E2(80))がデータフレームDF0の新たな中間結果としてEDCメモリ部40に格納される(ステップS42)。 Next, in step S41, with respect to the calculated EDC calculated value E2 (80), weighting by the vector beta 1 through 1 shift calculator 34 is performed, the intermediate value EDCs are calculated. Then, the calculated intermediate value EDCs (= β 1 · E2 (80)) is stored in the EDC memory unit 40 as a new intermediate result of the data frame DF0 (step S42).

以下同様に、ステップS30〜S43が繰り返し実行され、第2〜第13読み出しブロックRB2〜RB13内の各データフレームDF0〜DF31のEDC演算処理が実行される。   Similarly, steps S30 to S43 are repeatedly executed, and the EDC arithmetic processing of the data frames DF0 to DF31 in the second to thirteenth read blocks RB2 to RB13 is executed.

次に、第14読み出しブロックRB14の偶数データフレームにおいて、76クロック目に入力される入力多項式の次数が最も低いバイトデータXに対するEDC演算値E14(76)が下記式のように算出されると(ステップS38においてYES)、ステップS44に移る。 Then, in the even data frame of the 14 read block RB14, 76 when the EDC calculated value E14 for byte data X 0 the lowest orders of the input polynomial input to th clock (76) is calculated as the following equation (YES in step S38), the process proceeds to step S44.

なおここで、偶数データフレームDF0において、入力多項式の次数が最も低いバイトデータXとは、EDC付加時と同様のデータ処理順序でEDC演算をした場合に、該データフレームDF0内で最も遅く入力されるデータである。 Note here, the even data frames DF0, the lowest byte data X 0 degrees is input polynomial, when the EDC operation in the same data processing order and time of EDC addition, slowest input within said data frames DF0 Data.

次に、ステップS44において、上記算出されたEDC演算値E14(76)に対し、−211シフト演算器37を通じて−211バイト分のベクターβ(ベクターβ−211)による重み付けをする第1補正演算を行って、EDCシンドロームの中間値EDCs(=β−211・E14(76))を算出する。続いて、上記算出された中間値EDCsが新たなデータフレームDF0の新たな中間結果としてEDCメモリ部40に格納される(ステップS42)。 Next, in step S44, a first correction operation for weighting the calculated EDC operation value E14 (76) by the vector β (vector β −211 ) for −211 bytes through the −211 shift operation unit 37 is performed. The intermediate value EDCs (= β− 211 · E14 (76)) of the EDC syndrome is calculated. Subsequently, the calculated intermediate value EDCs is stored in the EDC memory unit 40 as a new intermediate result of the new data frame DF0 (step S42).

以下同様に、ステップS30〜S44が繰り返し実行され、第14〜第26読み出しブロックRB14〜RB26内の各データフレームDF0〜DF31のEDC演算処理が実行される。   Similarly, steps S30 to S44 are repeatedly executed, and the EDC calculation processing of the data frames DF0 to DF31 in the fourteenth to twenty-sixth read blocks RB14 to RB26 is executed.

次に、第27読み出しブロックRB27の偶数データフレーム(例えば、データフレームDF0)における最終行最終列のバイトデータX108(72クロック目)に対するEDC演算値E27(72)が下記式のように算出されると(ステップS39においてYES)、ステップS45に移る。 Next, an EDC operation value E27 (72) for the byte data X 108 (72nd clock) in the last row and last column in the even data frame (for example, data frame DF0) of the 27th read block RB27 is calculated as follows: Then (YES in step S39), the process proceeds to step S45.

次に、ステップS45において、上記算出されたEDC演算値E27(72)に対し、108シフト演算器36を通じて108バイト分のベクターβ(ベクターβ108)による重み付けをする第2補正演算を行って、下記(1)式に示すデータフレームDF0における最終的なEDCシンドロームEDCS(=β108・E27(72))を算出する。 Next, in step S45, a second correction calculation is performed on the calculated EDC calculation value E27 (72) by weighting the vector β 1 (vector β 108 ) for 108 bytes through the 108 shift calculator 36. The final EDC syndrome EDCS (= β 108 · E27 (72)) in the data frame DF0 expressed by the following equation (1) is calculated.

そして、上記算出されたEDCシンドロームEDCSがEDCメモリ部40に格納される(ステップS42)。 Then, the calculated EDC syndrome EDCS is stored in the EDC memory unit 40 (step S42).

ここで、第1補正演算と第2補正演算について説明する。まず、第2補正演算から説明する。
本実施形態では、第27読み出しブロックRB27の偶数データフレームにおいて最後に入力されるバイトデータはX108である。このバイトデータX108は、EDC付加時と同様のデータ処理順序でEDC演算した場合において、その演算処理において最後に入力されるバイトデータX(最終バイトデータ)よりも、108バイト分だけ早く入力されるデータである。換言すると、バイトデータX108は、EDC付加時と同様のデータ処理順序でEDC演算した場合には、最後のバイトデータXが入力されるまでに、1次のベクターβによる重み付けが108回行われるデータである。ところが、本実施形態では、偶数データフレームにおいてバイトデータX108が最後に入力されるため、そのバイトデータX108が入力されたときに算出されるEDC演算値E27(72)では、バイトデータX108に対するベクターβによる重み付けが一度も行われていない。そこで、本実施形態では、第27読み出しブロックRB27の各偶数データフレームにおける最終行最終列のデータX108が入力されたときのEDC演算値E26(72)に対し、108バイト分のベクターβ(ベクターβ108)による重み付けを行うようにした。
Here, the first correction calculation and the second correction calculation will be described. First, the second correction calculation will be described.
In this embodiment, the byte data input to the last in the even data frame of the 27 read block RB27 is X 108. The byte data X 108 is input by 108 bytes earlier than the byte data X 0 (final byte data) input last in the calculation processing when the EDC calculation is performed in the same data processing order as when EDC is added. Data. In other words, the byte data X 108 is weighted 108 times by the primary vector β 1 until the last byte data X 0 is input when the EDC operation is performed in the same data processing order as when EDC is added. Data to be performed. However, in the present embodiment, since the byte data X 108 in the even data frame is input to the end, the EDC calculation value E27 is calculated (72) when the byte data X 108 is input, the byte data X 108 weighting by the vector β 1 for has not been performed even once. Therefore, in the present embodiment, the EDC calculation value when the data X 108 of the last row last column is entered in each even data frame of the 27 read block RB27 E26 (72), of 108 bytes vector beta (Vector Weighting by β 108 ) was performed.

次に、第1補正演算について説明する。本実施形態では、第14読み出しブロックRB14の偶数データフレームにおける最後のバイトデータXが入力されたときに算出されるEDC演算値E14(76)は、下記式のようになる。 Next, the first correction calculation will be described. In this embodiment, the 14 read block EDC calculated value last byte data X 0 is calculated when it is entered in the even data frame RB14 E14 (76) is as shown in the following equation.

上記式から明らかなように、上記EDC演算値E14(76)が算出されるまでに入力されたバイトデータについては、上記EDC演算値E14(76)が算出された時点で所望の次数のベクターβによって重み付けが行われている。例えば、偶数データフレームにおいて最初に入力されるバイトデータX2051は、2051次のベクターβ2051による重み付けが行われている。しかしながら、本実施形態では、第14読み出しブロックRB14以降の第15〜第27読み出しブロックRB15〜RB27におけるEDC演算において、上記EDC演算値E14(76)に対し、1次のベクターβによる重み付けが103回行われる。すなわち、上記EDC演算値E14(76)に対し、{(残りの読み出しブロックRBにおける列方向の全バイト数)−1}回のベクターβによる重み付けが行われる。さらに、上述した第2補正演算により、上記EDC演算値E14(76)に対して108次のベクターβ108による重み付けが行われる。そのため、第15〜第27読み出しブロックRB15〜RB27におけるEDC演算及び第2補正演算が終了すると、上記EDC演算値E14(76)が算出されるまでに入力されたバイトデータに対し、ベクターβによる重み付けがEDC付加時と同様の処理順序でEDC演算した場合よりも211回多く行われることになる。そこで、本実施形態では、第14読み出しブロックRB14の各偶数データフレームにおける最後のデータX(最終デスクランブルデータ)が入力されたときのEDC演算値E14(76)に対し、−211バイト分のベクターβ(ベクターβ−211)による重み付けを行うようにした。 As is clear from the above equation, the byte data input until the EDC operation value E14 (76) is calculated is the vector β having a desired order when the EDC operation value E14 (76) is calculated. Is weighted. For example, the byte data X 2051 input first in the even data frame is weighted by the 2051-order vector β 2051 . However, in the present embodiment, the EDC operation in the fourteenth read block RB14 fifteenth to 27 read block RB15~RB27 later, to the EDC calculated value E14 (76), weighting by the primary vector beta 1 of 103 Performed once. That is, the relative EDC calculated value E14 (76), the weighting by {(remaining read block total number of bytes in the column direction in RB) -1} times Vector beta 1 is performed. Further, the EDC operation value E14 (76) is weighted by the 108th vector β 108 by the second correction operation described above. Therefore, when the EDC operation and the second correction operation in the 15 to 27 read block RB15~RB27 ends, to the byte data input to to the EDC calculated value E14 (76) is calculated, according to the vector beta 1 Weighting is performed 211 times more than when EDC calculation is performed in the same processing order as when EDC is added. Therefore, in the present embodiment, −211 bytes worth of the EDC operation value E14 (76) when the last data X 0 (final descrambling data) in each even data frame of the fourteenth read block RB14 is input. Weighting with vector β (vector β- 211 ) was performed.

なお、奇数データフレームについては、前述した第1読み出しブロックRB1におけるデータフレームDF1のEDC演算処理と同様に、すなわちステップS44やステップS45のような特殊な補正演算(第1及び第2補正演算)を施すことなく、上記(1)式と同様のEDCシンドロームを生成することができる。従って、データフレームDF1(奇数データフレーム)の場合には、第27読み出しブロックRB27における最終列最終行のバイトデータXのEDC演算値E27(80)が算出されると(ステップS40においてYES)、上記算出されたEDC演算値E27(80)がそのままEDCシンドロームとしてEDCメモリ部40に格納される(ステップS42)。 For odd data frames, special correction calculations (first and second correction calculations) such as step S44 and step S45 are performed in the same manner as the EDC calculation process of the data frame DF1 in the first read block RB1 described above. Without application, an EDC syndrome similar to the above equation (1) can be generated. Therefore, in the case of the data frame DF1 (odd data frames), the EDC calculated value of the byte data X 0 of the last row the last row in the 27 read block RB27 E27 (80) is calculated (YES in step S40), The calculated EDC operation value E27 (80) is stored as it is in the EDC memory unit 40 as an EDC syndrome (step 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に格納する。   Similarly, steps S30 to S45 are repeatedly executed to generate a final EDC syndrome EDCS of each data frame DF0 to DF31, and the EDC syndrome EDCS is stored in the EDC memory unit 40. In the EDC memory unit 40, when the final EDC syndrome EDCS of all the data frames DF0 to DF31 is stored in the buffer memory selected for syndrome storage, the syndrome storage and syndrome output in the buffer memory M7 and the buffer memory M8 are performed. The selection for is switched. As a result, the EDC syndrome EDCS of all the data frames DF0 to DF31 is stored in the buffer memory switched from the syndrome storage to the syndrome output. The buffer memory switched to the syndrome output stores the EDC syndrome EDCS of all the data frames DF0 to DF31 in the external buffer memory 6.

1つのパリティ付加ブロックPB分のデスクランブルデータと、LDCシンドロームと、BISシンドロームと、EDCシンドロームとが外部バッファメモリ6に格納されると、誤り訂正回路50は、外部バッファメモリ6からLDCシンドローム及びBISシンドロームを読み出す。誤り訂正回路50内の訂正回路51は、読み出したLDCシンドローム及びBISシンドロームに基づいて、ユークリッド互除演算により誤り位置多項式と数値多項式とを算出する。次に、訂正回路51は、算出した誤り位置多項式と数値多項式とに基づいて、誤り位置及び誤り数値を算出する。続いて、訂正回路51は、算出した誤り位置及び誤り数値に基づいて、外部バッファメモリ6に格納されたデスクランブル処理済のデータフレームDFに対して誤り訂正処理を行うとともに、算出した誤り位置及び誤り数値をEDC補正回路52に出力する。   When the descrambling data, the LDC syndrome, the BIS syndrome, and the EDC syndrome for one parity added block PB are stored in the external buffer memory 6, the error correction circuit 50 receives the LDC syndrome and BIS from the external buffer memory 6. Read out the syndrome. The correction circuit 51 in the error correction circuit 50 calculates an error position polynomial and a numerical polynomial by Euclidean mutual division based on the read LDC syndrome and BIS syndrome. Next, the correction circuit 51 calculates an error position and an error value based on the calculated error position polynomial and numerical polynomial. Subsequently, the correction circuit 51 performs error correction processing on the descrambled data frame DF stored in the external buffer memory 6 based on the calculated error position and error value, and calculates the calculated error position and The error numerical value is output to the EDC correction circuit 52.

次に、EDC補正回路52は、訂正回路51から入力される誤り位置及び誤り数値に基づいて、外部バッファメモリ6から補正メモリ部53に格納されるEDCシンドロームを補正する。そして、EDCチェック回路54は、補正メモリ部53から補正後のEDCシンドロームを読み出し、誤り訂正が正常に終了されたかをチェックする。EDCチェック回路54において誤り訂正が正常に終了されたことが確認されると、コントローラ10は、マイクロプロセッサ8の命令に基づいて、外部バッファメモリ6に格納された誤り訂正後のデータを、インターフェース回路60を介してコンピュータ2に出力する。   Next, the EDC correction circuit 52 corrects the EDC syndrome stored in the correction memory unit 53 from the external buffer memory 6 based on the error position and error value input from the correction circuit 51. Then, the EDC check circuit 54 reads the corrected EDC syndrome from the correction memory unit 53 and checks whether the error correction has been normally completed. When it is confirmed in the EDC check circuit 54 that the error correction has been normally completed, the controller 10 converts the error-corrected data stored in the external buffer memory 6 into the interface circuit based on the instruction of the microprocessor 8. The data is output to the computer 2 via 60.

以上説明した本実施形態によれば、以下の効果を奏することができる。
(1)内蔵メモリ部12に対して、LDCシンドローム生成回路13、BISシンドローム生成回路16及びデスクランブル回路20がそれぞれアクセスし、各回路13,16,20は、生成したLDCシンドローム、BISシンドローム及びデスクランブルデータdDuを外部バッファメモリ6に格納するようにした。これにより、図41に示すコントローラ110よりも外部バッファメモリ6へのアクセス量を減らすことができる。
According to this embodiment described above, the following effects can be obtained.
(1) The built-in memory unit 12 is accessed by the LDC syndrome generation circuit 13, the BIS syndrome generation circuit 16, and the descrambling circuit 20, respectively. The circuits 13, 16, and 20 each generate the generated LDC syndrome, BIS syndrome, and data. The scrambled data dDu is stored in the external buffer memory 6. Thereby, the access amount to the external buffer memory 6 can be reduced as compared with the controller 110 shown in FIG.

詳しくは、図41に示すコントローラ110では、バッファメモリ120に対して、(a)復調回路111からのECCクラスタECCcの入力、(b)LDCシンドローム生成回路112によるLDCクラスタLDCcの読み出し、(c)BISシンドローム生成回路113によるBISクラスタBIScの読み出し、(d)誤り訂正回路からの誤り訂正処理、(e)デスクランブル回路115による誤り訂正処理済のLDCクラスタLDCcの読み出し、という5種類のアクセスがあった。すなわち、ECCクラスタECCc(76880バイト)の3個分に略相当するデータ量(合計219299バイト)のバッファメモリ120へのアクセスがあった。   Specifically, in the controller 110 shown in FIG. 41, (a) input of the ECC cluster ECCc from the demodulation circuit 111, (b) reading of the LDC cluster LDCc by the LDC syndrome generation circuit 112, (c) There are five types of access: reading of the BIS cluster BISc by the BIS syndrome generation circuit 113, (d) error correction processing from the error correction circuit, and (e) reading of the LDC cluster LDCc after error correction processing by the descramble circuit 115. It was. That is, there was an access to the buffer memory 120 having a data amount (total 219299 bytes) substantially corresponding to three ECC clusters ECCc (76880 bytes).

これに対して、本実施形態のコントローラ10では、外部バッファメモリ6に対して、(A)デスクランブルデータdDu(65536バイト)の入力、(B)LDCシンドローム(9728バイト)の入力、(C)BISシンドローム(1488バイト)の入力、(D)EDCシンドローム(128バイト)の入力、(E)LDCシンドロームの読み出し、(F)BISシンドロームの読み出し、(G)誤り訂正後のデスクランブルデータの読み出し、という7種類のアクセスがある。アクセスの種類は多いものの、各々のアクセスにおけるデータ量が少ない。すなわち、全体としては、ECCクラスタECCcの2個分に略相当するデータ量(合計152272バイト)が外部バッファメモリ6に対してアクセスされる。従って、外部バッファメモリ6への全体のアクセス量が従来のコントローラ110に比べて大幅に低減される。これにより、外部バッファメモリ6の利用帯域を減らすことができるため、転送速度の高速化に対応させやすくなる。これらにより、外部バッファメモリ6として、安価で大容量・低速なメモリを使用しても、所望の速度によるデータ転送を実現することができる。   In contrast, in the controller 10 of the present embodiment, (A) input of descrambling data dDu (65536 bytes), (B) input of LDC syndrome (9728 bytes), (C) BIS syndrome (1488 bytes) input, (D) EDC syndrome (128 bytes) input, (E) LDC syndrome read, (F) BIS syndrome read, (G) Descramble data read after error correction, There are seven types of access. Although there are many types of access, the amount of data in each access is small. In other words, as a whole, the external buffer memory 6 is accessed for a data amount (total 152272 bytes) substantially corresponding to two ECC clusters ECCc. Therefore, the total access amount to the external buffer memory 6 is greatly reduced as compared with the conventional controller 110. As a result, the use bandwidth of the external buffer memory 6 can be reduced, so that it becomes easy to cope with an increase in transfer speed. As a result, even if an inexpensive, large-capacity, low-speed memory is used as the external buffer memory 6, data transfer at a desired speed can be realized.

さらに、このときLDCシンドローム生成回路13及びデスクランブル回路20は、内蔵のメモリ(内蔵メモリ部12)に対しては高速アクセスが可能という性能があるため、第1及び第2デインターリーブ処理を施しながらLDCクラスタを読み出しても、効率良く高速に内蔵メモリ部12から各データを読み出すことができる。これにより、コントローラ110よりも誤り訂正処理に要する時間を短縮することができる。   Further, at this time, the LDC syndrome generation circuit 13 and the descrambling circuit 20 have a performance capable of high-speed access to the built-in memory (built-in memory unit 12), so that the first and second deinterleaving processes are performed. Even when the LDC cluster is read, each data can be read from the built-in memory unit 12 efficiently and at high speed. As a result, the time required for error correction processing can be shortened compared to the controller 110.

(2)内蔵メモリ部12に、1つのECCクラスタECCcが複数個に分割された分割ECCクラスタDECCを格納するようにした。また、デスクランブル回路20に、分割ECCクラスタDECC内のデータブロックDB毎に入力されるデータに対して正確にデスクランブル処理が実行できるように、1シフト演算器24及び209シフト演算器25を設けるようにした。これらにより、内蔵メモリ部12の各バッファメモリM1,M2を、1つの分割ECCクラスタDECC(2480バイト)を格納できるメモリ容量とすることができる。従って、図43に示すコントローラ130のように、内蔵の大容量(76880バイト)のメモリを設ける必要がなくなる。そのため、内蔵メモリ部のメモリ容量の増大によって発生する回路規模の増大を抑制することができる。   (2) The built-in memory unit 12 stores a divided ECC cluster DECC obtained by dividing one ECC cluster ECCc into a plurality of pieces. The descrambling circuit 20 is provided with a 1-shift computing unit 24 and a 209-shift computing unit 25 so that the descrambling process can be accurately performed on the data input for each data block DB in the divided ECC cluster DECC. I did it. As a result, the buffer memories M1 and M2 of the built-in memory unit 12 can have a memory capacity capable of storing one divided ECC cluster DECC (2480 bytes). Therefore, unlike the controller 130 shown in FIG. 43, there is no need to provide a built-in large-capacity (76880 bytes) memory. Therefore, it is possible to suppress an increase in circuit scale that occurs due to an increase in the memory capacity of the built-in memory unit.

また、デスクランブル回路20によるデスクランブル処理を、LDCシンドローム生成回路13によるLDCシンドローム生成及びBISシンドローム生成回路16によるBISシンドローム生成と並行して実行することができるため、誤り訂正処理に要する時間を短縮することができる。これらにより、回路規模の増大を抑制しつつも、外部バッファメモリ6へのアクセス量を低減することができる。   Further, since the descrambling process by the descrambling circuit 20 can be executed in parallel with the LDC syndrome generation by the LDC syndrome generation circuit 13 and the BIS syndrome generation by the BIS syndrome generation circuit 16, the time required for the error correction process is reduced. can do. As a result, the access amount to the external buffer memory 6 can be reduced while suppressing an increase in circuit scale.

(3)EDCシンドローム生成回路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シンドローム生成を実行することができる。そのため、誤り訂正処理に要する時間を短縮することができる。   (3) 1 shift arithmetic unit 34, 209 shift arithmetic unit 35, 108 shift so that the EDC syndrome generation circuit 30 can accurately perform EDC arithmetic processing (weighting) on the data input for each divided ECC cluster DECC. An arithmetic unit 36 and an EOR circuit 38 are provided. As a result, the EDC syndrome generation circuit 30 can generate the EDC syndrome EDCS based on the descrambling data dDu directly input from the descrambling circuit 20. Therefore, the EDC syndrome generation by the EDC syndrome generation circuit 30 can be executed in parallel with the LDC syndrome generation and the BIS syndrome generation by the LDC syndrome generation circuit 13 and the BIS syndrome generation circuit 16. Therefore, the time required for error correction processing can be shortened.

(4)デスクランブル回路20は、各読み出しブロックの各偶数データフレームにおける1列1行目の先頭スクランブルデータに対するスクランブル値SCを格納する偶数レジスタR2を備えた。また、デスクランブル回路20は、各読み出しブロックの各奇数データフレームにおける1列1行目の先頭スクランブルデータに対するスクランブル値SCを格納する奇数レジスタR3を備えた。これにより、各読み出しブロックの各偶数データフレーム及び各奇数データフレームにおける先頭スクランブルデータに対するスクランブル値を予め算出してメモリ等に格納しておく必要がなくなる。   (4) The descrambling circuit 20 includes an even register R2 that stores a scramble value SC for the first scrambled data in the first column and the first row in each even data frame of each read block. The descrambling circuit 20 includes an odd register R3 that stores a scramble value SC for the first scrambled data in the first column and the first row in each odd data frame of each read block. This eliminates the need to previously calculate and store the scramble value for the top scramble data in each even data frame and each odd data frame of each read block in a memory or the like.

(5)デスクランブル回路20は108シフト演算器26を備えた。この108シフト演算器26に初期値S0を入力することにより、第1読み出しブロックRB1の各奇数データフレームにおける1行1列目の先頭スクランブルデータに対するスクランブル値SC(=S0・γ108)を簡便に生成することができる。 (5) The descrambling circuit 20 includes a 108 shift calculator 26. By inputting the initial value S0 to the 108 shift computing unit 26, the scramble value SC (= S0 · γ 108 ) for the first scrambled data in the first row and the first column in each odd data frame of the first read block RB1 can be simply obtained. Can be generated.

(6)EDCシンドローム生成回路30にて生成される各データフレーム毎のEDCシンドロームの中間値EDCsを格納するEDCメモリ部40を設けた。これにより、各データフレームのEDCシンドローム生成に共通の回路を使用することができるため、各データフレーム毎のシンドローム生成回路を設ける必要がなくなるため、回路規模の増大を抑制することができる。なお、なお、EDCメモリ部40の各バッファメモリのメモリ容量は、各データフレーム毎のEDCシンドローム(128バイト)を格納できる容量であり、従来の内蔵メモリの容量(76880バイト)に比べると小容量であるため、回路規模の増大が抑制される。   (6) An EDC memory unit 40 for storing intermediate values EDCs of EDC syndrome for each data frame generated by the EDC syndrome generation circuit 30 is provided. As a result, since a common circuit can be used for EDC syndrome generation for each data frame, it is not necessary to provide a syndrome generation circuit for each data frame, and an increase in circuit scale can be suppressed. Note that the memory capacity of each buffer memory of the EDC memory unit 40 is a capacity capable of storing EDC syndrome (128 bytes) for each data frame, which is smaller than the capacity of the conventional built-in memory (76880 bytes). Therefore, an increase in circuit scale is suppressed.

(7)LDCシンドローム生成回路13にて生成される各列毎のLDCシンドロームの中間値を格納するLDCメモリ部14を設けた。これにより、各列のLDCシンドローム生成に共通の回路を使用することができるため、各列毎のシンドローム生成回路を設ける必要がなくなるため、回路規模の増大を抑制することができる。なお、なお、LDCメモリ部14の各バッファメモリのメモリ容量は、各列毎のLDCシンドローム(9728バイト)を格納できる容量であり、従来の内蔵メモリの容量(76880バイト)に比べると小容量であるため、回路規模の増大が抑制される。   (7) An LDC memory unit 14 for storing an intermediate value of the LDC syndrome for each column generated by the LDC syndrome generation circuit 13 is provided. As a result, since a common circuit can be used for LDC syndrome generation for each column, it is not necessary to provide a syndrome generation circuit for each column, and an increase in circuit scale can be suppressed. The memory capacity of each buffer memory of the LDC memory unit 14 is a capacity capable of storing the LDC syndrome (9728 bytes) for each column, and is smaller than the capacity of the conventional built-in memory (76880 bytes). Therefore, an increase in circuit scale is suppressed.

(8)全BISクラスタBIScを格納するBISメモリ部15を設けた。これにより、BISシンドローム生成回路16は、BISメモリ部15から全BISクラスタBIScを連続して読み出し、該BISクラスタBIScに基づいてBISシンドロームを生成することができる。従って、BISシンドローム生成回路16によりBISシンドロームを効率良く生成することができる。なお、BISメモリ部15の各バッファメモリのメモリ容量は、全BISクラスタ(1488バイト)を格納できる容量であり、従来の内蔵メモリの容量(76880バイト)に比べると小容量であるため、回路規模の増大が抑制される。   (8) A BIS memory unit 15 for storing all BIS clusters BISc is provided. Thereby, the BIS syndrome generation circuit 16 can continuously read all the BIS clusters BISc from the BIS memory unit 15 and generate a BIS syndrome based on the BIS clusters BISc. Therefore, the BIS syndrome generation circuit 16 can efficiently generate the BIS syndrome. Note that the memory capacity of each buffer memory of the BIS memory unit 15 is a capacity capable of storing all BIS clusters (1488 bytes), and is smaller than the capacity of a conventional built-in memory (76880 bytes). Increase is suppressed.

(9)内蔵メモリ部12、LDCメモリ部14、BISメモリ部15及びEDCメモリ部40を、2つのバッファメモリから構成した。そして、例えば内蔵メモリ部12であれば、一方のバッファメモリをデータ保存用として、他方のバッファメモリをアクセス用として使用するようにした。これにより、復調回路11からのデータの格納と、内蔵メモリ部12からのデータの読み出しとを同時に行うことができる。従って、BD4からのディスクデータの読み出しを連続的に行うことができる。同様に、LDCシンドローム生成回路13からのLDCシンドロームの中間値の格納を連続的に行うことができ、内蔵メモリ部12からのBISクラスタBIScの読み出しを連続的に行うことができ、EDCシンドローム生成回路30からのEDCシンドロームの中間値EDCsの格納を連続的に行うことができる。   (9) The built-in memory unit 12, the LDC memory unit 14, the BIS memory unit 15, and the EDC memory unit 40 are composed of two buffer memories. For example, in the case of the built-in memory unit 12, one buffer memory is used for data storage and the other buffer memory is used for access. Thereby, data storage from the demodulation circuit 11 and data reading from the built-in memory unit 12 can be performed simultaneously. Accordingly, it is possible to continuously read the disk data from the BD 4. Similarly, the intermediate value of the LDC syndrome from the LDC syndrome generation circuit 13 can be continuously stored, the BIS cluster BISc can be continuously read from the built-in memory unit 12, and the EDC syndrome generation circuit The intermediate value EDCs of the EDC syndrome from 30 can be continuously stored.

また、内蔵メモリ部12の場合には、2つのバッファメモリM1,M2から構成するようにした場合、回路規模の増大を抑制するという効果がより顕著になる。詳しくは、図43に示すコントローラ130では、BDから連続的に複数個のECCクラスタECCcが読み出されるときに、それら複数個のECCクラスタECCcを連続的に読み出すためには、大容量(76880バイト)の内蔵メモリ131を2個設ける必要があった。これに対して、本実施形態の内蔵メモリ部12は、そのメモリ容量が合計4960バイトであるため、回路規模の増大を効果的に抑制することができる。   In the case of the built-in memory unit 12, the effect of suppressing an increase in circuit scale becomes more remarkable when the built-in memory unit 12 is constituted by two buffer memories M1 and M2. Specifically, in the controller 130 shown in FIG. 43, when a plurality of ECC clusters ECCc are continuously read from the BD, in order to read the plurality of ECC clusters ECCc continuously, a large capacity (76880 bytes) is required. It is necessary to provide two internal memories 131. On the other hand, the built-in memory unit 12 of the present embodiment has a total memory capacity of 4960 bytes, and therefore can effectively suppress an increase in circuit scale.

(10)EDCシンドローム生成回路30により生成されたEDCシンドロームEDCSを全て補正メモリ部53に格納した上で、EDC補正回路52により補正メモリ部53に格納されたEDCシンドロームを補正するようにした。これにより、補正メモリ部53に格納された全EDCシンドロームEDCSに対して連続的に補正を行うことができるため、処理効率を向上させることができる。   (10) After all the EDC syndrome EDCS generated by the EDC syndrome generation circuit 30 is stored in the correction memory unit 53, the EDC syndrome stored in the correction memory unit 53 is corrected by the EDC correction circuit 52. Thereby, since it can correct | amend continuously with respect to all the EDC syndrome EDCS stored in the correction memory part 53, processing efficiency can be improved.

(第2実施形態)
以下、本発明を具体化した第2実施形態について、図22〜図25に従って説明する。この実施形態のデスクランブル回路及びEDCシンドローム生成回路の回路構成、それら回路におけるデータの処理順序が上記第1実施形態と異なっている。以下、第1実施形態との相違点を中心に説明する。
(Second Embodiment)
Hereinafter, a second embodiment of the present invention will be described with reference to FIGS. The circuit configuration of the descrambling circuit and EDC syndrome generation circuit of this embodiment and the data processing order in those circuits are different from those of the first embodiment. Hereinafter, the difference from the first embodiment will be mainly described.

まず、デスクランブル回路70の回路構成について図22に従って説明する。本実施形態のデスクランブル回路70のスクランブル値生成回路71は、第1実施形態のデスクランブル回路20のスクランブル値生成回路22に、偶数作業レジスタR4と奇数作業レジスタR5とを新たに設けた。   First, the circuit configuration of the descrambling circuit 70 will be described with reference to FIG. The scramble value generation circuit 71 of the descrambling circuit 70 according to the present embodiment newly includes an even work register R4 and an odd work register R5 in the scramble value generation circuit 22 of the descramble circuit 20 according to the first embodiment.

偶数作業レジスタR4には、各読み出しブロックRB内の最終偶数データフレームDF30における各列の最終行のデータに対するスクランブル値SCが209シフト演算器25を通じて格納される。一方、奇数作業レジスタR5には、各読み出しブロックRB内の最終奇数データフレームDF31における各列の最終行のデータに対するスクランブル値SCが209シフト演算器25を通じて格納される。これら奇数作業レジスタR4及び偶数作業レジスタR5は、格納したスクランブル値SCをセレクタ27に出力する。   The scramble value SC for the data in the last row of each column in the final even data frame DF30 in each read block RB is stored in the even work register R4 through the 209 shift calculator 25. On the other hand, the scramble value SC for the last row data of each column in the last odd data frame DF31 in each read block RB is stored in the odd work register R5 through the 209 shift computing unit 25. The odd work register R4 and the even work register R5 output the stored scramble value SC to the selector 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に出力させる選択信号を生成する。   The selector 27 receives a selection signal from the selection circuit 72. Based on the selection signal from the selection circuit 72, the selector 27 outputs one scramble value SC among the scramble values input from the 1-shift calculator 24 and the registers R 1 to R 5 to the FF circuit 23. Note that the selection circuit 28 generates a selection signal in accordance with the number of pulses of the input clock signal CLK and outputs the selection signal to the selector 27. For example, when the first row data of each column after the second column in each even data frame of each read block RB is input to the EOR circuit 21, the selection circuit 72 uses the scramble value SC from the even work register R4. A selection signal to be output to the EOR circuit 21 is generated. When the data in the first row of each column after the second column in each odd data frame of each read block RB is input to the EOR circuit 21, the selection circuit 72 uses the scramble value SC from the odd work register R5 as the EOR circuit. A selection signal to be output to 21 is generated.

次に、EDCシンドローム生成回路80の回路構成について図23に従って説明する。本実施形態のEDCシンドローム生成回路80は、第1実施形態のEDCシンドローム生成回路30に作業メモリ81を新たに設けた。   Next, the circuit configuration of the EDC syndrome generation circuit 80 will be described with reference to FIG. In the EDC syndrome generation circuit 80 of the present embodiment, a work memory 81 is newly provided in the EDC syndrome generation circuit 30 of the first embodiment.

作業メモリ81には、各読み出しブロックRBの各データフレームにおける各列の最終行のデータのときに算出されたEDC演算値Er(c)が209シフト演算器25を通じてシフト演算値Esとして格納される。この作業メモリ81は、格納したシフト演算値EsをEOR回路38及びセレクタ32に出力する。   In the working memory 81, the EDC operation value Er (c) calculated at the time of the last row data of each column in each data frame of each read block RB is stored as the shift operation value Es through the 209 shift operation unit 25. . The working memory 81 outputs the stored shift calculation value Es to the EOR circuit 38 and the selector 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に出力させる選択信号を生成する。   The selector 32 receives a selection signal from the selection circuit 82. The selector 27 outputs one scramble value SC among the scramble values input from the 1-shift calculator 34, the EOR circuit 38, and the work memory 81 to the EOR circuit 31 based on the selection signal from the selection circuit 82. Alternatively, the shift operation value Es is not output to the EOR circuit 31. Note that the selection circuit 82 generates a selection signal according to the number of pulses of the input clock signal CLK, and outputs the selection signal to the selector 32. For example, the selection circuit 82 shifts from the work memory 81 when data in the first row of each column excluding the first column and the last column in each data frame DF of each read block RB is input to the EOR circuit 31. A selection signal that causes the EOR circuit 31 to output the calculated value Es is generated. The selection circuit 82 outputs a selection signal for preventing the selector 32 from outputting the shift operation value Es when the first data in the first row and the first column in each data frame of each read block RB is input to the EOR circuit 31. Generate. Further, the selection circuit 82 causes the EOR circuit 31 to output the shift operation value Es from the EOR circuit 38 when the first row data of the last column in each data frame of each read block RB is input to the EOR circuit 31. A selection signal is generated.

次に、外部バッファメモリ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が並んで格納される。
Next, the storage arrangement of the descrambling data dDu of each data frame DF0 to DF31 stored in the external buffer memory 6 will be described with reference to FIG.
As shown in FIG. 9, the descrambling data dDu of each of the data frames DF0 to DF31 that has been descrambled by the descrambling circuit 70 is a block of 32 rows × 64 columns and is divided into four data frames DF in the column direction. Stored. Specifically, data frames DF0, DF1, DF2, and DF3 are stored side by side in the column direction, and data frames DF4, DF5, DF6, and DF7 are stored side by side in the column direction. Thereby, in the row direction, the data frames DF0, DF4, DF8, DF12, DF16, DF20, DF24, DF28 are stored side by side, and the data frames DF1, DF5, DF9, DF13, DF17, DF21, DF25, DF29 are stored. Are stored side by side. In the row direction, DF2, DF6, DF10, DF14, DF18, DF22, DF26, and DF30 are stored side by side, and DF3, DF7, DF11, DF15, DF19, DF23, DF27, and DF31 are stored side by side. The

次に、このように構成された光ディスクコントローラ10の動作について説明する。ここでは、とくにデスクランブル回路70及びEDCシンドローム生成回路80におけるデータ処理順序について詳述する。   Next, the operation of the optical disk controller 10 configured as described above will be described. Here, the data processing order in the descrambling circuit 70 and the EDC syndrome generation circuit 80 will be described in detail.

図24(a)に示すように、デスクランブル回路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を生成する。   As shown in FIG. 24A, the descrambling circuit 70 reads the first column of scrambled data sDu in the data frame DF0 of the first read block RB1 from the internal memory unit 12 in the column direction, and then in the data frame DF4. Read scrambled data sDu in the first column in the column direction. Subsequently, the descrambling circuit 70 sequentially reads the scrambled data sDu of the first column in the data frames DF8, DF12, DF16, DF20, DF24, and DF28 in the column direction. The descrambling circuit 70 sequentially performs descrambling processing on the read scrambled data sDu, stores the descrambling data dDu in the external buffer memory 6, and outputs the descrambling data dDu to the EDC syndrome generation circuit 80. As for the descrambling process, as in the first embodiment, the initial value S0 stored in the even register R2 is used for the first data sD0 in the first row and the first column of each even data frame DF. Data dD0 is generated. Subsequently, for the first column of scrambled data sD1 to sD7 in each even-numbered data frame DF of the first read block RB1, descrambling data using a scramble value SC obtained by shifting the previous scramble value by 1 byte. dD1 to dD7 are generated.

一方、デスクランブル回路70から外部バッファメモリ6へのデータ格納方法については、図25に示すように、データフレームDF0,DF4,DF8,DF12,DF16,DF20,DF24,DF28における1列目のデスクランブルデータdDuを、外部バッファメモリ6の同一行内(1行目)に格納する。すなわち、本実施形態では、外部バッファメモリ6に行方向に並んで格納されるデータフレームの同一列のデータを連続して読み出すことにより、8つのデータフレームDFにおける同一列のデータを同一行内に格納できるようにしている。   On the other hand, regarding the method of storing data from the descrambling circuit 70 to the external buffer memory 6, as shown in FIG. 25, the descrambling of the first column in the data frames DF0, DF4, DF8, DF12, DF16, DF20, DF24, DF28 is performed. Data dDu is stored in the same row (first row) of the external buffer memory 6. That is, in the present embodiment, data in the same column in the eight data frames DF is stored in the same row by continuously reading out data in the same column of the data frame stored in the row direction in the external buffer memory 6. I can do it.

次に、図24(b)に示すように、デスクランブル回路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・γ・γ209=S0・γ216)が格納される。また、上記第1実施形態と同様に、各読み出しブロックRBの最終偶数データフレームDF30における1列目の最終行のデータ(ここでは、スクランブルデータsD7)のデスクランブル処理に使用されたスクランブル値SCが1シフト演算器24を通じて偶数レジスタR2に格納される。 Next, as shown in FIG. 24B, the descrambling circuit 70 receives the scrambled data sDu in the first column in the data frames DF2, DF6, DF10, DF14, DF18, DF22, DF26, and DF30 from the built-in memory unit 12. Read sequentially in the column direction. The descrambling circuit 70 sequentially performs descrambling processing on the read scrambled data sDu, stores the descrambling data dDu in the same row of the external buffer memory 6, and stores the descrambling data dDu in the EDC syndrome generation circuit 80. Output. The scramble value SC used for the descrambling process of the last row data of each column of the last even data frame DF30 (here, the scrambled data sD7 of the last row of the first column) in each read block RB is shifted by 209. It is stored in the even work register R4 through the device 25. Therefore, here, the scramble value SC (= S0 · γ 7 · γ 209 = S0 · γ 216 ) is stored in the even work register R4. Similarly to the first embodiment, the scramble value SC used for the descrambling process of the data in the last column of the first column (here, the scrambled data sD7) in the last even data frame DF30 of each read block RB is It is stored in the even-numbered register R2 through the 1 shift calculator 24.

次に、図24(c)に示すように、デスクランブル回路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を生成する。 Next, as shown in FIG. 24C, the descrambling circuit 70 receives the scrambled data sDu in the first column in the data frames DF1, DF5, DF9, DF13, DF17, DF21, DF25, and DF29 from the built-in memory unit 12. Read sequentially in the column direction. The descrambling circuit 70 sequentially performs descrambling processing on the read scrambled data sDu, stores the descrambling data dDu in the same row of the external buffer memory 6, and stores the descrambling data dDu in the EDC syndrome generation circuit 80. Output. As for the descrambling process, as in the first embodiment, the scramble value SC stored in the odd register R3 for the first data sD108 in the first column of each odd data frame DF in the first read block RB1. generating a descrambling data dD108 using (= S0 · γ 108). Subsequently, for the first column of scrambled data sD109 to sD115 in each odd-numbered data frame DF of the first read block RB1, descrambling data using a scramble value SC obtained by shifting the previous scramble value by 1 byte. dD109 to dD115 are generated.

次に、図24(d)に示すように、デスクランブル回路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に格納される。 Next, as shown in FIG. 24D, the descrambling circuit 70 receives the scrambled data sDu of the first column in the data frames DF3, DF7, DF11, DF15, DF19, DF23, DF27, and DF31 from the built-in memory unit 12. Read sequentially in the column direction. The descrambling circuit 70 sequentially performs descrambling processing on the read scrambled data sDu, stores the descrambling data dDu in the same row of the external buffer memory 6, and stores the descrambling data dDu in the EDC syndrome generation circuit 80. Output. Note that the scramble value SC used for the descrambling process of the last row data (here, the scrambled data sD115 of the last row of the first column) of each column of the last odd data frame DF31 in each read block RB is shifted by 209. It is stored in the odd work register R5 through the device 25. Accordingly, here, the scramble value SC (= S0 · γ 115 · γ 209 = S0 · γ 324 ) is stored in the odd-numbered work register R5. Similarly to the first embodiment, the scramble value SC used for the descrambling process of the data of the last row of the first column (here, the scrambled data sD115) in the last odd data frame of each read block RB is 1. It is stored in the odd register R3 through the shift calculator 24.

次に、デスクランブル回路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バイト分シフトさせたスクランブル値である。 Next, the descrambling circuit 70 sequentially reads the scrambled data sDu of the second column in the data frames DF0, DF4, DF8, DF12, DF16, DF20, DF24, and DF28 from the built-in memory unit 12 in the column direction. The descrambling circuit 70 sequentially performs descrambling processing on the read scrambled data sDu. It should be noted that the scramble value SC (stored in the even work register R4) (the scrambled data sD216 in this case) for the first row data in each column after the second column in each even data frame of each read block RB ( Here, descrambling data dDu is generated using S0 · γ 216 ). Further, for the data in the first row of the second column in each odd data frame of each read block RB (for example, scrambled data sD324), the scramble value SC (for example, S0 · γ, for example) stored in the odd work register R5. 324 ) is used to generate descrambling data dDu. Here, the scramble value SC stored in the even work register R5 is shifted by 209 bytes from the scramble value used for the last row data in the previous column in the even data frame (odd data frame) in the same read block RB. The scramble value.

このように本実施形態のデスクランブル処理は、上記第1実施形態と、データの処理順序が異なるとともに、その処理順序に合わせて各列の最終行のデータに使用されたスクランブル値が209シフト演算器25を通じて各作業レジスタR4,R5に格納され、その格納されたスクランブル値が次列の1行目のデータの処理に使用されることが異なる。   As described above, the descrambling process of the present embodiment is different from the first embodiment in the data processing order, and the scramble value used for the data in the last row of each column is 209 shift operations in accordance with the processing order. The data is stored in the work registers R4 and R5 through the device 25, and the stored scramble value is used for processing the data in the first row of the next column.

次に、EDCシンドローム生成回路80におけるEDC演算処理について説明する。EDCシンドローム生成回路80には、デスクランブル回路70からデスクランブルデータdDuが生成された順に入力される。すなわち、図24(a)〜(d)の順番でデスクランブルデータdDuがEDCシンドローム生成回路80に入力される。従って、EDCシンドローム生成回路80には、各読み出しブロックRBの各データフレームDFにおけるデータが1列(8バイト)毎に入力される。EDCシンドローム生成回路80は、各読み出しブロックRBの各データフレームDFにおけるデータが1列毎に入力されると、上記第1実施形態と同様に、EDC演算値Er(c)を順次算出する。例えば第1読み出しブロックRB1のデータフレームDF0(偶数データフレーム)における1列目のバイトデータX2051〜X2044がEOR回路31に順に入力されると、下記式に示すようにEDC演算値Er(c)が順次算出される。 Next, EDC calculation processing in the EDC syndrome generation circuit 80 will be described. The descrambling data dDu is input from the descrambling circuit 70 to the EDC syndrome generation circuit 80 in the order of generation. That is, the descrambling data dDu is input to the EDC syndrome generation circuit 80 in the order of FIGS. Therefore, data in each data frame DF of each read block RB is input to the EDC syndrome generation circuit 80 for each column (8 bytes). When the data in each data frame DF of each read block RB is input for each column, the EDC syndrome generation circuit 80 sequentially calculates the EDC operation value Er (c) as in the first embodiment. For example, when the byte data X 2051 to X 2044 in the first column in the data frame DF0 (even data frame) of the first read block RB1 are sequentially input to the EOR circuit 31, the EDC operation value Er (c ) Are calculated sequentially.

そして、各データフレームDF(ここでは、データフレームDF0)における各列の最終行のデータに対するEDC演算値Er(c)(ここでは、EDC演算値E1(8))が算出されると、そのEDC演算値E1(8)が209シフト演算器35を通じてシフト演算値Es(=β209・E1(8))として作業メモリ81に格納される。この作業メモリ81には、各データフレームDF毎のシフト演算値Esが格納されるようになっている。 Then, when the EDC operation value Er (c) (here, the EDC operation value E1 (8)) for the data of the last row of each column in each data frame DF (here, the data frame DF0) is calculated, the EDC The calculated value E1 (8) is stored in the work memory 81 as a shift calculated value Es (= β209 · E1 (8)) through the 209 shift calculator 35. The work memory 81 stores a shift operation value Es for each data frame DF.

次に、各読み出しブロック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(=β209・E1(8))が入力される。従って、上記データX1835に対するEDC演算値E1(9)は下記式により算出される。 Next, an EDC operation when data in the first row of each column excluding the first column and the last column in each data frame of each read block RB is input will be described. For example, when data X 1835 in the first row and second column of the data frame DF0 of the first read block RB1 is input to the EOR circuit 31, the selection circuit 82 supplies the shift operation value Es from the work memory 81 to the EOR circuit 31. A selection signal to be output is output to the selector 32. As a result, the EOR circuit 31 receives the shift operation value Es (= β) stored in the work memory 81 at the first column of the data frame DF0 in the first read block RB1 (the previous column of the same data frame in the same read block). 209 · E1 (8)) is input. Therefore, the EDC operation value E1 (9) for the data X 1835 is calculated by the following equation.

このように本実施形態のEDCシンドローム生成回路80には、各読み出しブロックRBの各データフレームにおけるデータが1列毎に入力される。そのため、その1列の最後のデータが入力されたときに算出されるEDC演算値Er(c)に対して209次のベクターβ209による重み付けをして得られるシフト演算値Esをデータフレーム毎に作業メモリ81に格納するようにした。そして、同一読み出しブロックRBにおける各データフレームの次列の1行目のデータがEOR回路31に入力されたときに、作業メモリ81に格納した同一データフレームのシフト演算値Esを読み出してEDC演算処理を行うようにした。なお、その他の演算方法については、上記第1実施形態と同様である。 Thus, the data in each data frame of each read block RB is input to the EDC syndrome generation circuit 80 of this embodiment for each column. For this reason, the shift calculation value Es obtained by weighting the EDC calculation value Er (c) calculated when the last data of one column is input with the 209th-order vector β 209 is obtained for each data frame. The data is stored in the work memory 81. When the first row data of the next column of each data frame in the same read block RB is input to the EOR circuit 31, the shift operation value Es of the same data frame stored in the work memory 81 is read and EDC operation processing is performed. To do. Other calculation methods are the same as those in the first embodiment.

以上説明した実施形態によれば、第1実施形態の(1)〜(10)の作用効果に加えて以下の効果を奏する。
(11)デスクランブル回路70は、各読み出しブロックの各偶数データフレームにおける2列目以降の各列の1行目のスクランブルデータに対するスクランブル値SCを格納する偶数作業レジスタR4を備えた。また、デスクランブル回路20は、各読み出しブロックの各奇数データフレームにおける2列目以降の各列の1行目のスクランブルデータに対するスクランブル値SCを格納する奇数作業レジスタR5を備えた。これにより、図24に示すようなデータ処理順序、すなわち各データフレーム内の1列のデスクランブル処理が終了する度に、異なるデータフレームに処理が移るようなデータ処理順序であっても、上記作業レジスタR4,R5に格納されたスクランブル値SCを利用することによって、デスクランブル処理を連続的に実行することができる。
According to the embodiment described above, the following effects are obtained in addition to the effects (1) to (10) of the first embodiment.
(11) The descrambling circuit 70 includes an even work register R4 that stores a scramble value SC for the first row of scrambled data in each column after the second column in each even data frame of each read block. The descrambling circuit 20 also includes an odd work register R5 that stores a scramble value SC for the first row of scrambled data in each column after the second column in each odd data frame of each read block. Thus, even if the data processing order is as shown in FIG. 24, that is, the data processing order is such that the processing moves to a different data frame every time one column of descrambling processing within each data frame is completed, By using the scramble value SC stored in the registers R4 and R5, the descrambling process can be executed continuously.

(12)EDCシンドローム生成回路80は、各読み出しブロックの各データフレームにおける各列のEDC演算処理終了後のEDC演算値Er(c)が209シフト演算器35を通じて格納される作業メモリ81を備えた。これにより、図24に示すようなデータ処理順序であっても、作業メモリ81に格納されたスクランブル値SCを利用することによって、デスクランブル処理を連続的に実行することができる。   (12) The EDC syndrome generation circuit 80 includes a working memory 81 in which the EDC operation value Er (c) after completion of the EDC operation processing for each column in each data frame of each read block is stored through the 209 shift operation unit 35. . Accordingly, even in the data processing order as shown in FIG. 24, the descrambling process can be continuously executed by using the scramble value SC stored in the working memory 81.

(13)デスクランブル回路70は、外部バッファメモリ6の行方向に並んで格納されるデータフレームの同一列のデータを連続して処理するようにした。これにより、デスクランブル回路70は、8つのデータフレームDF(例えば、データフレームDF0,DF4,DF8,DF12,DF16,DF20,DF24,DF28)における同一列のデスクランブルデータdDuを、外部バッファメモリ6の同一行内に格納できる。このとき、外部バッファメモリ6は、同一行内においては連続してアクセスすることができる機能を有している。従って、デスクランブル回路70が外部バッファメモリ6にデスクランブルデータdDuを格納するときのアクセス効率を向上させることができる。   (13) The descrambling circuit 70 continuously processes data in the same column of the data frame stored side by side in the row direction of the external buffer memory 6. As a result, the descrambling circuit 70 stores the descrambling data dDu in the same column in the eight data frames DF (for example, the data frames DF0, DF4, DF8, DF12, DF16, DF20, DF24, DF28) in the external buffer memory 6. Can be stored in the same row. At this time, the external buffer memory 6 has a function of allowing continuous access within the same row. Therefore, the access efficiency when the descrambling circuit 70 stores the descrambling data dDu in the external buffer memory 6 can be improved.

(第3実施形態)
以下、本発明を具体化した第3実施形態について、図26〜図28に従って説明する。この実施形態のEDCシンドローム生成回路の回路構成が上記第2実施形態と異なっている。以下、第2実施形態との相違点を中心に説明する。なお、デスクランブル回路70による内蔵メモリ部12からのデータ読み出し順序は、上記第2実施形態と同様である。
(Third embodiment)
Hereinafter, a third embodiment of the present invention will be described with reference to FIGS. The circuit configuration of the EDC syndrome generation circuit of this embodiment is different from that of the second embodiment. Hereinafter, the difference from the second embodiment will be mainly described. The order of reading data from the built-in memory unit 12 by the descrambling circuit 70 is the same as in the second embodiment.

図27に示すように、EDCシンドローム生成回路90は、デスクランブル回路70から1ビットの入力データ(ビットデータ)Xが入力される16個のアンド回路A1〜A16を備えている。 As shown in FIG. 27, EDC syndrome generation circuit 90 includes 16 AND circuits A1~A16 the input data 1 bit from the descramble circuit 70 (bit data) X k is input.

ここで、アンド回路A1〜A16に入力されるビットデータについて説明する。まず、1つのデータフレームDFは2052バイトであるため、1つのデータフレームDFは16416(=2052×8)ビットから構成される。EDC付加時と同様のデータ処理順序でEDC演算をした場合の16416ビットのデスクランブルデータdDuの次数重みを表す多項式表現(入力多項式)は、   Here, the bit data input to the AND circuits A1 to A16 will be described. First, since one data frame DF is 2052 bytes, one data frame DF is composed of 16416 (= 2052 × 8) bits. A polynomial expression (input polynomial) representing the order weights of 16416-bit descrambled data dDu when EDC operation is performed in the same data processing order as when EDC is added,

となる。ここで、EDC演算は、前述したように、入力多項式の各次数をベクターβで重み付けする演算であるため、EDCシンドロームEDCSは下記式により算出される。なお、本実施形態におけるベクターβの次数kと、上記第1及び第2実施形態におけるベクターβの次数nとは、k=8nの関係がある。 It becomes. Here, as described above, since the EDC operation is an operation for weighting each degree of the input polynomial by the vector β k , the EDC syndrome EDCS is calculated by the following equation. Note that the order k of the vector β k in the present embodiment and the order n of the vector β n in the first and second embodiments have a relationship of k = 8n.

このように、EDCシンドロームEDCSの演算は、1ビットデータが処理される度に各ビットデータに対して1次のベクターβ(=β)による重み付けが行われる。ここで、1ビットデータXに対してベクターβで重み付けするとは、重み付けされるビットデータXを、所定の生成多項式G(x)(本例では、G(x)=x32+x31+x+1)に従って1ビット分シフトさせることである。例えば、各データフレームDFにおいて最も早く入力されるビットデータX16415に対しては、1次のベクターβによる重み付けが16415回行われる。但し、本実施形態の場合、上記第2実施形態と同様に、デスクランブル回路70から、27個に分割されたデータブロックDBが第1〜第27読み出しブロックRB1〜RB27として各読み出しブロック毎に入力される。ここで、図26(a)に、第1読み出しブロックRB1の各偶数データフレームにおける1列目と2列目とのバイトデータX及びビットデータXの入力順序を次数n,kで表した。また、図26(b)に、第1読み出しブロックRB1の各奇数データフレームにおける1列目と2列目とのバイトデータX及びビットデータXの入力順序を次数n,kで表した。 Thus, in the calculation of the EDC syndrome EDCS, each time 1-bit data is processed, each bit data is weighted by the first-order vector β k (= β 1 ). Here, the 1-bit data X k is weighted with the vector β 1. The weighted bit data X k is weighted with a predetermined generator polynomial G (x) (in this example, G (x) = x 32 + x 31 + X 4 +1) to shift by one bit. For example, the bit data X 16415 input first in each data frame DF is weighted 16415 times with the primary vector β 1 . However, in the case of the present embodiment, as in the second embodiment, the data block DB divided into 27 pieces is input from the descramble circuit 70 as the first to 27th read blocks RB1 to RB27 for each read block. Is done. Here, in FIG. 26 (a), showing the input order of the byte data X n and the bit data X k and first and second columns of each even-numbered data frame of the first read block RB1 order n, with k . Further, in FIG. 26 (b), representing the input order of the byte data X n and the bit data X k and first and second columns of each odd data frame of the first read block RB1 order n, with k.

この図26(a)に示すように、EDCシンドローム生成回路80にはビットデータXが、X16415→X16414→…→X16353→X16352→X14687→X14686→…という順序で入力される。すなわち、アンド回路A1〜A16(図27参照)には、まずビットデータとしてデータフレームDF0のX16415〜X16400(X〜Xk−15)が入力され、次にビットデータとしてX16399〜X16384が入力され、続いてビットデータとしてX16387〜X16368が入力され、次いでビットデータとしてX16367〜X16352が入力される。そして、第1読み出しブロックRB1の全データフレームDF0〜DF31における1列目のビットデータの入力が終了すると、アンド回路A1〜A16には、次に第1読み出しブロックRB1のデータフレームDF0における2列目のビットデータX14687〜X14672が入力される。このように、EDC付加時のデータ入力順序と異なる順序でデータが入力されると、ベクターβによる重み付けが正確にできないため、正常なEDCシンドロームを生成することができない。 As shown in FIG. 26A, the bit data X k is input to the EDC syndrome generation circuit 80 in the order of X 16415 → X 16414 →... → X 16353 → X 16352 → X 14687 → X 14686 →. The That is, the AND circuit: A1 to A16 (see FIG. 27), is first X 16415 to X 16400 data frames DF0 (X k ~X k-15 ) is input as bit data, then X 16399 to X as bit data 16384 is input, then X 16387 to X 16368 are input as bit data, and then X 16367 to X 16352 are input as bit data. When the input of bit data of the first column in all data frames DF0 to DF31 of the first read block RB1 is completed, the AND circuit A1 to A16 then receives the second column of the data frame DF0 of the first read block RB1. Bit data X 14687 to X 14672 are input. Thus, when data is input in an order different from the data input order at the time of EDC addition, weighting by the vector β cannot be performed accurately, so that a normal EDC syndrome cannot be generated.

そこで、本実施形態のEDCシンドローム生成回路90は、ビットデータXに応じて所望の次数kのベクターβを生成するベクター生成回路91を備えるようにした。ベクター生成回路91は、16個の−1ビットシフト(β−1)演算器B1〜B16(第1逆シフト演算器群)及び−1664ビットシフト(β−1664)演算器B17から構成され、ベクターレジスタ92から入力されるベクターβに基づいて、18個のベクターβを生成する。 Therefore, the EDC syndrome generation circuit 90 of the present embodiment includes a vector generation circuit 91 that generates a vector β k of a desired order k according to the bit data X k . The vector generation circuit 91 includes 16 −1 bit shift (β −1 ) arithmetic units B1 to B16 (first inverse shift arithmetic unit group) and −1664 bit shift (β −1664 ) arithmetic unit B17. Based on the vector β k input from the register 92, 18 vectors β are generated.

β−1演算器B1〜B16は、ベクターレジスタ92あるいは前段のβ−1演算器からベクターβが入力されたときに、ベクターβk−1を生成する演算器である。すなわち、β−1演算器B1〜B16は、入力されたベクターを生成多項式G(x)に従って1ビット分、逆シフトさせて新たなベクターβを生成する演算器である。図29に、β−1シフト演算器B1〜B16にI[31:0]が入力されたときに、該β−1シフト演算器B1〜B16から出力されるO[31:0]の論理式を示した。 The β -1 calculators B1 to B16 are calculators that generate a vector β k-1 when the vector β k is input from the vector register 92 or the preceding stage β -1 calculator. In other words, the β −1 arithmetic units B1 to B16 are arithmetic units that generate a new vector β k by reversely shifting the input vector by one bit according to the generator polynomial G (x). Figure 29, beta -1 shift calculator B1 to B16 to I: when [31 0] is input, O output from the beta -1 shift calculator B1 to B16 [31: 0] logical expression showed that.

例えば、ベクターレジスタ92からβ−1演算器B1にベクターβが入力された場合には、β−1演算器B1〜B16はそれぞれベクターβk−1〜βk−16を生成する。また、β−1演算器B1に入力されるベクターβがアンド回路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に出力する。 For example, in the case where vector beta k from vector register 92 beta -1 calculator B1 is input, beta -1 calculator B1~B16 to generate respective vectors β k-1 ~β k-16 . Further, the vector β k input to the β -1 calculator B1 is input to the AND circuit A1, and the vector β k-1 output from the β -1 calculator B1 is input to the AND circuit A2, and the β -1 calculation is performed. The vector β k-2 output from the device B2 is input to the AND circuit A3. Similarly, vectors [beta] k-3 to [beta] k-15 output from [beta] -1 calculators B3 to B15 are input to AND circuits A4 to A16, respectively. The β- 1 calculator B16 outputs the generated vector βk-16 to the β- 1664 calculator B17, the even register R20, the odd register R21, and the selector 96.

β−1664演算器B17は、β−1演算器B16からベクターβk−16が入力されたときに、ベクターβk−16−1664を生成し、該ベクターβk−16−1664を、偶数ラインレジスタR22、奇数ラインレジスタR23及びセレクタ96に出力する演算器である。すなわち、β−1664演算器B17は、入力されたベクターを生成多項式G(x)に従って1664ビット分、逆シフトさせて新たなベクターβを生成する演算器である。図30に、β−1664シフト演算器B17にI[31:0]が入力されたときに、該β−1664シフト演算器B17から出力されるO[31:0]の論理式を示した。 The β- 1664 computing unit B17 generates a vector β k-16-1664 when the vector β k-16 is input from the β- 1 computing unit B16, and generates the vector β k-16-1664 as an even line. This is an arithmetic unit that outputs to the register R22, the odd line register R23, and the selector 96. That is, the β- 1664 calculator B17 is a calculator that reversely shifts the input vector by 1664 bits according to the generator polynomial G (x) to generate a new vector βk . FIG. 30 shows a logical expression of O [31: 0] output from the β- 1664 shift calculator B17 when I [31: 0] is input to the β- 1664 shift calculator B17.

アンド回路A1〜A16は、デスクランブル回路70からそれぞれ入力されるビットデータX〜Xk−15をそれぞれ32ビットに拡張した値と、ベクター生成回路91からそれぞれ入力されるベクターβ〜βk−15との論理積を取って、その演算結果をEOR回路94にそれぞれ出力する。ここで、上記32ビットに拡張した値とは、ビット0〜ビット31までの全ての値をXの値にしたデータのことである。 AND circuit A1~A16 the bit data is inputted from the descramble circuit 70 X k ~X k-15 and a value that extends to each 32-bit, vectors β k k respectively input from the vector generating circuit 91 The logical product with -15 is taken and the operation result is output to the EOR circuit 94. Here, the value expanded to 32 bits is data in which all values from bit 0 to bit 31 are set to the value of 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が格納される。   The EOR circuit 94 calculates the exclusive OR of the 16 operation results input from the AND circuits A1 to A16 and outputs the operation result to the syndrome register 95. The syndrome register 95 outputs the calculation result to the EOR circuit 94 and the EDC memory unit 40 as an intermediate value EDCs of EDC syndrome based on the enable signal ENS at the EN terminal. The EDC memory unit 40 has the same configuration as that of the first and second embodiments, and stores an EDC syndrome intermediate value EDCs and a final EDC syndrome EDCS for each data frame DF0 to DF31.

セレクタ96は、選択回路97からの選択信号に基づいて、β−1演算器B16及び各種レジスタR20〜R23から入力されるベクターのうち1つのベクターβをベクターレジスタ92に出力する。なお、ベクターレジスタ92は、EN端子に入力されるイネーブル信号ENSに基づいて、セレクタ96から入力されるベクターβをベクター生成回路91に出力する。 Based on the selection signal from the selection circuit 97, the selector 96 outputs one vector βk among the vectors input from the β- 1 calculator B16 and the various registers R20 to R23 to the vector register 92. The vector register 92 outputs the vector β k input from the selector 96 to the vector generation circuit 91 based on the enable signal ENS input to the EN terminal.

初期設定時の偶数レジスタR20には、所定の生成多項式G(x)より予め算出されたベクターβ16415が格納される。また、偶数レジスタR20には、各読み出しブロックRBの最終偶数データフレームにおける1列目の最終行のビットデータXの演算処理が終了したときに、β−1演算器B16から入力されるベクターβが格納される。一方、初期設定時の奇数レジスタR21には、所定の生成多項式G(x)より予め算出されたベクターβ15551が格納される。また、奇数レジスタR21には、各読み出しブロックRBの最終奇数データフレームにおける1列目の最終行のビットデータXの演算処理が終了したときに、β−1演算器B16から入力されるベクターβが格納される。 The even register R20 at the time of initialization stores a vector β 16415 calculated in advance from a predetermined generator polynomial G (x). The even register R20 receives the vector β input from the β- 1 calculator B16 when the calculation processing of the bit data X in the last row of the first column in the final even data frame of each read block RB is completed. Stored. On the other hand, the odd-numbered register R21 at the time of initialization stores a vector β 15551 calculated in advance from a predetermined generator polynomial G (x). The odd-numbered register R21 receives the vector β input from the β- 1 calculator B16 when the calculation processing of the bit data X in the last row of the first column in the last odd data frame of each read block RB is completed. Stored.

偶数ラインレジスタR22には、各読み出しブロックRBの最終偶数データフレームにおける各列の最終行のビットデータXのEDC演算処理が終了したときに、β−1664演算器B17から入力されるベクターβが格納される。奇数ラインレジスタR23には、各読み出しブロックRBの最終奇数データフレームにおける各列の最終行のビットデータのEDC演算処理が終了したときに、β−1664演算器B17から入力されるベクターβが格納される。 The even line register R22 stores the vector β input from the β- 1664 arithmetic unit B17 when the EDC arithmetic processing of the bit data X of the last row of each column in the final even data frame of each read block RB is completed. Is done. The odd line register R23 stores the vector β input from the β- 1664 arithmetic unit B17 when the EDC arithmetic processing of the last row of bit data in each column in the final odd data frame of each read block RB is completed. The

選択回路97は、入力されるクロック信号CLKのパルス数に応じて各種選択信号を生成し、その選択信号をセレクタ96に出力する。例えば、選択回路97は、各読み出しブロックRBの各偶数データフレームにおける1行1列目の先頭ビットデータから16ビット分のデータがアンド回路A1〜A16に入力されるときには、偶数レジスタR20からのベクターβをベクターβとしてベクターレジスタ92に出力させる選択信号を生成する。選択回路97は、各読み出しブロックRBの各奇数データフレームにおける1行1列目の先頭ビットデータから16ビット分のデータがアンド回路A1〜A16に入力されるときには、奇数レジスタR21からのベクターβをベクターβとしてベクターレジスタ92に出力させる選択信号を生成する。選択回路97は、各読み出しブロックRBの各偶数データフレームにおける2列目以降の各列の1行目のビットデータから16ビット分のデータが入力されるときには、偶数ラインレジスタR22からのベクターβをベクターβとしてベクターレジスタ92に出力させる選択信号を生成する。選択回路97は、各読み出しブロックRBの各奇数データフレームにおける2列目以降の各列の1行目のビットデータから16ビット分のデータが入力されるときには、奇数ラインレジスタR23からのベクターβをベクターβとしてベクターレジスタ92に出力させる選択信号を生成する。選択回路97は、各読み出しブロックRBにおける列方向の次のビットデータ(17行目以降のビットデータ)から16ビット分のデータが入力されるときには、β−1演算器B16からのベクターβをベクターβとしてベクターレジスタ92に出力させる選択信号を生成する。 The selection circuit 97 generates various selection signals according to the number of pulses of the input clock signal CLK and outputs the selection signals to the selector 96. For example, when 16 bits of data from the first bit data in the first row and first column in each even data frame of each read block RB is input to the AND circuits A1 to A16, the selection circuit 97 receives the vector from the even register R20. A selection signal for generating the vector β k as the vector β k is generated. When 16 bits of data from the first bit data in the first row and first column in each odd data frame of each read block RB is input to the AND circuits A1 to A16, the selection circuit 97 receives the vector β from the odd register R21. A selection signal to be output to the vector register 92 as the vector β k is generated. The selection circuit 97 receives the vector β from the even line register R22 when 16 bits of data are input from the first row of bit data in each column after the second column in each even data frame of each read block RB. A selection signal to be output to the vector register 92 as the vector β k is generated. The selection circuit 97 receives the vector β from the odd line register R23 when 16 bits of data are input from the first row of bit data in each column after the second column in each odd data frame of each read block RB. A selection signal to be output to the vector register 92 as the vector β k is generated. When 16 bits of data are input from the next bit data in the column direction (bit data after the 17th row) in each read block RB, the selection circuit 97 uses the vector β from the β −1 arithmetic unit B16 as a vector. A selection signal to be output to the vector register 92 as β k is generated.

次に、このように構成されたEDCシンドローム生成回路90の動作について図28に従って説明する。
まずステップS50において、偶数レジスタR20及び奇数レジスタR21に初期値が設定される。すなわち、偶数レジスタR20には、第1読み出しブロックRB1における各偶数データフレームの先頭ビットデータX16415の次数と同一次数のベクターβ16415が格納される。また、奇数レジスタR21には、第1読み出しブロックRB1における各奇数データフレームの先頭ビットデータX15551の次数と同一次数のベクターβ15551が格納される。
Next, the operation of the EDC syndrome generation circuit 90 configured as described above will be described with reference to FIG.
First, in step S50, initial values are set in the even register R20 and the odd register R21. That is, the even number register R20 stores the vector β 16415 having the same order as the order of the first bit data X 16415 of each even data frame in the first read block RB1. The odd number register R21 stores a vector β 15551 having the same order as the order of the first bit data X 15551 of each odd data frame in the first read block RB1.

次に、選択回路97は、偶数レジスタR20あるいは奇数レジスタR21からのベクターβをベクターレジスタ92に出力させる選択信号をセレクタ96に出力する(ステップS51)。詳しくは、選択回路97は、偶数データフレームのEDC演算処理を行う場合には偶数レジスタR20からのベクターβを、奇数データフレームのEDC演算処理を行う場合には奇数レジスタR21からのベクターβをベクターレジスタ92に出力させる選択信号を生成する。ここでは、これから処理するデータフレームDFがデータフレームDF0(偶数データフレーム)であるため、偶数レジスタR20からのベクターβ16415をベクターレジスタ92に出力させる選択信号をセレクタ96に出力する。 Next, the selection circuit 97 outputs a selection signal for outputting the vector β from the even register R20 or the odd register R21 to the vector register 92 to the selector 96 (step S51). Specifically, the selection circuit 97 vectorizes the vector β from the even register R20 when performing the EDC operation processing of the even data frame, and vector vector from the odd register R21 when performing the EDC operation processing of the odd data frame. A selection signal to be output to the register 92 is generated. Here, since the data frame DF to be processed is the data frame DF0 (even data frame), a selection signal for outputting the vector β 16415 from the even register R20 to the vector register 92 is output to the selector 96.

次に、ステップS52において、デスクランブル回路70からアンド回路A1〜A16には、データフレームDF0の先頭ビットデータX16415から16ビット分のデータX16415〜X16400がそれぞれ入力される。このとき、ベクター生成回路91からアンド回路A1〜A16には、ベクターβ16415〜β16400がそれぞれ入力される。これにより、EOR回路94は、アンド回路A1〜A16からの演算結果の排他的論理和を取って、下記式に示すEDCシンドロームの中間値EDCsを算出する。 Next, in step S52, 16 bits worth of data X 16415 to X 16400 are input from the first bit data X 16415 of the data frame DF0 to the AND circuits A1 to A16 from the descrambling circuit 70, respectively. At this time, vectors β 16415 to β 16400 are input from the vector generation circuit 91 to the AND circuits A1 to A16, respectively. As a result, the EOR circuit 94 calculates the intermediate value EDCs of the EDC syndrome represented by the following equation by taking the exclusive OR of the operation results from the AND circuits A1 to A16.

この算出された中間値EDCsは、シンドロームレジスタ95を介してEDCメモリ部40に格納されるとともに、EOR回路94に入力される。 The calculated intermediate value EDCs is stored in the EDC memory unit 40 via the syndrome register 95 and input to the EOR circuit 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を算出する。 Next, in step S53, the selection circuit 97 determines whether or not the EDC operation processing for one column (64 bits) of data in each read block RB is completed according to the number of pulses of the input clock signal. If selection circuit 97 determines that the EDC operation processing for one column of data has not been completed (NO in step S53), selector circuit 97 selects a selection signal for outputting vector β from β- 1 calculator B16 to vector register 92. It outputs to 96 (step S54). In this case, beta -1 for vector input from the arithmetic unit B16 in the vector register 92 via the selector 96 is beta 16399, to the AND circuit A1~A16 from the vector generating circuit 91 vector β 1639916384 respectively Entered. Further, bit data X 16399 to X 16384 are input from the descramble circuit 70 to the AND circuits A1 to A16, respectively. Therefore, the EOR circuit 94 calculates an intermediate value EDCs represented by the following equation by taking an exclusive OR of the calculation results from the AND circuits A1 to A16 and the intermediate value EDCs calculated immediately before.

1列分のビットデータに対するEDC演算処理が終了するまで、これらステップS52〜S54が繰り返し実行される。このようにEDC付加時のデータ処理順序と同様の順序でビットデータが入力されるとき、すなわち列方向に配置されたビットデータが順番に入力されるときには、β−1演算器B16からのベクターβをベクター生成回路91に入力させる。 These steps S52 to S54 are repeatedly executed until the EDC operation processing for the bit data for one column is completed. In this way, when bit data is input in the same order as the data processing order when EDC is added, that is, when bit data arranged in the column direction is input in order, the vector β from the β −1 computing unit B16 Is input to the vector generation circuit 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と同様に行われる。 Then, an intermediate value EDCs when the first read first column of the 16 bits including bit data X 16352 the last line data X of the data frame DF0 blocks RB1 16367 ~X 16352 is input to the AND circuit A1~A16 Once calculated, the intermediate value EDCs is stored in the EDC memory unit 40, and the process proceeds to step S55. Next, in step S55, the selection circuit 97 determines whether the data frame DF currently processed is the final even data frame DF30 or the final odd data frame DF31. Here, since the data frame DF currently processed is the data frame DF0 and the data in the first column, the process proceeds to step S51, and the same column of the next data frame (here, one column of the data frame DF4). Eye) EDC calculation processing is performed in the same manner as the data frame DF0.

以後、ステップS51〜S55が繰り返し実行され、データフレームDF4→DF8→DF12→DF16→DF20→DF24→DF28→DF2→DF6→DF10→DF14→DF18→DF22→DF26→DF30(図24(a)、(b)参照)における1列目のEDC演算処理が順に行われる。そして、第1読み出しブロックRB1のデータフレームDF30における1列目の最終行のビットデータX16352を含む16ビットのデータX16367〜X16352が入力されたときの中間値EDCsが算出されると(ステップS55においてYES)、ステップS56に移る。 Thereafter, steps S51 to S55 are repeatedly executed, and the data frame DF4 → DF8 → DF12 → DF16 → DF20 → DF24 → DF28 → DF2 → DF6 → DF10 → DF14 → DF18 → DF22 → DF26 → DF30 (FIG. 24A, ( The EDC calculation processing of the first column in (b)) is sequentially performed. When the intermediate value EDCs is calculated when the first read first column of the 16 bits including bit data X 16352 the last line data X of the data frame DF30 blocks RB1 16367 ~X 16352 is input (step (YES in S55), the process proceeds to step 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に移る。 Next, the selection circuit 97 determines which of the conditions C1 to C3 the data currently being subjected to EDC calculation processing corresponds to. When the EDC calculation process for the first column of the final even data frame DF30 is completed (condition C1), the process proceeds to step S57, and when the EDC calculation process for the first column of the final odd data frame DF31 is completed (condition C2). In step S58, if the EDC calculation processing for the second and subsequent columns is completed (condition C3), the process proceeds to step S59. Here, since the EDC arithmetic processing of the first column of the data frame DF30 has been completed (condition C1), the vector β from the β −1 arithmetic unit B16 is stored in the even register R20 and the β −1664 arithmetic unit. The vector β from B17 is stored in the even line register R22 (step S57). That is, when the first read block RB1, along with vectors beta 16351 is stored in the even register R20, vector beta 14687 is stored in the even-numbered line register R22. Subsequently, when returning to step S51, since the EDC calculation process for the first column of the data frame DF1 (odd data frame) in the first read block RB1 is started, the initial value vector β 15551 from the odd register R21 is It is output to the vector register 92. Thereafter, as in the case of the even data frame, steps S52 to S54 are repeatedly executed until the EDC calculation process for the first column of the data frame DF1 in the first read block RB1 is completed. Then, an intermediate value EDCs when the first read first column of the 16 bits including bit data X 16352 the last line data X of the data frame DF1 blocks RB1 15503 to X 15488 is input to the AND circuit A1~A16 When calculated, the process proceeds to step S55.

以後、ステップS51〜S55が繰り返し実行され、データフレームDF5→DF9→DF13→DF17→DF21→DF25→DF29→DF3→DF7→DF11→DF15→DF19→DF23→DF27→DF31(図24(c)、(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)。 Thereafter, steps S51 to S55 are repeatedly executed, and the data frame DF5 → DF9 → DF13 → DF17 → DF21 → DF25 → DF29 → DF3 → DF7 → DF11 → DF15 → DF19 → DF23 → DF27 → DF31 (FIG. 24C) ( The EDC calculation process in the first column in d) is performed in order. When the intermediate value EDCs is calculated when the data X 16 367 to X 16352 of 16 bits including data X 16352 in the last line of the first column of the data frame DF31 of the first read block RB1 is input (step S55 In step S56, the process proceeds to step S58. Next, beta -1 vector beta (here, beta 15487) from the computing unit B16 with is stored in the odd register R21, beta -1664 vector beta (here, beta 13823) from the computing unit B17 is odd lines Stored in the register R23 (step 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を算出する。 Subsequently, the selection circuit 97 outputs a selection signal for causing the vector register 92 to output the vector β from the even line register R22 or the odd line register R23 to the selector 96 (step S59). Specifically, the selection circuit 97 uses the vector β from the even line register R22 when performing the EDC operation processing of the even data frame, and selects the vector β from the odd line register R23 when performing the EDC operation processing of the odd data frame. Is generated by the vector register 92. Here, since the second column of the data frame DF0 in the first read block RB1 is subjected to EDC calculation processing, a selection signal for causing the vector register 92 to output the vector β 14687 from the even line register R22 is output to the selector 96. . Thereby, in step S52, the vectors β 14687 to β 14672 are input from the vector generation circuit 91 to the AND circuits A1 to A16 . Also, 16 bits of data X 14687 to X 14672 are input to the AND circuits A1 to A16 from the bit data X 14687 in the first row and the second column of the data frame DF0 in the first read block RB1. Then, the EOR circuit 94 calculates a new intermediate value EDCs by taking an exclusive OR of the calculation results from the AND circuits A1 to A16 and the intermediate value EDCs of the same data frame stored in the EDC memory unit 40. To do.

このように各読み出しブロックの偶数データフレームにおける2列目以降の各列の1行目のビットデータXには、偶数データフレームにおける前列の最終行のビットデータXk+1665に乗算されたベクターβk+1665をβ−1演算器B16及びβ−1664演算器B17によりシフト演算して得られるベクターβが乗算されるようになっている。同様に、各読み出しブロックの奇数データフレームにおける2列目以降の各列の1行目のビットデータXには、奇数データフレームにおける前列の最終行のビットデータXk+1665に乗算されたベクターβk+1665をβ−1演算器B16及びβ−1664演算器B17によりシフト演算して得られるベクターβが乗算されるようになっている。ここでは、例えば第1読み出しブロックRB1のデータフレームDF0における1行2列目のビットデータX14687は、同1列目の最終行のビットデータX16352よりも、EDC付加時において{(データブロックDBの列方向における全ビット数:1728ビット)−(1つの読み出しブロックの列方向におけるビット数:64ビット)+1}=1665ビット分だけ遅く処理されるデータである。すなわち、ビットデータX14687は、ビットデータX16352よりもベクターβによる重み付け回数が1665回だけ少ない。従って、上述したように、前列の最終行のビットデータXk+1665に乗算したベクターβk+1665を1665ビット分だけ逆シフト演算したベクターβを、2列目以降の各列の1行目のビットデータXに乗算するようにした。 As described above, the bit data X k in the first row of each column after the second column in the even data frame of each read block is multiplied by the vector β k + 1665 multiplied by the bit data X k + 1665 of the last row in the previous column in the even data frame. Are multiplied by a vector β k obtained by performing a shift operation by the β −1 computing unit B16 and the β −1664 computing unit B17. Similarly, the bit data X k of the first row of each column after the second column in the odd-numbered data frame of each read block is multiplied by the vector β k + 1665 multiplied by the bit data X k + 1665 of the last row of the previous column in the odd-numbered data frame. Are multiplied by a vector β k obtained by performing a shift operation by the β −1 computing unit B16 and the β −1664 computing unit B17. Here, for example, the bit data X 14687 in the first row and the second column in the data frame DF0 of the first read block RB1 is more than the bit data X 16352 in the last row in the first column when the EDC is added {(data block DB The total number of bits in the column direction: 1728 bits) − (the number of bits in the column direction of one read block: 64 bits) +1} = 1655 bits. That is, the bit data X 14687 has the number of times of weighting by the vector β 1 smaller than the bit data X 16352 by 1665 times. Therefore, as described above, the front row of the bit data X k + 1665 vector beta k where the vector beta k + 1665 reverse shift operation by 1665 bits multiplied the last row, the first row of bit data in each column of the second row and subsequent Xk is multiplied.

続いて、ステップS52〜S54が繰り返し実行され、第1読み出しブロックRB1のデータフレームDF0における2列目の最終行のビットデータX14624を含む16ビットのデータX14639〜X14624が入力されたときの中間値EDCsが算出されると、ステップS55に移る。ここでは、最終偶数データフレームDF30及び最終奇数データフレームでないデータフレームDF0の2列目が処理されているため、ステップS59に移る。続いて、データフレームDF4の2列目が次に処理されるため、偶数ラインレジスタR22からのベクターβ14687がベクターレジスタ92に出力される。 Subsequently, step S52~S54 are repeated, when the first read second column of the 16 bits including bit data X 14624 the last line data X of the data frame DF0 blocks RB1 14639 to X 14624 is input When the intermediate value EDCs is calculated, the process proceeds to step S55. Here, since the second column of the final even data frame DF30 and the data frame DF0 which is not the final odd data frame is processed, the process proceeds to step S59. Subsequently, since the second column of the data frame DF4 is processed next, the vector β 14687 from the even line register R22 is output to the vector register 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)。 Thereafter, steps S51 to S55 and step S59 are repeatedly executed, and the second column in the data frame DF4 → DF8 → DF12 → DF16 → DF20 → DF24 → DF28 → DF2 → DF6 → DF10 → DF14 → DF18 → DF22 → DF26 → DF30 EDC calculation processing is performed in order. When the intermediate value EDCs is calculated when the first read second column of the 16 bits including bit data X 16352 the last line data X of the data frame DF30 blocks RB1 16367 ~X 16352 is input (step In S55, YES and the condition C3 of step S56), the process proceeds to step S61. Next, the vector β (β 12959 in this case) from the β- 1664 arithmetic unit B17 at this time is stored in the even line register R22 (step S61).

続いて、データフレームDF1の2列目が次に処理されるため、奇数ラインレジスタR21からのベクターβ13823がベクターレジスタ92に出力される。以後、偶数データフレームと同様に奇数データフレームのEDC演算処理が行われ、データフレームDF31の2列目のEDC演算処理が終了すると、ステップS61に移る。次に、このときのβ−1664演算器B17からのベクターβ(ここでは、β12095)が奇数ラインレジスタR23に格納される(ステップS61)。 Subsequently, since the second column of the data frame DF 1 is processed next, the vector β 13823 from the odd line register R 21 is output to the vector register 92. Thereafter, the EDC operation processing of the odd data frame is performed in the same manner as the even data frame. When the EDC operation processing of the second column of the data frame DF31 is completed, the process proceeds to step S61. Next, the vector β (β 12095 in this case) from the β- 1664 arithmetic unit B17 at this time is stored in the odd line register R23 (step 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に移る。   Similarly, the EDC calculation processing for the third and subsequent columns of each data frame in the first read block RB1 is performed, and the last column (304th column) in the first read block RB1, that is, the last column of the last odd data frame DF31. When the EDC calculation process ends (YES in step S60), the process proceeds to step S62. Next, in step S62, the selection circuit 97 determines whether or not the read block for which the EDC calculation process is completed is the thirteenth read block RB13. If the selection circuit 97 determines that the read block for which the EDC calculation processing has been completed is not the thirteenth read block RB13 (NO in step S62), the selection circuit 97 proceeds to step S63. Next, the selection circuit 97 determines whether or not the EDC operation processing of the final read block RB27 is completed (Step S63). Then, steps S50 to S63 are repeatedly executed until the EDC calculation processing of the read block RB2 to the thirteenth read block RB13 is completed. When the EDC calculation processing of the thirteenth read block RB13 is completed (YES in step S62), step S64 is performed. Move on.

ここで、第14読み出しブロックRB14における各奇数データフレームの1行1列目のビットデータは、EDC付加時と同様のデータ入力順序でEDC演算した場合の各奇数データフレームにおいて最初に入力される先頭ビットデータX16415である。そこで、第14読み出しブロックRB14のEDC演算処理が開始される前に、ステップS64において、奇数レジスタR22に初期値として、各奇数データフレームの先頭ビットデータX16415の次数と同一次数のベクターβ16415を格納するようにした。 Here, the bit data in the first row and the first column of each odd-numbered data frame in the fourteenth read block RB14 is the first input in each odd-numbered data frame when the EDC operation is performed in the same data input order as when EDC is added. Bit data X 16415 . Therefore, before the EDC operation processing of the fourteenth read block RB14 is started, in step S64, the vector β 16415 having the same order as the order of the first bit data X 16415 of each odd data frame is set as an initial value in the odd register R22. Stored.

以後は、ステップS50〜S63が繰り返し実行され、第14〜第27読み出しブロックRB14〜RB27のEDC演算処理が実行される。
以上説明した実施形態によれば、第1及び第2実施形態の(1)〜(13)の作用効果に加えて以下の効果を奏する。
Thereafter, steps S50 to S63 are repeatedly executed, and the EDC arithmetic processing of the 14th to 27th read blocks RB14 to RB27 is executed.
According to the embodiment described above, the following effects can be obtained in addition to the effects (1) to (13) of the first and second embodiments.

(14)EDCシンドローム生成回路90は、16個のアンド回路A1〜A16と、ベクター生成回路91とを備えた。これにより、アンド回路A1〜A16に入力されるビットデータXに対して、所望の次数kのベクターβを乗算させることができる。従って、上記第1及び第2実施形態のEDC演算処理における第1補正演算及び第2補正演算等の特殊な演算処理を施すことなく、EDCシンドロームEDCSを生成することができる。 (14) The EDC syndrome generation circuit 90 includes 16 AND circuits A1 to A16 and a vector generation circuit 91. As a result, the bit data X k input to the AND circuits A1 to A16 can be multiplied by the vector β k of the desired order k. Therefore, the EDC syndrome EDCS can be generated without performing special arithmetic processing such as the first correction calculation and the second correction calculation in the EDC calculation processing of the first and second embodiments.

(第4実施形態)
以下、本発明を具体化した第4実施形態について、図31に従って説明する。この実施形態の内蔵メモリ部の構成と、BISメモリ部の接続構成が上記第1実施形態と異なっている。以下、第1実施形態との相違点を中心に説明する。
(Fourth embodiment)
Hereinafter, a fourth embodiment of the present invention will be described with reference to FIG. The configuration of the built-in memory unit of this embodiment and the connection configuration of the BIS memory unit are different from those of the first embodiment. Hereinafter, the difference from the first embodiment will be mainly described.

図31に示すように、光ディスクコントローラ10の復調回路11aには、BD4から読み出されたディスクデータが入出力駆動回路5(図1参照)を通じて順次入力される。復調回路11aは、ディスクデータに基づいて復調済データ、すなわちECCクラスタECCc(図40(b)参照)を生成する。復調回路11aは、ECCクラスタECCc内のLDCクラスタLDCcとBISクラスタBIScとを分類し、LDCクラスタLDCcを内蔵メモリ部12e(LDCデータメモリ部)に出力するとともに、ECCクラスタECCc内のBISクラスタBIScをBISメモリ部15aに出力する。   As shown in FIG. 31, the disk data read from the BD 4 is sequentially input to the demodulation circuit 11a of the optical disk controller 10 through the input / output drive circuit 5 (see FIG. 1). The demodulation circuit 11a generates demodulated data, that is, an ECC cluster ECCc (see FIG. 40B) based on the disk data. The demodulation circuit 11a classifies the LDC cluster LDCc and the BIS cluster BISc in the ECC cluster ECCc, outputs the LDC cluster LDCc to the built-in memory unit 12e (LDC data memory unit), and outputs the BIS cluster BISc in the ECC cluster ECCc. The data is output to the BIS memory unit 15a.

内蔵メモリ部12eを構成する2つのバッファメモリM11,M12の各々は、所定バイト数(本実施形態では、2432バイト)のデータを格納可能なメモリ容量となっている。本実施形態では、ECCクラスタECCc内のLDCクラスタLDCc(75392バイト)が31(=75392/2432)個に分割され、2432バイト毎に内蔵メモリ部12の各バッファメモリM11,M12に格納される。すなわち、LDCクラスタLDCcが16行毎に分割され、16行×152列(=2432バイト)のブロック単位(図3の分割ECCクラスタDECCにおけるBISクラスタBISc部分を除いたブロック単位)で各バッファメモリM1,M2に格納される。   Each of the two buffer memories M11 and M12 constituting the built-in memory unit 12e has a memory capacity capable of storing data of a predetermined number of bytes (2432 bytes in this embodiment). In this embodiment, the LDC cluster LDCc (75392 bytes) in the ECC cluster ECCc is divided into 31 (= 75392/2432) pieces and stored in the buffer memories M11 and M12 of the built-in memory unit 12 every 2432 bytes. That is, the LDC cluster LDCc is divided every 16 rows, and each buffer memory M1 is divided into blocks of 16 rows × 152 columns (= 2432 bytes) (block units excluding the BIS cluster BISc portion in the divided ECC cluster DECC of FIG. 3). , M2.

BISメモリ部15aには、復調回路11aからのBISクラスタBIScが格納される。BISメモリ部15aは、第1実施形態と同様の構成を有しており、BISクラスタBISc全体のデータが格納されると、そのBISクラスタBIScをBISシンドローム生成回路16に出力する。   The BIS memory unit 15a stores the BIS cluster BISc from the demodulation circuit 11a. The BIS memory unit 15a has the same configuration as that of the first embodiment. When data of the entire BIS cluster BISc is stored, the BIS cluster BISc is output to the BIS syndrome generation circuit 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の回路構成を単純化することができる。
According to the embodiment described above, the following effects are obtained in addition to the effects (1) to (10) of the first embodiment.
(15) The BIS cluster BISc is stored directly in the BIS memory unit 15a from the demodulation circuit 11a, and only the LDC cluster LDCc in the divided ECC cluster DECC is stored in the built-in memory unit 12e. As a result, the access to the built-in memory unit 12e by the BIS memory unit 15a can be omitted, and the access amount to the built-in memory unit 12e can be reduced. Furthermore, since the BIS memory unit 15a receives only the BIS cluster BISc directly from the demodulation circuit 11a, the process of receiving the LDC cluster LDCc can be omitted. From this, the circuit configuration of the controller 10 can be simplified.

(第5実施形態)
以下、本発明を具体化した第5実施形態について、図32に従って説明する。この実施形態のデスクランブル回路と、BISシンドローム生成回路と、EDC補正回路とが上記第4実施形態と異なっている。以下、第4実施形態との相違点を中心に説明する。
(Fifth embodiment)
Hereinafter, a fifth embodiment of the present invention will be described with reference to FIG. The descrambling circuit, BIS syndrome generation circuit, and EDC correction circuit of this embodiment are different from those of the fourth embodiment. Hereinafter, the difference from the fourth embodiment will be mainly described.

図32に示すように、内蔵メモリ部12eのバッファメモリに順次格納される第1〜第27読出しブロックRB1〜RB27(スクランブルデータsDu)は、外部バッファメモリ6に格納されるとともに、EDCシンドローム生成回路30aに入力される。   As shown in FIG. 32, the first to twenty-seventh read blocks RB1 to RB27 (scrambled data sDu) sequentially stored in the buffer memory of the built-in memory unit 12e are stored in the external buffer memory 6 and the EDC syndrome generation circuit 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に変更してもよい。   The EDC syndrome generation circuit 30a reads the first to twenty-seventh read blocks RB1 to RB27 from the built-in memory unit 12e for each read block RB, and performs EDC calculation based on the scrambled data sDu in each read block RB. Generate EDC syndrome. That is, the EDC syndrome generation circuit 30 a generates an EDC syndrome for the scrambled data sDu for each data frame DF in the read block RB, and stores the EDC syndrome in the EDC memory unit 40. The EDC syndrome generation circuit 30a has substantially the same configuration as the EDC syndrome generation circuit 30 shown in FIG. 8, and the scramble data sDu from the built-in memory unit 12e is replaced with EOR as byte data instead of the descramble data dDu. The signal is input to the circuit 31. The EDC syndrome generation circuit 30a may be changed to the EDC syndrome generation circuit 80 shown in FIG. 23 or the EDC syndrome generation circuit 90 shown in FIG.

EDCメモリ部40は、上記第1実施形態と同様に、各データフレームDFのスクランブルデータsDuに対する最終的なEDCシンドロームを外部バッファメモリ6に格納する。   As in the first embodiment, the EDC memory unit 40 stores the final EDC syndrome for the scrambled data sDu of each data frame DF in the external buffer memory 6.

BISシンドローム生成回路16aは、BISメモリ部15aからBISクラスタBIScを読み出し、該BISクラスタBIScに基づいてBISシンドロームを生成する。BISシンドローム生成回路16aは、生成したBISシンドロームと、BISメモリ部15aから読み出したBISクラスタBIScとを外部バッファメモリ6に格納する。   The BIS syndrome generation circuit 16a reads the BIS cluster BISc from the BIS memory unit 15a, and generates a BIS syndrome based on the BIS cluster BISc. The BIS syndrome generation circuit 16 a stores the generated BIS syndrome and the BIS cluster BISc read from the BIS memory unit 15 a in the external buffer memory 6.

誤り訂正回路50内の訂正回路51aは、外部バッファメモリ6から読み出したLDCシンドローム及びBISシンドロームに基づいて、外部バッファメモリ6に格納されたスクランブルデータsDuからなるデータフレームDF等に対して誤り訂正処理を行う。訂正回路51aは、各種シンドロームに基づいて算出した誤り位置及び誤り数値をEDC補正回路52aに出力する。また、訂正回路51aは、外部バッファメモリ6に格納された誤り訂正後のBISクラスタBISc内のスクランブル値の初期値S0を読み出し、該初期値S0をEDC補正回路52aに出力する。   The correction circuit 51a in the error correction circuit 50 performs error correction processing on the data frame DF or the like including the scrambled data sDu stored in the external buffer memory 6 based on the LDC syndrome and BIS syndrome read from the external buffer memory 6 I do. The correction circuit 51a outputs the error position and error value calculated based on various syndromes to the EDC correction circuit 52a. The correction circuit 51a reads the initial value S0 of the scramble value in the BIS cluster BISc after error correction stored in the external buffer memory 6, and outputs the initial value S0 to the EDC correction circuit 52a.

EDC補正回路52aは、訂正回路51aから入力される初期値S0に基づいて、スクランブル値SCを算出する。EDC補正回路52aは、訂正回路51から入力される誤り位置及び誤り数値に基づくEDCシンドローム補正に加えて、上記算出したスクランブル値SCに基づくEDCシンドローム補正を実行する。   The EDC correction circuit 52a calculates a scramble value SC based on the initial value S0 input from the correction circuit 51a. The EDC correction circuit 52a performs EDC syndrome correction based on the calculated scramble value SC in addition to EDC syndrome correction based on the error position and error value input from the correction circuit 51.

EDCチェック回路54において誤り訂正が正常に終了されたことが確認されると、従来と同様のデスクランブル回路115は、外部バッファメモリ6に格納された誤り訂正後のスクランブルデータsDuをスクランブル処理時と同様の順序にて読み出す。また、デスクランブル回路115は、外部バッファメモリ6に格納された誤り訂正後のBISクラスタBISc内の値をスクランブル値の初期値S0として読み出し、該初期値S0に基づいて順次スクランブル値SCを生成する。そして、デスクランブル回路115は、読み出したスクランブルデータsDuに対して順次デスクランブル処理を施し、デスクランブルデータdDuをインターフェース回路60に出力する。   When it is confirmed in the EDC check circuit 54 that the error correction has been normally completed, the descrambling circuit 115 similar to the prior art performs the scramble processing on the scrambled data sDu after error correction stored in the external buffer memory 6. Read in the same order. Also, the descrambling circuit 115 reads the value in the BIS cluster BISc after error correction stored in the external buffer memory 6 as the initial value S0 of the scramble value, and sequentially generates the scramble value SC based on the initial value S0. . The descrambling circuit 115 sequentially performs descrambling processing on the read scrambled data sDu, and outputs the descrambling data dDu to the interface circuit 60.

以上説明した実施形態によれば、第4実施形態の(15)の作用効果に加えて以下の効果を奏する。
(16)第4実施形態のデスクランブル回路20がデスクランブル処理に用いるスクランブル値SCは、復調回路11aがデータを読み出すために用いたBD4のアドレス情報、あるいは誤り訂正前のBISクラスタBISc内の値を用いることになる。誤り訂正前にデータが誤っている可能性がある場合には、誤り訂正前のBISクラスタBISc内の値を用いるのではなく、光ディスクコントローラ10内にあるエラーが含まれない値であって、復調回路11が用いたアドレス情報をスクランブル値SCとして用いる。この場合、復調回路11が正しいアドレスを読んでいないと、誤ったスクランブル値SCを用いてしまうことになる。これにより、誤り訂正及びEDCチェックは正しく終了するものの、デスクランブル処理が正しく終了しないという問題が発生する場合がある。
According to the embodiment described above, the following effect is obtained in addition to the effect (15) of the fourth embodiment.
(16) The scramble value SC used for the descrambling process by the descrambling circuit 20 of the fourth embodiment is the address information of the BD4 used for reading the data by the demodulation circuit 11a or the value in the BIS cluster BISc before error correction. Will be used. If there is a possibility that data is incorrect before error correction, the value in the BIS cluster BISc before error correction is not used, but the value in the optical disk controller 10 does not include an error and is demodulated. The address information used by the circuit 11 is used as the scramble value SC. In this case, if the demodulation circuit 11 does not read the correct address, an incorrect scramble value SC is used. This may cause a problem that the descrambling process does not end correctly although error correction and EDC check end correctly.

これに対して、本実施形態のデスクランブル回路115では、誤り訂正後のBISクラスタBISc内の値をスクランブル値SCとして用いることができる。従って、デスクランブル回路115は、誤り訂正後のBISクラスタBISc内の値を用いて、誤り訂正回路50で誤り訂正及びEDCチェックまで終了したデータに対してデスクランブル処理を施すことができる。その結果、ホストコンピュータに、より正しいデータを送ることができるようになる。   On the other hand, in the descrambling circuit 115 of this embodiment, the value in the BIS cluster BISc after error correction can be used as the scramble value SC. Therefore, the descrambling circuit 115 can perform descrambling processing on the data that has been subjected to error correction and EDC check by the error correction circuit 50, using the values in the BIS cluster BISc after error correction. As a result, more correct data can be sent to the host computer.

なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記各実施形態では、デスクランブル回路20,70から入力されるデスクランブルデータdDuに基づいてEDCシンドロームEDCSをEDCシンドローム生成回路30,80,90にて生成するようにした。これに限らず、例えば図33に示すように、従来と同様のEDCチェック回路116により、誤り訂正後のデスクランブルデータに基づいてEDCチェック(EDCシンドロームの生成)を行うようにしてもよい。
In addition, the said embodiment can also be implemented in the following aspects which changed this suitably.
In each of the above embodiments, the EDC syndrome generation circuit 30, 80, 90 generates the EDC syndrome EDCS based on the descrambling data dDu input from the descrambling circuits 20, 70. For example, as shown in FIG. 33, an EDC check (generation of EDC syndrome) may be performed based on descrambled data after error correction by an EDC check circuit 116 similar to the conventional one.

・上記第4及び第5実施形態におけるコントローラ10に、第2実施形態のデスクランブル回路70、EDCシンドローム生成回路80あるいは第3実施形態のEDCシンドローム生成回路90を適用するようにしてもよい。   The descrambling circuit 70, the EDC syndrome generation circuit 80 of the second embodiment, or the EDC syndrome generation circuit 90 of the third embodiment may be applied to the controller 10 in the fourth and fifth embodiments.

・上記第1実施形態において、デスクランブル回路20とEDCシンドローム生成回路30とが独立して内蔵メモリ部12にアクセスするようにしてもよい。すなわち、この場合のデスクランブル回路20のEOR回路21及びEDCシンドローム生成回路30のEOR回路31には、内蔵メモリ部12から分割ECCクラスタDECC内のスクランブルデータsDuが略同時に入力される。   In the first embodiment, the descrambling circuit 20 and the EDC syndrome generation circuit 30 may access the built-in memory unit 12 independently. That is, the scrambled data sDu in the divided ECC cluster DECC is input from the built-in memory unit 12 substantially simultaneously to the EOR circuit 21 of the descrambling circuit 20 and the EOR circuit 31 of the EDC syndrome generation circuit 30 in this case.

・上記各実施形態では、内蔵メモリ部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におけるシフトバイト数(シフトビット数)が変更される。 In each of the above embodiments, the size of the divided ECC cluster DECC stored in each buffer memory M1, M2 of the built-in memory unit 12 is not particularly limited. For example, the data size of the divided ECC cluster DECC may be 32 rows × 155 columns. In this case, the buffer memories M1 and M2 of the built-in memory unit 12 are changed to a memory capacity that can store one divided ECC cluster DECC. In this case, the number of rows in one read block RB is changed. When the number of rows of the read block RB is changed in this way, the 209 shift calculator 25 of the descrambling circuits 20 and 70, the 209 shift calculator 35 of the EDC syndrome generation circuits 30 and 80, and the EDC syndrome generation circuit 90 The number of shift bytes (number of shift bits) in the β- 1664 arithmetic unit B17 is changed.

・上記第3実施形態のデスクランブル回路70におけるデータ処理順序を第1実施形態と同様のデータ処理順序に変更してもよい。すなわち、第3実施形態のデスクランブル回路70は、各読み出しブロックRBの中で、データブロックDBにおけるデータ配置と同様の順序にて各スクランブルデータを読み出し、その読み出したスクランブルデータに対して順にデスクランブル処理を実行してもよい。この場合、EDCシンドローム生成回路90における偶数ラインレジスタR22及び奇数ラインレジスタR23を省略してもよい。   The data processing order in the descrambling circuit 70 of the third embodiment may be changed to the same data processing order as in the first embodiment. That is, the descrambling circuit 70 of the third embodiment reads each scrambled data in each read block RB in the same order as the data arrangement in the data block DB, and sequentially descrambles the read scrambled data. Processing may be executed. In this case, the even line register R22 and the odd line register R23 in the EDC syndrome generation circuit 90 may be omitted.

・上記第2及び第3実施形態のデスクランブル回路70におけるデータ処理順序は特に制限されない。例えば、まず図24(a)に示すように、データフレームDF0→DF4→DF8→DF12→DF16→DF20→DF24→DF28(偶数データフレーム群)の1列目のデスクランブル処理を行う。次に、図24(c)に示すように、データフレームDF1→DF5→DF9→DF13→DF17→DF21→DF25→DF29(奇数データフレーム群)の1列目のデスクランブル処理を行うようにしてもよい。   The data processing order in the descrambling circuit 70 of the second and third embodiments is not particularly limited. For example, first, as shown in FIG. 24A, the descrambling process of the first column of the data frame DF0 → DF4 → DF8 → DF12 → DF16 → DF20 → DF24 → DF28 (even data frame group) is performed. Next, as shown in FIG. 24 (c), the descrambling process in the first column of the data frame DF1-> DF5-> DF9-> DF13-> DF17-> DF21-> DF25-> DF29 (odd data frame group) may be performed. Good.

あるいは、図24(a)、(b)に示すような偶数データフレーム群の1列目のデスクランブル処理が終了した後に、同偶数データフレーム群の2列目のデスクランブル処理を行うようにしてもよい。このように、偶数データフレームのデスクランブル処理を全て終了した後に、奇数データフレームのデスクランブル処理に移るようにすることにより、例えば第2実施形態のデスクランブル回路70内の偶数作業レジスタR4及び奇数作業レジスタR5を共通の作業レジスタに変更することができる。同様に、第3実施形態のEDCシンドローム生成回路90内の偶数ラインレジスタR22及び奇数ラインレジスタR23を共通のラインレジスタに変更することができる。   Alternatively, after the descrambling process of the first column of the even data frame group as shown in FIGS. 24A and 24B is completed, the descrambling process of the second column of the even data frame group is performed. Also good. In this way, after all the descrambling processing of the even data frame is completed, the processing is shifted to the descrambling processing of the odd data frame, for example, the even work register R4 and the odd work register in the descrambling circuit 70 of the second embodiment. The work register R5 can be changed to a common work register. Similarly, the even line register R22 and the odd line register R23 in the EDC syndrome generation circuit 90 of the third embodiment can be changed to a common line register.

・上記各実施形態では、各データフレームDFを外部バッファメモリ6に、32行×64列のブロックで格納するようにしたが、このブロックサイズに特に制限はない。例えば、各データフレームDFを64行×32列のブロックで外部バッファメモリ6に格納するようにしてもよい。このように格納すると、全偶数データフレームを外部バッファメモリ6の行方向に並んで格納させることができるとともに、全奇数データフレームを外部バッファメモリ6の行方向に並んで格納させることができる。そのため、デスクランブル回路70において、例えばデータフレームDF0,DF2,DF4,DF6,…,DF28,DF30の同一列のスクランブルデータに対して連続的にデスクランブル処理することにより、128(=8×16)バイトのデスクランブルデータを外部バッファメモリ6の同一行に格納することができる。   In each of the above embodiments, each data frame DF is stored in the external buffer memory 6 as a block of 32 rows × 64 columns, but this block size is not particularly limited. For example, each data frame DF may be stored in the external buffer memory 6 in a block of 64 rows × 32 columns. By storing in this way, all even data frames can be stored side by side in the row direction of the external buffer memory 6 and all odd data frames can be stored side by side in the row direction of the external buffer memory 6. Therefore, the descrambling circuit 70 continuously descrambles the scrambled data in the same column of the data frames DF0, DF2, DF4, DF6,..., DF28, DF30, for example, 128 (= 8 × 16). Byte descrambling data can be stored in the same row of the external buffer memory 6.

・上記第1及び第2実施形態におけるデスクランブル回路20,70の108シフト演算器26を省略してもよい。この場合、例えば各初期値毎に、その初期値から生成多項式Φ(x)に従って108バイト分シフトさせて得られるスクランブル値SC(S0・γ108)を予め算出してメモリ等に格納しておいてもよい。 The 108 shift calculator 26 of the descrambling circuits 20 and 70 in the first and second embodiments may be omitted. In this case, for example, for each initial value, a scramble value SC (S0 · γ 108 ) obtained by shifting 108 bytes from the initial value according to the generator polynomial Φ (x) is calculated in advance and stored in a memory or the like. May be.

・上記第1及び第2実施形態におけるデスクランブル回路20,70の偶数レジスタR2及び奇数レジスタR3を省略してもよい。あるいは、第3実施形態におけるEDCシンドローム生成回路90の偶数レジスタR20及び奇数レジスタR21を省略してもよい。この場合、例えば各読み出しブロックRBの各偶数データフレーム及び各奇数データフレームにおける1行1列目の先頭スクランブルデータ(先頭ビットデータ)に対するスクランブル値SC(ベクターβ)を予め算出してメモリ等に格納しておいてもよい。 The even register R2 and the odd register R3 of the descrambling circuits 20 and 70 in the first and second embodiments may be omitted. Alternatively, the even register R20 and the odd register R21 of the EDC syndrome generation circuit 90 in the third embodiment may be omitted. In this case, for example, a scramble value SC (vector β k ) for the first scrambled data (first bit data) in the first row and first column in each even data frame and each odd data frame of each read block RB is calculated in advance and stored in a memory or the like. It may be stored.

・上記第1及び第2実施形態におけるEDCシンドローム生成回路30,80の−211シフト演算器37を省略してもよい。この場合、例えば偶数データフレームについては、第1〜第14読み出しブロックRB1〜RB14のデータに対するEDC演算値E14(76)、すなわちバイトデータXがEOR回路31に入力されたときに算出されるEDC演算値E14(76)を中間値EDCsとは別に格納する。そして、第15〜第27読み出しブロックRB15〜RB27のデータに対するEDC演算処理は、上記EDC演算値E14(76)を読み出さずに実行する。最後に、第27読み出しブロックRB27の各偶数データフレームにおける最終行最終列のバイトデータX108が入力されたときのEDC演算値E14(76)に第1補正演算施した後の演算結果と、上記EDC演算値E14(76)との排他的論理和を取ることで、上記(1)式と同様のEDCシンドロームEDCSが生成される。 The -211 shift calculator 37 of the EDC syndrome generation circuits 30 and 80 in the first and second embodiments may be omitted. In this case, for example, for the even data frame, it is calculated when EDC calculated value for the data of the first to fourteenth read block RB1~RB14 E14 (76), i.e. the byte data X 0 is input to the EOR circuit 31 EDC The calculated value E14 (76) is stored separately from the intermediate value EDCs. Then, the EDC calculation processing for the data of the fifteenth to twenty-seventh read blocks RB15 to RB27 is executed without reading the EDC calculation value E14 (76). Finally, the calculation result obtained by performing first correction operation in EDC calculated value E14 (76) at which the byte data X 108 of the last row last column is entered in each even data frame of the 27 read block RB27, the By taking an exclusive OR with the EDC operation value E14 (76), an EDC syndrome EDCS similar to the above equation (1) is generated.

・上記各実施形態における補正メモリ部53を省略してもよい。この場合、EDC補正回路52は、外部バッファメモリ6からEDCシンドロームEDCSを読み出しながら、該EDCシンドロームEDCSの補正を行う。   The correction memory unit 53 in each of the above embodiments may be omitted. In this case, the EDC correction circuit 52 corrects the EDC syndrome EDCS while reading the EDC syndrome EDCS from the external buffer memory 6.

・上記実施形態では、内蔵メモリ部12、LDCメモリ部14、BISメモリ部15及びEDCメモリ部40の内部構成を図5の構成に具体化したが、同一時間において、一方のバッファメモリをデータ保存用(シンドローム保存用)として使用し、他方のバッファメモリをアクセス用(データ出力用、シンドローム出力用)として使用する構成であれば、特に制限されない。   In the above embodiment, the internal configuration of the built-in memory unit 12, the LDC memory unit 14, the BIS memory unit 15 and the EDC memory unit 40 is embodied in the configuration of FIG. 5, but one buffer memory is stored in the same time. There is no particular limitation as long as it is used for use (for saving syndrome) and the other buffer memory is used for access (for data output and for syndrome output).

・上記各実施形態では、内蔵メモリ部12、LDCメモリ部14、BISメモリ部15及びEDCメモリ部40を2つのバッファメモリM1,M2から構成するようにしたが、1つのバッファメモリあるいは3つ以上のバッファメモリから構成するようにしてもよい。また、1つのバッファメモリに対して、同時にデータの格納とデータの読み出しを行えるように構成してもよい。   In each of the above embodiments, the built-in memory unit 12, the LDC memory unit 14, the BIS memory unit 15, and the EDC memory unit 40 are configured by two buffer memories M1 and M2, but one buffer memory or three or more The buffer memory may be configured. Further, it may be configured such that data can be simultaneously stored and read from one buffer memory.

・上記各実施形態におけるLDCメモリ部14を省略してもよい。なお、この場合は、LDCシンドローム生成回路13内にパリティ付加ブロックPBの全列(304列)分のLDCシンドローム演算器を設けることが好ましい。また、LDCシンドローム生成回路13にて生成されるLDCシンドロームの中間値を外部バッファメモリ6に格納するようにしてもよい。   In the above embodiments, the LDC memory unit 14 may be omitted. In this case, it is preferable to provide LDC syndrome calculators for all columns (304 columns) of the parity addition block PB in the LDC syndrome generation circuit 13. Further, an intermediate value of the LDC syndrome generated by the LDC syndrome generation circuit 13 may be stored in the external buffer memory 6.

・上記各実施形態におけるBISメモリ部15を省略してもよい。なお、この場合、BISシンドローム生成回路16は、内蔵メモリ部12から直接BISクラスタBIScを読み出すようにする。このとき、例えばBISシンドローム生成回路16にて生成されるBISシンドロームの中間値を外部バッファメモリ6に格納するようにしてもよい。また、BISシンドローム生成回路16と外部バッファメモリ6との間に、BISシンドロームの中間値を格納するシンドロームメモリを設けるようにしてもよい。   The BIS memory unit 15 in each of the above embodiments may be omitted. In this case, the BIS syndrome generation circuit 16 reads the BIS cluster BISc directly from the built-in memory unit 12. At this time, for example, an intermediate value of the BIS syndrome generated by the BIS syndrome generation circuit 16 may be stored in the external buffer memory 6. A syndrome memory for storing an intermediate value of the BIS syndrome may be provided between the BIS syndrome generation circuit 16 and the external buffer memory 6.

・上記各実施形態におけるEDCメモリ部40を省略してもよい。なお、この場合は、EDCシンドローム生成回路30,80,90内に全データフレームの個数(30個)分のEDCシンドローム演算器(例えば、EOR回路31や各種演算器34〜37等)を設けることが好ましい。   In the above embodiments, the EDC memory unit 40 may be omitted. In this case, EDC syndrome calculators (for example, EOR circuit 31 and various calculators 34 to 37) corresponding to the number of all data frames (30) are provided in the EDC syndrome generation circuits 30, 80, 90. Is preferred.

以上の様々な実施の形態をまとめると、以下のようになる。
(付記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個のアンド回路に入力されるときに、前記奇数ラインレジスタから入力されるベクターを出力し、
前記各読み出しブロックの前記各データフレームにおける(N+1)行目以降のビットデータを含む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選択回路と、を備えることを特徴とするデスクランブル回路。
The various embodiments described above can be summarized as follows.
(Appendix 1)
A predetermined number of data frames are scrambled, the scrambled data frame is converted into a data block of a predetermined size, and a parity addition block in which parity is added to each column of the data block is generated. An error correction device that corrects an error in data in which a cluster is generated by performing interleaving processing on the cluster and the cluster is modulated,
A demodulation circuit that demodulates the modulated data and generates clusters as demodulated data;
A built-in memory unit in which a divided cluster obtained by dividing the cluster from the demodulation circuit into a predetermined number of rows is stored;
Each data in the parity addition block generated by deinterleaving the divided cluster is input in the column direction through the built-in memory unit, and a parity calculation result is generated for each column of the parity addition block based on the data. A parity operation result generation circuit;
Through the built-in memory unit, de-interleave processing is performed on the divided clusters, each scrambled data in the data block is input as a read block in the column direction, and descramble data is generated by performing descrambling processing on each scrambled data A descrambling circuit,
An error correction circuit that performs error correction processing on the descrambling data based on the parity calculation result, and
The descrambling circuit includes:
A first exclusive OR circuit to which the scrambled data from the built-in memory unit is input;
A first shift computing unit that generates a new scramble value by shifting the input scramble value by one byte according to a predetermined first generator polynomial;
The input scramble value is
{(Total number of bytes in the column direction of the data block) + 1− (total number of bytes in the column direction of each read block)}
A second shift calculator for generating a new scrambled value by shifting according to the first generator polynomial for bytes;
One of the scramble values input from the first shift calculator and the second shift calculator according to the position of the scrambled data input to the first exclusive OR circuit in the data block. And a first selection circuit that outputs the scramble value to the first exclusive OR circuit, the first shift calculator, and the second shift calculator.
(Appendix 2)
The parity calculation result generation circuit performs a deinterleaving process on the divided clusters stored in the built-in memory unit, reads each data in the parity addition block in a column direction,
The error correction apparatus according to claim 1, wherein the descrambling circuit performs deinterleaving processing on the divided clusters stored in the built-in memory unit, and reads each scrambled data in the data block in a column direction. .
(Appendix 3)
The built-in memory unit is subjected to deinterleave processing from the demodulation circuit and stores the divided clusters.
The parity calculation result generation circuit reads the parity addition block stored in the built-in memory unit in a column direction,
The error correction apparatus according to claim 1, wherein the descrambling circuit reads the data block stored in the built-in memory unit in a column direction.
(Appendix 4)
The first data frame processed in the data block and every other data frame processed from the data frame are even data frames, and the data frame processed next to the even data frames is odd data frames. sometimes,
The descrambling circuit includes:
A first even register in which a scramble value for the scrambled data in the last row of the first column in the even data frame of each read block is stored through the first shift calculator;
A first odd register in which a scramble value for the scrambled data in the last row of the first column in the odd data frame of each read block is stored through the first shift computing unit;
The first selection circuit includes the first shift computing unit, the second shift computing unit, and the first even number according to a position in the data block of the scrambled data input to the first exclusive OR circuit. One of the scramble values input from the register and the first odd register is output to the first exclusive OR circuit, the first shift calculator, and the second shift calculator. The error correction device according to any one of appendices 1 to 3, characterized by:
(Appendix 5)
The descrambling circuit includes:
A third shift calculator that generates a new scramble value by shifting the input scramble value by 108 bytes according to the first generator polynomial;
In the initial value setting at the start of descrambling processing in each cluster,
The first even register stores an initial value of a scramble value set according to each cluster,
The error correction apparatus according to appendix 4, wherein the initial value is stored in the first odd register through the third shift computing unit.
(Appendix 6)
The descrambling circuit includes:
An even working register in which a scramble value for the scrambled data of the last row of each column in the even data frame of each read block is stored through the second shift computing unit;
An odd work register in which a scramble value for the scrambled data of the last row of each column in the odd data frame of each read block is stored through the second shift computing unit;
The first selection circuit includes the first shift computing unit, the second shift computing unit, and the first even number according to a position in the data block of the scrambled data input to the first exclusive OR circuit. One of the scramble values input from the register, the first odd register, the even work register, and the odd work register is converted into the first exclusive OR circuit, the first shift arithmetic unit, 6. The error correction apparatus according to appendix 4 or 5, wherein the error correction apparatus outputs to the second shift computing unit.
(Appendix 7)
The first selection circuit includes:
When the first scramble data in the first row and the first column in each even data frame of each read block is input to the first exclusive OR circuit, the scramble value input from the first even register is output. ,
When the first scrambled data in the first row and the first column in each odd-numbered data frame of each read block is input to the first exclusive OR circuit, the scramble value input from the first odd-numbered register is output. ,
When scrambled data from the second row of each column in each data frame of each read block is input to the first exclusive OR circuit, a scramble value input from the first shift calculator is output. And
When the scrambled data of the first row of each column after the second column in each data frame of each read block is input to the first exclusive OR circuit, it is input from the second shift arithmetic unit. The error correction apparatus according to appendix 5, wherein a scramble value is output.
(Appendix 8)
The first selection circuit includes:
When the first scramble data in the first row and the first column in each even data frame of each read block is input to the first exclusive OR circuit, the scramble value input from the first even register is output. ,
When the first scrambled data in the first row and the first column in each odd-numbered data frame of each read block is input to the first exclusive OR circuit, the scramble value input from the first odd-numbered register is output. ,
When the scramble data of the first row of each column after the second column in each even data frame of each read block is input to the first exclusive OR circuit, the scramble is input from the even work register. Output the value
When the scrambled data of the first row of each column after the second column in each odd data frame of each read block is input to the first exclusive OR circuit, the scramble input from the odd work register Output the value
When scrambled data from the second row of each column in each data frame of each read block is input to the first exclusive OR circuit, a scramble value input from the first shift calculator is output. The error correction apparatus according to appendix 6, wherein:
(Appendix 9)
The error correction according to any one of appendices 1 to 8, wherein the descrambling circuit reads each scrambled data in the same order as the data arrangement in the data block in each read block. apparatus.
(Appendix 10)
The supplementary note 6 or 8, wherein the descrambling circuit sequentially reads out the scrambled data in the same column of the data frame stored side by side in the row direction of the external memory in each of the read blocks. The error correction device described.
(Appendix 11)
The first selection circuit includes:
Appendix 7 wherein the initial value is output to the first exclusive OR circuit when the top data in the scramble process in each odd data frame is input to the first exclusive OR circuit. 10. The error correction device according to any one of 10.
(Appendix 12)
An EDC syndrome generation circuit that receives the descrambling data from the descrambling circuit and generates an EDC syndrome based on the descrambling data;
An error correction apparatus according to any one of appendices 1 to 11, further comprising: an EDC memory unit that stores an intermediate result of the EDC syndrome generated by the EDC syndrome generation circuit for each data frame. .
(Appendix 13)
The EDC syndrome generation circuit includes:
A second exclusive OR that generates an EDC operation value by taking an exclusive OR of the descrambling data input as byte data from the descrambling circuit and a shift operation value input from the second selection circuit Circuit,
The EDC operation value input from the second exclusive OR is weighted to shift by 1 byte according to a predetermined second generator polynomial to generate a shift operation value, and the shift operation value is stored in the EDC memory unit. A first weighting circuit stored in
For the EDC operation value input from the second exclusive OR,
{(Total number of bytes in the column direction of the data block) + 1− (number of bytes in the column direction of each read block)}
A second weighting circuit that generates a shift operation value by weighting according to the second generator polynomial for bytes,
A shift operation value is generated by weighting an EDC operation value input from the second exclusive OR circuit by 108 bytes according to the second generator polynomial, and the shift operation value is generated in the EDC memory unit. A third weighting circuit stored in
A third exclusive OR circuit that generates a shift operation value by taking an exclusive OR of the shift operation value from the second weighting circuit and the intermediate result of the EDC syndrome from the EDC memory unit. ,
The second selection circuit includes the first weighting circuit, the second weighting circuit, and the third exclusive logic according to a position in the data block of the byte data input to the second exclusive OR circuit. 13. The error correction apparatus according to appendix 12, wherein any one of the shift operation values input from the sum circuit is output to the second exclusive OR circuit.
(Appendix 14)
A predetermined number of data frames are scrambled, the scrambled data frame is converted into a data block of a predetermined size, and a parity addition block in which parity is added to each column of the data block is generated. An error correction device that corrects an error in data in which a cluster is generated by performing interleaving processing on the cluster and the cluster is modulated,
A demodulation circuit that demodulates the modulated data and generates clusters as demodulated data;
A built-in memory unit in which a divided cluster obtained by dividing the cluster from the demodulation circuit into a predetermined number of rows is stored;
Each data in the parity addition block generated by deinterleaving the divided cluster is input in the column direction through the built-in memory unit, and a parity calculation result is generated for each column of the parity addition block based on the data. A parity operation result generation circuit;
An EDC syndrome generation circuit that performs deinterleaving processing on the divided clusters through the built-in memory unit, inputs each scrambled data in the data block as a read block in a column direction, and generates an EDC syndrome based on the scrambled data; ,
An EDC memory unit that stores an intermediate result of the EDC syndrome generated by the EDC syndrome generation circuit for each data frame;
An error correction circuit that performs error correction processing on the scrambled data based on the parity calculation result, and
The EDC syndrome generation circuit includes:
A second exclusive OR circuit that generates an EDC operation value by taking an exclusive OR of the scrambled data input as byte data from the built-in memory unit and the shift operation value input from the second selection circuit When,
The EDC operation value input from the second exclusive OR is weighted to shift by 1 byte according to a predetermined second generator polynomial to generate a shift operation value, and the shift operation value is stored in the EDC memory unit. A first weighting circuit stored in
For the EDC operation value input from the second exclusive OR,
{(Total number of bytes in the column direction of the data block) + 1− (number of bytes in the column direction of each read block)}
A second weighting circuit that generates a shift operation value by weighting according to the second generator polynomial for bytes,
A shift operation value is generated by weighting an EDC operation value input from the second exclusive OR circuit by 108 bytes according to the second generator polynomial, and the shift operation value is generated in the EDC memory unit. A third weighting circuit stored in
A third exclusive OR circuit that generates a shift operation value by taking an exclusive OR of the shift operation value from the second weighting circuit and the intermediate result of the EDC syndrome from the EDC memory unit. ,
The second selection circuit includes the first weighting circuit, the second weighting circuit, and the third exclusive logic according to a position in the data block of the byte data input to the second exclusive OR circuit. An error correction apparatus, wherein any one of shift operation values input from a sum circuit is output to the second exclusive OR circuit.
(Appendix 15)
A correction memory unit storing an EDC syndrome stored in an external memory from the EDC syndrome generation circuit;
Based on the error position and error value calculated by the error correction circuit, the EDC syndrome stored in the correction memory unit is corrected, and the scramble value calculated from the initial value of the scramble value in the BIS cluster of the cluster 15. The error correction apparatus according to appendix 14, further comprising: an EDC correction circuit that corrects the EDC syndrome based on the EDC.
(Appendix 16)
16. The error correction apparatus according to appendix 14 or 15, wherein the EDC syndrome generation circuit reads the byte data in the read block in the same order as the data arrangement in the data block.
(Appendix 17)
Note that the EDC syndrome generation circuit sequentially reads the byte data in the same column of the data frame stored side by side in the row direction of the external memory in each reading block in order. 15. The error correction device according to 15.
(Appendix 18)
The EDC syndrome generation circuit includes:
A shift operation value is generated by weighting the EDC operation value input from the second exclusive OR circuit by a reverse shift of 211 bytes according to the second generator polynomial, and the shift operation value is generated by the EDC. 18. The error correction apparatus according to any one of appendices 13 to 17, further comprising a fourth weighting circuit stored in the memory unit.
(Appendix 19)
The first data frame processed in the data block and every other data frame processed from the data frame are even data frames, and the data frame processed next to the even data frames is odd data frames. sometimes,
In the EDC memory unit,
The EDC operation value generated when the byte data of the last row and last column in each data frame of each read block is input to the second exclusive OR circuit is converted into the EDC syndrome value through the first weighting circuit. Stored as an intermediate result,
An EDC operation value generated when byte data of the last row and last column in each even data frame of the last read block input last to the EDC syndrome generation circuit is input to the second exclusive OR circuit. , Stored as the EDC syndrome through the third weighting circuit,
The EDC operation value generated when the byte data of the last row and last column in each odd data frame of the last read block is input to the second exclusive OR circuit is stored as the EDC syndrome. The error correction device according to any one of Supplementary notes 13 to 18, which is characterized by the following.
(Appendix 20)
The first data frame processed in the data block and every other data frame processed from the data frame are even data frames, and the data frame processed next to the even data frames is odd data frames. sometimes,
In the EDC memory unit,
An EDC operation value generated when the last byte data at the time of EDC addition in each even data frame is input to the second exclusive OR circuit is stored as an intermediate result of the EDC syndrome through the fourth weighting circuit. The error correction device according to appendix 18, characterized in that:
(Appendix 21)
The EDC syndrome generation circuit includes:
An EDC operation value generated when byte data of the last row of each column in each data frame of each read block is input to the second exclusive OR circuit is converted to a shift operation value through the second weighting circuit. With working memory stored as
The working memory outputs the stored shift operation value to the third exclusive OR circuit and the second selection circuit,
The second selection circuit includes the first weighting circuit, the working memory, and the third exclusive OR circuit according to a position in the data block of the byte data input to the second exclusive OR circuit. 21. The error correction apparatus according to any one of appendices 13 to 20, wherein any one of the shift operation values input from is output to the second exclusive OR circuit.
(Appendix 22)
The second selection circuit includes:
When the byte data from the second row in each data frame of each read block is input to the second exclusive OR circuit, the shift operation value input from the first weighting circuit is output,
Input from the second weighting circuit when byte data of the first row of each column excluding the first column and the last column in each data frame of each read block is input to the second exclusive OR circuit Output the shift operation value
Shift operation value input from the third exclusive OR circuit when byte data of the first row of the last column in each data frame of each read block is input to the second exclusive OR circuit The error correction apparatus according to any one of appendices 13 to 20, characterized in that:
(Appendix 23)
The second selection circuit includes:
When the byte data from the second row in each data frame of each read block is input to the second exclusive OR circuit, the shift operation value input from the first weighting circuit is output,
When the byte data of the first row of each column excluding the first column and the last column in each data frame of each read block is input to the second exclusive OR circuit, it is input from the working memory. Output the shift operation value,
Shift operation value input from the third exclusive OR circuit when byte data of the first row of the last column in each data frame of each read block is input to the second exclusive OR circuit The error correction apparatus according to appendix 21, wherein:
(Appendix 24)
The EDC syndrome generation circuit includes:
A first inverse shift computing unit group in which N first inverse shift computing units that reversely shift an input vector by one bit in accordance with a predetermined second generator polynomial to generate a new vector; A vector input from the last stage of the N inverse shift calculators is
{(Total number of bits in the column direction in the data block) − (Number of bits in the column direction of each read block)}
A vector generation circuit configured to include a second inverse shift computing unit that performs a reverse shift according to the second generation polynomial to generate a new vector by a bit amount;
N AND circuits to which the descrambling data is input as bit data from the descrambling circuit and a vector to be input to the N first inverse shift computing units is input;
A fourth exclusive OR circuit that takes an exclusive OR of the operation results from the N AND circuits and generates an intermediate result of the EDC syndrome;
According to the position of the bit data input to the AND circuit in the data block, any one of vectors input from the first inverse shift calculator and the second inverse shift calculator in the final stage 13. The error correction apparatus according to appendix 12, further comprising a third selection circuit that outputs a vector to the first inverse shift computing unit in the first stage.
(Appendix 25)
A predetermined number of data frames are scrambled, the scrambled data frame is converted into a data block of a predetermined size, and a parity addition block in which parity is added to each column of the data block is generated. An error correction device that corrects an error in data in which a cluster is generated by performing interleaving processing on the cluster and the cluster is modulated,
A demodulation circuit that demodulates the modulated data and generates clusters as demodulated data;
A built-in memory unit in which a divided cluster obtained by dividing the cluster from the demodulation circuit into a predetermined number of rows is stored;
Each data in the parity addition block generated by deinterleaving the divided cluster is input in the column direction through the built-in memory unit, and a parity calculation result is generated for each column of the parity addition block based on the data. A parity operation result generation circuit;
An EDC syndrome generation circuit that performs deinterleaving processing on the divided clusters through the built-in memory unit, inputs each scrambled data in the data block as a read block in a column direction, and generates an EDC syndrome based on the scrambled data; ,
An EDC memory unit that stores an intermediate result of the EDC syndrome generated by the EDC syndrome generation circuit for each data frame;
An error correction circuit that performs error correction processing on the scrambled data based on the parity calculation result, and
The EDC syndrome generation circuit includes:
A first inverse shift computing unit group in which N first inverse shift computing units that reversely shift an input vector by one bit in accordance with a predetermined second generator polynomial to generate a new vector; A vector input from the last stage of the N inverse shift calculators is
{(Total number of bits in the column direction in the data block) − (Number of bits in the column direction of each read block)}
A vector generation circuit configured to include a second inverse shift computing unit that performs a reverse shift according to the second generation polynomial to generate a new vector by a bit amount;
N AND circuits to which the scrambled data is input as bit data from the demodulation circuit and a vector to be input to the N first inverse shift calculators are input;
A fourth exclusive OR circuit that takes an exclusive OR of the operation results from the N AND circuits and generates an intermediate result of the EDC syndrome;
According to the position of the bit data input to the AND circuit in the data block, any one of vectors input from the first inverse shift calculator and the second inverse shift calculator in the final stage And a third selection circuit for outputting a vector to the first inverse shift computing unit in the first stage.
(Appendix 26)
The first data frame processed in the data block and every other data frame processed from the data frame are even data frames, and the data frame processed next to the even data frames is odd data frames. sometimes,
The EDC syndrome generation circuit includes:
A second even register in which a vector multiplied by the bit data of the last row of the first column in the even data frame of each read block is stored through the first inverse shift computing unit of the last stage;
A second odd register in which a vector multiplied by the bit data of the first row of the first column in the odd data frame of each read block is stored through the first inverse shift computing unit of the final stage;
The third selection circuit includes a first inverse shift computing unit, a second inverse shift computing unit, and a second even number in the final stage according to the position of the bit data input to the AND circuit in the data block. 26. The error correction apparatus according to appendix 24 or 25, wherein any one of a register and a vector input from the second odd register is output to the first inverse shift computing unit in the first stage.
(Appendix 27)
The EDC syndrome generation circuit includes:
In the initial value setting at the start of EDC calculation processing in each cluster,
The second even register stores a 16415th-order vector generated according to the second generator polynomial,
27. The error correction apparatus according to appendix 26, wherein the second odd number register stores a 15551th-order vector generated according to the second generator polynomial.
(Appendix 28)
The EDC syndrome generation circuit includes:
An even line register in which a vector multiplied by the bit data of the last row of each column in the even data frame of each read block is stored through the second inverse shift calculator;
An odd line register in which a vector multiplied by the bit data of the last row of each column in the odd data frame of each read block is stored through the second inverse shift calculator,
The third selection circuit includes a first reverse shift computing unit at the final stage, the second even register, the second odd register, according to the position of the bit data input to the AND circuit in the data block. 28. The error correction apparatus according to appendix 26 or 27, wherein any one of vectors input from the even line register and the odd line register is output to the first inverse shift computing unit in the first stage.
(Appendix 29)
The third selection circuit includes:
When bit data for N bits including the first bit data in the first row and the first column in each even data frame of each read block is input to the N AND circuits, it is input from the second even register. Output vector,
When bit data for N bits including the first bit data in the first row and the first column in each odd data frame of each read block is input to the N AND circuits, it is input from the second odd register. Output vector,
When the bit data of N bits including the bit data of the first row of each column after the second column in each even data frame of each read block is input to the N AND circuits, the even line The vector input from the register is output,
When the bit data of N bits including the bit data of the first row of each column after the second column in each odd data frame of each read block is input to the N AND circuits, the odd line The vector input from the register is output,
When the bit data for N bits including the bit data of the (N + 1) th and subsequent rows in each data frame of each read block is input to the N AND circuits, the first reverse shift operation in the final stage 29. The error correction apparatus according to appendix 28, wherein the vector input from the device is output.
(Appendix 30)
12. The error correction apparatus according to any one of appendices 1 to 11, further comprising an EDC syndrome generation circuit that generates an EDC syndrome based on the error-corrected descrambling data.
(Appendix 31)
The built-in memory unit includes an LDC data memory unit in which LDC clusters in the divided clusters are stored from the demodulation circuit, and a BIS memory unit in which BIS clusters in the clusters are stored from the demodulation circuit,
The error correction apparatus according to any one of appendices 1 to 30, further comprising a BIS syndrome generation circuit that reads the BIS cluster from the BIS memory unit and generates a BIS syndrome based on the BIS cluster.
(Appendix 32)
The LDC data memory unit includes at least two memories,
At least one memory of the LDC data memory unit is used for data storage for storing LDC clusters in the divided clusters from the demodulation circuit, and at least one memory of the LDC data memory unit generates the parity calculation result The error correction apparatus according to attachment 31, wherein the error correction apparatus is used for access accessed from a circuit.
(Appendix 33)
The built-in memory unit is composed of at least two memories,
At least one memory of the built-in memory unit is used for data storage for storing the divided clusters from the demodulation circuit, and at least one memory of the built-in memory unit is accessed from the parity calculation result generation circuit The error correction apparatus according to any one of supplementary notes 1 to 30, wherein the error correction apparatus is used as an application.
(Appendix 34)
A small-capacity BIS memory unit for storing BIS clusters in the divided clusters from the built-in memory unit;
The error correction apparatus according to any one of appendices 1 to 30, 33, wherein a BIS syndrome is generated based on the BIS cluster read from the BIS memory unit. (Appendix 35)
The BIS memory unit includes at least two memories.
At least one memory of the BIS memory unit is used for data storage for storing the BIS cluster, and at least one memory of the BIS memory unit is used for data output accessed from the BIS syndrome generation circuit. The error correction device according to any one of supplementary notes 31, 32, and 34.
(Appendix 36)
The error correction apparatus according to any one of appendices 1 to 35, further comprising a small-capacity LDC memory unit that stores an intermediate result of the parity calculation result generated by the parity calculation result generation circuit.
(Appendix 37)
The LDC memory unit is composed of at least two memories,
At least one memory of the LDC memory unit is used for saving a syndrome for storing an intermediate result of the parity calculation result from the parity calculation result generation circuit, and at least one memory of the LDC memory unit is used as an external memory. 37. The error correction apparatus according to appendix 36, wherein the error correction apparatus is used for data output for outputting a parity operation result. (Appendix 38)
A correction memory unit storing an EDC syndrome stored in an external memory from the EDC syndrome generation circuit;
Any one of Supplementary notes 12 to 37, further comprising: an EDC correction circuit that corrects an EDC syndrome stored in the correction memory unit based on an error position and an error value calculated by the error correction circuit. The error correction device described in 1.
(Appendix 39)
A data reading device configured to include an error correction device and a memory and read data written on an optical disc,
The error correction device includes:
A predetermined number of data frames are scrambled, the scrambled data frame is converted into a data block of a predetermined size, and a parity addition block in which parity is added to each column of the data block is generated. As a demodulated data, a cluster is generated by performing an interleaving process, and the modulated data is read from a high-density optical disk on which data on which the cluster is modulated is written, and the modulated data is demodulated. A demodulation circuit for generating a cluster;
A built-in memory unit in which a divided cluster obtained by dividing the cluster from the demodulation circuit into a predetermined number of rows is stored;
Each data in the parity addition block generated by deinterleaving the divided cluster is input in the column direction through the built-in memory unit, and a parity calculation result is generated for each column of the parity addition block based on the data. A parity operation result generation circuit;
Through the built-in memory unit, de-interleave processing is performed on the divided clusters, each scrambled data in the data block is input as a read block in the column direction, and descramble data is generated by performing descrambling processing on each scrambled data A descrambling circuit,
An error correction circuit that performs an error correction process on the descrambling data stored in the memory based on the parity calculation result stored in the memory;
The descrambling circuit includes:
A first exclusive OR circuit to which the scrambled data from the built-in memory unit is input;
A first shift computing unit that generates a new scramble value by shifting the input scramble value by one byte according to a predetermined first generator polynomial;
The input scramble value is
{(Total number of bytes in the column direction of the data block) + 1− (total number of bytes in the column direction of each read block)}
A second shift calculator for generating a new scrambled value by shifting according to the first generator polynomial for bytes;
One of the scramble values input from the first shift calculator and the second shift calculator according to the position of the scrambled data input to the first exclusive OR circuit in the data block. And a first selection circuit that outputs the scrambled value to the first exclusive OR circuit, the first shift computing unit, and the second shift computing unit.
(Appendix 40)
A predetermined number of data frames are scrambled, the scrambled data frame is converted into a data block of a predetermined size, and a parity addition block in which parity is added to each column of the data block is generated. Is a descrambling circuit that is used to read data that is interleaved to generate a cluster and the cluster is modulated and written to the optical disc.
A first exclusive OR circuit to which the read data is input;
A first shift computing unit that generates a new scramble value by shifting the input scramble value by one byte according to a predetermined first generator polynomial;
The input scramble value is
{(Total number of bytes in the column direction of the data block) + 1− (total number of bytes in the column direction of each read block)}
A second shift calculator for generating a new scrambled value by shifting according to the first generator polynomial for bytes;
One of the scramble values input from the first shift calculator and the second shift calculator depending on the position of the read data input to the first exclusive OR circuit in the data block. A descrambling circuit comprising: a first selection circuit that outputs the scramble value to the first exclusive OR circuit, the first shift calculator, and the second shift calculator.

1 光ディスク制御装置(データ読み出し装置)
4 ブルーレイディスク(高密度光ディスク)
6 外部バッファメモリ(外部メモリ)
10 光ディスクコントローラ(誤り訂正装置)
11,11a 復調回路
12,12e 内蔵メモリ部
13 LDCシンドローム生成回路(パリティ演算結果生成回路)
14 LDCメモリ部
15,15a BISメモリ部
16,16a BISシンドローム生成回路
20,70,115 デスクランブル回路
21 EOR回路(第1排他的論理和回路)
24 1シフト演算器(第1シフト演算器)
25 209シフト演算器(第2シフト演算器)
26 108シフト演算器(第3シフト演算器)
28,72 選択回路(第1選択回路)
30,30a,80,90 EDCシンドローム生成回路
31 EOR回路(第2排他的論理和回路)
34 1シフト演算器(第1重み付け回路)
35 209シフト演算器(第2重み付け回路)
36 108シフト演算器(第3重み付け回路)
37 −211シフト演算器(第4重み付け回路)
38 EOR回路(第3排他的論理和回路)
39,82 選択回路(第2選択回路)
40 EDCメモリ部
50 誤り訂正回路
51,51a 訂正回路
52,52a EDC補正回路
53 補正メモリ部
81 作業メモリ
91 ベクター生成回路
94 EOR回路(第4排他的論理和回路)
97 選択回路(第3選択回路)
A1〜A16 アンド回路
B1〜B16 β−1シフト演算器(第1逆シフト演算器、第1逆シフト演算器群)
B17 β−1664シフト演算器(第2逆シフト演算器)
M1〜M8,M11,M12 バッファメモリ
R2 偶数レジスタ(第1偶数レジスタ)
R3 奇数レジスタ(第2奇数レジスタ)
R4 偶数作業レジスタ
R5 奇数作業レジスタ
R20 偶数レジスタ(第2偶数レジスタ)
R21 奇数レジスタ(第2奇数レジスタ)
R22 偶数ラインレジスタ
R23 奇数ラインレジスタ
1 Optical disk control device (data reading device)
4 Blu-ray Disc (High Density Optical Disc)
6 External buffer memory (external memory)
10 Optical disk controller (error correction device)
11, 11a Demodulation circuit 12, 12e Built-in memory unit 13 LDC syndrome generation circuit (parity calculation result generation circuit)
14 LDC memory unit 15, 15a BIS memory unit 16, 16a BIS syndrome generation circuit 20, 70, 115 Descramble circuit 21 EOR circuit (first exclusive OR circuit)
24 1 shift computing unit (first shift computing unit)
25 209 shift arithmetic unit (second shift arithmetic unit)
26 108 shift operator (third shift operator)
28, 72 selection circuit (first selection circuit)
30, 30a, 80, 90 EDC syndrome generation circuit 31 EOR circuit (second exclusive OR circuit)
34 1 shift computing unit (first weighting circuit)
35 209 shift computing unit (second weighting circuit)
36 108 shift calculator (third weighting circuit)
37-211 shift arithmetic unit (fourth weighting circuit)
38 EOR circuit (third exclusive OR circuit)
39, 82 selection circuit (second selection circuit)
40 EDC memory unit 50 Error correction circuit 51, 51a Correction circuit 52, 52a EDC correction circuit 53 Correction memory unit 81 Working memory 91 Vector generation circuit 94 EOR circuit (fourth exclusive OR circuit)
97 Selection circuit (third selection circuit)
A1 to A16 AND circuit B1 to B16 β-1 shift computing unit (first inverse shift computing unit, first inverse shift computing unit group)
B17 β-1664 shift computing unit (second inverse shift computing unit)
M1 to M8, M11, M12 Buffer memory R2 Even register (first even register)
R3 odd register (second odd register)
R4 Even work register R5 Odd work register R20 Even register (second even register)
R21 Odd register (second odd register)
R22 Even line register R23 Odd line register

Claims (5)

所定数のデータフレームにスクランブル処理が施され、スクランブルされたデータフレームが所定サイズのデータブロックに変換され、前記データブロックの各列にパリティが付加されたパリティ付加ブロックが生成され、前記パリティ付加ブロックに対してインターリーブ処理が施されクラスタが生成され、前記クラスタが変調されたデータの誤りを訂正する誤り訂正装置であって、
前記変調されたデータを復調して復調されたデータとしてクラスタを生成する復調回路と、
前記復調回路からのクラスタが所定行数毎に分割された分割クラスタが格納される内蔵メモリ部と、
前記内蔵メモリ部を通じて、前記分割クラスタをデインターリーブ処理して生成したパリティ付加ブロックにおける各データが列方向に入力され、前記各データに基づいてパリティ演算結果を前記パリティ付加ブロックの列毎に生成するパリティ演算結果生成回路と、
前記内蔵メモリ部を通じて、前記分割クラスタにデインターリーブ処理が施され、前記データブロックにおける各スクランブルデータが列方向に読み出しブロックとして入力され、前記スクランブルデータに基づいてEDCシンドロームを生成するEDCシンドローム生成回路と、
前記EDCシンドローム生成回路により生成されるEDCシンドロームの中間結果を前記データフレーム毎に格納するEDCメモリ部と、
前記パリティ演算結果に基づいて、前記スクランブルデータに対して誤り訂正処理を行う誤り訂正回路と、を備え、
前記EDCシンドローム生成回路は、
前記内蔵メモリ部からバイトデータとして入力される前記スクランブルデータと、選択回路から入力されるシフト演算値との排他的論理和を取って、EDC演算値を生成する第1排他的論理和回路と、
前記第1排他的論理和から入力されるEDC演算値に対して、所定の生成多項式に従って1バイト分シフトさせる重み付けをしてシフト演算値を生成し、前記シフト演算値を前記EDCメモリ部に格納する第1重み付け回路と、
前記第1排他的論理和から入力されるEDC演算値に対して、
{(前記データブロックの列方向における全バイト数)+1−(各読み出しブロックの列方向におけるバイト数)}
バイト分、前記生成多項式に従ってシフトさせる重み付けをしてシフト演算値を生成する第2重み付け回路と、
前記第1排他的論理和回路から入力されるEDC演算値に対して、前記生成多項式に従って108バイト分シフトさせる重み付けをしてシフト演算値を生成し、前記シフト演算値を前記EDCメモリ部に格納する第3重み付け回路と、
前記第2重み付け回路からのシフト演算値と、前記EDCメモリ部からのEDCシンドロームの中間結果との排他的論理和を取って、シフト演算値を生成する第2排他的論理和回路と、を備え、
記選択回路は、前記第1排他的論理和回路に入力される前記バイトデータの前記データブロックにおける位置に応じて、前記第1重み付け回路、前記第2重み付け回路及び前記第2排他的論理和回路から入力されるシフト演算値のうちのいずれか一つのシフト演算値を前記第1排他的論理和回路に出力し、
前記データブロックにおいて最初に処理されるデータフレームと前記データフレームから1つおきに処理されるデータフレームとを偶数データフレームとし、前記偶数データフレームの次に処理されるデータフレームを奇数データフレームとしたときに、
前記EDCメモリ部には、
前記各読み出しブロックの前記各データフレームにおける最終行最終列のバイトデータが前記第1排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第1重み付け回路を通じて前記EDCシンドロームの中間結果として格納され、
前記EDCシンドローム生成回路に最後に入力される最終読み出しブロックの前記各偶数データフレームにおける最終行最終列のバイトデータが前記第1排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第3重み付け回路を通じて前記EDCシンドロームとして格納され、
前記最終読み出しブロックの前記各奇数データフレームにおける最終行最終列のバイトデータが前記第1排他的論理和回路に入力されたときに生成されるEDC演算値が、前記EDCシンドロームとして格納されることを特徴とする誤り訂正装置。
Scrambling process is performed on a predetermined number of data frames, scrambled data frame is converted into data blocks of a predetermined size, parity adding block parity is added to each column of the data block is generated, the parity adding block respect are generated interleave processing is performed cluster, the cluster is a error correction device for correcting errors in data which has been modulated,
A demodulation circuit that demodulates the modulated data and generates clusters as demodulated data;
A built-in memory unit in which a divided cluster obtained by dividing the cluster from the demodulation circuit into a predetermined number of rows is stored;
Through the built-in memory unit, the data in the parity adding block created by deinterleaving the divided cluster is input in the column direction, the parity calculation result generated for each column of the parity addition block based to the each data A parity operation result generation circuit;
Through the built-in memory unit, deinterleaving is performed on the divided clusters, each scrambling data in the data block is inputted as a read block in the column direction, and EDC syndrome generation circuit for generating EDC syndrome on the basis of the scramble data ,
An EDC memory unit that stores an intermediate result of the EDC syndrome generated by the EDC syndrome generation circuit for each data frame;
An error correction circuit that performs error correction processing on the scrambled data based on the parity calculation result, and
The EDC syndrome generation circuit includes:
And the scrambling data input as byte data from said internal memory unit, taking an exclusive OR of the shift operation value input from the channel selection択回passage, a first exclusive OR circuit which generates an EDC calculated value ,
Against EDC operation value inputted from said first exclusive OR, to generate a shift operation value by weighting for one byte shift in accordance with a predetermined generate polynomials, the shift operation value to the EDC memory unit A first weighting circuit for storing;
For the EDC operation value input from the first exclusive OR,
{(Total number of bytes in the column direction of the data block) + 1− (number of bytes in the column direction of each read block)}
A second weighting circuit for generating a shift operation value by the bytes, the weighting is shifted according to the previous Kisei formed polynomial,
Against EDC operation value inputted from said first exclusive OR circuit, and the weighting to be 108 bytes shifted according to the previous Kisei formed polynomial to generate a shift operation value, the said shift operation value EDC memory unit A third weighting circuit stored in
A second exclusive OR circuit that generates a shift operation value by taking an exclusive OR of the shift operation value from the second weighting circuit and the intermediate result of the EDC syndrome from the EDC memory unit. ,
Before cyclohexene択回path, depending on the position in the data block of the byte data input to the first exclusive OR circuit, wherein the first weighting circuit, said second weighting circuit and said second exclusive logical Output any one of the shift operation values input from the sum circuit to the first exclusive OR circuit ;
The data frame processed first in the data block and the data frame processed every other data frame are even data frames, and the data frame processed next to the even data frames is odd data frames. sometimes,
In the EDC memory unit,
An EDC operation value generated when byte data of the last row and last column in each data frame of each read block is input to the first exclusive OR circuit is converted into the EDC syndrome value through the first weighting circuit. Stored as an intermediate result,
An EDC operation value generated when byte data of the last row and last column in each even data frame of the last read block inputted last to the EDC syndrome generation circuit is inputted to the first exclusive OR circuit. , Stored as the EDC syndrome through the third weighting circuit,
An EDC operation value generated when byte data of the last row and last column in each odd data frame of the last read block is input to the first exclusive OR circuit is stored as the EDC syndrome. Characteristic error correction device.
前記EDCシンドローム生成回路から外部メモリに格納されたEDCシンドロームが格納される補正メモリ部と、
前記誤り訂正回路により算出される誤り位置及び誤り数値に基づいて、前記補正メモリ部に格納されたEDCシンドロームを補正するとともに、前記クラスタのBISクラスタ内のスクランブル値の初期値から算出されるスクランブル値に基づいて、前記EDCシンドロームを補正するEDC補正回路を備えたことを特徴とする請求項1に記載の誤り訂正装置。
A correction memory unit storing an EDC syndrome stored in an external memory from the EDC syndrome generation circuit;
Based on the error position and error value calculated by the error correction circuit, the EDC syndrome stored in the correction memory unit is corrected, and the scramble value calculated from the initial value of the scramble value in the BIS cluster of the cluster The error correction apparatus according to claim 1, further comprising an EDC correction circuit that corrects the EDC syndrome based on the EDC.
前記EDCシンドローム生成回路は、前記各読み出しブロックの中で、前記データブロックにおけるデータ配置と同様の順序にて前記各バイトデータを読み出すことを特徴とする請求項1又は2に記載の誤り訂正装置。   3. The error correction apparatus according to claim 1, wherein the EDC syndrome generation circuit reads the byte data in the read block in the same order as the data arrangement in the data block. 前記EDCシンドローム生成回路は、
前記第1排他的論理和回路から入力されるEDC演算値に対して、前記生成多項式に従って211バイト分、逆シフトさせる重み付けをしてシフト演算値を生成し、前記シフト演算値を前記EDCメモリ部に格納する第4重み付け回路を備えたことを特徴とする請求項1〜請求項3のいずれか1項に記載の誤り訂正装置。
The EDC syndrome generation circuit includes:
Against EDC operation value inputted from said first exclusive OR circuit, before 211 bytes according Kisei formed polynomial, to generate the shift operation value by weighting to reverse shift, the said shift operation value EDC The error correction apparatus according to any one of claims 1 to 3, further comprising a fourth weighting circuit stored in the memory unit.
前記EDCシンドローム生成回路は、
前記各読み出しブロックの前記各データフレームにおける各列の最終行のバイトデータが前記第1排他的論理和回路に入力されたときに生成されるEDC演算値が、前記第2重み付け回路を通じてシフト演算値として格納される作業メモリを備え、
前記作業メモリは、前記格納されたシフト演算値を前記第2排他的論理和回路及び前記選択回路に出力し、
記選択回路は、前記第1排他的論理和回路に入力される前記バイトデータの前記データブロックにおける位置に応じて、前記第1重み付け回路、前記作業メモリ及び前記第2排他的論理和回路から入力されるシフト演算値のうちのいずれか一つのシフト演算値を前記第1排他的論理和回路に出力することを特徴とする請求項1〜請求項4のいずれか1項に記載の誤り訂正装置。
The EDC syndrome generation circuit includes:
An EDC operation value generated when byte data of the last row of each column in each data frame of each read block is input to the first exclusive OR circuit is converted to a shift operation value through the second weighting circuit. With working memory stored as
The working memory outputs the stored shift operation value to the second XOR circuit and before hexene択回path,
Before cyclohexene択回path, the first according to the position in the data block of the byte data input to the exclusive OR circuit, wherein the first weighting circuit, the working memory and said second exclusive OR circuit errors according to any one of claims 1 to 4, wherein a single shift operation value one of the shift operation value input to output to the first XOR circuit from Correction device.
JP2011283485A 2011-12-26 2011-12-26 Error correction device Expired - Fee Related JP5365683B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011283485A JP5365683B2 (en) 2011-12-26 2011-12-26 Error correction device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011283485A JP5365683B2 (en) 2011-12-26 2011-12-26 Error correction device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007198462A Division JP4930251B2 (en) 2007-07-31 2007-07-31 Error correction apparatus and descrambling circuit

Publications (2)

Publication Number Publication Date
JP2012094245A JP2012094245A (en) 2012-05-17
JP5365683B2 true JP5365683B2 (en) 2013-12-11

Family

ID=46387384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011283485A Expired - Fee Related JP5365683B2 (en) 2011-12-26 2011-12-26 Error correction device

Country Status (1)

Country Link
JP (1) JP5365683B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001023316A (en) * 1999-07-05 2001-01-26 Hitachi Ltd Method for reproducing digital data, circuit for reproducing digital data and detection of error
JP2006155835A (en) * 2004-12-01 2006-06-15 Nec Electronics Corp Error detection code adding circuit, error detecting circuit and method, and disk device
JP4620541B2 (en) * 2005-08-04 2011-01-26 ルネサスエレクトロニクス株式会社 Error detection code calculation circuit, error detection code calculation method, and recording apparatus

Also Published As

Publication number Publication date
JP2012094245A (en) 2012-05-17

Similar Documents

Publication Publication Date Title
JP4930251B2 (en) Error correction apparatus and descrambling circuit
US6772385B2 (en) Error-correcting device and decoder enabling fast error correction with reduced circuit scale
JP4620541B2 (en) Error detection code calculation circuit, error detection code calculation method, and recording apparatus
US8102996B2 (en) Scrambler, descrambler and method, and disc apparatus
CN102096609A (en) Instruction-set architecture for programmable cyclic redundancy check (CRC) computations
US7607074B2 (en) Error detecting code addition circuit, error detection circuit and method, and disc apparatus
JPS58219852A (en) Correcting circuit of error
JPS6037833A (en) Code ward decoder and reader
JP5365683B2 (en) Error correction device
JP5419653B2 (en) Recording apparatus and recording method
JP3281938B2 (en) Error correction device
JP3992443B2 (en) Encoding method, decoding method, encoding circuit, decoding circuit, storage device, storage medium, and communication device
US20090052658A1 (en) Descrambling circuit, error detection code calculating circuit and scrambling circuit
US20080201619A1 (en) Error correcting device, error correcting method and disk system
JP2005267719A (en) Encoding device
JPH0834439B2 (en) Galois field arithmetic unit
US8239742B2 (en) Coding apparatus, coding method and coding program for combing two different code words
US8196023B2 (en) Encoder and optical disk recording apparatus
KR100784740B1 (en) Error detecting code calculation circuit, error detecting code calculation method, and recording apparatus
JPS63255876A (en) Method for detecting code error
GB2379768A (en) Memory device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130813

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130826

R150 Certificate of patent or registration of utility model

Ref document number: 5365683

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees