动态二进制翻译
动态二进制翻译的相关文献在2002年到2022年内共计109篇,主要集中在自动化技术、计算机技术、系统科学、无线电电子学、电信技术
等领域,其中期刊论文65篇、会议论文6篇、专利文献542458篇;相关期刊28种,包括四川大学学报(自然科学版)、浙江大学学报(工学版)、信息工程大学学报等;
相关会议5种,包括2007全国软件及其应用学术会议、2006年全国高性能计算学术会议(HPC 2006)、中国科学院计算技术研究所第八届计算机科学与技术研究生学术讨论会等;动态二进制翻译的相关文献由196位作者贡献,包括管海兵、梁阿磊、董卫宇等。
动态二进制翻译—发文量
专利文献>
论文:542458篇
占比:99.99%
总计:542529篇
动态二进制翻译
-研究学者
- 管海兵
- 梁阿磊
- 董卫宇
- 蒋烈辉
- 沈立
- 王志英
- 姜玲燕
- 张兆庆
- 武成岗
- 冯晓兵
- 林凌
- 王立新
- 郑重
- 陈微
- 陈顼颢
- 孙廷韬
- 岳峰
- 庞建民
- 徐帆
- 文延华
- 臧斌宇
- 蔡战举
- 谢海斌
- 赖鑫
- 顾静辉
- 马湘宁
- 唐锋
- 孟建熠
- 康烁
- 张西超
- 徐金龙
- 戚旭衍
- 曾韵
- 白童心
- 赵雷
- 郑举育
- 郭向英
- 陈乔
- 陈榕
- 陈海波
- G.D.奥托尼
- H.王
- J·李
- O·埃茨昂
- S·伯科维茨
- W.李
- 严晓浪
- 何红旗
- 刘涛
- 刘畅
-
-
刘涛;
卢希;
冯飞;
王月波
-
-
摘要:
针对航空机载软件测试环境与开发环境冲突、测试环境可控性和通用性差、非干预性测试困难的问题,分析了全物理实装测试环境、半实物仿真测试环境的优缺点,研究了全数字仿真测试技术,设计并实现了一种航空机载软件全数字仿真测试系统。该系统由仿真核心平台、仿真工具组件、协同仿真组件和人机交互组件构成,提供了航空机载处理器、内存、外设等多种可重用库。提出了基于底层虚拟机的动态二进制翻译技术、协同仿真时间同步和数据通信机制等关键技术,实现了航空机载软件全数字高速闭环仿真运行。工程实践证明,该系统能达到降低硬件设备的依耐性、简化测试环境搭建的复杂度、提高测试效率约42%的目的。
-
-
李男;
庞建民
-
-
摘要:
动态二进制翻译在实现多源到多目标的程序翻译过程中,为屏蔽不同源平台间的硬件差异引入中间代码,采用内存虚拟策略进行实现,但同时带来中间代码膨胀问题.传统的中间代码优化方法主要采用对冗余指令进行匹配删除的方法.将优化重点聚焦在针对特殊指令匹配的中间表示规则替换上,提出了一种基于中间表示规则替换的二进制翻译中间代码优化方法.该方法针对中间代码膨胀所呈现的几种典型情景,描述了中间表示替换规则,并将以往应用在后端代码优化上的寄存器直接映射策略应用在此处.通过建立映射公式,实现了将原来的内存虚拟操作替换为本地寄存器操作,从而降低了中间代码膨胀率.使用SPEC CPU2006测试集进行了实验,验证了此优化方法的正确性和有效性.测试用例在优化前和优化后的执行结果一致,验证了优化方法的正确性;优化后测试用例的中间代码平均缩减率达到32.59%,验证了优化方法的有效性.
-
-
石磊;
田娜;
康烁
-
-
摘要:
动态二进制翻译技术是构造高性能异构虚拟机的关键技术,而代码翻译的质量则是动态二进制翻译性能的关键.本文实现了一种基于LLVM动态二进制翻译框架,利用LLVM优化技术以及多目标编译的特点,实现了可以针对多个目标体系结构的高性能动态二进制翻译.基于开源Skyeye实现了这种翻译框架,并在两种目标体系结构ARM和PowerPC上验证了框架的可移植性和运行效率,与QEMU在ARM目标平台上做了性能对比,结果表明该模拟器比Qemu性能平均快10%以上.
-
-
卢帅兵;
张明;
林哲超;
李虎;
况晓辉;
赵刚
-
-
摘要:
动态函数调用跟踪技术是调试Linux内核的重要手段.针对现有动态跟踪工具存在支持平台有限、运行效率低的问题,基于二进制翻译,设计并实现支持多种指令集的动态函数调用跟踪工具.首先,使用二进制翻译进行系统加载、分析内核镜像,识别基本块的分支指令类型.然后,根据不同平台指令集,设计桩代码并在函数调用与返回指令翻译时插入桩指令,进而在程序执行和内核启动时实时获取时间戳、进程标识、线程标识、函数地址等信息.最后,内核加载完毕后,处理获取的信息,生成过程函数调用图.只需要根据平台指令集特点设计对应的信息获取桩代码并插入到函数调用指令翻译代码中,实现简单,易于移植支持多种平台.该方法基于二进制翻译,直接对程序或内核镜像中的指令段、代码段、符号表进行分析,不依赖源码.拓展的中间代码和额外的目标码,不影响基本块连接、冗余代码消除、热路径分析等二进制翻译的优化方法,降低了开销.基于QEMU的实验结果表明:跟踪分析结果与源代码行为一致,桩代码执行信息记录产生了15.24%的时间开销,而信息处理并输出到磁盘文件产生了165.59%的时间开销,与现有工具相比,性能有较大提升.
-
-
-
-
孙光辉;
王丽娟
-
-
摘要:
在动态二进制翻译系统的基本块级,有三种优化机会:死码删除、冗余加载/存储删除和内存访问优化,这些优化机会均可在译码阶段发现.为此,提出了一种优化机制,基于译码制导的动态翻译技术,分为译码和翻译两阶段工作,译码阶段充分收集信息,翻译阶段直接生成优化后的代码,从而提高AB(Architecture Bridge)系统的启动和执行速度.实验结果表明,在X86体系结构下,该机制使得申威平台上的SPEC CPU2000 INT测试套件的翻译执行时间平均缩短了10%-20%.
-
-
秦焕青;
刘敏;
马刘杰
-
-
摘要:
为保障内存数据的安全,针对内存堆栈溢出攻击和内存被恶意破坏的问题,提出一种基于动态二进制翻译的关键内存动态防护机制.通过在计算机运行过程中对将要执行的代码进行动态二进制翻译,获取栈内存防护区域和对内存的读写操作,利用读写内存的操作地址判断读写的内存是否为关键内存,并对可执行的操作进行报警和阻止,从而实现对关键内存的防护,保证计算机安全运行.
-
-
刘铁铭;
蒋烈辉;
王峥;
冯景
-
-
摘要:
在国产神威服务器上实现了一种采用直译方法的动态二进制翻译系统,能将x86体系结构下的机器码直接翻译为申威处理器架构下对应的机器码,实现x86程序在异构的神威服务器上的系统级仿真;采用静态预先译码的方法提高译码效率;提出了一种适用于RISC处理器的翻译框架,方便移植,有利于翻译生成的目标机器码进一步优化.
-
-
戴涛;
单征;
卢帅兵;
石强;
潭捷
-
-
摘要:
针对动态二进制翻译系统QEMU寄存器分配不考虑基本块之间对寄存器需求的差异性,造成不必要寄存器溢出而导致重复访存开销的问题,提出高效的基于优先级线性扫描寄存器分配算法.该算法基于中间表示与源平台寄存器之间的映射关系,获取每一次生成基本块中间指令预分配寄存器次数并统计排序确定寄存器的优先级,寄存器分配时动态调整寄存器分配顺序,减少寄存器溢出次数,降低生成本地代码指令数量.QEMU动态翻译x86、mips及arm平台的nbench测试集实验结果表明,该算法基于中间代码改进具有很好的跨平台性,有效减少了生成本地代码指令数目,比QEMU优化前翻译性能分别提升了6.7%、6.8%、4.7%.
-
-
孙俊;
文延华;
漆锋滨
- 《2006年全国高性能计算学术会议(HPC 2006)》
| 2006年
-
摘要:
动态二进制翻译是解决兼容问题的重要手段,它能够将为源平台编译的二进制代码直接运行在目标平台上.指令调度作为一种有效的编译优化技术,也适用于动态二进制翻译.本文在对gcc指令调度器分析研究的基础上,结合动态二进制翻译的实时性特点,提出了适合动态二进制翻译的效率高、开销小的指令调度算法.
-
-
-
-
唐遇星;
邓鹍;
周兴铭
- 《2002年全国计算机体系结构学术会议》
| 2002年
-
摘要:
多发射超标量处理器体系结构在过去的十几年中获得了巨大的成功,而它带来的巨大的设计复杂性正逐渐成为处理器性能提高的障碍.超长指令字VLIW可能成为未来的主流处理器体系结构,代码兼容性成为不可回避的问题.用动态二进制翻译结合处理器体系结构设计在一定范围内已经取得成功,但是现在的这类处理器性能无法和同时代的超标量处理器相比.本文提出了一种结合动态二进制翻译、VLIW结构和单芯片多处理器、多线程技术的高性能二进制翻译结构HpbtA,试图在保证兼容的前提下引入创新的体系结构设计,提升处理器的性能.
-
-
秦焕青;
张助玲;
马刘杰;
侯景山
- 《第二十八全国信息保密学术会议(IS2018)》
-
摘要:
针对内存堆栈溢出攻击和内存关键数据被恶意破坏篡改的行为,为了保护内存数据安全,提出一种基于动态二进制翻译的关键内存动态防护机制,通过在计算机运行过程中对将要执行的计算机指令进行动态二进制翻译,截获计算机指令对内存的读写操作,判断指令操作地址是否为关键内存或者堆栈,实时阻断内存堆栈溢出攻和内存关键数据恶意破坏篡改行为,并对上述行为进行报警,从而实现对关键内存的防护,实现计算机运行安全.
-
-
胡坤;
史辉辉;
管海兵;
梁阿磊
- 《2007全国软件及其应用学术会议》
| 2007年
-
摘要:
Crossbit是应用在分布式环境下的动态二进制翻译系统,不同指令集系统共享资源,从而来实现高性能虚拟计算。在分布式虚拟计算环境中,许多客户终端的内存和计算资源都比较稀缺,它们在需要时才从服务器上下载代码,并翻译到本地执行,因此具有较高的缺失代价。Crossbit系统终端的本地代码cache的管理大幅提高资源的利用率,减少重复下载和翻译所带来的额外开销。分布式Croobit的代码cachc管理策略是尽量将复杂的工作交给服务器来完成。服务器负责向终端提供统一的中间语言代码,并汇总终端在程序运行时收集的profile信息,进行初步优化,给各个基本块赋予不同的优先级,协同终端高效地完成本地代码cache管理。