资源描述:
《动态二进制翻译中不对界问题的处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、动态二进制翻译中不对界问题的处理CN43—1258/TPISSN1007—130X计算机工程与科学COMPUTERENGINEERING&SCIENCE2010年第32卷第9期Vo1.32,No.9,2010文章编号:1007—130X(2010)09—0095—03动态二进制翻译中不对界问题的处理ASolutiontotheMisalignmentProblemsinDynamicBinaryTranslation崔进鲜,庞建民,岳峰,张一弛,张刚CUIJin-xian,PANGJian-m
2、in,YUEFeng,ZHANGYi-chi,ZHANGGang(信息工程大学信息工程学院,河南郑州450002)(InstituteofInformationEngineering,InformationEngineeringUniversity,Zhengzhou450002,China)摘要:复杂指令集计算机体系结构向精简指令集计算机体系结构的动态二进制翻译过程中经常出现地址不对界的问题.本文以1386到Alpha平台的动态二进制翻译为例,研究了内存映射时的不对界和数据存取时的不对界问题,提出了
3、一种改进的内存映射方法以及在中间表示层处理不对界地址访存问题的方案,有效地解决了此类问题.经实验验证,该方法正确并有较高效率.Abstract:Theaddressofapieceofcodeisoftenmisatignedwhenrunningtheinstructionsofcomplexinstructionsetcomputer(CISC)architecturesonreducedinstructionsetcomputer(RISC)architecturesinbinarytransl
4、ations.Todealwiththemisalignedaddressproblems,thispaperstudiesthememorymappingandtheload/storeinstructionsinintermediaterep—resentationbasedonthedynamicbinarytranslationfrom1386toAlpha,andpresentsaschemewhichisabletOsolvethesekindsofproblems.Theresultso
5、fthetestsprovethattheschemeiseffective.关键词:动态二进制翻译;地址不对界;中间表示;内存映射Keywords:dynamicbinarytranslation;misalignedaddress;intermediaterepresentation;memorymappingdoi:10.3969/j.issm1007—130X2010.09.025中图分类号:TP311文献标识码:A1引言一种新的体系结构的推广不仅依赖于高性能的硬件,还需要丰富的软件作为支撑,
6、因此软件的继承和跨平台使用就成为亟待解决的问题,动态二进制翻译是一种有效的连接互不兼容的软件和硬件的桥梁,对体系结构的创新提供了可靠保障.动态二进制翻译过程是指在运行时将一种指令集体系结构的二进制代码实时翻译成另一种指令集体系结构的指令,并立即执行翻译后代码的过程.不对界]是指源文件中数据的地址不是数据单元长度的整数倍.数据的不对界地址是复杂指令集计算机CISC(ComplexInstructionSetComputer,简称CISC)体系结构向精简指令集计算机RISC(ReducedInstruct
7、ionSetComputer,简称RISC)体系结构翻译的过程中产生的,页的不对界地址则是因为两种体系结构的页大小不同而产生的.本文针对数据地址不对界和页不对界两个方面讨论如何处理翻译中产生的地址不对界问题.2问题的产生动态二进制翻译l_3]的一般操作过程为:在完成基本初始化之后,首先在目标机上加载源机器的可执行文件,然后寻找程序的入口点开始反汇编,接着将单条汇编指令转化成几条中间表示,而中间表示会用一种支持各种目标平台的中间语言描述,这些中间语言被翻译器翻译成目标机的微操作码,其流程如图1所示.目前
8、,BellardF等人研制的QemuE]是较为成熟的动态二进制翻译系统之一,该系统具有可移植的特点,支持多源多目标平台之间的二进制翻译.在将Qemu移植到A1一pha平台,实现1386平台到Alpha平台的二进制翻译过程中,由于指令集及分页机制的不同,出现了数据存取及内存映射不对界的问题.~图1动态二进制翻译流程图2.1数据存取不对界地址的产生不同的体系结构采用的指令集不同,因此对数据的处理方式也不同.X86体系结构是目前应用最广泛的指令集体系结构之一,