一种测控网络边缘云计算的FPGA加速方法与流程

文档序号:32841228发布日期:2023-01-06 20:53阅读:37来源:国知局
一种测控网络边缘云计算的FPGA加速方法与流程
一种测控网络边缘云计算的fpga加速方法
技术领域
1.本发明属于航天信号测控处理技术领域,具体涉及一种测控网络边缘云计算的fpga加速方法。


背景技术:

2.随着航天技术的快速发展,测控任务量日益增长,带来了数据的快速积累;综合测控信号处理平台为了适应多频段、新体制和新型号任务的变化需求,对基带资源弹性扩展、动态调度和灵活部署等方面均提出了更高要求,而这些要求是传统独立硬件基带单元所难以满足的。
3.通用化和数字化的新型开放式架构可适应面向实际需求、以软件开发为核心的发展理念,灵活实现系统扩展和更迭;在航天测控地面站中,测控信号经射频前端设备转化为具有高速、多通道、实时和无限等特点的数字信号,即一种特殊的流式数据,可通过ip网络传输,保持信号波形特征,并利用云平台进行数据解析和信号处理等操作。
4.云测控信号处理系统由天线、数字化射频前端、通用服务器、信号处理软件、网络等组成,以通用服务器、网络设备作为基础硬件支撑平台,通过轻量级容器云、虚拟化等相关技术实现硬件资源虚拟化,利用测控功能软件提供数据解析及信号软解调服务,完成测距、测速、测角精度及数传等测控功能,构建测控功能虚拟化的基带资源池。
5.现有技术中,针对测控信号的实敏性特征,系统中的通用服务器以串行的方式执行指令,限制了系统的计算能力,实际并行程度不高;虽然已拥有许多指令级并行技术,但这种并行技术在实际应用中受多种因素的限制。此外,通用服务器较为繁琐的内存寻址操作导致了存储器的带宽有限,容易成为制约系统性能的瓶颈。通用服务器构建的云测控信号处理平台由于计算能力有限,传送数据的速率不高,已难以满足实时信号处理过程中对运算的高性能需求。
6.目前还通过引入物理层硬件加速器的方法,使计算复杂度较高的信号处理模块在加速器上运行,其优势在于强大的计算能力以及高速的运行效率。常见可编程的硬件加速器有gpu、dsp和fpga。gpu和dsp采用专用硬件设计方法实现高性能的计算能力,分别在图像处理和数字信号处理领域获得广泛应用;然而,gpu和dsp的局限性在于:1、以固定的架构实现算法;2、在服务器内部仍然使用串行指令执行的方式运行程序;3、仅针对专用领域算法的加速效果明显。fpga相对gpu和dsp,可在芯片内部实现高性能并行计算,具备强大的并行计算能力、更快运行速度,针对通信密集型任务,表现出低延时、低功耗且灵活部署的优势。
7.虽然fpga具有很多优点,但使用fpga作为云测控信号处理系统的加速卡仍存在以下问题:1、硬件编程困难,软件开发时间成本较高;2、传统的并行编程方法不能应用于具有异构架构的编程中,充分利用处理可编程的灵活性与fpga的高性能来设计高效的并行计算成为系统研究的重难点;3、异构的cpu和fpga平台之间的高效通信和数据交换会成为系统性能的瓶颈。


技术实现要素:

8.为了全部或至少部分解决背景技术中提到的问题,使fpga硬件架构应用于云测控信号处理系统中并发挥效果,本发明提供了一种测控网络边缘云计算的fpga加速方法,可针对实时测控信号数据流的特点,通过合理分配计算资源、异构平台交互方式和资源调度过程,从而解决了现有的云测控信号处理系统中通用服务器算力不足的问题。
9.本发明采用了以下技术方案来实现目的:
10.一种实现测控网络边缘云计算的fpga加速方法,包括如下步骤:
11.s1、搭建fpga信号加速硬件架构,所述fpga信号加速硬件架构包括管理节点服务器和计算节点服务器;将所述fpga信号加速硬件架构通过网络接入云测控信号处理系统;
12.s2、预先确定测控任务的计算资源分配方式;将高计算复杂度的测控任务计算内容分配至fpga处理单元进行信号加速处理,将低计算复杂度的测控任务计算内容分配至通用服务器进行处理;
13.s3、在所述fpga信号加速硬件架构中,搭建fpga资源调度平台;所述fpga资源调度平台以单个fpga板卡作为单个fpga处理单元;同一时间中,可调度多个测控任务在不同的fpga板卡中进行信号处理,实现对fpga的资源管理;
14.s4、完成fpga信号加速硬件架构和fpga资源调度平台的搭建、测控任务分配方式的确定后,将测控信号数据包写入云测控信号处理系统,使用fpga信号加速硬件架构中计算节点服务器的通用服务器资源,完成低计算复杂度的测控任务计算;
15.s5、通过fpga资源调度平台,将高计算复杂度的测控任务下发至fpga处理单元进行信号加速处理,处理完成后返回结果数据至计算节点服务器中。
16.具体的,步骤s1中,通过将管理节点服务器和计算节点服务器以光纤方式连接至万兆交换机,并将fpga板卡以pci-e接口形式安装于计算节点服务器后,完成fpga信号加速硬件架构的搭建;通过网络的接入,可实现实时信号收发及处理的功能。
17.优选的,所述云测控信号处理系统具有多套,每一套云测控信号处理系统均接入有一个完成搭建的fpga信号加速硬件架构;多套云测控信号处理系统之间通过网络互相连接,实现资源的共享。
18.具体的,步骤s2中,所述高计算复杂度的测控任务包括信号处理模块的捕获任务和编译码任务;所述低计算复杂度的测控任务包括数据处理单元任务和网络层模块任务。
19.进一步的,步骤s3中,通过搭建调度平台服务端和调度平台客户端的方式,完成对fpga资源调度平台的搭建;所述调度平台服务端部署在管理节点服务器,对接用户的测控任务需求,并依据测控任务需求,分析和匹配所需fpga资源;所述调度平台客户端部署在计算节点服务器,接收测控任务内容,并依据所需的fpga资源,部署相应的fpga处理单元,完成信号加速处理。
20.进一步的,所述搭建调度平台服务端,具体包括如下步骤:
21.s31、设置需求处理模块:在接收到测控任务内容后,依据测控任务中的需求,将需求存入需求队列,并按照顺序进行处理;当需求均存入需求队列后,进行硬件资源匹配,判断所有需求的执行时间是否有冲突,若有冲突,则先计算所有冲突需求的所需fpga资源是否能满足,若不能则反馈至用户;若执行时间无冲突或冲突需求的所需fpga资源能满足,则形成任务转交给任务管理模块;
22.s32、设置任务管理模块:任务管理模块创建任务,并按任务执行时间顺序存入任务队列,当任务开始执行时,将测控任务内容下发,并对测控任务的状态持续跟踪;
23.s33、设置资源调度模块:接收到下发的测控任务内容后,根据其中的需求,形成fpga资源调度指令,将测控任务内容和fpga资源调度指令下发至调度平台客户端。
24.进一步的,所述搭建调度平台客户端,具体包括如下步骤:
25.s34、设置任务处理模块:从调度平台服务端接收到测控任务内容后,解析任务内容,生成任务执行流程,将任务执行流程下发至硬件控制模块和信号收发模块;
26.s35、设置硬件控制模块:依照任务执行流程,通过调用所需的fpga资源接口,初始化相关fpga资源,启动fpga处理单元的fpga加速算法;fpga加速算法根据实际需要可配置为不同的算法模块,算法模块需采用规定接口从而适配fpga资源调度平台;
27.s36、设置信号收发模块:依照任务执行流程,接收需要处理的测控信号,并将fpga加速算法所需的环境变量和信号数据传送给fpga处理单元,进行并完成对测控信号的加速处理后,返回结果。
28.具体的,步骤s5的具体内容包括:
29.进行高计算复杂度的测控任务处理时,调用fpga资源调度平台分配的fpga资源后,通过信号收发模块打开接口,发送数据;所述数据包括环境参数和测控任务的待处理数据包,所述数据下发至fpga处理单元;fpga处理单元对测控任务的信号处理完成后,处理结果返回至信号收发模块的接口函数中。
30.进一步的,所述数据下发时,由于计算复杂度高的信号处理需要多个fpga处理单元的共同处理,数据需要被分发,因此由缓存计数方式来控制异构平台间的实时数据分发过程,每存储一定数量的待处理数据包后,将所述待处理数据包通过接口函数分发至fpga处理单元,其中待处理数据包写入fpga处理单元的内存后,便调用相应的fpga加速算法在fpga处理单元上运行。
31.具体的,所述处理结果被拼接至分发过程中待处理数据包中第一个包头中,当缓存计数达到设定值时,计数器归0,fpga处理单元在缓存计数时间内完成对测控任务的信号处理并返回结果。
32.综上所述,由于采用了本技术方案,本发明的有益效果如下:
33.针对运算量大和实时性要求高的测控信号处理需求,本发明首次将fpga信号加速方法应用到云测控信号处理系统中;构建通用服务器+fpga的异构平台,适应复杂度高的数据密集型测控计算任务,提高了系统的加速信号处理能力,减轻了信号处理节点负荷;本发明合理分配、调度fpga计算资源,提供了云系统对异构硬件资源的管理和调度能力;异构平台间的时序控制,实现了数据流从通用服务器到fpga处理单元的实时、连续处理过程。
附图说明
34.图1为本发明的fpga信号加速硬件架构的示意图;
35.图2为fpga资源调度平台对测控任务的处理流程示意图;
36.图3为异构平台的时序控制示意图;
37.图4为信号捕获任务的fpga加速流程示意图;
38.图5为opencl开发的fpga内核示意图。
具体实施方式
39.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以按各种不同的配置来布置和设计。
40.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.一种实现测控网络边缘云计算的fpga加速方法,包括如下步骤:
42.s1、搭建fpga信号加速硬件架构,fpga信号加速硬件架构包括管理节点服务器和计算节点服务器;将fpga信号加速硬件架构通过网络接入云测控信号处理系统;
43.s2、预先确定测控任务的计算资源分配方式;将高计算复杂度的测控任务计算内容分配至fpga处理单元进行信号加速处理,将低计算复杂度的测控任务计算内容分配至通用服务器进行处理;
44.s3、在fpga信号加速硬件架构中,搭建fpga资源调度平台;fpga资源调度平台以单个fpga板卡作为单个fpga处理单元;同一时间中,可调度多个测控任务在不同的fpga板卡中进行信号处理,实现对fpga的资源管理;
45.s4、完成fpga信号加速硬件架构和fpga资源调度平台的搭建、测控任务分配方式的确定后,将测控信号数据包写入云测控信号处理系统,使用fpga信号加速硬件架构中计算节点服务器的通用服务器资源,完成低计算复杂度的测控任务计算;
46.s5、通过fpga资源调度平台,将高计算复杂度的测控任务下发至fpga处理单元进行信号加速处理,处理完成后返回结果数据至计算节点服务器中。
47.fpga信号加速硬件架构的搭建完成后,硬件架构具体可参看图1示意。
48.由于测控信号的捕获功能对计算资源和存储资源的需求较大,因此本实施例采用fpga信号加速功能来处理扩频信号捕获任务作为对方法的详细说明。
49.步骤s1中,根据测控信号处理流程,搭建软硬件环境:硬件环境由云测控信号处理系统中的服务器和fpga处理单元组成,其中fpga处理单元即fpga板卡,通过pci-e插槽安装在服务器中。软件环境由云测控平台软件和fpga开发软件组成,其中fpga开发软件包括:fpga资源调度软件和fpga捕获算法。在单台服务器上,通过云平台将硬件资源进行虚拟化,形成多个计算节点服务器,在节点内部部署linux操作系统和fpga资源调度软件,即构建了fpga资源调度平台,使计算节点服务器之间通过网络进行连通。在多台服务器系统中,计算节点可以通过网络连通,形成计算节点资源池,通过调度软件统一进行资源分配,可提供灵活的计算资源调配,提高系统资源利用。fpga捕获算法则运行在fpga处理单元上,基于verilog语言开发。
50.具体而言,步骤s1中的管理节点服务器和计算节点服务器以光纤方式连接至万兆交换机,并将fpga板卡以pci-e接口形式安装于计算节点服务器后,完成fpga信号加速硬件架构的搭建;通过网络的接入,可实现实时信号收发及处理的功能。
51.本实施例中,云测控信号处理系统可设置多套,每一套云测控信号处理系统均接
入有一个完成搭建的fpga信号加速硬件架构;多套云测控信号处理系统之间通过网络互相连接,实现资源的共享。
52.步骤s2中,高计算复杂度的测控任务包括信号处理模块的捕获任务和编译码任务;低计算复杂度的测控任务包括数据处理单元任务和网络层模块任务。
53.步骤s3中,通过搭建调度平台服务端和调度平台客户端的方式,完成对fpga资源调度平台的搭建;调度平台服务端部署在管理节点服务器,对接用户的测控任务需求,并依据测控任务需求,分析和匹配所需fpga资源;调度平台客户端部署在计算节点服务器,接收测控任务内容,并依据所需的fpga资源,部署相应的fpga处理单元,完成信号加速处理。对调度平台服务端和调度平台客户端中的具体搭建设置及测控任务在fpga资源调度平台的处理流程可参考图2示意。
54.如图2所示,搭建调度平台服务端,具体包括如下步骤:
55.s31、设置需求处理模块:在接收到测控任务内容后,依据测控任务中的需求,将需求存入需求队列,并按照顺序进行处理;当需求均存入需求队列后,进行硬件资源匹配,判断所有需求的执行时间是否有冲突,若有冲突,则先计算所有冲突需求的所需fpga资源是否能满足,若不能则反馈至用户;若执行时间无冲突或冲突需求的所需fpga资源能满足,则形成任务转交给任务管理模块;
56.s32、设置任务管理模块:任务管理模块创建任务,并按任务执行时间顺序存入任务队列,当任务开始执行时,将测控任务内容下发,并对测控任务的状态持续跟踪;
57.s33、设置资源调度模块:接收到下发的测控任务内容后,根据其中的需求,形成fpga资源调度指令,将测控任务内容和fpga资源调度指令下发至调度平台客户端。
58.如图2所示,搭建调度平台客户端,具体包括如下步骤:
59.s34、设置任务处理模块:从调度平台服务端接收到测控任务内容后,解析任务内容,生成任务执行流程,将任务执行流程下发至硬件控制模块和信号收发模块;
60.s35、设置硬件控制模块:依照任务执行流程,通过调用所需的fpga资源接口,初始化相关fpga资源,启动fpga处理单元的fpga加速算法;fpga加速算法根据实际需要可配置为不同的算法模块,算法模块需采用规定接口从而适配fpga资源调度平台;
61.s36、设置信号收发模块:依照任务执行流程,接收需要处理的测控信号,并将fpga加速算法所需的环境变量和信号数据传送给fpga处理单元,进行并完成对测控信号的加速处理后,返回结果。
62.步骤s5的具体内容包括:
63.进行高计算复杂度的测控任务处理时,调用fpga资源调度平台分配的fpga资源后,通过信号收发模块打开接口,发送数据;数据包括环境参数和测控任务的待处理数据包,数据下发至fpga处理单元;fpga处理单元对测控任务的信号处理完成后,处理结果返回至信号收发模块的接口函数中。
64.本实施例中,如图3所示,当数据下发时,sendpackagecount为计算节点服务器到fpga处理单元的分发数据长度,swappackagecount为计算节点服务器缓存数据包数量。由于计算复杂度高的信号处理需要多个fpga处理单元的共同处理,数据需要被分发,因此由缓存计数方式来控制异构平台间的实时数据分发过程,每存储sendpackagecount包的待处理数据包后,将待处理数据包通过clenqueuewritebuffer接口函数分发至fpga处理单元,
其中待处理数据包写入fpga处理单元的内存后,便调用相应的fpga加速算法核函数在fpga处理单元上运行。
65.待信号处理完后返回结果到计算节点服务器端的信号收发模块的接口函数clenqueuereadbuffer,处理结果被拼接至分发过程中待处理数据包中第一个包头中,当缓存计数达到swappackagecount时,计数器归0,fpga处理单元在缓存计数时间内完成对测控任务的信号处理并返回结果。
66.本实施例中的测控任务为扩频信号捕获任务,采用上述方法进行的具体流程如图4所示,扩频信号捕获任务请求下发到管理节点服务器的fpga资源调度平台的调度平台服务端,调度平台服务端为其匹配fpga资源中对应的硬件资源。通过tcp发送扩频信号捕获指令到fpga资源调度平台的调度平台客户端,调度平台客户端解析任务需求并生成任务执行流程,然后调用资源接口传输环境变量的待处理信号。
67.其中,客户端解析任务需求时,可针对不同体质的测控任务进行任务部署,任务需求数据帧结构为:帧头(固定数值:0xaaaaaaaa)、数据域字段、帧尾(固定数值:0xbbbbbbbb);数据域字段如下表1所示。
68.表1接口协议数据域字段表
[0069][0070][0071]
解析数据帧根据tasktype的任务类型,选择对应的fpga加速算法。本实施例中tasktype任务类型为扩频,则fpga处理单元执行扩频信号的捕获功能。
[0072]
紧接着,fpga资源调度软件通过opencl的接口与fpga处理单元进行通信,其中内核的创建到资源释放过程如图5所示,硬件控制模块通过硬件平台id号获取资源信息,并创建任务命令队列、硬件资源内核。为内核设置任务所需的环境变量clsetkernelarg,由clenqueuewritebuffer分发sendpackagecount包待处理信号,fpga处理单元调用相应的fpga加速算法,即捕获核函数进行信号处理,clenqueuereadbuffer端口返回捕获结果。
[0073]
本实施例中,对扩频码捕获的基本原理为:中频信号经过ad转换器,送入正交下变频器后,得到相互正交的两路数字信号,分别通过低通滤波器,采样之后与本地pn码作相关运算、包络检波和门限判决,若大于门限则认为pn码完成初始同步,否则滑动本地pn码相位直到捕获完成,仍可参看图4示意。
[0074]
扩频信号的捕获具体实现方法主要有:多通道并行相关法、滑动相关法、匹配滤波器法等。本实施例中采用匹配滤波加fft频率估计的方法进行信号的快速捕获,可参看图4。基于匹配滤波和fft变换相结合的方式是一种时频域相结合的方法,其中匹配滤波完成码维的串行搜索,fourier变换完成多普勒补偿实现并行多普勒维的搜索,此算法相对基于fft的处理技术,实现简单,更加灵活,fft核点数大大减少,节省了资源,而且更加适合在低信噪比、大多普勒条件下捕获。
[0075]
最后,fpga处理单元将捕获结果返回计算节点服务器,计算节点服务器控制缓存swappackagecount包数据,并将捕获结果拼接到第一包数据包头。然后重复捕获过程,直到测控任务结束为止,因此实现了针对高计算复杂度的测控任务,使用fpga计算能力的优点进行加速计算的效果。
[0076]
本实施例所提供的方法,通过云测控信号处理系统和fpga加速技术处理高复杂度的计算过程,辅以通用服务器对低复杂度计算的处理,从而实现扩频信号捕获功能;其中,多个fpga处理单元,即多块fpga板卡,主要实现扩频信号捕获处理流程这一高复杂度的计算过程,达到减轻信号处理节点中cpu负荷、加速信号处理运算的目的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1