摘要 | 第4-6页 |
Abstract | 第6-7页 |
第一章 绪论 | 第15-27页 |
1.1 研究背景与研究意义 | 第15-19页 |
1.1.1 国产处理器的发展与挑战 | 第15-18页 |
1.1.2 面向软件移植的二进制翻译技术 | 第18-19页 |
1.2 研究现状 | 第19-22页 |
1.2.1 二进制翻译的发展 | 第19-21页 |
1.2.2 研究热点 | 第21-22页 |
1.3 软件移植中二进制翻译面临的主要问题 | 第22-24页 |
1.4 工作内容和创新 | 第24-25页 |
1.5 组织结构 | 第25-27页 |
第二章 软件移植中的二进制翻译技术 | 第27-41页 |
2.1 程序及程序的运行 | 第27-31页 |
2.1.1 程序的两种状态 | 第27-29页 |
2.1.2 共享库与动态链接 | 第29-30页 |
2.1.3 计算机系统的抽象分层 | 第30-31页 |
2.2 基于再编译技术的静态二进制翻译 | 第31-34页 |
2.2.1 传统的编译过程 | 第31-32页 |
2.2.2 二进制程序的再编译技术 | 第32-34页 |
2.3 进程虚拟机中的动态二进制翻译 | 第34-37页 |
2.3.1 虚拟机 | 第34-36页 |
2.3.2 进程虚拟机中的动态二进制翻译 | 第36-37页 |
2.4 QEMU及TCG | 第37-39页 |
2.4.1 QEMU | 第37-38页 |
2.4.2 TCG | 第38-39页 |
2.5 总结 | 第39-41页 |
第三章 二进制翻译过程的抽象 | 第41-51页 |
3.1 引言 | 第41页 |
3.2 机器仿真的形式化模型 | 第41-43页 |
3.3 指令序列的变换 | 第43-45页 |
3.4 二进制翻译的形式化模型 | 第45-49页 |
3.4.1 二进制翻译中应用程序的抽象 | 第45-46页 |
3.4.2 指令及指令序列的分类 | 第46-48页 |
3.4.3 指令序列执行序关系的求解 | 第48页 |
3.4.4 二进制翻译过程的抽象描述 | 第48-49页 |
3.5 小结 | 第49-51页 |
第四章 静态预翻译优化 | 第51-65页 |
4.1 引言 | 第51-52页 |
4.2 动态二进制翻译过程的代价分析 | 第52-54页 |
4.2.1 一般的动态二进制翻译过程 | 第52-53页 |
4.2.2 静态预翻译的动态二进制翻译框架 | 第53-54页 |
4.3 静态预翻译机制的实现 | 第54-59页 |
4.3.1 一致的翻译模式 | 第54-55页 |
4.3.2 基于地址信息的查询和执行 | 第55-58页 |
4.3.3 动态翻译中的查询和执行 | 第58-59页 |
4.4 实验与分析 | 第59-63页 |
4.4.1 实验环境 | 第59-60页 |
4.4.2 实验结果 | 第60-63页 |
4.5 小结 | 第63-65页 |
第五章 库函数处理的查询优化 | 第65-77页 |
5.1 引言 | 第65-66页 |
5.2 动态二进制翻译中的库函数处理 | 第66-68页 |
5.2.1 共享库函数的动态链接 | 第66页 |
5.2.2 动态二进制翻译中的库函数处理 | 第66-68页 |
5.3 库函数处理过程的解析 | 第68-70页 |
5.3.1 库函数处理的call指令翻译 | 第68-69页 |
5.3.2 库函数名称的解析 | 第69-70页 |
5.4 查询优化的分析及实现 | 第70-72页 |
5.4.1 查询表的优化 | 第70页 |
5.4.2 查询方法的优化 | 第70-71页 |
5.4.3 优化的查询实现及其算法描述 | 第71-72页 |
5.5 实验与分析 | 第72-75页 |
5.5.1 实验环境 | 第72-73页 |
5.5.2 实验结果 | 第73-74页 |
5.5.3 结果分析 | 第74-75页 |
5.6 总结 | 第75-77页 |
第六章 代码生成中的寄存器分配优化 | 第77-91页 |
6.1 引言 | 第77-79页 |
6.2 二进制翻译中的代码生成过程 | 第79-83页 |
6.2.1 TCG中的变量 | 第80-81页 |
6.2.2 TCG中的寄存器分配 | 第81-82页 |
6.2.3 现有寄存器分配方法的不足 | 第82-83页 |
6.3 基于变量属性的寄存器分配方法 | 第83-85页 |
6.4 实验结果与结果分析 | 第85-90页 |
6.4.1 实验环境 | 第86页 |
6.4.2 正确性测试 | 第86-87页 |
6.4.3 寄存器分配相关信息分析 | 第87-88页 |
6.4.4 循环热代码性能测试 | 第88-89页 |
6.4.5 递归热代码性能测试 | 第89页 |
6.4.6 整体性能测试及实验结果分析 | 第89-90页 |
6.5 小结 | 第90-91页 |
第七章 MPI并行程序的二进制翻译移植 | 第91-105页 |
7.1 引言 | 第91-92页 |
7.2 MPI程序的执行环境及动态翻译移植 | 第92-97页 |
7.2.1 MPI程序的执行环境及动态翻译移植 | 第92-94页 |
7.2.2 本地库置换和动态二进制翻译相结合的MPI程序移植方法 | 第94-97页 |
7.3 MPI程序动态二进制翻译移植的实现 | 第97-100页 |
7.3.1 库函数调用的识别和记录 | 第97-98页 |
7.3.2 MPI函数调用的识别 | 第98-99页 |
7.3.3 本地库函数封装和调用 | 第99-100页 |
7.4 实验与测试 | 第100-104页 |
7.4.1 实验环境 | 第100页 |
7.4.2 正确性测试 | 第100页 |
7.4.3 性能测试 | 第100-104页 |
7.5 小结 | 第104-105页 |
第八章 总结与展望 | 第105-107页 |
致谢 | 第107-108页 |
参考文献 | 第108-114页 |
作者简历 | 第114页 |