CN108804232A - 一种支持云端fpga部署的方法、主机服务器及系统 - Google Patents
一种支持云端fpga部署的方法、主机服务器及系统 Download PDFInfo
- Publication number
- CN108804232A CN108804232A CN201810669145.9A CN201810669145A CN108804232A CN 108804232 A CN108804232 A CN 108804232A CN 201810669145 A CN201810669145 A CN 201810669145A CN 108804232 A CN108804232 A CN 108804232A
- Authority
- CN
- China
- Prior art keywords
- fpga
- dynamic area
- file
- area
- pcie
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种支持云端FPGA部署的方法、主机服务器及系统,包括:预先将FPGA分为用于处理业务的动态区和用于建立数据传输通道及存放FPGA的状态信息的静态区,数据传输通道包括PCIe通道;当FPGA配置的工程发生变化时,从当前工程文件中分别提取静态区文件和动态区文件,判断静态区文件与之前是否一致;若是,则控制动态区停止工作,并通过PCIe通道将动态区文件的内容加载至动态区后,启动动态区的工作,以重配动态区;若否,则通过PCIe通道重构整个FPGA。其中,由于PCIe通道带宽很高,所以重配时间较短;由于利用了FPGA自身的PCIe通道,所以无需额外配置JTAG外在设备,从而简化了重配过程。
Description
技术领域
本发明涉及云端整合技术领域,特别是涉及一种支持云端FPGA部署的方法、主机服务器及系统。
背景技术
目前,随着云计算的快速发展,越来越多的业务依靠云端处理,但云端的计算能力有限。现有技术中,为了提高云端的计算能力,通常在云数据中心原有的主机服务器上,额外配置协处理器,并把部分业务交由协处理器处理,以减轻主机服务器CPU端的任务量,提高云端整体的计算能力。由于FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)具有低能耗、可编程、高吞吐等优点,其通常被作为协处理器使用。
但是,FPGA一旦配置好后,只能处理特定的业务,若要使FPGA具有处理其他业务的功能,需要基于JTAG(Joint Test Action Group,联合测试工作组)协议重配整个FPGA,重配时间较长,在某种程度上抵消了FPGA用于加速处理业务的效果;而且,基于JTAG协议重配FPGA需要额外配置一条JTAG线缆(建立JTAG通道)和对应的驱动软件,导致重配过程繁琐。
因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种支持云端FPGA部署的方法、主机服务器及系统,全部重构过程和部分重配过程均通过FPGA自身的PCIe通道传输数据,由于PCIe通道带宽很高,所以重配时间较短;而且,由于利用了FPGA自身的PCIe通道,所以无需基于JTAG协议额外配置JTAG外在设备,从而简化了重配过程。
为解决上述技术问题,本发明提供了一种支持云端FPGA部署的方法,应用于主机服务器,包括:
预先将现场可编程逻辑门阵列FPGA分为用于处理业务的动态区和用于建立数据传输通道及存放所述FPGA的状态信息的静态区,其中,所述数据传输通道包括PCIe通道;
当所述FPGA配置的工程发生变化时,从当前工程文件中分别提取静态区文件和动态区文件,并判断所述静态区文件与变化前的工程中的静态区文件是否一致;
若是,则控制所述动态区停止工作,并通过所述PCIe通道将所述动态区文件的内容加载至所述动态区后,启动所述动态区的工作,以重配所述动态区;若否,则通过所述PCIe通道重构整个所述FPGA。
优选地,所述通过所述PCIe通道将所述动态区文件的内容加载至所述动态区的过程具体为:
通过所述PCIe通道、采用直接内存存取DMA方式,将所述动态区文件的内容加载至所述动态区;
且所述通过所述PCIe通道重构整个所述FPGA的过程具体为:
通过所述PCIe通道、采用所述DMA方式重构整个所述FPGA。
优选地,所述控制所述动态区停止工作的过程具体为:
向所述动态区对应的复位寄存器写入复位值,以控制所述动态区停止工作;
且所述启动所述动态区的工作的过程具体为:
向所述动态区对应的置位寄存器写入置位值,以启动所述动态区的工作。
优选地,在将所述动态区文件的内容加载至所述动态区之后,在启动所述动态区的工作之前,该方法还包括:
检测所述动态区是否加载成功,若是,则向选定的寄存器写入预设成功值,并执行启动所述动态区的工作的步骤;
若否,则向选定的所述寄存器写入预设失败值,并重新通过所述PCIe通道、采用所述DMA方式,将所述动态区文件的内容加载至所述动态区后,返回执行所述检测所述动态区是否加载成功的步骤。
优选地,所述通过所述PCIe通道、采用所述DMA方式重构整个所述FPGA的过程具体为:
通过所述PCIe通道、采用所述DMA方式,将所述当前工程文件的内容烧写至所述FPGA的Flash内存中;
为所述FPGA中固有的bootloader配置地址参数,以便于所述FPGA启动所述bootloader,以从所述Flash内存中读取所述地址参数对应的内容,重构整个所述FPGA,其中,所述地址参数为所述当前工程文件在所述Flash内存中的地址;
控制主机端操作系统重新扫描搭载所述FPGA的设备的配置空间,以更新之前存放的所述设备的配置信息。
优选地,在更新之前存放的所述FPGA的配置信息之后,该方法还包括:
检测所述主机端操作系统是否能够访问到所述FPGA,若是,则确定重构成功;若否,则确定重构失败,并再次重构整个所述FPGA。
为解决上述技术问题,本发明还提供了一种支持云端FPGA部署的主机服务器,包括:
分区模块,用于预先将FPGA分为用于处理业务的动态区和用于建立数据传输通道及存放所述FPGA的状态信息的静态区,其中,所述数据传输通道包括PCIe通道;
提取模块,用于当所述FPGA配置的工程发生变化时,从当前工程文件中分别提取静态区文件和动态区文件;
重配模块,用于判断所述静态区文件与变化前的工程中的静态区文件是否一致,若是,则控制所述动态区停止工作,并通过所述PCIe通道将所述动态区文件的内容加载至所述动态区后,启动所述动态区的工作,以重配所述动态区;若否,则通过所述PCIe通道重构整个所述FPGA。
优选地,所述重配模块包括:
判断子模块,用于判断所述静态区文件与变化前的工程中的静态区文件是否一致,若是,则触发部分重配子模块,若否,则触发全部重构子模块;
部分重配子模块,用于控制所述动态区停止工作,并通过所述PCIe通道、采用DMA方式,将所述动态区文件的内容加载至所述动态区后,启动所述动态区的工作,以重配所述动态区;
全部重构子模块,用于通过所述PCIe通道、采用所述DMA方式重构整个所述FPGA。
优选地,所述全部重构子模块包括:
烧写单元,用于通过所述PCIe通道、采用所述DMA方式,将所述当前工程文件的内容烧写至所述FPGA的Flash内存中;
重构单元,用于为所述FPGA中固有的bootloader配置地址参数,以便于所述FPGA启动所述bootloader,以从所述Flash内存中读取所述地址参数对应的内容,重构整个所述FPGA,其中,所述地址参数为所述当前工程文件在所述Flash内存中的地址;
更新单元,用于控制主机端操作系统重新扫描搭载所述FPGA的设备的配置空间,以更新之前存放的所述设备的配置信息。
为解决上述技术问题,本发明还提供了一种支持云端FPGA部署的系统,包括FPGA,还包括上述任一种支持云端FPGA部署的主机服务器。
本发明提供了一种支持云端FPGA部署的方法,应用于主机服务器,包括:预先将FPGA分为用于处理业务的动态区和用于建立数据传输通道及存放FPGA的状态信息的静态区,其中,数据传输通道包括PCIe通道;当FPGA配置的工程发生变化时,从当前工程文件中分别提取静态区文件和动态区文件,并判断静态区文件与变化前的工程中的静态区文件是否一致;若是,则控制动态区停止工作,并通过PCIe通道将动态区文件的内容加载至动态区后,启动动态区的工作,以重配动态区;若否,则通过PCIe通道重构整个FPGA。
与现有技术中的基于JTAG协议重配整个FPGA相比,本申请提前将FPGA分为动态区(处理业务)和静态区(建立数据传输通道及存放FPGA的状态信息),当需要对FPGA进行重配时,从当前工程文件中分别提取静态区文件和动态区文件。只有当静态区文件与之前不同时,才重构整个FPGA,否则,只重配动态区,其中,全部重构过程和部分重配过程均通过FPGA自身的PCIe通道传输数据,由于PCIe通道带宽很高,所以重配时间较短;而且,由于利用了FPGA自身的PCIe通道,所以无需基于JTAG协议额外配置JTAG外在设备,从而简化了重配过程。
本发明还提供了一种支持云端FPGA部署的主机服务器及系统,与上述部署方法具有相同的有益效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种支持云端FPGA部署的方法的流程图;
图2为本发明提供的一种支持云端FPGA部署的主机服务器的结构示意图。
具体实施方式
本发明的核心是提供一种支持云端FPGA部署的方法、主机服务器及系统,全部重构过程和部分重配过程均通过FPGA自身的PCIe通道传输数据,由于PCIe通道带宽很高,所以重配时间较短;而且,由于利用了FPGA自身的PCIe通道,所以无需基于JTAG协议额外配置JTAG外在设备,从而简化了重配过程。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明提供的一种支持云端FPGA部署的方法的流程图。
该方法应用于主机服务器,包括:
步骤S1:预先将FPGA分为用于处理业务的动态区和用于建立数据传输通道及存放FPGA的状态信息的静态区,其中,数据传输通道包括PCIe通道;
需要说明的是,本申请中的预先和预设是提前设置好的,只需要设置一次,除非根据实际情况需要修改,否则不需要重新设置。
具体地,本申请提前将FPGA芯片的架构分为两部分:静态区和动态区。其中,静态区具有基本逻辑功能(主要:数据传输+数据存储),以提供基本服务,更具体地,FPGA芯片与主机服务器之间的数据传输依靠于FPGA芯片自身的PCIe通道;FPGA芯片内部的数据存储依靠于其包含的DDR(Double Data Rate,双倍数据速率)内存、Flash内存(在断电情况下不会丢失所存储的数据)及各寄存器,其中,DDR内存主要用于存储待处理的业务数据和业务处理结果,Flash内存主要用于存储FPGA配置工程的工程文件,各寄存器主要用于存储FPGA的状态信息。
动态区具有业务逻辑功能,以实现对业务的加速处理,更具体地,在处理业务的过程中,动态区从DDR内存中读取待处理的业务数据并进行处理,然后把业务处理结果写回到DDR内存,并返回至主机服务器CPU端。
步骤S2:当FPGA配置的工程发生变化时,从当前工程文件中分别提取静态区文件和动态区文件;
具体地,当FPGA配置的工程发生变化时,说明此时需要对FPGA进行重配,本申请首先通过读取当前工程文件(变化后的工程文件),从当前工程文件中分别提取与静态区功能对应的静态区文件和与动态区功能对应的动态区文件,以为后续重配过程打下基础。
步骤S3:判断静态区文件与变化前的工程中的静态区文件是否一致,若是,则控制动态区停止工作,并通过PCIe通道将动态区文件的内容加载至动态区后,启动动态区的工作,以重配动态区;若否,则通过PCIe通道重构整个FPGA。
具体地,考虑到当FPGA配置的工程发生变化时,动态区文件一定会发生变化,但静态区文件不一定变化,所以本申请判断当前的静态区文件与变化前的工程中的静态区文件是否一致(可比较静态区文件的专属标志),若一致,则控制动态区停止工作,并通过PCIe通道将动态区文件的内容加载至动态区,然后启动动态区的工作,即只重配动态区(部分重配);若不一致,则通过PCIe通道重构整个FPGA,即动态区和静态区均重配(全部重构)。可见,本申请采用全部重构和部分重配两种重配方式重配FPGA,其中,全部重构过程和部分重配过程均通过FPGA自身的PCIe通道传输数据,由于PCIe通道带宽很高,所以重配时间较短;而且,由于利用了FPGA自身的PCIe通道,所以无需基于JTAG协议额外配置JTAG外在设备,从而简化了重配过程。
本发明提供了一种支持云端FPGA部署的方法,应用于主机服务器,包括:预先将FPGA分为用于处理业务的动态区和用于建立数据传输通道及存放FPGA的状态信息的静态区,其中,数据传输通道包括PCIe通道;当FPGA配置的工程发生变化时,从当前工程文件中分别提取静态区文件和动态区文件,并判断静态区文件与变化前的工程中的静态区文件是否一致;若是,则控制动态区停止工作,并通过PCIe通道将动态区文件的内容加载至动态区后,启动动态区的工作,以重配动态区;若否,则通过PCIe通道重构整个FPGA。
与现有技术中的基于JTAG协议重配整个FPGA相比,本申请提前将FPGA分为动态区(处理业务)和静态区(建立数据传输通道及存放FPGA的状态信息),当需要对FPGA进行重配时,从当前工程文件中分别提取静态区文件和动态区文件。只有当静态区文件与之前不同时,才重构整个FPGA,否则,只重配动态区,其中,全部重构过程和部分重配过程均通过FPGA自身的PCIe通道传输数据,由于PCIe通道带宽很高,所以重配时间较短;而且,由于利用了FPGA自身的PCIe通道,所以无需基于JTAG协议额外配置JTAG外在设备,从而简化了重配过程。
在上述实施例的基础上:
作为一种优选地实施例,通过PCIe通道将动态区文件的内容加载至动态区的过程具体为:
通过PCIe通道、采用DMA方式,将动态区文件的内容加载至动态区;
且通过PCIe通道重构整个FPGA的过程具体为:
通过PCIe通道、采用DMA方式重构整个FPGA。
进一步地,本申请在通过PCIe通道将动态区文件的内容加载至动态区的过程中,采用的是DMA(Direct Memory Access,直接内存存取)方式,即相当于在FPGA芯片内部集成了一个DMA控制器(属于静态区)。在DMA方式下,主机服务器CPU只需向DMA控制器下达指令,让DMA控制器来处理数据的传送,DMA控制器在数据传送完成后再将信息反馈给CPU,从而进一步缩短了重配时间,且很大程度地减轻了CPU资源的占有率。同样地,本申请在通过PCIe通道重构整个FPGA的过程中,采用的也是DMA方式。
作为一种优选地实施例,控制动态区停止工作的过程具体为:
向动态区对应的复位寄存器写入复位值,以控制动态区停止工作;
且启动动态区的工作的过程具体为:
向动态区对应的置位寄存器写入置位值,以启动动态区的工作。
具体地,本申请通过向动态区对应的复位寄存器写入复位值(一般写入0),控制动态区停止工作;通过向动态区对应的置位寄存器写入置位值(一般写入1),启动动态区的工作。
作为一种优选地实施例,在将动态区文件的内容加载至动态区之后,在启动动态区的工作之前,该方法还包括:
检测动态区是否加载成功,若是,则向选定的寄存器写入预设成功值,并执行启动动态区的工作的步骤;
若否,则向选定的寄存器写入预设失败值,并重新通过PCIe通道、采用DMA方式,将动态区文件的内容加载至动态区后,返回执行检测动态区是否加载成功的步骤。
进一步地,考虑到动态区在加载动态区文件的过程中,可能存在加载失败的情况,所以本申请在将动态区文件的内容加载至动态区之后,检测动态区是否加载成功,若加载成功,则向选定的寄存器写入所设置的成功值;若加载失败,则向选定的寄存器写入所设置的失败值,并重新通过PCIe通道、采用DMA方式,将动态区文件的内容加载至动态区。只有在动态区加载成功(即动态区重配成功)的条件下,才启动动态区的工作。
作为一种优选地实施例,通过PCIe通道、采用DMA方式重构整个FPGA的过程具体为:
通过PCIe通道、采用DMA方式,将当前工程文件的内容烧写至FPGA的Flash内存中;
为FPGA中固有的bootloader配置地址参数,以便于FPGA启动bootloader,以从Flash内存中读取地址参数对应的内容,重构整个FPGA,其中,地址参数为当前工程文件在Flash内存中的地址;
控制主机端操作系统重新扫描搭载FPGA的设备的配置空间,以更新之前存放的设备的配置信息。
具体地,重构整个FPGA的具体过程包括:
1)通过PCIe通道、采用DMA方式,将当前工程文件的内容烧写至FPGA的Flash内存中,以保证系统掉电后,FPGA不丢失当前工程文件的内容。
2)为FPGA中固有的bootloader配置当前工程文件在Flash内存中的地址参数(可以是起始地址和终止地址,或者起始地址和存储长度),即控制FPGA启动bootloader:从Flash内存中读取地址参数对应的当前工程文件的内容,以重构整个FPGA。
3)已知现有技术在重启主机服务器后才能使FPGA重配的功能生效,导致在主机服务器运行期间就要更改FPGA功能的业务无法完成,所以本申请控制主机端操作系统重新扫描搭载FPGA的设备的配置空间,以更新之前存放的设备的配置信息(动态重配),从而使FPGA重配的功能生效,进而无需重启主机服务器,使在主机服务器运行期间就要更改FPGA功能的业务得以完成。
作为一种优选地实施例,在更新之前存放的FPGA的配置信息之后,该方法还包括:
检测主机端操作系统是否能够访问到FPGA,若是,则确定重构成功;若否,则确定重构失败,并再次重构整个FPGA。
进一步地,考虑到在重构整个FPGA的过程中,可能存在操作错误导致重构失败,所以本申请在更新之前存放的FPGA的配置信息之后,检测主机端操作系统是否能够访问到FPGA,若能够访问到FPGA,说明重构成功;若不能够访问到FPGA,说明重构失败,并再次重构整个FPGA。
请参照图2,图2为本发明提供的一种支持云端FPGA部署的主机服务器的结构示意图。
该主机服务器包括:
分区模块1,用于预先将FPGA分为用于处理业务的动态区和用于建立数据传输通道及存放FPGA的状态信息的静态区,其中,数据传输通道包括PCIe通道;
提取模块2,用于当FPGA配置的工程发生变化时,从当前工程文件中分别提取静态区文件和动态区文件;
重配模块3,用于判断静态区文件与变化前的工程中的静态区文件是否一致,若是,则控制动态区停止工作,并通过PCIe通道将动态区文件的内容加载至动态区后,启动动态区的工作,以重配动态区;若否,则通过PCIe通道重构整个FPGA。
作为一种优选地实施例,重配模块3包括:
判断子模块,用于判断静态区文件与变化前的工程中的静态区文件是否一致,若是,则触发部分重配子模块,若否,则触发全部重构子模块;
部分重配子模块,用于控制动态区停止工作,并通过PCIe通道、采用DMA方式,将动态区文件的内容加载至动态区后,启动动态区的工作,以重配动态区;
全部重构子模块,用于通过PCIe通道、采用DMA方式重构整个FPGA。
作为一种优选地实施例,全部重构子模块包括:
烧写单元,用于通过PCIe通道、采用DMA方式,将当前工程文件的内容烧写至FPGA的Flash内存中;
重构单元,用于为FPGA中固有的bootloader配置地址参数,以便于FPGA启动bootloader,以从Flash内存中读取地址参数对应的内容,重构整个FPGA,其中,地址参数为当前工程文件在Flash内存中的地址;
更新单元,用于控制主机端操作系统重新扫描搭载FPGA的设备的配置空间,以更新之前存放的设备的配置信息。
本申请提供的主机服务器的介绍请参考上述方法实施例,本申请在此不再赘述。
本发明还提供了一种支持云端FPGA部署的系统,包括FPGA,还包括上述任一种支持云端FPGA部署的主机服务器。
本申请提供的系统的介绍请参考上述主机服务器实施例,本申请在此不再赘述。
还需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种支持云端FPGA部署的方法,其特征在于,应用于主机服务器,包括:
预先将现场可编程逻辑门阵列FPGA分为用于处理业务的动态区和用于建立数据传输通道及存放所述FPGA的状态信息的静态区,其中,所述数据传输通道包括PCIe通道;
当所述FPGA配置的工程发生变化时,从当前工程文件中分别提取静态区文件和动态区文件,并判断所述静态区文件与变化前的工程中的静态区文件是否一致;
若是,则控制所述动态区停止工作,并通过所述PCIe通道将所述动态区文件的内容加载至所述动态区后,启动所述动态区的工作,以重配所述动态区;若否,则通过所述PCIe通道重构整个所述FPGA。
2.如权利要求1所述的支持云端FPGA部署的方法,其特征在于,所述通过所述PCIe通道将所述动态区文件的内容加载至所述动态区的过程具体为:
通过所述PCIe通道、采用直接内存存取DMA方式,将所述动态区文件的内容加载至所述动态区;
且所述通过所述PCIe通道重构整个所述FPGA的过程具体为:
通过所述PCIe通道、采用所述DMA方式重构整个所述FPGA。
3.如权利要求2所述的支持云端FPGA部署的方法,其特征在于,所述控制所述动态区停止工作的过程具体为:
向所述动态区对应的复位寄存器写入复位值,以控制所述动态区停止工作;
且所述启动所述动态区的工作的过程具体为:
向所述动态区对应的置位寄存器写入置位值,以启动所述动态区的工作。
4.如权利要求2所述的支持云端FPGA部署的方法,其特征在于,在将所述动态区文件的内容加载至所述动态区之后,在启动所述动态区的工作之前,该方法还包括:
检测所述动态区是否加载成功,若是,则向选定的寄存器写入预设成功值,并执行启动所述动态区的工作的步骤;
若否,则向选定的所述寄存器写入预设失败值,并重新通过所述PCIe通道、采用所述DMA方式,将所述动态区文件的内容加载至所述动态区后,返回执行所述检测所述动态区是否加载成功的步骤。
5.如权利要求2-4任一项所述的支持云端FPGA部署的方法,其特征在于,所述通过所述PCIe通道、采用所述DMA方式重构整个所述FPGA的过程具体为:
通过所述PCIe通道、采用所述DMA方式,将所述当前工程文件的内容烧写至所述FPGA的Flash内存中;
为所述FPGA中固有的bootloader配置地址参数,以便于所述FPGA启动所述bootloader,以从所述Flash内存中读取所述地址参数对应的内容,重构整个所述FPGA,其中,所述地址参数为所述当前工程文件在所述Flash内存中的地址;
控制主机端操作系统重新扫描搭载所述FPGA的设备的配置空间,以更新之前存放的所述设备的配置信息。
6.如权利要求5所述的支持云端FPGA部署的方法,其特征在于,在更新之前存放的所述FPGA的配置信息之后,该方法还包括:
检测所述主机端操作系统是否能够访问到所述FPGA,若是,则确定重构成功;若否,则确定重构失败,并再次重构整个所述FPGA。
7.一种支持云端FPGA部署的主机服务器,其特征在于,包括:
分区模块,用于预先将FPGA分为用于处理业务的动态区和用于建立数据传输通道及存放所述FPGA的状态信息的静态区,其中,所述数据传输通道包括PCIe通道;
提取模块,用于当所述FPGA配置的工程发生变化时,从当前工程文件中分别提取静态区文件和动态区文件;
重配模块,用于判断所述静态区文件与变化前的工程中的静态区文件是否一致,若是,则控制所述动态区停止工作,并通过所述PCIe通道将所述动态区文件的内容加载至所述动态区后,启动所述动态区的工作,以重配所述动态区;若否,则通过所述PCIe通道重构整个所述FPGA。
8.如权利要求7所述的支持云端FPGA部署的主机服务器,其特征在于,所述重配模块包括:
判断子模块,用于判断所述静态区文件与变化前的工程中的静态区文件是否一致,若是,则触发部分重配子模块,若否,则触发全部重构子模块;
部分重配子模块,用于控制所述动态区停止工作,并通过所述PCIe通道、采用DMA方式,将所述动态区文件的内容加载至所述动态区后,启动所述动态区的工作,以重配所述动态区;
全部重构子模块,用于通过所述PCIe通道、采用所述DMA方式重构整个所述FPGA。
9.如权利要求8所述的支持云端FPGA部署的主机服务器,其特征在于,所述全部重构子模块包括:
烧写单元,用于通过所述PCIe通道、采用所述DMA方式,将所述当前工程文件的内容烧写至所述FPGA的Flash内存中;
重构单元,用于为所述FPGA中固有的bootloader配置地址参数,以便于所述FPGA启动所述bootloader,以从所述Flash内存中读取所述地址参数对应的内容,重构整个所述FPGA,其中,所述地址参数为所述当前工程文件在所述Flash内存中的地址;
更新单元,用于控制主机端操作系统重新扫描搭载所述FPGA的设备的配置空间,以更新之前存放的所述设备的配置信息。
10.一种支持云端FPGA部署的系统,其特征在于,包括FPGA,还包括如权利要求7-9任一项所述的支持云端FPGA部署的主机服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810669145.9A CN108804232B (zh) | 2018-06-26 | 2018-06-26 | 一种支持云端fpga部署的方法、主机服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810669145.9A CN108804232B (zh) | 2018-06-26 | 2018-06-26 | 一种支持云端fpga部署的方法、主机服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108804232A true CN108804232A (zh) | 2018-11-13 |
CN108804232B CN108804232B (zh) | 2022-02-18 |
Family
ID=64071839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810669145.9A Active CN108804232B (zh) | 2018-06-26 | 2018-06-26 | 一种支持云端fpga部署的方法、主机服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804232B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175107A (zh) * | 2019-05-13 | 2019-08-27 | 华中科技大学 | 一种fpga云服务器性能的测试方法及测试系统 |
CN110287141A (zh) * | 2019-06-27 | 2019-09-27 | 天津津航计算技术研究所 | 一种基于多种接口的fpga重构方法和系统 |
CN110888834A (zh) * | 2019-11-06 | 2020-03-17 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 一种pcie设备中fpga功能动态重构的方法及系统 |
CN112131154A (zh) * | 2020-09-29 | 2020-12-25 | 北京计算机技术及应用研究所 | 一种通道与业务动态匹配的dma传输控制方法 |
WO2021042597A1 (zh) * | 2019-09-03 | 2021-03-11 | 苏州浪潮智能科技有限公司 | Fpga动态重配置方法、装置、设备及可读存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102769711A (zh) * | 2011-05-04 | 2012-11-07 | 广东工业大学 | 一种基于fpga的硬件可自定义cis传感信号采集方法 |
CN103513994A (zh) * | 2012-06-19 | 2014-01-15 | 记忆科技(深圳)有限公司 | 一种通过pcie 进行fpga 在线升级的方法和系统 |
CN103729222A (zh) * | 2013-12-30 | 2014-04-16 | 大唐移动通信设备有限公司 | 一种配置文件的加载装置与方法 |
CN103744713A (zh) * | 2014-02-11 | 2014-04-23 | 哈尔滨工业大学 | 基于fpga的嵌入式双核系统的自主配置方法 |
CN105279127A (zh) * | 2015-11-25 | 2016-01-27 | 哈尔滨工业大学 | 一种基于PCI或PCIe总线的FPGA程序下载系统及方法 |
CN105490844A (zh) * | 2015-12-05 | 2016-04-13 | 中国航空工业集团公司洛阳电光设备研究所 | 一种PCIe端口重构方法 |
US9577643B1 (en) * | 2013-11-26 | 2017-02-21 | Altera Corporation | Secure partial reconfiguration regions |
CN107273331A (zh) * | 2017-06-30 | 2017-10-20 | 山东超越数控电子有限公司 | 一种基于cpu+gpu+fpga架构的异构计算系统和方法 |
US20170371018A1 (en) * | 2016-06-22 | 2017-12-28 | Comsats Institute Of Information Technology | Fpga implementation of a real-time parallel mri reconstruction |
US20180067810A1 (en) * | 2016-09-02 | 2018-03-08 | Alibaba Group Holding Limited | Method and system of high-availability pcie ssd with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset |
CN108170634A (zh) * | 2017-12-26 | 2018-06-15 | 北京航空航天大学 | 一种异构多源数据重构瞬态可靠处理方法 |
-
2018
- 2018-06-26 CN CN201810669145.9A patent/CN108804232B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102769711A (zh) * | 2011-05-04 | 2012-11-07 | 广东工业大学 | 一种基于fpga的硬件可自定义cis传感信号采集方法 |
CN103513994A (zh) * | 2012-06-19 | 2014-01-15 | 记忆科技(深圳)有限公司 | 一种通过pcie 进行fpga 在线升级的方法和系统 |
US9577643B1 (en) * | 2013-11-26 | 2017-02-21 | Altera Corporation | Secure partial reconfiguration regions |
CN103729222A (zh) * | 2013-12-30 | 2014-04-16 | 大唐移动通信设备有限公司 | 一种配置文件的加载装置与方法 |
CN103744713A (zh) * | 2014-02-11 | 2014-04-23 | 哈尔滨工业大学 | 基于fpga的嵌入式双核系统的自主配置方法 |
CN105279127A (zh) * | 2015-11-25 | 2016-01-27 | 哈尔滨工业大学 | 一种基于PCI或PCIe总线的FPGA程序下载系统及方法 |
CN105490844A (zh) * | 2015-12-05 | 2016-04-13 | 中国航空工业集团公司洛阳电光设备研究所 | 一种PCIe端口重构方法 |
US20170371018A1 (en) * | 2016-06-22 | 2017-12-28 | Comsats Institute Of Information Technology | Fpga implementation of a real-time parallel mri reconstruction |
US20180067810A1 (en) * | 2016-09-02 | 2018-03-08 | Alibaba Group Holding Limited | Method and system of high-availability pcie ssd with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset |
CN107273331A (zh) * | 2017-06-30 | 2017-10-20 | 山东超越数控电子有限公司 | 一种基于cpu+gpu+fpga架构的异构计算系统和方法 |
CN108170634A (zh) * | 2017-12-26 | 2018-06-15 | 北京航空航天大学 | 一种异构多源数据重构瞬态可靠处理方法 |
Non-Patent Citations (1)
Title |
---|
张军: "FPGA动态重构技术", 《中国电子学会第十五届青年学术年会论文集》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175107A (zh) * | 2019-05-13 | 2019-08-27 | 华中科技大学 | 一种fpga云服务器性能的测试方法及测试系统 |
CN110287141A (zh) * | 2019-06-27 | 2019-09-27 | 天津津航计算技术研究所 | 一种基于多种接口的fpga重构方法和系统 |
CN110287141B (zh) * | 2019-06-27 | 2023-02-03 | 天津津航计算技术研究所 | 一种基于多种接口的fpga重构方法和系统 |
WO2021042597A1 (zh) * | 2019-09-03 | 2021-03-11 | 苏州浪潮智能科技有限公司 | Fpga动态重配置方法、装置、设备及可读存储介质 |
US11474815B2 (en) | 2019-09-03 | 2022-10-18 | Inspur Suzhou Intelligent Technology Co., Ltd. | FPGA dynamic reconfiguration method, apparatus, device and readable storage medium |
CN110888834A (zh) * | 2019-11-06 | 2020-03-17 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 一种pcie设备中fpga功能动态重构的方法及系统 |
CN110888834B (zh) * | 2019-11-06 | 2022-05-31 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 一种pcie设备中fpga功能动态重构的方法及系统 |
CN112131154A (zh) * | 2020-09-29 | 2020-12-25 | 北京计算机技术及应用研究所 | 一种通道与业务动态匹配的dma传输控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108804232B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804232A (zh) | 一种支持云端fpga部署的方法、主机服务器及系统 | |
US9678666B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
EP2248023B1 (en) | Extended utilization area for a memory device | |
US20070174549A1 (en) | Method for utilizing a memory interface to control partitioning of a memory module | |
US8856488B2 (en) | Method for utilizing a memory interface to control partitioning of a memory module | |
US10552359B2 (en) | Hot plug method and device for byte addressable persistent memory | |
CN103677654A (zh) | 一种存储数据的方法及电子设备 | |
EP3223160B1 (en) | Managing backup of logical-to-physical translation information to control boot-time and write amplification | |
CN110941395B (zh) | 动态随机存取存储器、内存管理方法、系统及存储介质 | |
CN111399752B (zh) | 不同类型存储单元的控制装置及方法 | |
CN102117330A (zh) | 一种保护嵌入式Linux操作系统关键区域完整性的方法及系统 | |
CN111625546B (zh) | 一种数据写入方法、装置、设备、介质 | |
CN104572211A (zh) | 基于arm的fpga程序多镜像加载方法 | |
CN111522602B (zh) | 通信装置的启动方法 | |
CN105608013B (zh) | 一种集成mram的存储卡控制芯片及存储卡 | |
CN105159716A (zh) | 一种存储器件初始化方法和电子设备 | |
CN114416147B (zh) | 固件载入方法、存储器及计算机可读存储介质 | |
CN102033767B (zh) | 一种单板及单板在线升级的方法 | |
CN106649137B (zh) | 一种Nand Flash坏块管理方法、装置及存储器 | |
CN108345430B (zh) | 一种Nand flash元件及其运行控制方法和装置 | |
CN107861775A (zh) | 一种ssd启动控制设备以及方法 | |
US9223697B2 (en) | Computer reprogramming method, data storage medium and motor vehicle computer | |
KR102388746B1 (ko) | 세이프 어드레스 매핑을 이용한 메모리 셀 액세스 제어 방법 | |
US9916103B2 (en) | Memory control device, memory device, and memory control method | |
CN112148203B (zh) | 存储器管理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |