APP下载

一种星载信息系统微系统电路设计*

2020-08-12何志敏王佳程利甫何俊李欣欣

航天标准化 2020年2期
关键词:存储空间总线信息系统

何志敏 王佳 程利甫 何俊 李欣欣

(1上海航天电子技术研究所/八院智能计算技术重点实验室,上海,201109;2上海航天技术研究院,上海,201109)

近年来随着集成电路制造水平的不断提升,相同尺寸芯片内部能够集成的元器件数目按照指数速度持续增加,芯片的计算能力和低功耗水平不断提高,基于SoC、SiP等先进集成电路设计技术的微系统电路已经得到广泛应用[1]。

由于宇航领域型号任务的发展需要,星载信息处理系统逐渐呈现出复杂化、实时化、大数据化等特点,从而对星载信息系统的小型化、轻量化、高可靠、高性能提出了发展需求。传统组装方案下,星载电子产品的功能密度与组装密度已基本达到极限,而新一代宇航型号所需的星载信息系统产品,不仅亟需处理性能的提升,还对体积、重量和功耗的减小提出了新挑战[2]。

星载信息系统微系统电路利用大规模集成电路设计技术,把计算机的主要功能集成到一块芯片上,从而大幅提升系统的性能和集成度。目前微系统技术已在民用行业得到广泛应用。在航天领域星载信息系统中,使用微系统技术可满足新一代航天器高性能、一体化的要求,是提升星载信息系统性能的有效途径,也是未来星载信息系统的发展方向[3],能够满足未来宇航领域型号对计算机在自主任务规划、星务管理、平台控制等方面的需求。

1 微系统硬件电路设计

根据宇航任务应用需求进行面向星载信息系统的多核异构微系统电路设计,面向用户需求场景和未来技术发展趋势,形成面向星载信息系统微系统硬件的整体设计方案。

笔者提出的微系统电路以RISC-V指令集双核处理器和大规模国产FPGA为主控核心,此外还包括硬件系统必需的相关外设辅助模块、多层次总线 (系统总线、数据总线和配置总线和总线桥接)、存储器接口 (数据存储器、配置存储器)等。星载信息系统微系统电路组成如图1所示。

图1 星载信息系统微系统电路组成框图

采用基于RISC-V指令集的双核处理器作为计算机控制核心,以满足宇航任务对于星载信息系统微系统电路高处理性能的应用需求。RISC-V指令集的开放、可扩展特性与航天领域对星上计算架构自主可控、高性能、高可靠的需求高度契合,其软件和硬件的生态环境已经可以支持芯片和整个应用体系的开发。RISC-V摒除了以往指令集为了商业兼容而作的种种妥协,作为一款开源指令集,它没有专利问题的限制且高度可定制[4]。

微系统电路集成一片全国产的BQ5VSX95T型号大规模FPGA作为计算机处理核心。该FPGA最高系统工作频率可达450MHz,内嵌时钟管理模块、单块36Kbits的BRAM、可编程FIFO逻辑与纠检错电路。此外,FPGA上还内置一块支持补码乘法运算的DSP 48E核、一路PCIe总线收发器、16路RapidIO接口等丰富外设扩展资源,为整个微系统电路提供了扩展途径。

为满足星载信息系统实际工作需求,微系统电路主要提供外设及配置资源,包括SATA3.0存储接口、1路CAN总线、1路1553B总线接口、2路PCIe高速传输总线、2路RapidIO高速串行总线等。

此外,微系统电路还包括一些通用外部设备,如中断控制器、定时器、UART控制器、PLL锁相环、1个IEEE 1149.1边界扫描控制器(JTAG)、可编程GPIO单元等,以构建完整的星载信息系统微系统功能[5]。

2 微系统电路架构与协作机制

2.1 多总线互连结构设计

为了支持微系统电路多个核心之间的互连,采用多总线结构实现高带宽、低延时的数据传输和配置传输,包括系统总线、数据总线、配置总线和总线桥接单元,并与不同功能模块、存储模块实行差异化的连接。通过差异化的连接,多总线结构有效地区分了应用数据、配置数据和系统控制数据的传输需求,消除了不同数据对总线结构的抢占、等待等问题。

星载信息系统微系统平台包含了CPU处理器、大规模FPGA等执行单元,在执行时会产生大量的应用数据、配置数据和系统数据的访问请求,并在时间和空间上相互交叠。为了匹配多个执行单元的计算能力,满足多层次存储架构的需求,需要多总线互连结构,紧密联系处理器、FPGA及其他外设接口,同时进行高性能设计,在保证高传输带宽的同时保证访问的延时需求。

微系统电路中涉及多个外设单元,其数据交互具有总量小,但对延迟较为敏感的特点,因此需要专门的系统总线连接多外设和处理核。这部分充分借鉴现有高性能SoC总线设计方案,采用成熟的总线协议完成系统互连。另外,由于处理核会部分参与到控制密集型部分的运算中,为了避免应用数据与系统数据相冲突,大量占用系统数据的总线带宽,采用应用数据总线与系统数据总线分离的结构。主处理器会根据数据的不同类型选择不同的总线与其他功能单元进行交互。

应用数据总线连接了主处理器和FPGA,构成了芯片在执行任务时的主要数据交互通道。应用数据交互情况复杂多变,尤其在当前复杂应用场景下,大数据量猝发现象较为突出,因此应用数据总线的设计需要兼顾高带宽和低延时两个设计目标。另外,由于应用数据总线连接的执行单元较多,总线事务占用时间较长,为了尽可能避免对总线控制权的竞争冲突,将会在应用数据总线上开展进一步的优化设计,包括仲裁机制的优化、数据打包传输优化、可抢占式的数据传输优化以及专用和通用分工结构优化等。

在星载信息系统微系统芯片中,配置信息具有一定的数据量,因此需要合理地划分应用任务,减少大块配置信息在系统层面的重复传输。由于FPGA支持动态配置加载,因此配置信息不仅仅在系统初始化时需要访问,在运行期也会产生随机的访问请求。为了减少配置信息与应用数据的冲突和总线竞争,专门设计配置总线的结构。该结构连接了FPGA以及片上的配置数据缓存,从而为运行时的配置数据加载提供专门的高速访问通道,有利于发挥FPGA的动态可重构能力,提高处理性能。

FPGA作为应用处理任务的主要执行单元,在FPGA间设计了专门的高性能互连结构,以满足FPGA和数据总线之间大数据量、低延时的数据交互需求。同时,该结构可以充分利用FPGA内部大量的块状存储器资源和分布式存储资源作为辅助存储空间,对存储空间进行扩展;还可以借助FPGA灵活的可配置逻辑资源,对难以实现的复杂控制逻辑操作进行有效的支持,从而增强处理能力,拓展应用场景,提高处理性能。

2.2 多核处理器锁步技术

星载信息系统微系统为包含处理器与FPGA的多核系统,可通过多核处理器锁步技术研究,实现核间不同任务的工作协同。

星载信息系统上的关键任务在不同核上锁步运行。利用冗余核提高容错能力,非关键任务各自在单核上独立运行,当多个非关键任务同时运行时,实现线程级并行,从而提高性能;关键任务与非关键任务切换时,处理器核间连接关系发生重构。基于这种处理器架构,可以将星载信息系统上要执行的任务进行关键等级划分。高关键等级的任务应尽可能确保不出错,需分配多个核进行多核锁步执行;低关键等级任务可以各自在单核上并行执行。

基于已在ARM Cortex处理器上取得成功的双核锁步技术,在航天领域应用上采取三核锁步处理器架构提升可靠性。三核锁步处理器架构在双核锁步系统上增加一个冗余核来达到提高容错能力的目的。锁步运行的三个核共享Cache,通过多数表决决定最终的输出,这样便使得在发生软错误需要进行重同步的时候无需修正Cache。该处理器架构使得单个核无需具备很好的容错能力,因此单核内部微架构实现可以采用商业上流行的技术,相比于抗辐射加固处理技术拥有更好的性能和能效比。

2.3 层次化存储空间设计及其实现

为了满足大数据的存储需求以及低延时的数据访问需求,微系统电路采用不同类型存储器和管理方式,构成层次化的存储空间设计,主要包括外部存储器、片上数据缓存以及各个处理设备内部的局部缓存和共享存储空间,如图2所示。通过采用多层次数据存储结构,可以最大化地获取存储容量和访问延时之间的平衡。同时,为了满足CPU处理器与FPGA配置的需要,降低配置动态加载的延时,实现低开销的上下文切换,该架构还添加了层次化的配置存储空间,并与数据存储空间共享外部存储接口。

图2 层次化存储示意图

通用信号处理和信息加密等运算在处理数据的过程中,存在部分数据处理的局部性很强,而模块级数据处理前后依赖相对较弱的情况,因此构建分层多级缓存结构,为局部性数据提供低延时的数据访问结构,减少数据的反复搬移,有利于提高处理性能。另一方面,可以根据数据特点构建数据的流传输机制,从而提高数据存取和传输的吞吐率。

为了达到这一目标,星载微系统电路采用多级缓存机制,主要由片上数据缓存空间、CPU处理器与FPGA的局部数据缓存空间和内部的私有数据空间等部分组成。片上数据缓存空间临近主存储器,为CPU处理器与FPGA的共享数据提供动态管理。同时,这一集中式的片上数据缓存空间具有一定的容量,可以较好地利用数据的局部性提供较快的数据访问。CPU与FPGA内部的局部数据缓存处于更高层次,可以为FPGA运算产生的中间数据提供存储空间。本分级缓存架构,在面向项目目标应用提供针对性设计的同时,保证了灵活性,优化了存储传输通道。

3 微系统电路抗辐照加固设计

由于空间复杂环境造成星载信息系统微系统电路故障的多样性和不确定性,容错问题不能在器件和电路层次得到完全解决,通过在较高层次的结构设计进一步提高微系统电路在宇航领域的运行可靠性[6]。

3.1 模块级三模冗余设计

考虑单粒子瞬态脉冲对MHz频率工作下电路波形影响,需要在系统级对电路关键部分进行冗余设计。根据已有的技术基础对部分模块进行三模冗余设计。通过对模块复制,并对三个模块的输入和输出进行选举,检测各模块的工作是否正常。当发现某个模块发生错误时 (假定不存在两个模块同时发生错误的可能性),在较短时间内将正确的状态导入发生错误的模块,从而使其错误得到恢复。

3.2 软硬件协同控制流错误检测

控制流错误是指程序指令的实际执行流与正常执行流的偏离。根据检测错误的不同实现方式,控制流错误检测可分为软件实现 (SWCFC)、硬件实现 (HW-CFC)和软硬件协同实现 (SH-CFC)三类[7]。SW-CFC方法通过插入监督代码实现,没有硬件开销,可移植性好,但插入较多的代码增加了存储开销和性能开销,而且故障覆盖率不高且插入的监督代码本身也可能发生控制流故障。HW-CFC方法一般采用协处理器实现,但在协处理器中存储整个程序的控制流信息需要相当大的硬件资源。SH-CFC方法通过在程序代码中嵌入冗余的预期控制流信息 (特征值),利用专门监督硬件将实际控制流与预期控制流进行比对来实现错误检测。它以较小的性能损失和少量的代码开销实现很高的故障覆盖率,并且硬件复杂性低。

3.3 基于检查点的错误恢复机制

当检测到无法纠正的数据或控制流发生错误时,需要将处理器状态恢复到某一个特定的点,处理器从该点出发继续执行,从而纠正发生的错误。采用软硬件协同的方法主动保存检查点 (包括程序计数器、寄存器文件以及关键数据等)来进行错误恢复,当检测到不可纠正的错误时,恢复以前保存的检查点。而硬件仅需提供错误通知机制,例如触发中断等。

针对星载信息系统轻小型化、高集成化、智能化的发展方向,本文提出了基于SOC/SIP先进集成电路技术的微系统电路。根据宇航应用需求进行微系统电路总体设计,并进行多总线互连结构、多核处理器锁步技术、层次化存储空间设计等微系统架构与核间协作机制研究。最后,考虑空间复杂工作环境,提出星载信息系统微系统电路的结构级抗辐照加固设计方案,满足宇航应用对可靠性的要求。

猜你喜欢

存储空间总线信息系统
建设工程招投标管理中智能化信息系统的运用
基于多种群协同进化算法的数据并行聚类算法
2022年信息系统与运营管理专栏征稿
基于信息系统的计量标准管理
关于CAN总线的地铁屏蔽门控制思路论述
苹果订阅捆绑服务Apple One正式上线
用好Windows 10保留的存储空间
信息系统运行质量评估的研究与实现
Q&A热线
PCI9030及其PCI总线接口电路设计