Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MEMORY TEST SYSTEM WITH DEFECT COMPRESSION
Document Type and Number:
WIPO Patent Application WO/1998/020497
Kind Code:
A1
Abstract:
A system for reducing or obviating the requirement for a large amount of defect capture memory in memory test and analysis systems by compressing test results. The compression system reduces or replaces the fault capture memory in the test system or workstation or both, a major cost in test systems, while providing for subsequent regeneration of the test results, either without loss, or with the loss of certain features immaterial to the application.

Inventors:
DEAS ALEXANDER ROGER (GB)
Application Number:
PCT/GB1997/003007
Publication Date:
May 14, 1998
Filing Date:
November 07, 1997
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PROCESS INSIGHT LIMITED (GB)
DEAS ALEXANDER ROGER (GB)
International Classes:
G01R31/3193; G11C29/40; G01R31/28; G11C29/44; (IPC1-7): G11C29/00; G01R31/319
Foreign References:
US5317573A1994-05-31
US5173906A1992-12-22
Attorney, Agent or Firm:
Mccallum, William Potter (19 Royal Exchange Square, Glasgow G1 3AE, GB)
PROCESS INSIGHT LIMITED (Edinburgh EH2 2NB, GB)
Download PDF:
Claims:
CLAIMS
1. A system for storing information about locations of defective memory cells in a memory, the system comprising: a) address receiving means for receiving addresses corresponding to the locations of said defective memory cells, b) a compressor coupled to the address receiving means whereby after receipt of the addresses the compressor creates a representation of the received data, the representation being a compressed form of the original data allowing the lossless reconstruction of the original data or a restoration of the original data with losses in the form of additional defects which may be created during the restoration process.
2. A system as claimed in claim 1 including a decompressor coupled to the compressor for receiving said compressed data and for providing reconstruction of the original data.
3. A system as claimed in claim 2 wherein the decompressor selectively retrieves said process data and provides selective decompression to browsers, processing programs or databases.
4. A system as claimed in any one of claims 1 to 3 wherein the address receiving means is implemented in hardware or software.
5. A system as claimed in any preceding claim wherein the compressor is implemented in hardware or software.
6. A system as claimed in any preceding claim where the decompressor is implemented in hardware or software.
7. A system as claimed in any preceding claim wherein the system stores information from said memory when said memory is under test.
8. A system as claimed in any of claims 1 to 6 where the system stores information from said memory after test has occurred.
9. A system as claimed in any preceding claim wherein the compressor is coupled to the address receiving means by hardware or software.
10. A system as claimed in any of claims 2 to 9 where the decompressor is coupled to the compressor by hardware or software.
11. A system as claimed in any of claims 1 to 10 wherein the said compressor is configured to provide the output representation of the original data as a sparse bit matrix.
12. A system as claimed in any of claims 1 to 10 wherein the said compressor is configured to provide the output representation of the original data as a corner stitched data structure.
13. A solid state memory test system with the fault capture memory or defect registers replaced in whole or in part by a hardware defect compression means.
14. A system as claimed in claim 13 with the hardware compression means including or combined with a means for accomplishing a redundancy allocation either partially or in entirety.
15. A system as claimed in claim 13 or in claim 14 with the compression means allocated as a set of hardware resources for each tile in the memory under test.
16. A system as claimed in claim 13, 14 or 15 wherein the said hardware compression means is supported by a software tool for regenerating the original defect map or a derivative of said defect map.
17. A method of processing memory cell test data comprising the steps of, a) receiving addresses corresponding to the locations of defective memory cells, b) creating a representation of the received data by compressing the original data into a compressed representation, c) storing the compressed representation or a derivative thereof in a format which allows the lossless reconstruction of the original data or a restoration of the original data with losses of information context expressed in the form of additional apparent defects.
18. A computer program for implementing or emulating or simulating the hardware functions of a system as claimed in claim 1 when stored in electrically readable media.
19. A memory test system when using the system, method or computer program as claimed in at least claims 1, 17 or 18.
20. A method of testing a memory for obtaining information about the location of defective memory cells when using the system, method or computer program as claimed in claims 1, 17 or 18.
Description:
MEMORY TEST SYSTEM WITH DEFECT COMPRESSION The present invention relates to a system for, and a method of, storing information about the locations of defective memory cells. In particular, the invention relates to a system for, and a method of, storing the locations of defective memory cells received from a memory test system so that the size of the memory required for storing the locations is reduced.

In the memory manufacturing industry, memory cells on a memory device (such as a semiconductor memory) are tested after fabrication of the device.

Conventionally, memory devices have a main memory comprising a large number of memory cells, and also a small number of redundant memory cell structures which can be substituted for any defective memory cells in the main memory. During the test process, the location of defective cells in the main memory is identified in order that through a process of redundancy allocation, these redundant memory cell structures can be configured to replace the defective cells in the main memory.

Other applications of memory test include the examination of electrical or functional parameters of the memory for engineering or quality control purposes, or verification of the operation of the memory.

Test systems used for testing memory devices must be able to test each new generation of memory devices at the maximum speed of the new device. The test systems must also be able to record a large number of locations.

These factors combine to create a requirement for a large and expensive memory (called the fault capture memory or error catch RAM) in test systems because the fault capture memory must be the same size and operate at the same speed as the memory device under test. Some systems have used FIFOs to reduce the amount of RAM, but this still requires a large memory in the control system to which the tester is connected to process or view the

defect data.

When the latest generation of memory devices is manufactured, there must be a test system available which is capable of testing these new memory devices; however, these test systems must be fabricated using the previous generation of memory devices. To enable the test systems to operate effectively, the requirement for storing the locations of defective cells is met by emulating the fault generating capacity of the new memory devices to be tested using arrays of smaller (previous generation) memory devices having the fastest timing characteristics available for those (previous generation) devices.

For example, a test system having 256 pins, testing sixteen 256Mbit capacity memory devices, each device being organised as 16Mx16 bits, will require 4Gbits (256pins x 16Mb) of high speed fault capture memory to obtain single bit resolution, or if the 2 least significant address bits are ignored to obtain a 4x4 cell resolution, lGbit of high speed memory. A 1024 pin tester would require 4Gbit of high speed fault capture memory at the same defect resolution (a 4x4 cell) but this would test sixty-four 256Mbit capacity memory devices.

This high speed fault capture memory (also called defect store memory) normally comprises Static Random Access Memory (SRAM) and can cost 30h of the total hardware cost of the test system. It is therefore highly desirable to be able to reduce the amount of fault capture memory required.

One proposed solution, which is used in some test systems, is to maintain a list of defects rather than a full map (which would indicate for each cell whether that cell is working or defective) . However, this list overflows when the test system is testing a number of memory devices concurrently and one or more of those memory devices contains a large number of defects. When the list overflows, either the test sequence must be

interrupted or some defect data must be discarded. Also, the controller to which the tester is attached still requires a large amount of memory, and the transfer of the data to the controller is slow.

Another prior art solution is to capture a 1:1 bitmap from the tester, requiring a large amount of storage in the tester and in a computer to which it is linked, and then to apply digital signal processing techniques to filter the data. This produces a system with negative losses, that is, it loses some of the original data, limiting its application. Even with a communication channel between the tester and computer operating at very high speed, this solution is slow because of the volume of data involved.

It is an object of the present invention to obviate or mitigate at least one of the disadvantages of the aforementioned systems.

This is achieved by using a compressor with defined zero to positive loss characteristics on data restoration to act on the defect data to create a representation which is a compressed form of the original data. This allows lossless restoration of the original data, or a lossy reconstruction of the original data where additional defects may be apparent, as required by the application and the exact implementation chosen for the compressor.

This reduces the size of or obviates the fault capture memory in the memory test system, either in the tester or in the controller or workstation or both. This provides the principal advantages of reduced test hardware cost, faster test result downloads, support of fast browsing capabilities in workstations or computers accessing the compressed defect data, and fast selective retrieval from databases employing the compressed defect data.

The compression can be effective by using the fact that defective memory cells are distributed

preponderantly along rows and columns in a memory device.

Thus, where a fault occurs in one cell of a row or column, there is a much higher probability of there being another fault manifest as a dysfunction in another cell in the same row or column. The data compressor of many of the preferred embodiments uses this phenomenon to record the row or column that is defective, and optionally the tile, along with a compressed form of the locations affected.

Various statements of invention corresponding to the subject matter in the independent claims and the dependent claims, based on the entire disclose of the specification are incorporated herein by reference.

For a better understanding of the present invention and to show how the same may be carried into effect, reference will now be made, by way of example, to the accompanying drawing in which: Figure 1 is a block diagram of a memory test system according to embodiment of the present invention; Figure 2 shows a VHDL description of an embodiment of the compressor in Figure 1; Figure 3 is a procedure for reconstructing the defect map for defects compressed using the compressor of Figure 1.

Fig. 1 is a block diagram of a memory test system in which an address and pattern generator 10 is connected to a memory device under test 12 via the pin electronics 14, where the addresses and fault strobes from the pattern generator and pin electronics respectively are linked by hardware or software depending on the application to a defect compressor 16 under control of a control system 18 typically implemented by a personal computer or workstation. The address and pattern generator 10 determines which memory cells are to be tested by the pin electronics 14 by conveying a cell address to the driver circuitry 14 by bus 20.

A standard memory test system would have a fault

capture memory instead of the data compressor 18; however, in this embodiment of the present invention the fault capture memory has been replaced by the data compressor 18.

The combination of the address and pattern generator 10 and the pin electronics 14 tests memory cells in the device under test 12 by applying signals to the device 12 as a series of write cycles followed by read cycles in which the data read is compared with a reference set of data, typically sent to the pin electronics at the time the address and patterns are generated. Where the stored reference data differs from the data read from the memory device, a fault strobe is generated. The fault strobe causes the location of the defect to be stored either by setting a bit in a bitmap in the pin electronics head 14, or by causing the address and other information to be latched into a shift register such as a FIFO (not shown in the interest of clarity), located typically in the pin electronics test head. In this embodiment, the depth of the bitmap or FIFO can be reduced down to one register instead of that normally used as fault capture memory depending on the speed of the compression system. With a slower compressor, for example, lossless compression using software emulation of a process described by this invention, the pin electronics head may require a large FIFO or a large amount of bitmap storage, but this invention reduces the amount of storage required in the control system subsequently.

When a defect has been detected by the assertion of the fault strobe, the address and pattern generator supplies the cell address to the data compressor 16 via address bus 22. The pin electronics 14 supplies fault signals to the compressor 16 via a control bus 24 when a memory cell fails a test. Alternatively the address data may be available as the offset in a stream of bitmap data issued with each clock cycle of a device in the pin electronics wherein a logical 1 represents a failure of

that bit, and a logical zero represents a pass, or vice versa.

The data compressor 16 receives the fault signals from the pin electronics 14 and an address from the address and pattern generator 10 corresponding to the defective cell.

The compressor 16 creates a representation of the received data, the representation being a compressed form of the original data. The process of converting the original data into a compressed format may allow either lossless restoration of the original data or restoration with the losses in the form of additional defects appearing during the restoration process as a product of ambiguities created by the compressor. The choice of lossless or lossy compression is determined by the application: for example, a lossless system is slower to execute than a lossy system and lends itself to applications requiring the engineering analysis of the reconstructed bitmaps. A lossy system can operate in real time and is suited to applications involving the automatic processing of the reconstructed data, either fully or partially reconstructed, such as in redundancy allocation where spare elements are configured to replace defective regions based on the defect distribution across the memory device under test.

The compressor 16 sends the compressed data to the control system, 18 or storage system or a display system 26. The control system runs decompression software, an example of which will be described, to decompress all or part of the data to provide a defect map or a reconstructed bitmap of the memory that was tested.

The control system 18 via its integral user interface enables a user to view, evaluate or process the information stored. The control system may also have an interface for coupling to a redundant structure programmer to allow programming of redundant memory cell structures on the device under test 12.

The function and operation of the compressor 16 is described by the VHDL in figure 2.

The VHDL description (Very high speed integrated circuit Hardware Description Language) shown in figure 2 adopts an industry wide method of describing electronic logic circuits. VHDL is an IEEE Standard Hardware Description Language commonly used by electronic hardware designers for representing the function and structure of a circuit. A VHDL description has a definite implied architecture expressing both function and sufficient implementation information for any of the commercial ASIC houses to manufacture. (See IEEE Standard VHDL Language Reference Manual Std 1076-1987, IEEE New York, 1988; and IEEE Standard VHDL Language Reference Manual Std 1076-1993, IEEE New York, 1994; and also Hunter R and Johnson T, "Introduction to VHDL", Chapman & Hall, London, 1996 ISBN 0-412-73130-4 and other references given in Appendix 1).

A device described by a VHDL listing is manufactured by logic synthesis using any of a wide range of standard commercially available packages such as those provided Synopsis Inc, Cadence and Compass Design Automation, as well as virtually all silicon vendors for use with their proprietary silicon products. Synthesis is an automated mechanism to generate an optimised gate-level representation from a VHDL description.

The VHDL can be used directly by simulation or emulation tools. The function described by the VHDL is apparent to any engineer operating in this field. VHDL has been taught to most engineers and computer scientists in undergraduate courses worldwide for at least the past decade.

The function and operation of the compressor 16 described by the VHDL in figure 2 will now be presented also in plain text for ease of understanding.

The input to the compression procedure is a stream of defect locations (X-Y pairs), signalled by an address

with a fault strobe.

The compressor 16 operates on rectangular regions of the DUT DQ plane, ideally one region being one memory tile. The finer this subdivision of the plane into tiles, the greater the accuracy of the restoration of the original defect map, but the larger the data structures that must be used.

For every row and column of the tile, three numbers are stored: the minimum fault address, the maximum fault address and the count of faults falling between these two end points. This data structure is called a span. Two arrays of spans (one for rows and another for columns) are used for each tile.

Even if a row or a column has a large number of faults, all these faults are still represented by only three numbers, resulting in a very high compression ratio compared to a raw defect map.

The steps involved in the compression procedure are: 1. Before receiving fault data, all storage elements must be initialized. The minimum address of each span is set to the length of tile row/column minus 1, while the maximum address and fault count are set to zero. Thus, the address of the first fault is always less than the initial minimum address and the maximum address is always greater than the initial maximum address, ensuring that the first fault is handled correctly.

2. Incoming X and Y addresses are decoded to find a tile, and two spans (row and column) within this tile.

3. When a fault hits row number Y and column number X, the X value is compared with the XMIN and XMAX values already stored in the row span. These functions are carried out in a structure termed a slice: this is one register block in the X and Y storage arrays in the VHDL. The possible slice states and the resulting update actions are

described in the table below. Comparison result XMIN<= XMAX<= Counter <= X<xMIN,X>XMAX (1St X X increment X=XMIN,X-XMAX no change n.c. n.c. X<XMIN,X<XMAX X n.c. increment X=XMIN,X<XMAX n.c. n.c. n.c. X>XMIN,X<XMAX n.c. n.c. increment X>XMIN,X=XMAX n.c. n.c. n.c. X>XMIN,X>XMAX n.c. X increment Table 1. Slice Update Functionality Similar actions are performed simultaneously for the column address Y.

The slice counter value is limited in the example embodiment to the level of 1ΒΌ of row/column length. If this number is exceeded, in the redundancy allocation application for which this particular compressor is optimised, the row or the column must be mapped out during the redundancy allocation anyway. The slice counter does not roll over, but keeps its maximum value until reset.

For further clarity, a fragment of C source implementing the same compression procedure as the VHDL is shown below.

// Initialize storage arrays for ( row=0; row<nRows row++ { <BR> <BR> <BR> RowSpan[row].Begin=nCols-1; <BR> <BR> <BR> <BR> <BR> RowSpan [row] . end=0; RowSpan [row] .Count=0; for ( column=0; column<nCols column++) ColSpan[column] .Begin=nRows-l; ColSpan [column] .End=0; ColSpan [column] .Count=0; // Process defect list while (Defect list not empty) Get~next~defect ( &column, &row // Update the row span if (RowSpan[row].Begin > column) // If necessary, RowSpan[row].Begin = column; // update left end if (RowSpan[row].End < column ) // If necessary, RowSpan[row].End = column; // update right end // Check conditions when the counter must not be incremented if ( (RowSpan[row] Begin == column RowSpan[row].End == column RowSpan[row].Count == MaxCount)) // If none of them true, increment the counter RowSpan [row] .Count++; // Do the same for the column span

if ( ColSpan[column] Begin > row ColSpan[column] .Begin = row; if ( ColSpan[column].End < row ColSpan[column].End = row || if ( (ColSpan[column] Begin == row ColSpan[column].End == row ColSpan[column] .Count == MaxCount)) ColSpan[column] .Count++; It will be appreciated that this fragment may be written in any other suitable programming language, such as PASCAL, APL, FORTRAN, or Smalltalk etc. The output of this procedure is an array of spans termed a Symbolic Map, because it contains information on the defects in a symbolic state. The span location is encoded by its serial number in the symbolic map. If only significant spans with a non-zero fault count are transmitted to the host, this serial number must be added as a fourth field to the span data.

In practice, the symbolic maps are decompressed from the lossy format into sparse bit matrices themselves, a form of compression, and are never fully reconstructed as 1:1 bitmaps. However, to facilitiate understanding of the decompression procedure for the compressed data from the compressor in this example embodiment, we shall assume that a 1:1 bitmap is to be reconstructed from the symbolic map.

Symbolic maps for each tile are processed independently by the reconstruction procedure. The procedure in this embodiment consists of a sequence of several passes, each of them incrementally adding defects to the restored defect list. During the decompression, the symbolic map is overwritten.

Pass 1 Mark single points (spans with fault count equal to one). Three cases are possible, distinguished by the

length and the position of the span in the two orthogonal directions.

1. Isolated point - in both directions the counters are 1. The point is added to the defect list and both spans are deleted from the span list by assigning 0 to the counters.

2. The point is an end of the orthogonal span, with the fault count greater than or equal to 2. The point is added to the defect list. The current span is deleted.

Nothing is done to the orthogonal span.

3. The point is in the middle of the orthogonal span.

The point is added to the defect list, the current span is deleted and the counter of the orthogonal span is decremented.

The pass is performed first for row and then for column spans.

Pass 2 Process spans with counter equal 2. Again, three cases are possible for each end of the span.

1. No span in the perpendicular direction (there was a span of length 1, but it was deleted during pass 1). Do nothing, since this point is already in the defect list.

2. The point is an end of the orthogonal span, with count greater than or equal to 2. The point is added to the defect list. Nothing is done to the orthogonal span.

3. The point is in the middle of the orthogonal span.

The point is added to the defect list and the counter of the orthogonal span is decremented.

In all cases the current span is deleted (0 assigned to

the span defect counter) The pass is performed first for row and then for column spans.

After pass 2, new spans with counter=2 may appear, as a result of case 3. Several iterations of pass 2 must be made, until there are no more such spans left.

Pass 3 Now only spans with the span counter >= 3 are left.

The only action performed in pass 3 is to add their ends to the defect list.

Pass 4 Intersections of all remaining spans are added to the defect list.

Various simple examples are given below to demonstrate compression and recovery procedures.

Example 1: A single point on column number X and row number Y This defect is coded into two spans: a row span containing (X,X,1) and a column span containing (Y,Y,l) In this case the original defect is found during pass 1 of the recovery procedure.

Example 2: A continuous span in the X direction (X1,Y) (X2,Y) The result of the compression is one row span containing (X1,X2,X2-X1) and X2-X1 column spans, each containing (Y,Y,l) . All defects are found during pass 1, because all column spans have the span counter equal to 1.

Even if there are working cells inside the span (i.e., it is not continuous), the procedure still restores 100% of the original defects, without adding any extra.

Example 3: Five defects forming two crossing spans The symbolic map contains three row spans and three column spans. End points are found during pass 1. The point on the intersection is marked during pass 4.

All points are marked during pass 1 and the counter of the row span is decremented from 3 to 2. Then both spans are deleted during pass 2. No extra point is marked on the intersection.

Using the compression procedure of the example embodiment, it is not always possible to determine from the information stored the precise location of each defective cell. In this case, retrieval of the locations of defective cells is limited to the number of defects in a row or column, and a list of alternative positions in which the defect may occur. In many applications, including redundancy allocation, this is not significant because any row or column which has a large number of defective cells will be replaced.

Another embodiment of the compression system provides for a compression of the defects for the rows and columns in each tile rather than the rows and columns extending across the entire memory. In this alternative embodiment redundant memory cell structures are allocated for each group of rows and columns in each tile. Where the number of tiles is more than the number of sets of redundant structures, the tiles can be regarded as a hierarchical group and the hardware applied to clusters

of tiles, with increased losses, that is with additional ambiguity as to the exact location of some defects.

Various modifications can be made to the embodiments here and before described without departing from the scope of the present invention. For example, in other embodiments, the fault signals may be generated by the address and pattern generator 10 rather than the pin electronics 14. In addition, a count of defective cells between the maximum faulty address and the minimum faulty address may not be used, a sparse bit matrix or a corner stitched structure may be used instead to provide lossless compression. Where the compressor operates slowly, it is necessary to retain some fault capture memory or a FIFO. In this case, the defect compressor can operate to reduce the retrieval times or display times for the bitmaps. In these cases, the defect compressor may be retro-fitted to existing test systems.

The example embodiment using VHDL can also be expressed by automated translation into either Verilog or circuit diagrams. Verilog is a de-facto standard, widely used as an alternative to VHDL throughout the semiconductor industry, with some advantages for specific applications (Appendix 1).

In each of the main embodiments and the alternative embodiments, the decompressor matches the compressor.

The term "coupled" as used herein means any connection whether direct or indirect, and whether by hardware or software or a combination thereof.

APPENDIX 1 VHDL References: IEEE Standard VHDL Language Reference Manual, Std 1076-1987, IEEE, New York, 1988.

IEEE Standard VHDL Language Reference Manual, Std 1076-1993, IEEE, New York, 1994.

Hunter, R. and Johnson, T., Introduction to VHDL, Chapman & Hall, London, 1996, ISBN 0-412-73130-4.

Pick, J., HVDL Techniques, Experiments, and Caveats, McGraw-Hill, New York, 1996, ISBN 0-07-049906-3.

Bhaster, J., A VHDL Primer, Star Galaxy Press, PA, 1996, ISBN 0-9650391-0-2.

Bhaster, J., A Guide to VHDL Syntax, Prentice Hall, NJ, 1995, ISBN 0-13-324351-6.

Skahill, K., VHDL for Programmable Logic, Addison Wesley, CA, 1996, ISBN 0-201-89586-2.

Companies offering a fabrication service from VHDL descriptions: Orbit Semiconductor, Atmel #, LSI Logic Inc, TSMC (Taiwan), UMC (Taiwan), Altera, Lattice Semi, Cypress Semiconductor Corp, Xilinx and more than 20 others.

VHDL and Verilog References: Smith, D., HDL Chip Design, Doon Publications, AL, 1996, ISBN 0-9651934-3-8.

Veriloq References: Bhaster, J., A Verilog HDL Primer, Star Galaxy Press, PA, 1997, ISBN 0-9656277-4-8.

Palnitkar, S., Verilog HDL: A Guide to Digital Design And Synthesis, Prentice Hall, NJ, 1996, ISBN 0-13-451675-3.

Thomas, D. and Moorby, P., The Verilog Hardware Description Language, Third Edition, Kluwer Academic Publishers, MS, 1997.

IEEE Standard Hardware Description Language Based on the Verilog Hardware Description Language, IEEE Std 1364-1995, IEEE, New York, 1995.