论文部分内容阅读
软硬件混合架构是可重配置计算的重要形式,是结合CPU与FPGA可重构设备的一类处理器架构。它能够为各种应用程序提供硬件加速能力、软件解决方案,有较好的性能与灵活性。然而操作系统以及各种软件对可重配置计算平台的支持还很不完善,很难充分使用硬件加速带来的优点,主要困难来源于可重配置计算机的两个缺陷。首先是可重配置计算机的设计方法比较复杂,将一个设计转换成机器理解的配置信息还不能自动化。其次是可重配置应用程序和系统软件的运行过程中需要额外的通信工作。为了解决以上问题,本文试图利用Scratch-Pad存储器,在CPU/FPGA混合架构做软硬件协同设计,提供以Scratch-Pad作为共享数据存储区的硬件线程,提升软件硬件化的方便性,并减少软硬件之间的通信量。本文提出了一个CPU/FPGA混合架构上引入Scratch-Pad存储器的新型硬件架构,以Scratch-Pad作为片内高速数据存取区。首先将Scratch-Pad作为线程之间的共享内存,设计了在该架构上的硬件线程模型,该硬件线程能通过硬件逻辑来执行,将线程中运算量较大的部分分配给硬件完成,其他的部分交给CPU作为软件线程执行。软件线程控制了各软硬件线程的运行,有效地利用CPU的灵活性。本软硬件线程模型可以支持多个硬件线程与软件线程,且运行在真正的并行方式。为了实现软硬件混合模型中的硬件线程,本文通过Handel-C编译器从C语言高级语言生成硬件配置,也可通过利用已有的经过测试优化的VHDL逻辑算法来配置硬件线程的执行逻辑,最终在FPGA上执行该硬件线程。通过本机制简化了软件设计到硬件设计过程,提供了一定的由硬件运行程序代码的能力。本文使用Simics仿真程序模拟了一个软硬件混合架构平台,配置了一块256KB的Scratch-Pad存储器,一个300万门的可重配置FPGA设备,一个通用处理器核。本文将DES,MD5SUM,归并排序等算法设计为软件线程与硬件线程,在该平台上模拟运行获得了测试数据。数据表明,平均执行性能加速比为2.14,访问外部内存降低73.3%。综上所述,本文所提出的软硬件线程方案能够比较充分的利用带有Scratch-Pad存储器的CPU/FPGA混合架构所引入的性能优势,并在保证线程数据的一致性的同时又不损失软硬件线程对数据访问速度。