【技术实现步骤摘要】
本专利技术一般地涉及指令的处理,更具体地说,涉及一种对源程序中的变量进行拷贝,从而在不同线程访问该变量时避免重复访问共享存储器的计算机程序和方法。
技术介绍
处理器技术方面的最新发展趋势是在单个模片(die)上包括多个处理引擎。举个例子,某些网络处理器特征在于有多个可同时执行不同的分组处理线程的分组引擎。例如,当一个引擎执行一个线程以确定如何将一个分组进一步转发到其目的地时,另一个不同的引擎则执行一个线程以确定如何转发另一个分组。为了对这些引擎编程,程序员经常使用被称为编译器的工具。编译器可以将源代码翻译成低级汇编代码,甚至翻译成“1”和“0”组成的引擎可执行指令。例如,程序员可以使用编译器将高级“C”源代码next_hop=route_lookup(packet.destination_address);翻译成一系列引擎可以执行的低级指令。编译器也可以例如通过用其它源代码指令取代上述源代码指令而对源代码进行“预处理”,从而改进程序员所写的代码。为了利用多引擎体系结构的潜能而编写的软件可以提供优越的性能。然而,要想在复杂的并行计算环境中有效率地使用资源,这个责 ...
【技术保护点】
一种计算机程序,其放置在计算机可读介质上,所述程序包括的程序指令使得处理器:访问一组源指令;识别所述源指令中的至少一个变量,所述变量将由不同的线程访问;在由所述源指令组所指定的执行流中确定一个位置,其中,所述至少一个 变量值在所确定的流位置后具有不变的值;以及为所述源指令生成至少一组目标指令,其中所述目标指令组中至少有一组包括用于以下操作的指令;基于所述所确定的位置,在所述目标指令的执行流中的某一位置处,将所述变量的值从第一存储器拷贝到第 二存储器;和对于指定了对所述至少一个变量进行访问的至少一个源 ...
【技术特征摘要】
US 2003-8-15 10/641,6141.一种计算机程序,其放置在计算机可读介质上,所述程序包括的程序指令使得处理器访问一组源指令;识别所述源指令中的至少一个变量,所述变量将由不同的线程访问;在由所述源指令组所指定的执行流中确定一个位置,其中,所述至少一个变量值在所确定的流位置后具有不变的值;以及为所述源指令生成至少一组目标指令,其中所述目标指令组中至少有一组包括用于以下操作的指令基于所述所确定的位置,在所述目标指令的执行流中的某一位置处,将所述变量的值从第一存储器拷贝到第二存储器;和对于指定了对所述至少一个变量进行访问的至少一个源指令,访问所述第二存储器中的所述值的拷贝。2.如权利要求1所述的程序,其中,用于生成至少一组目标指令的程序指令包括以下程序指令生成所述目标指令组中的第一指令,以通知所述目标指令组中的第二指令来拷贝所述变量。3.如权利要求1所述的程序,其中,所述第一存储器包括由多引擎系统中的不同引擎所共享的存储器,所述存储器不和所述不同引擎中的某个特定引擎唯一地相关;并且其中,所述第二存储器是某个引擎的局部存储器。4.如权利要求1所述的程序,其中,对于执行所述目标指令组中的某个指令的线程,所述第一存储器比第二存储器具有更长的延迟时间。5.如权利要求1所述的程序,其中,所述位置确定包括对所述至少一个变量值执行数据流分析。6.如权利要求1所述的程序,其中,至少一组目标指令包括网络处理器的分组引擎的目标指令。7.如权利要求6所述的程序,其中,所述至少一组目标指令包括多组目标指令。8.如权利要求1所述的程序,其中,所述程序包括编译器;并且其中,所述源指令包括用比所述目标指令更高级的语言来表达的指令。9.如权利要求1所述的程序,其中,所述至少一个变量的所述不变值不是在编译期间确定的。10.一种方法,包括访问一组源指令;识别所述源指令中的至少一个变量,所述变量将由不同的线程访问;在由所述源指令组所指定的执行流中确定一个位置,其中,所述至少一个变量值在所确定的流位置后具有不变的值;以及为所述源指令生成至少一组目标指令,其中所述目标指令组中至少有一组包括用于以下操作的指令基于所述所确定的位置,...
【专利技术属性】
技术研发人员:埃里克J约翰逊,詹姆斯L小贾森,史蒂文D戈格兰,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。