用于在执行被转换指令时维持环境的方法和装置制造方法及图纸

技术编号:2880191 阅读:146 留言:0更新日期:2012-04-11 18:40
一种方法(图1),用于维持从为目标微处理器设计的指令转换而得到的指令的转换环境,以便在主机微处理器上运行,包括:存储与每个转换主机指令有关的转换环境;指示目前正在由主机处理器执行的主机指令的转换环境;将为下一条主机指令存储的转换环境与目前正在被执行的主机指令的转换环境进行比较(图2);如果下一条主机指令的转换环境和目前执行的主机指令相同,则执行下一条主机指令;以及如果下一条主机指令的转换环境和目前执行的主机指令不相同,则搜索(图2)具有这样转换环境的一个指令,它相比于目前执行的主机指令的转换环境。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

技术介绍
专利
本专利技术涉及计算机系统,尤其涉及用于改善微处理器在执行程序过程中的性能的方法,所述程序是从为不同处理器执行而设计的程序转换而来。现有技术的历史最近,开发了一种新的微处理器,它将一个简单但快速的主机处理器(被称作“变体主机(morph host)”)和软件(被称作“代码变体软件(code morphingsoftware)”)组合起来,以便执行为目标处理器设计的应用程序,该目标处理器具有与变体主机处理器不同的指令集。变体主机处理器执行代码变体软件,该软件将目标应用程序动态地转换成能够实现目标应用程序的目的主机处理器指令。当指令被转换时,它们被存储在一个转换缓冲器中,在那里,它们可以被存取而无须进一步转换。虽然程序初步转换缓慢,但是,一旦被转换,硬件执行程序通常所需的其中的许多步骤就被取消了。新的微处理器已经证明,被设计成扩展很少功率的一个简单的快速处理器能够以等同于“目标”处理器(程序为它而设计)速率的速率来执行被转换的“目标”指令。使转换问题复杂化的是各种中断和例外,它们由目标计算机及其操作系统的硬件执行,以便计算机系统进行操作。当在目标计算机的操作过程中采用目标例外时,通常必须通过调用一个微代码序列以实现操作来保存例外时间的计算机状态,必须检索正确的例外处理程序,必须处理例外,然后必须发现程序中的正确点,用于读取程序。这经常要求程序回复到例外发生点处的目标计算机状态。实行这些操作的目标计算机的硬件和软件所提供的各种结果必须以某种方式由转换程序提供,以便变体主机处理器能够正确地响应于这些例外。为了能够以快速的速率运行为其他处理器设计的程序,变体主机处理器包括许多硬件改进。这些改进中的一个改进是门控存储缓冲器,它临时存储由执行转换缓冲器中的指令的被转换序列产生的内存存储。第二项改进是一组主机寄存器(除了正常工作的寄存器以外),它们存储任何序列的正在被转换的目标指令开始时目标处理器的状态。目标指令序列被转换成主机指令并被加以执行。这些序列在目标状态已知的点处开始和结束。如果被转换指令的执行没有出现一个例外,则由执行被转换主机指令生成的内存存储通过一个提交指令被存储在存储器中(被记住);保持目标状态的寄存器被更新到完成序列的点处的目标状态。但是,如果在执行该序列的主机指令时发生一个例外,则处理停止;整个操作可能被返回到该序列的目标指令的开始(其处存有目标处理器的已知状态)。这允许动态转换和执行指令时所导致的例外进行迅速、准确的处理。将注意到,所用的方法是由新的微处理器处理转换的执行,它通过保持由临时存储器中的执行所生成的效果,直到转换的执行被完成,是一种推测性的迅速而有效的方法。实质上,新的微处理器使用相同的电路,用于推测其他操作的结果。例如,通过由软件调度程序从自然转换的指令重新排序后执行,而临时保存的指令的执行结果,可以实现比原先的技术尝试更有进取性的重新排序。当执行这种重排序列的指令以产生一个正确的结果时,由执行重排序序列产生的内存存储可以被记住,目标状态可以被更新。如果重排序序列在执行时生成一个例外,那么,处理器的状态可以被返回序列开始时的目标状态并在执行序列的过程中采用一种更保守的方法。新的微处理器最有利的特点之一是其链接长序列的被转换指令的能力。一旦短序列的目标指令已被转换并被发现无例外地执行,就可以链接大量这些短序列,以便形成长序列的指令。这允许按高速度执行一个转换程序,因为微处理器不需要经历通常由硬件处理器采取的所有步骤(例如,查找每个较短的转换序列)来执行指令。甚至可以达到比预期可能更高的速度,因为一旦长序列被链接,优化器就可以经常取消来自长序列的许多步骤,而不改变产生的结果。硬件优化器从未能优化足够长的各个序列的指令,以便允许显著优化模式能变得显而易见。无论处理器何时正在执行指令,它都在按具有各种特征的某种特殊的模式运行。必须按正确的模式来执行一项应用的指令,以便始终如一地产生正确的结果。模式的这些特征有效地成为指令的背景,可以被认为是指令的一部分。当处理器执行指令时,那些指令中的某些指令可以改变操作的特征和模式。这要求微处理器的许多特征有不同的设置,以便处理这些不同的模式。机器状态的特征通常是指指令在其中执行的环境(context),这些特征必须被正确设置,以便指令提供正确的结果。环境可以被说成是机器当前状态的概括,它是从指令执行产生正确结果所需的。在为具有第一指令集的目标处理器设计的各个序列的指令转换成一个不同指令集的一系列主机指令的过程中,新的微处理器面临的一个主要问题是由需要维持转换和运行时的环境所引起。有种种不同的事物,它们可构成执行一个程序中的环境。只列举可构成环境的许多因素中的一些因素就可展示该问题有多复杂。精通该
的人将理解,差不多有成百上千个环境的可能项目。许多微处理器被设计成操作具有8位、16位和32位字长(取决于使用的操作系统的能力)的指令的应用程序。相同的指令经常被用于利用不同字长的指令来书写应用。但是,如果微处理器尝试执行16位指令,而它的特征被设置用来执行32位指令,则这些指令也许将不会正确执行。这样,指令字长可以被认为是出于执行目的的目标处理器环境。另一个例子是,指令按不同层次的许可来执行。这样,一些指令只能由具有最高层次存取的人来执行;其他指令可以由处于较低层次和较高层次的用户来执行。当执行转换指令时,有必要维持相同的存取层次,以便应用不会干涉不相关的应用的资源。基于因特尔X86的处理器允许应用指定代码和数据的各个部分(段)被存储在存储器中。例如,程序可以指定基地址和程序段的长度,以便一个代码段在一个基地址开始并连续通过一定数量的内存,而一个数据段在一个不同的基地址开始并包括不同数量的内存。或者,程序可以指定一个单一的扁平段,用于存储程序所有的指令、数据和其他因素。此外,一个程序的所有段可以在相同的基地址开始,但运行到不同的结束地址。所以,正在被使用的基地址的布置对于执行指令而言是一个非常重要的特征。为不同用户分配的各个内存区域的混乱也许会妨碍程序执行指令具有正确的结果。这样,这就可能是环境的一个重要因素。如果一项应用被设计成执行调页启动,则该应用必须虑及可能发生的调页例外。如果一项应用被设计为调页关闭,则不会发生调页例外。因此,调页可能是环境的一个重要的因素。有许多其他的特征,无论指令何时被执行,这些特征必须与将指令汇编成指令时相同,以便产生正确的结果。利用复杂的指令集(例如,因特尔X86处理器所用的指令集),构成环境的特征的数量非常大。如同目标处理器的指令执行一样,当那些转换指令被执行时,有必要使从目标指令转换来的主机指令维持原来处理器的环境,目标指令正是为该处理器而被设计,以便由主机系统产生相同的结果。由于环境的那些项目可能由指令而引起不同的结果,需要从转换到执行过程中维持环境,这似乎要求环境的差不多成百上千个因素都要成为各个转换的一部分,以便确保所产生的结果是正确的。何时执行处理器上的指令以产生正确的结果很关键,同时还需要能尽快地执行指令。通常通过产生尽可能有效地运行的代码,来实现这一点。环境或机器状态恰好控制如何可以使代码有效。有许多机器状态的特征(指令在其中执行)影响转换和执行的效率并可以使指令更快地运行或对本文档来自技高网
...

【技术保护点】
一种维持从为目标微处理器设计的指令转换而得到的指令的转换环境(translation context)以便在主机微处理器上运行的方法,其特征在于所述方法包括以下步骤: 存储与每个转换主机指令有关的转换环境, 指示目前正在由主机处理器执行的主机指令的转换环境, 将为下一条主机指令存储的转换环境与目前正在被执行的一条主机指令的转换环境进行比较, 如果下一条主机指令的转换环境和目前执行的主机指令相同,则执行下一条主机指令,以及, 如果下一条主机指令的转换环境和目前执行的主机指令不相同,搜索具有这样转换环境的一条指令,该转换环境与目前执行的主机指令的转换环境相同。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:D凯培尔R克迈利克R贝迪切克
申请(专利权)人:全斯美达有限公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利