CN106373616A - 一种检测随机存储器故障的方法、装置和网络处理器 - Google Patents
一种检测随机存储器故障的方法、装置和网络处理器 Download PDFInfo
- Publication number
- CN106373616A CN106373616A CN201510437309.1A CN201510437309A CN106373616A CN 106373616 A CN106373616 A CN 106373616A CN 201510437309 A CN201510437309 A CN 201510437309A CN 106373616 A CN106373616 A CN 106373616A
- Authority
- CN
- China
- Prior art keywords
- data message
- access memory
- random access
- entry
- message
- 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
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本发明实施例公开了一种检测随机存储器故障的方法,包括:获取数据报文;对所述数据报文进行错误检查和纠正(ECC)校验,将所述数据报文写入随机存储器;从所述随机存储器中读取所述数据报文,对读取出的数据报文进行ECC校验;通过比较所述数据报文在写入所述随机存储器前的ECC校验结果和所述读取出的数据报文的ECC校验结果,确定所述随机存储器的故障检测结果。本发明实施例还公开了一种检测随机存储器故障的装置和网络处理器。
Description
技术领域
本发明涉及存储设备故障检测技术,尤其涉及一种检测随机存储器故障的方法、装置和网络处理器。
背景技术
随机存储器如八倍速率同步动态随机存储器(DDR3 Synchronous DynamicRandom Access Memory,DDR3 SDRAM)已经广泛用于网络处理器中,用于存储网络转发设备的大量表项信息和数据,这里,DDR3 SDRAM简称为DDR3。
随着现代网络对网络处理设备性能和容量的需求越来越高,大容量、大速率的转发设备应运而生,而网络处理器的内部存储空间有限,需要挂接大量的随机存储器如DDR3来存储网络中的转发数据和信息。而随机存储器由于制作工艺等问题,可能出现内部颗粒坏死的情况。另外,在长时间使用随机存储器的情况下,由于多次写入和读出数据,可能会导致内部的用户数据发生错误,影响某些用户业务的处理和传输,因此,对随机存储器进行监控和检测就显得尤为重要。
传统的对随机存储器的检测方案为:采用中央处理器(Central ProcessingUnit,CPU)构造一定的测试数据,由CPU控制将测试的数据写入到随机存储器中,然后,再由CPU控制,将随机存储器中存储的数据读出来,与之前写入的数据进行比较,得到发生故障的随机存储器地址信息如DDR3单元信息。然而,由于CPU带宽有限,该检测方案在扫描大容量的随机存储器时会非常耗时,扫描周期长,检测故障速度慢,而且必须要有CPU参与才能完成自检。当网络处理器转发面有大量数据流量时,CPU需要管理、下发转发面的表项,并进行协议交互、管理等操作,上述检测方案中CPU资源的消耗就显得更不可取。
发明内容
为解决上述技术问题,本发明实施例期望提供一种检测随机存储器故障的方法、装置和网络处理器,能够提高检测随机存储器故障的效率。
本发明的技术方案是这样实现的:
本发明实施例提供了一种检测随机存储器故障的方法,包括:
获取数据报文;
对所述数据报文进行错误检查和纠正(Error Correcting Code,ECC)校验,将所述数据报文写入随机存储器;
从所述随机存储器中读取所述数据报文,对读取出的数据报文进行ECC校验;
通过比较所述数据报文在写入所述随机存储器前的ECC校验结果和所述读取出的数据报文的ECC校验结果,确定所述随机存储器的故障检测结果。
上述方案中,所述获取数据报文包括:依次获取多个条目的数据报文;
所述对所述数据报文进行ECC校验,将所述数据报文写入随机存储器,包括:对每个条目的数据报文进行ECC校验,将每个条目的数据报文写入随机存储器;
所述从所述随机存储器中读取所述数据报文,对读取出的数据报文进行ECC校验,包括:从所述随机存储器中读取至少一个条目的数据报文,对读取出的每个条目的数据报文进行ECC校验;
所述通过比较所述数据报文在写入所述随机存储器前的ECC校验结果和所述读取出的数据报文的ECC校验结果,确定所述随机存储器的故障检测结果,包括:通过比较读取出的每个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果,确定对应条目的数据报文对应的随机存储器的故障检测结果。
上述方案中,所述依次获取多个条目的数据报文中,每个条目的数据报文包括写表索引和待写入数据;其中,所述写表索引携带有所述待写入数据需要存储在所述随机存储器中的地址信息;
所述将每个条目的数据报文写入随机存储器包括:基于对应条目的数据报文的写表索引将对应条目的数据报文的待写入数据写入随机存储器。
上述方案中,所述从所述随机存储器中读取至少一个条目的数据报文包括:利用网络处理器依次接收来自发包器的至少一个扫描报文,所述发包器发送的每个扫描报文包括查表索引,用于在所述随机存储器中查找对应条目的数据;
所述从所述随机存储器中读取至少一个条目的数据报文还包括:网络处理器基于接收的每个扫描报文,从所述随机存储器中读取出对应条目的数据。
上述方案中,所述发包器每次发送扫描报文的带宽依据发包器获取的当前时刻网络处理器转发数据的流量确定。
上述方案中,所述通过比较读取出的每个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果,确定对应条目的数据报文对应的随机存储器的故障检测结果,包括:如果读取出的任意一个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果不相同,则确定对应条目的数据报文对应的随机存储器的故障信息。
上述方案中,所述数据报文在写入所述随机存储器前的ECC校验算法与所述读取出的数据报文的ECC校验算法相同。
上述方案中,在将所述数据报文写入随机存储器的同时,所述方法还包括:将所述数据报文在写入所述随机存储器前的ECC校验结果进行存储。
本发明实施例还提供了一种检测随机存储器故障的装置,包括获取模块、第一校验模块、第二校验模块和故障确定模块;其中,
获取模块,用于获取数据报文;
第一校验模块,用于对所述数据报文进行错误检查和纠正ECC校验,将所述数据报文写入随机存储器;
第二校验模块,用于从所述随机存储器中读取所述数据报文,对读取出的数据报文进行ECC校验;
故障确定模块,用于通过比较读取出的数据报文的ECC校验结果和所述数据报文在写入所述随机存储器前的ECC校验结果,确定所述随机存储器的故障检测结果。
上述方案中,所述获取模块,具体用于依次获取多个条目的数据报文;
所述第一校验模块,具体用于对每个条目的数据报文进行ECC校验,将每个条目的数据报文写入随机存储器;
所述第二校验模块,具体用于从所述随机存储器中读取至少一个条目的数据报文,对读取出的每个条目的数据报文进行ECC校验;
所述故障确定模块,具体用于通过比较读取出的每个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果,确定对应条目的数据报文对应的随机存储器的故障检测结果。
上述方案中,所述依次获取多个条目的数据报文中,每个条目的数据报文包括写表索引和待写入数据;其中,所述写表索引携带有所述待写入数据需要存储在所述随机存储器中的地址信息;
所述第一校验模块,具体用于基于对应条目的数据报文的写表索引将对应条目的数据报文的待写入数据写入随机存储器。
上述方案中,所述第二校验模块,具体用于依次接收来自发包器的至少一个扫描报文,所述发包器发送的每个扫描报文包括查表索引,用于在所述随机存储器中查找对应条目的数据;
所述第二校验模块,还用于基于接收的每个扫描报文,从所述随机存储器中读取出对应条目的数据。
上述方案中,所述发包器每次发送扫描报文的带宽依据发包器获取的当前时刻网络处理器转发数据的流量确定。
上述方案中,所述故障确定模块,具体用于在读取出的任意一个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果不相同时,确定对应条目的数据报文对应的随机存储器的故障信息。
本发明实施例还提供了一种网络处理器,包括上述任意一种检测随机存储器故障的装置。
本发明实施例提供的一种检测随机存储器故障的方法、装置和网络处理器,通过对数据报文在写入随机存储器前的错误检查和纠正ECC校验结果和数据报文在被读取出时的ECC校验结果进行比较,得出随机存储器的故障检测结果,由于在不需要CPU参与的情况下可以完成随机存储器故障的检测,如此,可降低CPU资源的消耗;另外,与现有的比较写入和读取的测试数据的方案相比,本发明实施例只需要比较相应数据的ECC的校验结果,显然能够降低数据运算量,提高检测随机存储器故障的效率,缩短定位随机存储器故障位置的时间。
附图说明
图1为本发明检测随机存储器故障的方法的第一实施例的流程图;
图2为本发明检测随机存储器故障的方法的第二实施例的流程图;
图3为本发明实施例检测随机存储器故障的装置的组成结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
第一实施例
图1为本发明检测随机存储器故障的方法的第一实施例的流程图,如图1所示,该方法包括:
步骤100:获取数据报文。
这里,数据报文包括写表索引和待写入数据,所述写表索引携带有所述待写入数据需要存储在所述随机存储器中的地址信息,该写表索引可以位于所述数据报文的某个字段中;所述待写入数据长度可以是64bit、128bit或256bit,所述待写入数据可以是全1数据、随机数组成的数据、呈递增排列的数据或呈递减排列的数据等;所述随机存储器可以是DDR3。
本步骤中,可以利用网络处理器依次接收来自发包器的多个条目的数据报文;进一步地,发包器发送数据报文的参数可预先配置,发包器发送数据报文的参数包括:发包器发送数据报文的数量、发包形态、报文长度、报文格式、带宽、发送速率等。发包器任意两次发送的数据报文的生成规则可以相同,也可以不同;发包器任意两次发送的数据报文的带宽可以相同,也可以不同。
本步骤中,还可以利用网络处理器依次接收来自CPU的多个条目的数据;这里,CPU通过控制面向网络处理器下发数据报文的写表索引和数据。
本发明第一实施例中,采用发包器向网络处理器发送数据报文的发送方式时,由于发包器发送数据报文的参数可以预先配置,因此比较适合对随机存储器如DDR3中颗粒度单元进行故障检查;而CPU向网络处理器写入数据条目的发送方式通常存在于实际的转发场景中。
步骤101:对所述数据报文进行ECC校验,将所述数据报文写入随机存储器。
具体地,对所述数据报文进行ECC校验,将所述数据报文写入随机存储器,包括:对每个条目的数据报文进行ECC校验,将每个条目的数据报文写入随机存储器。
进一步地,可以预先配置对应条目的数据报文是否需要进行ECC校验,此时,对所述数据报文进行ECC校验包括:网络处理器对需要进行ECC校验的每个条目的数据报文进行ECC校验。这里,需要进行ECC校验的数据报文可以是网络处理器接收的所有条目的数据报文,也可以是网络处理器接收的所有条目的数据报文的一部分。
这里,将每个条目的数据报文写入随机存储器包括:基于对应条目的数据报文的写表索引将对应条目的数据报文的待写入数据写入随机存储器。
这里,在将所述数据报文写入随机存储器的同时,可以将所述数据报文在写入所述随机存储器前的ECC校验结果进行存储,例如将数据报文在写入所述随机存储器前的ECC校验结果写入随机存储器。
步骤102:从所述随机存储器中读取所述数据报文,对读取出的数据报文进行ECC校验。
具体地,所述从所述随机存储器中读取所述数据报文,对读取出的数据报文进行ECC校验,包括:从所述随机存储器中读取至少一个条目的数据报文,对读取出的每个条目的数据报文进行ECC校验。这里,可以预先配置读取出的每个条目的数据报文是否需要进行ECC校验,通常读取出的需要进行ECC校验的数据报文与步骤101中需要进行ECC校验的数据报文保持一致。
这里,从所述随机存储器中读取至少一个条目的数据报文包括:利用网络处理器依次接收发包器的至少一个扫描报文,每个扫描报文与一个条目的数据报文相对应;每个扫描报文包括查表索引,用于在所述随机存储器中查找对应条目的数据报文,该查表索引位于所述扫描报文的某个字段中;基于每个扫描报文从所述随机存储器中读取出对应条目的数据报文。
进一步地,所述发包器发送扫描报文的参数可以预先配置,这里,所述发包器发送扫描报文的参数包括所述发包器每次发送扫描报文的带宽,还包括发包器发送扫描报文时的发包数量、发包形态、报文长度、报文格式、发送速率等。
具体地,所述发包器每次发送扫描报文的带宽依据发包器获取的当前时刻网络处理器转发数据的流量确定,确保当前时刻网络处理器接收扫描报文的带宽与网络处理器转发数据的带宽之和在设定阈值之内,如此,网络处理器可以同时进行数据转发和扫描报文的接收,保证网络处理器能够正常工作。这里,发送扫描报文的发包器与CPU相互独立,如此,在发送扫描报文时不消耗CPU的资源。
所述发包器能够按照一定的时间频率发送扫描报文,发包器发送扫描报文时的发包数量、发包形态、报文长度等都可灵活配置,发包器任意两次发送的扫描报文的生成规则可以相同,也可以不同;发包器任意两次发送的扫描报文的带宽可以相同,也可以不同。
需要说明的是,本步骤中所述读取出的任意一个条目的数据报文的ECC校验算法与对应条目的数据报文在写入所述随机存储器前的ECC校验算法相同。
步骤103:通过比较所述数据报文在写入所述随机存储器前的ECC校验结果和所述读取出的数据报文的ECC校验结果,确定所述随机存储器的故障检测结果。
本步骤具体包括:通过比较读取出的每个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果,确定对应条目的数据报文对应的随机存储器的故障检测结果。这里,对应条目的数据报文对应的随机存储器的故障检测结果可以是:对应条目的数据报文对应的随机存储器的存储地址没有出现故障,也可以是对应条目的数据报文对应的随机存储器的存储地址出现故障时的具体故障信息。
具体地,如果读取出的任意一个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果不相同,则说明对应条目的数据报文对应的随机存储器的存储地址出现故障,此时确定对应条目的数据报文对应的随机存储器的故障信息,对应条目的数据报文对应的随机存储器的故障信息可以是对应条目的数据报文在随机存储器中的存储地址。如此,通过比较读取出的每个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果,可以获知随机存储器中出现故障的具体信息。
如果读取出的任意一个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果相同,则说明对应条目的数据报文对应的随机存储器的存储地址没有出现故障。
需要说明的是,如果读取出的各个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果均相同,则本步骤中确定的所述随机存储器的故障检测结果为:所述随机存储器未出现故障。
在对读取出的各个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果进行比较之后,分别统计两个ECC校验结果不相同的条目的数据报文、以及两个ECC校验结果相同的条目的数据报文,之后,利用网络处理器存储统计结果和所确定的随机存储器的故障信息。
进一步地,在网络处理器存储统计结果和所确定的随机存储器的故障信息之后,将读取出的各个条目的数据报文、以及存储的统计结果和所确定的随机存储器的故障信息一并上传至控制面,控制面通过分析接收到的数据,就可以分析得出随机存储器中发生故障的具体情况,例如,可以根据接收到的数据快速定位出随机存储器中出现故障的地址。
本发明第一实施例中,如果在步骤100中网络处理器接收的数据报文来自发包器,则将检测随机存储器故障的方式称为全自动检测方式;采用全自动检测方式时,网络处理器获取的数据报文和扫描报文均由发包器发送,具体地说,发包器在发送数据报文完毕之后,立即向网络处理器发送扫描报文。
如果在步骤100中网络处理器接收的数据报文来自CPU,则将检测随机存储器故障的方式称为半自动检测方式;采用半自动检测方式时,CPU向网络处理器发送数据报文,而发包器用于向网络处理器发送扫描报文。
本发明第一实施例中,除了CPU向网络处理器下发数据报文的写表索引的过程以及控制面最后分析随机存储器故障的过程之外,其余实现过程均在转发面完成,如此,检测随机存储器故障的过程不仅不消耗CPU的资源,还提高检测随机存储器故障的速度,并缩短随机存储器故障的定位时间。另外,在采用全自动检测模式时,不论网络处理器的转发面是否有转发流量,都能随时检测出随机存储器的故障。
第二实施例
为了能更加体现本发明的目的,在本发明第一实施例的基础上,进行进一步的举例说明。在本发明第二实施例中,随机存储器为DDR3,采用全自动检测方式检测DDR3中的故障。
图2为本发明检测随机存储器故障的方法的第二实施例的流程图,如图2所示,该方法包括:
步骤201:网络处理器中的DDR3控制器开启ECC校验功能。
步骤202:利用发包器向网络处理器中的DDR3控制器发送第i个条目的数据报文,i的初始值为1。
步骤203:DDR3控制器根据读写数据的位宽X比特,提取第i个条目的数据报文的待写入数据的X比特的数据,X为大于1的自然数,读写数据的位宽可以预先配置;将提取的X比特的数据进行ECC校验,基于第i个条目的数据报文的写表索引,将提取的X比特的数据的ECC校验结果和第i个条目的数据报文的待写入数据一并写入DDR3的存储空间。
步骤204:判断i的值是否等于N,N表示发包器需要向DDR3控制器发送的数据报文的条目的总数;如果i不等于N,重复执行步骤202至203,直至i的值等于N;如果i等于N,则说明网络处理器向DDR3写入数据报文的过程完成,此时执行步骤205。
步骤205:网络处理器中的DDR3控制器接收来自发包器的第j个条目的扫描报文,j的初始值为1。
步骤206:DDR3控制器基于第j个条目的扫描报文中的查表索引,从DDR3中读取出对应条目的数据报文;在读取出的对应条目的数据报文中,提取对应条目的数据报文的X比特的数据,将提取的X比特的数据进行ECC校验。
步骤207:将读取的对应条目的数据报文的ECC校验结果与对应条目的数据报文在写入DDR3前的ECC校验结果进行比较,得出比较结果,比较结果为这两个ECC校验结果相同或不相同。
如果读取的对应条目的数据报文的ECC校验结果与对应条目的数据报文在写入DDR3前的ECC校验结果相同,则说明对应条目的数据报文对应的随机存储器的存储地址没有出现故障,将读出的对应条目的数据报文记为未出现随机存储器故障的数据报文,执行步骤208。
如果读取的对应条目的数据报文的ECC校验结果与对应条目的数据报文在写入DDR3前的ECC校验结果不相同,则将读出的对应条目的数据报文记为出现随机存储器故障的数据报文,执行步骤209。
步骤208:对未出现随机存储器故障的数据报文进行统计计数,执行步骤210。
步骤209:对出现机存储器故障的数据报文进行统计计数,确定对应条目的数据报文对应的随机存储器的故障信息,对应条目的数据报文对应的随机存储器的故障信息可以是对应条目的数据报文在随机存储器中的存储地址,执行步骤210。
步骤210:判断j的值是否等于M,M表示发包器向DDR3控制器发送的扫描报文的条目的总数;如果j不等于M,重复执行步骤205至209,直至j的值等于M;如果j等于M,则说明检测随机存储器故障的过程完成,此时结束流程。
需要说明的是,步骤210中,M可以等于N,也可以小于N。
本发明上述两个实施例提供的检测随机存储器故障的方法,通过对写入数据报文时的ECC校验结果和读取数据报文时的ECC校验结果进行比较,可以快速定位随机存储器出现故障的位置。
第三实施例
针对本发明第一实施例的方法,本发明实施例还提供了一种检测随机存储器故障的装置。图3为本发明实施例检测随机存储器故障的装置的组成结构示意图,如图3所示,该装置包括获取模块300、第一校验模块301、第二校验模块302和故障确定模块303;其中,
获取模块300,用于获取数据报文。
第一校验模块301,用于对所述数据报文进行错误检查和纠正ECC校验,将所述数据报文写入随机存储器。
第二校验模块302,用于从所述随机存储器中读取所述数据报文,对读取出的数据报文进行ECC校验。
故障确定模块303,用于通过比较读取出的数据报文的ECC校验结果和所述数据报文在写入所述随机存储器前的ECC校验结果,确定所述随机存储器的故障检测结果。
具体地,所述获取模块300,用于依次获取多个条目的数据报文。
所述第一校验模块301,用于对每个条目的数据报文进行ECC校验,将每个条目的数据报文写入随机存储器。
所述第二校验模块302,用于从所述随机存储器中读取至少一个条目的数据报文,对读取出的每个条目的数据报文进行ECC校验。
所述故障确定模块303,用于通过比较读取出的每个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果,确定对应条目的数据报文对应的随机存储器的故障检测结果。
具体地,所述依次获取多个条目的数据报文中,每个条目的数据报文包括写表索引和待写入数据;其中,所述写表索引携带有所述待写入数据需要存储在所述随机存储器中的地址信息。
所述第一校验模块301,用于基于对应条目的数据报文的写表索引将对应条目的数据报文的待写入数据写入随机存储器。
具体地,所述第二校验模块302,具体用于接收至少一个扫描报文,基于每个扫描报文从所述随机存储器中读取出对应条目的数据报文;每个扫描报文与一个条目的数据报文相对应,每个扫描报文包括查表索引,用于在所述随机存储器中查找对应条目的数据报文。
具体地,所述第二校验模块302,用于利用网络处理器依次接收来自发包器的至少一个扫描报文,所述发包器每次发送扫描报文的带宽依据发包器获取的当前时刻网络处理器转发数据的流量确定。
具体地,所述故障确定模块303,用于在读取出的任意一个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果不相同时,确定对应条目的数据报文对应的随机存储器的故障信息。
本发明实施例提供的检测随机存储器故障的装置,通过对写入数据报文时的ECC校验结果和读取数据报文时的ECC校验结果进行比较,可以快速定位随机存储器出现故障的位置,提高定位随机存储器故障的效率。
在实际应用中,所述获取模块300、第一校验模块301、第二校验模块302和故障确定模块303均可由位于网络处理器中的中央处理器(Central ProcessingUnit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(DigitalSignal Processor,DSP)、或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
第四实施例
本发明实施例还提供了一种网络处理器,该网络处理器包括本发明第三实施例中任意一种检测随机存储器故障的装置。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (15)
1.一种检测随机存储器故障的方法,其特征在于,所述方法包括:
获取数据报文;
对所述数据报文进行错误检查和纠正ECC校验,将所述数据报文写入随机存储器;
从所述随机存储器中读取所述数据报文,对读取出的数据报文进行ECC校验;
通过比较所述数据报文在写入所述随机存储器前的ECC校验结果和所述读取出的数据报文的ECC校验结果,确定所述随机存储器的故障检测结果。
2.根据权利要求1所述的方法,其特征在于,所述获取数据报文包括:依次获取多个条目的数据报文;
所述对所述数据报文进行ECC校验,将所述数据报文写入随机存储器,包括:对每个条目的数据报文进行ECC校验,将每个条目的数据报文写入随机存储器;
所述从所述随机存储器中读取所述数据报文,对读取出的数据报文进行ECC校验,包括:从所述随机存储器中读取至少一个条目的数据报文,对读取出的每个条目的数据报文进行ECC校验;
所述通过比较所述数据报文在写入所述随机存储器前的ECC校验结果和所述读取出的数据报文的ECC校验结果,确定所述随机存储器的故障检测结果,包括:通过比较读取出的每个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果,确定对应条目的数据报文对应的随机存储器的故障检测结果。
3.根据权利要求2所述的方法,其特征在于,所述依次获取多个条目的数据报文中,每个条目的数据报文包括写表索引和待写入数据;其中,所述写表索引携带有所述待写入数据需要存储在所述随机存储器中的地址信息;
所述将每个条目的数据报文写入随机存储器包括:基于对应条目的数据报文的写表索引将对应条目的数据报文的待写入数据写入随机存储器。
4.根据权利要求2所述的方法,其特征在于,所述从所述随机存储器中读取至少一个条目的数据报文包括:利用网络处理器依次接收来自发包器的至少一个扫描报文,所述发包器发送的每个扫描报文包括查表索引,用于在所述随机存储器中查找对应条目的数据;
所述从所述随机存储器中读取至少一个条目的数据报文还包括:网络处理器基于接收的每个扫描报文,从所述随机存储器中读取出对应条目的数据。
5.根据权利要求4所述的方法,其特征在于,所述发包器每次发送扫描报文的带宽依据发包器获取的当前时刻网络处理器转发数据的流量确定。
6.根据权利要求2所述的方法,其特征在于,所述通过比较读取出的每个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果,确定对应条目的数据报文对应的随机存储器的故障检测结果,包括:如果读取出的任意一个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果不相同,则确定对应条目的数据报文对应的随机存储器的故障信息。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述数据报文在写入所述随机存储器前的ECC校验算法与所述读取出的数据报文的ECC校验算法相同。
8.根据权利要求1至6任一项所述的方法,其特征在于,在将所述数据报文写入随机存储器的同时,所述方法还包括:将所述数据报文在写入所述随机存储器前的ECC校验结果进行存储。
9.一种检测随机存储器故障的装置,其特征在于,所述装置包括获取模块、第一校验模块、第二校验模块和故障确定模块;其中,
获取模块,用于获取数据报文;
第一校验模块,用于对所述数据报文进行错误检查和纠正ECC校验,将所述数据报文写入随机存储器;
第二校验模块,用于从所述随机存储器中读取所述数据报文,对读取出的数据报文进行ECC校验;
故障确定模块,用于通过比较读取出的数据报文的ECC校验结果和所述数据报文在写入所述随机存储器前的ECC校验结果,确定所述随机存储器的故障检测结果。
10.根据权利要求9所述的装置,其特征在于,所述获取模块,具体用于依次获取多个条目的数据报文;
所述第一校验模块,具体用于对每个条目的数据报文进行ECC校验,将每个条目的数据报文写入随机存储器;
所述第二校验模块,具体用于从所述随机存储器中读取至少一个条目的数据报文,对读取出的每个条目的数据报文进行ECC校验;
所述故障确定模块,具体用于通过比较读取出的每个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果,确定对应条目的数据报文对应的随机存储器的故障检测结果。
11.根据权利要求10所述的装置,其特征在于,所述依次获取多个条目的数据报文中,每个条目的数据报文包括写表索引和待写入数据;其中,所述写表索引携带有所述待写入数据需要存储在所述随机存储器中的地址信息;
所述第一校验模块,具体用于基于对应条目的数据报文的写表索引将对应条目的数据报文的待写入数据写入随机存储器。
12.根据权利要求10所述的装置,其特征在于,所述第二校验模块,具体用于依次接收来自发包器的至少一个扫描报文,所述发包器发送的每个扫描报文包括查表索引,用于在所述随机存储器中查找对应条目的数据;
所述第二校验模块,还用于基于接收的每个扫描报文,从所述随机存储器中读取出对应条目的数据。
13.根据权利要求12所述的装置,其特征在于,所述发包器每次发送扫描报文的带宽依据发包器获取的当前时刻网络处理器转发数据的流量确定。
14.根据权利要求10所述的装置,其特征在于,所述故障确定模块,具体用于在读取出的任意一个条目的数据报文的ECC校验结果和对应条目的数据报文在写入所述随机存储器前的ECC校验结果不相同时,确定对应条目的数据报文对应的随机存储器的故障信息。
15.一种网络处理器,其特征在于,所述网络处理器包括权利要求9至14任一项所述的装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510437309.1A CN106373616B (zh) | 2015-07-23 | 2015-07-23 | 一种检测随机存储器故障的方法、装置和网络处理器 |
PCT/CN2016/088142 WO2017012460A1 (zh) | 2015-07-23 | 2016-07-01 | 检测随机存储器故障的方法及装置、处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510437309.1A CN106373616B (zh) | 2015-07-23 | 2015-07-23 | 一种检测随机存储器故障的方法、装置和网络处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106373616A true CN106373616A (zh) | 2017-02-01 |
CN106373616B CN106373616B (zh) | 2020-02-07 |
Family
ID=57833703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510437309.1A Active CN106373616B (zh) | 2015-07-23 | 2015-07-23 | 一种检测随机存储器故障的方法、装置和网络处理器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106373616B (zh) |
WO (1) | WO2017012460A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109545268A (zh) * | 2018-11-05 | 2019-03-29 | 西安智多晶微电子有限公司 | 一种测试ram的方法 |
CN110442298A (zh) * | 2018-05-02 | 2019-11-12 | 杭州海康威视系统技术有限公司 | 存储设备异常检测方法及装置、分布式存储系统 |
CN111586349A (zh) * | 2020-04-16 | 2020-08-25 | 浙江大华技术股份有限公司 | 一种监控设备的数据断网续传方法及系统 |
CN112420114A (zh) * | 2020-11-04 | 2021-02-26 | 深圳市宏旺微电子有限公司 | 一种存储芯片的故障检测方法及装置 |
CN117079703A (zh) * | 2023-10-17 | 2023-11-17 | 紫光同芯微电子有限公司 | 用于测试芯片内嵌存储器的方法及装置、电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646453A (zh) * | 2011-02-18 | 2012-08-22 | 安凯(广州)微电子技术有限公司 | NandFlash控制器中错误校正码模块的测试方法及系统 |
CN103200048A (zh) * | 2013-04-02 | 2013-07-10 | 中兴通讯股份有限公司 | 一种网络处理器异常检测方法、装置及网络处理设备 |
CN104240768A (zh) * | 2013-06-13 | 2014-12-24 | 英飞凌科技股份有限公司 | 用于测试存储器的方法和存储器系统 |
CN104317525A (zh) * | 2014-09-23 | 2015-01-28 | 天津国芯科技有限公司 | 一种随机存储器的扩展方法及装置 |
CN104519516A (zh) * | 2013-09-29 | 2015-04-15 | 华为技术有限公司 | 对存储器进行测试的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7331010B2 (en) * | 2004-10-29 | 2008-02-12 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US8041990B2 (en) * | 2007-06-28 | 2011-10-18 | International Business Machines Corporation | System and method for error correction and detection in a memory system |
CN102135925B (zh) * | 2010-12-27 | 2012-10-17 | 西安锐信科技有限公司 | 用于检测错误检查和纠正内存的方法和装置 |
-
2015
- 2015-07-23 CN CN201510437309.1A patent/CN106373616B/zh active Active
-
2016
- 2016-07-01 WO PCT/CN2016/088142 patent/WO2017012460A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646453A (zh) * | 2011-02-18 | 2012-08-22 | 安凯(广州)微电子技术有限公司 | NandFlash控制器中错误校正码模块的测试方法及系统 |
CN103200048A (zh) * | 2013-04-02 | 2013-07-10 | 中兴通讯股份有限公司 | 一种网络处理器异常检测方法、装置及网络处理设备 |
CN104240768A (zh) * | 2013-06-13 | 2014-12-24 | 英飞凌科技股份有限公司 | 用于测试存储器的方法和存储器系统 |
CN104519516A (zh) * | 2013-09-29 | 2015-04-15 | 华为技术有限公司 | 对存储器进行测试的方法及装置 |
CN104317525A (zh) * | 2014-09-23 | 2015-01-28 | 天津国芯科技有限公司 | 一种随机存储器的扩展方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442298A (zh) * | 2018-05-02 | 2019-11-12 | 杭州海康威视系统技术有限公司 | 存储设备异常检测方法及装置、分布式存储系统 |
CN110442298B (zh) * | 2018-05-02 | 2021-01-12 | 杭州海康威视系统技术有限公司 | 存储设备异常检测方法及装置、分布式存储系统 |
CN109545268A (zh) * | 2018-11-05 | 2019-03-29 | 西安智多晶微电子有限公司 | 一种测试ram的方法 |
CN111586349A (zh) * | 2020-04-16 | 2020-08-25 | 浙江大华技术股份有限公司 | 一种监控设备的数据断网续传方法及系统 |
CN111586349B (zh) * | 2020-04-16 | 2022-01-11 | 浙江大华技术股份有限公司 | 一种监控设备的数据断网续传方法及系统 |
CN112420114A (zh) * | 2020-11-04 | 2021-02-26 | 深圳市宏旺微电子有限公司 | 一种存储芯片的故障检测方法及装置 |
CN112420114B (zh) * | 2020-11-04 | 2023-07-18 | 深圳市宏旺微电子有限公司 | 一种存储芯片的故障检测方法及装置 |
CN117079703A (zh) * | 2023-10-17 | 2023-11-17 | 紫光同芯微电子有限公司 | 用于测试芯片内嵌存储器的方法及装置、电子设备 |
CN117079703B (zh) * | 2023-10-17 | 2024-02-02 | 紫光同芯微电子有限公司 | 用于测试芯片内嵌存储器的方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106373616B (zh) | 2020-02-07 |
WO2017012460A1 (zh) | 2017-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106373616A (zh) | 一种检测随机存储器故障的方法、装置和网络处理器 | |
CN106133537B (zh) | 一种fpga功能模块仿真验证方法及其系统 | |
WO2016090908A1 (zh) | 智能电表嵌入式应用的模拟存储器测试板系统及测试方法 | |
CN107480039B (zh) | 一种分布式存储系统的小文件读写性能测试方法及装置 | |
CN102279776B (zh) | 一种错误检查与纠正能力的测试方法及装置 | |
CN109918303A (zh) | 一种芯片、芯片调试方法及装置、设备、介质 | |
CN102662833A (zh) | 一种管理测试用例的方法 | |
CN104505126B (zh) | 一种动态存储器测试系统及方法 | |
CN106445800A (zh) | 一种芯片验证的方法和装置 | |
CN104268291A (zh) | 一种数据一致性处理方法和系统 | |
CN103593271A (zh) | 一种片上系统芯片追踪调试的方法及装置 | |
CN103617004A (zh) | 一种对分布式文件系统进行读写基准测试的工具及方法 | |
CN103020395A (zh) | 解复用接口模块的验证方法及验证系统 | |
CN104917645A (zh) | 一种在线检测报文传输超时的方法与装置 | |
CN105183641B (zh) | 一种内核模块的数据一致性校验方法及系统 | |
CN105279092A (zh) | 一种软件测试的方法及装置 | |
CN102486938A (zh) | 一种快速检测存储器的方法及装置 | |
CN105868127A (zh) | 一种数据存储、读取方法及装置 | |
CN107480056A (zh) | 一种软件测试方法和装置 | |
JP2019510305A (ja) | データ集約方法および装置 | |
US10528257B2 (en) | Method and apparatus for reproducing an I/O operation of a storage system | |
CN106971757A (zh) | 一种检验Nand Flash质量的方法及系统 | |
CN101510172B (zh) | 测试系统及方法 | |
CN105527957A (zh) | 用于保存故障波数据的方法 | |
CN107481764B (zh) | 一种3D Nand Flash扫描检测方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |