一种超大规模集成电路版图数据的管理方法

文档序号:6464178阅读:136来源:国知局
专利名称:一种超大规模集成电路版图数据的管理方法
技术领域
本发明涉及一种超大规模集成电路版图数据的管理方法,特别是针对版图交互编辑中的 显示、局部数据修改,属于计算机辅助设计中的数据库管理领域。 背彔技术
随着设计尺寸的减小和设计规模的增大,版图所需要处理的数据越来越大,无论是查看、 编辑、检查还是使用这些数据都会受到硬件系统处理上限的限制。因此,设计一个新的数据 管理系统处理这些需求,使建立在这个系统之上的应用程序能够自由的访问,使用这些数据 而不被系统所能够提供的环境限制成为了一个必然的需要。
通过分析,对数据的应用(主要是编辑器的查看,修改以及其他类型应用程序对数据的 需求)很多时候都是具有区域性和层次性的。B卩,在应用的某一个时刻并不是所有的数据都 需要被读入到内存中,只有一部分会被应用程序所访问到,并且这些数据往往具有几何位置 上的局部性(由版图数据是几何图形的几何这一特性所决定的)。例如,对于一个版图的显示 应用来说,显然
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等多会是局部细节的 数据要求;而版图编辑器则主要是做显示用,可以只知道一个概略的情况,然后根据使用者 的要求按需到要求的处理级别上;其他的例如光学接近校正0PC应用可能会更强调数据的局 部修改,要求能在短时间内处理小规模的数据插入、删除操作。
本发明公开的集成电路版图数据的管理方法提供给使用者可选择的处理物体本身的大小 范围、要处理的物体所在的区域的大小、在指定可使用的内存大小下配置,调节数据库的表 现,满足要求。这是一个external memory system (model)。数据的存储和程序代码的存储 空间是分开的,管理的是数据从文件空间到内部内存空间(进程空间)的映射。
本发明使用带有区域查询特征的B+树形式索引组织、査找、管理数据,依靠空间填充曲 线保持从二维平面位置到一维曲线上时数据存储的空间局部特性。
B+树把一维的线性空间分成不交叠的区间,并把这些区间封成一个个的节点。B+树针对 每一个物体计算出它的大小和它所在大小所对应的层上的空间填充曲线的索引;然后把这些
物体连同它们的索引排序,并把排好序的这个相对于整个图形空间的序列压倒一个个的数据 页面、索引页面中就可以构建出一个具有所给定的空间利用率的B+树索引文件和数据文件。 可供选用的空间填充曲线很多,诸如Hilbert曲线,Z曲线,U曲线。在实现的时候可以根据 需要进行选择。但无论采用那种曲线,都是要保持二维平面的图形局部特性。 下面是数据重组和使用的具体流程-
1) 从诸如GDSII等流数据文件中读入每一个图形,根据图形的最小外框BBox的最大尺 寸,取两个方向上跨度的最大者分层,每个分层称为一个mesh层;同时根据所采用的空间填 充曲线,对每个按照近似大小分层上图形的位置编码;取物体的左下坐标计算出该物体在其 所在层上的索引值;处理好之后的物体连同它们的索引值,按照所在的不同mesh层分别写到 临时文件中。
2) 对每一个大小的mesh层所对应的临时文件中的图形索引排序,在排序之后使用批处 理的方式构建一棵B+树,并按照预先确定的页面大小写入到最终的索引文件和数据文件中, 完成数据的组织。
3) 根据所要求的访问的尺寸,确定raesh上需要被访问的数据,并根据需要访问的2维 区域(一般是个矩形区域),确定对应空间填充曲线上的曲线段;把所需的索引页面和数据页 面读入到特定的缓冲区策略所控制的内存区域中,提供指针供应用程序使用。
4) 应用程序使用数据的时候,直接使用映射到主存中的文件镜像,并在镜像上做修改,然后将修改后的页面写出到原来文件中的页面上;如果有页面上的数据被全部删除或者剩下 的数据很少以至于可以把它分布到其周围的页面中时,把这个页面标记为空页面,交给一个 基于文件的空页面链表处理;反之,当需要一个新的页面的时候,首先使用空页面链表中页 面,如果没有,则直接在文件的末尾增加所需的页面。这样,小规模的修改只需影响到有限 的几个页面。当修改较多的时候,文件中数据存放的局部性会被破坏,这时只要将文件从头 到尾按照其在B+树中的排序顺序重新写出到一个新的文件中就可以恢复数据局部性。


图1为版图数据的管理方法的构建和使用流程。 图2为版图数据的管理方法中mesh分层的示意图。 图3为使用Z编码时的编码、查询过程。
具体实施例方式
下面结合附图和实施例对本发明进一步说明。实现本发明的步骤如下
1) 数据的分层(mesh plane)
如图2所示,mesh-plane实际上是一个类似于从上到下一个个网眼大小固定的筛子,当 一个object进入时,大的物体留在上层,而小的物体会掉落在下层。这些以物体的max-size 为判断标准形成的层构成了版图数据的管理方法系统中的一个个mesh-plane。对于32位的 坐标表示空间来说,在2x2倍大小的相邻plane尺寸要求下,只能存在32个plane。例如, l号plane的大小是32-bit数据的最高位,32号plane的网眼大小是size的最低位。并且 任何一个物体一定也只能存在于一个mesh-plane中。图2中有3层mesh-plane。
2) 以Z编码为例的索引(key)生成
版图数据一般是大量大小差距不大的图形所组成,而且趋于均匀分布,特别大和特别少 的物体,以及某一个大小的物体在某个区域上大量堆积的情况比较少。因此,在确定了一个 图形应该属于那个mesh-plane以后,由于图形所在的raesh是根据其大小而确定的,bin的 大小和这层上的物体的大小是相当的。图形会落到该层mesh所划分的某一个bin当中(这里 取其左下角坐标,作为一个点必然回落到某一个bin中)。然后,取其所在的bin的位置作为 这个object的位置描述是恰当的。
下一个步骤就是对每一个mesh-plane上的bin给与一个值来描述它在这个plane中的位 置,这里采用的是位交错的方法将每一个bin编码,并构成了一个从左下角到右上角整个排 序的序列,即,所谓的空间填充曲线。
图3中是这个编码的实际例子
a)左上角中的Al这个bin的key是0000, A2是0001, A3是0010, A4是0011。而B是1101。
b) 这样,在右上角图中,显然,根据它们的key的大小排序为Al-A2-A3-A4; 即"N"的顺序。
c) 第三个图中,考虑更上一层的划分,显然在只考虑最高bit的情况下会类^^的出 现一个大"N"作为fill curve。这样,就层次的构成了从左下到右上的排序的 fill curve;同时在这个图上,它们的位置描述的顺序是Al- 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 的内容就可以了。这就是8+-1^6所对应的底层查询方法。同时,也可以看出, mesh-plane的大小限制在这里给出了一个安全的较小范围,提高了查找的效率。
3)对图形排序、填充以及构建B+树
在上面的处理过程中,顺序读入一个文件,对文件中的每一个图形,可以经过简单的计 算得出它的mesh,以及它在这个mesh-plane中所在的bin的编号,g卩,它的key。
下来要做的是根据这些key,对每一个mesh层生成一个包含B+树的索引文件来记录其索 引以及将这些数据打包到固定大小的数据页面中写入最终的数据文件中。
对于这种大规模数据的排序一般情况下会使用多路归并的合并排序来解决(根据数据量 的大小可能会2-stage或者更多)。
因为对数据做了排序,所以可用批处理的方法按照从左到右的顺序构建叶节点来构建这 个B+-树,这个过程比一个个的插入快B倍。
对于数据的打包因为磁盘是块设备,所以,以页面为单位在内存和磁盘间交换数据是 比较有效率的。
a) 使用页内便宜表和堆的方式来构建页面内部内容(因为数据是变长的);
b) 当一个具有新的key的图形数据在页面中被插入时,生成一个entry,插入到B+ 树的叶节点上,并根据图形的实际大小设置所在key所对应的bin对周围bins 的覆盖情况;
在数据的转换过程中可能会对流格式的文件进行多遍读写,视版图的规模而定。 这样做带来的好处是
a) 利用了8+-树的大扇出的特点,降低了査找树的高度;
b) 3+-树是一棵平衡树,考虑到我们插入叶节点时的操作,这个平衡是针对了数据分布自然形成的磁盘访问平衡。
c) 因为8+-树中的叶节点是相邻连接的,这在进行范围查询的时候可以很容易的确 定出应该调入的数据页面。不用管上层的树结构,只要找到起点,然后按照指针 顺序读下去,直到超出要求的key结束就行了 。
d) 当需要做相邻查找时则可以直接到相应的bin中去査询,如果包含了这个bin的 key的entry存在于叶节点中,那么读取它;如果其周围的bin有影响了这个区 域的,也把那些读入进来;如果没有以上两者,则确定不存在这样的数据。
4)使用索引时,结合适当的buffer management策略把需要的页面读取进来,这会是影响 最终性能最重要的一个因素,根据所采取的策略和程序实现会有很大的不同。缓存管理器应 具有的特点是
a) 如果要考虑并行操作,应使用clock类策略而不是LRU类;
b) 如果访问的形式不能预先确定,应选用自适应的策略,并应注意同时考虑使用时 间跨度和反问频率对页面淘汰策略的影响;
c) 如果可以确切的知道访问策略,最好使用组合策略,以供应用程序选择采用的方 式,减少不必要的性能损失;
d) 最好能够实现对修改后页面写出的非同步处理,以便在大数据需求的时候不至于 等待页面写出;
权利要求
1、一种超大规模集成电路版图数据的管理方法,Abyss,特别针对版图交互编辑中的显示、局部修改对二维的图形数据进行了组织,其构造和使用的步骤如下1)使用分层管理,从流数据文件中读入每一个图形,根据图形的最小外框的最大尺寸,取两个方向上跨度的最大者进行分层;根据图形的大小把图形分布到不同的层上,以便根据读取尺寸的需要选择不同的层、区域上的物体集合;2)根据所采用的空间填充曲线,对每个按照近似大小分层上图形的位置编码,取物体的左下坐标计算出该物体在其所在层上的索引值,处理好之后的物体连同它们的索引值,按照所在的不同分层分别写到临时文件中;3)针对每一个分层所对应的临时文件中的图形索引排序,以便用批处理的方式构建一棵B+树,并按照事先选定的页面大小输出到最终的索引文件和数据文件中,完成数据的组织,对每一个层上的数据页面,把页面中数据的索引最小值和页面的偏移量插入到B+树的叶节点中;叶节点中同时使用两个位表示所指向的页面中的物体集合是否覆盖到了其上面和右面的相邻区域;4)数据访问时,根据访问的尺寸范围,确定涉及的分层;根据需要访问的矩形区域,确定在对应空间填充曲线上切割形成的索引范围;根据B+树的结构,把所需的索引页面和数据页面读入到特定的缓冲区策略所控制的内存区域中,提供指针供应用程序使用;5)应用程序使用数据的时候,通过缓存使用映射到主存中的文件镜像,并在镜像上做修改,然后由缓冲区将修改后的页面写出到原来文件中的页面上;如果有页面被清空时,把这个页面标记为空页面,交给一个基于文件的空页面链表处理;反之,当需要一个新的页面的时候,首先使用空页面链表中页面,如果没有,则直接在文件的末尾增加所需的页面。
2、 如权利要求l所述的一种超大规模集成电路版图数据的管理方法,其特征在于每出现 一个不同的编码B+树就在叶节点中插入一个索引,不同的索引可以指向同一个页面,实现一 个稀疏索引向稠密索引的过渡,尽可能的使用索引满足搜索的需要,阻止不必要的数据页面 读入。
3、 如权利要求1或2所述的一种超大规模集成电路版图数据的管理方法,其特征在于对 图形按照大小分配到不同粒度的空间曲线所控制的层上,增强了数据集合控制和编码区分度; 数据页面的索引中使用2个数据位页面对周围区域的覆盖情况,可以减少数据页面的读取。
全文摘要
本发明公开了一种超大规模集成电路版图数据的管理方法,特别是针对版图交互编辑中的显示、局部数据修改。本方法根据物体大小分层;在每层上采用空间填充曲线为每个物体计算一个值作为标签;针对每一个层,以该层上物体的标签排序,并构建成B+树,数据存放在以页面为单位的数据文件中;在需要取得或修改某一个区域的物体集合时,首先读入索引文件,使用B+树作为索引,把相应的数据调入主存进行处理或在对数据修改之后将之重新写出到文件中;页面读入、写出通过特定的缓存进行。
文档编号G06F17/50GK101593220SQ20081011311
公开日2009年12月2日 申请日期2008年5月28日 优先权日2008年5月28日
发明者毅 苏 申请人:北京华大九天软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1