The present invention relates in general to testing systems and, in particular, to systems and methods for improving the utilization of automated test (ATE) systems.
An ATE system refers to a class of test equipment that generally includes automated delivery of components or subsystems to a test station. ATE systems are primarily employed to electrically test components from high volume manufacturing. Electrical testing is the identification and segregation of electrical failures from a population of devices (e.g., IC or wafers). An electrical failure is any IC that does not meet the electrical specifications defined for the device. In simplified terms, electrical testing consists of providing a series of electrical excitations or stimuli to the IC device under test (DUT) and measuring the response of the DUT. For every set of electrical stimuli, the measured response may be compared to an expected response, which is usually defined in terms of a lower and an upper limit. Any DUT that exhibits a response outside of the expected range of response may be considered a failure or, in some cases, a lower performing device.
In IC production mode, electrical testing is usually performed using an ATE system or platform, consisting of a tester and a handler. The tester performs the electrical testing itself, while the handler transfers the DUTs to the test site where they are positioned for proper testing, as well as reloading the DUTs back into a carrier after the testing process is completed.
The testing process executed by the ATE system is controlled by a test program or test software. The test program is usually written in a high level language and may consist of a series of several test blocks, each of which tests the DUT for a certain parameter. An exemplary test block sets up the DUT fixtures for proper testing of the DUT for a corresponding parameter. A test block may also tell the tester what electrical excitation needs to be applied to the DUT, as well as correct timing for the tests to be run.
A test program typically comprises two types of test blocks, parametric and functional. Functional testing checks if a device is able to perform its basic operation. Parametric testing checks if the device exhibits the correct voltage, current, or power characteristics, regardless of whether the unit is functional or not. A parametric test usually comprises forcing a constant voltage at a node and measuring the current response (force-voltage-measure-current, or FVMC) at that node, or forcing a constant current at a node and measuring the voltage response (force-current-measure-voltage, or FCMV).
Electrical testing is typically done at ambient temperature, but testing at other temperatures may also be done depending on the screening requirements. For instance, latch-up problems have better chances of being detected at an elevated temperature while hot carrier failures are more easily detected at low temperatures.
The handler in an ATE system delivers the DUT into a test station where probes are positioned to contact and supply stimuli. The positioning of the test probes and details for a particular stimulus are specified by the test program, which may run as an application on a computer operating system. The computer operating system may be configured to run any number of test programs or test interface programs as applications.
A test program that directs the operation of the ATE typically includes, “hooks” that allow the operational status of the ATE to be visible to other applications, also running in the background during test, that are designed to enhance the test program and the operation of the ATE. Such background applications may be configured to do a variety of tasks including, but not limited to, analyzing response data, generating input window directing operator input, determining trends in acquired data, etc.
ATE systems are expensive and their efficiency of utilization is important to overall product throughput, product cost, and more importantly, in quickly identifying any anomalies in the manufacturing or test process that may be corrected before more failed or out-of-specification DUTs are manufactured or improperly categorized.
An ATE operator is usually assigned one or more ATEs with the task of assuring that the utilization of each is maximized. To aid the operator (or other support personnel), a web-based interface tool that is accessed from the ATE console may provide the operator or maintenance technician an input window wherein the operator can input data, such as for example, machine state codes or ATE set-up configuration data. The machine state codes are configured to enable the status of the ATE as “seen” by the operator or technician to be inputted and recorded as a function of time (e.g., time stamped when entered). This operator entered machine state code data, referred to as operator overall equipment effectiveness or efficiency (OEE) data, may be used in calculations to determine OEE for a particular ATE. However, the value of this operator OEE data is highly dependent on the user, thus procedures and training are required along with operator discipline to yield good operator OEE data. Such procedures may include establishing a master set of machine state codes, general rules for what machine state codes are used in what particular situations, setting consistently using the machine state codes across all manufacturing floors, shifts, and tester groups, and establishing procedures for who may enter machine state code data and set-up data. ATE operator entries in the above-described interface tool may not always be accurate.
A software monitor running on the ATE, on the other hand, is a very accurate data source for determining the timing of ATE events and thus may be the source of machine generated OEE data (machine OEE data). The software monitor may use DUT lot classification and DUT lot data to derive many reportable ATE machine states. The software monitor may detect and report idle periods within a DUT lot and may be configured to be self-reporting and fully automated. These features produce insights while DUT lots are being tested (data is available) but may not provide any insight into machine states between DUT lots or at times when the machine is not providing any applicable data.
There is provided an improved testing system. More specifically, in one embodiment, there is provided a method including accessing machine overall equipment effectiveness or efficiency (OEE) data including machine generated operational event states of an automated testing (ATE) system and times the machine generated operational event states occurred, receiving operator OEE data including operator entered operational event states of the ATE and times the operator observed operational event states, and combining the machine OEE data and the operator OEE data to generate merge OEE data.
In another aspect, there is provided a physical computer-readable storage medium embedded with instructions that operate in a computer environment to store a first data stream containing machine generated data associated with a semiconductor tool, to store a second data stream containing operator generated data associated with the semiconductor tool, and to generate a third data stream containing an evaluative merging of the first and second data streams.
In the following description, numerous specific details are set forth. However, those skilled in the art may practice present invention without such specific details. In other instances, well-known circuits may be shown in block diagram form in order not to obscure them with unnecessary detail. For the most part, details concerning timing and the like may have been omitted in as much as such details are not necessary to obtain a complete understanding and are within the skills of persons of ordinary skill in the relevant art.
Refer now to the drawings wherein depicted elements are not necessarily shown to scale and wherein like or similar elements are designated by the same reference numeral through the several views.
The machine OEE data 111 is time accurate as it is automatically acquired. However, from time to time, machine OEE data 111 may lack information, especially at times when the ATE 101 is in a machine event state that does not produce data; for example when the ATE 101 is in a Down state. On the other hand, the operator OEE data 114, while time stamped, is dependent on an operator or some support personnel being present to make an entry that indicates the machine event state of the ATE 101. Even though the time accuracy maybe less than desired, the operator is able to make visual observations and/or off-line measurements, and thus provide information rich inputs as to the machine state of the ATE 101.
In a one embodiment, a rule based algorithm 112 is used to combine the operator OEE data 114 and the machine OEE data 11 to generate merge OEE data 113 that incorporates characteristics not available in each data stream alone. The merge OEE data 113 may be processed to produce one or more action plans that effect changes that enable better utilization of the ATE 101. For example, the merge OEE data 114 may be employed to calculate an OEE 121 of the ATE that better represents the actual utilization of the ATE 101.
The ATE system 100 includes a data analysis software tool 104 that receives data 106 from data sampling software tool 103 and stores historical data. This historical data may be analyzed to determine trends and generate profile signatures 105 that indicate failure modes in particular devices tested by ATE 101, For example, learning engine 108 may use data mining algorithms 107 to search the historical data in tool 104 to determine profile signatures 105 that are fed back to data sampling software tool 103. When data sampling software tool 103 acquires data 102 that matches a profile signature 105 it may generate failure signatures 110 that may trigger the generation of outputs 109, such as, for example, a message or a particular type of “pop-up” visible to an operator or other support personnel either locally or remotely.
At time B, the operator OEE data 114 indicates that ATE 101 has changed to the Set-Up (SU) state 2101. The machine OEE data 111 still does not indicate any particular state (no data) and an exemplary rule defers to the operator OEE data 114 and merge OEE data 113 is updated to indicate SU state for 210 the time interval B-C.
At time C, operator OEE data 114 indicates that the operator inputted an UP event state 212 for ATE 101. However, machine OEE data 111 which automatically indicates the UP state 212 once testing has actually begun, does not agree with the operator OEE state at time C. Rather, machine OEE data 111 indicates nothing until a 1st pass lot processing starts at time D. 1st pass processing may, in some embodiments, be considered a sub-set of the UP state 212. In the interval C-D, therefore, machine OEE data 111 and operator OEE data 114 do not match. In this case, an exemplary rule defers to machine OEE data 111 and merge OEE data 113 is updated to indicate an unknown machine state 213 (XX) in the time interval C-D.
During the interval D-E, the operator OEE data 114 and machine OEE data 111 both indicate that ATE 101 is in UP event state 212A (a first pass test of a lot is in process.) At time E, the machine OEE data 111 indicates ATE 101 transitioned to an Idle event state 206 in the interval F-G. Operator OEE data 114 indicates that for some reason, the operator failed to input Idle event state 206 beginning at time E. There can be many reasons for such imprecision such as, for example, the operator may be at another ATE and failed to note the event state transition. In this case, an exemplary rule defers to the machine OEE data 111 and the merge OEE data 113 is updated to indicate a Wait Unknown (WU) event state 214 (the ATE is idle with no further explanation available).
At time F, the operator enters a Waiting for Operator (WO) machine event state 216 while the machine OEE data 111 indicates that ATE 101 is still in Idle state 206. In this case, an exemplary rule again defers to the operator OEE data 114 as the operator has provided additional detail. At time G, the machine OEE data 111 indicates that the first pass processing 212A has resumed while the operator OEE data 114 continues to indicate WO machine event state 216. In this case, the exemplary rule defers to the machine OEE data 11 as being the best indicator of the machine event state of ATE 101. Merge OEE data 113 is updated to indicate that ATE 101 is in UP state 212 (testing devices).
At time I, the operator again failed to indicate that ATE 101 went into the Idle state 206. The exemplary rule defers to the machine OEE data 111 and updates merge OEE data 113 to indicate a WU event state 214. At time J, the machine OEE data 111 indicates the end of Idle state 206 and the entry into the Down state 218 for the interval J-K. During the interval J-K, while the operator OEE data still indicates the UP state, the machine OEE data 111 is a better indicator that the machine is actually in a Down state (no data) 220. Because there are many reasons why an ATE maybe down, the merge OEE data indicates unknown state XX 212. At time K, the operator adds more detail and indicates that ATE 101 is actually in the preventative maintenance (PM) state 220A while it is Down. Since this adds additional informational detail, merge OEE data 113 is updated to coincide with the operator OEE data 114.
At time L, the machine OEE data 11 still indicates that ATE 101 is in the Down state 220 while the operator inputs that the machine event state is in a Waiting for Material (WM) event state 222. Again, the operator OEE data 114 adds additional informational detail and merge OEE data 113 is updated to coincide with the operator OEE data 114. At time M, the machine OEE data 111 indicates that ATE 101 has transitioned to the UP Retest (UR) event state 212B. In this example, the operator did not input the start of Retest until time N and thus the exemplary rule defers to the machine OEE data 111 as being more accurate and updates the merge OEE data 113 to coincide with the machine OEE data 111 during the period from time N until the end of the monitored ATE 101 time period 200.
In step 308, the operator OEE data 114 and the machine OEE data 111 are scanned until a next machine event state change. In step 309, a test is done to determine if the end of the ATE test interval has been reached. If the end of the ATE test interval has been reached, then in step 310 the merge OEE data 113 is stored for further analysis to generate one or more action plans or to calculate a utilization metric or the OEE of the ATE according to the merge OEE data 113. If the merge process has not ended, a branch is taken back to step 303.
If the result of the test in step 304 is YES, meaning that the operator and machine assessments of the ATE machine state agree, then the merge OEE data 113 is updated to correspond in step 307. Again steps 308 and 309 are executed resulting in a branch back to step 303 or to step 310 as previously described.
The combining process starts in step 401 by inputting the machine event states as indicated by the operator (operator OEE data 114) and the data received by a monitor application (machine OEE data 111). In step 402, a test is done to determine if the machine OEE data 111 indicates that ATE 101 is in the UP machine event state 212. If the result of the test in step 402 is YES, then in step 403 the merge OEE data 113 is updated to machine OEE data 111 to indicate the machine event state of ATE 101. A branch is then taken back to step 401 to read in new OEE data which may include both machine OEE data 111 and operator OEE data 114. If the result of the test in step 402 is NO, then in step 404 a determination is made as to whether operator OEE data 114 indicates that ATE 101 is in UP state 112. If the result of the test in step 404 is YES, then in step 405, a determination is made as to whether the machine OEE data 111 indicates that ATE 101 is in Idle state 206. If the result of the test in step 405 is NO, then further details of the DOWN state 220 of ATE 101 are not known and the merge OEE data 113 is updated to indicate an Unknown event state XX 213 (step 406). If the result of the test in step 405 is YES, then the rule selects a Wait state as the merge OEE data 113 in step 408. Then a branch is taken back to step 401. If the result of the test in step 404 is NO, then the operator OEE data 114 is selected as the merge OEE data 113 in step 407 and a branch is then taken back to step 401.
Analyzing the results as shown in
The following is a more detailed description of particular application software that is used by some embodiments. This description provides additional detail and the particular application software are given identifying names such as “TestScape”, “SwifTest” and “StatusTool” which identify particular offerings of the present Assignee.
TestScape is an exemplary software application that provides a comprehensive OEE solution for the active management of tester assets. The presentation layer of a TestScape application may change from user to user and may be dependent on particular needs and desires of the manufacturing operation. StatusTool is an exemplary on-tester software that the operator and other test floor personnel use to enter system state, configuration, and other pertinent information in real time. SwifTest is an exemplary application program that derives lot summary data and mid-lot data from the standard test data format (STDF) file or data conduit and sends this data to the TestScape application. From this data, exemplary application TestScape determines certain machine states, yield and throughput information. TestScape may also contain various maintenance tables and screens for master data that may be used in conjunction with the above data streams describing machine event states.
The input of machine event states may be considered to come from all of the exemplary application program sources described: StatusTool, SwifTest, and TestScape master data tables. Combined, these sources provide an accurate, real-time assessment of ATE event activity. Each of these application sources are described in greater detail in the following descriptions.
In various embodiments, OEE information may be directed to three destinations: TestScape generated Web Pages, data exports to Excel® and PDF® files, and an operator feedback console (OFC) generated by the StatusTool application. TestScape Web Pages may include various charts, tables, and graphs as later described. Data export to an Excel® program allows recreation of the OEE calculations and other data that may be pertinent. Full web page export to PDF® files may include the selection criteria and any other data constraints.
The exemplary StatusTool application may display productivity and yield information that are fed back to the operator via the StatusTool OFC to create a fill loop system for real time improvement.
Industry specifications SEMI 10 specification and SEMI E79, define machine state codes and productivity equations and are the foundation of all OEE calculations described and used in various embodiments. OEE codes, including customer specific codes, map to the SEMI E10 codes. Typically, the lowest level of OEE measurement is a Test Cell, which is defined as one test head on a tester. Most testers are single head, each of which has independent OEE data and measurement metrics.
The following are a set of terms that may be used in conjunction with embodiments described herein:
The following formulas may be used to calculate certain metrics used according to a one embodiment:
OEE=AE*PE*QE (1)
Where:
AE=(Up Time)/(Total Time) (2)
PE=OE*RE (3)
QE=(Theoretical Production Time for Effective Units)/(Theoretical Production Time for Actual Units) (4)
OE=(Production Time)/(Up Time) (5)
RE=(Theoretical Production Time for Actual Units)/(Production Time) (6)
Theoretical Production Time for Actual Units=Actual Units/TUPH (7)
Theoretical Production Time for Effective Units=Effective Units/TUPH (8)
It may be concluded from the above formulas that:
QE=(Total Passing Devices)/(Total Device Insertions) (9)
RE=(Total Device Insertions)/(TUPH*Production Time)=AUPH/TUPH. (10)
The following Table 1.0 lists correspondences between OEE codes and states and their descriptions, used in a one embodiment, and the previously referred to industry standard E10 states. In one embodiment, each unique machine state of the equipment is designated by an OEE code. Each of these OEE codes are then grouped under the major blocks (E10 states).
The E10 states are an industry standard and are not changed. However, the OEE sub-states may be changed and expanded per individual user needs. The exemplary application TestScape is initially installed with a default set of OEE codes for example, the ones as shown above in Table 1.0. The Non-Scheduled state (NST) shown is the default state if no other input is available and is not changed or removed.
The following is a description of how exemplary application programs collect and process data used in some embodiments.
The exemplary StatusTool application has the primary interface for the operator and other test floor personnel. Data is intended to be entered in real time. The StatusTool application has three sections: OEE input, Setup, and Feedback. In one embodiment the StatusTool is a Web based application that is configured to run on a broad array of Internet browser platforms that match those present on most test floors. The exemplary StatusTool may incorporates language aliasing to allow the operator to view the page in their native language in those cases where the manufacturing floor may be remote from engineering facilities or other support locations.
An exemplary OEE Tab provides a selection of E10 states from which an operator may choose. Colors may be used and would follow the E10 code colors from a OEE master table. The top of the tab may have a section to prompt the operator for their identification (ID). The bottom of the OEE Tab may have a place for operator comments. When the operator enters operator OEE data into the OEE Tab or changes states, then a record is sent to TestScape with the data, tester node and timestamp.
Setup Tab enables the operator or setup technician to enter key configuration data. The values for the configuration data normally come from a configuration lookup table for example from the exemplary application TestScape. The operators are trained to use intelligence to reduce operator input requirements. For example, if an exemplary “Product XYZ” only uses one type of handler and one type temperature, then a default to that setting should be incorporated. In the event the master lookup table is not being maintained, the operator is allowed to designate ‘other’ or possibly allowed a free entry. Where ever possible, the operator is provided with a drop-down list and discouraged from providing self-scripted entries. To further improve the integrity of the operator OEE data, the operator should provide an indication to acknowledge operator OEE data entry. A record of the operator entry is then sent to exemplary application TestScape with operator OEE data, tester node, and timestamp.
The following are exemplary input fields for entry of operator OEE data used in accordance with embodiments described herein.
The exemplary OFC attaches to the bottom of the StatusTool and may be used to provide graphical feedback data such as:
The exemplary SwifTest application program is configured to provide machine event status data and mid-lot updates to exemplary program TestScape. In one embodiment the exemplary TestScape program may infer the E10 states and from the reported machine OEE states from the lot class field using a lookup table. For example:
During the processing of a lot, Idle events may occur. These Idle events override the Lot class derived state and may be designated as an Idle productive code such as UI.
When implementing some embodiments, other issues may need consideration. For example, the following is some data integrity considerations.
A key component of the OEE metric is rate efficiency. In order for rate efficiency to calculate properly, a theoretical UPH number is needed. This number may vary from product to product and test program to test program as the test time is for each may be different. There are four possible sources for this critical information:
When model parameters are entered into the product master screen, the Theoretical UPH value is calculated and entered into the TUPH field.
d) Theoretical UPH assumes all devices are passing but there will always be some failing devices in the exemplar empirical data set. Failing devices take less time to test than passing devices and too many failing devices could skew the result. Adjust accordingly. Consider that processing time in a quad site scenario shortened only if all 4 devices fail. If even 1 device passes, then the test time will be maximized for all. If a device yields 90% and is being tested with 4 sites in parallel, then the probability that all 4 devices fails at the same time is (0.1)4, which is 0.0001 or 0.01%. Even though the failing time contribution is extremely small, multiply these few instances by some arbitrary factor to estimate the test time if they had passed. Extending this method to the generalized case yields:
Where:
The above empirically calculated TUPH may be recalculated, for example, once a day and the product master may then be updated with the newly calculated value.
The exemplary TestScape determines the Theoretical UPH (TUPH) as follows:
The exemplary TestScape program receives machine OEE data and operator OEE data streams from the exemplary SwifTest application and exemplary StatusTool application, respectively, and generates merge OEE data 113 using a rule based algorithm according to a one embodiment.
Exemplar SwifTest is an example of the earlier described application for data sampling software tool 103 and, as such, generates machine OEE data 111. It employs derived E10 codes and thus only considers states Production, Engineering, and Setup all of which are part of UP Time. The void of data between lots is non-productive and hence may be assumed to be either Down Time or Non Scheduled Time. Even though these machine OEE data (E10 states) do not represent the full OEE picture, they are sufficient to calculate the core OEE metrics and are accurate in the time domain. One area of possible error is the accurate determination of Standby states. Intra-lot idle time may be used to determine a portion of the Standby time but inter-lot standby events are not known.
The three components of the OEE previously described may be alternatively expressed as:
AE=(Up Time)/(Total Time) (12)
PE=OE×RE=(Total Passing Devices)/(TUPH×Up Time) (13)
QE=(Total Passing Devices)/(Total Device Insertions) (14)
Note that these equations use Up Time, Total Time, TUPH, and device counts. All these parameters may be extracted from the SwifTest OEE data stream. In the absence of any StatusTool operator OEE data, Swiftest derived E10 codes are used. This can be helpful in the early stages of implementation when StatusTool operator OEE data may only be available in limited amounts.
StatusTool operator OEE data contains an array of codes inputted directly by the operator. Operator OEE data 114 may not always contain an accurate depiction of ATE machine states or the time they were entered. The accuracy of operator OEE data 114 is directly dependent on the training and discipline of operator. However, the StatusTool operator OEE data is useful when a user desires a more detailed picture of ATE 101 utilization. Operator OEE data 114 from StatusTool allows more detailed description of the ATE machine states as the operator has visibility to information when none is available from the machine OEE data 111. This gives a user a better understanding of where ATE time is really being spent.
At times, machine OEE data 111 and operator OEE data 114 will augment each other, at other times, one will augment the other, and at other times, the two data streams will be in direct conflict. A rules based algorithm that may be utilized to properly deal with the above three scenarios, may be implemented using, for example, a state lookup table. The following Table 2.0 is an exemplary illustration of generating merge OEE data 113 by combining operator OEE data 114 and machine OEE data 111.
The cells with “*” mean that the OEE codes received from StatusTool should be used in the merged result without alteration. When a new tester is added to the system, the initial state of this system will be set to Non-Scheduled Time.
With the StatusTool OEE states and SwifTest lot data meaningful OEE metrics can be created that indicate the utilization of ATE production equipment. In accordance with SEMI standard E79, TestScape can calculate the OEE metric and its components metrics: Availability Efficiency, Rate Efficiency, Operational Efficiency and Quality Efficiency as described above. In addition to these basic metrics, a user may create other useful metrics such as:
First Pass Efficiency=First Pass Test Time/Productive Time (15)
Retest Efficiency=Retest Time/Productive Time (16)
Equipment Utilization=(Productive Time/Total Time)×(Actual UPH/Theoretical UPH) (17)
Mean Time between Failures (MTBF)=productive time/number of Unscheduled Repair events during productive time. (18)
Mean Time to Repair (MTTR)=total time of Unscheduled Repair/number of Unscheduled Repair events. (19)
Mean Cycles between Failures (MCBF)=total lots tester/number of Unscheduled Repair events. (20)
Mean Time Offline (MTOL)=total down time/number of down time events. (21)
Although the numerous embodiments have been described in detail, it will be apparent that those skilled in the art may be embodied in a variety of specific forms and that various changes, substitutions and alterations can be made without departing from the spirit and scope of the invention. The described embodiments are only illustrative and not restrictive and the scope of the invention is, therefore, indicated by the following claims.