KR100290964B1 - Memory reproduction device and error correction method thereof - Google Patents

Memory reproduction device and error correction method thereof Download PDF

Info

Publication number
KR100290964B1
KR100290964B1 KR1019980061472A KR19980061472A KR100290964B1 KR 100290964 B1 KR100290964 B1 KR 100290964B1 KR 1019980061472 A KR1019980061472 A KR 1019980061472A KR 19980061472 A KR19980061472 A KR 19980061472A KR 100290964 B1 KR100290964 B1 KR 100290964B1
Authority
KR
South Korea
Prior art keywords
circuit
data
code
error
error correction
Prior art date
Application number
KR1019980061472A
Other languages
Korean (ko)
Other versions
KR19990066892A (en
Inventor
미노루 츠카다
가즈오 나카무라
아츠시 노조에
데츠지 가라시마
다쿠시 니시야
유카리 가타야마
히로아키 고타니
Original Assignee
가나이 쓰도무
가부시끼가이샤 히다치 세이사꾸쇼
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 가나이 쓰도무, 가부시끼가이샤 히다치 세이사꾸쇼 filed Critical 가나이 쓰도무
Publication of KR19990066892A publication Critical patent/KR19990066892A/en
Application granted granted Critical
Publication of KR100290964B1 publication Critical patent/KR100290964B1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1836Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code

Abstract

기억재생장치 및 이 기억재생장치의 에러정정방법에 관한 것으로서, 데이타를 부호화하는 경우 기억장치에 적합한 에러정정능력을 갖는 부호를 사용하고, 부호화회로와 복호회로의 적어도 일부를 공용화하며, 데이타의 복호시간, 에러정정 및 검출시간을 단축할 수 있고, 데이타출력과 에러검출정보를 동시에 출력하는 것이 가능하도록 하기 위해서, 메모리를 내장한 메모리칩과 메모리칩의 내측에 기억대상의 정보데이타를 에러정정부호화하고 또한 에러정정부호를 생성하는 내부에러정정 부호회로를 마련하고, 내부에러정정 부호회로는 메모리에서 리드한 에러정정부호를 사용하여 에러정정부호를 복호하는 구성으로 하였다.The present invention relates to a memory reproducing apparatus and an error correction method of the memory reproducing apparatus, wherein when data is encoded, at least part of an encoding circuit and a decoding circuit are shared, and data decoding is performed by using a code having an error correcting capability suitable for the storage apparatus. In order to shorten the time, error correction and detection time, and to output data and error detection information at the same time, the error correction code of the memory chip in which the memory is built and the information data of the storage object inside the memory chip In addition, an internal error correcting code circuit for generating an error correcting code is provided, and the internal error correcting code circuit is configured to decode the error correcting code using an error correcting code read from a memory.

이것에 의해, 1소자에서의 여러개의 비트에러에도 대응할 수 있고, 부호화회로와 복호회로를 공용하는 회로구성에 의해 온칩ECC에 충분한 회로규모를 실현하는 것이 가능하고, 동일한 부호방식을 사용하는 종래예보다 3할∼5할정도의 복호시간단축을 실현할 수 있으며, 데이타출력종료와 동시에 에러검출정보를 출력하는 것을 가능하다는 효과가 얻어진다.As a result, it is possible to cope with a plurality of bit errors in one element and to realize a circuit size sufficient for on-chip ECC by using a circuit structure in which an encoding circuit and a decoding circuit are shared, and a conventional example using the same coding scheme. A decoding time shortening of about 30 to 50% can be realized, and the effect that the error detection information can be output at the same time as the data output ends is obtained.

Description

기억재생장치 및 이 기억재생장치의 에러정정방법{MEMORY REPRODUCTION DEVICE AND ERROR CORRECTION METHOD THEREOF}Memory reproducing apparatus and error correction method of the memory reproducing apparatus {MEMORY REPRODUCTION DEVICE AND ERROR CORRECTION METHOD THEREOF}

본 발명은 기억재생장치 및 이 기억재생장치의 에러정정방법에 관한 것으로서, 특히 디지탈정보의 기억재생장치로서 사용되는 플래시메모리의 부호에러정정장치 및 그 제어방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a memory reproducing apparatus and an error correction method of the memory reproducing apparatus, and more particularly, to a code error correcting apparatus of a flash memory used as a memory reproducing apparatus of digital information and a control method thereof.

기록매체에서 데이타를 리드해서 전송할 때는 여러가지 요인에 의해 데이타에 에러가 발생하는 경우가 있다. 이들 요인을 크게 나누면, 데이타를 저장하는 메모리소자에 기인하는 에러와 데이타전송시에 전송경로에서 발생하는 에러가 있다. 불휘발성 반도체메모리 특히 플래시메모리에 있어서는 전자의 경우가 많고 특히 메모리의 리텐션(retention)에러가 문제로 된다.When reading and transferring data from a recording medium, errors may occur in the data due to various factors. If these factors are largely divided, there are errors due to memory elements for storing data and errors occurring in the transmission path during data transfer. In the case of nonvolatile semiconductor memories, especially flash memories, there are many cases of the former, and especially retention errors of the memory become a problem.

이하, 리텐션에러에 대해서 설명한다.Hereinafter, a retention error will be described.

그것에 앞서 우선 먼저 도 17을 사용해서 플래시메모리소자의 구조에 대해서 설명한다.First, the structure of the flash memory device will be described first with reference to FIG.

도 17은 플래시메모리의 구조를 도시한 모식도이다. 도면의 플래시메모리소자에 있어서, 데이타의 라이트는 부유게이트(1700)으로의 전하의 주입 또는 부유게이트(1700)으로 부터의 전하의 인출에 의해 실행한다. 그리고, 데이타의 리드는 소스(1701)과 드레인(1702) 사이에 정전압을 인가한 상태에서 컨트롤게이트(1703)에 전압을 인가하고 흐른 드레인전류를 전압값으로 교환해서 실행한다. 여기에서, 드레인(1702)와 소스(1701) 사이에 전류가 흐르기 위한 컨트롤게이트전압의 스레시홀드값Vth를 도 18에 도시한다.17 is a schematic diagram showing the structure of a flash memory. In the flash memory device shown in the figure, writing of data is performed by injecting charges into the floating gate 1700 or drawing out charges from the floating gate 1700. The data read is performed by applying a voltage to the control gate 1703 in a state where a constant voltage is applied between the source 1701 and the drain 1702, and replacing the flow of the drain current with a voltage value. Here, the threshold value Vth of the control gate voltage for the current to flow between the drain 1702 and the source 1701 is shown in FIG.

도 18은 플래시메모리의 컨트롤게이트전압과 드레인전류의 특성도이고, 횡축에 컨트롤게이트전압Vc를, 종축에 드레인전류Id를 도시한다. 도면에 도시한 바와 같이, 이 스레시홀드값은 부유게이트중의 전하의 유무에 따라 변화한다.이 Vth의 차이를 드레인전류에서 판단하는 것에 의해 데이타값을 리드하고 있다. 여기에서, 리텐션에러라는 것은 경년변화에 의해 부유게이트에서 전하가 빠져나가는 것에 의해 Vth가 변화하는 현상을 말하고, 일정한 시간이 경과하면 메모리소자의 데이타리드에러율이 급격하게 증가한다는 특성이 있다.18 is a characteristic diagram of the control gate voltage and the drain current of the flash memory, and shows the control gate voltage Vc on the horizontal axis and the drain current Id on the vertical axis. As shown in the figure, this threshold value changes depending on the presence or absence of electric charge in the floating gate. The data value is read by judging the difference in Vth from the drain current. Here, the retention error refers to a phenomenon in which Vth changes due to the discharge of charge from the floating gate due to aging, and the data lead error rate of the memory device increases rapidly after a certain time.

그래서, 종래 일본국 특허공개공보 평성3-5995호에 기재되어 있는 바와 같이 플래시메모리를 사용한 디지탈정보 기억재생장치(이하, 파일시스템이라 한다)에 있어서는 메모리로 부터의 데이타리드를 고신뢰화시키기 위해, 플래시메모리칩내에 에러정정부호(Error Correct Code, 이하 간단히 ECC라 한다)회로를 탑재해서 데이타에러검출 및 에러정정을 위한 용장데이타를 부가한 후에 데이타를 ECC로 변환해서 기록하고 메모리소자에서 데이타를 리드할 때는 리드한 ECC를 사용해서 데이타에러를 검출하고 정정하는 방법이 사용되고 있다.Therefore, in the digital information storage and reproducing apparatus (hereinafter referred to as file system) using a flash memory as described in Japanese Patent Laid-Open Publication No. Hei 3-5995, in order to make the data read from the memory highly reliable, An error correction code (hereinafter simply referred to as ECC) circuit is installed in the flash memory chip to add redundant data for data error detection and error correction, convert the data into ECC, write the data, and read the data from the memory device. In this case, a method of detecting and correcting a data error using a read ECC is used.

여기에서, 이와 같은 시스템에서 사용되는 ECC는 주로 조직부호로 되는 순회부호가 사용되고 있다. 이하, 순회부호와 조직부호에 대해서 설명한다. 우선, 식 1, 식 2를 사용해서 순회부호의 정의를 나타낸다.Here, the ECC used in such a system mainly uses a circuit code that is an organization code. Hereinafter, the circuit code and the organization code will be described. First, the definition of the circulation code is shown using Equations 1 and 2.

식 1, 식 2에 있어서, n은 최대한 취할 수 있는 부호길이이다.부호길이n의 부호어w의 각 성분을 순회치환한 부호어w'는 재차 부호어로 되는 것이다. 여기에서는 부호어w의 각 성분을 좌측으로 1개씩 시프트하고 좌단의 성분을 우단의 성분으로 하는 좌순회치환을 실행하고 있다. 임의의 부호어w가 순회부호로 되기 위한 필요조건은 부호어w가 G(x)의 배다항식 즉 A(x)를 x의 다항식으로 하면 다음의 식 3으로 나타내어진다.In Equations 1 and 2, n is the code length that can be taken as much as possible. Codeword w 'that is cyclically substituted for each component of codeword w of code length n becomes a codeword again. Here, left-circuit replacement is carried out in which each component of the codeword w is shifted one by one to the left and the component at the left end is the component at the right end. The requirement for an arbitrary codeword w to be a cyclic code is represented by the following expression 3 when the codeword w is a polynomial of G (x), that is, A (x) is a polynomial of x.

w=A(x)G(x)w = A (x) G (x)

G(x)는 데이타를 부호화하기 위한 다항식으로서 부호어생성 다항식이라 한다. 부호길이n의 순회부호에 포함되는 0이 아닌 부호어다항식중에서 차수가 최소로 되는 다항식이다. 순회부호는 또 동시에 조직부호로 하는 것도 가능하다. 조직부호라는 것은 용장부와 정보부가 분리되어 구성되어 있는 부호이다.G (x) is a polynomial for encoding data and is called a codeword generation polynomial. Polynomial whose order is the smallest among the nonzero codeword polynomials included in the traversal code of the code length n. The circuit code can also be an organization code. The organization code is a code formed by separating the redundant and information parts.

이하, 조직부호의 구성방법에 대해서 설명한다.Hereinafter, the structure method of organization code is demonstrated.

부호어생성 다항식G(x)는 식 4로 나타내어진다.Codeword generation polynomial G (x) is represented by equation (4).

G(x)=(x-α0)(x-α1)…(x-α2t-1)G (x) = (x−α 0 ) (x−α 1 ). (x-α 2t-1 )

이 식에 있어서, α는 원시다항식의 근을, 2t는 용장기억길이를, t는 정정능력을 나타낸다.In this equation, α represents the root of the primitive polynomial, 2t represents the redundant memory length, and t represents the correction ability.

또, 정보데이타를 계수로 갖는 정보기호 다항식M(x)는 식 5로 나타내어진다.In addition, the information symbol polynomial M (x) which has information data as a coefficient is represented by Formula (5).

M(x)=(mk-1xk-1+…+m1x+m0)M (x) = (m k-1 x k-1 +… + m 1 x + m 0 )

여기에서, (mk-1, …, m1, m0)은 k개의 정보기호를 나타낸다.Here, (m k-1 , ..., m 1 , m 0 ) represents k information symbols.

여기에서, k는 데이타길이(바이트)를 나타낸다. G(x)의 차수는 ECC의 심볼에러정정능력에 대응하고, 정정능력을 t심볼로 하면 G(x)의 차수는 2t차 이상으로 된다. 심볼이라는 것은 에러정정단위로서 부호에 따라 비트인 경우와 수비트로 구성되는 비트열인 경우가 있다. 예로서 t심볼에러정정가능한 ECC를 고려한다. G(x)의 차수를 2t로 한다.Here k denotes the data length in bytes. The order of G (x) corresponds to the symbol error correction capability of the ECC. When the correction capability is t symbol, the order of G (x) is 2t or more. A symbol is an error correction unit, which may be a bit string or a bit string composed of several bits depending on a sign. As an example, consider an ECC that can correct t symbol errors. The order of G (x) is 2t.

M(x)에 x의 (G(x)의 차수 -1)승을 곱하고 G(x)로 나누었을 때의 몫과 나머지를 각각 Q(x), R(x)로 하고, n을 최대부호길이, r을 용장심볼수, k를 정보기호길이로 하면, M(x)×x의 2t-1승은 Q(x)G(x)+R(x)로 나타내어지기 때문에 나머지R(x)는 식 6과 같이 나타내어진다.Multiply M (x) by the power of (G (x) -1) and divide by G (x), quotient and remainder are Q (x) and R (x), respectively, and n is the maximum sign. If the length, r is the number of redundant symbols, and k is the information symbol length, the 2t-1 power of M (x) × x is represented by Q (x) G (x) + R (x). It is represented as in Equation 6.

식 6에 있어서, R(x)의 차수는 (2t-1)차 이하로 된다. 여기에서, W(x)를 식 7과 같이 두면, 식 7은 G(x)의 배다항식으로 되고 순회부호로 된다.In Equation 6, the order of R (x) is equal to or less than the (2t-1) difference. Here, if W (x) is given as in Equation 7, Equation 7 becomes a polynomial of G (x) and becomes a cyclic sign.

단, 비트연산에서는 A+B=A-B이다.In the bit operation, however, A + B = A-B.

이 때, W(x)의 계수는 식 8로 되고 정보데이타부와 용장데이타부가 분리된 부호로 된다. W(x)의 계수부를 고차부터 순서대로 배열한 배열은 식 8로 나타내어진다.At this time, the coefficient of W (x) becomes Equation 8, and the information data portion and redundant data portion are separated codes. The arrangement in which the coefficients of W (x) are arranged in order from the higher order is represented by the expression (8).

(mk-1,…,m1,m0-rn-k-1,…,-r1,r0)(m k-1 ,…, m 1 , m 0 -r nk-1 ,…, -r 1 , r 0 )

여기에서, mk-1, …, m1, m0은 k개의 정보기호를 나타내고, -rn-k-1, …, -r1, r0은 검사기호 즉 용장부를 나타낸다.Where m k-1 ,... , m 1 , m 0 represent k information symbols, and -r nk-1 ,... , -r 1 , r 0 represents a test symbol, or redundant.

그러나, 실제의 파일시스템에서는 최대부호길이n보다 정보기호길이k와 용장기호길이2t의 합1이 작은 경우가 많다. 예를 들면, t심볼에러정정ECC의 경우 (n-1)심볼이 부호로서 사용되지 않게 된다.However, in the actual file system, the sum 1 of the information symbol length k and the redundant symbol length 2t is often smaller than the maximum code length n. For example, in the case of t symbol error correction ECC, the (n-1) symbol is not used as a code.

다음에, 조직부호의 구성의 변경방법에 대해서 설명한다. 이 때 사용되지 않는 부분은 W(x)에 있어서 계수가 0이라고 고려하면, 부호구성은 식 9와 같이 된다.Next, a method of changing the structure of the organization code will be described. In this case, the code structure is as shown in Equation 9, considering that the coefficient is 0 in W (x).

여기에서, 계수A의 n-1승에서 A의 ℓ승까지 An-1xn-1+An-2xn-2+…Alxl은 부호미사용부이고, n-1개의 멱수의 계수는 0이다. 계수A의 ℓ-1승에서 A의 ℓ-k승까지Al-1xl-1+…Al-kxl-k는 k개의 정보부, 계수Aℓ-k-1에서 A의 0승의 부분Al-k-1xl-k-1+…A0은 2t개의 용장부이다. 따라서, ECC회로에서의 부호의 구성은 도 19에서 도시한 바와 같이 된다.Here, from n-1 power of the coefficient A to 1 power of A, A n-1 x n-1 + A n-2 x n-2 +... A l x l is an unsigned part and the coefficient of n-1 powers is zero. A l-1 x l-1 +... From l-1 power of coefficient A to L-k power of A; A lk x lk is the k information unit, a coefficient A lk-1 x lk-1 + 0 V part of the A in the Aℓ-k-1 ... A 0 is 2t redundant parts. Therefore, the structure of the code in the ECC circuit is as shown in FIG.

도 19는 주기 n심볼의 부호에 있어서의 부호미사용부, 정보부, 용장부를 도시한 모식도이다. 도면에 있어서, (61)은 n-(k+2t) 즉 n-1심볼의 부호미사용부, (62)는 k심볼의 정보부, (63)은 2t심볼의 용장부이다. 이 ECC회로로 구성되는 부호중 실제로 부호로서 기록되는 계수부분은 도 19의 화살표로 표시되어 있는 정보부(62) 및 용장부(63)의 부분으로 된다.19 is a schematic diagram showing a code unused part, an information part, and a redundant part in the code of a period n symbol. In the drawing, reference numeral 61 denotes an unsigned portion of n- (k + 2t), that is, n-1 symbol, 62 denotes an information portion of k symbol, and 63 denotes a redundant portion of 2t symbol. Among the codes constituted by this ECC circuit, the count portion actually recorded as the code is the portion of the information portion 62 and redundancy portion 63 indicated by the arrow in FIG.

도 20은 조직부호의 부호화시의 타이밍도이고, ECC회로에 있어서 k바이트의 정보부(62)에서 용장부(63)이 생성된다. 1바이트의 연산에 1클럭이 필요하다. 용장부(63)이 생성되어 있는 동안 ECC회로에서는 동일한 타이밍에서 정보부(62)의 데이타가 출력되고, 그 후 용장부(63)이 출력된다.20 is a timing diagram at the time of encoding the organization code, and the redundant portion 63 is generated from the k-byte information portion 62 in the ECC circuit. One clock is required for one byte of operation. While the redundant portion 63 is generated, the data of the information portion 62 is output at the same timing in the ECC circuit, and then the redundant portion 63 is output.

조직부호에는 에러정정능력이나 에러정정단위의 차이에서 해밍부호, BCH부호, 리드솔로몬(Reed Solomon :이하 RS라 한다)부호 등이 있다. 종래 반도체메모리에서는 일본국 특허공개공보 평성3-5995호나 1996 Symposium on IEEE VLSI Circuits Digest of Technical Papers PP74-75)에 기재되어 있는 바와 같이 조직부호중에서도 에러정정단위가 비트인 SEC(Single Error Correctable)부호나 SEC-DED(Double Error Correctable)부호, BCH(Bose Chaudhuri Hocquenghem)부호가 사용되고 있다.The organization code includes a Hamming code, a BCH code, and a Reed Solomon (RS) code in terms of error correction capability or difference in error correction unit. In conventional semiconductor memory, as described in Japanese Patent Application Laid-Open Publication No. Hei 3-5995 or 1996 Symposium on IEEE VLSI Circuits Digest of Technical Papers PP74-75, a single error correctable (SEC) code whose error correction unit is a bit among organization codes SEC-DED (Double Error Correctable) codes and BCH (Bose Chaudhuri Hocquenghem) codes are used.

한편, 디지탈카메라나 휴대정보단말 등의 시스템에서는 비교적 큰(수백바이트이상) 데이타를 일괄해서 처리하는 경우가 많다. 이와 같은 파일시스템에서는 데이타의 취급의 최소단위가 바이트(8비트)로 되는 경우가 많고, 데이타에러도 버스트에러가 많으므로, 에러정정의 최소단위가 1비트인 BCH부호에 대해서 에러정정의 최소단위가 심볼(여러개의 비트)인 리드솔로몬부호쪽이 부호효율이 좋게 된다. 종래는 반도체메모리칩 외부의 컨트롤러내에 에러정정부호회로를 마련하고 메모리와의 데이타리드/라이트(Read/Write 이하 R/W라 한다)시에 데이타를 RS부호화하고 있었다.On the other hand, systems such as digital cameras and portable information terminals often process relatively large data (hundreds of bytes or more) collectively. In such a file system, the minimum unit of data handling is often byte (8 bits), and the data unit has many burst errors. Therefore, the minimum unit of error correction is used for a BCH code having a minimum unit of error correction. The Reed Solomon code, where is a symbol (multiple bits), has good coding efficiency. Conventionally, an error correcting code circuit has been provided in a controller external to the semiconductor memory chip, and RS coded data at data read / write (hereinafter referred to as R / W) with the memory.

종래의 플래시메모리에서는 메모리 1소자에 대해서 1비트를 대응시키고 있었다. 이 때문에, 정보기억에 필요한 Vth는 1소자당 2개이고, Vth사이의 간격을 충분히 취할 수 있었다. 그러나, 근래 플래시메모리를 사용한 파일시스템에 대한 대용량화, 저코스트화의 요구에 의해 1소자에 대해 2비트이상을 대응시킬 필요성이 생겼다. 이것은 정보기억을 위해 필요한 Vth가 1소자당 4개 이상으로 되는 것을 나타낸다. 이 때문에, 각 Vth사이의 간격은 좁아지고 메모리소자로 부터의 데이타리드에러는 필연적으로 증가한다.In the conventional flash memory, one bit corresponds to one memory element. For this reason, Vth required for information storage is two per element, and the interval between Vth can be sufficiently taken. However, in recent years, due to the demand for large capacity and low cost for a file system using flash memory, there is a need to correspond two or more bits to one device. This indicates that more than four Vth elements are needed for information storage. For this reason, the interval between each Vth becomes narrow and the data lead error from a memory element necessarily increases.

또, 소자불량에 의해 Vth가 고정된 경우에는 1소자에 2비트에러가 발생하는 경우도 있다. 이 때문에 메모리칩내부에 순회부호인 ECC회로를 갖는 종래예의 경우, SEC부호, SEC-DED부호, BCH부호에서는 만족한 비트신뢰율이 얻어지지 않게 되는 것이 예상된다. 또, 디지탈카메라나 휴대정보단말 등의 시스템에서는 영상데이타 등의 상관성이 있는 데이타를 처리하는 경우가 많으므로, 에러정정이 불가능한 경우에도 에러정정을 실행하는 것보다는 에러검출에 따라서 에러보정 등의 처리를 실행하는 쪽이 좋은 경우도 있다. 이상과 같은 용도로 사용하는 반도체메모리에 있어서 데이타를 부호화하는 경우 에러정정능력뿐만 아니라 에러검출(Error Detect: 이하, ED라 한다)능력도 높은 부호를 사용하는 것이 바람직하다.In addition, in the case where Vth is fixed due to a device defect, a 2-bit error may occur in one device. For this reason, in the case of the conventional example having the ECC circuit which is a circuit code inside the memory chip, it is expected that a satisfactory bit reliability rate cannot be obtained in the SEC code, the SEC-DED code, and the BCH code. Also, in systems such as digital cameras and portable information terminals, data that is often correlated, such as video data, is often processed. Therefore, even when error correction is impossible, error correction or the like is performed according to error detection rather than error correction. Sometimes it is better to run. When data is encoded in the semiconductor memory used for the above-mentioned purposes, it is preferable to use not only the error correction capability but also the error detection capability (Error Detect: hereinafter referred to as ED).

또, 메모리칩내부에 순회부호인 ECC회로를 탑재하는 경우 문제로 되는 것은 회로규모, 데이타의 복호시간, 복호시의 편리성의 3가지 점이다.In addition, when the ECC circuit, which is a circulating code, is mounted in the memory chip, there are three problems of circuit size, data decoding time, and convenience in decoding.

첫번째로, 회로규모의 문제에 대해서 기술한다. 이것은 ECC의 부호화방법 및 복호방법과 크게 관계된다. 먼저, 순회부호ECC의 복호방법에 대해서 기술한다. 수신어Y(x)는 송신어W(x)와 에러다항식E(x)의 합으로 나타내어진다. 즉, 식 10에 나타낸 바와 같이 된다.First, the circuit scale problem is described. This is largely related to the ECC encoding method and decoding method. First, the decoding method of the circuit code ECC is described. The destination word Y (x) is represented by the sum of the transmission word W (x) and the error polynomial E (x). That is, it is as shown in Formula 10.

Y(x)=W(x)+E(x)Y (x) = W (x) + E (x)

여기에서, AmodB는 A를 B로 나누었을 때의 잉여를 나타내는 것으로 하면 만일 E(x)=0이면 Y(x)modG(x)는 0으로 된다. 즉, 식 11과 같이 된다.Here, if AmodB represents the surplus when A is divided by B, Y (x) modG (x) becomes 0 if E (x) = 0. That is, it is as (11).

= Q(x)G(x)mod G(x)= Q (x) G (x) mod G (x)

= 0= 0

여기에서, 만일 E(x)≠0이면 Y(x)modG(x)는 E(x)modG(x)로 된다. 즉,Here, if E (x) ≠ 0, Y (x) modG (x) becomes E (x) modG (x). In other words,

= (Q(x)G(x)+E(x))modG(x)= (Q (x) G (x) + E (x)) modG (x)

= E(x)modG(x)= E (x) mod G (x)

또, 식 12는 식 13과 같이 된다.In addition, Expression 12 is represented by Expression 13.

식 13은 신드롬이라 하고, 부호의 에러위치i 및 에러패턴Epi의 정보를 포함하고 있다. 이것에서 에러위치, 에러패턴을 검색하는 방법을 설명한다.Equation 13 is called a syndrome and contains information of the error position i of the code and the error pattern Epi. This section explains how to search for error locations and error patterns.

예로서 1심볼정정가능한 ECC를 고려한다. 용장심볼을 2t심볼로 하면 부호어생성 다항식G(x)는 식 14와 같이 된다.As an example, consider a symbol correctable ECC. If the redundant symbol is a 2t symbol, the codeword generating polynomial G (x) is given by Equation 14.

이 때, 수신부호Y(x)에 발생한 1심볼에러를 에러다항식E(x)로 나타내면 식 15로 나타낸 바와 같이 된다. 따라서, 신드롬S(x)는 식 16과 같이 되고, 에러위치의 정보xi와 에러패턴Epi로 이루어지는 단항식으로 된다. 또, 순회부호의 특성에 의해 식 17이 성립된다.At this time, if one symbol error generated in the reception code Y (x) is represented by the error polynomial E (x), it is as shown in equation (15). Therefore, the syndrome S (x) is expressed by Equation 16, and becomes a unary expression composed of the information xi of the error position and the error pattern Epi. Equation 17 is also established by the characteristic of the circuit code.

E(x)=Epixk+2t-i E (x) = Ep i x k + 2t-i

순회부호의 성질에 의해By the nature of the circuit

xn-1=1x n-1 = 1

이상의 관계가 성립하므로, 신드롬S(x)에 x의 멱승을 차례로 곱해 가면 x의 멱수가 식 17의 조건을 만족시키도록 신드롬S(x)에 x의 멱승을 곱했을 때의 식 16의 값은 식 18과 같이 되고, x의 2승 및 x의 계수는 0이고, 정수항에 에러패턴Epi가 나타난다.Since the above relation holds, if the syndrome S (x) is multiplied by the power of x in turn, the value of Equation 16 when the power of x is multiplied by the power of x to satisfy the condition of equation 17 is Equation 18 is obtained, the power of x and the coefficient of x are 0, and the error pattern Epi appears in the integer term.

x의 2승 및 x의 계수의 0을 검출하는 것에 의해 에러위치i와 에러패턴Epi를 검출할 수 있다.The error position i and the error pattern Epi can be detected by detecting the power of x and 0 of the coefficient of x.

S(x)에 x(n-(k+2t)+i-1)승을 곱했을 때의 ECC회로내의 다항식의 값은 다음식과 같다.When S (x) is multiplied by x (n- (k + 2t) + i-1) power, the value of the polynomial in the ECC circuit is as follows.

한편, 수신어Y(x)에 2심볼 이상의 에러가 있는 경우에는 에러검출없이 에러정정을 해버리는 경우와 에러검출이 가능한 경우가 있다. 에러검출이 가능한 경우라는 것은 S(x)≠0으로서 x의 멱승을 신드롬S(x)에 차례로 곱해 갔을 때 x의 부호길이승까지 승산을 실행해도 식 18의 조건을 만족시키지 않는 경우이다. 1심볼정정의 경우 부호화회로와 복호회로에 의해 부호어생성 다항식G(x)의 제산회로를 공용할 수 있어 회로규모는 작게 유지된다는 이점이 있다. 그러나, 에러정정능력이 2이상으로 되면 상기 알고리듬은 사용할 수 없게 된다. 따라서, 부호화회로와 복호회로가 각각 필요하게 되어 회로규모는 급격하게 증가한다.On the other hand, when there is an error of two symbols or more in the reception word Y (x), error correction may be performed without error detection, and error detection may be possible. The case where error detection is possible is a case where S (x) ≠ 0 does not satisfy the condition of Equation 18 even when multiplying the power of x by the syndrome S (x) and multiplying by the sign length power of x. In the case of single symbol correction, the division circuit of the codeword generation polynomial G (x) can be shared by the encoding circuit and the decoding circuit, so that the circuit size is kept small. However, when the error correction capability is 2 or more, the algorithm cannot be used. Therefore, an encoding circuit and a decoding circuit are required, respectively, and the circuit scale increases rapidly.

두번째로, 데이타의 복호시간의 문제에 대해서 설명한다. 순회부호의 복호시간은 신드롬S(x)생성시간+에러정정/검출시간으로 된다. 예로서 1심볼정정가능한 RS부호에 대해서 고려한다. 먼저, 신드롬S(x)생성시간에 대해서 설명한다. 신드롬S(x)는 식 12, 식 13에서 부호화회로에 수신어(수신부호)Y(x)를 입력하는 것에 의해 얻어진다. 필요시간은 부호길이 1클럭으로 한다. S(x)=0이면, 수신부호에 에러가 없는 것을 나타낸다. S(x)≠0일 때 에러정정/검출처리를 실행한다.Second, the problem of the decoding time of data will be described. The decoding time of the traversal code is the syndrome S (x) generation time + error correction / detection time. As an example, one symbol correctable RS code is considered. First, the syndrome S (x) generation time will be described. The syndrome S (x) is obtained by inputting the receiving word (receive code) Y (x) into the coding circuit in the equations (12) and (13). The required time is 1 clock of code length. S (x) = 0 indicates that there is no error in the reception code. When S (x) ≠ 0, error correction / detection processing is executed.

다음에, 에러정정/검출시간에 대해서 설명한다. 에러검출을 실행하기 위해서는 식 9에 있어서 부호어W(x)의 계수가 0인 부분 즉 도 19에 있어서 부호로서 사용되지 않는(n-(k+2t))심볼의 부호미사용부분(61)에 대해서도 에러검색을 실행하지 않으면 안된다.Next, the error correction / detection time will be described. In order to perform error detection, the codeword W (x) in Equation 9 has a coefficient of zero, i.e., a code unused portion 61 of a symbol (n- (k + 2t)) which is not used as a sign in FIG. You must also run an error search.

이것은 신드롬S(x)에 x의 멱승을 차례로 곱해 가지 않으면 안되기 때문이다. 따라서, 검색시간은 n클럭으로 되고 신드롬생성시간과 일치한 전체 복호시간은(k+2t)+n클럭 즉 ℓ+n클럭으로 된다. n-(k+2t)심볼의 0입력부가 정보기호k심볼에 비해 큰 경우 실제로 기록하는 부호에 대해서 복호시간 오버헤드는 매우 커진다.This is because the syndrome S (x) must be multiplied by the power of x in order. Therefore, the search time is n clocks, and the total decoding time coinciding with the syndrome generation time is (k + 2t) + n clocks, that is, l + n clocks. When the 0 input portion of the n- (k + 2t) symbol is larger than the information symbol k symbol, the decoding time overhead is very large for the code actually recorded.

세번째로, 복호시의 편리성에 대해서 기술한다. 온칩ECC회로의 경우 외부로 부터의 데이타리드 제어신호는 정보기호 수k클럭인 경우가 있다.Third, the convenience of decoding is described. In the case of the on-chip ECC circuit, the data lead control signal from the outside may be an information symbol k clocks.

도 21은 복호시의 에러검출 및 에러정정의 종래의 타이밍도이다. 도 21에서 명확한 바와 같이 종래와 같은 정보부+용장부의 구성을 갖는 조직부호에서는 k심볼의 정보부(62)의 에러정정/검출처리종료후 또 2t심볼의 용장부(63)분까지 연산을 실행하는 것에 의해 에러정정유무의 판정을 실행하고, 에러가 있는 경우에는 부호미사용부분(61)을 n-ℓ분만큼 공회전(0을 입력해서 회전시킨다)한 후, 정보부(62)의 에러정정/검출처리를 실행하여 에러검출정보를 출력한다. 이 때문에, 에러정정/검출처리와 정보데이타(64)의 출력을 동시에 실행하는 경우, 에러검출정보(65)는 데이타출력 종료후 2t클럭후에 출력된다. 즉, 외부사용자는 k심볼의 데이타(64)의 출력후 2t클럭 대기하지 않으면 에러검출정보를 얻을 수 없다. 이 때문에, 외부사용자에게는 예를 들면 데이타리드신호 출력후 2t클럭 대기하고 나서 에러보정 등의 처리를 개시하는 프로그램이 필요로 되고 ECC회로의 탑재에 의해 외부사용자측에 부담을 주게 되는 경우가 있다.Fig. 21 is a conventional timing diagram of error detection and error correction during decoding. As is clear from Fig. 21, in the organization code having the structure of the information part + redundant part as in the prior art, after the error correction / detection processing of the information part 62 of the k symbol is finished, the calculation is performed up to the redundant part 63 of the 2t symbol. Is used to determine whether the error is corrected, and if there is an error, the code unused portion 61 is idled by n-l (rotating by inputting 0), and then error correction / detection processing of the information unit 62 is performed. Run to print error detection information. For this reason, when the error correction / detection process and the output of the information data 64 are executed at the same time, the error detection information 65 is output 2t clock after the end of the data output. That is, the external user cannot obtain the error detection information unless the 2t clock waits after outputting the data 64 of the k symbol. For this reason, an external user may, for example, need a program that waits for 2t clock after outputting the data lead signal and then starts a process such as error correction, and may put a burden on the external user by mounting the ECC circuit.

상기와 같이 종래기술에 있어서는 기억소자의 다진화에 의한 소자의 다비트에러의 문제가 있다. 또, 메모리칩내부에 순회부호인 ECC회로를 탑재하는 경우, 첫번째로 회로규모가 커진다는 문제, 두번째로 데이타의 복호시간이 길어진다는 문제, 세번째로 복호시의 편리성의 문제이다.As described above, in the prior art, there is a problem of a multi-bit error of the device due to the multiplexing of the memory device. In addition, when the ECC circuit, which is a circulating code, is mounted inside the memory chip, first, the circuit size becomes large, second, the data decoding time becomes long, and third, convenience in decoding.

본 발명의 목적은 데이타를 부호화하는 경우 기억장치에 적합한 에러정정능력을 갖는 부호를 사용한 기억재생장치 및 에러정정방법을 제공하는 것이다.SUMMARY OF THE INVENTION An object of the present invention is to provide a memory reproducing apparatus and an error correction method using codes having an error correction capability suitable for a storage apparatus when data is encoded.

본 발명의 다른 목적은 부호화회로와 복호회로의 적어도 일부를 공용화하는 것이 가능한 기억재생장치 및 에러정정방법을 제공하는 것이다.Another object of the present invention is to provide a memory reproducing apparatus and an error correction method capable of sharing at least a part of an encoding circuit and a decoding circuit.

본 발명의 또 다른 목적은 데이타의 복호시간, 에러정정 및 검출시간을 단축하는 것이 가능한 기억재생장치 및 에러정정방법을 제공하는 것이다.Still another object of the present invention is to provide a memory reproducing apparatus and an error correction method capable of shortening the decoding time, error correction and detection time of data.

본 발명의 또 다른 목적은 데이타출력과 에러검출정보를 동시에 출력하는 것이 가능한 기억재생장치 및 에러정정방법을 제공하는 것이다.Still another object of the present invention is to provide a memory reproducing apparatus and an error correction method capable of simultaneously outputting data output and error detection information.

도 1은 본 발명에 의한 데이타기억재생장치의 1실시예를 도시한 개념도,1 is a conceptual diagram showing one embodiment of a data storage and reproducing apparatus according to the present invention;

도 2는 도 1의 데이타기억재생장치의 전체 구성을 도시한 블럭도,FIG. 2 is a block diagram showing the overall configuration of the data memory reproducing apparatus of FIG. 1;

도 3은 도 2의 데이타기억재생장치의 칩실장예를 도시한 모식도,3 is a schematic diagram showing an example of chip mounting of the data storage and reproducing apparatus of FIG.

도 4는 메모리칩의 전체구성을 도시한 구성도,4 is a configuration diagram showing an overall configuration of a memory chip;

도 5는 본 발명에 의한 데이타기억재생장치의 ECC회로의 1실시예를 도시한 블럭도,5 is a block diagram showing one embodiment of an ECC circuit of a data storage and reproducing apparatus according to the present invention;

도 6은 도 5에 도시한 ECC회로의 부호화의 동작을 설명하기 위한 흐름도,6 is a flowchart for explaining the operation of encoding of the ECC circuit shown in FIG. 5;

도 7은 본 발명에 의한 n심볼부호의 주기에 있어서의 부호미사용부, 정보부, 용장부를 도시한 모식도,7 is a schematic diagram showing a code unused part, an information part, and a redundant part in a period of an n symbol code according to the present invention;

도 8은 도 5의 부호화시의 동작을 도시한 타이밍도,8 is a timing diagram showing an operation during encoding of FIG. 5;

도 9는 도 5의 복호동작을 설명하기 위한 흐름도,9 is a flowchart for explaining a decoding operation of FIG. 5;

도 10의 (a)는 도 5의 ECC회로에서의 복호시의 에러검출 및 에러정정처리의 타이밍을 도시한 도면, 도 10의 (b)는 에러정정된 정보의 출력타이밍을 도시한 도면,FIG. 10A is a diagram showing timing of error detection and error correction processing during decoding in the ECC circuit of FIG. 5, and FIG. 10B is a diagram showing output timing of error corrected information.

도 11은 본 발명에 의한 데이타기억재생장치의 ECC회로의 제2 실시예를 도시한 블럭도,Fig. 11 is a block diagram showing a second embodiment of the ECC circuit of the data storage and reproducing apparatus according to the present invention;

도 12는 도 11의 부호화의 동작을 도시한 흐름도,12 is a flowchart showing the operation of the encoding of FIG. 11;

도 13의 (a)는 도 11의 ECC회로내부에서 부호를 구성할 때의 타이밍도, 도 13의 (b)는 ECC회로에서 출력될 때의 타이밍도,FIG. 13A is a timing diagram when a code is formed inside the ECC circuit of FIG. 11, and FIG. 13B is a timing diagram when it is output from an ECC circuit.

도 14는 도 11의 복호동작을 도시한 흐름도,14 is a flowchart showing a decoding operation of FIG. 11;

도 15의 (a)는 도 11의 ECC회로에서의 복호시의 에러검출 및 에러정정처리의 타이밍을 도시한 도면, 도 15의 (b)는 에러정정된 정보의 출력타이밍을 도시한 도면,FIG. 15A is a diagram showing the timing of error detection and error correction processing during decoding in the ECC circuit of FIG. 11, FIG. 15B is a diagram showing the output timing of error corrected information;

도 16은 디지탈카메라, 휴대정보단말, 휴대전화와 퍼스널컴퓨터의 접속을 도시한 모식도,16 is a schematic diagram showing a connection between a digital camera, a portable information terminal, a cellular phone, and a personal computer;

도 17은 플래시메모리의 구조를 도시한 모식도,17 is a schematic diagram showing the structure of a flash memory;

도 18은 플래시메모리의 컨트롤게이트전압과 드레인전류의 특성도,18 is a characteristic diagram of a control gate voltage and a drain current of a flash memory;

도 19는 n심볼부호의 주기에 있어서의 부호미사용부, 정보부, 용장부를 도시한 모식도,19 is a schematic diagram showing a code unused part, an information part, and a redundant part in a period of an n symbol code;

도 20은 조직부호의 부호화시의 타이밍도,20 is a timing diagram at the time of encoding a structure code,

도 21은 복호시의 에러검출 및 에러정정의 종래의 타이밍도.Fig. 21 is a conventional timing diagram of error detection and error correction during decoding.

본 발명의 목적을 달성하기 위해서, 본 발명에 의한 기억재생장치는 메모리를 내장한 메모리칩과 이 메모리칩의 내측에 기억대상의 정보데이타를 에러정정부호화하고 또한 에러정정부호를 생성하는 내부에러정정 부호회로를 마련하고, 이 내부에러정정 부호회로는 이 메모리에서 리드한 에러정정부호를 사용해서 이 에러정정부호를 복호한다. 이 내부에러정정 부호회로는 이 정보데이타를 에러정정 부호화하는 부호화회로와 이 에러정정 부호화된 정정데이타를 복호하는 복호회로를 구비한다. 또, 바람직하게는 이 부호화회로와 이 복호회로는 공용된다.In order to achieve the object of the present invention, the memory reproducing apparatus according to the present invention has an internal error correction function for error correcting and generating an error correcting code of a memory chip having a memory therein and information data of a storage object inside the memory chip. A code circuit is provided, and the internal error correcting code circuit decodes the error correcting code using an error correcting code read from this memory. The internal error correction code circuit includes an encoding circuit for error correction encoding this information data and a decoding circuit for decoding the error correction encoded correction data. Preferably, this coding circuit and this decoding circuit are shared.

이 기억재생장치에 있어서, 이 내부에러정정 부호회로는 에러정정부호 복호시의 연산결과를 순차 여러 비트 제산하는 제산기, 제산결과가 일정한 요건을 만족시킨 경우 에러정정을 실행하기 위한 수단, 부호길이의 데이타입력시간에서 데이타의 복호를 종료시키는 수단 및 입력된 데이타의 복호가 모두 종료해도 제산결과가 일정한 요건을 만족시키지 않는 경우에는 외부회로로 에러검출정보를 출력하는 수단을 구비한다. 이 제산기는 여러개의 제산회로로 구성되고, 이 에러정정수단은 이 여러개의 제산회로의 결과가 동일한 경우에 에러정정을 실행하기 위한 검출기와 NOR회로로 구성되고, 이 에러정보출력수단은 이 NOR회로의 출력이 1로 된 경우에 에러정보를 출력한다.In this storage / reproducing apparatus, the internal error correction code circuit includes a divider for dividing the operation result at the time of error correction code decoding by several bits, a means for performing error correction when the division result satisfies a predetermined requirement, and the code length. Means for terminating the decoding of the data at the data input time of the apparatus and means for outputting error detection information to an external circuit if the division result does not satisfy a certain requirement even when the decoding of the input data is completed. This divider is composed of a plurality of divider circuits, and the error correcting means is composed of a detector and a NOR circuit for performing error correction when the results of the multiple divider circuits are the same. Error information is output when the output of the circuit is set to 1.

또, 이 내부에러정정 부호회로는 에러정정회로와 에러정정부호 복호시에 이 에러정정회로의 연산결과를 정보데이타에 부가한 용장비트분만큼 유지해 두는 수단을 구비하고, 데이타출력을 정보데이타에 부가한 용장분만큼 이 에러정정회로의 연산개시보다 지연시켜 출력하는 것에 의해 이 에러정정회로의 연산종료와 복호된 데이타의 출력을 동시에 종료시킨다. 바람직하게는 이 용장비트 유지수단은 버퍼로 구성된다. 또, 이 내부에러정정 부호회로는 에러정정부호의 부호화시에 사용되는 부호길이에 따라서 정해지는 특정의 회수만큼 특정의 값을 입력해서 정보데이타와 용장비트부를 포함하는 에러정정부호의 부호구성을 변화시킨다. 이 특정의 값은 0이다. 바람직하게는 에러정정부호의 부호화시에 사용되는 부호길이에 따라서 정해지는 특정의 회수만큼 부호화회로에 특정의 값을 입력하고 용장비트가 정보데이타전에 놓여지도록 에러정정부호를 구성한다.The internal error correction code circuit includes a means for maintaining the operation result of the error correction circuit for redundant bits added to the information data at the time of error correction circuit and error correction code decoding, and adding the data output to the information data. By delaying the operation of the error correction circuit and outputting it by one redundant amount, the operation completion of the error correction circuit and the output of the decoded data are simultaneously terminated. Preferably, the redundant bit holding means is constituted by a buffer. The internal error correcting code circuit changes a code structure of an error correcting code including information data and redundant bits by inputting a specific value for a specific number of times determined according to the code length used for encoding the error correcting code. Let's do it. This particular value is zero. Preferably, the error correcting code is configured so that a specific value is input to the coding circuit for a specific number of times determined according to the code length used for encoding the error correcting code, and the redundant bits are placed before the information data.

이 내부에러정정 부호회로에 의해 용장비트와 정보데이타를 정정부호화하는 수단과 에러정정부호 복호시에 이 용장비트의 연산결과를 정보데이타보다 앞서 실행하는 수단을 구비하는 것에 의해, 이 에러정정부호회로의 연산종료와 복호된 데이타의 출력이 동시에 종료하도록 한다. 바람직하게는 내부에러정정 부호회로에 사용되는 에러정정부호는 리드솔로몬부호이다.Means for correcting and encoding redundant bits and information data by the internal error correction code circuit, and means for executing the operation result of the redundant bits earlier than the information data during error correction code decoding. End the operation and output the decoded data at the same time. Preferably, the error correcting code used in the internal error correcting code circuit is a Reed Solomon code.

본 발명의 목적을 달성하기 위해서, 휴대정보단말은 메모리를 내장한 메모리칩과 이 메모리칩의 내측에 기억대상의 정보데이타를 에러정정부호화하고 또한 에러정정부호를 생성하는 내부에러정정 부호회로를 마련하고, 이 내부에러정정 부호회로는 이 메모리에서 리드한 에러정정부호를 사용해서 이 에러정정부호를 복호하는 기억재생장치를 구비하고, 이 기억재생장치는 데이타의 일시축적 및 데이타의 교체가 가능하다.In order to achieve the object of the present invention, a portable information terminal includes a memory chip having a built-in memory and an internal error correcting code circuit for error correcting encoding information data of a storage object and generating an error correcting code. The internal error correcting code circuit includes a memory reproducing device which decodes the error correcting code by using the error correcting code read from the memory. The memory reproducing device can temporarily store data and replace data. .

본 발명의 목적을 달성하기 위해서, 디지탈카메라는 메모리를 내장한 메모리칩과 이 메모리칩의 내측에 기억대상의 정보데이타를 에러정정부호화하고 또한 에러정정부호를 생성하는 내부에러정정 부호회로를 마련하고, 이 내부에러정정 부호회로는 이 메모리에서 리드한 에러정정부호를 사용해서 이 에러정정부호를 복호하는 기억재생장치를 구비하고, 이 기억재생장치는 데이타의 일시축적 및 데이타의 교체가 가능하다.In order to achieve the object of the present invention, a digital camera is provided with a memory chip having a built-in memory and an internal error correcting code circuit for error correcting and encoding information data of a storage object and generating an error correcting code inside the memory chip. The internal error correcting code circuit includes a memory reproducing device that decodes the error correcting code using the error correcting code read from the memory. The memory reproducing device can temporarily store data and replace data.

본 발명의 목적을 달성하기 위해서, 본 발명의 정정방법은 메모리를 내장한 메모리칩과 이 메모리칩의 내측에 기억대상의 정보데이타를 에러정정부호화하고 또한 에러정정부호를 생성하는 내부에러정정 부호회로를 구비하고, 에러정정부호 복호시에 이 내부에러정정 부호회로의 연산결과를 순차 여러 비트 제산하는 스텝, 제산결과가 임의의 일정한 요건을 만족시킨 경우 이 내부에러정정 부호회로내에서 에러정정을 실행하는 스텝 및 입력된 데이타의 복호가 모두 종료해도 제산결과가 일정한 요건을 만족시키지 않는 경우에는 이 내부에러정정 부호회로 외부로 에러검출정보를 출력하고 이 정보데이타를 복호하는 스텝을 구비한다.In order to achieve the object of the present invention, the correction method of the present invention includes a memory chip having a built-in memory and an internal error correcting code circuit for error correcting and encoding information data of a storage object inside the memory chip and generating an error correcting code. A step of dividing the operation result of the internal error correcting code circuit by several bits sequentially during the decoding of the error correcting code, and performing the error correction in the internal error correcting code circuit when the division result satisfies a certain requirement. If the division result does not satisfy a predetermined requirement even after the decoding of the input data and the input data are all finished, error detection information is output to the outside of the internal error correction code circuit, and the information data is decoded.

또 다른 본 발명의 목적을 달성하기 위한 본 발명의 정정방법은 메모리를 내장한 메모리칩과 이 메모리칩의 내측에 기억대상의 정보데이타를 에러정정부호화하고 또한 에러정정부호를 생성하는 내부에러정정 부호회로를 구비하고, 에러정정부호 복호시에 이 내부에러정정 부호회로의 연산결과를 정보데이타에 부가한 용장비트분만큼 유지하고 정보데이타에 부가한 용장비트분만큼 이 연산의 개시보다 지연시켜 출력하는 것에 의해 이 에러정정부호회로의 연산종료와 복호데이타의 출력종료를 동시에 실행하는 스텝을 구비한다.Another method of correcting the present invention for achieving the object of the present invention is an internal error correcting code for error correcting and generating an error correcting code of a memory chip having a memory therein and information data of a storage object inside the memory chip. A circuit is provided, and when the error correcting code is decoded, the operation result of the internal error correcting code circuit is maintained for the redundant bits added to the information data, and the redundant bits added to the information data are delayed and outputted after the start of this operation. Thereby, a step of simultaneously executing the operation termination of the error correcting code circuit and the output termination of the decoding data is provided.

또, 본 발명의 목적을 달성하기 위한 본 발명의 정정방법은 메모리를 내장한 메모리칩과 이 메모리칩의 내측에 기억대상의 정보데이타를 에러정정 부호화하고 또한 에러정정부호를 생성하는 내부에러정정 부호회로를 구비하고, 에러정정부호 부호화시에 사용되는 부호길이에 따른 특정의 회수만큼 부호화회로에 일정값을 계속해서 입력하는 것에 의해 정보데이타와 용장비트부의 구성을 변화시키는 스텝과 에러정정부호 복호시에 용장비트부의 연산결과를 정보데이타보다 앞서 실행하여 에러정정회로의 연산종료와 복호데이타의 출력종료를 동시에 실행하는 스텝을 구비한다.In addition, the correction method of the present invention for achieving the object of the present invention is an internal error correction code for error-correcting and encoding an error data of a memory chip having a memory therein and information data of a storage object inside the memory chip and generating an error correction code. And a step for changing the configuration of the information data and redundant bits by continuously inputting a constant value into the coding circuit for a specific number of times corresponding to the code length used in encoding the error correcting code. And the step of executing the calculation result of the redundant bit section before the information data and simultaneously executing the calculation of the error correction circuit and the output of the decoding data.

본 발명의 상기 및 그 밖의 목적과 새로운 특징은 본 명세서의 기술 및 첨부도면에서 명확하게 될 것이다.The above and other objects and novel features of the present invention will become apparent from the description and the accompanying drawings.

본 발명에 있어서는 1심볼정정RS부호에 있어서 에러검출능력을 향상시키기위해서 1심볼정정에 필요로 되는 심볼수2에 용장심볼을 1심볼 부가하고 3심볼을 부가한 경우, 즉 용장심볼수가 2t+1인 경우를 사용해서 설명한다. 송신부호를 W(x), 에러패턴을 Epi, 부호길이를 ℓ, 정보데이타선두로 부터의 에러위치를 i로 하면, 부호어생성 다항식G(x) 및 생성되는 심볼S(x)는 식 19와 같이 된다.In the present invention, when one symbol is added to the number of symbols 2 required for symbol correction 2 and three symbols are added to improve the error detection capability in the one symbol correction RS code, that is, the number of redundant symbols is 2t + 1. The case is described using. If the transmission code is W (x), the error pattern is Epi, the code length is 1, and the error position from the information data head is i, the codeword generating polynomial G (x) and the generated symbol S (x) are Becomes

또한, S(x)는 2차식이다.In addition, S (x) is quadratic.

부호를 작성하는 경우, ECC회로에는 정보데이타가 데이타의 선두부터 입력되기 때문에, 데이타선두는 부호어 다항식의 높은 차수에 대응한다. ECC회로를 시프트레지스터에 의해 실현하는 경우 승제다항식의 계수분만큼 래치가 필요로 된다. 이 래치에 신드롬S(x)가 유지되어 있다. 식 19를 x의 3차식으로 치환하면 식 20과 같이 된다.In the case of creating a code, since the information data is input to the ECC circuit from the beginning of the data, the data head corresponds to the higher order of the codeword polynomial. When the ECC circuit is realized by the shift register, the latch is required by the count of the multiplicative polynomial. The syndrome S (x) is held in this latch. If equation 19 is replaced with the cubic equation x, it is as in equation 20.

여기에서, A는 3개의 래치중 제1 래치에 유지되는 비트열, B는 제2 래치에 유지되는 비트열, C는 제3 래치에 유지되는 비트열을 나타낸다.Here, A denotes a bit string held in the first latch among three latches, B denotes a bit string held in the second latch, and C denotes a bit string held in the third latch.

또, 이하의 식 21의 값을 기지인 것으로 하고 각 항의 계수를 각각 H, I, J로 한다. x의 멱승수 ℓ은 사용되는 부호길이로서, 정보부의 바이트수k와 용장부의 심볼수의 합k+3과 동일하다.In addition, let the value of following formula 21 be known, and let the coefficient of each term be H, I, J, respectively. The power multiplier of x is the code length to be used, which is equal to the sum k + 3 of the number of bytes k of the information part and the number of symbols of the redundant part.

ECC회로에 있어서 데이타0 입력에 의해 1클럭 회전시키는 것은 ECC회로내에 생성된 신드롬S(x)에 x를 곱하는 것에 상당한다. 따라서, 신드롬계산을 종료한 후 0을 입력하거나 데이타입력없이 또 i클럭 회전시켰을 때의 래치의 값은 식 20과 식 21에 의해 식 22와 같이 되고 이것은 식 21에 Epi를 곱한 것과 동일하게 된다.In the ECC circuit, one clock rotation by the data 0 input is equivalent to multiplying the syndrome S (x) generated in the ECC circuit by x. Therefore, the latch value when 0 is input after the syndrome calculation is completed or when the i clock is rotated without data input is expressed as Equation 22 by Equations 20 and 21, which is equal to Equation 21 by Epi.

따라서, ECC회로에 있어서 클럭을 1회 회전시킬 때마다 A/H, B/I, C/J의 값을 계산하면 에러위치i에서 제산결과가 모두 Epi로 된다. 따라서, 제산결과가 모두 일치하는 위치를 검출하고 이 때의 제산결과를 출력하는 것에 의해 에러위치i와 에러패턴Epi를 얻을 수 있다. 사용되는 부호길이ℓ 클럭의 연산에 의해 각 래치의 제산결과가 모두 일치하는 위치가 없는 경우는 에러검출로 된다.Therefore, in the ECC circuit, if the values of A / H, B / I and C / J are calculated every time the clock is rotated once, the division result at the error position i becomes Epi. Therefore, the error position i and the error pattern Epi can be obtained by detecting a position where all division results coincide and outputting the division result at this time. If there is no position where the division result of each latch coincides with the calculation of the code length l clock used, error detection is performed.

메모리칩내부에 심볼단위정정ECC회로를 마련하기 위한 제3의 문제를 해결하기 위해서 이 심볼단위정정ECC회로에는 정보데이타출력의 종료와 동시에 이 심볼단위정정ECC회로에서 에러정정/검출정보출력이 출력되는 수단을 마련한다.To solve the third problem of providing a symbol unit correction ECC circuit in the memory chip, the symbol unit correction ECC circuit outputs error correction / detection information output from the symbol unit correction ECC circuit at the same time as the end of the information data output. Provide means to become.

첫번째로 회로규모를 증가시키지 않고 부호구성을 변경하는 것에 의해 제3의 문제를 해결하는 수단에 대해서 기술한다.First, the means for solving the third problem by changing the code configuration without increasing the circuit size will be described.

부호구성의 변경에 대해서 설명한다. 식 9에서 나타낸 바와 같이 부호로서 사용되지 않는 부분은 W(x)에 있어서 계수가 0이라고 고려된다. 따라서, 식 9를 식 23으로 나타낸 바와 같이 변환한다.The change of code structure is demonstrated. As shown in Equation 9, the portion not used as a sign is considered to have a coefficient of 0 in W (x). Therefore, equation 9 is converted as shown by equation 23.

이 식에 있어서, An-1xn-1+An-2xn-2+…An-kxn-k은 k개의 정보부를 나타내고, An-k-1xn-k-1+…Al-kxl-k는 (n-ℓ)의 계수는 0인 것을 나타내고, Al-k-1x2t+…+A0은 2t+1개의 용장부를 나타낸다. 정보기호k심볼 후에 부호화회로에 (n-1)심볼0을 입력하면 부호구성은 정보데이타부+부호로서 사용되지 않는 부분+용장데이타부로 된다. 부호화시간은 n-2t-1클럭으로 된다. 순회부호의 특성을 고려하면, 실제로 ECC회로의 메모리에 기록하는 부호는 정보부와 용장부만을 기록한다. 에러검출시에는 정보부, 용장부의 순으로 검색한다. 에러가 있는 경우에는 잉여가 생긴다. 이 잉여를 α제산회로에 의해 나누는 것에 의해서 부호미사용부의 검색을 생략할 수 있다.In this formula, A n-1 x n-1 + A n-2 x n-2 +. A nk x nk represents k information parts, and A nk-1 x nk-1 +... A lk x lk indicates that the coefficient of (n-L) is 0, and A lk-1 x 2t +... + A 0 represents 2t + 1 redundancy. If the (n-1) symbol 0 is input to the coding circuit after the information symbol k symbol, the code structure is an information data portion + a portion which is not used as a code + redundant data portion. The encoding time is n-2t-1 clocks. Considering the characteristics of the traversal code, the code actually recorded in the memory of the ECC circuit only records the information part and the redundant part. In case of error detection, the search is performed in the order of information and redundancy. If there is an error, a surplus occurs. By dividing this surplus by the? Division circuit, the search for the code unused portion can be omitted.

다음에, 복호시의 처리에 대해서 기술한다. 신드롬생성시는 용장부를 먼저 입력한 후 정보부를 입력한다. 이것은 ECC회로에 있어서의 제산은 심볼을 데이타순으로 입력하는 피드백회로로 구성되기 때문에, 부호화회로로의 데이타입력개시가 0인 경우 최초의 0이 아닌 입력까지는 0을 입력하지 않아도 연산결과는 동일하게 되기 때문이다. 에러정정/검출처리의 경우는 우선 용장부에서 에러의 유무를 검색하고 나서 정보부의 에러검색으로 들어간다. 정보부의 에러검색 개시와 동시에 데이타출력을 개시하면 정보부데이타 출력종료와 동시에 에러검출정보를 출력할 수 있다.Next, the processing at the time of decoding will be described. When generating the syndrome, enter the redundancy first and then the information. This is because the division in the ECC circuit is composed of a feedback circuit for inputting symbols in data order. Therefore, when the data input start to the coding circuit is 0, the operation result is the same even if 0 is not input until the first non-zero input. Because it becomes. In the case of error correction / detection processing, the redundancy section first searches for the presence of an error, and then enters the error section of the information section. If data output is started at the same time as the error search is started in the information section, the error detection information can be output at the same time as the information sub data output ends.

두번째로 부호화시에 시간을 들이지 않고 ECC회로에 데이타버퍼를 마련해서 제3의 문제를 해결하는 수단에 대해서 기술한다. 이 때의 부호구성과 복호에 대해서 기술한다. 부호의 구성은 종래의 방식과 마찬가지로 도 19와 같이 구성한다. 따라서, 부호화시간은 k+2t+1클럭으로 된다.Second, a description will be given of a means for solving the third problem by providing a data buffer in the ECC circuit without taking time during encoding. The code structure and decoding at this time will be described. The structure of the code is configured as in FIG. 19 as in the conventional method. Therefore, the encoding time is k + 2t + 1 clocks.

다음에, 복호시의 처리에 대해서 기술한다. 신드롬생성시는 정보부를 먼저 입력한 후 용장부를 입력한다. 그리고, 신드롬생성후 ECC회로내에서 연산을 용장심볼2t+1심볼분 먼저 실행하고, 연산결과를 데이타버퍼에 유지한다. 정보부출력은 신드롬생성후 용장부심볼길이분 이 경우에는 2t+1클럭 대기하고 나서 출력을 개시한다. 데이타버퍼에 유지되어 있던 ECC회로의 연산결과는 출력된 정보부데이타와 차례로 비트합의 계산이 실행된다. 한편, 데이타버퍼에는 ECC회로에 의해 연산된 결과가 차례로 입력되어 간다. ECC회로내의 연산은 용장부심볼분 먼저 실행되기 때문에, 정보부 데이타출력의 종료와 동시에 에러검출정보를 얻을 수 있다.Next, the processing at the time of decoding will be described. When generating the syndrome, enter the information part first and then the redundant part. After generating the syndrome, the operation is first performed in the ECC circuit for the redundant symbol 2t + 1 symbol, and the operation result is held in the data buffer. The information output is waited for 2t + 1 clock in the case of redundancy symbol length after generating the syndrome and then starts output. The calculation result of the ECC circuit held in the data buffer is performed to calculate the bit sum in order with the output information data. On the other hand, the results calculated by the ECC circuit are sequentially input to the data buffer. Since the calculation in the ECC circuit is performed first for the redundant symbols, the error detection information can be obtained at the same time as the completion of the data output of the information section.

이하, 본 발명의 실시예에 대해서 도면을 사용해서 설명한다.EMBODIMENT OF THE INVENTION Hereinafter, the Example of this invention is described using drawing.

도 1은 본 발명에 의한 데이타기억재생장치의 1실시예를 도시한 개념도이다. 본 발명에 관한 데이타의 에러정정방법 및 장치는 기록매체의 종류에 관계없이 이용할 수 있는 것이지만, 본 실시예 및 이하의 실시예에서는 기록매체의 예로서 플래시메모리를 사용한 기억재생장치(이하, 파일시스템)에 적용한 예에 대해서 설명한다.1 is a conceptual diagram showing one embodiment of a data storage and reproducing apparatus according to the present invention. The error correction method and apparatus for data according to the present invention can be used regardless of the type of recording medium. However, in the present embodiment and the following embodiments, a storage / playback apparatus using a flash memory as an example of a recording medium (hereinafter, referred to as a file system). The example applied to) is demonstrated.

도 1에 있어서, (101)은 기억재생장치(이하, 파일시스템이라 한다)이고, 메모리칩(102) 및 인터페이스LSI(106)으로 구성되어 있다. 메모리(103)은 데이타의 기록 또는 재생을 실행하는 기록매체이고, 메모리칩(102)는 메모리(103)과 내부ECC회로(104)를 포함하는 칩이다. 인터페이스LSI(106)은 플래시메모리(103)을 이용한 파일시스템(101)과 시스템버스(109)의 인터페이스제어를 실행하는 LSI이다. 보다 구체적으로는 본 실시예에 관한 파일시스템은 예를 들면 도 2에 도시한 바와 같이 구성된다.In Fig. 1, reference numeral 101 denotes a memory reproducing apparatus (hereinafter referred to as a file system), and is composed of a memory chip 102 and an interface LSI 106. The memory 103 is a recording medium for recording or reproducing data, and the memory chip 102 is a chip including the memory 103 and the internal ECC circuit 104. The interface LSI 106 is an LSI that performs interface control between the file system 101 and the system bus 109 using the flash memory 103. More specifically, the file system according to the present embodiment is configured as shown in FIG. 2, for example.

도 2는 도 1의 데이타기억재생장치의 전체구성을 도시한 블럭도이다. 도 2에 있어서, 메모리칩(102)는 메모리(103)과 내부ECC회로(104)를 포함하는 기록매체이다. 인터페이스LSI(106)은 메모리칩(102)를 사용한 파일시스템(101)과 시스템버스(109)의 인터페이스제어를 실행하는 LSI이다. 마이크로컴퓨터(504)는 시스템버스(109)를 통해서 보내져 온 명령을 해석하고 해석결과에 따라서 메모리칩(102)로의 데이타리드 및 라이트(Read/Write, 이하 R/W) 및 RAM(505)로의 데이타R/W를 제어하는 중앙처리장치(CPU(5041))을 구비한 파일시스템(101)의 컨트롤러의 역할을 담당하고 있다. RAM(505)는 메모리칩(102)의 데이타를 인테페이스LSI(106)내로 흐르게 할 때 데이타의 버퍼의 역할을 담당하는 보조메모리이다. 상기 각 유닛은 제어신호선, 어드레스버스, 데이타버스에 의해 접속되어 있다.FIG. 2 is a block diagram showing the overall configuration of the data memory reproducing apparatus of FIG. In FIG. 2, the memory chip 102 is a recording medium including a memory 103 and an internal ECC circuit 104. As shown in FIG. The interface LSI 106 is an LSI that performs interface control between the file system 101 and the system bus 109 using the memory chip 102. The microcomputer 504 interprets commands sent through the system bus 109 and according to the analysis result, data reads and writes (Read / Write, R / W) to the memory chip 102 and data to the RAM 505. It is in charge of the controller of the file system 101 having a central processing unit (CPU 5041) for controlling the R / W. The RAM 505 is an auxiliary memory that serves as a buffer of data when the data of the memory chip 102 flows into the interface LSI 106. Each unit is connected by a control signal line, an address bus, and a data bus.

도 2의 파일시스템의 구체적인 실장예를 도 3에 도시한다.3 shows a specific example of implementation of the file system of FIG.

도 3은 도 2의 데이타기억재생장치의 칩실장예를 도시한 모식도이다. 도면에 있어서, 마이크로컴퓨터(504)는 시스템버스를 통해서 보내져 온 명령을 해석하고 해석결과에 따라서 메모리칩(102)로의 데이타리드 및 라이트(Read/Write, 이하 R/W) 및 RAM(505)로의 데이타R/W를 제어하는 중앙처리장치(CPU)를 구비한 파일시스템(101)의 컨트롤러의 역할을 담당하고 있다. 또한, (201)은 다른 인터페이스이다.FIG. 3 is a schematic diagram showing an example of chip mounting of the data storage and reproducing apparatus of FIG. In the figure, the microcomputer 504 interprets the instructions sent through the system bus and, according to the analysis result, to the data reads and writes (Read / Write, R / W) and RAM 505 to the memory chip 102. It is in charge of the controller of the file system 101 having a central processing unit (CPU) for controlling data R / W. Also, 201 is another interface.

다음에, 메모리칩(102)에 대해서 도 4를 사용해서 설명한다.Next, the memory chip 102 will be described with reference to FIG. 4.

도 4는 메모리칩의 전체구성을 도시한 구성도이다. 도면에 있어서, 메모리(103)은 데이타의 기록 또는 재생을 실행하는 매체, I/O버퍼(601)은 시스템버스(109)를 통해서 보내져 온 데이타 또는 내부ECC회로(104)에서 보내져 온 데이타의 버퍼의 역할을 담당하는 보조메모리이다. 디코더(602)는 메모리(5021)로의 데이타의 R/W를 실행할 때 메모리(103)상에서의 데이타기록 또는 재생위치를 제어한다. 스위치/셀렉터(603)은 메모리(103)으로의 데이타의 기록 또는 재생시에 데이타의 내부컨트롤러(604)로 부터의 제어신호에 따라서 메모리(103) 및 내부ECC회로(104)로의 데이타의 입출력의 전환을 실행하는 회로이다. 내부컨트롤러(604)는 로컬데이타버스를 통해 보내져 온 제어신호에 따라서디코더(602), 스위치/셀렉터(603)의 제어를 실행하는 회로이다. S/A&래치(605)는 메모리(103)으로 부터의 데이타의 R/W시에 데이타의 버퍼의 역할을 담당하는 보조메모리이다. 상기 각 유닛은 제어신호선, 어드레스버스, 데이타버스에 의해 접속되어 있다.4 is a configuration diagram showing an overall configuration of a memory chip. In the figure, the memory 103 is a medium for recording or reproducing data, and the I / O buffer 601 is a buffer of data sent through the system bus 109 or data sent from the internal ECC circuit 104. Auxiliary memory that plays the role of. The decoder 602 controls the data recording or reproducing position on the memory 103 when executing the R / W of data to the memory 5021. The switch / selector 603 switches the input / output of the data to the memory 103 and the internal ECC circuit 104 in accordance with a control signal from the internal controller 604 of the data at the time of recording or reproducing the data to the memory 103. Is a circuit that executes. The internal controller 604 is a circuit which performs control of the decoder 602 and the switch / selector 603 in accordance with a control signal sent through the local data bus. The S / A & latch 605 is an auxiliary memory that serves as a buffer of data at the time of R / W of the data from the memory 103. Each unit is connected by a control signal line, an address bus, and a data bus.

데이타에러정정, 검출에 사용하는 부호는 조직부호로 되는 심볼단위 정정부호이면 어느것을 사용해도 상관없지만, 제1 실시예로서 1EC리드솔로몬부호를 사용한다. 실시예에서는 에러검출능력을 향상시키기 위해 용장심볼을 1심볼추가한다. 따라서, 용장심볼은 2×1+1=3심볼로 된다. 또, 데이타심볼길이는 사용되는 용도 및 일괄해서 변환하는 데이타량에 따라 변화한다. 실시예에서는 1바이트 8비트로 하고 2048+58바이트=2106바이트의 데이타를 일괄변환하는 것으로 한다. 사용하는 갈루아(Galois)체는 이하의 조건을 만족시키는 것이면 어느 것을 사용해도 좋다.The code used for data error correction and detection may be used as long as it is a symbol unit correction code that is a tissue code. However, the 1EC lead solomon code is used as the first embodiment. In the embodiment, a redundant symbol is added to improve the error detection capability. Therefore, the redundant symbol becomes 2x1 + 1 = 3 symbols. The data symbol length varies depending on the intended use and the amount of data to be collectively converted. In the embodiment, 8 bytes of 1 byte are used, and 2048 + 58 bytes = 2106 bytes of data are collectively converted. The galois body to be used may be used as long as it satisfies the following conditions.

갈루아체의 조건:Galois condition:

에러정정능력을 t심볼로 하고, 부호어가 갈루아체GF(2m)상의 근원(original)일 때,When the error correction capability is t symbol and the codeword is the original on Galois GF (2 m ),

최대부호어길이n=2m-1심볼Maximum sign length n = 2 m -1 symbol

용장심볼수≥2t심볼Number of redundant symbols ≥ 2t symbols

최대정보기호수k=n-(용장심볼수)심볼Maximum information symbol k = n- (redundant symbol) symbol

로 나타내어진다.It is represented by

부호어W를 (w1, w1, …, wn-1)로 하면,If the codeword W is (w 1 , w 1 ,…, w n-1 ),

부호어 다항식 C(x)=wn-1xn-1+wn-2xn-2+ … + w1x+w0으로 나타내어진다.Codeword Polynomial C (x) = w n-1 x n-1 + w n-2 x n-2 +... It is represented by + w 1 x + w 0 .

이 때문에, C(x)는 GF(2m)상의 근원 1, α, …, α2t-1을 해(解)로 갖는다. 갈루아체의 조건으로서는 여러가지 값을 취할 수 있지만, 1바이트가 1심볼에 대응하고 있던 쪽이 데이타의 취급이 편리하다. 따라서, 이 조건과 상기 갈루아체의 조건에서 부호의 데이타심볼길이는 12비트로 된다. 따라서 갈루아체GF(p)의 근원 수p는 2의 12승이다. 최대부호길이n은 4095심볼로 된다.For this reason, C (x) is the source 1, α,... On GF (2 m ). , α 2t-1 as a solution. Various conditions can be taken as the conditions of the galluache, but the one whose one byte corresponds to one symbol is more convenient to handle the data. Accordingly, the data symbol length of the code becomes 12 bits under this condition and the Galois condition. Thus, the source number p of gallosome GF (p) is 12 to 2. The maximum code length n is 4095 symbols.

다음에, ECC회로 및 부호화복호방법에 대해서 설명한다. 우선, ECC회로에 대해서 도 5를 사용해서 설명한다.Next, an ECC circuit and a coding decoding method will be described. First, the ECC circuit will be described with reference to FIG. 5.

도 5는 본 발명에 의한 데이타기억재생장치의 ECC회로의 1실시예를 도시한 블럭도이다. 도면에 있어서, 12비트지연 플립플롭(이하, DFF:Delay Flip Flop라 한다)(701a), (701b), (701c)(이하, DFF(701a)∼(701c)를 가리키는 경우에는 단지 (701)이라 기재한다)는 12비트의 데이타를 1클럭분 유지하고 다음의 클럭에서 출력한다. 검출회로(702a), (702b)(총합해서 검출기(702)라 기재한다. 또, 이후의 각 회로에 대해서도 마찬가지로 기재한다)는 12비트 2입력의 배타적논리합(이하, XOR)의 계산을 실행한다. NOR회로(703)은 12비트 2입력의 부정논리합(이하, NOR)의 계산을 실행한다. 제1 스위치(704), 제2 스위치(705), 제3 스위치(706), 제5 스위치(710)은 부호화, 복호시에 데이타의 흐름을 제어한다.제4 스위치(707)은 복호시 NOR회로(703)으로 부터의 신호가 1일 때 온(ON)으로 된다. 여기에서, 제2, 제4, 제5 스위치(705), (707), (710)은 온(ON), 오프(OFF)스위치이고, 제1, 제3 스위치(704), (706)은 3점 전환스위치이다. 제1 스위치(704)는 중점 즉 오프의 위치(도시하지 않음), 흰색동그라미(○)의 접점(704a) 및 검은색동그라미(●)의 접점(704b)를 갖고 있고, 제3 스위치(706)은 흰색동그라미의 접점(706a), 중점(도시하지 않음) 및 검은색동그라미의 접점(706b)를 갖고 있다.Fig. 5 is a block diagram showing one embodiment of an ECC circuit of the data storage and reproducing apparatus according to the present invention. In the figure, 12-bit delay flip-flops (hereinafter referred to as DFF: Delay Flip Flop) 701a, 701b, and 701c (hereinafter referred to as DFFs 701a to 701c are only 701). The 12-bit data is held for one clock and output at the next clock. The detection circuits 702a and 702b (totally describe the detector 702. The following description also applies to each of the subsequent circuits) perform calculation of an exclusive logic sum (hereinafter referred to as XOR) of 12-bit two-input. . The NOR circuit 703 calculates a negative logic sum (hereinafter referred to as NOR) of two 12-bit inputs. The first switch 704, the second switch 705, the third switch 706, and the fifth switch 710 control the flow of data during encoding and decoding. The fourth switch 707 is NOR during decoding. It turns ON when the signal from the circuit 703 is one. Here, the second, fourth and fifth switches 705, 707, and 710 are ON and OFF switches, and the first and third switches 704 and 706 are 3-point selector switch. The first switch 704 has a midpoint, that is, an off position (not shown), a contact 704a of a white circle (○), and a contact 704b of a black circle (●), and the third switch 706. Has a contact 706a of a white circle, a middle point (not shown), and a contact 706b of a black circle.

승산기(708)은 승산회로(708a), (708b), (708c)로 구성되어 있고 부호생성 다항식G(x)에 대응한 계수를 데이타와 곱하는 회로이고, 각 항의 계수의 멱수는 부호어생성 다항식G(x)의 원시다항식g(x)와 용장심볼수, 갈루아체의 근원 수에 의해 결정된다. 제1 실시예의 경우, GF(212)의 원시다항식g(x)는 식 24와 같이 된다.Multiplier 708 is a circuit composed of multiplication circuits 708a, 708b, and 708c, and multiplies the coefficient corresponding to the code generation polynomial G (x) with data, and the power of the coefficient of each term is the codeword generation polynomial. It is determined by the source polynomial g (x) of G (x), the number of redundancy symbols, and the number of sources of galois. In the case of the first embodiment, the primitive polynomial g (x) of GF (2 12 ) becomes as shown in equation (24).

g(x)=x12+x6+x4+x+1g (x) = x 12 + x 6 + x 4 + x + 1

g(x)의 근을 α로 하면, 원시다항식이라는 것은 갈루아체GF(2의 m승)에 있어서 주기가 (근의 m승) -1로 되는 근을 해로 갖는 기약다항식을 의미한다. 또, 부호어생성 다항식G(x)의 차수는 부호의 용장심볼수에서 3으로 된다. 따라서, 부호어생성 다항식G(x)는 식 25와 같이 된다. 단, g(x)는 주기가 α의 m승 -1로 되는 α를 근으로 갖는 기약다항식이다. 또, 부호어생성 다항식G(x)의 각 항의 계수의 결정은 g(x)에서 얻어지는 α의 멱승에 관한 관계를 사용해서 실행할 수 있다(단, 비트연산에서는 A+B=A-B이다). 식 24의 근α를 사용해서 부호어생성 다항식G(x)를 변환하면 식 25로 된다.When the root of g (x) is α, the primitive polynomial means a weak polynomial having a root whose solution is the period (the m-square of the root) -1 in galloche GF (the m-th power of 2). The order of the codeword generation polynomial G (x) is 3 in the number of redundant symbols of the code. Therefore, the codeword generation polynomial G (x) becomes as shown in equation (25). However, g (x) is a weak polynomial having α as the root whose period is m--1 of α. The coefficient of each term in the codeword polynomial G (x) can be determined using the relation relating to the power of α obtained by g (x) (where A + B = A-B in bit operation). If the codeword generation polynomial G (x) is converted using the root α of Eq. 24, Eq.

식 24를 사용해서 식 25의 각 항의 계수를 원시원의 멱승의 형태로 변환하면 식 26과 같이 된다.Using equation 24, the coefficients of each term in equation 25 can be converted to powers of primitive sources.

G(x)=x31448x21449x+α3 G (x) = x 3 + α 1448 x 2 + α 1449 x + α 3

제산기(709)는 제산회로(709a), (709b), (709c)로 구성되어 있고 12비트DFF(701)에서 출력된 데이타를 제산하는 회로이며, 그 멱수는 부호어생성 다항식G(x)의 원시다항식g(x), 용장심볼수, 갈루아체 및 사용되는 부호길이ℓ에 의해 결정된다.The divider 709 is composed of divider circuits 709a, 709b, and 709c and divides the data output from the 12-bit DFF 701, and the number thereof is the codeword generation polynomial G (x). It is determined by the source polynomial g (x), the number of redundancy symbols, the Galloiche and the code length l used.

제1 실시예의 경우는 부호길이ℓ이 2109심볼로 된다. 따라서, 식 21, 식 22, 식 24, 식 26에서 멱수를 계산하면 부호어다항식G(x)의 각 항의 계수는 x의 2차 계수H가 α의 -2681승, 1차의 계수I가 α의 -185승, 정수항의 계수J가 α의 -2333승으로 된다. 또, XOR계산회로(720)∼(723)은 12비트의 XOR계산을 실행한다.In the case of the first embodiment, the code length? Is 2109 symbols. Therefore, when the powers are calculated in Equations 21, 22, 24, and 26, the coefficients of each term in the codeword polynomial G (x) have the second coefficient H of x -2681 power of α, and the first coefficient I of α. The coefficient -J in the integer term becomes -2333 power of α. The XOR calculating circuits 720 to 723 execute 12 bit XOR calculation.

S/A&래치(605)와 제1 스위치(704), 제3 스위치(706) 사이에는스위치/셀렉터(603)(도 4 참조)이 있지만, 도 5의 설명에서는 기능적으로 계수가 없으므로 생략한다. 또, 부호구성은 식 9, 식 23의 어느 하나의 구성을 사용해도 좋지만, 본 실시예에서는 용장부를 선두로 하는 부호구성으로 한다.Although there is a switch / selector 603 (see FIG. 4) between the S / A & latch 605, the first switch 704, and the third switch 706, the description of FIG. 5 is omitted because there is no functional coefficient. The code structure may be any one of Equations 9 and 23, but in the present embodiment, the code structure has a redundancy first.

우선, 부호화의 방법에 대해서 도 6의 도면을 사용해서 설명한다.First, the method of encoding is demonstrated using the figure of FIG.

도 6은 도 5에 도시한 ECC회로의 부호화의 동작을 설명하기 위한 흐름도이다. 도면에 있어서, 스텝(801)에 나타낸 바와 같이 I/O버퍼(601)에 입력된 데이타는 제1 스위치(704)와 제3 스위치(706)을 통해서 S/A&래치(605)와 ECC회로(104A)의 다른 회로에 입력된다. 이 때, 제1 스위치(704), 제3 스위치(706)은 각각 접점(704a), (706a)에 접속되고, 제2 스위치(705)는 온상태, 제5 스위치(710)은 오프상태로 되어 있다.FIG. 6 is a flowchart for explaining the operation of encoding of the ECC circuit shown in FIG. In the figure, as shown in step 801, the data inputted to the I / O buffer 601 is transferred to the S / A & latch 605 and the ECC circuit (via the first switch 704 and the third switch 706). Input to another circuit of 104A). At this time, the first switch 704 and the third switch 706 are respectively connected to the contacts 704a and 706a, the second switch 705 is in the on state, and the fifth switch 710 is in the off state. It is.

1심볼을 1바이트에 대응시키기 위해서 I/O버퍼(601)에 있어서 8비트정보부의 데이타에 0입력의 4비트를 부가해서 12비트입력으로 변환한다. 이 4비트는 12비트의 어느곳에 입력해도 좋지만, 상위나 하위 4비트에 집중시킨 쪽이 12비트에서 8비트로의 변환이 용이하다. 따라서, 제1 실시예에서는 상위 4비트를 0입력으로 한다. 정보데이타를 ECC회로(104)에 입력하는 것에 의해 용장부가 계산된다. 또, 동시에 S/A&래치(605)에서는 12비트의 정보가 8비트로 변환된다. 따라서, S/A&래치(605)에 접속되어 있는 메모리(103)(도시하지 않음)에는 8비트의 정보데이타가 입력된다.In order to correspond one symbol to one byte, four bits of zero input are added to the data of the eight-bit information unit in the I / O buffer 601 and converted into a 12-bit input. The 4 bits can be input in any of 12 bits, but the higher or lower 4 bits can be easily converted from 12 bits to 8 bits. Therefore, in the first embodiment, the upper 4 bits are set to 0 input. The redundant portion is calculated by inputting the information data into the ECC circuit 104. At the same time, 12 bits of information are converted into 8 bits in the S / A & latch 605. Therefore, 8-bit information data is input to the memory 103 (not shown) connected to the S / A & latch 605.

다음에, 스텝(802)에 나타낸 바와 같이 ECC회로(104A)에 0을 입력하고 12비트DFF(701)과 승산회로(708)에 의해 1986클럭계산을 계속한다. 이 때, 제1 스위치(704)는 중점에 접속되어 있고 오프상태로 되어 있으며 제4 스위치(707), 제5 스위치(710)도 오프상태로 되어 있다. 제2 스위치(705)는 온상태, 제3 스위치(706)은 그 중점에 접속되어 오프상태로 되어 있거나 0입력고정으로 되어 있다. 이것은 도 7에 도시한 바와 같이 순회부호를 시프트시키고 용장부가 정보부의 앞에 부가되는 부호구성으로 하는 조작에 대응한다.Next, as shown in step 802, 0 is input to the ECC circuit 104A, and the 1986 clock calculation is continued by the 12-bit DFF 701 and the multiplication circuit 708. At this time, the first switch 704 is connected to the midpoint and is in the off state, and the fourth switch 707 and the fifth switch 710 are also in the off state. The second switch 705 is in an on state, and the third switch 706 is connected to its midpoint and is in an off state or is fixed to zero input. This corresponds to the operation of shifting the circulating code as shown in FIG. 7 and setting the redundant portion to a code structure added before the information portion.

도 7은 본 발명에 의한 n심볼부호의 주기에 있어서의 부호미사용부, 정보부, 용장부의 배치의 1실시예를 도시한 모식도이다. 도면에 있어서, (71)은 n-(k+2t+1)심볼의 부호미사용부이고, (72)는 k심볼의 정보부이고, (73)은 2t+1심볼의 용장부이고, 식 23에 나타낸 바와 같이 정보부(72), 부호미사용부(71), 용장부(73)의 순으로 배치되어 있다. 이들 중 실제로 기록되는 것은 용장부(73)과 정보부(72)이고, (n-k-2t-1)회 0을 입력하고 순회부호를 시프트하는 것에 의해 이 순서로 배열된 부호구성으로 할 수 있다.Fig. 7 is a schematic diagram showing one embodiment of arrangement of a code unused part, an information part, and a redundant part in a period of an n symbol code according to the present invention. In the figure, (71) is the unsigned portion of the n- (k + 2t + 1) symbol, (72) is the information portion of the k symbol, (73) is the redundant portion of the 2t + 1 symbol, As shown, the information section 72, the code unused section 71, and the redundant section 73 are arranged in this order. Among them, the redundant portion 73 and the information portion 72 are actually recorded, and a code structure arranged in this order can be obtained by inputting 0 (n-k-2t-1) times and shifting the circulating code.

이와 같이 해서 시프트된 용장부(73)은 스텝(803)에 나타낸 바와 같이 S/A&래치(605)로 출력된다. 용장부(73)의 데이타는 12비트출력으로 되고 12비트DFF (701)의 내용이 차수가 높은 계수쪽부터 차례로 출력된다. 제1 스위치(704)는 접점(704b)에 접속되고, 제2 스위치(705), 제3 스위치(706), 제4 스위치(707), 제5 스위치(710)은 오프상태로 된다. 이와 같이 해서 부호화된 데이타는 S/A&래치(605)에서 메모리(103)에 기록된다. 부호화된 데이타의 기억방법은 여러가지가 있지만, 복호시의 데이타리드시에 용장부, 정보부의 순으로 순차 리드한 쪽이 편리하다.The redundant portion 73 thus shifted is output to the S / A & latch 605 as shown in step 803. The data of the redundant portion 73 is output as 12 bits, and the contents of the 12 bit DFF 701 are output in order from the coefficient having higher order. The first switch 704 is connected to the contact 704b, and the second switch 705, the third switch 706, the fourth switch 707, and the fifth switch 710 are turned off. The data encoded in this manner is recorded in the memory 103 by the S / A & latch 605. Although there are various methods of storing the encoded data, it is more convenient to sequentially read the redundant portion and the information portion at the time of decoding the data.

따라서, 본 실시예에서는 메모리상에서의 리드순이 용장부(73), 정보부(72)의 순으로 되도록 메모리(103)(도 4 참조)에 기록한다. 기록단위는 1바이트=8비트이기 때문에, 정보부(72)는 입력된 데이타를 그대로 라이트한다. 3심볼의 용장부(73)은 수바이트로 나누어 기록된다. 총비트수는 12×3비트=36비트이고, 최소한 5바이트 필요하지만 우수바이트로 나누어 기록한 쪽이 복호시에 편리하기 때문에 본 실시예에서는 6바이트로 나누어 기록된다. 도 8에 부호화시의 타이밍도를 도시한다.Therefore, in this embodiment, the reading order on the memory is recorded in the memory 103 (see Fig. 4) so that the redundancy 73 and the information 72 are in order. Since the recording unit is 1 byte = 8 bits, the information unit 72 writes the input data as it is. The redundant portion 73 of the three symbols is divided into several bytes and recorded. The total number of bits is 12x3 bits = 36 bits, and at least 5 bytes are required, but since it is convenient to record by dividing into even bytes, the data is divided into 6 bytes in this embodiment. 8 shows a timing diagram at the time of encoding.

도 8은 도 5의 부호화시의 동작을 도시한 타이밍도이다. 도 8의 (a)는 ECC회로에서 부호를 생성할 때의 타이밍도이고, 도 8의 (b)는 ECC회로에서 출력되는 데이타의 타이밍도이다. 도 8의 (a)에 있어서 정보부(72)에서 용장부(73)이 생성되고 그 후 1986클럭분만큼 DFF(701)을 공회전시킨다. 이 동안이 용장부가 생성되는 타이밍이다. 정보부(72)에서 용장부(73)을 생성하기 시작함과 동시에 ECC회로(104A)에서 S/A&래치(605)로 정보데이타가 출력되기 시작하고, DFF(701)의 공회전이 종료한 시점에서 용장부(73)이 출력되기 시작한다. 다음에, 복호에 대해서 도 9의 도면을 사용해서 설명한다.8 is a timing diagram illustrating an operation during encoding of FIG. 5. FIG. 8A is a timing diagram when a code is generated in the ECC circuit, and FIG. 8B is a timing diagram of data output from the ECC circuit. In FIG. 8A, the redundant portion 73 is generated in the information portion 72, and then the DFF 701 is idled by 1986 clock portions. During this time, the redundant portion is generated. At the time when the information unit 72 starts to generate the redundant unit 73, information data starts to be output from the ECC circuit 104A to the S / A & latch 605, and the idling of the DFF 701 ends. The redundant portion 73 starts to be output. Next, the decoding will be described using the drawing of FIG. 9.

도 9는 도 5의 복호동작을 설명하기 위한 흐름도이다. 메모리(103)에서 리드된 데이타는 스텝(901)에 나타낸 바와 같이 일단 S/A&래치(605)에 유지된다. 데이타의 리드방법은 용장부(73), 정보부(72)의 순으로 된다. 다음에, 스텝(902)에 나타낸 바와 같이 ECC회로(104A)에 용장부(73), 정보부(72)의 순으로 데이타를 입력한다. 이 때 제1 스위치(704)는 중점에 접속되어 있고 오프상태,제2 스위치(705)는 온상태, 제3 스위치(706)은 접점(706b)에 접속된다. 제4 스위치(707), 제5 스위치(710)은 오프상태로 된다.9 is a flowchart for explaining a decoding operation of FIG. 5. The data read from the memory 103 is retained in the S / A & latch 605 once, as shown in step 901. The data reading method is in the order of redundancy 73 and information 72. Next, as shown in step 902, data is input to the ECC circuit 104A in the order of redundancy 73 and information 72. At this time, the first switch 704 is connected to the midpoint, the off state, the second switch 705 is on, and the third switch 706 is connected to the contact 706b. The fourth switch 707 and the fifth switch 710 are turned off.

용장부(73)의 데이타는 메모리(103)에서 리드된 후 S/A&래치(605)에 의해 12비트의 데이타로 변환되어 ECC회로(104A)에 입력된다. 또, 정보부(72)의 데이타는 8비트이므로, S/A&래치(605)에 의해 상위 4비트를 0입력으로서 12비트로 변환하여 ECC회로(104A)에 입력된다. 용장부(73)과 정보부(72)의 데이타가 입력되는 것에 의해 ECC회로(104A)에서 신드롬이 생성된다. 다음에, 스텝(903)에 도시한 바와 같이 계산된 신드롬을 사용해서 S(x)=0인지 아닌지의 판정을 실행한다.After the redundancy 73 is read from the memory 103, the redundancy 73 is converted into 12-bit data by the S / A & latch 605 and input to the ECC circuit 104A. In addition, since the data of the information unit 72 is 8 bits, the upper 4 bits are converted into 12 bits as 0 inputs by the S / A & latch 605 and input to the ECC circuit 104A. The syndrome is generated in the ECC circuit 104A by inputting data of the redundant portion 73 and the information portion 72. Next, a determination is made as to whether S (x) = 0 using the syndrome calculated as shown in step 903.

우선, S(x)=0인 경우에 대해서 설명한다. 이것은 리드데이타에 에러가 발생하고 있지 않은 것을 나타낸다. 따라서, 이 경우에는 스텝(909)에 도시한 바와 같이 S/A&래치(605)에 유지하고 있던 정보부(72)를 그대로 출력한다. 이 때, 제1 스위치(704), 제2 스위치(705), 제3 스위치(706), 제4 스위치(707)은 오프상태, 제5 스위치(710)은 온상태로 된다.First, the case where S (x) = 0 is described. This indicates that no error has occurred in the read data. Therefore, in this case, as shown in step 909, the information part 72 held in the S / A & latch 605 is output as it is. At this time, the first switch 704, the second switch 705, the third switch 706, and the fourth switch 707 are turned off and the fifth switch 710 is turned on.

다음에, S(x)≠0인 경우에 대해서 설명한다. 이것은 리드한 데이타에 에러가 발생한 것을 나타낸다. 따라서, ECC회로(104A)는 S/A&래치(605)에 유지하고 있던 데이타를 리드하고 스텝(904)에 나타낸 바와 같은 에러정정/검출처리를 실행한다. 우선, 스텝(905)에 나타낸 바와 같이 용장부(73)의 에러검색을 실행한다. 이 때, 제2 스위치(705)는 온상태, 제1 스위치(704), 제3 스위치(706), 제4 스위치(707), 제5 스위치(710)은 오프상태로 된다. 이 때, NOR회로(703)이 1을 출력하면, 용장부(73)에 에러가 있는 것으로 된다. 이 경우에는 스텝(909)에 도시한 바와 같이 S/A&래치(605)에 유지하고 있던 정보부(72)를 그대로 출력한다. 이 때 제1 스위치(704), 제2 스위치(705), 제3 스위치(706), 제4 스위치(707)은 오프상태, 제5 스위치(710)은 온상태로 된다. NOR회로(703)이 1을 출력하지 않으면 용장부(73)에 에러가 검출되지 않은 것을 나타내기 때문에 계속해서 스텝(906)에 나타낸 바와 같이 정보부(72)의 에러검색을 실행한다. 이 때, 제1 스위치(704)는 오프상태, 제2 스위치(705)는 온상태, 제3 스위치(706)은 오프상태, 제5 스위치(710)은 온상태로 된다.Next, the case where S (x) ≠ 0 will be described. This indicates that an error has occurred in the read data. Therefore, the ECC circuit 104A reads the data held in the S / A & latch 605 and executes error correction / detection processing as shown in step 904. First, as shown in step 905, the error search of the redundant portion 73 is executed. At this time, the second switch 705 is in an on state, and the first switch 704, the third switch 706, the fourth switch 707, and the fifth switch 710 are in an off state. At this time, if the NOR circuit 703 outputs 1, the redundant portion 73 has an error. In this case, as shown in step 909, the information unit 72 held in the S / A & latch 605 is output as it is. At this time, the first switch 704, the second switch 705, the third switch 706, and the fourth switch 707 are turned off and the fifth switch 710 is turned on. If the NOR circuit 703 does not output 1, it indicates that no error is detected in the redundant portion 73. Then, as shown in step 906, the error search of the information portion 72 is executed. At this time, the first switch 704 is in the off state, the second switch 705 is in the on state, the third switch 706 is in the off state, and the fifth switch 710 is in the on state.

이 때, NOR회로(703)이 i클럭째에 1을 출력하면 정보부의 위치i에 에러가 검출되게 된다. 식 22에서 에러패턴Epi는 제4 스위치(707)로 부터의 출력과 동일하기 때문에, ECC회로(104A)는 스텝(907)에 나타낸 바와 같이 리드한 데이타와 에러패턴의 XOR을 계산하고 I/O버퍼(601)로 데이타를 출력한다. 정보부의 에러검색중 NOR회로(703)이 1을 출력하지 않는 경우에는 제4 스위치(707)은 오프상태로 되어 있기 때문에, 정보데이타는 그대로 I/O버퍼(601)로 출력된다. ECC회로(104A)가 정보부의 데이타길이k클럭연산을 실행해도 NOR회로(703)이 1을 출력하지 않는 경우에는 스텝(908)에 나타낸 바와 같이 ECC회로(104A)는 외부로 에러검출정보를 출력한다. 도 10에 복호시의 타이밍도를 도시한다.At this time, if the NOR circuit 703 outputs 1 at the i-clock, an error is detected at the position i of the information unit. Since the error pattern Epi in Equation 22 is the same as the output from the fourth switch 707, the ECC circuit 104A calculates the XOR of the read data and the error pattern as shown in step 907, and the I / O. Data is output to the buffer 601. If the NOR circuit 703 does not output 1 during the error retrieval of the information unit, the fourth switch 707 is turned off, and thus the information data is output to the I / O buffer 601 as it is. If the NOR circuit 703 does not output 1 even though the ECC circuit 104A executes the data length k clock operation of the information section, as shown in step 908, the ECC circuit 104A outputs error detection information to the outside. do. 10 shows a timing diagram at the time of decoding.

도 10은 도 5의 복호시의 에러검출 및 에러정정의 1실시예를 도시한 타이밍도로서, 도 10의 (a)는 ECC회로에서의 처리의 타이밍을 도시한 도면, 도 10의 (b)는 에러정정된 정보의 출력타이밍을 도시한 도면이다.FIG. 10 is a timing diagram showing one embodiment of error detection and error correction at the time of decoding of FIG. 5, FIG. 10A shows the timing of processing in an ECC circuit, and FIG. 10B. Is a diagram illustrating output timing of error corrected information.

도 10의 (a)에서 명확한 바와 같이 용장부(73)+정보부(72)의 구성을 갖는 조직부호에서는 정보부(72)와 용장부(73)에서 에러를 검출한다. 에러가 있는 경우에는 용장부(73)의 에러의 유무를 판정하고, 그 후 정보부의 에러를 검출함과 동시에 정정을 실행한다. ECC회로(104A)의 출력으로는 에러검출 및 정정과 동시에 정보부(72)(데이타)가 출력된다.As apparent from Fig. 10A, in the organization code having the configuration of redundancy 73 and information 72, errors are detected in information 72 and redundant 73. If there is an error, the presence or absence of an error in the redundancy unit 73 is determined. After that, an error in the information unit is detected and correction is performed. As the output of the ECC circuit 104A, the information unit 72 (data) is output at the same time as error detection and correction.

도 5에 도시한 ECC회로(104A)에 있어서는 용장부+정보부의 부호구성으로 되고 제산기(709), 검출기(702)를 채용하는 것에 의해 부호미사용부의 검출을 생략할 수 있다.In the ECC circuit 104A shown in Fig. 5, the redundancy + information section has a code structure, and by employing a divider 709 and a detector 702, detection of a code unused section can be omitted.

또, 승산기(708), 12비트DFF(701), XOR계산회로(721)∼(723)을 사용하는 것에 의해 심볼단위에서의 정정이 가능하게 되었다.The multiplier 708, the 12-bit DFF 701, and the XOR calculation circuits 721 to 723 enable correction in symbol units.

이상과 같은 방법 및 장치를 사용하는 것에 의해 메모리칩(102)를 단위로서 사용한 경우 메모리(103)의 다진기억화에 따른 데이타리드율 에러의 증가에 대해서도 충분한 에러정정능력을 갖게 할 수 있다. 또, 에러검출정보의 출력이 가능하기 때문에, 상관성이 있는 데이타 등 에러보정이 가능한 데이타에 대해서 유효하게 데이타를 사용할 수 있다. 또, 종래의 RS방식에 비해 최대 5할정도, 최소라도 3할정도 복호시간을 단축할 수 있다.By using the above-described method and apparatus, when the memory chip 102 is used as a unit, it is possible to have sufficient error correction capability even when the data lead rate error increases due to the chopped memory of the memory 103. In addition, since error detection information can be output, data can be effectively used for data capable of error correction such as correlated data. In addition, the decoding time can be shortened by up to 50% and at least 30% as compared with the conventional RS method.

또, 에러검출정보가 데이타출력종료와 동시에 출력되므로, 데이타출력후 에러검출정보의 출력을 갖는 것에 의한 외부사용자의 부담도 없어진다. 또, 회로규모는 종래RS방식에 비해 제산회로의 부가 등만으로 끝나므로 증가는 최소한으로 억제된다.In addition, since the error detection information is output at the same time as the end of data output, the burden on the external user by having the output of the error detection information after data output is eliminated. In addition, since the circuit size only ends up adding a divider circuit and the like compared with the conventional RS method, the increase is suppressed to a minimum.

다음에, 제2 실시예의 경우에 대해서 도 11∼도 15를 사용해서 설명한다.Next, the case of 2nd Example is demonstrated using FIGS.

도 11은 본 발명에 의한 데이타기억재생장치의 ECC회로의 제2 실시예를 도시한 블럭도이다. 도면에 있어서, 12비트DFF(701)은 DFF(701a), (701b), (701c)로 구성되고, 검출기(702)는 검출회로(702a), (702b)로 구성되고, 비트승산기(708)은 승산회로(708a), (708b), (708c)로 구성되고, 비트승산기(709)는 제산회로(709a), (709b), (709c)로 구성되어 있는 점은 도 5와 동일하다. 또, 12비트DFF(701), 검출기(702), NOR회로(703), 제1 스위치(704), 제2 스위치(705), 제3 스위치(706), 제5 스위치(710), 제4 스위치(707), 비트승산회로(708), 비트제산기(709), XOR계산회로(720)∼(723)은 제1 실시예와 동일한 기능을 갖는 것이다.Fig. 11 is a block diagram showing the second embodiment of the ECC circuit of the data storage and reproducing apparatus according to the present invention. In the figure, the 12-bit DFF 701 is composed of DFFs 701a, 701b, and 701c, the detector 702 is composed of detection circuits 702a, 702b, and a bit multiplier 708. Is composed of multiplication circuits 708a, 708b, and 708c, and the bit multiplier 709 is composed of division circuits 709a, 709b, and 709c. The 12-bit DFF 701, the detector 702, the NOR circuit 703, the first switch 704, the second switch 705, the third switch 706, the fifth switch 710, and the fourth The switch 707, the bit multiplication circuit 708, the bit divider 709, and the XOR calculation circuits 720 to 723 have the same functions as in the first embodiment.

도 11에 있어서는 12비트버퍼(711)이 새로 마련되어 있고, 12비트버퍼(711)은 제1∼제3 버퍼(711a), (711b), (711c)로 구성되어 있다. 이 12비트버퍼(711)은 12비트의 데이타를 1클럭분 유지해 두는 것이다. 또, 도 5와 마찬가지로 S/A&래치(605)와 제1 스위치(704), 제3 스위치(706) 사이에는 스위치/셀렉터(603)이 있지만, 도 11의 설명에서는 기능적으로 관계가 없기 때문에 생략하였다.In Fig. 11, a 12-bit buffer 711 is newly provided, and the 12-bit buffer 711 is composed of first to third buffers 711a, 711b, and 711c. This 12-bit buffer 711 holds 12 bits of data for one clock. In addition, although there is a switch / selector 603 between the S / A & latch 605, the first switch 704, and the third switch 706 as in FIG. 5, the description in FIG. 11 is omitted because it is not functionally related. It was.

다음에, 부호구성에 대해서 설명한다. 부호구성은 식 9, 식 23의 어느쪽의 부호구성을 사용해도 좋지만, 제2 실시예에서는 정보부(72)의 뒤에 용장부(73)을 부가한 구성으로 한다. 다음에 ECC회로(104B) 및 부호화복호방법에 대해서 도 12∼도 15를 사용해서 설명한다.Next, the code structure will be described. Although the code structure may use either code structure of Formula 9 and Formula 23, in the 2nd Example, it is set as the structure which added the redundant part 73 after the information part 72. As shown in FIG. Next, the ECC circuit 104B and the encoding / decoding method will be described with reference to FIGS. 12 to 15.

우선, 부호화의 방법에 대해서 도 12의 도면을 사용해서 설명한다.First, the method of encoding is demonstrated using the figure of FIG.

도 12는 도 11의 부호화의 동작을 도시한 흐름도이다. 스텝(1301)에 나타낸 바와 같이 I/O버퍼(601)에 입력된 데이타는 제1 스위치(704)와 제3 스위치(706)을 통해서 S/A&래치(605)와 ECC회로(104B)에 입력된다. 이 때, 제1 스위치(704), 제3 스위치(706)은 각각 접점(704a), (706a)측에 접속되고 제2 스위치(705)는 온상태, 제5 스위치(710)은 오프상태로 된다. 제1 실시예와 마찬가지의 이유에서 I/O버퍼(601)은 8비트입력을 12비트입력으로 변환한다. 0입력의 4비트는 12비트의 어느곳에 입력해도 좋지만, 상위나 하위 4비트에 집중시킨 쪽이 12비트에서 8비트로의 변환이 용이하다. 따라서, 제2 실시예에서는 상위 4비트에 입력한다. 정보데이타를 입력하는 것에 의해 ECC회로(104B)에서는 용장부가 계산된다. 계산된 용장부는 스텝(1302)에 나타낸 바와 같이 S/A&래치(605)로 출력된다. 용장부의 데이타는 12비트출력으로 되고 12비트DFF(701)의 내용이 차수가 높은 쪽부터 차례로 출력된다. 제1 스위치(704)는 접점(704b)측에 접속되고, 제2 스위치(705), 제3 스위치(706), 제4 스위치(707), 제5 스위치(710)은 오프상태로 된다. 이와 같이 해서 부호화된 데이타는 S/A&래치(605)에서 스텝(1303)에 나타낸 바와 같이 메모리(103)에 기록된다. 부호화된 데이타의 기억방법은 여러가지가 있지만, 복호시의 데이타리드시에 부호구성과 동일한 순으로 순차 리드한 쪽이 편리하다. 따라서, 제2 실시예에서는 메모리(103)상에서의 리드순이 정보부, 용장부의 순으로 되도록 메모리(103)에 기록한다. 기록단위는 1바이트이므로 3심볼의 용장부는 제1 실시예와 마찬가지로 수바이트로 나누어 기록된다. 제1 실시예일 때와 마찬가지의 이유에서 제2 실시예에서는 6바이트로 나누어 기록된다. 도 13에 부호화시의 타이밍도를 도시한다.12 is a flowchart showing the operation of the encoding of FIG. As shown in step 1301, data input to the I / O buffer 601 is input to the S / A & latch 605 and the ECC circuit 104B through the first switch 704 and the third switch 706. do. At this time, the first switch 704 and the third switch 706 are connected to the contacts 704a and 706a, respectively, and the second switch 705 is in the on state and the fifth switch 710 is in the off state. do. For the same reason as in the first embodiment, the I / O buffer 601 converts an 8-bit input into a 12-bit input. The 4 bits of 0 input can be input to any of 12 bits, but the higher or lower 4 bits can be easily converted from 12 bits to 8 bits. Therefore, in the second embodiment, input is made to the upper four bits. By inputting the information data, the redundant portion is calculated in the ECC circuit 104B. The calculated redundant portion is output to the S / A & latch 605 as shown in step 1302. The redundant data is 12-bit output, and the contents of the 12-bit DFF 701 are output in order from the higher order. The first switch 704 is connected to the contact 704b side, and the second switch 705, the third switch 706, the fourth switch 707, and the fifth switch 710 are turned off. The data encoded in this manner is recorded in the memory 103 as shown in step 1303 in the S / A & latch 605. Although there are various methods of storing encoded data, it is more convenient to sequentially read the data lead during decoding in the same order as the code structure. Therefore, in the second embodiment, the reading order on the memory 103 is recorded in the memory 103 in the order of the information part and the redundant part. Since the recording unit is one byte, the redundant portion of the three symbols is recorded by dividing into several bytes as in the first embodiment. For the same reason as in the first embodiment, the second embodiment is divided into six bytes for recording. 13 shows a timing diagram at the time of encoding.

도 13은 도 11의 ECC회로의 부호화시의 동작을 도시한 타이밍도로서, 도 13의 (a)는 ECC회로 내부에서 부호를 구성할 때의 타이밍도이고, 도 13의 (b)는 ECC회로에서 출력되는 데이타출력의 타이밍도이다. 도 13의 (a)에 있어서, 정보부(82)에서 용장부(83)이 생성된다. 용장부(83)이 생성되면 도 13의 (b)에 도시한 바와 같이 동시에 정보부(82)가 ECC회로(104B)에서 S/A&래치(605)로 출력되고, 용장부(83)이 생성되면 이 용장부는 순차 S/A&래치(605)로 출력된다.FIG. 13 is a timing diagram showing an operation during encoding of the ECC circuit of FIG. 11, FIG. 13A is a timing diagram when a code is formed inside the ECC circuit, and FIG. 13B is an ECC circuit. This is the timing chart of the data output from. In FIG. 13A, the redundant portion 83 is generated in the information portion 82. When the redundant portion 83 is generated, as shown in FIG. 13B, the information portion 82 is simultaneously output from the ECC circuit 104B to the S / A & latch 605, and the redundant portion 83 is generated. This redundant portion is sequentially output to the S / A & latch 605.

다음에, 부호에 대해서 도 14의 흐름도를 사용해서 설명한다.Next, reference numerals will be described using the flowchart shown in FIG.

도 14는 도 11의 복호동작을 도시한 흐름도이다. 도면에 있어서, 메모리(103)에서 리드된 데이타는 스텝(1401)에 나타낸 바와 같이 일단 S/A&래치(605)에 유지된다. 이 때, 데이타의 리드방법은 정보부(82), 용장부(83)의 순으로 된다.FIG. 14 is a flowchart showing the decoding operation of FIG. In the figure, the data read from the memory 103 is held in the S / A & latch 605 once as shown in step 1401. At this time, the data reading method is in the order of the information unit 82 and redundancy unit 83.

다음에, 스텝(1402)에 나타낸 바와 같이 ECC회로(104)에 정보부(82), 용장부(83)의 순으로 데이타를 입력한다. 이 때, 제1 스위치(704)는 오프상태, 제2 스위치(705)는 온상태, 제3 스위치(706)은 접점(706b)측에 접속된다. 제4 스위치(707), 제5 스위치(710)은 오프상태로 된다.Next, as shown in step 1402, data is input to the ECC circuit 104 in the order of the information unit 82, the redundant unit 83, and so on. At this time, the first switch 704 is in the off state, the second switch 705 is in the on state, and the third switch 706 is connected to the contact 706b side. The fourth switch 707 and the fifth switch 710 are turned off.

부호화된 데이타는 ECC회로(104B)에 입력된다. 용장부(83)의 데이타는 메모리에서 리드된 후에 12비트의 데이타로 변환되어 입력된다. 또, 정보부(82)의 데이타는 8비트이므로, 상위 4비트를 0입력으로서 12비트로 변환해서 입력한다.The encoded data is input to the ECC circuit 104B. The data of the redundant portion 83 is read from the memory and then converted into 12-bit data and input. In addition, since the data of the information unit 82 is 8 bits, the upper 4 bits are converted into 12 bits as 0 input and input.

정보부(82)와 용장부(83)의 데이타가 입력되는 것에 의해 ECC회로(104B)에서는 신드롬이 생성된다. 다음에, 스텝(1403)에 나타낸 바와 같이 계산된 신드롬을 사용해서 S(x)=0의 판정을 실행한다.The syndrome is generated in the ECC circuit 104B by inputting the data of the information unit 82 and the redundant unit 83. Next, a determination of S (x) = 0 is performed using the syndrome calculated as shown in step 1403.

우선, S(x)=0인 경우를 설명한다. 이것은 리드데이타에 에러가 발생하고 있지 않은 것을 나타낸다. 따라서, 이 경우에는 스텝(1410)에 나타낸 바와 같이 S/A&래치(605)에 유지하고 있던 정보부를 그대로 출력한다. 이 때, 제1 스위치(704), 제2 스위치(705), 제3 스위치(706), 제4 스위치(707)은 오프상태, 제5 스위치(710)은 온상태로 된다.First, the case where S (x) = 0 is described. This indicates that no error has occurred in the read data. Therefore, in this case, as shown in step 1410, the information part held in the S / A & latch 605 is output as it is. At this time, the first switch 704, the second switch 705, the third switch 706, and the fourth switch 707 are turned off and the fifth switch 710 is turned on.

다음에, S(x)≠0인 경우를 설명한다. 이것은 리드한 데이타에 에러가 발생한 것을 나타낸다. 따라서, ECC회로(104B)는 S/A&래치(605)에 유지하고 있던 데이타를 리드한다. 이 때, ECC회로(104)는 스텝(1404)에 나타낸 바와 같이 에러정정/검출처리를 실행한다.Next, the case where S (x) ≠ 0 will be described. This indicates that an error has occurred in the read data. Therefore, the ECC circuit 104B reads data held in the S / A & latch 605. At this time, the ECC circuit 104 executes error correction / detection processing as shown in step 1404.

우선, 스텝(1405)에 나타낸 바와 같이 ECC회로(104)에 0을 입력한 상태에서 3심볼 즉 ECC의 용장심볼분만큼 연산한다. ECC회로(104)에는 3개의 버퍼(711a), (711b), (711c)가 마련되어 있으므로, 계산결과는 3클럭 지연해서 제5 스위치(710) 바로 앞의 XOR계산회로(720)으로 출력된다. 이 때, 제1 스위치(704)는 오프상태, 제2 스위치(705), 제3 스위치(706), 제5 스위치(710)은 오프상태로 된다. 이 때의 연산은 ECC회로(104B)내부의 클럭에 의해 계산을 실행한다.First, as shown in step 1405, three symbols, that is, redundant symbols of ECC, are calculated in the state where 0 is input to the ECC circuit 104. Since the ECC circuit 104 is provided with three buffers 711a, 711b, and 711c, the calculation results are delayed by three clocks and outputted to the XOR calculation circuit 720 immediately before the fifth switch 710. At this time, the first switch 704 is turned off, the second switch 705, the third switch 706, and the fifth switch 710 are turned off. The calculation at this time is executed by the clock inside the ECC circuit 104B.

다음에, 스텝(1406)에 나타낸 바와 같이 정보부의 에러검색을 실행한다. 스텝(1406)의 연산후에 ECC회로(104B)는 외부클럭에 의해 제어된다. 이 때, 제1 스위치(704)는 오프상태, 제2 스위치(705)는 온상태, 제3 스위치(706)은 오프상태,제5 스위치(710)은 온상태로 된다. ECC회로(104B)는 정보부(82)의 데이타출력보다 3클럭 진행하여 계산을 실행하고 있지만, 버퍼(711)에 의해 제5 스위치(710) 바로 앞의 XOR계산회로(720)에 의해 정보데이타와 연산을 실행할 때는 모두 위치i에 있어서의 데이타로 된다. 이 때, NOR회로(703)이 i클럭째에 1을 출력하면 정보부의 위치i에 에러가 검출된 것으로 된다. 식 22에 의해 에러패턴Epi는 제4 스위치(707)로 부터의 출력과 동일하기 때문에, ECC회로(104B)는 스텝(1407)에 나타낸 바와 같이 리드한 데이타와 에러패턴의 XOR을 계산하고 I/O버퍼(601)로 데이타를 출력한다. 정보부(82)의 데이타에 의해 NOR회로(703)이 1을 출력하지 않는 경우에는 그 위치에는 에러가 없는 것을 의미하기 때문에, 데이타는 그대로 I/O버퍼(601)로 출력된다.Next, as shown in step 1406, an error search of the information unit is executed. After the calculation of step 1406, the ECC circuit 104B is controlled by an external clock. At this time, the first switch 704 is in the off state, the second switch 705 is in the on state, the third switch 706 is in the off state, and the fifth switch 710 is in the on state. The ECC circuit 104B advances the calculation by three clocks than the data output of the information section 82, but the information is generated by the XOR calculation circuit 720 immediately before the fifth switch 710 by the buffer 711. When the operation is performed, all data is in position i. At this time, if the NOR circuit 703 outputs 1 at the i-clock, an error is detected at the position i of the information unit. Since the error pattern Epi is the same as the output from the fourth switch 707 by the equation 22, the ECC circuit 104B calculates the XOR of the read data and the error pattern as shown in step 1407, and I / O. Data is output to the O buffer 601. If the NOR circuit 703 does not output 1 by the data of the information unit 82, it means that there is no error at that position, and therefore the data is output to the I / O buffer 601 as it is.

다음에, 스텝(1407)에 나타낸 바와 같이 용장부(83)의 에러검색을 실행한다. 이 때, 제1 스위치(704)는 오프상태, 제2 스위치(705)는 온상태, 제3 스위치(706), 제4 스위치(707), 제5 스위치(710)은 오프상태로 된다. 이 때, NOR회로(703)이 1을 출력하면, 용장부(83)에 에러가 검출된 것으로 된다. NOR회로(703)이 1을 출력하지 않으면 용장부(83)에 에러가 검출되지 않은 것을 나타낸다. ECC회로(104B)가 용장부의 데이타길이 3클럭연산을 실행해도 NOR회로(703)이 1을 출력하지 않는 경우에는 스텝(1409)에 나타낸 바와 같이 에러검출처리를 실행한다. ECC회로(104B)는 외부로 에러검출정보를 출력한다. 정보부(82)의 데이타는 버퍼(711)에 의해 ECC회로(104B)내의 계산보다 3클럭 지연해서 출력되고 있기 때문에, 에러검출정보의 출력과 동시에 정보데이타부의 출력이 종료한다. 도 15에복호시의 타이밍도를 도시한다.Next, as shown in step 1407, an error search of the redundant portion 83 is executed. At this time, the first switch 704 is in an off state, the second switch 705 is in an on state, and the third switch 706, the fourth switch 707, and the fifth switch 710 are in an off state. At this time, when the NOR circuit 703 outputs 1, an error is detected in the redundant portion 83. If the NOR circuit 703 does not output 1, it indicates that no error is detected in the redundant portion 83. If the NOR circuit 703 does not output 1 even though the ECC circuit 104B executes the data length 3 clock operation of the redundant portion, the error detection process is executed as shown in step 1409. The ECC circuit 104B outputs error detection information to the outside. Since the data of the information unit 82 is output by the buffer 711 three clock delays from the calculation in the ECC circuit 104B, the output of the information data unit is terminated at the same time as the output of the error detection information. 15 shows a timing diagram at the time of decoding.

도 15는 도 11의 복호시의 에러검출 및 에러정정의 1실시예를 도시한 타이밍도로서, 도 15의 (a)는 ECC회로에서의 처리의 타이밍을 도시한 도면이고, 도 15의 (b)는 에러정정된 정보의 출력타이밍을 도시한 도면이다.FIG. 15 is a timing diagram showing an embodiment of error detection and error correction at the time of decoding in FIG. 11, FIG. 15A is a diagram showing the timing of processing in an ECC circuit, and FIG. 15B ) Shows the output timing of error corrected information.

도 15의 (a)에서 명확한 바와 같이 정보부(82)+용장부(83)의 구성을 갖는 조직부호의 정보부(82)와 용장부(83)에서 에러의 유무의 검출을 실행한다. 에러가 있는 경우에는 도 15의 (b)에 도시한 바와 같이 정보부의 에러를 정정하고 버퍼(711)로 출력하고 3클럭 지연해서 ECC회로(104B)에서 출력된다. 다음에, 용장부(83)의 에러검출, 정정이 실행된다. 본 실시예에 있어서는 버퍼(711)에 의해 정보부(82)의 출력을 3클럭분 지연시키고 있으므로, 용장부(83)의 에러검출 및 정정종료와 동시에 정보부(82)의 출력이 완료된다.As is clear from Fig. 15A, the information 82 and the redundancy 83 of the organization code having the structure of the information 82 and the redundancy 83 are detected. If there is an error, as shown in Fig. 15B, the error of the information unit is corrected, outputted to the buffer 711, and delayed three clocks, and outputted from the ECC circuit 104B. Next, the error detection and correction of the redundant portion 83 are executed. In this embodiment, since the output of the information unit 82 is delayed by three clocks by the buffer 711, the output of the information unit 82 is completed at the same time as the error detection and correction of the redundant unit 83 are completed.

도 11에 도시한 ECC회로(104B)에 있어서는 정보부+용장부의 부호구성으로 하고, 제산기(709), 검출기(702)를 채용하는 것에 의해 부호미사용부의 검출을 생략할 수 있다.In the ECC circuit 104B shown in FIG. 11, the code structure of the information part + redundant part is used, and the detection of the code unused part can be omitted by employing the divider 709 and the detector 702. FIG.

또, 승산기(708), 12비트DFF(701), XOR계산회로(721)∼(723)을 사용하는 것에 의해 심볼단위에서의 정정이 가능하게 된다. 이상과 같은 방법 및 장치를 사용하는 것에 의해 메모리칩(102)를 단위로서 사용한 경우, 메모리(103)의 다진기억화에 따른 데이타리드율 에러의 증가에 대해서도 충분한 에러정정능력을 갖게 할 수 있다. 또, 에러검출정보의 출력이 가능한 것에 의해 상관성이 있는 데이타 등 에러보정이 가능한 데이타에 대해서 유효하게 데이타를 사용할 수 있다.The multiplier 708, the 12-bit DFF 701, and the XOR calculation circuits 721 to 723 enable correction in symbol units. By using the above-described method and apparatus, when the memory chip 102 is used as a unit, it is possible to have sufficient error correction capability even when the data lead rate error increases due to the chopped memory of the memory 103. In addition, since the error detection information can be output, data can be effectively used for data capable of error correction, such as correlated data.

또, 종래의 RS방식에 비해 최대 5할정도, 최소라도 3할정도 복호시간을 단축할 수 있다.In addition, the decoding time can be shortened by up to 50% and at least 30% as compared with the conventional RS method.

또, 에러검출정보가 데이타출력종료와 동시에 출력되므로 데이타출력후 에러검출정보의 출력을 갖는 것에 의한 외부사용자의 부담도 없어진다. 또, 이 방식의 부호화는 종래 RS방식과 동일하기 때문에 부호화시간이 짧아진다는 이점이 있다.In addition, since the error detection information is output at the same time as the end of data output, the burden on the external user by having the output of the error detection information after data output is eliminated. In addition, since the encoding of this system is the same as the conventional RS system, the encoding time is shortened.

또한, 제1 실시예 및 제2 실시예에 관한 파일시스템은 도 16에 도시한 바와 같이 디지탈카메라나 휴대정보단말기기, 휴대전화, PHS용 기억장치에도 사용할 수 있다.The file systems according to the first and second embodiments can also be used for digital cameras, portable information terminal devices, cellular phones, and PHS storage devices as shown in FIG.

도 16은 디지탈카메라, 휴대정보단말, 휴대전화와 퍼스널컴퓨터의 접속을 도시한 모식도이다. 도면에 있어서, (91)은 디지탈카메라, (92)는 휴대단말이다. 휴대전화(93)은 휴대정보단말의 일부이지만, 이 도면에 있어서는 별도로 도시되어 있다. (94)는 퍼스널컴퓨터(이하, PC라 한다), (95), (96), (97)은 메모리칩이다.Fig. 16 is a schematic diagram showing a connection between a digital camera, a portable information terminal, a cellular phone and a personal computer. In the figure, reference numeral 91 denotes a digital camera and 92 denotes a portable terminal. The cellular phone 93 is part of the portable information terminal, but is shown separately in this figure. Reference numeral 94 denotes a personal computer (hereinafter referred to as a PC), 95, 96 and 97 are memory chips.

이 구성에 있어서, 메모리칩(95)∼(97)은 디지탈카메라(91)이나 휴대정보단말(92)에 착탈가능한 가반형 기억매체 예를 들면 플래시메모리를 수용한 카드형의 기억매체인 플래시메모리시스템을 구성하고, 외부사용자에 의한 에러정정 등은 기기본체측에서 실행하는 것으로 한다. 가반형 기억매체의 인터페이스나 형상 등의 규격은 사용하는 기기에 따라 어느 것을 사용해도 좋다.In this configuration, the memory chips 95 to 97 are removable memory media that can be attached to or detached from the digital camera 91 or the portable information terminal 92, for example, a flash memory which is a card type storage medium containing a flash memory. It is assumed that a system is configured and error correction by an external user is performed on the apparatus main body side. Any standard for the interface, shape, and the like of the portable storage medium may be used depending on the equipment used.

또, 디지탈카메라(91)에 의해 기록된 데이타를 사용해서 PC(94) 디지탈카메라본체상의 소프트 또는 하드에서 에러보정 등을 실행할 수도 있다.The data recorded by the digital camera 91 can also be used to perform error correction or the like in soft or hard on the PC 94 digital camera body.

반도체메모리의 고집적화 다진기억화에 의해 경년변환에 의한 리텐션에러는 증가한다고 예측된다. 대책으로서는 ECC에 의한 정정수단이 유효하지만, 다진기록화에 의해 1소자에서 여러개의 비트에러가 발생한다는 가능성이나 메모리칩에 ECC회로(104)를 실장하지 않으면 안된다는 문제때문에 종래와 같은 비트단위정정ECC에서는 충분한 비트신뢰율을 얻을 수 없는 경우가 있다.It is expected that retention errors due to secular conversion will increase due to high integration and miniaturization of semiconductor memories. As a countermeasure, the ECC correction means is effective. However, in the conventional bit unit correction ECC, the ECC circuit 104 must be mounted on the memory chip due to the possibility that multiple bit errors occur in one element due to the pulverized recording. There may be cases where a sufficient bit reliability rate cannot be obtained.

본 발명은 그와 같은 경우에 수비트단위로 심볼단위정정을 실행하는 리드솔로몬부호방식을 사용하는 것에 의해 1소자에서의 여러개의 비트에러에도 대응할 수 있는 것을 가능하게 하는 것이다. 또, 리드솔로몬방식ECC회로(104)를 메모리칩에 탑재할 때 종래 리드솔로몬방식ECC회로(104)를 탑재할 때의 3개의 문제점 즉 회로규모, 복호시간, 복호시의 편리성을 해결하는 것을 가능하게 하는 것이다.The present invention makes it possible to cope with a number of bit errors in one element by using the Reed-Solomon coding method which performs symbol unit correction in units of several bits in such a case. In addition, when mounting the Reed-Solomon type ECC circuit 104 in a memory chip, it is possible to solve three problems when mounting the Reed Solomon type ECC circuit 104, namely, circuit size, decoding time, and convenience in decoding. To make it possible.

회로규모에 대해서는 부호화회로와 복호회로를 공용하는 회로구성에 의해 온칩ECC에 충분한 회로규모를 실현하는 것을 가능하게 하는 것이다. 복호시간에 대해서는 식 24∼식 28로 나타낸 알고리듬으로 부호복호시간을 단축하기 위한 수단을 마련하는 것에 의해 동일한 부호방식을 사용하는 종래예보다 3할∼5할정도의 복호시간단축을 실현하는 것을 가능하게 하는 것이다.In terms of the circuit size, a circuit configuration in which both the encoding circuit and the decoding circuit are shared makes it possible to realize a sufficient circuit size for the on-chip ECC. Regarding the decoding time, by providing the means for shortening the code decoding time by the algorithms represented by the equations (24) to (28), it is possible to realize a decoding time shortening of about 30 to 50% compared to the conventional example using the same coding method. It is to make it.

복호시의 편리성에 대해서는 정보데이타출력의 종료와 동시에 심볼단위정정ECC회로(104)에서 에러정정/검출정보출력이 출력되는 수단을 마련하는 것에 의해 데이타출력종료와 동시에 에러검출정보를 출력하는 것을 가능하게 하는것이다.For the convenience of decoding, it is possible to output the error detection information at the same time as the end of the data output by providing a means for outputting the error correction / detection information output from the symbol unit correction ECC 104 at the same time as the end of the information data output. To do it.

이상 본 발명자에 의해 이루어진 발명을 상기 실시예에 따라 구체적으로 설명했지만, 본 발명은 상기 실시예에 한정되는 것은 아니고 그 요지를 이탈하지 않는 범위에서 여러가지 변경가능한 것은 물론이다.As mentioned above, although the invention made by this inventor was demonstrated concretely according to the said Example, this invention is not limited to the said Example and can be variously changed in the range which does not deviate from the summary.

Claims (18)

메모리를 내장한 메모리칩과 상기 메모리칩의 내측에 기억대상의 정보데이타를 에러정정부호화하고 또한 에러정정부호를 생성하는 내부에러정정 부호회로를 마련하고, 상기 내부에러정정 부호회로는 상기 메모리에서 리드한 에러정정부호를 사용하여 상기 에러정정부호를 복호하는 것을 특징으로 하는 기억재생장치.A memory chip having a built-in memory and an internal error correcting code circuit for error correcting and storing error correction information data inside the memory chip are provided, and the internal error correcting code circuit is read from the memory. And decoding the error correcting code using one error correcting code. 제1항에 있어서,The method of claim 1, 상기 내부에러정정 부호회로는 상기 정보데이타를 에러정정 부호화하는 부호화회로와 상기 에러정정 부호화된 정정데이타를 복호하는 복호회로를 구비하는 것을 특징으로 하는 기억재생장치.And the internal error correction code circuit comprises an encoding circuit for error correction encoding the information data and a decoding circuit for decoding the error correction encoded correction data. 제2항에 있어서,The method of claim 2, 상기 내부에러정정 부호회로에 있어서, 상기 부호화회로와 상기 복호회로를 공용하는 것을 특징으로 하는 기억재생장치.And the encoding circuit and the decoding circuit share the internal error correcting code circuit. 제1항에 있어서,The method of claim 1, 상기 내부에러정정 부호회로는 에러정정부호 복호시의 연산결과를 순차 비트 제산하는 제산기, 제산결과가 일정한 요건을 만족시킨 경우 에러정정을 실행하기 위한 수단, 부호길이의 데이타입력시간에서 데이타의 복호를 종료시키는 수단 및입력된 데이타의 복호가 모두 종료해도 제산결과가 일정한 요건을 만족시키지 않는 경우에는 외부회로로 에러검출정보를 출력하는 수단을 구비하는 것을 특징으로 하는 기억재생장치.The internal error correction code circuit includes a divider for sequentially dividing the operation result in error correcting code decoding, means for performing error correction when the division result satisfies a predetermined requirement, and decoding data at a data input time of a code length. And means for outputting error detection information to an external circuit if the division result does not satisfy a predetermined requirement even when the decoding of the input data ends. 제4항에 있어서,The method of claim 4, wherein 상기 제산기는 여러개의 제산회로로 구성되고, 상기 에러정정수단은 상기 여러개의 제산회로의 결과가 동일한 경우에 에러정정을 실행하기 위한 검출기와 NOR회로로 구성되고, 상기 에러정보출력수단은 상기 NOR회로의 출력이 1로 되지 않는 경우에 에러정보를 출력하는 것을 특징으로 하는 기억재생장치.The divider comprises a plurality of divider circuits, the error correction means comprises a detector and a NOR circuit for performing error correction when the results of the multiple divider circuits are the same, and the error information output means comprises the NOR. And error information is output when the output of the circuit is not equal to one. 제1항에 있어서,The method of claim 1, 상기 내부에러정정 부호회로는 에러정정회로와 에러정정부호 복호시에 상기 에러정정회로의 연산결과를 정보데이타에 부가한 용장비트분만큼 유지해 두는 수단을 구비하고, 데이타출력을 정보데이타에 부가한 용장분만큼 상기 에러정정회로의 연산개시보다 지연시켜 출력하는 것에 의해 상기 에러정정회로의 연산종료와 복호된 데이타의 출력을 동시에 종료시키는 것을 특징으로 하는 기억재생장치.The internal error correction code circuit includes a means for maintaining the operation result of the error correction circuit for redundant bits added to the information data during error correction circuit and error correction code decoding, and the redundant output data to the information data. And outputting the operation of the error correction circuit and the output of the decoded data at the same time by outputting the delayed operation rather than the operation of the error correction circuit by minutes. 제6항에 있어서,The method of claim 6, 상기 용장비트 유지수단은 버퍼로 구성되는 것을 특징으로 하는 기억재생장치.And the redundant bit holding means comprises a buffer. 제1항에 있어서,The method of claim 1, 상기 내부에러정정 부호회로는 에러정정부호의 부호화시에 사용되는 부호길이에 따라서 정해지는 특정의 회수만큼 특정의 값을 입력해서 정보데이타와 용장비트부를 포함하는 에러정정부호의 부호구성을 변화시키는 수단을 갖는 것을 특징으로 하는 기억재생장치.Means for changing the code structure of the error correcting code including information data and redundant bits by inputting a specific value for a specific number of times determined according to the code length used for encoding the error correcting code. The memory reproducing apparatus having a. 제8항에 있어서,The method of claim 8, 상기 특정의 값은 0인 것을 특징으로 하는 기억재생장치.And said specific value is zero. 제8항에 있어서,The method of claim 8, 상기 내부에러정정 부호회로는 에러정정부호의 부호화시에 사용되는 부호길이에 따라서 정해지는 특정의 회수만큼 부호화회로에 특정의 값을 입력하고 용장비트가 정보데이타전에 놓여지도록 에러정정부호를 구성하는 수단을 갖는 것을 특징으로 하는 기억재생장치.Means for inputting a specific value into the coding circuit for a specific number of times determined according to the code length used for encoding the error correcting code, and configuring the error correcting code so that redundant bits are placed before the information data. The memory reproducing apparatus having a. 제10항에 있어서,The method of claim 10, 상기 특정의 값은 0인 것을 특징으로 하는 기억재생장치.And said specific value is zero. 제1항에 있어서,The method of claim 1, 상기 내부에러정정 부호회로에 의해 용장비트와 정보데이타를 정정부호화하는 수단과 에러정정부호 복호시에 상기 용장비트의 연산결과를 정보데이타보다 앞서 실행하는 수단을 구비하고, 상기 에러정정부호회로의 연산종료와 복호된 데이타의 출력이 동시에 종료하는 것을 특징으로 하는 기억재생장치.Means for correcting and encoding redundant bits and information data by said internal error correction code circuit, and means for executing an operation result of said redundant bits prior to information data during error correction code decoding, and calculating the error correcting code circuit. A memory reproducing apparatus characterized in that the termination and output of decoded data are terminated simultaneously. 제1항에 있어서,The method of claim 1, 내부에러정정 부호회로에 사용되는 에러정정부호는 리드솔로몬부호인 것을 특징으로 하는 기억재생장치.And an error correcting code used in the internal error correcting code circuit. (삭제).(delete). (삭제).(delete). 메모리를 내장한 메모리칩과 상기 메모리칩의 내측에 기억대상의 정보데이타를 에러정정부호화하고 또한 에러정정부호를 생성하는 내부에러정정 부호회로를 구비하고, 에러정정부호 복호시에 상기 내부에러정정 부호회로의 연산결과를 순차 여러 비트 제산하는 스텝, 제산결과가 임의의 일정한 요건을 만족시킨 경우 상기 내부에러정정 부호회로내에서 에러정정을 실행하는 스텝 및 입력된 데이타의 복호가 모두 종료해도 제산결과가 일정한 요건을 만족시키지 않는 경우에는 상기 내부에러정정부호회로 외부로 에러검출정보를 출력하고 상기 정보데이타를 복호하는 스텝을구비하는 것을 특징으로 하는 에러정정방법.A memory chip having a built-in memory and an internal error correcting code circuit for error correcting the data of the object to be stored and generating an error correcting code, wherein the internal error correcting code is decoded when the error correcting code is decoded. The step of dividing the operation result of the circuit by several bits sequentially, the step of performing error correction in the internal error correction code circuit when the division result satisfies a certain requirement, and even if the decoding of the input data is completed, the division result is And a step of outputting error detection information to the outside of the internal error correcting circuit and decoding the information data when a predetermined requirement is not satisfied. 메모리를 내장한 메모리칩과 상기 메모리칩의 내측에 기억대상의 정보데이타를 에러정정부호화하고 또한 에러정정부호를 생성하는 내부에러정정 부호회로를 구비하고, 에러정정부호 복호시에 상기 내부에러정정 부호회로의 연산결과를 정보데이타에 부가한 용장비트분만큼 유지하고 정보데이타에 부가한 용장비트분만큼 상기 연산의 개시보다 지연시켜 출력하는 것에 의해 상기 에러정정부호회로의 연산종료와 복호데이타의 출력종료를 동시에 실행하는 스텝을 구비하는 것을 특징으로 하는 에러정정방법.A memory chip having a built-in memory and an internal error correcting code circuit for error correcting the data of the object to be stored and generating an error correcting code, wherein the internal error correcting code is decoded when the error correcting code is decoded. The operation completion of the error correcting code circuit is terminated and the output of the decoding data is terminated by maintaining the calculation result of the circuit for the redundant bits added to the information data and delaying and outputting the redundant bits added to the information data from the start of the operation. And a step of simultaneously executing the error correction method. (정정) 메모리를 내장한 메모리칩과 상기 메모리칩의 내측에 기억대상의 정보데이타를 에러정정 부호화하고 또한 에러정정부호를 생성하는 내부에러정정 부호회로를 구비하고, 에러정정부호 부호화시에 사용되는 부호길이에 따른 특정의 회수만큼 부호화 회로에 일정값을 계속해서 입력하는 것에 의해서 정보데이타와 용장비트부의 구성을 변화시키는 스텝과 에러정정부호 복호시에 용장비트부의 연산결과를 정보데이타보다 앞서 실행하고 에러정정회로의 연산종료와 복호데이타의 출력종료를 동시에 실행하는 스텝을 구비하는 것을 특징으로 하는 에러정정방법.(Correction) A memory chip having a built-in memory and an internal error correction code circuit for error correction encoding information data of a storage object and generating an error correction code inside the memory chip are used for encoding an error correction code. By continuously inputting a constant value into the coding circuit for a specific number of times according to the code length, the step of changing the configuration of the information data and the redundant bit section, and the calculation result of the redundant bit section prior to the information data during error correction code decoding And an operation for simultaneously terminating the operation of the error correction circuit and terminating the output of the decoded data.
KR1019980061472A 1998-01-07 1998-12-30 Memory reproduction device and error correction method thereof KR100290964B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP98-1324 1998-01-07
JP132498 1998-01-07

Publications (2)

Publication Number Publication Date
KR19990066892A KR19990066892A (en) 1999-08-16
KR100290964B1 true KR100290964B1 (en) 2002-04-17

Family

ID=11498327

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980061472A KR100290964B1 (en) 1998-01-07 1998-12-30 Memory reproduction device and error correction method thereof

Country Status (2)

Country Link
KR (1) KR100290964B1 (en)
TW (1) TW436675B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4534498B2 (en) * 2004-01-28 2010-09-01 ソニー株式会社 Semiconductor device and its startup processing method
KR100680473B1 (en) 2005-04-11 2007-02-08 주식회사 하이닉스반도체 Flash memory device with reduced access time

Also Published As

Publication number Publication date
KR19990066892A (en) 1999-08-16
TW436675B (en) 2001-05-28

Similar Documents

Publication Publication Date Title
KR100535291B1 (en) Encoding method and memory apparatus
US7844880B2 (en) Error correction for flash memory
Choi et al. VLSI implementation of BCH error correction for multilevel cell NAND flash memory
US5170399A (en) Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack
US5491701A (en) Burst error corrector
US10243589B2 (en) Multi-bit error correction method and apparatus based on a BCH code and memory system
US4099160A (en) Error location apparatus and methods
JP3975245B2 (en) Recording / reproducing apparatus and semiconductor memory
KR101267183B1 (en) Semiconductor memory device
US5068857A (en) Error correction circuit
US7231585B2 (en) Error correction for flash memory
US20040153902A1 (en) Serial flash integrated circuit having error detection and correction
US8464141B2 (en) Programmable error correction capability for BCH codes
JP3234130B2 (en) Error correction code decoding method and circuit using this method
US8074154B2 (en) Methods and apparatus for encoding and decoding cyclic codes by processing multiple symbols per cycle
US4473902A (en) Error correcting code processing system
US5490154A (en) Method of and circuit arrangement for decoding RS-coded data signals
JP2568031B2 (en) Error detection and correction system
KR100258951B1 (en) Rs decoder having serial expansion architecture and method therefor
KR100290964B1 (en) Memory reproduction device and error correction method thereof
JPH11272568A (en) Storage reproducer, error correction method, portable information terminal and digital camera using the same
US5243604A (en) On-the-fly error correction
KR101619049B1 (en) Parallel BCH decoder
KR100304193B1 (en) Inverse circuit of reed-solomon decoder
JPH07226687A (en) Error correction processor

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee