Prediction wafer scheduling for multi-chamber semiconductor device
Predictive modeling with machine learning and simulation optimizes resource scheduling in manufacturing tools, addressing wait time variations and resource conflicts to enhance semiconductor wafer production efficiency and quality.
Patent Information
- Application Number
- JP2024157693
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-05-22
- Filing Date
- 2024-09-11
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2041-05-21
AI Technical Summary
Manufacturing processes face challenges in resource scheduling that lead to reduced tool throughput and product quality due to variations in wait times and resource contention, affecting the consistency and efficiency of semiconductor wafer production.
A predictive modeling approach using machine learning and computer simulation is employed to optimize resource scheduling in manufacturing tools, determining chamber layouts and task durations, and adjusting start times to minimize wait times and resource conflicts.
This method enhances the consistency of manufactured products, increases tool throughput, and improves resource utilization by reducing variations in product wait times and optimizing scheduling in semiconductor wafer production.
Smart Images

Figure 2025003982000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to predictive modeling, and more particularly, to simulation-based optimization techniques for scheduling manufacturing resources. [Background technology]
[0002] Manufacturing involves the production of products using multiple steps, which may include human labor, machines, or a combination thereof. Manufacturing steps may be associated with a setting that determines when, where, and how those steps are performed, resulting in the product being manufactured. Process engineers typically schedule the manufacturing resources used to perform the manufacturing steps, and the schedule may be based on the engineer's industry experience and past experimentation. Summary of the Invention
[0003] The following presents a simplified summary of the disclosure in order to provide a basic understanding of some aspects of the disclosure. This summary is not an extensive overview of the disclosure. It is not intended to identify key or critical elements of the disclosure, nor is it intended to delineate any scope of particular implementations of the disclosure or any scope of the claims. It is merely intended to present some concepts of the disclosure in a simplified form as a prelude to the more detailed description presented below.
[0004] In one aspect of the disclosure, a method includes determining, by a processing device, resources of a manufacturing tool, the resources including a first chamber and a second chamber; accessing task data indicative of a first manufacturing task and a second manufacturing task; determining a duration for performing the first manufacturing task using the first chamber and a duration for performing the second manufacturing task using the second chamber; updating a machine learning model based on the duration for performing the first manufacturing task and the duration for performing the second manufacturing task; performing, by the processing device, a set of computer simulations using the machine learning model and the task data to create a set of simulation results; and storing, by the processing device, one simulation result of the set of simulation results in a data store.
[0005] In another aspect of the disclosure, a system includes a memory and a processing device coupled to the memory that determines resources of a manufacturing tool including a first chamber and a second chamber, accesses task data indicative of a first manufacturing task and a second manufacturing task, determines a duration for performing the first manufacturing task using the first chamber and a duration for performing the second manufacturing task using the second chamber, updates a machine learning model based on the duration for performing the first manufacturing task and the duration for performing the second manufacturing task, performs a set of computer simulations using the machine learning model and the task data to generate a set of simulation results, and stores one simulation result of the set of simulation results in a data store.
[0006] In one aspect of the disclosure, a non-transitory machine-readable storage medium stores instructions that, when executed, cause a processing device to perform operations including accessing a machine learning model to predict processing of a set of wafers; performing a first computer simulation using a set of start times for the set of wafers; detecting that at least one wafer in the set is in a wait state for a duration that exceeds a predefined threshold; modifying the set of start times to include a different start time for the at least one wafer; and performing a second computer simulation using the modified set of start times.
[0007] The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a block diagram illustrating an example system architecture in accordance with certain embodiments. [Diagram 2] FIG. 1 illustrates an example computing device in accordance with certain embodiments. [Diagram 3] FIG. 1 is a flow diagram illustrating an example method for performing simulation-based optimization of a manufacturing process, in accordance with certain embodiments. [Figure 4] FIG. 1 is a block diagram illustrating a computer system in accordance with certain embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Manufacturing processes continue to grow in complexity and often involve many steps performed to create a manufactured product. A task may be performed by a single tool or by one or more tools. Each task may require one or more resources of the tool to complete the task, and resource contention may occur when a set of products are attempting to use the same resource. To address this contention, the tool may schedule one or more of the products to occupy the resource and may cause the remaining products to queue until the resource is available. Queueing the products may reduce the throughput of the tool and in some circumstances may reduce the quality of the product. For example, a manufactured product may be the result of many tasks, and variability in the amount of time a product is in a queue between tasks may result in variability in the finished product. This may occur because variability between tasks may alter the properties of the product. Changes in heat, moisture, texture, or other properties may adversely affect current or upcoming tasks and may reduce the quality of the finished product.
[0010] Aspects of the present disclosure address the above and other shortcomings by providing techniques that use machine learning and computer simulation to optimize resource scheduling for a manufacturing process. In one example, the techniques may be embedded within a manufacturing tool that can perform multiple tasks on a series of products, either sequentially or in parallel. The products may be semiconductor wafers, and the manufacturing tool may have multiple chambers that can each perform a task on one of the semiconductor wafers. In one example, the techniques may involve a computing device that determines the resources of the manufacturing tool, which may include the layout and capabilities of a set of chambers that can each hold one or more products (e.g., wafers). The techniques may access task data that indicates a sequence of manufacturing tasks that the manufacturing tool can perform on one or more products. Each task may be associated with a recipe for performing the task and may use a specific chamber of the manufacturing tool.
[0011] The technique may track how long it takes a manufacturing tool to perform different manufacturing tasks using different resources. For example, different resources may have different product capacities, load times, workaround times, cleaning times, or a combination of the foregoing. The technique may train a machine learning model to model the temporal aspects of the manufacturing tool based on the tracked times. The technique may then use the machine learning model and the task data to perform a set of computer simulations that create a set of simulation results. Each of the simulation results may be a schedule for the manufacturing tool indicating the order in which the resources perform tasks on the set of products. The technique may then calculate an optimization value based on the simulation results and select one of the simulation results based on the optimization value. The optimization value may be specific to one or more sets of tasks and may be based on product wait times (e.g., wafer wait times between tasks), resource utilization (e.g., chamber wait times), tool throughput, other performance criteria, or a combination of the foregoing.
[0012] The systems and methods described herein include techniques for improving one or more manufacturing tools used in a manufacturing process. In particular, aspects of the present disclosure can improve the quality of manufactured goods by reducing the variability in product waiting times during the manufacturing process. This can increase the consistency of manufactured goods. The techniques can also increase the utilization and / or throughput of a manufacturing tool, or of specific resources of a manufacturing tool.
[0013] Various aspects of the above-referenced techniques are described in detail herein below, by way of example and not by way of limitation. The examples provided below discuss a computing device communicatively coupled to a manufacturing tool. In other examples, the computing device may not be communicatively coupled to the manufacturing tool and may access data associated with the manufacturing tool from a data store and may generate data that can later be used by a user or device to configure the manufacturing tool.
[0014] FIG. 1 is a block diagram illustrating an example system architecture 100, according to certain embodiments. The system architecture 100 may be used to optimize a manufacturing process that may provide or produce one or more products 101. The products 101 may be for use or sale and may be tangible or intangible objects, goods, services, other products, or combinations of the above. Tangible products may be touched by humans and may include physical products, goods, elements, or other objects (e.g., etched wafers, semiconductor devices, microchips, or other electronic devices). Intangible products may be perceived directly or indirectly by humans without touching and may include circuit designs, device layouts, manufacturing recipes, tool configurations, computer programs, services, other intangible elements, or combinations of the above. In the example shown in FIG. 1, the system architecture 100 may include a manufacturing tool 110 and one or more computing devices 120A-Z.
[0015] The manufacturing tool 110 may be any tool that contributes to the manufacturing process that produces the product 101. The tool may be a machine, a computing device, a computer program, other device, or a combination of the above. The manufacturing tool 110 may be computer software (e.g., program code) and computer hardware (e.g., integrated circuits) and may be used in semiconductor device fabrication. Semiconductor device fabrication may involve the manufacture of semiconductor devices and integrated circuits (ICs). The manufacturing tool 110 may perform a multi-step sequence that may include photolithography and chemical processing steps (such as surface passivation, thermal oxidation, planar diffusion, and junction isolation) during which electronic circuits are gradually created on a product made of semiconductor material (e.g., silicon wafers). The manufacturing tool 110 may use one or more resources 115A-Z to process the product 101.
[0016] Resources 115A-Z may be different parts of manufacturing tool 110, and each may be the same or similar to a division, region, section, area, part, or other part of manufacturing tool 110. In one example, resources 115A-Z may each be a chamber for performing one or more tasks on product 101. The chamber may hold one or more products and may be the same or similar to an enclosure, compartment, container, opening, vessel, receptacle, storage unit, housing, or combinations of the foregoing. Resources 115A-Z may include one or more different types of resources that can be used to process the product. Processing the product may involve performing an action involving the product and may include one or more operations of loading the product, transporting the product, modifying the product, other operations, or combinations of the foregoing.
[0017] In the example shown in FIG. 1, resources 115A-C may be configured to move products into or within manufacturing tool 110. Resource 115A may be an external transfer resource including ports and robotic components that load one or more products 101 into manufacturing tool 110 from a transfer device that is external to manufacturing tool 110. The transfer device may transfer a set of one or more products to, from, or between manufacturing tools. The transfer device may be a pod having an enclosure that securely stores a set of one or more products and may be the same or similar to a Front Opening Unified Pod (FOUP). Resources 115B-C may be internal transfer resources that can store products and transfer products within manufacturing tool 110. The transfer resources may transfer products into the resource, out of the resource, between resources, or a combination of the above. The internal and external transfer resources may be chambers with electromechanical actuators (e.g., robots) that can move wafers into and out of different chambers and may be referred to as robot chambers. Resources 115R-Z may be portions of manufacturing tool 110 that can modify product 101 given tasks 122A-Z. Each resource may be configured to perform a particular task (e.g., task 122A) or a set of tasks (e.g., tasks 122B-C).
[0018] Tasks 122A-Z may correspond to manufacturing steps performed by manufacturing tool 110 to produce product 101. In one example, tasks 122A-Z may be semiconductor fabrication tasks and may include wafer cleaning (e.g., wet cleaning), photolithography, ion implantation, etching (e.g., wet etching, dry etching, atomic layer etching), plasma ashing, thermal processing (e.g., annealing, thermal oxidation), deposition (e.g., chemical vapor deposition (CVD), atomic layer deposition (ALD), physical vapor deposition (PVD)), molecular beam epitaxy (MBE), polishing (e.g., chemical mechanical polishing), metrology (e.g., wafer or die metrology), testing (e.g., wafer or IC testing), backgrinding, dicing, bonding, encapsulation, other tasks, or combinations of the foregoing. Tasks 122A-Z may be associated with task data 122.
[0019] Task data 122 may identify tasks and the sequence in which the tasks may be performed to produce product 101. Task data 122 may be referred to as sequence data, sequence programs, recipes, or other terms. Task data 122 may be provided to an entity that manufactures the product by an entity that designs the product, which may be part of the same or different business entities. The entity that designs the product may indicate a start task, one or more intermediate tasks, and an end task. One or more of the tasks may be performed serially or in parallel on a particular product or on a set of different products (e.g., different wafers in a pod).
[0020] Task data 122 may include input data, output data, or combinations of the foregoing for one or more of tasks 122A-Z. Input data for a task may include any data that defines one or more inputs for a manufacturing step. For example, input data may indicate one or more attributes of input products, configurations, settings, or other data. Input data may be the same as or similar to parameter data, setting data, configuration data, other data, or combinations of the foregoing. Input data may include one or more values (e.g., parameter values, setting values, configuration values) that indicate how a manufacturing process is performed. In one example, input data may include one or more values corresponding to time (e.g., deposition time, etch time, oxidation time, implant time, cleaning time), energy (e.g., temperature, current, voltage, electromagnetic frequency), input rate (e.g., gas flow rate, wafer spin speed), distance (e.g., space between substrate and tool, feature width, height, depth), pressure (e.g., Pascal, bar), input substance (e.g., precursor, reactant, diluent), other attributes or properties, or combinations of the foregoing.
[0021] The output data may be any data describing an expected output of a manufacturing step. The output data may describe one or more attributes of the product 101, by-products, other outputs, or combinations of the foregoing. The output data may include values indicative of actual attributes before, during, or after a step is performed. The attributes may correspond to one or more measurements of the product 101. The measurements may relate to dimensions (e.g., length, width, height, depth, thickness, radius, diameter, area, volume, size), material properties (e.g., reflectance, emissivity, absorptivity, conductivity, density, texture), uniformity (e.g., film thickness uniformity), location (e.g., relative or absolute position), other attributes, or combinations of the foregoing. In one example, the output data may describe attributes of the product 101 in the form of N-point metrology, where N indicates the number of reference measurements for the product (e.g., 49-point metrology). The N-point metrology may provide critical dimensions (e.g., transistor or via dimensions) for one or more electronic components of a semiconductor product.
[0022] Computing devices 120A-Z may include one or more computing devices associated with manufacturing tool 110. Computing devices 120A-Z may include embedded systems, servers, workstations, personal computers, laptop computers, tablet computers, mobile phones, palm-sized computing devices, personal digital assistants (PDAs), etc. Computing devices 120A-Z may include computing devices implementing x86 hardware (e.g., Intel® or AMD®), PowerPC®, SPARC®, or other hardware.
[0023] One or more of the computing devices 120A-Z may function as a manufacturing control device, a sensor device, a user device, other devices, or a combination of the foregoing. A manufacturing control device (e.g., a controller) may control a portion of the manufacturing tool 110 and may access, generate, or transmit input data, output data, or a combination of the foregoing. A sensor device (e.g., a sensor) may be capable of sensing an aspect of the manufacturing tool 110 or an aspect of the product 101 and may involve a measurement component capable of measuring an attribute of the manufacturing tool 110 or the product 101. In one example, the sensor device may include an image capture module or an audio capture module. A user device may be the same as or similar to a client device and may provide a user interface to a user (e.g., a process engineer). The user interface may present (e.g., display and / or announce) information to the user and may include one or more control elements that collect user input. One or more of the computing devices 120A-Z may execute a computer simulation 124 using a machine learning model 126.
[0024] The machine learning model 126 may mathematically model the duration that the manufacturing tool 110 spends performing a task. In one example, the machine learning model 126 may be a single machine learning model that models the manufacturing tool 110. In another example, the machine learning model 126 may include a set of machine learning models, where each model in the set may model one or more resources. In any example, each machine learning model may be the same as or similar to a mathematical model, a statistical model, a neural network, other mathematical representation, or a combination of the foregoing. The machine learning model 126 may include mathematical data that represents a relationship between model inputs (e.g., tasks and / or resources) and model outputs (e.g., durations). The mathematical data may include one or more matrices, exponents, value pairs, vectors, functions, equations, expressions, operators, operands, coefficients, variables, weights, biases, links, other data, or combinations of the foregoing.
[0025] In one example, the machine learning model 126 may be a data structure including one or more matrices that represent mathematical relationships. Each matrix may include one or more dimensions and may correlate a particular manufacturing task and / or resource with one or more durations. The matrix may include a single dimension (e.g., a list), two dimensions (e.g., a table), or three or more dimensions (e.g., a 3D table). Each element of the matrix may correspond to a duration, and the position of the element in the matrix may indicate the corresponding task and / or resource. For example, a first axis (e.g., a row) may correspond to a resource, a second axis (e.g., a column) may correspond to a task, and the intersection of the points on each axis may identify an element (e.g., a duration). The element may include one or more values based on the duration it took the manufacturing tool to perform the task using the resource. The one or more values may be based on historical values, maximum values, minimum values, average values, cumulative values, other numerical or statistical values, or combinations of the above.
[0026] In another example, machine learning model 126 may be a data structure that includes one or more mathematical functions that represent mathematical relationships. The mathematical functions may include variables corresponding to resources and variables corresponding to tasks, and an output of the mathematical functions may correspond to duration. In either example, machine learning models 121A-Z may be artifacts of a machine learning process that analyzes training data and creates models that represent patterns and inferences drawn from the training data.
[0027] The training data may include time series data based on historical or experimental runs of the manufacturing tool 110. In one example, the machine learning model 126 may include one or more regression models that analyze the task data 122 and derive one or more durations. In another example, the machine learning model 126 may include one or more neural networks, which may include multiple layers, trained using deep learning techniques. The neural network may be referred to as a network, an artificial neural network (ANN), a network, a model, or other terminology. The neural network may be the same as or similar to a recurrent neural network (RNN), a feedforward neural network (FFNN), a multi-layer perceptron neural network (MLP), a fully connected neural network, a radial basis function neural network (RBF), a modular neural network, a Kohonen self-organizing neural network, a convolutional neural network (CNN), other networks, or combinations of the foregoing. In any example, the machine learning model 126 may be used to perform the computer simulation 124.
[0028] Computer simulations 124 may represent a computer simulation engine that runs a set of computer simulations to identify an optimized schedule. Each computer simulation 124 may involve predicting future values for manufacturing tools 110 using machine learning models 126 based on previously observed values of one or more manufacturing tools. Predicting future values may be referred to as time series forecasting and may involve time series analysis. In one example, each computer simulation may involve simulating manufacturing tools 110 to identify a production schedule.
[0029] The manufacturing schedule may be based on a set of start times for a set of products, and the computer simulation may iterate through the tasks for each product to populate the manufacturing schedule. A first task iteration may determine when a first product is processed by each of the resources. A second task iteration may determine when a second product is processed by each of the resources. The second iteration may account for resource contention and may delay processing of the second product until a resource has finished processing the first product. The manufacturing tool 110 may include multiple resources capable of performing the same task, and the second iteration may indicate that the second product is processed by a schedule with one of the other resources. Iterations may be performed for each product until all products are scheduled for processing. An initial computer simulation may have the products start at the same time, which may cause the products to have different waiting times (e.g., wafer waiting times between tasks) within the manufacturing tool. Subsequent computer simulations may use different start times to cause subsequent products to wait to be loaded by the manufacturing tool, but have little or no wait time once the manufacturing tool begins processing the subsequent products. The subsequent computer simulations may identify a manufacturing schedule that reduces resource contention and product wait time. The computer simulation 124 may output the manufacturing schedule in the form of simulation result data 128.
[0030] The simulation results data 128 may include one or more simulation results 128A-C, each of which may be the output of a computer simulation and may represent one or more manufacturing schedules. The manufacturing schedule may be represented as a set of one or more timelines organized by resources (e.g., a resource schedule), by products (e.g., a product schedule), by tasks (e.g., a task schedule), other factors, or combinations of the foregoing. In one example, the simulation results may be organized by resources, and each timeline may correspond to a respective resource (e.g., a respective chamber) and may include time blocks indicating when the resource processes each of the products (e.g., all wafers modified by a particular chamber). In another example, the simulation results may be organized by products, and each timeline may correspond to a respective product (e.g., a respective wafer) and may include time blocks indicating when and where the product was processed (e.g., all chambers that processed a particular wafer). In either example, the manufacturing schedule may be represented as a series of time values and may be analyzed via optimization 127 to identify optimization results 129, as described in more detail below in connection with FIG. 2.
[0031] FIG. 2 illustrates a block diagram of an example computing device 120 including a technique for performing simulation-based optimization for a manufacturing tool according to one or more aspects of the present disclosure. The computing device 120 may be the same as or similar to one or more of the computing devices 120A-Z of FIG. 1. The components and modules discussed herein may be implemented on a single computing device or on multiple different computing devices. In an implementation, one or more of the components may reside on different computing devices (e.g., model training on a first computing device and computer simulation on another computing device). Without loss of generality, more or fewer components or modules may be included. For example, two or more of the components may be combined into a single component, or features of a component may be split into two or more components. In the example illustrated in FIG. 2, the computing device 120 may include a tool analysis component 210, a model creation component 220, and a computer simulation component 230.
[0032] The tool analysis component 210 may enable the computing device 120 to analyze a manufacturing tool to determine resources and capabilities of the manufacturing tool. The analysis may occur before the manufacturing tool is delivered to a customer or after the manufacturing tool is delivered to a customer, and in any example, may occur before, during, or after initialization of the manufacturing tool. The initialization may be the same as or similar to hardware initialization (e.g., system startup, BIOS), software initialization (e.g., operating system (OS) boot, program startup), other initialization, or a combination of the foregoing. In one example, the tool analysis component 210 may include a resource determination module 212, a task data module 214, and a time tracking module 216.
[0033] The resource determination module 212 may determine the resources and resource capabilities of a manufacturing tool by accessing one or more data storage objects, by communicating with one or more resources, or by a combination of the foregoing. As described above, a resource may include one or more ranges, sections, or chambers of a tool that can be used to process a manufactured item (e.g., move or modify a wafer). A data storage object may store data indicative of one or more of the resources of one or more manufacturing tools, where the data may be referred to as resource data or tool data. A data storage object may include one or more file objects (e.g., files, directories), database objects (e.g., records, tuples, value pairs), binary large objects (BLOBs), other data structures, or combinations of the foregoing. The resource determination module 212 may additionally or instead determine the resources by communicating with one or more of the resources. The communication may be the same as or similar to scanning or querying each of the resources and may involve sending a request and receiving a response with data indicative of the resources of the manufacturing tool. The resource determination module 212 may store data in a data store 240 , as represented by resource data 242 .
[0034] The resource data 242 may include identification data, layout data, capability data, other data, or a combination of the foregoing. The identification data may enable the computing device 120 to uniquely identify the resource and may include one or more identifiers of the resource (e.g., a resource identifier, a universally unique identifier (UUID), a globally unique identifier (GUID)). The layout data may indicate the location of the resource relative to a tool or relative to another resource. The layout data may enable the resource determination module 212 to determine the layout of a manufacturing tool. The layout may indicate the location (e.g., relative position) of the resource relative to one or more other resources or to a tool. The location of the resource may be used to determine the time it takes to move products between resources. The capability data may indicate the capabilities of the resource, which may include the type of resource (e.g., modification chamber, transfer chamber) and one or more tasks the resource can perform.
[0035] The task data module 214 may access task data that identifies tasks for manufacturing a product. The task data may identify steps and the order of steps that a manufacturing tool performs on the product. The task data module 214 may enable the computing device 120 to receive the task data via user input, a data storage object, or a combination of the above. In one example, the task data may be a sequence program stored in a central data store that is accessible over a network (e.g., a recipe repository, a sequence repository). The task data module 214 may receive (e.g., download) the task data and store it in the data store 240 as task data 122. In one example, the task data 122 may include a sequence of recipes for processing wafers, and each recipe may correspond to a respective chamber of a manufacturing tool.
[0036] The time tracking module 216 may enable the computing device 120 to determine how long it takes the manufacturing tool to perform different tasks. The tasks may be any processing task and may involve modifying a resource (e.g., pre-cleaning or post-cleaning a resource), modifying a product (e.g., photolithography, etching), moving a product (e.g., loading into a tool or transporting in or out of a resource), or a combination of the above. In one example, the time tracking module 216 may be used to monitor a manufacturing tool during the processing of one or more products. In another example, a manufacturing tool may record (e.g., log) a duration during the processing of one or more products, and the time tracking module 216 may access the recorded times. In either example, the time tracking module 216 may modify, aggregate, filter, or supplement the durations before, during, or after they are stored in the data store 240 as time data 244.
[0037] The time data 244 may indicate a duration that a manufacturing tool consumes to perform a task. The time data 244 may include entries (e.g., log entries) that indicate one or more of a time (e.g., a start time, an end time, and / or a duration), a resource (e.g., loading chamber A, alteration chamber Z), a product (e.g., a wafer identifier, a pod identifier), a task (e.g., a sequence identifier, a recipe identifier), a tool (e.g., a manufacturing tool 110), other data, or a combination of the foregoing. In one example, the time data 244 may be generated while multiple wafers are processed by a particular manufacturing tool and may indicate multiple wafer load times, first chamber processing times, second chamber processing times, and transfer times between chambers.
[0038] The model creation component 220 may train the machine learning model 126 to model the manufacturing tool using the temporal data 244. In one example, the model creation component 220 may include a data access module 222 and a training module 224.
[0039] The data access module 222 may access data associated with a manufacturing tool and that can be used to train a machine learning model. The data may be referred to as training data and may include or be derived from any data in the data store 240, such as time data 244, resource data 242, task data 122, other data, or a combination of the foregoing. The data access module 222 may access the training data directly or indirectly from the manufacturing tool. Accessing the training data directly from the manufacturing tool may involve accessing the training data from a communication channel or data store of the manufacturing tool. Accessing the training data indirectly from the manufacturing tool may involve accessing the training data from a data store separate from the manufacturing tool (e.g., from a log server). The data access module 222 may perform one or more processing operations on the accessed data before using it as training data. Processing may be referred to as pre-processing or post-processing and may involve one or more of correlation, normalization, addition, removal, aggregation, filtering, sanitization, anonymization, or other operations.
[0040] The training data may include or be based on historical data, simulation data, augmented data, other data, or combinations of the foregoing. The historical data may be derived from one or more physical runs of the manufacturing process, where the physical runs may be for commercial, test, experimental, research and development, other applications, or combinations of the foregoing. The augmented data may be based on historical data that is manipulated to include variability that may or may not be present in the data being manipulated. The variability may modify the data using one or more mathematical transformations (e.g., reducing or increasing durations based on recipe modifications).
[0041] The training data may include labeled data, unlabeled data, or a combination of the above. Labeled data may include primary data (e.g., duration) supplemented with auxiliary data (e.g., resource or product labels). The auxiliary data may be tags, annotations, links, labels, or other data. Unlabeled data may be data that is unlabeled (e.g., missing a label, no label, no label). Unlabeled data may be stored without a label and may or may not remain unlabeled before being accessed by the training module 224.
[0042] The training module 224 may enable the computing device 120 to analyze the training data and create one or more machine learning models 126. The training module 224 may create a new machine learning model or update an existing machine learning model. Training a machine learning model may involve using one or more training techniques that are proprietary, standardized, open source, or a combination of the above. In one example, the training module 224 may analyze the training data and identify one or more durations for each combination of resources and tasks. For example, the training module 224 may identify the duration (e.g., average duration, maximum duration, recent duration) that a resource consumes to perform each applicable task. In another example, the training module 224 may provide the training data to a training framework that creates the machine learning model 126. In one example, the training framework may be the same as or similar to Tensorflow™, Keras™, PyTorch™, Open Neural network Exchange (Onnx™), Cognitive Toolkit (CNTK), Azure Machine Learning Service, Create ML, other machine learning frameworks, or a combination of the foregoing.
[0043] The training module 224 may store the results of the training as the machine learning model 126 in the data store 240. The machine learning model 126 may be stored as one or more file objects (e.g., files, directories, links), database objects (e.g., records, tuples), other storage objects, or a combination of the above. The data store 240 may be a memory (e.g., random access memory), a drive (e.g., hard drive, flash drive), a database system, or another type of component or data storage device capable of storing data. The data store 240 may include multiple storage components (e.g., multiple drives or multiple databases) that may span multiple computing devices (e.g., multiple server computers). The machine learning model 126 may be transmitted to one or more other data stores or computing devices and made accessible to the computer simulation component 230.
[0044] The computer simulation component 230 may enable the computing device 120 to perform a set of computer simulations that use the machine learning model 126 and the task data 122 to create a set of simulation results. Each simulation result may include a schedule for resources used to process the product and may indicate the time each resource processes one or more products. The schedule may be used for future runs of the manufacturing tool or for a current run of the manufacturing tool. For example, input from the current run (e.g., delays for resource X) may be used to update the model and simulate the remaining tasks to identify a revised schedule. The revised schedule may then be used by the manufacturing tool to modify the execution of subsequent tasks. This revision to the schedule may be made in real time with little or no delay in the manufacturing process (e.g., without having to stop or restart the manufacturing tool). In the example of FIG. 2, the computer simulation component 230 may include an initiation module 232, an execution module 234, an optimization module 236, and a results provision module 238.
[0045] The initiation module 232 may use the simulation inputs to initiate one or more of the computer simulations. The simulation inputs may include the machine learning model 126 and the model inputs. The model inputs may be based on the task data 122, the resource data 242, the product quantity data, the user input data, other data, or a combination of the foregoing. The model inputs may be in the form of one or more input vectors that identify tasks and / or resources corresponding to the products. Each product of the set may be associated with the same product vector or different product vectors. The model inputs may also include a set of start times that indicate when the manufacturing tool will begin processing one or more of the products. The machine learning model 126 may be accessed from a local storage device, a remote storage device, or a combination of the foregoing. In one example, the initiation module 232 may receive the machine learning model 126 from a local storage location (e.g., the data store 240), which may occur when the computing device 120 creates the machine learning model or when the machine learning model is created by another computing device and installed, packaged, downloaded, uploaded, or transmitted to the computing device 120. In another example, the initiation module 232 may access the machine learning model 126 through the computer network 130 from a server on the same network or on a different network (e.g., the Internet), which may enable a customer to receive the machine learning model 126 or updates to the model from a third party (e.g., a manufacturing tool creator or distributor).
[0046] The execution module 234 may enable the computing device 120 to execute a set of computer simulations in series, in parallel, or a combination of the foregoing. During the execution of the computer simulations, the execution module 234 may detect one or more resource conflicts. A resource conflict may arise when a product (e.g., a second product) is waiting for a resource to finish processing another product (e.g., a first product). The execution module 234 may address the conflict by adjusting the start time of one or more of the products, which may involve adjusting the start time of the first product earlier (e.g., advancing) or adjusting the start time of the second product later (e.g., delaying), or a combination of the foregoing. The adjusted times may be incorporated into the simulation results.
[0047] Each simulation result may represent a set of one or more timelines, which may be organized or arranged by resource or product. In one example, the timelines may be organized by resource, and each timeline may correspond to a respective resource and indicate when the resource processes each product (all wafers modified by each chamber). In another example, the timelines may be organized by product, and each timeline may correspond to a respective product and indicate when and where the product is processed (e.g., all chambers that processed each wafer). In either example, the simulation result may be represented as a set of output vectors.
[0048] An output vector may be a data structure that stores time series data and may represent a timeline for a particular resource (e.g., a chamber), a particular product (e.g., a wafer), a particular tool, other items, or a combination of the above. Each output vector may include time data, resource data, task data, or other data. A set of output vectors may include one or more resource vectors (e.g., a chamber vector) corresponding to a particular resource, or a product vector (e.g., a wafer vector) corresponding to a particular manufactured item. In one example, an output vector may be a set of resource vectors, each corresponding to a particular resource (e.g., a chamber) of a manufacturing tool. A resource vector may include time series data including multiple time values and a product identifier. The time series data may indicate multiple products processed by a resource and the time (e.g., start time, end time, duration) at which the products are processed. In another example, an output vector may be a set of product vectors, each corresponding to a particular product (e.g., a wafer) manufactured by a manufacturing tool. A product vector may include time series data including multiple time values and a resource identifier indicating multiple resources that process the products and the time at which the resources process the products.
[0049] The optimization module 236 may analyze the simulation results and calculate an optimization value for the simulation results. The optimization value may be based on one or more products, resources, tools, or a combination of the above. For example, the optimization value may be based on product wait time (e.g., maximum wafer wait time), resource utilization (e.g., chamber utilization), tool throughput (e.g., wafers per hour), other values, or a combination of the above. The optimization value may additionally or instead be based on one or more specific tasks. For example, the optimization value (e.g., product wait time) may be based on the time before, during, or after a specific task or set of tasks. This may be particularly advantageous when some of the tasks performed on the products by the manufacturing tool may be time-dependent (e.g., time-dependent photolithography tasks). Time-dependent variations across different products of the set may cause the manufactured goods to vary in a manner that exceeds a predefined threshold (e.g., heat loss threshold).
[0050] In one example, the optimization module 236 may use the set of output vectors to determine an optimization value, such as a wait time for a product. The wait time may be based on one or more durations that a product waits for a resource conflict to be resolved (e.g., a resource becomes available) and may include a duration before, during, or after a task is performed. The one or more durations may include a duration before a product is loaded from a transport device into a manufacturing tool, a duration in a storage resource (e.g., a wafer buffer or queue), other durations, or a combination of the above. As described above, the output vector may include multiple time values, and the time values may be compared to determine a wait time for a wafer. If the output vector is a product vector, the wait time for a particular product may be determined by analyzing a single product vector. If the output vector is a resource vector, the wait time for a particular product may be determined by analyzing the resource vectors for all resources that process the particular product. In either example, determining the optimization value (e.g., wait time) may be performed by comparing one or more time values of the output vectors.
[0051] The optimization module 236 may compare the optimization values of the different computer simulations. The optimization value of a simulation result may be compared to one or more optimization values of a set of simulation results. The comparison may be a mathematical comparison that determines one or more differences between the optimization values. The differences may be weighted and / or aggregated before or after the comparison. In one example, the optimization module 236 may select a simulation result from the set of simulation results based on the comparison of the optimization values (e.g., select the simulation result with the highest or lowest value). In another example, the optimization module 236 may determine whether to run one or more additional computer simulations based on the comparison. This may involve determining whether the additional simulations identify a more optimal solution (e.g., a schedule with less waiting time). If the subsequent simulation results are more optimized or substantially more optimized (e.g., a difference in optimization values above a threshold), the optimization module 236 may communicate with the initiation module 232 to perform one or more computer simulations. If the subsequent simulation results are less optimized or nominally optimized (e.g., below a threshold), the optimization module 236 may not perform additional computer simulations and may select the optimized results 129 from the set of existing simulation results.
[0052] In one example, the output of the computer simulation may be used to determine the input of a subsequent computer simulation. For example, a first computer simulation may create a resource schedule in which the last manufactured item waits during an intermediate step. The duration of the wait time may be used to adjust the start time of the product in the subsequent computer simulation. For example, the simulation results may indicate that product x waited after task n for duration y (e.g., the fifth wafer was delayed for 90 seconds), and the input to the subsequent computer simulation may delay the start time of product x for duration n. In another example, the start module may create multiple different sets of product start times, each of which may be used as an input to a computer simulation that is run and creates different simulation results.
[0053] The results providing module 238 may enable the computing device 120 to provide the simulation results to a user or device associated with the manufacturing tool. Providing the simulation results may involve presenting the simulation results, transmitting the simulation results, storing the results, or a combination of the above. The results providing module 238 may present the simulation results using a user interface (e.g., a graphical user interface (GUI)) that displays one or more simulation results and details (e.g., optimized values, number of simulations, value difference, best schedule) related to the computer simulation. In one example, the user interface may include one or more display graphs that visually represent the simulation results as a schedule (e.g., resource schedule, product schedule, task schedule) using one or more timelines. The display graphs (e.g., bar graphs, Gantt charts) may include a graph organized by resources (e.g., resource graph) that includes a set of bars for a first resource and a set of bars for a second resource (e.g., first and second chambers). Each set of bars may represent a block of time corresponding to a product processed by the respective resource. The display graph may additionally or alternatively include a graph organized by product (e.g., a product graph) including a set of bars for a first product and a set of bars for a second product (e.g., first and second wafers). Each set of bars may represent a block of time corresponding to resources processing the respective product. The user interface may also include one or more control elements configured to receive user input of a user (e.g., a process engineer). The control elements may be used to select one or more of the simulation results to be used by the manufacturing tool (e.g., selecting an optimized schedule).
[0054] The results providing module 238 may also provide optimized data associated with one of the simulated results to the manufacturing tool. The optimized data may be related to the optimized results 129 and may include one or more start times, timelines, schedules, or other data. In one example, providing the optimized data to the manufacturing tool may involve establishing a communication channel with the manufacturing tool and transmitting the optimized data from the computing device 120 to the manufacturing tool using the communication channel. In another example, providing the optimized data to the manufacturing tool may involve storing the optimized data in a data storage object and making the data storage object accessible to the manufacturing tool (e.g., stored in a network storage device).
[0055] 3 illustrates a flow diagram of one example method 300 for performing simulation-based optimization to identify a schedule for a manufacturing tool, according to one or more aspects of the present disclosure. Method 300, and each of its individual functions, routines, subroutines, or operations, may be performed by one or more processors of a computing device that executes the method. In a particular implementation, method 300 may be performed by a single computing device. Alternatively, method 300 may be performed by two or more computing devices, each computing device performing one or more individual functions, routines, subroutines, or operations of the method.
[0056] For ease of explanation, the methods of the present disclosure are illustrated and described as a series of actions. However, actions according to the present disclosure may occur in various orders and / or simultaneously, and with other actions not shown or described herein. Moreover, not all illustrated actions are required to implement a method according to the disclosed subject matter. In addition, one skilled in the art will understand and appreciate that a method may alternatively be represented as a series of interrelated states, such as by a state diagram or events. Furthermore, it should be appreciated that the methods disclosed herein may be stored on an article of manufacture to facilitate communication and transfer of such methods to a computing device. The term "article of manufacture" as used herein is intended to encompass a computer program accessible from any computer-readable device or storage medium. In one implementation, the method 300 may be performed by the modeling component 220 and the computer simulation component 230 as shown in FIG. 2.
[0057] The method 300 may be performed by a processing device of a server device or a client device and may begin at block 302. At block 302, the processing device may determine resources of a manufacturing tool. The resources may include a first chamber, a second chamber, and one or more additional chambers. The processing device may determine the resources by analyzing data of the manufacturing tool to identify a layout of the resources and determine a type of each of the resources. In one example, the first chamber may be a modification chamber (e.g., an etch chamber) that modifies a product and the second chamber may be a transfer chamber (e.g., a robot chamber) that moves the product.
[0058] At block 304, the processing device may access task data indicative of a first manufacturing task and a second manufacturing task. The task data may include a sequence of recipes for processing the wafer products, and the sequence of recipes may include a recipe for a first chamber and a recipe for a second chamber. The sequence of tasks may include a start task, multiple intermediate tasks, and an end task. One or more of the resources may be capable of performing the same task, and each resource may be capable of performing one or more tasks.
[0059] At block 306, the processing device may determine a first duration for performing the first manufacturing task using the first chamber and a second duration for performing the second manufacturing task using the second chamber. The processing device may determine the durations by analyzing time data previously generated by the manufacturing tool while processing multiple wafers using the same task data or different task data. The time data may have been generated during a past manufacturing run (e.g., a historical run that has been completed) or a current run (e.g., an ongoing run that has not yet been completed). In one example, the time data may include multiple times for the same manufacturing tool, which may include one or more of a wafer load time, a wafer processing time in the first chamber, a wafer processing time in the second chamber, a wafer transfer time between the first and second chambers, other times, or a combination of the foregoing.
[0060] At block 308, the processing device may update the machine learning model based on the duration of performing the first manufacturing task and the duration of performing the second manufacturing task. The updating may involve accessing time data for the manufacturing tool from a data store associated with the manufacturing tool and training the machine learning model using the time data to temporally model the manufacturing tool. The trained machine learning model may then be stored on the manufacturing tool or on a device connected to the manufacturing tool through a computer network.
[0061] At block 310, the processing device may perform a set of computer simulations using the machine learning model and the task data to produce a set of simulation results. Performing the set of computer simulations may involve accessing the machine learning model to predict processing of the set of wafers. The processing device may perform a first computer simulation using a set of start times for the set of wafers and may detect that at least one wafer of the set has been waiting for a duration that exceeds a predefined threshold (e.g., more than n seconds). The processing device may modify the set of start times to include a different start time for at least one wafer and perform a second computer simulation using the modified set of start times.
[0062] The processing device may also calculate an optimization value for the simulation results. The optimization value may be based on one or more of wafer wait time, chamber utilization, tool throughput, or a combination of the foregoing. The processing device may compare the optimization value to one or more optimization values of the set of simulation results and select a simulation result from the set of simulation results based on the comparison. In one example, the optimization value may be calculated taking into account a set of intermediate tasks (e.g., wafer wait time between tasks C and F).
[0063] At block 312, the processing device may store simulation results of the set of simulation results in a data store. The simulation results may be a set of resource vectors, including a resource vector for each chamber of a manufacturing tool used to process the set of products. Each resource vector may include multiple time values and may represent a timeline for a particular chamber that processes multiple products. In one example, the processing device may provide a display of a Gantt chart representing the stored simulation results for the manufacturing tool. The Gantt chart may include a set of bars for a first chamber that represents a block of time for one or more wafers of the set, and a set of bars for a second chamber that represents a block of time for one or more wafers of the set. In response to completing the operations described above with reference to block 312, the method may end.
[0064] FIG. 4 is a block diagram illustrating a computer system 400 according to certain embodiments. In some embodiments, the computer system 400 may be connected to other computer systems (e.g., via a network such as a local area network (LAN), an intranet, an extranet, or the Internet). The computer system 400 may operate in the capacity of a server or a client computer in a client-server environment, or as a peer computer in a peer-to-peer or distributed network environment. The computer system 400 may be provided by a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular phone, a web appliance, a server, a network router, a switch or bridge, or any device capable of executing a set of instructions (sequential or otherwise) that specify actions that the device should take. Additionally, the term "computer" is intended to include any collection of computers that, individually or together, execute a set (or sets) of instructions to perform one or more of the methods described herein.
[0065] In a further aspect, the computer system 400 may include a processing device 402, a volatile memory 404 (e.g., random access memory (RAM)), a non-volatile memory 406 (e.g., read only memory (ROM) or electrically erasable programmable ROM (EEPROM)), and a data storage device 416, which may communicate with each other via a bus 408.
[0066] The processing device 402 may be provided by one or more processors, such as a general-purpose processor (e.g., a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, a microprocessor implementing other types of instruction sets, or a combination of instruction set types, etc.) or a special-purpose processor (e.g., an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Digital Signal Processor (DSP), or a network processor, etc.).
[0067] The computer system 400 may further include a network interface device 422. The computer system 400 may also include a video display unit 410 (e.g., an LCD), an alphanumeric input device 412 (e.g., a keyboard), a cursor control device 414 (e.g., a mouse), and a signal generating device 420.
[0068] In some implementations, the data storage device 416 may include a non-transitory computer-readable storage medium 424 that may store instructions 426 encoding any one or more of the methods or functions described herein, including instructions for implementing the methods described herein that encode the tool analysis component 210, the model creation component 220, or the computer simulation component 230 of FIG. 2.
[0069] The instructions 426 may also reside, completely or partially, within the volatile memory 404 and / or within the processing device 402 during execution by the computer system 400, and thus the volatile memory 404 and the processing device 402 may also constitute machine-readable storage media.
[0070] Although computer-readable storage medium 424 is shown as a single medium in the illustrative example, the term "computer-readable storage medium" is intended to include a single medium or multiple media (e.g., centralized or distributed databases and / or associated caches and servers) that store one or more sets of executable instructions. The term "computer-readable storage medium" is also intended to include any tangible medium that can store or encode a set of computer-executable instructions that cause a computer to perform any one or more of the methods described herein. The term "computer-readable storage medium" is intended to include, but is not limited to, solid-state memory, optical media, and magnetic media.
[0071] The methods, components, and features described herein may be implemented by discrete hardware components or may be integrated into the functionality of other hardware components, such as an ASIC, FPGA, DSP, or similar device. In addition, the methods, components, and features may be implemented by firmware modules or functional circuits within a hardware device. Further, the methods, components, and features may be implemented in any combination of hardware devices and computer program components, or in a computer program.
[0072] Unless specifically indicated otherwise, terms such as "receive," "determine," "select," "perform," "process," "measure," "report," "update," "analyze," "train," "create," "add," "calculate," "perform," "generate," "use," "modify," "compare," "access," "shift," "store," "detect," and the like refer to acts and processes performed or realized by a computer system that manipulate and convert data represented as physical (electronic) quantities in the registers and memory of the computer system into other data similarly represented as physical quantities in the memory or registers of the computer system, or in other such information storage, transmission, or display devices. Additionally, terms such as "first," "second," "third," "fourth," and the like, as used herein, are intended to be labels distinguishing between different elements and may not have an ordinal meaning according to their numerical designations.
[0073] The examples described herein also relate to an apparatus for performing the operations described herein. The apparatus may be specially constructed to perform the methods described herein, or may include a general-purpose computer system that is selectively programmed by a computer program stored in the computer system. Such a computer program may be stored on any computer-readable tangible storage medium.
[0074] The methods and examples described herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used in accordance with the teachings described herein, or it may prove convenient to construct more specialized apparatus to perform the methods described herein and / or their respective functions, routines, subroutines, or operations. Example structures for a variety of these systems are set forth in the description above.
[0075] The above description is for purposes of illustration and not limitation. Although the present disclosure has been described with reference to certain examples and implementations, it will be recognized that the present disclosure is not limited to the described examples and implementations. The scope of the present disclosure should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
Claims
1. determining resources of a manufacturing tool by a processing device, the resources including a first chamber and a second chamber; accessing task data indicative of a first manufacturing task and a second manufacturing task; determining a duration for performing the first manufacturing task using the first chamber and a duration for performing the second manufacturing task using the second chamber; updating a machine learning model based on the duration of performing the first manufacturing task and the duration of performing the second manufacturing task; performing, by the processing device, a set of computer simulations using the machine learning model and the task data to generate a set of simulation results; selecting a simulation result from the set of simulation results based on one or more optimization values; storing, by the processing device, the simulation results in a data store.
2. 2. The method of claim 1, further comprising: analyzing time data generated by the manufacturing tool, the time data being generated while a plurality of wafers are being processed by the manufacturing tool taking into account the task data.
3. 3. The method of claim 2, wherein the time data comprises a plurality of times for the manufacturing tool, the plurality of times comprising a plurality of wafer load times, a wafer processing time in the first chamber, a wafer processing time in the second chamber, and a wafer transfer time between the first chamber and the second chamber.
4. accessing time data for the manufacturing tool from a data store associated with the manufacturing tool; training the machine learning model to model the manufacturing tool using the temporal data; The method of claim 1 , further comprising storing the machine learning model in the manufacturing tool.
5. conducting said set of computer simulations, accessing the machine learning model to predict processing of a set of wafers; conducting a first computer simulation using a set of starting times for the set of wafers; detecting that at least one wafer of the set is in a standby state for a duration exceeding a predefined threshold; modifying the set of start times to include a different start time for the at least one wafer; and performing a second computer simulation using the modified set of start times.
6. 2. The method of claim 1, wherein the simulation results include a set of resource vectors, including a resource vector for each chamber of the manufacturing tool, the resource vectors including multiple time values and representing a timeline for chambers processing multiple products.
7. calculating the one or more optimization values, including an optimization value for the simulation results based on one or more of a wafer wait time, a chamber utilization, or a tool throughput; comparing the optimization value for the simulation result with at least one optimization value for another simulation result in the set of simulation results; The method of claim 1 , further comprising: selecting the simulation result from the set of simulation results based on the comparison.
8. 8. The method of claim 7, wherein the task data indicates a sequence of tasks including a start task, a number of intermediate tasks, and an end task, and the optimization value corresponds to the wafer wait time between a particular set of the intermediate tasks.
9. 2. The method of claim 1 , further comprising: providing a display of a Gantt chart representing the simulation results for the manufacturing tool, the Gantt chart including a set of bars for the first chamber representing a block of time for one or more wafers in a set, and a set of bars for the second chamber representing a block of time for one or more wafers in the set.
10. Determining the resources of the manufacturing tool analyzing the manufacturing tool to identify a layout of the resources; 2. The method of claim 1, further comprising: determining a type of each of the resources, the first chamber comprising a modification chamber for modifying a product and the second chamber comprising a transfer chamber for moving the product.
11. 2. The method of claim 1, wherein the task data includes a sequence of recipes for processing wafers, the sequence of recipes including a recipe for the first chamber and a recipe for the second chamber.
12. Memory, a processing device communicatively coupled to the memory, the processing device comprising: determining resources of a manufacturing tool, the resources including a first chamber and a second chamber; Accessing task data indicative of a first manufacturing task and a second manufacturing task; determining a duration for performing the first manufacturing task using the first chamber and a duration for performing the second manufacturing task using the second chamber; updating a machine learning model based on the duration of performing the first manufacturing task and the duration of performing the second manufacturing task; conducting a set of computer simulations using the machine learning model and the task data to generate a set of simulation results; selecting a simulation result from the set of simulation results based on one or more optimization values; The system stores the simulation results in a data store.
13. 13. The system of claim 12, wherein the time data comprises a plurality of times for the manufacturing tool, the plurality of times comprising a plurality of wafer load times, a wafer processing time in the first chamber, a wafer processing time in the second chamber, and a wafer transfer time between the first chamber and the second chamber.
14. 13. The system of claim 12, wherein the simulation results include a set of resource vectors, including a resource vector for each chamber of the manufacturing tool, the resource vectors including multiple time values and representing a timeline for chambers processing multiple products.
15. The system of claim 12 , wherein the task data indicates a sequence of tasks including a start task, a number of intermediate tasks, and an end task.
16. A non-transitory machine-readable storage medium storing instructions that, when executed, cause a processing device to perform operations, the operations including: accessing time data from a data store associated with a manufacturing tool comprising a first chamber and a second chamber, the time data including a duration of performing a manufacturing task using the first chamber and a duration of performing a manufacturing task using the second chamber; training, by the manufacturing tool, a machine learning model using the temporal data to model the manufacturing tool; performing, by the manufacturing tool, a set of computer simulations using the machine learning model to generate a set of simulation results; selecting a simulation result from the set of simulation results based on one or more optimization values; and storing, by the processing device, the simulation results including a schedule for the manufacturing tool in a data store.
17. 17. The non-transitory machine-readable storage medium of claim 16, wherein the time data comprises a plurality of times for the manufacturing tool, the plurality of times comprising a plurality of wafer load times, a wafer processing time in the first chamber, a wafer processing time in the second chamber, and a wafer transfer time between the first chamber and the second chamber.
18. The operation further comprises: accessing the machine learning model to predict processing of a set of wafers; conducting a first computer simulation using a set of starting times for the set of wafers; detecting that at least one wafer of the set is in a standby state for a duration exceeding a predefined threshold; modifying the set of start times to include a different start time for the at least one wafer; and performing a second computer simulation using the modified set of start times.
19. 20. The non-transitory machine-readable storage medium of claim 16, wherein the simulation results include a set of resource vectors, including a resource vector for each chamber of the manufacturing tool, the resource vectors including a plurality of time values and representing a timeline for chambers processing a plurality of products.
20. 17. The non-transitory machine-readable storage medium of claim 16, wherein the operations further include providing a display of a Gantt chart representing the simulation results for the manufacturing tool, the Gantt chart including a set of bars for the first chamber representing a block of time for one or more wafers in a set and a set of bars for the second chamber representing a block of time for one or more wafers in the set.
Citation Information
Patent Citations
Recipe execution time arithmetic device and semiconductor inspection device
JP2013168498A
Vacuum processing device and vacuum processing method
JP2014078576A
Scheduler for a cluster tool of semiconductor manufacturing
KR100957401B1
Using graphics processing unit for substrate routing and throughput modeling
WO2019246588A1