Layout file parallel reading method, device and equipment and readable storage medium

Through block processing and multi-threaded parallel reading methods, the problem of slow layout file reading speed in traditional single-threaded mode is solved, efficient file loading and operation is achieved, and semiconductor design efficiency is improved.

CN120295800APending Publication Date: 2025-07-11GUANGLIWEI (SHANGHAI) TECH CO LTD

Patent Information

Application Number
CN202510783072.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-12
Publication Date
2025-07-11

AI Technical Summary

Technical Problem

The layout file reading speed in traditional single-threaded mode is slow, and the multi-core processor resources cannot be fully utilized, resulting in too long file loading time, affecting semiconductor design efficiency.

Method used

Block processing and multi-thread parallel reading methods are adopted to monitor the queue to be read and allocate idle threads to be read, so as to realize parallel reading of layout files, making full use of the performance of multi-core processors.

Benefits of technology

It greatly improves the reading speed of layout files, improves file loading and operation efficiency, and meets the rapid processing needs of semiconductor design.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120295800A_ABST
    Figure CN120295800A_ABST
Patent Text Reader

Abstract

The invention relates to a layout file parallel reading method, device and equipment and a readable storage medium. The method comprises the following steps: the layout file comprises a plurality of records; partitioning the layout file on the basis of recorded information to obtain to-be-read blocks, and putting the to-be-read blocks into a to-be-read queue; when it is monitored that a to-be-read block exists in the to-be-read queue and a distributable idle thread exists, the distributable thread reads the to-be-read block, and data of the to-be-read block is obtained; and post-processing the obtained data of all the blocks to be read to complete reading of the layout file. According to the method, the performance of a multi-core processor is fully utilized through blocking processing and supporting multi-thread parallel computing, the reading speed of layout files is greatly increased, and a more efficient solution is provided for file loading and operation in semiconductor design.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of integrated circuit design and manufacturing, and particularly relates to a method, device, equipment and readable storage medium for parallel reading of layout files. Background Art

[0002] With the continuous reduction of process nodes and the improvement of design complexity, the scale of layout files in modern chip design is increasing day by day. The size of a single layout file often reaches dozens of GB or even hundreds of GB, which poses a severe challenge to the file reading speed and processing efficiency. In the traditional single-threaded reading mode, the file opening speed is becoming increasingly inadequate and gradually unable to meet the current requirements of rapid processing and real-time verification.

[0003] GDSII and OASIS are two important layout file formats in the semiconductor design field. Among them, GDSII (Graphic Data System II) was born in the 1970s and is an important layout file format in the semiconductor design field, widely used in the physical design stage of integrated circuits. The GDSII file consists of multiple records, each record having a specific structure, including a record header and corresponding data; the GDSII file organizes and stores complex integrated circuit layout information through this structured format.

[0004] Currently, in semiconductor design, the reading mode of layout files mainly adopts the single-threaded mode. This traditional method can provide relatively stable performance when the file size is small, but with the reduction of process nodes and the improvement of design complexity, the volume of layout files gradually increases, and the limitations of the single-threaded reading mode become more and more obvious.

[0005] The single-threaded reading mode mainly has the following disadvantages: 1) The performance bottleneck is obvious, and the speed of reading the file is limited by the computing power of a single CPU core. When facing ultra-large files of dozens of GB or even hundreds of GB, the processing speed is too slow, resulting in a long file loading time and affecting the development efficiency of the design team; 2) It cannot make full use of processor resources. Most modern processors are equipped with multi-core architectures, but the single-threaded reading mode cannot effectively schedule these resources, resulting in waste of hardware performance.

[0006] Therefore, in order to meet the growing demand for reading layout files, especially layout files in GDSII format, there is an urgent need for a reading method that can improve the reading speed of layout files and reduce the reading time of layout files, so as to provide a more efficient solution for file loading and operation in semiconductor design. Summary of the Invention

[0007] To solve all or part of the above-mentioned problems in the prior art, the present invention provides a method, apparatus, computer device, and computer-readable storage medium for parallel reading of layout files that can greatly improve the reading speed of layout files.

[0008] In a first aspect, a method for parallel reading of layout files is provided in this embodiment, including: The layout file includes multiple records; Based on the record information, perform block processing on the layout file to obtain blocks to be read and put them into a queue to be read; When it is monitored that there are blocks to be read in the queue to be read and there are available idle threads, allocate threads to read and process the blocks to be read, and obtain the data of the blocks to be read; Perform post-processing on the data of all the blocks to be read obtained, and complete the reading of the layout file.

[0009] In some of these embodiments, the block processing includes: Based on the record headers in the records and a preset block threshold, divide the multiple records of the layout file into multiple blocks to be read; Wherein, the records of the layout file include record headers and data, and the record headers include information: record length and record type.

[0010] In some of these embodiments, the block processing specifically includes: Based on the record type in the record header, obtain the record type of the record, and determine whether the record can be used as the end record of the block to be read; based on the record length in the record header, determine the starting position of the next record to obtain block processing.

[0011] In some of these embodiments, the block processing further includes: the end record of the block to be read is a record type indicating the end of a graphic element or structure.

[0012] In some of these embodiments, when performing the block processing, record the currently scanned record as the current record and the currently scanned block as the current block; specifically include: Divide the current record into the current block and judge: If the current record is a record type indicating the end of a graphic element or structure, update the length of the current block, and when it is recognized that the length of the current block is greater than or equal to the preset block threshold, end the scanning of the current block, and put the current block into the queue to be read as a block to be read; If the current record is not a record type indicating the end of a graphic element or structure, or the length of the current block is less than the preset block threshold, continue to obtain the next record for scanning until the scanning of all records in the layout file is completed.

[0013] In some of these embodiments, the layout file parallel reading method supports multi-threaded parallel processing of reading layout files. The threads include: A monitoring thread for monitoring whether there are blocks to be read in the queue to be read and allocating reading tasks; A chunking thread for chunking the layout file; A reading thread for obtaining the blocks to be read in the queue to be read and reading them.

[0014] In some of these embodiments, the post-processing of the data of all the blocks to be read obtained to complete the reading of the layout file includes: Merging the structural data read in multiple blocks to be read to form a complete structure.

[0015] In a second aspect, a layout file parallel reading device is provided in this embodiment. The device includes: A chunking module for chunking the layout file based on the record information to obtain blocks to be read and putting them into the queue to be read; the layout file includes multiple records; A reading module for, when it is monitored that there are blocks to be read in the queue to be read and there are available idle threads, allocating threads to perform reading processing on the blocks to be read; A post-processing module for post-processing the data of all the blocks to be read obtained to complete the reading of the layout file.

[0016] In a third aspect, a computer device is provided in this embodiment, including a memory and a processor. The memory stores a computer program, and when the processor executes the computer program, the steps of the layout file parallel reading method described in the first aspect above are implemented.

[0017] In a fourth aspect, a computer-readable storage medium is provided in this embodiment, on which a computer program is stored. When the computer program is executed by a processor, the steps of the layout file parallel reading method described in the first aspect above are implemented.

[0018] The above layout file parallel reading method makes full use of the performance of a multi-core processor through chunking processing and supporting multi-threaded parallel computing, greatly improving the reading speed of the layout file, and providing a more efficient solution for file loading and operation in semiconductor design. And a layout file parallel reading device, a computer device, and a computer-readable storage medium are further provided, each having the performance and beneficial effects of the aforementioned layout file parallel reading method. Description of the Drawings

[0019] To more clearly illustrate the technical solutions in the embodiments of the present application or in the prior art, the following will briefly introduce the accompanying drawings required for the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings.

[0020] Figure 1 It is a schematic flowchart of the method for parallel reading of layout files in an embodiment; Figure 2 It is an internal structure diagram of a computer device in an embodiment. Detailed implementation manners

[0021] To facilitate the understanding of the present application, the following will describe the present application more comprehensively with reference to the relevant accompanying drawings. Embodiments of the present application are shown in the accompanying drawings. However, the present application can be implemented in many different forms and is not limited to the embodiments described herein. On the contrary, the purpose of providing these embodiments is to make the disclosure of the present application more thorough and comprehensive.

[0022] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those of ordinary skill in the technical field to which the present application belongs. The terms used in the description of the present application in this specification are only for the purpose of describing specific embodiments and are not intended to limit the present application.

[0023] It should also be understood that the terms "including / comprising" or "having" etc. specify the presence of the stated features, wholes, steps, operations, components, parts or combinations thereof, but do not exclude the possibility of the presence or addition of one or more other features, wholes, steps, operations, components, parts or combinations thereof. At the same time, in this specification, the term "and / or" includes any and all combinations of the related listed items.

[0024] The GDSII file consists of multiple records, each record having a specific structure, including a record header and corresponding data; the GDSII file organizes and stores complex integrated circuit layout information through this structured format. The following is the basic structure of the GDSII file record header, and these fields together define the header structure of a record in the GDSII file: 1) Record Length: The first field of the record header is the record length, which represents the number of bytes of the entire record, including the record header and data; usually occupies 2 bytes; 2) Record Type: The record type field is also 1 byte long; it specifies the type of the record, for example, whether it is the start of a structure, boundary definition, layer information, etc.; 3) Data Type: The data type field usually occupies 1 byte; the data type defines the data type of the record, such as integer, string, or floating point number.

[0025] To improve the reading speed of the layout file in GDSII format, this embodiment provides a layout file parallel reading method as Figure 1 shown, including: The layout file includes multiple records; Based on the record information, the layout file is block-processed to obtain the blocks to be read and put into the queue to be read; When it is monitored that there are blocks to be read in the queue to be read and there are available idle threads, a thread is allocated to read the block to be read, and the data of the block to be read is obtained; Post-process the data of all the blocks to be read obtained, and complete the reading of the layout file.

[0026] Specifically, the above layout file parallel reading method mainly includes three main processing stages: block processing, reading processing, and post-processing. First is block processing. Since the layout file consists of consecutive records and the record length is uncertain, to perform block processing, it is necessary to scan each record one by one to obtain the position of a specific record, and then select a suitable position as the block division point, thereby obtaining a series of information about the blocks to be read, including the position and size of the blocks. With this series of block information, a thread can be allocated to read each block to obtain the data of the block. After all the blocks are read, it enters the post-processing stage, where the information of each block is summarized and merged to obtain the complete layout information and complete the reading. This method makes full use of the performance of the multi-core processor through block processing and supporting multi-thread parallel reading, greatly improving the reading speed of the layout file and providing a more efficient solution for file loading and operation in semiconductor design.

[0027] In this embodiment, the block processing includes: dividing multiple records of the layout file into multiple blocks to be read based on the record header in the record and a preset block division threshold; wherein, the record of the layout file includes a record header and data, and the record header includes information: record length and record type. By presetting the block division threshold, the length of the block to be read is set, and then the time for the subsequent reading thread to read a block to be read is adjusted; in a specific application, the block division threshold can be set according to the performance of the multi-core processor and the current application scenario requirements, and then the layout file is block-processed based on the record information.

[0028] During execution, the chunking process specifically includes the steps of: based on the record type in the record header, obtaining the record type of the record and determining whether the record can serve as the end record of the to-be-read chunk; based on the record length in the record header, determining the starting position of the next record to obtain chunking processing. The record header of the GDSII file stores the record type and record length information, through which the record type can be quickly obtained by the record type in the record header, and the starting position of the next record can be quickly found by the record length in the record header.

[0029] In some specific applications, the chunking process will ensure that the lengths of all to-be-read chunks except the last obtained to-be-read chunk are greater than or equal to a preset chunking threshold. However, in some other layout files, there may be no such limitation based on the chunking threshold. The preset chunking threshold can be flexibly applied according to the specific layout type and application requirements, and then the record header is used to perform chunking processing on the layout file.

[0030] In this embodiment, the chunking process further includes: the end record of the to-be-read chunk is a record type indicating the end of a graphic element or a structure.

[0031] When performing the chunking process, record the currently scanned record as the current record and the currently scanned chunk as the current chunk; specifically, it further includes the steps of: Classify the current record into the current chunk and judge: If the current record is a record type indicating the end of a graphic element or a structure, update the length of the current chunk, and when it is recognized that the length of the current chunk is greater than or equal to the preset chunking threshold, end the scanning of the current chunk and put the current chunk into the to-be-read queue as a to-be-read chunk; If the current record is not a record type indicating the end of a graphic element or a structure, or the length of the current chunk is less than the preset chunking threshold, continue to obtain the next record for scanning until the scanning of all records in the layout file is completed.

[0032] In the chunking process, the record type at the beginning of the to-be-read chunk is not limited, but the record type at the end of the to-be-read chunk must be a record type indicating the end of a graphic element or a structure; therefore, a to-be-read chunk may include multiple complete structures (Cells, also known as Structures or Library Elements), or may be a part of a single structure.

[0033] In the GDSII file, ENDSTR and ENDEL are two of the most common record types indicating the end of a graphic element or a structure: ENDSTR: Marks the end of a structure; ENDEL: Used to mark the end of a graphic element (i.e., a graphical element such as a boundary, a path, text, etc.).

[0034] It should be noted that the limitation on the end record of the block to be read can be selected based on the type of the layout file whether to use it or not; for example, in this embodiment, for GDSII files, the end record type of the block to be read must be the record type indicating the end of a graphic element or structure, but it may not limit the blocks to be read of some other layout files, and can be set according to the requirements of the application scenario, and the present application does not make specific limitations.

[0035] In this embodiment, the above layout file parallel reading method supports multi-thread parallel processing of reading layout files. The threads include: A monitoring thread for monitoring whether there is a block to be read in the queue to be read and allocating reading tasks; A block splitting thread for performing block splitting processing on the layout file; A reading thread for obtaining the block to be read in the queue to be read and reading it.

[0036] Specifically, the parallel reading and block splitting processing of the block to be read are carried out simultaneously. During the process of the block splitting thread performing block splitting processing, the monitoring thread has been monitoring the queue to be read. When the monitoring thread detects that there is a new block to be read in the queue to be read, if there is an idle working thread, it allocates a reading thread to read the new block to be read. Through such multi-thread parallel processing, the resources of the idle multi-core architecture processor are fully utilized, and when facing ultra-large layout files of dozens of GB or even hundreds of GB, the layout reading speed can be greatly improved.

[0037] The following uses a specific application embodiment to illustrate the block splitting processing of GDSII files, as Figure 1 shown, specifically including the steps: Step S1: Obtain the records of the layout file for scanning; record the currently scanned record as the current record, and the currently scanned block as the current block; Step S2: Incorporate the current record into the current block, and based on the record type of the record header in the current record, determine whether the current record is the record type indicating the end of a graphic element or structure: If the current record is the record type indicating the end of a graphic element or structure, update the length of the current block, and judge: if the length of the current block is greater than or equal to the preset block splitting threshold, end the scanning of the current block, put the current block into the queue to be read as the block to be read, start scanning a new block, and record the new block as the current block, and proceed to step S3 for processing; if the length of the current block is less than the preset block splitting threshold, directly proceed to step S3 for processing; If the current record is not the record type indicating the end of a graphic element or structure, proceed to step S3 for processing; Step S3: Judge whether all the records in the layout file have been scanned: If the scanning of all records in the layout file has been completed, determine whether there are any records assigned to the current block: if so, put the current block into the queue of blocks to be read as the block to be read, and complete the block division of the layout file; if not, directly complete the block division of the layout file; If the scanning of all records in the layout file has not been completed, determine the starting position of the next record based on the record length of the record header in the current record, and after taking the next record as the new current record, proceed to step S2 for processing.

[0038] Specifically, when dividing into blocks, first set the minimum length of the block, that is, the block division threshold. Starting from the first BGNSTR encountered, record the starting position of the block. If the current record type is ENDSTR or ENDEL, update the length of the block. If the length of the current block is greater than the threshold, end the scanning of the current block, put the current block into the queue of blocks to be read, and take the next byte as the starting position of the next block to start the scanning of the next block. By restricting that the end record type of the block must be a record type indicating the end of a graphic element or structure (such as the common ENDSTR or ENDEL), and combined with the block division threshold, before starting multi-threaded reading, perform a pre-reading first, without parsing the layout content, only determine the content distribution in the layout file, and based on this, divide the layout file into blocks to generate a multi-threaded reading plan, that is, the queue of blocks to be read.

[0039] In this embodiment, post-process the data of all blocks to be read obtained to complete the reading of the layout file, including: merging the structure (Cell, also known as Structure or LibraryElement) data read in multiple blocks to be read to form a complete structure.

[0040] Specifically, in the post-processing stage, if a structure is divided into multiple blocks for reading, these blocks need to be merged to form a complete structure.

[0041] Based on the same inventive concept, an embodiment of the present application also provides a layout file parallel reading device for implementing the above-mentioned layout file parallel reading method. The implementation solution provided by this device to solve the problem is similar to the implementation solution described in the above method. Therefore, the specific limitations in one or more embodiments of the following layout file parallel reading device can refer to the limitations on the layout file parallel reading method in the above text, and will not be repeated here.

[0042] In one embodiment, a layout file parallel reading device is provided, including: a block division module, a reading module, and a post-processing module, where: The block division module is used to perform block division processing on the layout file based on record information, obtain blocks to be read, and put them into the queue of blocks to be read; A reading module, configured to allocate a thread to perform a reading process on the to-be-read block when it is monitored that there is a to-be-read block in the to-be-read queue and there are allocable idle threads; A post-processing module, configured to perform post-processing on the data of all the to-be-read blocks obtained, and complete the reading of the layout file.

[0043] Each functional module of the layout file parallel reading device implements the steps in the above-mentioned embodiments of the layout file parallel reading method.

[0044] Each module in the above-mentioned layout file parallel reading device can be implemented in whole or in part by software, hardware, and their combination. The above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or stored in the memory in the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above-mentioned modules.

[0045] In one embodiment, a computer device is provided. The computer device can be a terminal, and its internal structure diagram can be as shown in Figure 2 The figure. The computer device includes a processor, a memory, an input / output interface, a communication interface, a display unit, and an input device. Among them, the processor, the memory, and the input / output interface are connected through a system bus, and the communication interface, the display unit, and the input device are connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and external devices. The communication interface of the computer device is used to communicate with external terminals in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (Near Field Communication), or other technologies. The computer program, when executed by the processor, implements a layout file parallel reading method. The display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device, or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen. The input device of the computer device can be a touch layer covered on the display screen, or a button, a trackball, or a touchpad provided on the shell of the computer device, or an external keyboard, touchpad, or mouse, etc.

[0046] Those skilled in the art can understand, Figure 2The structure shown is only a block diagram of some structures related to the solution of this application, and does not constitute a limitation on the computer device to which the solution of this application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine some components, or have a different component layout.

[0047] In one embodiment, a computer device is further provided, including a memory and a processor. A computer program is stored in the memory, and when the processor executes the computer program, the steps in the embodiments of the above-mentioned parallel reading method for layout files are implemented.

[0048] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the embodiments of the above-mentioned parallel reading method for layout files are implemented.

[0049] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, database, or other medium used in the embodiments provided in this application can include at least one of non-volatile and volatile memories. Non-volatile memories can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memories can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The databases involved in the embodiments provided in this application can include at least one of relational databases and non-relational databases. Non-relational databases can include distributed databases based on blockchain, etc., without limitation. The processors involved in the embodiments provided in this application can be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, data processing logics based on quantum computing, etc., without limitation.

[0050] It should be understood that although the steps in the flowcharts involved in the above embodiments are sequentially shown according to the indications of the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless there is a clear indication in this article, the execution of these steps has no strict order limit, and these steps can be executed in other orders. Moreover, at least some of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be executed alternately or alternately with at least a part of other steps or steps or stages in other steps.

[0051] In the description of this specification, the descriptions referring to terms such as "some embodiments", "other embodiments", "ideal embodiments", etc. mean that the specific features, structures, materials or characteristics described in connection with the embodiment or example are included in at least one embodiment or example of the present application. In this specification, the schematic description of the above terms does not necessarily refer to the same embodiment or example.

[0052] The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity of description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope described in this specification.

[0053] The above-described embodiments merely represent several implementation manners of the present application. The description is relatively specific and detailed, but it should not be construed as a limitation on the patent scope of the present application. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the appended claims.

Claims

1. A method for parallel reading of layout files, characterized in that, including: The layout file includes multiple records; Based on the record information, perform block processing on the layout file to obtain blocks to be read and put them into the queue of blocks to be read; When it is monitored that there are blocks to be read in the queue of blocks to be read and there are available idle threads, allocate a thread to perform reading processing on the block to be read and obtain the data of the block to be read; Perform post-processing on the data of all blocks to be read obtained, and complete the reading of the layout file.

2. The layout file parallel reading method according to claim 1, wherein The block processing includes: Based on the record header in the record and a preset block threshold, divide the multiple records of the layout file into multiple blocks to be read; Among them, the record of the layout file includes a record header and data, and the record header includes information: record length and record type.

3. The layout file parallel reading method according to claim 2, wherein The block processing specifically includes: Based on the record type in the record header, obtain the record type of the record, and determine whether the record can be used as the end record of the block to be read; based on the record length in the record header, determine the starting position of the next record to obtain block processing.

4. The layout file parallel reading method according to claim 2, wherein, The block processing further includes: the end record of the block to be read is a record type indicating the end of a graphic element or structure.

5. The method for parallel reading of layout files according to claim 4, wherein When performing block processing, record the currently scanned record as the current record and the currently scanned block as the current block; specifically include: Divide the current record into the current block and judge: If the current record is a record type indicating the end of a graphic element or structure, update the length of the current block, and when it is recognized that the length of the current block is greater than or equal to the preset block threshold, end the scanning of the current block and put the current block into the queue of blocks to be read as a block to be read; If the current record is not a record type indicating the end of a graphic element or structure, or the length of the current block is less than the preset block threshold, continue to obtain the next record for scanning until the scanning of all records in the layout file is completed.

6. The layout file parallel reading method according to claim 1, characterized in that Support multi-threaded parallel processing for reading the layout file, and the threads include: A monitoring thread for monitoring whether there are blocks to be read in the queue of blocks to be read and allocating reading tasks; A block processing thread for performing block processing on the layout file; A reading thread for obtaining the blocks to be read in the queue of blocks to be read for reading.

7. The layout file parallel reading method according to claim 1, wherein The post-processing of the data of all blocks to be read obtained to complete the reading of the layout file includes: Merge the structural data read in multiple blocks to be read to form a complete structure.

8. A layout file parallel reading device, characterized in that The device includes: A block processing module for performing block processing on the layout file based on record information to obtain blocks to be read and put them into the queue of blocks to be read; the layout file includes multiple records; A reading module for, when it is monitored that there are blocks to be read in the queue of blocks to be read and there are available idle threads, allocating a thread to perform reading processing on the block to be read; A post-processing module for performing post-processing on the data of all blocks to be read obtained to complete the reading of the layout file.

9. A computer device, comprising a memory and a processor, the memory storing a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the layout file parallel reading method described in any one of claims 1 to 7.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the steps of the layout file parallel reading method described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Pattern file display method based on multi-thread parallel processing

    CN111708621A

  • Circuit layout data reading method and device and electronic equipment

    CN118132779A

  • Chip layout cloud parallel rendering and rendering data scheduling method and device and cloud

    CN118428288A

  • Method and device for processing layout

    CN119514465A

  • Layout and layout file cutting method and device, equipment and storage medium

    CN120297221A

Cited By

  • Distributed layout information reading method and system, storage medium and electronic equipment

    CN121257459A