KR20140018095A - Error check and correction circuit and memory device - Google Patents

Error check and correction circuit and memory device Download PDF

Info

Publication number
KR20140018095A
KR20140018095A KR1020130039901A KR20130039901A KR20140018095A KR 20140018095 A KR20140018095 A KR 20140018095A KR 1020130039901 A KR1020130039901 A KR 1020130039901A KR 20130039901 A KR20130039901 A KR 20130039901A KR 20140018095 A KR20140018095 A KR 20140018095A
Authority
KR
South Korea
Prior art keywords
data
error
circuit
unit
coefficient
Prior art date
Application number
KR1020130039901A
Other languages
Korean (ko)
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 삼성전자주식회사
Priority to US13/958,074 priority Critical patent/US8990667B2/en
Publication of KR20140018095A publication Critical patent/KR20140018095A/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Error Detection And Correction (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

The present invention relates to an error check and correction circuit. The error check and correction circuit of the present invention comprises a data storage unit for storing a data line; a syndrome calculation unit for calculating syndrome; an error coefficient calculation unit for calculating the coefficient of an error location searching equation using the syndrome; a latch unit for storing the coefficient; a substitution value calculation unit for calculating a substitution value using the coefficient stored in the latch unit and the address; a ziehen searching unit for outputting an error check signal indicating the existence of errors in each bit of the data line in response to a substitution result for the error location searching equation of the substitution value in the output of the data line; and an error correction unit for outputting data by correcting the errors in response to the error check signal. [Reference numerals] (12) Page buffer; (14) Buffer; (30) Decoder unit; (31_1,31_2,31_3,31_4) Syndrome calculation circuit; (32) Error coefficient calculation unit; (33) Ziehen searching unit; (35_0,35_1,35_2,35_3) Coefficient latch; (36) Substitution value calculation unit; (40) Encoder unit; (41) Parity generation circuit

Description

에러 검출 정정 회로 및 메모리 장치{ERROR CHECK AND CORRECTION CIRCUIT AND MEMORY DEVICE}ERROR CHECK AND CORRECTION CIRCUIT AND MEMORY DEVICE}

본 발명은 에러 검출 정정 회로 및 메모리 장치에 관한 것이다.The present invention relates to an error detection correction circuit and a memory device.

전기적으로 다시 쓰기가 가능한 불휘발성 반도체 기억장치(EEPROM, Electrically Erasable and Programmable Read Only Memory)의 하나로 NAND 플래시 메모리가 알려져 있다. NAND 플래시 메모리는, 복수의 메모리 셀을 직렬 접속한 NAND 셀 유닛(NAND string)를 이용하는 것으로, 작은 칩 면적으로 대용량 저장이 가능하다.NAND flash memory is known as one of electrically rewritable nonvolatile semiconductor memories (EEPROM, Electrically, Erasable, and Programmable, Read, Only Memory). A NAND flash memory uses a NAND cell unit (NAND string) in which a plurality of memory cells are connected in series, so that a large chip area can be stored.

NAND 플래쉬 메모리에서, 여러번의 다시쓰기에 수반하는 터널 산화막의 열화등에 따라, 데이터 보관 유지중에 기억소자(메모리 셀)의 보관 유지 특성이 저하되어 에러 비트의 발생율(에러율)이 증가하는 경향이 있다. 특히, NAND형 플래쉬 메모리에서, 메모리 셀의 대용량화, 즉 제조 프로세스의 미세화가 진행되면서, 에러율은 상승하는 경향이 있다. 따라서, 저장해야 할 데이터에 오류 정정 코드(ECC)(Error Correcting Code)의 리던던시 데이터를 부가하고 데이터 열로서 플래쉬 메모리에 기입하고, 읽기 시에 오류 정정 코드(ECC)의 리던던시 데이터를 기반으로 데이터의 정정을 실시함으로써, 에러 비트가 발생했을 때의 데이터의 보상이 수행된다.In the NAND flash memory, due to the deterioration of the tunnel oxide film due to several rewrites, the storage characteristic of the memory element (memory cell) is degraded during data storage, and the occurrence rate (error rate) of error bits tends to increase. In particular, in the NAND type flash memory, as the capacity of the memory cells becomes larger, that is, the manufacturing process becomes smaller, the error rate tends to increase. Therefore, redundancy data of an Error Correcting Code (ECC) is added to data to be stored, and written into the flash memory as a data string, and data is read based on the redundancy data of the Error Correcting Code (ECC) at the time of reading. By performing the correction, compensation of data when an error bit occurs is performed.

예를 들어, 특허 문헌 1에서, 에러 검출 정정 회로(ECC 회로)를 갖춘 NAND 플래시 메모리가 개시된다. 특허 문헌 1에 기재된 에러 검출 정정 회로의 치엔 탐색부에서, 수신 정보(데이터 열) 중 비트의 위치가 에러 위치 탐색 방정식에 대입되고, 해당 비트에 에러가 있는지 아닌지가 검출된다. 데이터 열의 출력시에, 치엔 탐색부에 어드레스를 최하위로부터 최상위까지 모두 대입된다. 그리고, 에러 정정 회로(에러 정정부)는, 각 비트에 에러가 있는 경우 비트의 데이터를 정정하고 정정 후의 데이터를 출력하고, 에러가 없는 경우 정정하지 않고 비트의 데이터를 그대로 출력한다.For example, in Patent Document 1, a NAND flash memory having an error detection correction circuit (ECC circuit) is disclosed. In the Chien search unit of the error detection correction circuit described in Patent Document 1, the position of a bit in the received information (data string) is substituted into the error position search equation, and it is detected whether or not an error exists in the bit. At the time of outputting the data string, all addresses are assigned to the Chien search unit from the lowest to the highest. Then, the error correction circuit (error correction unit) corrects the data of the bit when there is an error in each bit, outputs the data after the correction, and outputs the data of the bit as it is without correcting when there is no error.

일본공개특허 2009-100369호 공보Japanese Patent Publication No. 2009-100369

그러나, 상술된 특허 문헌 1에 기재된 구성에서, 데이터 열중 임의의 어드레스의 비트를 읽고자 하는 경우, 에러 정정 회로가 출력하는 비트가 일단 버퍼 메모리 등에 기억되고, 그 후, 읽고자 하는 비트의 어드레스가 버퍼 메모리에 추가적으로 공급되어야 한다. 즉, 종래의 경우, 에러 검출 정정 회로에서, 읽고자 하는 비트가 포함된 데이터 열의 모든 비트에 대한 에러 비트의 정정 처리가 종료될 때까지, 임의의 주소의 비트의 데이터의 에러 정정을 실시하고 에러 정정 후의 데이터를 고속으로 읽을 수 없는 문제가 있다.However, in the above-described configuration described in Patent Document 1, when a bit of any address in the data string is to be read, the bit output by the error correction circuit is stored once in the buffer memory or the like, and then the address of the bit to be read is It must be supplied in addition to the buffer memory. That is, in the conventional case, in the error detection correction circuit, error correction of data of bits of an arbitrary address is performed until the error bit correction processing for all bits of the data string containing the bits to be read is completed. There is a problem that data after correction cannot be read at high speed.

본 발명이 해결하고자 하는 과제는, 데이터 열 중 임의의 어드레스의 비트의 데이터의 에러 정정을 실시하고, 에러 정정 후의 데이터를 외부에 고속으로 출력할 수 있는 에러 검출 정정 회로 및 메모리 장치를 제공하는 데에 있다.SUMMARY OF THE INVENTION An object of the present invention is to provide an error detection correction circuit and a memory device capable of performing error correction of data of bits of an arbitrary address in a data string and outputting the data after error correction to the outside at high speed. Is in.

본 발명의 실시 예에 따른 에러 검출 정정 회로는, 데이터 열을 저장하는 데이터 저장부; 상기 데이터 열로부터 신드롬을 계산하는 신드롬 계산부; 상기 신드롬을 이용하여 에러 위치 탐색 방정식의 계수를 산출하는 에러 계수 계산부; 상기 계수를 저장하는 래치부; 상기 데이터 열의 위치를 가리키는 어드레스 및 상기 래치부에 저장된 계수를 이용하여 상기 에러 위치 탐색 방정식에 대입되는 대입값을 산출하는 대입값 계산부; 상기 데이터 열의 출력시에, 상기 대입값의 상기 에러 위치 탐색 방정식에 대한 대입 결과에 응답하여, 상기 데이터 열의 비트 별로 에러가 있는지를 가리키는 에러 검출 신호를 출력하는 치엔 탐색부; 그리고 상기 에러 검출 신호에 응답하여 상기 데이터 열의 비트의 데이터의 에러를 정정하여 출력하는 에러 정정부를 포함한다.An error detection correction circuit according to an embodiment of the present invention includes a data storage unit for storing a data string; A syndrome calculation unit calculating a syndrome from the data string; An error coefficient calculator for calculating coefficients of an error location search equation using the syndrome; A latch unit for storing the coefficients; A substitution value calculator for calculating a substitution value substituted into the error location search equation using an address indicating a location of the data string and a coefficient stored in the latch unit; A Chien search unit for outputting an error detection signal indicating whether there is an error for each bit of the data string in response to a substitution result for the error position search equation of the substitution value when the data string is output; And an error correction unit for correcting and outputting an error of data of bits of the data string in response to the error detection signal.

실시 예로서, 상기 데이터 열은 복수의 데이터 열로 구성되고, 상기 빗장부는 상기 복수의 데이터 열의 각각에 대응하도록 설치된다.In an embodiment, the data column includes a plurality of data columns, and the latch unit is provided to correspond to each of the plurality of data columns.

본 발명의 실시 예에 따른 메모리 장치는 에러 검출 정정 회로를 포함하고, 상기 에러 검출 정정 회로는, 데이터 열을 저장하는 데이터 저장부; 상기 데이터 열로부터 신드롬을 계산하는 신드롬 계산부; 상기 신드롬을 이용하여 에러 위치 탐색 방정식의 계수를 산출하는 에러 계수 계산부; 상기 계수를 저장하는 래치부; 상기 데이터 열의 위치를 가리키는 어드레스 및 상기 래치부에 저장된 계수를 이용하여 상기 에어 위치 탐색 방정식에 대입되는 대입값을 산출하는 대입값 계산부; 상기 데이터 열의 출력시에, 상기 대입값의 상기 에러 위치 탐색 방정식에 대한 대입 결과에 응답하여, 상기 데이터 열의 비트 별로 에러가 있는지를 가리키는 에러 검출 신호를 출력하는 치엔 탐색부; 그리고 상기 에러 검출 신호에 응답하여 상기 데이터 열의 비트의 데이터의 에러를 정정하여 출력하는 에러 정정부를 포함하고, 상기 데이터 저장부는 기억 소자로부터 읽어진 데이터 열을 저장하는 회로이고, 상기 어드레스는 상기 기억 소자의 열의 위치를 가리키는 열 어드레스이다.In an embodiment, a memory device may include an error detection correction circuit, and the error detection correction circuit may include: a data storage configured to store a data string; A syndrome calculation unit calculating a syndrome from the data string; An error coefficient calculator for calculating coefficients of an error location search equation using the syndrome; A latch unit for storing the coefficients; A substitution value calculator for calculating a substitution value substituted into the air position search equation using an address indicating a location of the data string and a coefficient stored in the latch unit; A Chien search unit for outputting an error detection signal indicating whether there is an error for each bit of the data string in response to a substitution result for the error position search equation of the substitution value when the data string is output; And an error correction unit for correcting and outputting an error of data of a bit of the data string in response to the error detection signal, wherein the data storage unit is a circuit which stores a data string read from a storage element, wherein the address is the memory. A column address indicating the position of the column of the device.

본 발명의 에러 검출 정정 회로는, 에러 위치 탐색 방정식의 계수를 기억하는 래치부, 그리고 계수와 비트의 위치 등과 같은 에러 위치 탐색 방정식의 대입값을 계산하는 대입값 계산부를 포함한다. 따라서, 데이터의 읽기시에, 대입값 계산부에 읽고자 하는 비트의 어드레스가 입력되면, 치엔 탐색부가 해당 비트의 데이터에 에러가 있는지 아닌지를 검출한다. 에러 정정부는 해당 비트의 데이터에 에러가 있으면 비트의 데이터를 정정하고 정정 후의 비트의 데이터를 출력하고, 에러가 없는 경우 비트의 데이터를 그대로 출력한다. 따라서, 데이터 열 중 임의의 어드레스의 비트의 데이터에 대해, 에러 정정을 실시하고 정정 후의 데이터를 고속으로 읽는 에러 검출 정정 회로 및 메모리 장치가 제공된다.The error detection correction circuit of the present invention includes a latch unit for storing coefficients of the error position search equation, and an substitution value calculation unit for calculating substitution values of error position search equations such as coefficients and bit positions. Therefore, when reading the data, if the address of the bit to be read is inputted into the substitution value calculation unit, the Chien search unit detects whether or not an error exists in the data of the corresponding bit. If there is an error in the data of the corresponding bit, the error correction unit corrects the data of the bit, outputs the data of the corrected bit, and if there is no error, outputs the data of the bit as it is. Therefore, an error detection correction circuit and a memory device are provided for performing error correction on data of bits of any address in the data string and reading the data after the correction at high speed.

도 1은 불휘발성 반도체 기억장치인 NAND 플래시 메모리를 보여주는 블록도이다.
도 2는 에러 검출 정정 회로의 구성예를 보여준다.
도 3은 치엔 탐색부의 구성예를 보여준다.
도 4는 대입값 계산부의 구성예를 보여준다.
도 5는 에러 검출 정정 회로의 구성예를 보여준다.
도 6은 에러 검출 정정 회로의 비교를 설명하기 위한 도면이다.
1 is a block diagram illustrating a NAND flash memory as a nonvolatile semiconductor memory device.
2 shows a configuration example of an error detection correction circuit.
3 shows an example of the configuration of the Chien search unit.
4 shows an example of the configuration of the substitution value calculation unit.
5 shows a configuration example of an error detection correction circuit.
6 is a diagram for explaining a comparison of error detection correction circuits.

이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, so that those skilled in the art can easily carry out the technical idea of the present invention. .

도 1은, 본 발명의 일 실시 예에 따른 불휘발성 반도체 기억장치(10)인 NAND 플래쉬 메모리를 보여주는 블록도이다. 불휘발성 반도체 기억장치(10)는 메모리 셀 어레이(11), 페이지 버퍼(12), 에러 검출 정정 회로(13), 버퍼(14), I/O 패드(15), 제어 회로(16), 어드레스 디코더(17), 그리고 행 및 블록 디코더(18)를 포함한다.FIG. 1 is a block diagram illustrating a NAND flash memory as a nonvolatile semiconductor memory device 10 according to an embodiment of the present invention. The nonvolatile semiconductor memory device 10 includes a memory cell array 11, a page buffer 12, an error detection correction circuit 13, a buffer 14, an I / O pad 15, a control circuit 16, and an address. Decoder 17 and row and block decoder 18 are included.

메모리 셀 어레이(11)는, 복수의 스택 게이트 구조의 트랜지스터들, 즉 전기적으로 다시쓰기가 가능한 불휘발성 메모리 셀들(기억소자)이 컬럼 방향(열방향)으로 직렬 접속되고, 비트선 마다 설치된 NAND 셀 스트링이 행방향(비트선의 배열 방향)으로 복수개 배치된 블록들을 포함된다. 블록들은, 비트선의 배선 방향으로 복수개 배치된다. 블록들은, 메모리 셀의 데이터의 소거 단위로 설정된다. 각 블록에는, 동일 행에 배치된 불휘발성 메모리 셀들 각각의 게이트에는, 비트선에 직교 한 워드 라인이 연결된다. 하나의 워드 라인에 의해 선택되는 불휘발성 메모리 셀의 범위가 프로그램 및 읽기의 단위가 되는 페이지이다.In the memory cell array 11, a plurality of stacked gate structure transistors, that is, NAND cells electrically connected to non-volatile memory cells (memory elements) that are electrically connected in series in a column direction (column direction) and provided for each bit line The string includes a plurality of blocks arranged in a row direction (array direction of bit lines). A plurality of blocks are arranged in the wiring direction of the bit line. The blocks are set in units of erasing data of the memory cells. In each block, a word line orthogonal to the bit line is connected to the gate of each of the nonvolatile memory cells arranged in the same row. The range of a nonvolatile memory cell selected by one word line is a page which is a unit of program and read.

페이지 버퍼(12)는, 페이지 단위의 데이터의 프로그램 및 읽기를 실시하기 위해, 비트선 마다 설치된 페이지 버퍼 회로를 포함한다. 페이지 버퍼(12)의 페이지 버퍼 회로 각각은, 각각의 비트선에 접속되고 접속된 비트선의 전위를 증폭하여 판정하는 센스 증폭기 회로로 이용되는 래치 회로를 포함한다.The page buffer 12 includes a page buffer circuit provided for each bit line in order to program and read data in page units. Each page buffer circuit of the page buffer 12 includes a latch circuit connected to each bit line and used as a sense amplifier circuit for amplifying and determining the potential of the connected bit line.

페이지 버퍼(12)(데이터 격납부)는, 불휘발성 반도체 기억장치(10)의 데이터 읽기 동작 시에, 메모리 셀 어레이(11)의 하나의 페이지의 메모리 셀들이 기억하는 데이터(데이터 열)인 셀 데이터(Cell Data)를 수신하고, 수신된 데이터를 증폭하여 에러 검출 정정 회로(13)로 출력한다. 한편, 페이지 버퍼(12)는, 불휘발성 반도체 기억 장치(10)의 데이터 기록(프로그램) 동작 시에, 에러 검출 정정 회로(13)로부터 공급된 데이터를 내부의 래치 회로에 저장하고, 베리파이 동작을 실시하면서, 모든 데이터를 부호 데이터(Code Data)로서 하나의 페이지의 메모리 셀들에 기입한다.The page buffer 12 (data storage section) is a cell that is data (data string) stored in memory cells of one page of the memory cell array 11 during a data read operation of the nonvolatile semiconductor memory device 10. The data Cell # Data is received, and the received data is amplified and output to the error detection correction circuit 13. On the other hand, the page buffer 12 stores the data supplied from the error detection and correction circuit 13 in the internal latch circuit during the data write (program) operation of the nonvolatile semiconductor memory device 10, and verifies the operation. While executing, all data is written into the memory cells of one page as code data Code # Data.

부호 데이터(Code Data)에는, 에러 검출 정정 회로(13)가 생성하는 패리티 데이터(Parity)가 포함된다. 예를 들면, 정보 길이가 512 바이트인 데이터에 대해 BCH 부호를 이용하여 4 bit(비트) 정정을 실시하는 에러 정정 시스템의 예에서, 1 페이지는 2 K(=2048) 바이트, 즉, 16 k(=16384) 비트의 통상 데이터를 각각 기억하는 메모리 셀들과 208 비트의 패리티 데이터를 각각 기억하는 메모리 셀들을 포함한다. 즉, 셀 데이터(Cell Data) 및 부호 데이터(Code Data)는, (16k+208) 비트로 구성된다. 또한, 예를 들어, 1 페이지는, 에러 검출 정정 회로 (13)의 정정의 단위로 4개의 섹터로 분할된다. 즉, 1 섹터에 대응하는 데이터는, 512바이트(=4096 비트)의 통상 데이터 및 52 비트의 패리티 데이터로 구성된다.The code data Code_Data includes parity data Parity generated by the error detection correction circuit 13. For example, in the example of an error correction system that performs 4 bit (bit) correction using a BCH code for data having an information length of 512 bytes, one page is 2 K (= 2048) bytes, that is, 16 k ( 16384) memory cells each storing bits of normal data and memory cells each storing 208 bits of parity data. That is, the cell data Cell # Data and the code data Code # Data are composed of (16k + 208) bits. Further, for example, one page is divided into four sectors in units of correction of the error detection and correction circuit 13. That is, the data corresponding to one sector is composed of 512 bytes (= 4096 bits) of normal data and 52 bits of parity data.

본 발명의 실시 예들에서, 메모리 외부로부터의 액세스는 메모리에 열 어드레스(Y[13:0])을 입력함으로써 수행된다. 패리티 데이터는 데이터의 정정을 위해 부가되는 내부 데이터이며, 외부로부터 직접 액세스되지 않는다.In embodiments of the present invention, access from outside the memory is performed by entering a column address Y [13: 0] into the memory. Parity data is internal data added for correction of data and is not directly accessed from the outside.

에러 검출 정정 회로(13)는, 불휘발성 반도체 기억장치(10)의 데이터 읽기 동작 시에, 페이지 버퍼(12)로부터 읽어진 데이터를 섹터별로 처리하여 에러 위치 검출 다항식의 계수를 산출하고, 산출 결과를 내부에 래치하여 보관 유지한다. 또한, 에러 검출 정정 회로(13)는, 읽기 동작 시에, 컬럼 주소에 의해 위치가 표시되는 비트의 데이터의 에러를 정정하여, I/O패드(15)를 통해 정정 데이터(Corrected Data)로서 외부로 출력한다. 또힌, 입출력 패드(15)와 에러 검출 정정 회로(13)의 사이에 입출력 회로를 구비하고, 입출력 회로를 통해 외부로 데이터가 출력될 수 있다.In the data read operation of the nonvolatile semiconductor memory device 10, the error detection correction circuit 13 processes data read from the page buffer 12 for each sector to calculate the coefficient of the error position detection polynomial, and calculates the result. Latch and keep it inside. In addition, the error detection correction circuit 13 corrects an error of data of bits whose position is indicated by a column address during a read operation, and externally corrects the data as corrected data through the I / O pad 15. Will output In addition, an input / output circuit is provided between the input / output pad 15 and the error detection correction circuit 13, and data can be output to the outside through the input / output circuit.

또한, 에러 검출 정정 회로(13)는, 불휘발성 반도체 기억장치(10)의 데이터 기입 동작 시에, I/O 패드(15)로부터 입력되는 정보 데이터(Information Data)를 버퍼(14)를 통해 수신한다. 에러 검출 정정 회로(13)는, 수신된 정보 데이터(Information Data)로부터 패리티 데이터(Parity)를 생성함과 함께, 수신된 정보 데이터(Information Data) 및 패리티 데이터(Parity)를 페이지 버퍼(12)로 출력한다. 페이지 버퍼(12)는, 수신된 데이터를 부호 데이터(Code Data)로서, 선택된 페이지에 연결된 메모리 셀들에 기입한다.In addition, the error detection correction circuit 13 receives, via the buffer 14, information data (Information_Data) input from the I / O pad 15 during the data write operation of the nonvolatile semiconductor memory device 10. do. The error detection correction circuit 13 generates parity data from the received information data, and sends the received information data and the parity data to the page buffer 12. Output The page buffer 12 writes the received data as code data to memory cells connected to the selected page.

제어 회로(16)는 각종 제어 신호를 입력하여 불휘발성 메모리 셀들에 대한 데이터의 프로그램, 읽기, 소거 등의 동작 및 베리파이의 동작의 제어를 실시한다. 예를 들면, 제어 신호는 외부 클럭 신호, 칩 인에이블 신호(/CE), 읽기 인에이블 신호(/RE), 프로그램 인에이블 신호(WE), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 기록방지 신호(/WP) 등을 포함할 수 있다.The control circuit 16 inputs various control signals to perform operations such as programming, reading, and erasing data and verifying operations of nonvolatile memory cells. For example, the control signal includes an external clock signal, a chip enable signal (/ CE), a read enable signal (/ RE), a program enable signal (WE), a command latch enable signal (CLE), and an address latch enable. Signal ALE, write prevention signal / WP, and the like.

제어 회로(16)는 제어 신호와 I/O 패드(15)로부터 입력되는 커멘드 데이터가 가리키는 동작 모드에 응답하여, 각 회로로 내부 제어 신호를 출력한다. 예를 들면, 제어 회로(16)는, 프로그램 인에이블 신호(/WE)의 첫 시작시에 커멘드 래치 인에이블 신호(CLE)가 로우(L) 레벨로부터 하이(H) 레벨이 되는 것에 응답하여, I/O 패드(15)로부터 커멘드 데이타를 읽고, 내부의 레지스터에 저장한다.The control circuit 16 outputs an internal control signal to each circuit in response to the operation mode indicated by the control signal and the command data input from the I / O pad 15. For example, the control circuit 16 responds to the command latch enable signal CLE from the low (L) level to the high (H) level at the first start of the program enable signal (/ WE), The command data is read from the I / O pad 15 and stored in an internal register.

어드레스 디코더(17)는 I/O 패드(15)로부터 입력되는 어드레스(행 어드레스, 블록 어드레스, 열 어드레스)를 제어 회로(16)로부터의 내부 제어 신호에 기반하여 보관 유지한다. 또한, 어드레스 디코더(17)는 보관 유지되는 주소를 제어 회로(16)로부터의 내부 제어 신호에 기반하여, 행 및 블록 디코더(18), 페이지 버퍼(12), 및 에러 검출 정정 회로(13)로 출력한다.The address decoder 17 holds an address (row address, block address, column address) input from the I / O pad 15 based on an internal control signal from the control circuit 16. In addition, the address decoder 17 transfers the held address to the row and block decoder 18, the page buffer 12, and the error detection correction circuit 13 based on an internal control signal from the control circuit 16. Output

예를 들면, 제어 회로(16)는 프로그램 인에이블 신호(/WE)의 첫 시작 시에 어드레스 래치 인에이블 신호(ALE)가 로우(L) 레벨로부터 하이(H) 레벨이 되는 것에 응답하여, I/O 패드(15)로부터 주소를 읽어 어드레스 디코더(17)의 내부 레지스터에 보관 유지한다.For example, the control circuit 16 may respond to the address latch enable signal ALE from the low (L) level to the high (H) level at the first start of the program enable signal / WE. The address is read from the / O pad 15 and held in an internal register of the address decoder 17.

행 및 블록 디코더(18)는, 어드레스 디코더(17)가 보관 유지하고 출력하는 행 어드레스 및 블록 어드레스에 응답하여, 메모리 셀 어레이(11)의 블록 및 워드 라인을 선택하여, 1 페이지의 메모리 셀들을 선택한다. 또한, 어드레스 디코더(17)는, 내부로 유지하는 열 주소에 응답하여, 메모리 셀 어레이(11)의 비트선 및 페이지 버퍼(12)의 선택을 실시한다.The row and block decoder 18 selects the block and the word line of the memory cell array 11 in response to the row address and the block address held and output by the address decoder 17 to select one page of memory cells. Choose. In addition, the address decoder 17 selects the bit line and the page buffer 12 of the memory cell array 11 in response to the column address held therein.

본 발명의 실시 예에서, 데이터 읽기 동작 시에, 페이지 버퍼(12)에 저장된 셀 데이터(Cell Data)가 에러 검출 정정 회로(13)로 전송되어 에러 위치 탐색 방정식의 계수가 섹터마다 계산된다. 그리고, 섹터 별로 계산된 계수와 열 어드레스에 응답하여, 열 어드레스에 의해 위치가 특정되는 비트의 데이터, 즉 메모리 셀의 데이터(16 비트)에 에러가 있는지 검출되고, 에러가 있는 경우 정정되어 정정 데이터(Corrected Data)로서 I/O 패드(15)로 출력된다. 상세한 내용은 후술된다.In an embodiment of the present invention, in a data read operation, cell data stored in the page buffer 12 is transmitted to the error detection correction circuit 13 so that the coefficient of the error position search equation is calculated for each sector. Then, in response to the coefficient and the column address calculated for each sector, it is detected whether there is an error in the data of the bit whose position is specified by the column address, that is, the data (16 bits) of the memory cell, and if there is an error, it is corrected and corrected. It is output to the I / O pad 15 as (Corrected Data). Details will be described later.

또한, 데이터 기입 동작 시에, 페이지 버퍼(12)에 저장된 셀 데이터(Cell Data)가 버퍼(14)로 전송된다. 버퍼(14)는, 예를 들면 SRAM (Static Random Access Memory)일 수 있다.In the data write operation, cell data stored in the page buffer 12 is transferred to the buffer 14. The buffer 14 may be, for example, static random access memory (SRAM).

버퍼(14)에서, 셀 데이터(Cell Data) 중 입력되는 열 주소에 대응하는 부분의 데이터는 I/O 패드(15)로부터의 데이터(Information Data)로 갱신될 수 있다. 또한, 에러 검출 정정 회로(13)에서, 버퍼(14)의 갱신 후의 데이터를 포함하는 하나의 정정 단위에 해당하는 데이터에 대응하는 패리티 데이터가 산출된다. 그리고, 패리티 데이터를 포함하는 인코딩된 데이터가 부호 데이터(Code Data)로서 페이지 버퍼(12)를 통해 선택된 페이지에 기입된다.In the buffer 14, data of a portion of the cell data corresponding to the input column address may be updated with information from the I / O pad 15. In the error detection correction circuit 13, parity data corresponding to data corresponding to one correction unit including the data after the update of the buffer 14 is calculated. The encoded data including the parity data is written to the selected page through the page buffer 12 as code data.

도 2는 에러 검출 정정 회로(13)의 구성예를 보여준다. 본 발명의 실시 예에서, 에러 검출 정정 회로(이하, ECC 회로)(13)로서 BCH 부호(Bose-Chaudhuri Hocquenghem code)를 이용한 ECC 회로의 예가 설명된다. ECC 회로는 BCH 부호로 대표되는 갈로아체 연산을 이용한 블록 부호이다. BCH 부호의 변형 예, 예를 들면 해밍 부호(Hamming code), RS 부호(Reed-Solomon code)가 이용될 수 있다. 이하의 설명에서, 정보 데이터 길이 512바이트(=4096 비트)가 정정 단위, 즉 1 페이지의 1/4의 셀의 데이터가 정정 단위이고, 각 정정 단위 중 4 비트의 데이터의 정정이 가능한 BCH 부호를 이용한 ECC 회로가 설명된다.2 shows an example of the configuration of the error detection correction circuit 13. In the embodiment of the present invention, an example of the ECC circuit using the BCH code (Bose-Chaudhuri Hocquenghem code) as the error detection correction circuit (hereinafter, ECC circuit) 13 is described. The ECC circuit is a block code using a galloche operation represented by the BCH code. Modifications of the BCH code, for example, a Hamming code and a Reed-Solomon code may be used. In the following description, an information data length of 512 bytes (= 4096 bits) is a correction unit, that is, a BCH code in which data of a quarter of a cell is a correction unit, and 4 bits of data can be corrected in each correction unit. The ECC circuit used is described.

에러 검출 정정 회로(13)는 데이터의 복호를 수행하는 디코더부(30)와 정정용 패리티 데이터(Parity)를 생성하고 정정용 패리티 데이터(Parity)를 셀에 기입되는 데이터에 부가하는 인코더부(40)를 포함한다.The error detection and correction circuit 13 includes a decoder unit 30 for decoding data and an encoder unit 40 for generating correction parity data Parity and adding correction parity data Parity to data written in a cell. Include.

인코더부(40)는 패리티 생성 회로(41)를 포함한다. 패리티 생성 회로(41)는 버퍼(14)에 기입된 정보 데이터(Information Data)를 생성 다항식으로 제산하여(즉, 나누어) 획득되는 패리티 데이터(Parity)를 생성한다. 또, 패리티 생성 회로(41)는 정보 데이터(Information Data)에 생성된 패리티 데이터(Parity)를 부가하여 페이지 버퍼(12)로 출력한다. 출력된 데이터는, 불휘발성 반도체 기억장치(10)의 데이터 기입 시에, 선택된 페이지에 기입되는 부호 데이터(Code Data)ㅇe다. 또한, 본 발명의 실시 예는, 불휘발성 반도체 기억 장치(10)의 데이터 읽기 시에, 에러 검출 정정 회로(13)가 고속으로 데이터 정정 처리를 실시하는 것에 특징으로 갖는다. 이하에서, 디코더부(30)에 대해 상세하게 설명된다.The encoder unit 40 includes a parity generation circuit 41. The parity generating circuit 41 generates parity data obtained by dividing (ie, dividing) the information data written in the buffer 14 by the generation polynomial. The parity generating circuit 41 adds the parity data generated to the information data to the page buffer 12. The output data is code data (Code Data) written in the selected page when data is written in the nonvolatile semiconductor memory device 10. In addition, an embodiment of the present invention is characterized in that the error detection and correction circuit 13 performs data correction processing at high speed when reading data from the nonvolatile semiconductor memory device 10. Hereinafter, the decoder unit 30 will be described in detail.

디코더부(30)는 신드롬 계산부(31), 에러 계수 계산부(32), 치엔 탐색부(33), 에러 정정부(34), 래치부(35), 및 대입값 계산부(36)를 포함한다.The decoder unit 30 includes the syndrome calculator 31, the error coefficient calculator 32, the Chien search unit 33, the error corrector 34, the latch unit 35, and the substitution value calculator 36. Include.

신드롬 계산부(31)는 불휘발성 반도체 기억장치(10)의 데이터 읽기 시에, 페이지 버퍼(12)에 읽어진 셀 데이터(Cell Data)를 부호 데이터로서 섹터 별로 수신하고, 수신된 부호 데이터를 독립인 최소 다항식에서 제산(나눔)으로써 신드롬을 계산한다. 4 비트의 데이터의 에러 정정이 가능한 BCH 부호에서 사용되는 독립인 최소 다항식은 4개이다. 신드롬 계산부(31)는 4개의 최소 다항식들에 대응하는 4개의 신드롬 산출 회로들(31_1~31_4)을 포함한다. 신드롬 산출 회로(31_1~31_4)는 각각 신드롬들(S1, S3, S5, S7)을 계산한다.When reading data from the nonvolatile semiconductor memory device 10, the syndrome calculation unit 31 receives the cell data read from the page buffer 12 for each sector as code data and independently receives the received code data. Calculate the syndrome by dividing (divide) in the minimum polynomial of. There are four independent minimum polynomials used in the BCH code capable of error correction of four bits of data. The syndrome calculation unit 31 includes four syndrome calculation circuits 31_1 to 31_4 corresponding to four minimum polynomials. The syndrome calculation circuits 31_1 to 31_4 calculate syndromes S1, S3, S5, and S7, respectively.

에러 계수 계산부(32)는 신드롬들(S1, S3, S5, S7)을 이용하여 섹터 별로 에러 위치 탐색 방정식의 계수들(e4, e3, e2, e1, e0)을 계산한다. 계수들(e4, e3, e2, e1, e0)은 치엔 탐색부(33)가 에러 위치 탐색 방정식(Λ(x) = e4x^4 + e3x^3 + e2x^2 + e1x^1 + e0)의 계수이다. 에러 위치 탐색 방정식(Λ(x))은 페이지 버퍼(12)로부터 섹터 별로 읽어진 비트에 잘못이 있는지를 탐색할 때 치엔 탐색부(33)에 의해 이용된다.The error coefficient calculation unit 32 calculates the coefficients e4, e3, e2, e1, e0 of the error position search equation for each sector using the syndromes S1, S3, S5, and S7. The coefficients (e4, e3, e2, e1, e0) are obtained by the Chien search unit 33 of the error position search equation (Λ (x) = e4x ^ 4 + e3x ^ 3 + e2x ^ 2 + e1x ^ 1 + e0). Coefficient. The error position search equation Λ (x) is used by the Chien search unit 33 when searching for errors in the bits read from the page buffer 12 for each sector.

여기에서, 에러 위치 탐색 방정식에 대해 설명하기 위해, 치엔 탐색부(33)의 구성 및 동작이 설명된다. 도 3은 치엔 탐색부(33)의 구성의 일례를 보여준다.  치엔 탐색부(33)는 4개의 선택기들, 5개의 플립 플롭들, 64개의 정수 곱셈 회로들, 16개의 배타적 논리합 연산 회로들, 그리고 16개의 논리 반전 회로들을 포함한다. 도 3에 도시된 바와 같이, 4개의 선택기들은 선택기들301, 302, 303, 304)이고, 5개의 플립 플롭들은 플립 플롭들(310, 311, 312, 313, 314)이다. 64개의 정수 곱셈 회로들은 정수 곱셈 회로들(321_1~321_16, 322_1~322_16, 323_1~323_16, 324_1~324_16)이다. 16개의 배타적 논리합연산 회로들은 배타적 논리합 연산 회로들(330_1, 330_2,···, 330_15, 330_16)이고, 16개의 논리 반전 회로들은 논리 반전 회로(340_1, 340_2,···, 340_15, 340_16)이다.Here, in order to explain the error position search equation, the configuration and operation of the Chien search unit 33 are described. 3 shows an example of the configuration of the Chien search unit 33. The Chien search unit 33 includes four selectors, five flip flops, 64 integer multiplication circuits, 16 exclusive OR circuits, and 16 logic inversion circuits. As shown in FIG. 3, the four selectors are selectors 301, 302, 303, 304 and the five flip flops are flip flops 310, 311, 312, 313, 314. The 64 integer multiplication circuits are integer multiplication circuits 321_1 to 321_16, 322_1 to 322_16, 323_1 to 323_16, and 324_1 to 324_16. The 16 exclusive OR circuits are exclusive OR circuits 330_1, 330_2, 330_15, 330_16, and the 16 logical inversion circuits are logic inverting circuits 340_1, 340_2, 340_15, 340_16. .

선택기들(301~304)에 각각 입력되는 "e1x, e1x^2, e1x^3, e1x^4"의 x는 부호 데이터, 즉 페이지 버퍼에 격납된 셀 데이터(Cell Data)의 위치를 나타내는 값이다. 셀 데이터(Cell Data)에 패리티 비트(52 비트)가 열의 최하위에 부가된다. 구체적으로, x로서 다음의 값이 입력된다. 즉, 1 페이지에 16 k비트의 데이터(패리티 데이터를 제외)가 포함되므로, 비트선의 위치를 가리키는 열 어드레스는 14 비트의 열 어드레스(Y[13:0])이다. 이 중, 상위 10 비트의 열 어드레스(Y[13:4])를, "Y = a13 × 2^13 + a12 × 2^12 + ··· + a5 × 2^5 + a4 × 2^4"로 십진수로 표시하면, 본 발명의 실시 예는 16 비트의 단위로 비트의 데이터의 에러 정정을 실시하므로, x로서 패리티 비트(52 비트)를 제외한 "a13 × 2^13 + a12 × 2^12 + ··· + a5 × 2^5 + a4 × 2^4 + 52 "(=α^j)가 입력된다.X of "e1x, e1x ^ 2, e1x ^ 3, e1x ^ 4" respectively input to the selectors 301-304 is a value indicating the position of the sign data, that is, the cell data stored in the page buffer. . A parity bit (52 bits) is added to the lowest level of the column in the cell data. Specifically, the following value is input as x. That is, since one page contains 16 k bits of data (except parity data), the column address indicating the position of the bit line is a 14-bit column address (Y [13: 0]). Among these, the column address (Y [13: 4]) of the upper 10 bits is defined as "Y = a13 × 2 ^ 13 + a12 × 2 ^ 12 + ... + a5 × 2 ^ 5 + a4 × 2 ^ 4". In the decimal notation, since the embodiment of the present invention performs error correction of the data of bits in units of 16 bits, except "a13 x 2 ^ 13 + a12 x 2 ^ 12 + except the parity bit (52 bits) as x. + A5 x 2 ^ 5 + a4 x 2 ^ 4 + 52 "(= alpha ^ j) is input.

여기에서, i=0~15(정수)이고, "α^(i+j)"는, 갈로아체(GF(2^m))의 원으로, 열 어드레스(Y[13:0)의 최소값, 즉 열 어드레스의 비트가 모두 '0'인 경우로부터 몇 번째의 열 어드레스에 위치하는지를 가리키는 값, 즉(j×16+i+1) 번째의 비트선의 위치를 나타내는 값이다.Here, i = 0-15 (integer), and "(alpha) ^ (i + j)" is a circle | round | yen of galoache (GF (2 ^ m)), and is the minimum value of column address Y (13: 0), ie, a column. It is a value indicating the position of the column address from the case where all the bits of the address are '0', that is, the value indicating the position of the (jx16 + i + 1) th bit line.

"α^(i+j) = α^i×α^j"이므로, 에러 위치 탐색 방정식(Λ(x) = e4x^4 + e3x^3 + e2x^2 + e1x^1 + e0"에 "x = α^(i+j)"를 대입하면, 에러 위치 탐색 방정식(Λ(x))은 수학식 1과 같이 전개된다.Since "α ^ (i + j) = α ^ i × α ^ j", the error position search equation (Λ (x) = e4x ^ 4 + e3x ^ 3 + e2x ^ 2 + e1x ^ 1 + e0 "to" x = α By substituting ^ (i + j) ", the error position search equation (Λ (x)) develops as in equation (1).

Figure pat00001
Figure pat00001

여기에서, 선택기(301)는 e1(α^j)를 획득하고, 이것이 i=0~15의 범위에서 (α^1)^i 배 만큼 정수 배가 되면, 에러 위치 탐색 방정식(Λ(x))의 x^1에 대입하는 "x=α^(i+j)", 즉(j×16+i) 번째의 비트선의 위치를 나타내는 x를 획득할 수 있다. 마찬가지로, 선택기(302)는 e2(α^j)를 획득하고, 이것이 i=0~15의 범위에서 (α^2)^i 배 만큼 정수 배가 되면, 에러 위치 탐색 방정식(Λ(x))의 x^2에 대입하는 "x=α^(i+j)", 즉(j×16+i) 번째의 비트선의 위치를 가라키는 x를 획득할 수 있다. 마찬가지로, 선택기(303)는 e3(α^j)를 획득하고 이것이 i=0~15의 범위에서 (α^3)^i 배 만큼 정수 배가 되면, 에러 위치 탐색 방정식(Λ(x))의 x^3에 대입하는 "x=α^(i+j)", 즉(j×16+i) 번째의 비트선의 위치를 나타내는 x를 얻을 수 있다. 마찬가지로, 선택기(304)는, e4(α^j)를 획득하고 이것이 i=0~15의 범위에서 (α^4)^i 배 만큼 정수 배가 되면, 에러 위치 탐색 방정식(Λ(x))의 x^4에 대입하는 "x=α^(i+j)", 즉(j×16+i) 번째의 비트선의 위치를 나타내는 x를 획득할 수 있다.Here, the selector 301 obtains e1 (α ^ j), and when this becomes an integer multiple of (α ^ 1) ^ i times in the range of i = 0-15, the error position search equation (Λ (x)) "X = α ^ (i + j)", i.e., x representing the position of the (jx16 + i) th bit line, can be obtained. Similarly, selector 302 obtains e2 (α ^ j), and if it is an integer multiple of (α ^ 2) ^ i times in the range of i = 0-15, then the error position search equation (Λ (x)) "x = α ^ (i + j)", i.e., x indicating the position of the (jx16 + i) -th bit line substituted in x ^ 2 can be obtained. Similarly, selector 303 obtains e3 (α ^ j) and if it is an integer multiple of (α ^ 3) ^ i times in the range of i = 0-15, then the error location search equation (Λ (x)) x "X = α ^ (i + j)" assigned to ^ 3, i.e., x indicating the position of the (jx16 + i) th bit line can be obtained. Similarly, selector 304 obtains e4 (α ^ j) and if it is an integer multiple of (α ^ 4) ^ i times in the range of i = 0-15, then the error location search equation (Λ (x)) "x = α ^ (i + j)", i.e., x representing the position of the (jx16 + i) th bit line, substituted into x ^ 4 can be obtained.

따라서, 선택기들(301~304) 각각에는 선택기의 입력을 바꾸는 제어 신호(SEL)가 제어 회로(16)로부터 전달된다. 제어 신호(SEL)는 불휘발성 반도체 기억장치(10)로부터의 데이터 읽기 시에, 어드레스 디코더(17)가 열 어드레스를 래치한 후, 제어 회로(16)가, 예를 들면, L레벨로부터 H레벨로 변화시키는 제어 신호이다. 선택기들(301~304)에 대해 제어 신호(SEL)가 H레벨이 되면, 선택기들(301~304)은 각각 "e1x, e1x^2, e1x^3, e1x^4"를 수신하고, 수신된 값은 후단에 접속된 플립 플롭들(311~314)에 저장된다. 또한, 계수(e0)는 플립 플롭(310)에 저장된다.Accordingly, the control signal SEL for changing the input of the selector is transmitted from the control circuit 16 to each of the selectors 301 to 304. When the control signal SEL reads data from the nonvolatile semiconductor memory device 10, after the address decoder 17 latches the column address, the control circuit 16 causes the control circuit 16 to go from the low level to the high level, for example. Is a control signal. When the control signal SEL becomes H level with respect to the selectors 301-304, the selectors 301-304 receive "e1x, e1x ^ 2, e1x ^ 3, e1x ^ 4", respectively, The value is stored in flip flops 311 314 connected to the rear end. Also, coefficient e0 is stored in flip flop 310.

플립 플롭들(311~314)의 후단에 정수 곱셈 회로가 16개씩 직렬 연결된다. 플립 플롭(311)의 후단에, 입력되는 값에 정수(α)를 곱하여 출력하는 정수 곱셈 회로들(321_1~321_16)이 직렬 접속된다. 플립 플롭(312)의 후단에, 입력되는 값에 정수(α^2)를 곱하여 출력하는 정수 곱셈 회로들(322_1~322_16)이 직렬 연결된다. 플립 플롭(313)의 후단에, 입력되는 값에 정수(α^3)를 곱하여 출력하는 정수 곱셈 회로들(323_1~323_16)이 직렬 연결된다. 플립 플롭(314)의 후단에, 입력되는 값에 정수(α^4)를 곱하여 출력하는 정수 곱셈 회로들(324_1~324_16)이 직렬 연결된다.16 integer multiplication circuits are connected in series at the rear ends of the flip flops 311 to 314. At the rear end of the flip flop 311, integer multiplication circuits 321_1 to 321_16 that multiply and output an input value by an integer α are connected in series. At the rear end of the flip flop 312, integer multiplication circuits 322_1 to 322_16 multiplying and outputting the input value by the integer α ^ 2 are connected in series. At the rear end of the flip-flop 313, integer multiplication circuits 323_1 to 323_16 multiplying an input value by an integer α ^ 3 and outputting the same are connected in series. At the rear end of the flip flop 314, integer multiplication circuits 324_1 to 324_16 multiplying an input value by an integer α ^ 4 and outputting the same are connected in series.

배타적 논리합 회로(330_1)는 플립 플롭들(310~314)의 출력의 배타적 논리합을 연산하여 후단의 논리 반전 회로(340_1)로 출력한다. 논리 반전 회로(340_1)는 배타적 논리합 회로(330_1)의 연산 결과를 논리 반전하여, 에러 검출 신호(Error <0>)로 에러 정정부(34)로 출력한다. 즉, 배타적 논리합 회로(330_1)에서, 에러 위치 탐색 방정식(Λ(x) = e4x^4 + e3x^3 + e2x^2 + e1x^1 + e0)에 "x = α^(i+j)"(i=0)를 대입했을 때에, 에러 위치 탐색 방정식(Λ(x))의 값이 0인 경우, 에러 검출 신호(Error <0>)는 H레벨이 된다. 한편, 에러 위치 탐색 방정식(Λ(x))의 값이 0이 아닌 경우, 에러 검출 신호(Error <0>)는 L레벨이 된다.The exclusive OR circuit 330_1 calculates an exclusive OR of the outputs of the flip flops 310 to 314 and outputs the exclusive OR to the logic inversion circuit 340_1 at a later stage. The logic inversion circuit 340_1 logically inverts the operation result of the exclusive OR circuit 330_1 and outputs the error detection signal Error <0> to the error correction unit 34. That is, in the exclusive OR circuit 330_1, the error position search equation (Λ (x) = e4x ^ 4 + e3x ^ 3 + e2x ^ 2 + e1x ^ 1 + e0) is "x = α ^ (i + j)" (i When the value of the error position search equation Λ (x) is 0 when the value is substituted, the error detection signal Error <0> becomes H level. On the other hand, when the value of the error position search equation Λ (x) is not 0, the error detection signal Error <0> becomes L level.

에러 정정부(34)는, 본 발명의 실시 예에 따라, 16개의 배타적 논리합연산 회로들(34_i)(도 2 참조, i=0~15)을 포함한다. 배타적 논리합 연산 회로(34_i) 중배타적 논리합 연산 회로(34_0)는 에러 검출 신호(Error <0>) 및 페이지 버퍼(12)에 읽기 동작 시에 저장된 셀 데이터(Cell Data) 중 (j×16+0) 번째 비트선의 위치의 비트를 수신한다. 즉, 배타적 논리합 연산 회로(340)는 에러 검출 신호(Error <0>)가 H레벨이면, (j×16+0) 번째 비트선의 위치의 비트의 데이터의 논리값(0또는 1)을 반전하여 정정제데이터(Corrected Data)의 1 비트로서 출력한다. 한편, 배타적 논리합 연산 회로(34_0)는 에러 검출 신호(Error <0>)가 L레벨이면, (j×16+0) 번째의 비트선의 위치의 비트의 데이터의 논리값을 그대로, 즉 정정하지 않고 정정 데이터(Corrected Data)의 1 비트로서 출력한다.The error correction unit 34 includes 16 exclusive logical operation circuits 34_i (see FIG. 2, i = 0 to 15) according to an embodiment of the present invention. The exclusive OR operation circuit 34_i is the (j × 16 + 0) th of the cell detection data stored in the error detection signal Error <0> and the page buffer 12 during the read operation. Receive a bit at the position of the bit line. That is, if the error detection signal Error <0> is at the H level, the exclusive OR operation circuit 340 inverts the logical value (0 or 1) of the data of the bit at the position of the (jx16 + 0) th bit line and corrects the corrective agent. Output as one bit of corrected data. On the other hand, if the error detection signal Error <0> is at the L level, the exclusive OR calculation circuit 34_0 corrects the logical value of the data of the bit at the position of the (jx16 + 0) th bit line as it is, without correcting it. Output as one bit of (Corrected Data).

마찬가지로, "i=1~15"에 대응하는 배타적 논리합 회로(330_i)는 정수 곱셈 회로(321_i), 정수 곱셈 회로(322_i), 정수 곱셈 회로(323_i), 정수 곱셈 회로(323_i)의 출력의 배타적 논리합을 연산하여, 후단의 논리 반전 회로(340_i)로 출력한다. 논리 반전 회로(340_i)는 배타적 논리합 회로(330_i)의 연산 결과를 논리 반전하여, 에러 검출 신호(Error <i>)로 에러 정정부(34)로 출력한다. 즉, 배타적 논리합 회로(330_i)에서, 에러 위치 탐색 방정식(Λ(x) = e4x^4 + e3x^3 + e2x^2 + e1x^1 + e0)에 "x = α^(i+j)"(i=1~15)를 각각 대입했을 때 에러 위치 탐색 방정식(Λ(x))의 값이 0인 경우, 에러 검출 신호(Error <i>)는 H레벨이 된다. 한편, 에러 위치 탐색 방정식(Λ(x))의 값이 0이 아닌 경우, 에러 검출 신호(Error <i>)는 L레벨이 된다.Similarly, the exclusive OR circuit 330_i corresponding to "i = 1-15" is exclusive of the outputs of the integer multiplication circuit 321_i, the integer multiplication circuit 322_i, the integer multiplication circuit 323_i, and the integer multiplication circuit 323_i. The OR is calculated and output to the logic inversion circuit 340_i at the next stage. The logic inversion circuit 340_i performs a logic inversion on the operation result of the exclusive OR circuit 330_i and outputs it to the error correction unit 34 as an error detection signal Error <i>. That is, in the exclusive OR circuit 330_i, the error position search equation (Λ (x) = e4x ^ 4 + e3x ^ 3 + e2x ^ 2 + e1x ^ 1 + e0) is "x = α ^ (i + j)" (i When the values of the error position search equation Λ (x) are 0 when each of = 1 to 15) is substituted, the error detection signal Error <i> becomes H level. On the other hand, when the value of the error position search equation Λ (x) is not 0, the error detection signal Error <i> becomes L level.

에러 정정부(34)에서, 배타적 논리합 연산 회로(34_i)는 에러 검출 신호(Error <i>) 및 페이지 버퍼(12)에 읽기 동작 시에 저장된 셀 데이터(Cell Data) 중 (j×16+i) 번째의 비트선의 위치의 비트를 수신한다. 배타적 논리합 연산 회로(34_i)(i=1~15) 각각은, 에러 검출 신호(Error <i>)가 H레벨이면, (j×16+i) 번째의 비트선의 위치의 비트의 데이터의 논리값을 반전하여 정정 데이터(Corrected Data)의 1 비트로서 출력한다. 한편, 배타적 논리합 연산 회로(34_i) 각각은, 에러 검출 신호(Error <i>)가 L레벨이면, (j×16+i) 번째의 비트선의 위치의 비트의 데이터의 논리값을 그대로, 즉 정정하지 않고, 정정 데이터(Corrected Data)의 1 비트로서 출력한다.In the error correcting unit 34, the exclusive OR operation circuit 34_i stores the (j × 16 + i) th of the cell detection data stored in the error detection signal Error <i> and the page buffer 12 during a read operation. Receives a bit at the position of the bit line. Each of the exclusive OR circuits 34_i (i = 1 to 15) inverts the logical value of the data of the bit at the position of the (j × 16 + i) th bit line when the error detection signal Error <i> is at the H level. Is output as one bit of corrected data. On the other hand, each of the exclusive OR circuit 34_i does not correct the logical value of the data of the bit at the position of the (j × 16 + i) th bit line as it is, if the error detection signal Error <i> is at the L level. It outputs as 1 bit of corrected data.

그런데, ECC 회로를 내장하지 않는 NAND 플래쉬 메모리에서, 하나의 읽기 명령, 즉 데이터 읽기를 지시하는 커맨드가 입력되면, 하나의 페이지에 대응하는 데이터가 메모리 셀로부터 페이지 버퍼(12)로 읽어진다. 그리고, 최초의 열 어드레스에 이어, 읽기 인에이블 신호(/RE)와 동기되어, 페이지 버퍼(12)에 저장된 데이터가 연속으로 읽어질 수 있다.By the way, in a NAND flash memory having no built-in ECC circuit, when one read command, i.e., a command for reading data, is input, data corresponding to one page is read from the memory cell into the page buffer 12. After the first column address, the data stored in the page buffer 12 may be continuously read in synchronization with the read enable signal / RE.

ECC 회로를 내장한 불휘발성 반도체 기억장치(10)에서도 동일한 읽기를 가능하게 하려면, 이하와 같은 처리가 필요하다. 즉, 메모리 셀로부터 읽어진 데이터(페이지 버퍼(12)에 저장된 데이터)를 이용하여 신드롬 계산부(31)에서 신드롬을 계산하고, 계수 계산부(32)가 에러 계수를 계산한다. 그리고, 상술된 바와 같이, 치엔 탐색부(33)의 선택기의 입력의 열 어드레스를, 예를 들면 최하위로부터 변경시키며 에러 위치 탐색 방정식(Λ(X))이 0이 되는지를 체크한다. 이 체크 결과에 따라, 페이지 버퍼(12)로부터 읽어진 데이터에 에러가 있으면 에러를 정정하고, 정정 후의 데이터가 출력된다.In order to enable the same reading in the nonvolatile semiconductor memory device 10 having the ECC circuit, the following processing is required. That is, the syndrome calculation unit 31 calculates the syndrome using data read from the memory cell (data stored in the page buffer 12), and the coefficient calculation unit 32 calculates the error coefficient. Then, as described above, the column address of the input of the selector of the Chien search unit 33 is changed from, for example, the lowest, and it is checked whether the error position search equation? (X) becomes zero. According to this check result, if there is an error in the data read from the page buffer 12, the error is corrected, and the corrected data is output.

그러나, ECC 회로를 내장하지 않는 NAND 플래시 메모리는 임의의 열 어드레스를 이용하여 액세스 하는 모드를 갖는다. 불휘발성 반도체 기억장치(10)가 임의의 열 어드레스를 이용하여 액세스 하는 모드를 갖는 경우, 메모리 셀로부터 페이지 버퍼(12)로의 데이터 읽기에 이어, 하나의 페이지 분의 데이터의 에러 정정 처리를 완료하고, 또한 처리 후의 정정 데이터를 기억하는 처리가 요구된다.However, NAND flash memories that do not incorporate ECC circuits have a mode of access using arbitrary column addresses. When the nonvolatile semiconductor memory device 10 has a mode for accessing using any column address, following the data reading from the memory cell to the page buffer 12, the error correction processing of data for one page is completed. In addition, a process of storing the correction data after the process is required.

불휘발성 반도체 기억장치(10)는, 페이지 버퍼(12)와 별도로 버퍼(14)(예를 들면, SRAM, Static Random Access Memory)를 구비하므로, 버퍼(14)에 정정 후의 데이터를 모두 저장하고, 저장 후에 임의의 열 어드레스를 이용(또는 입력)하여 정정 후의 데이터를 I/O 패드(15)로 출력할 수 있다. 또는, 회로적인 궁리에 의해, 정정 후의 데이터를 버퍼(14)가 아닌 페이지 버퍼(12)에 다시 저장한 후에, 페이지 버퍼(12)로부터 데이터를 읽는 방식도 고려될 수 있다.Since the nonvolatile semiconductor memory device 10 includes a buffer 14 (for example, SRAM, Static Random Access Memory) separate from the page buffer 12, the nonvolatile semiconductor memory device 10 stores all the corrected data in the buffer 14, After storage, any column address may be used (or input) to output the corrected data to the I / O pad 15. Alternatively, by a circuit design, a method of reading data from the page buffer 12 after storing the corrected data in the page buffer 12 instead of the buffer 14 may be considered.

이와 같이, ECC 회로를 내장하는 불휘발성 반도체 기억장치(10)에 임의의 열 어드레스를 입력하는 액세스 하는 모드를 갖추고자 하는 경우, 하나의 페이지 분의 데이터의 에러 정정 처리를 완료하고, 임의의 열 어드레스를 입력하고, 해당 위치의 메모리 셀의 데이터를 읽을 때까지의 시간(이하, 제 1 액세스 오버헤드(1st Access Overhead)이 길어진다.As described above, in the case where the nonvolatile semiconductor memory device 10 having the ECC circuit is built in and has an access mode for inputting an arbitrary column address, an error correction process for one page of data is completed, and an arbitrary column is provided. The time until the address is input and the data of the memory cell at the corresponding position is read (hereinafter, 1st access overhead) becomes long.

불휘발성 반도체 기억장치(10)는 제 1 액세스 오버헤드를 단축하여, ECC 회로를 내장하지 않는 NAND 플래쉬 메모리와 동등한 랜덤 액세스를 가능하게 하기 위한 래치부(35) 및 대입값 계산부(36)를 포함한다.The nonvolatile semiconductor memory device 10 includes a latch unit 35 and a substitution value calculation unit 36 for shortening the first access overhead and enabling random access equivalent to that of a NAND flash memory having no built-in ECC circuit. Include.

래치부(35)는 하나의 페이지의 ECC 처리의 단위인 섹터 마다, 에러 위치 탐색 방정식의 계수들(e4, e3, e2, e1, e0)을 래치한다. 계수 래치(35_0)는 섹터(0)의 데이터(512바이트의 데이터)와 이 섹터(0)에 대응하는 패리티 데이터로부터 산출되는 에러 위치 탐색 방정식의 계수들(e4, e3, e2, e1, e0)을 저장 한다. 또한, 섹터(0)의 데이터를 보관 유지하는 메모리 셀의 위치를 가리키는 열 어드레스(Y[13:0]) 중 상위의 2 비트의 열 어드레스(Y[13:12])는, 열 어드레스(Y[13:12]=(0, 0))로 표현된다.The latch unit 35 latches the coefficients e4, e3, e2, e1, e0 of the error position search equation for each sector which is a unit of ECC processing of one page. The coefficient latch 35_0 includes coefficients e4, e3, e2, e1, e0 of the error position search equation calculated from the data of the sector 0 (512 bytes of data) and the parity data corresponding to the sector 0. Save it. The upper two-bit column address Y [13:12] of the column address Y [13: 0] indicating the position of the memory cell holding the data of the sector 0 is the column address Y. [13:12] = (0, 0)).

또한, 계수 래치(35_1)는 섹터(1)의 데이터(512바이트의 데이터)와 섹터(1)에 대응하는 패리티 데이터로부터 산출되는 에러 위치 탐색 방정식의 계수들(e4, e3, e2, e1, e0)을 저장 한다. 또한, 섹터(1)의 데이터를 보관 유지하는 메모리 셀의 위치를 가리키는 열 어드레스(Y[13:0]) 중 상위 2 비트의 열 어드레스(Y[13:12)는 열 어드레스(Y[13:12]=(0, 1)"로 표현된다. 계수 래치(35_2)는 섹터(2)의 데이터(512바이트의 데이타)와 섹터(2)에 대응하는 패리티 데이터로부터 산출되는 에러 위치 탐색 방정식의 계수들(e4, e3, e2, e1, e0)을 저장 한다. 섹터(2)의 데이터를 보관 유지하는 메모리 셀의 위치를 나타내는 열 어드레스(Y[13:0])중 상위 2 비트의 열 어드레스(Y[13:12])는 열 어드레스(Y[13:12]=(1, 0))로 표현된다.The coefficient latch 35_1 also includes coefficients e4, e3, e2, e1, e0 of the error position search equation calculated from the data of the sector 1 (512 bytes of data) and the parity data corresponding to the sector 1. Save). Further, the column address Y [13:12 of the upper two bits of the column address Y [13: 0] indicating the position of the memory cell holding the data of the sector 1 is the column address Y [13: 12] = (0, 1) ". The coefficient latch 35_2 is a coefficient of the error position search equation calculated from the data of the sector 2 (512 bytes of data) and the parity data corresponding to the sector 2; (E4, e3, e2, e1, e0) The upper two bits of the column address (Y [13: 0]) indicating the position of the memory cell holding the data of the sector 2 are stored. Y [13:12] is represented by the column address Y [13:12] = (1, 0).

계수 래치(35_3)는 섹터(3)의 데이터(512바이트의 데이타)와 섹터(3)에 대응하는 패리티 데이터로부터 산출되는 에러 위치 탐색 방정식의 계수들(e4, e3, e2, e1, e0)을 저장 한다. 섹터(3)의 데이터를 보관 유지하는 메모리 셀의 위치를 나타내는 열 어드레스(Y[13:0])중 상위 2 비트의 열 어드레스(Y[13:12])는 열 어드레스(Y[13:12]=(1, 1))로 표현된다.The coefficient latch 35_3 selects the coefficients e4, e3, e2, e1, e0 of the error position search equation calculated from the data of the sector 3 (512 bytes of data) and the parity data corresponding to the sector 3. Save it. The column address Y [13:12] of the upper two bits of the column address Y [13: 0] indicating the position of the memory cell holding the data of the sector 3 is the column address Y [13:12]. ] = (1, 1)).

도 4는 대입값 계산부(36)의 구성의 일예를 보여준다. 대입값 계산부(36)는 8개의 선택기들, 13개의 곱셈 회로들, 그리고 2개의 자승 연산 회로들을 포함한다.4 shows an example of the configuration of the substitution value calculator 36. The substitution calculator 36 includes eight selectors, thirteen multiplication circuits, and two square calculation circuits.

도 4에 도시된 바와 같이, 8개의 선택기들은 선택기들(401, 402, 403, 404, 405, 406, 407, 408)이다. 13개의 곱셈 회로들은 곱셈 회로들(411, 412, 413, 414, 421, 422, 431, 441, 442, 461, 462, 463, 464)이다. 또한, 2개의 자승 연산 회로들은 자승 연산 회로들(451, 452)이다.As shown in FIG. 4, the eight selectors are selectors 401, 402, 403, 404, 405, 406, 407, 408. The thirteen multiplication circuits are the multiplication circuits 411, 412, 413, 414, 421, 422, 431, 441, 442, 461, 462, 463, 464. Also, the two square calculation circuits are square calculation circuits 451 and 452.

각 선택기는, "j=4~12"로서, α의 2^j승의 값과 1을 수신하고, 열 어드레스 신호(Yj)에 응답하여 수신된 값들 중 하나를 선택하고, 선택된 값을 후단의 곱셈 회로로 출력한다. α의 2^j승의 값은, 상술된 에러 위치 탐색 방정식(Λ(x))에 대입되는 부호 데이터의 (2^j+52) 번째 위치를 가리킨다. 부호 데이터의 (2^j+52) 번째 값은, 패리티 비트에 대응하는 비트선들을 포함하는 비트선들 중 (2^j+52) 번째 비트선의 위치를 가리킨다. 또한, 열 어드레스 신호(Yj)는 열 어드레스(Y[13:0]) 중 1 비트(Y[j])이다.Each selector, as "j = 4-12", receives a value of 2 ^ j power of α and 1, selects one of the received values in response to the column address signal Yj, and selects the selected value at the rear end. Output to the multiplication circuit. The value of the 2 ^ j power of α indicates the (2 ^ j + 52) th position of the sign data substituted into the above-described error position search equation (Λ (x)). The (2 ^ j + 52) th value of the sign data indicates the position of the (2 ^ j + 52) th bit line among the bit lines including bit lines corresponding to parity bits. The column address signal Yj is one bit Y [j] of the column addresses Y [13: 0].

각 선택기는, 수신되는 열 어드레스 신호(Yj)가 H레벨일 때, 즉 "Y[j]=1"일 때, α의 2^j승의 값을 선택한다. 한편, 각 선택기는 수신되는 열 어드레스 신호(Yj)가 L레벨 때, 즉 "Y[j]=0"일 때, '1'을 선택한다.Each selector selects a value of the 2 ^ j power of α when the received column address signal Yj is at the H level, that is, "Y [j] = 1". On the other hand, each selector selects '1' when the received column address signal Yj is at L level, that is, "Y [j] = 0".

예를 들면, 상위 10 비트의 열 어드레스([13:4]) 중 1 비트의 Y[4]가 '1'이고 나머지 9 비트의 Y[13:5]가 모두 '0'일 때, 선택기(401)는 'α^16'을 선택하고, 다른 선택기들(402~408)은 '1'을 선택한다. 이하에서, 대입값 계산부(36)의 다른 회로의 연결 및 동작이 설명되고, 부호 데이터의 (24+52) 번째의 위치를 가리키는 "x=α^(16+52)"를 치엔 탐색부(33)에 입력하는 예가 설명된다.For example, when one bit of Y [4] of the top 10 bits of column address ([13: 4]) is '1' and the remaining nine bits of Y [13: 5] are all '0', the selector ( 401 selects 'α ^ 16', and other selectors 402-408 select '1'. In the following, connection and operation of another circuit of the substitution value calculating section 36 are described, and inputting "x = α ^ (16 + 52)" indicating the (24 + 52) th position of the sign data to the Chien search section 33. An example is described.

곱셈 회로(411)는 선택기(401)의 출력 단자와 선택기(402)의 출력 단자에 연결되어 선택기들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(421)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는 α^16이며, 곱셈 회로(421)의 제 1의 입력 단자에 α^16이 입력된다.The multiplication circuit 411 is connected to the output terminal of the selector 401 and the output terminal of the selector 402 to multiply the output values of the selectors, and outputs the result of the multiplication to the first input terminal of the subsequent multiplication circuit 421. In the above example, the multiplication result is α ^ 16, and α ^ 16 is input to the first input terminal of the multiplication circuit 421.

곱셈 회로(412)는 선택기(403)의 출력 단자와 선택기(404)의 출력 단자에 연결되어 선택기들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(421)의 제 2의 입력 단자로 출력한다. 상술된 예에서, 곱셈 결과는 1이며, 곱셈 회로(421)의 제 2의 입력 단자에 1이 입력된다.The multiplication circuit 412 is connected to the output terminal of the selector 403 and the output terminal of the selector 404 to multiply the output values of the selectors, and outputs the result of the multiplication to the second input terminal of the subsequent multiplication circuit 421. In the above example, the multiplication result is 1, and 1 is input to the second input terminal of the multiplication circuit 421.

곱셈 회로(413)는 선택기(405)의 출력 단자와 선택기(406)의 출력 단자에 연결되어 선택기들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(422)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는 1이며, 곱셈 회로(422)의 제 1의 입력 단자에 1이 입력된다.The multiplication circuit 413 is connected to the output terminal of the selector 405 and the output terminal of the selector 406 to multiply the output values of the selectors, and outputs the result of the multiplication to the first input terminal of the subsequent multiplication circuit 422. In the above-described example, the multiplication result is 1, and 1 is input to the first input terminal of the multiplication circuit 422.

곱셈 회로(414)는 선택기(407)의 출력 단자와 선택기(408)의 출력 단자에 연결되어 선택기들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(422)의 제 2의 입력 단자로 출력한다. 상술된 예에서, 곱셈 결과는 1이며, 곱셈 회로(422)의 제 2의 입력 단자에 1이 입력된다.The multiplication circuit 414 is connected to the output terminal of the selector 407 and the output terminal of the selector 408 to multiply the output values of the selectors, and outputs the result of the multiplication to the second input terminal of the subsequent multiplication circuit 422. In the above-described example, the multiplication result is 1, and 1 is input to the second input terminal of the multiplication circuit 422.

곱셈 회로(421)는 곱셈 회로(411)의 출력 단자와 곱셈 회로(412)의 출력 단자에 연결되어 곱셈 회로들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(431)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는 α^16이며, 곱셈 회로(431)의 제 1의 입력 단자에 α^16이 입력된다.The multiplication circuit 421 is connected to the output terminal of the multiplication circuit 411 and the output terminal of the multiplication circuit 412 to multiply the output values of the multiplication circuits, and the result of the multiplication to the first input terminal of the subsequent multiplication circuit 431. Output In the above-described example, the multiplication result is α ^ 16, and α ^ 16 is input to the first input terminal of the multiplication circuit 431.

곱셈 회로(422)는 곱셈 회로(413)의 출력 단자와 곱셈 회로(414)의 출력 단자에 연결되어 곱셈 회로들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(431)의 제 2의 입력 단자로 출력한다. 상술된 예에서, 곱셈 결과는 1이며, 곱셈 회로(422)의 제 2의 입력 단자에 1이 입력된다.The multiplication circuit 422 is connected to the output terminal of the multiplication circuit 413 and the output terminal of the multiplication circuit 414 to multiply the output values of the multiplication circuits, and the result of the multiplication to the second input terminal of the subsequent multiplication circuit 431. Output In the above-described example, the multiplication result is 1, and 1 is input to the second input terminal of the multiplication circuit 422.

곱셈 회로(431)는 곱셈 회로(421)의 출력 단자와 곱셈 회로(422)의 출력 단자에 연결되어 곱셈 회로들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(441)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는 α^16이며, 곱셈 회로(441)의 제 1의 입력 단자에 α^16이 입력된다.The multiplication circuit 431 is connected to the output terminal of the multiplication circuit 421 and the output terminal of the multiplication circuit 422 to multiply the output values of the multiplication circuits, and the result of the multiplication to the first input terminal of the subsequent multiplication circuit 441. Output In the above-described example, the multiplication result is α ^ 16, and α ^ 16 is input to the first input terminal of the multiplication circuit 441.

곱셈 회로(441)에서, 제 1의 입력 단자는 곱셈 회로(431)의 출력 단자에 연결되어 곱셈 회로(431)의 출력값을 수신하고, 제 2의 입력 단자는 고정값인 α^52를 수신한다. α^52는 부호 데이터, 즉 페이지 버퍼(12)에 저장된 셀 데이터(Cell Data) 중 패리티 비트(52 비트)의 다음에 위치하는 통상 데이터가 읽어지는 비트선의 위치, 즉 열 어드레스(Y[13:0]=0)에 의해 통상 데이터가 읽어지는 비트선의 위치를 가리키는 값이다.In the multiplication circuit 441, the first input terminal is connected to the output terminal of the multiplication circuit 431 to receive the output value of the multiplication circuit 431, and the second input terminal receives the fixed value α ^ 52. . α ^ 52 is the position of the bit line from which the code data, i.e., the normal data next to the parity bit (52 bits) among the cell data stored in the page buffer 12, is read out, that is, the column address Y [13: 0] = 0) indicates the position of the bit line where normal data is read.

곱셈 회로(441)는 곱셈 회로(431)의 출력값 및 α^52를 곱하고, 곱한 결과를 후단의 자승 연산 회로(451)의 입력 단자, 곱셈 회로(442)의 제 1의 입력 단자, 그리고 곱셈 회로(461)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는, "α^(16+52)"이며, 자승 연산 회로(451)의 입력 단자, 곱셈 회로(442)의 제 1의 입력 단자, 그리고 곱셈회로(461)의 제 1의 입력 단자에 "α^(16+52)"이 입력된다.The multiplication circuit 441 multiplies the output value of the multiplication circuit 431 and α ^ 52, and multiplies the result of the multiplication by the input terminal of the square-square calculation circuit 451, the first input terminal of the multiplication circuit 442, and the multiplication circuit. It outputs to the 1st input terminal of 461. In the above-described example, the result of the multiplication is "α ^ (16 + 52)", the input terminal of the square operation circuit 451, the first input terminal of the multiplication circuit 442, and the first of the multiplication circuit 461. "Α ^ (16 + 52)" is input to an input terminal.

자승 연산 회로(451)는 곱셈 회로(441)의 출력 단자에 연결되어 곱셈 회로(441)의 출력값을 자승하고, 자승 결과를 후단의 자승 연산 회로(452)의 입력 단자, 곱셈 회로(442)의 제 2의 입력 단자, 그리고 곱셈 회로(462)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 자승 결과는, "α^((16+52)×2)"이며, 자승 연산 회로(452)의 입력 단자, 곱셈 회로(442)의 제 2의 입력 단자, 그리고 곱셈 회로(462)의 제 1의 입력 단자에 "α^((16+52)×2)"가 입력된다.The square operation circuit 451 is connected to the output terminal of the multiplication circuit 441 to square the output value of the multiplication circuit 441, and the square result of the input terminal of the square operation circuit 452 of the subsequent stage, the multiplication circuit 442 of the Output to the second input terminal and the first input terminal of the multiplication circuit 462. In the above-described example, the square result is "α ^ ((16 + 52) x 2)", the input terminal of the square operation circuit 452, the second input terminal of the multiplication circuit 442, and the multiplication circuit 462. "(Alpha) ((16 + 52) * 2)" is input into the 1st input terminal of the terminal.

곱셈 회로(442)는 곱셈 회로(441)의 출력 단자와 자승 연산 회로(451)의 출력 단자에 연결되어 곱셈 회로(441) 및 자승 연산 회로(451)의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(463)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는 "α^((16+52)×3)"이며, 곱셈 회로(463)의 제 1의 입력 단자에 "α^((16+52)×)"3이 입력된다.The multiplication circuit 442 is connected to the output terminal of the multiplication circuit 441 and the output terminal of the square calculation circuit 451 to multiply the output values of the multiplication circuit 441 and the square calculation circuit 451, and multiply the result of the multiplication at a later stage. It outputs to the 1st input terminal of the circuit 463. In the above-described example, the multiplication result is "α ^ ((16 + 52) x3)", and "α ^ ((16 + 52) x)" 3 is input to the first input terminal of the multiplication circuit 463.

자승 연산 회로(452)는 자승 연산 회로(451)의 출력 단자에 연결되어 자승 연산 회로(451)의 출력값을 자승하고, 자승 결과를 후단의 곱셈 회로(464)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 자승 결과는 "α^((16+52)×4)"이며, 곱셈 회로(464)의 제 1의 입력 단자에 "α^((16+52)×4)"가 입력된다.The square calculation circuit 452 is connected to the output terminal of the square calculation circuit 451 to square the output value of the square calculation circuit 451, and outputs the square result to the first input terminal of the multiplication circuit 464 at the rear stage. . In the above-described example, the square result is "α ^ ((16 + 52) x4)", and "α ^ ((16 + 52) x4)" is input to the first input terminal of the multiplication circuit 464.

곱셈 회로(461)는 래치부(35)의 계수 래치의 출력 단자와 곱셈 회로(441)의 출력 단자에 접속되어 계수 래치 및 곱셈 회로(441)의 출력값들을 곱하고, 곱한 결과를 "e1x"로서 치엔 탐색부(33)로 출력한다. 상술된 예에서, 계수 래치는 계수 래치(35_0)이며, 곱셈 회로(461)의 제 2의 입력 단자에 에러 계수(e1)가 입력되고, 곱셈 회로(461)의 곱셈 결과는 "e1(α^(16+52))"이다. 따라서, 치엔 탐색부(33)의 선택기(301)에 "e1(α^(16+52))"가, 즉 x로서 "(α^(16+52))"가 입력된다.The multiplication circuit 461 is connected to the output terminal of the coefficient latch of the latch unit 35 and the output terminal of the multiplication circuit 441 to multiply the output values of the coefficient latch and the multiplication circuit 441, and multiply the result of the multiplication by "e1x". Output to search section 33. In the above-described example, the coefficient latch is the coefficient latch 35_0, the error coefficient e1 is input to the second input terminal of the multiplication circuit 461, and the multiplication result of the multiplication circuit 461 is "e1 (α ^). (16 + 52)) ". Therefore, "e1 (α ^ (16 + 52))" is input to the selector 301 of the Chien search unit 33, that is, "(α ^ (16 + 52))" is input as x.

곱셈 회로(462)는 래치부(35)의 계수 래치의 출력 단자와 자승 연산 회로(451)의 출력 단자에 연결되어 계수 래치 및 자승 연산 회로(451)의 출력값들을 곱하고, 곱한 결과를 "e2x"로서 치엔 탐색부(33)로 출력한다. 상술된 예에서, 계수 래치는 계수 래치(35_0)이며 곱셈 회로(462)의 제 2의 입력 단자에 에러 계수(e2)가 입력되고, 곱셈 회로(462)의 곱셈 결과는 "e2(α^((16+52)×2))"이다. 따라서, 치엔 탐색부(33)의 선택기(302)에 "e2(α^(16+52))^2"가, 즉 x로서 "(α^(16+52))"가 입력된다.The multiplication circuit 462 is connected to the output terminal of the coefficient latch of the latch unit 35 and the output terminal of the square calculation circuit 451 to multiply the output values of the coefficient latch and the square calculation circuit 451 and multiply the result by "e2x". As output to the Chien search unit 33 as. In the above-described example, the coefficient latch is the coefficient latch 35_0 and the error coefficient e2 is input to the second input terminal of the multiplication circuit 462, and the multiplication result of the multiplication circuit 462 is "e2 (α ^ ( (16 + 52) × 2)) ". Therefore, "e2 (α ^ (16 + 52)) ^ 2" is input to the selector 302 of the Chien search unit 33, that is, "(α ^ (16 + 52))" as x.

곱셈 회로(463)는 래치부(35)의 계수 래치의 출력 단자와 곱셈 회로(442)의 출력 단자에 연결되어 계수 래치 및 곱셈 회로(442)의 출력값들을 곱하고, 곱한 결과를 "e3x"로서 치엔 탐색부(33)로 출력한다. 상술된 예에서, 계수 래치는 계수 래치(35_0)이며, 곱셈 회로(463)의 제 2의 입력 단자에 에러 계수(e3)가 입력되고, 곱셈 회로(463)의 곱셈 결과는 "e3(α^((16+52)×3))"이다. 따라서, 치엔 탐색부(33)의 선택기(303)에 "e3(α^(16+52))^3"이, 즉 x로서 "(α^(16+52))"가 입력된다.The multiplication circuit 463 is connected to the output terminal of the coefficient latch of the latch unit 35 and the output terminal of the multiplication circuit 442 to multiply the output values of the coefficient latch and the multiplication circuit 442 and multiply the multiplication result as "e3x". Output to search section 33. In the above-described example, the coefficient latch is the coefficient latch 35_0, the error coefficient e3 is input to the second input terminal of the multiplication circuit 463, and the multiplication result of the multiplication circuit 463 is "e3 (α ^). ((16 + 52) x 3)) ". Therefore, "e3 (? ^ (16 + 52)) ^ 3" is input to the selector 303 of the Chien search unit 33, that is, "(? ^ (16 + 52))" as x.

곱셈 회로(464)는 래치부(35)의 계수 래치의 출력 단자와 자승 연산 회로(452)의 출력 단자에 접속되어 계수 래치 및 자승 연산 회로(452)의 출력값들을 곱하고, 곱한 결과를 "e4x"로서 치엔 탐색부(33)로 출력한다. 상술된 예에서, 계수 래치는 계수 래치(35_0)이며, 곱셈 회로(463)의 제 2의 입력 단자에 에러 계수(e4)가 입력되고, 곱셈 회로(464)의 곱셈 결과는 "e4(α^((16+52)×4))"이다. 따라서, 치엔 탐색부(33)의 선택기(304)에 "e4(α^(16+52))^4"가, 즉 x로서 "(α^(16+52))"가 입력된다.The multiplication circuit 464 is connected to the output terminal of the coefficient latch of the latch unit 35 and the output terminal of the square calculation circuit 452 to multiply the output values of the coefficient latch and square calculation circuit 452 and multiply the result by "e4x". As output to the Chien search unit 33 as. In the above-described example, the coefficient latch is the coefficient latch 35_0, the error coefficient e4 is input to the second input terminal of the multiplication circuit 463, and the multiplication result of the multiplication circuit 464 is " e4 (α ^ ((16 + 52) × 4)) ”. Therefore, "e4 (alpha ^ (16 + 52)) ^ 4" is input to the selector 304 of the Chien search unit 33, that is, "(α ^ (16 + 52))" as x.

상술된 바와 같이, 대입값 계산부(36)는 데이터 열의 위치를 가리키는 어드레스(열 어드레스(Y))와 래치부(35)가 저장하는 계수(에러 위치 탐색 방정식의 계수(e1~e4))를 이용하여, 에러 위치 탐색 방정식(Λ(x))에 대입되는 대입값(x)(상술된 예에서는, x=α(16+52))을 산출한다.As described above, the substitution value calculation unit 36 calculates an address indicating the position of the data column (column address Y) and a coefficient stored by the latch unit 35 (coefficients e1 to e4 of the error position search equation). Using this, the substitution value x (x = alpha (16 + 52) in the above-described example) is calculated to be substituted into the error position search equation Λ (x).

따라서, 메모리 셀로부터의 데이터 읽기 시에 페이지 버퍼(12)에 저장된 하나의 페이지의 데이터와 패리티 데이터를 기반으로, 섹터 별 에러 계수들을 래치부(35)에 저장해 두면, 에러 계수들과 열 어드레스(Y[13:4])에 따라 에러 위치 탐색 방정식(Λ(x))에 대입되는 대입값(x)이 계산될 수 있다.Therefore, when error data for each sector is stored in the latch unit 35 based on data of one page and parity data stored in the page buffer 12 when data is read from the memory cell, the error coefficients and the column address ( The substitution value x substituted into the error position search equation Λ (x) can be calculated according to Y [13: 4]).

치엔 탐색부(33)는 대입값(x)이 입력되면, 상술된 바와 같이, 대입값(x)을 초기값으로 하는 16 비트(상술된 예에서는, "x=α^(16+52),α^(17+52),α^(18+52),···,α^(30+52),α^(31+52)"의 16 비트)에 대해, 에러 위치 탐색 방정식(Λ(x))이 0이 되는지를 체크한다. 또한, 치엔 탐색부(33)는 체크 결과에 응답하여 에러 검출 신호(ERR <0>~ERR <15>)를 출력한다.The Chien search unit 33, when the substitution value x is input, as described above, 16 bits having the substitution value x as an initial value (in the above-mentioned example, "x = α ^ (16 + 52), α ^). (17 + 52), α ^ (18 + 52), ..., 16 bits of α ^ (30 + 52), α ^ (31 + 52) ", and check whether the error position search equation (Λ (x)) becomes zero. . In addition, the Chien search unit 33 outputs error detection signals ERR <0> to ERR <15> in response to the check result.

에러 정정부(34)는, 어드레스 디코더(17)가 페이지 버퍼(12)에 열 어드레스를 입력함으로써, 열 어드레스가 가리키는 위치의 메모리 셀의 데이터를 수신한다. 에러 정정부(34)는 수신된 데이터를, 치엔 탐색부(33)가 출력하는 에러 검출 신호에 응답하여, 에러 데이터인 경우 에러 정정하여 정정된 데이터를 출력하고, 에러 데이터가 아닌 경우 그대로의 데이터를 출력한다.The error correction unit 34 receives the data of the memory cell at the position indicated by the column address by the address decoder 17 inputting the column address to the page buffer 12. The error correction unit 34 corrects the received data in response to the error detection signal output by the Chien search unit 33 and outputs the corrected data by error correction in the case of the error data. Outputs

다음으로, 상술된 래치부(35)와 대입값 계산부(36)를 갖는 에러 검출 정정 회로(13)를 구비한 불휘발성 반도체 기억장치(10)에서, ECC 처리의 지연 시간(제 1 액세스 오버헤드)의 단축에 관한 효과가 도면을 참조하여 설명된다.Next, in the nonvolatile semiconductor memory device 10 including the error detection and correction circuit 13 having the latch unit 35 and the substitution value calculation unit 36 described above, the delay time of the ECC processing (first access over) The effect on the shortening of the head) is explained with reference to the drawings.

도 5는 에러 검출 정정 회로(13a)의 구성예를 보여준다. 도 6은 에러 검출 정정 회로(13)와 에러 검출 정정 회로(13a)를 비교하여 설명하기 위한 도면이다.5 shows an example of the configuration of the error detection correction circuit 13a. 6 is a diagram for explaining and comparing the error detection correction circuit 13 and the error detection correction circuit 13a.

도 5에서, 도 2와 동일한 부분은 동일한 번호로 표시되고, 그에 대한 상세한 설명은 생략 된다.In FIG. 5, the same parts as in FIG. 2 are denoted by the same numerals, and detailed description thereof is omitted.

도 5에 도시된 에러 검출 정정 회로(13a)는 도 2에 도시된 에러 검출 정정 회로(13)와 다르며, 래치부(35) 및 대입값 계산부(36)를 구비하지 않는다. 또한, 에러 검출 정정 회로(13a)는 에러 정정부(34)의 출력 결과를 버퍼(14)를 통해 정정 데이터(Corrected Data)로서 I/O 패드(15)로 출력하는 구성을 갖는 점에서, 에러 검출 정정 회로(13)과 다르다.The error detection correction circuit 13a shown in FIG. 5 is different from the error detection correction circuit 13 shown in FIG. 2 and does not include the latch unit 35 and the substitution value calculation unit 36. In addition, since the error detection and correction circuit 13a has a configuration that outputs the output result of the error correction unit 34 to the I / O pad 15 as corrected data through the buffer 14, an error is generated. It is different from the detection correction circuit 13.

이하에서, 도 6을 참조하여, 에러 검출 정정 회로(13) 및 에러 검출 정정 회로(13a) 각각의 제 1 액세스 오버헤드가 설명된다.In the following, with reference to FIG. 6, the first access overhead of each of the error detection correction circuit 13 and the error detection correction circuit 13a is described.

에러 검출 정정 회로(13a)에서, 하나의 섹터의 복호 데이터의 비트수는 정보 비트 4096비트(=512 k바이트)와 패리티 비트 52 비트(=컬럼 주소 13 비트×4)의 합계이다. 이러한 데이터를 일괄적으로 계산하는 것은 회로 규모가 커지는 점에서 현실적이지 않다. 따라서, 신드롬 계산부(31)는 64 비트 단위로 계산을 실행한다.In the error detection correction circuit 13a, the number of bits of the decoded data of one sector is the sum of the information bits 4096 bits (= 512 k bytes) and the parity bits 52 bits (= column address x 13 bits x 4). Calculating this data in batches is not practical in terms of increasing circuit size. Therefore, the syndrome calculation unit 31 performs calculation in units of 64 bits.

연산을 위한 기준이 되는 클럭 신호의 주기를 40 ns로 가정하면, 신드롬 계산부(31)의 신드롬 산출 회로 각각의 계산 시간은, "(4096+52)/64≒65 clk"의 클럭수(clk)를 필요로 하며, "40 ns×65 clk=2. 6μs(μ초)" 이다.Assuming that the period of the clock signal as a reference for the calculation is 40 ns, the calculation time of each syndrome calculation circuit of the syndrome calculation unit 31 is equal to the clock number clk of "(4096 + 52) / 64 x 65 clk". It is required and "40 ns x 65 clk = 2.6 microseconds (microsecond)".

또한, 신드롬 계산부(31)의 신드롬 산출 회로 각각은 4차 방정식의 해(에러 위치 탐색 방정식의 계수들(e4, e3, e2, e1, 및 e0))을 계산하기 위해 "40 ns×20 clk=0. 8μs"을 필요로 한다. 게다가, 치엔 탐색부(33)는, 상술된 바와 같이 16 비트를 일괄하여 에러의 유무를 판정한다. 이 판정에 요구되는 계산 시간은, "(4096+52)/16≒260 clk"의 클럭수(clk)를 필요로 하며, "40 ns×260 clk=10. 4μs" 이다. 에러 정정부(34)는 입력되는 데이터의 정정을 치엔 탐색부(33)의 판정과 동시에, 즉 에러 검출 신호를 이용하여 실시하므로, 별도의 계산 시간이 요구되지 않는다.In addition, each of the syndrome calculation circuits of the syndrome calculation unit 31 is " 40 ns × 20 clk " to calculate a solution of the quadratic equation (coefficients e4, e3, e2, e1, and e0 of the error location search equation). = 0. 8 microseconds ". In addition, the Chien search unit 33 determines the presence or absence of an error by collectively 16 bits as described above. The calculation time required for this determination requires a clock number clk of "(4096 + 52) / 16x260 clk", and is "40 ns x 260 clk = 10.4 mus". The error correction unit 34 corrects the input data simultaneously with the determination of the Chien search unit 33, that is, by using an error detection signal, so that no additional calculation time is required.

즉, ECC 처리에 요구되는 시간은, 상술된 계산 시간의 합계로, 하나의 섹터의 512바이트 정도에 대해, "2. 6μs+0. 8μs+10. 4μs=13. 8μs" 이다. 도 6a는 시각(t0)으로부터 섹터 0(Sector<0>), 섹터 1(Sector<1>), 섹터 2(Sector<2>), 섹터 3(Sector<3>)의 순서로 ECC 처리가 진행되는 것을 보여준다. 신드롬 계산부(31)의 신드롬 산출 회로(31_1)는 신드롬(Partial Syndorome)의 합 계산에 2. 6μs를 필요로 한다. 그리고, 다음 단의 에러 계수 계산부(32)는 에러 위치 탐색 방정식의 계수들(e4, e3, e2, e1, e0)의 계산에 0. 8μs를 필요로 한다. 다음 단의 치엔 탐색부(33)는, 입력되는 데이터의 정정에 10. 4μs를 필요로 한다. 또한. 버퍼(14)의 기입에 필요한 시간(SRAM에의 Data Out)은 짧으므로, 10. 4μs에 포함되는 것으로 가정한다.In other words, the time required for the ECC processing is the sum of the above-described calculation times and is about "2.6 microseconds + 0.8 micros + 10 micros = 13.8 microseconds" for about 512 bytes of one sector. Fig. 6A shows ECC processing in the order of sector 0 (Sector <0>), sector 1 (Sector <1>), sector 2 (Sector <2>), and sector 3 (Sector <3>) from time t0. To show The syndrome calculation circuit 31_1 of the syndrome calculation unit 31 requires 2. 6 s to calculate the sum of the syndromes (Partial Syndorome). Then, the error coefficient calculation unit 32 of the next stage needs 0.8 µs to calculate the coefficients e4, e3, e2, e1, and e0 of the error position search equation. The Chien search part 33 of the next stage requires 10. 4 microseconds for correction of the input data. Also. Since the time required for writing the buffer 14 (Data Out to SRAM) is short, it is assumed that it is included in 10 .4 μs.

이상의 ECC 처리는 섹터 2, 섹터 3, 및 섹터 4에 대해서도 실행되어 ECC 처리 개시부터 55. 2μs의 시간이 경과된 시각(t)1에 대해 종료된다. 즉, 임의의 열 어드레스를 입력하고, 해당 열 어드레스가 가리키는 비트의 데이터를 외부에서 읽는 것은, 버퍼(14)에 하나의 페이지 모든 셀들의 정정 후의 데이터가 기입될 때까지 기다리지 않으면 가능하지 않다. 버퍼(14)에 하나의 페이지 모든 셀들의 정정 후의 데이터가 기입될 때까지의 시간은 제 1 액세스 오버헤드인 55. 2μs이며, 이 시간은 ECC 회로를 탑재하지 않는 NAND 플래시 메모리의 거의 2배에 이른다.The above ECC processing is also performed for sector 2, sector 3, and sector 4, and ends at time t1, which has elapsed time of 55. 2 s from the start of ECC processing. That is, inputting an arbitrary column address and reading the data of the bit indicated by the column address from the outside cannot be possible without waiting until the data after correction of all the cells of one page is written in the buffer 14. The time until the correction data of all the cells of one page is written into the buffer 14 is 55. 2 s, which is the first access overhead, which is almost twice that of the NAND flash memory without ECC circuitry. To this.

이에 반해, 에러 검출 정정 회로(13)에서, 메모리 셀로부터 페이지 버퍼(12)로의 셀 데이터(Cell Data)의 읽기가 수행되면, 하나의 페이지의 데이터에 기반하여, 신드롬 계산부(31)의 신드롬 산출 회로 각각은 섹터 별로 순차적으로 신드롬을 계산한다. 또한, 에러 계수 계산부(32)는, 4차 방정식의 해(에러 위치 탐색 방정식의 계수들(e4, e3, e2, e1, e0))를 구하는 계산을 섹터별로 순차적으로 실시한다. 도 6b은 시각(t0)으로부터 섹터 0(Sector<0>), 섹터 1(Sector<1>), 섹터 2(Sector<2>), 섹터 3(Sector<3>)에 대해 순차적으로 신드롬(Partial Syndorome), 에러 위치 탐색 방정식의 계수들(e4, e3, e2, e1, e0)의 계산이 진행되는 것을 보여준다. 이러한 계산 처리는, ECC 처리 개시부터 13. 6μs의 시간을 필요로 하며, 시각(t2)에 대해 종료된다. 또한, 각 계산의 처리 시간은 에러 검출 정정 회로(13a)와 동일한 시간이다.On the other hand, in the error detection and correction circuit 13, when reading the cell data from the memory cell into the page buffer 12 is performed, the syndrome of the syndrome calculation unit 31 is based on the data of one page. Each calculation circuit sequentially calculates syndromes for each sector. In addition, the error coefficient calculation unit 32 sequentially calculates, for each sector, a solution for a quadratic equation (coefficients e4, e3, e2, e1, e0) of the error position search equation. FIG. 6B shows a syndrome sequentially for sector 0 (Sector <0>), sector 1 (Sector <1>), sector 2 (Sector <2>), and sector 3 (Sector <3>) from time t0. Syndorome) shows that the calculation of the coefficients (e4, e3, e2, e1, e0) of the error location search equation proceeds. This calculation process requires a time of 13.6 µs from the start of the ECC process, and ends with time t2. In addition, the processing time of each calculation is the same time as the error detection correction circuit 13a.

시각(t2)에, 래치부(35)의 계수 래치들 각각에는, 섹터 1 내지 섹터 4에 대한 에러 위치 탐색 방정식의 계수들(e4, e3, e2, e1, e0)이 래치된다. 즉, 시각(t2) 이후에 대입값 계산부(36)에 임의의 열 어드레스가 입력되면, 해당 열 어드레스가 가리키는 비트의 데이터의 에러 판정을 치엔 탐색부(33)가 실시할 수 있다. 또한, 에러 정정부(34)는 열 어드레스에 의해 위치가 식별되는 셀 데이터의 에러를 검출하고 정정하여 I/O 패드(15)를 통해 외부로 출력할 수 있다. 즉, 에러 검출 정정 회로(13a)와 비교할 때, 에러 검출 정정 회로(13)는 버퍼(14)에 하나의 페이지의 모든 셀들의 정정 후의 데이터를 기입하는 처리를 필요로 하지 않으며, 제 1 액세스 오버헤드를 13.6μs까지 단축할 수가 있다. 또한, 도 6b에서, 데이터의 외부로의 출력은 페이지 버퍼(12) 내의 비트의 데이터의 배치 순서(열 어드레스의 순서), 즉 섹터의 순서로 표시되고 있다. 그러나, 시각(t2) 이후에는, 랜덤 억세스가 가능하고, 임의의 섹터의 임의의 위치의 비트를 에러 정정하여 즉시 출력하는 것이 가능하다. 즉, 데이터 출력전에 필요한 계산 시간으로, 정정용 계수의 계산 시간(대입값 계산부(36)와 치엔 탐색부(33)에 의한 계산 시간이며, 40 ns정도)만이 요구되므로, 에러 검출 정정 회로(13a)와 비교하여, 제 1 액세스 오버헤드가 대폭 감소될 수 있다.At time t2, the coefficients e4, e3, e2, e1, e0 of the error position search equations for the sectors 1 to 4 are latched in each of the coefficient latches of the latch unit 35. That is, when an arbitrary column address is input to the substitution value calculating unit 36 after the time t2, the Chien search unit 33 can perform an error determination on the data of the bit indicated by the column address. In addition, the error correction unit 34 may detect and correct an error of the cell data whose position is identified by the column address, and output the error to the outside through the I / O pad 15. That is, compared with the error detection correction circuit 13a, the error detection correction circuit 13 does not require the process of writing the data after correction of all the cells of one page in the buffer 14, and the first access over The head can be shortened to 13.6 μs. In addition, in Fig. 6B, the output to the outside of the data is indicated in the arrangement order (the order of the column addresses) of the data of the bits in the page buffer 12, that is, the order of the sectors. However, after time t2, random access is possible, and it is possible to error-correct the bit at any position of any sector and immediately output it. That is, since only the calculation time of the correction coefficient (the calculation time by the substitution value calculation unit 36 and the Chien search unit 33, about 40 ns) is required as the calculation time required before the data output, the error detection correction circuit 13a is required. Compared with), the first access overhead can be greatly reduced.

이와 같이, 본 발명의 실시 예에 따른 에러 검출 정정 회로(13)는 데이터 열을 저장하는 데이터 저장부(페이지 버퍼(12)), 데이터 열로부터 신드롬을 계산하는 신드롬 계산부(31), 신드롬을 이용하여 에러 위치 탐색 방정식의 계수를 산출하는 에러 계수 계산부(32), 계수를 기억하는 래치부(35), 데이터 열의 위치를 가리키는 어드레스(열 어드레스) 및 래치부(35)가 저장하는 계수를 이용하여 에러 위치 탐색 방정식(Λ(x))에 대입되는 대입값(x)을 산출하는 대입값 계산부(36), 데이터 열의 출력시에 대입값(x)의 에러 위치 탐색 방정식(Λ(x))에 대한 대입 결과에 응답하여, 데이터 열의 비트 별로 에러가 있는지를 가리키는 에러 검출 신호(ERR<i>)를 출력하는 치엔 탐색부(33), 그리고 에러 검출 신호(ERR<i>)에 따라 데이터 열의 비트의 데이터의 에러를 정정하여 출력하는 에러 정정부(34)를 포함한다.As described above, the error detection and correction circuit 13 according to an embodiment of the present invention includes a data storage unit (page buffer 12) for storing a data string, a syndrome calculation unit 31 for calculating a syndrome from the data string, and a syndrome. An error coefficient calculation unit 32 for calculating a coefficient of the error position search equation, a latch unit 35 for storing the coefficient, an address (column address) indicating the position of the data column, and a coefficient stored in the latch unit 35. Substituting value calculation section 36 for calculating the substituting value x that is substituted into the error positioning search equation Λ (x) using the error position searching equation Λ (x) at the time of outputting the data string. In response to the assignment result of)), according to the Chien search unit 33 for outputting an error detection signal ERR <i> indicating whether there is an error for each bit of the data string, and according to the error detection signal ERR <i>. Correct the error of the data of the bit of the data string and output it. It includes an error correction unit (34).

본 발명의 실시 예에 따른 에러 검출 정정 회로(13)는 에러 위치 탐색 방정식의 계수를 기억하는 래치부(35), 계수와 비트의 위치 등과 같은 에러 위치 탐색 방정식의 대입값을 계산하는 대입값 계산부(36)를 구비한다. 따라서, 데이터의 읽기 시에, 대입값 계산부(36)에 읽어진 비트의 어드레스(열 어드레스)가 입력되면, 치엔 탐색부(33)가 해당 비트의 데이터에 에러가 있는지 아닌지를 검출한다. 에러 정정부(34)는 해당 비트의 데이터에 에러가 있으면 비트의 데이터를 정정하고 정정 후의 비트의 데이터를 출력고, 에러가 없는 경우 비트의 데이터를 그대로 출력한다. 따라서, 데이터 열(셀 데이터(Cell Data)) 중 임의의 어드레스의 비트의 데이터에 대해, 에러 정정을 실시하고 정정 후의 데이터를 고속으로 출력할 수 있는 에러 검출 정정 회로 및 메모리 장치가 제공된다.The error detection correction circuit 13 according to an exemplary embodiment of the present invention calculates a substitution value for calculating a substitution value of an error position search equation such as a latch unit 35 that stores a coefficient of the error position search equation, a coefficient and a bit position, and the like. The part 36 is provided. Therefore, if the address (column address) of the read bit is input to the substitution value calculation unit 36 at the time of reading the data, the Chien search unit 33 detects whether or not there is an error in the data of the corresponding bit. If there is an error in the data of the corresponding bit, the error correction unit 34 corrects the data of the bit, outputs the data of the corrected bit, and if there is no error, outputs the data of the bit as it is. Accordingly, an error detection correction circuit and a memory device capable of performing error correction on the data of bits at any address in the data string (Cell Data) and outputting the data after the correction at high speed are provided.

본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by the claims equivalent to the claims of the present invention as well as the claims of the following.

10; 불휘발성 반도체 기억장치 11; 메모리 셀 어레이
12; 페이지 버퍼 13; 에러 검출 정정 회로
14; 버퍼 15; I/O패드
16; 제어 회로 17; 어드레스 디코더
18; 로우 및 블록 디코더
30; 디코더부 31; 신드롬 계산부
31_1~31_4; 신드롬 산출회로 32; 잘못 계수 계산부
33; 치엔 탐색부 34; 에러 정정부
34_i, 330_1, 330_2, 330_15, 330_16; 배타적 논리합 연산 회로
35; 래치부
35_1, 35_2, 35_3, 35_4; 계수 래치
36; 대입치 계산부
40; 인코더부 41; 패리티 생성 회로
301~304, 401~408; 선택기
321_1, 321_2, 321_16, 322_1, 322_2, 322_16, 323_1, 323_2, 323_16, 324_1, 324_2, 324_16; 정수 곱셈 회로
310, 311, 312, 313, 314; 플립 플롭
340_1, 340_2, 340_15, 340_16; 논리 반전 회로
411~414, 421, 422, 431, 441, 442, 461~464; 곱셈 회로
451, 452; 자승 연산 회로
10; Nonvolatile semiconductor memory 11; The memory cell array
12; Page buffer 13; Error detection correction circuit
14; Buffer 15; I / O pads
16; Control circuit 17; The address decoder
18; Low and Block Decoder
30; Decoder section 31; Syndrome calculation unit
31_1-31_4; Syndrome output circuit 32; Miscalculation
33; Chien search unit 34; Error correction part
34_i, 330_1, 330_2, 330_15, 330_16; Exclusive OR operation circuit
35; Latch
35_1, 35_2, 35_3, 35_4; Counting latch
36; Substitution value calculation part
40; An encoder section 41; Parity generation circuit
301-304, 401-408; Selector
321_1, 321_2, 321_16, 322_1, 322_2, 322_16, 323_1, 323_2, 323_16, 324_1, 324_2, 324_16; Integer multiplication circuit
310, 311, 312, 313, 314; Flip flop
340_1, 340_2, 340_15, 340_16; Logic inversion circuit
411-414, 421, 422, 431, 441, 442, 461-464; Multiplication circuit
451, 452; Square operation circuit

Claims (3)

데이터 열을 저장하는 데이터 저장부;
상기 데이터 열로부터 신드롬을 계산하는 신드롬 계산부;
상기 신드롬을 이용하여 에러 위치 탐색 방정식의 계수를 산출하는 에러 계수 계산부;
상기 계수를 저장하는 래치부;
상기 데이터 열의 위치를 가리키는 어드레스 및 상기 래치부에 저장된 계수를 이용하여 상기 에러 위치 탐색 방정식에 대입되는 대입값을 산출하는 대입값 계산부;
상기 데이터 열의 출력시에, 상기 대입값의 상기 에러 위치 탐색 방정식에 대한 대입 결과에 응답하여, 상기 데이터 열의 비트 별로 에러가 있는지를 가리키는 에러 검출 신호를 출력하는 치엔 탐색부; 그리고
상기 에러 검출 신호에 응답하여 상기 데이터 열의 비트의 데이터의 에러를 정정하여 출력하는 에러 정정부를 포함하는 에러 검출 정정 회로.
A data storage for storing a data string;
A syndrome calculation unit calculating a syndrome from the data string;
An error coefficient calculator for calculating coefficients of an error location search equation using the syndrome;
A latch unit for storing the coefficients;
A substitution value calculator for calculating a substitution value substituted into the error location search equation using an address indicating a location of the data string and a coefficient stored in the latch unit;
A Chien search unit for outputting an error detection signal indicating whether there is an error for each bit of the data string in response to a substitution result for the error position search equation of the substitution value when the data string is output; And
And an error correction unit for correcting and outputting an error of data of bits of the data string in response to the error detection signal.
제 1 항에 있어서,
상기 데이터 열은 복수의 데이터 열로 구성되고,
상기 빗장부는 상기 복수의 데이터 열의 각각에 대응하도록 설치되는 에러 검출 정정 회로.
The method of claim 1,
The data column is composed of a plurality of data columns,
And the latch unit is provided to correspond to each of the plurality of data strings.
에러 검출 정정 회로를 포함하고,
상기 에러 검출 정정 회로는,
데이터 열을 저장하는 데이터 저장부;
상기 데이터 열로부터 신드롬을 계산하는 신드롬 계산부;
상기 신드롬을 이용하여 에러 위치 탐색 방정식의 계수를 산출하는 에러 계수 계산부;
상기 계수를 저장하는 래치부;
상기 데이터 열의 위치를 가리키는 어드레스 및 상기 래치부에 저장된 계수를 이용하여 상기 에어 위치 탐색 방정식에 대입되는 대입값을 산출하는 대입값 계산부;
상기 데이터 열의 출력시에, 상기 대입값의 상기 에러 위치 탐색 방정식에 대한 대입 결과에 응답하여, 상기 데이터 열의 비트 별로 에러가 있는지를 가리키는 에러 검출 신호를 출력하는 치엔 탐색부; 그리고
상기 에러 검출 신호에 응답하여 상기 데이터 열의 비트의 데이터의 에러를 정정하여 출력하는 에러 정정부를 포함하고,
상기 데이터 저장부는 기억 소자로부터 읽어진 데이터 열을 저장하는 회로이고,
상기 어드레스는 상기 기억 소자의 열의 위치를 가리키는 열 어드레스인 메모리 장치.
An error detection correction circuit,
The error detection correction circuit,
A data storage for storing a data string;
A syndrome calculation unit calculating a syndrome from the data string;
An error coefficient calculator for calculating coefficients of an error location search equation using the syndrome;
A latch unit for storing the coefficients;
A substitution value calculator for calculating a substitution value substituted into the air position search equation using an address indicating a location of the data string and a coefficient stored in the latch unit;
A Chien search unit for outputting an error detection signal indicating whether there is an error for each bit of the data string in response to a substitution result for the error position search equation of the substitution value when the data string is output; And
An error correction unit configured to correct and output an error of data of bits of the data string in response to the error detection signal,
The data storage unit is a circuit which stores a data string read from the storage element,
And the address is a column address indicating a position of a column of the memory element.
KR1020130039901A 2012-08-03 2013-04-11 Error check and correction circuit and memory device KR20140018095A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/958,074 US8990667B2 (en) 2012-08-03 2013-08-02 Error check and correction circuit, method, and memory device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2012-173182 2012-08-03
JP2012173182A JP2014033364A (en) 2012-08-03 2012-08-03 Error detection and correction circuit and memory device

Publications (1)

Publication Number Publication Date
KR20140018095A true KR20140018095A (en) 2014-02-12

Family

ID=50266407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130039901A KR20140018095A (en) 2012-08-03 2013-04-11 Error check and correction circuit and memory device

Country Status (2)

Country Link
JP (1) JP2014033364A (en)
KR (1) KR20140018095A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170059444A (en) * 2014-09-25 2017-05-30 에버스핀 테크놀러지스, 인크. Ecc word configuration for system-level ecc compatibility
US9966121B2 (en) 2016-06-14 2018-05-08 SK Hynix Inc. Comparison circuits and semiconductor devices employing the same
US10404283B2 (en) 2015-09-10 2019-09-03 Silicon Motion Inc. Method and associated decoding circuit for decoding an error correction code
KR20210124030A (en) * 2020-04-02 2021-10-14 윈본드 일렉트로닉스 코포레이션 Semiconductor storing apparatus and readout method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170059444A (en) * 2014-09-25 2017-05-30 에버스핀 테크놀러지스, 인크. Ecc word configuration for system-level ecc compatibility
US10404283B2 (en) 2015-09-10 2019-09-03 Silicon Motion Inc. Method and associated decoding circuit for decoding an error correction code
US10848184B2 (en) 2015-09-10 2020-11-24 Silicon Motion, Inc. Method for controlling storage device with aid of error correction and associated apparatus
US9966121B2 (en) 2016-06-14 2018-05-08 SK Hynix Inc. Comparison circuits and semiconductor devices employing the same
KR20210124030A (en) * 2020-04-02 2021-10-14 윈본드 일렉트로닉스 코포레이션 Semiconductor storing apparatus and readout method
US11487614B2 (en) 2020-04-02 2022-11-01 Winbond Electronics Corp. Semiconductor storing apparatus and readout method

Also Published As

Publication number Publication date
JP2014033364A (en) 2014-02-20

Similar Documents

Publication Publication Date Title
US8990667B2 (en) Error check and correction circuit, method, and memory device
KR101750662B1 (en) Circuits, apparatuses, and methods for correcting data errors
US7392456B2 (en) Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
US20140258811A1 (en) Storage scheme for built-in ecc operations
KR102014624B1 (en) Apparatuses and methods for pipelining memory operations with error correction coding
US20060195766A1 (en) Semiconductor memory device
JP2006190425A (en) Semiconductor memory device
JP2005346758A (en) Semiconductor storage apparatus and signal processing system
KR20120063329A (en) Error check and corrector and memory system including the same
US9384083B2 (en) Error location search circuit, and error check and correction circuit and memory device including the same
JP2010009643A (en) Error correction system
US20220180961A1 (en) Memory device and read method thereof
KR102064508B1 (en) Ecc circuit and memory device including the same
KR20140018095A (en) Error check and correction circuit and memory device
KR100566162B1 (en) Semiconductor memory device inputting/outputting data and parity data in burst operation
JP2009259113A (en) Nonvolatile memory management device
US9152493B2 (en) Error check and correction circuit and semiconductor memory
TWI493562B (en) Memory with error correction configured to prevent overcorrection
CN115732017A (en) Semiconductor memory device and read-out method
JP4582078B2 (en) Memory controller, flash memory system, and flash memory control method
JP2022137391A (en) Semiconductor storage device and error detection/correction method
KR102021560B1 (en) Error bit search circuit, error check and correction circuit therewith, and memory device therewith
JP7178465B1 (en) semiconductor storage device
KR102027949B1 (en) Error check and correction circuit and semiconductor memory
JP2014116659A (en) Error detection and correction circuit and semiconductor storage device

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination