IP Library Granted Patent US 8,879,325
Granted Patent B1
US 8,879,325 · App. 13/483,340 · Granted Nov 4, 2014

System, method and computer program product for processing read threshold information and for reading a flash memory module

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 8,879,325
App. No.
13/483,340
Granted
Nov 4, 2014
Kind
B1
Abstract

A flash memory controller, a non-transitory computer readable medium and a method for reading flash memory cells of a flash memory module. The method may include calculating a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module; and reading the set of flash memory cells by applying the group of reference read thresholds to provide read results.

Claims (96)

1. A method for reading flash memory cells of a flash memory module, the method comprising:

calculating a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module; and

reading the set of flash memory cells by applying the group of reference read thresholds to provide read results;

wherein the calculating comprises:

calculating at least one reference read threshold based upon the compressed representation of the reference read thresholds;

estimating read thresholds of the certain row based upon (a) the at least one reference read threshold and (b) estimators that correlate between the at least one reference read threshold and estimated read thresholds of the certain row.

2. The method according to claim 1 , wherein values of the reference read thresholds form a subset of possible values of actual read thresholds to be applied when reading the flash memory module.

3. The method according to claim 1 , wherein the multiple reference rows form a subset of rows of the flash memory module.

4. The method according to claim 3 , wherein values of the reference read thresholds form a subset of possible values of actual read thresholds to be applied when reading the flash memory module.

5. The method according to claim 1 , comprising calculating the estimators by linear minimum square algorithm or by least squares estimators.

6. A method for reading flash memory cells of a flash memory module, the method comprising:

calculating a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module;

reading the set of flash memory cells by applying the group of reference read thresholds to provide read results; and

updating at least one reference read threshold of a reference row in response to the read results and in response to estimators that correlate between the certain row and the reference row.

7. A method for reading flash memory cells of a flash memory module, the method comprising:

generating a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module;

calculating a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon the compressed representation; and

reading the set of flash memory cells by applying the group of reference read thresholds to provide read results;

wherein the generating of the compressed representation comprises clustering rows of the flash memory modules to clusters in response to read threshold information associated with the rows, and selecting a subset of rows from each cluster to provide the multiple reference rows.

8. A method for reading flash memory cells of a flash memory module, the method comprising:

generating a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module;

calculating a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon the compressed representation; and

reading the set of flash memory cells by applying the group of reference read thresholds to provide read results;

wherein the generating of the compressed representation comprises:

applying a principle component analysis on read thresholds statistics to provide a group of singular vectors; and

representing each group of read thresholds of a row of the flash memory module by a set of coefficients that map the group of read thresholds to the group of singular vectors.

9. The method according to claim 8 , comprising selecting the group of singular vectors out multiple singular vectors that are calculated during the applying of the principle component analysis.

10. A method for reading flash memory cells of a flash memory module, the method comprising:

generating a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module;

calculating a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon the compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module; and

reading the set of flash memory cells by applying the group of reference read thresholds to provide read results;

wherein the generating of the compressed representation comprises:

partitioning a multi-dimension space to multiple subsets of the multi-dimensional space; and

representing each of the subsets of the multi-dimensional space by a subset representative;

wherein the multi-dimensional space represents read threshold statistics of a plurality of rows of the flash memory module; and wherein a memory space required for storing all the subset representatives is smaller than a memory space required for storing the read threshold statistics.

11. The method according to claim 10 , wherein a subset representative represents a median value of values included in a subset of the multi-dimensional space that is represented by the subset representative.

12. The method according to claim 10 , comprising representing the subsets of the multi-dimensional space by a tree.

13. The method according to claim 10 , wherein the partitioning comprises applying multiple partitioning iterations.

14. The method according to claim 13 , comprising representing the subsets of the multi-dimensional space by a tree that comprises multiple levels, each level comprises a plurality of nodes, wherein each partition iteration is represented by a single level out of the multiple levels.

15. The method according to claim 14 , wherein each node comprises location information indicative of a location of the node in the tree, and partition information indicative of a partition value of a partition iteration that corresponds to the level of the node.

16. A non-transitory computer readable medium that stores instructions for:

calculating a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of a flash memory module based upon a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module; and

reading the set of flash memory cells by applying the group of reference read thresholds to provide read results;

calculating at least one reference read threshold based upon the compressed representation of the reference read thresholds; and

estimating read thresholds of the certain row based upon (a) the at least one reference read threshold and (b) estimators that correlate between the at least one reference read threshold and estimated read thresholds of the certain row.

17. The non-transitory computer readable medium according to claim 16 , wherein values of the reference read thresholds form a subset of possible values of actual read thresholds to be applied when reading the flash memory module.

18. The non-transitory computer readable medium according to claim 16 , wherein the multiple reference rows form a subset of rows of the flash memory module.

19. The non-transitory computer readable medium according to claim 18 , wherein values of the reference read thresholds form a subset of possible values of actual read thresholds to be applied when reading the flash memory module.

20. The non-transitory computer readable medium according to claim 16 that stores instructions for calculating the estimators by linear minimum square algorithm or by least squares estimators.

21. A non-transitory computer readable medium that stores instructions for:

calculating a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of a flash memory module based upon a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module; and

reading the set of flash memory cells by applying the group of reference read thresholds to provide read results; and

updating at least one reference read threshold of a reference row in response to the read results and in response to estimators that correlate between the certain row and the reference row.

22. A non-transitory computer readable medium that stores instructions for:

generating a compressed representation of reference read thresholds associated with multiple reference rows of a flash memory module;

calculating a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon the compressed representation;

reading the set of flash memory cells by applying the group of reference read thresholds to provide read results;

wherein the generating of the compressed representation comprises clustering rows of the flash memory modules to clusters in response to read threshold information associated with the rows, and selecting a subset of rows from each cluster to provide the multiple reference rows.

23. A non-transitory computer readable medium that stores instructions for:

generating a compressed representation of reference read thresholds associated with multiple reference rows of a flash memory module;

calculating a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon the compressed representation;

reading the set of flash memory cells by applying the group of reference read thresholds to provide read results;

applying a principle component analysis on read thresholds statistics to provide a group of singular vectors; and

representing each group of read thresholds of a row of the flash memory module by a set of coefficients that map the group of read thresholds to the group of singular vectors.

24. The non-transitory computer readable medium according to claim 23 that stores instructions for selecting the group of singular vectors out multiple singular vectors that are calculated during the applying of the principle component analysis.

25. A non-transitory computer readable medium that stores instructions for:

generating a compressed representation of reference read thresholds associated with multiple reference rows of a flash memory module;

calculating a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon the compressed representation;

reading the set of flash memory cells by applying the group of reference read thresholds to provide read results;

partitioning a multi-dimension space to multiple subsets of the multi-dimensional space; and

representing each of the subsets of the multi-dimensional space by a subset representative;

wherein the multi-dimensional space represents read threshold statistics of a plurality of rows of the flash memory module; and wherein a memory space required for storing all the subset representatives is smaller than a memory space required for storing the read threshold statistics.

26. The non-transitory computer readable medium according to claim 25 , wherein a subset representative represents a median value of values included in a subset of the multi-dimensional space that is represented by the subset representative.

27. The non-transitory computer readable medium according to claim 25 that stores instructions for representing the subsets of the multi-dimensional space by a tree.

28. The non-transitory computer readable medium according to claim 25 that stores instructions for applying multiple partitioning iterations.

29. The non-transitory computer readable medium according to claim 28 that stores instructions for representing the subsets of the multi-dimensional space by a tree that comprises multiple levels, each level comprises a plurality of nodes, wherein each partition iteration is represented by a single level out of the multiple levels.

30. The non-transitory computer readable medium according to claim 29 , wherein each node comprises location information indicative of a location of the node in the tree, and partition information indicative of a partition value of a partition iteration that corresponds to the level of the node.

31. A flash memory controller that is coupled to flash memory cells of a flash memory module, the flash memory comprises: a read threshold processing circuit arranged to calculate a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module; and a read circuit arranged to read the set of flash memory cells by applying the group of reference read thresholds to provide read results; wherein the read threshold processing circuit is arranged to calculate the group of read thresholds by calculating at least one reference read threshold based upon the compressed representation of the reference read thresholds; and estimating read thresholds of the certain row based upon (a) the at least one reference read threshold and (b) estimators that correlate between the at least one reference read threshold and estimated read thresholds of the certain row.

32. The flash memory controller according to claim 31 wherein values of the reference read thresholds form a subset of possible values of actual read thresholds to be applied when reading the flash memory module.

33. The flash memory controller according to claim 31 wherein the multiple reference rows form a subset of rows of the flash memory module.

34. The flash memory controller according to claim 33 , wherein values of the reference read thresholds form a subset of possible values of actual read thresholds to be applied when reading the flash memory module.

35. The flash memory controller according to claim 31 wherein read threshold processing circuit is arranged to calculate the estimators by linear minimum square algorithm or by least squares estimators.

36. A flash memory controller that is coupled to flash memory cells of a flash memory module, the flash memory comprises: a read threshold processing circuit arranged to calculate a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module; and a read circuit arranged to read the set of flash memory cells by applying the group of reference read thresholds to provide read results;

wherein the read threshold processing circuit is arranged to update at least one reference read threshold of a reference row in response to the read results and in response to estimators that correlate between the certain row and the reference row.

37. A flash memory controller that is coupled to flash memory cells of a flash memory module, the flash memory comprises: a read threshold processing circuit arranged to generate a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module and calculate a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon the compressed representation; and a read circuit arranged to read the set of flash memory cells by applying the group of reference read thresholds to provide read results;

wherein the read threshold processing circuit is arranged to generate the compressed representation by clustering rows of the flash memory modules to clusters in response to read threshold information associated with the rows, and selecting a subset of rows from each cluster to provide the multiple reference rows.

38. A flash memory controller that is coupled to flash memory cells of a flash memory module, the flash memory comprises: a read threshold processing circuit arranged to generate a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module and calculate a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon the compressed representation; and a read circuit arranged to read the set of flash memory cells by applying the group of reference read thresholds to provide read results;

wherein the read threshold processing circuit is arranged to generate the compressed representation by applying a principle component analysis on read thresholds statistics to provide a group of singular vectors; and representing each group of read thresholds of a row of the flash memory module by a set of coefficients that map the group of read thresholds to the group of singular vectors.

39. The flash memory controller according to claim 38 , wherein the read threshold processing circuit is arranged to select the group of singular vectors out multiple singular vectors that are calculated during the applying of the principle component analysis.

40. A flash memory controller that is coupled to flash memory cells of a flash memory module, the flash memory comprises: a read threshold processing circuit arranged to generate a compressed representation of reference read thresholds associated with multiple reference rows of the flash memory module and calculate a group of read thresholds to be applied during a reading operation of a set of flash memory cells that belong to a certain row of the flash memory module based upon the compressed representation; and a read circuit arranged to read the set of flash memory cells by applying the group of reference read thresholds to provide read results;

wherein the read threshold processing circuit is arranged to generate the compressed representation by partitioning a multi-dimension space to multiple subsets of the multi-dimensional space; and representing each of the subsets of the multi-dimensional space by a subset representative; wherein the multi-dimensional space represents read threshold statistics of a plurality of rows of the flash memory module; and wherein a memory space required for storing all the subset representatives is smaller than a memory space required for storing the read threshold statistics.

41. The flash memory controller according to claim 40 , wherein a subset representative represents a median value of values included in a subset of the multi-dimensional space that is represented by the subset representative.

42. The flash memory controller according to claim 40 , wherein the read threshold processing circuit is arranged to represent the subsets of the multi-dimensional space by a tree.

43. The flash memory controller according to claim 40 , wherein the read threshold processing circuit is arranged to apply multiple partitioning iterations for partitioning the multi-dimension space to the multiple subsets of the multi-dimensional space.

44. The flash memory controller according to claim 43 , wherein the read threshold processing circuit is arranged to represent the subsets of the multi-dimensional space by a tree that comprises multiple levels, each level comprises a plurality of nodes, wherein each partition iteration is represented by a single level out of the multiple levels.

45. The flash memory controller according to claim 44 , wherein each node comprises location information indicative of a location of the node in the tree, and partition information indicative of a partition value of a partition iteration that corresponds to the level of the node.

Assignments (9)
MERGER Recorded Mar 3, 2023
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED; BROADCOM INTERNATIONAL PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 062952/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
To: BROADCOM INTERNATIONAL PTE. LTD.
Reel/Frame 053771/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2017
From: KREOS CAPITAL IV (EXPERT FUND) LIMITED
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 041339/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2016
From: DENSBITS TECHNOLOGIES LTD.
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 037622/0224 →
SECURITY INTEREST Recorded Mar 18, 2015
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 035222/0547 →
SECURITY INTEREST Recorded Jul 30, 2014
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 033444/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2012
From: BAR, ILAN; WEINGARTEN, HANAN
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 029389/0486 →