仿真设备和仿真方法技术

技术编号:8593811 阅读:185 留言:0更新日期:2013-04-18 06:57
提供了一种仿真设备和仿真方法,该仿真设备包括如下操作:将目标处理器中的程序的代码划分为块;将取决于外部环境的外部相关指令的执行结果设定为预测结果;根据预测结果执行功能仿真;根据指令执行定时信息和功能仿真结果来计算外部相关指令的执行时间;根据功能仿真结果生成主代码,该主代码使得主处理器执行性能仿真;如果在主处理器执行主代码时的外部相关功能的执行结果不同于预测结果,则根据外部相关指令的延迟时间和在外部相关功能前后执行的指令的执行时间,来校正外部相关指令的执行时间;以及将校正后的外部相关指令的执行时间设定为外部相关指令的执行时间。

【技术实现步骤摘要】

本文中描述的实施例涉及如下处理技术,该处理技术获取有关性能或电力的仿真信息。
技术介绍
在安装有多个处理器(例如,中央处理单元(CPU))的多核配置中,针对每个核(CPU)的功能、性能、电力等进行仿真处理,其具有高处理速度或高处理精度。第6,751,583B1号美国专利中公开了相关技术。关于作为功能、性能或功耗的仿真目标的目标CPU,将在作为主CPU的操作中的目标CPU的指令代码(目标代码)转换为主CPU的指令代码(主代码)。在该转换中,可以使用解释器方法或即时(JIT,Just-1n-Time)编译器方法。在基于JIT编译器方法的仿真中,目标CPU的指令被主CPU的指令取代,其中,目标CPU的指令出现在正执行的程序中,主CPU的指令执行仿真。所以,JIT编译器方法中的处理可以比解释器方法中的处理更快地执行。当每个单元针对每个时钟独立地运行时,每当在流水线处理的控制下执行处理时,CPU的内部状态就改变,其中,在流水线处理中,同时执行所输入的指令。因此,可能停用所生成的主指令的重复使用,其中,所生成的主指令的重复使用是JIT编译器方法的优点。当使用解释器方法来仿真对流水线处理或乱序处理进行控制的CPU的功能、性能或电力时,处理速度可能变慢。当使用JIT编译器方法来仿真性能或电力时,可以增加这样的仿真代码,该仿真代码对应于在流水线处理控制中涉及的各种内部状态。在性能仿真中,可将仿真代码增加到主代码,以适应于与目标CPU的延迟执行对应的定时。例如,当要执行加载(LD)指令的周期仿真时,可将条件代码增加到主代码,以检查发生高速缓存未命中或高速缓存命中的哪个,或者检查如果发生高速缓存未命中则是否存在代价周期。然而,为了保持高操作性,期望尽可能减少增加到功能代码的用于性能仿真的代码的量。
技术实现思路
根据实施例的一个方面,一种仿真设备,包括代码转换部分;以及仿真执行部分,其中,代码转换部分执行将被主处理器控制的目标处理器中的程序的代码划分为块;将外部相关指令的执行结果设定为预测结果,其中,外部相关指令取决于包括在块中的外部环境;根据预测结果执行功能仿真;根据包括在块中的指令执行定时信息和功能仿真结果,计算在预测结果的情况下的外部相关指令的执行时间;以及根据功能仿真结果生成主代码,该主代码使主处理器执行在预测结果的情况下的性能仿真,其中,仿真执行部分执行如果在主处理器执行主代码时的外部相关功能的执行结果不同于在主处理器执行主代码时的预测结果,则通过使用基于外部相关指令的延迟时间和在外部相关功能前后执行的指令的执行时间的校正值,来校正外部相关指令的执行时间;以及将校正后的外部相关指令的执行时间设定为外部相关指令的执行时间。根据仿真设备,可以执行高速仿真。经由权利要求中特别指出的元件和组合,将实现和获得本专利技术的目标和优点。应当理解,如所请求保护的,前述的概括说明和下面的详细说明都是例示性和说明性的,而不是限制本专利技术。附图说明图1图示例示性的仿真设备;图2图示例示性的指令;图3图示例示性的定时信息;图4A和图4B图示指令的例示性的执行定时;图5A图示例示性的主代码;图5B图示用于周期仿真的例示性代码;图6图示校正部分的例示性处理;图7A至图7D图示校正部分的例示性校正;图8A至图8D图示校正部分的例示性校正;图9A至图9D图示校正部分的例示性校正;图10图示代码转换部分的例示性处理;图11图示例示性的仿真;图12图示例示性的外部相关指令;图13A至图13C图示目标程序中的指令与主程序中的主指令的数目之间的例示性关系;图14图示代码转换部分的例示性处理;图15图示代码转换部分的例示性处理;图16图示例示性的仿真设备;以及图17图示电力仿真信息生成部分的例示性处理。具体实施例方式图1图示例示性的仿真设备。仿真设备I可执行目标CPU的指令执行的性能仿真,其中,目标CPU控制流水线处理。目标CPU可以是要仿真的CPU的控制模型。仿真设备I输出每个指令的周期仿真信息作为目标CPU的指令执行的性能仿真的结果。例如,目标CPU可为ARM架构CPU。例如,对应于主CPU的仿真设备I可为安装有X86架构CPU的计算机。仿真设备I包括代码转换部分11、仿真执行部分12和仿真信息采集部分13。当执行目标CPU的程序时,代码转换部分11根据由目标CPU执行的程序代码(例如目标代码)生成执行仿真的主CPU的代码(例如主代码)。代码转换部分11包括块划分部分111、预测仿真执行部分113和代码生成部分115。块划分部分111将提供到仿真设备I的程序的目标代码划分为规定块。例如,规定块可为基本块(从分支到下一分支的代码)或预定的任意代码单元。图2图示例示性的指令。图2中的指令可包括在块中。如图2中所示的,块包括作为目标代码的三个指令“LD[rl],r2”(加载)、“MULTr3,r4,r5” (相乘)和“ADD r2,r5,r6”(相加)。例如,LD、MULT和ADD依次输入到目标CPU的流水线中,然后执行。在这些指令中,rl至r6表示寄存器(地址)。预测仿真执行部分113接收定时信息3和预测信息4,并且在基于执行结果的情况下对输入的块执行性能仿真。针对目标代码中的每个指令,定时信息3包括表示指令执行中的每个处理(阶段)与可用寄存器之间的对应的信息,并且针对每个外部相关指令,定时信息3还包括与根据执行结果确定的延迟时间对应的代价代价时间(代价代价周期数)。外部相关指令可包括在与外部环境有关的处理中涉及的指令,在加载指令、存储指令等的执行结果取决于目标CPU以外的外部环境的处理(例如指令高速缓存、数据高速缓存或旁路转换缓冲(TLB)的搜索处理)中涉及的指令,以及用于分支预测和用于将调用和返回进行堆栈的指令。图3图示例示性的定时信息。定时信息可为图1中所示的定时信息3。对于图3中的定时信息3中的LD指令,第一处理元件(el)可使用源寄存器rsl(rl),而第二处理元件(e2)可使用目的寄存器rd (r2)。对于MULT指令,第一元件(el)可使用第一源寄存器rsl (r3),第二元件(e2)可使用第二源寄存器rs2 (r4),而第三处理元件(e3)可使用目的寄存器rd (r5)。对于ADD指令,第一元件(el)可使用第一源寄存器rsl (r2)和第二源寄存器rs2 (r5),而第二处理元件(e2)可使用目的寄存器rd (r6)。图4A和图4B图示指令的例示性的执行定时。图4A和图4B中的执行定时可为执行图2所示的块中的指令的定时。例如,如果LD指令的执行开始于定时t,则根据图3中的定时信息3,在定时t+1将MULT指令输入到流水线中,并且在定时t+2输入ADD指令。由于ADD指令中的第一源寄存器(r2)和第二源寄存器(r5)被LD指令和MULT指令使用,所以在定时t+4之后开始ADD指令的执行,其中,在该定时t+4处已完成了 LD指令和MULT指令的执行,由此生成等同于两个周期的等待时间(两个周期延迟)。因此,当对图2中的块进行仿真时,如果LD指令的执行结果为高速缓存命中,则块的执行时间可为如图4A所示的六个周期。图4B是当图2中的块中的LD指令的执行结果为高速缓存未命中时的时序图。如果LD指令的执行结果为高速缓存未命中,则重新执行的时间段本文档来自技高网
...

【技术保护点】
一种仿真设备,包括:代码转换部分;以及仿真执行部分,其中,所述代码转换部分执行:将被主处理器控制的目标处理器中的程序的代码划分为块;将外部相关指令的执行结果设定为预测结果,其中所述外部相关指令取决于包括在块中的外部环境;根据所述预测结果执行功能仿真;根据包括在所述块中的指令执行定时信息和功能仿真结果,计算在所述预测结果的情况下的所述外部相关指令的执行时间;以及根据所述功能仿真结果生成主代码,所述主代码使得所述主处理器执行在所述预测结果的情况下的性能仿真,其中,所述仿真执行部分执行:如果在所述主处理器执行所述主代码时的所述外部相关功能的执行结果不同于所述预测结果,则通过使用基于所述外部相关指令的延迟时间和在所述外部相关功能前后执行的指令的执行时间的校正值,来校正所述外部相关指令的执行时间;以及将校正后的所述外部相关指令的执行时间设定为所述外部相关指令的执行时间。

【技术特征摘要】
2011.10.12 JP 2011-2247141.ー种仿真设备,包括 代码转换部分;以及 仿真执行部分, 其中,所述代码转换部分执行 将被主处理器控制的目标处理器中的程序的代码划分为块; 将外部相关指令的执行结果设定为预测结果,其中所述外部相关指令取决于包括在块中的外部环境; 根据所述预测结果执行功能仿真; 根据包括在所述块中的指令执行定时信息和功能仿真结果,计算在所述预测结果的情况下的所述外部相关指令的执行时间;以及 根据所述功能仿真结果生成主代码,所述主代码使得所述主处理器执行在所述预测结果的情况下的性能仿真, 其中,所述仿真执行部分执行 如果在所述主处理器执行所述主代码时的所述外部相关功能的执行结果不同于所述预测結果,则通过使用基于所述外部相关指令的延迟时间和在所述外部相关功能前后执行的指令的执行时间的校正值,来校正所述外部相关指令的执行时间;以及 将校正后的所述外部相关指令的执行时间设定为所述外部相关指令的执行时间。2.根据权利要求1所述的仿真设备,其中,所述目标处理器控制流水线处理。3.根据权利要求1所述的仿真设备,其中,当要在所述外部相关指令之后执行的下一指令的执行时间没有超过所述外部相关指令的所述延迟时间时,所述仿真执行部分使用所述下一指令的执行时间作为所述校正值。4.根据权利要求3所述的仿真设备,其中,所述仿真执行部分从所述外部相关指令的所述延迟时间中减去所述校正值。5.根据权利要求1所述的仿真设备,其中,所述仿真执行部分从包括在所述块中的所述指令中检测这样的指令,该指令使用前一指令的执行时间来计算该指令的执行时间,并且所述仿真执行部分生成包括主指令的所述主代码,其中,所述...

【专利技术属性】
技术研发人员:桑村慎哉池敦
申请(专利权)人:富士通株式会社
类型:发明
国别省市:

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

1