发明名称 软硬件协同设计的动态二进制翻译方法
摘要 本发明涉及一种软硬件协同设计的动态二进制翻译方法,在硬件层面实现处理器芯片的虚拟机协处理器,包括二进制翻译器及TCache管理器等单元,Tcache的管理和查找由硬件实现,以指令的形式快速查找;二进制翻译单元由硬件实现,使得执行目标指令的主处理器不必切换去做翻译,并且启动时间和Misss时间也得到很好的缓解。软件部分包括异构可执行程序的加载、目标指令的执行、热代码的优化等。本发明通过软件硬件的紧密耦合有效控制整个虚拟机和原有系统之间的共存问题,达到内在的并行性。在单个处理器上支持多指令集,解决异构处理器的指令兼容问题,并较传统的纯软件的虚拟机提高性能和透明性,使虚拟机达到接近于本地执行速度。
申请公布号 CN101387969A 申请公布日期 2009.03.18
申请号 CN200810201256.3 申请日期 2008.10.16
申请人 上海交通大学 发明人 李庭涛;管海兵;梁阿磊
分类号 G06F9/45(2006.01)I;G06F9/455(2006.01)I 主分类号 G06F9/45(2006.01)I
代理机构 上海交达专利事务所 代理人 毛翠莹
主权项 1、一种软硬件协同设计的动态二进制翻译方法,其特征在于包括如下步骤:1)主处理器上运行的软件层加载异构的可执行程序到Loader的地址空间中,并初始化虚拟机协处理器,通过解析可执行程序,获得程序的入口地址,将该入口地址写入虚拟机协处理器的查询寄存器,向虚拟机协处理器提出查询请求;2)虚拟机协处理器的目标代码缓存管理单元在获得来自主处理器的查询请求时,查询虚拟机协处理器维护的SPC-TPC映射表;如果映射表存在SPC-TPC这样的一对映射,则将命中状态寄存器标志为Hit,并将查询的SPC所对应的TPC写入查询结果寄存器;如果映射表不存在SPC-TPC这样的一对映射,则将命中状态寄存器标志为Miss,目标代码缓存管理单元请求虚拟机协处理器的二进制翻译单元进行翻译;3)主处理器读取命中状态寄存器标志,如果命中状态寄存器标志为Miss,则等待二进制翻译单元的翻译结果;如果命中状态寄存器标志为Hit,则读取查询结果寄存器中的TPC值,跳转到TPC地址处执行对应的基本块指令;如果执行到退出指令,则完成整个程序的执行,否则将下一个基本块的指令的地址作为待查询的SPC,写入虚拟机协处理器的查询寄存器,向虚拟机协处理器提出查询请求,转步骤2)执行;4)虚拟机协处理器的二进制翻译单元在获得翻译请求时,依次取基本块中的源指令翻译为目标指令,翻译好的指令存放到目标代码缓存中;完成指令的翻译之后,更新SPC-TPC表;主处理器再次向虚拟机协处理器提出查询请求;转步骤2)执行。
地址 200240上海市闵行区东川路800号