[发明专利]用于受限系统的分布式动态二进制翻译方法有效

专利信息
申请号: 200910047474.0 申请日: 2009-03-12
公开(公告)号: CN101504613A 公开(公告)日: 2009-08-12
发明(设计)人: 管海兵;梁阿磊;林凌;孙廷韬;褚超 申请(专利权)人: 上海交通大学
主分类号: G06F9/45 分类号: G06F9/45
代理公司: 上海交达专利事务所 代理人: 毛翠莹
地址: 200240*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 用于 受限 系统 分布式 动态 二进制 翻译 方法
【说明书】:

技术领域

发明涉及一种用于受限系统的分布式的动态二进制翻译方法,具体涉及一种采用分布式架构,适用于在瘦客户端等受限系统上使用的动态二进制翻译方法。本发明属于动态二进制翻译技术领域。

背景技术

动态二进制翻译技术可以在不重新编译源代码的情况下,自动翻译异构平台的二进制代码,达到运行异构平台的二进制代码的目的。动态二进制翻译技术可以使硬件生产商在构建新系统结构时,不用更多考虑兼容之前的体系结构。同时使用动态二进制翻译技术也能更好地维护之前遗留的二进制代码,特别是那些硬件已经不再生产的平台上的二进制代码,又可以加强单个体系架构的应用范围,使单个体系结构(如Intel平台)运行多个体系结构(如MIPS,SPARC,PowerPC平台)的二进制代码。

一般动态二进制翻译器必定包括翻译模块,执行模块。翻译模块将源平台的二进制代码直接翻译到目标平台可执行代码,对于翻译复杂的源平台的二进制代码,如Intel IA32平台的二进制代码,其对应的翻译模块必定是复杂而庞大的,在进行指令翻译过程中,翻译模块会消耗比较多的计算资源以及内存资源,对于一个动态二进制翻译器是一个不小的负担。执行模块主要功能是执行经过翻译模块翻译后的目标平台可执行代码。

目前已经开发出一些商用的动态二进制翻译器,如Intel的IA32EL、Hp的Dynamo等,但所有这些动态二进制翻译器都并非针对于一个受限系统(如手机,ARM平台等计算能力、内存容量都相对比较弱的系统)。对于瘦客户端等受限系统来说,直接移植传统动态二进制翻译器会带来非常大的开销,并且效果也会非常低效。原因就是受限系统的运算能力,内存都相对较弱,而翻译器中的复杂模块,如翻译模块等在受限系统中的运行,将消耗巨大的系统资源,带来额外开销,使本来资源就有限的受限系统更难承受。

发明内容

本发明的目的在于针对现有技术的不足,提供一种用于受限系统的分布式动态二进制翻译方法,适用于处理器、内存资源都有限的受限系统,加强受限系统执行异构平台程序的能力。

为实现上述目的,本发明对传统动态二进制翻译器做改进,将翻译器的翻译和执行模块做划分,分别安置于服务端和受限客户端,服务端完成翻译功能,客户端完成执行功能。客户端在执行异构平台代码时,向服务端发送翻译请求,服务端翻译完成后,将翻译后代码返回给客户端,由客户端执行此代码,直至遇到未翻译的代码,重新开始一轮请求,翻译,执行的过程。通过这种模块划分,减轻动态二进制翻译器在受限系统的负担,加快动态二进制翻译器在受限系统运行速度。

本发明用于受限系统的分布式动态二进制翻译方法的步骤如下:

1.客户端加载异构平台的二进制代码,与服务端建立连接,完成各自初始化。

受限系统动态二进制翻译器的客户端加载异构平台的二进制代码,完成初始化,并通过网络连接与受限系统动态二进制翻译器的服务端连接,发送二进制代码和同步信息。服务端根据此二进制行代码所属指令集平台,初始化翻译器服务端对应的翻译模块,完成服务端的初始化。

2.服务端接收客户端翻译请求,翻译指定的源二进制代码块至客户端的目标代码块。

受限系统动态二进制翻译的客户端在执行一个未翻译过的基本块时,发送翻译请求至动态二进制翻译器服务端。服务端接收到客户端的翻译请求后,先在已翻译代码缓存中查找是否存在已经翻译过的代码块,如果存在,则对代码块做修改后,将代码块发送回客户端;否则开始一个翻译过程,翻译完成后将起始地址和翻译好的代码块存入服务端的已翻译代码缓存区中,并将翻译后代码块传送给客户端。

3.客户端等待服务端的回应,接收翻译后的代码块。

在服务端完成翻译前,客户端一直处于等待状态,直到服务端翻译过程完成,通知客户端后,客户端开始接收翻译后的代码块,将其存入客户端本地代码缓存区中。

4.客户端执行翻译后代码块。

客户端在接收到翻译后的代码块后,开始对其做基本块连接,保存机器运行状态,然后开始执行连接后的基本块;如果遇到未翻译的代码块,则开始新一轮的请求、翻译、执行过程。

5.程序运行结束,退出程序,客户端和服务端释放各自的内存资源等。

本发明的所涉及的方法的优点在于采用分布式架构,分离一个动态二进制翻译器的翻译模块和执行模块,翻译模块放在服务端,执行模块放在客户端,使得对系统资源有较高要求的翻译模块与受限系统分离,大大减轻了作为客户端的受限系统的负担。本发明这种分布式动态二进制翻译方法更加合适于受限系统,加强了受限系统执行异构平台程序的能力。

附图说明

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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