| 摘要 | 第4-5页 |
| ABSTRACT | 第5-6页 |
| 第一章 绪论 | 第10-14页 |
| 1.1 选题背景 | 第10-11页 |
| 1.2 方案选择 | 第11页 |
| 1.3 论文的主要工作和创新点 | 第11-12页 |
| 1.4 论文的结构安排 | 第12-14页 |
| 第二章 模拟器与QEMU相关技术 | 第14-28页 |
| 2.1 模拟器的概念 | 第14-15页 |
| 2.1.1 虚拟化技术 | 第14-15页 |
| 2.1.2 模拟器 | 第15页 |
| 2.2 二进制翻译技术 | 第15-16页 |
| 2.2.1 二进制翻译系统的类型 | 第15页 |
| 2.2.2 翻译方式 | 第15-16页 |
| 2.3 QEMU简介 | 第16-17页 |
| 2.4 QEMU的模块划分 | 第17页 |
| 2.5 QEMU的二进制翻译技术 | 第17-21页 |
| 2.5.1 QEMU的二进制翻译流程 | 第18-19页 |
| 2.5.2 TCG的代码生成流程 | 第19页 |
| 2.5.3 TCG的Prologue和Epilogue | 第19-20页 |
| 2.5.4 翻译块链 | 第20-21页 |
| 2.6 QEMU的硬件模拟机制 | 第21-23页 |
| 2.6.1 QOM的特性与注册流程 | 第21-22页 |
| 2.6.2 QOM硬件关系与属性 | 第22-23页 |
| 2.6.3 动态添加属性 | 第23页 |
| 2.7 QEMU的运行模式 | 第23-26页 |
| 2.7.1 QEMU中的协程 | 第24页 |
| 2.7.2 执行客户机指令 | 第24-26页 |
| 2.8 本章小结 | 第26-28页 |
| 第三章 BM3803MG的结构与需求分析 | 第28-36页 |
| 3.1 BM3803MG的结构 | 第28页 |
| 3.2 功能性需求分析 | 第28-34页 |
| 3.2.1 定义BM3803MG机器 | 第29页 |
| 3.2.2 处理器的模拟与指令翻译 | 第29页 |
| 3.2.3 模拟指令Cache和数据Cache | 第29-30页 |
| 3.2.4 模拟存储设备 | 第30页 |
| 3.2.5 模拟中断控制器 | 第30-32页 |
| 3.2.6 模拟GPIO,UART | 第32-33页 |
| 3.2.7 模拟定时器与看门狗 | 第33-34页 |
| 3.3 性能需求 | 第34页 |
| 3.4 本章总结 | 第34-36页 |
| 第四章 处理器核心的模拟和指令翻译的设计与实现 | 第36-48页 |
| 4.1 定义机器 | 第36-37页 |
| 4.2 实现处理器核心的设计与实现 | 第37-41页 |
| 4.2.1 处理器核心相关类的设计 | 第37页 |
| 4.2.2 状态寄存器PSR的实现 | 第37-39页 |
| 4.2.3 通用寄存器的实现 | 第39-41页 |
| 4.3 指令翻译的相关技术 | 第41-43页 |
| 4.3.1 BM3803MG支持的指令集 | 第41-42页 |
| 4.3.2 TCG微指令和临时变量 | 第42页 |
| 4.3.3 微指令的定义和分类 | 第42-43页 |
| 4.3.4 TCG变量 | 第43页 |
| 4.4 指令的翻译的实现 | 第43-46页 |
| 4.4.1 定义变量到状态的映射 | 第44页 |
| 4.4.2 简单指令的翻译 | 第44-45页 |
| 4.4.3 复杂指令的翻译 | 第45-46页 |
| 4.5 本章总结 | 第46-48页 |
| 第五章 Cache与外围硬件的设计与实现 | 第48-60页 |
| 5.1 Cache实现方法研究与实现 | 第48-51页 |
| 5.1.1 一种实现Cache的思路 | 第48-49页 |
| 5.1.2 指令Cache的实现方法 | 第49-51页 |
| 5.1.3 数据Cache的实现方法 | 第51页 |
| 5.2 存储与I/O的设备的读写设计与实现 | 第51-54页 |
| 5.2.1 相关的数据结构 | 第51-52页 |
| 5.2.2 BM3803MG的存储空间 | 第52-54页 |
| 5.3 BM3803MG中断控制器的设计与实现 | 第54-55页 |
| 5.4 其他外围硬件的设计与实现 | 第55-59页 |
| 5.4.1 UART的设计与实现 | 第55-58页 |
| 5.4.2 定时器的设计与实现 | 第58-59页 |
| 5.4.3 看门狗的设计与实现 | 第59页 |
| 5.5 本章总结 | 第59-60页 |
| 第六章 测试与验证 | 第60-68页 |
| 6.1 测试说明 | 第60页 |
| 6.2 测试环境与工具 | 第60-61页 |
| 6.3 指令翻译的测试 | 第61页 |
| 6.4 功能测试 | 第61-64页 |
| 6.5 性能测试 | 第64-66页 |
| 6.6 测试小结 | 第66-68页 |
| 第七章 总结与展望 | 第68-70页 |
| 7.1 论文工作总结 | 第68页 |
| 7.2 展望 | 第68-70页 |
| 参考文献 | 第70-72页 |
| 致谢 | 第72页 |