CN107783817A - 处理器的模拟方法、功能模拟器、性能模拟器和模拟*** - Google Patents
处理器的模拟方法、功能模拟器、性能模拟器和模拟*** Download PDFInfo
- Publication number
- CN107783817A CN107783817A CN201610799082.XA CN201610799082A CN107783817A CN 107783817 A CN107783817 A CN 107783817A CN 201610799082 A CN201610799082 A CN 201610799082A CN 107783817 A CN107783817 A CN 107783817A
- Authority
- CN
- China
- Prior art keywords
- basic block
- simulator
- block
- functional
- basic
- 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
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
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/45525—Optimisation or modification within the same instruction set architecture, e.g. HP Dynamo
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种处理器的模拟方法、功能模拟器、性能模拟器和模拟***,该方法包括:功能模拟器接收性能模拟器发送的第一请求消息,其中,该第一请求消息携带预测地址,该预测地址是该性能模拟器执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,该第一请求消息用于请求该预测地址对应的基本块,该第一基本块是该功能模拟器当前已经执行完毕的基本块,该基本块为顺序执行的指令块;如果该功能模拟器确定该预测地址与第二基本块的地址不一致,则该功能模拟器将该第二基本块及该预测地址对应的基本块发送给该性能模拟器,其中,该第二基本块为该功能模拟器执行完第一基本块确定的下一个基本块。
Description
技术领域
本发明实施例涉及通信领域,并且更具体地,涉及处理器的模拟方法、功能模拟器、性能模拟器和模拟***
背景技术
多核处理器设计的时候需要考虑各种因素:多级缓存(cache)大小、寄存器个数和位数、流水线调度策略、处理器核心(core)间消息传递、浮点模块等等。这些参数的设置将影响到处理器的性能,或者影响到处理器在某些测试的表现。
模拟器(simulator),是指主要通过软件模拟硬件处理器的功能和指令***,从而能够运行其它平台的软件的设备。模拟器可以模拟硬件处理器的行为,表现出硬件处理器运行状态和结果,从而使得上述参数的设置达到最佳性能。用户通过在模拟器上运行基准(Benchmark)测试程序,得到测试结果以衡量模拟器本身的性能和硬件参数设置是否合理。用户通过调整模拟器硬件中多级缓存(cache)大小、寄存器个数和位数、流水线调度策略等参数,可以影响到处理器的实际性能,例如测试程序运行时间、cache miss率、分支预测率、流水线失效等。
现代处理器设计考虑的不仅仅是单个处理器核(core)的频率和执行效率,更多的是考虑到多core处理器间的协作执行效率。现有技术通过一个模拟***进行协作执行效率的测试,该模拟***包括功能模拟器(Functional Simulator,FS)和性能模拟器(Performance Simulator,PS)。在一个模拟周期内,模拟器中的功能模拟器和一个core运行一个翻译块(Translation Block,TB)后进入等待状态,性能模拟器中对应的core将执行该TB对应的基本块(Basic Block,BB),性能模拟器执行该BB后唤醒功能模拟器执行下一个TB。在一个模拟周期内,FS和PS执行的都是相同的指令,得到相同的运算结果。
分支预测功能是现代处理器里的一个重要功能,处理器可以通过提前获取下一段运行指令,从而加速处理器执行,提高执行效率。现有的模拟***中功能模拟器和性能模拟器在性能模拟器的分支预测失败时需要多次交互指令,影响了模拟***的整体性能。
发明内容
本发明实施例提供一种处理器的模拟方法、功能模拟器、性能模拟器和模拟***,能够在性能模拟器的分支预测失败时减少功能模拟器和性能模拟器的交互指令,从而实现性能模拟的加速,提高了模拟***性能模拟的效率。
第一方面,提出了一种处理器的模拟方法,该方法包括:功能模拟器接收性能模拟器发送的第一请求消息,该第一请求消息携带预测地址,该预测地址是该性能模拟器执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,该第一请求消息用于请求该预测地址对应的基本块,该第一基本块是该功能模拟器当前已经执行完毕的基本块,其中,该基本块为顺序执行的指令块;如果该功能模拟器确定该预测地址与第二基本块的地址不一致,则该功能模拟器将该第二基本块及该预测地址对应的基本块发送给该性能模拟器,其中,该第二基本块为该功能模拟器执行完第一基本块确定的下一个基本块。
应理解,本发明实施例中,功能模拟器上运行着操作***及测试程序,用于模拟指定处理器的硬件参数并得到运算的结果。性能模拟器用于模拟该指定处理器的硬件参数,接收并执行该功能模拟器执行的指令得到运算的结果和性能参数。应理解,本发明实施例的性能模拟器可能只有指定处理器的模拟器,不能运行全***的操作***,性能模拟器运行的指令块来自于功能模拟器。功能模拟器和性能模拟器执行相同的指令,得到相同的运算结果。
应理解,本发明实施例的基本块,可以是处理器或模拟处理器执行的最小指令单元。
在本发明实施例中,功能模拟器根据性能模拟器对预测的基本块的请求,在预测的基本块的地址与第二基本块的地址不一致时,向性能模拟器反馈待执行的第二基本块及预测地址所对应的基本块,能够避免与性能模拟器进行多次指令交互,从而实现性能模拟的加速,提高了模拟***性能模拟的效率。
结合第一方面,在第一种可能的实现方式中,该方法还包括:该功能模拟器在等待该性能模拟器发送该第一请求消息或等待该性能模拟器执行该第一基本块的过程中,根据该第二基本块的地址读取该第二基本块并翻译,并将该第二基本块经翻译后的翻译块放入该功能模拟器的翻译块缓存空间,以便该功能模拟器在执行该第二基本块时直接从翻译块缓存空间获取该第二基本块的翻译块进行执行。
在本实现方式中,功能模拟器在等待该性能模拟器请求消息或等待该性能模拟器执行该第一基本块的过程中,并行读取第二基本块并翻译,并将该第二基本块经翻译后的翻译块放入该功能模拟器的翻译块缓存空间,从而能够减少功能模拟器翻译基本块的时间,提高功能模拟器的执行效率。
第二方面,提出了一种处理器的模拟方法,该功能模拟器包括:接收单元,用于接收性能模拟器发送的第一请求消息,该第一请求消息携带预测地址,该预测地址是该性能模拟器执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,该第一请求消息用于请求该预测地址对应的基本块,该第一基本块是该功能模拟器当前已经执行完毕的基本块,其中,该基本块为顺序执行的指令块;确定单元,用于确定该预测地址与第二基本块的地址是否一致;发送单元,用于如果该功能模拟器确定该预测地址与第二基本块的地址不一致,则将该第二基本块及该预测地址对应的基本块发送给该性能模拟器,其中,该第二基本块为该功能模拟器执行完第一基本块确定的下一个基本块。
结合第二方面,在第一种可能的实现方式中,该功能模拟器还包括执行单元和翻译单元,其中,该执行单元用于执行该第一基本块;该翻译单元用于在该执行单元执行该第一基本块后等待该性能模拟器发送该第一请求消息或等待该性能模拟器执行该第一基本块的过程中,根据该第二基本块的地址读取该第二基本块并翻译,并将该第二基本块经翻译后的翻译块放入该功能模拟器的翻译块缓存空间,以便该功能模拟器在执行该第二基本块时直接从翻译块缓存空间获取该第二基本块的翻译块进行执行。
第三方面,提出了另一种功能模拟器,该功能模拟器包括:IO接口和处理器,其中,该处理器用于执行以下方法:通过该IO接口接收性能模拟器发送的第一请求消息,该第一请求消息携带预测地址,该预测地址是该性能模拟器执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,该第一请求消息用于请求该预测地址对应的基本块,该第一基本块是该功能模拟器当前已经执行完毕的基本块,该基本块为顺序执行的指令块;确定该预测地址与第二基本块的地址是否一致;如果该功能模拟器确定该预测地址与第二基本块的地址不一致,则通过该IO接口将该第二基本块及该预测地址对应的基本块发送给该性能模拟器,其中,该第二基本块为该功能模拟器执行完第一基本块确定的下一个基本块。
结合第三方面,在第一种可能的实现方式中,该处理器还用于在等待该性能模拟器请求消息或等待该性能模拟器执行该第一基本块的过程中,根据该第二基本块的地址读取该第二基本块并翻译,并将该第二基本块经翻译后的翻译块放入该功能模拟器的翻译块缓存空间,以便该功能模拟器在执行该第二基本块时直接从翻译块缓存空间获取该第二基本块的翻译块进行执行。
第四方面,提出了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第五方面,提供了另一种处理器的模拟方法,该方法包括:性能模拟器在执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,其中,该第一基本块是功能模拟器当前已经执行完毕的基本块,其中,该基本块为顺序执行的指令块;该性能模拟器向该功能模拟器发送第一请求消息,该第一请求消息携带预测地址,该第一请求消息用于请求该预测地址对应的基本块;该性能模拟器接收该功能模拟器发送的第二基本块和该预测地址对应的基本块,其中,该第二基本块是该功能模拟器执行完该第一基本块后确定的下一个基本块,该第二基本块的地址与该预测地址不一致;该性能模拟器执行完该第一基本块后,确定分支预测错误,并直接执行该预测地址对应的基本块。
第六方面,提出了一种功能模拟器,该功能模拟器包括:执行单元,用于执行第一基本块并在执行该第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,其中,该第一基本块是功能模拟器当前已经执行完毕的基本块,其中,该基本块为顺序执行的指令块;发送单元,用于向该功能模拟器发送第一请求消息,该第一请求消息携带预测地址,该第一请求消息用于请求该预测地址对应的基本块;接收单元,用于接收该功能模拟器发送的第二基本块和该预测地址对应的基本块,其中,该第二基本块是该功能模拟器执行完该第一基本块后确定的下一个基本块,该第二基本块的地址与该预测地址不一致;该执行单元还用于在执行完该第一基本块后,确定分支预测错误,并直接执行该预测地址对应的基本块。
第七方面,提出了另一种功能模拟器,该功能模拟器包括:IO接口和处理器,该处理器用于执行以下方法:执行第一基本块并在执行该第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,其中,该第一基本块是功能模拟器当前已经执行完毕的基本块,该基本块为顺序执行的指令块;通过该IO接口向该功能模拟器发送第一请求消息,该第一请求消息携带预测地址,该第一请求消息用于请求该预测地址对应的基本块;通过该IO接口接收该功能模拟器发送的第二基本块和该预测地址对应的基本块,其中,该第二基本块是该功能模拟器执行完该第一基本块后确定的下一个基本块,该第二基本块的地址与该预测地址不一致;在执行完该第一基本块后,确定分支预测错误,并直接执行该预测地址对应的基本块。
第八方面,提出了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行第五方面或第五方面的任意可能的实现方式中的方法的指令。
第九方面,提出了一种模拟***,该模拟***包括:第二方面或第二方面的任一可能的实现方式中的功能模拟***和第六方面的性能模拟器;或者第三方面或第三方面的任一可能的实现方式中的功能模拟***和第七方面的性能模拟器
本发明实施例中,性能模拟器在请求预测地址对应的基本块时接收功能模拟器反馈的下一个待执行的第二基本块及预测地址对应的基本块,并在执行第一基本块后确定分支预测错误,并直接执行第二基本块,从而能够避免与功能模拟器进行多次指令交互,从而实现性能模拟的加速,提高了模拟***性能模拟的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术的一种模拟***100的框架示意图。
图2是现有技术功能模拟器和性能模拟器的一种框架结构示意图。
图3是本发明的一个实施例处理器的模拟方法流程图。
图4是本发明的一个实施例处理器的模拟方法的交互流程图。
图5是本发明的一个实施例功能模拟器执行基本块的流程示意图。
图6是本发明的另一个实施例处理器的模拟方法流程图。。
图7是本发明的一个实施例功能模拟器的结构示意图。
图8是本发明的一个实施例性能模拟器的结构示意图。
图9是本发明的另一个实施例功能模拟器的结构示意图。
图10是本发明的另一个实施例功能模拟器的结构示意图。
图11是本发明的一个实施例模拟***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素。
基本块(Basic Block,BB):是处理器(CPU)或处理器模拟器中指令执行的基本单位,指处理器执行的程序中一段顺序执行的指令块,其中只有一个执行入口和一个执行出口。基本块的执行入口就是基本块中的第一个语句,执行出口就是基本块中的最后一个语句。对一个基本块来说,执行时只从其入口进入,从其出口退出。
翻译块(Translation Block,TB):处理器或处理器模拟器中经过翻译可直接执行的指令的基本单位,一般为一个BB经过翻译后的指令块。
图1是现有技术的一种模拟***100的框架示意图。如图1所示,模拟***100可包括功能模拟器101和性能模拟器102。功能模拟器和性能模拟器102通过模拟***100的模拟基础(Simulator infrastructure)模块103进行指令交互。
其中,功能模拟器101可以是一个运行多核多节点的QEMU集群,集群上每个客体操作***(Guest OS)可以是标准Linux等。QEMU集群上运行JVM、Hadoop、Spark之类的软件栈,软件栈智商运行的是集群测试程序,例如BigBench、SPEC2006等应用。
性能模拟器102是类似解耦架构的集群***,包括多个计算节点,内存节点和数据通信网络(Data Communication Network,DCN)。
模拟基础模块103从功能模拟器101中获取指令、网络包、内存包等信息,然后将这些包信息解析并发送给性能模拟器上对应的节点群。
图2是现有技术功能模拟器和性能模拟器的一种框架结构示意图。
如图2所示,功能模拟器101为多核功能模拟器(Multi-Core FunctionalSimulator),其上运行着操作***,例如Linux OS等。具体地,例如,功能模拟器101可以使用Qemu作为Multi-Core Functional Simulator,当前是运行arm v8指令集架构的多核***,上层是运行在Qemu上的Linux OS。功能模拟器101只要求保证功能正确,即执行结果正确,不会涉及CPU内部工作原理的模拟和描述。
性能模拟器102是没有运行***的模拟器,用于模拟多核架构的处理器。如图2所示,性能模拟器102可包括指令解码(Instruction Decoder)模块、生成器(ModelGenerator)、单元模型(Unit Models)模块、互联及计时(Connectivity&Timing)模块、数据(Data)模块、调试层(Debug Layer)模块、并发调度器(Parallel Scheduler)等。其中,
指令解码模块:用于在CPU执行指令的时候,对指令进行译码;
生成器:用于根据译码后的指令,生成多条微指令,并在并发调度器的调度下顺序或者乱序执行;
单元模型模块:指CPU内部具有的功能模块,例如浮点运算模块、SIMD模块等;
并发调度器:用于对各个流水线上的微指令并发运行,特别地,有些CPU架构下的并发调度器支持微指令乱序执行;
互联及计时模块,包括CPU内部时钟,以及CPU上各个模块单元的连接形式,如内部总线等;
数据模块:是CPU内部存放数据的区域,如各个core上的寄存器、L1/L2上的cache、TLB里的内存信息等等;
调试层模块:是CPU自身的调试模块,用于CPU自身硬件上的调试功能。
模拟基础模块103读取功能模拟器101运行时产生的指令,传送到性能模拟器102中运行。例如,模拟基础模块103可以读取QEMU运行时产生的基本块,然后这些基本块传送到性能模拟器102运行。功能模拟器101和性能模拟器102运行的是相同操作***的相同指令,两个模拟器产生的结果预测应该是一致的,可以进行比较分析。通过将功能模拟器产生的一系列基本块,顺序发送给性能模拟器执行,就可以重现测试过程。通过调整功能模拟器中的处理器的硬件参数设置,就可以从性能模拟器得到不同的测试结果,特别是在性能测试方面,例如带宽、延迟、流水线执行效率、cache命中率等,可以得到不同的测试结果。通过比较测试结果,选择最优的测试结果所对应的硬件参数配置,从而能够达到参数调优的效果。
图3是本发明的一个实施例处理器的模拟方法流程图。图3的方法由功能模拟器执行。该方法包括:
301,功能模拟器接收性能模拟器发送的第一请求消息,其中,该第一请求消息携带预测地址,该预测地址是该性能模拟器执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,该第一请求消息用于请求该预测地址对应的基本块,该第一基本块是该功能模拟器当前已经执行完毕的基本块,该基本块为顺序执行的指令块。
应理解,本发明实施例中,功能模拟器上运行着操作***及测试程序,用于模拟指定处理器的硬件参数并得到运算的结果。性能模拟器用于模拟该指定处理器的硬件参数,接收并执行该功能模拟器执行的指令得到运算的结果和性能参数。应理解,本发明实施例的性能模拟器可能只有指定处理器的模拟器,不能运行全***的操作***,性能模拟器运行的指令块来自于功能模拟器。功能模拟器和性能模拟器执行相同的指令,得到相同的运算结果。
应理解,本发明实施例的基本块,可以是处理器或模拟处理器执行的最小指令单元。
302,如果该功能模拟器确定该预测地址与第二基本块的地址不一致,则该功能模拟器将该第二基本块及该预测地址对应的基本块发送给该性能模拟器,其中,该第二基本块为该功能模拟器执行完第一基本块确定的下一个基本块。
应理解,本发明实施例的指定处理器,可以是实际的处理器产品,或者是正在设计过程中的处理器。指定处理器的硬件参数,可包括该指定处理器的多级cache大小、该指定处理器的寄存器个数和位数、该指定处理器的流水线调度策略,等等。该运算的结果可以包括测试程序的运算结果,等。该性能参数可以包括测试程序的运行时间、Cache Miss率、分支预测率或流水线失效率等。
本发明实施例中,功能模拟器根据性能模拟器对预测的基本块的请求,在预测的基本块的地址与第二基本块的地址不一致时,向性能模拟器反馈待执行的第二基本块及预测地址所对应的基本块,能够避免与性能模拟器进行多次指令交互,从而实现性能模拟的加速,提高了模拟***性能模拟的效率。
可选地,该方法还包括:该功能模拟器在等待该性能模拟器发送该第一请求消息或等待该性能模拟器执行该第一基本块的过程中,根据该第二基本块的地址读取该第二基本块并翻译,并将该第二基本块经翻译后的翻译块放入该功能模拟器的翻译块缓存空间,以便该功能模拟器在执行该第二基本块时直接从翻译块缓存空间获取该第二基本块的翻译块进行执行。
本发明实施例中,功能模拟器在等待该性能模拟器请求消息或等待该性能模拟器执行该第一基本块的过程中,并行读取第二基本块并翻译,并将该第二基本块经翻译后的翻译块放入该功能模拟器的翻译块缓存空间,从而能够减少功能模拟器翻译基本块的时间,提高功能模拟器的执行效率。
当然,应理解,在功能模拟器接收性能模拟器发送的预测地址之前,该方法还可包括:该功能模拟器执行第一基本块经翻译后的翻译块后,等待该性能模拟器的请求消息;该功能模拟器接收该性能模拟器发送的第二请求消息,该第二请求消息用于请求该第一基本块;该功能模拟器向该性能模拟器发送该第一基本块。其具体实现可参考现有技术的方法。
下面将结合具体的实施例,对本发明实施例的方法做进一步的描述。
图4是本发明的一个实施例处理器的模拟方法的交互流程图。应理解,本发明实施例中,功能模拟器上运行着操作***及测试程序,用于模拟指定处理器的硬件参数并得到运算的结果性能模拟器用于模拟该指定处理器的硬件参数,接收并执行该功能模拟器执行的指令得到运算的结果和性能参数。应理解,本发明实施例的性能模拟器可能只有指定处理器的模拟器,不能运行全***的操作***,性能模拟器运行的指令块来自于功能模拟器。功能模拟器和性能模拟器执行相同的指令,得到相同的运算结果。具体地,该方法包括:
401,功能模拟器执行第一基本块,确定第二基本块的地址。
应理解,本发明实施例中,第一基本块是一段顺序执行的代码,是功能模拟器或性能模拟器所执行的最小指令单元。第一基本块中的执行入口是第一基本块的第一条语句,执行出口是第一基本块的最后一条语句。
功能模拟器在执行第一基本块时,可先将第一基本块翻译成可执行的翻译块,再执行该翻译块,从而完成第一基本块的执行过程。
功能模拟器执行第一基本块后,即可确定第二基本块的地址,该第二基本块即为下一个基本块。
同时,当功能模拟器执行完第一基本块后,进入等待状态,等待性能模拟器请求第一基本块。
402,性能模拟器发送第一请求消息,请求第一基本块。
当功能模拟器执行完第一基本块并进入等待状态,性能模拟器进入运行状态并向功能模拟器发送第一请求消息,该第一请求消息用于请求当前运行的基本块,即第一基本块。
403,功能模拟器发送第一基本块。
功能模拟器在接收到性能模拟器的第一请求消息后,根据第一请求消息将当前执行完的第一基本块发送给性能模拟器,以便性能模拟器执行第一基本块。
404,性能模拟器执行第一基本块,通过分支预测确定预测地址。
性能模拟器在执行第一基本块的过程中,根据现有的运行结果和状态进行分支预测,确定预测地址,该预测地址为经过分支预测得到的下一个基本块的地址。
405,性能模拟器发送第二请求消息,请求预测地址对应的基本块。
性能模拟器确定预测地址后,可向功能模拟器发送第二请求消息,该第二请求消息中携带该预测地址,该第二请求消息用于请求该预测地址对应的基本块。
407,功能模拟器判断第二基本块的地址是否等于预测地址。
功能模拟器根据第二请求消息,获取该预测地址,并判断下一个基本块的地址是否等于该预测地址,即判断第二基本块的地址是否等于该预测地址。
如果是,则执行步骤408,否则,执行步骤408。
408,功能模拟器发送第二基本块。
如果第二基本块的地址等于该预测地址,则说明性能模拟器的预测成功,功能模拟器可直接将第二基本块发送给性能模拟器。
408,功能模拟器发送第二基本块和预测地址对应的基本块。
如果该预测地址与第二基本块的地址不一致,则说明性能模拟器的预测失败,功能模拟器可将第二基本块及该预测地址对应的基本块发送给性能模拟器。
应理解,功能模拟器可以和性能模拟器约定第二基本块及该预测地址对应的基本块的发送规则。例如,可以按顺序发送两个基本块,规定第一个基本块为预测地址对应的基本块,第二个基本块为第二基本块,等等;又例如,可以用标识区分第二基本块和预测地址对应的基本块,等等。
409,性能模拟器在执行完第一基本块后执行第二基本块。
性能模拟器执行第一基本块结束的时候会判断分支预测是否成功,即预测地址是否正确。这里存在两种情况,一种情况是分支预测成功,此时性能模拟器只得到一个第二基本块,直接执行即可;另一种情况是分支预测失败,此时性能模拟器得到第二基本块和预测地址对应的基本块,从中选择第二基本块执行。
通过本发明实施例的技术方案,性能模拟器和功能模拟器在分支预测后只需要交互一次并最多发送2个基本块,从而实现性能模拟的加速,提高了模拟***性能模拟的效率。
应理解,在图4所示实施例中,如果功能模拟器采用现有技术的方法执行基本块,即从基本块的地址中读取基本块并翻译成翻译块,再执行翻译后的翻译块,需要消耗读取基本块的时间+翻译基本块的时间+执行翻译块的时间。本发明实施例还提出了一种方案,能够进一步减少功能模拟器执行基本块的时间消耗。
图5是本发明的一个实施例功能模拟器执行基本块的流程示意图。如图5所示,功能模拟器可包括翻译线程和执行线程,翻译线程在执行线程执行阶段时进入等待阶段,在执行进程进入等待阶段时进入执行阶段,获取下一个基本块的地址,进行翻译,并将翻译后的翻译块TB放入TB缓存中;执行线程再次进入执行阶段后,直接从TB缓存中读取下一个基本块经过翻译后的翻译块TB,同时更新TB缓存中的TB计数器和时间戳。
具体地,本发明实施例中,翻译线程可以在执行线程等待性能模拟器的时候进行基本块的翻译。执行线程等待性能模拟器的时候,可以是执行线程等待性能模拟器请求基本块的时候,或者是性能模拟器等待性能模拟器执行基本块的时候。
通过本发明实施例的方法,翻译线程和执行线程并行执行,可以使得执行线程不需要等待基本块的翻译过程,从而能够提供功能模拟器的执行效率,进而提高模拟***的模拟性能。
图6是本发明的另一个实施例处理器的模拟方法流程图。图6的方法由性能模拟器执行。该方法包括:
601,性能模拟器在执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,其中,该第一基本块是功能模拟器当前已经执行完毕的基本块,该基本块为顺序执行的指令块。
应理解,本发明实施例中,功能模拟器上运行着操作***及测试程序,用于模拟指定处理器的硬件参数并得到运算的结果。性能模拟器用于模拟该指定处理器的硬件参数,接收并执行该功能模拟器执行的指令得到运算的结果和性能参数。应理解,本发明实施例的性能模拟器可能只有指定处理器的模拟器,不能运行全***的操作***,性能模拟器运行的指令块来自于功能模拟器。功能模拟器和性能模拟器执行相同的指令,得到相同的运算结果。
应理解,本发明实施例的基本块,可以是处理器或模拟处理器执行的最小指令单元。
602,该性能模拟器向该功能模拟器发送第一请求消息,该第一请求消息携带预测地址,该第一请求消息用于请求该预测地址对应的基本块。
603,该性能模拟器接收该功能模拟器发送的第二基本块和该预测地址对应的基本块,其中,该第二基本块是该功能模拟器执行完该第一基本块后确定的下一个基本块,该第二基本块的地址与该预测地址不一致。
604,该性能模拟器执行完该第一基本块后,确定分支预测错误,并直接执行该预测地址对应的基本块。
本发明实施例中,性能模拟器在请求预测地址对应的基本块时接收功能模拟器反馈的下一个待执行的第二基本块及预测地址对应的基本块,并在执行第一基本块后确定分支预测错误,并直接执行第二基本块,从而能够避免与功能模拟器进行多次指令交互,从而实现性能模拟的加速,提高了模拟***性能模拟的效率。
本发明实施例的具体实现可参考图4所示实施例中性能模拟器执行的方法,本发明实施例在此不再赘述。
图7是本发明的一个实施例功能模拟器700的结构示意图。功能模拟器700可包括:
接收单元701,用于接收性能模拟器发送的第一请求消息,其中,该第一请求消息携带预测地址,该预测地址是该性能模拟器执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,该第一请求消息用于请求该预测地址对应的基本块,该第一基本块是该功能模拟器当前已经执行完毕的基本块,该基本块为顺序执行的指令段。
确定单元702,用于确定该预测地址与第二基本块的地址是否一致。
发送单元703,用于如果该功能模拟器确定该预测地址与第二基本块的地址不一致,则将该第二基本块及该预测地址对应的基本块发送给该性能模拟器,其中,该第二基本块为该功能模拟器执行完第一基本块确定的下一个基本块。
应理解,本发明实施例中,功能模拟器上运行着操作***及测试程序,用于模拟指定处理器的硬件参数并得到运算的结果。性能模拟器用于模拟该指定处理器的硬件参数,接收并执行该功能模拟器执行的指令得到运算的结果和性能参数。应理解,本发明实施例的性能模拟器可能只有指定处理器的模拟器,不能运行全***的操作***,性能模拟器运行的指令块来自于功能模拟器。功能模拟器和性能模拟器执行相同的指令,得到相同的运算结果。
应理解,本发明实施例的基本块,可以是处理器或模拟处理器执行的最小指令单元。
在本发明实施例中,功能模拟器根据性能模拟器对预测的基本块的请求,在预测的基本块的地址与第二基本块的地址不一致时,向性能模拟器反馈待执行的第二基本块及预测地址所对应的基本块,能够避免与性能模拟器进行多次指令交互,从而实现性能模拟的加速,提高了模拟***性能模拟的效率。
可选地,如图7所示,该功能模拟器700还包括执行单元704和翻译单元705。其中,
该执行单元704用于执行第一基本块经翻译后的翻译块;
该翻译单元705用于在该执行单元704用于执行第一基本块经翻译后的翻译块后,等待该性能模拟器发送该第一请求消息或等待该性能模拟器执行该第一基本块的过程中,根据该第二基本块的地址读取该第二基本块并翻译,并将该第二基本块经翻译后的翻译块放入该功能模拟器的翻译块缓存空间,以便该功能模拟器在执行该第二基本块时直接从翻译块缓存空间获取该第二基本块的翻译块进行执行。
当然,应理解,该翻译单元705还用于在该执行单元704用于执行第一基本块经翻译后的翻译块之前,对该第一基本块进行翻译;该接收单元701还用于在该执行单元执行第一基本块经翻译后的翻译块后,接收该性能模拟器发送的第二请求消息,该第二请求消息用于请求该第一基本块;该发送单元703还用于向该性能模拟器发送该第一基本块。
功能模拟器700还可执行图3的方法,并实现功能模拟器在图4、图5所示实施例的功能,本发明实施例在此不再赘述。
图8是本发明的一个实施例性能模拟器800的结构示意图。性能模拟器800可包括:
执行单元801,用于执行第一基本块,并在执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,其中,该第一基本块是功能模拟器当前已经执行完毕的基本块,该基本块为顺序执行的指令块。
发送单元802,用于向该功能模拟器发送第一请求消息,该第一请求消息携带预测地址,该第一请求消息用于请求该预测地址对应的基本块。
接收单元803,用于接收该功能模拟器发送的第二基本块和该预测地址对应的基本块,其中,该第二基本块是该功能模拟器执行完该第一基本块后确定的下一个基本块,该第二基本块的地址与该预测地址不一致。
执行单元801还用于在执行完该第一基本块后,确定分支预测错误,并直接执行该预测地址对应的基本块。
应理解,本发明实施例中,功能模拟器上运行着操作***及测试程序,用于模拟指定处理器的硬件参数并得到运算的结果。性能模拟器用于模拟该指定处理器的硬件参数,接收并执行该功能模拟器执行的指令得到运算的结果和性能参数。应理解,本发明实施例的性能模拟器可能只有指定处理器的模拟器,不能运行全***的操作***,性能模拟器运行的指令块来自于功能模拟器。功能模拟器和性能模拟器执行相同的指令,得到相同的运算结果。
应理解,本发明实施例的基本块,可以是处理器或模拟处理器执行的最小指令单元。
本发明实施例中,性能模拟器在请求预测地址对应的基本块时接收功能模拟器反馈的下一个待执行的第二基本块及预测地址对应的基本块,并在执行第一基本块后确定分支预测错误,并直接执行第二基本块,从而能够避免与功能模拟器进行多次指令交互,从而实现性能模拟的加速,提高了模拟***性能模拟的效率。
性能模拟器还可执行图6的方法,并实现性能模拟器在图6所示实施例中的功能,本发明实施例在此不再赘述。
图9是本发明的一个实施例功能模拟器900的结构示意图。功能模拟器900可包括:输入输出(Input/Output,IO)接口901和处理器902。可选地,还可包括存储器903。
存储器903,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器903可以包括只读存储器和随机存取存储器,并向处理器902提供指令和数据。存储器903可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器902,执行存储器903所存放的程序,并具体用于执行以下操作:
通过IO接口901接收性能模拟器发送的第一请求消息,其中,该第一请求消息携带预测地址,该预测地址是该性能模拟器执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,该第一请求消息用于请求该预测地址对应的基本块,该第一基本块是该功能模拟器当前已经执行完毕的基本块,该基本块为顺序执行的指令块;
确定该预测地址与第二基本块的地址是否一致;
如果该功能模拟器确定该预测地址与第二基本块的地址不一致,则通过IO接口901将该第二基本块及该预测地址对应的基本块发送给该性能模拟器,其中,该第二基本块为该功能模拟器执行完第一基本块确定的下一个基本块。
应理解,本发明实施例中,功能模拟器上运行着操作***及测试程序,用于模拟指定处理器的硬件参数并得到运算的结果。性能模拟器用于模拟该指定处理器的硬件参数,接收并执行该功能模拟器执行的指令得到运算的结果和性能参数。应理解,本发明实施例的性能模拟器可能只有指定处理器的模拟器,不能运行全***的操作***,性能模拟器运行的指令块来自于功能模拟器。功能模拟器和性能模拟器执行相同的指令,得到相同的运算结果。
应理解,本发明实施例的基本块,可以是处理器或模拟处理器执行的最小指令单元。
上述如本发明图3-5中任一实施例揭示的功能模拟器执行的方法可以应用于处理器902中,或者由处理器902实现。处理器902可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器902中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器902可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器903,处理器902读取存储器903中的信息,结合其硬件完成上述方法的步骤。
本发明实施例中,功能模拟器根据性能模拟器对预测的基本块的请求,在预测的基本块的地址与第二基本块的地址不一致时,向性能模拟器反馈待执行的第二基本块及预测地址所对应的基本块,能够避免与性能模拟器进行多次指令交互,从而实现性能模拟的加速,提高了模拟***性能模拟的效率。
可选地,处理器902还用于在等待该性能模拟器请求消息或等待该性能模拟器执行该第一基本块的过程中,根据该第二基本块的地址读取该第二基本块并翻译,并将该第二基本块经翻译后的翻译块放入该功能模拟器的翻译块缓存空间,以便该功能模拟器在执行该第二基本块时直接从翻译块缓存空间获取该第二基本块的翻译块进行执行。
本发明实施例中,功能模拟器在等待该性能模拟器请求消息或等待该性能模拟器执行该第一基本块的过程中,并行读取第二基本块并翻译,并将该第二基本块经翻译后的翻译块放入该功能模拟器的翻译块缓存空间,从而能够减少功能模拟器翻译基本块的时间,提高功能模拟器的执行效率。
当然,应理解,在通过IO接口901接收性能模拟器发送的第一请求消息之前,处理器902还用于执行以下方法:执行第一基本块经翻译后的翻译块,并在执行完该翻译块后等待该性能模拟器的请求消息;通过IO接口901接收该性能模拟器发送的第二请求消息,该第二请求消息用于请求该第一基本块;通过IO接口901向该性能模拟器发送该第一基本块。
图10是本发明的一个实施例功能模拟器1000的结构示意图。功能模拟器1000可包括:输入输出(Input/Output,IO)接口1001和处理器1002。可选地,还可包括存储器1003。
存储器1003,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器1003可以包括只读存储器和随机存取存储器,并向处理器1002提供指令和数据。存储器1003可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器1002,执行存储器1003所存放的程序,并具体用于执行以下操作:
执行第一基本块并在执行该第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,其中,该第一基本块是功能模拟器当前已经执行完毕的基本块;
通过IO接口1001向该功能模拟器发送第一请求消息,该第一请求消息携带预测地址,该第一请求消息用于请求该预测地址对应的基本块,该基本块为顺序执行的指令块;
通过IO接口1001接收该功能模拟器发送的第二基本块和该预测地址对应的基本块,其中,该第二基本块是该功能模拟器执行完该第一基本块后确定的下一个基本块,该第二基本块的地址与该预测地址不一致;
在执行完该第一基本块后,确定分支预测错误,并直接执行该预测地址对应的基本块。
应理解,本发明实施例中,功能模拟器上运行着操作***及测试程序,用于模拟指定处理器的硬件参数并得到运算的结果。性能模拟器用于模拟该指定处理器的硬件参数,接收并执行该功能模拟器执行的指令得到运算的结果和性能参数。应理解,本发明实施例的性能模拟器可能只有指定处理器的模拟器,不能运行全***的操作***,性能模拟器运行的指令块来自于功能模拟器。功能模拟器和性能模拟器执行相同的指令,得到相同的运算结果。
应理解,本发明实施例的基本块,可以是处理器或模拟处理器执行的最小指令单元。
上述如本发明图4、6中任一实施例揭示的功能模拟器执行的方法可以应用于处理器1002中,或者由处理器1002实现。处理器1002可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1002中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1002可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1003,处理器1002读取存储器1003中的信息,结合其硬件完成上述方法的步骤。
本发明实施例中,性能模拟器在请求预测地址对应的基本块时接收功能模拟器反馈的下一个待执行的第二基本块及预测地址对应的基本块,并在执行第一基本块后确定分支预测错误,并直接执行第二基本块,从而能够避免与功能模拟器进行多次指令交互,从而实现性能模拟的加速,提高了模拟***性能模拟的效率。
本发明实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图3所示实施例的方法。
本发明实施例还提出了另一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图6所示实施例的方法。
图11是本发明实施例模拟***1100的结构示意图。如图11所示,模拟***1100可包括功能模拟器1101和性能模拟器1102,其中,
功能模拟器1101可以是图7所示的功能模拟器700,或图9所示的功能模拟器900;
性能模拟器1102可以是图8所示的性能模拟器80,或图10所示的性能模拟器1000。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种处理器的模拟方法,其特征在于,包括:
功能模拟器接收性能模拟器发送的第一请求消息,所述第一请求消息携带预测地址,所述预测地址是所述性能模拟器执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,所述第一请求消息用于请求所述预测地址对应的基本块,所述第一基本块是所述功能模拟器当前已经执行完毕的基本块,其中,所述基本块为顺序执行的指令块;
如果所述功能模拟器确定所述预测地址与第二基本块的地址不一致,则所述功能模拟器将所述第二基本块及所述预测地址对应的基本块发送给所述性能模拟器,其中,所述第二基本块为所述功能模拟器执行完第一基本块确定的下一个基本块。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述功能模拟器在等待所述性能模拟器发送所述第一请求消息或等待所述性能模拟器执行所述第一基本块的过程中,根据所述第二基本块的地址读取所述第二基本块并翻译,并将所述第二基本块经翻译后的翻译块放入所述功能模拟器的翻译块缓存空间,以便所述功能模拟器在执行所述第二基本块时直接从翻译块缓存空间获取所述第二基本块的翻译块进行执行。
3.一种处理器的模拟方法,其特征在于,包括:
性能模拟器在执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,其中,所述第一基本块是功能模拟器当前已经执行完毕的基本块,所述基本块为顺序执行的指令块;
所述性能模拟器向所述功能模拟器发送第一请求消息,所述第一请求消息携带预测地址,所述第一请求消息用于请求所述预测地址对应的基本块;
所述性能模拟器接收所述功能模拟器发送的第二基本块和所述预测地址对应的基本块,其中,所述第二基本块是所述功能模拟器执行完所述第一基本块后确定的下一个基本块,所述第二基本块的地址与所述预测地址不一致;
所述性能模拟器执行完所述第一基本块后,确定分支预测错误,并直接执行所述预测地址对应的基本块。
4.一种功能模拟器,其特征在于,包括:
接收单元,用于接收性能模拟器发送的第一请求消息,其中,所述第一请求消息携带预测地址,所述预测地址是所述性能模拟器执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,所述第一请求消息用于请求所述预测地址对应的基本块,所述第一基本块是所述功能模拟器当前已经执行完毕的基本块,所述基本块为顺序执行的指令块;
确定单元,用于确定所述预测地址与第二基本块的地址是否一致;
发送单元,用于如果所述功能模拟器确定所述预测地址与第二基本块的地址不一致,则将所述第二基本块及所述预测地址对应的基本块发送给所述性能模拟器,其中,所述第二基本块为所述功能模拟器执行完第一基本块确定的下一个基本块。
5.如权利要求4所述的功能模拟器,其特征在于,
所述功能模拟器还包括执行单元和翻译单元,其中
所述执行单元用于执行所述第一基本块;
所述翻译单元用于在所述执行单元执行所述第一基本块后等待所述性能模拟器发送所述第一请求消息或等待所述性能模拟器执行所述第一基本块的过程中,根据所述第二基本块的地址读取所述第二基本块并翻译,并将所述第二基本块经翻译后的翻译块放入所述功能模拟器的翻译块缓存空间,以便所述功能模拟器在执行所述第二基本块时直接从翻译块缓存空间获取所述第二基本块的翻译块进行执行。
6.一种性能模拟器,其特征在于,包括:
执行单元,用于执行第一基本块并在执行所述第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,其中,所述第一基本块是功能模拟器当前已经执行完毕的基本块,其中,所述基本块为顺序执行的指令块;
发送单元,用于向所述功能模拟器发送第一请求消息,所述第一请求消息携带预测地址,所述第一请求消息用于请求所述预测地址对应的基本块;
接收单元,用于接收所述功能模拟器发送的第二基本块和所述预测地址对应的基本块,其中,所述第二基本块是所述功能模拟器执行完所述第一基本块后确定的下一个基本块,所述第二基本块的地址与所述预测地址不一致;
所述执行单元还用于在执行完所述第一基本块后,确定分支预测错误,并直接执行所述预测地址对应的基本块。
7.一种功能模拟器,其特征在于,包括:
输入输出IO接口和处理器,其中,所述处理器用于执行以下方法:
通过所述IO接口接收性能模拟器发送的第一请求消息,所述第一请求消息携带预测地址,所述预测地址是所述性能模拟器执行第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,所述第一请求消息用于请求所述预测地址对应的基本块,所述第一基本块是所述功能模拟器当前已经执行完毕的基本块,所述基本块为顺序执行的指令块;
确定所述预测地址与第二基本块的地址是否一致;
如果所述功能模拟器确定所述预测地址与第二基本块的地址不一致,则通过所述IO接口将所述第二基本块及所述预测地址对应的基本块发送给所述性能模拟器,其中,所述第二基本块为所述功能模拟器执行完第一基本块确定的下一个基本块。
8.如权利要求7所述的功能模拟器,其特征在于,
所述处理器还用于在等待所述性能模拟器请求消息或等待所述性能模拟器执行所述第一基本块的过程中,根据所述第二基本块的地址读取所述第二基本块并翻译,并将所述第二基本块经翻译后的翻译块放入所述功能模拟器的翻译块缓存空间,以便所述功能模拟器在执行所述第二基本块时直接从翻译块缓存空间获取所述第二基本块的翻译块进行执行。
9.一种性能模拟器,其特征在于,包括:
输入输出IO接口和处理器,所述处理器用于执行以下方法:
执行第一基本块并在执行所述第一基本块的过程中通过分支预测得到的下一个基本块的预测地址,其中,所述第一基本块是功能模拟器当前已经执行完毕的基本块,所述基本块为顺序执行的指令块;
通过所述IO接口向所述功能模拟器发送第一请求消息,所述第一请求消息携带预测地址,所述第一请求消息用于请求所述预测地址对应的基本块;
通过所述IO接口接收所述功能模拟器发送的第二基本块和所述预测地址对应的基本块,其中,所述第二基本块是所述功能模拟器执行完所述第一基本块后确定的下一个基本块,所述第二基本块的地址与所述预测地址不一致;
在执行完所述第一基本块后,确定分支预测错误,并直接执行所述预测地址对应的基本块。
10.一种模拟***,其特征在于,包括:
如权利要求4或5所述的功能模拟器与如权利要求6所述的性能模拟器;或者
如权利要求7或8所述的功能模拟器与如权利要求9所述的性能模拟器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610799082.XA CN107783817A (zh) | 2016-08-31 | 2016-08-31 | 处理器的模拟方法、功能模拟器、性能模拟器和模拟*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610799082.XA CN107783817A (zh) | 2016-08-31 | 2016-08-31 | 处理器的模拟方法、功能模拟器、性能模拟器和模拟*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107783817A true CN107783817A (zh) | 2018-03-09 |
Family
ID=61451759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610799082.XA Pending CN107783817A (zh) | 2016-08-31 | 2016-08-31 | 处理器的模拟方法、功能模拟器、性能模拟器和模拟*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107783817A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110113202A (zh) * | 2019-04-30 | 2019-08-09 | 新华三信息安全技术有限公司 | 一种IPsec诊断方法、装置及本端设备 |
CN111324948A (zh) * | 2020-02-10 | 2020-06-23 | 上海兆芯集成电路有限公司 | 模拟方法及模拟*** |
CN113608822A (zh) * | 2021-06-25 | 2021-11-05 | 天津津航计算技术研究所 | 一种双层解耦终端模拟器 |
-
2016
- 2016-08-31 CN CN201610799082.XA patent/CN107783817A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110113202A (zh) * | 2019-04-30 | 2019-08-09 | 新华三信息安全技术有限公司 | 一种IPsec诊断方法、装置及本端设备 |
CN110113202B (zh) * | 2019-04-30 | 2022-02-25 | 新华三信息安全技术有限公司 | 一种IPsec诊断方法、装置及本端设备 |
CN111324948A (zh) * | 2020-02-10 | 2020-06-23 | 上海兆芯集成电路有限公司 | 模拟方法及模拟*** |
CN111324948B (zh) * | 2020-02-10 | 2023-04-25 | 上海兆芯集成电路有限公司 | 模拟方法及模拟*** |
CN113608822A (zh) * | 2021-06-25 | 2021-11-05 | 天津津航计算技术研究所 | 一种双层解耦终端模拟器 |
CN113608822B (zh) * | 2021-06-25 | 2024-04-26 | 天津津航计算技术研究所 | 一种双层解耦终端模拟器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3754495B1 (en) | Data processing method and related products | |
US10866842B2 (en) | Synthesis path for transforming concurrent programs into hardware deployable on FPGA-based cloud infrastructures | |
Van Werkhoven et al. | Performance models for CPU-GPU data transfers | |
CN101344899B (zh) | 一种片上***的仿真测试方法及仿真测试*** | |
CN102508753B (zh) | Ip核验证*** | |
CN112433819A (zh) | 异构集群调度的模拟方法、装置、计算机设备及存储介质 | |
EP2883139A1 (en) | System and method for configuring cloud computing systems | |
US20230153158A1 (en) | Method, apparatus, system, and storage medium for performing eda task | |
CN107783817A (zh) | 处理器的模拟方法、功能模拟器、性能模拟器和模拟*** | |
JP2021508117A (ja) | ソフトウェア・ライブラリへの呼び出しをアクセラレータへの呼び出しに動的に置き換えるための装置及び方法 | |
US8027828B2 (en) | Method and apparatus for synchronizing processors in a hardware emulation system | |
CN115146582A (zh) | 仿真方法及仿真装置、电子设备和计算机可读存储介质 | |
CN103294482B (zh) | 用于PWscf并行计算***的Web服务封装方法以及*** | |
EP2672388B1 (en) | Multi-processor parallel simulation method, system and scheduler | |
CN109783837A (zh) | 仿真设备、仿真***、仿真方法和仿真程序 | |
Paolucci et al. | EURETILE 2010-2012 summary: first three years of activity of the European Reference Tiled Experiment | |
Cho et al. | A full-system VM-HDL co-simulation framework for servers with PCIe-connected FPGAs | |
US10162913B2 (en) | Simulation device and simulation method therefor | |
CN112559336B (zh) | 自适应调试异构计算芯片的方法、装置、***及主板芯片 | |
George et al. | An Integrated Simulation Environment for Parallel and Distributed System Prototying | |
CN113792522A (zh) | 仿真验证方法、装置及计算设备 | |
US10776139B2 (en) | Simulation apparatus, simulation method, and computer readable medium | |
US12039335B2 (en) | Schedule instructions of a program of data flows for execution in tiles of a coarse grained reconfigurable array | |
JP3960866B2 (ja) | 複数プロセッサの同時シミュレーション装置および同時シミュレーション方法 | |
US20230306272A1 (en) | Mapping Workloads to Circuit Units in a Computing Device via Reinforcement Learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180309 |
|
WD01 | Invention patent application deemed withdrawn after publication |