基于FTL层的高可靠星载数据编码保护设计

2017-11-01 17:14曹丹丹林宝军
计算机应用与软件 2017年10期
关键词:位数复杂度利用率

曹丹丹 陈 勇 林宝军

1(中国科学院光电研究院 北京 100094)

2(中国科学院大学 北京 100190)

基于FTL层的高可靠星载数据编码保护设计

曹丹丹1,2陈 勇1林宝军1

1(中国科学院光电研究院 北京 100094)

2(中国科学院大学 北京 100190)

空间单子效应对长期在轨航天器存储数据可靠性具有重大影响。针对此问题,提出在闪存转换层FLT(Flash Translation Layer)上添加编码转换层,以动态满足数据存储可靠性的设计。在编码转换层提出一种选取编码的方法,依据用户对可靠度,使用寿命的要求,使所选取的编码的编码复杂度最低,空间利用率最高。本设计能够为用户在屏蔽底层接口的情况下,依照用户的可靠性需求,为数据提供纠错,为空间数据存储的可靠性设计提供了重要依据。

星载存储器 闪存转换层 编码转换层 纠错码

0 引 言

在空间环境中,由于单粒子效应,会影响存储器进行位翻转,从而影响存储的数据可靠性。针对星载嵌入式系统数据的容错,很多人提出了不同的方法。文献[1]提出了在VFS(Virtual File System)层利用三模冗余的思想对数据进行保护。三模冗余只能容错不能纠错,空间利用率只有三分之一,而在VFS层的容错也不利于文件系统的可移植性。文献[2]在文件系统层面对存储器的使用寿命进行了提升,却并未有效量化寿命的提升时间,无法估算其使用寿命是否满足星载需求。文献[3]采取了汉明码对星载存储器进行了容错处理,但在汉明码编码长度选择上只考虑了空间利用率,并未考虑使用寿命的因素。文献[4]针对集群故障提出了一种增加存储器使用寿命的方法,但是针对的是整个存储器,因为有些临时文件不需要容错处理,造成存储空间的浪费。

本文提出在FTL层之上添加编码转换层。按照用户对不同重要性的数据可靠度、寿命的需求,通过选取编码复杂度最小,且空间利用率最大的编码方法,编码长度与纠错位数对用户的数据进行容错、纠错,以满足存储数据可靠性的需求。

1 设计流程

长期在轨航天器所存储的数据共分为三类:1) 核心数据:决定飞行器生死的数据,如果缺失将会导致该飞行器所有任务失败,例如,文件系统索引结构、目录、启动代码、系统镜像文件、进程文件、初始化参数;2) 重要数据:决定飞行器的某些重要功能能否工作的数据,如果缺失将会造成飞行器重要功能受损,例如子功能进程文件、子功能参数配置数据等;3) 一般数据文件,如果缺失对飞行器的运行、功能略有影响,但不影响任务的成败,例如,中间结果数据。

设长期在轨航天器的最低使用寿命为t0,则核心数据的生存寿命应为t=t0,重要数据使用寿命应为t0/2

闪存存储器因为防振、非易失、高并发、低功耗等特点,现已广泛应用于空间环境[5-6]。典型的闪存存储结构如图1所示。存储接口MTD(Memory Technology Device)层用于访问底层存储设备,为存储器和上层之间提供抽象接口。闪存转换层FTL(Flash Translation Layer)将上层文件系统与底层存储设备衔接起来,提供物理地址到逻辑地址的映射[7,10]。文件系统负责为用户建立文件、读写文件、修改文件、复制文件等功能[4]。

图1 典型的闪存存储结构图

对用户存入的数据进行冗余纠错可以在三个层面进行。在闪存阵列中加硬件ECC校验,但这种算法是在硬件出厂时就已经规定好的,纠错位数固定,一般为1 bit,具有局限性[8],而且星载存储数据可靠性要求高,仅仅在底层加了ECC校验无法完全阻止数据出错。基于文件系统的读写函数对数据进行纠错使文件系统被底层硬件存储结构限制住,不具备可移植性,所以一般很少用这种方案。在闪存转换层上对数据进行冗余纠错既根据数据特性动态分配合适的纠错算法,又能在底层闪存改变或上层文件系统改变时仅仅通过改变映射机制就可以适应。

在FTL层之上添加的编码转换层,用户提供不同重要性的数据可靠度和寿命的参数,据此提出一种设计,选取相应的编码。以编码复杂度最小,且空间利用率最大为原则,选取的编码方法,编码长度与纠错位数确定编码,以此保证对数据进行容错、纠错,以满足存储数据可靠性的需求。改进后的闪存存储结构如图2所示。

图2 改进后的闪存存储结构图

其中根据寿命可靠度求得其需要纠错位数与分组数据的长度范围,若纠错位为1 bit,则用汉明码,多位则用BCH码。若为BCH码,则需要据其空间利用率确定分组长度。

2 编码的确定方法

编码的确定方法示意图3所示。

图3 编码的确定方法示意图

系统在规定的条件下和规定的时间内,完成规定功能的概率为系统的可靠度函数。在此场景中,可靠度函数即为数据不失效的概率。在空间环境中,由于单粒子效应,会引起单粒子翻转。而单粒子翻转为影响星载存储器数据可靠性的最主要因素,同一个字节出现两次以上单粒子翻转的概率非常低。根据国内外人士在空间环境高能粒子辐射研究监测表明,单粒子出现单粒子翻转各bit出现错误在时间上和存储单元上都是离散的, 出现错误的空间分布随机,且互不影响。每一位并未出现反转的概率如下:

p(t)=e-λt

(1)

其中λ为失效率,t为使用时间。

由于各位出现位翻转的情况互不影响,且只有0和1两种情况。设编码分组长度为n,编码纠错位数为j,则n位中未出错的位数k=n-j。则此系统的可靠性满足n中取k表决系统模型,记为k/n(G)。其中k/n(G)逻辑示意图如图4所示。

图4 k/n(G)逻辑示意图

图4中,xn是每一位发生为翻转的概率事件表示,则可计算发生j位错误的概率推导如下:

P(X=j)=1-R(t)=

(2)

其中,R(t)为系统可靠度。

算得可靠度R(t)应该大于或等于用户提供的可靠度,因为需要纠错的位数不会很大,一般不会超过5。j的值可以从1开始进行计算,由此,可以确定满足条件R(t)的需要编码纠错的位数j与分组长度n的范围。其中,j的选取原则为尽量选择满足条件值最小的,这样可以降低编码复杂度,n的选取遵循空间利用率r最大原则。

根据纠错位数可以选择编码方法,当出现单个错误时,应选取汉明码。因为其编译码结构简单,很容易实现,纠正一个错误的[n,k,d]分组码,其中n为分组长度,k为信息长度,d为汉明距离。汉明码为纠正单个错误的[n,k,3]码,汉明码满足:

(3)

其中,m为某一素数,r为码率。

BCH码和RS码都是纠正多个随机错误的循环码,但在纠正相同错误时,BCH码所需冗余空间更小,即编码后的码长最短,出于对空间利用率的考虑,当出现多个错误时,选取BCH码进行分编码[9]。对于任意整数m(m>3)和j<2m-1,存在具有如下参数的二进制BCH码,信息包括长度为k,分组长度为n,能够纠正j或小于j位的错误的任意组合。通常情况下,这种类型的码标记为[n,k,j]BCH码。则其满足以下条件:

(4)

其中,dmin为纠错码距,r为码率。

在对编码的选择方式上,遵循编码复杂度最低,空间利用率最大的原则。在选取纠错位数时,以编码复杂度最低为原则,选取满足用户可靠度的最小的纠错位数,并确定编码长度。由于汉明码比BCH码编码复杂度更低,空间利用率更高,所以纠正1 bit错误满足可靠度要求时,选用汉明码。多位错误出现时选取BCH码,而在选取BCH码时,尽量满足空间利用率最高的原则。根据空间利用率公式:

r=k/n

(5)

可计算汉明码编码长度越大空间利用率越高,而BCH码,由式(2)可以计算:

r=1-21-m·m

(6)

由此可以确定分组长度。

3 实例分析

在某应用场景中,空间环境中单粒子效应对器件影响失效率λi=1×10-5/天,ECC校验能使失效率降低一个数量级,此时失效率λ=1×10-6/天。假设用户所要存储的数据为长期保存的数据,其VFS层输入参数工作寿命为t=10年,可靠度R(t)≥0.99。由式(2)可知,十年每一位出现位翻转的概率,由式(4)可得不同纠错位数下,编码长度与可靠度的关系如图5所示。由图5可知,编码纠错位数若为1 bit,则无法满足可靠度0.99的要求,2 bit与3 bit都满足可靠度要求,纠错位数过大会增加编解码的负担,则选择纠错位数j=2 bit,确定此时编码长度范围为3

图5 编码长度与可靠度的关系图

图6 编码长度参数与空间利用率的关系图

由此可见,当m=5时,空间利用率r最大,为68.75%,此时,n=31。由此可知在这种情况下,选取[31,21,2]BCH码进行编码。

4 结 语

本文针对空间环境,在闪存转换层之上增加了一个编码转换层,为用户提供了一种屏蔽底层接口的基于编码的数据可靠性提升方法。在FTL层上加编码转换层,可以在为用户屏蔽底层接口的条件下,不影响文件系统的可移植性。而通过用户对不同重要性的数据寿命、可靠度的需求,选取空间利用率最大,编码复杂度最小的编码方法。通过实例仿真分析,结果表明,本方法不仅满足了可靠度和长寿命的需求,并在此基础上最大限度地增加了空间利用率。

[1] 贾露娟, 李文新, 夏加高, 等. 星载嵌入式容错文件系统的设计与实现[J]. 计算机技术与发展, 2015, 25(10): 49-53.

[2] 许浩, 李向阳, 刘泳. 星载嵌入式文件系统技术研究及实现[J]. 航天器工程, 2008 (5): 41-46.

[3] 张钰, 郑阳明, 黄正亮, 等. 皮卫星星载计算机存储模块的容错结构设计[J]. 宇航学报, 2008, 29(6): 2057-2061.

[4] Choi M, Park N, Piuri V, et al. Reliability measurement of mass storage system for onboard instrumentation[J]. IEEE transactions on instrumentation and measurement, 2005, 54(6): 2297-2304.

[5] 李华, 贾振国. 基于 NAND FLASH 的大容量视频存储系统的设计[J]. 物联网技术, 2012, 2(2): 33-35.

[6] 陆游游, 舒继武. 闪存存储系统综述[J]. 计算机研究与发展, 2013, 50(1):49-59.

[7] 张琦, 王林章, 张天,等. 一种优化的闪存地址映射方法[J]. 软件学报, 2014, 25(2):314-325.

[8] Li X, Chen J, Qin D, et al. Research and Realization based on hybrid encryption algorithm of improved AES and ECC[C]//Audio Language and Image Processing (ICALIP), 2010 International Conference on. IEEE, 2010: 396-400.

[9] 韩可, 邓中亮, 黄建明. 高速层进式 Nand Flash 差错控制编码[J]. 北京邮电大学学报, 2010, 33(3): 71-74.

[10] Chang Y H, Hsieh J W, Kuo T W. Endurance enhancement of flash-memory storage systems: an efficient static wear leveling design[C]// Proceedings of the 44th annual Design Automation Conference. ACM, 2007: 212-217.

THEDESIGNOFHIGHLYRELIABLESPACE-BORNEDATAENCODINGPROTECTIONBASEDONFTL

Cao Dandan1,2Chen Yong1Lin Baojun1

1(AcademyofOpto-Electronics,ChineseAcademyofSciences,Beijing100094,China)2(UniversityofChineseAcademyofSciences,Beijing100190,China)

Single event effects(SEE) has a significant impact on the reliability of stored data in long-term in-orbit spacecraft. To solve this problem, a design of adding an error correction code translation layer(ECCTL) was presented. It was on the flash translation layer(FTL), and could dynamically meet the data storage reliability. An encoding selecting method in ECCTL is proposed to minimum the complexity of the selected encoding according to the requirements of reliability and service life from users, which maximum the space utilization. The design could shield low-level interface to the user, and it could correct data errors, to meet the reliability needs of user, providing an important basis for the reliability design of spatial data storage.

Space-borne memory Flash translation layer Code conversion layer Error correction code

TP302.8

A

10.3969/j.issn.1000-386x.2017.10.025

2016-09-08。曹丹丹,硕士,主研领域:嵌入式系统可靠性设计,可靠数据存储。陈勇,副研究员。林宝军,研究员。

猜你喜欢
位数复杂度利用率
2020年煤炭采选业产能利用率为69.8% 同比下降0.8%
五次完全幂的少位数三进制展开
连续自然数及其乘积的位数分析
2019年全国煤炭开采和洗选业产能利用率为70.6%
一种低复杂度的惯性/GNSS矢量深组合方法
化肥利用率稳步增长
浅议如何提高涉烟信息的利用率
求图上广探树的时间复杂度
某雷达导51 头中心控制软件圈复杂度分析与改进
出口技术复杂度研究回顾与评述