掌桥专利:专业的专利平台
掌桥专利
首页

集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置

文献发布时间:2023-06-19 11:29:13


集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置

技术领域

本发明涉及集成电路技术领域,特别涉及集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置。

背景技术

集成电路工作时其多层版图上由于高速信号的传输,会形成高频交变电磁场,同时,为了提高电子设备的性能,缩小体积,降低成本,将晶体管与其他元器件以及线路都集成在一小块半导体基片上。为了实现更多的功能,超大规模集成电路有数十层到上百层结构,每层结构极其复杂,集成上百万甚至上千万晶体管,且具有多尺度结构,从厘米级到目前最新的纳米级。为了保证集成电路能正常工作并实现事先设计的功能,需要首先保证集成电路的电源完整性和信号完整性,因此需要采用电磁场分析的手段对数十层、上百层的多尺度结构的集成电路的电源完整性和信号完整性进行精准的分析,这是超大规模集成电路电磁场分析的一大难题。

采用传统方法对三维大规模集成电路进行电磁场分析,进而计算其电磁响应时,通常在设置一定区域的截断误差后,将整个三维集成电路连同集成电路之外的有限区域确定为计算区域,然后对整个计算区域进行网格剖分,并计算整个计算区域的电磁场分布,进而计算出集成电路每层的电磁场分布、电流分布、指定端口的电流电压等电磁响应。然而,集成电路过孔、走线等特征尺寸为纳米级,整个集成电路的尺寸为厘米级,而根据截断误差确定的计算区域则为分米级、米级,对这样的多尺度空间进行统一的网格剖分再分析其空间电磁辐射,会产生数亿的网格和未知量,导致计算的硬件(内存)成本和CPU时间成本都过大的问题。为此,可采用有限元法和矩量法相结合的方法计算三维大规模集成电路电磁响应。在三维大规模集成电路区域,采用有限元法;在集成电路之外的大范围区域,采用矩量法;有限元法和矩量法在集成电路与外部空间的界面相耦合。由于矩量法只针对界面进行积分,因此就会减少大量的网格单元和未知量,但由于集成电路的尺度范围为纳米级到厘米级,直接对集成电路整体用有限元法求解本身会产生巨大的稀疏矩阵,且由于有限元法和矩量法进行耦合,使得形成的耦合矩阵在界面处为稠密矩阵,大大增加了整个稀疏矩阵的非零元数量和稀疏矩阵求解复杂度,使得计算时间仍然很长。

发明内容

(一)发明目的

基于上述问题,本发明提出一种集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置,为了在集成电路层间耦合部分累加的迭代计算过程中最大限度的减少各进程之间的通信,避免多进程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈,同时完美解决不同计算实例复杂度不对等带来的进程等待问题,进而大大提高并行计算效率,本申请公开了以下技术方案。

(二)技术方案

作为本发明的第一方面,本发明公开了一种集成电路层间耦合部分累加的粗颗粒并行迭代方法,包括如下步骤:首先将集成电路层间耦合的计算划分为两类并行粗颗粒,第一类并行粗颗粒为基于二维有限元计算集成电路各层电磁场和电流分布,第二类并行粗颗粒为基于并矢格林函数计算源层对其他层的影响;

其次,建立管理进程控制整个迭代循环,基于划分的并行粗颗粒将每次迭代的计算分割为多个计算任务,并行发起多个计算进程,动态的为每个计算进程分发计算任务,每个计算进程独立完成计算任务,通过反复迭代更新集成电路各源层的电磁场和电流分布,以及各源层的作用范围,直到所有场的改变量均小于指定阈值,迭代结束。

进一步的,将集成电路层间耦合的计算划分为两类并行粗颗粒,第一类并行粗颗粒为基于二维有限元计算集成电路各层电磁场和电流分布,第二类并行粗颗粒为基于并矢格林函数计算源层对其他层的影响,具体包括:

每个并行粗颗粒对应一个计算任务,所述计算任务由计算进程完成,对于第一类并行粗颗粒,计算进程根据施加的源项,采用二维有限元计算第

进一步的,建立管理进程控制整个迭代循环,基于划分的并行粗颗粒将每次迭代的计算分割为多个计算任务,并行发起多个计算进程,动态的为每个计算进程分发计算任务,每个计算进程独立完成计算任务,通过反复迭代更新集成电路各源层的电磁场和电流分布,以及各源层的作用范围,直到所有场的改变量均小于指定阈值,迭代结束,包括以下步骤:

步骤S100、大规模集成电路总计为

步骤S200、划分

步骤S300、管理进程将

步骤S400、管理进程检查待计算任务序列是否为空,如果是,进入步骤S1000,否则进入步骤S500;

步骤S500、管理进程检查是否存在闲置的计算进程,如果存在,随机动态的取出待计算任务序列中的计算任务分发给闲置的计算进程;

步骤S600、管理进程检查是否存在第一类并行计算颗粒已经完成且未处理,如果是,转入步骤S700,否则进入步骤S800;

步骤S700、管理进程针对每个所述的已经完成且未处理的第一类并行计算颗粒,划分

步骤S800、管理进程检查是否存在第二类并行计算颗粒已经完成且未处理,如果是,转入步骤S900,否则等待预设待定时间,进入步骤S400;

步骤S900、管理进程将所述已经完成且未处理的第二类并行计算颗粒的计算结果

步骤S1000、管理进程检查所有第一类并行计算颗粒的结果,如果

步骤S1100、管理进程检查所有第二类并行计算颗粒的结果,选取

步骤S1200、管理进程选取出所有满足|

进一步的,第二类并行粗颗粒的具体步骤如下:

第一步,计算点电流源在场点产生的电场,所述点电流源在场点产生的电场表达式为根据集成电路分层的特殊结构形成的特殊的解析表达式,多层集成电路的电流源为层状分布,即在复杂形状的集成电路版图的每个金属层上分布的电流密度只与

第二步,将所述点电流源在场点产生的电场表达式作为二维高斯积分的被积函数,基于场的线性叠加原理计算简单形状多边形的面电流源在相同位置产生的场,包括:二维面S内的电流源在空间任意点产生的场可通过所述二维高斯积分计算:

其中,

第三步,计算所述简单形状多边形上的所述电流在集成电路其他层不同位置产生的场,基于所述场的线性叠加原理确定简单形状多边形上的所述电流在集成电路其他层版图上分割的简单形状多边形上产生的场

第四步、再基于所述场的线性叠加原理确定第

进一步的,在迭代过程中,对于每个大规模集成电路的层,管理进程在计算其他源层对第

进一步的,所述将集成电路层间耦合的计算划分为两类并行粗颗粒的具体方法为:将集成电路层间耦合的迭代计算划分为互不重叠的计算颗粒,其中,所述计算颗粒为执行相同类型的所有独立运算的一个或多个计算单元;基于一次完整的串行迭代计算,获取各计算颗粒的加权CPU时间和总CPU时间,依据所述加权CPU时间的占比将所述计算颗粒合并为不同的并行粗颗粒。

另一方面公开了一种集成电路层间耦合部分累加的粗颗粒并行迭代装置,包括并行粗颗粒划分模块,并行粗颗粒运算模块,管理进程模块;

所述并行粗颗粒划分模块基于一次完整的串行迭代计算,获取各计算颗粒的加权CPU时间和整体多层超大规模集成电路层间耦合的迭代方法的总CPU时间,依据所述加权CPU时间和所述总CPU时间的占比将所述计算颗粒合并为两类并行粗颗粒,且同类并行粗颗粒相互独立,其对应的计算任务序列可以随机打乱;

所述并行粗颗粒运算模块用于在执行所述并行粗颗粒的过程中,将同类并行粗颗粒执行的所有计算任务的序列随机打乱,形成新的计算任务序列,并按照所述新的计算任务序列动态分配到不同计算进程,完成计算任务的并行计算;

所述管理进程模块用于控制整个迭代循环。

进一步的,所述管理进程模块具体的运行步骤如下:

步骤S100、大规模集成电路总计为

步骤S200、划分

步骤S300、管理进程将

步骤S400、管理进程检查待计算任务序列是否为空,如果是,进入步骤S1000,否则进入步骤S500;

步骤S500、管理进程检查是否存在闲置的计算进程,如果存在,随机动态的取出待计算任务序列中的计算任务分发给闲置的计算进程;

步骤S600、管理进程检查是否存在第一类并行计算颗粒已经完成且未处理,如果是,转入步骤S700,否则进入步骤S800;

步骤S700、管理进程针对每个所述的已经完成且未处理的第一类并行计算颗粒,划分

步骤S800、管理进程检查是否存在第二类并行计算颗粒已经完成且未处理,如果是,转入步骤S900,否则等待预设待定时间,进入步骤S400;

步骤S900、管理进程将所述已经完成且未处理的第二类并行计算颗粒的计算结果

步骤S1000、管理进程检查所有第一类并行计算颗粒的结果,如果

步骤S1100、管理进程检查所有第二类并行计算颗粒的结果,选取

步骤S1200、管理进程选取出所有满足|

进一步的,第二类并行粗颗粒的具体步骤如下:

第一步,计算点电流源在场点产生的电场,所述点电流源在场点产生的电场表达式为根据集成电路分层的特殊结构形成的特殊的解析表达式,多层集成电路的电流源为层状分布,即在复杂形状的集成电路版图的每个金属层上分布的电流密度只与

第二步,将所述点电流源在场点产生的电场表达式作为二维高斯积分的被积函数,基于场的线性叠加原理计算简单形状多边形的面电流源在相同位置产生的场,包括:二维面S内的电流源在空间任意点产生的场可通过所述二维高斯积分计算:

其中,

第三步,计算所述简单形状多边形上的所述电流在集成电路其他层不同位置产生的场,基于所述场的线性叠加原理确定简单形状多边形上的所述电流在集成电路其他层版图上分割的简单形状多边形上产生的场;

第四步、再基于所述场的线性叠加原理确定第

进一步的,所述并行粗颗粒划分模块中,所述计算颗粒的加权CPU时间的计算公式为:

(三)有益效果

本发明提供的一种集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置,本发明在集成电路层间耦合部分累加计算过程中,极大程度减少进程之间的通信及因为同步而产生的等待时间,同时,由于采用计算任务随机动态分配方法,保证复杂度不对等的计算模型随机均匀分布在各计算节点,避免由于过高的峰值内存导致虚拟内存访问而造成的硬盘读写瓶颈。

附图说明

以下参考附图描述的实施例是示例性的,旨在用于解释和说明本发明,而不能理解为对本发明的保护范围的限制。

图1是本发明的第一实施例的主要步骤框图;

图2是本发明的管理进程控制整个迭代循环的步骤图(上部分);

图3是本发明的管理进程控制整个迭代循环的步骤图(下部分);

图4是本发明中的第二类并行计算粗颗粒流程图;

图5是本发明中点源在的场点产生的电场的分解示意图;

图6是本发明第二实施例的模块框图。

具体实施方式

为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。

需要说明的是:在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面参考图1、2、3、4、5详细描述本发明提供的集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置的第一实施例。如图1所示本实施例提供的一种集成电路层间耦合部分累加的粗颗粒并行迭代方法,包括如下步骤:首先将集成电路层间耦合的计算划分为两类并行粗颗粒,第一类并行粗颗粒为基于二维有限元计算集成电路各层电磁场和电流分布,第二类并行粗颗粒为基于并矢格林函数计算源层对其他层的影响;

其次,建立管理进程控制整个迭代循环,基于划分的并行粗颗粒将每次迭代的计算分割为多个计算任务,并行发起多个计算进程,动态的为每个计算进程分发计算任务,每个计算进程独立完成计算任务,通过反复迭代更新集成电路各源层的电磁场和电流分布,以及各源层的作用范围,直到所有场的改变量均小于指定阈值,迭代结束。

进一步的,将集成电路层间耦合的计算划分为两类并行粗颗粒,第一类并行粗颗粒为基于二维有限元计算集成电路各层电磁场和电流分布,第二类并行粗颗粒为基于并矢格林函数计算源层对其他层的影响,具体包括:

每个并行粗颗粒对应一个计算任务,所述计算任务由计算进程完成,对于第一类并行粗颗粒,计算进程根据施加的源项,采用二维有限元计算第

进一步的,建立管理进程控制整个迭代循环,基于划分的并行粗颗粒将每次迭代的计算分割为多个计算任务,并行发起多个计算进程,动态的为每个计算进程分发计算任务,每个计算进程独立完成计算任务,通过反复迭代更新集成电路各源层的电磁场和电流分布,以及各源层的作用范围,直到所有场的改变量均小于指定阈值,迭代结束,如图2、3所示,包括以下步骤:

步骤S100、大规模集成电路总计为

步骤S200、划分

步骤S300、管理进程将

步骤S400、管理进程检查待计算任务序列是否为空,如果是,进入步骤S1000,否则进入步骤S500;

步骤S500、管理进程检查是否存在闲置的计算进程,如果存在,随机动态的取出待计算任务序列中的计算任务分发给闲置的计算进程;

步骤S600、管理进程检查是否存在第一类并行计算颗粒已经完成且未处理,如果是,转入步骤S700,否则进入步骤S800;

步骤S700、管理进程针对每个所述的已经完成且未处理的第一类并行计算颗粒,划分

步骤S800、管理进程检查是否存在第二类并行计算颗粒已经完成且未处理,如果是,转入步骤S900,否则等待预设待定时间,进入步骤S400;

步骤S900、管理进程将所述已经完成且未处理的第二类并行计算颗粒的计算结果

步骤S1000、管理进程检查所有第一类并行计算颗粒的结果,如果

步骤S1100、管理进程检查所有第二类并行计算颗粒的结果,选取

步骤S1200、管理进程选取出所有满足|

进一步的,第一类并行粗颗粒的二维有限元计算方法具体为:对于直流电场模型,所述多层集成电路的三维模型是指直流电场模型中电导率

及边界条件(2):

式中

多层超大规模集成电路中实际PCB板或芯片封装的板尺寸远大于金属层的厚度,将多层集成电路的三维直流场问题简化为二维直流场问题;

所述对二维模型采用有限元法建立的场域求解方程组为方程组(3):

式中,所述

对于交变电磁场模型,所述多层集成电路的三维模型是指多层超大规模集成电路频域仿真中电磁响应特征的三维模型中介电常数

式中

多层超大规模集成电路中实际PCB板或芯片封装的板尺寸远大于金属层间距,将多层超大规模集成电路频域仿真中的电磁响应特征的三维模型简化为二维模型,此时模型中介电常数

式中,

经过三维模型到二维模型的简化,得到该二维模型对应的二维有限元泛函极值公式为:

式中,

如图4所示,第二类并行粗颗粒的具体步骤如下:

第一步,如图5所示,第

点电流源在的场点产生的电场表达式为:

其中,

T

T

T

对于多层集成电路的电流源为层状分布,即在复杂形状的集成电路版图的每个金属层上分布的电流密度只与

第二步,将所述点电流源在场点产生的电场表达式作为二维高斯积分的被积函数,基于场的线性叠加原理计算简单形状多边形的面电流源在相同位置产生的场,包括:二维面S内的电流源在空间任意点产生的场可通过所述二维高斯积分计算:

其中,

第三步,计算所述简单形状多边形上的所述电流在集成电路其他层不同位置产生的场,基于所述场的线性叠加原理确定简单形状多边形上的所述电流在集成电路其他层版图上分割的简单形状多边形上产生的场

第四步、再基于所述场的线性叠加原理确定第

进一步的,在迭代过程中,对于每个大规模集成电路的层,管理进程在计算其他源层对第

进一步的,所述将集成电路层间耦合的计算划分为两类并行粗颗粒的具体方法为:将集成电路层间耦合的迭代计算划分为互不重叠的计算颗粒,其中,所述计算颗粒为执行相同类型的所有独立运算的一个或多个计算单元;基于一次完整的串行迭代计算,获取各计算颗粒的加权CPU时间和总CPU时间,依据所述加权CPU时间的占比将所述计算颗粒合并为不同的并行粗颗粒。

所述计算颗粒的加权CPU时间的计算公式为:

具体的,若根据上述计算颗粒的定义将多层超大规模集成电路层间耦合的迭代计算划分为c1、c2、c3共3个计算颗粒,3个计算颗粒可执行整个运算过程的运算任务;若c1执行500个运算任务,c2执行200个运算任务,c3执行5个运算任务;那么共705个运算任务构成整个运算过程,上述整个运算过程只需c1、c2、c3共3个计算颗粒来实现。其中执行整个运算过程依次需要c1、c2、c3这3个计算颗粒执行,且c1、c2、c3中均包含至少1个独立运算(运算任务)。

根据各计算颗粒运算所得的加权CPU时间进行大小排序,若c1加权CPU时间为0.1s,c2加权CPU时间为100s,c3加权CPU时间为0.2s,则最终排序结果为c2>c3>c1;3个计算颗粒的加权CPU时间从大到小依次相加,即T(c2)+T(c3)+…直到时间和大于总CPU时间的90%为止;如果T(c2)+T(c3)>90%,那就是c2、c3分别作为一个并行粗颗粒;如果T(c2)>90%总CPU时间,那么c2为并行粗颗粒。

对并行粗颗粒进行分类,同类并行粗颗粒相互独立,其对应的计算任务序列可以随机打乱,在执行所述并行粗颗粒的过程中,将同类并行粗颗粒执行的所有计算任务的序列随机打乱,形成新的计算任务序列,并按照所述新的计算任务序列动态分配到不同计算进程,完成计算任务的并行计算。

具体的,随机打乱运算任务序列的方式为:

首先将运算任务的序列

其关键在于将并行颗粒中所有运算任务的序列

主进程按照形成新的计算任务序列将该并行粗颗粒所需执行的所有运算任务分配到包含主进程的所有进程中,并完成并行粗颗粒执行的所有运算任务的并行运算。

另外,若并行粗颗粒中某运算任务被分配到一进程中,则生成该运算任务的用于表明该运算任务已经被分配标志文件;另一进程在申请分配某一运算任务时,将尝试生成该运算任务的标志文件,并在标志文件存在的情况下使另一进程自动尝试申请分配下一运算任务。

在多进程并行运算过程中,各个进程分配到某个运算任务的机会是均等的,如果不采取任何措施,可能导致多个进程被分配到同一运算任务,造成运算资源的浪费,因此必须采取某种措施,使得所有运算任务被唯一分配到某个进程。达到这一目的最简单也最直观的措施是分配任务及时标记,即任务被分配到某一进程的同时即将该任务进行标记,这样其他进程不再分配该任务。但由于并行运算时各进程的变量一般情况下相互独立,且运算任务不对称,各进程运算状态不同,任何进程通过变量标记任务被分配的信息无法立即被传递到其他进程,因此必须采用一种外在显式的标记方法使得运算任务一旦被标记,所有进程都能获得这个信息。因此,若并行粗颗粒中运算任务被分配到进程中,马上生成运算任务的标志文件;某一进程在申请分配某一运算任务时,将试图生成该运算任务的标志文件,如果该标志文件存在,则表明该运算任务已经被分配,该进程将自动尝试申请分配下一个运算任务。

利用标志文件来实现正确分配运算任务的具体实现步骤为:

步骤A1、一进程申请分配第

步骤A2、判断第

步骤A3、判断标志文件

步骤A4、锁定标志文件

步骤A5、生成标志文件

步骤A6、标志文件

步骤A7、完成第

步骤A8、判断并行粗颗粒中的所有运算任务是否全部完成,若未完成则

该并行粗颗粒所需执行的所有运算任务全部分配到所有进程中,该并行粗颗粒的分配结束;其返回执行其他并行粗颗粒分配其各自所需执行的所有运算任务。

特别的,当分析集成电路的电源层的电压降和电流分布时,其工作频率为低频,采用直流场模型进行分析,此时集成电路层间无空间耦合,只存在物理耦合,即集成电路层间通过过孔、外部电路相互连接的层之间相互耦合,此时,集成电路各层之间的相互影响层是确定的,不需要迭代对影响范围

以上迭代步骤可以看出,迭代过程中根据各层并矢格林函数的影响值的大小,自适应调节每源层对其他层施加影响的范围,而不是每次都将源对其他层的影响施加到所有其他层,从而加速迭代计算。以上迭代方法的优点在于,在计算其他源层对第

下面参考图2、3、4、5、6详细描述本发明提供的集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置的第二实施例。如图6所示,本实施例提供的一种集成电路层间耦合部分累加的粗颗粒并行迭代装置,包括并行粗颗粒划分模块,并行粗颗粒运算模块,管理进程模块;

所述并行粗颗粒划分模块基于一次完整的串行迭代计算,获取各计算颗粒的加权CPU时间和整体多层超大规模集成电路层间耦合的迭代方法的总CPU时间,依据所述加权CPU时间和所述总CPU时间的占比将所述计算颗粒合并为两类并行粗颗粒,且同类并行粗颗粒相互独立,其对应的计算任务序列可以随机打乱;

进一步的,所述将集成电路层间耦合的计算划分为两类并行粗颗粒的具体方法为:将集成电路层间耦合的迭代计算划分为互不重叠的计算颗粒,其中,所述计算颗粒为执行相同类型的所有独立运算的一个或多个计算单元;基于一次完整的串行迭代计算,获取各计算颗粒的加权CPU时间和总CPU时间,依据所述加权CPU时间的占比将所述计算颗粒合并为不同的并行粗颗粒。

所述计算颗粒的加权CPU时间的计算公式为:

具体的,若根据上述计算颗粒的定义将多层超大规模集成电路层间耦合的迭代计算划分为c1、c2、c3共3个计算颗粒,3个计算颗粒可执行整个运算过程的运算任务;若c1执行500个运算任务,c2执行200个运算任务,c3执行5个运算任务;那么共705个运算任务构成整个运算过程,上述整个运算过程只需c1、c2、c3共3个计算颗粒来实现。其中执行整个运算过程依次需要c1、c2、c3这3个计算颗粒执行,且c1、c2、c3中均包含至少1个独立运算(运算任务)。

根据各计算颗粒运算所得的加权CPU时间进行大小排序,若c1加权CPU时间为0.1s,c2加权CPU时间为100s,c3加权CPU时间为0.2s,则最终排序结果为c2>c3>c1;3个计算颗粒的加权CPU时间从大到小依次相加,即T(c2)+T(c3)+…直到时间和大于总CPU时间的90%为止;如果T(c2)+T(c3)>90%,那就是c2、c3分别作为一个并行粗颗粒;如果T(c2)>90%总CPU时间,那么c2为并行粗颗粒。

对并行粗颗粒进行分类,同类并行粗颗粒相互独立,其对应的计算任务序列可以随机打乱,在执行所述并行粗颗粒的过程中,将同类并行粗颗粒执行的所有计算任务的序列随机打乱,形成新的计算任务序列,并按照所述新的计算任务序列动态分配到不同计算进程,完成计算任务的并行计算。

所述并行粗颗粒运算模块用于在执行所述并行粗颗粒的过程中,将同类并行粗颗粒执行的所有计算任务的序列随机打乱,形成新的计算任务序列,并按照所述新的计算任务序列动态分配到不同计算进程,完成计算任务的并行计算;

具体的,随机打乱运算任务序列的方式为:

首先将运算任务的序列

其关键在于将并行颗粒中所有运算任务的序列

主进程按照形成新的计算任务序列将该并行粗颗粒所需执行的所有运算任务分配到包含主进程的所有进程中,并完成并行粗颗粒执行的所有运算任务的并行运算。

另外,若并行粗颗粒中某运算任务被分配到一进程中,则生成该运算任务的用于表明该运算任务已经被分配标志文件;另一进程在申请分配某一运算任务时,将尝试生成该运算任务的标志文件,并在标志文件存在的情况下使另一进程自动尝试申请分配下一运算任务。

在多进程并行运算过程中,各个进程分配到某个运算任务的机会是均等的,如果不采取任何措施,可能导致多个进程被分配到同一运算任务,造成运算资源的浪费,因此必须采取某种措施,使得所有运算任务被唯一分配到某个进程。达到这一目的最简单也最直观的措施是分配任务及时标记,即任务被分配到某一进程的同时即将该任务进行标记,这样其他进程不再分配该任务。但由于并行运算时各进程的变量一般情况下相互独立,且运算任务不对称,各进程运算状态不同,任何进程通过变量标记任务被分配的信息无法立即被传递到其他进程,因此必须采用一种外在显式的标记方法使得运算任务一旦被标记,所有进程都能获得这个信息。因此,若并行粗颗粒中运算任务被分配到进程中,马上生成运算任务的标志文件;某一进程在申请分配某一运算任务时,将试图生成该运算任务的标志文件,如果该标志文件存在,则表明该运算任务已经被分配,该进程将自动尝试申请分配下一个运算任务。

利用标志文件来实现正确分配运算任务的具体实现步骤为:

步骤A1、一进程申请分配第

步骤A2、判断第

步骤A3、判断标志文件

步骤A4、锁定标志文件

步骤A5、生成标志文件

步骤A6、标志文件

步骤A7、完成第

步骤A8、判断并行粗颗粒中的所有运算任务是否全部完成,若未完成则

该并行粗颗粒所需执行的所有运算任务全部分配到所有进程中,该并行粗颗粒的分配结束;其返回执行其他并行粗颗粒分配其各自所需执行的所有运算任务。

所述管理进程模块用于控制整个迭代循环。

进一步的,如图2、3所示,所述管理进程模块具体的运行步骤如下:

步骤S100、大规模集成电路总计为

步骤S200、划分

步骤S300、管理进程将

步骤S400、管理进程检查待计算任务序列是否为空,如果是,进入步骤S1000,否则进入步骤S500;

步骤S500、管理进程检查是否存在闲置的计算进程,如果存在,随机动态的取出待计算任务序列中的计算任务分发给闲置的计算进程;

步骤S600、管理进程检查是否存在第一类并行计算颗粒已经完成且未处理,如果是,转入步骤S700,否则进入步骤S800;

步骤S700、管理进程针对每个所述的已经完成且未处理的第一类并行计算颗粒,划分

步骤S800、管理进程检查是否存在第二类并行计算颗粒已经完成且未处理,如果是,转入步骤S900,否则等待预设待定时间,进入步骤S400;

步骤S900、管理进程将所述已经完成且未处理的第二类并行计算颗粒的计算结果

步骤S1000、管理进程检查所有第一类并行计算颗粒的结果,如果

步骤S1100、管理进程检查所有第二类并行计算颗粒的结果,选取

步骤S1200、管理进程选取出所有满足|

进一步的,第一类并行粗颗粒的二维有限元计算方法具体为:对于直流电场模型,所述多层集成电路的三维模型是指直流电场模型中电导率

及边界条件(2):

式中

多层超大规模集成电路中实际PCB板或芯片封装的板尺寸远大于金属层的厚度,将多层集成电路的三维直流场问题简化为二维直流场问题;

所述对二维模型采用有限元法建立的场域求解方程组为方程组(3):

式中,所述

对于交变电磁场模型,所述多层集成电路的三维模型是指多层超大规模集成电路频域仿真中电磁响应特征的三维模型中介电常数

式中

多层超大规模集成电路中实际PCB板或芯片封装的板尺寸远大于金属层间距,将多层超大规模集成电路频域仿真中的电磁响应特征的三维模型简化为二维模型,此时模型中介电常数

式中,

经过三维模型到二维模型的简化,得到该二维模型对应的二维有限元泛函极值公式为:

式中,

如图4所示,第二类并行粗颗粒的具体步骤如下:

第一步,如图5所示,第

点电流源在的场点产生的电场表达式为:

其中,

T

T

T

对于多层集成电路的电流源为层状分布,即在复杂形状的集成电路版图的每个金属层上分布的电流密度只与

第二步,将所述点电流源在场点产生的电场表达式作为二维高斯积分的被积函数,基于场的线性叠加原理计算简单形状多边形的面电流源在相同位置产生的场,包括:二维面S内的电流源在空间任意点产生的场可通过所述二维高斯积分计算:

其中,

第三步,计算所述简单形状多边形上的所述电流在集成电路其他层不同位置产生的场,基于所述场的线性叠加原理确定简单形状多边形上的所述电流在集成电路其他层版图上分割的简单形状多边形上产生的场

第四步、再基于所述场的线性叠加原理确定第

特别的,当分析集成电路的电源层的电压降和电流分布时,其工作频率为低频,采用直流场模型进行分析,此时集成电路层间无空间耦合,只存在物理耦合,即集成电路层间通过过孔、外部电路相互连接的层之间相互耦合,此时,集成电路各层之间的相互影响层是确定的,不需要迭代对影响范围

以上迭代步骤可以看出,迭代过程中根据各层并矢格林函数的影响值的大小,自适应调节每源层对其他层施加影响的范围,而不是每次都将源对其他层的影响施加到所有其他层,从而加速迭代计算。以上迭代方法的优点在于,在计算其他源层对第

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置
  • 集成电路层间耦合动态施加的粗颗粒并行迭代方法及装置
技术分类

06120112940871