1. A computerized decision tree training system, comprising:
a distributed control processing unit configured to receive input of training data for training a decision tree, the training data including multiple data units, each data unit further including at least one example datum having an associated class label;
a plurality of data batch processing units, each data batch processing unit being configured to receive a respective data batch representing a subset of the data units in the training data from the distributed control processing unit, and to evaluate each of a plurality of split functions of the decision tree for the respective data batch, to thereby compute a partial histogram for each split function and each datum in the data batch; and
a plurality of node batch processing units, for each of a subset of frontier tree nodes of the decision tree in a respective tree node batch, each node batch processing unit being configured to receive and aggregate the associated partial histograms for each split function to form an aggregated histogram for each split function at each of the frontier tree nodes of the subset, wherein each of the node batch processing units is configured to determine a selected split function for each frontier tree node in the respective subset by computing the split function that produces highest information gain for the frontier tree node;
wherein the distributed control processing unit is further configured to reclassify each of the frontier tree nodes as a split node including a respective one of the selected split functions, to expand the decision tree to include new frontier tree nodes branching from the split nodes, and to output the decision tree for installation on a downstream computing device.
2. The system of claim 1,
wherein the distributed control processing unit is configured to store in a mass storage device the received training data, to partition the training data into the plurality of data batches, and to distribute each data batch to a respective data batch processing unit, for computation of the partial histograms of the split functions for each data batch by each respective data batch processing unit.
3. The system of claim 1,
wherein the distributed control processing unit is configured to assign each of the plurality of node batch processing units a respective subset of the frontier tree nodes;
wherein, each of the plurality of data batch processing units is configured to select a subset of data from the respective data batch, the selected subset of data including each datum that is classified by the decision tree to be at a corresponding frontier tree node; and
wherein each of the plurality of data batch processing units is configured to transmit the partial histogram for the selected subset of data to the node batch processing unit associated the corresponding frontier tree node, for the node batch processing units to aggregate the associated partial histograms for each split function to form the aggregated histogram.
4. The system of claim 1,
wherein the aggregated histogram for each split function at the frontier tree node batch is computed on the respective node batch processing unit.
5. The system of claim 1,
wherein each data unit contains at least one image or image region, each image or image region includes at least one datum which is a pixel, and wherein evaluating a split function includes computing a pixel characteristic for the pixel;
wherein each pixel has pixel data including color, intensity, and depth, the depth being determined by a depth camera;
wherein the pixel characteristic is computed based on the pixel data for a target pixel and other pixels in a vicinity of the pixel.
6. The system of claim 5,
wherein training data includes images of bodies, and at least some of the pixels in the training data have been classified as being associated with respective classes in a body model, the classes representing corresponding body locations; and
wherein the output decision tree is configured to classify the pixels of a target image into one of a plurality of classes, each class associated with one of the frontier tree nodes, at least some of the classes representing corresponding body locations on the body model.
7. The system of claim 5,
wherein the output decision tree is outputted to a game console for use in processing images in a real time data stream.
8. A computerized decision tree training method, comprising:
receiving input of training data for training a decision tree, the training data including multiple data units, each data unit further including at least one example datum having an associated class label;
for each datum in each data unit in each of a plurality of data batches of the data units, evaluating each of a plurality of split functions of the decision tree on a respective data batch processing unit for each data batch, to thereby compute a partial histogram for each split function and each datum in the data batch;
for each of a subset of frontier tree nodes of the decision tree in a respective tree node batch, receiving and aggregating the associated partial histograms for each split function to form an aggregated histogram for each split function at the frontier tree node, at a respective node batch processing unit;
determining a selected split function for each frontier tree node by computing the split function that produces highest information gain;
reclassifying each of the frontier tree nodes as a split node including a respective one of the selected split functions;
expanding the decision tree to include new frontier tree nodes branching from the split nodes; and
outputting the decision tree for installation on a downstream computing device.
9. The method of claim 8, wherein prior to evaluating the split functions, the method further comprises:
partitioning the training data into the plurality of data batches; and
distributing each data batch to the respective data batch processing unit, for computation of the partial histograms for each of the plurality of split functions by each data batch processing unit.
10. The method of claim 8, wherein prior to aggregating, the method further comprises:
assigning each of the plurality of node batch processing units a respective subset of the frontier tree nodes;
on each of the plurality of data batch processing units, selecting a subset of data from the respective data batch, the selected subset of data including each datum that is classified by the decision tree to be at a corresponding frontier tree node; and
transmitting from the plurality of data batch processing units, the partial histogram for the selected subset of data to the node batch processing unit associated the corresponding frontier tree node, for the node batch processing units to aggregate the associated partial histograms for each split function to form an aggregated histogram.
11. The method of claim 8, wherein the aggregated histogram for each split function at the frontier tree node batch is processed on the respective node batch processing unit.
12. The method of claim 8, wherein the decision tree is expanded according to a hybrid breadth firstdepth first algorithm, including a breadth first training phase and a depth first training phase.
13. The method of claim 8, further comprising:
in a split function batch phase, partitioning split functions for the decision tree into a plurality of split function batches;
distributing each split function batch to a respective split function batch processing unit;
distributing all data units in the training data to each of the plurality of split function batch processing units;
evaluating each split function of each batch on its respective split function batch processing unit for each datum in the training data, to thereby compute a histogram for each split function; and
selecting a split function with a histogram that produces maximum information gain.
14. The method of claim 8, wherein the decision tree is expanded in according to a hybrid breadth firstsplit function algorithm, including a breadth first phase and a split function phase.
15. The method of claim 8, wherein each data unit contains at least one image or image region, each image or image region includes at least one datum which is a pixel, and wherein evaluating a split function includes computing a pixel characteristic for the pixel.
16. The method of claim 15, wherein each pixel has pixel data including one or more of color, intensity, and depth, the depth being determined by a depth camera.
17. The method of claim 15, wherein the pixel characteristic is computed based on the pixel data for a target pixel and other pixels in a vicinity of the pixel.
18. The method of claim 15, wherein the output decision tree is configured to classify the pixel into one of a plurality of classes, each class associated with one of the frontier tree nodes, the classes representing corresponding body locations on a body model.
19. The method of claim 18, wherein an output decision tree is outputted to a game console for use in processing images in a real time data stream.
20. A computerized decision tree training method, comprising:
receiving input of training data, the training data including multiple data units, each data unit including at least one image or image region, each data unit further including at least one example datum having an associated class label;
initializing a decision tree, the decision tree being having a plurality of associated split functions and classes, and being comprised of a root node and one or more split nodes and frontier tree nodes;
partitioning the training data into a plurality of data batches, each data batch including a respective subset of data units;
distributing each data batch to a respective data batch processing unit;
for each datum in each data unit in each data batch, evaluating each of the split functions on the respective data batch processing unit for the data batch, to thereby compute a partial histogram for each split function and each datum in the data batch;
partitioning the frontier tree nodes into a plurality of frontier tree node batches;
distributing each frontier tree node batch to a respective node batch processing unit;
distributing the partial histograms for a selected subset of data from each data unit in each data batch on each of the respective data batch processing units to a corresponding node batch processing unit, wherein the selected subset is selected by selecting each datum that is classified by the decision tree to be at a frontier tree node that corresponds to the node batch processing unit;
on each node batch processing unit, for each frontier tree node in the respective tree node batch, aggregate the associated partial histograms for each split function to form an aggregated histogram for each split function at the frontier tree node;
determining a selected split function for each frontier tree node by computing the split function that produces maximum information gain;
reclassifying each of the frontier tree nodes as split nodes including each of the respective optimal split functions;
expanding the decision tree to include new frontier tree nodes branching from the split nodes; and
outputting the decision tree for installation on a downstream computing device.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method of monitoring a single-wafer processing system comprising:
positioning a wafer on a wafer holder in a single-wafer processing chamber, wherein a reduced pressure is established in the single-wafer processing chamber;
performing a single-wafer process;
monitoring the single-wafer process using a set of nonlinear differential equations {dot over (x)}1 and an output equation y1, wherein
{dot over (x)}1=\u0192(x1, p1, u1)
y1=g(x1, p1, u1)
and x1, p1, and u1 are single-wafer process parameters in which the first vector x1 comprises a first state vector for the single-wafer process, the first vector p1 comprises one or more modeling parameters for the single-wafer process, the vector u1 comprises one or more inputs applied to the single-wafer process;
calculating a dynamic estimation error for the single-wafer process;
comparing the dynamic estimation error to an operational limit established by one or more BIST rules in a BIST table for the single-wafer process;
continuing the single-wafer process when the dynamic estimation error is within the operational limit; and
comparing the dynamic estimation error to a warning limit established for the single-wafer process when the dynamic estimation error is not within the operational limit, and either sending a warning message identifying a potential problem with the single-wafer process andor single-wafer processing system and continuing the single-wafer process when the dynamic estimation error is within the warning limit, wherein the warning message is determined by the BIST rule currently being used, or
sending a fault message identifying a known problem with the single-wafer process andor single-wafer processing system and stopping the single-wafer process when the dynamic estimation error is not within the warning limit established for the single-wafer process, wherein the fault message is determined by the BIST rule currently being used.
2. The method of claim 1, further comprising:
determining a process model for the single-wafer process that relates a rate of change for at least one parameter of a first set of single-wafer process parameters to a second set of single-wafer process parameters as andor after a first parameter in the second set is changed from a first value to a second value, wherein the second set does not include the at least one parameter of the first set;
determining a measured rate of change for the at least one parameter of the first set, wherein the measured rate of change is determined as andor after the first parameter in the second set is changed from the first value to the second value;
executing an inverse process model for the single-wafer process that relates the measured rate of change to a value for a second parameter in the second set of single-wafer process parameters to obtain a predicted value for the second parameter; and
calculating the dynamic estimation error for the single-wafer process using a difference between the predicted value for the second parameter and an expected value for the second parameter, wherein the expected value for the second parameter is determined using the BIST rule.
3. The method of claim 2, wherein the at least one parameter of the first set includes wafer temperature Tw and a wafer temperature change rate {dot over (T)}w is modeled as:
{dot over (T)}w=\u01921(p1, p2, . . . , pn, z)
and a steady-state condition is modeled as:
Tw=g1(p1, p2, . . . , pn, z)
where p1-pn are each single-wafer process parameters for the single-wafer process other than wafer temperature, wherein a temperature control system is coupled to a wafer holder in the single-wafer processing chamber, z comprises a temperature control system parameter, and Tw is the wafer temperature measured in degrees Celsius.
4. The method of claim 3, wherein the temperature control system includes a heating element, and the temperature control system parameter comprises a power level provided to the heating element.
5. The method of claim 3, wherein the temperature control system includes a flow control element for a backside gas, and the temperature control system parameter comprises a valve position in the flow control element.
6. The method of claim 3, wherein the temperature control system is coupled to the single-wafer processing chamber.
7. The method of claim 2, wherein the at least one parameter of the first set includes chamber temperature and a chamber temperature change rate {dot over (T)}c is modeled as:
{dot over (T)}c=\u01922(p1, p2, . . . , pn, h)
and a steady-state condition is modeled as:
Tc=g2(p1, p2, . . . , pn, h)
where p1-pn are each single-wafer process parameters for the single-wafer process other than chamber temperature, wherein a temperature control system is coupled to the single-wafer processing chamber, h comprises a temperature control system parameter, and Tc is the thermal processing chamber temperature measured in degrees Celsius.
8. The method of claim 7, wherein the temperature control system includes a heating element, and the temperature control system parameter comprises a power level measured in watts provided to the heating element.
9. The method of claim 3, wherein the temperature control system is coupled to a wafer holder in the single-wafer processing chamber.
10. The method of claim 2, wherein the at least one parameter of the first set includes chamber pressure and a chamber pressure change rate {dot over (P)}c is modeled as:
{dot over (P)}c=\u01923(p1, p2, . . . , pn, v)
and a steady-state condition is modeled as:
Pcg3(p1, p2, . . . , pn, v)
where p1-pn are each single-wafer process parameters for the single-wafer process other than chamber pressure, wherein a pressure control system is coupled to the single-wafer processing chamber, V comprises a pressure control system parameter, and Pc is the chamber pressure measured in mTorr.
11. The method of claim 10, wherein the pressure control system includes a gate valve, and the pressure control system parameter V comprises a gate valve opening measured in percent.
12. The method of claim 10, wherein the pressure control system includes a pump, and the pressure control system parameter V comprises a pumping rate measured in milliliterssecond.
13. The method of claim 2, wherein the at least one parameter of the first set includes a reactant concentration R for a reactant species and a reactant concentration change rate {dot over (R)} is modeled as:
{dot over (R)}=\u01924(p1, p2, . . . , pn, r)
and a steady-state condition is modeled as:
R=g4(p1, p2, . . . , pn, r)
where p1-pn are each single-wafer process parameters for the single-wafer process other than reactant concentration, wherein a gas supply system is coupled to the single-wafer processing chamber, r comprises a gas supply system parameter, and R represents a reactant concentration in percent.
14. The method of claim 13, wherein the gas supply system includes a MFC, and the gas supply system parameter r comprises a flow rate for the MFC.
15. The method of claim 2, wherein a pressure control system is coupled to the single-wafer processing chamber, the at least one parameter of a first set comprises chamber pressure and the first parameter in the second set comprises a pressure control system parameter, the second set includes a flow rate for a process gas but does not include the chamber pressure, the inverse process model relates the measured rate of change for the chamber pressure to the flow rate for the process gas to obtain a predicted value for the flow rate for a process gas, and the expected value for the flow rate for a process gas is determined using the BIST rule for the single-wafer process
16. The method of claim 2, further comprising:
flowing a backside gas between the wafer holder and the wafer; and
executing an inverse process model for the single-wafer process that relates a measured rate of change for the wafer temperature to a flow rate for the backside gas to obtain a predicted value for the flow rate for the backside gas.
17. The method of claim 2, further comprising:
flowing a backside gas between the wafer holder and the wafer; and
executing an inverse process model for the single-wafer process that relates a measured rate of change for the wafer temperature to a wafer holder temperature to obtain a predicted value for the wafer holder temperature.
18. The method of claim 1, wherein the single-wafer processing system comprises a monolayer deposition system, a thermal processing system, an etching system, a deposition system, a plating system, a polishing system, an implant system, a developing system, or a transfer system, or a combination of two or more thereof.
19. The method of claim 1, wherein the single-wafer process comprises a thermal process, an etching process, a deposition process, a plating process, a polishing process, an implant process, a developing process, or a transfer process, or a combination of two or more thereof.
20. The method of claim 1, further comprising:
changing the first parameter in the second set of single-wafer process parameters using a series of steps; and
determining the process model using the series of steps.
21. The method of claim 1, further comprising:
establishing a plurality of measurement zones for the wafer; and
determining the process model using the plurality of measurement zones.
22. The method of claim 1, further comprising:
establishing a plurality of zones in the single-wafer processing chamber; and
determining the process model using the plurality of zones in the single-wafer processing chamber.
23. The method of claim 1, further comprising:
creating a wafer curvature model when the wafer is a curved wafer; and
determining the process model using the wafer curvature model.
24. The method of claim 1, further comprising:
determining if a new BIST rule for the single-wafer process can be created; and
sending a fault message and stopping the single-wafer process when a new BIST rule cannot be created.
25. The method of claim 24, further comprising:
creating a new BIST rule for the single-wafer process when a new BIST rule is required, the new BIST rule having a new operational limit and new tolerance values and being based on one or more dynamic estimation errors determined for the wafer during the single-wafer process;
entering the new BIST rule with the new operational limit and the new tolerance values into a BIST table; and
continuing the single-wafer process.
26. The method of claim 1, wherein the single-wafer process comprises a precursor deposition process or a purging process.
27. The method of claim 1, wherein a virtual sensor is used for determining the measured rate of change.
28. A computer-readable medium comprising computer-executable instructions for:
positioning a wafer on a wafer holder in a single-wafer processing chamber, wherein a reduced pressure is established in the single-wafer processing chamber;
performing a single-wafer process;
monitoring the single-wafer process using a set of nonlinear differential equations {dot over (x)}1 and an output equation y1, wherein
{dot over (x)}1=\u0192(x1, p1, u1)
y1=g(x1, p1, u1)
and the first vector x1 comprises a first state vector for the single-wafer process, the first vector p1 comprises one or more modeling parameters for the single-wafer process, the vector u1 comprises one or more inputs applied to the single-wafer process;
calculating a dynamic estimation error for the single-wafer process;
comparing the dynamic estimation error to an operational limit established by one or more BIST rules in a BIST table for the single-wafer process;
continuing the single-wafer process when the dynamic estimation error is within at least one operational limit; and
comparing the dynamic estimation error to a warning limit established for the single-wafer process when the dynamic estimation error is not within the operational limit, and either sending a warning message identifying a potential problem with the single-wafer process andor single-wafer processing system and continuing the single-wafer process when the dynamic estimation error is within the warning limit, wherein the warning message is determined by the BIST rule currently being used, or
sending a fault message identifying a known problem with the single-wafer process andor single-wafer processing system and stopping the single-wafer process when the dynamic estimation error is not within the warning limit, wherein the fault message is determined by the BIST rule currently being used.
29. A method of operating a controller in a processing system, the method comprising the steps of:
instructing the single-wafer processing system to position a wafer on a wafer holder in a single-wafer processing chamber, wherein a reduced pressure is established in the single-wafer processing chamber;
instructing the single-wafer processing system to perform a single-wafer process;
instructing the single-wafer processing system to monitor the single-wafer process using a set of nonlinear differential equations {dot over (x)}1 and an output equation y1, wherein
{dot over (x)}1=\u0192(x1, p1, u1)
y1=g(x1, p1, u1)
and the first vector x1 comprises a first state vector for the single-wafer process, the first vector p1 comprises one or more modeling parameters for the single-wafer process, the vector u1 comprises one or more inputs applied to the single-wafer process;
instructing the single-wafer processing system to calculate a dynamic estimation error for the single-wafer process;
instructing the single-wafer processing system to compare the dynamic estimation error to an operational limit established by one or more BIST rules in a BIST table for the single-wafer process;
instructing the single-wafer processing system to continue the single-wafer process when the dynamic estimation error is within the operational limit; and
instructing the single-wafer processing system to compare the dynamic estimation error to a warning limit established for the single-wafer process when the dynamic estimation error is not within the operational limit, and either
instructing the single-wafer processing system to send a warning message identifying a potential problem with the single-wafer process andor single-wafer processing system and to continue the single-wafer process when the dynamic estimation error is within the warning limit, wherein the warning message is determined by the BIST rule currently being used, or
instructing the single-wafer processing system to send a fault message identifying a known problem with the single-wafer process andor single-wafer processing system and to stop the single-wafer process when the dynamic estimation error is not within the warning limit, wherein the fault message is determined by the BIST rule currently being used.
30. A method of monitoring a single-wafer processing system comprising:
performing a single-wafer process, wherein a wafer is positioned on a wafer holder in a single-wafer processing chamber, and a reduced pressure is established in the wafer processing chamber;
calculating a dynamic estimation error for the single-wafer process;
comparing the dynamic estimation error to limits established by a pre-existing BIST rule in a BIST table for the single-wafer process;
continuing the single-wafer process when the dynamic estimation error is within the limits established by the pre-existing BIST rule; and
when the dynamic estimation error is not within the limits established by the pre-existing BIST rule, either
selecting another pre-existing BIST rule and repeating the comparing step when another pre-existing BIST rule for the single-wafer process is available in the BIST table, or
sending a fault message and determining if a new process model, a new BIST rule, a new process recipe, or a maintenance procedure, or a combination thereof, is required when another pre-existing BIST rule for the single-wafer process is not available in the BIST table.
31. The method of claim 30, further comprising:
creating a new BIST rule for the single-wafer process when a new BIST rule is required, the new BIST rule having new limits, new tolerance values, and new messages and being based on at least one of the pre-existing BIST rules;
entering the new BIST rule with the new limits and the new tolerance values into a BIST table; and
continuing to process wafers.
32. The method of claim 30, further comprising:
establishing a new process recipe for the single-wafer process when a new process recipe is required, the new process recipe having a new process parameters and a new BIST rule associated therewith;
entering the new BIST rule and new process recipe into the BIST table when the new BIST rule is not in the BIST table; and
continuing to process wafers using the new process recipe.
33. The method of claim 30, further comprising:
stopping the single-wafer process when a new BIST rule cannot be created, a new process recipe cannot be established, or a maintenance procedure is required.