您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

利用FPGA实现模式可变的卫星数据存储器纠错体系

发布日期:2011-05-07

    比较讨论了航天器数据存储器中汉明码和TMR两种典范纠错体系的原理、实现以及数据可靠性的预计,在此底子上提出了一种集成这两种体系模式并可在实际应用中根据必要切换模式的纠错体系计划方案,探究了该体系的特点和上风,先容了利用FPGA实现该体系的进程和经历。 

    1 汉明码与TMR方案比较

    在微小卫星的EDAC模块计划中,通常采取编码(重要是汉明码)或三倍冗余讯断(Triple Modular Redundancy,TMR)的方案。下面分别阐明这两种方案并加以比较。
    1.1 线性分组码编码是在数据通讯和数据存储范畴遍及利用的检错/纠错要领。线性分组码是利用很遍及的不对控制编码[1],其信息位和监督位的接洽干系由一组线性代数方程组表现。(n,k)线性分组码的编码便是创建由m(m=n-k)个天生冗余位的方程构成的方程组,并由此线性方程组转化为k×n的天生矩阵G。编码时将信息位向量(k维)乘以天生矩阵G,即得到码字向量[Cn-1…C0],见式(1)。 [Cn-1,Cn-2,∧,Cn-k,Cm-1,∧,C0]=[Cn-1,Cn-2,∧,Cn-k] ×Gk×n (1)将式(1)表现的方程组作移位更改,可以得到由式(2)表现的情势,H称为监督矩阵。解码时通过监督矩阵H与读出的码字向量C的乘积结果一校验子S来果断是否堕落。当读出的码字微量C乘上H后得到一个零向量,表现没有堕落;不然表现码字在存储之后产生了变革,即有错误产生。 S=Hm×n×[Cn-1, ∧,C0]T (2) 当码字中某位(单一位)产生错误时,会得到唯一的非零校验子S向量,该向量只与码字堕落位置的图样有关,而与码字C无关。汉明码是能改正单个错误的线性分级。其映射的G矩阵即为汉明码天生矩阵。这种编码下,分组编码总长是2m-1位,信息位长度是2m-m-1位,即(2m-1,2m-m-1)汉明码。(2m-1,2m-m-1)汉明码是编码服从最高的纠单错线性分组码。但思量到一样平常谋略机存储体系以字节为单位,而2m-m-1通常不是8的倍数,以是对汉明码加以扩展后,可以得到(12,8)、(22,16)中分组编码方案。这些方案具有一些新的特点,比方一种(22,16)方案可以做到纠单错、检双错,称作汉明SEC-DED码[2]。还可以通过优选,得到最佳监督矩阵H,使得运算电路最为大略、快速。

    1.2 TMR TMR的原理是将同一份信息生存在三份物理存储空间中。读取的时间比较三份内容,要是不完全雷同,就取两个同等的值为直值。在CPU通过总线向内存写入数据(WR有效)时,每一比特数据通过三态门同时写到三个映射的比特存储单位中。当总线向内存恳求数据(RD有效)时,三份同时存储的内容到达比较器,比较器逻辑根据前述规矩输出数据内容及是否产生2/3讯断的标记。根据总线请求,多路开关可以将数据内容大概每3比特比较器的2/3讯断标记输出到总线上,后者可供阐发研究可靠性时利用。
 
    1.3 两种方案的比较从存储空间的绝对大小角度思量,编码方案比冗余讯断方案要节流大量的存储空间。要是采取(22,16)汉明码,每1MB有效内存必要实际物理内存1.375MB。而采取TMR方案则必要3MB实现物理内容。从体系的纠错可靠性角度思量,起首假定内存的单粒子翻变化乱(SEU)所产生的物理地点[3]和时间都是匀称散布的。设每一比特内存单位在单位时间内产生单粒子翻转的概率为σ。则每m比特内存布局中v比特产生SEU的概率为: 采取(22,16)汉明码方案后,可以改正每22比特内存行单位中的单比特错误。对付一行22比特编码记录,不产生SEU以及只有一比特产生SEU的概率和,即为该行内存单位的可靠性。因此,每22比特的行汉明码内存单位可靠性为: 每22比特行单位的有效容量是16位,即2个字节。故对付有效大小为N字节的汉明码内存体系,由N/2个行单位构成。其可靠性为: 而对付采取TMR的一行3比特的内存布局,可靠性为: 对付一个有效大小为N字节的TMR内存体系,由8N个3比特布局构成,可靠性为: 在实际航天应用中[3],通常10 -9>σ10 10bit-1·s -1。取N=4×10 6(即4兆字节),表1给出了σ取差别值时不对率(1-σ)的雷同谋略结果。此中不对率之经τ=(1-ρham)/(1-ρTMR)

    谋略结果表明,在前述参数范畴内,汉明码纠错的不对率约是TMR的5倍。并且,两种体系的不对率都与σ的平方雷同成正比。可见纵然采取内存纠错,想法低落σ还是根据进步体系可靠性的重要步伐。体系的时序性能是思量的另一个关键因素。尤其是在高达几十兆赫的内存总线上,编解码运算较为繁琐的汉明码方案有着相称的范围性。而TMR方案只需举行大略的2/3讯断,通常更能胜任苛刻的内存访问时间请求[4]。

  
  2 可变方案配置

    从上述比较可以看出,两种方案各有上风,得当在差别的环境条件和数据寂静需求下应用。而星载谋略机的通用性也请求数据存储用具有肯定程度的机动性。在综合上述两种方案的底子,连合如今飞速生长的现场可编程逻辑门阵列(FPGA)技能,提供了一种可以根据必要在线变化配置,分别实现上述两种EDAC要领的数据存储器方案。
 
    2.1 可变内存配置前述两种EDAC要领对付内存的配置是差别的。(22,16)汉明码一样平常采取16bit+8bit的内存芯片器件实现。而TMR则采取3×16bit的芯片实现。若要支持两种要领,必须为存储器计划一种分外的内存配置方法。这是模式可变的底子和关键。图1为可变内存配置方案。

    这个数据存储体系是由3个位于同一条地点总线上的16bit内存模块构成。每个内存模块还可以单独片选其高字节或低字节。如许通过片选信号ah、al、bh、bl、ch、cl的控制,实际上有6个宽度为8bit的内存模块可以单独访问。48bit(3×16bit)的数据线全部接入EDAC控制模块。当体系事变在TMR模式时,ah、al、bh、bl、ch、cl被雷同的片选信号驱动。如许就构成了TMR必要的一个3×16bit冗余内存空间。当体系事变在汉明码模式时,ah,al、bh一组,bl、ch、cl一组,分别被雷同的片选信号驱动,构成了两个独立的16+8bit存储空间。对付(22,16)汉明码,每一个空间实际利用增长一倍。别的,体系还可以事变在无不对控制模式下。这时,ah、al一组,bh、bl一组,ch、cl一组,分别被雷同的片选信号驱动,构成了三个独立的16bit存储空间。这种配置下的内存地点空间比TMR模式下增长两倍。在这些配置模式中,片选的地点译码都在EDAC控制模式中完成。

    2.2 可变纠错方案的体系布局一个基于上述内存配置方案的模式可变量据存储体系以一个RAM芯片组作为内存载体。可变纠错方案的体系布局见图2。除了内存模块外,还应该包括以下成果模块:(1)TMR读写取讯断模块。TMR事变模式下,完成读取和写入操纵中的冗余讯断和数据分派逻辑。这个模块的详细计划已经在1.2节中细致先容了。(2)汉明码编码模块。汉明码事变模式下,在向内存写入数据时完成编码运算。(3)汉明码纠错模块。汉明码事变模式下,在从内存读出数据时完成检错和纠错运算。(2)、(3)这两个模块的算法原理采取了1.1节中先容的方案。(4)地点逻辑模块和模式控制模块。共同种种事变模式,控制相应的模块事变信号和相应的内存片选信号,完成附加地点译码,精确访问RAM崆,实现对物理内存的分派办理。为此,采取FPGA计划了EDAC专用芯片,实现了这些模块,并与内存模块相连接,构成了完备的纠错模式可变的数据存储体系。在这个体系中,完成写入操纵时,总线数据通过EDAC-FPGA以符合的情势存入RAM芯片组;完成读出操纵时,EDAC-FPGA将RAM芯片组的内容读出并处理惩罚(解码或讯断)后放在体系总线上。

    2.3 可变方案配置的特点根据差别任务的详细特点,卫星数据处理惩罚体系对付内存的数量和质量的请求也有所差别。比方在处理惩罚上传指令和下载星上仪器状态时,请求数占据很高的可靠性,而对付内存容量则没有特点的请求;而在处理惩罚某些用途的遥测图像数据时,必要较大的内存容量,而对可靠性的请求则相应较低。传统的内存配置在硬件完成后很难变动。要是完全基于软件纠错也能实现相称程度的机动性,但软件纠错带给CPU的大量运算负荷使得这种机动性有些得不偿失。

    可变纠错方案与无纠错机制的内存体系相比,仅仅在硬件上增长了一块FPGA,对付软件则是完全透明的。并且,在星载数据处理惩罚体系中每每另有其他必要利用FPGA的场合,这块FPGA的内容完全可以通过综合计划,整合到其他诸如总线逻辑之类的FPGA之中。别的,由于在多种配置模式下一部分物理内存的内容意义是同等的,因此要是辅之以软件的共同,将关键代码、数据段置于该段内存之中,就可以实如今不重新启动谋略机体系的条件下变动内存纠错方案配置,完成模式切换,包管某些关键任务不停止。总之,基于FPGA实现的硬件可变配置方案以最小的硬件、软件代介,提供了最大的内存配置机动性,充分餍足了种种需求,并且节省了RAM的硬件资源和功耗。

  
3 硬件实现

   3.1 FPGA的编程与实现通过对如今遍及利用的FPGA器件的阐发和比较,选择利用了具有较高性价比的Xilinx Spartan系列FPGA举行原型试验。该系列产品还具有3.3V电源提供兼容5V I/O、休眠状态、更快的逻辑速率等特点。为克制FPGA本身受单粒子翻转效应影响,在实际的航天任务中,将采取基于熔丝技能的Actel公司的FPGA产品。本应用具有很强的模块性,笔者采取了标准VHDL语言形貌,布局清楚,同时为将来的移植提供了方便。模块的分别基于图2的头脑,又同时思量到VHDL模块的风俗请求以及实践中可综合性和方便性。在详细的VHDL实现进程中,该体系由五种VHDL实体(entity)模块构成:(1)3bitcomp:TMR的比特逻辑单位,实际比特级的信息备份和纠错讯断;(2)tmr:TMR成果模块,包括16个3bitcomp实体(映射16位总线);(3)hamming:汉明码编码/纠错成果模块;(4)hammeminf:hamming实体的22位内存接口与48位内存数据线之间的转换接口;(5)eadc:最高层实体,包括以上4种实体和必须的逻辑控制、数据接口等。它们的干系如图3所示。

    体系利用了Active-HDL软件举行成果仿真,综合与实现都利用了Xilinx提供的Foundation系列软件。在RTL综合进程中天生的电路图上细致到,利用VHDL形貌双向三态门的必须包管全部条件下都指出明白的状态,不然在RTL综合后的逻辑电路不克不及实现双向三态的成果。

    3.2 时序特性时序特性是内存体系的关键指标,直接决定着内存体系的事变频率和整个OBC体系的运行速率。由于采取了FPGA器件,对该内存体系的时序特性阐发必须通过FPGA实现后的时序仿真来加以研究。在FPGA实现进程中,通过束缚条件来优化东西软件主动计划天生进程。颠末重复优化,在Xilinx XCS30XL上实现后的仿真结果如图4所示。可以看出,TMR模式确实拥有较好的时序特性,延时较短。而成果逻辑最为大略的无纠错模式由于在实际中为了优化其他模块做出了延时上的特别。通过上述理论阐发、体系计划和硬件实行,可以看到:通过FPGA实现的可变模式卫星数据存储器纠错体系具有成果美满、适应性强、利用机动方便、硬件电路大略等特点。随着FPGA技能的遍及利用,可以计划出成果更强大、利用更方便的专用体系,以充分餍足空间飞行器的特别请求。