IP Library Granted Patent US 9,569,120
Granted Patent B2
US 9,569,120 · App. 14/816,986 · Granted Feb 14, 2017

Adaptive flash tuning

Inventors: Conor Maurice Ryan (Limerick, IE); Joseph Sullivan (Shannon, IE)
Assignee: NVMDURANCE LIMITED
G06F3/0616G06F3/0605G06F3/0634G06F3/0653G06F3/0679G06F3/0688G11C16/349G11C29/50012G06F12/0246
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,569,120
App. No.
14/816,986
Granted
Feb 14, 2017
Kind
B2
Abstract

The present invention includes embodiments of systems and methods for increasing the operational efficiency and extending the estimated operational lifetime of a flash memory storage device (and its component flash memory chips, LUNs and blocks of flash memory) by monitoring the health of the device and its components and, in response, adaptively tuning the operating parameters of flash memory chips during their operational lifetime, as well as employing other less extreme preventive measures in the interim, via an interface that avoids the need for direct access to the test modes of the flash memory chips. In an offline characterization phase, “test chips” from a batch of recently manufactured flash memory chips are used to simulate various usage scenarios and measure the performance effects of writing and attempting to recover (read) test patterns written with different sets of operating parameters over time (simulating desired retention periods).

Claims (23)

1. A flash memory controller that controls the operation of one or more flash memory chips, each chip organized into one or more LUNs, and each LUN associated with one or more blocks of flash memory and one or more control registers storing operating parameters associated with that LUN, the flash memory controller comprising:

(a) an operating parameter database that stores, with respect to each LUN of the one or more flash memory chips, a plurality of sets of operating parameters, each set of operating parameters corresponding to a health stage representing an estimated level of degradation of the flash memory within that LUN;

(b) a controller memory command module that issues read, write and erase controller memory commands to the flash memory chips, wherein each of the flash memory chips implements the controller memory commands by applying varying levels of electrical stimuli to the blocks of flash memory in a LUN in accordance with current values of the operating parameters associated with that LUN; and

(c) an inference engine that:

(i) analyzes a plurality of wear indicators that evidence degradation of the flash memory over time, wherein one of the plurality of wear indicators is a current cumulative number of program/erase cycles performed by the flash memory controller during the operational lifetime of the one or more flash memory chips, and

(ii) determines, based on the analysis of the wear indicators, whether a transition of a LUN from a current health stage to a subsequent health stage is warranted and, if so, replaces the contents of the LUN's control registers with the set of operating parameters corresponding to the subsequent health stage.

2. The flash memory controller of claim 1 , wherein the plurality of wear indicators includes BER data resulting from the issuance of memory controller commands to read the contents of the flash memory.

3. The flash memory controller of claim 1 , wherein the plurality of wear indicators includes timing information with respect to the issuance of one or more controller memory commands.

4. The flash memory controller of claim 1 , wherein, with respect to each health stage, the set of operating parameters corresponding to that health stage is the same for each LUN of each of the one or more flash memory chips.

5. The flash memory controller of claim 1 , wherein the sets of operating parameters corresponding to the health stages are predetermined in an offline characterization phase prior to the operational lifetime of the one or more flash memory chips.

6. The flash memory controller of claim 1 , wherein the inference engine, upon determining that a transition of a LUN from a current health stage to a subsequent health stage is not warranted, employs one or more preventive measures to reduce the rate of degradation of the flash memory over time, and thereby extend the operational lifetime of the one or more flash memory chips.

7. The flash memory controller of claim 6 , wherein the preventive measures include one or more of the following: (a) resting one or more of the blocks of a LUN of the one or more flash memory chips, (b) reducing the usage of one or more blocks of a LUN of the one or more flash memory chips, and (c) moving the data contents of a suspect block to another block in the one or more flash memory chips.

8. A method for controlling the operation of one or more flash memory chips, each chip organized into one or more LUNs, and each LUN associated with one or more blocks of flash memory and one or more control registers storing operating parameters associated with that LUN, the method comprising the following steps:

(a) storing, with respect to each LUN of the one or more flash memory chips, a plurality of sets of operating parameters, each set of operating parameters corresponding to a health stage representing an estimated level of degradation of the flash memory within that LUN;

(b) issuing read, write and erase controller memory commands to the flash memory chips, wherein each of the flash memory chips implements the controller memory commands by applying varying levels of electrical stimuli to the blocks of flash memory in a LUN in accordance with current values of the operating parameters associated with that LUN;

(c) analyzing a plurality of wear indicators that evidence degradation of the flash memory over time, wherein one of the plurality of wear indicators is a current cumulative number of program/erase cycles performed during the operational lifetime of the one or more flash memory chips; and

(d) determining, based on the analysis of the wear indicators, whether a transition of a LUN from a current health stage to a subsequent health stage is warranted and, if so, replacing the contents of the LUN's control registers with the set of operating parameters corresponding to the subsequent health stage.

9. The method of claim 8 , wherein the plurality of wear indicators includes BER data resulting from the issuance of memory controller commands to read the contents of the flash memory.

10. The method of claim 8 , wherein the plurality of wear indicators includes timing information with respect to the issuance of one or more controller memory commands.

11. The method of claim 8 , wherein, with respect to each health stage, the set of operating parameters corresponding to that health stage is the same for each LUN of each of the one or more flash memory chips.

12. The method of claim 8 , wherein the sets of operating parameters corresponding to the health stages are predetermined in an offline characterization phase prior to the operational lifetime of the one or more flash memory chips.

13. The method of claim 8 , further including the step, upon determining that a transition of a LUN from a current health stage to a subsequent health stage is not warranted, of employing one or more preventive measures to reduce the rate of degradation of the flash memory over time, and thereby extend the operational lifetime of the one or more flash memory chips.

14. The method of claim 13 , wherein the preventive measures include one or more of the following: (a) resting one or more of the blocks of a LUN of the one or more flash memory chips, (b) reducing the usage of one or more blocks of a LUN of the one or more flash memory chips, and (c) moving the data contents of a suspect block to another block in the one or more flash memory chips.

Assignments (8)
PATENT SECURITY AGREEMENT Recorded Aug 6, 2024
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 068328/0674 →
RELEASE OF LIEN ON PATENTS Recorded Aug 5, 2024
From: BARINGS FINANCE LLC
To: RPX CORPORATION
Reel/Frame 068328/0278 →
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054244/0566 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054198/0029 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2018
From: NVMDURANCE LIMITED
To: RPX CORPORATION
Reel/Frame 045094/0867 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2016
From: RYAN, CONOR MAURICE; SULLIVAN, JOSEPH
To: NVMDURANCE LIMITED
Reel/Frame 039238/0224 →
Continuity (3)
Provisional Application 62033077 · Aug 4, 2014
Provisional Application 62119413 · Feb 23, 2015
Related Publication 20160034206A1 · Feb 4, 2016