Predictive wafer scheduling for multi-chamber semiconductor equipment

By optimizing manufacturing processes through machine learning and computer simulation, the problem of product idleness caused by resource conflicts has been solved, and the efficiency of manufacturing tools and the consistency of product quality have been improved.

CN115485639BActive Publication Date: 2026-03-31APPLIED MATERIALS INC
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-05-21
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

In existing manufacturing processes, resource conflicts lead to variations in product idle time, affecting product quality and tool throughput. Existing scheduling methods rely on experience and are inefficient.

Method used

Optimize manufacturing processes through machine learning and computer simulation. Use machine learning models to track resource usage time, train models to predict task duration, and generate optimized schedules through computer simulation to reduce product idle time and improve resource utilization.

Benefits of technology

It improves the consistency of product quality and the resource utilization of manufacturing tools, reduces the idle time of products during the manufacturing process, and optimizes the efficiency of manufacturing processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115485639B_ABST
    Figure CN115485639B_ABST
Patent Text Reader

Abstract

This document discloses techniques for performing simulation-based optimizations to identify scheduling for manufacturing tools. An example method may include the following steps: determining resources for the manufacturing tool via a processing device, wherein these resources include a first chamber and a second chamber; accessing task data indicating 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 durations for performing the first and second manufacturing tasks; performing a set of computer simulations using the machine learning model and the task data to produce a set of simulation results; and storing simulation results from the set of simulation results in a data storage device via a processing device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to predictive modeling, and more particularly to simulation-based optimization techniques for scheduling manufacturing resources. Background Technology

[0002] Manufacturing involves steps that can include manual labor, machinery, or a combination of these to create a product. Manufacturing steps can be associated with settings that determine when, where, and how to perform these steps and affect the product being manufactured. Process engineers typically schedule manufacturing resources used to perform these steps, and this scheduling can be based on their industry experience and past experimentation. Summary of the Invention

[0003] The following is a simplified summary of this disclosure to provide a basic understanding of some aspects of it. This summary is not an extensive overview of this disclosure. It is not intended to identify key or essential elements of this disclosure, nor is it intended to describe any scope of any particular implementation of this disclosure or any scope of the claims. The sole purpose of this summary is to present some concepts of this disclosure in a simplified form as a prelude to the more detailed description that follows.

[0004] In one aspect of this disclosure, a method includes the following steps: determining resources of a manufacturing tool via a processing device, wherein these resources include a first chamber and a second chamber; accessing task data indicating a first manufacturing task and a second manufacturing task; determining a duration for using the first chamber to perform the first manufacturing task and a duration for using the second chamber to perform the second manufacturing task; 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 a set of computer simulations via the processing device, the set of computer simulations using the machine learning model and the task data to produce a set of simulation results; and storing simulation results from the set of simulation results in a data storage device via the processing device.

[0005] In another aspect of this disclosure, a system includes a memory and a processing means coupled to the memory. The processing means is configured to: determine resources of a manufacturing tool, wherein the resources include a first chamber and a second chamber; access task data indicating a first manufacturing task and a second manufacturing task; determine a duration for using the first chamber to perform the first manufacturing task and a duration for using the second chamber to perform the second manufacturing task; update a machine learning model based on the durations for performing the first and second manufacturing tasks; perform a set of computer simulations using the machine learning model and the task data to produce a set of simulation results; and store simulation results from the set of simulation results in a data storage device.

[0006] In one aspect of this 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 the 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 of wafers has been idle for a duration exceeding a predetermined threshold; modifying the set of start times to include different start times for the at least one wafer; and performing a second computer simulation using the modified set of start times. Attached Figure Description

[0007] The disclosure is illustrated in the accompanying drawings by way of example rather than by way of limitation.

[0008] Figure 1 This is a block diagram illustrating an exemplary system architecture according to certain implementation methods.

[0009] Figure 2 It is an example computing device according to certain implementation methods.

[0010] Figure 3 This is a flowchart illustrating an example method for performing simulation-based optimization of a manufacturing process according to certain implementations.

[0011] Figure 4 It is a block diagram illustrating a computer system according to certain implementation methods. Detailed Implementation

[0012] Manufacturing processes are becoming increasingly complex, often involving the execution of numerous tasks to create the manufactured product. These tasks can be performed using a single tool or one or more tools. Each task may require one or more resources from the tool to complete, and resource conflicts can occur when a group of products attempt to use the same resource. To resolve conflicts, a tool can schedule one or more products to occupy the resource, while other products can queue until the resource becomes available. Queuing products can reduce the tool's throughput and, in some cases, may degrade product quality. For example, the manufactured product may be the result of many tasks, and variations in the time a product spends idle between tasks can introduce variations into the finished product. This can happen because variations between tasks can alter the properties of the product. Changes in heat, humidity, texture, or other properties can adversely affect current or subsequent tasks and may reduce the quality of the finished product.

[0013] This disclosure addresses the aforementioned and other shortcomings by providing techniques for optimizing resource scheduling in manufacturing processes using machine learning and computer simulation. In one example, this technique can be embedded within a manufacturing tool that can perform multiple tasks sequentially or in parallel on a series of products. These products may be semiconductor wafers, and the manufacturing tool may have multiple chambers, each capable of performing a task on one of the semiconductor wafers. In one example, the technique may involve a computing device that determines the resources of the manufacturing tool, which may include the layout and capacity of a set of chambers, each capable of holding one or more products (e.g., wafers). The technique can access task data indicating 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 that task and may utilize a specific chamber of the manufacturing tool.

[0014] The technology can track how long a manufacturing tool takes to perform different manufacturing tasks using different resources. For example, different resources may have different product capacities, loading times, modification times, cleaning times, or combinations thereof. The technology can train a machine learning model based on the tracked time to model the temporal aspects of the manufacturing tool. The technology can then perform a set of computer simulations using the machine learning model and task data to produce a set of simulation results. Each of these simulation results can be a scheduling parameter for the manufacturing tool, indicating the order in which resources are used to perform tasks on a set of products. The technology can 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 can be specific to one or more tasks in a set and can be based on product idle time (e.g., wafer idle time between tasks), resource utilization (e.g., chamber idle time), tool throughput, other performance metrics, or combinations thereof.

[0015] The systems and methods described herein include techniques for enhancing one or more manufacturing tools used in a manufacturing process. In particular, aspects of this disclosure can enhance the quality of manufactured products by reducing variations in product idle time during the manufacturing process. This can increase the consistency of the manufactured products. The techniques can also increase the utilization rate and / or throughput of manufacturing tools or specific resources of manufacturing tools.

[0016] This document describes various aspects of the aforementioned techniques in detail below by way of example rather than limitation. The examples provided below discuss computing devices that are communicatively coupled to manufacturing tools. In other examples, the computing device may not be communicatively coupled to the manufacturing tool, and may be able to access data associated with the manufacturing tool from data storage, and may generate data that can subsequently be used by a user or device to configure the manufacturing tool.

[0017] Figure 1 This is a block diagram illustrating an exemplary system architecture 100 according to certain embodiments. System architecture 100 can be used to optimize a manufacturing process that can provide or produce one or more products 101. Products 101 can be used or sold and can be tangible or intangible objects, goods, services, other products, or combinations thereof. Tangible products can be touched by humans and can include physical products, goods, components, or other objects (e.g., etched wafers, semiconductor devices, microchips, or other electronic devices). Intangible products can be perceived directly or indirectly by humans without touching them and can include circuit designs, device layouts, manufacturing recipes, tooling configurations, computer programs, services, other intangible elements, or combinations thereof. Figure 1In the example shown, system architecture 100 may include manufacturing tool 110 and one or more computing devices 120A-120Z.

[0018] Manufacturing tool 110 can be any tool that contributes to the manufacturing process that produces product 101. The tool can be a machine, computing device, computer program, other device, or a combination of the foregoing. Manufacturing tool 110 can include computer software (e.g., program code) and computer hardware (e.g., integrated circuits) and can be used for semiconductor device manufacturing. Semiconductor device manufacturing can involve manufacturing semiconductor devices and integrated circuits (ICs). Manufacturing tool 110 can perform a sequence of multiple steps, which can include photolithography and chemical processing steps (such as surface passivation, thermal oxidation, planar diffusion, and junction isolation) during which electronic circuitry is progressively created on a product made of a semiconducting material (e.g., a silicon wafer). Manufacturing tool 110 can use one or more resources 115A-115Z to process product 101.

[0019] Resources 115A-115Z may be different parts of manufacturing tool 110, and may each be the same as or similar to a partition, area, section, part, component, or other portion of manufacturing tool 110. In one example, each of resources 115A-115Z may 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 as or similar to a shell, compartment, container, opening, vessel, reservoir, storage unit, housing, or combination thereof. Resources 115A-115Z may include one or more different types of resources that can be used to process the product. Processing the product may involve performing actions involving the product and may include one or more operations for loading the product, transferring the product, modifying the product, other operations, or combinations thereof.

[0020] exist Figure 1In the example shown, resources 115A-115C can be configured to move products into or within manufacturing tool 110. Resource 115A can be an external transfer resource, including ports and robotic arm components to load one or more products 101 from a transport device outside manufacturing tool 110 into manufacturing tool 110. The transport device can transport a group of one or more products to, from, or between manufacturing tools. The transport device can be a compartment having a shell for securely storing a group of one or more products, and the transport device can be the same as or similar to a front-opening standard compartment (FOUP). Resources 115B-115C can be internal transfer resources capable of storing and transferring products within manufacturing tool 110. Transfer resources can transfer products to resources, from resources, between resources, or a combination of the above. Internal and external transport resources can be chambers equipped with electromechanical actuators (e.g., robotic arms) that can move a wafer into and out of different chambers, and these internal and external transport resources can be referred to as robotic arm chambers. Resources 115R-115Z can be portions of manufacturing tool 110 capable of modifying product 101 according to tasks 122A-122Z. Each resource can be configured to perform a specific task (e.g., task 122A) or a set of multiple tasks (e.g., tasks 122B-122C).

[0021] Tasks 122A-122Z may correspond to manufacturing steps performed by manufacturing tool 110 to produce product 101. In one example, tasks 122A-122Z may be semiconductor manufacturing 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), vapor 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), measurement (e.g., wafer or die measurement), testing (e.g., wafer or IC testing), back grinding, dicing, bonding, packaging, other tasks, or combinations thereof. Tasks 122A-122Z may be associated with task data 122.

[0022] Task data 122 can identify tasks and sequences, and tasks can be executed according to the sequence to produce product 101. Task data 122 may be referred to as sequence data, sequence program, recipe, or other terms. Task data 122 may be provided by the entity designing the product to the entity manufacturing the product, and these entities may be part of the same or different business entities. The entity designing the product may indicate a starting task, one or more intermediate tasks, and a ending task. One or more tasks can be performed serially or in parallel on a specific product or on different products in a group (e.g., different wafers in a bin).

[0023] Task data 122 may include input data, output data, or combinations thereof for one or more of tasks 122A-122Z. Input data for a task may include any data defining one or more inputs for a manufacturing step. For example, input data may indicate one or more attributes, configurations, settings, or other data of the input product. Input data may be the same as or similar to parameter data, setting data, configuration data, other data, or combinations thereof. Input data may include one or more values ​​(e.g., parameter values, setting values, configuration values) indicating how the manufacturing process will be performed. In one example, input data may include one or more values ​​corresponding to time (e.g., deposition time, etching time, oxidation time, implantation time, cleaning time), energy (e.g., temperature, current, voltage, electromagnetic frequency), input rate (e.g., gas flow rate, wafer rotation 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 thereof.

[0024] Output data can be any data describing the expected output of a manufacturing step. Output data can describe one or more attributes of product 101, byproducts, other outputs, or a combination of the above. Output data can include values ​​indicating actual attributes of the product before, during, or after the execution of the step. Attributes can correspond to one or more measurements of product 101. Measurements can be related to dimensions (e.g., length, width, height, depth, thickness, radius, diameter, area, volume, size), material properties (e.g., reflectivity, emissivity, absorptivity, conductivity, density, texture), uniformity (e.g., film thickness uniformity), location (e.g., relative or absolute location), other attributes, or combinations of the above. In one example, output data can indicate the attributes of product 101 in the form of N-point measurements, where N indicates the number of reference measurements of the product (e.g., 49 measurements). N-point measurements can provide critical dimensions (e.g., the dimensions of transistors or vias) of one or more electronic components of the semiconductor product.

[0025] Computing devices 120-Z may include one or more computing devices associated with manufacturing tool 110. Computing devices 120A-120Z 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-120Z may include x86 hardware (e.g., or ), or other hardware-implemented computing devices.

[0026] One or more of the computing devices 120A-120Z can be used as a manufacturing control device, a sensor device, a user device, other devices, or a combination of the foregoing. The manufacturing control device (e.g., a controller) can control a portion of the manufacturing tool 110 and can access, generate, or transmit input data, output data, or a combination of the foregoing. The sensor device (e.g., a sensor) can be capable of sensing aspects of the manufacturing tool 110 or aspects of the product 101 and can involve measuring components capable of measuring attributes of the manufacturing tool 110 or the product 101. In one example, the sensor device may include an image capture module or a sound capture module. The user device can be the same as or similar to a client device and can provide a user interface for a user (e.g., a process engineer). The user interface can present (e.g., display and / or inform) information to the user and may include one or more control elements for collecting user input. One or more of the computing devices 120A-120Z can use machine learning model 126 to run computer simulation 124.

[0027] Machine learning model 126 can mathematically model the duration consumed by manufacturing tool 110 in performing a task. In one example, machine learning model 126 may be a single machine learning model that models manufacturing tool 110. In another example, machine learning model 126 may include a set of machine learning models, each of which may model one or more resources. In either example, each machine learning model may be the same as or similar to a mathematical model, statistical model, neural network, other mathematical representation, or a combination of the foregoing. Machine learning model 126 may include mathematical data representing the relationship between model inputs (e.g., tasks and / or data) and model outputs (e.g., duration). Mathematical data may include one or more matrices, indices, value pairs, vectors, functions, equations, expressions, operators, operands, coefficients, variables, weights, biases, links, other data, or combinations of the foregoing.

[0028] In one example, machine learning model 126 could be a data structure comprising one or more matrices representing mathematical relationships. Each matrix could include one or more dimensions and could associate a specific manufacturing task and / or resource with one or more durations. Matrixes could 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 could correspond to a duration, and the position of an element in the matrix could indicate the corresponding task and / or resource. For example, a first axis (e.g., rows) could correspond to a resource, a second axis (e.g., columns) could correspond to a task, and the intersection of points on each axis could identify an element (e.g., a duration). Elements could include one or more values ​​based on the duration spent by the manufacturing tool using resources to perform the task. These values ​​could be based on historical values, maximum values, minimum values, average values, aggregate values, other numerical or statistical values, or combinations thereof.

[0029] In another example, machine learning model 126 may be a data structure that includes one or more mathematical functions representing mathematical relationships. The mathematical functions may include variables corresponding to resources and variables corresponding to tasks, and the output of the mathematical functions may correspond to duration. In either example, machine learning model 126 may be the product of a machine learning process that analyzes training data and creates a model representing relational patterns and inferences derived from the training data.

[0030] Training data may include time-series data based on historical or experimental runs of manufacturing tool 110. In one example, machine learning model 126 may include one or more regression models to analyze task data 122 and derive one or more durations. In another example, machine learning model 126 may include one or more neural networks trained using deep learning techniques and may include multiple layers. A neural network may be referred to as an artificial neural network (ANN), network, model, or other terms. A neural network may be the same as or similar to a recurrent neural network (RNN), a feedforward neural network (FFNN), a multilayer 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 modular neural network, a convolutional neural network (CNN), other networks, or combinations thereof. In any example, machine learning model 126 may be used to perform a computer simulation 124.

[0031] Computer simulation 124 can represent a computer simulation engine that performs a set of computer simulations to identify optimized scheduling. Each of the computer simulations 124 can involve using a machine learning model 126 to predict future values ​​of manufacturing tool 110 based on previously observed values ​​of one or more manufacturing tools. The prediction of future values ​​can be called time series forecasting and can involve time series analysis. In one example, each computer simulation can involve simulating manufacturing tool 110 to identify manufacturing scheduling.

[0032] Manufacturing scheduling can be based on a set of start times for a group of products, and computer simulations can iterate through the tasks for each product to fill the manufacturing schedule. A first task iteration determines when each of the corresponding resources will process a first product. A second task iteration determines when each of the corresponding resources will process a second product. The second iteration can resolve resource conflicts and can delay the processing of the second product until the resources have finished processing the first product. Manufacturing tool 110 can include multiple resources that can perform the same task, and the second iteration can instruct the second product to be scheduled for processing by one of the other resources. Iterations can be performed for each product until all products are scheduled for processing. Earlier computer simulations may cause products to start simultaneously, which could result in products having different waiting times within the manufacturing tool (e.g., wafer idle time between tasks). Subsequent computer simulations can use different start times, so that subsequent products wait to be loaded by the manufacturing tool, but once the manufacturing tool begins processing these products, there is almost no waiting time. Subsequent computer simulations can identify manufacturing schedules that reduce resource conflicts and product idle time. Computer simulation 124 can output the manufacturing schedule in the form of simulation result data 128.

[0033] Simulation result data 128 may include one or more simulation results 128A-128C, each of which may be the output of a computer simulation and may represent one or more manufacturing schedules. Manufacturing schedules may be represented as one or more timelines organized by resource (e.g., resource scheduling), by product (e.g., product scheduling), by task (e.g., task scheduling), other elements, or combinations thereof. In one example, simulation results may be organized by resource, and each timeline may correspond to a corresponding resource (e.g., a corresponding 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, simulation results may be organized by product, and each timeline may correspond to a corresponding product (e.g., a corresponding wafer), and may include time blocks indicating when and where the product is processed (e.g., all chambers processing a particular wafer). In either example, manufacturing schedules may be represented as a series of time values ​​and may be analyzed via optimization 127 to identify optimization results 129, as follows regarding... Figure 2 To be discussed in more detail.

[0034] Figure 2 A block diagram is depicted illustrating an exemplary computing device 120 according to one or more aspects of this disclosure, the exemplary computing device including techniques for performing simulation-based optimization of manufacturing tools. The computing device 120 can be coupled with... Figure 1 One or more of the computing devices 120A-120Z are identical or similar. The components and modules discussed herein can be executed on a single computing device or multiple different computing devices. In one embodiment, one or more of the components may reside on different computing devices (e.g., model training is performed on a first computing device, while computer simulation is performed on different computing devices). 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 the features of a component may be divided into two or more components. Figure 2 In the example shown, computing device 120 may include tool analysis component 210, model creation component 220, and computer simulation component 230.

[0035] The tool analysis component 210 enables the computing device 120 to analyze the manufacturing tool to determine its resources and capabilities. The analysis can be performed before or after the manufacturing tool is shipped to the customer, and in either example, it can be performed before, during, or after the initialization of the manufacturing tool. Initialization can be the same as or similar to hardware initialization (e.g., system startup, BIOS), software initialization (e.g., operating system (OS) startup, program startup), other initializations, or combinations thereof. 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.

[0036] Resource determination module 212 can determine the resources and resource capabilities of a manufacturing tool by accessing one or more resource storage objects, by communicating with one or more resources, or a combination of the above. As discussed above, resources may include one or more areas, sections, or chambers of a tool that can be used to process the manufactured product (e.g., move or modify a wafer). Data storage objects may store data indicating one or more of the resources of one or more manufacturing tools, and this data may be referred to as resource data or tool data. Data storage objects 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 a combination of the above. Resource determination module 212 may also or alternatively determine resources by communicating with one or more of the resources. Communication may be the same as or similar to scanning or querying each of the resources and may involve transmitting requests and receiving responses with data indicating the resources of the manufacturing tool. As shown by resource data 242, resource determination module 212 may store the data in data storage 240.

[0037] Resource data 242 may include identification data, layout data, capability data, other data, or a combination of the above. Identification data enables the computing device 120 to uniquely identify a resource and may include one or more identifiers for the resource (e.g., resource identifier, universally unique identifier (UUID), globally unique identifier (GUID)). Layout data may indicate the position of the resource relative to a tool or relative to another resource. Layout data enables the resource determination module 212 to determine the layout of the manufacturing tool. The layout may indicate the position of the resource relative to one or more other resources or relative to the tool (e.g., relative position). The position of the resource may be used to determine the time taken to move the product between resources. Capability data may indicate the capabilities of the resource, which may include the type of resource (e.g., modifying a chamber, moving a chamber) and one or more tasks that the resource can perform.

[0038] Task data module 214 can access task data that identifies the tasks used to manufacture the product. The task data can identify the steps and sequence of steps performed by the manufacturing tool on the product. Task data module 214 enables computing device 120 to receive task data via user input, data storage objects, or a combination thereof. In one example, task data may be a sequence of programs stored in a centralized data storage device accessible via a network (e.g., a recipe repository, a sequence repository). Task data module 214 can receive (e.g., download) task data and store it as task data 122 in data storage 240. In one example, task data 122 may include a sequence of recipes for processing a wafer, and each recipe may correspond to a corresponding chamber of the manufacturing tool.

[0039] The time tracking module 216 enables the computing device 120 to determine how long the manufacturing tool spends performing different tasks. Tasks can be any processing task and may involve modifying resources (e.g., pre-cleaning or post-cleaning of resources), modifying products (e.g., photolithography, etching), moving products (e.g., loading into a tool, transferring to a resource, or transferring from a resource), or a combination of the above. In one example, the time tracking module 216 can be used to monitor the manufacturing tool during the processing of one or more products. In another example, the manufacturing tool can record (e.g., log) the duration of the processing of the one or more products, and the time tracking module 216 can access the recorded time. In either example, the time tracking module 216 can modify, aggregate, filter, or supplement the duration before, during, or after storing the duration as time data 244 in data storage 240.

[0040] Time data 244 can indicate the duration consumed by the manufacturing tool in performing a task. Time data 244 can include entries (e.g., start time, end time, and / or duration) indicating one or more times (e.g., start time, end time, and / or duration), resources (e.g., loading chamber A, modification chamber Z), products (e.g., wafer identification code, compartment identification code), tasks (e.g., sequence identification code, recipe identification code), tools (e.g., manufacturing tool 110), other data, or combinations of the above items (e.g., log entries). In one example, time data 244 can be generated simultaneously when a plurality of wafers are processed by a particular manufacturing tool, and can indicate the loading time of a plurality of wafers, the processing time of a first chamber, the processing time of a second chamber, and the transfer time between chambers.

[0041] The model creation component 220 can use time data 244 to train a machine learning model 126 to model the manufacturing tool. In one example, the model creation component 220 may include a data access module 222 and a training module 224.

[0042] Data access module 222 can access data associated with the manufacturing tool and can be used to train a machine learning model. This data may be referred to as training data and may include any data in data storage 240 (such as time data 244, resource data 242, task data 122, other data, or combinations thereof) or derived from any of the aforementioned data in data storage 240. Data access module 222 can access the training data directly or indirectly from the manufacturing tool. Direct access to training data from the manufacturing tool may involve accessing the training data from the manufacturing tool's communication channel or data storage. Indirect access to training data from the manufacturing tool may involve accessing the training data from a data storage device separate from the manufacturing tool (e.g., separate from a log server). Data access module 222 may perform one or more processing operations on the accessed data before using it as training data. This processing may be referred to as preprocessing or postprocessing and may involve one or more operations for association, normalization, addition, removal, aggregation, filtering, sterilization, anonymization, or other operations.

[0043] Training data may include or be based on historical data, simulated data, augmented data, other data, or a combination of the above. Historical data may be derived from one or more actual executions of a manufacturing process, and these executions may be used for commercial, testing, experimental, research and development, other purposes, or a combination of the above. Augmented data may be based on historical data that has been manipulated to include variations, which may or may not exist in the data being manipulated. These variations may use one or more mathematical transformations to alter the data (e.g., reducing or increasing duration based on recipe modifications).

[0044] 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 tags). Auxiliary data may be labels, annotations, links, tags, or other data. Unlabeled data may be data without tags (e.g., missing tags, no tags, no tags). Unlabeled data may be stored without tags and may or may not remain unlabeled until accessed by the training module 224.

[0045] Training module 224 enables computing device 120 to analyze training data and create one or more machine learning models 126. Training module 224 can create new machine learning models or update existing ones. Training machine learning models can involve using one or more training techniques, including proprietary, standardized, open-source, or combinations thereof. In one example, training module 224 can analyze training data and identify one or more durations for each combination of resources and tasks. For example, training module 224 can identify the duration consumed by resources to perform each applicable task (e.g., average duration, maximum duration, most recent duration). In another example, training module 224 can provide training data to a training framework that creates machine learning models 126. The training framework can be compatible with TensorFlow. TM Keras TM PyTorch TM Open Neural Network Exchange (ONNX) TM It is the same as or similar to the Cognitive Toolkit (CNTK), Azure Machine Learning Services, CreateML, other machine learning frameworks, or combinations thereof.

[0046] Training module 224 can store the training results as machine learning model 126 in data storage 240. Machine learning model 126 can be stored as one or more file objects (e.g., files, directories, links), database objects (e.g., records, tuples), other storage objects, or combinations thereof. Data storage 240 can be a memory (e.g., random access memory), a drive (e.g., hard disk drive, flash drive), a database system, or another type of component or data storage device capable of storing data. Data storage 240 can include multiple storage components (e.g., multiple drives or multiple databases) that can span multiple computing devices (e.g., multiple server computers). Machine learning model 126 can be transferred to one or more other data storage devices or computing devices, and the machine learning model can be accessed by computer simulation component 230.

[0047] Computer simulation component 230 enables computing device 120 to execute a set of computer simulations that use machine learning model 126 and task data 122 to produce a set of simulation results. Each simulation result may include a schedule of resources for processing products and may indicate the time each resource will take to process one or more products. The schedule may be used for future execution of the manufacturing tool or for the current execution of the manufacturing tool. For example, input from the current execution (e.g., resource latency X) may be used to update the model and simulate the remaining tasks to identify the modified schedule. The modified schedule can then be used by the manufacturing tool to change the execution of subsequent tasks. This modification to the schedule can be made with minimal delay to the manufacturing process (e.g., without needing to stop or restart the manufacturing tool). Figure 2 In the example, the computer simulation component 230 may include a startup module 232, an execution module 234, an optimization module 236, and a result provision module 238.

[0048] The initiation module 232 can use simulated inputs to initiate one or more of the computer simulations. Simulated inputs may include machine learning model 126 and model inputs. Model inputs may be based on task data 122, resource data 242, product quality data, user input data, other data, or a combination of the above. Model inputs may be in the form of one or more input vectors identifying the task and / or resource corresponding to the product. Each product in a set of products may be associated with the same product vector or different product vectors. Model inputs may also include a set of start times indicating when the manufacturing tool will begin processing one or more of the products. Machine learning model 126 can be accessed from local storage, remote storage, or a combination of the above. In one example, initiation module 232 may receive machine learning model 126 from a local storage location (e.g., data storage 240), which may occur when 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 transferred to computing device 120. In another example, startup module 232 can access machine learning model 126 from a server on the same network or on a different network (e.g., the Internet) via computer network 130, which can enable customers to receive machine learning model 126 or updates to the model from a third party (e.g., a tool maker or reseller).

[0049] Execution module 234 enables computing device 120 to execute a set of computer simulations sequentially, in parallel, or in a combination of the above. During the execution of the computer simulation, execution module 234 can detect one or more resource conflicts. Resource conflicts may occur while a product (e.g., a second product) is waiting for resources to complete the processing of another product (e.g., a first product). Execution module 234 can resolve conflicts by adjusting the start time of one or more of the products, which may involve adjusting the start time of the first product to an earlier time (e.g., speeding up), or adjusting the start time of the second product to a later time (e.g., delaying), or a combination of the above. The adjusted time can be incorporated into the simulation results.

[0050] Each simulation result can represent one or more timelines that can be organized or arranged by resource or product. In one example, timelines can be organized by resource, and each timeline can correspond to a corresponding resource and indicate when the resource processes each product (e.g., all wafers modified by a corresponding chamber). In another example, timelines can be organized by product, and each timeline can correspond to a corresponding product and indicate when and where the product is processed (e.g., all chambers that process a corresponding wafer). In either example, the simulation result can be represented as a set of output vectors.

[0051] Output vectors can be data structures storing time-series data and can represent timelines of a specific resource (e.g., a chamber), a specific product (e.g., a wafer), a specific tool, other items, or combinations thereof. Each output vector can include time data, resource data, task data, or other data. A set of output vectors can include one or more resource vectors (e.g., chamber vectors) corresponding to a specific resource or a product vector (e.g., wafer vector) corresponding to a specific manufactured product. In one example, output vectors can be a set of resource vectors, each corresponding to a specific resource (e.g., a chamber) of a manufacturing tool. Resource vectors can include time-series data, which includes a plurality of time values ​​and product identifiers. The time-series data can indicate multiple products processed by the resource and the time during which the products are processed (e.g., start time, end time, duration). In another example, output vectors can be a set of product vectors, each corresponding to a specific product (e.g., a wafer) manufactured by the manufacturing tool. Product vectors can include time-series data, which includes a plurality of time values ​​and resource identifiers indicating multiple resources processing the product and the time during which the resources process the product.

[0052] Optimization module 236 can analyze simulation results and calculate optimized values ​​for those results. Optimized values ​​can be based on one or more products, resources, tools, or combinations thereof. For example, optimized values ​​can be based on product idle time (e.g., maximum wafer idle time), resource utilization (e.g., chamber utilization), tool throughput (e.g., wafers per hour), other values, or combinations thereof. Optimized values ​​can also be based on, or alternatively on, one or more specific tasks. For example, optimized values ​​(e.g., product idle time) can be based on time before, during, or after a specific task or task group. This can be particularly advantageous when some of the tasks performed on a product by manufacturing tools may be time-related (e.g., time-sensitive lithography tasks). Time-related variations across different products in a set of products can cause the manufactured product to vary in a manner exceeding a predefined threshold (e.g., a heat loss threshold).

[0053] In one example, optimization module 236 can use the set of output vectors to determine an optimization value, such as the idle time of a product. The idle time can be based on one or more durations during which the product waits for resource conflicts to be resolved (e.g., waiting for resources to become available), and can include durations before, during, or after the execution of a task. The one or more durations can include the duration before the product is loaded from the transport device into the manufacturing tool, the duration in a stored resource (e.g., a wafer cache or queue), other durations, or combinations thereof. As discussed above, the output vector can include multiple time values, and these time values ​​can be compared to determine the wafer's idle time. When the output vector is a product vector, the idle time of a particular product can be determined by analyzing a single product vector. When the output vector is a resource vector, the idle time of a particular product can be determined by analyzing the resource vector for each resource processing a particular product. In either example, determining an optimization value (e.g., idle time) can be performed by comparing the time values ​​of one or more of the output vectors.

[0054] Optimization module 236 can compare optimization values ​​from different computer simulations. The optimization value of a simulation result can be compared to one or more optimization values ​​from the set of simulation results. The comparison can be a mathematical comparison to determine one or more differences between optimization values. These differences can be weighted and / or aggregated before or after the comparison. In one example, optimization module 236 can select a simulation result from the set of simulation results based on a comparison of optimization values ​​(e.g., selecting the simulation result with the highest or lowest value). In another example, optimization module 236 can determine whether to perform one or more additional computer simulations based on a comparison. This can involve determining whether the additional simulations identify a better solution (e.g., a schedule with less idle time). When subsequent simulation results are more optimized or significantly more optimized (e.g., optimization value differences above a threshold), optimization module 236 can communicate with initiation module 232 to perform one or more computer simulations. When subsequent simulation results are less optimized or only minimally optimized (e.g., below a threshold), optimization module 236 can choose not to perform additional computer simulations and can select an optimized result 129 from the existing set of simulation results.

[0055] In one example, the output of a computer simulation can be used to determine the input for subsequent computer simulations. For instance, a first computer simulation might generate a resource schedule in which the last manufactured product is idle during intermediate steps. The duration of this idle time can be used to adjust the start time of products in subsequent computer simulations. For example, the simulation result might indicate that product x is idle for a duration y after task n (e.g., the fifth wafer is delayed by 90 seconds), and the input for subsequent computer simulations could delay the start time of product x for a duration n. In another example, the startup module can generate multiple different sets of product start times, and each set of start times can be used as input for computer simulations that run and produce different simulation results.

[0056] Results providing module 238 enables computing device 120 to provide simulation results to a user or device associated with the manufacturing tool. Providing simulation results may involve presenting simulation results, transmitting simulation results, storing results, or a combination of the above. Results providing module 238 may use a user interface (e.g., a graphical user interface (GUI)) to present simulation results, displaying one or more simulation results and details about the computer simulation (e.g., optimization values, number of simulations, value differences, optimal scheduling). In one example, the user interface may include one or more display graphs that visually represent the simulation results as scheduling (e.g., resource scheduling, product scheduling, task scheduling) using one or more timelines. Display graphs (e.g., bar charts, Gantt charts) may include resource-organized graphs (e.g., resource graphs) that include a set of horizontal bars for a first resource and a set of horizontal bars for a second resource (e.g., a first chamber and a second chamber). Each set of horizontal bars may represent a time block corresponding to a product processed by the corresponding resource. Display graphs may also include, or alternatively include, product-organized graphs (e.g., product graphs) that include a set of horizontal bars for a first product and a set of horizontal bars for a second product (e.g., a first wafer and a second wafer). Each set of horizontal bars can represent a time block corresponding to the resources used to process the relevant product. The user interface may also include one or more control elements configured to receive user input (e.g., process engineer). These control elements can be used to select one or more of the simulation results for use by manufacturing tools (e.g., selection of optimized scheduling).

[0057] The results providing module 238 may also provide the manufacturing tool with optimized data associated with one of the simulation results. The optimized data may be related to the optimized result 129 and may include one or more start times, timelines, schedules, or other data. In one example, providing optimized data to the manufacturing tool may involve establishing a communication channel with the manufacturing tool and using the communication channel to transmit the optimized data from the computing device 120 to the manufacturing tool. In another example, providing optimized data to the manufacturing tool may involve storing the optimized data in a data storage object and enabling the manufacturing tool to access the data storage object (e.g., a data storage object stored on a network storage device).

[0058] Figure 3A flowchart illustrating an illustrative example of a method 300 for performing simulation-based optimization to identify scheduling for manufacturing tools, based on one or more aspects of this disclosure. Each of the methods 300 and its individual functions, routines, subroutines, or operations can be executed by one or more processors of a computer device performing the method. In some embodiments, method 300 can be executed by a single computing device. Alternatively, method 300 can be executed by two or more computing devices, each performing one or more individual functions, routines, subroutines, or operations of the method.

[0059] For ease of explanation, the method disclosed herein is depicted and described as a series of actions. However, actions according to this disclosure may be performed in various sequences and / or in parallel, and may be performed together with other actions not presented or described herein. Furthermore, implementing the method according to the disclosed subject matter may not require all the illustrated actions. Additionally, those skilled in the art will understand that these methods may be alternatively represented as a series of interrelated states via state diagrams or events. Furthermore, it should be understood that the methods disclosed in this specification can be stored on manufactured articles to facilitate the delivery and transmission of such methods to computing devices. The term "manufactured article" as used herein is intended to encompass computer programs accessible from any computer-readable device or storage medium. In one embodiment, method 300 can be performed as follows: Figure 2 The model creation component 220 and computer simulation component 230 shown are used to perform this.

[0060] Method 300 can be executed 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 the resources of a manufacturing tool. Resources may include a first chamber, a second chamber, and one or more additional chambers. The processing device determines the resources by analyzing data of the manufacturing tool to identify the layout of the resources and determine the type of each of the resources. In one example, the first chamber may be a modification chamber for modifying a product (e.g., an etching chamber), while the second chamber may be a movement chamber for moving a product (e.g., a robotic arm chamber).

[0061] At block 304, the processing device can access task data indicating a first manufacturing task and a second manufacturing task. The task data may include a sequence of recipes for processing wafer products, and the sequence of recipes may include recipes for a first chamber and recipes for a second chamber. The sequence of tasks may include a start task, a plurality of intermediate tasks, and an end task. One or more resources may be able to perform the same task, and each resource may be able to perform one or more tasks.

[0062] At block 306, the processing apparatus may determine a first duration for performing a first manufacturing task using the first chamber and a second duration for performing a second manufacturing task using the second chamber. The processing apparatus may determine the duration by analyzing time data previously generated by a manufacturing tool while processing a plurality of wafers using the same or different task data. The time data may be generated during past manufacturing runs (e.g., historical runs that have been completed) or current runs (e.g., ongoing runs that have not yet been completed). In one example, the time data may include a plurality of times for the same manufacturing tool, and the plurality of times may include one or more wafer loading times, wafer processing times in the first chamber, wafer processing times in the second chamber, wafer transfer times between the first and second chambers, other times, or combinations thereof.

[0063] At box 308, the processing device can update the machine learning model based on the duration for performing the first manufacturing task and the duration for performing the second manufacturing task. The update may involve accessing time data for the manufacturing tool from a data storage device associated with the manufacturing tool, and using that time data to train the machine learning model to model the manufacturing tool in time. The trained machine learning model can then be stored in the manufacturing tool or on a device connected to the manufacturing tool via a computer network.

[0064] At block 310, the processing device can execute a set of computer simulations that use machine learning models and task data to produce a set of simulation results. Executing the set of computer simulations may involve accessing the machine learning models to predict the processing of a set of wafers. The processing device can execute a first computer simulation using a set of start times for the set of wafers and can detect at least one wafer in the set of wafers being idle for a duration exceeding a predefined threshold (e.g., greater than n seconds). The processing device can modify the set of start times to include different start times for the at least one wafer and execute a second computer simulation using the modified set of start times.

[0065] The processing device can also calculate optimized values ​​for the simulation results. Optimized values ​​can be based on one or more of the following: wafer idle time, chamber utilization, tool throughput, or a combination thereof. The processing device can compare the optimized value with one or more optimized values ​​from the set of simulation results and select a simulation result from the set based on the comparison. In one example, optimized values ​​can be calculated based on a set of intermediate tasks (e.g., wafer idle time during tasks C and F).

[0066] At block 312, the processing device may store simulation results from the set of simulation results in a data storage device. The simulation results may be a set of resource vectors, including resource vectors for each chamber of a manufacturing tool used to process the set of products. Each resource vector may include a plurality of time values ​​and may represent a timeline for a specific chamber used to process the plurality of 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 horizontal bars for a first chamber representing time blocks for one or more wafers in a set of wafers, and a set of horizontal bars for a second chamber representing time blocks for one or more wafers in the set of wafers. The method may terminate in response to completion of the operations described above with reference to block 312 herein.

[0067] Figure 4 This is a block diagram illustrating a computer system 400 according to certain embodiments. In some embodiments, the computer system 400 may be connected (e.g., via a network such as a local area network (LAN), intranet, extranet, or the Internet) to other computer systems. The computer system 400 may operate as a server or 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), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular phone, web appliance, server, network router, switch, or bridge, or any device capable of executing a set of instructions (sequential or otherwise) specifying the action to be taken by that device. Further, the term "computer" should include any collection of computers that individually or jointly execute a set (or more) of instructions to perform any or more of the methods described herein.

[0068] In another aspect, the computer system 400 may include a processing device 402, volatile memory 404 (e.g., random access memory (RAM)), non-volatile memory 406 (e.g., read-only memory (ROM) or electrically erasable programmable ROM (EEPROM)) and data storage device 416, which may communicate with each other via a bus 408.

[0069] The processing device 402 may be provided by one or more processors such as a general-purpose processor (for example, a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a microprocessor that implements other types of instruction sets, or a microprocessor that implements a combination of multiple types of instruction sets) or a special-purpose processor (for example, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), or a network processor).

[0070] 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., LCD), an alphanumeric input device 412 (e.g., keyboard), a cursor control device 414 (e.g., mouse), and a signal generation device 420.

[0071] In some embodiments, data storage device 416 may include a non-transitory computer-readable storage medium 424 on which instructions 426 may be stored, encoding any or more of the methods or functions described herein, including instructions for... Figure 2 The tool analysis component 210, model creation component 220, or computer simulation component 230 are coded with instructions for implementing the methods described herein.

[0072] Instruction 426 may also reside wholly or partially in volatile memory 404 and / or processing device 402 during execution of instruction 426 by computer system 400. Therefore, volatile memory 404 and processing device 402 may also constitute machine-readable storage media.

[0073] Although computer-readable storage medium 424 is shown as a single medium in the illustrative example, the term "computer-readable storage medium" should include a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) that store one or more sets of executable instructions. The term "computer-readable storage medium" should also include any tangible medium capable of storing or encoding a set of instructions for execution by a computer that causes the computer to perform any or more of the methods described herein. The term "computer-readable storage medium" should include, but is not limited to, solid-state memory, optical media, and magnetic media.

[0074] The methods, components, and features described herein can be implemented by discrete hardware components or integrated into the functionality of other hardware components such as ASICs, FPGAs, DSPs, or similar devices. Alternatively, the methods, components, and features can be implemented by firmware modules or functional circuitry systems within a hardware device. Furthermore, the methods, components, and features can be implemented using any combination of hardware devices and computer program components or by a computer program.

[0075] Unless otherwise specifically stated, terms such as “receive,” “determine,” “select,” “execute,” “process,” “measure,” “report,” “update,” “analyze,” “train,” “create,” “add,” “calculate,” “cause,” “execute,” “generate,” “use,” “modify,” “compare,” “access,” “shift,” “store,” “detect,” or similar terms refer to actions and processes performed or implemented by a computer system that manipulate and transform data represented as physical (electronic) quantities in computer system registers and memories into other data similarly represented as physical quantities in computer system memory or registers or other such information storage, transmission, or display devices. Furthermore, terms such as “first,” “second,” “third,” “fourth,” etc., as used herein, are intended as markers to distinguish different elements and may not have a sequential meaning based on their numerical designation.

[0076] The examples described herein also relate to apparatus for performing the methods described herein. This apparatus may be specifically configured to perform the methods described herein, or it may comprise a general-purpose computer system selectively programmed by a computer program stored in a computer system. Such a computer program may be stored in a computer-readable tangible storage medium.

[0077] The methods and illustrative examples described herein are not inherently related to any particular computer or other device. Various general-purpose systems can be used in accordance with the teachings described herein, or it may prove appropriate to construct more specialized devices to perform each of the individual functions, routines, subroutines, or operations described herein. Examples of structures for various such systems are illustrated in the description above.

[0078] The foregoing description is intended to be illustrative and not restrictive. While this disclosure has been described with reference to specific illustrative examples and embodiments, it will be appreciated that this disclosure is not limited to the examples and embodiments described. The scope of this disclosure should be determined with reference to the appended claims, together with the full scope of their equivalents.

Claims

1. A simulation-based optimization method for scheduling manufacturing resources, the method comprising the steps of: determining, by a processing device, resources of a manufacturing tool, wherein the resources comprise 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, a model input of the machine learning model being indicative of resources used in a sequence of processes and task data defining content of tasks performed in respective resources, and a model output of the machine learning model being indicative of task durations for respective resources; performing, by the processing device, a set of computer simulations that use the machine learning model to produce a set of simulation results for processing a set of wafers, performing the set of computer simulations comprising the steps of: performing a first computer simulation using a set of start times for the set of wafers, a model input, and the machine learning model to obtain first simulation results indicative of when each resource processes each wafer in the set of wafers, the model input being indicative of resources used in processing each wafer in the set of wafers and task data defining content of tasks performed in respective resources; detecting that at least one wafer in the set of wafers is idle between any two tasks for a duration that exceeds a pre-defined 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 to obtain second simulation results indicative of when each resource processes each wafer in the set of wafers; selecting one simulation result from the set of simulation results based on one or more optimization values; and storing, by the processing device, the selected one simulation result in a data store.

2. The method of claim 1, further comprising the step of analyzing time data generated by the manufacturing tool, wherein the time data is generated while a plurality of wafers are being processed by the manufacturing tool according to the task data.

3. The method of claim 2, wherein the time data comprises a plurality of times for the manufacturing tool, wherein the plurality of times comprises a plurality of wafer load times, wafer processing times for the first chamber, wafer processing times for the second chamber, and wafer transfer times between the first chamber and the second chamber.

4. The method of claim 1, further comprising the steps of: accessing time data for the manufacturing tool from a data store associated with the manufacturing tool; training the machine learning model using the time data to model the manufacturing tool; and storing the machine learning model in the manufacturing tool. ​ ​ ​ 5. The method of claim 1, wherein one simulation result comprises a set of resource vectors, the set of resource vectors comprising resource vectors for each chamber of the manufacturing tool, wherein the resource vectors comprise a plurality of time values ​​and represent timelines for processing a plurality of wafers in the chambers.

6. The method of claim 1, further comprising the following steps: Calculate the one or more optimization values, wherein the one or more optimization values ​​include optimization values ​​for the set of simulation results, the optimization values ​​for the set of simulation results being based on one or more of wafer idle time, chamber utilization, or tool throughput; Compare at least one optimized value among the corresponding simulation results in the set of simulation results; and The simulation result is selected from the set of simulation results based on the comparison step.

7. The method of claim 6, wherein the task data indicates a task sequence, the task sequence comprising a starting task, a plurality of intermediate tasks, and an ending task, and wherein the optimization value corresponds to the wafer idle time during a specific set of these intermediate tasks.

8. The method of claim 7, wherein one of the simulation results is selected such that the variation in wafer idle time among the specific set of these intermediate tasks is below a standard.

9. The method of claim 1, further comprising the step of: providing a display of a Gantt chart representing a simulation result for the manufacturing tool, wherein the Gantt chart includes a set of horizontal bars for the first chamber and representing time blocks for one or more wafers of the wafer set, and a set of horizontal bars for the second chamber and representing time blocks for one or more wafers of the wafer set.

10. The method of claim 1, wherein determining these resources of the manufacturing tool comprises the following steps: Analyze the manufacturing tools to identify the layout of these resources; and The type of each of these resources is determined, wherein the first chamber contains a modification chamber for modifying the wafer, and wherein the second chamber contains a movement chamber for moving the wafer.

11. The method of claim 1, wherein the task data comprises a recipe sequence for processing a wafer, wherein the recipe sequence comprises a recipe for the first chamber and a recipe for the second chamber.

12. A simulation-based optimization system for scheduling manufacturing resources, the system comprising: Memory; and Processing device, communicatively coupled to the memory, the processing device being used for: Determine the resources for manufacturing tools, wherein these resources include a first chamber and a second chamber; Access task data indicating the first and second manufacturing tasks; Determine the duration for performing the first manufacturing task using the first chamber and the duration for performing the second manufacturing task using the second chamber; The machine learning model is updated based on the duration for performing the first manufacturing task and the duration for performing the second manufacturing task, wherein the model input of the machine learning model indicates task data containing the resources used in a series of processes and the tasks performed within the respective resources, and the model output of the machine learning model indicates the task duration for the respective resources. Performing a set of computer simulations, which uses the machine learning model to produce a set of simulation results for processing a chipset, includes the following steps: A first computer simulation is performed using a set of start times for the wafer set, model inputs, and the machine learning model to obtain a first simulation result indicating when each resource processes each wafer in the wafer set, wherein the model inputs indicate the resources used in the processing of each wafer in the wafer set and task data defining the content of the tasks performed in the respective resources; Detect the duration for which at least one wafer in the wafer group remains idle between any two tasks for a period exceeding a predetermined threshold; Modify the set of start times to include different start times for the at least one wafer; and A second computer simulation is performed using the modified set of start times to obtain a second simulation result indicating when each resource processes each wafer in the wafer set; Select a simulation result from the set of simulation results based on one or more optimization values; and The selected simulation result is stored in the data storage.

13. The system of claim 12, wherein the processing apparatus further analyzes time data generated by the manufacturing tool, wherein the time data includes a plurality of times for the manufacturing tool, wherein the plurality of times includes a plurality of wafer loading times, wafer processing times in the first chamber, wafer processing times in the second chamber, and wafer transfer times between the first chamber and the second chamber.

14. The system of claim 12, wherein one simulation result comprises a set of resource vectors, the set of resource vectors comprising resource vectors for each chamber of the manufacturing tool, wherein the resource vectors comprise a plurality of time values ​​and represent timelines for processing a plurality of wafers in the chambers.

15. The system of claim 12, wherein the task data indicates a task sequence, the task sequence comprising a starting task, a plurality of intermediate tasks, and an ending task.

16. A non-transitory machine-readable storage medium storing instructions, which, when executed, cause a processing device to perform an operation comprising the following steps: Access time data from a data storage device associated with a manufacturing tool containing a first chamber and a second chamber, wherein the time data includes the duration for performing a manufacturing task using the first chamber and the duration for performing a manufacturing task using the second chamber; The manufacturing tool is modeled by training a machine learning model using the time data, the model input of the machine learning model indicating the resources used in a series of processes and the task data of the tasks performed within the respective resources, and the model output of the machine learning model indicating the task duration for the respective resources. A set of computer simulations is performed using the manufacturing tool, the set of computer simulations using the machine learning model to produce a set of simulation results for processing the wafer set, and performing the set of computer simulations includes the following steps: A first computer simulation is performed using a set of start times for the wafer set, model inputs, and the machine learning model to obtain a first simulation result indicating when each resource processes each wafer in the wafer set, wherein the model inputs indicate the resources used in the processing of each wafer in the wafer set and task data defining the content of the tasks performed in the respective resources; Detect the duration for which at least one wafer in the wafer group remains idle between any two tasks for a period exceeding a predetermined threshold; Modify the set of start times to include different start times for the at least one wafer; and A second computer simulation is performed using the modified set of start times to obtain a second simulation result indicating when each resource processes each wafer in the wafer set; Select a simulation result from the set of simulation results based on one or more optimization values; and The processing device stores the selected simulation result in the data storage device. In the simulation, one of the simulation results includes the scheduling of the manufacturing tool.

17. The non-transitory machine-readable storage medium of claim 16, wherein the time data comprises a plurality of times for the manufacturing tool, wherein the plurality of times comprises a plurality of wafer loading times, wafer processing times in the first chamber, wafer processing times in the second chamber, and wafer transfer times between the first chamber and the second chamber.

18. The non-transitory machine-readable storage medium of claim 16, wherein one of the simulation results comprises a set of resource vectors, the set of resource vectors comprising resource vectors for each chamber of the manufacturing tool, wherein the resource vectors comprise a plurality of time values ​​and represent timelines for processing a plurality of wafers in the chambers.

19. The non-transitory machine-readable storage medium of claim 16, wherein these operations further comprise the step of: providing a display of a Gantt chart representing the simulation result for the manufacturing tool, wherein the Gantt chart includes a set of horizontal bars for the first chamber and representing time blocks for one or more wafers of the wafer set, and a set of horizontal bars for the second chamber and representing time blocks for one or more wafers of the wafer set.

Citation Information

Patent Citations

  • Recipe execution time arithmetic device and semiconductor inspection device

    JP2013168498A

  • Scheduler for a cluster tool of semiconductor manufacturing

    KR100957401B1

  • Using graphics processing unit for substrate routing and throughput modeling

    WO2019246588A1