【毕业学位论文】(Word原稿)MIPS到 IBM POWER 的动态二进制翻译-计算机软件工程_第1页
【毕业学位论文】(Word原稿)MIPS到 IBM POWER 的动态二进制翻译-计算机软件工程_第2页
【毕业学位论文】(Word原稿)MIPS到 IBM POWER 的动态二进制翻译-计算机软件工程_第3页
【毕业学位论文】(Word原稿)MIPS到 IBM POWER 的动态二进制翻译-计算机软件工程_第4页
【毕业学位论文】(Word原稿)MIPS到 IBM POWER 的动态二进制翻译-计算机软件工程_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

动态二进制翻译 第 1 页 /共 43 页 动态二进制翻译 摘要 现代计算机系统在设计上采用了分层架构,整个系统可以划分为若干个软件和硬件层,上下两层之间具有严格定义的接口,从而保证各层可以紧密协同工作。这些软硬件接口组合起来,构成了上层软件的运行平台。一般地, 传统的计算机软件与下层的机器平台有着强烈的依赖关系, 一个软件总是针对某种特定的运行平台编写的,必须在这种平台上才能正常工作。 可是 这 大大 影响了软件的可移植性及可移动性 ,也使机器平台的进一步发展受制于大量业已存在的软件 , 为了保证向前兼容性不能在软硬件接口上进 行革新 。而虚拟机的出现解决了这一难题,其作为软硬件之间的中间层解除了两者间的耦合关系,使得软件的二进制代码具有了平台的独立性。 虚拟机 能够通过模拟的方法,为上层软件提供一个虚拟的运行平台。在虚拟机的支持下,原本运行于一种软硬件平台上的软件,可以不经改动运行于另一种平台。这种简单的思想,有着广阔的应用价值和研究意义。 展望未来,计算机系统必将朝着并行化、网络化的方向发展,针对这样分布的、孤立的计算机系统编写软件将较难充分利用各节点计算机资源。通过虚拟机技术,则将可以分布于网络上的计算机运算、存储等资源抽象化为一个 统一的运行平台,大大提高了对网络资源的利用。 根据在计算机系统架构中实现虚拟化的层次不同,可以将虚拟机分为系统级虚拟机和进程级虚拟机。 二进制翻译( 实现高性能虚拟机的关键技术,它对源机器的二进制机器代码进行转换后使其运行在目标机器上。 本文所涉及二进制翻译为进程级动态二进制翻译 ,能够完全模拟源平台的 该系统必须在目标平台上完成源平台软硬件资源的逻辑抽象、源平台操作系统中各种系统调用的模拟、软硬件结合的系统异常机制的模拟。 本文基于上海交通大学研制的动态二进制翻译基础平 台 项目基 于多源多目标 的架构, 研 究 如何使用一般的中间表示 来 支持云端的 主流平台 ,如何翻译不同的 应用程序二 进制接口( 括系统调用和 及如何支持大规模的分布式翻译系统 , 并 使用中间语言 支持多语言的前端和后端翻译。其在工作中一般涉及两个主要过程, 二进制代码翻译过程及翻译后的目标代码执行过程,通常把这样两个过程简称为 “翻译 ”与 “执行 ”。在整个系统运行时,翻译与执行一般以基本块为单位,翻译过程将源二进制代码翻译为目标二进制代码,并缓存起来,之后执行过程则从缓存中得到目标代码 块,并在本地系统上执行。一般翻译器的执行方式是代码经翻译后立即执行,直到遇见未翻译过的基本块才再次启动翻译过程。 现在它已经有 前端和后端。本项目的目标是向架构中添加一个新的平台 即构建整套由中间语言 的 二进制 翻译,以 实现 台 前端 到 端 的转换。 本文系统介绍了本项目所依赖的关键技术 括其系统架构、中间指令 逻辑上可以大体分为前端( 中端( 后端( 大部分。前端将源机器代码转换为中间指令,中端对中间指令进行进一步转换,后端将中间指令转换为可运行的目标平台机器代码。中间指令有效地解除了了源机器与目标机器的耦 动态二进制翻译 第 2 页 /共 43 页 合,是实现可重定向性的关键。中间指令集 通过对不同处理器指令集进行总结与研究后高度概括的一套指令集系统。构建一个基于中间指令的模拟器,将不同机器平台的指令翻译成中间指令,便可以实现基于中间 指令的可重用平台。中间指令集 现可重定向性的核心。 本文对 个关键模块进行了深入分析,包括内存映像的加载、源机器指令的解释、中间指令的构造和优化,以及目标代码的生成。内存映像的加载是指 端读取的源平台的可执行文件,然后通过解释器翻译成中间语言,该方法必然会产生过高的代码膨胀率,导致生成的指令数过多,性能下降,所以本文探讨了基本块内优化如 式转换和冗余指令删除,代码块链接和热路径或超级块的生成等优化措施的运用。最后将中间代码组成基本 块 后,由执行 引擎执行。其中牵涉到诸如相同代码的缓存机制 及目标平台寄存器的分配问题,由于 存器数目很大,所以无需考虑寄存器分配策略。 本文不但详细介绍了 深入源码,模块化分析了 件的结构的解析,到源平台 中间指令 如何优化包含 指令块 具体中间指令 令的翻译,到目标指令块 构建,最后到 执行。 关键词: 虚拟机,动态二进制翻译, 动态二进制翻译 第 3 页 /共 43 页 O he of is on up of In is on is It to to of of as as up of of of is of of as an in so as to of is on a by on of or to of is is so of of we in to a of to in of be is to on to on on a or in or in in is 动态二进制翻译 第 4 页 /共 43 页 of of it to of on of of of of of is to do on of ab In is a of to on is on on to a to as as to to a to of it to of of is to of is in is as a is on of is to is By of is to a to as a to to to of ab is is to be of is to of so as to it to on of is to is a by It is to a by a on as as of 动态二进制翻译 第 5 页 /共 43 页 is to in of of of of of of in of of as as of or of of by to of of in by so we t to of of in of to by as of LF to to of of 动态二进制翻译 第 6 页 /共 43 页 目录 第一章 . 绪论8 究背景 . 8 拟机分类 . 8 进制翻译 . 10 于本文 . 10 究目标 . 10 文结构 . 10 第二章 动态二进制翻译基础平台 述 . 12 计目标 . 12 重定向 . 12 扩展 . 13 统架构 . 13 间指令集 . 15 述 . 15 间指令集的设计 . 16 间指令的实现 . 17 结 . 22 第三章 模块深入分析 . 23 端平台二进制文件的加载 . 23 译为中间语言表示 . 23 化 . 24 本块内优化 . 24 码块的链接 . 25 路径或超级块的生成 . 25 译为后端可执行代码 . 25 存器分配 . 25 动态二进制翻译 第 7 页 /共 43 页 标代码缓存( 现方法 . 26 行流程 . 26 结 . 27 第四章 基于 实现与分析 . 28 . 28 指令结构 . 29 寄存器使用规则 . 29 . 29 寄存器使用规则 . 30 存映像加载 . 30 载 执行文件 . 31 间语言翻译 . 32 令到 . 33 入到 . 33 间指令的优化 . 35 式 . 35 余删除优化 . 36 标机器指令翻译 . 37 间指令到 令 . 37 行 . 39 试分析 . 40 结 . 40 第五章 结论 . 41 参考文献 . 42 谢辞 . 43 动态二进制翻译 第 8 页 /共 43 页 第一章 绪论 现代计算机系统在设计上采用了分层架构,整个系统可以划分为若干个软件和硬件层,上下两层之间具有严格定义的接口,从而保证各层可以紧密协 同工作。这些软硬件接口组合起来,构成了上层软件的运行平台。一般地, 传统的计算机软件与下层的机器平台有着强烈的依赖关系, 一个软件总是针对某种特定的运行平台编写的,必须在这种平台上才能正常工作。可是这大大影响了软件的可移植性及可移动性,也使机器平台的进一步发展受制于大量业已存在的软件 , 为了保证向前兼容性不能在软硬件接口上进行革新 。 随着移动计算时代的到来,一方面计算机系统越来越呈现出多样性,新的体系结构和操作系统不断涌现,尤其在消费电子市场,各种面向不同应用的计算设备具有明显的平台差异性;另一方面却对计算机系统 间的互操作性要求越来越高,软件被要求能够在不同的机器间移动和运行。这对于传统的计算机系统是一个挑战。本文基于上海交通大学研制的动态二进制翻译基础平台 实质为二进制翻译技术的进程虚拟机,尝试对二进制软件程序与机器平台的依赖关系进行探索,使来自 台的软件能够脱离限制运行在 机器平台上。本章的剩余部分详细描述了本文的研究背景,研究目标,研究过程与研究意义。 究背景 为了解除抽象与接口之间的依赖关系,我们可以用一个中间层置于抽象层次之间,以模糊上下 两个抽象层之间的接口。这个间接的中间层被称形象地称为虚拟机( 虚拟机能够通过模拟的方法,为上层软件提供一个虚拟的运行平台。 拟机分类 按照所提供的虚拟环境的不同,可以将虚拟机分为系统级虚拟机和进程级虚拟机。系统级虚拟机支持完整的一套 括用户指令和特权指令),进程级虚拟机支持一套 户指令加上系统调用)。系统级虚拟机之上可以运行操作系统、 系统级软件,著名的 C 以及 M 系列软件等都属于这一类。进程级虚拟机面向的则是用户程序和应用软件,前面提到的 2、开源软件 个能够让 32 位 序运行在 作系统上的软件包)以及 拟机等都属于进程级虚拟机。 (1) 系统级虚拟机 划分软硬件的边界,由用户级 系统级 成。用户级 非特权指令,包括常见的计算指令、访存指令、控制转 移指令等;系统级 特权指令,比如访问系统寄存器、 此, 于 它能够支持上层的操作系统及其进程, 动态二进制翻译 第 9 页 /共 43 页 使其在一个虚拟系统环境中运行。 如图 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论