Electronic data flash card with bose, ray-chaudhuri, hocquenghem (BCH) error detection/correction
First Claim
1. A non-volatile memory device comprising:
- a Bose, Ray-Chaudhuri, Hocquenghem (BCH) decoder including,a syndrome calculator responsive to a page of information, the page including data and overhead, the data being organized into a plurality of data sections and the overhead being organized into a plurality of overhead sections, the syndrome calculator operative to generate a syndrome for each of the data sections;
a root finder coupled to receive the calculated syndrome and operative to generate at least two roots; and
a polynomial calculator responsive to the at least two roots and operative to generate at least two error addresses, each identifying a location in the data wherein the error lies,wherein the plurality of data sections is four sections and the root finder generates the at least two roots, Z1 and Z2, based upon a Galois Field (GF) (211) calculation.
2 Assignments
0 Petitions
Accused Products
Abstract
A Bose, Ray-Chaudhuri, Hocquenghem (BCH) decoder is employed in non-volatile memory applications for determining the number of errors and locating the errors in a page of information. The decoder includes a syndrome calculator responsive to a sector of information. The sector includes data and overhead, with the data being organized into data sections and the overhead being organized into overhead sections. The syndrome calculator generates a syndrome for each of the data sections. A root finder is coupled to receive the calculated syndrome and to generate at least two roots. A polynomial calculator responds to the two roots and generates at least two error addresses, each identifying a location in the data wherein the error lies.
14 Citations
15 Claims
-
1. A non-volatile memory device comprising:
-
a Bose, Ray-Chaudhuri, Hocquenghem (BCH) decoder including, a syndrome calculator responsive to a page of information, the page including data and overhead, the data being organized into a plurality of data sections and the overhead being organized into a plurality of overhead sections, the syndrome calculator operative to generate a syndrome for each of the data sections; a root finder coupled to receive the calculated syndrome and operative to generate at least two roots; and a polynomial calculator responsive to the at least two roots and operative to generate at least two error addresses, each identifying a location in the data wherein the error lies, wherein the plurality of data sections is four sections and the root finder generates the at least two roots, Z1 and Z2, based upon a Galois Field (GF) (211) calculation. - View Dependent Claims (2, 3, 4, 5)
and
Z22+Z2+K=0,wherein ‘
K’
represents a syndrome.
-
-
3. A non-volatile memory device, as recited in claim 1, wherein the root finder includes comparison logic for generating the at least two roots.
-
4. A non-volatile memory device, as recited in claim 1, wherein the comparison logic is made of a plurality of XOR.
-
5. A non-volatile memory device, as recited in claim 1, wherein the syndrome calculator includes combinatorial shift and comparison logic for generating each syndrome.
-
6. A non-volatile memory system comprising:
-
a host system; at least one flash memory system coupled to store information from the host system; and an flash controller coupled between the host system and the at least one flash system for transferring information, organized into pages, between the host system and the flash system and including, a Bose, Ray-Chaudhuri, Hocquenghem (BCH) decoder including, a syndrome calculator responsive to a page of information, the page including data and overhead, the data being organized into a plurality of data sections and the overhead being organized into a plurality of overhead sections, the syndrome calculator operative to generate a syndrome for each of the data sections; a root finder coupled to receive the calculated syndrome and operative to generate at least two roots; and a polynomial calculator responsive to the at least two roots and operative to generate at least two error addresses, each identifying a location in the data wherein the error lies, wherein the plurality of data sections is four sections and the root finder generates the at least two roots, Z1 and Z2, based upon a Galois Field (GF) (211) calculation. - View Dependent Claims (7, 8, 9, 10, 11, 12)
and
Z22+Z2+K=0,wherein ‘
K’
represents a syndrome.
-
-
10. A non-volatile memory system, as recited in claim 6, wherein the root finder includes comparison logic for generating the at least two roots.
-
11. A non-volatile memory system, as recited in claim 6, wherein the comparison logic is made of a plurality of XOR.
-
12. A non-volatile memory system, as recited in claim 6, wherein the syndrome calculator includes combinatorial shift and comparison logic for generating each syndrome.
-
13. A method of detecting errors in information stored in non-volatile memory comprising:
-
calculating a plurality of syndromes, each of the syndromes being calculated for a segment of a page of information stored in the non-volatile memory; calculating A, B, C using the calculated syndromes, ‘
A’
, ‘
B’ and
‘
C’
collectively represent an error bit value at a particular error location;determining if the calculated syndromes are equal to each other; if the calculated syndromes are determined not to be equal to each other; determining if A, B and C are equal to each other; if A, B and C are determined to be equal to each other, detecting a single error; and if A, B and C are determined not to be equal to each other, detecting two errors. - View Dependent Claims (14)
-
-
15. A method of detecting errors in information stored in non-volatile memory comprising:
-
Receiving a page of information, the page including data and overhead, the data being organized into a plurality of data sections and the overhead being organized into a plurality of overhead sections; generating a syndrome for each of the data sections; calculating A, B, C using the generated syndromes, ‘
A’
, ‘
B’
, and ‘
C’
collectively represent an error bit value at a particular error location;if the generated syndromes are determined not to be equal to each other, determining if A, B and C are equal to each other; if A, B, and C are determined to be equal to each other, detecting a single error; and if A, B, and C are determined not be equal to each other, detecting two errors.
-
Specification