[发明专利]具有保密功能的集成电路云平台电磁仿真并行方法及装置有效
申请号: | 202110459226.8 | 申请日: | 2021-04-27 |
公开(公告)号: | CN112989685B | 公开(公告)日: | 2021-08-24 |
发明(设计)人: | 唐章宏;邹军;王芬;黄承清;汲亚飞 | 申请(专利权)人: | 北京智芯仿真科技有限公司 |
主分类号: | G06F30/25 | 分类号: | G06F30/25;G06F30/39 |
代理公司: | 北京星通盈泰知识产权代理有限公司 11952 | 代理人: | 李筱 |
地址: | 100085 北京市海淀区信*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 具有 保密 功能 集成电路 平台 电磁 仿真 并行 方法 装置 | ||
1.一种具有保密功能的集成电路云平台电磁仿真并行方法,其特征在于,将整个集成电路云平台电磁仿真分为两部分:
第一部分为客户端,用于将集成电路模型转换为需要云平台进行计算的并行粗颗粒并发送到云平台;第二部分为云平台,用于完成所有待仿真集成电路模型的粗颗粒并行计算;所述粗颗粒通过以下方法确定:将整个集成电路模型的电磁仿真分割成多个计算颗粒,获取各计算颗粒的加权CPU时间和总CPU时间,依据所述加权CPU时间和所述总CPU时间的占比确定出计算粗颗粒;所述计算颗粒为需要多次重复执行的计算单元;
电磁仿真并行计算方法如下:
在客户端读取所有需要仿真的集成电路模型,将需要云平台进行计算的集成电路模型信息、计算条件提取出来,形成并行粗颗粒发送到云平台;
在云平台建立管理进程,定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储;
通过所述管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信;每个被发起的计算进程根据收到的管理进程的应答信息,执行完成分配的一个计算粗颗粒或结束该计算进程;
计算进程计算完成后,将对应计算进程的计算结果反馈到所述管理进程;当所有需要计算的并行粗颗粒的计算任务都完成时,所述管理进程收集计算结果并将所有计算任务的计算结果整理生成最终计算结果;
将云平台的最终计算结果传送到客户端,由客户端对最终计算结果进行显示;
其中,所述定义对象存储所述集成电路模型对应的并行粗颗粒的计算条件、计算状态,以及管理进程与计算进程的消息内容存储,具体包括:
针对所有的集成电路模型对应的并行粗颗粒,定义对象M,所述对象M包括并行粗颗粒存储字段、并行粗颗粒计算类型存储字段及所述并行粗颗粒对应的剖分的网格数据文件路径存储字段、并行粗颗粒计算条件存储字段、并行粗颗粒计算状态存储字段和进程的消息内容存储字段;
所述集成电路模型对应的并行粗颗粒存储字段记为Data,该字段存储集成电路模型的与电磁仿真计算相关的所有信息,包括定义集成电路模型的层坐标信息、集成电路各层的版图坐标信息、集成电路各层的介质参数信息、集成电路各层的连接关系以及集成电路的外部电路;
所述集成电路模型对应的并行粗颗粒类型存储字段记为Type,该字段存储所述集成电路模型的仿真类型和集成电路模型的规模;所述集成电路模型的仿真类型包括:多层PCB版图模型、IC封装模型、多层尺度更小的芯片设计模型,以及多个集成电路模型的联合仿真;所述集成电路模型的规模包括:层数在4层以下的小规模集成电路模型、层数在4层以上20层以下的中等规模集成电路模型以及层数在20层以上的大规模集成电路模型;
所述集成电路模型对应的并行粗颗粒对应的剖分的网格数据文件路径存储字段记为Path;
所述集成电路模型对应的并行粗颗粒计算条件存储字段记为Net,该字段存储不同集成电路模型的计算参数,包括:集成电路的直流压降分析和集成电路的电热耦合分析的端口与端口初始温度信息、集成电路电源完整性分析初始条件与仿真频率信息、集成电路信号完整性分析初始条件与仿真频率信息、集成电路电源完整性与信号完整性优化指标与仿真频率信息、集成电路的电磁干扰和电磁兼容分析的仿真频率与仿真端口信息、集成电路的等效电路参数提取的待分析端口信息与集成电路的IBIS模型提取的待分析端口信息;
所述集成电路模型对应的并行粗颗粒计算状态存储字段记为State,该字段存储集成电路模型对应的并行粗颗粒的计算状态,包括以下5种计算状态:未计算且未生成网格,可用C0_M0表示;未计算且正在生成网格,可用C0_M1表示;未计算且生成网格完毕,可用C0_M表示;正在计算且生成网格完毕,可用C1_M表示;完成计算,可用C_M表示;
所述进程的消息内容存储字段记为Message,该字段存储管理进程与计算进程之间发送的消息,发送的消息包括:查询指令,可用Inquire表示;结果更新指令,可用Update表示;进入网格生成指令,可用P_Y表示;不生成网格而是直接读取网格进行计算指令,可用P_N表示;关闭进程指令,可用P_NN表示;
所述针对所有的集成电路模型定义的对象M可以用M[Data][Type][Path][Net][State] [Message]完整表示,所述对象M泛指存储介质中的内存区,可以是连续的或者非连续的,可以是远程数据库记录或者是一个字符串,也可以是json,xml,ini文件;
并且,其中,所述通过管理进程并行发起多个独立的计算进程,所述管理进程与各计算进程进行通信实现对计算进程的管理,各计算进程之间不进行任何通信,具体包括:
S101:建立一个管理进程MK,如果建立成功,进入步骤S102,如果建立失败,进入步骤S109;
S102:定义对象M[Data][Type][Path][Net][State][Message],定义对象M的元素Mi为与并行粗颗粒对应的对象M字段Data、Type、Path、Net、State、Message的具体实例;将集成电路模型对应的并行粗颗粒存入对象M的[Data];归类集成电路模型对应的并行粗颗粒的类型,将其存入对象M的[Type];将所述集成电路模型对应的并行粗颗粒对应的生产剖分的网格数据文件路径存入对象M的[Path]中;将集成电路模型对应的并行粗颗粒的计算条件存入对象M中的[Net];初始化对象M的字段State= C0_M0;初始化对象M的Message为空;初始化进程号Ki=1;
S103:管理进程MK建立第Ki个计算进程,如果第Ki个计算进程建立失败,暂停时间
S104:管理进程MK进入HTTP网络服务应答状态,查询所有计算进程的工作状态及进程池中的计算进程数,如果进程池中的计算进程数小于允许创建的最大计算进程数,进入步骤S103,否则激活所有挂起状态的计算进程进入就绪状态并进入步骤S105;其中所述计算进程的工作状态包括挂起、就绪、退出;
S105:如果管理进程MK收到任意计算进程Kj发的其元素的字段Message=Inquire,进入步骤S106,其中1≤Kj≤允许创建的最大进程数;如果管理进程MK收到任意计算进程
S106:管理进程MK查询对象M的所有元素的计算状态,如果对象M的所有元素的字段State=C_M,说明所有计算任务都计算完毕,进入步骤S109;否则进入步骤S107;
S107:如果对象M的某个元素Mi的字段State= C0_M0,更新该元素Mi的字段State= C0_M1,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_Y;如果对象M的某个元素Mi的字段State=C0_M,更新该元素Mi的字段State=C1_M,管理进程MK回复计算进程Kj的指令为该元素Mi的字段Message=P_N;如果对象M的某个元素Mi的字段State= C1_M或State= C_M,查询标记指向对象M的字段Net的下一个元素,继续查询属于同一集成电路模型的并行粗颗粒,如果已遍历对象M的字段Net的所有元素,进入步骤S106,否则进入步骤S107;如果对象M的某个元素Mi的字段State= C0_M1,查询标记指向对象M的字段Data的下一个元素,继续查询下一个集成电路模型的并行粗颗粒,如果已遍历对象M的字段Data的所有元素,进入步骤S106,否则进入步骤S107;
S108:进入步骤S104;
S109:向所有计算进程发送P_NN指令,关闭所有计算进程,结束管理进程MK。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智芯仿真科技有限公司,未经北京智芯仿真科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110459226.8/1.html,转载请声明来源钻瓜专利网。