IP Library › Granted Patent US 10,222,997
Granted Patent B2
US 10,222,997 · App. 15/804,933 · Granted Mar 5, 2019

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, CH); Ioannis Koltsidas (Zurich, CH); Nikolaos Papandreou (Thalwil, CH); Thomas Parnell (Zurich, CH); Roman A. Pletka (Uster, CH); Charalampos Pozidis (Thalwil, CH); Sasa Tomic (Kilchberg, CH)
Assignee: International Business Machines Corporation
G06F3/061G06F3/0655G06F3/0688G11C16/10G11C16/14G11C16/26G11C16/3427G11C29/021G11C29/028G11C2029/0409
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,222,997
App. No.
15/804,933
Granted
Mar 5, 2019
Kind
B2
Abstract

A computer program product according to one embodiment includes a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a processing circuit to cause the circuitry to perform a method including determining, after writing data to a non-volatile memory block, one or more delta threshold voltage shift (TVS Δ ) values. One or more overall threshold voltage shift values for the data written to the non-volatile memory block are calculated, the values being a function of the one or more TVS Δ values to be used when writing data to the non-volatile memory block. The overall threshold voltage shift values are stored. A base threshold voltage shift (TVS BASE ) value, the one or more TVS Δ values, or both the TVS BASE value and the one or more TVS Δ values are re-calibrated during a background health check after a predetermined number of background health checks without calibration are performed.

Claims (37)

1. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions executable by a processing circuit to cause the processing circuit to perform a method comprising:

determining, by the processing circuit, 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;

calculating, by the processing circuit, 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, by the processing circuit, the one or more overall threshold voltage shift values; and

re-calibrating, by the processing circuit, a base threshold voltage shift (TVS BASE ) value, the one or more TVS Δ values, or both the 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.

2. The computer program product as recited in claim 1 , comprising program instructions executable by the processing circuit to cause the processing circuit to reset the one or more TVS Δ values when the non-volatile memory block is erased.

3. The computer program product as recited in claim 1 , comprising program instructions executable by the processing circuit to cause the processing circuit to apply 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 computer program product as recited in claim 1 , comprising program instructions executable by the processing circuit to cause the processing circuit to:

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

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

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

5. The computer program product as recited in claim 1 , 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.

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

7. The computer program product 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 computer program product as recited in claim 6 , wherein the re-calibration is not performed when a program/erase cycle count is lower than a predetermined threshold.

9. The computer program product 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. The computer program product as recited in claim 1 , comprising program instructions executable by the processing circuit to cause the processing circuit to group together physical non-volatile pages which have similar TVS Δ values into a page group.

11. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions executable by a processing circuit to cause the processing circuit to perform a method comprising:

determining, by the processing circuit, after writing data to a non-volatile memory block, one or more base threshold voltage shift (TVS BASE ) values configured to track permanent changes in underlying threshold voltage distributions due to cycling of the non-volatile memory block;

calculating, by the processing circuit, an overall threshold voltage shift value for the data written to the non-volatile memory block, the overall threshold voltage shift value being a function of the one or more TVS BASE values; and

storing, by the processing circuit, the overall threshold voltage shift value.

12. The computer program product as recited in claim 11 , comprising program instructions executable by the processing circuit to cause the processing circuit to reset the one or more TVS Δ values when the non-volatile memory block is erased.

13. The computer program product as recited in claim 11 , comprising program instructions executable by the processing circuit to cause the processing circuit to determine, by the processing circuit after the writing of data to the 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.

14. The computer program product as recited in claim 11 , comprising program instructions executable by the processing circuit to cause the processing circuit to apply the overall threshold voltage shift value to a read operation of the data stored to the non-volatile memory block upon receiving a read request.

15. The computer program product as recited in claim 11 , comprising program instructions executable by the processing circuit to cause the processing circuit to:

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

reset a program/erase cycle count since last calibration after calibrating the overall threshold voltage shift value; and

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

16. The computer program product as recited in claim 11 , comprising program instructions executable by the processing circuit to cause the processing circuit to re-calibrate the one or more TVS BASE values during a background health check after a predetermined number of background health checks without calibration are performed, wherein the predetermined number of background health checks without calibration is from 1 to 5.

17. The computer program product as recited in claim 11 , wherein at least one of the one or more TVS BASE values and the one or more TVS Δ values are determined periodically in the background without interrupting normal operations directed at the non-volatile memory block.

18. The computer program product as recited in claim 11 , comprising program instructions executable by the processing circuit to cause the processing circuit to:

group together physical non-volatile pages which have similar TVS BASE and TVS Δ values into a page group; and

create a mapping that correlates the TVS BASE values as tracked per page group to actual read voltage shift values.

19. A computer-implemented method for managing threshold voltage shifts in non-volatile memory, the method comprising:

calculating an overall threshold voltage shift value for data written to a non-volatile memory block, the overall threshold voltage shift value being a function of a base threshold voltage shift (TVS BASE ) value and delta threshold voltage shift (TVS Δ ) value to be used when writing data to the non-volatile memory block, the TVSBASE value representing a permanent change in underlying threshold voltage distributions due to cycling of the non-volatile memory block, the TVS Δ value representing a temporary change with respect to a change in the underlying threshold voltage distributions due to retention and/or read disturb errors; and

applying the overall threshold voltage shift value to a read operation of the data stored to the non-volatile memory block upon receiving a read request.

20. The computer-implemented method as recited in claim 19 , comprising re-calibrating the one or more TVS BASE values during a background health check after a predetermined number of background health checks without calibration are performed, wherein the predetermined number of background health checks without calibration is from 1 to 5.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2017
From: CAMP, CHARLES J.; FISHER, TIMOTHY J.; FRY, AARON D.; IOANNOU, NIKOLAS; KOLTSIDAS, IOANNIS; PAPANDREOU, NIKOLAOS; PARNELL, THOMAS; PLETKA, ROMAN A.; POZIDIS, CHARALAMPOS; TOMIC, SASA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044096/0230 →
Continuity (4)
Continuation 15405162 · Jan 12, 2017
Continuation 14987724 · Jan 4, 2016
Continuation 14500900 · Sep 29, 2014
Related Publication 20180059940A1 · Mar 1, 2018