[发明专利]二进制翻译中的字节序调整方法有效
| 申请号: | 201010300018.5 | 申请日: | 2010-01-04 |
| 公开(公告)号: | CN101763242A | 公开(公告)日: | 2010-06-30 |
| 发明(设计)人: | 管海兵;梁阿磊;朱彤;刘博;杨辉兵 | 申请(专利权)人: | 上海交通大学 |
| 主分类号: | G06F7/76 | 分类号: | G06F7/76;G06F9/30 |
| 代理公司: | 上海交达专利事务所 31201 | 代理人: | 王锡麟;王桂忠 |
| 地址: | 200240 *** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 二进制 翻译 中的 字节 调整 方法 | ||
技术领域
本发明涉及的是一种计算机技术领域的方法,具体是一种二进制翻译中的字节序调整方法。
背景技术
动态二进制翻译技术是进程级虚拟机领域中重要的组成部分,它将对应源机器平台的二进制代码动态翻译为可在目标机器平台上运行的二进制代码,是解决遗留代码和提高软件平台适应性的一种有效手段,为软件移植和改善系统性能提供了途径。
字节序是计算机体系结构的一个基本属性,是计算机处理数据时对内存中多字节数据的高位和低位进行判定的方法。字节序有两种:大端字节序(Big Endian)和小端字节序(Little Endian)。Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。而Little-Endian则正好相反,低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。典型的大端平台包括PowerPC和SPARC,而小端平台的应用则更广泛些,包括X86,MIPS以及ARM等。动态二进制翻译中的源机器平台和目标机器平台的字节序往往是不同的,这时对同一条指令,它们的“理解”就变成相反的了。要使源机器平台的程序能够正确地在目标机器平台上执行,就需要在翻译的过程中对字节序进行调整。
目前在动态二进制翻译领域中解决字节序调整的方法并不多,主要的思想就是通过修改访存指令(Load和Store指令)的结果,使其符合目标机器平台的字节序。其中最典型的一种方法就是Byte Swapping(字节翻转):将每次读取或写入内存的数据都做一次字节翻转(byte swap),即翻转数据内部的字节顺序。有些处理器提供了一些特性,以简化ByteSwapping的过程。比如,Intel公司的80486及其向上的处理器提供了bswap这条指令来处理“跨字节序”(Cross-endian)的问题。
还有少数处理器,如IBM公司的PowerPC处理器提供了lwbrx,lhbrx,swbrx,shbrx等特殊的load-store(加载-存储)指令,这些指令用相反的字节序来访问内存,从而避免了上述的Byte Swapping过程。例如:lwbrx RT,RA,RB这条指令就是从地址(RA|0)+(RB)处装载一个字的数据到寄存器RT,字的0:7位装载到RT的24:31位,字的8:15位装载到RT的16:23位,字的16:23位装载到RT的8:15位,字的24:31位装载到RT的0:7位。
经过对现有文献的检索发现,美国专利号为:5867690,公开时间:1999年2月2日,名称: Apparatus For Converting Data Between Different Endian Formats And SystemAnd Method Employing Same,该技术提供了一种在不同字节序系统之间转换数据的方法及其装置,其在处理器和存储设备之间实现了一个Byte Swapping Device(字节翻转设备),使得处理器能够处理存储设备中字节序与其不同的数据。但是,尽管是硬件的实现,上述技术还是需要搬移数据的内部字节顺序,而逻辑单元也较为繁琐,所以这个搬移的开销是非常大的。对于那些没有硬件体系结构支持的处理器来说,Byte Swapping的开销则更为巨大,对系统性能有较大的制约。
发明内容
本发明的目的在于克服现有技术的上述不足,提供了一种二进制翻译中的字节序调整方法。本发明基于中间指令来调整字节序,既能使源机器平台的程序能够正确地在目标机器平台上执行,又能提高跨平台翻译的性能。
本发明是通过以下技术方案实现的,包括以下步骤:
第一步,动态二进制翻译系统的执行引擎加载源程序可执行映像,将各个程序段的内容进行字节序调整,同时调整加载进来的参数个数、参数内容和环境变量。
所述的动态二进制翻译系统包括:前端解码器(Front-End)、中端优化器(Middle-End)、后端编码器(Back-End)和中间指令集,其中:前端解码器与中间指令集相连传输源程序,中间指令集和中端优化器相连传输中间代码信息,中端优化器与后端编码器相连传输优化后的中间代码信息,后端编码器输出编码后的代码信息。
所述的动态二进制翻译系统是昆士兰大学的UQDBT系统,或者是弗吉尼亚大学的strata系统,或者是上海交通大学的CrossBit系统。
第二步,修改表示内存访问的中间指令的有效地址,使修改后的有效地址的表达符合源程序内存访问指令的语义,以在内存中加载或存储正确的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010300018.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:半导体元器件自动分离机
- 下一篇:温度补偿衰减器





