APP下载

一种新型可重构星载计算机体系架构研究

2014-04-14高兰志崔艳鹏

火控雷达技术 2014年3期
关键词:体系结构计算机系统重构

高 骥 高兰志 崔艳鹏 白 洁

(1.北京宇航系统工程研究所 北京 100076;2.山东航天电子技术研究所 山东烟台 264003 3.西安电子科技大学 西安 710071;4.中国运载火箭技术研究院 北京 100076)

0 引言

星载计算机作为卫星、飞船等航天器的核心系统之一,航天任务对星载计算机的性能和功能要求已愈来愈高,而且随着航天任务的日趋繁多,星载计算机的功能日益复杂,性能要求越来越高、体积越来越小。采用传统的设计方法已无法满足星载计算机的高性能、小型化和功能的高度集成化,亟需采用新的系统设计方法满足星载计算机研制需求。近年来,在密集型计算领域兴起的片上多核系统MPSOC(Multi-Processor System On Chip)为小型化、高性能星载计算机的设计提供有效的解决方案,基于可编程逻辑器件FPGA 的可重构资源,将异构多应用微处理器(Application Processor,AP)、可重构模块(Reconfigurable Module,RM)、专用ASIC 部件、I/O接口等资源构成异构并行的处理系统,使系统能够灵活地融合多种不同的计算资源,计算机系统中的某种(或某些)资源能够很大限度地满足星载计算机的不同应用模式和在轨数据处理的要求,达到较高的性能。系统中集成的一个或多个RM 能实现硬件的功能改变,各模块之间的互连关系可以通过配置和动态调节。这种可变性能使系统适应更大范围的应用需求,向一体化、小型化、可搬移、高性能的方向发展。

本文针对未来航天任务对星载计算机的功能复杂化、体积小型化的要求,对基于MPSOC 的可重构星载计算机进行设计,给出具体的体系结构与功能实现方式,并根据星载计算机的新型体系结构给出了基于软硬件协同的星载计算机设计方法。

1 相关工作

国外基于MPSOC 的可重构星载计算机起步较早,美国国家航空宇航局NASA 将可重构计算技术的航天应用列入新的评估项目,相关评估的结果表明:基于FPGA 的可重构处理系统应用航天具有比传统低性能的微处理器,甚至比抗辐射加固的商业化微处理器更高的性能,可以通过重构实现灵活的系统功能以及通信协议等特殊功能。目前,国外已有将可重构计算机应用于航天器电子系统设计的成功实例,例如澳大利亚CRCSS 的FedSat[1]以及NASA 的可重构星载电子平台SRC-6E[2];德国斯图加特大学小卫星计划的第一颗微小卫星——Flying Laptop 也采用了基于FPGA 的可重构计算技术设计星载计算机[3]。我国目前尚没有将可重构计算技术应用于航天领域的实例。

可重构计算机领域的另一项核心技术是可进化系统技术(EHW)。EHW 可简单定义为:借助软硬件技术将智能算法应用于可编程器件构建智能系统的一种设计技术。可重构星载计算机的特点在于利用“自适应”的思想,使星载计算机软硬件具备分析、判断故障能力,实现自我诊断,并通过动态、自主重构,在故障条件下继续正常工作,保障在轨计算机自动完成预定任务。

美国喷气推进实验室JPL 依据EHW 技术已开发出几种验证平台(包括控制器以及其他部件)。高速、大容量可编程器件成为可重构计算机首选的硬件平台。国外目前采用的可编程器件有FPGA、FPAA(Field Programmable Analog Arrays 现场可编程模拟阵列)、FPTA(Field Programmable Transistor Arrays 现场可编程晶体管阵列)以及可编程混合信号阵列,其中又以FPGA 应用最为广泛。星载计算机容错体系结构与系统重构技术的研究,使星载计算机能够满足深空探测、空间机器人、空间攻防技术发展需要,确保星载计算机能够尽量少地依靠地面指挥系统,实现自主故障诊断、故障隔离和系统重构。英国Luton 大学为马特拉·马科尼公司研制的一个试验性的地球敏感器项目就采用了SoC 技术和系统重构技术[4]。

2 基于MPSOC 的可重构星载计算机体系结构

2.1 多处理器片上系统MPSOC 概述

多处理器片上系统(MPSOC)一般由多个处理器单元、专用功能模块甚至混和信号电路组成,构建一个复杂的集成计算机系统,从而满足计算机系统在计算性能、功耗、实时性以及成本等方面的需求。MPSOC 计算机系统通过定制体系结构来满足不同应用在成本和功耗等方面的需求,已广泛地用于通信、消费类电子产品和网络多媒体等诸多领域。

MPSOC 多处理器片上系统一般由一个标准处理器主核和多个专用处理芯片(如DSP 和其他支持专用运算的处理器核组成),多核之间通过高速总线互联,每个核都有对应的一块共享内存,通过片上网络构成一个整体,和外部的内存进行数据交换[5]。如图1所示。典型的MPSOC 由三类组件组成:处理器单元,包括处理器、DSP 或ASIC 用于执行计算任务;存储模块用于保存数据;互连网络用于组件间通信。系统中可以有不同类型的可编程处理器(如CPU 和DSP),也可以有专用处理器单元(如ASIC)来完成单个功能。片上存储结构和通信互连结构也是异构和定制的,从而满足嵌入式应用在性能和实时性上的需求。

图1 基于MPSOC 的计算机体系结构

2.2 可重构计算机体系结构概述

可重构计算机(RCS,Reconfigurable Computing System)是指基于可编程器件实现片上系统或者某种应用的算法加速。由于可编程器件具备电路重构的特征,从而引起片上系统的系统结构的重构改变或者应用算法的改变,它的出现较好的解决了算法运行在通用计算平台上的性能问题和算法固化在ASIC 上的不能修改的问题[7]。可重构计算机系统通常基于通用处理器架构的主处理器和基于可重构电路技术的可重构硬件组成,可重构计算机一般采用可编程器件作为可重构硬件重构和实现的基础,目前主要是采用FPGA,随着FPGA 的容积和性能的发展,可重构计算机的功能和性能也越来越强。典型的可重构计算机结构模型如图2所示,由通用处理器、微处理器MPU、专用ASIC、数字信号处理器DSP、存储器MEM 和I/O 组成,通过可重构片上互联网络NoC(Network on Chip)实现不同资源之间的互联。

2.3 基于MPSOC 的可重构星载计算机系统设计

根据星载计算机的需求,基于可编程逻辑器件和标准处理器(核)设计如图3所示的多处理器片上计算机系统,该计算机系统由标准的处理器CPU0、CPU1 和多个专用的应用处理器系统组成,同时在系统还配置重构管理模块和可重构桥接I/O 接口,可重构管理模块完成计算机的功能重构管理功能,通过配置片上网络NoC 的互联结构和应用处理器功能模块,实现星载计算机功能重新配置,可重构桥接I/O 实现了标准处理器、片上应用处理器与外部特定I/O 接口(如片上PCI总线到外部接口的转换)的转接,同时实现多个处理器共享同一外部I/O接口的功能。

图2 可重构计算机体系系统RCS 的结构模型

图3 基于MPSOC 的可重构星载计算机体系结构

该计算机系统是由多个标准处理器模块(CPU0、CPUl)、全局存储器模块,片上网络NoC 和多个专用应用处理器构成的并行计算系统。标准处理器模块负责计算机系统的运行计算和管理任务,在计算机系统充当系统管理的角色;通过FPGA 实现片上应用处理器(Application Processor,AP),每个AP 完成特定的应用功能,完成星载计算机的专用功能,其功能类似计算机外围设备中ASIC 完成的功能,如高级传感器预处理器AP 完成传感器数据的采集和预处理功能,健康监控和预测管理功能处理器AP 根据其他处理器提供的数据对计算机的健康状况进行监控,并由基于模型的控制处理器AP 根据这些数据对计算机的状态进行预测和管理。根据星载计算机的应用场合,片上应用处理器AP 可以专用于加速具有规则计算模式的特定应用算法(如乘累加算法、对称密码算法等),或者实现数字信号处理算法核(DSP)、序列密码算法及其它随机逻辑电路。

AP 的配置过程由标准处理器发起,配置数据可存于全局存储器、处理器的局部存储系统.或AP 的局部存储器中;标准处理器通过配置指定AP 功能后,可以通过片上总线NoC 向其传送命令,启动并完成一定数据集在标准上的快速处理,源数据和计算结果可传递于全局/处理器局部存储器与AP 局部存储器之间。全局存储模块提供全局可见的存储空间,在硬件上,所有的标准处理器节点和AP 均可访问全部存储区域,而在软件上,所有处理器都把此存储区域映射为各自I/O 空间的一部分,某个标准处理器作为“主处理器”负责全局存储区域的划分和管理,解决数据冲突,并配合片上网络中的硬件逻辑来完成存储区保护。

计算机系统对外提供统一的I/O 接口,主处理器和AP 均通过可重构桥接I/O 模块与外界进行接口。桥接模块实现了片上网络NoC 或标准处理器总线(如PCI总线)到特定I/O 接口的转接,因此该模块由进行总线协议转换的桥接部件及特定I/O 接口控制器两部分组成。这使得标准处理器和AP 均能通过转接共享的访问不同I/O 接口,提高了对外连接的适应性。

重构管理模块RC 是基于MPSOC 的可重构计算机系统重构功能的核心。因为计算机通过片上网络NoC 将异构的处理器、AP 等计算机节点、全局存储模块等进行的内部互连,以提供模块间高速的数据传输通道。可重构计算机功能的转换也通过配置片上网络NoC 的互联关系、AP 的功能配置实现计算机系统功能的转换。重构管理模块RC 负责计算机系统中所有AP 配置数据的传输和具体MPSOC的配置过程;它负责解析系统定义的各种配置命令和处理命令,进行冲突仲裁、资源分配和保护,并记录传输状态。

基于MPSOC 的可重构星载计算机可以在不同的级别上实现重构:在体系结构级,通过调整各个芯片之间的互连关系,可以针对特定应用要求更合理地分配资源,实现灵活的软硬件划分,形成可重构并行处理系统;在部件级,专用AP 内部可以实现功能单元问静态或动态的可重构通路,以及单元内部的功能重构,形成粗粒度的可重构计算结构,可有效加速特定算法的执行;在逻辑级,细粒度重构方式实现对AP 进行静态或动态配置,定制程序需要的特定功能,实现高度并行的功能单元,可灵活提高星载计算机的并行执行速度。

使用多处理器技术设计星载计算机,具备很多优势,首先,加速系统的多任务计算能力,因为在计算机中每个应用处理器AP 都有独立的cache、与系统总线独立的接口,并且操作系统OS 拥有足够的资源用进行密集的并行任务处理,从而实现了处理性能的显著提高。

多处理器系统的最优化需要运行在该系统中的所有操作系统OS 和应用程序支持称之为线程级并行(Thread-Level Parallelism,TLP)的技术。线程级同步是操作系统和应用程序支持多线程的运行,线程作为一段程序可以独立于其他软件模块而独立运行,从而提高基于MPSOC 的计算机系统的运行效率。

另一方面,考虑到MPSOC 将不同的处理事务集成到多个应用处理器中,其结果是使用更少的处理器和更小的印制板面积。在系统设计实现时可以最小化台面面积,从而减小计算机重量、印制板大小,从而可以满足航天器小型化、轻型化的要求。

其次,使用MPSOC 及时可以简化在现用硬件上添加新的功能,在系统中预留了空闲的资源用于未来的系统的扩展和升级。当系统中应用处理器AP、标准处理器和其他分布式处理单元之间的关键系统接口确定以后,在确定的实时环境下的系统设计可以采用即插即用方法进行系统设计。

3 基于MPSOC 的计算机软硬件联合设计方法

传统的星载计算机设计流程如图4所示,在传统的计算机设计方法中,软硬件联合设计方法很少使用,系统软硬件的划分主要依赖于开发人员的工程经验,考虑因素也主要是已有的软件或硬件,另因缺乏对划分结果的仿真分析,因而做到软硬件划分最优比较困难。在星载计算机系统要求多功能、低成本、小型化的发展趋势下,传统设计方法不仅降低了设计效率,而且计算机的性能提升也出现了瓶颈。为提高星载机设计设计效率和任务执行并行度,在基于MPSOC 的星载计算机系统设计时,采用了软硬件协同设计的设计方法,充分分析系统功能需求,在功能满足需求、成本最小化的基本原则下对计算机系统进行软硬件分割。

基于MPSOC 的星载计算机软硬件协同设计方法的流程如图5所示,星载计算机软硬件协同设计方法采用体系结构描述语言ADL(Architecture Description Language)描述系统行为[8],并在此基础上自动划分软硬件,硬件划分中在划分为多种应用处理器,然后分别用语言设计软硬件,并将其综合后进行功能验证和性能预测等仿真结果进行确认,若无问题则详细设计软硬件。

图4 传统的星载计算机软硬件设计方法

在系统行为描述阶段,系统将以最直接的方式描述。此时,不涉及系统的实现。在此阶段,需对整个系统行为进行分析验证,以期在设计的开始阶段就能发现系统行为要求中的错误。之后,对系统行为描述进行软硬件的功能划分。根据系统的功能,将系统分为互连的多个应用处理器AP,每个应用处理器作为独立的处理器系统用于执行功能相对独立的特定行为。同时需要确定应用处理器、标准处理器之间的互连关系和接口标准,完成计算机系统的结构模型描述。在完成系统的结构描述后,同样需要进行验证,以确认结构描述与行为描述的一致。软硬件划分在结构描述完成后进行,以确定各部分功能是由单独的应用处理器来完成,还是由计算机系统的标准处理器来完成。更重要的是,软硬件划分后,需预测系统的性能和灵活性等参数,以评估软硬件划分,甚至应用功能划分的合理性。若划分不合理,则需重新进行软硬件划分或功能划分,并重新做评估。如此循环直至获得最优软硬件划分方案。完成软硬件划分后,就可细化各模块(包括应用处理器AP、标准处理器软件功能)、综合直至虚拟器件原型(包括软件)。整个细化过程中,经过多次进行软硬件的协同验证,以及时发现细化中的错误。在到达器件原型级后,需对各硬件原型进行设计并是以MPSOC 的方式实现,最后通过软硬件协同设计完成最终的实现。在应用处理器的设计上,某些有厂商提供的内核如DSP、MCU 等,可直接进行例化;对自主设计的专用应用处理器系统,还需作进一步综合和布图等。整个设计结束前,还应对设计进行底层的软硬件协同验证和仿真,最终确认设计是否满足功能要求和条件约束。在系统设计过程中对计算机扩展功能的分析和综合,设计MPSOC 可重构管理模块,建立不同工作模式下的重构配置策略,在计算机系统功能需要改变时通过重构管理模块实现计算机的重新配置。

采用基于软硬件协同设计的星载计算机设计方法,能够在计算机设计早期就能实现软硬件的交互,最大限度地挖掘计算机系统软硬功能之间的并发性,优化了计算机软硬件的协同和分工,避免因独立设计软硬件体系结构导致的性能无法提高、体积无法减小等弊端。

4 总结

基于MPSOC 的可重构星载计算机设计通过融合多种不同的计算资源,能够使星载计算机根据其特定的应用功能分配计算机资源,满足复杂的应用模式和处理要求,同时提高了星载计算机任务处理的并行性、提高运行效率。通过定义硬件功能的在线重构策略,能实现硬件的功能在轨动态重构,通过标准处理器和重配置管理模块,能有效支持计算机内部多个应用处理器和片上通信网络的配置及重构控制,这种可重构特性使系统能适应星载计算机在不同运行模式和应用场合下的应用需求,使计算机向小型化、高性能、智能化的方向发展。通过基于软硬件协同设计方法对星载计算机应用功能进行划分,优化了计算机软硬件的协同和分工,提高了星载计算机的设计效率和计算性能。基于MPSOC 的可重构星载计算机设计,为未来航天用计算机的系统设计提供高效而快捷的技术途径。

[1]GRAHAMC,PETKOVIKM,RUSSELLS,eta1.The Fed Sat Microsatellite [EB/OL].[2008-01-15].http://www.itr.unisa.edu.au/research/crcss/fedsat_microsatellite.pdf.

[2]EASMEA,MOHAMEDT,TAREKEG,et al.Aneffieient implementation of automatic cloud cover assessment(ACCA)on a reconfigurable computer[EB/OL].[2008-03-05].http://www.esto.nasa.gov/eonferences/estc2005/papers/a9p1.pdf.

[3]MONTENEQROS,ROSER H P,HUBER F.BOSS:Software and FPGA Middleware for the"flying laptop" Microsatellite[C]//European Space Agency,Proceedings of DA-SIA.[s.1.].2005.

[4]李仁发,刘彦,徐成.多处理器片上系统任务调度研究进展评述[J].计算机研究与发展,2008,45(9):1620-1629.

[5]杨孟飞,华更新.空间计算机技术的现状和未来发展趋势[C].中国宇航学会首届学术年会,2005,423-429.

[6]郝沁汾,尚利民,祝明发.可重构计算机的发展探讨[C].2007年全国高性能计算学术年会论文集,2007,111-117.

[7]武文权.可重构并行小卫星星载计算机体系结构设计[D](博士).上海:中国科学院上海微系统与信息技术研究所,2004.

[8]高晓清.基于ADL 的抽象级嵌入式系统设计方法研究[J].计算机工程与设计,2010,31(4):3229-3232.

猜你喜欢

体系结构计算机系统重构
视频压缩感知采样率自适应的帧间片匹配重构
长城叙事的重构
高盐肥胖心肌重构防治有新策略
关于不法分子冒充《小型微型计算机系统》名义诈骗的严正声明
足球机器人并行行为组合控制体系结构分析
IBM推出可与人类“辩论”的计算机系统
关于不法分子冒充《小型微型计算机系统》名义诈骗的严正声明
计算机系统集成实施与项目管理途径分析
北京的重构与再造
作战体系结构稳定性突变分析