Data management method and device applied to EDA software and electronic equipment

Through a unified memory external memory storage system, using the abstract address layer to manage data, the problem of insufficient memory in EDA simulation is solved, efficient data management is achieved, simulation analysis capabilities are improved, and costs are reduced.

CN119828983AActive Publication Date: 2025-04-15SHENZHEN HONGXIN MICRO NANO TECH CO LTD +1
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202510300695.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-14
Publication Date
2025-04-15
Estimated Expiration
2045-03-14

AI Technical Summary

Technical Problem

Insufficient memory during the EDA simulation process leads to slow software running, crashing, and inaccurate simulation results, affecting project progress and team collaboration.

Method used

A storage system with unified memory and external memory is adopted to unify data management through the abstract address layer, using physical memory and cache devices to store currently used data, and using external memory to store temporarily unused data, reducing the demand for physical memory and cache devices.

Benefits of technology

It effectively solves the problem of insufficient memory of EDA simulation, improves the simulation analysis capabilities of the computer, reduces the cost of hardware upgrades, and ensures the running speed and efficiency of EDA software.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119828983A_ABST
    Figure CN119828983A_ABST
Patent Text Reader

Abstract

The invention provides a data management method and device applied to EDA software and electronic equipment, and belongs to the technical field of data management. In the method, a storage system for unifying internal storage and external storage is provided, target data which are being used in the work of the EDA software can be stored in physical internal storage / cache equipment, data which are not used temporarily can be stored in the external storage, and the data management efficiency is improved. Compared with the prior art, the method has the advantages that the requirement for high capacity of the storage space of the physical memory / cache device is lowered, the cost is greatly reduced, the target data required by work of the EDA software can be pre-stored in the physical memory / cache device during implementation, the data stored in the physical memory / cache device is convenient to read and write, the running speed of the EDA software is not affected, and the reliability of the EDA software is improved. A client of the EDA software only needs to write a program according to the access abstract address of the target data needing to be accessed without knowing the specific process of querying the target data by the storage system, namely, knowing any other technical details without increasing any maintenance and use burden.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of data management, and in particular to a data management method, device and electronic equipment applied to EDA software. Background Art

[0002] As the integration of chips becomes higher and higher, from billions to tens of billions, hundreds of billions, or even trillions of gate-level transistors, the scale of design continues to expand, and the corresponding amount of design data has also increased significantly, which has increased the amount of data that needs to be processed and stored in the EDA simulation process, and the demand for memory has continued to rise. For example, when designing a high-end chip with billions of transistors, if it is a highly complex chip, such as a high-end processor chip with billions or even more transistors, a large-scale SoC chip, etc., such projects need to process massive amounts of data in all aspects from front-end functional design, logic design to back-end physical design, verification, etc. From storing a large amount of logic gate information, signal status, to the electrical characteristics of transistors, layout and wiring details, etc., hundreds of GB or even TB of memory may be required to meet the demand, especially when performing physical design and layout verification of large-scale chips, the memory size directly affects the software running speed and design efficiency.

[0003] During EDA simulation, especially when performing functional simulation and timing simulation with high real-time requirements, memory needs to be able to respond to data requests quickly to ensure the accuracy and real-time performance of the simulation. Low-latency memory performance can reduce the waiting time during the simulation process, increase the iteration speed of the simulation, and thus speed up the chip design cycle; EDA simulation involves many types of data, including code files, design documents, simulation results, intermediate data, etc. The size and life cycle of these data vary, some are as small as a few KB code files, and some are GB-level or even larger layout physical inspection files. Moreover, during the simulation process, these data will be continuously generated, modified, and deleted, and the dynamic changes of data increase the complexity of memory management.

[0004] If the memory is insufficient, the EDA project will have the following impacts: 1. The software runs slowly or even crashes: First, when EDA software starts, it needs to load various modules, library files, and project-related data into the memory. If the memory is insufficient, the loading process will become extremely slow, and the startup operation that originally only takes a few minutes to complete may be extended to more than ten minutes or even longer. For example, when starting a large chip design software, it has to read a large number of design templates, component libraries, etc. Insufficient memory will cause data reading and loading to be stuck, which will cause the startup and loading time to be extended; secondly, during the project, when engineers perform operations such as opening design files, switching design views, and running simulations, they need memory to respond quickly and process related data. When the memory is insufficient, the response time of these operations will increase significantly, and there will be obvious lags. For example, after clicking to run the simulation, you may have to wait a long time before there is feedback, which seriously affects work efficiency, that is, it causes a lag in operation response; thirdly, continuous memory pressure may cause the software to run beyond its limit, thereby causing the software to crash. Especially when dealing with large-scale and complex EDA projects, if there is not enough memory support, the software may suddenly close when performing some memory-intensive tasks, such as physical design verification of large-scale circuits and timing simulation of the entire chip. This may cause the loss of previous work results and engineers will have to restart related work, which means that the risk of software crashes increases.

[0005] 2. Inaccurate simulation and verification results: Because in the simulation and verification process, a large amount of data needs to be stored in the memory, including various parameters of the circuit, signal status, intermediate calculation results, etc. If the memory is insufficient, these data may not be stored completely, resulting in some data loss or truncation. For example, when performing a timing simulation of a complex digital circuit, insufficient memory may make it impossible to save the state data of certain key signals at a specific moment, thereby affecting the accurate judgment of the timing characteristics of the entire circuit, that is, causing data loss or truncation; in addition, some EDA simulation and verification algorithms require sufficient memory to ensure the accuracy of the calculation. When the memory is insufficient, the algorithm may not be able to perform complete calculations in the expected manner, and can only adopt simplified or approximate calculation methods, resulting in reduced calculation accuracy. For example, when performing high-precision performance simulation of analog circuits, due to memory limitations, it may not be possible to accurately consider all circuit component parameters and their interactions, resulting in a large deviation between the simulation results and the actual circuit performance, which leads to reduced calculation accuracy.

[0006] 3. Project schedule delays: Due to insufficient memory, software crashes or inaccurate simulation results, engineers often need to redo some of the work that has been completed before. For example, if a simulation has been run once, but the results are unreliable due to memory problems, the simulation needs to be run again, which undoubtedly increases the amount of repetitive work and wastes a lot of time and energy, which leads to increased repetitive work; in addition, as mentioned above, insufficient memory will cause the software to run slowly and the operation response to lag. Engineers waste a lot of time waiting for the software to respond and are unable to carry out project work efficiently. Moreover, because they have to constantly deal with various problems caused by insufficient memory, such as cleaning up temporary files and trying to restart the software, it will also distract engineers and further reduce overall work efficiency, thus causing project schedule delays.

[0007] 4. Team collaboration is hindered: When a team collaborates on an EDA project, multiple members may need to share some project resources, such as a commonly used design file library, simulation result database, etc. If there is insufficient memory, these shared resources may not be stored or accessed normally, affecting information sharing and collaborative work among team members. For example, a team member wants to view the latest simulation results uploaded by other members, but due to memory problems, the relevant files cannot be opened smoothly, which hinders communication and collaboration within the team. That is, shared resources are limited; in addition, when multiple team members operate on the project at the same time, such as opening design files and running simulations at the same time, memory is required to support high-concurrency data read and write requests. When there is insufficient memory, concurrent operations will be difficult. Either the operations of some members will be delayed, or the software will cause error prompts, which will limit the ability of team members to work at the same time, thereby affecting the efficiency of team collaboration. That is, concurrent operations are difficult.

[0008] To solve the problem of insufficient memory, traditional technologies mainly include the following solutions: 1. Hardware upgrade: Increase physical memory, which is the most direct and effective method. Purchase memory sticks that are compatible with the computer, such as DDR4, DDR5 and other different types of memory sticks; you can also configure multi-channel memory. If the motherboard supports it, you can configure multi-channel memory, such as dual-channel, quad-channel, etc. Multi-channel memory technology allows the CPU to read data from multiple memory channels at the same time, increase memory bandwidth, greatly increase data transfer rate, and improve memory performance of EDA simulation, especially when processing large-scale data.

[0009] 2. System optimization: You can optimize the virtual memory settings. Virtual memory is the memory simulated by the operating system using hard disk space. In the system properties, you can set the virtual memory to between 1.5 and 3 times the physical memory. Reasonable settings of virtual memory can effectively alleviate the problem of insufficient memory when physical memory is insufficient, ensuring the smooth progress of EDA simulation; you can also turn off unnecessary background programs and services, because many background programs and services will occupy a lot of memory resources. View and turn off unnecessary background programs such as automatic update programs and cloud storage synchronization programs through the task manager to free up memory, reduce memory usage, and provide more available memory for EDA simulation.

[0010] 3. Data management optimization: such as organizing data reasonably, classifying and organizing EDA simulation-related data reasonably, storing data of different types and stages in different folders or storage media, which is convenient for management and quick search, and reduces memory usage and performance degradation caused by data confusion; another example is timely cleaning of temporary data. During the EDA simulation process, a large number of temporary data files will be generated, and these temporary data files will occupy valuable memory space. Timely cleaning of temporary data files that are no longer needed and freeing up memory resources can effectively improve memory performance. For example, after the simulation task is completed, you can manually delete temporary data files, or set the simulation software to automatically clean up temporary data files at the end of the task.

[0011] 4. Use distributed storage and computing: For large-scale EDA simulation projects, distributed storage and computing technology can be used to store data in a dispersed manner on multiple storage nodes, and distribute computing tasks to multiple computing nodes for parallel processing through the network. This can break through the memory limitations of a single machine and improve overall memory performance and computing efficiency.

[0012] The above solutions to the insufficient memory problem have the following disadvantages: First, the hardware upgrade solution is expensive. First, the memory stick itself is very expensive. Second, the price of computers that support ultra-large-capacity memory is also extremely expensive. It is difficult for conventional servers to support hundreds or even thousands of BG of memory.

[0013] 2. Optimizing system settings such as virtual memory settings is useful for alleviating memory shortages, but the cost is high. For example, optimizing system virtual memory settings (increasing virtual memory) will make EDA software run very slowly. Generally, the more virtual memory is increased, the slower the EDA software runs. Especially in the timing analysis stage, it will be so slow that it is unacceptable.

[0014] 3. Optimizing data management is a very necessary means for EDA software to save memory, but it still cannot meet the rapidly growing demand.

[0015] 4. Distributed storage and computing solutions are expensive and complex to deploy and maintain.

[0016] In summary, how to effectively solve the problem of insufficient EDA simulation memory while ensuring low cost, not affecting the running speed of EDA software, and requiring no maintenance has become a technical problem that needs to be solved urgently. Summary of the invention

[0017] In view of this, the purpose of the present invention is to provide a data management method, device and electronic device applied to EDA software, so as to alleviate the technical problem that the prior art cannot solve the problem of insufficient EDA simulation memory under the premise of ensuring low cost, not affecting the running speed of EDA software and requiring no maintenance.

[0018] In a first aspect, an embodiment of the present invention provides a data management method applied to EDA software, which is applied to a storage system of unified memory and external storage, wherein the storage system is a component of the EDA software, and the storage system includes: physical memory, external storage, cache device, abstract address layer and interface, wherein the external storage includes at least one of the following: disk file / disk, database, network and other devices capable of carrying data, and the physical memory and the external storage correspond to a preset abstract address range, wherein each abstract address in the abstract address range corresponds to a data unit, the cache device is a high-speed storage device, and the interface includes: a read-in cache interface, a data exchange to an external interface, a cache removal interface, and a direct read-write interface, and the method includes: Determine the storage location of the target data according to the access abstract address of the target data that the EDA software needs to access, wherein the access abstract address is an abstract address corresponding to the target data in the abstract address; If the storage location is the physical memory, obtaining or writing the target data from the physical memory based on the access abstract address; If the storage location is the external memory, first access the target data to be confirmed in the cache location corresponding to the storage location from the cache device, and if the target data exists and the abstract address corresponding to the target data to be confirmed is the access abstract address, directly access the target data to be confirmed in the cache device as the target data; If it does not exist, or if the abstract address corresponding to the target data to be confirmed is not the access abstract address, the target data is accessed according to the target method specified by the EDA software, wherein the target method includes any one of the following: pre-reading the target data corresponding to the access abstract address in the external memory into the cache device based on the access abstract address, and then directly accessing the target data in the cache device, or calling the direct read-write interface based on the access abstract address to access the target data corresponding to the access abstract address in the external memory.

[0019] Further, the read-in cache interface is used to read data in a first preset abstract address range from the external memory into the cache device; The data is exchanged to the external interface, and is used to move the data in the second preset abstract address range out of the cache device to the external memory; The cache removal interface is used to discard data in a third preset abstract address range in the cache device; The direct read / write interface is used to directly read and write data in the fourth preset abstract address range of the external memory without passing through the cache device.

[0020] Furthermore, the method further comprises: Abstract memory is allocated based on the storage system, wherein the abstract memory includes: the physical memory and the external memory. An abstract memory allocator is constructed based on the storage system to allocate and manage the abstract memory through the abstract memory allocator for use by the EDA software. When the EDA software creates the abstract memory allocator, it is bound to the preset external memory. The batch management interface provided by the abstract memory allocator includes: a read-in cache management interface, a data exchange to an external management interface, a cache removal management interface, and a direct read-write management interface. The batch management interface is implemented through the interface.

[0021] Furthermore, the method further comprises: An abstract memory block of a fixed size is allocated based on the storage system, wherein an object allocator is constructed based on the storage system so as to allocate the abstract memory into an abstract memory block of a fixed size through the object allocator for use by the EDA software.

[0022] Furthermore, the method comprises: A data filter is constructed based on the storage system. After the EDA software creates the data filter, the EDA software parses the massive data and feeds the parsed massive data to the data filter. The data filter returns the abstract address of each data in the massive data and writes the parsed massive data into the external memory, so that when the EDA software accesses the data to be accessed in the parsed massive data through the returned abstract address, if the data to be accessed is not in the cache device, the data to be accessed and / or the adjacent data of the data to be accessed are read from the external memory into the cache device, so as to directly read and write the data to be accessed and / or the adjacent data of the data to be accessed in the cache device later.

[0023] Furthermore, the parsed mass data is fed to the data filter, and the data filter returns the abstract address of each data in the mass data, including: The data filter determines an abstract address range corresponding to the mass data, maps the file in the external memory used to store the parsed mass data back to the cache device, and obtains a mapped virtual address range; Calculating an abstract address offset according to a first abstract address in the abstract address range and a first virtual address in the virtual address range, so as to convert an address according to the abstract address offset; The EDA software stores the parsed massive data in the EDA memory, and feeds the parsed massive data to the data filter, and the data filter writes the parsed massive data into the file in the external memory, and obtains the offset of the parsed massive data in the file relative to the beginning of the file; Calculating the virtual address of the parsed mass data according to the offset and the first virtual address of the virtual address range; The abstract address of the parsed massive data is calculated according to the offset and the first abstract address of the abstract address range, and the abstract address is returned to the application layer function of the EDA software, so that the application layer function replaces the original address with the abstract address and releases the parsed massive data in the EDA memory.

[0024] Furthermore, the method further comprises: Data classification management is performed on the data based on the storage system, wherein a data classification manager is constructed based on the storage system so that data used in the current simulation step can be read into the cache device through the data classification manager, and data not used in the current simulation step can be transferred to the external memory.

[0025] In a second aspect, an embodiment of the present invention further provides a data management device applied to EDA software, applied to a storage system of a unified memory and external storage, the storage system being a component of the EDA software, the storage system comprising: a physical memory, an external storage, a cache device, an abstract address layer and an interface, the external storage comprising at least one of the following: a disk file / disk, a database, a network and other devices capable of carrying data, and the physical memory and the external storage correspond to a preset abstract address range, each abstract address in the abstract address range corresponds to a data unit, the cache device is a high-speed storage device, the interface comprising: a read-in cache interface, a data exchange to an external interface, a cache removal interface, a direct read-write interface, and the device comprising: a determining unit, configured to determine a storage location of the target data according to an access abstract address of the target data to be accessed by the EDA software, wherein the access abstract address is an abstract address corresponding to the target data in the abstract address; an acquisition or writing unit, configured to acquire or write the target data from the physical memory based on the access abstract address if the storage location is the physical memory; an acquisition and access unit, configured to, if the storage location is the external memory, first access the target data to be confirmed in the cache location corresponding to the storage location from the cache device, and if the target data exists and the abstract address corresponding to the target data to be confirmed is the access abstract address, directly access the target data to be confirmed in the cache device as the target data; An access unit is used to access the target data according to a target method specified by the EDA software if the target data does not exist or if the abstract address corresponding to the target data to be confirmed is not the access abstract address, wherein the target method includes any one of the following: pre-reading the target data corresponding to the access abstract address in the external memory into the cache device based on the access abstract address, and then directly accessing the target data in the cache device, or calling the direct read-write interface based on the access abstract address to access the target data corresponding to the access abstract address in the external memory.

[0026] In a third aspect, an embodiment of the present invention further provides an electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of any one of the methods described in the first aspect when executing the computer program.

[0027] In a fourth aspect, an embodiment of the present invention further provides a computer-readable storage medium, wherein the computer-readable storage medium stores machine-executable instructions. When the machine-executable instructions are called and executed by a processor, the machine-executable instructions prompt the processor to execute any method described in the first aspect above.

[0028] In an embodiment of the present invention, a data management method applied to EDA software is provided, which is applied to a storage system of unified memory and external storage. The storage system is a component of the EDA software. The storage system includes: physical memory, external storage, cache device, abstract address layer and interface. The external storage includes at least one of the following: disk file / disk, database, network and other devices that can carry data, and the physical memory and external storage correspond to a preset abstract address range. Each abstract address in the abstract address range corresponds to a data unit. The cache device is a high-speed storage device. The interface includes: a read-in cache interface, a data exchange to an external interface, a cache removal interface, and a direct read-write interface. The method includes: determining the storage location of the target data according to the access abstract address of the target data that the EDA software needs to access, wherein the access abstract address is an abstract address in the abstract address corresponding to the target data ; If the storage location is physical memory, the target data is obtained or written from the physical memory based on the access abstract address; if the storage location is external memory, the target data to be confirmed in the cache location corresponding to the storage location is first accessed from the cache device. If it exists and the abstract address corresponding to the target data to be confirmed is the access abstract address, the target data to be confirmed in the cache device is directly accessed as the target data; if it does not exist, or if the abstract address corresponding to the target data to be confirmed is not the access abstract address, the target data is accessed according to the target method specified by the EDA software, wherein the target method includes any one of the following: pre-reading the target data corresponding to the access abstract address in the external memory into the cache device based on the access abstract address, and then directly accessing the target data in the cache device, or calling the direct read-write interface based on the access abstract address to access the target data corresponding to the access abstract address in the external memory.From the above description, it can be seen that in the data management method applied to EDA software of the present invention, a storage system of unified internal memory and external memory is provided, which can store the target data being used in the work of EDA software in the physical memory / cache device, and store the temporarily unused data in the external memory, thereby reducing the large-capacity requirement for the storage space of the physical memory / cache device, that is, there is no need to increase the physical memory / cache device by upgrading the hardware. The use of external memory greatly alleviates the defect of limited storage space, and compared with the traditional hardware upgrade solution, the solution of the present invention greatly reduces the cost because the cost of external memory is very low. In addition, when implemented, the target data required for the work of the EDA software will be pre-stored in the physical memory / cache device, and the data stored in the physical memory / cache device is easy to read and write, which does not affect the running speed of the EDA software. Compared with the traditional solution, the running speed of the EDA software is faster In addition, customers of the EDA software only need to write programs based on the abstract access address of the target data to be accessed, without knowing the specific process of the storage system querying the target data, that is, without understanding any other technical details, without adding any maintenance and usage burden, and can also realize data reading and writing by calling the interface. From the above description, it can be seen that the method of the present invention effectively solves the problem of insufficient EDA simulation memory by reducing the physical memory and cache devices required for the operation of the EDA software (that is, when the EDA software in the present invention is running, the demand for physical memory and cache devices is reduced), while keeping the supply of physical memory and cache devices unchanged. It greatly improves the simulation and analysis capabilities of the computer and alleviates the technical problem that traditional technologies cannot solve the problem of insufficient EDA simulation memory under the premise of ensuring low cost, not affecting the running speed of the EDA software, and requiring no maintenance. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] In order to more clearly illustrate the specific implementation methods of the present invention or the technical solutions in the prior art, the drawings required for use in the specific implementation methods or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some implementation methods of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0030] Figure 1 A flow chart of a data management method applied to EDA software provided by an embodiment of the present invention; Figure 2 A schematic diagram of the structure of a storage system provided by an embodiment of the present invention; Figure 3 A schematic diagram of an application implemented based on a storage system provided by an embodiment of the present invention; Figure 4 A schematic diagram of a data filter provided by an embodiment of the present invention; Figure 5 A schematic diagram of a data management device applied to EDA software provided by an embodiment of the present invention; Figure 6 A schematic diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0031] The technical solution of the present invention will be clearly and completely described below in conjunction with the embodiments. Obviously, the described embodiments are part of the embodiments of the present invention, rather than all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0032] Traditional technology cannot solve the problem of insufficient EDA simulation memory while ensuring low cost, no impact on the running speed of EDA software, and no maintenance.

[0033] Based on this, the data management method applied to EDA software of the present invention provides a storage system of unified internal and external memory, which can store the target data being used in the work of EDA software in the physical memory / cache device, and store the temporarily unused data in the external memory, thereby reducing the large-capacity requirement for the storage space of the physical memory / cache device, that is, there is no need to increase the physical memory / cache device by upgrading the hardware. The use of external memory greatly alleviates the defect of limited storage space, and compared with the traditional hardware upgrade solution, the solution of the present invention greatly reduces the cost because the cost of external memory is very low. In addition, when implemented, the target data required for the work of EDA software will be pre-stored in the physical memory / cache device, and the data stored in the physical memory / cache device is easy to read and write, and does not affect the EDA software. The running speed of EDA software is faster than that of traditional solutions. In addition, customers of EDA software only need to write programs according to the abstract access address of the target data to be accessed, without knowing the specific process of the storage system querying the target data, that is, there is no need to understand any other technical details, without adding any maintenance and usage burden, and data reading and writing can be achieved by calling the interface. It can be seen from the above description that the method of the present invention effectively solves the problem of insufficient EDA simulation memory by reducing the physical memory and cache devices required for the operation of EDA software (that is, when the EDA software in the present invention is running, the demand for physical memory and cache devices is reduced), while keeping the supply of physical memory and cache devices unchanged, thereby greatly improving the simulation analysis capability of the computer.

[0034] To facilitate understanding of this embodiment, a data management method applied to EDA software disclosed in an embodiment of the present invention is first introduced in detail.

[0035] Embodiment 1: According to an embodiment of the present invention, an embodiment of a data management method applied to EDA software is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.

[0036] Figure 1 is a flow chart of a data management method applied to EDA software according to an embodiment of the present invention. Figure 1 As shown, the method comprises the following steps: Step S102, determining the storage location of the target data according to the access abstract address of the target data that the EDA software needs to access, wherein the access abstract address is an abstract address corresponding to the target data in the abstract address; In an embodiment of the present invention, the data management method applied to EDA software can be applied to a unified memory and external storage system, and the unified memory and external storage system (hereinafter referred to as storage system) is a component of EDA software, such as Figure 2 As shown, the storage system includes: physical memory, external memory, cache device, abstract address layer and interface, the external memory includes at least one of the following: disk file / disk, database, network and other devices that can carry data, and the physical memory and external memory correspond to a preset abstract address range, each abstract address in the abstract address range corresponds to a data unit (such as, the above-mentioned target data is a data unit), the cache device is a high-speed storage device, and the interface includes: read-in cache interface, data exchange to external interface, remove cache interface, direct read and write interface.

[0037] The physical memory mentioned above can also be a memory stick: the speed of the memory is very fast, but of course the price is also very high and the capacity is limited.

[0038] Disk file / disk: Disks include solid-state drives, mechanical hard drives and other storage devices. Disks have a slow reading speed, but are very cheap and have huge capacity, which can easily reach hundreds of TB.

[0039] Database: Databases include local databases, memory databases, disk databases, network databases, etc. It is a program or service that can easily and quickly query and read and write data through key-value and other methods.

[0040] Network: Devices connected to the network other than local computers can also store data. When accessing this type of data through the network, there will be greater latency, but it is convenient for sharing.

[0041] Cache device: High-speed storage devices are usually used as cache devices, for example, memory sticks (DDR4, DDR5, DDR6, SRAM, GDDR (Graphics Double Data Rate) and HBM (High Bandwidth Memory).

[0042] Abstract address: Generally, it is an integer in a certain range, such as 1000 to 200000000000. Each storage device (i.e., physical memory and external storage) has a certain range of integers, which is sufficient to represent all the data (i.e., data units) on the storage device. For example, if a disk file of 1TB is used as a storage device, continuous integers in the range of 1TB can be allocated to represent the data of each byte in the disk file. For another example, if a disk file of 1TB is used as a storage device, but we process the data in blocks, assuming that each block is 1KB in size, then we need integers in the range of 1G to represent the data of each data block (i.e., data unit) in the disk file.

[0043] Interface: An interface that directly operates the data of each module (including: physical memory, cache device and external memory). There are at least 4 interfaces: read-in cache interface, data exchange to external interface, remove cache interface, and direct read-write interface. The read-in cache interface is to read a certain segment of data into the cache device, the data exchange to external interface is to move a certain segment of data out of the cache device to the external memory, the remove cache interface is to discard a certain segment of data in the cache device, and the direct read-write interface is to directly read a certain segment of data without passing through the cache device. For example, if I need to read all the data on a certain device (external memory) into the cache device, then the address corresponding to the segment of data is passed to the read-in cache interface to realize the advance reading of the segment of data into the cache device. For example, if I need to reclaim the cache corresponding to a certain segment of data on a certain device (external memory), then the address corresponding to the segment of data is passed to the remove cache interface to realize the reclaiming of the segment of cache.

[0044] During implementation, after obtaining the access abstract address stored in the EDA software, the storage location of the target data is determined by the cache algorithm based on the access abstract address. The cache algorithm is a strategy for managing cache data in a cache device, with the goal of storing and retrieving data as efficiently as possible within a limited cache space to improve system performance; in a cache device, a cache location can correspond to one or more external storage locations; the cache location in the cache device can be determined by the abstract address of a target data (this cache location can be one or more locations, which is determined by the cache algorithm).

[0045] Step S104, if the storage location is a physical memory, then obtaining or writing the target data from the physical memory based on the access abstract address; Specifically, when the storage location is physical memory, the target data therein can be directly accessed without going through a cache device. Accessing includes both reading in data and writing out data.

[0046] Step S106, if the storage location is an external memory, first access the target data to be confirmed in the cache location corresponding to the storage location from the cache device, if it exists, and the abstract address corresponding to the target data to be confirmed is the access abstract address, then directly access the target data to be confirmed in the cache device as the target data; Step S108, if it does not exist, or if the abstract address corresponding to the target data to be confirmed is not the access abstract address, the target data is accessed according to the target method specified by the EDA software, wherein the target method includes any one of the following: pre-reading the target data corresponding to the access abstract address in the external memory into the cache device based on the access abstract address, and then directly accessing the target data in the cache device, or calling a direct read-write interface based on the access abstract address to access the target data corresponding to the access abstract address in the external memory.

[0047] It should be noted that: after the target data corresponding to the access abstract address in the external memory is read into the cache device, when the target data is used again in the future, the target data can be directly obtained from the cache device. Therefore, if the target data needs to be used multiple times in the current simulation step, it can be read into the cache device; if the target data is only used once, then the direct read-write interface can be called to access the target data corresponding to the access abstract address in the external memory (that is, the access abstract address is given to the direct read-write interface, and the interface reads and writes the target data corresponding to the access abstract address in the external memory), and no longer stores it in the cache device, reducing the use of the precious storage space of the cache device. The above two implementation methods can be implemented according to the actual needs of EDA software simulation, and the above target methods are set in the code of writing EDA software.

[0048] In addition, the memory and external memory used by the abstract address are collectively referred to as abstract memory, so the abstract memory of the present invention includes: physical memory and external memory.

[0049] In an embodiment of the present invention, a data management method applied to EDA software is provided, which is applied to a storage system of unified memory and external storage. The storage system is a component of the EDA software. The storage system includes: physical memory, external storage, cache device, abstract address layer and interface. The external storage includes at least one of the following: disk file / disk, database, network and other devices that can carry data, and the physical memory and external storage correspond to a preset abstract address range. Each abstract address in the abstract address range corresponds to a data unit. The cache device is a high-speed storage device. The interface includes: a read-in cache interface, a data exchange to an external interface, a cache removal interface, and a direct read-write interface. The method includes: determining the storage location of the target data according to the access abstract address of the target data that the EDA software needs to access, wherein the access abstract address is an abstract address in the abstract address corresponding to the target data ; If the storage location is physical memory, the target data is obtained or written from the physical memory based on the access abstract address; if the storage location is external memory, the target data to be confirmed in the cache location corresponding to the storage location is first accessed from the cache device. If it exists and the abstract address corresponding to the target data to be confirmed is the access abstract address, the target data to be confirmed in the cache device is directly accessed as the target data; if it does not exist, or if the abstract address corresponding to the target data to be confirmed is not the access abstract address, the target data is accessed according to the target method specified by the EDA software, wherein the target method includes any one of the following: pre-reading the target data corresponding to the access abstract address in the external memory into the cache device based on the access abstract address, and then directly accessing the target data in the cache device, or calling the direct read-write interface based on the access abstract address to access the target data corresponding to the access abstract address in the external memory.From the above description, it can be seen that in the data management method applied to EDA software of the present invention, a storage system of unified internal memory and external memory is provided, which can store the target data being used in the work of EDA software in the physical memory / cache device, and store the temporarily unused data in the external memory, thereby reducing the large-capacity requirement for the storage space of the physical memory / cache device, that is, there is no need to increase the physical memory / cache device by upgrading the hardware. The use of external memory greatly alleviates the defect of limited storage space, and compared with the traditional hardware upgrade solution, the solution of the present invention greatly reduces the cost because the cost of external memory is very low. In addition, when implemented, the target data required for the work of the EDA software will be pre-stored in the physical memory / cache device, and the data stored in the physical memory / cache device is easy to read and write, which does not affect the running speed of the EDA software. Compared with the traditional solution, the running speed of the EDA software is faster In addition, customers of the EDA software only need to write programs based on the abstract access address of the target data to be accessed, without knowing the specific process of the storage system querying the target data, that is, without understanding any other technical details, without adding any maintenance and usage burden, and can also realize data reading and writing by calling the interface. From the above description, it can be seen that the method of the present invention effectively solves the problem of insufficient EDA simulation memory by reducing the physical memory and cache devices required for the operation of the EDA software (that is, when the EDA software in the present invention is running, the demand for physical memory and cache devices is reduced), while keeping the supply of physical memory and cache devices unchanged. It greatly improves the simulation and analysis capabilities of the computer and alleviates the technical problem that traditional technologies cannot solve the problem of insufficient EDA simulation memory under the premise of ensuring low cost, not affecting the running speed of the EDA software, and requiring no maintenance.

[0050] The above content briefly introduces the data management method applied to EDA software of the present invention. The specific contents involved therein are described in detail below.

[0051] In an optional embodiment of the present invention, the read-in cache interface is used to read data in a first preset abstract address range in the external memory into the cache device; Data exchange to an external interface, used to move data in a second preset abstract address range out of the cache device to an external memory; A cache removal interface is used to discard data in a third preset abstract address range in the cache device; The direct read / write interface is used to directly read and write data in a fourth preset abstract address range from the external memory without passing through the cache device.

[0052] Specifically, the first preset abstract address range, the second preset abstract address range, the third preset abstract address range, and the fourth preset abstract address range are abstract address ranges stored in the EDA software, that is, related operations are performed according to the requirements of the EDA software.

[0053] In an optional embodiment of the present invention, the method further comprises: Abstract memory is allocated based on the storage system, wherein the abstract memory includes: physical memory and external memory. An abstract memory allocator is constructed based on the storage system to allocate and manage the abstract memory through the abstract memory allocator for use by EDA software. When the EDA software creates the abstract memory allocator, it is bound to the preset external memory. The batch management interface provided by the abstract memory allocator includes: read-in cache management interface, data exchange to external management interface, cache removal management interface, direct read and write management interface. The batch management interface is implemented through an interface.

[0054] Specifically, the present invention implements multiple applications based on the storage system, one of which is an abstract memory allocator, such as Figure 3 As shown, it is a functional module belonging to the upper layer of the storage system. When the EDA software creates an abstract memory allocator (that is, when the abstract memory allocator of the present invention is instantiated), it can choose to bind to a specific storage device (external memory such as a disk, file, database, etc.), and the abstract memory allocator can be used to allocate abstract memory, and the EDA software can directly use the allocated abstract memory. The abstract memory allocator provides at least 4 interfaces: a read-in cache management interface, a data exchange to an external management interface, a cache removal management interface, and a direct read and write management interface. These management interfaces are implemented through the interface provided on the far right. When data is moved out to external memory, the data does not occupy valuable memory space (i.e., the space of the cache device). When the data is in the cache device, the speed is not affected when the EDA software uses the data.

[0055] The above-mentioned abstract memory allocator can manage data in batches, which is convenient for the use of EDA software. For example, if 1 million data are all cleared from the cache device, when there is an abstract memory allocator, it is only necessary to call a cache removal management interface of the abstract memory allocator. Because the abstract memory allocator has recorded the information of the allocated abstract address (such as how much abstract memory there is, which part is occupied by which data, which is not occupied, etc.), it can call the cache removal interface according to the recorded information, and then clear the cache device. The abstract memory allocator records a large amount of information, so that the EDA software only needs to call the cache removal management interface once to perform batch processing. If there is no abstract memory allocator, the EDA software needs to call the cache removal interface 1 million times. In addition, the EDA software needs to record the abstract address of each call, that is, it needs to record the allocated abstract address, which is equivalent to letting the EDA software application layer do the related work of abstract address recording. Obviously, it is extremely inconvenient to use.

[0056] In an optional embodiment of the present invention, abstract memory blocks of fixed size are allocated based on a storage system, wherein an object allocator is constructed based on the storage system to allocate abstract memory into abstract memory blocks of fixed size for use by EDA software through the object allocator.

[0057] Specifically, the object allocator is similar to the abstract memory allocator, but allocates abstract memory blocks of a fixed size (or an integer multiple of a fixed size) each time.

[0058] In an optional embodiment of the present invention, the method further comprises the following steps: A data filter is constructed based on the storage system. After the EDA software creates the data filter, the EDA software parses the massive data and feeds the parsed massive data to the data filter. The data filter returns the abstract address of each data in the massive data and writes the parsed massive data into the external memory, so that when the EDA software accesses the data to be accessed in the parsed massive data through the returned abstract address, if the data to be accessed is not in the cache device, the data to be accessed and / or the adjacent data of the data to be accessed are read from the external memory into the cache device, so as to directly read and write the data to be accessed and / or the adjacent data of the data to be accessed in the cache device later.

[0059] The parsed massive data is fed to the data filter, and the data filter returns the abstract address of each data in the massive data, which specifically includes the following steps: (1) The data filter determines the abstract address range corresponding to the massive data, maps the file in the external memory used to store the parsed massive data back to the cache device, and obtains the mapped virtual address range; (2) calculating an abstract address offset according to the first abstract address of the abstract address range and the first virtual address of the virtual address range, so as to convert the address according to the abstract address offset; (3) The EDA software stores the parsed massive data in the EDA memory and feeds the parsed massive data to the data filter. The data filter writes the parsed massive data to a file in the external memory and obtains the offset of the parsed massive data in the file relative to the beginning of the file. (4) Calculate the virtual address of the parsed mass data based on the offset and the first virtual address of the virtual address range; (5) Calculate the abstract address of the parsed massive data according to the offset and the first abstract address of the abstract address range, and return the abstract address to the application layer function of the EDA software, so that the application layer function replaces the original address with the abstract address and releases the parsed massive data in the EDA memory.

[0060] Specifically, for the data filter, in view of the situation that EDA software only uses a small part of the massive data, if the parsed massive data is fed to the data filter in advance, the data filter will put all the parsed massive data into the external memory. When the EDA software uses a certain data (that is, the data to be accessed), the data will be moved into the cache device. At the same time, you can choose (determined when the EDA software code is written) whether to move the adjacent data of the data to be accessed (the so-called adjacent data refers to the data within the preset range of the abstract address of the data to be accessed) into the cache device. Once the data to be accessed is moved into the cache device, the performance of subsequent use will not be affected. After the program has run for a period of time, the commonly used data in the massive data (that is, the data moved into the cache device) will reside in the cache device. This tool avoids the waste caused by loading massive data into the cache device while most of it is not used.

[0061] During implementation, a certain EDA software reads in and parses a large amount of data, but does not know which data will be used later. The parsed large amount of data is fed to the data filter one by one, and the data filter returns the abstract address (actually an integer) of the parsed large amount of data. When the EDA software uses a certain data in the large amount of data through the abstract address, if it is not in the cache device, the data is read from the external memory into the cache device, and the data in the cache device is directly read and written later.

[0062] The specific implementation details are as follows: First, the EDA software creates a data filter. The data filter selects a specific range as the abstract address range. Note that it cannot overlap with other abstract address ranges, and it is recommended not to overlap with the virtual address range (the computer system's own memory address system is called a virtual address) (you can also use the virtual address directly, but the size is fixed). Select the file created on the SSD as external storage. The data filter expands the file on the SSD to the specified size (this size is enough to hold the massive data that needs to be processed, and a much larger size can be selected). Then map the file back to the cache device to get the mapped virtual address range (also an integer), and use the first abstract address of the abstract address range minus the first virtual address of the virtual address range to get an abstract address offset. The EDA software stores the parsed massive data in a specific format in the EDA memory (occupying high-speed memory space at this time). After feeding the parsed massive data to the data filter one by one, the data filter writes the parsed massive data into a file on the solid-state drive and obtains the offset of the parsed massive data in the file relative to the beginning of the file. The virtual address of the parsed massive data can be calculated by adding the offset to the first virtual address in the virtual address range, and the abstract address of the parsed massive data can be calculated by adding the offset to the first abstract address in the abstract address range. The abstract address is returned to the caller in the EDA software (i.e., the application layer function). The caller replaces the original address with the abstract address, and subsequently accesses the data through the abstract address, while releasing the parsed massive data in the EDA memory (because it has been stored in the external memory, there is no need to occupy memory space for secondary storage).

[0063] It should be noted that if a data filter is used, the data moved into the cache device is generally frequently used data, and it is often locked in the cache device, that is, it is not moved out; if it is moved out, a new file will generally be created in the disk file through the interface, and the data to be moved out will be placed in the new file, which is equivalent to saving the frequently used data together. The next time it is used, the data in the new file can be directly written to the cache device at once, so that the performance is better.

[0064] like Figure 4 As shown, the bottom row is the data blocks to be filtered in the external memory, that is, the massive data is saved in the external memory, and the middle row is the data blocks (that is, the commonly used data) read into the cache device after a period of use.

[0065] In an optional embodiment of the present invention, the method further comprises the following steps: Data classification management is performed on the data based on the storage system, wherein a data classification manager is constructed based on the storage system so that data used in the current simulation step can be read into a cache device through the data classification manager, and data not used in the current simulation step can be transferred to an external memory.

[0066] Specifically, assuming that the EDA software processes simulation steps A, B, C, D, and E in sequence, the data that occupy a large amount of memory are 1, 2, 3, 4, 5, 6, 7, 8, and 9. The big data that each simulation step depends on is shown in the following table.

[0067]

[0068] Assuming that all of these big data are managed by the storage system, then before each simulation step starts, the unused data will be transferred to the external memory, and the used data will be transferred to the cache device (which is essentially physical memory. Part of the computer's physical memory is used as the physical memory in the present invention, and part of it can be used as a cache device). In this way, there is no need to worry about all the big data being placed in the cache device, causing the cache device to be insufficient.

[0069] One implementation method is as follows: Now put these big data into files on the solid-state drive, and the unified storage framework (i.e., storage system) maps these file data to virtual memory (implemented with the help of Linux's mmap), and each file mapping obtains a virtual address space (starting address and length). Here we make the abstract address equal to the virtual address. Update the abstract address (virtual address) to the EDA software, that is, the pointer holding the original address is replaced with a new abstract address. The data transfer to the file or into the cache can be implemented by the API (mmap, madvice, msync, masync) under Linux. When implementing the traditional solution, it is necessary to move all the data of 1, 2, 3, 4, 5, 6, 7, 8, and 9 into the cache device, while in the present invention, only the data of the corresponding simulation step needs to be moved into the cache device, so the space of the cache device only needs to meet the maximum space of the data required in each simulation step, and no longer needs to meet the space of the sum of the above 1-9 data, which greatly reduces the consumption of the cache device space.

[0070] It should be noted that the method of the present invention can also realize pre-reading and pre-fetching, that is, reading the data required for the simulation step into the cache device in advance, which does not affect the running speed of the EDA simulation; it should also be noted that there is a cache algorithm in the cache device, and the cache algorithm will move data that has not been used for a long time (data that has not been used even after reaching a preset time threshold) to the external memory; of course, the data can also be moved to the external memory by calling the interface (EDA software calls the relevant interface); in addition, if the format of the external data is regular, it can be directly loaded into the storage system, managed by the storage system of the present invention, and assigned an abstract address to it. When loading, the loading external data interface is called to implement it.

[0071] In addition, it should be noted that when the present invention is implemented, the above-mentioned abstract address can also be a virtual address. In addition, the physical memory can be managed solely by the virtual memory (a concept under Linux) and used directly, and the physical memory does not use the abstract address; the abstract address can be avoided and a segment of the virtual address can be directly used to represent the external memory; part of the external memory can also be managed using the method of the present invention, and the rest of the external memory can be managed using other methods, all of which fall within the scope of protection of the present invention.

[0072] Comparison and improvement of the present invention with the prior art: Compared with databases: Databases can store data on disks or networks, but the performance is poor and the latency is large; various databases have corresponding usage methods, and cannot be read and written like virtual memory, and the usage methods are not unified. Compared with virtual memory mapping mmap in Linux: the scope of application is narrower, the data management method is single, for example, data can only be managed according to page (4k), and it is not flexible to use.

[0073] improve: 1. The use of internal and external storage is unified. Both can be used in a similar way to virtual addresses, unifying physical memory, hard disks, files, databases, and networks into one form, that is, through the use of abstract addresses, which greatly reduces the complexity of programming; 2. A simple and easy-to-use storage management API: It can manage the actual storage location of data (cache device or external memory) in a fine-grained manner; 3. Use in the recommended way (e.g., continuous data storage (i.e., related content of adjacent data), pre-reading and pre-fetching), which can significantly reduce the physical memory of EDA software with little performance loss. Most of the data can be placed in the external memory, and only the data that needs to be used is placed in the cache device (which occupies physical memory), thus reducing the physical memory usage; 4. With snapshot function: the managed data can be packaged and compressed as a whole, and then decompressed and restored the next time it is used.

[0074] The present invention has the following technical effects: 1. Since most of the data is stored in external memory, the physical memory usage of the EDA software system can be greatly reduced, so that the same size of physical memory can simulate or analyze larger chip designs; 2. Since the required data can be pre-read into the cache device in advance, the system has very little impact on the performance of the EDA software; 3. The use of abstract memory unifies external storage and internal memory, shielding the differences between various types of external storage, making the system easy to use.

[0075] The key technical points include: 1. Use abstract addresses to mask the differences in external storage (external memory) devices and use a consistent way to read and write; 2. When reading or writing certain data through an abstract address, if the data is not in the cache device, the data can be automatically read into the cache device; In addition, it has the function of directly reading and writing external memory (implemented through the interface), that is, with the help of abstract addresses, without going through the cache device, using the original reading and writing method of the external memory to read and write data; 3. It has the function of pre-reading: the pre-reading instruction is issued in advance to read the data to be read and written into the cache device. When it is needed, the data in the cache device is directly used, thereby improving performance; 4. It has the function of cache write-back: when the instruction of "moving data from the cache device to the external storage device" is issued, the data in the cache device will be migrated to the corresponding external device (external memory) according to the data or data range specified by the instruction. Specifically, if a certain data is overwritten, it will be written back to the external memory, and if it is not overwritten, it will be skipped directly; 5. It has the function of discarding specified cache data: the data on the cache device in the specified range can be directly discarded, and the cache device can be freed up for subsequent steps; 6. Data on external memory can be directly loaded into our storage system: when reading or writing certain data for the first time, the data is automatically read into the cache device and used.

[0076] Embodiment 2: An embodiment of the present invention further provides a data management device applied to EDA software. The data management device applied to EDA software is mainly used to execute the data management method applied to EDA software provided in the first embodiment of the present invention. The data management device applied to EDA software provided in the embodiment of the present invention is specifically introduced below.

[0077] Figure 5 is a schematic diagram of a data management device applied to EDA software according to an embodiment of the present invention, such as Figure 5As shown, the device mainly includes: a determination unit 10, an acquisition or writing unit 20, an acquisition and access unit 30, and an access unit 40, wherein: A determination unit, used to determine a storage location of the target data according to an access abstract address of the target data to be accessed by the EDA software, wherein the access abstract address is an abstract address corresponding to the target data in the abstract address; an acquisition or writing unit, for acquiring or writing target data from the physical memory based on the access abstract address if the storage location is the physical memory; an acquisition and access unit, configured to first access the target data to be confirmed in the cache location corresponding to the storage location from the cache device if the storage location is an external memory, and if the target data to be confirmed exists and the abstract address corresponding to the target data to be confirmed is an access abstract address, directly access the target data to be confirmed in the cache device as the target data; An access unit is used to access the target data according to a target method specified by the EDA software if the target data does not exist or the abstract address corresponding to the target data to be confirmed is not the access abstract address, wherein the target method includes any one of the following: pre-reading the target data corresponding to the access abstract address in the external memory into a cache device based on the access abstract address, and then directly accessing the target data in the cache device, or calling a direct read-write interface based on the access abstract address to access the target data corresponding to the access abstract address in the external memory.

[0078] In an embodiment of the present invention, a data management device applied to EDA software is provided, which is applied to a storage system of unified memory and external memory. The storage system is a component of the EDA software. The storage system includes: physical memory, external memory, cache device, abstract address layer and interface. The external memory includes at least one of the following: disk file / disk, database, network and other devices that can carry data, and the physical memory and external memory correspond to a preset abstract address range. Each abstract address in the abstract address range corresponds to a data unit. The cache device is a high-speed storage device. The interface includes: a read-in cache interface, a data exchange to an external interface, a cache removal interface, and a direct read-write interface. The method includes: determining the storage location of the target data according to the access abstract address of the target data that the EDA software needs to access, wherein the access abstract address is an abstract address in the abstract address corresponding to the target data ; If the storage location is physical memory, the target data is obtained or written from the physical memory based on the access abstract address; if the storage location is external memory, the target data to be confirmed in the cache location corresponding to the storage location is first accessed from the cache device. If it exists and the abstract address corresponding to the target data to be confirmed is the access abstract address, the target data to be confirmed in the cache device is directly accessed as the target data; if it does not exist, or if the abstract address corresponding to the target data to be confirmed is not the access abstract address, the target data is accessed according to the target method specified by the EDA software, wherein the target method includes any one of the following: pre-reading the target data corresponding to the access abstract address in the external memory into the cache device based on the access abstract address, and then directly accessing the target data in the cache device, or calling the direct read-write interface based on the access abstract address to access the target data corresponding to the access abstract address in the external memory.From the above description, it can be seen that in the data management device applied to EDA software of the present invention, a storage system of unified internal memory and external memory is provided, which can store the target data being used in the work of EDA software in the physical memory / cache device, and store the temporarily unused data in the external memory, thereby reducing the large-capacity requirement for the storage space of the physical memory / cache device, that is, there is no need to increase the physical memory / cache device by upgrading the hardware. The use of external memory greatly alleviates the defect of limited storage space, and compared with the traditional hardware upgrade solution, the solution of the present invention greatly reduces the cost because the cost of external memory is very low. In addition, when implemented, the target data required for the work of the EDA software will be pre-stored in the physical memory / cache device, and the data stored in the physical memory / cache device is easy to read and write, which does not affect the running speed of the EDA software. Compared with the traditional solution, the running speed of the EDA software is faster In addition, customers of the EDA software only need to write programs based on the abstract access address of the target data to be accessed, without knowing the specific process of the storage system querying the target data, that is, without understanding any other technical details, without adding any maintenance and usage burden, and can also realize data reading and writing by calling the interface. From the above description, it can be seen that the method of the present invention effectively solves the problem of insufficient EDA simulation memory by reducing the physical memory and cache devices required for the operation of the EDA software (that is, when the EDA software in the present invention is running, the demand for physical memory and cache devices is reduced), while keeping the supply of physical memory and cache devices unchanged. It greatly improves the simulation and analysis capabilities of the computer and alleviates the technical problem that traditional technologies cannot solve the problem of insufficient EDA simulation memory under the premise of ensuring low cost, not affecting the running speed of the EDA software, and requiring no maintenance.

[0079] Optionally, a read-in cache interface is used to read data in a first preset abstract address range from external memory into a cache device; a data exchange to external interface is used to move data in a second preset abstract address range out of the cache device to external memory; a remove-cache interface is used to discard data in a third preset abstract address range in the cache device; and a direct read-write interface is used to directly read and write data in a fourth preset abstract address range of external memory without passing through the cache device.

[0080] Optionally, the device is also used to: allocate abstract memory based on the storage system, wherein the abstract memory includes: physical memory and external memory, and build an abstract memory allocator based on the storage system to allocate and manage the abstract memory through the abstract memory allocator for use by EDA software. When the EDA software creates the abstract memory allocator, it is bound to the preset external memory. The batch management interface provided by the abstract memory allocator includes: read-in cache management interface, data exchange to external management interface, remove cache management interface, direct read and write management interface, and the batch management interface is implemented through an interface.

[0081] Optionally, the device is also used to: allocate abstract memory blocks of fixed size based on the storage system, wherein an object allocator is constructed based on the storage system to allocate abstract memory into abstract memory blocks of fixed size for use by EDA software through the object allocator.

[0082] Optionally, the device is also used to: build a data filter based on the storage system, after the EDA software creates the data filter, the EDA software parses the massive data and feeds the parsed massive data to the data filter, the data filter returns the abstract address of each data in the massive data, and writes the parsed massive data into the external memory, so that when the EDA software accesses the data to be accessed in the parsed massive data through the returned abstract address, if the data to be accessed is not in the cache device, the data to be accessed and / or the adjacent data of the data to be accessed are read from the external memory into the cache device, so as to subsequently directly read and write the data to be accessed and / or the adjacent data of the data to be accessed in the cache device.

[0083] Optionally, the device is also used for: the data filter determines the abstract address range corresponding to the massive data, maps the file in the external memory used to store the parsed massive data back to the cache device, and obtains the mapped virtual address range; calculates the abstract address offset according to the first abstract address of the abstract address range and the first virtual address of the virtual address range, so as to convert the address according to the abstract address offset; the EDA software stores the parsed massive data in the EDA memory, and feeds the parsed massive data to the data filter, the data filter writes the parsed massive data to the file in the external memory, and obtains the offset of the parsed massive data in the file relative to the beginning of the file; calculates the virtual address of the parsed massive data according to the offset and the first virtual address of the virtual address range; calculates the abstract address of the parsed massive data according to the offset and the first abstract address of the abstract address range, and returns the abstract address to the application layer function of the EDA software, so that the application layer function replaces the original address with the abstract address and releases the parsed massive data in the EDA memory.

[0084] Optionally, the device is also used to: perform data classification management on data based on the storage system, wherein a data classification manager is constructed based on the storage system to read data used in the current simulation step into a cache device through the data classification manager, and transfer data not used in the current simulation step to an external memory.

[0085] The device provided in the embodiment of the present invention has the same implementation principle and technical effects as those of the aforementioned method embodiment. For the sake of brief description, for matters not mentioned in the device embodiment, reference may be made to the corresponding contents in the aforementioned method embodiment.

[0086] like Figure 6As shown, an electronic device 600 provided in an embodiment of the present application includes: a processor 601, a memory 602 and a bus, wherein the memory 602 stores machine-readable instructions executable by the processor 601. When the electronic device is running, the processor 601 communicates with the memory 602 through the bus, and the processor 601 executes the machine-readable instructions to perform the steps of the data management method applied to EDA software as described above.

[0087] Specifically, the above-mentioned memory 602 and processor 601 can be general-purpose memories and processors, which are not specifically limited here. When the processor 601 runs the computer program stored in the memory 602, it can execute the above-mentioned data management method applied to EDA software.

[0088] The processor 601 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the processor 601. The above processor 601 can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor for execution, or a combination of hardware and software modules in the decoding processor for execution. The software module may be located in a storage medium mature in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory 602, and the processor 601 reads the information in the memory 602 and completes the steps of the above method in combination with its hardware.

[0089] Corresponding to the above-mentioned data management method applied to EDA software, an embodiment of the present application also provides a computer-readable storage medium, which stores machine-executable instructions. When the computer-executable instructions are called and executed by a processor, the computer-executable instructions prompt the processor to execute the steps of the above-mentioned data management method applied to EDA software.

[0090] The data management device for EDA software provided in the embodiment of the present application can be specific hardware on the device or software or firmware installed on the device. The device provided in the embodiment of the present application has the same implementation principle and technical effects as the aforementioned method embodiment. For the sake of brief description, the parts not mentioned in the device embodiment can refer to the corresponding contents in the aforementioned method embodiment. Those skilled in the art can clearly understand that for the convenience and simplicity of description, the specific working processes of the systems, devices and units described above can all refer to the corresponding processes in the aforementioned method embodiment, and will not be repeated here.

[0091] In the embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some communication interfaces, and the indirect coupling or communication connection of the devices or units can be electrical, mechanical or other forms.

[0092] For another example, the flowchart and block diagram in the accompanying drawings show the possible architecture, function and operation of the device, method and computer program product according to multiple embodiments of the present application. In this regard, each box in the flowchart or block diagram can represent a module, a program segment or a part of the code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or the flowchart, and the combination of the boxes in the block diagram and / or the flowchart can be implemented with a dedicated hardware-based system that performs a specified function or action, or can be implemented with a combination of dedicated hardware and computer instructions.

[0093] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0094] In addition, each functional unit in the embodiments provided in the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0095] If the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application can be essentially or partly embodied in the form of a software product that contributes to the prior art. The computer software product is stored in a storage medium, including several instructions for an electronic device (which can be a personal computer, server, or network device, etc.) to perform all or part of the steps of the data management method applied to EDA software described in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (Read-Only Memory, referred to as ROM), random access memory (Random Access Memory, referred to as RAM), disk or optical disk and other media that can store program code.

[0096] It should be noted that similar numbers and letters represent similar items in the following figures. Therefore, once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures. In addition, the terms "first", "second", "third", etc. are only used to distinguish the description and are not to be understood as indicating or implying relative importance.

[0097] Finally, it should be noted that the above-described embodiments are only specific implementation methods of the present application, which are used to illustrate the technical solution of the present application, rather than to limit it. The protection scope of the present application is not limited thereto. Although the present application is described in detail with reference to the aforementioned embodiments, ordinary technicians in the field should understand that any technician familiar with the technical field can still modify the technical solution recorded in the aforementioned embodiments within the technical scope disclosed in the present application, or can easily think of changes, or make equivalent replacements for some of the technical features therein; and these modifications, changes or replacements do not make the essence of the corresponding technical solution deviate from the scope of the technical solution of the embodiment of the present application. They should all be included in the protection scope of the present application. Therefore, the protection scope of the present application shall be based on the protection scope of the claims.

Claims

1. A data management method applied to EDA software, characterized in that: A storage system applied to unified memory and external storage, the storage system is a component of EDA software, the storage system includes: physical memory, external storage, cache device, abstract address layer and interface, the external storage includes at least one of the following: disk file / disk, database, network and other devices capable of carrying data, and the physical memory and the external storage correspond to a preset abstract address range, each abstract address in the abstract address range corresponds to a data unit, the cache device is a high-speed storage device, the interface includes: read-in cache interface, data exchange to external interface, remove cache interface, direct read and write interface, the method includes: Determine the storage location of the target data according to the access abstract address of the target data that the EDA software needs to access, wherein the access abstract address is an abstract address corresponding to the target data in the abstract address; If the storage location is the physical memory, obtaining or writing the target data from the physical memory based on the access abstract address; If the storage location is the external memory, first access the target data to be confirmed in the cache location corresponding to the storage location from the cache device, and if the target data exists and the abstract address corresponding to the target data to be confirmed is the access abstract address, directly access the target data to be confirmed in the cache device as the target data; If it does not exist, or if the abstract address corresponding to the target data to be confirmed is not the access abstract address, the target data is accessed according to the target method specified by the EDA software, wherein the target method includes any one of the following: pre-reading the target data corresponding to the access abstract address in the external memory into the cache device based on the access abstract address, and then directly accessing the target data in the cache device, or calling the direct read-write interface based on the access abstract address to access the target data corresponding to the access abstract address in the external memory.

2. The method according to claim 1, characterized in that The read-in cache interface is used to read data in a first preset abstract address range from the external memory into the cache device; The data is exchanged to the external interface, and is used to move the data in the second preset abstract address range out of the cache device to the external memory; The cache removal interface is used to discard data in a third preset abstract address range in the cache device; The direct read / write interface is used to directly read and write data in the fourth preset abstract address range of the external memory without passing through the cache device.

3. The method according to claim 1, characterized in that The method further comprises: Abstract memory is allocated based on the storage system, wherein the abstract memory includes: the physical memory and the external memory. An abstract memory allocator is constructed based on the storage system to allocate and manage the abstract memory through the abstract memory allocator for use by the EDA software. When the EDA software creates the abstract memory allocator, it is bound to the preset external memory. The batch management interface provided by the abstract memory allocator includes: a read-in cache management interface, a data exchange to an external management interface, a cache removal management interface, and a direct read and write management interface. The batch management interface is implemented through the interface.

4. The method according to claim 1, characterized in that The method further comprises: An abstract memory block of a fixed size is allocated based on the storage system, wherein an object allocator is constructed based on the storage system so as to allocate the abstract memory into an abstract memory block of a fixed size through the object allocator for use by the EDA software.

5. The method according to claim 1, characterized in that The method comprises: A data filter is constructed based on the storage system. After the EDA software creates the data filter, the EDA software parses the massive data and feeds the parsed massive data to the data filter. The data filter returns the abstract address of each data in the massive data and writes the parsed massive data into the external memory, so that when the EDA software accesses the data to be accessed in the parsed massive data through the returned abstract address, if the data to be accessed is not in the cache device, the data to be accessed and / or the adjacent data of the data to be accessed are read from the external memory into the cache device, so as to directly read and write the data to be accessed and / or the adjacent data of the data to be accessed in the cache device later.

6. The method according to claim 5, characterized in that The parsed mass data is fed to the data filter, and the data filter returns the abstract address of each data in the mass data, including: The data filter determines an abstract address range corresponding to the mass data, maps the file in the external memory used to store the parsed mass data back to the cache device, and obtains a mapped virtual address range; Calculating an abstract address offset according to a first abstract address in the abstract address range and a first virtual address in the virtual address range, so as to convert an address according to the abstract address offset; The EDA software stores the parsed massive data in the EDA memory, and feeds the parsed massive data to the data filter, and the data filter writes the parsed massive data into the file in the external memory, and obtains the offset of the parsed massive data in the file relative to the beginning of the file; Calculating the virtual address of the parsed mass data according to the offset and the first virtual address of the virtual address range; The abstract address of the parsed massive data is calculated according to the offset and the first abstract address of the abstract address range, and the abstract address is returned to the application layer function of the EDA software, so that the application layer function replaces the original address with the abstract address and releases the parsed massive data in the EDA memory.

7. The method according to claim 1, characterized in that The method further comprises: Data classification management is performed on the data based on the storage system, wherein a data classification manager is constructed based on the storage system so that data used in the current simulation step can be read into the cache device through the data classification manager, and data not used in the current simulation step can be transferred to the external memory.

8. A data management device applied to EDA software, characterized in that: A storage system applied to unified memory and external storage, the storage system is a component of EDA software, the storage system includes: physical memory, external storage, cache device, abstract address layer and interface, the external storage includes at least one of the following: disk file / disk, database, network and other devices capable of carrying data, and the physical memory and the external storage correspond to a preset abstract address range, each abstract address in the abstract address range corresponds to a data unit, the cache device is a high-speed storage device, the interface includes: read-in cache interface, data exchange to external interface, remove cache interface, direct read and write interface, the device includes: a determining unit, configured to determine a storage location of the target data according to an access abstract address of the target data to be accessed by the EDA software, wherein the access abstract address is an abstract address corresponding to the target data in the abstract address; an acquisition or writing unit, configured to acquire or write the target data from the physical memory based on the access abstract address if the storage location is the physical memory; an acquisition and access unit, configured to, if the storage location is the external memory, first access the target data to be confirmed in the cache location corresponding to the storage location from the cache device, and if the target data exists and the abstract address corresponding to the target data to be confirmed is the access abstract address, directly access the target data to be confirmed in the cache device as the target data; An access unit is used to access the target data according to a target method specified by the EDA software if the target data does not exist or if the abstract address corresponding to the target data to be confirmed is not the access abstract address, wherein the target method includes any one of the following: pre-reading the target data corresponding to the access abstract address in the external memory into the cache device based on the access abstract address, and then directly accessing the target data in the cache device, or calling the direct read-write interface based on the access abstract address to access the target data corresponding to the access abstract address in the external memory.

9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores machine-executable instructions. When the machine-executable instructions are called and executed by a processor, the machine-executable instructions prompt the processor to execute the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Method for operating storage device and method for operating data processing system having same

    CN107632946A

  • Vehicle software upgrading method and device, equipment and medium

    CN118778990A

  • Memory resource access method and device, address translation method and device, equipment and medium

    CN119512719A

  • Game machine

    JP2000070466A

  • Method, apparatus, system, and storage medium for performing EDA task

    US20230153158A1