用于识别故障存储器元件的系统和方法

文档序号:6781596阅读:293来源:国知局
专利名称:用于识别故障存储器元件的系统和方法
技术领域
本发明 一般地涉及计算机系统,并且更特别地涉及当存在有缺陷存 储器部件时提高存储器系统的服务性能。
背景技术
目前的高性能计算主存储器系统通常包括一个或多个动态随机存取存储器(DRAM)器件,这些器件经由一个或多个存储器控制元件连 接到一个或多个处理器。整体计算机系统性能受到计算机结构的每一关 键元件的影响,包括处理器的性能/结构、任意存储器高速缓存、输入/ 输出(I/O)子系统、存储器控制功能的效率、主存储器器件、存储器互 连接口的类型和结构以及与系统的 一个或多个元件相关联的任意故障 ^^企测/纠正功能的类型和效率。图1涉及与本申请共同转让的授予Dell等人的美国专利 No.5,513,135,并且描述了一种早期的同步存储器模块。图1中描述的存 储器模块是双列直插存储器模块(DIMM)。这种模块包括同步DRAM 108、緩冲器器件112、优化引出线和互连,以及用以实现高性能才喿作的 电容性解耦方法。该专利还描述了使用这些器件作为锁相环(PLL)而 在该模块上使用时钟重驱动(re-drive)。图2涉及同此共同转让的授予Dell等人的美国专利No.6,173,382, 并且描述了计算机系统210,该系统包括经由总线240直接(即,点对 点)连接到存储器控制器214的同步存储器模块220,并且还包括对接 收自存储器控制器214的地址、数据和控制信息进行緩沖、寄存或者其 他动作的逻辑电路224 (诸如专用集成电路或"ASIC")。存储器模块220 可以被编程为在存储器初始化进程的一部分中或在正常操作期间,借助 诸如集成电路间(I2C)控制总线234之类的独立总线以多种可选择或可编程的模式操作。当在需要不止一个直接连接到存储器控制器的存储 器模块的应用中使用时,该专利注意到通过使用场效应晶体管(FET) 开关将模块从总线上电分离可以使得到的分支线最短化。相对于美国专利No.5,513,135,美国专利No.6,173,382还演示了将 所有定义的功能(地址、命令、数据、存在检测等)集成到单个器件中 的能力。多项功能的集成是一项公共的行业实践,技术进步使其成为可 能,并且在这种情况下,其使得另外的模块密集度和/或功能性成为可能。行业投入的广泛研究和开发努力,通过改进存储器系统/子系统的设 计和/或结构,不断地创造着使整体系统性能和密度最大化的改进的和/ 或革新的解决方案。对高可用性和最小(如果有的话)停用时间的需求 带来了与整体系统可靠性有关的更多挑战,因为客户都期望新计算机系 统能够在平均故障间隔时间(MTBF)方面显著超越现有系统,而另外 又提供额外的功能、更高的性能、更多的存储以及更低的操作成本等。对增强纠错技术的使用已经成为改善MTBF的主要因素,然而,在 被并行地存取以提供高速緩存线存取(典型地是64字节、128字节或更 大)的一组(2个、4个或更多个)模块中识别单个故障模块却变得越 来越困难。在错误被ECC结构识别为"不可纠正"的情况下,这种困难 尤其明显。在已调度或未调度的修复动作期间,若给定有限数量的故障 数据(尤其是在不可纠正错误导致了修复动作的情况下)且需要使系统 很快上线,常常会响应于表观的存储器系统故障而移除不止一个存储器 模块。为了减少被不必要地替换的功能模块的数目,期望具有快速且准 确识别特定故障存储器模块的能力。发明内容一个示例性实施例包括一种用于当两个或更多模块响应于读取请 求而一致操作时识别存储器系统中的故障存储器元件的方法。该方法包 括接收与不可纠正错误(UE)相关联的病征比特和地址。响应于前^"可 纠正错误(CE)已经发生,获取该前一 CE的位置。CE的位置指定了 CE的存储器器件位置。使用该前一 CE的位置以及UE的病征比特作为输入来确定UE的位置。UE的位置指定了存储器器件位置。识别与UE的位置相关联的故障存储器元件。另 一个示例性实施例包括一种用于识别两个或更多存储器模块响 应于读取请求而 一致操作的存储器系统中的故障存储器元件的方法。该方法包括接收与UE相关联的地址以及与该UE相关的数据,该数据包 括与该UE相关的一个或多个病征比特和读:f又数据。响应于前一 CE已 经发生,获取与该前一 CE相关的数据。使用与该前一 CE相关的数据 和与该UE相关的数据作为输入来识别故障存储器元件。又一个示例性实施例包括一种用于识别故障存储器元件的存储器 系统。该存储器系统包括两个或更多存储器模块、存储装置和处理器。 每个存储器模块包括多个存储器器件,并且该两个或更多存储器模块中 的至少两个存储器模块响应于读取请求而一致操作。该存储装置存储与 某地址处的第一故障相关联的故障信息。该处理器包括用于实现接收与 UE相关联的病征比特和地址的逻辑。响应于前一CE已经发生,获取该 前一 CE的位置。该CE的位置指定了 CE的存储器器件位置。使用该前 一 CE的位置以及该UE的病征比特作为输入来确定该UE的位置。该 UE的位置指定了存储器器件位置。识别与该UE的位置相关联的故障存 储器元件。在研究下述附图和具体描述之后,根据实施例的其他系统、方法和 /或计算机程序产品对本领域技术人员来说将是明显的,或者将变得明 显。意图是所有这些另外的系统、方法和/或计算机程序产品都包括于本 说明书内,包括于本发明的范围内,并且由所附的权利要求保护。


现在参考附图,其中在若干附图中相同的元件使用了相似的标号。 图1示出了一个示例性的早期同步存储器模块; 图2示出了一个示例性的计算机系统,其具有直接连接到存储器控 制器的全緩冲同步存储器模块;闺3示出了一个示例性的存储器系统,其示出为具有单个传统多点分支线总线;图4示出了全缓冲同步存储器模块和系统结构,其中全緩冲同步存 储器模块包括转发器功能;图5示出了一个计算机存储器系统的框图,该系统包括一致操作以 支持单个数据存取请求的多个独立的级联互连存储器接口总线;图6示出了一个计算机存储器系统的框图,该系统可以用于实现本 发明的示例性实施例;图7示出了一个存储器结构,其具有级联的存储器模块以及单向的 总线,该结构可以用于实现本发明的示例性实施例;图8是可以由本发明的示例性实施例实现的用于识别不可纠正错误 的位置的进程流;图9示出了一个存储器结构,其具有级联的存储器模块和单向的总 线,该结构可以用于实现本发明的示例性实施例;以及图10-图13示出了可以由本发明的示例性实施例实现的示例性电路。
具体实施方式
示例性实施例帮助识别存储器系统中的特定故障存储器模块,以便 减少当存储器系统中发生故障时被替换的存储器模块的数目。利用第一 可纠正字节错误的位置信息来找到第二不可纠正字节错误的位置。在示 例性实施例中,第二错误的位置用于识别有缺陷的存储器元件(例如, 模块或存储器器件)。此外,第二字节错误可以被纠正,由此使得存储 器系统能够继续用于生产和/或诊断目的的执行。当前某些计算机系统中的现有技术是使用 一 字节纠错、二字节检错 的Reed-Solomon (或等效的)错误控制码来对数据进行编码。当适当地 应用这种码时(例如,使得任意存储器芯片故障最多影响一个字节), 该码允许系统从单个比特混乱以及影响直至整个DRAM存储器芯片的 故障中恢复。这种被纠正的第一错误称为可纠正错误(CE)。这类存储 器芯片故障包括大型故障(例如,"chipkiir )或更普遍的,由诸如I/O马区动器/接收器故障以及连接器故障之类的事件引起的个别I/O通路的故 障。在使用上述Reed-Solomon码的情况下当第二错误发生时,该码(如 同其当前被使用的情况)不能纠正该错误并生成不可纠正错误(UE)信 号。通常的策略是当UE发生时暂停系统执行。然而,经常存在这种情 况两种错误(即CE和UE)最初并不同时发生,而是第一错误类型在 某个地址处发生(例如,信号比特故障、1/0故障、芯片猎杀等),并且 仅在一段时间之后,影响同一ECC字中的不同比特、字节或字节部分的 第二故障才发生。在间隙时间中,对与该地址相关联的数据的其他存取 (例如,处理器请求的存取,由于擦除机制的存取等)将导致与第一故 障类型和位置 一致的永久性错误。后面的图3-图5用于描述将应用本发明的示例性实施例的示例传 统存储器结构。图3来自于同此共同转让的授予Grundon等人的美国专利 No.6,510,100,其示出了关于存储器系统310的简化框图和描述,该系统 包括在传统多点分支线总线上的共计四个寄存式DIMM 340。子系统包 括存储器控制器320、外部时钟緩沖器330、寄存式DIMM 340、地址总 线350、控制总线360和数据总线370,端子395在地址总线350和数 据总线370上。尽管在图3中只示出了单个存储器通道,但是以这些模 块生产的系统通常包括不止一个来自存储器控制器的分立存储器通道, 每个存储器通道单独操作(当单个通道上组装了模块时)或并行操作(当 两个或更多通道上组装了模块时)以获得期望的系统功能性和/或性能。 使用传统的寄存式DIMM,从每个存储器通道可以获得72比特的数据 总线宽度。尽管只示出了一个通道,但是系统通常将具有2个、4个或 更多所示类型的存储器通道,从而得到在响应高速緩存线操作时的32、 64、 128或更多字节数据的传送。此外,每个DIMM 340或存储器模块 通常将包括72比特的数据,允许利用位于存储器控制器320中^ ECC 电路或逻辑使用ECC纠正最多的数据错误。图4来自于授予Bonella等人的美国专利No.6,587,912,其示出了同步存储器模块410和系统结构,其中转发器集线器420包括经由总线421 和422将地址、命令和数据本地重驱动到本地存储器器件401和402; 生成本地时钟(如在其他附图和专利文本中所描述的那样);以及经由 总线400将适当的存储器接口信号重驱动到系统中的下一模块或组件。图5示出了由集成处理器芯片500构成的存储器系统,其包含一个 或多个处理器元件以及集成存储器控制器510。在图5所示的配置中, 多个独立级联互连存储器接口总线506逻辑地聚集在一起,以便一致地 操作以支持较高带宽的单个独立存取请求,其中数据和错误检测/纠正信 息分布或"分割(strip)"在并行总线和相关联的器件上。存储器控制器 510附着到四个窄/高速点对点存储器总线506,每个总线506将若干唯 一的存储器控制器接口通道之一连接到级联互连存储器子系统503,该 子系统包括至少一个集线器器件504以及一个或多个存储器器件509(或 DRAM)。使用同期的同步存储器器件,由存储器控制器510发起的存 取通常可以得到128字节数据的传送(8字节DIMM宽度x 4个一致操 作的DIMM x来自每个所选DRAM的4比特突发)。使用传统的緩冲DIMM,在每个DIMM上可获得72比特的数据总 线宽度(典型地,通过对8比特宽的9个存储器器件509进行存取,或 对4比特宽的18个存储器器件509进行存取),允许使用ECC识别和纠 正最多的数据错误。如图3和图4所示的数据路径ECC电路,或图5 中的逻辑通常将位于存储器控制器510中,并且包括校验比特生成和随 后的错误检测和纠正。尽管可以如关于图3 -图5所描述地那样实现同期的存储器ECC结 构,但是ECC功能的位置(例如,ECC电路或逻辑)可以存在于存储 器控制器之外的其他系统元件中,包括处理器本身、存储器集线器、寄 存器、緩冲器或存在于存储器控制器与存储器器件之间的其他存储器接 口器件,或者存在于存储器器件本身中。图6示出了可以用于实现本发明的示例性实施例的计算才A叠储器系 统的框图。图6示出了由集成处理器芯片600构成的存储器系统,其包 含一个或多个处理器元件和集成存储器控制器610。在图6所示的配置中,多个独立级联互连存储器接口总线606逻辑地聚集在一起,以便一 致地操作以支持较高带宽的单个独立存取请求,其中数据和错误检测/ 纠正信息分布或"分割"在并行总线和相关联的器件上。存储器控制器610附着到四个窄/高速点对点存^f渚器总线606,每个总线606将若干唯 一的存储器控制器接口通道之一连接到级联互连存储器子系统603,该 子系统包括至少一个集线器器件604以及一个或多个存储器器件609(或 DRAM)。图6中的存储器系统与图5所示的存储器系统类似,而又外加了服 务处理器612、用于存储错误相关信息(例如它们的地址、它们的位置、 获取的数据和病征比特)的非易失性存储装置(NVS ) 614以及ECC逻 辑块616。在图6所示的示例性实施例中,本文所述(例如,参见图8) 的UE处理的一部分位于存储器控制器中的ECC逻辑616内,并且UE 处理的其他部分位于服务处理器612中。在集成处理器芯片600外部使 用服务处理器612的好处在于即使当集成处理器芯片600不可操作时, 该服务处理器612也可以用于执行错误诊断。类似地,在存储器控制器 610外部使用服务处理器612的好处在于,即使当存储器控制器—610不 可操作时,该服务处理器612也可以用于执行错误诊断。此外,使用NVS 614存储错误相关信息的好处在于当存储器控制器610和/或服务处理 器不可操作时,也可以对错误相关信息进行存取。图7示出了一个存储器结构,其具有级联的存储器模块以及单向的 总线,该结构可以用于实现本发明的示例性实施例。图7是图6的另一 个视图,服务处理器612和NVS614位于存储器控制器610外部。在此 处所描述的例子中并且对于当前存储器系统典型的是,高速緩存线是 128字节;然而在不偏离此处所描述的本发明示例性实施例的范围的情 况下,这一数字可以改变。图7所示的存储器系统只包括一个存储器模 块702,可以选4奪具有级联互连到一个或多个才莫块702的一个或多个额 外的模块(如图6中的例子所示)。其他的实施例可以只包括一排存储 器模块或根据需要包括模块的其他组合以优化地提供所需的系统线尺 寸(例如,32、 64、 128、 256字节等)。如图7所示,存储器控制器610附着到四个窄/高速点对点存储器总线606a、 606b、 606c、 606d,每个总线分别将若干唯一的存储器控制器 接口通道之一连接到存储器模块702a、 702b、 702c和702d。在图7中 所示的示例性实施例中,每个存储器模块702包含存储器器件509,每 个存储器器件具有8个数据输入/输出(I/O)通路并且以值为四的突发 长度操作。突发长度是在对存储器器件509的任意给定存取中每个所选 存储器器件509将通过I/O通路(经由存储器总线606 )处理(例如读 或写)的数据拍(例如,连续数据传送)的数量。在示例性实施例中, 需要总计32个存储器器件509服务于一条128字节的高速缓存线。通 常,如图7所示,为存储器模块702中的每八个存储器器件509提供一 个额外的第九存储器器件509。在图7所示的例子中,在四个存储器模 块702上提供了总计四个额外的存储器器件509。在示例性实施例中, 四个额外的存储器器件509中的一个被指定为备用存储器器件509,其 他三个被用于存储ECC信息。在每个存储器器件数据拍上应用Reed-Solomon码,其利用3个额 外冗余字节保护32字节的数据。该码能够纠正任意的一字节错误并检 测任意的二字节错误。当两个字节错误发生时,如果两个错误的位置都 已知,则该Reed-Solomon码可以用于纠正两个错误。在图7所示的存 储器系统中,在四个存储器模块702之一上的任意存储器器件509上, 将识别并纠正共计一个字节错误。本发明的示例性实施例致力于确定第 二错误的位置,该第二错误影响直至数据的整个字节(例如,芯片猎杀)。 一旦确定了第二错误的位置,就可以纠正第二错误,并且/或者可以确定 和报告该位置以辅助识别哪一 (哪些)存储器元件(例如,存储器器件 509、存储器系统603、存储器模块702等)发生了故障,以及应当替换 哪一可替换元件(例如,存储器模块、存储器卡等)以纠正存储器系统 中的错误。在本发明的示例性实施例中,从图7中最左边的存储器器件509开 始,从1到36对存储器器件509连续编号,以指定存储器器伴509的 位置(并因此指定错误的位置)。存储器模块702a中的九个存储器器件509从1到9编号;存储器模块702b中的九个存储器器件509从10到 18编号;存储器模块702c中的九个存储器器件509从19到27编号;以 及存储器模块702d中的九个存储器器件509从28到36编号。由此, 如果错误在位置20中,则错误与存储器模块702c中从左边数第二个存 储器器件509相关联。使用器件方位或位置,可以识别相应的故障存储 器元件(如存储器模块)用于替换。通过包括器件故障位置,以及故障 模块,当返回要修复的模块时,故障位置信息还可以用于实现对故障模 块的后续修复。在又一些示例性实施例中,在存储器模块702上可以安 装多于9个或少于9个存储器器件(典型地,18个、36个或72个), 故障比特(1个比特或多个比特)或字节位置用于识别故障模块(例如, 模块702c具有18个8比特宽的存储器器件,并且错误与72比特模块数 据宽度上的第4组8比特有关)。在多排存储器模块中,诸如所描述的 具有18个8比特宽的存储器器件的72比特才莫块中,故障的地址可以识 别故障存储器器件排。在系统初始化期间确定存储器模块配置(例如,存储器器件数量、 存储器器件数据宽度、模块密度等),此时处理器、服务处理器、存储 器控制器或其他控制元件通常借助IIC或类似的接口总线对安装在存储 器模块上的非易失性存储器进行询问(例如,串行存在检测或SPD EEPROM)。 一旦确定了存储器子系统结构,就对存储器接口进行初始 化以允许高速通信(例如,经由总线606),并且在正常的系统操作之前 完成进一步的初始化和认证操作。在这些后续步骤期间,ECC逻辑616 和非易失性存储装置614可以被配置为允许基于在模块询问进程期间确 定的存储器器件和模块信息对故障存储器器件和/或模块进行纠正识别。在本;^明的示例性实施例中,当标准ECC处理(例如,已经由同期 存储器系统执行的用于检测双重错误的存在和纠正单个错误的标准 ECC解码器)检测到UE或CE时,将错误相关信息存储在另 一系统如 服务处理器612可存取的存储介质(例如NVS614)中。在示例性实施 例中,该第二系统通过实现定位第二 UE错误的算法的软件和/或硬件工 具来分析该信息。其他示例性实施例可以在处理器、存储器控制器、外部处理器件或某些其他处理或分析装置中完成这种分析。为了确定构成 UE错误的故障的位置,不可纠正错误必须发生在先前在存储器存取期 间已经记录有可纠正错误的地址处。第二系统所需的最少必要信息是UE的数据读取的病征和(永久性)第一错误或CE的位置。UE的病征通过 将ECC奇偶校验矩阵(通常用H表示)乘以接收到的数据向量(通常 用c表示,c是列向量)获得。这可以表示为s-Hc。 UE的病征与第一 错误的位置一起是第二系统中的软件工具获得第二错误的位置,并且如 果需要,获得第一和第二错误的数量所需的全部信息。可选地,代替病 征或作为对病征的补充可以存储当UE和CE发生时读取的实际数据。 这可以允许第二系统上的软件工具确定故障的性质(例如,不管输入值 为何,I/O通路总是输出'T,比特)。该信息也可以用于例如收集故障 的统计信息。图8是可以由本发明的示例性实施例实现的用于识别UE (例如第 二字节错误)的位置的进程流。图8示出了用于当两个或更多存储器模 块响应于读取请求而一致操作时识别存储器系统(参见,例如图5-图 7和图9)中的故障存储器元件(例如,存储器器件和/或存储器模块) 的示例进程。在方框802,当对特定存储位置进行存取时检测到错误。 在示例性实施例中,由标准ECC处理检测到该4晉误。如果在方框804 中确定该错误是CE,则执行方框806并且执行标准ECC CE处理以确 定CE的位置并纠正该CE。在示例性实施例中,由位于同期存储器控制 器中的标准ECC处理执行方框806。接下来,执行方框808以存储CE 的地址和位置。在示例性实施例中,该信息存储在NVS614中,以便即 使当存储器控制器610不可操作时也能对该信息进行存取。在又一些示 例性实施例中,将只存储每个唯一故障的单个副本,并且针对每个唯一 的故障编译错误计数(直至预定的最大计数),其可以用于验证CE是否 为永久性错误。如果在方框804中确定4晉误是UE,则执行方框810。在方框810, 例如将UE的地址和病征比特存储在NVS 614中。在方框812,'检查以 确定先前是否已经发生了 CE。如果先前还没有发生CE,则执行方框814以执行标准UE处理。在示例性实施例中,这可以由同期存储器控制器中的标准ECC处理来执行并且可以使得存储器系统操作暂停。图8所示的处理可以在芯片猎杀情形下使用,原因是当双重错误发生时,其中一 个错误来源于的芯片猎杀的可能性很大。另一方面,可以限定算法,以便只有当与当前的UE相同的地址处先前发生过CE时,才使用前一 CE 的位置来预测CE中的错误的位置。更一般地,考虑到这样的可能性 如果在与UE相同的地址范围中已经发生了 CE,则使用该地址范围中的 CE的方位或位置来预测哪个芯片是UE错误可能涉及到的芯片。在芯片 猎杀的第一个例子中,地址范围等于整个芯片跨越的范围;在第二个例 子中,地址范围包括单个地址。存在选择地址范围的其他可能性以便令 本发明适用于不同的故障机制。如果先前已经发生了 CE,则执行方框816以确定与UE相关联的故 障存储器元件。在示例性实施例中,这通过使用UE的病征比特和前一 CE的位置来执行。在示例性实施例中,这通过假设构成UE的错误之一 的位置(例如,比特位置或字节位置)与CE的错误的位置相同来执行。 在示例性实施例中,位置指定了存储器模块上的存储器器件的方位。在 可选的示例性实施例中,利用更完善的方案来确定UE的位置,诸如下 面将描述的一个方案。基于UE的位置,识别故障存储器元件。如果在 方框818中确定存储器控制器610不处于诊断模式,则执行方框820。 在方框820,报告UE的位置(例如,在识别到UE的时候报告构成一个 或多个比特故障的一个或多个模块)。在可选的示例性实施例中,故障 模块位置将由具有第一永久性CE错误的模块构成,在达到CE错误阔 值之前,或者在包括不可纠正错误的未来存取期间将第二错误识别为第 一永久性错误之前,具有第二错误(如果在单独的模块上)的模块不能 被识别。报告可以包括在存储器模块上、在存储器槽(存储器模块安装 到该槽中)上、在故障模块附近等处发起一个可视指示符(例如,闪烁 的灯或LED,闪烁的灯的图案),并且/或者经由告警、打印输出、电子 通知或其他口头、可视或相关手段来报告错误。否则,如果^储器控制 器610处于诊断模式中,则执行方框822。在方框822中,纠正UE并且存储器子系统继续操作。当系统在诊断模式下运行时,可以应用方框822,其中在纠正第二错误、在NVS 614中存储信息并且暂停之后,系 统被重新启动(不管双重故障)并且操作用于诊断和修复目的。此外, 诊断模式可以在生产环境中应用,其中实际系统上线时间(up-time)比 暴露于三重错误更重要(例如,如果错误计算以很低概率发生则它们可 以忽略的大型搜索系统)。如前所述, 一旦构成不可纠正错误条件的故 障的位置已知,用于实现所需ECC解码器以纠正第二错误(即UE)的 一般技术在本领域是已知的。在可选的示例性实施例中,在方框808,当CE发生时从存储器器 件读取的数据与CE的地址一起存储。此外,在方框810, UE的地址以 及包括病征比特和当UE发生时从存储器器件读取的数据中的一者或两 者的数据被存储在存储设备中。在方框816中,与前一CE有关的读取 数据和与UE有关的读取数据用于识别故障存储器元件。在又一个可选的示例性实施例中,方框812确定前一 CE是否发生 在与当前的UE相同的地址处。只有当CE发生在与UE相同的地址处时, 才执行方框816 -方框822。如果在与UE相同的地址处没有发生CE, 则执行方框814。图8所示处理的一部分或全部可以由ECC逻辑616实现,该逻辑包 含针对存储器控制器610的标准ECC处理,并具有实现此处所述处理的 扩展,以确定第二字节错误或UE的位置。此外,图8所示的处理可以 以硬件、软件或硬件和软件的组合的形式实现。在示例性实施例中,图8所示处理的一部分或全部由服务处理器612 实现,以使得处理可以在存储器控制器610不可使用时进行,并且/或者 使得处理可以在不影响ECC逻辑616中的标准ECC处理的性能的情况 下进行。例如,ECC逻辑616中的标准ECC处理可能已经检测到错误 并且将错误(CE和UE 二者)相关信息写到了 NVS 614中(例如,执 行方框802、 808和810 )。当标准ECC处理;险测到UE时,其可以4皮《奮 改为调用服务处理器612来执行图8中从方框812开始的处理,以确定 前一CE是否已经发生。如果前一CE还没有发生,则控制可以返回到标准ECC处理以执行方框814。如果前一CE已经发生,则服务处理器 612执行方框816至方框822 (可能通过调用标准ECC处理中的模块, 如果这些模块可用的话)。前述例子只是图8所示处理可以分离到ECC 逻辑616和服务处理器612中的其中一种方式。在又一些示例性实施例中,当完成方框816 (或810或822)之后, 在避免未来UE事件的努力中,服务处理器、处理器或存储器控制器可 以调用诸如芯片冗余、比特通路冗余或其他可用方法的一种或多种方法 来纠正永久性错误和/或构成不可纠正错误情况的新错误。 一旦采取并证 实了纠正动作,就将与^皮修复故障相关联的已存储信息清除并可能将其 存储在NVM的另一区域,以便用于与后续的不可纠正错误处理无关的 故障跟踪和/或其他报告目的。图9示出了一个存储器结构,其具有级联的存储器模块和单向的总 线,该结构可以用于实现本发明的示例性实施例。图9示出的存储器系 统与图7所示的系统相似,只是在ECC逻辑块906中包含了图8所示的 全部处理,并且至少与UE恢复有关的ECC逻辑块906的一部分(例如, 方框810及以上)位于处理器904中。图8所示处理所用的信息存储在 NVS 614中。图9所示的示例性实施例包括一个存储器系统,其具有响应于来自 存储器控制器902的读取请求而一致操作的两个或更多存储器模块702。 如图9所示的存储器模块702各自包括一个或多个存储器器件。该存储 器系统还包括存储装置(例如,非易失性存储装置614或位于处理器904 或ECC逻辑906中的其他存储装置),用于存储与某地址处的第一故障 相关联的故障信息。该存储器系统还包括处理器904 (例如,处理器904 和/或图6所示服务处理器612的全部或子集),用于实现逻辑(例如包 含于ECC逻辑块906中的逻辑)。该逻辑实现识别与UE的位置相关联 的故障存储器元件(例如,存储器模块702上的存储器器件或存储器模 块702 )。的解码过程,其中第一错误的位置是已知的。示例性实施例可以用于确定在4个DIMM (或其他数量的DIMM)以一致方式操作服务于任意一 个线路请求的系统中的有缺陷的存储器器件、DIMM (或存储器模块) 等。下述的码能够纠正任意的一字节错误并^^测任意的二字节错误。当 发现永久性CE时,存储与该CE有关的信息(例如,地址、位置、所 存取的数据、病征比特),并随后响应于UE而使用该信息,以便定位和 可选地纠正在与该永久性CE相同的ECC字(例如,存储器存取)中发 生而导致不可纠正错误情况的第二错误。然后结合与第一错误有关的信 息而使用与第二错误有关的信息,以定位一个或多个有缺陷的DIMM或 存储器模块702。下面描述的示例性实施例以硬件的方式实现,然而为了上述任务的 目的,原理上不一定在实际的硬件中实现这种功能;将码字的病征信息 与第 一错误位置一起存储在非易失性存储器中以便在修复时可以获取 这些信息并随后以软件工具对其进行分析,就已经足够了。另一方面, 可以确定UE错误的位置的示例性实施例可以用于提高系统的实际纠错 能力(已经告诫过相关联的暴露于三重错误下),在这种情况下例如为 了性能的原因,以硬件方式实现这种示例性实施例可能是优选的。也存 在其他实现选择,例如,提供找到UE位置但不纠正UE的功能性的硬 件,这也是可行的。在示例性实施例中,仅当用于检测双重错误并纠正单个错误的标准 ECC解码器发送信号其检测到UE时,才使用下面描述的算法。如果以 适当的输入变量载入错误之一的位置,则正好由两个错误构成的那些UE 将被纠正。当错误不能被该算法纠正时,该算法也将具有UE信号(真 实信号)。用于检测两个错误并且纠正单个错误的Reed-Solomon码通常利用 ECC奇偶校验矩阵或H矩阵来代表每个ECC字必须满足的奇偶校验等 式。H矩阵还用于规定用于生成ECC校验比特和病征比特的XOR逻辑。 对应于H矩阵的行向量中的比特的ECC字的那些比特的XOR结果总是 等于0。从数学上看,如果i是代表ECC字的二元向量,则fECC矩阵 H和L的转置的积是一个全零向量,即H . yt = Q模2。根据奇偶校验等式,校验比特的值可以通过XOR运算从数据比特计算得出。数据比特与相应校验比特一起形成存储在存储器中的ECC字。另一方面,如果 从存储器中获取ECC编码的字,则使用奇偶校验等式来生成代表所接收 数据的正确性的病征。例如,令p(x) = l+x + x6 + x7 + x8, 一个二元本原多项式,a为p(x)在256个元素的有限域GF (28)中的根。a的伴随矩阵为<formula>formula see original document page 19</formula>T的某些幂将用于代表ECC的H矩阵的元素。幂丁i是非零有限域 元素ai的伴随矩阵,0《i《254。此外,每个ai可以被表示为8比特的二元向量。构成具有24个校验比特(3个符号)和264个数据比特(33个符 号)总共288个比特(36个符号)的(288,264) SSC-DSD (单符号纠 错-双符号检错)码,并且其以H矩阵的形式规定为 H = [Mi M2其中Mt为<formula>formula see original document page 19</formula>并且M2为<formula>formula see original document page 19</formula>I是一个8x8的单位矩阵,124是一个24x24的单位矩曄。注意, M2的最后两行是的前16列的最后两行的置换。这种性质可以用于病征生成和病征解码中的模块化实现。在示例性实施例中,ECC字的前33个符号位置被指定为数据符号,并且后3个符号位置被指定为校验符号。H矩阵还可以表示为H = 〔Hi,H2,…,H36〕,其中每个Hj是一个24x8的二元矩阵,并且可以被 称为一个符号列。注意,每个符号列包括三个8x8的子矩阵,其中一 个子矩阵是单位矩阵。设计这种性质以便在病征解码中可以容易地识别 符号错误模式。假设同一符号中的所有8个比特存储在同一存储器阵列 芯片中。作为SSC-DSD码,先前描述的H矩阵具有下述性质(1 )每个符 号列的列向量是线性独立的;(2)任意两个符号列的列向量所跨越的空 间的维数是16;以及(3)任意三个符号列的列向量所跨越的空间的维 数是24。如果数据比特的数量k小于264,则可以通过从H矩阵的数据部分 中删除某些二元列来缩短ECC。例如,如果lt据比特的数量为k = 256, 则可以从H矩阵中删除Mi最后的符号列(包括8个二元列),以形成一 个(280, 256)的SSC-DSD码。如果数据比特的数量为k = 260,则可 以从H矩阵中删除]V^最后的符号列的比特位置3,4,7,8,以形成一个 (284, 260)的SSC-DSD码。当接收到ECC编码的数据见时,检查该数据以查看病征S=H :^! 是否为一个全零向量。如果s是一个全零向量,则假设见中没有错误。 否则,对s进行解码以确定i中的错误是否为可纠正的,并确定错误的位置。在此处描述的示例性实施例中,将病征S分为3个组成部分, S!、 S2和S3,从而S- (S,S2,S3)。每个组成部分都是一个8比特的二元 向量并且可以被—见为GF (28)的元素。在下面的例子中,Ei是符号位置i处的错误模式,并且Li是符号i 的符号错误指示符。当且仅当符号i出错时,Li的值为一。此外,[是 已编码的ECC字,其满足等式H ■ Yt = Q模2,并且^-Y力g(模2) 是义被错误向量1= (EhE2,.,.,E36)破坏的字。 一旦通过对病征进行解 码而确定了错误向量g,就通过设定Y = ^ + g (模2)来恢复原始向量Y。由此,根据等式H . Yt = Q模2,病征S为<formula>formula see original document page 21</formula>此外,如果错误向量由位置i处的单个符号错误构成,则 S = Hj mod 2例如,如果i= 13,则<formula>formula see original document page 21</formula>为 T2<formula>formula see original document page 21</formula>在这种情况下,<formula>formula see original document page 21</formula>。由此,如果S^f"2并 且S^T6Q化,则令"产L并且Eu-s/。所有的符号错误指示符可以以类似的方式生成。如果病征是非零的,并且没有以此方式生成的任何符号 指示符启动,则启动UE信号。这种病征解码的方法是一种已知的现有 技术。在假设标准ECC解码器已经使UE标记出现的情况下,则已知不止 一个错误已经发生。下面的算法假设正好两个错误已经发生,其中第一 个错误具有已知的位置(例如,是一个永久性的CE)。在下面的整个例 子中,索引i标识已知的第一错误(即,CE)的位置,并且索引j标识 未知的第二错误(即,UE)的位置。无论i和j的值如何,病征的值总是如下<formula>formula see original document page 21</formula>其中Ej和Ej是错误的数量,并且它们(假设)是非零的。比率H^/Hu,, H"/^,k和ft,k/H,,k,其中k在{1,...,33}中,是目前讨论的解码功能的关键。下面的表详细地示出了这些值对于M!,它们是<formula>formula see original document page 21</formula>并且对于M2,它们是H2yH1上所关注的基本性质是,如果r和s在{1,...,33}中,贝'J: H3,r/H2,r不同于H3,s/H2,sH2,r/H!,r不同于H2s/Hu H3,r/Hu不同于H3,s/H!,s这可以通过直接才企查前面所示的表看出。情况l。第一错误具有在(34,35,36)中的已知位置i。假设i-34。 则可以知道Hi,2-Hi,3-0,并且因此/^式(1,2,3)转化为 S^Ej + H!jEj; (4)52 = H2iiEj ;and (5)53 = H3jEj. (6)如果j-35,则S产0,且S^Ej,并且如果j-36,则S^O且S^Ej。另一方 面,如果j在U,...,33)中,则S2和S3都不会等于零(因为H2j和H3j 都是非零的)。用S2乘以H3j/H2j得到S3。此外,对于在{1,...,33}中但 不等于j的任意其他k, H3,k/H2,k不同于H3yH2ij (这可以在这一部分的开 始观察到)。因此,下面图10所示的电路将发现j在i = 34的特定位置 (在该电路中,除了Lj-O以外,所有的输出信号Lx等于1,并且如果 是真,则等式("==,,)电路给出0,否则给出1 )。在找到j的值之后, 必须计算错误数量Ei和Ej。用于计算这些值的电路参见图11。对于i-35和i-36的情况,可以推出类似的示意图。情况2。第一错误具有在{1,...,33 }中的已知位置i。S2 / H2,i = Ei + (H2>j / H2'i) Ej ; and (8) S3/H3'i-Ei + (H3j/H3,i)Ej . . (9)在这个域中的加法运算是简单的XOR运算,并且由此加法和j减法是等 同的运算。通过从(7,8,9)三个等式里面选择两个(总共三种'可能性), 并且加上所选的等式,可以得到A1+2 = S, /H',i + S2 / H2,i =问j/ H,.,' + H2j/ H2,i )Ej A2+3 = S2 / H2,i + S3 / H3>i = (H2j/ H2,i + H3j / H3,i)Ej A1+3 = S/ + S3 / H3,j - (H!j/ H,,i + H3j. / H3,i)Ej(10) and (11) (12)如果j在{34,35,36}中,则上式中正好一个将为零。此外,如果j在U,...,33}中,则Aw,Aw,A+"都不可能等于零;这可以从在本讨论的开始时针对校验矩阵H得出的性质中看出。假设j-34。则H"-Hsj-0,并且 因此八2十3=0。此外,Al+2 = Al+3 = Ej/Hu.。针对j = 35和j = %的情况的类似^析可以得到下面的表。iin{l,.,.,33}Ai+2A2+3Al+3j=34Ei/Hu0鹏.ij=35Ei/H2.i0j=360Ei/H3,iEi/H3,i注意,如果j在(1,…,33)中,并且Am-O:,则H!j/H" =H2j/H2,i'。对 此进行处理,得到氏y^」-H"/H",并且由于假设i不同于j,根据在这一部分的开始时描述的H的性质,这产生了矛盾。类似地,如果&+3=()则 H"处j-H"处'i,并且如果Aw-0则.IWH"-H3,i/Hw,这也产生类似的矛盾。 以上的讨论暗示了可以使用(Aw,A^,Aw)中的一个零的存在来区 分j在(1,…,33 }中和j在{34,35,36}中的情况。此外,当j在{34,35,36} 中的情况下,上面的表直接给出找到j、 Ej和通过(1,2,3)找到Ei的技 术。仍要考虑当j在{1,...,33}中时如何解码。通过直接检查奇偶校验 矩阵H,可以推出,对于集合{1,...,33}中的每个索引k,奇偶校验矩 阵满足H^H"-TS6问'》2。使用上式替换H3,i和H3j,形成比率A^Aw', 并且简化得到的表达式,得出. (13)比率Hy^,i是已知的,并且上述等式的左侧是已知的,由此,可经由下 式求解H"处一为了找到错误位置j,必须确定j的唯一值以便满足上述等式。唯一性来自于前面已讨论的H的性质。找到了错误位置j后,通过下式得到 错误的数量<formula>formula see original document page 24</formula>(14)图12和图13将Aw,A^和Aw的计算以及错误位置算法示出为电路 示意图。以上演示了能够由示例性实施例执行的用于纠正两个错误的 一组 计算,其中第一个错误在已知位置。出于实现的考虑,期望避免实现将 Galois域元素除以任意元素的Galois域除法电路的任务。形成Al+2和A2+3的任务可以通过针对{1,...,33}中的每个k并行地计算三个量Si/Hi,k,S"H^和S3/1^,并随后使用输入为i即错误的已知位置 的多路器来选择正确的计算来完成。由于元素H",H^和H3,k事先已知,因此可以预先计算它们的倒数并且上述的任务可以转换成乘法。了據务.讣簋A2w/Aw 、;i棄必须满足 OV坊',041+2 = 04〗+2 +43X^,2,,)为了找到满足上式的j的唯一值,针对{1,...,33)中的每个k并行地形 成乘积(Hik/H^Aw,并且检查其是否与右侧相等。通过使用具有硬线(hard- wired)输入和选择器i的多路器获得因数(H,他,i)。为了计算(18)中的错误数量,仍需要进行一次Galois域求逆(在 此求逆的计算之后,结果可被共享以计算Ei和Ej)。在示例性实施例中, 计算分母H"H" + H"H",并随后经由具有256个8比特条目的存储器对 该结果求逆。示例性实施例包括具有互连到存储器系统的处理器和I/O单元(例 如,请求器)的计算系统,其中存储器系统包含存储器控制器和存储器 器件。在示例性实施例中,存储器系统包括接口连接到一组集线器器件 (也称为"集线器芯片")的处理器或存储器控制器。集线器器件连接 或接口连接到存储器器件。在示例性实施例中,计算机存储^系统包括 具有多个用于存储数据和指令的物理存储器阵列。这些存储器器件可以 直接连接到存储器控制器和/或通过集线器器件间接耦合到存储器控制器。在示例性实施例中,基于集线器的计算机存储器系统具有附着到通 信集线器器件的存储器器件,通信集线器器件连接到存储器控制设备(例如,存储器控制器)。同样在示例性实施例中,集线器器件位于存 储器模块(例如,单个衬底或物理器件)上,其中存储器模块包括两个 或更多经由存储器总线彼此级联互连(并且可能互连到位于另一存储器 模块上的另一集线器器件)的集线器器件。集线器器件可以通过多点或点对点总线结构连接到存储器控制器(其还可以包括到一个或多个额外集线器器件的级联连接)。存储器存 取请求由存储器控制器通过总线结构(例如,存储器总线)发送给选定的集线器。响应于接收到存储器存取请求,集线器器件将该存储器存取 请求转换成控制存储器器件存储来自于集线器器件的写数据或者控制 存储器器件为集线器器件提供读数据。读数据被编码为一个或多个通信 分组并通过存储器总线发送给存储器控制器。在可选的示例性实施例中,存储器控制器可以与一个或多个处理器 芯片和支持逻辑集成在一起,封装在分立的芯片(通常称为"北桥,,芯 片)中,包括在具有一个或多个处理器和/或支持逻辑的多芯片载体中, 或者以与应用/环境最佳匹配的各种可选形式来封装。这些解决方案中的 任意一种可以使用或可以不使用一个或多个窄/高速链路以连接到一个 或多个集线器芯片和/或存储器器件。存储器模块可以通过包括DIMM、单列直插存储器模块(SIMM) 和/或其他存储器模块或卡结构的各种技术来实现。 一般而言,DIMM指 一种小型电路板,其主要包括在一侧或两侧上的随机存取存储器(RAM) 集成电路或芯片,板的两侧上具有信号和/或功率管脚。其可以与SIMM 对比,SIMM是一种小型电路板或衬底,其主要包括在一侧或两侧上的 RAM集成电路或芯片,并且沿着一条长边布置单行管脚。在示例性实 施例中图1示出的DIMM包括168个管脚,然而后来的DIMM构造为 管脚数量从100个管脚到超过300个管脚。在此处描述的示例性害施例 中,存储器模块可以包括两个或更多的集线器器件。在示例性实施例中,存储器总线使用到存储器;f莫块上的集线器器件的多点连接和/或使用点对点连接来构成。控制器接口 (或存储器总线) 的下行部分,称为下行总线,可以包括被发送到存储器模块上的集线器 器件的命令、地址、数据和其他操作、初始化或状态信息。每个集线器 器件可以简单地经由旁路电路将信息转发给后面的集线器器件;接收、 解析信息,并且如果信息被确定为要传送给下行集线器器件则对该信息进行重驱动;在不首先对信息进行解析以确定其计划接收方的情况下对某些或全部信息进行重驱动;或者执行这些选项的子集或组合。存储器总线的上行部分,称为上行总线,返回所请求的读取数据和 /或错误、状态或其他操作信息,并且这些信息可以经由旁路电路转发给后面的集线器器件;可以被接收、解析并且如果这些信息被确定为要传送给处理器联合体中的上行集线器器件和/或存储器控制器则对该信息进行重驱动;在不首先对信息进行解析以确定其计划接收方的情况下这 些信息可以纟皮部分或全部地重驱动;或者执行这些选项的子集或组合。在可选的示例性实施例中,点对点总线包括切换或旁路机制,其使 得总线信息在下行通信(从存储器控制器传递到存储器模块上的集线器 器件的通信)期间被导向两个或更多可能的集线器器件中的一个集线器 器件,以及通常借助一个或多个上行集钱器器件对上行信息(从存储器 模块上的集线器器件到存储器控制器的通信)进行引导。其他的实施例 包括使用连续性模块,诸如在现有技术中已知的那些模块,在级联互连 的存储器系统中连续性模块例如可以被放置在存储器控制器与第 一个 组装的集线器器件(即,与一个或多个存储器器件进行通信的集线器器 件)之间,以便存储器控制器与该第一个组装的集线器器件之间的任意 中间集线器器件位置包括即使当 一个或多个这种中间集线器器件位置 不包括集线器器件时也能够接收在存储器控制器与该第一个组装的集 线器器件之间传递的信息的装置。连续性模块可以安装在符合任意总线 约束的任意模块位置,包括第一位置(最靠近主存储器控制器)、最后的位置(在任意包括的终端之前)或任意中间位置。连续性才臭块的使用 在多模块级联互连总线结构中尤其有益,在这种结构中,存储器模块上的中间集线器器件被移除并被连续性模块替换,以便系统在移除该中间集线器器件后能够继续操作。在更常见的实施例中,连续性模块将包括 用以将所有需要的信号从输入传送到相应输出的互连布线,或者通过转 发器设备被重驱动。连续性模块还可以包括非易失性存储设备(诸如EEPROM),但是将不包括主存储器存储设备。在示例性实施例中,存储器系统包括经由级联互连存储器总线连接 到存储器控制器的一个或多个存储器模块上的一个或多个集线器器件, 然而也可以实现其他的存储器结构,诸如点对点总线、多点存储器总线 或共享总线。基于所使用的信令方法,目标操作频率、空间、功率、成 本和其他约束,可以考虑各种可选的总线结构。与具有分支信号线、切 换设备或分支线的总线结构相比,由于降低了信号衰减,点对点总线在 生产为具有电互连的系统中可以提供优化性能。然而,当在需要与多个 设备或子系统进行通信的系统中使用时,该方法常常会导致显著增加的 组件成本和提高的系统功率,并且可能会由于需要中间緩沖和/或重驱动 而降低可能的存储器密度。尽管在附图中没有示出,但是存储器模块或集线器器件也可以包括单独的总线,诸如"存在检测"总线、12C总线和/或SM总线,其用于 包括确定集线器器件和/或存储器模块属性(通常在加电之后)、将故障 信息或状态信息报告给系统、在加电之后或在正常操作期间配置集线器 器件和/或存储器子系统或其他目的的一个或多个目的。依赖于总线特 征,该总线还可以4是供集线器器件和/或存储器^t块借以将才喿作的有效完 成或对在主存储器控制器请求的执行期间发生故障的识别报告给存储 器控制器的装置。通过增加切换设备可以获得与从点对点总线结构获得的这些性能 类似的性能。这些和其他的解决方案在保留点对点总线的很多特征的同 时,以较低功率提供增大的存储器封装密度。多点总线提供可选的解决 方案,虽然常常限于较低的操作频率,但是在成本/性能这一点上可能对 很多应用来说是有利的。光总线解决方案允许显著提高点对:泉或多点应 用中的频率和带宽潜力,但是可能招致成本和空间影响。在此使用的术语"緩沖器"或"緩冲器器件"指临时存储单元(如在计算机中),尤其指以一种速率接受信息并以另一种速率传递信息的 临时存储单元。在示例性实施例中,緩沖器是提供两个信号之间兼容性 (例如,改变电压电平或电流容量)的电子器件。术语"集线器"有时 可以与术语"緩沖器"互换使用。集线器是一种包含连接到若干其他器 件的多个端口的器件。端口是接口的一部分,提供适合的1/0功能性(例 如,端口可以用于通过点对点链路之一或总线发送和接收数据、地址和控制信息)。集线器可以是将若干系统、子系统或网络连接在一起的中 央器件。无源集线器可以简单地转发消息,而有源集线器或转发器放大和刷新(refresh)数据流,否则数据流将随距离发生恶化。在此使用的 术语集线器器件指包括用于执行存储器功能的逻辑(硬件和/或软件)的 集线器芯片。同样,在此使用的术语"总线,,指连接计算机中的两个或更多功能 单元的多组导线之一 (例如,布线和印刷电路板迹线或集成电路中的连 接)。数据总线、地址总线和控制信号,不管其名称如何,构成一条单 独的总线,因为如果没有其他的总线每个总线常常是无用的。总线可以 包括多根信号线,每根信号线具有两个或更多连接点,其形成电连接两 个或更多收发器、发射器和/或接收器的主要传输路径。术语"总线"与 术语"通道"形成对比,后者常常用于描述与存储器系统中存储器控制 器有关的"端口"功能,并且后者可以包括一条或多条总线或者一组或 多组总线。在此使用的术语"通道"指存储器控制器上的端口。注意, 该术语通常结合I/O或其他外围设备一起使用,然而术语通道有时被用 来描述处理器或存储器控制器与 一个或多个存储器子系统之一之间的 接口。此外,在此使用的术语"菊花链"指一种总线布线结构,在这种结 构中例如器件A连线到器件B,器件B连线到器件C等。最后的器件典 型地连线到电阻或端子。所有的器件可以接收相同的信号,或者与简单 总线相比,每个器件可以在继续传递一个或多个信号之'前对其进行修 改。在此使用的"级联,,或"级联互连"指一连串级或单元,或者一组 互连的联网器件,典型的是集线器,其中集线器操作为逻辑转发器,还允许合并数据以集中到现有数据流中。同样在此使用的术语"点对点,, 总线和/或链路指各自可以包括一个或多个端子的多个信号线或一个信 号线。在点对点总线和/或链路中,每个信号线具有两个收发器连接点, 每个收发器连接点耦合到发射器电路、接收器电路或收发器电路。信号 线指一个或多个电导线或光载体,通常配置为单个载体或者以双绞、平 行或同心排列配置为两个或更多载体,用于传输至少一个逻辑信号。存储器器件通常定义为集成电路,其主要包括存储器(存储)单元,诸如DRAM (动态随机存取存储器)、SRAM (静态随机存取存储器)、 FeRAM (铁电RAM)、 MRAM (磁随机存取存储器)、闪速存储器和其 他形式的随机存取和相关存储器,用于以电、光、磁、生物或其他的形 式存储信息。动态存储器器件类型可以包括异步存储器器件,诸如FPM DRAM (快速页模式动态随机存取存储器)、EDO (扩展数据输出) DRAM、 BEDO (突发EDO ) DRAM、 SDR (单数据速率)同步DRAM、 DDR(双数据速率)同步DRAM,或任意期望的后继器件,诸如DDR2、 DDR3、 DDR4,以及相关4支术,诸如图形RAM、枧频RAM、 LP RAM (低功率DRAM),其通常基于在相关DRAM上可见的基本功能、特征 和/或接口。存储器器件可以以芯片(管芯)和/或各种类型和配置的单或多芯片 封装的形式使用。在多芯片封装中,存储器器件可以与诸如其他存储器 器件、逻辑芯片、模拟器件和可编程器件的其他器件类型一起封装,并 且还可以包括诸如电阻、电容和电导之类的无源器件。这些封装可以包 括集成散热器或其他制冷增强,其还可以附着到中间载体或其他附近的 载体或散热系统。基于技术、功率、空间、成本和其他权衡,模块支持器件(例如, 緩冲器、集线器、集线器逻辑芯片、寄存器、PLL、 DLL、非易失性存 储器等)可以包括多个单独的芯片和/或组件,可以被组合为一个或多个 衬底上的多个单独的芯片,可以被组合为单个封装或者甚至被,集成到单 个器件上。此外,基于技术、功率、空间、成本和其他权衡,i昏如电阻、 电容之类的各种无源器件中的 一个或多个可以集成到支持芯片封装中,或者集成到衬底、电路板或未加工卡本身中。这些封装可以包括集成散 热器或其他制冷增强,其还可以附着到中间载体或其他附近的载体或散 热系统。存储器器件、集线器、緩冲器、寄存器、时钟器件、无源和其他存 储器支持器件和/或组件可以经由包括焊接互连、导电粘合、套接结构、 压力接触和其他方法的各种方法附着到存储器子系统和/或集线器器件, 这些方法使得经由电、光或可选手段实现两个或更多器件之间的通信。一个或多个存储器模块(或存储器子系统)和/或集线器器件可以经 由诸如焊接互连、连接器、压力接触、导电粘合、光互连和其他通信及 功率传递方法之类的一种或多种方法连接到存储器系统、处理器联合 体、计算机系统或其他系统环境。连接器系统可以包括配对连接器(公 /母)、在与公或母连接器配对的一个导体上的导电接触和/或管脚、光连接、压力接触(通常与保持机构结合使用)和/或各种其他通信及功率传 递方法中的一种或多种。基于诸如易于升级/修复、可用空间/体积、热 传导、组件尺寸和形状以及其他相关的物理、电、光、可视/物理存取等 之类的应用要求,互连可以沿着存储器组合装置的 一条或多条边缘布 置,和/或距离存储器子系统的边缘一段距离放置。在此使用的术语存储器子系统意指但不限于 一个或多个存储器器 件; 一个或多个存储器器件和相关联的接口和/或定时/控制电路;和/或 一个或多个与存储器緩冲器、集线器器件和/或开关结合的存储器器件。 术语存储器子系统还可以指一个或多个存储器器件,加上任意相关联的 接口和/或定时/控制电路和/或存储器緩沖器、集线器器件或开关,它们 被组装到衬底、卡、模块或相关的组合装置中,这些衬底、卡、模块或 相关的组合装置还可以包括将存储器子系统与其他电路电附接的连接 器或类似装置。在此描述的存储器模块还可以指存储器子系统,因为它 们都包括一个或多个存储器器件和集线器器件。可以本地地驻留在存储器子系统和/或集线器器件中的其他功能包 括写和/或读緩冲器、 一级或多级存储器高速緩存、本地预取逻辑、数据 加密/解密、压缩/解压缩、协议转换、区分命令优先级逻辑、电压和/或电平转换、检错和/或纠错电路、数据擦洗、本地功率管理电路和/或报 告、操作和/或状态寄存器、初始化电路、性能监控和/或控制、 一个或 多个协处理器、搜索引擎和其他可以预先驻留在其他存储器子系统中的 功能。通过将一项功能本地地部署到存储器子系统,可以获得与特定功 能相关的附加性能,而往往又可以同时利用该子系统中的未使用电路。存储器子系统支持器件可以直接附着到存储器器件所附着到的同 一衬底或组合装置上,或者可以安装到使用各种塑料、硅、陶瓷或其他 材料中的一种或多种制造的单独插板或村底,该插板或衬底包括将支持 器件功能上互连到存储器器件和/或存储器或计算机系统的其他元件的 电、光或其他通信路径。沿着总线、通道、链路或应用到互连方法的其他命名传统的信息传 送(例如,分组)可以使用多种信令选项中的一种或多种来完成。这些 信令选项可以包括诸如单端、差分、光或其他途径之类的方法,电信令 还包括诸如使用单级或多级电压或电流途径的方法。信号还可以使用诸 如时间或频率、不归零、相移4建控、幅度调制和其他方式之类的方法进行调制。电压电平有望继续降低,即1.5V、 1.2V、 IV,并且较低的信号 电压有望与对相关联的集成电路本身进行操作所需的降低的电源电压 相一致(但通常与之独立)。在存储器子系统和存储器系统自身中可以使用 一种或多种计时方 法,包括全局计时、源同步计时、编码计时或这些和其他方法的组合。 时钟信令可以与信号线本身的信令相同,或者可以使用所列出的方法或 更有益于计划时钟频率和各种子系统内计划的时钟数目的可选方法中 的 一种方法。单个时钟可以与去往和来自存储器的所有通信以及存储器 子系统内的所有定时功能相关联,或者使用诸如较早描述的那些方法之 类的一种或多种方法提供多个时钟。当使用多个时钟时,存储器子系统 内的功能可以与唯一地提供给子系统的时钟相关联,或者可^基于从与 传送到存储器子系统和从存储器子系统传送的信息有关的时钟得出的 时钟(诸如与编码时钟相关联的时钟)。可选地,传送给存储器子系统 的信息可以使用一个唯一的时钟,并且从一个(或多个)存储器子系统提供的信息使用 一个单独的时钟。时钟本身可以以与通信或功能频率相 同的频率或其倍数频率运行,并且可以是边缘校准、中心校准或者相对 于数据、命令或地址信息处于可选定时位置。
传递给存储器子系统的信息通常将包括地址、命令和数据,以及通 常与请求或报告状态情况或错误情况、重置存储器、完成存储器或逻辑 初始化以及其他功能、配置或相关信息相关联的其他信号。从存储器子 系统传递出来的信息可以包括传递给存储器子系统的任意或全部信息, 然而通常不包括地址和命令信息。该信息可以通过使用可能与普通存储 器器件接口规范一致(通常本质上是平行的)的通信方法来传送,该信 息可以编码为"分组,,结构,其可以与未来的存储器接口一致,或者简
单地被开发为增大通信带宽,以及/或者通过将所接收信息转换为接收器
件所需格式而使子系统能够独立于存储器技术而操作。
基于可用接口总线、所期望的初始化速度、可用空间、成本/复杂度 目标、子系统互连结构、可以被用于这种或其他目的的可选处理器(诸 如服务处理器)的使用等等,可以经由一种或多种方法完成对存储器子 系统的初始化。在一种实施例中,可以使用高速总线来完成对存储器子
系统的初始化,通常通过下述步骤完成首先完成训练过程以建立可靠 的通信,然后对与各种组件相关联的属性或"存在检测"数据和/或与子 系统相关联的特征进行询问,并且最后对具有与系统内的计划操作相关 联的信息的适当器件进行编程。在级联系统中,通常将建立与第一存储 器子系统之间的通信,然后是后续(下行)的子系统,其次序与这些子 系统沿着级联互连总线的位置一致。
第二种初始化方法将包括这样一种方法,其中高速总线在初始化过 程中以一种频率进行操作,然后在正常操作期间以第二种(并且通常更 高的)频率进行操作。在这样的实施例中,由于与较低频率操作相关联 的增大的定时裕度,有可能在完成对每个子系统的询问和/或』扁程之前, 发起与级联互连总线上的所有存储器子系统的通信。
第三种初始化方法可以包括在增大与每个地址、命令和/或数据传送 相关联的周期数目的同时,以正常操作频率操作级联互连总线。在一个实施例中,包含全部或部分地址、命令和/或数据信息的分组在正常#:作 期间可以在一个时钟周期内传送,但是在初始化期间同样数量和/或类型 的信息可能在两个、三个或更多的周期上传送。该初始化过程因此将4吏 用"慢,,命令而不是"正常,,命令的形式,并且这种模式可以由每个子 系统和存储器控制器借助包含在这些子系统中每个子系统中的POR (加 电复位)逻辑在加电和/或重启之后的某个时间点自动地进入。
第四种初始化方法可以使用不同的总线,诸如存在检测总线(诸如
在同此共同转让的授予Dell等人的美国专利No.5,513,135中定义的总 线)、I2C总线(诸如在公开的JEDEC标准中定义的总线,如在出版物 21-C修订7R8中的168管脚DIMM族)和/或SMBUS,其已经在4吏用 这些存储器模块的计算机系统中广泛使用和记载。该总线可以以菊花链 /级联互连、多点或可选结构的形式连接到存储器系统内的一个或多个模 块,从而提供询问存储器子系统的独立手段,将一个或多个存储器子系 统中的每个存储器子系统编程为在整体系统环境中操作,并基于在系统 环境中所期望或检测到的性能、热量、配置或其他变化在正常系统操作 期间在其他时候调整操作特征。
用诸如在上面第四实施例中描述的单独总线,也能带来提供独立手段的 好处,独立手段用于初始化和初始化以外的4吏用,诸如在同此共同转让 的授予Dell等人的美国专利No.6,381,685中描述的那些使用,包括随意 地改变子系统操作特征,以及用于对诸如使用率、温度数据、故障信息 之类的操作子系统信息进行报告和响应或用于其他目的。
随着光刻技术方面的进步、更好的工艺控制、低阻抗材料的使用、 更大的现场尺寸以及其他半导体工艺的进步,更大的器件电路密度(通 常与更大的管芯尺寸结合)将帮助实现在集成器件上的更大的功能以及 对先前在单独器件上实现的功能进行集成。这种集成将用于 《一善计划功 能的整体性能,以及促进更大的存储密度、更小的功率、更小的空间要 求、更低的成本和其他制造商和消费者利益。这种集成是一种自然的演 化过程,并且可以导致需要对与系统相关联的基本构建模块的结构改变。
使用 一种或多种故障检测和/或故障纠正方法,可以在很高程度上保 证通信路径、数据存储内容和与存储器系统或子系统的每个元件相关联
的所有功能操作的完整性。其他的可靠性增强可以包括操作重试(以 克服诸如与技术或可选方法。
与提高的性能需求一致,在简单如点对点链路或复杂如多点结构的 总线上使用总线终端变得越来越普遍。可以确定和/或考虑很多种终止方 法,并且这些方法包括使用诸如电阻、电容、电导或它们的任意组合之 类的器件,将这些器件连接在信号线与电源电压或地、端接电压或另一 信号之间。终端器件可以是无源或有源终端结构的一部分,并且可以存
在于沿一个或多个信号线的一个或多个位置,以及/或者作为发射器件和 /或接收器件的一部分。终端可以选择为与传输线阻抗匹配,或者经由可 选的方法选择以使得在成本、空间、功率和其他约束范围内可用频率、 操作裕度和相关属性最大化。
示例性实施例的技术效果和益处包括识别存储器系统中故障存储 器模块的能力。这可以使得降低材料成本,因为当只有一个存储器模块 需要修复时不必替换系统中的所有存储器模块。此外,这应当能够使存 储器系统的停用时间最小化并且提高解决故障的可能性。
如上所述,本发明的实施例可以具体化为计算机实现的过程和用于 实践这些过程的装置的形式。本发明的实施例也可以具体化为包含指令 的计算机程序代码的形式,其中计算机程序代码包含在有形介质中,诸 如软盘、CD-ROM、硬盘驱动器或任意其他的计算机可读存储介质,其 中,当将计算机程序代码载入计算机并由计算机执行时,计算机成为用 于实践本发明的装置。本发明还可以具体化为计算机程序代码的形式, 例如,无论是存储在存储介质中、载入到计算机中和/或由计算机执行, 或者通过某些传输介质发送,诸如通过电线或电缆、通过光纤或者经由 电磁辐射等发送,其中,当计算机程序代码载入计算机并由计算机执行时,计算机成为用于实践本发明的装置。当在通用《鼓处理器上实现时, 计算机程序代码段配置该微处理器以创建特定逻辑电路。
尽管已经参考示例性实施例描述了本发明,但是本领域技术人员将 能够理解,在不偏离本发明的范围的情况下,可以进行各种改变或对其 元件进行等效替换。此外,在偏离本发明的实质范围的情况下,可以对 本发明的教导进行很多修改以适应特定情形或材料。因此,意图是本发 明不限于作为实现本发明所设想的最佳模式而公开的特定实施例,而是 本发明将包括落入所附权利要求的范围内的所有实施例。而且,术语"第 一"、"第二,,等的使用不代表任何次序或重要性,而是用术语"第一"、
"第二"等来区分一种要素与另一种要素。
权利要求
1.一种用于当两个或更多存储器模块响应于读取请求而一致操作时识别存储器系统中的故障存储器元件的方法,所述方法包括接收与不可纠正错误(UE)相关联的病征比特和地址;以及响应于前一可纠正错误(CE)已经发生获取所述前一CE的位置,所述前一CE的位置指定了存储器器件位置;确定所述UE的位置,其中使用所述前一CE的位置以及所述UE的病征比特作为所述确定的输入,所述UE的位置指定了存储器器件位置;以及识别与所述UE的位置相关联的故障存储器元件。
2. 根据权利要求1所述的方法,其中所述故障存储器元件是存储器 器件。
3. 根据权利要求1所述的方法,其中所述故障存储器元件是存储器 模块。
4. 根据权利要求1所述的方法,还包括纠正在所述UE的位置处读 取的数据。
5. 根据权利要求1所述的方法,其中所述接收、获取、确定和识别 中的一个或多个步骤由服务处理器执行。
6. 根据权利要求1所述的方法,其中所述前一 CE的位置从非易失 性存储装置中获取。
7. 根据权利要求1所述的方法,还包括执行激活标识所述故障存储 器元件的可视指示符和生成指示所述故障存储器元件的报告中的一个 或多个步骤。
8. 根据权利要求1所述的方法,还包括确定所述CE和所述UE中 的一者或两者的数量。
9. 根据权利要求1所述的方法,其中响应于所述前一CE已经发生 在与所述UE的地址范围一样的地址范围内执行所述获取、确定和识别,所述地址范围包括至少一个地址。
10. —种用于识别两个或更多存储器模块响应于读取请求而一致操作的存储器系统中的故障存储器元件的方法,所述方法包括接收与不可纠正错误(l正)相关联的地址以及与所述UE相关的数据,所述数据包括一个或多个病征比特和读取数据;以及 响应于前一可纠正^"误(CE)已经发生 获取与所述前一 CE相关的读取数据;识别故障存储器元件,其中使用与所述前一CE相关的读取数据 和与所述UE相关的数据作为所述识别的输入。
11. 根据权利要求IO所述的方法,其中所述故障存储器元件是存储 器器件和存储器模块中的 一种或多种。
12. 根据权利要求IO所述的方法,还包括纠正在所述UE的位置处 读取的数据。
13. 根据权利要求IO所述的方法,其中所述接收、获取、确定和识 别中的一个或多个步骤由服务处理器执行。
14. 根据权利要求IO所述的方法,其中所述前一CE的位置从非易 失性存储装置中获取。
15. 根据权利要求IO所述的方法,还包括执行激活标识所述故障存 储器元件的可视指示符和生成指示所述故障存储器元件的报告中的一 个或多个步骤。
16. 根据权利要求IO所述的方法,其中响应于所述前一CE已经发 生在与所述UE的地址范围一样的地址范围内执行所述获取和识别,所 述地址范围包括至少一个地址。
17. —种用于识别故障存储器元件的存储器系统,所述存储器系统 包括两个或更多的响应于读取请求而一致操作的存储器模块,每个存储 器模块包括一个或多个存储器器件;以及用于存储与某地址处的第一故障相关联的故障信息的存储装置;以及处理器,包括用于实现下述操作的逻辑接收与不可纠正错误(UE)相关联的病征比特和地址;以及 响应于前一可纠正^"i吴(CE)已经发生获取所述前一 CE的位置,所述前一 CE的位置指定了存储器 器件位置;确定所述UE的位置,其中使用所述前一 CE的位置以及所述 UE的病征比特作为所述确定的输入,所述位置指定了存储器器件 位置;以及识别与所述UE的位置相关联的故障存储器元件。
18. 根据权利要求17所述的存储器系统,其中响应于所述前一 CE 已经发生在与所述UE的地址范围一样的地址范围内执行所述获取、确 定和识别,所述地址范围包括至少一个地址。
19. 根据权利要求17所述的存储器系统,其中所述逻辑以硬件和软 件中的一种或多种方式来实现。
20. 根据权利要求17所述的存储器系统,其中所述逻辑还支持纠正 在所述UE的位置处读取的数据。
全文摘要
本发明提供了用于识别故障存储器元件的系统和方法,包括一种用于当两个或更多模块响应于读取请求而一致操作时识别存储器系统中的故障存储器元件的方法。该方法包括接收与不可纠正错误(UE)相关联的病征(syndrome)比特和地址。响应于前一可纠正错误(CE)已经发生,获取该前一CE的位置。CE的位置指定了CE的存储器器件位置。使用该前一CE的位置以及UE的病征比特作为输入来确定UE的位置。UE的位置指定了存储器器件位置。识别与UE的位置相关联的故障存储器元件。
文档编号G11C29/44GK101217060SQ20081000220
公开日2008年7月9日 申请日期2008年1月2日 优先权日2007年1月2日
发明者L·A·拉斯特拉斯-蒙塔诺, T·J·德尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1