Asynchronous test method of photoetching machine based on conditional variable synchronization
By using the condition variable synchronization mechanism in the asynchronous testing method of lithography machines, the complexity and efficiency problems of the existing asynchronous testing methods in the asynchronous business process testing of lithography machines are solved, and more accurate, reliable and efficient test results are achieved.
Patent Information
- Application Number
- CN202510450401.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-11
- Publication Date
- 2025-05-09
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
When testing the asynchronous business process of lithography machines, existing asynchronous testing methods have problems such as complex synchronization mechanism dependence, inconsistent completion order, difficulty in positioning, difficulty in fine-grained testing and low testing efficiency.
The asynchronous test method based on condition variable synchronization is adopted, and the current test cases of the test thread are blocked and awakened by the state transition of the condition variable corresponding to the asynchronous child thread of the measured service, thereby achieving synchronization between the test thread and the measured service.
Improve the accuracy, reliability and testing efficiency of test results, simplify the use of synchronization mechanisms, reduce test complexity, and support fine-grained business data verification.
Smart Images

Figure CN119960272A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of lithography machines, and more specifically, to an asynchronous testing method of lithography machines based on conditional variable synchronization. Background Art
[0002] The photolithography machine is an important equipment in the semiconductor manufacturing process. Its function is to accurately transfer the circuit pattern in the mask plate (also known as the mask plate) to the silicon wafer or other substrate according to the predetermined size and position through the exposure process.
[0003] The main control system of the lithography machine is the "brain" of the lithography machine, responsible for accurately controlling various components of the lithography machine, such as the lighting system, mask stage, silicon wafer stage, mask transmission and control system, silicon wafer transmission and control system, etc., to ensure that they work together to achieve a high-precision lithography process. Users can operate various services of the lithography machine through the main control system of the lithography machine, thereby realizing services such as exposure, maintenance, and measurement. The main control system of the lithography machine controls all services, and single-thread processing alone is inefficient and slow. In a multi-threaded environment, different subsystems interact through the main control system, perform task processing concurrently, and feed back the processing results to the main control system to achieve efficient and accurate lithography.
[0004] Many actual businesses of the lithography machine main control system, such as maintenance measurement business, involve asynchronous control. For example, in the maintenance measurement business, after the client initiates a measurement request, the main thread checks the service status. When the service status is available, multiple sub-threads are used to process the business, and the main thread returns. When multiple sub-threads complete their tasks, they send business data to the client. Software developers need to use asynchronous programming when testing such business processes. Here, asynchronous programming is widely used to improve the responsiveness and efficiency of the program. However, asynchronous programming also increases the complexity of program testing, especially when it is necessary to ensure that multiple asynchronous operations are executed in the expected order. Many existing asynchronous testing methods have the following disadvantages:
[0005] (1) Reliance on complex synchronization mechanisms, such as callback functions, future objects, or observer patterns, increases the complexity of the test code and makes test cases difficult to write and maintain.
[0006] (2) The completion order of asynchronous operations may not be consistent with expectations, resulting in unreliable test results. For example, a test case may end prematurely before an asynchronous operation is completed, making it impossible to correctly verify the results of the operation.
[0007] (3) When an asynchronous operation fails, the existing synchronization mechanism may make it difficult to locate the fault, and there is a large difference between the test code and the actual execution path.
[0008] (4) When operating in multiple threads, it is difficult to test a specific thread and it is impossible to cover fine-grained business data verification.
[0009] (5) Existing methods often wait for asynchronous events by sleeping or using a fixed timeout, which has a limited scope of application and low testing efficiency.
[0010] Therefore, it is desired to provide an improved asynchronous testing method for a lithography machine. Summary of the invention
[0011] An embodiment of the present application provides an asynchronous testing method for a lithography machine based on conditional variable synchronization, which blocks and wakes up the current test case of the test thread by state transition of the conditional variable corresponding to the asynchronous sub-thread of the tested business, thereby achieving synchronization between the test thread and the tested business, thereby improving the accuracy, reliability and test efficiency of the test results.
[0012] According to one aspect of the present application, an asynchronous testing method based on conditional variable synchronization of a lithography machine is provided, comprising: determining a test thread including multiple test cases; setting multiple conditional variables, and using the multiple conditional variables to block the current test case in the test thread, wherein the number of the multiple conditional variables is the same as the number of multiple asynchronous sub-threads in the tested business corresponding to the current test case; receiving a processing completion notification of each asynchronous sub-thread in the multiple asynchronous sub-threads of the tested business; and, in response to receiving a processing completion notification of each asynchronous sub-thread in the multiple asynchronous sub-threads of the tested business, converting the state of the corresponding conditional variables in the multiple conditional variables through a state transition table, and waking up the blocked current test case in response to receiving a processing completion notification of all asynchronous sub-threads in the multiple asynchronous sub-threads.
[0013] In the above-mentioned asynchronous testing method based on conditional variable synchronization of the lithography machine, determining a test thread including multiple test cases includes: during the simulation process of the asynchronous testing method, using a predetermined testing framework to build a testing environment, and creating the test thread including multiple test cases through a test fixture under the testing framework.
[0014] In the above-mentioned asynchronous testing method based on conditional variable synchronization of the lithography machine, setting multiple conditional variables includes: during the simulation process of the asynchronous testing method, using the test function under the predetermined test framework to set the corresponding number of conditional variables according to the number of asynchronous sub-threads.
[0015] In the above-mentioned asynchronous testing method based on conditional variable synchronization of the lithography machine, before setting multiple conditional variables, it further includes: in the simulation process of the asynchronous testing method, a predetermined simulation module under a predetermined test framework is used to create an asynchronous sub-thread of the tested business, simulate the test thread to send test request data and simulate the asynchronous sub-thread to process the test request.
[0016] In the above-mentioned asynchronous testing method based on conditional variable synchronization of the lithography machine, data distribution service communication is applied between the test thread and the tested business, wherein the test thread acts as the publisher of the data distribution service communication, and the tested business acts as the subscriber of the data distribution service communication.
[0017] In the above-mentioned asynchronous testing method based on conditional variable synchronization of the lithography machine, waking up the blocked current test case includes: during the simulation process of the asynchronous testing method, using a predetermined simulation module under a predetermined test framework to simulate the service end point and wake up the blocked current test case.
[0018] In the above-mentioned asynchronous testing method based on conditional variable synchronization of the lithography machine, the tested business is the leveling, focusing, maintenance and measurement business of the lithography machine, and the multiple asynchronous sub-threads include a spot validity setting test thread, a measurement test thread, a cache switch test thread and a result calculation test thread.
[0019] In the above-mentioned asynchronous testing method based on conditional variable synchronization of the lithography machine, the tested business involves multiple subsystems of the lithography machine and one or more asynchronous sub-threads of each subsystem of the multiple subsystems.
[0020] In the above-mentioned asynchronous testing method based on conditional variable synchronization of the lithography machine, during the simulation process of the asynchronous testing method, in response to one of the multiple subsystems relying on the input or interaction of another one of the multiple subsystems, while another one of the multiple subsystems has not been fully developed or does not support interaction yet, a predetermined simulation module under a predetermined testing framework is used to simulate the return of another one of the multiple subsystems.
[0021] In the above-mentioned asynchronous testing method based on conditional variable synchronization of the lithography machine, the tested business is the optimal focus measurement business of the lithography machine, the multiple subsystems include a silicon wafer transmission and control system, a mask transmission and control system, and a leveling and focusing system, the asynchronous sub-threads of the silicon wafer transmission and control system include a silicon wafer scanning test thread and a transmission test thread, and the asynchronous sub-threads of the leveling and focusing system include a spot validity setting test thread, a measurement test thread, a cache switch test thread, and a result calculation test thread.
[0022] The asynchronous testing method based on conditional variable synchronization of the lithography machine provided in the embodiment of the present application can achieve synchronization between the test thread and the business under test by blocking and waking up the current test case of the test thread through the state transition of the conditional variable corresponding to the asynchronous sub-thread of the business under test, thereby improving the accuracy, reliability and test efficiency of the test results. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] By reading the detailed description of the preferred specific embodiments below, various other advantages and benefits of the present application will become clear to those of ordinary skill in the art. The drawings in the specification are only used for the purpose of illustrating the preferred embodiments and are not considered to be limitations of the present application. Obviously, the drawings described below are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can also be obtained based on these drawings without creative work. Moreover, the same reference numerals are used to represent the same components throughout the drawings.
[0024] Figure 1 A schematic flowchart of an asynchronous testing method based on conditional variable synchronization of a lithography machine according to an embodiment of the present application is illustrated.
[0025] Figure 2 A schematic diagram of an example of multi-sub-thread testing of a business layer using an asynchronous testing method based on conditional variable synchronization of a lithography machine according to an embodiment of the present application is illustrated.
[0026] Figure 3 A schematic diagram of an example of multi-subsystem and multi-subthread testing at the business layer using an asynchronous testing method based on conditional variable synchronization of a lithography machine according to an embodiment of the present application is illustrated. DETAILED DESCRIPTION
[0027] Below, the exemplary embodiments according to the present application will be described in detail with reference to the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments of the present application, and it should be understood that the present application is not limited to the exemplary embodiments described here.
[0028] Application Overview
[0029] As mentioned above, software developers need to write relevant test cases in the asynchronous testing business process of the lithography machine. At this time, they will encounter a problem. For example, the test framework of Google Gtest defaults to single-threaded sequential execution of test cases. Each test function, such as TEST_F, runs as an independent test function in the main thread of the same process, that is, each test case runs in the main thread. In this way, when a test function ends, the cleanup (TearDown) method of the test fixture will be automatically called after the test ends, releasing the tested business, such as simulating resources such as Mock objects, and then entering the next test function to execute other test cases. If the sub-thread of the business operation related to the test case has not been processed, the sub-thread business will be forced to terminate. If only the sleep delay strategy is used in the main thread, it is still impossible to reasonably control the sub-thread to run according to the expected logic. In the case where the sub-thread business processing is slow or the time consumption is unknown, it will still cause the business to be forced to terminate.
[0030] Based on this, the present application provides an asynchronous testing method based on conditional variable synchronization (ACVS) for a lithography machine, which can use the characteristics of conditional waiting and notification between conditional variable threads to flexibly wake up waiting threads to achieve asynchronous testing in multiple business threads, avoid using sleep methods or setting a fixed time to wait for asynchronous threads to return, reduce test efficiency and fail to adapt to dynamic load scenarios, such as burst peak tests of web servers, etc. At the same time, the asynchronous testing method based on conditional variable synchronization for the lithography machine can perform fine-grained verification for specific business threads, verify the status or data of specified business threads, ensure the timing consistency of multiple tests, and achieve more efficient and reliable asynchronous test synchronization, thereby improving the accuracy and efficiency of the test, and improving the coverage and quality of software development program code.
[0031] That is, for the above multi-thread asynchronous test difficult scenario, the asynchronous test method based on conditional variable synchronization of the lithography machine ensures that the thread life cycle of the module under test is synchronized with the test case through the conditional variable synchronization waiting mechanism, waits for the asynchronous operation to be completed, and ensures that the test ends after the thread task is completed. When the sub-thread task ends, the main thread is notified to continue execution through the conditional variable, thereby realizing the operation of the synchronization process, ensuring the test effect and the normal operation of multiple test cases. The asynchronous test method based on conditional variable synchronization of the lithography machine needs to know the sign of the completion of the asynchronous thread operation and the last processing operation of the business execution. For example, when the GMock module is used to simulate the completion of the operation, the blocking variable is awakened by the expected function to achieve the effect of asynchronous testing. In order to meet more testing requirements, the asynchronous test method based on conditional variable synchronization of the lithography machine also supports the testing of specific sub-threads of specific sub-systems in multiple sub-threads of multiple sub-systems, so as to achieve the actual data and effect analysis of specific sub-threads, thereby realizing fine-grained business testing.
[0032] Below, an asynchronous testing method based on conditional variable synchronization of a lithography machine according to an embodiment of the present application will be described in detail.
[0033] Schematic method
[0034] Figure 1 A schematic flowchart of an asynchronous testing method based on conditional variable synchronization of a lithography machine according to an embodiment of the present application is illustrated.
[0035] like Figure 1 As shown, the asynchronous testing method based on conditional variable synchronization of the lithography machine according to the embodiment of the present application includes the following steps.
[0036] Step S110, determine the test thread including multiple test cases. Here, the test thread is an indispensable part of software testing. It is a thread entity in the test framework or test code that is specifically used to simulate, control or verify multiple test cases, and is used to manage the life cycle and resources of the test cases. The test case is the basic verification unit in the software testing process. It refers to a structured execution plan designed for a specific test target, including elements such as input data, operation steps, expected results and environmental constraints. Its essence is to prove whether the tested business meets the quality attribute requirements such as function, performance and security in the preset scenario through a repeatable verification process.
[0037] For example, during the simulation process of the test, a predetermined test framework (eg, Google GTest test framework) may be used to build a test environment, and a test thread including multiple test cases may be created through its test fixture.
[0038] Step S120, setting multiple condition variables, and using the multiple condition variables to block the current test case in the test thread, wherein the number of the multiple condition variables is the same as the number of multiple asynchronous sub-threads in the tested business corresponding to the current test case. Here, the condition variable is a synchronization mechanism between threads, which is used to wait for a specific condition to occur. The condition variable allows the thread to suspend when the condition is not met, until other threads send a signal that the condition is met, thereby waking up the waiting thread.
[0039] That is, in the asynchronous test method based on conditional variable synchronization of the lithography machine according to the embodiment of the present application, the current test case and its corresponding tested business in the test thread are communicated through the conditional variable, so that the test thread is synchronized with the current tested business thread. In this way, the test thread can be set to be suspended before all asynchronous sub-threads of the tested business are fully processed, and the waiting test thread can be awakened after all asynchronous sub-threads of the tested business are fully processed.
[0040] Step S130: receiving a processing completion notification of each asynchronous sub-thread among the multiple asynchronous sub-threads of the tested service.
[0041] Specifically, in the lithography machine, the business layer is mainly responsible for processing business logic and business processes, realizing the formulation of business rules and the realization of business functions. For example, the business layer of the lithography machine master control system is responsible for processing various test requests sent by customers in the test business, and links with the lower computer equipment, accepts and processes the feedback from the lower computer, and feeds back the corresponding test data to the customer. At the same time, the business layer can realize the control of multiple subsystems of the lithography machine, realize the interaction and coordination of test data between multiple subsystems, ensure that each subsystem can work together, and maintain the stability and efficiency of the system. In this process, the business layer not only needs to process the test data, but also needs to monitor the system operation status in real time, and capture and feedback abnormal situations in time. In addition, the business layer is also responsible for scheduling and allocating the test tasks of the lithography machine, ensuring that each work module is executed in an orderly manner according to the predetermined test workflow, and avoiding task conflicts or resource waste. Finally, the business layer provides customers with clear test operation feedback and real-time test data display through interaction with the user interface, ensuring that customers can understand the operation status of the equipment in a timely manner and optimize the production process.
[0042] And, as mentioned above, in the lithography machine main control system, the implementation of business layer operations relies on multi-sub-thread asynchronous operations. Here, multi-sub-thread asynchronous operations refer to the synchronous execution of multiple asynchronous sub-threads of the tested business in the same test thread, and each asynchronous sub-thread performs different tasks or executes different parts of the same task. Multi-sub-thread asynchronous operations can improve the responsiveness and throughput of the program, that is, by decomposing the tested task into multiple asynchronous sub-threads for parallel execution, the processing time can be significantly reduced, thereby improving the overall efficiency of the program.
[0043] For example, in the leveling and focusing maintenance measurement business of a lithography machine, the realization of the measured business not only relies on the spot effectiveness setting of the leveling and focusing system, but also relies on the measurement function of the leveling and focusing system. The use of multi-sub-thread asynchronous operation can improve the operation efficiency of the business.
[0044] In one example, a predetermined simulation module in a predetermined test framework, such as a GMock module, can be used to create a simulation object of the business layer, that is, an asynchronous sub-thread of the tested business, and simulate the test thread to send test request data. In this way, when the test thread uses a conditional variable to block, the business layer can process the test request.
[0045] In addition, in an embodiment of the present application, in order to receive notifications between the test thread and the business layer, it is necessary to set a predetermined communication between the test thread and the business under test. For example, DDS (Data Distribution Service) communication can be applied between the test thread and the business layer. DDS communication is a data-centric distributed real-time communication protocol, usually located between the application layer and the operating system, using a publish / subscribe model to provide real-time, efficient, and flexible data distribution to meet various distributed real-time communication needs. DDS adopts a publish / subscribe model, and publishers (Publisher) and subscribers (Subscriber) transmit data through topics (Topic). The publisher publishes data, and the subscriber subscribes to topics of interest. There is no need for a direct connection between the two, realizing a loosely coupled communication architecture. For example, using the Mock DDS communication domain participant under a predetermined test framework, the test thread can be simulated as a publisher to send a test request, the business layer can be simulated as a subscriber to subscribe to the test request, and the test results can be fed back to the test thread as a publisher.
[0046] That is, in the asynchronous testing method based on conditional variable synchronization of the lithography machine according to the embodiment of the present application, data distribution service communication is applied between the test thread and the business under test, wherein the test thread acts as the publisher of the data distribution service communication, and the business under test acts as the subscriber of the data distribution service communication.
[0047] Step S140, in response to receiving a processing completion notification from each of the multiple asynchronous sub-threads of the tested business, converting the state of the corresponding conditional variables among the multiple conditional variables through a state transition table, and in response to receiving a processing completion notification from all of the multiple asynchronous sub-threads, waking up the blocked current test case.
[0048] Here, in the asynchronous test method based on conditional variable synchronization of the lithography machine according to the embodiment of the present application, the state transition table is used to store the asynchronous test state based on conditional variable synchronization (hereinafter referred to as ACVS state) of each asynchronous sub-thread of the tested business of the lithography machine. For example, the initial ACVS state of the leveling and focusing system is shown in the following Table 1-1. When the business of the leveling and focusing system tested by the current test case is started, the business layer starts to process the tested business of the leveling and focusing system. At this time, the test thread is blocked by the conditional variable equal to the number of asynchronous sub-threads, waiting for each asynchronous sub-thread of the tested business to complete task processing.
[0049]
Table 1-1
[0050]
[0051] When the test tasks of the spot validity setting sub-thread and the cache switch sub-thread are completed, the corresponding condition variables will be awakened, but the remaining unawakened condition variables will still block the corresponding current test case, as shown in Table 1-2. Therefore, the status of the current test case is still blocked.
[0052]
Table 1-2
[0053]
[0054] When all the test tasks corresponding to the asynchronous sub-threads of the leveling and focusing system are processed, the conditional variables corresponding to all asynchronous sub-threads are awakened. At this time, the current test case of the leveling and focusing measurement ends, and the test thread will continue to run and execute the next test case, as shown in Table 1-3. In this way, the running time of the test thread is controlled by the completion of the asynchronous sub-thread processing, so as to achieve the effect of synchronizing the test sub-threads and test threads of the tested business.
[0055]
Table 1-3
[0056]
[0057] For example, under a predetermined test framework, after the processing of the asynchronous sub-thread is completed, GMock can be used to simulate the business end point and wake up the blocked current test case.
[0058] Figure 2 The figure shows a schematic diagram of an example of a multi-sub-thread test of a service layer using an asynchronous test method based on conditional variable synchronization of a lithography machine according to an embodiment of the present application. Figure 2 As shown, the business layer includes sub-thread 1, sub-thread 2, ..., sub-thread n as asynchronous sub-threads. After all sub-threads 1-n are processed, the ACVS state transition table is modified through the MOCK DDS communication domain participants to wake up the blocked current test case and continue with the next test case.
[0059] In addition, as mentioned above, the lithography machine will also contain multiple subsystems, each of which has specific responsibilities and functions and works together to achieve the goals of the entire system. Figure 3 The figure shows a schematic diagram of an example of a multi-subsystem multi-subthread test of a service layer using an asynchronous test method based on conditional variable synchronization of a lithography machine according to an embodiment of the present application. Figure 3As shown, the business layer manages and controls different subsystems, coordinates the test data flow and operation sequence between the subsystems, and ensures smooth test operation of the entire system. Each subsystem has one or more asynchronous subthreads to perform specific test tasks and operations. Here, during the test simulation process, if subsystem A depends on the input or interaction of subsystem B, and subsystem B is not fully developed or does not support interaction yet, GMock in the predetermined test framework can also be used to simulate the return of the subsystem, thereby reducing the impact between different subsystems.
[0060] In one example, when implementing the best focus measurement service in a lithography machine, it is necessary to rely on the collaboration of multiple subsystems such as the silicon wafer transmission and control system, the mask transmission and control system, and the leveling and focusing system. At this time, the test of the best focus measurement service is a multi-system and multi-sub-thread test service.
[0061] The initial ACVS state table of the best focus measurement is shown in Tables 1-4 below, which are examples of the initial ACVS state table in the case of multiple systems and multiple sub-threads. When the test request is sent to the business layer, different subsystems process the test tasks of their respective subsystems and block the current test case. The number of conditional variables is equal to the total number of sub-threads of each subsystem, rather than each asynchronous sub-thread in a single system corresponding to a conditional variable, so that fine-grained testing of each asynchronous sub-thread of each subsystem can be supported. That is, when a sub-thread of a certain subsystem is actually linked to the lower-level device, the impact of some lower-level devices is tested. In the best focus measurement business, the test tasks of each subsystem, such as the test tasks of the leveling and focusing system and the test tasks of the silicon wafer transmission and control system, can be executed concurrently. In the initial state, each asynchronous sub-thread of each subsystem performs the test task, and the corresponding conditional variable will block the current test case. Specifically, in the case of test simulation of multiple subsystems and multiple sub-threads, the test function in the predetermined test framework can be used to set the corresponding number of conditional variables according to the actual number of sub-threads.
[0062]
Table 1-4
[0063]
[0064] When the test tasks of some sub-threads of the leveling and focusing system, the silicon wafer scanning sub-thread and the transmission sub-thread of the silicon wafer transmission and control system are completed, the corresponding conditional variables will be awakened, but the conditional variables corresponding to the remaining unexecuted sub-threads will still block the current test case, as shown in Table 1-5. That is, the status of the current test case is still blocked.
[0065]
Table 1-5
[0066]
[0067] When all the test tasks of each sub-thread of each sub-system in the best focus measurement are completed, the conditional variables corresponding to all asynchronous sub-threads corresponding to the current test case in the test thread are awakened, and the test thread will continue to run the next test case, as shown in Table 1-6. In this way, the running time of the test thread is controlled by the processing completion status of each asynchronous sub-thread of each sub-system, which can effectively achieve the synchronization between the asynchronous sub-thread of the tested business and the test thread. Therefore, the execution of the next test case in the test thread needs to depend on whether some test tasks of each asynchronous sub-thread of the tested business are completed. In this design, the test completion status of each sub-thread of each sub-system becomes the key factor in controlling when the test thread will execute next.
[0068]
Table 1-6
[0069]
[0070] In summary, the asynchronous testing method based on conditional variable synchronization of the lithography machine according to the embodiment of the present application can effectively perform modular testing on programs containing asynchronous threads. Specifically, the asynchronous testing method based on conditional variable synchronization of the lithography machine avoids the complexity existing in the traditional synchronization method by simplifying the use of the synchronization mechanism, while improving the convenience and operability of the test. Moreover, in a complex system involving multiple subsystems, the asynchronous testing method based on conditional variable synchronization of the lithography machine can not only independently test a sub-thread in a single subsystem, but also comprehensively test the data of the entire subsystem. This flexible testing method allows testers to selectively perform in-depth verification of specific subsystems or the entire system according to actual needs, significantly improving the flexibility and selectivity of the test, thereby effectively improving the stability and reliability of the system.
[0071] Therefore, the asynchronous testing method based on conditional variable synchronization of the lithography machine according to the embodiment of the present application can effectively solve the timing problems in the testing of multiple asynchronous threads, ensure that the test threads are executed in the expected order during the test process, and avoid the asynchronous sub-threads being interrupted prematurely or missing the execution opportunity during the test process, thereby ensuring the accuracy and reliability of the test results.
[0072] Moreover, the asynchronous testing method based on conditional variable synchronization of the lithography machine according to the embodiment of the present application can improve the degree of automated testing, and make the testing process more automated and intelligent by reducing manual intervention and synchronous operations, thereby effectively improving the testing efficiency and further improving the overall testing efficiency and coverage.
[0073] In addition, the asynchronous testing method based on conditional variable synchronization of the lithography machine according to the embodiment of the present application can locate and analyze the faulty asynchronous thread more quickly and accurately. That is, through synchronization control and monitoring of conditional variables, the test execution order and state changes of each asynchronous thread can be tracked, helping developers to quickly identify the specific thread where the fault occurs and its execution process, thereby more efficiently troubleshooting and solving potential problems.
[0074] The basic principles of the present application are described above in conjunction with specific embodiments. However, it should be noted that the advantages, strengths, effects, etc. mentioned in the present application are only examples and not limitations, and it cannot be considered that these advantages, strengths, effects, etc. are required by each embodiment of the present application. In addition, the specific details disclosed above are only for the purpose of illustration and ease of understanding, not for limitation, and the above details do not limit the present application to being implemented by adopting the above specific details.
[0075] The block diagrams of the devices, apparatuses, equipment, and systems involved in this application are only illustrative examples and are not intended to require or imply that they must be connected, arranged, and configured in the manner shown in the block diagram. As will be appreciated by those skilled in the art, these devices, apparatuses, equipment, and systems can be connected, arranged, and configured in any manner. Words such as "including", "comprising", "having", etc. are open words, referring to "including but not limited to", and can be used interchangeably with them. The words "or" and "and" used here refer to the words "and / or" and can be used interchangeably with them, unless the context clearly indicates otherwise. The words "such as" used here refer to the phrase "such as but not limited to", and can be used interchangeably with them.
[0076] It should also be noted that in the apparatus, device and method of the present application, each component or each step can be decomposed and / or recombined. Such decomposition and / or recombination should be regarded as equivalent solutions of the present application.
[0077] The above description of the disclosed aspects is provided to enable any person skilled in the art to make or use the present application. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects without departing from the scope of the present application. Therefore, the present application is not intended to be limited to the aspects shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.
[0078] The above description has been given for the purpose of illustration and description. In addition, this description is not intended to limit the embodiments of the present application to the forms disclosed herein. Although multiple example aspects and embodiments have been discussed above, those skilled in the art will recognize certain variations, modifications, changes, additions and sub-combinations thereof.
Claims
1. An asynchronous testing method based on conditional variable synchronization for a lithography machine, wherein: include: Identify a test thread that includes multiple test cases; Setting a plurality of conditional variables, and using the plurality of conditional variables to block the current test case in the test thread, wherein the number of the plurality of conditional variables is the same as the number of the plurality of asynchronous sub-threads in the tested business corresponding to the current test case; receiving a processing completion notification of each asynchronous sub-thread among the multiple asynchronous sub-threads of the tested service; and In response to receiving a processing completion notification from each of the multiple asynchronous sub-threads of the business under test, the state of the corresponding conditional variables among the multiple conditional variables is converted through a state transition table, and in response to receiving a processing completion notification from all of the multiple asynchronous sub-threads, the blocked current test case is awakened.
2. The asynchronous testing method based on conditional variable synchronization of a lithography machine as claimed in claim 1, wherein: Identify test threads that include multiple test cases including: During the simulation process of the asynchronous test method, a test environment is built using a predetermined test framework, and a test thread including a plurality of test cases is created through a test fixture under the test framework.
3. The asynchronous testing method based on conditional variable synchronization of a lithography machine as claimed in claim 1, wherein: Setting multiple conditional variables involves: During the simulation process of the asynchronous test method, a test function under a predetermined test framework is used to set a corresponding number of conditional variables according to the number of asynchronous sub-threads.
4. The asynchronous testing method based on conditional variable synchronization of a lithography machine as claimed in claim 1, wherein: Before setting multiple condition variables further include: In the simulation process of the asynchronous test method, a predetermined simulation module under a predetermined test framework is used to create an asynchronous sub-thread of the tested business, and the simulated test thread sends test request data and simulates the asynchronous sub-thread to process the test request.
5. The asynchronous testing method based on conditional variable synchronization of a lithography machine as claimed in claim 1, wherein: The test thread and the tested business use data distribution service communication, wherein the test thread serves as a publisher of the data distribution service communication, and the tested business serves as a subscriber of the data distribution service communication.
6. The asynchronous testing method based on conditional variable synchronization of a lithography machine as claimed in claim 1, wherein: The current test cases where wakeup is blocked include: In the simulation process of the asynchronous test method, a predetermined simulation module under a predetermined test framework is used to simulate a service end point and wake up a blocked current test case.
7. The asynchronous testing method based on conditional variable synchronization of a lithography machine as claimed in claim 1, wherein: The business under test is a leveling and focusing maintenance measurement business of a lithography machine, and the multiple asynchronous sub-threads include a spot validity setting test thread, a measurement test thread, a cache switch test thread, and a result calculation test thread.
8. The asynchronous testing method based on conditional variable synchronization of a lithography machine as claimed in claim 1, wherein: The business under test involves multiple subsystems of the lithography machine and one or more asynchronous sub-threads of each subsystem in the multiple subsystems.
9. The asynchronous testing method based on conditional variable synchronization of a lithography machine as claimed in claim 8, wherein: During the simulation process of the asynchronous testing method, in response to one of the multiple subsystems being dependent on the input or interaction of another of the multiple subsystems, while the other of the multiple subsystems has not been fully developed or does not yet support interaction, a predetermined simulation module under a predetermined testing framework is used to simulate the return of another of the multiple subsystems.
10. The asynchronous testing method based on conditional variable synchronization of a lithography machine as claimed in claim 8, wherein: The business under test is the optimal focus measurement business of the lithography machine. The multiple subsystems include a silicon wafer transmission and control system, a mask transmission and control system, and a leveling and focusing system. The asynchronous sub-threads of the silicon wafer transmission and control system include a silicon wafer scanning test thread and a transmission test thread, and the asynchronous sub-threads of the leveling and focusing system include a spot validity setting test thread, a measurement test thread, a cache switch test thread, and a result calculation test thread.
Citation Information
Patent Citations
Composite multiprocess and multithread multi-network concurrence dynamic simulation method
CN104734915A
Method and apparatus for optimizing motion image in virtual reality scene
CN105635805A
Unit test method and device, terminal equipment and storage medium
CN114153744A
Alignment control method of photoetching machine based on asynchronous state machine
CN117724308A
Asynchronous-to-synchronous method and device, equipment, storage medium and product
CN119690694A