赵云鹏 池骋 周梦 郑艳 孙璐 王晓伟 张俊
(西安微电子技术研究所,西安 710065)
高性能固态存储技术在现代航天器,包括空间站、深空探测、对地遥感卫星,特别是高分辨率对地观测卫星的有效载荷系统中占有非常重要的地位。随着高分辨率对地观测载荷的广泛应用,载荷数据率和数据量都呈指数型增长,这就导致无论是中继传输通道还是对地直传通道都已无法实时传输载荷数据。国内外高分辨率卫星载荷数据率和数据量均已达到10 Gbit/s和10 Tbit的量级,相应的存储系统性能也要与之匹配,如高分七号卫星固态存储器的总数据吞吐率达到25.6 Gbit/s,存储容量达到8 Tbit。
基于高性能固态存储技术的存储系统采用统一的系统架构和硬件平台,形成了标准化的系列产品;突破了高速率数据传输、高速率数据识别、高速率数据边记边放和指定数据的多维定位等多项关键技术;首次实现CPU软件和FPGA软件的在轨程序上注功能,丰富了产品自身的健康管理方式,提高了产品在轨可维修性和可靠性。
本文在分析了高分辨率对地观测卫星需求的基础上,介绍了基于高性能固态存储技术存储系统的架构和关键技术的实现方式,并总结了采用该系统架构的优点。
高分辨率对地观测卫星配备各种类型的高分辨率遥感器,其产生的原始数据速率远高于一般对地观测卫星,这就提出了一些新的需求。
1)高速数据传输
为了获取高质量的对地观测数据,各类遥感器生成的载荷数据最高数据率已达到25 Gbit/s甚至更高。
2)海量数据存储
高分辨率对地观测数据在高速存储时必然要占用海量的存储资源,载荷数据总数据量已达10 Tbit甚至更高。
3)丰富的文件资源
存储容量的大大提高使得存储文件的数量相应增加,最大的文件资源需求已超过1000个。
4)载荷数据多维索引
海量载荷数据的存储必然要求在有限的过境时间和中继通道资源下根据多维数据特征(如遥感器标识、星时、文件号等)快速查找定位出用户所关心的数据,从而大幅提高数传通道的利用率。
结合以上需求,基于高性能固态存储技术的存储系统在实现卫星技术要求的前提下,以标准化、模块化、可扩展化为原则,可满足多种高分辨率对地观测卫星对星上高速、海量数据存储的应用要求。
在基于高性能固态存储技术的存储系统中,数据通道以多路高速串行总线为对外接口;多任务管理与调度功能以基于SPARC V8的国产抗辐照片上系统(SOC)处理器为核心;数据特征识别与分拣功能和存储阵列读写控制功能以大规模现场可编程门阵列(FPGA)为核心;对于数据存储介质,采用多片非易失的与非闪存(NAND FLASH)器件来实现。在该固态存储系统中,高速数据通道将采用超大规模并行处理和多线程流水操作来实现,其内部总线最宽处达到512 bit,使得即使在数据缓冲模式下工作的数据读写速率也可达到50 Gbit/s以上[1-2]。
基于高性能固态存储技术的存储系统的组成如图1所示。
图1 基于高性能固态存储技术的存储系统组成框图Fig.1 Block diagram of storage system based on high performance solid state storage technology
图1所示的基于高性能固态存储技术的存储系统中,数据识别和分拣单元可以在高速数据流中按照数据约定格式识别出每一帧数据来自于哪个通道,并将识别后的结果送至相应的数据缓存;它为文件管理系统提供快速索引建立依据,是固态存储器多维索引回放的关键部分。通过该架构,固态存储器可以实现按文件回放、按时间回放等多样、灵活的多维索引模式。
基于高性能固态存储技术的存储系统具有“归类存储和特征检索”的能力。用户可以在记录数据的同时,以不同的速率回放当前数据或历史数据;可以回放全部数据,也可以指定回放某个载荷、某片CCD或某时间段的数据,甚至可以指定回放某个时间段内某个载荷或某片CCD的数据。这样灵活的操作模式和基于载荷数据特征的数据访问方式,可以为载荷数据高级在轨管理提供坚实的系统支撑。
由图1可知,基于高性能固态存储技术的存储系统主要由任务管理单元、高速数据输入/输出接口、数据识别与分拣单元和数据存储阵列组成,下面分别对各个组成模块的功能进行介绍。
1)任务管理单元
任务管理单元负责接收从1553B总线(或RS485总线等)上发送的各种操作指令,除返回相应的遥测信息外,主要负责生成和维护载荷数据特征索引信息、多任务并行工作的调度以及数据存储阵列的地址生成和管理工作等。
2)高速数据输入/输出接口
这两个接口是系统高速数据传输的通道,其数据传输率最高可达25.6 Gbit/s。该接口采用多路高速串行数据传输方式,利用高速串行/解串器件的高性能特性,在物理层使用微同轴连接器和电缆为25.6 Gbit/s数据率的数据在设备间传输提供解决方案[3]。
3)数据识别和分拣单元
数据识别和分拣单元负责接收来自数据处理器的帧格式载荷数据流,同时按数据协议实时判别并提取每帧数据的特征信息(包括包头、遥感器标识、包长度、包尾等),将载荷数据按遥感器标识分类缓存在数据缓存区,并通知处理器提取数据特征信息。然后,将具备写入存储阵列条件的某个遥感器数据分配至后端数据存储阵列模板中。同时,该单元还负责将存储阵列回放数据按照回放数据协议的要求进行编排并转换为符合数据处理器接收的数据格式进行发送。
4)数据存储阵列
数据存储阵列包含n个独立的数据存储单元,各个存储单元在任务管理单元的统一调度下并行工作。每个存储单元采用总线分时复用的策略解决同时记、放时可能出现的总线冲突问题。每个单元均可以工作在记录模式或回放模式,也可在记录的同时进行回放和擦除。每个存储单元内对存储数据进行里所(Reed-Solomon,简称RS)编解码,能够对多个错误符号进行纠正,确保数据存储的可靠性。
为了适应对地观测卫星的高载荷数据率、多载荷数据灵活索引等要求,基于高性能固态存储技术的存储系统需要解决多个技术难点,主要包括以下内容。
1)高速数据传输技术
高速数据传输主要指25.6 Gbit/s带宽的高速载荷数据如何可靠的在设备间和设备内部进行传输。在该技术中需要解决:设备间或设备内部数据通道的传输方式和高速缓存问题;输入数据在多通道间的分配和同步问题。从传输通路上来说,高速数据传输主要包括3个方面:高速数据对外接口传输、高速数据缓存[4]和高速数据板间传输[5]。以记录模式为例,其数据传输通路示意如图2所示。
在图2中,高速数据对外接口主要接收外部输入的16路高速串行数据,其总数据传输码速率为25.6 Gbit/s。为了适应输入高数据传输码速率的要求,存储系统在设计时采用了高速串行传输方式[6-7],图3为高速串行传输方式示意图。
如图3所示,高速串行传输方式是利用锁相倍频技术在数据发送方将16位并行低速数据总线串化后融入到1位高速串行数据流中传给数据接收端;接收端将收到的1位高速串行数据流重新展开恢复为16位并行的低速数据总线[8]。采用这种传输方式,每个通道的数据传输率最大可达到2.5 Gbit/s;在实际使用中,每个通道工作在1.6 Gbit/s,采用16个通道传输即可满足25.6 Gbit/s数据率的需求。
高速数据缓存采用8片第二代双倍速(DDR2)存储器并行工作实现,其数据总位宽为256 bit,工作时钟为250 MHz。高速数据缓存在宏观上可以看做一个“高速双口RAM”,其总的数据带宽为64 Gbit/s。
图2 记录模式时高速数据传输通路示意图Fig.2 Schematic diagram of high-speed data transmission path in recording mode
图3 高速串行数据传输方式示意图Fig.3 Schematic diagram of high-speed serial data transmission mode
高速数据板间传输主要解决各个功能板之间的高速数据传输,在设计时采用FPGA内部的硬核资源高速收发器接口(GTX接口)来实现。GTX接口的工作原理与TLK2711接口器件相同,也是利用锁相倍频技术将16位并行低速TTL数据串化后融入到1位高速串行数据流中进行传输。在实际使用中,每路GTX接口的数据传输率为2 Gbit/s,共通过16路GTX接口就可以满足25.6 Gbit/s的要求。
2)高速数据识别技术
高速数据识别技术是指固态存储器在接收多路高速载荷数据时,首先按照数据控制协议提取每包数据的特征信息(包括包头、遥感器标识、包长度、包尾等),随后将提取的特征信息通知处理器,最后通过高级文件管理系统(AFMS)建立相应的索引信息。这样,所有的数据存储通道统一在任务管理单元的指挥下,数据集中存储,每包记录的数据均具有自己独特的文件特征标识。该项技术旨在实现固态存储器“归类存储和特征检索”的能力,为整星增加各类灵活的工作模式提供充分的技术支持。如图1所示,对输入高速数据的识别采用了大规模FPGA(V5系列)实现,确保在25.6 Gbit/s的码流中进行剔除空帧、数据识别分类等功能。
3)高速数据总线分时复用技术
当固态存储系统工作在边记边放模式时,记录和回放任务并行调度,其核心是闪存(Flash)存储阵列高速数据总线的分时复用,需要解决物理层面的总线访问冲突问题。具体而言,对于同一个存储芯片不能同时读写、对于同一块存储阵列不能同时读写、对于同一条数据总线不能同时读写。因此,必须合理规划整个存储阵列的物理组成并采用最优的调度策略,对记录进程和回放进程的硬件冲突进行规避和仲裁。图4为高速数据总线分时复用的功能框图。
从图4中可以看出,固态存储器整个存储阵列在物理上对外仅有一条唯一的数据总线,无论在记录还是回放都是通过该总线进行数据传输。当固态存储器工作在边记边放模式时,整个存储阵列共用该数据总线。因此,必须将时间轴分为记录和回放两个时间片,记录时间片时对应记录数据占用数据总线,回放时间片时对应回放数据占用数据总线。记录数据和回放数据的带宽均为25.6 Gbit/s,因此,对Flash阵列的读取总带宽需要大于51.2 Gbit/s。
图4 高速数据总线分时复用功能框图Fig.4 Block diagram of time-sharing multiplexing for high-speed data bus
4)载荷数据管理技术
载荷数据管理采用多维查找算法和高级文件管理系统(AFMS)来实现,以满足高分辨率对地观测卫星对海量载荷数据通过多种检索手段快速定位的需求,检索手段包括按文件号、按文件内偏移量、按星上时、遥感器标识等。高级文件管理系统(AFMS)由文件目录表(FDT)和主文件分配表(MFT)构成。在设计时,将固态存储器的整个存储空间划分为若干“块”,块的大小范围可以是256 kbyte至2 Mbyte或更大(根据需求特点来设定块大小)。根据设定“块”的大小建立相应的一个主文件分配表(MFT)。MFT的数据结构里顺序存储着存储系统中的每一“块”的编号和对应的物理地址,以及是否用于文件记录等。图5为MFT数据结构图。
图5 MFT数据结构图Fig.5 Data structure diagram of MFT
在MFT的支持下,每个文件可以进行顺序存取,也可以随机存取。每个文件的目录属性信息可以设置为定长,采用顺序的链表设计,保证文件检索效率。图6为FDT数据结构图。
图6 FDT数据结构图Fig.6 Data structure diagram of FDT
基于高性能固态存储技术的存储系统具有以下优点。
1)存储空间自主动态分配
新一代大容量固态存储器存储容量为8 Tbit~32 Tbit,整个存储空间可以进行自主动态分配,即16个数据通道输入的不同载荷的数据可以动态的分配到整个存储空间中,而与各个通道的数据带宽无关。这样,可以保证固态存储器对整个存储空间的有效利用[9]。
2)数据带宽自主分配
新一代大容量固态存储器输入数据通道共16路,每路数据带宽1.6 Gbit/s,共25.6 Gbit/s。在实际工作中,16路输入通道的数据可能会同时输入,也可能会某几路随机输入。针对这种情况,固态存储器可以对总数据带宽进行自主分配,以适应实际工作时的不同情况,实时处理输入进来的数据。
3)可扩展性高
新一代大容量固态存储器具有很好的可扩展性,总带宽和总容量均可以通过调整存储阵列板的数量、单个存储阵列板的传输速度以及FLASH的存储容量进行灵活的配置,从而满足不同型号对容量和带宽的需求。
4)在轨可程序上注
新一代大容量固态存储器首次实现了CPU软件和FPGA软件的程序上注功能,可在轨对软件程序进行升级和更改,从而丰富了产品自身的健康管理方式,提高了在轨可维修性和可靠性。
基于高性能固态存储技术的存储系统已经成功应用于以高分七号卫星为代表的多颗卫星中,工作可靠、表现良好。
高分七号卫星中固态存储器的主要工作模式包括以下几个。
1)记录模式
接收外部输入的最大速率为12.8 Gbit/s的高速载荷数据并以文件形式进行管理;整个存储空间采用动态管理模式,可根据当前全部存储空间的占用情况,以一定规则动态分配新建文件的存储空间;16路输入通道分为主备接口、独立工作,可靠性高。
2)回放模式
支持按序号、按时间和按顺序多种回放方式,最大输出速率为12.8 Gbit/s;具备回放暂停/恢复功能,提高了卫星应用灵活性;16路输出通道分为主备接口、独立工作,可靠性高;可指定任意1路或多路输出通道进行数据输出,提高了卫星数传通道的利用率。
3)边记边放模式
记录和回放两种独立模式任意组合工作。既可以先开始记录、再进行回放,也可先开始回放、后进行记录;既可以适应记录速率大于回放速率,也可以适应回放速率大于记录速率;既可以实时回放当前正在记录的数据,也可以回放已记录的历史数据。
4)擦除模式
支持全部擦除、序号擦除和预擦除三种擦除方式,即:可以一次性擦除所有存储的数据、擦除指定文件的数据和擦除指定容量的数据,精确的为后续记录任务准备好可用的存储空间。
5)自检模式
支持功能自检和芯片自检,即:自动检测存储系统自身健康状态和自动检查存储阵列中所有存储芯片的健康状态并对发现的失效存储块进行剔除[10]。
本文介绍了高传输带宽海量数据高性能固态存储技术的实现方式、难点及优点,基于该技术研制的大容量固态存储器具有高传输带宽、海量存储以及载荷数据的多维检索等能力,其传输速度、存储容量等关键指标相比于上一代固态存储器有了近10倍的提高。作为新一代大容量固态存储器,它形成了标准化的系统架构和硬件平台,可以满足高分辨率对地观测卫星多种应用方式对载荷数据高速、海量存储和高级在轨管理的需求,适于高分辨率光学成像卫星、高精度立体测绘卫星等后续卫星载荷数据存储与传输的广泛应用。