专利名称:用散列函数区分存储系统中随机和重复差错的方法和系统的制作方法
技术领域:
本发明一般涉及计算机存储系统,更具体地说,涉及存储系统中的差错检测和预测故障分析。
背景技术:
计算机系统存储器包括长期(非易失性)和短期(易失性)存储设备。长期存储设备,比如硬盘驱动器(HDD)即使在断电状态下也能够保持软件和数据。短期存储设备,比如双列直插存储器模块(DIMM,Dual In-Line Memory Module)能够在通电状态下保持指令和数据。软件指令和数据可以无限期地保存在长期存储器中,并根据需要加载到短期存储器上以便由处理器执行。执行指令的结果,比如处理后的数据也可被临时保存在短期存储器中,用于通电计算会话期间的继续访问,或者被保存在长期存储器中,用于后续计算会话中的访问和处理。在DMM中会出现差错,所述差错会影响存储系统的性能和可靠性。一种DMM差错是单比特差错(SBE,Single Bit Error) 0极其接近高效开关调节器的随机电源和地噪声是SBE的一个原因。存储系统中越来越严格的定时要求是SBE的另一个作用因素。DIMM 还含有越来越大的存储单元密度,这导致每个DIMM的比特差错率(BER)更高。每个计算机系统含有密度不断增大的DIMM,这也会导致相应更高的差错率。
发明内容
本发明的一个实施例提供一种检测存储模块中的单比特差错的方法。每个单比特差错被识别为随机差错或重复差错。计数在一个时间间隔内发生的每个识别的随机差错和每个识别的重复差错。响应于在所述时间间隔内,识别的随机差错的数目达到随机差错阈值,或者识别的重复差错的数目达到重复差错阈值,产生报警。重复差错阈值小于随机差错阈值。本发明的另一个实施例提供一种存储系统。存储控制器包括用于检测存储模块中的单比特差错的差错检测控制逻辑。包括计数在一个时间间隔内发生的随机差错的随机差错计数器。包括计数在所述时间间隔内发生的重复差错的重复差错计数器。提供比较随机差错计数器与随机差错阈值以及比较重复差错计数器与重复差错阈值的阈值比较器。重复差错阈值小于随机差错阈值。报警发生器被配置成响应于在所述时间间隔内,随机差错计数器达到随机差错阈值,或者重复差错计数器达到重复差错阈值,产生报警。
图1是按照本发明的一个实施例,对其实现预测故障分析(PFA,predictive failure analysis)的计算机存储系统的示意图。图2是一般概述可在存储系统中进行的PFA处理的流程图。
具体实施方式
本发明的实施例包括在存储系统中进行预测故障分析(PFA)的系统和方法。每个单比特差错(SBE)现在可被识别为随机差错或者重复差错,随机差错是被确定在预定时间间隔内在特定存储地址或存储地址块出现不超过一次的差错,重复差错是被确定在所述预定时间间隔内在特定存储地址或特定块出现多于一次的差错。随后可以对照不同阈值来比较在预定时间间隔内出现的随机差错和重复差错的数目,以便生成PFA报警。更特别地,与被识别为重复差错的SBE相比,可对被识别为随机差错的SBE设定更高的阈值,因为与重复差错相比,随机差错明显不太可能影响存储器性能。随机差错还不太可能扩展成无法校正的差错,所述无法校正的差错的出现对存储系统的运行的破坏性极大。因此,按照这种方式区分随机差错和重复差错将使得可以识别DIMM中的更严重的重复差错,同时避免当DIMM 仅经历比率可接受的随机差错时,不必要地或者过早地把DIMM标记成坏的DIMM。
在下面讨论的一个实施例中,使用散列处理来减少跟踪系统存储器中重复发生差错的每个位置所需的存储器的量和计算循环的数目。可对识别出SBE的存储地址应用散列处理,以确定将记录SBE的表格位置。存储地址可被分组成多个块,其中当应用散列函数时,给定块中的每个存储地址产生相同的散列和。随后,可以使用小至1比特签名的相应差错状态字段来跟踪在所述存储地址或存储地址块是否产生了第一个或后续差错。整个系统所需的计数器少至两个,一个计数器用于跟踪被识别为随机差错的SBE的总数,而另一个计数器用于跟踪在存储系统中被识别为重复差错的SBE的总数。可独立地调整诸如随机差错阈值、重复差错阈值、时间间隔、散列表格的大小、每个存储地址块的大小、以及每个差错状态字段的大小的参数,以按需调整存储系统。
图1是按照本发明的一个实施例,对其实现预测故障分析(PFA)的计算机存储系统10的示意图。存储系统10可被设置在机架式计算机系统的刀片服务器上。存储系统10 包括主存储器12,主存储器12具有一个或多个双列直插存储器模块(DIMM),比如可设置在刀片服务器的系统板上的DIMM。存储控制器20包含相对于主存储器12读取和写入数据的读/写控制逻辑22、识别和校正DIMM差错的差错检测控制逻辑23。包含在主存储器12 的DIMM内的DRAM(动态随机存取存储器)芯片可包括专用于差错校正的存储比特(未示出)。存储控制器20可以使用这些差错检测比特来记录奇偶性,或者使用纠错码(ECC)来检测所有的单比特差错。差错检测控制逻辑可包括SEDDED( “单差错检测,双差错检测”) 码以检测和校正单比特差错,并利用额外的奇偶校验比特来可选地检测双比特差错。
主存储器12可包含成千上万个或者数百万个保存数据的离散存储单元。主存储器12被分成多个块14,每个块14只包含存在于主存储器12中的所有存储单元的子集。每个存储单元具有唯一的存储地址,使得每个块14包含存在于主存储器12中的所有唯一存储地址的子集。附图标记16表示存储单元的一个例子,所述存储单元具有例证的存储地址 “afbf0018”。像这样的8字符地址可利用一个存储字节来表示。通过参照对应的存储地址, 包含在存储系统10内的存储控制器20可以读写特定的存储单元。每个块一般是存储地址的物理分组。为了便于讨论,块14被图示成正方形或矩形块14的组阵,图中用行字母(A, B,C等)和列数字(1,2,3等)来识别每个块。然而,块14不必具有所示的特定物理分组。
每个块14可包括任意数目的存储单元,每个存储单元具有唯一的存储地址。图1 提供了其中主存储器12具有相应的1024k个存储地址处的总共IOMX 10~3 ( BP, 1024k)个存储单元的例子。主存储器12中的1024k个存储单元可被划分成1000个块14,使得每个块14具有IOM个存储单元。以每个块14少至1个存储单元的方式(即,以每个块14代表主存储器12中的一个地址的方式)来构成主存储器12也在本发明的范围内。然而,跟踪每个存储地址处的SBE的发生是极其存储器密集和CPU密集的。如下所述,在本实施例中,把多个存储地址组成每个块14使得可以更高效地进行PFA。
提供电子表格40,以便跟踪在主存储器12中检测到的单比特差错(SBE)。表格40 可以是系统的存储控制器20可读写的主存储器12的子集。专用系统代码可包含在主存储器20内,以访问表格40和执行PFA功能。另一方面,可以包括在主存储器12之外的硬件和软件部件,以执行这些功能。主存储器12的每个块14中的存储单元按照其存储地址被映射到电子表格40中的对应位置。在本实施例中,表格40包括与每个存储地址块相对应的独立记录,使得特定地址块内的每个地址被映射到表格40中的相同位置。具体地说,每个地址块连同包含在该地址块内的存储地址被映射到表格40的一行,其中每一行包含一项不同的记录。例如,地址块Al和包含在地址块Al内的IOM个存储地址中的每个存储地址被映射到表格40的相应第一行41,地址块A2及其IOM个地址被映射到表格40的相应第二行42,等等。第一列(块列表列)43列出主存储器12中的块14。表格的第二列(差错跟踪列)44用于以1比特签名45的形式来记录SBE的发生。
每个地址块的存储地址可以多种方式映射到表格40。在本实施例中,通过对存储地址应用散列函数对,存储地址被有效地映射到表格40。选择散列函数对,使得当应用散列函数M时,给定块14中的每个存储地址产生相同的散列和。散列函数对向每个块14提供逻辑分组,其中,当应用散列函数对时,特定块14中的每个存储地址具有相同的散列值。 在图解说明的例子中,散列函数具有IOM 1的散列缩小率。当应用散列函数对时,块Al 中的IOM个存储地址中的每个存储地址产生相同的散列和。块A2中的IOM个存储地址中的每个存储地址产生与关于块Al的IOM个地址计算的散列和不同的另一个散列和,等等。因此,表格40包括1000行,每个块14 一行。当在主存储器12中的特定存储单元检测到差错时,对该存储单元的存储地址应用散列函数24,以确定表格40的哪一行把该差错记录在差错跟踪列44中。
在一个实施例中,通过识别SBE并跟踪SBE的位置,以把SBE识别为随机差错或重复差错,可对主存储器12进行PFA。对本公开来说,在规定的时间间隔内,在任意特定地址或地址块出现不多于一次的差错可被看作随机差错。在特定地址或地址块出现多于一次的差错可被看作重复差错。在另一个实施例中,只有在特定地址重复发生的那些差错才可被看作重复差错,以及差错在存储地址块内的意外过高重现可用作该地址块内的特定存储地址处的可能重复差错的指示符。跟踪主存储器12中的每个存储地址处的SBE,以明确确定特定存储地址是否经历重复差错在本发明的范围之内。然而,通过把存储地址组成多个块 14,可在块层面跟踪差错的发生,而不是在单个存储地址的层面跟踪差错的发生,从而提供一种更高效的跟踪SBE并把SBE分类成随机差错或重复差错的方式。通过把每个单个存储地址看作一个独立的块,可提供在区分随机差错和重复差错方面最高的分辨率水平。然而, 跟踪每个存储地址处的差错率是极其内存密集和CPU密集的。通过改为把存储地址组成多个块14并在块层面监测SBE的发生和重现,可获得具有可接受的分辨率水平的更高效率。
在本实施例中,设置第一计数器(随机差错计数器)26,以计数被识别为随机差错的每个SBE。设置第二计数器(重复差错计数器)28,以计数被识别为重复差错的每个SBE。 定时器功能30被用于定时具有预定持续时间的连续时间间隔。在每个时间间隔的开始,通过把差错跟踪列44中的所有签名比特45重置为0来初始化表格40。在每个连续时间间隔内,检测SBE,并按照出现每个SBE的地址块14,把SBE记录在表格40的差错跟踪列44中。 通过利用差错跟踪列44,出现在任意给定块中的第一个差错可被看作随机差错,以及在特定时间间隔内该块中的任何重现差错被看作重复差错(在这种方案的变形中,不是把第一个差错看作随机差错,而是在每个预定时间间隔的结束,确定差错是随机差错还是重复差错。在所述时间间隔内在给定块中出现一个并且仅一个差错可被看作随机差错,而在给定块中出现多于一个的差错可被看作重复差错)。在相应的计数器沈、观上计数随机差错和重复差错。阈值比较器32比较随机差错计数器沈和第一阈值(随机差错阈值)27,以及比较重复差错计数器观和第二阈值(重复差错阈值)29。报警发生器34被配置成如果在任意预定时间间隔内,识别的随机差错的数目达到随机差错阈值27,或者识别的重复差错的数目达到重复差错阈值四,则生成PFA报警。
报警发生器34可用于触发补救动作,比如把DMM标记成坏的DMM,并自动使该 DIMM下线。响应于PFA报警可采取的备选动作或其它动作可包括例如在DIMM故障日志50 中记录被怀疑故障的DIMM的位置,以有助于该DIMM的后续修复动作。在另一个动作中,也可响应于PFA报警而开启与问题DIMM相邻的LED或其它视觉指示器。此外,响应于PFA报警,风扇控制器52可加强冷却,例如降低可能成为DIMM故障原因之一的高温。还可包括存储器节流控制逻辑53,以响应于PFA报警而降低DIMM性能。差错检测控制逻辑23还可开始更频繁的扫描以检测和校正差错,比如通过使用存储器擦洗。
重复差错阈值四最好被设定成小于随机差错阈值27。设定明显低于随机差错阈值的重复差错阈值可提供对随机差错的容限大于对重复差错的容限的PFA。附图中给出一个例子,其中随机差错阈值27被设定成1000,而重复差错阈值四仅仅被设定成10。在这个例子中,随机差错阈值27从而是重复差错阈值四的大小的10倍。随机差错阈值27和重复差错阈值四以及(上面讨论的)散列缩小率可以是由作过说明的存储器性能要求或者可靠性、可用性和可维修性(RAQ要求决定的存储器的量的函数。
在本实施例中,设置在每一行(记录)的差错跟踪列44中的签名比特45是1比特签名。1比特是存储器的最小可用单元,它可具有两个互斥的二进制值之一,比如“0”或 “1”。1比特签名的使用令人满意地把指示差错状态所需的存储量降到最小,同时提供关于特定块的差错状态的有限信息量。当差错检测控制逻辑23检测到SBE时,对SBE的存储地址应用散列函数,以确定表格40的哪一行记录该SBE。如果该行中的签名比特45目前为 “0”,那么把该签名比特从“0”转换为“1”以记录该差错,并递增随机差错计数器沈。如果在相同时间间隔内,在同一个块14内发生后续SBE,那么存储控制器20根据签名比特45的 “1”值,确定在该块中先前已出现过至少一个差错,从而递增重复差错计数器观。签名比特在所述时间间隔的持续时间内保持值1,使得对于在所述特定时间间隔内在同一个块出现的每个SBE,重复差错计数器观都将被递增。同时,在所述时间间隔内,在其它块14只出现一次的SBE将被随机差错计数器沈计数成随机差错。在该具体实施例中,计数被识别为随机差错的SBE的总数和被识别为重复差错的SBE的总数,而不详细说明在每个块出现了多少重复差错。
在图1的实施例中,每个块14可具有许多存储地址(例如,本例中,每个块具有 1024个地址),然而,签名比特45只包括一个比特。从而,差错跟踪列44中的签名比特45 的值只指示在当前时间间隔内,先前在给定块14中是否发生了 SBE,而不详细说明先前发生SBE的具体存储地址。然而,每个块14处的重复差错的计数仍然提供了对PFA有用的信息,因为给定块内的坏的存储地址或坏的一组存储地址会导致该块中的不相称的较大差错计数。可以选择重复差错阈值四的值,以指示在期望水平的确定性内,在该块内存在有缺陷的存储地址。
差错跟踪列44中的每个字段的大小是可为调整对存储系统10的PFA处理的性能而选择的一个参数。可以使差错跟踪列44中的每个字段的大小从所示的1比特签名增大到多比特字段,以便于记录更多的具体信息。例如,如果使差错跟踪列44中的每个字段的大小从单个比特增大到完整的一个存储字节,那么差错跟踪列44中的每个字段可被用于计数在每个块14发生的差错的数目,而不仅仅是计数在存储系统10中发生的差错的总数。 计数每个块14处的差错的数目将提供用于分析在主存储器12中发生的SBE的附加信息。 可以产生报警,以指示具有不相称的较大数目重复差错的块。例如,如果在一个时间间隔内,在存储系统12中出现总共10个重复差错,那么在一个块中出现10个重复差错可指示与10个不同块的每个块处1个重复差错相比更严重的问题。另一个阈值可被用于响应于特定块中的重复SBE的数目而触发报警。
归入每个块14中的存储地址的数目是可为调整对存储系统10的PFA处理的性能而选择的另一个参数。增大每个块14的存储地址的数目会减小表格40的大小,以及增大存储系统10中的PFA处理的速度。相反,减小每个块14的存储地址的数目会增大表格大小,但更好地区分随机差错和重复差错。在一个极端,把每个块14的大小减小到单个存储地址实际上使存储系统10能够识别在任意特定存储地址出现的重复差错。然而,由于需要差错跟踪列44中的字段与主存储器12中的唯一存储地址的数目一样多,因此这样做会增大表格40的大小。可按照多少存储地址被归入每个块14中,来获得效率和分辨率的理想平衡。
随机差错阈值27和重复差错阈值四是可为调整对存储系统10的PFA处理的性能而选择的另外两个参数。每个阈值27、四越大,PFA处理对相应差错类型的容限越高。然而,由于随机差错被认为不太可能在存储系统10中导致任意种类的灾难性故障,因此随机差错阈值27可被设定成是重复差错阈值四的许多倍。
定时器功能30所测量的时间间隔是可为调整对存储系统10的PFA处理的性能而选择的另一个参数。例如,较长的时间间隔可以给出在存储系统10的各个块中出现差错的任何趋势的更全面指示。然而,可以选择较短的时间间隔,使得系统10更快地对差错做出反应以及产生被证明具有充分依据的任何PFA报警。
此外,字段大小、块大小、随机差错阈值27和重复差错阈值29、以及时间间隔等参数相互影响,从而可以相互协同地进行调整,以实现所需调节。例如,如果块大小被减小到每个块包括较少的存储地址,那么系统10将能够更好地区分随机差错和重复差错。从而, 重复差错阈值四可随同块大小的减小一起被减小,因为在大小减小的块中计数的重复差错的数目更可能出自单个存储地址或者较小的一组存储地址。同样地,如果选择较长的时间间隔,那么可以选择随机差错阈值27和重复差错阈值四的对应更大的值。
选择图1的例子,以便易于利用数目便利的1000个存储块进行讨论。在另一个更实际的例子中,4. 千兆字节(GB)DMM可被分成16384个块,每个块包含沈2144 (4. 29GB/16384)个字节。利用1比特/块算法跟踪16384个块将只需要 2048(16384/8)字节表格。这会产生2097152 (4. ^GB/2048字节)1的散列比。这是一个相当大的散列比,产生可以非常高效地管理的对应较小表格。对于区分随机差错和重复差错来说,本例中的所述较大散列比的效率应是绰绰有余的。
图2是概述在存储系统,包括(但不限于)图1的存储系统10中执行的PFA处理的流程图。步骤100涉及启动或重置定时器和表格。所述表格是电子表格,其例子是图1 的表格40。表格包括用于每个存储地址块的差错跟踪字段,以跟踪在所述存储地址块识别的SBE。每次重复步骤100时,表格中的差错跟踪字段都被重置为0或空值。定时器将被用于定时在其间识别和计数SBE的连续时间间隔。每次重复步骤100时,定时器一开始也被设定为0。
在步骤102中,监测存储系统的一个或多个DIMM的差错,包括单比特差错(SBE)。 条件步骤104对SBE的检测作出反应,而条件步骤106对当前时间间隔是否到期作出反应。 在步骤102、104和106,在所述时间间隔的持续时间不断监测DMM的SBE。如果在当前时间间隔内的任意时间在步骤104检测到SBE,那么处理进入步骤106,在步骤106,对识别出 SBE的存储地址应用散列函数,以确定表格中记录该SBE的位置。例如,可以选择散列函数, 以便当把该散列函数应用于给定块中的任意存储地址时,产生相同的散列和。表格位置可以是用于该块的特定行。
在条件步骤108中,可以参照与该块相对应的行或其它表格位置内的字段来确定在当前时间间隔内,先前在该表格位置是否记录了任意SBE。如果在当前时间间隔内,先前在该表格位置记录了一个或多个SBE,那么在步骤110,递增重复差错计数器。如果对于整个存储系统只使用一个重复差错计数器,那么重复差错计数器可以通用于该存储系统,或者如果对每个块提供独立的计数器,那么重复差错计数器可专用于该块。然而如果在步骤 108中,先前未在该表格位置记录SBE,那么在步骤112可改为递增随机差错计数器。随机差错计数器通用于整个存储系统。
随后可比较SBE与相关阈值。如果在步骤108,SBE被识别为随机差错,从而在步骤112使随机差错计数器递增,那么按照条件步骤114,比较随机差错计数器与随机差错阈值(阈值1)。如果在步骤108,SBE改为被识别为重复差错,从而在步骤110使重复差错计数器递增,那么按照条件步骤116,比较重复差错与重复差错阈值(阈值幻。如果在步骤 114随机差错计数器达到随机差错阈值,或者在步骤116重复差错计数器达到重复差错阈值,那么在步骤118产生报警。
如果两个阈值都未被超过,那么处理返回条件步骤106,以确定当前时间间隔是否已到期。如果所述时间间隔还未到期,那么处理继续监测一个或多个DIMM(步骤10 、识别 SBE的发生(步骤104)、记录任何重复差错(步骤110)或随机差错(步骤112)、比较SBE 计数器与相应阈值(步骤114和116)。一旦在步骤106检测到当前时间间隔到期,那么处理返回步骤100,在步骤100,如上所述重置定时器和表格。
本领域的技术人员会理解,本发明的各个方面可被具体体现成系统、方法或计算机程序产品。因而,本发明的各个方面可以采取纯硬件实施例、纯软件实施例(包括固件、驻留软件、微代码等),或者结合这里通常可被称为“电路”、“模块”或“系统”的软件和硬件特征的实施例的形式。此外,本发明的各个方面可以采取包含在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质具有包含于其中的计算机可读程序代码。
可以使用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如(但不限于)电、 磁、光、电磁、红外或半导体系统、设备或装置,或者它们的任意适当组合。计算机可读存储介质的更具体的例子(非穷举列表)可包括具有一根或多根导线的电连接,可移植计算机磁盘,硬盘,随机存取存储器(RAM),只读存储器(ROM),可擦可编程只读存储器(EPR0M或闪速存储器),光纤,可移植光盘只读存储器(CD-ROM),光存储装置,磁存储装置,或者上述存储介质的任意适当组合。在本文的上下文中,计算机可读存储介质可以是能够包含或者保存供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的程序的任何有形介质。
计算机可读信号介质可包括计算机可读程序代码包含在其中,例如,包含在基带中,或者体现为载波的一部分的传播数据信号。这种传播信号可以采取任意各种形式,包括 (但不限于)电磁、光或者它们的任意适当组合。计算机可读信号介质可以是不是计算机可读存储介质,并且能够传递、传播或传送供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的程序的任何计算机可读介质。
包含在计算机可读介质上的程序代码可利用任何适当的媒体传送,包括(但不限于)无线媒体、有线媒体、光纤电缆、RF等,或者它们的任意适当组合。
可用一种或多种编程语言,包括诸如Java、Smalltalk, C++之类的面向对象的编程语言,和诸如“C”编程语言或类似编程语言之类的常规过程编程语言的任意组合,编写执行本发明的各个方面的操作的计算机程序代码。程序代码可完全在用户的计算机上运行, 部分在用户的计算机上运行,作为独立的软件包,部分在用户的计算机上运行并且部分在远程计算机上运行,或者完全在远程计算机或服务器上运行。在后一情况下,远程计算机可通过任意类型的网络,包括局域网(LAN)或广域网(WAN),连接到用户的计算机,或者可实现与外部计算机的连接(例如,利用因特网服务提供商,经因特网实现与外部计算机的连接)。
下面参考按照本发明的各个实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图,说明本发明的各个方面。要明白流程图和/或方框图的每个方框,以及流程图和/或方框图中的各个方框的组合可用计算机程序指令实现。这些计算机程序指令可被提供给通用计算机,专用计算机或者其它可编程的数据处理设备的处理器,从而产生机器,以致借助计算机或其它可编程数据处理设备的处理器执行的指令产生实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。
这些计算机程序指令也可被保存在计算机可读介质中,所述计算机可读介质能够指令计算机、其它可编程数据处理设备或者其它装置按特定方式运行,以致保存在计算机可读介质中的指令产生制成品,所述制成品包括实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的指令。
计算机程序指令也可被加载到计算机,其它可编程数据处理设备或其它装置上,使得在计算机,其它可编程数据处理设备或其它装置上执行一系列的操作步骤,从而产生计算机实现的处理,以致在计算机或其它可编程设备上执行的指令提供实现在流程图和/ 或方框图的一个或多个方框中指定的功能/动作的处理。
附图中的流程图和方框解说明按照本发明的各个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这方面,流程图或方框图中的每个方框可代表包含实现指定的逻辑功能的一个或多个可执行指令的模块、程序段或一部分代码。 另外应注意,在一些备选实现中,在方框中表示的功能可不按照附图中所示的顺序发生。例如,接连表示的两个方框事实上可以基本同时地执行,或者各个块有时可按照相反的顺序执行,取决于所涉及的功能。另外应注意方框图和/或流程图的每个方框,以及方框图和/ 或流程图中的各个方框的组合可用实现指定功能或动作的基于硬件的专用系统,或者专用硬件和计算机指令的组合实现。
这里使用的术语只是用于说明具体的实施例,并不意图限制本发明。这里使用的单数形式意图还包括复数形式,除非上下文明确地另有所示。另外要明白当用在本说明书中时,术语“包含”指定指定所陈述的特征、整数、步骤、操作、部件、组件和/或组的存在,然而并不排除一个或多个其它特征、整数、步骤、操作、部件、组件和/或组的存在或增加。术语“最好”、“优选”、“宁可”、“视情况”、“可以”和类似术语用于指示所涉及的某一项目、条件或步骤是本发明的可选(非必需)特征。
下面的权利要求中的所有装置或步骤加功能部件的对应结构、材料、动作和等同物意图包括与明确要求保护的其它部件结合地实现功能的任意结构、材料或动作。提供本发明的说明是出于举例说明的目的,而不是穷举的,或者意图把本发明局限于所公开的形式。对本领域的普通技术人员来说,许多修改和变化是显而易见的,而不脱离本发明的精神和范围。选择并说明实施例是为了更好地解释本发明的原理和实际应用,以及使本领域的其他普通技术人员能够关于具有适合于预期的特定应用的各种修改的各个实施例,理解本发明。
权利要求
1.一种检测差错的方法,包括 检测存储模块中的单比特差错;把每个单比特差错识别为随机差错或重复差错;计数在一个时间间隔内发生的每个识别的随机差错和每个识别的重复差错;以及响应于在所述时间间隔内识别的随机差错的数目达到随机差错阈值或者识别的重复差错的数目达到重复差错阈值,产生报警,其中,所述重复差错阈值小于所述随机差错阈值。
2.按照权利要求1所述的方法,进一步包括把在所述时间间隔内单比特差错在存储地址的子集中的每个第一次出现识别为随机差错;以及把在同一个时间间隔内单比特差错在存储地址的所述子集中的每个后续出现识别为重复差错。
3.按照权利要求1所述的方法,进一步包括把在所述时间间隔内在存储地址的块中出现一个且仅仅一个单比特差错识别为随机差错;以及把在所述时间间隔内在所述存储地址的块中出现多于一个的单比特差错识别为重复差错。
4.按照权利要求1所述的方法,进一步包括把每个检测到的单比特差错的存储地址映射到电子表格中的相应位置; 把在所述时间间隔内被映射到电子表格中的一个位置的单比特差错的第一次出现识别为随机差错;以及把在所述时间间隔内被映射到电子表格中的所述位置的单比特差错的重复出现识别为重复差错。
5.按照权利要求4所述的方法,进一步包括对每个检测到的单比特差错的存储地址应用散列函数,以获得电子表格中的相应位置。
6.按照权利要求5所述的方法,其中,所述散列函数把多于一个的存储地址映射到电子表格中的每个位置。
7.按照权利要求4所述的方法,进一步包括响应于在所述时间间隔内,已被映射到电子表格的所述位置的检测到的单比特差错的每个第一次出现,递增随机差错的计数;以及响应于在所述时间间隔内,已被映射到电子表格的所述位置的检测到的单比特差错的后续出现,递增重复差错的计数。
8.按照权利要求1所述的方法,进一步包括响应于在所述时间间隔内单比特差错在存储地址的块的第一次出现,把与所述存储地址的块唯一关联的签名比特从第一二进制值转换成第二二进制值;响应于签名比特从第一二进制值被转换成第二二进制值,递增随机差错的计数;以及响应于在同一个时间间隔内所述存储地址的块处的后续单比特差错,根据签名比特的第二二进制值,确定先前在所述存储地址的块中已出现至少一个差错,并递增重复差错的计数。
9.按照权利要求1所述的方法,进一步包括分别计数在多个块中的每个块出现的单比特差错的数目,每个块包括一个或多个存储地址;响应于在所述时间间隔内每个块具有一个且仅仅一个单比特差错,递增随机差错的计数;以及响应于在所述时间间隔内每个块具有多于一个的单比特差错,递增重复差错的计数。
10.一种检测差错的存储系统,包括存储控制器,包括用于检测存储模块中的单比特差错的差错检测控制逻辑; 随机差错计数器,用于计数在一个时间间隔内出现的随机差错; 重复差错计数器,用于计数在所述时间间隔内出现的重复差错; 阈值比较器,用于比较随机差错计数器和随机差错阈值以及比较重复差错计数器和重复差错阈值,其中,所述重复差错阈值小于所述随机差错阈值;以及报警发生器,被配置成响应于在所述时间间隔内随机差错计数器达到随机差错阈值或者重复差错计数器达到重复差错阈值,产生报警。
11.按照权利要求10所述的存储系统,进一步包括能够由存储控制器写入的电子表格,所述存储控制器被配置成把每个检测到的单比特差错的存储地址映射到所述电子表格中的相应位置;把在所述时间间隔内,映射到电子表格中的一个位置的单比特差错的第一次出现识别为随机差错的控制逻辑;以及把在所述时间间隔内,映射到电子表格中的所述位置的单比特差错的重复出现识别为重复差错的控制逻辑。
12.按照权利要求11所述的存储系统,进一步包括对每个检测到的单比特差错的存储地址应用散列函数,以获得电子表格中的相应位置的控制逻辑。
13.按照权利要求12所述的存储系统,其中,所述散列函数具有电子表格中的每个位置多于一个的存储地址的缩小率。
14.按照权利要求11所述的存储系统,进一步包括响应于在所述时间间隔内,已被映射到电子表格的所述位置的检测到的单比特差错的每个第一次出现,递增随机差错计数器的控制逻辑;以及响应于在所述时间间隔内,已被映射到电子表格的所述位置的检测到的单比特差错的后续出现,递增重复差错计数器的控制逻辑。
15.按照权利要求11所述的存储系统,进一步包括 与电子表格中的每个位置唯一关联的比特;响应于在所述时间间隔内,已被映射到电子表格的关联位置的检测到的单比特差错的每次出现,在第一二进制值和第二二进制值之间转换每个比特的控制逻辑;响应于所述比特从第一二进制值被转换成第二二进制值,递增随机差错计数器的控制逻辑;以及响应于所述比特从第二二进制值被转换回第一二进制值,递增重复差错计数器的控制逻辑。
全文摘要
用散列函数区分存储系统中随机和重复差错的方法和系统。一个实施例提供了一种差错检测方法,其中检测存储模块中的单比特差错并识别为随机差错或重复差错。计数在一个时间间隔内出现的每个识别的随机差错和每个识别的重复差错。响应于在预定时间间隔内识别的随机差错的数目达到随机差错阈值,或者识别的重复差错的数目达到重复差错阈值,产生报警。重复差错阈值被设定成小于随机差错阈值。可对每个检测到的差错的存储地址应用散列处理,从而把存储系统中的差错的位置映射到电子表格中的相应位置。
文档编号G06F11/00GK102541667SQ20111028114
公开日2012年7月4日 申请日期2011年9月21日 优先权日2010年9月21日
发明者C·L·普林顿, D·A·劳维, I·R·扎帕塔, J·Q·赫尔南德斯, M·C·埃莱斯, M·L·斯科兰德, S·K·巴哈里, 邓夫子 申请人:国际商业机器公司