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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection 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
본 발명은 반도체 메모리에 관한 것으로 좀 더 상세하게는, 메모리 장치 및 메모리 장치의 에러 정정 코드 디코딩 방법에 관한 것이다. 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
25 is a diagram illustrating a
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.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
메모리 컨트롤러(11)는 메모리 장치(100)에 데이터를 저장하거나 또는 메모리 장치(100)에 저장된 데이터를 독출할 수 있다. 예를 들어, 메모리 컨트롤러(11)는 메모리 장치(100)로 클럭 신호(CK) 및 커맨드/어드레스 신호(CA)를 전송하고, 메모리 장치(100)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고 받을 수 있다. 일 실시 예에서, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 데이터(DATA)가 메모리 컨트롤러(11)로부터 메모리 장치(100)로 전송되거나, 또는 메모리 장치(100)로부터 메모리 컨트롤러(11)로 전송될 수 있다. 일 실시 예에서, 메모리 컨트롤러(11) 및 메모리 장치(100)는 DDR 인터페이스 또는 LPDDR 인터페이스 등을 기반으로 서로 통신할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. The
메모리 장치(100)는 메모리 컨트롤러(11)의 제어에 따라 동작할 수 있다. 일 실시 예에서, 메모리 장치(100)는 DRAM(dynamic random access memory) 장치일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니며, 메모리 장치(100)는 SRAM 등과 같은 휘발성 메모리 또는 플래시 메모리, PRAM 및/또는 RRAM 등의 불휘발성 메모리를 포함할 수 있다. The
일 실시 예에서, 메모리 장치(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
일 실시 예에서, ECC 회로(110)는 미리 정해진 에러 정정 능력 이내의 에러를 정정할 수 있다. 데이터에서 발생한 에러가 ECC 회로(110)의 에러 정정 능력을 초과하는 경우, 데이터에서 발생한 에러가 정상적으로 정정되지 않는다. In one embodiment, the
메모리 컨트롤러(11)는 메모리 장치(100)로부터 수신된 읽기 데이터가 정정 불가능한 에러를 포함하는지 또는 정상 데이터(예를 들어, 에러가 발생하지 않은 데이터, 또는 에러가 정상적으로 정정된 데이터)인지를 판별하기 위한 정보를 필요로 한다. 이를 위해, ECC 회로(110)는 디코딩 상태 플래그(DSF; decoding status flag)를 메모리 컨트롤러(11)로 전송할 수 있다. 디코딩 상태 플래그(DSF)는 메모리 컨트롤러(11)로 전송되는 데이터가 UE 데이터인지 또는 정상 데이터인지를 가리키는 정보이다. ECC 디코딩 상태 플래그(DSF)는 ECC 회로(110)의 ECC 디코딩 과정에서 생성될 수 있다.The
일 실시 예에서, ECC 회로(110)는 ECC 디코딩 과정 중 생성되는 신드롬만 사용하여, 디코딩 상태 플래그(DSF)를 생성할 수 있다. 이 경우, 디코딩 상태 플래그(DSF)를 생성하는데 요구되는 시간이 단축될 수 있다. 본 발명에 따른 ECC 회로(110)의 구성 및 디코딩 상태 플래그(DSF) 생성 방법은 이하의 도면들을 참조하여 더욱 상세하게 설명된다.In one embodiment, the
도 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
ECC 회로(110)는 메모리 셀 어레이(120)에 저장될 데이터에 대한 ECC 인코딩을 수행하여, 패리티 데이터를 생성할 수 있다. 또는 ECC 회로(110)는 메모리 셀 어레이(120)로부터 독출된 데이터 및 패리티 데이터를 기반으로 ECC 디코딩을 수행하여, 데이터의 에러를 정정할 수 있다. ECC 회로(110)의 구성 및 동작은 이하의 도면들을 참조하여 더욱 상세하게 설명된다. The
메모리 셀 어레이(120)는 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들 각각은 복수의 워드라인들 및 복수의 비트라인들과 연결될 수 있다. 일 실시 예에서, 복수의 워드라인들은 X-디코더(또는 행 디코더)(X-DED)에 의해 구동될 수 있고, 복수의 비트라인들은 Y-디코더(또는 열 디코더)(Y-DEC)에 의해 구동될 수 있다. The
CA 버퍼(130)는 커맨드/어드레스 신호들(CA)을 수신하고, 수신된 신호들을 임시 저장 또는 버퍼링하도록 구성될 수 있다. The
어드레스 디코더(140)는 CA 버퍼(130)에 저장된 어드레스 신호들(ADDR)을 디코딩할 수 있다. 어드레스 디코더(140)는 디코딩 결과를 기반으로, X-디코더 및 Y-디코더를 제어할 수 있다.The
커맨드 디코더(150)는 CA 버퍼(130)에 저장된 커맨드(CMD)를 디코딩할 수 있다. 커맨드 디코더(150)는 디코딩된 결과를 기반으로, 메모리 장치(100)의 구성 요소들을 제어할 수 있다. 예를 들어, CA 버퍼(130)에 저장된 커맨드 신호가 쓰기 커맨드인 경우(즉, 메모리 컨트롤러(11)로부터 수신된 커맨드가 쓰기 커맨드인 경우), 커맨드 디코더(150)는 입출력 회로(116)를 통해 수신된 데이터(DATA)가 메모리 셀 어레이(120)에 기입되도록 ECC 회로(110)를 제어(즉, ECC 인코딩을 수행)하고, 감지 증폭기 및 쓰기 드라이버(160)의 동작을 제어(즉, 쓰기 드라이버를 활성화시킴)할 수 있다. The
또는, CA 버퍼(130)에 저장된 커맨드 신호가 읽기 커맨드인 경우(즉, 메모리 컨트롤러(11)로부터 수신된 커맨드가 읽기 커맨드인 경우), 커맨드 디코더(150)는 메모리 셀 어레이(120)에 저장된 데이터가 독출되도록, ECC 회로(110)를 제어(즉, ECC 디코딩을 수행)하고, 감지 증폭기 및 쓰기 드라이버(160)의 동작을 제어(즉, 감지 증폭기를 활성화시킴)할 수 있다.Alternatively, when the command signal stored in the
감지 증폭기 및 쓰기 드라이버(160)는 커맨드 디코더(150)의 제어에 따라, 복수의 비트라인들을 통해 메모리 셀 어레이(120)로부터 데이터를 독출하거나 또는 메모리 셀 어레이(120)에 데이터를 기입할 수 있다.The sense amplifier and write
입출력 회로(170)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 기반으로, 메모리 컨트롤러(11)로부터 데이터(DATA)를 수신하거나 또는 메모리 컨트롤러(11)로 데이터(DATA)를 전송할 수 있다. 일 실시 예에서, 입출력 회로(170)는 ECC 회로(110)로부터 디코딩 상태 플래그(DSF)를 수신하고, 디코딩 상태 플래그(DSF)를 메모리 컨트롤러(11)로 전송할 수 있다. 일 실시 예에서, 디코딩 상태 플래그(DSF)는 데이터 신호(DQ)를 통해 메모리 컨트롤러(11)로 전송될 수 있다. 또는 디코딩 상태 플래그(DSF)는 다양한 제어 신호들(예를 들어, DBI, DMI 등) 또는 다른 전용 신호를 통해 메모리 컨트롤러(11)로 전송될 수 있다. The input/
도 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
도 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 디코더(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
도 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
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
일 실시 예에서, 신드롬 디코딩 회로(112)는 패리티-체크 행렬(parity-check matrix)(이하에서, "H-행렬"이라 칭함.) 및 신드롬(SYD)을 비교함으로써, 읽기 데이터(RDT)에서 에러가 발생한 위치를 검출할 수 있다. 에러 벡터(ERV)는 128b의 크기(즉, 읽기 데이터(RDT)와 동일한 크기)를 가질 수 있으며, 읽기 데이터(RDT)에서 에러가 발생한 위치에 대한 정보를 포함할 수 있다.In an embodiment, the
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
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
좀 더 상세한 예로서, 도 4c에 도시된 바와 같이, DSF 생성기(114)는 데이터 에러 체크 회로(114a), 신드롬 체크 회로(114b), 패리티 에러 체크 회로(114c), 및 디코딩 상태 플래그 검출 회로(114d)를 포함할 수 있다.As a more detailed example, as shown in FIG. 4C, the
데이터 에러 체크 회로(114a)는 에러 벡터(ERV)를 기반으로 읽기 데이터(RDT)에 에러가 포함되었는지를 가리키는 에러 정보(err)를 생성할 수 있다. 일 실시 예에서, 데이터 에러 체크 회로(114a)는 에러 벡터(EVR)의 각 비트들 중 적어도 하나가 "1"인지를 판별함으로써, 에러 정보(err)를 생성할 수 있다. 일 실시 예에서, 에러 정보(err)의 값이 "0"인 것은 읽기 데이터(RDT)에 에러가 없음을 가리키고, 에러 정보(err)의 값이 "1"인 것은 읽기 데이터(RDT)에 에러가 있음을 가리킬 수 있다. The data
신드롬 체크 회로(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
패리티 에러 체크 회로(114c)는 패리티 데이터(PRT)에 에러가 포함되었는지를 기반으로 패리티 에러 정보(PRT_ERR)를 출력할 수 있다. 일 실시 예에서, 패리티 에러 체크 회로(114c)는 n × n의 단위 행렬(identity matrix) 및 신드롬(SYD)을 기반으로 패리티 에러 정보(PRT_ERR)를 생성할 수 있다. 단, n은 신드롬(SYD)의 크기(즉, 비트 수)와 같음.The parity
디코딩 상태 플래그 검출 회로(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
좀 더 상세한 예로서, 에러 정보(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
일 실시 예에서, 도 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
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
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
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
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
예를 들어, 도 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
일 실시 예에서, 도 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 생성기(115)는 에러 벡터(ERV) 없이, 신드롬(SYD)만 사용하여, 디코딩 상태 플래그(DSF)를 생성할 수 있다. 따라서, 디코딩 상태 플래그(DSF)를 생성하는 동작이, 신드롬 디코딩 동작과 병렬적으로 수행됨으로써, ECC 디코더(ECC-DEC-1)의 전체적인 지연시간이 감소될 수 있다. As described above, the
예를 들어, 도 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-
도 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
일 실시 예에서, 도 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
먼저, 도 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
일 실시 예에서, 신드롬(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
그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 고속 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
신드롬(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
다시 말해서, 도 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
도 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
일 실시 예에서, 패리티 데이터(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
좀 더 상세한 예로서, 제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
일 실시 예에서, 패리티 에러 정보(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
일 실시 예에서, 데이터에 에러가 존재하는지 여부는 도 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
좀 더 상세한 예로서, 제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), "
즉, 복수의 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
일 실시 예에서, 데이터 에러 정보(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 검출 회로(115d)는 OR 게이트, INV 게이트들, 및 AND 게이트들을 포함할 수 있다. DST 검출 회로(115d)는 OR 게이트, INV 게이트들, 및 AND 게이트를 통해, 신드롬 정보(SYD_0) 및 패리티 에러 정보(PR_ERR)에 대한 OR 연산을 수행하고, OR 연산의 결과의 반전 값 및 데이터 에러 정보(DT_ERR)의 반전 값에 대한 AND 연산을 수행함으로써, 디코딩 상태 플래그(DSF)를 생성할 수 있다.The
생성된 디코딩 상태 플래그(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
상술된 바와 같이, 본 발명에 따르면 고속 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
도 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
도 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
도 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 검출 회로(115d-1)는 2b의 디코딩 상태 플래그(DSF)를 생성함으로써, 디코딩 결과(예를 들어, UE, CE, 및 NE)를 메모리 컨트롤러(11)로 알릴 수 있다. As described above, the
도 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
반면에, 도 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
예를 들어, 제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
일 실시 예에서, 데이터 에러 정보(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 검출 회로(115d-2)는 제2 AND 게이트를 통해, 제1 AND 게이트의 출력 및 제2 INV 게이트의 출력에 대한 AND 연산을 수행하여, 디코딩 상태 정보(DSF)를 생성할 수 있다. 디코딩 상태 정보(DSF)가 "1"인 것은, 디코딩 상태가 UE임을 가리키고, 디코딩 상태 정보(DSF)가 "0"인 것은 디코딩 상태가 NE 또는 CE 임을 가리킬 수 있다.The
예를 들어, 디코딩 상태 정보(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
상술된 바와 같이, 본 발명에 따른 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
일 실시 예에서, 상술된 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
도 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
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
일 실시 예에서, 축약된 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
일 실시 예에서, 메모리 컨트롤러(1100) 및 메모리 장치(1300) 사이의 데이터 경로에, ECC 회로(1200)가 위치할 수 있다. ECC 회로(1200)는 메모리 컨트롤러(110) 및 메모리 장치(1300) 사이에서 송수신되는 데이터의 에러를 정정하도록 구성될 수 있다. 일 실시 예에서, ECC 회로(1200)는 도 1 내지 도 18을 참조하여 설명된 동작 방법을 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다. In an embodiment, the
도 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
도 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
메모리 장치(3200)는 메모리 ECC 회로(3210)를 포함할 수 있다. 메모리 ECC 회로(3210)는 메모리 컨트롤러(3100)로부터 수신된 쓰기 데이터 및 제1 패리티에 대한 제2 패리티를 생성하고, 메모리 장치(3200)에 저장된 읽기 데이터 및 제1 패리티, 및 제2 패리티를 기반으로 읽기 데이터 및 제1 패리티의 에러를 정정할 수 있다.The
일 실시 예에서, 컨트롤러 ECC 회로(3110) 및 메모리 ECC 회로(3210) 각각은 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로 디코딩 상태 필드(DSF)를 생성할 수 있다. In one embodiment, each of the
일 실시 예에서, 도 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
도 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
일 실시 예에서, 메모리 패키지(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
버퍼 다이(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
도 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
도 24는 본 발명에 따른 메모리 장치가 적용된 메모리 모듈(6000)을 예시적으로 보여주는 블록도이다. 도 24를 참조하면, 메모리 모듈(6000)은 RCD(6100)(Register Clock Driver), 복수의 메모리 장치들(6210~6290), 및 복수의 데이터 버퍼들(DB)을 포함할 수 있다.24 is a block diagram exemplarily showing a
RCD(6100)는 외부 장치(예를 들어, 호스트 또는 메모리 컨트롤러))로부터 커맨드/어드레스(CA) 및 클럭 신호(CK)를 수신할 수 있다. RCD(6100)는 수신된 신호들을 기반으로, 커맨드/어드레스(CA)를 복수의 메모리 장치들(6210~6290)로 전달하고, 복수의 데이터 버퍼들(DB)을 제어할 수 있다. The
복수의 메모리 장치들(6210~6290) 각각은 메모리 데이터 라인들(MDQ)을 통해 복수의 데이터 버퍼들(DB)과 각각 연결될 수 있다.Each of the plurality of
일 실시 예에서, 복수의 메모리 장치들(6210~6290) 각각은 도 1 내지 도 18을 참조하여 설명된 ECC 회로를 포함하고, 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다. 복수의 데이터 버퍼들(DB)은 복수의 데이터 라인들(DQ)을 통해 외부 장치(예를 들어, 호스트 또는 메모리 컨트롤러)와 데이터를 송수신할 수 있다. In one embodiment, each of the plurality of
일 실시 예에서, 도 24에 도시된 메모리 모듈(6000)은 LR-DIMM(Load Reduced Dual In-line Memory Module)의 폼 팩터일 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 메모리 모듈(6000)은 복수의 데이터 버퍼들(DB)이 생략된 RDIMM(Registered DIMM)의 폼 팩터를 가질 수 있다.In one embodiment, the
일 실시 예에서, 메모리 모듈(6000)은 복수의 메모리 장치들(6210~6290) 외부에 위치한 ECC 회로를 더 포함할 수 있고, 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로 디코딩 상태 플래그(DSF)를 생성하도록 구성될 수 있다.In one embodiment, the
일 실시 예에서, 복수의 메모리 장치들(6210~6290) 중 어느 하나는 패리티 데이터를 저장하도록 구성될 수 있다. 패리티 데이터는 외부 장치(예를 들어, 호스트 또는 메모리 컨트롤러)로부터 제공될 수 있으며, 이 경우, 외부 장치는 도 1 내지 도 18을 참조하여 설명된 ECC 회로를 포함하거나 또는 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로 디코딩 상태 플래그(DSF)를 생성할 수 있다.In one embodiment, any one of the plurality of
도 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
도 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
메인 프로세서(7100)는 시스템(7000)의 전반적인 동작, 보다 구체적으로는 시스템(7000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(7100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다. The
메인 프로세서(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
메모리(7200a, 7200b)는 시스템(7000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(7200a, 7200b)는 메인 프로세서(7100)와 동일한 패키지 내에 구현되는 것도 가능하다.The
일 실시 예에서, 메모리(7200a, 7200b)는 도 1 내지 도 18을 참조하여 설명된 ECC 회로를 포함하는 메모리 장치일 수 있으며, 도 1 내지 도 18을 참조하여 설명된 방법을 기반으로, 디코딩 상태 플래그(DSF)를 생성할 수 있다. In one embodiment, the
스토리지 장치(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
스토리지 장치(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
촬영 장치(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
센서(7430)는 시스템(7000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(7430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 센서 등일 수 있다. The
통신 장치(7440)는 다양한 통신 규약에 따라 시스템(7000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(7440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.The
디스플레이(7450) 및 스피커(7460)는 시스템(7000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.The
전력 공급 장치(7470)는 시스템(7000)에 내장된 배터리(도시 안함) 및/또는외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(7000)의 각 구성 요소들에게 공급할 수 있다.The
연결 인터페이스(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
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.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.
상기 신드롬 디코딩 회로 및 상기 고속 디코딩 상태 플래그 생성기는 병렬적으로 동작하는 메모리 장치.
According to claim 1,
wherein the syndrome decoding circuit and the fast decoding status flag generator operate in parallel.
상기 신드롬 디코딩 회로는 상기 신드롬을 패리티-체크 행렬의 각 열과 비교함으로써, 상기 에러 벡터를 생성하는 메모리 장치.
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.
상기 고속 디코딩 상태 플래그 생성기는:
상기 신드롬이 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.
상기 신드롬 정보가 상기 신드롬이 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.
상기 신드롬 정보가 상기 신드롬이 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).
상기 패리티 행렬은 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.
상기 제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.
상기 패리티 행렬은 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.
상기 신드롬 정보가 상기 신드롬이 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.
상기 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.
상기 메모리 컨트롤러로부터 커맨드 및 어드레스 신호들(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 데이터를 기반으로, 상기 에러 정정된 데이터를 생성하도록 구성된 정정 로직 회로; 및
상기 신드롬 및 축약된 패리티-체크 행렬을 기반으로 상기 에러 정정된 데이터에 대한 디코딩 상태를 가리키는 디코딩 상태 플래그를 생성하도록 구성된 고속 디코딩 상태 플래그(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.
상기 고속 디코딩 상태 플래그 생성기는 상기 신드롬 디코딩 회로 및 상기 정정 로직 회로와 병렬적으로 동작하는 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.
상기 패리티-체크 행렬은 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.
상기 고속 디코딩 상태 플래그 생성기는:
상기 신드롬이 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.
상기 제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.
상기 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 데이터에 대한 로직 연산을 수행하여, 에러 정정된 데이터를 생성하는 단계;
상기 신드롬 및 축약된 패리티-체크 행렬을 기반으로 디코딩 상태 플래그를 생성하는 단계; 및
상기 에러 정정된 데이터 및 상기 디코딩 상태 플래그를 메모리 컨트롤러로 전송하는 단계를 포함하고,
상기 에러 벡터를 생성하는 단계 및 상기 디코딩 상태 플래그를 생성하는 단계는 병렬적으로 수행되는 동작 방법.
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.
상기 신드롬 및 축약된 패리티-체크 행렬을 기반으로 디코딩 상태 플래그를 생성하는 단계는:
상기 신드롬이 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.
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) |
-
2022
- 2022-04-21 KR KR1020220049463A patent/KR20230077606A/en unknown
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 |