当前位置: 首页 > 专利查询>微软公司专利>正文

对动态可扩展处理器的软件支持制造技术

技术编号:2917953 阅读:179 留言:0更新日期:2012-04-11 18:40
一种后编译工具能够重写由编译器产生的可执行映像。该工具能够添加扩展定义、插入扩展触发指令、以及添加安全签名。当正加载可执行映像时可将扩展能力通知给操作系统,并且操作系统可继续加载合适的处理器扩展。该操作系统能够代表应用程序来管理处理器扩展的可用性。

【技术实现步骤摘要】
【国外来华专利技术】背景尽管CPU设计者致力于通用性,但是曾经生产的每个应用程序都在包括其可执行文件映像的代码的非常小的一部分中花费其大多数时间。这对于用于个人计算机的通用程序、用于嵌入式计算机的程序以及甚至对于诸如由来自华盛顿州雷蒙德市的微公司生产的等游戏平台而言都是如此。分析显示可执行文件映像中的前两个或三个基本块一般占用超过总的执行计数的80%。更加高效的程序执行的一个吸引人的前景是用具有与原始的通用软件指令序列相同的语义但具有高效得多的实现的专用处理器指令来优化首先运行的基本块。文献中报告的加速的范围从两倍到六倍,并且在某些情况下甚至大于不止十倍。我们自己的经验致使我们认为三倍是期望的加速的保守估计。现代处理器的CPU实现良好文档化的、固定的处理器指令集。选择处理器指令来以尽可能多的压缩形式捕捉尽可能大的应用程序需求集。CPU一般以使得一旦已生产出芯片就不可能添加任何新的处理器指令的方式在固定逻辑中实现。另一方面,现场可编程门阵列(FPGA)是一种实现甚至在现场已部署了芯片之后仍然允许稍后的扩展和修改的CPU的可选方法。也可能用固定的逻辑来实现CPU,但是用动态可更改的方式来互连CPU的内部组件。该方法可导致我们称之为“动态可扩展处理器”的新类型的处理器。这些处理器综合了固定逻辑的优点(缩小的尺寸、更高的时钟速率)与将处理器扩展添加到基本处理器指令集的能力。对可扩展处理器的实际使用理想情况下应该利用应用程序中的已扩展的指令。一般而言,程序员利用汇编器或更高级语言编译器来编写应用程序。这种方式可能需要对于每条新的处理器指令重新生成新的汇编器和新的编译器。虽然当然是可能的,但这是相当耗时的操作。该方式还充满了限制和危险。如果程序实际上是用汇编器来编写的,则该程序必须重写。如果修改了编译器以-->利用新指令,则只有高级语言程序能够自动地利用该新指令。此外,如果没有编译器的源代码,则不可能修改该编译器。编译器是大且复杂的程序,所以非常有可能引入细微的错误。最后,可能没有着重使用的应用程序或某些关键库的源代码。现有的工具和操作系统是针对固定的处理器指令集而设计的,并且不能够解决动态可扩展处理器的需求。例如,由加利福尼亚州的圣克拉拉市的公司生产的处理器系列是按以下方式由标准工具集来支持的:从由制造商提供的基本处理器设计开始,系统设计者使用特殊的工具来为新处理器定义一条或多条处理器指令。该工具的主要目的是帮助为新扩展的处理器创建Verilog代码。该工具基于新处理器指令的手动定义自动地生成新编译器和链接器。注意,该过程是静态的;它需要在能够为它编译和优化应用程序之前创建新的芯片以及新的工具集。其副本放于美国专利和商标局的文件中的以下参考文献提供了关于定制的和可扩展的处理器的设计的额外背景:Clark、Blome、Chu、Mahlke、Biles和Flautner的“An Architecture Framework for Transparent Instruction SetCustomization in Embedded Processor(用于嵌入式处理器中的透明指令集定制的体系结构框架)”。参考书目部分参考了由一般也与此处所描述的工作相关的相同和其他作者创作的各种其他论文。概述此处提供用于动态可扩展处理器的软件支持的系统和方法。一种工具能够重写由编译器产生的可执行映像。该工具能够添加扩展定义、插入扩展触发指令、以及添加安全签名。当加载可执行映像时可以向操作系统软件通知扩展能力,并且操作系统软件可继而加载合适的处理器扩展。该操作系统能够代表应用程序来管理处理器扩展的可用性。以下将描述本专利技术的其他优点和特征。附图简述将参考附图进一步描述根据本专利技术的用于动态可扩展处理器的软件支持的系统和方法,在附图中:-->图1示出了在其中工具110能够重写由编译器产生的可执行映像100的本专利技术的各方面的互操作的概观。当加载可执行映像100时,可将扩展能力通知给操作系统软件130。操作系统软件130能够代表应用程序来管理所请求的处理器扩展的可用性。图2示出了一示例性重写工具205的输入202、203和输出207的示意图。图3示出了用于利用动态可扩展处理器的可执行映像的一示例性扩展文件格式。图4示出了在由重写器工具补充映像之前的原始基本块。图5示出了在其中该工具用扩展触发指令来盖写基本块中的第一指令的一个实施例。图6示出了在其中该工具用扩展触发指令盖写基本块中的第一指令并且移除该块中的所有后续指令的一个实施例。图7示出了在其中该工具在基本块之前插入扩展触发指令并且向上移动映像中的所有其余指令的一个实施例。图8示出了在其中该工具将伪分支指令添加到移动到映像中的别处的基本块的一个实施例。图9示出了具有软件可见扩展状态的可扩展处理器。图10示出了根据图9配置的多处理器系统中的可扩展处理器的每个进程的状态和每个处理器的状态。详细描述在以下描述和附图中描述了某些具体细节,以提供对本专利技术的各个实施例的全面理解。然而,通常与计算和软件技术相关联的某些公知细节将不在以下公开中描述,来避免对本专利技术的各实施例的不必要的混淆。而且,相关领域的普通技术人员可以理解,他们可以无需以下描述的细节中的一个或多个而实现本专利技术的其它实施例。最后,尽管在以下公开中是参考了步骤和序列来描述各个方法的,但是如此的描述是用于提供本专利技术的实施例的清楚的实现,且步骤以及步骤的序列不应被认为是实现本专利技术所必需的。图1示出了在其中在此也称为重写器工具的工具110能够重写由编译器产-->生的可执行映像100的本专利技术的各方面的互操作的概观。可执行映像是应用程序或计算机程序,即,被设计成执行某一个或一组有用的功能的一系列机器可读指令。一般而言,应用程序首先用人类可读的源代码编写,然后由编译器为其中一种的多种自动化进程将该源代码转换为机器语言。在一个实施例中,工具110与首先编译一特定应用程序的编译器不同。该工具考察已编译的可执行映像,标识该映像中的基本块,并且通过插入扩展触发指令121、122以及添加安全签名125来修改该映像。用使得处理器扩展有效地执行与将由基本块执行的相同的功能步骤的扩展触发指令来补充映像提高了执行该映像的效率。在其他实施例中,可将工具110集成到能够标识基本块并且用如其所编译的扩展触发指令121、122以及安全签名125来适当地补充可执行映像的编译...

【技术保护点】
一种计算机操作系统130,包括: 用于在应用程序100加载期间标识用于处理所述应用程序100中的基本块101的处理器140扩展指令的计算机可执行指令;以及 用于用所述处理器140扩展指令来扩展处理器140的计算机可执行指令。

【技术特征摘要】
【国外来华专利技术】US 2006-2-2 11/347,7231.一种计算机操作系统130,包括:
用于在应用程序100加载期间标识用于处理所述应用程序100中的基本块
101的处理器140扩展指令的计算机可执行指令;以及
用于用所述处理器140扩展指令来扩展处理器140的计算机可执行指令。
2.如权利要求1所述的操作系统130,其特征在于,还包括用于跟踪所述
应用程序100和所述处理器140扩展指令之间的关联的计算机可执行指令。
3.如权利要求2所述的操作系统130,其特征在于,还包括用于保证当执
行了上下文切换时,所述处理器140是用所述处理器140扩展指令来扩展的计
算机可执行指令。
4.如权利要求1所述的操作系统130,其特征在于,还包括用于在扩展所
述处理器140之前检查安全签名125的计算机可执行指令。
5.如权利要求1所述的操作系统130,其特征在于,还包括用于跟踪在多
处理器系统中的多个处理器140中的扩展时隙141的计算机可执行指令,所述
时隙141是与所述处理器140扩展指令相关联的。
6.如权利要求1所述的操作系统130,其特征在于,还包括用于在两个或
多个应用程序100之间共享所述处理器140扩展指令的计算机可执行指令。
7.如权利要求6所述的操作系统130,其特征在于,所述用于共享的指令
包括用于排他地将所述处理器140扩展指令分配给被观察到为最大限度地利用
了所述处理器140扩展指令的应用程序的指令。
8.如权利要求6所述的操作系统130,其特征在于,所述用于共享的指令
包括用于排他地将所述处理器140扩展指令分配给由人类用户选择的应用程序
100的指令。
9.如权利要求6所述的操作系统130,其特征在于,所述用于共享的指令
包括用于在中断上禁用至少一个处理器140扩展指令的指令。
10.如权利要求6所述的操作系统130,其特征在于,所述用于共享的指
令包括用于加载与可用的处理器140扩展指令时隙141的数量相等的多个处理
器140扩展指令的指令、用于忽略加载额外的处理器140扩展指令的请求的指
令、以及用于代替所述额外的处理器140扩展指令执行非优化的基本块101的
指令。
11.如权利要求6所述的操作系统130,其特征在于,所述用于共享的指
令包括用于使用最近最少使用算法来确定要加载多个处理器140扩展指令中的
哪一个的指令。
12.如权利要求1所述的操作系统130,其特征在于,还包括用于替换要
求执行处理器140扩展指令的应用程序100的一部分的计算机可执行指令,所
述部分是用非俘获空指令来替换的。
13.如权利要求1所述的操作系统130,其特征在于,还包括用于通过改
变一个或多个处理器140扩展控制寄存器的值来使要求执行处理器140扩展指
令的应用程序100的一部分无效的计算机可执行指令。
14.一种重写器工具110,包括:
用于在可执行文件映像100中搜索以分支指令101结束的至少一个线性机
器指令序列的计算机可执行指令;以及

【专利技术属性】
技术研发人员:A弗林NL林奇RF拉什德
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

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

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