CN107943604B - 用于实时操作系统下的安全计算机内存自检方法及装置 - Google Patents

用于实时操作系统下的安全计算机内存自检方法及装置 Download PDF

Info

Publication number
CN107943604B
CN107943604B CN201710973192.8A CN201710973192A CN107943604B CN 107943604 B CN107943604 B CN 107943604B CN 201710973192 A CN201710973192 A CN 201710973192A CN 107943604 B CN107943604 B CN 107943604B
Authority
CN
China
Prior art keywords
self
area
memory
checking
test
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.)
Active
Application number
CN201710973192.8A
Other languages
English (en)
Other versions
CN107943604A (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.)
CRSC Research and Design Institute Group Co Ltd
Original Assignee
CRSC Research and Design Institute Group Co Ltd
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 CRSC Research and Design Institute Group Co Ltd filed Critical CRSC Research and Design Institute Group Co Ltd
Priority to CN201710973192.8A priority Critical patent/CN107943604B/zh
Publication of CN107943604A publication Critical patent/CN107943604A/zh
Application granted granted Critical
Publication of CN107943604B publication Critical patent/CN107943604B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

本发明涉及一种用于实时操作系统下的安全计算机内存自检方法,将实时操作系统在内存的区域分为没有用到区域、只读区域、文本区域和可读写区域,并对不同区域标注不同标识;进行内存自检时,根据标识识别不同区域,不同区域进行不同自检方法:对没有用到区域直接跳过不进行相应区域自检,对只读区域和文本区域进行CRC值比较测试自检,对可读写区域进行擦写测试自检。本发明方法通过将包括实时操作系统的内存区域进行划分并进行不同的自检方法,具有检测效率高、定位准确等优点,极大的提高了基于实时操作系统下的安全计算机的可靠性和安全性。

Description

用于实时操作系统下的安全计算机内存自检方法及装置
技术领域
本发明涉及一种内存自检方法及装置,特别涉及一种用于实时操作系统下的安全计算机内存自检方法及装置,属于内存检测技术领域。
背景技术
在轨道交通行业中,各种控制系统和设备功能复杂,对实时性和安全性要求很高,系统任何部件的错误或故障都可能导致严重后果。对于应用在轨道交通行业的的安全计算机,需要满足高安全性和高可靠性的要求。
当前应用在轨道交通行业的的安全计算机,由于外部或者内部的异常会导致内存数据被异常改写,因此开发人员需要关注内存功能的完整性和可靠性,通过内存检测方法来对内存故障进行检测和诊断,例如对内存进行动态检测,从而保证内存数据的正确性和安全性。
然而,现有的安全计算机内存故障检测方法都是基于无操作系统环境下的,其内存分布程序比较清楚,而对于基于操作系统的内存故障检测方案,有些内存区域为操作系统区域,对于应用程序并不可见,很难做到全部应用的区域自检。因此,亟需一种基于实时操作系统下的安全计算机内存自检方法。
发明内容
针对上述现有技术所存在的技术缺陷,本发明把基于操作系统环境下的内存划分为几个不同区域,根据不同区域进行相应的内存自检方法,从而保证内存数据的正确性和安全性。
为了实现上述发明目的,本发明采用如下技术方案:一种用于实时操作系统下的安全计算机内存自检方法,将实时操作系统在内存的区域进行划分,根据内存属性分为多个不同区域,并对不同区域标注不同标识;进行内存自检时,根据标识识别不同区域,对不同的区域采用不同的方法进行自检。
进一步的,所述区域划分为没有用到区域、只读区域、文本区域和可读写区域;对没有用到区域直接跳过不进行相应区域自检,对只读区域和文本区域进行CRC值比较测试自检,对可读写区域进行擦写测试自检。
进一步的,进行内存自检前分别预先计算只读区域和文本区域的内存数据CRC值,并将预先计算好的内存数据CRC值保存于操作系统镜像文件的用户保留区域。
进一步的,所述内存自检方法具体包括如下步骤:
S100、判断待测区域是否为没有用到区域,若不是则执行步骤S200;若是则直接跳过,不进行相应区域自检,继续进行下一区域的测试,执行步骤S200;
S200、判断待测区域是否为只读区域或文本区域,若是则执行步骤S400,若不是则执行S300;
S300、判断待测区域是否为可读写区域,若是则执行步骤S500;
S400、对当前区域的内存数据进行CRC值比较测试,在线计算当前区域的内存数据CRC值,将在线计算的内存数据CRC值与预先计算好的内存数据CRC值进行比较,若相同则认为本区域自检通过,继续进行下一区域的测试,重复步骤S100,直至所有区域均自检完毕后执行步骤S700;若不同则认为本区域自检失败,执行步骤S600;
S500、对当前区域的内存数据进行擦写测试,若测试通过则认为本区域内自检通过,继续进行下一区域的测试,重复步骤S100,直至所有区域均自检完毕后执行步骤S700;若测试不通过则认为本区域自检失败,执行步骤S600;
S600、对自检失败的区域进行标识,然后重复步骤S100,直至所有区域均自检完毕后执行步骤S700;
S700、判断几个区域是否均自检成功,若是则认为内存正常;否则认为内存出现故障,并进行异常处理。
进一步的,所述步骤S500进行擦写测试的具体方法为:首先把可读写区域测试前的内存数据进行保存,然后写入测试值,接着读出测试值,比较读出测试值与写入测试值是否一致,一致则认为测试通过,并恢复原来数据。
进一步的,所述方法适用于实时操作系统下的安全计算机内存自检,所述安全计算机是技术实现过程符合EN50128或EN50129及安全等级达到SIL4的安全系统计算机。
进一步的,所述实时操作系统包括Vxworks、μC/OS-II实时操作系统。
本发明还提供一种用于实时操作系统下的安全计算机内存自检装置,所述装置包括:
内存分配单元,用于划分实时操作系统在内存的布局,将实时操作系统在内存的布局分为多个不同区域,并对不同区域标注不同标识;
内存检测单元,用于对每个区域的内存情况进行检测,根据不同的区域采用不同的方法进行自检,判断内存是否出现故障。
进一步的,所述内存检测单元包括:
内存识别模块,用于根据对不同区域所标注的不同标识,识别所述不同区域;
CRC值计算模块,用于内存自检前预先计算只读区域和文本区域的内存数据CRC值,并将预先计算好的内存数据CRC值保存于操作系统镜像文件的用户保留区域;以及内存自检时在线计算当前待测区域的内存数据CRC值;
CRC值比较模块:用于比较在线计算的内存数据CRC值与预先计算好的内存数据CRC值是否相同,从而判断只读区域和文本区域的内存数据是否存在异常;
擦写测试模块:用于对可读写区域内存数据进行擦写测试,从而判断可读写区域内存数据是否存在异常。
本发明带来的有益技术效果是:本发明是一种基于操作系统环境下的内存故障检测方法,通过将实时操作系统在内存区域进行划分,并对不同的区域采用不同的方法进行自检,能够有效保证检测内存数据被改写而出现的错误状况,具有检测效率高、定位准确等优点,极大的提高了基于实时操作系统下的安全计算机的可靠性和安全性。
具体实施方式
下面将通过具体的实施方式对本发明作进一步详细说明。
本发明提供一种用于实时操作系统下的安全计算机内存自检方法及装置,通过将实时操作系统在内存的区域进行划分,并对不同的区域采用不同的方法进行自检来实现。
首先,将实时操作系统在内存的区域进行划分,根据内存属性分为多个不同区域,具体分为:没有用到区域、只读区域、文本区域和可读写区域,并对每个不同区域标注不同标识。进行内存自检时,根据标识识别不同区域,对不同的区域采用不同的方法进行自检:对没有用到区域直接跳过不进行相应区域自检,对只读区域和文本区域其进行CRC值比较测试自检(因为此部分数据内容不发生变化),对可读写区域进行擦写测试自检(因为此部分数据内容发生变化)。
进一步的,进行内存自检前分别预先计算只读区域和文本区域的内存数据CRC值,并将预先计算好的内存数据CRC值保存于操作系统镜像文件的用户保留区域。
在一个实施例中,所述内存自检方法具体包括如下步骤:
S100、判断待测区域是否为没有用到区域,若不是则执行步骤S200;若是则直接跳过,不进行相应区域自检,继续进行下一区域的测试,执行步骤S200;
S200、判断待测区域是否为只读区域或文本区域,若是则执行步骤S400,若不是则执行S300;
S300、判断待测区域是否为可读写区域,若是则执行步骤S500;
S400、对当前区域的内存数据进行CRC值比较测试,在线计算当前区域的内存数据CRC值,将在线计算的内存数据CRC值与预先计算好的内存数据CRC值进行比较,若相同则认为本区域自检通过,继续进行下一区域的测试,重复步骤S100,直至所有区域均自检完毕后执行步骤S700;若不同则认为本区域自检失败,执行步骤S600;
S500、对当前区域的内存数据进行擦写测试,若测试通过则认为本区域内自检通过,继续进行下一区域的测试,重复步骤S100,直至所有区域均自检完毕后执行步骤S700;若测试不通过则认为本区域自检失败,执行步骤S600;
S600、对自检失败的区域进行标识,然后重复步骤S100,直至所有区域均自检完毕后执行步骤S700;
S700、判断几个区域是否均自检成功,若是则认为内存正常;否则认为内存出现故障,并进行异常处理。
进一步的,所述步骤S500进行擦写测试的具体方法为:首先把可读写区域测试前的内存数据进行保存,然后写入测试值,接着读出测试值,比较读出测试值与写入测试值是否一致,一致则认为测试通过,并恢复原来数据。
进一步的,所述方法适用于实时操作系统下的安全计算机内存自检,所述安全计算机是技术实现过程符合EN50128或EN50129及安全等级达到SIL4的安全系统计算机。
进一步的,所述实时操作系统包括Vxworks、μC/OS-II实时操作系统。
在一个实施例中,提供一种用于实时操作系统下的安全计算机内存自检装置,所述装置包括:
内存分配单元,用于划分实时操作系统在内存的布局,将实时操作系统在内存的布局分为多个不同区域,并对不同区域标注不同标识;
内存检测单元,用于对每个区域的内存情况进行检测,根据不同的区域采用不同的方法进行自检,判断内存是否出现故障。
进一步的,所述内存检测单元包括:
内存识别模块,用于根据对不同区域所标注的不同标识,识别所述不同区域;
CRC值计算模块,用于内存自检前预先计算只读区域和文本区域的内存数据CRC值,并将预先计算好的内存数据CRC值保存于操作系统镜像文件的用户保留区域;以及内存自检时在线计算当前待测区域的内存数据CRC值;
CRC值比较模块:用于比较在线计算的内存数据CRC值与预先计算好的内存数据CRC值是否相同,从而判断只读区域和文本区域的内存数据是否存在异常;
擦写测试模块:用于对可读写区域内存数据进行擦写测试,从而判断可读写区域内存数据是否存在异常
本发明方法及装置具有检测效率高、定位准确等优点,极大的提高了基于实时操作系统下的安全计算机的可靠性和安全性。
上述实施例是以本发明技术方案为前提进行实施的,给出了详细的实施方式和具体的操作步骤,需要技术人员理解CRC算法等知识。但本发明的保护范围并不限于上述实施例,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为本发明的保护范围。

Claims (6)

1.一种用于实时操作系统下的安全计算机内存自检方法,其特征在于,将实时操作系统在内存的区域进行划分,根据内存属性分为多个不同区域,并对不同区域标注不同标识;所述区域划分为没有用到区域、只读区域、文本区域和可读写区域;
进行内存自检时,根据标识识别不同区域,对不同的区域采用不同的方法进行自检;
进行内存自检前分别预先计算只读区域和文本区域的内存数据CRC值,并将预先计算好的内存数据CRC值保存于操作系统镜像文件的用户保留区域;
内存自检时,判断待测区域是否为只读区域或文本区域,若是,对当前区域的内存数据进行CRC值比较测试,在线计算当前区域的内存数据CRC值,将在线计算的内存数据CRC值与预先计算好的内存数据CRC值进行比较,若相同,则认为本区域自检通过;
所述自检方法具体包括如下步骤:S100、判断待测区域是否为没有用到区域,若不是则执行步骤S200;若是则直接跳过,不进行相应区域自检,继续进行下一区域的自检,执行步骤S200;S200、判断待测区域是否为只读区域或文本区域,若是则执行步骤S400,若不是则执行S300;S300、判断待测区域是否为可读写区域,若是则执行步骤S500;S400、对当前区域的内存数据进行CRC值比较测试,在线计算当前区域的内存数据CRC值,将在线计算的内存数据CRC值与预先计算好的内存数据CRC值进行比较,若相同则认为本区域自检通过,继续进行下一区域的自检,重复步骤S100,直至所有区域均自检完毕后执行步骤S700;若不同则认为本区域自检失败,执行步骤S600;S500、对当前区域的内存数据进行擦写测试,若测试通过则认为本区域内自检通过,继续进行下一区域的测试,重复步骤S100,直至所有区域均自检完毕后执行步骤S700;若测试不通过则认为本区域自检失败,执行步骤S600;S600、对自检失败的区域进行标识,然后重复步骤S100,直至所有区域均自检完毕后执行步骤S700;S700、判断几个区域是否均自检成功,若是则认为内存正常;否则认为内存出现故障,并进行异常处理。
2.根据权利要求1所述方法,其特征在于,所述步骤S500进行擦写测试的具体方法为:首先把可读写区域测试前的内存数据进行保存,然后写入测试值,接着读出测试值,比较读出测试值与写入测试值是否一致,一致则认为测试通过,并恢复原来数据。
3.根据权利要求1或2所述方法,其特征在于,所述方法适用于实时操作系统下的安全计算机内存自检,所述安全计算机是技术实现过程符合EN50128或EN50129及安全等级达到SIL4的安全系统计算机。
4.根据权利要求3所述方法,其特征在于,所述实时操作系统包括Vxworks、μC/OS-II实时操作系统。
5.一种用于实时操作系统下的安全计算机内存自检装置,其特征在于,所述装置包括:内存分配单元,用于划分实时操作系统在内存的布局,将实时操作系统在内存的布局分为多个不同区域,并对不同区域标注不同标识;所述区域划分为没有用到区域、只读区域、文本区域和可读写区域;内存检测单元,用于对每个区域的内存情况进行检测,根据不同的区域采用不同的方法进行自检,判断内存是否出现故障;
所述内存检测单元包括:内存识别模块,用于根据对不同区域所标注的不同标识,识别所述不同区域;CRC值计算模块,用于内存自检前预先计算只读区域和文本区域的内存数据CRC值,并将预先计算好的内存数据CRC值保存于操作系统镜像文件的用户保留区域;以及内存自检时在线计算当前待测区域的内存数据CRC值;CRC值比较模块:用于比较在线计算的内存数据CRC值与预先计算好的内存数据CRC值是否相同,从而判断只读区域和文本区域的内存数据是否存在异常;
所述自检具体包括如下步骤:S100、判断待测区域是否为没有用到区域,若不是则执行步骤S200;若是则直接跳过,不进行相应区域自检,继续进行下一区域的自检,执行步骤S200;S200、判断待测区域是否为只读区域或文本区域,若是则执行步骤S400,若不是则执行S300;S300、判断待测区域是否为可读写区域,若是则执行步骤S500;S400、对当前区域的内存数据进行CRC值比较测试,在线计算当前区域的内存数据CRC值,将在线计算的内存数据CRC值与预先计算好的内存数据CRC值进行比较,若相同则认为本区域自检通过,继续进行下一区域的自检,重复步骤S100,直至所有区域均自检完毕后执行步骤S700;若不同则认为本区域自检失败,执行步骤S600;S500、对当前区域的内存数据进行擦写测试,若测试通过则认为本区域内自检通过,继续进行下一区域的测试,重复步骤S100,直至所有区域均自检完毕后执行步骤S700;若测试不通过则认为本区域自检失败,执行步骤S600;S600、对自检失败的区域进行标识,然后重复步骤S100,直至所有区域均自检完毕后执行步骤S700;S700、判断几个区域是否均自检成功,若是则认为内存正常;否则认为内存出现故障,并进行异常处理。
6.根据权利要求5所述的装置,其特征在于,所述内存检测单元还包括擦写测试模块:用于对可读写区域内存数据进行擦写测试,从而判断可读写区域内存数据是否存在异常。
CN201710973192.8A 2017-10-18 2017-10-18 用于实时操作系统下的安全计算机内存自检方法及装置 Active CN107943604B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710973192.8A CN107943604B (zh) 2017-10-18 2017-10-18 用于实时操作系统下的安全计算机内存自检方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710973192.8A CN107943604B (zh) 2017-10-18 2017-10-18 用于实时操作系统下的安全计算机内存自检方法及装置

Publications (2)

Publication Number Publication Date
CN107943604A CN107943604A (zh) 2018-04-20
CN107943604B true CN107943604B (zh) 2021-04-27

Family

ID=61936201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710973192.8A Active CN107943604B (zh) 2017-10-18 2017-10-18 用于实时操作系统下的安全计算机内存自检方法及装置

Country Status (1)

Country Link
CN (1) CN107943604B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614056B (zh) * 2018-12-28 2021-11-23 杭州迪普科技股份有限公司 一种应对内存自然老化的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176876A (zh) * 2013-03-19 2013-06-26 卡斯柯信号有限公司 一种高效安全的计算机在线自检方法及自检装置
CN103455397A (zh) * 2013-09-06 2013-12-18 杭州华为数字技术有限公司 一种系统自检的方法、设备及系统
CN105388883A (zh) * 2015-11-05 2016-03-09 株洲南车时代电气股份有限公司 主机插件的运行自检方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176876A (zh) * 2013-03-19 2013-06-26 卡斯柯信号有限公司 一种高效安全的计算机在线自检方法及自检装置
CN103455397A (zh) * 2013-09-06 2013-12-18 杭州华为数字技术有限公司 一种系统自检的方法、设备及系统
CN105388883A (zh) * 2015-11-05 2016-03-09 株洲南车时代电气股份有限公司 主机插件的运行自检方法和装置

Also Published As

Publication number Publication date
CN107943604A (zh) 2018-04-20

Similar Documents

Publication Publication Date Title
KR101805234B1 (ko) 데이터 메모리의 모니터링 방법, 비일시적 컴퓨터 판독가능 저장 매체 및 보조 메모리
US8291379B2 (en) Runtime analysis of a computer program to identify improper memory accesses that cause further problems
US9990245B2 (en) Electronic device having fault monitoring for a memory and associated methods
CN103208313B (zh) 一种检测方法及系统
CN107463516B (zh) 控制装置
CN110727597A (zh) 一种基于日志排查无效代码补全用例的方法
CN111752833B (zh) 一种软件质量体系准出方法、装置、服务器及存储介质
JP2958024B2 (ja) 電子機器の製造及び検査方法
CN107943604B (zh) 用于实时操作系统下的安全计算机内存自检方法及装置
CN112925524A (zh) 一种检测驱动程序中不安全直接存储器访问的方法及装置
CN102981925A (zh) 应用于通讯设备的寄存器巡检校验控制方法
JP5545771B2 (ja) 診断装置、診断方法および診断プログラム診断方法
CN107562593A (zh) 一种验证内存ecc功能的自动化测试方法与系统
CN116345690A (zh) 基于供电系统bom的pscada虚警识别方法及系统
CN109686397B (zh) 具有自检功能的存储器及其检测方法
CN110826114B (zh) 基于ssd安全擦除后的用户数据测试方法和装置
CN114428700A (zh) 一种内存自检方法及装置
CN113625957A (zh) 一种硬盘故障的检测方法、装置及设备
CN112631821A (zh) 内存故障检测定位方法、装置、计算机设备及存储介质
CN104461870A (zh) 记录测试结果的方法及装置
Wilcox et al. Risk-Driven and Mitigation-Focused SEFI Testing of NAND Flash Devices
US8108740B2 (en) Method for operating a memory device
CN106776100A (zh) 一种存储器数据分层校验方法
CN117743062B (zh) 一种应用于存储器芯片的抗辐照检测方法
CN113094221B (zh) 故障注入方法、装置、计算机设备以及可读存储介质

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