动态切换仿真模式的仿真方法及仿真设备的制作方法

文档序号:6462737阅读:157来源:国知局
专利名称:动态切换仿真模式的仿真方法及仿真设备的制作方法
技术领域
本发明涉及在仿真过程中动态切换仿真模式的仿真方法和仿真设备。
背景技术
长期以来,计算机架构师依靠软件仿真来研究设计出的硬件的功能和性 能。通常,软件仿真设备具有周期精确仿真和功能仿真两种仿真模式。功能 仿真是较为简单的仿真模式,其通常用于软件开发。在功能仿真模式中,仿 真设备仿真所设计的硬件的功能来调试和运行开发的应用程序和操作系统并 给出运行的结果。但是,功能仿真无法反映所设计的硬件的性能如何。与此 相反,周期精确仿真是较为复杂的仿真模式,其通常用于硬件体系结构的研 究。在周期精确仿真模式中,仿真设备不仅能够仿真所设计的硬件的功能, 而且能够准确地评估所设计的硬件的性能。然而,尽管周期精确仿真模式与 功能仿真模式相比具有准确评估硬件性能的优势,但其有着固有的缺点,即
仿真速度比功能模式下的仿真速度慢得多。以Mambo为例,仿真设备在周期 精确仿真模式下的速度比在功能仿真模式下的速度要慢2个数量级,比所仿 真的硬件更是慢了 4个数量级以上。因此,如何能够通过恰当地应用所述功 能仿真模式和周期精确仿真模式来实现准确的硬件性能评估和较快的仿真速
度是人们所关心的。
针对这一问题, 一种解决方法是采用采样微体系结构仿真(Sampling Microarchitecture Simulation, SMARTS )框架作为使得能够进行全长基准的快 速和准确的性能测量的途径(参见R. Wunderlich, T.Wenisch, B. Falsafi和J. Hoe.SMARTS: Accelerating Microarchitecture Simulation via Rigorous Statistical Sampling, International Symposium on Computer Architecture,第84—95页,San Diego, California, 2003年6月)。SMARTS通过仅以周期精确仿真模式选择性 地仿真适当的基准子集、以功能仿真模式来仿真其余的指令集来加速仿真。 SMARTS规定了统计的探测过程,用于配置系统采样仿真运行以获取期望的 准确度。另一种方法是通过避免周期精确仿真重复代码段来减少仿真量(参见W. Liu禾口 M. Huang, EXPERT: expedited simulation exploiting program behavior repetition, Proceedings of the l她annual International Conference on Supercomputing, 2004年6月)。因为重复代码段代表平稳的程序行为,因此 通过辨别程序行为的重复并且采用功能仿真模式对重复代码段进行仿真,可 以明显地加快仿真速度而不会影响性能评估的准确度。
然而上述方法以及其他在此处未提到的方法在实现时都需要首先对程序 进行分析,并基于分析结果来确定进行周期精确仿真的指令子集和进行功能 仿真的其余指令集。但是,对程序的分析处理往往都基于非常复杂的算法和 数学统计。例如,它们需要分析源代码或二进制代码来搜索所有的基本块, 子程序或重复循环,因而非常难于实现。而且在很多时候,无法获取源代码 或二进制代码,从而导致无法进行分析。另一方面,在程序运行之前的这种 静态分析无法观察到程序的动态行为,从而可能花费不必要的时间进行分析 和仿真。例如,程序中的许多子程序和循环实际并不执行很多次(可能在整 个程序的运行过程中仅仅」执行一次或两次),从而它们对准确度的影响非常 小,所以实际上并不需要花费时间对它们进行分析和仿真。

发明内容
本发明的目的在于提供能够准确地评估硬件性能并具有较快的仿真速度 的仿真方法和仿真设备。
本发明利用局部性原理和推测采样,在仿真过程中动态地切换功能仿真 模式和周期精确仿真模式,从而实现了较快的仿真速度,并且具有与完全以 周期精确仿真模式进行仿真相比可接受的准确度。
根据本发明的一个方面,提供了一种动态切换仿真模式的仿真方法'所 述方法包括步骤A)以周期精确仿真模式在一个第一预定长度的周期精确 仿真时间段内进行仿真,并计算该周期精确仿真时间段内的性能度量的值;
B)确定整个仿真是否完成,当整个仿真已完成时,结束所述仿真方法;当整
个仿真尚未完成时,继续以周期精确仿真模式在一个第二预定长度的周期精
确仿真时间段内进行仿真,并计算该周期精确仿真时间段内的性能度量的值; c)计算所述第二预定长度的周期精确仿真时间段内的性能度量的值与前一个 周期精确仿真时间段内的性能度量的值之差的绝对值;d)当所述绝对值小于 一预定的阈值时,以功能仿真模式在一个第三预定长度的功能仿真时间段内进行仿真;E)重复执行步骤B-D直至结束。
根据本发明的又一个方面,提供了 一种动态切换仿真模式的仿真设备。 所述设备包括周期精确仿真器,以周期精确仿真模式进行仿真;功能仿真 器,以功能仿真模式进行仿真;性能度量值计算部件,响应于周期精确仿真 器在一个第一预定长度的周期精确仿真时间段内进行仿真而计算该周期精确 仿真时间段内性能度量的值;比较部件,用于将两个相邻的周期精确仿真时 间段内的性能度量的值之差的绝对值与预定的阈值进行比较;控制器,用于 根据由比较部件得出的比较结果动态切换仿真模式,并控制周期精确仿真器 和功能仿真器进行仿真。
本发明在仿真过程中动态地切换仿真模式,因此不需要在仿真进行之前 基于非常复杂的算法和数学统计对程序进行静态的分析,所以本发明非常容 易实现。另外,由于本发明基于局部性原理和推测采样选择需要以周期精确 模式进行仿真的代码段,因此能够保证具有较高的性能评估准确度,并极大 地减少了仿真时间。


结合附图,从下面对实施例的描述中,本发明的这些和/或其他方面、 特征和优点将变得清楚和更加容易理解,其中 图1示出了描述程序的重复特性的曲线图2示出了根据本发明实施例的、动态切换仿真模式的仿真方法的流程
图3示出了应用根据本发明的仿真方法的示例;
图4示出了根据本发明实施例的、动态切换仿真模式的仿真设备的框图。
具体实施例方式
现在将参考本发明的示例性实施例进行详细的描述,在附图中图解说明 了所述实施例的示例,其中相同的参考数字始终指示相同的元件。应当理解, 本发明并不限于所公开的示例实施例。还应当理解,并非所述方法和设备的 每个特征对于实施任一权利要求所要求保护的本发明都是必要的。此外,在 整个公开中,当显示或描述处理或方法时,方法的步骤可以以任何顺序或者 同时执行,除非从上下文中能清楚一个步骤依赖于先执行的另一步骤。此外,步骤之间可以有显著的时间间隔。
计算机程序通常具有重复特性,某些相同的操作往往会重复执行多次。
循环迭代或子程序调用的重复执行是所述重复中的常见示例。例如,以SPEC CPU 2000测试程序集为例,其静态指令的数目只不过是几百万条,然而由于 循环迭代或子程序调用的重复执行,其典型的运行由数十亿或数百亿的动态 指令组成。容易想到,在重复执行相同的操作时,硬件的性能度量应该是基 本相同的。举例来说,如图1所示,如果以IPC (每周期执行的指令数)作 为评估硬件的性能度量,则在循环迭代的每一次重复或子程序调用的每一次 重复中,IPC值应该是基本相同的。例如上图中第一个子程序Sl的IPC和第 二个S1的IPC是基本相同的,下图中迭代1与迭代2的IPC也是基本相同的。 由此,在整个程序的运行期间,IPC值表现出明显的局部性。
局部性原理(locality principle)是程序行为的一种性质。它包括时间局 部性和空间局部性。前者指的是,如果某数据刚才被访问,则它很可能在近 期内还要被访问;后者指的是,如果某数据刚才被访问,则和它位置上相邻 的数据很可能被访问。所述局部性原理已经在现代计算机架构中广为使用, 例如高速緩存、翻译后援緩沖器(TLB, translation lookaside buffer)和分支预 测。由于程序行为具有局部性,因此可以通过最近过去的行为来推测程序未 来的行为。
基于以上特性,本发明人认识到,在程序运行期间,对于硬件性能度量 (例如IPC )基本不变的时间段一直以周期精确仿真模式进行仿真显然会不 必要地降低仿真速度。如果能够获得硬件性能度量基本保持不变的时间段的 样本(例如,相当于该时间段的1/10长度的极短时间段),并且仅对该样本 应用周期精确仿真模式进行仿真,而对于除了样本之外的其余部分以功能仿 真模式进行仿真,则能够获得较快的仿真速度,同时能够对硬件性能做出比 较准确的评估。由此,本发明人提出基于历史和推测确定以周期精确仿真模 式进行仿真的样本,并以功能仿真模式对除了样本之外的其余部分进行仿真, 从而减少仿真时间同时获得准确的性能评价。
下面将参考图2对根据本发明实施例的、动态切换仿真模式的仿真方法 进行描述。首先,在步骤S201,由用户预先设定周期精确仿真模式下的周期 精确仿真时间段的长度(下文中称为第一预定长度),并以周期精确仿真模式
7在一个第一预定长度的周期精确仿真时间段内进行仿真。在步骤S202中,计 算该周期精确仿真时间段内的性能度量的值,并进行存储。随后,在步骤S203 中判断整个仿真是否完成。当确定整个仿真仍未完成时,在步骤S204中,继 续以周期精确仿真^f莫式在一个第二预定长度的周期精确仿真时间段内进行仿 真,并且在步骤S205中计算该周期精确仿真时间段内的性能度量的值,并进 行存储。所述第二预定长度由用户预先设定,其既可以设为与第一预定长度 相同,也可以不同,并且当用户没有预先设定第二预定长度时,默认其与第 一预定长度相同。接着,在步骤S206中将计算出的两个性能度量的值进行比 较,并判断这两个性能度量的值之差的绝对值是否小于一个预定的阈值。
当所述绝对值小于预定的阈值时,表明在过去的两个相邻的周期精确仿 真时间段内程序是平稳的。这里"平稳"表示硬件的性能度量的值基本保持 不变。因此基于局部性原理预测在随后的一个时间段内程序仍将保持平稳, 而硬件的性能度量的值也将基本保持不变。基于这一预测,在步骤S207,仿 真模式切换至功能仿真模式,并以该功能仿真模式在一个第三预定长度的功 能仿真时间段内进行仿真。该第三预定长度也由用户预先设定,并且其长度 既可以设为与用于周期精确仿真的第一预定长度或第二预定长度相同,也可 以设为不同。在此之后,按照本发明的仿真方法返回至步骤S203以判断整个 仿真是否完成,并在确定整个仿真尚未结束时再次执行后续的各个步骤。由 此,重复执行前述的步骤S203 -S207,直到确定整个仿真结束。另一方面, 当所述绝对值大于等于预定的阈值时,表明在过去的两个相邻的周期精确仿 真时间段内程序是不平稳的,从而硬件的性能度量的值变化较大。因此为了 获得准确的硬件性能评估,需要继续以周期精确仿真模式进行仿真。因而, 按照本发明的仿真方法继续保持周期精确仿真模式,并直接返回至步骤S203。
所述阈值是由用户预先设定的。根据以上描述可以看出,用户 可以取决于其 所期望的硬件性能评估的准确度来设定阈值。例如,当用户对准确度的要求 较低而对仿真速度要求较高时,可以将阚值设定得较大,从而增加在整个仿 真过程中以功能仿真模式进行仿真的机会。相反,当用户对准确度的要求较 高而对仿真速度要求较低时,可以将阈值设定得较小,从而减少在整个仿真 过程中以功能仿真模式进行仿真的机会。另外上述多个预定周期精确仿真时间段和功能仿真时间段的是由用户人为初始设定,优选地也可以由计算机根 据所仿真程序的执行时间或者其他度量动态设定。
优选地,在完成了整个仿真之后,可以计算所存储的各个性能度量的值
的加权平均值,如步骤S210所示,以获得对于所仿真的硬件整体的性能评价。
在计算加权平均值时,可以将与各个性能度量的值对应的仿真时间长度作为 权重,也可以由用户来设定权重。
优选地,为了获得更好的效果,功能仿真时间段的长度(即第三预定长 度)在设定之后可以根据运行的程序的动态行为动态改变。具体地,如果在
步骤S206中确定两个性能度量的值之差的绝对值小于预定的阈值,则在步骤 S207中以功能仿真模式进行仿真之后,可以通过将第三预定长度增大一倍或 多倍来延长功能仿真时间段,从而下一次以功能仿真模式进行仿真的时间变 长,如步骤S208所示。相反,如果在步骤S206中确定两个性能度量的值之 差的绝对值大于等于预定的阈值,则可以通过将第三预定长度减小一倍或多 倍来缩短功能仿真时间段,从而下一次以功能模式进行仿真的时间变短,如
行的程序的动态行为动态改变。例如,当在步骤S206中确定两个性能度量的 值之差的绝对值小于预定的阈值,可以在步骤208中通过将第二预定长度减 ,J、 一倍或多倍来缩短周期精确仿真时间段,从而减少周期精确仿真的采样时 间;而如果绝对值大于等于预定的阈值,则可以在步骤209中通过将第二预 定长度增大一倍或多倍来延长周期精确仿真时间段,从而增加周期精确仿真 的采样时间。
上述实施例中所述的性能度量可以是任何具有良好的局部性的度量,例 如CPI(每指令周期,即IPC的倒数)、高速緩存未命中率、TLB未命中率以及 分支预测精确性等。
确模拟器和功能模拟器。例如,除了 IBM的模拟器Mambo,现有的周期精 确模拟器还有SimpleScalar中的Outorder冲莫式(www.simplescalar.com )等' 功負&才莫4以器还有Simics (www.virtutech.com)等。
图3示出了应用根据本发明的仿真方法的示例。如图3所示,图中最上 面的线表示运行程序的仿真时间。第二条线代表对于平稳程序应用本发明的仿真方法的情形。首先,使用周期精确仿真模式在两个周期精确仿真时间段 tO和tl中进行仿真(在本示例中,为了简单起见,假设t0和tl时间段的长 度是相等的,并且设定在后续的仿真过程中周期精确仿真时间段的长度始终
保持不变),并分别计算to和tl时间段内的性能度量的值CPI[O]和CPI[l]。 然后,计算CPI
和CPI[1]之差的绝对值。由于这一差的绝对值小于预定的 阈值,因此切换至功能仿真模式,并以该模式在一个功能仿真时间段t,O中进
行仿真。之后,再次切换至周期精确仿真模式,并以该模式在周期精确仿真
时间段t2中进行仿真,并计算CPI[2]。由于CPI[2]和CPI[1]之差的绝对值仍 然小于预定的阈值,这意味着程序是平稳的。由此可以推测,程序将在随后 的较长时间内仍保持平稳,所以可以以功能模式在较长的时间内进行仿真。 在本示例中,将初始功能仿真时间段的长度增大一倍,并且仿真模式再次切 换到功能仿真模式,并以功能仿真模式在长度更新后的 一个功能仿真时间段 t,l中进行仿真。之后,再次切换至周期精确仿真模式,并以该模式在周期精 确仿真时间段t3中进行仿真,并计算CPI[3]。在本示例中,CPI[3]和CPI[2〗 之差的绝对值仍然小于预定的阈值,所以将功能仿真时间段的长度再增大一 倍,并且仿真模式再次切换到功能仿真模式,并以功能仿真模式在长度更新 后的一个功能仿真时间段t'2中进行仿真。依此类推,直到仿真结束为止。可
以看出,通过不断增加以功能仿真模式进行仿真的时间长度,采用周期精确 仿真模式进行仿真的时间变得越来越少,因此可以获得较快的仿真速度。可
见,通过动态地确定并交替使用功能仿真模式和周期精确仿真模式可以减少 仿真时间,并且保证具有较高的硬件性能评估准确度。
图3中的第三条线代表对于不平稳程序应用本发明的仿真方法的情形。 类似地,首先使用周期精确仿真模式在两个周期精确仿真时间段tO和tl中进 行仿真,并计算CPI[O]和CPI[l]。然后,计算CPI
和CPI[1]之差的绝对值。
由于这一差的绝对值大于等于预定的阈值,这意味着程序在这一段时间是不 平稳的,所以为了能够获得准确度较高的硬件性能评估,需要继续以周期精
确仿真模式进行仿真。因此,继续以周期精确仿真模式在时间段t2中进行仿 真。在本示例中,在第一至第三个周期精确仿真时间段(t0-12)中,CPI变 化较大。当在时间段t3中进行周期精确仿真之后,发现CPI[3]和CPI[2]之差 的绝对值小于预定的阈值。因此,仿真模式切换到功能仿真模式,并以该模 式在功能仿真时间段t,O中进行仿真。随后,仿真模式再次切换到周期精确仿真模式,并以该模式在时间段t4中进行仿真,并计算CPI[4]。由于CPI[4]和 CPI[3]的差的绝对值大于等于预定的阈值,因此仍使用周期精确仿真模式在 时间段。中进行仿真,并计算CPI[5]。由于CPI[5]和CPI[4]之差的绝对值小 于预定的阈值,因此,仿真模式切换到功能仿真模式,并以该模式在功能仿 真时间段t,l中进行仿真。依此类推,直到仿真结束。需要说明的是,在本示 例中,在时间段t3之后,以初始设定的功能仿真时间段长度进行功能仿真。 然而,由于在时间段t0-t2中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的介质 以及诸如数字和模拟通信链路的传输型介质。
尽管参考本发明的优选实施例具体展示和描述了本发明,但是本领域一 般技术人员应该明白,在不脱离所附权利要求限定的本发明的精神和范围的 情况下,可以对其进行形式和细节上的各种修改。
1权利要求
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所述的仿真设备,其中所述性能度量为每指令 周期、高速緩存未命中率、翻译后援緩沖器未命中率和分支预测精确性中的 任一个。
全文摘要
本发明提供了动态切换仿真模式的仿真方法和设备。该方法包括A)以周期精确仿真模式在一个第一预定长度的周期精确仿真时间段内进行仿真,并计算该时间段内的性能度量的值;B)确定整个仿真是否完成,当已完成时,结束仿真方法;否则,继续以周期精确仿真模式在一个第二预定长度的周期精确仿真时间段内进行仿真,并计算该时间段内的性能度量的值;C)计算第二预定长度的周期精确仿真时间段内的性能度量的值与前一个周期精确仿真时间段内的性能度量的值之差的绝对值;D)当绝对值小于一预定的阈值时,以功能仿真模式在一个第三预定长度的功能仿真时间段内进行仿真;E)重复B-D直至结束。本发明保证了较高的仿真性能评估准确度,同时减少了仿真时间。
文档编号G06F17/50GK101593219SQ20081009872
公开日2009年12月2日 申请日期2008年5月30日 优先权日2008年5月30日
发明者锐 侯, 常晓涛, 鲲 王, 宇 章 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1