The present invention relates to memory devices and, more particularly, to a NAND flash memory device with an area efficient redundancy architecture.
In NAND type memory devices, device specific self-configuration data and redundancy data of identified failed elements of the array of memory cells and substitute elements addresses in the redundant resource area of the array are commonly stored in a non-volatile manner using dedicated fuse arrays. Fuse arrays are permanently set during the testing on wafer (EWS) phase of the devices in the fabrication process.
The number of redundancy resources to be utilized in fabricated devices obviously increases with increasing storage capacity of the memory devices. Unfortunately, the size of the fuses does not decrease as quickly as the size and compactness degree of cell arrays. This fact negatively reflects on the relative area ratio.
Possible alternatives to the implementation of an excessively large number of fuses to be set during EWS phase could be non-volatily storing the basic redundancy data in either dedicated non-volatile supports, such as UPROM structures, or in a one time programmable (OTP) array of cells belonging to a dedicated sector of the cell array.
The UPROM option implies the use of a dedicated memory array purposely integrated in the device having read circuitry that is practically distinct from the read circuitry of the NAND flash memory array. The dedicated UPROM memory array is specially designed to have a sufficiently enhanced reliability in order to generate a very high flawless probability. However, such an approach, beside an intrinsically large area requirement, is hardly applicable in the context of current NAND type flash memory device fabrication processes.
The other option contemplates the use of a portion or block or dedicated area of the flash memory cell array as a “one time programmable” memory block. Though apparently promising for non-volatily storing redundancy as well as self-configuration data, it has not found application because, in the case of NAND flash memory devices, its implementation is hindered by problems descending from the two following conditions:
a) in NAND type flash memory devices, differently from other types of flash memories, a gerarchic organization of the cell array is not implemented because it would be too burdensome in terms of silicon area requirement and, as a consequence, the cell array bitlines are common to all blocks of cells; and
b) all blocks of a certain number of word lines of array cells are commonly formed in N-type and in P-type wells formed in a P-type silicon substrate, and therefore the blocks of cells may hardly be electrically isolated from one another.
Differently from common user OTP(s) that are eventually accessed only after the substitution of failed elements with redundant resources has already been implemented following the conclusion of the power-on phase, the first condition (a) implies that any failed bitline to be eventually substituted by the redundancy architecture would still be read at power-on of the memory device. This basically corrupts any redundancy data that could be stored in a reserved area of the memory array.
The second condition (b) implies any such one time programmable reserved area would of course be subject to all the electrical stresses from all erasing operations carried out in any of the blocks of cells of the area of the array addressable by the external user of the device for the entire operating life of the device itself. Therefore, the correct reading of redundancy data from a reserved area at power-on may, in time, become even more critical.
In view of the foregoing background, an object of the invention is to reduce silicon area requirement of a non-volatile memory device while achieving enhanced fabrication yields without significantly compromising the operating life characteristics of the device.
The basic redundancy information may be non-volatily stored in a reserved area (i.e., an area of the array that is not addressable by the user of the device) of the addressable area of the array, and may be copied on volatile storage supports at every power-on of the memory device.
The unpredictable though statistically inevitable presence of failed array elements also in such a reserved area of the memory array would likely corrupt the basic redundancy information as established during the test-on wafer (EWS) phase of the fabrication process. This may increase the number of rejects, and lower the yield of the fabrication process. This may be effectively overcome by writing the basic redundancy data in the reserved area of the array with an ECC technique. A certain error correction code may be used, and may be chosen among majority codes 3, 5, 7, 15 and the like or a Hamming code for 1, 2, 3 or more errors. This may be a function of the fail probability of a memory cell as determined by the testing on wafer of the devices during fabrication (i.e., fail probability of the specific fabrication process used).
Through an appropriate screening of the EWS test results, the corrective power of the selected ECC technique may be appropriate to handle the fail density in the reserved area. This, eventually coupled in the case of a multilevel flash memory, with the utilization of the two extreme distributions of the multilevel memory for writing the ECC protected data in the reserved area and with a single level mode reading of the data, at power-on with relatively relaxed read parameters (e.g., time intervals, voltages), may advantageously prevent or reduce negative influences on the process yield corresponding to the storing of the basic redundancy data in the non-volatile memory device array itself.
The permanently stored basic redundancy data may be read and decoded by an appropriate logic circuit at every power-on of the memory device, and relevant redundancy information may be copied in one or more, and preferably in two distinct volatile memory supports. The memory supports may become part of the redirecting circuit for user access to failed memory array locations to substitute memory array elements in the redundancy area of the cell array during normal operation of the device, following the conclusion of the power-on phase.
Besides basic redundancy data, even certain self-configuring data and program codes to be executed by the microcontroller for carrying out the memory operations as commanded by the external user may be advantageously stored in the reserved area of the memory array. This data may be written and read with the same ECC technique with relaxed reading conditions similar to the basic redundancy data.
As graphically represented in
In
The writing of the basic redundancy data in the reserved area is made with an ECC data writing technique according to a certain error correction code. Moreover, the writing of the basic redundancy data in the reserved area of the addressable memory array is carried out to ensure enhanced read margins. For example, in case of a multilevel memory device, this may be provided by using the extreme threshold voltage distributions for reading the written information in a single level read mode. This is preferably with all electrical parameters pertinent to the reading of the recorded data (read voltage levels and time intervals) relatively relaxed in order to ensure a large margin of discrimination of the recorded information.
The redundancy system of the memory device permits the reading of the basic redundancy data from the reserved area at power-on without the assistance of any information contained in the reserved area itself. Of course, at power-on, in consideration of the fact that the column redundancy information is not yet present in the volatile storage area of the circuit that implements the substitution of failed bitlines, such a re-directing function remains disabled during the early part of the power-on phase.
The following is a selection of ECC codes that may be appropriate for a modern NAND memory device fabrication process:
The choice of the ECC code generally will depend on the number of parity bits required, circuit complexity, correction power of the ECC technique and on the fail probability of a fabricated memory cell. For example, if the requirement is to effectively ECC protect 6144 bits of basic information to be written on the reserved area RA of the memory array, and depending on the choice of the different codes indicated above, then the reserved area will need to have a capacity as specified below.
Majority 3: Each bit is written three times, thus allowing correction of one error every three bits. There will be five effective bits of information for each word. This coding scheme requires a total number of 18432 bits, and implies a very small computational complexity.
Majority 5: Each bit is written five times, thus permitting correction of two errors every 5 bits. Three effective bits of information are present in each word. This coding scheme requires a total of 30720 bits with a very small computational complexity.
Majority 7: Each bit is written seven times, thus permitting correction of three errors every seven bits. There are two effective information bits in each word. The coding scheme requires a total of 43008 bits with a very small computational complexity.
Majority 15: Each bit is written fifteen times, thus permitting correction seven errors every five bits. In each word there will be only one effective information bit. The coding scheme will require a total of 92160 bits with a very small computational complexity.
Hamming 1err: This scheme is based on a Hamming code capable of correcting one error every fifteen bits. Each word contains eleven bits of information. The scheme requires a total of 8385 bits, and implies a moderate computational complexity.
Hamming 2err: This scheme is based on a matrix Hamming code (extended Hamming code) capable of correcting two errors every fifteen bits. Each word contains seven bits of information. The scheme requires a total 13170 bits, and a substantial computational complexity for implementing a decoding matrix that is capable of considering all conditions that may occur in presence of one or two errors.
Hamming 3err: This scheme is based on an extended matrix Hamming code capable of correcting three errors every 15 bits. Each word contains 3 bits of information. This scheme requires a total of 30720 bits with a rather complex computational circuitry burden.
For the example considered,
For the considered example, the most appropriate ECC codes appear to be those with a correction power of two or three errors. The final choice will depend on the preferred compromise between the total number of bits required (that is definitely larger for the majority codes) and the associated computational circuit complexity.
A sample block diagram of a non-volatile page mode NAND memory device is shown in
Immediately after the power-on reset phase, the basic redundancy information non-volatily stored in the reserved area RA of the array (matrix) is read through the read circuitry of the memory device. A controller circuit RAM SETUP CONTROLLER copies the bad block addresses in a volatile buffer that is directly interfaced with the microcontroller of the memory device. Moreover, the RAM SET UP CONTROLLER block sets a CAM (content addressed memory) array COL.RED.CAM.
Optionally, as shown in the sample device architecture of
Upon terminating the power-on phase, the device will be ready to operate. The volatile redundancy data storing blocks, namely the BAD BLOCK LATCH and the COL.RED.CAM block, become part of the circuit that carries out the redundancy substitution of failed array elements at every power-on of the device.
Number | Date | Country | Kind |
---|---|---|---|
06425632.4 | Sep 2006 | EP | regional |