# US 12,761,825 B2 · Storing data based on disk redundant array protection mechanism

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

- Number: US 12,761,825 B2
- Document ID: US12761825B2
- Status: Granted
- Kind: B2
- Application number: 19/029,393
- Filed: 2025-01-17
- Published: 2025-05-22
- Granted: 2026-10-13
- Earliest claimed: 2022-08-05
- Assignees: Zhongshan Longsys Electronics Co., Ltd.
- Applicants: Zhongshan Longsys Electronics Co., Ltd.
- Inventors: Qiming Bao; Hui Yin
- Web page: https://patentgrep.com/patent/US12761825B2

## CPC

- G06F 3/064: {Management of blocks}
- G06F 3/0602: {specifically adapted to achieve a particular effect}
- G06F 3/0655: {Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data storage method includes: binding storage blocks, which are corresponding to each plane of each of a plurality of logical units in a storage device, to each other to form a superblock; performing, using a corresponding disk redundancy array protection mechanism, data storage operations based on a type of the superblock and a data type of to-be-written data.

## Claims

### Claim 1

A data storage method, comprising:
binding a plurality of storage blocks to each other to form one superblock, wherein, each plane of each of a plurality of logical units in a storage device provides one storage block to form the plurality of storage blocks;
performing, using a corresponding disk redundancy array protection mechanism, data storage operations based on a type of the superblock and a data type of to-be-written data;
wherein, the type of the superblock is a user data SLC block or a user data XLC block; the performing, using the corresponding disk redundancy array protection mechanism, data storage operations based on the type of the superblock and the data type of to-be-written data, comprises:
dividing the superblock into a plurality of disk redundancy array groups, wherein the number of the plurality of disk redundancy array groups is determined based on the number of pages contained in the predetermined number of WordLines in the storage block;
writing the to-be-written data are written into the plurality of the disk redundant array groups when receiving a request of writing the to-be-written data;
obtaining parity data corresponding to each of the plurality of disk redundant array groups;
writing the parity data corresponding to each of the plurality of disk redundancy array groups into a last plane of a last logical unit in the corresponding one of the plurality of disk redundancy array groups; and
restoring, when an error occurring in the data in one plane, the data by performing an XOR operation on the data that is in a same disk redundancy array group as the plane having the error.

### Claim 2 (depends on 1)

The data storage method according to claim 1, wherein the type of the superblock further comprises: a first class private data SLC block and a second class private data SLC block.

### Claim 3 (depends on 2)

The data storage method according to claim 2, wherein, when the type of the superblock is the first class private data SLC block, the performing, using the corresponding disk redundancy array protection mechanism, data storage operations based on the type of the superblock and the data type of to-be-written data, comprises:
writing the to-be-written data into both a first logical unit of the superblock and a second logical unit of the superblock when receiving a request of writing the to-be-written data, wherein the second logical unit is mirrored with the first logical unit;
restoring, when an error occurring in the data in the first logical unit, the data by mirroring the data in the second logical unit.

### Claim 4 (depends on 2)

The data storage method according to claim 2, wherein, when the type of the superblock is the second class private data SLC block, the performing, using the corresponding disk redundancy array protection mechanism, data storage operations based on the type of the superblock and the data type of to-be-written data, comprises:
writing the to-be-written data sequentially into the plurality of logical units of the superblock when receiving a request of writing the to-be-written data; performing an exclusive-OR (XOR) operation on the to-be-written data to obtain parity data;
writing the parity data into a last plane of a last logical unit of the plurality of logical units;
restoring, when an error occurring in the data in any plane of any one of the plurality of logical units, the data by performing the XOR operation on the data in the plurality of logical units.

### Claim 5 (depends on 1)

The data storage method according to claim 1, wherein the obtaining parity data corresponding to each of the plurality of disk redundant array groups, comprises:
performing the XOR operation on the data of each of the plurality of disk redundancy array groups to obtain the parity data corresponding to each of the plurality of disk redundancy array groups; or
obtaining, through a buffer swapping mechanism, the parity data corresponding to each of the plurality of disk redundancy array groups.

### Claim 6 (depends on 5)

The data storage method according to claim 5, wherein the obtaining, through the buffer swapping mechanism, the parity data corresponding to each of the plurality of disk redundancy array groups, comprises:
parsing the request of writing the to-be-written data to determine one disk redundant array group of the plurality of disk redundant array groups corresponding to the to-be-written data;
searching whether parity data of the disk redundant array group corresponding to the to-be-written data exists in a disk redundant array memory;
performing, when the parity data existing, the XOR operation on the data of each of the plurality of disk redundant array groups to obtain the parity data corresponding to each of the plurality of disk redundant array groups; and
writing, when the parity data not existing, parity data of the other disk redundancy array groups into a swap block; and reading the parity data of the disk redundancy array group corresponding to the to-be-written data from the swap block.

### Claim 7

A storage device, comprising a processor and a memory connected to the processor, wherein the memory is configured to store program instructions, the processor is configured to execute the program instructions to implement operations of:
binding a plurality of storage blocks, to each other to form one superblock, wherein, each plane of each of a plurality of logical units in a storage device provides one storage block to form the plurality of storage blocks;
performing, using a corresponding disk redundancy array protection mechanism, data storage operations based on a type of the superblock and a data type of to-be-written data;
wherein, the type of the superblock is a first class private data SLC block; the performing, using the corresponding disk redundancy array protection mechanism, data storage operations based on the type of the superblock and the data type of to-be-written data, comprises:
writing the to-be-written data into both a first logical unit of the superblock and a second logical unit of the superblock when receiving a request of writing the to-be-written data, wherein, the first logical unit and the second logical unit are two of the plurality of logical units providing two of the plurality of storage blocks for forming the superblock; and the second logical unit is mirrored with the first logical unit;
restoring, when an error occurring in the data in the first logical unit, the data by mirroring the data in the second logical unit.

### Claim 8 (depends on 7)

The storage device according to claim 7, wherein the type of the superblock further comprises: a second class private data SLC block, a user data SLC block, and a user data XLC block.

### Claim 9 (depends on 8)

The storage device according to claim 8, wherein, when the type of the superblock is the second class private data SLC block, the performing, using the corresponding disk redundancy array protection mechanism, data storage operations based on the type of the superblock and the data type of to-be-written data, comprises:
writing the to-be-written data sequentially into the plurality of logical units of the superblock when receiving a request of writing the to-be-written data; performing an exclusive-OR (XOR) operation on the to-be-written data to obtain parity data;
writing the parity data into a last plane of a last logical unit of the plurality of logical units;
restoring, when an error occurring in the data in any plane of any one of the plurality of logical units, the data by performing the XOR operation on the data in the plurality of logical units.

### Claim 10 (depends on 8)

The storage device according to claim 8, wherein, when the type of the superblock is the user data SLC block or the user data XLC block, the performing, using the corresponding disk redundancy array protection mechanism, data storage operations based on the type of the superblock and the data type of to-be-written data, comprises:
dividing the superblock into a plurality of disk redundancy array groups, wherein the number of the plurality of disk redundancy array groups is determined based on the number of pages contained in the predetermined number of WordLines in the storage block;
writing the to-be-written data are written into the plurality of the disk redundant array groups when receiving a request of writing the to-be-written data;
obtaining parity data corresponding to each of the plurality of disk redundant array groups;
writing the parity data corresponding to each of the plurality of disk redundancy array groups into a last plane of a last logical unit in the corresponding one of the plurality of disk redundancy array groups; and
restoring, when an error occurring in the data in one plane, the data by performing an XOR operation on the data that is in a same disk redundancy array group as the plane having the error.

### Claim 11 (depends on 10)

The storage device according to claim 10, wherein the obtaining parity data corresponding to each of the plurality of disk redundant array groups, comprises:
performing the XOR operation on the data of each of the plurality of disk redundancy array groups to obtain the parity data corresponding to each of the plurality of disk redundancy array groups; or
obtaining, through a buffer swapping mechanism, the parity data corresponding to each of the plurality of disk redundancy array groups.

### Claim 12 (depends on 11)

The storage device according to claim 11, wherein the obtaining, through the buffer swapping mechanism, the parity data corresponding to each of the plurality of disk redundancy array groups, comprises:
parsing the request of writing the to-be-written data to determine one disk redundant array group of the plurality of disk redundant array groups corresponding to the to-be-written data;
searching whether parity data of the disk redundant array group corresponding to the to-be-written data exists in a disk redundant array memory;
performing, when the parity data existing, the XOR operation on the data of each of the plurality of disk redundant array groups to obtain the parity data corresponding to each of the plurality of disk redundant array groups; and
writing, when the parity data not existing, parity data of the other disk redundancy array groups into a swap block; and reading the parity data of the disk redundancy array group corresponding to the to-be-written data from the swap block.

### Claim 13

A non-transitory computer-readable storage medium, storing program instructions, wherein the program instructions, when being executed by a processor, are configured to implement operations of:
binding a plurality of storage blocks, to each other to form one superblock; wherein, each plane of each of a plurality of logical units in a storage device provides one storage block to form the plurality of storage blocks;
performing, using a corresponding disk redundancy array protection mechanism, data storage operations based on a type of the superblock and a data type of to-be-written data;
wherein, the type of the superblock is a second class private data SLC block, the performing, using the corresponding disk redundancy array protection mechanism, data storage operations based on the type of the superblock and the data type of to-be-written data, comprises:
when receiving a request of writing the to-be-written data, writing the to-be-written data sequentially into more than one logical units of the plurality of logical units, which provide storage blocks for forming the superblock; and performing an exclusive-OR (XOR) operation on the to-be-written data to obtain parity data;
writing the parity data into a last plane of a last logical unit of the plurality of logical units;
restoring, when an error occurring in the data in any plane of any one of the plurality of logical units, the data by performing the XOR operation on the data in the plurality of logical units.

### Claim 14 (depends on 13)

The non-transitory computer-readable storage medium according to claim 13, wherein the type of the superblock further comprises: a first class private data SLC block, a user data SLC block, and a user data XLC block.

### Claim 15 (depends on 14)

The non-transitory computer-readable storage medium according to claim 14, wherein, when the type of the superblock is the first class private data SLC block, the performing, using the corresponding disk redundancy array protection mechanism, data storage operations based on the type of the superblock and the data type of to-be-written data, comprises:
writing the to-be-written data into both a first logical unit of the superblock and a second logical unit of the superblock when receiving a request of writing the to-be-written data, wherein the second logical unit is mirrored with the first logical unit;
restoring, when an error occurring in the data in the first logical unit, the data by mirroring the data in the second logical unit.

### Claim 16 (depends on 14)

The non-transitory computer-readable storage medium according to claim 14, wherein, when the type of the superblock is the user data SLC block or the user data XLC block, the performing, using the corresponding disk redundancy array protection mechanism, data storage operations based on the type of the superblock and the data type of to-be-written data, comprises:
dividing the superblock into a plurality of disk redundancy array groups, wherein the number of the plurality of disk redundancy array groups is determined based on the number of pages contained in the predetermined number of WordLines in the storage block;
writing the to-be-written data are written into the plurality of the disk redundant array groups when receiving a request of writing the to-be-written data;
obtaining parity data corresponding to each of the plurality of disk redundant array groups;
writing the parity data corresponding to each of the plurality of disk redundancy array groups into a last plane of a last logical unit in the corresponding one of the plurality of disk redundancy array groups; and
restoring, when an error occurring in the data in one plane, the data by performing an XOR operation on the data that is in a same disk redundancy array group as the plane having the error.

### Claim 17 (depends on 16)

The non-transitory computer-readable storage medium according to claim 16, wherein the obtaining parity data corresponding to each of the plurality of disk redundant array groups, comprises:
performing the XOR operation on the data of each of the plurality of disk redundancy array groups to obtain the parity data corresponding to each of the plurality of disk redundancy array groups; or
obtaining, through a buffer swapping mechanism, the parity data corresponding to each of the plurality of disk redundancy array groups.
