Mask pattern processing method and device, medium and product
By writing and reading the layout data of the mask layout in the storage device of the intermediate scheduling node, the problem of computing resources and communication resources limitation in the traditional method is solved, efficient mask layout processing is achieved, and system performance is improved.
Patent Information
- Application Number
- CN202510174352.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-17
- Publication Date
- 2025-05-30
AI Technical Summary
In semiconductor manufacturing, traditional mask pattern processing methods have low system efficiency and insufficient system resources, which affect overall performance due to limited computing resources and limited communication resources.
By introducing storage devices into the intermediate scheduling nodes, the layout data is written directly to the storage device. The intermediate scheduling node reads data from the storage device, rather than obtaining it from the master node, multiple slave nodes can process tasks and data in parallel.
It improves the efficiency of mask pattern processing, reduces the system operation time, improves resource utilization, and ensures the overall performance of the system.
Smart Images

Figure CN120066788A_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of semiconductor manufacturing, and particularly relates to a method, device, medium, and product for processing mask layout. Background Art
[0002] Optical Proximity Correction (OPC) is a technology used in the field of semiconductor manufacturing to improve the quality of mask layout and ensure printing accuracy. Processing the layout through OPC is a complex process that requires a series of key steps such as layout analysis, correction design, and iterative optimization, and requires a large amount of computing resources to process the layout. Due to the limitation of computing resources, it is impossible to directly process the entire layout. Therefore, a method is proposed to divide the layout into multiple sub-layouts through a master node (Master / Parent), generate corresponding computing tasks and send them to an intermediate scheduling node (Gearman), and then multiple worker nodes receive the computing tasks from the intermediate scheduling node. At the same time, the intermediate scheduling node obtains the corresponding layout data from the master node to process the layout data of different sub-layouts respectively.
[0003] Although the traditional solution solves the problem of computing resources, due to the large amount of layout data of these sub-layouts and the limited communication resources between the intermediate scheduling node and the master node, only a single worker node is allowed to receive the computing task from the intermediate scheduling node each time, and then obtain the layout data from the master node through the intermediate scheduling node. This serial reading method is inefficient, which not only increases the running time of the system but also may occupy more system resources such as the Central Processing Unit (CPU) and memory, which may lead to insufficient system resources and thus affect the overall performance of the system. Summary of the Invention
[0004] Embodiments of this application provide a method, device, medium, and product for processing mask layout, which can ensure the overall performance of the system.
[0005] On the one hand, embodiments of this application provide a method for processing mask layout, which is applied to an intermediate scheduling node. The method includes:
[0006] Receiving a plurality of computing tasks sent by a master node; the plurality of computing tasks correspond one-to-one to a plurality of sub-layouts, and the plurality of sub-layouts are obtained based on the division of the mask layout; Figure 1
[0007] Responding to a task application instruction of at least one worker node, and determining a target computing task assigned to the at least one worker node;
[0008] Obtain the calculation data corresponding to each of the target calculation tasks from the storage device; the calculation data includes the layout data of the sub-layouts.
[0009] Send each of the target calculation tasks and their calculation data to the corresponding slave nodes, so that the slave nodes can perform optical proximity correction on the corresponding sub-layouts based on the calculation data.
[0010] On the other hand, the sub-layouts and the calculation tasks include multiple corresponding levels.
[0011] Determining the target calculation tasks assigned to the at least one slave node in response to a task application instruction from the at least one slave node includes:
[0012] Determine the assigned target calculation tasks in ascending order of levels; the calculation tasks include a first subtask and a second subtask, the level of the first subtask is higher than that of the second subtask, and the calculation data of the first subtask includes the processing result of the second subtask.
[0013] On the other hand, the task application instruction includes the task completion information of the slave node based on the target calculation task.
[0014] Determining the target calculation tasks assigned to the at least one slave node in response to a task application instruction from the at least one slave node includes:
[0015] After receiving the task completion information sent by the slave node, when there are calculation tasks to be processed, re-determine the target calculation tasks assigned to the slave node.
[0016] On the other hand, after corresponding sending the target calculation tasks and the calculation data to the at least one slave node, the method further includes:
[0017] After receiving the task completion information sent by the slave node, when there are no calculation tasks to be processed, send a sleep instruction to the slave node.
[0018] On the other hand, after corresponding sending the target calculation tasks and the calculation data to the at least one slave node, the method further includes:
[0019] Receive the processing result returned by the slave node;
[0020] Write the processing result into the storage device.
[0021] On the other hand, after receiving the processing result returned by the slave node, the method further includes:
[0022] Send task processing completion information to the master node, so that when all the computing tasks are completed, the master node can obtain each of the processing results from the storage device for summarization.
[0023] In another aspect, an embodiment of the present application provides a mask layout processing method, which is applied to a master node. The method includes:
[0024] Obtain a plurality of layout data corresponding to a plurality of sub-layouts; the plurality of sub-layouts are obtained based on the division of the mask layout;
[0025] Generate a corresponding plurality of computing tasks based on each of the sub-layouts;
[0026] Send the plurality of computing tasks to an intermediate scheduling node, and write the plurality of layout data into a storage device; so that the intermediate scheduling node can obtain the computing data corresponding to the target computing task from the storage device; and send the target computing task and its computing data to a slave node correspondingly, so that the slave node can perform optical proximity effect correction on the corresponding sub-layout; the computing data includes the layout data.
[0027] In another aspect, an embodiment of the present application provides a mask layout processing device, including: a processor and a memory storing computer program instructions;
[0028] When the processor executes the computer program instructions, the mask layout processing method described above is implemented.
[0029] In another aspect, an embodiment of the present application provides a computer-readable storage medium, on which computer program instructions are stored. When the computer program instructions are executed by a processor, the mask layout processing method described above is implemented.
[0030] In another aspect, an embodiment of the present application provides a computer program product. When the instructions in the computer program product are executed by a processor of an electronic device, the electronic device is enabled to execute the mask layout processing method described above.
[0031] A mask layout processing method provided by an embodiment of the present application. After a master node divides a mask layout that needs to be corrected for optical proximity effect into multiple sub-layouts, it writes the corresponding layout data into a storage device and sends the corresponding calculation task to an intermediate scheduling node. The intermediate scheduling node responds to the task application instructions of at least one slave node to allocate calculation tasks. Since this implementation directly writes the layout data into the storage device, the intermediate scheduling node does not need to obtain the layout data from the master node, but directly reads it from the storage device. Therefore, it is not restricted by communication resources and can enable multiple slave nodes to receive tasks and obtain layout data in parallel, thereby improving the script running efficiency, reducing the system running duration, and increasing the resource utilization rate, ensuring the overall performance of the system. BRIEF DESCRIPTION OF THE DRAWINGS
[0032] To more clearly illustrate the technical solutions of the embodiments of the present application, the following briefly introduces the drawings required to be used in the embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings.
[0033] Figure 1 It is a schematic flowchart of a mask layout processing method applied to an intermediate scheduling node provided by an embodiment of the present application;
[0034] Figure 2 It is a schematic flowchart of a mask layout processing provided by an embodiment of the present application;
[0035] Figure 3 It is a schematic flowchart of a mask layout processing method applied to a master node provided by an embodiment of the present application;
[0036] Figure 4 It shows a schematic hardware structure diagram of a mask layout processing device provided by an embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0037] The following will describe in detail the features and exemplary embodiments of various aspects of the present application. To make the purpose, technical solutions, and advantages of the present application clearer, the following further describes the present application in detail in combination with the drawings and specific embodiments. It should be understood that the specific embodiments described herein are only intended to explain the present application, rather than to limit the present application. For those skilled in the art, the present application can be implemented without some of these specific details. The following description of the embodiments is only to provide a better understanding of the present application by showing examples of the present application.
[0038] It should be noted that in this article, relational terms such as first and second are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variant thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device comprising a series of elements not only includes those elements, but also includes other elements not expressly listed, or also includes elements inherent to such process, method, article or device. Without further limitation, an element defined by the statement "comprising..." does not exclude the presence of additional identical elements in the process, method, article or device comprising such element.
[0039] The OPC process for processing mask layout is a complex process that requires a series of key steps such as layout analysis, correction design, iterative optimization, etc. It may include changing the widths of certain lines, adding auxiliary graphics, and multiple adjustments and simulations until the mask layout meets the manufacturing requirements. Therefore, a large amount of computing resources are required to process the graphics during this process. Currently, due to the continuous increase in the integration level of the layout and the increasing density of the graphics, the limited computing resources cannot be directly applied to the entire layout. Therefore, the entire layout is divided into different graphic frames and then distributed to different worker nodes for calculation.
[0040] In a modern computing environment, the execution efficiency of OPC scripts will directly affect the overall efficiency of production and manufacturing, especially when dealing with large-scale data or high-concurrency tasks. Traditional task scheduling and execution methods may face problems such as low efficiency and uneven resource utilization. Therefore, this application adopts a distributed task scheduling system based on Gearman, which can effectively manage task allocation and load balancing.
[0041] In the distributed task scheduling system based on Gearman, the layout is divided into multiple sub-layouts by the master node (Master / Parent), and the corresponding computing tasks are generated and sent to the intermediate scheduling node (Gearman). Then, multiple worker nodes receive the computing tasks from the intermediate scheduling node, and at the same time, the intermediate scheduling node obtains the layout data from the master node to process the layout data of different sub-layouts respectively.
[0042] In the above process, when the worker nodes receive tasks, the intermediate scheduling node needs to obtain the corresponding layout data from the master node. Due to the large amount of layout data and limited communication resources, each worker node can only receive computing tasks serially. This serial method is inefficient, which not only increases the system running time, but may also occupy more system resources, thus affecting the overall performance of the system.
[0043] In order to solve the problem of low efficiency of the above-mentioned serial method, the present application has thought of adopting a parallel task collection method, but it is necessary to solve the problem of communication resource limitation. At present, the development of disk storage technology has made large-scale data storage and access more efficient. Therefore, the present application has thought of adding a storage device to the distributed task scheduling system. The master node stores the layout data in the storage device, and the intermediate scheduling node can directly read the layout data from the storage device, so that the slave node is no longer limited by communication resources when collecting tasks.
[0044] Based on this, the embodiments of the present application provide a mask layout processing method, device, medium and product. First, the implementation method provides a mask layout processing method, which is applied to an intermediate scheduling node. Figure 1 A flowchart of a mask layout processing method applied to an intermediate scheduling node provided in an embodiment of the present application is provided. Figure 1 As shown, the method includes the following steps: S101 to S104.
[0045] S101: receiving multiple computing tasks sent by a master node.
[0046] As the integration of mask layouts continues to increase, the graphics are not only becoming more and more dense, but also require processing of larger amounts of data. Limited computing resources greatly increase the time it takes to complete tasks, and the overall load capacity of the system is also under great pressure. Therefore, the embodiment of the present application uses Gearman's distributed task scheduling system to process the OPC tasks of mask layouts.
[0047] The distributed task scheduling system provided by the implementation method includes a master node, a slave node and an intermediate scheduling node. The master node is used to divide the original mask layout into multiple sub-layouts, and then determine the sub-layouts. Figure 1 A corresponding computing task, that is, a computing task and a sub-board Figure 1 One-to-one correspondence. After the master node completes the division of the mask layout and generates the corresponding computing tasks, it sends each computing task to the intermediate scheduling node and stores the layout data corresponding to each sub-layout into the storage device. This embodiment does not limit the specific storage device to be used. At present, disk storage technology is developing rapidly, and it has become more efficient for large-scale data storage and access. Therefore, a high-speed disk can be used as a storage device.
[0048] The slave nodes are used to process various computing tasks, and the communication between the master node and the slave nodes needs to be realized through the intermediate scheduling node. After receiving multiple computing tasks sent by the master node, the intermediate scheduling node distributes the tasks. Usually, when there are no tasks to be processed, the slave nodes will be in a sleep state. Before processing each computing task, the intermediate scheduling node will first wake up the slave nodes.
[0049] In practical applications, for some complex mask layouts, simple segmentation cannot well complete the OPC processing. As an alternative implementation, the mask layout can be divided into sub-layouts of different levels, and the higher-level sub-layouts are composed of the lower-level sub-layouts. First, process the computational tasks at the lower level. After obtaining the processing results, use the processing results of the lower-level computational tasks as the computational data for the higher-level computational tasks to calculate, and finally obtain the processing results of the entire mask layout.
[0050] S102: In response to the task application instructions of at least one slave node, determine the target computational tasks assigned to at least one slave node.
[0051] As an alternative embodiment, after each slave node is awakened, it will simultaneously send task application instructions to the intermediate scheduling node. Therefore, the intermediate scheduling node needs to receive the task application instructions of multiple slave nodes at this time. In response to these task application instructions, determine the target computational tasks to be assigned.
[0052] In practical applications, the number of computational tasks is usually much larger than the number of slave nodes. Therefore, after a slave node finishes processing a computational task, it will apply for the next computational task again until all computational tasks are processed. At this time, it may be a single slave node that sends task application instructions to the intermediate scheduling node, or multiple slave nodes may simultaneously finish processing the previous computational task and thus simultaneously send task application instructions to the intermediate scheduling node.
[0053] S103: Obtain the computational data corresponding to each target computational task from the storage device.
[0054] As mentioned above, after the master node completes the layout division, it sends each computational task to the intermediate scheduling node and stores the layout data corresponding to each sub-layout in the storage device. When the slave node processes the computational task, it needs the corresponding computational data. Therefore, after the intermediate scheduling node determines the target computational tasks to be assigned to the slave node, it also needs to obtain the computational data corresponding to the target computational tasks from the storage device.
[0055] As an alternative way, the computational data used to process the computational task can be the layout data of the corresponding sub-layout. Because the computational tasks and the sub-layouts are in one-to-one correspondence, therefore, when processing a certain computational task, the layout data of the corresponding sub-layout can be used as the computational data. And a special case was mentioned above, that is, the mask layout is divided into sub-layouts of different levels. For higher-level computational tasks, the processing results of the corresponding lower-level computational tasks can be used as the computational data. Figure 1 For the higher-level computational tasks, the processing results of the corresponding lower-level computational tasks can be used as the computational data.
[0056] S104: Send each target computational task and its computational data to the corresponding slave node so that the slave node can perform optical proximity effect correction on the corresponding sub-layout based on the computational data.
[0057] After determining the target computing task and obtaining the corresponding computing data, the intermediate scheduling node sends the target computing task and the computing data to the slave nodes respectively; so that the slave nodes can perform optical proximity effect correction on the corresponding sub-layouts based on the computing data. After all the computing tasks are processed, the master node can perform the final summarization task based on each processing result. As an optional method, the summarization task may include steps such as data merging and result verification to ensure the accuracy and integrity of the final result.
[0058] As the last computing task is successfully processed, the corresponding slave node will notify the intermediate scheduling node that the task processing has ended. As an optional solution, at this time, the intermediate scheduling node can update the internal status record to mark which slave nodes are in an available state and which slave nodes are temporarily unavailable. This is beneficial to maintaining the overall health of the system and helps the system quickly respond to new task requirements that may arise in the future.
[0059] As a feasible method, the master node can persistently save the final summarization result to the storage device, and for the layout data and intermediate processing results, they can be cleared from the storage device after the summarization task is completed.
[0061] This embodiment provides a completion processing flow for a mask layout. Figure 2 It is a schematic flowchart of a mask layout processing provided by an embodiment of the present application. As Figure 2 shown, this flow specifically includes the following steps: S201 to S213.
[0062] S201: The master node writes the layout data to the storage device.
[0063] First, after submitting the OPC script, the master node preprocesses the mask layout, including checking and optimizing the design, etc. Then, the master node divides the mask layout into multiple sub-layouts, that is, splits the OPC task of the mask layout into several sub-tasks. Each sub-layout has its corresponding layout data, and these layout data are written into the storage device for reading when processing computing tasks subsequently.
[0064] S202: The master node submits a job task to the intermediate scheduling node.
[0065] When the user submits a job, the master node sends the task request to the intermediate scheduling node. After receiving the task request, the intermediate scheduling node selects a suitable slave node to process the task according to the type of the task and the currently available slave nodes. If there is no idle slave node currently, the task will be put into the task queue and wait for an idle slave node to process it.
[0066] S203: The intermediate scheduling node wakes up the slave nodes.
[0067] The slave nodes are usually in the sleep state and need to be woken up before performing computational tasks.
[0068] S204: The intermediate scheduling node creates job tasks for the master node.
[0069] After waking up the slave nodes, the intermediate scheduling node creates job tasks for the master node.
[0070] S205: The master node generates multiple computational tasks based on multiple sub-layouts.
[0071] S206: The master node sends the computational tasks to the intermediate scheduling node.
[0072] S207: The slave nodes apply to the intermediate scheduling node for computational tasks.
[0073] S208: The intermediate scheduling node reads the required layout data from the storage device.
[0074] After the master node prepares each computational task, it distributes the tasks to each slave node through the intermediate scheduling node. The slave nodes receive the tasks from the intermediate scheduling node and read the layout data of the corresponding sub-layouts from the disk for processing. Multiple slave nodes can process different layout regions in parallel, thereby improving the overall processing efficiency.
[0075] In addition, after each slave node completes the assigned computational task, it reports the task completion status to the intermediate scheduling node and requests new computational tasks. This process continues until the master node no longer has new tasks to distribute. In this way, the system can dynamically adjust the task allocation to ensure full utilization of resources.
[0076] S209: The intermediate scheduling node sends the target computational tasks and layout data to the slave nodes.
[0077] S210: The slave nodes return the processing results to the intermediate scheduling node.
[0078] S211: The intermediate scheduling node writes the processing results to the storage device.
[0079] S212: The intermediate scheduling node notifies the master node that all tasks have been processed.
[0080] When all computational tasks are completed, the intermediate scheduling node notifies the master node of the information that all tasks have been completed. After the master node confirms, it notifies all slave nodes to enter the sleep state and wait for new task requests.
[0081] S213: The master node reads the processing results from the storage device for summarization.
[0082] When the intermediate scheduling node confirms that all tasks are completed and all slave nodes have entered the sleep state, it will notify the master node. The master node will read all the processing results of the slave nodes from the disk and perform the final aggregation process. The aggregated results can be used for further analysis or output.
[0083] To improve the overall performance of the system, some feasible implementation solutions are provided below. For example, when dividing the mask layout, identifiers and relationship tables can be set for each sub-layout. Through their corresponding identifiers and relationship tables, their traceability in subsequent processing can be ensured.
[0084] As mentioned above, a disk can be used as a storage device. To further optimize the data access performance, a disk cache mechanism can also be introduced to optimize the data access pattern. Specifically, the operating system will allocate a region called "memory pool" in the physical memory for frequently accessed data to temporarily store the recently used disk content. When the program requests the same data again, it can directly obtain it from the memory pool without rereading the disk. This method not only improves the data reading speed but also alleviates the disk burden caused by a large number of random reads and writes.
[0085] After saving the processing results of the slave nodes to the disk, the retrieval efficiency can be improved by constructing the corresponding index and mapping relationship table to ensure that each node can quickly locate the required intermediate results. In addition, considering the sudden high load that may occur in some special cases, sufficient buffers can be preset to cope with possible extreme situations.
[0086] Since this implementation method uses a multi-threaded or multi-process method for reading operations, it greatly reduces the time loss that may originally be spent on data transmission. Especially for large layouts, the effect of this parallel reading strategy is particularly significant because as the layout size increases, the bandwidth provided by a single thread or process becomes increasingly limited. In this way, even in the face of extremely complex designs, fast data loading speed can be guaranteed.
[0087] A mask layout processing method provided by an embodiment of the present application. After the master node divides the mask layout that needs to be OC into multiple sub-layouts, it writes the corresponding layout data into the storage device and sends the corresponding calculation tasks to the intermediate scheduling node. The intermediate scheduling node responds to the task application instructions of at least one slave node and allocates the calculation tasks. Since this implementation method directly writes the layout data into the storage device, the intermediate scheduling node does not need to obtain the layout data from the master node but directly reads it from the storage device. Therefore, it is not restricted by communication resources and can realize multiple slave nodes to receive tasks and obtain layout data in parallel, thereby improving the script operation efficiency, reducing the system operation duration, and improving the resource utilization rate to ensure the overall performance of the system.
[0088] In practical applications, for some complex layout patterns, it is necessary to divide them into many smaller sub-layout patterns. However, it is difficult to directly obtain the result of the entire mask layout pattern based on the task processing results of these sub-layout patterns. Therefore, the mask layout pattern can be divided into sub-layout patterns at different levels, and the higher-level sub-layout patterns are composed of the lower-level sub-layout patterns. Correspondingly, the computing tasks are similar to the mask templates Figure 1 and include multiple corresponding levels. When performing task processing, the data of each sub-layout pattern is processed in the order from the lowest level to the highest level, gradually transitioning from the smallest unit of the sub-layout pattern to the complete mask layout pattern, thus simplifying the computing tasks of the complex layout pattern.
[0089] As an optional implementation manner, the task scheduling node, in response to the task application instructions of at least one slave node, determines the target computing tasks assigned to at least one slave node, which may include: determining the assigned target computing tasks in the order from the lowest level to the highest level.
[0090] In this implementation manner, the computing tasks include a first subtask and a second subtask. The level of the first subtask is higher than that of the second subtask, and the computing data of the first subtask includes the processing result of the second subtask. That is, after processing the computing tasks at the lower level, the processing result is used as the computing data of the higher-level computing tasks, thereby completing the OPC processing of the entire mask layout pattern.
[0091] In this implementation manner, the mask layout pattern is divided into sub-layout patterns at different levels. Also, because the sub-layout patterns correspond one-to-one with the computing tasks, different levels of sub-layout patterns correspond to multiple levels of computing tasks. When performing data processing, first process the computing tasks at the lower level. After obtaining the result, use the processing result of the lower-level computing tasks as the computing data of the higher-level computing tasks for calculation, so as to efficiently obtain the computing result of the entire mask layout pattern.
[0092] Generally, the number of computing tasks is much larger than the number of slave nodes. Therefore, after the slave node finishes processing the current computing task, it needs to continue to process the next computing task until all the computing tasks of the entire mask layout pattern are completed. As an optional implementation manner, after the slave node finishes the current target computing task, it sends a task completion message to the intermediate scheduling node. At this time, the slave node enters the idle state and can process new computing tasks.
[0093] Therefore, at this time, the task completion information can be regarded as a task application instruction. That is, in this implementation, the task application instruction includes the task completion information of the slave node based on the target computing task. Correspondingly, in response to the task application instructions of at least one slave node, the intermediate scheduling node determines the target computing tasks assigned to at least one slave node, which may include: after receiving the task completion information sent by the slave node, in the case where there are computing tasks to be processed, re-determining the target computing tasks assigned to the slave node.
[0094] In this implementation, after each slave node completes the current computing task, it will immediately obtain a new computing task from the intermediate scheduling node, achieving efficient utilization of resources and reducing the overall processing time of tasks.
[0095] The mask layout processing method provided in this application needs to rely on multiple slave nodes to process multiple computing tasks. If these slave nodes are in a working state for a long time, it will cause unnecessary resource consumption. Therefore, as an optional implementation, after the target computing tasks and computing data are correspondingly sent to at least one slave node, this method may further include: after receiving the task completion information sent by the slave node, in the case where there are no computing tasks to be processed, sending a sleep instruction to the slave node.
[0096] As mentioned above, after the slave node sends the task completion information to the intermediate scheduling node, the intermediate scheduling node will determine whether there are still computing tasks to be processed. In the case where there are computing tasks to be processed, continue to allocate new computing tasks to this slave node. And in the case where there are no computing tasks to be processed, it indicates that the work of the slave node has been completed at this time, and an instruction can be sent to make it enter the sleep state.
[0097] In this implementation, after all computing tasks are processed, the intermediate scheduling node will send a sleep instruction to each slave node, and each slave node will enter the sleep state, thereby saving resource consumption.
[0098] In practical applications, after the slave node processes the computing task, it will obtain a processing result. As mentioned above, the slave node needs to continue to receive the next computing task after processing the current computing task. These processing results stored in the slave node will occupy memory and affect the subsequent task processing. Therefore, the processing results can be sent to the intermediate scheduling node.
[0099] During the mask layout processing, the master node needs to summarize the processing results of each process to obtain the final OPC result. Therefore, the intermediate scheduling node is required to return these processing results to the master node. However, in the actual processing, each slave node may generate a large number of intermediate processing results. To avoid frequent writing of these temporary data to the master node, which may lead to performance degradation, it is possible to temporarily store them in a storage device. The storage device has faster read and write speeds and lower latency characteristics, making it very suitable for storing data that needs to be accessed quickly but does not want to occupy too much memory resources.
[0100] As a feasible implementation, after the intermediate scheduling node sends the target computing task and the corresponding computing data to at least one slave node, it can also receive the processing results returned by the slave node and write the processing results to the storage device. At the same time, the log files generated by processing the computing tasks can also be stored in the storage device.
[0101] In addition, since the layout data of the sub-layout and the processing results of each computing task are all intermediate data of OPC, after the master node completes the final summarization task, these intermediate data can be cleared in the storage device to reduce memory occupancy.
[0102] In this implementation, after the slave node finishes processing the data, it will send the processing results to the intermediate scheduling node for temporary storage in the storage device, thereby reducing the occupancy of its own memory resources.
[0103] As mentioned above, after each computing task is processed, the master node needs to summarize the processing results of each process. However, the master node does not know when each computing task is completed. Therefore, as a feasible implementation, after the intermediate scheduling node receives the processing results returned by the slave node, it can also send a task processing completion message to the master node, so that the master node can obtain the processing results from the storage device for summarization when all computing tasks are completed.
[0104] Here are some alternative implementations. The intermediate scheduling node can send a task processing completion message to the master node each time it receives the processing results of a computing task, and the master node determines whether all computing tasks are completed. In some other embodiments, the intermediate scheduling node can also send a message indicating that all tasks are completed to the master node after all computing tasks are completed.
[0105] In this implementation, after the task scheduling node completes the task processing, it will send a task processing completion message to the master node, so that the master node can uniformly read the processing results from the storage device after all computing tasks are completed, which is more efficient and can reduce the occupancy of communication resources.
[0106] The above provides a mask layout processing method applied to an intermediate scheduling node. Based on this, an embodiment of the present application further provides a mask layout processing method applied to a master node. Figure 3 It is a schematic flowchart of a mask layout processing method applied to a master node provided by an embodiment of the present application. As Figure 3 shown, the method includes the following steps:
[0107] S301: Obtain a plurality of layout data corresponding to a plurality of sub-layouts.
[0108] S302: Generate a corresponding plurality of computing tasks based on each sub-layout.
[0109] S303: Send the plurality of computing tasks to an intermediate scheduling node, and write the plurality of layout data into a storage device.
[0110] After the master node completes the above process, the intermediate scheduling node obtains the computing data corresponding to the target computing task from the storage device; and sends the target computing task and the computing data to the slave node correspondingly to perform optical proximity correction on the corresponding sub-layout; the computing data includes layout data.
[0111] The mask layout processing method applied to the master node provided by the embodiment of the present application corresponds to the mask layout processing method of the intermediate scheduling node in the above embodiment. Therefore, the two have the same embodiments and beneficial effects. Both can improve the running efficiency of the OPC script, reduce the system running time, improve the resource utilization rate, and ensure the overall performance of the system, which will not be elaborated here.
[0112] Figure 4 shows a schematic hardware structure diagram of a mask layout processing device provided by an embodiment of the present application. As Figure 4 shown, the mask layout processing device may include a processor 401 and a memory 402 storing computer program instructions.
[0113] Specifically, the above-mentioned processor 401 may include a CPU, or an application specific integrated circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of the present application.
[0114] The memory 402 may include a mass storage for data or instructions. By way of example and not limitation, the memory 402 may include a hard disk drive (HDD), a floppy disk drive, a flash memory, an optical disk, a magneto-optical disk, a magnetic tape, or a universal serial bus (USB) drive, or a combination of two or more of these. Where appropriate, the memory 402 may include removable or non-removable (or fixed) media. Where appropriate, the memory 402 may be internal or external to the integrated gateway disaster recovery device. In a particular embodiment, the memory 402 is a non-volatile solid-state memory.
[0115] The memory 402 may include a read-only memory (ROM), a random access memory (RAM), a magnetic disk storage media device, an optical storage media device, a flash memory device, an electrical, optical, or other physical / tangible memory storage device. Thus, generally, the memory includes one or more tangible (non-transitory) computer-readable storage media (e.g., memory devices) encoded with software including computer-executable instructions, and when the software is executed (e.g., by one or more processors), it is operable to perform the operations described with reference to the method according to one aspect of the present disclosure.
[0116] The processor 401 reads and executes the computer program instructions stored in the memory 402 to implement any one of the mask layout processing methods in the above embodiments.
[0117] In one example, the mask layout processing device may further include a communication interface 403 and a bus 404. The processor 401, the memory 402, and the communication interface 403 are connected via the bus 404 and complete communication with each other.
[0118] The communication interface 403 is mainly used to implement communication between the various modules, devices, units, and / or devices in the embodiments of the present application.
[0119] The bus 404 includes hardware, software, or both, and couples components of the mask layout processing device to each other. By way of example and not limitation, the bus may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a Hyper Transport (HT) interconnect, an Industry Standard Architecture (ISA) bus, an InfiniBand interconnect, a Low Pin Count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local Bus (VLB) bus, or other suitable buses, or a combination of two or more of these. Where appropriate, the bus 404 may include one or more buses. Although embodiments of the present application describe and illustrate specific buses, the present application contemplates any suitable bus or interconnect.
[0120] In addition, in combination with the mask layout processing method in the above embodiments, embodiments of the present application may be implemented by providing a computer storage medium. Computer program instructions are stored on the computer storage medium; when the computer program instructions are executed by a processor, any one of the mask layout processing methods in the above embodiments is implemented.
[0121] Embodiments of the present application also provide a computer program product, including a computer program, which implements any one of the mask layout processing methods in the above embodiments when executed by a processor.
[0122] It should be clear that the present application is not limited to the specific configurations and processes described above and illustrated in the figures. For the sake of brevity, detailed descriptions of known methods are omitted here. In the above embodiments, several specific steps are described and illustrated as examples. However, the method process of the present application is not limited to the specific steps described and illustrated, and those skilled in the art can make various changes, modifications, and additions, or change the order between steps after understanding the spirit of the present application.
[0123] The functional blocks shown in the above structural block diagram can be implemented as hardware, software, firmware, or a combination thereof. When implemented in hardware, it can be, for example, an electronic circuit, an ASIC, appropriate firmware, a plug-in, a functional card, and so on. When implemented in software, the elements of the present application are programs or code segments used to perform the required tasks. The program or code segment can be stored in a machine-readable medium or transmitted via a data signal carried in a carrier wave over a transmission medium or a communication link. "Machine-readable medium" can include any medium capable of storing or transmitting information. Examples of machine-readable media include electronic circuits, semiconductor memory devices, ROM, flash memory, erasable ROM (EROM), floppy disks, compact disc read-only memory (CD-ROM), optical discs, hard disks, fiber optic media, radio frequency (RF) links, and so on. The code segment can be downloaded via a computer network such as the Internet, an intranet, and so on.
[0124] It should also be noted that the exemplary embodiments mentioned in the present application describe some methods or systems based on a series of steps or devices. However, the present application is not limited to the order of the above steps, that is, the steps can be executed in the order mentioned in the embodiments, can be different from the order in the embodiments, or several steps can be executed simultaneously.
[0125] The above has described various aspects of the present disclosure with reference to the flowcharts and / or block diagrams of a mask layout processing method, device, medium, and product according to embodiments of the present disclosure. It should be understood that each block in the flowchart and / or block diagram, and the combination of each block in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, such that these instructions executed by the processor of the computer or other programmable data processing device enable the implementation of the functions / actions specified in one or more blocks of the flowchart and / or block diagram. Such a processor can be, but is not limited to, a general-purpose processor, a special-purpose processor, a special application processor, or a field-programmable logic circuit. It can also be understood that each block in the block diagram and / or flowchart, and the combination of the blocks in the block diagram and / or flowchart, can also be implemented by dedicated hardware that performs the specified functions or actions, or can be implemented by a combination of dedicated hardware and computer instructions.
[0126] The above content is only a specific implementation manner of the present application. Those skilled in the art can clearly understand that for the convenience and brevity of description, the specific working processes of the systems, modules, and units described above can refer to the corresponding processes in the foregoing method embodiments, and will not be elaborated herein. It should be understood that the protection scope of the present application is not limited thereto. Any person skilled in the art within the technical scope disclosed by the present application can easily think of various equivalent modifications or substitutions, and these modifications or substitutions should be covered within the protection scope of the present application.
Claims
1. A mask layout processing method, characterized in that: Applied to an intermediate scheduling node, the method comprises: Receiving a plurality of computing tasks sent by a master node; the plurality of computing tasks correspond one-to-one to a plurality of sub-layouts, and the plurality of sub-layouts are obtained based on the division of the mask layout; In response to a task application instruction of at least one slave node, determining a target computing task to be assigned to the at least one slave node; Acquire computing data corresponding to each of the target computing tasks from a storage device; the computing data includes layout data of the sub-layout; Each of the target computing tasks and the computing data thereof are sent to the corresponding slave node, so that the slave node performs optical proximity effect correction on the corresponding sub-layout based on the computing data.
2. The mask layout processing method according to claim 1, characterized in that: The sub-layout and the computing task include a plurality of levels corresponding to each other; The step of determining, in response to a task application instruction of at least one slave node, a target computing task to be allocated to the at least one slave node comprises: Determine the assigned target computing tasks in order from low to high levels; The computing task includes a first subtask and a second subtask, the first subtask is at a higher level than the second subtask, and the computing data of the first subtask includes a processing result of the second subtask.
3. The mask layout processing method according to claim 1, characterized in that: The task application instruction includes task completion information of the slave node based on the target computing task; The step of determining, in response to a task application instruction of at least one slave node, a target computing task to be allocated to the at least one slave node comprises: After receiving the task completion information sent by the slave node, if there is the computing task to be processed, re-determine the target computing task assigned to the slave node.
4. The mask layout processing method according to claim 3, characterized in that: After sending the target computing task and the computing data to the at least one slave node, the method further includes: After receiving the task completion information sent by the slave node, in the case where there is no computing task to be processed, a sleep instruction is sent to the slave node.
5. The mask layout processing method according to any one of claims 1 to 4, characterized in that: After sending the target computing task and the computing data to the at least one slave node, the method further includes: Receiving the processing result returned by the slave node; The processing result is written into the storage device.
6. The mask layout processing method according to claim 5, characterized in that: After receiving the processing result returned from the slave node, the method further includes: Send task processing completion information to the master node, so that the master node can obtain the processing results from the storage device for aggregation when all the computing tasks are completed.
7. A mask layout processing method, characterized in that: Applied to the master node, the method comprises: Acquire a plurality of layout data corresponding to a plurality of sub-layouts; the plurality of sub-layouts are obtained based on the division of the mask layout; Generate a corresponding plurality of computing tasks based on each of the sub-layouts; The multiple computing tasks are sent to an intermediate scheduling node, and the multiple layout data are written into a storage device; so that the intermediate scheduling node can obtain the computing data corresponding to the target computing task from the storage device; and the target computing task and its computing data are sent to the slave node accordingly, so that the slave node can perform optical proximity effect correction on the corresponding sub-layout; the computing data includes the layout data.
8. A mask layout processing device, characterized in that: include: a processor and a memory storing computer program instructions; When the processor executes the computer program instructions, the mask layout processing method according to any one of claims 1 to 7 is implemented.
9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer program instructions, and when the computer program instructions are executed by a processor, the mask layout processing method according to any one of claims 1 to 7 is implemented.
10. A computer program product, characterized in that When the instructions in the computer program product are executed by a processor of an electronic device, the electronic device executes the mask layout processing method as described in any one of claims 1 to 7.
Citation Information
Cited By
Distributed layout information reading method and system, storage medium and electronic equipment
CN121257459A
Distributed layout information reading method and system, storage medium and electronic device
CN121257459B