面向远程FPGA设备的动态部分可重构配置装置及方法与流程

文档序号:23901665发布日期:2021-02-09 13:46阅读:213来源:国知局
面向远程FPGA设备的动态部分可重构配置装置及方法与流程
面向远程fpga设备的动态部分可重构配置装置及方法
技术领域
[0001]
本发明涉及电数字数据处理领域,特别是涉及一种面向远程fpga设备的动态部分可重构配置装置及方法。


背景技术:

[0002]
可重构计算(coarse-grained reconfigurable architecture,cgra)是一种具有高度弹性的运算组织构造的计算处理方式。与使用平常的微处理器主要不同的地方在于,可重构计算具有能力对数据路径和控制流程做实质上的改变。
[0003]
可重构计算的概念,始于在上世纪六十年代,gerald estrin的标志性文章。文章提出一台电脑里拥有一个标准处理器和一个可重组硬件矩阵的概念。其中主要的标准处理器负责控制可重组硬件。可重组硬件将被客制成执行一项特殊的工作,比如影像处理或模式比对,其速度可以达到特制硬件的等级。当某个工作完成,硬件会被调整适合执行另一项工作。这种混合的电脑结构拥有软件的弹性优势,同时兼顾硬件的速度。不幸的是这个想法远远超过了当时的电子技术。随着微电子技术的不断发展,针对这样一种计算机体系结构设想,人们逐渐尝试通过使用新型的灵活高速计算结构(如现场可编程门阵列fpga)进行实现,将软件的某些灵活性与硬件的高性能相结合。新型的灵活高速计算结构与使用普通微处理器相比,主要区别在于除了控制流程外,还可以对数据路径本身进行实质性更改。另一方面,新型的灵活高速计算结构与定制硬件(即专用集成电路asic)的主要区别在于可以通过在可重新配置的结构上“加载”新电路来在运行期间动态地适配硬件。
[0004]
部分可重构是更改一部分可重新配置硬件电路的过程,而另一部分则保持其先前的配置。近年随着应用场景趋于多样化、复杂化,部分可重构的灵活性优势愈发明显,而fpga现场可编程门阵列很适用于部分可重构支持。fpga允许设计中的关键部分继续运行,而fpga内部或周边的控制器会将部分设计加载到可重配置模块中。通过仅存储在设计之间更改的部分设计,部分重新配置还可用于节省多个设计的空间。
[0005]
然而目前现有的主流动态可重构平台架构,主要是通过设计者将提前设计好的硬件模块配置数据,事先预置写入到fpga周边的存储器之中,运行时则根据场景需求,通过fpga内部的加载与重配置机制来切换不同功能的部分可重构硬件模块并加载执行。这种封闭式的可重构计算系统要求开发人员尽可能提前考虑到各种突发情况,编写尽可能完善的硬件模块配置数据。
[0006]
而当fpga正式进入不间断工作状态后,若运维人员发现预置的硬件模块无法满足新的应用需求,或部分可重构的硬件模块需要升级优化时,则需要现场擦除、重写存储器件,维护期间不得不将配套的工业设施暂停待机甚至停止工作,运维成本过高。
[0007]
此外,现阶段的很多静态逻辑区(负责通信、控制以及辅助部分重配置的进行)与fpga内部的动态逻辑区(负责可重构系统的主体功能)共存的设计方案中,即使系统已经完成部分重构的工作,进入了以动态区逻辑功能为主的稳定运行阶段,此时的静态区逻辑仍然工作在较高的时钟频率下,造成不必要的功耗浪费,甚至还会因芯片长期高频率工作状
态而带来过热风险。由于实际工程应用场景中,系统绝大部分时间均不需要静态逻辑区工作在高频率。因此如何对时钟进行管理,尽可能降低系统功耗,是本领域技术人员亟需解决一个技术难题。


技术实现要素:

[0008]
本发明的目的是提供一种面向远程fpga设备的动态部分可重构配置装置及方法,降低系统功耗以及运维成本。
[0009]
为实现上述目的,本发明提供了如下方案:一种面向远程fpga设备的动态部分可重构配置装置,包括:远程管理平台和fpga可重构系统平台;所述远程管理平台以及所述fpga可重构系统平台通过5g局域网络进行通信;所述fpga可重构系统平台包括:fpga内部的静态逻辑区与fpga内部的动态逻辑区以及外部ram/rom存储单元;所述fpga内部的静态逻辑区分别与所述远程管理平台、所述外部ram/rom存储单元以及所述fpga内部的动态逻辑区连接;所述fpga内部的静态逻辑区用于从所述远程管理平台拉取部分可重构文件信息表格,并解析处理;所述fpga内部的静态逻辑区还用于根据触发条件拉取各个部分可重构bit文件,完成向所述fpga内部的动态逻辑区写入的操作并校验;所述fpga内部的动态逻辑区用于通过已划分好的可重配置单元区域块,承接所述fpga内部的静态逻辑区写入的部分可重构bit文件,并向所述fpga内部的静态逻辑区及时反馈状态信息。
[0010]
可选的,所述fpga内部的静态逻辑区包括:cpu、片上ram、互联组件、动态时钟组件、调试组件、可重构管理单元、外部rom/ram接口以及网络组件;所述互联组件分别与所述cpu、所述调试组件、所述网络组件以及所述外部rom/ram存储器接口互相连接;所述cpu与所述片上ram互相连接;所述动态时钟组件用于向所述fpga内部的静态逻辑区以及所述fpga内部的动态逻辑区提供设定频率的时钟信号;所述可重构管理单元用于进行所述fpga内部的动态逻辑区的读写以及状态检查。
[0011]
可选的,所述网络组件包括:在硬件层构建的千兆/百兆以太网逻辑接口以及在软件层构建的tftp/udp/ip网络协议栈。
[0012]
可选的,所述fpga内部的动态逻辑区包括:多个可重配置单元。
[0013]
可选的,所述远程管理平台包括:tftp服务器端软件协议栈、部分可重构文件信息表以及部分可重构bit文件;所述部分可重构bit文件用于记录所述远程管理平台存储的各个部分可重构bit文件的文件名、文件大小以及id号码。
[0014]
可选的,所述外部ram/rom存储单元包括片外的ddr4/3 ram部件和nor/nand flash rom部件。
[0015]
一种面向远程fpga设备的动态部分可重构配置方法,应用于所述的一种面向远程fpga设备的动态部分可重构配置装置,所述的一种面向远程fpga设备的动态部分可重构配置方法包括:对fpga内部的静态逻辑区进行初始化,并开启远端tftp服务器;
获取所述远端tftp服务器的部分重构的触发条件;根据所述触发条件,命令所述fpga内部的静态逻辑区拉取所述tftp服务器的标识部分可重构信息csv表格,并交由fpga内部的静态逻辑区内的cpu进行解析;所述tftp服务器发送部分重构启动指令;根据所述部分重构启动指令,命令所述fpga内部的静态逻辑区内的动态时钟组件提高所述fpga内部的静态逻辑区的工作频率;所述fpga内部的静态逻辑区分块拉取所述tftp服务器的部分可重构的bit文件,并将所述tftp服务器的部分可重构的bit文件进行存储;所述cpu对所述tftp服务器的部分可重构的bit文件进行加载,并将所述tftp服务器的部分可重构的bit文件写入fpga内部的动态逻辑区;对写入后的fpga内部的动态逻辑区进行校验;检验完成后,命令所述动态时钟组件降低所述fpga内部的静态逻辑区的工作频率,并等待下一次的部分重构的触发条件。
[0016]
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明所提供的一种面向远程fpga设备的动态部分可重构配置装置及方法,所述远程管理平台以及所述fpga可重构系统平台通过5g局域网络进行通信;所述fpga内部的静态逻辑区根据反馈状态信息改变时钟频率,避免了系统已经完成部分重构的工作,进入了以动态区逻辑功能为主的稳定运行阶段,而静态区逻辑仍然工作在较高的时钟频率下,造成不必要的功耗浪费的现象。进而使得系统的无用功耗进一步压缩,有效降低了芯片长时间运行发热所带来的风险。基于tftp的网络通信相结合提高了部分可重构工作的灵活性,使得动态区域的逻辑模块能够借助网络进行远程灵活重构,使得系统可以动态更新硬件逻辑,从而降低了系统的运维成本。
附图说明
[0017]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018]
图1为本发明所提供的一种面向远程fpga设备的动态部分可重构配置装置结构示意图;图2为本发明所提供的一种面向远程fpga设备的动态部分可重构配置方法流程示意图。
具体实施方式
[0019]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020]
本发明的目的是提供一种面向远程fpga设备的动态部分可重构配置装置及方法,
降低系统功耗以及运维成本。
[0021]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0022]
目前大部分可重配置系统是封闭式控制的,由其内部的配置主控单元自行决定要加载哪些可重配置模块,以及何时加载。这些设计通常根据需要,直接在本地从板载只读存储器中获取相应比特流。这是创建部分可重新配置设计的简单方法,但可能会受到只读存储器相对较小的限制。如果设计的静态和部分位流的总大小接近于本地只读存储器的大小,则对设计的后期更改(例如增加可重配置分区的大小或添加新的可重配置模块)可能会导致本地内存容量不足。减轻这种风险,同时保留了自我控制设计的优势的一种思路,是将比特流存储在某种外部的集中式大容量存储中,并使主控单元从那里而非本地只读存储器中获取比特流,从而可以按需获取它们并将其直接传递到配置端口,或者在启动时将它们缓冲在本地动态内存中。对部分位流使用集中式大容量存储方案可以提供其他优势,例如,可以通过网络,建立集中式的比特率文件存储机,作为服务器端,对由多个fpga组成的系统进行现场更新的轻松管理,同时降低总体存储成本。
[0023]
图1为本发明所提供的一种面向远程fpga设备的动态部分可重构配置装置结构示意图,如图1所示,本发明所提供的一种面向远程fpga设备的动态部分可重构配置装置,包括:远程管理平台101和fpga可重构系统平台103;所述远程管理平台101以及所述fpga可重构系统平台103通过5g局域网络107进行通信。
[0024]
所述fpga可重构系统平台103包括:fpga内部的静态逻辑区104与fpga内部的动态逻辑区105以及外部ram/rom存储单元102。
[0025]
所述fpga内部的静态逻辑区104分别与所述远程管理平台101、所述外部ram/rom存储单元102以及所述fpga内部的动态逻辑区105连接;所述fpga内部的静态逻辑区104用于从所述远程管理平台101拉取部分可重构文件信息表格,并解析处理;所述fpga内部的静态逻辑区104还用于根据触发条件拉取各个部分可重构bit文件,完成向所述fpga内部的动态逻辑区105写入的操作并校验。
[0026]
所述fpga内部的动态逻辑区105用于通过已划分好的可重配置单元区域块,承接所述fpga内部的静态逻辑区104写入的部分可重构bit文件,并向所述fpga内部的静态逻辑区104及时反馈状态信息。
[0027]
所述fpga内部的静态逻辑区104包括:cpu、片上ram、互联组件、动态时钟组件、调试组件、可重构管理单元106、外部rom/ram接口以及网络组件;所述互联组件分别与所述cpu、所述调试组件、所述网络组件以及所述外部rom/ram存储器接口互相连接。
[0028]
所述cpu与所述片上ram互相连接;所述动态时钟组件用于向所述fpga内部的静态逻辑区104以及所述fpga内部的动态逻辑区105提供设定频率的时钟信号。
[0029]
动态时钟组件相比传统的时钟模块增加了实时动态调整功能:可依据动态部分可重构的各工作阶段的特点,对静态区中的各个模块提供合理的时钟频率,尤其是在以动态区逻辑为主工作逻辑的时间段,适当降低静态区逻辑中的不相干组件工作频率,以降低功耗;而当网络组件接收到新的配置工作时,实时提高静态区工作频率,以加快部分重构工作
的速度。
[0030]
所述可重构管理单元106用于进行所述fpga内部的动态逻辑区105的读写以及状态检查。
[0031]
所述网络组件包括:在硬件层构建的千兆/百兆以太网逻辑接口以及在软件层构建的tftp/udp/ip网络协议栈。所述网络组件使fpga能做作为tftp客户端与远程管理平台101的tftp服务器端交互各类文件数据。
[0032]
所述fpga内部的动态逻辑区105包括:多个可重配置单元。
[0033]
所述远程管理平台101包括:tftp服务器端软件协议栈、部分可重构文件信息表以及部分可重构bit文件;所述部分可重构bit文件用于记录所述远程管理平台101存储的各个部分可重构bit文件的文件名、文件大小以及id号码。部分可重构文件信息表一般为.csv格式的表格文,并可根据用户需要进行修改。
[0034]
所述外部ram/rom存储单元102包括片外的ddr4/3 ram部件和nor/nand flash rom部件。
[0035]
作为具体的实施例,远程管理平台101可以由不同硬件架构、不同操作系统的计算机搭建,能够稳定地运行tftp服务器程序。同时,远程管理平台101需要储存全部的部分可重构bit文件,并实时维护这些bit文件的信息表格。部分可重构文件信息表一般为.csv格式的表格文件,记录了远程管理平台101所目前存储的各个部分可重构.bit文件的文件名、文件大小、id号码等等信息,并可根据用户需要进行修改。
[0036]
5g局域网在工业场景下可以选择使用本地5g频率构建自己的5g局域网,从而获得超低延迟和超大带宽连接。若某些应用场景对通信网络延迟和带宽无严格要求,也可灵活地选用有线/无线网络作为补充,针对速度要求高或电磁环境恶劣的工业场景,也可在物理层采用光通信方式。
[0037]
外部rom/ram存储单元主要由片外的ddr4/3 ram部件和nor/nand flash rom部件组成。ram部件可以作为部分可重构bit文件的缓存区,rom部件则可以存储静态区逻辑的bit文件以便fpga可以上电自启,同时在需要操作系统的场景中还可以划分出独立的地址区域存储boot相关的bin文件。
[0038]
fpga可重构系统平台103的静态区逻辑用于从远程管理平台101拉取部分可重构文件信息表格,并解析处理相关信息,再根据触发条件拉取各个部分可重构.bit文件,完成向动态区写入的操作并校验。其动态逻辑区通过事先划分好的可重配置单元区域块,承接静态区写入的部分可重构bit文件数据,并向可重构管理单元106及时反馈状态信息。
[0039]
cpu可选择microblaze、risc-v或其他指令集微架构,建立指令与数据缓存,并通过局部片上存储器总线连接基于片上block ram的内存模块,以运行上层c软件,同时可选的,可集成中断信号输入模块,集合各个外设子模块的中断输出信号,向cpu输出中断信号。
[0040]
网络组件的软件部分为可以使用以太网连接访问tftp服务器和相关的比特流存储的软件程序,包括基础中间件层、lwip网络协议栈、tftp客户端软件库、icap驱动层等,硬件部分为以太网逻辑接口。
[0041]
可重构管理单元106包括icape2/3原语模块,可选的根据需求,增加部分可重构管理模块,并通过兼容axi4的交互接口逻辑,接入互联模块组件中。
[0042]
调试组件包括串口uart接口模块,以及片上逻辑分析仪ila模块等等。
[0043]
互联组件将cpu、调试组件、时钟组件、网络组件、外部rom/ram存储器接口互联起来,便于各个组件直接联通交互指令与数据,同时该组件包括了从网络组件直接通向ram存储器接口的dma互联通道。
[0044]
动态时钟组件向静态区与动态区的cpu和局部ram,各个组件,各个可重配置单元提供合适频率的时钟信号,同时增加了动态调整功能:可依据动态部分可重构的各工作阶段的特点,对静态区中的各个模块提供合理的时钟频率,尤其是在以动态区逻辑为主工作逻辑的时间段,适当降低静态区逻辑中的不相干组件工作频率,以降低功耗;而当网络组件接收到新的配置工作时,实时提高静态区工作频率,以加快部分重构工作的速度。
[0045]
作为一个具体的实施例,在部分重配置流程的初始,当fpga网络端口接受到部分重配置的启动指示后,cpu将对动态时钟组件发出信号,时钟组件将对自身的各项参数进行重构配置,并最终切换至高频率输出状态,使得静态逻辑区的各个组件的工作频率提升,加快动态区的配置速度。
[0046]
在部分重配置流程完成之后,cpu对动态区逻辑的工作状态进行检验,并确定系统无故障后,动态时钟组件再次重构自身参数,面向动态区持续保持高频率的时钟输出,面向静态区则切换至低频率状态,使得静态逻辑区的各个组件模块工作频率降低,从而减少不必要的功耗。此时的静态区各组件处于低频待机状态,等待下一次部分重配置的启动指示。
[0047]
静态逻辑区的功耗包括静态功耗与动态功耗:p
静态逻辑区
=p
静态功效
+p
动态功效

[0048]
考虑到fpga基于sram的芯片架构,其功耗估计基本可参考标准cmos工艺功耗评估方法。动态功耗包括了cmos电路的充放电功耗以及瞬间导通功耗,其中,cmos电路的充放电功耗与电源电压的平方、负载电容的大小、信号频率成正比,cmos管在短期导通所产生的瞬间导通平均等效电流也与频率成近似正相关。若忽略静态漏电流、电路竞争冒险与惯性时延功耗等微小的因素,静态逻辑区的动态功耗基本上正比于时钟频率:::。
[0049]
在引入动态时钟组件后,静态区的功率将基本根据频率的降低而正比例降低。相比传统方案,动态时钟组件管理下的fpga系统总体功耗节省比例为:。
[0050]
例如,若fpga有10%的时间用于进行动态部分重构工作,90%的时间运行在动态逻辑区的稳定运行阶段,静态逻辑区的原本功耗占总功耗的50%,其中动态功率占比30%。若考虑通过动态时钟组件将动态逻辑区的稳定运行阶段的静态逻辑区时钟频率由100mhz降低为20mhz,则在这种情况下fpga的总体功耗将节省(100-20)/100*30%*90%=21.6%的比例。
[0051]
动态逻辑区相关组件根据应用需要和时序性能要求,设计人员事先规划各个动态可重配置单元的区域大小及在fpga器件内部的布局位置。布局位置一般靠近可重构管理单元106,若fpga为ssi器件则需尽可能约束在同一slr内,以便获得较好的时序性能。
[0052]
此外,根据所需的具体行为,以下模块还可作为可选项:如计时器组件、兼容axi4的timer模块以及用于网络通信中的超时控制等,基于上述模块允许tftp客户端软件检测传输超时。
[0053]
本发明所提供的一种面向远程fpga设备的动态部分可重构配置方法,应用于所述的一种面向远程fpga设备的动态部分可重构配置装置。图2为本发明所提供的一种面向远程fpga设备的动态部分可重构配置方法流程示意图,如图2所示本发明所提供的一种面向远程fpga设备的动态部分可重构配置方法包括:s201,对fpga内部的静态逻辑区104进行初始化,并开启远端tftp服务器;s202,获取所述远端tftp服务器的部分重构的触发条件;s203,根据所述触发条件,命令所述fpga内部的静态逻辑区104拉取所述tftp服务器的标识部分可重构信息csv表格,并交由fpga内部的静态逻辑区104内的cpu进行解析;s204,所述tftp服务器发送部分重构启动指令;s205,根据所述部分重构启动指令,命令所述fpga内部的静态逻辑区104内的动态时钟组件提高所述fpga内部的静态逻辑区104的工作频率;s206,所述fpga内部的静态逻辑区104分块拉取所述tftp服务器的部分可重构的bit文件,并将所述tftp服务器的部分可重构的bit文件进行存储;s207,所述cpu对所述tftp服务器的部分可重构的bit文件进行加载,并将所述tftp服务器的部分可重构的bit文件写入fpga内部的动态逻辑区105;s208,对写入后的fpga内部的动态逻辑区105进行校验;s209,检验完成后,命令所述动态时钟组件降低所述fpga内部的静态逻辑区104的工作频率,并等待下一次的部分重构的触发条件。
[0054]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0055]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1