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.
Legal claims defining the scope of protection, as filed with the USPTO.
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, Z 1 and Z 2 , based upon a Galois Field (GF) (2 11 ) calculation.
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, Z 1 and Z 2 , based upon a Galois Field (GF) (2 11 ) calculation.
7. A non-volatile memory system, as recited in claim 6 , further including a bus for coupling the controller to the host system wherein the bus operates in conformance with MMC, SD, CF, MS, PCIE, IDE, or SATA standards.
8. A non-volatile memory system, as recited in claim 7 , wherein the host system includes a controller for coupling to the bus, wherein the controller operates in conformance with MMC, SD, CF, MS, PCIE, IDE, or SATA standards.
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.
14. A method of detecting errors, as recited in claim 13 , further including, if the calculated syndromes are determined to be equal to each other, detecting no errors.
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.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
January 24, 2007
June 14, 2011
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.