IP Library Granted Patent US 9,607,701
Granted Patent B2
US 9,607,701 · App. 15/043,994 · Granted Mar 28, 2017

Systems and methods for dynamically programming a flash memory device

Inventors: Bruce A. Wilson (San Jose, CA); Erich F. Haratsch (San Jose, CA)
Assignee: Seagate Technology LLC
G11C16/12G11C7/1006G11C16/10G11C16/26G11C29/50004G11C2029/5004
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,607,701
App. No.
15/043,994
Granted
Mar 28, 2017
Kind
B2
Abstract

The present inventions are related to systems and methods for storing data, and more particularly to systems and methods for writing data to a storage device.

Claims (74)

1. A system, comprising:

a plurality of flash memory cells;

a write circuit operable to iteratively pulse write signals to a first of the memory cells;

a read circuit operable to read the first memory cell after each pulsed write signal; and

a controller operable to degrade data read from the first memory cell after each pulsed write signal, to determine when a data bit in the first memory cell reaches a threshold voltage based on the degraded data, and to direct the write circuit to stop pulsing the write signal to the first memory cell when the data bit in the first memory cell reaches the threshold voltage.

2. The system of claim 1 , wherein:

the controller is further operable to encode data being written to the memory cells, to decode the data read from the memory cells, to identify an error in the data based on the decoded data, to identify a second of the memory cells causing the error, and to adjust a threshold voltage of the second memory cell in response to identifying the second memory cell.

3. The system of claim 2 , wherein:

the controller is further operable to identify the error in the data based on soft data indicating a probability that the error exists in a bit of the data.

4. The system of claim 1 , wherein:

the controller is further operable to encode data being written to the memory cells;

the read circuit is further operable to read the data from the memory cells; and

the controller is further operable to generate two sets of the data read from the memory cells, to degrade a first of the two sets of data read from the memory cells, to decode the degraded first set of data, and to compare the decoded first set of data to a threshold level to determine a bit error rate.

5. The system of claim 1 , wherein:

the controller is further operable to determine when the data bit in the first memory cell reaches the threshold voltage based on the bit error rate.

6. The system of claim 1 , wherein:

the controller is further operable to monitor a number of accesses to the first memory cell, and to adjust the threshold voltage when the number of accesses to the first memory cell breaches a threshold level.

7. The system of claim 1 , wherein:

once the data bit in the first memory cell reaches the threshold voltage, the controller is further operable to change the threshold voltage for a read of the first memory cell by the read circuit after a predetermined period of time.

8. A method operable in a flash memory devices comprising a plurality of flash memory cells, the method comprising:

iteratively pulsing write signals to a first of the memory cells;

reading the first memory cell after each pulsed write signal; and

degrading data read from the first memory cell after each pulsed write signal;

determining when a data bit in the first memory cell reaches a threshold voltage based on the degraded data; and

stopping said pulsing of the write signals to the first memory cell when the data bit in the first memory cell reaches the threshold voltage.

9. The method of claim 8 , further comprising:

encoding data being written to the memory cells;

decoding the data read from the memory cells;

identifying an error in the data based on the decoded data;

identifying a second of the memory cells causing the error; and

adjusting a threshold voltage of the second memory cell in response to identifying the second memory cell.

10. The method of claim 9 , further comprising:

identifying the error in the data based on soft data indicating a probability that the error exists in a bit of the data.

11. The method of claim 8 , further comprising:

encoding data being written to the memory cells;

reading the data from the memory cells;

generating two sets of the data read from the memory cells;

degrading a first of the two sets of data read from the memory cells;

decoding the degraded first set of data; and

comparing the decoded first set of data to a threshold level to determine a bit error rate.

12. The method of claim 8 , further comprising:

determining when the data bit in the first memory cell reaches the threshold voltage based on the bit error rate.

13. The method of claim 8 , further comprising:

monitoring a number of accesses to the first memory cell; and

adjusting the threshold voltage when the number of accesses to the first memory cell breaches a threshold level.

14. The method of claim 8 , further comprising:

changing the threshold voltage for a read of the first memory cell by the read circuit after a predetermined period of time once the data bit in the first memory cell reaches the threshold voltage.

15. A non-transitory computer readable medium comprising instructions that, when executed by a controller of a flash memory device comprising a plurality of flash memory cells, directs the controller to:

iteratively pulse write signals to a first of the memory cells;

read the first memory cell after each pulsed write signal; and

degrade data read from the first memory cell after each pulsed write signal;

determine when a data bit in the first memory cell reaches a threshold voltage based on the degraded data; and

stop said pulsing of the write signals to the first memory cell when the data bit in the first memory cell reaches the threshold voltage.

16. The computer readable medium of claim 15 , further comprising instructions that direct the controller to:

encode data being written to the memory cells;

decode the data read from the memory cells;

identify an error in the data based on the decoded data;

identify a second of the memory cells causing the error; and

adjust a threshold voltage of the second memory cell in response to identifying the second memory cell,

wherein identifying the error in the data is based on soft data indicating a probability that the error exists in a bit of the data.

17. The computer readable medium of claim 15 , further comprising instructions that direct the controller to:

encode data being written to the memory cells;

read the data from the memory cells;

generate two sets of the data read from the memory cells;

degrade a first of the two sets of data read from the memory cells;

decode the degraded first set of data; and

compare the decoded first set of data to a threshold level to determine a bit error rate.

18. The computer readable medium of claim 15 , further comprising instructions that direct the controller to:

determine when the data bit in the first memory cell reaches the threshold voltage based on the bit error rate.

19. The computer readable medium of claim 15 , further comprising instructions that direct the controller to:

monitor a number of accesses to the first memory cell; and

adjust the threshold voltage when the number of accesses to the first memory cell breaches a threshold level.

20. The computer readable medium of claim 15 , further comprising instructions that direct the controller to:

change the threshold voltage for a read of the first memory cell by the read circuit after a predetermined period of time once the data bit in the first memory cell reaches the threshold voltage.

Continuity (2)
Continuation 14502283 · Sep 30, 2014
Related Publication 20160365151A1 · Dec 15, 2016