IP Library Granted Patent US 10,795,765
Granted Patent B2
US 10,795,765 · App. 16/592,727 · Granted Oct 6, 2020

SSD for long term data retention

Inventor: Guangming Lu (Irvine, CA)
Assignee: NGD SYSTEMS, INC.
G06F11/1068G06F11/1012G11C11/5642G11C16/26G11C16/28G11C29/021G11C29/028G11C29/52H03M13/1108H03M13/2906H03M13/2951H03M13/3707H03M13/3723H03M13/3769H03M13/6325G11C29/42G11C2029/0411H03M13/09H03M13/1111
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,795,765
App. No.
16/592,727
Granted
Oct 6, 2020
Kind
B2
Abstract

A system and method for long term data retention in a flash memory. In some embodiments, the method includes transitioning the flash memory to a long term data retention state by re-storing first encoded data, the first encoded data being initially stored in the flash memory at a first code rate. The re-storing may include determining a second code rate, lower than the first code rate; reading the first encoded data from the flash memory; decoding the first encoded data at the first code rate to obtain first decoded data; encoding the first decoded data at the second code rate to form second encoded data; and storing the second encoded data in the flash memory.

Claims (78)

1. A method, comprising:

transitioning a flash memory to a data retention state by re-storing first encoded data, the first encoded data being initially stored in the flash memory at a first code rate, the re-storing comprising:

determining a second code rate based on a total data volume and a total available capacity, the second code rate being lower than the first code rate;

reading the first encoded data from the flash memory;

decoding the first encoded data at the first code rate to obtain first decoded data;

encoding the first decoded data at the second code rate to form second encoded data; and

storing the second encoded data in the flash memory.

2. The method of claim 1 , wherein the re-storing further comprises, after reading a portion of the first encoded data from a first physical block of the flash memory, erasing the first physical block.

3. The method of claim 2 , further comprising erasing a second physical block after erasing the first physical block, the amount of valid data on the first physical block before the erasing of the first physical block being less than the amount of valid data on the second physical block before the erasing of the second physical block.

4. The method of claim 2 , wherein the re-storing further comprises reading all valid data from the first physical block before erasing the first physical block.

5. The method of claim 1 , wherein the determining of the second code rate comprises selecting a code rate greater than a first ratio, the first ratio being the ratio of:

the total data volume and

the total available capacity.

6. The method of claim 5 , wherein:

the total data volume is a sum of a total user data volume and a total system data volume;

the total available capacity is a difference between a total capacity and a reserve capacity; and

the selecting of a code rate greater than a first ratio comprises selecting from among a set of available code rates the smallest code rate greater than the first ratio.

7. The method of claim 1 , further comprising, in response to a request from a host:

reading, while in the data retention state, a portion of the second encoded data,

decoding the portion of the second encoded data to obtain decoded data, and

sending the decoded data to the host.

8. The method of claim 7 , further comprising, before the reading of the portion of the second encoded data:

performing a plurality of trial reads at different respective threshold voltages from the flash memory, to obtain a corresponding set of raw data words;

performing, with the raw data words, one or more successful decoding attempts and zero or more unsuccessful decoding attempts, to obtain an error rate for each successful coding attempt; and

selecting a threshold voltage for use during the reading of the portion of the second encoded data.

9. The method of claim 8 , wherein:

the performing of the one or more successful decoding attempts comprises performing a plurality of successful decoding attempts; and

the selecting of the threshold voltage for use during the reading of the portion of the second encoded data comprises selecting a threshold voltage used during a successful decoding attempt, of the plurality of successful decoding attempts, having a minimum error rate.

10. The method of claim 9 , wherein the reading of the portion of the second encoded data comprises:

performing a first read operation on a first plurality of flash memory cells, at a first reference voltage, to form a first raw data word;

executing a first error correction code decoding attempt with the first raw data word;

when the first error correction code decoding attempt succeeds:

outputting a decoded data word generated by the first error correction code decoding attempt; and

when the first error correction code decoding attempt does not succeed:

performing a second read operation on the first plurality of flash memory cells, at a second reference voltage, to form a second raw data word; and

executing a second error correction code decoding attempt with the first raw data word and the second raw data word.

11. The method of claim 1 , further comprising transitioning from the data retention state to a normal operating state, the transitioning comprising:

reading the second encoded data from the flash memory;

decoding the second encoded data to obtain second decoded data;

encoding the second decoded data at a third code rate, greater than the second code rate, to obtain third encoded data; and

storing the third encoded data in the flash memory.

12. The method of claim 11 , further comprising, before the reading of the second encoded data:

performing a plurality of trial reads at different respective threshold voltages from the flash memory, to obtain a corresponding set of raw data words;

performing, with the raw data words, one or more successful decoding attempts and zero or more unsuccessful decoding attempts, to obtain an error rate for each successful coding attempt; and

selecting a threshold voltage for use during the reading of the second encoded data.

13. The method of claim 12 , wherein:

the performing of the one or more successful decoding attempts comprises performing a plurality of successful decoding attempts; and

the selecting of the threshold voltage for use during the reading of the second encoded data comprises selecting a threshold voltage used during a successful decoding attempt, of the plurality of successful decoding attempts, having a minimum error rate.

14. A solid state drive, comprising:

a flash memory; and

a processing circuit,

the processing circuit being configured to transition the flash memory to a data retention state by re-storing first encoded data, the first encoded data being initially stored in the flash memory at a first code rate, the re-storing comprising:

determining a second code rate based on a total data volume and a total available capacity, the second code rate being lower than the first code rate;

reading the first encoded data from the flash memory;

decoding the first encoded data at the first code rate to obtain first decoded data;

encoding the first decoded data at the second code rate to form second encoded data; and

storing the second encoded data in the flash memory.

15. The solid state drive of claim 14 , further comprising an error correcting code engine, the error correcting code engine being capable of:

encoding data at the first code rate;

encoding data at the second code rate;

decoding data at the first code rate; and

decoding data at the second code rate.

16. The solid state drive of claim 14 , wherein the processing circuit is configured, in response to a request from a host, to:

read, while in the data retention state, a portion of the second encoded data,

decode the portion of the second encoded data to obtain decoded data, and

send the decoded data to the host.

17. The solid state drive of claim 16 , wherein the processing circuit is further configured, before the reading of the portion of the second encoded data, to:

perform a plurality of trial reads at different respective threshold voltages from the flash memory, to obtain a corresponding set of raw data words;

perform, with the raw data words, one or more successful decoding attempts and zero or more unsuccessful decoding attempts, to obtain an error rate for each successful coding attempt; and

select a threshold voltage for use during the reading of the portion of the second encoded data.

18. The solid state drive of claim 17 , wherein:

the performing of the one or more successful decoding attempts comprises performing a plurality of successful decoding attempts; and

the selecting of the threshold voltage for use during the reading of the portion of the second encoded data comprises selecting a threshold voltage used during a successful decoding attempt, of the plurality of successful decoding attempts, having a minimum error rate.

19. The solid state drive of claim 14 , wherein the processing circuit is further configured to transition from the long tcrm data retention state to a normal operating state, the transitioning comprising:

reading the second encoded data from the flash memory;

decoding the second encoded data to obtain second decoded data;

encoding the second decoded data at a third code rate, greater than the second code rate, to obtain third encoded data; and

storing the third encoded data in the flash memory.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF CONVEYING PARTY PREVIOUSLY RECORDED AT REEL: 69518 FRAME: 243. ASSIGNOR(S) HEREBY CONFIRMS THE ASSET PURCHASE AGREEMENT. Recorded Jan 29, 2025
From: NGD SYSTEMS, INC.
To: NETLIST, INC.
Reel/Frame 070163/0719 →
ASSET PURCHASE AGREEMENT Recorded Dec 5, 2024
From: CMBG-FBC NGD SYSTEMS, LLC
To: NETLIST, INC.
Reel/Frame 069518/0243 →
SECURITY INTEREST Recorded Nov 3, 2021
From: NGD SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 058012/0289 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2020
From: LU, GUANGMING
To: NGD SYSTEMS, INC.
Reel/Frame 051806/0105 →
Continuity (8)
Continuation In Part 16573962 · Sep 17, 2019
Continuation 15723041 · Oct 2, 2017
Continuation In Part 15230075 · Aug 5, 2016
Continuation In Part 14806063 · Jul 22, 2015
Provisional Application 62742053 · Oct 5, 2018
Provisional Application 62403610 · Oct 3, 2016
Provisional Application 62027683 · Jul 22, 2014
Related Publication 20200034233A1 · Jan 30, 2020
Cited By (1)
US 12,190,980