CN112052117A - 一种基于冗余api接口的星载系统软件防护方法 - Google Patents
一种基于冗余api接口的星载系统软件防护方法 Download PDFInfo
- Publication number
- CN112052117A CN112052117A CN202010600022.7A CN202010600022A CN112052117A CN 112052117 A CN112052117 A CN 112052117A CN 202010600022 A CN202010600022 A CN 202010600022A CN 112052117 A CN112052117 A CN 112052117A
- Authority
- CN
- China
- Prior art keywords
- satellite
- data
- decoding
- interface
- data information
- 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
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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
-
- 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)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开了一种基于冗余API接口的星载系统软件防护方法。从星载系统中所承载的存储器或者内存空间中提取进行交互控制过程的数据信息;将数据信息通过编码防护接口,进行编码备份,并将备份数据保存到星载系统存储区的内存空间当中;当调用原始数据信息时,提取备份数据,并通过解码恢复接口,将其进行解码操作,得到正确的数据信息;通过编解码得出的数据信息,还原数据流或控制流,拷贝到原始数据信息在星载系统存储空间的相应位置。本发明具有良好的纠错和检错能力,准确纠正多位随机错误以及突发错误,并具备很强的环境适应性。
Description
技术领域
本发明涉及星载系统防护领域,特别是一种基于冗余API接口的星载系统软件防护方法。
背景技术
太空环境当中充满了各种空间辐射以及高能粒子。空间辐射通常可以使星载系统暂时失灵,严重时甚至会导致卫星损毁。空间辐射一般通过以下三种方式影响星载系统的正常运行:总剂量效应、单粒子效应和位移损伤。其中对航天器影响最大的为总剂量效应TID和单粒子效应SEE。前者由于电子的长期积累所造成,后者则由高能重离子轰击元器件引起,具体可分为单粒子翻转SEU、单粒子闩锁 SEL、单粒子瞬态效应SET、单粒子功能中断SEFI、单粒子烧毁SEB等效应。基于星载计算机对于卫星的重要性,必须将其可靠性作为首要设计指标。通常采用一定的容错技术对星载系统进行保护。
根据文献检索,发现目前基于星载系统的软件方案大多从硬件防护的角度出发,目前的存储器结构使用了ECC编码和奇偶校验码,通过其中的冗余位来定位甚至恢复错误。但是硬件容错技术需要增加特定形式的硬件逻辑来满足冗余计算的需求,很多情况下,成本和功耗等原因限制了硬件容错的使用范围。而软件容错技术具有操作灵活,不需要另附硬件,降低了硬件成本等特点。
发明内容
本发明的目的在于根据硬件成本和容错可靠性,提出一种基于冗余API接口的星载系统软件防护方法。
实现本发明目的技术解决方案为:一种基于冗余API接口的星载系统软件防护方法,包括以下步骤:
步骤1:从星载系统中所承载的存储器或者内存空间中提取进行交互控制过程的数据信息;
步骤2:将数据信息通过编码防护接口,进行编码备份,并将备份数据保存到星载系统存储区的内存空间当中;
步骤3:当调用原始数据信息时,提取备份数据,并通过解码恢复接口,将其进行解码操作,得到正确的数据信息;
步骤4:通过编解码得出的数据信息,还原数据流或控制流,拷贝到原始数据信息在星载系统存储空间的相应位置;
作为一种优选实施方式,步骤1中,数据信息的类型主要包括常见的内置类型以及结构体类型,根据数据信息的地址从存储器或者内存空间中提取出数据的二进制信息。
作为一种优选实施方式,步骤2中,通过设定编码方案和编码位数对进行软件防护的数据信息进行编码操作,得到编码后的备份数据,并将其保存在星载系统存储空间中。
作为一种优选实施方式,步骤3中,当使用预先备份的数据信息时,要从内存空间中取出进行编码防护的备份数据,并调用解码接口对编码后的数据变量进行解码恢复,还原原始准确的数据信息。
作为一种优选实施方式,步骤4中,通过数据信息所在内存空间的起始地址,重新写入数据信息,并使其恢复到数据变量的初始状态。
本发明与现有技术相比,其显著优点为:
1)星载系统防护接口从软件防护的角度出发,针对内置类型数据以及结构化数据进行编解码防护,不需要设计额外的硬件电路,降低了成本消耗,具有很强的环境适应性。
2)星载系统防护接口能够有针对性的实现对指定存储以及交互数据信息的精准防护,清晰定位到进行防护的数据信息的位置以及数据类型;
附图说明
图1为本发明的详细流程示意图。
图2为本发明的仿真测试流程图.
图3为数组信息编解码效果图。
具体实施方案
下面结合说明书附图和实施例对本发明方案作进一步说明。
本发明通过设计星载系统防护接口,对星载系统中重要的数据流以及控制流信息进行编码保护操作,以达到实现软件容错的目的。表现为,在使用数据变量的同时,调用编码防护接口对数据信息进行编码保护,并将编码后的信息存储于内存空间当中。当再次调用数据信息时,首先调用解码恢复接口进行解码操作,得到解码后的正确信息,并将其恢复到原始数据所在地址空间中。如图1,具体流程如下:
步骤1:如图2,设计数据转换接口dataToString()将原始数据信息转换为二进制格式,BYTE*dataToString(void*charbuf,int dataLen);
该函数接口用于原始数据预处理以及转换操作,通过相关类型的数据信息的起始地址以及数据所占用的内存空间大小作为函数参数。该函数通过起始地址拷贝数据空间中的二进制数据,然后将二进制信息进行预处理操作,并转化为方便进行编码防护操作的字符串表示。作为一种实施方式,该编码防护接口可以通过 C语言并在仿真系统下实现。
步骤2:如图2,设计编码防护接口chEncode()对二进制格式数据进行编码防护操作,DATA_OBJECT chEncode(unsigned char*charbuf,int type,int bit);
该函数接口用于预处理数据信息的编码防护,通过预处理数据信息的字符串表示作为首位置的函数参数。type字段为选定的编码类型,通过内置类型整型表示,(其中type=1表示CRC码,type=2表示循环汉明码,type=3表示BCH 码,type=4表示LDPC码,type=5表示RM码)。通过输入相应的整型数,可以选取指定的编码方案,对预处理数据信息的字符串表示进行编码。bit字段表示编码过程中所指定的编码位数,当数据位数长度不满足编码位数的要求时,若为编码位数的整数倍,则将数据位拆分为该整数倍对应大小的字符串数组,对字符串数组中的元素进行编码防护操作。如若不是编码位数的整数倍,则首先在数据表示前进行补零操作,接下来将其拆分为字符串数组,进行编码防护操作。依次编码得到的相应冗余字符串表示数据可以通过字符串连接strcpy函数,进行进一步的处理,并最终得到编码后的字符串表示。通过bit字段作为输入参数,可以选取对应编码方案中的多种冗余位数对数据变量进行编码。该函数接口将一个 DATA_OBJECT类型的结构体变量作为接口函数的返回值,结构体的info字段存储原先的数据变量的数据位信息,codeword字段存储编码后的数据位信息。通过该编码接口对预处理数据信息进行编码操作,并将编码后的备份数据存储在内存空间当中。作为一种实施方式,该编码接口可以通过C语言并在仿真系统下实现。
步骤3:如图2,设计解码恢复接口chDecode()对编码备份数据进行解码操作,DATA_OBJECT chDecode(DATA_OBJECT temp,int type,int bit);
该函数接口设计用于完成备份数据的解码和纠错操作,将预先用于存储编码后标志位的结构体信息,通过信道模拟函数channel_simu()进行信道模拟,该函数接口用于模拟码字的传输信道,即将编码后的码字中的某个或某些比特位进行翻转,翻转的位置可能发生在编码码字序列的任意位置。将注入了随机错误的码字存储在DATA_OBJECT类型变量的recCodeWord字段当中。然后将DATA_OBJECT类型变量作为chDecode函数接口的输入。和编码接口类似,type 表示编码类型,bit表示解码位数。解码接口中的解码位数bit要和编码中选取的编码位数相对应。通过相应的编码类型和编码位数对recCodeWord字段的码字进行纠错和解码操作,得到解码后的数据信息的字符串表示,将其存储在 DATA_OBJECT类型变量的decCodeWord字段。然后将该DATA_OBJECT类型的结构体变量作为函数接口的返回值,恢复到原始数据的字符串表示。作为一种实施方式,该编码接口可以通过C语言并在仿真系统下实现。
步骤4:如图2,设计数据转换接口stringToData()将恢复数据拷贝到原始数据位置,void*stringToData(unsigned char*charBuf,unsigned char*dataBuf);
该接口用于将解码恢复后得到的字符串表示转化为原先对应的数据信息。将原始数据信息存储在dataBuf字节数组当中,通过memcpy标准库函数将其拷贝到原始数据信息所在的内存空间中,从而恢复原先数据信息。作为一种实施方式,该编码接口可以通过C语言并在仿真系统下实现。
为了验证本发明方案的有效性,以常见的各种数据类型的变量作为编码防护目标,进行了如下仿真测试:
首先列举了在外接存储器或者SRAM当中存储的常见数据信息类型,计算数据信息在内存空间中的位置和所占字节空间的大小,对不同的数据信息进行编码保护,得到编码后的备份数据信息。通过解码恢复操作,对数据信息进行解码,恢复原始的数据变量。具体流程如下:
步骤1:选取了八种常见的数据类型作为实验对象进行仿真,包括短整型,整型,长整型,单精度浮点型,双精度浮点型,整型数组,字符型变量和字符型数组。对于每种数据类型的数据信息,首先调用数据转换接口,通过取地址符得到数据变量的首地址,通过sizeof()得到数据变量的字节大小,然后将任意类型的数据转换为字符串表示。该字符串表示将会作为编码接口的输入对象。如图3 所示,其中采用字符数组作为测试样例,并得出其对应的字节大小为4。
步骤2:将各种类型的数据变量的字符串表示作为输入参数,然后通过type 字段选取相应的编码方案,根据编码方案选取合适的编码位数,来填充bit字段。然后调用编码接口对输入的字符串表示进行编码操作。编码过程中使用的编码方案,以及对应的编码位数如表1所示:
表1编码方案及位数表
通过上表中对应的编码方案和编码位数对二进制字符串进行编码操作,即可得到对应编码后位数的二进制字符串信息。如图3所示,通过对应的编码冗余位,字符数组对应的二进制位数从32位拓展到56位。
步骤3:通过信道模拟接口,选取error字段的值来设置注入错误的数据位数,在编码后的二进制字符串中注入固定位数的随机错误,来仿真星载系统数据存储出错的过程。如图3所示,注入错误后的二进制位数发生了逻辑状态翻转。
步骤4:通过与编码接口中相对应的解码方案和解码位数,调用解码接口,对发生错误后的二进制字符串信息进行纠错,纠正二进制字符串中发生的随机错误,然后进行解码操作,得到正确的二进制字符串的信息。如图3所示,解码恢复后的二进制格式和编码之前原始数据的二进制格式一致。
步骤5:将正确的二进制字符串转换为原先数据的二进制信息,通过先前得到的原数据变量的首地址,并将其重新拷贝到原数据所在的内存空间当中,来恢复正确的数据变量。
在实验仿真过程中,定义了几种比较常见的数据变量,包括整型,长整型,单精度浮点型,双精度浮点型,整型数组,字符型变量和字符型数组共七种常见的数据类型。采用CRC编码方案,4位编码位数为例。所得到的编解码效果如表2 所示:
表2编解码仿真结果
通过综合的仿真分析可知,针对不同的数据类型的数据变量调用编解码接口,对其进行编解码防护,都能够实现在内部逻辑状态发生翻转的情况下,将其恢复到原始的数据状态。从而验证了本发明设计的接口在星载辐射环境下进行软件防护的可行性和有效性,达到了星载系统软件防护的目的。
Claims (6)
1.一种基于冗余API接口的星载系统软件防护方法,其特征在于,包括以下步骤:
步骤1:从星载系统中所承载的存储器或者内存空间中提取进行交互控制过程的数据信息;
步骤2:将数据信息通过编码防护接口,进行编码备份,并将备份数据保存到星载系统存储区的内存空间当中;
步骤3:当调用原始数据信息时,提取备份数据,并通过解码恢复接口,将其进行解码操作,得到正确的数据信息;
步骤4:通过编解码得出的数据信息,还原数据流或控制流,拷贝到原始数据信息在星载系统存储空间的相应位置。
2.根据权利要求1所述的基于冗余API接口的星载系统软件防护方法,其特征在于,步骤1中所述从星载系统中所承载的存储器或者内存空间中提取进行交互控制过程的数据信息的具体实现步骤为:从存储器或者内存空间中提取出数据信息,进行处理的数据类型包括整型、长整型、单精度浮点型、双精度浮点型、整型数组、字符型变量和字符型数组共七种内置数据类型,以及程序设计结构中的结构体类型。
3.根据权利要求1所述的基于冗余API接口的星载系统软件防护方法,其特征在于,步骤2中所述将数据信息通过编码防护接口,进行编码备份的具体实现步骤为:
1)星载系统编码防护接口通过编码类型type字段作为输入参数,来设定编码防护过程中使用的编码方案;
2)星载系统编码防护接口通过设置编码冗余率bit字段作为输入参数,从选定编码方案中选择一种支持的编解码冗余率;
3)通过设定的编码方案和编码位数对步骤1中提取出的数据信息进行编码操作,得到编码后的备份数据,将其保存在星载系统存储空间中。
4.根据权利要求3所述的基于冗余API接口的星载系统软件防护方法,其特征在于,所述编码方案以及能够支持的编解码冗余率如下:
1)循环冗余码CRC
星载系统防护接口中支持编解码冗余率:
(3,1),(7,4),(15,11),(31,26),(63,57),(127,120);
2)循环汉明码CHC
星载系统防护接口中支持编解码冗余率:
(7,4),(15,11),(31,26),(63,57),(127,120);
3)BCH编码
星载系统防护接口中支持编解码冗余率:
(7,4),(15,11),(31,26),(63,57),(127,120),(15,7),(31,21),(63,51),(127,113);
4)低密度奇偶校验码LDPC
星载系统防护接口中支持编解码冗余率:
(16,8),(24,16),(40,32),(72,64),(128,120);
5)RM编码
星载系统防护接口中支持编解码冗余率:
(8,4),(16,11),(32,26),(64,57),(128,120),(16,5),(32,16),(64,42),(128,99)。
5.根据权利要求1所述的基于冗余API接口的星载系统软件防护方法,其特征在于,步骤3中所述当调用原始数据信息时,提取备份数据,并通过解码恢复接口,对其进行解码操作的具体实现步骤为:首先从星载系统存储结构所对应的内存空间中取出在编码过程中存储备份的二进制数据,调用解码恢复接口,按照步骤2中所选定的编解码冗余位进行解码恢复,将备份数据还原到编码前的二进制状态,采用解码后得到的二进制数据作为原始数据信息。
6.根据权利要求1所述的基于冗余API接口的星载系统软件防护方法,其特征在于,步骤4中所述通过编解码得到的有效数据信息,还原数据流或控制流的具体实现步骤为:通过步骤1中数据信息所对应的地址偏移量,通过memcpy函数将其重新拷贝到星载系统存储结构对应的内存空间当中,从而恢复正确的数据信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010600022.7A CN112052117B (zh) | 2020-06-28 | 2020-06-28 | 基于冗余api接口的星载系统软件防护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010600022.7A CN112052117B (zh) | 2020-06-28 | 2020-06-28 | 基于冗余api接口的星载系统软件防护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112052117A true CN112052117A (zh) | 2020-12-08 |
CN112052117B CN112052117B (zh) | 2023-07-25 |
Family
ID=73602565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010600022.7A Active CN112052117B (zh) | 2020-06-28 | 2020-06-28 | 基于冗余api接口的星载系统软件防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052117B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113422612A (zh) * | 2021-07-02 | 2021-09-21 | 海光信息技术股份有限公司 | 编码方法、译码方法及相关装置、电子设备和存储介质 |
CN114090135A (zh) * | 2021-11-24 | 2022-02-25 | 北京金堤科技有限公司 | 具有纠错功能且支持跨平台调用组件的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716211A (zh) * | 2004-07-02 | 2006-01-04 | 中国科学院上海微系统与信息技术研究所 | 数据差错检测和纠正用的交叉正反编码结构和解码的方法 |
CN108733363A (zh) * | 2018-05-17 | 2018-11-02 | 北京航空航天大学 | 数字卫星载荷情报编码解码源代码书写方法 |
US20200004627A1 (en) * | 2018-06-28 | 2020-01-02 | Western Digital Technologies, Inc. | Error correction decoding with redundancy data |
-
2020
- 2020-06-28 CN CN202010600022.7A patent/CN112052117B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716211A (zh) * | 2004-07-02 | 2006-01-04 | 中国科学院上海微系统与信息技术研究所 | 数据差错检测和纠正用的交叉正反编码结构和解码的方法 |
CN108733363A (zh) * | 2018-05-17 | 2018-11-02 | 北京航空航天大学 | 数字卫星载荷情报编码解码源代码书写方法 |
US20200004627A1 (en) * | 2018-06-28 | 2020-01-02 | Western Digital Technologies, Inc. | Error correction decoding with redundancy data |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113422612A (zh) * | 2021-07-02 | 2021-09-21 | 海光信息技术股份有限公司 | 编码方法、译码方法及相关装置、电子设备和存储介质 |
CN113422612B (zh) * | 2021-07-02 | 2023-11-03 | 海光信息技术股份有限公司 | 编码方法、译码方法及相关装置、电子设备和存储介质 |
CN114090135A (zh) * | 2021-11-24 | 2022-02-25 | 北京金堤科技有限公司 | 具有纠错功能且支持跨平台调用组件的方法和装置 |
CN114090135B (zh) * | 2021-11-24 | 2024-05-24 | 北京金堤科技有限公司 | 具有纠错功能且支持跨平台调用组件的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112052117B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11740960B2 (en) | Detection and correction of data bit errors using error correction codes | |
US8806295B2 (en) | Mis-correction and no-correction rates for error control | |
CN112052117B (zh) | 基于冗余api接口的星载系统软件防护方法 | |
US20100138717A1 (en) | Fork codes for erasure coding of data blocks | |
US20210218419A1 (en) | Method, device and apparatus for storing data, computer readable storage medium | |
CN115904798A (zh) | 存储器的纠错检错方法、系统以及控制器 | |
WO2016122515A1 (en) | Erasure multi-checksum error correction code | |
US7340666B1 (en) | Method and apparatus for using memory compression to enhance error correction | |
CN107402860B (zh) | 用于执行内建式自我测试的独立磁盘冗余数组译码系统 | |
CN110489268B (zh) | 一种应用于星上恶劣环境中存储系统的两级纠错编码方法与系统 | |
CN111061520B (zh) | 一种高可靠性加载运行嵌入式软件的方法 | |
US11182246B1 (en) | Continuous error coding | |
Hamidi | A New Method for Transformation Techniques in Secure Information Systems | |
Huang et al. | Transient errors and rollback recovery in LZ compression | |
CN117056149B (zh) | 一种内存测试方法、装置、计算设备及存储介质 | |
Domingos et al. | MMS: A Software for Error Monitoring in Memories Protected by ECC | |
Singh et al. | DESIGN AND DEVELOPMENT OF ENHANCED MEMORY RELIABILITY AGAINST MULTIPLE CELL UPSETS USING DMC | |
Reviriego et al. | Reduction of parity overhead in a subset of orthogonal Latin square codes | |
Erozan et al. | An EG-LDPC based 2-dimensional error correcting code for mitigating MBUs of SRAM memories | |
RANI et al. | Multi Bit Errors Detection and Correction using SRAM Based DMC | |
Patel et al. | An adaptive error correction scheme for computer memory system | |
Hadjicostis et al. | Fault-tolerant linear finite state machines | |
REDDY et al. | Enhanced Decimal Matrix Code for Detection and Correction of Multiple Cell Upsets in SRAM | |
KR20160017820A (ko) | 코딩 방법 및 코딩 장치 | |
Sharma et al. | An Error Detection and Correction Method in Semiconductor Memories Used in Communication Applications |
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 |