[发明专利]数据处理方法、装置、设备、可读存储介质及程序产品在审
申请号: | 202210980932.1 | 申请日: | 2022-08-16 |
公开(公告)号: | CN115309408A | 公开(公告)日: | 2022-11-08 |
发明(设计)人: | 王一;周宇虹;龚力;戴卫斌 | 申请(专利权)人: | 北京奕斯伟计算技术股份有限公司 |
主分类号: | G06F8/52 | 分类号: | G06F8/52 |
代理公司: | 北京市立方律师事务所 11330 | 代理人: | 张筱宁 |
地址: | 100176 北京市北京经济技*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 设备 可读 存储 介质 程序 产品 | ||
本申请实施例提供了一种数据处理方法、装置、设备、可读存储介质及程序产品,该方法包括:获取第一待翻译数据块;基于第一待翻译数据块,确定第一目标数据块对应的第一散列值,第一目标数据块为第一待翻译数据块通过翻译得到的数据块;基于第一散列值,从预设数据关系表中得到第一目标数据块;将第一目标数据块进行重定位处理,得到重定位处理后的第一目标数据块,并执行重定位处理后的第一目标数据块;如此,实现了静态二进制翻译,以及静态二进制翻译中第一目标数据块的重定位处理,提升了重定位处理后的第一目标数据块的执行效率。
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种数据处理方法、装置、设备、可读存储介质及程序产品。
背景技术
二进制翻译(Binary Translation)是一种翻译二进制程序的技术,二进制翻译能够将一种处理器上运行的二进制程序翻译到另一种处理器上执行。二进制翻译可分为动态二进制翻译和静态二进制翻译;动态二进制翻译是程序一边翻译一边运行,即从源程序到目标程序的翻译过程伴随着目标程序的运行过程;静态二进制翻译是目标程序在运行之前就完成大部分翻译,可以直接加载和执行目标程序中已翻译完成的二进制程序。现有技术中实现静态二进制翻译较为困难,静态二进制翻译中已翻译完成的二进制程序的执行效率不高。
发明内容
本申请针对现有的方式的缺点,提出一种数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品,用于解决如何提高静态二进制翻译中已翻译完成的二进制程序的执行效率的问题。
第一方面,本申请提供了一种数据处理方法,包括:
获取第一待翻译数据块;
基于第一待翻译数据块,确定第一目标数据块对应的第一散列值,第一目标数据块为第一待翻译数据块通过翻译得到的数据块;
基于第一散列值,从预设数据关系表中得到第一目标数据块;
将第一目标数据块进行重定位处理,得到重定位处理后的第一目标数据块,并执行重定位处理后的第一目标数据块。
在一个实施例中,在获取第一待翻译数据块之前,还包括:
获取待翻译数据块集合,待翻译数据块集合包括第一待翻译数据块;
确定待翻译数据块集合中每个待翻译数据块的函数边界地址;
基于每个待翻译数据块的函数边界地址,确定每个待翻译数据块的函数体;
将每个待翻译数据块的函数体进行翻译,得到每个待翻译数据块对应的第二目标数据块;
确定每个待翻译数据块对应的第二目标数据块的第二散列值,并将每个待翻译数据块对应的第二目标数据块和每个待翻译数据块对应的第二目标数据块的第二散列值存储在预设数据关系表中。
在一个实施例中,基于第一待翻译数据块,确定第一目标数据块对应的第一散列值,包括:
基于第一待翻译数据块的函数边界地址和第一待翻译数据块的数据块容量,通过预设散列函数,确定第一目标数据块对应的第一散列值。
在一个实施例中,基于第一散列值,从预设数据关系表中得到第一目标数据块,包括:
若第一散列值和预设数据关系表中任一第二散列值相等,则将任一第二散列值对应的第二目标数据块确定为第一目标数据块。
在一个实施例中,将第一目标数据块进行重定位处理,得到重定位处理后的第一目标数据块,包括:
将第一待翻译数据块中函数调用指令对应的文件地址翻译成内存的程序地址空间的地址,内存储存复制的第一目标数据块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奕斯伟计算技术股份有限公司,未经北京奕斯伟计算技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210980932.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高性能车的双盘刹车盘
- 下一篇:一种频率源发生装置