Error Control to Increase the Yield of Semiconductor RAM's

A hard defect in a semiconductor random access memory (RAM) is a cell which is "stuck-at" a certain value or is otherwise consistently unreliable. The most commonly used technique to correct hard defects during manufacturing is row/column replacement, wherein redundant rows and columns are added on to each memory array and are used to replace rows and columns which contain defective cells. This method has been applied to memory chips of modest sizes (in the 64 K - 4 M bit range). However, the strategy of replacing an entire row or column because of a single defective cell seems likely to be inefficient as the size of the memory array grows. Our research effort was motivated by a recent paper [l] in which this technique is shown to be asymptotically ineffective: as the size of the memory array grows, regardless of the rate (the amount of redundancy) the probability of obtaining an error-free array approaches zero. We consider implementing an error correcting code (ECC) on the memory array in order to control hard defects. A simple single-errorcorrecting code is used over the rows, each row containing an integral number of codewords. Since each codeword can tolerate up to one defect, this technique allows the array to suffer some defective cells and still exhibit no loss of fidelity. We analyze the yield (the probability that a chip is defect-free) due to this method, using a shortenend Hamming code to illustrate our results. The presence of multiple defective cells in some codewords would cause these codewords to become undecodable, causing the chip to be rejected. In order to further improve the yield, we also consider using redundant rows and columns in conjunction with an ECC to correct undecodable codewords in the memory array. It is to be noted that we are interested in improving the yield of memory chips which suffer from single cell defects. In the case of an entire row or column failing (due to the failure of a row driver or a column decoder) we cannot, of course, do any better than to replace the entire row or column. Algorithms to switch rows and columns are examined, and three separate cases are considered: (1) redundant rows, (2) redundant columns, and (3) redundant rows and columns. Case (1) is easily analyzed. Cases (2) and (3) are much more difficult: it is shown that the problem of finding an optimal algorithm to switch columns (case (2)) is inherently intractable, and we prove that this problem is NP - complete. As a corollary, the problem of simultaneously switching rows and columns is also shown to be NP - complete. Heuristics for cases (2) and (3) are presented, and bounds on the yield due to these techniques are derived. References