论文部分内容阅读
工艺技术的不断进步、应用需求的不断变化推动着微处理器产业的飞速发展。微处理器体系结构的发展正面临着新的挑战和机遇,开发新的体系结构是微处理器发展的必然趋势。但是大量基于原有体系结构开发的各类软件资源要求新处理器需对原有结构提供二进制代码兼容,这成为新体系结构技术应用和发展的一大障碍。协同设计虚拟机技术使用软硬件协同设计的方法来开发微处理器,同时设计硬件体系结构和在其上运行的虚拟机软件,从而降低了软体系结构和实际硬体系结构间的紧耦合关系,将硬件创新从兼容性中解脱出来,为微处理器体系结构的创新提供了一条新途径。这对于我国发展具有完全自主知识产权的微处理器而言尤为重要。本文在广泛深入了解当前微处理器体系结构研究与协同设计虚拟机技术研究现状的基础上,展开对软硬件协同设计虚拟机的研究。针对协同设计虚拟机研究中的关键问题,就协同设计虚拟机模型与结构、协同设计虚拟机性能以及如何采用软硬件结合的设计手段降低协同设计虚拟机启动开销和稳定执行开销等方面进行了探讨。最后本文实现了一个协同设计虚拟机原型系统,验证了模型的正确性与优化技术的有效性。本文取得的主要研究成果如下:1.提出了一种基于动态二进制翻译的协同设计虚拟机模型。该模型以兼容性和性能为目标,在软件设计上,采用解释执行与翻译相结合的多级动态二进制翻译策略,在硬件设计上,为实现源体系结构的正确高效映射提供相应的硬件支持。基于该模型,对协同设计虚拟机的启动开销和稳定执行开销进行分析和评估,发现对源代码的解释与翻译影响了协同设计虚拟机的启动性能,而翻译后代码中控制转移指令的转移方式影响了协同设计虚拟机的稳定执行性能。此外,本文基于图灵机模型给出了一种协同设计虚拟机的形式化描述,奠定了本文协同设计虚拟机研究的理论基础。2.提出了降低协同设计虚拟机启动开销的译码后指令缓存技术。启动开销是衡量协同设计虚拟机性能的重要指标,这对于交互式应用尤为重要。经对协同设计虚拟机的启动开销进行深入的分析与评测,本文发现启动开销主要来源于解释执行阶段。本文创新设计了译码后指令缓存(Decoded Instruction Cache,DICache),基于解释例程的局部性,DICache通过缓存解释执行过程中的中间结果来减少冗余的指令解析操作,从而降低协同设计虚拟机的启动开销。实验结果表明,DICache能以较小的硬件代价提升较高的性能。3.提出了一种基于DICache的高效混合线索解释执行策略。解释执行过程中各步骤的组织方式对解释执行的效率有着重要影响。集中式解释执行方式效率较低,而效率较高的线索解释执行技术又因译码过程过于复杂而无法用于CISC指令集的解释执行。本文基于DICache提出了一种混合线索解释执行策略,通过DICache实现一种高效的硬件动态预译码,将源指令转换为一种中间表示,在解释例程中通过对DICache快速访问实现对CISC指令集的线索解释执行,从而进一步有效降低协同设计虚拟机的启动开销。4.提出了降低协同设计虚拟机稳定执行开销的直接控制转移指令链接技术。协同设计虚拟机转换后的目标代码存储在虚拟机的代码Cache中,代码Cache中控制转移指令的转移方式影响着协同设计虚拟机稳定执行时的性能。本文针对直接控制转移指令提出了一种软件实现的直接控制转移指令链接算法,将直接控制转移指令的目标地址直接定位于翻译后的目标代码块,从而有效减少协同设计虚拟机执行代码Cache中代码块时产生的查表和上下文切换操作,提高虚拟机稳定执行的性能。5.提出了基于间接控制转移地址缓冲的间接控制转移指令动态链接技术。间接控制转移指令的转移目标地址在程序执行的过程中可能被动态改变,无法通过软件手段有效链接。本文提出一种硬件实现的快速间接控制转移地址缓冲,存放经常访问的间接控制转移指令目标地址,在此基础上通过在目标代码执行过程中快速访问间接控制转移地址缓冲实现对间接控制转移指令的动态链接,从而减少查表和上下文切换操作,降低了协同设计虚拟机的稳定执行开销。依据上述创新研究成果,本文设计并实现了协同设计虚拟机原型系统TransARM,其源体系结构为CISC类型的IA-32结构,目标为RISC类型的ARM结构。TransARM的实现对本文研究工作中提出的模型和算法进行了有效验证,同时也探讨了协同设计虚拟机实现中的一些关键技术问题。TransARM提供了一个协同设计虚拟机的研究平台,同时具有很好的实用价值。