Bandwidth Adjustment for Remote Control of Manufacturing Tools

By dynamically adjusting bandwidth and implementing secure data transfer protocols, the method addresses latency and security issues in remote manufacturing collaboration, improving user experience and data integrity.

JP7710538B2Active Publication Date: 2025-07-18KLA CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023575675
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-07-18
Filing Date
2022-09-28
Publication Date
2025-07-18
Estimated Expiration
2042-09-28

AI Technical Summary

Technical Problem

Remote collaboration in manufacturing facilities is hindered by network latency and bandwidth limitations, which affect the practicality and security of transmitting sensitive manufacturing data, particularly in semiconductor manufacturing facilities.

Method used

A method and system for adjusting bandwidth and providing security in the transmission of data from manufacturing tools to remote client devices by dynamically adjusting frame resolution and frame rate based on user interaction, using a server to authorize access, and employing descriptors to ensure secure data transfer.

Benefits of technology

Enhances user experience and responsiveness in remote collaboration by optimizing bandwidth utilization while maintaining security, ensuring timely and confidential data exchange between manufacturing facilities and remote experts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007710538000001
    Figure 0007710538000001
  • Figure 0007710538000002
    Figure 0007710538000002
  • Figure 0007710538000003
    Figure 0007710538000003
Patent Text Reader

Abstract

The method is performed on a computer system of a manufacturing tool in a manufacturing facility. The method includes transmitting a series of frames indicative of data of the manufacturing tool to a client device for display. The client device is remote from the manufacturing facility. The method further includes receiving, from the client device, an indication of a user interaction with the client device and, in response to the indication, adjusting a bandwidth of one or more frames of the series of frames. Transmitting the series of frames includes, after receiving the indication, transmitting the one or more frames to the client device for display. The one or more frames are transmitted at the adjusted bandwidth.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to transmitting data from a manufacturing tool in a manufacturing facility to a remote client device, and more specifically to adjusting bandwidth (e.g., resolution and / or frame rate) and providing security for such transmission.

Background Art

[0002] (Related Application) This application claims the benefit of U.S. Provisional Patent Application No. 63 / 249,599, filed Sep. 29, 2021, which is incorporated herein by reference in its entirety for all purposes.

[0003] A manufacturing facility includes equipment (i.e., manufacturing tools) supplied by equipment suppliers. The manufacturing facility may wish to collaborate with experts from the equipment supplier to obtain their assistance regarding the manufacturing tools. This collaboration is preferably remote so that the experts do not need to travel to the manufacturing facility. However, remote collaboration is difficult due to network latency. Even if the expert is often far away from the manufacturing facility (e.g., on the opposite side of the earth), unavoidable latency occurs at least minimally. Due to network bandwidth limitations, further latency may occur, making remote collaboration impractical (e.g., even if video compression is used). There are also security risks in remote collaboration.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Patent Document 2

Summary of the Invention

Problems to be Solved by the Invention

[0005] In a manufacturing facility, because it possesses highly confidential information regarding the products being manufactured and the manufacturing processes used to manufacture the products, computer security is a particularly important issue for the manufacturing facility.

Means for Solving the Problem

[0006] In some embodiments, the method is executed in a computer system of a manufacturing tool within a manufacturing facility. The method includes transmitting a series of frames indicative of data of the manufacturing tool for display on a client device. The client device is remote from the manufacturing facility. The method further includes receiving, from the client device, an indication of user interaction with the client device and, in response to the indication, adjusting the bandwidth of one or more of the series of frames. Transmitting the series of frames includes, after receiving the indication, transmitting one or more frames at an adjusted bandwidth for display to the client device.

[0007] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs for execution by one or more processors of a computer system of a manufacturing tool. The one or more programs include instructions for transmitting a series of frames indicative of data of the manufacturing tool for display on a client device. The client device is remote from the manufacturing facility in which the manufacturing tool is to be disposed. The one or more programs further include instructions for adjusting the bandwidth of one or more of the series of frames in response to receiving an indication of user interaction with the client device from the client device. The instructions for transmitting the series of frames include instructions for transmitting one or more frames at an adjusted bandwidth for display to the client device after receiving the indication.

[0008] In some embodiments, the manufacturing tool includes hardware for processing or inspecting a product to be manufactured and a computer system for controlling the hardware. The computer system includes one or more processors and a memory storing one or more programs for execution by the one or more processors. The one or more programs include instructions for transmitting a series of frames indicative of manufacturing tool data to a client device for display. The client device is remote from the manufacturing facility in which the manufacturing tool is to be located. The one or more programs further include instructions for adjusting the bandwidth of one or more of the series of frames in response to receiving an indication of user interaction with the client device. The instructions for transmitting the series of frames include instructions for transmitting, after receipt of the indication, one or more frames of the adjusted bandwidth to the client device for display.

[0009] In some embodiments, the method is executed on a computer system of a manufacturing tool within a manufacturing facility. The computer system is communicatively coupled to a server associated with the manufacturing facility. The method includes assigning descriptors to a series of frames indicative of manufacturing tool data, providing the descriptors to the server, and providing the series of frames to the server for transfer to a client device remote from the manufacturing facility. The server transfers the series of frames to the client device according to a determination that the client device is authorized to receive the series of frames, at least in part based on the descriptors.

[0010] In some embodiments, the non-transitory computer-readable storage medium stores one or more programs for execution by one or more processors of a computer system of a manufacturing tool in a manufacturing facility. The computer system is communicatively coupled to a server associated with the manufacturing facility. The one or more programs include instructions to assign descriptors to a series of frames indicative of data for the manufacturing tool, instructions to provide the descriptors to the server, and instructions to provide a series of frames to the server for transfer to a client device remote from the manufacturing facility. The server is to transfer a series of frames to the client device according to a determination, based at least in part on the descriptors, that the client device is authorized to receive the series of frames.

[0011] In some embodiments, a manufacturing tool includes hardware for processing or inspecting a product to be manufactured and a computer system for controlling the hardware. The computer system is to be communicatively coupled to a server associated with a manufacturing facility in which the manufacturing tool is disposed. The computer system includes one or more processors and a memory storing one or more programs for execution by the one or more processors. The one or more programs include instructions to assign descriptors to a series of frames indicative of data of the manufacturing tool, instructions to provide the descriptors to the server, and instructions to provide a series of frames to the server for transfer to a client device remote from the manufacturing facility. The server is to transfer a series of frames to the client device according to a determination, based at least in part on the descriptors, that the client device is authorized to receive the series of frames.

[0012] To better understand the various embodiments described, reference may be made to the following detailed description in conjunction with the following drawings.

Brief Description of the Drawings

[0013]

Figure 1

Figure 2A

Figure 2B

Figure 2C

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

[0014] Like reference numerals refer to corresponding parts throughout the drawings and the specification.

[0015] Next, various embodiments illustrated in the accompanying drawings will be described in detail. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the various embodiments described. However, it will be apparent to those skilled in the art that the various embodiments described can be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.

[0016] FIG. 1 shows a network architecture 100 for electronic communication between a manufacturing tool 124 in a manufacturing facility 112 and a client device 104 of an equipment supplier 102, according to some embodiments. The manufacturing tool 124 is an item of manufacturing equipment (i.e., capital equipment) used in one or more manufacturing processes within the manufacturing facility 112. In some embodiments, the manufacturing facility 112 is a semiconductor manufacturing facility (i.e., a "semiconductor fab" or simply a "fab"), and the manufacturing tool 124 includes semiconductor manufacturing apparatuses and semiconductor inspection apparatuses used for manufacturing and inspecting semiconductor wafers. For example, each manufacturing tool 124 may be a semiconductor manufacturing tool or a semiconductor inspection tool. In other embodiments, the manufacturing facility 112 is another type of factory having other manufacturing tools 124 for manufacturing and / or inspecting products manufactured in the factory. The equipment supplier 102 supplies (e.g., designs, manufactures, sells, and / or supports) at least a portion of the manufacturing tool 124.

[0017] The manufacturing tool 124 within the manufacturing facility 112 is located behind a server 114 associated with the manufacturing facility 112 (e.g., the manufacturing facility server 900, FIG. 9). In some embodiments, the server 114 is located within the manufacturing facility 112. Alternatively, the server 114 may be located at another location (e.g., while still under the management of the organization operating the manufacturing facility 112). The server 114 functions as a gateway providing computer security for the manufacturing facility 112. The manufacturing tool 124 is communicatively coupled to the server 114 via a network 119 that is internal to the manufacturing facility 112. For example, each manufacturing tool 124 (e.g., the manufacturing tool 800, FIG. 8) includes a respective computer system (e.g., the computer system 801, FIG. 8) that controls the operation of the respective manufacturing tool 124 and reports the state of the respective manufacturing tool 124. These respective computer systems are communicatively coupled to the server 114 via the network 119. The manufacturing facility 112 also includes other electronic devices 120 (e.g., computers, mobile electronic devices, etc.) that are communicatively coupled to the server 114 via the network 119. The networked manufacturing tools 124 and electronic devices 120 via the network 119 constitute a subnet 126 that is internal to the manufacturing facility 112.

[0018] Manufacturing facility 112 may desire to cooperate remotely with equipment supplier 102. For example, an engineer, technician, or operator of manufacturing facility 112 may seek the assistance of an expert from equipment supplier 102 regarding the installation, operation, service, and / or repair of one or more manufacturing tools 124 supplied by equipment supplier 102. The expert may provide this assistance from a client device 104 (e.g., a computer) located at a remote location from either equipment supplier 102 or manufacturing facility 112 (e.g., the expert's home). The expert uses client device 104 to access the computer systems of manufacturing tools 124 and / or electronic devices 120 of manufacturing facility 112. (Thus, the expert is a user of client device 104). For example, the expert may access the computer system of manufacturing tool 124 to check the status of manufacturing tool 124, review data from manufacturing tool 124, control the operation of manufacturing tool 124, write or modify a recipe for manufacturing tool 124, view an image or video feed (e.g., from camera 832 in FIG. 8) showing a part of manufacturing tool 124 (e.g., to view the operation of manufacturing tool 124 or to check for mechanical problems with manufacturing tool 124), and / or view an image of a product being processed or tested (e.g., to evaluate the performance of manufacturing tool 124 by viewing the status of the product). Electronic device 120 may include a camera 122 that an expert may access to have a video conference with someone at manufacturing facility 112 and / or to view manufacturing tool 124. Camera 122 may provide an image or video feed for the expert to view. In some embodiments, electronic device 120 may be a camera headset capable of providing a live streaming for remotely viewing manufacturing tool 124.

[0019] The client device 104 may be located behind the gateway 108 of the device supplier 102 (or at another remote location). For example, the client device 104 is one of a plurality of client devices 104 of the device supplier 102 that is communicatively coupled to the gateway 108 via a network 106 that is internal to the device supplier 102. The gateway 108 communicates electronically with the server 114 via the Internet 110. The client device 104 communicates electronically with the manufacturing tool 124 via the network 106, the gateway 108, the Internet 110, the server 114, and the network 119 in some embodiments.

[0020] To enable remote collaboration, the computer system of manufacturing tool 124 may send a frame indicating data of manufacturing tool 124 to a remote client device 104. The frame may represent a user interface for manufacturing tool 124 (or a part thereof, such as a user interface screen). By sending the frame to the remote client device 104, it becomes possible to display data of manufacturing tool 124 (e.g., a user interface or a part thereof) on client device 104. An expert at client device 104 can use the user interface to send commands to manufacturing tool 124 (e.g., as will be described later with respect to FIGS. 2A and 2B). The computer system of manufacturing tool 124 may adjust the bandwidth of the frame (i.e., the bandwidth used for transmission of the frame), as will be described later with respect to methods 300 - 600 (FIGS. 3 - 6). For example, the computer system of manufacturing tool 124 may adjust the resolution used for the frame and / or a part of the frame, and / or may adjust the frame rate (e.g., frames per second). By adjusting the bandwidth of the frame, timely transmission of the frame from the computer system of manufacturing tool 124 to client device 104 becomes possible (e.g., by reducing the resolution and / or the frame rate), resulting in responsiveness that improves the user experience of the expert. If desired by the expert, the frame rate may be increased to improve video quality. If desired by the expert, the resolution used for the frame and / or a part of the frame may be adjusted to provide a higher resolution. Post - processing by gateway 108 can reduce the choppiness that may result from reducing the frame rate.

[0021] Manufacturing facility 112 attempts to maintain security while enabling remote collaboration with device supplier 102 in order to protect confidential matters (e.g., intellectual property) held by manufacturing facility 112. Such confidential matters include, for example, information regarding the design of products manufactured by manufacturing facility 112 and information regarding the manufacturing processes used in the manufacture of products. Device supplier 102 attempts to maintain security while providing facility support in order to protect confidential matters (e.g., intellectual property) held by device supplier 102. Such confidential matters include, for example, information regarding the design of manufacturing tool 124 provided by device supplier 102 and the unique service procedures of manufacturing tool 124 provided by device supplier 102. In order to provide security and protect these confidential matters, server 114 may determine whether a particular client device 104 is permitted to receive a particular frame from a particular manufacturing tool 124. Server 114 may make this determination based at least in part on information received from manufacturing tool 124 (e.g., frame descriptors, frame classifiers, source identifiers, dates, and / or times), as will be described later with respect to method 700 (FIG. 7).

[0022] Figures 2A-2C illustrate examples of client devices 104 communicatively coupled to a computer system of manufacturing tool 124 for remote collaboration, according to some embodiments. The display screen 200 of client device 104 displays a graphical user interface (GUI) 202 of manufacturing tool 124. GUI 202 is provided by frames transmitted from the computer system of manufacturing tool 124 to client device 104. In the examples of FIGS. 2A-2C, GUI 202 occupies the entire display screen 200. Alternatively, GUI 202 may be displayed within a window that occupies a portion of display screen 200.

[0023] In some embodiments, the GUI 202 includes a command line 204 that an expert can use to send commands to the computer system of the manufacturing tool 124. In FIG. 2A, the expert has already entered the text "Com" (e.g., using the keyboard 206). This text has been sent from the client device 104 to the computer system of the manufacturing tool 124. In response, the computer system of the manufacturing tool 124 sends a frame indicating "Com" on the command line 204 to the client device 104. Next, the expert enters a second "m" (e.g., using the keyboard 206). The client device 104 sends the second "m" to the computer system of the manufacturing tool 124. In response, the computer system of the manufacturing tool 124 sends a new frame to the client device 104. The new frame shows "Comm" on the command line 204, reflecting the entry of the second "m". The client device 104 displays the new frame on the display screen 200, thus updating the GUI 202. The expert may continue to enter text on the command line 204 (e.g., using the keyboard 206), and the GUI 202 is updated accordingly to display the new text, and the client device 104 transmits the new text to the computer system of the manufacturing tool 124, and the computer system of the manufacturing tool 124 responds with a new frame indicating the new text on the command line 204. Alternatively, or additionally, user input may be provided in different ways (e.g., in a text input field different from the command line 204 and / or by selecting one or more affordances in the GUI 202), and the GUI 202 is updated as appropriate in response to the user input, and the client device 104 transmits the instructions of the user input to the computer system of the manufacturing tool 124, and the computer system of the manufacturing tool 124 responds with a new frame indicating the user input and / or the result of the user input.To enable the GUI 202 to be updated quickly in response to user input, the resolution of the frames (e.g., the number of pre-defined frames) transmitted by the computer system of the manufacturing tool 124 in response to receiving an indication of user input can be reduced (i.e., degraded). Degrading the resolution of the frames reduces the size of the frames, thereby reducing the bandwidth of the frames and speeding up the transmission of the frames from the computer system of the manufacturing tool 124 to the client device 104. By speeding up the transmission of the frames to the client device 104, the GUI 202 can promptly reflect the results of the user input (e.g., promptly display newly entered text), resulting in a responsive feel for the expert. On the other hand, if the response to user input is not timely, it can lead to a frustrating user experience for the expert and potentially render remote collaboration impractical.

[0024] More generally, the client device 104 may detect user interaction with the client device 104 (i.e., expert interaction). User interaction may provide explicit user input (e.g., through selection of affordances in the keyboard 206 and / or GUI 202). Or, user interaction may detect expert behavior that does not correspond to explicit user input while the expert is viewing the GUI 202. The client device 104 may send an indication of this behavior to the computer system of the manufacturing tool 124, and may also receive one or more frames from the computer system of the manufacturing tool 124 to update the GUI 202 in response (e.g., adjust the resolution of all or part of the GUI 202). For example, looking at a particular region 208 (FIG. 2C) of the GUI 202 on the display screen 200 is user interaction with the client device 104. The client device 104 may use the camera 122 to perform eye tracking to determine that the expert is looking at the region 208 within the GUI 202. The region 208 is a region within the frame sent from the computer system of the manufacturing tool 124 to the client device 104 since the frame provides the GUI 202. The client device 104 sends an indication specifying the region 208 to the computer system of the manufacturing tool 124 and receives in response from the computer system of the manufacturing tool 124 one or more frames that update the GUI 202 (e.g., increase the resolution of the region 208 but not the rest of the GUI 202). Alternatively, the region 208 may be defined by explicit user input (e.g., a click-and-drag operation using a mouse or other user input device). In some embodiments, the region 208 is defined by aggregated information from multiple user inputs, including previously received user input. Although the region 208 is shown as rectangular in FIG. 2C, alternatively the region 208 may have a different shape (e.g., circular or oval).

[0025] FIG. 3 is a flowchart showing a method 300 for performing resolution adjustment of communication from a manufacturing tool 124 to a client device 104 according to some embodiments. Method 300 is executed (302) in a computer system of a manufacturing tool 124 (e.g., a manufacturing tool 124 associated with an equipment supplier 102) within a manufacturing facility 112. For example, method 300 is executed by a computer system 801 of a manufacturing tool 800 (FIG. 8). Method 300 enables bandwidth management of communication and improves the user experience of a user of the client device 104 (e.g., an expert providing remote collaboration).

[0026] In method 300, a series of frames indicating data of the manufacturing tool 124 are transmitted (304) to the client device 104 for display. Examples of data include, but are not limited to, the state of the manufacturing tool 124, the current operation of the manufacturing tool 124 (e.g., including one or more physical parameters), the operation history of the manufacturing tool 124 (e.g., including one or more physical parameters), and / or data regarding the results of the manufacturing tool 124. The data may include still images and / or videos showing a part of the manufacturing tool 124 (e.g., during rest and / or operation), and / or a product being processed or tested (e.g., inspected) using the manufacturing tool 124. The client device 104 is remote from the manufacturing facility 112. The client device 104 may be a client device 104 of the equipment supplier 102 of the manufacturing tool 124. In some embodiments, the series of frames are provided (306) to a server 114 associated with (e.g., within) the manufacturing facility 112 for transfer to the client device 104.

[0027] An indication of user interaction with the client device 104 is received from the client device 104 (308). The indication of user interaction can be an indication of user input (e.g., as in the examples of FIGS. 2A and 2B) or an indication of other user behavior (e.g., as in the example of eye tracking of FIG. 2C). In response to the indication, the bandwidth of one or more frames of a series of frames is adjusted (310). In some embodiments, the resolution of at least a portion of one or more frames is adjusted (312) and / or the frame rate of one or more frames is adjusted (314). The one or more frames may be a predefined number of frames. Examples of adjusting the bandwidth are shown below for methods 400 (FIG. 4), 500 (FIG. 5), and 600 (FIG. 6).

[0028] One or more frames (i.e., frames (s) of adjusted resolution) are transmitted to the client device 104 for display (316). The one or more frames are transmitted with an adjusted bandwidth (i.e., the bandwidth used to transmit the one or more frames is the adjusted bandwidth). In some embodiments, the one or more frames are provided to a server 114 associated with (e.g., within) the manufacturing facility 112 for transfer to the client device 104 (318). The client device 104 may display the one or more frames, for example, as the GUI 202 (FIGS. 2A-2C). If the resolution of the entire frame (s) is adjusted, the client device 104 displays the entire frame (s) at the adjusted resolution. If only the resolution of a portion of the frame (s) is adjusted, the client device 104 displays that portion of the frame (s) at the adjusted resolution and the remaining portion of the frame (s) at the unadjusted resolution. If the frame rate is adjusted, the client device 104 may display the one or more frames at the adjusted frame rate.

[0029] Transmitting one or more frames to the client device 104 (316) is shown separately from transmitting a series of frames to the client device 104 (304), but the transmission in step 316 may be regarded as part of the transmission in step 304, and transmitting a series of frames (304) includes transmitting one or more frames (316). Thus, the one or more frames transmitted in step 316 can be part of the series of frames transmitted in step 304. Among the series of frames, there are frames that are transmitted to the client device 104 (304) before receiving an indication of user interaction with the client device 104, and there are also frames that are transmitted to the client device 104 (304) (including the one or more frames in step 316) after receiving an indication of user interaction with the client device 104.

[0030] FIG. 4 is a flowchart showing a method 400 which is an example of the method 300 (FIG. 3) according to some embodiments. In the method 400, transmitting a series of frames (304) (for example, providing a series of frames to the server 114 for transfer to the client device 104 (306)) includes transmitting a first set of frames of a first resolution to the client device 104 for display (402). The first set of frames is transmitted before receiving user interaction (308).

[0031] Receiving user interaction (308) includes receiving characters provided as user input to the client device 104 (404). For example, FIGS. 2A and 2B show receiving a character (the second "m") which is part of a command.

[0032] Adjusting (310) the bandwidth of at least a portion of one or more frames includes adjusting the resolution of one or more frames by selecting (406) a second resolution for at least a portion of each frame of a second set of frames. The second set includes one or more frames. The second resolution is lower than the first resolution. Characters are included in the second set of frames in response to receiving an indication. In some embodiments, the second resolution is the lowest available resolution (408).

[0033] In some embodiments, the entire frame of each frame of the first set has the first resolution, and the entire frame of each frame of the second set has the second resolution. For example, the entire GUI 202 may have the first resolution in FIG. 2A and the second resolution in FIG. 2B.

[0034] In some embodiments, the characters are part of a command for the manufacturing tool 124. Each frame of the second set includes characters. For example, in each frame of the second set, the characters are located on the command line of the user interface for the manufacturing tool 124 (e.g., command line 204, FIGS. 2A - 2C). Adjusting (310) the bandwidth of one or more frames includes adjusting the resolution of at least a portion of one or more frames, which may include, for each frame of the second set, maintaining the first resolution for the command line and selecting the second resolution (e.g., the lowest available resolution) for the remaining portion of the frame outside the command line. For example, in FIG. 2B, the command line 204 may have the first resolution and the remaining portion of the GUI 202 outside the command line may have the second resolution. Such frames can be transmitted quickly in response to user interaction (e.g., in response to the user entering the second "m" in FIG. 2B) because the frame size is reduced by using the second resolution outside the command line. By combining this responsiveness with the high resolution of the command line, which may be the area of interest for an expert entering commands, a preferred user experience for the expert is obtained.

[0035] Sending one or more frames to client device 104 (316) (e.g., providing one or more frames to server 114 for transfer to client device 104 (318)) includes sending a second set of frames to client device 104 for display using a second resolution (410), and client device 104 displays the one or more frames of the second set using the second resolution for the entire frame(s) or a specific portion (e.g., an area outside the command line). The second set is sent to client device 104 after receiving user interaction (308).

[0036] In some embodiments, method 400 further includes selecting a first resolution for a third set of frames following the second set. Sending a series of frames (400) (e.g., providing a series of frames to server 114 for transfer to client device 104 (306)) further includes sending a third set of frames to client device 104 for display using the first resolution (e.g., after sending the second set to client device 104).

[0037] FIG. 5 is a flowchart showing method 500, another example of method 300 (FIG. 3) according to some embodiments. In method 500, sending a series of frames (304) (e.g., providing a series of frames to server 114 for transfer to client device 104 (306)) includes sending video at a first resolution from a video feed for manufacturing tool 124 to client device 104 for display (502). In some embodiments, manufacturing tool 124 is an example of manufacturing tool 800, and the video feed is provided by camera 832 (FIG. 8). The video may be full-motion video or may have a frame rate lower than full-motion video. The video is sent to client device 104 before receiving an indication of user interaction with client device 104 (308).

[0038] In some embodiments, an indication of user interaction is that the user has pressed a key (e.g., a hot key) on the keyboard 206 (FIGS. 2A-2C) or selected an affordance within the GUI 202 (FIGS. 2A-2C), indicating that the user has chosen to pause the video by selecting to show a still image.

[0039] Adjusting (310) the bandwidth of one or more frames includes adjusting the resolution of at least a portion of the one or more frames, which includes selecting (506) a second resolution for a single frame. Adjusting (310) the bandwidth of one or more frames also includes pausing the video by reducing the frame rate to zero. A single frame includes a still image from the video feed. The second resolution is higher than the first resolution. For example, the second resolution is (508) the highest available resolution. The still image may be captured after the video of step 502 is recorded or may correspond to a frame (e.g., the last frame) of the video of step 502.

[0040] In some embodiments, the video and the single frame show at least a portion of the manufacturing tool 124 in operation.

[0041] Transmitting (316) one or more frames to the client device 104 (e.g., providing (318) one or more frames to the server 114 for transfer to the client device 104) includes aborting (510) the transmission of the video to the client device 104 and transmitting (512) a single frame to the client device 104 for static display using the second resolution in response to receiving the indication. In this way, method 500 enables an expert to view the video in near real-time and view the image of interest in high resolution. There may be a delay between when the video is paused and when the single frame is displayed on the client device 104 due to the time taken to generate and transmit the single frame at the second resolution on the client device 104.

[0042] Method 500 may further include receiving (514) an indication of another user interaction with the client device 104 after transmitting (512) a single frame to the client device 104 for static display. For example, the indication of step 308 is an indication of a first user input at the client device 104, and the indication of step 514 is an indication of a second user input at the client device 104. The second user input may be pressing a key (e.g., a hot key) of the keyboard 206 (FIGS. 2A-2C) or selecting an affordance of the GUI 202 (FIGS. 2A-2C) to resume the video. In response, the computer system of the manufacturing tool 124 resumes (516) transmission of the video to the client device 104 for display from the video feed at the first resolution. The second resolution may be too high to enable smooth playback of the video at the client device 104 (e.g., without frame drops due to bandwidth and / or memory limitations), and thus may not be used for the video in some embodiments.

[0043] FIG. 6 is a flowchart showing method 600, which is yet another example of method 300 (FIG. 3) according to some embodiments. In method 600, the instruction of the user interaction with client device 104 received at step 308 includes (602) the designation of an area (e.g., area 208, FIG. 2C) within a series of frames of interest to the user of client device 104. In some embodiments, the area is defined (604) by user input (e.g., click-and-drag operation) from an expert using client device 104. In some other embodiments, the area is defined (606) using eye tracking of client device 104. Alternatively, the area is a predefined area of a user interface screen stored by the computer system of manufacturing tool 124 (e.g., defined by information aggregated from multiple user inputs), and the instruction designates (e.g., indicates that an expert has activated the user interface screen for display) the user interface screen.

[0044] Adjusting (310) the bandwidth of one or more frames includes increasing the resolution of at least a portion of the one or more frames, which includes increasing (608) the resolution of the area of interest within the one or more frames. For example, the resolution of the area is increased (610) to the highest available resolution. The resolution outside the area in the one or more frames (e.g., the remaining portion of GUI 202 outside area 208, FIG. 2C) is not increased (e.g., remains the same as the previous frame or is decreased).

[0045] Transmitting (316) one or more frames to client device 104 (e.g., providing (318) one or more frames to server 114 for transfer to client device 104) includes, after receiving the instruction, transmitting (612) the one or more frames to client device 104 with the resolution increased for that area for display.

[0046] Methods 400 (FIG. 4), 500 (FIG. 5), and 600 (FIG. 6) may be combined. For example, a computer system of a particular manufacturing tool 124 may execute one or more instances of method 400, one or more instances of method 500, and one or more instances of method 600 in any order.

[0047] FIG. 7 is a flowchart illustrating a method 700 for providing security to communications from a manufacturing tool 124 to a client device 104, according to some embodiments. Method 700 is executed (702) in a computer system of a manufacturing tool 124 within a manufacturing facility 112 (e.g., a manufacturing tool 124 associated with an apparatus supplier 102). For example, method 700 is executed by a computer system 801 of a manufacturing tool 800 (FIG. 8). This computer system is communicatively coupled to a server 114 associated with (e.g., within) the manufacturing facility 112.

[0048] In method 700, descriptors are assigned (704) to a series of frames that represent data of the manufacturing tool 124. The descriptors specify the type of data within the series of frames.

[0049] In some embodiments, the series of frames represents a user interface (e.g., GUI 202, FIGS. 2A - 2C) for the computer system of the manufacturing tool 124 (706). The descriptors specify the user interface. The user interface may include several different user interface screens (e.g., where a user can navigate between using tabs, links, or other affordances), and the series of frames represents different user interface screens. Each descriptor may specify each user interface screen.

[0050] In some embodiments, the series of frames represents one or more values of physical parameters of the manufacturing tool 124 (708). The descriptors specify the physical parameters. Examples of physical parameters include, but are not limited to, temperature or light intensity within the manufacturing tool 124.

[0051] In some embodiments, a security classification is assigned (710) to a series of frames (e.g., along with descriptors). The security classification specifies a level of confidentiality (selected from a plurality of levels of confidentiality) for the series of frames. Additionally or alternatively, a date, a time, and / or a source identifier may be associated (712) with the series of frames. The source identifier identifies the manufacturing tool 124.

[0052] The descriptors are provided (714) to the server 114. If a security classification is assigned (710) to the series of frames, the security classification may be provided (716) to the server 114. If a date, a time, and / or a source identifier are associated (712) with the series of frames, the date, the time, and / or the source identifier may be provided (718) to the server 114.

[0053] The series of frames is provided (720) to the server 114 for transfer to a client device 104 that is remote from the manufacturing facility. The server 114 transfers the series of frames to the client device 104 according to a determination that is at least partially based on the descriptor that the client device 104 is permitted to receive the series of frames. If the security classification is provided (716) to the server 114, the determination may be further based (722) at least in part on the security classification. If a date, a time, and / or a source identifier are provided (718) to the server 114, the determination may be further based (724) at least in part on the date, the time, and the source identifier. In some embodiments, the determination is made by performing a lookup in a lookup table (e.g., security module 914, FIG. 9) that stores permissions as a function of the descriptor, the security classification, the date, the time, the source identifier, the device supplier, the client device, and / or other variables.

[0054] In some embodiments, the frame, descriptor, security classification, date, time, and / or source identifier are provided to server 114 in a self-describing data package. For example, the data package may use the JavaScript Object Notation (JSON) format or the HyperText Markup Language format.

[0055] By causing server 114 to determine whether client device 104 is permitted to receive a frame instead of the computer system of manufacturing tool 124, the computational load on the computer system of manufacturing tool 124 is reduced (e.g., enabling manufacturing tool 124 to be lighter). Making the determination using information from the computer system of manufacturing tool 124 enables end-to-end security.

[0056] Method 300 (FIG. 3) (e.g., method 400 of FIG. 4, method 500 of FIG. 5, or method 600 of FIG. 6) may be combined with method 700 (FIG. 7). For example, providing a series of frames to server 114 (306, FIGS. 3-6), including providing one or more frames to server 114 (318, FIGS. 3-6), is performed according to step 720 (FIG. 7), and server 114 transfers the series of frames to client device 104 according to a determination that client device 104 is permitted to receive the series of frames.

[0057] FIG. 8 is a block diagram of a manufacturing tool 800 according to some embodiments. The manufacturing tool 800, which is an example of the manufacturing tool 124 in the manufacturing facility 112 (FIG. 1), includes hardware 830 and a computer system 801. The hardware 830 processes or inspects products (e.g., semiconductor wafers) manufactured in the manufacturing facility 112. The computer system 801 controls the hardware 830 and reports the state of the hardware 830. The hardware 830 may include a camera 832 arranged to provide an image (e.g., a video feed) of a part of the hardware 830.

[0058] The computer system 801 includes one or more processors 802 (e.g., CPUs), a user interface 806, a memory 810, one or more network interfaces 803, and a communication bus (es) 804 interconnecting these components. The network interface 803 is used for communicating via the network 119 (FIG. 1). The user interface 806 may include a display 807 and one or more input devices 808 (e.g., a keyboard, a mouse, a touch-sensitive surface of the display 807, etc.). The display 807 may display a graphical user interface of the manufacturing tool 800.

[0059] Memory 810 includes volatile memory and / or non-volatile memory. Memory 810 (e.g., the non-volatile memory within memory 810) includes a non-transitory computer-readable storage medium. Memory 810 optionally includes one or more storage devices located remotely from processor 802 and / or a non-transitory computer-readable storage medium removably inserted into computer system 801. In some embodiments, memory 810 (e.g., the non-transitory computer-readable storage medium of memory 810) stores modules and data such as operating system 812, hardware control module 814 for controlling hardware 830, user interface (e.g., GUI 202, FIGS. 2A-2C) and user interface module 818 for generating corresponding frames, and transmission module 824 for transmitting frames. Hardware control module 814 includes a command processing module 816 for processing commands received from client device 104. User interface module 818 includes a frame generation module 820 for generating frames and a bandwidth adjustment module 822 (e.g., for setting the resolution of a frame or a portion thereof and / or for setting the frame rate) for adjusting the bandwidth of the frames. Frame generation module 820 may assign descriptors to frames, assign security classifiers to frames, and / or associate dates, times, and / or source identifiers with frames.

[0060] The memory 810 (e.g., a non-transitory computer-readable storage medium) stores instructions for executing method 300 (FIG. 3) (e.g., method 400 of FIG. 4, method 500 of FIG. 5, and / or method 600 of FIG. 6) and / or method 700 (FIG. 7). Each of the modules stored in the memory 810 corresponds to a set of instructions for performing one or more of the functions described herein. Separate modules need not be implemented as separate software programs. Modules and various subsets of modules may be combined or otherwise rearranged. In some embodiments, the memory 810 stores a subset or superset of the modules and / or data structures identified above.

[0061] FIG. 8 is intended as a functional description of various features that may exist in a manufacturing tool and its computer system rather than as a structural schematic. For example, the functions of the computer system 801 may be divided among multiple devices. A portion of the modules stored in the memory 810 may alternatively be stored in one or more other computer systems communicatively coupled to the computer system 801 via one or more networks.

[0062] FIG. 9 is a block diagram of a manufacturing facility server 900 according to some embodiments. Server 900 is an example of a server 114 associated with (e.g., within) manufacturing facility 112 (FIG. 1). Server 900 includes one or more processors 902 (e.g., CPUs), a user interface 906, a memory 910, one or more network interfaces 903, and communication bus(es) 904 interconnecting these components. The one or more network interfaces 903 are used to communicate via the Internet 110 and / or network 119 (FIG. 1). The user interface 906 may include a display 907 and one or more input devices 908 (e.g., keyboard, mouse, touch-sensitive surface of display 907, etc.). The display 907 may display a graphical user interface regarding remote support activities and corresponding requests, connections, and transmissions.

[0063] Memory 910 includes volatile memory and / or non-volatile memory. Memory 910 (e.g., the non-volatile memory within memory 910) includes a non-transitory computer-readable storage medium. Memory 910 optionally includes one or more storage devices located remotely from processor 902 and / or a non-transitory computer-readable storage medium removably inserted into server 900. Memory 910 (e.g., the non-transitory computer-readable storage medium of memory 910) includes instructions for performing all or a portion of method 300 (FIG. 3). In some embodiments, memory 910 (e.g., the non-transitory computer-readable storage medium of memory 910) stores modules and data such as operating system 912, security module 914 for authorizing communication between manufacturing tool 124 and remote client device 104, and communication module 916 for transmitting and receiving communications (e.g., for manufacturing tool 124 and client device 104). Memory 910 (e.g., security module 914) stores instructions (e.g., in a non-transitory computer-readable storage medium) for making the determination of step 720 (e.g., including steps 722 and / or 724) in method 700 (FIG. 7).

[0064] Each of the modules stored in memory 910 corresponds to a set of instructions for performing one or more of the functions described herein. It is not necessary to implement separate modules as separate software programs. Modules and various subsets of modules may be combined or otherwise rearranged. In some embodiments, memory 910 stores a subset or superset of the modules and / or data structures identified above.

[0065] FIG. 9 is intended as a functional description of various features that may exist on a server rather than a structural schematic. For example, the functions of server 900 may be divided among multiple devices. Some of the modules stored in memory 910 may alternatively be stored on one or more other computer systems communicatively coupled to server 900 via one or more networks.

[0066] FIG. 10 is a block diagram of client device 1000 according to some embodiments. Client device 1000 may be an example of client device 104 of device supplier 102. Client device 1000 includes one or more processors 1002 (e.g., CPUs), user interface 1006, memory 1010, one or more network interfaces 1003, and communication bus(es) 1004 interconnecting these components. One or more network interfaces 1003 are used to communicate via one or more networks (e.g., Internet 110 and / or network 106, FIG. 1). The client device may also include a camera 1001 (e.g., camera 122, FIGS. 1-2C) interconnected with other components by communication bus(es) 1004. User interface 1006 may include a display 1007 (e.g., display screen 200, FIGS. 2A-2C) and one or more input devices 1008 (e.g., keyboard 206, mouse, touch-sensitive surface of display 1007, etc. of FIGS. 2A-2C). Display 1007 may display a graphical user interface regarding remote support activities (e.g., GUI 202 of FIGS. 2A-2C).

[0067] Memory 1010 includes volatile memory and / or non-volatile memory. Memory 1010 (e.g., the non-volatile memory within memory 1010) includes a non-transitory computer-readable storage medium. Memory 1010 optionally includes one or more storage devices located remotely from processor 1002 and / or a non-transitory computer-readable storage medium removably inserted into client device 1000. In some embodiments, memory 1010 (e.g., the non-transitory computer-readable storage medium of memory 1010) stores modules and data such as operating system 1012, manufacturing tool remote control module 1014 for interacting with remote manufacturing tool 124, and eye tracking module 1020 for determining an area (e.g., area 208, FIG. 2C) on display 1007 viewed by a user. Manufacturing tool remote control module 1014 can include a user interface module 1016 for displaying a user interface (e.g., GUI 202 received in a frame from the computer system of manufacturing tool 124, FIGS. 2A-2C) and a command module 1018 for receiving commands from a user (i.e., an expert) and transmitting the commands to the computer system of manufacturing tool 124.

[0068] Each of the modules stored in memory 1010 corresponds to a set of instructions for performing one or more of the functions described herein. It is not necessary to implement separate modules as separate software programs. Modules and various subsets of modules may be combined or otherwise rearranged. In some embodiments, memory 1010 stores a subset or superset of the modules and / or data structures identified above.

[0069] FIG. 10 is intended as a functional description of various features that may exist in a client device rather than as a schematic structural diagram. For example, the functionality of client device 1000 may be divided among multiple devices. A portion of the modules stored in memory 1010 may alternatively be stored in one or more other computer systems communicatively coupled to client device 1000 via one or more networks.

[0070] The foregoing description has been presented for purposes of illustration and description with reference to specific embodiments. However, the above exemplary description is not intended to be exhaustive or to limit the claims to the precise forms disclosed. Many modifications and variations are possible in light of the above teachings. The embodiments were chosen and described in order to best explain the principles underlying the claims and their practical application, thereby enabling others skilled in the art to best utilize the embodiments with various modifications as are suited to the particular use contemplated.

Claims

A non-transitory computer-readable storage medium storing one or more programs for execution by one or more processors of a computer system, the one or more programs comprising: Instructions for transmitting a series of frames indicative of data for a manufacturing tool for display to a client device remote from a manufacturing facility at which the manufacturing tool is to be located; Instructions for adjusting the bandwidth of one or more frames of the series of frames in response to receiving an indication of user interaction with the client device, the indication including characters provided as user input to the client device; The instructions for transmitting the series of frames include instructions for transmitting a first set of frames at a first resolution prior to receiving the indication; The instructions for adjusting the bandwidth are instructions for selecting a second resolution for at least a portion of each frame of a second set of frames, the second set of frames including the one or more frames, the second resolution being lower than the first resolution, and including instructions for selecting such that the characters are included in the second set of frames in response to receiving the indication; The instructions for transmitting the series of frames include instructions for transmitting the one or more frames at the adjusted bandwidth for display to the client device after receiving the indication; The instructions for transmitting the one or more frames include instructions for transmitting the second set of frames to the client device for display using the second resolution after receiving the indication, the non-transitory computer-readable storage medium. **Claim 2** The manufacturing tool is associated with an equipment supplier, The client device is a client device of the equipment supplier, the computer-readable storage medium according to claim 1. **Claim 3** The second resolution is the lowest available resolution, the computer-readable storage medium according to claim 1. **Claim 4** For each frame of the first set, the entire frame has the first resolution, For each frame of the second set, the entire frame has the second resolution. The computer-readable storage medium according to claim 1.

5. The characters are part of a command of the manufacturing tool, each frame of the second set includes the characters, The computer-readable storage medium according to claim 1.

6. each frame of the second set includes the characters in a command line of a user interface of the manufacturing tool, the computer-readable storage medium according to claim 5.

7. the commands for adjusting the bandwidth, for each frame of the second set, commands for maintaining the first resolution with respect to the command line, and commands for selecting the second resolution with respect to the remaining part of the frame outside the command line, the computer-readable storage medium according to claim 6.

8. The second resolution is the lowest available resolution, the computer-readable storage medium according to claim 7.

9. the one or more programs further include commands for selecting the first resolution for a set of third frames following the second set, the commands for transmitting the series of frames further include commands for transmitting the set of third frames to the client device for display using the first resolution after transmitting the second set, the computer-readable storage medium according to claim 1.

10. The computer system is a computer system of the manufacturing tool, the computer system of the manufacturing tool is communicably coupled to a server related to the manufacturing facility, the commands for transmitting the series of frames include commands for providing the series of frames to the server for transfer to the client device, the computer-readable storage medium according to claim 1.

11. A computer system, comprising one or more processors and a memory storing one or more programs for execution by the one or more processors, the one or more programs including commands for causing a series of frames indicating data of a manufacturing tool to be transmitted for display to a client device remote from a manufacturing facility in which the manufacturing tool is to be disposed A command to adjust the bandwidth of one or more frames of the series of frames in response to receiving an instruction for user interaction with the client device, the instruction including a character provided as user input to the client device, and the command for adjustment. The command for transmitting the series of frames includes a command for transmitting a set of first frames at a first resolution before receiving the instruction. The command for adjusting the bandwidth is a command for selecting a second resolution for at least a part of each frame of a set of second frames, the set of second frames including the one or more frames, the second resolution being lower than the first resolution, and the command for selection including that the character is included in the set of second frames in response to receiving the instruction. The command for transmitting the series of frames includes a command for transmitting the one or more frames of the adjusted bandwidth to the client device for display after receiving the instruction. The command for transmitting the one or more frames includes a command for transmitting the set of second frames to the client device for display using the second resolution after receiving the instruction, the computer system. A non-transitory computer-readable storage medium storing one or more programs for execution by one or more processors of a computer system communicably coupled to a manufacturing tool via one or more networks, the one or more programs including A command for transmitting, for display, a series of frames indicating data for the manufacturing tool to a client device remote from a manufacturing facility where the manufacturing tool is to be located. A command to adjust the bandwidth of one or more frames of the series of frames in response to receiving an instruction for user interaction with the client device, the instruction including a character provided as user input to the client device, and the command for adjustment. The command for transmitting the series of frames includes a command for transmitting a set of first frames at a first resolution before receiving the instruction. The instruction for adjusting the bandwidth is an instruction for selecting a second resolution for at least a part of each frame of a set of second frames, wherein the set of second frames includes the one or more frames, the second resolution is lower than the first resolution, and in response to receiving the instruction, the instruction for selecting that the characters are included in the set of second frames. The non-transitory computer-readable storage medium, wherein the instruction for transmitting the series of frames includes an instruction for transmitting the second set to the client device for display using the second resolution after receiving the instruction.

13. The computer system is a first computer system. The manufacturing tool includes a second computer system. The computer-readable storage medium according to claim 12, wherein the first computer system is communicatively coupled to the second computer system via the one or more networks.

14. The manufacturing tool is associated with an equipment supplier. The computer-readable storage medium according to claim 12, wherein the client device is a client device of the equipment supplier.

15. The characters are part of a command of the manufacturing tool. Each frame of the second set includes the characters. The computer-readable storage medium according to claim 12.

16. Each frame of the second set includes the characters in a command line of a user interface of the manufacturing tool. The instruction for adjusting the bandwidth is for each frame of the second set. The instruction for maintaining the first resolution for the command line. The computer-readable storage medium according to claim 15, further including an instruction for selecting the second resolution for the remaining part of the frame outside the command line.

17. The one or more programs further include an instruction for selecting the first resolution for a set of third frames following the second set. The computer-readable storage medium according to claim 12, wherein the instruction for transmitting the series of frames further includes an instruction for transmitting the set of third frames to the client device for display using the first resolution after transmitting the second set. A non-transitory computer-readable storage medium storing one or more programs for execution by one or more processors of a computer system communicably coupled to a manufacturing tool via one or more networks, the one or more programs comprising: instructions for transmitting, for display, a series of frames indicative of data for the manufacturing tool to a client device remote from a manufacturing facility in which the manufacturing tool is to be disposed; instructions for adjusting a bandwidth of a single frame of the series of frames in response to receiving an indication of user interaction with the client device; the instructions for transmitting the series of frames include instructions for transmitting, for display, video at a first resolution from a video feed for the manufacturing tool to the client device before receiving the indication; the instructions for adjusting the bandwidth include instructions for selecting a second resolution for the single frame; the single frame includes a still image from the video feed; the second resolution is higher than the first resolution; the instructions for transmitting the series of frames, in response to receiving the indication, include instructions for stopping transmission of video to the client device; include instructions for transmitting the single frame to the client device for static display using the second resolution; A non-transitory computer-readable storage medium comprising: The computer-readable storage medium according to claim 18, wherein the video and the single frame depict at least a portion of the manufacturing tool in operation. The computer-readable storage medium according to claim 18, wherein the indication is an indication of a first user input at the client device, and the instructions for transmitting the series of frames further include instructions for resuming transmission of the video at the first resolution for display to the client device after transmitting the single frame to the client device in response to receiving an indication of a second user input at the client device. A method, in a computer system communicably coupled to a manufacturing tool via one or more networks, Transmitting a series of frames indicating data for the manufacturing tool to a client device remote from a manufacturing facility in which the manufacturing tool is to be disposed, for display; Adjusting the bandwidth of one or more frames of the series of frames in response to receiving an indication of user interaction with the client device, the indication including characters provided as user input to the client device; The transmitting of the series of frames includes transmitting a first set of frames at a first resolution before receiving the indication; The adjusting of the bandwidth includes selecting a second resolution for at least a portion of each frame of a second set of frames, the second set of frames including the one or more frames, the second resolution being lower than the first resolution, and the characters being included in the second set of frames in response to receiving the indication; The method includes transmitting the second set to the client device for display using the second resolution after receiving the indication. **Claim 22**: A computer system comprising: One or more processors; One or more network interfaces enabling network communication including communication via one or more networks with a manufacturing tool; A memory storing one or more programs for execution by the one or more processors, the one or more programs including: Instructions for transmitting a series of frames indicating data for the manufacturing tool to a client device remote from a manufacturing facility in which the manufacturing tool is to be disposed, for display; Instructions for adjusting the bandwidth of one or more frames of the series of frames in response to receiving an indication of user interaction with the client device, the indication including characters provided as user input to the client device; The instructions for transmitting the series of frames include instructions for transmitting a first set of frames at a first resolution before receiving the indication; The instruction for adjusting the bandwidth is an instruction for selecting a second resolution for at least a part of each frame of a set of second frames, wherein the set of second frames includes the one or more frames, the second resolution is lower than the first resolution, and in response to receiving the indication, an instruction for selecting that the characters are included in the set of second frames. A computer system, wherein the instruction for transmitting the series of frames includes an instruction for transmitting the second set to the client device for display using the second resolution after receiving the indication.

Citation Information

Patent Citations

  • Video distribution system, client terminal and control method thereof

    JP2007151078A

  • Hierarchical Display

    US20130219012A1

  • Remote asset management services for industrial assets

    US20150074749A1