CPU/FPGA可重构虚拟平台的研究与实现

CPU/FPGA可重构虚拟平台的研究与实现

论文摘要

动态可重构FPGA能够在系统运行局部重构硬件逻辑,其既具有硬件进行高速并行运算的能力,又具有像软件一样的编程的灵活性。近年来CPU/FPGA动态可重构系统逐渐成为了嵌入式计算领域研究的热点。但由于动态可重构系统架构并没有统一的标准,使得上层软硬件混合调度操作系统成为可重构技术应用的瓶颈。本文希望从软件开发者的角度对CPU/FPGA可重构平台进行抽象,并构建虚拟平台以支持上层混合调度操作系统的研究。相较于硬件平台虚拟平台有诸多优点。首先虚拟平台能够屏蔽底层硬件实现的细节使软件开发者专注于可重构资源管理和硬件任务的调度策略。其次虚拟平台不受任何硬件的限制,能够实现软硬件系统的并行开发。最后虚拟平台能够提供更多的运行时信息,便于调试和评价整个系统。文中主要论述如何利用全系统模拟软件Simics和其提供的硬件描述语言DML构建CPU/FPGA可重构虚拟平台。论文首先从软件开发者的角度对原型系统进行建模并抽象出硬件任务的时间和空间属性,编写了支持抢占的2D可重构FPGA模块。然后在软件层面实现了硬件任务调度器。与普通的调度器不同,硬件任务调度器需要考虑可重构区域能否容纳硬件任务,因此论文还完善和实现了2D可重构资源调度策略。为了实现硬件任务比特流的模拟,本文还设计和实现了C minus编译器和目标机。通过对目标代码的并行重构,模拟出FPGA内部计算的并行特性。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 动态可重构技术
  • 1.2 动态可重构FPGA
  • 1.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 未来工作
  • 参考文献
  • 致谢
  • 攻读硕士期间科研情况
  • 相关论文文献

    标签:;  ;  ;  

    CPU/FPGA可重构虚拟平台的研究与实现
    下载Doc文档

    猜你喜欢