李 姗 , 宋 琪 , 朱 岩 , 安军社
(1.中国科学院空间科学与应用研究中心 北京 100190;2.中国科学院大学 北京 100049)
“实践十号”卫星是空间科学先导专项确定拟在 “十二五”期间启动的五颗科学卫星之一,将利用我国技术成熟的返回式卫星平台,在空间开展20项微重力和空间生命科学实验,内容包括微重力流体物理、微重力燃烧、空间材料科学、空间辐射生物学效应、空间重力生物学效应和空间生物技术等6个重要学科方向的科学实验,是我国到目前为止内容最为丰富的一次空间微重力与生命科学实验计划。“实践十号”卫星在运行过程中将产生大量的图像数据,具有分辨率高、谱段宽、细节丰富、携带信息量大、输出速率高等特点,对于探测任务具有重大意义。
大容量存储系统是现代电子系统的重要组成部分,在通信、雷达、航天等领域都有着广泛的应用[1]。由于太空环境复杂多变,星载大容量存储系统具有其特殊性[2]。由于过境时间有限,高速、大量的数据需要先在本地存储,过境时再延时回放。再加上空间环境复杂多变,大容量存储系统需具有掉电存储数据,抗辐射以及良好的抗震动能力。数据存储系统的大容量、高速率、高可靠性、高存储密度、低功耗、非易失性、低成本以及体系的标准化、模块化,均是完成未来空间侦察、对地观测及空间探测任务,圆满完成的重要保证[3]。
“实践十号”大容量存储系统具体设计要求如下:
1)存储阵列容量 1 TBit;
2)一组LVDS数据接收接口,50 Mbps的接收速率;
3)一组LVDS数据发送接口,300 Mbps的发送速率;
4)一对RS485收发接口,用于收发指令;
“实践十号”为科学实验卫星,在轨时间短,成本控制严格,测试任务重,数据量巨大。因此,本系统主要芯片都采用国产芯片有效降低成本,使用存储密度高的NAND FLASH芯片设计大容量存储器,采用双冗余热备份保护措施实现全轨不间断数据存储保证数据安全可靠。
系统硬件设计选器件时遵循低成本的要求:CPU使用抗辐射龙芯 WH1770,FPGA使用 ACTEL的 A3PE3000,NAND FLASH芯片使用珠海欧比特公司的VDNF64G08。该芯片单片容量为8G×8bit。该芯片采用3-D封装技术进行叠装,以实现更高的存储密度[4],芯片基本结构为:8个die,每个die包含4 096块,每块包含64页,每页包含(256K+8K)Byte。传统的航天任务中使用反熔丝FPGA,这种FPGA的抗辐射能力最好,但是无法反复烧写。由于本项目执行任务的时间较短受辐射影响较小,所以选用FLASH工艺的FPGA。这款FPGA具有较强抗辐射,可重复擦写,且在造价上较反熔丝工艺的产品低廉很多。但自带资源较少,尤其是BLOCK RAM资源非常匮乏,因此需外加存储芯片。为提高存储系统响应速率龙芯芯片与FPGA之间使用HPI总线连接。整个系统原理框图如图1所示。
图1 系统原理框图Fig.1 The system diagram
使用NAND FLASH搭建大容量存储系统面临的问题如下:
1)NAND FLASH芯片的写入时间为最小 25 ns/Byte,但是当一页数据写完后即开始编程,编程时间最长为700 ns。
2)NAND FLASH的读写操作以页为单位,擦除操作是以块为单位的。每块在写入数据前必须先全擦除,擦除时间为1.5~2 ms。
3)坏块是指一个块内含有一位或多位数据单元无法进行操作的块单元,分为固有坏块和使用坏块[5]。由于成本和工艺限制,出厂时NAND FLASH中会存在一些坏块,称为初始坏块。 NANDFLASH 具有重写前擦除(Erase-Before-Write)特性,对一块写入新数据前必须先进行擦除操作。NAND FLASH擦除次数一般为10-100万次,超过擦除限制后NAND FLASH会变成坏块,称为使用坏块[6]。
因此,如何提高写入速度和解决坏块的问题是大容量存储系统的核心问题[7]。目前的办法是使用位扩展以及流水操作提高写入速度。当位扩展和流水级数的增加都会导致缓存容量增加,FPGA控制管脚增多,控制复杂度升高。经过对本次任务的详细分析,最终本系统使用32位扩展四级流水操作。通常使用替换的方法处理坏块,传统方法中将主存储区分为数据存储区和备用存储区,如数据存储区出现坏块则从备份存储区找块来替代,并在映射表中进行替换保证逻辑地址连续[8]。备份存储区大小的选择目前并无统一标准,使用者根据经验选择,备份区过大造成资源浪费,备份区过小则易出现备份区满坏块替代混乱。
本系统中使用4级流水、32位扩展的方式管理存储区,将原有吞吐量提高16倍。该控制方案下,数据同时写入4个芯片的四块NAND FLASH,但坏块位置不一定相同。遵循低成本的要求,本系统使用顺延替代,整块补齐,流水对齐,无缝存储的坏块处理方案,灵活高效分配替代块,充分利用有效空间。具体方案如下:当某流水级写入遇到坏块时,顺序使用下一块进行替代,并在映射表中修改地址。替代块内数据从首页开始写入,并将坏块编程失败页记录。流水级内坏块数量不一致,为便于管理使用可用块数量最少的作为流水级间对齐标准。流水对齐后,剩下的未使用块使用单块操作存储大容量存储器中一些重要参数,如:坏块表等,进一步提高系统可靠性。
存储系统接收的数据来自于LVDS接收端口,命令来自于RS485接口。接收到的命令由FPGA传输给CPU,由CPU解析后给FPGA发送控制命令,控制输入数据的写入以及存储区内数据的回放下传。由于LVDS接收端口传输的数据速率较快,所以先缓存在SDRAM中,并在FPGA控制下写入存储区。因此,存储系统控制器应包含以下模块,总体框图如图2所示。
1)SDRAM接口控制逻辑,实现对LVDS数据缓冲区的读写以及控制;
2)LVDS接口控制器,实现LVDS数据的发送;
3)FLASH控制器,根据CPU指令控制FLASH的读,写,擦等操作;
4)写操作缓存区控制模块,主要用来存储要写入FLASH的数据;
5)读操作缓存区控制模块,主要用来缓存从FLASH读出的数据;
6)CPU交互模块,从CPU获得控制命令,控制数据的写入与读出;
7)FLASH读控制器,实现FLASH数据读出的操作;
8)FLASH写控制器,实现FLASH数据写入的操作;
9)FLASH擦控制器,实现FLASH块得擦除操作;
10)FLASH查询控制器,实现编程完毕后的写成功标志的查询操作;
11)FLASH标记控制器,实现对操作过程中出现的坏块的标记操作;
12)坏块表维护模块,实现实时对坏块表进行维护;
13)中断控制器,根据FLASH操作情况,向 CPU申请中断;
14)DCM模块,即数字时钟管理模块,实现对输入时钟的分频和倍频操作,为其他模块提供时钟信号。
图2 总体框图Fig.2 The block diagram of system
文中提出的低成本星载大容量存储器设计方案充分考虑星载设备的工作环境以及NAND FLASH工作特点,设计出一套应用国产器件,成本低廉,功能优秀的星载大容量存储方案。针对NAND FLASH单片写入速度缓慢和存在并且会不断出现坏块的问题,提出符合低成本要求的方案。使用流水操作,位扩展的NAND FLASH读写控制方法实现系统的高吞吐量;使用顺延替代,整块补齐,流水对齐的替代块选取方案灵活高效应对已有坏块以及不断出现的坏块;将剩余块用于单片存储重要参数,提高存储空间利用率以及系统可靠性。最终,系统吞吐量峰值达Gbps以上,容量1 Tbyte。
[1]雷磊.NAND型FLASH海量存储系统的设计与实现[D].北京:北京理工大学,2008.
[2]DKAnand,RBZmood.控制系统导论[M].3版.北京:世界图书出版公司,2000.
[3]朱岩.基于闪存的星载高速大容量存储技术的研究[D].北京:空间科学与应用研究中心,2006.
[4]Al-sarawi S F,Abbott D,Franzon P D.A review of 3-D packaging technology[J].IEEE Transactions on Components,Packaging and Manufacturing Technology,1998(21):2-14.
[5]舒文丽,吴云峰,孙长胜,等.基于NAND Flash的海量存储器的设计[J].电子器件,2012,35(1):107-110.SHU Wen-li,WU Yun-feng,SUN Chang-sheng,et al.Design of huge capacity memory based on NAND flash[J].Chinese Journal of Electron Devices,2012,35(1):107-110.
[6]刘沾沾.闪存存储管理研究[D].中国科学技术大学,2009.
[7]徐永刚,任国强,吴钦章,等.NAND FLASH图像记录系统坏块管理关键技术[J].红外与激光工程,201204,41(4):1101-1106.XU Yong-gang,REN Guo-qiang,WU Qin-zhang,et al.Key technology of invalid block management in NAND flash based image recorder system[J].Infrared and Laser Engineering,2012,41(4):1101-1106.
[8]史简,宋智,李国军.“天绘一号”卫星星务分系统研究与实现[J].遥感学报,2012,16(S1):74-77.SHI Jian,SONG Zhi,LI Guojun.Implementation of mapping satellite-1’s house keeping system[J].Journal of Remote Sensing,2012,16(S1):74-77.