数据处理方法、装置、设备、可读存储介质及程序产品与流程

文档序号:32393541发布日期:2022-11-30 09:18阅读:60来源:国知局
数据处理方法、装置、设备、可读存储介质及程序产品与流程

1.本技术涉及计算机技术领域,具体而言,本技术涉及一种数据处理方法、装置、设备、可读存储介质及程序产品。


背景技术:

2.二进制翻译(binary translation)是一种翻译二进制程序的技术,二进制翻译能够将一种处理器上运行的二进制程序翻译到另一种处理器上执行。二进制翻译可分为动态二进制翻译和静态二进制翻译;动态二进制翻译是程序一边翻译一边运行,即从源程序到目标程序的翻译过程伴随着目标程序的运行过程;静态二进制翻译是目标程序在运行之前就完成大部分翻译,可以直接加载和执行目标程序中已翻译完成的二进制程序。处理器一般带有高速缓存cache,在cache中的指令和数据能获得较高的访问速度。动态二进制翻译中目标程序中的目标代码块虽然存储在cache中,但是目标代码块的缓存命中率较低,出现了执行开销额外增加。


技术实现要素:

3.本技术针对现有的方式的缺点,提出一种数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品,用于解决如何提升目标代码块的缓存命中率的问题。
4.第一方面,本技术提供了一种数据处理方法,包括:
5.获取待翻译数据块的起始地址;
6.基于待翻译数据块的起始地址,确定目标数据块的起始地址,目标数据块为待翻译数据块通过翻译得到的数据块;
7.若基于目标数据块的起始地址,确定预设专用内存中没有存储目标数据块,则将待翻译数据块翻译成目标数据块;
8.将目标数据块存储在预设专用内存中,并在预设专用内存中执行目标数据块。
9.在一个实施例中,基于目标数据块的起始地址,若确定预设专用内存中已存储目标数据块,则在预设专用内存中执行目标数据块。
10.在一个实施例中,基于待翻译数据块的起始地址,确定目标数据块的起始地址,包括:
11.基于待翻译数据块的起始地址,通过控制流图方式,确定目标数据块的起始地址。
12.在一个实施例中,若基于目标数据块的起始地址,确定预设专用内存中没有存储目标数据块,则将待翻译数据块翻译成目标数据块,包括:
13.若目标数据块的起始地址与预设关系表中所有程序地址空间的地址都不相同,则确定预设专用内存中没有存储目标数据块,并将待翻译数据块翻译成目标数据块;预设关系表包括预设专用内存中程序地址空间的地址。
14.在一个实施例中,将目标数据块存储在预设专用内存中,包括:
15.确定目标数据块的程序地址空间的地址;
16.基于目标数据块的程序地址空间的地址,通过预设替换算法,将目标数据块存储在预设专用内存中。
17.在一个实施例中,在预设专用内存中执行目标数据块,包括:
18.恢复目标数据块对应的目标程序的上下文;
19.基于上下文,在预设专用内存中执行目标数据块;目标程序包括目标数据块。
20.第二方面,本技术提供了一种数据处理装置,包括:
21.预设专用内存,用于存储目标数据块;
22.数据处理单元,数据处理单元包括第一处理模块、第二处理模块、第三处理模块和第四处理模块;
23.第一处理模块,用于获取待翻译数据块的起始地址;
24.第二处理模块,用于基于待翻译数据块的起始地址,确定目标数据块的起始地址,目标数据块为待翻译数据块通过翻译得到的数据块;
25.第三处理模块,用于若基于目标数据块的起始地址,确定预设专用内存中没有存储目标数据块,则将待翻译数据块翻译成目标数据块;
26.第四处理模块,用于将目标数据块存储在预设专用内存中,并在预设专用内存中执行目标数据块。
27.在一个实施例中,第三处理模块,还用于:
28.基于目标数据块的起始地址,若确定预设专用内存中已存储目标数据块,则在预设专用内存中执行目标数据块。
29.在一个实施例中,第二处理模块,具体用于:
30.基于待翻译数据块的起始地址,通过控制流图方式,确定目标数据块的起始地址。
31.在一个实施例中,第三处理模块,具体用于:
32.若目标数据块的起始地址与预设关系表中所有程序地址空间的地址都不相同,则确定预设专用内存中没有存储目标数据块,并将待翻译数据块翻译成目标数据块;预设关系表包括预设专用内存中程序地址空间的地址。
33.在一个实施例中,第四处理模块,具体用于:
34.确定目标数据块的程序地址空间的地址;
35.基于目标数据块的程序地址空间的地址,通过预设替换算法,将目标数据块存储在预设专用内存中。
36.在一个实施例中,第四处理模块,具体用于:
37.恢复目标数据块对应的目标程序的上下文;
38.基于上下文,在预设专用内存中执行目标数据块;目标程序包括目标数据块。
39.第三方面,本技术提供了一种电子设备,包括:处理器、存储器和总线;
40.总线,用于连接处理器和存储器;
41.存储器,用于存储操作指令;
42.处理器,用于通过调用操作指令,执行本技术第一方面的数据处理方法。
43.第四方面,本技术提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被用于执行本技术第一方面的数据处理方法。
44.第五方面,本技术提供了一种计算机程序产品,包括计算机程序,计算机程序被处
理器执行时实现本技术第一方面中数据处理方法的步骤。
45.本技术实施例提供的技术方案,至少具有如下有益效果:
46.获取待翻译数据块的起始地址;基于待翻译数据块的起始地址,确定目标数据块的起始地址,目标数据块为待翻译数据块通过翻译得到的数据块;若基于目标数据块的起始地址,确定预设专用内存中没有存储目标数据块,则将待翻译数据块翻译成目标数据块;将目标数据块存储在预设专用内存中,并在预设专用内存中执行目标数据块;如此,基于预设专用内存,进行动态二进制翻译,提升了动态二进制翻译中目标数据块(例如目标代码块)的缓存命中率。
附图说明
47.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
48.图1为函数体、函数的开始边界地址和函数的结束边界地址的示意图;
49.图2为动态二进制翻译的示意图;
50.图3为本技术实施例提供的数据处理系统的架构示意图;
51.图4为本技术实施例提供的一种数据处理方法的流程示意图;
52.图5为本技术实施例提供的另一种数据处理方法的流程示意图;
53.图6为本技术实施例提供的一种数据处理装置的结构示意图;
54.图7为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
55.下面结合本技术中的附图描述本技术的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本技术实施例的技术方案的示例性描述,对本技术实施例的技术方案不构成限制。
56.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“a和/或b”指示实现为“a”,或者实现为“b”,或者实现为“a和b”。
57.可以理解的是,在本技术的具体实施方式中,涉及到数据处理相关的数据,当本技术以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
58.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
59.本技术实施例是数据处理系统提供的一种数据处理方法,该数据处理方法涉及二
进制翻译等领域。
60.为了更好的理解及说明本技术实施例的方案,下面对本技术实施例中所涉及到的一些技术用语进行简单说明。
61.函数体、函数的开始边界地址和函数的结束边界地址:例如,一段riscv64的elf二进制文件反汇编代码,该片段反汇编了.text资源,在.text代码段中有main函数;如图1所示,main函数的函数体从第8行到第22行,第8行和第22行分别为main函数的开始边界和main函数的结束边界,即main函数的开始边界地址为0,main函数的结束边界地址为38。
62.动态二进制翻译:如图2所示,应用程序二进制文件(application binary)被送入二进制翻译引擎中(binary translation engine),二进制翻译引擎不断转换程序的机器代码,并把结果代码块写入翻译完成缓存(translated code cache)中;其中,应用程序二进制文件为源程序,源程序可以包括多个源代码块,二进制翻译引擎为翻译程序,结果代码块为目标代码块。
63.程序内存布局:程序内存布局(program memory layout)是操作系统(operating system)及其加载器(loader)确定的程序在内存中的结构信息;程序根据该结构信息被加载到内存中。
64.控制流图:cfg(control-flow graph,控制流图)是程序控制流图,cfg是计算机科学中的表示法,cfg利用数学中图的表示方式,标示计算机程序执行过程中所经过的所有路径。
65.本技术实施例提供的方案涉及数据处理技术,下面以具体的实施例对本技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
66.为了更好的理解本技术实施例提供的方案,下面结合具体的一个应用场景对该方案进行说明。
67.在一个实施例中,图3中示出了本技术实施例所适用的一种数据处理系统的架构示意图,可以理解的是,本技术实施例所提供的数据处理方法可以适用于但不限于应用于如图3所示的应用场景中。
68.本示例中,如图3所示,该示例中的数据处理系统处于处理器中,数据处理系统的架构可以包括但不限于处理器内核(cpu core)、高速缓存(cache)、主存(main memory)、专用内存(application specific memory,asm)和总线(bus)。cpu core、cache、main memory和asm之间可以通过bus通信。cpu core可以不直接访问main memory,通过cache访问main memory。asm可以是暂存存储器(scratch-pad memory),asm可以是sram类型,作为asm的sram可以为物理处理器集成电路的一部分。asm具有与cache相似的访问速度,但是asm属于异构缓存(heterogenous cache)。存储技术的典型访问时间如表1所示:
69.表1:存储技术的典型访问时间
70.存储技术典型访问时间cache~3nsmain memory(dram)~100nsscratch-pad memory~3ns
71.其中,cpu访问cache速度约3ns(nanosecond,纳秒),cpu访问main memory约
100ns,cpu访问为嵌入式环境设计的片上sram(on-chip sram,即scratch-pad memory)约3ns。
72.现代计算机是多层次存储系统。从存储器速度上分析,若对计算机系统做少许改进,增加asm用于减少缓存失效,能够显著增加程序代码的执行速度。asm可以是scratch-pad memory,scratch-pad memory是指位于片上的数据存储器,scratch-pad memory映射到与main memory不相交的地址空间,但连接到相同的地址和数据总线。scratch-pad memory和cache的主要区别在于,scratch-pad memory简单的保证单周期访问时间;相对的,对cache的访问会受到系统设计的规则约束较多,例如,访问时间受到强制访问规则、缓存容量、访问冲突未命中等因素的影响。
73.asm映射到处理器物理地址空间中的连续区域,需要某种形式的地址转换才能让程序代码透明地使用。在实际应用中,asm地址转换可以由软件执行,asm地址转换也可以由硬件辅助,例如将asm的物理地址空间的地址转换成asm的程序地址空间的地址。
74.可理解,上述仅为一种示例,本实施例在此不作限定。
75.参见图4,图4示出了本技术实施例提供的一种数据处理方法的流程示意图,其中,该方法可以由任一电子设备执行,如可以是服务器或终端,作为一可选实施方式,该方法可以由服务器或终端执行,为了描述方便,在下文的一些可选实施例的描述中,将以服务器或终端作为该方法执行主体为例进行说明。如图4所示,本技术实施例提供的数据处理方法包括如下步骤:
76.s401,获取待翻译数据块的起始地址。
77.具体地,待翻译数据块可以是待翻译指令块;待翻译数据块可以是源程序中的代码块,即待翻译数据块可以是源代码块;源程序可以是被翻译的二进制程序;其中,代码块例如图1中所示的main函数,该代码块的函数体从第8行到第22行,第8行为该代码块的开始边界,第22行为该代码块的结束边界,即该代码块的开始边界地址为0,该代码块的结束边界地址为38。待翻译数据块的起始地址可以是待翻译数据块的开始边界地址,例如图1中所示的第8行,即待翻译数据块的起始地址为0。
78.s402,基于待翻译数据块的起始地址,确定目标数据块的起始地址,目标数据块为待翻译数据块通过翻译得到的数据块。
79.具体地,目标数据块可以是目标程序中的代码块,即目标数据块可以是目标代码块;目标程序可以是翻译完成的二进制程序,即目标程序为源程序通过翻译得到的二进制程序。目标数据块的起始地址可以是目标数据块的开始边界地址。
80.s403,若基于目标数据块的起始地址,确定预设专用内存中没有存储目标数据块,则将待翻译数据块翻译成目标数据块。
81.具体地,预设专用内存asm可以是暂存存储器。例如asm中已经存储10个代码块,以及这10个代码块的程序地址空间的地址;asm与翻译程序中的一个关系表相对应,该关系表包括这10个代码块的程序地址空间的地址,以及这10个代码块分别对应的源代码块的文件地址;目标数据块的起始地址可以为目标数据块的程序地址空间的地址;若目标数据块的程序地址空间的地址和该关系表中某个代码块的程序地址空间的地址相同,则确定目标数据块在asm中,即确定预设专用内存中已经存储了该目标数据块;若目标数据块的程序地址空间的地址和该关系表中所有代码块的程序地址空间的地址都不相同,则确定目标数据块
不在asm中,即确定预设专用内存中没有存储该目标数据块。
82.s404,将目标数据块存储在预设专用内存中,并在预设专用内存中执行目标数据块。
83.具体地,在动态二进制翻译中,若确定预设专用内存中没有存储目标数据块,则将待翻译数据块翻译成目标数据块,并将目标数据块存储在预设专用内存中,从而可以实时的在预设专用内存中执行目标数据块。
84.本技术实施例中,获取待翻译数据块的起始地址;基于待翻译数据块的起始地址,确定目标数据块的起始地址,目标数据块为待翻译数据块通过翻译得到的数据块;若基于目标数据块的起始地址,确定预设专用内存中没有存储目标数据块,则将待翻译数据块翻译成目标数据块;将目标数据块存储在预设专用内存中,并在预设专用内存中执行目标数据块;如此,基于预设专用内存,进行动态二进制翻译,提升了动态二进制翻译中目标数据块(例如目标代码块)的缓存命中率。
85.在一个实施例中,基于目标数据块的起始地址,若确定预设专用内存中已存储目标数据块,则在预设专用内存中执行目标数据块。
86.具体地,例如asm中已经存储10个代码块,以及这10个代码块的程序地址空间的地址;asm与翻译程序中的一个关系表相对应,该关系表包括这10个代码块的程序地址空间的地址,以及这10个代码块分别对应的源代码块的文件地址;目标数据块的起始地址可以为目标数据块的程序地址空间的地址;若目标数据块的程序地址空间的地址和该关系表中某个代码块的程序地址空间的地址相同,则确定目标数据块在asm中,即确定预设专用内存中已经存储了该目标数据块,从而可以实时的在预设专用内存中执行目标数据块。
87.在一个实施例中,基于待翻译数据块的起始地址,确定目标数据块的起始地址,包括:
88.基于待翻译数据块的起始地址,通过控制流图方式,确定目标数据块的起始地址。
89.具体地,基于待翻译数据块的起始地址,以及目标程序的程序内存布局,通过控制流图方式优化布局,确定目标数据块在程序内存布局中的位置,即目标数据块的起始地址。
90.具体地,翻译程序基于待翻译数据块的起始地址,通过cfg,确定目标数据块的起始地址。翻译程序可以是二进制翻译处理程序;翻译程序可以在服务器或终端中,翻译程序也可以在服务器的处理器或终端的处理器中。
91.在一个实施例中,若基于目标数据块的起始地址,确定预设专用内存中没有存储目标数据块,则将待翻译数据块翻译成目标数据块,包括:
92.若目标数据块的起始地址与预设关系表中所有程序地址空间的地址都不相同,则确定预设专用内存中没有存储目标数据块,并将待翻译数据块翻译成目标数据块;预设关系表包括预设专用内存中程序地址空间的地址。
93.具体地,例如asm中已经存储10个代码块,以及这10个代码块的程序地址空间的地址;asm与翻译程序中的一个关系表相对应,该关系表包括这10个代码块的程序地址空间的地址,以及这10个代码块分别对应的源代码块的文件地址;目标数据块的起始地址可以为目标数据块的程序地址空间的地址;若目标数据块的程序地址空间的地址和该关系表中所有代码块的程序地址空间的地址都不相同,则确定目标数据块不在asm中,即确定预设专用内存中没有存储该目标数据块;并通过翻译程序将待翻译数据块翻译成目标数据块;
94.在一个实施例中,将目标数据块存储在预设专用内存中,包括:
95.确定目标数据块的程序地址空间的地址;
96.基于目标数据块的程序地址空间的地址,通过预设替换算法,将目标数据块存储在预设专用内存中。
97.具体地,替换算法可以是代码块级别的fifo(first input first output,先进先出)替换、lru(least recently used,最近最少使用)替换等,替换算法也可以是flush(清空)方式的全部更新等;替换算法容易灵活控制。
98.通过翻译程序,确定目标数据块的程序地址空间的地址;基于目标数据块的程序地址空间的地址,通过替换算法,将专用内存中存储的代码块替换为目标数据块。例如,将专用内存中存储的多个代码块替换为多个目标数据块,基于多个目标数据块中每个目标数据块的程序地址空间的地址,将多个目标数据块进行拼接,得到翻译完成的二进制程序,即目标程序。
99.在一个实施例中,在预设专用内存中执行目标数据块,包括:
100.恢复目标数据块对应的目标程序的上下文;
101.基于上下文,在预设专用内存中执行目标数据块;目标程序包括目标数据块。
102.具体地,通过翻译程序,恢复目标数据块对应的目标程序的上下文,其中,目标程序的上下文可以是目标程序中目标数据块的上下文,目标数据块的上下文可以是执行目标数据块的状态描述。
103.在一个实施例中,在动态二进制翻译中,asm可以由软件显式控制。asm可以由软件显式控制的理由是:由于asm的容量有限,asm的容量可能无法容纳目标程序中全部的目标代码块;可以通过翻译程序管理asm,使需要执行的目标代码块存储在asm中,不需要执行的目标代码块存储在其他位置,其他位置例如主存,从而提升了动态二进制翻译中目标代码块的缓存命中率。
104.例如,目标程序中的一部分目标代码块存储在asm,例如asm的容量为256kb;目标程序中的另一部分目标代码块存储在主存中;当执行目标程序,例如目标程序大小为256mb,若在asm中匹配到正要执行的某目标代码块,则确定该目标代码块命中asm。
105.应用本技术实施例,至少具有如下有益效果:
106.基于专用内存asm,进行动态二进制翻译,提升了动态二进制翻译中目标数据块(例如目标代码块)的缓存命中率。
107.为了更好的理解本技术实施例所提供的方法,下面结合具体应用场景的示例对本技术实施例的方案进行进一步说明。
108.在一个具体应用场景实施例中,例如动态二进制翻译场景,参见图5,示出了一种数据处理方法的处理流程,如图5所示,本技术实施例提供的数据处理方法的处理流程包括如下步骤:
109.s501,定位源代码块的起始地址和目标代码块的起始地址。
110.具体地,通过翻译程序,获取源代码块的起始地址;通过翻译程序,创建程序控制流图cfg;基于源代码块的起始地址,通过cfg,确定目标代码块的起始地址。
111.s502,判断asm中是否已储存目标代码块;若确定asm中没有储存目标代码块,则转到步骤s503处理;若确定asm中已储存目标代码块,则转到步骤s505处理。
112.具体地,例如asm中已经存储10个代码块,以及这10个代码块的程序地址空间的地址;asm与翻译程序中的一个关系表相对应,该关系表包括这10个代码块的程序地址空间的地址,以及这10个代码块分别对应的源代码块的文件地址;目标代码块的起始地址可以为目标代码块的程序地址空间的地址;若目标代码块的程序地址空间的地址和该关系表中某个代码块的程序地址空间的地址相同,则确定目标代码块在asm中,即确定asm中已经存储了该目标代码块;若目标代码块的程序地址空间的地址和该关系表中所有代码块的程序地址空间的地址都不相同,则确定目标代码块不在asm中。
113.s503,将源代码块翻译成目标代码块。
114.具体地,通过翻译程序,将源代码块翻译成目标代码块。
115.s504,链接目标代码块,并刷新asm。
116.具体地,通过翻译程序,确定目标代码块的程序地址空间的地址;基于目标代码块的程序地址空间的地址,通过替换算法,将asm中存储的代码块替换(刷新)为目标代码块。例如,将asm中存储的多个代码块替换(刷新)为多个目标代码块,基于多个目标代码块中每个目标代码块的程序地址空间的地址,将多个目标代码块进行拼接(链接),得到翻译完成的二进制程序,即目标程序。
117.s505,恢复目标代码块对应的目标程序的上下文。
118.具体地,当目标程序暂停时,上下文被保存;恢复上下文后,目标程序继续从原先暂停位置开始执行。例如,若目标代码块没有存储在asm中,则可以暂停目标程序执行,通过翻译程序将源代码块翻译成目标代码块,并将目标代码块写入到asm中,再恢复目标程序的上下文,以执行目标代码块。
119.s506,执行目标代码块。
120.具体地,在asm中执行目标代码块。
121.s507,保存目标代码块对应的目标程序的上下文;转到步骤s501处理。
122.具体地,在执行完目标代码块后,保存目标代码块对应的目标程序的上下文,转到步骤s501,定位新的源代码块的起始地址和新的目标代码块的起始地址。
123.应用本技术实施例,至少具有如下有益效果:
124.基于asm,进行动态二进制翻译,提升了动态二进制翻译中目标代码块的缓存命中率。
125.申请实施例还提供了一种数据处理装置,该数据处理装置的结构示意图如图6所示,数据处理装置60,包括预设专用内存601和数据处理单元602。
126.预设专用内存601,用于存储目标数据块;
127.数据处理单元602包括第一处理模块6021、第二处理模块6022、第三处理模块6023和第四处理模块6024;
128.第一处理模块6021,用于获取待翻译数据块的起始地址;
129.第二处理模块6022,用于基于待翻译数据块的起始地址,确定目标数据块的起始地址,目标数据块为待翻译数据块通过翻译得到的数据块;
130.第三处理模块6023,用于若基于目标数据块的起始地址,确定预设专用内存中没有存储目标数据块,则将待翻译数据块翻译成目标数据块;
131.第四处理模块6024,用于将目标数据块存储在预设专用内存中,并在预设专用内
industry standard architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
149.存储器4003可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
150.存储器4003用于存储执行本技术实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
151.其中,电子设备包括但不限于:服务器、终端等。
152.应用本技术实施例,至少具有如下有益效果:
153.获取待翻译数据块的起始地址;基于待翻译数据块的起始地址,确定目标数据块的起始地址,目标数据块为待翻译数据块通过翻译得到的数据块;若基于目标数据块的起始地址,确定预设专用内存中没有存储目标数据块,则将待翻译数据块翻译成目标数据块;将目标数据块存储在预设专用内存中,并在预设专用内存中执行目标数据块;如此,基于预设专用内存,进行动态二进制翻译,提升了动态二进制翻译中目标数据块(例如目标代码块)的缓存命中率。
154.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
155.本技术实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
156.基于与本技术实施例提供的方法相同的原理,本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述本技术任一可选实施例中提供的方法。
157.应该理解的是,虽然本技术实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本技术实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本技术实施例对此不限制。
158.以上所述仅是本技术部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的方案技术构思的前提下,采用基于本技术技术思
想的其他类似实施手段,同样属于本技术实施例的保护范畴。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1