Encoding method and system, decoding method and system
First Claim
Patent Images
1. An encoding method, the method comprising:
- receiving data;
generating a set of first codewords by applying a first encoding process on the received data; and
performing a second encoding process on a folded version of each first codeword or on a folded version of the received data to provide a set of second codewords, wherein the second codeword comprises redundancy bits.
9 Assignments
0 Petitions
Accused Products
Abstract
A decoder, an encoder, a decoding method and an encoding method are provided. The encoding method includes receiving data; generating a set of first codewords by applying a first encoding process on the received data; and performing a second encoding process on a folded version of each first codeword to provide a set of second codewords, wherein a folded version of a first codeword is representative of a storage of the first codeword in a two dimensional memory space, wherein the second codeword comprises redundancy bits.
344 Citations
153 Claims
-
1. An encoding method, the method comprising:
- receiving data;
generating a set of first codewords by applying a first encoding process on the received data; and
performing a second encoding process on a folded version of each first codeword or on a folded version of the received data to provide a set of second codewords, wherein the second codeword comprises redundancy bits. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 101, 102)
-
2. The method according to claim 1 comprising storing each first codeword in multiple columns of a memory space;
- and performing the second encoding process on rows of the memory space.
-
3. The method according to claim 1 wherein the first error encoding process differs from the second encoding process.
-
4. The method according to claim 1 wherein at least two first codewords have different lengths.
-
5. The method according to claim 1 comprising configuring an error correction capability of at least one of the first and second encoding processes based on a desired error correction capability.
-
6. The method according to claim 1 comprising performing a third encoding process on a folded version of each second codeword to provide a set of third codewords.
-
7. The method according to claim 6 wherein the first, second and third error encoding process differ from each other.
-
8. The method according to claim 6 wherein at least two codewords out of different sets of codewords have different lengths.
-
9. The method according to claim 1 wherein at least two codewords of the same set of codeword have different lengths.
-
10. The method according to claim 1 comprising performing at least four encoding processes, wherein each encoding process except a first encoding process is applied on a folded version of a set of codewords obtained by applying a previous encoding process.
-
11. The method according to claim 1 comprising performing at least three encoding processes, wherein each encoding process except a first encoding process is applied on a folded version of a set of codewords obtained by applying a previous encoding process, wherein at least one encoding process is applied only on redundancy bits generated by previous encoding processes.
-
12. The method according to claim 1 comprising performing at least three encoding processes, wherein each encoding process except a first encoding process is applied on a folded version of a set of codewords obtained by applying a previous encoding process, wherein at least two encoding processes differ from each other.
-
13. The method according to claim 1 comprising generating the set of first codewords by a first encoder, providing the first codewords to a second encoder, and performing a second encoding process by a second encoder;
- wherein the second encoder starts to perform the second encoding process before the first encoder finished to generate a sub-set of the first codewords.
-
14. The method according to claim 13 comprising generating the set of first codewords by a first linear feedback shift register of the first encoder, providing first codeword chunks to a second liner feedback shift register of the second encoder, and performing a second encoding process by a second encoder.
-
15. The method according to claim 1 wherein each first codeword is arranged in a set of consecutive columns of a matrix;
- wherein the method comprises filling registers that correspond to rows of the matrix and performing the second encoding process on rows of the matrix.
-
16. The method according to claim 1 comprising generating the set of first codewords by a first encoder, wherein a folded version of a first codeword is arranged in a set of consecutive columns of a matrix;
- filling registers of a second encoder, wherein the registers correspond to rows of the matrix and performing the second decoding process on rows of the matrix by the second encoder.
-
17. The method according to claim 1 comprising configuring configurable linear feedback shift registers according to an encoding parameter of an encoding process selected from the first and second encoding processes.
-
18. The method according to claim 1 comprising storing the set of second codewords in a flash memory;
- reading a content of the flash memory; and
applying a decoding process on the content of the flash memory.
- reading a content of the flash memory; and
-
101. The method according to claim 1 comprising performing multiple encoding processes in parallel on the folded version of the received data to provide sets of codewords.
-
102. The method according to claim 1 comprising applying an encoding process on the sets of codewords.
-
2. The method according to claim 1 comprising storing each first codeword in multiple columns of a memory space;
- receiving data;
-
19. A decoding method, the method comprises:
- receiving information that comprises a final set of codewords that undergone an error inducing process;
reconstructing data by applying on the information a first decoding process to provide first results; and
applying a second decoding process on folded versions of first results or on folded versions of the information to provide second results. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 103)
-
20. The method according to claim 19 comprising storing each first result in multiple columns of a memory space;
- and performing the second decoding process on rows of the memory space.
-
21. The method according to claim 19 wherein the first error encoding process differs from the second encoding process.
-
22. The method according to claim 19 wherein at least two first results have different lengths.
-
23. The method according to claim 19 comprising configuring an error correction capability of at least one of the first and second decoding processes based on a desired error correction capability.
-
24. The method according to claim 19 comprising performing a third decoding process on a folded version of each second result to provide a set of third results.
-
25. The method according to claim 24 wherein the first, second and third error decoding process differ from each other.
-
26. The method according to claim 24 wherein at least two results out of different sets of results have different lengths.
-
27. The method according to claim 19 wherein at least two results of the same set of result have different lengths.
-
28. The method according to claim 19 comprising performing at least four decoding processes, wherein each decoding process except a first decoding process is applied on a folded version of a set of results obtained by applying a previous decoding process.
-
29. The method according to claim 19 comprising performing at least three decoding processes, wherein each decoding process except a first decoding process is applied on a folded version of a set of results obtained by applying a previous decoding process, wherein at least one decoding process is applied only on redundancy bits generated by previous decoding processes.
-
30. The method according to claim 19 comprising performing at least three decoding processes, wherein each decoding process except a first decoding process is applied on a folded version of a set of results obtained by applying a previous decoding process, wherein at least two decoding processes differ from each other.
-
31. The method according to claim 19 comprising performing at least two decoding processes, wherein at least one decoding process is followed by determining whether to ignore the results of the decoding process.
-
32. The method according to claim 31 comprising ignoring the results of an ignored decoding process by applying a next decoding process on a folded version of each result of a decoding process that preceded the ignored decoding process.
-
33. The method according to claim 31 comprising determining to ignore the results of the decoding process if detecting a miss correction.
-
34. The method according to claim 31 comprising ignoring the results of the first decoding process by applying the second decoding process on a folded version of the information.
-
35. The method according to claim 19 comprising performing at least two decoding processes, wherein at least one decoding process is followed by determining whether to skip at least one decoding process that follows the decoding process.
-
36. The method according to claim 19 comprising determining to skip at least one decoding process if at least one decoding process that preceded the determination provided a result of a desired characteristic.
-
37. The method according to claim 31 comprising ignoring the results of an ignored decoding process by applying a next decoding process on a folded version of each result of a decoding process that preceded the ignored decoding process.
-
38. The method according to claim 19 comprising preventing a modification of at least one bit of a result by at least one decoding process if determining by at least one preceding decoding process that the at least one bit is correct.
-
39. The method according to claim 19 comprising performing an error location search of a decoding process in response to error locations that were found during a previous decoding process.
-
40. The method according to claim 19 comprising generating, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the generating comprises applying multiple decoding processes out of a group of information bits;
- and determining whether to modify each information bit based upon multiple indications associated with the information bit.
-
41. The method according to claim 19 comprising generating, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the generating comprises applying multiple decoding processes out of a group of information bits;
- and determining whether to modify each information bit based upon a majority of indications associated with the information bit.
-
42. The method according to claim 19 comprising generating, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the generating comprises applying multiple decoding processes out of a group of information bits;
- and determining to modify each information bit if at least a predetermined number of indications associated with the information bit indicate that the bit is not correct.
-
43. The method according to claim 19 comprising generating, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the generating comprises applying multiple decoding processes out of a group of information bits;
- and determining whether to modify each information bit based upon confidence levels of different indications associated with the information bit.
-
44. The method according to claim 19 wherein each decoding process is characterized by correction threshold;
- wherein the method comprises preventing a modification of information bits if a decoding process indicates that errors occurred in more information bits than the correction threshold of the decoding process.
-
45. The method according to claim 19 comprising performing multiple iterations of multiple decoding processes.
-
46. The method according to claim 19 comprising performing an iteration of multiple decoding processes while allowing a correction of up to a predefined number of corrections;
- altering the predefined number of corrections; and
performing another iteration of multiple decoding processes while allowing a correction of up to an altered predefined amount of corrections.
- altering the predefined number of corrections; and
-
47. The method according to claim 19 comprising performing multiple iterations of decoding processes to provide multiple decoding iteration results;
- wherein the decoding iterations differ from each other; and
selecting a selected decoding iteration result out of the multiple decoding iterations results.
- wherein the decoding iterations differ from each other; and
-
48. The method according to claim 19 comprising performing a first iteration of decoding processes to provide a first decoding iteration result;
- and performing a second iteration of second processes if the first decoding iteration result does not satisfy a predefined criteria.
-
49. The method according to claim 19 comprising performing a first iteration of decoding processes to provide a first decoding iteration result;
- and performing a second iteration of second processes if the first decoding iteration failed.
-
50. The method according to claim 19 comprising performing multiple iterations of decoding processes wherein at least one iteration of decoding processes comprises multiple instances of a single decoding process.
-
103. The method according to claim 19 comprising performing multiple decoding processes in parallel on a folded version of the information to provide multiple results.
-
20. The method according to claim 19 comprising storing each first result in multiple columns of a memory space;
- receiving information that comprises a final set of codewords that undergone an error inducing process;
-
51. A system that comprises an encoding unit and a two dimensional memory array;
- wherein the encoding unit is configured to receive a data;
generate a set of first codewords by applying a first encoding process on the received data; and
perform a second encoding process on a folded version of each first codeword to provide a set of second codewords, wherein the set of second codewords facilitates an error correction encoding of the data. - View Dependent Claims (52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68)
-
52. The method according to claim 51 wherein the two dimensional memory array is configured to store each first codeword in multiple columns of the two dimensional memory array;
- and wherein the encoding unit is configured to perform the second encoding process on rows of the two dimensional memory array.
-
53. The system according to claim 51 wherein the first error encoding process differs from the second encoding process.
-
54. The system according to claim 51 wherein at least two first codewords have different lengths.
-
55. The system according to claim 51 wherein the encoding unit is configured to adjust an error correction capability of at least one of the first and second encoding processes based on a desired error correction capability.
-
56. The system according to claim 51 wherein the encoding unit is configured to perform a third encoding process on a folded version of each second codeword to provide a set of third codewords.
-
57. The system according to claim 56 wherein the encoding unit is configured to perform first, second and third error encoding processes that differ from each other.
-
58. The system according to claim 56 wherein at least two codewords out of different sets of codewords have different lengths.
-
59. The system according to claim 51 wherein at least two codewords of the same set of codeword have different lengths.
-
60. The system according to claim 51 wherein the encoding unit is configured to perform at least four encoding processes, wherein the encoding unit is configured to perform each encoding process except a first encoding process is applied on a folded version of a set of codewords obtained by applying a previous encoding process.
-
61. The system according to claim 51 wherein the encoding unit is configured to perform at least three encoding processes, wherein the encoding unit is configured to apply each encoding process except a first encoding process on a folded version of a set of codewords obtained by applying a previous encoding process, wherein the encoding unit is configured to apply at least one encoding process only on redundancy bits generated by previous encoding processes.
-
62. The system according to claim 51 wherein the encoding unit is configured to perform at least three encoding processes, wherein each encoding process except a first encoding process is applied on a folded version of a set of codewords obtained by applying a previous encoding process, wherein at least two encoding processes differ from each other.
-
63. The system according to claim 51 wherein the encoding unit comprises a first encoder and a second encoder;
- wherein the first encoder is configured to generate the set of first codewords, provide the first codewords to the second encoder, and wherein the second encoder is configured to perform a second encoding process;
wherein the second encoder starts to perform the second encoding process before the first encoder finished to generate a sub-set of the first codewords.
- wherein the first encoder is configured to generate the set of first codewords, provide the first codewords to the second encoder, and wherein the second encoder is configured to perform a second encoding process;
-
64. The system according to claim 63 wherein a first linear feedback shift register of the first encoder is configured to generate the set of first, provide first codeword chunks to a second linear feedback shift register of the second encoder, and wherein the second encoder performs the second encoding.
-
65. The system according to claim 51 wherein each first codeword is arranged in a set of consecutive columns of a matrix;
- wherein the encoding unit comprises a second encoder that comprises registers correspond to rows of the matrix;
wherein the second encoder is configured to fill these registers and process the content of the registers.
- wherein the encoding unit comprises a second encoder that comprises registers correspond to rows of the matrix;
-
66. The system according to claim 51 wherein the encoding unit comprises a first encoder and a second encoder;
- wherein the first encoder is configured to generate the set of first codewords, wherein a folder version of a first codeword is arranged in a set of consecutive columns of a matrix;
wherein the second encoder comprises registers that correspond to rows of the matrix;
wherein the second encoder is configured to perform the second decoding process on rows of the matrix by the second encoder.
- wherein the first encoder is configured to generate the set of first codewords, wherein a folder version of a first codeword is arranged in a set of consecutive columns of a matrix;
-
67. The system according to claim 51 wherein the encoding unit comprises multiple configurable linear feedback shift registers that are configurable according to an encoding parameter of an encoding process selected from the first and second encoding processes.
-
68. The system according to claim 51 comprising a flash memory configured to store the set of second codewords in a flash memory;
- and a memory controller configured to read a content of the flash memory;
wherein the decoding unit is configured to applying multiple decoding processes on the content of the flash memory.
- and a memory controller configured to read a content of the flash memory;
-
52. The method according to claim 51 wherein the two dimensional memory array is configured to store each first codeword in multiple columns of the two dimensional memory array;
- wherein the encoding unit is configured to receive a data;
-
69. A system that comprises a decoder and a two dimensional memory unit, the decoder is configured to receive information that comprises a final set of codewords that undergone an error inducing process;
- reconstruct data by applying on the information a first decoding process to provide first results; and
apply a second decoding process on folded versions of first results to provide second results. - View Dependent Claims (70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
-
70. The system according to claim 69 wherein the two dimensional memory unit is configured to store each first result is stored in multiple columns;
- wherein the decoder is configured to perform the second decoding process on rows of the two dimensional memory unit.
-
71. The system according to claim 69 wherein the first error encoding process differs from the second encoding process.
-
72. The system according to claim 69 wherein at least two first results have different lengths.
-
73. The system according to claim 69 wherein the decoder is configured to apply decoding processes of configurable error correction capability;
- wherein the configurable error correction capabilities are determined based on a desired error correction capability.
-
74. The system according to claim 69 wherein the decoder is adapted perform a third decoding process on a folded version of each second result to provide a set of third results, wherein a folded version of a second result is representative of a storage of the second result in a two dimensional memory space.
-
75. The system according to claim 74 wherein the first, second and third error decoding process differ from each other.
-
76. The system according to claim 74 wherein at least two results out of different sets of results have different lengths.
-
77. The system according to claim 69 wherein at least two results of the same set of results have different lengths.
-
78. The system according to claim 69 wherein the decoder is configured to perform at least four decoding processes, wherein each decoding process except a first decoding process is applied on a folded version of a set of results obtained by applying a previous decoding process.
-
79. The system according to claim 69 wherein the decoder is configured to perform at least three decoding processes, wherein the decoder is configured to apply each decoding process except a first decoding process on a folded version of a set of results obtained by applying a previous decoding process, wherein the decoder is configured to apply at least one decoding process only on redundancy bits generated by previous decoding processes.
-
80. The system according to claim 69 wherein the decoder is configured to perform at least three decoding processes, wherein the decoder is configured to apply each decoding process except a first decoding process on a folded version of a set of results obtained by applying a previous decoding process, wherein at least two decoding processes differ from each other.
-
81. The system according to claim 69 wherein the decoder is configured to perform at least two decoding processes, wherein the decoder is configured to determine, after completing at least one decoding process, whether to ignore the results of the decoding process.
-
82. The system according to claim 81 wherein the decoder is configured to ignore the results of an ignored decoding process by applying a next decoding process on a folded version of each result of a decoding process that preceded the ignored decoding process.
-
83. The system according to claim 81 wherein the decoder is configured to determine to ignore the results of the decoding process if detecting a miss correction.
-
84. The system according to claim 81 wherein the decoder is configured to ignore the results of the first decoding process by applying the second decoding process on a folded version of the information.
-
85. The system according to claim 69 wherein the decoder is configured to perform at least two decoding processes and to determine whether to skip at least one decoding process that follows a decoding process.
-
86. The system according to claim 69 wherein the decoder is configured to perform at least two decoding processes and to determine whether to skip at least one decoding process that follows a decoding process if at least one decoding process that preceded the determination provided a result of a desired characteristic.
-
87. The system according to claim 69 wherein the decoder is configured to ignore the results of an ignored decoding process and to apply a next decoding process on a folded version of each result of a decoding process that preceded the ignored decoding process.
-
88. The system according to claim 69 wherein the decoder is configured to prevent a modification of at least one bit of a result by at least one decoding process if the decoder determines, by applying at least one preceding decoding process that the at least one bit is correct.
-
89. The system according to claim 69 wherein the decoder is configured to perform an error location search of a decoding process in response to error locations that were found during a previous decoding process.
-
90. The system according to claim 69 wherein the decoder is configured to generate, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the decoder is configured to generate the multiple indications by applying multiple decoding processes out of a group of information bits;
- and wherein the decoder is configured to determine whether to modify each information bit based upon multiple indications associated with the information bit.
-
91. The system according to claim 69 wherein the decoder is configured to generate, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the decoder is configured to generate the multiple indications by applying multiple decoding processes out of a group of information bits;
- and wherein the decoder is configured to determine whether to modify each information bit based upon a majority of indications associated with the information bit.
-
92. The system according to claim 69 wherein the decoder is configured to generate, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the decoder is configured to generate the multiple indications by applying multiple decoding processes out of a group of information bits;
- and wherein the decoder is configured to determine whether to modify each information bit if at least a predetermined number of indications associated with the information bit indicate that the bit is not correct.
-
93. The system according to claim 69 wherein the decoder is configured to generate, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the decoder is configured to generate the multiple indications by applying multiple decoding processes out of a group of information bits;
- and wherein the decoder is configured to determine whether to modify each information bit based upon confidence levels of different indications associated with the information bit.
-
94. The system according to claim 69 wherein each decoding process is characterized by correction threshold;
- wherein the decoder is configured to prevent a modification of information bits if a decoding process indicates that errors occurred in more information bits than the correction threshold of the decoding process.
-
95. The system according to claim 69 wherein the decoder is configured to perform multiple iterations of multiple decoding processes.
-
96. The system according to claim 69 wherein the decoder is configured to perform an iteration of multiple decoding processes while allowing a correction of up to a predefined number of corrections;
- alter the predefined number of corrections; and
perform another iteration of multiple decoding processes while allowing a correction of up to an altered predefined amount of corrections.
- alter the predefined number of corrections; and
-
97. The system according to claim 69 wherein the decoder is configured to perform multiple iterations of decoding processes to provide multiple decoding iteration results;
- wherein the decoding iterations differ from each other; and
select a selected decoding iteration result out of the multiple decoding iterations results.
- wherein the decoding iterations differ from each other; and
-
98. The system according to claim 69 wherein the decoder is configured to perform a first iteration of decoding processes to provide a first decoding iteration result;
- and perform a second iteration of second processes if the first decoding iteration result does not satisfy predefined criteria.
-
99. The system according to claim 69 wherein the decoder is configured to perform a first iteration of decoding processes to provide a first decoding iteration result;
- and perform a second iteration of second processes if the first decoding iteration failed.
-
100. The system according to claim 69 wherein the decoder is configured to perform multiple iterations of decoding processes wherein at least one iteration of decoding processes comprises multiple instances of a single decoding process.
-
70. The system according to claim 69 wherein the two dimensional memory unit is configured to store each first result is stored in multiple columns;
- reconstruct data by applying on the information a first decoding process to provide first results; and
-
104. A non-transitory computer useable medium that stores instructions that once executed by a processor of the computer cause the processor to perform the steps of:
- receiving data;
generating a set of first codewords by applying a first encoding process on the received data; and
performing a second encoding process on a folded version of each first codeword or on a folded version of the received data to provide a set of second codewords, wherein the second codeword comprises redundancy bits. - View Dependent Claims (105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121)
-
105. The non-transitory computer usable medium according to claim 104 that stores instructions for storing each first codeword in multiple columns of a memory space;
- and performing the second encoding process on rows of the memory space.
-
106. The non-transitory computer usable medium according to claim 104 wherein the first error encoding process differs from the second encoding process.
-
107. The non-transitory computer usable medium according to claim 104 wherein at least two first codewords have different lengths.
-
108. The non-transitory computer usable medium according to claim 104 that stores instructions for configuring an error correction capability of at least one of the first and second encoding processes based on a desired error correction capability.
-
109. The non-transitory computer usable medium according to claim 104 that stores instructions for performing a third encoding process on a folded version of each second codeword to provide a set of third codewords.
-
110. The non-transitory computer usable medium according to claim 109 wherein the first, second and third error encoding process differ from each other.
-
111. The non-transitory computer usable medium according to claim 109 wherein at least two codewords out of different sets of codewords have different lengths.
-
112. The non-transitory computer usable medium according to claim 104 wherein at least two codewords of the same set of codeword have different lengths.
-
113. The non-transitory computer usable medium according to claim 104 that stores instructions for performing at least four encoding processes, wherein each encoding process except a first encoding process is applied on a folded version of a set of codewords obtained by applying a previous encoding process.
-
114. The non-transitory computer usable medium according to claim 104 that stores instructions for performing at least three encoding processes, wherein each encoding process except a first encoding process is applied on a folded version of a set of codewords obtained by applying a previous encoding process, wherein at least one encoding process is applied only on redundancy bits generated by previous encoding processes.
-
115. The non-transitory computer usable medium according to claim 104 that stores instructions for performing at least three encoding processes, wherein each encoding process except a first encoding process is applied on a folded version of a set of codewords obtained by applying a previous encoding process, wherein at least two encoding processes differ from each other.
-
116. The non-transitory computer usable medium according to claim 104 that stores instructions for generating the set of first codewords by a first encoder, providing the first codewords to a second encoder, and performing a second encoding process by a second encoder;
- wherein the second encoder starts to perform the second encoding process before the first encoder finished to generate a sub-set of the first codewords.
-
117. The non-transitory computer usable medium according to claim 116 that stores instructions for generating the set of first codewords by a first linear feedback shift register of the first encoder, providing first codeword chunks to a second liner feedback shift register of the second encoder, and performing a second encoding process by a second encoder.
-
118. The non-transitory computer usable medium according to claim 104 wherein each first codeword is arranged in a set of consecutive columns of a matrix;
- wherein non-transitory computer usable medium stores instructions for filling registers that correspond to rows of the matrix and performing the second encoding process on rows of the matrix.
-
119. The non-transitory computer usable medium according to claim 104 that stores instructions for generating the set of first codewords by a first encoder, wherein a folded version of a first codeword is arranged in a set of consecutive columns of a matrix;
- filling registers of a second encoder, wherein the registers correspond to rows of the matrix and performing the second decoding process on rows of the matrix by the second encoder.
-
120. The non-transitory computer usable medium according to claim 104 that stores instructions for configuring configurable linear feedback shift registers according to an encoding parameter of an encoding process selected from the first and second encoding processes.
-
121. The non-transitory computer usable medium according to claim 104 that stores instructions for storing the set of second codewords in a flash memory;
- reading a content of the flash memory; and
applying a decoding process on the content of the flash memory.
- reading a content of the flash memory; and
-
105. The non-transitory computer usable medium according to claim 104 that stores instructions for storing each first codeword in multiple columns of a memory space;
- receiving data;
-
122. A non-transitory computer useable medium that stores instructions that once executed by a processor of the computer cause the processor to perform the steps of:
- receiving information that comprises a final set of codewords that undergone an error inducing process;
reconstructing data by applying on the information a first decoding process to provide first results; and
applying a second decoding process on folded versions of first results or on folded versions of the information to provide second results. - View Dependent Claims (123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153)
-
123. The non-transitory computer usable medium according to claim 122 that stores instructions for storing each first result in multiple columns of a memory space;
- and performing the second decoding process on rows of the memory space.
-
124. The non-transitory computer usable medium according to claim 122 wherein the first error encoding process differs from the second encoding process.
-
125. The non-transitory computer usable medium according to claim 122 wherein at least two first results have different lengths.
-
126. The non-transitory computer usable medium according to claim 122 that stores instructions for configuring an error correction capability of at least one of the first and second decoding processes based on a desired error correction capability.
-
127. The non-transitory computer usable medium according to claim 122 that stores instructions for performing a third decoding process on a folded version of each second result to provide a set of third results.
-
128. The non-transitory computer usable medium according to claim 127 wherein the first, second and third error decoding process differ from each other.
-
129. The non-transitory computer usable medium according to claim 127 wherein at least two results out of different sets of results have different lengths.
-
130. The non-transitory computer usable medium according to claim 122 wherein at least two results of the same set of result have different lengths.
-
131. The non-transitory computer usable medium according to claim 122 that stores instructions for performing at least four decoding processes, wherein each decoding process except a first decoding process is applied on a folded version of a set of results obtained by applying a previous decoding process.
-
132. The non-transitory computer usable medium according to claim 122 that stores instructions for performing at least three decoding processes, wherein each decoding process except a first decoding process is applied on a folded version of a set of results obtained by applying a previous decoding process, wherein at least one decoding process is applied only on redundancy bits generated by previous decoding processes.
-
133. The non-transitory computer usable medium according to claim 122 that stores instructions for performing at least three decoding processes, wherein each decoding process except a first decoding process is applied on a folded version of a set of results obtained by applying a previous decoding process, wherein at least two decoding processes differ from each other.
-
134. The non-transitory computer usable medium according to claim 122 that stores instructions for performing at least two decoding processes, wherein at least one decoding process is followed by determining whether to ignore the results of the decoding process.
-
135. The non-transitory computer usable medium according to claim 134 that stores instructions for ignoring the results of an ignored decoding process by applying a next decoding process on a folded version of each result of a decoding process that preceded the ignored decoding process.
-
136. The non-transitory computer usable medium according to claim 134 that stores instructions for determining to ignore the results of the decoding process if detecting a miss correction.
-
137. The non-transitory computer usable medium according to claim 134 that stores instructions for ignoring the results of the first decoding process by applying the second decoding process on a folded version of the information.
-
138. The non-transitory computer usable medium according to claim 122 that stores instructions for performing at least two decoding processes, wherein at least one decoding process is followed by determining whether to skip at least one decoding process that follows the decoding process.
-
139. The non-transitory computer usable medium according to claim 122 that stores instructions for determining to skip at least one decoding process if at least one decoding process that preceded the determination provided a result of a desired characteristic.
-
140. The non-transitory computer usable medium according to claim 134 that stores instructions for ignoring the results of an ignored decoding process by applying a next decoding process on a folded version of each result of a decoding process that preceded the ignored decoding process.
-
141. The non-transitory computer usable medium according to claim 122 that stores instructions for preventing a modification of at least one bit of a result by at least one decoding process if determining by at least one preceding decoding process that the at least one bit is correct.
-
142. The non-transitory computer usable medium according to claim 122 that stores instructions for performing an error location search of a decoding process in response to error locations that were found during a previous decoding process.
-
143. The non-transitory computer usable medium according to claim 122 that stores instructions for generating, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the generating comprises applying multiple decoding processes out of a group of information bits;
- and determining whether to modify each information bit based upon multiple indications associated with the information bit.
-
144. The non-transitory computer usable medium according to claim 122 that stores instructions for generating, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the generating comprises applying multiple decoding processes out of a group of information bits;
- and determining whether to modify each information bit based upon a majority of indications associated with the information bit.
-
145. The non-transitory computer usable medium according to claim 122 that stores instructions for generating, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the generating comprises applying multiple decoding processes out of a group of information bits;
- and determining to modify each information bit if at least a predetermined number of indications associated with the information bit indicate that the bit is not correct.
-
146. The non-transitory computer usable medium according to claim 122 that stores instructions for generating, for each information bit out of multiple information bits, multiple indications about a correctness of the information bit, wherein the generating comprises applying multiple decoding processes out of a group of information bits;
- and determining whether to modify each information bit based upon confidence levels of different indications associated with the information bit.
-
147. The non-transitory computer usable medium according to claim 122 wherein each decoding process is characterized by correction threshold;
- wherein non-transitory computer usable medium stores instructions for preventing a modification of information bits if a decoding process indicates that errors occurred in more information bits than the correction threshold of the decoding process.
-
148. The non-transitory computer usable medium according to claim 122 that stores instructions for performing multiple iterations of multiple decoding processes.
-
149. The non-transitory computer usable medium according to claim 122 that stores instructions for performing an iteration of multiple decoding processes while allowing a correction of up to a predefined number of corrections;
- altering the predefined number of corrections; and
performing another iteration of multiple decoding processes while allowing a correction of up to an altered predefined amount of corrections.
- altering the predefined number of corrections; and
-
150. The non-transitory computer usable medium according to claim 122 that stores instructions for performing multiple iterations of decoding processes to provide multiple decoding iteration results;
- wherein the decoding iterations differ from each other; and
selecting a selected decoding iteration result out of the multiple decoding iterations results.
- wherein the decoding iterations differ from each other; and
-
151. The non-transitory computer usable medium according to claim 122 that stores instructions for performing a first iteration of decoding processes to provide a first decoding iteration result;
- and performing a second iteration of second processes if the first decoding iteration result does not satisfy a predefined criteria.
-
152. The non-transitory computer usable medium according to claim 122 that stores instructions for performing a first iteration of decoding processes to provide a first decoding iteration result;
- and performing a second iteration of second processes if the first decoding iteration failed.
-
153. The non-transitory computer usable medium according to claim 122 that stores instructions for performing multiple iterations of decoding processes wherein at least one iteration of decoding processes comprises multiple instances of a single decoding process.
-
123. The non-transitory computer usable medium according to claim 122 that stores instructions for storing each first result in multiple columns of a memory space;
- receiving information that comprises a final set of codewords that undergone an error inducing process;
Specification
- Resources
Thank you for your request. You will receive a custom alert email when the Litigation Campaign Assessment is available.
×
-
Current AssigneeAvago Technologies International Sales Pte Limited (Broadcom, Inc.)
-
Original AssigneeDensBits Technologies Ltd. (Broadcom, Inc.)
-
InventorsWeingarten, Hanan, Kanter, Ofir Avraham, Steiner, Avi, Sabbag, Erez
-
Primary Examiner(s)Riad, Amine
-
Application NumberUS12/651,489Publication NumberTime in Patent Office1,730 DaysField of Search714/781US Class Current714/781CPC Class CodesG06F 11/1068 in sector programmable memo...H03M 13/152 Bose-Chaudhuri-Hocquenghem ...H03M 13/1565 Decoding beyond the bounded...H03M 13/2906 using block codes H03M13/29...H03M 13/2918 with error correction codes...