CN105556477A - 在多端口存储器配置中与主机处理器的存储器模块通信 - Google Patents

在多端口存储器配置中与主机处理器的存储器模块通信 Download PDF

Info

Publication number
CN105556477A
CN105556477A CN201480052096.4A CN201480052096A CN105556477A CN 105556477 A CN105556477 A CN 105556477A CN 201480052096 A CN201480052096 A CN 201480052096A CN 105556477 A CN105556477 A CN 105556477A
Authority
CN
China
Prior art keywords
module
memory module
processor
host
memory
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
CN201480052096.4A
Other languages
English (en)
Other versions
CN105556477B (zh
Inventor
L.拉斯特拉斯-蒙塔诺
A.麦克帕登
K.赖特
W.莫尔
J.多德森
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN105556477A publication Critical patent/CN105556477A/zh
Application granted granted Critical
Publication of CN105556477B publication Critical patent/CN105556477B/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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

在用于实现ECC(误差校正码)存储器模块与在多端口存储器配置中的主机处理器的通信的方法中,一致地操作的多个存储器模块的每一个被使能以识别哪一个存储器模块是需要将模块特定的信息传送回主机处理器的一个。一致地操作的所有多个存储器模块被使能以向主机处理器生成回有效ECC字,而其它多个存储器模块单独地不知道需要传送回处理器的一个存储器模块的数据内容。

Description

在多端口存储器配置中与主机处理器的存储器模块通信
技术领域
本发明一般地涉及数据处理,并且更具体地涉及用于在计算机系统中在多端口存储器配置中实现ECC(误差校正码)存储器模块与主机处理器的通信的方法、系统和计算机程序产品。
背景技术
ECC(误差校正码)被用于检测和校正在数据贮存或传输期间引入的误差。某些种类的存储器、诸如计算机内的一些随机存取存储器(RAM)芯片和其它存储器模块实施ECC技术以校正数据误差,并且被称为ECC存储器。ECC存储器被用在数据损坏在任何情况下都不能被容忍的大多数计算机中,诸如用在科学或金融计算以及作为服务器中。
当配备了误差校正的存储器子系统被组织为使得写入到存储器的字在两个或多个端口之间被分裂时,在能够访问将要被贮存在存储器中的所有数据的中心位置中提供误差校正码检验符号的生成。虽然如此,在一些情况中,在端口中的单独的存储器模块需要将模块特定信息(modulespecificinformation)(其不是先前由主机处理器贮存的)传递回主机处理器、而不与任何其它存储器模块通信。这在原则上是不可能实现的,因为需要能够访问所有端口的所有信息的中心位置,这不存在于这里所讨论的情况中。此外,问题在于获得不需要改变主机处理器的存储器控制器的解决方案。存储器控制器可以在与最后消费该数据的一个处理器或多个处理器相同的物理封装中,或可以在物理上分离的封装中。
存在对在计算机系统中在多端口存储器配置中使能与主机处理器的增强的ECC(误差校正码)存储器模块通信的有效机制的需求。所期望的是提供使能存储器控制器的使用而不需要任何改变的这样的机制。
在下面的说明书和权利要求中所使用的,术语多端口存储器配置应被广泛地理解为包括存储器模块的多个存储器通道和多个存储器端口的各种布置。
发明内容
本发明的主要方面是提供用于在计算机系统中的多端口存储器配置中与主机处理器的ECC(误差校正码)存储器模块通信的方法、系统和计算机程序产品。本发明的其它重要的方面是提供基本上没有负面影响并且克服现有技术的布置的许多缺点的这样的方法、系统和计算机程序产品。
简言之,提供方法、系统和计算机程序产品以实现在计算机系统中的多端口存储器配置中的与主机处理器的ECC(误差校正码)存储器模块通信。一致地操作的多个存储器模块的每一个被使能以识别哪一个存储器模块是将模块特定信息传送回主机处理器所需要的一个存储器模块。一致地操作的所有多个存储器模块被使能以向主机处理器生成回有效ECC字,而其它多个存储器模块单独地不知道传送回处理器所需要的一个存储器模块的数据内容。
根据本发明的特征,多个存储器模块的每一个被分配了模块特定的预定地址范围。当主机处理器作出在具体的模块特定的预定地址范围中的请求时,则剩余的存储器模块知道它们不应该以它们自己的模块特定信息来回复,而是以预先同意的常量来响应,该常量例如,全零或者零和一的一些图案组合。存储器端口一致地操作的另一地址范围也作为用于与多个存储器模块通信的选择而被包括在本发明中。
根据(一个或多个)实施例的特征,由所有的存储器模块生成的有效ECC字包括每个模块的有效ECC字,该每个模块的有效ECC字具有预先同意的常量,例如在除了N-1之外所有的存储器模块中的全零,而不需要对存储器控制器的任何改变。利用该特征,想要将信息传送回处理器的存储器模块将其数据编码为那些模块特定的有效ECC字中的一个。其他存储器模块例如用全零的模式响应,并且整个ECC字对主机处理器中的存储器控制器表现为有效;即使可校正的误差在发送该完整字期间而发生,存储器控制器中的误差译码器将能够校正它,即使该ECC字不是由存储器控制器生成的,并且不是在中心点处生成的。
根据(一个或多个)实施例的特征,例如,当采用任何Reed-Solomon码(不管符号大小)时,并且每当校验的数量r——例如,r=8——不再大于一个存储器模块的ECC字中的符号的数量减去1时。此外,如果我们使存储器模块中的符号的数量等于m,则该技术对于一个ECC字可以发送正好m-r个符号大小的模块特定数据,而不需要在将信息发送回时在存储器模块之间的任何积极的协调,并且不管符号所处于的位置。
根据(一个或多个)实施例的特征,ECC生成技术不限于Reed-Solomon码。重要地,如果具有误差校正码的(按位的(bit-wise))奇偶校验矩阵H使得通过乘以H*v而获得伴随式(syndrome),其中v是接收的位向量,并且奇偶校验矩阵H可以被分裂为M个部分,使得H=[H1H2....HM],则为了以上ECC生成技术运作,基本要求是在H1H2...HM的每一个中存在可逆方形子矩阵,其大小等于H的行的数量。例如在奇偶校验矩阵H中的第i部分中的选中的列对应于在将模块特定信息发送回到主机处理器时第i模块的校验位可以被放置的位置。
附图说明
接下来将参考附图仅以示例的方式描述本发明的(一个或多个)实施例,该附图中:
图1、2A和2B示出了根据优选的实施例的用于在多端口存储器配置中实现与主机处理器通信的增强的ECC(误差校正码)存储器模块的示例计算机系统;
图3A、3B和3C是示出根据优选的实施例的用于实现图1、2A和2B的计算机系统中的ECC(误差校正码)生成方法的示例操作的逻辑流程图;并且
图4是示出根据优选的实施例的计算机程序产品的框图。
具体实施方式
这里使用的术语仅是为了特定实施例并且不意欲限制本发明。如这里所使用的,单数形成“一”、“一个”和“所述”意欲也包括复数形成,除非上下文清楚地另有指示。还将理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元件和/或部件的存在,但是不排除一个或多个其它特征、整数、步骤、操作、元件、部件和/或其组的存在或添加。
根据本发明的特征,提供方法、系统和计算机程序产品以在多端口存储器配置中实现与主机处理器的增强ECC(误差校正码)存储器模块通信。
现在参考附图,在图1、2A和2B中,其中示出了根据优选的实施例的由参考符号100一般地指定的用于在多端口存储器配置中实现与主机处理器的增强的ECC存储器模块通信的示例计算机系统。
计算机系统100包括一个或多个主机处理器102或可编程中央处理器(CPU)102,其包括耦接到多个存储器模块106的至少一个存储器控制器104,该存储器模块106诸如动态随机存取存储器(DRAM)模块106、诸如双列直插式存储器模块(DIMM)和包含闪速存储器的存储器模块106。
根据本发明的特征,单独的存储器模块——例如在附图2A和2B中示出的端口A,206或端口B,208中——被使能以将不是先前由主机处理器102贮存的模块特定信息传递回主机处理器102、而不与任何其它存储器模块通信。此外,不需要对存储器控制器104的任何改变而完成模块特定信息的传递。
例如,在系统100中的增强的ECC存储器模块通信在广泛种类的领域中具有可适用性,包括其中存储器模块106具有在标准存储器模块中找不到的特殊能力的情况,并且为了利用该能力,必须存在用于通信存储器模块的特定信息的方法。具体示例包括:具有闪速存储器的存储器模块106,其中由于其不是符合标准的存储器(DDR)的原因,需要用于将状态信息传递回主机处理器102的机制;以及在存储器模块106上的加速器,其也需要用于将它们工作的结果和/或状态信息传递回主机处理器102的机制。
如图2A和2B所示,存储器控制器104包括ECC逻辑或ECC生成器202,该ECC逻辑或ECC生成器202接收数据204并且将数据和ECC施加到在系统100的示例多端口存储器配置中的第一端口A,206和第二端口B,208,其中一致地操作的存储器端口的数量为N,其中N>=2,其中示出了两个端口。
如图2B所示,存储器控制器104将选择的地址范围中的地址提供到设有第一端口A,206和第二端口B,208的相应的存储器模块。
根据本发明的特征,提供了两个专用地址范围,例如一个用于第一端口A,206并且一个用于第二端口B,208。多个存储器模块106的每一个被分配模块特定的预定地址范围。当主机处理器102作出在特定模块特定的预定地址范围中的请求时,则其余的存储器模块知道它们不应该以它们自己的模块特定信息来回复,而是以预先同意的常量来响应,该常量例如,全零或者零和一的一些图案组合。存储器端口一致地操作的另一地址范围也作为用于与多个存储器模块通信的选择而被包括在本发明中。
如图2B所示,耦接到第一端口A,206的存储器模块106包括控制器212和ECC生成器逻辑或ECC生成器214,该ECC生成器逻辑或ECC生成器214将数据和ECC提供到具有用于该第一端口A,206的模块特定的预定地址范围的第一端口A,206。耦接到第二端口B,208的存储器模块106包括控制器216,该控制器216将预先同意的常量——诸如全零或零和一的一些图案组合——施加到第二端口B,208。存储器控制器104包括ECC译码逻辑或ECC译码220,其从第一端口A,206接收模块特定数据的数据和ECC,并且从第二端口B,208接收诸如全零或零和一的一些图案组合的预定常量,这些一起提供对主机处理器102中的存储器控制器104表现出完全有效整个有效ECC字;即使无意的误差——可校正的或不可校正的(就ECC译码220而言)——在模块特定数据或另一个端口的常量模式的生成之间的某时发生,ECC译码220将能够将结果的字分别作为可校正的或不可校正的来对待,即使由ECC译码220接收的数据不是在单个点时生成的。
以足以理解本发明的简单的形式示出计算机系统100。示出的计算机系统100不意欲暗示架构的或功能的限制。本发明可以是与各种硬件实现方式和系统以及各种其它内部硬件装置使用。具体而言,图2B中的说明意在描述左侧的第一存储器模块106是需要发送模块特定信息的一个存储器模块的情况;当右侧的第二存储器模块106是需要发送模块特定信息的一个存储器模块时的另外的情况可以由反转图像和讨论来处理。
根据本发明的特征,多个存储器模块106的每一个被分配了模块特定的预定地址范围。当主机处理器102作出在特定模块特定的预定地址范围中的请求时,则其余的模块106知道它们不应该以它们自己的模块特定信息来回复,而是以预先同意的常量来响应,该常量例如,全零或者零和一的一些图案组合。存储器端口一致地操作的另一地址范围也作为选择而包括在本发明中。
根据本发明的特征,由所有的存储器模块生成的有效ECC字包括每一个模块的有效ECC字,该每一个模块的有效ECC字具有例如在除了N-1之外的所有的存储器模块中全零,而不需要对存储器控制器的任何改变。因此想要将信息传送回处理器的所有存储器模块将其数据编码为那些模块特定的有效ECC字的一个。另一个存储器模块例如用全零的模式来响应,并且整个ECC字对主机处理器中的存储器控制器表现为有效。
参考图3A,其中示出了根据优选的实施例的用于实现图1、2A和2B的计算机系统100中的增强的ECC(误差校正码)通信方法的示例操作。操作以如在块300中指示的误差控制码H的奇偶校验矩阵开始。奇偶校验矩阵H被分为两半,H0和H1,每一个用于每个端口A、B,如分别在块302、304中所指示的。优选的实施例的编码器对于系统的标准操作,选择校验位去往哪里,如由在分别的块302、304中的子矩阵306、308的相应的列指示的。
具体地,用于标准操作的编码器——即当所有的数据在中间位置是可用的时——将确保在由306、308的列指示的位置中的数据和校验将具有零的伴随式。通过由将模块A中生成的编码以及来自第二端口B,208的、诸如全零或一些零和一的图案组合的预定常量(端口A中的模块已知的)连接来获得来自端口A206和端口B208,206的组合的有效ECC字。为了在模块A中创建编码,编码器将数据放置在除了对应于满秩(fullrank)310的列以外的列中,并且在对应于满秩矩阵310的列中插入确保从连接端口A和端口B的输出生成的整个字具有零伴随式的位。如果端口B产生零,则由端口B对总伴随式的贡献为零,或者如果端口B产生某已知常量,则由端口B对总伴随式的贡献至少是已知常量,因为矩阵HI乘以已知常量的积也是已知常量。因此,由于满秩矩阵310,在创建零的总伴随式的端口A中总是能够选择位。该整个过程可以完成而不改变校验位在存储器控制器的译码器中的“正式的”位置,从而获得实现所有这些而不改变在存储器控制器处的译码器的能力。
来自端口A206和端口B208,206的组合的有效ECC字的可选的芯片标记能力,由连接端口A模块中产生的编码HO316和校验318以及端口B模块回复的具有标记的符号322(译码器将其处理为不予关注)的全零HI320来获得该来自端口A206和端口B208,206的组合的有效ECC字,其中满秩矩阵324包括校验318和标记的符号322。
有时,误差校正系统具备“标记”或“擦除”一些接收的位的内容的能力,在译码该字时有效地忽略这些位的值。但呈现这样的能力时,在本发明的上下文中,额外的改善是可能的,例如,来提高通信带宽或者甚至一起实现本发明。可以以示例的方式示出关键的观察。假设在端口A中的模块是想要将信息传送回的模块。如前,存在每当出现该情况时的先前约定,端口B中的模块将发送端口A已知的模式;例如全零模式。存在另外的预先约定:每当主机想要从端口A回来的状态信息时,其将假设,不在端口A中的一些预先同意的位将被认为是由存储器控制器中的译码器擦除的。然后,端口A中的模块将在端口B中被擦除的位认为是其可以“写入”校验位的位(即使其对此没有控制,其将例如由端口B报告为全零)。
在下面的讨论中,使用位的单位,而不是如在之前的讨论中完成的符号,其中应理解的是这里给出的语句由将位组合为符号而也适用于符号。
假设在端口B中擦除的位的数量为e,并在H中的行的数量为r。则端口A中的模块不再需要寻找形成满秩矩阵的r个列;相反,其寻找r-e个列,使得当与对应于在端口B中正被擦除的位的矩阵H的列一起时,形成满秩矩阵。然后,端口A计算必须进入从端口A中的选中的列中的位,并且将其放置在相应的位置中。理论上,端口A中的模块将需要将特定的位放置在端口B中的一些位置中,但是因为这些无论如何都会被存储器控制器擦除,所以也不必这样做。最终的效果是现在更多的数据位可以被端口A发送,因为端口A中的模块仅需要寻找r-e个列,而不是r个列。当冗余位的数量r大于从用于建造将被ECC校验的字的端口接收的位的数量时,该改善特别明显,因为在该情况中,之前的提议不可用。尽管如此,如果存在可以在另外的(一个或多个)端口中被擦除的e个位,则我们在端口A中仅需要r-e个位,并且如果e足够大,则可以满足r-e<m的条件,并且因此具有这里所述的修改的本发明可以适用。
根据本发明的特征,例如,当采用任何Reed-Solomon码(不管符号大小)时并且每当校验的数量r——例如,r=8——不再大于一个存储器模块的ECC字中的符号的数量减去1时,如果我们使存储器模块中的符号的数量等于m,在该技术对于一个ECC字可以发送正好m-r个符号大小的模块特定数据,而不需要在将信息发送回时在存储器模块之间的任何积极的协调,并且不管符号所处于的位置。
例如,假设正采用[72,64]的8-位符号Reed-Solomon码,因此存在64字节的数据以及8字节大小的校验,其字在两个不同的端口之上被分裂,每个端口上总共36字节。初始地,数据可能已经被展开,使得在端口A中有32字节的数据,连同用于总共36字节的4个校验字节,对于端口B具有类似的布置。假设请求到达端口A的端口特定地址范围(portspecificaddressrange)。则存储器端口A中的模块可以做的是发送36-8=28字节大小的模块特定数据,连同具有校验的8个更多的字节。这些8个字节校验的作用是确保整个72字节的字——其中36字节来自端口A并且其它的调到零的36字节来自端口B——表现为有效码字。
当采用任何Reed-Solomon码(不管符号大小)时,并且每当校验的数量r(在该示例中r=8)不再大于一个存储器模块的ECC字中的符号的数量减去1时,这总是可以实现并且可行的。此外,如果我们使存储器模块中的符号的数量等于m,则上述技术对于一个ECC字总是可以发送正好m-r个符号大小的模块特定数据,而不需要在将信息发送回时在存储器模块之间的任何积极的协调,并且不管符号所处于的位置。
参考图3B,示出了根据优选的实施例的用于实现图1、2A和2B的计算机系统100中的增强的ECC(误差校正码)通信方法的示例操作。如块330中所指示的接收到存储器请求。如在决定块332中所指示的进行检查以识别该请求是否包括端口特定地址范围。如果请求不包括端口特定地址范围,则数据被取回并且由端口发送,即,正常操作,如在块334中指示的。如果请求包括端口特定地址范围,则被分配了端口特定地址范围的存储器模块发送模块特定数据以及校验,并且在其它端口中的存储器模块发送预先同意的模式——例如,为零的字节——如在块336中指示的。
根据本发明的特征,ECC生成技术不限于Reed-Solomon码。重要地,如果具有误差校正码的(按位的)奇偶校验矩阵H使得由乘以H*v获得伴随式,其中v是接收的位向量,并且奇偶校验矩阵H可以被分裂为M个部分,使得H=[H1H2....HM],则为了以上ECC生成技术运作,基本要求在于在H1H2...HM的每一个中存在可逆方形子矩阵,其大小等于H的行的数量。例如,在奇偶校验矩阵H中的第i部分中的选中的列对应于第i模块的校验位可以被放置的位置。
参考图3C,示出了根据优选的实施例的用于实现图1、2A和2B的计算机系统100中的增强的ECC(误差校正码)通信方法的示例操作,其中ECC生成技术不限于Reed-Solomon码。初始地,如在块340中所指示的提供误差校正码的(按位的)奇偶校验矩阵H。然后如在块342中所指示的,奇偶校验矩阵H可以被分裂为M个部分,使得H=[H1H2....HM]的每一个对应于一模块。接着,如在块344中所指示,在存储器模块中本地地生成ECC,基本要求是,在H1H2...HM的每一个中存在可逆方形子矩阵,其大小等于H的行的数量,并且例如在奇偶校验矩阵H的第i部分中的选中的列对应于第i模块的校验位被放置的位置。
例如,通过该技术可以在每个端口上发送28字节的信息,导致43.75%的带宽效率。该带宽效率限制仅当模块特定信息将被发送回时适用;每当进行将被发送的数据是先前编码的正常访问时,利用完整的存储器带宽。
本发明的额外的重要变化在于,在一些情况中,在一个存储器模块中的校验符号的数量r可能比符号的数量m更大。在上述条件将不能适用。具体地,在具有独立存储器的冗余阵列(RAIM)布置的存储器子系统中,除了其它冗余以外,存在整个存储器模块大小的冗余,并且因此简单地m-r是负数。
尽管如此,在标准代码理论术语的用语中,在存储器控制器已经具备能够处理被标记的符号或者被作为擦除处理的条件下,仍提供用于该情况的本发明的方法。例如,在RAIM示例中,除了其它标记的可能性以外,将对应于存储器端口的所有符号标记为将被忽略的项目是可能的。
例如如下适用了在RAIM的情况中的本发明。每当主机存储器处理器102作出对来自具体的存储器端口的状态的请求时,则其假设一些其它预先同意的存储器模块106将被作为由主机存储器处理器标记处理。因此,当其编码其自己私有数据时,其不需要负担使用于该预先同意的存储器模块的ECC字变为全零的工作,因为其预先知道存储器控制器104无论如何都将丢弃来自该存储器模块的数据。例如,通过在开始的4个端口上具有1个校验符号的RAIM系统,并且在第5端口中整个模块大小的校验符号,以及在每个端口上总共9个符号,则通过预先同意,例如,每当存储器模块i(i=0、l、2、3、4)希望传送回状态时,则存储器模块i+1(mod5)将被认为由存储器控制器104标记,则其仅负担确保3个校验——每个在三个剩余的端口中(不是i或i+1mod5)等于零。因此,当操作在该特定模式中时,其可以达9-1-3=5符号大小的数据发送回主机处理器102,具有4/64=6.25%的总带宽效率。
现在参考图4,示出了本发明的制品或计算机程序产品400。计算机程序产品400有形地实现在非瞬时性计算机可读贮存介质上,该非瞬时性计算机可读贮存介质包括记录介质402——诸如,软盘、以光学读取光盘或CD-ROM的形式的高容量只读存储器、磁带或另外的类似计算机程序产品。记录介质402在介质402上贮存程序部件404、406、408和410以用于执行用于实现图1、2A和2B的系统100中的优选的实施例的ECC(误差校正码)通信方法的方法。
由记录的程序部件404、404、408和410定义的一个或多个相互联系的模块的一系列程序指令或逻辑组合件,指导计算机系统400以用于实现与优选的实施例的多端口存储器配置中的主机处理器的ECC存储器模块通信。
虽然已经参考在附图中所示的本发明的实施例的细节描述本发明,但是这些细节不意欲限制所附权利要求中要求的本发明的范围。

Claims (20)

1.一种用于在计算机系统中在多端口存储器配置中实现与主机处理器的ECC(误差校正码)存储器模块通信的方法,包括:
提供存储器控制器,该存储器控制器耦合到该主机处理器以及多个存储器模块的每一个,所述存储器控制器包括ECC生成器和ECC译码器;
使能一致地操作的所述多个存储器模块的每一个以响应于主机处理器请求来识别将模块特定信息传送回该主机处理器所需要的一个存储器模块;以及
以有效ECC字的形式向该主机处理器生成回该模块特定信息,其中所有的所述多个存储器模块一致地操作,而其它的多个存储器模块单独地不知道所述一个存储器模块的数据内容。
2.如权利要求1所述的方法,其中所述多个存储器模块的每一个被分配模块特定的预定地址范围。
3.如权利要求2所述的方法,包括该主机处理器作出在具体的模块特定的预定地址范围中的请求。
4.如权利要求3所述的方法,包括所述多个存储器模块中的被分配用于请求的该具体的模块特定的预定地址范围的一个存储器模块将模块特定信息传送回该主机处理器。
5.如权利要求4所述的方法,包括所述多个存储器模块中的未被分配该具体的模块特定的预定地址范围的其它存储器模块以预先同意的常量来响应。
6.如权利要求5所述的方法,其中所述预先同意的常量包括零和一的图案组合。
7.如权利要求5所述的方法,包括使用Reed-Solomon码、在存储器模块中的数量r个校验以及数量m个符号,并且其中将模块特定信息传送回该主机处理器包括发送m-r个符号的模块特定数据以用于生成该有效ECC字。
8.如权利要求1所述的方法,其中向该主机处理器生成回有效ECC字包括提供误差校正码的奇偶校验矩阵H。
9.如权利要求8所述的方法,包括由将误差校正码的该奇偶校验矩阵H乘以接收的位向量v而获得伴随式。
10.如权利要求1所述的方法,包括使用数量r个校验、数量m个符号以及擦除多达e个符号的能力,其中将模块特定信息传送回该处理器包括发送m-r-e个符号的模块特定数据以用于生成该有效ECC字。
11.一种用于在多端口存储器配置中实现与主机处理器的ECC(误差校正码)存储器模块通信的系统,包括:
存储器控制器,耦合到多个存储器模块的每一个,所述存储器控制器包括ECC生成器和ECC译码器;
一致地操作的所述多个存储器模块的每一个被使能以识别将模块特定信息传送回该主机处理器所需的一个存储器模块;以及
一致地操作的所有的所述多个存储器模块被使能以向该主机处理器生成回有效ECC字,而该多个存储器模块单独地不知道向该处理器传送回所需的该一个存储器模块的数据内容。
12.如权利要求11所述的系统,包括贮存在计算机可读介质上的控制码,并且其中所述控制码指导该多个存储器模块在多端口存储器配置中实现与主机处理器的该ECC(误差校正码)存储器模块通信。
13.如权利要求11所述的系统,其中所述多个存储器模块的每一个被分配模块特定的预定地址范围,并且其中所述多个存储器模块的每一个包括控制器。
14.如权利要求13所述的系统,包括该主机处理器作出在具体的模块特定的预定地址范围中的请求。
15.如权利要求14所述的系统,包括所述多个存储器模块中的被分配用于请求的该具体的模块特定的预定地址范围的一个存储器模块将模块特定信息传送回该主机处理器,以用于生成该有效ECC字。
16.如权利要求15所述的系统,包括所述多个存储器模块中的未被分配该具体的模块特定的预定地址范围的其它存储器模块以预先同意的常量来响应。
17.如权利要求16所述的系统,其中所述预先同意的常量包括零和一的图案组合。
18.如权利要求16所述的系统,其中所述预先同意的常量包括全零。
19.如权利要求16所述的系统,其中将模块特定信息传送回该主机处理器以用于生成该有效ECC字包括使用Reed-Solomon码、在存储器模块中第一数量r个校验以及第二数量m个符号,并且其中将模块特定信息传送回该主机处理器包括发送m-r个符号的模块特定数据以用于生成该有效ECC字。
20.如权利要求16所述的系统,其中将模块特定信息传送回该主机处理器以用于生成该有效ECC字包括提供误差校正码的奇偶校验矩阵H。
CN201480052096.4A 2013-09-24 2014-08-20 与主机处理器的存储器模块通信的方法和系统 Active CN105556477B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/034,731 2013-09-24
US14/034,731 US9128834B2 (en) 2013-09-24 2013-09-24 Implementing memory module communications with a host processor in multiported memory configurations
PCT/EP2014/067742 WO2015043840A2 (en) 2013-09-24 2014-08-20 Memory module communications with a host processor in multiported memory configurations

Publications (2)

Publication Number Publication Date
CN105556477A true CN105556477A (zh) 2016-05-04
CN105556477B CN105556477B (zh) 2018-10-19

Family

ID=51390118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480052096.4A Active CN105556477B (zh) 2013-09-24 2014-08-20 与主机处理器的存储器模块通信的方法和系统

Country Status (3)

Country Link
US (1) US9128834B2 (zh)
CN (1) CN105556477B (zh)
WO (1) WO2015043840A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019135134A1 (en) * 2018-01-03 2019-07-11 International Business Machines Corporation Using dual channel memory as single channel memory with spares
US10606713B2 (en) 2018-01-03 2020-03-31 International Business Machines Corporation Using dual channel memory as single channel memory with command address recovery
CN111143109A (zh) * 2019-12-16 2020-05-12 浙江大学 一种ecc内存管理器、方法及电子设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294272A (zh) * 2015-06-03 2017-01-04 北京佳讯飞鸿电气股份有限公司 一种互斥访问多端口存储器的方法及多处理器终端
US10193248B2 (en) 2016-08-31 2019-01-29 Crystal Group, Inc. System and method for retaining memory modules
US10705912B2 (en) 2017-06-07 2020-07-07 Rambus Inc. Energy efficient storage of error-correction-detection information
US10734756B2 (en) 2018-08-10 2020-08-04 Crystal Group Inc. DIMM/expansion card retention method for highly kinematic environments

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088636A1 (en) * 2002-06-28 2004-05-06 Cypher Robert E. Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US20120030540A1 (en) * 2010-07-29 2012-02-02 Stmicroelectronics (Grenoble) Sas Ram memory device selectively protectable with ecc
CN102741819A (zh) * 2010-01-28 2012-10-17 国际商业机器公司 用于解码码字的方法、设备和计算机程序

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6683372B1 (en) 1999-11-18 2004-01-27 Sun Microsystems, Inc. Memory expansion module with stacked memory packages and a serial storage unit
US7234099B2 (en) * 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
WO2005015564A1 (en) 2003-08-06 2005-02-17 Netlist, Inc. Non-standard dual in-line memory modules with more than two ranks of memory per module and multiple serial-presence-detect devices to simulate multiple modules
US7398449B1 (en) 2004-06-16 2008-07-08 Azul Systems, Inc. Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module
DE102005053625B4 (de) 2005-11-10 2007-10-25 Infineon Technologies Ag Speichermodul mit einer Mehrzahl von Speicherbausteinen
US8245109B2 (en) 2006-03-31 2012-08-14 Hewlett-Packard Development Company, L.P. Error checking and correction (ECC) system and method
US7539842B2 (en) 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
KR101466694B1 (ko) * 2007-08-28 2014-11-28 삼성전자주식회사 Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법
US8086783B2 (en) * 2009-02-23 2011-12-27 International Business Machines Corporation High availability memory system
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088636A1 (en) * 2002-06-28 2004-05-06 Cypher Robert E. Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
CN102741819A (zh) * 2010-01-28 2012-10-17 国际商业机器公司 用于解码码字的方法、设备和计算机程序
US20120030540A1 (en) * 2010-07-29 2012-02-02 Stmicroelectronics (Grenoble) Sas Ram memory device selectively protectable with ecc

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019135134A1 (en) * 2018-01-03 2019-07-11 International Business Machines Corporation Using dual channel memory as single channel memory with spares
US10546628B2 (en) 2018-01-03 2020-01-28 International Business Machines Corporation Using dual channel memory as single channel memory with spares
US10606713B2 (en) 2018-01-03 2020-03-31 International Business Machines Corporation Using dual channel memory as single channel memory with command address recovery
CN111566621A (zh) * 2018-01-03 2020-08-21 国际商业机器公司 使用双通道存储器作为具有间隔的单通道存储器
US11037619B2 (en) 2018-01-03 2021-06-15 International Business Machines Corporation Using dual channel memory as single channel memory with spares
CN111566621B (zh) * 2018-01-03 2024-04-16 国际商业机器公司 使用双通道存储器作为具有间隔的单通道存储器
CN111143109A (zh) * 2019-12-16 2020-05-12 浙江大学 一种ecc内存管理器、方法及电子设备
CN111143109B (zh) * 2019-12-16 2021-08-13 浙江大学 一种ecc内存管理器、方法及电子设备

Also Published As

Publication number Publication date
WO2015043840A2 (en) 2015-04-02
US9128834B2 (en) 2015-09-08
WO2015043840A3 (en) 2015-05-21
CN105556477B (zh) 2018-10-19
US20150089279A1 (en) 2015-03-26

Similar Documents

Publication Publication Date Title
CN105556477A (zh) 在多端口存储器配置中与主机处理器的存储器模块通信
US10847246B2 (en) Memory systems performing reconfigurable error correction operation using ECC engine with fixed error correction capability
US10846171B2 (en) Error correction code decoders, semiconductor memory devices and memory systems
US10824508B2 (en) High efficiency redundant array of independent memory
US10922171B2 (en) Error correction code circuits, semiconductor memory devices and memory systems
KR102190683B1 (ko) 메모리 데이터 에러 정정 방법
US9170878B2 (en) Memory buffer with data scrambling and error correction
US9627092B2 (en) Semiconductor device performing error correction operation
EP3731096A1 (en) Technologies for providing error correction for row direction and column direction in a cross point memory
US11157358B2 (en) Memory module, error correction method of memory controller controlling the same, and computing system including the same
US9696923B2 (en) Reliability-aware memory partitioning mechanisms for future memory technologies
JP2008262325A (ja) メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
CN103218271A (zh) 一种数据纠错方法及装置
CN104182292A (zh) 一种数据存储方法及装置
CN116569264A (zh) 使用有毒数据单位修改奇偶校验数据
US11237901B2 (en) Error correction using hierarchical decoders
US20240004791A1 (en) Controller cache architeture
CN103019883B (zh) 一种内存纠错方法及系统
US11928027B1 (en) System and method for error checking and correction with metadata storage in a memory controller
US20230081231A1 (en) Interconnect based address mapping for improved reliability
US20230187012A1 (en) Implementing fault isolation in dram
CN116775367A (zh) 一种数据校验方法及装置
CN117170575A (zh) 用于数据保护及恢复的存储器地址转译
CN117331866A (zh) 控制器高速缓存架构

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant