当前位置: 首页 > 专利查询>同济大学专利>正文

一种基于Xen的FPGA加速器虚拟化平台及应用制造技术

技术编号:13002798 阅读:128 留言:0更新日期:2016-03-10 14:35
本发明专利技术涉及一种基于Xen的FPGA加速器虚拟化平台及应用,其特征在于,包括相互连接的虚拟机模块(1)和FPGA模块(4),所述的虚拟机模块(1)包括用户虚拟机子模块(11)、特权虚拟机子模块(12)和数据传输模块(13),所述的用户虚拟机子模块(11)中设有虚拟前端驱动器(111),所述的特权虚拟机子模块(12)中设有虚拟后端驱动器(121)和实际驱动器(122),所述的虚拟前端驱动器(111)与虚拟后端驱动器(121)通过数据传输模块(13)连接,所述的实际驱动器(122)与FPGA模块(4)连接,所述的虚拟前端驱动器(111)和实际驱动器(122)均通过Xen实现字符设备虚拟化。与现有技术相比,本发明专利技术使多用户可同时使用加速器,提高了访问速度和运算效率。

【技术实现步骤摘要】

本专利技术涉及一种FPGA加速器虚拟化平台及应用,尤其是涉及。
技术介绍
在无线通信系统中,多个模块需要相对较长时间的运算才能得出结果,这些操作影响了通信的效率,所以如何缩短运算时间以提高通信效率是个重要的问题。通过硬件来运算诸如FFT模块、Turbo译码器模块、1MO均衡器模块等,可以提高运算速度,改进通信效率,还可以灵活使用相应的某些模块快速完成任务。由于硬件的速度较软件有很大的提升,且硬件资源代价较高,所以硬件资源的充分利用是很必要的。FPGA (Field — Programmable Gate Array),即现场可编程门阵列,它是在 PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代1C设计验证的技术主流。由于FPGA具有运行速度快、可实现大规模系统、运算能力强、方便进行二次开发的特点,被大量运用于无线通信系统中,目前大多数研究主要集中在FPGA加速器的设计,然而FPGA硬件速度提高水平有限、成本高,且当多个用户同时使用一个加速器时,无法克服响应速度慢、利用效率低的问题。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种响应速度快、硬件加速器利用率高的基于Xen的FPGA加速器虚拟化平台及应用。本专利技术的目的可以通过以下技术方案来实现:—种基于Xen的FPGA加速器虚拟化平台,其特征在于,包括相互连接的虚拟机模块和FPGA模块,所述的虚拟机模块包括用户虚拟机子模块、特权虚拟机子模块和数据传输模块,所述的用户虚拟机子模块中设有虚拟前端驱动器,所述的特权虚拟机子模块中设有虚拟后端驱动器和实际驱动器,所述的虚拟前端驱动器与虚拟后端驱动器通过数据传输模块连接,所述的实际驱动器与FPGA模块连接,所述的虚拟前端驱动器和实际驱动器均通过Xen实现字符设备虚拟化。所述的虚拟前端驱动器使用数据传输模块中的Xen的事件通道、授权表和共享环机制与虚拟后端驱动器进行通信和数据传输。所述的虚拟前端驱动器加载时为授权表分配内存,平台运行过程中,授权表内存大小不变。所述的用户虚拟机子模块包括多个用户空间,所述的FPGA模块包括多个FPGA硬件加速器,所述的虚拟后端驱动器采用队列管理机制处理用户空间产生的用户请求,将用户请求分配至空闲的FPGA硬件加速器。 所述的实际驱动器通过PCIe数据采集卡与FPGA模块进行数据传输,所述的PCIe数据采集卡的PCIe数据传输功能由软硬件配合完成,软件工作在主机端,硬件功能由采集卡上的Xilinx V6系列FPGA器件完成,通过使用采集卡可以使FPGA硬件加速器与虚拟机所在的主机之间的读写速度同时达到400MByte/s。所述的实际驱动器加载时,为PCIe数据采集卡动态指定读写操作粒度,所述的读写操作粒度为4KB的整数倍。一种基于Xen的FPGA加速器虚拟化平台的应用,其特征在于,包括以下步骤:S01,搭建所述的基于Xen的FPGA加速器虚拟化平台;S02,用户虚拟机子模块中的用户空间产生硬件加速器使用请求;S03,虚拟前端驱动器采用Xen的事件通道、授权表和共享环机制,将硬件加速器使用请求发送给虚拟后端驱动器;S04,虚拟后端驱动器将硬件加速器使用请求依次放入请求队列,检测到空闲FPGA硬件加速器时,取出最早的硬件加速器使用请求,并通过实际驱动器发送给该FPGA硬件加速器进行处理;S05,FPGA硬件加速器将硬件加速器使用请求的处理结果数据依次通过实际驱动器、虚拟后端驱动器和虚拟前端驱动器返回给对应的用户空间。所述的步骤S03具体包括以下步骤:S0301,虚拟前端驱动器进行注册和初始化,分配授权表内存,建立共享环,绑定事件通道;S0302,虚拟前端驱动器向共享环写入硬件加速器使用请求,通过事件通道与虚拟后端驱动器建立连接;S0303,虚拟前端驱动器将硬件加速器使用请求中的数据和控制信号传送给虚拟后端驱动器。所述的步骤S04具体包括以下步骤:S0401,虚拟后端驱动器进行注册和初始化,连接共享环,获取授权号和事件通道号,与虚拟前端驱动器建立连接;S0402,将接收到的硬件加速器使用请求放入请求队列中,同时获取FPGA硬件加速器状态,若存在空闲FPGA硬件加速器,则取出请求队列中接收时间最早的硬件加速器使用请求;S0403,实际驱动器将取出的硬件加速器使用请求发送给空闲的FPGA硬件加速器进行处理。虚拟化是一种资源管理技术。虚拟化技术可以将一个硬件设备资源虚拟为多个逻辑设备,每个逻辑设备可提供给单独用户使用。每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。Xen是可用于Linux内核的一种虚拟化技术。Xen既支持半虚拟化也支持完全虚拟化。Xen采用ICA协议,通过准虚拟化的技术获得高性能,甚至在某些与传统虚拟技术极度不友好的架构上(x86),Xen也有上佳的表现。Xen虚拟机可以在不停止的情况下在多个物理主机之间实时迀移。Xen是一个基于X86架构、发展最快、性能最稳定、占用资源最少的开源虚拟化技术。Xen可以在一套物理硬件上安全的执行多个虚拟机,与Linux是一个完美的开源组合。它特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。本专利技术通过使用基于Xen的虚拟化技术,对实际加速器字符传输设备进行虚拟化。设计了虚拟前端驱动器、虚拟后端驱动器、实际驱动器和数据传输模块,进行加速器与用户的通信和数据传输。虚拟前端驱动器主要完成请求的接收、发送和返回信号处理,虚拟后端驱动器完成硬件设备请求的调度管理,根据硬件加速器设备的空闲情况进行分配。最后调用真实的硬件设备进行运算处理,得到数据后依次返回给用户,完成加速运算过程。虚拟机模块与FPGA模块通过PCIe总线连接,通过使用PCIe数据采集卡的数据传输功能模块,将数据在FPGA模块与虚拟机模块间直接传输。最终使多用户可以同时使用硬件加速器对自己需要的模块进行运算加速,完成相应的功能。与现有技术相比,本专利技术具有以下优点:(1)本专利技术利用Xen虚拟化技术,将基于FPGA的硬件加速器虚拟化,实现了虚拟设备的前后端通信与数据传输,使多用户可同时使用加速器,替代软件完成硬件加速任务,提高了用户使用访问速度和运算效率。(2)本专利技术中,通过队列管理机制,多个硬件加速器资源可以同时与多个用户虚拟机所在的PC机相连,使多用户同时访问成为可能,提高了用户的通信效率,满足多用户的加速任务。(3)虚拟前端驱动器加载时为授权表分配内存,平台运行过程中,授权表内存大当前第1页1 2 3 4 本文档来自技高网...

【技术保护点】
一种基于Xen的FPGA加速器虚拟化平台,其特征在于,包括相互连接的虚拟机模块(1)和FPGA模块(4),所述的虚拟机模块(1)包括用户虚拟机子模块(11)、特权虚拟机子模块(12)和数据传输模块(13),所述的用户虚拟机子模块(11)中设有虚拟前端驱动器(111),所述的特权虚拟机子模块(12)中设有虚拟后端驱动器(121)和实际驱动器(122),所述的虚拟前端驱动器(111)与虚拟后端驱动器(121)通过数据传输模块(13)连接,所述的实际驱动器(122)与FPGA模块(4)连接,所述的虚拟前端驱动器(111)和实际驱动器(122)均通过Xen实现字符设备虚拟化。

【技术特征摘要】

【专利技术属性】
技术研发人员:吴俊汤绍先朱慧郭栋石丰略苏立峰
申请(专利权)人:同济大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1