-
公开(公告)号:CN101286122B
公开(公告)日:2011-03-23
申请号:CN200810112231.6
申请日:2008-05-22
Applicant: 中国科学院计算技术研究所
Abstract: 本发明公开了RISC处理器及其浮点栈指令翻译装置及方法,其选择目标体系结构的多个浮点寄存器作为目标寄存器,并以一整型数据变量和浮点数组变量,作为模拟TOP寄存器和模拟数据寄存器,模拟源体系结构的TOP寄存器操作和数据寄存器;在翻译浮点栈指令中,根据不同的浮点栈指令,选择未被分配的目标寄存器,将所述浮点栈指令的模拟数据寄存器映射到相应的所述未被分配的目标寄存器,对所述相应的目标寄存器进行翻译操作,并根据目标寄存器的变化更新模拟TOP寄存器以及模拟数据寄存器;其能够节省因固定映射寄存器而生产的数据交换和数据传输指令翻译时的开销,提高二进制翻译系统的效率。
-
公开(公告)号:CN101286122A
公开(公告)日:2008-10-15
申请号:CN200810112231.6
申请日:2008-05-22
Applicant: 中国科学院计算技术研究所
Abstract: 本发明公开了RISC处理器及其浮点栈指令翻译装置及方法,其选择目标体系结构的多个浮点寄存器作为目标寄存器,并以一整型数据变量和浮点数组变量,作为模拟TOP寄存器和模拟数据寄存器,模拟源体系结构的TOP寄存器操作和数据寄存器;在翻译浮点栈指令中,根据不同的浮点栈指令,选择未被分配的目标寄存器,将所述浮点栈指令的模拟数据寄存器映射到相应的所述未被分配的目标寄存器,对所述相应的目标寄存器进行翻译操作,并根据目标寄存器的变化更新模拟TOP寄存器以及模拟数据寄存器;其能够节省因固定映射寄存器而生产的数据交换和数据传输指令翻译时的开销,提高二进制翻译系统的效率。
-
公开(公告)号:CN100359472C
公开(公告)日:2008-01-02
申请号:CN200510080339.8
申请日:2005-07-01
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了一种二进制翻译中库函数调用的处理方法,尽可能地对源X86二进制程序中的库函数调用进行识别和提升;对于可包装库函数,用目标机本地的约定进行传参和返回值处理,这样省去了对X86参数压栈和从堆栈中取返回值的模拟,避免了频繁的内存操作,使用本地的库函数,也不会因为翻译PLT、fixup函数、库函数的源二进制代码造成代码膨胀导致的性能损失,提高了程序执行的效率;对于PLT短路库函数,虽然继续维护X86模拟堆栈,但是控制流不进入PLT和动态链接器的fixup函数,即不翻译PLT和动态链接器的fixup函数的源二进制代码,避免了因为翻译PLT、fixup函数造成代码膨胀导致的性能损失,控制流直接进入库函数的本地码,也能够较好地提高程序执行的效率。
-
公开(公告)号:CN101299192A
公开(公告)日:2008-11-05
申请号:CN200810115202.5
申请日:2008-06-18
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 一种非对齐访存的处理方法,包括:根据目标体系结构设定翻译门限,在解释器中对访存指令进行插桩,得到非对齐访存指令的信息;当翻译单元的执行次数大于所述翻译门限时,根据所述非对齐访存指令的信息指导翻译器选择合适指令将翻译单元翻译成本地码;根据异常处理机制将解释器插桩未发现的非对齐访存指令生成相应的非对齐访存指令序列,插入到异常处理地址,嵌入到执行代码中。使用该方法可以极大的减少二进制翻译器中产生的非对齐访存异常的次数,提高二进制翻译器的效率;可以更好的处理代码执行行为随不同输入集而变化的应用程序中出现的非对齐访存异常,并且可以有效的提高二进制翻译系统的运行效率。
-
公开(公告)号:CN1900910A
公开(公告)日:2007-01-24
申请号:CN200510085509.1
申请日:2005-07-22
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了一种二进制翻译中经由跳转表的多目标分支语句的识别方法,包括:1)把要识别的语义转化为语义图,该语义图作为模板图;2)选择待识别语义的代码片段;3)将代码片段按照语义构建语义图;4)将步骤3)构建出的语义图和步骤1)得到的模板图做匹配,若匹配成功,则识别出语义,执行下一步,否则所选择的代码片段语义识别失败;5)获取跳转表的地址和大小,进而得到表项中记录的分支目标地址,标记其为有效代码。本发明的优点在于:扩大了二进制翻译中静态翻译阶段的翻译覆盖率,提高了代码的执行效率;可以应用于多种平台下的二进制文件分析中,适用范围广;在解决识别经由跳转表的多目标分支语句问题上算法简练,易于实现。
-
公开(公告)号:CN101299192B
公开(公告)日:2010-06-02
申请号:CN200810115202.5
申请日:2008-06-18
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 一种非对齐访存的处理方法,包括:根据目标体系结构设定翻译门限,在解释器中对访存指令进行插桩,得到非对齐访存指令的信息;当翻译单元的执行次数大于所述翻译门限时,根据所述非对齐访存指令的信息指导翻译器选择合适指令将翻译单元翻译成本地码;根据异常处理机制将解释器插桩未发现的非对齐访存指令生成相应的非对齐访存指令序列,插入到异常处理地址,嵌入到执行代码中。使用该方法可以极大的减少二进制翻译器中产生的非对齐访存异常的次数,提高二进制翻译器的效率;可以更好的处理代码执行行为随不同输入集而变化的应用程序中出现的非对齐访存异常,并且可以有效的提高二进制翻译系统的运行效率。
-
公开(公告)号:CN100377089C
公开(公告)日:2008-03-26
申请号:CN200510085509.1
申请日:2005-07-22
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了一种二进制翻译中经由跳转表的多目标分支语句的识别方法,包括:1)、把要识别的语义转化为语义图,该语义图作为模板图;2)、选择待识别语义的代码片段;3)将代码片段按照语义构建语义图;4)将步骤3)构建出的语义图和步骤1)得到的模板图做匹配,若匹配成功,则识别出语义,执行下一步,否则所选择的代码片段语义识别失败;5)获取跳转表的地址和大小,进而得到表项中记录的分支目标地址,标记其为有效代码。本发明的优点在于:扩大了二进制翻译中静态翻译阶段的翻译覆盖率,提高了代码的执行效率;可以应用于多种平台下的二进制文件分析中,适用范围广;在解决识别经由跳转表的多目标分支语句问题上算法简练,易于实现。
-
公开(公告)号:CN1892602A
公开(公告)日:2007-01-10
申请号:CN200510080339.8
申请日:2005-07-01
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了一种二进制翻译中库函数调用的处理方法,尽可能地对源X86二进制程序中的库函数调用进行识别和提升;对于可包装库函数,用目标机本地的约定进行传参和返回值处理,这样省去了对X86参数压栈和从堆栈中取返回值的模拟,避免了频繁的内存操作,使用本地的库函数,也不会因为翻译PLT、fixup函数、库函数的源二进制代码造成代码膨胀导致的性能损失,提高了程序执行的效率;对于PLT短路库函数,虽然继续维护X86模拟堆栈,但是控制流不进入PLT和动态链接器的fixup函数,即不翻译PLT和动态链接器的fixup函数的源二进制代码,避免了因为翻译PLT、fixup函数造成代码膨胀导致的性能损失,控制流直接进入库函数的本地码,也能够较好地提高程序执行的效率。
-
-
-
-
-
-
-