1. Field of the Invention
The present invention relates to electronic memory devices and methods for error correcting thereof, and more particularly to non-volatile electronic memory devices and methods for error correcting of such non-volatile electronic memory devices.
2. Description of Related Art
Electronic memory devices can be roughly classified into volatile and nonvolatile ones. Volatile memory devices allow high speed read and write operations, but lose data when disconnected from an external power source. On the other hand, nonvolatile memory devices retain stored information even when disconnected from an external power source.
NAND-type flash memories are one of common forms of the nonvolatile memory devices. Because of their high speed of read and write, power save and high reliabilities, the NAND-type flash memories are widely used in consumer electronics products as data storages. NAND-type MLC (Multi-Level Cell) flash memories are improvements of the NAND-type flash memories with larger storage capabilities and lower cost.
In burning process, two record bits of a same memory unit structure two memory pages of a same memory area. The two memory pages include a low word which is called LSB (Least Significant Bit) page and a high word which is called MSB (Most Significant Bit) page, respectively. Although the LSB page and the MSB page are different memory pages, they essentially belong to the same memory unit and they are so-called “Paired Pages”.
Usually, in a read/write data process of the flash memory, an ECC (Error Correction Code) is used for ensuring correctness in the process. Especially in the high density flash memory chip, much stronger error checking and correcting capabilities are needed. It is an industry problem that no flash memory provider can guarantee the all the memory cells of the flash memory are in good conditions. Besides, the memory cells may be broken or age after long time usage, or may occur errors in read/write data process. Under these conditions, most of the controller providers are requested with suitable ECC processes which are applied in the flash memory in order to ensure correctly read/write thereof. Once the errors are found, they will be recovered by the ECC processes. However, if the number of the errors are large and exceed beyond the processing capabilities of the ECC processes, such errors can't be recovered by the ECC processes, which may result in damage of the flash memory. The conventional method to overcome this shortage is to enhance processing capabilities of the ECC processes. However, such solution may occupy many redundant bits which are difficultly provided by the flash memory.
Hence, an improved electronic memory device and its error correcting method are needed to solve the problems above.
The present invention discloses an electronic memory device including a controller and a memory unit made up of flash memory cells. The controller includes a micro processor for processing control commands and for managing data transmission, a host interface for being connected to the host device, a memory unit interface connected to the memory unit, a data cache area for provisionally storing data received from the host interface or the memory unit interface, an ECC (Error Correction Code) unit coupled to the memory unit in order to test whether there is any error bit in the data or not, and an error correcting unit coupled to the memory unit. If an error bit in the data is found and can be dealt with under the processing capability of the ECC unit, the error bit is directly recovered by the ECC unit. However, if the error bit exceeds beyond the processing capability of the ECC unit, the error correcting unit is selected to primarily invert predetermined data bit in a inversion process till the number of the error can be successfully recovered by the ECC unit.
A method for correcting an electronic memory device includes steps of: a) providing the above-mentioned electronic memory device; b) testing whether there is any error bit in the data or not; and c1) if an error bit in the data being found and can be dealt with under the processing capability of the ECC unit, the error bit being directly recovered by the ECC unit; or c2) if the error bit exceeding beyond the processing capability of the ECC unit, the error correcting unit being selected to primarily invert predetermined data bit in a inversion process; after each inversion process, a test being made whether the number of the error can be processed by the ECC, further inverting predetermined data bit till the number of the error can be directly recovered by the ECC unit.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention.
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
In the following description, numerous specific details are set forth to provide a thorough understanding of the present invention. However, it will be obvious to those skilled in the art that the present invention may be practiced without such specific details. In other instances, well-known circuits have been shown in block diagram form in order not to obscure the present invention in unnecessary detail. For the most part, details concerning timing considerations and the like have been omitted inasmuch as such details are not necessary to obtain a complete understanding of the present invention and are within the skills of persons of ordinary skill in the relevant art.
Referring to
The controller 10 includes a micro processor 101, an ECC unit 102, a data cache area 103, a host interface 104, a memory unit interface 105 and an error correcting unit 106. The micro processor 101 is adapted for processing control commands between the units within the controller 10, and is also adapted for managing data transmission. The host interface 104 is adapted for being connected to peripheral devices for transmitting commands and data. The memory unit interface 105 is connected to the memory unit 11 for data transmission therebetween. The data cache area 103 is adapted for provisionally storing data received from the host interface 104 and the memory unit interface 105. The ECC unit 102 is coupled to the memory unit 11 for an error checking function. If an error bit in data is found, the ECC unit 102 is primarily selected to recover this error bit. If the error bit exceeds beyond the processing capability of the ECC unit 102 so as can't be recovered by the ECC unit 102, the error correcting unit 106 is then selected to deal with such error via inverting predetermined data bit.
When data is written into the electronic memory device 1, the host interface 104 of the controller 10 is used to receive peripheral data which is provisionally stored in the data cache area 103. The data stored in the data cache area 103 is added with error correcting code by the ECC unit 102 and is then transferred to the memory unit 11 via the memory unit interface 105.
When the data is readout from the memory unit 11, the memory unit interface 105 of the memory unit 11 is selected. The readout data is provisionally stored in the data cache area 103. The ECC unit 102 tests whether there is any error in the readout data or not. If an error is found and the error can be recovered by the ECC unit 102, the data is recovered by the ECC unit 102 accordingly and then is outputted via the host interface 104. However, if the error exceeds beyond processing capability of the ECC unit 102 so as not to be recovered by the ECC unit 102, the error correcting unit 106 is then selected to inverting predetermined data bit to decrease the error bit in the data. After such process, the error in the data returns to a level which can be successfully processed by the ECC unit 102. As a result, the error can be recovered.
In order to short the recovery time, a second method for error checking and correcting is disclosed in
Referring to
Referring to
In order to further shorten the recovery time, a third method for error checking and correcting is disclosed in
As shown in
Referring to
Comparing with the prior art, the electronic memory device 1 of the present invention uses processes of inverting predetermined data bit to finally recover the errors in the data. The complexity of the ECC unit 102 can be simplified.
It is to be understood, however, that even though numerous characteristics and advantages of the present invention have been set forth in the foregoing description, together with details of the structure and function of the invention, the disclosure is illustrative only, and changes may be made in detail, especially in matters of shape, size, and arrangement of parts within the principles of the invention to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed.
Number | Date | Country | Kind |
---|---|---|---|
200910032406.7 | Jun 2009 | CN | national |