利用FPGA实现模式可变的卫星数据存储器纠错系统_第1页
利用FPGA实现模式可变的卫星数据存储器纠错系统_第2页
利用FPGA实现模式可变的卫星数据存储器纠错系统_第3页
利用FPGA实现模式可变的卫星数据存储器纠错系统_第4页
利用FPGA实现模式可变的卫星数据存储器纠错系统_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

摘要:比较讨论了航天器数据存储器中汉明码和TMR两种典型系统的原理、实现以及数据可靠性的估计,在此基础上提出了一种集成这两种系统模式并可在实际应用中根据需要切换模式的系统设计方案,探讨了该系统的特点和优势,介绍了利用FPGA实现该系统的过程和经验。

关键词:单粒子翻转汉明码数据存储器编码微小卫星

空间飞器在太空环境中面临的主要问题之一就是辐射。太空中的各种高能粒子具有很高的动能,通过时可能会影响半导体电路的逻辑状态,甚至对半导体材料造成永久损害。单个高能粒子对电子器件功能产生的影响称之为单粒子效应。其中,导致存储内容在‘0‘、‘1‘之间发生变化的单粒子翻转问题特别受以关注。

微小卫星的研发思路是周期短、成本低、技术新,因此大量采用市场上容易取得的商业级电子器件。这些器件具有高密度、低功耗、低成本、扩展性强等特点,但通常没有经过严格的抗辐射测试,也没有采用完善的抗辐射工艺。解决微小卫星的抗辐射问题需要采取综合措施,包括整体防护、设计冗余等,而对具体数据存储器则通常采用编码、备份等方法利用信息冗余应对SEU现象。与物理存储器件相配合,实现上述检错/功能的电路就是微小卫星星载计算机系统的数据差错检测和纠正模块。

1汉明码与TMR方案比较

在微小卫星的EDAC模块设计中,经常采用编码或三倍冗余判决的方案。下面分别说明这两种方案并加以比较。

线性分组码

编码是在数据通信和数据存储领域广泛使用的检错/方法。

线性分组码是使用很广泛的差错控制编码,其信息位和监督位的关联由一组线性代数方程组表示。线性分组码的编码就是建立由m(m=n-k)个生成冗余位的方程构成的方程组,并由此线性方程组转化为k×n的生成矩阵G。编码时将信息位向量乘以生成矩阵G,即得到码字向量[Cn-1…C0],见式。

[Cn-1,Cn-2,∧,Cn-k,Cm-1,∧,C0]=[Cn-1,Cn-2,∧,Cn-k]×Gk×n

将式表示的方程组作移位变换,可以得到由式表示的形式,H称为监督矩阵。解码时通过监督矩阵H与读出的码字向量C的乘积结果一校验子S来判断是否出错。当读出的码字微量C乘上H后得到一个零向量,表示没有出错;否则表示码字在存储之后发生了变化,即有错误发生。

S=Hm×n×[Cn-1,∧,C0]T(2)

当码字中某位发生错误时,会得到唯一的非零校验子S向量,该向量只与码字出错位置的图样有关,而与码字C无关。

汉明码是能纠正单个错误的线性分级。其对应的G矩阵即为汉明码生成矩阵。这种编码下,分组编码总长是2m-1位,信息位长度是2m-m-1位,即汉明码。汉明码是编码效率最高的纠单错线性分组码。但考虑到一般计算机存储系统以字节为单位,而2m-m-1通常不是8的倍数,所以对汉明码加以扩展后,可以得到、等分组编码方案。这些方案具有一些新的特点,例如一种方案可以做到纠单错、检双错,称作汉明SEC-DED码。还可以通过优选,得到最佳监督矩阵H,使得运算电路最为简单、快速。

TMR

TMR的原理是将同一份信息保存在三份物理存储空间中。读取的时候比较三份内容,如果不完全相同,就取两个一致的值为直值。在CPU通过总线向内存写入数据时,每一比特数据通过三态门同时写到三个对应的比特存储单元中。当总线向内存请求数据时,三份同时存储的内容到达比较器,比较器逻辑按照前述规则输出数据内容及是否发生2/3判决的标记。根据总线要求,多路开关可以将数据内容或者每3比特比较器的2/3判决标记输出到总线上,后者可供分析研究可靠性时使用。

两种方案的比较

从存储空间的绝对大小角度考虑,编码方案比冗余判决方案要节省大量的存储空间。如果采用汉明码,每1MB有效内存需要实际物理内存。而采用TMR方案则需要3MB实现物理内容。

从系统的可靠性角度考虑,首先假定内存的单粒子翻转事件所发生的物理地址和时间都是均匀分布的。设每一比特内存单元在单位时间内发生单粒子翻转的概率为σ。则每m比特内存结构中v比特发生SEU的概率为

采用汉明码方案后,可以纠正每22比特内存行单元中的单比特错误。对于一行22比特编码记录,不发生SEU以及只有一比特发生SEU的概率和,即为该行内存单元的可靠性。因此,每22比特的行汉明码内存单元可靠性为

每22比特行单元的有效容量是16位,即2个字节。故对于有效大小为N字节的汉明码内存系统,由N/2个行单元构成。其可靠性为

而对于采用TMR的一行3比特的内存结构,可靠性为

对于一个有效大小为N字节的TMR内存系统,由8N个3比特结构组成,可靠性为

在实际航天应用中,通常10-9σ1010bit-1·s-1。取N=4×106(即4兆字节),表1给出了σ取不同值时差错率的近似计算结果。其中差错率之经τ=(1-ρham)/(1-ρTMR)。

表1实用参数下汉明码与TMR差率的近似比较σ1×10-102×10-105×10-101×10-×10-×10-×10-×10-×10-×10-×10-×10-11τ5555

计算结果表明,在前述参数范围内,汉明码的差错率约是TMR的5倍。而且,两种系统的差错率都与σ的平方近似成正比。可见即使采取内存,设法降低σ仍是根据提高系统可靠性的主要措施。

系统的时序性能是考虑的另一个关键因素。尤其是在高达几十兆赫的内存总线上,编解码运算较为繁琐的汉明码方案有着相当的局限性。而TMR方案只需进行简单的2/3判决,通常更能胜任苛刻的内存访问时间要求。

2可变方案配置

从上述比较可以看出,两种方案各有优势,适合在不同的环境条件和数据安全需求下应用。而星载计算机的通用性也要求数据存储器具有一定程度的灵活性。在综合上述两种方案的基础,结合目前飞速发展的现场可编程逻辑门阵列技术,提供了一种可以根据需要在线改变配置,分别实现上述两种EDAC方法的数据存储器方案。

可变内存配置

前述两种EDAC方法对于内存的配置是不同的。汉明码一般采用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存储空间。对于汉明码,每一个空间实际使用增加一倍。另外,系统还可以工作在无差错控制模式下。这时,ah、al一组,bh、bl一组,ch、cl一组,分别被相同的片选信号驱动,构成了三个独立的16bit存储空间。这种配置下的内存地址空间比TMR模式下增加两倍。在这些配置模式中,片选的地址译码都在EDAC控制模式中完成。

可变方案的系统结构

一个基于上述内存配置方案的模式可变数据存储系统以一个RAM芯片组作为内存载体。可变方案的系统结构见图2。除了内存模块外,还应该包含以下功能模块

TMR读写取判决模块。TMR工作模式下,完成读取和写入操作中的冗余判决和数据分配逻辑。这个模块的具体设计已经在节中详细介绍了。

汉明码编码模块。汉明码工作模式下,在向内存写入数据时完成编码运算。

汉明码模块。汉明码工作模式下,在从内存读出数据时完成检错和运算。、这两个模块的算法原理采用了节中介绍的方案。

地址逻辑模块和模式控制模块。配合各种工作模式,控制相应的模块工作信号和相应的内存片选信号,完成附加地址译码,正确访问RAM崆,实现对物理内存的分配管理。

为此,采用FPGA设计了EDAC专用芯片,实现了这些模块,并与内存模块相连接,组成了完整的模式可变的数据存储系统。在这个系统中,完成写入操作时,总线数据通过EDAC-FPGA以合适的形式存入RAM芯片组;完成读出操作时,EDAC-FPGA将RAM芯片组的内容读出并处理后放在系统总线上。

可变方案配置的特点

根据不同任务的具体特点,卫星数据处理系统对于内存的数量和质量的要求也有所不同。例如在处理上传指令和下载星上仪器状态时,要求数据有很高的可靠性,而对于内存容量则没有特点的要求;而在处理某些用途的遥测图像数据时,需要较大的内存容量,而对可靠性的要求则相应较低。传统的内存配置在硬件完成后很难更改。如果完全基于软件也能实现相当程度的灵活性,但软件带给C

PU的大量运算负荷使得这种灵活性有些得不偿失。

可变方案与无机制的内存系统相比,仅仅在硬件上增加了一块FPGA,对于软件则是完全透明的。而且,在星载数据处理系统中往往还有其他需要使用FPGA的场合,这块FPGA的内容完全可以通过综合设计,整合到其他诸如总线逻辑之类的FPGA之中。

此外,由于在多种配置模式下一部分物理内存的内容意义是一致的,因此如果辅之以软件的配合,将关键代码、数据段置于该段内存之中,就可以实现在不重新启动计算机系统的前提下更改内存方案配置,完成模式切换,保证某些关键任务不中断。

总之,基于FPGA实现的硬件可变配置方案以最小的硬件、软件代介,提供了最大的内存配置灵活性,充分满足了各种需求,而且节约了RAM的硬件资源和功耗。

3硬件实现

FPGA的编程与实现

通过对目前广泛使用的FPGA器件的分析和比较,选择使用了具有较高性价比的XilinxSpartan系列FPGA进行原型试验。该系列产品还具有电源供应兼容5VI/O、休眠状态、更快的逻辑速度等特点。为避免FPGA本身受单粒子翻转效应影响,在实际的航天任务中,将采用基于熔丝技术的Actel公司的FPGA产品。

本应用具有很强的模块性,笔者采用了标准VHDL语言描述,结构清晰,同时为将来的移植提供了方便。模块的划分基于图2的思想,又同时考虑到VHDL模块的习惯要求以及实践中可综合性和方便性。在具体的VHDL实现过程中,该系统由五种VHDL实体模块组成

3bitcomp:TMR的比特逻辑单元,实际比特级的信息备份和判决;

tmr:TMR功能模块,包括16个3bitcomp实体;

hamming:汉明码编码/功能模块;

hammeminf:hamming实体的22位内存接口与48位内存数据线之间的转换接口;

eadc:最高层实体,包括以上4种实体和必需的逻辑控制、数据接口等。

它们的关系如图3所示。

系统使用了Active-HDL软件进行功能仿真,综合与实现都使用了Xilinx提供的Foundation系列软件。在RTL综合过程中生成的电路图上注意到,使用VHDL描述双向三态门的必须保证所有条件下都指出明确的状态,否则在RTL综合后的逻辑电路不能实现双向三态的功能。

时序特性

时序特性是内存系统的关键指标,直接决定着内存系统的工作频率和整个OBC系统的运行速度。由于采用了FPGA器件,对该内存系统的时序特性分析必须通过FPGA实现后的时序仿真来加以研究。在FPGA实现过程中,通过约

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论