文档介绍:国防科学技术大学
硕士学位论文
软硬协同动态二进制翻译系统设计与实现
姓名:徐帆
申请学位级别:硕士
专业:计算机科学与技术
指导教师:王志英
2010-11
国防科学技术大学研究生院硕士学位论文
摘要
动态二进制翻译技术最初被用于解决不同处理器平台间的二进制代码兼容问
题,后被应用于虚拟机设计中,成为实现虚拟机并提升虚拟机性能的重要支撑技
术。目前,动态二进制翻译技术在桌面、服务器、嵌入式等不同规模系统的虚拟
化中均发挥重要作用,被成功地应用于包括功耗管理、系统安全、软件 cache 管理、
指令集翻译以及内存管理等多个方面。然而,传统的基于软件实现的动态二进制
翻译系统存在着的开销较大、代码 cache 管理效率低等固有缺陷。此外,多核时代
的到来也给现有的动态二进制翻译技术提出了新的挑战。如何利用动态二进制翻
译与优化技术充分发挥多核的优势也成为摆在设计者们面前的一项新课题。
软硬协同的动态二进制翻译系统能够有效克服软件动态二进制翻译技术的固
有缺陷,它定制专用硬件模块完成查表、缓存管理等常用功能,从而提高整个系
统的性能。本文在广泛深入研究当前动态二进制翻译与优化技术发展现状的基础
上,探索并提出了在异构多核平台上实现软硬件协同动态二进制翻译系统的方法。
本文取得的主要研究成果有:
1)提出了一种异构双核软硬协同动态二进制翻译系统模型 CDBTS。它将执
行模块放在目标处理器核上,而将翻译模块放在专门定制的协处理器模块上,并
在设置了专用的查表、缓存管理等硬件逻辑,既提高了系统性能,又增强了系统
的灵活性。
2)设计并实现了一种基于缺页中断的动态二进制翻译 VMM。它能捕获用户
程序执行时产生的缺页中断,以较小的开销完成对用户程序执行的监控、对未翻
译代码的捕获和转发、对已翻译代码的链接等工作,并可以很容易地移植到不同
的目标平台上,大大提高了 CDBTS 的灵活性。
3)为 CDBTS 定制了一种基于双端口 RAM 的代码 Cache,大大减少了两个处
理器核访问代码 Cache 的冲突,保证了数据的一致性。研究了代码 Cache 的管理
策略,并实现了对应硬件管理模块。
4)分析了现有的动态二进制优化系统的优势和不足,结合多核平台的特点,
提出了一种面向多核平台的多线程动态优化框架,并深入研究了使用现有技术实
现该动态优化框架的可行性,以及在 CDBTS 模型上实现该框架的方法。
为了验证了上述工作的正确性和有效性,本课题设计实现了一款源体系结构
为 IA-32,目标体系结构为 ARM 的软硬协同动态二进制翻译系统 CDBTS-X2A。
实际测试结果表明,CDBTS-X2A 工作正确,性能优于传统的软件动态二进制翻译
系统。
第 i 页
国防科学技术大学研究生院硕士学位论文
关键词:原型系统;软硬协同设计;动态二进制翻译;微处理器
第 ii 页
国防科学技术大学研究生院硕士学位论文
Abstract
The Dynamic Binary Translation (DBT) Technology was originally used to solve
the patibility problem between two different architectures. It was
subsequently used in design of Virtual Machines (VM), and e a important basic
technology in implementation and improve the performance of VMs. Nowadays, the
DBT technology is playing a important role in virtualization of systems of different
scales such as PC, server and embedded systems, etc. It has been essfully used in
power management, security, software cache management, instruction set translation
and memory management, etc. However, the traditional DBT systems based on software
have some intrinsic defects such as high translat