IP Library Granted Patent US 10,515,008
Granted Patent B2
US 10,515,008 · App. 15/793,387 · Granted Dec 24, 2019

Performance based memory block usage

Inventors: Rohit Sehgal (San Jose, CA); Nian Niles Yang (Mountain View, CA)
Assignee: Western Digital Technologies, Inc.
G06F12/0246G06F3/061G06F3/064G06F3/0619G06F3/0688G06F12/0253G11C11/5628G11C16/10G11C16/349G06F2212/1016
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,515,008
App. No.
15/793,387
Granted
Dec 24, 2019
Kind
B2
Abstract

Blocks of memory cells may be selected for use based on one or more measured performance characteristics that may include, but are not limited to, programming time or fail bit count. Blocks may be placed into a single level cell (SLC) block pool and one or more multi-level cell (MLC) block pools based on measured performance characteristic(s). For example, blocks that have a better SLC performance may be placed into the SLC block pool. Blocks may be targeted for garbage collection based on one or more measured performance characteristics. For example, blocks within an SLC block pool may be targeted for garbage collection based on a performance ranking of the SLC blocks, blocks within an MLC block pool may be targeted for garbage collection based on a performance ranking of the MLC blocks. Thus, the better performing blocks may be used more frequently, thereby improving performance.

Claims (45)

1. An apparatus, comprising:

a plurality of blocks of memory cells;

performance measurement logic configured to measure one or more performance characteristics of ones of the blocks, the performance measurement logic further configured to measure single bit per cell performance of the plurality of blocks of memory cells; and

block selection logic configured to select a block for use based on the measured one or more performance characteristics, the block selection logic further configured to select a block for single bit per cell use based on the measured single bit per cell performance of the respective blocks.

2. The apparatus of claim 1 , wherein the block selection logic is further configured to select blocks for a single level cell (SLC) pool and to select blocks for a multi-level cell (MLC) pool based on the one or more measured performance characteristics.

3. The apparatus of claim 1 , wherein the block selection logic is further configured to garbage collect blocks based on the one or more measured performance characteristics.

4. The apparatus of claim 3 , wherein the block selection logic is further configured to:

select blocks within a single bit per cell (SLC) block pool for garbage collection based on a ranking of the SLC blocks based on the one or more measured performance characteristics; and

select blocks within a multi-bit per cell (MLC) block pool for garbage collection based on a ranking of the MLC blocks based on the one or more measured performance characteristics.

5. The apparatus of claim 1 , wherein the one or more performance characteristics comprise one or more of programming time or fail bit count, wherein the block selection logic is further configured to select a block for use based on one or more of the measured programming time or the measured fail bit count for the respective blocks.

6. The apparatus of claim 1 , wherein the one or more performance characteristics comprise programming time, wherein the block selection logic is configured to select a block for use based on the measured programming time for the respective blocks.

7. The apparatus of claim 1 , wherein the one or more performance characteristics comprise fail bit count, wherein the block selection logic is further configured to select a block for use based on the measured fail bit count for the respective blocks.

8. The apparatus of claim 1 , wherein:

the performance measurement logic is further configured to measure multi-bit per cell performance of blocks not selected for single bit per cell use; and

the block selection logic is further configured to select a block for multi-bit per cell use based on the measured multi-bit per cell performance of the respective blocks not selected for single bit per cell use.

9. The apparatus of claim 1 , wherein:

the performance measurement logic is further configured to determine a metric based on one or more of single bit per cell programming time or fail bit count for memory cells programmed to a single bit per cell; and

the block selection logic is further configured to place blocks having the highest metric into a pool of SLC blocks and to place blocks having lower metrics into one or more pools of MLC blocks, wherein a higher metric is associated with better performance.

10. The apparatus of claim 9 , wherein the metric is based on single bit per cell programming time.

11. The apparatus of claim 9 , wherein the metric is based on single bit per cell programming time and fail bit count for memory cells programmed to a single bit per cell.

12. A method comprising:

determining, by a control circuit on a non-volatile storage device, one or more performance metrics for ones of a plurality of blocks of memory cells in the non-volatile storage device, the one or more performance metrics comprise a single bit per cell programming time metric;

ranking, by the control circuit, the plurality of blocks based on the one or more performance metrics, the ranking the plurality of blocks comprises ranking the blocks based on the single bit per cell programming time metric; and

selecting blocks for use, by the control circuit, based on the ranking, the selecting blocks for use comprises selecting blocks for single bit per cell use based on the single bit per cell programming time metric of the respective blocks.

13. The method of claim 12 , wherein:

the ranking the plurality of blocks comprises ranking the blocks from fastest single bit per memory cell programming time to slowest single bit per memory cell programming time; and

the selecting blocks for use comprises placing the fastest blocks at single bit per memory cell programming time into a single level cell (SLC) block pool and blocks having the slowest single bit per memory cell programming time into one or more multi-level cell (MLC) block pools.

14. The method of claim 13 , further comprising:

selecting blocks within the SLC block pool for garbage collection based on the ranking of the SLC blocks; and

selecting blocks within the one or more MLC block pools for garbage collection based on the ranking of the MLC blocks.

15. The method of claim 13 , wherein ranking the plurality of blocks; and placing blocks into the single level cell (SLC) block pool and the one or more multi-level cell (MLC) block pools comprises:

ranking blocks not placed into the SLC block pool in terms of two-bit per memory cell programming time; and

placing blocks fastest at two-bit per memory cell programming time in a pool for programming at two bits per memory cell; and

placing remaining blocks into a pool for programming at more than two bits per memory cell.

16. A non-volatile memory device, comprising:

a plurality of blocks of memory cells;

performance measurement means for measuring one or more performance characteristics of ones of the blocks of memory cells, the one or more performance characteristics comprise a single bit per cell fail bit count (FBC);

ranking means for ranking the plurality of blocks based on the one or more performance characteristics, the ranking the plurality of blocks comprises ranking the blocks based on the single bit per cell FBC; and

block selection means for selecting blocks for single level cell (SLC) use and for selecting blocks for multi-level cell (MLC) use based on the ranking, the block selection means further selecting blocks for single bit per cell use based on the single bit per cell FBC of the respective blocks.

17. The non-volatile memory device of claim 16 , wherein the block selection means is further for:

placing blocks having the lowest single bit per cell FBC in a single level cell (SLC) block pool; and

placing blocks having a higher single bit per cell FBC in one or more multi-level cell (MLC) block pools.

18. The non-volatile memory device of claim 17 , wherein the block selection means is further for:

selecting blocks within the SLC block pool for garbage collection based on the ranking of the SLC blocks; and

selecting blocks within the one or more MLC block pools for garbage collection based on the ranking of the MLC blocks.

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 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 Oct 26, 2017
From: SEHGAL, ROHIT; YANG, NIAN NILES
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043955/0729 →