首页> 中国专利> 一种用于空间复杂环境的三模冗余信息存储系统和程序烧写及程序启动加载方法

一种用于空间复杂环境的三模冗余信息存储系统和程序烧写及程序启动加载方法

摘要

一种用于空间复杂环境的三模冗余信息存储系统和程序烧写及程序启动加载方法,涉及一种信息存储系统程序烧写及程序启动加载方法。本发明包括三片Flash存储器、现场可编程门阵列和处理器,每片Flash存储器划分为两个或两个以上的存储区,现场可编程门阵列的编程中包括程序启动加载单元,程序启动加载单元包括三模校验模块、分区策略控制模块和分区选择地址控制模块B。本发明对三片Flash接口的扩展与管理,使其成为高可靠的程序存储器,并通过片内分区冗余数据备份,增加数据冗余度,提高程序存储安全性,实现Flash三模输出,大大降低了在复杂环境中Flash出现坏块导致处理器启动失败的概率,提升了系统的可靠性。本发明适用于信息存储系统的制造。

著录项

  • 公开/公告号CN106339282A

    专利类型发明专利

  • 公开/公告日2017-01-18

    原文格式PDF

  • 申请/专利权人 哈尔滨工业大学;

    申请/专利号CN201610751590.0

  • 申请日2016-08-26

  • 分类号G06F11/18;G06F9/445;

  • 代理机构哈尔滨市松花江专利商标事务所;

  • 代理人杨立超

  • 地址 150001 黑龙江省哈尔滨市南岗区西大直街92号

  • 入库时间 2023-06-19 01:24:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-19

    授权

    授权

  • 2017-02-15

    实质审查的生效 IPC(主分类):G06F11/18 申请日:20160826

    实质审查的生效

  • 2017-01-18

    公开

    公开

说明书

技术领域

本发明涉及一种信息存储系统程序烧写及程序启动加载方法。

背景技术

随着技术的发展和对空间探索的深入,航天器的性能要求逐步提高,包括对存储器的读写速度、容量提出了更高的要求,Flash存储器以其大容量、高速率、低功率的优点得到了广泛的应用。

但由于Flash作为一种半导体存储器,在空间复杂环境中工作时,高能粒子入射到半导体器件以后,将产生电离辐射总剂量效应、剂量率效应、位移损伤效应、单粒子效应和高压静电放电击穿、热载流子效应、高空核爆炸产生的电磁脉冲等效应,导致器件失效甚至损坏,在上述众多的空间粒子效应中,目前最为关注的是单粒子效应。为保证航天器的工作不因单粒子翻转位数过多而失效,同时为保证配置文件存储Flash不因单粒子翻转的积累发生错误,需要对Flash存储器进行单粒子效应防护。

发明内容

本发明为了解决目前应用于空间的存储器容易受到单粒子效应的影响而出现数据输出故障的问题。

一种用于空间复杂环境的三模冗余信息存储系统,包括:

三片Flash存储器,用于数据(程序数据)的存储;所述的每片Flash存储器划分为两个或两个以上的存储区;

现场可编程门阵列(FPGA),现场可编程门阵列(FPGA)的编程中包括程序启动加载单元,用于对Flash存储器进行存储数据读取的控制;

处理器,用于控制现场可编程门阵列,以及处理现场可编程门阵列(FPGA)信息和Flash存储器的信息;

所述的程序启动加载单元包括:

三模校验模块,用于对三片Flash存储器的存储区输出数据进行三模冗余,并将三模冗余后的结果发给处理器;同时将存储区的输出结果与三模冗余的结果进行比对,记录与三模冗余结果不同的Flash存储器对应存储区的信息;

分区策略控制模块,用于规划处理器启动加载程序时,从三片Flash存储器各自的某一分区读取数据,进行启动;

分区选择地址控制模块B,根据分区策略控制模块给出的三片Flash存储器的片选信息和分区信息控制三片Flash存储器的高位地址线,选中相应的存储区;同时将处理器发送的地址信息复制三份发送给三片Flash存储器,作为Flash存储器的低位地址;然后根据处理器发送的控制信息判断是否为读操作,并将控制信息复制三份分别传给三片Flash存储器。

优选地,分区策略控制模块所述的从三片Flash存储器各自的某一分区读取数据进行启动的具体步骤如下:

分区策略控制模块判断上次处理器程序启动加载后是否成功,并进行记录;如果上次处理器程序启动成功,则当前分区策略保持不变;如果上次处理器程序启动失败,则该模块会根据上次启动时三片Flash存储器的分区信息,规划出下次启动时的分区策略。

系统一共三片Flash存储器,每片Flash存储器划分成为多个存储区;以两个存储区为例,每个存储区存储了相同的配置信息,Flash存储器在太空空间运行过程中,三模冗余的结果作为处理器的配置信息,从而使处理器正常启动。但是空间环境十分复杂,如果三片Flash存储器中有两片对应的存储区都出现了坏块,这时处理器将不能成功启动,此时,将进行切换分区。比如第一片Flash存储器和第二片Flash存储器的第一存储区都出现了坏块,此时根据高效率的选区策略将进行切区操作,比如,第一片Flash存储器将切换到第二区,如果第二区没有坏块,系统将能正常启动。

优选地,所述的一种用于空间复杂环境的三模冗余信息存储系统还包括:

现场可编程门阵列(FPGA)的编程中还包括程序烧写单元,所述的程序烧写单元用于对Flash存储器进行运行程序的烧写控制。

优选地,所述程序烧写单元包括:

串行通信协议模块(UART模块),用于对Flash存储器烧写程序时实现与上位机的通讯,将上位机发送的Flash存储器的片选信息和分区信息存入片选分区寄存器组模块;通信协议模块和上位机通信有多种方式,比如USB、UART等,本发明选用UART通信;

片选分区寄存器组模块,用于存储上位机发送的Flash存储器的片选信息和分区信息,并将所述的片选信息和分区信息提供给分区选择地址控制模A;

分区选择地址控制模块A,根据所述的片选信息和分区信息,通过处理器烧写程序信息对Flash存储器的存储区进行程序的烧写。

优选地,分区选择地址控制模块A所述的对Flash存储器的存储区进行程序的烧写具体步骤如下:

分区选择地址控制模块A,根据处理器发送的控制信息判断是否为写操作;根据片选分区寄存器组模块给出的Flash存储器的片选信息,控制三片Flash存储器的片选信号,选中对应的Flash存储器,同时根据分区信息确定该片Flash存储器对应的分区,从而控制该片Flash存储器的高位地址线,选中相应的分区;将处理器发送的地址信息发送给选中的Flash存储器作为Flash存储器的低位地址。

优选地,所述的处理器选用赛灵思公司(Xilinx)推出的可扩展处理平台ZYNQ7000。

一种用于空间复杂环境的三模冗余信息存储系统的程序启动加载方法,包括:

步骤2.1、分区选择地址控制模块B接收处理器发送的地址信息和控制信息(读写使能信号WE#、输出使能信号OE#),判断处理器当前是否为读操作;

步骤2.2、当前为读操作时,分区选择地址控制模块B获取分区策略控制模块中存储的三片Flash存储器的分区信息,从而控制三片Flash存储器的高位地址信号,选中三片Flash存储器相应的存储区;

步骤2.3、分区选择地址控制模块B将处理器传来的地址信息和控制信息复制三份给三片Flash存储器;

步骤2.4、三模校验模块获取三片Flash存储器对应的存储区输出的数据,对三片Flash存储器对应存储区输出数据进行三模冗余,将三模冗余的结果输出给处理器的数据接口;同时,将三片Flash存储器对应存储区的输出结果与三模冗余的结果进行比对,记录与三模冗余结果不同的Flash存储器对应存储区的信息;

步骤2.5、重复进行步骤2.3和步骤2.4的操作,直至处理器从Flash存储器获取全部的启动程序;

步骤2.6、处理器从Flash存储器中读取数据后操作完成。

一种用于空间复杂环境的三模冗余信息存储系统的程序烧写方法,包括:

步骤1.1、串行通信协议模块(UART模块)接收上位机发送的Flash存储器的片选信息和分区信息,并写入片选分区寄存器组模块中;

步骤1.2、分区选择地址控制模块A接收处理器发送的地址和控制信息判断处理器当前是否为写操作;

步骤1.3、当前为写操作时,分区选择地址控制模块A读取片选分区寄存器组模块中存储的三片Flash存储器的片选信息和分区信息;然后根据片选信息确定选中的Flash存储器,并控制选中的Flash存储器的片选使能信号CE#为低,将其余两片的Flash的片选使能信号CE#置高,以确定对选中的Flash存储器进行操作;同时根据分区信息确定选中的Flash存储器的存储区,并控制选中的Flash存储器的高位地址;

步骤1.4、分区选择地址控制模块A将处理器传来的地址信息发送给选中的Flash存储器作为低位地址,并将控制信息传给Flash对应的管脚;

步骤1.5、现场可编程门阵列获取处理器发送的数据并发送给选中的Flash存储器的存储区;

步骤1.6、反复进行步骤1.4至步骤1.5的操作,直到所有数据全部写入该片Flash的相应的存储区;

步骤1.7、处理器对Flash的写入数据操作完成。

本发明具有以下有益效果:

硬件冗余容错可以在很大程度上应对单粒子效应,且这种方法简单有效;三模冗余作为一种有效常用的硬件冗余容错发挥着巨大作用。但通用的处理器一般只有一套对外的存储扩展接口,而三模冗余需要三套接口,本发明不但实现了只具有一套存储接口的处理器的Flash三模冗余,而且实现了对3片Flash接口的扩展与管理,使其成为高可靠的程序存储器,并通过片内分区冗余数据备份,增加数据冗余度,提高程序存储安全性,实现Flash三模输出,大大降低了在复杂环境中Flash出现坏块导致处理器启动失败的概率,提升了系统的可靠性。

附图说明

图1为本发明在程序启动加载过程中各个功能模块之间的关系;

图2为本发明在程序烧写过程中各个功能模块之间的关系。

具体实施方式

具体实施方式一:结合图1说明本实施方式,

一种用于空间复杂环境的三模冗余信息存储系统,包括:

三片Flash存储器1,用于数据(程序数据)的存储;所述的每片Flash存储器划分为两个或两个以上的存储区;

现场可编程门阵列FPGA 2,现场可编程门阵列FPGA的编程中包括程序启动加载单元22,用于对Flash存储器进行存储数据读取的控制;

处理器3,用于控制现场可编程门阵列,以及处理现场可编程门阵列信息和Flash存储器的信息;

所述的程序启动加载单元22包括:

三模校验模块221,用于对三片Flash存储器的存储区输出数据进行三模冗余,并将三模冗余后的结果发给处理器;同时将存储区的输出结果与三模冗余的结果进行比对,记录与三模冗余结果不同的Flash存储器对应存储区的信息;

分区策略控制模块222,用于规划处理器启动加载程序时,从三片Flash存储器各自的某一分区读取数据,进行启动;

分区选择地址控制模块B 223,根据分区策略控制模块给出的三片Flash存储器的片选信息和分区信息控制三片Flash存储器的高位地址线,选中相应的存储区;同时将处理器发送的地址信息复制三份发送给三片Flash存储器,作为Flash存储器的低位地址;然后根据处理器发送的控制信息判断是否为读操作,并将控制信息复制三份分别传给三片Flash存储器。

具体实施方式二:

本实施方式所述的分区策略控制模块所述的从三片Flash存储器各自的某一分区读取数据进行启动的具体步骤如下:

分区策略控制模块判断上次处理器程序启动加载后是否成功,并进行记录;如果上次处理器程序启动成功,则当前分区策略保持不变;如果上次处理器程序启动失败,则该模块会根据上次启动时三片Flash存储器的分区信息,规划出下次启动时的分区策略。

系统一共三片Flash存储器,每片Flash存储器划分成为多个存储区(本发明以两个存储区为例),每个存储区存储了相同的配置信息,Flash存储器在太空空间运行过程中,三模冗余的结果作为处理器的配置信息,从而使处理器正常启动。但是空间环境十分复杂,如果三片Flash存储器中有两片对应的存储区都出现了坏块,这时处理器将不能成功启动,此时,将进行切换分区。比如第一片Flash存储器和第二片Flash存储器的第一存储区都出现了坏块,此时根据高效率的选区策略将进行切区操作,比如,第一片Flash存储器将切换到第二区,如果第二区没有坏块,系统将能正常启动。

其他模块和步骤与具体实施方式一相同。

具体实施方式三:

本实施方式所一种用于空间复杂环境的三模冗余信息存储系统,还包括:

现场可编程门阵列FPGA 2的编程中还包括程序烧写单元21,所述的程序烧写单元21用于对Flash存储器进行运行程序的烧写控制。

其他模块和步骤与具体实施方式一或二相同。

本实施方式的现场可编程门阵列FPGA 2包括程序烧写单元21和程序启动加载单元22,但是二者并不同时工作;在向本发明的存储系统中烧写(或下载)程序时是烧写单元21工作;当已经烧写(或下载)程序完毕以后,需要通过本发明的存储系统启动加载程序时(读取工作时),程序启动加载单元22工作。

具体实施方式四:结合图2说明本实施方式,

本实施方式所述程序烧写单元21包括:

串行通信协议模块(UART模块)211,用于对Flash存储器烧写程序时实现与上位机a的通讯,将上位机a发送的Flash存储器的片选信息和分区信息存入片选分区寄存器组模块;通信协议模块和上位机通信有多种方式,比如USB、UART等,本发明选用UART通信;

片选分区寄存器组模块212,用于存储上位机发送的Flash存储器的片选信息和分区信息,并将所述的片选信息和分区信息提供给分区选择地址控制模A;

分区选择地址控制模块A 213,根据所述的片选信息和分区信息,通过处理器烧写程序信息对Flash存储器的存储区进行程序的烧写。

其他模块和步骤与具体实施方式三相同。

具体实施方式五:

本实施方式所述分区选择地址控制模块A213所述的对Flash存储器的存储区进行程序的烧写具体步骤如下:

分区选择地址控制模块A213,根据处理器发送的控制信息判断是否为写操作;根据片选分区寄存器组模块给出的Flash存储器的片选信息,控制三片Flash存储器的片选信号,选中对应的Flash存储器,同时根据分区信息确定该片Flash存储器对应的分区,从而控制该片Flash存储器的高位地址线,选中相应的分区;将处理器发送的地址信息发送给选中的Flash存储器作为Flash存储器的低位地址。

其他模块和步骤与具体实施方式四相同。

具体实施方式六:

一种用于空间复杂环境的三模冗余信息存储系统的程序启动加载方法,包括:

步骤2.1、分区选择地址控制模块B接收处理器发送的地址信息和控制信息(读写使能信号WE#、输出使能信号OE#),判断处理器当前是否为读操作;

读操作判断如表1所示,表中,CE#为片选使能信号,OE#为输出使能信号,WE#为读写使能信号,RST#为复位信号;A[max:0]表示地址线,DQ[max:0]表示数据线;H表示逻辑电平高,L表示逻辑电平低;X表示逻辑电平高或者低。

表1 Flash存储器总线操作及含义

步骤2.2、当前为读操作时,分区选择地址控制模块B获取分区策略控制模块中存储的三片Flash存储器的分区信息,从而控制三片Flash存储器的高位地址信号,选中三片Flash存储器相应的存储区;

步骤2.3、分区选择地址控制模块B将处理器传来的地址信息和控制信息复制三份给三片Flash存储器;

以Flash存储器包括两个存储区为例:Flash存储器的地址线为A[15:0],将一片Flash存储器分为两个存储区,A[15]为高位地址,A[14:0]为低位地址;通过设置最高位地址A[15]的电平高低可以将其分为两个存储区,其地址映射为:

存储区1:0000_0000_0000_0000~0111_1111_1111_1111;

存储区2:1000_0000_0000_0000~1111_1111_1111_1111;

步骤2.4、三模校验模块获取三片Flash存储器对应的存储区输出的数据,对三片Flash存储器对应存储区输出数据进行三模冗余,将三模冗余的结果输出给处理器的数据接口;同时,将三片Flash存储器对应存储区的输出结果与三模冗余的结果进行比对,记录与三模冗余结果不同的Flash存储器对应存储区的信息;

步骤2.5、重复进行步骤2.3和步骤2.4的操作,直至处理器从Flash存储器获取全部的启动程序;

步骤2.6、处理器从Flash存储器中读取数据后操作完成。

具体实施方式七:

一种用于空间复杂环境的三模冗余信息存储系统的程序烧写方法,包括:

步骤1.1、串行通信协议模块(UART模块)接收上位机发送的Flash存储器的片选信息和分区信息,并写入片选分区寄存器组模块中;

步骤1.2、分区选择地址控制模块A接收处理器发送的地址和控制信息判断处理器当前是否为写操作;

步骤1.3、当前为写操作时,分区选择地址控制模块A读取片选分区寄存器组模块中存储的三片Flash存储器的片选信息和分区信息;然后根据片选信息确定选中的Flash存储器,并控制选中的Flash存储器的片选使能信号CE#为低,将其余两片的Flash的片选使能信号CE#置高,以确定对选中的Flash存储器进行操作;同时根据分区信息确定选中的Flash存储器的存储区,并控制选中的Flash存储器的高位地址;

步骤1.4、分区选择地址控制模块A将处理器传来的地址信息发送给选中的Flash存储器作为低位地址,并将控制信息传给Flash对应的管脚;

步骤1.5、现场可编程门阵列获取处理器发送的数据并发送给选中的Flash存储器的存储区;

步骤1.6、反复进行步骤1.4至步骤1.5的操作,直到所有数据全部写入该片Flash的相应的存储区;

步骤1.7、处理器对Flash的写入数据操作完成。

实施例

为了验证本发明的可行性,设计了相应的测试流程,对三片Flash的六个分区进行先写后读的流程。

本发明的验证平台为ZYNQ 7000处理器开发平台,平台的框图如图2所示,该平台的主处理器为Xilinx公司的ZYNQ 7000,三片Flash实现三模冗余,用于存储ZYNQ 7000的启动信息,用于扩展Flash接口的FPGA为Actel公司的Flash FPGA ProAnsic3E A3PE3000。

各分区读写:

为了验证三片Flash六个分区都能成功读写,向FPGA中烧写Flash程序烧写固化过程的逻辑。然后分别向三片Flash的六个分区中写入六个各不相同的程序,然后将处理器设置为从这六个分区中某一分区读取配置信息启动,并输出不同的标志表示从特定分区启动成功。由此事先编译好针对六个分区的不同程序,程序1~程序6,如表2所示,供后续实验使用。

表2三片Flash各分区烧写程序

利用PC通过串口向FPGA中的片选分区寄存器组中依次写入选中三片Flash片选和分区信息,选中某一分区后,向其中一个分区下载准备好的程序(程序1~程序6中某一个);

Flash烧写完成后,并依次选中六个分区,依次启动处理器,观察处理器的输出信息。

三模输出:

在完成各分区程序能成功烧写后,需要验证Flash三模输出的准确性,将Flash的程序分别设置为全部相同,其中两片程序相同,三片各不相同,观察处理器的启动。

(1)根据各分区读写的方法,将三片Flash的第一个分区烧写程序1,其余分区擦除,如表4所示,然后将FPGA烧写为程序启动加载过程的逻辑(即Flash三模启动逻辑),启动处理器,观察其输出结果;

表3三片Flash各分区烧写程序

(2)根据各分区读写的方法,将第一片和第二片Flash的第一个分区烧写程序1,其余分区擦除,如表4所示,然后将FPGA烧写为程序启动加载过程的逻辑(即Flash三模启动逻辑),启动处理器,观察其输出结果;

表4三片Flash各分区烧写程序

(3)根据各分区读写的方法,将三片Flash的第一个分区烧写完全不同的程序,其余分区片擦除,如表5所示,然后将FPGA烧写为程序启动加载过程的逻辑(即Flash三模启动逻辑),启动处理器,观察其输出结果;

表5三片Flash各分区烧写程序

(4)根据各分区读写的方法,将三片Flash的第二个分区烧写相同的程序,其余分区片擦除,如表6所示,然后将FPGA烧写为程序启动加载过程的逻辑(即Flash三模启动逻辑),启动处理器,观察其输出结果,此实验可以验证当分区出现错误时,可以进行分区切换;

表6三片Flash各分区烧写程序

实验结果:

a、各分区读写实验结果:

Flash烧写验证结果,ZYNQ从三片Flash的六个分区读取配置信息都能正常启动,并输出相应的标志信息。

b、三模输出实验结果:

上面(1)至(4)的Flash三模输出的验证结果如下:

(1)当三片Flash烧写相同的程序时,ZYNQ正常启动,并输出正确的标志信息;

(2)当第一片和第二片Flash的第一个分区烧写程序1,第三片擦除,ZYNQ正常启动,并输出正确的标志信息;

(3)当三片Flash烧写各不相同的程序时,ZYNQ不能获得正确的配置信息,启动失败。

(4)处理器尝试启动了6次之后,启动成功。

由此可以看出,本发明在实际应用中只要三片Flash中任意两片Flash的某个分区能够在收到单粒子效应影响过程中保持正常工作,本发明的存储系统完全能够实现三模冗余后输出正确的程序。所以本发明的启动失败的概率很小,本发明提升了存储系统的可靠性,尤其是针对空间复杂环境中工作的情况,存储系统的正常工作对于空间的探索极其重要。同时,存储系统的正常工作也能够保证空间探索实验的正常进行,进而降低空间探索的成本。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号