译码制导的动态二进制翻译优化

合集下载

硕士论文-动态二进制翻译中的调试器研究

硕士论文-动态二进制翻译中的调试器研究

上海交通大学硕士学位论文动态二进制翻译中的调试器研究姓名:***申请学位级别:硕士专业:计算机软件与理论指导教师:***20081201A Research on Debugger of Dynamic Binary TranslationABSTRACTDynamic binary translator generates the native code on the fly in runtime using translation technology. As the traditional debugger is targeted for statically generated code, it cannot be used to debug the program on dynamic binary translator. In order to enable debugging the program on dynamic binary translator, in this paper, we propose a new debug architecture for applications executing with dynamic binary translation systems.Debugger’s implementation is tightly coupled with the target machine platform. It’s even worse in dynamic binary translation system, as there are two related machine platforms in dynamic binary translation system. The debugger architecture is designed to be retargetable to decouple this relationship.In this paper, we describe a retargetable debugger architecture, and it’s based on dynamic binary translator. New intermediate instructions are designed to decouple the debugger from machine platform. It also introduces some debugging technology to dynamic binary translation, including reverse executing, watch point and debugging script. By using these technologies, the overhead on debugging is reduced from dozens of executing time to twice or less. The debug architecture is implementedand used in our CrossBit system. It’s proved that it reduces the time for developer to locate bugs sharply.Key Word: Dynamic Binary Translation, Debugger, CrossBit插图目录图二-1动态二进制翻译执行流程[13] (7)图二-2C ROSS B IT系统架构 (9)图二-3动态二进制翻译平台内存布局 (13)图三-1回退执行的场景 (18)图三-2一个调试脚本 (20)图三-3调试器基本框架 (20)图三-4断点映射表 (22)图三-5逆向执行中的基本块分析 (23)图四-1设置断点的流程 (29)图四-2有调试器系统与无调试器系统时间比 (32)图四-3M ESA主程序 (33)图四-4M ESA中出现异常的地址 (34)图四-5M ESA中出错的源地址 (34)图四-6调试脚本 (34)表格目录表四-1调试命令的集合 (27)学位论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。

动态二进制翻译器CrossBit的性能分析与评估

动态二进制翻译器CrossBit的性能分析与评估

上海交通大学 软件学院 , 上海 2 0 4 020
S h o f S f a e S a g a ioo g n v ri , h n h i2 0 4 , h n c o l o o w r , h n h i Ja tn U ie st S a g a 0 2 0 C i a t y
a e n r d e . e pei nt t sr tg o i l me tng ptmia in r ito uc d By x rme ,he tae y f mp e n i o i z to me h d o d na c i a ta l t s se i g te t o t y mi b n r r nsai y on y t ms s ot n wih fe e t y tm c n g ains n di e e t t di r n s se f o f urto a d i f r n wor o ds f kla . K e wor : vru l y ds it a ma hi d na c r nsain; n m i o tmia in; p i ia in tae ; o s t c ne; y mi ta l to dy a c pi z to o tm z to sr tg Cr s Bi y

要 : 态二进制翻译是广泛应 用于虚拟机 系统的一种二进 制代码 的翻译技术。 态二进制翻译 由于拥有代码缓存 、 动 动 本地执行 、
代 码块链接 、 动态热路 径生成等优化技 术的 支持 , 有着很 高的性 能。Cosi是一个 多元 多 目标的动 态二进 制翻译 系统 , rsBt 通过对 Cos i二进制翻译器的性能进行的研究 , r Bt s 分析动态二进制翻译器性能提升 中所必 须解 决的若干问题 , 并通过 定量的分析 总结 了

动态二进制翻译中热路径优化的软件实现

动态二进制翻译中热路径优化的软件实现

文 编号 1l- 2(I 2 0 8 0 章 : I _3 8 I )— 0 — 3 文 标 码: l _4 2l 3 7 I 0 l 7 献 识 A
中 分 号。 P9 圈 类 T3 1
动 态二进制翻译 中热路径优化 的软件 实现
史辉辉 ,管海兵 ,梁 阿磊
( 上海 交通大学计算机科学与工程系 ,上海 2 0 4 ) 0 2 0
面。一般的程序都 具有局部性原理 ,即 9 的时间都在执行 O l %的代码 。如果能识别 出这 l 的代码并进行优化 ,系统 O O 的性 能就可得 到显著提高 。
执行次数较多的那个块作为热路径上的下一个基本块 ;() 3当 遇到循环 出I时便认为热路径结束 。 : 1
1 基于边( g) . 2 e e的热路径识剐 d
维普资讯
第3 3卷 第 2 期 3
V 3 oL 3






20 年 l 07 2月
De e b r2 O c m e O 7
No2 .3
Co p t rE g n e i g m u e n i e rn
软件技术与数据库 ・
兼健诃 :动态 二进制翻译 ;热路径 ;动态优化
Байду номын сангаас
Ho a h Op i ia i ni o t r n m i n r r n l t n tP t tm z to S fwa eDy a cBi a yT a sa i n o
SH IH uihui - .GU AN aibi . AN G -e H - ng LI A li
为热 路径 上的下一个基本块 ;否则 ,选择 C 。 该算法需要的信息比第 11节 中的算法多 ,但预测更准 . 确 ;同时,其实现简单 ,因此 ,该算法为许多二进制翻译器 采用。文 献【J 2为基于边 的算法提供 了理论基础 。

注解信息制导的动态二进制翻译及优化

注解信息制导的动态二进制翻译及优化

摘! 要:动态二进制翻译器在运行时将源体系结构机器码翻译为目标体系结构机器码, 这种即时编译技术使得源机器上的软件 无需重编译就可以直接在目标机上较高效地运行, 然而, 利用动态二进制翻译器运行源软件的效率大大低于针对目标机器重新 编译运行源软件的效率, 本文在比较分析动态翻译生成的目的机器码的性能偏低的原因的基础上, 提出了注解信息制导的动态 在英特尔的商用动态二进制翻译器; ’<%0" 1=*97)4:( >3?*@; 和静态编译器; 二进制翻译及优化的方法, 本文选取了三种注解信息, ’()*+ ( @)A:2B4+*@; 上实现了注解信息制导的动态二进制编译及优化技术, 实验结果表明该三种注解信息较大程度地提高了动态 翻译码的执行效率, 关 键 词:动态翻译;动态优化;编译器;注解信息 中图分类号:CD00-! ! ! ! ! 文献标识码: <! ! ! ! ! ! 文 章 编 号: -###%-""# ("##/) #0%#EEF%#F
源, 如何利用动态信息, 如何在保证精确异常的情况下在更大 研究能降低动态翻译开销的翻 范围内进行代码调度, 等等# !) 译算法, 包括自适应翻译算法, 翻译重用算法, 翻译码存储管 从软硬件相接合的角度来提高动态二进制翻译器 理, 等等# )) 8*/>2- 处理器提供硬件来支持推测执行和对 的性能# 譬如说, 执行结果进行检验, 使翻译器可以快速生成翻译码并根据动 态信息对翻译码进行重优化# 其中最关键的硬件支持为对可 恢复写操作的存储缓冲, 它使翻译码在保证精确异常的情况 [)] 下可以充分地调度 # 本文的注解信息制导的动态二进制翻译及优化从另一个 角度来解决这个问题# 该方法将编译器与动态二进制翻译器 作为一个整体, 来考虑如何将两者相配合使得编译器产生的 代码在动态翻译时性能更好, 以及如何利用注解信息提高翻 然后 译效率# 它要求在生成二进制代码的同时生成注解信息, 利用注解信息来提高二进制动态翻译器及优化器的性能# 与本文最相近的工作为对 N5H5 字节码生成注解信息, 以 及针对静态二进制翻译器生成信息# 在文章 [ "O ] 中, N5H5 编译 器在生成字节码同时生成注解信息, 然后将注解信息连同字 由 N5H5 虚拟机读出注解信息来进行优 节码传给 N5H5 虚拟机, 由于 N5H5 字节码本身并没有丢失 化# 与二进制代码不一样, N5H5 高级语言信息, 它的注解信息的量比较少并且重点在如何 ["P] 中方法的目的是为了 降低 N5H5 虚拟机的翻译开销上# 专利 使得静态二进制翻译器能够正确地翻译二进制代码, 所以它 的注解信息主要局限在程序的结构信息方面#

动态二进制翻译优化研究的开题报告

动态二进制翻译优化研究的开题报告

动态二进制翻译优化研究的开题报告一、选题的背景和意义随着计算机技术的不断发展,人们越来越依赖于计算机软件来提高工作效率和准确性,因此,计算机软件的开发和优化成为了一个重要的研究领域。

在编写软件时,我们通常使用高级编程语言来描述算法和程序,但这些高级语言通常需要经过复杂的编译和链接处理才能生成可执行文件,而这个过程中存在许多性能瓶颈,例如二进制代码的优化、代码翻译等。

因此,研究如何优化二进制代码翻译的问题是非常重要的,具有广泛的应用前景。

二、选题的研究现状动态二进制翻译(Dynamic Binary Translation,DBT)是一种通过执行中间代码来翻译二进制代码的技术,在计算机系统中广泛应用。

目前,DBT 的实现主要有两种方式:JIT(Just-in-Time)编译和从解释执行。

JIT 编译是指在第一次遇到某段代码时将其翻译成可执行的机器码,之后再执行这段机器码。

而从解释执行则是执行一段代码时,通过解释器来进行翻译。

这两种方法在翻译二进制代码的性能和准确性方面有不同的表现。

目前,DBT 的优化研究主要包括以下方面:指令翻译技术、动态指令选择、动态指令调度、缓存管理等。

三、选题的研究内容和研究方法本课题旨在研究如何通过优化动态二进制翻译来提高计算机系统的性能。

具体研究内容包括以下几个方面:1、指令翻译技术。

研究如何构造更高效的指令翻译器,提高机器码的翻译效率和准确性,以及如何处理复杂指令。

2、动态指令选择。

研究如何在不同上下文中选择最优的指令,提高指令的执行效率。

3、动态指令调度。

研究如何根据指令之间的依赖关系来进行指令调度,避免指令执行时的冲突。

4、缓存管理。

研究如何利用缓存技术提高动态二进制翻译的效率和准确性。

本课题所使用的研究方法主要包括理论分析、仿真实验和实际测试三种。

在理论分析阶段,我们主要是根据相关的研究文献来进行模型的构建和理论推导,在仿真实验阶段,我们将根据理论分析的结果,使用相应的仿真工具来进行实验;在实际测试阶段,我们将设计相应的实验系统,通过实际测试来验证我们的理论分析和仿真实验结果。

动态二进制翻译的优化

动态二进制翻译的优化

在传统 的编译器技术里 , 化都 是基 于静态分析的 , 优 优化是
0 引 言
研究 和开发新 的体系结 构必 须要有 相应 的软件支 持 , 能 才
针对整个程序 , 虽然这样 能提高系统 性能 , 但花费 的代价却非 常 大 。在一个动态环境里 , 我们 可以根据代 码的运行情况 , 根据代 码段被执行 的次数不 同 , 用不 同等级 的优 化方 法。选择要 实 采 施 的优化方法在很大程度 上取决 于程序执行 所花 费的时间与信 息收集过程 的优化代码 的开销之 间 的平衡 , 求确保 使用优 化 要
所获得 的利益大 于它 的开销 。总之二进制 翻译优 化的中心思想
得到流行 和运用 ; 而一些 非常 宝贵 的软件也 面临着 由硬件 升级 换代 导致 的软件更新 问题 。代码移植成为 了软硬件协 调发展 的

个重要因素 。因此二进 制翻译 方法应 运而生 , 有助 于将 老 它 的体 系结构上 的软件移植到新 的体系结构 上运行 。根据 翻译 时
p ts o t z t n Ho t n h o e h t e e v so t z t n i ic se n d ti . eme n t ,h e i r v d ss meo t - ah p i ai . w f d te c d s ta s r e p i a i sd s u s d i e al At h a me te t ssp o i e o p i mi o oi d mi o s t i h mi z t n meh d rt e e o t z t n a p o c e . a t i b if nr d c ss me r lt e w r so e o t z t n a p o c e rd n mi a i t o s f s p i ai p r a h s Atl ,t re y i t u e o ea i o k n t p i ai p r a h s f y a c o o h mi o s l o v h mi o o b n r r n l t n tc n q e a r s n . ia y ta sai e h i u tp e e t o Ke wo d y rs B n r r n lt n D n mi ia y t n l t n Dy a c o t z t n Ho ah B i b o k i ay t sa i y a c b n r r sai a o a o n mi p i ai mi o t ts p s a c lc

二进制的算法

二进制的算法

二进制翻译和动态优化技术冯晓兵马湘宁1 引言编译技术研究的目的是发掘目标平台的计算潜能,使得应用程序可以在目标平台上有效地执行。

一般而言,编译系统侧重的是以离线的方式将应用程序编译成为可执行的目标代码,此过程中要根据需要实施各种分析和优化手段,以使得目标代码尽可能适应于在目标平台上执行。

几十年来,编译技术的研究取得了丰硕的成果,但是仍然有着众多的问题值得研究。

本文着重讨论如下的两个问题:1)二进制翻译技术这项技术是将某个ISA(Instruction Set Architecture-指令集体系结构)的二进制应用程序进行翻译,以便将其移植到另一个ISA平台上执行,其特点是在翻译过程中,只要有应用程序的二进制代码即可,而不必要求将应用程序的源代码作为翻译系统的输入。

这项技术的优点是使得已有的大量应用程序可以直接为新的平台所利用,而不必再投入大量的人力、物力开发面向新平台的应用程序,从而鼓励体系结构的创新。

特别是在目前,为了解决我国计算机行业缺乏CPU核心技术的局面,众多的单位设计出了多种拥有自主知识产权的CPU,但适用的应用程序的缺乏是这些CPU面临的一个普遍的问题。

二进制翻译技术可望为这个问题的解决做出重要的贡献。

此外,二进制翻译技术在方兴未艾的网格、嵌入式系统等方面都有用武之地。

二进制翻译可以分为解释器、静态翻译器和动态翻译器等几种方式。

近年来的相关研究虽然取得了不小的成果,但是二进制翻译涉及到的一些关键性技术问题还没有被彻底解决,如程序的执行效率、代码的挖掘、精确异常、自修改代码、以及内容的翻译等等。

2)动态优化技术:由于程序的动态行为对程序性能的影响是巨大的,同时动态行为又显著地受到了输入模式的影响,而静态分析是无法预知程序的动态输入模式的,因此有必要对静态编译生成的二进制代码在程序的运行时刻,根据程序的动态输入模式及相关的动态行为进行进一步的优化,从而提高程序的运行效率。

这种优化应该是不断进化的过程,即编译是一个持续优化的过程,不仅是静态优化,还包括动态优化,而动态优化可能是多遍的。

以RISC-V为目标的动态二进制翻译代码质量优化方法

以RISC-V为目标的动态二进制翻译代码质量优化方法

以RISC-V为目标的动态二进制翻译代码质量优化方法以RISC-V为目标的动态二进制翻译代码质量优化方法摘要:动态二进制翻译(DBT)是一种在不同架构之间进行二进制代码转换的技术。

它可以将一种指令集架构(ISA)的程序翻译成另一种ISA的程序,从而实现跨架构的执行。

在RISC-V目标架构下,为了提高动态二进制翻译的代码质量,需要优化代码生成的效率和性能。

本文综述了常见的动态二进制翻译优化方法,并针对RISC-V架构提出了一些特定的优化策略。

1. 引言动态二进制翻译是一种在计算机系统中进行指令级别转换的技术。

它能够将源程序从一种架构的指令集翻译成另一种架构的指令集,从而实现不同架构间的代码兼容性。

在RISC-V架构下,动态二进制翻译被广泛应用于模拟器、虚拟机等场景中。

2. 动态二进制翻译优化方法综述2.1 指令翻译指令翻译是动态二进制翻译的核心环节,决定了翻译的效率和准确性。

常见的指令翻译方法包括解码-翻译、翻译-解码、直接翻译等。

解码-翻译是将源指令解码为中间表示,再将中间表示翻译成目标指令。

翻译-解码是将源指令翻译成目标指令,再对目标指令进行解码。

直接翻译是将源指令直接翻译成目标指令,不经过中间表示。

2.2 寄存器映射寄存器映射是将源架构的寄存器映射到目标架构的寄存器的过程。

优化寄存器映射可以提高动态二进制翻译的效率和性能。

常见的优化方式包括寄存器重命名、寄存器分配等。

2.3 控制流优化控制流优化是动态二进制翻译中一个重要的步骤。

控制流优化可以提高程序执行的效率和性能。

常见的控制流优化方式包括跳转优化、循环优化、分支预测等。

2.4 内存访问优化内存访问优化是动态二进制翻译中的关键环节。

内存访问优化可以减少对内存的访问次数,提高程序的执行效率。

常见的内存访问优化方式包括缓存优化、预取优化等。

3. 以RISC-V为目标的动态二进制翻译代码质量优化方法3.1 RISC-V架构特点RISC-V架构是一种开源的指令集架构,具有灵活、简洁、可扩展等特点。

动态二进制翻译中动态优化的成本与收益分析

动态二进制翻译中动态优化的成本与收益分析
关 键 词 :静 态编 译 器 ;动 态优 化 ;二 进 制 代码 ;遗 留代 码
Co t nd Be ftAna y i o s a ne i l ss f Dyna c mi Optm iato i Dyn m i Bi r Tr nsa i n i z in n a c na y a l to S UN u n -u ,WA G agh i NG iun L- a j ( u a nvrt fAt a d& ,C a g e u a 1 0 0 hn ) H n n U i sy o r n ei s e we h n d.H n n 4 5 0 ,C ia

4・
Co p tr Er .2 01 m u e a No 2 0
动态二进制翻译中动态优化的成本与收益分析
孙 光辉 ,王丽娟
( 南文理 学院 ,湖 南 常德 450) 湖 100
摘 要 :传统的静 态编译 器优化存在 着各种 限制 , 为此 , 出了一种运行期 动态优 化的对策 。在程序 的执行 过程 中, 提 持
i drcl f r rg a s iet o po rm bn r c d , n t o o a y iay o e o fr prg mmig a g a e r o i n h rs t a n t ny r g h ta s ae c o r n ln u g o c mpl T e eul e cn o o l bi te rn n u lo mp o e t e p r o ma c f t e o r e o e i l e so p i z t ,b t a s i r v e f r n e o s u c c d n o d v r in,n mey lg c o e r m p i ia in t c n q e . o h h a l e a y c d ,f o o t z to e h i u s m Ke r : s tc c mp l r d n mi p i z to y wo ds t i o i ; y a c o tmi ai n; b n r o e l g c c d a e iay c d ; e a y o e

优化动态二进制翻译器

优化动态二进制翻译器
1 DigitalBridge 系统框架
DigitalBridge 由 5 个模块构成 分别是装入器 BT 控制 器 基本块信息管理器 翻译器和优化器 如图 1 所示 图 中深色框表示翻译好的代码区 实箭头代表控制转移 虚箭 头代表写入数据
文件装入及初始化
基本块信息管理
翻译器
BT 控制器
优化器
上下文切换
104
热路径上的标志位计算 分别是基于模式的指令组合翻译优 化和延迟标志位计算的优化 3.1 基于模式的指令组合优化翻译
实际上在初次翻译时就已经对标志位计算进行了优化 以基本块为单位 在进行指令选择之时 记录下该指令读写 标志位的需求 在指令选择完成之后 分析标志位的引用定 值关系 保留有效的标志位计算 即使这样必要的标志位计 算仍会造成巨大开销 在这些开销中有一部分可以通过指令 组合的优化翻译来省略掉 例如在编译生成 X86 代码时 通 常用(cmp|test)/jcc 指令组合来实现条件分支 先通过 cmp 或 者 test 指令将比较结果的标志记录在标志寄存器中 再用 jcc 指令根据相应的标志位值来判断是否跳转 (cmp|test)/jcc 构 成一个指令组合模式 如果不加优化 则这样的两条指令将 被翻译成 50~60 条指令 其中 40~50 条指令用于标志位计算 在仔细研究源与目标指令集的对应关系后不难发现 只要用 MIPS 指令对 set / branch 就可完成与(cmp|test)/jcc 模式相对应 的功能 从而使优化翻译后的指令减少到 15 条左右 统计 显示 程序动态执行中的控制转移平均 6 成以上是条件分支 仅(cmp|test)/jcc 组合的优化翻译就可显著提高系统性能 3.2 延迟标志位计算优化
103
器来等待目标的指派 而直接跳转到目标基本块的本地代码 入口 这种基本块连接是提高性能的有效手段之一

二进制翻译中冗余指令优化算法

二进制翻译中冗余指令优化算法

计算机研究与发展Journal of Computer Research and Development DOI:10. 7544/issnl000-1239. 2017. 2015111054(9):1931-1944, 2017二进制翻译中冗余指令优化算法谭捷庞建民单征岳峰卢帅兵戴涛(数学工程与先进计算国家重点实验室郑州450002)(jessie_tanjie@hotmail. com)Redundant Instruction Optimization Algorithm in Binary TranslationT an jie, Pang Jianmin, Shan Zheng, Yue Feng, Lu Shuaibing, and Dai Tao(S t a t e K e y L a b o r a t o r y o f M a t h e m a t i c a l E n g i n e e r i n g a n d A d v a n c e d C o m p u t i n g , Z h e n g z h o u450002)Abstract Binary translation is a main method to implement software migration. Dynamic binary translation is limited by dynamic execution and cannot be deeply optimized, resulting in low efficiency. Traditional static binary translation has difficulty to deal with indirect branch, and conventional optimization methods mostly affect in the intermediate code layer, paying less attention to a large number of redundant instructions that exist in the target code. According to this situation, this paper presents a static binary translation framework SQEMU and a target code optimization algorithm to delete redundant instructions based on the framework. The algorithm generates an instruction-specific data dependence graph (IDDG) based on the analysis of target codes, then combines liveness analysis with peephole optimization using IDDG, and effectively removes redundant instructions in target codes. Experimental results show that using the optimization algorithm for target codes, the execution efficiency is significantly increased, the maximal increase up to 42% , and the overall performance test shows that the optimized translation efficiency of nbench is increased by about 20%on average, and it is increased about 17% of SPEC CINT2006 on average.Key words binary translation;redundant instruction;liveness analysis; peephole optimization;SQEMU frame摘要二进制翻译是实现软件移植的主要方法.动态二进制翻译受动态执行限制而不能深度优化导致效率较低而传统的静态二进制翻译难以处理间接分支,且现有的优化方法大部分集中在中间代码层,对 目标码中存在的大量冗余指令较少关注.针对这一现状,提出一种静态二进制翻译框架SQEMU,基于该框架提出了一种对目标码冗余指令进行删除的优化算法.该算法通过分析目标码生成指令特定数据依赖图(instruction-specific data dependence graph,IDDG),再利用该图将活性分析和窥孔优化的2种 理论相结合,有效删除目标码中的冗余指令.实验结果表明,利用该算法对目标码优化后,其执行效率得到显著提升,最大提升可达42%,整体性能测试表明,优化后nbench测试集翻译效率提高约20%,SPEC CINT2006测试集翻译效率提高约17%.收稿日期:2015-12-21;修回日期:2016-06-02基金项目:国家自然科学基金项目(61472447);国家“八六三”高技术研究发展计划基金项目(2009A A012201)核高基”国家科技重大专项基金项目(2009ZX01036-001-001)This work was supported by the National Natural Science Foundation of China (61472447),the National High Technology Research and Development Program of China (863 Program) (2009AA012201) , and the National Science and Technology Major Projects of Hegaoji (2009ZX01036-001-001).1932计算机研究与发展2017, 54(9)关键词二进制翻译;冗余指令;活性分析;窥孔优化;S Q E M U框架中图法分类号TP314二进制翻译技术是实现软件移植的主要方法,现已广泛应用于遗产代码移植、系统安全防护等国 内外诸多领域,是解决不同体系结构处理器之间软件移植的主要途径,如开源的跨平台动态二进制翻译器Q E M U[1],已被移植到多种处理器平台,其中 包括国产龙芯平台[2].二进制翻译可按翻译的时机不同分为动态二进 制翻译和静态二进制翻译.动态二进制翻译是一种即时翻译技术,它是在目标程序运行时动态生成可执行代码,代码优化占用程序执行时间,其翻译过程 受动态执行的限制而不能进行深度细致优化[3].另 外,动态二进制翻译需要在执行所生成目标代码的同时,完成加载分析、运行环境设置、实时翻译、代码 缓存管理、代码块切换等工作.一些技术如热路径优 化、寄存器映射、多线程优化等提高了动态二进制翻 译的效率,但仍未解决动态二进制翻译效率偏低的问题.静态二进制翻译在不运行目标程序的情况下,静态分析可执行程序,提取指令进行翻译,能采用复 杂的代码分析和优化算法,它有充足的时间进行完整细致的优化,生成代码质量较高,运行效率较高. 静态二进制翻译还可以利用程序以往执行的记录进 行优化,即profiling,获取更好的优化结果.Q E M U是一个二进制动态翻译器[1],针对中间 代码实施简单的活性分析以得到优化后的代码.但由于其优化算法本身占用运行时间并且提高生成代 码的质量并不能减少基本块切换和生成代码维护开 销,优化效果并不理想.为了提高翻译后代码段的质 量,在二进制翻译中针对编译器设计采取了很多复杂的优化,将L L V M和Q E M U结合的H Q E M U[4]就是典型的例子,H Q E M U在生成的中间代码层上 针对改进的L L V M编译器进行优化,比如寄存器优 化和标量运算矢量化等.与Q E M U相比,这种优化 导致了整体翻译效率的下降.为了降低优化开销,H Q E M U抛弃了在多核系统中的其他硬件线程或内核的优化,这又导致系统吞吐量明显降低.由于优 化算法本身的开销,Q E M U在T C G中间表示层未 能实现有效的优化.一些基于L L V M的动态二进制 翻译器虽然能够生成较高质量代码,但是翻译和 块切换开销在运行时仍然存在.现有静态二进制翻译难以处理间接分支,而动态二进制翻译效率低,为 处理以上问题,本文采用基于Q E M U的静态二进制翻译框架 StaticrQEMU(S Q E M U)[1°],S Q E M U 能 够分离翻译时间、代码优化时间与目标程序执行时间,并且代码优化的时间不受运行时的限制,能够采 用不同层次的优化算法,使得S Q E M U能够生成更 高质量的目标代码.因此,本文以S Q E M U作为静态二进制翻译平台,对生成的目标代码中常规冗余指令和冗余存取L O A D/S T0R E指令进行优化,通过分析目标码生成指令特定数据依赖图(instruction-specific data dependence graph, I D D G),再利用该图将活性分析 和窥孔优化的2种理论相结合,提出基于I D D G的冗余指令删除优化算法,有效删除目标码中冗余指令,以达到提高目标代码执行效率的目的.本文的主要工作有4点:1)针对动态二进制翻译器Q E M U因其翻译程受动态执行的限制而不能进行深度细致优化等缺 点,以及现有静态二进制翻译器难以处理间接分支的现状,提出一种基于Q E M U的静态二进制翻译框架S Q E M U,S Q E M U能够分离翻译时间、代码优 化时间与目标程序执行时间,并且代码优化的时间不受运行时的限制,能够采用不同层次的优化算法,使得S Q E M U生成的目标代码质量更高.2)将S Q E M U后端生成的目标代码作为输参数,利用指令寄存器之间存在的数据依赖关系,生成指令特定数据依赖图(I D D G),将图理论灵活运 用到冗余代码优化过程中,拓展了处理冗余代码的手段.3)利用I D D G分别对常规冗余代码进行活分析、对冗余访存指令进行窥孔优化,将2种理论相 结合,双重优化的思路避免了因方法单一而导致优化 不够完备的弊端.实验结果表明,以S P E C C P U2006 和nbench测试集为例,该算法对代码执行效率提升显著,最大提升可达42 %,整体性能测试表明优化后nbench测试集翻译效率平均提高约20%,S P E CC I N T2006平均提高约17%.4)本文提出的算法虽然是针对基于Q E M U 静态二进制翻译框架S Q E M U后端目标码实现的,但该算法具有相当强的通用性,不限于目标平台和 指令形式,对降低二进制翻译后的代码膨胀率有重要意义.谭捷等:二进制翻译中冗余指令优化算法19331基于Q E M U的静态翻译框架—SQEMUQ E M U系统是目前较为先进的可实现多种异构平台映射的动态二进制翻译系统,具有支持平台 多样、翻译效率相对较高、开源易移植等优点[11]. Q E M U为实现多源多目标虚拟机,采用将源二进制 代码翻译为T C G中间代码再翻译为目标代码的方 式,可以实现将X86, A R M,M I P S下的E L F格式可 执行文件翻译为T C G中间表示,再翻译为目标代码.本文设计了基于Q E M U的静态二进制翻译框 架 Static-Q E M U(S Q E M U),采用 Q E M U 的前端分 析和T C G中间表示,继承了 Q E M U跨平台的特性.与Q E M U和基于L L V M的动态二进制翻译器[5M«相比,S Q E M U分离翻译、代码优化与目标程序执行阶段,使得在同等优化手段下S Q E M U能 够更高效.并且,由于代码优化时间不受运行时的限 制,能够采用不同层次的优化算法生成高质量的执行代码.SQEMU包括前端源指令提取、T C G中端分 析优化、后端目标代码生成3个阶段,基本设计结构如图1所示.其中,源文件解析器、前端解码器构成SQEMU前端,负责将源平台二进制代码(本文即X86代码)翻译成中间代码TCG(tiny code generator),T C G中端分析优化器对中间表示进行平台无关优化,后端翻译器负责将T C G中间代码 翻译成目标平台的二进制代码(本文中为A l p h a代 码).前端和T C G中端分析优化器采用QEMU的相应模块,删除了 QEMU中控制中心、缓存管理和 执行模块,后端添加了目标文件生成器.Fig. 1 Fram ew ork of SQ EM U图1 S Q E M U框架设计其中,前端解码器逐条对源平台指令进行解码,S Q E M U使用了 Q E M U的指令译码部分,根据译 码器分析出的指令,生成相同语义的T C G指令.传统的优化策略仅在T C G分析优化器中针对T C G 中间代码层进行平台无关优化[12],如活性分析和块 内寄存器分配.而事实上由于仅靠软件翻译,一条 X86指令翻译后经T C G中间代码优化后仍会生成 多条A l p h a代码,其中含有大量冗余指令和冗余访存操作,执行效率很低.针对这一现状,本文在目标 代码层实现冗余代码优化.2冗余指令的发现S Q E M U系统后端生成的A l p h a代码的冗余是 影响代码膨胀的最直接因素,通过分析S Q E M U后 端生成的A l p h a代码,原S Q E M U系统并没有对目 标码进行冗余删除的优化,其中存在少量含有非活跃变量的常规指令和大暈冗余访存指令,本节着重 描述冗余访存指令.冗余访存指令是指在该访存指令之前,有对同 一个内存地址的读或者写指令,并且该地址的值仍保留在同一寄存器中,那么_前访存指令即可定义为冗余访存指令.在静态二进制翻译器S Q E M U后 端产生的目标码中,如果参与运算的寄存器值先用ldl指令从内存中取出,运算结束后再使用stl指令 存人内存中,这样,当这2条指令之间存在数据相关 性时,就会产生访存冗余的情况;或先使用stl指令 将运算结束后的寄存器值存人内存中,当遇到下一 条需要从相同位置取出同一寄存器值的W1指令 前,并没有对该寄存器值进行重新赋值,此时也会产 生访存冗余,即存在类似图2所示的汇编程序段.1)s t l$9,0($10)2)s t l$10,16($15)3)l d l$9,16($15)4)s t l$9,20($15)5)l d l$9,12($15)6)l d l$10,16($15)7)l d i$l l,-4($31)(a) B e fo r eFig. 2 Redundant code exam ples图2冗余代码示例在图2所示的目标码中,寄存器$10在语句2) 中被存人内存16($15)的位置,而语句6)需要从同 一内存位置16($15)取出相同变量,由于语句2)的源寄存器和语句6)的目标寄存器相同,而在2条语 句之间并没有对寄存器$10和内存中16($15)改变的指令,所以语句6)中的ldl为冗余访存指令,该语 句可在后续的优化过程中被直接删除.1)s t l$9,0($10)2)stl $10,16($15)3)l d l$9,16($15)4)s t l$9,20($15)5)l d l$9,12($15)6)l d l$10,16($15)7)l d i$l l,-4($31)(b) A f t er1934计算机研究与发展2017, 54(9)通过对S Q E M U的后端编码器按T C G中间表示生成的目标平台代码进行语义分析,通过提取操作码和寄存器,总结归纳出其执行特性,发现其中含有大量如表1所示的冗余指令对.1) s t l-ldl型.如果匹配到的stl和ldl指令之间并没有对同一寄存器进行重新赋值,且偏移量不变,则ldl指令为冗余指令.2) s t l-stl型.如果匹配到的2条stl指令之间并没有对同一寄存器进行重新赋值,且偏移量不变,则第2条stl指令为几余指令.3) ldl-ldl型.如果匹配到的2条ldl指令之间并没有对同一寄存器进行重新赋值,且偏移量不变,则第2条ldl指令为冗余指令.4) ldl-stl型.如果匹配到的ldl和stl指令之间并没有对同一寄存器进行重新赋值,且偏移量不变,则stl指令为冗余指令.T ab le 1 R ed u n d a n c y T yp es o f In s tru c tio n表1访存指令冗余类型stl-ldl Type stl-stl Type ldl-ldl Type ldl-stl Typestl r a»disp(r6) ldl r a, disp(r6)stl r a»disp(r6)stl r a»disp(r6)ldl r a»disp(r6)ldl r a, disp(r6)ldl ra »disp(r6)stl r a»disp(r6)3冗余指令的优化思路目标码中使用大量的临时寄存器来处理指令中 数据运算与传递,针对目标平台后端生成的Alpha 代码的特点,将活性分析和窥孔优化理论应用到S Q E M U的后端代码优化过程中,以达到删除冗余代码,降低代码膨胀率的目的.活性分析理论通常用 于编译器中以判断临时变量的活跃,对基本块的正 确划分是活性分析的前提.正确划分基本块的关键就是确定基本块的首地址,基本块首地址按照一定规则确定,例如程序人口点、分支指令的下一条指令、分支指令的目标地址等.其中,在处理分支指令的目标地址时情况较复杂,首先分析X86指令,找 到分支指令,并分析其后的目标地址,以分支指令的 目标地址作为基本块的首地址.若间接跳转指令为 call指令,由于其目的地址一定是某函数的首地址,而该函数的首地址往往在上一个函数的return指 令之后,则根据划分规则,必然会被确定为基本块首 地址;若分支指令j u m p是直接跳转指令,则其目的 地址一定是一个常数,能够从静态二进制翻译后得到的目标代码中直接获取到;若j u m p为间接跳转指令,由于间接跳转指令的目标地址依赖于程序运 行时寄存器的值,在静态二进制翻译中无法确定该指令的目标地址,因此间接跳转指令的目标地址确定问题成为静态二进制翻译的关键问题之一.间接跳转指令的存在会导致静态翻译模式自动 翻译某些程序时失败,但当静态翻译成功翻译时,生 成程序的正确性是可以保证的.解决间接跳转指令目标确定问题是为了完备的代码挖掘,即使用间接 转移指令的目标地址来定位后继指令位置以确定基 本块.针对间接跳转指令的目标地址确定问题,课题 组相继进行了不懈探索:吴伟峰提出一个改善其完备性的亚纯静态二进制翻译框架[13],该框架基于静 态二进制翻译,并为翻译器提供此待翻译二进制程序对应的制导文件,翻译时根据制导信息提取系统(control and guide information picking system, C G I P S)提供的信息,有效解决间接跳转、间接调用 和自修改代码等制约静态二进制发展的翻译完备性 问题;卢帅兵提出在S Q E M U中使用源地址索引映 射表来确定间接跳转指令目标地址[1°],以解决在静 态二进制翻译中目标地址依赖于程序运行时寄存器 的值,且在多次运行时分支目标地址可能改变而无法确定该指令目标地址的问题,但S Q E M U是针对 逐条指令翻译,破坏了基本块的整体性,无法采用针 对基本块中冗余访存指令的优化算法.结合实验室目前的研究成果,在实际处理间接 跳转指令时,本文在静态二进制翻译框架S Q E M U 的基础上,使用文献[13]提出的执行路径逆向构造算法和特定路径的控制执行算法,利用线性扫描反汇编工具ob j d u m p处理待翻译程序,获得逆向构造 所需汇编指令,进而定位出静态二进制翻译中影响基本块划分的间接跳转指令目标地址.按照上述分析和算法,能够确定基本块首地址,进而全面正确地划分基本块.3.1针对常规冗余指令的优化在对冗余访存指令优化前,先根据指令特性以 及相邻目标码间寄存器的使用关系,通过分析目标 码生成指令特定数据依赖图I D D G.它以T C G中间 表示生成的汇编码q e m u. a s m作为输人,将目标码 顺序生成相对应的指令相关节点,每个节点由相应 指令的信息(操作码、寄存器、立即数等)组成.一旦 指令相关节点确立,节点之间的数据依赖关系则根据源寄存器和目的寄存器之间的使用关系被同时确 立,且这2个节点用定向性依赖边相连.因此,整个 I D D G 包括指令特性节点和依赖边.谭捷等:二进制翻译中冗余指令优化算法在生成数据依赖图以前,先给出以下相关定义:定义1.输出变量集合O w(S).输出变量代表着对寄存器的写操作,由语句S的所有输出变量组成的集合称为S的输出变量集合.定义2.输人变量集合h(S).输人变量代表着对寄存器的读操作,由语句S的所有输人变量组成的集合称为S的输人变量集合.定义3.引用变量集合U«K S).表示语句S中被引用到的变量的集合.定义4.定值变量集合D e/(S).表示语句S中被定值变量的集合.定义5.依赖关系.对于计算机程序,当事件或动作A必须先于事件B而发生时,称B依赖于定义6.数据依赖关系.依赖关系是由于读/写或计算/使用同一数据而引起的,称这种关系为数据依赖关系.已知语句S和T,若存在变量:r使之满足下述条件之一,则称语句T依赖于语句S,记为S3T;否则,语句S和T之间不存在依赖关系.1)若同时有:r e o M K s),:r e^^(T),且:^使用由S计算出的:r的值,则称T流依赖于S,记为T^S,用弧线表示.2)若同时有:^^(3),:^0似(:0,但3使用的值先于T对:r的定值,则称T反依赖于S,记用带X的弧线表示.3)若同时有e〇m z:(s),e〇m z:(7"),且 s对工 的定值先于T对:r的定值,则称T输出依赖于S,记为S<TT,用带。

动态二进制翻译优化研究的开题报告

动态二进制翻译优化研究的开题报告

动态二进制翻译优化研究的开题报告一、选题背景随着计算机技术的不断发展,二进制翻译技术在计算机系统中扮演着越来越重要的角色。

动态二进制翻译技术是一种基于虚拟化技术的二进制翻译技术,它能够在不修改原始二进制代码的情况下,将其翻译成目标平台的指令集,从而实现跨平台的应用程序运行。

然而,由于动态二进制翻译技术需要在运行时进行指令翻译,因此其性能往往受到较大的影响。

为了提高动态二进制翻译技术的性能,研究者们提出了各种优化方法。

其中,基于翻译缓存的优化方法是一种比较有效的方法,它通过缓存已经翻译过的指令,避免重复翻译,从而提高翻译效率。

然而,由于翻译缓存的大小和命中率对性能影响较大,因此如何优化翻译缓存成为了动态二进制翻译优化的一个重要研究方向。

二、研究目的和意义本文旨在探究动态二进制翻译优化中基于翻译缓存的优化方法,分析不同的翻译缓存替换策略对性能的影响,并提出一种优化策略,以提高动态二进制翻译技术的性能。

本研究的意义在于:1.对动态二进制翻译技术进行深入研究,提高对其原理和性能的理解。

2.分析不同的翻译缓存替换策略对性能的影响,为动态二进制翻译技术的优化提供参考。

3.提出一种优化策略,以提高动态二进制翻译技术的性能,为跨平台应用程序的运行提供更好的支持。

三、研究内容和方法本文将分为以下几个部分:1.介绍动态二进制翻译技术的原理和实现方法。

2.分析翻译缓存的基本原理和不同的替换策略,并比较它们的性能。

3.提出一种基于翻译缓存的优化策略,以提高动态二进制翻译技术的性能。

4.使用模拟器对不同的翻译缓存替换策略和优化策略进行实验,并分析实验结果。

本研究将采用实验和理论相结合的方法,通过模拟器进行实验,分析不同的翻译缓存替换策略和优化策略对性能的影响,并基于理论分析提出相应的优化策略。

四、论文结构本文将分为以下几个部分:第一章:选题背景和研究意义,介绍本研究的背景和研究目的。

第二章:相关技术介绍,介绍动态二进制翻译技术的原理和实现方法,以及翻译缓存的基本原理和不同的替换策略。

基于优先级动态二进制翻译寄存器分配算法

基于优先级动态二进制翻译寄存器分配算法

基于优先级动态二进制翻译寄存器分配算法
基于优先级动态二进制翻译寄存器分配算法是一种用于编译器优化的算法。

它主要用于为程序中的变量分配寄存器。

该算法的基本思想是通过对程序中的变量进行动态的分析和排序,来确定每个变量在程序中的优先级,然后将寄存器分配给
这些变量。

这样可以在保证程序正确性的前提下,尽可能地减少程序中需要访问内存的次数,从而提高程序的执行效率。

在实现该算法时,首先需要进行变量的动态排序。

具体来说,需要对程序中的每个变量进行分析,包括变量的生存期、使用频率以及在程序中的位置等信息。

然后,根据这些信息对变量进行排序,确定每个变量的优先级。

接下来,根据变量的优先级,将寄存器分配给这些变量。

具体来说,算法将从高到低地遍历变量列表,为每个变量分配一个寄存器。

如果当前变量在之前的分配中已经被分配了寄存器,则将该变量的寄存器分配给下一个变量。

最后,需要将分配结果写入目标代码中。

具体来说,算法将会为每个变量生成一个寄存器分配指令,并将这些指令插入到目标代码中的适当位置。

总之,基于优先级动态二进制翻译寄存器分配算法是一种可行的编译器优化算法,它能够在保证程序正确性的前提下,尽可能地减少程序中需要访问内存的次数,从而提高程序的执行效率。

动态二进制翻译中的标志位优化算法

动态二进制翻译中的标志位优化算法

动态二进制翻译中的标志位优化算法
王荣华;孟建熠;陈志坚;严晓浪
【期刊名称】《浙江大学学报(工学版)》
【年(卷),期】2014(048)001
【摘要】为了提高动态翻译器对标志位的模拟与处理效率,针对程序中比例较高的“比较-条件转移”指令对,提出标志位快速映射方法.该方法通过动态识别与提取源程序翻译块内的“比较-条件转移”指令对,利用目标架构的条件依赖关系特征实现“比较-条件转移”指令的高效映射,避免了对这类特殊的标志位定值与引用实施统一而复杂的处理,从而提高动态翻译与执行的速度.基于QEMU的模拟器运行基准程序显示,基于该方法翻译生成的目标标志位处理指令总数比采用其他主流方法减少约20%~90%.
【总页数】6页(P124-129)
【作者】王荣华;孟建熠;陈志坚;严晓浪
【作者单位】浙江大学超大规模集成电路设计研究所,浙江杭州310027;浙江大学超大规模集成电路设计研究所,浙江杭州310027;浙江大学超大规模集成电路设计研究所,浙江杭州310027;浙江大学超大规模集成电路设计研究所,浙江杭州310027
【正文语种】中文
【中图分类】TP314;TN332
【相关文献】
1.运算器中全加器标志位的逻辑设计与应用 [J], 汤龙梅;陈敏;许雪林
2.标志位在单片机系统中的应用 [J], 张博;东方
3.Torus网络中基于标志位的容错路由 [J], 李银;梁家荣;伍华健
4.X86系统仿真中软硬协同标志位处理优化方法 [J], 陈慧超;蒋烈辉;刘强;娄睿
5.二进制翻译中的标志位优化技术 [J], 马湘宁;武成岗;唐锋;冯晓兵;张兆庆
因版权原因,仅展示原文概要,查看原文内容请购买。

二进制翻译下的优化进程框架的开题报告

二进制翻译下的优化进程框架的开题报告

二进制翻译下的优化进程框架的开题报告题目:二进制翻译下的优化进程框架一、研究背景与意义随着计算机技术的不断发展,二进制翻译技术在编写反汇编、仿真、安全分析等领域中得到了广泛的应用,而优化进程则是使计算机系统性能优化的根本手段之一,其优化能力是通过在运行时对二进制代码进行重组、修剪、插入等变换操作来实现的。

因此,将优化进程应用到二进制翻译中,能够有效提升翻译后的程序性能,同时也有助于为对二进制代码进行分析和修改的工具提供更多的优化手段。

二、研究内容与目标本文的研究内容是基于二进制翻译技术,利用优化进程优化翻译后的程序。

具体来说,本文将分析二进制代码的特点,设计并实现一个基于传统优化进程的优化框架,用于对翻译后的程序进行优化修剪、变换等操作。

通过对老旧二进制程序的实际应用,验证该优化框架的实用性,并对其优化效果进行评估。

三、研究方法与步骤本文的研究方法主要包括:1. 通过二进制反汇编工具(如IDA)获得翻译后的程序代码,并进行分析。

2. 设计并实现一个基于传统优化进程的优化框架,包括代码修剪、汇编指令优化、指令流变换等操作。

3. 在测试样例中对翻译后的程序进行优化,并观察其运行速度、内存利用率等方面的改善情况。

4. 对优化效果进行评估,并对优化框架的实用性进行验证。

具体的研究步骤为:1. 对二进制程序文件进行反汇编操作,获取其对应的汇编代码。

2. 对汇编代码进行分析,确定需要进行优化的代码段以及需要优化的操作。

3. 设计并实现一个基于传统优化进程的优化框架,用于进行代码修剪、汇编指令优化、指令流变换等操作。

4. 在测试样例中对翻译后的程序进行优化,并观察其运行速度、内存利用率等方面的改善情况。

5. 对优化效果进行评估,包括性能优化程度、代码质量、可靠性等方面的评估。

6. 最后,对优化框架的实用性进行验证,验证并验证它是否能够适用于其他翻译工具或具有类似功能的工具中。

四、预期成果与结论通过本文的研究,预期可以设计并实现一个基于传统优化进程的二进制翻译优化框架,能够对翻译后的程序进行代码修剪、指令优化、指令流变换等操作,提升程序的运行速度和内存利用率。

注解信息制导的动态二进制翻译器内存优化的开题报告

注解信息制导的动态二进制翻译器内存优化的开题报告

注解信息制导的动态二进制翻译器内存优化的开题报告
一、研究背景
在计算机体系结构中,翻译器是至关重要的,它将一种计算机的源代码(或二进制代码)翻译成另一种计算机的可执行代码。

在现代计算机体系结构中,二进制翻译器在虚拟化、安全和性能方面起着关键作用。

为了改善代码翻译的性能,许多翻译器使用了动态二进制翻译技术。

动态二进制翻译器能够有效地将源代码翻译成目标代码并提高性能。

然而,动态二进制翻译器在执行过程中会占用大量内存。

为了解决这个问题,注解信息制导的动态二进制翻译器内存优化技术进入了人们的视野。

该技术使用注解信息来指导翻译器选择更有效的内存使用模式,减少内存占用量并提高性能。

二、研究目的
本研究旨在对注解信息制导的动态二进制翻译器内存优化技术进行研究,探究其优化内存使用和提高性能的能力,同时通过实验来验证其实际效果。

三、研究内容和方法
1. 分析注解信息制导的动态二进制翻译器原理和内存优化技术。

2. 对翻译器内存占用分析,并根据分析结果提出内存优化方案。

3. 实现注解信息制导的动态二进制翻译器,并加入内存优化方案。

4. 设计实验,验证优化方案的实际效果。

四、研究意义
本研究的成果将有助于提高动态二进制翻译器的性能,并可将其应用于虚拟化、安全等领域,从而提升计算机体系结构的整体性能。

五、预期成果
本研究将设计出一种注解信息制导的动态二进制翻译器内存优化技术,并在实验中验证其能够有效地减少内存使用和提高性能的能力。

该成果将为现代计算机体系结构的发展做出一定的贡献。

注解信息制导的动态二进制翻译及优化

注解信息制导的动态二进制翻译及优化

注解信息制导的动态二进制翻译及优化李剑慧;王昀;黄波;乐永年;刘江宁;叶锦云【期刊名称】《小型微型计算机系统》【年(卷),期】2007(28)3【摘要】动态二进制翻译器在运行时将源体系结构机器码翻译为目标体系结构机器码.这种即时编译技术使得源机器上的软件无需重编译就可以直接在目标机上较高效地运行.然而,利用动态二进制翻译器运行源软件的效率大大低于针对目标机器重新编译运行源软件的效率.本文在比较分析动态翻译生成的目的机器码的性能偏低的原因的基础上,提出了注解信息制导的动态二进制翻译及优化的方法.本文选取了三种注解信息,在英特尔的商用动态二进制翻译器"IA-32 Execution Layer" 和静态编译器"Intel(r) Compiler"上实现了注解信息制导的动态二进制编译及优化技术.实验结果表明该三种注解信息较大程度地提高了动态翻译码的执行效率.【总页数】8页(P558-565)【作者】李剑慧;王昀;黄波;乐永年;刘江宁;叶锦云【作者单位】复旦大学,计算机科学与工程系,上海,200433;英特尔,中国软件中心,上海,200241;英特尔,中国软件中心,上海,200241;英特尔,中国软件中心,上海,200241;英特尔,中国软件中心,上海,200241;英特尔,中国软件中心,上海,200241;英特尔,中国软件中心,上海,200241【正文语种】中文【中图分类】TP331【相关文献】1.系统级动态二进制翻译系统中访存异常的制导技术研究 [J], 张龙龙;董卫宇;王立新2.基于注解信息的系统虚拟机内存寻址优化技术 [J], 刘金鑫;董卫宇;王炜;王立新3.译码制导的动态二进制翻译优化 [J], 董卫宇;王瑞敏;戚旭衍;曾韵4.块链优化技术在动态二进制翻译中的应用研究 [J], 孙光辉; 王丽娟5.基于译码制导技术的动态二进制翻译优化研究 [J], 孙光辉;王丽娟因版权原因,仅展示原文概要,查看原文内容请购买。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
( St a t e Ke y La b o r a t o r y o f Ma t he ma t i c a l En g i n e e r i n g a n d Ad v a n c e d C o mp u t i n g, Zh e n gz h o u 4 5 0 0 0 0, Ch i n a )
I n d e c o d i n g p h a s e , i t e x t r a c t s h i g h - l e v e l s e ma n t i c s f r o m s o u r c e i n s t r u c t i o n s , a t t a c h e s a p p r o p r i a t e a n n o t a t i o n s t o t h e m a c — c o r d i n g t o t h e c o n t e x t , a n d i n t r a n s l a t i o n p h a s e , i t e mi t s o p t i mi z e d l o c a l i n s t r u c t i o n d i r e c t l y u s i n g t h e a n n o t a t i o n i n f o r — ma t i o . Th n e t e c h n i q u e ma y i d e n t i f y mo s t b l o c k - l e v e l o p t i mi z a t i o n o p p o r t u n i t i e s o f d y n a mi c b i n a r y t r a n s l a t i o n s y s t e m,
Ab s t r a c t Th e p a p e r i n t r o d u c e d a d e c o d i n g — d i r e c t e d l i g h t we i g h t o p t i mi z a t i o n t e c h n i q u e f o r d y n a mi c b i n a r y t r a n s l a t i o n .
B RI D GE u s i n g a b o v e t e c h n i q u e g e t s a d e c r e a s e o f 5 3 , w h i l e t h e t r a n s l a t i o n b l o c k s i z e d e c r e a s e s b y 7 8 , a n d t h e l o a d /
第4 2 卷 第 6 期 2 0 1 5年 6月

算Байду номын сангаас



Vo 1 . 4 2 No . 6
Co mp u t e r S c i e n c e
J u n e 2 0 1 5
译 码 制导 的 动 态 二 进 制 翻 译 优 化
董卫宇 王瑞 敏 戚旭衍 曾 韵
( 数 学工程 与先 进计 算 国家 重点 实验 室 郑州 4 5 0 0 0 0 )
该优 化技 术 的 跨 平 台 X 8 6系统 虚 拟机 A RC H— B R I I  ̄ E的 翻 译 开 销 降低 了 5 3 , 翻 译块尺寸降低 了 7 8 , l o a d和 s t o r e 操 作 数 量 分 别 了 降低 了 5 0 和 2 1 。
关键 词
动 态二 进 制 翻 译 , 系统 虚 拟 机 , 软 件 透 明移 植 , 申威 处 理 器 T P 3 3 2 文 献 标 识 码 A D O I 1 0 . 1 1 8 9 6 / j . i s s n . 1 0 0 2 - 1 3 7 X 2 0 1 5 . 6 . 0 4 1
s t r a t e s t h a t t a k i n g QEMU f o r r e f e r e n c e , t h e t r a n s l a t i o n o v e r h e a d o f c r o s s - p l a t f o r m x 8 6 s y s t e m v i r t u a l ma c h i n e ARCH —
中图法分类号
De c o di ng - di r e c t e d Dy n a mi c Bi n a r y Tr a ns l a t i o n Opt i mi z a t i o n DONG We i — y u W ANG Ru i - mi n QI Xu - y a n Z ENG Yu n
a n d r e mo v e r e d u n d a n c i e s g e n e r a t e d b y l o a d / s t o r e , p r e c i s e e x c e p t i o n s u p p o r t i n g a d n f l a g s h a n d l i n g . E v a l u a t i o n d e mo n —
摘 要 提 出 了一 种 译 码 制 导 的轻 量 级 动 态二 进 制 翻 译 优 化 技 术 , 该技 术 在 译 码 阶段 提 取 源指 令 的 高层 语 义 信 息 , 结
合上 下文对其进行标 注, 并在翻译阶段利 用标 注信 息直接 生成优 化的 目标 指令 。该技 术可识 别动 态二进制 翻译 系统 中主要 的基本块级优化机会 , 去除 l o a d / s t o r e冗余 、 精确异常导致的 冗余和标 志位 处理 冗余。测试表 明 , 相 比 QE MU,
相关文档
最新文档