Isogram generation method and system, terminal equipment and storage medium
The isometric graph is generated by parallel computing technology to generate the thickness change trend of wafer surface film layer, which solves the problem of inefficiency in the existing technology and realizes efficient and accurate isometric graph display.
Patent Information
- Application Number
- CN202410834146.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-06-24
- Publication Date
- 2025-07-29
AI Technical Summary
The existing isometric graph generation methods are relatively low in efficiency, especially in semiconductor detection, and the display efficiency of the change trend of the wafer surface film layer thickness is insufficient.
Parallel computing technology is used to obtain measurement point data through the measurement module, interpolate and render grid points using parallel computing models or frameworks to generate equivalent graphs.
It significantly improves the efficiency and quality of isometric graph generation, shortens the time interval from data processing to visual results, and improves generation speed and accuracy.
Smart Images

Figure CN120388099A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of semiconductor detection technology, and particularly relates to a method, a system, a terminal device, and a storage medium for generating an isogram. Background Art
[0002] Isograms play an important role in the field of scientific computing visualization. They can intuitively display the distribution and change trends of physical quantities such as height, temperature, thickness, and pressure, thereby facilitating in-depth comprehensive analysis of these complex data.
[0003] In the semiconductor field, various film layers can be formed on the surface of a wafer. The thickness of the film layer is a key measurement point data for wafer detection. At this time, the application of isograms is particularly crucial. For example, it can clearly show the change trend of the thickness of the oxide film on the wafer, providing a basis for engineers to optimize the manufacturing process.
[0004] In traditional calculation methods, the generation of isograms usually requires numerical calculations for each point in the entire physical field one by one, and then the isogram is drawn based on the calculation results. This process has low calculation efficiency. Summary of the Invention
[0005] The main technical problem to be solved by the present invention is that the existing method for generating isograms has low efficiency.
[0006] According to a first aspect, in one embodiment, a method for generating an isogram is provided, including:
[0007] A data collection step: measuring multiple preset measurement points of a workpiece to be measured to obtain measurement point data corresponding to each measurement point in a preset reference coordinate system;
[0008] An initialization step: initializing the size and threshold interval of the isogram;
[0009] A grid division step: dividing the two-dimensional plane of the preset reference coordinate system into a plurality of uniform grid cells to form a plurality of grid points, and recording the grid point data of all grid points. The grid point data includes grid point coordinates;
[0010] An interpolation step: performing interpolation on each grid point according to all measurement point data and using a parallel computing model or framework to obtain a calculated value corresponding to each grid point. The grid point data includes the calculated value;
[0011] A matrix creation step: creating an isogram matrix according to the size of the isogram, and storing the calculated value in each grid point data into the isogram matrix;
[0012] In the rendering step, a parallel computing model or framework is used to compare each calculated value in the contour map matrix with the threshold interval, determine the color interval corresponding to each calculated value, and render it into the color corresponding to the color interval to generate the corresponding contour map.
[0013] According to the second aspect, an embodiment provides a contour map generation system, comprising:
[0014] The measuring module is configured to measure a plurality of preset measuring points of the workpiece to be measured and obtain corresponding measuring point data of each measuring point in a preset reference coordinate system;
[0015] The processing module is configured to:
[0016] Initialize the size and threshold interval of the contour map;
[0017] Meshing a two-dimensional plane of a preset reference coordinate system into a plurality of uniform grid cells, and recording grid point data of all grid points of the grid cells, the grid point data including grid point coordinates;
[0018] Based on all the measurement point data, each grid point is interpolated using a parallel computing model or framework to obtain a calculated value corresponding to each grid point, where the grid point data includes the calculated value;
[0019] Create an isomap matrix according to the size of the isomap, and store the calculated value of each grid point data into the isomap matrix;
[0020] According to the parallel computing model or framework, each calculated value in the isomap matrix is compared with the threshold interval, the color interval where each calculated value is located is determined, and the calculated value is rendered in the color corresponding to the color interval to generate the corresponding isomap.
[0021] According to the third aspect, an embodiment provides a terminal device, including:
[0022] Memory, used to store programs;
[0023] The processor is configured to implement the method described in the first aspect by executing a program stored in a memory, and the processor includes a central processing unit and an image processor.
[0024] According to a fourth aspect, an embodiment provides a computer-readable storage medium, on which a program is stored. The program can be executed by a processor to implement the method described in the first aspect.
[0025] The isogram generation method, system, terminal device, and storage medium according to the above embodiments measure multiple measurement points, perform grid division on the physical field, and use parallel computing to calculate the calculated values of each grid point based on the measured values of the measurement points, thereby obtaining the values corresponding to each pixel point of the corresponding isogram matrix. Then, using parallel computing, determine the color interval where each pixel point is located and perform rendering to finally generate an isogram. By adopting parallel computing processing in both interpolation calculation and pixel point rendering, this application can improve the efficiency of isogram generation. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Figure 1 It is a schematic structural diagram of an isogram generation system provided by an embodiment of the present application;
[0027] Figure 2 It is a schematic flowchart of an isogram generation method provided by an embodiment of the present application;
[0028] Figure 3 It is a schematic diagram of a workpiece to be measured and measurement points provided by an embodiment of the present application;
[0029] Figure 4 It is a schematic diagram of an isogram matrix provided by an embodiment of the present application;
[0030] Figure 5 It is a schematic diagram of grid division provided by an embodiment of the present application;
[0031] Figure 6 It is a schematic diagram of the rendered isogram provided by an embodiment of the present application.
[0032] Reference numerals: 10 - measurement module 10; 20 - processing module; 21 - main processing module; 22 - parallel computing module. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0033] The present invention will be further described in detail below in conjunction with the drawings through specific embodiments. Similar elements in different embodiments are labeled with related similar reference numerals. In the following embodiments, many detailed descriptions are provided to enable a better understanding of the present application. However, those skilled in the art can easily recognize that some of these features can be omitted in different situations, or can be replaced by other elements, materials, or methods. In some cases, some operations related to the present application are not shown or described in the specification to avoid overshadowing the core part of the present application. For those skilled in the art, it is not necessary to describe these related operations in detail, and they can fully understand the related operations based on the description in the specification and general technical knowledge in the art.
[0034] In addition, the features, operations, or characteristics described in the specification can be combined in any suitable manner to form various embodiments. Meanwhile, the steps or actions in the method description can also be reordered or adjusted in a manner obvious to those skilled in the art. Therefore, the various sequences in the specification and the drawings are only for clearly describing a certain embodiment and do not mean a necessary sequence, unless it is stated otherwise that a certain sequence must be followed.
[0035] The serial numbers assigned to the components herein, such as "first", "second", etc., are only used to distinguish the objects described and do not have any sequential or technical meaning. And as used in this application, "connection" and "coupling", unless otherwise specified, both include direct and indirect connection (coupling).
[0036] The generation of the isometric map depends on the precise construction of a regular grid. This process involves subdividing the entire physical field into numerous grid cells, performing numerical calculations independently for each cell, and then rendering these grids according to a preset threshold to finally generate the isometric map.
[0037] In traditional calculation methods, the generation of the isometric map usually requires performing numerical calculations one by one on the entire physical field and then drawing the isometric map based on the calculation results. This process has low computational efficiency. Since the calculation of each grid cell in the physical field is independent and has no dependencies, calculating one by one has low efficiency.
[0038] In the semiconductor field, after the wafer is processed (such as CMP, coating, etching, etc.), the thickness of the surface changes. Therefore, the isometric map can clearly show the change trend of the surface thickness. Of course, the isometric map can also be applied to other technical fields, such as the surface flatness of flat glass and display panels. This application does not limit the specific form of the test piece. This application takes the wafer as an example for illustration, and does not limit the test piece to only being a wafer.
[0039] In the embodiments of this application, the provided method for generating an isometric map can utilize parallel processing technology to achieve the rapid generation of the isometric map, thereby significantly improving the efficiency and quality of scientific computing visualization.
[0040] As the applicability of GPUs in parallel computing for large-scale data processing becomes increasingly widespread, and with the iterative upgrade of GPU hardware, CUDA (Compute Unified Device Architecture), as a parallel computing platform and programming model, has an increasing number of application scenarios. This application uses CUDA for parallel processing. Compared with other parallel computing models or algorithms, it can further improve the efficiency of generating the isometric map, which greatly improves work efficiency and the real-time performance of visualization.
[0041] Such as Figure 1As shown in the figure, an isometric map generation system provided by an embodiment of the present application may include: a measurement module 10 and a processing module 20.
[0042] The measurement module 10 is configured to measure multiple preset measurement points of a workpiece to be measured, and obtain measurement point data corresponding to each measurement point in a preset reference coordinate system. For example, the measurement point data may include measurement point coordinates and measurement values, and the measurement value is the thickness of the corresponding measurement point.
[0043] For example, when measuring the film thickness on a wafer, the measurement module 10 may include an optical measurement device and a motion mechanism. The motion mechanism drives the workpiece to be measured to perform a planar motion relative to the optical measurement device. The preset reference coordinate system of the present application may be the real coordinate system of the motion mechanism. The optical measurement device may be an interferometer, a diffractometer, a spectrometer, or other measurement devices as needed. At this time, the measurement point coordinates in the measurement point data are obtained through the motion mechanism, and the measurement values are obtained through the optical measurement device.
[0044] Another example is that when measuring the surface thickness of a wafer, the measurement module 10 may include an optical measurement device or a mechanical thickness measurement device, and a motion mechanism. The mechanical thickness measurement device is, for example, a surface profiler or an atomic force microscope, and the optical measurement device is, for example, an interferometer or a laser scanner or other available devices. At this time, the measurement point coordinates in the measurement point data are obtained through the motion mechanism, and the measurement values are obtained through the optical measurement device or the mechanical thickness measurement device.
[0045] The embodiments of the present application do not limit the specific implementation manner of the measurement module 10, and the above is for illustrative purposes.
[0046] The processing module 20 is configured to: initialize the size and threshold interval of the isometric map; perform grid division on the two-dimensional plane of the preset reference coordinate system, divide it into multiple uniform grid cells, and record the grid point data of all grid points of the grid cells. The grid point data may include grid point coordinates; according to all measurement point data, and using a parallel computing model or framework, perform interpolation on each grid point to obtain a calculated value corresponding to each grid point. The grid point data may include the calculated value; create an isometric map matrix according to the size of the isometric map, and store the calculated value in each grid point data into the isometric map matrix; according to the parallel computing model or framework, compare each calculated value in the isometric map matrix with the threshold interval, determine the color interval where each calculated value is located, and render it as the color corresponding to the color interval to generate the corresponding isometric map.
[0047] In some embodiments, the processing module 20 may include a main processing module 21 and a parallel computing module 22; wherein, the main processing module 21 may include a central processing unit (CPU), and the parallel computing module 22 may include a graphics processing unit (GPU).
[0048] The main processing module 21 is configured to: initialize the size of the isogram and the threshold interval; divide the two-dimensional plane of the preset reference coordinate system into a grid, divide it into multiple uniform grid cells, and record the grid point data of all grid points of the grid cells. The grid point data may include grid point coordinates; create an isogram matrix according to the size of the isogram, and store the calculated value in each grid point data into the isogram matrix.
[0049] The parallel computing module 22 is configured to: according to all the measurement point data, and use a parallel computing model or framework to interpolate each grid point to obtain the calculated value corresponding to each grid point. The grid point data may include the calculated value; according to the parallel computing model or framework, compare each calculated value in the isogram matrix with the threshold interval, determine the color interval where each calculated value is located, and render it as the color corresponding to the color interval to generate the corresponding isogram.
[0050] For example, if there are 3 million measurement points for the device under test, the values of 1000 set grid points need to be calculated. Each grid point needs to consider the influence of the measured values of the measurement points. Therefore, 1000 loops are required, and 3 million data are processed in each loop. If the parallelism of the parallel computing module 22 can meet the requirement of simultaneously parallel computing 1000 tasks, then the calculated values corresponding to 1000 grid points can be calculated simultaneously, and the rendering of 1000 pixel points can be completed simultaneously.
[0051] Through parallel optimization in this application: interpolating and rendering 1000 points simultaneously, although the overall amount of computation remains unchanged, only one loop needs to be executed because the calculations of 1000 points are carried out simultaneously.
[0052] In this application, using the parallel computing module 22 with a CPU for interpolation and isogram rendering can improve the generation efficiency of the isogram.
[0053] Another example, in this application, the parallel computing module 22 can use the CUDA model for interpolation calculation and rendering. The GPU can be an NVIDIA GPU. NVIDIA's GPUs have CUDA cores specifically designed for parallel computing, and these cores have optimized hardware and software support for executing CUDA programs.
[0054] Next, the specific process of the isogram generation method for the isogram generation system will be elaborated. As Figure 2 shown, the isogram generation method may include the following steps:
[0055] Data collection step: The main processing module 21 controls the measurement module 10 to measure multiple preset measurement points of the device under test, and obtains the measurement point data corresponding to each measurement point in the preset reference coordinate system. The measurement point data may include the measurement point coordinates and the measured value.
[0056] In some embodiments, the device under test may be a wafer, on which a film layer or a surface to be measured is formed, and the measured value is the thickness at the corresponding measurement point.
[0057] Through actual environment measurement, three-dimensional data in physical space is collected. This data includes the abscissa, ordinate of the measurement point, and the corresponding measured value.
[0058] For example, as Figure 1 shown, the device under test is measured by the measurement module 10, and each measurement point corresponds to measurement point data. The measurement point coordinates can be represented in the form of planar coordinates; the preset reference coordinate system can directly adopt the real coordinate system of the motion mechanism; or a coordinate system can be established based on the plane where the bottom or top surface of the wafer is located, and the corresponding coordinates can be obtained by conversion according to the structural relationship between the wafer and the motion mechanism and the output data of the motion mechanism.
[0059] Another example is that if the device under test is circular, the device under test is driven to rotate to achieve relative motion with respect to the measurement module. At this time, the output can be in the form of an angle and a measurement radius, and the coordinates in the preset coordinate system can be calculated through conversion.
[0060] In the generation of the contour map, since the pixel points are represented in the form of abscissa and ordinate, regardless of the original coordinate form of the measurement coordinates, they are finally represented in the form of planar coordinates through conversion for subsequent interpolation calculation and other processing.
[0061] Initialization step: The main processing module 21 initializes the size and threshold interval of the contour map.
[0062] As Figure 4 shown, initializing the contour map is to determine the size of the contour map, such as the number of rows and columns in the image matrix, and each pixel point needs to be rendered; the threshold interval includes multiple color intervals. According to the specific situation of the device under test, the distribution range of the measured value can be determined, the distribution range can be divided into intervals according to requirements, and the color corresponding to each interval is set so that different colors are used to distinguish different threshold intervals in the generated contour map.
[0063] Mesh division step: The main processing module 21 divides the two-dimensional plane of the preset reference coordinate system into multiple uniform mesh units, forming multiple mesh points, and records the mesh point data of all mesh points. The mesh point data can include mesh point coordinates.
[0064] For example, as Figure 5 shown, the physical field is divided into multiple uniform unit meshes to ensure that the abscissa and ordinate of each mesh point are accurately recorded.
[0065] The purpose of mesh generation is to discretize the continuous measurement area for further data processing and analysis. In the generation of contour maps, mesh generation is an important preprocessing step that can provide a basis for subsequent operations such as interpolation and contour line drawing. Existing mesh generation methods include uniform mesh generation, adaptive mesh generation, and mesh generation with specific shapes.
[0066] In this application, in order to further reduce the computational amount, the mesh generation is performed according to the size (number of rows and columns) of the contour map. In some embodiments, the mesh generation step may include:
[0067] Step 100: Determine the mesh size of the mesh generation according to the size of the contour map. For example, determine the size conversion relationship between the contour map and the preset reference coordinate system according to the actual size of the device under test and the corresponding pixel size in the contour map.
[0068] For example, if the device under test is a wafer with a diameter of M mm and the pixel size corresponding to the diameter in the contour map is N pixels, then it can be determined that the size of the width of a mesh during mesh generation is M / N mm.
[0069] Step 101: Perform mesh generation on the two-dimensional plane of the preset reference coordinate system according to the mesh size, dividing it into multiple uniform mesh units to form multiple mesh points; among them, one pixel of the contour map corresponds to one mesh point.
[0070] The number of mesh points obtained by the division can be more than the number of pixel points in the contour map, but it is necessary to ensure that each pixel point can correspond to one mesh point in the mesh.
[0071] Step 102: Determine the correspondence between the mesh point coordinates of the mesh points and the pixel coordinates of the contour map.
[0072] For example, the mesh point coordinates (P, Q) of the mesh points correspond to the coordinates (p, q) of the pixel points. The contour map rendering includes multiple steps such as measurement point data acquisition, mesh generation, interpolation calculation of mesh points, pixel point interpolation (if the mesh points do not correspond to the contour map pixel points), and matrix rendering. This application is the mesh point corresponding to the contour map division, which can reduce an interpolation calculation for calculating pixel points based on mesh points once.
[0073] In some embodiments, before the interpolation step, it may further include:
[0074] The first data transmission step: The main processing module 21 transmits all the measurement point data and all the mesh point data to the parallel computing module 22; the interpolation step is executed by the parallel computing module 22. In some embodiments, the parallel computing module 22 may include an image processor, and the image processor is used to execute the interpolation step.
[0075] In the interpolation step, the parallel computing module 22 performs interpolation on each grid point according to all the measurement point data and using a parallel computing model or framework to obtain the calculated value corresponding to each grid point. The grid point data may include the calculated value.
[0076] Since the value of each grid point is only related to the measurement point data and has nothing to do with the data of other grid points, parallel computing can be adopted to significantly improve the computing efficiency.
[0077] In some embodiments, performing interpolation on each grid point using a parallel computing model or framework may include:
[0078] Step 210: Interpolate each of the grid points using a CUDA, OpenCL, OpenMP, TensorFlow, or PyTorch model or framework. The model or framework interpolates each grid point.
[0079] Among them, CUDA, OpenCL, and OpenMP are parallelization tools. Among them, CUDA and OpenCL belong to GPU parallel acceleration, and OpenMP belongs to CPU parallel acceleration. In addition, TensorFlow and Pytorch belong to the category of deep learning training models. They accelerate the training and inference of deep learning models. However, these two are high-level languages, and their underlying layer is CUDA. Generally, these two schemes are not used for direct interpolation in actual production, but can also be applied to network point interpolation.
[0080] In the embodiments of the present application, especially CUDA parallel acceleration is adopted, and with the cooperation of GPU, faster isogram generation can be realized. Through the parallel computing and rendering process, not only the time interval from data processing to visualization results is shortened, but also the generation speed and accuracy of the isogram are improved. As shown in the following table, when generating an isogram with a size of 2200x2200, the efficiency of generating an isogram using CUDA is 28.25 times that of generating an isogram using OpenMP parallel computing.
[0081]
[0082]
[0083] In some embodiments, performing interpolation on each grid point may include:
[0084] Step 211: Calculate the calculated value corresponding to each grid point according to all the measurement point data using the inverse distance weighting formula, bilinear interpolation algorithm, cubic spline interpolation algorithm, or bicubic interpolation algorithm.
[0085] Among them, the inverse distance weighting formula / algorithm is a spatial interpolation technique used to estimate the value of an unknown point based on the values of surrounding known data points and the distances between them. The basic idea of this algorithm is that the closer a known point is to the target point, the greater the weight of its value on the target point.
[0086] In wafer inspection, since the number of measurement points collected is large, using the inverse distance weighting formula can obtain more accurate interpolation results compared to other interpolation algorithms. More measurement points mean more reference values around the target point, making the interpolation more accurate.
[0087] The bilinear interpolation algorithm is mainly used for image scaling in image processing. It calculates the value of a new pixel by performing linear interpolation between four nearest neighbor pixels. This method is simple and fast, and is suitable for some simple image processing tasks. The bilinear interpolation algorithm is easy to implement and has a fast calculation speed, making it suitable for application scenarios with high speed requirements.
[0088] The cubic spline interpolation algorithm uses cubic polynomials to approximate the curve between data points. It can fit the data more accurately and has good smoothness near the interpolation points. The cubic spline interpolation algorithm can reduce the ringing effect caused by interpolation and is suitable for scenarios with high requirements for interpolation accuracy and smoothness, such as signal processing and numerical calculations.
[0089] The bicubic interpolation algorithm is a higher-order interpolation method that lies between bilinear interpolation and cubic spline interpolation. Through bicubic interpolation, the details of the image can be better preserved. The bicubic interpolation algorithm is commonly used in image processing for image enlargement and reduction, and can better preserve the details and smoothness of the image. Compared with bilinear interpolation, it has a better visual effect.
[0090] According to the specific form of the device under test, the acquisition density and quantity of measurement points, and the accuracy requirements of the contour map, an appropriate interpolation algorithm can be selected.
[0091] Steps for creating a matrix: Create a contour map matrix according to the size of the contour map, and store the calculated values in each grid point data into the contour map matrix.
[0092] In some embodiments, storing the calculated values in each grid point data into the contour map matrix may include:
[0093] Step 300: According to the correspondence between the grid point coordinates of the grid points and the pixel coordinates of the contour map, store the calculated values in each grid point data into the contour map matrix.
[0094] According to the correspondence between the origin of the grid point coordinates and the zero point of the pixel coordinates of the contour map, convert the grid point coordinates into pixel coordinates, and store the calculated interpolation into the contour map matrix.
[0095] In some embodiments, before the rendering step, the following steps may further be included:
[0096] A second data transmission step of sending the isogram matrix to the parallel computing module 22; the rendering step is executed by the parallel computing module 22. In some embodiments, the parallel computing module 22 may include an image processor, and the image processor is used to execute the rendering step.
[0097] The rendering step, as Figure 6 shown, the parallel computing module 22 uses a parallel computing model or framework to compare each calculated value in the isogram matrix with a threshold interval, determine the color interval corresponding to each calculated value, and render it as the color corresponding to the color interval to generate a corresponding isogram.
[0098] Send the isogram matrix from the main processing module 21 to the parallel computing module 22, and perform a threshold judgment on each point. If the value of a grid point falls within a certain threshold interval, it is rendered as the color of that interval. Since the threshold judgment of each point is only related to its value and the set threshold interval, parallel computing is adopted, which greatly improves the rendering speed.
[0099] In some embodiments, in the rendering step, a CUDA, OpenCL, OpenMP, TensorFlow, or PyTorch model or framework is used to compare each calculated value in the isogram matrix with a threshold interval, determine the color interval corresponding to each calculated value, and render it as the color corresponding to the color interval. In the embodiments of the present application, both the rendering step and the interpolation step use a CUDA model for calculation and rendering. Using the same model can reduce model development, and the CUDA model has a faster calculation speed.
[0100] In some embodiments, the size requirement of the isogram changes, but the number of measurement points remains unchanged. At this time, the grid division can remain unchanged, as long as the number of grid points is greater than the number of isogram pixels.
[0101] At this time, the grid division step may include:
[0102] Step 103: Determine the grid size of the grid division.
[0103] Step 104: Divide the two-dimensional plane of the preset reference coordinate system according to the grid size into a plurality of uniform grid cells to form a plurality of grid points; wherein, one pixel of the isogram corresponds to a plurality of grid points.
[0104] Step 105: Determine the correspondence between the grid point coordinates of the grid points and the pixel coordinates of the isogram according to the size of the isogram and the grid size of the grid division.
[0105] Different from Steps 100 - 102, in Step 102, one pixel point corresponds to one grid point. In Steps 103 - 105, since the grid size of the grid division is determined first and the size of the isogram is uncertain, the corresponding relationship needs to be determined according to the size relationship between the two.
[0106] Among them, after obtaining the calculated value corresponding to each grid point, the interpolation step may further include:
[0107] Step 201: According to the calculated values of all grid points and the corresponding relationship between the grid point coordinates of the grid points and the pixel coordinates of the isogram, use a parallel computing model or framework to perform interpolation on each pixel of the isogram to obtain the calculated value corresponding to each pixel.
[0108] Among them, storing the calculated value in each grid point data into the isogram matrix may include:
[0109] Step 301: Store the calculated value corresponding to each pixel into the isogram matrix.
[0110] That is to say, after completing the interpolation calculation of the grid points, due to the change in the size of the isogram and the change in the number of pixel points, at this time, interpolation calculation can be performed on the pixel points according to the grid points. The specific interpolation calculation can refer to the description in the above embodiments.
[0111] Specifically, whether to determine the size of the grid division according to the isogram (Steps 100 - 102), or to perform interpolation calculation on the pixel points using the grid points to obtain the calculated value of the pixel points (Steps 103 - 105) can be determined according to the actual application. For these two methods, the main idea is to use the parallel computing method to calculate the interpolation. The difference lies in whether it is necessary to perform another interpolation on the pixel points using the grid points. Even if another interpolation calculation is performed, due to parallel computing, in essence, only one more calculation cycle is added, and the generation efficiency of the isogram is still greatly improved.
[0112] In summary, this application uses parallel computing technology, especially CUDA technology, to perform independent and parallel numerical calculations on each grid point in the physical field, and performs parallel rendering processing on these grid points according to a preset threshold. Through the above parallel computing and rendering processes, a high-quality isogram is quickly generated.
[0113] For the method provided in this embodiment, the specific process of each step can be executed by the corresponding module in the system / device, that is, the specific process of each step can be used as the function description of each module in the foregoing system embodiment, and will not be elaborated here.
[0114] This application embodiment also provides a terminal device, which may include: a memory and a processor
[0115] The memory is used to store programs. The processor is used to implement the equivalent graph generation method as described above by executing the programs stored in the memory.
[0116] The processor may include a central processing unit and an image processing unit. The central processing unit and the image processing unit respectively execute the corresponding steps above. The terminal device may be a computer, a server, or other implementable terminal devices.
[0117] Those skilled in the art can understand that all or part of the functions of the various methods in the above embodiments can be implemented by hardware or by computer programs. When all or part of the functions in the above embodiments are implemented by computer programs, the programs can be stored in a computer-readable storage medium, and the storage medium may include: read-only memory, random access memory, magnetic disks, optical disks, hard disks, etc. The above functions are implemented by a computer executing the programs. For example, the program is stored in the memory of the device, and when the processor executes the program in the memory, all or part of the above functions can be implemented. In addition, when all or part of the functions in the above embodiments are implemented by computer programs, the programs can also be stored in storage media such as servers, another computer, magnetic disks, optical disks, flash drives, or external hard drives, and are saved to the memory of the local device by downloading or copying, or the system of the local device is updated. When the processor executes the program in the memory, all or part of the functions in the above embodiments can be implemented.
[0118] This document has been described with reference to various exemplary embodiments. However, those skilled in the art will recognize that changes and modifications can be made to the exemplary embodiments without departing from the scope of this document. For example, the various operation steps and the components used to perform the operation steps can be implemented in different ways according to a particular application or any number of cost functions associated with the operation of the system (e.g., one or more steps can be deleted, modified, or combined into other steps).
[0119] Although the principles of this document have been shown in various embodiments, many modifications of structures, arrangements, proportions, elements, materials, and components that are particularly applicable to specific environments and operational requirements can be used without departing from the principles and scope of this disclosure. The above modifications and other changes or corrections will be included within the scope of this document.
[0120] The foregoing detailed description has been presented with reference to various embodiments. However, those skilled in the art will recognize that various modifications and changes can be made without departing from the scope of the disclosure. Accordingly, the consideration of the disclosure is to be illustrative in nature and not restrictive in sense, and all such modifications are intended to be included within its scope. Similarly, advantages, other advantages, and solutions to problems of the various embodiments have been described above. However, benefits, advantages, solutions to problems, and any elements that produce these, or cause them to become more apparent, are not to be construed as critical, required, or essential. As used herein, the term "comprising" and any other variants thereof are non-exclusive inclusions, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but also other elements not expressly listed or inherent to the process, method, system, article, or apparatus. Additionally, the term "coupled" and any other variants thereof as used herein refer to physical connection, electrical connection, magnetic connection, optical connection, communication connection, functional connection, and / or any other connection.
[0121] Those having skill in the art will recognize that many changes may be made in the details of the above-described embodiments without departing from the basic principles of the invention. Thus, the scope of the invention should be determined only by the claims.
Claims
1. A method for generating an isogram, characterized in that, Including: A data collection step of measuring multiple preset measurement points of a workpiece to be measured to obtain measurement point data corresponding to each of the measurement points in a preset reference coordinate system; An initialization step of initializing the size and threshold interval of an isometric map; A grid division step of dividing a two-dimensional plane of a preset reference coordinate system into multiple uniform grid cells to form multiple grid points, and recording grid point data of all the grid points, where the grid point data includes grid point coordinates; An interpolation step of interpolating each of the grid points according to all the measurement point data and using a parallel computing model or framework to obtain a calculated value corresponding to each of the grid points, where the grid point data includes the calculated value; A matrix creation step of creating an isometric map matrix according to the size of the isometric map and storing the calculated value in each of the grid point data into the isometric map matrix; A rendering step of comparing each of the calculated values in the isometric map matrix with the threshold interval using a parallel computing model or framework, determining a color interval corresponding to each of the calculated values, and rendering a color corresponding to the color interval to generate a corresponding isometric map.
2. The generation method according to claim 1, characterized in that The grid division step includes: Determining a grid size for grid division according to the size of the isometric map; Dividing the two-dimensional plane of the preset reference coordinate system into multiple uniform grid cells according to the grid size to form multiple grid points; wherein, one pixel of the isometric map corresponds to one of the grid points; Determining a correspondence between the grid point coordinates of the grid points and the pixel coordinates of the isometric map.
3. The generation method according to claim 2, wherein Storing the calculated value in each of the grid point data into the isometric map matrix includes: Storing the calculated value in each of the grid point data into the isometric map matrix according to the correspondence between the grid point coordinates of the grid points and the pixel coordinates of the isometric map.
4. The generation method according to claim 1, wherein The grid division step includes: Determining a grid size for grid division; Dividing the two-dimensional plane of the preset reference coordinate system into multiple uniform grid cells according to the grid size to form multiple grid points; wherein, one pixel of the isometric map corresponds to multiple of the grid points; Determining a correspondence between the grid point coordinates of the grid points and the pixel coordinates of the isometric map according to the size of the isometric map and the grid size for grid division; Wherein, after obtaining the calculated value corresponding to each of the grid points in the interpolation step, it further includes: Interpolating each pixel of the isometric map according to the calculated values of all the grid points using a parallel computing model or framework to obtain a calculated value corresponding to each pixel; Wherein, storing the calculated value in each of the grid point data into the isometric map matrix includes: Storing the calculated value corresponding to each pixel into the isometric map matrix.
5. The generation method according to claim 1, wherein Interpolating each of the grid points using a parallel computing model or framework includes: Interpolating each of the grid points using a CUDA model or framework.
6. The generation method according to claim 1 or 5, characterized in that, Interpolating each of the grid points includes: According to all the measurement point data, the corresponding calculated value of each grid point is calculated using the inverse distance weighting formula, bilinear interpolation algorithm, cubic spline interpolation algorithm, or bicubic interpolation algorithm.
7. The generation method according to claim 1, wherein In the rendering step, using the CUDA model or framework, each calculated value in the isogram matrix is compared with the threshold interval to determine the color interval corresponding to each calculated value, and it is rendered as the color corresponding to that color interval.
8. The generation method according to claim 1, wherein Before the interpolation step, it further includes: The first data transmission step of transmitting all the measurement point data and all the grid point data to the parallel computing module; The interpolation step is executed by the parallel computing module.
9. The generation method according to claim 1, wherein Before the rendering step, it further includes: The second data transmission step of sending the isogram matrix to the parallel computing module; The rendering step is executed by the parallel computing module.
10. The generation method according to claim 8 or 9, characterized in that, The parallel computing module includes an image processor, and the image processor is used to execute the interpolation step and the rendering step.
11. The generation method according to claim 1, characterized in that The measurement point data includes the measurement point coordinates and the measured value, and the measured value is the thickness corresponding to the measurement point.
12. The generation method according to claim 11, wherein The workpiece to be measured is a wafer, and a film layer to be measured or a surface to be measured is formed on the wafer, and the measured value is the thickness of the measurement point in the film layer to be measured or the surface to be measured.
13. An isogram generation system, characterized in that, It includes: A measurement module configured to measure multiple preset measurement points of the workpiece to be measured to obtain the measurement point data corresponding to each measurement point in a preset reference coordinate system; A processing module configured to: Initialize the size and threshold interval of the isogram; Perform grid division on the two-dimensional plane of the preset reference coordinate system, divide it into multiple uniform grid cells, and record the grid point data of all grid points of the grid cells, where the grid point data includes grid point coordinates; According to all the measurement point data, and using a parallel computing model or framework to perform interpolation on each grid point to obtain the corresponding calculated value of each grid point, and the grid point data includes the calculated value; Create an isogram matrix according to the size of the isogram, and store the calculated value in each grid point data into the isogram matrix; According to the parallel computing model or framework, compare each calculated value in the isogram matrix with the threshold interval, determine the color interval where each calculated value is located, and render it as the color corresponding to that color interval to generate the corresponding isogram.
14. The generation system according to claim 13, wherein The processing module includes a main processing module and a parallel computing module; The main processing module is configured to: Initialize the size and threshold interval of the isogram; Perform grid division on the two-dimensional plane of the preset reference coordinate system, divide it into multiple uniform grid cells, and record the grid point data of all grid points of the grid cells, where the grid point data includes grid point coordinates; Create an isogram matrix according to the size of the isogram, and store the calculated value in each grid point data into the isogram matrix; The parallel computing module is configured to: According to all the measurement point data, and using a parallel computing model or framework to perform interpolation on each grid point to obtain the corresponding calculated value of each grid point, and the grid point data includes the calculated value; Compare each of the calculated values in the isogram matrix with the threshold interval according to a parallel computing model or framework, determine the color interval where each calculated value is located, and render it with the color corresponding to the color interval to generate a corresponding isogram.
15. A terminal device, characterized in that, Comprising: A memory for storing programs; A processor for implementing the method according to any one of claims 1-12 by executing the programs stored in the memory, the processor including a central processing unit and an image processor.
16. A computer-readable storage medium, characterized in that, A program is stored on the medium, and the program can be executed by a processor to implement the method according to any one of claims 1-12.