[发明专利]面向VLIW架构的动态二进制翻译方法和装置有效
申请号: | 201711005620.4 | 申请日: | 2017-10-25 |
公开(公告)号: | CN109710268B | 公开(公告)日: | 2022-02-08 |
发明(设计)人: | 康烁 | 申请(专利权)人: | 康烁 |
主分类号: | G06F8/52 | 分类号: | G06F8/52;G06F12/1027 |
代理公司: | 北京卓岚智财知识产权代理事务所(特殊普通合伙) 11624 | 代理人: | 任漱晨 |
地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 vliw 架构 动态 二进制 翻译 方法 装置 | ||
1.一种面向VLIW架构的动态二进制翻译方法,其特征在于,包括:
获取基本块,所述基本块包含多条待翻译指令;
检查执行延迟槽队列中是否存在执行前一基本块后的延迟操作,其中,所述执行延迟槽队列用于存储并处理前一基本块翻译过程中产生的延迟操作;
若所述执行延迟槽队列中不存在执行前一基本块后的延迟操作,则进入快速模式翻译所述基本块,检查翻译延迟槽队列是否存在延迟至本周期的延迟操作;如果存在,则直接将延迟至本周期的延迟操作翻译成对应操作的本地代码,并从队列中移除所述延迟至本周期的延迟操作;其中,翻译延迟槽队列用于翻译时检查队列,将之前周期的延迟操作翻译为本地代码;
翻译本周期指令,若所述本周期指令存在延迟操作,则将所述延迟操作写入翻译延迟槽队列;
所述基本块翻译结束后,若仍然遗留有延迟操作,则将所述延迟操作搬运到所述执行延迟槽队列中;
若所述执行延迟槽队列中存在执行前一基本块后的延迟操作,则进入原始模式翻译所述基本块;
执行经所述快速模式和所述原始模式翻译好的本地代码;
所述原始模式包括:生成队列检查钩子函数,检查执行延迟槽列队中是否存在延迟至本周期的延迟操作,若存在,则执行对应延迟至本周期的延迟操作的函数,并从执行队列中移除所述延迟至本周期延迟操作;
翻译本周期指令,若所述本周期指令存在延迟操作,则生成写队列钩子函数,将所述延迟操作写入到执行延迟槽队列中。
2.根据权利要求1所述的动态二进制翻译方法,其特征在于,所述执行经所述快速模式和所述原始模式翻译好的本地代码包括:将翻译的基本块的翻译前的首地址以及翻译后的地址存入到不同模式哈希表中,并开始执行翻译好的本地代码,所述不同模式的哈希表包括用于所述快速模式的哈希表和用于原始模式的哈希表。
3.根据权利要求2所述的动态二进制翻译方法,其特征在于,在执行经所述快速模式和所述原始模式翻译好的本地代码之后,所述方法还包括:查找对应所述不同模式哈希表中是否存在待执行指令地址对应的本地代码地址,若不存在,则翻译新的基本块。
4.根据权利要求1所述的动态二进制翻译方法,其特征在于,获取基本块之前,该方法还包括:构建从当前待翻译指令开始,到遇到的第一个跳转指令为止,并包含所述跳转指令的所有延迟槽周期内的指令的基本块。
5.根据权利要求1所述的动态二进制翻译方法,其特征在于,获取所述基本块之前,所述方法还包括:构建用于处理每周期遗留操作的执行延迟槽队列和翻译延迟槽队列以及用于快速模式和原始模式下地址映射的哈希表。
6.一种面向VLIW架构的动态二进制翻译装置,其特征在于,包括:
判断模块一,用于获取基本块后检查执行延迟槽队列中是否存在执行前一基本块后的延迟操作,其中,所述执行延迟槽队列用于存储并处理前一基本块翻译过程中产生的延迟操作;
翻译模块一,若所述执行延迟槽队列中不存在执行前一基本块后的延迟操作,则进入快速模式翻译所述基本块,检查翻译延迟槽队列是否存在延迟至本周期的延迟操作;如果存在,则直接将延迟至本周期的延迟操作翻译成对应操作的本地代码,并从队列中移除所述延迟至本周期的延迟操作;其中,翻译延迟槽队列用于翻译时检查队列,将之前周期的延迟操作翻译为本地代码;翻译本周期指令,若所述本周期指令存在延迟操作,则将所述延迟操作写入翻译延迟槽队列;
翻译模块二,用于若所述执行延迟槽队列中存在执行前一基本块后的延迟操作,则进入原始模式翻译所述基本块;
搬运模块,用于当所述基本块翻译结束后,处于快速翻译模式且翻译延迟槽队列中仍然有延迟操作时,将所述延迟操作写入到执行延迟槽队列中;
执行模块,用于执行经所述快速模式和所述原始模式翻译好的本地代码;
所述原始模式包括:生成队列检查钩子函数,检查执行延迟槽列队中是否存在延迟至本周期的延迟操作,若存在,则执行对应延迟至本周期的延迟操作的函数,并从执行队列中移除所述延迟至本周期延迟操作;
翻译本周期指令,若所述本周期指令存在延迟操作,则生成写队列钩子函数,将所述延迟操作写入到执行延迟槽队列中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于康烁,未经康烁许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711005620.4/1.html,转载请声明来源钻瓜专利网。