论文部分内容阅读
随着基于可重配置计算技术的FPGA器件等的快速发展和普遍使用,FPGA中实现的硬件能够在系统运行过程中改变自身的结构从而完成不同的功能,多个硬件结构也可以在FPGA中换入换出。依靠这种技术,抽象出硬件任务的概念。同时,CPU+FPGA混合平台提供了一种可以进行软硬件灵活划分的开发环境。软件和硬件在CPU+FPGA混合平台下,都具有了灵活复用的特点,可以同等的对待。这样硬件任务的概念作为和软件任务对等的实体就应运而生了。CPU+FPGA混合平台促进了软硬件的融合,可重配置技术的发展抽象出了硬件任务的概念,使之被纳入混合操作系统的管理范围。但是从目前的研究状况看来,在混合操作系统存在两方面不足:一是没有合适的硬件调度器去实现硬件任务的调度,硬件任务的管理对操作系统上层开发人员不透明,需要了解底层的硬件细节;二是混合操作系统没有统一的软硬件编程模型去支持其开发。本文从这两点上提出了自己的解决方法:在研究软硬件编程模型的基础上,提取出可以和混合系统相结合的特性,修改原型操作系统设计实现一个透明的软硬件协同调度的混合系统,同时该混合系统支持软硬件的统一编程模型。本文选用了CPU+FPGA目标平台XC2VPR30,混合编程模型和混合操作系统的原型分别采用Impulse C和μC/OS-ⅡV2.70。本文的修改工作主要基于μC/OS操作系统,借用Impulse C通信接口进一步封装,实现在操作系统上软硬件通信的透明化;添加了硬件任务等相关的数据结构和硬件调度器,实现对软硬件任务的协同调度。同时本文还对Impulse C的库函数里的通信轮询机制进行了修改。最终构建支持软硬件透明编程的混合系统,使得混合操作系统上层开发管理人员可以无区别的用高级语言去实现软硬件的开发与管理。在文章的最后,对本文所做的工作进行了总结,根据设计与实现过程中遇到的问题提出了未来的工作,对下一步的研究进行了展望。