论文部分内容阅读
随着技术的不断进步和应用领域的不断扩大,计算机系统日益朝着硬件复杂化和软件抽象化的方向发展。硬件复杂化为软件提供了更多的性能优化的机会,而软件抽象化则提高了计算机软件工作者的生产效率。但是,随着硬件复杂化和软件抽象化的程度的提高,其间必然产生日益扩大的鸿沟。这个鸿沟在宏观上体现在高度抽象化的软件在高度复杂化的硬件平台上较低的执行效率,而软硬件之间的运行时环境则是这个鸿沟的物理载体。为了优化高度抽象的软件在高度复杂的硬件上的执行效率,而同时又不损失抽象的软件本身在高生产率上的优势,我们就需要对程序执行模型进行研究。程序执行模型建立在具有指定特征的硬件之上,并服务于具有指定特征的应用程序。对程序执行模型的研究,可以分析硬件特征在程序优化中的实际有效性,可以指导程序的优化并预测程序优化后的执行效率和性能加速比,因此对硬件、应用软件以及运行时环境的设计、分析和优化都有着重要的理论和实际应用价值。鉴于SIMD指令以及动态程序设计语言在近些年来成为了学术界和工业界研究的热点,以及动态程序设计语言的高度抽象性,本文研究在具有SIMD指令集扩展的硬件之上,动态程序设计语言JavaScript的执行模型的建立、分析以及用之来指导对JavaScript程序的性能优化。本文研究成果主要包括:1.提出并分析了新的多线程调度算法:本文研究了Harmony Java虚拟机中的垃圾回收算法,抽象了其中的对象移动任务调度问题,提出了一个新的多线程半在线调度算法并分析了其竞争比。2.设计实现了高效的Java虚拟机SIMD编程接口:本文以Intel X86平台为基础,提出了Harmony Java虚拟机上的SIMD指令的编程接口JVI,并用SpecJVM2008测试程序集测量了JVI的性能,验证了其高效性。3.系统分析了JavaScript语言程序的执行行为:本文通过SunSpider测试程序集,以我们提出的针对JavaScript语言程序的动态类型系统处理算法为基础,系统的分析了JavaScript语言程序在其元数据类型、对象结构、数组结构等方面的执行行为。4.设计实现了高效的JavaScript执行引擎TypeCastor:本文以Harmony Java虚拟机为基础,设计实现了JavaScript语言程序的执行引擎TypeCastor,在其中实现了我们提出的针对JavaScript语言程序的动态类型系统处理算法,并以SunSpider测试程序集为基础测量了TypeCastor的性能,验证了其高效性。5.优化了JavaScript程序在SIMD指令集硬件上的执行性能:本文以我们提出的SIMD应用程序接口JVI以及JavaScript程序执行引擎TypeCastor为基础,设计了JavaScript语言的SIMD指令接口,并以此接口优化并测量了JavaScript程序的执行性能。6.建立并分析了带SIMD指令集硬件上的JavaScript程序的执行模型TPW:本文通过分析JavaScript的执行行为、向量化优化过程以及实验数据,建立一个TPW模型用于描述JavaScript程序的执行行为、指导SIMD优化的过程、并预测SIMD优化后程序的加速比和执行特征。本文的主要创新点有:1.提出了一个新的针对虚拟机垃圾回收中对象移动问题的多线程任务调度算法,并对其进行了严格的竞争比和问题复杂度分析,因此对垃圾回收中的线程调度算法的设计从理论上给出了指导方法。2.首次提出了在Java虚拟机上的SIMD指令的编程接口,并通过实际的应用程序验证了接口的高效性。该接口贴合Java语言的特征、可移植性强并且足够抽象,因此为程序员对Java等语言程序进行向量化优化提供了十分便利有效的工具。3.系统的分析了JavaScript语言的执行行为,总结出其动态类型系统的可静态预测性。同时,利用这一性质,我们设计并实现了一个高效的JavaScript执行引擎TypeCastor,使用这个引擎可以大大的提高实际的JavaScript程序的执行效率。4.建立了首个JavaScript程序在SIMD指令集硬件体系结构上的程序执行模型TPW。该模型可以用以指导对JavaScript程序的向量化优化,并能够对优化结果进行较为准确的预测。