使用多路复用器替换存储设备的存储器模组和方法

文档序号:6781793阅读:184来源:国知局
专利名称:使用多路复用器替换存储设备的存储器模组和方法
使用多路复用器替换存储设备的存储模组和方法背景技术双列直插式存储器模组(DIMM)由于具有高可用性,以颇外形参数和电气 接口标准的兼容性,长期以来一直是常见的用于计算机系统的数字存储器形式。 一般地,DMM采用多个存储设备,例如动态随机存取存储器(DRAM),布置 在单个的小块印刷电路板(PCB)上提供大量存储器给处理系统,例如台式计 ^t几、网络服务器或者其他小型计^t几系统等。在DMM上,存储设备通常组 装在PCB的两面,而单列1^爵式存储^I模组(SIMM)只在PCB的一面包含存储 设备。经常的,存储设备逻辑上按照一个或多个"列"或独立寻址存储单元来 组织。此外,#^与特定列联系在一起的存储设备包括*可寻址存储单元的 明确的位范围;这样,通常每个可寻址单元的位宽直接关联于列中包括的存储 设备的数量。一般地,* DIMM M5iii接器耦合到处理系駐板上的存储器控制器, 这样在DMM故障的时候就可以容易的更换。为了升级DIMM存储容量^I度 也会进行更换。 一般地,为了给消费者价格和性能上权衡的选择,主板提供多 个DIMM连接器来允许一定范围的存储容量。随着计算平台中4細的处理器的鹏和处理能力的持续增长,相应增强的 存储技术也产生了重要的性能问题。例如,DIMM容量的增加需要更多的输入 输出(I/O)信号,如地址信号和 信号,在於DMM与主板之间,恶化了 之前即已存在的I/0信号路由问题。同样,更高的DMM访问鹏斷氐了可以 耦合到一个存储器控制器上的DMM数量,这是由于在控制器和DMM之间的 地址信号线和数据信号线上产生的传输线"歹 (stub)"。针对这些问题,设计了全缓冲双列直插式存储器模组(FB-DMM)。每个 FB-DMM包括多个存储设备,例如DRAM,加上一个高级存储缓冲器(AMB) 用于存储,制器与DRAM的耦合。与把存储,制器与^ DMM直接耦 合不同,存储離制器M31两个单向串行命令M接口与多个DIMM的第一个 耦合,这个DMM用同样的方式与下一个DMM耦合,形成点到点的串4亍接口 ,该串行接口把控制器和多个DMM以f跳方式连接起来。结果是,串行接口的 应用同时解决了以前DMM的信号路由问题和传输线缺陷。这样,更多的DMM 可以耦合至任意一个存储器控制器,从而在允许更快的存储访问时间的同时促 进了存储容量的显著增加。可是,FB-DMM技术并未解决下述这一愈发严重的问题,即与之鹏到 的DRAM的皿和容量提升相关联的升高的DRAM故障率。为M这一问题, 驱动传统的DIMM系统以及更近的FB-DMM系统的存储器控制器f顿冗余数 据,例如纠错码(ECC)或循环冗余校验码(CRC),它们被存储在DIMM — 个或多个额外的DRAM中以用于纠正娜错误。某些翻错误实质上是短暂的 或者暂时的,另外一些可能意味着有出故障的DRAM。为了解决一个故障 DRAM,存储器控制器会使用传统DMM和FB-DMM的多个额外DRAM的 一个用作备用,这蹄储器控制器即可把出故障的DRAM的内容映射到备用 DRAM,从而把出故障的DRAM iAI艮务中移走而不用更换DMM。可是,随 着DRAM故障率的不断升高,^DIMM—个备用DRAM不足以允许在第二 个DRAM出故障前完成DMM的更换,这会导致DMM完全失效。此外,即 使提供两个或更多个备用DRAM, 一般也没有隨当前的存储器控制器以有效 地禾拥那些备用。另外,当采用额外的DRAM作为备用,存储驗制器的错误 纠正能力被斷氐了,因为作为结果,更少的存储可用于错误纠正数据。


图1是依照本发明的具体实施方式
的存储器模组的方框图。 图2是依照本发明的具体实施方式
的存储器模组的存储缓冲器的操作方法 流程图。图3是依照本发明的具体实施方式
的全缓冲双列直插式存储激莫组的简化 方框图。图4是图3的存储器模组的读多路OT器的方框图。图5是依照本发明的具体实施方式
的响应于检测与存储,制器耦合的存 储器模组中出故障的存储设备来操作存储器控制器的方法的流程图。图6是依照本发明的具体实施方式
的用于将来自出故障的存储设备的M 传到存储器模组的备用存储设备的在图6之内的方法的流程图。图7是^m本发明的另一个具体实施方式
的提供两个存储器列(rank)的存储^^莫组的方框图。图8是依照本发明的另一个具体实施方式
的在单个列内提供两个备用存储 设备的的存储器模组的方框图。图9是傲照本发明的具体实施方式
的如图8所示的存储器莫组的多路OT 单元的一部分的方框图,该部分用于指弓倒存储翻莫组的存储设备的写数据。图10是依照本发明的具体实船式的如图8所示的存储器模组的多路飾 单元的一部分的方框图,该部分用于指弓凍自存储器模组的存储设备的读繊。
具体实施方式
图1示出了傲照本发明的一个具体实施方式
的存储翻莫组100。存储器模 组100包括存储设备102和备用存储设备104,其每一个与多路复用单元106 耦合。还包括耦合到多路复用单元106的存储缓冲器108。存储缓冲器108包括 串行接口 110,存储缓冲器108被配置为M该串行接口从存储器控制器接收指 令。存储缓冲器108进一步被配置为处理接收的命令并响应于该命令提供存储 器控制器对存储设备102的访问。响应于至少一4^令,存储缓冲器108被配 置为指导多路复用单元106将备用存储设备104耦合至附替存储设备之一的存 储缓冲器108,用于对存储设备102的至少下一次访问。图2的流程图说明了另一个具体实施方式
。图中所描述的方法200用于操 作存储器模组的存储缓冲器,例如图1所示的存储缓冲器108,该方法包括从存 储,制器接收串行命令(操作202)。处理接收到的串行^^令(操作204)。响 应于对串行命令的处理,通过多路复用单元向存储器控制器提供对存储器模组 的存储设备的访问(操作206)。此外,响应于串行命令中的至少一个,指导多 路复用单元将存储器模组的备用存储设备耦合到替换的存储设备之一的存储缓 冲器,以用于对存储设备的至少下一次访问(操作208)。图3说明了依照本发明的另一个具体实施方式
的存储器模组300的例子。 这^K寺殊的存储器模组300是基于之前讨论的FB-D謹架构的。尽管图3和 图4的相关讨论主要针对FB-DMM相关的架构,但展现各种逻辑和物理结构 的其他类型的存储器模组均可以得益于下面描述的发明的於方面。模组300包括印刷电路板(PCB) 301,下面讨论的其他M设备布置在印 刷电路板上,并通过印刷电路板互连。还可以包括例如去耦电容和旁路电容的 其他组件,但为简明起见,在图3中没有明确的示出。PCB 301与存储器控制器或其他存储器模组300的连接可以采用纖接触方式,用这样的方式形成以 与标准FB-DMM连接器的相应引脚电连接。在其他具体实皿式中,可以使 用其他各种连接方案。耦合在PCB301上的是多个DRAM302,按从302o到302^编号,以作为 存储设备用来存储如用户数据、程序 等的数据。* DRAM302提供多个 可寻址存储单元,其中^单元属于由DRAM302提供的一个位宽。在一^ij 子中,針DRAM302的相应可寻址存储单元被配置为被并行访问,导致齡 可寻址单元上的逻辑字的宽度等于DRAM302的f(4乘以^DRAM302位宽。 在一个具体实施方式
中,*DRAM302的位宽是4。在另一个具体实船式 中,^DRAM302的位宽是8。在各种不同的具体实施方式
中可能是其他的 位宽。在一个具体实施方式
中,DRAM302的数量与共同关联于FB-DMM的 DRAM的数量相一致。例如,如果采用8位的DRAM302,则PCB301上布置 9个DRAM302。招艮多情况下,DRAM302中的8个用来保存要存储在模组上 的 ,而DRAM302中的一个保存错误校正M,例如Reed-Solomon ECC 数据。在那个例子中,关联于模组300的^可寻址存储单元保存64位数据和 8位用于校正错误的错误校正数据。根据一个通常成立的规则,即"位的错误需 要2"位来校正,这种方案并非总是能够校正出故障的DRAM302。在另一个采 用4位的DRAM302的具体实施方式
中,模组300上存在18个DRAM302。这 种情况下,16个DRAM302用来保存数据,而剩余的两个DRAM302包含错误 ^!E数据,导致*可寻址字包含64位数据和8位关联的错误校正数据,如上 述讨论的采用8位的DRAM302盼瞎况。但是,因为有8位错误校正翻可用, 并且每个DRAM302是4位位宽,这种方案确实會詢多纠正整个DRAM302。模组300还包括备用DRAM304 ,该备用DRAM304被配置为在DRAM出 故障盼瞎况下更换DRAM302中的一个。下面详细论述备用DRAM302的使用。耦M每个DRAM302和备用DRAM304的是多路复用单元306,该多路 复用单元306被依次耦合到高级存储缓冲器(AMB) 308, AMB的操作方式与 之前论述的FB-DIMM类似。尽管图3的特定实M^式将MB308和多路OT单 元306显示为分离的实体,例如分离的集成电路(IC),但AMB308和多路复 用单元306可以组合在单个IC内,这样可以节省在PCB301上的空间。在另一个具体实施方式
中,AMB308,可能和多路^ffl单元306 —起,可以布置在分 离的印刷电路板上,例如PCB301所耦合到其上的主板,这样节省了在PCB301 上的空间。这种情况下,存储^^莫组300包括PCB301之上和别处的电路。在图3所示的特定例子中,多路OT单元306包括写多路复用器306a,用 于把来自AMB308的DRAM 信号多路复用到备用DRAM304。更具体地, 要给DRAM302中的任意一个的数据被指引到备用DRAM304。如上所述,采 用实现4位DRAM302的模组,要写到18个DRAM302 (—般情况下是iV个 DRAM302)中的任意一个DRAM302的数据改为写到备用DRAM304,这取决 于AMB308在控制写多路OT器306a中的动作,对此下面将更完整地阐述。多路OT单元306还包括读多路OT器306b。和写多路OT器306a的方 式相反,读多路复用器306b在AMB308的指导下,可以指弓|来自备用DRAM304 的读f^来代替来自DRAM302中任意一个DRAM302的读数据。图4给出了 一个读多路复用器306b的例子,其中可以采用N个2到1多路复用器402,按 照从402Q到402^编号。更具体地,針多路鄉器402具有两4^入,針 输入具有与* DRAM302和备用DRAM304的位宽相等的位宽。每个2到1 多路复用器402的一^1J/J禹合到DRAM302之一,而另一,Af禹合到备用 DRAM304。这样,按照AMB308的指导,来自备用DRAM304的读数据可以 替换DRAM302中任意一个DRAM302的相应数据。回到图3, AMB308被隨为控制多路糊单元306的操作,这是通^M 由耦合到存储器控制器(图3中没有示出)的串行接口 310接收至啲命令的方 式来完成的。在一般的FB-DMM中,串行接口 310可以M51另一种插入存储 器模组300的方式与存储離制器耦合。另外,图3中的存储器模组300还可 以M31第二串行接口 312与另一个存j诸器模组300耦合,从而传il^人存储器控 制離收的命令而打算用于下一个存储鹏制器300。通常,AMB308被SeS为从存储器控制器接收命令、处理该命令、并且响 应于鹏该命令,提供存储離制器对存储在DRAM302或者可能在DRAM304 中的数据的访问。更具体地,一^h^令可以指令存储缓冲器从DRAM302的一 个或者多个可寻址存储单元中读出数据并将读出的数据返回给存储器控制器。 类似地,另一个伴随有特定数据的命令可以指令AMB308将该特定数据写入 DRAM302的一个或者多个可寻址存储单元以进行存储并用于以后检索。当发送了这^^令到AMB308时,存储器控律幡M31存储在存储器模组300 中的错误校正数据来检测并校正存储器模组300中所存储娜的错误,正如前 面已阐述过的那样。许多这些错误实质是暂时的,并因此可以ita错误校正数 据确定正确的数据并将正确的 重新写到存储^^莫组的DRAM302的正确可 寻址单元就可以修复这些错误。可是在有些时候,存储,制M定DRAM302之一存在着很高数量的数 据错误,意瞎DRAM302的部分或者全部故障即将来临。于是,存储離制 器在从相应的可寻址存储单元读出数据后会无条件地校正或者"擦除"存储在 故障DRAM302中的数据。换句话说,存储,制器假设存储在故障DRAM302 中的所有数据是错误的,忽略它,并使用错误校正数据来重新生成它。这样的 擦除加快了数据校正,并增强了纠正附加数据错误的可能性。不幸的是,在正 在着手一个DRAM302的时候,就无法纠正另一个出故障的DRAM302。为了增强存储器控制器在出现出故障的DRAM302盼瞎况下检测和舰数 据错误的會g力,用存储^i组300的备用DRAM304替换出故障的DRAM302, 并且恢复由存储離制器采用的错误舰方案的全部校正能力。图5给出了存 储器控制器可以实^K用存储器模组300来替换故障DRAM302的一种可能方 法的流程图。存储lie制^5角定特定的DRAM302有故障之后(操作502),存 储,制器开始故障DRAM302的擦除模式(操作504),正如上面介绍的一样。进一步,存储器控制器接着把故障DRAM302中驻留的翻的正确版本传 送到备用DRAM304 (操作506)。更具体地,存储器控制M故障DRAM302 的每个可寻址存储单元读出数据,校正它,之后把该数据重新写到备用 DRAM304。在一个具体实 式中,当其他的读操作或写操作在执行的同时, 存储,制,传,作506作为后台任务^l行。图6给出了一个更详细地描述如存储器控制器所执行的传输操作506的具 体实施方式的流程图。例如,存储離制H^传纖作要开始的存储激莫组300 内i體初始存4诸地址(操作602)。通常,i^管存4诸:l^莫组300的ftf可其他i也址 可以用作为初始地址,但该地址是存储器模组300的任意一个可寻址存储单元 的最低数字地址。存储器控制器会接着向存储^^莫组300的AMB308发出一个 命令来从包含故障DRAM302的DRAM302中读取I員地址处的M (操作 604)。在存储器控制離收到数据后,存储器控制器接着舰数据,可能采用之前论述的擦除过程的方式来校正(操作606)。存储 制皿着可以发出另一^^令,指导AMB308用备用DRAM304 替换故障DRAM302以用于下一次被请求的操作(操作608)。其后,存储, 制器发出一条含有已校正翻的写命令到AMB308以f微据写到DRAM302, fflil写多路OT器306a的方式,把与故障DRAM302关联的数据存储在备用 DRAM304中(操作610)。于是,模组300内特定的可寻址存储单元的故障 DRAM302中数据的正确版本被传超ij备用DRAM304。其后,如果在模组300 的最后地址内驻留的数据还没有被传送(操作612),递增或者修改地址(操作 614),并且新地址处的M被读出以倒顿序传送(操作602)。否则,传输操作 506完成。当在故障DRAM302中的f^被成功传,lj备用DRAM304后,之后对存 储器模组300的读写访问均涉及f顿备用DRAM304代替故障DRAM302。至 此,在一个具体实施方式
中,存储離帝U器可以发出指令AMB308的另一错 令,用于指导多路飾单元306来无期限地将之前涉及故障DRAM302的所有 后续读写繊指引到备用DRAM304 ^;人备用DRAM304指弓断述读写 (操 作616)。因此, 一旦替换已经完成,这个实施方式不需要重复的用于指导 AMB308继续-垂换的^^令,由此减少了不必要的通信开销量。回到图5中的方法500, 一旦传送操作506完成,存储,制器可以结束故 障DRAM302的擦除(操作508),从而允许所有的错误校正以其全部能力来校 正遇到的其他的薩错误,因此允许存储器模组300内的第二个故障DRAM302 进行擦除。图3的具体实施方式
是具有单列存储设备的存储器模组300的一个例子, 其中所有存储设备被组合以形成单个可寻址存储单元。图7是一个包括两列 720、 722的存储器模组700的例子,每个列包括多个存储设备702和一个备用 存储设备704。 *列720、 722被耦合到其自己的多路复用单元706, fflil该 多路OT单元706,存储缓冲器708对列720、列722进行读写操作。像之前那 样,存储缓冲器708舰串行接口710接收源自存储鹏制器的命令。假定了 这种存储器配置,两个分离的故障存储器702 (旨列720、 722—个)也可以 采用前面论述的方法用备用存储设备704进《亍替换。以上的具体实施方式
只关注在存储器模组内为一列存储设备提供单个备用存储设备。在其他的具体实施方式
中,可以在单列内提供更多的备用存储设备 从而允许在该列内替换更多的故障存储设备。图8给出了一个例子,其中单列的存储器模组800具有N个存储设备802。到802^和两个备用存储设备804a、 804b。与图1中的存储器模组100相似,多路复用单元806耦合到存储设备802 和两个备用存储设备804。另外,存储缓冲器808舰串行接口810从存储離 制皿收命令以访问存储设备802,并且指导多路复用器806用备用存储设备 804来替换存储设备802中的一个或两个。在一个具体实施方式
中,多路复用单 元806可包括分离的写多路复用器和多读路复用器(图8中未示出),与图3中 的写多路复用器306a和读多路复用器306b相似。假定两个备用存储设备804 可用,多路复用单元806被请求以便将预期到任何一个存储设备802的写数据 指弓闺备用存储设备804的任何一个。在图9给出的具体实船式中,多路复 用单元806内可以使用两个分离的写多路复用器906a、 906b,其中每个多路复 用器906将预期用于任何存储设备802的写数据指引到备用存储设备8(H之一。 图10给出了一个例子,其中N个3到l多路复用器1006,按从1006o到1006^ 编号,可以在多路OT单元806内j吏用,以便指引来自备用任意一个存储设备 804中的读数据以代#*自任意一个存储设备802中的 。在其它具体实施方 式中,可用使用更多的备用存储设备,渐进地需要更复杂的多路复用单元来适 当地指引读写数据。如上所述,本发明存储^^莫组和方法的各种不同的具体实施方式
允许存储 器控制謝旨导存储器模组用模组的备用存储设备替换模组中的故障或者出故障 的存储设备,从而一旦发生替换,就允许存储器控制器把其全部的错误校正能 力用于校正其他的错误。在一些具体实施方式
中,存储器控制默旨导存储器模 组执行替换所需要的命令开销量可能相对不合理。此外,一旦所有存储在故障 存储设备中的数据均已经被传送到备用存储设备,并且替换已经成为永久的, 贝瞎储器控制器的命令开销就会降到几乎为零。这里只讨论的本发明的几个具体实施方式
,本发明的范围还包括其他具体 实施方式。例如,虽然以上讨论的本发明的一些具体实施方式
是参照采用基于 DRAM的FB-DMM存储^l模组架构的,但其他存储设备和存储^i组结构均 可以采用本发明各个方面的突出优点。例如,采用多种类型的DRAM或者 SRAM的多列DIMM或者SIMM,可以从本发明的至少某些实施例中获益。同样,可以组合於实施例的可选择的不同部分得至体发明的进一步的实现方式。本发明已经在该文中M具体实施方式
做了描述,这些描述用于阐明本发明而不是用于限制。本发明的合适的保护范围只由禾又利要求限定。
权利要求
1、一种存储器模组(100,300),包括存储设备(102,302);第一备用存储设备(104,304);多路复用单元(106,306),与每一个存储设备(102,302)和第一备用存储设备(104,304)耦合;以及存储缓冲器(108,308),与多路复用单元耦合并且包括串行接口(110,310);其中,存储缓冲器(108,308)被配置为通过串行接口(110,310)从存储器控制器接收命令,处理该命令,响应于该命令通过多路复用单元(106,306)来提供存储器控制器对存储设备(102,302)的访问,并且响应于至少一个命令,指导多路复用单元(106,306)将第一备用存储设备(104,304)耦合到代替存储设备(102,302)之一的存储缓冲器(108,308),用于对存储设备(102,302)的至少下一次访问。
2、 权利要求1所述的存储器模组(100, 300),其中存储缓冲器(108, 308)被配置为响应于至少一^K^令,在下一次访问存j诸设备(102, 302)期间 将第一备用存l诸设备(104, 304)耦合至瞎储缓冲器(108, 308)。
3、 如权利要求1所述的存储器模组(100, 300),其中存储缓冲器(108, 308)被配置为响应于至少一^^令把第一备用存储设备(104, 304)无限期地 耦合到存储缓冲器(108, 308)。
4、 如权利要求1所述的存储器模组(100, 300),其中存储缓冲器(108, 308)包括多路复用单元(106, 306)。
5、 如权利要求1所述的存储鹏组(100, 300, 800),其中 存储器模组(100, 300, 800)进一步包括第二备用存储设备(804);以及 存储缓冲器(108, 308, 808)进一步配置为,响应于至少另一^^令,指导多路复用单元(106, 306, 806)将第二备用存储设备(804)耦合到代替第 二个存储设备(102, 302, 802)的存储缓冲器(108, 308, 808)。
6、 如权利要求1所述的存储器模组(100, 300, 700),其中 存储器模组(100, 300, 700)进一步包括第二存储设备(702)、第二备用存储设备(704)、以及与第二存储设备(702)和第二备用存储设备(704)的每一W禹合的第二多路复用单元(706);存储缓冲器(108, 308, 708)与第二多路OT单元(706)耦合;以及 存储缓冲器(108, 308, 708)进一步配置为响应于至少另一^^令,指导第二多路复用单元(706)将第二备用存储设备(704)耦合到代替第二存储设备(702)之一的存储缓冲器(108, 308, 708)。
7、 一种操作存储器模组的存储缓冲器的方法(200),该方法(200)包括从存储器控制器接收串行命令(202);处理所述串行命令(204);响应于对所述串行^^令的处理(204),通过多路OT单元提供存储,制 器对存储器模组的存储设备的访问(206);响应于至少一个串fi^^令,指导多路复用单元将存储模组的第一备用存储 设备耦合到代替存储设备之一的存储缓冲器,用于对存储设备的至少下一次访 问(208)。
8、 如权利要求7所述的方法(200),其中响应于至少一个串行命令把第一 备用存储设备耦合至'J存储缓冲KE下一次访问存储设备期间辦卖。
9、 如权利要求7所述的方法(200),其中响应于至少一个串行命令将第一 备用存储设备耦合到存储缓冲器无限期地持续。
10、 如权利要求7所述的方法(200),其中 存储器模组进一步包括第二备用存储设备;以及该方法进一步包括,响应于至少另一^^令,指导多路复用单元将第二备 用存储设备耦合到代替第二个存储设备的存储缓冲器。
11、 如权利要求7所述的方法(200),其中存储器模组进一步包括第二存储设备、第二备用存储设备、以及与第二存 储设备和第二备用存储设备的每一^f禹合的第二多路飾单元; 存储缓冲器与第二多路复用单元耦合;以及i^法进一步包括,响应于至少另一^^令,指导第二多路复用单元把第 二备用存储设备耦合到代替第二存储设备之一的存储缓冲器。
全文摘要
使用多路复用器替换存储设备的存储器模组和方法。一种存储器模组,包括存储设备、备用存储设备、多路复用单元、和存储缓冲器。多路复用单元与存储设备和备用存储设备的每一个耦合,存储缓冲器耦合到多路复用单元。存储缓冲器包括串行接口,通过该串行接口从存储器控制器接收命令。存储缓冲器被配置为处理命令并响应于该命令通过多路复用单元提供存储器控制器对存储设备的访问。而且,响应于至少一个命令,存储缓冲器被配置为指导多路复用单元将备用存储设备耦合到代替存储设备之一的存储缓冲器,用于存储设备的至少下一次访问。
文档编号G11C7/10GK101231880SQ200810009510
公开日2008年7月30日 申请日期2008年1月25日 优先权日2007年1月26日
发明者L·J·塞耶 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1