KR20230077606A - Error correction code circuit, memory device including error correction code, and operation method of error correction code - Google Patents

Error correction code circuit, memory device including error correction code, and operation method of error correction code Download PDF

Info

Publication number
KR20230077606A
KR20230077606A KR1020220049463A KR20220049463A KR20230077606A KR 20230077606 A KR20230077606 A KR 20230077606A KR 1020220049463 A KR1020220049463 A KR 1020220049463A KR 20220049463 A KR20220049463 A KR 20220049463A KR 20230077606 A KR20230077606 A KR 20230077606A
Authority
KR
South Korea
Prior art keywords
data
error
parity
syndrome
decoding
Prior art date
Application number
KR1020220049463A
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 US17/988,140 priority Critical patent/US20230163786A1/en
Priority to TW111144487A priority patent/TW202329147A/en
Priority to CN202211471281.XA priority patent/CN116168754A/en
Publication of KR20230077606A publication Critical patent/KR20230077606A/en

Links

Images

Classifications

    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1032Simple parity
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Abstract

본 발명에 따른 메모리 장치는 제1 데이터 및 제1 패리티 데이터를 저장하도록 구성된 메모리 셀 어레이, 제1 데이터 및 제1 패리티 데이터를 기반으로 에러 정정 코드(Error Correction Code) 디코딩을 수행하여, 에러 정정된 데이터 및 디코딩 상태 플래그를 출력하도록 구성된 ECC 회로, 및 에러 정정된 데이터 및 디코딩 플래그를 메모리 컨트롤러로 제공하도록 구성된 입출력 회로를 포함한다. ECC 회로는 제1 데이터 및 제1 패리티 데이터를 기반으로 신드롬을 생성하도록 구성된 신드롬 생성기, 신드롬을 디코딩하여 에러 벡터를 생성하도록 구성된 신드롬 디코딩 회로, 에러 벡터 및 제1 데이터를 기반으로, 에러 정정된 데이터를 생성하도록 구성된 정정 로직 회로, 및 에러 벡터 없이, 신드롬을 기반으로 디코딩 상태 플래그를 생성하도록 구성된 고속 디코딩 상태 플래그(DSF; decoding status flag) 생성기를 포함한다. A memory device according to the present invention performs error correction code decoding based on a memory cell array configured to store first data and first parity data, and the first data and first parity data to obtain an error corrected data. An ECC circuit configured to output data and a decoding status flag, and an input/output circuit configured to provide error corrected data and a decoding flag to a memory controller. The ECC circuit includes a syndrome generator configured to generate a syndrome based on the first data and the first parity data, a syndrome decoding circuit configured to generate an error vector by decoding the syndrome, and error-corrected data based on the error vector and the first data. and a high-speed decoding status flag (DSF) generator configured to generate a decoding status flag based on the syndrome, without an error vector.

Description

에러 정정 코드 회로, 에러 정정 코드 회로를 포함하는 메모리 장치, 및 에러 정정 코드 회로의 동작 방법{ERROR CORRECTION CODE CIRCUIT, MEMORY DEVICE INCLUDING ERROR CORRECTION CODE, AND OPERATION METHOD OF ERROR CORRECTION CODE}Error correction code circuit, memory device including error correction code circuit, and operation method of error correction code circuit

본 발명은 반도체 메모리에 관한 것으로 좀 더 상세하게는, 메모리 장치 및 메모리 장치의 에러 정정 코드 디코딩 방법에 관한 것이다. The present invention relates to a semiconductor memory, and more particularly, to a memory device and an error correction code decoding method of the memory device.

반도체 메모리는 SRAM, DRAM 등과 같이 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 휘발성 메모리 장치 및 플래시 메모리 장치, PRAM, MRAM, RRAM, FRAM 등과 같이 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 불휘발성 메모리 장치로 구분된다.Semiconductor memory consists of volatile memory devices, such as SRAM and DRAM, in which stored data is lost when power supply is cut off, and non-volatile memory devices, such as flash memory devices, PRAM, MRAM, RRAM, and FRAM, which retain stored data even when power supply is cut off. It is classified as a volatile memory device.

DRAM은 모바일 장치 또는 컴퓨터 장치의 시스템 메모리로서 널리 사용된다. 최근에, DRAM 장치는 저장된 데이터의 신뢰성을 향상시키기 위한 ECC(Error Correction Code) 회로를 포함한다. ECC 회로는 DRAM 장치에 저장된 데이터의 에러를 정정할 수 있다. 데이터의 에러가 ECC 회로의 에러 정정 능력을 초과하는 경우, 에러가 정상적으로 정정될 수 없다. 이 경우, ECC 회로의 디코딩 결과를 외부 장치(예를 들어, 메모리 컨트롤러)로 알리기 위한 수단이 필요하다. 이를 위해, ECC 회로는 ECC 디코딩 결과에 대한 정보를 포함하는 디코딩 상태 플래그(DSF)를 메모리 컨트롤러로 제공할 수 있다. DRAM is widely used as system memory in mobile devices or computer devices. Recently, DRAM devices include an Error Correction Code (ECC) circuit for improving reliability of stored data. The ECC circuit can correct errors in data stored in the DRAM device. If the error of the data exceeds the error correction capability of the ECC circuit, the error cannot be normally corrected. In this case, a means for notifying the decoding result of the ECC circuit to an external device (eg, a memory controller) is required. To this end, the ECC circuit may provide a decoding status flag (DSF) including information on an ECC decoding result to the memory controller.

본 발명의 목적은 향상된 신뢰성 및 향상된 성능을 갖는 메모리 장치, 메모리 장치의 에러 정정 코드 디코딩 방법을 제공하는데 있다. An object of the present invention is to provide a memory device having improved reliability and improved performance, and a method for decoding an error correction code of the memory device.

본 발명의 일 실시 예에 따르면, 메모리 장치는 제1 데이터 및 제1 패리티 데이터를 저장하도록 구성된 메모리 셀 어레이; 상기 제1 데이터 및 제1 패리티 데이터를 기반으로 에러 정정 코드(Error Correction Code) 디코딩을 수행하여, 에러 정정된 데이터 및 디코딩 상태 플래그를 출력하도록 구성된 ECC 회로; 및 상기 에러 정정된 데이터 및 상기 디코딩 플래그를 메모리 컨트롤러로 제공하도록 구성된 입출력 회로를 포함하고, 상기 ECC 회로는: 상기 제1 데이터 및 제1 패리티 데이터를 기반으로 신드롬을 생성하도록 구성된 신드롬 생성기; 상기 신드롬을 디코딩하여 에러 벡터를 생성하도록 구성된 신드롬 디코딩 회로; 상기 에러 벡터 및 상기 제1 데이터를 기반으로, 상기 에러 정정된 데이터를 생성하도록 구성된 정정 로직 회로; 및 상기 에러 벡터 없이, 상기 신드롬을 기반으로 상기 디코딩 상태 플래그를 생성하도록 구성된 고속 디코딩 상태 플래그(DSF; decoding status flag) 생성기를 포함한다.According to one embodiment of the present invention, a memory device includes a memory cell array configured to store first data and first parity data; an ECC circuit configured to perform error correction code decoding based on the first data and first parity data, and output error-corrected data and a decoding status flag; and an input/output circuit configured to provide the error-corrected data and the decoding flag to a memory controller, wherein the ECC circuit includes: a syndrome generator configured to generate a syndrome based on the first data and first parity data; a syndrome decoding circuit configured to decode the syndrome to generate an error vector; correction logic circuitry configured to generate the error corrected data based on the error vector and the first data; and a fast decoding status flag (DSF) generator configured to generate the decoding status flag based on the syndrome without the error vector.

본 발명의 일 실시 예에 따르면, 메모리 장치에 저장된 제1 데이터 및 제1 패리티 데이터를 기반으로 상기 제1 데이터를 정정하도록 구성된 에러 정정 코드(ECC; error correction code) 회로는: 상기 메모리 장치로부터의 상기 제1 데이터 및 상기 제1 패리티 데이터를 기반으로 신드롬을 생성하도록 구성된 신드롬 생성기; 상기 신드롬을 패리티-체크 행렬의 각 열과 비교하여 에러 벡터를 생성하도록 구성된 신드롬 디코딩 회로; 상기 에러 벡터 및 상기 제1 데이터를 기반으로, 상기 에러 정정된 데이터를 생성하도록 구성된 정정 로직 회로; 및 상기 신드롬 및 축약된 패리티-체크 행렬을 기반으로 상기 에러 정정된 데이터에 대한 디코딩 상태를 가리키는 디코딩 상태 플래그를 생성하도록 구성된 고속 디코딩 상태 플래그(DSF; decoding status flag) 생성기를 포함하고, 상기 축약된 패리티-체크 행렬은 상기 패리티-체크 행렬의 일부 정보만 포함한다.According to an embodiment of the present invention, an error correction code (ECC) circuit configured to correct first data based on first data and first parity data stored in a memory device includes: a syndrome generator configured to generate a syndrome based on the first data and the first parity data; syndrome decoding circuitry configured to compare the syndrome with each column of a parity-check matrix to generate an error vector; correction logic circuitry configured to generate the error corrected data based on the error vector and the first data; and a fast decoding status flag (DSF) generator configured to generate a decoding status flag indicating a decoding status for the error corrected data based on the syndrome and a reduced parity-check matrix, wherein the The parity-check matrix includes only partial information of the parity-check matrix.

본 발명의 일 실시 예에 따르면, 메모리 장치에 저장된 제1 데이터 및 제1 패리티 데이터를 기반으로 상기 제1 데이터를 정정하도록 구성된 에러 정정 코드(ECC; error correction code) 회로의 동작 방법은: 상기 제1 데이터 및 상기 제1 패리티 데이터를 기반으로, 신드롬을 생성하는 단계; 상기 신드롬 및 패리티-체크 행렬을 기반으로 에러 벡터를 생성하는 단계; 상기 에러 벡터 및 상기 제1 데이터에 대한 로직 연산을 수행하여, 에러 정정된 데이터를 생성하는 단계; 상기 신드롬 및 축약된 패리티-체크 행렬을 기반으로 디코딩 상태 플래그를 생성하는 단계; 및 상기 에러 정정된 데이터 및 상기 디코딩 상태 플래그를 메모리 컨트롤러로 전송하는 단계를 포함하고, 상기 에러 벡터를 생성하는 단계 및 상기 디코딩 상태 플래그를 생성하는 단계는 병렬적으로 수행된다.According to an embodiment of the present invention, an operating method of an error correction code (ECC) circuit configured to correct first data based on first data and first parity data stored in a memory device includes: generating a syndrome based on 1 data and the first parity data; generating an error vector based on the syndrome and the parity-check matrix; generating error-corrected data by performing a logic operation on the error vector and the first data; generating a decoding status flag based on the syndrome and the reduced parity-check matrix; and transmitting the error-corrected data and the decoding status flag to a memory controller, wherein generating the error vector and generating the decoding status flag are performed in parallel.

본 발명의 일 실시 예에 따르면, 에러 정정 코드(ECC; error correction code) 회로의 구성 방법은: 상기 ECC 회로의 신드롬 디코딩을 위해 사용되는 패리티-체크 행렬을 결정하는 단계; 상기 패리티-체크 행렬의 반복 특성을 기반으로, 축약된 패리티-체크 행렬을 생성하는 단계; 및 상기 축약된 패리티-체크 행렬의 각 열에 대한 정보를 기반으로 상기 신드롬의 일부 정보에 대한 로직 연산이 수행되도록 상기 ECC 회로의 고속 디코딩 상태 플래그 생성기를 구성하는 단계를 포함하고, 상기 축약된 패리티-체크 행렬은 상기 패리티-체크 행렬의 일부 정보만 포함한다. According to an embodiment of the present invention, a method of configuring an error correction code (ECC) circuit includes: determining a parity-check matrix used for syndrome decoding of the ECC circuit; generating a reduced parity-check matrix based on repetition characteristics of the parity-check matrix; and configuring a high-speed decoding state flag generator of the ECC circuit to perform a logic operation on some information of the syndrome based on information on each column of the reduced parity-check matrix, wherein the reduced parity-check matrix comprises: The check matrix includes only some information of the parity-check matrix.

본 발명에 따르면, 메모리 장치에 포함된 ECC 회로는 신드롬 정보만을 사용하여, 디코딩 상태 플래그를 생성할 수 있다. 이 경우, 신드롬 디코딩 동작과 함께, 디코딩 상태 플래그가 생성될 수 있기 때문에, ECC 디코딩을 위한 전체 지연 시간이 감소될 수 있다. 따라서, 향상된 성능 및 향상된 신뢰성을 갖는 메모리 장치 및 메모리 장치의 에러 정정 코드 디코딩 방법이 제공된다. According to the present invention, an ECC circuit included in a memory device may generate a decoding state flag using only syndrome information. In this case, since the decoding status flag can be generated together with the syndrome decoding operation, the total delay time for ECC decoding can be reduced. Accordingly, a memory device and an error correction code decoding method of the memory device having improved performance and improved reliability are provided.

도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 도 1의 메모리 장치를 보여주는 블록도이다.
도 3은 도 2의 ECC 회로의 동작을 설명하기 위한 블록도이다.
도 4a는 도 3의 ECC 디코더의 동작을 보여주는 순서도이다.
도 4b는 도 4a의 순서도에 따른 동작을 수행하도록 구성된 ECC 디코더를 보여주는 블록도이다.
도 4c는 도 4b의 DSF 생성기를 보여주는 블록도이다.
도 5a는 도 3의 ECC 디코더의 동작을 보여주는 순서도이다.
도 5b는 도 5a의 순서도에 동작을 수행하도록 구성된 ECC 디코더를 보여주는 블록도이다.
도 5c는 도 5b의 고속 DSF 생성기를 보여주는 블록도이다.
도 6, 도 7a, 도 7b, 및 도 7c는 도 5a의 신드롬 디코딩 회로에 의해 사용되는 H-행렬의 일부 예를 보여주는 도면이다.
도 8은 도 6 내지 도 7c의 H-행렬을 기반으로 생성된 축약된 H-행렬의 일부 예를 보여주는 도면이다.
도 9는 5c의 고속 DSF 생성기의 신드롬 체크 회로의 일부 예를 보여주는 도면이다.
도 10은 5c의 고속 DSF 생성기의 패리티 에러 체크 회로의 일부 예를 보여주는 도면이다.
도 11은 5c의 고속 DSF 생성기의 고속 데이터 에러 체크 회로의 일부 예를 보여주는 도면이다.
도 12는 5c의 고속 DSF 생성기의 DST 검출 회로의 일부 예를 보여주는 도면이다.
도 13은 도 5c의 고속 DSF 생성기의 DSF 검출 회로의 일부 예를 보여주는 블록도이다.
도 14는 본 발명의 실시 예에 따른 축약된 H-행렬의 일부 예를 보여주는 도면이다.
도 15는 도 14의 UE 판정용 축약된 H-행렬을 사용하는 고속 데이터 에러 체크 회로의 일부 예를 보여주는 도면이다.
도 16은 도 15의 고속 데이터 에러 체크 회로로부터의 데이터 에러 정보를 사용하는 DSF 검출 회로의 일부 예를 보여주는 도면이다.
도 17은 도 15의 고속 데이터 에러 체크 회로로부터의 데이터 에러 정보를 사용하는 DSF 검출 회로의 일부 예를 보여주는 도면이다.
도 18은 본 발명의 실시 예에 따른 축약된 H-행렬을 생성하는 방법을 설명하기 위한 순서도이다.
도 19는 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 20은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 21은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 22는 본 발명의 실시 예에 따른 메모리 패키지의 일부 예를 보여주는 도면이다.
도 23은 본 발명의 실시 예에 따른 메모리 패키지의 일부 예를 보여주는 도면이다.
도 24는 본 발명에 따른 메모리 장치가 적용된 메모리 모듈(6000)을 예시적으로 보여주는 블록도이다.
도 25은 본 발명의 일 실시예에 따른 스토리지(storage) 장치가 적용된 시스템(7000)을 도시한 도면이다.
1 is a block diagram illustrating a memory system according to an exemplary embodiment of the inventive concept.
FIG. 2 is a block diagram illustrating the memory device of FIG. 1 .
FIG. 3 is a block diagram for explaining the operation of the ECC circuit of FIG. 2 .
4A is a flowchart showing the operation of the ECC decoder of FIG. 3;
4b is a block diagram showing an ECC decoder configured to perform operations according to the flowchart of FIG. 4a.
Figure 4c is a block diagram showing the DSF generator of Figure 4b.
5A is a flowchart showing the operation of the ECC decoder of FIG. 3;
5B is a block diagram showing an ECC decoder configured to perform operations on the flowchart of FIG. 5A.
Figure 5c is a block diagram showing the fast DSF generator of Figure 5b.
6, 7a, 7b, and 7c are diagrams showing some examples of H-matrices used by the syndrome decoding circuit of FIG. 5a.
8 is a diagram showing some examples of an abbreviated H-matrix generated based on the H-matrices of FIGS. 6 to 7C.
9 is a diagram showing some examples of a syndrome check circuit of the high-speed DSF generator of FIG. 5c.
10 is a diagram showing some examples of a parity error check circuit of the high-speed DSF generator of 5c.
11 is a diagram showing some examples of a high-speed data error check circuit of the high-speed DSF generator of 5c.
12 is a diagram showing some examples of the DST detection circuit of the high-speed DSF generator of 5c.
13 is a block diagram showing some examples of DSF detection circuitry of the high-speed DSF generator of FIG. 5C.
14 is a diagram showing some examples of an abbreviated H-matrix according to an embodiment of the present invention.
FIG. 15 is a diagram showing some examples of a high-speed data error checking circuit using the shortened H-matrix for UE determination of FIG. 14;
16 is a diagram showing some examples of a DSF detection circuit using data error information from the high-speed data error check circuit of FIG. 15;
FIG. 17 is a diagram showing some examples of a DSF detection circuit using data error information from the high-speed data error check circuit of FIG. 15;
18 is a flowchart for explaining a method of generating a reduced H-matrix according to an embodiment of the present invention.
19 is a block diagram illustrating a memory system according to an embodiment of the inventive concept.
20 is a block diagram showing a memory system according to an embodiment of the inventive concept.
21 is a block diagram illustrating a memory system according to an embodiment of the inventive concept.
22 is a diagram showing some examples of a memory package according to an embodiment of the present invention.
23 is a diagram showing some examples of a memory package according to an embodiment of the present invention.
24 is a block diagram exemplarily showing a memory module 6000 to which a memory device according to the present invention is applied.
25 is a diagram illustrating a system 7000 to which a storage device according to an embodiment of the present invention is applied.

이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present invention will be described clearly and in detail to the extent that those skilled in the art can easily practice the present invention.

도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(11) 및 메모리 장치(100)를 포함할 수 있다. 일 실시 예에서, 메모리 시스템(10)은 개인용 컴퓨터, 랩탑, 서버, 워크스테이션, 스마트폰, 태블릿 PC, 디지털 카메라, 블랙박스 등과 같이 다양한 정보를 처리하고, 처리된 정보를 저장하도록 구성된 정보 처리 장치들 중 하나일 수 있다.1 is a block diagram illustrating a memory system according to an exemplary embodiment of the inventive concept. Referring to FIG. 1 , a memory system 10 may include a memory controller 11 and a memory device 100 . In one embodiment, the memory system 10 is an information processing device configured to process various information and store the processed information, such as a personal computer, laptop, server, workstation, smart phone, tablet PC, digital camera, black box, etc. can be one of them.

메모리 컨트롤러(11)는 메모리 장치(100)에 데이터를 저장하거나 또는 메모리 장치(100)에 저장된 데이터를 독출할 수 있다. 예를 들어, 메모리 컨트롤러(11)는 메모리 장치(100)로 클럭 신호(CK) 및 커맨드/어드레스 신호(CA)를 전송하고, 메모리 장치(100)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고 받을 수 있다. 일 실시 예에서, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 데이터(DATA)가 메모리 컨트롤러(11)로부터 메모리 장치(100)로 전송되거나, 또는 메모리 장치(100)로부터 메모리 컨트롤러(11)로 전송될 수 있다. 일 실시 예에서, 메모리 컨트롤러(11) 및 메모리 장치(100)는 DDR 인터페이스 또는 LPDDR 인터페이스 등을 기반으로 서로 통신할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. The memory controller 11 may store data in the memory device 100 or read data stored in the memory device 100 . For example, the memory controller 11 transmits a clock signal CK and a command/address signal CA to the memory device 100, and transmits a data signal DQ and a data strobe signal DQS to the memory device 100. ) can be exchanged. In an embodiment, data DATA is transmitted from the memory controller 11 to the memory device 100 through the data signal DQ and the data strobe signal DQS, or from the memory device 100 to the memory controller ( 11) can be sent. In one embodiment, the memory controller 11 and the memory device 100 may communicate with each other based on a DDR interface or an LPDDR interface, but the scope of the present invention is not limited thereto.

메모리 장치(100)는 메모리 컨트롤러(11)의 제어에 따라 동작할 수 있다. 일 실시 예에서, 메모리 장치(100)는 DRAM(dynamic random access memory) 장치일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니며, 메모리 장치(100)는 SRAM 등과 같은 휘발성 메모리 또는 플래시 메모리, PRAM 및/또는 RRAM 등의 불휘발성 메모리를 포함할 수 있다. The memory device 100 may operate under the control of the memory controller 11 . In one embodiment, the memory device 100 may be a dynamic random access memory (DRAM) device, but the scope of the present invention is not limited thereto, and the memory device 100 may include a volatile memory such as SRAM, flash memory, or PRAM. and/or non-volatile memory such as RRAM.

일 실시 예에서, 메모리 장치(100)는 에러 정정 코드(ECC; Error Correction Code) 회로(110)를 포함할 수 있다. ECC 회로(110)는 메모리 장치(100)에 저장된 데이터의 에러를 검출하고 정정하도록 구성될 수 있다. 예를 들어, ECC 회로(110)는 메모리 컨트롤러(11)로부터 수신된 제1 데이터에 대한 ECC 인코딩을 수행하여, 패리티 데이터를 생성할 수 있다. 메모리 장치(100)는 메모리 컨트롤러(11)로부터 수신된 제1 데이터 및 ECC 회로(110)에 의해 생성된 패리티 데이터를 함께 저장할 수 있다. 메모리 장치(100)가 구동하는 도중에, 다양한 요인에 의해 메모리 장치(100)에 저장된 제1 데이터에서 에러가 발생할 수 있다. 메모리 컨트롤러(110)에 의해 제1 데이터에 대한 읽기 요청이 발생한 경우, ECC 회로(110)는 제1 데이터 및 대응하는 패리티 데이터를 기반으로, ECC 디코딩을 수행하여, 제1 데이터에서 발생한 에러를 정정할 수 있다. 메모리 장치(100)는 정정된 제1 데이터를 메모리 컨트롤러(11)로 전송할 수 있다. In one embodiment, the memory device 100 may include an error correction code (ECC) circuit 110 . The ECC circuit 110 may be configured to detect and correct errors in data stored in the memory device 100 . For example, the ECC circuit 110 may generate parity data by performing ECC encoding on the first data received from the memory controller 11 . The memory device 100 may store first data received from the memory controller 11 and parity data generated by the ECC circuit 110 together. While the memory device 100 is running, errors may occur in the first data stored in the memory device 100 due to various factors. When a read request for the first data is generated by the memory controller 110, the ECC circuit 110 corrects an error generated in the first data by performing ECC decoding based on the first data and corresponding parity data. can do. The memory device 100 may transmit the corrected first data to the memory controller 11 .

일 실시 예에서, ECC 회로(110)는 미리 정해진 에러 정정 능력 이내의 에러를 정정할 수 있다. 데이터에서 발생한 에러가 ECC 회로(110)의 에러 정정 능력을 초과하는 경우, 데이터에서 발생한 에러가 정상적으로 정정되지 않는다. In one embodiment, the ECC circuit 110 may correct errors within a predetermined error correction capability. When the error generated in the data exceeds the error correction capability of the ECC circuit 110, the error generated in the data is not normally corrected.

메모리 컨트롤러(11)는 메모리 장치(100)로부터 수신된 읽기 데이터가 정정 불가능한 에러를 포함하는지 또는 정상 데이터(예를 들어, 에러가 발생하지 않은 데이터, 또는 에러가 정상적으로 정정된 데이터)인지를 판별하기 위한 정보를 필요로 한다. 이를 위해, ECC 회로(110)는 디코딩 상태 플래그(DSF; decoding status flag)를 메모리 컨트롤러(11)로 전송할 수 있다. 디코딩 상태 플래그(DSF)는 메모리 컨트롤러(11)로 전송되는 데이터가 UE 데이터인지 또는 정상 데이터인지를 가리키는 정보이다. ECC 디코딩 상태 플래그(DSF)는 ECC 회로(110)의 ECC 디코딩 과정에서 생성될 수 있다.The memory controller 11 determines whether the read data received from the memory device 100 includes an uncorrectable error or is normal data (eg, data without an error or data with an error normally corrected). need information for To this end, the ECC circuit 110 may transmit a decoding status flag (DSF) to the memory controller 11 . The decoding status flag (DSF) is information indicating whether data transmitted to the memory controller 11 is UE data or normal data. The ECC decoding status flag (DSF) may be generated in the ECC decoding process of the ECC circuit 110 .

일 실시 예에서, ECC 회로(110)는 ECC 디코딩 과정 중 생성되는 신드롬만 사용하여, 디코딩 상태 플래그(DSF)를 생성할 수 있다. 이 경우, 디코딩 상태 플래그(DSF)를 생성하는데 요구되는 시간이 단축될 수 있다. 본 발명에 따른 ECC 회로(110)의 구성 및 디코딩 상태 플래그(DSF) 생성 방법은 이하의 도면들을 참조하여 더욱 상세하게 설명된다.In one embodiment, the ECC circuit 110 may generate the decoding status flag (DSF) using only syndromes generated during ECC decoding. In this case, the time required to generate the decoding status flag (DSF) can be shortened. The configuration of the ECC circuit 110 and the method of generating the decoding status flag (DSF) according to the present invention will be described in more detail with reference to the following drawings.

도 2는 도 1의 메모리 장치를 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 메모리 장치(100)는 ECC 회로(110), 메모리 셀 어레이(120), CA 버퍼(130), 어드레스 디코더(140), 커맨드 디코더(150), 감지 증폭기 및 쓰기 드라이버(160), 및 입출력 회로(170)를 포함할 수 있다.FIG. 2 is a block diagram illustrating the memory device of FIG. 1 . 1 and 2, the memory device 100 includes an ECC circuit 110, a memory cell array 120, a CA buffer 130, an address decoder 140, a command decoder 150, a sense amplifier and a write A driver 160 and an input/output circuit 170 may be included.

ECC 회로(110)는 메모리 셀 어레이(120)에 저장될 데이터에 대한 ECC 인코딩을 수행하여, 패리티 데이터를 생성할 수 있다. 또는 ECC 회로(110)는 메모리 셀 어레이(120)로부터 독출된 데이터 및 패리티 데이터를 기반으로 ECC 디코딩을 수행하여, 데이터의 에러를 정정할 수 있다. ECC 회로(110)의 구성 및 동작은 이하의 도면들을 참조하여 더욱 상세하게 설명된다. The ECC circuit 110 may generate parity data by performing ECC encoding on data to be stored in the memory cell array 120 . Alternatively, the ECC circuit 110 may perform ECC decoding based on the data read from the memory cell array 120 and the parity data to correct data errors. The configuration and operation of the ECC circuit 110 will be described in more detail with reference to the following drawings.

메모리 셀 어레이(120)는 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들 각각은 복수의 워드라인들 및 복수의 비트라인들과 연결될 수 있다. 일 실시 예에서, 복수의 워드라인들은 X-디코더(또는 행 디코더)(X-DED)에 의해 구동될 수 있고, 복수의 비트라인들은 Y-디코더(또는 열 디코더)(Y-DEC)에 의해 구동될 수 있다. The memory cell array 120 may include a plurality of memory cells. Each of the plurality of memory cells may be connected to a plurality of word lines and a plurality of bit lines. In one embodiment, a plurality of word lines may be driven by an X-decoder (or row decoder) (X-DED), and a plurality of bit lines may be driven by a Y-decoder (or column decoder) (Y-DEC). can be driven

CA 버퍼(130)는 커맨드/어드레스 신호들(CA)을 수신하고, 수신된 신호들을 임시 저장 또는 버퍼링하도록 구성될 수 있다. The CA buffer 130 may be configured to receive command/address signals CA and temporarily store or buffer the received signals.

어드레스 디코더(140)는 CA 버퍼(130)에 저장된 어드레스 신호들(ADDR)을 디코딩할 수 있다. 어드레스 디코더(140)는 디코딩 결과를 기반으로, X-디코더 및 Y-디코더를 제어할 수 있다.The address decoder 140 may decode the address signals ADDR stored in the CA buffer 130 . The address decoder 140 may control the X-decoder and the Y-decoder based on the decoding result.

커맨드 디코더(150)는 CA 버퍼(130)에 저장된 커맨드(CMD)를 디코딩할 수 있다. 커맨드 디코더(150)는 디코딩된 결과를 기반으로, 메모리 장치(100)의 구성 요소들을 제어할 수 있다. 예를 들어, CA 버퍼(130)에 저장된 커맨드 신호가 쓰기 커맨드인 경우(즉, 메모리 컨트롤러(11)로부터 수신된 커맨드가 쓰기 커맨드인 경우), 커맨드 디코더(150)는 입출력 회로(116)를 통해 수신된 데이터(DATA)가 메모리 셀 어레이(120)에 기입되도록 ECC 회로(110)를 제어(즉, ECC 인코딩을 수행)하고, 감지 증폭기 및 쓰기 드라이버(160)의 동작을 제어(즉, 쓰기 드라이버를 활성화시킴)할 수 있다. The command decoder 150 may decode the command CMD stored in the CA buffer 130 . The command decoder 150 may control elements of the memory device 100 based on the decoded result. For example, when the command signal stored in the CA buffer 130 is a write command (ie, when the command received from the memory controller 11 is a write command), the command decoder 150 via the input/output circuit 116 Controls the ECC circuit 110 so that the received data DATA is written into the memory cell array 120 (that is, performs ECC encoding), and controls the operation of the sense amplifier and the write driver 160 (that is, the write driver can be activated).

또는, CA 버퍼(130)에 저장된 커맨드 신호가 읽기 커맨드인 경우(즉, 메모리 컨트롤러(11)로부터 수신된 커맨드가 읽기 커맨드인 경우), 커맨드 디코더(150)는 메모리 셀 어레이(120)에 저장된 데이터가 독출되도록, ECC 회로(110)를 제어(즉, ECC 디코딩을 수행)하고, 감지 증폭기 및 쓰기 드라이버(160)의 동작을 제어(즉, 감지 증폭기를 활성화시킴)할 수 있다.Alternatively, when the command signal stored in the CA buffer 130 is a read command (ie, when the command received from the memory controller 11 is a read command), the command decoder 150 outputs data stored in the memory cell array 120. The ECC circuit 110 may be controlled (ie, ECC decoding is performed) and the operations of the sense amplifier and the write driver 160 may be controlled (ie, the sense amplifier is activated) so that λ is read.

감지 증폭기 및 쓰기 드라이버(160)는 커맨드 디코더(150)의 제어에 따라, 복수의 비트라인들을 통해 메모리 셀 어레이(120)로부터 데이터를 독출하거나 또는 메모리 셀 어레이(120)에 데이터를 기입할 수 있다.The sense amplifier and write driver 160 may read data from the memory cell array 120 or write data into the memory cell array 120 through a plurality of bit lines under the control of the command decoder 150 . .

입출력 회로(170)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 기반으로, 메모리 컨트롤러(11)로부터 데이터(DATA)를 수신하거나 또는 메모리 컨트롤러(11)로 데이터(DATA)를 전송할 수 있다. 일 실시 예에서, 입출력 회로(170)는 ECC 회로(110)로부터 디코딩 상태 플래그(DSF)를 수신하고, 디코딩 상태 플래그(DSF)를 메모리 컨트롤러(11)로 전송할 수 있다. 일 실시 예에서, 디코딩 상태 플래그(DSF)는 데이터 신호(DQ)를 통해 메모리 컨트롤러(11)로 전송될 수 있다. 또는 디코딩 상태 플래그(DSF)는 다양한 제어 신호들(예를 들어, DBI, DMI 등) 또는 다른 전용 신호를 통해 메모리 컨트롤러(11)로 전송될 수 있다. The input/output circuit 170 may receive data DATA from the memory controller 11 or transmit data DATA to the memory controller 11 based on the data signal DQ and the data strobe signal DQS. . In an embodiment, the input/output circuit 170 may receive the decoding status flag DSF from the ECC circuit 110 and transmit the decoding status flag DSF to the memory controller 11 . In one embodiment, the decoding status flag DSF may be transmitted to the memory controller 11 through the data signal DQ. Alternatively, the decoding status flag DSF may be transmitted to the memory controller 11 through various control signals (eg, DBI, DMI, etc.) or other dedicated signals.

도 3은 도 2의 ECC 회로의 동작을 설명하기 위한 블록도이다. 도면의 간결성 및 설명의 편의를 위해, ECC 회로(110)의 동작을 설명하는데 불필요한 구성 요소들은 생략된다.FIG. 3 is a block diagram for explaining the operation of the ECC circuit of FIG. 2 . For brevity of the drawings and convenience of explanation, components unnecessary for explaining the operation of the ECC circuit 110 are omitted.

도 2 및 도 3을 참조하면, ECC 회로(110)는 ECC 인코더(ECC-ENC) 및 ECC 디코더(ECC-DEC)를 포함할 수 있다. ECC 인코더(ECC-ENC)는 메모리 셀 어레이(120)에 저장될 쓰기 데이터(WDT)에 대한 ECC 인코딩을 수행하여, 패리티 데이터(PRT)를 생성할 수 있다. 예를 들어, 128b의 쓰기 데이터(WDT)에 대하여, ECC 인코더(ECC-ENC)는 8b의 베이시스 비트(BB)를 사용하여, 8b의 패리티 데이터(PRT)를 생성할 수 있다. 쓰기 데이터(WDT) 및 패리티 데이터(PRT)는 감지 증폭기 및 쓰기 드라이버(160)를 통해 메모리 셀 어레이(120)에 저장될 수 있다.Referring to FIGS. 2 and 3 , the ECC circuit 110 may include an ECC encoder (ECC-ENC) and an ECC decoder (ECC-DEC). The ECC encoder (ECC-ENC) may generate parity data (PRT) by performing ECC encoding on the write data (WDT) to be stored in the memory cell array 120 . For example, with respect to write data (WDT) of 128b, the ECC encoder (ECC-ENC) may generate parity data (PRT) of 8b using a basis bit (BB) of 8b. The write data WDT and the parity data PRT may be stored in the memory cell array 120 through the sense amplifier and the write driver 160 .

ECC 디코더(ECC-DEC)는 메모리 셀 어레이(120)로부터 읽은 읽기 데이터(RDT) 및 패리티 데이터(PRT)를 기반으로 ECC 디코딩을 수행하여, 에러 정정된 읽기 데이터(RDT_cor)를 출력할 수 있다. 예를 들어, 128b의 읽기 데이터(RDT)에 대하여, ECC 디코더(ECC-DEC)는 및 8b의 패리티 데이터(PRT)를 사용하여, 128b의 에러 정정된 읽기 데이터(RDT_cor)를 생성할 수 있다. ECC 디코더(ECC-DEC)는 ECC 디코딩 결과 또는 에러 정정된 읽기 데이터(RDT_cor)의 상태를 가리키는 디코딩 상태 플래그(DSF)를 생성할 수 있다.The ECC decoder (ECC-DEC) may perform ECC decoding based on the read data RDT and the parity data PRT read from the memory cell array 120 to output error-corrected read data RDT_cor. For example, with respect to the read data RDT of 128b, the ECC decoder (ECC-DEC) may generate error-corrected read data RDT_cor of 128b using the parity data PRT of 8b. The ECC decoder (ECC-DEC) may generate a decoding status flag (DSF) indicating a state of the ECC decoding result or the error corrected read data (RDT_cor).

도 4a는 도 3의 ECC 디코더의 동작을 보여주는 순서도이다. 도 4b는 도 4a의 순서도에 따른 동작을 수행하도록 구성된 ECC 디코더를 보여주는 블록도이다. 도 4c는 도 4b의 DSF 생성기를 보여주는 블록도이다.4A is a flowchart showing the operation of the ECC decoder of FIG. 3; 4b is a block diagram showing an ECC decoder configured to perform operations according to the flowchart of FIG. 4a. Figure 4c is a block diagram showing the DSF generator of Figure 4b.

이하에서, 본 발명의 실시 예들을 간결하고 명확하게 설명하기 위해, 일부 데이터 값 또는 비트 값들이 특정 레벨 또는 특정 비트 레벨(예를 들어, "1" 또는 "0")인 것으로 설명된다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 본 발명을 위해 사용되는 다양한 데이터 값 또는 비트 값들은 구현 방식에 따라 다양하게 변형될 수 있음이 이해될 것이다. Hereinafter, in order to concisely and clearly describe embodiments of the present invention, some data values or bit values are described as having a specific level or a specific bit level (eg, “1” or “0”). However, it will be understood that the scope of the present invention is not limited thereto, and various data values or bit values used for the present invention may be variously modified according to implementation methods.

도 3, 도 4a, 도 4b, 및 도 4c를 참조하면, S10 단계에서, ECC 디코더(ECC-DEC)는 읽기 데이터(RDT) 및 패리티 데이터(PRT)를 기반으로 신드롬(SYD)를 생성할 수 있다. 예를 들어, 메모리 장치(100)의 읽기 동작시, 감지 증폭기 및 쓰기 드라이버(160)는 메모리 셀 어레이(120)에 저장된 읽기 데이터(RDT) 및 패리티 데이터(PRT)를 읽고, 읽기 데이터(RDT) 및 패리티 데이터(PRT)를 ECC 디코더(ECC-DEC)로 전달할 수 있다. 도 4b에 도시된 바와 같이, ECC 디코더(ECC-DEC)는 신드롬 생성기(111)를 포함할 수 있다. 신드롬 생성기(111)는 128b의 읽기 데이터(RDT) 및 8b의 패리티 데이터(PRT)를 기반으로 신드롬(SYD)을 생성할 수 있다. 일 실시 예에서, 신드롬 생성기(111)는 128b의 읽기 데이터(RDT)를 기반으로 8b의 체크 비트를 생성하고, 8b의 체크 비트 및 8b의 패리터 데이터(PRT)에 대한 논리 연산을 통해, 8b의 신드롬(SYD)을 생성할 수 있다.3, 4a, 4b, and 4c, in step S10, the ECC decoder (ECC-DEC) may generate a syndrome (SYD) based on read data (RDT) and parity data (PRT). there is. For example, during a read operation of the memory device 100, the sense amplifier and the write driver 160 read the read data RDT and parity data PRT stored in the memory cell array 120, and write the read data RDT. And the parity data (PRT) may be delivered to the ECC decoder (ECC-DEC). As shown in FIG. 4B , the ECC decoder (ECC-DEC) may include a syndrome generator 111. The syndrome generator 111 may generate a syndrome SYD based on the 128b read data RDT and the 8b parity data PRT. In one embodiment, the syndrome generator 111 generates an 8b check bit based on the 128b read data RDT, and through a logic operation on the 8b check bit and the 8b parity data PRT, the 8b of syndrome (SYD) can be created.

S20 단계에서, ECC 디코더(ECC-DEC)는 신드롬(SYD)에 대한 디코딩을 수행하여 에러 벡터(ERV)를 생성할 수 있다. 예를 들어, 도 4b에 도시된 바와 같이, ECC 디코더(ECC-DEC)는 신드롬 디코딩 회로(112)를 포함할 수 있다. 신드롬 디코딩 회로(112)는 신드롬 발생기(111)로부터 신드롬(SYD)을 수신하고, 수신된 신드롬(SYD)을 디코딩하여, 에러 벡터(ERV)를 생성할 수 있다.In step S20, the ECC decoder (ECC-DEC) may generate an error vector (ERV) by decoding the syndrome (SYD). For example, as shown in FIG. 4B , the ECC decoder (ECC-DEC) may include a syndrome decoding circuit 112 . The syndrome decoding circuit 112 may receive the syndrome SYD from the syndrome generator 111, decode the received syndrome SYD, and generate an error vector ERV.

일 실시 예에서, 신드롬 디코딩 회로(112)는 패리티-체크 행렬(parity-check matrix)(이하에서, "H-행렬"이라 칭함.) 및 신드롬(SYD)을 비교함으로써, 읽기 데이터(RDT)에서 에러가 발생한 위치를 검출할 수 있다. 에러 벡터(ERV)는 128b의 크기(즉, 읽기 데이터(RDT)와 동일한 크기)를 가질 수 있으며, 읽기 데이터(RDT)에서 에러가 발생한 위치에 대한 정보를 포함할 수 있다.In an embodiment, the syndrome decoding circuit 112 compares a parity-check matrix (hereinafter, referred to as an "H-matrix") and the syndrome SYD, in the read data RDT. The location where the error occurred can be detected. The error vector ERV may have a size of 128b (ie, the same size as the read data RDT), and may include information about a position where an error occurs in the read data RDT.

S31 단계에서, ECC 디코더(ECC-DEC)는 에러 벡터(ERV)를 사용하여, 읽기 데이터(RDT)의 에러를 정정할 수 있다. 예를 들어, 도 4b에 도시된 바와 같이, ECC 디코더(ECC-DEC)는 정정 로직 회로(113)를 포함할 수 있다. 정정 로직 회로(113)는 감지 증폭기 및 쓰기 드라이버(160)로부터 읽어진 읽기 데이터(RDT) 및 에러 벡터(ERV)에 대한 비트와이즈 XOR 연산을 수행하여, 에러가 정정된 읽기 데이터(RDT_cor)를 출력할 수 있다. In step S31, the ECC decoder (ECC-DEC) may correct an error of the read data (RDT) using the error vector (ERV). For example, as shown in FIG. 4B , the ECC decoder (ECC-DEC) may include a correction logic circuit 113 . The correction logic circuit 113 performs a bitwise XOR operation on the read data RDT and the error vector ERV read from the sense amplifier and write driver 160, and outputs the error-corrected read data RDT_cor. can do.

S32 단계에서, ECC 디코더(ECC-DEC)는 에러 벡터(ERV) 및 신드롬(SYD)을 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다. 예를 들어, 도 4b에 도시된 바와 같이, ECC 디코더(ECC-DEC)는 DSF 생성기(114)를 포함할 수 있다. DSF 생성기(114)는 신드롬 디코딩 회로(112)로부터 8b의 신드롬(SYD) 및 128b의 에러 벡터(ERV)를 수신하고, 수신된 정보를 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다. In step S32, the ECC decoder (ECC-DEC) may generate a decoding status flag (DSF) based on the error vector (ERV) and syndrome (SYD). For example, as shown in FIG. 4B , the ECC decoder (ECC-DEC) may include a DSF generator 114. The DSF generator 114 may receive the syndrome (SYD) of 8b and the error vector (ERV) of 128b from the syndrome decoding circuit 112 and generate a decoding status flag (DSF) based on the received information.

좀 더 상세한 예로서, 도 4c에 도시된 바와 같이, DSF 생성기(114)는 데이터 에러 체크 회로(114a), 신드롬 체크 회로(114b), 패리티 에러 체크 회로(114c), 및 디코딩 상태 플래그 검출 회로(114d)를 포함할 수 있다.As a more detailed example, as shown in FIG. 4C, the DSF generator 114 includes a data error check circuit 114a, a syndrome check circuit 114b, a parity error check circuit 114c, and a decoding status flag detection circuit ( 114d).

데이터 에러 체크 회로(114a)는 에러 벡터(ERV)를 기반으로 읽기 데이터(RDT)에 에러가 포함되었는지를 가리키는 에러 정보(err)를 생성할 수 있다. 일 실시 예에서, 데이터 에러 체크 회로(114a)는 에러 벡터(EVR)의 각 비트들 중 적어도 하나가 "1"인지를 판별함으로써, 에러 정보(err)를 생성할 수 있다. 일 실시 예에서, 에러 정보(err)의 값이 "0"인 것은 읽기 데이터(RDT)에 에러가 없음을 가리키고, 에러 정보(err)의 값이 "1"인 것은 읽기 데이터(RDT)에 에러가 있음을 가리킬 수 있다. The data error checking circuit 114a may generate error information err indicating whether an error is included in the read data RDT based on the error vector ERV. In an embodiment, the data error checking circuit 114a may generate error information err by determining whether at least one of each bit of the error vector EVR is “1”. In an embodiment, a value of the error information (err) of "0" indicates that there is no error in the read data (RDT), and a value of the error information (err) of "1" indicates an error in the read data (RDT). can indicate that there is

신드롬 체크 회로(114b)는 신드롬(SYD)의 각 비트가 모두 "0"인지를 기반으로, 신드롬 정보(SYD_0)를 생성할 수 있다. 신드롬(SYD)의 각 비트가 모두 "0"인 경우(즉, 신드롬(SYD)이 all-zero인 경우), 읽기 데이터(RDT) 및 패리티 데이터(PRT)에 에러가 없음을 가리키고, 신드롬(SYD)의 적어도 하나의 비트가 모두 "0"이 아닌 경우(즉, 신드롬(SYD)이 non-zero인 경우), 읽기 데이터(RDT) 또는 패리티 데이터(PRT)에 에러가 있음을 가리킬 수 있다. 본 발명의 실시 예에서, 설명의 편의를 위해, 신드롬(SYD)의 각 비트가 모두 "0"인 경우(즉, 신드롬(SYD)이 all-zero인 경우), 신드롬 정보(SYD_0)는 "1"이고, 신드롬(SYD)의 적어도 하나의 비트가 모두 "0"이 아닌 경우(즉, 신드롬(SYD)이 non-zero인 경우), 신드롬 정보(SYD_0)는 "0"인 것으로 가정한다. The syndrome check circuit 114b may generate syndrome information SYD_0 based on whether all bits of the syndrome SYD are “0”. If all bits of the syndrome (SYD) are “0” (that is, if the syndrome (SYD) is all-zero), it indicates that there is no error in the read data (RDT) and parity data (PRT), and the syndrome (SYD) ) may indicate that there is an error in the read data RDT or the parity data PRT. In an embodiment of the present invention, for convenience of explanation, when each bit of the syndrome (SYD) is all “0” (ie, when the syndrome (SYD) is all-zero), the syndrome information (SYD_0) is “1”. ", and when at least one bit of the syndrome SYD is not all "0" (ie, when the syndrome SYD is non-zero), it is assumed that the syndrome information SYD_0 is "0".

패리티 에러 체크 회로(114c)는 패리티 데이터(PRT)에 에러가 포함되었는지를 기반으로 패리티 에러 정보(PRT_ERR)를 출력할 수 있다. 일 실시 예에서, 패리티 에러 체크 회로(114c)는 n × n의 단위 행렬(identity matrix) 및 신드롬(SYD)을 기반으로 패리티 에러 정보(PRT_ERR)를 생성할 수 있다. 단, n은 신드롬(SYD)의 크기(즉, 비트 수)와 같음.The parity error check circuit 114c may output parity error information PRT_ERR based on whether an error is included in the parity data PRT. In an embodiment, the parity error check circuit 114c may generate parity error information PRT_ERR based on an n × n identity matrix and the syndrome SYD. However, n is the same as the size (ie, number of bits) of the syndrome (SYD).

디코딩 상태 플래그 검출 회로(114d)는 에러 정보(err), 신드롬 정보(SYD_0), 및 패리티 에러 정보(PRT_ERR)를 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다. 예를 들어, 디코딩 상태 플래그(DSF)는 ECC 디코딩 결과에 대한 디코딩 상태를 가리킬 수 있다. 디코딩 상태는 ECC 디코더(ECC-DEC)에 의해 출력되는 최종 데이터(즉, 에러 정정된 읽기 데이터(RDT_cor))가 정상적인 데이터인지(즉, 읽기 데이터(RDT)에 에러가 없는 경우 또는 읽기 데이터(RDT)에 정정 가능한 에러가 포함된 경우), 또는 정정 불가능한 에러가 포함되었는지를 가리킬 수 있다. 이하에서, 설명의 편의를 위해, 읽기 데이터(RDT)에 정정 불가능한 에러가 포함된 경우에서의 디코딩 결과 또는 디코딩 상태는 UE(Uncorrectable Error)라 칭하고, 읽기 데이터(RDT)에 정정 가능한 에러가 포함된 경우에서의 디코딩 결과 또는 디코딩 상태는 CE(Correctable Error)라 칭하고, 읽기 데이터(RDT)에 에러가 포함되지 않은 경우에서의 디코딩 결과 또는 디코딩 상태는 NE(Non-Error)라 칭한다. The decoding state flag detection circuit 114d may generate a decoding state flag DSF based on error information err, syndrome information SYD_0, and parity error information PRT_ERR. For example, the decoding status flag (DSF) may indicate a decoding status of an ECC decoding result. The decoding state determines whether the final data output by the ECC decoder (ECC-DEC) (i.e., the error-corrected read data (RDT_cor)) is normal data (i.e., if there is no error in the read data (RDT) or if the read data (RDT ) contains a correctable error), or whether an uncorrectable error is included. Hereinafter, for convenience of description, a decoding result or a decoding state when the read data RDT includes an uncorrectable error is referred to as UE (Uncorrectable Error), and the read data RDT includes a correctable error. A decoding result or decoding state in this case is referred to as CE (Correctable Error), and a decoding result or decoding state in the case where the read data RDT does not include an error is referred to as NE (Non-Error).

좀 더 상세한 예로서, 에러 정보(err)가 "0"(즉, 읽기 데이터(RDT)에 에러가 없음)이고, 신드롬 정보(SYD_0)가 "0"(즉, 읽기 데이터(RDT) 또는 패리티 데이터(PRT)에 에러가 있음)이고, 그리고, 패리티 에러 정보(PRT_ERR)가 "0"(즉, 패리티 데이터(PRT)에 에러가 없음)인 경우, 디코딩 상태는 UE일 것이다. 이 경우, 디코딩 상태 플래그(DSF)는 "1"로 설정될 수 있다. 상술된 경우와 다른 정보의 조합에서는, ECC 디코더(ECC-DEC)로부터 출력된 에러 정정된 읽기 데이터(RDT_cor)는 정상 데이터(즉, 에러가 없었거나 또는 에러가 정상적으로 정정됨.)인 상태일 수 있다. 이 경우(즉, NE 또는 CE), 디코딩 상태 플래그(DSF)는 "0"으로 설정될 수 있다.As a more detailed example, the error information (err) is “0” (ie, there is no error in the read data (RDT)) and the syndrome information (SYD_0) is “0” (ie, the read data (RDT) or parity data). (PRT has an error), and the parity error information (PRT_ERR) is "0" (ie, there is no error in the parity data (PRT)), the decoding state will be UE. In this case, the decoding status flag (DSF) may be set to "1". In a combination of information different from the case described above, error-corrected read data RDT_cor output from the ECC decoder (ECC-DEC) may be normal data (ie, no error or error normally corrected). there is. In this case (ie, NE or CE), the decoding status flag (DSF) may be set to "0".

다시, 도 4a에 도시된 바와 같이, S40 단계에서, ECC 디코더(ECC-DEC)는 에러 정정된 읽기 데이터(RDT_cor) 및 디코딩 상태 플래그(DSF)를 출력할 수 있다. 일 실시 예에서, 에러 정정된 읽기 데이터(RDT_cor) 및 디코딩 상태 플래그(DSF)는 입출력 회로(170, 도 2 참조)를 통해, 메모리 컨트롤러(11)로 제공될 수 있다. 일 실시 예에서, 메모리 컨트롤러(11)는 디코딩 상태 플래그(DSF)를 기반으로 수신된 데이터의 디코딩 상태를 판별할 수 있고, 판별 결과에 따라 다양한 동작을 수행할 수 있다. 예를 들어, 메모리 컨트롤러(11)는 UE에 대하여, 리드 리트라이 또는 리셋 또는 다른 다양한 유지 관리 동작을 수행할 수 있다. Again, as shown in FIG. 4A , in step S40, the ECC decoder (ECC-DEC) may output error-corrected read data (RDT_cor) and a decoding status flag (DSF). In an embodiment, the error-corrected read data RDT_cor and the decoding status flag DSF may be provided to the memory controller 11 through the input/output circuit 170 (see FIG. 2). In one embodiment, the memory controller 11 may determine the decoding state of the received data based on the decoding state flag DSF, and may perform various operations according to the determination result. For example, the memory controller 11 may perform read retry or reset or other various maintenance operations for the UE.

일 실시 예에서, 도 4a 내지 도 4c를 참조하여 설명된 ECC 디코더(ECC-DEC)의 동작은 다양한 논리 연산 회로들을 통해 구현될 수 있다. 예를 들어, S10 단계의 동작(즉, 신드롬 생성 동작)은 6단의 XOR 연산 회로를 통해 수행되고, S20 단계의 동작(즉, 신드롬 디코딩 동작)은 3단의 AND 연산 회로를 통해 수행되고, S31 단계의 동작(즉, 에러 정정 동작)은 1단의 XOR 연산 회로를 통해 수행된다. S32 단계의 동작(즉, 디코딩 상태 플래그(DSF)를 생성하는 동작)에서, 데이터 에러 체크 회로(114a)는 7단의 XOR 연산 회로를 통해 구현되고, 신드롬 체크 회로(114b)는 4단의 AND 연산 회로를 통해 구현되고, 패리티 에러 체크 회로(114c)는 3단의 AND 연산 회로 및 3단의 OR 연산 회로를 통해 구현되고, 디코딩 상태 플래그 검출 회로(114d)는 1단의 OR 연산 회로, 1단의 INV(invert) 연산 회로, 및 1단의 AND 연산 회로를 통해 구현될 수 있다. In one embodiment, the operation of the ECC decoder (ECC-DEC) described with reference to FIGS. 4A to 4C may be implemented through various logic operation circuits. For example, the operation of step S10 (ie, syndrome generation operation) is performed through a 6-stage XOR operation circuit, and the operation of step S20 (ie, syndrome decoding operation) is performed through a 3-stage AND operation circuit, The operation of step S31 (ie, error correction operation) is performed through a first-stage XOR calculation circuit. In the operation of step S32 (that is, the operation of generating the decoding status flag DSF), the data error check circuit 114a is implemented through a 7-stage XOR operation circuit, and the syndrome check circuit 114b is implemented using a 4-stage AND. The parity error check circuit 114c is implemented through a 3-stage AND operation circuit and a 3-stage OR operation circuit, and the decoding status flag detection circuit 114d is a 1-stage OR operation circuit, 1 It can be implemented through a stage INV (invert) calculation circuit and a first stage AND calculation circuit.

S32 단계의 동작은 에러 벡터(ERV)를 사용하기 때문에, S20 단계의 동작이 완료된 이후에 수행된다. 이 경우, 신드롬 디코딩 동작이 완료된 시점으로부터, S32 단계의 동작이 완료되는데 요구되는 지연 시간(Latency)은 총 7단의 OR 연산 회로, 1단의 INV 연산 회로, 및 1단의 AND 연산 회로에 대응하는 지연 시간일 수 있다. Since the operation of step S32 uses an error vector (ERV), it is performed after the operation of step S20 is completed. In this case, from the point at which the syndrome decoding operation is completed, the latency required for the operation of step S32 to be completed corresponds to a total of 7-stage OR calculation circuits, 1-stage INV calculation circuit, and 1-stage AND calculation circuit. It may be a delay time to

S32 단계의 동작 S31 단계의 동작과 병렬적으로 수행된다. 이 경우, S32 단계의 동작에 대한 지연 시간이 S31 단계의 동작에 대한 지연 시간보다 상대적으로 길기 때문에, S32 단계의 동작(즉, 디코딩 상태 플래그를 생성하는 동작)에 따른 성능 저하가 발생한다. The operation of step S32 is performed in parallel with the operation of step S31. In this case, since the delay time for the operation of step S32 is relatively longer than the delay time for the operation of step S31, performance degradation occurs according to the operation of step S32 (that is, the operation of generating the decoding status flag).

도 5a는 도 3의 ECC 디코더의 동작을 보여주는 순서도이다. 도 5b는 도 5a의 순서도에 동작을 수행하도록 구성된 ECC 디코더를 보여주는 블록도이다. 도 5c는 도 5b의 고속 DSF 생성기를 보여주는 블록도이다. 이하에서, 설명의 편의를 위해, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다. 5A is a flowchart showing the operation of the ECC decoder of FIG. 3; 5B is a block diagram showing an ECC decoder configured to perform operations on the flowchart of FIG. 5A. Figure 5c is a block diagram showing the fast DSF generator of Figure 5b. Hereinafter, for convenience of description, detailed descriptions of the components described above are omitted.

도 3, 도 5a, 도 5b, 및 도 5c를 참조하면, S110 단계에서, ECC 디코더(ECC-DEC-1)는 읽기 데이터(RDT) 및 패리티 데이터(PRT)를 기반으로 신드롬(SYD)를 생성할 수 있다. 예를 들어, 도 5b에 도시된 바와 같이, ECC 디코더(ECC-DEC)는 신드롬 생성기(111)를 포함할 수 있다. 도 5a의 S110 단계의 동작은 도 4a의 S10 단계의 동작과 유사할 수 있고, 도 5b의 신드롬 생성기(111)는 도 4b의 신드롬 생성기(111)와 유사한 동작을 수행할 수 있다. 3, 5a, 5b, and 5c, in step S110, the ECC decoder (ECC-DEC-1) generates a syndrome (SYD) based on read data (RDT) and parity data (PRT). can do. For example, as shown in FIG. 5B , the ECC decoder (ECC-DEC) may include a syndrome generator 111. The operation of step S110 of FIG. 5A may be similar to that of step S10 of FIG. 4A, and the syndrome generator 111 of FIG. 5B may perform an operation similar to that of the syndrome generator 111 of FIG. 4B.

S120 단계에서, ECC 디코더(ECC-DEC-1)는 신드롬(SYD)을 디코딩하여, 에러 벡터(ERV)를 생성할 수 있다. 예를 들어, 도 5b에 도시된 바와 같이, ECC 디코더(ECC-DEC-1)는 신드롬 디코딩 회로(112)를 포함할 수 있다. 도 5a의 S120 단계의 동작은 도 4a의 S20 단계의 동작과 유사할 수 있고, 도 5b의 신드롬 디코딩 회로(112)는 도 4b의 신드롬 디코딩 회로(112)와 유사한 동작을 수행할 수 있다.In step S120, the ECC decoder (ECC-DEC-1) may generate an error vector (ERV) by decoding the syndrome (SYD). For example, as shown in FIG. 5B , the ECC decoder (ECC-DEC-1) may include a syndrome decoding circuit 112. The operation of step S120 of FIG. 5A may be similar to that of step S20 of FIG. 4A, and the syndrome decoding circuit 112 of FIG. 5B may perform an operation similar to that of the syndrome decoding circuit 112 of FIG. 4B.

S130 단계에서, ECC 디코더(ECC-DEC-1)는 에러 벡터(ERV)를 기반으로 읽기 데이터(RDT)의 에러를 정정할 수 있다. 예를 들어, 도 5b에 도시된 바와 같이, ECC 디코더(ECC-DEC-1)는 정정 로직 회로(113)를 포함할 수 있다. 도 5a의 S130 단계의 동작은 도 4a의 S31 단계의 동작과 유사할 수 있고, 도 5b의 정정 로직 회로(113)는 도 4b의 정정 로직 회로(113)와 유사한 동작을 수행할 수 있다.In step S130, the ECC decoder (ECC-DEC-1) may correct an error of the read data (RDT) based on the error vector (ERV). For example, as shown in FIG. 5B , the ECC decoder (ECC-DEC-1) may include a correction logic circuit 113. The operation of step S130 of FIG. 5A may be similar to that of step S31 of FIG. 4A, and the correction logic circuit 113 of FIG. 5B may perform an operation similar to that of the correction logic circuit 113 of FIG. 4B.

S140 단계에서, ECC 디코더(ECC-DEC-1)는 신드롬 및 축약된 H-행렬(simplified H-matrix)을 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다.In step S140, the ECC decoder (ECC-DEC-1) may generate a decoding status flag (DSF) based on the syndrome and a simplified H-matrix.

S150 단계에서, ECC 디코더(ECC-DEC-1)는 에러 정정된 읽기 데이터(RDT_cor) 및 디코딩 상태 플래그(DSF)를 출력할 수 있다. 도 5a의 S150 단계의 동작은 도 4a의 S40 단계의 동작과 유사할 수 있다. In step S150, the ECC decoder (ECC-DEC-1) may output error-corrected read data (RDT_cor) and a decoding status flag (DSF). The operation of step S150 of FIG. 5A may be similar to the operation of step S40 of FIG. 4A.

일 실시 예에서, 도 5a 내지 도 5c의 실시 예에 따르면, 고속 DSF 생성기(150)는 에러 벡터(ERV) 없이, 신드롬(SYD)만 사용하여 디코딩 상태 플래그(DSF)를 생성할 수 있다. 즉, 고속 DSF 생성기(150)는 디코딩 상태 플래그(DSF)를 생성하는데 에러 벡터(ERV)를 사용하지 않기 때문에, 신드롬 디코딩 동작(예를 들어, S120 단계의 동작)과 병렬적으로 또는 함께 동작할 수 있다. In one embodiment, according to the embodiments of FIGS. 5A to 5C , the fast DSF generator 150 may generate the decoding status flag (DSF) using only the syndrome (SYD) without an error vector (ERV). That is, since the fast DSF generator 150 does not use the error vector (ERV) to generate the decoding status flag (DSF), it can operate in parallel or together with the syndrome decoding operation (eg, the operation of step S120). can

예를 들어, 도 5b에 도시된 바와 같이, ECC 디코더(ECC-DEC-1)는 고속 DSF 생성기(116)를 포함할 수 있다. 고속 DSF 생성기(116)는 신드롬 디코딩 회로(112)로부터 신드롬(SYD)을 수신하고, 수신된 신드롬(SYD)을 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다. 좀 더 상세한 예로서, 도 5c에 도시된 바와 같이, 고속 DSF 생성기(115)는 신드롬 체크 회로(115b), 패리티 에러 체크 회로(115c), DSF 검출 회로(115d), 및 고속 데이터 에러 체크 회로(115e)를 포함할 수 있다. 도 5c의 신드롬 체크 회로(115b), 패리티 에러 체크 회로(115c), DSF 검출 회로(115d)는 도 4c의 신드롬 체크 회로(114b), 패리티 에러 체크 회로(114c), DSF 검출 회로(114d)와 유사한 동작을 수행할 수 있다.For example, as shown in FIG. 5B , the ECC decoder (ECC-DEC-1) may include a fast DSF generator 116. The fast DSF generator 116 may receive the syndrome SYD from the syndrome decoding circuit 112 and generate a decoding status flag DSF based on the received syndrome SYD. As a more detailed example, as shown in FIG. 5C, the high-speed DSF generator 115 includes a syndrome check circuit 115b, a parity error check circuit 115c, a DSF detection circuit 115d, and a high-speed data error check circuit ( 115e). The syndrome check circuit 115b, parity error check circuit 115c, and DSF detection circuit 115d of FIG. 5C are identical to the syndrome check circuit 114b, parity error check circuit 114c, and DSF detection circuit 114d of FIG. 4C. Similar actions can be performed.

일 실시 예에서, 도 4c의 DSF 생성기(114)는 에러 벡터(ERV)를 사용하여, 읽기 데이터(RDT)에 대한 에러 정보(err)를 생성한다. 반면에, 도 5c의 고속 데이터 에러 체크 회로(115e)는 신드롬(SYD)를 사용하여, 읽기 데이터(RDT)에 대한 에러 정보(DT_ERR)를 생성할 수 있다. 좀 더 상세한 예로서, 고속 데이터 에러 체크 회로(115e)는 신드롬(SYD)의 적어도 일부 비트들을 축약된 H-행렬과 비교함으로써, 읽기 데이터(RDT)에 대한 에러 정보(DT_ERR)를 생성할 수 있다. 축약된 H-행렬은 신드롬 디코딩 회로(112)에 의해 사용되는 H-행렬 또는 H-행렬의 부분 정보를 기반으로 생성될 수 있다. 축약된 H-행렬의 구성은 이하의 도 6 내지 도 8을 참조하여 더욱 상세하게 설명된다.In one embodiment, the DSF generator 114 of FIG. 4C uses an error vector (ERV) to generate error information (err) for read data (RDT). On the other hand, the high-speed data error check circuit 115e of FIG. 5C may generate error information DT_ERR for the read data RDT using the syndrome SYD. As a more detailed example, the high-speed data error check circuit 115e may generate error information DT_ERR for the read data RDT by comparing at least some bits of the syndrome SYD with the reduced H-matrix. . The reduced H-matrix may be generated based on the H-matrix used by the syndrome decoding circuit 112 or partial information of the H-matrix. The configuration of the abbreviated H-matrix will be described in more detail with reference to FIGS. 6 to 8 below.

상술된 바와 같이, 본 발명의 실시 예에 따른 고속 DSF 생성기(115)는 에러 벡터(ERV) 없이, 신드롬(SYD)만 사용하여, 디코딩 상태 플래그(DSF)를 생성할 수 있다. 따라서, 디코딩 상태 플래그(DSF)를 생성하는 동작이, 신드롬 디코딩 동작과 병렬적으로 수행됨으로써, ECC 디코더(ECC-DEC-1)의 전체적인 지연시간이 감소될 수 있다. As described above, the fast DSF generator 115 according to an embodiment of the present invention may generate the decoding status flag (DSF) using only the syndrome (SYD) without an error vector (ERV). Accordingly, since the operation of generating the decoding state flag DSF is performed in parallel with the operation of decoding the syndrome, the overall delay time of the ECC decoder ECC-DEC-1 can be reduced.

예를 들어, 도 4a 내지 도 4c를 참조하여 설명된 바와 같이, 신드롬 디코딩 동작이 완료된 시점으로부터 디코딩 상태 플래그(DSF)를 생성하는데 요구되는 지연 시간은 총 7단의 OR 연산 회로, 1단의 INV 연산 회로, 및 1단의 AND 연산 회로에 대응하는 지연 시간이다. For example, as described with reference to FIGS. 4A to 4C , the delay time required to generate the decoding status flag (DSF) from the point at which the syndrome decoding operation is completed is a total of 7 stages of OR operation circuits, 1 stage of INV It is the delay time corresponding to the arithmetic circuit and the 1st-stage AND arithmetic circuit.

반면에, 도 5a 내지 도 5c를 참조하여 설명된 바와 같이, 고속 DSF 생성기(115)에 의해, 신드롬 디코딩 동작이 완료된 시점으로부터 디코딩 상태 플래그(DSF)를 생성하는데 요구되는 지연 시간은, 총 4단의 OR 연산 회로, 1단의 INV 연산 회로, 및 1단의 AND 연산 회로에 대응하는 지연 시간이다. 즉, 에러 벡터(ERV)없이, 신드롬(SYD)만 사용하여, 디코딩 상태 플래그(DSF)가 생성됨으로써, ECC 디코더(ECC-DEC-1)의 전체적인 지연 시간이 감소될 수 있다.On the other hand, as described with reference to FIGS. 5A to 5C, the delay time required to generate the decoding status flag (DSF) from the time when the syndrome decoding operation is completed by the high-speed DSF generator 115 is a total of four stages. is the delay time corresponding to the OR operation circuit of , the INV operation circuit of the first stage, and the AND operation circuit of the first stage. That is, since the decoding status flag (DSF) is generated using only the syndrome (SYD) without the error vector (ERV), the overall delay time of the ECC decoder (ECC-DEC-1) can be reduced.

도 6, 도 7a, 도 7b, 및 도 7c는 도 5a의 신드롬 디코딩 회로에 의해 사용되는 H-행렬의 일부 예를 보여주는 도면이다. 도 8은 도 6 내지 도 7c의 H-행렬을 기반으로 생성된 축약된 H-행렬의 일부 예를 보여주는 도면이다. 일 실시 예에서, 축약된 H-행렬(sim-H-mat)은 고속 DSF 생성기(115e)에 의해 사용될 수 있다. 6, 7a, 7b, and 7c are diagrams showing some examples of H-matrices used by the syndrome decoding circuit of FIG. 5a. 8 is a diagram showing some examples of an abbreviated H-matrix generated based on the H-matrices of FIGS. 6 to 7C. In one embodiment, the reduced H-matrices (sim-H-mat) may be used by the fast DSF generator 115e.

일 실시 예에서, 도 6 내지 도 8을 참조하여 설명되는 H-행렬(H-mat)은 단일 비트 에러 정정(SEC; single bit error correction)을 위한 H-행렬의 일부 예이다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 본 발명에 따른 H-행렬 및 축약된 H-행렬은 메모리 장치(100) 또는 ECC 회로(110)의 구현 방식에 따라 다양하게 변형될 수 있음이 이해될 것이다.In one embodiment, the H-matrices described with reference to FIGS. 6 to 8 are some examples of H-matrices for single bit error correction (SEC). However, it is understood that the scope of the present invention is not limited thereto, and that the H-matrix and the abbreviated H-matrix according to the present invention can be variously modified according to the implementation method of the memory device 100 or the ECC circuit 110. It will be.

먼저, 도 6 내지 도 7c를 참조하면, H-행렬(H-mat)은 복수의 부분 행렬들(SM00~SM15) 및 패리티 행렬(PR)를 포함할 수 있다. 패리티 행렬(PR)는 8 × 8의 크기를 갖는 단위 행렬(IM; identity matrix)일 수 있다. 예를 들어, 도 7a에 도시된 바와 같이, 패리티 행렬(PR)은 8 × 8의 크기를 갖는 단위 행렬(IM; identity matrix)을 가질 수 있다. 패리티 행렬(PR)의 각 행은 신드롬(SYD)의 각 비트(예를 들어, S0, S1, S2, S3, S4, S5, S6, 및 S7)와 대응될 수 있다. First, referring to FIGS. 6 to 7C , an H-matrix (H-mat) may include a plurality of submatrices SM00 to SM15 and a parity matrix PR. The parity matrix PR may be an identity matrix (IM) having a size of 8 × 8. For example, as shown in FIG. 7A , the parity matrix PR may have an identity matrix (IM) having a size of 8×8. Each row of the parity matrix PR may correspond to each bit (eg, S0, S1, S2, S3, S4, S5, S6, and S7) of the syndrome SYD.

복수의 부분 행렬들(SM00~SM15) 각각은 8 × 8의 크기를 가질 수 있다. 일 실시 예에서, 복수의 부분 행렬들(SM00~SM15)은 일정 규칙을 갖도록 배치될 수 있다. 예를 들어, 복수의 부분 행렬들(SM00~SM15) 각각의 3개의 행들은 제A0 부분 행렬(A0)일 수 있다. 즉, 복수의 부분 행렬들(SM00~SM15) 각각의 3개의 행들은 동일한 반복 패턴을 가질 수 있다. 복수의 부분 행렬들(SM00~SM15)의 나머지 5개의 행들은 각각 제B00 내지 제B15 부분 행렬들(B00~B15)일 수 있다. 제B00 내지 제15 부분 행렬들(B00~B15) 각각은 동일한 열을 갖도록 구성될 수 있다. Each of the plurality of partial matrices SM00 to SM15 may have a size of 8 × 8. In an embodiment, the plurality of partial matrices SM00 to SM15 may be arranged according to a certain rule. For example, three rows of each of the plurality of submatrices SM00 to SM15 may be the A0th submatrix A0. That is, three rows of each of the plurality of partial matrices SM00 to SM15 may have the same repetition pattern. The remaining five rows of the plurality of submatrices SM00 to SM15 may be the B00th to B15th submatrices B00 to B15, respectively. Each of the B00th to 15th partial matrices B00 to B15 may have the same column.

좀 더 상세한 예로서, 도 7b에 도시된 바와 같이, H-행렬(H-mat)의 각 행은 신드롬(SYD)의 각 비트들(예를 들어, S0, S1, S2, S3, S4, S5, S6, S7)과 대응될 수 있다. H-행렬(H-mat)의 제00 부분 행렬(SM00) 중 제1 부분 행들(1st sub-Rows)(예를 들어, S0, S1, 및 S2에 대응하는 행들)에, 제A0 부분 행렬(A0)이 배치될 수 있고, 제01 부분 행렬(SM01) 중 제1 부분 행들(1st sub-Rows)(예를 들어, S0, S1, 및 S2에 대응하는 행들)에, 제A0 부분 행렬(A0)이 배치될 수 있다. 마찬가지로, 제15 부분 행렬(SM15) 중 제1 부분 행들(1st sub-Rows)(예를 들어, S0, S1, 및 S2에 대응하는 행들)에, 제A0 부분 행렬(A0)이 배치될 수 있다. H-행렬(H-mat)의 제00 부분 행렬(SM00) 중 제2 부분 행들(2nd sub-Rows)(예를 들어, S3, S4, S5, S6, 및 S7에 대응하는 행들)에, 제B00 부분 행렬(B00)이 배치될 수 있고, 제01 부분 행렬(SM01) 중 제2 부분 행들(2nd sub-Rows)(예를 들어, S3, S4, S5, S6, 및 S7에 대응하는 행들)에, 제B01 부분 행렬(B01)이 배치될 수 있다. 마찬가지로, 제15 부분 행렬(SM15)의 제2 부분 행들(2nd sub-Rows)(예를 들어, S3, S4, S5, S6, 및 S7에 대응하는 행들)에, 제B15 부분 행렬(B15)이 배치될 수 있다.As a more detailed example, as shown in FIG. 7B, each row of the H-matrix (H-mat) is each bit of the syndrome (SYD) (eg, S0, S1, S2, S3, S4, S5 , S6, S7) may correspond. In the 1st sub-rows (eg, rows corresponding to S0, S1, and S2) of the 00th sub-matrix SM00 of the H-matrice (H-mat), the A0 sub-matrix ( A0) may be disposed, and in 1st sub-rows (eg, rows corresponding to S0, S1, and S2) of the 01st sub-matrix SM01, the A0 sub-matrix A0 ) can be placed. Similarly, the A0 sub-matrix A0 may be disposed in the first sub-rows (eg, rows corresponding to S0, S1, and S2) of the fifteenth sub-matrix SM15. . In the second sub-rows (2nd sub-Rows) (eg, rows corresponding to S3, S4, S5, S6, and S7) of the 00th sub-matrix SM00 of the H-mat, A B00 sub-matrix B00 may be disposed, and 2nd sub-rows (eg, rows corresponding to S3, S4, S5, S6, and S7) of the 01-th sub-matrix SM01 , the B01th sub-matrix B01 may be disposed. Similarly, in the second sub-rows (2nd sub-Rows) (eg, rows corresponding to S3, S4, S5, S6, and S7) of the fifteenth sub-matrix SM15, the B15 sub-matrix B15 is can be placed.

즉, H-행렬(H-mat)의 제1 부분 행들(1st sub-Rows)(예를 들어, S0, S1, 및 S3에 대응하는 행들)에서는, 부분 행렬 단위(즉, 8개의 열 단위)로 동일한 행렬이 반복적으로 배치되는 패턴을 갖고, H-행렬(H-mat)의 제2 부분 행들(2nd sub-Rows)(예를 들어, S3, S4, S5, S6, 및 S7에 대응하는 행들)에서는, 부분 행렬 단위(즉, 8개의 열 단위)로 서로 다른 부분 행렬이 배치되는 패턴을 가질 수 있다. 이 때, H-행렬(H-mat)의 제2 부분 행들(2nd sub-Rows)(예를 들어, S3, S4, S5, S6, 및 S7에 대응하는 행들)의 동일한 부분 행렬에서는, 각 열이 서로 동일할 수 있다.That is, in the first sub-rows (eg, rows corresponding to S0, S1, and S3) of the H-matrix (H-mat), sub-matrix units (ie, 8 column units) Has a pattern in which the same matrix is repeatedly arranged as , and the second sub-rows (2nd sub-Rows) (eg, S3, S4, S5, S6, and S7 corresponding rows ) may have a pattern in which different submatrices are arranged in units of submatrices (ie, units of 8 columns). At this time, in the same sub-matrix of the second sub-rows (eg, rows corresponding to S3, S4, S5, S6, and S7) of the H-matrice, each column may be identical to each other.

도 7a 및 도 7b를 참조하여 설명된 패리티 행렬(PR) 및 부분 행렬들(SM00~SM15)을 조합하면, H-행렬(H-mat)은 도 7c와 같이 구현될 수 있다. 신드롬 디코딩 회로(112)는 신드롬(SYN)의 각 비트를 도 7c의 H-행렬(H-mat)의 각 열과 비교함으로써, 128b의 에러 벡터(ERV)를 생성할 수 있다. 예를 들어, 신드롬 디코딩 회로(112)는 H-행렬(H-mat)의 복수의 열들 중 신드롬(SYD)과 동일한 열을 검색하고, 검색된 결과를 기반으로 에러 벡터(ERV)를 생성할 수 있다. H-행렬(H-mat)의 복수의 열들 중 신드롬(SYD)과 동일한 열에 대응하는 위치의 비트가 읽기 데이터(RDT)에서 발생한 에러를 가리킬 수 있다.Combining the parity matrix PR and the partial matrices SM00 to SM15 described with reference to FIGS. 7A and 7B, the H-matrices can be implemented as shown in FIG. 7C. The syndrome decoding circuit 112 may generate an error vector ERV of 128b by comparing each bit of the syndrome SYN with each column of the H-matrices of FIG. 7C. For example, the syndrome decoding circuit 112 may search for the same column as the syndrome SYD among a plurality of columns of the H-matrix (H-mat), and generate an error vector (ERV) based on the search result. . A bit at a position corresponding to the same column as the syndrome SYD among a plurality of columns of the H-matrix H-mat may indicate an error occurring in the read data RDT.

일 실시 예에서, 신드롬(SYN)의 모든 비트들이 "0"이 아니지만(즉, non-zero), H-행렬(H-mat)의 복수의 열들 중 신드롬(SYD)과 동일한 열이 없다는 것은, 읽기 데이터(RDT)에 정정할 수 없는 에러가 포함되어 있음을 가리킬 수 있다. In one embodiment, all the bits of the syndrome SYN are not “0” (ie, non-zero), but there is no column identical to the syndrome SYD among the plurality of columns of the H-matrix H-mat, It may indicate that the read data RDT includes an error that cannot be corrected.

일 실시 예에서, 도 7c에 도시된 H-행렬(H-mat)은 단일 비트 에러 정정(SEC)을 위한 H-행렬의 일부 예시이며, 본 발명의 범위가 이에 제한되지 않음이 이해될 것이다.In one embodiment, the H-matrices shown in FIG. 7C are some examples of H-matrices for single bit error correction (SEC), and it will be understood that the scope of the present invention is not limited thereto.

H-행렬(H-mat)이 도 7c와 같이 구현된 경우, 축약된 H-행렬(sim-H-mat)(simplified H-matrix)은 도 8과 같이 생성 또는 결정될 수 있다. 예를 들어, 도 8을 참조하면, 축약된 H-행렬(sim-H-mat)은 H-행렬(H-mat)의 일부 행들(예를 들어, 제2 부분 행들(2nd sub-Rows))의 정보를 기반으로 생성될 수 있다. When the H-matrice is implemented as shown in FIG. 7c, a simplified H-matrix (sim-H-mat) may be generated or determined as shown in FIG. 8. For example, referring to FIG. 8 , an abbreviated H-matrix (sim-H-mat) includes some rows (eg, second sub-rows) of the H-matrix (H-mat). It can be generated based on the information of

좀 더 상세한 예로서, 앞서 설명된 바와 같이, H-행렬(H-mat)은 복수의 부분 행렬들(SM00~SM15)로 구분될 수 있다. 복수의 부분 행렬들(SM00~SM15) 각각은 8 × 8의 크기를 가질 수 있다. 즉, H-행렬(H-mat)은 8개의 열들 단위(즉, 8b 단위)로 구분될 수 있다. 이 때, 복수의 부분 행렬들(SM00~SM15) 각각에서, 제1 부분 행들(1st sub-Rows)(S0, S1, 및 S2에 대응하는 행들)은 서로 동일한 제A0 부분 행렬(A0)로 구성되며, 제A0 부분 행렬(A0)의 각 열은 3개의 비트들로 표현 가능한 모든 조합을 나타낸다. 이는, 다시 말해서, H-행렬(H-mat)의 제1 부분 행들(1st sub-Rows)(S0, S1, 및 S2에 대응하는 행들)은 신드롬(SYD)의 S0, S1, 및 S2와 비교됨으로써, 에러의 정확한 위치를 특정하는 기능을 가지며, 에러의 발생 유무를 결정하지는 않는다. As a more detailed example, as described above, the H-matrix (H-mat) may be divided into a plurality of sub-matrices SM00 to SM15. Each of the plurality of partial matrices SM00 to SM15 may have a size of 8 × 8. That is, the H-matrix (H-mat) may be divided into units of 8 columns (ie, units of 8b). At this time, in each of the plurality of sub-matrices SM00 to SM15, the first sub-rows (rows corresponding to S0, S1, and S2) are composed of the same A0-th sub-matrix A0. , and each column of the A0th sub-matrix A0 represents all combinations that can be represented by three bits. In other words, the first sub-rows (rows corresponding to S0, S1, and S2) of the H-matrix (H-mat) are compared with S0, S1, and S2 of the syndrome (SYD). By doing so, it has a function of specifying the exact location of the error, and does not determine whether or not the error has occurred.

반면에, H-행렬(H-mat)의 제2 부분 행들(2nd sub-Rows)(S3, S4, S5, S6, 및 S7에 대응하는 행들)은 제B00 내지 제B15 부분 행렬들(B00~B15)로 구성된다. 이 때, 제B00 내지 제B15 부분 행렬들(B00~B15) 각각은 서로 다른 비트 열을 가지나, 동일한 부분 행렬에서, 모든 열들은 서로 동일한 값을 갖는다. 이 경우, H-행렬(H-mat)의 제2 부분 행들(2nd sub-Rows)(S3, S4, S5, S6, 및 S7에 대응하는 행들)에 대한 비트 열들은 16개로 표현될 수 있다. 이 때, 5개의 비트들을 통해 조합 가능한 비트 열들은 32개이다. 즉, H-행렬(H-mat)의 제2 부분 행들(2nd sub-Rows)(S3, S4, S5, S6, 및 S7에 대응하는 행들)에서, 각 열들을 신드롬(SYD)의 S3, S4, S5, S6, 및 S7과 비교함으로써, 에러의 검출 유무가 결정될 수 있다. On the other hand, the second sub-rows (rows corresponding to S3, S4, S5, S6, and S7) of the H-matrice are the B00 to B15 sub-matrices (B00 to B15). B15). At this time, each of the B00 to B15th submatrices (B00 to B15) has different bit streams, but in the same submatrix, all columns have the same value. In this case, 16 bit strings for the second sub-rows (rows corresponding to S3, S4, S5, S6, and S7) of the H-matrix (H-mat) can be represented. At this time, 32 bit strings are combinable through 5 bits. That is, in the second sub-rows (rows corresponding to S3, S4, S5, S6, and S7) of the H-matrix (H-mat), each column is S3, S4 of the syndrome (SYD). , S5, S6, and S7, it can be determined whether or not an error has been detected.

본 발명의 실시 예에 따르면, 축약된 H-행렬(sim-H-mat)은 상술된 바와 같이, H-행렬(H-mat)에서 에러 위치를 특정하는데 필요한 행들은 제외하고, 나머지 일부 정보를 사용하여, 축약된 H-행렬(sim-H-mat)을 생성할 수 있다. 이 경우, 도 8에 도시된 바와 같이, 축약된 H-행렬(sim-H-mat)은 제B00 내지 제B15 부분 행렬들(B00~B15) 및 패리티 행렬(PR)을 포함할 수 있다. 제B00 내지 제B15 부분 행렬들(B00~B15)은 [11000]T, [00111]T, [10100]T, [01011]T, [01100]T, [10011]T, [11100]T, [00011]T, [100111]T, [01101]T, [01010]T, [10101]T, [11010]T, [00101]T, [00110]T, 및 [11001]T의 비트 열들이 각각 8개씩 반복(즉, 8b로 반복)되는 구조를 가질 수 있다. 패리티 행렬(PR)은 8 × 8의 단위 행렬(IM)일 수 있다.According to an embodiment of the present invention, the abbreviated H-matrix (sim-H-mat), as described above, except for the rows necessary for specifying the error location in the H-matrix (H-mat), and some of the remaining information can be used to generate a reduced H-matrix (sim-H-mat). In this case, as shown in FIG. 8 , the reduced H-matrix (sim-H-mat) may include the B00th to B15th submatrices B00 to B15 and the parity matrix PR. The B00 to B15 submatrices B00 to B15 are [11000] T , [00111] T , [10100] T , [01011] T , [01100] T , [10011] T , [11100] T , [ The bit strings of 00011] T , [100111] T , [01101] T , [01010] T , [10101] T , [11010] T , [00101] T , [00110] T , and [11001] T are 8, respectively. It may have a structure that is repeated one by one (ie, repeated in 8b). The parity matrix (PR) may be an 8 × 8 identity matrix (IM).

일 실시 예에서, 도 6 내지 도 7c를 참조하여 설명된 H-행렬(H-mat)에 대하여, 도 8에 도시된 바와 같은 축약된 H-행렬(sim-H-mat)이 생성될 수 있고, 신드롬(SYD)의 일부 비트들(S3, S4, S5, S6, S7)이 축약된 H-행렬(sim-H-mat)의 각 열과 비교됨으로써, 읽기 데이터(RDT)에 대한 에러 유무가 체크될 수 있다. In one embodiment, for the H-matrice described with reference to FIGS. 6 to 7C, a shortened H-matrix (sim-H-mat) as shown in FIG. 8 can be generated, , Some bits (S3, S4, S5, S6, S7) of the syndrome (SYD) are compared with each column of an abbreviated H-matrix (sim-H-mat) to check whether there is an error in the read data (RDT). It can be.

일 실시 예에서, 도 8에 도시된 바와 같은 축약된 H-행렬(sim-H-mat)은 일부 예시이며, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 도 8에 도시된 바와 같은 축약된 H-행렬(sim-H-mat)은 H-행렬(H-mat)을 8b 단위로 구분하여 복수의 부분 행렬들을 구성하였으나, H-행렬(mat)의 구현 방식에 따라, 4b 단위 또는 16 비트 단위 또는 N비트 단위(단, N은 자연수)로 구분될 수 있다. 이 경우, 축약된 H-행렬의 크기가 다양하게 가변될 수 있다.In one embodiment, the abbreviated H-matrix (sim-H-mat) as shown in FIG. 8 is a partial example, and the scope of the present invention is not limited thereto. For example, the abbreviated H-matrix (sim-H-mat) as shown in FIG. 8 constitutes a plurality of submatrices by dividing the H-matrix (H-mat) in units of 8b, but the H-matrix ( mat), it may be divided into units of 4b, units of 16 bits, or units of N bits (where N is a natural number). In this case, the size of the reduced H-matrix can be varied.

이하의 도 9 내지 도 13에서, 도 8의 축약된 H-행렬(sim-H-mat)을기반으로, 디코딩 상태 플래그(DSF)를 생성하도록 구성된 고속 DSF 생성기의 구성 요소들(예를 들어, 신드롬 체크 회로(115b), 패리티 에러 체크 회로(115c), 고속 데이터 에러 체크 회로(115e), 및 DSF 검출 회로(115d))에 대한 일부 예들이 도시되고 설명된다.9 to 13 below, components of a fast DSF generator configured to generate a decoding status flag (DSF) based on the reduced H-matrix (sim-H-mat) of FIG. Some examples of the syndrome check circuit 115b, the parity error check circuit 115c, the high-speed data error check circuit 115e, and the DSF detection circuit 115d are shown and described.

그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 고속 DSF 생성기의 구성 요소들에 대한 논리 연산 회로의 구성은 구현 방식 또는 H-행렬 또는 축약된 H-행렬에 따라 다양하게 가변될 수 있다.However, the scope of the present invention is not limited thereto, and the configuration of the logical operation circuit for the components of the high-speed DSF generator may be variously varied depending on the implementation method or the H-matrix or the abbreviated H-matrix.

또한, 도면의 간결성 및 설명의 편의를 위해, 이하의 도면들에서, 신드롬(SYD)은 8b의 크기를 가질 수 있으며, 신드롬(SYD)의 각 비트는 S0, S1, S2, S3, S4, S5, S6, 및 S7으로 표기되고, 신드롬(SYD)의 각 비트가 반전된 것은 S0B, S1B, S2B, S3B, S4B, S5B, S6B, 및 S7B로 표기된다. In addition, for brevity of the drawings and convenience of description, in the following drawings, the syndrome SYD may have a size of 8b, and each bit of the syndrome SYD is S0, S1, S2, S3, S4, and S5. , S6, and S7, and inverted bits of the syndrome (SYD) are denoted as S0B, S1B, S2B, S3B, S4B, S5B, S6B, and S7B.

도 9는 5c의 고속 DSF 생성기의 신드롬 체크 회로의 일부 예를 보여주는 도면이다. 신드롬 체크 회로(115b)는 신드롬(SYD)의 모든 비트(S0~S7)가 "0"인지(즉, all-zero인지)를 체크할 수 있다. 예를 들어, 신드롬 체크 회로(115b)는 신드롬(SYD)의 각 비트(예를 들어, S0~S7 각각)이 반전된 값인 S0B, S1B, S2B, S3B, S4B, S5B, S6B, 및 S7B에 대한 AND 연산을 수행하도록 구성될 수 있다. 이 경우, 2개의 입력 단자를 갖는 AND 게이트들 7개가 3단 구조로 연결됨으로써, 신드롬(SYD)의 모든 비트(S0~S7)가 "0"인지(즉, all-zero인지) 체크될 수 있다.9 is a diagram showing some examples of a syndrome check circuit of the high-speed DSF generator of FIG. 5c. The syndrome check circuit 115b may check whether all bits S0 to S7 of the syndrome SYD are “0” (ie, all-zero). For example, the syndrome check circuit 115b is configured for S0B, S1B, S2B, S3B, S4B, S5B, S6B, and S7B, which are inverted values of each bit (eg, each of S0 to S7) of the syndrome SYD. It can be configured to perform an AND operation. In this case, as seven AND gates having two input terminals are connected in a three-level structure, it can be checked whether all bits S0 to S7 of the syndrome SYD are “0” (ie, all-zero). .

신드롬(SYD)의 모든 비트들(S0~S7)가 "0"인 경우, 도 9의 신드롬 체크 회로(115b)에 의해, 신드롬 정보(SYD_0)는 "1"로 출력되고, 신드롬(SYD)의 적어도 하나의 비트(S0~S7 중 적어도 하나)가 "1"인 경우, 도 9의 신드롬 체크 회로(115b)에 의해, 신드롬 정보(SYD_0)는 "0"로 출력될 것이다. When all bits S0 to S7 of the syndrome SYD are “0”, the syndrome information SYD_0 is output as “1” by the syndrome check circuit 115b of FIG. 9, and the When at least one bit (at least one of S0 to S7) is “1”, the syndrome information SYD_0 is output as “0” by the syndrome check circuit 115b of FIG. 9 .

다시 말해서, 도 9의 신드롬 체크 회로(115b)에 의해, 신드롬 정보(SYD_0)가 "1"로 출력된 것은 신드롬(SYD)에 대응하는 읽기 데이터(RDT) 및 패리티 데이터(PRT)에 에러가 없음을 의미하고, 도 9의 신드롬 체크 회로(115b)에 의해, 신드롬 정보(SYD_0)가 "0"으로 출력된 것은 신드롬(SYD)에 대응하는 읽기 데이터(RDT) 및 패리티 데이터(PRT)에 에러가 존재함을 의미한다.In other words, if the syndrome information SYD_0 is output as “1” by the syndrome check circuit 115b of FIG. 9, there is no error in the read data RDT and parity data PRT corresponding to the syndrome SYD. , and the syndrome information (SYD_0) is output as “0” by the syndrome check circuit 115b of FIG. means to exist

도 10은 5c의 고속 DSF 생성기의 패리티 에러 체크 회로의 일부 예를 보여주는 도면이다. 도 5c 및 도 10을 참조하면, 패리티 에러 체크 회로(115c)는 신드롬(SYD)을 기반으로 패리티 데이터(PRT)에 에러가 있는지 검출할 수 있다. 10 is a diagram showing some examples of a parity error check circuit of the high-speed DSF generator of 5c. Referring to FIGS. 5C and 10 , the parity error check circuit 115c may detect whether there is an error in the parity data PRT based on the syndrome SYD.

일 실시 예에서, 패리티 데이터(PRT)에 에러가 존재하는지 여부는 도 8를 참조하여 설명된 축약된 H-행렬(sim-H-mat)의 패리티 행렬(PR) 또는 도 7a를 참조하여 설명된 패리티 행렬(PR)을 기반으로 검출될 수 있다. 예를 들어, 패리티 에러 체크 회로(115b)는 복수의 AND 연산 회로들(AS10~AS17)을 포함할 수 있다. 복수의 AND 연산 회로들(AS10~AS17)각각은 도 8를 참조하여 설명된 축약된 H-행렬(sim-H-mat)의 패리티 행렬(PR) 또는 도 7a를 참조하여 설명된 패리티 행렬(PR)을 기반으로 신드롬(SYD)의 각 비트(S0~S7)와 연결될 수 있다. In one embodiment, whether or not there is an error in the parity data (PRT) is the parity matrix (PR) of the abbreviated H-matrix (sim-H-mat) described with reference to FIG. 8 or described with reference to FIG. 7A. It can be detected based on the parity matrix (PR). For example, the parity error check circuit 115b may include a plurality of AND operation circuits AS10 to AS17. Each of the plurality of AND operation circuits AS10 to AS17 is a parity matrix PR of an abbreviated H-matrix (sim-H-mat) described with reference to FIG. 8 or a parity matrix PR described with reference to FIG. 7A. ), it can be connected to each bit S0 to S7 of the syndrome SYD.

좀 더 상세한 예로서, 제10 AND 연산 회로(AS10)는 패리티 행렬(PR)의 제0열(즉, [1, 0, 0, 0, 0, 0, 0, 0]T)과 대응되도록, 신드롬(SYD)의 각 비트들과 연결될 수 있다. 즉, 제10 AND 연산 회로(AS10)는 S0, S1B, S2B, S3B, S4B, S5B, S6B, 및 S7B를 입력들로서 수신하고, 수신된 입력들이 모두 "1"인 경우, "1"을 출력하고, 그렇지 않은 경우(즉, 적어도 하나가 0인 경우), "0"을 출력한다. 제11 AND 연산 회로(AS11)는 패리티 행렬(PR)의 제1 열(즉, [0, 1, 0, 0, 0, 0, 0, 0]T)과 대응되도록, 신드롬(SYD)의 각 비트들과 연결될 수 있다. 즉, 제10 AND 연산 회로(AS10)는 S0B, S1, S2B, S3B, S4B, S5B, S6B, 및 S7B를 입력들로서 수신하고, 수신된 입력들이 모두 "1"인 경우, "1"을 출력하고, 그렇지 않은 경우(즉, 적어도 하나가 0인 경우), "0"을 출력한다. 마찬가지로, 제12 내지 제17 AND 연산 회로들(A12~AS17)은 각각 패리티 행렬(PR)의 제2 내지 제7 열들과 대응되도록, 신드롬(SYD)의 각 비트들과 연결되며, 각각의 입력이 모두 "1"인 경우, "1"을 출력하고, 그렇지 않은 경우(즉, 적어도 하나가 0인 경우), "0"을 출력한다.As a more detailed example, the 10th AND operation circuit AS10 corresponds to the 0th column of the parity matrix PR (ie, [1, 0, 0, 0, 0, 0, 0, 0] T ), It can be connected to each bit of the syndrome (SYD). That is, the tenth AND operation circuit AS10 receives S0, S1B, S2B, S3B, S4B, S5B, S6B, and S7B as inputs, and outputs "1" when all of the received inputs are "1", , otherwise (that is, when at least one is 0), output "0". The eleventh AND operation circuit AS11 corresponds to the first column (ie, [0, 1, 0, 0, 0, 0, 0, 0] T ) of the parity matrix PR, so that each of the syndromes SYD Bits can be connected. That is, the tenth AND operation circuit AS10 receives S0B, S1, S2B, S3B, S4B, S5B, S6B, and S7B as inputs, and outputs “1” when all of the received inputs are “1”; , otherwise (that is, when at least one is 0), output "0". Similarly, the twelfth to seventeenth AND operation circuits A12 to AS17 are connected to respective bits of the syndrome SYD to correspond to the second to seventh columns of the parity matrix PR, respectively, and have respective inputs If all are "1", output "1"; otherwise (ie, at least one is 0), output "0".

즉, 복수의 AND 연산 회로들(AS10~AS17)을 통해, 신드롬(SYD)이 패리티 행렬(PR)의 각 열과 비교되고, 신드롬(SYD)과 동일한 비트들의 열이 존재하는지 판별될 수 있다. 패리티 행렬(PR)의 열들 중 신드롬(SYD)과 동일한 열이 존재하는 것은, 패리티 데이터(PRT)에 에러가 존재함을 의미할 수 있다. That is, through the plurality of AND operation circuits AS10 to AS17, the syndrome SYD is compared with each column of the parity matrix PR, and it can be determined whether a column of bits identical to that of the syndrome SYD exists. The presence of the same column as the syndrome SYD among the columns of the parity matrix PR may mean that an error exists in the parity data PRT.

패리티 에러 체크 회로(115c)는 복수의 OR 게이트들을 포함하고, 복수의 OR 게이트들을 통해, 복수의 AND 연산 회로들(AS10~AS17)의 출력들에 대한 OR 연산을 수행하여, 패리티 에러 정보(PRT_ERR)를 출력할 수 있다. 일 실시 예에서, 복수의 AND 연산 회로들(AS10~AS17)의 출력들 중 적어도 하나가 "1"인 경우, 패리티 에러 정보(PRT_ERR)는 "1"이고, 복수의 AND 연산 회로들(AS10~AS17)의 출력들 모두가 "0"인 경우, 패리티 에러 정보(PRT_ERR)는 "0"이다.The parity error check circuit 115c includes a plurality of OR gates and performs an OR operation on the outputs of the plurality of AND operation circuits AS10 to AS17 through the plurality of OR gates to obtain parity error information (PRT_ERR). ) can be output. In one embodiment, when at least one of the outputs of the plurality of AND operation circuits AS10 to AS17 is “1”, the parity error information PRT_ERR is “1” and the plurality of AND operation circuits AS10 to AS17 is “1”. When all of the outputs of AS17) are "0", the parity error information (PRT_ERR) is "0".

일 실시 예에서, 패리티 에러 정보(PRT_ERR)가 "1"인 것은 신드롬(SYD)과 대응하는 패리티 데이터(PRT)에 에러가 존재함을 가리키고, 패리티 에러 정보(PRT_ERR)가 "0"인 것은 신드롬(SYD)과 대응하는 패리티 데이터(PRT)에 에러가 없음을 가리킨다. In one embodiment, if the parity error information (PRT_ERR) is “1”, it indicates that an error exists in the parity data (PRT) corresponding to the syndrome (SYD), and if the parity error information (PRT_ERR) is “0”, it indicates that the syndrome (SYD) has an error. Indicates that there is no error in (SYD) and the corresponding parity data (PRT).

도 11은 5c의 고속 DSF 생성기의 고속 데이터 에러 체크 회로의 일부 예를 보여주는 도면이다. 도 5c 및 도 11을 참조하면, 고속 데이터 에러 체크 회로(115e)는 신드롬(SYD)을 기반으로 데이터에 에러가 존재하는지 판별할 수 있다.11 is a diagram showing some examples of a high-speed data error check circuit of the high-speed DSF generator of 5c. Referring to FIGS. 5C and 11 , the high-speed data error checking circuit 115e may determine whether there is an error in data based on the syndrome SYD.

일 실시 예에서, 데이터에 에러가 존재하는지 여부는 도 8를 참조하여 설명된 축약된 H-행렬(sim-H-mat)을 기반으로 검출될 수 있다. 예를 들어, 고속 데이터 에러 체크 회로(115e)는 복수의 AND 연산 회로들(AS20~AS2f)을 포함할 수 있다. 복수의 AND 연산 회로들(AS20~AS2f) 각각은 도 8를 참조하여 설명된 축약된 H-행렬(sim-H-mat)을 기반으로 신드롬(SYD)의 일부 비트들(S3~S7)과 연결될 수 있다. In an embodiment, whether an error exists in data may be detected based on the abbreviated H-matrix (sim-H-mat) described with reference to FIG. 8 . For example, the high-speed data error check circuit 115e may include a plurality of AND operation circuits AS20 to AS2f. Each of the plurality of AND operation circuits AS20 to AS2f may be connected to some bits S3 to S7 of the syndrome SYD based on the abbreviated H-matrix (sim-H-mat) described with reference to FIG. 8 . can

좀 더 상세한 예로서, 제20 AND 연산 회로(AS20)는 도 8의 축약된 H-행렬(sim-H-mat)의 제B00 부분 행렬(B00)의 열들(즉, [1, 1, 0, 0, 0]T)에 대응하도록, 신드롬(SYD)의 일부 비트들(S3~S7)과 연결될 수 있다. 즉, 제20 AND 연산 회로(AS20)는 S3, S4, S5B, S6B, 및 S7B를 입력들로서 수신하고, 수신된 입력들이 모두 "1"인 경우, "1"을 출력하고, 그렇지 않은 경우(즉, 적어도 하나가 0인 경우), "0"을 출력한다. 제21 AND 연산 회로(AS21)는 도 8의 축약된 H-행렬(sim-H-mat)의 제B01 부분 행렬(B01)의 열들(즉, [0, 0, 1, 1, 1]T)에 대응하도록, 신드롬(SYD)의 일부 비트들(S3~S7)과 연결될 수 있다. 즉, 제21 AND 연산 회로(AS20)는 S3B, S4B, S5, S6, 및 S7를 입력들로서 수신하고, 수신된 입력들이 모두 "1"인 경우, "1"을 출력하고, 그렇지 않은 경우(즉, 적어도 하나가 0인 경우), "0"을 출력한다. 마찬가지로, 제22 내지 제22f AND 연산 회로들(AS22~AS2f)은 각각 도 8의 축약된 H-행렬(sim-H-mat)의 제B02 내지 제B15 부분 행렬들(B00~B15)의 열들에 대응하도록 신드롬(SYN)의 일부 비트들(S3~S7)과 연결된다. 제22 내지 제22f AND 연산 회로들(AS22~AS2f) 각각은, 수신된 입력들이 모두 "1"인 경우, "1"을 출력하고, 그렇지 않은 경우(즉, 적어도 하나가 0인 경우), "0"을 출력한다.As a more detailed example, the twentieth AND operation circuit AS20 calculates the columns (ie, [1, 1, 0, 0, 0] T ), it may be connected to some bits S3 to S7 of the syndrome SYD. That is, the twentieth AND operation circuit AS20 receives S3, S4, S5B, S6B, and S7B as inputs, and outputs “1” when all of the received inputs are “1”, and otherwise (i.e. , if at least one is 0), "0" is output. The 21st AND operation circuit AS21 calculates columns (ie, [0, 0, 1, 1, 1] T It may be connected to some bits S3 to S7 of the syndrome SYD to correspond to . That is, the twenty-first AND operation circuit AS20 receives S3B, S4B, S5, S6, and S7 as inputs, and outputs “1” when all of the received inputs are “1”, and otherwise (i.e. , if at least one is 0), "0" is output. Similarly, the 22nd to 22f AND operation circuits AS22 to AS2f respectively correspond to columns of the B02 to B15 submatrices B00 to B15 of the abbreviated H-matrix (sim-H-mat) of FIG. 8 . Correspondingly, some bits S3 to S7 of the syndrome SYN are connected. Each of the 22nd to 22f AND operation circuits AS22 to AS2f outputs "1" when all received inputs are "1", and otherwise (ie, when at least one is 0), " outputs 0".

즉, 복수의 AND 연산 회로들(AS20~AS2f)을 통해, 신드롬(SYD)의 일부 비트들(예를 들어, S3~S7)이 축약된 H-행렬(sim-H-mat)의 각 열 또는 각 부분 행렬과 비교되고, 신드롬(SYD)의 일부 비트들(S3~S7)과 동일한 열이 존재하는지 판별될 수 있다. 축약된 H-행렬(sim-H-mat)에서, 신드롬(SYD)의 일부 비트들(S3~S7)과 동일한 열이 존재하는 것은 읽기 데이터(RDT)에 에러가 존재함을 의미할 수 있다. 단, 축약된 H-행렬(sim-H-mat)을 통해, 신드롬(SYD)의 일부 비트들만 비교되기 때문에, 에러의 발생 위치는 검출되지 않는다. That is, each column of an H-matrix (sim-H-mat) in which some bits (eg, S3 to S7) of the syndrome SYD are abbreviated through the plurality of AND operation circuits AS20 to AS2f, or It may be compared with each sub-matrix, and it may be determined whether a column identical to some bits S3 to S7 of the syndrome SYD exists. In the abbreviated H-matrix (sim-H-mat), the existence of the same column as some of the bits S3 to S7 of the syndrome SYD may mean that there is an error in the read data RDT. However, since only some bits of the syndrome (SYD) are compared through the shortened H-matrix (sim-H-mat), the occurrence position of the error is not detected.

고속 데이터 에러 체크 회로(115e)는 복수의 OR 게이트들을 더 포함할 수 있다. 고속 데이터 에러 체크 회로(115e)는 복수의 OR 게이트들을 통해, 복수의 AND 연산 회로들(AS20~AS2f)의 출력들에 대한 OR 연산을 수행하여, 데이터 에러 정보(DT_ERR)를 출력할 수 있다. 일 실시 예에서, 복수의 AND 연산 회로들(AS20~AS2f)의 출력들 중 적어도 하나가 "1"인 경우, 데이터 에러 정보(DT_ERR)는 "1"로 출력되고, 복수의 AND 연산 회로들(AS20~AS2f)의 출력들 모두가 "0"인 경우, 데이터 에러 정보(DT_ERR)는 "0"으로 출력된다. The high-speed data error check circuit 115e may further include a plurality of OR gates. The high-speed data error check circuit 115e may output data error information DT_ERR by performing an OR operation on the outputs of the plurality of AND operation circuits AS20 to AS2f through a plurality of OR gates. In one embodiment, when at least one of the outputs of the plurality of AND operation circuits AS20 to AS2f is “1”, the data error information DT_ERR is output as “1”, and the plurality of AND operation circuits ( When all outputs of AS20 to AS2f) are "0", the data error information (DT_ERR) is output as "0".

일 실시 예에서, 데이터 에러 정보(DT_ERR)가 "1"인 것은 읽기 데이터(RDT)에 에러가 있음을 가리키고, 데이터 에러 정보(DT_ERR)가 "0"인 것은 읽기 데이터(RDT)에 에러가 없음을 가리킨다. In one embodiment, when the data error information DT_ERR is “1”, it indicates that there is an error in the read data RDT, and when the data error information DT_ERR is “0”, there is no error in the read data RDT. points to

도 12는 5c의 고속 DSF 생성기의 DST 검출 회로의 일부 예를 보여주는 도면이다. 도 5c 및 도 12를 참조하면, DST 검출 회로(115d)는 신드롬 체크 회로(115b)로부터 신드롬 정보(SYD_0)를 수신하고, 패리티 에러 체크 회로(115c)로부터 패리티 에러 정보(PRT_ERR)를 수신하고, 고속 데이터 에러 체크 회로(115e)로부터 데이터 에러 정보(DT_ERR)를 수신할 수 있다.12 is a diagram showing some examples of the DST detection circuit of the high-speed DSF generator of 5c. 5c and 12, the DST detection circuit 115d receives syndrome information (SYD_0) from the syndrome check circuit 115b and parity error information (PRT_ERR) from the parity error check circuit 115c, Data error information DT_ERR may be received from the high-speed data error check circuit 115e.

DST 검출 회로(115d)는 OR 게이트, INV 게이트들, 및 AND 게이트들을 포함할 수 있다. DST 검출 회로(115d)는 OR 게이트, INV 게이트들, 및 AND 게이트를 통해, 신드롬 정보(SYD_0) 및 패리티 에러 정보(PR_ERR)에 대한 OR 연산을 수행하고, OR 연산의 결과의 반전 값 및 데이터 에러 정보(DT_ERR)의 반전 값에 대한 AND 연산을 수행함으로써, 디코딩 상태 플래그(DSF)를 생성할 수 있다.The DST detection circuit 115d may include OR gates, INV gates, and AND gates. The DST detection circuit 115d performs an OR operation on the syndrome information (SYD_0) and the parity error information (PR_ERR) through an OR gate, INV gates, and an AND gate, and performs an OR operation on the result of the OR operation and an inversion value and data error. The decoding status flag DSF may be generated by performing an AND operation on the inverted value of the information DT_ERR.

생성된 디코딩 상태 플래그(DSF)가 "1"인 것은 디코딩 상태가 UE임을 가리키고, 디코딩 상태 플래그(DSF)가 "0"인 것은 디코딩 상태가 CE 또는 NE임을 가리킨다. When the generated decoding status flag (DSF) is "1", it indicates that the decoding status is UE, and when the decoding status flag (DSF) is "0", it indicates that the decoding status is CE or NE.

예를 들어, 도 12에 도시된 DST 검출 회로(115d)에 따르면, 신드롬 정보(SYN_0)가 "0"이고, 패리티 에러 정보(PRT_ERR)가 "0"이고, 데이터 에러 정보(DR_ERR)가 "0"인 경우, 디코딩 상태 플래그(DSF)가 "1"일 것이다. 다시 말해서, "0"의 신드롬 정보(SYN_0)에 의해, 읽기 데이터(RDT) 또는 패리티 데이터(PRT)에 에러가 존재함이 확인되고, "0"의 패리티 에러 정보(PRT_ERR)에 의해, 패리티 데이터(PRT)에 에러가 없음이 확인되고, "0"의 데이터 에러 정보(DT_ERR)에 의해, 데이터에 에러가 없는 것으로 확인된 경우, 각 정보에 대한 조건이 서로 부합되지 않기 때문에, 최종 출력되는 에러 정정된 읽기 데이터(RDT_cor)는 정정할 수 없는 에러를 포함하는 것(즉, 디코딩 상태가 UE임)으로 판별될 수 있다. 상술된 경우 이외의 나머지 경우들에서, 디코딩 상태 플래그(DSF)는 "0"으로 출력되며, 이 때 최종 출력되는 에러 정정된 읽기 데이터(RDT_cor)가 정상 데이터이거나 또는 에러가 정상적으로 정정된 데이터(즉, 디코딩 상태가 CE 또는 NE)인 것으로 판별될 수 있다. For example, according to the DST detection circuit 115d shown in FIG. 12, the syndrome information (SYN_0) is "0", the parity error information (PRT_ERR) is "0", and the data error information (DR_ERR) is "0". ", the decoding status flag (DSF) will be "1". In other words, the existence of an error in the read data RDT or the parity data PRT is confirmed by the syndrome information SYN_0 of “0”, and the parity data PRT_ERR by the parity error information PRT_ERR of “0” When it is confirmed that there is no error in (PRT) and the data error information (DT_ERR) of “0” confirms that there is no error in the data, since the conditions for each information do not match each other, the final output error It may be determined that the corrected read data RDT_cor includes an error that cannot be corrected (ie, the decoding state is UE). In the remaining cases other than the above-mentioned case, the decoding status flag DSF is output as “0”, and at this time, the error-corrected read data RDT_cor finally output is normal data or error-corrected data (i.e., , the decoding state can be determined to be CE or NE).

상술된 바와 같이, 본 발명에 따르면 고속 DSF 생성기(115)는 신드롬 디코딩 회로(112)에 의해 생성되는 에러 벡터(ERV) 없이, 신드롬(SYD)을 사용하여, 디코딩 상태 플래그(DSF)를 생성할 수 있다. 이 경우, 고속 DSF 생성기(115)는 신드롬 디코딩 회로(112)와 병렬적으로 동작하기 때문에, ECC 디코더(ECC-DEC-1)를 위한 전체적인 지연 시간이 단축될 수 있다. 또한, 고속 DSF 생성기(115)의 고속 데이터 에러 체크 회로(115e)는 신드롬(SYD)의 일부 비트들을 축약된 H-행렬(sim-H-mat)과 비교하기 때문에, 신드롬(SYD)의 각 비트에 대한 배선 복잡도가 감소될 수 있다.As described above, according to the present invention, the fast DSF generator 115 can generate the decoding status flag (DSF) using the syndrome (SYD) without the error vector (ERV) generated by the syndrome decoding circuit 112. can In this case, since the high-speed DSF generator 115 operates in parallel with the syndrome decoding circuit 112, the overall delay time for the ECC decoder (ECC-DEC-1) can be reduced. In addition, since the high-speed data error check circuit 115e of the high-speed DSF generator 115 compares some bits of the syndrome SYD with a reduced H-matrix (sim-H-mat), each bit of the syndrome SYD Wiring complexity for can be reduced.

도 13은 도 5c의 고속 DSF 생성기의 DSF 검출 회로의 일부 예를 보여주는 블록도이다. 설명의 편의를 위해, 도 12를 참조하여 설명된 구성 요소들에 대한 상세한 설명은 생략된다. 도 5c 및 도 13을 참조하여, DSF 검출 회로(115d-1)는 도 12를 참조하여 설명된 바와 유사한 방법을 통해, 1b의 디코딩 상태 플래그(DSF)를 생성할 수 있다. 이 때, 생성된 제1 디코딩 상태 플래그(DSF1)는 도 12를 참조하여 설명된 디코딩 상태 플래그(DSF)와 유사할 수 있다. 즉, 제1 디코딩 상태 플래그(DSF1)가 "1"인 것은 디코딩 상태가 UE인 것을 가리키고, 제1 디코딩 상태 플래그(DSF1)가 "0"인 것은 디코딩 상태가 NE 또는 CE인 것을 가리킨다. 13 is a block diagram showing some examples of DSF detection circuitry of the high-speed DSF generator of FIG. 5C. For convenience of description, detailed descriptions of components described with reference to FIG. 12 are omitted. Referring to FIGS. 5C and 13 , the DSF detection circuit 115d-1 may generate the decoding status flag DSF of 1b through a method similar to that described with reference to FIG. 12 . At this time, the generated first decoding status flag DSF1 may be similar to the decoding status flag DSF described with reference to FIG. 12 . That is, when the first decoding state flag DSF1 is "1", the decoding state is UE, and when the first decoding state flag DSF1 is "0", it indicates that the decoding state is NE or CE.

도 13의 DSF 검출 회로(115d-1)는 신드롬 정보(SYD_0)를 반전하여, 1b의 제2 디코딩 상태 플래그(DSF2)를 생성할 수 있다. 즉, 제2 디코딩 상태 플래그(DSF2)가 "1"인 것은 읽기 데이터(RDT) 또는 패리티 데이터(PRT)에 에러가 포함되었음을 가리키고, 제2 디코딩 상태 플래그(DSF2)가 "0"인 것은 읽기 데이터(RDT) 및 패리티 데이터(PRT)에 에러가 없음을 가리킬 수 있다. 이는, 다시 말하면, 제2 디코딩 상태 플래그(DSF2)가 "1"인 것은 디코딩 상태가 CE 또는 UE임을 가리키고, 제2 디코딩 상태 플래그(DSF2)가 "0"인 것은 디코딩 상태가 NE임을 가리킨다.The DSF detection circuit 115d-1 of FIG. 13 may generate a second decoding status flag DSF2 of 1b by inverting the syndrome information SYD_0. That is, when the second decoding status flag DSF2 is “1”, it indicates that an error is included in the read data RDT or parity data PRT, and when the second decoding status flag DSF2 is “0”, it indicates that the read data RDT or parity data PRT contains an error. It may indicate that there are no errors in (RDT) and parity data (PRT). In other words, when the second decoding status flag DSF2 is “1”, the decoding status is CE or UE, and when the second decoding status flag DSF2 is “0”, the decoding status is NE.

도 13의 DSF 검출 회로(115d-1)는 제1 및 제2 디코딩 상태 플래그들(DSF1, DSF2)을 조합하여, 2b의 디코딩 상태 플래그(DSF)를 출력할 수 있다. 예를 들어, 디코딩 상태 플래그(DSF)의 LSB(least significant bit)는 제1 디코딩 상태 플래그(DSF1)DP 대응하고, MSB(most significant bit)는 제2 디코딩 상태 플래그(DSF2)에 대응할 수 있다. 이 경우, 2b의 디코딩 상태 플래그(DSF)가 "00"인 것은 디코딩 결과가 NE임을 의미하고, "10"인 것은 디코딩 결과가 CE임을 의미하고, "11"인 것은 디코딩 결과가 UE임을 의미할 수 있다. 상술된 비트 조합 및 비트 값들은 단순 예시이며, ECC 디코더의 구현 방식에 따라 다양하게 변형될 수 있음이 이해될 것이다.The DSF detecting circuit 115d-1 of FIG. 13 may combine the first and second decoding status flags DSF1 and DSF2 to output a decoding status flag DSF of 2b. For example, the least significant bit (LSB) of the decoding state flag DSF may correspond to the first decoding state flag DSF1DP, and the most significant bit (MSB) may correspond to the second decoding state flag DSF2. In this case, the decoding state flag (DSF) of 2b is “00” means that the decoding result is NE, “10” means that the decoding result is CE, and “11” means that the decoding result is UE. can It will be understood that the above-described bit combinations and bit values are merely examples and may be modified in various ways according to an implementation method of an ECC decoder.

상술된 바와 같이, DSF 검출 회로(115d-1)는 2b의 디코딩 상태 플래그(DSF)를 생성함으로써, 디코딩 결과(예를 들어, UE, CE, 및 NE)를 메모리 컨트롤러(11)로 알릴 수 있다. As described above, the DSF detection circuit 115d-1 may inform the memory controller 11 of decoding results (eg, UE, CE, and NE) by generating a decoding status flag (DSF) of 2b. .

도 14는 본 발명의 실시 예에 따른 축약된 H-행렬의 일부 예를 보여주는 도면이다. 일 실시 예에서, 도 8을 참조하여 설명된 축약된 H-행렬(sim-H-mat)은 신드롬 디코딩 회로(112)에 의해 사용되는 H-행렬(H-mat)의 제2 부분 행들(2nd sub-Rows)의 정보를 기반으로 생성된다. 반면에, 도 14에 도시된 UE 판정용 축약된 H-행렬(sim-H-mat-UE)은 H-행렬(H-mat)의 제2 부분 행들(2nd sub-Rows)의 정보에 포함되지 않는 정보를 기반으로 생성될 수 있다. 예를 들어, 도 8을 참조하여 설명된 바와 같이, 축약된 H-행렬(sim-H-mat)에 포함된 제B00 내지 제B15 부분 행렬들(B00~B15)은 각각 [11000]T, [00111]T, [10100]T, [01011]T, [01100]T, [10011]T, [11100]T, [00011]T, [100111]T, [01101]T, [01010]T, [10101]T, [11010]T, [00101]T, [00110]T, 및 [11001]T의 열로 구현될 수 있으며, 제B00 내지 제B15 부분 행렬들(B00~B15)은 H-행렬(H-mat)의 제2 부분 행들(2nd sub-Rows)를 구성할 수 있다.14 is a diagram showing some examples of an abbreviated H-matrix according to an embodiment of the present invention. In one embodiment, the abbreviated H-matrix (sim-H-mat) described with reference to FIG. 8 is the second partial rows (2nd) of the H-matrix (H-mat) used by the syndrome decoding circuit 112 sub-Rows) is created based on the information. On the other hand, the abbreviated H-matrix (sim-H-mat-UE) for UE determination shown in FIG. 14 is not included in the information of the second sub-rows of the H-matrix (H-mat). It can be created based on information that does not exist. For example, as described with reference to FIG. 8, the B00 to B15 submatrices (B00 to B15) included in the abbreviated H-matrix (sim-H-mat) are [11000] T , [ [00111] T , [10100] T , [01011] T , [01100] T , [10011] T , [11100] T , [00011] T , [100111] T , [01101] T , [01010] T , [ It can be implemented as columns of 10101] T , [11010] T , [00101] T , [00110] T , and [11001] T , and the B00 to B15 submatrices B00 to B15 are H-matrices (H -mat) may constitute second sub-rows.

반면에, 도 14에 도시된 바와 같이, UE 판정용 축약된 H-행렬(sim-H-Mat-UE)은 [01001]T, [01110]T, [10001]T, [10110]T, [10000]T, [01000]T, [00100]T, [00010]T, [00001]T, [01111]T, [10111]T, [11011]T, [11101]T, [11110]T, 및 [11111]T 과 같은 부분 행렬들로 구현될 수 있다. UE 판정용 축약된 H-행렬(sim-H-mat-UE)의 부분 행렬들은 H-행렬(H-mat)의 제2 부분 행들(2nd sub-Rows)에 포함된 부분 행렬들(즉, B00~B15)과 다른 열들로 구현될 수 있다. 좀 더 상세한 예로서, 도 7a 내지 도 7c를 참조하여 설명된 H-행렬(H-mat)의 제2 부분 행들(2nd sub-Rows)에 포함된 각 열은 총 16개(패리티 행렬(PR) 제외)로 구분된다. 이 때, 5개의 비트들을 통한 비트열의 조합은 총 25=32개이므로, 부분 행렬들(즉, B00~B15)에 대응되지 않는 비트 열들은 32-16 = 16개의 열들로 정리된다. 이 때, [00000]T의 열은 신드롬(SYD)이 all-zero인 경우(즉, 에러가 없는 경우)와 대응될 수 있으므로, UE 판정용 축약된 H-행렬(sim-H-mat-UE)에서 제외된다. 따라서, UE 판정용 축약된 H-행렬(sim-H-mat-UE)은 상술된 10개의 열들로 각각 구성된 부분 행렬들 및 패리티 행렬(PR)를 포함할 수 있다. On the other hand, as shown in FIG. 14, the abbreviated H-matrix (sim-H-Mat-UE) for UE determination is [01001] T , [01110] T , [10001] T , [10110] T , [ 10000] T , [01000] T , [00100] T , [00010] T , [00001] T , [01111] T , [10111] T , [11011] T , [11101] T , [11110] T , and [11111] can be implemented with submatrices such as T. Sub-matrices of the shortened H-matrix (sim-H-mat-UE) for UE determination are sub-matrices included in the 2nd sub-rows (ie, B00 ~B15) and other columns. As a more detailed example, each column included in the second sub-rows (2nd sub-Rows) of the H-matrix (H-mat) described with reference to FIGS. 7A to 7C is a total of 16 (parity matrix (PR) excluded). At this time, since the total number of combinations of bit strings through 5 bits is 2 5 =32, bit strings that do not correspond to submatrices (ie, B00 to B15) are organized into 32-16 = 16 columns. At this time, since the column of [00000] T can correspond to the case where the syndrome (SYD) is all-zero (ie, there is no error), the abbreviated H-matrix for UE determination (sim-H-mat-UE ) are excluded. Accordingly, the abbreviated H-matrix (sim-H-mat-UE) for UE determination may include sub-matrices each composed of the aforementioned 10 columns and a parity matrix (PR).

이 경우, 신드롬(SYD)의 제3 내지 제7 비트들(S3~S7)의 열이 UE 검출용 축약된 H-행렬(sim-H-mat-UE)의 열들 중 적어도 하나와 일치하는 것은, 신드롬(SYD)이 H-행렬(H-mat)의 열들 모두와 일치하지 않음(즉, 에러 위치가 판별되지 않음)을 의미한다. 따라서, 신드롬(SYD)의 제3 내지 제7 비트들(S3~S7)의 열과 UE 검출용 축약된 H-행렬(sim-H-mat-UE)의 열들이 비교됨으로써, 데이터의 에러 발생 유무가 판별될 수 있다. 또는, 일부 경우에서, 신드롬(SYD)의 제3 내지 제7 비트들(S3~S7)의 열과 UE 검출용 축약된 H-행렬(sim-H-mat-UE)의 열들이 비교됨으로써, 데이터에 정정 불가능한 에러가 포함되었는지, 즉, 디코딩 결과가 UE인지 판별될 수 있다.In this case, if the columns of the third to seventh bits (S3 to S7) of the syndrome (SYD) match at least one of the columns of the shortened H-matrix (sim-H-mat-UE) for UE detection, This means that the syndrome SYD does not match all of the columns of the H-matrix H-mat (that is, the error location is not determined). Therefore, by comparing the columns of the third to seventh bits (S3 to S7) of the syndrome (SYD) with the columns of the abbreviated H-matrix (sim-H-mat-UE) for UE detection, it is possible to determine whether or not an error has occurred in the data. can be identified. Alternatively, in some cases, by comparing the columns of the third to seventh bits (S3 to S7) of the syndrome (SYD) with the columns of the abbreviated H-matrix (sim-H-mat-UE) for UE detection, the data It can be determined whether an uncorrectable error is included, that is, whether the decoding result is a UE.

도 15는 도 14의 UE 판정용 축약된 H-행렬을 사용하는 고속 데이터 에러 체크 회로의 일부 예를 보여주는 도면이다. 도 15를 참조하면, 고속 데이터 에러 체크 회로(115e-2)는 복수의 AND 연산 회로들(AS30~AS3e)을 포함할 수 있다. 복수의 AND 연산 회로들(AS30~AS3e) 각각은 도 14를 참조하여 설명된 UE 판정용 축약된 H-행렬(sim-H-mat-UE)을 기반으로, 신드롬(SYD)의 일부 비트들(S3~S7)과 연결될 수 있다.FIG. 15 is a diagram showing some examples of a high-speed data error checking circuit using the shortened H-matrix for UE determination of FIG. 14; Referring to FIG. 15 , the high-speed data error check circuit 115e-2 may include a plurality of AND operation circuits AS30 to AS3e. Each of the plurality of AND operation circuits AS30 to AS3e is based on the abbreviated H-matrix (sim-H-mat-UE) for UE determination described with reference to FIG. S3 ~ S7) can be connected.

예를 들어, 제30 AND 연산 회로(AS30)는 도 14의 UE 판정용 축약된 H-행렬(sim-H-mat-UE)의 [01001]T에 대응하도록 신드롬(SYD)의 일부 비트들(S3~S7)과 연결될 수 있다. 즉, 제30 AND 연산 회로(AS30)는 S3B, S4, S5B, S6B, 및 S7을 입력들로서 수신하고, 수신된 입력들이 모두 "1"인 경우, "1"을 출력하고, 그렇지 않은 경우(적어도 하나가 "0"인 경우), "0"을 출력한다. 나머지 AND 연산 회로들(AS31~AS3e)은 도 14를 참조하여 설명된 UE 판정용 축약된 H-행렬(sim-H-mat-UE)의 열들과 각각 대응하도록, 일부 비트들(S3~S7)과 연결되고, 입력 신호들이 모두 "1"인 경우, "1을 출력하고, 그렇지 않은 경우(적어도 하나가 "0"인 경우), "0"을 출력한다. For example, the 30th AND operation circuit AS30 selects some bits ( S3 ~ S7) can be connected. That is, the thirtieth AND operation circuit AS30 receives S3B, S4, S5B, S6B, and S7 as inputs, and outputs "1" when all of the received inputs are "1", and otherwise (at least If one is "0"), output "0". The remaining AND operation circuits AS31 to AS3e use some bits S3 to S7 to correspond to columns of the abbreviated H-matrix sim-H-mat-UE for UE determination described with reference to FIG. 14, respectively. and outputs "1" when all of the input signals are "1", and outputs "0" otherwise (when at least one is "0").

고속 데이터 에러 체크 회로(115e-2)는 복수의 OR 게이트들을 포함할 수 있다. 고속 데이터 에러 체크 회로(115e-2)는 복수의 OR 게이트들을 통해 복수의 AND 연산 회로들(AS30~AS3a)의 출력에 대한 OR 연산을 수행하여, 데이터 에러 정보(DT_ERR-2)를 출력할 수 있다. 일 실시 예에서, 복수의 AND 연산 회로들(AS30~AS3a)의 출력들 중 적어도 하나가 "1"인 경우, 데이터 에러 정보(DT_ERR-2)는 "1"이고, 그렇지 않은 경우(즉, 모든 출력들이 "0"인 경우), 데이터 에러 정보(DT_ERR-2)는 "0"이다. The high-speed data error check circuit 115e-2 may include a plurality of OR gates. The high-speed data error check circuit 115e-2 may output data error information DT_ERR-2 by performing an OR operation on the outputs of the plurality of AND operation circuits AS30 to AS3a through a plurality of OR gates. there is. In one embodiment, when at least one of the outputs of the plurality of AND operation circuits AS30 to AS3a is "1", the data error information DT_ERR-2 is "1", otherwise (ie, all outputs are "0"), the data error information (DT_ERR-2) is "0".

일 실시 예에서, 데이터 에러 정보(DT_ERR-2)가 "1"인 것은 읽기 데이터(RDT)에 에러가 존재하거나 또는 패리티 데이터(PRT)에 에러가 존재함을 가리킬 수 있다. 데이터 에러 정보(DT_ERR-2)가 "0"인 것은 읽기 데이터(RDT)에 에러가 존재하지 않거나 또는 정정 가능한 에러가 존재함을 가리킬 수 있다. In one embodiment, the data error information DT_ERR-2 of “1” may indicate that an error exists in the read data RDT or the parity data PRT. When the data error information DT_ERR-2 is “0”, it may indicate that there is no error in the read data RDT or there is an error that can be corrected.

도 16은 도 15의 고속 데이터 에러 체크 회로로부터의 데이터 에러 정보를 사용하는 DSF 검출 회로의 일부 예를 보여주는 도면이다. 도 14, 도 15, 및 도 16을 참조하면, DSF 검출 회로(115d-2)는 INV 게이트들 및 AND 게이트들을 포함할 수 있다. DSF 검출 회로(115d-2)는제1 INV 게이트를 통해, 신드롬 정보(SYN_0)의 반전시킬 수 있다. DSF 검출 회로(115d-2)는 제1 AND 게이트를 통해, 제1 INV 게이트의 출력(즉, 반전된 신드롬 정보) 및 데이터 에러 정보(DT_ERR-2)에 대한 AND 연산을 수행할 수 있다. DSF 검출 회로(115d-2)는, 제2 INV 게이트를 통해, 패리티 에러 정보(PRT_ERR)를 반전시킬 수 있다. 일 실시 예에서, 패리티 에러 정보(PRT_ERR)는 도 10을 참조하여 설명된 패리티 에러 체크 회로(115c)에 의해 연산될 수 있으며, 패리티 데이터(PRT)에 대한 1-비트 에러 유무를 가리키는 정보이다. 16 is a diagram showing some examples of a DSF detection circuit using data error information from the high-speed data error check circuit of FIG. 15; Referring to FIGS. 14, 15, and 16 , the DSF detection circuit 115d-2 may include INV gates and AND gates. The DSF detection circuit 115d - 2 may invert the syndrome information SYN_0 through the first INV gate. The DSF detection circuit 115d - 2 may perform an AND operation on the output of the first INV gate (ie, the inverted syndrome information) and the data error information DT_ERR-2 through the first AND gate. The DSF detection circuit 115d - 2 may invert the parity error information PRT_ERR through the second INV gate. In one embodiment, the parity error information (PRT_ERR) may be calculated by the parity error check circuit 115c described with reference to FIG. 10 and is information indicating whether there is a 1-bit error in the parity data (PRT).

DSF 검출 회로(115d-2)는 제2 AND 게이트를 통해, 제1 AND 게이트의 출력 및 제2 INV 게이트의 출력에 대한 AND 연산을 수행하여, 디코딩 상태 정보(DSF)를 생성할 수 있다. 디코딩 상태 정보(DSF)가 "1"인 것은, 디코딩 상태가 UE임을 가리키고, 디코딩 상태 정보(DSF)가 "0"인 것은 디코딩 상태가 NE 또는 CE 임을 가리킬 수 있다.The DSF detection circuit 115d - 2 may generate the decoding state information DSF by performing an AND operation on the output of the first AND gate and the output of the second INV gate through the second AND gate. When the decoding state information (DSF) is “1”, it indicates that the decoding state is UE, and when the decoding state information (DSF) is “0”, it may indicate that the decoding state is NE or CE.

예를 들어, 디코딩 상태 정보(DSF)가 "1"인 것은, 신드롬 정보(SYD_0)가 "0"이고, 데이터 에러 정보(DT_ERR-2)가 "1"이고, 패리티 에러 정보(PR_ERR)가 "0"인 경우이다. 이는, 신드롬 정보(SYD_0)에 의해, 데이터 및 패리터 데이터에 에러가 있음이 검출되고, 데이터 에러 정보(DT_ERR-2)에 데이터 또는 패리터 데이터에 정정 불가능한 에러가 존재함이 검출되고, 패리티 에러 정보(PR_ERR)에 의해 패리티 데이터(PRT)에 에러가 없음이 검출된 것을 의미한다. 이 경우, ECC 디코딩 결과는 UE일 것이다. 반면에, 상술된 경우를 제외한 나머지 경우들에서는, ECC 디코딩 결과는 NE 또는 CE일 것이다. For example, if the decoding status information (DSF) is "1", the syndrome information (SYD_0) is "0", the data error information (DT_ERR-2) is "1", and the parity error information (PR_ERR) is " This is the case of 0". This means that an error in the data and parity data is detected by the syndrome information (SYD_0), an uncorrectable error in the data or parity data is detected in the data error information (DT_ERR-2), and a parity error This means that no error is detected in the parity data PRT by the information PR_ERR. In this case, the ECC decoding result will be UE. On the other hand, in the remaining cases except for the case described above, the ECC decoding result will be NE or CE.

일 실시 예에서, 신드롬 정보(SYD_0)에 의해, 데이터 및 패리터 데이터에 에러가 있음이 검출되고, 데이터 에러 정보(DT_ERR-2)에 데이터 또는 패리터 데이터에 정정 불가능한 에러가 존재함이 검출되고, 패리티 에러 정보(PR_ERR)에 의해 패리티 데이터(PRT)가 에러가 존재함이 검출된 경우, 디코딩 상태 플래그(DSF)는 "0"(즉, NE 또는 CE)일 것이다. 이 때, 패리티 데이터(PRT)에 포함된 에러는 1-비트 에러를 가리킬 수 있다. 만약, 패리티 데이터(PRT)에 포함된 에러가 2-비트를 초과하거나 또는 ECC 엔진의 에러 정정 능력을 초과하는 경우, 디코딩 상태 플래그(DSF)는 "1"(즉, UE)로 결정될 수 있다.In one embodiment, it is detected that there is an error in the data and parity data by the syndrome information (SYD_0), and the existence of an uncorrectable error in the data or parity data is detected in the data error information (DT_ERR-2), , When it is detected that the parity data PRT has an error by the parity error information PR_ERR, the decoding status flag DSF will be "0" (ie, NE or CE). In this case, the error included in the parity data PRT may indicate a 1-bit error. If the error included in the parity data PRT exceeds 2 bits or exceeds the error correction capability of the ECC engine, the decoding status flag DSF may be determined to be “1” (ie UE).

도 17은 도 15의 고속 데이터 에러 체크 회로로부터의 데이터 에러 정보를 사용하는 DSF 검출 회로의 일부 예를 보여주는 도면이다. 도 15 및 도 17을 참조하면, DSF 검출 회로(115d-3)는 도 16을 참조하여 설명된 바와 유사한 연산(즉,/SYD_0*DT_ERR-2)*/PR_ERR)을 통해 제1 디코딩 상태 플래그(DSF1)를 생성할 수 있다. DSF 검출 회로(115d-3)는 신드롬 정보(SYD_0)를 반전하여, 제2 디코딩 상태 플래그(DSF2)를 생성할 수 있다. DSF 검출 회로(115d-3)는 제1 및 제2 디코딩 상태 플래그들(DSF1, DSF2)을 조합하여, 2b의 디코딩 상태 플래그(DSF)를 생성할 수 있다. 1b의 제1 디코딩 상태 플래그(DSF1), 1b의 제2 디코딩 상태 플래그(DSF2), 및 2b의 디코딩 상태 플래그(DSF)는 각 값에 대한 의미는 도 13을 참조하여 설명된 바와 유사하므로, 이에 대한 상세한 설명은 생략된다.FIG. 17 is a diagram showing some examples of a DSF detection circuit using data error information from the high-speed data error check circuit of FIG. 15; 15 and 17, the DSF detection circuit 115d-3 performs a first decoding status flag (ie, / SYD_0 * DT_ERR-2) * / PR_ERR) through an operation similar to that described with reference to FIG. 16 DSF1) can be created. The DSF detection circuit 115d - 3 may generate a second decoding status flag DSF2 by inverting the syndrome information SYD_0. The DSF detecting circuit 115d - 3 may generate a decoding status flag DSF of 2b by combining the first and second decoding status flags DSF1 and DSF2 . The meanings of the first decoding status flag DSF1 of 1b, the second decoding status flag DSF2 of 1b, and the decoding status flag DSF of 2b are similar to those described with reference to FIG. A detailed description thereof is omitted.

상술된 바와 같이, 본 발명에 따른 ECC 디코더(ECC-DEC)는 H-행렬의 일부 행들에 포함되지 않은 정보를 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다. 일 실시 예에서, 도 14 및 도 15을 참조하여 설명된 고속 데이터 에러 체크 회로(115e-2)는 UE 판정용 축약된 H-행렬(sim-H-mat-UE)의 각 열을 신드롬(SYD)의 일부 비트들과 비교함으로써, 읽기 데이터(RDT)에 대한 에러 발생 유무를 판별할 수 있다. 이 때, UE 판정용 축약된 H-행렬(sim-H-mat-UE)의 각 열은 H-행렬(H-mat)에 포함되지 않은 정보에 기반되므로, 신드롬(SYD)의 일부 비트들이 UE 판정용 축약된 H-행렬(sim-H-mat-UE)의 열들 중 어느 하나와 동일하다는 것(즉, DT_ERR-2가 "1"로 출력됨)은 읽기 데이터(RDT)에 정정할 수 없는 에러가 포함되었음(즉, 디코딩 상태가 UE임)을 의미할 수 있고, 신드롬(SYD)의 일부 비트들이 UE 판정용 축약된 H-행렬(sim-H-mat-UE)의 열들 모두와 다르다는 것(즉, DT_ERR-2가 "0"로 출력됨)은 읽기 데이터(RDT)에 에러가 포함되어 있지 않거나 또는 정정할 수 있는 에러가 포함되었음(즉, 디코딩 상태가 NE 또는 CE임)을 의미할 수 있다. 즉, 도 14 및 도 15을 참조하여 설명된 고속 데이터 에러 체크 회로(115e-2)에 의해 생성된 데이터 에러 정보(DT_ERR-2)는 도 16 및 도 17을 참조하여 설명된 DSF 검출 회로(115d-2, 115d-3)를 경유하지 않고, 디코딩 상태 플래그(DSF)로서 사용될 수 있다. As described above, the ECC decoder (ECC-DEC) according to the present invention may generate a decoding status flag (DSF) based on information not included in some rows of the H-matrix. In one embodiment, the high-speed data error check circuit 115e-2 described with reference to FIGS. 14 and 15 assigns each column of a shortened H-matrix (sim-H-mat-UE) for UE determination a syndrome (SYD). ), it is possible to determine whether an error has occurred in the read data RDT. At this time, since each column of the abbreviated H-matrix (sim-H-mat-UE) for UE determination is based on information not included in the H-matrix (H-mat), some bits of the syndrome (SYD) The fact that it is identical to any one of the columns of the abbreviated H-matrix (sim-H-mat-UE) for judgment (ie, DT_ERR-2 is output as “1”) indicates that the read data (RDT) cannot be corrected. It may mean that an error is included (i.e., the decoding state is UE), and that some bits of the syndrome (SYD) are different from all of the columns of the shortened H-matrix (sim-H-mat-UE) for UE determination. (that is, DT_ERR-2 is output as “0”) means that the read data (RDT) does not contain an error or contains an error that can be corrected (that is, the decoding status is NE or CE). can That is, the data error information DT_ERR-2 generated by the high-speed data error check circuit 115e-2 described with reference to FIGS. 14 and 15 is the DSF detection circuit 115d described with reference to FIGS. 16 and 17 -2, 115d-3) and can be used as a decoding status flag (DSF).

일 실시 예에서, 상술된 ECC 디코더의 구성은 특정 H-행렬을 기반으로 구현된 것이며, H-행렬의 구조 및 특징에 따라, 본 발명에 따른 ECC 디코더(특히, 디코딩 상태 플래그 생성기)의 구성은 다양하게 변형될 수 있다. In one embodiment, the configuration of the above-described ECC decoder is implemented based on a specific H-matrix, and according to the structure and characteristics of the H-matrix, the configuration of the ECC decoder (in particular, the decoding state flag generator) according to the present invention It can be modified in various ways.

도 18은 본 발명의 실시 예에 따른 축약된 H-행렬을 생성하는 방법을 설명하기 위한 순서도이다. 일 실시 예에서, 도 18의 순서도는, 메모리 장치(100)의 제조 단계에서, ECC 회로에 대한 설계 툴에 의해 수행될 수 있다. 18 is a flowchart for explaining a method of generating a reduced H-matrix according to an embodiment of the present invention. In one embodiment, the flowchart of FIG. 18 may be performed by a design tool for an ECC circuit in a manufacturing step of the memory device 100 .

도 18을 참조하면, S210 단계에서, H-행렬이 결정될 수 있다. 예를 들어, 메모리 장치(100)의 신뢰성 또는 성능에 따라, ECC 회로(110)(특히, ECC 디코더)에서 사용되는 H-행렬이 결정될 수 있다. 일 실시 예에서, H-행렬은 ECC 회로(110)의 구현 방식, 에러 정정 알고리즘, 또는 에러 정정 능력 등과 같은 다양한 요인들을 고려하여 다양한 방식으로 결정될 수 있다.Referring to FIG. 18 , in step S210, an H-matrix may be determined. For example, an H-matrix used in the ECC circuit 110 (in particular, an ECC decoder) may be determined according to reliability or performance of the memory device 100 . In one embodiment, the H-matrix may be determined in various ways considering various factors such as an implementation method of the ECC circuit 110, an error correction algorithm, or error correction capability.

S220 단계에서, H-행렬의 특성 또는 부분 정보를 기반으로, 축약된 H-행렬(sim-H-mat)이 추출될 수 있다. 예를 들어, H-행렬이 도 6, 도 7a, 도 7b, 및 도 7c를 참조하여 설명된 H-행렬(H-mat)인 것으로 가정한다. 이 경우, H-행렬은 8개의 열들 단위로, 제1 부분 행들(S0~S3에 대응하는 행들)은 반복되는 동일한 부분 행렬들로 구현되고, 제2 부분 행들(S4~S7에 대응하는 행들)은 동일한 열들을 포함하는 복수의 부분 행렬들로 구현된다. 이 경우, 신드롬(SYD)을 H-행렬(H-mat) 전체 열을 신드롬(SYD)과 비교하는 대신에, 일부 정보(즉, 제2 부분 행들(S4~S7에 대응하는 행들))만 신드롬(SYD)의 일부 비트들(S4~S7)과 비교함으로써, 신드롬(SYD)이 H-행렬(H-mat)의 열들 중 적어도 하나와 매칭되는지(즉, 읽기 데이터(RDT) 또는 패리티 데이터(PRT)에 에러가 존재하는지) 판별될 수 있다. 즉, 신드롬(SYD)의 일부 비트 및 H-행렬(H-mat)의 일부 정보만 비교함으로써, 읽기 데이터(RDT) 또는 패리티 데이터(PRT)에 에러가 존재하는지 판별될 수 있다.In step S220, a reduced H-matrix (sim-H-mat) may be extracted based on the characteristics or partial information of the H-matrix. For example, it is assumed that the H-matrices are the H-matrices described with reference to FIGS. 6, 7A, 7B, and 7C. In this case, the H-matrix is implemented in units of 8 columns, the first partial rows (rows corresponding to S0 to S3) are repeated with identical partial matrices, and the second partial rows (rows corresponding to S4 to S7) is implemented with a plurality of submatrices containing the same columns. In this case, instead of comparing the entire column of the H-matrix (H-mat) with the syndrome (SYD), only some information (that is, the second partial rows (rows corresponding to S4 to S7)) By comparing with some bits S4 to S7 of (SYD), whether the syndrome SYD matches at least one of the columns of the H-matrix H-mat (that is, read data RDT) or parity data PRT It can be determined whether there is an error in ). That is, it may be determined whether an error exists in the read data RDT or the parity data PRT by comparing only some bits of the syndrome SYD and some information of the H-matrix.

상술된 바와 같은 H-행렬(H-mat)의 특성은 H-행렬(H-mat)의 구현 방식에 따라 달라질 수 있으며, 특정 행 단위 또는 특정 열 단위로 구분되지 않을 수 있다. 예를 들어, 일부 H-행렬(H-mat)을 기반으로 생성된 축약된 H-행렬(sim-H-mat)에서, 제0 열에 대하여, 신드롬(SYD)의 S0, S1, S2, S3, 및 S4에 대응하는 값들이 비교될 수 있고, 제1 열에 대하여, 신드롬(SYD)의 S0, S2, S4, S6, 및 S7에 대응하는 값들이 비교될 수 있다. 일 실시 예에서, 읽기 데이터(RDT)의 크기가 128b인 경우, H-행렬의 크기는 8 × 128 + 8 × 8(패리티 행렬)의 크기를 가질 수 있다. 이 때, H-행렬을 8b 단위로 구분하는 경우, 축약된 H-행렬(sim-H-mat)은 (8-log28) × (128/8)의 크기를 가질 수 있다. 또는 H-행렬을 16b 단위로 구분하는 경우, 축약된 H-행렬(sim-H-mat)은 (8-log216) × (128/16)의 크기를 가질 수 있다.As described above, the characteristics of the H-matrice may vary depending on how the H-matrice is implemented, and may not be divided in specific row units or specific column units. For example, in a reduced H-matrix (sim-H-mat) generated based on some H-matrices (H-mat), for column 0, S0, S1, S2, S3, and S4 may be compared, and for the first column, values corresponding to S0, S2, S4, S6, and S7 of the syndrome SYD may be compared. In one embodiment, when the size of the read data RDT is 128b, the size of the H-matrix may have a size of 8 × 128 + 8 × 8 (parity matrix). In this case, when the H-matrix is divided into units of 8b, the reduced H-matrix (sim-H-mat) may have a size of (8-log 2 8) × (128/8). Alternatively, when the H-matrix is divided into 16b units, the reduced H-matrix (sim-H-mat) may have a size of (8-log 2 16) × (128/16).

일 실시 예에서, 축약된 H-행렬(sim-H-mat)은 H-행렬에 포함된 부분 정보를 기반으로 생성될 수 있다. 또는 축약된 H-행렬(sim-H-mat)은 H-행렬에 포함된 부분 정보와 다른 정보(즉, H-행렬에 포함되지 않은 부분 정보)를 기반으로 생성될 수 있다. 이 경우, 축약된 H-행렬(sim-H-mat)은 도 14 및 도 15를 참조하여 설명된 바와 같이 추출 또는 생성될 수 있으며, 이 경우, 축약된 H-행렬을 통해 디코딩 상태가 UE임이 판별될 수 있다. In one embodiment, a shortened H-matrix (sim-H-mat) may be generated based on partial information included in the H-matrix. Alternatively, an abbreviated H-matrix (sim-H-mat) may be generated based on partial information included in the H-matrix and other information (ie, partial information not included in the H-matrix). In this case, the reduced H-matrix (sim-H-mat) may be extracted or generated as described with reference to FIGS. 14 and 15, and in this case, the reduced H-matrix indicates that the decoding state is UE. can be identified.

일 실시 예에서, 축약된 H-행렬(sim-H-mat)은 H-행렬의 특정 열들에 대한 다양한 로직 연산(OR, AND, XOR 등)을 통해 생성될 수 있다. In one embodiment, a shortened H-matrix (sim-H-mat) may be generated through various logical operations (OR, AND, XOR, etc.) on specific columns of the H-matrix.

S330 단계에서, 축약된 H-행렬(sim-H-mat)을 기반으로, 고속 DSF 생성기가 구성될 수 있다. 예를 들어, 도 1 내지 도 17을 참조하여 설명된 바와 같이, 축약된 H-행렬(sim-H-mat)을 기반으로, 고속 데이터 에러 체크 회로가 구현될 수 있고, 고속 DSF 생성기는 고속 데이터 에러 체크 회로의 출력(즉, 데이터 에러 정보), 신드롬 체크 회로의 출력(즉, 신드롬 정보), 및 패리티 에러 체크 회로의 출력(즉, 패리티 에러 정보)를 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다. In step S330, a high-speed DSF generator may be constructed based on the reduced H-matrix (sim-H-mat). For example, as described with reference to FIGS. 1 to 17 , based on the reduced H-matrix (sim-H-mat), a high-speed data error check circuit can be implemented, and the high-speed DSF generator is A decoding status flag (DSF) is generated based on the output of the error check circuit (ie, data error information), the output of the syndrome check circuit (ie, syndrome information), and the output of the parity error check circuit (ie, parity error information). can do.

일 실시 예에서, ECC 회로의 구현 방식 또는 성능에 따라 H-행렬은 다양하게 가변될 수 있으며, H-행렬의 변형에 따라, 축약된 H-행렬의 구현 방식 또한 다양하게 변형될 수 있음이 이해될 것이다. In one embodiment, it is understood that the H-matrix may be variously changed according to the implementation method or performance of the ECC circuit, and the implementation method of the reduced H-matrix may also be variously modified according to the transformation of the H-matrix. It will be.

도 19는 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 19를 참조하면, 메모리 시스템(1000)은 메모리 컨트롤러(1100), ECC 회로(1200), 및 메모리 장치(1300)를 포함할 수 있다. 메모리 컨트롤러(1100)는 메모리 장치(1300)에 데이터를 저장하거나 또는 메모리 장치(1200)에 저장된 데이터를 읽을 수 있다.19 is a block diagram illustrating a memory system according to an embodiment of the inventive concept. Referring to FIG. 19 , a memory system 1000 may include a memory controller 1100 , an ECC circuit 1200 , and a memory device 1300 . The memory controller 1100 may store data in the memory device 1300 or read data stored in the memory device 1200 .

일 실시 예에서, 메모리 컨트롤러(1100) 및 메모리 장치(1300) 사이의 데이터 경로에, ECC 회로(1200)가 위치할 수 있다. ECC 회로(1200)는 메모리 컨트롤러(110) 및 메모리 장치(1300) 사이에서 송수신되는 데이터의 에러를 정정하도록 구성될 수 있다. 일 실시 예에서, ECC 회로(1200)는 도 1 내지 도 18을 참조하여 설명된 동작 방법을 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다. In an embodiment, the ECC circuit 1200 may be located in a data path between the memory controller 1100 and the memory device 1300 . The ECC circuit 1200 may be configured to correct errors in data transmitted and received between the memory controller 110 and the memory device 1300 . In one embodiment, the ECC circuit 1200 may generate a decoding state flag (DSF) based on the operating method described with reference to FIGS. 1 to 18 .

도 20은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 20을 참조하면, 메모리 시스템(2000)은 메모리 컨트롤러(2100) 및 메모리 장치(2200)를 포함할 수 있다. 메모리 컨트롤러(2100)는 ECC 회로(2110)를 포함할 수 있다. ECC 회로(2110)는 메모리 장치(2200)로 저장될 데이터에 대한 패리티 데이터를 생성하거나 또는 메모리 장치(2200)로부터 읽은 데이터 및 패리티 데이터를 기반으로 읽은 데이터의 에러를 정정하도록 구성될 수 있다. ECC 회로(2110)는 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다.20 is a block diagram showing a memory system according to an embodiment of the inventive concept. Referring to FIG. 20 , a memory system 2000 may include a memory controller 2100 and a memory device 2200 . The memory controller 2100 may include an ECC circuit 2110 . The ECC circuit 2110 may be configured to generate parity data for data to be stored in the memory device 2200 or to correct errors in data read from the memory device 2200 and based on the parity data. The ECC circuit 2110 may generate a decoding status flag (DSF) based on the method described with reference to FIGS. 1 to 18 .

도 21은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 21을 참조하면, 메모리 시스템(3000)은 메모리 컨트롤러(3100) 및 메모리 장치(3200)를 포함할 수 있다. 메모리 컨트롤러(3100)는 컨트롤러 ECC 회로(3110)를 포함할 수 있다. 컨트롤러 ECC 회로(3110)는 메모리 장치(3200)에 저장될 쓰기 데이터에 대한 제1 패리티를 생성하고, 메모리 장치(3200)로부터 수신된 읽기 데이터 및 제1 패리티를 기반으로 읽기 데이터의 에러를 정정할 수 있다.21 is a block diagram illustrating a memory system according to an embodiment of the inventive concept. Referring to FIG. 21 , a memory system 3000 may include a memory controller 3100 and a memory device 3200 . The memory controller 3100 may include a controller ECC circuit 3110 . The controller ECC circuit 3110 generates first parity for write data to be stored in the memory device 3200 and corrects errors in the read data based on the read data received from the memory device 3200 and the first parity. can

메모리 장치(3200)는 메모리 ECC 회로(3210)를 포함할 수 있다. 메모리 ECC 회로(3210)는 메모리 컨트롤러(3100)로부터 수신된 쓰기 데이터 및 제1 패리티에 대한 제2 패리티를 생성하고, 메모리 장치(3200)에 저장된 읽기 데이터 및 제1 패리티, 및 제2 패리티를 기반으로 읽기 데이터 및 제1 패리티의 에러를 정정할 수 있다.The memory device 3200 may include a memory ECC circuit 3210 . The memory ECC circuit 3210 generates second parity for the write data and the first parity received from the memory controller 3100 and based on the read data, the first parity, and the second parity stored in the memory device 3200. It is possible to correct errors in the read data and the first parity.

일 실시 예에서, 컨트롤러 ECC 회로(3110) 및 메모리 ECC 회로(3210) 각각은 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로 디코딩 상태 필드(DSF)를 생성할 수 있다. In one embodiment, each of the controller ECC circuit 3110 and the memory ECC circuit 3210 may generate a decoding status field (DSF) based on the method described with reference to FIGS. 1 to 18 .

일 실시 예에서, 도 1 내지 도 18을 참조하여 설명된 실시 예들에서, ECC 회로(110)는 메모리 장치(100) 내에 포함된 OD-ECC(on-die ECC) 회로인 것으로 설명되었으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 도 19 내지 도 21을 참조하여 설명된 바와 같이, ECC 회로는 메모리 장치 내부 또는 외부에 위치하거나 또는 메모리 컨트롤러 내에 위치할 수 있다.In one embodiment, in the embodiments described with reference to FIGS. 1 to 18, the ECC circuit 110 has been described as an on-die ECC (OD-ECC) circuit included in the memory device 100, but the present invention The scope of is not limited thereto. For example, as described with reference to FIGS. 19 to 21 , the ECC circuit may be located inside or outside the memory device or within the memory controller.

도 22는 본 발명의 실시 예에 따른 메모리 패키지의 일부 예를 보여주는 도면이다. 도 22를 참조하면, 메모리 패키지(4000)는 복수의 메모리 다이들(4110~4140) 및 버퍼 다이(4200)를 포함할 수 있다. 복수의 메모리 다이들(4110~4140) 각각은 DRAM 장치일 수 있다. 복수의 메모리 다이들(4110~4140) 및 버퍼 다이(4200)는 적층 구조로 구현될 수 있으며, TSV(through silicon via)를 통해 서로 전기적으로 연결되고, 서로 통신할 수 있다.22 is a diagram showing some examples of a memory package according to an embodiment of the present invention. Referring to FIG. 22 , a memory package 4000 may include a plurality of memory dies 4110 to 4140 and a buffer die 4200 . Each of the plurality of memory dies 4110 to 4140 may be a DRAM device. The plurality of memory dies 4110 to 4140 and the buffer die 4200 may be implemented in a stacked structure, and may be electrically connected to each other and communicate with each other through a through silicon via (TSV).

일 실시 예에서, 메모리 패키지(4000)는 Package on Package(PoP), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 방식으로 패키지화되어 하나의 반도체 패키지로 제공될 수 있다In one embodiment, the memory package 4000 may include Package on Package (PoP), Ball Grid Arrays (BGAs), Chip Scale Packages (CSPs), Plastic Leaded Chip Carrier (PLCC), Plastic Dual In Line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flatpack (TQFP), Small Outline (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline (TSOP), Thin Quad Flatpack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP), Wafer-Level Processed Stack Package (WSP) ), etc., and may be provided as a single semiconductor package.

버퍼 다이(4200)는 외부 호스트 장치(또는 메모리 컨트롤러)와 통신할 수 있다. 버퍼 다??(4200)는 복수의 메모리 다이들(4110~4140)에 저장될 데이터를 임시 저장하거나 또는 복수의 메모리 다이들(4110~4140)로부터 읽어진 데이터를 임시 저장하도록 구성될 수 있다. 일 실시 예에서, 버퍼 다이(4200)는 ECC 회로(4210)를 포함할 수 있다. ECC 회로(4210)는 메모리 다이들(4110~4140)에 저장될 데이터에 대한 패리티를 생성하거나 또는 메모리 다이들(4110~4140)로부터 읽어진 데이터의 에러를 정정할 수 있다. 일 실시 예에서, ECC 회로(4210)는 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로 구현되거나 또는 디코딩 상태 플래그(DSF)를 생성할 수 있다.The buffer die 4200 may communicate with an external host device (or memory controller). The buffer data 4200 may be configured to temporarily store data to be stored in the plurality of memory dies 4110 to 4140 or to temporarily store data read from the plurality of memory dies 4110 to 4140 . In one embodiment, the buffer die 4200 may include ECC circuitry 4210. The ECC circuit 4210 may generate parity for data to be stored in the memory dies 4110 to 4140 or correct errors in data read from the memory dies 4110 to 4140 . In one embodiment, the ECC circuit 4210 may be implemented based on the method described with reference to FIGS. 1 to 18 or generate a decoding status flag (DSF).

도 23은 본 발명의 실시 예에 따른 메모리 패키지의 일부 예를 보여주는 도면이다. 도 23을 참조하면, 메모리 패키지(5000)는 복수의 메모리 다이들(5110~5140) 및 호스트 다이(5200)를 포함할 수 있다. 복수의 메모리 다이들(5110~5140)은 마이크로 범프(MCB)를 통해 서로 전기적으로 연결되고, 적층 구조를 가질 수 있고, 호스트 다이(5200) 상부에 직접 적층될 수 있다. 호스트 다이(5200)는 SoC, CPU, 또는 GPU일 수 있다. 일 실시 예에서, 복수의 메모리 다이들(5110~5140) 각각 또는 호스트 다이(5200)는 도 1 내지 도 18을 참조하여 설명된 ECC 회로를 포함할 수 있다. 23 is a diagram showing some examples of a memory package according to an embodiment of the present invention. Referring to FIG. 23 , a memory package 5000 may include a plurality of memory dies 5110 to 5140 and a host die 5200 . The plurality of memory dies 5110 to 5140 are electrically connected to each other through micro bumps (MCBs), may have a stacked structure, and may be directly stacked on the host die 5200 . Host die 5200 may be an SoC, CPU, or GPU. In one embodiment, each of the plurality of memory dies 5110 to 5140 or the host die 5200 may include the ECC circuit described with reference to FIGS. 1 to 18 .

도 24는 본 발명에 따른 메모리 장치가 적용된 메모리 모듈(6000)을 예시적으로 보여주는 블록도이다. 도 24를 참조하면, 메모리 모듈(6000)은 RCD(6100)(Register Clock Driver), 복수의 메모리 장치들(6210~6290), 및 복수의 데이터 버퍼들(DB)을 포함할 수 있다.24 is a block diagram exemplarily showing a memory module 6000 to which a memory device according to the present invention is applied. Referring to FIG. 24 , a memory module 6000 may include a register clock driver (RCD 6100), a plurality of memory devices 6210 to 6290, and a plurality of data buffers DB.

RCD(6100)는 외부 장치(예를 들어, 호스트 또는 메모리 컨트롤러))로부터 커맨드/어드레스(CA) 및 클럭 신호(CK)를 수신할 수 있다. RCD(6100)는 수신된 신호들을 기반으로, 커맨드/어드레스(CA)를 복수의 메모리 장치들(6210~6290)로 전달하고, 복수의 데이터 버퍼들(DB)을 제어할 수 있다. The RCD 6100 may receive a command/address CA and a clock signal CK from an external device (eg, host or memory controller). The RCD 6100 may transfer a command/address CA to the plurality of memory devices 6210 to 6290 and control the plurality of data buffers DB based on the received signals.

복수의 메모리 장치들(6210~6290) 각각은 메모리 데이터 라인들(MDQ)을 통해 복수의 데이터 버퍼들(DB)과 각각 연결될 수 있다.Each of the plurality of memory devices 6210 to 6290 may be respectively connected to a plurality of data buffers DB through memory data lines MDQ.

일 실시 예에서, 복수의 메모리 장치들(6210~6290) 각각은 도 1 내지 도 18을 참조하여 설명된 ECC 회로를 포함하고, 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다. 복수의 데이터 버퍼들(DB)은 복수의 데이터 라인들(DQ)을 통해 외부 장치(예를 들어, 호스트 또는 메모리 컨트롤러)와 데이터를 송수신할 수 있다. In one embodiment, each of the plurality of memory devices 6210 to 6290 includes the ECC circuit described with reference to FIGS. 1 to 18 , and a decoding state flag based on the method described with reference to FIGS. 1 to 18 . (DSF) can be created. The plurality of data buffers DB may transmit and receive data to and from an external device (eg, a host or a memory controller) through a plurality of data lines DQ.

일 실시 예에서, 도 24에 도시된 메모리 모듈(6000)은 LR-DIMM(Load Reduced Dual In-line Memory Module)의 폼 팩터일 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 메모리 모듈(6000)은 복수의 데이터 버퍼들(DB)이 생략된 RDIMM(Registered DIMM)의 폼 팩터를 가질 수 있다.In one embodiment, the memory module 6000 shown in FIG. 24 may have a load reduced dual in-line memory module (LR-DIMM) form factor. However, the scope of the present invention is not limited thereto, and the memory module 6000 may have a registered DIMM (RDIMM) form factor in which a plurality of data buffers DB are omitted.

일 실시 예에서, 메모리 모듈(6000)은 복수의 메모리 장치들(6210~6290) 외부에 위치한 ECC 회로를 더 포함할 수 있고, 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로 디코딩 상태 플래그(DSF)를 생성하도록 구성될 수 있다.In one embodiment, the memory module 6000 may further include an ECC circuit located outside the plurality of memory devices 6210 to 6290, and a decoding status flag based on the method described with reference to FIGS. 1 to 18 (DSF).

일 실시 예에서, 복수의 메모리 장치들(6210~6290) 중 어느 하나는 패리티 데이터를 저장하도록 구성될 수 있다. 패리티 데이터는 외부 장치(예를 들어, 호스트 또는 메모리 컨트롤러)로부터 제공될 수 있으며, 이 경우, 외부 장치는 도 1 내지 도 18을 참조하여 설명된 ECC 회로를 포함하거나 또는 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다.In one embodiment, any one of the plurality of memory devices 6210 to 6290 may be configured to store parity data. The parity data may be provided from an external device (eg, a host or a memory controller), and in this case, the external device includes the ECC circuit described with reference to FIGS. 1 to 18 or refers to FIGS. 1 to 18 Based on the method described above, a decoding status flag (DSF) can be generated.

도 25은 본 발명의 일 실시예에 따른 스토리지(storage) 장치가 적용된 시스템(7000)을 도시한 도면이다. 도 25의 시스템(7000)은 기본적으로 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IOT(internet of things) 기기와 같은 모바일(mobile) 시스템일 수 있다. 하지만 도 25의 시스템(7000)은 반드시 모바일 시스템에 한정되는 것은 아니고, 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용 장비(automotive device) 등이 될 수도 있다.25 is a diagram illustrating a system 7000 to which a storage device according to an embodiment of the present invention is applied. The system 7000 of FIG. 25 is basically a mobile phone such as a mobile phone, a smart phone, a tablet personal computer (PC), a wearable device, a healthcare device, or an internet of things (IOT) device. (mobile) system. However, the system 7000 of FIG. 25 is not necessarily limited to a mobile system, and can be used for vehicles such as a personal computer, a laptop computer, a server, a media player, or a navigation system. It may be an automotive device or the like.

도 25을 참조하면, 시스템(7000)은 메인 프로세서(main processor)(7100), 메모리(7200a, 7200b) 및 스토리지 장치(7300a, 7300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(7410), 사용자 입력 장치(user input device)(7420), 센서(7430), 통신 장치(7440), 디스플레이(7450), 스피커(7460), 전력 공급 장치(power supplying device)(7470) 및 연결 인터페이스(connecting interface)(7480) 중 하나 이상을 포함할 수 있다.Referring to FIG. 25 , a system 7000 may include a main processor 7100, memories 7200a and 7200b, and storage devices 7300a and 7300b, and additionally includes an image capturing device. 7410, user input device 7420, sensor 7430, communication device 7440, display 7450, speaker 7460, power supplying device 7470 and connections It may include one or more of the connecting interfaces 7480.

메인 프로세서(7100)는 시스템(7000)의 전반적인 동작, 보다 구체적으로는 시스템(7000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(7100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다. The main processor 7100 may control the overall operation of the system 7000, and more specifically, the operation of other components constituting the system 7000. The main processor 7100 may be implemented as a general-purpose processor, a dedicated processor, or an application processor.

메인 프로세서(7100)는 하나 이상의 CPU 코어(7110)를 포함할 수 있으며, 메모리(7200a, 7200b) 및/또는 스토리지 장치(7300a, 7300b)를 제어하기 위한 컨트롤러(7120)를 더 포함할 수 있다. 실시예에 따라서는, 메인 프로세서(7100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator)(7130)를 더 포함할 수 있다. 이와 같은 가속기(7130)는 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(7100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.The main processor 7100 may include one or more CPU cores 7110 and may further include a controller 7120 for controlling the memories 7200a and 7200b and/or the storage devices 7300a and 7300b. Depending on embodiments, the main processor 7100 may further include an accelerator 7130 that is a dedicated circuit for high-speed data operations such as artificial intelligence (AI) data operations. The accelerator 7130 may include a graphics processing unit (GPU), a neural processing unit (NPU), and/or a data processing unit (DPU), and may be physically independent from other components of the main processor 7100. It may be implemented as a separate chip.

메모리(7200a, 7200b)는 시스템(7000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(7200a, 7200b)는 메인 프로세서(7100)와 동일한 패키지 내에 구현되는 것도 가능하다.The memories 7200a and 7200b may be used as main memory devices of the system 7000 and may include volatile memories such as SRAM and/or DRAM, but may include nonvolatile memories such as flash memory, PRAM, and/or RRAM. may be The memories 7200a and 7200b may also be implemented in the same package as the main processor 7100 .

일 실시 예에서, 메모리(7200a, 7200b)는 도 1 내지 도 18을 참조하여 설명된 ECC 회로를 포함하는 메모리 장치일 수 있으며, 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로, 디코딩 상태 플래그(DSF)를 생성할 수 있다. In one embodiment, the memories 7200a and 7200b may be a memory device including the ECC circuit described with reference to FIGS. 1 to 18, and based on the method described with reference to FIGS. 1 to 18, the decoding state A flag (DSF) can be created.

스토리지 장치(7300a, 7300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(7200a, 7200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(7300a, 7300b)는 스토리지 컨트롤러(7310a, 7310b)와, 스토리지 컨트롤러(7310a, 7310b)의 제어 하에 데이터를 저장하는 비휘발성 메모리(non-volatile memory, NVM)(7320a, 7320b)를 포함할 수 있다. 비휘발성 메모리(7320a, 7320b)는 2D(2-dimensional) 구조 혹은 3D(3-dimensional) V-NAND(Vertical NAND) 구조의 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다. The storage devices 7300a and 7300b may function as non-volatile storage devices that store data regardless of whether or not power is supplied, and may have a relatively large storage capacity compared to the memories 7200a and 7200b. The storage devices 7300a and 7300b may include storage controllers 7310a and 7310b and non-volatile memories (NVMs) 7320a and 7320b that store data under the control of the storage controllers 7310a and 7310b. can The non-volatile memories 7320a and 7320b may include flash memory of a 2-dimensional (2D) structure or a 3-dimensional (3D) V-NAND (Vertical NAND) structure, but may include other types of memory such as PRAM and/or RRAM. It may also include non-volatile memory.

스토리지 장치(7300a, 7300b)는 메인 프로세서(7100)와는 물리적으로 분리된 상태로 시스템(7000)에 포함될 수도 있고, 메인 프로세서(7100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 스토리지 장치(7300a, 7300b)는 SSD(solid state device) 혹은 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(7480)와 같은 인터페이스를 통해 시스템(7000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 스토리지 장치(7300a, 7300b)는 UFS(Universal Flash Storage), eMMC(embedded multi-media card) 혹은 NVMe(non-volatile memory express)와 같은 표준 규약이 적용되는 장치일 수 있으나, 반드시 이에 한정되는 건 아니다.The storage devices 7300a and 7300b may be included in the system 7000 while being physically separated from the main processor 7100 or may be implemented in the same package as the main processor 7100 . In addition, the storage devices 7300a and 7300b have a form such as a solid state device (SSD) or a memory card, so that other components of the system 7000 can be accessed through an interface such as a connection interface 7480 to be described later. It may also be coupled to be detachable with the . The storage devices 7300a and 7300b may be devices to which standards such as UFS (Universal Flash Storage), eMMC (embedded multi-media card), or NVMe (non-volatile memory express) are applied, but are not necessarily limited thereto. It's not.

촬영 장치(7410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다. The photographing device 7410 may capture still images or moving images, and may be a camera, camcorder, and/or webcam.

사용자 입력 장치(7420)는 시스템(7000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keyboard), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.The user input device 7420 may receive various types of data input from a user of the system 7000, and may use a touch pad, a keypad, a keyboard, a mouse, and/or It may be a microphone or the like.

센서(7430)는 시스템(7000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(7430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 센서 등일 수 있다. The sensor 7430 can detect various types of physical quantities that can be acquired from the outside of the system 7000 and convert the detected physical quantities into electrical signals. The sensor 7430 may be a temperature sensor, a pressure sensor, an illuminance sensor, a position sensor, an acceleration sensor, a biosensor, and/or a gyroscope sensor.

통신 장치(7440)는 다양한 통신 규약에 따라 시스템(7000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(7440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.The communication device 7440 may transmit and receive signals with other devices outside the system 7000 according to various communication protocols. Such a communication device 7440 may be implemented by including an antenna, a transceiver, and/or a modem (MODEM).

디스플레이(7450) 및 스피커(7460)는 시스템(7000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.The display 7450 and the speaker 7460 may function as output devices that output visual information and auditory information to the user of the system 7000, respectively.

전력 공급 장치(7470)는 시스템(7000)에 내장된 배터리(도시 안함) 및/또는외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(7000)의 각 구성 요소들에게 공급할 수 있다.The power supply device 7470 may appropriately convert power supplied from a battery (not shown) and/or an external power source built into the system 7000 and supply the power to each component of the system 7000 .

연결 인터페이스(7480)는 시스템(7000)과, 시스템(7000)에 연결되어 시스템(7000과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(7480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe, IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC, UFS, eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다. The connection interface 7480 may provide a connection between the system 7000 and an external device connected to the system 7000 and capable of exchanging data with the system 7000. The connection interface 7480 is an Advanced Technology (ATA) Attachment), Serial ATA (SATA), external SATA (e-SATA), Small Computer Small Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnection (PCI), PCI express (PCIe), NVMe, IEEE 1394, It can be implemented in various interface methods such as USB (universal serial bus), SD (secure digital) card, MMC (multi-media card), eMMC, UFS, eUFS (embedded universal flash storage), CF (compact flash) card interface, etc. there is.

상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The foregoing are specific embodiments for carrying out the present invention. The present invention will include not only the above-described embodiments, but also embodiments that can be simply or easily changed in design. In addition, the present invention will also include techniques that can be easily modified and practiced using the embodiments. Therefore, the scope of the present invention should not be limited to the above-described embodiments and should not be defined by the following claims as well as those equivalent to the claims of this invention.

Claims (20)

메모리 장치에 있어서,
제1 데이터 및 제1 패리티 데이터를 저장하도록 구성된 메모리 셀 어레이;
상기 제1 데이터 및 제1 패리티 데이터를 기반으로 에러 정정 코드(Error Correction Code) 디코딩을 수행하여, 에러 정정된 데이터 및 디코딩 상태 플래그를 출력하도록 구성된 ECC 회로; 및
상기 에러 정정된 데이터 및 상기 디코딩 플래그를 메모리 컨트롤러로 제공하도록 구성된 입출력 회로를 포함하고,
상기 ECC 회로는:
상기 제1 데이터 및 제1 패리티 데이터를 기반으로 신드롬을 생성하도록 구성된 신드롬 생성기;
상기 신드롬을 디코딩하여 에러 벡터를 생성하도록 구성된 신드롬 디코딩 회로;
상기 에러 벡터 및 상기 제1 데이터를 기반으로, 상기 에러 정정된 데이터를 생성하도록 구성된 정정 로직 회로; 및
상기 에러 벡터 없이, 상기 신드롬을 기반으로 상기 디코딩 상태 플래그를 생성하도록 구성된 고속 디코딩 상태 플래그(DSF; decoding status flag) 생성기를 포함하는 메모리 장치.
In the memory device,
a memory cell array configured to store first data and first parity data;
an ECC circuit configured to perform error correction code decoding based on the first data and first parity data, and output error-corrected data and a decoding status flag; and
an input/output circuit configured to provide the error corrected data and the decoding flag to a memory controller;
The ECC circuit is:
a syndrome generator configured to generate a syndrome based on the first data and first parity data;
a syndrome decoding circuit configured to decode the syndrome to generate an error vector;
correction logic circuitry configured to generate the error corrected data based on the error vector and the first data; and
and a fast decoding status flag (DSF) generator configured to generate the decoding status flag based on the syndrome, without the error vector.
제 1 항에 있어서,
상기 신드롬 디코딩 회로 및 상기 고속 디코딩 상태 플래그 생성기는 병렬적으로 동작하는 메모리 장치.
According to claim 1,
wherein the syndrome decoding circuit and the fast decoding status flag generator operate in parallel.
제 1 항에 있어서,
상기 신드롬 디코딩 회로는 상기 신드롬을 패리티-체크 행렬의 각 열과 비교함으로써, 상기 에러 벡터를 생성하는 메모리 장치.
According to claim 1,
The memory device of claim 1 , wherein the syndrome decoding circuit generates the error vector by comparing the syndrome with each column of a parity-check matrix.
제 3 항에 있어서,
상기 고속 디코딩 상태 플래그 생성기는:
상기 신드롬이 all-zero인지 판별하여 신드롬 정보를 출력하도록 구성된 신드롬 체크 회로;
상기 신드롬을 패리티 행렬의 각 열과 비교함으로써, 제1 패리티 데이터의 에러를 판별하여 패리티 에러 정보를 출력하도록 구성된 패리티 에러 체크 회로;
상기 신드롬의 일부를 축약된-패리티 체크 행렬의 각 열과 비교함으로써, 상기 제1 데이터 또는 제1 패리티 데이터의 에러를 판별하여 데이터 에러 정보를 출력하도록 구성된 고속 데이터 에러 체크 회로; 및
상기 신드롬 정보, 상기 패리티 에러 정보, 및 상기 데이터 에러 정보를 기반으로 상기 디코딩 상태 플래그를 출력하도록 구성된 디코딩 상태 플래그 검출 회로를 포함하는 메모리 장치.
According to claim 3,
The fast decoding status flag generator is:
a syndrome check circuit configured to determine whether the syndrome is all-zero and output syndrome information;
a parity error check circuit configured to compare the syndrome with each column of a parity matrix to determine an error in the first parity data and output parity error information;
a high-speed data error check circuit configured to determine an error of the first data or first parity data by comparing a portion of the syndrome with each column of a reduced-parity check matrix and output data error information; and
and a decoding status flag detection circuit configured to output the decoding status flag based on the syndrome information, the parity error information, and the data error information.
제 4 항에 있어서,
상기 신드롬 정보가 상기 신드롬이 all-zero가 아님을 가리키고, 상기 패리티 에러 정보가 제1 패리티 데이터에 에러가 없음을 가리키고, 상기 데이터 에러 정보가 상기 제1 데이터 또는 제1 패리티 데이터의 에러가 없음을 가리키는 경우, 상기 디코딩 상태 플래그는 상기 제1 데이터에 정정할 수 없는 에러(uncorrectable error)가 있음을 가리키는 메모리 장치.
According to claim 4,
The syndrome information indicates that the syndrome is not all-zero, the parity error information indicates that there is no error in the first parity data, and the data error information indicates that there is no error in the first data or first parity data. When indicated, the decoding status flag indicates that the first data has an uncorrectable error.
제 4 항에 있어서,
상기 신드롬 정보가 상기 신드롬이 all-zero가 아님을 가리키고, 상기 패리티 에러 정보가 제1 패리티 데이터에 에러가 없음을 가리키고, 상기 데이터 에러 정보가 상기 제1 데이터 또는 제1 패리티 데이터의 에러가 없음을 가리키는 경우, 상기 디코딩 상태 플래그는 상기 제1 데이터에 정정할 수 없는 에러(uncorrectable error)가 있음을 가리키고,
상기 신드롬 정보가 상기 신드롬이 all-zero가 아님을 가리키고, 상기 패리티 에러 정보가 제1 패리티 데이터에 에러가 없음을 가리키지 않거나 또는 상기 데이터 에러 정보가 상기 제1 데이터 또는 제1 패리티 데이터의 에러가 없음을 가리키지 않는 경우, 상기 디코딩 상태 플래그는 상기 제1 데이터에 정정할 수 있는 에러(correctable error)가 있음을 가리키고,
상기 신드롬 정보가 상기 신드롬이 all-zero가 아님을 가리키지 않고, 상기 패리티 에러 정보가 제1 패리티 데이터에 에러가 없음을 가리키지 않거나 또는 상기 데이터 에러 정보가 상기 제1 데이터 또는 제1 패리티 데이터의 에러가 없음을 가리키지 않는 경우, 상기 디코딩 상태 플래그는 상기 제1 데이터에 에러가 포함되지 않음(non-error)을 가리키는 메모리 장치.
According to claim 4,
The syndrome information indicates that the syndrome is not all-zero, the parity error information indicates that there is no error in the first parity data, and the data error information indicates that there is no error in the first data or first parity data. When indicated, the decoding status flag indicates that there is an uncorrectable error in the first data;
If the syndrome information indicates that the syndrome is not all-zero and the parity error information does not indicate that there is no error in the first parity data, or the data error information indicates that the first data or an error in the first parity data If not indicating none, the decoding status flag indicates that there is a correctable error in the first data;
The syndrome information does not indicate that the syndrome is not all-zero, the parity error information does not indicate that there is no error in the first parity data, or the data error information does not indicate that the first data or the first parity data If it does not indicate that there is no error, the decoding status flag indicates that the first data does not contain an error (non-error).
제 4 항에 있어서,
상기 패리티 행렬은 n × n의 단위 행렬이고, 단 상기 n은 상기 신드롬에 포함된 비트들의 개수이고,
상기 축약된 패리티-체크 행렬은 상기 신드롬 디코딩 회로에 의해 사용되는 상기 패리티-체크 행렬의 일부 행들의 정보만 포함하는 메모리 장치.
According to claim 4,
The parity matrix is an n × n unit matrix, where n is the number of bits included in the syndrome,
The reduced parity-check matrix includes only information of some rows of the parity-check matrix used by the syndrome decoding circuit.
제 7 항에 있어서,
상기 제1 데이터는 128b이고, 제1 패리티 데이터는 8b이고, 상기 신드롬은 8b이고, 상기 패리티-체크 행렬은 8×128의 크기를 갖고, 상기 축약된 패리티 체크 행렬은 (8-log2m)×(128×m)의 크기를 갖고, 상기 m은 1보다 큰 정수인 메모리 장치.
According to claim 7,
The first data is 128b, the first parity data is 8b, the syndrome is 8b, the parity-check matrix has a size of 8×128, and the reduced parity check matrix is (8-log 2 m) A memory device having a size × (128 × m), where m is an integer greater than 1.
제 4 항에 있어서,
상기 패리티 행렬은 n × n의 단위 행렬이고, 단 상기 n은 상기 신드롬에 포함된 비트들의 개수이고,
상기 축약된 패리티-체크 행렬은 상기 신드롬 디코딩 회로에 의해 사용되는 상기 패리티-체크 행렬의 일부 행들에 포함되지 않는 정보만 포함하는 메모리 장치.
According to claim 4,
The parity matrix is an n × n unit matrix, where n is the number of bits included in the syndrome,
The reduced parity-check matrix includes only information not included in some rows of the parity-check matrix used by the syndrome decoding circuit.
제 9 항에 있어서,
상기 신드롬 정보가 상기 신드롬이 all-zero가 아님을 가리키고, 상기 패리티 에러 정보가 상기 신드롬이 상기 패리티 행렬의 모든 열과 다름을 가리키고, 상기 데이터 에러 정보가 상기 신드롬의 일부가 상기 축약된 패리티-체크 행렬의 적어도 하나의 열과 대응됨을 가리키는 경우, 상기 디코딩 상태 플래그는 상기 제1 데이터에 정정할 수 없는 에러(uncorrectable error)가 있음을 가리키고,
상기 신드롬 정보가 상기 신드롬이 all-zero가 아님을 가리키고, 상기 패리티 에러 정보가 상기 신드롬이 상기 패리티 행렬의 적어도 하나의 열과 대응됨을 가리키고, 상기 데이터 에러 정보가 상기 신드롬의 일부가 상기 축약된 패리티-체크 행렬의 적어도 하나의 열과 대응됨을 가리키는 경우, 상기 디코딩 상태 플래그는 상기 제1 데이터에 정정할 수 있는 에러(correctable error)가 있거나 또는 상기 제1 데이터에 에러가 포함되지 않음(non-error)을 가리키는 메모리 장치.
According to claim 9,
The syndrome information indicates that the syndrome is not all-zero, the parity error information indicates that the syndrome is different from all columns of the parity matrix, and the data error information indicates that a part of the syndrome is the reduced parity-check matrix. When indicating that it corresponds to at least one column of , the decoding status flag indicates that there is an uncorrectable error in the first data,
The syndrome information indicates that the syndrome is not all-zero, the parity error information indicates that the syndrome corresponds to at least one column of the parity matrix, and the data error information indicates that a part of the syndrome corresponds to the reduced parity- When indicating that it corresponds to at least one column of a check matrix, the decoding status flag indicates that the first data has a correctable error or that the first data does not contain an error (non-error). memory device pointed to.
제 1 항에 있어서,
상기 ECC 회로는:
베이시스 비트를 기반으로 상기 제1 데이터에 대한 상기 제1 패리티 데이터를 생성하도록 구성된 ECC 인코더를 더 포함하는 메모리 장치.
According to claim 1,
The ECC circuit is:
The memory device further comprising an ECC encoder configured to generate the first parity data for the first data based on a basis bit.
제 1 항에 있어서,
상기 메모리 컨트롤러로부터 커맨드 및 어드레스 신호들(CA; command/address)을 수신하고 버퍼링하도록 구성된 커맨드 및 어드레스 버퍼;
상기 커맨드 및 어드레스 버퍼로부터 어드레스 신호를 수신하고, 상기 어드레스 신호를 디코딩하도록 구성된 어드레스 디코더;
상기 커맨드 및 어드레스 디코더로부터 커맨드 신호를 수신하고, 상기 커맨드 신호를 디코딩하도록 구성된 커맨드 디코더;
상기 어드레스 디코더의 상기 어드레스 디코딩 결과에 따라, 상기 메모리 셀 어레이와 연결된 복수의 워드라인들을 제어하도록 구성된 행 디코더;
상기 어드레스 디코더의 상기 어드레스 디코딩 결과에 따라, 상기 메모리 셀 어레이와 연결된 복수의 비트라인들을 제어하도록 구성된 열 디코더; 및
상기 커맨드 디코더의 제어에 따라, 상기 메모리 셀 어레이에 상기 제1 데이터 및 상기 제1 패리티 데이터를 저장하거나, 또는 상기 상기 메모리 셀 에러이에 저장된 상기 제1 데이터 및 상기 제1 패리티 데이터를 독출하도록 구성된 감지 증폭기 및 쓰기 드라이버를 더 포함하는 메모리 장치.
According to claim 1,
a command and address buffer configured to receive and buffer command and address signals (CA) from the memory controller;
an address decoder configured to receive address signals from the command and address buffers and to decode the address signals;
a command decoder configured to receive a command signal from the command and address decoder and to decode the command signal;
a row decoder configured to control a plurality of word lines connected to the memory cell array according to a result of the address decoding by the address decoder;
a column decoder configured to control a plurality of bit lines connected to the memory cell array according to a result of the address decoding by the address decoder; and
Sense configured to store the first data and the first parity data in the memory cell array or read the first data and the first parity data stored in the memory cell error, under the control of the command decoder. A memory device further comprising an amplifier and a write driver.
메모리 장치에 저장된 제1 데이터 및 제1 패리티 데이터를 기반으로 상기 제1 데이터를 정정하도록 구성된 에러 정정 코드(ECC; error correction code) 회로에 있어서,
상기 메모리 장치로부터의 상기 제1 데이터 및 상기 제1 패리티 데이터를 기반으로 신드롬을 생성하도록 구성된 신드롬 생성기;
상기 신드롬을 패리티-체크 행렬의 각 열과 비교하여 에러 벡터를 생성하도록 구성된 신드롬 디코딩 회로;
상기 에러 벡터 및 상기 제1 데이터를 기반으로, 상기 에러 정정된 데이터를 생성하도록 구성된 정정 로직 회로; 및
상기 신드롬 및 축약된 패리티-체크 행렬을 기반으로 상기 에러 정정된 데이터에 대한 디코딩 상태를 가리키는 디코딩 상태 플래그를 생성하도록 구성된 고속 디코딩 상태 플래그(DSF; decoding status flag) 생성기를 포함하고,
상기 축약된 패리티-체크 행렬은 상기 패리티-체크 행렬의 일부 정보만 포함하는 ECC 회로.
An error correction code (ECC) circuit configured to correct first data based on first data and first parity data stored in a memory device,
a syndrome generator configured to generate a syndrome based on the first data from the memory device and the first parity data;
syndrome decoding circuitry configured to compare the syndrome with each column of a parity-check matrix to generate an error vector;
correction logic circuitry configured to generate the error corrected data based on the error vector and the first data; and
a high-speed decoding status flag (DSF) generator configured to generate a decoding status flag indicating a decoding status for the error corrected data based on the syndrome and a reduced parity-check matrix;
The reduced parity-check matrix includes only some information of the parity-check matrix.
제 13 항에 있어서,
상기 고속 디코딩 상태 플래그 생성기는 상기 신드롬 디코딩 회로 및 상기 정정 로직 회로와 병렬적으로 동작하는 ECC 회로.
According to claim 13,
wherein the fast decoding status flag generator operates in parallel with the syndrome decoding circuit and the correction logic circuit.
제 13 항에 있어서,
상기 패리티-체크 행렬은 a × b의 크기를 갖고, 단, 상기 a 및 b 각각은 자연수이고,
상기 축약된 패리티-체크 행렬은 c × d의 크기를 갖고, 단, 상기 c는 상기 a보다 작은 자연수이고, 상기 d는 상기 d보다 작은 자연수이고,
상기 축약된 패리티-체크 행렬의 상기 c개의 행들은, 상기 패리티-체크 행렬의 상기 a개의 행들 중 제1 부분 행들에 대한 정보를 포함하고, 상기 제1 부분 행들의 개수는 상기 c개인 ECC 회로.
According to claim 13,
The parity-check matrix has a size of a × b, where each of a and b is a natural number,
The reduced parity-check matrix has a size of c × d, where c is a natural number smaller than a, and d is a natural number smaller than d;
The c rows of the reduced parity-check matrix include information on first partial rows among the a rows of the parity-check matrix, and the number of the first partial rows is c. ECC circuit.
제 13 항에 있어서,
상기 고속 디코딩 상태 플래그 생성기는:
상기 신드롬이 all-zero인지 판별하여 신드롬 정보를 출력하도록 구성된 신드롬 체크 회로;
상기 신드롬을 패리티 행렬의 각 열과 비교함으로써, 제1 패리티 데이터의 에러를 판별하여 패리티 에러 정보를 출력하도록 구성된 패리티 에러 체크 회로;
상기 신드롬의 일부를 상기 축약된-패리티 체크 행렬의 각 열과 비교함으로써, 상기 제1 데이터 또는 제1 패리티 데이터의 에러를 판별하여 데이터 에러 정보를 출력하도록 구성된 고속 데이터 에러 체크 회로; 및
상기 신드롬 정보, 상기 패리티 에러 정보, 및 상기 데이터 에러 정보를 기반으로 상기 디코딩 상태 플래그를 출력하도록 구성된 디코딩 상태 플래그 검출 회로를 포함하는 메모리 장치.
According to claim 13,
The fast decoding status flag generator is:
a syndrome check circuit configured to determine whether the syndrome is all-zero and output syndrome information;
a parity error check circuit configured to compare the syndrome with each column of a parity matrix to determine an error in the first parity data and output parity error information;
a high-speed data error check circuit configured to determine an error in the first data or first parity data by comparing a portion of the syndrome with each column of the reduced-parity check matrix and output data error information; and
and a decoding status flag detection circuit configured to output the decoding status flag based on the syndrome information, the parity error information, and the data error information.
제 13 항에 있어서,
상기 제1 데이터가 상기 메모리 장치에 저장되기 전에, 베이시스 비트를 기반으로 상기 제1 데이터에 대한 상기 제1 패리티 데이터를 생성하도록 구성된 ECC 인코더를 더 포함하는 ECC 회로.
According to claim 13,
The ECC circuit further comprising an ECC encoder configured to generate the first parity data for the first data based on a basis bit before the first data is stored in the memory device.
제 13 항에 있어서,
상기 ECC 회로는 상기 메모리 장치 내에 포함된 OD-ECC(on-die ECC) 회로인 ECC 회로.
According to claim 13,
The ECC circuit is an on-die ECC (OD-ECC) circuit included in the memory device.
메모리 장치에 저장된 제1 데이터 및 제1 패리티 데이터를 기반으로 상기 제1 데이터를 정정하도록 구성된 에러 정정 코드(ECC; error correction code) 회로의 동작 방법에 있어서,
상기 제1 데이터 및 상기 제1 패리티 데이터를 기반으로, 신드롬을 생성하는 단계;
상기 신드롬 및 패리티-체크 행렬을 기반으로 에러 벡터를 생성하는 단계;
상기 에러 벡터 및 상기 제1 데이터에 대한 로직 연산을 수행하여, 에러 정정된 데이터를 생성하는 단계;
상기 신드롬 및 축약된 패리티-체크 행렬을 기반으로 디코딩 상태 플래그를 생성하는 단계; 및
상기 에러 정정된 데이터 및 상기 디코딩 상태 플래그를 메모리 컨트롤러로 전송하는 단계를 포함하고,
상기 에러 벡터를 생성하는 단계 및 상기 디코딩 상태 플래그를 생성하는 단계는 병렬적으로 수행되는 동작 방법.
A method of operating an error correction code (ECC) circuit configured to correct first data based on first data and first parity data stored in a memory device,
generating a syndrome based on the first data and the first parity data;
generating an error vector based on the syndrome and the parity-check matrix;
generating error-corrected data by performing a logic operation on the error vector and the first data;
generating a decoding status flag based on the syndrome and the reduced parity-check matrix; and
Transmitting the error-corrected data and the decoding status flag to a memory controller;
The generating of the error vector and the generating of the decoding status flag are performed in parallel.
제 19 항에 있어서,
상기 신드롬 및 축약된 패리티-체크 행렬을 기반으로 디코딩 상태 플래그를 생성하는 단계는:
상기 신드롬이 all-zero인지 판별하여, 신드롬 정보를 생성하는 단계;
상기 신드롬을 패리티 행렬의 각 열과 비교하여, 상기 제1 패리티 데이터의 에러에 대한 정보를 포함하는 패리티 에러 정보를 생성하는 단계;
상기 신드롬의 일부를 상기 축약된 패리티-체크 행렬의 각 열과 비교하여, 상기 제1 데이터의 에러 또는 상기 제1 패리티 데이터의 에러에 대한 정보를 포함하는 데이터 에러 정보를 생성하는 단계; 및
상기 신드롬 정보, 상기 패리티 에러 정보, 및 상기 데이터 에러 정보를 기반으로, 상기 디코딩 상태 플래그를 생성하는 단계를 포함하고,
상기 신드롬 정보가 상기 신드롬이 all-zero가 아님을 가리키고, 상기 패리티 에러 정보가 제1 패리티 데이터에 에러가 없음을 가리키고, 상기 데이터 에러 정보가 상기 제1 데이터 또는 제1 패리티 데이터의 에러가 없음을 가리키는 경우, 상기 디코딩 상태 플래그는 상기 제1 데이터에 정정할 수 없는 에러(uncorrectable error)가 있음을 가리키는 동작 방법.



According to claim 19,
Generating a decoding status flag based on the syndrome and the reduced parity-check matrix comprises:
determining whether the syndrome is all-zero and generating syndrome information;
generating parity error information including information about an error of the first parity data by comparing the syndrome with each column of a parity matrix;
comparing a part of the syndrome with each column of the reduced parity-check matrix to generate data error information including an error of the first data or information about an error of the first parity data; and
generating the decoding state flag based on the syndrome information, the parity error information, and the data error information;
The syndrome information indicates that the syndrome is not all-zero, the parity error information indicates that there is no error in the first parity data, and the data error information indicates that there is no error in the first data or first parity data. If indicated, the decoding status flag indicates that there is an uncorrectable error in the first data.



KR1020220049463A 2021-11-25 2022-04-21 Error correction code circuit, memory device including error correction code, and operation method of error correction code KR20230077606A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/988,140 US20230163786A1 (en) 2021-11-25 2022-11-16 Error correction code circuit, memory device including error correction code circuit, and operation method of error correction code circuit
TW111144487A TW202329147A (en) 2021-11-25 2022-11-22 Memory device, error correction code circuit and operation method thereof
CN202211471281.XA CN116168754A (en) 2021-11-25 2022-11-23 Error correction code circuit, memory device including the same, and method of operating the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210164956 2021-11-25
KR20210164956 2021-11-25

Publications (1)

Publication Number Publication Date
KR20230077606A true KR20230077606A (en) 2023-06-01

Family

ID=86770676

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220049463A KR20230077606A (en) 2021-11-25 2022-04-21 Error correction code circuit, memory device including error correction code, and operation method of error correction code

Country Status (1)

Country Link
KR (1) KR20230077606A (en)

Similar Documents

Publication Publication Date Title
US10580719B2 (en) Semiconductor memory device providing analysis and correcting of soft data fail in stacked chips
CN107133122B (en) Memory control method
US8934301B2 (en) Memory controller for multi-level memory device and error correcting method
US10803971B2 (en) Device for supporting error correction code and test method thereof
US11550659B2 (en) Controller and memory system
CN106648954B (en) Memory device and system including on-chip error correction code circuit
JP5541792B2 (en) Semiconductor memory device and data processing method thereof
CN111327331A (en) Error correction code circuit, semiconductor memory device, and memory system
US9904491B2 (en) Memory device, memory system, and method of operating the device
US20120144261A1 (en) Error checking and correcting circuit, memory system compising error checking and correcting circuit, and related methods of operation
US10162703B2 (en) Methods of correcting data errors and semiconductor devices used therein
CN112527549A (en) Memory controller and memory system including the same
KR20180086816A (en) Memory device and electronic device performing adaptive error correction with pre-checking error rate and method of operating the memory device
US20160371028A1 (en) Method and apparatus for partial page compression
US11726665B1 (en) Memory extension with error correction
US20230163786A1 (en) Error correction code circuit, memory device including error correction code circuit, and operation method of error correction code circuit
US11101822B1 (en) Data writing method, memory control circuit unit and memory storage apparatus
US10186302B2 (en) Semiconductor systems performing double-write operations and methods of operating the same
CN108665940B (en) ECC encoding circuit, decoding circuit and memory controller
KR20230077606A (en) Error correction code circuit, memory device including error correction code, and operation method of error correction code
KR20160050961A (en) Memory device which corrects error and method of correcting error
CN115732016A (en) Memory device, memory controller and method of correcting data errors
CN111796774B (en) Memory control method, memory storage device and memory controller
EP4202939A1 (en) Memory system and method of operating the same
US20240097709A1 (en) Error correction code decoder using constacyclic code, and memory device and memory system including the same