CN101593220A - 一种超大规模集成电路版图数据的管理方法 - Google Patents
一种超大规模集成电路版图数据的管理方法 Download PDFInfo
- Publication number
- CN101593220A CN101593220A CNA2008101131160A CN200810113116A CN101593220A CN 101593220 A CN101593220 A CN 101593220A CN A2008101131160 A CNA2008101131160 A CN A2008101131160A CN 200810113116 A CN200810113116 A CN 200810113116A CN 101593220 A CN101593220 A CN 101593220A
- Authority
- CN
- China
- Prior art keywords
- data
- page
- index
- file
- tree
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种超大规模集成电路版图数据的管理方法,特别是针对版图交互编辑中的显示、局部数据修改。本方法根据物体大小分层;在每层上采用空间填充曲线为每个物体计算一个值作为标签;针对每一个层,以该层上物体的标签排序,并构建成B+树,数据存放在以页面为单位的数据文件中;在需要取得或修改某一个区域的物体集合时,首先读入索引文件,使用B+树作为索引,把相应的数据调入主存进行处理或在对数据修改之后将之重新写出到文件中;页面读入、写出通过特定的缓存进行。
Description
技术领域
本发明涉及一种超大规模集成电路版图数据的管理方法,特别是针对版图交互编辑中的显示、局部数据修改,属于计算机辅助设计中的数据库管理领域。
背景技术
随着设计尺寸的减小和设计规模的增大,版图所需要处理的数据越来越大,无论是查看、编辑、检查还是使用这些数据都会受到硬件***处理上限的限制。因此,设计一个新的数据管理***处理这些需求,使建立在这个***之上的应用程序能够自由的访问,使用这些数据而不被***所能够提供的环境限制成为了一个必然的需要。
通过分析,对数据的应用(主要是编辑器的查看,修改以及其他类型应用程序对数据的需求)很多时候都是具有区域性和层次性的。即,在应用的某一个时刻并不是所有的数据都需要被读入到内存中,只有一部分会被应用程序所访问到,并且这些数据往往具有几何位置上的局部性(由版图数据是几何图形的几何这一特性所决定的)。例如,对于一个版图的显示应用来说,显然:
1.不需要的区域可以暂不读入内存;
2.对于当前的显示范围来说过于微小的物体不需要被读入内存;
3.当内存达到***所能够提供的上限的时候能够将那些当前不需要的区域和尺寸层次上的物体所占用的区域交换到文件中去;
4.保存在当前内存中的数据只是为了满足当前的显示需求,只有当确实需要读取某一区域的确切内容的时候该区域才会被读入内存中。
对于一般应用来说,即使需要把数据处理成其内部的表示形式,也需要从数据***中取得相应的数据部分供其使用。其要求往往会表现为:
1.对某一个范围的查询(region query,或在一维上range query);
2.针对某一个特征值的查询(exact query);
3.对某一个区域周围情况的查询(neighboring query);
4.针对某一个范围中的每一个数据做某种操作(对数据子集的遍历处理,cursor):
因此,从一个存在的标准数据流格式(stream format),例如,GDSII,OASIS等业界所采用标准格式来说,读入并重新组织这些数据,以自己定义的格式存储,作为数据管理的桥梁提供给后端的应用程序使用是一个有意义的工作。
发明内容
在当前情况下,几十G、乃至上百G的GDSII已经是当前实际设计中出现的规模。根据不同的应用目的,对数据查询的种类也不同:例如,设计规则检查DRC等多会是局部细节的数据要求;而版图编辑器则主要是做显示用,可以只知道一个概略的情况,然后根据使用者的要求按需到要求的处理级别上;其他的例如光学接近校正OPC应用可能会更强调数据的局部修改,要求能在短时间内处理小规模的数据***、删除操作。
本发明公开的集成电路版图数据的管理方法提供给使用者可选择的处理物体本身的大小范围、要处理的物体所在的区域的大小、在指定可使用的内存大小下配置,调节数据库的表现,满足要求。这是一个external memory system(model)。数据的存储和程序代码的存储空间是分开的,管理的是数据从文件空间到内部内存空间(进程空间)的映射。
本发明使用带有区域查询特征的B+树形式索引组织、查找、管理数据,依靠空间填充曲线保持从二维平面位置到一维曲线上时数据存储的空间局部特性。
B+树把一维的线性空间分成不交叠的区间,并把这些区间封成一个个的节点。B+树针对每一个物体计算出它的大小和它所在大小所对应的层上的空间填充曲线的索引;然后把这些物体连同它们的索引排序,并把排好序的这个相对于整个图形空间的序列压倒一个个的数据页面、索引页面中就可以构建出一个具有所给定的空间利用率的B+树索引文件和数据文件。可供选用的空间填充曲线很多,诸如Hilbert曲线,Z曲线,U曲线。在实现的时候可以根据需要进行选择。但无论采用那种曲线,都是要保持二维平面的图形局部特性。
下面是数据重组和使用的具体流程:
1)从诸如GDSII等流数据文件中读入每一个图形,根据图形的最小外框BBox的最大尺寸,取两个方向上跨度的最大者分层,每个分层称为一个mesh层;同时根据所采用的空间填充曲线,对每个按照近似大小分层上图形的位置编码;取物体的左下坐标计算出该物体在其所在层上的索引值;处理好之后的物体连同它们的索引值,按照所在的不同mesh层分别写到临时文件中。
2)对每一个大小的mesh层所对应的临时文件中的图形索引排序,在排序之后使用批处理的方式构建一棵B+树,并按照预先确定的页面大小写入到最终的索引文件和数据文件中,完成数据的组织。
3)根据所要求的访问的尺寸,确定mesh上需要被访问的数据,并根据需要访问的2维区域(一般是个矩形区域),确定对应空间填充曲线上的曲线段;把所需的索引页面和数据页面读入到特定的缓冲区策略所控制的内存区域中,提供指针供应用程序使用。
4)应用程序使用数据的时候,直接使用映射到主存中的文件镜像,并在镜像上做修改,然后将修改后的页面写出到原来文件中的页面上;如果有页面上的数据被全部删除或者剩下的数据很少以至于可以把它分布到其周围的页面中时,把这个页面标记为空页面,交给一个基于文件的空页面链表处理;反之,当需要一个新的页面的时候,首先使用空页面链表中页面,如果没有,则直接在文件的末尾增加所需的页面。这样,小规模的修改只需影响到有限的几个页面。当修改较多的时候,文件中数据存放的局部性会被破坏,这时只要将文件从头到尾按照其在B+树中的排序顺序重新写出到一个新的文件中就可以恢复数据局部性。
附图说明
图1为版图数据的管理方法的构建和使用流程。
图2为版图数据的管理方法中mesh分层的示意图。
图3为使用Z编码时的编码、查询过程。
具体实施方式
下面结合附图和实施例对本发明进一步说明。实现本发明的步骤如下:
1)数据的分层(mesh plane)
如图2所示,mesh-plane实际上是一个类似于从上到下一个个网眼大小固定的筛子,当一个object进入时,大的物体留在上层,而小的物体会掉落在下层。这些以物体的max-size为判断标准形成的层构成了版图数据的管理方法***中的一个个mesh-plane。对于32位的坐标表示空间来说,在2x2倍大小的相邻plane尺寸要求下,只能存在32个plane。例如,1号plane的大小是32-bit数据的最高位,32号plane的网眼大小是size的最低位。并且任何一个物体一定也只能存在于一个mesh-plane中。图2中有3层mesh-plane。
2)以Z编码为例的索引(key)生成
版图数据一般是大量大小差距不大的图形所组成,而且趋于均匀分布,特别大和特别少的物体,以及某一个大小的物体在某个区域上大量堆积的情况比较少。因此,在确定了一个图形应该属于那个mesh-plane以后,由于图形所在的mesh是根据其大小而确定的,bin的大小和这层上的物体的大小是相当的。图形会落到该层mesh所划分的某一个bin当中(这里取其左下角坐标,作为一个点必然回落到某一个bin中)。然后,取其所在的bin的位置作为这个object的位置描述是恰当的。
下一个步骤就是对每一个mesh-plane上的bin给与一个值来描述它在这个plane中的位置,这里采用的是位交错的方法将每一个bin编码,并构成了一个从左下角到右上角整个排序的序列,即,所谓的空间填充曲线。
图3中是这个编码的实际例子:
a)左上角中的A1这个bin的key是0000,A2是0001,A3是0010,A4是0011。而B是1101。
b)这样,在右上角图中,显然,根据它们的key的大小排序为:A1-A2-A3-A4;即“N”的顺序。
c)第三个图中,考虑更上一层的划分,显然在只考虑最高bit的情况下会类似的出现一个大“N”作为fill curve。这样,就层次的构成了从左下到右上的排序的fill curve;同时在这个图上,它们的位置描述的顺序是:A1-A2-A3-A4-B。
d)第四个图中是a、b、c、d、e、f六个box指的是落在这个mesh-plane中的object的BBox,以及它们所具有的key的值,例如,b的key就是0011,e的key是1111。而当需要得到圆形区域g内的数据时,则只要返回虚框f所覆盖到的bin的内容就可以了。这就是B+-tree所对应的底层查询方法。同时,也可以看出,mesh-plane的大小限制在这里给出了一个安全的较小范围,提高了查找的效率。
3)对图形排序、填充以及构建B+树
在上面的处理过程中,顺序读入一个文件,对文件中的每一个图形,可以经过简单的计算得出它的mesh,以及它在这个mesh-plane中所在的bin的编号,即,它的key。
下来要做的是根据这些key,对每一个mesh层生成一个包含B+树的索引文件来记录其索引以及将这些数据打包到固定大小的数据页面中写入最终的数据文件中。
对于这种大规模数据的排序一般情况下会使用多路归并的合并排序来解决(根据数据量的大小可能会2-stage或者更多)。
因为对数据做了排序,所以可用批处理的方法按照从左到右的顺序构建叶节点来构建这个B+-树,这个过程比一个个的***快B倍。
对于数据的打包:因为磁盘是块设备,所以,以页面为单位在内存和磁盘间交换数据是比较有效率的。
a)使用页内便宜表和堆的方式来构建页面内部内容(因为数据是变长的);
b)当一个具有新的key的图形数据在页面中被***时,生成一个entry,***到B+树的叶节点上,并根据图形的实际大小设置所在key所对应的bin对周围bins的覆盖情况;
在数据的转换过程中可能会对流格式的文件进行多遍读写,视版图的规模而定。这样做带来的好处是:
a)利用了B+-树的大扇出的特点,降低了查找树的高度;
b)B+-树是一棵平衡树,考虑到我们***叶节点时的操作,这个平衡是针对了数据分布自然形成的磁盘访问平衡。
c)因为B+-树中的叶节点是相邻连接的,这在进行范围查询的时候可以很容易的确定出应该调入的数据页面。不用管上层的树结构,只要找到起点,然后按照指针顺序读下去,直到超出要求的key结束就行了。
d)当需要做相邻查找时则可以直接到相应的bin中去查询,如果包含了这个bin的key的entry存在于叶节点中,那么读取它;如果其周围的bin有影响了这个区域的,也把那些读入进来;如果没有以上两者,则确定不存在这样的数据。
4)使用索引时,结合适当的buffer management策略把需要的页面读取进来,这会是影响最终性能最重要的一个因素,根据所采取的策略和程序实现会有很大的不同。缓存管理器应具有的特点是:
a)如果要考虑并行操作,应使用clock类策略而不是LRU类;
b)如果访问的形式不能预先确定,应选用自适应的策略,并应注意同时考虑使用时间跨度和反问频率对页面淘汰策略的影响;
c)如果可以确切的知道访问策略,最好使用组合策略,以供应用程序选择采用的方式,减少不必要的性能损失;
d)最好能够实现对修改后页面写出的非同步处理,以便在大数据需求的时候不至于等待页面写出;
Claims (3)
1、一种超大规模集成电路版图数据的管理方法,Abyss,特别针对版图交互编辑中的显示、局部修改对二维的图形数据进行了组织,其构造和使用的步骤如下:
1)使用分层管理,从流数据文件中读入每一个图形,根据图形的最小外框的最大尺寸,取两个方向上跨度的最大者进行分层;根据图形的大小把图形分布到不同的层上,以便根据读取尺寸的需要选择不同的层、区域上的物体集合;
2)根据所采用的空间填充曲线,对每个按照近似大小分层上图形的位置编码,取物体的左下坐标计算出该物体在其所在层上的索引值,处理好之后的物体连同它们的索引值,按照所在的不同分层分别写到临时文件中;
3)针对每一个分层所对应的临时文件中的图形索引排序,以便用批处理的方式构建一棵B+树,并按照事先选定的页面大小输出到最终的索引文件和数据文件中,完成数据的组织,对每一个层上的数据页面,把页面中数据的索引最小值和页面的偏移量***到B+树的叶节点中;叶节点中同时使用两个位表示所指向的页面中的物体集合是否覆盖到了其上面和右面的相邻区域;
4)数据访问时,根据访问的尺寸范围,确定涉及的分层;根据需要访问的矩形区域,确定在对应空间填充曲线上切割形成的索引范围;根据B+树的结构,把所需的索引页面和数据页面读入到特定的缓冲区策略所控制的内存区域中,提供指针供应用程序使用;
5)应用程序使用数据的时候,通过缓存使用映射到主存中的文件镜像,并在镜像上做修改,然后由缓冲区将修改后的页面写出到原来文件中的页面上;如果有页面被清空时,把这个页面标记为空页面,交给一个基于文件的空页面链表处理;反之,当需要一个新的页面的时候,首先使用空页面链表中页面,如果没有,则直接在文件的末尾增加所需的页面。
2、如权利要求1所述的一种超大规模集成电路版图数据的管理方法,其特征在于每出现一个不同的编码B+树就在叶节点中***一个索引,不同的索引可以指向同一个页面,实现一个稀疏索引向稠密索引的过渡,尽可能的使用索引满足搜索的需要,阻止不必要的数据页面读入。
3、如权利要求1或2所述的一种超大规模集成电路版图数据的管理方法,其特征在于对图形按照大小分配到不同粒度的空间曲线所控制的层上,增强了数据集合控制和编码区分度;数据页面的索引中使用2个数据位页面对周围区域的覆盖情况,可以减少数据页面的读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101131160A CN101593220A (zh) | 2008-05-28 | 2008-05-28 | 一种超大规模集成电路版图数据的管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101131160A CN101593220A (zh) | 2008-05-28 | 2008-05-28 | 一种超大规模集成电路版图数据的管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101593220A true CN101593220A (zh) | 2009-12-02 |
Family
ID=41407873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101131160A Pending CN101593220A (zh) | 2008-05-28 | 2008-05-28 | 一种超大规模集成电路版图数据的管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101593220A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193873A (zh) * | 2010-03-04 | 2011-09-21 | 中国科学院微电子研究所 | 快速读写海量数据文件的方法 |
CN102654863A (zh) * | 2011-03-02 | 2012-09-05 | 华北计算机***工程研究所 | 一种实时数据库历史数据组织管理方式 |
CN103853863A (zh) * | 2012-12-05 | 2014-06-11 | 北京华大九天软件有限公司 | Pdk自动测试界面实现方法 |
CN103871085A (zh) * | 2012-12-14 | 2014-06-18 | 北京华大九天软件有限公司 | 一种版图数据压缩的方法 |
CN104572682A (zh) * | 2013-10-17 | 2015-04-29 | 上海华虹宏力半导体制造有限公司 | 对集成电路版图数据进行区域索引的方法 |
WO2015180531A1 (en) * | 2014-05-30 | 2015-12-03 | Hubei University Of Education | Indexing methods and systems for spatial data objects |
CN107967704A (zh) * | 2016-10-20 | 2018-04-27 | 上海复旦微电子集团股份有限公司 | 一种fpga芯片版图连线显示方法 |
CN108446372A (zh) * | 2018-03-15 | 2018-08-24 | 珠海市睿晶聚源科技有限公司 | 集成电路版图数据的存储与查询方法 |
CN112182311A (zh) * | 2020-12-01 | 2021-01-05 | 南京集成电路设计服务产业创新中心有限公司 | 一种数据搜索方法、电子设备及计算机可读存储介质 |
CN112988758A (zh) * | 2021-04-26 | 2021-06-18 | 北京芯愿景软件技术股份有限公司 | 目标对象定位方法、装置、电子设备和存储介质 |
WO2022083052A1 (zh) * | 2020-10-20 | 2022-04-28 | 芯和半导体科技(上海)有限公司 | 一种通用eda模型版图物理连接关系的重建方法 |
CN114741388A (zh) * | 2022-03-29 | 2022-07-12 | 中山大学 | 一种集成电路版图数据索引的新型构建方法 |
CN117576249A (zh) * | 2024-01-19 | 2024-02-20 | 弈芯科技(杭州)有限公司 | 一种芯片版图数据处理方法及装置 |
-
2008
- 2008-05-28 CN CNA2008101131160A patent/CN101593220A/zh active Pending
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193873B (zh) * | 2010-03-04 | 2013-06-05 | 中国科学院微电子研究所 | 快速读写物理版图数据的方法 |
CN102193873A (zh) * | 2010-03-04 | 2011-09-21 | 中国科学院微电子研究所 | 快速读写海量数据文件的方法 |
CN102654863A (zh) * | 2011-03-02 | 2012-09-05 | 华北计算机***工程研究所 | 一种实时数据库历史数据组织管理方式 |
CN103853863A (zh) * | 2012-12-05 | 2014-06-11 | 北京华大九天软件有限公司 | Pdk自动测试界面实现方法 |
CN103853863B (zh) * | 2012-12-05 | 2017-05-24 | 北京华大九天软件有限公司 | Pdk自动测试界面实现方法 |
CN103871085A (zh) * | 2012-12-14 | 2014-06-18 | 北京华大九天软件有限公司 | 一种版图数据压缩的方法 |
CN104572682A (zh) * | 2013-10-17 | 2015-04-29 | 上海华虹宏力半导体制造有限公司 | 对集成电路版图数据进行区域索引的方法 |
CN104572682B (zh) * | 2013-10-17 | 2017-12-05 | 上海华虹宏力半导体制造有限公司 | 对集成电路版图数据进行区域索引的方法 |
US10394787B2 (en) | 2014-05-30 | 2019-08-27 | Hubei University Of Education | Indexing methods and systems for spatial data objects |
WO2015180531A1 (en) * | 2014-05-30 | 2015-12-03 | Hubei University Of Education | Indexing methods and systems for spatial data objects |
CN106796589A (zh) * | 2014-05-30 | 2017-05-31 | 湖北第二师范学院 | 空间数据对象的索引方法和*** |
CN107967704A (zh) * | 2016-10-20 | 2018-04-27 | 上海复旦微电子集团股份有限公司 | 一种fpga芯片版图连线显示方法 |
CN108446372A (zh) * | 2018-03-15 | 2018-08-24 | 珠海市睿晶聚源科技有限公司 | 集成电路版图数据的存储与查询方法 |
WO2022083052A1 (zh) * | 2020-10-20 | 2022-04-28 | 芯和半导体科技(上海)有限公司 | 一种通用eda模型版图物理连接关系的重建方法 |
CN112182311A (zh) * | 2020-12-01 | 2021-01-05 | 南京集成电路设计服务产业创新中心有限公司 | 一种数据搜索方法、电子设备及计算机可读存储介质 |
CN112182311B (zh) * | 2020-12-01 | 2022-05-24 | 南京集成电路设计服务产业创新中心有限公司 | 一种数据搜索方法、电子设备及计算机可读存储介质 |
CN112988758A (zh) * | 2021-04-26 | 2021-06-18 | 北京芯愿景软件技术股份有限公司 | 目标对象定位方法、装置、电子设备和存储介质 |
CN114741388A (zh) * | 2022-03-29 | 2022-07-12 | 中山大学 | 一种集成电路版图数据索引的新型构建方法 |
CN114741388B (zh) * | 2022-03-29 | 2024-02-23 | 中山大学 | 一种集成电路版图数据索引的新型构建方法 |
CN117576249A (zh) * | 2024-01-19 | 2024-02-20 | 弈芯科技(杭州)有限公司 | 一种芯片版图数据处理方法及装置 |
CN117576249B (zh) * | 2024-01-19 | 2024-04-02 | 弈芯科技(杭州)有限公司 | 一种芯片版图数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101593220A (zh) | 一种超大规模集成电路版图数据的管理方法 | |
CN112035433B (zh) | 将bim模型转为支持大体量分级加载gis模型的方法 | |
US8453091B1 (en) | Method and mechanism for managing hierarchical data for implementing region query | |
US20230084389A1 (en) | System and method for providing bottom-up aggregation in a multidimensional database environment | |
Chrisman | The role of quality information in the long-term functioning of a geographic information system | |
CN105339931B (zh) | 用于处理数据容器的方法和设备 | |
Cromley et al. | Coupling land use allocation models with raster GIS | |
EP0974108B1 (en) | A system and method of optimizing database queries in two or more dimensions | |
CA1296811C (en) | Apparatus storing a representation of topological structures and methods of building and searching the representation | |
JP2020512641A (ja) | 多次元データベース環境において1回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムおよび方法 | |
US11188557B2 (en) | Systems and methods for an end-to-end visual analytics system for massive-scale geospatial data | |
CN101196946A (zh) | 用于支持设计电路的方法、装置及印刷电路板制造方法 | |
CN103314378A (zh) | 智能存储器***编译器 | |
CN103617295A (zh) | 一种地理信息矢量数据处理的方法和装置 | |
US20050086203A1 (en) | Database access system, method of accessing a database, and method of designing a database access system | |
CN108090150A (zh) | Gis空间对象存储方法及其*** | |
CN112862937A (zh) | 用于处理图形图元的方法、图形处理***和存储介质 | |
Damiani et al. | Spatial data warehouse modelling | |
Shou et al. | Walking Through a Very Large Virtual Environment in Real-time. | |
Fernández Freire et al. | A cultural heritage application schema: achieving interoperability of cultural heritage data in INSPIRE | |
Bao et al. | LOD-based clustering techniques for efficient large-scale terrain storage and visualization | |
US8407228B1 (en) | Method and mechanism for maintaining existence information for electronic layout data | |
Cerutti et al. | Architectural heritage semantic data managing and sharing in GIS | |
US20080114717A1 (en) | Retrieving hierarchical data | |
Beilschmidt et al. | An efficient aggregation and overlap removal algorithm for circle maps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091202 |