CN111475998B - 延迟获取远程资源的电子设计自动化(eda)过程的混合执行 - Google Patents
延迟获取远程资源的电子设计自动化(eda)过程的混合执行 Download PDFInfo
- Publication number
- CN111475998B CN111475998B CN201910575236.0A CN201910575236A CN111475998B CN 111475998 B CN111475998 B CN 111475998B CN 201910575236 A CN201910575236 A CN 201910575236A CN 111475998 B CN111475998 B CN 111475998B
- Authority
- CN
- China
- Prior art keywords
- eda
- data
- resources
- computing
- remote
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 198
- 230000008569 process Effects 0.000 title claims abstract description 178
- 238000013461 design Methods 0.000 title claims abstract description 48
- 238000002360 preparation method Methods 0.000 claims abstract description 80
- 230000004044 response Effects 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000004458 analytical method Methods 0.000 description 12
- 230000003068 static effect Effects 0.000 description 9
- 230000015654 memory Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000011960 computer-aided design Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/02—CAD in a network environment, e.g. collaborative CAD or distributed simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
计算系统(100)可以包括电子设计自动化(EDA)数据构造器引擎(108)和EDA执行器引擎(110)。EDA数据构造器引擎(108)可以被配置以使用计算系统(100)的本地资源执行用于电路设计(205)的EDA过程的数据准备阶段。EDA执行器引擎(110)可以被配置以获取用于EDA过程的实行阶段的远程资源(201,202,203),其中所述远程资源(201,202,203)包括远离所述计算系统(100)的远程计算资源和远程数据资源;将从所述EDA过程的所述数据准备阶段构造的构造器数据(210)广播到所获取的远程数据资源;以及通过所获取的远程计算资源和远程数据资源来管理所述EDA过程的所述实行阶段的执行。
Description
背景技术
电子电路(例如集成微电路)几乎在现代社会的每一个方面都被使用,从汽车到微波到个人计算机。微电路的设计可能涉及许多步骤,被称为“设计流程”。设计流程的特定步骤通常取决于所设计的微电路的类型、其复杂性、设计团队以及将要制造该微电路的微电路制造商或代工厂。电子设计自动化(EDA)应用支持在制造之前的电路的设计和验证。EDA应用可以实施各种EDA过程,例如,用于在设计流程的不同阶段分析、测试或验证设计的功能、工具或特征。
附图说明
在下面的详细描述中参照附图描述某些实施例。
图1示出了支持延迟获取远程资源的EDA过程的混合执行(hybrid performance)的计算系统的示例。
图2示出了支持延迟获取远程资源的EDA过程的混合执行的计算环境的示例。
图3示出了用于延迟获取远程资源的EDA过程的混合执行的时序(timingsequence)的示例。
图4示出了逻辑的示例,系统可以实施该逻辑,以支持延迟获取远程资源的EDA过程的混合执行。
图5示出了支持延迟获取远程资源的EDA过程的混合执行的系统的示例。
具体实施方式
以下公开涉及EDA应用和计算机辅助设计(CAD)系统,其可用于促进电路的设计和制造。随着技术的改进,现代电路设计可以包括数十亿个或更多个部件。为了支持电路复杂度的增加程度,EDA应用可以通过EDA过程提供电路分析、测试、设计或验证能力。EDA过程可以指任何EDA操作顺序(或多个操作顺序的集合),其分析、测试、验证或设计电路设计。EDA过程的示例包括高级合成过程、示意图捕捉、晶体管或逻辑模拟、场解算器、功能和物理验证、几何处理、等价性检查、设计规则检查、掩模(mask data preparation)数据准备、光学接近校正、布局与示意图分析等。这些各种各样的EDA过程可以通过EDA应用或其它CAD分析工具来执行。
本申请描述的特征可以支持延迟获取远程资源的EDA过程的混合执行。特别地,本申请描述的各种EDA混合执行特征可以提供以不同资源执行EDA过程的不同阶段的能力,并且因此提供“混合”执行而不是“静态”执行,“静态”执行在执行之前获取用于EDA过程的静态设置资源。在一些示例中,通过经由本地数据资源执行数据准备阶段、延迟远程计算和数据资源的获取以执行EDA过程的实行阶段(execution phase),来提供EDA混合执行特征。在这样做时,本申请描述的EDA混合执行特征与静态资源预留技术相比可以支持更高的计算效率和改进的资源利用。
这里更详细地描述这些和其它EDA混合执行特征和技术优点。
图1示出了计算系统100的示例,其支持延迟获取远程资源的EDA过程的混合执行。计算系统100可以包括单个或多个计算设备,例如应用服务器、计算节点、数据服务器、台式计算机或膝上型计算机、智能电话或其他移动设备、平板设备、嵌入式控制器等。在一些实施例中,计算系统100采用单个计算设备的形式,例如膝上型计算机、工作站、台式计算机、计算节点或服务器。
如本申请更详细描述的那样,计算系统100可以选择性地获取用于EDA过程的不同阶段的资源。通过对不同阶段使用不同资源(例如,在EDA过程的执行次序中用于后期阶段的延迟的远程资源获取),计算系统100可以利用EDA过程的不同阶段的不同的计算和数据需求来改善资源利用。具体地,计算系统100可以将本申请所描述的EDA混合执行特征具体应用于EDA过程的数据准备阶段和实行阶段。EDA过程的数据准备阶段可以涉及电路设计的数据处理以支持进一步分析,并且因此与EDA过程的后续实行阶段相比,可能需要相对更多的数据资源(和相对较少的计算资源)。在延迟用于实行阶段的远程资源获取(以及将用于数据准备阶段的资源使用限制到本地资源)的过程中,计算系统100不需要在数据准备阶段期间预留远程计算资源,在该数据准备阶段这样的远程计算资源可能未被使用或未充分使用。
为了实施本申请所述的各种EDA混合执行特征中的任一个,计算系统100可以包括EDA数据构造器引擎108和EDA执行器引擎110。
计算系统100可以以各种方式实施EDA数据构造器引擎108和EDA执行器引擎110(及其组件),例如实施为通过计算系统100的本地资源实施的编程和硬件。用于引擎108和110的编程可以采用存储在非易失性机器可读存储介质上的处理器可执行指令的形式,并且用于引擎108和110的硬件可以包括用于执行这些指令的处理器。处理器可以采用单处理器或多处理器系统的形式,并且在一些示例中,计算系统100使用相同的计算系统特征或硬件部件(例如,用于EDA数据构造器引擎108和EDA执行器引擎110的公共处理器或公共存储介质)来实施多个引擎部件或系统元件。在一些实施例中,计算系统100至少部分地以不同的计算进程(例如,不同的UNIX进程)来实施EDA数据构造器引擎108和EDA执行器引擎110。
在运行中,EDA数据构造器引擎108可以使用计算系统100的本地资源执行用于电路设计的EDA过程的数据准备阶段。在运行中,EDA执行器引擎110可以确定EDA数据构造器引擎108已经完成EDA过程的数据准备阶段,并且响应于该确定,获取用于EDA过程的实行阶段的远程资源。所获取的远程资源可以包括远程计算资源和远程数据资源(其为远程的)(例如,物理或逻辑上与计算系统100分离)。此外,EDA执行器引擎110可以将从EDA过程的数据准备阶段构造的构造器数据广播到所获取的远程数据资源,并通过所获取的远程计算资源和远程数据资源管理EDA过程的实行阶段的执行。
关于EDA过程的数据准备和实行阶段,下面更详细地描述EDA混合执行特征的示例。然而,本申请所描述的任何EDA混合执行特征可一致地应用于在计算或数据要求方面变化的EDA过程的附加阶段或替代阶段。
图2示出了计算环境200的示例,该计算环境200支持延迟获取远程资源的EDA过程的混合执行。计算环境200包括计算系统100(其实施EDA数据构造器引擎108和EDA执行器引擎110)以及远程资源201、202和203。远程资源201、202和203可以是与计算系统100分离的物理设备,例如被配置用于执行EDA应用的分布式计算环境中的其他计算节点。在图2所示的计算环境200中,例如,远程资源201和202被图示为经由局域网(LAN)互连的与计算系统100分离的计算设备,而远程资源203被图示为经由外部通信网络(例如,互联网)互连到计算系统100。
EDA应用和过程可以在各种类型的计算环境中执行,包括全部或部分地经由云计算执行。因此,计算环境200(包括计算系统100和远程资源201、202和203)可以部分地经由公共云、私有云或混合云来实施。另外或可替代地,EDA应用可以经由软件即服务(“SaaS”)分发模型(无论是全部还是部分)来执行,并且包括计算环境200的计算资源可以是室外的(off-premise)(例如,关于EDA应用用户)、室内的(on-premise)或两者的组合。本申请描述的各种EDA特征中的任何一个可以作为SaaS分发模型的一部分或者通过云计算实施来实施。
在计算环境200中,计算系统100可以用作指导EDA过程的执行的“主”实体(例如,主设备或主机器)。例如,计算系统100可以是工作站,用户可以通过工作站与EDA应用接口以执行EDA设计或分析命令,并且计算系统100可以访问或保留用于EDA应用的额外计算或数据资源。另外或可替代地,计算系统100可以发起(launch)、承载(host)、实施或以其他方式执行用于EDA过程的、控制EDA过程执行的各个方面的父计算进程。在一些实施例中(并且作为本申请的继续说明),计算系统100经由EDA执行器引擎110发起用于EDA过程的父(或主)计算进程。在这方面,EDA执行器引擎110可以通过获取用于EDA过程的执行的资源、将EDA计算分配给所获取的资源、执行EDA过程本身的各部分或以其它方式来管理EDA过程的执行。
为了支持EDA混合执行,EDA执行器引擎110可以分配用于EDA过程的数据准备阶段和实行阶段的执行的不同资源。EDA过程的数据准备阶段可以包括任何数据预处理以支持EDA过程的后续电路分析、测试、验证或设计操作。例如,数据准备阶段可以包括将电路设计数据格式化为特定数据格式或构造特定电路数据结构以支持后续电路分析、测试、验证或设计。在一些示例中,数据准备阶段可以包括以分层格式(例如分层数据集)构造电路表示。
分层数据集可以采用电路设计的任何分层表示的形式。在这方面,分层数据集(其可以是分层数据库的形式)可以在电路表示中包括各种分层以提供用于后续电路分析的计算效率。分层数据集中的分层可以包括设计元件的分层(例如,将单独电路结构组合成较大电路结构)、集成电路中的单独层的堆叠顺序的分层或其它分层形式。
在一些实例中,分层数据集可以包括以基于单元的分层结构表示电路布局的各种设计单元。分层单元可封装单独的设计结构(例如,电极接触),其可被分组以在较高层次的层上形成其它分层单元(例如,NAND门),其可进一步被分组到在其他更高层次的层上的其它分层单元中。这样,分层数据集可以表示电路布局中的各种设计分层。这种分层结构可以支持EDA过程的执行的并行和操作级并发。
EDA执行器引擎110可以将EDA过程的数据准备阶段的执行限制到计算系统100的本地资源。在一些实施例中,EDA执行器引擎110可以启动计算进程以执行EDA过程的数据准备阶段,并且仅将计算系统100的本地资源分配给所发起的计算进程。在一些示例中,EDA数据构造器引擎108可以实施由EDA执行器引擎110发起的计算进程以执行EDA过程的数据准备阶段。在启动(例如,发动)EDA数据构造器引擎108时,EDA执行器引擎110可以仅获取计算引擎110的本地资源并将其分配给EDA数据构造器引擎108,例如,不获取或分配用于数据准备阶段的远程资源201、202或203(或任何其他远程资源)的任何计算或数据资源。
图2所示的示例中,EDA数据构造器引擎108访问并处理电路设计205,作为EDA过程的数据准备阶段的一部分。这样,EDA数据构造器引擎108可以(仅)使用计算系统100的本地计算和数据资源来执行电路设计205的EDA准备阶段。通过将数据准备阶段的执行限制到计算系统100的本地存储器(例如,本地设备RAM),对于数据准备阶段不获取远程资源(例如,远程资源201、202或203的远程RAM)。
虽然这种方法可能导致用于数据准备阶段的数据资源量减少(例如,由于没有获取远程资源201、202和203的远程数据资源用于在数据准备阶段中使用),但是计算系统100延迟获取远程资源可以提高总体资源利用率。为了说明,静态/非混合资源获取方法将需要在执行之前获取用于EDA过程的所有阶段的总资源(本地和远程),包括数据准备阶段和实行阶段。现有的静态资源获取技术可能无法有效地将远程计算资源的获取与远程数据资源分开(因此,必须同时保留数据资源和计算资源)。
然而,数据准备阶段可能具有相对低的计算需求。因此,获取的用于数据准备阶段的远程资源201、202和203的远程计算资源在数据准备阶段期间将大部分未使用或未充分使用。此外,在数据准备阶段期间静态保留的和未使用的远程资源将不可用于在计算环境200中同时执行的其他EDA过程或EDA应用。因此,用于EDA过程的执行的这种静态/非混合资源获取方法可能导致资源低效率,以及尤其影响EDA过程的执行的静态计算和数据资源预留的技术问题。
通过将EDA过程的数据准备阶段的资源使用限制到计算系统100的本地资源,本申请提供的EDA混合执行特征可以解决上述计算资源效率低下的问题。也就是说,EDA执行器引擎110可以延迟远程资源获取直到EDA过程的实行阶段,在此期间,远程资源的增加的计算能力可以更充分地用于电路分析、测试、验证或设计。通过在EDA过程的不同阶段期间灵活地获取资源,本申请描述的EDA混合执行特征可以在EDA过程的执行中提供各种技术益处。随后获得的远程资源可以在几乎最优的效率下使用,而不存在对静态资源预留技术造成麻烦的未充分利用期。
继续图2所示的图示,EDA数据构造器引擎108可以执行用于电路设计205的EDA过程的数据准备阶段,以构造构造器数据210。构造器数据210可以包括例如用于EDA过程的实行阶段的处理的电路数据结构(例如,分层数据集)。当数据准备阶段完成时,EDA执行器引擎110随后可以获取可以恰当地用于EDA过程的(更具计算强度的)实行阶段的远程资源。因此,EDA执行器引擎110可以支持用于EDA过程的混合执行和延迟的远程资源获取。
在图2中,响应于确定EDA数据构造器引擎108已经完成数据准备阶段,EDA执行器引擎110可以从远程资源201、202和203获取远程计算资源和远程数据资源以用于执行EDA过程的实行阶段。为此,计算系统100(例如,经由EDA执行器引擎110)可以实施、利用或以其他方式支持如在2018年1月17日提交的、标题为“动态分布式资源管理”('827申请)的美国专利申请15/873827中所述的动态资源分配,该申请通过引用并入本申请。计算系统100使用和分配的本地或远程资源可以根据在'827'应用中描述的各种动态分配机制来维持和分配。
为了进一步支持实行阶段,EDA执行器引擎110还可以将从EDA过程的数据准备阶段构造的构造器数据210广播到所获取的远程资源。如图2所示,EDA执行器引擎110将构造器数据210发送到远程资源201、202和203。EDA执行器引擎110可以通过所获取的远程资源201、202和203进一步管理EDA过程的实行阶段的执行。例如,EDA执行器引擎110可以分配不同的EDA计算,用于分别由远程资源201、202和203中的每一个执行。作为另一示例,EDA执行器引擎110可以将在数据准备阶段期间构造的分层数据集的不同部分发送到远程资源201、202和203中的每一个,用于每一个远程资源在实行阶段期间分别操作。
在上述的各种方式中,计算系统100、EDA数据构造器引擎108和EDA执行器引擎110可以支持延迟获取资源的EDA过程的混合执行。下面在图3中描述EDA混合执行的一些示例时间顺序(timings)。
图3示出用于延迟获取远程资源的EDA过程的混合执行的时序300的示例。时序300可以提供事件的示例顺序,其中计算环境(例如,计算环境200)的各种实体交互以支持延迟获取远程资源的EDA过程的混合执行。在图3所示的特定示例中,时序300示出了图2中描述的计算环境的实体之间的交互,包括EDA数据构造器引擎108和EDA执行器引擎110(它们一起经由计算系统100实施)以及远程资源201、202和203。
在时刻t1,EDA执行器引擎110可以访问电路设计205。EDA执行器引擎110可以访问电路设计205,作为EDA过程执行的一部分,例如由用户命令或计划的执行发起的EDA过程的一部分。在一些示例中,计算系统100以父计算进程(和适用的硬件资源)的形式启动EDA执行器引擎110以管理EDA过程的执行。如本申请所述,EDA过程可以包括数据准备阶段和实行阶段。
在时间t2,EDA执行器引擎110可以启动单独(例如,子)计算进程以执行EDA过程的数据准备阶段。在特定示例中,EDA执行器引擎110可以以单独计算进程(和适用的硬件资源)的形式启动EDA数据构造器引擎108,具体地将分配给单独计算进程的资源使用限制到计算系统100的本地资源。EDA数据构造器引擎108还可以从EDA执行器引擎110接收电路设计205,并且仅使用计算系统100的本地资源在电路设计205上执行EDA过程的数据准备阶段。
在执行数据准备阶段中,EDA数据构造器引擎108可以使用计算系统100的本地存储器来处理电路设计205。例如,EDA数据构造器引擎108可以将处理或构造的布局数据、分层数据集或其它电路数据结构存储在计算系统100的本地RAM中,从而执行数据准备阶段而不访问、使用或预留远程资源(这将需要预留远程计算资源和远程数据资源)。如上所述,与用于EDA过程的静态/非混合资源获取相比,数据准备阶段的这种本地执行实际上可以增加资源利用,反而用于EDA过程的静态/非混合资源获取将在数据准备阶段期间导致未充分利用的计算资源(例如,空闲处理器时间)。
在时序300中示出的时间t3,EDA数据构造器引擎108完成数据准备阶段。一旦完成,EDA数据构造器引擎108可以向EDA执行器引擎110提供完成指示。这种指示可以采用进程间通信、设置系统标志的形式或以各种其他指示形式。EDA数据构造器引擎108还可以将在数据准备阶段期间构造的构造器数据210(例如,分层数据集)提供给EDA执行器引擎110,在时序300中的时间t4处示出。在图3所示的示例中,EDA执行器引擎110和EDA数据构造器引擎108使用进程间信道310来传送构造器数据210,并且在一些实施例中,构造器数据210的传送本身用作来自EDA数据构造器引擎108的完成指示,其指示数据准备阶段已经完成。
响应于确定数据准备阶段已经完成(或响应于构造器数据210的接收),EDA执行器引擎110可以获取用于EDA过程的实行阶段的执行的远程资源。在图3的时序300中,EDA执行器引擎110在时间t5从远程资源201、202和203获取计算资源和数据资源。然后在时间t6,EDA执行器引擎110将从数据准备阶段构造的构造器数据210广播到远程资源201、202和203,因此EDA执行器引擎110可以管理EDA过程的实行阶段的执行(例如,将设计规则检查或光学接近校正操作分配给远程资源、本地执行功能和物理验证或几何处理、监督电路分析子过程等)。
图3中的示例示出时序300的一个示例和用于支持延迟捕获远程资源的EDA过程的混合执行的示例实施。本申请可以构想其他变化。
图4示出了逻辑400的示例,系统可以实施该逻辑400以支持延迟获取远程资源的EDA过程的混合执行。在一些示例中,计算系统100可以将逻辑400实施为硬件、存储在机器可读介质上的可执行指令或两者的组合。计算系统100可以经由EDA执行器引擎110来实施逻辑400,例如,计算系统100可以通过EDA执行器引擎110来执行或实行逻辑400,作为支持延迟获取远程资源的EDA过程的混合执行的方法。然而,其他实施选项是可能的。
在实施逻辑400时,EDA执行器引擎110可以执行用于电路设计的EDA过程(402)。EDA执行器引擎110对EDA过程的执行可以指代或包括由EDA执行器引擎110本身执行EDA过程的各个阶段,由本地资源或远程资源、或两者的组合管理/控制EDA过程的阶段的执行。
例如,在实施逻辑400时,EDA执行器引擎110可以启动用于EDA过程的数据准备阶段的计算进程,包括将用于计算进程的资源使用限制到计算系统100的本地资源(404)。如上所述,EDA执行器引擎110可以以EDA数据构造器引擎108的形式启动计算进程。EDA执行器引擎110可以例如根据EDA数据构造器引擎108提供的完成指示,进一步确定计算进程已经完成EDA过程的数据准备阶段。
响应于确定数据准备阶段已经完成,EDA执行器引擎110可以获取用于EDA过程的实行阶段的远程资源,包括远离计算系统100的远程计算资源和远程数据资源(408),以及将从EDA过程的数据准备阶段构造的构造器数据广播到所获取的远程数据资源(410)。然后,EDA执行器引擎110可以通过所获取的远程计算资源和远程数据资源来管理所述EDA过程的所述实行阶段的执行(412)。
在一些实施例中,EDA执行器引擎110可以在数据准备阶段完成之后终止所发起的计算进程。例如,EDA执行器引擎110可以在从计算进程已获取构造器数据之后终止(例如,停止(de-initialize)、关闭或关掉)计算进程(例如,EDA数据构造器引擎108)。
在一些实施例中,EDA执行器引擎110或计算系统可以启动用于执行EDA过程的实行阶段的不同计算进程。例如,父计算进程(例如,经由EDA执行器引擎110实施)可以发动另一子计算进程以执行EDA过程的实行阶段,并且该实行阶段子计算进程可以获取远程资源(408)、广播构造器数据(410)以及管理实行阶段的执行(412)。在本申请描述的其它实施例中,EDA执行器引擎110本身可以执行这些步骤以执行EDA过程的实行阶段。在一些示例中,计算系统100可以启动父计算进程(例如,EDA执行器引擎110),并且启动(404)、确定(406)、获取(408)、广播(410)和管理(412)由父计算进程执行。
作为另一个实施例特征,EDA执行器引擎110可以获取计算系统100的本地资源,用于执行EDA过程的数据准备阶段,并且进一步保持计算系统100的本地资源,用于EDA过程的实行阶段。EDA执行器引擎110可以使用维持的本地资源对从数据准备阶段构造的构造器数据执行一些电路分析操作,或者在执行实行阶段中管理远程资源。
这种构造器数据可以包括表示电路设计的分层数据集,并且EDA执行器引擎110可以将所述分层数据集的部分广播到获取的用于EDA过程的所述实行阶段的不同远程数据资源(例如,将分层数据集的不同单元或电路区域分配到用于实行阶段中的电路分析的不同远程资源)。
尽管通过图4示出和描述了延迟获取远程资源的EDA混合执行的示例性特征,但是逻辑400也可以包括任何数量的附加或替代步骤。逻辑400可以另外地或可替代地实施本申请描述的任何其它EDA混合执行特征,例如关于EDA数据构造器引擎108、EDA执行器引擎110或两者的组合所描述的任何其它EDA混合执行特征。
图5示出了计算系统500的示例,其支持延迟获取远程资源的EDA过程的混合执行。计算系统500可包括处理器510,其可采用单处理器或多处理器的形式。一个或多个处理器510可以包括中央处理单元(CPU)、微处理器或适合于执行存储在机器可读介质上的指令的任何硬件设备。计算系统500可以包括机器可读介质520。机器可读介质520可以采用存储可执行指令的任何非易失性电子、磁性、光学或其它物理存储设备的形式,诸如图5所示的EDA混合执行指令522。因此,机器可读介质520例如可以是随机存取存储器(RAM),诸如动态RAM(DRAM)、闪存、自旋转移转矩存储器、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘等。
计算系统500可以通过处理器510执行存储在机器可读介质520上的指令。执行指令可以使计算系统500执行本申请所述的EDA混合执行特征中的任何一个,包括根据EDA数据构造器引擎108、EDA执行器引擎110,或两者的组合的任何特征。
例如,处理器510执行EDA混合执行指令522可以使计算系统500启动用于电路设计的EDA过程的数据准备阶段的执行的计算进程;将所述计算进程的资源使用限制到所述计算系统的本地资源,使得所述EDA过程的数据准备阶段在不使用远离所述计算系统的数据资源的情况下执行;并且确定计算进程已经完成EDA过程的数据准备阶段。EDA混合执行指令522的执行还可以使计算系统500响应于确定计算进程已经完成数据准备阶段,获取用于EDA过程的实行阶段的远程资源,包括远离所述计算系统的远程计算资源和远程数据资源;将从所述EDA过程的所述数据准备阶段构造的构造器数据广播到所获取的远程数据资源;以及通过所获取的远程计算资源和远程数据资源来管理所述EDA过程的所述实行阶段的执行。
以上描述的系统、方法、设备和逻辑,包括EDA数据构造器引擎108和EDA执行器引擎110,可以以多种不同的方式以硬件、逻辑、电路和存储在机器可读介质上的可执行指令的许多不同的组合来实施。例如,EDA数据构造器引擎108、EDA执行器引擎110或两者均可包括控制器、微处理器或专用集成电路(ASIC)中的电路,或可使用离散的逻辑或组件,或结合在单个集成电路上或分布在多个集成电路之间的其它类型的模拟或数字电路的组合来实施。产品,例如计算机程序产品,可以包括存储在所述介质上的存储介质和机器可读指令,当在端点、计算机系统或其它设备中执行时,所述存储介质和机器可读指令导致所述设备根据以上任何描述执行操作,包括根据EDA数据构造器引擎108、EDA执行器引擎110或两者的组合的任何特征执行操作。
这里描述的系统、设备和引擎的处理能力,包括EDA数据构造器引擎108和EDA执行器引擎110,可以分布在多个系统组件之间,例如在多个处理器和存储器之间,任选地包括多个分布式处理系统或云/网络元件。参数、数据库和其他数据结构可以分开存储和管理,可以合并到单个存储器或数据库中,可以以许多不同的方式逻辑和物理地组织,并且可以以许多方式实施,包括数据结构,例如链表、哈希表或隐式存储机制。程序可以是单独程序的一部分(例如子例程)、分开的程序、分布在多个存储器和处理器上的程序、或以许多不同的方式实施,例如在库(例如共享库)中。
尽管上面已经描述了各种示例,但是许多更多的实施例是可能的。
Claims (15)
1.一种方法,包括:
通过计算系统执行(402)用于电路设计(205)的电子设计自动化EDA过程,所述EDA过程包括数据准备阶段和实行阶段,并且所述执行包括:
启动(404)用于所述EDA过程的所述数据准备阶段的计算进程,包括将所述计算进程的资源使用限制到所述计算系统的本地资源,使得所述EDA过程的所述数据准备阶段在没有远离所述计算系统的数据资源的情况下执行;
确定(406)所述计算进程已经完成所述EDA过程的所述数据准备阶段;和
响应于确定所述计算进程已经完成所述数据准备阶段:
获取(408)用于所述EDA过程的所述实行阶段的远程资源(201,202,203),包括远离所述计算系统的远程计算资源和远程数据资源;
将从所述EDA过程的所述数据准备阶段构造的构造器数据(210)广播(410)到所获取的远程数据资源;和
通过所获取的远程计算资源和远程数据资源来管理(412)所述EDA过程的所述实行阶段的执行。
2.根据权利要求1所述的方法,其中执行所述EDA过程还包括响应于确定所述计算进程已经完成:
启动用于执行所述EDA过程的所述实行阶段的不同计算进程,并且其中所述获取、广播和管理由所述不同计算进程执行。
3.根据权利要求1所述的方法,其中:
由所述数据准备阶段构造的所述构造器数据(210)包括表示所述电路设计(205)的分层数据集;和
广播所述构造器数据(210)包括向获取的用于所述EDA过程的所述实行阶段的不同远程数据资源广播所述分层数据集的部分。
4.根据权利要求1所述的方法,其中执行所述EDA过程还包括:
获取用于所述EDA过程的所述数据准备阶段的所述计算系统的所述本地资源;和
维持用于所述EDA过程的所述实行阶段的所述计算系统的所述本地资源。
5.根据权利要求1所述的方法,其中,执行所述EDA过程还包括,在启动用于所述EDA过程的所述数据准备阶段的所述计算进程之前:
启动用于执行所述EDA过程的父计算进程;和
其中所述启动、确定、获取、广播和管理由所述父计算进程执行。
6.根据权利要求5所述的方法,其中执行所述EDA过程还包括通过所述父计算进程:
通过进程间信道(310),从所述计算进程获取从所述EDA过程的所述数据准备阶段构造的所述构造器数据(210)。
7.根据权利要求5所述的方法,还包括通过所述父计算进程:
在从所述计算进程已获取所述构造器数据(210)之后,终止所述计算进程。
8.一种计算系统(100),包括:
本地资源,包括本地计算资源和本地数据资源;
电子设计自动化EDA数据构造器引擎(108),其被配置以:
使用所述计算系统的所述本地资源来执行用于电路设计(205)的EDA过程的数据准备阶段;和
EDA执行器引擎(110),其被配置以:
确定所述EDA数据构造器引擎(108)已经完成所述EDA过程的所述数据准备阶段;以及响应于所述确定:
获取用于所述EDA过程的实行阶段的远程资源(201,202,203),其中所述远程资源(201,202,203)包括远离所述计算系统的远程计算资源和远程数据资源;
将从所述EDA过程的所述数据准备阶段构造的构造器数据(210)广播到所获取的远程数据资源;和
通过所获取的远程计算资源和远程数据资源来管理所述EDA过程的所述实行阶段的执行。
9.根据权利要求8所述的计算系统(100),其中所述EDA执行器引擎还被配置以:
初始化所述EDA数据构造器引擎(108)以执行所述EDA过程的所述数据准备阶段;和
将EDA数据构造器引擎(108)的资源使用限制到所述计算系统的所述本地资源。
10.根据权利要求8所述的计算系统(100),其中:
所述EDA数据构造器引擎(108)还被配置以构造用于所述数据准备阶段的所述构造器数据(210)以包括表示所述电路设计(205)的分层数据集;和
所述EDA执行器引擎(110)被配置以通过将所述分层数据集的部分广播到获取的用于所述EDA过程的所述实行阶段的不同远程数据资源来广播所述构造器数据(210)。
11.根据权利要求8所述的计算系统(100),其中所述EDA执行器引擎(110)还被配置以:
获取用于所述EDA过程的所述数据准备阶段的所述计算系统(100)的所述本地资源;和
保持所述计算系统(100)的所述本地资源用于所述EDA过程的所述实行阶段的执行。
12.根据权利要求8所述的计算系统(100),其中所述EDA执行器引擎(110)还被配置以通过进程间信道(310)获取由所述EDA数据构造器引擎(108)构造的、用于所述数据准备阶段的所述构造器数据(210)。
13.根据权利要求8所述的计算系统(100),其中所述EDA数据构造器引擎(108)和所述EDA执行器引擎(100)被部分地实施为不同的计算进程。
14.根据权利要求8所述的计算系统(100),其中所述EDA数据构造器引擎(108)被配置以在不使用远离所述计算系统(100)的任何资源的情况下执行所述EDA过程的数据准备阶段。
15.一种非易失性机器可读介质(520),包括指令(522),当所述指令由处理器(510)执行时,使得计算系统执行根据权利要求1到7中任意一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/240,185 US10783291B2 (en) | 2019-01-04 | 2019-01-04 | Hybrid performance of electronic design automation (EDA) procedures with delayed acquisition of remote resources |
US16/240,185 | 2019-01-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475998A CN111475998A (zh) | 2020-07-31 |
CN111475998B true CN111475998B (zh) | 2024-05-07 |
Family
ID=67060293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910575236.0A Active CN111475998B (zh) | 2019-01-04 | 2019-06-28 | 延迟获取远程资源的电子设计自动化(eda)过程的混合执行 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10783291B2 (zh) |
EP (1) | EP3678043A1 (zh) |
CN (1) | CN111475998B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11972193B1 (en) * | 2020-10-01 | 2024-04-30 | Synopsys, Inc. | Automatic elastic CPU for physical verification |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1427972A (zh) * | 2000-02-28 | 2003-07-02 | 卡登斯设计系统公司 | 使用远程资源用于简化电子电路和芯片设计的方法和系统 |
CN101288049A (zh) * | 2005-05-04 | 2008-10-15 | Arm有限公司 | 数据处理装置中的数据引擎的使用 |
WO2009035690A2 (en) * | 2007-09-11 | 2009-03-19 | Mentor Graphics Corporation | Memory sharing and data distribution |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6578174B2 (en) * | 2001-06-08 | 2003-06-10 | Cadence Design Systems, Inc. | Method and system for chip design using remotely located resources |
US8127032B2 (en) | 2007-10-18 | 2012-02-28 | International Business Machines Corporation | Performance sampling in distributed systems |
US8073924B2 (en) * | 2010-03-30 | 2011-12-06 | Synopsys, Inc. | Routing and delivery of data for electronic design automation workloads in geographically distributed clouds |
US8032846B1 (en) | 2010-03-30 | 2011-10-04 | Synopsys, Inc. | Efficient provisioning of resources in public infrastructure for electronic design automation (EDA) tasks |
US8260931B2 (en) * | 2010-10-02 | 2012-09-04 | Synopsys, Inc. | Secure provisioning of resources in cloud infrastructure |
US10769328B2 (en) * | 2017-09-30 | 2020-09-08 | Texas Instruments Incorporated | Generating a template-driven schematic from a netlist of electronic circuits |
US20190146847A1 (en) * | 2017-11-10 | 2019-05-16 | Mentor Graphics Corporation | Dynamic distributed resource management |
US10936238B2 (en) * | 2017-11-28 | 2021-03-02 | Pure Storage, Inc. | Hybrid data tiering |
US11294729B2 (en) * | 2018-05-08 | 2022-04-05 | Siemens Industry Software Inc. | Resource provisioning for multiple invocations to an electronic design automation application |
US10895864B2 (en) * | 2018-05-23 | 2021-01-19 | Mentor Graphics Corporation | Fabric-independent multi-patterning |
-
2019
- 2019-01-04 US US16/240,185 patent/US10783291B2/en active Active
- 2019-06-25 EP EP19182126.3A patent/EP3678043A1/en active Pending
- 2019-06-28 CN CN201910575236.0A patent/CN111475998B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1427972A (zh) * | 2000-02-28 | 2003-07-02 | 卡登斯设计系统公司 | 使用远程资源用于简化电子电路和芯片设计的方法和系统 |
CN101288049A (zh) * | 2005-05-04 | 2008-10-15 | Arm有限公司 | 数据处理装置中的数据引擎的使用 |
WO2009035690A2 (en) * | 2007-09-11 | 2009-03-19 | Mentor Graphics Corporation | Memory sharing and data distribution |
Non-Patent Citations (1)
Title |
---|
EDA技术的发展与应用;吴冰, 李森森;电子世界(第09期);21-22 * |
Also Published As
Publication number | Publication date |
---|---|
US10783291B2 (en) | 2020-09-22 |
CN111475998A (zh) | 2020-07-31 |
EP3678043A1 (en) | 2020-07-08 |
US20200218788A1 (en) | 2020-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593149B2 (en) | Unified resource management for containers and virtual machines | |
CN106775946B (zh) | 一种虚拟机快速创建方法 | |
US9292359B2 (en) | System and method for memory management | |
CN103970520A (zh) | MapReduce架构中的资源管理方法、装置和架构系统 | |
CN105786603B (zh) | 一种基于分布式的高并发业务处理系统及方法 | |
CN111124607A (zh) | Fpga虚拟化部署实现高速安全的服务器集群管理方法 | |
US20130268941A1 (en) | Determining an allocation of resources to assign to jobs of a program | |
US9069621B2 (en) | Submitting operations to a shared resource based on busy-to-success ratios | |
US11954419B2 (en) | Dynamic allocation of computing resources for electronic design automation operations | |
CN115495221A (zh) | 一种数据处理系统及方法 | |
CN111177984B (zh) | 电子设计自动化中异构计算单元的资源利用 | |
US11294729B2 (en) | Resource provisioning for multiple invocations to an electronic design automation application | |
CN111475998B (zh) | 延迟获取远程资源的电子设计自动化(eda)过程的混合执行 | |
US20140325516A1 (en) | Device for accelerating the execution of a c system simulation | |
CN112068960A (zh) | 一种cpu资源分配方法、装置、存储介质及设备 | |
CN107220126B (zh) | x86服务器动态硬分区方法、装置、存储介质和计算机设备 | |
TWI455030B (zh) | 決定程式任務之平行度的方法與計算裝置及其機器可讀取媒體 | |
De Munck et al. | Design and performance evaluation of a conservative parallel discrete event core for GES | |
CN114281516A (zh) | 一种基于numa属性的资源分配方法及装置 | |
WO2023274014A1 (zh) | 容器集群的存储资源管理方法、装置及系统 | |
KR101952651B1 (ko) | 분산 컴퓨팅 환경을 위한 고유 식별자 생성 방법 및 그 장치 | |
WO2023232127A1 (zh) | 任务调度方法、装置、系统及相关设备 | |
CN115391275A (zh) | 三维虚拟场景的构建方法、装置、电子设备及存储介质 | |
CN116339976A (zh) | 一种容器配额调整方法及装置 | |
WO2023140855A1 (en) | Computing resource allocations |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210601 Address after: Texas, USA Applicant after: SIEMENS INDUSTRY SOFTWARE Ltd. Address before: oregon Applicant before: MENTOR GRAPHICS Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |