Abstract:
A method for collecting data from semiconductor equipment includes selecting a plurality of data values to request from semiconductor equipment and assigning each of the data values to a chamber. Each chamber is associated with an engine that processes the data values in the associated chamber to detect a fault in the semiconductor equipment. The method also includes determining an order to receive the data values from the semiconductor equipment, and, after the order for the data values is determined, communicating a setup message requesting the semiconductor equipment to communicate the data values in the predetermined order. The method further includes receiving the data values from the semiconductor equipment and providing each of the received data values to the particular engine associated with the chamber of the data value.

Description:
TECHNICAL FIELD OF THE INVENTION 
     This invention relates in general to semiconductor fabrication and more particularly to a method for collecting data from semiconductor equipment. 
     BACKGROUND OF THE INVENTION 
     During fabrication of semiconductor products, it is necessary to determine whether particular semiconductor equipment functioning properly. Often, this involves collecting a variety of diagnostic data from the semiconductor equipment, which can be analyzed to determine whether the equipment is functioning properly. In many cases, such semiconductor equipment can be include subsystems called “chambers.” The chambers produce data values that are processed together to determine whether the semiconductor equipment is functioning properly. One method of collecting data is to establish separate connections between a data collector and semiconductor equipment for each chamber. However, there may be drawbacks associated with such data collection methods, including excessive use of bandwidth and inefficient use of packet space. 
     SUMMARY OF THE INVENTION 
     In a first embodiment, a method for collecting data from semiconductor equipment includes selecting data values to request from semiconductor equipment and assigning each of the data values to one of a plurality of chambers. Each chamber is associated with an engine that processes the data values in the associated chamber to detect a fault in the semiconductor equipment. The method also includes determining an order to receive the data values from the semiconductor equipment, and, after the order for the data values is determined, communicating a setup message requesting the semiconductor equipment to communicate the data values in the predetermined order. The method further includes receiving the data values from the semiconductor equipment and providing each of the received data values to the particular engine associated with the chamber of the data value. 
     In a second embodiment, a data analyzer includes a processor and an interface. The processor selects data values to request from semiconductor equipment and assigns each of the data values to a chamber. Each chamber is associated with an engine that processes the data values in the associated chamber to detect a fault in the semiconductor equipment. The processor also determines an order to receive the data values from the semiconductor equipment. The interface communicates a setup message to semiconductor equipment. The setup message causes the semiconductor equipment to communicate the data values to the data analyzer in a predetermined order. The interface also receives the data values from the semiconductor equipment. The processor provides each of the data values to the particular engine associated with the chamber of the data value. 
     Important technical advantages of certain embodiments of the present invention include improved use of bandwidth between data collectors and semiconductor equipment. One advantage of reducing the number of separate connections used to communicate data between semiconductor equipment and a data analyzer is that the amount of bandwidth used by the connection may be fixed. Accordingly, the reduced number of connections will not consume an excessive amount of bandwidth or underutilize available bandwidth. This prevents errors which may result from excessive delays in communication as well as improved efficiency for data collection. 
     Other important technical advantages of certain embodiments of the present invention include increased processing efficiency from multiple chambers. The present invention, in certain embodiments, uses multiple engines to process chambers separately. This allows increased efficiency and greater reliability in processing, but such embodiments also avoid several drawbacks associated with the use of engines, including inefficient use of bandwidth. Thus, certain embodiments of the present invention provide the advantages associated with multiple engines processing data from a particular device while avoiding drawbacks associated with multiple connections. 
     Other technical advantages of the present invention will be readily apparent to one skilled in the art from the following figures, description, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a more complete understanding of the present invention and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which: 
         FIG. 1  illustrates a fault detection system for semiconductor equipment that establishes multiple connections between the semiconductor equipment and a data collector; 
         FIG. 2  illustrates a fault detection system that analyzes data using a single connection between semiconductor equipment and a data analysis device; 
         FIG. 3  is an illustration of a particular embodiment of a data analyzer; 
         FIG. 4  is a spatial map that may be maintained at a data analyzer; and 
         FIG. 5  is a flowchart illustrating an example method of operation for a data analyzer. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1  illustrates a conventional fault detection system  100  in which a data analyzer  104  analyzes data received from several chambers  106  of semiconductor equipment  102 . In the depicted embodiment, system  100  has multiple connections established between semiconductor equipment  102  and data analyzer  104 . Data collector  116  receives information from a particular connection and forwards the information to the appropriate engine  118 , which processes the data and determines whether semiconductor equipment  102  is functioning properly. As used in this specification, “chamber” refers to a grouping of subsystems, from which data values are collected that are analyzed by a particular engine. 
     Semiconductor equipment  102  represents any system including electrical and/or mechanical parts used in the manufacture of semiconductor products. Semiconductor equipment  102  may also produce data values indicative of the functioning of particular components of semiconductor equipment  102 . Often, particular data values will need to be processed together in order to determine whether semiconductor equipment  102  is functioning properly. Accordingly, data values may be associated with chambers  106 A,  106 B, . . . ,  106   n  (collectively referred to as “chambers  106 ”). Semiconductor equipment  102  communicates with data analyzer  104  using interface  108 . 
     Interface  108  represents any physical means for forming connections to exchange information with data analyzer  104 . Connections are illustrated as ports  110 A,  110 B, . . . ,  110   n  (collectively referred to as “connections  110 ”). Each connection  110  communicates the data values from its respective chamber  106  to data analyzer  104 . Data is exchanged between semiconductor equipment  102  and data analyzer  104  in the form of packets  122 . Each packet  122  includes header information  124  associated with the connection used to carry packet  122  and payload information  226 , which is the information content of packet  122 . In certain cases, there may not be less information in packet  122  than the capacity of payload  126 , although partially-empty packets  122  generally require the same amount of header information  124 . 
     In a particular embodiment, semiconductor equipment  102  and data analyzer  104  exchange information in a manner that conforms with the Semiconductor Equipment and Materials International (SEMI) standard, published by SEMATECH. According to the SEMI standard, a connection known as a “trace” may be established by data analyzer  104  sending setup messages  120 A,  120 B, . . . ,  120   n  (collectively referred to as “setup messages  120 ”) to semiconductor equipment  102 . Each setup message  120  includes a trace identifier and a list of variables. Semiconductor equipment  102  responds by sending data values to data analyzer  104  in the order provided in setup message  120 . 
     Data analyzer  104  represents a collection of components, whether hardware or software, that collect information from semiconductor equipment  102  and analyzes information to determine whether a fault has taken place in the operation of semiconductor equipment  102 . In the depicted embodiment, data analyzer  104  includes an interface  112 , a data collector  116 , and engines  118 A,  118 B, . . . ,  118   n  (collectively referred to as “engines  118 ”). Interface  112  is a physical communication connection that establishes multiple logical connections with semiconductor equipment  102 , illustrated as ports  114 A,  114 B, . . . ,  114   n  (collectively referred to as “connections  114 ”). Data analyzer  104  also includes a data collector  116 . Data collector  116  receives information from connections  114  and communicates the information to engines  118  based upon the connection  114  from which the information was received. Engines  118  perform a suitable form of data analysis to determine whether a particular component or components of semiconductor equipment  102  are functioning properly. 
     In operation, data analyzer  104  establishes connections with semiconductor equipment  102  by sending setup messages  120 . Each setup message  120  includes a trace identifier and a list of variables that semiconductor equipment  102  is to provide. Semiconductor equipment  102  provides the requested information, corresponding to chambers  106 , using the particular connection  110  established by setup message  120 . The information communicated from semiconductor equipment  102  using a particular connection  110  will be identified with the trace identifier that was sent in setup message  120 . Accordingly, the values associated with each chamber  106  are communicated on the corresponding connection  110 . Data collector  116  receives information from connections  114  and forwards information to the appropriate engine  118 . 
     Drawbacks associated with system  100  include under-utilization of payloads  122  of packets  126 . Since each chamber may require a relatively small number of variables, connections between data analyzer  104  and semiconductor equipment  102  may carry less information that the connection might otherwise support. This leads to less efficient use of network resources. Another drawback is that the communication rate between semiconductor equipment  102  and data analyzer  104  may be variable. The variable rate may grow above the available bandwidth or violate other information constraints. This may introduce delays in communication, which may cause data analyzer  104  to determine that a fault has taken place simply because information has not arrived in sufficient time. These drawbacks may significantly impair the efficiency and accuracy of fault detection system  100 . 
       FIG. 2  illustrates an improved fault detection system  110  in which a data analyzer  204  analyzes semiconductor equipment  202 . As in  FIG. 1 , semiconductor equipment  202  produces data values that are associated with chambers  206 A,  206 B, . . . ,  206   n  (collectively referred to as “chambers  206 ”). This information is collected by data collector  216  which forwards the information to engines  218 A,  218 B, . . . ,  218   n  (collectively referred to as “engines  218 ”). But in contrast to conventional fault detection system  100 , fault detection system  200  uses interfaces  208  and  212  to establish a single connection between semiconductor equipment  202  and data analyzer  204 . The single connection is shown between ports  210  and  214 . Data collector  216  forwards the information to engines  218  based on the order in which information is received from semiconductor equipment  202 , rather than by connection. This allows semiconductor equipment  202  to maintain a more constant flow of information, decreasing the likelihood of partially-empty payloads  226  in packets  222 , which in turn reduces the overall amount of header information  224  required to communicate the requested information between semiconductor equipment  202  and data analyzer  204 . It also exploits the natural rate of data communication of semiconductor equipment  202  to regulate bandwidth use. 
     In operation, data analyzer  204  communicates a setup message  220  to semiconductor equipment  202  using connection  214 . Setup message  220  includes an identifier for the connection and a list of variables to be provided by semiconductor equipment  202 . Semiconductor equipment  202  returns the information in the order provided in the list of setup message  220 . Information is communicated sequentially using connection  210 . Data collector  216  receives the information from the connection, and based on the order specified in setup message  220 , data collector  216  determines the appropriate engine  218  to which a particular piece of information should be forwarded. Thus, data collector  216  permits the use of multiple engines  218 , but also regulates the amount of bandwidth used by semiconductor equipment  202  to communicate information to data analyzer  204  using connection  210 . Advantages of the particular embodiment depicted include improved bandwidth efficiency and improved accuracy resulting from reducing excessive delays in communication of information between semiconductor equipment  202  and data analyzer  204 . 
       FIG. 3  illustrates data analyzer  204  in a particular embodiment. In the depicted embodiment, data analyzer  204  includes interface  212 , a processor  302 , and a memory  304 . Processor  302  represents any component, whether software or hardware, that processes information to perform tasks of data analyzer  204 , such as the tasks performed by data collector  216  and/or engines  218 . Memory  304  represents any suitable form of information storage, which may include magnetic media, optical media, removable media, local storage, remote storage, or any other suitable information storage medium. Although a particular embodiment of data analyzer  204  is illustrated, it should be understood that the particular components illustrated may have their respective functions distributed among several components or consolidated within shared components without significantly disturbing the operation of data analyzer  204 . 
     In the depicted embodiment, memory  304  stores code  306  executed by a processor to perform various tasks of data analyzer  204 . Memory  304  also stores engines  218 , which are particular algorithms or software routines executed by processor  302  to analyze data received from semiconductor equipment  202 . Based on this analysis, it can be determined whether semiconductor equipment  202  is functioning properly. Memory  304  also stores a spatial map  308 . Spatial map  308  represents any suitable table, database, or other arrangement or format of information that associates particular data values with the particular engine  218  processing the data values. Thus, for example, a particular piece of data identified by a number may be associated with a particular engine. When requesting data, data analyzer  204  may format setup request  220  to cause semiconductor equipment  202  to send the data in a specified order. Based on the order in which the information is received, data analyzer  204  may determine based on spatial map  308  the particular engine  218  to which the data value is to be forwarded. 
       FIG. 4  illustrates an example of spatial map  400  that may be maintained by data analyzer  204 . In the depicted embodiment, spatial map  400  lists data values by a location  402  in the order that they will be received by data analyzer  204 . For each location  402 , there is an associated engine  404 . Thus, when data analyzer  204  receives each data value in the sequence, data analyzer  204  may determine the associated engine  404  for that data value. This allows data analyzer  204  to communicate the data value to the associated engine  404 . 
       FIG. 5  is a flow chart  500  illustrating an example method for collecting data from semiconductor equipment. Data analyzer  204  determines a set of data values to be analyzed by engines  218  at step  502 , and assigns each value that correspond to one of the engines  218  to a particular chamber  206  associated with that engine  218  at step  504 . Data analyzer  204  then determines an order in which to receive the values at step  506 . The predetermined order is used to generate setup message  220 , which is communicated to semiconductor equipment  202  at step  508 . Setup message  220  includes a connection identifier and a list of requested variables in the predetermined order. 
     Semiconductor equipment  202  responds to setup message  220  by communicating data values to data analyzer  204 . Data collector  216  receives a data value at step  510 . Based on the order in which a particular data value is received, data collector  216  determines a corresponding engine  218  for the data value at step  512 . Data collector  216  then communicates the data value to the corresponding engine  218  at step  514 . If there are more values received, data collector  216  repeats steps  510  through  514  until all data value are communicated to the respective engines  218 , as shown in decision step  516 . Once the data values are collected, engines  218  may analyze the data to determine if there is fault in semiconductor equipment  202  at step  518 . Alternatively, each individual engine  218  may begin analyzing data once all of the data values required by that engine  218  are collected, whether or not all of the other engines  218  have collected their respective data values. In such an embodiment, engines  218  may be arranged in a particular order, so that, for example, engines  218  that require the more time to process data would receive their respective data values first. 
     The particular method described is only one example of a method for data collection, and data analyzer  204  could potentially employ numerous other methods of data collection. Generally, data analyzer  204  uses any suitable method of data collection that allows data analyzer  204  to distinguish between data values from multiple chambers  206  received over the same connection between semiconductor equipment  202  and data analyzer  204 . For example, an alternative method could include receiving data from semiconductor equipment  202  using multiple connections with each connection associated with multiple chambers. Consequently, it should be understood that data analyzer  204  may use any such method consistent with any of the embodiments described above. 
     Although the present invention has been described with several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes, variations, alterations, transformations, and modifications as fall within the scope of the appended claims.