【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般地涉及计算机和计算机软件的领域,更具体地说,涉及用于例如代码转换器、仿真器(emulator)和加速器(accelerator)的程序代码转换方法与装置。
技术介绍
在嵌入式和非嵌入式CPU的市场上,人们寻找占优势的指令集体系结构(ISA,Instruction Set Architecture),其中存在着大的软件体,这些软件体在性能上可以被“加速”,或者被“转换”为能提供较好的性能/价格比的多种可能的处理器,只要这些处理器能透明地访问相关的软件。人们还寻找占优势的CPU体系结构,后者在时间上被锁定于它们的ISA,因而无法在性能或者市场范围方面取得进展,也不能得益于“合成CPU”共同体系结构。人们通常希望把为第一类型的计算机处理器(“源”处理器)编写的程序代码运行于第二类型的处理器(“目标”处理器)上。这里,使用一个仿真器或转换器来执行程序代码转换,使得源程序能在目标处理器上运行。仿真器提供一种虚拟环境,通过仿真源处理器,仿佛源程序以本地方式运行于源处理器之上。以往,正如在题为“Program Code Conversion”的(专利公报)WO ...
【技术保护点】
一种用于产生程序代码的中间表示的方法,包括下列各步骤:对程序代码中的各项指令进行解码;产生已解码的程序代码的中间表示(IR),以包括多种可能类型的IR结点中的至少一种类型的IR结点;以及确定在已解码的程序代码中的每一 条指令的中间表示(IR)中,生成哪一种类型的IR结点,其中,中间表示(IR)中的IR结点是程序代码所执行的表达式、计算和操作的抽象表示。
【技术特征摘要】
【国外来华专利技术】GB 2003-5-2 0310180.5;GB 2003-11-13 0326437.11.一种用于产生程序代码的中间表示的方法,包括下列各步骤对程序代码中的各项指令进行解码;产生已解码的程序代码的中间表示(IR),以包括多种可能类型的IR结点中的至少一种类型的IR结点;以及确定在已解码的程序代码中的每一条指令的中间表示(IR)中,生成哪一种类型的IR结点,其中,中间表示(IR)中的IR结点是程序代码所执行的表达式、计算和操作的抽象表示。2.根据权利要求1所述方法,其中,多种可能类型的IR结点包括基本结点和复杂结点。3.根据权利要求2所述方法,其中,基本结点表示运行所述程序代码的任何源体系结构的最基本语义,因此,基本结点的语义不能被分解为表示更多简单语义的其它结点。4.根据权利要求3所述方法,其中,基本结点在多种可能的源体系结构上是通用的。5.根据权利要求3或4所述方法,其中,复杂结点提供比基本结点表示更紧凑的程序代码中的复杂指令的语义的表示。6.根据权利要求5所述方法,其中,复杂结点表示立即数型指令,其中,一个常数操作数值被编码到立即数型指令本身中,在一个立即数字段中。7.根据权利要求5或6所述方法,其中,一个复杂结点可以被分解为多个基本结点,以表示已解码程序代码中的指令的相同语义。8.根据权利要求5、6或7所述方法,其中,所述程序代码被设计成由源体系结构执行,所述方法还包括仅为那些可以相应地配置在源体系结构上的特征生成复杂结点的步骤。9.根据权利要求2或任何从属于此的权利要求所述方法,其中,多种可能类型的IR结点还包括多形结点。10.根据权利要求9所述方法,其中,所述程序代码是源代码,它被设计用于在源体系结构上执行,并且被动态地转换为目标代码,以便在目标体系结构上执行,所述方法还包括生成中间表示以包括多形结点,其中,多形结点包括一个函数指针,指向专用于源代码中的特定指令的目标体系结构的函数。11.根据权利要求10所述方法,其中,所述方法还包括,如果被实现为基本结点,目标体系结构的特征可能导致特定源指令的语义丢失时,生成多形结点。12.根据权利要求10或11所述方法,其中,每一个多形结点专用于源代码中的特定指令和目标体系结构的函数的组合。13.根据权利要求10、11或12所述方法,其中,所述确定IR结点类型的步骤还包括识别源代码中的一条指令,它对应于将被实现为多形结点的多形指令的列表上的一条指令;以及当一条源指令对应于多形指令的列表上的一条指令时,所述IR生成步骤仅为那些对应于多形指令的列表上的指令的源指令生成多形结点。14.根据以上各项权利要求中任何一项所述方法,其中,多种可能类型的IR结点还包括基本结点和体系结构专用结点。15.根据权利要求14所述方法,其中,所述程序代码是源代码,它被设计用于在源体系结构上执行,并且被动态地转换为目标代码,以便在目标体系结构上执行,所述方法还包括生成中间表示以包括体系结构专用结点,其专用于源体系结构和目标体系结构的特定组合。16.根据权利要求15所述方法,其中,所述中间表示生成步骤还包括把源代码中的所有指令初始地表示为源体系结构专用结点,每一个源体系结构专用结点对应于源代码中的一条各自的指令;确定源代码中的一条指令是否提供目标体系结构专用转换函数,对于那些已被确定提供目标体系结构专用转换函数的指令,将源体系结构专用结点转换为目标体系结构专用结点;以及从那些没有被识别为提供目标体系结构专用代码生成函数的剩余源体系结构专用结点中,生成基本结点。17.根据权利要求16所述方法,还包括从专用于目标体系结构的目标体系结构专用结点中生成相应的目标代码。18.根据权利要求15、16或17所述方法,还包括从不专用于目标体系结构的基本结点中生成相应的目标代码。19.一种计算机可读记录介质,含有用于执行前述各项权利要求中任何一项所述方法的程序代码。20.一种具有驻留于其上的、采取可以由计算机执行的计算机可读代码形式的转换器软件的计算机可读记录介质,在从源程序代码转换为目标程序代码的过程中,执行下列各步骤对源程序代码中的各项指令进行解码;生成已解码源程序代码的中间表示(IR),以包括多种可能类型的IR结点中的至少一种类型的IR结点;确定在已解码的源程序代码中的每一条指令的中间表示(IR)中,生成哪一种类型的IR结点,其中,中间表示中的IR结点是程序代码所执行的表达式、计算和操作的抽象表示;以及使用中间表示(IR)来生成目标程序代码。21.根据权利要求20所述计算机可读存储介质,其中,多种可能类型的IR结点包括基本结点和复杂结点。22.根据权利要求21所述计算机可读存储介质,其中,基本结点表示运行所述程序代码的任何源体系结构的最基本语义,因此,基本结点的语义不能被分解为表示更多的简单语义的其它结点。23.根据权利要求22所述计算机可读存储介质,其中,基本结点在多种可能的源体系结构上是通用的。24.根据权利要求22所述计算机可读存储介质,其中,复杂结点提供比基本结点表示更紧凑的程序代码中的复杂指令的语义的表示。25.根据权利要求24所述计算机可读存储介质,其中,复杂结点表示立即数型指令,其中,一个常数操作数值被编码到立即数型指令本身中,在一个立即数字段中。26.根据权利要求24所述计算机可读存储介质,其中,一个复杂结点可以被分解为多个基本结点,以表示已解码程序代码中的一条指令的相同语义。27.根据权利要24所述计算机可读存储介质,其中,所述程序代码被设计成由源体系结构执行,所述方法还包括仅为那些可以相应地配置在源体系结构上的那些特征生成复杂结点的步骤。28.根据权利要求21至27中任何一项所述计算机可读存储介质,其中,多种可能类型的IR结点还包括多形结点。29.根据权利要求28所述计算机可读存储介质,其中,所述源程序代码被设计用于在源体系结构上执行,并且被动态地转换为目标代码,以便在目标体系结构上执行,所述转换器软件还包括可以由计算机执行的计算机可读代码,用于执行下列各步骤生成中间表示以包括多形结点,其中,多形结点包括一个函数指针,指向专用于源代码中的特定指令的目标体系结构的函数。30.根据权利要求29所述计算机可读存储介质,其中,所述转换器软件还包括可以由计算机执行的计算机可读代码,以便如果被实现为基本结点,目标体系结构的特征将导致特定源指令的语义丢失时,生成多形结点。31.根据权利要求29所述计算机可读存储介质,其中,每一个多形结点专用于源代码中的特定指令和目标体系结构中的函数的组合。32.根据权利要求29所述计算机可读存储介质,其中,所述用于确定IR结点类型的、可以由计算机执行的计算机可读代码还用于识别源代码中的一条指令,它对应于将被实现为多形结点的多形指令的列表上的一条指令;以及当一条源指令对应于多形指令的列表上的一条指令时,仅为那些对应于多形指令的列表上的指令的那些源指令生成多形结点。33.根据权利要求20至32中任何一项所述计算机可读存储介质,其中,多种可能类型的IR结点还包括基本结点和体系结构专用结点。34.根据权利要求33所述计算机可读存储介质,其中,所述程序代码被设计用于在源体系结构上执行,并且被动态地转换为目标代码,以便在目标体系结构上执行,所述转换器软件还包括可以由计算机执行的计算机可读代码,用于执行下列各步骤生成中间表示以包括体系结构专用结点,专用于源体系结构和目标体系结构的特定组合。35.根据权利要求34所述计算机可读存储介质,其中,所述转换器软件还包括可以由计算机执行的计算机可读代码,用于执行下列各步骤把源代码中的所有指令初始地表示为源体系结构专用结点,每一个源体系结构专用结点对应于源代码中的一条各自的指令;确定源代码中的指令是否提供目标体系结构专用转换函数,对于那些已被确定提供目标体系结构专用转换函数的指令,将源体系结构专用结点转换为目标体系结构专用结点;以及从没有被识别为提供目标体系结构专用代码生成函数的剩余源体系结构专用结点中,生成基本结点。36.根据权利要求35所述计算机可读存储介质,其中,所述转换器软件还包括可以由计算机执行的计算机可读代码,用于从专用于目标体系结构的目标体系结构专用结点中生成相应的目标代码。37.根据权利要求34所述计算机可读存储介质,其中,所述转换器软件还包括可由计算机执行的计算机可读代码,用于从不专用于目标体系结构的基本结点中生成相应的目标代码。38.一个用于目标计算环境的转换器装置,它具有一个处理器和一个连接到所述处理器的存储器,用于转换适于源计算环境的源程序代码,以产生适于目标计算环境的目标程序代码,所述转换器装置包括解码机构,它被配置对源程序代码中的各项指令进行解码;中间表示(IR)生成机构,它被配置生成已解码程序代码的中间表示,以包括多种可能类型的IR结点中的至少一种类型的IR结点;以及中间表示(IR)类型确定机构,它被配置确定已解码程序代码中的每一条各自的指令的中间表示(IR)中,生成哪一种类型的IR结点,其中,中间表示中的各IR结点是程序代码所执行的表达式、计算和操作的抽象表示。39.根据权利要求38所述转换器装置,其中,多种可能类型的IR结点包括基本结点和复杂结点。40.根据权利要求39所述转换器装置,其中,基本结点表示运行所述程序代码的任何源体系结构的最基本语义,因此,基本结点的语义不能被分解为表示更多简单语义的其它结点。41.根据权利要40所述转换器装置,其中,基本结点在多种可能的源体系结构中是通用的。42.根据权利要求40所述转换器装置,其中,复杂结点提供比基本结点表示更紧凑的程序代码中的复杂指令的语义的表示。43.根据权利要求42所述转换器装置,其中,复杂结点表示立即数型指令,在其中,一个常数操作数值被编码到立即数型指令本身中,在一个立即数字段中。44.根据权利要求42所述转换器装置,其中,一个复杂结点可以被分解为多个基本结点,以表示已解码程序代码中的一条指令的相同语义。45.根据权利要42所述转换器装置,其中,所述程序代码被设计成由源体系结构执行,所述中间表示生成机构还包括仅为那些可以相应地配置在源体系结...
【专利技术属性】
技术研发人员:丹尼尔欧文,强纳森J安德鲁斯,麦尔斯P豪森,大卫海克尼,
申请(专利权)人:可递有限公司,
类型:发明
国别省市:GB[英国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。