English:
[0002] Consider the situation wherein, for example, a recipe is being executed in a plasma processing system. Fig. 1 shows a conceptual diagram illustrating how sensors may interact with a process module and how the sensors may utilize the process module for processing and coordination. A simplified processing environment may include a processing chamber 100 connected to a process module 102, which is connected to a plurality of sensors (104, 106, 108, and 110). Usually, data collected by each sensor may be uploaded to process module 102. In an example, data collected by the various sensors may be sent to process module 102 via a network path (e.g., ethernet path 112). Plurality of sensors 104, 106, 108, and 110 may be manufactured by different manufacturing companies. Accordingly, the plurality of sensors may most likely collect data at different time domains and may be unable to communicate with one another.
[0003] In recent years, the trend has been moving toward a feedback type of automated process control. Accordingly, more timely data is being required in order to detect endpoints, perform fault detection, and to perform troubleshooting. As a result, the number of sensors being added to the plasma processing system has increased as more data is needed for processing. Although the increased number of sensors may be able to provide the software controlled process module with more data to perform its task, the increased volume of data that may be exchanged between the sensors and the process module may actually cause a drain on overall processing. In an example, the network path may become congested as the sensors compete with one another to send data to the process module. In another example, since process module 102, whose function is to manage substrate processing, is usually not designed to handle a massive inundation of data coming from a plurality of sensors, process module 102 may experience latency issue that may negatively impact the process module's main function of controlling substrate processing.
[0004] Furthermore, process module 102 may not have the processing capability and/or the memory capacity to handle unlimited number of sensors. In an example, another sensor module needs to be attached to the process module in order to provide additional detail. However, due to the processing power limitation and the memory capacity, process module 102 may not be able to handle another sensor. Accordingly, process module 102 may have to divert its limited resources from managing substrate processing to handling the additional sensor. In addition, latency may become a problem resulting in the process module being unable to handle the additional strain on its resources and may ultimately crash.
[0005] Besides storing the data from the plurality of sensors, process module 102 may also be employed to analyze the data. However, the analysis task may not only divert limited resources from the task of managing substrate processing, but may also require process module 102 to have access to the various different parts of a recipe that may be stored at the individual sensor. Unfortunately, the process module usually does not have access to these different parts of the recipe and may be unable to do a proper analysis of the data received.
[0007] In addition, "bad data" collected by a sensor may also impact the performance of process module 102. In an example, sensor 106 may have been damaged and as a result, have collected 'bad data". When the data is uploaded to process module 102, the data may be utilized by process module 102 thereby negatively affecting substrate processing and may even negatively impact the other sensors.
[0008] In addition to processing the large amount of data that may be uploaded from the various sensors, process module 102 may also be responsible for integrating the data and coordinating the interaction between sensors. Each of the sensors may be unique with different data collection criteria. In an example, sensor 104 may collect data every 50 microseconds, whereas sensor 106 may collect data every 100 microseconds. Due to the differences between the sensors, such as data collection timing difference, the sensors are usually unable to communication with one another and may have to employ the process module to facilitate the exchange. Thus, the process module may be required to have the intelligence to handle these types of request.
[0009] Unfortunately, the process module may not always be able to handle the request, since the process module may not be able to integrate the data from the different sources. In an example, data from sensors 104 and 106 are collected at different time interval. To be able to integrate the data such that sensor 104 may be able to utilize the data collected by sensor 106, process module 102 may need the intelligence to match up the two sets of data. However, process module 102 may not have the processing power to handle such a complex operation. Also, integrating the two sets of data may be virtually impossible given that the data have been collected at different time domains.
[0010] Process module 102 has been originally created to manage substrate processing. Accordingly, process module 102 may not have the memory resource or the processing power to handle the additional task of data storage, data processing, data coordination, and the likes. As a result, the processing and memory capability of process module 102 may be stretched. As the number of sensors attached to process module 102 grows, process module 102 may become a bottleneck as the process module tries to accommodate the demands from the various different sensors while trying to manage the processing chamber. Thus, the process module may begin to experience increased latency, may be unable to react quickly to changing execution environment, and may even experience a total shutdown.
[0012] The above summary relates to only one of the many embodiments of the invention disclosed herein and is not intended to limit the scope of the invention, which is set forth in the claims herein. These and other features of the present invention will be described in more detail below in the detailed description of the invention and in conjunction with the following figures.
[0013] The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
[0014] Fig. 1 shows a conceptual diagram illustrating how sensors may interact with a process module and how the sensors may utilize the process module for processing and coordination.
[0015] Fig. 2 shows, in an embodiment of the invention, a simplified overall architectural design of a recipe-and-component control module (RACCM).
[0016] Fig. 3 shows, in an embodiment of the invention, a simple flow chart illustrating the steps for configuring a sensor.
[0017] Fig. 4 shows, in an embodiment of the invention, a simple flow chart illustrating the steps for an intelligent agent to generate summary data from cache.
[0018] Fig. 5 shows, in an embodiment of the invention, a simplified flow chart illustrating steps for an intelligent agent to generate endpoints and/or fault detection data.
[0019] Fig. 6 shows, in an embodiment of the invention, a simplify flow chart illustrating the steps for a coordinating agent to perform data analysis.
[0020] Fig. 7 shows, in an embodiment of the invention, a simplified flow chart illustrating the steps for distributing the recipe among the different entity of a RACCM via a provisional agent.
[0021] Fig. 8 shows, in an embodiment of the invention, a simple flow chart illustrating the steps for associating a component with an intelligent agent.
[0023] Various embodiments are described hereinbelow, including methods and techniques. It should be kept in mind that the invention might also cover articles of manufacture that includes a computer readable medium on which computer-readable instructions for carrying out embodiments of the inventive technique are stored. The computer readable medium may include, for example, semiconductor, magnetic, opto-magnetic, optical, or other forms of computer readable medium for storing computer readable code. Further, the invention may also cover apparatuses for practicing embodiments of the invention. Such apparatus may include circuits, dedicated and/or programmable, to carry out tasks pertaining to embodiments of the invention. Examples of such apparatus include a general-purpose computer and/or a dedicated computing device when appropriately programmed and may include a combination of a computer/computing device and dedicated/programmable circuits adapted for the various tasks pertaining to embodiments of the invention.
[0026] In this document, various implementations may be discussed using sensors as an example. This invention, however, is not limited to sensors and may include any data- gathering element, such as a metrology tool. Instead, the discussions are meant as examples and the invention is not limited by the examples presented.
[0027] In an embodiment of the invention, the RACCM is a modularized arrangement in which a component may be added, removed, or modified without impacting another component. In the prior art, each time a sensor is updated, the process module may also have to be reconfigured to accommodate the modified sensor. Accordingly, when the process module is being reconfigured, the other sensors, which are also coupled to the process module, may be negatively impacted since the process module may be unable to perform data management for the other sensors. Unlike the prior art, updating a sensor does not negatively impact any of the other components, especially the process module. Instead, the other components may be oblivious of the change that may be occurring.
[0028] In another embodiment of the invention, the RACCM may include a plurality of agents, such as intelligent agents, a coordinating agent, and a provisional agent, that may perform data management and/or recipe management. Thus, the RACCM is able to distribute the workload across multiple agents. Unlike the prior art, in which the process module is performing most if not all of the data management tasks, the distribution of the workload allows data management to be handled quicker and more efficiently. In addition, the RACCM may include a plurality of processors. Thus, even if one agent is experiencing slower processing, the experience of one agent may not impact data processing for the other agents since the agents may be on a different processor.
[0029] In another embodiment of the invention, the RACCM may be a hierarchical architectural arrangement in that the workload may be dispersed based on the level of the agent. In an example, the RACCM may include a plurality of intelligent agents. The intelligent agents may be the lowest level of agents in that the intelligent agents interact directly with the components in configuring the components and receiving data from the components. In comparison, the coordinating agent may be at the highest level. Thus, the coordinating agent may only receive summarized data from the lower level agents in order to perform data analysis. In an embodiment, the analysis the coordinating agent perform may generate a composite signature that may provide instruction to the process module. Note that the number of levels that may exist in a RACCM may depend upon how the RACCM wants to distribute the workload. In an example, another level of agents may exist between the coordinating agent and the intelligent agents to reduce the workload on the intelligent agents.
[0032] In an embodiment of the invention, the RACCM may offload part of the workload to the components. In the prior art, the sensors may not be selective in uploading the data to the process module. Unlike the prior art, the RACCM may send configuration requirements to the components providing the condition under which data may be uploaded. With the configuration requirements, the components may perform pre-processing to determine if the data meet the configuration requirements. Thus, the network is not unnecessarily congested with data that are not needed by the RACCM.
[0034] Fig. 2 shows, in an embodiment of the invention, a simplified overall architectural design of a recipe-and-component control module (RACCM). A RACCM environment 200 may include a plurality of components, such as a process module 202 and a plurality of sensors 204, 206, 208, and 210. Unlike the prior art, the various different sensor are not coupled directly to process module 202. Instead the various different sensors are coupled to a RACCM 212. Hence, data are being sent to RACCM 212 instead of process module 202.
[0035] Additionally, in an embodiment, process module 202 is also coupled to RACCM 212. Unlike the prior art in which the process module may be responsible for collecting, handling, coordinating, and/or processing data, process module 202 in a RACCM environment may behave similarly to a sensor in that process module 202 is also uploading data to RACCM 212. Thus, by removing the process module from the task of data management, the process module may focus on performing its main task of performing process control and may have sufficient bandwidth to respond in a timely and efficient manner to problems that may arise.
[0037] In an embodiment, RACCM 212 may be a computer system, such as a server. RACCM 212 may include one or more processors for performing data management and/or recipe management, in an embodiment. The number of processors may depend upon the implementation of the RACCM. In an embodiment, RACCM 212 may also include memory. The amount of memory may be expanded easily and inexpensively given the storage requirement of the RACCM.
[0038] In an embodiment, RACCM 212 may include intelligence for managing data and performing recipe management. In an example, RACCM 212 may include intelligence for configuring the conditions for accepting incoming data files, processing data, handling data requests, distributing recipes, and the likes. Unlike the prior art in which the intelligence for processing the data collected is handled solely by a process module, the intelligence for processing the data in RACCM 212 may be distributed among the various different agents within RACCM 212. In an embodiment, RACCM 212 may include a plurality of intelligent agents (214, 216, 218, 220, and 222), a coordinating agent 246 and a provisional agent 248. By distributing the intelligence among a plurality of entities, the workload may be distributed, thus enabling a more efficient processing environment. As a result, data traffic congestion and latency may reduce resulting in a more stable environment.
[0039] In an embodiment, RACCM 212 may include plurality of intelligent agents (214, 216, 218, 220, and 222). Each of the intelligent agents may be associated with a component (204, 206, 208, and 210). In an example, an intelligent agent 214 is associated with a sensor 210. In an embodiment, when data is uploaded to RACCM 212, sensor 210 may send data file along paths 224 and 226 to be received by intelligent agent 214. Similarly, process module 202 may also have a corresponding intelligent agent 222, which is configured to receive data sent by process module 202 along paths 224 and 228.
[0044] In another embodiment, an intelligent agent may request for a data file based on a multiplier. In an example, sensor 208 may collect data every 25 microseconds. Thus, for each time period (process control rate of 110 microseconds), sensor 208 may generate at least 4 sets of data files. Intelligent agent 216 may configure sensor 208 to only send data in a multiplier of 2 (e.g., every 55 microseconds). Therefore, sensor 208 may only send two data files, instead of the 4 data files that may have been collected. For example, at every 55 microseconds, sensor 208 may send to intelligent agent 216 the most updated data file that has been generated.
[0045] In yet another embodiment, the intelligent agent may only collect once every time period. In an example, intelligent agent 214 may collect data every 100 microseconds. Any additional data files that may have been collected by sensor 210 may be disregarded by intelligent agent 214. In an embodiment, intelligent agent 214 may be unaware that additional data files may have been generated since intelligent agent 214 is only concerned about receiving a data file at every 100 microseconds. By controlling the time domain, data traffic congestion along the network path may be managed. In addition, by collecting data only when needed, processing power required to process each of the data files received from the components may be minimized. Thus, latency may be significantly reduced and network may become more reliable.
[0046] Besides sending configuration requirements with timing instruction, the intelligent agents may also send configuration requirements to the components with criteria defining the conditions for sending a data file. In an example, intelligent agent 214 may define minimum and maximum range for the parameters that are collected by sensor 210. For example, intelligent agent 214 may direct sensor 210 to only send a new data file if a parameter is outside a specific range. Accordingly, as long as the data being collected for the parameter is within the specific range, no new data file will have to be uploaded to intelligent agent 214.
[0047] By defining the conditions under which a new data file may be uploaded, the intelligent agent is able to minimize data traffic congestion along the network path (e.g., path 224). Also, intelligent agent is also able to reduce overhead cost, such as unnecessary memory usage and processing power usage for storing and processing data, that may provide little or no contribution to overall data analysis.
[0049] In an embodiment, if more than one data file has been received during a time period, only the most recent data file is shared. In an example, sensor 208 had sent two set of data files to intelligent agent 216, data stream a and data stream b, with data stream b being the newest data stream. When coordinating agent 246 requests a data file from intelligent agent 216, intelligent agent 216 may share the most recent data file (data stream b) with coordinating agent 246.
[0059] As shown in Fig. 2, RACCM is a control module that is capable of handling data and recipe management for a processing system. Unlike the prior art, the process module is remove as the centralized module for collecting, handling, and coordinating data. Instead, the process module in the new RACCM environment may behave like one of the sensors in term of data and recipe management. In an embodiment, as more sensors are needed to enable more precise processing of a substrate, the RACCM may be modified relatively easy and inexpensively to have increased memory capacity and increased processing power. Since the RACCM may include a plurality of entities (e.g., intelligent agents, coordinating agent, provisional agent), the workload may be distributed so that a single entity is not unnecessarily burdened with performing all the tasks. By distributing workloads, data traffic congestion and latency that may have existed in the prior art may be significantly reduced providing a more stable network for data sharing and data analysis.
[0061] Fig. 3 shows, in an embodiment of the invention, a simple flow chart illustrating the steps for configuring a sensor.
[0064] At a next step 306, the intelligent agent may communicate the configuration requirements to the corresponding sensor. In an example, intelligent agent 214 may communicate with sensor 210 about the configuration requirements. In an embodiment, the sensor may have the intelligence to apply the configuration requirements to determine when a data file should be sent to the intelligent agent. In an example, configuration requirements may dictate that a data file be sent once every 100 microseconds. However, the sensor may collect data every 50 microseconds. The sensor may apply the configuration requirements and only send data files according to the configuration requirements even thought the sensor may have collected more often. In another example, the sensor may have collected a plurality of data files; however, the sensor may not upload the data files to the intelligent agent since the changes to the parameters may not have matched the configuration requirements.
[0066] Fig. 4 shows, in an embodiment of the invention, a simple flow chart illustrating the steps for an intelligent agent to generate summary data from cache.
[0070] At a next step 406, the intelligent agent may provide the data to the requesting entity. In an example, the intelligent agent may send signature data to the coordinating agent every 125 microseconds. In an embodiment, a data file may not be sent if an update to the data has not occurred. In an example, intelligent agent 214 has not received an updated data file from the sensor since the criteria for a new data file has not been met. Thus, when intelligent agent has to provide the updated signature to coordinating agent 244 at the next request, intelligent agent 214 may not send an updated signature file. In an embodiment, the coordinating agent may include an intelligence that is able to conclude that the lack of an updated signature may indicate that the current signature has not changed.
[0071] Unlike the process module in the prior art, one single agent is not responsible for data management. Instead, by distributing the intelligence for data analysis, data manipulation, and data coordination among a plurality of agents, the workload is distributed among many different entities. Thus, more efficient data management may be achieved through the coordination of multiple agents. In addition, by having the intelligent agents perform data management, the process module may be relieved of the responsibility and may instead focus on the main task of managing the process control.
[0072] Fig. 5 shows, in an embodiment of the invention, a simplified flow chart illustrating steps for an intelligent agent to generate endpoints and/or fault detection data.
[0073] At a first step 502, an intelligent agent may receive data from a sensor. In an example, intelligent agent 214 may receive data files from sensor 210. As aforementioned, the data files being uploaded may be based on the configuration requirements (as discussed in Fig. 3).
[0078] Fig. 6 shows, in an embodiment of the invention, a simplify flow chart illustrating the steps for a coordinating agent to perform data analysis.
[0082] If an action is not required, the coordinating agent may proceed back to step 602 to continue receiving data from the plurality of intelligent agents.
[0083] Since the data being received by the coordinating agent is a summary of the data that has been sent by the sensors, the coordinating agent is not overwhelmed with a large volume of data that the coordinating agent may not need to perform data analysis. Accordingly, the coordinating agent is able to perform data analysis quickly and is able to readily respond to any request and/or potential problem that may be identified. Thus, the coordinating agent is able to offload tasks from the process module, such as coordination and data analysis.
[0084] Fig. 7 shows, in an embodiment of the invention, a simplified flow chart illustrating the steps for distributing the recipe among the different entity of a RACCM via a provisional agent.
[0090] Fig. 8 shows, in an embodiment of the invention, a simple flow chart illustrating the steps for associating a component with an intelligent agent.
[0091] At a first step 802, a component is attached to a processing system. Consider the situation wherein, for example, a new sensor has been attached to a processing system. In an embodiment, a sensor may announce its presence when the sensor is first connected to a RACCM. The presence of the new sensor may be made known to the RACCM by at least three different methods.
[0092] At a next step 804, the method determines whether or not the component notifies the RACCM. In an embodiment, a component may send a reporting data package to the RACCM. In an example, a sensor 210 may send a reporting data package to RACCM 212. The reporting data package may include profile data about the sensor.
[0093] At a next step 808, the RACCM may activate an intelligent agent. Upon receiving the reporting data package, RACCM, 212 may analyze the reporting data package to identify the sensor that wants to commence communication. In an embodiment, RACCM may include a plurality of intelligent agents even though one or more of the plurality of intelligent agents may remain inactive. In an example, a RACCM may include 100 intelligent agents, each of the intelligent agents is inactive until a sensor has been connected to the RACCM.
[0094] In an embodiment, the RACCM may activate an intelligent agent and associate that intelligent agent with the requesting sensor. In an embodiment, the intelligent agent classes may be loaded into RACCM at startup. When a sensor first announces its presence, the RACCM will instantiate an intelligent agent object from the associated intelligent agent class. Once the intelligent agent object is instantiated, the intelligent agent may begin initiating the communication sequence to the targeted sensor.
[0096] At a next step 810, the intelligent agent may send configuration requirements to the component. In an example, once intelligent agent 214 has been activated, intelligent agent may proceed with sending configuration requirements (e.g., time domain, data stream conditions, etc.) to sensor 210. Since the intelligent agent has already been pre-loaded into the RACCM, a sensor may have plug-and-play capability in that the sensor may be activated almost immediately when the sensor connects to the processing system.
[0097] Referring back to step 804, if the component is not capable of automatically announcing its presence to the RACCM, then at a next step 806, a human user may notify the RACCM. In an example, a technician has connected sensor 210 to a processing system.
[0098] At a next step 808, the RACCM may activate an intelligent agent. In an example, the technician may download an intelligent agent that may correspond with the sensor onto RACCM 212 in order to enable RACCM 212 to communicate with sensor 210. In an example, intelligent agent 214 may be downloaded to RACCM 212. In other words, if the component is not capable of automatically announcing its presence to the RACCM, the technician may manually instantiate an intelligent agent object from the associated intelligent agent class. Once the intelligent agent object is instantiated, it will initiate the communication sequence to the targeted sensor.
[0099] Similar to above (step 810), once the intelligent agent 214 has been activated, intelligent agent may proceed with sending configuration requirements (e.g., time domain, data stream conditions, etc.) to sensor 210. Advantageously, by only maintaining active intelligent agents, the memory requirement for the RACCM may be minimized.
[00101] In an embodiment, the RACCM may have a self-discovery feature that may enable the RACCM to periodically check the processing system to determine if a change (e.g., new sensor, change to the processing system, etc.) has occurred. In another embodiment, the self-discovery feature may include an interrupt event that may be employed to notify the RACCM when a change has occurred to the processing system. Once the RACCM has determined that a new sensor has been added to the processing system, the RACCM may establish a communication with the new sensor to profile the sensor.
[00102] At a next step 808, once the profiling has been performed, the RACCM may activate an intelligent agent that may correspond with the new sensor. The intelligent agent may already reside in the RACCM, in an embodiment. In another embodiment, the RACCM may have to download the intelligent agent. With self-discovery, the RACCM has the versatility to handle different types of sensors (e.g., self-reporting sensor, non self-reporting sensor, etc.).
[00103] As can be appreciated from the foregoing, embodiments of the present invention substantially reduces the burden of data management from the process module. By employing a RACCM, an architectural arrangement is created in which the process module seemingly becomes just another component that may benefit from the RACCM's functionality. With the RACCM, latency and data traffic congestion within the network may be significantly decreased as data management is distributed across different agents and components. Further, a more comprehensive data analysis may be performed as data and/or recipe are shared among the agents. By relieving the process module from the time consuming and complicated task of data management, the task of process control and data management is no longer competing with one another for the same resources.
[00105] Also, the title and summary are provided herein for convenience and should not be used to construe the scope of the claims herein. Further, the abstract is written in a highly abbreviated form and is provided herein for convenience and thus should not be employed to construe or limit the overall invention, which is expressed in the claims. If the term "set" is employed herein, such term is intended to have its commonly understood mathematical meaning to cover zero, one, or more than one member. It should also be noted that there are many alternative ways of implementing the methods and apparatuses of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.

中文:
[0002]考虑这种情况,例如,其中等离子体处理系统中正在执行一种配方(recipe)。图1显示了描绘传感器如何与处理模块相互作用以及传感器如何利用该处理模块来处理和协调的示意图。一个简化的处理环境可包括连接到处理模块102的处理室100,该处理模块102连接于多个传感器(104、106、108和110)。通常,由每个传感器收集的数据可以被上传到处理模块102。在一个实施例中,由各种传感器收集的数据可以经由网络路径(例如,以太网路112)发送到处理模块102。多个传感器104、106、108和110可以是由不同的制造企业制造的。相应地,该多个传感器很有可能在不同的时间域收集数据并且彼此不能互相通信。
[0003]近年来的趋势走向一种反馈型的自动工艺控制。相应地,要求更及时的数据以检测端点、进行缺陷检测和进行故障调试。结果,被加到该等离子体处理系统中的传感器的数量增加了,因为需要对更多的数据进行处理。尽管增加传感器的数量也许能够向软件控制的处理模块提供更多数据以执行其任务,然而该传感器和该处理模块之间交换的更多的数据可能事实上导致整个处理上的耗尽。在一个实施例中,该网络路径可能变得拥堵,因为这些传感器互相争着向该处理模块发送数据。在另一个实施例中,因为处理模块102(其功能是管理基片处理)通常不是被设计来处理来自多个传感器的巨量数据流,所以处理模块102可能遭遇延迟(latency)问题,这会对该处理模块控制基片处理的主要功能带来负面影响。
[0004]而且,处理模块102可能没有处理无限个传感器的处理能力和/或存储容量。在一个实施例中,需要将另一个传感器模块附着到该处理模块以提供更多的细节。然而,由于处理的能力和存储容量的限制,处理模块102不能处理另一个传感器。相应地,处理模块102可能必须将它有限的资源从管理基片处理转移到操作额外的传感器上。另外,延迟可能成为问题,导致该处理模块不能处理对其资源的额外的负担而最终崩溃。
[0005]除了存储来自该多个传感器的数据以外,处理模块102还可以被用来分析该数据。然而,分析任务不仅可能将有限的资源从管理基片处理的任务转移走,还可能要求处理模块102可以访问存储于单独的传感器中的配方的各种不同部分。不幸的是,该处理模块通常不能访问该配方的这些不同部分,而且不能对接收的数据做出恰当的分析。
[0007]另外,由传感器收集的“不良数据”也可能影响处理模块102的性能。在一个实施例中,传感器106已经被损害,因而收集到了“不良数据”。当该数据被上传到处理模块102的时候,处理模块102可能会利用该数据,由此对基片处理带来负面影响甚至对其它传感器带来负面影响。
[0008]除了处理由各种传感器上传的大量数据之外,处理模块102还可能负责整合这些数据并协调各传感器的相互作用。每一个传感器可能是独特的,具有不同的数据收集标准。在一个实施例中,传感器104每50微秒收集资料而传感器106每100微秒收集资料。由于各传感器间的差异,比如数据收集时机的差异,各传感器通常不能够彼此通信而必须使用该处理模块来帮助交换。因此,要求该处理模块具有处理这些类型的要求的智能。
[0009]不幸的是,该处理模块可能不是总能满足该要求,因为该处理模块可能不能整合来自不同来源的数据。在一个实施例中,从传感器104和106收集的数据是以不同的时间间隔收集的。为了能整合该数据以便传感器104能够利用由传感器106收集的数据,处理模块102可能需要智能以匹配两组数据。然而,处理模块102可能没有进行这种复杂运算的处理能力。而且,如果该数据是在不同的时间域收集的话,整合这两组数据实际上是不可能的。
[0010]处理模块102原本是为了管理基片处理而创建的。相应地,处理模块102可能没有处理数据存储、数据处理、数据协调等其它任务的存储资源或处理能力。因而,处理模块102的处理和存储能力可能被拉伸。随着连接于处理模块102的传感器的数量的增长,当该处理模块试图满足来自各不同传感器的需要并尽量管理该处理室时,处理模块102可能成为瓶颈。因此,该处理模块可能开始经历更长的延迟,不能够迅速地做出反应以改变执行环境,甚至可能经历总关机。
[0012]上述发明内容只涉及此处所揭露的本发明的许多实施方式中的一个,而非意在限制本发明的范围,本发明的范围在权利要求中进行阐明。下面,在本发明的具体实施方式部分,并结合附图,对本发明的这些和其它特性做出更加详细的说明。
[0013]本发明是以附图各图中的实施例的方式进行描绘的,而不是通过限制的方式,其中类似的参考标号指示类似的元件,其中:
[0014]图1显示了描绘传感器如何与处理模块相互作用以及该传感器如何利用该处理模块来处理和协调的示意图。
[0015]图2显示了,在本发明的一个实施方式中,配方和元件控制模块(RACCM)的简化的整体结构设计。
[0016]图3显示了,在本发明的一个实施方式中,描绘配置一个传感器的各步骤的简单流程图。
[0017]图4显示了,在本发明的一个实施方式中,描绘智能代理(intelligent agent)从缓存中产生摘要数据的各步骤的简单流程图。
[0018]图5显示了,在本发明的一个实施方式中,描绘智能代理产生端点和/或缺陷检测数据的各步骤的简化流程图。
[0019]图6显示了,在本发明的一个实施方式中,描绘协调代理(coordinating agent)进行数据分析的各步骤的简化流程图。
[0020]图7显示了,在本发明的一个实施方式中,描绘经由临时代理(provisional agent)将配方在RACCM的不同实体间进行分配的简化流程图。
[0021]图8显示了,在本发明的一个实施方式中,描绘用智能代理关联元件的各步骤的简单流程图。
[0023]下面描述了各种实施方式,包括方法和技术。应当记住,本发明还涵盖包括计算机可读介质的制造品,在该计算机可读介质存储有用于执行本发明技术实施方式的计算机可读指令。计算机可读介质可包括,例如,半导体的、磁的、光磁的、光学的或其它的形式的用于存储计算机可读代码的计算机可读介质。而且,本发明还涵盖用于实现本发明的实施方式的装置。这样的装置可包括用以执行与本发明的实施方式有关的任务的专用的或可编程的电路。这样的装置的例子包括恰当编程过的通用计算机和/或专用计算装置,也可包括适于执行与本发明的实施方式有关的计算机/计算装置和专用的/可编程的电路的结合。
[0026]在本文中,使用传感器作为实例来讨论各种实现。然而,本发明不限于传感器,而可包括任何数据采集元件,比如度量工具。相反,这些讨论意在作为本发明的实例,而本发明并不限于所介绍的这些实例。
[0027]在本发明的一个实施方式中,该RACCM是一种模块化布置,其中可以添加、移除或修改一个元件而不影响另一个元件。在现有技术中,每次传感器更新的时候,该处理模块必须被重新配置以适应修改过的传感器。相应地,当重新配置该处理模块时,可能给也耦合于该处理模块的其它传感器带来负面影响,因为该处理模块可能不能对其它传感器进行数据管理。与现有技术不同,更新一个传感器不会对其它元件中的任一个,尤其是该处理模块带来负面影响。相反,其它元件可以无视可能发生的变化。
[0028]在本发明的另一个实施方式中,该RACCM可以包括多个代理,比如智能代理、协调代理和临时代理,其可执行数据管理和/或配方管理。因此,该RACCM能够在多个代理中分配工作量。与现有技术中该处理模块执行如果不是全部至少是大部分数据管理任务不同,工作量的分配使得数据管理能够被更快和更有效的处理。另外,该RACCM可包括多个处理器。因此,即使一个代理经历了变慢的处理,一个代理的经历不会影响对其它代理的数据处理,因为这些代理可以在不同的处理器上。
[0029]在本发明的另一个实施方式中,该RACCM可以是分层结构布置,其中工作量可以根据该代理的等级来分配。在一个实施例中,该RACCM可包括多个智能代理。该智能代理可以是最低等级的代理,因为该智能代理直接与各元件相互作用,配置各元件并从各元件接收数据。比较起来,该协调代理可以在最高等级。因此,该协调代理可以只从较低等级的代理接收摘要化数据以进行数据分析。在一个实施方式中,该协调代理进行的分析可以生成组合识别标志(signature),其可对该处理模块提供指令。注意,RACCM中存在的等级的数量可依赖于该RACCM想要如何分配工作量。在一个实施例中,该协调代理和该智能代理之间可以存在另一个等级的代理以减少该智能代理的工作量。
[0032]在本发明的一个实施方式中,该RACCM可将部分工作量卸载到该元件。在现有技术中,传感器在向该处理模块上传该数据方面没有选择性。与现有技术不同,该RACCM可以将配置要求发送给各元件,提供上传数据的条件。有了该配置要求,该元件可以进行预处理以确定该数据是否满足该配置要求。因此,该网络不会被该RACCM不需要的数据不必要地阻塞。
[0034]图2显示了在本发明的一个实施方式中,配方和元件控制模块(RACCM)的简化的整体结构设计。RACCM环境200可包括多个元件,比如处理模块202和多个传感器204、206、208和210。与现有技术不同,各种不同的传感器不直接耦合于处理模块202。相反,各种不同的传感器耦合于RACCM 212。因此,数据被发送到RACCM 212而不是处理模块202。
[0035]另外,在一个实施方式中,处理模块202也耦合于RACCM212。与现有技术中处理模块负责收集、加工、协调和/或处理数据不同,RACCM环境中的处理模块202可以以类似传感器的方式运转,处理模块202也将数据上传到RACCM 212。因此,通过从数据管理任务中除去该处理模块,该处理模块可以专注于执行它进行工艺控制的主要任务,并有足够的带宽以及时而高效的方式对可能出现的问题做出响应。
[0037]在一个实施方式中,RACCM 212可以是计算机系统,比如服务器。在一个实施方式中,RACCM 212可包括用于进行数据管理和/或配方管理的一个或多个处理器。处理器的数量取决于该RACCM的具体实现。在一个实施方式中,RACCM 212还可以包括存储器。存储器的数量可以根据该RACCM的存储需求方便而便宜地扩展。
[0038]在一个实施方式中,RACCM 212可包括用于管理数据和进行配方管理的智能(intelligence)。在一个实施例中,RACCM 212可包括用于配置接收输入数据文件的条件、处理数据、处置数据请求、分配配方等的智能。与现有技术中用于处理收集的数据的智能是由处理模块单独处置不同,RACCM 212中用于处理该数据的智能可以在RACCM 212中的各不同代理间分配。在一个实施方式中,RACCM 212可包括多个智能代理(214、216、218、220和222)、协调代理246和临时代理248。通过将该智能分配于多个实体中,可以将工作量分配开,因此能够获得更高效的处理环境。所以,数据传输拥堵和延迟可以减少,带来更稳定的环境。
[0039]在一个实施方式中,RACCM 212可包括多个智能代理(214、216、218、220和222)。每个智能代理关联于一个元件(204、206、208和210)。在一个实施例中,智能代理214关联于传感器210。在一个实施方式中,当将数据上传到RACCM 212时,传感器210可以沿着路径224和226发送数据文件以由智能代理214接收。类似地,处理模块202也可以有对应的智能代理222,该智能代理222被配置为接收由处理模块202沿路径224和228发送的数据。
[0044]在另一个实施方式中,智能代理可以要求基于乘法器(multiplier)的数据文件。在一个实施例中,传感器208可以每25微秒收集一次数据。因此,对每一个时间周期(110微秒的工艺控制速率),传感器208可以产生至少4组数据文件。智能代理216可配置传感器208为只在2的乘法器中发送数据(例如每55微秒)。因此,传感器208可以只发送两个数据文件,而不收集到的4个数据文件。例如,在每55微秒时,传感器208可以向智能代理216发送所产生的最近更新的数据文件。
[0045]在又一个实施方式中,该智能代理可以每个时间周期只收集一次。在一个实施例中,智能代理214可以每100微秒收集一次数据。由传感器210收集的任何其它数据文件可以被智能代理214忽略。在一个实施方式中,智能代理214可以不管所产生的其它数据文件,因为智能代理214只关心每100微秒接收一次数据文件。通过控制该时间域,可以管理沿该网络路径的数据传输拥塞。另外,通过只在必要时收集数据,可以最小化处理从各元件接收的每一个数据文件所需的处理能力。因此,可以显著减少延迟而网络变得更加可靠。
[0046]除了发送具有时机指令的配置要求之外,该智能代理还可以向该元件发送具有限定发送数据文件的条件的标准的配置要求。在一个实施例中,智能代理214可以限定由传感器210收集的参数的最小和最大范围。例如,智能代理214可以指导传感器210只在参数在特定范围之外的情况下,发送新的数据文件。相应地,只要收集到该参数的数据在特定范围内,不需要将新的数据文件上传到智能代理214。
[0047]通过限定可以上传新的数据文件的条件,该智能代理能最小化沿该网络路径(例如路径224)的数据通信拥塞。而且,智能代理还能够减少总开销(overhead)成本,比如用于存储和处理数据的不必要的存储器的使用和处理能力的使用,其对整个数据分析只有很小的贡献或者没有贡献。
[0049]在一个实施方式中,如果在一个时间周期内接收了超过一个数据文件,只共享最新的数据文件。在一个实施例中,传感器208向智能代理216发送了两组数据文件,数据流a和数据流b,其中数据流b是最新的数据流。当协调代理246要求来自智能代理216的数据文件时,智能代理216可以与协调代理246共享该最新的数据文件(数据流b)。
[0059]如图2所示,RACCM是能够对处理系统进行数据处置和配方管理的控制模块。与现有技术不同,不将该处理模块作为收集、处置和协调数据的集中模块。相反,新RACCM环境中的处理模块在数据和配方管理方面像其中一个传感器一样运转。在一个实施方式中,当需要更多的传感器来使得基片的处理更精确时,可以相对容易和便宜地将该RACCM修改为具有更大的存储容量和更强的处理能力。因为该RACCM可以包括多个实体(例如智能代理、协调代理、临时代理),可以分配工作量以便单一实体不会不必要地承担完成所有这些任务的重担。通过分配工作量,可以显著减少现有技术中存在的数据通信拥塞和延迟,提供更加稳定的网络以进行数据共享和数据分析。
[0061]图3显示了,在本发明的一个实施方式中,描绘配置一个传感器的各步骤的简单流程图。
[0064]在下一个步骤306中,该智能代理可以将该配置要求传送到相应的传感器。在一个实施例中,智能代理214可与传感器210关于该配置要求进行通信。在一个实施方式中,该传感器具有应用该配置要求以确定应该在何时将数据文件发送到该智能代理的智能。在一个实施例中,配置要求可以要求每100微秒发送一次数据文件。然而,该传感器可以每50微秒收集一次数据。该传感器可以应用该配置要求而只依照该配置要求发送数据文件,即使该传感器更频繁地收集数据。在另一个实施例中,该传感器已经收集了多个数据文件;然而,该传感器可能不上传该数据文件到该智能代理,因为参数的变化可能不匹配该配置要求。
[0066]图4显示了,在本发明的一个实施方式中,描绘智能代理从缓存中产生摘要数据的各步骤的简单流程图。
[0070]在下一个步骤406中,该智能代理可以向发出请求的实体提供该数据。在一个实施例中,该智能代理可以每125微秒向该协调代理发送一次识别标志数据。在一个实施方式中,如果没有出现对该数据的更新的话,就不发送数据文件。在一个实施例中,智能代理214没有从该传感器接收到更新过的数据文件,因为没有满足新的数据文件的标准。因此,当智能代理必须在下次请求时向协调代理244提供更新过的识别标志时,智能代理214可能不会发送更新过的识别标志文件。在一个实施方式中,该协调代理可包括能够推断出缺乏更新过的识别标志表明当前的识别标志没有改变的智能。
[0071]与现有技术中的处理模块不同,不是由单一的代理负责数据管理。相反,通过在多个代理间分配数据分析、数据操作和数据协调的智能,将该工作量在许多不同实体间分配。因此,可以通过多个代理的协调实现更高效的数据管理。另外,因为有进行数据管理的智能代理,该处理模块可以减轻职责转而专注于管理工艺控制的主要任务。
[0072]图5显示,在本发明的一个实施方式中,描绘智能代理产生端点和/或缺陷检测数据的各步骤的简化流程图。
[0073]在第一个步骤502中,智能代理从传感器接收数据。在一个实施例中,智能代理214可以从传感器210接收数据文件。如上所述,被上传的数据文件是基于该配置要求的(如图3中所讨论的)。
[0078]图6显示了,在本发明的一个实施方式中,描绘协调代理(coordinating agent)进行数据分析的各步骤的简化流程图。
[0082]如果没有要求执行一个动作,该协调代理可以退回步骤602以继续接收来自该多个智能代理的数据。
[0083]因为该协调代理接收的数据是由该传感器发送的数据的摘要,该协调代理不会被大量不需要由该协调代理进行数据分析的数据淹没。相应地,该协调代理能够快速地进行数据分析并能够方便地对任何请求和/或识别出的潜在问题做出响应。因此,该协调代理能够从该处理模块卸下一些任务,比如协调和数据分析。
[0084]图7显示了,在本发明的一个实施方式中,描绘经由临时代理将配方在RACCM的不同实体间分配的简化流程图。
[0090]图8显示了,在本发明的一个实施方式中,描绘用智能代理关联元件的各步骤的简单流程图。
[0091]在第一个步骤802中,元件附装于处理系统。考虑这种情况,例如,其中一个新的传感器被附装于处理系统。在一个实施方式中,当该传感器第一次连接到RACCM时,它会宣布它的存在。可以通过至少三个不同的方法使该RACCM得知该新的传感器的存在。
[0092]在下一个步骤804中,该方法决定该元件是否通知该RACCM。在一个实施方式中,元件可以向该RACCM发送报告数据包。在一个实施例中,传感器210可以向RACCM 212发送报告数据包。该报告数据包可包括关于该传感器的资料数据。
[0093]在下一个步骤808中,该RACCM可激活一个智能代理。一旦接收到该报告数据包之后,RACCM 212可分析该报告数据包以识别出想要开始通信的传感器。在一个实施方式中,RACCM可包括多个智能代理,即便该多个智能代理中的一个或多个可以保持不活动(inactive)。在一个实施例中,RACCM可包括100个智能代理,每一个智能代理都是不活动的,直到一个传感器被连接到该RACCM。
[0094]在一个实施方式中,该RACCM可以激活一个智能代理并将那个智能代理与发出请求的传感器关联。在一个实施方式中,可以在启动时将该智能代理类装载入RACCM。当一个传感器第一次宣布它的存在时,该RACCM会从该关联的智能代理类实例化一个智能代理对象。一旦该智能代理对象被实例化,该智能代理可以初始化到该目标传感器的通信序列。
[0096]在下一个步骤810中,该智能代理可以向该元件发送配置要求。在一个实施例中,一旦智能代理214激活之后,智能代理可以进行向传感器210发送配置要求(例如时间域、数据流条件等)。因为该智能代理已经被预装载入该RACCM,传感器就具有即插即用能力,当该传感器连接到该处理系统时,该传感器可以几乎立即被激活。
[0097]回头参考步骤804,如果该元件不能够向该RACCM自动宣布它的存在,那么在下一个步骤806中,人类用户可以通知该RACCM。在一个实施例中,技术人员将传感器210连接到处理系统。
[0098]在下一个步骤808中,该RACCM可以激活一个智能代理。在一个实施例中,该技术人员可以将可与该传感器通信的智能代理下载到RACCM 212上以使得RACCM 212能够与传感器210通信。在一个实施例中,智能代理214可以被下载到RACCM 212。换句话说,如果该元件不能够自动向该RACCM宣布它的存在的话,技术人员可以手动从相关的智能代理类实例化一个智能代理对象。一旦该智能代理对象实例化后,它会初始化到目标传感器的通信序列。
[0099]与上面类似(步骤810),一旦该智能代理214激活之后,智能代理可以进行向传感器210发送配置要求(例如,时间域、数据流条件等)。有利地,通过只维持活动的智能代理,可以将该RACCM的存储要求最小化。
[00101]在一个实施方式中,该RACCM可具有自我发现特性,其可使得该RACCM能够定期检查该处理系统以确定是否发生了变化(例如,新的传感器、对该处理系统的改变等)。在另一个实施方式中,该自我发现特性可包括中断事件,当出现对该处理系统的改变时利用中断事件通知该RACCM。一旦该RACCM确定新的传感器已经被添加到该处理系统,该RACCM可以与该新的传感器建立通信以取得该传感器的资料(profile the sensor)。
[00102]在下一个步骤808中,一旦进行完取得资料(profiling)之后,该RACCM可以激活一个智能代理,其可以与该新的传感器通信。在一个实施方式中,该智能代理可以已经存在于该RACCM中。在另一个实施方式中,该RACCM必须下载该智能代理。有了自我发现,该RACCM就有了处置不同类型传感器(例如自我报告传感器、非自我报告传感器等)的通用性。
[00103]从上文可以看出,本发明的实施方式大体上减少了该处理模块的数据管理的重担。通过使用RACCM,创建了一种结构布置,其中该处理模块看起来仅仅成为另一个元件,其可以受益于该RACCM的功能。有了该RACCM,网络中的延迟和数据通信拥塞被显著减少,因为数据管理在不同代理与元件间进行了分配。而且,可以进行更全面的数据分析,因为数据和/或配方在各代理间是共享的。通过将该处理模块从耗时而复杂的数据管理任务中解放出来,工艺控制和数据管理的任务不再为了相同的资源而彼此竞争。
[00105]而且,此处提供的名称和发明内容是为了方便,不应当被用于解释此权利要求的范围。而且,发明内容是以高度简略的形式写成的,在这里提供是为了方便,因此不应被用于解释或限制整个发明,该发明用权利要求来表述。如果此处使用了术语“组”,这种术语意在具有其通常理解的数学含义,涵盖零、一或一个以上成员。应当注意,有许多实现本发明的方法和装置的替代方式。因此,所附权利要求的范围意在被解读为包括所有这些落入本发明的真实精神和范围的变更、置换和等同。