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