1. Field of the Invention
The present invention discloses a testing method for a non-volatile memory, and particularly, a testing method for reducing number of overkills by repeatedly writing data to addresses in the non-volatile memory.
2. Description of the Prior Art
Non-volatile memory such as flash memory, OTPROM (One-time programmable ROM), MTPROM (Multiple-time programmable ROM) and EEPROM (Electrically-Erasable Programmable Read-Only Memory) is widely adopted in many kinds of consumer electronics for storing data without power being supplied. When performing a pre-wafer-dicing circuit probing test (hereinafter referred to as “CP test”) on one of a batch of newly produced non-volatile memories on a wafer, it is necessary to write data to an address in the non-volatile memory so as to make a memory cell corresponding to the address develop correct feature when it stores a logic 0 or 1. The mentioned correct feature means that, for example, an ideal non-volatile memory cell should have a cell current close to 0 uA when it stores a logic 0 and a cell current close to 40 uA when it stores a logic 1.
If every memory cell in a newly produced non-volatile memory is initially stored a logic 1, it is necessary to write a logic 0 to the memory cell in the non-volatile memory while performing a CP test so as to make a cell current of each memory cell be read a correct value corresponding to a low logic level, that is a cell current close to 0 uA. This step is to perfect the function of the memory cell. Without writing a logic 0 during the CP test, a correct cell current corresponding to a logic 0 can not be measured from the memory cell when it stores a logic 0 afterward. Likewise, if all memory cells of a newly produced non-volatile memory store logic 0s, writing logic is in the non-volatile memory during a CP test is also necessary to perfect function of the memory cells.
When reading a non-volatile memory cell, because data stored in the memory cell is determined to be a logic 1 or 0 by measuring a cell current of the memory cell, a current threshold is required. When the number of measured memory cells is large enough, a statistical curve can be drawn from the memory cells, and the number of memory cells can be observed to be close to a normal distribution with respect to the cell current. A memory designer can determine a current threshold according to a statistical analysis and professional considerations. The current threshold is used to determine the value of data stored in a memory cell of a non-volatile memory: if measured cell current is larger than the current threshold, the value of data stored in the memory cell is determined to be a logic 1. If measured cell current is smaller than the current threshold, the value of data stored in the memory cell is determined to be a logic 0.
Please refer to
Please refer to
Step 201: Write a first set of data to a set of addresses in a non-volatile memory;
Step 202: Read a second set of data from the set of addresses after writing the first set of data to the set of addresses;
Step 203: Check if the first set of data and the second set of data are identical; if so, go to Step 204; if not, go to Step 205;
Step 204: Determine the non-volatile memory has passed the test, go to Step 206;
Step 205: Determine the non-volatile memory has failed the test, go to Step 206;
Step 206: Exit.
However, after adopting the prior art CP test, the yield of the non-volatile memories seems quite low. The reason is that cell currents of part of memory cells in a newly produced non-volatile memory can not be measured to be smaller than the current threshold after writing data of logic Os to those memory cells . Hence, a solution is necessary to overcome the low yield issue in the prior art.
An embodiment of the present invention discloses a testing method for testing a non-volatile memory. The testing method comprises writing a first set of data to a set of addresses in the non-volatile memory, reading a second set of data from the set of addresses after writing the first set of data to the set of addresses, and writing the first set of data to the set of addresses again if the first set of data and the second set of data are not identical.
Another embodiment of the present invention discloses a testing method for testing a non-volatile memory. The testing method comprises writing a first set of data to a set of addresses in the non-volatile memory, reading a second set of data from the set of addresses after writing the first set of data to the set of addresses, and writing the first set of data to the set of addresses again if the first set of data and the second set of data are not identical and number of times for writing the first set of data to the set of addresses is smaller than a predetermined number.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
Please refer to
Step 301: Write a first set of data to a set of addresses in a non-volatile memory;
Step 302: Read a second set of data from the set of addresses after writing the first set of data to the set of addresses;
Step 303: Check if the first set of data and the second set of data are identical; if so, enter Step 304; if not, enter Step 305;
Step 304: Determine the non-volatile memory has passed the test, go to Step 308;
Step 305: Check if the number of times of writing the first set of data to the set of addresses is smaller than a predetermined number N; if so, go to Step 307; if not, go to Step 306;
Step 306: Determine the non-volatile memory has failed the test, go to Step 308;
Step 307: write the first set of data to the set of addresses for a predetermined length of time; go to Step 302;
Step 308: Exit.
The first set of data in Step 301 can be a 16-bit data which can be all-0 data, all-1 data, or a combination of 0s and 1s. The set of addresses can be a set of addresses corresponding to 16 memory cells. The CP test disclosed by the present invention is for newly produced non-volatile memories on a wafer without being wafer-diced, and values of corresponding bits of the first set of data should be complementary to original data stored in the set of addresses. For example, if each memory cell in a newly produced non-volatile memory stores a logic 1, the first set of data should contain all-0 so as to make each memory cell develop a correct feature when it stores a logic 0 after a logic 0 is written to the memory cell. The correct feature of a non-volatile memory cell when it stores a logic 0 corresponds to a cell current measured to be smaller than a current threshold. When performing the check step in Step 303, if the second set of data and the first set of data are not identical, it is further checked to see if the number of times of writing the first set of data to the set of addresses is smaller than a predetermined number N in Step 305. If the number of times of writing the first set of data to the set of addresses is smaller than the predetermined number N, the first set of data is written to the set of addresses again for a predetermined length of time in Step 307, and then Step 302 and certain following steps are performed again to check if the read second set of data are identical to the first set of data written in Step 307. By repeatedly writing the first set of data to the set of addresses for at most N times, some non-volatile memory cells in the set of addresses without correct feature after being written just once can be modified to have a correct feature.
For example, if the first set of data is a set of 16-bit all-0 data, cell currents measured from 16 non-volatile memory cells are not all smaller than a current threshold after writing 16-bit all-0 data to a set of addresses corresponding to the 16 non-volatile memory cells, and number of times for writing the first set of data to the set of addresses is smaller than a predetermined number N in Step 305, Step 307 is performed to write 16-bit all-0 data again to the set of addresses so as to change the feature of the 16 non-volatile memory cells, that is, to make each of the 16 non-volatile memory cells with a cell current smaller than the current threshold when it stores a logic 0. The mentioned predetermined number N in Step 305 is decided by non-volatile memory designers according to statistical data from experiments and professional experiences. Take N=3 as an example, N=3 means that if a cell current measured from a non-volatile memory cell is not smaller than a current threshold after the non-volatile memory cell being written with a logic 0 for three times, the non-volatile memory cell is determined to have failed the test. The mentioned predetermined length of time in Step 307 is determined by non-volatile memory designers according to statistical data from experiments and professional experiences. The predetermined length of time in Step 307 can be 160 us. If the predetermined length of time in Step 307 is too long, testing time is increased, and test cost of time and money is increased accordingly because testing vendors usually charge according to testing time. If the predetermined length of time in Step 307 is too short, the feature of non-volatile memory cells might not be modified correctly.
Please refer to
Compared with the prior art CP test, the CP test in
In the CP test of
Step 500: Before testing a plurality of non-volatile memories on a wafer without being diced, each memory cell of the non-volatile memories stores a logic 1;
Step 501: Test the non-volatile memories by following the CP test in
Step 502: Erase data stored in non-volatile memories passing the CP test of Step 501 so as to write a logic 1 into each memory cell of the non-volatile memories passing the CP test of Step 501;
Step 503: Test the non-volatile memories erased in Step 502 by following the CP test in
Step 504: Bake non-volatile memories passing the CP test in Step 503 at 250° C. for 24 hours;
Step 505: Test the non-volatile memories after being baked in Step 504 by following the prior art CP test in
In Step 502, the value of erased data in each of the non-volatile memory cells is a logic 1 because the memory cells of the non-volatile memories have initial values of logic 1s. If the initial values are logic 0s, then the value of erased data in each of the non-volatile memory cells would be a logic 0. In Step 503, the first set of data has a combination of logic is and logic 0s so as to perform a “checker-board” memory test. The “checker-board” memory test can evaluate if unwanted crosstalk and memory fault would occur when memory cells of a non-volatile memory containing logic is and logic 0s are arranged alternatively in a memory array. Further the checker-board memory test can check if memory cells have correct feature when storing logic 1s. Step 504 is used to verify reliability of aging non-volatile memories. Please refer to
When adopting the CP test of prior art shown in
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.