CN111176732A - 一种基于mram实现的软硬件冗余安全启动与维护方法 - Google Patents
一种基于mram实现的软硬件冗余安全启动与维护方法 Download PDFInfo
- Publication number
- CN111176732A CN111176732A CN201911130599.XA CN201911130599A CN111176732A CN 111176732 A CN111176732 A CN 111176732A CN 201911130599 A CN201911130599 A CN 201911130599A CN 111176732 A CN111176732 A CN 111176732A
- Authority
- CN
- China
- Prior art keywords
- mram
- starting
- storage area
- sample
- boot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于MRAM实现的低成本高可靠的软硬件冗余安全启动与维护方法,结合“三取二比对+CRC”纠检错技术,采取芯片级三模比对方式,MRAM芯片个体数据异常,不影响系统运行;对低成本卫星星载计算机的启动过程进行了设计。本发明的有益效果是实现对多位错误、芯片故障等情况实现可靠纠正与隔离,大大降低成本,支持在轨更新,维护便捷。
Description
技术领域
本发明属于星载计算机启动与维护技术领域,尤其涉及一种基于MRAM实现的软硬件冗余安全启动与维护方法。
背景技术
对于星载计算机系统来说,启动引导过程至关重要。卫星在运行过程中,受空间单粒子效应影响,即使引导程序的某个bit位发生逻辑错误,有可能使星载计算机在任务需求或故障导致重加载时无法正常运行,从而造成卫星单机失效。
目前,传统做法是使用抗空间环境能力较强的反熔丝PROM芯片,如UT28F256、HS1-6664RH-Q或者对应的国产反熔丝工艺芯片,作为启动程序的载体。此类芯片虽然抗空间环境能力较强、可靠性高,但进口型号普遍存在供货周期长、成本过高(动辄过万)、流程复杂(需有落焊环节)等因素影响,并且只能烧写一次,无法重复更新使用,这些因素长期以来制约着宇航计算机的研制和生产。
尤其对于低成本卫星来说,采用昂贵的反熔丝型芯片带来成本上的沉重负担,往往型号上级单位不能承受。现有的做法,多采用多个样本在Flash、EEPROM等芯片中进行备份,采用串联启动的方式逐份启动,直至引导成功;并且软件上采用纠错检错编码,如edac(纠一检二)、CRC等策略,增强空间防护能力。但是,低成本Flash、EEPROM等芯片自身设计工艺局限其对空间环境较为敏感,此种策略仍不能对多位错误、芯片故障等情况实现可靠纠正与隔离。
发明内容
为了解决上述技术问题,本发明提供了一种基于MRAM实现的软硬件冗余安全启动与维护方法,目的是实现对多位错误、芯片故障等情况实现可靠纠正与隔离;在大大降低成本的情况下,提供一种低成本高可靠的软硬件安全冗余启动与维护方法。
本发明的技术方案为:
一种基于MRAM实现的软硬件冗余安全启动与维护方法,主要包括样本存储区、Boot 控制器、看门狗电路;样本存储区,包括3片独立的、存储内容一致的MRAM芯片;每个MRAM芯片均包括启动程序样本、样本校验码、启动暂存区、信息记录区四个分区;Boot 控制器,采用FPGA,主要包括看门狗管理单元、样本管理单元;看门狗电路,在系统不能正常喂狗的情况下,输出周期脉冲提供给Boot控制器的看门狗管理单元,提供信号触发源;
启动与维护方法包括以下步骤,
步骤一、系统加电后,Boot控制器启动看门狗管理单元,进行喂狗操作,CPU系统处于复位状态;
步骤二、Boot控制器从样本存储区的三个MRAM芯片中读取启动程序样本Ni,三取二对比后,记录结果并填写错误信息,进行CRC校验计算;若校验正确,执行步骤三;若校验错误,读取启动程序样本Ni+1,重复本步骤;
步骤三、Boot控制器将CPU系统的启动首地址映射到第1片MRAM的启动暂存区中,释放CPU系统的复位信号,CPU接管喂狗权,执行引导程序;若引导成功,执行步骤四;若引导不成功,启动首地址映射到下一片MRAM的启动暂存区,若启动首地址映射到所有 MRAM仍不成功,则跳至步骤二中“读取启动程序样本Ni+1”;
步骤四、CPU系统正常运行后,Boot控制器对MRAM中的错误信息再次读取,三取二比对后,与记录内容进行比对,若一致,则对MRAM芯片该错误信息进行回写纠正,实现启动程序可维护;
步骤五、存储的启动程序样本均执行后无法正常启动,Boot控制器启动狗咬切机策略,启用备份机工作。
和现有技术相比,本方案采用3片独立的MRAM芯片构建,3片MRAM中存储的内容完全一致;结合“三取二比对+CRC”纠检错技术,对低成本卫星星载计算机的启动过程进行了设计提升;采取芯片级三模比对方式,MRAM芯片个体数据异常,不影响系统运行;
基于上述方案,本发明还做出了如下改进:
进一步地,步骤二中,Boot控制器读取样本Ni后,按bit三模对比,将结果分别填写在3 片MRAM中的启动暂存区中;若发现有存储bit错误,将错误信息记录至相应MRAM的信息记录区中。
进一步地,步骤三中,当引导不成功时,看门口电路产生脉冲信号,触发Boot控制器中的看门狗管理单元逻辑,从而将CPU系统的启动首地址映射到下一片MRAM的启动暂存区中,释放CPU系统的复位信号,释放看门狗的喂狗权给CPU,开始执行引导程序。
进一步地,所述Boot控制器采用Flash型或熔丝型FPGA。
本技术方案的有益效果是
1)消除对宇航用反熔丝PROM存储器芯片的依赖;实现成本低廉,可靠度高;
2)采取芯片级三模比对方式,MRAM芯片个体数据异常,不影响系统运行;
3)消除宇航用反熔丝PROM芯片后期落焊及再试验等环节;
4)消除宇航用反熔丝PROM芯片只能烧写一次问题,支持在轨更新,维护便捷。
5)后续可对多片MRAM芯片进行封装设计,制作专用启动维护芯片,实现固化设计。
附图说明
图1是本发明的启动与维护系统示意图;
图2是本发明的启动与维护流程图;
图3是本发明的样本存储区分布区。
具体实施方式
下面结合某低成本卫星综合电箱具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明。
如图1所示,根据本发明提供的一种基于MRAM的引导与维护系统简图,系统配置简述如下:
CPU采用Sparc V8处理器,BM3803;
样本存储区采用3片MRAM商用芯片——MR0A08B,单片容量128K*8bit;
Boot控制器采用Flash型FPGA——A3PE3000L;
看门狗电路采用MAX706构建,具体控制等操作归由FPGA管理。本实施例选取的系统配置如上,但不局限于上述型号。
由图1和图2,本发明的具体启动过程步骤如下:
步骤一,系统加电后,MAX706输出上电复位信号给FPGA(A3PE3000L),FPGA正常启动后,首先默认将CPU拉低保持在复位状态,此时CPU系统处于等待中;FPGA启动内部看门狗管理单元,由FPGA对MAX706进行喂狗操作,目的是使看门狗电路(MAX706)不输出脉冲触发FPGA中看门狗管理单元的相关下序逻辑。
从上电开始,一直到FPGA主动释放对CPU复位信号的整个过程中,CPU系统都需要处于复位状态。
步骤二,由图3,FPGA控制从3片MRAM芯片中,读取其各自存储的启动程序样本1(同样的程序,不同载体各存储一份,容量小于32KB),即从第1片MRAM中读取样本1-a、从第2片MRAM中读取样本1-b、从第3片MRAM中读取样本1-c;按bit三模比对后,将结果分别填写到 3片MRAM芯片各自的启动暂存区a、启动暂存区b、启动暂存区c中。若过程中发现有存储bit错误,则将错误的地址与内容记录到信息记录区;
三模比对后写入启动暂存区的过程中,需要进行CRC校验计算,与之前预置到样本校验区的3份CRC校验码的三取二比对结果进行比对。若检验和不正确,直接跳转执行:“FPGA 控制从3片MRAM芯片中读取其各自存储的启动程序样本2”,重复上述过程;若校验和正确,则继续后序步骤三。
具体存储的启动程序样本数量,本实施例存储了2份,可以根据代码大小与存储器容量设计i份(i≥2)启动程序样本,工作机理与此过程一致。多片MRAM芯片的读、写等控制信号需 FPGA独立引脚设计,严格控制、加强故障预保护,多数工况其处于只读模式,写信号设计默认无效,严格控制。
步骤三,FPGA将BM3803的启动首地址(ROMCS0*)映射到第1片MRAM的启动暂存区 a中,释放CPU系统的复位信号同时释放看门狗的喂狗权给BM3803,开始执行引导程序;
若引导过程不成功,程序不能正常喂狗,MAX706输出狗咬脉冲信号,触发FPGA中看门狗管理单元逻辑,将CPU的启动首地址(ROMCS0*)映射到第2片MRAM的启动暂存区b中,释放CPU系统的复位信号,同时释放看门狗的喂狗权给CPU,开始执行引导程序;若再不成功开始从第3片MRAM的启动暂存区c中,重复该过程。若3次均启动不成功,跳转到步骤二中,FPGA直接跳转执行:“FPGA控制从3片MRAM芯片中读取其各自存储的第2个(或者下一个) 启动程序样本”,然后重复上述过程。
若引导成功,执行后序步骤四。
步骤四,引导成功,BM3803系统正常运行后,由系统软指令通过FPGA对MRAM信息记录区中记录的错误地址对应的MRAM芯片内容进行再次读取,三取二比对后,与记录的错误内容进行比对,若一致,则由CPU对MRAM芯片该错误地址的内容进行回写纠正,达到启动程序可维护的目的。
步骤五,存储的启动样本均执行后无法正常启动CPU系统,FPGA启动内部狗咬切机策略,启用备份机工作。
Claims (4)
1.一种基于MRAM实现的软硬件冗余安全启动与维护方法,其特征在于:主要包括样本存储区、Boot控制器、看门狗电路;样本存储区,包括3片独立的、存储内容一致的MRAM芯片;每个MRAM芯片均包括启动程序样本、样本校验码、启动暂存区、信息记录区四个分区;Boot控制器,采用FPGA,主要包括看门狗管理单元、样本管理单元;看门狗电路,在系统不能正常喂狗的情况下,输出周期脉冲提供给Boot控制器的看门狗管理单元,提供信号触发源;
启动与维护方法包括以下步骤,
步骤一、系统加电后,Boot控制器启动看门狗管理单元,进行喂狗操作,CPU系统处于复位状态;
步骤二、Boot控制器从样本存储区的三个MRAM芯片中读取启动程序样本Ni,三取二对比后,记录结果并填写错误信息,进行CRC校验计算;若校验正确,执行步骤三;若校验错误,读取启动程序样本Ni+1,重复本步骤;
步骤三、Boot控制器将CPU系统的启动首地址映射到第1片MRAM的启动暂存区中,释放CPU系统的复位信号,CPU接管喂狗权,执行引导程序;若引导成功,执行步骤四;若引导不成功,启动首地址映射到下一片MRAM的启动暂存区,若启动首地址映射到所有MRAM仍不成功,则跳至步骤二中“读取启动程序样本Ni+1”;
步骤四、CPU系统正常运行后,Boot控制器对MRAM中的错误信息再次读取,三取二比对后,与记录内容进行比对,若一致,则对MRAM芯片该错误信息进行回写纠正,实现启动程序可维护;
步骤五、存储的启动程序样本均执行后无法正常启动,Boot控制器启动狗咬切机策略,启用备份机工作。
2.根据权利要求1所述的软硬件冗余安全启动与维护方法,其特征在于:步骤二中,Boot控制器读取样本Ni后,按bit三模对比,将结果分别填写在3片MRAM中的启动暂存区中;若发现有存储bit错误,将错误信息记录至相应MRAM的信息记录区中。
3.根据权利要求1所述的软硬件冗余安全启动与维护方法,其特征在于:步骤三中,当引导不成功时,看门口电路产生脉冲信号,触发Boot控制器中的看门狗管理单元逻辑,从而将CPU系统的启动首地址映射到下一片MRAM的启动暂存区中,释放CPU系统的复位信号,释放看门狗的喂狗权给CPU,开始执行引导程序。
4.根据权利要求1所述的软硬件冗余安全启动与维护方法,其特征在于:所述Boot控制器采用Flash型或熔丝型FPGA。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911130599.XA CN111176732B (zh) | 2019-11-19 | 2019-11-19 | 一种基于mram实现的软硬件冗余安全启动与维护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911130599.XA CN111176732B (zh) | 2019-11-19 | 2019-11-19 | 一种基于mram实现的软硬件冗余安全启动与维护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111176732A true CN111176732A (zh) | 2020-05-19 |
CN111176732B CN111176732B (zh) | 2023-04-25 |
Family
ID=70657191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911130599.XA Active CN111176732B (zh) | 2019-11-19 | 2019-11-19 | 一种基于mram实现的软硬件冗余安全启动与维护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176732B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131044A (zh) * | 2020-08-28 | 2020-12-25 | 山东航天电子技术研究所 | 一种卫星用计算机应急系统及其方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011108075A (ja) * | 2009-11-19 | 2011-06-02 | Yokogawa Electric Corp | コントローラ |
CN108446189A (zh) * | 2018-06-12 | 2018-08-24 | 中国科学院上海技术物理研究所 | 一种星载嵌入式软件容错启动系统及方法 |
-
2019
- 2019-11-19 CN CN201911130599.XA patent/CN111176732B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011108075A (ja) * | 2009-11-19 | 2011-06-02 | Yokogawa Electric Corp | コントローラ |
CN108446189A (zh) * | 2018-06-12 | 2018-08-24 | 中国科学院上海技术物理研究所 | 一种星载嵌入式软件容错启动系统及方法 |
Non-Patent Citations (1)
Title |
---|
辛宁;邱乐德;张立华;张宏飞: "一种星载计算机操作系统容错引导算法研究" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131044A (zh) * | 2020-08-28 | 2020-12-25 | 山东航天电子技术研究所 | 一种卫星用计算机应急系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111176732B (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102270162B (zh) | 一种应用于sparcv8结构计算机的容错引导方法 | |
KR101375992B1 (ko) | 불휘발성 메모리로부터의 디바이스 부트업 동안 에러들의 핸들링 | |
US8694855B1 (en) | Error correction code technique for improving read stress endurance | |
US8281065B2 (en) | Systems and methods for determining the status of memory locations in a non-volatile memory | |
CN106873990B (zh) | 嵌入式系统ram损坏模式下的多分区引导方法 | |
KR101374455B1 (ko) | 메모리 에러와 리던던시 | |
CN108446189B (zh) | 一种星载嵌入式软件容错启动系统及方法 | |
EP2770507B1 (en) | Memory circuits, method for accessing a memory and method for repairing a memory | |
CN114237122B (zh) | 一种对sram型fpga进行配置、回读和刷新的电路和操作方法 | |
CN111176908A (zh) | 一种基于三模冗余的程序在轨加载刷新方法 | |
CN1971536A (zh) | 基本输入输出系统的纠错系统及方法 | |
CN112732334A (zh) | 一种高连续性导航卫星软件重构方法 | |
CN111625286B (zh) | 一种星载dsp程序外部引导加载方法及加载系统 | |
US20150248322A1 (en) | Memory controller and memory system | |
CN113608720B (zh) | 一种抗单粒子翻转的星载数据处理系统及方法 | |
KR20210058750A (ko) | 메모리의 런타임 셀 행 교체 | |
CN112306726B (zh) | 一种抗单粒子翻转系统及方法 | |
US10437490B2 (en) | Reading of start-up information from different memory regions of a memory system | |
CN108735268B (zh) | 非易失性存储器修复电路 | |
US20180321873A1 (en) | Memory system and operating method thereof | |
US8995217B2 (en) | Hybrid latch and fuse scheme for memory repair | |
CN111176732A (zh) | 一种基于mram实现的软硬件冗余安全启动与维护方法 | |
CN113094107B (zh) | 数据保护方法、装置、设备及计算机存储介质 | |
CN104597807A (zh) | 一种星载综合电子cpu翻转加固系统及方法 | |
CN112559071A (zh) | 一种用于dsp的分段双冗余引导加载方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |