IP Library Granted Patent US 11,775,178
Granted Patent B2
US 11,775,178 · App. 17/356,403 · Granted Oct 3, 2023

Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery

Inventors: Jun Tao (Ladera Ranch, CA); Niang-Chu Chen (Irvine, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0619G06F3/0659G06F3/0679G11C16/26G11C16/349G11C16/0408
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,775,178
App. No.
17/356,403
Granted
Oct 3, 2023
Kind
B2
Abstract

Apparatus, media, methods, and systems are disclosed for improved data relocation based on read-level voltages. A data storage system may include a non-volatile memory device including a source region and a destination region. The destination region may include a first destination block and a second destination block. A controller may read first data in the source region using a first read-level voltage, and read second data in the source region using a second read-level voltage. The controller may associate, based on the first and second read-level voltages, each of the first data and the second data with a respective one of the first and the second destination blocks. The controller may cause each of the first and second data to be stored in the associated one of the first and second destination blocks.

Claims (74)

1. A computer-implemented method for a data storage system, the method comprising:

when first data from a source region is successfully read using a first voltage, associating an identifier of the first data with a first relocation buffer associated with a first destination block, and relocating the first data to the first destination block;

when second data from the source region is successfully read using a second voltage, associating an identifier of the second data with a second relocation buffer associated with a second destination block, and relocating the second data to the second destination block; and

when third data from the source region is successfully read using a third voltage, associating an identifier of the third data with the first or the second relocation buffer, depending on occupancy levels of the first and second relocation buffers associated with the first and second destination blocks respectively, and relocating the third data to one of the first and second relocation buffers, depending on the association of the identifier of the third data with the first or the second relocation buffer respectively,

wherein:

the first voltage is less than the third voltage, and the third voltage is less than the second voltage; and

the first voltage is designated to the first destination block, the second voltage is designated to the second destination block, and the third voltage is not designated to any of the first or second destination block.

2. The computer-implemented method of claim 1 , wherein:

the first and second destination blocks are pre-designated to the first and second voltages, respectively, prior to reading the first and second data;

the first and second destination blocks are pre-designated to a first program-erase cycle count and a second program-erase cycle count, respectively, prior to reading the first and second data, wherein the first program-erase cycle count is greater than the second program-erase cycle count;

prior to successfully reading any data from the source region using the first voltage, all data successfully read from first and second source blocks of the source region using the first voltage, are predetermined and required to be relocated to the first destination block; and

prior to successfully reading any data from the source region using the second voltage, all data successfully read from the first and second source blocks of the source region using the second voltage, are predetermined and required to be relocated to the second destination block.

3. The computer-implemented method of claim 2 , wherein the first and second destination blocks are pre-designated to the first and second relocation buffers, respectively, prior to reading the first and second data.

4. The computer-implemented method of claim 1 , wherein:

the data storage system comprises: the source region having a first source block and a second source block different from the first source block; a destination region having the first destination block and the second destination block different from the first destination block; and a relocation region having the first relocation buffer and the second relocation buffer different from the first relocation buffer; and

the data storage system comprises non-volatile memory device including the source region and the destination region.

5. The computer-implemented method of claim 1 , wherein:

when a data is unsuccessfully read using the third voltage, occupancy levels of the first and second relocation buffers for relocating the data are not determined;

when the first data is successfully read using the first voltage, occupancy levels of the first and second relocation buffers for relocating the first data are not determined, and

when the second data is successfully read using the second voltage, occupancy levels of the first and second relocation buffers for relocating the second data are not determined.

6. The computer-implemented method of claim 1 , wherein a destination region, having the first and second destination blocks, is logically grouped into the first and second destination blocks predetermined based on program-erase cycle counts.

7. The computer-implemented method of claim 1 , wherein the third voltage is a read-level voltage determined based on a program-erase cycle count of a non-volatile memory device including a destination region having the first and second destination blocks.

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

reading a first one of a plurality of code words using the third voltage, wherein the plurality of code words are included in one of a logical pages included in the source region;

reading a second one of the plurality of code words using a fourth voltage that is different from the third voltage; and

storing the first and second ones of the plurality of code words to a same one of the first and second destination blocks, based on occupancy levels of the first and second relocation buffers associated with the first and second destination blocks.

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

the data storage system comprises the first relocation buffer associated with the first destination block and the second relocation buffer associated with the second destination block; and

the one of the first and second relocation buffers, for relocating the third data, has a smaller amount of unoccupied data space than the other one of the first and second relocation buffers.

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

prior to successfully reading any data from the source region using the first voltage, all data successfully read from any source blocks of the source region using the first voltage are predetermined and required to be relocated to the first destination block and not to the second destination block, regardless of occupancy levels of the first and second relocation buffers associated with the first and second destination blocks respectively; and

prior to successfully reading any data from the source region using the second voltage, all data successfully read from any source blocks of the source region using the second voltage are predetermined and required to be relocated to the second destination block and not to the first destination block, regardless of occupancy levels of the first and second relocation buffers associated with the first and second destination blocks respectively.

11. A data storage system, comprising:

memory comprising a source region and a destination region having a first destination block and a second destination block; and

one or more controllers configured to cause:

when first data from the source region is successfully read using a first voltage, associating an identifier of the first data with a first relocation buffer associated with the first destination block, and relocating the first data to the first destination block;

when second data from the source region is successfully read using a second voltage, associating an identifier of the second data with a second relocation buffer associated with the second destination block, and relocating the second data to the second destination block; and

when third data from the source region is successfully read using a third voltage, associating an identifier of the third data with the first or the second relocation buffer, depending on occupancy levels of the first and second relocation buffers associated with the first and second destination blocks respectively, and relocating the third data to one of the first and second relocation buffers, depending on the association of the identifier of the third data with the first or the second relocation buffer respectively,

wherein:

the first voltage is less than the third voltage, and the third voltage is less than the second voltage; and

the first voltage is designated to the first destination block, the second voltage is designated to the second destination block, and the third voltage is not designated to any of the first or second destination block.

12. The data storage system of claim 11 , wherein:

the first and second destination blocks are pre-designated to the first and second voltages, respectively, prior to reading the first and second data;

the first and second destination blocks are pre-designated to a first program-erase cycle count and a second program-erase cycle count, respectively, prior to reading the first and second data, wherein the first program-erase cycle count is greater than the second program-erase cycle count;

prior to successfully reading any data from the source region using the first voltage, all data successfully read from first and second source blocks of the source region using the first voltage, are predetermined and required to be relocated to the first destination block; and

prior to successfully reading any data from the source region using the second voltage, all data successfully read from the first and second source blocks of the source region using the second voltage, are predetermined and required to be relocated to the second destination block.

13. The data storage system of claim 12 , wherein the first and second destination blocks are pre-designated to the first and second relocation buffers, respectively, prior to reading the first and second data.

14. The data storage system of claim 11 , wherein the one or more controllers are configured to cause:

when a data is unsuccessfully read using the third voltage, not determining occupancy levels of the first and second relocation buffers for relocating the data;

when the first data is successfully read using the first voltage, not determining occupancy levels of the first and second relocation buffers for relocating the first data, and

when the second data is successfully read using the second voltage, not determining occupancy levels of the first and second relocation buffers for relocating the second data.

15. The data storage system of claim 11 , wherein the third voltage is a read-level voltage determined based on a program-erase cycle count of memory including the destination region.

16. The data storage system of claim 11 , wherein:

prior to successfully reading any data from the source region using the first voltage, all data successfully read from any source blocks of the source region using the first voltage are predetermined and required to be relocated to the first destination block and not to the second destination block, regardless of occupancy levels of the first and second relocation buffers associated with the first and second destination blocks respectively; and

prior to successfully reading any data from the source region using the second voltage, all data successfully read from any source blocks of the source region using the second voltage are predetermined and required to be relocated to the second destination block and not to the first destination block, regardless of occupancy levels of the first and second relocation buffers associated with the first and second destination blocks respectively.

17. An apparatus, comprising:

when first data from a source region is successfully read using a first voltage, means for associating an identifier of the first data with a first relocation buffer associated with a first destination block, and relocating the first data to the first destination block;

when second data from the source region is successfully read using a second voltage, means for associating an identifier of the second data with a second relocation buffer associated with a second destination block, and relocating the second data to the second destination block; and

when third data from the source region is successfully read using a third voltage, means for associating an identifier of the third data with the first or the second relocation buffer, depending on occupancy levels of the first and second relocation buffers associated with the first and second destination blocks respectively, and relocating the third data to one of the first and second relocation buffers, depending on the association of the identifier of the third data with the first or the second relocation buffer respectively,

wherein:

the first voltage is less than the third voltage, and the third voltage is less than the second voltage; and

the first voltage is designated to the first destination block, the second voltage is designated to the second destination block, and the third voltage is not designated to any of the first or second destination block.

18. The apparatus of claim 17 , wherein:

the first and second destination blocks are pre-designated to the first and second voltages, respectively, prior to reading the first and second data;

the first and second destination blocks are pre-designated to a first program-erase cycle count and a second program-erase cycle count, respectively, prior to reading the first and second data, wherein the first program-erase cycle count is greater than the second program-erase cycle count;

prior to successfully reading any data from the source region using the first voltage, all data successfully read from first and second source blocks of the source region using the first voltage, are predetermined and required to be relocated to the first destination block; and

prior to successfully reading any data from the source region using the second voltage, all data successfully read from the first and second source blocks of the source region using the second voltage, are predetermined and required to be relocated to the second destination block.

19. The apparatus of claim 17 , wherein:

when a data is unsuccessfully read using the third voltage, occupancy levels of the first and second relocation buffers for relocating the data are not determined;

when the first data is successfully read using the first voltage, occupancy levels of the first and second relocation buffers for relocating the first data are not determined, and

when the second data is successfully read using the second voltage, occupancy levels of the first and second relocation buffers for relocating the second data are not determined.

20. The apparatus of claim 17 , wherein:

prior to successfully reading any data from the source region using the first voltage, all data successfully read from any source blocks of the source region using the first voltage are predetermined and required to be relocated to the first destination block and not to the second destination block, regardless of occupancy levels of the first and second relocation buffers associated with the first and second destination blocks respectively; and

prior to successfully reading any data from the source region using the second voltage, all data successfully read from any source blocks of the source region using the second voltage are predetermined and required to be relocated to the second destination block and not to the first destination block, regardless of occupancy levels of the first and second relocation buffers associated with the first and second destination blocks respectively.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 057651 FRAME 0296 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058981/0958 →
SECURITY INTEREST Recorded Sep 17, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 057651/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2021
From: TAO, JUN; CHEN, NIANG-CHU
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 056762/0926 →