二进制热路径识别技术的研究与实现
摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第一章 绪论 | 第11-14页 |
1.1 研究背景及意义 | 第11-12页 |
1.1.1 研究背景 | 第11页 |
1.1.2 研究意义 | 第11-12页 |
1.2 国内外现状及发展趋势 | 第12-13页 |
1.3 本文的主要工作 | 第13页 |
1.4 本文的结构安排 | 第13-14页 |
第二章 相关技术介绍 | 第14-30页 |
2.1 嵌入式相关技术 | 第14-18页 |
2.1.1 ARM的模式 | 第14-15页 |
2.1.2 ARM的寄存器 | 第15-16页 |
2.1.3 反编译技术 | 第16-18页 |
2.2 热点分析技术 | 第18-25页 |
2.2.1 GPROF | 第18-21页 |
2.2.2 二进制翻译技术 | 第21-25页 |
2.3 热路径识别技术 | 第25-27页 |
2.3.1 基于基本块信息的热路径识别 | 第25页 |
2.3.2 基于跳转边信息的热路径识别 | 第25-26页 |
2.3.3 基于路径信息的热路径识别 | 第26页 |
2.3.4 NET动态热路径预测策略 | 第26-27页 |
2.4 ELF文件 | 第27-29页 |
2.4.1 文件头 | 第27页 |
2.4.2 段表 | 第27-28页 |
2.4.3 字符串表 | 第28页 |
2.4.4 结构图 | 第28-29页 |
2.5 本章小结 | 第29-30页 |
第三章 系统需求分析 | 第30-37页 |
3.1 顶层数据流图 | 第31页 |
3.2 第一层数据流图 | 第31-32页 |
3.3 第二层流程图 | 第32-35页 |
3.3.1 控制系统分解 | 第33-34页 |
3.3.2 生成热点系统分解 | 第34-35页 |
3.4 数据字典 | 第35-36页 |
3.5 本章小结 | 第36-37页 |
第四章 系统设计 | 第37-55页 |
4.1 系统整体结构设计 | 第37-39页 |
4.1.1 功能结构设计 | 第37-38页 |
4.1.2 模块结构设计 | 第38-39页 |
4.2 初始化模块设计 | 第39-43页 |
4.2.1 同一地址空间 | 第39-41页 |
4.2.2 main函数地址 | 第41-43页 |
4.2.3 函数先于main执行 | 第43页 |
4.3 基本块翻译模块设计 | 第43-47页 |
4.3.1 虚拟寄存器 | 第43-44页 |
4.3.2 VEX模块 | 第44-46页 |
4.3.3 翻译基本块 | 第46-47页 |
4.4 任务切换模块设计 | 第47-48页 |
4.4.1 执行基本块 | 第47页 |
4.4.2 结束执行 | 第47-48页 |
4.5 缓存模块设计 | 第48-50页 |
4.6 系统调用模块设计 | 第50页 |
4.7 热点生成模块设计 | 第50-52页 |
4.7.1 基本块信息收集 | 第51页 |
4.7.2 热路径生成 | 第51-52页 |
4.8 运行时模块设计 | 第52-54页 |
4.9 本章小结 | 第54-55页 |
第五章 系统实现 | 第55-69页 |
5.1 初始化模块实现 | 第55-57页 |
5.2 基本块翻译模块实现 | 第57-60页 |
5.3 任务切换模块实现 | 第60-61页 |
5.4 缓存模块实现 | 第61-64页 |
5.5 系统调用模块实现 | 第64-65页 |
5.6 热点生成模块实现 | 第65-67页 |
5.7 运行时模块实现 | 第67-68页 |
5.8 本章小结 | 第68-69页 |
第六章 系统测试 | 第69-78页 |
6.1 测试环境 | 第69页 |
6.2 功能测试用例 | 第69-75页 |
6.2.1 测试用例 1 | 第69-72页 |
6.2.2 测试用例 2 | 第72-75页 |
6.3 性能测试 | 第75-77页 |
6.4 本章小结 | 第77-78页 |
第七章 总结与展望 | 第78-80页 |
7.1 本文的主要贡献 | 第78-79页 |
7.2 下一步进展工作 | 第79-80页 |
致谢 | 第80-81页 |
参考文献 | 第81-83页 |