一个基于即时编译器的GBA模拟器

来源 :电子科技大学 | 被引量 : 0次 | 上传用户:vin0726
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
GBA(Gameboy Advance)是Nintendo公司于2001年发布的便携式娱乐设备。通过软件其它平台(如PC)模拟GBA的运行环境并加载运行GBA的应用称为GBA模拟器。由于硬件平台的不同,一个高效的模拟器可以采用即时编译器(Just-In-Time Compiler)技术,即时的把源机器指令编译成目标机器指令运行。本文的目标就是提出一套方案,在x86平台上实现与优化一个基于即时编译器的GBA模拟器,并进一步展望其在PSP平台上的移植。由于模拟器和二进制转换器的相似性,本文首先对比和分析了现存的各种二进制转换器的方案,回顾了模拟器的发展过程以及技术特点。随后根据GBA平台的特性和复杂度,选择了成熟的基于解释执行的模拟器VBA(Visual Boy Advance)为研究的出发点。本文的核心部分描述了VBA编译内核的实现与优化的过程。首先剖析了原有的基于解释执行模拟器的结构和工作原理。然后提出了要如何基于现有的框架结构实现编译内核。随后分为如下几部分细描述了编译内核的实现机制与运行过程:基本块的划分描述了静态和动态的基本块划分算法,并提出效率上更加优化的“N级预先搜索”算法。基本块的组织根据GBA不同区域内存的大小与访问方式,分析对运行效率有较大影响操作,提出根据访问区域和操作优化过的基本块组织算法。代码生成描述了ARM/THUMB机器指令对应的中间代码,以及生成x86机器指令的过程。编译期优化提出六种编译期优化的手段:只读常量内嵌,常量传播,复制传播,消除无用标志位更新,条件语句合并和指令重排。基于运行时信息的优化程序通过虚拟机运行的一个优点在于,在受控运行状态下,可以采集到运行信息,这些信息是直接在硬件上运行采集不到的。虚拟机可以通过运行时信息做
其他文献
随着计算机技术的飞速发展,人们对软件开发的速度和质量要求都有了很大提高。然而,传统的“手工作坊”式的软件开发状况没有得到根本改变,软件开发技术的发展远远落后于硬件技术
网格作为一项新兴的分布式高性能计算技术正在人类生活中发挥着越来越重要的作用。网格中的数据管理是其关键技术之一,它需要一个高效的副本定位模型来解决网格所处的广域网
软件agent技术是为了解决复杂、动态、分布式智能应用而提供的一种新的计算手段。移动agent是特殊的可以有效的节省网络资源的agent,随着分布式应用系统在规模、复杂程度、分
随着计算机技术的发展,Java作为一种跨平台、易开发的语言,越来越受欢迎。然而其相对较低的性能却是其更广泛运用的一大障碍。尤其是Java对精确异常的支持严重限制了JIT编译器
面向方面编程(Aspect Oriented Programming)是近年来新兴的一种编程思想。它把解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题代码
小波分析是继Fourier分析之后新的时频分析工具,它在科学研究和工程技术中的应用非常广泛。虽然小波理论现已比较成熟,但是近年来有关它的应用研究仍在不断发展更新。小波变
随着计算机及网络技术的飞速发展,其暴露出的安全隐患也日益增多,物联网是一种多维、异构、动态的三层结构网络,与生物免疫系统具有很大的相似性,人们从生物免疫系统中得到灵感,希
虚拟心脏是通过数学建模和计算机仿真等方法在计算机上再现心脏组织和结构的研究课题,虚拟心脏可通过三维可视化方法实现。心脏三维可视化是将一组二维心脏图像通过体绘制等一
移动计算是移动计算机可以在网络中自由移动的计算网络,且移动对用户是透明的。随着移动通信技术的迅猛发展和移动计算机的大量普及,移动计算正成为当今通信发展的一个热点领
电子地图是在信息革命的大背景下,地图学与计算机科学紧密结合的产物。它利用先进的信息技术极大地拓展了地图的用途,促进了地图学的又一次革新。锅炉设备与发电用煤的适应性是