设计层次树子结点信息存储方法、电子设备和介质技术

技术编号:39323633 阅读:7 留言:0更新日期:2023-11-12 16:03
本发明专利技术涉及芯片技术领域,尤其涉及一种设计层次树子结点信息存储方法、电子设备和介质,步骤S1、在内存中为设计层次树的非叶子结点A

【技术实现步骤摘要】
设计层次树子结点信息存储方法、电子设备和介质


[0001]本专利技术涉及芯片
,尤其涉及一种设计层次树子结点信息存储方法、电子设备和介质。

技术介绍

[0002]在芯片设计验证调试软件流程中,需要展示用户设计的模块实例化设计层次树。层次树从最顶层的模块开始构建,把最顶层的模块作为树的根结点。顶层模块中实例化的所有模块实例会作为顶层模块的子结点展示,这些子结点本身又是从其他模块实例化而来的,因此它们本身又包含了其他实例化的实例作为它们的子结点。这个过程递归进行直到叶子结点为止。叶子结点就是实例的模块里面没有再包含对其他模块的实例化,通常是原始单元(priKitive cell)或者空模块。上述过程构建的整棵树称为设计层次树。为了支持通过一个给定的模块实例化名字快速定位到一个结点的子结点,通常会采用一个有序的映射表(map)来存储所有结点的名字和结点本身的信息。这样不但可以保证子结点的生成顺序,还可以通过子结点的实例名字快速的查找到子结点,从而获取更多信息或者选中这个子结点。
[0003]但是,在真实的设计中,每个结点的子结点数目可能存在很大差异,例如有些结点可能包含十万个以上的子结点,而有的结点可能只包含数个或者数十个子结点。上述的使用有序的map来存储所有的子结点信息的方案对子结点数比较少的结点会造成大量的内存浪费。因为有序的map需要额外的内存来管理和存储信息,当里面存储的子结点数太少时,额外花费的内存占比过高,从而造成内存的浪费。

技术实现思路

[0004]本专利技术目的在于,提供一种设计层次树子结点信息存储方法、电子设备和介质,降低了设计层次树结点信息存储的内存使用量。
[0005]根据本专利技术第一方面,提供了一种设计层次树子结点信息存储方法,包括:步骤S1、在内存中为设计层次树的非叶子结点A
i
构建动态数据结构D
i
,D
i
包括有序map结构K
i
、动态数组结构V
i
、第一指针P1
i
和第二指针P2
i
,V
i
中对应的已存入子结点信息数为U
i
;在初始状态下,K
i
和V
i
均为空,P1
i
设置为有效状态且指向V
i
,P2
i
设置为空指针,U
i
=0;其中,i的取值范围为1到N,N为设计层次树的非叶子结点总数;步骤S2、当需要向D
i
中插入子结点信息时,判断P1
i
和P2
i
中哪一指针为有效状态,若P1
i
为有效状态,则执行步骤S3,若P2
i
为有效状态,则执行步骤S6;步骤S3、将子结点信息插入V
i
中,更新U
i
,执行步骤S4;步骤S4、若U
i
=R,R为预设的动态数组存储数量阈值,则执行步骤S5,否则,返回执行步骤S2;步骤S5、将V
i
中存储的子结点信息复制到K
i
中,释放V
i
,将P1
i
设置为空指针,将P2
i
设置为有效状态且指向K
i
,返回执行步骤S2;
步骤S6、将子结点信息插入K
i
中,返回执行步骤S2。
[0006]根据本专利技术第二方面,提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本专利技术第一方面所述的方法。
[0007]根据本专利技术第三方面,提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机指令用于执行本专利技术第一方面所述的方法。
[0008]本专利技术与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本专利技术提供的一种设计层次树子结点信息存储方法、电子设备和介质可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:本专利技术通过动态自适应的机制来存储设计层次树的子结点信息,根据子结点信息的数量切换不同的存储模式,在保持快速查找性能的同时降低了设计层次树结点信息存储的内存的使用量,提升了系统性能。
附图说明
[0009]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0010]图1为本专利技术实施例提供的设计层次树子结点信息存储方法流程图。
具体实施方式
[0011]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0012]本专利技术实施例提供了一种设计层次树子结点信息存储方法,如图1所示,包括:步骤S1、在内存中为设计层次树的非叶子结点A
i
构建动态数据结构D
i
,D
i
包括有序map结构K
i
、动态数组结构V
i
、第一指针P1
i
和第二指针P2
i
,V
i
中对应的已存入子结点信息数为U
i
;在初始状态下,K
i
和V
i
均为空,P1
i
设置为有效状态且指向V
i
,P2
i
设置为空指针,U
i
=0;其中,i的取值范围为1到N,N为设计层次树的非叶子结点总数。
[0013]需要说明的是,现有的有序map结构和动态数组结构均落入本专利技术保护范围之内,有序map结构包括哈希表和用于存储子结点信息插入顺序的数组,有序map结构和动态数组结构的结构细节在此不再赘述。
[0014]步骤S2、当需要向D
i
中插入子结点信息时,判断P1
i
和P2
i
中哪一指针为有效状态,若P1
i
为有效状态,则执行步骤S3,若P2
i
为有效状态,则执行步骤S6。
[0015]需要说明的是,同一时刻,第一指针P1
i
和第二指针P2
i
仅有一个为有效状态,通过判断P1
i
和P2
i
中哪一指针为有效状态确定要插入的存储结构。
[0016]步骤S3、将子结点信息插入V
i
中,更新U
i
,执行步骤S4本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种设计层次树子结点信息存储方法,其特征在于,包括:步骤S1、在内存中为设计层次树的非叶子结点A
i
构建动态数据结构D
i
,D
i
包括有序map结构K
i
、动态数组结构V
i
、第一指针P1
i
和第二指针P2
i
,V
i
中对应的已存入子结点信息数为U
i
;在初始状态下,K
i
和V
i
均为空,P1
i
设置为有效状态且指向V
i
,P2
i
设置为空指针,U
i
=0;其中,i的取值范围为1到N,N为设计层次树的非叶子结点总数;步骤S2、当需要向D
i
中插入子结点信息时,判断P1
i
和P2
i
中哪一指针为有效状态,若P1
i
为有效状态,则执行步骤S3,若P2
i
为有效状态,则执行步骤S6;步骤S3、将子结点信息插入V
i
中,更新U
i
,执行步骤S4;步骤S4、若U
i
=R,R为预设的动态数组存储数量阈值,则执行步骤S5,否则,返回执行步骤S2;步骤S5、将V
i
中存储的子结点信息复制到K
i
中,释放V
i
,将P1
i
设置为空指针,将P2
i
设置为有效状态且指向K
i
,返回执行步骤S2;步骤S6、将子结点信息插入K
i
中,返回执行步骤S2。2.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:步骤S31、判断待插入子结点信息是否已经存储在V
i
中,若是,则执行步骤S32,否则,执行步骤S33;步骤S32、不再将待插入子结点信息插入V
i
中,保持当前U
i
不变,直接执行步骤S2;步骤S33、将待插入子结点信息插入V
i
中,更新U
i
=U
i
+1,执行步骤S4。3.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:所述步骤S6包括:步骤S61、判断待插入子结点信息是否已经存储在K
i
中,若是,则直接返回执行步骤S2,否则,执行步骤S62;步骤S62、将子结点信息插入K
i
中,返回执行步骤S2。4.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:子结点信息包括指针对(key, Value),key为指向子结点标识的指针,Value为指向子结点详细信息的指针。5.根据权利要求4所述的方法,其特征在于,所述步骤S3包括:所述方法还包括:步骤S01、获取删除目标子结点指令,解析得到目标删除key;步骤S02、判断P1
i
和P2
i
中哪一指针为有效状态,若P1
i
为有效状态,则执行步骤S03,若P2
i
为有效状态,则执行步骤S04;步骤S03、调用预设的删除接口,将V
i
中目标删除key对应的子结点信息删除,更新U
i
=U
i

1;步骤S04、调用预设的删除接口,将K
i
中目标删除key对应的子结点信息删除。6.根据权利要求4所述的方法,其特征在于,所述步骤S3包括:所述方法还包括:步骤S10、获取查找目标子结点指令,解析得到目标查找key;步骤S20、判断P1
i
和P2
i
中哪一指针为有效状态,若P1
i
为有效状态,则执行步骤S30,若P2
i
为有效状态,则执行步骤S40;
步骤S30、调用预设的查找接口,在V
i
中进行查找,获取目标查找key对应的目标查找Value;步骤S40、调用预设的查找接口,在K
i
中进行查找,获取目标查找key对应的目标查找Value。7.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:R为[R1,R2]中的一个值,[R1,R2]为能够实现性能和内存均衡的动态数组存储数量阈值取值范围,所述方法还包括步骤S100、获取动态数组存储数量阈值取值范围 [R1,R2];所述步骤S100包括:步骤S101、获取K
i
对应的管理有序map结构所需内存EM
K
和存储子结点信息所需内存E
K
;步骤S102、基于EM
K
和E
K
确定K
i
对应的内存代价MC
K
,MC
K
=EM

【专利技术属性】
技术研发人员:赵建张邦全
申请(专利权)人:上海合见工业软件集团有限公司成都融见软件科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1