[发明专利]基于代码复制超级块的程序执行优化方法无效

专利信息
申请号: 201010278538.0 申请日: 2010-09-11
公开(公告)号: CN101923481A 公开(公告)日: 2010-12-22
发明(设计)人: 管海兵;陈凯;邓海鹏;刘博;张俊 申请(专利权)人: 上海交通大学
主分类号: G06F9/45 分类号: G06F9/45
代理公司: 上海交达专利事务所 31201 代理人: 王锡麟;王桂忠
地址: 200240 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 代码 复制 超级 程序 执行 优化 方法
【说明书】:

技术领域

本发明涉及的是一种计算机技术领域的方法,具体是一种二进制系统中的基于代码复制超级块的程序执行优化方法。

背景技术

动态二进制翻译是虚拟执行技术中应用最为广泛的方法,是为遗留代码提供移植可能性和提高软件的平台适应性的一种有效手段,它在不需要可执行程序的源代码的情况下,可以动态地将源机器平台上的二进制程序经过转换,运行于其他目标机器平台上。对于动态二进制翻译器自身而言,执行性能是一个非常重要的衡量指标。所谓执行性能是指,以源程序在原架构下运行的效率为参照,其在动态二进制翻译器提供的运行环境下的效率损失度越低,翻译器的执行性能越好。

为了提高动态二进制翻译器的性能,动态翻译器采用很多原本在编译领域被广泛采用的策略和方法,鉴于动态二进制翻译与编译技术相比缺少源代码资源的特性,所以也发展出来了动态二进制领域所特有的优化技术和方法。其中被广泛采用的有超级块生成技术、链接技术等。在动态二进制领域,因为没有源代码,对程序所进行的优化等所需要的大部分信息都是通过程序的剖分信息来获取的。

一般来说,在动态二进制领域,对源程序的翻译,执行,优化等操作都是以源程序的基本块为单位进行的。所谓基本块,是指仅有一个入口,并且以跳转,返回等指令结束的一组指令序列。程序从基本块的入口开始执行,然后,最终在基本块的出口跳出,并跳到另外一个基本块的入口继续执行指令序列。程序的剖分信息的获取就是以基本块为单位进行的,包括基本块的执行次数,跳转地址等等一系列信息。所谓超级块,根据已获取的剖分信息,按一定的规则挑选指定的几个基本块序列重新组合,形成的更长的指令序列,用以提高程序的性能。它除了比基本块长以外,还兼有多个出口的特性。

剖分信息的分类,主要有如下三种:

1、基于基本块的信息收集,也就是基本块运行特性信息的收集,基本上局限于基本块的运行次数,和跳转目标块等粗略信息。虽说它收集的信息较为粗略,但是,它给系统的开销比较小,所以,它在性能要求比较高的动态的系统中应用的比较多。

2、基于边的信息收集,即,以一个基本块以及随后的基本块组合而成的边为基本的信息收集单位。基于边的信息收集比基于块的要丰富一些,也能更好的描述程序的行为特征。但是,随之而来的也是对系统带来的开销也是比较大的。

3、基于路径的信息收集。根据程序的控制流图进行,以单条执行路径为单位进行信息收集。这样的信息收集方式可以最接近程序真实的描述程序的行为特征。但是,它所付出的代价也是最大的.由于它庞大的系统开销,在动态二进制翻译器中,基本上不被采用.

对于有中间语言的动态二进制翻译器来说,比如valgrind,UQDBT,构造超级块都倾向于在自身定义的中间语言,利用程序收集的信息,结合特定的算法进行。然后,再集中放到后端翻译成目标代码。一般的有中间语言的超级块构造方法流程如下:

1)利用上所述的三种种类信息收集方法,对信息进行采集。一般来说,一个翻译好的基本块对应有一个对象对它的信息进行维护。通过上述的三种方法收集的信息一般来说是存放在各自的对象中。

2)当满足一定的条件,比如达到阈值等,程序就会触发超级块的构造例程,因为有中间语言,所以,程序就先把一个一个的源程序基本块经过一定的处理,比如跳转反转等,按照一定的算法翻译成一个大的中间语言程序块,然后在翻译成一个大的目标程序块,也就是超级块。

3)最后就是程序跳到翻译好的目标程序超级块进行执行。

经对现有文献检索发现,中国专利文献号CN101387970A,公开日2009-3-18,记载了一种“利用剖分信息生成超级块的方法”,该技术详细介绍了二进制翻译领域中Crossbit的构造超级块的一般流程。但是该技术有一个不容忽视的问题:在构造超级块的过程中,当一个基本块在多个超级块中都是被需要时,势必会造成除了只有一个被利用外,另外的超级块都因为缺少当前块而被中间截断,产生多个较短超级块,或者基本块碎片。

另经检索发现,中国专利文献号CN101488096A,公开日2009-7-22,记载了一种“利用出入边关系的部分信息构建超级块的方法”,该技术采用的是基于入边和出边的部分信息来构造超级块的方法,但是该方法在构造超级块的过程中容易产生重复,从而使得基本块的数量庞大。

发明内容

本发明的目的在于克服现有技术的上述不足,提供一种基于代码复制超级块的程序执行优化方法,通过基本块代码复制来生成超级块,使得基本块的长度变长,基本块的数量减少,从而提高生成的超级块的质量,且可移植性好。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010278538.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top