具有对共享资源的访问协调的转换程序代码的方法和设备技术

技术编号:2829816 阅读:170 留言:0更新日期:2012-04-11 18:40
一种提供共享资源的访问协调机制的方法,用于在从具有多个主题线程(171、172)的主题代码(17)到能够被目标处理器(13)执行的目标代码(21)的程序代码转换,所述方法的特征在于以下步骤:    (a)提供以下项:多个本地数据结构(502a、502b),每个本地数据结构都与多个主题线程(171、172)中的一个相关联;以及全局令牌(501),对于主题线程(171、172)中的每一个都是共用的;    (b)对主题代码(17)解码,以识别设置与共享资源(401)相关的主题访问协调机制的主题设置指令和检查主题访问协调机制的主题检查指令;    (c)响应于主题设置指令,产生用于调整全局令牌(501)的目标代码(21),并在当前线程的本地数据结构(502)中至少存储本地令牌(521),其中,所述本地令牌(521)是从调整的全局令牌(501)得到;    (d)响应于主题检查指令产生目标代码,所述目标代码用于将至少存储的所述本地令牌(521)与全局令牌(501)进行比较以确定对共享资源(401)潜在干扰。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术总体上涉及计算机和计算机软件领域,更具体地说,涉及在例如转换程序代码的代码翻译器、仿真器和加速器中使用的程序代码转换方法和设备。
技术介绍
在嵌入式和非嵌入式CPU两者中都具有主要指令集架构(ISA,大型软件因此而存在),如果它们可以透明地访问相关的软件,则可“加速”性能或被 “翻译”到能够提供更好的性价比的各种高性能处理器。人们还发现主要的CPU架构被锁定到其ISA,并且不能提高性能或市场占有。这样的CPU可从面向软件的处理器联合架构中受益。 例如,在公开的申请WO00/22521中公开了用于方便这样的加速、翻译和联合架构能力的程序代码转换方法和设备,该申请的公开合并于此,以资参考。 本专利技术的实施例具体地与程序代码转换有关,其中,主题程序(subjectprogram)被转换成可由目标处理器在目标计算平台中执行的目标代码。 与在主题处理器上本地执行主题程序相比,执行程序代码转换必然带来转换处理中的开销。通常期望减少转换处理中的这种开销。另外,通常还期望产生在目标处理器上正确和高效执行的目标代码。 线程是可以独立运行的程序的一部分,并且与程序的其他部分并发。在多线程处理环境中,多于一个线程(或者多于一个处理器)访问诸如存储器的共享资源。通常需要协调访问共享资源的机制,以便避免诸如冲突或者未预料的行为的干扰。例如,当两个线程独立地更新位于特定存储器位置的数据时,可能出现无意的干扰。访问协调机制通常对于主题处理器的指令集架构是特定的。在很多情况下,不容易在程序代码转换之后在目标处理器上实现主题访问协调机制。首先,目标处理器可能不具有基于硬件的协调机制。其次,目标协调机制可能与主题机制的工作相异。在这两种示例中,难以提供主题代码所期待的主题访问协调机制的恰当的替代。
技术实现思路
根据本专利技术,提供一种如权利要求中所阐述的设备和方法。通过从属权利要求和以下的描述,本专利技术的优选特征将很明显。 以下是根据本专利技术实施例的可实现的各个方面和优点的总结。其被提供作为帮助本领域的技术人员更快地了解随后的详细设计讨论的入门,而不是将以任何方式限制权利要求的范围。 在本专利技术的一方面中提供一种提供共享资源的访问协调机制的方法,所述方法用于从具有多主题线程的主题代码到能够被目标处理器执行的目标代码的程序代码转换,所述方法包括(a)提供多个本地数据结构,每个数据结构都与多个主题线程之一相关联;以及全局令牌,对于每个主题线程是共用的;(b)对主题代码解码,以识别设置与共享资源相关的主题访问协调机制的主题设置指令和检查主题访问协调机制的主题检查指令;(c)响应于主题设置指令,产生用于调整全局令牌的目标代码,并在当前线程的本地数据结构中至少存储本地令牌,其中,所述本地令牌从调整的全局令牌得到;(d)响应于主题检查指令产生目标代码,所述目标代码用于将至少存储的本地令牌与全局令牌进行比较以确定对共享资源的潜在干扰。 在示例性实施例中,专利技术者已经开发了用于加速程序代码转换的方法,所述方法在与提供主题程序代码到目标代码的动态二进制翻译的运行时间翻译器相关联的情况下尤其有益。 本专利技术还扩展到具有安排用于执行在此限定的任何方法的翻译器单元的翻译器设备。另外,本专利技术扩展到其上记录有可由计算机实现以执行在此限定的任何方法的指令的计算机可读存储介质。 附图说明 在此引入并构成说明书的一部分的附图示出目前优选的实现方式,并描述如下 图1是示出本专利技术的实施例得到应用的设备的框图; 图2是示出在程序代码转换期间的执行控制的示例方法的示意性流程图; 图3是示出在程序代码转换之后主题指令和目标指令之间的关系的示意图; 图4是具有作为面向硬件的访问协调机制的保留的示例主题处理器的示意图; 图5是在本专利技术的示例性实施例中采用的具有对共享资源的访问协调机制的目标处理器的示意图; 图6是在本专利技术的示例性实施例中采用的方法的概述; 图7是更详细地示出图6的方法的示意流程图;以及 图8是更详细地示出图6的方法的示意流程图。 具体实施例方式 提供以下说明使得本领域的技术人员能够制造和使用本专利技术,并阐述完成本专利技术的专利技术者认为的最佳模式。然而,由于已经在此具体地限定了本专利技术的一般原理以提供改进的程序代码转换方法和设备,因此各种修改对于本领域的技术人员仍将是很明显的。 在下面的术语中,主题程序将要在包括主题处理器的主题计算平台上执行。包括目标处理器的目标计算平台用于通过执行动态程序代码转换的翻译器来执行主题程序。翻译器执行从主题代码到目标代码的代码转换,从而能够在目标计算平台上执行目标代码。 图1示出了包括目标处理器13的示例目标计算平台14,所述目标处理器13包括目标寄存器15和存储多个软件组件17、19、20、21和27的存储器18。软件组件包括操作系统20、待翻译的主题代码17、翻译器代码19、翻译的代码(目标代码)21和抽象寄存器组(abstract register bank)27以及其他。 在一个实施例中,翻译器代码19是仿真器,用于将主题指令集架构(ISA)的主题代码翻译成另一ISA的翻译的目标代码(经过或不经过优化)。也就是说,翻译器19对主题处理器进行仿真,同时在目标处理器13上执行作为目标代码21的主题程序17。在另一实施例中,翻译器19用于通过执行代码程序优化来作为将主题代码翻译成目标代码(主题代码和目标代码是相同ISA)的加速器。 概括说来,目标计算平台14是一种翻译器设备,其包括翻译单元19以及其他。在示例实施例中,翻译器19是实现翻译器的源代码的编译版本。翻译器19和由翻译器19产生的翻译的代码21结合操作系统20在目标处理器13上运行,所述目标处理器13通常是微处理器或其他合适的计算机。 应理解在图1中示出的结构仅是示例性的,并且例如本专利技术的实施例可以通过驻留在操作系统中或驻留在操作系统之下的代码实现。主题代码17、翻译器代码19、操作系统20和存储器18的存储机制可以是如本领域的技术人员所知的多种类型中的任意一种。 在图1的设备中,优选地,在目标代码21运行的同时,程序代码转换在运行时间被动态执行。翻译器19与翻译的程序21协调运行。在这种情况下,翻译器是动态二进制翻译器。在另一示例实施例中,翻译器19是按顺序将各个主题指令翻译并执行为一个或多个相应的目标代码指令的解译器。 优选地翻译器19被采用作为用于目标架构编译的应用程序。在运行时间主题程序17被翻译器19翻译以在目标架构14上执行。在运行时间主题程序被翻译器19翻译以在目标架构上直接执行。翻译器19还变换主题程序17做出的主题操作系统(OS)调用,从而使它们在被传递到目标OS 20时正确地工作。 通过翻译器19运行主题程序17包括以交织的方式执行的两种不同类型的代码翻译器代码19;以及目标代码21。基于翻译器19的高级源代码实现,在运行时间之前由诸如编译器产生翻译器代码19。相反地,基于正被翻译的程序的存储的主题代码17,在运行时间期间由翻译器代码19产生目标代码21。 在示例实施例中,提供至少一个抽象寄存器组27(还被称为主题寄存器组27或全局寄存器存储27)。在多处理器环境中,根据主题处理器的架构可选地提供多于一个抽象寄本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种提供共享资源的访问协调机制的方法,用于在从具有多个主题线程(171、172)的主题代码(17)到能够被目标处理器(13)执行的目标代码(21)的程序代码转换,所述方法的特征在于以下步骤(a)提供以下项多个本地数据结构(502a、502b),每个本地数据结构都与多个主题线程(171、172)中的一个相关联;以及全局令牌(501),对于主题线程(171、172)中的每一个都是共用的;(b)对主题代码(17)解码,以识别设置与共享资源(401)相关的主题访问协调机制的主题设置指令和检查主题访问协调机制的主题检查指令;(c)响应于主题设置指令,产生用于调整全局令牌(501)的目标代码(21),并在当前线程的本地数据结构(502)中至少存储本地令牌(521),其中,所述本地令牌(521)是从调整的全局令牌(501)得到;(d)响应于主题检查指令产生目标代码,所述目标代码用于将至少存储的所述本地令牌(521)与全局令牌(501)进行比较以确定对共享资源(401)潜在干扰。2.如权利要求1所述的方法,还包括以下步骤响应于对共享资源(401)的潜在干扰的事件调整全局令牌(501)。3.如权利要求2所述的方法,还包括从主题代码或影响主题代码(17)的中断检测系统调用,并作为响应地调整全局令牌(501)以显示对共享资源(401)的潜在干扰。4.如权利要求1所述的方法,还包括执行关于第一主题线程(171)的步骤(c);调整关于第二主题线程(172)的全局令牌(501);以及执行关于第一主题线程(171)的步骤(d),从而确定第二主题线程(172)对共享资源(401)的潜在干扰。5.如权利要求1所述的方法,其中步骤(c)还包括将从主题设置指令获得的数据存储到本地数据结构(502)中;以及步骤(d)还包括将从主题检查指令获得的数据与从本地数据结构(502)获得的数据(523、522)进行比较。6.如权利要求1所述的方法,其中步骤(c)还包括将本地地址存储在本地数据结构(502)中,所述本地地址从用于从共享资源进行读取的主题设置指令中指定的主题设置地址获得;以及步骤(d)还包括将本地地址(523)与从主题检查指令获得的检查地址进行比较。7.如权利要求1所述的方法,其中步骤(c)还包括将本地值(522)存储在本地数据结构(502)中,所述本地值存储从关于主题设置指令中指定的设置地址的共享资源(401)读取的数据值;以及步骤(d)还包括将本地值(522)与从关于主题检查指令中指定的检查地址的共享资源(401)读取的数据值进行比较。8.如权利要求1所述的方法,其中步骤(c)还包括在本地数据结构(502)中存储以下项从用于从共享资源(401)进行读取的主题设置指令中指定的设置地址获得的本地地址(523);和存储从关于所述设置地址的共享资源(401)读取的数据值的本地值(522);以及步骤(d)还包括将本地地址(523)与从主题检查指令获得的检查地址进行比较;以及将本地值(522)与从关于检查地址的共享资源读取的数据值进行比较。9.如权利要求1所述的方法,其中,步骤(d)还包括响应于主题检查指令将新的数据值存储到共享资源(401)。10.如权利要求1所述的方法,其中,步骤(d)还包括调整全局令牌(501)。11.如权利要求1所述的方法,其中,全局令牌(501)是数字计数器值。12.如权利要求11所述的方法,其中,存储本地令牌(521)的步骤包括复制全局令牌(501)的当前值。13.如权利要求11所述的方法,其中,调整全局令牌(501)的步骤包括递增计数器。14.如权利要求11所述的方法,包括在目标处理器(13)上原子调整全局令牌(501)。15.如权利要求1所述的方法,包括将能够被主题处理器(400)执行的主题代码(17)翻译成能够被目标处理器(13)执行的目标代码(21)。16.如权利要求15所述的方法,包括执行从主题代码(17)到目标代码(21)的动态二进制翻译。17.如权利要求15所述的方法,其中,目标处理器(13)包括与主题处理器(400)类型不同的处理器。18.一种执行从能够被主题处理器(400)执行的主题代码(17)到能够被目标处理器(13)执行的目标代码(21)的程序代码转换的翻译器设备,所述设备包括翻译单元(19),将主题代码(17)翻译成用于在目标处理器(13)上执行的翻译的目标代码(21),其中,主题代码(17)包括多个主题线程;其特征在于翻译器单元(19)(a)提供以下项多个本地数据结构,每个本地数据结构都与所述多个主题线程中的一个相关联;以及全局令牌,对于主题线程中的每一个都是共用的;(b)对主题代码解码,以识别设置与共享资源相关的主题访问协调机制的主题设置指令和检查主题访问协调机制的主题检查指令;(c...

【专利技术属性】
技术研发人员:保罗·诺尔斯加文·巴拉克劳
申请(专利权)人:特兰斯蒂有限公司
类型:发明
国别省市:

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

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