书签 分享 收藏 举报 版权申诉 / 13

内存的检测方法和装置.pdf

  • 上传人:zhu****69
  • 文档编号:4028014
  • 上传时间:2018-08-12
  • 格式:PDF
  • 页数:13
  • 大小:703.37KB
  • 摘要
    申请专利号:

    CN201410852042.8

    申请日:

    2014.12.31

    公开号:

    CN104598342A

    公开日:

    2015.05.06

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 11/22申请日:20141231|||公开

    IPC分类号:

    G06F11/22

    主分类号:

    G06F11/22

    申请人:

    曙光信息产业(北京)有限公司

    发明人:

    冯蕊

    地址:

    100193北京市海淀区东北旺西路8号院36号楼

    优先权:

    专利代理机构:

    北京德恒律治知识产权代理有限公司11409

    代理人:

    章社杲; 卢军峰

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开了一种内存的检测方法,该校验方法包括:在旁路模式下,根据预定的提取规则从即将输入内存的数据中提取第一数据,并通过预定位数的CRC校验算法对提取的第一数据进行计算,得到第一校验码;在旁路模式下,根据预定的提取规则从即将输出内存的数据中提取第二数据,并通过预定位数的CRC校验算法对提取的数据进行计算,得到第二校验码;将第一校验码和第二校验码进行对比,根据对比结果确定内存的工作情况。本发明通过在旁路模式下对内存进行实时的检测,能够避免内存检测过程中对主干线上的数据处理造成影响,且不影响系统性能;还通过对输入和输出的同一数据进行相同的校验处理,增加内存检测的精准度,并及时的发现内存中存在的问题。

    权利要求书

    权利要求书
    1.  一种内存的检测方法,其特征在于,包括:
    在旁路模式下,根据预定的提取规则从即将输入内存的数据中提取第 一数据,并通过预定位数的循环冗余校验码CRC的校验算法对提取的所述 第一数据进行计算,得到第一校验码;
    在所述旁路模式下,根据所述预定的提取规则从即将输出所述内存的 数据中提取第二数据,并通过所述预定位数的CRC校验算法对提取的所述 数据进行计算,得到第二校验码;
    将所述第一校验码和所述第二校验码进行对比,根据对比结果确定所 述内存的工作情况。

    2.  根据权利要求1所述的检测方法,其特征在于,在接收到数据输入 所述内存的信号的情况下,根据所述预定的提取规则从即将输入所述内存 的数据中提取所述第一数据。

    3.  根据权利要求1所述的检测方法,其特征在于,将所述第一校验码 和所述第二校验码进行对比,根据所述对比结果确定所述内存的工作情况 包括:
    在所述对比结果为所述第一校验码和所述第二校验码不同的情况下, 纪录一次内存异常;
    判断所述内存异常的次数是否达到预定的阈值;
    在所述内存异常的次数达到所述预先设定的阈值的情况下,确定所述 内存工作异常。

    4.  根据权利要求1所述的检测方法,其特征在于,在预定的时间内对 所述内存进行检测。

    5.  根据权利要求1所述的检测方法,其特征在于,所述检测方法进一 步包括:
    根据所述内存所在系统的性能和/或内存检测精度要求,确定所述CRC 校验算法的位数、以及所述提取规则。

    6.  一种内存的检测装置,其特征在于,包括:
    第一计算模块,用于在旁路模式下,根据预定的提取规则从即将输入 内存的数据中提取第一数据,并通过预定位数的CRC校验算法对提取的所 述第一数据进行计算,得到第一校验码;
    第二计算模块,用于在所述旁路模式下,根据所述预定的提取规则从 即将输出所述内存的数据中提取第二数据,并通过所述预定位数的CRC校 验算法对提取的所述数据进行计算,得到第二校验码;
    分析模块,用于将所述第一校验码和所述第二校验码进行对比,根据 对比结果确定所述内存的工作情况。

    7.  根据权利要求6所述的检测装置,其特征在于,第一计算模块包括 提取模块,用于在旁路模式、且接收到数据输入所述内存的信号的情况下, 根据所述预定的提取规则从即将输入所述内存的数据中提取所述第一数 据。

    8.  根据权利要求6所述的检测装置,其特征在于,所述分析模块包括:
    记录模块,用于在所述对比结果为所述第一校验码和所述第二校验码 不同的情况下,纪录一次内存异常;
    判断模块,用于判断所述内存异常的次数是否达到预定的阈值;
    分析子模块,用于在所述内存异常的次数达到所述预先设定的阈值的 情况下,确定所述内存工作异常。

    9.  根据权利要求6所述的检测装置,其特征在于,所述检测装置用于 在预定的时间内对所述内存进行检测。

    10.  根据权利要求6所述的检测装置,其特征在于,所述检测装置进 一步包括:
    确定模块,用于根据所述内存所在系统的性能和/或内存检测精度要 求,确定所述CRC校验算法的位数、以及所述提取规则。

    说明书

    说明书内存的检测方法和装置
    技术领域
    本发明涉及计算机领域,具体来说,涉及一种内存的检测方法和装置。
    背景技术
    随着网络技术的房展,网络中所需检测与处理的信息量越来越大,因此, 使用大容量数据的内存已成为必然趋势。在网络安全领域,由于网络安全设备 对数据内容的敏感性,因此,内存芯片工作的正常与否直接影响着数据后续的 检测与处理,也就是说,目前对于内存的检测显得十分必要和紧迫。
    而对于内存所出现的错误来说,根据错误产生的原因可分为硬错误和软错 误,其中,硬错误是由硬件的损害或缺陷所引起的,因此硬错误所引起的数据 不正确也是无法纠正的;而对于软错误来说,其是随机出现的,例如在内存附 近突然出现电子干扰等干扰因素时,就很容易造成内存软错误的发生,而这类 错误就需要内存的实时校验来检测。
    而目前常用的内存校验方法可包括内存奇偶校验与内存错误检查和纠正 (ECC)校验。
    其中,对于内存奇偶校验来说,其主要是通过在原来数据位的基础上增加 一个数据位的方式来检查当前8为数据的正确性,但随着数据位的增加,用来 检验的数据位也成倍增加,因此当数据量非常大时,该校验算法所占用的资源 就会非常多,而当出现校验错误时,系统就会中断,甚至会导致系统瘫痪。
    而对于ECC校验来说,其也是通过在原来的数据位上外加校验为来实现 的,虽然其通过每次只增加一位校验位的方式克服了奇偶校验的数据位成倍增 加所带来的问题,但是,带ECC校验的内存需要进行复杂的设置,并且,其 在校验过程中需要主板的支持,并且,还需要在基本输入输出系统(BIOS) 中进行相应的设置,那么在使用ECC校验内存的过程中,就会对系统的性能 造成很大的影响,而这对于需要高速处理数据的网络安全设备则是完全不可取 的;此外,带ECC校验的内存,其在价格上也并不占优势,比普通的内存要 昂贵的多,显然,这并不符合企业级的生产。
    针对相关技术中在对内存进行校验时影响系统的性能的问题,目前尚未提 出有效的解决方案。
    发明内容
    针对相关技术中在对内存进行校验时存在影响系统性能的问题,本发明提 出一种内存的检测方法和装置,能够在旁路模式下对内存的工作情况进行实时 的检测,避免了内存检测对系统的性能造成影响。
    本发明的技术方案是这样实现的:
    根据本发明的一个方面,提供了一种内存的检测方法。
    该检测方法包括:
    在旁路模式下,根据预定的提取规则从即将输入内存的数据中提取第一数 据,并通过预定位数的循环冗余校验码(CRC)的校验算法对提取的第一数据 进行计算,得到第一校验码;
    在旁路模式下,根据预定的提取规则从即将输出内存的数据中提取第二数 据,并通过预定位数的CRC校验算法对提取的数据进行计算,得到第二校验 码;
    将第一校验码和第二校验码进行对比,根据对比结果确定内存的工作情 况。
    其中,在接收到数据输入内存的信号的情况下,根据预定的提取规则从即 将输入内存的数据中提取第一数据。
    另外,在将第一校验码和第二校验码进行对比,并根据对比结果来确定内 存的工作情况时,可在对比结果为第一校验码和第二校验码不同的情况下,纪 录一次内存异常;并判断内存异常的次数是否达到预定的阈值;在内存异常的 次数达到预先设定的阈值的情况下,确定内存工作异常。
    此外,在对内存进行检测时,可在预定的时间内对内存进行检测。
    此外,该检测方法进一步包括:
    根据内存所在系统的性能和/或内存检测精度要求,确定CRC校验算法的 位数、以及提取规则。
    根据本发明的另一方面,提供了一种内存的检测装置。
    该检测装置包括:
    第一计算模块,用于在旁路模式下,根据预定的提取规则从即将输入内存 的数据中提取第一数据,并通过预定位数的CRC校验算法对提取的第一数据 进行计算,得到第一校验码;
    第二计算模块,用于在旁路模式下,根据预定的提取规则从即将输出内存 的数据中提取第二数据,并通过预定位数的CRC校验算法对提取的数据进行 计算,得到第二校验码;
    分析模块,用于将第一校验码和第二校验码进行对比,根据对比结果确 定内存的工作情况。
    其中,第一计算模块可包括提取模块,用于在旁路模式、且接收到数据输 入内存的信号的情况下,根据预定的提取规则从即将输入内存的数据中提取第 一数据。
    此外,分析模块可包括:
    记录模块,用于在对比结果为第一校验码和第二校验码不同的情况下,纪 录一次内存异常;
    判断模块,用于判断内存异常的次数是否达到预定的阈值;
    分析子模块,用于在内存异常的次数达到预先设定的阈值的情况下,确定 内存工作异常。
    另外,该检测装置用于在预定的时间内对内存进行检测。
    此外,该检测装置进一步包括:
    确定模块,用于根据内存所在系统的性能和/或内存检测精度要求,确定 CRC校验算法的位数、以及提取规则。
    本发明通过在旁路模式下对内存进行实时的检测,能够避免内存检测过程 中对主干线上的数据处理造成影响,且不影响系统性能;还通过对输入和输出 的同一数据进行相同的校验处理,增加内存检测的精准度,并及时的发现内存 中存在的问题。
    附图说明
    为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是 本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的 前提下,还可以根据这些附图获得其他的附图。
    图1是根据本发明实施例的内存的校验方法的流程图;
    图2是根据本发明实施例的报文数据的处理流程图;
    图3是根据本发明一具体实施例的内存的校验方法的流程图;
    图4是根据本发明实施例的内存的校验装置的框图。
    具体实施方式
    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其 他实施例,都属于本发明保护的范围。
    根据本发明的实施例,提供了一种内存的检测方法。
    如图1所示,根据本发明实施例的检测方法包括:
    步骤S101,在旁路模式下,根据预定的提取规则从即将输入内存的数据 中提取第一数据,并通过预定位数的CRC校验算法对提取的第一数据进行计 算,得到第一校验码;
    步骤S103,在旁路模式下,根据预定的提取规则从即将输出内存的数据 中提取第二数据,并通过预定位数的CRC校验算法对提取的数据进行计算, 得到第二校验码;
    步骤S105,将第一校验码和第二校验码进行对比,根据对比结果确定内 存的工作情况。
    通过本发明的上述方案,通过在旁路模式下对内存进行实时的检测,能够 避免内存检测过程中对主干线上的数据处理造成影响,且不影响系统性能;还 通过对输入和输出的同一数据进行相同的校验处理,增加内存检测的精准度, 并及时的发现内存中存在的问题。
    为了更好的理解本发明的上述技术方案,下面结合一具体实施例对本发明 的上述技术方案进行详细阐述。
    如图2所示的报文数据处理流程图,当有数据需要写入内存时,首先接收 需要写入内存的数据,并将接收到的数据发送至写入内存控制模块,其中,写 入内存控制模块用于在接收到需要写入内存的报文的情况下,产生报文写入内 存信号以及时序传送给内存错误检测模块和内存;而当有数据从内存读出时, 则是由读出内存控制模块接收从内存中读出的数据,其中,读出内存控制模块 用于在接收到从内存中读出的数据的情况下,产生报文读出内存信号以及时序 并传送给内存错误检测模块以及报文后续处理模块。
    通过以上描述可以看出,内存错误检测模块可以在接收到数据输入/输出 内存的信号的情况下,对内存的工作情况进行实时的检测,具体的,如图3 所示,由于本实施例的内存检测方法是在预定的时间内进行的检测,因此,在 对内存进行检测之前,首先需要设置内存报警检测时间(例如500秒)、以及 在规定时间内(这里为500秒)的内存工作异常报警阈值(例如报警异常的次 数为10次),而在实际应用中,内存报警检测时间和内存工作异常的报警阈值 可以根据不同的环境、系统而灵活的选择适当的数值,本发明对于报警时间和 报警阈值的具体数值并不做限定。
    此外,在对内存进行检测之前,除了需要进行内存报警检测时间和内存工 作异常报警阈值的设定外,由于本发明使用的是CRC校验算法,因此还需要 设定进行内存检测时的CRC校验算法的位数(这里使用的是8位CRC校验算 法),当然,在实际应用中可根据资源情况的不同采用其他的适当位数的CRC 校验算法,例如16为校验算法,本发明对此并不做限定。另外,在对内存进 行检测之前,还需要确定用于计算CRC校验码的数据的提取规则(这里的提 取规则为计算CRC校验码时提取的预定长度的数据),在本例中,计算校验码 所使用的数据长度为报文的长度(这里为32位),当然,对于提取的数据长度 来说,其也可以根据环境和使用情况的不同采用其他的长度,本发明对于数据 长度的具体数值并不做限定。
    由此可见,对于CRC校验算法的位数、以及提取用于计算CRC校验码的 数据的提取规则来说,它们的具体数值可以根据被测内存所在系统的性能和/ 或内存检测的精度要求进行灵活的设定。例如,如果内存检测的精度要求比较 高,那么在性能、资源满足的情况下,CRC校验就可以选择较长位数的校验 算法,且被校验数据可以尽量长的提取,具体的,可选用32位CRC校验算法, 提取的数据长度为1024位,即,每次提取1024位长度的数据,对提取的1024 位数据每32位计算一次校验码,从而提高检测的精度。另一方面,例如,如 果对内存检测的性能、资源要求比较高的情况下,CRC校验就可以选择较短 位数的校验算法,且被校验的数据可以截短提取,具体的,可选用4位CRC 校验算法,提取的数据长度为8位,即,每次提取8位长度的数据,对提取的 8位数据每4位计算一次校验码,从而保证在高速数据校验时,内存检测所用 资源尽量少。
    因此,CRC校验算法的具体位数以及用于计算CRC校验码的数据的提取 规则是根据被测内存所在系统的性能和/或内存检测精度要求进行综合评估后 而设定的,从而在不影响系统性能的基础上提高内存检测的精准度。
    在确定了CRC校验算法的位数、用于计算CRC校验码的数据的提取规则、 内存工作异常报警阈值、内存报警检测时间后,就可以将内存工作异常次数清 零,并将报警检测时间重新计时,从而开始在预定的报警检测时间内对内存进 行检测。
    当然,对于CRC校验算法的具体位数、用于计算CRC校验码的数据的具 体提取规则的设定时机,在本实施例中是在对内存进行检测之前进行的设定, 但是在实际操作中,也可以随着检测要求、检测环境的变化,在检测过程中进 行具体数值的灵活设定,从而使本发明所限定的内存检测方法与不同的检测环 境相适应,因此,本发明对于CRC校验算法的具体位数、用于计算CRC校验 码的数据的具体提取规则的设定时机并不做限定。
    其中,在预定的时间内对内存进行检测的过程中,当内存错误检测模块接 收到数据输入内存的信号和时序时,就会产生一条支路(支路中的数据处理不 会对内存的性能产生影响,也不会影响主干线上的数据处理),在支路中根据 预定的提取规则(这里为提取32位长度的报文)从即将输入内存的数据中提 取第一数据,并通过8位CRC的校验算法对提取的32位报文进行计算,得到 第一校验码(这里为写入内存校验码CRC1),并将CRC1和计算CRC1所用 的长度LEN(这里为32位数据长度)存入控制先进先出队列(FIFO);而当 数据从内存中读出时,即内存错误检测模块接收到数据输出内存的信号和时序 时,就会产生一条支路,在该支路中进行读出校验码CRC2的计算,具体的, 根据计算CRC1时的长度信息(这里为FIFO中存储的LEN)从即将输出内存 的数据中提取第二数据(32位数据),并通过8位的CRC校验算法对提取的 32位数据进行计算,得到第二校验码(这里为读出内存校验码CRC2),由于 计算CRC1和CRC2时所提取的第一数据、第二数据是按照同一提取规则进行 提取的,因此,两个校验码所对应的数据为同一数据,并且,计算CRC1和 CRC2所使用的CRC校验算法也是相同的,因此,如果内存工作情况没有异 常,那么对应输入和读出同一内存的同一数据的校验码理应是相同的,因此, 在内存的工作是否异常的判断上,只需要比较CRC1和CRC2是否相同即可, 如果相同,则证明此次从内存写入和读出数据时,内存没有出现异常。
    在本实例中,计算存储内存校验码CRC1和计算存储内存校验码CRC2 是在两条支路中完成的,但是,本发明所限定的是对于内存的检测是在支路中 (即旁路)中进行,无需主板支持,并不对主干线上的数据处理造成影响,因 此,置于计算写入和读出两个校验码所在的支路是否为同一支路本发明对此并 不作限定。
    此外,在本实施例中,在对内存进行检测的过程中,计算得到的写入内存 校验码CRC1和读出内存校验码CRC2均存储在FIFO中,目的在于缓存数据, 因此,在实际应用中,校验码和提取规则的存储介质还可以根据实际操作的不 同进行不同的设定,本发明对此并不做限定。
    在经过一次异常的校验后,确定内存工作无异常,那么在预定的时间内(这 里为500秒)可以继续进行写入内存和读出内存的数据的提取、以及相应校验 码的计算,具体步骤和方法同上,在此不再赘述。
    而如果CRC1和CRC2的对比结果为二者并不相同,那么则表明此时的内 存工作异常,将内存工作异常次数增加一次,并判断当前内存工作异常的次数 是否已经达到内存工作异常的报警阈值,如果达到报警阈值,则表明在预定的 检测时间内,内存工作情况已经达到报警阈值,此时系统会进行报警,由专业 人员对内存进行问题排查;而如果内存异常次数没有达到报警阈值,则还需要 判断一下当前的检测时间是否已经达到了预定的检测时间(即,内存报警检测 时间,这里为500秒),如果没有达到规定的检测时间,那么将继续进行旁路 模式下的内存检测,检测方法同上;而如果检测时间已经达到预定的检测时间, 那么本次的内存检测到此结束,那就可以根据检测需要为下次的内存检测进行 相关数值的设定,并对内存工作异常次数清零,以及将报警检测时间重新计时。
    通过对本实施例的内存检测方法的详细描述可以看出,本发明通过在旁路 模式下对内存的工作情况进行实时的检测,避免了对主板的依赖,使得内存的 检测对主干线上的数据处理、系统性能完全没有任何影响;并且通过系统报警 能够对内存的异常问题及时发现,且不会中断系统,从而避免了系统的瘫痪; 另外,本发明能够根据测试环境、系统的不同而灵活选择适当数值的内存报警 检测时间和内存异常报警阈值,增加了本内存检测方法的使用灵活性和通用 性。
    根据本发明的实施例,还提供了一种内存的检测装置。
    如图4所示,根据本发明实施例的检测装置包括:
    第一计算模块41,用于在旁路模式下,根据预定的提取规则从即将输入 内存的数据中提取第一数据,并通过预定位数的CRC校验算法对提取的第一 数据进行计算,得到第一校验码;
    第二计算模块42,用于在旁路模式下,根据预定的提取规则从即将输出 内存的数据中提取第二数据,并通过预定位数的CRC校验算法对提取的数据 进行计算,得到第二校验码;
    分析模块43,用于将第一校验码和第二校验码进行对比,根据对比结果 确定内存的工作情况。
    其中,在一个实施例中,第一计算模块可包括提取模块(未示出),用于 在旁路模式、且接收到数据输入内存的信号的情况下,根据预定的提取规则从 即将输入内存的数据中提取第一数据。
    此外,在另一个实施例中,分析模块43可包括:
    记录模块(未示出),用于在对比结果为第一校验码和第二校验码不同的 情况下,纪录一次内存异常;
    判断模块(未示出),用于判断内存异常的次数是否达到预定的阈值;
    分析子模块(未示出),用于在内存异常的次数达到预先设定的阈值的情 况下,确定内存工作异常。
    另外,根据本发明实施例的检测装置用于在预定的时间内对内存进行检 测。
    此外,根据本发明实施例的检测装置进一步包括:
    确定模块(未示出),用于根据内存所在系统的性能和/或内存检测精度要 求,确定CRC校验算法的位数、以及提取规则。
    综上所述,借助于本发明的上述技术方案,通过在旁路模式下对内存的工 作情况进行实时的检测,避免了对主板的依赖,使得内存的检测对主干线上的 数据处理、系统性能完全没有任何影响;并且通过系统报警能够对内存的异常 问题及时发现,且不会中断系统,从而避免了系统的瘫痪;另外,本发明还能 够根据测试环境、系统、内存检测精度要求的不同而灵活选择适当数值的内存 报警检测时间、内存异常报警阈值、CRC校验算法的位数以及数据的提取规 则,从而增加了本内存检测方法的使用灵活性和通用性。
    以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发 明的保护范围之内。

    关 键  词:
    内存 检测 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:内存的检测方法和装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4028014.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1