摘要 | 第5-6页 |
ABSTRACT | 第6页 |
1 绪论 | 第13-19页 |
1.1 多核技术背景介绍 | 第13-17页 |
1.1.1 同构多核技术的研究现状及应用领域 | 第14-16页 |
1.1.2 异构多核技术的研究现状及应用领域 | 第16-17页 |
1.2 本文的组织结构 | 第17-19页 |
2 多核技术与研究平台 | 第19-35页 |
2.1 多核处理器的软件环境 | 第19-20页 |
2.1.1 架构仿真 | 第19页 |
2.1.2 应用软件划分 | 第19-20页 |
2.2 多核处理器的关键技术 | 第20-24页 |
2.2.1 处理单元的选择 | 第20页 |
2.2.2 核间通信和互连 | 第20-22页 |
2.2.3 存储器层次结构 | 第22-23页 |
2.2.4 Cache 一致性问题 | 第23-24页 |
2.3 Soclib 多核仿真平台 | 第24-30页 |
2.3.1 Soclib 仿真平台的介绍 | 第24页 |
2.3.2 Soclib 的优点 | 第24-26页 |
2.3.3 Soclib 仿真平台一些重要的功能模块 | 第26-29页 |
2.3.4 Soclib 系统的搭建 | 第29-30页 |
2.4 Xilinx 的FPGA 硬件平台 | 第30-35页 |
2.4.1 FPGA 技术的介绍 | 第30页 |
2.4.2 FPGA 硬件平台的模块组成 | 第30-35页 |
3 同构多核系统结构的实现 | 第35-49页 |
3.1 系统在Soclib 上的实现 | 第35-36页 |
3.1.1 Soclib 的系统架构 | 第35-36页 |
3.2 多核系统在FPGA 开发板上的实现 | 第36-49页 |
3.2.1 架构方案 | 第36-37页 |
3.2.2 资源评估预算 | 第37-38页 |
3.2.3 软件接口 | 第38-39页 |
3.2.4 系统整体架构的设计 | 第39-40页 |
3.2.5 关键模块的设计与实现 | 第40-43页 |
3.2.6 Cache 模块添加方案 | 第43-46页 |
3.2.7 多核的启动流程 | 第46-49页 |
4 功能验证与结果分析 | 第49-64页 |
4.1 重要硬件模块的功能验证 | 第49-50页 |
4.1.1 硬件锁模块的验证 | 第49页 |
4.1.2 PROC_ID 模块的验证 | 第49-50页 |
4.2 系统功能验证 | 第50-54页 |
4.2.1 Mutek 操作系统简介 | 第50-54页 |
4.2.2 多核的启动与运行测试 | 第54页 |
4.3 MJPEG 应用程序的测试 | 第54-57页 |
4.3.1 MJPEG 简介 | 第55页 |
4.3.2 MJPEG 的多线程任务划分 | 第55-56页 |
4.3.3 MJPEG 的线程间通信 | 第56-57页 |
4.3.4 MJPEG 的解码输出结果 | 第57页 |
4.4 FFT 算法的测试 | 第57-59页 |
4.4.1 FFT 算法的并行度分析 | 第57-58页 |
4.4.2 FFT 算法针对本文硬件平台的改进 | 第58-59页 |
4.5 实验数据及分析 | 第59-61页 |
4.5.1 MJPEG 实验结果(没有Cache 的系统) | 第59-60页 |
4.5.2 FFT 实验结果(没有Cache 的系统) | 第60页 |
4.5.3 综合分析 | 第60-61页 |
4.6 系统Cache 模块的添加 | 第61-63页 |
4.6.1 本文最终实现的Cache 模块 | 第61-62页 |
4.6.2 实验结果 | 第62-63页 |
4.6.3 只带指令Cache 实现方案的瓶颈 | 第63页 |
4.7 其他系统优化方案 | 第63-64页 |
5 总结与展望 | 第64-65页 |
5.1 总结 | 第64页 |
5.2 展望 | 第64-65页 |
参考文献 | 第65-67页 |
附录1:部分重要硬件模块实现代码 | 第67-73页 |
致谢 | 第73-74页 |
攻读学位期间发表的学术论文 | 第74页 |