Not applicable.
Not applicable.
Not applicable.
The present invention relates to a semiconductor memory and method of correcting errors for the same, and more particularly, to a semiconductor memory and method of correcting errors for the semiconductor memory, which employs the redundancy memory technique and the error correction code technique.
Generally speaking, the memory array of the dynamic random access memory includes a main memory array and a redundancy memory array. When a faulty memory unit is verified in the main memory array at a wafer level testing or at an encapsulated die level testing before the memory is shipped out of a factory, the redundancy memory array is used to replace the faulty memory unit in the main memory array so that the yield can be increased.
In addition, the error correction code (ECC) technique is also employed in the dynamic random access memory to dynamically test and repair data stored in the memory. The error correction code technique can also correct a data error generated by an a particle except where the data error is caused by a faulty memory unit. However, the error correction code technique can only correct data errors of limited bits, i.e., the error correction code technique is not workable if a data error exceeds the limited bits. Consequently, the continuous accumulation of data errors in the memory will result in wrong data that is not repairable.
The conventional redundancy memory technique and the error correction code technique work independently in the dynamic random access memory. A technician uses the redundancy memory to replace the faulty memory unit in the main memory array during the electrical test before the memory is shipped out of the factory, while an end user can only uses the built-in error correction code circuit to correct the data error in the memory after the memory is shipped from the factory.
The objective of the present invention is to provide a semiconductor memory and method of correcting errors for the semiconductor memory, which employs the redundancy memory technique and the error correction code technique.
In order to achieve the above-mentioned objective and avoid the problems of the prior art, the present invention provides a semiconductor memory and a method of correcting errors in the semiconductor memory. The semiconductor memory comprises a memory circuit, a switching circuit electrically connected to the memory circuit, a controller electrically connected to the switching circuit, an encoder electrically connected to the switching circuit, and a decoder electrically connected to the switching circuit. The memory circuit includes a first memory array, a second memory array and a reconfiguring unit electrically connected to the first memory array and the second memory array. The encoder is configured to generate at least one checking bit from a plurality of data bits and to attach the checking bit to the data bits before writing into the first memory array via the switching circuit. The decoder is configured to check the correctness of the data bits based on the checking bit, to correct the error in the data bit according to the checking bit before outputting, and to transmit the corrected data bits and the checking bit to the controller. The controller includes an error correction code unit, which can write the corrected data bits and the checking bit into the second memory array via the switching circuit.
The method for correcting errors in the semiconductor memory comprises steps of reading a plurality of data bits and at least one checking bit from a predetermined unit in the first memory array, checking if there is an error in the data bits based on the checking bit, correcting the error in the data bits according to the checking bit, and writing the data bits and the checking bit back to the predetermined unit. Subsequently, after the above-mentioned steps are repeated a predetermined number of times, the predetermined unit is marked as unusable and the data bits together with the checking bit are written to a second memory array if there is still at least one error in the data bits.
The objectives and advantages of the present invention will become apparent upon reading the following description and upon reference to the accompanying drawings in which:
When the controller 30 enters the WFW state 52, the ECC unit 32 sends the hold signal (Hold) via the OR gate 44 to hold the normal access operation and writes the corrected data bits and the checking bit back to the predetermined unit of the first memory array 22 via the switching circuit 28. Then, the data bits and the checking bit are read out from the predetermined unit of the first memory array 22 via the switching circuit 28 at a read faulty word (RFW) state 54. Finally, the ECC decoder 38 checks if the data bits are correct at a compare (Comp) state 56. If there is still an error in the data bits, a counter is increased by one and the operation states 52-56 are repeated. If there is still an error in the read data bits after t iterations of the three operation states 52-56, the ECC unit 32 of the controller 30 identifies the fault type of the predetermined unit as a hard error, which cannot be repaired by the error correction code technique. Particularly, the iteration of the three operation states 52-56 is used to identify the fault type of the predetermined unit.
If the read data bits from the predetermined unit of the first memory array 22 are identified to be correct at the Comp state 56, the ECC unit 32 of the controller 30 directly transits back to the FFR state 50 and resets the hold signal to restart the normal access operation of the memory circuit 20. Inversely, if the ECC unit 32 of the controller 30 identifies the fault type of the predetermined unit as a hard error, it transits into a read memory (RMe) state 58 to read out the data bits and the checking bit out from the predetermined unit of the first memory array 22. Subsequently, the ECC decoder 38 corrects the data bits, which are then together with the checking bit written into an unused unit in the second memory array 24 at a write redundancy (WRe) state 60. Finally, the address of the predetermined unit in the first memory array 22 is recorded in the reconfiguring circuit 26 at a set redundancy address (SRA) state 64, and the hold signal is reset to restart the normal access operation of the memory circuit 20, i.e., the controller 30 transits back to the FFR state 50.
If the hard error is occurred in the second memory array, i.e., the redundancy memory, the data bits and the checking bit are written into another unused unit in the second memory array 24 at the WRe state 60. Then, a faulty flag (FF) is set to mark the faulty memory unit in the second memory array 24 at a set redundancy faulty (SRF) state 62. Subsequently, the address of the faulty memory unit in the second memory array 24 is recorded in the reconfiguring circuit 26 at the SRA state 64, and the hold signal is reset to restart the normal access operation of the memory circuit 20, i.e., the controller 30 transits into the FFR state 50. If there is not an unused redundancy memory unit in the second memory array 24, the controller 30 will operate at a fault-free without redundancy (FFWR) state 66. In short, if the data is stored in a first portion of a redundancy memory, the data is written into a second portion of the redundancy memory and the first portion is marked as unusable.
The row comparator 82 compares the input address with the faulty address stored in the row address register 72 (the same to the column comparator 84), a data selection signal is generated to switch the multiplexer 42 in
When the ECC unit 32 of the controller 30 identifies the fault type of a memory unit as a hard error, a write redundancy (WR) signal is generated. When WR signal is set, the remapping unit 76 remaps the address of the faulty memory unit to an unused redundancy address, which points to an unused redundancy unit in the second memory array 24. The row selector 86 (the same to the column selector 88) selects a row address register 72 with an invalid tag field to store the faulty address of the faulty memory unit and sets the tag field of the selected row address register to be valid.
The above-described embodiments of the present invention are intended to be illustrative only. Numerous alternative embodiments may be devised by those skilled in the art without departing from the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
094114361 | May 2005 | TW | national |