# US 11,907,061 B2 · Methods and devices for error correction

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

- Number: US 11,907,061 B2
- Document ID: US11907061B2
- Status: Granted
- Kind: B2
- Application number: 17/559,531
- Filed: 2021-12-22
- Published: 2022-06-16
- Granted: 2024-02-20
- Earliest claimed: 2018-10-16
- Applicants: Lodestar Licensing Group LLC
- Inventors: Scott E. Schaefer; Aaron P. Boehm
- Web page: https://patentgrep.com/patent/US11907061B2

## CPC

- G06F 11/1012: {using codes or arrangements adapted for a specific type of error (G06F11/1048 takes precedence)}
- G06F 11/073: {in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00)}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/1068: {in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence)}
- G06F 13/28: using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence)
- H04L 1/0041: {Arrangements at the transmitter end}
- H04L 2001/0096: {Channel splitting in point-to-point links}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods, systems, and devices are described herein for using codewords to detect or correct errors in data (e.g., data stored in a memory device). A host device may generate one or more codewords associated with data to be stored in the memory device. In some cases, the host device may generate one or more codewords for error detection and correction (e.g., corresponding to data transmitted by the host device to the memory device). In some cases, the host device may transmit the codewords and the associated data using an extended (e.g., adjustable) burst length such that the one or more codewords may be included in the burst along with the data. Additionally or alternatively, the host device may transmit one or more of the codewords over one or more channels different than the one or more channels used to transmit the data.

## Claims

### Claim 1

A method, comprising:
identifying a first set of data for communicating over a first channel between a memory device and a host device, the first channel associated with a channel width and the first set of data corresponding to a first burst length;
generating a first codeword for error correction or error detection based at least in part on at least a portion of the first set of data;
generating a second codeword for error correction or error detection based at least in part on the at least the portion of the first set of data and the first codeword; and
transmitting, from the memory device or the host device, a second set of data that includes the first set of data, the first codeword, and the second codeword.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
generating the second codeword for error correction or error detection of the first set of data, the first codeword, or both, wherein generating the second codeword is based at least in part on generating the second codeword for error correction or error detection of the first set of data, the first codeword, or both.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
transmitting the second set of data over the first channel, wherein transmitting the second set of data is based at least in part on transmitting the second set of data over the first channel.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
transmitting the second set of data using a second burst length that is greater than the first burst length, wherein transmitting the second set of data is based at least in part on transmitting the second set of data using the second burst length.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
transmitting the first set of data over the first channel; and
transmitting the first codeword and the second codeword over a second channel different than the first channel, wherein transmitting the second set of data is based at least in part on transmitting the first set of data over the first channel and transmitting the first codeword and the second codeword over the second channel.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
transmitting the first set of data using the first burst length; and
transmitting the first codeword and the second codeword using the first burst length, wherein transmitting the second set of data is based at least in part on transmitting the first set of data using the first burst length and transmitting the first codeword and the second codeword using the first burst length.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
extending the channel width of the first channel to include the first codeword and the second codeword; and
transmitting the second set of data over the first channel using the extended channel width.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
increasing a quantity of pins associated with the channel width by one or more pins, wherein extending the channel width to include the first codeword and the second codeword is based at least in part on increasing the quantity of pins associated with the channel width.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
dividing the first set of data into a plurality of portions; and
generating a first plurality of codewords and a second plurality of codewords for error correction or error detection based at least in part on the plurality of portions, wherein the first plurality of codewords comprises the first codeword and the second plurality of codewords comprises the second codeword, and wherein the second set of data includes the first plurality of codewords and the second plurality of codewords.

### Claim 10

An apparatus, comprising:
a memory controller configured to cause the apparatus to:
identify a first set of data for communicating over a first channel between a memory device and a host device, the first channel associated with a channel width and the first set of data corresponding to a first burst length;
generate a first codeword for error correction or error detection based at least in part on at least a portion of the first set of data;
generate a second codeword for error correction or error detection based at least in part on the at least the portion of the first set of data and the first codeword; and
transmit, from the memory device or the host device, a second set of data that includes the first set of data, the first codeword, and the second codeword.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the memory controller is further configured to cause the apparatus to:
generate the second codeword for error correction or error detection of the first set of data, the first codeword, or both, wherein generating the second codeword is based at least in part on generating the second codeword for error correction or error detection of the first set of data, the first codeword, or both.

### Claim 12 (depends on 10)

The apparatus of claim 10, wherein the memory controller is further configured to cause the apparatus to:
transmit the second set of data over the first channel, wherein transmitting the second set of data is based at least in part on transmitting the second set of data over the first channel.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the memory controller is further configured to cause the apparatus to:
transmit the second set of data using a second burst length that is greater than the first burst length, wherein transmitting the second set of data is based at least in part on transmitting the second set of data using the second burst length.

### Claim 14 (depends on 10)

The apparatus of claim 10, wherein the memory controller is further configured to cause the apparatus to:
transmit the first set of data over the first channel; and
transmit the first codeword and the second codeword over a second channel different than the first channel, wherein transmitting the second set of data is based at least in part on transmitting the first set of data over the first channel and transmitting the first codeword and the second codeword over the second channel.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein the memory controller is further configured to cause the apparatus to:
transmit the first set of data using the first burst length; and
transmit the first codeword and the second codeword using the first burst length, wherein transmitting the second set of data is based at least in part on transmitting the first set of data using the first burst length and transmitting the first codeword and the second codeword using the first burst length.

### Claim 16 (depends on 10)

The apparatus of claim 10, wherein the memory controller is further configured to cause the apparatus to:
extend the channel width of the first channel to include the first codeword and the second codeword; and
transmit the second set of data over the first channel using the extended channel width.

### Claim 17 (depends on 16)

The apparatus of claim 16, wherein the memory controller is further configured to cause the apparatus to:
increase a quantity of pins associated with the channel width by one or more pins, wherein extending the channel width to include the first codeword and the second codeword is based at least in part on increasing the quantity of pins associated with the channel width.

### Claim 18 (depends on 10)

The apparatus of claim 10, wherein the memory controller is further configured to cause the apparatus to:
divide the first set of data into a plurality of portions; and
generate a first plurality of codewords and a second plurality of codewords for error correction or error detection based at least in part on the plurality of portions, wherein the first plurality of codewords comprises the first codeword and the second plurality of codewords comprises the second codeword, and wherein the second set of data includes the first plurality of codewords and the second plurality of codewords.

### Claim 19

A method, comprising:
receiving a first set of data over a first channel associated with a first channel width, the first set of data corresponding to a first burst length;
identifying, in the first set of data, a first codeword for error correction or error detection of a second set of data included in the first set of data and a second codeword associated with the first codeword and the second set of data; and
writing the second set of data, the first codeword, and the second codeword to one or more portions of a memory device.

### Claim 20 (depends on 19)

The method of claim 19, further comprising:
writing the first set of data to a first portion of the memory device;
writing the first codeword to a second portion of the memory device different than the first portion of the memory device; and
writing the second codeword to a third portion of the memory device different than the first portion of the memory device and the second portion of the memory device.
