利用FPGA实现模式可变的卫星数据存储器纠错系统
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,对于软件则是完全透明的。而且,在星载数据处理系统中往往还有其