基于硬件透明编程可重构操作系统的研究

时间:2022-09-30 10:36:15

基于硬件透明编程可重构操作系统的研究

摘要:针对所采用的微处理器核和现场可编程门阵列混合可重构计算平台,实现了一个硬件透明的编程模型。该模型能够提供一个类似软件函数的硬件函数给设计人员,它可以屏蔽底层硬件实现的物理细节,使设计人员能简单方便地使用硬件加速器。

关键词:可重构;透明编程;操作系统

中图分类号:TP316文献标识码:A文章编号:1009-3044(2009)33-9581-02

Researching on hard-soft Partition of Reconfigurable Computing Operating System

ZOU Yi

(Hengyang Normal University, Hengyang 421008, China)

Abstract: To address the platform of heterogeneous multi-core reconfigurable computing architecture, it implements a hardware transparent programming model for reconfigurable system development, which provides hardware functions similar to software functions for designers to use the hardware accelerators , it hides the details of underlying hardware accelerators and makes easy for designer to use.

Key words: reconfiguration; hardware transparent programming; operating system

FPGA出现以后,由于既具有专用集成电路的高性能,又具有通用处理器的灵活性,在嵌入式系统中得到越来越广泛的应用。但是在传统的设计中,FPGA类似于专用集成电路,一般都是作为硬件加速器由用户直接管理使用,操作系统作为资源管理者和人机交互的接口并没有参与管理以提供给用户一个友好的界面,最多是提供一些驱动作为支持。随着可重构计算研究的深入,人们发现这种方式忽略了FPGA内在的可重构特性以及任务潜在的并行性,增大了系统设计难度,也降低了FPGA的性能。最近几年,面向可重构计算的操作系统,即可重构硬件操作系统技术成为一个新的研究热点。研究者们发现操作系统不仅能够给应用开发者提供便利,而且可以为应用程序提供运行时的支持。因此,在近年来国内外的文献中,对可重构操作系统方面展开了许多研究。

Miljan Vuleti′c提出了一个软硬件无缝集成的模型,通过把硬件相关的一些操作委托给操作系统完成,实现硬件对高层程序员的透明,同时在加速器内部增加了一个类MMU的组件WMU和加速器内部缓存来实现硬件的可移植性[1-3]。但是在大规模的应用系统中,可能存在若干个高密度计算的代码段,需要若干个不同的硬件加速器来分别实现这些代码段,如果同时实现这些带有自己的WMU和内部缓存的硬件加速器就需要大量的硬件资源,不仅增加了系统的成本,同时因为单片的FPGA很难满足系统要求,需要多个FPGA同时工作,系统设计者又不得不考虑多个FPGA之间的通信问题,同时单片FPGA的利用率反而会下降[4]。在可重构硬件FPGA不断向广度和深度发展的同时,很多研究人员也在不断的改进操作系统对可重构器件的支持,使得操作系统逐步开始参与硬件资源的管理。在文献[5]中David Andrews等研究人员定义了支持可重构硬件管理的操作系统,把硬件功能模块作为任务进行管理,提出了统一多线程的模型。他们的方法比较通用,还有其它一些研究小组也采用了类似的思路[6-7]。

本文提出一个基于自重构系统的硬件透明编程模型[8]。该模型在操作系统和辅助硬件的支持下,对用户屏蔽了硬件的实现细节,使得用户只需按照一定格式提供需要进行计算的数据以及相关的一些控制参数就可以像访问一个软件函数一样去调用一个硬件加速器来实现所要求的功能,而不再需要了解硬件具体的实现细节。

1 硬件透明编程模型

1.1 透明编程模型操作系统的框架

重构计算提供了微处理器和ASIC(专用集成电路)之外的第三种解决方案,它整合了硬件电路的高性能和高可靠性以及微处理器的可编程功能,它能充分利用单片FPGA可重构硬件支持动态重构的优点,一方面对底层可重构资源充分利用,另一方面对应用程序开发人员实现硬件透明编程。在操作系统的支持下,编译和综合工具会根据特定的函数名称来识别硬件函数,并把硬件函数和输入参数等映射到可重构硬件上执行。

本文在以uC/OS-II嵌入式实时操作系统为基础的硬件透明编程操作系统平台上,实现动态可重构,并对硬件函数进行预配置,获得硬件运算加速,以降低重构开销,从而提高系统的性能。使用的实验平台是Xilinx公司的Virtex-II系列的产品,可重构资源管理使用的是一维模型,毕竟二维模型还不成熟,对系统性能的提升难度较大。

硬件透明编程操作系统的体系结构把动态可重构计算系统作为一组由微处理器和硬件加速器组成的共享内存的混合处理单元,其编程模型为程序员提供一个类似于常规软件开发环境的接口。将系统框架分为五层(如图1所示),具体分层如下:

应用层:为设计者提供包含软件函数和硬件函数的抽象函数库,用于描述应用程序。这个硬件函数库包含了需要利用硬件加速器实现的各种功能。在这里软件和硬件对用户来说都是一组接口,用户在使用时不需要关注实现的细节。

操作系统层:为进程通信、同步和硬件函数调用提供机制和支持,并跟踪和管理可重配置资源,如调度软件任务或配置硬件任务等。由于硬件任务的动态创建和释放,可重配置资源的使用情况也在不断变化的。资源管理器会跟踪这些变化,并且能够及时反馈给操作系统。在需要对可重构资源进行操作时,操作系统能根据资源管理单元的情况来命令配置控制器对可重构资源进行相应的操作。

软硬件结合层:配置控制器从配置文件数据库中读取出对应硬件加速模块的配置文件,并配置到可重构资源管理单元指定的位置。提供控制和存取可重构资源管理单元等的基本接口。

体系结构层:是以一个或者多个微处理器和可重构器件作为处理单元,以可重构资源控制管理器和综合、配置单元作为支持单元的体系结构。后文将对系统的体系结构进行详细分析。

硬件层:指系统里面真正的物理组件,比如微处理器实体、可编程器件、内存模块、内部连接网络等底层物理器件。

1.2 透明编程模型操作系统的体系结构

动态可重构计算系统的一个重要组成部分是体系结构,其结构图如图2所示,下面着重介绍系统的体系结构模型中的关键组件:

微处理单元:包括微处理器和硬件加速器。在图2中表示为微处理器和FPGA上可重构区域的专用处理模块。其中专用硬件处理模块可以是IP核,也可以是自行设计的硬件模块,用虚线框表示说明专用处理模块可动态改变。

存储系统:微处理器和硬件加速器可能有片上内存资源作为局部高速缓存。他们也能通过存储器接口单元存取片外的内存。片外和片内的存储设备共享统一的线性地址内存空间。内存接口单元有专门管理片内和片外存储设备存取的电路。

互连总线:处理单元采用共享内存的方式通信。连接到总线的每个单元都有唯一的地址来标识自己,总线控制器管理总线上的数据流通。

可重构资源管理模块:负责维护动态可重构资源状态信息、从硬件函数库中读配置字节流文件、执行综合和配置命令。

标准化接口:硬件加速模块能接收的数据模式是固定的,为了实现硬件函数对不同数据类型的支持,就需要标准化输入参数。比如当函数的输入参数中有向量(如数组)时,通常参数给出的是向量的起始地址,在这样的情况下,如果硬件加速器有足够的缓存那么就可以把向量全部读取过来放在缓存中,然后分别处理;也可以让硬件加速器自己访问内存来读取数据。

2 总结

在传统的编程模型中,设计人员需要理解体系结构和可重构器件实现的物理细节,这样增大了开发负担,降低了开发效率。本文实现了一个硬件透明的编程模型。该模型能够提供一个类似软件函数的硬件函数给设计人员,它屏蔽了底层硬件实现的物理细节,使设计人员能简单方便地使用硬件加速器。下一步的工作包括丰富和完善包含软硬件函数的抽象函数库,动态可重构计算系统的动态软硬件划分也是今后的研究中需要考虑的方面。

参考文献:

[1] Vuletid M, Pozzi L, Ienne P. Seamless hardware-software integration in reconfigurable computing systems[J].Design & Test of Computers,2005, 22(2):102-113.

[2] Vuletid M, Pozzi L, Ienne P. Programming Transparency and Portable Hardware Interfacing towards General-Purpose Reconfigurable Computing。In: Proceedings of the 15th IEEE International Conference on Application-Specific Systems, Architectures and Processors (ASAP'04): 339-351.

[3] Vuletid M, Pozzi L, Ienne P. Virtual Memory Window for Application-Specific Reconfigurable Coprocessors, DAC 2004, June 7C11, 2004, San Diego, California, USA. 948~953

[4] 覃祥菊,朱明程.FPGA动态可重构技术原理及实现方法分析[J].电子器件,2004,27(2):64-69.

[5] Andrews D., Niehaus D.Programming models for hybrid FPGA-CPU computational components: A missing link. IEEE Transactions on Micro, 2004, 24(4):42-53.

[6] 周博,王石记,邱卫东,彭澄廉.SHUM-UCOS:基于统一多任务模型可重构系统的实时操作系统[J].计算机学报,2006,29(2):208-218.

[7] Walder H., Platzner M. Reconfigurable hardware operating systems: From design concepts to realizations. In: Proceedings of the 3rd International Conference on Engineering of Reconfigurable Systems and Architectures (ERSA'03), Las Vegas (NV), USA, 2003: 284-287.

[8] 谢巍.支持可重构硬件透明编程的操作系统研究:[湖南大学硕士论文].长沙:湖南大学,2007,18-24.

上一篇:基于WDM的I/O设备驱动程序的设计研究 下一篇:基于VB访问数据库的方法及问题解析