# US 10,503,593 B2 · Two layer quad bit error correction

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

- Number: US 10,503,593 B2
- Document ID: US10503593B2
- Status: Granted
- Kind: B2
- Application number: 16/125,117
- Filed: 2018-09-07
- Published: 2019-01-03
- Granted: 2019-12-10
- Earliest claimed: 2015-10-27
- Assignees: Everspin Technologies, Inc.
- Applicants: Everspin Techonolgies, Inc.
- Inventors: Kurt Baty
- Web page: https://patentgrep.com/patent/US10503593B2

## CPC

- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 11/1012: {using codes or arrangements adapted for a specific type of error (G06F11/1048 takes precedence)}
- H03M 13/2906: {using block codes (H03M13/2957 takes precedence)}
- H03M 13/1505: {Golay Codes}
- H03M 13/19: Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
- 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)

## Abstract

In some examples, a memory device may be configured to provide quad bit error correction circuits. For example, the memory device may be equipped with a two layer error correction circuit. In some cases, the first layer may utilized one or more Hamming coders and the second layer may utilize one or Golay coders. In some examples, the Golay coders may be grouped into sets of Golay coders.

## Claims

### Claim 1

An error correction circuit, comprising:
a first layer, the first layer comprising one or more Hamming coders, wherein each Hamming coder of the one or more Hamming coders is configured to process data to generate a Hamming code, wherein the Hamming code comprises the data and Hamming code bits; and
a second layer, the second layer comprising one or more sets of Golay coders, wherein at least one set of Golay coders is configured to process the data to generate a corresponding Golay code, wherein the Golay code comprises the data and Golay code bits,
wherein one of the first layer or the second layer is configured to correct errors within the data missed by the other of the first layer or the second layer based on the Hamming code and the Golay code, causing the error correction circuit to correct quad bit errors.

### Claim 2 (depends on 1)

The error correction circuit of claim 1, wherein each of the one or more Hamming coders is associated with two sets of Golay coders.

### Claim 3 (depends on 1)

The error correction circuit of claim 1, wherein the data is segmented into a first size of 64 bits and a second size of 32 bits.

### Claim 4 (depends on 1)

The error correction circuit of claim 1, wherein at least one set of Golay coders comprises a first Golay (22, 11) coder, a second Golay (22, 11) coder, and a Golay (21, 10) coder.

### Claim 5 (depends on 1)

The error correction circuit of claim 1, wherein at least one of the one or more Hamming coders is a Hamming (78, 64) coder.

### Claim 6 (depends on 1)

The error correction circuit of claim 1, wherein the error correction circuit comprises one or more memory arrays, and no more than three Golay code bits generated by a Golay coder of the one or more sets of Golay coders are stored in a byte of the one or more memory arrays.

### Claim 7 (depends on 1)

The error correction circuit of claim 1, wherein the error correction circuit comprises one or more memory arrays, and no more than three Golay code bits generated by a Golay coder of the one or more sets of Golay coders are stored in a bit column of the one or more memory arrays.

### Claim 8

A method comprising:
receiving, by a memory device, data to be stored in one or more memory arrays of the memory device;
processing, by each of one or more Hamming coders, the data to generate a Hamming code, wherein the Hamming code comprises the data and Hamming code bits;
processing, by at least one set of one or more sets of Golay coders, the data to generate a Golay code, wherein the Golay code comprises the data and Golay code bits; and
correcting, based on the Hamming code and the Golay code, a quad bit error, wherein one of (i) the each of the one or more Hamming coders or (ii) the at least one set of one or more sets of Golay coders is configured to correct errors within the data missed by the other of (i) the each of the one or more Hamming coders and (ii) the at least one set of one or more sets of Golay coders.

### Claim 9 (depends on 8)

The method of claim 8, wherein each of the one or more Hamming coders is associated with two sets of Golay coders.

### Claim 10 (depends on 8)

The method of claim 8, wherein the data is segmented into a first size of 64 bits and a second size of 32 bits.

### Claim 11 (depends on 8)

The method of claim 8, wherein at least one set of Golay coders comprises a first Golay (22, 11) coder, a second Golay (22, 11) coder, and a Golay (21, 10) coder.

### Claim 12 (depends on 8)

The method of claim 8, wherein at least one of the one or more Hamming coders is a Hamming (78, 64) coder.

### Claim 13 (depends on 8)

The method of claim 8, wherein no more than three Golay code bits generated by a Golay coder of the one or more sets of Golay coders are stored in a byte of the one or more memory arrays.

### Claim 14 (depends on 8)

The method of claim 8, wherein no more than three Golay code bits generated by a Golay coder of the one or more sets of Golay coders are stored in a bit column of the one or more memory arrays.

### Claim 15

An error correction circuit, comprising:
a first layer comprising one or more Hamming coders, wherein each Hamming coder of the one or more Hamming coders is configured to:
receive data bits to be stored in one or more memory arrays,
generate a first set of Hamming code bits based on the received data bits, and
store the first set of Hamming code bits in the one or more memory arrays; and
a second layer comprising one or more sets of Golay coders, wherein each set of the one or more sets of Golay coders is configured to:
receive a portion of the data bits to be stored in the one or more memory arrays,
generate a first set of Golay code bits based on the received portion of the data bits, and
store the first set of Golay code bits in the one or more memory arrays,
wherein one of the first layer or the second layer is configured to correct errors within the data bits missed by the other of the first layer or the second layer based on the first set of Hamming code bits and the first set of Golay code bits, causing the error correction circuit to correct quad bit errors.

### Claim 16 (depends on 15)

The error correction circuit of claim 15, wherein each set of the one or more sets of Golay coders comprises a plurality of Golay coders.

### Claim 17 (depends on 16)

The error correction circuit of claim 16, wherein the portion of the data bits is allocated among the plurality of Golay coders.

### Claim 18 (depends on 15)

The error correction circuit of claim 15, wherein
each Hamming coder of the one or more Hamming coders is further configured to:
generate a second set of Hamming code bits based on the received data bits, and
generate a Hamming correction bit vector based on the first set of Hamming code bits and the second set of Hamming code bits; and
each set of the one or more sets of Golay coders is further configured to:
generate a second set of Golay code bits based on the received portion of the data bits, and
generate a Golay correction bit vector based on the first set of Golay code bits and the second set of Golay code bits.

### Claim 19 (depends on 18)

The error correction circuit of claim 18, further comprising:
one or more correction components configured to correct quad bit errors based on the Hamming correction bit vector and the Golay correction bit vector.

### Claim 20 (depends on 15)

The error correction circuit of claim 15, wherein the data bits are received by the one or more Hamming coders in blocks of 64 bits.
