CN103154890B - 模拟装置、方法以及程序 - Google Patents
模拟装置、方法以及程序 Download PDFInfo
- Publication number
- CN103154890B CN103154890B CN201080069496.8A CN201080069496A CN103154890B CN 103154890 B CN103154890 B CN 103154890B CN 201080069496 A CN201080069496 A CN 201080069496A CN 103154890 B CN103154890 B CN 103154890B
- Authority
- CN
- China
- Prior art keywords
- instruction
- mentioned
- execution
- simulation
- outcome
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- 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/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/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
-
- 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
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/10—Processors
Abstract
能够高速且高精度地执行对流水线处理进行控制的CPU的性能模拟。模拟装置(1)的代码变换部(11)在目标CPU执行程序时以分割后的各块检测受到外部环境影响的外部依赖指令,预测外部依赖指令的执行结果,并模拟预测结果下的指令执行,根据其模拟结果来生成编入了性能模拟用代码的主代码。模拟执行部(12)利用主代码针对程序的预测结果下的指令执行进行性能模拟,当在执行中外部依赖指令的执行结果与预测结果的设定不同时,使用在该指令前后执行的指令的执行时间等对预测结果下的指令的执行时间进行修正。模拟信息收集部(13)收集并输出性能模拟信息。
Description
技术领域
本发明涉及针对被虚拟模型化的系统中的处理器的指令执行,取得性能或者电力的模拟信息的处理技术。
背景技术
在系统复杂化、一般为搭载多个处理器(例如CPU)的多核构成的当前状况下,针对各核(CPU)的功能、性能、电力等的模拟处理,要求实现更高的处理速度和处理精度。
在功能、性能、消耗电力的模拟中,作为将成为评价对象的目标CPU从在主CPU中动作时的目标CPU的指令代码(目标代码)向主CPU的指令代码(主代码)变换的手法,公知采用解释器(interpreter)方式或者JIT(Just-in-Time)编译器(compiler)方式。
在基于JIT编译器方式的模拟中,针对作为模拟对象的目标CPU,将在执行过程中的程序中出现的目标CPU的指令置换成执行模拟的主CPU的指令,之后执行该置换后的指令。因此,JIT编译器方式的处理比解释器方式的处理速度快,在CPU的功能模拟中,尤其在被要求高速性的情况下,采用了JIT编译方式。
还提出了采用JIT编译器方式的CPU的性能模拟。
但是,在各单元能够按时钟独立动作,并逐个投入指令且并列执行的流水线(pipeline)处理的控制中,由于CPU的内部状态在每次执行处理时发生变化,所以不能活用反复利用暂时生成的主指令这一JIT编译器方式的优点。
因此,一般在针对控制流水线处理、乱序(outoforder)处理那样的CPU的性能模拟、电力模拟中,不能应用JIP编译器方式。
非专利文献1:美国专利6,751,583B1
如上述那样,当在针对控制流水线处理、乱序处理的CPU的功能、性能、电力的模拟中采用解释器方式时,一般处理速度非常慢,存在不能作为现实的手法来加以应用的问题。
另外,在近来高速的CPU的情况下,当在功能模拟中采用了JIT编译器方式时,能够设法以实用的速度进行处理。
但是,当在性能、电力的模拟中采用了JIT编译器方式时,在目标CPU中处理前后的状况因流水线的控制而是多样的,由于需要追加与内部状态对应的庞大模拟用代码和执行其指令,所以处理负担非常大。
并且,在性能模拟中,为了适应相对目标CPU中可预料到的执行延迟的定时,也需要对主代码追加庞大的模拟用代码。例如,当执行加载指令(LD:load)的循环模拟时,在基于该指令的高速缓存访问中,会发生高速缓存缺失(cachemiss)或者高速缓存命中(cachehit)中的任意一方,在高速缓存缺失的情况下,为了将所有定时计算在内来调查是否有应该考虑的惩罚循环(penaltycircle)等,需要将这些条件记述追加到主代码中。
但另一方面,为了维持高的动作性,需要尽量抑制对功能代码追加的性能模拟(循环模拟)用的代码量。
发明内容
本发明的目的在于,提供一种能够进行高速模拟的技术。
本发明的一个方式公开的模拟装置是对控制流水线处理的目标处理器执行程序的指令执行的模拟的模拟装置,具备:1)代码变换部,其进行下述三个处理:将上述程序的代码分割成规定的块,并将上述块中所含的指令中该指令的执行结果依赖于外部环境的外部依赖指令的处理的执行结果设定为预测结果;进行以上述预测结果为前提的指令执行的功能模拟,获得对上述块中所含的指令的执行定时进行表示的定时信息,根据上述功能模拟的结果与上述定时信息,来计算上述预测结果中的外部依赖指令的执行时间;和根据上述功能模拟的结果,生成使主处理器执行以上述预测结果为前提的指令执行的性能模拟的主代码,其中,上述主处理器是使上述目标处理器动作的主处理器;2)模拟执行部,当在上述主处理器执行了上述生成出的主代码的执行结果中,该主代码所含的外部依赖指令的执行结果与上述预测结果不同时,以利用该外部依赖指令的规定的延迟时间和在上述外部依赖指令的前后执行的指令的执行时间而求出的修正值,来修正上述预测结果中的外部依赖指令的执行时间,作为上述功能模拟中的该外部依赖指令的执行时间。
另外,本发明的另一个方式公开的模拟方法具备上述模拟装置执行的各处理步骤。
并且,本发明的又一个方式公开的模拟程序使计算机执行上述模拟方法。
根据所公开的模拟装置,能够高速地进行模拟。
附图说明
图1是表示作为本发明的一个实施方式公开的模拟装置的构成例的图。
图2是表示块中所含的指令的例子的图。
图3是表示定时信息的例子的图。
图4是表示图2所示的指令执行的定时例的图。
图5是表示编入循环模拟用代码的例子的图。
图6是表示模拟装置的修正部的处理动作的图。
图7是表示模拟装置的修正部针对LD指令的执行结果的修正例的图。
图8是表示模拟装置的修正部针对LD指令的执行结果的修正例的图。
图9是表示修正部123针对LD指令的执行结果的修正例的图。
图10是模拟装置的代码变换部的概要处理流程图。
图11是模拟装置的模拟执行部的概要处理流程图。
图12是作为外部依赖指令的一个例子,表示针对加载(ld)指令的处理的预测结果的判定以及修正的处理流程例的图。
图13是表示其他实施方式中的模拟装置的构成例的图。
图14是表示模拟装置的电力模拟信息生成部的实施例的图。
具体实施方式
图1是表示本发明的一个实施方式公开的模拟装置的构成例的图。
模拟装置1是对流水线处理进行控制的目标CPU中执行指令执行的性能模拟的装置。
目标CPU是成为模拟对象的CPU的控制模型。模拟装置1输出各指令的循环模拟信息作为目标CPU的指令执行的性能模拟。
这里,目标CPU例如是ARM体系结构的CPU。与主CPU相当的模拟装置1例如是搭载X86体系结构的CPU的计算机。
模拟装置1具有代码变换部11、模拟执行部12和模拟信息收集部13。
代码变换部11是在目标CPU执行程序时,根据目标CPU执行的程序的代码(目标代码),生成执行模拟的主CPU的代码(主代码)的处理部。
代码变换部11具有块分割部111、预测模拟执行部113以及代码生成部115。
块分割部111将模拟装置1被输入的程序的目标代码分割成规定的块。被分割的块单位例如可以是一般的基本块(basicblock)(从分支到下一分支前的代码)单位,或者也可以是预先决定的任意的代码单位。
图2是表示块中所含的指令的例子的图。
如图2所示,某个块中包含目标代码的3个指令;(1)“LDr1,r2”(加载);(2)“MULTr3,r4,r5(相乘)”;(3)“ADDr2,r5,r6(相加)”的指令,以(1)~(3)的顺序投入到目标CPU的流水线来加以执行。各指令的r1~r6表示寄存器(地址)。
预测模拟执行部113是获得定时信息3和预测信息4,来进行在以某个执行结果为前提的条件下执行被输入的块的性能模拟的处理部。
定时信息3是针对目标代码的各指令,表示指令执行时的各处理要素(阶段)与能够使用的寄存器之间的对应关系的信息;和对按指令中的每个外部依赖指令决定与执行结果对应的延迟时间的惩罚时间(惩罚循环数)进行表示的信息。
外部依赖指令是进行与外部环境有关的处理的指令,例如如加载指令或者存储指令等那样的,进行指令的执行结果依赖于目标CPU外的外部环境那样的处理、例如指令高速缓存、数据高速缓存、TLB检索等,或分支预测、调用/返回的堆栈等处理的指令。
图3是表示定时信息3的例子的图。
在图3所示的定时信息3中,针对LD指令,表示资源寄存器rs1(r1)为第1个处理要素(e1)而能够使用,地址寄存器rd(r2)为第2个处理要素(e2)而能够使用。
另外,在MULT指令中,表示第1资源寄存器rs1(r3)为第1个处理要素(e1),第2资源寄存器rs2(r4)为第2个处理要素(e2),地址寄存器rd(r5)为第3个处理要素(e3),能够分别使用。另外,在ADD指令中,表示第1资源寄存器rs1(r2)、第2资源寄存器rs2(r5)为第1个处理要素(e1)而能够使用,地址寄存器rd(r6)为第2个处理要素(e2)而能够使用。
图4是表示图2所示的块的各指令的执行定时例的图。
根据图3所示的定时信息3,关于向流水线投入各指令的定时,如果LD指令的执行开始设为定时t,则MULT指令为定时t+1,ADD指令为定时t+2。
由于ADD指令的第1资源寄存器(r2)与第2资源寄存器(r5)被LD指令和MULT指令使用,所以ADD指令的开始为LD指令与MULT指令的执行完成的定时t+4以后,产生2个循环量的待机时间(2个循环量的迟延)。
因此,如图4(A)所示可知,当模拟了图2所示的块时,在LD指令的执行结果为高速缓存命中的实例(case)下,块的执行时间为6个循环。
图4(B)表示了图2所示的块的LD指令的执行结果为高速缓存缺失时的定时例。
如果LD指令的结果为高速缓存缺失,则由于作为惩罚,对定时信息3设定了被认为足够再次执行的任意时间(这里为6个循环量),所以该惩罚循环被追加为延迟时间。因此,第2个处理要素(e2)的执行延迟到定时t+7。紧接着LD指令执行的MULT指令不受延迟的影响被直接执行,但ADD指令在LD指令的执行完成的定时t+8以后,产生4个循环量的待机时间(4个循环量的迟延)。
因此,如图4(B)所示可知,当模拟了图2所示的块的指令执行时,在LD指令的执行结果为高速缓存缺失的状况下,执行时间为10个循环。
预测信息4是在目标代码的外部依赖指令的处理中,决定了产生的概率高的执行结果(预测结果)的信息。由预测信息例如决定
“指令高速缓存:预测=命中,
数据高速缓存:预测=命中,
TLB检索:预测=命中,
分支预测:预测=命中,
调用/返回:预测=命中,…。
预测模拟执行部113根据上述的预测信息4,来设定被输入的块中所含的外部依赖指令的预测结果,并参照定时信息3,执行以所设定的预测结果为前提的情况(预测实例)的指令,来模拟指令执行的发展情况。预测模拟执行部113求出块中所含的各指令的执行时间(所要循环数)作为模拟结果。
代码生成部115是根据预测模拟执行部113的模拟结果,生成用于进行所设定的预测实例下的指令执行时的性能模拟的主代码(性能模拟用主代码),作为与处理后的块对应的主代码的处理部。
代码生成部115根据块的目标代码,生成外部依赖指令为预测结果的预测实例时的进行指令执行的主代码,进而加上各指令的执行时间,来编入进行对块的处理时间加以计算的处理的模拟用代码。
例如,代码生成部115针对设定了“高速缓存命中”作为数据的LD指令的预测结果的处理,模拟该块内的基于LD指令的高速缓存访问为“命中”时的处理执行,求出该预测实例下的执行时间,并生成通过使用了预测实例的“命中”时的执行时间加法/减法的修正计算而求出基于LD指令的高速缓存访问为“缺失”时的执行时间的处理的主代码。
模拟执行部12代是执行码生成部115生成的主代码,进行执行程序(目标代码)的目标CPU的指令执行的功能以及性能模拟的处理部。
模拟执行部12具有代码执行部121和修正部123。
代码执行部121是使用主代码来执行程序(目标代码)的处理部。
修正部123是在程序的执行过程中外部依赖指令的执行结果与所设定的预测结果不同时(预测外实例),对已经求出的预料实例下的执行时间进行修正来求出该指令的执行时间的处理部。
修正部123使用对外部依赖指令赋予的惩罚时间、在外部依赖指令的前后执行的指令的执行时间、前一个指令的延迟时间等来进行修正。另外,修正处理的详细内容将后述。
模拟信息收集部13是收集包括各指令的执行时间的日志信息(模拟信息)5作为性能模拟的执行结果的处理部。
以下,对模拟装置1的处理流程进行说明。
〔代码变换处理〕
(1)模拟装置1的代码变换部11的块分割部111获得目标程序2的目标代码并保持到存储部中(图1中未图示),将所保持的目标代码分割成任意的块(参照图2)。
(2)预测模拟执行部113获得与被输入的目标程序2有关的定时信息3、预测信息4并保存到存储部中。
然后,预测模拟执行部113根据预测信息,针对分割后的块的外部依赖指令分别设定预测结果。例如,作为图2所示的块的指令中LD指令的数据高速缓存的预测结果,预测模拟执行部113设定“命中”。
(3)预测模拟执行部113对块的代码进行解释,模拟以所设定的预测结果为前提时的指令执行。即,预测模拟执行部113模拟图4(A)所示的定时例的指令执行。
(4)接下来,代码生成部115根据预测实例的模拟结果,从目标代码生成主代码。并且,代码生成部115对从目标代码变换后的主代码(仅功能代码)编入用于执行性能模拟(循环模拟)的循环模拟用代码。
图5(A)是表示从目标代码生成功能模拟的主代码的例子的图,图5(B)是表示对功能模拟的主代码编入循环模拟用代码的例子的图。
如图5(A)所示,目标代码Inst_A被变换成主代码Host_Inst_A0_func、Host_Inst_A1_func,目标代码Inst_B被变换成主代码Host_Inst_B0_func、Host_Inst_B1_func、Host_Inst_B2_func、…,生成只有功能代码的主代码。
并且,对只有功能代码的主代码分别编入目标代码Inst_A的循环模拟用代码Host_Inst_A2_cycle、Host_Inst_A3_cycle,目标代码Inst_B的循环模拟用代码Host_Inst_B4_cycle、Host_Inst_B5_cycle。
循环模拟用代码是将各指令的执行时间(所要循环数)常量化,将各指令的执行时间合计来求出块的处理时间的代码。由此,能够获得表示块执行中的进展情况的信息。
这里,由于主代码中的功能代码、外部依赖指令以外的指令的循环模拟用代码能够使用已知的代码来实施,所以省略具体例的说明。外部依赖指令的循环模拟用代码作为调出修正处理的辅助(helper)函数被准备。针对辅助函数将后述。
〔模拟处理〕
(1)模拟执行部12的代码执行部121使用代码变换部11生成的主代码,来进行目标程序2的性能模拟。
代码执行部121模拟目标程序2的指令执行,不断获得各指令的执行时间。
(2)当在模拟的执行中检测到外部依赖指令(例如LD指令)时,代码执行部121判定其执行结果与所设定的预测结果是否不同,在执行结果与预测结果不同的情况下,请求启动修正部123。例如,在检测出指令“LD,r1,r2”,数据高速缓存的预测结果(高速缓存命中)与实际的执行结果(高速缓存缺失)不同的情况下,调出修正部123。
(3)修正部123接受调出而起动,对检测出的指令“LD,r1,r2”的执行时间(循环数)进行修正。并且,修正部123通过该修正,还变更下一指令的执行定时t+n。
每当外部依赖指令的执行结果与预测结果不同时,修正部123便修正指令的执行时间。这里,由于预测实例下的外部依赖指令的执行时间已被常量化,所以修正部123,可通过简单地将针对该指令的惩罚时间、前后执行的指令的执行时间、之前处理的指令的延迟时间等的值相加或相减来计算预测外实例下的外部依赖指令的执行时间。
图6是表示修正部123的处理动作的图。
修正部123作为辅助函数模块被实施。
在本实施方式中,例如通过取代按LD指令的高速缓存的每个执行结果来进行模拟的以往的函数“cache_ld(address)”,而将辅助函数“cache_ld(address,rep_delay,pre_delay)”装到主代码来实现。
辅助函数的“rep_delay”是在使用该加载(ld)指令的返回值的下一指令的执行之前,未被作为惩罚时间中的延迟时间而处理的时间(延期时间)。“pre_delay”是从前一个指令接收的延迟时间。“-1”表示之前的指令没有延迟。“rep_delay”与“pre_delay”是根据性能模拟结果与定时信息3的静态分析处理的结果而得到的时间信息。
在图6所示的动作例中,修正部123在当前定时current_time与前一个ld指令的执行定时preld_time之差超过前一个ld指令的延迟时间量pre_delay时,以前一个ld指令的执行定时preld_time到当前定时current_time的时间来调整延迟时间pre_delay,求出有效延迟时间avail_delay。
接下来,若执行结果为高速缓存缺失,则预测结果错误,修正部123对有效延迟时间avail_delay加上高速缓存缺失时的惩罚时间cache_miss_latency,根据延期时间rep_delay来修正LD指令的执行时间。
图7~图9是表示修正部123针对LD指令的执行结果的修正例的图。
图7是用于对在执行一个高速缓存处理的实例下产生了一个高速缓存缺失时的修正例进行说明的图。
在图7的例子中,执行以下3个指令的模拟。
“ld[r1],r2:[r1]→r2;
multr3,r4,r5:r3*r4→r5;
addr2,r5,r6:r2+r5→r6”
图7(A)是表示预测结果为“高速缓存命中”时的指令执行定时的图例的图。在该预测实例下,被第3个执行的add指令产生了2个循环迟延。
图7(B)是表示与预测结果不同的“高速缓存缺失”时的指令执行定时的图例的图。在该预测错误的实例下,如果ld指令的执行结果是高速缓存缺失,则产生惩罚循环(6个循环)量的延迟。因此,虽然mult指令不受延迟的影响地被执行,但由于add指令的执行等待ld指令的完成,所以延迟4个循环量。
图7(C)是表示由修正部123修正后的指令执行时间图的例子的图。
由于ld指令的执行结果为高速缓存缺失(预测结果的错误),所以修正部123对剩余的执行时间(2-1=1个循环)加上规定的高速缓存缺失时的惩罚时间(6个循环)来作为有效延迟时间(7个循环)。有效延迟时间成为最大的延迟时间。
并且,修正部123获得下一mult指令的执行时间(3个循环),判定为下一指令的执行时间未超过延迟时间,将从有效延迟时间减去了下一指令的执行时间而得到的时间(7-3=4个循环)作为ld指令的发生了延迟的执行时间(延迟时间)。
另外,修正部123将从有效延迟时间减去了上述的延迟时间而得到的时间(3个循环)设为延期时间。延期时间是作为惩罚的延迟被延期后的时间。
修正部123通过辅助函数cache_ld(addr,rep_delay,pre_delay),返回延期时间rep_delay=3、前指令的延迟时间pre_delay=-1(无延迟)。
通过该修正,ld指令的执行时间成为将所执行的时间与延迟时间相加的执行时间(1+4=5个循环),可根据执行完成的定时t1计算后续的mult指令、add指令的执行时间。
即,通过对修正后的ld指令的执行时间(5个循环)简单地加上在预测模拟执行部113的处理结果(基于预测结果的预测模拟的结果)中求出的mult指令与add指令各自的执行时间(3个循环,3个循环),便能得到该块的执行时间(循环数)。
因此,通过进行基于仅将执行结果与预测不同的指令的执行时间相加或者相减的修正处理,针对其他指令,加上基于预测结果的在模拟时求出的执行时间,便还能高精度地求出高速缓存缺失时的模拟的执行循环数。
图7(D)是为了与模拟装置1的处理进行比较,而表示现有技术的通过单纯的加法来求出高速缓存缺失时的循环数时的误差的大小的图。在图7(D)的情况下,可知由于直接加上ld指令的延迟时间,所以实际上产生了因在ld指令的执行中完成执行的mult指令的执行定时的偏差而引起的误差。
图8是用于对在执行两个高速缓存处理的实例下产生了两个高速缓存缺失时的修正例进行说明的图。
在图8的例子中,执行以下5个指令的模拟。
“ld[r1],r2:[r1]→r2;
ld[r3],r4:[r3]→r4;
multr5,r6,r7:r5*r6→r7;
addr2,r4,r2:r2+r4→r2;
addr2,r7,r2:r2+r7→r2”
图8(A)是表示两个高速缓存处理中的预测结果为“高速缓存命中”时的指令执行定时的图例的图。在该预测实例下,两个ld指令被隔开2个循环量(通常的1个循环+附加的1个循环)来执行。
图8(B)是表示两个高速缓存处理两方是与预测结果不同的“高速缓存缺失”时的指令执行定时的图例的图。在该预测错误的实例下,两个ld指令各自中为高速缓存缺失,产生惩罚循环(6个循环)量的延迟。但是,两个ld指令的延迟时间是重叠的时间,mult指令也不受延迟的影响地被执行,两个add指令的执行延迟到第2个ld指令的完成。
图8(C)是表示由修正部123修正后的指令执行时间图的例子的图。
如使用图7说明那样,修正部123在定时t0修正第1个ld指令的延迟时间,返回辅助函数cache_ld(addr,3,-1)。
接下来,在当前定时t1,由于第2个ld指令的执行结果为高速缓存缺失(预测结果的错误),所以修正部123对该ld指令的剩余的执行时间加上惩罚循环(6),成为有效延迟时间(1+6=7个循环)。
修正部123从有效延迟时间减去在当前定时t1之前消耗的延迟时间(<当前定时t1-前指令的执行定时t0>-所设定的间隔),求出从当前定时t1超过的有效延迟时间(7-(6-2)=3个循环),将该超过的有效延迟时间作为第2个ld指令的执行时间。
并且,修正部123从超过的有效延迟时间减去本来的执行时间(3-1=2个循环),作为前指令的延迟时间。
另外,修正部123从有效延迟时间减去在当前定时t1之前消耗的延迟时间与在当前定时t1超过的有效延迟时间的合计(7-(3+3)=1个循环),作为延期时间。
修正部123在定时t1修正了第2个ld指令的延迟时间后,返回辅助函数cache_ld(addr,1,2)。
通过该修正,对当前定时t1附加了修正值(3个循环)的定时成为ld指令的执行完成的定时,从该定时起不断加上以后的mult指令、add指令的执行时间。
图8(D)是为了与模拟装置1的处理进行比较,而表示现有技术的通过单纯的加法求出高速缓存缺失时的循环数时的误差的大小的图。在图8(D)的情况下,可知由于直接加上对两个ld指令分别赋予的基于惩罚的延迟时间,所以产生了大的误差(9个循环)。可知在图8(C)所示的修正部123的处理中,与图8(B)所示那样准确地模拟的情况相比,也存在误差(1个循环),但与以往手法相比,非常高精度地求出。
图9是用于对在执行两个高速缓存处理的实例下产生了一个高速缓存缺失时的修正例进行说明的图。在图9的例子中,执行与图8中表示的说明例同样的5个指令的模拟。
图9(A)是表示两个高速缓存处理中的预测结果为“高速缓存命中”时的指令执行定时的图例的图。在该预测实例下,与图8(A)的情况同样,两个ld指令被隔开2个循环量(通常的1个循环+附加的1个循环)而执行。
图9(B)是表示第1个ld指令为与预测结果不同的“高速缓存缺失”,第2个ld指令的结果为预测结果(高速缓存命中)时的指令执行定时的图例的图。在该预测错误的实例下,两个ld指令分别产生惩罚循环(6个循环)量的延迟。但是,两个ld指令的延迟时间是重叠的时间,mult指令也不受延迟的影响地被执行,两个add指令的执行延迟到第2个ld指令的完成。
图9(C)是表示由修正部123修正后的指令执行时间图的例子的图。
如使用图7说明那样,修正部123在定时t0修正第1个ld指令的延迟时间,返回辅助函数cache_ld(addr,3,-1)。
接下来,在当前定时t1,由于第2个ld指令的执行结果为高速缓存命中(预测结果),所以修正部123判断从该ld指令的执行开始到当前定时t1的时间<t1-t0-所设定的间隔(6-0-2=4个循环)>是否大于该ld指令的执行时间(2个循环)。
由于从第2个ld指令的执行开始到当前定时t1的时间大于该ld指令的执行时间(2个循环),所以修正部123将当前定时t1设为接下来的mult指令的执行定时。
而且,修正部123将从第2个ld指令的执行完成到当前定时t1的时间(2个循环)处理成针对下一指令的延迟时间,设为前指令的延迟时间pre_delay=2。另外,修正部123从第1个ld指令的有效延迟时间减去在当前定时t1之前消耗的延迟时间与在当前定时t1超过的有效延迟时间的合计(7-(6+0)=1个循环),作为延期时间rep_delay=1,并返回辅助函数cache_ld(addr,1,2)。
图9(D)是为了与模拟装置1的处理进行比较,而表示现有技术的通过单纯的加法求出高速缓存缺失时的循环数时的误差的大小的图。在图9(D)的情况下,可知由于直接加上了第1个ld指令的因惩罚引起的延迟时间,所以产生了误差。
图10是模拟装置1的代码变换部11的概要处理流程图。
在模拟装置1中,代码变换部11的块分割部111将目标程序的代码(目标指令)分割成规定单位的块并输入(步骤S1)。
预测模拟执行部113对块的指令进行分析,来检测外部依赖指令(步骤S2),针对检测出的所有指令,根据预测信息4来决定概率高的执行结果作为预测实例(步骤S3)。
并且,预测模拟执行部113参照定时信息3,针对块的各指令执行以设定为预测结果的执行结果为前提的性能模拟(步骤S4)。
代码生成部115根据模拟结果,来生成模拟执行部12执行的性能模拟用主代码(步骤S5)。
通过以上的步骤S1~S5的处理,输出对所设定的执行结果的情况(预测实例)下的功能代码编入了模拟目标CPU的性能的代码的主代码。
图11是模拟装置1的模拟执行部12的概要处理流程图。
在模拟装置1中,模拟执行部12的代码执行部121执行代码生成部115生成的主代码,进行性能模拟(步骤S10)。若在执行中检测出外部依赖指令(步骤S11),则代码执行部121判定该指令的执行结果与被设定为预测结果的内容是否相同(步骤S12)。仅在外部依赖指令的执行结果与所设定的预测结果不相同的情况下(步骤S12的“否”),调出修正部123,修正部123对该外部依赖指令的执行时间进行修正(步骤S13)。
然后,模拟信息收集部13输出与目标程序相当的主代码所有的模拟处理的模拟信息5(步骤S14)。
通过以上的步骤S10~S14的处理步骤,输出执行目标程序2的目标CPU的模拟信息(循环模拟信息)5。
图12是作为外部依赖指令的一个例子,表示加载(ld)指令的处理的预测结果的判定以及修正的处理流程例的图。
当从处理中的块的指令检测出外部依赖指令后,代码执行部121调出与修正部123相当的辅助函数(步骤S20)。
代码执行部121判定在ld指令中是否要求了高速缓存访问(步骤S21),如果要求了高速缓存访问(步骤S21的“是”),则模拟高速缓存访问(步骤S22)。如果高速缓存访问的结果是“高速缓存缺失”(步骤S23的“缺失”),则修正部123ld进行指令的执行时间(循环数)的修正(步骤S24),输出修正后的执行时间(循环数)(步骤S25)。
当在步骤S21中未要求高速缓存访问时(步骤S21的“否”),或者所要求的高速缓存访问是“高速缓存命中”(步骤S23的“命中”),则修正部123输出未修正的所预测的执行时间(循环数)(步骤S26)。
图13是表示其他实施方式中的模拟装置1的构成例的图。
模拟装置1在图1所示的构成例中还具备电力模拟信息生成部15。
电力模拟信息生成部15是获得电力信息6,根据模拟信息收集部13输出的模拟信息5,来计算块执行时的消耗电力,作为电力模拟信息7进行输出的处理部。
图14是表示将电力模拟信息生成部15作为编入到性能模拟用的主代码的函数(电力模拟函数)实施时的例子的图。
作为电力信息6,LD指令、MULT指令、ADD指令执行1次的消耗电力分别被设定为4u[W]、0.5u[W]、0.3u[W]。
电力模拟函数Host_Inst_A-C_power基于在模拟中执行了的各指令的执行次数,来计算电力。
接下来,对模拟装置1的硬件构成例进行说明。
模拟装置1能够由具有运算装置(CPU)、暂时存储装置(DRAM、闪存等)、永久性存储装置(HDD、闪存等)、以及与网络N的网络接口的计算机PC、输入装置(键盘、鼠标等)和输出装置(显示器、打印机等)实施。
另外,模拟装置1能够通过计算机PC可执行的程序来实施。该情况下,可提供记述有模拟装置1应该具有的功能的处理内容的程序。通过由计算机PC执行所提供的程序,可在计算机PC上实现上述说明的模拟装置1的处理功能。
此外,计算机PC也可以从移动式记录介质直接读取程序,按照该程序执行处理。另外,计算机PC也可以在被服务器计算机传输程序时,依次按照接收到的程序执行处理。
并且,该程序可以预先记录在计算机PC可读取的记录介质中。
如以上说明那样,根据模拟装置1,能够高速进行对流水线处理进行控制的CPU的指令执行的性能模拟。
对模拟装置1而言,在如JIT编译器方式那样目标CPU的程序的代码变换处理中,代码变换部11按分割后的每个块对预测了外部依赖指令的执行结果时(预测实例)的执行,进行功能模拟,根据定时信息3将各指令的执行时间常量化。
在模拟装置1的代码变换部11中,取代将用于获得预测实例以外的执行的性能模拟信息(循环模拟信息)的模拟执行代码编入到主代码,而编入预测实例下的进行指令的执行时间的修正处理的代码。
另外,在模拟装置1的模拟执行部12中,针对预测实例时的指令执行性能模拟,取代预测外实例下的模拟,而使用针对该指令的延迟时间、前后执行的指令的执行时间等,来修正预测实例下的执行时间,获得外部依赖指令的执行时间。
因此,与以往相比,能够减少对功能代码追加的模拟用代码量,能够在抑制性能模拟处理的负担增大的同时,高速地进行模拟。
另外,在模拟装置1中,通过以预测实例为前提进行功能模拟,由此通过静态分析处理获得一个实例(预测实例)下的各指令的执行时间,通过将预测实例下的执行时间与惩罚时间、前后执行的指令的执行时间、之前的指令的延迟时间等相加或者相减来修正预测实例以外的实例下的指令的执行时间。
根据模拟装置1,能够高速实时包括CPU的系统的性能、电力的模拟,能够容易地进行以往难以在现实中执行的大规模的系统整体的性能、电力的评价与解析、预测等。
并且,根据模拟装置1,能够根据电力信息与性能模拟信息来高速且高精度地进行程序的消耗电力模拟。
因此,起到不需要进行各实例下的性能模拟,便能够在抑制性能模拟处理的负担增大的同时,高精度地进行模拟这一效果。
附图标记说明:
1-模拟装置;11-代码变换部;111-块分割部;113-预测模拟执行部;115-代码生成部;12-模拟执行部;121-代码执行部;123-修正部;13-模拟信息收集部;15-电力模拟信息生成部;2-目标程序;3-定时信息;4-预测信息;5-模拟信息;6-电力信息;7-电力模拟信息。
Claims (4)
1.一种模拟装置,对控制流水线处理的目标处理器执行程序的指令执行的模拟,其特征在于,
具备代码变换部和模拟执行部,
上述代码变换部进行下述三个处理:
将上述程序的代码分割成规定的块,并将上述块中所含的指令中的指令的执行结果依赖于外部环境的外部依赖指令的处理的执行结果设定为预测结果;
进行以上述预测结果为前提的指令执行的功能模拟,获得对上述块中所含的指令的执行定时进行表示的定时信息,根据上述功能模拟的结果与上述定时信息,来计算上述预测结果中的外部依赖指令的执行时间;和
根据上述功能模拟的结果,生成使主处理器执行以上述预测结果为前提的指令执行的性能模拟的主代码,其中,上述主处理器是使上述目标处理器动作的主处理器,
当在上述主处理器执行了上述生成出的主代码后的执行结果中,该主代码所含的外部依赖指令的执行结果与上述预测结果不同时,上述模拟执行部以利用该外部依赖指令的规定的延迟时间和在上述外部依赖指令的前后执行的指令的执行时间而求出的修正值,来修正上述预测结果中的外部依赖指令的执行时间,作为上述功能模拟中的该外部依赖指令的执行时间。
2.根据权利要求1所述的模拟装置,其特征在于,
在上述外部依赖指令之后下一个被执行的下一指令的执行时间没有超过对上述外部依赖指令附加的延迟时间时,上述模拟执行部进行将上述下一指令的执行时间作为上述修正值而从上述外部依赖指令的延迟时间减去的处理。
3.根据权利要求1或2所述的模拟装置,其特征在于,
具备电力模拟信息生成部,上述电力模拟信息生成部获得决定了上述主代码的指令集的各指令的每执行一次的消耗电力量的电力信息,根据上述电力信息与上述功能模拟的结果,来求出上述块的执行时的电力模拟信息。
4.一种模拟方法,对控制流水线处理的目标处理器执行程序的指令执行的模拟,其特征在于,由主CPU执行下述处理过程:
将上述程序的代码分割成规定的块,并将上述块中所含的指令中的指令的执行结果依赖于外部环境的外部依赖指令的处理的执行结果设定为预测结果;
进行以上述预测结果为前提的指令执行的功能模拟,获得对上述块中所含的指令的执行定时进行表示的定时信息,根据上述功能模拟的结果与上述定时信息,来计算上述预测结果中的外部依赖指令的执行时间;
根据上述功能模拟的结果,生成使主处理器执行以上述预测结果为前提的指令执行的性能模拟的主代码,其中,上述主处理器是使上述目标处理器动作的主处理器;
当在上述主处理器执行了上述生成出的主代码后的执行结果中,该主代码所含的外部依赖指令的执行结果与上述预测结果不同时,以利用该外部依赖指令的规定的延迟时间和在上述外部依赖指令的前后执行的指令的执行时间而求出的修正值,来修正上述预测结果中的外部依赖指令的执行时间,作为上述功能模拟中的该外部依赖指令的执行时间。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/067866 WO2012049728A1 (ja) | 2010-10-12 | 2010-10-12 | シミュレーション装置,方法,およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103154890A CN103154890A (zh) | 2013-06-12 |
CN103154890B true CN103154890B (zh) | 2016-04-13 |
Family
ID=45937980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080069496.8A Active CN103154890B (zh) | 2010-10-12 | 2010-10-12 | 模拟装置、方法以及程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9207916B2 (zh) |
EP (1) | EP2629197B1 (zh) |
JP (1) | JP5278624B2 (zh) |
CN (1) | CN103154890B (zh) |
WO (1) | WO2012049728A1 (zh) |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2011226928A1 (en) | 2010-10-06 | 2012-04-26 | Aristocrat Technologies Australia Pty Limited | A gaming system and a method of gaming |
JP5961971B2 (ja) * | 2011-10-12 | 2016-08-03 | 富士通株式会社 | シミュレーション装置,方法,およびプログラム |
US20140089645A1 (en) * | 2012-09-27 | 2014-03-27 | Texas Instruments Incorporated | Processor with execution unit interoperation |
JP6064765B2 (ja) * | 2013-04-18 | 2017-01-25 | 富士通株式会社 | シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム |
JP6264844B2 (ja) * | 2013-11-01 | 2018-01-24 | 富士通株式会社 | シミュレーション方法、シミュレーションプログラム、およびシミュレーション装置 |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9830193B1 (en) | 2014-09-30 | 2017-11-28 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US10048974B1 (en) | 2014-09-30 | 2018-08-14 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US9323556B2 (en) | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US9715402B2 (en) | 2014-09-30 | 2017-07-25 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US9537788B2 (en) | 2014-12-05 | 2017-01-03 | Amazon Technologies, Inc. | Automatic determination of resource sizing |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9785476B2 (en) | 2015-04-08 | 2017-10-10 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
US9930103B2 (en) | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
US9811434B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US10754701B1 (en) | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
JP6740607B2 (ja) | 2015-12-18 | 2020-08-19 | 富士通株式会社 | シミュレーションプログラム、情報処理装置、シミュレーション方法 |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
US10067801B1 (en) | 2015-12-21 | 2018-09-04 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US10282229B2 (en) * | 2016-06-28 | 2019-05-07 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US10277708B2 (en) | 2016-06-30 | 2019-04-30 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10203990B2 (en) | 2016-06-30 | 2019-02-12 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10884787B1 (en) | 2016-09-23 | 2021-01-05 | Amazon Technologies, Inc. | Execution guarantees in an on-demand network code execution system |
US10061613B1 (en) | 2016-09-23 | 2018-08-28 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US11119813B1 (en) | 2016-09-30 | 2021-09-14 | Amazon Technologies, Inc. | Mapreduce implementation using an on-demand network code execution system |
CN111295658B (zh) * | 2017-11-10 | 2023-05-09 | 三菱电机株式会社 | 模拟装置、模拟方法和计算机能读取的存储介质 |
US10564946B1 (en) | 2017-12-13 | 2020-02-18 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10831898B1 (en) | 2018-02-05 | 2020-11-10 | Amazon Technologies, Inc. | Detecting privilege escalations in code including cross-service calls |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10353678B1 (en) | 2018-02-05 | 2019-07-16 | Amazon Technologies, Inc. | Detecting code characteristic alterations due to cross-service calls |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10776091B1 (en) | 2018-02-26 | 2020-09-15 | Amazon Technologies, Inc. | Logging endpoint in an on-demand code execution system |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US10649749B1 (en) | 2018-06-26 | 2020-05-12 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
JP7045458B2 (ja) * | 2018-07-19 | 2022-03-31 | 日立Astemo株式会社 | シミュレーション装置、及びその方法、並びにecu装置 |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US10706193B1 (en) * | 2018-12-04 | 2020-07-07 | Xilinx, Inc. | Computer processing during simulation of a circuit design |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US11023416B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Data access control system for object storage service based on owner-defined code |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11023311B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US10942795B1 (en) | 2019-11-27 | 2021-03-09 | Amazon Technologies, Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
CN111324948B (zh) * | 2020-02-10 | 2023-04-25 | 上海兆芯集成电路有限公司 | 模拟方法及模拟系统 |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11775640B1 (en) | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Resource utilization-based malicious task detection in an on-demand code execution system |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101044457A (zh) * | 2004-09-28 | 2007-09-26 | 英特尔公司 | 用于依赖性链处理的系统、方法和装置 |
CN101799750A (zh) * | 2009-02-11 | 2010-08-11 | 上海芯豪微电子有限公司 | 一种数据处理的方法与装置 |
CN103049307A (zh) * | 2011-10-12 | 2013-04-17 | 富士通株式会社 | 仿真设备和仿真方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3351725B2 (ja) * | 1997-01-08 | 2002-12-03 | 株式会社東芝 | パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体 |
JP2000222245A (ja) * | 1999-01-28 | 2000-08-11 | Toshiba Corp | プログラム実行時間評価装置、ソースプログラム実行時間評価装置、プログラム実行時間評価方法、及びソースプログラム実行時間評価方法 |
US6263302B1 (en) * | 1999-10-29 | 2001-07-17 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating the cache of a target processor |
US6751583B1 (en) * | 1999-10-29 | 2004-06-15 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating a target processor using binary translation |
US7200738B2 (en) * | 2002-04-18 | 2007-04-03 | Micron Technology, Inc. | Reducing data hazards in pipelined processors to provide high processor utilization |
JP2004227204A (ja) * | 2003-01-22 | 2004-08-12 | Hitachi Ltd | 性能予測方法 |
JP4342392B2 (ja) * | 2004-07-06 | 2009-10-14 | Okiセミコンダクタ株式会社 | ソフトウェア検証モデル生成方法 |
JP2008176453A (ja) * | 2007-01-17 | 2008-07-31 | Nec Electronics Corp | シミュレーション装置 |
-
2010
- 2010-10-12 JP JP2012538489A patent/JP5278624B2/ja active Active
- 2010-10-12 WO PCT/JP2010/067866 patent/WO2012049728A1/ja active Application Filing
- 2010-10-12 CN CN201080069496.8A patent/CN103154890B/zh active Active
- 2010-10-12 EP EP10858384.0A patent/EP2629197B1/en active Active
-
2013
- 2013-04-09 US US13/858,993 patent/US9207916B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101044457A (zh) * | 2004-09-28 | 2007-09-26 | 英特尔公司 | 用于依赖性链处理的系统、方法和装置 |
CN101799750A (zh) * | 2009-02-11 | 2010-08-11 | 上海芯豪微电子有限公司 | 一种数据处理的方法与装置 |
CN103049307A (zh) * | 2011-10-12 | 2013-04-17 | 富士通株式会社 | 仿真设备和仿真方法 |
Non-Patent Citations (1)
Title |
---|
一种嵌入式系统的快速周期仿真方法;池敦;《情报处理学会研究报告》;20110318;全文 * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2012049728A1 (ja) | 2014-02-24 |
US20130227534A1 (en) | 2013-08-29 |
CN103154890A (zh) | 2013-06-12 |
EP2629197A1 (en) | 2013-08-21 |
EP2629197A4 (en) | 2017-12-13 |
WO2012049728A1 (ja) | 2012-04-19 |
US9207916B2 (en) | 2015-12-08 |
JP5278624B2 (ja) | 2013-09-04 |
EP2629197B1 (en) | 2019-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103154890B (zh) | 模拟装置、方法以及程序 | |
KR101332499B1 (ko) | 시뮬레이션 장치, 방법, 및 기록 매체 | |
Guerreiro et al. | GPGPU power modeling for multi-domain voltage-frequency scaling | |
Suh et al. | Analytical cache models with applications to cache partitioning | |
JP5510543B2 (ja) | 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム | |
US5347647A (en) | Method of predicting the performance of an emulated computer system | |
Wang et al. | Fast and accurate cache modeling in source-level simulation of embedded software | |
US20140316761A1 (en) | Simulation apparatus and storage medium | |
JPH1196130A (ja) | マルチプロセッシングシステムの性能評価方法および装置並びにマルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体 | |
JP5817324B2 (ja) | 補正装置、補正方法、および補正プログラム | |
Mutlu et al. | Understanding the effects of wrong-path memory references on processor performance | |
Mittal et al. | Integrating sampling approach with full system simulation: Bringing together the best of both | |
Tompazi et al. | Instruction-aware learning-based timing error models through significance-driven approximations | |
JP6740607B2 (ja) | シミュレーションプログラム、情報処理装置、シミュレーション方法 | |
Powell et al. | Using continuous statistical machine learning to enable high-speed performance prediction in hybrid instruction-/cycle-accurate instruction set simulators | |
Prakash et al. | Modelling communication overhead for accessing local memories in hardware accelerators | |
US20220187867A1 (en) | Accurate timestamp or derived counter value generation on a complex cpu | |
JP5390464B2 (ja) | シミュレーション装置、シミュレーション装置の制御方法およびプログラム | |
Oni et al. | Fine-Grained Overhead Analysis Utilizing Atomic Instructions for Cross-ISA Dynamic Binary Translation on Multicore Processor | |
US20150127318A1 (en) | Apparatus and method for simulating an operation of an out-of-order processor | |
JP2000242529A (ja) | プログラム開発支援装置および開発支援システムおよび記録媒体 | |
Byun et al. | Processor energy estimation method using cycle-approximate simulator | |
JP2004227204A (ja) | 性能予測方法 | |
JP2016139332A (ja) | 検証支援方法、検証支援プログラム、および検証支援装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |