使用多个协同仿真器的并行仿真制造技术

技术编号:7898064 阅读:187 留言:0更新日期:2012-10-23 04:18
一种方法,包括由控制多个协同仿真器的一个仿真器接受用于仿真的仿真任务。所述多个协同仿真器的每一个被分配执行所述仿真任务的一个或多个相应子任务。所述仿真任务通过调用每个协同仿真器执行所述相应的分配的子任务来执行。

【技术实现步骤摘要】

本专利技术总体涉及仿真系统,具体地涉及使用协同仿真器进行仿真的方法和系统。
技术介绍
计算机化仿真技术被用于分析和解决不同领域中的复杂计算问题,例如验证复杂电子硬件设计的性能。现有技术中已知许多仿真技术。一些技术使用并行处理来减少仿真时间。例如,PCT国际公开WO 2009/118731(该公开内容以参引方式纳入本文)描述了一种用于设计仿真的方法,该方法包括将一个设计的验证任务划分(partition)成具有执行依赖性的第一多个原子处理单元(PE)。该方法还包括计算用于在一个多处理器设备上执行PE的顺序,所述多处理器设备包括并行运行的第二多个处理器,并根据内置的调度策略 调度由处理器执行的PE。不考虑调度策略,所述顺序通过不同的处理器与执行依赖性不冲突地并发执行PE。根据计算的顺序和调度策略,PE在处理器上执行,以得出仿真结果。该设计的性能根据仿真结果而被验证。作为另一个实施例,PCT国际公开WO 2010/004474(该公开内容以参引方式纳入本文)描述了一种包括接受计算任务的定义的计算方法,该计算任务包括多个具有执行依赖性的原子处理单元(PE)。所述计算任务被编译,以在多处理器设备上并发地执行,所述多处理器设备包括多个处理器,该多个处理器通过在一个包括一个第二数量的执行序列的调用数据结构中与执行依赖性不冲突地布置所述PE而能够同时地执行第一数量的PE,所述第二数量大于I且不超过第一数量。所述多处理器设备被调用以运行软件代码,该软件代码响应于所述调用数据结构而并行地执行所述执行序列,以得出计算任务的结果。
技术实现思路
下文描述的一个实施方案提供一种方法,包括由控制多个协同仿真器的一个仿真器接受一个用于仿真的仿真任务。所述多个协同仿真器中的每一个被分配执行所述仿真任务中的一个或多个相应的子任务。通过调用每个协同仿真器执行所述分配的相应的子任务来执行所述仿真任务。在一些实施方案中,所述仿真任务在任何给定的时间由一个仿真状态所定义,所述仿真状态由所述仿真器保持;以及,每个子任务在任何给定的时间由一个相应的协同仿真状态所定义,所述协同仿真状态由被分配执行所述子任务的所述协同仿真器独立于所述仿真器保持。在一些实施方案中,执行所述仿真任务包括由一个给定的协同仿真器执行一个给定的子任务,该给定的子任务包含一个赋值语句;如果所述赋值语句是一个阻塞赋值,则在执行任何非阻塞赋值之前将所述赋值语句的结果从所述给定的协同仿真器返回至所述仿真器;以及如果所述赋值语句是一个非阻塞赋值,则在执行所有阻塞赋值之后返回所述结果。在一个实施方案中,返回所述结果包括调度所述仿真器在一延迟时间呼叫所述给定的协同仿真器,以接受所述赋值语句的结果。在一些实施方案中,所述方法包括在一个给定的协同仿真器执行的一个给定的子任务执行完成之前,将所述仿真任务的控制从所述给定的协同仿真器返回至所述仿真器,以使得至少一个其他协同仿真器与所述给定的协同仿真器并发运行。返回所述控制可包括调度所述仿真器在一延迟时间呼叫所述给定的协同仿真器,以接受所述给定的子任务的结果。在一个公开的实施方案中,执行所述仿真任务包括由所述仿真器执行所述仿真任务的至少一个子任务。执行所述至少一个子任务可包括使用由所述仿真器执行的所述至少一个子任务同步两个或更多个子任务,所述两个或更多个子任务由两个或更多个相应的协同仿真器执行。在一些实施方案中,所述方法包括将所述仿真任务表示为一个分层树结构,并通 过递归遍历所述分层树结构将所述仿真任务划分为所述子任务。所述方法可包括使用一个或多个编译器编译所述子任务。在一个实施方案中,编译所述子任务包括使用两个或更多个相应的分立编译器编译两个或更多个所述子任务。在一个公开的实施方案中,接受所述仿真任务包括接受硬件设计的定义,以及执行所述仿真任务包括验证所述硬件设计。所述方法可包括在一个给定的协同仿真器中使用一个图形处理单元(GPU)执行给定的子任务的至少一部分。根据本专利技术的一个实施方案,还提供一种方法,该方法包括由一个仿真器调用一个协同仿真器,以执行一个仿真任务的一个子任务,其中所述子任务包括至少一个赋值语句。如果所述赋值语句是一个阻塞赋值,则在执行任何非阻塞赋值之前将所述赋值语句的结果从所述协同仿真器返回至所述仿真器。如果所述赋值语句是一个非阻塞赋值,则在执行所有阻塞赋值之后返回所述结果。所述仿真任务是由所述仿真器使用所述子任务的结果来执行的。根据本专利技术的一个实施方案,还提供一种系统,该系统包括一个仿真器和多个协同仿真器。所述仿真器被配置为接受一个仿真任务,以分配所述多个协同仿真器中的每一个执行所述仿真任务的一个或多个相应的子任务,并通过调用每个协同仿真器执行所述分配的相应的子任务来执行所述仿真任务。根据本专利技术的一个实施方案,还提供一种系统,该系统包括一个仿真器和一个协同仿真器。所述协同仿真器被配置为接受和执行一个仿真任务的一个子任务,其中所述子任务包括至少一个赋值语句,如果所述赋值语句是一个阻塞赋值,则在执行任何非阻塞赋值之前返回所述赋值语句的结果,且如果所述赋值语句是一个非阻塞赋值,则在执行所有阻塞赋值之后返回所述结果。所述仿真器被配置为调用所述协同仿真器以执行所述子任务,并使用从所述协同仿真器返回的所述子任务的结果来执行所述仿真任务。根据本专利技术的一个实施方案,还提供一种计算机软件产品。该产品包括有形非暂时计算机可读媒介,其中程序指令存储在该媒介中,当由计算机读取该指令时,该指令使得所述计算机接受一个仿真任务,以分配多个协同仿真器中的每一个执行所述仿真任务中的一个或多个相应的于任务,并通过调用每一个协同仿真器执行所述分配的相应子任务来执行所述仿真任务。根据本专利技术的一个实施方案,还提供一种计算机软件产品。该产品包括有形非暂时计算机可读媒介,其中程序指令存储在该媒介中,当由计算机读取该指令时,该指令使得所述计算机接受和执行一个仿真任务的子任务,其中所述子任务包括至少一个赋值语句,如果所述赋值语句是一个阻塞赋值,则在执行任何非阻塞赋值之前返回所述赋值语句的结果,且如果所述赋值语句是一个非阻塞赋值,则在执行所有阻塞赋值之后返回所述结果。从下文实施方案的详细描述,结合附图,可更全面地理解本专利技术。附图说明图I是示意性示出根据本专利技术的一个实施方案的仿真系统的方块图; 图2是示意性示出根据本专利技术的一个实施方案的仿真问题的划分的图示;图3和4是示意性示出根据本专利技术的一个实施方案的仿真器和多个协同仿真器之间的交互的图示。具体实施方式总述下文描述的本专利技术的实施方案提供了用于执行仿真任务的改进的方法和系统。所公开的技术的应用可包括例如超大规模集成(VLSI)、模拟或控制硬件设计的验证。其他应用可在研究工程领域。在一些实施方案中,仿真系统包括控制多个协同仿真器的仿真器。为了执行某一仿真任务,每个协同仿真器被分配执行所述仿真任务的一个或多个子任务。所述仿真器通过调用每个协同仿真器执行其被分配的子任务,以及同步和协调多个协同仿真器的运行来执行仿真任务。不同于一些已知的其中仿真任务是由多个并行处理器来执行的并行仿真方案,在所公开的技术中,每个子任务由一个相应状态定义,该状态由独立于仿真器的正执行的协同仿真器所保持。一些公开的实施方案提供了仿真器和协同仿真器之间的接口本文档来自技高网...

【技术保护点】

【技术特征摘要】
...

【专利技术属性】
技术研发人员:S·密茨拉希U·泰T·本戴维I·盖勒I·凯舍
申请(专利权)人:洛克泰克科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1