Scheduling device, scheduling method, and program

The scheduling device addresses the challenge of predicting measurement job times by analyzing user recipes and optimizing schedules, ensuring accurate execution and enhanced device utilization.

JP2026114570APending Publication Date: 2026-07-08HITACHI HIGH TECH CORP

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
HITACHI HIGH TECH CORP
Filing Date
2024-12-26
Publication Date
2026-07-08

Smart Images

  • Figure 2026114570000001_ABST
    Figure 2026114570000001_ABST
Patent Text Reader

Abstract

This invention provides a scheduling device, scheduling method, and program that more accurately estimate the time required for jobs to be executed by a measuring device. [Solution] A scheduling device for estimating the time of a measurement job performed by a measuring device, comprising a memory for storing a program and a processor for executing processing according to the program, wherein when a user inputs a measurement recipe that causes the measuring device to perform a measurement job, the processor analyzes the measurement recipe, creates a series of tasks based on the analysis results, collects information for updating an estimation model that estimates the time required for the measurement job, updates the estimation model using the collected information, and uses the updated estimation model to input information for the series of tasks and estimate the time required for the series of tasks.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a technique for scheduling measurements performed by a measuring device.

Background Art

[0002] When expensive measuring devices such as scanning electron microscopes (SEM) are shared by multiple users, it is important to improve the utilization rate of the measuring devices. In order to improve the utilization rate of the measuring device, each user needs to predict the time when they will use the measuring device and complete the measurement within the predicted time. However, even if the user checks the state of the sample, which is the measurement object, before the measurement and understands the specifications of the measuring device, it has been difficult to predict the time required for the measurement.

[0003] In a device system having devices such as pumps and a sample chamber such as an incubator, a technique for dynamically changing the device workflow by optimizing a device workflow program that instructs operations to the devices and the sample chamber is disclosed in Patent Document 1.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] The equipment system disclosed in Patent Document 1 modifies the equipment workflow program to optimize it after the user has created the program and while the workflow is running. Therefore, there is a risk that the modified equipment workflow program may not meet the user's expectations. To ensure that the measuring device executes jobs that meet the user's needs and to improve the utilization rate of the measuring device, it is crucial to estimate job times more accurately.

[0006] One objective included in this disclosure is to provide a scheduling device, scheduling method, and program that more accurately estimate the time required for a job to be performed by a measuring device. [Means for solving the problem]

[0007] A scheduling device according to one aspect of the present disclosure is a scheduling device for estimating the time of a measurement job performed by a measuring device, comprising: a memory for storing a program; and a processor for executing processing according to the program, wherein the processor, by executing the program, when a user inputs a measurement recipe that causes the measuring device to perform the measurement job, analyzes the measurement recipe, creates a series of tasks based on the analysis results, collects information for updating an estimation model for estimating the time required for the measurement job, updates the estimation model using the collected information, inputs information about the series of tasks into the updated estimation model to estimate the time required for the series of tasks. [Effects of the Invention]

[0008] According to one aspect of this disclosure, a user's measurement recipe is analyzed, and the duration of the measurement job is estimated by an estimation model updated with collected information, based on a series of tasks converted from the measurement recipe. As a result, measurement jobs are executed in accordance with the user's wishes, and the measurement schedule is set to maximize the utilization rate of the measurement equipment, thereby improving the utilization rate of the measurement equipment. [Brief explanation of the drawing]

[0009] [Figure 1] This is a block diagram showing one example configuration of the scheduling device of this embodiment. [Figure 2] This is a block diagram showing one example configuration of a measurement system including a scheduling device according to this embodiment. [Figure 3] Figure 1 is a diagram illustrating one example configuration of the information acquisition unit shown. [Figure 4] Figure 3 shows an example of a recipe file table. [Figure 5] This figure shows an example of a configuration file. [Figure 6] This is a diagram illustrating an example of a sample placed on the stage of a measuring device. [Figure 7] Figure 3 shows a table illustrating an example of sample information. [Figure 8] Figure 3 shows an example of a desired schedule. [Figure 9] This figure shows an example of other data. [Figure 10] Figure 1 is a block diagram showing an example configuration of the information analysis unit. [Figure 11] This table shows an example of a task list created by the Information Analysis Department. [Figure 12] This is a diagram illustrating an example of online training. [Figure 13] Figure 1 is a block diagram showing one example configuration of the job time estimation unit. [Figure 14] Figure 1 is a block diagram showing one example configuration of the scheduling unit. [Figure 15] Figure 1 is a block diagram showing an example of the configuration of the report section. [Figure 16] This block diagram shows one example configuration of the error processing unit shown in Figure 1. [Figure 17] This block diagram shows an example of the hardware configuration of the scheduling device in this embodiment. [Figure 18] This is a flowchart showing an example of the operation procedure of the scheduling device of this embodiment. [Figure 19] This is a flowchart showing an example of the operation procedure of the scheduling device of this embodiment. [Figure 20] This is a diagram showing an example of the input image displayed on the output device in step S101 shown in FIG. 18. [Figure 21] This is a diagram showing an example of the input image displayed on the output device when it is determined that there is insufficient data in the determination of step S105 shown in FIG. 18. [Figure 22] This is a diagram showing an example of the input image displayed on the output device in step S110 shown in FIG. 18. [Figure 23] This is a diagram showing an example of the monitoring image when the job is progressing as scheduled. [Figure 24] This is a diagram showing an example of the monitoring image when the progress of the job is delayed compared to the schedule.

Embodiment for Carrying Out the Invention

[0010] This embodiment is a scheduling device that estimates the time of measurement executed by a measuring device and creates a measurement schedule. In this embodiment, the case where the measuring device is a scanning electron microscope (SEM) will be described, but the measuring device is not limited to SEM. Hereinafter, an example of the scheduling device of this embodiment will be described.

Example

[0011] The outline of the scheduling device of this embodiment will be described. FIG. 1 is a block diagram showing a configuration example of the scheduling device of this embodiment. The scheduling device 10 of this embodiment includes an information acquisition unit 1, an information analysis unit 2, a job time estimation unit 3, a scheduling unit 4, a report unit 5, and an error processing unit 6.

[0012] The information acquisition unit 1 receives job information from the user, which is information related to a measurement job performed by the measuring device 8. The job information includes a measurement recipe file. The job information may also include sample information and other information. The measurement recipe file is the measurement conditions for one or more samples that are the objects to be measured. Hereinafter, the measurement recipe file will be referred to as a measurement recipe or recipe file. In this embodiment, a measurement job is defined as a group of tasks that encapsulate the entire SEM measurement process. A task means an operation unit that is one of several operations performed by the measuring device 8. Hereinafter, a measurement job will be simply referred to as a job. The information acquisition unit 1 also receives a desired schedule indicating the date and time the user wishes to perform the job.

[0013] The Information Analysis Unit 2 analyzes the measurement recipe entered by the user and creates a series of tasks required for the job. In other words, the Information Analysis Unit 2 converts the job into a series of tasks that measure one or more samples according to the measurement recipe specified by the user. The Job Time Estimation Unit 3 uses machine learning (hereinafter referred to as ML) to estimate the duration of each task in the series of tasks created by the Information Analysis Unit 2. This is because, in order to estimate the duration of the job, it is necessary to estimate the duration of each task in the series. Hereafter, the estimated duration for each task will be referred to as the estimated duration. The Job Time Estimation Unit 3 adds a safety margin to the estimated duration of the series of tasks as an appropriate safety margin to prepare for errors such as delays. Hereafter, the safety margin will be referred to as tw.

[0014] When the scheduling unit 4 receives information on the predicted duration of each task from the job time estimation unit 3, it calculates the total estimated job time, which is the sum of the predicted durations of each task received. Hereinafter, the total time required for one job will simply be referred to as job time. The scheduling unit 4 also stores a registered schedule indicating the planned usage schedule of the measuring device 8 for each of the multiple users who share the measuring device 8. Based on the user's desired schedule, the scheduling unit 4 selects the most appropriate time slot from the unscheduled time slots within the overall schedule. The scheduling unit 4 assigns the new job entered by the user to the selected time slot. The scheduling unit 4 then saves the time slot to which the new job is assigned as a provisional schedule, which is a tentatively determined schedule. If the scheduled completion time of a user's job exceeds the start time of another user's reserved job, the user can choose one of three options. The first option is for the user to change the job completion time. The second option is for the user to receive a suggestion from the scheduling device 10 for a recommended recipe that fits the schedule so that the job can be completed on time. The third option is for the user to manually change the measurement recipe and have the scheduling device 10 re-execute the job scheduling.

[0015] The reporting unit 5 reports the schedule confirmed by the scheduling unit 4 to the user. Depending on the option selected by the user, the reporting unit 5 provides the user with a job time report, a recipe report, or an updated version of the measurement recipe. The job time report informs the user of the estimated total job time and the estimated duration of each task. The recipe report is provided for the user to refer to if no user changes to the measurement recipe have been applied. The updated version of the recipe informs the user of the updated measurement recipe if changes to the measurement recipe have been applied to meet a specific deadline.

[0016] Error processing unit 6 monitors the job progress in real time to determine if delays are occurring. While the job is running, error processing unit 6 re-estimates the duration of remaining tasks and, if the job time does not match the estimated total job time and the job needs to be terminated early, it notifies the user of a warning to ensure the next user's job starts on schedule. The cause of the error may be user-based, an operational error in the SEM, or incorrect estimated durations for multiple tasks or specific tasks. User-based causes include, for example, if the user starts the measurement later than scheduled. If error processing unit 6 underestimates the total job time, it prompts the user to re-evaluate the recipe or suggests a new recipe. If error processing unit 6 overestimates the total job time, it gives the next user the option to start their job earlier.

[0017] <Overall System Configuration> The configuration of the measurement system including the scheduling device 10 of this embodiment will be described. Figure 2 is a block diagram showing one example configuration of the measurement system including the scheduling device of this embodiment. The measurement system 200 includes a measurement device 8, a scheduling device 10, and a user terminal 7. The user terminal 7 is an information processing device such as a PC (Personal Computer) operated by the user. In this embodiment, the measurement device 8 is a SEM.

[0018] The object to be measured 100 is placed into the measuring device 8 by the user. The user terminal 7 and the scheduling device 10 are connected via an external network 101. The scheduling device 10 is connected to the measuring device 8 via a gateway server 9. The scheduling device 10 is connected to the gateway server 9 via an external network 102. The gateway server 9 is connected to the measuring device 8 via a private network 103. The main configuration of each device will be explained with reference to Figure 2. Detailed explanations of each device will be given later.

[0019] The object to be measured 100 is a sample of material to be measured by the measuring device 8. In this embodiment, since the measuring device 8 is a SEM, the object to be measured 100 must be in a solid state. An example of the object to be measured 100 is a silicon semiconductor wafer.

[0020] (Measuring device 8) The measuring device 8 is the hardware necessary for performing SEM measurements. The measuring device 8 comprises an SEM main unit 81, a vacuum pump 82, and a control computer 83. The vacuum pump 82 is necessary to create a vacuum state suitable for SEM measurements. The control computer 83 controls the SEM main unit 81 and stores the control settings.

[0021] The SEM main unit 81 includes a vacuum chamber 181, a stage 182, an electron gun 183, a detector 184, and a camera 185. The vacuum chamber 181 is maintained in a vacuum state so that the object to be measured 100 can be observed by the SEM. The stage 182 is a platform on which the object to be measured 100 is placed. The stage 182 is located inside the vacuum chamber 181. The electron gun 183 emits electrons and causes the emitted electrons to collide with the surface of the object to be measured 100. The electron gun 183 is the main part of the SEM used by the user to understand the material properties of the object to be measured 100 by providing the user with high-magnification images. The detector 184 is used to collect electrons generated by the electron gun 183 and reflected from the object to be measured 100. The detector 184 forms a digital image of the microscope. The camera 185 provides the user with images at a lower magnification than the images obtained by the SEM. The camera 185 is responsible for allowing the user to move the stage 182 to determine the current image capture location, confirming that the object to be measured 100 is in the correct position, and verifying that the object to be measured 100 is in good condition. In this embodiment, the explanation is given assuming that the camera 185 is provided on the SEM main unit 81, but the camera 185 may not be provided.

[0022] The vacuum pump 82 removes air from the vacuum chamber 181 until the internal pressure reaches a predetermined vacuum level Pr0, and also maintains the pressure in the vacuum chamber 181 at vacuum level Pr0. This is because SEM measurements must be performed under vacuum conditions. The required vacuum level Pr0 varies depending on the type of object being measured 100 and the required pump output.

[0023] The control computer 83 controls the SEM main unit 81 and stores the control information. The control computer 83 has a processor 84 such as a CPU (Central Processing Unit) and a memory 85 for storing programs. The memory 85 is a storage device used by the control computer 83 to store data. The memory 85 stores the recipe file 111 and the raw data 188.

[0024] The recipe file 11 is not limited to a single measurement recipe; it may contain multiple measurement recipes. The recipe file 11 describes the measurement conditions for each sample, including the number of images to be captured, the position of each image, the magnification of each image, and other setting files. The setting files contain information about the SEM settings. The recipe file 11 may also include output information for the raw data 188 output from the SEM main unit 81, such as the naming method for the output files, the location where the output files are saved, and the format in which the output files are saved. Note that the setting files and output information may be in separate files from the recipe file 11.

[0025] Raw data 188 is data output from the SEM main unit 81. All output files generated by the SEM main unit 81 are stored in memory 85 as raw data 188. The output from the SEM main unit 81 includes image files and metafiles corresponding to the image files. If there are multiple image files, the output from the SEM main unit 81 includes a group of image files and a group of metafiles corresponding to the multiple image files.

[0026] Memory 85 stores log data of the measuring device 8 in addition to the output of the SEM main unit 81. The log data includes, for example, changes in pressure in the vacuum pump 82 over time, the timing at which the vacuum chamber 181 achieved a specific vacuum level, and changes in the state of the SEM main unit 81 over time. The log data may also include information on the time when a specific task, such as the movement of the stage 182 or autofocus, was completed. Memory 85 may also store data other than log data. The processor 84 acts as the central processing unit of the control computer 83. The processor 84 has a recipe execution unit 186. The recipe execution unit 186 converts the recipe file 11 into commands for the SEM main unit 81. The recipe execution unit 186 transmits the raw data 188 and log data to the scheduling device 10. The functions of the recipe execution unit 186 are executed when the processor 84 executes a program stored in memory 85.

[0027] (Gateway Server 9) The gateway server 9 plays the role of connecting the control computer 83 to other devices via the private network 103 and the external network 102. The gateway server 9 is provided for two purposes: centralization and security. Let's explain the centralization purpose. When a user uploads data to the scheduling device 10 via the user terminal 7, or when a user remotely controls the measuring device 8 via the scheduling device 10, multiple devices may operate the measuring device 8 in parallel. In these cases, connecting all multiple devices, including the user terminal 7, to a single gateway server 9 and centralizing the process improves convenience for multiple users. For example, multiple devices can be connected in a star network configuration. Let's explain the security purpose. When the control computer 83 rejects a direct connection to the external network 102 due to security functions that avoid security risks, the gateway server 9 functions as a security gate between the control computer 83 and the external network 102. Note that if the control computer 83 is directly connected to the external network 102 and operates on a standalone basis, the gateway server 9 may not be necessary. Standalone basis means that it is not a group of devices operating simultaneously.

[0028] The gateway server 9 has a processor 91 such as a CPU and a memory 92 for storing programs. The processor 91 has a gateway agent 93. The memory 92 has a certificate 94. The memory 92 is a storage device provided in the gateway server 9. The memory 92 is responsible for storing the certificate 94, which grants access to both memory 85 and memory 30. The certificate 94 is a file containing the credentials necessary to access memory 85 and memory 30. The processor 91 is a central processing unit provided in the gateway server 9. The gateway agent 93 monitors the control computer 83 and, upon detecting a new recipe file 11 or new raw data 188, uploads the detected new file or data to the scheduling device 10. The gateway agent 93 functions when the processor 91 executes the program stored in memory 92.

[0029] (network) The private network 103 is a network that provides a communication connection between the control computer 83 and the gateway server 9. The private network 103 is a network that includes either or both wired connections such as LAN (Local Area Network) cables and wireless connections such as Wi-Fi (registered trademark).

[0030] External network 102 is a network that provides communication between gateway server 9 and scheduling device 10. External network 102 is a network that includes either wired or wireless connections. External network 101 is a network that provides communication between user terminals 7 and other information processing devices and scheduling device 10. External network 101 is a network that includes either wired or wireless connections. External network 101 and / or external network 102 may be the Internet or a network that includes the Internet.

[0031] (Scheduling device 10) The scheduling device 10 is, for example, a cloud server. The scheduling device 10 estimates job time and schedules jobs. The scheduling device 10 collects data from the measuring device 8 and the user terminal 7, and uses the collected data to estimate job time and schedule jobs.

[0032] The scheduling device 10 includes a processor 20 and a memory 30 for storing programs. The processor 20 executes the programs stored in the memory 30. The memory 30 is a storage device for storing information in the scheduling device 10. The memory 30 stores job information 15, a database 16, a task list 26, an ML model 32, a registered schedule 44, a report 50, a desired schedule 13, raw data 188, and a user database 17, etc. The registered schedule 44 may also be stored in the user database 17.

[0033] Job information 15 includes data related to the job entered by the user, such as the recipe file 11 created by the user, as well as sample information and other files. Database 16 stores historical information, including log data from the measuring device 8, reports of previously executed jobs, raw data of previously executed jobs, specification data for the measuring device 8, and other data. The historical information includes data for previously executed jobs, combined with job information and estimated total job time, as training data. The data stored in database 16 is used to update the ML model 32. Database 16 also stores data acquired by the data acquisition unit 23. Database 16 is used to support the process of updating the ML model 32. Task list 26 is a file containing a list describing a series of tasks generated by the recipe analysis unit 21. Database 16 stores device information corresponding to each of the multiple vacuum pump models and each of the multiple SEM models. If the configuration file and output information are separate files from the recipe file 11, the configuration file and output information are stored in database 16.

[0034] ML model 32 is an ML model file. In this embodiment, ML model 32 is an estimation model that takes information on a series of tasks as input and outputs the estimated duration of each task. Registered schedule 44 is a calendar in which time slots of each user's desired schedule, reserved by multiple users to use the measuring device 8, are registered. The registered schedule 44 is finalized and updated when a user agrees to the provisional schedule reported by the report unit 5. In this embodiment, the registered schedule 44 is described as being in calendar format, but is not limited to calendar format. Report 50 is a file containing the estimated duration of each task, the estimated total time of the job, and information on the time slots scheduled for the user.

[0035] The desired schedule 13 is a file containing the user's preferred time frame for executing a job. For example, the user can specify a deadline, which is the time the job should be completed. The user can change the deadline at any time before the deadline. Another example is when the user specifies a particular time slot within which they have free time to operate an experiment. The scheduling device 10 attempts to schedule the jog to complete according to the desired schedule, but if scheduling is not possible, it requests a change in the deadline or a change to a different measurement recipe that corresponds to the desired schedule.

[0036] Raw data 188 is collected from the memory 85 of the control computer 83 and stored in memory 30. This allows the scheduling device 10 to track the progress of jobs and determine whether the estimated duration of a particular task matches the actual duration of the task being executed. User database 17 stores user information collected from user terminals 7 for each user. User information includes credentials for the user to log in to the scheduling device 10, an email address to which messages sent by email from the notification unit 64 are addressed, and information on schedules set in the past, present, and future.

[0037] The processor 20 is the central processing unit in the scheduling device 10. The processor 20 is used to execute the components necessary for scheduling and job time estimation. The processor 20 includes a recipe analysis unit 21, a related data identification unit 22, a data acquisition unit 23, an ML model update unit 24, an ML inference unit 31, a scheduling / reporting unit 45, an error processing unit 6, and a notification unit 64.

[0038] The recipe analysis unit 21 analyzes a recipe file 11 created by the user on the user terminal 7 and received from the user terminal 7 via the external network 101. The recipe analysis unit 21 receives the recipe file 11 as input, generates a task list 26 as output, and stores the task list 26 in memory 30. The task list 26 is a list of grouped tasks, which is necessary for estimating the time required for each task, which is useful for predicting job time. For example, if a series of tasks is SEM image acquisition, the first task is "move the stage from position Ps1 to position Ps2", the second task is "autofocus", and the third task is "capture the image".

[0039] The related data identification unit 22 analyzes each task and generates a list of related data necessary to enable the ML model 32 to estimate the duration of each task. Specifically, the related data identification unit 22 receives the task list 26 generated by the recipe analysis unit 21 as input and generates a list of related data as output. For example, if the task is vacuuming, the related data may require a "vacuum pump model" and / or a "SEM model". The vacuum pump model is, for example, a model number to identify the manufacturer and type of the vacuum pump. The SEM model is, for example, a model number to identify the manufacturer and type of the SEM.

[0040] The data acquisition unit 23 collects relevant data using two methods: automatic collection such as data scraping and manual input by the user. An example of the relevant data to be collected is described below. We will explain the case where the collected data is device information, which is information related to the measuring device 8. For example, in the case of sample S, after the stage 182 moves at a movement speed V and stops, a certain waiting time tz is required for the vibration of the stage 182 to subside. The reason for waiting to take images until the vibration of the stage 182 subsides is that if the stage 182 is vibrating, the acquired image will be out of focus and blurry. In this case, the device information includes the autofocus speed, the movement speed V of the stage, and the convergence time tz, which is the waiting time for stage vibration. If the material of the sample, which is the object to be measured 100, is a new material, it is desirable that the convergence time tz be based on the advice of an expert who is studying the material in question. Expert advice may be obtained, for example, by the Delphi method. The data collected by the data acquisition unit 23 is stored in the database 16.

[0041] The ML model update unit 24 inputs the task list 26 and related data into the ML model 32 and updates the ML model 32 in order to have the ML model 32 estimate the duration of each task in a series of tasks. The ML model update unit 24 may also train the ML model 32 using log data stored in the database 16. The ML inference unit 31 runs the ML model 32 to estimate the job time. The ML inference unit 31 adds an appropriate safety time tw as a safety margin to the estimated duration of the series of tasks in case of errors such as delays.

[0042] The scheduling / reporting unit 45 has a scheduling unit 4 and a reporting unit 5 as shown in Figure 1. When the scheduling / reporting unit 45 receives information on the predicted duration and safety time tw for each task from the ML inference unit 31, it calculates the total estimated job time, which is the sum of the predicted durations for each received task. The scheduling / reporting unit 45 writes both the predicted duration for each task and the total estimated job time to the report 50 and saves a draft of the report 50 to the memory 30. The scheduling / reporting unit 45 refers to the registered schedule 44 and searches for available time slots based on the user's desired schedule 13. If the scheduling / reporting unit 45 finds an available time slot as a result of the search, it assigns the user's job to the available slot. When the user agrees to the scheduled time slot, the scheduling / reporting unit 45 writes the scheduled time slot to the report 50. The report 50 is updated after the user agrees to the provisional schedule. If the user does not agree to the provisional schedule, they can change the desired schedule 13, manually modify the recipe, or request a recipe suggestion from the scheduling device 10.

[0043] The error processing unit 6 examines the time the raw data 188 was created and compares the actual time elapsed from the job start to the task currently running with the estimated time elapsed from the job start to the task currently running. The error processing unit 6 determines whether these times match. If the two times do not match, the error processing unit 6 executes error handling. If the estimated total job time was overestimated, the job will finish before the scheduled time slot completion time. Therefore, the error processing unit 6 notifies the user who has reserved the next time slot that they can start their job earlier. The notification method is, for example, email. On the other hand, if the estimated total job time was underestimated, the schedule of the running job will conflict with the schedule of the next user's job, and the running job will need to be terminated early. In this case, the error processing unit 6 notifies the user of a warning. When the user receives the warning, they can either abandon the task at the end of the time series in the task list 26, or, if there is sufficient time, select which tasks to run and which to abandon within the limited time.

[0044] The notification unit 64 sends a reminder to the user to prepare as the start time of the next job approaches. The notification unit 64 also notifies the next user that they have the option to start their job earlier if the previous user's job finished earlier than scheduled. If the job is behind schedule, the notification unit 64 warns the user that action is needed to address the delay. Notifications to the user are made via email or other means of communication.

[0045] (others) Note that the configuration shown in Figure 2 is just one example. In another example, the control computer 83 may have the configuration of the scheduling device 10 and perform the functions of the scheduling device 10. In this case, the user terminal 7, scheduling device 10, gateway server 9, external networks 101 and 102, and private network 103 may not be provided. The configuration of the measurement system 200 is not limited to the configuration shown in Figure 2.

[0046] <Scheduling device 10> Next, the configurations of the scheduling device 10 shown in Figure 1 will be explained in detail with reference to Figures 3 to 16.

[0047] <Information acquisition section 1> The configuration of the information acquisition unit 1 shown in Figure 1 is described below. Figure 3 is a diagram illustrating one example configuration of the information acquisition unit shown in Figure 1. The information acquisition unit 1 receives input from the user of job-related information, such as measurement recipe information including recipe file 11, sample information 12, and other setting information. The information acquisition unit 1 also receives input from the user of a desired schedule 13.

[0048] (Recipe file) The recipe file 11 is described below. When a user uploads a recipe file 11 for analysis, the recipe file 11 is converted into a task list 26 by the recipe analysis unit 21, and the task list 26 is saved in memory 30. The recipe file 11 can take various forms depending on the model of the measuring device 8 or the interaction between the control computer 83 and the SEM main unit 81.

[0049] An example of recipe file 11 is described below. Recipe file 11 is a CSV file containing the number of images, 2D coordinates (X,Y) that identify the position of each image on stage 182, the magnification (zoom) of each image, and other measurement conditions. Furthermore, if multiple samples are mounted on the same substrate, recipe file 11 may also contain information indicating which sample or specimen the image to be acquired from belongs to. In addition, recipe file 11 may have a TXT file containing the naming system for each image, the location where each image is saved, and the format of each image. This TXT file will be referred to as the configuration file and will be explained later.

[0050] For jobs that involve acquiring images of multiple samples, the recipe file 11 becomes more complex. Such a recipe file 11 adds the acquisition of low-magnification images to ensure that the range of multiple samples is clean, and the stage vibration convergence time for each of the multiple samples. The acquisition of low-magnification images is performed by camera 185. In this case, it is desirable to increase the safety time tw added to the estimated duration for the series of tasks, including the acquisition of low-magnification images and the convergence of multiple stage vibrations. By adding the safety time tw, which is a safety margin against errors, to the estimated duration of the series of tasks in accordance with the contents of the recipe file 11, it is possible to prevent the job from being forcibly terminated midway due to minor operational errors.

[0051] A specific example of recipe file 11 will be explained with reference to Figure 4. Figure 4 is a table showing an example of the recipe file shown in Figure 3. Recipe file 111 shown in Figure 4 is an example of recipe file 11. As shown in recipe file 111, the number of images N obtained from n samples in one job and the method of obtaining each image are registered in a table format. In the table shown in Figure 4, each image is distinguished by a row, and the method of obtaining each image, such as the 2D coordinates on stage 182, the magnification, and other setting information, is distinguished by a column. Recipe file 111 may also be a CSV file. In the example shown in Figure 4, Nbs is the sample ID, which is a different identifier for each sample. S is the sample name, X is the X coordinate on the stage, Y is the Y coordinate on the stage, and M is the magnification. Note that Figure 4 shows the case of a measurement recipe for one user, but measurement recipes for multiple users may be registered in one file as long as each user's measurement recipe can be identified.

[0052] Figure 5 shows an example of a configuration file. Configuration file 112 may be part of recipe file 11, or it may be a separate file from recipe file 11. Configuration file 112 is an example of configuration information. Configuration file 112 contains information such as the SEM model, vacuum pump model, location of the data storage folder, image naming convention, image data format, image and metafile naming convention, and other information. In Figure 5, "Device" means the SEM model, "Pump" means the vacuum pump model, and "Destination_folder" indicates the location of the data storage folder. "Image_Name" indicates the image naming convention, and "Image_Format" indicates the image data format. "Metafile_Name" indicates the image and metafile naming convention. For example, the first image is named img_1.bmp, and the corresponding metafile is named img_1.txt.

[0053] Figure 6 illustrates an example of a sample placed on the stage of the measuring device. The number of samples measured in one job may be one, but is not limited to one. Figure 6 shows the case where two samples are placed on stage 182. In this case, the measurement recipe, for example, acquires three images from the two samples. Of the three images, two are from sample 1, and the remaining one is from sample 2. Each of the three images has a 2D coordinate system to identify its position and a magnification factor. For the three measurement locations shown in Figure 6, the file name is denoted as FN, the 2D coordinate as Pos, and the magnification factor as M. As shown in Figure 6, multiple samples may be measured in a single job. Figure 6 is an example illustrating the case where multiple samples are placed on stage 182; the number of samples is not limited to two, but may be three or more.

[0054] (Sample information) The sample information 12 shown in Figure 3 is described below. When a user uploads sample information 12, such as the type of material, sample size, weight, and manufacturing method, the sample information 12 is stored in memory 30. The sample information 12 is useful when estimating the time required for specific tasks, such as moving the stage 182, converging the vibrations of the stage 182, and autofocusing. The sample information is described, for example, in a CSV file. When the sample information is registered in a table format, each column represents a specific property of the sample, such as the sample name, material composition, heat treatment temperature, and manufacturer, and each row represents a different sample. By preparing the sample information 12, multiple samples can be loaded onto the stage 182, and images of multiple samples can be captured in a single job.

[0055] A specific example of sample information 12 will be explained with reference to Figure 7. Figure 7 is a table showing an example of the sample information shown in Figure 3. In the sample information file 121 shown in Figure 7, each row represents a sample, and each column represents attributes such as the sample manufacturing method, sample characteristics, and manufacturer. The sample information file 121 is not limited to a table format; for example, it may be a CSV file. Sample S or sample ID is a required item, but the remaining items can be flexibly set by the user. In the example shown in Figure 7, Mk is the manufacturer name, Tc is the heat treatment temperature for heating the sample during the manufacturing process, Mt is the material composition of the sample, and Th is the thickness of the material (if the sample is in film form). The material is, for example, TiO or TiO2. Other information, such as sample weight, may be added to the items of sample information 12.

[0056] (Preferred schedule) The desired schedule 13 shown in Figure 3 will now be explained. The desired schedule 13 is entered into the information acquisition unit 1 by the user. The desired schedule 13 is the date and time that the user wishes to execute the job. One example of how to enter the desired schedule 13 is for the user to enter the desired start date and time or the desired end date and time of the job. Once the desired schedule 13 is accepted, the user can manipulate the schedule of this job at any time before the desired schedule 13 is completed. Another input method is for the user to enter the desired time slot (from the start date and time to the end date and time). When the information acquisition unit 1 receives one or more desired schedules 13 from multiple users, it stores the received desired schedules 13 in the memory 30.

[0057] Figure 8 shows an example of a desired schedule as shown in Figure 3. Figure 8 shows Calendar 131 with desired schedules 13 entered. Calendar 131 contains desired schedules 13 entered by multiple users. The same user may enter multiple desired schedules 13 into Calendar 131. Users can enter desired schedules 13 into Calendar 131. The example shown in Figure 8 shows a case where User 1 has entered multiple desired schedules. In the example shown in Figure 8, User 1 is the user currently entering desired schedules. Users 2-5 are other users whose time slots were scheduled before User 1. User 1 may enter desired schedules 13 not only by directly entering them into Calendar 131, but also by setting a deadline for desired schedules 13 or by setting a group of multiple time slots that the user can accommodate. Calendar 131 is stored in the user database 17.

[0058] In the example shown in Figure 8, User 1 has entered four desired schedules 13. The first time slot is from 16:00 to 20:00 on 2024 / 09 / 02. The second time slot is from 04:00 to 08:00 on 2024 / 09 / 04. The third time slot is from 08:00 to 16:00 on 2024 / 09 / 05. The fourth time slot is from 20:00 to 24:00 on 2024 / 09 / 05. In this example, the deadline for User 1 to operate the job is Thursday.

[0059] (Other data) The additional data 14 shown in Figure 3 will now be explained. If the data collected in memory 30 is insufficient for creating the task list 26 or estimating the job time, the user enters additional data 14 (see step S106 in Figure 18). For example, if the object being measured 100 is a new material, the additional data 14 may include the autofocus time and the stage vibration convergence time tz. Also, in the case of a new SEM model, the additional data 14 may include the stage vibration convergence time tz.

[0060] Figure 9 shows an example of additional data 14. Table 141 shown in Figure 9 shows additional data required to estimate the duration of a task. In Table 141, each row indicates the type of additional data. The first column of Table 141 indicates the task. The second column of Table 141 indicates the related category. The related category has a strong correlation with the task and corresponds to a missing factor. The third column of Table 141 is a value that the user is required to input. The fourth column of Table 141 is the duration (in seconds). In the duration column, the user enters the duration required for the task based on past experience. For example, the first task is vacuuming, but if a new vacuum pump is used, the equipment information for the vacuum pump model may not be registered in the database 16. In this case, the job time estimation unit 3 cannot estimate the duration of vacuuming. Therefore, the user is required to input the duration of vacuuming. The second task is stage vibration convergence. If the user has not entered the sample weight in the sample information, the user will be prompted to input both the sample weight value and the predicted convergence time for stage vibration. In this way, the missing data is filled in as a preprocessing step before estimating the job time.

[0061] <Information Analysis Department 2> The configuration of the information analysis unit 2 shown in Figure 1 will be explained. Figure 10 is a block diagram showing one example configuration of the information analysis unit shown in Figure 1. The information analysis unit 2 analyzes the recipe file 11 entered by the user and understands the series of tasks required for the job. The information analysis unit 2 creates a series of tasks necessary for estimating the job time. The information analysis unit 2 includes a recipe analysis unit 21, a related data identification unit 22, a data collection unit 23, an ML model update unit 24, and a recipe suggestion unit 25.

[0062] The recipe analysis unit 21 receives the recipe file 11 created by the user from the user terminal 7 via the external network 101 and analyzes the received recipe file 11. The recipe analysis unit 21 receives the recipe file 11 as input, generates a task list 26 as output, and saves the task list 26 to memory 30. The task list 26 is a list of grouped tasks, and it is necessary to estimate the time required for each task in order to estimate the job time. For example, if the series of tasks is SEM image acquisition, the first task is to "move the stage from position Ps1 to position Ps2", the second task is "autofocus", and the third task is "capture the image".

[0063] Furthermore, if there are multiple samples in a single job, the autofocus time may differ between the samples. Therefore, if there are two samples, the recipe analysis unit 21 does not use a task with the same name for both samples to acquire the images of the samples, but instead creates two tasks with different names. For example, the recipe analysis unit 21 names one of the two tasks "AF_sample1" and the other task "AF_sample2".

[0064] One example of recipe analysis is to have the user create a measurement recipe according to a specific recipe file format, and then have the processor 20 execute a program that performs the functions of a recipe reader. Another example of recipe analysis is that if the user is not familiar with a predetermined input format, the recipe analysis unit 21 may be made capable of analyzing measurement recipes entered by the user in natural language.

[0065] The related data identification unit 22 analyzes each task in the task list 26 generated by the recipe analysis unit 21 and creates and outputs a list of related data necessary to generate a series of tasks. The related data identification unit 22 receives the task list 26 generated by the recipe analysis unit 21 as input and generates and outputs a list of related data. For example, in the case of a vacuuming task, the related data includes "vacuum pump model," "SEM model," and "chamber size." In this way, as a preprocessing step before estimating the job time, the related data identification unit 22 classifies the data and performs filtering to extract the data necessary for the estimation process.

[0066] Here, we will explain an example of task list 26. Figure 11 is a table showing an example of a task list created by the Information Analysis Department. In the task list 211 shown in Figure 11, each row represents a task, the first column represents the task number, and the second column represents the task itself. We will now explain specific examples of tasks 1 to 5.

[0067] Task 1 is vacuuming using the vacuum pump 82. The purpose of Task 1 is to remove air from the vacuum chamber 181 in preparation for measurement. Task 2 is moving the stage 182. The purpose of Task 2 is to set precise two-dimensional coordinates for the stage 182 so that electrons are irradiated onto the sample from the electron gun 183. Task 3 is focusing the vibrations of the stage 182. The purpose of Task 3 is to suppress blurring of the sample image caused by the vibrations of the stage 182. Task 4 is controlling autofocus, automatic brightness adjustment, and automatic contrast adjustment. Task 5 is capturing an image of the sample. These tasks are highly dependent on the measurement recipe.

[0068] The data collection unit 23 is responsible for collecting related data from the list output by the related data identification unit 22. Some of the related data may exist in the database 16. In this case, the data collection unit 23 retrieves the related data from the database 16. Other related data not stored in the database 16 needs to be collected. The data collection unit 23 is divided into an automatic data collection unit 27 and a manual data collection unit 28 depending on the difference in the collection process. For example, after the stage 182 carrying the sample S moves at a speed V and stops, a certain waiting time is required until the vibration of the stage subsides. If the sample S is a new material, it is desirable to obtain the data necessary to estimate the waiting time with the advice of an expert who is studying the new material. The manual data collection unit 28 receives the waiting time predicted by the user who has obtained advice from the material expert. The collected data is stored in the database 16. The automatic data collection unit 27 performs automatic data scraping. This data scraping scrapes data from the database 16. As an example of another automated data collection method, the automated data collection unit 27 may use web scraping to collect data not stored in the database 16 via an external network 101, including the internet. In this way, missing data necessary for estimating job time is supplemented.

[0069] The ML model update unit 24 trains the ML model 32 based on the output of the recipe analysis unit 21, related data, and data stored in the database 16. Alternatively, the ML model update unit 24 may connect to an external server via the external network 101 and perform online training using the external server to train the ML model 32. Figure 12 illustrates an example of online training. The scheduling device 10 is connected to the training server 300 via the external network 101. The training server 300 stores a large amount of training data for training the ML model 32. This training data is, for example, combined data of sample information and estimated total time of measurement jobs for new materials that the measuring device 8 has never measured before. Alternatively, the training data may be combined data of device information and estimated total time of jobs for newly released SEM models or vacuum pumps. The ML model update unit 24 acquires a large amount of training data from the training server 300 via the external network 101. The ML model update unit 24 then trains the ML model 32 using the acquired training data. This improves the accuracy of the estimated time required for each task, which is estimated by the job time estimation unit 3.

[0070] The recipe suggestion unit 25 analyzes the job time report described later, the user's desired schedule 13, and the desired schedules of other users stored in the user database 17. For jobs in progress, log data from the measuring device 8 may also be included in the analysis. Based on the analysis of this data, the recipe suggestion unit 25 proposes a recipe that satisfies the user's desired schedule 13. Specifically, the recipe suggestion unit 25 determines how much the job time needs to be reduced in order to satisfy the user's desired schedule 13. Then, the recipe suggestion unit 25 assigns different weights to each of the multiple tasks, modifies the recipe to reduce the total time, and proposes the modified recipe to the user. The recipe suggestion unit 25 assigns a larger weight to a task the higher its importance.

[0071] For example, consider a specific series of tasks, such as image capture, where, for redundancy and to avoid errors, the task is repeated 50 times, with each capture taking place at different locations within a certain range of close proximity to each other. Assume that each task takes 1 minute. Now, consider a scenario where there is an available time slot in the schedule calendar that matches the user's desired schedule 13, but this available time slot is 5 minutes shorter than the estimated duration of the specific series of tasks. In this case, the recipe suggestion unit 25 suggests a recipe to the user in which the task is repeated 45 times. Since the suggested recipe has 5 fewer tasks compared to the case with 50 tasks, the duration of the series of tasks is reduced by 5 minutes. Therefore, the job can be placed within the user's desired schedule 13.

[0072] The recipe suggestion unit 25 may also suggest a recipe to the user that assigns high weights to the first 10 tasks out of 50 tasks, medium weights to the next 30 tasks, and low weights to the remaining 10 tasks. Because the last 10 tasks have low weights, discarding 5 of the last 10 tasks to ensure the job is completed by the user's desired schedule 13 will have little impact on the recipe's objective. The user can choose whether or not to agree to the recipe suggested by the recipe suggestion unit 25 (see step S110 in Figure 18).

[0073] <Job Time Estimation Unit 3> The configuration of the job time estimation unit 3 shown in Figure 1 will be explained. Figure 13 is a block diagram showing an example configuration of the job time estimation unit shown in Figure 1. The job time estimation unit 3 uses ML to estimate the required time for each task in the task list 26 created by the information analysis unit 2. The job time estimation unit 3 also adds an appropriate safety time tw to the estimated required time for a series of tasks in case of an error. The job time estimation unit 3 has an ML inference unit 31.

[0074] The ML inference unit 31 inputs information about a series of tasks into the ML model 32, which is stored in memory 30 and updated by the ML model update unit 24, causing the ML model 32 to output information about the predicted duration for each task. The ML inference unit 31 also determines a safety margin, or safety time tw, for the series of tasks. The safety time tw information serves as a criterion for determining the estimation accuracy. The higher the estimation accuracy, the shorter the safety time tw.

[0075] <Scheduling Section 4> The configuration of the scheduling unit 4 shown in Figure 1 will be explained. Figure 14 is a block diagram showing an example configuration of the scheduling unit shown in Figure 1. The scheduling unit 4 constitutes a part of the scheduling / reporting unit 45. When the scheduling unit 4 receives information on the predicted duration of each task from the job time estimation unit 3, it calculates the total estimated job time, which is the sum of the predicted durations of each task received. For each of the multiple users who share the measuring device 8, the scheduling unit 4 stores a registered schedule 44 in the memory 30 that indicates the planned schedule for using the measuring device 8. Based on the user's desired schedule 13, the scheduling unit 4 selects the most appropriate time slot from the unscheduled time slots in the overall schedule. The scheduling unit 4 assigns the new job entered by the user to the selected time slot.

[0076] If the scheduled completion time of a user's job exceeds the start time of another user's scheduled job, the user can choose one of three options. The first option is for the user to change the job completion time. The second option is for the user to request the recipe suggestion unit 25 to suggest a recommended recipe that fits the schedule so that the job can be completed on time (see step S111 in Figure 18). The third option is for the user to manually change the measurement recipe and have the scheduling device 10 reschedule the job. The scheduling unit 4 includes a job time calculation unit 41, a job time report unit 42, and a schedule suggestion unit 43.

[0077] The job time calculation unit 41 calculates the total estimated job time by adding up the estimated duration of each task in a series of tasks. The job time report unit 42 creates a job time report that includes the output information from the job time estimation unit 3 and the job time calculation unit 41. Specifically, as an example of report 50, the job time report unit 42 creates a job time report that includes both the estimated duration of each task and the total estimated job time. The purpose of the job time report unit 42 is to present the job time report to the user after a provisional schedule has been created by the schedule proposal unit 43. If the user does not agree with the provisional schedule and considers changing the recipe, they can check the job time report to understand the estimated duration of each task.

[0078] The schedule proposal unit 43 collects user information, including the user's past schedules, from the user database 17. Based on the user information and the desired schedules of multiple users stored in the registered schedule 44, the schedule proposal unit 43 proposes a provisional schedule to the user, allocated to an available time slot. The user can choose to accept the proposed provisional schedule, manually modify the recipe, request a recommended recipe, or modify the desired schedule 13. Once the job schedule and measurement recipe are confirmed by the user, the schedule proposal unit 43 transmits the schedule and measurement recipe information to the control computer 83. The schedule includes information on the start date and time and the end date and time of the measurement recipe.

[0079] <Report Section 5> The configuration of the reporting unit 5 shown in Figure 1 will be explained. Figure 15 is a block diagram showing an example configuration of the reporting unit shown in Figure 1. The reporting unit 5 constitutes part of the scheduling / reporting unit 45. The reporting unit 5 is responsible for reporting the schedule confirmed by the scheduling unit 4 to the user. The reporting unit 5 operates when the user confirms the schedule presented by the schedule proposal unit 43. Depending on the option selected by the user, the reporting unit 5 provides the user with a job time report, a recipe report, or an updated version of the measurement recipe. The job time report reports the estimated total job time and the estimated duration of each task to the user. The recipe report is provided for the user to refer to if the user's changes to the measurement recipe have not been applied. The updated version of the recipe reports the user the updated measurement recipe when changes to the measurement recipe have been applied to meet a specific deadline. The reporting unit 5 includes a final job information report unit 51, a final job time report unit 52, a final schedule report unit 53, and a final report unit 54.

[0080] The final job information reporting unit 51 generates a final job information report that includes job information 15 and sample information 12. The job information 15 includes both the old and new versions if the measurement recipe has been updated to match the desired schedule 13. The final job time report unit 52 generates the final job time report, which is the final version of the job time report created by the job time report unit 42. The job time report created by the job time report unit 42 is only a draft that requires correction or verification. Therefore, the final version of the job time report is needed after the user has confirmed the registration schedule 44 proposed by the scheduling device 10. The final schedule report unit 53 generates a final schedule report, which is the final version of the schedule report that notifies the confirmed schedule. In the final schedule report, the final schedule report unit 53 may notify the user, for example, that if the user does not start the job early, the entire job may not be able to be completed.

[0081] The final report unit 54 provides the user with a final report that combines the final job information report, the final job time report, and the final schedule report into a single file. As an example of how it is provided, the final report unit 54 sends the final report to the user's user terminal 7 via the notification unit 64 using a communication method such as email. If the user chooses to approve the provisional schedule proposed by the schedule proposal unit 43, the final report unit 54 creates the final report after the user has approved the provisional schedule.

[0082] <Error Processing Unit 6> The configuration of the error processing unit 6 shown in Figure 1 will be explained. Figure 16 is a block diagram showing an example configuration of the error processing unit shown in Figure 1. The error processing unit 6 monitors the progress of jobs in real time, analyzes the progress of jobs in real time at predetermined timings to determine whether there are any delays, and estimates the time required for the remaining tasks. The predetermined timings are, for example, at regular intervals or when tasks switch. The error processing unit 6 receives information from the scheduling unit 4 regarding the estimated time required for each task, the estimated total job time, and the safety time tw.

[0083] Error processing unit 6 compares the estimated duration of the remaining tasks in the job with the estimated duration. If the comparison shows that the remaining duration is longer than the estimated duration, error processing unit 6 determines that the job needs to be completed earlier than scheduled. In this case, error processing unit 6 notifies the user of a warning to ensure that the next user's job starts on schedule. The cause of the error may be user-based, an operational error in the SEM, or incorrect estimated duration for multiple tasks or a specific task. User-based causes include, for example, if the user starts the measurement later than scheduled. If error processing unit 6 underestimates the total estimated job time, it prompts the user to re-evaluate the recipe or suggests a new recipe. On the other hand, if error processing unit 6 overestimates the total estimated job time, it provides the next user with the option to start their job earlier.

[0084] The error processing unit 6 includes a progress monitoring unit 61, a performance monitoring unit 62, and a corrective action unit 63. The progress monitoring unit 61 investigates log data related to the measurement, such as the status of the SEM main unit 81 and timestamps for the creation of images and metafiles. The log data helps the progress monitoring unit 61 understand which tasks in the task list are currently being executed. The progress monitoring unit 61 tracks the progress of the job in real time using the log data received from the measuring device 8.

[0085] Based on the progress grasped by the progress monitoring unit 61, the performance monitoring unit 62 calculates the actual time required from the start of the job to the currently executing task, and compares the calculated required time with the estimated required time by the ML inference unit 31 (see step S114 shown in FIG. 19). This will be specifically explained. The performance monitoring unit 62 receives the monitoring result from the progress monitoring unit 61, and based on the monitoring result, calculates the required time of the completed task. This value is the actual time required from the start of the job to the currently executing task. Let the actual required time be denoted as tr. Next, the performance monitoring unit 62 compares the obtained actual required time tr with the estimated required time based on the report generated by the final job time reporting unit 52. Let the estimated required time from the start of the job to the currently executing task be denoted as tp.

[0086] Also, the performance monitoring unit 62 determines an allowable time tm, which is a margin time shorter than the safety time, for the difference between the actual required time tr and the estimated required time tp. The allowable time tm is, for example, 10% of the total job time. Then, the performance monitoring unit 62 determines whether the actual required time tr is longer or shorter than the estimated required time tp. Also, the performance monitoring unit 62 determines whether the difference between the actual required time tr and the estimated required time tp is less than or equal to the safety time tw. Through these determination processes, the performance monitoring unit 62 outputs four different results. An example of the four different results will be described below.

[0087] The first output is the case where the difference between the estimated required time tp and the actual required time tr is less than or equal to the allowable time tm. That is, the first output is the case where |tp - tr| ≦ tm. The second output is the case where the estimated required time tp is longer than the actual required time tr and the difference between the estimated required time tp and the actual required time tr is greater than the allowable time tm. That is, the second output is the case where tm < tp - tr. The third output is the case where the estimated required time tp is shorter than the actual required time tr, but the difference between the estimated required time tp and the actual required time tr is less than or equal to the safety time tw. That is, the third output is when 0 < tr - tp ≤ tw The fourth output is the case where the estimated required time tp is shorter than the actual required time tr, but the difference between the estimated required time tp and the actual required time tr is greater than the safety time tw. That is, the fourth output is when 0 <tr-tp>This is the case with tw.

[0088] Let's explain the four outputs of the performance monitoring unit 62 with specific examples. To simplify the explanation, let's assume that the job has 10 tasks, tasks 1 to 10, that the ML model processing takes 1 minute for each task, and that the safety time tw is 5 minutes. In this case, the estimated total time of the job, including the safety time tw, is 15 minutes. That is, 10 minutes (= 1 minute × number of tasks) + tw = 15 minutes. Also, let's assume that the allowable time tm is 10% of the total job time, that is, tm = 1 minute. Let's also assume that the job started at 10:00, tasks 1 to 4 have finished, and task 5 is currently running. That is, the current time is approximately 10:05.

[0089] Under the above assumptions, if the current time is 10:04, 10:05, or 10:06, the output of the performance monitoring unit 62 will be the first of the four outputs mentioned above. If the current time is 10:03, the output of the performance monitoring unit 62 will be the second of the four outputs mentioned above. If the current time is 10:08, the output of the performance monitoring unit 62 will be the third output out of the four outputs mentioned above. This is because the delay is 3 minutes, which is shorter than the safety time tw (= 5 minutes). If the current time is 10:11, the output of the performance monitoring unit 62 will be the fourth output out of the four outputs mentioned above. This is because the delay is 6 minutes, which is longer than the safety time tw (= 5 minutes).

[0090] The corrective action unit 63 determines whether corrective action is necessary based on the output of the performance monitoring unit 62. If the corrective action unit 63 determines that corrective action is necessary, it determines the optimal corrective action. The operation of the corrective action unit 63 when the output of the performance monitoring unit 62 is the first output is described below. The first output is when the difference between the estimated required time tp and the actual required time tr is less than or equal to the allowable time tm. In this case, the corrective action unit 63 determines that no corrective action is necessary.

[0091] The operation of the corrective action unit 63 when the output of the performance monitoring unit 62 is the second output is described below. The second output is when the estimated required time tp is longer than the actual required time tr. In this case, the corrective action unit 63 feeds back to the information analysis unit 2 that the estimated required time tp is longer than the actual required time tr. The ML model update unit 24 performs online training on the ML model 32 to improve the accuracy of the ML model 32. If the above situation continues until the end of the job, the corrective action unit 63 sends a notification to the next user via the notification unit 64, offering the next user the option to start the job earlier than the scheduled time.

[0092] The operation of the corrective action unit 63 when the output of the performance monitoring unit 62 is the third output is described below. The third output occurs when the estimated required time tp is shorter than the actual required time tr, but the time difference is less than or equal to the safety time tw. In this case, the corrective action unit 63 feeds back to the information analysis unit 2 that the estimated required time tp is shorter than the actual required time tr, but the time difference is less than or equal to the safety time tw, in order to encourage online training to improve the accuracy of the ML model 32. The corrective action unit 63 then sends a notification to the user of the running job via the notification unit 64, warning that the job is running slower than expected. In this case, the user can make any necessary recipe changes for the remaining tasks, but does not need to take any action in response to this warning because the delay will fall within the safety time tw.

[0093] The operation of the corrective action unit 63 when the output of the performance monitoring unit 62 is the fourth output is described below. The fourth output occurs when the estimated required time tp is shorter than the actual required time tr, and the difference between these times is greater than the safety time tw. In this case, the corrective action unit 63 provides feedback to the information analysis unit 2 that the estimated required time tp is shorter than the actual required time tr, and the difference between these times is greater than the safety time tw, in order to encourage online training to improve the accuracy of the ML model 32. Furthermore, the corrective action unit 63 determines whether the delay is due to an external reason or an internal reason. An external reason is when the user is responsible, for example, by starting the preparation of the sample measurement late. An internal reason is when the user is not responsible, for example, by the ML model underestimating the required time for the task.

[0094] If the delay is due to the user's fault, the corrective action unit 63 provides the user with the following three options (1) to (3). The user can choose a course of action from the three options. Option (1) is to manually modify the recipes for the remaining tasks to meet the reservation deadline. Option (2) is to request the recipe suggestion unit 25 to suggest recipes for the remaining tasks to meet the reservation deadline, assuming there is sufficient time to execute the remaining tasks. Option (3) is to reschedule the job to terminate it prematurely (for example, in the case of a job with 10 tasks, to stop at task 8).

[0095] If the delay is not due to the user's fault, the corrective action unit 63 provides the user with the following three options (1) to (3). The user can choose a course of action from the three options. Option (1) is to manually modify the recipe for the remaining tasks to meet the reservation deadline. Option (2) is to request the recipe suggestion unit 25 to suggest a recipe for the remaining tasks to meet the reservation deadline. Option (3) is to complete the job later than the reservation deadline and notify the next user via the notification unit 64 that the delay was caused by the measurement system 200. In this case, the user's job schedule is extended to include part of the time slot scheduled for the next user. The next user is given the same options as the current user. By modifying the schedule or measurement recipe according to the suggestion from the corrective action unit 63, the user can minimize the impact on other users' jobs reserved in the next time slot.

[0096] <Example Hardware Configuration> Here, an example of the hardware configuration of the scheduling device 10 will be described. Figure 17 is a block diagram showing an example of the hardware configuration of the scheduling device in this embodiment. The scheduling device 10 is, for example, a server. The scheduling device 10 includes a processor 20, a memory 30, an input device 105, an output device 106, and a communication circuit 107. The processor 20, the memory 30, the input device 105, the output device 106, and the communication circuit 107 are connected to each other via a bus 108.

[0097] The processor 20 is a computing device such as a CPU, MPU (Micro Processing Unit), or GPU (Graphics Processing Unit). The memory 30 is non-volatile memory. The memory 30 is a storage device such as an HDD (Hard Disk Drive) or SSD (Solid State Drive). In addition to the data mentioned above, the memory 30 stores programs. When the processor 20 executes a program, the functions of the information acquisition unit 1, information analysis unit 2, job time estimation unit 3, scheduling unit 4, reporting unit 5, and error processing unit 6 shown in Figure 1 are executed.

[0098] The input device 105 is, for example, a keyboard, mouse, or touch panel. The output device 106 is, for example, a display or speaker. The communication circuit 107 sends and receives data with other devices via the external network 101 or external network 102. For example, the communication circuit 107 sends and receives data with other devices according to a communication protocol such as IP (Internet Protocol).

[0099] Furthermore, some or all of the functions of the information acquisition unit 1, information analysis unit 2, job time estimation unit 3, scheduling unit 4, reporting unit 5, and error processing unit 6 shown in Figure 1 may be executed by a dedicated circuit such as an ASIC (Application Specific Integrated Circuit). The hardware configuration of the user terminal 7 is the same as the configuration example shown in Figure 17, so a detailed explanation is omitted. Also, Figure 17 shows an example in which the user directly operates the input device 105 of the scheduling device 10 to input data, and the scheduling device 10 outputs the processing result to the output device 106.Therefore, when the user sends data to the scheduling device 10 via the user terminal 7 and obtains the processing result from the scheduling device 10, the input device 105 and the output device 106 do not need to be provided in the scheduling device 10.

[0100] <Operation Description> The procedure for a user to have the measuring device 8 measure an object to be measured using the measurement system 200 of this embodiment is described below. The user operates the user terminal 7 to upload job information to the scheduling device 10 via a web page and inputs the desired schedule to the scheduling device 10 via the web page. The control computer 83 that controls the SEM main unit 81 connects to the gateway server 9 via a private network 103. The gateway server 9 automatically collects data from the control computer 83 and uploads the collected data to the scheduling device 10 in order to monitor the progress of the job.

[0101] An example of a procedure in which a user inputs a measurement recipe to the scheduling device 10 via the user terminal 7, and then measures the object to be measured 100 in the measuring device 8, is described below. (1) The user operates the user terminal 7 and uploads job information to the scheduling device 10 via a web page. (2) The user operates the user terminal 7 and selects their desired schedule via a web page. (3) The user reviews the provisional schedule proposed by the scheduling device 10 and confirms or modifies the provisional schedule. Once the user agrees to the provisional schedule, the scheduling device 10 transmits the measurement recipe and schedule to the control computer 83. (4) When the job start time arrives, the user sets the object to be measured 100 in the measuring device 8 and starts the measurement. The control computer 83 notifies the scheduling device 10 that the job has started. At this time, the user may directly or remotely input information to the scheduling device 10 that the job has started. When the scheduling device 10 is notified that the job has started, it acquires the SEM output via the gateway server 9 and monitors the progress of the job. (5) If a delay occurs in a job, the scheduling device 10 provides the user with the option to modify the recipe to determine the priority of the remaining tasks to be performed.

[0102] Next, the operation of the scheduling device 10 in this embodiment will be described in detail with reference to Figures 18 and 19. Figures 18 and 19 are flowcharts showing an example of the operation procedure of the scheduling device in this embodiment.

[0103] In step S101, when the user uploads job information and desired schedule, the job information and desired schedule are input to the scheduling device 10 via the information acquisition unit 1. In step S102, the recipe analysis unit 21 analyzes the measurement recipe and generates a task list based on the analysis results. The scheduling device 10 analyzes the information collected in step S101, converts the job into multiple tasks, and generates a task list to estimate the time required for each task.

[0104] In step S103, the related data identification unit 22 identifies the related data necessary for estimating the job time. In the task list generated in step S102, some tasks in the series may require additional related data to estimate the duration of the tasks. The related data may be, for example, equipment information. A specific example of the case where the related data is equipment information will be explained below.

[0105] If the task is vacuuming, the relevant data includes information such as the SEM model, vacuum pump model, sample material, and required vacuum level Pr0. The SEM model is used to determine the chamber size because, in a vacuuming task, the internal volume of the container from which air is to be removed is one of the important parameters. Some of this information may not be entered in step S101. The relevant data may not be entered by the user in step S101, but may already be stored in database 16, which contains historical information such as log data. Therefore, in step S103, the relevant data identification unit 22 also performs a scan of database 16.

[0106] In step S104, the data acquisition unit 23 collects relevant data necessary for updating the ML model 32, which estimates the time required for each task. The relevant data may be collected from the database 16 or from an external source. The automatic data acquisition unit 27 collects the necessary relevant data from the database 16 through collection processes such as data mining. The data collected from the database 16 includes, for example, device information and setting information related to the measuring device 8, output information and corresponding metafiles related to the output information of the measuring device 8, and sample information. The manual data acquisition unit 28 collects the necessary relevant data from an external source. The relevant data collected may include, for example, advice from an expert studying the object to be measured 100.

[0107] For example, after the stage 182, carrying sample S, moves at a speed V and stops, a certain waiting time is required until the stage vibration subsides. If sample S is a new material, it is desirable to obtain the relevant data necessary to estimate the waiting time through the advice of an expert studying the new material. One or more pieces of information from among instrument information, setting information, output information, metafile, sample information, and expert advice are added as relevant data necessary to estimate the time required for a series of tasks. Since task-related information is supplemented for the measuring instrument 8 or the sample, the estimation accuracy can be improved.

[0108] In step S105, the data collection unit 23 determines whether the collected data is sufficient to update the ML model 32. This is because it is necessary to evaluate whether the collected data is sufficient to perform ML inference correctly. If the data collection unit 23 determines that the collected data is insufficient, it generates a prompt to prompt the user to input the missing data and presents the generated prompt to the user. After that, the data collection unit 23 proceeds to the process in step S106. On the other hand, if the data collection unit 23 determines that the collected data is sufficient, it proceeds to the process in step S107.

[0109] In step S106, when the user uploads missing data, the missing data is entered into the data collection unit 23. For example, the user may enter a vacuum pump model, but the device information for the target vacuum pump model may not be stored in the database 16. In this case, the ML inference unit 31 can recognize the pumping speed, but may not be able to estimate the time required for the vacuuming task. Therefore, the data collection unit 23 requests the user to enter the pumping speed or the average time required to complete the pumping.

[0110] In step S107, the ML model update unit 24 updates the ML model 32. The ML model 32 used for estimation is updated to fit the input task list 26 based on the collected relevant data. The ML model update unit 24 updates the ML model 32 using the collected relevant data and historical information used to train the ML model 32 in the past, adjusting the ML model 32 to suit the target job. In step S108, the job time estimation unit 3 inputs information for a series of tasks into the ML model 32 and performs ML inference, obtaining information on the estimated duration of each task. The job time calculation unit 41 adds up the estimated duration of each task in the series to obtain the total estimated job time.

[0111] In step S109, the schedule proposal unit 43 determines the optimal time slot for the current user based on the estimated duration of each task, the estimated total job duration, and information on time slots previously used by the user. The report unit 5 provides the user with a job time report containing information on the estimated duration of each task, a recipe report regarding the job duration, and an updated version of the measurement recipe.

[0112] In step S110, the reporting unit 5 provides the user with a report presenting a provisional schedule. The schedule proposal unit 43 determines whether the user agrees to the provisional schedule. The user can choose one of three options as a response to the presentation of the provisional schedule. The three options are: the user agrees to the provisional schedule, the user requests a change in the deadline and rescheduling, or the user requests a new recipe proposal. Although not shown in Figure 18, the user may also manually change the entered recipe and return to step S101, causing the scheduling device 10 to restart the flow from the beginning.

[0113] If, as a result of the determination in step S110, the user requests to change the deadline and reschedule, the processor 20 returns to the process in step S109. The process in this case is the same as described above, so a detailed explanation is omitted. If, as a result of the determination in step S110, the user does not agree to the provisional schedule and requests a new recipe, the processor 20 proceeds to the process in step S111. For example, if the user believes that the desired data cannot be obtained with the presented provisional schedule, they request the scheduling device 10 to propose a new recipe.

[0114] In step S111, the recipe suggestion unit 25 optimizes the recipe so that the job can be completed within the time of the provisional schedule. The recipe suggestion unit 25 determines the measurement conditions of the measurement recipe entered by the user, and if it determines that there are conditions that can be changed, it changes the identified conditions. When the recipe suggestion unit 25 sends the optimized recipe to the recipe analysis unit 21, the processor 20 returns to the process in step S102. For example, the recipe suggestion unit 25 sends a newly created recipe that shortens the job time to the recipe analysis unit 21.

[0115] On the other hand, if the user agrees to the provisional schedule as a result of the determination in step S110, the processor 20 proceeds to the process in step S112. The reporting unit 5 confirms that the scheduled time slot and job time report have been agreed to by the user. When the job schedule and measurement recipe are finalized by the user's agreement to the provisional schedule, the schedule proposal unit 43 transmits the schedule and measurement recipe information to the control computer 83. When the job start time arrives, the user sets the object to be measured 100 in the measuring device 8 and starts the measurement. The control computer 83 of the measuring device 8 refers to the user's schedule, and when a measurement instruction is input from the user, it starts the job according to the measurement recipe. The control computer 83 notifies the scheduling device 10 of the start of the job. In step S112, the error processing unit 6 recognizes that the execution of the job has started.

[0116] In step S113, the progress monitoring unit 61 monitors the progress of the job. In step S114, the performance monitoring unit 62 determines whether an error has occurred. The performance monitoring unit 62 compares the estimated time tp with the actual time tr. If these times match and no error occurs, the job is executed to completion according to the measurement recipe. If an error occurs indicating that the estimated time tp is overestimated, or if the job is completed within the estimated time, the error processing unit 6 proceeds to step S116. If an error occurs indicating that the estimated time tp is underestimated, a delay will occur in the schedule, so the error processing unit 6 proceeds to step S115.

[0117] In step S116, the corrective action unit 63 notifies the next user that the job can be started earlier. The next user has the option to start the job earlier and finish it earlier. In step S115, the corrective action unit 63 refers to the progress log data and determines whether the schedule delay is due to a user error. The corrective action unit 63 confirms whether the delay is due to a user error or an error in estimating the job time. A user error might be, for example, starting the measurement later than scheduled.

[0118] If the determination in step S115 indicates that the delay is not due to user error, the corrective action unit 63 sends log data indicating the job progress to the ML model update unit 24 in order to update the ML model 32. Specifically, the corrective action unit 63 reads log data indicating the job progress from the database 16 at predetermined timings and sends it to the ML model update unit 24. These predetermined timings are, for example, at regular intervals or when tasks switch. In step S107, the ML model update unit 24 updates the ML model 32 based on the log data. In step S108, each time the ML model 32 is updated, the ML inference unit 31 uses the updated ML model 32 to re-estimate the duration of the remaining tasks in the series that have not yet been executed. In this case, while the job is running, the ML model 32 that estimates the duration of the tasks is updated by the log data, and the duration of the remaining tasks is re-estimated. As a result, the accuracy of predicting the completion time of the job in progress is improved.

[0119] Furthermore, if the determination in step S115 indicates that the delay is not due to user error, the corrective action unit 63 proceeds to step S121. In step S121, the corrective action unit 63 determines whether the user or the schedule has flexibility. Since the delay is not due to user error, the user can choose whether or not to take responsibility. If the determination in step S121 indicates that the user has enough flexibility to change the recipe or the schedule has enough flexibility to terminate the job early, the corrective action unit 63 proceeds to step S117.

[0120] On the other hand, if the determination in step S121 indicates that the user is inflexible and chooses not to take responsibility, the job will finish later than the time slot assigned to the user. If the next user's job is scheduled for the next time slot, the jobs will conflict with the next user's. If jobs from multiple users are scheduled for consecutive time slots, multiple users will be affected. Therefore, in step S122, the corrective action unit 63 notifies one or more users affected by the delay that a delay has occurred.

[0121] The corrective action unit 63 identifies users affected by the delay and notifies the identified users that the ML model 32 used to estimate job times will be updated. This is because there may be tasks in the measurement recipes of users affected by the delay that have estimation errors. In this case, as described above, the ML model update unit 24 updates the ML model 32. The scheduling unit 4 uses the total estimated job time calculated based on the updated ML model 32 to change the desired schedule of the users affected by the delay. Alternatively, the corrective action unit 63 may provide users affected by the delay with an opportunity to change their recipes.

[0122] On the other hand, if the determination in step S115 indicates that the delay is due to user error, the corrective action unit 63 proceeds to step S117. In step S117, the corrective action unit 63 determines whether the user accepts the change to the recipe. The user can choose to continue the job and terminate it before the remaining tasks are completed (step S118), or to change the recipe and not execute some of the remaining tasks (step S120).

[0123] If the user does not accept the change to the measurement recipe as a result of the determination in step S117, the corrective action unit 63 terminates the job midway (step S118). This is to avoid the delayed job conflicting with other users' jobs that have been scheduled next. The currently running job will terminate with some of its tasks not being completed.

[0124] On the other hand, if the user accepts the change in the measurement recipe as a result of the determination in step S117, the corrective action unit 63 asks the user whether or not to request a new measurement recipe (step S119). The user can choose to manually change the measurement recipe according to the schedule or to request a recipe optimization tool to suggest a new measurement recipe (step S111). If the user manually changes the measurement recipe as a result of the determination in step S119 (step S120), the corrective action unit 63 returns to the process in step S102 and sends the changed measurement recipe to the recipe analysis unit 21. On the other hand, if the user requests a new recipe as a result of the determination in step S119, the corrective action unit 63 requests the recipe suggestion unit 25 to optimize the measurement recipe (step S111).

[0125] <Example of input operation image> Next, specific examples of input operation images output to the output device 106 of the user terminal 7 by the information acquisition unit 1 will be explained with reference to Figures 20 to 22. Figures 20 to 22 show examples of graphical user interface (GUI) images for schedule input. The explanation will be given for the case where the output device 106 is a display.

[0126] Figure 20 shows an example of an input image displayed on the output device in step S101 shown in Figure 18. In step S101 shown in Figure 18, the user terminal 7 displays the input image shown in Figure 20 on the output device 106. The user uploads job information by clicking the upload button 251 while referring to the input image G1. The user also clicks the calendar icon 252 displayed next to the "Register Desired Schedule" item and enters the date of the desired schedule. After that, the user clicks the job time estimation button 253. As a result, the scheduling device 10 proceeds to the process in step S102.

[0127] Note that at step S101, the schedule has not yet been determined, so nothing is displayed in the task time report display field 254 and the schedule display field 255 of the input image G1. Also, in Figure 20, the request button 256, which is selected by the user when requesting a new recipe suggestion, is not selectable by the user at step S101, and is therefore shown with a dashed line. Similarly, the confirmation button 257, which is selected by the user after the provisionally determined schedule has been confirmed, is also not selectable by the user at step S101, and is therefore shown with a dashed line.

[0128] Figure 21 shows an example of an input image displayed on the output device when it is determined that there is missing data in the determination in step S105 shown in Figure 18. In step S102 shown in Figure 18, the recipe analysis unit 21 analyzes the measurement recipe. In step S103, the related data identification unit 22 determines whether there is any other related data necessary to update the ML model 32 based on the job information and the data available in the database 16. If there is necessary related data, in step S105, the data collection unit 23 displays a pop-up image requesting additional data on the user terminal 7.

[0129] As an example of a pop-up image, as shown in Figure 21, a pop-up image 261 is displayed on the output device 106, requesting the user to add other data. As shown in input image G2, the pop-up image 261 is displayed on top of input image G1 shown in Figure 20. In the example shown in Figure 21, the other data that needs to be entered is data related to two tasks: "vacuuming" and "stage vibration convergence". If the task is "vacuuming", the value of the vacuum pump model and the required time are required. The vacuum pump model is identified by a value such as "A353". The required time is the time required from the start of vacuuming the vacuum chamber 181 until the pressure in the vacuum chamber 181 reaches vacuum level Pr0. If the task is "stage vibration convergence", the value of the sample weight and the required time are required. The sample weight is a value such as "30g". The required time is the waiting time from when the stage 182 stops moving until the vibration of the stage 182 converges.

[0130] If the user knows the values ​​and durations for each of the two tasks described above, they input this data via the input device 105. After inputting this data, the user clicks the confirmation button 262. The user terminal 7 transmits the data entered by the user as other data to the scheduling device 10.

[0131] Figure 22 shows an example of an input image displayed on the output device in step S110 shown in Figure 18. The input image G3 in Figure 22 shows the result of the schedule proposed by the scheduling unit 4. The task time report display area 254 shows the duration "H_M_S" for each task A to D and the total duration "H_M_S" for the series of tasks. The schedule display area 255 shows that the start of the measurement job is scheduled for "YYYY / MM / DD HH:MM". If the user operates the input device 105 and clicks the download button 263, the task duration report can be downloaded from the scheduling device 10 to the memory 30 of the user terminal 7. The calendar 264 shows hatching patterns on the dates "MM / DD" in which the measurement job is scheduled.

[0132] In step S110 shown in Figure 18, when the input image G3 shown in Figure 22 is displayed, the user can select one of three options. The first option is for the user to click the confirmation button 257 if they have reviewed the displayed schedule and agree to it. The second option is for the user to click the request button 256 if they wish to request a new recipe suggestion. The third option is for the user to change the input information, including job information and desired schedule, if they are dissatisfied with the displayed schedule. In the case of the third option, the user can upload the changed input information by clicking the upload button 251.

[0133] <Example of surveillance image> Next, specific examples of monitoring images output to the output device 106 of the user terminal 7 by the progress monitoring unit 61 will be described with reference to Figures 23 and 24. Figures 23 and 24 show examples of GUI images indicating the progress of a measurement job.

[0134] Figure 23 shows an example of a monitoring image when a job is progressing according to schedule. Monitoring image G4 displays a progress graph 271 in which the progress of the job is represented by the length of a bar. Users can check the progress of the job by referring to the progress graph 271. The progress graph 271 shown in Figure 23 indicates that the job is half completed.

[0135] Monitoring image G4 also displays an overview of the job's progress. Specifically, it shows information on the current task, remaining tasks, completion time, performance, reason for delay, and whether recipe changes are needed. By referring to monitoring image G4, users can understand whether the currently running tasks, remaining tasks, completion time, and progress are on schedule, and whether delays are occurring. Users can compare the job progress overview with the estimated job completion time to confirm whether the job is progressing properly. In the case of monitoring image G4, the job is progressing on schedule, so "On time" is written in the performance column and "No recipe changes needed" is written in the recipe changes needed column.

[0136] Furthermore, users can view the final report by clicking the "Show Final Report" button 272 displayed on the monitoring image G4. Users may also modify the measurement recipe by referring to the displayed final report. Within the scheduled time, users can change the recipes for remaining tasks and increase or decrease the job time at any time by clicking the "Change Recipe for Remaining Tasks" recipe change button 273.

[0137] Figure 24 shows an example of a monitoring image when a job is behind schedule. In monitoring image G5, the job is behind schedule, so "Significant delay" is written in the performance column, and "Urgently needed" is written in the recipe change column. In addition, "Delayed start (user error)" is written in the reason for the delay column. Monitoring image G5 shows that the job is not being completed on schedule due to a user error.

[0138] If another user's job is scheduled after a job that is currently running, and the running job does not complete within the scheduled time, the other user's job will not be able to start on schedule. Therefore, a warning image 274 is displayed, as shown in monitoring image G5 in Figure 24. As indicated by the prompt in warning image 274, the user is asked to "modify the recipe for the remaining tasks". In response to the warning, the user can click the recipe change button 273 to modify the recipe for the remaining tasks 6-10 so that the job completes within the scheduled time. For example, the user can modify the recipe to skip tasks 7 and 8 of the remaining tasks 6-10, thereby allowing the higher-priority tasks 6, 9, and 10 to run. On the other hand, if the user ignores the warning, the corrective action unit 63 will terminate the job prematurely (see step S118 shown in Figure 19). For example, the corrective action unit 63 will terminate the job without executing two of the remaining tasks 6-10, tasks 9 and 10.

[0139] The scheduling device 10 in this embodiment is a scheduling device that estimates the time required for a measurement job to be performed by the measuring device 8, and includes a memory 30 for storing a program and a processor 20 for executing processing according to the program. The processor 20 operates as follows by executing the program: When a measurement recipe that causes the measuring device 8 to perform a measurement job is input by the user, the processor 20 analyzes the measurement recipe and creates a series of tasks based on the analysis results. The processor 20 collects information to update an estimation model that estimates the time required for the measurement job. The processor 20 updates the estimation model using the collected information. The processor 20 estimates the time required for the series of tasks based on the updated estimation model.

[0140] In this embodiment, the user's measurement recipe is analyzed, and the duration of the measurement job is estimated by an estimation model updated with collected information, based on a series of tasks converted from the measurement recipe. Therefore, even for measurement jobs where the duration is difficult to predict or for samples with large variations in measurement time, the time required for the measurement job is estimated with high accuracy. As a result, measurement jobs are executed according to the user's wishes, and the measurement schedule is set to maximize the utilization rate of the measurement device, thereby improving the utilization rate of the measurement device 8. Furthermore, if the measurement device 8 is a shared facility used by multiple users, multiple users can utilize the measurement device 8 efficiently.

[0141] The scheduling device 10 of this embodiment can achieve a high utilization rate of measurement devices 8, such as SEMs, through scheduling using advanced job time estimation technology. In this embodiment, ML is used to estimate job time. In order to use ML for job time estimation, the scheduling device 10 in this embodiment has an information analysis unit 2 that analyzes the measurement recipe and generates a task list 26, and a job time estimation unit 3 that causes an ML model 32 to estimate the duration of each task. As a result, accurate job time estimation becomes possible, and more jobs can be scheduled than before. As a result, the utilization rate of the measurement devices 8 is improved. This not only speeds up the acquisition of measurement results, but also allows for more efficient sharing of the measurement devices 8 among users. In particular, the target market segment of this embodiment includes various market segments that need to share SEMs, so SEM scheduling is necessary.

[0142] The first market segment is the research and development departments of materials companies (e.g., developing new materials for batteries). In this first market segment, the need for the scheduling device 10 of this embodiment is high. The reason is as follows: Multiple jobs (e.g., experiments and tests) are required, and the types of materials differ. In other words, since the job time differs for each material according to the measurement recipe, a simple job time estimation algorithm for scheduling is insufficient. Therefore, speed is required to obtain results, it is necessary to use the measurement device on schedule, and this embodiment is necessary to achieve complete laboratory automation. Without the scheduling device 10 of this embodiment, the provision of results would be delayed, deadlines may be exceeded, and complete automation could not be supported.

[0143] The second market segment is materials analysis centers. In materials analysis centers, the level of need for the scheduling device 10 of this embodiment is lower than in the first market segment. Materials analysis centers have a high workload and handle various types of materials, and they want the measuring device 8 to provide results quickly. Therefore, efficient use of the measuring device 8 is necessary. Without this embodiment, the measuring device 8 cannot be used efficiently, customers will have to wait a long time to get results, the measurement cycle will be slower, and profits will be lower.

[0144] The third market segment is universities. In universities, the level of need for the scheduling device 10 of this embodiment is lower than in the second market segment. Universities handle a variety of materials, but traffic is low, the utilization rate of the measuring device 8 is high, and laboratory automation is not essential. Even without the scheduling device 10 of this embodiment, the loss is not significant because traffic is low and rapid measurement is not so required.

[0145] The fourth market segment is the materials industry. In the materials industry, the level of need for the scheduling device 10 of this embodiment is lower than in the second market segment. The materials industry has high job traffic, tight deadlines, and requires high utilization of the measuring device 8 and complete laboratory automation, but it usually deals with the same materials and therefore lacks diversity. For this reason, a simple job time estimation algorithm is sufficient, and there is no significant loss even without the scheduling device 10 of this embodiment.

[0146] The embodiments described above are illustrative for explaining the present invention and are not intended to limit the scope of the invention to those embodiments only. Those skilled in the art can implement the present invention in various other forms without departing from the scope of the invention.

[0147] Furthermore, the embodiments described above include the following items. However, the items included in these embodiments are not limited to those listed below.

[0148] (Item 1) A scheduling device for estimating the time required for measurement jobs performed by a measuring device, Memory for storing programs, A processor that performs processing according to the aforementioned program, The processor executes the program, When a measurement recipe for causing the measuring device to execute the aforementioned measurement job is input by the user, the measurement recipe is analyzed, and a series of tasks are created based on the analysis results. We collect information to update the estimation model that estimates the time required for the aforementioned measurement job. The estimation model is updated using the collected information. The updated estimation model is used to input information about the series of tasks and estimate the time required for the series of tasks. Scheduling device.

[0149] According to this system, the user's measurement recipe is analyzed, and the duration of the measurement job is estimated by an estimation model updated with collected information, based on a series of tasks converted from the measurement recipe. Therefore, even for measurement jobs where the duration is difficult to predict or for samples with large variations in measurement time, the time required for the measurement job can be estimated with high accuracy. As a result, measurement jobs are executed according to the user's wishes, and the measurement schedule is set to maximize the utilization rate of measurement equipment such as SEMs, thereby improving the utilization rate of the measurement equipment. Furthermore, if the measurement equipment is shared equipment used by multiple users, multiple users can utilize the measurement equipment efficiently.

[0150] (Item 2) In the scheduling device described in item 1, The aforementioned processor, The information to be collected includes one or more data from among the following: device information relating to the measuring device, setting information for the measuring device, output information relating to the output of the measuring device, a metafile corresponding to the output information, sample information relating to the object to be measured, and expert advice regarding the object to be measured. Scheduling device.

[0151] According to this method, one or more pieces of information from among device information, configuration information, output information, metafiles, sample information, and expert advice are added to the estimation of the time required for a series of tasks. Since task-related information about the measuring device or sample is supplemented, the accuracy of the estimation can be improved.

[0152] (Item 3) In the scheduling device described in item 2, If the measuring device is a scanning electron microscope, The aforementioned processor, The device information includes the autofocus speed, stage movement speed, and stage vibration convergence time, which are reflected in the estimation model. Scheduling device.

[0153] According to this method, the scanning electron microscope (SEM) equipment information is reflected in the estimation model, so the estimation model can estimate job time for any SEM model.

[0154] (Item 4) In a scheduling device described in any one of items 1 to 3, If the number of samples to be measured in the measurement job is multiple, the series of tasks includes different tasks for each of the multiple samples. The aforementioned processor, Using the estimation model described above, the time required for each of the multiple samples is estimated. Scheduling device.

[0155] Consider a case where a single measurement job measures two samples. The two samples differ, for example, in structure or film thickness. In this case, the autofocus time for the two samples will differ, resulting in two tasks with different estimated durations within the task set. Therefore, the accuracy of the overall duration estimate for a measurement job involving tasks measuring multiple different samples is improved.

[0156] (Item 5) In a scheduling device described in any one of items 1 to 4, The aforementioned processor, Before updating the estimation model, at least one preprocessing step is performed on the collected information, including log data analysis, data refilling, data classification, and filtering. Scheduling device.

[0157] This allows for improved estimation accuracy of the updated model by performing preprocessing such as filtering before updating the estimation model.

[0158] (Item 6) In a scheduling device described in any one of items 1 to 5, The aforementioned processor, If the measurement job cannot be completed within the estimated time, the system will suggest to the user an alternative measurement recipe different from the one entered. Scheduling device.

[0159] This allows the user to be offered an alternative measurement recipe that will complete the running measurement job within the estimated time, separate from the currently running measurement recipe. By completing the running measurement job within the scheduled time, other users' measurement jobs can start on schedule, even if they are booked after the running measurement job.

[0160] (Item 7) In a scheduling device described in any one of items 1 to 6, The memory stores log data indicating the progress of the measurement job while the measurement job is being executed. The aforementioned processor, During the execution of the measurement job, the log data is read from the memory at a predetermined timing, and the estimation model is updated based on the read log data. Each time the estimation model is updated, the duration of the remaining tasks from the series of tasks that have not yet been executed is re-estimated. Scheduling device.

[0161] This allows the estimation model, which estimates task duration, to be updated with log data while the measurement job is running, and the duration of the remaining tasks is re-estimated. As a result, the accuracy of predicting the completion time of the running measurement job is improved.

[0162] (Item 8) In a scheduling device described in any one of items 1 to 7, The aforementioned processor, From an external server connected via the network, training data is obtained as the information to be collected. The estimation model is updated based on the acquired training data. Scheduling device.

[0163] This allows the estimation model to be updated using training data from an external server, improving the accuracy of the measurement job time estimate, even when new material samples that have never been measured before are used as the measurement target.

[0164] (Item 9) In a scheduling device described in any one of items 1 to 8, The aforementioned processor, In accordance with the contents of the measurement recipe, a safety margin time for errors is added to the estimated time required for the series of tasks. Scheduling device.

[0165] This allows for adding a safety margin for errors to the estimated duration of a series of tasks, corresponding to the content of the measurement recipe, thereby preventing minor operational errors from forcibly terminating the job midway.

[0166] (Item 10) In a scheduling device described in any one of items 1 to 9, The aforementioned processor, If an error occurs during the execution of the measurement job, the system will suggest to the user that the schedule of the measurement job be changed. If the measurement job is delayed due to a user error, the system will suggest to the user that the measurement recipe be changed. Scheduling device.

[0167] This means that if an error occurs in a running measurement job, the user will be prompted to change the schedule or the measurement recipe. By following the suggestion and changing the schedule or measurement recipe, the user can minimize the impact on other users' measurement jobs that are booked for the next time slot. [Explanation of Symbols]

[0168] 1 Information Acquisition Unit, 2 Information Analysis Unit, 3 Job Time Estimation Unit, 4 Scheduling Unit, 5 Reporting Unit, 6 Error Processing Unit, 7 User Terminal, 8 Measurement Device, 9 Gateway Server, 10 Scheduling Device, 16 Database, 17 User Database, 20 Processor, 21 Recipe Analysis Unit, 22 Related Data Identification Unit, 23 Data Acquisition Unit, 24 ML Model Update Unit, 25 Recipe Proposal Unit, 26 Task List, 27 Automatic Data Acquisition Unit, 28 Manual Data Acquisition Unit, 30 Memory, 31 ML Inference Unit, 32 ML Model, 41 Job Time Calculation Unit, 42 Job Time Reporting Unit, 43 Schedule Proposal Unit, 45 Reporting Unit, 51 Final Job Information Reporting Unit, 52 Final Job Time Reporting Unit, 53 Final Schedule Reporting Unit, 54 Final Reporting Unit, 61 Progress Monitoring Unit, 62 Performance Monitoring Unit, 63 Corrective Action Unit, 64 Notification Unit, 81 SEM Main Unit, 82 Vacuum pump, 83 control computer, 84 processor, 85 memory, 91 processor, 92 memory, 93 gateway agent, 100 object to be measured, 101, 102 external network, 103 private network, 105 input device, 106 output device, 107 communication circuit, 108 bus, 181 vacuum chamber, 182 stage, 183 electron gun, 184 detector, 185 camera, 186 recipe execution unit, 200 measurement system, 300 training server.

Claims

1. A scheduling device for estimating the time required for measurement jobs performed by a measuring device, Memory for storing programs, A processor that performs processing according to the aforementioned program, The processor executes the program, When a measurement recipe for causing the measuring device to execute the aforementioned measurement job is input by the user, the measurement recipe is analyzed, and a series of tasks are created based on the analysis results. We collect information to update the estimation model that estimates the time required for the aforementioned measurement job. The estimation model is updated using the collected information. The updated estimation model is used to input information about the series of tasks and estimate the time required for the series of tasks. Scheduling device.

2. In the scheduling device according to claim 1, The aforementioned processor, The information to be collected includes one or more data from among the following: device information relating to the measuring device, setting information for the measuring device, output information relating to the output of the measuring device, a metafile corresponding to the output information, sample information relating to the object to be measured, and expert advice regarding the object to be measured. Scheduling device.

3. In the scheduling device according to claim 2, If the measuring device is a scanning electron microscope, The aforementioned processor, The device information includes the autofocus speed, stage movement speed, and stage vibration convergence time, which are reflected in the estimation model. Scheduling device.

4. In the scheduling device according to claim 1, If the number of samples to be measured in the measurement job is multiple, the series of tasks includes different tasks for each of the multiple samples. The aforementioned processor, Using the estimation model described above, the time required for each of the multiple samples is estimated. Scheduling device.

5. In the scheduling device according to claim 1, The aforementioned processor, Before updating the estimation model, at least one preprocessing step is performed on the collected information, including log data analysis, data refilling, data classification, and filtering. Scheduling device.

6. In the scheduling device according to claim 1, The aforementioned processor, If the measurement job cannot be completed within the estimated time, the system will suggest to the user an alternative measurement recipe different from the one entered. Scheduling device.

7. In the scheduling device according to claim 1, The memory stores log data indicating the progress of the measurement job while the measurement job is being executed. The aforementioned processor, During the execution of the measurement job, the log data is read from the memory at a predetermined timing, and the estimation model is updated based on the read log data. Each time the estimation model is updated, the duration of the remaining tasks from the series of tasks that have not yet been executed is re-estimated. Scheduling device.

8. In the scheduling device according to claim 1, The aforementioned processor, From an external server connected via the network, training data is obtained as the information to be collected. The estimation model is updated based on the acquired training data. Scheduling device.

9. In the scheduling device according to claim 1, The aforementioned processor, In accordance with the contents of the measurement recipe, a safety margin time for errors is added to the estimated time required for the series of tasks. Scheduling device.

10. In the scheduling device according to claim 1, The aforementioned processor, If an error occurs during the execution of the measurement job, the system will suggest to the user that the schedule of the measurement job be changed. If the measurement job is delayed due to a user error, the system will suggest to the user that the measurement recipe be changed. Scheduling device.

11. A scheduling method performed by an information processing device for estimating the time of a measurement job performed by a measuring device, When a measurement recipe for causing the measuring device to execute the aforementioned measurement job is input by the user, the measurement recipe is analyzed, and a series of tasks are created based on the analysis results. We collect information to update the estimation model that estimates the time required for the aforementioned measurement job. The estimation model is updated using the collected information. The updated estimation model is used to input information about the series of tasks and estimate the time required for the series of tasks. Scheduling method.

12. A computer that estimates the time required for a measurement job performed by a measuring device, When a measurement recipe for causing the measuring device to execute the aforementioned measurement job is input by the user, the measurement recipe is analyzed, and a series of tasks are created based on the analysis results. We collect information to update the estimation model that estimates the time required for the aforementioned measurement job. The estimation model is updated using the collected information. The updated estimation model is used to input information about the series of tasks and estimate the time required for the series of tasks. A program to perform a task.