[发明专利]一种基于Xen的FPGA加速器虚拟化平台及应用有效
申请号: | 201510687773.6 | 申请日: | 2015-10-21 |
公开(公告)号: | CN105389199B | 公开(公告)日: | 2019-09-27 |
发明(设计)人: | 吴俊;汤绍先;朱慧;郭栋;石丰略;苏立峰 | 申请(专利权)人: | 同济大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 上海科盛知识产权代理有限公司 31225 | 代理人: | 赵继明 |
地址: | 200092 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 xen fpga 加速器 虚拟 平台 应用 | ||
1.一种基于Xen的FPGA加速器虚拟化平台,其特征在于,包括相互连接的虚拟机模块(1)和FPGA模块(4),所述的虚拟机模块(1)包括用户虚拟机子模块(11)、特权虚拟机子模块(12)和数据传输模块(13),所述的用户虚拟机子模块(11)中设有虚拟前端驱动器(111),所述的特权虚拟机子模块(12)中设有虚拟后端驱动器(121)和实际驱动器(122),所述的虚拟前端驱动器(111)与虚拟后端驱动器(121)通过数据传输模块(13)连接,所述的实际驱动器(122)与FPGA模块(4)连接,所述的虚拟前端驱动器(111)和实际驱动器(122)均通过Xen实现字符设备虚拟化,所述的虚拟前端驱动器(111)使用数据传输模块(13)中的Xen的事件通道、授权表和共享环机制与虚拟后端驱动器(121)进行通信和数据传输,其中:
虚拟前端驱动器(111)初始化时完成授权表所使用的共享页的映射,根据实际驱动器(122)加载时的数据块大小分配内存空间,直到使用结束后才释放空间,以便提高传输效率;
虚拟前端驱动器(111)收到用户的I/O请求后将请求放入I/O共享环的请求队列,数据放入Xen的授权表中,通过此授权表,特权虚拟机子模块(12)可以访问此内存空间,节省内存拷贝的消耗;
虚拟后端驱动器(121)从I/O共享环的请求队列中取出请求,请求根据先后顺序进行处理;虚拟后端驱动器(121)通过FPGA模块(4)硬件的使用信息进行请求的处理分配。
2.根据权利要求1所述的一种基于Xen的FPGA加速器虚拟化平台,其特征在于,所述的虚拟前端驱动器(111)加载时为授权表分配内存,平台运行过程中,授权表内存大小不变。
3.根据权利要求1所述的一种基于Xen的FPGA加速器虚拟化平台,其特征在于,所述的用户虚拟机子模块(11)包括多个用户空间,所述的FPGA模块(4)包括多个FPGA硬件加速器(41),所述的虚拟后端驱动器(121)采用队列管理机制处理用户空间产生的用户请求,将用户请求分配至空闲的FPGA硬件加速器(41)。
4.根据权利要求1所述的一种基于Xen的FPGA加速器虚拟化平台,其特征在于,所述的实际驱动器(122)通过PCIe数据采集卡与FPGA模块(4)进行数据传输。
5.根据权利要求4所述的一种基于Xen的FPGA加速器虚拟化平台,其特征在于,所述的实际驱动器(122)加载时,为PCIe数据采集卡动态指定读写操作粒度,所述的读写操作粒度为4KB的整数倍。
6.一种如权利要求1所述的基于Xen的FPGA加速器虚拟化平台的应用,其特征在于,包括以下步骤:
S01,搭建所述的基于Xen的FPGA加速器虚拟化平台;
S02,用户虚拟机子模块(11)中的用户空间产生硬件加速器使用请求;
S03,虚拟前端驱动器(111)采用Xen的事件通道、授权表和共享环机制,将硬件加速器使用请求发送给虚拟后端驱动器(121);
S04,虚拟后端驱动器(121)将硬件加速器使用请求依次放入请求队列,检测到空闲FPGA硬件加速器(41)时,取出最早的硬件加速器使用请求,并通过实际驱动器(122)发送给该FPGA硬件加速器(41)进行处理;
S05,FPGA硬件加速器(41)将硬件加速器使用请求的处理结果数据依次通过实际驱动器(122)、虚拟后端驱动器(121)和虚拟前端驱动器(111)返回给对应的用户空间。
7.根据权利要求6所述的应用,其特征在于,所述的步骤S03具体包括以下步骤:
S0301,虚拟前端驱动器(111)进行注册和初始化,分配授权表内存,建立共享环,绑定事件通道;
S0302,虚拟前端驱动器(111)向共享环写入硬件加速器使用请求,通过事件通道与虚拟后端驱动器(121)建立连接;
S0303,虚拟前端驱动器(111)将硬件加速器使用请求中的数据和控制信号传送给虚拟后端驱动器(121)。
8.根据权利要求6所述的应用,其特征在于,所述的步骤S04具体包括以下步骤:
S0401,虚拟后端驱动器(121)进行注册和初始化,连接共享环,获取授权号和事件通道号,与虚拟前端驱动器(111)建立连接;
S0402,将接收到的硬件加速器使用请求放入请求队列中,同时获取FPGA硬件加速器(41)状态,若存在空闲FPGA硬件加速器(41),则取出请求队列中接收时间最早的硬件加速器使用请求;
S0403,实际驱动器(122)将取出的硬件加速器使用请求发送给空闲的FPGA硬件加速器(41)进行处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同济大学,未经同济大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510687773.6/1.html,转载请声明来源钻瓜专利网。