集成电路层间耦合动态施加的粗颗粒并行迭代方法及装置与流程

文档序号:25520891发布日期:2021-06-18 20:08阅读:109来源:国知局
集成电路层间耦合动态施加的粗颗粒并行迭代方法及装置与流程

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



背景技术:

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

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



技术实现要素:

(一)发明目的

基于上述问题,本发明提出一种集成电路层间耦合动态施加的粗颗粒并行迭代方法及装置,一方面在多层超大规模集成电路层间耦合的迭代计算过程中最大限度的减少各进程之间的通信,避免多进程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈,完美解决不同计算实例复杂度不对等带来的进程等待问题,进而大大提高并行计算效率;另一方面,根据集成电路层间耦合的特点,将所有计算颗粒合并为具有不同范围的计算任务集合的两级并行计算粗颗粒,依据这两级并行计算粗颗粒分配计算进程;最后,基于电磁场、电磁波在空间中的衰减规律,在设计并行迭代求解方法时,每次迭代通过并矢格林函数计算其他层对源层的影响,并且将影响进行累加作为源层的源项,对源层施加二维有限元计算其场分布从而更新该层的场和电流分布,得到源层场的改变量,并动态修改源层受到其他层影响的作用层范围,这将大大加速迭代求解时间。本申请公开了以下技术方案。

(二)技术方案

作为本发明的第一方面,本发明公开了一种集成电路层间耦合动态施加的粗颗粒并行迭代方法,包括以下步骤:

步骤s100、将集成电路层间耦合的迭代计算划分为并行计算颗粒,并依据并行计算颗粒的加权cpu时间将并行计算颗粒合并为两级并行计算粗颗粒,第一级并行计算粗颗粒为计算每个源层的电磁场和电流分布,其包含通过计算其他层对源层的影响以更新通过耦合方式作用在该源层的源项和利用二维有限元计算该源层的电磁场和电流分布;第二级并行计算粗颗粒为计算集成电路的层-层的相互影响;

步骤s200、大规模集成电路总计为n+1层,各层编号为,当考虑大规模集成电路的第m层电流源时,称该层为第m源层,且设置第m源层的作用层的初始值为除第m源层的其他n层集成电路,即,其中,第0层为底层;设置迭代次数

步骤s300、如果,基于第一级并行计算粗颗粒计算第m源层的电磁场和电流分布,并计算该层电磁场的改变量dem和第l层对该层并矢格林函数的影响值glm的最大值gm,max和最小值gm,min,其中0≤mn

步骤s400、如果,迭代结束,输出各层电磁场和电流分布,其中为预先设定的迭代精度;

步骤s500、如果,归并所有第一级并行计算粗颗粒获得的并矢格林函数的影响值,获得当前迭代所有并矢格林函数的影响值的最大值gmax和最小值gmin,计算并矢格林函数的有效影响值,这里thredshold为预先设定的并矢格林函数影响的舍弃阈值;

步骤s600、如果,计算满足条件的glm中距离层m最近的层lnear,将更新为

步骤s700、设置,转入步骤s300。

进一步的,步骤s100中,所述并行计算颗粒的加权cpu时间的计算公式为:式中:为第i个并行计算颗粒的加权cpu时间,为第i个并行计算颗粒单次计算的cpu时间,为第i个并行计算颗粒执行的次数。

进一步的,所述第一级并行计算粗颗粒和第二级并行计算粗颗粒为不同范围的计算任务集合,所述第一级并行计算粗颗粒包含多个第二级并行计算粗颗粒和一个利用二维有限元计算集成电路层的电磁场和电流分布的计算任务,属于同一级的并行计算颗粒可以并行计算,第一级并行计算颗粒可以分配多个计算进程,第二级并行计算颗粒只能分配一个计算进程。

进一步的,所述步骤s300包括:

步骤s310、基于第二级并行计算粗颗粒,利用并矢格林函数计算第l层对第m源层的影响,记为glm,其中,;将所有glm叠加,得到作用层范围内的其他层对第m源层的影响总和:;结束第二级并行计算粗颗粒;

步骤s320、如果iter>0,将gm作为第m源层的附加源加入到第m源层的源项中;

步骤s330、对第m源层施加二维有限元计算其电磁场分布从而更新该层的电磁场和电流分布,计算该层电磁场的改变量dem

步骤s340、根据第l层对该层并矢格林函数的影响值glm,计算glm的最大值gm,max和最小值gm,min。

进一步的,所述第二级并行计算粗颗粒的具体步骤包括:

步骤s311、计算点电流源在场点产生的电场,所述点电流源在场点产生的电场表达式为根据集成电路分层的特殊结构形成的特殊的解析表达式,所述多层集成电路的电流源为层状分布,即在所述复杂形状的集成电路版图的每个金属层上分布的电流密度只与xy有关,与z无关,电流密度分布仅为x,y的函数;

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

其中,为所述二维面s内的所述电流源在空间任意点(x,y,z)产生的场,为所述二维面s内任意位置(u,v)的所述点电流源在空间任意点(x,y,z)产生的场的表达式,表示二维面s内二维高斯积分对应的高斯积分点,p,q分别表示u,v方向的第p个,第q个高斯积分点,是对应高斯积分点的权重因子;

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

步骤s314、再次基于所述场的线性叠加原理确定第l层在第m源层产生的电场。

进一步的,在迭代过程中根据并矢格林函数的影响值g的大小确定能够忽略的层,自适应调节第m源层受到其临近的其他层影响的范围

另一方满公开了一种集成电路层间耦合动态施加的粗颗粒并行迭代装置,包括并行计算颗粒划分模块,并行计算粗颗粒划分模块,并行计算粗颗粒运行模块;

所述并行计算颗粒划分模块用于将集成电路层间耦合的迭代计算划分为并行计算颗粒;

所述并行计算粗颗粒划分模块,基于一次完整的串行迭代计算,获取各并行计算颗粒的加权cpu时间和整体集成电路层间耦合即时更新的迭代方法的总cpu时间,依据所述加权cpu时间和所述总cpu时间的占比将所述并行计算颗粒合并为两级并行计算粗颗粒;第一级并行计算粗颗粒为计算每个源层的电磁场和电流分布,其包含通过计算其他层对源层的影响以更新通过耦合方式作用在该源层的源项和利用二维有限元计算该源层的电磁场和电流分布;第二级并行计算粗颗粒为计算集成电路的层-层的相互影响;

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

进一步的,所述第一级并行计算粗颗粒和第二级并行计算粗颗粒为不同范围的计算任务集合,所述第一级并行计算粗颗粒包含多个第二级并行计算粗颗粒和一个利用二维有限元计算集成电路层的电磁场和电流分布的计算任务,属于同一级的并行计算颗粒可以并行计算,第一级并行计算颗粒可以分配多个计算进程,第二级并行计算颗粒只能分配一个计算进程。

进一步的,所述第二级并行计算粗颗粒的具体步骤包括:

步骤1、计算点电流源在场点产生的电场,所述点电流源在场点产生的电场表达式为根据集成电路分层的特殊结构形成的特殊的解析表达式,所述多层集成电路的电流源为层状分布,即在所述复杂形状的集成电路版图的每个金属层上分布的电流密度只与xy有关,与z无关,电流密度分布仅为x,y的函数;

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

其中,为所述二维面s内的所述电流源在空间任意点(x,y,z)产生的场,为所述二维面s内任意位置(u,v)的所述点电流源在空间任意点(x,y,z)产生的场的表达式,表示二维面s内二维高斯积分对应的高斯积分点,p,q分别表示u,v方向的第p个,第q个高斯积分点,是对应高斯积分点的权重因子;

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

步骤4、再次基于所述场的线性叠加原理确定第l层在第m源层产生的电场。

进一步的,所述并行计算颗粒的加权cpu时间的计算公式为:式中:为第i个并行计算颗粒的加权cpu时间,为第i个并行计算颗粒单次计算的cpu时间,为第i个并行计算颗粒执行的次数。

(三)有益效果

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

附图说明

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

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

图2是本发明的第一实施例中第二级并行计算粗颗粒流程图;

图3是本发明的第二实施例的模块框图;

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

具体实施方式

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

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

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,均仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。

下面参考图1、2、4详细描述本发明提供的集成电路层间耦合动态施加的粗颗粒并行迭代方法及装置的第一实施例。本实施例提供的一种集成电路层间耦合动态施加的粗颗粒并行迭代方法,如图1、2所示,包括以下步骤:

步骤s100、将集成电路层间耦合的迭代计算划分为并行计算颗粒,并依据并行计算颗粒的加权cpu时间将并行计算颗粒合并为两级并行计算粗颗粒,第一级并行计算粗颗粒为计算每个源层的电磁场和电流分布,其包含通过计算其他层对源层的影响以更新通过耦合方式作用在该源层的源项和利用二维有限元计算该源层的电磁场和电流分布;第二级并行计算粗颗粒为计算集成电路的层-层的相互影响;

进一步的,所述第一级并行计算粗颗粒和第二级并行计算粗颗粒为不同范围的计算任务集合,所述第一级并行计算粗颗粒包含多个第二级并行计算粗颗粒和一个利用二维有限元计算集成电路层的电磁场和电流分布的计算任务,属于同一级的并行计算颗粒可以并行计算,第一级并行计算粗颗粒可以分配多个计算进程,第二级并行计算粗颗粒只能分配一个计算进程。

具体的,将各并行计算颗粒的加权cpu时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总cpu时间,将所述累加和之中的每个并行计算颗粒作为一个并行计算粗颗粒。其中,所述并行计算颗粒的加权cpu时间的计算公式为:式中:为第i个并行计算颗粒的加权cpu时间,ti为第i个并行计算颗粒单次计算的cpu时间,为第i个并行计算颗粒执行的次数;所述整个计算过程的总cpu时间的计算公式为:,其中,t为整个计算过程的总cpu时间,m为整个计算程序被划分的并行计算颗粒数,为第i个并行计算颗粒的加权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为并行计算粗颗粒。

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

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

首先将运算任务的序列,对应生成随机数序列m=1,2,3,…,m。然后对序列从小到大排序,排序后的序列为。最后生成新的不重复的运算任务序列中的位置。

其关键在于将并行颗粒中所有运算任务的序列随机打乱,产生新的不重复的运算任务序列,然后按照该序列顺序分配运算任务,即等效为对原始运算任务进行随机分配,该随机分配策略特征在于随机分配方案能彻底打乱所有运算任务的分配顺序,从而实现各运算节点同时运算的任务占用的峰值内存总和由进程数和所有模型(计算颗粒)占用峰值内存的平均值而非最高值决定。

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

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

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

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

步骤a1、一进程申请分配第i个运算任务;

步骤a2、判断第i个运算任务的标志文件fi是否存在,若存在则跳至步骤a8,若不存在则跳至步骤a3;

步骤a3、判断标志文件fi是否被锁定,若被锁定则跳至步骤a8,若未被锁定则跳至步骤a4;

步骤a4、锁定标志文件fi

步骤a5、生成标志文件fi

步骤a6、标志文件fi解锁;

步骤a7、完成第i个运算任务的运算;

步骤a8、判断并行计算粗颗粒中的所有运算任务是否全部完成,若未完成则ii+1,并返回步骤a1,若已完成则跳至步骤a9;

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

步骤s200、大规模集成电路总计为n+1层,各层编号为,当考虑大规模集成电路的第m层电流源时,称该层为第m源层,且设置第m源层的作用层的初始值为除第m源层的其他n层集成电路,即,其中,第0层为底层;设置迭代次数

步骤s300、如果,基于第一级并行计算粗颗粒计算第m源层的电磁场和电流分布,并计算该层电磁场的改变量dem和第l层对该层并矢格林函数的影响值glm的最大值gm,max和最小值gm,min,其中0≤mn

进一步的,所述步骤s300包括:

步骤s310、基于第二级并行计算粗颗粒,利用并矢格林函数计算第l层对第m源层的影响,记为glm,其中,;将所有glm叠加,得到作用层范围内的其他层对第m源层的影响总和:;结束第二级并行计算粗颗粒;

步骤s320、如果iter>0,将gm作为第m源层的附加源加入到第m源层的源项中;

步骤s330、对第m源层施加二维有限元计算其电磁场分布从而更新该层的电磁场和电流分布,计算该层电磁场的改变量dem

步骤s340、根据第l层对该层并矢格林函数的影响值glm,计算glm的最大值gm,max和最小值gm,min。

步骤s400、如果,迭代结束,输出各层电磁场和电流分布,其中为预先设定的迭代精度;

步骤s500、如果,归并所有第一级并行计算粗颗粒获得的并矢格林函数的影响值,获得当前迭代所有并矢格林函数的影响值的最大值gmax和最小值gmin,计算并矢格林函数的有效影响值,这里thredshold为预先设定的并矢格林函数影响的舍弃阈值;

步骤s600、如果,计算满足条件的glm中距离层m最近的层lnear,将更新为;因为由电磁场、电磁波在空间中的衰减规律可知,点源对空间任意点的影响随着点源与该点的距离增大而减弱,具体来说其影响值随距离成反比,且因为层界面的反射,使得电磁波由源点传输到空间中的场点减弱更快,因此,在利用并矢格林函数计算点源对空间点的影响时,可以认为在空间点与点源距离大于一定程度,或者之间相隔的介质层数到一定程度后,点源对空间点的影响可以忽略不计。所以在迭代过程中根据并矢格林函数的影响值g的大小确定能够忽略的层,自适应调节第m源层受到其临近的其他层影响的范围

步骤s700、设置iter=iter+1,转入步骤s300。

进一步的,如图2所述第二级并行计算粗颗粒的具体步骤包括:

步骤s311、计算点电流源在场点产生的电场,所述点电流源在场点产生的电场表达式为根据集成电路分层的特殊结构形成的特殊的解析表达式,如图4所示,所述解析表达式的具体如下:针对多层集成电路版图的频域电磁场,采用并矢格林函数计算点源在任意层场点产生的电场强度,可通过下式求解多层集成电路版图任一层的任一点的九个方位的电场强度来表示,即为求解所述点源对场点的电场表达式:

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

其中,

i为虚数单位,i2=-1;表示0阶贝塞尔函数;表示1阶贝塞尔函数;表示为贝塞尔积分系数,x,y,z表示场点坐标,,,表示源点坐标;角频率表示频率;表示所述场点在第层,为第层分界面的z坐标;,分别表示第层水平和垂向的复波数;分别表示第层水平介电常数、垂向介电常数;,分别表示第l层水平磁导率、垂向磁导率;表示第l层的各向异性系数;,分别表示第l层水平和垂向的复波数的积分系数;分别表示第l层的待定系数,al,bl由以下线性方程求解得出:

t1为2n×2n的复数矩阵,为长度为2n的复向量;

由以下线性方程求解得出:

t2为2n×2n的复数矩阵,为长度为2n的复向量;

由以下线性方程求解得出:

t3为2n×2n的复数矩阵,为长度为2n的复向量;

表示x方向的电偶极子在位于第l层的所述场点产生的所述电场的x分量;

表示x方向的电偶极子在位于第l层的所述场点产生的所述电场的y分量;

表示x方向的电偶极子在位于第l层的所述场点产生的所述电场的z分量;

表示y方向的电偶极子在位于第l层的所述场点产生的所述电场的x分量;

表示y方向的电偶极子在位于第l层的所述场点产生的所述电场的y分量;

表示y方向的电偶极子在位于第l层的所述场点产生的所述电场的z分量;

表示z方向的电偶极子在位于第l层的所述场点产生的所述电场的x分量;

表示z方向的电偶极子在位于第l层的所述场点产生的所述电场的y分量;

表示z方向的电偶极子在位于第l层的所述场点产生的所述电场的z分量。

所述多层集成电路的电流源为层状分布,即在所述复杂形状的集成电路版图的每个金属层上分布的电流密度只与xy有关,与z无关,电流密度分布仅为x,y的函数。

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

其中,e(x,y,z)为所述二维面s内的电流源在空间任意点(x,y,z)产生的场,为所述二维面s内任意位置(u,v)的点电流源在空间任意点(x,y,z)产生的场的并矢格林函数的表达式,表示二维面s内二维高斯积分对应的高斯积分点,p,q分别表示u,v方向的第p个,第q个高斯积分点,是对应高斯积分点的权重因子;

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

步骤s314、再次基于所述场的线性叠加原理确定第l层在第m源层产生的电场。

进一步的,在迭代过程中根据并矢格林函数的影响值g的大小确定能够忽略的层,自适应调节第m源层受到其临近的其他层影响的范围

进一步的,所述第一级并行计算粗颗粒通过二维有限元计算第m源层的电磁场和电流分布,具体为:

对于直流电场模型,所述多层集成电路的三维模型是指直流电场模型中电导率、电位u的分布均为三维空间坐标(x,y,z)的函数,即:,该三维模型的函数满足以下方程(1):

方程(1),

及边界条件(2):

式中为第一类边界,n为第二类边界的法向,表示电位u在第一类边界上的值,用表示,为外部电路的体电流密度;

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

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

式中,所述i(u)为泛函,t为金属层的厚度,为网格单元e的电导率,为网格单元e的电位,为网格单元e的面积,为表面电流密度,表示网格单元e的边;

对于交变电磁场模型,所述多层集成电路的三维模型是指多层超大规模集成电路频域仿真中电磁响应特征的三维模型中介电常数、磁导率、电场强度e、磁场强度h的分布均为三维空间坐标(x,y,z)的函数,即:,,,该三维模型的函数满足以下方程:

式中j为外加的电流密度分布,为集成电路仿真的角频率,表示磁场强度h的旋度,表示电场强度e的旋度,j为虚数单位,j2=-1;

多层超大规模集成电路中实际pcb板或芯片封装的板尺寸远大于金属层间距,将多层超大规模集成电路频域仿真中的电磁响应特征的三维模型简化为二维模型,此时模型中介电常数、磁导率、电场强度e、磁场强度h的分布均为二维平面坐标(x,y)的函数,即:,其分布与z无关,且场域中的电位u和表面电流密度js满足:

式中,分别表示x,y,z方向的单位矢量,ez为电场强度的z方向分量,hx和hy分别为磁场强度的xy方向分量,h为金属层间距;

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

式中,

为泛函,表示对泛函取极值,为网格单元i的表面导纳,为边界的开口边界条件,uk为边界上的电位分布,表示边界右侧且无限接近边界的位置,表示边界左侧且无限接近边界的位置,表示网格单元i的区域,为网格单元i的电流密度,为网格单元i的表面阻抗,为网格单元i的电位,k是指第k个边界。

从以上迭代步骤中可以看出每次迭代更新每层的电磁场分布和电流分布,而不是主动计算源层对其他层的影响。在计算每层的电磁场分布和电流分布时,确定该层的源项为外部电路对应的激励源和其他层对它的影响对应的源项。可根据电磁场、电磁波在空间中的衰减规律确定需要计算多少其他层对它的影响。同时迭代过程中根据各层并矢格林函数的影响值的大小,自适应调节每源层对其他层施加影响的范围。

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

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

所述并行计算颗粒划分模块用于将集成电路层间耦合的迭代计算划分为并行计算颗粒;

所述并行计算粗颗粒划分模块,基于一次完整的串行迭代计算,获取各并行计算颗粒的加权cpu时间和整体集成电路层间耦合即时更新的迭代方法的总cpu时间,依据所述加权cpu时间和所述总cpu时间的占比将所述并行计算颗粒合并为两级并行计算粗颗粒;第一级并行计算粗颗粒为计算每个源层的电磁场和电流分布,其包含通过计算其他层对源层的影响以更新通过耦合方式作用在该源层的源项和利用二维有限元计算该源层的电磁场和电流分布;第二级并行计算粗颗粒为计算集成电路的层-层的相互影响;

具体的,将各并行计算颗粒的加权cpu时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总cpu时间,将所述累加和之中的每个并行计算颗粒作为一个并行计算粗颗粒。其中,所述并行计算颗粒的加权cpu时间的计算公式为:式中:为第i个并行计算颗粒的加权cpu时间,为第i个并行计算颗粒单次计算的cpu时间,为第i个并行计算颗粒执行的次数;所述整个计算过程的总cpu时间的计算公式为:,其中,t为整个计算过程的总cpu时间,m为整个计算程序被划分的并行计算颗粒数,为第i个并行计算颗粒的加权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为并行计算粗颗粒。

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

进一步的,所述第一级并行计算粗颗粒和第二级并行计算粗颗粒为不同范围的计算任务集合,所述第一级并行计算粗颗粒包含多个第二级并行计算粗颗粒和一个利用二维有限元计算集成电路层的电磁场和电流分布的计算任务,属于同一级的并行计算颗粒可以并行计算,第一级并行计算颗粒可以分配多个计算进程,第二级并行计算颗粒只能分配一个计算进程。

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

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

首先将运算任务的序列,对应生成随机数序列m=1,2,3,…,m。然后对序列从小到大排序,排序后的序列为。最后生成新的不重复的运算任务序列中的位置。

其关键在于将并行颗粒中所有运算任务的序列随机打乱,产生新的不重复的运算任务序列,然后按照该序列顺序分配运算任务,即等效为对原始运算任务进行随机分配,该随机分配策略特征在于随机分配方案能彻底打乱所有运算任务的分配顺序,从而实现各运算节点同时运算的任务占用的峰值内存总和由进程数和所有模型(计算颗粒)占用峰值内存的平均值而非最高值决定。

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

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

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

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

步骤a1、一进程申请分配第i个运算任务;

步骤a2、判断第i个运算任务的标志文件fi是否存在,若存在则跳至步骤a8,若不存在则跳至步骤a3;

步骤a3、判断标志文件fi是否被锁定,若被锁定则跳至步骤a8,若未被锁定则跳至步骤a4;

步骤a4、锁定标志文件fi

步骤a5、生成标志文件fi

步骤a6、标志文件fi解锁;

步骤a7、完成第i个运算任务的运算;

步骤a8、判断并行计算粗颗粒中的所有运算任务是否全部完成,若未完成则ii+1,并返回步骤a1,若已完成则跳至步骤a9;

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

进一步的,所述第二级并行计算粗颗粒的具体步骤包括:

步骤1、计算点电流源在场点产生的电场,所述点电流源在场点产生的电场表达式为根据集成电路分层的特殊结构形成的特殊的解析表达式,如图4所示,所述解析表达式的具体如下:针对多层集成电路版图的频域电磁场,采用并矢格林函数计算点源在任意层场点产生的电场强度,可通过下式求解多层集成电路版图任一层的任一点的九个方位的电场强度来表示,即为求解所述点源对场点的电场表达式:

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

其中,

i为虚数单位,i2=-1;表示0阶贝塞尔函数;表示1阶贝塞尔函数;表示为贝塞尔积分系数,x,y,z表示场点坐标,,,表示源点坐标;角频率表示频率;表示所述场点在第层,为第层分界面的z坐标;,分别表示第层水平和垂向的复波数;分别表示第层水平介电常数、垂向介电常数;,分别表示第l层水平磁导率、垂向磁导率;表示第l层的各向异性系数;,分别表示第l层水平和垂向的复波数的积分系数;分别表示第l层的待定系数,al,bl由以下线性方程求解得出:

t1为2n×2n的复数矩阵,为长度为2n的复向量;

由以下线性方程求解得出:

t2为2n×2n的复数矩阵,为长度为2n的复向量;

由以下线性方程求解得出:

t3为2n×2n的复数矩阵,为长度为2n的复向量;

表示x方向的电偶极子在位于第l层的所述场点产生的所述电场的x分量;

表示x方向的电偶极子在位于第l层的所述场点产生的所述电场的y分量;

表示x方向的电偶极子在位于第l层的所述场点产生的所述电场的z分量;

表示y方向的电偶极子在位于第l层的所述场点产生的所述电场的x分量;

表示y方向的电偶极子在位于第l层的所述场点产生的所述电场的y分量;

表示y方向的电偶极子在位于第l层的所述场点产生的所述电场的z分量;

表示z方向的电偶极子在位于第l层的所述场点产生的所述电场的x分量;

表示z方向的电偶极子在位于第l层的所述场点产生的所述电场的y分量;

表示z方向的电偶极子在位于第l层的所述场点产生的所述电场的z分量。

所述多层集成电路的电流源为层状分布,即在所述复杂形状的集成电路版图的每个金属层上分布的电流密度只与xy有关,与z无关,电流密度分布仅为x,y的函数。

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

其中,e(x,y,z)为所述二维面s内的电流源在空间任意点(x,y,z)产生的场,为所述二维面s内任意位置(u,v)的点电流源在空间任意点(x,y,z)产生的场的并矢格林函数的表达式,表示二维面s内二维高斯积分对应的高斯积分点,p,q分别表示u,v方向的第p个,第q个高斯积分点,是对应高斯积分点的权重因子;

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

步骤4、再次基于所述场的线性叠加原理确定第l层在第m源层产生的电场。

进一步的,在迭代过程中根据并矢格林函数的影响值g的大小确定能够忽略的层,自适应调节第m源层受到其临近的其他层影响的范围

进一步的,所述所述第一级并行计算粗颗粒通过二维有限元计算第m源层的电磁场和电流分布,具体为:

对于直流电场模型,所述多层集成电路的三维模型是指直流电场模型中电导率、电位u的分布均为三维空间坐标(x,y,z)的函数,即:,该三维模型的函数满足以下方程(1):

方程(1),

及边界条件(2):

式中为第一类边界,n为第二类边界的法向,表示电位u在第一类边界上的值,用表示,为外部电路的体电流密度;

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

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

式中,所述i(u)为泛函,t为金属层的厚度,为网格单元e的电导率,为网格单元e的电位,为网格单元e的面积,为表面电流密度,表示网格单元e的边;

对于交变电磁场模型,所述多层集成电路的三维模型是指多层超大规模集成电路频域仿真中电磁响应特征的三维模型中介电常数、磁导率、电场强度e、磁场强度h的分布均为三维空间坐标(x,y,z)的函数,即:,,,该三维模型的函数满足以下方程:

式中j为外加的电流密度分布,为集成电路仿真的角频率,表示磁场强度h的旋度,表示电场强度e的旋度,j为虚数单位,j2=-1;

多层超大规模集成电路中实际pcb板或芯片封装的板尺寸远大于金属层间距,将多层超大规模集成电路频域仿真中的电磁响应特征的三维模型简化为二维模型,此时模型中介电常数、磁导率、电场强度e、磁场强度h的分布均为二维平面坐标(x,y)的函数,即:,其分布与z无关,且场域中的电位u和表面电流密度js满足:

式中,分别表示x,y,z方向的单位矢量,ez为电场强度的z方向分量,hx和hy分别为磁场强度的xy方向分量,h为金属层间距;

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

式中,

为泛函,表示对泛函取极值,为网格单元i的表面导纳,为边界的开口边界条件,uk为边界上的电位分布,表示边界右侧且无限接近边界的位置,表示边界左侧且无限接近边界的位置,表示网格单元i的区域,为网格单元i的电流密度,为网格单元i的表面阻抗,为网格单元i的电位,k是指第k个边界。从以上迭代步骤中可以看出每次迭代更新每层的电磁场分布和电流分布,而不是主动计算源层对其他层的影响。在计算每层的电磁场分布和电流分布时,确定该层的源项为外部电路对应的激励源和其他层对它的影响对应的源项。可根据电磁场、电磁波在空间中的衰减规律确定需要计算多少其他层对它的影响。同时迭代过程中根据各层并矢格林函数的影响值的大小,自适应调节每源层对其他层施加影响的范围。

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

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1