IP Library › Granted Patent US 9,864,523
Granted Patent B2
US 9,864,523 · App. 15/405,162 · Granted Jan 9, 2018

Background threshold voltage shifting using base and delta threshold voltage shift values in non-volatile memory

Inventors: Charles J. Camp (Sugar Land, TX); Timothy J. Fisher (Cypress, TX); Aaron D. Fry (Richmond, TX); Nikolas Ioannou (Zurich, CN); Ioannis Koltsidas (Zurich, CH); Nikolaos Papandreou (Thalwil, CH); Thomas Parnell (Zurich, CH); Roman Pletka (Uster, CH); Charalampos Pozidis (Thalwil, CH); Sasa Tomic (Kilchberg, CH)
Assignee: International Business Machines Corporation
G06F3/061G06F3/0655G06F3/0688G11C16/10G11C16/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,864,523
App. No.
15/405,162
Granted
Jan 9, 2018
Kind
B2
Abstract

In one embodiment, a computer-implemented method includes determining, by a processor, after the writing of data to a non-volatile memory block, one or more delta threshold voltage shift (TVS Δ ) values configured to track temporary changes with respect to changes in the underlying threshold voltage distributions due to retention and/or read disturb errors. One or more overall threshold voltage shift values is calculated for the data written to the non-volatile memory block, the one or more overall threshold voltage shift values being a function of the one or more TVS Δ values to be used when writing data to the non-volatile memory block. The one or more overall threshold voltage shift values are stored.

Claims (40)

1. A computer-implemented method, comprising:

determining, by a processor, after writing data to a non-volatile memory block, one or more delta threshold voltage shift (TVS Δ ) values configured to track temporary changes with respect to changes in the underlying threshold voltage distributions due to retention and/or read disturb errors;

calculate one or more overall threshold voltage shift values for the data written to the non-volatile memory block, the one or more overall threshold voltage shift values being a function of the one or more TVS Δ values to be used when writing data to the non-volatile memory block;

storing the one or more overall threshold voltage shift values;

reading one or more TVS values from a non-volatile controller memory;

resetting a program/erase cycle count since last calibration after calibrating the one or more overall threshold voltage shift values; and

storing, to the non-volatile controller memory, the one or more TVS Δ values and the program/erase cycle count since last calibration.

2. The method as recited in claim 1 , comprising resetting the one or more TVS 66 values when the non-volatile memory block is erased.

3. The method as recited in claim 1 , comprising applying the one or more overall threshold voltage shift values to a read operation of the data stored to the non-volatile memory block upon receiving a read request.

4. The method as recited in claim 1 , comprising:

reading one or more TVS values from a non-volatile controller memory;

resetting a program/erase cycle count since last calibration after calibrating the one or more overall threshold voltage shift values; and

storing the one or more TVS Δ values, and the program/erase cycle count since last calibration to the non-volatile controller memory.

5. The method as recited in claim 1 , comprising re-calibrating at least one value selected from a group consisting of: a base threshold voltage shift (TVS BASE ) value and the one or more TVS Δ values during a background health check after a predetermined number of background health checks without calibration are performed.

6. The method as recited in claim 5 , wherein the predetermined number of background health checks without calibration is from 1 to 5.

7. The method as recited in claim 6 , wherein a block is marked for re-calibration when a program/erase cycle count since last calibration exceeds a predetermined threshold, wherein blocks marked for re-calibration are forced to be calibrated in a read sweep background health check, and wherein the blocks are unmarked after re-calibration is completed.

8. The method as recited in claim 7 , wherein the re-calibration is not performed when a program/erase cycle count is lower than a predetermined threshold.

9. The method as recited in claim 1 , wherein the one or more TVS Δ values are determined periodically in the background without interrupting normal operations directed at the non-volatile memory block.

10. A computer-implemented method, comprising:

determining, by a processor, after writing data to a non-volatile memory block, one or more delta threshold voltage shift (TVS Δ ) values configured to track temporary changes with respect to changes in the underlying threshold voltage distributions due to retention and/or read disturb errors;

calculate one or more overall threshold voltage shift values for the data written to the non-volatile memory block, the one or more overall threshold voltage shift values being a function of the one or more TVS Δ values to be used when writing data to the non-volatile memory block; and

storing the one or more overall threshold voltage shift values; and

grouping together physical non-volatile pages which have similar TVS Δ values into a page group.

11. The method as recited in claim 10 , comprising resetting the one or more TVS Δ values when the non-volatile memory block is erased.

12. The method as recited in claim 10 , comprising applying the one or more overall threshold voltage shift values to a read operation of the data stored to the non-volatile memory block upon receiving a read request.

13. The method as recited in claim 10 , comprising:

reading one or more TVS values from a non-volatile controller memory;

resetting a program/erase cycle count since last calibration after calibrating the one or more overall threshold voltage shift values; and

storing the one or more TVS Δ values and the program/erase cycle count since last calibration to the non-volatile controller memory.

14. The method as recited in claim 10 , wherein each overall threshold voltage shift value equals a sum of a corresponding base threshold voltage shift (TVS BASE ) value and a corresponding TVS Δ value, the TVS BASE value configured to track permanent changes in underlying threshold voltage distributions due to cycling of the non-volatile memory block.

15. The method as recited in claim 10 , comprising re-calibrating at least one value selected from a group consisting of: a base threshold voltage shift (TVS BASE ) value and the one or more TVS Δ values during a background health check after a predetermined number of background health checks without calibration are performed.

16. The method as recited in claim 15 , wherein the predetermined number of background health checks without calibration is from 1 to 5.

17. The method as recited in claim 16 , wherein a block is marked for re-calibration when a program/erase cycle count since last calibration exceeds a predetermined threshold, wherein blocks marked for re-calibration are forced to be calibrated in a read sweep background health check, and wherein the blocks are unmarked after re-calibration is completed.

18. The method as recited in claim 16 , wherein the re-calibration is not performed when a program/erase cycle count is lower than a predetermined threshold.

19. The method as recited in claim 10 , wherein the one or more TVS Δ values are determined periodically in the background without interrupting normal operations directed at the non-volatile memory block.

20. A computer-implemented method, comprising:

determining, by a processor, after writing data to a non-volatile memory block, one or more delta threshold voltage shift (TVS Δ ) values configured to track temporary changes with respect to changes in the underlying threshold voltage distributions due to retention and/or read disturb errors;

calculate one or more overall threshold voltage shift values for the data written to the non-volatile memory block, the one or more overall threshold voltage shift values being a function of the one or more TVS Δ values to be used when writing data to the non-volatile memory block; and

storing the one or more overall threshold voltage shift values,

wherein each overall threshold voltage shift value equals a sum of a corresponding base threshold voltage shift (TVS BASE ) value and a corresponding TVS Δ value, the TVS BASE value being configured to track permanent changes in underlying threshold voltage distributions due to cycling of the non-volatile memory block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2017
From: CAMP, CHARLES J.; FISHER, TIMOTHY J.; FRY, AARON D.; IOANNOU, NIKOLAS; KOLTSIDAS, IOANNIS; PAPANDREOU, NIKOLAOS; PARNELL, THOMAS; PLETKA, ROMAN; POZIDIS, CHARALAMPOS; TOMIC, SASA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040999/0115 →
Continuity (3)
Continuation 14987724 · Jan 4, 2016
Continuation 14500900 · Sep 29, 2014
Related Publication 20170123660A1 · May 4, 2017