摘要

本文着重介绍了采用可重构SpaceCube系统来解决各种空间飞行任务的复杂应用需求的方法和有效性。SpaceCube是一个可重构的、模块化的、紧凑的、多处理平台,用于需要极高处理能力的空间飞行应用程序。SpaceCube系统适用于大多数任务应用,特别是那些需要大量计算和数据的应用,如仪器科学数据处理。我们将展示如何使用SpaceCube混合处理架构来满足传统飞行处理器无法满足的数据处理性能要求。
本文讨论了航天计算机系统灵活的计算体系结构及其相对于其他航空电子系统的固有优势。SpaceCube v1.0处理系统拥有两个商用Xilinx Virtex-4 FX60的处理器, 每个都嵌入了两个PowerPC405处理器。该FPGA采用了一种创新的背对背方式,在保持两个FPGA的额外优点的同时,减小了电路板设计的尺寸。所有的SpaceCube v1.0卡都是“4x 4”,产生了一个小而强大的混合计算系统。该体系结构利用Xilinx FPGAs、powerpc和必要的支持外设来最大化系统的灵活性。模块化的系统,增加了灵活性。每张卡片都符合一个自定义的机械标准,允许在同一个盒子里堆叠多张卡片。
本文将详细介绍SpaceCube在多个航空飞行系统中的应用,包括哈勃太空望远镜(HST-SM4),一个国际空间站(ISS)辐射试验台实验和为两个独立的国际空间站增加有效载荷的主航空电子系统。每个任务都有不同程度的数据处理复杂性、性能要求和外部接口。我们将展示用于最小化物理硬件、FPGA设计、嵌入式软件接口和测试所需更改的方法。本文将总结重要的结果,因为他们适用于每一个任务的应用。在HST-SM4应用程序中,为了满足计算速度的要求,我们利用FPGA资源将图像处理算法的某些部分的速度提高到标准空间处理器的25倍以上。对于国际空间站轨道上的辐射实验,主要目的是表明我们可以依赖商业空间环境中的FPGA和处理器。我们描述了我们的FPGA和处理器的辐射缓解策略,这使得我们的8个powerpc在4年的时间内,在99.99%的时间内都是可用的,并且没有错误。这个积极的数据证明了SpaceCube在国际空间站中的稳定性,可以替代当前国际空间站中使用的速度较慢的计算机。本文将展示我们如何快速地重新配置SpaceCube系统,以满足更严格的可靠性要求。

引言

SpaceCube项目的目标是提供10倍到100倍的性能提升,以改进机载计算机计算能力,同时降低相对的功耗和成本。SpaceCube基于Xilinx Virtex系列FPGA,包括处理器、FPGA和数字信号处理(DSP)资源。:利用这些处理元素生成一个混合的科学数据处理平台,该平台通过在元素之间分配计算功能,来加速科学数据处理算法的执行。这种方法可以实现以前局限于地面系统的复杂机载功能,如机载产品生成、数据减少、校准、分类、事件/特征检测、数据挖掘和实时自主操作。该系统可在飞行中进行完全可重构,包括数据参数、软件和FPGA配置,可通过地面命令文件传输或自动响应仪表数据流中检测到的事件/特征。

背景

SpaceCube处理系统2006年启动,最开始做出了一个原型,与典型的空间处理器相比,展现了其计算能力及其固有的可重构优势。美国国家航空航天局认识到这项技术的明显潜力,并提供了所需的资金,以提高太空飞行应用的技术成熟程度(TRL)。具体来说,是哈勃太空望远镜维修任务管理团队将SpaceCube作为一种名为Relative的实验有效载荷的主要航空电子设备导航传感器(RNS)[3]。SpaceCube在RNS系统中的使用将在本文后面详细描述。SpaceCube的版本最初是在2006-2009年的时间框架内开发的,被称为SpaceCube v1.0。后续版本已经开发了[1];而Space Cube v1.0的设计和使用将是本文的重点。

混合飞行计算

对高性能空间处理系统的需求日益增长,仪器的精度和速度能力正在迅速发展,这对系统的计算节点提出了更严格的电气接口和数据带宽要求。另外,机载处理系统的数据产品,在一些情况下,应该是实时的,这是现在的一种普遍的需求。
车载处理在两个方面提高了系统效率和功能。首先,通过允许飞船对数据进行预处理,只用将更小数据集的的或压缩的数据量发送到地面,可以增加仪器打开和收集数据的时间。

对于高速率的传感器,现在典型的方案是限制他们的数据收集到10-20%的任务时间来适应有限的下行带宽。随着仪器性能的提高,这个问题还在继续增长。其次,飞船上的应用程序应该能够对处理后的数据做出自主决策,这种能力为太空应用开辟了更具挑战性的任务目标。

典型的空间处理系统通常由一个抗辐射处理器组成,例如:BAE RAD750、Aeroflex LEON3FT、BroadReach BRE440、或者提供不超过300DMIPS的通用动力公司的ColdFire。这些标准处理系统非常擅长提供诸如命令和数据之类的一般服务操纵(C&DH),制导和导航控制(G&NC),简单的仪器控制。:对于需要在高带宽或大容量数据源上实现复杂算法的快速计算的应用程序,这些处理系统不是很适合。
在典型的空间处理系统中,另一个常见的组件是反熔丝FPGA,它通常具有很好的抗辐射能力。相应的电路板和FPGA架构是为一组非常具体的任务需求而设计的。然而,这种架构设计非常困难,为了可以移植到多个任务、动态功能需求或新的发射后任务目标或更正,更改架构的成本非常高。

需要一种新的办法来应付空间处理系统日益增加的挑战。一个混合计算系统,结合了多个处理器,可重新配置FPGAs是一种灵活的接口选项,具有模块化的体系结构,它将填补今天的航空电子设备需求和过去典型的独立顺序处理体系结构之间的差距。该混合的计算架构能够保留多用途计算机的功能,能够运行典型的C&DH和G&NC。然而,除了这些类型的任务之外,它还具有支持需要FPGA协同处理器处理数学运算的复杂任务的优点,比如FFT,矩阵操作,并行浮点运算,或实现高级接口,如照相油墨,空格线,千兆以太网,或支持自定义接口的实现。

这种系统的模块化允许快速适应不断变化的航空电子设备需求。例如,一个模块化系统可以支持添加一个大容量存储卡、一个自动逸的电气接口,或者扩展所需的I/O带宽。模块化和可重构的系统为不同的任务应用或后续任务使用相同的基本航空电子设备提供了很高的可能性,即使接口和计算需求有很大的不同。

SpaceCube适合于混合的、可重构的、模块化的空间处理系统。这篇论文将展示如何通过在新的任务中重复使用相同的基本系统来降低成本和进度。硬件体系结构的重用大大减少了前端的工作量重复工程(NRE)的成本和时间与从头到尾建立一个新系统的新需求。

SpaceCube V1.0描述

SpaceCube v1.0系统是一个紧凑、模块化、低功耗、可重构的多处理平台,适用于需要极高计算能力和或高数据速率/体积接口的空间飞行应用系统。SpaceCube v1.0处理系统是基于Xilinx的Virtex-4 FX60 FPGA ,它包含了两个PowerPC405处理器的嵌入式硬件IP。

这个特定的FPGA是经过辐射测试,包括但不限于Xilinx辐射测试协会和GSFC辐射效应与分析组[10-16]。SpaceCube的设计充分利用了这一工作,以适当地减轻系统内的辐射影响,本文稍后将对此进行讨论。

(A) 模块化的叠加结构

SpaceCube v1.0机械设计使用自定义堆叠架构,该系统是由各种切片堆叠在一起,使用IEH公司的一个122针连接器[7]。这个系统使用双冗余I2C总线用于栈中所有卡之间的低数据速率传输。在总线上,每一张卡都有一个单独的地址。基本系统需要一个电源片和一个处理器片。该架构允许在必要时添加特定的任务卡。当所有的切片配好后,用四根棒子把盒子固定在一起。图 1描述了SpaceCube v1.0模块架构,这个版本的系统需要5片卡(2个电源,2个处理器,1个I/O)。图 2显示了与图 1中的模型相对应的飞行框的图片。这个配置的系统是7.5磅,5英寸x 5英寸x 7英寸大小[9]。

系统中的每个电路板都是4英寸×4英寸大小,一个机械托盘将卡固定在适当的位置,并允许堆叠连接器通过切片的底部。将卡边缘固定到其各自的片外壳上。除了结构安装,卡边缘也是每个卡的热接口。图 3展示了飞行处理器卡片外壳。

图 1 SpaceCube v1.0模块化的分层结构

图 2 SpaceCube V1.0飞行系统

图 3 处理器卡片的外壳

(B) 单片设计

电源板由两块电路板组成,低电压电源卡(LVPC)具有典型的电磁干扰滤波器和在太空飞行电源中的DC/DC组件。LVPC将接受28V +/- 8V,并提供5.0V、3.3V、2.5V, 1.5V, +/- 12V到堆叠连接器。在通电时,2.5V、3.3V和5.0V被自动打开,以支持处理器卡上的主控制器电路。LVPC支持1.5V、2.5V、3.3V + / -12 V,处理器卡上的主控制器通过命令切换对这些服务的支持Xilinx FPGA。处理器卡有一个定制的点负载电路,用来调节Xilinx设备所需的核心电压1.2V。

电源片中的第二张卡是数字控制卡(DCC)。DCC支持多种功能,包括收集本地电压和温度数据,SpaceCube lOBASE-T以太网和1553接口,控制处理器复位和电源损耗报警信号,并在LVPC上切换负载服务。一个Aeroflex公司FPGA用于控制这些功能,并通过I2C总线与处理器卡进行通信。

LVPC和DCC卡一起堆放在一个封闭的片内,LVPC组件需要一个散热器来处理DC/DC块中的电源损耗。图4展示了电源片的组装。在左边,DCC位于外壳的底部,两个导轨安装在DCC上面,机箱的边缘。接下来,LVPC与DCC板配合固定在侧轨上,LVPC如右图所示,散热器安装在其电路卡组件上。

图 4 DCC和LVPC的电源片组装

(C) 处理器卡设计

处理器卡的特点是两个Xilinx Virtex-4 FX60器件背对背的安放, 图 5展示了处理器板充分利用了电路板的两边。每个Xilinx FPGA有两个嵌入式Powerpe405,每个都能支持750+ DMIPS。这导致每个卡有四个处理器,从而每张卡总的处理能力为3000DMIPS,另外有113760逻辑单元,256个DSP资源和8352Kb片上RAM资源。
鉴于有限的板空间,该卡具有良好的外设平衡功能,以支持Xilinx FPGA和处理器。外设包括4个256MB的同步动态随机存取存储器(SDRAM), 两个冗余的512MB NAND闪存,20个可配置的全双工的LVDS/RS422接口,42个堆叠连接器I/O,以及所需的时钟和电源电路。前面板I/O连接器可根据每个应用程序的需要进行配置。图6展示了处理器卡设计的高层组件图。

图 5 处理器卡的顶层和底层

图 6 处理器卡的顶层框图
Aeroflex公司服务设计——两个背对背的Aeroflex FPGA通过I2C命令控制切换电源轨道的电源顺序、复位控制、看门狗定时器、任务运行计时器、擦写板内存, Xilinx配置,非易失性存储访问,健康和状态监控。为了提供所有这些服务包括重新配置,重复使用一次性可编程(OTP)的Aeroflex FPGA中的嵌入的8位软核微控制器(SpaceRISC),用于替代使用复杂的状态机。这个设计决策不仅在增强所提供的服务方面非常有用,而且还允许将调试和测试代码加载到OTP FPGA中,从而更好地促进初始板测试以及系统集成和测试活动。

SpaceRISC是基于一个标准的商业设备,它只能处理32KB SRAM中的16KB的地址。我们开发了一种内存控制器,把这种限制变成了一种优势,可以有条件地操作内存的上半部分或下半部分,同时为读写RAM的“非活动”部分提供一个侧通道。这有助于在当前飞行应用程序仍在运行时对微控制器进行完全重新配置。SpaceRISC的第一阶段引导加载程序(FSBL)储存板上的抗辐射的16KB PROM里。SpaceRISC不能直接从PROM执行代码,因此创建了一个硬件引导加载程序IP核,以便在SpaceRISC复位之前将数据从PROM复制到外部SRAM。SpaceRISC FSBL将搜索最新的运行状态的应用程序(RT-App)来加载和执行。RT-App以四-三模块冗余方式存储,如果FSBL不能成功加载RT-App,它将退回到以前的版本。RT-App完全能够从地面命令或可选择的配置文件执行引导加载程序序列,可以允许多个RT-App变体存储在flash中,但仍然保持“黄金”引导配置。

当RT-App开始执行时,它将首先检查启动是否是由于看门狗计时器重置或电源上电。在看门狗超时(WDT)事件中RT-App将检查配置表中的一组标志,以确定下一步的行动方向。当前的飞行允许配置WDT的可编程阈值,如果超过该阈值,则返回到“黄金”应用程序代码。在满足标称继续条件RT-App需要通过打开开关电源轨并配置FPGA来启用Xilinx FPGA。用于配置的位流由存储在flash中的配置文件决定。RT-App然后使PowerPC (PPC)处理器停止复位,PPC开始执行它们的第一个阶段引导装载器(PPC FSBL)。然后,PPC FSBL将从SpaceRISC请求第二阶段引导加载程序,我们选择使用UBoot作为我们的第二阶段引导加载程序。然后UBoot将从SpaceRISC请求一个引导脚本,该脚本包含加载飞行操作系统和应用程序所需的命令和文件地址。 这些文件通过一系列“获取文件信息”命令和“flash读取请求”从SpaceRISC中读取。“获取文件信息”命令接收由SpaceRISC转换为flash地址的文件ID。然后SpaceRISC读取文件头并将其发送回PPC, 这个头文件包含了flash中的文件地址信息、CRC长度和映像是否跨多个设备镜像。然后PPC和SpaceRISC执行一系列闪存读请求和响应包,直到所有的数据传输和UBoot可以加载操作系统/应用程序。简化的引导顺序如图 7所示。

图 7 简化处理器引导序列
Flash文件减少出错——众所周知,NAND闪存技术易受辐射单事件影响(SEE),包括单事件扰动(SEU)和单事件中断函数(SEFI)。每个处理器卡闪存模块由四个独立的模组组成, SpaceRISC NAND Flash控制器具有执行镜像读写操作的能力,将相同的文件存储在一个或多个模组中。另外,在软件方面SpaceRISC具有添加三模冗余(TMR)的能力,复制每个文件到每一个模组。对于大多数关键任务数据,如SpaceRISC配置表和软件,我们使用字节级的TMR 的四冗余(QTMR)。

SpaceRISC每次读取三个字节的文件,对数据集(1)执行一系列按位与或按位或操作,然后,这个操作的输出和输入数据集(2)按字节与操作。缓解在相同的位位置发生两次位翻转,导致输出为假阳性的可能性,将投票结果与输入值进行比较,如果任何值与投票输出不匹配,系统将在当前文件偏移量处移动到文件的下一个镜像副本。如果所有副本都表明存在某种错误,我们将使用最后一次测试的投票输出。这与每个页面的四个校验和以及所有文件的校验和相结合,有助于在系统使用之前检测NAND闪存中的多个位翻转。

由于QTMR部分是在软件中实现的,因此需要延长引导时间,以便对较大的文件(如Xilinx位流文件、PowerPC OS和ramdisk文件)使用此方法。为了最小化我们的引导时间,从而增加我们的可用性,较大的映像以DMA读取和传输辅助的四镜像方式存储。如果SpaceRISC接收到一个flash读请求,则验证该请求,如果检测到任何错误,则发送一个NACK包作为响应,SpaceRISC将设置一个flash读取响应并传输包头信息,这是Aeroflex FPGA将从flash中读取数据,并将其直接放入传输缓冲区,同时还将计算数据校验和,该校验和将添加到报头校验和中,以便对响应包进行常规验证。数据传输也NAND flash的禁区,用于存储NAND Flash页面的错误纠正代码,PowerPC中的软件将检查页面是否有效,或者从下一个镜像副本请求一个新页面。
Xilinx配置擦洗——在Xilinx中监视可编程配置位的任务FPGA通常由外部控制器处理。Aeroflex FPGA在SpaceRISC上的设计和处理被认为是满负荷运转。SpaceCube v1.0的Xlinx FPGA包含一个内部的TMR自我配置擦洗器,利用ICAP和FRAME_ECC。Aeroflex FPGA负责启用这项服务。如果它检测并纠正了一个SEU,或者果它发现了一个无法纠正的错误,这是由多位打乱造成的,擦除器核(scrubber core)将会报告Aeroflex FPGAs正在擦写的状态。
未完待续……

Spacecube V1.0:适应多任务应用的可重构SpaceCube处理系统相关推荐

  1. 【V1.0】基于树莓派的OpenCV-Python摄像头人脸追踪系统

    [V1.0]基于树莓派OpenCV的摄像头人脸追踪系统 该系统目前结合了树莓派+51单片机 树莓派主要用于运行Python程序 追踪人脸 同时用GPIO口给出信号 单片机用于控制42步进电机导轨左右移 ...

  2. 【云海轻站可视化DIY建站系统V1.0.28】功能模块+可视化编辑建站系统+商用多开版+插件+公众号

    源码更新日志: [重点]文章列表组件支持更多自定义设置 [插件]每日一文新增独立入口 [优化]普通操作员不显示服务器信息 [优化]优化首次进入页面速度 [修复]表单的身份证校验中小写x不支持的问题 [ ...

  3. 同城智慧红娘相亲交友小程序V1.0.36完整安装包+小程序前端+完整数据库

    查看更多关于 同城智慧红娘相亲交友 的文章 小程序V1.0.36完整安装包+小程序前端! 系统交易虚拟货币:金币 + 钥匙 金币可送礼物 钥匙可查看联系方式 和 每日 配对 系统功能介绍: 1.支持会 ...

  4. 跟涛哥一起学习嵌入式 33:《嵌入式C语言自我修养》书稿V1.0版

    经常有网友要我推荐一些关于嵌入式方面的书,尤其是一些转行学嵌入式的朋友,该看那些书能快速构建嵌入式学习所需要的知识体系呢?嵌入式是一门交叉学科,没有足够的知识储备,上来就学习的话,往往也就成了走过场, ...

  5. AI+Science系列(二):国内首个基于AI框架的CFD工具组件!赛桨v1.0 Beta API介绍以及典型案例分享!

    AI for Science被广泛认为是下一代科研范式,可以有效处理多维度.多模态.多场景下的模拟和真实数据,解决复杂推演计算问题,加速新科学问题发现[1] .百度飞桨科学计算工具组件赛桨Paddle ...

  6. java 开源sns_JEESNS V1.0发布,JAVA 开源 SNS 社交系统

    JEESNS V1.0 发布了,本次更新内容: 增加后台管理员授权与取消功能 增加私信模块 解决在微博页面,左侧微博点赞过后,左侧展示列表小手会变黑,但是右侧热门出小手依然是白色 修复后台添加栏目.文 ...

  7. Kubernetes v1.0特性解析

    kubernetes1.0刚刚发布,开源社区400多位贡献者一年的努力,多达14000多次的代码提交,最终达到了之前预计的milestone, 并意味着这个开源容器编排系统可以正式在生产环境使用,必将 ...

  8. 企业智能化升级之路:CSDN《2017-2018中国人工智能产业路线图V1.0》重磅发布

    2017年是AI之年,人工智能领域多年的努力和积累终于勃发,从政府到民间,从国家战略到坊间热点,从学术圈到资本圈,从主流领导企业到创新独角兽,一时间全社会各个角落关注AI.走向AI.布局AI,AI正在 ...

  9. 开发者AI职业指南:CSDN《AI技术人才成长路线图V1.0》重磅发布

    人工智能浪潮来袭,开发者应该怎么办?2018年1月16日,在刚刚召开的"AI生态赋能2018论坛"上,CSDN副总裁孟岩重磅发布了AI技术职业升级指南--<AI 技术人才成长 ...

最新文章

  1. 芯片刀片服务器,使用“刀片服务器”其实不难
  2. 理解Meta Learning 元学习,这篇文章就够了!
  3. 人脸检测--Recurrent Scale Approximation for Object Detection in CNN
  4. 寒冰linux视频教程笔记8 系统监控
  5. 干货:用Python玩转数据可视化,炫酷图表是这样做出来的
  6. MySQL 的 IFNULL()、ISNULL() 、 NULLIF()、IF() 函数
  7. 【CV学习笔记】图像的计算
  8. python 安装impala包
  9. 【Arduino实验14 红外遥控】
  10. 三角形中重心、内心、外心、垂心向量计算公式
  11. 实战Kaggle比赛(二)——房价预测
  12. Visual Studio 2010旗舰版正式版序列号
  13. 武汉市科技企业孵化器认定条件
  14. 最新版sketch插件怎么安装,3步搞定
  15. laravel的pluck用法
  16. python画魄罗代码_LOL:灵魂画师在这里!玩家手绘冰雪节魄罗
  17. Event Trace for Windows - 事件元数据总览 译(13)
  18. TL5000系列可调谐激光器
  19. stm32毕业设计 单片机万能红外遥控器
  20. 视觉学习笔记5——FAR Planner全局路径规划算法学习研究

热门文章

  1. log4j日志输出到web项目指定文件夹
  2. HDU - 1824 Let's go home
  3. 通过网页来打开app指定页面
  4. 企业信息管理系统(4)_用户查询
  5. Android摄像头开发完美demo---(循环聚焦,缩放大小,旋转picture,查询支持的picturesize, ImageButton按键效果)
  6. 每日美食:清炒木耳山药
  7. Python3 + BeautifulSoup 爬取Steam热销商品数据
  8. java调用银海社保接口_[开源] C# 封装 银海医保的接口
  9. STM32单片机开发实例 基于STM32单片机的智能血压计
  10. android layout html,layoutgravity