CN105760263A - 一种地址线故障检测的方法和装置 - Google Patents

一种地址线故障检测的方法和装置 Download PDF

Info

Publication number
CN105760263A
CN105760263A CN201610057304.0A CN201610057304A CN105760263A CN 105760263 A CN105760263 A CN 105760263A CN 201610057304 A CN201610057304 A CN 201610057304A CN 105760263 A CN105760263 A CN 105760263A
Authority
CN
China
Prior art keywords
bit
address
detected
plot
bits
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
Application number
CN201610057304.0A
Other languages
English (en)
Other versions
CN105760263B (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.)
Hangzhou Kun Hai Information Technology Co Ltd
Original Assignee
Hangzhou Kun Hai Information Technology 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 Hangzhou Kun Hai Information Technology Co Ltd filed Critical Hangzhou Kun Hai Information Technology Co Ltd
Priority to CN201610057304.0A priority Critical patent/CN105760263B/zh
Publication of CN105760263A publication Critical patent/CN105760263A/zh
Application granted granted Critical
Publication of CN105760263B publication Critical patent/CN105760263B/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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种地址线故障检测的方法和装置,该方法包括:获得地址线走步算法对应的初始地址作为基址;根据所述初始地址转换一个未检测过的地址作为基址;判断当前的基址是否为有效;如果是,则利用所述地址线走步算法对基址进行故障检测,以获得本次检测过程中检测到的比特位以及检测到的故障比特位;输出所有检测过程中检测到的故障比特位。通过本发明的技术方案,可以检测到地址线是否存在故障。

Description

一种地址线故障检测的方法和装置
技术领域
本发明涉及通信技术领域,尤其涉及一种地址线故障检测的方法和装置。
背景技术
CPU(CentralProcessingUnit,中央处理器)与内存(即内存条或者内存颗粒)之间通过线路(如数据线或者地址线)连接起来,而用于连接CPU与内存的线路可能存在三种故障,这三种故障分别为:1、短路:两个线路的引脚短接在一起,使得这两个线路的电平相同,如果最终电平被高电平主导,则称这种短路类型为1支配型短路,如果最终电平被低电平主导,则称这种短路类型为0支配型短路。2、开路:有线路的部分引脚出现断路。3、固定逻辑:有线路的部分引脚被固定地拉到固定电平,如与地短接等。
以CPU与内存之间的地址线的检测为例,目前,可以采用地址线走步算法检测CPU与内存之间的地址线是否存在短路、开路、固定逻辑等故障。
在使用地址线走步算法时,需要在内存地址中写入数据,而目前的地址线走步算法需要操作的地址范围几乎是整个内存地址范围。而在实际实现中,地址线走步算法无法访问到所有的内存地址范围,因此,无法检测到无法访问的内存地址对应的地址线是否存在短路、开路、固定逻辑等故障。
发明内容
本发明提供一种地址线故障检测的方法,所述方法包括:
步骤A、获得地址线走步算法对应的初始地址作为基址;
步骤B、根据所述初始地址转换一个未检测过的地址作为基址;
步骤C、判断当前的基址是否为有效;如果是,则执行步骤D;如果否,则执行步骤B;
步骤D、利用所述地址线走步算法对基址进行故障检测,以获得本次检测过程中检测到的比特位以及检测到的故障比特位;
步骤E、输出所有检测过程中检测到的故障比特位。
本发明提供一种地址线故障检测的装置,所述装置具体包括:
获得模块,用于获得地址线走步算法对应的初始地址作为基址;
转换模块,用于根据所述初始地址转换一个未检测过的地址作为基址;
判断模块,用于判断当前的基址是否为有效;当判断结果为否时,通知所述转换模块根据所述初始地址转换一个未检测过的地址作为基址;
检测模块,用于当判断结果为是时,利用所述地址线走步算法对基址进行故障检测,以获得本次检测过程中检测到的比特位以及检测到的故障比特位;
输出模块,用于输出所有检测过程中检测到的故障比特位。
基于上述技术方案,本发明实施例中,当需要检测初始地址对应的地址线是否存在故障时,可以对初始地址进行转换,并利用地址线走步算法对转换后的基址进行故障检测,并确定所有故障比特位对应的地址线发生故障,从而检测到初始地址对应的地址线是否存在短路、开路、固定逻辑等故障。
附图说明
图1是本发明一种实施方式中的地址线故障检测方法的流程图;
图2是本发明一种实施方式中的处理设备的硬件结构图;
图3是本发明一种实施方式中的地址线故障检测装置的结构图。
具体实施方式
在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在采用地址线走步算法检测CPU与内存之间的地址线是否存在短路、开路、固定逻辑等故障时,地址线走步算法可以为地址线走步0算法和地址线走步1算法。地址线走步算法的处理流程可以为:获得地址线走步算法对应的初始地址作为基址,并向地址线走步算法的基址写入数据,读取该基址的数据,并记录该基址的数据。之后,向目标地址写入数据,且在向目标地址写入数据之后,如果读取的该基址的数据与记录的该基址的数据不同,则说明地址线发生故障。其中,地址线走步算法的基址,是地址线走步算法需要进行数据访问的第一个地址。如表1所示,地址线走步1算法的基址为0…000,地址线走步0算法的基址为1…111,为了方便描述,后续以地址线走步1算法为例进行说明。
在表1中,向地址线走步1算法的基址00000000写入数据11111111,并读取基址00000000的数据,如果读取的数据为11111111,则表示基址可用。之后,确定地址线走步算法的下一个地址(将下一个地址简称为目标地址)00000001,该目标地址用于检测第0位引脚(即目标地址中数值1对应的引脚)是否发生故障。备份目标地址的数据,向该目标地址写入数据11111110,并读取基址数据。如果读取的基址数据是11111111,表示数据11111110未写入到基址,第0位引脚未发生故障。如果读取的基址数据是11111110,表示向目标地址00000001写入的数据,被写入到基址00000000,因此第0位引脚发生故障。之后,还原目标地址(00000001)的数据。同理,确定地址线走步算法的下一个目标地址00000010,该目标地址用于检测第1位引脚是否发生故障。以此类推,确定地址线走步算法的最后一个目标地址10000000,该目标地址用于检测第7位引脚是否发生故障。备份目标地址的数据,向该目标地址写入数据01111111,并读取基址数据。如果读取的基址数据是11111111,表示数据01111111未写入到基址,第7位引脚未发生故障。如果读取的基址数据是01111111,表示向目标地址10000000写入的数据,被写入到基址00000000,因此第7位引脚发生故障。之后,还原目标地址(10000000)的数据。基于上述处理,可检测到基址00000000对应的8个引脚中,哪几个引脚发生故障,继而确定出哪几根地址线发生故障。
表1
在地址线走步1算法的基址为00000000的基础上,假设基址00000000不能访问,则可将其中一位进行反置,如将基址00000000修改为基址10000000,这样,如果基址10000000可以访问,则可以向基址10000000写入数据11111111,并读取基址10000000的数据11111111,后续的检测过程与上述过程相同。但是,在此基础上,用于检测第7位引脚是否发生故障的目标地址(10000000)已经是基址,因此,无法检测第7位引脚是否发生故障。而且,如果有目标地址也是不能访问的地址,则该目标地址的检测过程会跳过,也无法检测到该目标地址对应的引脚是否发生故障。例如,假设用于检测第5位引脚是否发生故障的目标地址(10100000)无法访问,则会跳过对该目标地址(10100000)的处理,即无法检测第5位引脚是否发生故障。因此,上述方式将无法检测第5位引脚、第7位引脚是否发生故障,即第5位引脚、第7位引脚的固定逻辑故障判断失效,第5位引脚、第7位引脚与其它引脚之间的短路故障判断失效。
针对上述发现,本发明实施例中提出一种地址线故障检测的方法,该方法可以应用在任意处理设备(包括内存和CPU即可)的中央处理器(即CPU)上,该中央处理器采用地址线走步算法检测地址线是否存在短路、固定逻辑等故障。如图1所示,该地址线故障检测的方法具体可以包括以下步骤:
步骤101,获得地址线走步算法对应的初始地址作为基址。
其中,地址线走步算法对应的初始地址通常是进行数据访问的第一个地址,如表1所示,地址线走步1算法的初始地址为0…000,地址线走步0算法的初始地址为1…111,可以将该初始地址作为地址线走步算法的基址。
本应用场景下,地址线走步算法对应的初始地址可以指不能访问的地址。
步骤102,根据该初始地址转换一个未检测过的地址作为基址。
步骤103,判断当前的基址是否为有效。如果是,则执行步骤104;如果否,则执行步骤102,根据该初始地址转换另一个未检测过的地址作为基址。
在本应用场景下,如果当前的基址是可以访问的地址,则说明当前的基址有效。如果当前的基址不是可以访问的地址,则说明当前的基址无效。
其中,假设第一次将初始地址转换为地址1,将地址1作为基址进行走步算法检测,则地址1为检测过的地址;第二次将初始地址转换为地址1之外的地址2,将地址2作为基址进行走步算法检测,则地址1和地址2为检测过的地址;第三次将初始地址转换为地址1和地址2之外的地址3,以此类推。
本发明实施例中,根据初始地址转换一个未检测过的地址作为基址过程,具体可以包括但不限于如下方式:将初始地址中的至少一个比特位的数值反置,得到一个未检测过的地址作为基址。其中,当比特位的数值为0时,则将该比特位的数值反置为1。当比特位的数值为1时,则将该比特位的数值反置为0。
本发明实施例中,将初始地址中的至少一个比特位的数值反置,得到一个未检测过的地址作为基址的过程,具体可以包括但不限于如下方式:从该初始地址的最高比特位开始,选择至少一个比特位的数值反置,得到一个未检测过的地址作为基址;或者,从该初始地址的最低比特位开始,选择至少一个比特位的数值反置,得到一个未检测过的地址作为基址。
在一种可行的方式中,针对地址线走步1算法对应的初始地址,如果不可访问的内存地址集中分布在低段内存,则从初始地址的最高位开始,选择至少一个比特位的数值进行反置,得到一个未检测过的地址作为基址;或者,如果不可访问的内存地址集中分布在高段内存,则从初始地址的最低位开始,选择至少一个比特位的数值进行反置,得到一个未检测过的地址作为基址。或者,针对地址线走步0算法对应的初始地址,如果不可访问的内存地址集中分布在低段内存,则从初始地址的最低位开始,选择至少一个比特位的数值进行反置,得到一个未检测过的地址作为基址;或者,如果不可访问的内存地址集中分布在高段内存,则从初始地址的最高位开始,选择至少一个比特位的数值进行反置,得到一个未检测过的地址作为基址。
步骤104,利用地址线走步算法对基址进行故障检测,以获得本次检测过程中检测到的比特位以及检测到的故障比特位。
本发明实施例中,获得本次检测过程中检测到的比特位的过程,可以包括但不限于如下方式:确定初始地址中被反置的比特位以及本次检测过程中被跳过的比特位,是本次检测过程中未检测到的比特位,将本次检测过程中未检测到的比特位之外的其它比特位,确定为本次检测过程中检测到的比特位。
步骤105,输出所有检测过程中检测到的故障比特位。
其中,在步骤104和步骤105之间,还可以包括以下步骤(在图中未体现):
步骤106,判断是否满足输出条件。如果是,则执行步骤105;如果否,则执行步骤102,根据该初始地址转换另一个未检测过的地址作为基址。
其中,由于在进行内存检测时,目的在于尽量地覆盖检测的范围,如果依次进行各比特位的转换确实可以达到接近完全覆盖的效果(即初始地址所对应的所有比特位都被检测到),但是这样则需要花费大量的检测时间,并且能够继续确定的故障比特位并不多。因此,根据检测的效果和检测耗时的考虑,需要设定完成检测的输出条件。即,当初始地址对应的所有比特位均是已经检测到的比特位,或者,进行故障检测的次数达到阈值(如5次),或者,初始地址已经没有对应的未检测过的地址时,则说明满足输出条件;否则,说明未满足输出条件。
本发明实施例中,在获得本次检测过程中检测到的比特位之后,将检测到的比特位在miss_bits中的对应比特位进行记录,并将检测到的比特位在short_map映射表中的对应比特位进行记录。基于此,当miss_bits中的所有比特位均是已经进行记录的比特位,且所述short_map映射表中任意两个比特位相交位置,均是已经进行记录的比特位时,则确定所述初始基址对应的所有比特位均是已经检测到的比特位。
例如,将检测到的比特位在miss_bits中的对应比特位的数值修改为0,并将检测到的比特位在short_map映射表中的对应比特位的数值修改为0。其中,miss_bits的初始值是所有比特位的数值均为1,且1表示不是检测到的比特位,0表示是检测到的比特位。short_map映射表是一个M*N的映射表,M大于等于初始地址的位数,N大于等于初始地址的位数,且任意两个比特位相交位置的初始值是1,且1表示不是检测到的比特位,0表示是检测到的比特位。基于此,当miss_bits中的所有数值均为0,且short_map映射表中任意两个比特位相交位置的数值均为0时,确定初始地址对应的所有比特位已经均为检测到的比特位;否则确定初始地址对应的所有比特位中还存在未检测到的比特位。其中,检测到的比特位在short_map映射表中的对应比特位不包含初始地址被反置的比特位,将在后续应用场景中介绍不包含被反置的比特位的原因。
本发明实施例中,在获得本次检测过程中检测到的故障比特位后,将检测到的故障比特位在error_bits中的对应比特位进行记录;在输出所有检测过程中检测到的故障比特位时,确定error_bits中已经进行记录的比特位是故障比特位。
例如,将检测到的故障比特位在error_bits中的对应比特位的数值修改为1,其中,该error_bits的初始值是所有比特位的数值均为0,且0表示不是检测到的故障比特位,1表示是检测到的故障比特位。因此,可以直接确定error_bits中的所有数值为1的比特位是故障比特位。
基于上述技术方案,本发明实施例中,当需要检测初始地址对应的地址线是否存在故障时,可以对初始地址进行转换,并利用地址线走步算法对转换后的基址进行故障检测,并确定所有故障比特位对应的地址线发生故障,从而检测到初始地址对应的地址线是否存在短路、开路、固定逻辑等故障。
以下结合一具体应用场景对本发明实施例的技术方案进行详细说明。
如表1所示,以地址和数据均为8比特为例,地址线走步1算法对应的初始地址(即初始基址)为00000000,地址线走步0算法对应的初始地址为11111111,为了方便描述,后续以地址线走步1算法为例进行说明。
将初始地址00000000中的至少一个比特位的数值反置,如将第7比特位的数值反置为1,得到基址10000000;或者,将第7比特位和第6比特位的数值反置为1,得到基址11000000。其中,初始地址00000000可以是不能访问的内存地址,假设10000000或者11000000为能够访问的内存地址,则将10000000或者11000000作为有效的基址,否则继续获得新的未检测过的地址作为基址。
其中,将初始地址中的一个比特位的数值反置的处理,与将初始地址中的多个比特位的数值反置的处理相同,后续以一个比特位的数值反置为例。
在实际应用中,在将初始地址中的一个比特位的数值反置后得到基址之后,在利用地址线走步算法对当前的基址进行故障检测时,为了尽量减少目标地址(又可以称为走步地址,如00000001、00000010、10000000等)是不能访问的内存地址的数量,则一种可行的实施方式是:根据不可访问的内存地址的分布情况与目标地址的分布情况来确定初始地址对应的转换后的基址。
例如,地址线走步1算法中的初始地址为00000000时,则目标地址依次为00000001、00000010、00000100、…10000000,目标地址从00000001开始以2的指数形式往高段内存的地址跳,且目标地址主要分布在低段内存,而高段内存中只有一个目标地址10000000。假设实际的运行系统环境,当不可访问的内存地址集中分布在低段内存时,则目标地址是不可访问的内存地址的概率很大,当不可访问的内存地址集中分布在高段内存时,则目标地址是不可访问的内存地址的概率很小。基于这一原理,针对地址线走步1算法对应的初始地址,如果不可访问的内存地址集中分布在低段内存,则选择初始地址的高位的数值进行反置,例如,将初始地址00000000反置成基址10000000;如果不可访问的内存地址集中分布在高段内存,则选择初始地址的低位的数值进行反置,如将初始地址00000000反置成基址00000001。
又例如,地址线走步0算法中的初始地址为11111111时,则目标地址依次为11111110、11111101、11111011、…01111111,目标地址从11111110开始以2的指数形式往低段内存的地址跳,且目标地址主要分布在高段内存,而低段内存中只有一个目标地址01111111。假设实际的运行系统环境,当不可访问的内存地址集中分布在高段内存时,则目标地址是不可访问的内存地址的概率很大,当不可访问的内存地址集中分布在低段内存时,则目标地址是不可访问的内存地址的概率很小。基于这一原理,针对地址线走步0算法对应的初始地址,如果不可访问的内存地址集中分布在低段内存,则选择初始地址的低位的数值进行反置,例如,将初始地址11111111反置成基址11111110;如果不可访问的内存地址集中分布在高段内存,则选择初始地址的高位的数值进行反置,如将初始地址11111111反置成基址01111111。
其中,在上述过程中,低段内存是指最高位为0的内存地址,如01111111等,而高段内存是指最高位为1的内存地址,如10000000等。
为了方便描述,后续以地址线走步1算法对应的初始地址为00000000为例,在第一次执行步骤101时,将初始地址转换为基址10000000。
为了更好的说明相关步骤,首先定义如下变量。
1、error_bits:error_bits的初始值是所有比特位的数值均为0,error_bits的位数大于等于初始地址的位数,设error_bits初始值是00000000。其中,当比特位的数值为0时,表示该比特位不是故障比特位,当比特位的数值为1时,表示该比特位是故障比特位,且故障比特位对应的引脚存在故障,该故障引脚对应的地址线发生故障。例如,当error_bits为00000000时,第3位比特位的数值为0,第3位不是故障比特位,当error_bits为00001000时,第3位比特位的数值为1,第3位是故障比特位。
2、miss_bits:miss_bits的初始值是所有比特位的数值均为1,miss_bits的位数大于等于初始地址的位数,设miss_bits初始值是11111111。其中,当比特位的数值为1时,表示该比特位是未检测到的比特位,此时还未检测到该比特位对应的引脚是否存在固定逻辑故障,当比特位的数值为0时,表示该比特位是检测到的比特位,此时已经检测到该比特位对应的引脚是否存在固定逻辑故障,即可能存在固定逻辑故障的比特位。例如,当miss_bits为11111111时,第3位比特位的数值为1,表示当前还没有检测到第3位对应的引脚是否存在固定逻辑故障。当miss_bits为11110111时,第3位比特位的数值为0,表示当前已经检测到第3位对应的引脚是否存在固定逻辑故障。
3、short_map映射表:short_map映射表是一个M*N的映射表,M大于等于初始地址的位数,N大于等于初始地址的位数,且任意两个比特位相交位置的初始值是1。假设short_map映射表是一个8*8的映射表,则short_map映射表的初始值可以如表2或表3所示。当两个比特位相交位置的数值为1时,表示还未检测到这两个比特位之间的短路故障。当两个比特位相交位置的数值为0时,表示已经检测到这两个比特位之间的短路故障,即可能存在短路故障的比特位。例如,当第3位比特位与第4位比特位相交位置的数值为1时,表示当前还没有检测到第3位对应的引脚与第4位对应的引脚之间是否存在短路故障。当第3位比特位与第4位比特位相交位置的数值为0时,表示当前已检测到第3位对应的引脚与第4位对应的引脚之间是否存在短路故障。
表2
表3
0 1 2 3 4 5 6 7
0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1 1
2 0 0 0 1 1 1 1 1
3 0 0 0 0 1 1 1 1
4 0 0 0 0 0 1 1 1
5 0 0 0 0 0 0 1 1
6 0 0 0 0 0 0 0 1
7 0 0 0 0 0 0 0 0
其中,表3在表2的基础上,将冗余交叉项的数值修改为0。例如,由于不会检测相同引脚之间是否存在短路故障,因此,比特位0与比特位0相交位置、比特位1与比特位1相交位置…,均是冗余交叉项,将这些位置的数值设置为0。此外,表2中任意两个比特位之间均存在两个相交位置,如横向的比特位1与纵向的比特位2的相交位置,横向的比特位2与纵向的比特位1的相交位置,针对这两个相交位置,可以将其中一个相交位置作为冗余交叉项,并将这些位置的数值设置为0。这样,经过对冗余交叉项的处理后,可以得到表3。在表3中,针对任意两个不同的比特位,只存在一个相交位置,且相交位置的初始值是1。例如,可以如表3所示,针对比特位1和比特位2,二者只存在一个相交位置,且该相交位置的初始值是1。
针对利用地址线走步1算法对基址10000000进行故障检测的过程,参见上述对基址00000000进行故障检测的方式,在此不再赘述。
假设在故障检测过程中,利用目标地址(10000010)检测到第1位引脚发生故障,用于检测第0位引脚是否发生故障的目标地址(10000001)无法访问,用于检测第2位引脚是否发生故障的目标地址(10000100)无法访问,则会跳过对目标地址(10000001)和目标地址(10000100)的处理。基于此,确定本次检测过程中被跳过的比特位是第0位和第2位,被反置的比特位是第7位,继而确定本次检测过程中检测到的比特位是第1位、第3位、第4位、第5位、第6位,而且可以确定本次检测过程中的故障比特位是第1位。
在确定本次检测过程中的故障比特位是第1位之后,将error_bits由初始值00000000修改为00000010,其中的第1位是1,表示第1位对应的引脚发生故障。在确定本次检测过程中检测到的比特位是第1位、第3位、第4位、第5位、第6位之后,将miss_bits由初始值11111111修改为10000101,其中的第1位、第3位、第4位、第5位、第6位被修改为0,表示这些比特位是检测到的比特位。将表3所示的short_map映射表修改为表4。其中,由于第7位是被反置的比特位,不会检测到该比特位对应的引脚与其它任意比特位对应的引脚之间是否存在短路故障,因此不对第7位对应相交位置的数值进行修改,在将第1位对应相交位置的数值修改为0,将第3位对应相交位置的数值修改为0,将第4位对应相交位置的数值修改为0,将第5位对应相交位置的数值修改为0,将第6位对应相交位置的数值修改为0的过程中,即使针对被跳过的比特位,由于这些检测到的比特位已经被检测过是否存在短路故障,因此,这些检测到的比特位与被跳过的比特位对应相交位置的数值也修改为0,只是这些检测到的比特位与被反置的比特位对应相交位置的数值不进行修改,此外,被跳过的比特位之间的短路故障没有进行检测,因此被跳过的比特位对应相交位置的数值不进行修改,如表4所示。
表4
之后,由于miss_bits中不是所有数值均为0,short_map映射表中任意两个比特位相交位置的数值不是均为0,因此,将初始地址转换为基址01000000,并利用地址线走步1算法对基址01000000进行故障检测。假设在故障检测过程中,用于检测第1位引脚是否发生故障的目标地址(01000010)无法访问,用于检测第4位引脚是否发生故障的目标地址(01010000)无法访问,则会跳过对目标地址(01000010)和目标地址(01010000)的处理。基于此,可以确定本次检测过程中被跳过的比特位是第1位和第4位,被反置的比特位是第6位,继而可以确定出本次检测过程中检测到的比特位是第0位、第2位、第3位、第5位、第7位,而且确定本次检测过程中没有故障比特位。
在确定本次检测过程中检测到的比特位是第0位、第2位、第3位、第5位、第7位之后,将miss_bits由10000101修改为00000000,其中的第0位、第2位、第7位被修改为0,表示这些比特位是检测到的比特位,其中的第3位、第5位已经是0,不再需要修改。将表4所示的short_map映射表修改为表5。其中,由于第6位是被反置的比特位,不会检测到该比特位对应的引脚与其它任意比特位对应的引脚之间是否存在短路故障,因此不对第6位对应相交位置的数值进行修改,将第0位对应相交位置的数值修改为0,将第2位对应相交位置的数值修改为0,将第3位对应相交位置的数值修改为0,将第5位对应相交位置的数值修改为0,将第7位对应相交位置的数值修改为0,其中的相交位置已经是0的位置不再需要修改,如表5所示。
表5
之后,由于miss_bits中所有数值均为0,但是short_map映射表中还有一个相交位置(第7位和第6位的相交位置)的数值不是0,因此,将初始地址转换为基址00100000,并利用地址线走步1算法对基址00100000进行故障检测。假设故障检测过程中,用于检测第1位引脚是否发生故障的目标地址(00100010)无法访问,用于检测第4位引脚是否发生故障的目标地址(00110000)无法访问,则会跳过对目标地址(00100010)和目标地址(00110000)的处理。基于此,确定本次检测过程中被跳过的比特位是第1位和第4位,被反置的比特位是第5位,继而确定出本次检测过程中检测到的比特位是第0位、第2位、第3位、第6位、第7位,而且确定本次检测过程中没有故障比特位。
在确定本次检测过程中检测到的比特位是第0位、第2位、第3位、第6位、第7位之后,针对miss_bits,其中的第0位、第2位、第3位、第6位、第7位已经是0,不再需要修改,miss_bits为00000000。将表5所示的short_map映射表修改为表6,相交位置已经是0的位置不再需要修改,只需要将第7位和第6位的相交位置的数值修改为0即可,如表6所示。
表6
之后,由于miss_bits中所有数值均为0,short_map映射表中所有相交位置的数值均是0,因此,需要输出所有检测过程中检测到的故障比特位。而且,由于error_bits被修改为00000010,因此确定error_bits中数值为1的比特位是故障比特位,即第1位是故障比特位,第1位对应的引脚发生故障,该故障引脚对应的地址线发生故障。此外,可以只输出发生故障的引脚是第1位对应的引脚,而不输出第1位对应的引脚是短路故障还是固定逻辑故障。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种地址线故障检测的装置,该地址线故障检测的装置应用在处理设备上。其中,该地址线故障检测的装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的处理设备的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图2所示,为本发明提出的地址线故障检测的装置所在的处理设备的一种硬件结构图,除了图2所示的处理器、非易失性存储器外,处理设备还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该处理设备还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
如图3所示,为本发明提出的地址线故障检测的装置的结构图,包括:
获得模块11,用于获得地址线走步算法对应的初始地址作为基址;
转换模块12,用于根据所述初始地址转换一个未检测过的地址作为基址;
判断模块13,用于判断当前的基址是否为有效;当判断结果为否时,通知所述转换模块根据所述初始地址转换一个未检测过的地址作为基址;
检测模块14,用于当判断结果为是时,利用所述地址线走步算法对基址进行故障检测,以获得本次检测过程中检测到的比特位以及检测到的故障比特位;
输出模块15,用于输出所有检测过程中检测到的故障比特位。
所述转换模块12,具体用于将所述初始地址中的至少一个比特位的数值反置,得到一个未检测过的地址作为基址。
所述转换模块12,具体用于在将所述初始地址中的至少一个比特位的数值反置,得到一个未检测过的地址作为基址的过程中,从所述初始地址的最高比特位开始,选择至少一个比特位的数值反置,得到一个未检测过的地址作为基址;或者,从所述初始地址的最低比特位开始,选择至少一个比特位的数值反置,得到一个未检测过的地址作为基址。
所述检测模块14,具体用于在获得本次检测过程中检测到的比特位的过程中,确定所述初始地址中被反置的比特位以及本次检测过程中被跳过的比特位,是本次检测过程中未检测到的比特位,将本次检测过程中未检测到的比特位之外的其它比特位,确定为本次检测过程中检测到的比特位。
所述检测模块14,还用于当所述初始地址对应的所有比特位均是已经检测到的比特位,或者,进行故障检测的次数达到阈值时,则通知所述输出模块输出所有检测过程中检测到的故障比特位;否则,通知所述转换模块根据所述初始地址转换一个未检测过的地址作为基址。
所述检测模块14,还用于在获得本次检测过程中检测到的故障比特位之后,将检测到的故障比特位在error_bits中的对应比特位进行记录;
所述输出模块15,还用于在输出所有检测过程中检测到的故障比特位时,确定error_bits中已经进行记录的比特位是故障比特位;
所述检测模块14,还用于在获得本次检测过程中检测到的比特位之后,将检测到的比特位在miss_bits中的对应比特位进行记录,并将检测到的比特位在short_map映射表中的对应比特位进行记录;
所述输出模块15,还用于当miss_bits中的所有比特位均是已经进行记录的比特位,所述short_map映射表中任意两个比特位相交位置,均是已经进行记录的比特位时,则确定所述初始基址对应的所有比特位均是已经检测到的比特位。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (12)

1.一种地址线故障检测的方法,其特征在于,所述方法包括:
步骤A、获得地址线走步算法对应的初始地址作为基址;
步骤B、根据所述初始地址转换一个未检测过的地址作为基址;
步骤C、判断当前的基址是否为有效;如果是,则执行步骤D;如果否,则执行步骤B;
步骤D、利用所述地址线走步算法对基址进行故障检测,以获得本次检测过程中检测到的比特位以及检测到的故障比特位;
步骤E、输出所有检测过程中检测到的故障比特位。
2.根据权利要求1所述的方法,其特征在于,所述步骤B包括:
将所述初始地址中的至少一个比特位的数值反置,得到一个未检测过的地址作为基址。
3.根据权利要求2所述的方法,其特征在于,将所述初始地址中的至少一个比特位的数值反置,得到一个未检测过的地址作为基址的过程,包括:
从所述初始地址的最高比特位开始,选择至少一个比特位的数值反置,得到一个未检测过的地址作为基址;或者,
从所述初始地址的最低比特位开始,选择至少一个比特位的数值反置,得到一个未检测过的地址作为基址。
4.根据权利要求2或3所述的方法,其特征在于,所述获得本次检测过程中检测到的比特位的过程,包括:
确定所述初始地址中被反置的比特位以及本次检测过程中被跳过的比特位,是本次检测过程中未检测到的比特位,将本次检测过程中未检测到的比特位之外的其它比特位,确定为本次检测过程中检测到的比特位。
5.根据权利要求1所述的方法,其特征在于,在所述步骤D和所述步骤E之间还包括:
步骤F、当所述初始地址对应的所有比特位均是已经检测到的比特位,或者,进行故障检测的次数达到阈值时,则执行步骤E;否则,则执行步骤B。
6.根据权利要求1或5所述的方法,其特征在于,
在获得本次检测过程中检测到的故障比特位之后,将检测到的故障比特位在error_bits中的对应比特位进行记录;在输出所有检测过程中检测到的故障比特位时,确定error_bits中已经进行记录的比特位是故障比特位;
在获得本次检测过程中检测到的比特位之后,将检测到的比特位在miss_bits中的对应比特位进行记录,并将检测到的比特位在short_map映射表中的对应比特位进行记录;当miss_bits中的所有比特位均是已经进行记录的比特位,且所述short_map映射表中任意两个比特位相交位置,均是已经进行记录的比特位时,则确定所述初始基址对应的所有比特位均是已经检测到的比特位。
7.一种地址线故障检测的装置,其特征在于,所述装置包括:
获得模块,用于获得地址线走步算法对应的初始地址作为基址;
转换模块,用于根据所述初始地址转换一个未检测过的地址作为基址;
判断模块,用于判断当前的基址是否为有效;当判断结果为否时,通知所述转换模块根据所述初始地址转换一个未检测过的地址作为基址;
检测模块,用于当判断结果为是时,利用所述地址线走步算法对基址进行故障检测,以获得本次检测过程中检测到的比特位以及检测到的故障比特位;
输出模块,用于输出所有检测过程中检测到的故障比特位。
8.根据权利要求7所述的装置,其特征在于,
所述转换模块,具体用于将所述初始地址中的至少一个比特位的数值反置,得到一个未检测过的地址作为基址。
9.根据权利要求8所述的装置,其特征在于,
所述转换模块,具体用于在将所述初始地址中的至少一个比特位的数值反置,得到一个未检测过的地址作为基址的过程中,从所述初始地址的最高比特位开始,选择至少一个比特位的数值反置,得到一个未检测过的地址作为基址;或者,从所述初始地址的最低比特位开始,选择至少一个比特位的数值反置,得到一个未检测过的地址作为基址。
10.根据权利要求8或9所述的装置,其特征在于,
所述检测模块,具体用于在获得本次检测过程中检测到的比特位的过程中,确定所述初始地址中被反置的比特位以及本次检测过程中被跳过的比特位,是本次检测过程中未检测到的比特位,将本次检测过程中未检测到的比特位之外的其它比特位,确定为本次检测过程中检测到的比特位。
11.根据权利要求7所述的装置,其特征在于,
所述检测模块,还用于当所述初始地址对应的所有比特位均是已经检测到的比特位,或者,进行故障检测的次数达到阈值时,则通知所述输出模块输出所有检测过程中检测到的故障比特位;否则,通知所述转换模块根据所述初始地址转换一个未检测过的地址作为基址。
12.根据权利要求7或11所述的装置,其特征在于,
所述检测模块,还用于在获得本次检测过程中检测到的故障比特位之后,将检测到的故障比特位在error_bits中的对应比特位进行记录;
所述输出模块,还用于在输出所有检测过程中检测到的故障比特位时,确定error_bits中已经进行记录的比特位是故障比特位;
所述检测模块,还用于在获得本次检测过程中检测到的比特位之后,将检测到的比特位在miss_bits中的对应比特位进行记录,并将检测到的比特位在short_map映射表中的对应比特位进行记录;
所述输出模块,还用于当miss_bits中的所有比特位均是已经进行记录的比特位,且所述short_map映射表中任意两个比特位相交位置,均是已经进行记录的比特位时,则确定所述初始基址对应的所有比特位均是已经检测到的比特位。
CN201610057304.0A 2016-01-27 2016-01-27 一种地址线故障检测的方法和装置 Active CN105760263B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610057304.0A CN105760263B (zh) 2016-01-27 2016-01-27 一种地址线故障检测的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610057304.0A CN105760263B (zh) 2016-01-27 2016-01-27 一种地址线故障检测的方法和装置

Publications (2)

Publication Number Publication Date
CN105760263A true CN105760263A (zh) 2016-07-13
CN105760263B CN105760263B (zh) 2019-08-06

Family

ID=56342656

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610057304.0A Active CN105760263B (zh) 2016-01-27 2016-01-27 一种地址线故障检测的方法和装置

Country Status (1)

Country Link
CN (1) CN105760263B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108957237A (zh) * 2018-08-01 2018-12-07 歌尔股份有限公司 一种异常线路检测方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041426A (en) * 1995-04-07 2000-03-21 National Semiconductor Corporation Built in self test BIST for RAMS using a Johnson counter as a source of data
CN1427420A (zh) * 2001-12-20 2003-07-02 华为技术有限公司 Ram高速测试控制电路及其测试方法
CN1479207A (zh) * 2002-08-29 2004-03-03 深圳市中兴通讯股份有限公司 内存检测方法
CN102132263A (zh) * 2009-06-24 2011-07-20 松下电器产业株式会社 存储器访问控制装置、集成电路、存储器访问控制方法及数据处理装置
CN104200847A (zh) * 2014-08-27 2014-12-10 上海华力微电子有限公司 存储器地址的测试方法及测试装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041426A (en) * 1995-04-07 2000-03-21 National Semiconductor Corporation Built in self test BIST for RAMS using a Johnson counter as a source of data
CN1427420A (zh) * 2001-12-20 2003-07-02 华为技术有限公司 Ram高速测试控制电路及其测试方法
CN1479207A (zh) * 2002-08-29 2004-03-03 深圳市中兴通讯股份有限公司 内存检测方法
CN102132263A (zh) * 2009-06-24 2011-07-20 松下电器产业株式会社 存储器访问控制装置、集成电路、存储器访问控制方法及数据处理装置
CN104200847A (zh) * 2014-08-27 2014-12-10 上海华力微电子有限公司 存储器地址的测试方法及测试装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108957237A (zh) * 2018-08-01 2018-12-07 歌尔股份有限公司 一种异常线路检测方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN105760263B (zh) 2019-08-06

Similar Documents

Publication Publication Date Title
CN105589770B (zh) 一种故障检测的方法和装置
US7673216B2 (en) Cache memory device, semiconductor integrated circuit, and cache control method
CN108694985B (zh) 用于检测存储器故障的测试方法及测试电路
KR101211042B1 (ko) 고장 정보 저장장치 및 저장방법
US7512001B2 (en) Semiconductor memory device, test system including the same and repair method of semiconductor memory device
KR20220152566A (ko) 가속 신경망에 대한 메모리 결함 맵
WO2017161083A1 (en) Implementing fault tolerance in computer system memory
KR101373668B1 (ko) 메모리 수리 장치 및 방법
US6360344B1 (en) Built in self test algorithm that efficiently detects address related faults of a multiport memory without detailed placement and routing information
US7243273B2 (en) Memory testing device and method
Yarmolik et al. March PS (23N) test for DRAM pattern-sensitive faults
CN100517254C (zh) 数据线测试方法
CN103000226B (zh) 通过随机存取存储器芯片地址引脚检测缺陷的测试方法
JPS62214599A (ja) 半導体記憶装置
JP3967704B2 (ja) 半導体記憶装置とそのテスト方法
CN101853198B (zh) 地址总线的检测方法、设备和系统
CN105760263A (zh) 一种地址线故障检测的方法和装置
US9728235B2 (en) Semiconductor device and semiconductor memory device
KR20190062879A (ko) 스페어 피봇 고장 특성을 이용한 메모리 분석 방법 및 장치
CN105786719A (zh) 一种NAND Flash存储器和存储器中坏块的处理方法
JP2011034642A (ja) メモリテスト回路、半導体集積回路、及びメモリテスト方法
KR102432940B1 (ko) 반도체 테스트 시스템
JPS6019080B2 (ja) 記憶装置のチェック方法
Caşcaval et al. Efficient march tests for a reduced 3-coupling and 4-coupling faults in random-access memories
JP2792327B2 (ja) 半導体集積回路装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 310052 Binjiang District, Zhejiang Province, Changhe Road, No. 11, building 466, building

Applicant after: Huashan Information Technology Co., Ltd.

Address before: 310052 Binjiang District, Zhejiang Province, Changhe Road, No. 11, building 466, building

Applicant before: Hangzhou Kun Hai Information Technology Co., Ltd

CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Xinhua Sanxin Information Technology Co., Ltd.

Address before: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Huashan Information Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant