IP Library Granted Patent US 9,645,177
Granted Patent B2
US 9,645,177 · App. 14/170,008 · Granted May 9, 2017

Retention-drift-history-based non-volatile memory read threshold optimization

Inventors: Earl T. Cohen (Oakland, CA); Hao Zhong (Milpitas, CA)
Assignee: Seagate Technology LLC
G01R19/0084G11C16/0483G11C16/26G11C16/349G11C16/3418G11C29/021G11C29/028G11C7/14
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,645,177
App. No.
14/170,008
Granted
May 9, 2017
Kind
B2
Abstract

An SSD controller dynamically adjusts read thresholds in an NVM to reduce errors due to device threshold voltage distribution shifts, thus improving performance, reliability, and/or cost of a storage sub-system, such as an SSD. A retention drift clock uses one or more reference pages (or ECC units or blocks) on one or more NVM die as read threshold over time/temperature references, and uses a function of those values as a measure of drift (over time/temperature). At some initial time, the one or more reference pages are programmed and an initial read threshold is measured for each of the one or more reference pages. In some embodiments, read threshold values are averaged among one or more of: all references pages on the same die; and all reference pages in the same one or more die in an I/O device.

Claims (51)

1. A method comprising:

recording a first sampled value of a voltage drift reference timestamp associated with programming a particular one of a plurality of groups of pages of a non-volatile memory;

recording a second sampled value of a voltage drift reference timestamp associated with a reading of at least some of the particular group of pages programmed; and

determining a voltage threshold, of the reading of at least some of the particular group of pages programmed, based at least in part on the first sampled value of the voltage drift reference timestamp and the second sampled value of the voltage drift reference timestamp associated with the reading.

2. The method of claim 1 , wherein the sampled values of the voltage drift reference timestamp are according to a voltage threshold of one or more reference locations of the non-volatile memory.

3. The method of claim 1 , further comprising: subsequent to the recorded first sampled value of the voltage drift reference timestamp differing by less than a specified difference with respect to the second sampled value of the voltage drift reference timestamp as of a time of the reading, using a default voltage threshold as the voltage threshold of the reading.

4. The method of claim 1 , further comprising:

periodically sampling a reference location of the non-volatile memory to determine a current voltage threshold of the reference location; and

wherein the periodically sampling determines, at least in part, the sampled values of the voltage drift reference timestamp.

5. The method of claim 4 , wherein the reference location is a page of the non-volatile memory.

6. The method of claim 4 , wherein the reference location is one of the pages of the particular group of pages.

7. The method of claim 4 , wherein the reference location is in a same block of the non-volatile memory as at least one of the pages of the particular group of pages.

8. The method of claim 4 , wherein at least one of the sampled values of the voltage drift reference timestamp respectively comprise a respective generation number and a respective threshold portion, wherein the respective generation number is according to a master generation number, and the respective threshold portion is according to the current voltage threshold of the reference location as of the periodically sampling.

9. The method of claim 8 , further comprising: subsequent to the current voltage threshold of the reference location exceeding a bound, updating the reference location, and incrementing the master generation number.

10. The method of claim 1 , wherein the first sampled value of the voltage drift reference timestamp is of a time of the programming and the second sampled value of the voltage drift reference timestamp associated with the reading is of a time of the reading.

11. The method of claim 2 , wherein at least one of the voltage drift reference timestamps respectively comprise a determined set of one or more optimal read threshold voltages of a voltage drift reference comprising the reference locations.

12. The method of claim 11 , wherein the non-volatile memory comprises Single-Level Cell (SLC) memory and the determined set comprises a single optimal read threshold voltage of the one or more optimal read threshold voltages.

13. The method of claim 11 , wherein the non-volatile memory comprises Multi-Level Cell (MLC) memory and the determined set comprises a plurality of optimal read threshold voltages of the one or more optimal read threshold voltages.

14. The method of claim 11 , further comprising: associating at least some of the voltage drift reference timestamps with respective representations of time.

15. The method of claim 14 , wherein the respective representations of time are according to an offset counter to a system event.

16. The method of claim 14 , wherein the respective representations of time are according to a value derived from an actual time-clock.

17. A storage system comprising:

a memory; and

a processor configured to perform the steps comprising

recording a first sampled value of a voltage drift reference timestamp associated with programming a particular one of a plurality of groups of pages of a non-volatile memory,

recording a second sampled value of a voltage drift reference timestamp associated with a reading of at least some of the particular group of pages programmed, and

determining a voltage threshold, of the reading of at least some of the particular group of pages programmed, based at least in part on the first sampled value of the voltage drift reference timestamp and the second sampled value of the voltage drift reference timestamp associated with the reading.

18. The storage system of claim 17 , wherein the sampled values of the voltage drift reference timestamp are according to a voltage threshold of a reference location of the non-volatile memory.

19. The storage system of claim 17 , further comprising: subsequent to the recorded first sampled value of the voltage drift reference timestamp differing by less than a specified difference with respect to the second sampled value of the voltage drift reference timestamp as of a time of the reading, using a default voltage threshold as the voltage threshold of the reading.

20. The storage system of claim 17 , further comprising:

periodically sampling a reference location of the non-volatile memory to determine a current voltage threshold of the reference location; and

wherein the periodically sampling determines, at least in part, the sampled values of the voltage drift reference timestamp.

21. The storage system of claim 20 , wherein the reference location is a page of the non-volatile memory.

22. The storage system of claim 20 , wherein the reference location is one of the pages of the particular group of pages.

23. The storage system of claim 20 , wherein the reference location is in a same block of the non-volatile memory as at least one of the pages of the particular group of pages.

24. The storage system of claim 20 , wherein at least one of the sampled values of the voltage drift reference timestamp respectively comprise a respective generation number and a respective threshold portion, wherein the respective generation number is according to a master generation number, and the respective threshold portion is according to the current voltage threshold of the reference location as of the periodically sampling.

25. The storage system of claim 24 , further comprising: subsequent to the current voltage threshold of the reference location exceeding a bound, updating the reference location, and incrementing the master generation number.

26. A non-transitory tangible computer readable medium having a set of instructions stored therein that when executed by a processing element cause the processing element to perform operations comprising:

recording a first sampled value of a voltage drift reference timestamp associated with programming a particular one of a plurality of groups of pages of a non-volatile memory;

recording a second sampled value of a voltage drift reference timestamp associated with a reading of at least some of the particular group of pages programmed; and

determining a voltage threshold, of the reading of at least some of the particular group of pages programmed, based at least in part on the first sampled value of the voltage drift reference timestamp and the second sampled value of the voltage drift reference timestamp associated with the reading.

27. The computer readable medium of claim 26 , wherein the sampled values of the voltage drift reference timestamp are according to a voltage threshold of a reference location of the non-volatile memory.

28. The computer readable medium of claim 26 , the operations further comprising: subsequent to the recorded first sampled value of the voltage drift reference timestamp differing by less than a specified difference with respect to the second sampled value of the voltage drift reference timestamp as of the time of the reading, using a default voltage threshold as the voltage threshold of the reading.

29. The computer readable medium of claim 26 , the operations further comprising:

periodically sampling a reference location of the non-volatile memory to determine a current voltage threshold of the reference location; and

wherein the periodically sampling determines, at least in part, the sampled values of the voltage drift reference timestamp.

30. The computer readable medium of claim 29 , wherein the reference location is a page of the non-volatile memory.

31. The computer readable medium of claim 29 , wherein the reference location is one of the pages of the particular group of pages.

32. The computer readable medium of claim 29 , wherein the reference location is in a same block of the non-volatile memory as at least one of the pages of the particular group of pages.

33. The computer readable medium of claim 29 , wherein at least one of the sampled values of the voltage drift reference timestamp respectively comprise a respective generation number and a respective threshold portion, wherein the respective generation number is according to a master generation number, and the respective threshold portion is according to the current voltage threshold of the reference location as of the periodically sampling.

34. The computer readable medium of claim 33 , the operations further comprising: subsequent to the current voltage threshold of the reference location exceeding a bound, updating the reference location, and incrementing the master generation number.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2015
From: LSI CORPORATION
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 034771/0571 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS INCLUDED IN SECURITY INTEREST PREVIOUSLY RECORDED AT REEL/FRAME (032856/0031) Recorded Nov 6, 2014
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 034177/0257 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2014
From: COHEN, EARL T.; ZHONG, HAO
To: LSI CORPORATION
Reel/Frame 032620/0925 →
Continuity (2)
Provisional Application 61762955 · Feb 10, 2013
Related Publication 20140229131A1 · Aug 14, 2014