IP Library › Granted Patent US 9,563,373
Granted Patent B2
US 9,563,373 · App. 14/520,276 · Granted Feb 7, 2017

Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management

Inventors: Charles J. Camp (Sugar Land, TX); Timothy J. Fisher (Cypress, TX); Aaron D. Fry (Richmond, TX); Nikolas Ioannou (Zurich, CH); Roman Pletka (Uster, CH); Sasa Tomic (Kilchberg, CH)
Assignee: International Business Machines Corporation
G06F3/0619G06F3/0647G06F3/0653G06F3/0688G06F11/073G06F11/076G06F11/0793
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 9,563,373
App. No.
14/520,276
Granted
Feb 7, 2017
Kind
B2
Abstract

Non-volatile memory block management. A method according to one embodiment includes determining a block health of at least some non-volatile memory blocks of a plurality of non-volatile memory blocks that are configured to store data. An error count margin threshold is calculated for each of the at least some non-volatile memory blocks. A determination is made as to whether the error count margin threshold of any of the at least some non-volatile memory blocks has been exceeded. A memory block management function is triggered upon determining that the error count margin threshold of any of the non-volatile memory blocks has been exceeded.

Claims (37)

1. A system, comprising:

a plurality of non-volatile memory blocks configured to store data; and

a controller and logic integrated with and/or executable by the controller, the logic being configured to, for at least some of the plurality of non-volatile memory blocks:

determine a block health of each non-volatile memory block;

calculate an error count margin threshold for each non-volatile memory block;

determine whether the error count margin threshold of any of the non-volatile memory blocks has been exceeded; and

trigger a memory block management function upon determining that the error count margin threshold of any of the non-volatile memory blocks has been exceeded.

2. The system as recited in claim 1 , wherein the memory block management function includes setting an indicator.

3. The system as recited in claim 1 , wherein the memory block management function includes performing an immediate calibration of at least the non-volatile memory blocks having the exceeded threshold.

4. The system as recited in claim 1 , wherein the memory block management function includes scheduling a calibration of at least the non-volatile memory blocks having the exceeded threshold, wherein the calibration is scheduled to be performed during a subsequent background health check.

5. The system as recited in claim 1 , wherein the memory block management function includes scheduling a calibration of at least the non-volatile memory blocks having the exceeded threshold, wherein the calibration is performed during a currently ongoing background health check iteration.

6. The system as recited in claim 1 , wherein the logic is configured to:

reduce the block health of the non-volatile memory blocks having the exceeded threshold.

7. The system as recited in claim 1 , wherein a non-volatile memory block is retired when the error count margin threshold of the non-volatile memory block reaches a block retirement error count limit.

8. The system as recited in claim 1 , wherein the error count margin threshold of each non-volatile memory block is individually updated over time, wherein the memory block management function includes scheduling a calibration of at least the non-volatile memory blocks having the exceeded threshold, wherein the calibration is performed during a currently ongoing background health check iteration, wherein an order in which the calibration of at least the non-volatile memory blocks having the exceeded threshold is performed is determined by a priority level associated with each of the non-volatile memory blocks.

9. The system as recited in claim 1 , wherein the non-volatile memory is a NAND Flash memory.

10. A method, comprising:

determining, using a controller, a block health of each of at least some non-volatile memory blocks of a plurality of non-volatile memory blocks;

wherein the plurality of non-volatile memory blocks are configured to store data;

calculating an error count margin threshold for each of the at least some non-volatile memory blocks;

determining whether the error count margin threshold of any of the at least some non-volatile memory blocks has been exceeded; and

triggering a memory block management function upon determining that the error count margin threshold of any of the non-volatile memory blocks has been exceeded.

11. The method as recited in claim 10 , wherein the memory block management function includes setting an indicator.

12. The method as recited in claim 10 , wherein the memory block management function includes performing an immediate calibration of at least the non-volatile memory blocks having the exceeded threshold.

13. The method as recited in claim 10 , wherein the memory block management function includes scheduling a calibration of at least the non-volatile memory blocks having the exceeded threshold, wherein the calibration is scheduled to be performed during a subsequent background health check.

14. The method as recited in claim 10 , wherein the memory block management function includes scheduling a calibration of at least the non-volatile memory blocks having the exceeded threshold, wherein the calibration is performed during a currently ongoing background health check iteration.

15. The method as recited in claim 10 , comprising reducing the block health of the non-volatile memory blocks having the exceeded threshold.

16. The method as recited in claim 10 , wherein a non-volatile memory block is retired when the error count margin threshold of the non-volatile memory block reaches a block retirement error count limit.

17. The method as recited in claim 10 , wherein the error count margin threshold of each non-volatile memory block is individually updated over time, wherein the memory block management function includes setting an indicator for each of the non-volatile memory blocks having an exceeded error count margin threshold, wherein an additional action is performed on each of the non-volatile memory blocks having a corresponding indicator set, wherein the additional action is selected from a group consisting of: performing an immediate calibration of each of the non-volatile memory blocks having the corresponding indicator set, scheduling a calibration of each of the non-volatile memory blocks having the corresponding indicator set, and reducing the block health of each of the non-volatile memory blocks having the corresponding indicator set.

18. The method as recited in claim 10 , wherein the non-volatile memory is a NAND Flash memory, wherein calculating the error count margin threshold for each of the at least some non-volatile memory blocks includes adding a given percentage of an error count equivalent of the current block health value to the error count equivalent of the current block health value.

19. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable and/or executable by a controller to cause the controller to:

determine, by the controller, a block health of each of at least some non-volatile memory blocks of a plurality of non-volatile memory blocks;

wherein the plurality of non-volatile memory blocks are configured to store data;

calculate, by the controller, an error count margin threshold for each of the at least some non-volatile memory blocks;

determine, by the controller, whether the error count margin threshold of any of the at least some non-volatile memory blocks has been exceeded; and

trigger, by the controller, a memory block management function upon determining that the error count margin threshold of any of the non-volatile memory blocks has been exceeded.

20. The computer program product as recited in claim 19 , wherein the non-volatile memory is a NAND Flash memory, wherein the error count margin threshold of each of the at least some non-volatile memory blocks is individually updated over time, with a proviso that Flash memory block index tables are not maintained and/or monitored.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2014
From: CAMP, CHARLES J.; FISHER, TIMOTHY J.; FRY, AARON D.; IOANNOU, NIKOLAS; PLETKA, ROMAN; TOMIC, SASA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033997/0587 →
Continuity (1)
Related Publication 20160110124A1 · Apr 21, 2016