CN111898331A - 超大规模集成电路频域仿真计算任务随机动态分配方法 - Google Patents

超大规模集成电路频域仿真计算任务随机动态分配方法 Download PDF

Info

Publication number
CN111898331A
CN111898331A CN202010515363.4A CN202010515363A CN111898331A CN 111898331 A CN111898331 A CN 111898331A CN 202010515363 A CN202010515363 A CN 202010515363A CN 111898331 A CN111898331 A CN 111898331A
Authority
CN
China
Prior art keywords
triangle
polygon
parallel
layer information
edge
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
Application number
CN202010515363.4A
Other languages
English (en)
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.)
Beijing Wisechip Simulation Technology Co Ltd
Original Assignee
Beijing Wisechip Simulation Technology 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 Beijing Wisechip Simulation Technology Co Ltd filed Critical Beijing Wisechip Simulation Technology Co Ltd
Priority to CN202010515363.4A priority Critical patent/CN111898331A/zh
Publication of CN111898331A publication Critical patent/CN111898331A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本申请公开的超大规模集成电路频域仿真计算任务随机动态分配方法,通过将运算程序划分成多个互不重叠的、执行独立运算的并行粗颗粒,通过进行版图投影、三角剖分运算、网格对齐、层信息叠加、平行平板场域识别、平行平板场域自适应网格细分处理,来一次性快速识别所有平行平板场域,避免本应相互耦合的平行平板场域之间不会因为数值计算的误差导致出现缝隙的问题,同时利用不同的并行粗颗粒进行不同层次的计算,减少进程之间的通信及因为同步而产生的等待时间,也避免由于过高的峰值内存导致虚拟内存访问而造成的硬盘读写瓶颈。

Description

超大规模集成电路频域仿真计算任务随机动态分配方法
技术领域
本申请涉及超大规模集成电路频域仿真高性能计算技术领域,特别涉及一 种超大规模集成电路频域仿真计算任务随机动态分配方法。
背景技术
为了对多层超大规模集成电路(Very Large Scale Integration,VLSI) 的信号完整性(SI)、电源完整性(PI)和电磁兼容(EMI/EMC)进行快速准确的分析, 解决高速电路设计中日益突出的各种PI和SI问题:如同步切换噪声(SSN)问题, 电磁耦合问题,信号回流路径不连续问题,电源谐振问题,去耦电容放置不当 问题以及电压降超标等问题,从而帮助用户发现或改善潜在的设计风险,通常 采用频域分析手段分析高速电路的全波电磁场,进而提取高速电路系统的电源 网络与信号网络的阻抗(Z)参数及散射(S)参数,研究电源与信号网络的频 率响应特征以及输入阻抗,或研究信号的插入损耗及反射系数,为精确分析电 源和信号的性能提供依据。
多层超大规模集成电路工作在高频时,电磁波在平行金属板之间的场域(称 为平行平板场域,Parallel Plate Field Domain,简称为PPFD)内传播。由于 VLSI板的厚度及层间距远小于板的尺寸,故可将VLSI板的三维计算场域简化为 多个二维计算场域,该二维计算场域即为上下层耦合的平行平板场域(电磁波 的传播区域)。平行平板场域指的是VLSI版图不同金属层的多边形垂直投影到同 一层时,在投影层的公共面积夹着的一层或多层电介质区域。
电磁波在PPFDs传播时,存在两种边界条件:一类是开口边界条件,表示场 域与外部空间的分界面;另一类是连续边界条件,表示相邻的两种不同PPFD的 分界面。图1示出了由4层金属层组成的PPFD示意图。
如果VLSI有N层包含多个多边形的金属板,则有N*(N-1)/2种可能的电介质 区域。当利用该二维计算场域计算电磁波在VLSI金属层之间的电介质中传播时, 首先需要识别这种平行平板场域。因实际的VLSI每层的版图非常复杂且各不相 同,多层版图多边形投影到同一层后,识别其形成的多个平行平板场域是一项 具有挑战性的工作。
现有技术中识别一具有N层金属板的集成电路的平行平板场域的方法是,从 最下层金属板开始向上,依次比较两层金属板上多边形的公共面积(交集),该 公共面积(交集)即为该两层金属板之间的平行平板场域。在这层金属板与它 上面的某层金属板的比较完成后,在与更上层金属板进行比较之前,将该层金 属板的多边形减去求得的交集,作为下次比较时这层金属板的多边形。
如果集成电路有N层包含不同多边形的金属板,这种层与层之间的比较与操 作需要进行N*(N-1)/2次,导致布尔操作计算的时间非常长。并且,由于不同层 金属板的多边形版图之间求解交集的过程中会出现数值计算误差,这会导致本 应对齐的边或多边形由于多边形之间布尔操作的数值计算误差而没有对齐,本 应相邻而发生相互耦合的平行平板场域之间形成缝隙,这会导致平行平板场域 的识别错误,进一步导致高频电磁场的分析错误。
同时,现有技术在对集成电路版图进行频域仿真计算过程中涉及到的场域 识别和网格细分处理时,根据边交换法将三角网格对齐到多个多边形各个边时, 容易遗漏或者重复执行对符合条件的多个多边形的边进行的交换,导致该边交 换法的精确性、完整性以及高效性得不到保证,进而影响到该场域识别与网格 细分处理方法的准确与高效问题。
另外,在实施上述场域识别和网格细分处理过程中,需要进行海量的同类 型大规模数值计算,这些同类型大规模数值计算包括但不限于:超大规模集成 电路版图多边形投影与合并;多边形网格剖分与对齐;网格层信息合并;平行 平板场域识别,以及平行平板场域网格自适应细分等。这类大规模数值计算由 于不同计算实例具有不同结构,导致不同计算实例的计算复杂度不对等,对于 这类不对等的海量计算,需要高效率并行计算方法设计,充分考虑不同实例计 算复杂度的不对等,尽可能提高并行计算效率。
常规并行计算基本针对单个计算实例并行,在大量循环的计算部分实现并 行,并行颗粒通常很细,这样导致不同进程之间存在大量的数据交换,降低并 行效率;其次,由于不同进程计算进度不同,不可避免在需要数据共享和同步 时出现大量等待,从而导致整体并行效率很低;再者,由于单个实例计算过程 相当部分的计算过程有先后顺序,数据有依赖性,因此针对单个计算实例并行 时,有相当部分的计算无法并行化,这也严重降低整体并行效率。
发明内容
(一)申请目的
基于此,为了解决在频域仿真计算过程中,直接对不同层的版图多边形进 行布尔操作计算多边形的交与差的布尔操作计算的时间非常长的问题,避免直 接逐层操作由于数值计算误差使得本应对齐的边或多边形没有对齐,而是形成 缝隙,出现平行平板场域的识别错误,进一步导致高频电磁场的分析错误的问 题;以及,为了避免在场域识别与网格细分处理过程中遗漏或重复对符合条件 的多边形的边进行交换,保证场域识别与网格细分处理方法的准确与高效;以 及,为了在频域仿真计算过程中最大限度的减少各进程之间的通信,避免多进 程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈,同时完 美解决不同计算实例复杂度不对等带来的进程等待问题,进而大大提高并行计 算效率,本申请公开了以下技术方案。
(二)技术方案
本申请提供了一种超大规模集成电路频域仿真计算任务随机动态分配方法, 包括:
步骤100,将执行整体多层超大规模集成电路版图场域识别及网格细分处理 运算过程的整体运算程序划分为多个互不重叠的运算颗粒,其中,所述运算颗 粒为执行相同类型的所有独立运算的运算程序,并且将所述运算颗粒执行的一 个独立运算作为一个运算任务;
步骤200,获取各运算颗粒的加权CPU时间和整体集成电路版图场域识别及 网格细分处理运算过程的总CPU时间,依据所述加权CPU时间和所述总CPU时 间的占比确定出并行粗颗粒;
步骤300,通过第一并行粗颗粒进行:将超大规模集成电路版图的多个多边 形垂直投影到同一层,将投影后多边形的发生重合的边的多边形信息和层信息 进行合并,并对投影后多边形的顶点进行Delaunay三角剖分运算,生成Delaunay 三角网格;
步骤400,通过第二并行粗颗粒进行:将所述三角网格对齐到所述多个多边 形的各个边,从所述各个边之间的相交处确定出多边形的新增顶点以及三角网 格的新增节点,形成第一三角网格;
步骤500,通过第三并行粗颗粒进行:基于布尔运算将所述第一三角网格中 各个边的层信息叠加到相应的三角形中,根据所述三角形和所述多边形边的层 信息,识别并收集各个平行平板场域包含的三角形和多边形边;
步骤600,通过第四并行粗颗粒进行:根据网格参数要求和不同平行平板场 域的公共边,对所述各个平行平板场域内的三角形进行自适应网格细分处理, 并针对该细分网格计算其频域响应;其中,
在执行所述并行粗颗粒的过程中,将同一所述并行粗颗粒执行的所有运算 任务的序列随机打乱,形成新的运算任务序列,并按照所述新的运算任务序列 将该并行粗颗粒执行的所有运算任务分配到所有进程中,完成运算任务的并行 运算。
在一种可能的实施方式中,步骤300中所述将投影后多边形的发生重合的 边的多边形信息和层信息进行合并,包括:
通过所述第一并行粗颗粒完成以下步骤:
步骤310,对于每个多边形顶点,确定出与该多边形顶点的距离小于预定阈 值的近距多边形顶点,并将该多边形顶点与相应的近距多边形顶点作为重合顶 点组;
步骤320,确定出每组重合顶点组的中心,将该中心作为相应重合顶点组中 的所有顶点的替代,并将中心的关联边作为相应重合顶点组中所有顶点的关联 边的合并;
步骤330,比较所有顶点的关联边,将包含相同两端点的两关联边中的任一 条边删除,并将剩余边作为被删除边的替代,对删除边的层信息和剩余边的层 信息进行或运算,将或运算结果作为剩余边的新的层信息,以及对删除边的多 边形信息和剩余边的多边形信息进行合并,将合并结果作为剩余边的新的多边 形信息。
在一种可能的实施方式中,所述步骤400包括:
通过所述第二并行粗颗粒完成以下步骤:
步骤410,确定出所有的不是三角形公共边的非公共边,得到非公共边集合;
步骤420,将所述非公共边集合中最长的边从该集合中移除;
步骤430,确定出包含被移除边的一个顶点且其余两个顶点分别位于该被移 除边两侧的第一三角形;
步骤440,确定出与所述第一三角形具有公共边且不重叠的第二三角形,将 所述第一三角形和所述第二三角形的公共边进行交换,将交换后得到的其中一 个三角形作为新的第一三角形,并重复执行本步骤,直到被移除边为所述第一 三角形和所述第二三角形的公共边;
步骤450,判断是否存在与所述被移除边的非顶点处相交并且属于另一多边 形的相交边,若存在则在所述被移除边与所述相交边的交点处新增多边形的顶 点及三角网络的网格节点,形成由所述新增的顶点带来的新增边,以及由所述 新增边分割出来的新三角形,并将所述新增边加入所述非公共边集合中;
步骤460,重复执行所述步骤420至步骤450,直至所述非公共边集合为空 集,得到第一三角网格。
在一种可能的实施方式中,步骤500中所述基于布尔运算将第一三角网格 中各个边的层信息叠加到相应的三角形中,包括:
通过所述第三并行粗颗粒完成以下步骤:
步骤510,将所述第一三角网格内所有三角形的层信息设置为未赋值状态, 若任意多边形的任意边的右三角形的层信息为未赋值状态,则将该右三角形加 入多边形集合中,并将该任意边的层信息设置为该右三角形的层信息;
步骤520,移除所述多边形集合中的任一三角形,若判断出该被移除三角形 的三个相邻三角形中任意一个或多个三角形的层信息为未赋值状态,则将该被 移除三角形的该一个或多个相邻三角形加入所述多边形集合中,并将该加入所 述多边形集合的一个或多个三角形的层信息设置为该被移除三角形的层信息与 公共边层信息的差;
步骤530,若所述多边形集合为非空集,则执行所述步骤520,否则执行步 骤540;
步骤540,若所有多边形均处理完成,则结束层信息叠加过程,否则执行所 述步骤520;其中,
所述多边形任意边的右三角形为包含该任意边且该任意边的方向与多边形 边方向相同的三角形,所述公共边层信息是指与被移除三角形相邻三角形的公 共边的层信息。
在一种可能的实施方式中,步骤500中所述根据所述三角形和所述多边形 边的层信息,识别并收集各个平行平板场域包含的三角形和多边形边,包括:
通过所述第三并行粗颗粒完成以下步骤:
步骤550,设置所有平行平板场域的多边形集合和三角形集合为空;
步骤560,选取一未处理的三角形或多边形,若依据该三角形或多边形的层 信息判断出平行平板场域最低层金属层与位于所述最低层金属层之上的上层金 属层之间不存在任何版图金属层,则将该三角形或多边形加入到所述三角形集 合或多边形集合中;
步骤570,若所述最低层金属层为非最高层,则将所述上层金属层作为新的 最低层金属层并执行步骤560,否则执行步骤580;
步骤580,若所有三角形和多边形边均处理完毕,则完成识别和收集过程, 否则选取新的未处理的三角形或多边形并执行步骤560。
在一种可能的实施方式中,所述步骤600包括:
通过所述第四并行粗颗粒实现以下步骤:
步骤610,依据每个平行平板场域的多个多边形的顶点利用Delaunay三角 剖分算法生成第二三角网格;
步骤620,依据步骤500中识别出的平行平板场域,将所述第二三角网格对 齐到各个平行平板场域的多个多边形的边,并删除各个平行平板场域之外的三 角形,得到第三三角网格;
步骤630,按照网格质量要求和网格尺寸要求对所述第三三角网格的平行平 板场域进行网格细分处理,其中,网格细分处理过程中网格质量要求的优先级 高于网格尺寸要求的优先级;
步骤640,对相邻两个平行平板场域的公共区域进行网格剖分,若平行平板 场域(i,j)多边形边e的层信息同时包含平行平板场域(i,j)和平行平板场域 (l,m),其中i,j,l,m为金属层的层别且其中有两个数相等,则将多边形边e 对应的区域作为平行平板场域(i,j)和平行平板场域(l,m)的平板间耦合区域;
步骤650,若所有平行平板场域的网格质量和网格尺寸均满足相应的阈值则 结束网格细分处理,执行步骤660,否则执行步骤630;
步骤660,基于该超大规模集成电路平行平板场域生成的自适应细分网格, 列写关于频域场的有限元方程组,求解这个有限元方程组得到基本场分布,依 据预先定义的需求计算端口的S参数、Z参数物理量,获得该超大规模集成电路 在不同频率下的电磁响应特征。
在一种可能的实施方式中,所述依据所述加权CPU时间和所述总CPU时间 的占比确定出并行粗颗粒包括:
将各运算颗粒的加权CPU时间按照从大到小的顺序排序并依次累加直到累 加和超过90%的所述总CPU时间,将所述累加和之中的每个运算颗粒作为一个并 行粗颗粒。
在一种可能的实施方式中,所述将同一所述并行粗颗粒执行的所有运算任 务的序列随机打乱,形成新的运算任务序列,包括:
将运算任务的序列List0={m},对应生成随机数序列{Rm},m=1,2,3,…,M;
对序列{Rm}从小到大排序,排序后的序列为{Om};
生成新的不重复的运算任务序列List={Lm}。
在一种可能的实施方式中,若所述并行粗颗粒中某运算任务被分配到一进 程中,则生成该运算任务的用于表明该运算任务已经被分配标志文件;另一进 程在申请分配某一运算任务时,将尝试生成该运算任务的标志文件,并在标志 文件存在的情况下使所述另一进程自动尝试申请分配下一运算任务。
在一种可能的实施方式中,利用标志文件分配运算任务的步骤包括:
步骤A1、进程申请分配第i个运算任务;
步骤A2、判断第i个运算任务的标志文件Fi是否存在,若存在则跳至步骤 A8,若不存在则跳至步骤A3;
步骤A3、判断标志文件Fi是否被锁定,若被锁定则跳至步骤A8,若未被 锁定则跳至步骤A4;
步骤A4、锁定标志文件Fi;
步骤A5、生成标志文件Fi;
步骤A6、标志文件Fi解锁;
步骤A7、完成第i个运算任务的运算;
步骤A8、判断并行粗颗粒中的所有运算任务是否全部完成,若未完成则i =i+1,并返回步骤A1,若已完成则跳至步骤A9;
步骤A9、该并行粗颗粒所需执行的所有运算任务全部分配到所有进程中, 该并行粗颗粒的分配结束;其返回执行其他并行粗颗粒分配其各自所需执行的 所有运算任务。
(三)有益效果
本申请公开的超大规模集成电路频域仿真计算任务随机动态分配方法,具 有如下有益效果:
1、该方法避免了在频域仿真计算过程中直接对不同层的版图多边形进行布 尔操作计算多边形的交(Intersection)与差(Subtract)导致布尔操作计算的 时间非常长的问题;且解决了由于与不同层进行布尔操作有先后顺序,本应对 齐的边或多边形由于布尔操作的数值计算误差导致边没有对齐,而是形成缝隙, 由此导致平行平板场域的识别错误,进一步导致高频电磁场的分析错误的问题。
2、针对不同的超大规模集成电路模型,能基于三角形网格的层信息,一次 性快速识别所有平行平板场域,且本应相互耦合的平行平板场域之间不会因为 数值计算的误差导致出现缝隙,完美实现多层超大规模集成电路的高频电磁场 分析的快速、准确的计算目标。
3、可以避免在场域识别与网格细分处理过程中执行边交换法时遗漏或重复 对符合条件的多边形的边进行交换,以保证边交换法的精确性、完整性以及高 效性,进而保证场域识别与网格细分处理方法的准确与高效。
4、在频域仿真计算的各个层次的计算中实现不同的粗颗粒并行,极大程度 减少进程之间的通信及因为同步而产生的等待时间,同时,由于采用计算任务 随机动态分配方法,保证复杂度不对等的计算模型随机均匀分布在各计算节点, 避免由于过高的峰值内存导致虚拟内存访问而造成的硬盘读写瓶颈。
附图说明
以下参考附图描述的实施例是示例性的,旨在用于解释和说明本申请,而 不能理解为对本申请的保护范围的限制。
图1是由4层金属层组成的平行平板场域的结构示意图。
图2是本申请公开的超大规模集成电路频域仿真计算任务随机动态分配方 法实施例的流程示意图。
图3是Delaunay三角网格对齐到三层集成电路版图多个多边形的边的示意 图。
图4是Delaunay三角网格对齐到三层集成电路版图多个多边形的边的各三 角形的层信息的示意图。
图5是三层集成电路版图平行平板场域识别与网格细分处理结果的示意图。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实 施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。
下面参考图1-图5详细描述本申请公开的超大规模集成电路频域仿真计算 任务随机动态分配方法第一实施例。如图1所示,本实施例公开的方法主要包 括以下步骤100至步骤600。
步骤100,将执行整体多层超大规模集成电路版图场域识别及网格细分处理 运算过程的整体运算程序划分为多个互不重叠的运算颗粒。其中,运算颗粒为 执行相同类型的所有独立运算的运算程序,并且将运算颗粒执行的一个独立运 算作为一个运算任务。
在并行计算前,需人工确定进程数,并将其中一个进程作为主进程。
运算颗粒是根据问题运算特征定义的。对不同行业,问题运算特征各不相 同。例如对于大规模集成电路电磁场分布计算,在多层超大规模集成电路的版 图场域识别及网格细分处理时,其运算特征包括:电路版图多边形投影、层信 息合并、版图的三角剖分运算、网格与多边形的对齐、层信息叠加、平行平板 场域识别、自适应网格细分处理等。其中,平行平板场域识别等操作是即是针 对频域仿真的。
具体的,若根据上述运算颗粒的定义将整个场域识别及网格细分处理运算 程序划分为c1、c2、c3、c4、c5、c6共6个运算颗粒,6个运算颗粒可执行整 个运算过程的运算任务;若c1执行5个运算任务,c2执行100个运算任务,c3 执行50个运算任务,c4执行500个运算任务,c5执行200个运算任务,c6执 行2个运算任务;那么共857个运算任务构成整个运算过程,上述整个运算过 程只需c1至c6共6个运算颗粒来实现。其中执行整个运算过程依次需要c1至 c6这6个运算颗粒执行,且c1至c6中均包含至少1个独立运算(运算任务)。
步骤200,获取各运算颗粒的加权CPU时间和整体集成电路版图场域识别及 网格细分处理运算过程的总CPU时间,依据加权CPU时间和总CPU时间的占比 确定出并行粗颗粒。具体的,将各运算颗粒的加权CPU时间按照从大到小的顺 序排序并依次累加,找出直到累加和超过90%的总CPU时间的运算颗粒,将累加 找出的每个运算颗粒作为一个并行粗颗粒。
根据问题运算特征为每个运算颗粒所需执行的所有运算任务中选取一个经 典运算任务,并将c1至c6这6个运算颗粒执行的6个经典计算任务实现c1~ c6顺序执行一次的串行计算,根据单次计算的串行计算结果,统计6个计算颗 粒完成单次经典计算任务计算所需的CPU时间。
其中:运算颗粒的加权CPU时间的运算公式为:Tweight,i=Utask,i*Ti。其 中,Tweight,i为第i个运算颗粒的加权CPU时间,Ti为第i个运算颗粒单次运算 的CPU时间,Utask,i为第i个运算颗粒执行的运算任务数。
整个运算过程的总CPU时间的运算公式为:
Figure BDA0002528422820000121
其中:T为 整个运算过程的总CPU时间,n为整个运算程序被划分的运算颗粒数,Tweight,i为 为第i个运算颗粒的加权CPU时间。
根据各运算颗粒运算所得的加权CPU时间进行大小排序,若c1加权CPU时 间为0.5s,c2加权CPU时间为1s,c3加权CPU时间为1s,c4加权CPU时间为 10s,c5加权CPU时间为5s,c6加权CPU时间为0.1s,则最终排序结果为 c4>c5>c3=c2>c1>c6;6个运算颗粒的加权CPU时间从大到小依次相加,即 T(c4)+T(c5)+…直到时间和大于总CPU时间的90%为止;如果 T(c4)+T(c5)>90%,那就是c4、c2分别作为一个并行粗颗粒;如果T(c4)>90% 总CPU时间,那么c4为并行粗颗粒。
在执行整个运算过程的整个运算程序中,并行粗颗粒c2并行计算前需要先 执行c1;并行粗颗粒c4并行计算前需要先执行c3,其中c1、c3采用主进程进 行执行。
步骤300,通过第一并行粗颗粒进行以下运算:在获取超大规模集成电路版 图中包含多个顶点的多个多边形之后,将超大规模集成电路版图的多个多边形 垂直投影到同一层,将投影后多边形的发生重合的边的多边形信息和层信息进 行合并,并对投影后多边形的顶点进行Delaunay三角剖分运算,生成Delaunay 三角网格。
集成电路的版图是指真实集成电路物理情况的平面几何形状描述。版图通 常由多边形(N条(N≥3)线段首尾顺序连接起来形成的封闭图形)组成,N条 线段中每条线段的端点即为多边形的顶点。
通过数值计算方法计算电磁波在超大规模集成电路中的传播时,需考虑集 成电路版图的导电区域、介质层,以及由此形成的平行平板场域。
多边形的各个边包含预先设定的所在多边形的多边形信息和所在层的层信 息,并且多边形边和三角形的层信息是一种能唯一标识多边形属于任意一层或 多层集成电路版图的信息。其中,多边形信息包含了重合的边所在的多边形的 情况信息,也就是说,多边形的各个边所在多边形的多边形信息可以区分出重 合的边属于哪些多边形。层信息则表示该层是否属于集成电路版图的任一层, 若边所在的三角形不属于任何一层集成电路版图,将该边的层信息设置为空或 零。
若多边形顶点为逆时针排列,则定义多边形的方向为正向,该多边形内部 区域对应集成电路版图中的导电区域。若多边形顶点为顺时针排列,则定义多 边形的方向为负向,该多边形内部区域对应集成电路版图中的绝缘区域。而本 步骤300中根据Delaunay三角剖分算法形成的Delaunay三角网格中的所有多边 形的方向均为正向。
将投影后的多层多边形边对齐到三角形网格中,如果不同层的多边形相交, 还需将交点插入到多边形顶点和网格中去。附图3所示展现了对齐三层金属版 图多边形形成的平行平板场域过程,图中,顶层和底层多边形重合,均为 AIEJKFLDCBA,中间层为AECFA。
步骤400,通过第二并行粗颗粒进行以下运算:将Delaunay三角网格对齐 到多个多边形的各个边,将各个边之间的交点作为多边形的新增顶点以及三角 网格的新增节点,形成第一三角网格。
上述将三角网格对齐到各个边的操作可以采用边交换法进行实施。边交换 法将符合条件的多边形的边排序形成集合,按排序取出多边形的边,对其进行 交换,直到该集合变为空集,则结束交换过程。
步骤500,通过第三并行粗颗粒进行以下运算:基于布尔运算将第一三角网 格中各个边的层信息叠加到相应的三角形中,根据三角形和多边形边的层信息, 识别并收集各个平行平板场域包含的三角形和多边形边。
具体的,可以采用二进制表示多层结构的集成电路版图的层,二进制的位 数表示集成电路包含的版图层数,二进制每一位对应集成电路版图的每一层, 二进制某位为0表示不包含该层,二进制某位为1表示包含该层。
由于多边形每条边的层信息来自于该多边形所在的金属层,定义第i层金属 层的层为2i-1,这意味着用二进制表示这个数时,1出现在这个二进制的第i位。 根据多边形所在层的层信息,在识别每个金属层的三角形时,该层信息将被叠 加到识别的三角形中;当所有层都识别完时,每个三角形的层信息即记录了该 三角形落在哪些金属层的区域。针对图3所示的三层金属版图多边形,计算出 各三角形的层信息如图4所示,从图4中可以看出,图4中的0表示该三角形 不存在于任何金属层,5是二进制的101,则表示该三角形存在于第1、3层,7 是二进制的111,则表示该三角形存在于第1、2、3层。
本步骤可以一次性识别出图4中三角形层信息为5的三角形连同其边形成 平行平板场域(1,3)区域,图4中三角形层信息为7的三角形连同其边形成 平行平板场域(1,2)和平行平板场域(2,3)区域。
步骤600,通过第四并行粗颗粒进行以下运算:根据网格参数要求和不同平 行平板场域的公共边,对各个平行平板场域内的三角形进行自适应网格细分处 理,并针对该细分网格计算其频域响应。具体的,在识别出所有PPFDs后,即 可对各PPFD内的三角形进行自适应网格细分。网格参数要求可以包括网格质量 要求和网格尺寸要求等。
在步骤300至步骤600的执行过程中,均采用了并行粗颗粒执行运算。在 执行每个并行粗颗粒的过程中,将同一并行粗颗粒执行的所有运算任务的序列 随机打乱,形成新的运算任务序列,并按照新的运算任务序列将该并行粗颗粒 执行的所有运算任务分配到所有进程中,完成运算任务的并行运算。
具体的,随机打乱运算任务序列的方式为:
首先将运算任务的序列List0={m},对应生成随机数序列{Rm},m= 1,2,3,…,M。然后对序列{Rm}从小到大排序,排序后的序列为{Om}。最后生成 新的不重复的运算任务序列List={Lm},Lm为Om在Rm中的位置。
其关键在于将并行粗颗粒中所有运算任务的序列List0={1,2,3,…,M}随 机打乱,产生新的不重复的运算任务序列List={L1,L2,…,LM},然后按照该序 列顺序分配运算任务,即等效为对原始运算任务进行随机分配,该随机分配策 略特征在于随机分配方案能彻底打乱所有运算任务的分配顺序,从而实现各运 算节点同时运算的任务占用的峰值内存总和由进程数和所有模型(运算颗粒)占 用峰值内存的平均值而非最高值决定。
主进程按照形成新的计算任务序列将该并行粗颗粒所需执行的所有运算任 务分配到包含主进程的所有进程中,并完成并行粗颗粒执行的所有运算任务的 并行运算。
本实施例公开的方法,避免了在频域仿真计算过程中直接对不同层的版图 多边形进行布尔操作计算多边形的交(Intersection)与差(Subtract)导致布 尔操作计算的时间非常长的问题;且解决了由于与不同层进行布尔操作有先后 顺序,本应对齐的边或多边形由于布尔操作的数值计算误差导致边没有对齐, 而是形成缝隙,由此导致平行平板场域的识别错误,进一步导致高频电磁场的 分析错误的问题;
并且,针对不同的超大规模集成电路模型,能基于三角形网格的层信息, 一次性快速识别所有平行平板场域,且本应相互耦合的平行平板场域之间不会 因为数值计算的误差导致出现缝隙,完美实现多层超大规模集成电路的高频电 磁场分析的快速、准确的计算目标;
还可以避免在场域识别与网格细分处理过程中执行边交换法时遗漏或重复 对符合条件的多边形的边进行交换,以保证边交换法的精确性、完整性以及高 效性,进而保证场域识别与网格细分处理方法的准确与高效;
另外,在频域仿真计算的各个层次的计算中实现不同的粗颗粒并行,极大 程度减少进程之间的通信及因为同步而产生的等待时间,同时,由于采用计算 任务随机动态分配方法,保证复杂度不对等的计算模型随机均匀分布在各计算 节点,避免由于过高的峰值内存导致虚拟内存访问而造成的硬盘读写瓶颈。
在一种实施方式中,步骤300中通过第一并行粗颗粒将投影后多边形的发 生重合的边的多边形信息和层信息进行合并,具体包括均通过唯一一个第一并 行粗颗粒完成的以下步骤310至步骤330。
步骤310,对于每个多边形顶点,确定出与该多边形顶点的距离小于预定阈 值的近距多边形顶点,并将该多边形顶点与相应的近距多边形顶点作为重合顶 点组。具体的,对所有多边形顶点进行排序,根据排序结果,对每个未被定义 为重合顶点的顶点,搜索与该顶点的距离小于预定阈值的多边形的顶点,并将 该顶点与搜索到的顶点定义为一组重合顶点。
步骤320,确定出每组重合顶点组的中心,将该中心作为相应重合顶点组中 的所有顶点的替代,并将中心的关联边作为相应重合顶点组中所有顶点的关联 边的合并。具体的,对每组重合顶点,取其中心为新合并的顶点,将该组重合 顶点中的所有顶点用新合并的顶点代替,新合并的顶点的关联边为该组重合顶 点中所有顶点的关联边合并,其中,多边形的顶点的关联边为一个端点为该多 边形的顶点的多边形边。
步骤330,比较所有顶点的关联边,将包含相同两端点的两关联边中的任一 条边删除,并将剩余边作为被删除边的替代,对删除边的层信息和剩余边的层 信息进行或运算,将或运算结果作为剩余边的新的层信息,以及对删除边的多 边形信息和剩余边的多边形信息进行合并,将合并结果作为剩余边的新的多边 形信息。具体的,基于多边形的顶点的关联边,对每一个多边形顶点,两两比 较所有关联边,如果两条边e,f包含两个相同的端点,该两条边为重合边,删除 任意一条边e,用边f代替原包含边e的多边形的相应边,并将边e从该顶点的 关联边的列表中删除。将余下的边f的层信息设置为原边e,f的层信息的或,也 就是布尔运算中的或运算,而余下的边f的多边形信息设置为原边e,f的多边形 信息的合并,合并指的是把包含的同类元素合并在一起。然后重复两两比较关 联边,直至处理完所有重合边。
在一种实施方式中,步骤400具体包括均通过唯一一个第二并行粗颗粒完 成的以下步骤410至步骤460。图3为将Delaunay三角网格对齐到三层集成电 路版图多个多边形的边的示意图,参照图3进行步骤410至步骤460的描述。
步骤410,确定出所有的不是三角形公共边的非公共边,得到非公共边集合 Lost。三角形公共边具体是指两个三角形之间的公共边。得到非公共边集合之后, 可以按边长排序的方式形成集合Lost。
步骤420,将非公共边集合中最长的边从该集合中移除。如图3(a)所示, 其中边
Figure BDA0002528422820000181
为非公共边集合中最长的边,因此将边
Figure BDA0002528422820000182
非公共边集合中删除。
步骤430,确定出包含被移除边的一个顶点且其余两个顶点分别位于该被移 除边两侧的第一三角形。如图3(a)所示,从被移除边
Figure BDA0002528422820000183
的顶点A出发,搜索 到包含顶点A且其余两个顶点E、D分别位于边
Figure BDA0002528422820000184
两侧的第一三角形ΔAED。
步骤440,确定出与第一三角形具有公共边且不重叠的第二三角形,将第一 三角形和第二三角形的公共边进行交换,将交换后得到的其中一个三角形作为 新的第一三角形,并重复执行本步骤,直到被移除边为第一三角形和第二三角 形的公共边。如图3(a)至图3(c)所示,从被移除边
Figure BDA0002528422820000191
的顶点A出发,搜 索到包含顶点A且其余两个顶点E、D分别位于边
Figure BDA0002528422820000192
两侧的第一三角形ΔAED, 然后确定出与第一三角形ΔAED具有公共边
Figure BDA0002528422820000193
且与第一三角形ΔAED在面积上 没有任何重叠的第二三角形ΔDEF,交换第一三角形ΔAED与第二三角形ΔDEF 的公共边
Figure BDA0002528422820000194
得到三角形ΔAEF与ΔAFD。以ΔAEF为新的第一三角形,进行 新的公共边
Figure BDA0002528422820000195
的交换,直到得到以被移除边
Figure BDA0002528422820000196
为公共边的三角形ΔABE和三角 形ΔABF。
步骤450,判断是否存在与被移除边的非顶点处相交并且属于另一多边形的 相交边,若存在则在被移除边与相交边的交点处新增多边形的顶点及三角网络 的网格节点,形成由新增的顶点带来的新增边,以及由新增边分割出来的新三 角形,并将新增边加入非公共边集合中。如图3(c)和图3(d)所示,图中存 在与被移除边
Figure BDA0002528422820000197
相交且属于多边形AECFA的边
Figure BDA0002528422820000198
则在边
Figure BDA0002528422820000199
和边
Figure BDA00025284228200001910
的交点处 新增一个多边形的顶点G,该顶点G同时也是三角网络的新增网格节点。将新 增网格节点G插入到Delaunay三角网格中,G作为顶点将两条相交的边
Figure BDA00025284228200001911
Figure BDA00025284228200001912
分为四条公用该顶点的边,而作为网格节点则将两个邻居三角形ΔABE和ΔABF分割为四个三角形:ΔEBG,ΔEGA,ΔFAG和ΔFGB,同时,又生成了一条新的需 要被对齐的多边形的边
Figure BDA00025284228200001913
将边
Figure BDA00025284228200001914
也加入到集合Lost中。
步骤460,重复执行步骤420至步骤450,直至非公共边集合Lost为空集, 得到第一三角网格,如图3(e)和图3(f)所示,最终得到图3(f)中的第一 三角网格。
在一种实施方式中,步骤500中基于布尔运算将第一三角网格中各个边的 层信息叠加到相应的三角形中具体包括均通过唯一一个第三并行粗颗粒完成的 以下步骤510至步骤540。
步骤510,将第一三角网格内所有三角形的层信息设置为未赋值状态,若任 意多边形的任意边的右三角形的层信息为未赋值状态,则将该右三角形加入多 边形集合中,并将该任意边的层信息设置为该右三角形的层信息。其中,多边 形任意边的右三角形为包含该任意边且该任意边的方向与多边形边方向相同的 三角形。
对投影到同一层的每一多边形P,获取其所在层的层信息i,设置多边形集 合Front为空集,取多边形P任意边e的右三角形t,如果右三角形t的层信息 未叠加上多边形P所在层的层信息i,将该右三角形t加入集合Front,将右三角 形t的层信息叠加上多边形P所在层的层信息i。
步骤520,移除多边形集合中的任一三角形,若判断出该被移除三角形的三 个相邻三角形中任意一个或多个三角形的层信息为未赋值状态,则将该被移除 三角形的该一个或多个相邻三角形加入多边形集合中,并将该加入多边形集合 的一个或多个三角形的层信息设置为该被移除三角形的层信息与公共边层信息 的差。
从集合Front取出一个三角形t并将其从集合Front中移除,若三角形t的 三个邻居三角形中的任何一个或多个邻居三角形的层信息未叠加上多边形P所 在层的层信息i,且公共边不为多边形P的任一边,则将三角形t的该一个或多 个邻居三角形加入集合Front中,并将新加入集合Front的三角形的层信息叠加 上多边形P所在层的层信息i,其中,公共边指与三角形t相邻的三角形与三角 形t的公共边。
公共边层信息是指与被移除三角形相邻三角形的公共边的层信息。如果该 边为某个多边形边,公共边层信息即为该多边形边的层信息;如果该边不为任 何的多边形的边,公共边层信息为空或零,此时新加入的相邻三角形的层信息 即为三角形t的层信息。
步骤530,若多边形集合为非空集,则执行步骤520,否则执行步骤540。 具体的,判断集合Front是否为空集,若是空集,则继续下一步操作;若不是空 集,则重新从集合Front取出一个三角形,将其从集合Front中移除,并继续基 于布尔运算进行叠加,直到集合Front为空。
步骤540,若所有多边形均处理完成,则结束层信息叠加过程,否则执行步 骤520。
在一种实施方式中,步骤500中根据所述三角形和所述多边形边的层信息, 识别并收集各个平行平板场域包含的三角形和多边形边,具体包括均通过唯一 一个第三并行粗颗粒完成的以下步骤550至步骤580,完成步骤550至步骤580 的第三并行粗颗粒与完成步骤510至步骤540的第三并行粗颗粒为同一粗颗粒。
步骤550,设置所有平行平板场域的多边形集合和三角形集合为空。具体的, 设置所有平行平板场域(i,j)的多边形集合poly(i,j)和三角形集合tri(i,j)为空,平行 平板场域(i,j)为多层集成电路版图中的金属层第i层和第j层及其内部介质形成 的平行平板场域,其中,i和j为金属层的层别。
步骤560,选取一未处理的三角形或多边形,若依据该三角形或多边形的层 信息判断出平行平板场域最低层金属层与位于最低层金属层之上的上层金属层 之间不存在任何版图金属层,则将该三角形或多边形加入到三角形集合或多边 形集合中。具体的,选取一未处理的三角形t或多边形边e,从最低层开始,若 根据三角形t或多边形边e的层信息识别出第i层金属层向上第一次出现的第j 层金属层,j>i,则将三角形t加入到集合tri(i,j)中或将多边形边e加入到poly(i,j) 中,以收集各个平行平板场域包含的三角形和多边形边。
步骤570,若最低层金属层为非最高层,则将上层金属层作为新的最低层金 属层并执行步骤560,否则执行步骤580。具体的,判断金属层i是否为最高层, 若是,则继续下一步操作;若否,将j赋值给i,返回继续根据三角形t或多边 形边e的层信息,确定第i层之上第一次出现的第j层金属层。
步骤580,若所有三角形和多边形边均处理完毕,则完成识别和收集过程, 否则选取新的未处理的三角形或多边形并执行步骤560。
在一种实施方式中,步骤600具体包括均通过第四并行粗颗粒完成的以下 步骤610至步骤660。
步骤610,依据每个平行平板场域的多个多边形的顶点利用Delaunay三角 剖分算法生成第二三角网格。
步骤620,依据步骤500中识别出的平行平板场域,将第二三角网格对齐到 各个平行平板场域的多个多边形的边,并删除各个平行平板场域之外的三角形, 得到第三三角网格。
步骤630,按照网格质量要求和网格尺寸要求对第三三角网格的平行平板场 域进行网格细分处理,其中,网格细分处理过程中网格质量要求的优先级高于 网格尺寸要求的优先级。具体的,依次对每个第三三角网格中的平行平板场域 (i,j),按照第一优先控制网格的质量,第二优先控制网格的尺寸的优先顺序进 行网格细分处理;网格细分处理包括对三角剖分并对齐后的第三三角网格进行 进一步细化,使得该三角网格的质量更好,尺寸更小,仿真计算更准确。
网格的质量为网格形状的质量,三角形的网格的质量的计算公式为:
Figure RE-GDA0002642302910000221
其中,R表示三角形的外接圆半径;l1,l2,l3表示三角形三个边 的边长;三角形的Q值越大,其质量越差,即该三角形角度存在很小的角。
控制网格的尺寸为根据需要计算的最高频率确定网格细分的最大网格的尺 寸,最大网格的尺寸的计算公式为:
Figure BDA0002528422820000231
其中,lmax为最大网格的尺寸, λmin为最高频率对应的电磁波波长,F为网格参数要求的控制系数,通常取F≥10。
步骤640,对相邻两个平行平板场域的公共区域进行网格剖分,若平行平板 场域(i,j)多边形边e的层信息同时包含平行平板场域(i,j)和平行平板场域 (l,m),其中i,j,l,m为金属层的层别且其中有两个数相等,则将多边形边e 对应的区域作为平行平板场域(i,j)和平行平板场域(l,m)的平板间耦合区域。
平板间耦合区域(Inter-plane coupling,IPC)是相邻两个场域的公共区 域。需要说明的是,由于平板间耦合区域为两个相邻场域共有,该两个相邻场 域在平板间耦合区域的网格必须保持一致,即两个相邻场域任意一个场域网格 细分过程中在多边形边e上增加网格节点以及多边形顶点,相应的网格节点以 及多边形顶点也必须增加到另一个场域的网格中去。
步骤650,若所有平行平板场域的网格质量和网格尺寸均满足相应的阈值则 结束网格细分处理,执行步骤660,否则执行步骤630。具体的,判断所有平行 平板场域的网格的质量和网格的尺寸是否满足预先设定的值,若是,结束网格 细分,若否,返回继续对每个平行平板场域(i,j)进行网格细分处理。
步骤660,基于该超大规模集成电路平行平板场域生成的自适应细分网格, 列写关于频域场的有限元方程组,求解这个有限元方程组得到基本场分布,依 据预先定义的需求计算端口的S参数、Z参数物理量,获得该超大规模集成电路 在不同频率下的电磁响应特征。
最终,图3所示的三层金属版图多边形及其内部介质形成的平行平板场域 的网格细分结果如图5所示。可以看出,由于边
Figure BDA0002528422820000232
Figure BDA0002528422820000233
为两个不同 平行平板场域的平板间耦合区域,因此在这些边上需满足连续边条件,不同平 行平板场域在这些边界上的网格节点是公共的,因此在这些边上的网格是对齐 的。
在一种实施方式中,若并行粗颗粒中某运算任务被分配到一进程中,则生 成该运算任务的用于表明该运算任务已经被分配标志文件;另一进程在申请分 配某一运算任务时,将尝试生成该运算任务的标志文件,并在标志文件存在的 情况下使另一进程自动尝试申请分配下一运算任务。
在多进程并行运算过程中,各个进程分配到某个运算任务的机会是均等的, 如果不采取任何措施,可能导致多个进程被分配到同一运算任务,造成运算资 源的浪费,因此必须采取某种措施,使得所有运算任务被唯一分配到某个进程。 达到这一目的最简单也最直观的措施是分配任务及时标记,即任务被分配到某 一进程的同时即将该任务进行标记,这样其他进程不再分配该任务。但由于并 行运算时各进程的变量一般情况下相互独立,且运算任务不对称,各进程运算 状态不同,任何进程通过变量标记任务被分配的信息无法立即被传递到其他进 程,因此必须采用一种外在显式的标记方法使得运算任务一旦被标记,所有进 程都能获得这个信息。因此,若并行粗颗粒中运算任务被分配到进程中,马上 生成运算任务的标志文件;某一进程在申请分配某一运算任务时,将试图生成 该运算任务的标志文件,如果该标志文件存在,则表明该运算任务已经被分配, 该进程将自动尝试申请分配下一个运算任务。
利用标志文件来实现正确分配运算任务的具体实现步骤为:
步骤A1、一进程申请分配第i个运算任务;
步骤A2、判断第i个运算任务的标志文件Fi是否存在,若存在则跳至步骤 A8,若不存在则跳至步骤A3;
步骤A3、判断标志文件Fi是否被锁定,若被锁定则跳至步骤A8,若未被 锁定则跳至步骤A4;
步骤A4、锁定标志文件Fi;
步骤A5、生成标志文件Fi;
步骤A6、标志文件Fi解锁;
步骤A7、完成第i个运算任务的运算;
步骤A8、判断并行粗颗粒中的所有运算任务是否全部完成,若未完成则i =i+1,并返回步骤A1,若已完成则跳至步骤A9;
步骤A9、该并行粗颗粒所需执行的所有运算任务全部分配到所有进程中, 该并行粗颗粒的分配结束;其返回执行其他并行粗颗粒分配其各自所需执行的 所有运算任务。
上述利用标志文件来实现正确分配运算任务可以是利用文件标记技术实现。 文件标记技术采用文件锁定与解锁技术,文件锁定与解锁技术保证一次只能一 个进程读/写同一运算任务,防止多个进程同时操作同一文件,导致重复运算同 一个运算任务。文件读写锁具有很高的并行性,可以有多个线程同时占用读模 式的读写锁,但是只能有一个线程占用写模式的读写锁,读写锁的三种状态:
1、当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加 锁的线程都会被阻塞;
2、当读写锁在读加锁状态时,所有试图以读模式对它进行加锁的线程都可 以得到访问权,但是以写模式对它进行加锁的线程将会被阻塞;
3、当读写锁在读模式的锁状态时,如果有另外的线程试图以写模式加锁, 读写锁通常会阻塞随后的读模式锁的请求,这样可以避免读模式锁长期占用, 而等待的写模式锁请求则长期阻塞。
在执行步骤300至步骤600时分别利用了四个并行粗颗粒,假设这四个并 行粗颗粒分别为c2、c3、c4、c5,而另有执行于步骤300之前的前处理步骤(预 处理)及执行完步骤600之后的后处理步骤(如归并、整理等),前处理步骤对 应无需并行运算的运算颗粒c1,后处理步骤对应无需并行运算的运算颗粒c6。 则主进程执行运算颗粒c1,并通过所有进程实现并行粗颗粒c2需要执行的所有 运算任务的并行运算,主进程c转入下一个并行粗颗粒c3,采用c2类似的方法, 并行粗颗粒c3、c4和c5通过所有进程实现需要执行的所有运算任务的并行运 算,完成所有并行粗颗粒的并行运算,最后执行c6以结束整个版图场域识别及网格细分处理程序。
在版图场域识别及网格细分处理程序中,不同模型运算需要的内存也有较 大差异,例如运算不同模型所需的内存峰值最小约为8GB,最大则超过20GB。 如果一个集群每个节点内存为48GB,利用该集群采用二阶有限元并行运算,最 简单的模型可以同时开启6个进程,最复杂的模型则只能同时开启2个进程, 否则系统会将部分硬盘空间作为虚拟内存供程序使用。目前常用的HDD硬盘读 写速度在80MB/s左右,而物理内存的读写速度有百倍以上的提高,例如,对于 DDR31333MHz的服务器内存,其数据传输速率达到10.6GB/s。这一比较结果说 明,如果并行运算开启的进程过多,导致运算过程中部分硬盘存储空间被当作虚拟内存读取,将使得程序运行速度降低百倍以上。为避免运算过程中部分硬 盘存储空间被当作虚拟内存读取的现象,在开启进程时,需要考虑每个进程运 行时可能需要的最大内存,以此为依据确定每个节点能开启的最大进程数。如 果采用普通方法粗颗粒并行运算,则每节点最多能开启2个进程。实验结果表 明,采用本实施例能够使每节点开启4个进程,内存使用率长期在80%以上, 且无硬盘空间作为虚拟内存供程序使用的情况,基本做到了内存使用峰值平均 化和内存峰值出现时间上的错位。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围 应以所述权利要求的保护范围为准。

Claims (10)

1.一种超大规模集成电路频域仿真计算任务随机动态分配方法,其特征在于,包括:
步骤100,将执行整体多层超大规模集成电路版图场域识别及网格细分处理运算过程的整体运算程序划分为多个互不重叠的运算颗粒,其中,所述运算颗粒为执行相同类型的所有独立运算的运算程序,并且将所述运算颗粒执行的一个独立运算作为一个运算任务;
步骤200,获取各运算颗粒的加权CPU时间和整体集成电路版图场域识别及网格细分处理运算过程的总CPU时间,依据所述加权CPU时间和所述总CPU时间的占比确定出并行粗颗粒;
步骤300,通过第一并行粗颗粒进行:将超大规模集成电路版图的多个多边形垂直投影到同一层,将投影后多边形的发生重合的边的多边形信息和层信息进行合并,并对投影后多边形的顶点进行Delaunay三角剖分运算,生成Delaunay三角网格;
步骤400,通过第二并行粗颗粒进行:将所述三角网格对齐到所述多个多边形的各个边,从所述各个边之间的相交处确定出多边形的新增顶点以及三角网格的新增节点,形成第一三角网格;
步骤500,通过第三并行粗颗粒进行:基于布尔运算将所述第一三角网格中各个边的层信息叠加到相应的三角形中,根据所述三角形和所述多边形边的层信息,识别并收集各个平行平板场域包含的三角形和多边形边;
步骤600,通过第四并行粗颗粒进行:根据网格参数要求和不同平行平板场域的公共边,对所述各个平行平板场域内的三角形进行自适应网格细分处理,并针对该细分网格计算其频域响应;其中,
在执行所述并行粗颗粒的过程中,将同一所述并行粗颗粒执行的所有运算任务的序列随机打乱,形成新的运算任务序列,并按照所述新的运算任务序列将该并行粗颗粒执行的所有运算任务分配到所有进程中,完成运算任务的并行运算。
2.如权利要求1所述的方法,其特征在于,步骤300中所述将投影后多边形的发生重合的边的多边形信息和层信息进行合并,包括:
通过所述第一并行粗颗粒完成以下步骤:
步骤310,对于每个多边形顶点,确定出与该多边形顶点的距离小于预定阈值的近距多边形顶点,并将该多边形顶点与相应的近距多边形顶点作为重合顶点组;
步骤320,确定出每组重合顶点组的中心,将该中心作为相应重合顶点组中的所有顶点的替代,并将中心的关联边作为相应重合顶点组中所有顶点的关联边的合并;
步骤330,比较所有顶点的关联边,将包含相同两端点的两关联边中的任一条边删除,并将剩余边作为被删除边的替代,对删除边的层信息和剩余边的层信息进行或运算,将或运算结果作为剩余边的新的层信息,以及对删除边的多边形信息和剩余边的多边形信息进行合并,将合并结果作为剩余边的新的多边形信息。
3.如权利要求1或2所述的方法,其特征在于,所述步骤400包括:
通过所述第二并行粗颗粒完成以下步骤:
步骤410,确定出所有的不是三角形公共边的非公共边,得到非公共边集合;
步骤420,将所述非公共边集合中最长的边从该集合中移除;
步骤430,确定出包含被移除边的一个顶点且其余两个顶点分别位于该被移除边两侧的第一三角形;
步骤440,确定出与所述第一三角形具有公共边且不重叠的第二三角形,将所述第一三角形和所述第二三角形的公共边进行交换,将交换后得到的其中一个三角形作为新的第一三角形,并重复执行本步骤,直到被移除边为所述第一三角形和所述第二三角形的公共边;
步骤450,判断是否存在与所述被移除边的非顶点处相交并且属于另一多边形的相交边,若存在则在所述被移除边与所述相交边的交点处新增多边形的顶点及三角网络的网格节点,形成由所述新增的顶点带来的新增边,以及由所述新增边分割出来的新三角形,并将所述新增边加入所述非公共边集合中;
步骤460,重复执行所述步骤420至步骤450,直至所述非公共边集合为空集,得到第一三角网格。
4.如权利要求1所述的方法,其特征在于,步骤500中所述基于布尔运算将第一三角网格中各个边的层信息叠加到相应的三角形中,包括:
通过所述第三并行粗颗粒完成以下步骤:
步骤510,将所述第一三角网格内所有三角形的层信息设置为未赋值状态,若任意多边形的任意边的右三角形的层信息为未赋值状态,则将该右三角形加入多边形集合中,并将该任意边的层信息设置为该右三角形的层信息;
步骤520,移除所述多边形集合中的任一三角形,若判断出被移除三角形的三个相邻三角形中任意一个或多个三角形的层信息为未赋值状态,则将该被移除三角形的该一个或多个相邻三角形加入所述多边形集合中,并将该加入所述多边形集合的一个或多个三角形的层信息设置为该被移除三角形的层信息与公共边层信息的差;
步骤530,若所述多边形集合为非空集,则执行所述步骤520,否则执行步骤540;
步骤540,若所有多边形均处理完成,则结束层信息叠加过程,否则执行所述步骤520;其中,
所述多边形任意边的右三角形为包含该任意边且该任意边的方向与多边形边方向相同的三角形,所述公共边层信息是指与被移除三角形相邻三角形的公共边的层信息。
5.如权利要求1或4所述的方法,其特征在于,步骤500中所述根据所述三角形和所述多边形边的层信息,识别并收集各个平行平板场域包含的三角形和多边形边,包括:
通过所述第三并行粗颗粒完成以下步骤:
步骤550,设置所有平行平板场域的多边形集合和三角形集合为空;
步骤560,选取一未处理的三角形或多边形,若依据该三角形或多边形的层信息判断出平行平板场域最低层金属层与位于所述最低层金属层之上的上层金属层之间不存在任何版图金属层,则将该三角形或多边形加入到所述三角形集合或多边形集合中;
步骤570,若所述最低层金属层为非最高层,则将所述上层金属层作为新的最低层金属层并执行步骤560,否则执行步骤580;
步骤580,若所有三角形和多边形边均处理完毕,则完成识别和收集过程,否则选取新的未处理的三角形或多边形并执行步骤560。
6.如权利要求1所述的方法,其特征在于,所述步骤600包括:
通过所述第四并行粗颗粒实现以下步骤:
步骤610,依据每个平行平板场域的多个多边形的顶点利用Delaunay三角剖分算法生成第二三角网格;
步骤620,依据步骤500中识别出的平行平板场域,将所述第二三角网格对齐到各个平行平板场域的多个多边形的边,并删除各个平行平板场域之外的三角形,得到第三三角网格;
步骤630,按照网格质量要求和网格尺寸要求对所述第三三角网格的平行平板场域进行网格细分处理,其中,网格细分处理过程中网格质量要求的优先级高于网格尺寸要求的优先级;
步骤640,对相邻两个平行平板场域的公共区域进行网格剖分,若平行平板场域(i,j)多边形边e的层信息同时包含平行平板场域(i,j)和平行平板场域(1,m),其中i,j,1,m为金属层的层别且其中有两个数相等,则将多边形边e对应的区域作为平行平板场域(i,j)和平行平板场域(1,m)的平板间耦合区域;
步骤650,若所有平行平板场域的网格质量和网格尺寸均满足相应的阈值则结束网格细分处理,执行步骤660,否则执行步骤630。
步骤660,基于该超大规模集成电路平行平板场域生成的自适应细分网格,列写关于频域场的有限元方程组,求解这个有限元方程组得到基本场分布,依据预先定义的需求计算端口的S参数、Z参数物理量,获得该超大规模集成电路在不同频率下的电磁响应特征。
7.如权利要求1至6中任一项所述的方法,其特征在于,所述依据所述加权CPU时间和所述总CPU时间的占比确定出并行粗颗粒包括:
将各运算颗粒的加权CPU时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总CPU时间,将所述累加和之中的每个运算颗粒作为一个并行粗颗粒。
8.如权利要求7所述的方法,其特征在于,所述将同一所述并行粗颗粒执行的所有运算任务的序列随机打乱,形成新的运算任务序列,包括:
将运算任务的序列List0={m},对应生成随机数序列{Rm},m=1,2,3,…,M;
对序列{Rm}从小到大排序,排序后的序列为{0m};
生成新的不重复的运算任务序列List={Lm}。
9.如权利要求7所述的方法,其特征在于,若所述并行粗颗粒中某运算任务被分配到一进程中,则生成该运算任务的用于表明该运算任务已经被分配标志文件;另一进程在申请分配某一运算任务时,将尝试生成该运算任务的标志文件,并在标志文件存在的情况下使所述另一进程自动尝试申请分配下一运算任务。
10.如权利要求9所述的方法,其特征在于,利用标志文件分配运算任务的步骤包括:
步骤A1、进程申请分配第i个运算任务;
步骤A2、判断第i个运算任务的标志文件Fi是否存在,若存在则跳至步骤A8,若不存在则跳至步骤A3;
步骤A3、判断标志文件Fi是否被锁定,若被锁定则跳至步骤A8,若未被锁定则跳至步骤A4;
步骤A4、锁定标志文件Fi;
步骤A5、生成标志文件Fi;
步骤A6、标志文件Fi解锁;
步骤A7、完成第i个运算任务的运算;
步骤A8、判断并行粗颗粒中的所有运算任务是否全部完成,若未完成则i=i+1,并返回步骤A1,若已完成则跳至步骤A9;
步骤A9、该并行粗颗粒所需执行的所有运算任务全部分配到所有进程中,该并行粗颗粒的分配结束;其返回执行其他并行粗颗粒分配其各自所需执行的所有运算任务。
CN202010515363.4A 2020-06-08 2020-06-08 超大规模集成电路频域仿真计算任务随机动态分配方法 Pending CN111898331A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010515363.4A CN111898331A (zh) 2020-06-08 2020-06-08 超大规模集成电路频域仿真计算任务随机动态分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010515363.4A CN111898331A (zh) 2020-06-08 2020-06-08 超大规模集成电路频域仿真计算任务随机动态分配方法

Publications (1)

Publication Number Publication Date
CN111898331A true CN111898331A (zh) 2020-11-06

Family

ID=73207646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010515363.4A Pending CN111898331A (zh) 2020-06-08 2020-06-08 超大规模集成电路频域仿真计算任务随机动态分配方法

Country Status (1)

Country Link
CN (1) CN111898331A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287625A (zh) * 2020-12-21 2021-01-29 北京智芯仿真科技有限公司 一种系统级集成电路直流压降的并行分析方法及系统
CN112818585A (zh) * 2021-04-20 2021-05-18 北京智芯仿真科技有限公司 集成电路层间耦合的迭代计算并行颗粒的划分方法及装置
CN112988404A (zh) * 2021-04-27 2021-06-18 北京智芯仿真科技有限公司 基于管理进程的集成电路仿真粗颗粒并行方法及装置
CN112989675A (zh) * 2021-04-20 2021-06-18 北京智芯仿真科技有限公司 集成电路层间耦合即时更新的粗颗粒并行迭代方法及装置
CN112989678A (zh) * 2021-04-20 2021-06-18 北京智芯仿真科技有限公司 集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置
CN113128142A (zh) * 2021-04-27 2021-07-16 北京智芯仿真科技有限公司 基于文件锁的集成电路电磁仿真粗颗粒并行方法及装置
CN113255263A (zh) * 2021-06-07 2021-08-13 上海国微思尔芯技术股份有限公司 颗粒带分割方法、装置、计算机设备和存储介质
CN116822453A (zh) * 2023-08-25 2023-09-29 深圳国微福芯技术有限公司 集成电路的比对方法
CN117057308A (zh) * 2023-10-10 2023-11-14 北京智芯仿真科技有限公司 大面积叠加的集成电路版图融合与精准诊断方法及装置
CN117371385A (zh) * 2023-12-06 2024-01-09 杭州行芯科技有限公司 邻近图形的确认方法、电子设备及存储介质
CN118411486A (zh) * 2024-07-02 2024-07-30 芯瑞微(上海)电子科技有限公司 一种2.5d模型几何清理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095574A (zh) * 2016-06-13 2016-11-09 北京唯智佳辰科技发展有限责任公司 海量计算粗颗粒并行实现及计算任务随机动态分配方法
WO2018136852A1 (en) * 2017-01-21 2018-07-26 Schlumberger Technology Corporation Scalable computation and communication methods for domain decomposition of large-scale numerical simulations
CN110689569A (zh) * 2019-12-10 2020-01-14 北京唯智佳辰科技发展有限责任公司 集成电路版图场域识别与网格细分处理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095574A (zh) * 2016-06-13 2016-11-09 北京唯智佳辰科技发展有限责任公司 海量计算粗颗粒并行实现及计算任务随机动态分配方法
WO2018136852A1 (en) * 2017-01-21 2018-07-26 Schlumberger Technology Corporation Scalable computation and communication methods for domain decomposition of large-scale numerical simulations
CN110689569A (zh) * 2019-12-10 2020-01-14 北京唯智佳辰科技发展有限责任公司 集成电路版图场域识别与网格细分处理方法及装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287625A (zh) * 2020-12-21 2021-01-29 北京智芯仿真科技有限公司 一种系统级集成电路直流压降的并行分析方法及系统
CN112818585B (zh) * 2021-04-20 2021-07-13 北京智芯仿真科技有限公司 集成电路层间耦合的迭代计算并行颗粒的划分方法及装置
CN112818585A (zh) * 2021-04-20 2021-05-18 北京智芯仿真科技有限公司 集成电路层间耦合的迭代计算并行颗粒的划分方法及装置
CN112989675A (zh) * 2021-04-20 2021-06-18 北京智芯仿真科技有限公司 集成电路层间耦合即时更新的粗颗粒并行迭代方法及装置
CN112989678A (zh) * 2021-04-20 2021-06-18 北京智芯仿真科技有限公司 集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置
CN113128142A (zh) * 2021-04-27 2021-07-16 北京智芯仿真科技有限公司 基于文件锁的集成电路电磁仿真粗颗粒并行方法及装置
CN112988404A (zh) * 2021-04-27 2021-06-18 北京智芯仿真科技有限公司 基于管理进程的集成电路仿真粗颗粒并行方法及装置
CN113255263A (zh) * 2021-06-07 2021-08-13 上海国微思尔芯技术股份有限公司 颗粒带分割方法、装置、计算机设备和存储介质
CN116822453A (zh) * 2023-08-25 2023-09-29 深圳国微福芯技术有限公司 集成电路的比对方法
CN116822453B (zh) * 2023-08-25 2024-01-26 深圳国微福芯技术有限公司 集成电路的比对方法
CN117057308A (zh) * 2023-10-10 2023-11-14 北京智芯仿真科技有限公司 大面积叠加的集成电路版图融合与精准诊断方法及装置
CN117057308B (zh) * 2023-10-10 2023-12-15 北京智芯仿真科技有限公司 大面积叠加的集成电路版图融合与精准诊断方法及装置
CN117371385A (zh) * 2023-12-06 2024-01-09 杭州行芯科技有限公司 邻近图形的确认方法、电子设备及存储介质
CN117371385B (zh) * 2023-12-06 2024-04-09 杭州行芯科技有限公司 邻近图形的确认方法、电子设备及存储介质
CN118411486A (zh) * 2024-07-02 2024-07-30 芯瑞微(上海)电子科技有限公司 一种2.5d模型几何清理方法

Similar Documents

Publication Publication Date Title
CN111898331A (zh) 超大规模集成电路频域仿真计算任务随机动态分配方法
CN111898330B (zh) 基于多层次并行策略的集成电路电磁响应计算方法及装置
CN111881641A (zh) 多进程自适应分配的多层超大规模集成电路场路耦合方法
CN110689569B (zh) 集成电路版图场域识别与网格细分处理方法及装置
Cong et al. A parallel bottom-up clustering algorithm with applications to circuit partitioning in VLSI design
Kuntz¹ et al. A colony of ant-like agents for partitioning in VLSI technology
JP2719509B2 (ja) グラフ分割化システム
CN110675502B (zh) 多层集成电路版图多边形对齐和简化处理方法及装置
CN109299615B (zh) 一种面向社交网络数据的差分隐私处理发布方法
CN106095574B (zh) 海量计算粗颗粒并行实现及计算任务随机动态分配方法
Li et al. Mixed integer programming models for detailed placement
CN111881643A (zh) 进程自启停的基于频域电磁响应的集成电路版图优化方法
de Cougny et al. Parallel volume meshing using face removals and hierarchical repartitioning
CN111767688B (zh) 集成电路版图多边形非结构网格自适应细分方法和系统
CN111898332A (zh) 超大规模集成电路频域仿真自适应频点提取与计算方法
Quell et al. Shared-memory block-based fast marching method for hierarchical meshes
CN106484532B (zh) 面向sph流体模拟的gpgpu并行计算方法
Lwin et al. Non-redundant dynamic fragment allocation with horizontal partition in Distributed Database System
CN108491294A (zh) 一种数据库备份方法、装置及系统
CN106373192B (zh) 一种非拓扑一致性三维网格块体追踪算法
CN112818585B (zh) 集成电路层间耦合的迭代计算并行颗粒的划分方法及装置
CN107104829B (zh) 一种基于网络拓扑数据的物理设备匹配分配方法及装置
CN106126878A (zh) 电磁功能材料优化设计的粗颗粒并行方法及系统
WO2022148075A1 (zh) 一种虚拟对象的分簇方法、装置、存储介质和电子装置
CN108629798A (zh) 基于gpu的图像快速配准方法

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20201106