华睿DSP软件体系架构研究

2016-11-15 00:41何国强
现代雷达 2016年9期
关键词:中间件可视化架构

何国强,陈 勇

(南京电子技术研究所, 南京 210039)



·总体工程·

华睿DSP软件体系架构研究

何国强,陈勇

(南京电子技术研究所,南京 210039)

结合华睿DSP现状及其发展路线,分析了现有软件体系架构中的不足,结合软件的可扩展、可移植、可跟踪等应用需求,设计了层次化的软件体系架构。着重介绍了可视化多核并行开发环境、运行管理层、中间件层、支撑软件层的技术方案。软件架构各层次之间相对独立,耦合度低,并采用符合国际标准规范的开放接口,保证了软件架构的可扩展、可移植能力,建立了完善的DSP软件体系,为华睿DSP的推广应用奠定了基础。

软件体系架构;华睿DSP;多核;运行管理;中间件

0 引 言

信息化、数字化的快速发展和广泛应用给全球政治、经济、军事等各个领域带来了深刻的变革,世界主要国家纷纷以信息化为核心加速国防和军队建设,积极抢占高新技术制高点,积极谋求“技术代差”和信息优势,并通过依托本国信息技术产业,争夺信息技术优势,推进信息化建设自主发展[1]。

雷达装备及系统作为现代信息战、电子对抗中C4IRS系统和武器控制系统中的重要环节,在承受反辐射导弹、有源干扰、低空突袭等因素威胁的同时,必须完成对空警戒、保障引导、航行管制探测任务,实现对隐身目标、小目标、低空目标和高速高机动目标,如:飞机、导弹、舰船的探测、分类与识别功能,是适应未来信息化战争需要、夺取信息优势的核心综合信息感知系统。

华睿DSP是我国自主研发的面向雷达应用的高性能DSP。随着各国信息化技术的快速发展,战场态势复杂多变,DSP处理器将不断更新换代,信号处理系统也日趋复杂,如何针对华睿DSP构建一套高效便捷、可扩展、可移植的软件体系,是实现我国雷达装备核心器件自主可控的必经之路。本文将针对华睿DSP的现状及发展路线,结合现有DSP软件体系架构中存在的不足,对华睿DSP的软件体系架构进行研究。

1 华睿DSP现状及发展路线

华睿1号DSP为自主研发、面向雷达应用的高性能四核DSP,于2012年3月完成研制。主要用于高实时、高吞吐率、高密度计算的实时信号处理系统,解决了整机装备研制过程中长期制约我国的核心芯片应用瓶颈。目前,华睿DSP系列正在沿着多核异构、高吞吐率的方向发展,图1是华睿2号架构框图。它包括四个DSP核和四个可重构处理(RASP)核,主频为1 GHz,并提供大容量DDR、片上存储等高速存储,通过RapidIO、PCIE、GMAC等高速IO设备同外部设备及系统通信。

图1 华睿2号DSP架构框图

2 华睿1号DSP软件体系架构的不足

目前,针对DSP的软件体系架构主要以支持功能开发为主,较少考虑平台移植、系统可扩展性、系统可跟踪性等系统级功能,其软件架构如图2所示。

图2 华睿1号DSP软件体系架构

从以上架构可以看出,目前的软件架构主要存在以下不足:

(1) 软件架构的层次划分不够细化,应用软件通过操作系统甚至BSP直接与硬件平台交换,其耦合紧密,应用的可移植性较弱;

(2) 系统应用每个功能模块采用的是数据流定向、静态资源预部署的实现模式,系统应用各功能之间耦合性强,可扩展性差;

(3) 系统缺乏有效的故障管理和故障监测模块,无法实现故障重构及任务迁移,同时缺乏故障日志记录,不便于后续的故障分析,系统鲁棒性和故障可跟踪性较弱。

(4) DSP为多核处理器,但现有的系统仍使用传统的面向单核处理器的开发方式进行软件设计,缺乏如文献[2-3]所示的支持多核处理器并行计算的有效工具,难以充分发挥多核处理器的性能。

因此,随着华睿DSP的升级换代和军事需求的不断增多,有必要设计一套可移植性强、可扩展性好、具备灵活部署能力和适应多核软件开发的华睿DSP软件体系架构,为实现华睿DSP的广泛应用奠定基础。

3 基于华睿DSP的软件体系架构

基于华睿DSP的软件体系架构如图3所示(构件层和应用层主要以雷达综合信息处理系统为例),包括应用层、构件层、运行管理层、中间件层、支撑软件层、物理资源层以及用于软件开发的可视化多核并行开发环境。各层次之间相对独立,采用松散偶合设计,下层为上层提供调用接口,上层是下一层的标准封装。

(1) 支撑软件层负责与物理资源层的协同工作,屏蔽不同物理运行平台,为上层软件提供统一的接口。

(2) 中间件层根据国际标准规范的接口,对支撑软件调用接口进行标准化封装,屏蔽了不同支撑软件接口差异,为构件层和运行管理层提供标准化接口,便于上层应用的开发与移植。

(3) 运行管理层为系统提供统一的资源管理能力,使得系统能够跟踪管理系统的运行状态,合理地分配系统各类资源,监测并恢复系统故障,保障系统高效稳定的运行。

(4) 构件层包括算法构件、管理构件、通信构件和接口构件,完成对各个功能算法、管理模块、系统通信接口、各功能模块间信息交换接口的封装,为应用层提供便利的接口以实现相关功能。

(5) 应用层则主要关注于具体功能模块的组装,完成具体的应用任务。例如,在实现雷达综合处理中实现波束形成、信号处理、数据处理和综合显示等具体功能。

(6) 可视化多核并行开发环境为应用层软件开发提供图形化开发环境和代码自动生成手段,支持对多处理器硬件的功能映射和优化流程的能力,支持任务并行和数据并行,降低多核处理器系统的开发难度,提高硬件资源的利用率。

应用层和构件层需要根据具体应用对标准接口、功能模块进行定制化设计,满足系统开发人员的需求,图3显示的是用于雷达综合信号处理的构件及应用的示意图。支撑软件层、中间件层、运行管理层、可视化多核并行开发环境(虚线框内部分)为系统的基础软件,它通过对物理资源层的封装,为构件层、应用层软件的开发和运行提供支撑,具备较强的通用性。

图3 软件体系架构

3.1可视化多核并行开发环境

可视化多核并行开发环境主要为华睿DSP系统提供方便快捷的开发手段,它通过图形化的开发方式,将多核环境并行程序开发的复杂过程转化为图形界面的拖放和配置操作,而并行计算及优化过程均由该环境内部完成,从而使得应用程序员能够快速开发出适应于特定平台的系统应用,发挥多核系统的性能。

华睿DSP的可视化多核开发环境基本架构如图4所示。

图4 可视化多核并行开发环境

(1) 应用软件开发人员根据应用需求,利用可视化代码编辑器,通过选择功能模块并用线连接的方式,构建系统应用框图,生成可视化框图语言的程序。

(2) 借助于转换器,将可视化框图语言程序转换为自动并行化编译器可识别的并行化语言程序。

(3) 根据华睿DSP平台对应的并行化设置工具,对程序中的任务进行分割映射,分配到华睿DSP平台中的具体处理核中。

(4) 采用自动并行化编译器对分割映射后的程序进行编译,生成并行优化后的C语言代码。其中,该C语言代码中增加了并行划分相关内容,可用实现分析工具进行分析,为开发者提供任务执行序列、内存规划以及系统实现的拓扑等信息,帮助开发分析定位实现中存在的问题。

(5)利用华睿DSP工具链及对应的高性能函数库,生成可执行文件,加载到目标操作系统上执行。

(6)当需要进行状态监测、性能分析、调试分析时,则由上位机发送相应的命令给监视代理,由监视代理提取目标机对应信息上传。

3.2运行管理层

运行管理层的功能是为系统提供统一的软件运行平台,屏蔽底层硬件平台的复杂性、异构性;支持多个任务对底层软、硬件资源的复用,有效利用系统各类资源;便于系统的功能重构和故障恢复[4]。

运行管理层包括系统部署、任务管理、故障管理和实时监控,如图5所示。管理方式采取集中式(如果资源容许,管理主控节点采取双备份方式)。管理主节点负责系统的管理。系统中的其他模块作为从节点,在启动的过程中会加载“状态变更监听线程”和“节点状态发送线程”。

图5 运行管理层架构

(1) 当主节点收到系统部署任务时,该节点查找其“节点预部署策略”表,找到给定的最佳部署策略,并将该部署策略通知给任务管理线程。

(2) 当任务管理线程获得节点部署策略后,通过实时监控线程,检测待部署的节点状态是否正常。如果该部署策略存在故障节点,则通知系统部署线程查找次优的部署策略;如果所有待部署节点均正常,任务管理线程则根据部署策略,将对应的信息(包括虚拟节点号及前后物理节点号)通知给相应节点的状态变更监听线程,指导其停止和启动对应的任务。

(3) 系统的从节点固定时间间隔会向主节点的实时监控线程发送当前节点系统状态信息,实时监控线程获得系统状态信息后一方面将其保存在数据库管理系统中日志表中,另一方面将其传递给故障管理线程和任务管理线程,以便于故障检测和任务重构。

(4) 故障检测线程则结合故障检测库和故障修复库,对出现故障的节点进行自动修复(目前主要采用任务迁移的方式,利用备份模块替换故障模块工作),将错误保存在日志记录中,并上报给上位机,便于调试人员从日志数据库中提取对应信息分析故障,消除隐患。

3.2.1系统部署

系统部署借助于“节点预部署策略”表,实现故障透明(存在故障的情况下,任务自动迁移到其他正常节点执行)、负载均衡(系统可在线配置,重新安排节点任务,将负载较重节点的部分任务迁移到负载较轻的节点)和扩展灵活(允许系统和应用规模伸缩)。为此,在系统部署时采用虚拟节点和物理节点相映射的方式,隔离应用数据流逻辑与执行程序的处理模块,从而实现系统的灵活部署。图6是系统部署的一个示意图,其中,阴影标记的处理节点表示故障节点。

图6 系统部署示意图

3.2.2实时监控

实时监控对系统的计算资源、存储资源的健康状态、利用率,通信资源的健康状态和吞吐率进行统计、监测和上报,一方面便于系统使用者掌握整个系统各个模块的运行状态,另一方面便于故障管理模块发现故障并修复故障。

在实时监控中,搜集哪些信息来表征系统健康状态和协助定位系统故障,是该系统的关键。为便于管理与监控,可以采用分层架构,根据系统的层次关系(如:模块级、平台级、系统级等),对需要的信息进行归类整理,为系统管理人员提供合理的监测状态。

3.2.3故障管理

故障管理包括故障检测和故障修复两部分。故障管理使用故障检测策略库以及故障恢复策略库完成故障监测和故障修复功能。其中,故障判别策略库用于确定当前系统状态信息是否有故障,故障恢复策略用于指示采取何种方式对发现的故障进行修复。

当该模块根据实时监控信息发现故障时,则从故障检测策略库中查找故障类型。如果是已知故障且在故障修复策略库中有对应的修复策略,则自动采取对应的措施完成故障修复;否则传递给上位机,由上位机处理。故障管理的基本处理流程如图7所示。

图7 故障重构处理流程

3.2.4任务管理

任务管理一方面要便于系统功能模块能够动态部署到系统中或者从现有系统中删除不需要的功能模块;另一方面要在节点出现故障时,能够将该节点中的任务迁移到冗余节点继续执行。任务管理主要包括任务的执行状态监测、任务的动态加载/卸载、任务迁移等技术。

3.3中间件

中间件层根据系统应用在计算、通信和管理上进行功能划分和扩展,通过对国际上的成熟标准进行抽取、精炼,实现在开放式软件架构下进行标准化设计,以满足系统应用的可移植性需求。中间件主要包括计算中间件、通信中间件和管理中间件三大部分。

3.3.1计算中间件

计算中间件主要根据应用需求,使用底层提供的高性能并行计算函数库,对各类计算进行标准化封装,使得基于其上开发的软件能够无修改的移植符合对应标准接口的平台,实现系统的高效计算及跨平台移植,如图8所示。目前,国际标准化组织已经针对不用的应用领域和平台,提出了一批标准的计算中间件,包括用于用于图像、信号、向量等处理的VSIPL[5-6],用于多核同构平台处理的OpenMP[7-8],多核异构平台处理的OpenCL[9]等。

图8 计算中间件层次结构图

3.3.2通信中间件

通信中间件主要用于确定系统内部、系统之间通信的基本模式和标准接口,在满足系统内部、系统之间高效稳定通信的同时,能够实现跨平台移植以及跨平台通信,如图9所示。目前,国际标准组织制定的通信中间件主要有DDS[10-12]、CORBA[13-14]、MPI[15-18]等方式。

图9 通信中间件层次结构图

3.3.3管理中间件

管理中间件标准主要提供对系统的实时监测、资源管理、任务调度、故障恢复和重构等管理功能的编程接口;由于系统的管理需要系统各部分相关状态进行分析,其功能的实现常常建立在系统通信接口之上。因此,目前的通信中间件(如:DDS)已经具备管理中间件的功能,能够在其上进行管理功能的开发。

3.4支撑软件层

支撑软件层是为应用提供必须的基础运行支持,主要包括实时操作系统、驱动/BSP、软件工具链。

(1) 实时操作系统负责管理系统中的任务、中断、内存等资源,为系统运行提供基础。由于华睿DSP主要用于实时性较高、运算量大、吞吐率高的实时处理系统。因此,操作系统的实时响应能力十分重要。目前国内外已经开发出实时性较好的面向DSP的操作系统,包括国外Windriver公司的vxWorks、国内的ReWorks等。

(2) 驱动/BSP主要实现对DSP中硬件资源的驱动与控制,不同的华睿DSP需要具体适配相应的驱动/BSP程序,使得系统具备基本的运行能力。

(3)软件工具链主要包括编译器和调试器,为高级语言编写的程序提供基础的开发环境,也为可视化集成开发环境提供基础工具链。

4 华睿2号软件平台方案

基于上述软件体系架构,华睿2号DSP软件平台方案如下:

(1) 支撑软件层:操作系统采用国产的实时操作系统ReWorks,并在此基础上针对华睿2号DSP研发驱动/BSP。软件工具链将以GNU工具链为基础,通过指令集扩展实现对华睿2号DSP的支持,通过自动向量化技术发挥华睿2号DSP性能。

(2) 中间件层主要采用国际标准开放接口:计算中间件采用VSIPL,通信中间件和管理中间件采用DDS。

(3)运行管理层以管理中间件为基础,采用面向服务架构(SOA)的思想,通过注册故障检测服务、系统部署服务、系统监控服务等方式完成运行管理层的构建。

(4)可视化多核开发环境根据应用需求以及华睿2号平台的硬件特征,设计可视化、模块化、层次化的软件开发语言,采用模型驱动技术,实现应用程序在华睿2号多核平台的并行运行。

华睿2号平台典型信号处理应用开发及运行流程如图10所示。

(1) 根据信号处理典型应用,软件开发者利用可视化多核并行开发环境,构建需求模型,划分功能构件及管理构件。

图10 基于华睿DSP软件开发运行框图

(2) 从构件库中选择对应的构件构成系统的基本原型,包括基于标准计算中间件开发的高密度计算构件、基于标准通信中间件开发的通信构件、基于标准管理中间件开发的管理构件。

(3) 根据华睿2号的平台架构,设置并行编译规则,划分每个核执行的任务、内存及输入输出数据。

(4) 调用可视化平台的并行编译工具,根据设置的并行编译规则及华睿2号的平台架构,生成具备多核并行计算能力的高级语言代码(如:C语言代码),并调用华睿2号编译器、链接器进行编译链接,生成可执行的二进制应用程序。

(5)将可执行程序下载到目标平台后启动执行。程序在执行的过程中,将依次通过运行管理层、中间件层、运行支撑软件最终访问到华睿2号硬件平台,实现相关功能及通信。当系统某个模块出现故障时,将由运行管理层自动启动故障重构程序实现故障修复。

(6)当系统管理员需要查看系统状态时,通过可视化系统监控窗口发送相关指令,由运行管理层的相关管理任务将对应的信息传递给可视化系统监控窗口实现系统监控。

5 结束语

针对华睿DSP构建一套高效便捷、可扩展、可移植的软件体系,是实现我国雷达装备核心器件自主可控的必经之路。只有具备高效灵活、可移植、可扩展的软件体系架构,为华睿DSP软件的开发提供便捷的开发、调试、监控、管理工具,才能有效保障华睿DSP在产品中的广泛应用。

本文分析了华睿1号DSP软件体系架构的不足,结合国内外主流的软件开发标准,构建了面向华睿DSP的软件体系。该体系架构综合考虑了软件的可扩展、可移植、可跟踪等多方面需求,对可视化软件开发环境、运行管理层、中间件层、支撑软件层等各层次的主要作用及实现手段进行了研究,并以华睿2号DSP平台为例设计了每层的技术方案,构建了完善的DSP软件体系,为华睿DSP的推广应用奠定了基础。

[1]张晓蓓,舒广,李妍. 外军信息化建设自主可控方略管窥[C]// 2010军事电子信息学术会议论文集(上册). 天津: 中国电子学会通信学分会, 2010: 308-312.

ZHANG Xiaobei, SHU Guang, LI Yan. Look into foreign military information construction of self-controlled strategy[C]// Military Electronic Information Conference. Tianjing: CIECS, 2010: 308-312.

[2]LUNDGREN W, STEED J, BARNES K. Integrating the hardware description with gedae's single sample language to generate efficient code[J]. Designing Techniques of Posts & Telecommunications, 2011(7): 1-5.

[3]LUNDGREN W. Gedae′s automated management of hierarchical memories on multicore processors commercial tutorial[C]// 2008 IEEE International Symposium on Parallel and Distributed Processing. Miami, FL: IEEE Press, 2008: 1-2.

[4]王宏, 柴天佑, 丁进良,等. 数据驱动的故障诊断与容错控制:进展与可能的新方向[J]. 自动化学报, 2009, 35(6): 739-747.

WANG Hong, CHAI Tianyou, DING Jinliang, et al. Data driven fault diagnosis and fault tolerant control: some advances and possible new directions[J]. Acta Automatica Sinica, 2009, 35(6): 739-747.

[5]JANKA R, JUDD R, LEBAK J, et al. VSIPL: an object-based open standard API for vector, signal, and image processing[C]// 2001 on Acoustics, Speech, and Signal Processing IEEE International Conference. Salt Lake City, UT: IEEE Press, 2001, 1(2): 949-952.

[6]LEBAK J, KEPNER J, HOFFMANN H, et al. Parallel VSIPL++: an open standard software library for high-performance parallel signal processing[J]. Proceedings of the IEEE, 2005, 93(2): 313-330.

[7]VRENIOS A. Parallel programming in C with MPI and openMP [book review][J]. IEEE Distributed Systems Online, 2004, 5(1): 7.1-7.3.

[8]LEE S, MIN S J, EIGENMANN R. OpenMP to GPGPU: a compiler framework for automatic translation and optimization[J]. Acm Sigplan Notices, 2009, 44(4): 101-110.

[9]李焱,张云泉,王可,等. 异构平台上基于OpenCL的FFT实现与优化[J]. 计算机科学, 2011,38(8): 284-296.LI Yan, ZHANG Yunquan, WANG Ke, et al. Implementation and optimization of the FFT using OpenCL on heterogeneous platforms[J]. Computer Science, 2011,38(8): 284-296.

[10]刘希. DDS中间件技术在作战系统网络中的应用[J]. 计算机光盘软件与应用, 2013(12): 133-134.

LIU Xi. Application of DDS technology in combat system network[J]. Computer CD Software and Applications, 2013(12): 133-134.

[11]谷青范, 康介祥, 冯国良,等. 动态自适应DDS实时中间件的研究与实现[J]. 计算机科学, 2012, 39(7): 36-38.

GU Qingfan, KANG Jiexiang, FENG Guoliang, et al. Research on implementation of dynamic adaptive real-time middleware based on DDS[J]. Computer Science, 2012, 39(7): 36-38.

[12]VINOSKI S. CORBA: integrating diverse applications within distributed heterogeneous environments[J]. IEEE Communications Magazine, 1997, 35(2): 46-55.

[13]HENNING M. The rise and fall of CORBA[J]. Component Technologies, 2006, 4(5): 28-34.

[14]高会生,韩勇,何玉钧. 实时CORBA在用电信息采集系统中的应用[J]. 计算机应用与软件, 2014, 31(6): 79-83.

GAO Huisheng, HAN Yong, HE Yujun. Application of real-time CORBA to power consumption information acquisition system[J]. Computer Applications and Software, 2014, 31(6):79-83.

[15]FORUM M P. MPI: A message-passing interface standard[S].

[17]ZOUNMEVO J A, AFSAHI A. A fast and resource-conscious MPI message queue mechanism for large-scale jobs[J]. Future Generation Computer Systems, 2014, 30(30): 265-290.

[18]GONG Y, HE B, ZHONG J. Network performance aware MPI collective communication operations in the cloud[J]. IEEE Transactions on Parallel & Distributed Systems, 2015, 26(11): 3079-3089.

何国强男,1977年生,高级工程师。研究方向为雷达信号处理、超大规模集成电路设计。

陈勇男,1986年生,工程师。研究方向为嵌入式软件架构设计、应用支撑软件设计。

A Study on Software Architecture for Huarui DSP

HE Guoqiang,CHEN Yong

(Nanjing Research Institute of Electronics Technology, Nanjing 210039, China)

Based on the present situation and development trend of Huarui (HR) DSP, the shortcomings of the existing software architecture are analyzed. Aiming at the application requirement for expansibility, transplantability and traceability, the new hierarchical software architecture is designed, which focuses on the technology of visualized multi core parallel development environment, the running management layer, the middleware layer and supported software. In the architecture, each layer is relatively independent and low coupling with others, and open interfaces with the international standards are adopted. It makes sure that the architecture is expansible and transplantable, and has a complete ecological system for HR DSP. It is the foundation for the popularization of HR DSP.

software architecture; Huarui DSP; multi core; running management; middleware

10.16592/ j.cnki.1004-7859.2016.09.004

何国强Email:guoqiang_he@sohu.com

2016-04-26

2016-06-28

TP971.1

A

1004-7859(2016)09-0017-06

猜你喜欢
中间件可视化架构
基于FPGA的RNN硬件加速架构
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
功能架构在电子电气架构开发中的应用和实践
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
RFID中间件技术及其应用研究
基于VanConnect中间件的设计与开发
LSN DCI EVPN VxLAN组网架构研究及实现
一种基于FPGA+ARM架构的μPMU实现