CN111176732A - 一种基于mram实现的软硬件冗余安全启动与维护方法 - Google Patents

一种基于mram实现的软硬件冗余安全启动与维护方法 Download PDF

Info

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
Application number
CN201911130599.XA
Other languages
English (en)
Other versions
CN111176732B (zh
Inventor
于俊杰
栾晓娜
刘梅
焦胜利
吕岩
韩德崇
张鹏
许大伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Institute of Space Electronic Technology
Original Assignee
Shandong Institute of Space Electronic Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Institute of Space Electronic Technology filed Critical Shandong Institute of Space Electronic Technology
Priority to CN201911130599.XA priority Critical patent/CN111176732B/zh
Publication of CN111176732A publication Critical patent/CN111176732A/zh
Application granted granted Critical
Publication of CN111176732B publication Critical patent/CN111176732B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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实现的软硬件冗余安全启动与维护方法
技术领域
本发明属于星载计算机启动与维护技术领域,尤其涉及一种基于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。
CN201911130599.XA 2019-11-19 2019-11-19 一种基于mram实现的软硬件冗余安全启动与维护方法 Active CN111176732B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131044A (zh) * 2020-08-28 2020-12-25 山东航天电子技术研究所 一种卫星用计算机应急系统及其方法

Citations (2)

* Cited by examiner, † Cited by third party
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 中国科学院上海技术物理研究所 一种星载嵌入式软件容错启动系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
辛宁;邱乐德;张立华;张宏飞: "一种星载计算机操作系统容错引导算法研究" *

Cited By (1)

* Cited by examiner, † Cited by third party
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