CN103748557A - 仿真设备及其仿真方法 - Google Patents
仿真设备及其仿真方法 Download PDFInfo
- Publication number
- CN103748557A CN103748557A CN201280036428.0A CN201280036428A CN103748557A CN 103748557 A CN103748557 A CN 103748557A CN 201280036428 A CN201280036428 A CN 201280036428A CN 103748557 A CN103748557 A CN 103748557A
- Authority
- CN
- China
- Prior art keywords
- equipment
- calculating
- shaded block
- emulation
- traffic
- 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.)
- Granted
Links
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/25—Design optimisation, verification or simulation using particle-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
- Monitoring And Testing Of Transmission In General (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及仿真方法和设备。根据本发明,使用多个块的仿真方法包括:划分步骤,将仿真划分为用于在块上执行独特操作的计算操作和用于在不同块之间的数据交换的通信操作;分组步骤,在相互依赖的计算操作和通信操作之间执行分组;以及仿真执行步骤,根据是否解决了在计算操作和通信操作之间的相互依赖的程度,使用块来执行包括在每个组中的操作。
Description
技术领域
本发明涉及用于快速和准确地预测量和预测系统性能的仿真方法和设备。更加具体地,本发明提供了一种并行仿真方法,用于提取相互依赖的计算和通信到多个组中以及并行地处理所述组,一种分布式仿真方法,用于在多个节点中引入的虚拟阴影节点(shadow nodes)以及根据由某个节点请求的任务的地址区域的类型来预处理任务,以及它们的装置。
背景技术
用于分析系统结构和性能的系统仿真是制造该系统所不可避免的,如智能电话、TV和电器。仿真使得能够在无差错地实现所要求的性能的同时最优化系统。仿真方法被执行以预测量和预测系统性能,并且对于分析和评估系统是非常重要的。
然而,近些年随着系统复杂度增加以便满足新特征的要求,所述新特征诸如多核、图形处理单元(GPU)、软件(S/W)平台、以及应用处理器(AP),仿真速度已经达到其极限。
为了克服这个问题,最近提出的方法通过降低仿真精度来提高仿真速度。虽然这种方法提高了仿真速度,但是仿真分析结果不可靠。
因此,存在对能够精确地评估系统性能而不损害仿真速度的仿真方法的需求。
发明内容
技术问题
已经构想了本发明来解决上述问题,并意图提供能够快速和准确地预测量和预测系统性能的仿真方法和设备。
详细地说,本发明首先意图提供能够提取相互依赖的计算和通信到多个组中和并行地处理所述组的并行仿真方法和设备。
而且,本发明其次意图提供能够在多个节点中引入虚拟阴影节点和根据由某个节点请求的任务的地址区域的类型来进行预处理的分布式仿真方法和设备。
解决方案
根据本发明的一个方面,使用多个块执行仿真的方法包括:将仿真分解为用于执行块的独特功能的计算操作和用于在不同块之间交换数据的通信操作;将相互依赖的计算操作和通信操作分组到组中;以及根据是否解决了计算操作和通信操作之间的依赖关系,使用块来运行包括在每个组中的操作。
根据本发明的另一个方面,使用多个块执行仿真的设备包括:结构存储单元,其存储构成仿真的至少一个组;运行单元,其包括执行仿真的多个块;以及控制单元,其控制将仿真分解为用于执行块的独特功能的计算操作和用于在不同块之间交换数据的通信操作、将相互依赖的计算操作和通信操作分组到组中、以及根据是否解决了计算操作和通信操作之间的依赖关系使用块来运行包括在每个组中的操作。
根据本发明的另一个方面,用于在包括彼此连接并具有多个块的至少两个节点的分布式系统中执行仿真的方法包括:在每个节点配置阴影块;在阴影块接收从一个节点传送到另一个节点的操作请求;以及在阴影块预处理所请求的操作。
根据本发明的再一个方面,用于在分布式系统中执行仿真的设备
包括至少两个节点,所述节点包括多个块,其中,每个节点接收从一个节点传送到另一个节点的对操作的请求,以及包括用于预处理操作的阴影块。
有益效果
本发明的仿真方法有益于准确地评估系统性能而不损害仿真速度。本发明的仿真方法可以应用到片上系统(SoC)、终端、以及其它嵌入式设备以用于制造最优化的产品。而且,本发明的仿真方法能够通过迅速和准确的仿真来分析各种情形,从而帮助改善产品性能。
附图说明
图1是示出传统技术和本发明的实施例的系统仿真参数(精度、仿真速度、以及并行性)之间的关系的示图。
图2是示出用于并行地进行仿真的并行处理方法、示范性并行系统及其问题的示图。
图3是示出通过集群(clustering)若干个节点来实施分布式系统的例子的示图。
图4是示出根据本发明实施例的用于执行仿真的系统的示图。
图5是示出根据本发明的第一实施例的、按照独立性对操作进行分组以用于执行并行仿真的程序的流程图。
图6是利用图形通过执行仿真时的计算操作和通信操作的图画来示出按照独立性对操作进行分组的程序的示图。
图7是示出根据本发明的第一实施例的并行处理包括在仿真组中的计算操作和通信操作的程序的流程图。
图8是利用图形来示出处理包括在多个仿真组中的计算操作和通信操作的程序的示图。
图9是示出根据本发明的第一实施例的仿真设备的配置的框图。
图10是示出以根据本发明的第一实施例的仿真方法来串行地运行计算操作和通信操作的程序的示图。
图11是示出根据本发明的第二实施例的在分布式系统中使用的仿真最优化方法的示图。
图12是示出根据本发明的第二实施例的仿真操作程序的流程图。
图13是示出使用阴影块在节点之间运行通信操作的概念的示图。
图14是示出根据本发明实施例的仿真性能增强结果的图形。
具体实施方式
在本发明中,执行仿真的设备被称为“主机(host)”,并且主机可以包括用于执行某些计算或预定操作的多个块(block)。术语“块”可以用术语“主设备(master)”或“从设备(slave)”来代替。根据本发明的实施例,计算机被用作用于执行仿真的主机。
参考附图详细地描述本发明的示范性实施例。贯穿附图,相同的参考标号被用来指代相同或相似的部分。这里合并的熟知功能和结构的详细描述将被省略,以避免模糊本发明的主题。
如上所述,随着系统复杂度的增加,仿真速度已经达到其极限。为了克服这个问题,考虑引入通过降低仿真精度来增加仿真速度的方法。这将参考图1来描述。
图1是示出传统技术和本发明的实施例的系统仿真参数(精度、仿真速度、以及并行性(parallelism))之间的关系的示图。
如图1中所示,传统技术使用增加抽象层次(abstraction level)的方法。也就是说,传统技术使用以仿真精度为代价来增加仿真速度的方法。然而,这种方法使得很难信赖仿真分析结果的精度。
本发明的实施例提出通过并行处理迅速地进行仿真而不会损害仿真精度的方法。
通过并行计算(处理)对系统进行仿真的方法可以使用多核处理器或分布式计算机。
这些将参考图2和图3来描述。
图2是示出用于并行地进行仿真的并行处理方法、示范性并行系统及其问题的示图。
在第一处理块(例如,主设备)和第二处理块(例如,从设备)并行进行仿真的情况下,在主设备和从设备之间存在与如图2中所示的有线信号(wire signal)相关联的依赖关系。如果不解决这个依赖关系,则主设备或从设备可能必须等待直到某个任务被完全处理为止。例如,计算6不能开始,直到通信b完成为止,因此,在主设备完成通信b之前,从设备必须处于空闲状态而不执行任何操作。
这意味着核心停止工作,并且如果这种情形频繁出现,则仿真速度会显著地降低。假设系统以1GHz时钟操作,则等待出现1000000000次,这显著地影响了仿真速度的降低,直到获得最终的仿真结果为止。
同时,分配给仿真设备(例如,计算机)的一个节点的核心的数目受到限制。为了克服这个限制,近来的超级计算机使用集群(cluster)若干节点的方法。这在图3中举例说明。
图3是示出通过集群若干个节点来实施分布式系统的例子的示图。
在集群多个节点的情况下,与在同一节点中的核心之间的通信相比较,不同节点之间的通信速度显著地减低。这会对系统仿真性能造成坏的影响。
例如,如果位于第一节点的块A从位于第二节点的块D读取数据,仿真速度会由于连接第一节点和第二节点的物理链路的特性而显著地降低。
本发明提出了用于解决当在并行系统和分布式系统中执行仿真时出现的问题的方法。
嵌入式系统的每个块(核心、存储器、总线等)可以被分类为计算块和通信块之一。在这种情况下,计算表示具体块的独特功能,而通信表示两个不同块之间的数据交换。在存储器的示范性情况下,从外部接收地址是通信,而运行内部逻辑以传送相应的地址的数据是计算。
以下,描述本发明的第一实施例和第二实施例。在这种情况下,第一实施例针对使用多核心的并行系统中的仿真最优化方法。第二实施例针对分布式系统中的仿真最优化方法。
本发明的实施例可以如图4中描绘的仿真系统中所示来实施。
如图4中所示,执行仿真的主机是分布式系统,包括第一节点和第二节点的至少两个节点连接到该分布式系统。链路可以包括有线链路和/或无线链路。在这种情况下,每个节点具有包括至少两个核心,即多核心的并行计算环境。位于每个节点的块可以映射到构成主机的各个物理功能块。
核心和节点具有映射到每个核心的仿真平台。平台的块彼此通信,从而进行仿真。
在本发明的实施例中,同一节点上的仿真被称为并行仿真,而在不同节点之间的仿真被称为分布式仿真。
基于以上假设描述本发明的第一和第二实施例。
<第一实施例>
以下,描述在使用至少两个核心的并行系统中使用的并行仿真最优化方法。
如图2中所示,主设备和从设备在并行仿真中交换数据。然而,在一侧所需的任何数据没有在另一侧被完全处理的情况下,等待是不可避免的。
为了解决这个问题,本发明提出一种并行仿真方法,用于提取相互依赖的计算操作和通信操作并将其分类(sorting)到多个组中,并且独立和并行地处理每个组的计算操作和通信操作。
图5是示出根据本发明的第一实施例的、按照独立性对操作进行分组以用于执行并行仿真的程序的流程图。
图6是利用图形通过执行仿真时的计算操作和通信操作的图画来示出按照独立性对操作进行分组的程序的示图。
在图6a到图6c中,上面的线表示由主设备执行的计算操作,而下面的线表示由从设备执行的计算操作。连接上面的线和下面的线的线表示发生在主设备和从设备之间的通信操作。
首先,仿真设备被分配某个仿真操作。在步骤S510,仿真设备从仿真操作提取将在主设备和从设备之间进行交换的通信操作。在图6a中,所述操作由参考字母a、b和c表示。仿真设备根据依赖关系以时间次序对所提取的通信操作进行排序(sort)。在这种情况下,位于通信操作之前和之后的计算操作具有依赖的关系。
在步骤S520,仿真设备提取与通信操作相关联的、主设备和从设备的计算操作。这些在图6b中由参考标号1、2和3表示。通信操作可以被认为是执行主设备块或从设备块的独特功能。例如,如果主设备是核心,则处理所分配的任务是计算操作,并且如果从设备是存储器,则运行内部逻辑以便将相应的地址中的数据转发到外部是计算操作。
如果在计算操作之间发生新的通信操作,则仿真设备将计算操作分割成更小的单元。
在步骤S530,仿真设备将相互依赖的计算操作和通信操作分类到组中。同一组中的通信操作和计算操作具有依赖关系并彼此连接。然而,不同组的操作是独立的。也就是说,没有依赖关系。
图6c示出了仿真操作被分类为第一组610和第二组620的示范性情况。更详细地,图6c的计算操作2依赖于计算操作1/5和通信操作a。也就是说,计算操作2不能被执行,直到计算操作1/5和通信操作a完成为止。然而,包括在第一组610中的计算操作1和包括在第二组620中的计算设备3彼此独立。也就是说,计算操作3可以在任何时间执行,甚至在完成计算操作1之前,并且计算操作1可以为了计算操作3暂停,然后恢复。
存在很多由于硬件块的性质而能够被分类到组中的并行处理元件。本发明的第一实施例的特征在于操作组被并行处理。
图7是示出根据本发明的第一实施例的并行处理包括在仿真组中的计算操作和通信操作的程序的流程图。
图8是利用图形来示出处理包括在多个仿真组中的计算操作和通信操作的程序的示图。
在解释图7的并行处理程序之前,以下描述基本原理。通过执行仿真的主设备(第一块)和从设备(第二块),包括在每个组中的计算操作被运行。在这种情况下,主设备和从设备基于通信操作是否临近以及通信依赖关系是否已经被解决来选择当前运行的计算操作。在运行所选择的计算操作期间,如果通信操作运行时间到了,则主设备和从设备运行相应的通信操作。如果存在任何由于没有运行先前的通信操作而被中断的计算操作,则主设备和从设备首先运行相应的计算操作。
主设备和从设备重复上述程序,直到分配的仿真完成为止。
在上述原理的基础上,参考图7和图8描述仿真设备的仿真运行程序。
假设仿真通过图6的分组程序被分类到第一组610和第二组620中。
然后,仿真设备基于两个条件选择将要运行的计算操作。为了这个目的,在步骤S710,仿真设备在包括在第一组610和第二组620中的计算操作当中选择最接近下一个通信操作的计算操作。参考图8a,在主设备选择计算操作1和3,并在从设备选择计算操作5和8。
接下来,在步骤S720,仿真设备确定在所选择的计算操作当中是否存在任何依赖于还未运行的通信操作的操作。参考图8a,计算操作1和3独立于所有的通信操作。因此,最接近下一个通信操作的计算操作3被选择为将要在主设备运行的计算操作。
同时,只有当通信操作d被运行,计算操作8才能在从设备被运行。也就是说,计算操作8依赖于还未运行的通信操作d。然而,计算操作5独立于该通信操作。因此,计算操作5被选择为当前将要运行的操作。
一旦已经确定了将要在主设备和从设备运行的计算操作,在步骤S730,仿真设备运行所确定的计算操作。在步骤S740,仿真设备确定是否存在任何由于缺少通信操作而被中断的计算操作。如果存在,则在步骤S780,仿真设备运行相应的计算操作。
否则,如果不存在被中断的计算操作,则在步骤S750,仿真设备确定是否在运行计算操作的中间运行通信操作。这意味着如图6c中所示,通信操作d运行时间到了。在这种情况下,如图8b中所描绘的,在步骤S760,仿真设备运行相应的通信操作。在步骤S770,仿真设备确定是否所有的计算操作和通信操作都已经被运行,如果不是,则程序返回步骤S710。
仿真设备根据上述原理在步骤S710和S720选择目标以运行计算操作。更详细地,在主设备,计算操作1最接近通信操作。因此,主设备选择计算操作1作为将要运行的计算操作。同时,在从设备,计算操作5最接近通信操作。因此,从设备选择计算操作5作为将要运行的计算操作。如图8c中所示,所述计算操作在主设备和从设备中被选择。
如图8d中所描绘的,计算操作运行过程前进,直到计算操作1在主设备完成为止。
仿真设备通过步骤S710和S720选择计算操作的目标。参考图8e,由于还没有运行通信操作a,因此计算操作3而不是计算操作2被选择为当前将要在主设备运行的计算操作。而且,由于计算操作5与计算操作8相比更接近通信操作,因此计算操作5被选择作为将要在从设备运行的计算操作。
如图8f中所描绘的,仿真设备运行,直到通信操作a被运行为止。
相同的原理被应用到图8g和图8h,上述程序被重复地执行,直到当前分配的仿真完成为止。
在本发明的第一实施例的仿真方法中,主设备和从设备以最小化的等待时间执行仿真,导致迅速和准确的仿真性能。
图9是示出根据本发明的第一实施例的仿真设备的配置的框图。如图9中所示,根据第一实施例的仿真设备可以包括结构存储单元910、运行单元920、以及控制单元930。
结构存储单元910存储构成仿真的至少一个组。
运行单元920可以包括运行仿真的多个块。所述块可以包括核心、存储器、总线、等等。
控制单元930将仿真分裂成负责块的独特功能的计算操作和负责在不同块之间交换数据的通信操作。控制单元930也将相互依赖的计算操作分类到组中。根据是否解决了计算操作和通信操作之间的依赖关系,控制单元930可以控制所述块运行包括在各个组中的操作。
特别是在执行仿真时,控制单元930选择某个块并且从各个组中选择将要由所选择的块首先运行的计算操作。在运行所选择的计算操作的状态中,控制单元930选择独立于通信操作并最接近下一个通信操作的计算操作,并且控制运行单元920运行所选择的计算操作。
如果在计算操作的运行期间通信操作运行时间到了,则控制单元930控制以运行该通信操作。
图10是示出以根据本发明的第一实施例的仿真方法来串行地运行计算操作和通信操作的程序的示图。
与在图2中描绘的传统并行仿真方法相比较,图10示出了根据本发明的实施例的仿真方法与具有较长等待时间的传统并行仿真方法相比较,能够通过减少等待时间而迅速地处理仿真。
<第二实施例>
以下,描述用于分布式系统中的仿真最优化方法。
第二实施例提出了可应用于分布式系统的仿真最优化方法,该分布式系统具有至少两个功能块(核心、存储器、总线、等等),其中多个节点被集群。
在传统分布式系统中,在节点之间存在延迟(latency)。本发明的第二实施例提出了用于通过引入被称为阴影块的虚拟块而迅速地处理通信操作的方法。
图11是示出根据本发明的第二实施例的在分布式系统中使用的仿真最优化方法的示图。
如图11中所示,根据第二实施例的分布式系统包括第一节点1110和第二节点1120,第一节点1110具有阴影块1111,第二节点1120具有第二阴影块1121。
例如,如果第一节点1110的块A请求第二节点1120的块D通信,则位于第一节点1110的第一阴影块1111进行操作。为了这个目的,第一阴影块1111对第一节点1110的块A已经请求的操作执行预处理,然后在之后调整该操作。此后详细描述这个过程。
被引入本发明的实施例的阴影块包括至少一个地址区域。每个地址区域通过根据运行功能的特性来识别,并且可以被分类到存储器地址区域、有源设备地址区域(有源地址区域)、以及无源设备地址区域(无源地址区域)之一中。存储器地址区域具有常规的存储器特性,即读取/写入特性,有源地址区域具有不具备预定设备行为的特性,而无源地址区域具有具备预定设备行为的特性。
如果第一节点的块A请求第二节点的块D处理与存储器输入/输出相关的具体操作,则块A请求第一阴影块的存储器地址区域用于相应的命令。相反,如果第一节点的块A请求第二节点的块E处理操作,则块A请求第一阴影块的无源地址区域用于相应的命令。
被配置到第一节点和第二节点的阴影块执行以下操作。如果向阴影块请求的操作对应于存储器地址区域(即请求对存储器的操作),则阴影块提供读取操作服务(如果提供了相应的地址),并且首先写入阴影块然后将写入的内容发送给对方节点。如果向阴影块请求的操作对应于有源地址区域(即请求对有源设备的操作),该请求被绕过(by-pass)。如果向阴影块请求的操作对应于无源地址区域(即请求对无源设备的操作),则阴影块根据行为模型提供服务(serve)并将这个发送给对方节点的相应的块。也就是说,阴影块通过对无源设备的行为进行建模来执行相应的功能。
下面详细描述行为建模。例如,如果块A命令块D输出具体字符串(string),则块D输出相应的字符串并向块A发送通知相应的字符串的输出的确认(ack)。
如果阴影块对块D的行为建模,这意味着块D具有将要传送给块A的ack信号,并且如果从块A接收到字符串输出命令,则阴影块直接向块A发送ack。
以这种方式,阴影块对某个块在执行具体行为之后必须反馈的信号进行建模并保持该信号。阴影块优先地向已经传送某个命令的块发送反馈信号。在这个实施例中,这样的操作被定义为行为建模。
对上述进行图示化(schematizing),可以如图11的下部所示来描绘。参考图11的下部,如果块A请求块D通信,则第一阴影块1111执行通信d,这样的通信重复三次(AdAdAd)。然后,第一阴影块1111执行与位于第二节点1120的块D的实际通信,并接收通信结果D(DDD)。第一阴影块1111将由自己预处理的通信d与之后接收到的D进行比较,并且使用比较结果在第一阴影块1111调整所保存的值。
以下,参考流程图和详细的示例来描述本发明的第二实施例。
图12是示出根据本发明的第二实施例的仿真操作程序的流程图。
而图13是示出使用阴影块在节点之间运行通信操作的概念的示图。
首先,在步骤S1205,仿真设备生成每个节点的阴影块。如上所述,阴影块通过至少一个地址区域来定义。
在步骤S1210,仿真设备确定仿真是否已经被完全完成。如果仿真还没有完全完成,则在步骤S1215,仿真设备从包括在其所属的节点中的某个块接收具体命令运行请求。如上所述,具体命令被存储在与作为命令的目标的设备的类型相对应的地址区域。例如,如果作为命令的目标的设备的类型是存储器,则相应的命令被存储在存储器地址区域中。
在步骤S1220,阴影块确定相应的地址区域是否是有源地址区域。如果相应的地址区域是有源地址区域,则在步骤S1250,阴影块绕过相应的命令(事务)。
上述过程对应于图13a。也就是说,当第一节点的块A向第二节点的块D请求具体命令(参考标号3)时,如果块D是有源设备,该命令被绕过(参考标号5)。
回到图12,如果在步骤S1220相应的地址区域不是有源地址区域,则在步骤S1230阴影块确定相应的地址区域是否是存储器地址区域。如果相应的地址区域是存储器地址区域,则在步骤S1235,阴影块使用内部准备的高速缓存的数据来执行预处理。在这种情况下,如果相应的命令是“读取”,则阴影块发送所保持的数据,如果相应的命令是“写入”,则阴影块首先存储数据然后发送确认信号(ack)。如果相应的命令是初始生成的“读取”,则这意味着阴影块没有数据,因此等待,直到从具有数据的块接收到数据为止。如果接收到数据,则阴影块存储在之后的预处理中使用的数据。
在执行预处理之后,在步骤S1240,阴影块将相应的命令(事务)发送给作为请求的原始目标的块。然后,在步骤S1260,阴影块从作为请求的原始目标的块接收实际处理(后处理)结果,并且检查在预处理的服务定时和后处理的服务定时之间的差别。这里,定时差别表示在预处理服务所花费的时间(例如,时钟数目)与后处理服务所花费的时间之间的差别。这意味着在处理各个服务所花费的时间方面可能存在差别。
如果存在任何差别,则阴影块存储关于后处理的服务的定时信息以用于下一个预处理。在这种情况下,假设预处理的和后处理的服务内容彼此匹配,而只是在定时中出现差别。
否则,如果相应的地址区域不是存储器地址区域,则在步骤S1245,阴影块确定相应的地址区域是否是无源地址区域。如果相应的地址区域是无源地址区域,则在步骤S1250,阴影块预处理对相应的设备的预定行为(在这种情况下,返回到已经请求命令的块的行为)。接下来,在步骤S1240,阴影块执行定时更新过程。
上述过程被描绘在13b和图13c中。也就是说,如果接收到具体命令请求(4、6、8),则阴影块执行预处理(7、9)并且发送命令到目标节点的相应的块(10)。接下来,阴影块从目标节点接收定时信息(11),并且如果定时信息与先前存储的定时信息不匹配,则更新相应的定时信息。
图14是示出根据本发明实施例的仿真性能增强结果的图形。
如图14中所示,本发明的并行仿真方法显示了与传统的单一仿真相比的91%的性能增强。
虽然已经使用具体示例描述了本发明的优选实施例,但是说明书和附图被当作说明性的,以便帮助理解本发明,而不是限定性的。本领域技术人员清楚,能够对此进行各种修改和改变,而不脱离本发明的更宽泛的精神和范围。
Claims (20)
1.一种使用多个块执行仿真的方法,该方法包括:
将所述仿真分解为用于执行块的独特功能的计算操作和用于在不同块之间交换数据的通信操作;
将相互依赖的计算操作和通信操作分组到组中;以及
根据是否解决了所述计算操作和通信操作之间的依赖关系,使用块来运行包括在每个组中的操作。
2.如权利要求1所述的方法,其中,运行操作包括:
选择某个块;
从各个组中选择将要由所选择的块首先运行的计算操作;
在所选择的计算操作当中选择独立于所述通信操作并且最接近下一个通信操作的计算操作;以及
运行所选择的计算操作。
3.如权利要求2所述的方法,其中,运行操作包括:当在运行所述计算操作时所述通信操作的运行时间到了时,运行所述通信操作。
4.如权利要求1所述的方法,其中,包括同一组中的通信操作和计算操作依赖于彼此。
5.一种使用多个块来执行仿真的设备,该设备包括:
结构存储单元,其存储构成所述仿真的至少一个组;
运行单元,包括执行所述仿真的所述多个块;以及
控制单元,其控制将所述仿真分解为用于执行块的独特功能的计算操作和用于在不同块之间交换数据的通信操作、将相互依赖的计算操作和通信操作分组到组中、以及根据是否解决了所述计算操作和通信操作之间的依赖关系使用块来运行包括在每个组中的操作。
6.如权利要求5所述的设备,其中,所述控制单元控制选择某个块、从各个组中选择将要由所选择的块首先运行的计算操作、在所选择的计算操作当中选择独立于所述通信操作并且最接近下一个通信操作的计算操作、以及运行所选择的计算操作。
7.如权利要求6所述的设备,其中,当在运行所述计算操作时所述通信操作的运行时间到了时,所述控制单元控制运行所述通信操作。
8.如权利要求5所述的设备,其中,包括同一组中的通信操作和计算操作依赖于彼此。
9.一种在分布式系统中执行仿真的方法,该分布式系统包括彼此连接并具有多个块的至少两个节点,该方法包括:
在每个节点配置阴影块;
在所述阴影块接收从一个节点传送到另一个节点的操作请求;以及
在所述阴影块预处理所请求的操作。
10.如权利要求9所述的方法,还包括:
在预处理之后,将操作请求从所述阴影块转发到另一个节点;以及
通过接收由另一个节点传送的处理结果,在所述阴影块进行更新。
11.如权利要求10所述的方法,其中,所述更新包括更新执行预处理的服务所花费的时间和执行后处理的服务所花费的时间之间的差别。
12.如权利要求10所述的方法,其中,所述预处理包括当所述阴影块接收到对存储器的操作请求时执行读取或写入功能。
13.如权利要求10所述的方法,其中,所述预处理包括当所述阴影块接收到对有源设备的操作请求时绕过所述操作请求。
14.如权利要求10所述的方法,其中,所述预处理包括当所述阴影块接收到对无源设备的操作请求时根据所述无源设备的行为模型来执行服务。
15.一种用于在分布式系统中执行仿真的设备,该设备包括至少两个节点,所述节点包括多个块,其中,每个节点接收从一个节点传送到另一个节点的对操作的请求,并且包括用于预处理所述操作的阴影块。
16.如权利要求15所述的设备,其中,所述阴影块在预处理之后将操作请求从所述阴影块转发到另一个节点,并且通过接收由另一个节点传送的处理结果来执行更新。
17.如权利要求16所述的设备,其中,所述阴影块更新执行预处理的服务所花费的时间和执行后处理的服务所花费的时间之间的差别。
18.如权利要求17所述的设备,其中,当所述阴影块接收到对存储器的操作请求时,所述阴影块执行读取或写入功能。
19.如权利要求17所述的方法,其中,当所述阴影块接收到对有源设备的操作请求时,所述阴影块绕过所述操作请求。
20.如权利要求17所述的设备,其中,当接收到对无源设备的操作请求时,所述阴影块根据所述无源设备的行为模型来执行服务。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2011-0073219 | 2011-07-22 | ||
KR1020110073219A KR101818760B1 (ko) | 2011-07-22 | 2011-07-22 | 시뮬레이션 장치 및 그의 시뮬레이션 방법 |
PCT/KR2012/005799 WO2013015569A2 (ko) | 2011-07-22 | 2012-07-20 | 시뮬레이션 장치 및 그의 시뮬레이션 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103748557A true CN103748557A (zh) | 2014-04-23 |
CN103748557B CN103748557B (zh) | 2017-05-31 |
Family
ID=47601624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280036428.0A Expired - Fee Related CN103748557B (zh) | 2011-07-22 | 2012-07-20 | 仿真设备及其仿真方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10162913B2 (zh) |
EP (1) | EP2735967A4 (zh) |
JP (1) | JP6072028B2 (zh) |
KR (1) | KR101818760B1 (zh) |
CN (1) | CN103748557B (zh) |
WO (1) | WO2013015569A2 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6232470B2 (ja) * | 2015-06-16 | 2017-11-15 | 株式会社日立製作所 | 分散コンピューティング環境でシステムのプロセスの検証を行うための方法 |
US10366359B2 (en) * | 2015-11-18 | 2019-07-30 | Microsoft Technology Licensing, Llc | Automatic extraction and completion of tasks associated with communications |
KR101988482B1 (ko) * | 2017-08-21 | 2019-06-12 | 국방과학연구소 | 전술 데이터 링크 시스템, 전술 데이터 링크 시스템의 데이터 처리 장치 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5987243A (en) * | 1996-08-30 | 1999-11-16 | Kabushiki Kaisha Toshiba | Hardware and software co-simulator and its method |
JP2003067439A (ja) * | 2001-08-30 | 2003-03-07 | Matsushita Electric Ind Co Ltd | システムシミュレーション方法 |
US20050283785A1 (en) * | 1993-09-21 | 2005-12-22 | Microsoft Corporation | Preemptive multi-tasking with cooperative groups of tasks |
US20070101318A1 (en) * | 2005-10-31 | 2007-05-03 | Fujitsu Limited | Multi-core-model simulation method, multi-core model simulator, and computer product |
US20080192653A1 (en) * | 2007-02-14 | 2008-08-14 | Fujitsu Limited | Storage medium containing parallel process control program, parallel processs control system, and parallel process control method |
CN101860752A (zh) * | 2010-05-07 | 2010-10-13 | 浙江大学 | 一种针对嵌入式多核系统的视频编码流水化并行方法 |
WO2011009638A1 (en) * | 2009-07-24 | 2011-01-27 | Proximusda Gmbh | Scheduling and communication in computing systems |
WO2011017026A1 (en) * | 2009-07-27 | 2011-02-10 | Advanced Micro Devices, Inc. | Mapping processing logic having data parallel threads across processors |
CN102004630A (zh) * | 2009-08-31 | 2011-04-06 | 国际商业机器公司 | 多核/线程工作组计算调度器 |
CN102089752A (zh) * | 2008-07-10 | 2011-06-08 | 洛克泰克科技有限公司 | 依赖性问题的有效率的并行计算 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321363B1 (en) * | 1999-01-11 | 2001-11-20 | Novas Software Inc. | Incremental simulation using previous simulation results and knowledge of changes to simulation model to achieve fast simulation time |
JP2003233633A (ja) * | 2002-02-07 | 2003-08-22 | Sanyo Electric Co Ltd | 集積回路の設計方法 |
US8453102B1 (en) * | 2010-03-12 | 2013-05-28 | Worldwide Pro Ltd. | Hierarchical variation analysis of integrated circuits |
US9317637B2 (en) * | 2011-01-14 | 2016-04-19 | International Business Machines Corporation | Distributed hardware device simulation |
-
2011
- 2011-07-22 KR KR1020110073219A patent/KR101818760B1/ko active IP Right Grant
-
2012
- 2012-07-20 CN CN201280036428.0A patent/CN103748557B/zh not_active Expired - Fee Related
- 2012-07-20 WO PCT/KR2012/005799 patent/WO2013015569A2/ko active Application Filing
- 2012-07-20 EP EP12818145.0A patent/EP2735967A4/en not_active Ceased
- 2012-07-20 JP JP2014521563A patent/JP6072028B2/ja not_active Expired - Fee Related
- 2012-07-20 US US14/233,610 patent/US10162913B2/en not_active Expired - Fee Related
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050283785A1 (en) * | 1993-09-21 | 2005-12-22 | Microsoft Corporation | Preemptive multi-tasking with cooperative groups of tasks |
US5987243A (en) * | 1996-08-30 | 1999-11-16 | Kabushiki Kaisha Toshiba | Hardware and software co-simulator and its method |
JP2003067439A (ja) * | 2001-08-30 | 2003-03-07 | Matsushita Electric Ind Co Ltd | システムシミュレーション方法 |
US20070101318A1 (en) * | 2005-10-31 | 2007-05-03 | Fujitsu Limited | Multi-core-model simulation method, multi-core model simulator, and computer product |
US20080192653A1 (en) * | 2007-02-14 | 2008-08-14 | Fujitsu Limited | Storage medium containing parallel process control program, parallel processs control system, and parallel process control method |
CN102089752A (zh) * | 2008-07-10 | 2011-06-08 | 洛克泰克科技有限公司 | 依赖性问题的有效率的并行计算 |
WO2011009638A1 (en) * | 2009-07-24 | 2011-01-27 | Proximusda Gmbh | Scheduling and communication in computing systems |
WO2011017026A1 (en) * | 2009-07-27 | 2011-02-10 | Advanced Micro Devices, Inc. | Mapping processing logic having data parallel threads across processors |
CN102004630A (zh) * | 2009-08-31 | 2011-04-06 | 国际商业机器公司 | 多核/线程工作组计算调度器 |
CN101860752A (zh) * | 2010-05-07 | 2010-10-13 | 浙江大学 | 一种针对嵌入式多核系统的视频编码流水化并行方法 |
Non-Patent Citations (3)
Title |
---|
Allocation and scheduling of precedence-related periodic tasks;K. Ramamritham等;《IEEE Transactions on Parallel and Distributed Systems》;19950430;第6卷(第4期);第412-420页 * |
Assigning Real-Time Tasks and Resources to Distributed Systems;Too-Seng Tia等;《International Journal of Mini and Microcomputers》;19950101;第18-25页 * |
Interactive Physical Simulation on Multicore Architectures;Everton Hermann等;《Eurographics Symposium on Parallel Graphics and Visualization (2009)》;20090331;第1-9页 * |
Also Published As
Publication number | Publication date |
---|---|
JP2014522029A (ja) | 2014-08-28 |
CN103748557B (zh) | 2017-05-31 |
WO2013015569A2 (ko) | 2013-01-31 |
KR20130011805A (ko) | 2013-01-30 |
JP6072028B2 (ja) | 2017-02-01 |
KR101818760B1 (ko) | 2018-01-15 |
EP2735967A4 (en) | 2015-07-22 |
WO2013015569A3 (ko) | 2013-03-21 |
US20140156251A1 (en) | 2014-06-05 |
EP2735967A2 (en) | 2014-05-28 |
US10162913B2 (en) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Adaptive asynchronous federated learning in resource-constrained edge computing | |
CN105956021B (zh) | 一种适用于分布式机器学习的自动化任务并行的方法及其系统 | |
WO2021073085A1 (zh) | 面向微服务的纳秒级电力资源分配方法和系统 | |
CN110427284A (zh) | 数据处理方法、分布式系统、计算机系统和介质 | |
CN104965757A (zh) | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 | |
KR20210036226A (ko) | 복수의 엣지와 클라우드를 포함하는 분산 컴퓨팅 시스템 및 이의 적응적 지능 활용을 위한 분석 모델 제공 방법 | |
CN114880130B (zh) | 并行训练中突破内存限制的方法、系统、设备及存储介质 | |
CN103078941A (zh) | 一种分布式计算系统的任务调度方法及系统 | |
CN113821332B (zh) | 自动机器学习系统效能调优方法、装置、设备及介质 | |
CN105575389A (zh) | 模型训练方法、系统和装置 | |
CN104572501B (zh) | 一种基于访存踪迹局部性分析的多核环境下共享缓存优化方法 | |
WO2024016542A1 (zh) | 信息融合方法、数据通信方法、装置及电子设备和非易失性可读存储介质 | |
CN103077068B (zh) | 一种基于共享内存的高性能仿真系统实现方法 | |
EP3396560A1 (en) | Database operating method and device | |
CN103870324A (zh) | 异构多处理器环境中人机接口应用的有效执行 | |
CN104317957A (zh) | 一种报表处理的开放平台、系统及报表处理方法 | |
CN106250348A (zh) | 一种基于gpu访存特性的异构多核架构缓存管理方法 | |
CN115150471A (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN103748557A (zh) | 仿真设备及其仿真方法 | |
CN104598293B (zh) | 一种在线快照的方法和设备 | |
JP2012093899A (ja) | 計算機システム、シミュレーション方法、及びプログラム | |
CN114610440A (zh) | 模拟机系统的运行环境构建方法及系统 | |
CN107528871A (zh) | 存储系统中的数据分析 | |
CN102214094B (zh) | 经由异步编程模型执行操作 | |
CN105068957A (zh) | 一种apb总线系统中访问从模块的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170531 Termination date: 20200720 |