支持透明软硬件编程的混合系统的研究与实现

支持透明软硬件编程的混合系统的研究与实现

论文摘要

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

论文目录

  • 摘要
  • ABSTRACT
  • 第1章 绪论
  • 1.1 研究背景
  • 1.2 软硬件融合的趋势与挑战
  • 1.3 论文工作
  • 第2章 相关技术背景介绍
  • 2.1 CPU+FPGA混合平台
  • 2.1.1 CPU+FPGA系统的结构
  • 2.1.2 可重配置技术
  • 2.1.3 动态可重配置
  • 2.2 混合编程模型
  • 2.2.1 软件设计与硬件设计的鸿沟
  • 2.2.2 基于C的混合编程模型与HDL比较
  • 2.2.3 基于C混合编程模型介绍
  • 2.3 混合操作系统
  • 2.3.1 硬件任务的概念
  • 2.3.2 引入硬件任务的混合系统
  • 2.3.3 混合系统的研究现状
  • 2.4 本章小结
  • 第3章 构建软硬件透明开发的系统环境
  • 3.1 CPU+FPGA方案的选择
  • 3.1.1 硬件平台的选择
  • 3.1.2 系统体系结构
  • 3.2 混合编程环境的研究
  • 3.2.1 混合编程模型Impulse C
  • 3.2.2 Impulse C编程模型
  • 3.2.3 Impulse C中的进程
  • 3.2.4 Impulse C中的进程间通信
  • 3.3 混合调度操作系统的选择
  • 3.3.1 μC/OS-Ⅱ概述和特点
  • 3.3.2 μC/OS-Ⅱ操作系统内核结构
  • 3.4 μC/OS与Impulse C的结合
  • 3.4.1 硬件任务与软件任务的对等体——任务控制块
  • 3.4.2 硬件任务和软件任务间通信
  • 3.4.3 软件任务与硬件任务的协同调度
  • 3.4.4 硬件任务的加载
  • 3.5 本章小结
  • 第4章 软硬件协同调度操作系统的实现
  • 4.1 μC/OS移植
  • 4.2 硬件任务模板
  • 4.3 硬件任务TCB和相关的数据结构
  • 4.3.1 硬件资源控制块
  • 4.3.2 硬件任务控制块
  • 4.3.3 硬件任务相关的队列
  • 4.4 软硬件任务间通信
  • 4.4.1 软件任务向硬件任务中发送数据和信号
  • 4.4.2 软件任务从硬件任务中接收数据和信号
  • 4.5 任务调度
  • 4.6 硬件任务的配置和下载
  • 4.7 本章小结
  • 第5章 系统测试
  • 5.1 Impulse C下软硬件进程在μC/OS下的调度
  • 5.2 软硬件任务在μC/OS下的调度
  • 5.3 本章小结
  • 第6章 结论与展望
  • 6.1 结论
  • 6.2 未来的工作及展望
  • 参考文献
  • 致谢
  • 研究生阶段的科研情况
  • 相关论文文献

    • [1].计算机应用网络安全结构及编程模型的发展探讨[J]. 网络安全技术与应用 2015(05)
    • [2].多核集群系统上的混合编程模型研究[J]. 计算机与现代化 2009(05)
    • [3].面向最终用户的两级编程模型[J]. 计算机工程与设计 2012(02)
    • [4].后E级系统编程模型的构想(英文)[J]. Frontiers of Information Technology & Electronic Engineering 2018(10)
    • [5].网格编程模型研究综述[J]. 信息技术 2010(06)
    • [6].数控系统编程模型研究[J]. 哈尔滨工业大学学报 2010(07)
    • [7].面向异构并行系统的典型编程模型的分析与研究[J]. 中国新通信 2016(18)
    • [8].云计算编程模型中Java应用刍议[J]. 电子技术与软件工程 2013(24)
    • [9].网格编程模型研究综述(续)[J]. 信息技术 2010(07)
    • [10].MapReduce编程模型、方法及应用综述[J]. 电脑知识与技术 2014(30)
    • [11].无服务器计算的现状以及所面临的挑战[J]. 网络安全技术与应用 2019(12)
    • [12].支持硬件透明编程模型的动态可重构系统的设计与实现[J]. 计算机应用研究 2009(11)
    • [13].基于服务虚拟化的业务编程模型[J]. 计算机应用 2008(06)
    • [14].一种面向集群应用的MPICH2编程模型设计[J]. 工业控制计算机 2017(11)
    • [15].一个基于MVC编程模型的网站应用平台构建[J]. 科技广场 2015(03)
    • [16].流编程模型下的存储一致性模型[J]. 国防科技大学学报 2008(01)
    • [17].MapReduce编程模型的研究与改进[J]. 民营科技 2016(08)
    • [18].基于MapReduce编程模型的节点失效处理与优化[J]. 电脑编程技巧与维护 2015(02)
    • [19].一种上下文感知编程模型——IPM的实施[J]. 微电子学与计算机 2011(03)
    • [20].HPC集群编程模型研究[J]. 中国教育网络 2012(04)
    • [21].基于Java的云计算编程模型建构[J]. 科技风 2019(30)
    • [22].MapReduce计算模式的性能优化设计及其应用[J]. 信息与电脑(理论版) 2016(14)
    • [23].云计算:开始实践[J]. 程序员 2009(12)
    • [24].ASP.NET AJAX客户端编程浅析[J]. 中国科技信息 2008(01)
    • [25].基于PRET的编程模型[J]. 计算机系统应用 2016(01)
    • [26].一种基于过程级编程模型的可重构片上系统设计方法[J]. 计算机研究与发展 2011(09)
    • [27].一种基于CPU-GPU异构计算的混合编程模型[J]. 信息工程大学学报 2010(06)
    • [28].基于“魔方”的不同编程模型下科学应用性能比较[J]. 计算机工程与科学 2009(S1)
    • [29].网格环境下动态编程模型研究[J]. 计算机工程与科学 2008(06)
    • [30].面向自重构系统的软硬件协同透明编程模型[J]. 科技信息 2011(22)

    标签:;  ;  ;  ;  

    支持透明软硬件编程的混合系统的研究与实现
    下载Doc文档

    猜你喜欢