基于IA-64的X微处理器虚拟寄存器技术的研究与实现

基于IA-64的X微处理器虚拟寄存器技术的研究与实现

黄彩霞[1]2004年在《基于IA-64的X微处理器虚拟寄存器技术的研究与实现》文中研究表明随着微处理器技术迅速发展,当前寄存器技术的管理与使用呈现虚拟化趋势。X微处理器是我们自行研制的、与IA-64体系结构完全兼容的一款高性能微处理器。本文从分析IA-64体系结构入手,具体研究与实现X高性能微处理器的虚拟寄存器技术,并提出一种新颖的基于映射表的寄存器堆栈引擎RSE(Register Stack Engine)技术实现方法。 X高性能微处理器中的虚拟寄存器技术主要包括寄存器重命名和RSE。本文详细介绍X高性能微处理器中寄存器旋转和寄存器堆栈方式实现的寄存器重命名,举例说明寄存器旋转支持的软件流水技术如何克服传统循环展开方法给代码优化带来的弊端,并进一步给出通用、浮点和谓词寄存器重命名逻辑的具体实现。在RSE方面,本文深入分析该技术在物理寄存器和存储器之间转移数据的实现条件与工作过程,给出RSE状态机和功能部件的设计实现。 设计验证是确保功能和时序正确的重要手段。本文在概要介绍常用验证方法的基础上,在两个不同的层次对RSE及寄存器重命名功能部件进行验证:一方面在模块级对它们单独进行测试,另一方面把它们与CPU内核进行集成,在系统级作为整个X高性能微处理器的一部分进行测试。后者是通过比对同一测试码在Ski IA-64硬件模拟器和Verilog-xL逻辑模拟下的不同运行结果实现的。 在Itanium微处理器中,RSE技术得以有效实现,但是一个过程内不再使用的物理寄存器在该过程执行结束之前不能释放。本文提出一种新颖的基于映射表的RSE技术实现方法,它将编号连续的虚拟寄存器映射到非连续的物理寄存器,使过程内的任一物理寄存器只要使用完毕就可以及时释放,从而更加高效地利用寄存器资源。该方法完全兼容于IA-64体系结构,并支持寄存器旋转和软件流水等关键技术。

陈微[2]2010年在《基于动态二进制翻译的协同设计虚拟机关键技术研究》文中研究表明工艺技术的不断进步、应用需求的不断变化推动着微处理器产业的飞速发展。微处理器体系结构的发展正面临着新的挑战和机遇,开发新的体系结构是微处理器发展的必然趋势。但是大量基于原有体系结构开发的各类软件资源要求新处理器需对原有结构提供二进制代码兼容,这成为新体系结构技术应用和发展的一大障碍。协同设计虚拟机技术使用软硬件协同设计的方法来开发微处理器,同时设计硬件体系结构和在其上运行的虚拟机软件,从而降低了软体系结构和实际硬体系结构间的紧耦合关系,将硬件创新从兼容性中解脱出来,为微处理器体系结构的创新提供了一条新途径。这对于我国发展具有完全自主知识产权的微处理器而言尤为重要。本文在广泛深入了解当前微处理器体系结构研究与协同设计虚拟机技术研究现状的基础上,展开对软硬件协同设计虚拟机的研究。针对协同设计虚拟机研究中的关键问题,就协同设计虚拟机模型与结构、协同设计虚拟机性能以及如何采用软硬件结合的设计手段降低协同设计虚拟机启动开销和稳定执行开销等方面进行了探讨。最后本文实现了一个协同设计虚拟机原型系统,验证了模型的正确性与优化技术的有效性。本文取得的主要研究成果如下: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提供了一个协同设计虚拟机的研究平台,同时具有很好的实用价值。

唐遇星[3]2005年在《面向动态二进制翻译的动态优化和微处理器体系结构支撑技术研究》文中指出经过叁十多年的发展,微处理器已经进入到社会生产和日常生活的各个领域,并取得了巨大的成功。微处理器产业的成熟,也使得大部分市场应用和软件投资集中到具有垄断性地位的几种体系结构上。为满足永无止境的性能需求,必须不断推出更新、更快、更有效的处理器。但是为了保护原有的大量投资和研究成果,新处理器往往需要保证对原有结构和应用的二进制兼容性。如今,二进制代码兼容已经成为微处理器是否能在市场上存活的关键问题,也成为新体系结构技术应用的障碍。 动态二进制翻译和优化与微体系结构设计相结合,为微处理器性能继续提升,采用创新的体系结构技术提供了新的思路和方法。将与兼容性相关的复杂逻辑交给动态二进制翻译软件,可以使底层硬件更加简洁并能极大的扩展设计空间。动态优化还可以利用程序运行时特有的优化机会,进一步提高性能。这种处理器设计模式可以降低对制造工艺的要求,并通过采用创新设计避开处理器硬件设计中的众多专利障碍,特别适合我国国情。 本文针对动态二进制翻译处理器中的动态优化技术和微处理器体系结构支撑技术展开深入研究。基于可扩展的处理器模型,提出了低开销的快速热点识别技术;系统分析并研究了动态优化的特性,提出了新的优化方法;并根据开销和性能分析提出了动态多级优化框架,掌握了以动态二进制翻译和动态优化为基础进行微处理器设计的关键技术。主要的工作与创新点包括: 1.全面深入地研究了国际上动态二进制翻译和动态优化技术的研究现状与热点方向。特别针对几个对二进制翻译处理器研究有重要影响的研究项目,总结并分析了它们的特点与不足。 2.结合我国发展处理器产业的实际情况,提出基于动态二进制翻译的可扩展体系结构框架Transtar-VISA。以一个全新基于VLIW结构的Transtar-Core为例,展示部分体系结构迁移,从IA-32迁移到新体系结构,以及同时支持多个ISA平台时Transtar-VISA的有效性和可扩展性。 3.深入研究了动态二进制翻译和优化中热点代码发掘问题,提出了适合翻译和优化使用,基于硬件实现的profiling方案-CSP。CSP不会影响用户程序的执行效率,以适当的硬件开销获得了非常精确的热点路径信息。CSP还可以根据翻译和优化的需要调整对执行路径的监测。 4.深入讨论了动态优化的执行环境、调度单位和优化时机等内容,并分析了常用的优化方法。针对硬件难以预测的分支指令,提出了新的动态隐式断言执行优化技术RIMP。 5.为了平衡优化的开销和性能收益,在分析论证的基础上给出了多级优化调度框架FMO。分析了多级动态优化算法下各个阈值的控制原理,并指出了有效优化的关

马湘宁[4]2004年在《二进制翻译关键技术研究》文中研究表明二进制翻译技术是用软件方法解决代码移植问题的重要手段。二进制翻译及相关优化技术的研究,在遗产代码移植、硬件设计、程序性能提高、网络应用、系统安全等方面都有重要的意义,已经成为是现代编译技术研究的热点之一。本文首先综述了二进制翻译的研究现状以及基本原理和方法。然后介绍了我们设计实现的静态二进制翻译系统Bitran和动态二进制翻译系统DigitalBridge,深入研究了动态二进制翻译系统设计中的若干关键优化技术。本文提出了提高二进制翻译系统效率的两种优化手段:提高在目标机器上模拟源机器标志位效率的优化;以及充分利用目标机器寄存器提高翻译生成代码效率的优化。最后本文还对比了Bitran和DigitalBridge系统的性能,对动静结合的二进制翻译框架进行了初步探讨。本文的主要贡献如下:1、设计并实现了两个二进制翻译系统:Bitran静态二进制翻译系统和DigitalBridge动态翻译结合解释执行的二进制翻译系统,对二进制翻译的叁种基本方法进行了全面的探索,为进一步研究二进制翻译技术搭建了有用的实验平台;2、提出动态二进制翻译系统设计中的若干关键优化技术,包括翻译系统的信息传递优化、上下文切换、代码连接、本地码Cache管理等技术。这些技术的应用保证了DigitalBridge动态翻译系统的整体效率,使该系统与同类系统性能相当;3、对解释执行和动态翻译分别提出了标志位模拟优化算法: (1)即时计算与延迟计算相结合的算法,优化解释执行中的标志位处理; (2)数据流分析和延迟计算相结合的算法,优化动态翻译时的标志位处理;这两个算法在DigitalBridge翻译系统中实现并验证了可以有效减少标志位模拟指令数目,提高系统的效率。4、提出了基于DAG图指导的寄存器分配优化算法,该优化算法经过了DigitalBridge系统的正确性和有效性验证,证明可以有效地利用目标机器充足的寄存器,将源机器代码中由于自身寄存器不足而产生的冗余访存指令删除,从而减少了翻译生成代码的数量,提高了翻译生成代码的执行效率。5、对Bitran静态翻译系统和DigitalBridge解释执行结合动态翻译系统进行了进一步实验和分析,并从中总结了关于静态翻译、动态翻译、和解释执行的若干有用结论,促进了动静结合二进制翻译框架的研究。6、给出了二进制翻译系统的效率模型。本文总结了当前二进制翻译系统的翻译运行模式,探讨了在设计二进制翻译系统时选用不同的翻译方法应该考虑包括解释执行的速度、动态翻译的速度、动态翻译生成的代码效率、动态优化的速

马汝辉[5]2011年在《基于多核的虚拟化技术研究》文中研究说明近年来,计算机硬件技术相对于落后软件计算模式的快速发展、大量信息资源的可控管理、服务器整合的需求,以及最近云计算模式的推出,使得虚拟化技术成为近来研究热点之一。虚拟化技术主要是通过软硬件技术方式,将底层的计算资源或者化分为多个运行环境,或者整合成单个运行环境,从而满足对各种应用的要求。虚拟化技术在很多重要领域都具有很高的实用价值,如集成服务,内核的开发,内核的调试,安全计算,多系统并行计算,系统迁移等。另外,Intel、AMD等公司的硬件辅助虚拟化技术弥补了软件虚拟化技术性能降低较大的缺陷,进一步促进了虚拟化技术的发展。多核技术的出现给虚拟化技术的发展带来了机遇。多核处理器的存在,虚拟化的实现方式将更会变得相对容易,因为每个内核都可以运行不同的进程。然而虚拟化不仅仅是每个内核一个虚拟服务器,而是每个内核可同时运行多个虚拟机。多核虚拟化技术的集中化计算、动态分配资源、充分利用系统资源等等优势,都可以让企业和普通用户用较少的硬件来完成较多的工作,并且获得更优的性能。本文就是结合多核思想进一步优化虚拟化技术,针对这一问题,具体的研究工作如下:1.分别定性和定量分析了动态二进制翻译系统的各个执行开销,根据分析结果,利用多核技术将翻译部分、执行部分和优化部分分别线程化。另外,本文提出了基于动态工作集变迁的Code Cache替换策略,同前人研究相比,该策略更加符合程序的行为,反映了程序的局部性特性。2.提出了基于翻译、执行部分与优化部分的多线程版本的动态二进制翻译系统(MTCrossBit)。在该系统中,引入新的超级块生成线程(优化线程),并利用多核处理器的优势和多线程执行的优点获得性能加速。为了解决线程间通信问题,提出了一种无锁机制的通信机制(ASLC),避免了加解锁算法的控制,防止出现盲等待现象;还提出了各线程间私有Code Cache的策略,防止了各线程间彼此污染Code Cache,达到多线程系统的高度并行性。3.提出了基于翻译、优化部分与执行部分的多线程的动态二进制翻译系统(MTEE CrossBit)。在该系统中,根据执行部分需求,将翻译部分和超级块优化部分线程化,增加翻译线程,实现并行翻译,这个过程中避免了传统动态二进制翻译系统中的翻译与执行部分的上下文切换操作。同样地,为了合理地协调各线程间的工作,本论文提出了BranchTree模块,它不仅可以管理多线程的并行翻译操作,而且可以协调完成执行线程与优化线程的工作。4.提出了基于KVM的嵌入式虚拟化系统的两种软件调优方法。在嵌入式虚拟化系统中,为了减小GP客户系统对RT客户系统的影响,本论文提出一种提升实时任务优先级的调度策略,它大大减小了GP任务对系统实时性能的影响;接着,本论文提出一种利用多核技术的专有核绑定的调优策略,在该策略中,一些可操作的中断命令以及GP任务都通过硬亲和力技术绑定到一个专有核上,而实时任务被分配到另外一个核心上,这样可以避免其他任务对RT任务的影响。5.提出了基于KVM的嵌入式虚拟化系统的两种硬Cache调优方法。本论文结合页表预取技术、Cache架构以及Page coloring思想分别提出了基于硬Cache的预取策略和划分策略。同前人研究工作相比,本论文的工作是在真实物理环境下实现的,而不是传统的仿真下模拟实现;另外,本论文不是单纯的关注系统本身的吞吐量的大小,而是在注重实时性能的情况下,兼顾了系统的吞吐量。这种实现方式更加贴近实际生活结合。

张军超[6]2005年在《相连多寄存器组体系结构上的寄存器分配技术》文中认为寄存器分配是编译器后端一个十分重要的阶段。寄存器分配的有效性直接影响着编译器的优化效果和处理器性能的发挥。随着计算机体系结构的发展,为了支持多核多线程、异步访存以及减少寄存器件读写端口,出现了一类相连多寄存器组结构的处理器。在这类处理器上分配好寄存器是对编译器的一大挑战。本文对相连多寄存器组体系结构上的寄存器分配关键技术进行了研究。本文的主要贡献如下:1.提出了一种相连多寄存器组结构上的寄存器分配方法。传统通用处理器的寄存器组之间相互独立,各自存放不同类型数据,指令的操作数只能来自唯一一个寄存器组。在这种独立寄存器组结构上只须分别对每个寄存器组使用目前流行的Chaitin方法即可。但在相连寄存器组结构的处理器上,各寄存器组字长相同并有数据通路相连,能存放相同的数据,指令的操作数可来自多个寄存器组。出现了需要确定变量的寄存器组属性及解决寄存器组冲突的新问题,使得Chaitin方法不再直接适用。我们通过提出寄存器组划分图的概念以及对它相应的建立、化简和分裂方法,解决了上述问题。2.提出了叁种双操作数冲突解决技术。为了减少寄存器堆的读写端口个数,进而提高寄存器的访问速度,有的处理器要求所有二元操作指令的两个源操作数必须来自不同的寄存器组。随之出现的新问题是,我们既要为变量指派寄存器组,又要为其分配寄存器,两者之间互相影响。我们提出了冲突图概念,并把这种双操作数冲突约束下的寄存器分配问题分解为二个子问题:组指派子问题和寄存器分配子问题。前者通过对冲突图2-着色解决,后者通过对干涉图K-着色解决。根据解决这二个子问题的次序,提出了叁种方法:先于寄存器分配的组指派、后于寄存器分配的组指派、结合式寄存器分配与组指派。3.提出了一种复写合并与活跃区域分裂相结合的寄存器分配方法。Chaitin方法的一个缺陷是溢出一个活跃区域时会全程溢出,代价较大。我们的方法是事先把活跃区域分裂成多个碎片,然后依赖复写合并激进地合并碎片。如果合并后的活跃区域出现分配失败,就按原来的裂痕进行反合并。由此我们获得了一种在溢出全部活跃区域、溢出部分活跃区域、用拷贝指令换取溢出之间做出更好选择的能力。4.为开放源码编译器ORC增添了新的基础设施。ORC被国内外多所着名大学和研究机构采用,做为其研究平台。我们在ORC中实现了多种图着色寄存器分配方法以及ORC后端的SSA表示。例如Chaitin方法、Briggs乐观式着色方法、George迭代式合并方法和我们提出的新方法。与ORC原有方法相比,我们在253.perlbmk、186.crafty上分别取得了3.4%和13.3%的性能加速比。图着色寄存器分配和SSA表示是编译研究中二个重要的基础设施,我们的实现为ORC平台添加了新的资源。上面提到的前两点在ORC/IXP编译器中实现,第叁点在ORC/龙芯MIPS编译器中实现。

苏铭[7]2006年在《对IA-64结构特性优化代码的二进制翻译技术研究》文中研究指明二进制翻译技术是解决软件移植问题的重要手段,为不同的指令集体系结构(ISA)间转换架起了桥梁,对促进软硬件之间的协调发展有着重要的意义,二进制翻译技术的研究已成为一个热点研究领域并且取得了很多研究成果。目前国内外的大部分二进制翻译系统都是针对源机器为32位机设计和开发的,64位体系结构为二进制翻译技术研究带来了新的挑战。本论文首先对基于IA-64平台的二进制代码翻译理论和实现技术做了充分研究,提出了二进制翻译模型的形式化描述以及描述语言驱动的方法。然后介绍了我们设计并实现的二进制翻译系统ITA及其关键技术。本文结合IA-64的二进制代码特性研究了如何提高静态翻译代码覆盖率的问题,重点讨论了跳转表和switch语句目标地址的恢复方法。最后深入研究了IA-64结构特性优化代码翻译技术:二进制代码中的谓词执行和投机代码消除技术。 本文的主要贡献如下: 1.建立二进制翻译的形式化描述,提出了使用机器描述语言驱动二进制翻译系统实现的方法,并结合可变源和目标的二进制翻译框架,分析了描述语言的应用对二进制翻译系统效率和能力的影响; 2.设计并实现了ITA静态二进制翻译系统,在实现这个系统的过程中,针对IA-64体系结构特性,提出了一些比较实用的技术,包括ELF64文件解码、指令束特性消除、复杂参数识别、语义映射、系统库函数恢复、结构特性优化代码消除等,这些技术的应用保证了ITA二进制翻译系统的正确性和翻译效率。 3.提出了静态恢复跳转表的算法,解决了含有跳转表的IA-64二进制代码的翻译问题。通过ITA翻译系统的有效性和正确性验证,表明该算法可以有效的识别IA-64在不同编译环境下产生的跳转表,恢复跳转目标地址,提高了静态翻译的代码覆盖率。 4.提出了基于谓词分析的谓词代码消除技术,解决了IA-64体系结构中谓词执行特性代码的翻译问题。提出了谓词分析算法,并依据谓词分析的结果实现了指令的反调度、谓词代码消除以及控制流图的优化,这些技术经过验证能显着降低生成代码的结构复杂度,提高了二进制翻译的代码质量。 5.提出并实现了针对IA-64控制投机代码的投机消除算法,解决了投机执行特性给二进制代码翻译以及程序理解带来的问题。该算法将投机代码下沉,消除具有投机形态的指令,并通过恢复代码的验证以及内存二义性消除,从而保证了程序变换前后语义的等价性。经过性能测试,表明该算法可以将带有投机特性的IA-64代码正确翻译到目标机代码,同时有效地提高了翻译生成的代码质量,显着提高了生成代码的执行效率。 ITA二进制翻译系统的正确性和有效性为本文取得的研究成果提供了保证,目前该系统已经通过了800多个C语言程序(约40多万行源代码编译生成的上百万条IA-64指令)

柯维[8]2013年在《DSP-DX取指派发部件的设计优化与实现》文中认为DSP-DX CPU是一款支持定点和浮点运算的新一代DSP,采用支持8流出的VLIW结构。传统VLIW体系结构的DSP具有指令代码体积大,存取效率低的问题。为解决这些问题,DSP-DX CPU采用了16位/32位混合指令集和跨边界派发技术。这些技术的逻辑结构在取指部件的指令接收站(PR站)和派发部件的指令派发站(DP站)实现。由此增加了取指派发部件实现的复杂度和时延。在40nm工艺和SS的情况下需要对取指派发部件进行逻辑结构和时序优化以保证设计目标的实现。按照DSP-DX CPU的设计要求,本文主要完成如下的工作1.为压缩代码体积和提高执行效率,取指派发部件采用跨边界派发技术和16位/32位混合指令技术,对派发部件的结构进行设计和验证,特别对并行位ID和分支ID产生电路及指令派发控制位产生等电路进行了逻辑设计,提高了指令执行并行度并验证了其功能正确性。2.用微体系结构优化的方法完成关键模块的时序优化,利用DC综合工具对取指派发部件进行综合优化,找出关键路径,确定各个模块的优化实现策略,调整了关键路径上的逻辑结构,优化结果表明消除了关键路径延时,达到总体设计目标要求。3.采用手工半定制设计的方法完成了取指派发部件物理设计,并通过DRC和LVS检查,达到了比较好的时序优化效果。

唐锋[9]2006年在《动态二进制翻译优化研究》文中研究指明二进制翻译技术是用软件方法解决代码移植问题的重要手段。二进制翻译及相关优化技术的研究,不仅在遗产代码移植而且在程序性能提高等其它方面都有重要的意义。本文首先综述了二进制翻译的研究现状以及基本原理和方法。针对动态二进制翻译,本文提出了若干种优化方案:提高在目标机器上模拟源机器标志位效率的EfLA算法;处理应用级主动异常和被动异常的两个算法;翻译制导的寄存器优化算法。本文介绍了我所在二进制翻译研究组设计并实现的两个应用程序级的二进制翻译器:Digital Bridge和Digital Bridge V2。两个系统都是在linux下,把elf格式的x86文件翻译到GODSON(类MIPS)指令集并在GODSON服务器上运行。前者是纯动态的翻译器,后者是以前者为基础的动静结合的翻译器。本文的主要贡献如下:1.提出了动态二进制翻译标志位处理优化算法,简化了基本块间的标志位分析,采取分析后继的方法减小了算法开销。尤其对于每条算术指令都能对标志位定值的x86这类CISC体系结构,基本能把标志位冗余计算消除,提升了翻译代码的质量。统计结果表明,这种简化是切实可行、并具有普遍适用性的,可以在二进制翻译或者模拟器中有效加快运行速度。2.异常处理是二进制翻译中一个十分重要的问题,本文提出了两个针对应用级程序二进制翻译的异常处理方法。绝大部分的应用程序不会使用异常之前的机器状态或者也有可能不发生异常,所以我们在保证正确性的前提下,放弃了对机器状态副本的维护,使效率得到了保障,同时正确翻译执行了异常的处理函数,以最小的代价,把信号异常处理机制加入到了翻译系统中。为了在库函数包装这个层面上快速处理c++中的异常抛出以及重新抛出的问题,我们提出了动态栈展开的思想,从而得到本该静态编译阶段才可以得到的函数调用关系,分析得到caller调用callee的准确地址,用于异常区间的检查。3.寄存器的使用效率是决定程序性能的关键因素之一,本文提出了适用于动态二进制翻译的翻译制导寄存器分配方法。相比于静态编译器所使用的图着色算法,以及动态系统所使用的线性扫描寄存器分配算法,开销都小得多,但翻译器的寄存器使用效率很好,完全充分利用了各个寄存器,避免了寄存器相关而导致的指令延时。4.作者参与设计并实现了两个二进制翻译系统,并把上述优化都分别运用到了这两个系统中。在DB V2系统中还采用了一系列优化技术提高翻译效率,例如库

蒋伟宏[10]2002年在《嵌入式通信平台设备接口驱动的设计与实现》文中指出嵌入式系统正处在一个飞速发展和激烈竞争的阶段,Linux作为一种强大的开放式的操作系统,被越来越多地应用在嵌入式系统当中。由于Linux作为嵌入式操作系统所具有的一些优点,我们选择它作为嵌入式通信平台的操作系统。而在嵌入式Linux操作系统下开发设备驱动程序是一项复杂但却很有意义的工作,它要求开发人员具有一定的理论基础和编程经验。 论文介绍了自行研制开发的嵌入式通信平台的总体结构,总结了在该通信平台上基于嵌入式Linux操作系统进行软件开发的方法,具体研究了软件开发环境的构建方法与嵌入式Linux下的软件调试技术;通过对Linux下的设备驱动程序原理的分析,总结了不同类型的设备驱动程序的设计思想与实现方法;在此平台上设计并实现了基于嵌入式Linux操作系统的I~2C总线接口的驱动;设计了通信平台上I~2C接口的用户应用程序;设计、实现了基于嵌入式Linux操作系统的以太网接口的驱动。

参考文献:

[1]. 基于IA-64的X微处理器虚拟寄存器技术的研究与实现[D]. 黄彩霞. 国防科学技术大学. 2004

[2]. 基于动态二进制翻译的协同设计虚拟机关键技术研究[D]. 陈微. 国防科学技术大学. 2010

[3]. 面向动态二进制翻译的动态优化和微处理器体系结构支撑技术研究[D]. 唐遇星. 国防科学技术大学. 2005

[4]. 二进制翻译关键技术研究[D]. 马湘宁. 中国科学院研究生院(计算技术研究所). 2004

[5]. 基于多核的虚拟化技术研究[D]. 马汝辉. 上海交通大学. 2011

[6]. 相连多寄存器组体系结构上的寄存器分配技术[D]. 张军超. 中国科学院研究生院(计算技术研究所). 2005

[7]. 对IA-64结构特性优化代码的二进制翻译技术研究[D]. 苏铭. 解放军信息工程大学. 2006

[8]. DSP-DX取指派发部件的设计优化与实现[D]. 柯维. 国防科学技术大学. 2013

[9]. 动态二进制翻译优化研究[D]. 唐锋. 中国科学院研究生院(计算技术研究所). 2006

[10]. 嵌入式通信平台设备接口驱动的设计与实现[D]. 蒋伟宏. 中国人民解放军国防科学技术大学. 2002

标签:;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;  

基于IA-64的X微处理器虚拟寄存器技术的研究与实现
下载Doc文档

猜你喜欢