Detection of malfunction of CMP components using a time-based series of images
By using time-based image comparison through image processing or machine learning, the CMP system effectively detects malfunctions in real-time, ensuring accurate and efficient operation and preventing apparatus failures.
Patent Information
- Application Number
- JP2023553996
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-03-05
- Filing Date
- 2022-02-23
- Publication Date
- 2025-06-18
- Estimated Expiration
- 2042-02-23
AI Technical Summary
Conventional methods for monitoring the operation of chemical mechanical polishing (CMP) systems fail to accurately detect malfunctions in real-time, particularly when multiple components interact dynamically, leading to non-uniform polishing profiles and potential apparatus failures.
The system employs a series of time-based images (video images) to monitor the operation of CMP components by comparing reference images from a test operation with monitoring images from an actual polishing process using image processing or machine learning algorithms to detect deviations and indicate malfunctions.
This approach enables efficient and accurate real-time analysis of component operations, allowing for timely adjustments to prevent malfunctions, improve product quality, reduce costs, and ensure smooth operation of the polishing apparatus.
Smart Images

Figure 0007695378000001 
Figure 0007695378000002 
Figure 0007695378000003
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to chemical mechanical polishing (CMP), and more particularly to detecting malfunctions of CMP components using a series of time-based images (e.g., video images).
Background Art
[0002] Integrated circuits are typically formed on a substrate (e.g., a semiconductor wafer) by sequentially depositing conductive, semiconductive, or insulating layers on the silicon wafer and then processing the subsequent layers.
[0003] One manufacturing step involves depositing a fill layer on an uneven surface and planarizing the fill layer. In certain applications, the fill layer is planarized until the top surface of the pattern layer is exposed or the desired thickness remains on the underlying layer. Additionally, planarization can be used for lithography, e.g., to planarize the substrate surface of a dielectric layer.
[0004] Chemical mechanical polishing (CMP) is one generally accepted method of planarization. This planarization method typically requires that the substrate be attached to a carrier head. The exposed surface of the substrate is applied against a rotating polishing pad. The carrier head applies a controllable load on the substrate to press it against the polishing pad. In some situations, the carrier head includes a membrane that forms a plurality of independently pressurizable radially concentric chambers having pressures in each chamber that control the polishing rate in the corresponding area on the substrate. A polishing liquid, e.g., a slurry having polishing particles, is supplied to the surface of the polishing pad.
[0005] Image processing aims to process one or more image frames using various algorithms, including image compression, image filtering, image storage, and image comparison. Image comparison can be specialized for noise reduction, image matching, image encoding, and restoration, and can be performed by one or more computers at one or more locations using one or more image comparison algorithms. Image comparison algorithms can determine the level of similarity or difference between one or more images based on image characteristics, such as pixel values representing luminance, color, and transparency, or a metric distance (e.g., Hausdorff distance or other suitable distance) that measures the distance between sets of components within one image or across different image frames, or a feature kernel that represents local image patches and is used for feature matching between images. Image comparison algorithms can also be assisted by any suitable preprocessing steps, such as pixel intensity adjustment, normalization, or conformal filtering, to name just a few.
[0006] Video images can also be processed using machine learning algorithms. A neural network is a machine learning model that uses one or more layers of non-linear units to predict an output for a received input. Some neural networks include one or more hidden layers in addition to an output layer. The output of each hidden layer is used as input to the next layer in the network, i.e., the next hidden layer or the output layer. Each layer of the network generates an output from the received input according to the current values of its respective set of parameters. SUMMARY OF THE INVENTION
[0007] In one aspect, monitoring the operation of a polishing system includes obtaining a time-based series of reference images of components of the polishing system that perform operations during a test operation of the polishing system, receiving from a camera a time-based series of monitoring images of equivalent components of an equivalent polishing system that perform operations during polishing of a substrate, determining a difference value for the time-based series of monitoring images by comparing the time-based series of monitoring images with the time-based series of reference images using an image processing algorithm, determining whether the difference value exceeds a threshold value, and indicating a malfunction in response to determining that the difference value exceeds the threshold value.
[0008] In another aspect, monitoring the operation of a polishing system includes receiving from a camera a time-based series of monitoring images of components of the polishing system that perform operations during polishing of a substrate, inputting the time-based series of monitoring images into a machine learning model trained by training examples to detect malfunctions of components from expected operations, and receiving from the machine learning model indications of malfunctions of components from expected operations. The training examples include a time-based series of reference images of reference components of a reference polishing system that perform operations during a test operation.
[0009] Embodiments may include one or more of the following features. A component may be any one of a carrier head, a conditioner arm, a load cup, a platen, or a robot arm. An alarm may be generated in response to determining that a difference exceeds a threshold or in response to signs of malfunction. Each time-based series of reference images including a plurality of components of a polishing system that perform operations during respective test runs of the polishing system may be stored, and a time-based series of monitoring images including one or more equivalent components of an equivalent polishing system that perform operations during polishing of a substrate may be received from a camera, and respective difference values may be determined for each equivalent component of the monitoring images by comparing the time-based series of monitoring images with the time-based series of reference images using an image processing algorithm. For each of one or more equivalent components, it may be determined whether the respective difference value of the equivalent component exceeds the respective threshold value of the equivalent component, and malfunction of the equivalent component may be indicated in response to determining that the respective difference value exceeds the respective threshold value.
[0010] Certain embodiments can include one or more of the following possible advantages, but are not limited thereto.
[0011] The techniques described can be useful for efficient and accurate performance analysis of components in a polishing apparatus.
[0012] First, the techniques described can enable analysis of operations when multiple components within a polishing apparatus dynamically perform respective operations that interact with each other. In contrast to conventional image processing techniques that analyze static components individually, the techniques described can analyze and detect malfunction of the processing of one or more components in real time based on a time-based series of images (e.g., video frames). The techniques described can further enable and provide accurate in-situ analysis of component processing, not just by analyzing each static component individually.
[0013] Second, sensor data obtained from an in-situ monitoring system configured to monitor the polishing of the substrate need not be used. Instead, the described techniques enable an efficient overall analysis of one or more components captured in a video image. Additionally or alternatively, the described techniques can combine the analysis data with the sensor data or provide an analysis of the video image as an alternative or independent check of the components in addition to existing techniques for a more accurate analysis or diagnostic process.
[0014] Furthermore, the described techniques can generate a notification or warning indicating any detected malfunction of one or more components within the polishing apparatus, enabling quick and timely, manual or automatic control adjustments to correct the detected malfunction of one or more components. The described techniques can ultimately improve product quality, reduce costs, and smooth the polishing apparatus.
[0015] Also, the described techniques can store a video image capturing the operation of one or more components, enabling revisiting the stored video image for later troubleshooting or failure analysis and leading to a more accurate diagnosis.
[0016] Furthermore, the described techniques are easy to set up, implement, and scale up. Since the described techniques do not require major changes to accommodate one or more image sensors, they can be adapted to any suitable polishing apparatus. The described techniques can utilize either an image processing or a machine learning algorithm for the analysis and detection of component operation malfunctions by receiving video images of one or more components within a reference polishing apparatus that executes operations according to a set of reference instructions as a solo benchmark. The described techniques can scale up for a greater number of components as long as the captured video images can include these components. Thus, the described techniques can scale up readily with an image sensor that can capture a greater number of components with satisfactory resolution.
[0017] Details of one or more embodiments of the invention are set forth in the accompanying drawings and the following description. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.
Brief Description of the Drawings
[0018]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Modes for Carrying Out the Invention
[0019] Similar reference numbers and symbols in the various drawings indicate similar elements.
[0020] In an ideal process, each component of a polishing apparatus executes operations cooperatively under a set of instructions to enable the substrate to have a uniform thickness after polishing. However, in practice, one or more components of the polishing apparatus may execute operations that deviate from their respective instructions. This can result in non-uniform polishing profiles of the substrate being polished, collisions of one or more components within the apparatus, and even malfunctions of the apparatus. To avoid these consequences caused by malfunctioning of one or more components, it is beneficial to monitor the real-time component operations in the polishing apparatus, detect malfunctioning of one or more components, and timely adjust one or more components to restore their operations.
[0021] In conventional methods, one or more sensors can be incorporated into a polishing apparatus to monitor one or more components within the apparatus by measuring one or more characteristics of a processing element or a substrate. To give just a few examples, an optical or eddy current in-situ monitoring system can monitor the thickness of a layer on a substrate during polishing, or a thermal sensor can measure the temperature of a polishing pad during polishing. Data from a system that monitors a substrate during polishing can provide some information, but this may not be sufficient to detect or analyze deviations of system components from their expected movements, especially when there are a large number of components within the polishing apparatus.
[0022] Furthermore, some conventional techniques do not dynamically monitor components while one or more components of a polishing apparatus are executing operations in-situ, but rather statically monitor and acquire sensor data for analysis. These conventional techniques acquire image data of static components and analyze the static components based on the acquired image data. The image data can include, for example, the bottom surface profile of a static holding ring acquired through a coordinate measurement machine (CMM) for analyzing the polished edge region of a substrate.
[0023] The techniques described below can potentially mitigate one or more of the aforementioned problems. A system or polishing apparatus that employs the described techniques can use one or more video sensors (e.g., cameras) to acquire a time - based series of reference images of reference components within a reference polishing apparatus and capture a time - based series of monitoring images of equivalent components in an equivalent polishing apparatus. A time - based series of images is captured while one or more components are performing their respective operations. The system can analyze the captured image frames between the reference components and the equivalent components to determine malfunctions in real time. In response to the determination of a malfunction, the system can generate a notification, e.g., a warning indicating the malfunction in a user interface component. The system can further instruct the polishing apparatus to adjust the operation of one or more components to correct the malfunction. Optionally, the system can also terminate at least a portion of the operations being performed in the polishing apparatus. To determine malfunctions, the system can employ various algorithms executed by one or more computers located in one or more locations. The algorithms can include any suitable image processing or machine learning algorithms.
[0024] In some embodiments, the captured image frames can include one or more reference components. The system can analyze a plurality of equivalent components within a subset of the reference components captured in the captured reference image frames.
[0025] More specifically, the polishing apparatus components include a robot arm, a load cup, a conditioner arm, a transfer station, a carrier head, a slurry arm, a platen, and one or more motors for driving the rotation of the carrier head and the platen. The operations of these components interact with each other. For example, the robot arm interacts with the load back in such a way that the robot art is configured to grasp one substrate from the cassette and place it horizontally (i.e., the top surface or the bottom surface of the substrate is facing a substantially vertical position) on the pedestal of the load cup. As another example, the carrier head interacts with the load cup such that the carrier head is configured to grasp the substrate away from the pedestal of the load cup. Details of the structure and operation of each component within the polishing apparatus will be described later.
[0026] The polishing apparatus can control one or more of the components within the polishing apparatus to execute their respective operations according to a set of instructions. The set of instructions can include a plurality of parameters that are determined in advance by the user or automatically by the polishing apparatus to control the operations of each component. The plurality of parameters can include, for example, data specified to control the position, or the operation of the component, or the change in the physical field within the component. More specifically, the data can be, to name just a few examples, the circumferential speed of the carrier head for rotating relative to the axis of rotation of the carrier head, or the flow rate of the slurry applied by the nozzle of the slurry arm.
[0027] A polishing apparatus can have various sets of instructions with various parameters according to various polishing requirements. The set of instructions is also called a recipe for the polishing apparatus in the following description. A recipe that, when accurately executed by the components of the polishing apparatus, can polish one or more substrates on the polishing apparatus to substantially meet specific polishing requirements can also be called a "golden recipe". The golden recipe can be different among different polishing apparatuses having different components for meeting the same polishing requirements. Ideally, the golden recipe can be adopted among equivalent polishing apparatuses under the same polishing requirements.
[0028] Throughout the foregoing and the specification, the term "equivalent" is used to represent a level of substantial similarity. More specifically, a polishing apparatus equivalent to a reference apparatus can substantially have the same overall dimensions, structural design, number and type of components (i.e., equivalent components), and operating pipeline as the reference apparatus. As an extreme example, an equivalent polishing apparatus can ideally be the same copy of the reference apparatus (e.g., one of the products within the same production batch), or the same model, or the same model with one or more optional add-ons or minor modifications, or have a slightly different number of one or more equivalent components but still substantially maintain the same operation. Equivalent components of a reference component can be described in the same way as an equivalent polishing apparatus. More specifically, an equivalent component can be the same polishing component as the reference component. Alternatively, an equivalent component can have optional add-ons or minor modifications and substantially maintain the same operation as the reference component and be substantially identical to the reference component.
[0029] Throughout the foregoing and the entire specification, the term "malfunction" indicates a deviation between the measured operation of a component and the operation of a reference component. Since the reference component is assumed to operate accurately according to a given recipe, malfunctions are associated only with equivalent components. For example, a malfunction in a process can be quantified between the incorporated movement of an equivalent component and the corresponding reference movement of the reference component in one or more time steps. As another example, a malfunction in a process can be quantified between the measured slurry flow rate from an equivalent nozzle and the corresponding reference flow rate in a reference slurry nozzle. The quantified difference can be output from different algorithms that process the incorporated video image, such as video image processing or machine learning algorithms. A malfunction in a process can be determined through various algorithms by determining the difference between the incorporated image frames of a reference component operating in a reference polishing apparatus and an equivalent component operating in an equivalent polishing apparatus, and comparing that difference to a predetermined threshold. If the determined difference exceeds the predetermined threshold, the system or polishing apparatus detects a malfunction in the equivalent component.
[0030] FIG. 1 is a schematic cross-sectional view of an exemplary polishing apparatus 20. The polishing apparatus 20 includes a rotatable disk-shaped platen 24 on which a polishing pad 30 is located. The platen 24 is operative to rotate about an axis 25 (see arrow A in FIG. 3). For example, a motor 22 can rotate a driver shaft 28 to rotate the platen 24. The polishing pad 30 can be a two-layer polishing pad having an outer polishing layer 34 and a softer backing layer 32. The polishing apparatus 20 can include a supply port, for example, at the end of a slurry supply arm 39, to apply a polishing liquid 38, such as a polishing slurry, to the polishing pad 30.
[0031] Referring to FIG. 3, the polishing apparatus 20 can include a pad conditioner 90 having a conditioner disk 92 to maintain the surface roughness of the polishing pad 30. The conditioner disk 92 can be positioned within a conditioner head 93 at the end of a conditioner arm 94. The arm 94 and the conditioner head 93 are supported by a base 96.
[0032] The conditioner arm 94 can swing to sweep the conditioner head 93 and the conditioner disk 92 laterally across the polishing pad 30.
[0033] Referring back to FIG. 1, the polishing apparatus 20 can also include a carrier head 70 that operates to apply the substrate 10 against the polishing pad 30.
[0034] The carrier head 70 is suspended from a support structure 72, such as a carousel or a track, and is connected by a driver shaft 74 to a carrier head rotation motor 76 so that the carrier head can rotate around an axis 71. Optionally, the carrier head 70 can vibrate laterally, for example, on a slider on the carousel, by movement along the track or by the rotational vibration of the carousel itself.
[0035] The carrier head 70 can include a flexible membrane 80 having a substrate attachment surface to contact the back side of the substrate 10 and a plurality of pressurizable chambers 82 for applying different pressures to different zones on the substrate 10, such as different radial zones. The carrier head 70 can include a retaining ring 84 for holding the substrate. In some embodiments, the retaining ring 84 can include a lower plastic portion 86 that contacts the polishing pad and an upper portion 88 of a harder material, such as metal.
[0036] During operation, the platen 24 is rotated about its central axis 25. The carrier head is rotated about its central axis 71 (see arrow B in FIG. 3) and translated laterally across the top surface of the polishing pad 30 (see arrow C in FIG. 3).
[0037] The polishing apparatus 20 also includes a transfer station for loading and unloading substrates from the carrier head 70 (see FIG. 2).
[0038] The transfer station can include a plurality of load cups 8, for example, two load cups, adapted to facilitate the transfer of substrates between the carrier head 70 and a factory interface (not shown) or another device (not shown) by a transfer robot arm (not shown).
[0039] The load cups 8 generally facilitate the transfer between the robot arm and the respective carrier heads 70 by loading and unloading the carrier heads 70.
[0040] FIG. 2 is a schematic cross-sectional view of an exemplary load cup 8 having an exemplary carrier head 70. As shown in FIG. 2, each load cup 8 includes a pedestal 204 for holding the substrate 10 during the loading / unloading process. The load cup 8 also includes a housing 206 that surrounds or substantially surrounds the pedestal 204.
[0041] The actuator provides relative vertical movement between the housing 206 and the carrier head 70. For example, the shaft 210 can support the housing 206 and be vertically actuable to raise and lower the housing 206. Alternatively or additionally, the carrier head 70 can be vertically movable. The pedestal 205 can be axially aligned with the shaft 210. The pedestal 204 can be vertically movable relative to the housing 206.
[0042] During operation, the carrier head 70 can be placed on the load cup 8, and the housing 206 can be raised (or the carrier head 70 can be lowered) such that the carrier head 70 is partially within the cavity 208. The substrate 10 can start on the pedestal 204 and be chucked onto the carrier head 70, and / or can start on the carrier head 70 and be de-chucked onto the pedestal 204.
[0043] The load cup 8 can further include nozzles for supplying steam for cleaning and / or preheating the carrier head 70 and the substrate 10. The polishing apparatus 20 can adjust the steam temperature, pressure, and flow rate to vary the cleaning and preheating of the carrier head 70 and the substrate 10. In some embodiments, the temperature, pressure, and / or flow rate can be adjusted independently for each nozzle or between groups of nozzles. The flow rate of the nozzles within the load cup 8 can be from 1 to 1000 cc / min, depending on the heater power and pressure.
[0044] Referring back to FIG. 1, the polishing apparatus 20 can also include a temperature control system 100 to control the temperature of the polishing pad 30 and / or the slurry 38 on the polishing pad. The temperature control system 100 can include a cooling system 102 and / or a heating system 104. At least one of, and in some embodiments both, the cooling system 102 and the heating system 104 operate by supplying a temperature-controlled medium, such as a liquid, vapor, or spray, onto the polishing surface 36 of the polishing pad 30 (or onto the polishing liquid already present on the polishing pad).
[0045] The cooling system 102 can include a source 130 of a liquid coolant medium and a gas source 132 (see FIG. 3). The cooling system 102 or the heating system 104 can include an arm 110 that extends from the edge of the polishing pad 30 over the platen 24 and the polishing pad 30 to or at least near the center of the polishing pad 30 (e.g., within 5% of the overall radius of the polishing pad). The arm 110 can be supported by a base 112, and the base 112 can be supported on the same frame 40 as the platen 24. The base 112 can include one or more actuators, such as a linear actuator for raising or lowering the arm 110 and / or a rotational actuator for swinging the arm 110 laterally on the platen 24. The arm 110 is arranged to avoid collisions with other hardware components such as the carrier head 70, the pad conditioning disk, and the arm 39 that applies slurry.
[0046] The exemplary cooling system 102 includes a plurality of nozzles 120 suspended from the arm 110. Each nozzle 120 is configured to spray a liquid coolant medium, such as water, onto the polishing pad 30. The arm 110 can be supported by the base 112 such that the nozzles 120 are separated from the polishing pad 30 by a gap 126.
[0047] FIG. 3 is a schematic top view of an exemplary polishing apparatus 20. As previously described with respect to FIG. 1, the polishing apparatus can include a heating system 102, a cooling system 104, and a rinse system 106. As shown in FIG. 3, the polishing apparatus can include separate arms for each of these systems. Each system can be actuated by its respective actuator. Alternatively, the various subsystems can be included in a single assembly supported by a common arm and a common actuator.
[0048] Similar to the cooling system 102, the heating system 104 is connected to a heating medium tank having a heating medium that includes a gas, such as steam (e.g., from steam generator 410) or hot air, or a liquid, such as hot water, or a combination of gas and liquid. The heating system 104 can include a plurality of nozzles and an arm extending over the platen 24 and the polishing pad 30 supported by a base 142. The base 142 can be supported on the same frame 40 as the platen 24. The base 142 can include actuators, such as a linear actuator for raising or lowering the arm 140 and / or a rotary actuator for laterally swaying the arm 140 on the platen 24. The arm is positioned to avoid collision with other hardware components such as the polishing head 70, the pad conditioning disk 92, and the arm 39 for applying slurry.
[0049] Similar to both the cooling system and the heating system, the high-pressure rinse system 106 is connected to a wash fluid tank 156 and configured to direct a wash fluid, such as water, at a high intensity onto the pad 30 to wash the pad 30 and remove used slurry, abrasive debris, etc. The high-pressure rinse system 106 includes a plurality of nozzles.
[0050] As shown in FIG. 3, the exemplary rinse system 106 includes an arm extending over the platen 24 and supported by a base 152, and the base 152 can be supported on the same frame 40 as the platen 24. The base 152 can include one or more actuators, such as a linear actuator for raising or lowering the arm 150 and / or a rotary actuator for laterally swaying the arm 150 on the platen 24. The arm 150 is positioned to avoid collision with other hardware components such as the polishing head 70, the pad conditioning disk 92, and the arm 39 for applying slurry.
[0051] In some implementations, the polishing system 20 can further include a wiper blade or body 170 for distributing the polishing liquid 38 across the polishing pad 30. Along the direction of rotation of the platen 24, the wiper blade 170 can be between the slurry supply arm 39 and the carrier head 70.
[0052] Referring back to FIGS. 1, 2, and 3, the polishing apparatus 20 can also include a controller 12 for controlling the operation of various components within the system. The controller 12 is also configured to receive sensor data collected by one or more sensors that measure the operation of the various components and to provide feedback adjustment to change the component operation based on the analysis of the received sensor data.
[0053] For example, to perform the operation of detecting malfunctioning of one or more components by comparing data with data from a reference component, the system can include one or more video image sensors 14 (e.g., cameras or recorders) each positioned with a view 16 of one or more components of the polishing apparatus 20. Each video image sensor 14 is configured to capture a time-based series of monitoring images of the operation of at least one component within the polishing apparatus. The video image sensors 14 can generally be positioned on the platen 24 so as to have a downward perspective view of the upper and / or lateral outer surfaces of various components, such as the carrier head 70, the slurry supply arm 39, etc. In this position, the substrate 10 is not monitored by the video image sensors 14.
[0054] The captured monitoring images can be transmitted to the controller 12 within the polishing apparatus or to one or more computers external to the polishing apparatus 20. The system can further analyze the captured monitoring images based on a time-based series of reference images of reference components in order to detect excursions of at least one component. Optionally, the system can generate a notification upon detection of a malfunction and adjust the operation of at least one component controlled by the controller 12. To adjust the operation, the controller can send a feedback signal to a control mechanism (e.g., a mechanism associated with an actuator, motor, or pressure source) for adjusting the operation of at least one component. The feedback signal can be calculated by the controller 12 using an internal feedback algorithm or received from an external computer based on the captured monitoring images. Details of acquiring the reference images and analyzing the captured monitoring images using different algorithms are described later.
[0055] FIG. 4 is a flowchart showing an exemplary process 400 for malfunction detection based on video images using image processing. Process 400 can be executed by one or more computers located at one or more locations. Alternatively, process 400 can be stored as instructions in one or more computers. When executed, the instructions can cause a process to be executed on one or more components of the polishing apparatus. For example, the controller 12, as shown in FIGS. 1 - 3, or one or more computers external to the polishing apparatus 20 can execute process 400.
[0056] The system acquires (402) a time-based series of reference images of the components of the polishing system that perform operations during a test operation of the polishing system. The system can include one or more video cameras appropriately positioned to capture the time-based series of reference images.
[0057] To obtain a time - based series of reference images of the reference components of the polishing system, an appropriate recipe, e.g., a golden recipe, is selected for the polishing system, and the associated polishing system is controlled using the controller 12 to perform the operation according to the golden recipe. If the reference component operation is substantially the same as the instructed operation, the video images acquired during the test image period can be used as the time - based series of reference images. For simplicity, the time - based series of reference images is also referred to as the reference video hereinafter.
[0058] During the actual polishing operation, e.g., as part of the manufacturing process of an integrated circuit on a substrate, the system receives (404) from the camera a time - based series of monitoring images of the equivalent components of an equivalent polishing system that performs operation d. Similar to obtaining the reference video, the system can use one or more cameras to capture a time - based series of monitoring images or receive a time - based series of monitoring images from an appropriate external monitoring system.
[0059] The system instructs the controller 12 of the equivalent polishing apparatus to adopt the same golden recipe for the reference components in the polishing apparatus for the equivalent components in the equivalent polishing apparatus and to control the equivalent components to perform the operations instructed by the golden recipe. The system uses one or more cameras to capture a time - based series of monitoring images. That set of monitoring images should at least include the equivalent components in the equivalent polishing apparatus. The system can store the captured monitoring images for later analysis. For simplicity, the time - based series of monitoring images is also referred to as the monitoring video hereinafter.
[0060] The system determines the difference values of a time-based series of monitoring images (406) by comparing a time-based series of monitoring images with a time-based series of reference images using an image processing algorithm. The system employs an image processing algorithm to analyze the monitoring video of equivalent components. The image processing algorithm takes both the reference video and the monitoring video as inputs, preprocesses both videos to reduce noise, and optionally normalizes the image pixel values of each frame of both videos.
[0061] The system can also set the start time of each of the two videos of the image processing algorithm. Starting at each respective start time, both the reference component and the equivalent component are in a substantially similar state and performing substantially similar operations. For example, the reference component is a carrier head within a reference polishing apparatus. The equivalent component is a copy of the carrier head within an equivalent polishing apparatus that is also a copy of the reference polishing apparatus. The system can set the start time of each of the two videos such that the reference carrier head and the equivalent carrier head each begin to rotate with their respective substrates on their respective platens at their respective start times. The start time of the reference video can be different from the start time of the monitoring video. For example, the carrier head in the reference video begins to rotate on the platen at the 5th second of the reference video. However, the equivalent carrier head in the monitoring video begins to rotate on the equivalent platen at the 31st second of the monitoring video.
[0062] The system generates a difference value representing the similarity between each frame of a reference video and a monitoring video starting from a start time. The difference value can be in any suitable form, such as a scalar, vector, or tensor. The difference value can be calculated in any suitable manner. For example, the difference value can be a measure of the difference between each pair of pixels from each frame of the monitoring and reference videos. More specifically, the measure of the difference can be the root mean square of the sum of the squared intensity differences for each pixel between each pair of frames, which can be the same as the output difference value. Alternatively, the difference value can be a measure of the difference between each pair of group pixels or kernel outputs from each frame. The kernel receives different groups of pixels and generates features at different levels of characteristics. For example, low-level characteristics can include lines or colors, and high-level characteristics can include complex shapes representing at least a portion of an object from basic shapes.
[0063] In some embodiments, the difference value can represent the level of similarity of physical fields obtained from both the reference video and the monitoring video. The system can use image processing algorithms to generate the velocity field, pressure field, or thermal field of corresponding components and compare the differences of one or more physical fields between the videos. Alternatively, the difference value can represent the difference in physical quantities in each component between both the reference video and the monitoring video. For example, the system can generate the average velocity, angular velocity, trajectory, or vibration of each component in each video and compare the differences of these physical quantities of the components in both videos. The difference value can be, to name just a few examples, the root mean square of each physical quantity between the videos, or the weighted sum of the absolute differences of each physical quantity between the videos.
[0064] The system determines whether the difference value exceeds a threshold (408). The system can receive a pre-determined threshold from the user or automatically generate a threshold using a specific algorithm, and can associate each obtained difference value with each threshold. The threshold can represent an upper limit of an absolute or relative difference value. For example, the threshold can be 1 mm / s in the case of a difference value in speed, or 10% in the case of a difference value in a thermal field.
[0065] In response to determining that the difference value exceeds the threshold, the system indicates a malfunction (410). The system can generate an alarm when it determines that the difference value exceeds the threshold. The system can also generate a notification on a user interface component.
[0066] Furthermore, the system can also generate a user presentation on a user interface component and add information as an overlay to the captured monitoring video. More specifically, the system can present to the user a monitoring video having a plurality of overlays, each presenting a respective characteristic of a time-based series of monitoring images. For example, the overlay can present various physical fields (e.g., flow field, thermal field), various physical quantities (e.g., angular velocity, orbit), and notifications (e.g., alarm, analysis summary).
[0067] Malfunctions can include various operations performed by equivalent components that deviate from the operations performed by the reference components indicated by the reference recipe. For example, a malfunction can be a departure of a component from an expected operating path (e.g., an expected orbit). In these situations, with respect to FIGS. 1-3, the components can be, for example, the carrier head 70, the platen 24, the substrate 10 being polished, the pedestal 204 in the load cup 8, the conditioner arm 94, the arms 140, 150, 110, the wiper blade 170, and the robot arm.
[0068] For example, the carrier head 70 can be detected as deviating from the expected rotation (e.g., rotating at a slower angular velocity) by comparing the reference and monitoring videos. As another example, the wiper blade 170 can be detected as deviating from the expected trajectory such that the wiper collides with the carrier head 70. As another example, the pedestal 204 does not rise or fall as expected. As another example, two of the arms 94, 110, 140, and 150 collide while sweeping. As an extreme example, the substrate 10 can be detected as shattering into pieces on the platen 24 and slipping out of the carrier head 70.
[0069] The system can further analyze the excursion of components from the expected operating path to determine whether one or more motors are driving components in the system unexpectedly. Further, the system can determine, based on the malfunction, whether the initial calibration process was not performed properly.
[0070] Furthermore, the malfunction can indicate a difference in the physical field when the component performs its operation. In these situations, with respect to FIGS. 1-3, the component can be, for example, the nozzle in the load cup 8, the nozzles of the cooling system 102, the heating system 104, and the rinse system 106, the platen 24, and the arm 39 that applies the slurry.
[0071] For example, the slurry flow rate applied from the dispensing arm 39 can be detected as having a slower flow rate than the reference video. As another example, the thermal field on the platen 24 can have one or more regions with a higher temperature than the reference video. As another example, the nozzle in the load cup 8 can be detected as having a high water pressure that would cause overspray. Overspray can also be detected in other components of the polishing apparatus, for example, overspray in the arm 39 that applies the slurry. As an extreme example, the platen 24 is detected as overheating and the nozzles of the cooling system 102 are clogged.
[0072] After determining that the difference value exceeds the threshold value, the system can generate a correction operation to adjust the equivalent components that perform the operations in order to reduce the difference value. The system can generate instructions for the operations adjusted by one or more computers outside the polishing apparatus 20, or the system can instruct the controller 12 to generate instructions. Then, the controller 12 can control the corresponding components based on the instructions to adjust their respective operations.
[0073] The system can easily scale up the analysis process to simultaneously detect malfunctions of multiple components within the polishing system.
[0074] The system first obtains each of a time-based series of reference images that includes a plurality of components of the polishing system that perform operations during each test operation of the polishing system.
[0075] The system then receives from the camera a time-based series of monitoring images that includes one or more equivalent components of the equivalent polishing system that perform operations during the polishing of the substrate. The plurality of components captured in the reference video should include one or more equivalent components of all types within the equivalent polishing apparatus. The system can perform steps similar to 406, 408, and 410 for each of the one or more equivalent components.
[0076] FIG. 5 is a flow diagram illustrating an exemplary process 500 for detecting malfunction based on video images using machine learning. Process 500 can be executed by one or more computers located at one or more locations. Alternatively, process 500 can be stored as instructions in one or more computers. When executed, the instructions can cause one or more components of the polishing apparatus to execute the process. For example, as shown in FIGS. 1-3, the controller 12, or one or more computers external to the polishing apparatus 20, can execute process 500.
[0077] The system receives (502) from a camera a time-based series of monitoring images of components of a polishing system that perform operations during polishing of a test substrate. Similar to the aforementioned process 400, the system can use one or more cameras to capture a time-based series of monitoring images, or receive a time-based series of monitoring images from a suitable external monitoring system. The system captures a monitoring video of components that perform operations as directed by a reference recipe.
[0078] The system inputs a time-based series of monitoring images into a machine learning model trained by training examples to detect malfunction of components from expected operations, where the training examples include a time-based series of reference images (504) of reference components of a reference polishing system that perform operations during a test operation and a series of reference images, for example, including classifications as normal operation or malfunction. The classification can also identify the type of malfunction, for example, a lifting failure of a pedestal within a load cup, a deviation of a carrier head from an expected sweep position, etc.
[0079] The system can obtain data representing a plurality of training examples from an external memory or collect training examples using one or more cameras. Each training example is a time-based series of images of components performing an operation. To collect training examples, the system can use a reference recipe (i.e., the same recipe for capturing monitoring videos) to perform an operation and instruct a plurality of equivalent polishing apparatuses having equivalent components to capture respective monitoring videos of each of the equivalent components. The system can train a neural network based on each of the captured monitoring videos.
[0080] In some embodiments, the system can obtain training examples using both a reference component in a reference polishing apparatus and one or more equivalent components in each of the equivalent polishing apparatuses. Optionally, the system can include weight values for each training example during training of the neural network and can set a larger weight value for training samples in the reference video.
[0081] After training the neural network, the system can perform inference calculations using input data (e.g., monitoring videos) of equivalent components. The equivalent components are components that are substantially similar to the equivalent components in the training samples.
[0082] The system receives an indication of a malfunction of a component from the expected operation from a machine learning model (506). Similar to step 410 of process 400, the system can detect excursions of equivalent components based on input data (e.g., monitoring videos of the components). The excursions are explained similarly with respect to process 400. The system can similarly generate a corrective action for adjusting the equivalent components performing the operation.
[0083] The system can store neural networks trained on one or more computers at one or more locations. One or more processors can access the stored neural networks simultaneously (e.g., parallel computing) to accelerate the inference operation. The system can continue to train the neural network with newly captured training examples. Similarly, the system can be scaled up to monitor the malfunctioning of multiple components in the polishing apparatus simultaneously.
[0084] As used herein, the term substrate can include, for example, a product substrate (e.g., including multiple memories or processor dies), a test substrate, a bare substrate, and a gate substrate. The substrate can be at various stages of integrated circuit manufacturing. For example, the substrate can be an exposed wafer, or the substrate can include one or more deposited and / or patterned layers. The term substrate can include circular disks and rectangular sheets.
[0085] The foregoing polishing apparatus and method can be applied in various polishing systems. Either the polishing pad or the carrier head, or both, can move to provide relative motion between the polishing surface and the substrate. For example, the platen can orbit rather than rotate. The polishing pad can be a circular (or some other shape) pad fixed to the platen. Some aspects of the endpoint detection system can be applicable to a linear polishing system, where, for example, the polishing pad is a continuous or reel-to-reel belt that moves linearly. The polishing layer can be a standard (e.g., polyurethane with or without fillers) polishing material, a soft material, or a fixed abrasive material. It should be understood that the term relative arrangement is used and the polishing surface and the substrate can be held in a vertical orientation or some other orientation.
[0086] The control of the various systems and processes described herein, or portions thereof, may be implemented in a computer program product that includes instructions stored in one or more non-transitory computer-readable storage media and executable on one or more processing devices. The systems described herein, or portions thereof, may be implemented as an apparatus, method, or electronic system that includes one or more processing devices and memory for storing instructions executable to perform the operations described herein.
[0087] The embodiments for the classification and training of the machine learning models described herein may be implemented in digital electronic circuits, in tangibly implemented computer software or firmware, in computer hardware including the structures disclosed herein and their structural equivalents, or in one or more combinations thereof. Embodiments of the subject matter described herein may be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded in a tangible non-transitory storage medium for execution by, or to control the operation of, a data processing apparatus. The computer storage medium may be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or one or more combinations thereof. Alternatively or additionally, the program instructions may be encoded in an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, generated to encode information for transmission to a receiver device suitable for execution by a data processing apparatus.
[0088] A computer program, which may also be referred to or described as a program, software, software application, app, module, software module, script, or code, can be written in any form of programming language, including compiler-type or interpreter-type languages, or declarative or procedural languages, and the computer program can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computer environment. The program may or may not correspond to a file in a file system. The program may be stored as part of a file that holds other programs or data, such as one or more scripts stored in a markup language document, as a single file dedicated to the program in question, or as multiple cooperating files, such as files that hold one or more modules, subprograms, or portions of code. The computer program may be deployed to be executed on one computer or located in one place or distributed among multiple computers located in multiple places and interconnected by a data communication network.
[0089] The processes and logical flows described herein may be executed by one or more programmable computers that execute one or more computer programs to perform functions by operating on input data and generating output. The processes and logical flows may also be executed by special-purpose logic circuits, such as FPGAs or ASICs, or by a combination of special-purpose logic circuits and one or more programmed computers.
[0090] A computer suitable for the execution of a computer program can be based on a general-purpose or special-purpose microprocessor or both, or any other kind of central processing unit. Generally, the central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a central processing unit for executing or running instructions and one or more memory devices for storing instructions and data. The central processing unit and the memory can be supplemented by, or incorporated in, special-purpose logic circuitry. Generally, a computer will also include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or will be operably connected to receive data from, transfer data to, or both, such devices. However, a computer need not have such devices.
[0091] Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and CD ROM and DVD-ROM disks.
[0092] A data processing apparatus for implementing a machine learning model can also include, for example, a special-purpose hardware accelerator unit for processing the general and computationally intensive parts of machine learning training or generation, i.e., inference, workload.
[0093] A machine learning model can be implemented and deployed using a machine learning framework, such as the TensorFlow framework, the Microsoft Cognitive Toolkit framework, the Apache Singa framework, or the Apache MXNet framework.
[0094] Embodiments of the subject matter described in this specification can be implemented in, for example, a computer system that includes back-end components, such as a data server, or that includes middleware components, such as an application server, or that includes front-end components, such as a graphical user interface, a web browser, or a client computer having an app through which a user can interact with an implementation of the subject matter described in this specification, or in any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, such as a communication network. Examples of communication networks include local area networks (LANs) and wide area networks (WANs), such as the Internet.
[0095] A computer system can include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on respective computers and having a client-server relationship to each other. In some embodiments, a server, for example, serves to send data, such as an HTML page, to a user device for the purpose of displaying data to a user interacting with the device and receiving user input from such a user. Data generated at the user device, such as the result of user interaction, can be received at the server from the device.
[0096] This specification includes details of a number of specific embodiments, which should not be construed as limitations with respect to the scope of any invention or what may be claimed, but rather as descriptions of features that may be particular to specific embodiments of a particular invention. Certain features described herein in connection with separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in connection with a single embodiment may also be implemented separately in a plurality of embodiments or in any suitable sub-combination. Further, features may be described above as functioning in certain combinations and may thus be initially claimed as such, but one or more features from the claimed combination may in some cases be deleted from the combination, and the claimed combination may be directed to a sub-combination or a variant of a sub-combination.
[0097] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims.
[0098] Other embodiments are within the scope of the following claims.
Claims
1. A platen for supporting a polishing pad, A carrier head for holding a substrate with respect to the polishing pad, A component selected from the group including a conditioner arm, an arm of a heating system or a cooling system, an arm of a rinse system, a wiper blade, a load cup, or a robot arm, A camera arranged to capture a time-based series of monitoring images of the component, Obtaining a time-based series of reference images of equivalent components of an equivalent polishing system that perform operations during a test operation, Receiving, from the camera, the time-based series of monitoring images of the component during polishing of the substrate, Determining a difference value of the time-based series of monitoring images by comparing the time-based series of reference images with the time-based series of monitoring images using an image processing algorithm, Detecting a deviation of the component from an expected operating path as a malfunction by determining whether the difference value exceeds a threshold, and Displaying the malfunction in response to determining that the difference value exceeds the threshold A controller configured to perform the above A polishing system comprising the above.
2. The system according to claim 1, wherein the controller is configured to generate an alarm in response to determining that the difference value exceeds the threshold.
3. The system according to claim 1, wherein the controller is configured to generate a correction operation for adjusting the component that performs the operation in order to reduce the difference value in response to determining that the difference value exceeds the threshold.
4. The system according to claim 1, further comprising a display, wherein the controller is configured to generate a user presentation on the display, and the user presentation includes the time-based series of monitoring images and characteristics of each of the time-based series of monitoring images.
5. Storing a time-based series of reference images of components of the polishing system that perform operations during a test operation of the polishing system, wherein the components are selected from a group including a conditioner arm, an arm of a heating or cooling system, an arm of a rinse system, a wiper blade, a load cup, or a robot arm; storing the time-based series of reference images. Receiving, from a camera, a time-based series of monitoring images of equivalent components of an equivalent polishing system that perform operations during polishing of a substrate. Determining a difference value of the time-based series of monitoring images by comparing the time-based series of monitoring images and the time-based series of reference images using an image processing algorithm. Determining whether the difference value exceeds a threshold value; and Indicating a malfunction in response to determining that the difference value exceeds the threshold value, the malfunction being a deviation of the component from an expected operation path. A computer program product embodied in a computer-readable medium, including instructions for causing one or more computers to perform the above.
6. The computer program product according to claim 5, further including instructions for generating an alarm in response to determining that the difference value exceeds the threshold value.
7. The computer program product according to claim 5, further including instructions for generating a user presentation on a user interface component, the user presentation including the time-based series of monitoring images and characteristics of each of the time-based series of monitoring images.
8. Further comprising instructions for generating a correction operation for adjusting the equivalent component that executes the operation to reduce the difference value in response to determining that the difference value exceeds the threshold value, the computer program product according to claim 5.
9. The computer program product according to claim 5, wherein the malfunction includes fluid overspray from a fluid dispenser.
10. For receiving a time-based series of reference images from a camera when the component of the polishing system is executing an operation under a series of reference instructions, and for the equivalent component of the equivalent polishing system to execute an operation under the series of reference instructions. Instructions for receiving a time-based series of monitoring images from the camera when operating, the computer program product according to claim 5.
11. A method for monitoring the operation of a polishing system, comprising: Obtaining a time-based series of reference images of the components of the polishing system that execute operations during a test operation of the polishing system, wherein the components are selected from a group including a conditioner arm, an arm of a heating or cooling system, an arm of a rinsing system, a wiper blade, a load cup, or a robot arm. Obtaining a time-based series of reference images; Receiving from a camera a time-based series of monitoring images of equivalent components of an equivalent polishing system that execute operations during polishing of a substrate; Determining a difference value of the time-based series of monitoring images by comparing the time-based series of monitoring images with the time-based series of reference images using an image processing algorithm; Determining whether the difference value exceeds a threshold value, and Indicating a malfunction in response to determining that the difference value exceeds the threshold value, wherein the malfunction indicates a deviation of the component from an expected operation path. A method comprising. The method according to claim 11, further comprising generating an alarm in response to determining that the difference value exceeds the threshold value. The method according to claim 11, further comprising generating a correction operation for adjusting the component that performs the operation to reduce the difference value in response to determining that the difference value exceeds the threshold value. The method according to claim 11, further comprising generating a user presentation on a user interface component, wherein the user presentation includes the time-based series of monitoring images and characteristics of each of the time-based series of monitoring images.
15. A platen for supporting a polishing pad, A carrier head for holding a substrate with respect to the polishing pad, A component selected from the group including a conditioner arm, a load cup, or a robot arm, A camera arranged to capture a time-based series of monitoring images of the component, Receiving from the camera a time-based series of monitoring images of the component that performs an operation during polishing of a substrate, Analyzing the time-based series of monitoring images with a machine learning model trained by training examples to detect and indicate a malfunction of the component from an expected operation, wherein the training examples include a time-based series of reference images of reference components of a reference polishing system that perform operations during a test operation, analyzing the time-based series of monitoring images, and Indicating a malfunction based on the analysis, wherein the malfunction indicates a deviation of the component from an expected operation path. a controller configured to perform and a polishing system comprising the same. **Claim 16** The system according to claim 15, wherein the machine learning model is configured to determine the operation of the component based on the input time-based series of monitoring images using an object tracking algorithm.
Citation Information
Patent Citations
CMP machine
JP2001138218A
Substrate processing method, substrate processing apparatus, and substrate processing system
JP2020031103A
Wafer slip detection during CMP processing
US20160082566A1