IP Library Granted Patent US 10,783,035
Granted Patent B1
US 10,783,035 · App. 16/289,284 · Granted Sep 22, 2020

Method and system for improving throughput and reliability of storage media with high raw-error-rate

Inventor: Shu Li (Bothell, WA)
Assignee: Alibaba Group Holding Limited
G06F11/1068G11C29/52H03M13/2906
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,783,035
App. No.
16/289,284
Granted
Sep 22, 2020
Kind
B1
Abstract

One embodiment provides a system and method for storing data. During operation, the system receives a to-be-written data chunk, sends the to-be-written data chunk to a first and second storage devices. The system performs first and second error-correction-code (ECC) encoding operations on the to-be-written data chunk prior to writing the to-be-written data chunk to the first and second storage media associated with the first and second storage devices, respectively. The first storage medium has a first access granularity and a first raw-error-rate (RER). The second storage medium has a second access granularity and a second RER. The first access granularity is smaller than the second access granularity, the first RER is greater than the second RER, and the second ECC encoding operation has a stronger error-correction capability than the first ECC encoding operation.

Claims (73)

1. A computer-implemented method for storing data, the method comprising:

receiving a to-be-written data chunk;

sending the to-be-written data chunk to a first storage device comprising a first storage medium, wherein the first storage medium has a first access granularity and a first raw-error-rate (RER);

performing a first error-correction-code (ECC) encoding operation on the to-be-written data chunk prior to writing the to-be-written data chunk to the first storage medium;

sending the to-be-written data chunk to a second storage device comprising a second storage medium, wherein the second storage medium has a second access granularity and a second RER; and

performing a second ECC encoding operation on the to-be-written data chunk prior to writing the to-be-written data chunk to the second storage medium;

wherein the first access granularity is smaller than the second access granularity;

wherein the first RER is greater than the second RER; and

wherein the second ECC encoding operation has a stronger error-correction capability than the first ECC encoding operation.

2. The computer-implemented method of claim 1 , wherein the first storage medium comprises one or more of:

a 3D Xpoint storage medium;

a phase-change memory (PCM);

a magnetoresistive random access memory (MRAM); and

a resistive random access memory (ReRAM).

3. The computer-implemented method of claim 2 , wherein the first access granularity is at the byte level.

4. The computer-implemented method of claim 1 , wherein the first ECC encoding operation is configured to generate a codeword having a length equal to the first access granularity.

5. The computer-implemented method of claim 1 , wherein the second storage medium comprises a solid state drive (SSD).

6. The computer-implemented method of claim 1 , further comprising:

writing the to-be written data chunk to the second storage medium in a log format.

7. The computer-implemented method of claim 1 , further comprising updating a logical-address-to-physical address mapping table subsequent to writing the to-be-written data chunk to the first and second storage media;

wherein the mapping table comprises physical addresses of the data chunk in the first and second storage media.

8. The computer-implemented method of claim 1 , wherein the second ECC encoding operation comprises an incremental encoding operation, which comprises:

multiplying the to-be-written data chunk with a sub-matrix of a parity-check matrix to generate a sub-syndrome associated with the to-be-written data chunk, wherein a width of the sub-matrix equals to a length of the to-be-written data chunk;

accumulating sub-syndromes from previously received to-be-written data chunks belonging to a same ECC codeword to generate a syndrome associated with the data chunk;

in response to the to-be-written data chunk being a last chunk within the same ECC codeword, generating parity data based on the parity-check matrix and the syndrome associated with the to-be-written data chunk; and

writing the parity data to the second storage medium.

9. The computer-implemented method of claim 1 , further comprising:

receiving a read request;

retrieving a to-be-read data chunk from the first storage medium based on the read request;

performing a first decoding operation corresponding to the first ECC encoding operation on the to-be-read data chunk;

determining whether the decoding operation is successful;

in response to the first decoding operation being unsuccessful, retrieving a codeword that includes the to-be-read data chunk from the second storage medium, wherein the codeword is generated by the second ECC encoding operation;

performing a second decoding operation corresponding to the second ECC encoding operation on the codeword;

extracting an error-free data chunk corresponding to the to-be-read data chunk from the decoded codeword; and

returning the extracted error-free data chunk.

10. The computer-implemented method of claim 1 , further comprising:

receiving an update request;

performing an in-place update in the first storage medium based on the update request;

writing an update data chunk to the second storage medium; and

updating a mapping between a logical address and a physical address of the update data chunk in the second storage medium.

11. A data storage system, comprising:

a first storage device configured to store a data chunk in response to receiving a write request, wherein the first storage device comprises a first storage medium and a first error-correction code (ECC) encoder, wherein the first storage medium has a first access granularity and a first raw-error-rate (RER);

a second storage device configured to stored a copy of the data chunk in response to the write request, wherein the second storage device comprises a second storage medium and a second ECC encoder, wherein the second storage medium has a second access granularity and a second raw error rate (RER);

wherein the first access granularity is smaller than the second access granularity;

wherein the first RER is greater than the second RER; and

wherein the second ECC encoder has a stronger error-correction capability than the first ECC encoder.

12. The data storage system of claim 11 , wherein the first storage medium comprises one or more of:

a 3D Xpoint storage medium;

a phase-change memory (PCM);

a magnetoresistive random access memory (MRAM); and

a resistive random access memory (ReRAM).

13. The data storage system of claim 12 , wherein the first access granularity is at byte level.

14. The data storage system of claim 11 , wherein the first ECC encoder is configured to generate a codeword having a length equal to the first access granularity.

15. The data storage system of claim 11 , wherein the second storage medium comprises a solid state drive (SSD).

16. The data storage system of claim 11 , wherein the second storage device is configured to store the copy of the data chunk in the second storage medium using a log format.

17. The data storage system of claim 11 , further comprising a table-updating mechanism configured to update a logical-address-to-physical address mapping table subsequent to the data chunk and its copy being stored in the first and second storage devices, respectively; wherein the mapping table comprised physical addresses of the data chunk in the first and second storage media.

18. The data storage system of claim 11 , wherein the second ECC encoder is configured to perform an incremental encoding operation, which comprises:

multiplying the data chunk with a sub-matrix of a parity-check matrix to generate a sub-syndrome associated with the data chunk, wherein a width of the sub-matrix equals to a length of the data chunk;

accumulating sub-syndromes from previously received data chunks belonging to a same ECC codeword to generate a syndrome associated with the data chunk;

in response to the data chunk being a last chunk within the same ECC codeword, generating parity data based on the parity-check matrix and the syndrome associated with the data chunk; and

writing the parity data to the second storage medium.

19. The data storage system of claim 11 , wherein the first storage device further comprises a first ECC decoder corresponding to the first ECC encoder, wherein the second storage device further comprises a second ECC decoder corresponding to the second ECC encoder;

wherein the first ECC decoder is configured to:

in response to a read request, retrieve a to-be-read data chunk from the first storage medium;

perform a first decoding operation on the to-be-read data chunk; and

determine whether the first decoding operation is successful;

wherein, in response to the first ECC decoder determining that the first decoding operation is unsuccessful, the second ECC decoder is configured to:

retrieve a codeword that includes the to-be-read data chunk from the second storage medium, wherein the codeword is generated by the second ECC encoder;

perform a second decoding operation corresponding on the codeword;

extract an error-free data chunk corresponding to the to-be-read data chunk from the decoded codeword; and

return the extracted error-free data chunk.

20. The data storage system of claim 11 , wherein the first storage device is configured to perform an in-place update in the first storage medium in response to receiving an update request; and

wherein, in response to receiving the update request, the second storage device is configured to store an update data chunk to the second storage medium update a mapping between a logical address and a physical address of the update data chunk in the second storage medium.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2019
From: LI, SHU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 048484/0548 →