Serial flash integrated circuit having error detection and correction
First Claim
1. An integrated circuit operable in an ECC memory write mode and an ECC memory read mode, comprising:
- a data path disposed in the integrated circuit;
a flash memory array disposed in the integrated circuit and coupled to the data path;
an ECC circuit disposed in the integrated circuit and coupled to the data path for;
creating from first data a single large write codeword using a bit-correcting ECC code during the ECC write mode; and
generating a read syndrome from a read codeword using the bit-correcting ECC code during the FCC read mode; and
a data interface coupled to the data path for furnishing the first data thereto during the ECC write mode.
3 Assignments
0 Petitions
Accused Products
Abstract
A serial flash integrated circuit is provided with an integrated error correction coding (“ECC”) system that is used with an integrated volatile page memory for fast automatic data correction. The ECC code has the capability of correcting any one or two bit errors that might occur on a page of the flash memory array. One bit corrections are done automatically in hardware during reads or transfer to the page memory, while two-bit corrections are handled in external software, firmware or hardware. The ECC system uses a syndrome generator for generating both write and read syndromes, and an error trapper to identify the location of single bit errors using very little additional chip space. The flash memory array may be refreshed from the page memory to correct any detected errors. Data status is made available to the application prior to the data. The use of the ECC is optional.
322 Citations
81 Claims
-
1. An integrated circuit operable in an ECC memory write mode and an ECC memory read mode, comprising:
-
a data path disposed in the integrated circuit;
a flash memory array disposed in the integrated circuit and coupled to the data path;
an ECC circuit disposed in the integrated circuit and coupled to the data path for;
creating from first data a single large write codeword using a bit-correcting ECC code during the ECC write mode; and
generating a read syndrome from a read codeword using the bit-correcting ECC code during the FCC read mode; and
a data interface coupled to the data path for furnishing the first data thereto during the ECC write mode. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An integrated circuit operable in an ECC memory write mode and an ECC memory read mode, comprising:
-
a data path disposed in the integrated circuit;
a flash memory array disposed in the integrated circuit and coupled to the data path;
an ECC circuit disposed in the integrated circuit and coupled to the data path for;
creating from first data a single large write codeword during the ECC write mode; and
generating a read syndrome from a read codeword during the ECC read mode; and
a bit-serial data interface coupled to the data path for furnishing the first data thereto during the ECC write mode. - View Dependent Claims (17, 18, 19)
-
-
20. A method of correcting erroneous data in an integrated circuit having a flash memory array, comprising:
-
receiving binary data;
creating a single large codeword from the data with a bit-correcting ECC code;
programming the codeword into the flash memory array;
reading the codeword from the flash memory array;
generating a read syndrome from the codeword read in the reading step;
evaluating the read syndrome to determine a condition of the codeword read in the reading step; and
when the codeword condition is an error condition, attempting to correct the error condition internally in the integrated circuit as determined by the read syndrome. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method of storing user data in and retrieving user data from a nonvolatile page-mode memory array disposed in an integrated circuit and having a plurality of pages of a common size, comprising:
-
determining within the integrated circuit a single ECC codeword from successive bits of data using a bit-correcting ECC code, the ECC codeword being of a size equal or substantially equal to the page size and comprising the data and a write syndrome;
storing the ECC codeword in a page of the nonvolatile memory array by page mode programming;
reading the ECC codeword from the page of the flash memory array;
calculating within the integrated circuit a read syndrome from the ECC codeword read in the reading step; and
performing within the integrated circuit an error trapping operation using the read syndrome. - View Dependent Claims (30, 31, 32)
-
-
33. A method of storing user data in and retrieving user data from a flash memory array that is part of a serial flash integrated circuit, comprising:
-
calculating a write syndrome in the serial flash integrated circuit from successive bits of the user data with a bit-correcting ECC code;
storing the user data and the ECC write syndrome in a page of the flash memory array as an ECC codeword;
reading the ECC codeword from the page of the flash memory array to a volatile memory having essentially a page of storage capacity, the volatile memory being part of the serial flash integrated circuit;
calculating a read syndrome from the ECC codeword read in the reading step;
detecting a one bit error and location information therefor from the read syndrome; and
correcting the one bit error in the volatile memory by use of the location information. - View Dependent Claims (34)
-
-
35. A method of correcting erroneous data in an integrated circuit having a flash memory array, comprising:
-
receiving binary data in bit-serial form;
creating a single large codeword from the data;
programming the codeword into the flash memory array;
reading the codeword from the flash memory array;
generating a read syndrome from the codeword read in the reading step;
evaluating the read syndrome to determine a condition of the codeword; and
when the codeword condition is an error condition, attempting to correct the error condition internally in the integrated circuit as determined by the read syndrome. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43)
-
-
44. An integrated circuit operable in an ECC memory write mode and an ECC memory read mode, comprising:
-
a data path disposed in the integrated circuit;
a data interface coupled to the data path for furnishing data thereto during the ECC write mode;
a flash memory array disposed in the integrated circuit and coupled to the data path; and
a bit-correcting sequential ECC correction engine disposed in the integrated circuit and coupled to the data path for;
sequentially receiving the data in bit-serial fashion and furnishing a write codeword derived from the data during the ECC write mode; and
sequentially receiving a read codeword, furnishing an error status indication based at least in part on an evaluation of a read syndrome derived from the read codeword during the ECC read mode, and correcting an error condition in the read codeword. - View Dependent Claims (45, 46, 47, 48, 49, 50)
-
-
51. An integrated circuit comprising:
-
a data path disposed in the integrated circuit;
a bit-serial interface disposed in the integrated circuit and coupled to the data path;
a flash memory array disposed in the integrated circuit and coupled to the data path; and
a sequential correction engine having a bit-serial coupling to the data path, the correction engine using a bit-correcting ECC code to create a codeword and to generate a read syndrome from a codeword. - View Dependent Claims (52, 53)
-
-
54. A method of correcting erroneous data in an integrated circuit having a flash memory array, comprising:
-
receiving binary data in the integrated circuit;
sequentially processing bits of the data with a bit-correcting ECC code in the integrated circuit to create a codeword;
programming the codeword into the flash memory array;
reading the codeword from the flash memory array;
sequentially processing the codeword read in the reading step with the bit-correcting ECC code in the integrated circuit to generate a read syndrome;
evaluating the read syndrome to determine a condition of the codeword; and
when the codeword condition is an error condition, sequentially processing the codeword read in the reading step as determined by the read syndrome in an attempt to correct the error condition internally in the integrated circuit. - View Dependent Claims (55, 56, 57)
-
-
58. A method of refreshing a flash memory array that is part of an integrated circuit, comprising:
-
reading an ECC codeword from a page of the flash memory array to a volatile memory having essentially a page of storage capacity, the volatile memory being part of the integrated circuit;
calculating a read syndrome from the ECC codeword, in the integrated circuit;
detecting an error condition in the ECC codeword and location information therefor from, at least in part, the read syndrome, in the integrated circuit;
correcting the error condition in the ECC codeword residing in the volatile memory by use of the location information, in the integrated circuit, to obtain a corrected ECC codeword having one or more corrected bit or bits; and
writing at least the corrected bit or bits of the corrected ECC codeword from the volatile memory to a page of the flash memory array. - View Dependent Claims (59, 60, 61, 62, 63, 64)
-
-
65. A method of refreshing a flash memory array that is part of an integrated circuit, comprising:
-
reading an ECC codeword from a page of the flash memory array;
calculating a read syndrome from the ECC codeword, in the integrated circuit;
detecting an error condition in the ECC codeword and location information therefor from, at least in part, the read syndrome, in the integrated circuit;
correcting the error condition in the ECC codeword, in the integrated circuit, to obtain an ECC codeword having one or more corrected bit or bits; and
writing at least the corrected bit or bits of the ECC codeword to a page of the flash memory array. - View Dependent Claims (66, 67, 68, 69)
-
-
70. A method of obtaining data from the flash memory array of an integrated circuit, comprising:
-
reading a plurality of ECC codewords from respective pages of the flash memory array in the integrated circuit, each of the ECC codewords comprising a data section and an ECC write syndrome section;
generating, in the integrated circuit, respective read syndromes from the ECC codewords, wherein some of the read syndromes indicate no erroneous data and others of the read syndromes indicate erroneous data;
attempting correction of the ECC codewords having respective read syndromes indicating erroneous data, in the integrated circuit;
for the ECC codewords successfully corrected in the correction attempting step, furnishing the data sections thereof as outputs from the integrated circuit;
for the ECC codewords unsuccessfully corrected in the correction attempting step, furnishing information suitable for off-chip recovery of data therefrom as outputs from the integrated circuit; and
for the ECC codewords having respective read syndromes indicating no erroneous data, furnishing the data sections thereof as outputs from the integrated circuit. - View Dependent Claims (71, 72, 73, 74, 75)
-
-
76. A method of writing to the flash memory array of an integrated circuit, comprising:
-
serially receiving first data and a first command to write the first data without error correction;
programming a page of the flash memory array with the first data;
serially receiving second data and a second command to write the second data with error correction;
generating an ECC codeword from the second data; and
programming a page of the flash memory array with the ECC codeword. - View Dependent Claims (77)
-
-
78. A method of reading the flash memory array of an integrated circuit, comprising:
-
serially receiving a first command to read a first page of the flash memory array without error correction;
furnishing the first page of the flash memory array as serial output from the integrated circuit;
serially receiving a second command to read a second page of the flash memory array with error correction;
generating in the integrated circuit a read syndrome from an ECC codeword stored in the second page of the flash memory, the ECC codeword having a data section and a write syndrome section;
evaluating the read syndrome in the integrated circuit to detect an error condition in the ECC codeword;
correcting the error condition in the ECC codeword as determined by the read syndrome in the integrated circuit to obtain a corrected ECC codeword; and
furnishing the data section of the corrected first ECC codeword as output from the integrated circuit.
-
-
79. A method of correcting erroneous data in an integrated circuit having a flash memory array, comprising:
-
reading a codeword from the flash memory array, the codeword comprising data and a write syndrome;
generating a read syndrome in the integrated circuit from the codeword read in the reading step;
evaluating the read syndrome to determine whether an error condition exists in the codeword;
furnishing the data from the codeword as output from the integrated circuit based on the evaluating step, the data being uncorrected when the evaluating step indicates no error condition, the data being corrected based on the read syndrome when the evaluating step indicates an error condition and the error condition is correctable, and the data being uncorrected when the evaluating step indicates an error condition and the error condition is uncorrectable; and
prior to the data furnishing step, furnishing a data status as output from the integrated circuit, the data status being “
error free”
when the evaluating step indicates no error condition, the data status being “
corrected error”
when the evaluating step indicates an error condition and the error condition is correctable, and the data status being “
uncorrectable error”
when the evaluating step indicates an error condition and the error condition is uncorrectable.
-
-
80. A serial flash memory integrated circuit comprising:
-
a data path;
a flash memory array coupled to the data path;
a page memory coupled to the data path;
a bit-serial input/output interface coupled to the data path;
a sequential syndrome generator based on a bit-correcting ECC code having a bit-serial coupling to the data path and an output; and
an error trapper having an input coupled to the output of the syndrome generator.
-
-
81. A serial flash memory integrated circuit comprising:
-
a flash memory array;
a page memory coupled to the flash memory array;
a shift register coupled to the flash memory array and to the page memory;
a bit inverter coupled to the shift register;
a bit-serial input/output interface coupled to the shift register;
a sequential syndrome generator based on a bit-correcting ECC code and having a bit-serial coupling to the shift register and an output;
an error trapper having an input coupled to the output of the syndrome generator;
a zero detector coupled to the output of the syndrome generator;
a counter;
a sequencer coupled to the error trapper, the zero detector, and the counter, and having an error status output coupled to the input/output interface; and
address logic having an input coupled to the counter and an output coupled to the bit inverter.
-
Specification