IP Library Granted Patent US 9,424,944
Granted Patent B2
US 9,424,944 · App. 14/599,240 · Granted Aug 23, 2016

Detecting voltage threshold drift

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,424,944
App. No.
14/599,240
Granted
Aug 23, 2016
Kind
B2
Abstract

Apparatuses, systems, methods, and computer program products are disclosed for detecting voltage threshold drift. A method includes programming a predetermined pattern to one page of at least three pages of a set of memory cells. A pattern may have a configuration to reduce a number of bit transitions between abodes of a set of memory cells based on a coding scheme for the set of memory cells. A method includes reading data from a different page of at least three pages. A method includes determining a direction for adjusting a read voltage threshold for a set of memory cells based on read data.

Claims (43)

1. A method comprising:

programming a predetermined pattern to one page of at least three pages of a set of memory cells, the pattern having a configuration to reduce a number of bit transitions between abodes of the memory cells based on a coding scheme for the set of memory cells;

reading data from a different page of the at least three pages; and

determining a direction for adjusting a read voltage threshold for the set of memory cells based on the read data.

2. The method of claim 1 , further comprising adjusting the read voltage threshold for the set of memory cells in the determined direction.

3. The method of claim 2 , further comprising:

re-reading data from the different page; and

re-adjusting the read voltage threshold for the set of memory cells based on the re-read data, each until an error in the data from the different page becomes correctable.

4. The method of claim 1 , further comprising programming a second predetermined pattern to a second page of the at least three pages, wherein reading data from a different page of the at least three pages comprises reading data from a third page of the at least three pages.

5. The method of claim 1 , further comprising:

determining a magnitude for adjusting the read voltage threshold based on the read data; and

adjusting the read threshold voltage for the set of memory cells based on the determined direction and the determined magnitude.

6. The method of claim 1 , wherein the predetermined pattern comprises all zeroes.

7. The method of claim 6 , further comprising:

identifying a randomization seed for the programmed page; and

determining locations of programmed zeroes in the programmed page, wherein the predetermined pattern is not stored consecutively in the set of memory cells and reading data from the different page comprises reading data from the different page at the determined locations.

8. The method of claim 1 , wherein determining the direction for adjusting the read voltage threshold for the set of memory cells comprises:

determining a weighting report for the read data based on a number of binary ones and binary zeroes in the read data; and

determining a bit error bias based on the weighting report, wherein the direction for adjusting a read voltage threshold is based on the bit error bias.

9. The method of claim 1 , wherein determining the direction for adjusting the read voltage threshold for the set of memory cells comprises calculating a dominant bit error bias for the set of memory cells based on the read data.

10. The method of claim 1 , wherein the at least three pages comprise an upper page, a middle page, and a lower page, the one programmed page comprises the upper page, and the different page comprises the lower page.

11. The method of claim 1 , further comprising programming the predetermined pattern to one or more additional pages at different locations within an erase block, wherein the direction for adjusting the read voltage threshold is determined based on data read from memory cells storing the one page and from memory cells storing the one or more additional pages.

12. An apparatus comprising:

a data pattern module configured to determine a pattern of data in a first page of a plurality of storage cells comprising a word line in a storage device, the word line configured to store three or more pages of data, the determined pattern of data minimizing a number of bit transitions between program states of the storage cells;

a shift module configured to detect a direction of voltage drift based on data read from a second page of the plurality of storage cells; and

a voltage threshold module configured to adjust a read voltage threshold for the storage cells based on the detected direction of voltage drift.

13. The apparatus of claim 12 , further comprising a bit error module configured to identify a dominant bit error from the data read from the second page.

14. The apparatus of claim 12 , wherein the voltage threshold module is configured to use the adjusted read voltage threshold for one or more additional pages of the storage device.

15. The apparatus of claim 12 , further comprising:

a whitening module configured to transform data to adjust an amount of binary ones and binary zeroes in the data, the predetermined data comprising binary zeroes interspersed within the transformed data; and

a location module configured to identify locations of the binary zeroes interspersed within the transformed data and programmed to the first page based on a pattern for the transformation, wherein the shift module is further configured to ignore data read from locations not identified by the location module.

16. The apparatus of claim 12 , wherein the shift module is further configured to identify a number of binary ones and a number of binary zeroes in the data read from the second page and to detect the direction of voltage drift based on the number of binary ones and the number of binary zeroes.

17. A system comprising:

a non-volatile recording medium comprising at least one word line, the word line configured to store at least three pages of data; and

a controller for the non-volatile recording medium, the controller configured to:

program a predetermined pattern to a first page of the at least three pages, the pattern configured to reduce a number of bit transitions between abodes of the memory cells based on a coding scheme for the set of memory cells; and

determine a direction of voltage shift for the word line based on data read from a second page of the word line.

18. The system of claim 17 , wherein the controller comprises a hardware controller in communication with the plurality of cells over one or more electrical communication lines to program the predetermined pattern and determine the direction of voltage shift.

19. The system of claim 17 , wherein the controller comprises a device driver for a non-volatile recording device comprising the plurality of cells, the device driver comprising computer executable program code stored on a computer readable storage medium, the computer executable program code executable to program the predetermined pattern and determine the direction of voltage shift.

20. An apparatus comprising:

a data pattern component configured to determine a pattern of data in a first page of a plurality of storage cells in a storage device, the determined pattern of data minimizing a number of bit transitions between program states of the storage cells;

a shift component configured to detect a direction of voltage drift based on a number of binary ones and a number of binary zeroes in data read from a second page of the plurality of storage cells; and

a voltage threshold component configured to adjust a read voltage threshold for the storage cells based on the detected direction of voltage drift.

Assignments (7)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
CORRECTIVE ASSIGNMENT TO REMOVE APPL. NO'S 13/925,410 AND 61/663,464 PREVIOUSLY RECORDED AT REEL: 034838 FRAME: 0091. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Apr 30, 2015
From: FUSION-IO, INC
To: FUSION-IO, LLC
Reel/Frame 035603/0748 →
CORRECTIVE ASSIGNMENT TO REMOVE APPL. NO'S 13/925,410 AND 61/663,464 PREVIOUSLY RECORDED AT REEL: 035168 FRAME: 0366. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 30, 2015
From: FUSION-IO, LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 035603/0582 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2015
From: FUSION-IO, LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 035168/0366 →
CHANGE OF NAME Recorded Jan 28, 2015
From: FUSION-IO, INC
To: FUSION-IO, LLC
Reel/Frame 034838/0091 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2015
From: STRASSER, JOHN
To: FUSION-IO, LLC
Reel/Frame 034747/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2015
From: SUN, HAIRONG; HYUN, JEA; LUCKY, RICK
To: FUSION-IO, INC.
Reel/Frame 034747/0665 →