[发明专利]寄存器窗口切换在二进制翻译中的实现方法有效

专利信息
申请号: 200910056334.X 申请日: 2009-08-13
公开(公告)号: CN101620546A 公开(公告)日: 2010-01-06
发明(设计)人: 管海兵;梁阿磊;左保京;章一超;孙廷韬 申请(专利权)人: 上海交通大学
主分类号: G06F9/45 分类号: G06F9/45
代理公司: 上海交达专利事务所 代理人: 王锡麟;王桂忠
地址: 200240*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 寄存器 窗口 切换 二进制 翻译 中的 实现 方法
【说明书】:

技术领域

发明涉及一种计算机技术领域的寄存器窗口切换方法,特别是一种寄存器窗口切换在二进制翻译中的实现方法。 

背景技术

动态二进制翻译是虚拟机技术中应用最广泛的一种方法,是解决遗留代码和提高软件平台适应性的一种有效手段,它在不需要可执行程序的源代码的情况下,可以动态地转换源机器平台上的二进制程序,并使之运行于其他目标机器平台上。对于动态二进制翻译器自身而言,执行性能是一个非常重要的衡量指标。所谓执行性能是指,以源程序在原架构下运行的效率为参照,其在动态二进制翻译器提供的运行环境下的效率损失度越低,翻译器的执行性能越好。包含中间指令的动态二进制翻译器一般包括前端和后端。对翻译代码的优化就集中在中间语言层次和目标机器代码层次,而前端的翻译质量直接影响了生成的中间指令的质量和目标机器代码的质量。 

有些系统结构,比如SPARC,AMD 29000和Intel i960,拥有很大数量的寄存器,工作寄存器组成若干个窗口,形成环状的结构,利用重叠寄存器窗口技术来加快程序的运转。寄存器窗口技术就是把寄存器分成很多固定数量的寄存器组,为每个函数调用过程分配一个寄存器组,当发生调用的时候,自动地把CPU转换到不同的寄存器组使用,不再需要做保存和恢复的操作,这个寄存器组即寄存器窗口。相邻的寄存器窗口间有固定数量的寄存器是重叠的,用来在两个寄存器窗口间进行数据共享。参数传递就是利用这个机制来实现的。每当有函数调用或从函数返回的时候,分别有一条指令(比如SPARC上是SAVE和RESTORE)来完成寄存器窗口的切换,但是由于不是每种系统结构都有相应的机制,这样就导致在具有寄存器窗口技术的架构上编译的程序被翻译到其它平台架构上的时候效率严重 受到影响,比如,以SPARC为前端的二进制翻译就会有很大程度的性能降低。目前解决寄存器窗口切换在动态二进制翻译中实现的方法有: 

方法一:对每条SAVE指令保存所有的寄存器的内容,并把重叠部分的寄存器读取到新的寄存器窗口中,对每条RESTORE指令读取所保存的寄存器的内容。 

方法二:分析程序的数据流图,据此得出哪些寄存器的内容在该指令的后面是需要用到的,对每条SAVE指令只保存这些需要用到的寄存器的内容,对每条RESTORE指令读取所保存的寄存器的内容。 

可以看到,第一种方法对于每条寄存器窗口切换指令都需要进行很多次寄存器间复制和内存访问的操作,效率很低;第二种方法在效率上提高了一些,但是需要分析数据流图,增加了翻译器前端的复杂度,并且只是消除了一部分访问内存的操作,没有从本质上提高效率,因为寄存器窗口切换指令被执行的频率是很高的,每次要保存一些寄存器的值到内存势必会增加不少内存的读写操作。 

因此,针对上述技术难题,在现有技术领域中需要提出一种新型的适用于基于中间指令的动态二进制翻译中的寄存器窗口切换指令的方法,用来提高在具有寄存器窗口技术的平台上编译的程序被翻译后在异构平台上的执行性能。 

发明内容

本发明的目的在于针对现有技术的不足,提供一种寄存器窗口切换在二进制翻译中的实现方法。本发明通过减少对内存的操作,降低运行时的开销,使程序执行性能有较大的提升。 

本发明包括步骤如下: 

①在翻译器的前端建立映射关系时用一段连续模拟内存空间对应源平台上的所有寄存器窗口; 

②用一个虚拟寄存器保存源平台上当前寄存器窗口在对应的模拟内存空间中的地址,这个虚拟寄存器与模拟内存空间中标记寄存器窗口位置的指针建立映射关系; 

③用另外的固定的内存空间模拟与寄存器窗口无关的控制/状态寄存器和全局寄存器; 

④对于映射源平台寄存器和翻译器虚拟寄存器的中间指令用二级寻址的方 式来确定源平台寄存器在模拟内存空间中的位置; 

⑤在翻译器前端翻译每条寄存器窗口切换指令时动态调整步骤②中虚拟寄存器的值。 

所述的动态二进制翻译,包含两个过程:一是把在源平台下运行的映像进行解构,按一个个基本块进行翻译,转换成由中间代码组成的中间代码块;二是把中间代码块翻译成在目标平台上能运行的目标代码块。 

步骤①中所述的在翻译器的前端建立映射关系时,通过模拟源平台的整个寄存器组,然后通过两级寻址方式实现了与源平台的寄存器窗口的一一对应。 

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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