论文摘要
动态可重构FPGA能够在系统运行局部重构硬件逻辑,其既具有硬件进行高速并行运算的能力,又具有像软件一样的编程的灵活性。近年来CPU/FPGA动态可重构系统逐渐成为了嵌入式计算领域研究的热点。但由于动态可重构系统架构并没有统一的标准,使得上层软硬件混合调度操作系统成为可重构技术应用的瓶颈。本文希望从软件开发者的角度对CPU/FPGA可重构平台进行抽象,并构建虚拟平台以支持上层混合调度操作系统的研究。相较于硬件平台虚拟平台有诸多优点。首先虚拟平台能够屏蔽底层硬件实现的细节使软件开发者专注于可重构资源管理和硬件任务的调度策略。其次虚拟平台不受任何硬件的限制,能够实现软硬件系统的并行开发。最后虚拟平台能够提供更多的运行时信息,便于调试和评价整个系统。文中主要论述如何利用全系统模拟软件Simics和其提供的硬件描述语言DML构建CPU/FPGA可重构虚拟平台。论文首先从软件开发者的角度对原型系统进行建模并抽象出硬件任务的时间和空间属性,编写了支持抢占的2D可重构FPGA模块。然后在软件层面实现了硬件任务调度器。与普通的调度器不同,硬件任务调度器需要考虑可重构区域能否容纳硬件任务,因此论文还完善和实现了2D可重构资源调度策略。为了实现硬件任务比特流的模拟,本文还设计和实现了C minus编译器和目标机。通过对目标代码的并行重构,模拟出FPGA内部计算的并行特性。
论文目录
摘要Abstract第1章 绪论1.1 动态可重构技术1.2 动态可重构FPGA1.3 CPU/FPGA混合系统结构1.4 动态可重构系统模拟研究现状1.5 论文来源与意义1.6 论文主要工作和结构第2章 相关技术与相关工具2.1 虚拟化技术2.1.1 硬件仿真2.1.2 完全虚拟化2.1.3 半虚拟化2.2 模拟器2.3 Simics 介绍2.4 Impulse C编程模型简介2.5 本章小结第3章 虚拟平台设计方案3.1 CPU/FPGA动态可重构原型系统3.1.1 原型系统的硬件部分3.1.2 原型系统的软件部分3.2 虚拟平台设计3.2.1 虚拟平台整体框架3.2.2 硬件任务的初级抽象模型3.2.3 动态可重构FPGA初级抽象模型3.2.4 硬件任务调度器的设计3.2.5 2D可重构资源管理策略3.2.5.1 算法模型3.2.5.2 算法相关工作3.2.5.3 算法改进3.3 虚拟平台设计优化3.3.1 动态可重构FPGA计算模型3.3.2 C语言描述硬件任务的合理性3.3.3 硬件任务模型优化3.4 本章小结第4章 可重构虚拟平台实现4.1 可重构FPGA的初级模型实现4.1.1 硬件任务的实现4.1.2 内部时钟模块实现4.1.3 DMA模块实现4.1.4 2D可重构区域实现4.1.5 OS Frame的实现4.2 硬件任务调度的实现4.2.1 中断模拟进程和调度进程4.2.2 基于优先级的调度算法4.2.3 2D可重构资源管理策略实现4.3 本章小结第5章 比特流模拟的实现5.1 Cminus编译器实现5.1.1 词法分析5.1.2 语法分析5.1.3 语义分析5.1.4 基于栈的运行时环境5.1.5 中间代码生成5.1.6 中间代码重构5.2 目标机和目标代码5.2.1 目标机的结构和指令集5.2.2 目标代码生成5.3 本章小结第6章 系统实验6.1 模拟环境简介6.2 系统主要模块加载6.3 硬件任务运行测试6.4 本章小结第7章 结论与展望7.1 结论7.2 未来工作参考文献致谢攻读硕士期间科研情况
相关论文文献
标签:动态可重构系统论文; 虚拟平台论文; 比特流论文;