Currently, a number of systems exist for testing various types of semiconductor-based devices. In general, such systems interface with the device-under-test (DUT) and perform various analyses to test the operation, functionality, etc. of the DUT. Typically, the results of these tests are logged to a results file for subsequent analysis to assess the processor design and/or the yield of the fabrication process.
Existing systems for analyzing the results file, however, are limited because of the large size of the file. The results file is typically very large because the test system performs a number of tests for each processor on each wafer in the lot.
Systems, methods, and computer are described. One embodiment is a cache yield analysis program embodied in a computer-readable medium comprising: logic configured to search a file that contains test results for a lot of wafers and determine cache array locations for processors in the lot for which a cache test has failed; and logic configured to determine a cache array repair signature that defines at least one cache array location associated with the processor design which has failed the cache test in a statistically relevant percentage of the processors in the lot. Another embodiment is a system for testing cache performance of a processor design comprising: a parser module for searching a file that contains cache test results for a lot of wafers; a composite repair failure identification module for determining cache array locations for which a cache test has failed; and a cache array repair signature module for determining at least one cache array location associated with the processor design which has failed the cache test in a statistically relevant percentage of the processors in the lot.
A further embodiment is a method for testing cache performance of a processor design comprising: searching a file that contains cache test results for a lot of wafers; and determining at least one cache array location in at least one processor in the lot wafers processor for which a cache test has failed.
Yet another embodiment is a system for testing cache performance of a processor design comprising: means for searching a file that contains test results for a lot of wafers; means for determining cache array locations for processors in the lot for which a cache test has failed; and means for generating a cache array repair signature that defines at least one cache array location associated with the processor design which has failed the cache test in a statistically relevant percentage of the processors in the lot.
Many aspects of the invention can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating principles in accordance with exemplary embodiments of the present invention. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
This disclosure relates to various embodiments of systems, methods, and computer programs for performing cache testing of a processor design. Several embodiments will be described below with reference to
Referring to
Test criteria 118 may comprise a data file or logic that defines and/or controls the test(s) to be performed on processors 112. One of ordinary skill in the art will appreciate that any of a variety of types of tests may be performed on processors 112 and, therefore, test criteria 118 may be configured accordingly. As described in more detail below, various embodiments of test criteria 118 may be configured to test the cache components (e.g., instruction cache, data cache, etc.) of processors 112. For example, test criteria 118 may be configured to define and/or control a composite repair test for testing each bit in cache array(s) (e.g., row/column).
As illustrated in
As known in the art, during operation of processor test system 106, the results of the tests performed on each processor 112, wafer 204, and/or the corresponding aspects of processors 112 or wafer 204 may be logged to test results file 120. Typically, due to the large number of tests being performed and the large number of processors 112, test results file 120 is relatively large. It should be appreciated that test results file 120 may be configured in a variety of ways. For example, test results file 120 may be represented in hexadecimal, binary, or other suitable data formats.
As known in the art, during a composite repair test, each bit in cache array 402 may be tested for errors. In this regard, it should be appreciated that test results file 120 contains data corresponding to whether each bit in cache array 402 for each processor 112 in lot 202 has passed or failed the composite repair test. As briefly described above, cache yield analysis system 100 may be configured to interface with test results file 120 and provide cache yield analysis that may be useful in assessing the design of processors 112 and/or the corresponding manufacture yield. In general, cache yield analysis system 100 searches test results file 120 and determines the cache array locations for which a bit error occurred during testing (i.e., composite repair failed). Based on the identified cache array location(s) that failed the composite repair test during testing of the processors in lot 204, cache yield analysis system 100 may generate a cache repair signature that defines one or more cache array locations that failed in a statistically relevant percentage of the processors in lot 204.
One of ordinary skill in the art will appreciate that cache yield analysis system 100 may be implemented in software, hardware, firmware, or a combination thereof. Accordingly, in one embodiment, cache yield analysis system 100 is implemented in software or firmware that is stored in a memory and that is executed by a suitable instruction execution system. In software embodiments, cache yield analysis system 100 may be written any computer language. In one exemplary embodiment, cache yield analysis system 100 comprises a PERL script.
In hardware embodiments, cache yield analysis system 100 may be implemented with any or a combination of the following technologies, which are all well known in the art: a discrete logic circuit(s) having logic gates for implementing logic functions upon data signals, an application specific integrated circuit (ASIC) having appropriate combinational logic gates, a programmable gate array(s) (PGA), a field programmable gate array (FPGA), etc.
It should be appreciated that the process descriptions or blocks related to
Furthermore, cache yield analysis system 100 may be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions. In the context of this document, a “computer-readable medium” can be any means that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-readable medium can be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a nonexhaustive list) of the computer-readable medium would include the following: an electrical connection (electronic) having one or more wires, a portable computer diskette (magnetic), a random access memory (RAM) (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM or Flash memory) (electronic), an optical fiber (optical), and a portable compact disc read-only memory (CDROM) (optical). Note that the computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via for instance optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner if necessary, and then stored in a computer memory.
In view of the disclosure above, it will be appreciated that one embodiment of a method for testing cache performance of a processor design is illustrated in