本发明涉及嵌入式系统检测领域,特别是涉及一种RAM检测方法及系统。
背景技术:
随着微处理器技术的发展,嵌入式处理器越来越多地应用于国民经济的各个领域。在各种嵌入式处理器中,RAM(Random Access Memory,随机存取存储器)作为数据和程序的存储单元是一个重要的组成部分,RAM的正常与否,直接关系到嵌入式处理器能否正常工作,为了保证数据处理的正确性以及程序的正常运行,需要在嵌入式处理器工作之前对RAM进行检测。
现有的检测方法是通过将预先设定的数据写入RAM,再对RAM内的数据进行读取,然后通过判断读取到的数据与写入的数据是否相同来判断RAM是否故障。但是该方法中由于CPU检测时检测程序需要占用RAM的部分内部空间,因此,只能先对RAM内未被占用的部分空间进行检测,然后再对另一部分空间进行检测,故需要下载对应于RAM内部不同地址的多个检测程序,来达到检测RAM内部的全部空间的目的,下载时间长,导致RAM检测时间长。
因此,如何提供一种检测时间短的RAM检测方法及系统是本领域技术人员目前需要解决的问题。
技术实现要素:
本发明的目的是提供一种RAM检测方法及系统,不需要下载多个检测程序,而是仅下载一次检测程序即可对RAM内的全部空间进行检测,节省检测程序的下载时间,从而减少RAM的检测时间。
为解决上述技术问题,本发明提供了一种RAM检测方法,包括:
将所述RAM的内部空间分为N份空间区域,并将其中一份所述空间区域作为运行空间来放置检测程序;其中,N为不小于2的正整数;
运行所述检测程序来分别对剩余的N-1份所述空间区域进行第一检测处理,得到第一检测结果;
当所述第一检测处理完成后,将所述检测程序拷贝至剩余的N-1份所述空间区域中的任一份空间区域内,并将拷贝后的检测程序内的地址更新为现位于的空间区域的地址;
运行地址更新后的检测程序,对所述地址更新后的检测程序原本位于的空间区域进行第二检测处理,得到第二检测结果;
根据所述第一检测结果与所述第二检测结果判断所述RAM的故障情况。
优选地,所述第一检测处理与所述第二检测处理的过程具体为:
将预设的原始数据分为多组预设数据;
分别对每组所述预设数据进行读写处理。
优选地,所述读写处理的过程具体为:
将所述预设数据写入待测区域;其中,当进行所述第一检测处理时,所述待测区域为剩余的N-1份所述空间区域中的任一份空间区域;当进行所述第二检测处理时,所述待测区域为所述地址更新后的检测程序原本位于的空间区域;
读取所述待测区域内的数据;
判断读取到的数据与所述预设数据是否相同,如果是,则此次检测所述待测区域正常;否则,此次检测所述待测区域故障。
优选地,所述将所述预设数据写入待测区域之前还包括:
将所述待测区域内的全部数据移动至除所述待测区域以外的另一份未被检测程序占用的空间区域内,其中,N不小于3;
检测处理完成后,将移动至所述除所述待测区域以外的另一份未被检测程序占用的空间区域内的全部数据移回所述待测区域内。
优选地,N取3。
优选地,该方法还包括:
当所述RAM正常工作时,对所述RAM内运行的工作程序实时进行ECC校验。
为解决上述技术问题,本发明还提供了一种RAM检测系统,包括:
分块单元,用于将所述RAM的内部空间分为N份空间区域,并将其中一份所述空间区域作为运行空间来放置检测程序;其中,N为不小于2的正整数;
检测单元,用于运行所述检测程序来分别对剩余的N-1份所述空间区域进行第一检测处理,得到第一检测结果,并将所述第一检测结果发送至判断单元;运行地址更新后的检测程序,对所述地址更新后的检测程序原本位于的空间区域进行第二检测处理,得到第二检测结果,并将所述第二检测结果发送至所述判断单元;
重定位单元,用于当所述第一检测处理完成后,将所述检测程序拷贝至剩余的N-1份所述空间区域中的任一份空间区域内,并将拷贝后的检测程序内的地址更新为现位于的空间区域的地址;
所述判断单元,用于根据所述第一检测结果与所述第二检测结果判断所述RAM的故障情况。
优选地,N取3。
优选地,该系统还包括:
ECC校验单元,用于当所述RAM正常工作时,对所述RAM内运行的工作程序实时进行ECC校验。
本发明提供了一种RAM检测方法及系统,通过运行检测程序对剩余的N-1份空间区域进行第一检测处理,然后将该检测程序拷贝至剩余的N-1份空间区域中的任一份空间区域内,并进行地址更新,使地址更新后的检测程序能够对检测程序原本位于的空间区域进行第二检测处理,由此可见,本发明不需要下载多个检测程序,而是仅下载一次检测程序即可对RAM内的全部空间进行检测,节省了检测程序的下载时间,从而减少了RAM的检测时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种RAM检测方法的过程的流程图;
图2为本发明提供的另一种RAM检测方法中的第一检测处理与第二检测处理的过程的流程图;
图3为本发明提供的另一种RAM检测方法中的读写处理的过程的流程图;
图4为本发明提供的一种RAM检测系统。
具体实施方式
本发明的核心是提供一种RAM检测方法及系统,不需要下载多个检测程序,而是仅下载一次检测程序即可对RAM内的全部空间进行检测,节省检测程序的下载时间,从而减少RAM的检测时间。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明提供了一种RAM检测方法,参见图1所示,图1为本发明提供的一种RAM检测方法的过程的流程图;该方法包括:
步骤s101:将RAM的内部空间分为N份空间区域,并将其中一份空间区域作为运行空间来放置检测程序;其中,N为不小于2的正整数;
步骤s102:运行检测程序来分别对剩余的N-1份空间区域进行第一检测处理,得到第一检测结果;
步骤s103:当第一检测处理完成后,将检测程序拷贝至剩余的N-1份空间区域中的任一份空间区域内,并将拷贝后的检测程序内的地址更新为现位于的空间区域的地址;
步骤s104:运行地址更新后的检测程序,对地址更新后的检测程序原本位于的空间区域进行第二检测处理,得到第二检测结果;
步骤s105:根据第一检测结果与第二检测结果判断RAM的故障情况。
本发明提供了一种RAM检测方法,通过运行检测程序对剩余的N-1份空间区域进行第一检测处理,然后将该检测程序拷贝至剩余的N-1份空间区域中的任一份空间区域内,并进行地址更新,使地址更新后的检测程序能够对检测程序原本位于的空间区域进行第二检测处理,由此可见,本发明不需要下载多个检测程序,而是仅下载一次检测程序即可对RAM内的全部空间进行检测,节省了检测程序的下载时间,从而减少了RAM的检测时间。
实施例二
基于实施例一的基础上,本发明还提供了另一种RAM检测方法,参见图2所示,图2为本发明提供的另一种RAM检测方法中的第一检测处理与第二检测处理的过程的流程图;
该方法中的第一检测处理与第二检测处理的过程具体为:
步骤s201:将预设的原始数据分为多组预设数据;
步骤s202:分别对每组预设数据进行读写处理。
其中,本发明中的第一检测处理与第二检测处理均采用上述步骤进行。
可以理解的是,现有技术中对RAM进行检测时,是对预设的原始数据直接进行一次性的写入和读取操作,当预设的原始数据的复杂度较高(即具有多个检测点)时,会导致需要的检测次数多,所需的检测时间长,而将预设的原始数据分成多组预设数据后,每组的检测点减少了,故减少了检测次数,从而减少了检测所需的时间。
例如,假设预设的原始数据中有M个检测点,检测次数为检测点个数的平方次,即检测次数为M2次,当将预设的原始数据分为两组后,每组预设数据包括个检测点,两组预设数据所需的检测次数之和为相比未分组之前,减少了次检测。
另外,参见图3所示,图3为本发明提供的另一种RAM检测方法中的读写处理的过程的流程图;这里的读写处理的过程具体为:
步骤s301:将预设数据写入待测区域;其中,当进行第一检测处理时,待测区域为剩余的N-1份空间区域中的任一份空间区域;当进行第二检测处理时,待测区域为地址更新后的检测程序原本位于的空间区域;
步骤s302:读取待测区域内的数据;
步骤s303:判断读取到的数据与预设数据是否相同,如果是,则此次检测待测区域正常;否则,此次检测待测区域故障。
可以理解的是,由于RAM是数据和程序的存储单元,有可能会出现多种故障,为了对多种故障类型进行检测,需要重复进行多次检测处理,每次预设不同的原始数据,当然,本发明对检测处理的重复次数并不做特别限定,对预设的原始数据的内容也不做限定,工作人员可根据实际情况自行设定。
另外,步骤s301之前还包括:
步骤s3011:将待测区域内的全部数据移动至除待测区域以外的另一份未被检测程序占用的空间区域内,其中,N不小于3;
步骤s3012:检测处理完成后,将移动至除待测区域以外的另一份未被检测程序占用的空间区域内的全部数据移回待测区域内。
可以理解的是,由于RAM进行检测处理时,会对原本位于待测区域内的数据造成破坏,因此,在检测之前将待测区域内的全部数据移至另一个未被检测程序占用且不进行检测处理的空间区域内,即可避免对RAM内存储的有用数据造成破坏,而想要实现上述操作,需要至少将RAM内的空间分为3份空间区域。
作为优选地,这里的N可以取3。
可以理解的是,当将RAM的空间分为3份时,检测程序占用一份空间区域,剩余的两份空间区域中一份空间区域作为待测区域,另一份空间区域便可以作为冗余区域来放置待测区域内的全部数据(这里的全部数据指的不是写入的预设数据,而是检测处理前就位于RAM内的有用数据),这样不仅能够避免破坏RAM内的有用数据,也避免了将RAM内的空间分的份数太多而造成检测过程过于复杂的情况出现。
当然,本发明对N的具体数值并不做特别限定。
进一步可知,本发明可将RAM中的每一份空间区域均分为一个数据区与一个代码区,其中,检测程序放置于代码区内,而检测程序运行时所使用的预设的原始数据则位于与检测程序所在的代码区对应的数据区内;另外,进行第一检测处理或第二检测处理时,读写处理均是对待测区域内的数据区进行的。
作为优选地,该方法还包括:
当RAM正常工作时,对RAM内运行的工作程序实时进行ECC(Error Checking and Correcting,错误检查和纠正)校验。
可以理解的是,第一检测处理与第二检测处理是在RAM停止工作时、对RAM本身产生的故障进行检测,这种故障在每次写入特定数据的时候均会出现,即第一检测处理与第二检测处理是对RAM的硬失效进行了检测。而ECC校验是对RAM正常工作时临时产生的故障进行检测,这种临时产生的故障并不是一直出现的,而是偶尔出现的(即此次运行时出现了某种故障,但可能下一次运行时该故障并未出现),即ECC校验能够对RAM正常工作过程中产生的软失效进行检测。
与实施例一相比,本实施例将预设的原始数据分为了多组预设数据,分别进行读写处理,减少了检测次数,从而减少了检测所需的时间;并且,本实施例在读写处理之前将待测区域内的全部数据移出,避免了对待测区域内的有用数据造成破坏;且将RAM内的空间分为3份,不仅能够实现上述目的,也不会使检测过程过于复杂,同时,本实施例还利用ECC校验对RAM正常工作过程中产生的软失效进行了检测,检测的故障类型多样,检测故障覆盖率高。
本发明还提供了一种RAM检测系统,参见图4所示,图4为本发明提供的一种RAM检测系统。该系统包括:
分块单元11,用于将RAM的内部空间分为N份空间区域,并将其中一份空间区域作为运行空间来放置检测程序;其中,N为不小于2的正整数;
检测单元12,用于运行检测程序来分别对剩余的N-1份空间区域进行第一检测处理,得到第一检测结果,并将第一检测结果发送至判断单元14;运行地址更新后的检测程序,对地址更新后的检测程序原本位于的空间区域进行第二检测处理,得到第二检测结果,并将第二检测结果发送至判断单元14;
重定位单元13,用于当第一检测处理完成后,将检测程序拷贝至剩余的N-1份空间区域中的任一份空间区域内,并将拷贝后的检测程序内的地址更新为现位于的空间区域的地址;
判断单元14,用于根据第一检测结果与第二检测结果判断RAM的故障情况。
其中,这里的分块单元11、检测单元12、重定位单元13以及判断单元14均位于CPU内部。当然,本发明对此不作特别限定。
进一步可知,本发明可将RAM中的每一份空间区域均分为一个数据区与一个代码区,其中,检测程序放置于代码区内,而检测程序运行时所使用的预设的原始数据则位于与检测程序所在的代码区对应的数据区内;另外,进行第一检测处理或第二检测处理时,读写处理均是对待测区域内的数据区进行的。
作为优选地,这里的N可以取3。
当然,本发明对N的具体数值并不做特别限定。
作为优选地,该系统还包括:
ECC校验单元15,用于当RAM正常工作时,对RAM内运行的工作程序实时进行ECC校验。
可以理解的是,第一检测处理与第二检测处理是在RAM停止工作时、对RAM本身产生的故障进行检测,这种故障在每次写入特定数据的时候均会出现,即第一检测处理与第二检测处理是对RAM的硬失效进行了检测。而ECC校验是对RAM正常工作时临时产生的故障进行检测,这种临时产生的故障并不是一直出现的,而是偶尔出现的(即此次运行时出现了某种故障,但可能下一次运行时该故障并未出现),即ECC校验能够对RAM正常工作过程中产生的软失效进行检测。
本发明提供了一种RAM检测系统,通过运行检测程序对剩余的N-1份空间区域进行第一检测处理,然后将该检测程序拷贝至剩余的N-1份空间区域中的任一份空间区域内,并进行地址更新,使地址更新后的检测程序能够对检测程序原本位于的空间区域进行第二检测处理,由此可见,本发明不需要下载多个检测程序,而是仅下载一次检测程序即可对RAM内的全部空间进行检测,节省了检测程序的下载时间,从而减少了RAM的检测时间。
需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。