IP Library Granted Patent US 10,817,187
Granted Patent B2
US 10,817,187 · App. 16/256,020 · Granted Oct 27, 2020

Balancing the block wearing leveling for optimum SSD endurance

Inventors: Niles Yang (Mountain View, CA); Sahil Sharma (San Jose, CA); Rohit Sehgal (San Jose, CA); Phil Reusswig (Mountain View, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0616G06F3/064G06F3/0659G06F3/0679
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,817,187
App. No.
16/256,020
Granted
Oct 27, 2020
Kind
B2
Abstract

In one embodiment, there is a method for implementing balancing block wearing leveling at a storage device including one or more single level cell (SLC) blocks in a SLC block pool and one or more non-single level cell (nSLC) blocks in a nSLC block pool for storing data and a memory controller for performing operations on the SLC blocks and nSLC blocks, the method comprising: at the memory controller: receiving a first request to perform a wear leveling operation on a respective block pool of one of: the SLC block pool and the nSLC block pool; determining whether one or more blocks in the respective block pool meet block pool transfer criteria; in response to a determination that the one or more blocks in the respective block pool meets block pool transfer criteria, reclassifying the one or more blocks in the respective block pool as the other of the SLC block pool and the nSLC block pool; and in response to a determination that the one or more blocks in the respective block pool does not meet block pool transfer criteria, refraining from reclassifying the one or more blocks in the respective block pool as the other of the SLC block pool and the nSLC block pool.

Claims (37)

1. A method for implementing balancing block wear leveling at a storage device including one or more first level-type blocks in a first level-type block pool and one or more second level-type blocks in a second level-type block pool for storing data, the method comprising:

receiving a first request or first instruction to perform a wear leveling operation on a respective block pool of one of: the first level-type block pool and the second level-type block pool;

in response to receiving the first request or first instruction to perform a wear leveling operation:

determining whether one or more blocks in the respective block pool meet block pool transfer criteria,

in response to a determination that the one or more blocks in the respective block pool meets block pool transfer criteria, reclassifying the one or more blocks in the respective block pool as the other of the first level-type block pool and the second level-type block pool, and

in response to a determination that the one or more blocks in the respective block pool does not meet block pool transfer criteria, refraining from reclassifying the one or more blocks in the respective block pool as the other of the first level-type block pool and the second level-type block pool;

wherein the respective block pool is the first level-type block pool; and

wherein the block pool transfer criteria is met when a program erase cycle (PEC) count for the one or more first level-type blocks is less than a sum of an average PEC count of the one or more second level-type blocks in the second level-type block pool and a second level-type block wear leveling threshold.

2. The method of claim 1 , wherein the block pool transfer criteria includes a criterion that is met when the PEC count for one or more of the first level-type blocks in the first level-type block pool is less than a second level-type wear leveling threshold.

3. The method of claim 2 , wherein the second level-type wear leveling threshold is a predetermined maximum PEC count difference between a second level-type block with a highest PEC count in the second level-type block pool and an second level-type block with a lowest PEC count in the second level-type block pool.

4. The method of claim 1 , further comprising: in response to a determination that the one or more blocks in the respective block pool meets block pool transfer criteria, reclassifying one or more second level-type blocks in the second level-type block pool as one or more first level-type blocks, wherein each of the one or more second level-type blocks have a program erase cycle count greater than a program erase cycle count of the other second level-type blocks in the second level-type block pool.

5. The method of claim 1 , further comprising:

reclassifying one or more second level-type blocks in the second level-type block pool as one or more first level-type blocks in the first level-type block pool including multiplying a corresponding PEC count for each of the one or more second level-type blocks by a first level-type conversion factor.

6. A storage device including one or more first level blocks in a first level block pool and one or more second level blocks in a second level block pool for storing data, the storage device comprising:

means for receiving a first request or first instruction to perform a wear leveling operation on a respective block pool of one of: the first level block pool and the second level block pool;

in response to receiving the first request or first instruction to perform a wear leveling operation:

means for determining whether one or more blocks in the respective block pool meet block pool transfer criteria,

in response to a determination that the one or more blocks in the respective block pool meets block pool transfer criteria, means for reclassifying the one or more blocks in the respective block pool as the other of the first level block pool and the second level block pool, and

in response to a determination that the one or more blocks in the respective block pool does not meet block pool transfer criteria, means for refraining from reclassifying the one or more blocks in the respective block pool as the other of the first level block pool and the second level block pool;

wherein the respective block pool is the first level block pool; and

wherein the block pool transfer criteria is met when a program erase cycle (PEC) count for the one or more first level blocks is less than a sum of an average PEC count of the one or more second level blocks in the second level block pool and a second level wear leveling threshold.

7. The storage device of claim 6 , wherein the block pool transfer criteria include a criterion that is met when the PEC count for one or more of the first level blocks in the first level block pool is less than a second level block wear leveling threshold.

8. The storage device of claim 7 , wherein the second level block wear leveling threshold is a predetermined maximum PEC count difference between a second level-type block with a highest PEC count in the second level block pool and an second level block with a lowest PEC count in the second level block pool.

9. The storage device of claim 6 , the storage device including in response to a determination that the one or more blocks in the respective block pool meets block pool transfer criteria, means for reclassifying one or more second level blocks in the second level block pool as one or more first level blocks, wherein each of the one or more second level blocks have a program erase cycle count greater than a program erase cycle count of the other second level-type blocks in the second level block pool.

10. The storage device of claim 6 , the storage device including:

means for reclassifying one or more second level blocks in the second level block pool as one or more first level blocks in the first level block pool including multiplying a corresponding PEC count for each of the one or more second level blocks by a first level conversion factor.

11. A memory controller for performing operations on single level cell (SLC) blocks and non-single level cell (non-SLC) blocks, the memory controller configured to perform the operations of:

receiving a first request or first instruction to perform a wear leveling operation on a respective SLC block pool;

in response to receiving the first request or first instruction to perform a wear leveling operation:

determining whether one or more SLC blocks in the respective SLC block pool meet block pool transfer criteria,

in response to a determination that the one or more SLC blocks in the respective SLC block pool meets the block pool transfer criteria, reclassifying the one or more SLC blocks in the respective SLC block pool to a non-SLC block pool, and

in response to a determination that the one or more SLC blocks in the respective SLC block pool does not meet the block pool transfer criteria, refraining from reclassifying the one or more SLC blocks in the respective SLC block pool to the non-SLC block pool; and

wherein the block pool transfer criteria is met when a program erase cycle (PEC) count for the one or more SLC blocks is less than a sum of an average PEC count of the one or more non-SLC blocks in the non-SLC block pool and a non-SLC block wear leveling threshold.

12. The memory controller of claim 11 , wherein the block pool transfer criteria include a criterion that is met when the PEC count for one or more of the SLC blocks in the SLC block pool is less than a non-SLC block wear leveling threshold.

13. The memory controller of claim 12 , wherein the non-SLC block wear leveling threshold is a predetermined maximum PEC count difference between a non-SLC block with a highest PEC count in the non-SLC block pool and a non-SLC block with a lowest PEC count in the non-SLC block pool.

14. The memory controller of claim 11 , the memory controller configured to perform the operations of:

reclassifying one or more non-SLC blocks in the non-SLC block pool as one or more SLC blocks in the SLC block pool including multiplying a corresponding PEC count for each of the one or more non-SLC blocks by a first level conversion factor.

Assignments (10)
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 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2019
From: YANG, NILES; SHARMA, SAHIL; REUSSWIG, PHIL; SEHGAL, ROHIT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 048158/0512 →
Continuity (1)
Related Publication 20200241765A1 · Jul 30, 2020