[发明专利]使用监控线程对二进制翻译程序执行流程动态监控的方法有效

专利信息
申请号: 200910054325.7 申请日: 2009-07-02
公开(公告)号: CN101593125A 公开(公告)日: 2009-12-02
发明(设计)人: 管海兵;梁阿磊;李晓龙;倪志晨;邓海鹏 申请(专利权)人: 上海交通大学
主分类号: G06F9/45 分类号: G06F9/45;G06F9/46
代理公司: 上海交达专利事务所 代理人: 毛翠莹
地址: 200240*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 使用 监控 线程 二进制 翻译 程序 执行 流程 动态 方法
【说明书】:

技术领域

发明涉及一种使用监控线程对二进制翻译程序执行流程动态监控的方法, 用于获得二进制程序执行时的各种动态剖分信息,为分析二进制可执行代码程 序的执行流程和优化二进制翻译系统工作提供有效的支持。本发明属于并行化 计算和二进制翻译领域。

背景技术

动态二进制翻译技术作为进程级虚拟机领域中重要的组成部分,在近年来的 计算机学术交流活动中,频频被提及和讨论。通常,动态二进制翻译技术采用 “两次翻译过程”和“缓存翻译后代码”的技术来提高性能。所谓两次翻译, 是指先从由源机器指令组成的源基本块,翻译为由系统自行描述的中间语言组 成的中间基本块,再由中间基本块翻译为目标机器上的可执行基本块。这种技 术的优点在于:在不需要任何高级语言源代码信息的条件下,可以通过直接加 载源机器端的二进制可执行程序,并利用自身对不同机器指令集架构(ISA)的 翻译功能,得到目标机器端的可执行二进制程序。更重要的是,这种技术将翻 译和执行工作合并在一次程序过程中全部完成,有别于传统静态编译方法的先 编译后执行的二次过程。但是,动态二进制翻译系统的这种优势也为其获取程 序剖分信息(profile)带了很大的困难,即很难在动态执行的过程中保证获取完 备的剖分信息。而剖分信息正是用于程序执行流程监控的数据依据。

剖分信息(profile)是指那些在程序执行过程中,对程序性能起着重要影响 作用的信息。这些信息的获取,不仅可以用来判别程序编写的优劣,还能够为 优化工作提供量化的依据。在二进制程序中,程序是用以跳转指令或系统调用 结束的基本块(Basic Block)为度量和划分的原子单位的,故完备的剖分信息就 包括每个基本块的执行次数;基本块间的跳转次数;分支预测的错误预测率; 指令缓存、数据缓存的缺失命中率等。这些信息可以用来确定代码翻译的质量 和指导各种优化策略的有效实施。现有的统计这些剖分信息的方法包括插桩 (Instrumentation)和采样(Sampling)两种技术。

●插桩(Instrumentation)这种方式通过在代码中插入探针指令来采集和程 序执行行为、特性有关的数据信息。这种方法借助软件实现,虽然硬件 成本较低,但是会引入额外的开销。

●采样(Sampling)这种方式以一定的时间间隔对程序运行的相关数据进 行数据收集,而不需要对程序进行修改,但是这种方法获得的剖分信息 具有一定的误差,而且需要借助硬件实现,成本较高。

在传统的动态二进制翻译系统中,为了节省硬件成本和降低系统对特定硬件 的依赖程度,通常选用插桩的方法进行剖分信息的收集,但是考虑到系统的性 能,仅插入了开销较小的、只能用来统计基本块执行次数的探针指令来完成热 路径的构建工作。所谓热路径,即当二进制程序中的某些基本块按照一定的顺 序频繁的被执行时,这样的程序路径被称为热路径。当这样的基本块或者路径 被检测出来时,通过将这条路径上的各个基本块整合在一起就可以加快程序的 执行速度,原因就在于减少了跳转指令执行的次数,这样不仅提高了指令缓存 的命中率,也提高了处理器流水工作机制的效率。为了获取更多的剖分信息使 超级块的构造更加有依据性,传统方法只能通过频繁的回调统计函数实现,而 该策略会使系统的执行效率变慢数十倍以上。(请参见文献:Valgrind:A framework for heavyweight dynamic binary instrumentation,PLDI conference, 2007)。

随着多核处理器的不断发展,并行计算由于其更高的性能被越来越多的应用 在各种场景中,这主要归结于硬件级线程的概念,即不同的线程可以工作在不 同的CPU处理器核心上。在动态二进制翻译系统中,由于二进制程序收集剖分 信息的工作并不与原有动态二进制翻译系统“两次翻译”与执行的流程存在过 多的依赖,因此,可以尝试使用硬件级线程的方法来更高效地完成剖分信息获 取的工作。但是,这种思路在已有的国内外研究和实践工作领域中并未有类似 的实现案例。

发明内容

本发明的目的在于针对现有技术的不足,提供一种使用监控线程对二进制翻 译程序执行流程动态监控的方法,具有软件开销小,硬件成本低的优良特性, 能完整准确的获取监控信息,进一步提升动态二进制翻译系统的运行时性能。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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