# US 2020/0394102 A1 · Semiconductor memory devices having enhanced error correction circuits therein

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0394102 A1
- Document ID: US20200394102A1
- Status: Published application
- Kind: A1
- Application number: 16/711,557
- Filed: 2019-12-12
- Published: 2020-12-17
- Earliest claimed: 2019-06-12
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Sanguhn Cha; Yesin Ryu
- Web page: https://patentgrep.com/patent/US20200394102A1

## CPC

- G06F 11/1068: {in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence)}
- H03M 13/05: using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits {(H03M13/2906 takes precedence)}
- G06F 11/1048: {using arrangements adapted for a specific error detection or correction feature}
- H03M 13/1575: {Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance}
- H03M 13/2906: {using block codes (H03M13/2957 takes precedence)}
- H10W 90/00: Package configurations
- H03M 13/19: Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
- H10W 90/297: {characterised by the through-semiconductor vias [TSVs] in the stacked chips}
- H10W 90/722: {between stacked chips}
- H10W 90/724: {between a chip and a stacked insulating package substrate, interposer or RDL}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- H10W: GENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10

## Abstract

An error correction circuit includes an error correction code (ECC) memory and an ECC engine. The ECC memory stores an ECC, which is at least partially represented by a generation matrix. The ECC engine generates parity data based on main data using the ECC, and detects and/or corrects at least one error bit in the main data read from the memory cell array using the parity data. The main data includes a plurality of data bits divided into a plurality of sub data units. The ECC includes a plurality of column vectors divided into a plurality of code groups corresponding to the sub data units. The column vectors have elements configured to gather a mis-corrected bit and multiple error bits in one symbol and the mis-corrected bit is generated due to the multiple error bits in the main data.

## Claims

### Claim 1

An error correction circuit, comprising:
an error correction code (ECC) memory configured to store an ECC represented by a generation matrix; and
an ECC engine configured to generate parity data from main data using the ECC, and to use the parity data to detect and/or correct at least one error bit in the main data;
wherein the main data includes a plurality of data bits divided into a plurality of sub data units;
wherein the ECC includes a plurality of column vectors divided into a plurality of code groups corresponding to respective ones of the sub data units;
wherein the column vectors have elements configured to gather a mis-corrected bit and multiple error bits in one symbol; and
wherein the mis-corrected bit is generated when the multiple error bits are present in the main data.

### Claim 2 (depends on 1)

The error correction circuit of claim 1, wherein the one symbol includes one of the sub data units or two adjacent sub data units of the sub data units; wherein the multiple error bits include odd error bits; and wherein the column vectors have elements configured to place the mis-corrected bit in a sub data unit including the multiple error bits.

### Claim 3 (depends on 1)

The error correction circuit of claim 1, wherein the multiple error bits include a first error bit, a second error bit and a third error bit; wherein when a first sub data unit of the sub data units includes the first error bit, the second error bit and the third error bit, a first code group corresponding to the first sub data unit includes a plurality of first column vectors; and wherein the plurality of first column vectors are configured such that a result of a bit-wise exclusive OR operation on three different column vectors of the first column vectors matches one of the column vectors of the first column vectors except the three different column vectors.

### Claim 4 (depends on 1)

The error correction circuit of claim 1,
wherein the multiple error bits include a first error bit, a second error bit and a third error bit;
wherein when a first sub data unit and a second sub data unit of the sub data units includes the first error bit, the second error bit and the third error bit, a first code group of the plurality of code groups, corresponding to the first sub data unit, includes a plurality of second column vectors, and a second code group of the plurality of code groups, corresponding to the second sub data unit, includes a plurality of second column vectors; and
wherein the plurality of first column vectors and the plurality of second column vectors are configured such that a result of a bit-wise exclusive OR operation on three different column vectors of the first column vectors and the second column vectors matches one of column vectors of the first column vectors and the second column vectors except the three different column vectors.

### Claim 5 (depends on 1)

The error correction circuit of claim 1, wherein the main data includes 2p-bits of the data bits, wherein p is an integer equal to or greater than six; wherein the parity data includes (p+2)-bit parity bits; wherein the ECC is a single error correction and double error detection (SECDED) code; wherein the sub data units include first through eighth sub data units, and each of the first through eighth sub data units includes (p+2) bits; and wherein the code groups include first through eighth code groups corresponding to the first through eighth sub data units, respectively.

### Claim 6 (depends on 5)

The error correction circuit of claim 5, wherein each of the first through eighth code groups includes first through (p+2)-th column vectors; and wherein each of the first through (p+2)-th column vectors includes (p+2) elements.

### Claim 7 (depends on 1)

The error correction circuit of claim 1, wherein the main data includes 3*2q-bit of the data bits, wherein q is an integer equal to or greater than six; wherein the parity data includes (q+3)-bit parity bits; wherein the ECC is a single error correction and double error detection (SECDED) code; wherein the sub data units include first through twelfth sub data units, and each of the first through twelfth sub data units includes (q+3) bits; and wherein the plurality of code groups include first through twelfth code groups corresponding to the first through twelfth sub data units, respectively.

### Claim 8 (depends on 7)

The error correction circuit of claim 7, wherein each of the first through twelfth code groups includes first through (q+3)-th column vectors; and wherein each of the first through (q+3)-th column vectors includes (9+3) elements.

### Claim 9 (depends on 1)

The error correction circuit of claim 1, wherein the ECC engine comprises:
an ECC encoder configured to perform an ECC encoding operation on the main data using the ECC to generate the parity data during a memory write operation; and
an ECC decoder configured to perform an ECC decoding operation on the main data based on the parity data using the ECC during a memory read operation.

### Claim 10 (depends on 9)

The error correction circuit of claim 9, wherein the ECC decoder comprises:
a check bit generator configured to generate check bits based on the main data using the ECC;
a syndrome generator configured to generate syndrome data based on a comparison of the check bits and the parity data; and
a data corrector configured to correct the at least one error bit in the main data.

### Claim 11

A semiconductor memory device, comprising:
a memory cell array including a plurality of bank arrays that respectively comprise a normal cell region, which stores main data, and a redundancy cell region, which stores first parity data associated with the corresponding main data;
an error correction circuit configured to generate the parity data based on the main data using an error correction code (ECC), and to correct at least one error bit in the main data using the parity data, wherein the ECC is represented by a generation matrix; and
a control logic circuit configured to control the error correction circuit based on a command and an address;
wherein the main data includes a plurality of data bits divided into a plurality of sub data units;
wherein the ECC includes a plurality of column vectors divided into a plurality of code groups corresponding to the sub data units; and
wherein the column vectors have elements configured to gather a mis-corrected bit and multiple error bits in one symbol, wherein the mis-corrected bit is generated due to the multiple error bits in the main data.

### Claim 12 (depends on 11)

The semiconductor memory device of claim 11, wherein:
the one symbol includes one of the sub data units or two adjacent sub data units of the sub data units;
the multiple error bits include odd error bits; and
the column vectors have elements configured to place the mis-corrected bit in a sub data unit including the multiple error bits.

### Claim 13 (depends on 11)

The semiconductor memory device of claim 11, wherein the multiple error bits include a first error bit, a second error bit and a third error bit; wherein when a first sub data unit of the sub data units includes the first error bit, the second error bit and the third error bit, a first code group corresponding to the first sub data unit includes a plurality of first column vectors; and wherein the plurality of first column vectors are configured such that a result of a bit-wise exclusive OR operation on three different column vectors of the first column vectors matches one of the column vectors of the first column vectors except the three different column vectors.

### Claim 14 (depends on 11)

The semiconductor memory device of claim 11, wherein the main data includes 2p-bit of the data bits, wherein p is an integer equal to or greater than six; wherein the parity data includes (p+2)-bit parity bits; wherein the ECC is a single error correction and double error detection (SECDED) code; wherein the sub data units include first through eighth sub data units, and each of the first through eighth sub data units includes (p+2) bits; and wherein the code groups include first through eighth code groups corresponding to the first through eighth sub data units, respectively.

### Claim 15 (depends on 11)

The semiconductor memory device of claim 11, comprising:
at least one buffer die; and
a plurality of memory dies, the plurality of memory dies being stacked on the at least one buffer die and conveying data through a plurality of through silicon via (TSV) lines;
wherein each of the plurality of memory dies includes the memory cell array, and
wherein the at least one buffer die includes the error correction circuit.

### Claim 16

A memory system, comprising:
a semiconductor memory device; and
a memory controller configured to control the semiconductor memory device;
wherein the semiconductor memory device includes:
a memory cell array including a plurality of bank arrays,
wherein each of the plurality of bank arrays includes a normal cell region that stores main data, and a redundancy cell region that stores first parity data associated with the main data, and wherein each of the plurality of bank arrays includes a plurality of dynamic memory cells coupled to word-lines and bit-lines;
an error correction circuit configured to generate the parity data based on the main data using a first error correction code (ECC), and to correct at least one error bit in the main data using the parity data, wherein the first ECC is represented by a generation matrix; and
a control logic circuit configured to control the error correction circuit based on a command and an address provided from the memory controller;
wherein the main data includes a plurality of data bits divided into a plurality of sub data units;
wherein the first ECC includes a plurality of column vectors divided into a plurality of code groups corresponding to the sub data units, and
wherein the column vectors have elements configured to gather a mis-corrected bit and multiple error bits in one symbol, wherein the mis-corrected bit is generated due to the multiple error bits in the main data.

### Claim 17 (depends on 16)

The memory system of claim 16, wherein:
the one symbol includes one of the sub data units or two adjacent sub data units of the sub data units;
the multiple error bits include odd error bits;
the column vectors have elements configured to place the mis-corrected bit in a sub data unit including the multiple error bits; and
the first ECC is a single error correction and double error detection (SECDED) code.

### Claim 18 (depends on 16)

The memory system of claim 16,
wherein the memory controller includes a second error correction circuit;
wherein the second error correction circuit includes:
a parity generator configured to generate a system parity data based on the main data to be transmitted to the semiconductor memory device using a second ECC;
a buffer configured to store the system parity data; and
an ECC decoder configured to generate check bits based on a read main data received from the semiconductor memory device using the second ECC, and configured to correct multiple error bits in the read main data based on comparison of the check bits and the system parity data.

### Claim 19 (depends on 18)

The memory system of claim 18, wherein the second ECC is a code that corrects the multiple error bits in the read main data by symbol basis.

### Claim 20 (depends on 19)

The memory system of claim 19, wherein:
the ECC decoder is configured to assign one or two of a plurality sub data units in the read main data as one symbol, and is further configured to correct the multiple error bits in the one symbol.
