CN113986145B - 一种适用于大规模集成电路后端设计的内存管理方法 - Google Patents

一种适用于大规模集成电路后端设计的内存管理方法 Download PDF

Info

Publication number
CN113986145B
CN113986145B CN202111585651.8A CN202111585651A CN113986145B CN 113986145 B CN113986145 B CN 113986145B CN 202111585651 A CN202111585651 A CN 202111585651A CN 113986145 B CN113986145 B CN 113986145B
Authority
CN
China
Prior art keywords
memory
design
data
chunk
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111585651.8A
Other languages
English (en)
Other versions
CN113986145A (zh
Inventor
陆昆
陈刚
谭小慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Integrated Circuit Design Service Industry Innovation Center Co ltd
Original Assignee
Nanjing Integrated Circuit Design Service Industry Innovation Center Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Integrated Circuit Design Service Industry Innovation Center Co ltd filed Critical Nanjing Integrated Circuit Design Service Industry Innovation Center Co ltd
Priority to CN202111585651.8A priority Critical patent/CN113986145B/zh
Publication of CN113986145A publication Critical patent/CN113986145A/zh
Application granted granted Critical
Publication of CN113986145B publication Critical patent/CN113986145B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种适用于大规模集成电路后端设计的内存管理方法,包括以下步骤:接收用户的内存申请,并确认为存盘申请数据内存;根据数据类型,在内存空间中创建Block块;创建数组和对象;创建Chunk块;进行集成电路设计的数据建模;将设计数据以二进制形式持久化存储到磁盘、载入到内存;当所述内存申请为临时申请数据内存,将临时数据在堆空间进行分配。本发明的适用于大规模集成电路后端设计的内存管理方法,在满足继承电路设计的数据建模的基础上,通过虚拟内存技术,突破物理内存的容量限制;又通过内存二进制存储技术,以及脏页标记技术,达到增量快照保存,按需保存与加载,实现内存的高效灵活加载与存储。

Description

一种适用于大规模集成电路后端设计的内存管理方法
技术领域
本发明涉及电子设计自动化(Electronic Design Automation,EDA)工具技术领域,具体来说,涉及一种适用于大规模集成电路后端设计的内存管理方法。
背景技术
在集成电路芯片特征尺寸不断变小的今天,集成电路后端自动化设计面临巨大的挑战,主要表现为:随着特征尺寸逐渐变小,目前先进工艺已达到3nm,接近硅材料物理极限,单位面积的电路规模需求依旧按照摩尔定律增加;随着芯片设计的系统复杂性增强,设计的芯片面积当前也对应增加,进一步加大了集成电路规模;先进工艺对EDA工具要求更加精细,需增加对应的数据结构,进一步增加EDA工具的数据规模。
内存管理方法属于EDA工具数据库中核心的管理模块之一,其直接影响EDA工具运行的高效性、准确性与稳定性,属于EDA工具底层核心模块之一。当前先进集成电路设计均达到百亿晶体管量级,数据模型的复杂性增加,对内存管理的要求提出很大的挑战。目前传统的内存管理通过序列化与反序列实现输入与输出,这种方式在巨大的数据量面前,效率并不高,使得在集成电路设计过程大量时间消耗在设计文件的读入与写出上。同时若都加载到物理内存中,以当前计算机实际物理内存空间大小,很难去承载集成电路设计全量数据。如何设计一个满足当前海量数据集成电路设计空间要求以及高效读写效率,稳定内存管理系统,在EDA工具软件设计与实现中,被认为是极具挑战的问题之一。
在过去的几十年中,传统的计算机内存管理技术,例如内存池(memory pool)技术或传统的TCmalloc技术,已被广泛应用于EDA工具中,成为在领域中传统的内存管理方法。目前国外EDA软件厂家均在传统技术的基础上,实现软件的内存申请释放,对于内存中的数据,以序列化与反序列化的方式与磁盘进行交互,最终通过磁盘文件数据来进行设计的传输。同时随着当前云服务(cloud)的兴起,EDA工具也慢慢开始上云的进程,内存管理的架构也面临着适应分布式,云端化的挑战。
在目前传统的内存管理方法中,由于数据的序列化和反序列需要遍历整个集成电路物理实现数据库,是一种相对低效的持久化方式,对于使用方来说加载耗时过长。同时按照内存池技术对内存进行的回收与管理,对当前分布式的需求并不友好。另外当一个集成电路设计数据达到Tib量级时,当前计算机物理内存容量难以支持全量加载。
考虑到当前传统的计算机内存管理技术并不能完美适配超大规模集成电路全量数据要求,且对于海量数据序列化反序列化耗时较长,且对于分布式数据库并不友好。针对当前的超大规模集成电路设计要求,EDA软件工具需要设计一种新型内存管理方法以适配。当前脱离传统技术适用于EDA工具领域的高效的内存管理方法在当前仍处于探索阶段。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种适用于大规模集成电路后端设计的内存管理方法,基于虚拟内存技术与内存二进制存储技术,突破内存数据加载的容量限制,实现数据的高速加载与存储,同时通过脏页标记技术设计的增量快照保存。
为实现上述目的,本发明提供的适用于大规模集成电路后端设计的内存管理方法,包括以下步骤:
接收用户的内存申请,并确认为存盘申请数据内存;
在内存空间中创建Block块;
创建数组和对象;
创建Chunk块;
进行集成电路设计的数据建模;
将设计数据以二进制形式持久化存储到磁盘、载入到内存;
当所述内存申请为临时申请数据内存,将临时数据在堆空间进行分配。
进一步地,所述存盘申请数据内存,为数据库向内存申请的数据。
进一步地,所述在内存空间中创建Block块的步骤,还包括,
对每种type的数据类型均会创建对应type的block块,每个design块,包含多个block;
每个block对象维护其type_,以及一个vector<Chunk*>关联所有的数据。
进一步地,所述创建Chunk块的步骤,还包括,
每一个chunk块对应内存空间的一段地址,大小为1M或128M;
将Chunk块在内存地址中按size对齐;
在chunk块中,包括用于记录chunk块信息的header。
进一步地,所述chunk块信息的header,包括,真实数据的start_addr_、chunk块在block块中的对应的chunk_id_、block_关联其从属的block块,以及为持久化增量保存支持所标记脏页的bitmap。
进一步地,所述进行集成电路设计的数据建模的步骤,还包括,以objectid实现索引,进行集成电路设计的数据建模;对象指针object*与objectid的相互转换方法如下:
objectid与object*的转换:
数据模型中存储的其它object均为ID表示,ID统一为32位,表示该object在其对应type block中的位移;
在计算objectid时,获取object所在chunk块的位置,再加上其偏移,增加一个design指针的入参;
object* 到objectid的转换:
根据地址判断其所在chunk块的类型;
通过掩码得到其所在chunk块;
通过chunk块,得到前面所有满chunk块的id加上其在chunk块中offset得到objectid。
进一步地,所述将设计数据以二进制形式持久化存储、载入到内存的步骤,还包括,auto save调用持久化策略:
对于update_record左边的bitmap位,搜集page id,调用update;
对于update_record右边的bitmap位,调用append;
存储完成后,update_record移动到末尾,bitmap重置。
进一步地,所述将设计数据以二进制形式持久化存储、载入到内存的步骤,还包括,
以全量设计或单个设计对象为单位存储与载入;
存储设计数据时,向持久化模块传入Design *:根据地址获取该设计的全局ID,存入元设计;
将设计以二进制的形式与BlocksMetaprotobuf序列化形式一起存储至元数据文件;
载入设计数据时,先从元设计中获取全局ID,找到ID对应的地址,将磁盘上的设计加载至对应地址。
为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的适用于大规模集成电路后端设计的内存管理方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的适用于大规模集成电路后端设计的内存管理方法的步骤。
本发明的适用于大规模集成电路后端设计的内存管理方法,与现有技术相比较,具有以下有益效果:
在满足继承电路设计的数据建模的基础上,通过虚拟内存技术,突破物理内存的容量限制;又通过内存二进制存储技术,以及脏页标记技术,达到增量快照保存,按需保存与加载,实现内存的高效灵活加载与存储。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的适用于大规模集成电路后端设计的内存管理方法流程图;
图2为根据本发明的一个集成电路设计的内存分布形态示意图;
图3为根据本发明的持久化存储流程图;
图4为根据本发明的chunk块对齐示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为根据本发明的适用于大规模集成电路后端设计的内存管理方法流程图,下面将参考图1,适用于大规模集成电路后端设计的内存管理方法进行详细描述。
首先,在步骤101,接收用户的内存请求并进行类型判断。
本发明实施例中,内存管理模块接收用户的内存申请,判断内存申请的类型是存盘申请数据内存还是临时申请数据内存。
本发明实施例中,内存管理模块为二种不同数据类型进行内存(Memory)的管理:一种为系统临时申请数据内存,该类数据没有持久化存盘需求,一般为临时构建,数据生命周期主要在程序运行之间,其主要在堆内申请,一般由new(),malloc()等在堆的空间进行分配;另一种为需要有持久化需求的database向内存申请的数据,该类数据存储在mmap申请的chunk空间中。
在步骤102,判断内存申请为存盘申请数据内存,则进入下一步骤,否则转到步骤108。
在步骤103,在内存空间(Memory Space)中创建Block块。
本发明实施例中,在开始集成电路设计(design),EDA工具初始化创建design块时,对每种type的数据类型均会创建对应type的block块,对于一个type,有且仅有一个block,如图2所示的inst Block、layer Block、shape Block等,一个design块包含多个block,每个block对象会维护其type_,以及一个vector<Chunk*>关联所有的数据,这个vector的index等同于Chunk中的chunk_id_。为了不浪费虚拟空间,创建block块时并不会创建chunk块,当真实读入有对应数据时,才会使用mmap虚拟内存映射创建chunk块。
在步骤104,在Block块中,按照用户的创立数组(Array)和对象(object)内存申请,对应分配虚拟地址空间,引发系统缺页,分配实际对应物理内存空间。
在步骤105,根据数组和对象,在Block块创建chunk块。
本发明实施例中,全局维护一个chunk的freelist,用于chunk 虚拟地址空间的复用。
本发明实施例中,将内存的地址空间一份为二,128M的chunk块从低地址往高地址分配,1M的chunk块从划分线高地址往低地址分配,使创建的chunk块之间进行对齐,避免手动划分内存空间。基于性能考虑,本发明方法对空间划分的设计,若不同大小的chunk混存,将导致chunk无法对齐到特定位置,chunk free list维护成本非常高。
width记录了该类型的位宽,last_chunk_num_记录vector中最后一个chunk块上实际的元素数量,默认其他chunk块都是满载。
本发明实施例中,每一个chunk块都对应内存空间的一段地址,其大小固定为1M或者128M,内存地址的排布上按size对齐;chunk块中包括有header,用于记录chunk块对应的信息(info);header信息,包括,真实数据的start_addr_、该chunk块在block块中的对应的chunk_id_、block_关联其从属的block,以及为持久化增量保存支持所标记脏页的bitmap,如图4所示。为了节省内存使用,不同大小的chunk块的header info不一样,其分为两个类,均继承基类chunk块。
本发明实施例中,持久化加载(load)后,block_与start_offset_地址会改变,因此需要在加载后进行更新。
在步骤106,进行集成电路设计的数据建模。
本发明实施例中,以objectid来实现索引,进行集成电路设计的数据建模。对象指针object*与objectid的相互转换方法如下:
objectid与object*的转换:本发明实施例中,数据模型中所存储的其他object均为ID表示,ID统一为32位,其表示该Object在其对应type block中的位移。当计算ObjectId,由于chunk与chunk之间地址不连续,首先得获取object所在chunk的位置,再加上其偏移。由于memory 中design与对应的block vector有记录关系,此时不需要memorypool的64位ID。但是引入了id不唯一的问题,因此从objectId要获取对应的object指针,需要增加一个design指针的入参。
object* 到objectid的转换:
根据地址判断其所在chunk块的类型;
通过掩码得到其所在chunk块;
通过chunk块,得到前面所有满chunk块的id加上其在chunk块中offset得到objectid。
在步骤107,将设计数据以二进制形式持久化存储和载入到内存。
本发明实施例中,为了满足对chunk管理脏页信息,采用了auto save调用持久化策略:
chunk块信息中的bitmap每一比特位对应真实物理页的修改状态;
对于update_record左边的bitmap位,搜集page id,调用update。
对于update_record右边的bitmap位,调用append。
存储完成后,update_record移动到末尾,bitmap重置。
这部分内存会提供一个被修改的 std::set<MemChuck*>,持久化去解析对应chunk块的pagebitmap_状态做增量修改。
本发明实施例中,设计数据为直接二进制磁盘存储,具体存储与载入流程方法如下:
以全量设计或单个设计对象(DesignObject实例本身)为单位存储与载入(Save/Load),不同于普通Block块以Chunk块为单位Save/Load。
存储设计数据(Save Design)时,向持久化模块传入Design *:根据地址(Addr)获取该Design在持久化模块中的全局ID,存入元设计(Design Meta),并将Design以二进制的形式与BlocksMeta(ObjectFreelist、FreeStack等)protobuf序列化形式一同存储至元数据(DataMeta)文件。
本发明实施例中,BlocksMeta为Block自身管理所携带的元数据信息,其内容包括:type信息、数据对象删除后的可重用地址列表(freelist),所拥有的chunk列表以及对于挂载的design信息,其通过序列化存储。
如有多个参考设计(Refrence Design)进行同时存储(Combine存储),Design的存储逻辑与BlocksMeta一致。
载入设计数据(Load Design)时,先从Design Meta中获取全局ID,找到ID对应的地址,将磁盘上的Design加载至对应地址。
在步骤108,将临时数据在堆空间进行分配。
本发明实施例中,对于临时申请数据内存,该类数据没有持久化存盘需求,一般为临时构建,数据生命周期主要在程序运行之间,其主要在堆内申请,由new(),malloc()等在堆空间进行分配。
本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的适用于大规模集成电路后端设计的内存管理方法的步骤。
本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的适用于大规模集成电路后端设计的内存管理方法的步骤。
本发明的适用于大规模集成电路后端设计的内存管理方法,采用虚拟内存技术,内存二进制存储技术以及脏页标记技术,统一实现了高效的适用于大规模集成电路后端设计的内存管理方法,能够快速的进行数据的存储以及加载,利用内存二进制直接存储结合脏页标记技术,能够自然的实现脏页保存技术以适应未来分布式云化的技术发展趋势;同时利用linux系统虚拟内存文件隐射的Swap机制,可以把冷数据放置在硬盘以突破实际物理内存容量的限制。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种适用于大规模集成电路后端设计的内存管理方法,包括以下步骤:
接收用户的内存申请,并确认为存盘申请数据内存;
根据数据类型,在内存空间中创建Block块;
创建数组和对象;
创建Chunk块;
进行集成电路设计的数据建模;
将设计数据以二进制形式持久化存储到磁盘、载入到内存;
当所述内存申请为临时申请数据内存,将临时数据在堆空间进行分配;
所述进行集成电路设计的数据建模的步骤,还包括,以objectid实现索引,进行集成电路设计的数据建模;对象指针object*与objectid的相互转换方法如下:
objectid与object*的转换:数据模型中存储的其它object均为ID表示,ID统一为32位,表示该object在其对应type block中的位移;
在计算objectid时,获取object所在chunk块的位置,再加上其偏移,增加一个design指针的入参;
object* 到objectid的转换:
根据地址判断其所在chunk块的类型;
通过掩码得到其所在chunk块;
通过chunk块,得到前面所有满chunk块的id加上其在chunk块中offset得到objectid。
2.根据权利要求1所述的适用于大规模集成电路后端设计的内存管理方法,其特征在于,
所述存盘申请数据内存,为数据库向内存申请的数据。
3.根据权利要求1所述的适用于大规模集成电路后端设计的内存管理方法,其特征在于,
所述根据数据类型,在内存空间中创建Block块的步骤,还包括,
对每种type的数据类型均会创建对应type的block块,每个design块,包含多个block,对于一个type,有且仅有一个block;
每个block对象维护其type_,以及一个vector<Chunk*>关联所有的数据。
4.根据权利要求1所述的适用于大规模集成电路后端设计的内存管理方法,其特征在于,
所述创建Chunk块的步骤,还包括,
每一个chunk块对应内存空间的一段地址,大小为1M或128M;
将Chunk块在内存地址中按size对齐;
在chunk块中,包括用于记录chunk块信息的header。
5.根据权利要求4所述的适用于大规模集成电路后端设计的内存管理方法,其特征在于,所述chunk块信息的header,包括,真实数据的start_addr_、chunk块在block块中的对应的chunk_id_、block_关联其从属的block块,以及为持久化增量保存支持所标记脏页的bitmap。
6.根据权利要求1所述的适用于大规模集成电路后端设计的内存管理方法,其特征在于,所述将设计数据以二进制形式持久化存储、载入到内存的步骤,还包括,auto save调用持久化策略:
chunk块信息中的bitmap每一比特位对应真实物理页的修改状态;
对于update_record左边的bitmap位,搜集page id,调用update;
对于update_record右边的bitmap位,调用append;
存储完成后,update_record移动到末尾,bitmap重置。
7.根据权利要求1所述的适用于大规模集成电路后端设计的内存管理方法,其特征在于,所述将设计数据以二进制形式持久化存储、载入到内存的步骤,还包括,
以全量设计或单个设计对象为单位存储与载入;
存储设计数据时,向持久化模块传入Design *:根据地址获取该设计的全局ID,存入元设计;
将设计以二进制的形式与BlocksMetaprotobuf序列化形式一起存储至元数据文件;
载入设计数据时,先从元设计中获取全局ID,找到ID对应的地址,将磁盘上的设计加载至对应地址。
8.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行权利要求1至7任一项所述的适用于大规模集成电路后端设计的内存管理方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序运行时执行权利要求1至7任一项所述的适用于大规模集成电路后端设计的内存管理方法的步骤。
CN202111585651.8A 2021-12-23 2021-12-23 一种适用于大规模集成电路后端设计的内存管理方法 Active CN113986145B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111585651.8A CN113986145B (zh) 2021-12-23 2021-12-23 一种适用于大规模集成电路后端设计的内存管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111585651.8A CN113986145B (zh) 2021-12-23 2021-12-23 一种适用于大规模集成电路后端设计的内存管理方法

Publications (2)

Publication Number Publication Date
CN113986145A CN113986145A (zh) 2022-01-28
CN113986145B true CN113986145B (zh) 2022-04-01

Family

ID=79734098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111585651.8A Active CN113986145B (zh) 2021-12-23 2021-12-23 一种适用于大规模集成电路后端设计的内存管理方法

Country Status (1)

Country Link
CN (1) CN113986145B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521576B (zh) * 2023-05-11 2024-03-08 上海合见工业软件集团有限公司 Eda软件数据处理系统
CN117555674B (zh) * 2023-10-26 2024-05-14 南京集成电路设计服务产业创新中心有限公司 一种高效多线程批处理块内存池管理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
CN102054073B (zh) * 2009-11-05 2013-04-17 北京华大九天软件有限公司 一种甚大规模集成电路版图数据支持方法
CN108304259B (zh) * 2017-01-11 2023-04-14 中兴通讯股份有限公司 内存管理方法及系统
CN111309310B (zh) * 2020-03-02 2023-04-28 上海交通大学 面向非易失性内存的JavaScript对象持久化框架
CN111949281A (zh) * 2020-08-25 2020-11-17 深圳市广通软件有限公司 一种基于ai配置的数据库安装方法及用户设备、存储介质
CN112241325B (zh) * 2020-12-15 2021-03-23 南京集成电路设计服务产业创新中心有限公司 一种基于内存池的超大规模集成电路数据库和设计方法
CN113342908B (zh) * 2021-06-30 2022-03-11 北京天融信网络安全技术有限公司 一种面向对象的内核层数据库的构建方法
CN113805801A (zh) * 2021-08-09 2021-12-17 浪潮软件股份有限公司 高效iOS端数据持久化方法及系统

Also Published As

Publication number Publication date
CN113986145A (zh) 2022-01-28

Similar Documents

Publication Publication Date Title
CN113986145B (zh) 一种适用于大规模集成电路后端设计的内存管理方法
Kim et al. Flashsim: A simulator for nand flash-based solid-state drives
US7447870B2 (en) Device for identifying data characteristics for flash memory
CN101169760B (zh) 电子硬盘的存储空间的管理方法
WO2023098032A1 (zh) 一种内存空间扩展方法、装置及电子设备和存储介质
US8478931B1 (en) Using non-volatile memory resources to enable a virtual buffer pool for a database application
US20200117368A1 (en) Method for achieving data copying in ftl of solid state drive, system and solid state drive
CN100426259C (zh) 一种存储器文件数据虚拟存取方法
JPS61112255A (ja) コンピユ−タ装置
US20110099324A1 (en) Flash memory storage system and flash memory controller and data processing method thereof
US20100077136A1 (en) Memory System Supporting Nonvolatile Physical Memory
US20200293191A1 (en) Electronic system with storage management mechanism and method of operation thereof
CN103077121B (zh) 一种闪存存储设备中数据管理的方法及装置
US10296250B2 (en) Method and apparatus for improving performance of sequential logging in a storage device
WO2010111694A2 (en) Storage system logical block address de-allocation management and data hardening
CN105224478A (zh) 一种映射表的形成、更新和恢复方法及电子设备
CN103019955B (zh) 基于pcram主存应用的内存管理方法
CN108694135A (zh) 用于在页高速缓存中持久性地高速缓存存储数据的方法和设备
US8688948B2 (en) Flexible memory controller for autonomous mapping of memory
CN106919517B (zh) 闪存及其访问方法
US20200319815A1 (en) Communication of data relocation information by storage device to host to improve system performance
TW201508748A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN107817945A (zh) 一种混合内存结构的数据读取方法和系统
WO2021035555A1 (zh) 一种固态硬盘的数据存储方法、装置及固态硬盘ssd
CN115599706B (zh) 一种数据存储设备的垃圾回收处理方法及数据存储设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant