IP Library Granted Patent US 11,934,264
Granted Patent B2
US 11,934,264 · App. 17/531,975 · Granted Mar 19, 2024

ECC parity biasing for Key-Value data storage devices

Inventors: Ran Zamir (Ramat Gan, IL); David Avraham (Even Yehuda, IL); Alexander Bazarsky (Holon, IL)
Assignee: Western Digital Technologies, Inc.
G06F11/1068G06F3/0619G06F3/0631G06F3/0659G06F3/0673G06F11/1004
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 11,934,264
App. No.
17/531,975
Granted
Mar 19, 2024
Kind
B2
Abstract

Error correction code (ECC) coding for key-value data storage devices. In one embodiment, a controller includes a memory interface configured to interface with a memory; an ECC engine configured to perform ECC coding on data stored in memory; a controller memory including a flash translation layer and a namespace database; and an electronic processor. The electronic processor is configured to receive data to be stored, separate the data into a plurality of sub-code blocks, and allocate parity bits to each sub-code block of the plurality of sub-code blocks.

Claims (46)

1. A data storage controller, comprising:

a memory interface configured to interface with a memory;

an error correction code (ECC) engine configured to perform ECC coding on data stored in the memory;

a controller memory including a flash translation layer (FTL) and a key-value (KV) database; and

an electronic processor communicatively connected to the ECC engine and the controller memory, the electronic processor, when executing the FTL, is configured to:

receive data to be stored in the KV database,

separate the data into a plurality of sub-code blocks, and

allocate parity bits generated by the ECC engine to each sub-code block of the plurality of sub-code blocks.

2. The data storage controller of claim 1 , wherein the parity bits are asymmetrically allocated to each sub-code block of the plurality of sub-code blocks.

3. The data storage controller of claim 2 , wherein a first sub-code block of the plurality of sub-code blocks receives more parity bits than a last sub-code block of the plurality of sub-code blocks.

4. The data storage controller of claim 1 , wherein the electronic processor, when executing the FTL, is further configured to:

write, after allocating the parity bits to each sub-code block of the plurality of sub-code blocks, the plurality of sub-code blocks to the memory, wherein the plurality of sub-code blocks are written sequentially.

5. The data storage controller of claim 1 , wherein the plurality of sub-code blocks are a plurality of tiles that are part of a Spatially-Coupled Low Density Parity Check (SC-LDPC) structure.

6. The data storage controller of claim 5 , wherein the electronic processor, when executing the FTL, is further configured to:

write, after allocating the parity bits to each tile of the plurality of tiles, a first tile of the plurality of tiles to the memory, and

write, after writing the first tile of the plurality of tiles to the memory, a last tile of the plurality of tiles to the memory.

7. The data storage controller of claim 5 , wherein the electronic processor, when executing the FTL, is further configured to:

write, after allocating the parity bits to each tile of the plurality of tiles, the plurality of tiles to the memory, wherein the plurality of tiles are written to memory sequentially.

8. The data storage controller of claim 7 , wherein the electronic processor, when executing the FTL, is further configured to:

decode the plurality of tiles from the memory in the order in which the plurality of tiles were written to the memory using a sliding window process.

9. A method comprising:

receiving, with an electronic processor of a data storage controller, data to be stored in a key-value (KV) database;

separating the data into a plurality of sub-code blocks; and

allocating parity bits to each sub-code block of the plurality of sub-code blocks.

10. The method of claim 9 , wherein the parity bits are asymmetrically allocated to each sub-code block of the plurality of sub-code blocks.

11. The method of claim 10 , wherein a first sub-code block of the plurality of sub-code blocks receives more parity bits than a last sub-code block of the plurality of sub-code blocks.

12. The method of claim 9 , further comprising:

writing, after allocating the parity bits to each sub-code block of the plurality of sub-code blocks, the plurality of sub-code blocks to the key-value (KV) database.

13. The method of claim 9 , wherein the plurality of sub-code blocks are a plurality of tiles that are part of a Spatially-Coupled Low Density Parity Check (SC-LDPC) structure.

14. The method of claim 13 , wherein writing the sub-code blocks to the KV database includes:

writing a first tile of the plurality of tiles to the KV database, and

writing, after writing the first tile of the plurality of tiles to the KV database, a last tile of the plurality of tiles to the KV database.

15. The method of claim 14 , further comprising:

decoding the plurality of tiles from the KV database in the order in which the plurality of tiles were written to the KV database, wherein the plurality of tiles are decoded using a sliding window process.

16. A memory device that supports storing data in a key value namespace, the memory device comprising:

a memory including a key-value (KV) database; and

a controller configured to:

perform a first Error Correction Code (ECC) coding process that allocates parity into first user data when writing the first user data to the KV database; and

perform a second ECC coding process that allocates parity into second user data when writing the second user data to a second KV database located within an external electronic device.

17. The memory device of claim 16 , wherein the first ECC coding process asymmetrically allocates the parity into the user data, and wherein the first ECC coding process allocates a greater number of parity bits at the beginning of the user data than at the end of the user data.

18. The memory device of claim 16 , wherein, to perform the first ECC coding process that allocates the parity into the user data when writing the user data to the KV database, the controller is further configured to:

separate the user data into a plurality of tiles of a Spatially-Coupled Low Density Parity Check (SC-LDPC) structure, and

asymmetrically allocate parity to the plurality of tiles.

19. The memory device of claim 18 , wherein, to perform the first ECC coding process that allocates the parity into the user data when writing the user data to the KV database, the controller is further configured to:

write a first tile of the plurality of tiles to the KV database, and

write, after writing the first tile to the KV database, a last tile of the plurality of tiles to the KV database.

Assignments (8)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2021
From: ZAMIR, RAN; AVRAHAM, DAVID; BAZARSKY, ALEXANDER
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058177/0704 →
Continuity (1)
Related Publication 20230161666A1 · May 25, 2023