# US 12,118,222 B2 · Controlling memory overhead for storing integrity data in solid state drives

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

- Number: US 12,118,222 B2
- Document ID: US12118222B2
- Status: Granted
- Kind: B2
- Application number: 18/113,495
- Filed: 2023-02-23
- Published: 2024-08-29
- Granted: 2024-10-15
- Earliest claimed: 2023-02-23
- Assignees: SK Hynix NAND Product Solutions Corp.
- Applicants: SK Hynix NAND Product Solutions Corp.
- Inventors: Arun Athreya; Yihua Zhang; Shankar Natarajan; Sriram Natarajan
- Web page: https://patentgrep.com/patent/US12118222B2

## CPC

- G06F 3/064: {Management of blocks}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 3/0683: {Plurality of storage devices}
- G06F 11/1666: {where the redundant component is memory or memory area}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F 11/1471: involving logging of persistent data for recovery
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

This application is directed to data protection in a memory system of an electronic device. The memory system has a first memory block and a second memory block, and each memory block includes one or more respective memory dies. Each memory die of the second memory block is distinct from the one or more respective memory dies of the first memory block. The electronic device stores user data including a plurality of user data items in the first memory block and integrity data including a plurality of integrity data items in the second memory block. Each of the plurality of user data items is configured to be validated based on a respective one of the plurality of integrity data items. The electronic device invalidates the integrity data in the second memory block, and reads the user data from the first memory block independently of the integrity data.

## Claims

### Claim 1

A data storage method, comprising:
at an electronic device having a memory system, the memory system having a first memory block and a second memory block, each memory block including one or more respective memory dies:
storing user data including a plurality of user data items in the first memory block, each of the plurality of user data items configured to be validated based on a respective one of a plurality of integrity data items;
storing integrity data including the plurality of integrity data items in the second memory block, each memory die of the second memory block being distinct from the one or more respective memory dies of the first memory block;
invalidating the integrity data in the second memory block; and
reading the user data from the first memory block independently of the integrity data.

### Claim 2 (depends on 1)

The method of claim 1, the method further comprising, before invalidating the integrity data in the second memory block:
reading back the user data from the first memory block;
determining that the user data is valid based on the integrity data, wherein the integrity data in the second memory block is invalidated in accordance with a determination that the user data is valid based on the integrity data; and
discarding the integrity data in the second memory block.

### Claim 3 (depends on 1)

The method of claim 1, further comprising, prior to storing the user data in the first memory block:
storing the user data in a third memory block that is distinct from the first and second memory blocks;
reading back the user data from the third memory block;
determining that the user data read from the third block is invalid based on the integrity data stored in the second memory block.

### Claim 4 (depends on 3)

The method of claim 3, storing the user data in the first memory block further comprising, in accordance with a determination that a subset of the user data stored in the third memory block is invalid:
duplicating the user data from the third memory block to the first memory block;
correcting the user data in the first memory block based on the integrity data; and
purging the user data in the third memory block.

### Claim 5 (depends on 1)

The method of claim 1, wherein the memory system includes a solid state drive of the electronic device, each memory die including a plurality of memory planes, each memory planes including a plurality of memory pages, each memory page including a plurality of memory cells.

### Claim 6 (depends on 5)

The method of claim 5, wherein the user data includes a plurality of user data sets, and each user data set is configured to occupy one or more respective first memory pages, storing the user data in the first memory block further comprising:
successively, after obtaining each of the user data sets in a buffer, storing the respective user data sets as a whole into the one or more respective memory pages of the first memory block.

### Claim 7 (depends on 5)

The method of claim 5, wherein the integrity data includes a plurality of integrity data sets, and each integrity data set is configured to occupy one or more respective second memory pages, storing the integrity data in the second memory block further comprising:
successively, after obtaining each of the plurality of integrity data sets in a buffer, storing the respective integrity data set as a whole into the one or more respective second memory pages of the second memory block.

### Claim 8 (depends on 5)

The method of claim 5, wherein the memory system includes a plurality of memory blocks, and the second memory block is a last memory block of the plurality of memory blocks.

### Claim 9 (depends on 1)

The method of claim 1, wherein:
the first memory block includes a plurality of first cells of a first cell type;
the memory system further includes a fourth memory block, and the fourth memory block includes a plurality of second cells of a second cell type;
the second cell type is distinct from the first cell type; and
reading the user data from the first memory block further comprises:
copying the user data from the first memory block to the fourth memory block without the integrity data.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
for each of the plurality of user data items, determining the respective one of the plurality of integrity data items using one of an XOR logic and a lookup table.

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
dividing the user data into a plurality of data chunks, each data chunk having a data chunk size; and
determining each of a subset of integrity data items based on a subset of respective data chunks, the subset of respective data chunks including a predefined number of data chunks.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
encoding each of the plurality of user data items by a low-density parity-check (LDPC) engine to generate a respective LDPC code, the respective one of the plurality of integrity data items including the LDPC code.

### Claim 13

An electronic device, comprising:
one or more processors;
a memory system having a first memory block and a second memory block, each memory block including one or more respective memory dies; and
memory storing one or more programs for execution by the one or more processors, the one or more programs including instructions for:
storing user data including a plurality of user data items in the first memory block, each of the plurality of user data items configured to be validated based on a respective one of a plurality of integrity data items;
storing integrity data including the plurality of integrity data items in the second memory block, each memory die of the second memory block being distinct from the one or more respective memory dies of the first memory block;
invalidating the integrity data in the second memory block; and
reading the user data from the first memory block independently of the integrity data.

### Claim 14 (depends on 13)

The electronic device of claim 13, the one or more programs further comprising instructions for, before invalidating the integrity data in the second memory block:
reading back the user data from the first memory block;
determining that the user data is valid based on the integrity data, wherein the integrity data in the second memory block is invalidated in accordance with a determination that the user data is valid based on the integrity data; and
discarding the integrity data in the second memory block.

### Claim 15 (depends on 13)

The electronic device of claim 13, the one or more programs further comprising instructions for, prior to storing the user data in the first memory block:
storing the user data in a third memory block that is distinct from the first and second memory blocks;
reading back the user data from the third memory block;
determining that the user data read from the third block is invalid based on the integrity data stored in the second memory block.

### Claim 16 (depends on 15)

The electronic device of claim 15, storing the user data in the first memory block further comprising, in accordance with a determination that a subset of the user data stored in the third memory block is invalid:
duplicating the user data from the third memory block to the first memory block;
correcting the user data in the first memory block based on the integrity data; and
purging the user data in the third memory block.

### Claim 17

A non-transitory computer-readable storage medium storing one or more programs for execution by one or more processors, the one or more programs comprising instructions for:
at an electronic device having a memory system, the memory system having a first memory block and a second memory block, each memory block including one or more respective memory dies;
storing user data including a plurality of user data items in the first memory block, each of the plurality of user data items configured to be validated based on a respective one of a plurality of integrity data items;
storing integrity data including the plurality of integrity data items in the second memory block, each memory die of the second memory block being distinct from the one or more respective memory dies of the first memory block;
invalidating the integrity data in the second memory block; and
reading the user data from the first memory block independently of the integrity data.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, the one or more programs further comprising instructions for, before invalidating the integrity data in the second memory block:
reading back the user data from the first memory block;
determining that the user data is valid based on the integrity data, wherein the integrity data in the second memory block is invalidated in accordance with a determination that the user data is valid based on the integrity data; and
discarding the integrity data in the second memory block.

### Claim 19 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, storing the user data in the first memory block further comprising, in accordance with a determination that a subset of the user data stored in a third memory block is invalid:
duplicating the user data from the third memory block to the first memory block;
correcting the user data in the first memory block based on the integrity data; and
purging the user data in the third memory block.

### Claim 20 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the memory system includes a redundant array of inexpensive disks (RAID) including a first drive and a second drive, and the first memory block includes at least part of the first drive in the RAID, the one or more programs further comprising instructions for:
determining the integrity data including a set of RAID parity data items based on a subset of the user data stored in the first drive and a set of user data stored in the second drive of the RAID.
