# US 8,788,876 B2 · Stripe-based memory operation

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

- Number: US 8,788,876 B2
- Document ID: US8788876B2
- Status: Granted
- Kind: B2
- Application number: 13/899,147
- Filed: 2013-05-21
- Published: 2013-09-26
- Granted: 2014-07-22
- Earliest claimed: 2009-09-29
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Joseph M. Jeddeloh
- Web page: https://patentgrep.com/patent/US8788876B2

## CPC

- G06F 11/08: Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F 3/0616: {in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]}
- G06F 3/064: {Management of blocks}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 11/1028: {Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error}
- G06F 11/108: {Parity data distribution in semiconductor storages, e.g. in SSD}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present disclosure includes methods and devices for stripe-based memory operation. One method embodiment includes writing data in a first stripe across a storage volume of a plurality of memory devices. A portion of the first stripe is updated by writing updated data in a portion of a second stripe across the storage volume of the plurality of memory devices. The portion of the first stripe is invalidated. The invalid portion of the first stripe and a remainder of the first stripe are maintained until the first stripe is reclaimed. Other methods and devices are also disclosed.

## Claims

### Claim 1

A method for stripe-based memory operation, comprising:
writing original data and error correction data in a first stripe across a storage volume of a plurality of memory devices;
invalidating a first fragment of the written original data in the first stripe;
detecting an error in a second fragment of original data in the first stripe; and
correcting the error, wherein correcting the error includes:
creating replacement data for the second fragment of original data based on at least a remainder of the original data including the invalidated first fragment and the error correction data in the first stripe; and
writing the replacement data in a second stripe without writing the remainder of the original data in the second stripe.

### Claim 2 (depends on 1)

The method of claim 1, wherein invalidating the first fragment comprises updating the first fragment of the written original data, wherein updating includes writing updated data in a third stripe without reading or copying the written original data, prior to writing the replacement data in the second stripe.

### Claim 3 (depends on 2)

The method of claim 2, wherein the method includes writing unrelated data in the third stripe concurrent with writing the updated data in the third stripe, wherein the unrelated data is unrelated to the original data in the first stripe and the updated data in the third stripe.

### Claim 4 (depends on 1)

The method of claim 1, wherein invalidating the first fragment comprises providing an indication in a block table that the first fragment is invalid.

### Claim 5 (depends on 1)

The method of claim 1, wherein writing the original data and the error correction data comprises writing the original data and parity data for the original data.

### Claim 6 (depends on 1)

The method of claim 1, wherein the method includes:
calculating respective first level error correction data based on each fragment of the original data; and
calculating the error correction data, comprising second level error correction data based on the original data.

### Claim 7 (depends on 6)

The method of claim 6, wherein writing the original data includes writing the original data and the first level error correction data in a first subset of the plurality of memory devices, and writing the second level error correction data in a second subset of the plurality of memory devices.

### Claim 8 (depends on 1)

The method of claim 1, wherein the method includes maintaining the remainder of the original data including the invalidated first fragment and the error correction data in the first stripe until the first stripe is reclaimed.

### Claim 9 (depends on 8)

The method of claim 8, wherein maintaining the invalidated first fragment comprises preventing erasing of the invalidated first fragment.

### Claim 10

A device, comprising:
memory control circuitry configured to:
write original data and error correction data in a first stripe across a storage volume of a plurality of memory devices;
invalidate a first fragment of the written original data in the first stripe;
detect an error in a second fragment of original data in the first stripe; and
correct the error, by:
creating replacement data for the second fragment of original data based on at least a remainder of the original data including the invalidated first fragment and the error correction data in the first stripe; and
writing the replacement data in a second stripe without writing the remainder of the original data in the second stripe.

### Claim 11 (depends on 10)

The device of claim 10, wherein the control circuitry is configured to write updated data in a third stripe without reading or copying the written original data, prior to writing the replacement data in the second stripe to invalidate the first fragment.

### Claim 12 (depends on 11)

The device of claim 11, wherein the control circuitry is configured to write unrelated data in the third stripe concurrent with writing the updated data in the third stripe, wherein the unrelated data is unrelated to the original data in the first stripe and the updated data in the third stripe.

### Claim 13 (depends on 10)

The device of claim 10, wherein the control circuitry is configured to invalidate the first fragment by providing an indication in a block table that the first fragment is invalid.

### Claim 14 (depends on 10)

The device of claim 10, wherein the error correction data comprises parity data.

### Claim 15 (depends on 10)

The device of claim 10, wherein the control circuitry is configured to:
calculate respective first level error correction data based on each fragment of the original data; and
calculate the error correction data, comprising second level error correction data based on the original data.

### Claim 16 (depends on 15)

The device of claim 15, wherein the control circuitry is configured to write the original data and the first level error correction data in a first subset of the plurality of memory devices, and write the second level error correction data in a second subset of the plurality of memory devices.

### Claim 17 (depends on 10)

The device of claim 10, wherein the control circuitry is configured to maintain the remainder of the original data including the invalidated first fragment and the error correction data in the first stripe until the first stripe is reclaimed.

### Claim 18 (depends on 17)

The device of claim 17, wherein the control circuitry is configured to prevent erasing of the invalidated first fragment to maintain the invalidated first fragment.

### Claim 19

A memory system, comprising:
a plurality of non-volatile memory devices that provide a storage volume;
control circuitry, wherein the control circuitry is configured to:
write original data and error correction data in a first stripe across the storage volume of the plurality of memory devices;
invalidate a first fragment of the written original data in the first stripe;
detect an error in a second fragment of original data in the first stripe; and
correct the error, by:
creating replacement data for the second fragment of original data based on at least a remainder of the original data including the invalidated first fragment and the error correction data in the first stripe; and
writing the replacement data in a second stripe without writing the remainder of the original data in the second stripe.

### Claim 20 (depends on 19)

The system of claim 19, wherein the system includes a volatile memory coupled to the control circuitry and storing a block table, wherein the control circuitry is configured to provide an indication in the block table that the first fragment is invalid to invalidate the first fragment.
