一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种集成电路版图数据索引的新型构建方法

2022-07-14 00:18:38 来源:中国专利 TAG:


1.本发明涉及计算机辅助设计中的数据库索引领域,是针对集成电路eda工具,具体涉及一种集成电路版图数据索引的新型构建方法,特别。


背景技术:

2.集成电路版图主要记录了版图的点、矩形、多边形等空间数据。随着集成电路工艺的发展及设计的复杂度增加,器件的特征尺寸进一步缩小,集成电路的版图规模愈发庞大。无论是集成电路版图自动化生成eda(electronic design automation)工具还是验证eda工具,都不可避免地需要面对庞大的版图数据处理问题,如版图自动化生成 eda工具中的布局布线过程需要高速提取布线布局过程中的障碍物,又如验证eda工具中drc(design rule check)密度检查需要检索窗口的图层密度。显然,版图数据的索引通常决定着eda工具的性能,进而也会影响到集成电路的研发周期,故一个高效的版图数据索引显得尤为重要。
3.版图数据索引本质上即空间数据索引,控制索引算法的重要原则是将搜索空间划分为通常但不一定是矩形状的区域,通常有常规分解和面向对象分解两种类型的空间分解或分区。现有的技术方案中规则分解的方法主要有四叉树,而面向对象分解的方法大多基于r tree 或者r*tree。
4.四叉树为规则分解的典型实现,应用规则分解方法,以规则或者半规则方式划分数据空间。空间对象的描述保持完整,而空间索引单元则存储与它们相交的完整对象的数据库位置的引用。与每个单元格关联的数据通常会存储在一个或者多个记录中,其他地址根据单元格下角的坐标给出。四叉树通过将区域分解为四个相等的象限、子象限等来表示二维空间的划分,直到单元格的内容满足某些数据占用标准,网格的单元格大小因数据密度而异,而单元格大小的设置也直接影响空间利用率,过小的单元格会导致庞大的空间占用。
5.r tree最初是为了组织空间对象(点、线、多边形)而提出的一种分层数据结构,其适用于在辅助存储(磁盘)和主存储器中快速索引对象。其关键方法为将临近的空间数据分组,并在树的更高一级的节点中使用最小包围盒(mbb,minimum bounding box)表示空间对象。其是一种自平衡数据结构,其叶节点中包含指向空间对象的指针,使用穷举算法、二次分裂算法以及线性分裂等节点分裂算法来完成平衡。值得注意的是,不同节点周围的mbb可能会相互重叠,此外,一个mbb可以(在几何意义上)包含在许多节点中,但它只能与其中一个相关联。这意味着在确认给定mbb存在之前,空间搜索可能会访问许多节点。同时该索引是完全能动态的,插入和删除可以与搜索混合使用,不需要定期重新构建索引。r tree已经被研究人员封装并广泛用于在多维数据集中提供高效的查询处理。
6.r*tree为r tree的变种算法,与标准r tree算法一样,其可以存储多维空间数据。针对r tree不同节点周围的mbb可能会相互重叠的问题,重叠意味着在数据查询或插入时需要扩展树的多个分支 (由于数据在可能重叠的区域中的拆分方式),其优化了r tree的
节点分裂算法,采用“强制重新插入”的启发式方法来使得页面重叠最小化,最小化的重叠进一步提高了查询性能,允许更频繁地从搜索中排除整个页面。但是数据可能需要重新插入也导致其构建成本比r tree略高。
7.虽然使用四叉树、r tree或者r*tree构建二维空间索引已经成为非常通用的方案,但它们仍存在以下几个缺点:
8.1、四叉树或者r tree空间利用率较低。
9.2、r tree存在页面重叠问题。
10.3、r tree或者r*tree构建成本较高。


技术实现要素:

11.在存储结构上,四叉树由于采用规则分解,必然产生大量空白的页面,随着单元格尺寸的降低,更容易造成内存空间的大量浪费。而对于r tree,其存储结构采用空间对象的mbb的分解,通过不断地插入进行构建,r tree构建完成后存在大量页面重叠,树的形状不紧凑,导致空间利用率不高。且随着树的高度增加,空间占用也将继续增加。
12.在构建方式上,r tree或者r*tree的解决方案的关键难点是构建一个高效的树,一方面是平衡的(所有叶子节点在相同的高度),另一方面是矩形不会覆盖太多的空白空间,也不会大量重叠(以便在搜索过程中过滤,进而处理更少的子树)。但是r tree或者r*tree 依赖插入来构建树,每插入一个数据对象都需要从根节点递归遍历树,特别是在遍历过程中需要选择子树进行插入,当有多个选项时,选择会对数的性能产生重大影响。另外,如果叶子节点已满,则必须在插入之前对其进行向上递归拆分。故整个构建过程将产生频繁的插入及节点符合预期调整,导致构建的时间复杂度增加。
13.为了解决上述技术问题,本发明的目的是提供一种低构建成本、低空间占用的且能稳定快速进行区域搜索的集成电路版图数据索引方法。
14.而实现本发明所采用的技术方案是:
15.一种集成电路版图数据索引的新型构建方法,包括四级索引、动态均匀分区及使用最小包围盒表示的空间数据对象。
16.为了避免类似r tree页面重叠的问题,本发明不采用整体页面索引到细节页面的方式构建索引,而是根据区域检索的特点,即对于二维空间而言,任何一个矩形检索区域包含左下角坐标ll(x,y)及右上角坐标ur(x,y),区域检索的本质即对左下角坐标及右上角坐标的索引,以左下角坐标及右上角坐标共四个索引关键字构建四级索引,所述四级索引不存在页面包含关系,即不存在页面重叠问题。如附图 1所示,所述四级索引包含关键字为左下角坐标x的第一级索引、关键字为左下角坐标y的第二级索引、关键字为右上角坐标x的第三级索引、关键字为右上角坐标y的第四级索引。所述四级索引中第一级索引的值链接到第二级索引,所述第二级索引的值链接到第三级索引,所述第三级索引的值链接到第四级索引,所述第四级索引的值链接到小包围盒表示的空间数据对象。所述最小包围盒表示的空间数据对象包含空间数据对象本身、由左下角坐标及右上角坐标构成的最小包围盒。
17.为了降低索引构建成本,所述四级索引的构建方式采用批量加载空间数据进行构建,无需逐个插入空间数据进行构建,而是使用排序算法对空间数据进行批量排序,排序后在进行分区并创建索引,批量加载的方法避免了因逐个插入数据导致的索引不平衡,也避
免而因索引不平衡产生的调整至平衡这一额外耗时,同时借助快速排序算法,使得依赖排序的批量加载空间数据构建方法非常高效。所述批量加载空间数据构建流程如下,预设分区数为m,输入所有空间数据对象集合为v:
18.(1)在系统栈空间中创建所有空间数据对象的副本集合为vb,并记录地址至集合vp。
19.(2)使用排序算法对所有空间数据对象地址集合vp按照ll.x 排序。
20.(3)按照分区数m对排序后的所有空间数据对象地址集合vp均匀分割为m份集合v1[0-m]。
[0021]
(4)遍历均匀分割后的集合v1[0-m],并更新集合v1[i] (i=0,1,

m)的关键字为当前集合的ll.x值的下界和上界(min ll.x, max ll.x]及当前集合大小size。
[0022]
(5)使用排序算法对集合v1[0-m]按照ll.y排序。
[0023]
(6)按照分区数m对排序后集合v1[0-m]中的每个子集 v1[i](i=0,1,

m)均匀分割为m份集合v2[0-m]。
[0024]
(7)遍历均匀分割后的集合v2[0-m],并更新集合v2[i] (i=0,1,

m)的关键字为当前集合的ll.y值的下界和上界(min ll.y, max ll.y]及当前集合大小size。
[0025]
(8)使用排序算法对集合v2[0-m]按照ur.x排序。
[0026]
(9)按照分区数m对排序后集合v2[0-m]中的每个子集 v2[i](i=0,1,

m)均匀分割为m份集合v3[0-m]。
[0027]
(10)遍历均匀分割后的集合v3[0-m],并更新集合v3[i] (i=0,1,

m)的关键字为当前集合的ur.x值的下界和上界(min ur.x, max ur.x]及当前集合大小size。
[0028]
(11)使用排序算法对集合v3[0-m]按照ur.y排序。
[0029]
(12)按照分区数m对排序后集合v3[0-m]中的每个子集 v3[i](i=0,1,

m)均匀分割为m份集合v4[0-m]。
[0030]
(13)遍历均匀分割后的集合v4[0-m],并更新集合v4[i] (i=0,1,

m)的关键字为当前集合的ru.y值的下界和上界(min ur.y, max ur.y]及当前集合大小size。
[0031]
(14)集合v1[0-m1],v2[0-m2],v3[0-m3]均存储数据对象集合的分区范围,而v4[0-m4]则存储数据对象集合的分区范围及数据对象的地址,共构建四级映射。
[0032]
为了使得该索引效率稳定,需要使空间数据分布均匀。所述四级索引采用动态均匀分区,构建索引时,在空间数据排序后使用均匀分区来构建下一级索引,使得各分区表示范围不同而数据量一致,最终构建索引完毕后所有空间数据分布均匀,此时索引效率最大化。所述的索引方法步骤如下预设分区数为m,输入的查询区域为(ll,ur):
[0033]
(1)查询第一级索引,根据ll.x查询到该值所在的区间范围(min ll.x,max ll.y]及区间本身v1[i](0≤i≤m)。
[0034]
(2)根据第一级索引区间的下标v1[i],检索部分第二级索引 v2[i*m,i*(m 1)-1],根据ll.y查询到该值所在的区间范围(min ll.y,max ll.y]及区间本身v2[j](i*m≤j≤i*(m 1)-1)。
[0035]
(3)根据第二级索引区间的下标v2[j],检索部分第三级索引 v3[j*m,j*(m 1)

1],根据ur.x查询到该值所在的区间范围(min ur.x,max ur.x]及区间本身v3[k](j*m≤k≤j*(m 1)-1)。
[0036]
(4)根据第三级索引区间的下标v3[k],检索部分第四级索引 v4[k*m,k*(m 1)

1],根据ur.y查询到该值所在的区间范围(min ur.y,max ur.y]及区间本身v4[l](k*m≤l≤k*(m 1)-1)。
[0037]
(5)遍历查询到的所有v4,同时根据判断标准检查该地址对应的空间数据是否符合所需数据,是则添加数据地址至返回列表,否则跳过该数据。
[0038]
为了使得该索引在运行过程中也保持稳定的索引速度,动态均匀分区操作分配在插入或删除的步骤当中,在大量插入及删除空间数据导致分区不均匀时会触发动态均匀分区,动态均匀分区时先销毁不均匀的分区及其映射的分区,然后采用批量构建索引的方法进行局部重构,最终使得所述四级索引的分区中的数据保持均匀分布,使得索引速度保持稳定快速。所述数据索引插入或删除空间数据流程如下,预设分区数为m:
[0039]
(1)查询第一级索引,根据ll.x查询到该值所在的区间范围 (min ll.x,max ll.y]及区间本身v1[i](0≤i≤m)。同时检查size 是否符合预期,是则将该分区及其所映射的分区进行局部索引重构。
[0040]
(2)根据第一级索引区间的下标v1[i],检索部分第二级索引 v2[i*m,i*(m 1)-1],根据ll.y查询到该值所在的区间范围(minll.y,max ll.y]及区间本身v2[j](i*m≤j≤i*(m 1)-1)。同时检查size是否符合预期,是则将该分区及其所映射的分区进行局部索引重构。
[0041]
(3)根据第二级索引区间的下标v2[j],检索部分第三级索引 v3[j*m,j*(m 1)

1],根据ur.x查询到该值所在的区间范围(minur.x,max ur.x]及区间本身v3[k](j*m≤k≤j*(m 1)-1)。同时检查size是否符合预期,是则将该分区及其所映射的分区进行局部索引重构。
[0042]
(4)根据第三级索引区间的下标v3[k],检索部分第四级索引 v4[k*m,k*(m 1)

1],根据ur.y查询到该值所在的区间范围(minur.y,max ur.y]及区间本身v4[l](k*m≤l≤k*(m 1)-1)。同时检查size是否符合预期,是则将该分区及其所映射的分区进行局部索引重构。
[0043]
(5)遍历查询到的所有v4,对于插入数据,根据判断标准检查待插入数据是否符合分区的范围,是则添加该数据地址,否则跳过该分区,对于删除数据,根据判断标准检查待删除数据是否与索引中存储的数据一致,是则删除该数据地址,否则跳过该数据。
[0044]
本发明方法的有益效果是:在构建速度上,相对于四叉树、r tree 或者r*tree的解决方案,其不依赖插入来构建索引,而是采用了批量排序来构建索引,使得构建时间复杂度大大降低,且使用动态均匀分区避免页面重叠问题且,使得查询效率稳定。本发明的构建时间复杂度为而r tree和r*tree 的构建时间复杂度被证明为o(nlog(n))。如附图3、如图4所示,根据具体实施例中的测试结果表明,本发明的索引构建时间约为r tree 的或者为r*tree的而查询时间与r tree或r*tree相当,故本发明在构建索引速度上有着明显的优势。在存储占用上,由于本发明的空间数据对象地址全部存储于最低一级节点,固定使用个索引,故存储n个空间数据且
分区数为m的情况下本设计的空间复杂度为而存储n个空间数据且深度为d的四叉树空间复杂度被证明为o((d 1)n)。故在数据量大的情况下,本发明的空间占用相对于四叉树索引更具优势。总的来说,本发明在保证查询性能与常用空间索引相当的情况下,大大提高了构建的速度,同时空间占用也有所降低。
附图说明
[0045]
图1为本发明的索引结构图;
[0046]
图2为本发明具体实施例构建及查询流程图;
[0047]
图3为本发明具体实施例真实集成电路版图构建测试的构建评分-样本图层图;
[0048]
图4为本发明具体实施例真实集成电路版图查询测试的查询评分-样本图层图;
[0049]
附图标记:mbb,最小包围盒;ll(x,y),左下角坐标;ur(x,y),右上角坐标;ll.x,左下角坐标x值;ll.y,左下角坐标y值;ur.x,右上角坐标x值;ur.y,右上角坐标y值。
具体实施方式
[0050]
以下将结合附图对本发明作进一步的描述,需要说明的是,以下实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
[0051]
本发明为一种集成电路版图数据索引的新型构建方法,所述方法包括四级索引、动态均匀分区及使用最小包围盒表示的空间数据对象;其中,所述四级索引包含关键字为左下角坐标x的第一级索引、关键字为左下角坐标y的第二级索引、关键字为右上角坐标x的第三级索引、关键字为右上角坐标y的第四级索引。
[0052]
进一步的,本发明所述四级索引中第一级索引的值链接到第二级索引,所述四级索引中第二级索引的值链接到第三级索引,所述四级索引中第三级索引的值链接到第四级索引,所述四级索引中第四级索引的值链接到空间数据对象。
[0053]
进一步的,本发明所述四级索引包括了批量加载空间数据进行构建,构建如下:
[0054]
s1在系统栈空间中创建所有空间数据对象的内存,并记录地址;
[0055]
s2使用排序算法按照左下角坐标x值对空间数据对象进行排序,排序后均匀分区,同时记录分区范围及大小,构成第一级索引;
[0056]
s3使用排序算法按照左下角坐标y值对第一级索引分区后的空间数据对象进行排序,排序后均匀分区,同时记录分区范围及大小,构成第二级索引;
[0057]
s4使用排序算法按照右上角坐标x值对第二级索引分区后的空间数据对象进行排序,排序后均匀分区,同时记录分区范围及大小,构成第三级索引;
[0058]
s5使用排序算法按照右上角坐标y值对第三级索引分区后的空间数据对象进行排序,排序后均匀分区,同时记录分区范围及大小,构成第四级索引;
[0059]
s6将四次排序分区后的空间数据按照分区范围添加至第四级索引的值中。
[0060]
4、根据权利要求1所述集成电路版图数据索引的新型构建方法,其特征在于,所述动态均匀分区为构建索引或者动态调整索引时使用。构建索引时,在空间数据排序后通过均匀分区来构建下一级索引,使得各分区数据量一致。
[0061]
进一步的,本发明在大量插入及删除空间数据导致分区不均匀时触发动态调整索引,动态调整先销毁不均匀的分区及其映射的分区,然后采用批量构建索引的方法进行局部重构。
[0062]
进一步的,本发明所述最小包围盒表示的空间数据对象包含空间数据对象本身、由左下角坐标及右上角坐标构成的最小包围盒。
[0063]
实施例
[0064]
1、结合附图2所示,实现本发明的步骤如下:
[0065]
(1)读取空间数据
[0066]
首先读取集成电路gds文件中的空间数据,然后在系统栈空间为空间数据创建内存,并记录所有空间数据在栈内存中的地址。
[0067]
(2)构建索引
[0068]
将所有空间数据根据层号进行分层处理,每一层的空间数据使用批量构建的方法构建单层图层索引数据库,通过多层图层索引数据库完成链接。构建单层图层索引数据库时,使用批量加载的方法进行构建,共构建ll.x、ll.y、ur.x、ur.y四级索引,所有空间数据在栈空间的实际地址存储在第四级索引ur.y的值中。
[0069]
(3)查询操作
[0070]
当产生查询操作时,首先通过多层图层索引数据库确定单层图层索引数据库,然后根据查询的范围在已经构建好的四级索引ll.x、 ll.y、ur.x、ur.y中查找,每一索引查找后都能过滤大量的分区,最后确定所查询的数据的唯一分区,在该分区内遍历空间数据,获得原始数据的地址并返回。
[0071]
(4)动态分区
[0072]
当产生大量插入和删除操作导致各区间的数据量不均匀时,触发动态调整。该调整在插入、删除操作的查询每一级索引当中进行触发,当查询索引时发现当前分区存在size不合理后,对该分区及其映射的分区进行销毁,并使用批量构建索引进行局部重构,以保证分区均匀。
[0073]
为了进一步验证本发明的有效性,对本发明的性能进行测试:
[0074]
为测试目的:测试本发明的构建速度,主要测试本发明在最优分区数、不同数据集大小下的构建性能及查询性能。
[0075]
测试平台:测试设备为intel(r)core(tm)i7-8700 cpu@ 3.20ghz 3.19ghz,16.0gb ram,测试平台为ms windows 10x64,且代码编译时优化了速度(o2)。
[0076]
测试数据集:首先,构建了一份真实集成电路版图数据集,该数据集大小为165mb的gds文件,版图尺寸为930*1177um2。由于版图图层种类众多,取集成电路版图中的金属层(m1-m9)作为实际测试数据集,同时构建100个随机索引窗口。
[0077]
测试要求:使用本发明的构建接口对该真实集成电路版图数据集进行排序并批量构建,同时记录本发明在最优桶数、不同金属层 (m1-m9)数据集下的构建时间及查询时间,构建时间取10次构建时间的平均值,查询时间取100个查询窗口的平均值。与相同条件下的r tree(linear和quadratic)和r*tree的构建时间及查询时间进行对比。使用score=log(time) c对构建性能及查询性能进评价,其中score为评分,time为构建或查询时间,c为使得曲线在y坐标轴正半轴的常数,评分越低表明速度越快。
[0078]
测试结果:附图3为在真实集成电路版图样本下的不同金属图层的构建时间评分结果,附图4为在真实集成电路版图样本下的不同金属图层的查询时间评分结果。根据真实集成电路版图样本的测试结果,本发明能够在保证查询速度的情况下大大降低构建时间,构建时间约为r tree的1/5或者为r*tree的1/10。
[0079]
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变,而所有的这些改变,都应该包括在本发明权利要求的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献