KR20140018095A - Error check and correction circuit and memory device - Google Patents
Error check and correction circuit and memory device Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address 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
Description
본 발명은 에러 검출 정정 회로 및 메모리 장치에 관한 것이다.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
그러나, 상술된 특허 문헌 1에 기재된 구성에서, 데이터 열중 임의의 어드레스의 비트를 읽고자 하는 경우, 에러 정정 회로가 출력하는 비트가 일단 버퍼 메모리 등에 기억되고, 그 후, 읽고자 하는 비트의 어드레스가 버퍼 메모리에 추가적으로 공급되어야 한다. 즉, 종래의 경우, 에러 검출 정정 회로에서, 읽고자 하는 비트가 포함된 데이터 열의 모든 비트에 대한 에러 비트의 정정 처리가 종료될 때까지, 임의의 주소의 비트의 데이터의 에러 정정을 실시하고 에러 정정 후의 데이터를 고속으로 읽을 수 없는 문제가 있다.However, in the above-described configuration described in
본 발명이 해결하고자 하는 과제는, 데이터 열 중 임의의 어드레스의 비트의 데이터의 에러 정정을 실시하고, 에러 정정 후의 데이터를 외부에 고속으로 출력할 수 있는 에러 검출 정정 회로 및 메모리 장치를 제공하는 데에 있다.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
메모리 셀 어레이(11)는, 복수의 스택 게이트 구조의 트랜지스터들, 즉 전기적으로 다시쓰기가 가능한 불휘발성 메모리 셀들(기억소자)이 컬럼 방향(열방향)으로 직렬 접속되고, 비트선 마다 설치된 NAND 셀 스트링이 행방향(비트선의 배열 방향)으로 복수개 배치된 블록들을 포함된다. 블록들은, 비트선의 배선 방향으로 복수개 배치된다. 블록들은, 메모리 셀의 데이터의 소거 단위로 설정된다. 각 블록에는, 동일 행에 배치된 불휘발성 메모리 셀들 각각의 게이트에는, 비트선에 직교 한 워드 라인이 연결된다. 하나의 워드 라인에 의해 선택되는 불휘발성 메모리 셀의 범위가 프로그램 및 읽기의 단위가 되는 페이지이다.In the
페이지 버퍼(12)는, 페이지 단위의 데이터의 프로그램 및 읽기를 실시하기 위해, 비트선 마다 설치된 페이지 버퍼 회로를 포함한다. 페이지 버퍼(12)의 페이지 버퍼 회로 각각은, 각각의 비트선에 접속되고 접속된 비트선의 전위를 증폭하여 판정하는 센스 증폭기 회로로 이용되는 래치 회로를 포함한다.The
페이지 버퍼(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
부호 데이터(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
본 발명의 실시 예들에서, 메모리 외부로부터의 액세스는 메모리에 열 어드레스(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
또한, 에러 검출 정정 회로(13)는, 불휘발성 반도체 기억장치(10)의 데이터 기입 동작 시에, I/O 패드(15)로부터 입력되는 정보 데이터(Information Data)를 버퍼(14)를 통해 수신한다. 에러 검출 정정 회로(13)는, 수신된 정보 데이터(Information Data)로부터 패리티 데이터(Parity)를 생성함과 함께, 수신된 정보 데이터(Information Data) 및 패리티 데이터(Parity)를 페이지 버퍼(12)로 출력한다. 페이지 버퍼(12)는, 수신된 데이터를 부호 데이터(Code Data)로서, 선택된 페이지에 연결된 메모리 셀들에 기입한다.In addition, the error
제어 회로(16)는 각종 제어 신호를 입력하여 불휘발성 메모리 셀들에 대한 데이터의 프로그램, 읽기, 소거 등의 동작 및 베리파이의 동작의 제어를 실시한다. 예를 들면, 제어 신호는 외부 클럭 신호, 칩 인에이블 신호(/CE), 읽기 인에이블 신호(/RE), 프로그램 인에이블 신호(WE), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 기록방지 신호(/WP) 등을 포함할 수 있다.The
제어 회로(16)는 제어 신호와 I/O 패드(15)로부터 입력되는 커멘드 데이터가 가리키는 동작 모드에 응답하여, 각 회로로 내부 제어 신호를 출력한다. 예를 들면, 제어 회로(16)는, 프로그램 인에이블 신호(/WE)의 첫 시작시에 커멘드 래치 인에이블 신호(CLE)가 로우(L) 레벨로부터 하이(H) 레벨이 되는 것에 응답하여, I/O 패드(15)로부터 커멘드 데이타를 읽고, 내부의 레지스터에 저장한다.The
어드레스 디코더(17)는 I/O 패드(15)로부터 입력되는 어드레스(행 어드레스, 블록 어드레스, 열 어드레스)를 제어 회로(16)로부터의 내부 제어 신호에 기반하여 보관 유지한다. 또한, 어드레스 디코더(17)는 보관 유지되는 주소를 제어 회로(16)로부터의 내부 제어 신호에 기반하여, 행 및 블록 디코더(18), 페이지 버퍼(12), 및 에러 검출 정정 회로(13)로 출력한다.The
예를 들면, 제어 회로(16)는 프로그램 인에이블 신호(/WE)의 첫 시작 시에 어드레스 래치 인에이블 신호(ALE)가 로우(L) 레벨로부터 하이(H) 레벨이 되는 것에 응답하여, I/O 패드(15)로부터 주소를 읽어 어드레스 디코더(17)의 내부 레지스터에 보관 유지한다.For example, the
행 및 블록 디코더(18)는, 어드레스 디코더(17)가 보관 유지하고 출력하는 행 어드레스 및 블록 어드레스에 응답하여, 메모리 셀 어레이(11)의 블록 및 워드 라인을 선택하여, 1 페이지의 메모리 셀들을 선택한다. 또한, 어드레스 디코더(17)는, 내부로 유지하는 열 주소에 응답하여, 메모리 셀 어레이(11)의 비트선 및 페이지 버퍼(12)의 선택을 실시한다.The row and
본 발명의 실시 예에서, 데이터 읽기 동작 시에, 페이지 버퍼(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
또한, 데이터 기입 동작 시에, 페이지 버퍼(12)에 저장된 셀 데이터(Cell Data)가 버퍼(14)로 전송된다. 버퍼(14)는, 예를 들면 SRAM (Static Random Access Memory)일 수 있다.In the data write operation, cell data stored in the
버퍼(14)에서, 셀 데이터(Cell Data) 중 입력되는 열 주소에 대응하는 부분의 데이터는 I/O 패드(15)로부터의 데이터(Information Data)로 갱신될 수 있다. 또한, 에러 검출 정정 회로(13)에서, 버퍼(14)의 갱신 후의 데이터를 포함하는 하나의 정정 단위에 해당하는 데이터에 대응하는 패리티 데이터가 산출된다. 그리고, 패리티 데이터를 포함하는 인코딩된 데이터가 부호 데이터(Code Data)로서 페이지 버퍼(12)를 통해 선택된 페이지에 기입된다.In the
도 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
에러 검출 정정 회로(13)는 데이터의 복호를 수행하는 디코더부(30)와 정정용 패리티 데이터(Parity)를 생성하고 정정용 패리티 데이터(Parity)를 셀에 기입되는 데이터에 부가하는 인코더부(40)를 포함한다.The error detection and
인코더부(40)는 패리티 생성 회로(41)를 포함한다. 패리티 생성 회로(41)는 버퍼(14)에 기입된 정보 데이터(Information Data)를 생성 다항식으로 제산하여(즉, 나누어) 획득되는 패리티 데이터(Parity)를 생성한다. 또, 패리티 생성 회로(41)는 정보 데이터(Information Data)에 생성된 패리티 데이터(Parity)를 부가하여 페이지 버퍼(12)로 출력한다. 출력된 데이터는, 불휘발성 반도체 기억장치(10)의 데이터 기입 시에, 선택된 페이지에 기입되는 부호 데이터(Code Data)ㅇe다. 또한, 본 발명의 실시 예는, 불휘발성 반도체 기억 장치(10)의 데이터 읽기 시에, 에러 검출 정정 회로(13)가 고속으로 데이터 정정 처리를 실시하는 것에 특징으로 갖는다. 이하에서, 디코더부(30)에 대해 상세하게 설명된다.The
디코더부(30)는 신드롬 계산부(31), 에러 계수 계산부(32), 치엔 탐색부(33), 에러 정정부(34), 래치부(35), 및 대입값 계산부(36)를 포함한다.The
신드롬 계산부(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
에러 계수 계산부(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
여기에서, 에러 위치 탐색 방정식에 대해 설명하기 위해, 치엔 탐색부(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
선택기들(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).
여기에서, 선택기(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
따라서, 선택기들(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
플립 플롭들(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
배타적 논리합 회로(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
에러 정정부(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
마찬가지로, "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
에러 정정부(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
그런데, 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
ECC 회로를 내장한 불휘발성 반도체 기억장치(10)에서도 동일한 읽기를 가능하게 하려면, 이하와 같은 처리가 필요하다. 즉, 메모리 셀로부터 읽어진 데이터(페이지 버퍼(12)에 저장된 데이터)를 이용하여 신드롬 계산부(31)에서 신드롬을 계산하고, 계수 계산부(32)가 에러 계수를 계산한다. 그리고, 상술된 바와 같이, 치엔 탐색부(33)의 선택기의 입력의 열 어드레스를, 예를 들면 최하위로부터 변경시키며 에러 위치 탐색 방정식(Λ(X))이 0이 되는지를 체크한다. 이 체크 결과에 따라, 페이지 버퍼(12)로부터 읽어진 데이터에 에러가 있으면 에러를 정정하고, 정정 후의 데이터가 출력된다.In order to enable the same reading in the nonvolatile
그러나, 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
불휘발성 반도체 기억장치(10)는, 페이지 버퍼(12)와 별도로 버퍼(14)(예를 들면, SRAM, Static Random Access Memory)를 구비하므로, 버퍼(14)에 정정 후의 데이터를 모두 저장하고, 저장 후에 임의의 열 어드레스를 이용(또는 입력)하여 정정 후의 데이터를 I/O 패드(15)로 출력할 수 있다. 또는, 회로적인 궁리에 의해, 정정 후의 데이터를 버퍼(14)가 아닌 페이지 버퍼(12)에 다시 저장한 후에, 페이지 버퍼(12)로부터 데이터를 읽는 방식도 고려될 수 있다.Since the nonvolatile
이와 같이, ECC 회로를 내장하는 불휘발성 반도체 기억장치(10)에 임의의 열 어드레스를 입력하는 액세스 하는 모드를 갖추고자 하는 경우, 하나의 페이지 분의 데이터의 에러 정정 처리를 완료하고, 임의의 열 어드레스를 입력하고, 해당 위치의 메모리 셀의 데이터를 읽을 때까지의 시간(이하, 제 1 액세스 오버헤드(1st Access Overhead)이 길어진다.As described above, in the case where the nonvolatile
불휘발성 반도체 기억장치(10)는 제 1 액세스 오버헤드를 단축하여, ECC 회로를 내장하지 않는 NAND 플래쉬 메모리와 동등한 랜덤 액세스를 가능하게 하기 위한 래치부(35) 및 대입값 계산부(36)를 포함한다.The nonvolatile
래치부(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
또한, 계수 래치(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
계수 래치(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
도 4는 대입값 계산부(36)의 구성의 일예를 보여준다. 대입값 계산부(36)는 8개의 선택기들, 13개의 곱셈 회로들, 그리고 2개의 자승 연산 회로들을 포함한다.4 shows an example of the configuration of the
도 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
각 선택기는, "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
곱셈 회로(411)는 선택기(401)의 출력 단자와 선택기(402)의 출력 단자에 연결되어 선택기들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(421)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는 α^16이며, 곱셈 회로(421)의 제 1의 입력 단자에 α^16이 입력된다.The
곱셈 회로(412)는 선택기(403)의 출력 단자와 선택기(404)의 출력 단자에 연결되어 선택기들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(421)의 제 2의 입력 단자로 출력한다. 상술된 예에서, 곱셈 결과는 1이며, 곱셈 회로(421)의 제 2의 입력 단자에 1이 입력된다.The
곱셈 회로(413)는 선택기(405)의 출력 단자와 선택기(406)의 출력 단자에 연결되어 선택기들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(422)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는 1이며, 곱셈 회로(422)의 제 1의 입력 단자에 1이 입력된다.The
곱셈 회로(414)는 선택기(407)의 출력 단자와 선택기(408)의 출력 단자에 연결되어 선택기들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(422)의 제 2의 입력 단자로 출력한다. 상술된 예에서, 곱셈 결과는 1이며, 곱셈 회로(422)의 제 2의 입력 단자에 1이 입력된다.The
곱셈 회로(421)는 곱셈 회로(411)의 출력 단자와 곱셈 회로(412)의 출력 단자에 연결되어 곱셈 회로들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(431)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는 α^16이며, 곱셈 회로(431)의 제 1의 입력 단자에 α^16이 입력된다.The
곱셈 회로(422)는 곱셈 회로(413)의 출력 단자와 곱셈 회로(414)의 출력 단자에 연결되어 곱셈 회로들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(431)의 제 2의 입력 단자로 출력한다. 상술된 예에서, 곱셈 결과는 1이며, 곱셈 회로(422)의 제 2의 입력 단자에 1이 입력된다.The
곱셈 회로(431)는 곱셈 회로(421)의 출력 단자와 곱셈 회로(422)의 출력 단자에 연결되어 곱셈 회로들의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(441)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는 α^16이며, 곱셈 회로(441)의 제 1의 입력 단자에 α^16이 입력된다.The
곱셈 회로(441)에서, 제 1의 입력 단자는 곱셈 회로(431)의 출력 단자에 연결되어 곱셈 회로(431)의 출력값을 수신하고, 제 2의 입력 단자는 고정값인 α^52를 수신한다. α^52는 부호 데이터, 즉 페이지 버퍼(12)에 저장된 셀 데이터(Cell Data) 중 패리티 비트(52 비트)의 다음에 위치하는 통상 데이터가 읽어지는 비트선의 위치, 즉 열 어드레스(Y[13:0]=0)에 의해 통상 데이터가 읽어지는 비트선의 위치를 가리키는 값이다.In the
곱셈 회로(441)는 곱셈 회로(431)의 출력값 및 α^52를 곱하고, 곱한 결과를 후단의 자승 연산 회로(451)의 입력 단자, 곱셈 회로(442)의 제 1의 입력 단자, 그리고 곱셈 회로(461)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는, "α^(16+52)"이며, 자승 연산 회로(451)의 입력 단자, 곱셈 회로(442)의 제 1의 입력 단자, 그리고 곱셈회로(461)의 제 1의 입력 단자에 "α^(16+52)"이 입력된다.The
자승 연산 회로(451)는 곱셈 회로(441)의 출력 단자에 연결되어 곱셈 회로(441)의 출력값을 자승하고, 자승 결과를 후단의 자승 연산 회로(452)의 입력 단자, 곱셈 회로(442)의 제 2의 입력 단자, 그리고 곱셈 회로(462)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 자승 결과는, "α^((16+52)×2)"이며, 자승 연산 회로(452)의 입력 단자, 곱셈 회로(442)의 제 2의 입력 단자, 그리고 곱셈 회로(462)의 제 1의 입력 단자에 "α^((16+52)×2)"가 입력된다.The
곱셈 회로(442)는 곱셈 회로(441)의 출력 단자와 자승 연산 회로(451)의 출력 단자에 연결되어 곱셈 회로(441) 및 자승 연산 회로(451)의 출력값들을 곱하고, 곱한 결과를 후단의 곱셈 회로(463)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 곱한 결과는 "α^((16+52)×3)"이며, 곱셈 회로(463)의 제 1의 입력 단자에 "α^((16+52)×)"3이 입력된다.The
자승 연산 회로(452)는 자승 연산 회로(451)의 출력 단자에 연결되어 자승 연산 회로(451)의 출력값을 자승하고, 자승 결과를 후단의 곱셈 회로(464)의 제 1의 입력 단자로 출력한다. 상술된 예에서, 자승 결과는 "α^((16+52)×4)"이며, 곱셈 회로(464)의 제 1의 입력 단자에 "α^((16+52)×4)"가 입력된다.The
곱셈 회로(461)는 래치부(35)의 계수 래치의 출력 단자와 곱셈 회로(441)의 출력 단자에 접속되어 계수 래치 및 곱셈 회로(441)의 출력값들을 곱하고, 곱한 결과를 "e1x"로서 치엔 탐색부(33)로 출력한다. 상술된 예에서, 계수 래치는 계수 래치(35_0)이며, 곱셈 회로(461)의 제 2의 입력 단자에 에러 계수(e1)가 입력되고, 곱셈 회로(461)의 곱셈 결과는 "e1(α^(16+52))"이다. 따라서, 치엔 탐색부(33)의 선택기(301)에 "e1(α^(16+52))"가, 즉 x로서 "(α^(16+52))"가 입력된다.The
곱셈 회로(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
곱셈 회로(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
곱셈 회로(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
상술된 바와 같이, 대입값 계산부(36)는 데이터 열의 위치를 가리키는 어드레스(열 어드레스(Y))와 래치부(35)가 저장하는 계수(에러 위치 탐색 방정식의 계수(e1~e4))를 이용하여, 에러 위치 탐색 방정식(Λ(x))에 대입되는 대입값(x)(상술된 예에서는, x=α(16+52))을 산출한다.As described above, the substitution
따라서, 메모리 셀로부터의 데이터 읽기 시에 페이지 버퍼(12)에 저장된 하나의 페이지의 데이터와 패리티 데이터를 기반으로, 섹터 별 에러 계수들을 래치부(35)에 저장해 두면, 에러 계수들과 열 어드레스(Y[13:4])에 따라 에러 위치 탐색 방정식(Λ(x))에 대입되는 대입값(x)이 계산될 수 있다.Therefore, when error data for each sector is stored in the
치엔 탐색부(33)는 대입값(x)이 입력되면, 상술된 바와 같이, 대입값(x)을 초기값으로 하는 16 비트(상술된 예에서는, "x=α^(16+52),α^(17+52),α^(18+52),···,α^(30+52),α^(31+52)"의 16 비트)에 대해, 에러 위치 탐색 방정식(Λ(x))이 0이 되는지를 체크한다. 또한, 치엔 탐색부(33)는 체크 결과에 응답하여 에러 검출 신호(ERR <0>~ERR <15>)를 출력한다.The
에러 정정부(34)는, 어드레스 디코더(17)가 페이지 버퍼(12)에 열 어드레스를 입력함으로써, 열 어드레스가 가리키는 위치의 메모리 셀의 데이터를 수신한다. 에러 정정부(34)는 수신된 데이터를, 치엔 탐색부(33)가 출력하는 에러 검출 신호에 응답하여, 에러 데이터인 경우 에러 정정하여 정정된 데이터를 출력하고, 에러 데이터가 아닌 경우 그대로의 데이터를 출력한다.The
다음으로, 상술된 래치부(35)와 대입값 계산부(36)를 갖는 에러 검출 정정 회로(13)를 구비한 불휘발성 반도체 기억장치(10)에서, ECC 처리의 지연 시간(제 1 액세스 오버헤드)의 단축에 관한 효과가 도면을 참조하여 설명된다.Next, in the nonvolatile
도 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
도 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
이하에서, 도 6을 참조하여, 에러 검출 정정 회로(13) 및 에러 검출 정정 회로(13a) 각각의 제 1 액세스 오버헤드가 설명된다.In the following, with reference to FIG. 6, the first access overhead of each of the error
에러 검출 정정 회로(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
연산을 위한 기준이 되는 클럭 신호의 주기를 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
또한, 신드롬 계산부(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
즉, 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
이상의 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
이에 반해, 에러 검출 정정 회로(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
시각(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
이와 같이, 본 발명의 실시 예에 따른 에러 검출 정정 회로(13)는 데이터 열을 저장하는 데이터 저장부(페이지 버퍼(12)), 데이터 열로부터 신드롬을 계산하는 신드롬 계산부(31), 신드롬을 이용하여 에러 위치 탐색 방정식의 계수를 산출하는 에러 계수 계산부(32), 계수를 기억하는 래치부(35), 데이터 열의 위치를 가리키는 어드레스(열 어드레스) 및 래치부(35)가 저장하는 계수를 이용하여 에러 위치 탐색 방정식(Λ(x))에 대입되는 대입값(x)을 산출하는 대입값 계산부(36), 데이터 열의 출력시에 대입값(x)의 에러 위치 탐색 방정식(Λ(x))에 대한 대입 결과에 응답하여, 데이터 열의 비트 별로 에러가 있는지를 가리키는 에러 검출 신호(ERR<i>)를 출력하는 치엔 탐색부(33), 그리고 에러 검출 신호(ERR<i>)에 따라 데이터 열의 비트의 데이터의 에러를 정정하여 출력하는 에러 정정부(34)를 포함한다.As described above, the error detection and
본 발명의 실시 예에 따른 에러 검출 정정 회로(13)는 에러 위치 탐색 방정식의 계수를 기억하는 래치부(35), 계수와 비트의 위치 등과 같은 에러 위치 탐색 방정식의 대입값을 계산하는 대입값 계산부(36)를 구비한다. 따라서, 데이터의 읽기 시에, 대입값 계산부(36)에 읽어진 비트의 어드레스(열 어드레스)가 입력되면, 치엔 탐색부(33)가 해당 비트의 데이터에 에러가 있는지 아닌지를 검출한다. 에러 정정부(34)는 해당 비트의 데이터에 에러가 있으면 비트의 데이터를 정정하고 정정 후의 비트의 데이터를 출력고, 에러가 없는 경우 비트의 데이터를 그대로 출력한다. 따라서, 데이터 열(셀 데이터(Cell Data)) 중 임의의 어드레스의 비트의 데이터에 대해, 에러 정정을 실시하고 정정 후의 데이터를 고속으로 출력할 수 있는 에러 검출 정정 회로 및 메모리 장치가 제공된다.The error
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.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;
12;
14;
16;
18; Low and Block Decoder
30;
31_1-31_4;
33;
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
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.
상기 데이터 열은 복수의 데이터 열로 구성되고,
상기 빗장부는 상기 복수의 데이터 열의 각각에 대응하도록 설치되는 에러 검출 정정 회로.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.
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)
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 |
-
2012
- 2012-08-03 JP JP2012173182A patent/JP2014033364A/en active Pending
-
2013
- 2013-04-11 KR KR1020130039901A patent/KR20140018095A/en not_active Application Discontinuation
Cited By (6)
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 |