IP Library Granted Patent US 10,402,117
Granted Patent B2
US 10,402,117 · App. 16/002,391 · Granted Sep 3, 2019

Memory health monitoring

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,402,117
App. No.
16/002,391
Granted
Sep 3, 2019
Kind
B2
Abstract

A data storage device may be configured to write first data to a first set of storage elements of a non-volatile memory and to write second data to a second set of storage elements of the non-volatile memory. The first data may be processed by a data shaping operation, and the second data may not be processed by the data shaping operation. The data storage device may be further configured to read a representation of the second data from the second set of storage cells and to determine a block health metric of a portion of the non-volatile memory based on the representation of the second data. The portion may include the first set of storage elements and the second set of storage elements. As an illustrative, non-limiting example, the first portion may be a first block of the non-volatile memory.

Claims (111)

1. A data storage device, comprising:

a non-volatile memory; and

a controller coupled to the non-volatile memory, the controller comprising:

a memory health monitor, wherein the memory health monitor is configured to determine a block health metric; and

a data shaper, wherein the data shaper is configured to:

perform one or more data shaping operations on data prior to writing the data into memory, wherein the one or more data shaping operations generates shaped data having a larger number of bits with a value of “1” than bits with a value of “0”;

perform one or more data de-shaping operations on data previously read; and

initiate one or more actions based on the block health metric, wherein the one or more actions includes at least one of:

reduce a frequency of programming instructions to a particular portion of the non-volatile memory;

program a portion of non-volatile memory repeatedly; and

increase a data shaping level of the data.

2. The device of claim 1 , wherein the block health metric is determined by a bit error rate exceeding a threshold.

3. The device of claim 1 , wherein the block health metric is determined by a number of program and erase cycles exceeding a threshold.

4. The device of claim 1 , wherein the block health metric is determined by a combination of a bit error rate and a number of program and erase cycles exceeding a threshold.

5. The device of claim 1 , wherein the controller is configured to perform a normalization operation on a bit error rate prior to the memory health monitor using the bit error rate to determine the block health metric, and wherein the normalization operation is based on the data shaping level associated with the data shaping operations.

6. The device of claim 1 , wherein the one or more data shaping operations includes an adaptive general bit flipping operation.

7. A data storage device, comprising:

a non-volatile first memory;

a controller coupled to the non-volatile first memory, comprising:

a second memory configured to store location information associated with shaped and de-shaped data;

a memory health monitor; and

a data shaper; and

means for calculating a block health metric of a first portion of the non-volatile first memory, wherein:

the block health metric is calculated based on a bit error rate and a count of program and erase cycles of the first portion of the non-volatile first memory;

the data shaper performs one or more data shaping operations on data prior to writing the data into the non-volatile first memory;

the one or more data shaping operations generates shaped data having a larger number of bits having a value of “1” than bits having a value of “0”; and

the de-shaped data is data that has been processed by a data pre-processing operation prior to being processed by the one or more data shaping operations.

8. The device of claim 7 , wherein the second memory also stores at least one of a count of program and erase cycles, a bit error rate threshold, and a count of polling cycles.

9. The device of claim 7 , wherein the second memory also stores de-shaped data location information.

10. The device of claim 9 , wherein the de-shaped data location information identifies groups of word lines of the first portion of the first memory where de-shaped data is to be stored during a polling cycle.

11. A data storage system, comprising:

an access device; and

a data storage device coupled to the access device, comprising:

a non-volatile first memory; and

a controller coupled to the non-volatile first memory, the controller comprising:

a memory health monitor, wherein the memory health monitor is configured to determine a block health metric;

a data shaper, wherein the data shaper is configured to:

perform one or more data shaping operations on data prior to writing the data into memory, wherein the one or more data shaping operations generates shaped data having a larger number of bits with a value of “1” than bits with a value of “0”, wherein:

the controller is configured to calculate a block health metric of a first portion of the non-volatile first memory; and

the block health metric is based on a bit error rate and a count of program and erase cycles of the first portion of the non-volatile first memory.

12. The system of claim 11 , wherein the data storage device is configured to send health indicator data to the access device based on the block health metric.

13. A data storage system, comprising:

an access device; and

a data storage device coupled to the access device, comprising:

a non-volatile first memory; and

a controller coupled to the non-volatile first memory, wherein:

the controller is configured to calculate a block health metric of a first portion of the non-volatile first memory; and

the block health metric is based on a bit error rate and a count of program and erase cycles of the first portion of the non-volatile first memory, further comprising a data shaper located in the controller and configured to process data received from the access device in a data shaping operation, wherein the data shaping operation generates shaped data having a larger number of bits having a value of “1” than bits having a value of “0”.

14. A data storage system, comprising:

an access device; and

a data storage device coupled to the access device, comprising:

a non-volatile first memory; and

a controller coupled to the non-volatile first memory, wherein:

the controller is configured to calculate a block health metric of a first portion of the non-volatile first memory; and

the block health metric is based on a bit error rate and a count of program and erase cycles of the first portion of the non-volatile first memory, wherein:

the controller determines whether to execute a data shaping operation or to store into the non-volatile first memory a de-shaped data received from incoming data from the access device based on the block health metric;

the de-shaped data is data that has been processed by a data pre-processing operation prior to being processed by one or more data shaping operations; and

the data shaping operation is configured to generate shaped data having a larger number of bits having a value of “1” than bits having a value of “0”.

15. The system of claim 11 , wherein

the non-volatile first memory is divided into a plurality of portions; and

the controller is configured to calculate a block health for each of the plurality of portions.

16. A method, comprising:

maintaining, by a controller, a count of program and erase cycles of a first portion of a memory;

initiating, by the controller, a memory health monitoring operation based on whether the count of program and erase cycles equals a threshold value, wherein the memory health monitor is configured to determine a block health metric of the first portion of the memory;

calculating, by the controller, the block health metric of the first portion of the memory, based on a bit error rate and the count of program and erase cycles of the first portion of the memory;

performing, by a data shaper of the controller, one or more data shaping operations on data prior to writing the data into memory, wherein the one or more data shaping operations generates shaped data having a larger number of bits with a value of “1” than bits with a value of “0”; and

initiating, by the controller, one or more actions in response to the block health metric, wherein the one or more actions includes at least one of:

reducing a frequency of programming instructions to a particular portion of a non-volatile memory;

programming a portion of the non-volatile memory repeatedly; and

increasing a data shaping level of the data.

17. The method of claim 16 , wherein the one or more actions is comprised of mapping data to be stored from the first portion of the memory to a second portion of the memory.

18. A method, comprising:

maintaining, by a controller, a count of program and erase cycles of a first portion of a memory;

initiating, by the controller, a memory health monitoring operation based on whether the count of program and erase cycles equals a threshold value;

calculating, by the controller, a block health metric of the first portion of the memory, based on a bit error rate and the count of program and erase cycles of the first portion of the memory; and

initiating, by the controller, one or more actions in response to the block health metric, wherein the one or more actions includes at least one of:

reducing a frequency of programming instructions to a particular portion of a non-volatile memory;

programming a portion of the non-volatile memory repeatedly; and

increasing a data shaping level of the data, wherein

the memory health monitoring operation is a fail bit count sampling operation comprising selected word lines within the first portion of the memory to program with de-shaped data;

the de-shaped data is data that has been processed by a data pre-processing operation prior to being processed by one or more data shaping operations; and

the data shaping operation is configured to generate shaped data having a larger number of bits having a value of “1” than bits having a value of “0”.

19. The method of claim 18 , further comprising:

sampling, by the controller, the first portion of the memory before the first portion of the memory is closed;

reading, by the controller, erased word lines to determine if a disturbance caused by the failed bit count sampling operation exceeds a disturbance threshold;

stopping the fail bit count sampling operation based on a value of the disturbance threshold; and

waiting for the first portion of the memory to complete a program or erase operation.

20. A method, comprising:

maintaining, by a controller, a count of program and erase cycles of a first portion of a memory;

initiating, by the controller, a memory health monitoring operation based on whether the count of program and erase cycles equals a threshold value;

calculating, by the controller, a block health metric of the first portion of the memory, based on a bit error rate and the count of program and erase cycles of the first portion of the memory; and

initiating, by the controller, one or more actions in response to the block health metric, wherein the one or more actions includes at least one of:

reducing a frequency of programming instructions to a particular portion of a non-volatile memory;

programming a portion of the non-volatile memory repeatedly; and

increasing a data shaping level of the data, wherein the memory health monitoring operation comprises:

disabling a data shaping operation in the controller; and

programming de-shaped data to one or more selected word lines, wherein:

the data shaping operation is configured to generate shaped data having a larger number of bits having a value of “1” than bits having a value of “0”; and

the de-shaped data is data that has been processed by a data pre-processing operation prior to being processed by one or more data shaping operations.

21. A method, comprising:

determining, by a memory health monitor of a controller associated with a data storage device, a block health metric of a first portion of a non-volatile memory;

comparing, by the controller, the block health metric to a memory health threshold;

performing, by a data shaper of the controller, one or more data shaping operations on data prior to writing the data into memory, wherein the one or more data shaping operations generates shaped data having a larger number of bits with a value of “1” than bits with a value of “0”; and

initiating, by the controller, one or more actions based on the block health metric, wherein the one or more actions includes at least one of:

reducing a frequency of programming instructions to a particular portion of the non-volatile memory;

programming a portion of non-volatile memory repeatedly; and

increasing a data shaping level of the data, wherein a data shaping operation is configured to generate shaped data having a larger number of bits having a value of “1” than bits having a value of “0”.

22. The method of claim 21 , wherein the one or more actions includes one or more instructions to reduce wear at a particular portion of the non-volatile memory.

23. The method of claim 21 , further comprising the controller determining a health metric of multiple portions of the non-volatile memory by determining one block health metric and assigning the block health metric to other portions of the non-volatile memory.

24. The method of claim 21 , wherein the one or more actions include sending the block health metric to an access device.

25. The method of claim 21 , wherein the memory health threshold includes at least one of a bit error rate threshold, a program and erase cycle count threshold, and a polling cycle count threshold.

Assignments (13)
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 - 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 →
CHANGE OF NAME Recorded Jul 17, 2019
From: SANDISK TECHNOLOGIES INC.
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 051324/0169 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2019
From: SANDISK TECHNOLOGIES LLC
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049773/0237 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2019
From: YANG, NIAN NILES; ALROD, IDAN
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 049773/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2019
From: SANDISK TECHNOLOGIES LLC
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049292/0513 →