CN101593219A - 动态切换仿真模式的仿真方法及仿真设备 - Google Patents
动态切换仿真模式的仿真方法及仿真设备 Download PDFInfo
- Publication number
- CN101593219A CN101593219A CNA2008100987253A CN200810098725A CN101593219A CN 101593219 A CN101593219 A CN 101593219A CN A2008100987253 A CNA2008100987253 A CN A2008100987253A CN 200810098725 A CN200810098725 A CN 200810098725A CN 101593219 A CN101593219 A CN 101593219A
- Authority
- CN
- China
- Prior art keywords
- cycle
- simulation
- accurate
- predetermined length
- emulation
- 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.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了动态切换仿真模式的仿真方法和设备。该方法包括:A)以周期精确仿真模式在一个第一预定长度的周期精确仿真时间段内进行仿真,并计算该时间段内的性能度量的值;B)确定整个仿真是否完成,当已完成时,结束仿真方法;否则,继续以周期精确仿真模式在一个第二预定长度的周期精确仿真时间段内进行仿真,并计算该时间段内的性能度量的值;C)计算第二预定长度的周期精确仿真时间段内的性能度量的值与前一个周期精确仿真时间段内的性能度量的值之差的绝对值;D)当绝对值小于一预定的阈值时,以功能仿真模式在一个第三预定长度的功能仿真时间段内进行仿真;E)重复B-D直至结束。本发明保证了较高的仿真性能评估准确度,同时减少了仿真时间。
Description
技术领域
本发明涉及在仿真过程中动态切换仿真模式的仿真方法和仿真设备。
背景技术
长期以来,计算机架构师依靠软件仿真来研究设计出的硬件的功能和性能。通常,软件仿真设备具有周期精确仿真和功能仿真两种仿真模式。功能仿真是较为简单的仿真模式,其通常用于软件开发。在功能仿真模式中,仿真设备仿真所设计的硬件的功能来调试和运行开发的应用程序和操作系统并给出运行的结果。但是,功能仿真无法反映所设计的硬件的性能如何。与此相反,周期精确仿真是较为复杂的仿真模式,其通常用于硬件体系结构的研究。在周期精确仿真模式中,仿真设备不仅能够仿真所设计的硬件的功能,而且能够准确地评估所设计的硬件的性能。然而,尽管周期精确仿真模式与功能仿真模式相比具有准确评估硬件性能的优势,但其有着固有的缺点,即仿真速度比功能模式下的仿真速度慢得多。以Mambo为例,仿真设备在周期精确仿真模式下的速度比在功能仿真模式下的速度要慢2个数量级,比所仿真的硬件更是慢了4个数量级以上。因此,如何能够通过恰当地应用所述功能仿真模式和周期精确仿真模式来实现准确的硬件性能评估和较快的仿真速度是人们所关心的。
针对这一问题,一种解决方法是采用采样微体系结构仿真(SamplingMicroarchitecture Simulation,SMARTS)框架作为使得能够进行全长基准的快速和准确的性能测量的途径(参见R.Wunderlich,T.Wenisch,B.Falsafi和J.Hoe.SMARTS:Accelerating Microarchitecture Simulation via Rigorous StatisticalSampling,International Symposium on Computer Architecture,第84-95页,SanDiego,California,2003年6月)。SMARTS通过仅以周期精确仿真模式选择性地仿真适当的基准子集、以功能仿真模式来仿真其余的指令集来加速仿真。SMARTS规定了统计的探测过程,用于配置系统采样仿真运行以获取期望的准确度。另一种方法是通过避免周期精确仿真重复代码段来减少仿真量(参见W.Liu和M.Huang,EXPERT:expedited simulation exploiting programbehavior repetition,Proceedings of the 18th annual International Conference onSupercomputing,2004年6月)。因为重复代码段代表平稳的程序行为,因此通过辨别程序行为的重复并且采用功能仿真模式对重复代码段进行仿真,可以明显地加快仿真速度而不会影响性能评估的准确度。
然而上述方法以及其他在此处未提到的方法在实现时都需要首先对程序进行分析,并基于分析结果来确定进行周期精确仿真的指令子集和进行功能仿真的其余指令集。但是,对程序的分析处理往往都基于非常复杂的算法和数学统计。例如,它们需要分析源代码或二进制代码来搜索所有的基本块,子程序或重复循环,因而非常难于实现。而且在很多时候,无法获取源代码或二进制代码,从而导致无法进行分析。另一方面,在程序运行之前的这种静态分析无法观察到程序的动态行为,从而可能花费不必要的时间进行分析和仿真。例如,程序中的许多子程序和循环实际并不执行很多次(可能在整个程序的运行过程中仅仅执行一次或两次),从而它们对准确度的影响非常小,所以实际上并不需要花费时间对它们进行分析和仿真。
发明内容
本发明的目的在于提供能够准确地评估硬件性能并具有较快的仿真速度的仿真方法和仿真设备。
本发明利用局部性原理和推测采样,在仿真过程中动态地切换功能仿真模式和周期精确仿真模式,从而实现了较快的仿真速度,并且具有与完全以周期精确仿真模式进行仿真相比可接受的准确度。
根据本发明的一个方面,提供了一种动态切换仿真模式的仿真方法,所述方法包括步骤:A)以周期精确仿真模式在一个第一预定长度的周期精确仿真时间段内进行仿真,并计算该周期精确仿真时间段内的性能度量的值;B)确定整个仿真是否完成,当整个仿真已完成时,结束所述仿真方法;当整个仿真尚未完成时,继续以周期精确仿真模式在一个第二预定长度的周期精确仿真时间段内进行仿真,并计算该周期精确仿真时间段内的性能度量的值;C)计算所述第二预定长度的周期精确仿真时间段内的性能度量的值与前一个周期精确仿真时间段内的性能度量的值之差的绝对值;D)当所述绝对值小于一预定的阈值时,以功能仿真模式在一个第三预定长度的功能仿真时间段内进行仿真;E)重复执行步骤B-D直至结束。
根据本发明的又一个方面,提供了一种动态切换仿真模式的仿真设备。所述设备包括:周期精确仿真器,以周期精确仿真模式进行仿真;功能仿真器,以功能仿真模式进行仿真;性能度量值计算部件,响应于周期精确仿真器在一个第一预定长度的周期精确仿真时间段内进行仿真而计算该周期精确仿真时间段内性能度量的值;比较部件,用于将两个相邻的周期精确仿真时间段内的性能度量的值之差的绝对值与预定的阈值进行比较;控制器,用于根据由比较部件得出的比较结果动态切换仿真模式,并控制周期精确仿真器和功能仿真器进行仿真。
本发明在仿真过程中动态地切换仿真模式,因此不需要在仿真进行之前基于非常复杂的算法和数学统计对程序进行静态的分析,所以本发明非常容易实现。另外,由于本发明基于局部性原理和推测采样选择需要以周期精确模式进行仿真的代码段,因此能够保证具有较高的性能评估准确度,并极大地减少了仿真时间。
附图说明
结合附图,从下面对实施例的描述中,本发明的这些和/或其他方面、特征和优点将变得清楚和更加容易理解,其中:
图1示出了描述程序的重复特性的曲线图;
图2示出了根据本发明实施例的、动态切换仿真模式的仿真方法的流程图;
图3示出了应用根据本发明的仿真方法的示例;
图4示出了根据本发明实施例的、动态切换仿真模式的仿真设备的框图。
具体实施方式
现在将参考本发明的示例性实施例进行详细的描述,在附图中图解说明了所述实施例的示例,其中相同的参考数字始终指示相同的元件。应当理解,本发明并不限于所公开的示例实施例。还应当理解,并非所述方法和设备的每个特征对于实施任一权利要求所要求保护的本发明都是必要的。此外,在整个公开中,当显示或描述处理或方法时,方法的步骤可以以任何顺序或者同时执行,除非从上下文中能清楚一个步骤依赖于先执行的另一步骤。此外,步骤之间可以有显著的时间间隔。
首先对本发明所依据的局部性原理和推测采样进行简单的说明。
计算机程序通常具有重复特性,某些相同的操作往往会重复执行多次。循环迭代或子程序调用的重复执行是所述重复中的常见示例。例如,以SPECCPU 2000测试程序集为例,其静态指令的数目只不过是几百万条,然而由于循环迭代或子程序调用的重复执行,其典型的运行由数十亿或数百亿的动态指令组成。容易想到,在重复执行相同的操作时,硬件的性能度量应该是基本相同的。举例来说,如图1所示,如果以IPC(每周期执行的指令数)作为评估硬件的性能度量,则在循环迭代的每一次重复或子程序调用的每一次重复中,IPC值应该是基本相同的。例如上图中第一个子程序S1的IPC和第二个S1的IPC是基本相同的,下图中迭代1与迭代2的IPC也是基本相同的。由此,在整个程序的运行期间,IPC值表现出明显的局部性。
局部性原理(locality principle)是程序行为的一种性质。它包括:时间局部性和空间局部性。前者指的是,如果某数据刚才被访问,则它很可能在近期内还要被访问;后者指的是,如果某数据刚才被访问,则和它位置上相邻的数据很可能被访问。所述局部性原理已经在现代计算机架构中广为使用,例如高速缓存、翻译后援缓冲器(TLB,translation lookaside buffer)和分支预测。由于程序行为具有局部性,因此可以通过最近过去的行为来推测程序未来的行为。
基于以上特性,本发明人认识到,在程序运行期间,对于硬件性能度量(例如IPC)基本不变的时间段一直以周期精确仿真模式进行仿真显然会不必要地降低仿真速度。如果能够获得硬件性能度量基本保持不变的时间段的样本(例如,相当于该时间段的1/10长度的极短时间段),并且仅对该样本应用周期精确仿真模式进行仿真,而对于除了样本之外的其余部分以功能仿真模式进行仿真,则能够获得较快的仿真速度,同时能够对硬件性能做出比较准确的评估。由此,本发明人提出基于历史和推测确定以周期精确仿真模式进行仿真的样本,并以功能仿真模式对除了样本之外的其余部分进行仿真,从而减少仿真时间同时获得准确的性能评价。
下面将参考图2对根据本发明实施例的、动态切换仿真模式的仿真方法进行描述。首先,在步骤S201,由用户预先设定周期精确仿真模式下的周期精确仿真时间段的长度(下文中称为第一预定长度),并以周期精确仿真模式在一个第一预定长度的周期精确仿真时间段内进行仿真。在步骤S202中,计算该周期精确仿真时间段内的性能度量的值,并进行存储。随后,在步骤S203中判断整个仿真是否完成。当确定整个仿真仍未完成时,在步骤S204中,继续以周期精确仿真模式在一个第二预定长度的周期精确仿真时间段内进行仿真,并且在步骤S205中计算该周期精确仿真时间段内的性能度量的值,并进行存储。所述第二预定长度由用户预先设定,其既可以设为与第一预定长度相同,也可以不同,并且当用户没有预先设定第二预定长度时,默认其与第一预定长度相同。接着,在步骤S206中将计算出的两个性能度量的值进行比较,并判断这两个性能度量的值之差的绝对值是否小于一个预定的阈值。
当所述绝对值小于预定的阈值时,表明在过去的两个相邻的周期精确仿真时间段内程序是平稳的。这里“平稳”表示硬件的性能度量的值基本保持不变。因此基于局部性原理预测在随后的一个时间段内程序仍将保持平稳,而硬件的性能度量的值也将基本保持不变。基于这一预测,在步骤S207,仿真模式切换至功能仿真模式,并以该功能仿真模式在一个第三预定长度的功能仿真时间段内进行仿真。该第三预定长度也由用户预先设定,并且其长度既可以设为与用于周期精确仿真的第一预定长度或第二预定长度相同,也可以设为不同。在此之后,按照本发明的仿真方法返回至步骤S203以判断整个仿真是否完成,并在确定整个仿真尚未结束时再次执行后续的各个步骤。由此,重复执行前述的步骤S203-S207,直到确定整个仿真结束。另一方面,当所述绝对值大于等于预定的阈值时,表明在过去的两个相邻的周期精确仿真时间段内程序是不平稳的,从而硬件的性能度量的值变化较大。因此为了获得准确的硬件性能评估,需要继续以周期精确仿真模式进行仿真。因而,按照本发明的仿真方法继续保持周期精确仿真模式,并直接返回至步骤S203。所述阈值是由用户预先设定的。根据以上描述可以看出,用户可以取决于其所期望的硬件性能评估的准确度来设定阈值。例如,当用户对准确度的要求较低而对仿真速度要求较高时,可以将阈值设定得较大,从而增加在整个仿真过程中以功能仿真模式进行仿真的机会。相反,当用户对准确度的要求较高而对仿真速度要求较低时,可以将阈值设定得较小,从而减少在整个仿真过程中以功能仿真模式进行仿真的机会。另外上述多个预定周期精确仿真时间段和功能仿真时间段的是由用户人为初始设定,优选地也可以由计算机根据所仿真程序的执行时间或者其他度量动态设定。
优选地,在完成了整个仿真之后,可以计算所存储的各个性能度量的值的加权平均值,如步骤S210所示,以获得对于所仿真的硬件整体的性能评价。在计算加权平均值时,可以将与各个性能度量的值对应的仿真时间长度作为权重,也可以由用户来设定权重。
优选地,为了获得更好的效果,功能仿真时间段的长度(即第三预定长度)在设定之后可以根据运行的程序的动态行为动态改变。具体地,如果在步骤S206中确定两个性能度量的值之差的绝对值小于预定的阈值,则在步骤S207中以功能仿真模式进行仿真之后,可以通过将第三预定长度增大一倍或多倍来延长功能仿真时间段,从而下一次以功能仿真模式进行仿真的时间变长,如步骤S208所示。相反,如果在步骤S206中确定两个性能度量的值之差的绝对值大于等于预定的阈值,则可以通过将第三预定长度减小一倍或多倍来缩短功能仿真时间段,从而下一次以功能模式进行仿真的时间变短,如步骤S209所示。同样地,周期精确仿真时间段在预先设定之后也可以根据运行的程序的动态行为动态改变。例如,当在步骤S206中确定两个性能度量的值之差的绝对值小于预定的阈值,可以在步骤208中通过将第二预定长度减小一倍或多倍来缩短周期精确仿真时间段,从而减少周期精确仿真的采样时间;而如果绝对值大于等于预定的阈值,则可以在步骤209中通过将第二预定长度增大一倍或多倍来延长周期精确仿真时间段,从而增加周期精确仿真的采样时间。
上述实施例中所述的性能度量可以是任何具有良好的局部性的度量,例如CPI(每指令周期,即IPC的倒数)、高速缓存未命中率、TLB未命中率以及分支预测精确性等。
另外,根据本发明实施例的仿真方法可以应用于当前现有的各种周期精确模拟器和功能模拟器。例如,除了IBM的模拟器Mambo,现有的周期精确模拟器还有SimpleScalar中的Outorder模式(www.simplescalar.com)等,功能模拟器还有Simics(www.virtutech.com)等。
图3示出了应用根据本发明的仿真方法的示例。如图3所示,图中最上面的线表示运行程序的仿真时间。第二条线代表对于平稳程序应用本发明的仿真方法的情形。首先,使用周期精确仿真模式在两个周期精确仿真时间段t0和t1中进行仿真(在本示例中,为了简单起见,假设t0和t1时间段的长度是相等的,并且设定在后续的仿真过程中周期精确仿真时间段的长度始终保持不变),并分别计算t0和t1时间段内的性能度量的值CPI[0]和CPI[1]。然后,计算CPI[0]和CPI[1]之差的绝对值。由于这一差的绝对值小于预定的阈值,因此切换至功能仿真模式,并以该模式在一个功能仿真时间段t’0中进行仿真。之后,再次切换至周期精确仿真模式,并以该模式在周期精确仿真时间段t2中进行仿真,并计算CPI[2]。由于CPI[2]和CPI[1]之差的绝对值仍然小于预定的阈值,这意味着程序是平稳的。由此可以推测,程序将在随后的较长时间内仍保持平稳,所以可以以功能模式在较长的时间内进行仿真。在本示例中,将初始功能仿真时间段的长度增大一倍,并且仿真模式再次切换到功能仿真模式,并以功能仿真模式在长度更新后的一个功能仿真时间段t’1中进行仿真。之后,再次切换至周期精确仿真模式,并以该模式在周期精确仿真时间段t3中进行仿真,并计算CPI[3]。在本示例中,CPI[3]和CPI[2]之差的绝对值仍然小于预定的阈值,所以将功能仿真时间段的长度再增大一倍,并且仿真模式再次切换到功能仿真模式,并以功能仿真模式在长度更新后的一个功能仿真时间段t’2中进行仿真。依此类推,直到仿真结束为止。可以看出,通过不断增加以功能仿真模式进行仿真的时间长度,采用周期精确仿真模式进行仿真的时间变得越来越少,因此可以获得较快的仿真速度。可见,通过动态地确定并交替使用功能仿真模式和周期精确仿真模式可以减少仿真时间,并且保证具有较高的硬件性能评估准确度。
图3中的第三条线代表对于不平稳程序应用本发明的仿真方法的情形。类似地,首先使用周期精确仿真模式在两个周期精确仿真时间段t0和t1中进行仿真,并计算CPI[0]和CPI[1]。然后,计算CPI[0]和CPI[1]之差的绝对值。由于这一差的绝对值大于等于预定的阈值,这意味着程序在这一段时间是不平稳的,所以为了能够获得准确度较高的硬件性能评估,需要继续以周期精确仿真模式进行仿真。因此,继续以周期精确仿真模式在时间段t2中进行仿真。在本示例中,在第一至第三个周期精确仿真时间段(t0-t2)中,CPI变化较大。当在时间段t3中进行周期精确仿真之后,发现CPI[3]和CPI[2]之差的绝对值小于预定的阈值。因此,仿真模式切换到功能仿真模式,并以该模式在功能仿真时间段t’0中进行仿真。随后,仿真模式再次切换到周期精确仿真模式,并以该模式在时间段t4中进行仿真,并计算CPI[4]。由于CPI[4]和CPI[3]的差的绝对值大于等于预定的阈值,因此仍使用周期精确仿真模式在时间段t5中进行仿真,并计算CPI[5]。由于CPI[5]和CPI[4]之差的绝对值小于预定的阈值,因此,仿真模式切换到功能仿真模式,并以该模式在功能仿真时间段t’1中进行仿真。依此类推,直到仿真结束。需要说明的是,在本示例中,在时间段t3之后,以初始设定的功能仿真时间段长度进行功能仿真。然而,由于在时间段t0-t2中CPI变化较大,即意味着程序是不平稳的,因此可以在每一次判断出相邻两个周期精确时间段内的CPI值变化大于等于阈值时,将功能仿真时间段的长度缩小一倍。从而在时间段t3之后,在长度为初始功能仿真时间段长度的1/8的时间内进行功能仿真。由此,通过缩短对不平稳程序进行功能仿真的时间,来确保对仿真的硬件的性能评估的准确性。
从上述的示例中可以看出:程序行为越平稳,需要以周期精确仿真模式进行仿真的时间越少。而即使程序行为是不平稳的,应用本发明的仿真方法也可以基于局部性原理减少仿真时间。
下面将参考图4对根据本发明的、动态切换仿真模式的仿真设备进行描述。如图4所示,仿真设备包括:周期精确仿真器401,用于以周期精确仿真模式进行仿真;功能仿真器402,用于以功能仿真模式进行仿真;性能度量值计算部件403,用于计算在各个周期精确仿真时间段内的性能度量的值,并将计算出的性能度量的值存储在存储器中;比较部件404,用于将相邻两个周期精确仿真时间段内的性能度量的值之差的绝对值与预定的阈值进行比较;控制器405,用于根据由比较部件404得出的比较结果动态切换仿真模式,并控制周期精确仿真器401和功能仿真器402进行仿真。
周期精确仿真器401在控制器405的控制下以预定长度的周期精确仿真时间段为单位进行仿真。功能仿真器402在控制器405的控制下以预定长度的功能仿真时间段为单位进行仿真。所述周期精确仿真时间段和功能仿真时间段的长度可以由用户预先设定,并且这两种时间段的预先设定的长度既可以相同,也可以不同。
响应于在一个周期精确仿真时间段中进行了周期精确仿真,性能度量值计算部件403计算在刚刚过去的周期精确仿真时间段内性能度量的值,并将计算出的性能度量的值存储在存储器中。所述存储器可以是仿真设备的内部存储器,也可以是外接于该仿真设备的外部存储器。性能度量是用于对所仿真的硬件的性能进行评估的参数,其可以是任意具有良好的局部性的度量,例如CPI、高速缓存未命中率、TLB未命中率以及分支预测精确性等。另外,如何计算各个时间段内的性能度量的值是本领域技术人员公知的,在此不再赘述。
控制器405根据从比较部件404获得的比较结果动态地切换仿真模式。具体地,当性能度量的值之差的绝对值小于阈值时,控制器控制功能仿真器402在一个功能仿真时间段内进行功能仿真,并控制周期精确仿真器在所述一个功能仿真时间段之后在一个周期精确仿真时间段内进行周期精确仿真。当性能度量的值之差的绝对值大于等于阈值时,控制器405控制周期精确仿真器401在一个周期精确仿真时间段内进行周期精确仿真。控制器405以上述方式控制功能仿真器402和周期精确仿真器401交替进行仿真,直到整个仿真完成为止。
以上对根据本发明实施例的、动态切换仿真模式的仿真设备进行了描述。该仿真设备通过交替采用功能仿真模式和周期精确仿真模式进行仿真减少了仿真时间,并且保证仿真具有较高的硬件性能评估准确度。
优选地,尽管预先设定了功能仿真时间段的长度,为了获得更好的效果,控制器405可以根据运行的程序的动态行为动态改变所述功能仿真时间段的长度。具体地,如前所述,在性能度量的值之差的绝对值小于阈值、控制器405通知功能仿真器402进行功能仿真之后,将功能仿真时间段的长度增大一倍或多倍,从而下一次以功能仿真模式进行仿真的时间变长。相反,在性能度量的值之差的绝对值大于等于阈值时,控制器405将功能仿真时间段的长度减小一倍或多倍,从而下一次以功能模式进行仿真的时间变短。同样地,周期精确仿真时间段的长度在预先设定之后也可以根据运行的程序的动态行为动态改变。例如,当如前所述性能度量的值之差的绝对值小于阈值时,控制器405将周期精确仿真时间段的长度减小一倍或多倍,从而减少周期精确仿真的采样时间;而如果绝对值大于等于阈值,则将周期精确仿真时间段的长度增大一倍或多倍,从而增加周期精确仿真的采样时间。
优选地,根据本发明实施例的仿真设备还可以包括性能评估部件,用于在完成了整个仿真之后,计算存储器中所存储的各个性能度量的值的加权平均值,以获得对于所仿真的硬件整体的性能评价。在计算加权平均值时,可以将与各个性能度量的值对应的仿真时间长度作为权重,也可以由用户来设定权重。
另外,根据本发明的仿真方法还可以通过计算机程序产品来实施,该计算机程序产品包括用于当在计算机上运行所述计算机程序产品时执行以实施本发明的仿真方法的软件代码部分。
还可以通过在计算机可读记录介质中记录一计算机程序来实施本发明,该计算机程序包括用于当在计算机上运行所述计算机程序时执行以实施根据本发明的仿真方法的软件代码部分。即,根据本发明的仿真方法的过程能够以计算机可读介质中的指令的形式和各种其它形式分发,而不管实际用来执行分发的信号承载介质的特定类型。计算机可读介质的例子包括诸如EPROM、ROM、磁带、纸、软盘、硬盘驱动器、RAM和CD-ROM的介质以及诸如数字和模拟通信链路的传输型介质。
尽管参考本发明的优选实施例具体展示和描述了本发明,但是本领域一般技术人员应该明白,在不脱离所附权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种修改。
Claims (15)
1.一种动态切换仿真模式的仿真方法,所述方法包括步骤:
A)以周期精确仿真模式在一个第一预定长度的周期精确仿真时间段内进行仿真,并计算该周期精确仿真时间段内的性能度量的值;
B)确定整个仿真是否完成,当整个仿真已完成时,结束所述仿真方法;当整个仿真尚未完成时,继续以周期精确仿真模式在一个第二预定长度的周期精确仿真时间段内进行仿真,并计算该周期精确仿真时间段内的性能度量的值;
C)计算所述第二预定长度的周期精确仿真时间段内的性能度量的值与前一个周期精确仿真时间段内的性能度量的值之差的绝对值;
D)当所述绝对值小于一预定的阈值时,以功能仿真模式在一个第三预定长度的功能仿真时间段内进行仿真;
E)重复执行步骤B-D直至结束。
2.如权利要求1所述的仿真方法,其中步骤D)进一步包括:当所述绝对值小于一预定的阈值时,增大所述第三预定长度;否则,减小所述第三预定长度。
3.如权利要求1或2所述的仿真方法,其中步骤D)进一步包括:当所述绝对值小于一预定的阈值时,减小所述第二预定长度;否则,增大所述第二预定长度。
4.如权利要求2所述的仿真方法,其中所述增大所述第三预定长度进一步包括将该第三预定长度增大一倍或多倍。
5.如权利要求2所述的仿真方法,其中所述减小所述第三预定长度进一步包括将该第三预定长度减小一倍或多倍。
6.如权利要求3所述的仿真方法,其中所述减小所述第二预定长度进一步包括将该预定长度减小一倍或多倍。
7.如权利要求3所述的仿真方法,其中所述增大所述第二预定长度进一步包括将该预定长度增大一倍或多倍。
8.如权利要求1-7任一项所述的仿真方法,其中所述性能度量为每指令周期、高速缓存未命中率、翻译后援缓冲器未命中率和分支预测精确性中的任一个。
9.如权利要求1-7任一项所述的仿真方法,还包括步骤F)计算各个性能度量的值的加权平均值。
10.一种动态切换仿真模式的仿真设备,所述设备包括:
周期精确仿真器,以周期精确仿真模式进行仿真;
功能仿真器,以功能仿真模式进行仿真;
性能度量值计算部件,响应于周期精确仿真器在一个第一预定长度的周期精确仿真时间段内进行仿真而计算该周期精确仿真时间段内性能度量的值;
比较部件,用于将两个相邻的周期精确仿真时间段内的性能度量的值之差的绝对值与预定的阈值进行比较;
控制器,用于根据由比较部件得出的比较结果动态切换仿真模式,并控制周期精确仿真器和功能仿真器进行仿真。
11.如权利要求10所述的仿真设备,其中:
当所述绝对值小于所述阈值时,控制器控制功能仿真器在一个第二预定长度的功能仿真时间段内进行功能仿真,并控制周期精确仿真器在所述功能仿真时间段之后在一个所述周期精确仿真时间段内进行周期精确仿真;
当所述绝对值大于等于所述阈值时,控制器控制周期精确仿真器在一个所述周期精确仿真时间段内进行周期精确仿真。
12.如权利要求11所述的仿真设备,其中,所述控制器进一步用于:
当所述绝对值小于所述阈值时,将所述第二预定长度增大一倍或多倍;否则,将所述第二预定长度减小一倍或多倍。
13.如权利要求11或12所述的仿真设备,其中,所述控制器进一步用于:
当所述绝对值小于所述阈值时,将所述第一预定长度减小一倍或多倍;否则,将所述第一预定长度增大一倍或多倍。
14.如权利要求10或11所述的仿真设备,还包括性能评估部件,用于计算所存储的各个性能度量的值的加权平均值。
15.如权利要求10或11所述的仿真设备,其中所述性能度量为每指令周期、高速缓存未命中率、翻译后援缓冲器未命中率和分支预测精确性中的任一个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100987253A CN101593219A (zh) | 2008-05-30 | 2008-05-30 | 动态切换仿真模式的仿真方法及仿真设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100987253A CN101593219A (zh) | 2008-05-30 | 2008-05-30 | 动态切换仿真模式的仿真方法及仿真设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101593219A true CN101593219A (zh) | 2009-12-02 |
Family
ID=41407872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100987253A Pending CN101593219A (zh) | 2008-05-30 | 2008-05-30 | 动态切换仿真模式的仿真方法及仿真设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101593219A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279768A (zh) * | 2010-06-10 | 2011-12-14 | 株式会社东芝 | 仿真装置、仿真程序以及仿真方法 |
CN103385018A (zh) * | 2012-12-03 | 2013-11-06 | 华为技术有限公司 | 网络仿真方法及服务器 |
CN105975313A (zh) * | 2016-05-13 | 2016-09-28 | 浪潮电子信息产业股份有限公司 | 一种Spec CPU安装方法及装置 |
CN107315889A (zh) * | 2017-07-12 | 2017-11-03 | 北京华如科技股份有限公司 | 仿真引擎的性能测试方法及存储介质 |
CN110796408A (zh) * | 2019-10-22 | 2020-02-14 | 拉扎斯网络科技(上海)有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
-
2008
- 2008-05-30 CN CNA2008100987253A patent/CN101593219A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279768A (zh) * | 2010-06-10 | 2011-12-14 | 株式会社东芝 | 仿真装置、仿真程序以及仿真方法 |
CN102279768B (zh) * | 2010-06-10 | 2014-06-25 | 株式会社东芝 | 仿真装置以及仿真方法 |
CN103385018A (zh) * | 2012-12-03 | 2013-11-06 | 华为技术有限公司 | 网络仿真方法及服务器 |
CN103385018B (zh) * | 2012-12-03 | 2018-02-02 | 华为技术有限公司 | 网络仿真方法及服务器 |
CN105975313A (zh) * | 2016-05-13 | 2016-09-28 | 浪潮电子信息产业股份有限公司 | 一种Spec CPU安装方法及装置 |
CN107315889A (zh) * | 2017-07-12 | 2017-11-03 | 北京华如科技股份有限公司 | 仿真引擎的性能测试方法及存储介质 |
CN107315889B (zh) * | 2017-07-12 | 2020-05-12 | 北京华如科技股份有限公司 | 仿真引擎的性能测试方法及存储介质 |
CN110796408A (zh) * | 2019-10-22 | 2020-02-14 | 拉扎斯网络科技(上海)有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Perelman et al. | Using simpoint for accurate and efficient simulation | |
Kirner et al. | Measurement-based worst-case execution time analysis using automatic test-data generation | |
CN101593219A (zh) | 动态切换仿真模式的仿真方法及仿真设备 | |
Joshua et al. | The future of simulation: A field of dreams | |
Beyls et al. | Discovery of locality-improving refactorings by reuse path analysis | |
WO2017096338A1 (en) | Execution time prediction for energy-efficient computer systems | |
Bradley et al. | Derivation of passage-time densities in PEPA models using IPC: The Imperial PEPA Compiler | |
US20080307387A1 (en) | Software development apparatus and method for providing performance prediction | |
EP3391224B1 (en) | Method and apparatus for data mining from core traces | |
KR102045415B1 (ko) | 자동으로 최적의 통계 모델을 결정하는 방법 및 그 장치 | |
US10564992B2 (en) | Simulation apparatus and storage medium | |
EP3144814B1 (en) | Method and apparatus for generating a profile of a target program | |
US7684971B1 (en) | Method and system for improving simulation performance | |
US8949681B2 (en) | Correction apparatus, correction method, and computer product | |
CN109783837A (zh) | 仿真设备、仿真系统、仿真方法和仿真程序 | |
Wolf et al. | Execution cost interval refinement in static software analysis | |
Mittal et al. | Integrating sampling approach with full system simulation: Bringing together the best of both | |
US20120185231A1 (en) | Cycle-Count-Accurate (CCA) Processor Modeling for System-Level Simulation | |
Helmstetter et al. | Fast instruction set simulation using LLVM-based dynamic translation | |
Rapaka et al. | Pre-characterization free, efficient power/performance analysis of embedded and general purpose software applications | |
JPH09198275A (ja) | コンピュータ性能向上推奨システム | |
Gu et al. | A survey of phase analysis: Techniques, evaluation and applications | |
KR20130088285A (ko) | 데이터 처리 시스템 및 그 시스템에서 데이터 시뮬레이션 방법 | |
Topham et al. | Adaptive high-speed processor simulation | |
KR20180120380A (ko) | 빠르고 정확한 실행 시간 예측을 위한 하이브리드 명령어 집합 시뮬레이션 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091202 |