IP Library Granted Patent US 9,780,809
Granted Patent B2
US 9,780,809 · App. 14/701,130 · Granted Oct 3, 2017

Tracking and use of tracked bit values for encoding and decoding data in unreliable memory

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,780,809
App. No.
14/701,130
Granted
Oct 3, 2017
Kind
B2
Abstract

A non-volatile memory system may include a tracking module that tracks logic values of bits to be stored in memory elements identified as unreliable. A record of the logic values may be generated. During decoding of the data, a log likelihood ratio module may use the record to assign log likelihood ratio values for the decoding.

Claims (48)

1. A non-volatile memory system comprising:

non-volatile memory; and

a controller configured to:

identify a plurality of memory elements of the non-volatile memory to store data; and

determine which memory elements of the plurality of memory elements are identified in the non-volatile memory system as unreliable;

track logic values of bits of the data to be stored in the identified unreliable memory elements; and

assign log likelihood ratio values to the bits of data stored in the identified unreliable memory elements based on the tracked logic values.

2. The non-volatile memory system of claim 1 , wherein the controller is further configured to:

scramble the data,

track the logic values of the bits in response to the data being scrambled.

3. The non-volatile memory system of claim 2 , wherein the database identifies unreliable bitlines of the non-volatile memory.

4. The non-volatile memory system of claim 2 , wherein the database identifies zones of unreliable memory elements, and wherein each zone comprises an identifiable number of memory elements coupled to the same wordline.

5. The non-volatile memory system of claim 2 , wherein the controller is configured to store the database in a header portion of a storage area that comprises the plurality of memory elements.

6. The non-volatile memory system of claim 1 , further comprising a database that identifies unreliable storage locations in the non-volatile memory, wherein the controller is configured to use information about the unreliable storage locations identified in the database to determine the identified unreliable memory elements.

7. The non-volatile memory system of claim 6 , wherein the controller is configured to analyze bitline bitmasks in the database to identify the unreliable bitlines.

8. The non-volatile memory system of claim 1 , wherein the controller is further configured to generate parity bits for the data after the tracking module tracks the logic values of the bits of the data to be stored in the identified unreliable memory elements.

9. The non-volatile memory system of claim 1 , wherein the tracked logic values comprise an array of logic values, and wherein controller is further configured to:

determine whether an accumulated number of the tracked logic values exceeds a size of a first storage area of the non-volatile memory allocated to store the tracked logic values; and

when the accumulated number exceeds the size of the storage area, remove one or more of the tracked logic values from the array based on a distribution of identified unreliable bitlines across a second storage area of the non-volatile memory designated to store the data.

10. The non-volatile memory system of claim 1 , wherein the tracked logic values are stored in a footer portion of a storage area that comprises the plurality of memory elements.

11. The non-volatile memory system of claim 1 , wherein the controller is configured to set sign bits for the log likelihood ratio values to correspond to the tracked logic values.

12. The non-volatile memory system of claim 1 , wherein the controller is configured to set likelihood value components for the log likelihood ratio values to indicate greater than a 75% likelihood.

13. The non-volatile memory system of claim 12 , wherein the controller is configured to set at least some of the likelihood value components to indicate a 100% likelihood.

14. The non-volatile memory system of claim 1 , wherein the controller is configured to lock the log likelihood ratio values to prevent adjustment of the log likelihood ratio values.

15. The non-volatile memory system of claim 1 , wherein the bits of the data stored in the identified unreliable memory elements comprise first bits, wherein the log likelihood ratio values comprise a first set of log likelihood ratio values, and wherein the controller is configured to assign a second set of log likelihood ratio values to second bits of the data, wherein the second bits are stored in identified reliable memory elements, and wherein the second set of log likelihood ratio values are assigned based on logic values of bit representations associated with the second bits.

16. The non-volatile memory system of claim 1 , wherein the controller is configured to assign the log likelihood ratio to the bits stored in the identified unreliable memory elements upon detection of an uncorrectable error event, and

when no uncorrectable error event is detected, the controller is configured to assign the log likelihood ratio values to the bits based on logic values of bit representations associated with the bits.

17. A method of decoding data stored in non-volatile memory of a non-volatile memory system, the method comprising:

identifying, with a controller of the non-volatile memory system, a plurality of bit representations associated with the data stored in the non-volatile memory; and

in response to receiving the plurality of bit representations, assigning, with the controller, log likelihood ratio values for bits of the associated data identified as stored in unreliable memory elements of the non-volatile memory based on a record identifying logic values at which the associated bits were programmed into the non-volatile memory; and

storing, with the controller, the log likelihood ratio values in memory.

18. The method of claim 17 , further comprising:

retrieving, with the controller, the record from a footer portion of a storage area storing the associated data to assign the log likelihood ratio values.

19. The method of claim 17 , wherein assigning the log likelihood ratio values comprises setting, with the controller, sign bits for the log likelihood ratio values to correspond to the logic values identified in the record.

20. The method of claim 17 , wherein assigning the log likelihood ratio values comprises setting, with the controller, likelihood value components for the log likelihood ratio values to indicate greater than a 75% likelihood.

21. The method of claim 20 , wherein at least some of the likelihood value components indicate a 100% likelihood.

22. The method of claim 17 , wherein assigning the log likelihood ratio values comprises setting, with the controller, locking bits of the log likelihood ratio values to a value that locks the log likelihood ratio values, wherein the controller is prevented from adjusting the locked log likelihood ratio values during the method of decoding.

23. The method of claim 17 , wherein the associated bits of the data stored in the identified unreliable memory elements comprise a first set of associated bits, wherein the log likelihood ratio values comprise a first set of log likelihood values, the method further comprising:

assigning, with the controller, a second set of log likelihood ratio values for a second set of bits with which the plurality of bit representations are associated based on logic values of the bit representations, wherein the second set of bits are stored in identified reliable memory elements.

24. The method of claim 17 , wherein assigning the log likelihood ratio values for the bits comprises assigning, with the controller, the log likelihood ratio values for the bits identified as stored in the unreliable memory elements based on the record upon detection of an uncorrectable error event, and

when no uncorrectable error event is detected, assigning, with the controller, the log likelihood values for the bits based on logic values of the plurality of the bit representations.

25. The method of claim 24 , further comprising:

retrieving, with the controller, the record to assign the log likelihood ratio values in response to detection of the uncorrectable error event.

26. A non-volatile memory system comprising:

non-volatile memory; and

means for determining which memory elements of a plurality of memory elements in the non-volatile memory are identified as unreliable;

means for tracking logic values of data to be stored in the identified unreliable memory elements; and

means for assigning log likelihood ratio values to the data stored in the identified unreliable memory based on the tracked logic values of the data.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2025
From: SANDISK TECHNOLOGIES, INC.
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 070778/0175 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038812/0954 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2015
From: TUERS, DANIEL; MANOHAR, ABHIJEET; JOSEPH, SUJEETH
To: SANDISK TECHNOLOGIES
Reel/Frame 037002/0964 →