一种用于执行电路仿真中动态负载平衡的方法及装置制造方法

文档序号:6501862阅读:170来源:国知局
一种用于执行电路仿真中动态负载平衡的方法及装置制造方法
【专利摘要】一种用于执行电路仿真中动态负载平衡的方法和系统。在一个实施例中,一个用于执行电路仿真中动态负载平衡的计算机实现方法,包括识别被执行的多个电路仿真任务、确定对应于多个仿真任务的性能的执行持续时间估计、根据每个仿真任务的执行持续时间估计为多处理器分配多个仿真任务的方法、以及在多个处理器并行执行多个仿真任务。
【专利说明】一种用于执行电路仿真中动态负载平衡的方法及装置

【技术领域】
[0001] 本发明涉及的领域是电子设计自动化,具体而言,本发明涉及一种用于执行电路 仿真中动态负载平衡的方法及装置。

【背景技术】
[0002] 集成电路是由例如电阻、电容、电感器、互感器、传输线、二极管、双极结型晶体管 (BJT)、结型场效应晶体管(JFET)、金属氧化物半导体场效应晶体管(M0SFET)、金属T半导 体场效应晶体管(MESFET )、薄膜晶体管(TFT )等电路元件构成的网络。
[0003] 随着技术的发展,集成电路越来越复杂,需要使用强大的数值模拟程序。例如,电 路仿真是集成电路的设计流程中必不可少的环节,它能帮助电路设计人员无需通过昂贵 的制造工艺验证其设计的功能和性能。随着半导体加工技术发展到纳米尺寸,新的仿真 方法需要解决纳米级电路设计所固有的新问题。现代集成电路快速发展、更新换代,不断 挑战着电路仿真的算法和实现。半导体行业需要EDA软件有能力来分析与动态电流相关 的纳米效应,比如稱合噪声(coupling noise)、接地反弹(ground bounce)、传输线波传播 (transmission line wave propagation)、动态漏电流(dynamic leakage current)、电源 电压降(supply voltage drop)、器件和电路的非线性行为等。因此,精准的电路模拟和晶 体管级仿真已经成为解决纳米设计所面临问题的最有效的途径之一。
[0004] 电子电路仿真器包括美国加州大学伯克利分校(UC Berkeley)开发的面向集成电 路的仿真程序-SPICE (Simulation Program with Integrated Circuit Emphasis)以 及各种增强或衍生版本的SPICE仿真程序。SPICE及其增强、衍生版本将在本文被简称为 SPICE电路仿真器或SPICE。SPICE方法认为电路是一个不可分割的整体。
[0005] SPICE仿真可以提供对电路行为相当准确的预测。这种预测不局限于个别的子电 路,它涵盖整个系统(例如,整个集成电路),因而可以发现、处理全系统范围关于噪声之类 的问题。一般的SPICE仿真处理流程,模拟集成电路通常被表示为一个网表描述的形式。网 表是一种由SPICE语言编写的用于仿真的对模拟电路的电路描述。SPICE网表是包含仿真 控制语句的纯结构性语言。其他语言如Verilog-ATM,还具有行为构建的能力。通过结构性 网表,连同预定义电路元件,根据特定的电路建模方法(在本申请中不再详述),SPICE可以 将模拟集成电路据表示为矩阵形式的数学表达。非线性微分方程解的维度范围从1到η。 线性方程组的η维输入向量被表示为{I1,I2,..In}。由输入向量,可以求得线性矩阵的解 向量{VI,V2,..Vn}。由解向量,通过电路模型方法,可以得到另一组输入向量。重复以上 计算,直到解向量收敛。一系列的解向量,可以转换输出为波形、测量值或者核查结果,这样 工程师就可以通过计算机屏幕检查仿真的结果。
[0006] 然而,随着集成电路行业的发展,器件尺寸不断减小、互联效应日益增加,SPICE全 系统仿真变得越来越困难。一个例子是晶体管沟道长度微米尺寸变化为深亚微米尺寸。由 于更小的器件尺寸,电路设计者在集成电路中能够运用电路元件(例如,晶体管、二极管、电 容)数量呈指数级增长,对应于SPICE矩阵的维数也量级增长,巨大的计算复杂度使得计算 不能在有效时间内完成。
[0007] -个电路可以表示为大规模离散非线性矩阵用于分析瞬间电流。矩阵维数和电路 中节点的数目相同。对于瞬态分析,这个巨大的非线性系统需要求解几十万次,这限制了 SPICE方法的容量和性能。一般的SPICE方法可以模拟不超过约50, 000个节点的电路。因 此,对于全芯片设计,SPICE方法不可行。SPICE在实际应用中被广泛应用于单元设计、库生 成和准确性验证。
[0008] 相对于传统SPICE,在20世纪90年代初开发的快速SPICE方法(Fast SPICE)在 一定精度损失的情况下,有两个数量级以上的容量和速度提升。性能上的提升主要由于使 用简化模型、电路划分技术、事件驱动的算法以及对电路延迟的利用。
[0009] SPICE将电路模型化为节点、元件集,也就是说一个电路被视为通过节点相连接的 各种电路元件的集合。SPICE的核心是所谓的节点分析,通过节点方程(或者电路方程)以 矩阵形式表示电路,求解节点方程对电路进行仿真。电路元件被表示为器件模型,产生表现 为电路方程的矩阵元素的模型解。
[0010] 电路元件的器件模型模拟,比如加州大学伯克利分校开发M0SFET器件SPICE模 型,通常以模型方程和模型参数表示在变化偏置电压下的电路元件特性。例如,具有η个端 子的电路元件,可以由下述的电流-电压关系建模:
[0011] Ii = fi (Vi,· · ·,Vn,t),其中 i=l,…,η,
[0012] L表示流入第i个端口的电流,Vj(j=l, ···,]!)表示电压或者端口 j相对于参考端 口(例如地)的偏置电压,t表示时间。由基尔霍夫电流定律,流入端口 η的电流为

【权利要求】
1. 一种用于执行电路仿真中动态负载平衡的计算机实现方法,其特征在于包括: 识别要被执行的复数个电路仿真任务; 确定对应于所述复数个仿真任务性能的执行持续时间估计; 根据每个仿真任务的所述执行持续时间估计为复数个处理器分配所述复数个仿真任 务; 在所述复数个处理器并行执行所述复数个仿真任务。
2. 权利要求1所述的一种用于执行电路仿真中动态负载平衡的计算机实现方法,其中 复数个仿真任务包括: 模型计算任务,加载矩阵任务和求解矩阵任务。
3. 权利要求1所述的一种用于执行电路仿真中动态负载平衡的计算机实现方法,其中 确定执行持续时间估计包括: 测量电路实时活跃程度的变化; 测量电路实时活动激励的变化; 识别电路中休眠部分; 省略电路休眠部分的模型计算; 省略电路休眠部分的矩阵求解。
4. 权利要求1所述的一种用于执行电路仿真中动态负载平衡的计算机实现方法,其中 分配所述复数个仿真任务至少包括以下之一: 根据执行持续时间估计排序所述复数个仿真任务; 根据测量的执行持续时间排序所述复数个仿真任务。
5. 权利要求1所述的一种用于执行电路仿真中动态负载平衡的计算机实现方法,其中 执行复数个仿真任务包括: 根据对应于所述复数个仿真任务性能的执行持续时间估计生成降序序列; 依照所述执行持续时间估计的降序序列执行所述复数个仿真任务,其中执行持续时间 估计最长的仿真任务最先处理。
6. 权利要求1所述的一种用于执行电路仿真中动态负载平衡的计算机实现方法,其中 进一步包括: 将所述复数个仿真任务分割为相应的复数个子任务; 将所述相应的复数个子任务存储于一个任务队列; 将所述任务队列中的相应的复数个子任务分配给复数个处理器以使处理与相应的复 数个子任务的仿真时间相一致。
7. 权利要求6所述的一种用于执行电路仿真中动态负载平衡的计算机实现方法,其中 分割所述复数个仿真任务包括: 将模型计算任务分割为多个模型计算子任务; 将加载矩阵任务分割为多个加载矩阵子任务; 将求解矩阵任务分割为多个求解矩阵子任务。
8. 权利要求7所述的一种用于执行电路仿真中动态负载平衡的计算机实现方法,其中 将加载矩阵任务分割为多个加载矩阵子任务包括 : 获取多个模型计算任务的记录; 对每个模型计算任务遍历矩阵中的每个位置并加载模型计算的输出到矩阵中。
9. 权利要求7所述的一种用于执行电路仿真中动态负载平衡的计算机实现方法,其中 将加载矩阵任务分割为多个加载矩阵子任务进一步包括 : 将层次式数据结构中不同层的加载矩阵任务分配到所述复数个处理器中; 所述复数个处理器并行执行矩阵加载任务。
10. 权利要求9所述的一种用于执行电路仿真中动态负载平衡的计算机实现方法,其 中执行多个加载矩阵任务包括: 所述复数个处理器并行加载矩阵中多个位置。
11. 一种用于执行电路仿真中动态负载平衡的装置,其特征在于包括: 一个或多个处理器; 一个或多个处理器控制的动态负载平衡模块;其中所述动态负载平衡模块包括: 识别要被执行的复数个电路仿真任务的逻辑; 确定对应于所述复数个仿真任务性能的执行持续时间估计的逻辑; 根据每个仿真任务的所述执行持续时间估计为所述复数个处理器分配所述复数个仿 真任务的逻辑; 在所述复数个处理器并行执行所述复数个仿真任务的逻辑。
12. 权利要求11所述的一种用于执行电路仿真中动态负载平衡的装置,其中所述复数 个仿真任务包括: 模型计算任务,加载矩阵任务和求解矩阵任务。
13. 权利要求11所述的一种用于执行电路仿真中动态负载平衡的装置,其中确定所述 执行持续时间估计的逻辑包括: 测量电路实时活跃程度的变化的逻辑; 测量电路实时活动激励的变化的逻辑; 识别电路中休眠部分的逻辑; 省略电路休眠部分的模型计算的逻辑; 省略电路休眠部分的矩阵求解的逻辑。
14. 权利要求11所述的一种用于执行电路仿真中动态负载平衡的装置,其中分配所述 复数个仿真任务的逻辑包括以下之一: 根据执行持续时间估计排序所述复数个仿真任务的逻辑;以及 根据所述测量的持续时间排序所述复数个仿真任务的逻辑。
15. 权利要求11所述的一种用于执行电路仿真中动态负载平衡的装置,其中执行所述 复数个仿真任务的逻辑包括: 根据对应于所述复数个仿真任务性能的执行持续时间估计生成降序序列的逻辑;以及 依照所述执行持续时间估计的降序序列执行所述复数个仿真任务,其中所述执行持续 时间估计最长的仿真任务最先处理的逻辑。
16. 权利要求11所述的一种用于执行电路仿真中动态负载平衡的装置,其中进一步包 括: 将所述复数个仿真任务分割为相应的复数个子任务的逻辑; 将所述相应的复数个子任务存储于一个任务队列的逻辑; 将所述任务队列中的相应的复数个子任务分配给所述复数个处理器以使处理与相应 的复数个子任务的仿真时间相一致的逻辑。
17. 权利要求16所述的一种用于执行电路仿真中动态负载平衡的装置,其中分割所述 复数个仿真任务的逻辑包括: 将模型计算任务分割为多个模型计算子任务的逻辑; 将加载矩阵任务分割为多个加载矩阵子任务的逻辑;以及 将求解矩阵任务分割为多个求解矩阵子任务的逻辑。
18. 权利要求17所述的一种用于执行电路仿真中动态负载平衡的装置,其中将加载矩 阵任务分割为多个加载矩阵子任务的逻辑包括: 获取多个模型计算任务的记录的逻辑;以及 对每个模型计算任务遍历矩阵中的每个位置并加载模型计算的输出到矩阵中的逻辑。
19. 权利要求17所述的一种用于执行电路仿真中动态负载平衡的装置,其中将加载矩 阵任务分割为多个加载矩阵子任务的逻辑进一步包括: 将层次式数据结构中不同层的加载矩阵任务分配到所述复数个处理器中的逻辑;以及 复数个处理器并行执行矩阵加载任务的逻辑。
20. 权利要求19所述的一种用于执行电路仿真中动态负载平衡的装置,其中执行多个 加载矩阵任务的逻辑包括: 所述复数个处理器并行加载矩阵中多个位置的逻辑。
21. -种用于执行电路仿真中动态负载平衡的系统,其特征在于包括: 识别要被执行的复数个电路仿真任务的方法; 确定对应于所述复数个仿真任务性能的执行持续时间估计的方法; 根据所述每个仿真任务的执行持续时间估计为复数个处理器分配所述复数个仿真任 务的方法; 在所述复数个处理器并行执行所述复数个仿真任务的方法。
【文档编号】G06F9/455GK104111871SQ201310131869
【公开日】2014年10月22日 申请日期:2013年4月16日 优先权日:2013年4月16日
【发明者】B·W·麦克高非, 杨钊志 申请人:济南概伦电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1