【技术实现步骤摘要】
【国外来华专利技术】
本专利技术总体上涉及计算机和计算机软件领域,更具体地说,涉及在例如转换程序代码的代码翻译器、仿真器和加速器中使用的程序代码转换方法和设备。
技术介绍
在嵌入式和非嵌入式CPU两者中都具有主要指令集架构(ISA,大型软件因此而存在),如果它们可以透明地访问相关的软件,则可“加速”性能或被 “翻译”到能够提供更好的性价比的各种高性能处理器。人们还发现主要的CPU架构被锁定到其ISA,并且不能提高性能或市场占有。这样的CPU可从面向软件的处理器联合架构中受益。 例如,在公开的申请WO00/22521中公开了用于方便这样的加速、翻译和联合架构能力的程序代码转换方法和设备,该申请的公开合并于此,以资参考。 本专利技术的实施例具体地与程序代码转换有关,其中,主题程序(subjectprogram)被转换成可由目标处理器在目标计算平台中执行的目标代码。 与在主题处理器上本地执行主题程序相比,执行程序代码转换必然带来转换处理中的开销。通常期望减少转换处理中的这种开销。另外,通常还期望产生在目标处理器上正确和高效执行的目标代码。 线程是可以独立运行的程序的一部分,并且与程序的其他部分并发。在多线程处理环境中,多于一个线程(或者多于一个处理器)访问诸如存储器的共享资源。通常需要协调访问共享资源的机制,以便避免诸如冲突或者未预料的行为的干扰。例如,当两个线程独立地更新位于特定存储器位置的数据时,可能出现无意的干扰。访问协调机制通常对于主题处理器的指令集架构是特定的。在很多情况下,不容易在程序代码转换之后在目标处理器上实现主题访问协调机制。首先,目标处理器可能不具有基 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】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...
【专利技术属性】
技术研发人员:保罗·诺尔斯,加文·巴拉克劳,
申请(专利权)人:特兰斯蒂有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。