一种基于异构处理器的可动态布署设计与实现

2024-02-17 12:52钱宏文陈光威
电子技术应用 2024年1期
关键词:异构处理器预处理

钱宏文,陈光威

(中国电子科技集团公司第五十八研究所,江苏 无锡 214035)

0 引言

微电子技术持续迭代演化,处理器集成越来越多的功能单元,为适应日趋复杂多变的卫星生活服务需求,包含CPU、FPGA、DSP 等的异构处理器需要满足面向不同功能任务需求的系统功能,进而完成相应的功能任务,完成在不同功能任务下软、硬件资源的分配、任务调度,控制、协调并发工作[1]。但是DSP、FPGA 等利用硬件底层语言进行功能定制,设计周期漫长,灵活性差,因此设计异构处理器结合可重构技术实现应用功能灵活部署[2]。在芯片级别的设计重构已有较多研究,结合系统功能接口标准统一化设计,功能模组模块化可扩展设计,达到系统可实时动态重构,实现对人员物质救援侦察任务、图景采集遥感成像任务、数据信息通信任务等功能可动态部署的目的[3−5]。

为了使异构处理器具备实现高带宽、大数据在轨即时处理、多种应用任务顺序执行、软硬件资源灵活调度和动态管理的能力,本文构建出一种可实现异构处理器系统功能在线动态重载的实现方式,实时按照不同时段功能需求差异进行资源动态分配,并协调处理器内部控制流及数据流网络重建。本设计实现的动态部署设计满足异构处理器信号即时处理、多任务即时重构、资源高效灵活智能调用等需求。

1 整体框架

1.1 异构处理器总体架构

本设计以异构处理器为基础,异构处理器集成在一个基于VPX 标准的机箱内。处理区包括主控单元、信号预处理单元、信号处理单元、存储单元、电源单元等。系统总线分为控制总线和高速数据总线,高速数据总线为背板高速串行接口连接。平台在硬件架构设计上采用通用平台设计理念,配置大容量交换背板,支持各功能板卡实时无阻塞数据传输[6−7]。

在管理和业务层面,设计了统一机框管理总线(SPI),板卡管理总线(千兆以太网),高速数据总线(SRIO),已达到板卡的通信接口统一化、标准化的目标。软件统一配置管理硬件运行情况,各条总线的传输由软件监管,具备软件化系统的条件。在平台软件设计上支持嵌入式实时操作系统(RTOS),为软件平台提供通用的处理能力和标准通信接口,通过底层驱动实现对操作系统的支持,并通过操作系统提供对应用环境描述(AEP)、组件间通信机制和服务、核心框架的支持。平台可以根据业务需要灵活选用不同功能、不同数量的功能板卡。呈载异构处理器架构如图1 所示。

图1 星载异构处理器架构

1.2 异构处理器功能单元

如图1 所示,异构处理器架构主要由三部分构成,分别为中频数字信号预处理单元、信号处理单元及主控单元。

中频数字信号预处理单元包含的部件有:高性能FPGA、光电收发模块等。主要完成对数字光纤输入的单通道中频数字信号的存储、交换及信号预处理。数据交换模块接收到光纤送过来的中频数字信号,根据主控单元的控制和配置指令,将数据分发到不同的信号处理单或存储单元。信号预处理主要完成脉冲信号检测、数字下变频、宽带信号数字信道化和大规模定点傅里叶变换(FFT)等功能,最后将信道化的有效输出结果输入至信号处理部分。

信号处理单元用来接收信号预处理部分传递过来的有效数据,或生成数字中频或者基带波形。信号处理模块主要的执行单元有:FPGA、DSP 及其它集成电路等。模块的复杂性可根据使用的波形和任务所选择的速率而定,主要完成电子侦察、遥感、通信任务功能等预处理之后的信号处理功能。信号处理资源设计具备可访问和可动态部署重构的硬件接口,具备全连通的控制和数据接口,实现资源接口可描述和可抽象。

主控单元实现软件化处理器功能加载和重构、系统控制和资源调度,并完成对综合射频传感区波束指向、波束数目、工作频率、带宽、增益、数模转换速率、收发模式及同时工作射频通道等的控制。它由多个CPU 构成,承载嵌入式操作系统、软件应用和支持配置的接口等。主控单元在软件控制下支持操作系统,完成控制、接口管理、电子侦察、遥感、通信功能加载、重构和模块发现等功能,并通过上层操作系统进行统一调度和功能重载。

2 异构处理器动态部署的设计与实现

异构处理器满足根据功能需求进行定义和重构;并支持应用构件功能的灵活部署,系统可实时动态重构,实现对人员物质救援侦察、图景采集遥感成像、数据信息通信等功能实现的支持,适应软件化系统的应用需求。

2.1 异构处理器资源管理

针对不同的异构资源设备,如ARM、DSP、FPGA,每个设备都具有自己的资源调用方式以达到可动态部署的目的,但是对于这些设备需要一个统一的Agent(代理)来管理,这个Agent 会根据上层下发来的任务选择合适的设备进行下发。比如数字信号处理相关任务会下发到DSP 设备的Agent 上,再经过相应的Agent 下发到具体的设备。同样计算量比较大的计算任务如矩阵运算、数据加密与解密会下发到FPGA 的Agent。这个统一的Agent 可以称为Service Provider(服务供应商),其主要完成以下工作:

(1)接收上层下发来的通用任务,提取通用任务的特点评估各个任务使用资源的偏好值。

(2)根据每个任务的使用资源的偏好值决定各任务即将下发的设备类型,如FPGA 和DSP。

下发任务后收集任务执行的结果并返回到上层,同时会收集各个任务执行的时间、资源消耗等信息,以优化下一次的任务调度。异构资源管理总体框架设计如图2 所示。

图2 异构资源管理总体架构

2.2 预处理单元的动态部署设计与实现

预处理单元功能任务执行,主要依托Xilinx 公司Ultrascale+系列高性能FPGA 作为预处理单元核心计算模块,因此在配合系统实现人员物质救援侦察、图景采集遥感成像、数据信息通信等功能动态部署过程中,就预处理单元而言主要是对该单元模块内FPGA 进行动态可重构。

2.2.1 FPGA 可重构技术

可重构计算技术是指在软件的控制下,利用系统中的可重用资源,如FPGA 等可重构逻辑器件,根据应用的需要重新构造一个新的计算平台,达到接近专用硬件设计的高性能。它避免了微处理器计算模式因取指、译码等步骤导致的性能损失,同时也消除了专用集成电路ASIC 计算模式因为前期设计制造的复杂过程带来的高代价和不可重用等缺陷。可重构计算技术结合了通用处理器和ASIC 两者的优点,能够提供硬件功能的效率和软件的可编程性。其核心突破就是能够动态进行硬件电路配置,这种配置方式灵活而高效,通过硬件描述语言HDL以可编程的方式来完成并实现电路的构建。通过引入可重构计算技术,整个嵌入式系统既保持了设计的灵活性,同时也获得了专有用途硬件电路的等价性能[8−9]。

动态可重构是指在可编程器件的运行过程中,当某一阶段运行结束后,在系统不掉电的情况下,加载存储于片外存储器的配置文件,动态地完成系统功能的切换。这种重构方式重构时间短,系统功能的切换速度快,并且不影响其他硬件区域的运行;全局动态可重构是指在重构时向 FPGA 重新加载包含全部逻辑资源的配置文件,重构前后片上逻辑全部改变。

2.2.2 FPGA 动态部署的设计实现

现阶段通过FPGA 全局动态可重构技术实现了预处理单元功能的动态部署,在设计之初,利用FPGA 全局资源,根据不同作战任务规划,完成人员物质救援侦察、图景采集遥感成像、数据信息通信干扰防窃、通信导航增强等一系列功能任务分别在预处理单元FPGA 上的代码实现及编译,获取对应作战任务下的对应不同的配置文件。注意对应不同功能需求需要保证各个任务状态下FPGA 设计的MicroBlaze 框架一致且能覆盖主控端对预处理单元各个任务的指令控制[10−11]。对配置文件采取MicroBlaze 软核配合波形组件任务的方式完成全局在线动态可重构bit 文件的设计和制作,生成的一系列聚合MicroBlaze 软核功能的配置文件通过以太网上传至主控板SD 卡。

因预处理单元所选用的FPGA 为高端Ultrascale+系列,其加载bit 文件的大小高达1 Gb,为保证对高性能FPGA 实现快速需求功能切换,满足快速完成加载的需要,特设置高速加载总线。

高速加载总线在背板体现为单路Serdes 总线,由主控板发出,由节点板的CPLD 解析其协议。为降低对CPLD 的要求,采用专用的串并转换收发器来实现。最快波特率支持至24 bit×75 MHz=1.8 Gb/s。串并收发器的设计如图3 所示。

图3 串并转换收发器

在动态部署过程中,主控单元通过以太网接收来自上位机控制界面的指令,选择预先生成的对应功能任务的配置文件,通过DMA 下发给主控逻辑端,经串并转换处理,通过selectmap 在线加载的方式,在不断电重启的前提下,基于同一套硬件实现波形组件的重新加载,完成任务的切换。预处理单元动态部署实现多波形组件任务,如图4 所示。

图4 预处理单元动态部署实现多波形组件任务

图5 Monitor 和Agent 通信及动态部署框图

2.3 信号处理单元的动态部署设计与实现

信号处理单元涉及的资源主要是DSP,项目中涉及的DSP 有n个核心,即相当于n个单核CPU,一个核心在某一个时刻只能运行一个服务。为了实现多种功能动态部署,需要实现一个Monitor(检查员)服务,负责DSP核心资源的动态部署。设置DSP 核0 运行的是Monitor服务,Monitor 服务负责的内容有与核心框架进行通信、服务分发、资源信息查询和服务例程引导重构[12−13]。下面分别进行说明。

2.3.1 与DSP Agent 通信

Monitor 服务使用Micro-DDS(Data Distribution Service,DDS)中间件来与ARM 上的核心框架进行通信。Micro-DDS 使用的是发布订阅模式,Monitor 既可作为发布者,也可作为订阅者。作为发布者,则是将DSP 资源和服务信息传送到核心框架;作为订阅者,则是接受核心框架发送的指令信息[14−15]。

Monitor 服务在DSP 启动的时候就要开始运行,Monitor 负责将那些与DSP 绑定的在Flash 缓存上的功能例程信息通过Micro-DDS 中间件上传到Agent,Agent 收到后将DSP 上的服务以及设备对应IP 和Port 等信息注册到服务映射表,这样核心框架可以根据映射表,依靠Micro-DDS 给DSP 设备发送指令启动并运行指定服务功能。

为了完成上述复杂功能,DSP 和核心框架需要自定义一套通信协议。通信协议包含的基本内容有服务分发、查询、例程下载和删除以及服务运行结果返回。在工作核心上的服务运行结束后即使将结果返回给Agent。

在动态部署过程中,服务管理层下发指定作战任务指令到主控单元,主控单元根据指令信息通过DSP Agent 下发指定需求功能信息到所有DSP 核0 的Monitor,Monitor解析指令并根据指令启动从Flash 特定地址空间重载功能任务,功能任务动态重配置完成后上报当前核资源信息及功能任务信息和运行状态,完成任务的切换。

2.3.2 Agent 设计

DSP Agent 是作为在ARM 上部署的服务控制单元,功能包括:

(1)与所属的DSP Monitor 进行通信;

(2)服务分发的负载均衡;

(3)管理在DSP 上的服务(包括IP、端口等信息);

(4)保活机制(定时检测服务状态)。

其中服务分发需要设计调度负载均衡的调度策略,根据服务运行情况和系统负载将服务指令分发到合适的设备上。常见的调度策略有FCFS(先来先服务)、短作业优先和优先级调度算法等。由于服务运行时间不可预测,故Monitor 要根据服务指令接受顺序和服务本身优先级计算服务权重,将权重作为优先级参考指标进行调度。

2.3.3 接口设计

主控单元需要向服务管理层提供统一的API,使得服务管理层无需关注服务运行的设备差异,只关注服务以及编排本身。因此主控单元ARM 控制端需要为底层硬件DSP 做适配,即给对应DSP 控制的Agent 的封装接口,提供基本的通信、指令收发、服务上传等功能。

主控单元提供的用于DSP Agent 与DSP 设备进行通信的接口如表1 所示。

表1 Agent 提供与DSP 设备进行通信的接口表

DSP_Agent 负责管理几个DSP 设备,给Service_Provider 提供统一的服务调用接口,同时根据服务设备使用情况进行负载均衡。常见的负载均衡算法有轮询法、随机法、源地址哈希法、加权轮询法、加权随机法和最小连接数法。

现总结DSP_Agent 给Service_Provider 封装的接口如表2 所示。

表2 DSP_Agent 给Service_Provider 封装的接口表

2.4 动态部署后的控制链路及数据通路重建

异构处理器系统设计指令控制信息交互总线为千兆以太网,数据交互链路为SRIO(Serial RapidIO),在任务功能重构过程中需要对FPGA 及DSP 内的功能配置文件进行动态重构,这会打断重构之前建立的千兆以太网连接、SRIO 链路,需要重建网络连接及SRIO链接。

对于网络连接,预处理单元动态重配置后需要自动重新运行内部MicroBlaze 内的网络初始化及网络本端口配置流程,从而主控端千兆网口与预处理单元千兆网重新建立连接。信号处理单元动态重配置后也要自动执行网络初始化,才能建立DSP 与系统千兆网的重新连接,进而承担起新作战任务下的指令数据传输任务。本设计当前系统各单元网络连接通路如图6 所示。

图6 异构系统网络连接系统框图

对于SRIO 系统连接,系统多种功能任务动态重配置,有部分功能任务需要对预处理单元及信号处理单元同时重配置,有部分作战任务只需要重配置预处理单元,不同功能任务对数据流向需求不同从而要求任务动态配置时SRIO 交换路由配置更新。结合本系统SRIO互联网络可发现,系统经过使用三片SRIO 交换芯片路由,且有部分通路需要经两级交换芯片路由,这会导致在动态配置过程中出现根据特定功能需求,两级交换芯片在功能重构后全部路由重配及配置后与各单元SRIO接口通过维护包进行ACK_ID 的再次握手的需求;以及特定功能需求下,只需要一级交换芯片在功能重构后进行路由重配时,与另外一级路由设备的再握手或隔离。以此保证功能动态配置后的数据链路调整及通畅。本系统SRIO 系统连接通路如图7 所示。异构系统SRIO 互联网络重建流程如图8 所示。

图7 异构系统SRIO 互联网络框图

图8 异构系统SRIO 互联网络重建流程

3 测试与验证

3.1 预处理单元FPGA 动态部署测试

异构处理器完成预处理单元、主控单元、指令及数据交换系统设计构建后,基于系统需求在预处理单元设计了人员物质救援侦察任务、图景采集遥感成像任务、数据信息通信、数据信息通信干扰防窃、通信导航增强5种不同的功能代码设计,并生成支持可动态部署的融合MicroBlaze 应用的5 种配置文件。异构处理器实物机箱如图9 所示。展开功能完整且高强度多次测试,经过5种应用交替循环超过50 次动态部署切换,结果如图10~图14 所示。结果证明异构处理器应用对应设计的预处理单元动态部署5 种应用全部工作稳定,并且加载时长都在1 s 以下,满足6 s 以内实时动态重构的系统需求。而且系统涉及的5 种应用配置文件高达50 MB,应用常规手段,其配置文件通过JTAG 加载时间超过220 s,且资料查询显示对FPGA 更新已知创新设计中跟新配置10 MB 大小的配置数据也需要40 s,因此本动态部署设计实时性及动态部署灵活度更高。

图9 异构处理器实物机箱

图10 人员物质救援侦察任务侦测数据处理结果

图11 图景采集遥感成像任务数据处理结果

图12 图景采集遥感成像任务数据处理结果目标提取后通信传输结果

图13 各功能任务自主切换及动态重配置时间结果1

图14 各功能任务自主切换及动态重配置时间结果2

3.2 信号处理单元DSP 动态部署测试

在处理器系统完成信号处理单元动态重配置需要的系统实现后,根据本处理器承担的功能,信号处理单元需要实现人员物质救援侦察任务、图景采集遥感成像任务这两种不同应用功能,并生成相应配置文件烧写到4 片DSP 不同Flash 地址空间。同时根据需求设计两种功能下主控到DSP 之间的控制交互指令及通信接口代码。按照DSP 动态部署流程进行应用切换测试,功能运行正常,切换时间在6 s 以下,符合6 s 以内实时动态重构指标要求。

3.3 系统功能下整体功能动态部署测试

系统功能联调需要预先在存储单元预存人员物质救援侦察任务数据、图景采集遥感成像任务数据,根据服务控制端指令,系统先重构为人员物质救援侦察任务功能模式,根据上位机模拟的卫星扫描航迹下发回放指令,从存储单元回放数据到预处理单元完成人员物质救援侦察任务信息预处理,再将处理结果经SRIO 网络发送到信号处理单元,最终信号处理完成的结果经以太网传输到上位机显示。人员物质救援侦察任务完成后根据侦察结果触发动态部署图景采集遥感成像任务流程,系统重构稳定后,根据卫星航迹给出回放遥感数据指令,经预处理单元完成遥感信号预处理后传输到信号处理单元实现遥感图像处理,再将处理后的图像数据经网络回传给上位机界面。完成图景采集遥感成像任务的同时,依次触发单频带通信、扩频通信、梳状普干扰通信、高斯白噪声干扰通信、导航增强等任务的动态部署及图像数据编码传输、射频发送、射频接收解码及传输图像信息显示等流程。

4 结论

本文以异构处理器为基础,设计了一种支持系统功能可动态部署的方案,赋予处理器即时智能重构、高性能、高效用的性能特征,以满足资源灵活调度、多功能任务实时切换的目的。针对人员物质救援侦察任务、图景采集遥感成像任务、数据信息通信、数据信息通信干扰防窃、通信导航增强功能智能切换需求,搭建可针对高性能FPGA,多片多核DSP 配置功能在线重构系统及重构的系统控制链、数据链重组,实现了多种功能任务的快速切换及功能实现,在地面系统全流程测试中实现预期目标。以此动态部署设计为基础,还可以结合FPGA细颗粒度可重构技术,在更细化的资源划分上实现对FPGA 资源、数字信号处理资源、CPU 资源等的灵活调度及分配,使异构处理器形成更高性能、高速、智能化特性,满足多种计算性能和功能的需求。

猜你喜欢
异构处理器预处理
试论同课异构之“同”与“异”
基于预处理MUSIC算法的分布式阵列DOA估计
异构醇醚在超浓缩洗衣液中的应用探索
overlay SDN实现异构兼容的关键技术
LTE异构网技术与组网研究
浅谈PLC在预处理生产线自动化改造中的应用
络合萃取法预处理H酸废水
基于自适应预处理的改进CPF-GMRES算法
Imagination的ClearCallTM VoIP应用现可支持Cavium的OCTEON® Ⅲ多核处理器
ADI推出新一代SigmaDSP处理器