存储器装置、存储器模块和用于纠错的方法_3

文档序号:9826162阅读:来源:国知局
0077]MCA模块1026被配置为控制对于MCA寄存器(诸如图4的MCA寄存器452)的访问。信息1020代表来自MCA寄存器的这样的信息。EC模块1018被配置为访问MCA模块1026,以检索这样的信息1020 AC模块1018可以将来自MCA模块1026的信息1020与错误信息1022组合,并且用单个接口来提供组合后的信息。
[0078]具体地讲,EC模块1018可以提供与MCA模块1026的接口相同或相似的接口,使得处理器1004能够纠正错误。例如,如果处理器1004被配置为纠正在从存储器1002读取的数据中的错误并且这样的错误信息是可使用的,则该信息可以通过MCA模块1026是可使用的。然而,如果处理器1004没有被配置为纠正从存储器1002读取的数据中的错误,或者处理器1004被配置为纠正错误但是由于该错误在存储器1002中被纠正而从未通过由MCA模块1026监视的通信路径接收错误信息,则MCA模块1026无法提供错误信息。不论如何,EC模块1018可以将MCA模块1026信息1020与通过通信路径1008获得的错误信息1022组合并且提供组合的信息,该组合的信息与MCA模块126原本将要提供的信息相同或相似,其中,该信息使得处理器1004被配置为纠正从存储器1002读取的数据中的错误或者错误信息对MCA模块1026是可使用的。然后,软件可以使用相同或相似的接口,而与是否存在具有纠错的处理器1004无关。换言之,对于依赖将要被充分可操作的错误信息的软件而言,能够纠错的处理器1004不是必要的。结果,可以通过使用不具有纠错的廉价处理器1004来降低成本。
[0079]图11是根据实施例的具有包含共享接口的多个模块的存储器系统架构的系统的示意图。在本实施例中,系统1100包括与图7的存储器702、处理器704、通信路径706和708以及响应于信息720和722的软件710相似的存储器1102、处理器1104、通信路径1106和1108以及响应于信息1120和1122的软件1110。然而,在本实施例中,软件1110包括第一模块1118、第二模块1128和接口模块1130。
[0080]第一模块1118与图7的模块718相似。然而,第一模块1118被配置为通过接口模块1130从存储器1102接收错误信息。接口模块1130是被配置为提供对通信路径1108的接口的模块。例如,接口模块1130可以是被配置为允许经过IPMI总线访问的模块。
[0081 ]其他模块(诸如第二模块1128)还可以被配置为使用接口模块1130来通信。例如,第二模块1128可以被配置为访问添加到IPMI总线的装置、访问存储器1102的另一个方面(诸如热或功率信息)等。错误信息和其他信息可以是通过接口模块1130传输的信息1122的一部分。换言之,可以使用专用软件沿着整个路径传输错误信息,但是错误信息还可以与有关的或无关的信息和/或资源共享模块、接口、总线等。
[0082]图12是根据实施例的具有包含共享接口的可纠正错误模块和串行存在检测/寄存时钟驱动器模块的存储器系统架构的系统的示意图。在本实施例中,系统1200包括与图11的存储器1102、处理器1104、通信路径1106和1108以及响应于信息1120和1122的具有模块1118、1128和1130的软件1110相似的存储器1202、处理器1204、通信路径1206和1208以及响应于信息1220和1222的具有模块1218、1228和1230的软件1210。然而,在本实施例中,第一模块1218是纠错(CE)模块1218,第二模块1228是串行存在检测(SPD)/寄存时钟驱动器(RCD)模块 1228。
[0083]具体地讲,SHVRCD模块1228被配置为访问与串行存在检测系统和/或寄存时钟驱动器系统有关的信息。Sro/RCD模块1228可以被配置为访问上述一个系统或两个系统。通过第二通信路径1208来访问上述信息。因此,在实施例中,可以像与SPD/RCD有关的信息那样,通过同一条通信路径1208来访问来自存储器1202的错误信息。
[0084]图13是根据实施例的具有包含DRAM内(in-DRAM)纠错的存储器系统架构的系统的示意图。在本实施例中,系统1300包括与图10的存储器1002、处理器1004以及响应于信息1020和1022的具有EC模块1018和MCA模块1026的软件1010相似的存储器1302、处理器1304以及响应于信息1320和1322的具有EC模块1318和MCA模块1326的内核1310。然而,在本实施例中,每个存储器1302是纠错码(ECC)双列直插存储器模块(DMM)。每个ECC DIMM 1302被配置为存储数据并且纠正所存储的数据中的错误。在本实施例中,ECC DIMM 1302均通过对应的通信路径1364结合到处理器1304的存储器控制器(MC) 1350。与图5的通信路径506相似,通信路径1364包括用于数据信号和数据选通信号等的至少一条线。ECC DIMM 1302均通过通信路径1308结合到处理器1304,其中,通信路径1308包括与图3的总线312、BMC 314和总线316相似的总线1312、BMC 1314和总线1316。
[0085]在实施例中,ECC DIMM 1302可以被配置为纠正在从ECC DIMM 1302读取的数据中的一个或更多个错误。纠错技术可以包括单错误纠正-双错误检测(SEC-DEC)技术、单芯片芯片删除(chipkill)技术或双芯片芯片删除技术等。可以使用任何纠错技术。
[0086]在本实施例中,存储器控制器(MC)1350没有被配置为执行纠错,或者可选择地,没有被配置为从ECC DIMM 1302接收错误信息。因为从ECC DIMM 1302传输的数据已经被纠正,所以MC 1350不可能再接收到任何表示可纠正的错误的信息。然而,错误信息,尤其是,纠正的错误信息可通过通信路径1308(8卩,通过总线1312和1316以及BMC 1314)被发送到处理器1304。
[0087]在实施例中,处理器1304可以是不能够执行纠错但具有能够连接到总线1316的接口的现有的处理器。然而,一旦处理器1304被内核1310(尤其是,EC模块1318)所配置,则整个系统1300就可以被配置为与具有能够纠错的处理器的系统类似地执行纠错。
[0088]在实施例中,EC模块1318可以创建具有ECC接口的虚拟存储器控制器。例如,如上所述,EC模块1318可以被配置为从MCA模块1326接收信息。该信息可以是具有ECC接口的实际存储器控制器可以提供的而不具有一些或所有错误信息的信息。EC模块1318可以用错误信息来补充来自MCA模块13 26的信息,以创建希望来自具有ECC接口的存储器控制器的信息的完整集合。EDAC模块1324、存储器ECC守护进程1358、其他应用1360等可在无需如与具有纠错的处理器一起使用的那样改变的情况下被使用。例如,EDAC模块1324可以被配置为向EC模块1318进行轮询以存储ECC信息。反过来,EC模块1318可以返回通过第二通信路径1308接收到的错误信息。与EDAC模块1324通信的存储器ECC守护进程1358可以向EDAC模块1324轮询错误信息。存储器ECC守护进程1358可以随后在应用级别上根据错误信息采取措施。这样的措施可以包括页退回(page retirement)、其他措施以管理错误来保持系统1300运行、保持可靠性的水平、推荐停止运行等。
[0089]如上所述,可以检测不可纠正的错误。可以通过MC 1350、MCA寄存器1352和MCA模块1326将不可纠正的错误信息传送到EC模块1318。例如,可以通过MCA模块1326以非可屏蔽的中断、异常等来传送不可纠正的错误。在具体示例中,存储器控制器1350可以响应于所述不可纠正的错误而产生硬件异常,而不管如何被传送到存储器控制器1350 JCA模块1326可以拦截所述异常,并将其传递给EC模块1318』C模块1318随后可以将所述异常传送到EDAC模块1324。除了如上所述地传送不可纠正的错误信息之外,或者作为上面的替代,还可以通过通信路径1308来传送不可纠正的错误信息。
[0090]在实施例中,ECC DIMM 1302可以被配置为向处理器1304提供纠正的数据。然而,该数据可能变成在ECC DIMM 1302与MC 1350之间受到损坏。因此,可以在ECC DIMM 1302与处理器1304或MC 1350之间执行某些形式的纠错。例如,可以使用意图检测通信链路1364上出现的错误的纠错码来编码从ECC DIMM 1302发送的数据。以这样的纠错码,可以使用纠错来保护从ECC DIMM 1302中的存储元件到处理器的基本上整个路径。
[0091]图14A至图14D是根据一些实施例的具有包含模块内纠错的存储器系统架构的系统的示意图。参照图14A,系统1400包括与图13的组件相似的组件;然而,在本实施例中,ECCDIMM 1402包括缓冲器1462。缓冲器1462被配置为纠正在从对应的ECC DIMM 1402读取的数据中的错误。具体地讲,可以从内部存储器装置(诸如ECC DMM 1402的DRAM装置(未示出))读取未纠正的数据。缓冲器1462可以被配置为纠正所述未纠正的错误,并且与在此描述的其他存储器类似地生成纠正的错误信息。该错误信息可以通过通信路径1408来被通信,并且可以如上所述地被使用。即,可以如上所述地使用该错误信息,而不管如何生成该错误信息。
[0092]参照图14B,系统1400的组件与图14A的组件相似。然而,在本实施例中,EDAC模块1424被配置为与MCA模块1426通信。例如,EDAC模块1424可以被配置为向MCA模块1426轮询硬件有关的信息、不可纠正的错误信息或者如上所述的通过MCA模块1426可使用的其他信息。EDAC模块1424可以被配置为组合来自MCA模块1426的信息与来自EC模块1418的信息。
[0093]参照图14C,系统1400的组件可以与图14A的组件相似。然而,在本实施例中,机器检查事件日志或记录器(Machine Check Event Log or Recoder:MCEL0G)模块1425被配置为从CE模块1418接收信息。MCELOG模块1425可以被配置为记录与各种系统错误(诸如存储器错误、数据传输错误或其他错误)有关的机器检查事件(MCE)t3MCELOG模块1425可以被配置为向存储ECC守护进程1458提出中断,并且向存储ECC守护进程1458传递错误信息。
[0094]参照图14D,系统1400的组件可以与图14C的组件相似。然而,在本实施例中,与图14A和图14B之间的差异相似,MCELOG模块1425可以被配置为从与图14B的EDAC模块1424相似的MCA模块1426接收信息。
[0095]虽然已经针对图14A至14D中的具有缓冲器1462的ECC DHlM 1402描述了不同的模块,但是在其他实施例中,可以将各种构造应用于图13的具有ECC DIMM 1302的系统1300。
[0096]图15是根据实施例的存储器模块的示意图。存储器模块1500包括一个或更多个存储器装置1501、数据接口 1536、错误接口 1538和控制器1541。数据接口 1536被配置为发送将被存储在存储器装置1501中的数据1540以及从存储器装置1501接收数据。存储器模块1500被配置为生成针对从一个或更多个存储器装置1501读取的数据的错误信息。错误接口 1542被配置为发送响应于纠正在从一个或更多个存储器装置1501读取的数据中的错误而生成的错误信息。
[0097]数据接口1536是经由其发送存储在存储器装置1501中的数据的接口,并且是经由其接收将被存储在存储器装置1501中的数据1540的接口。例如,数据接口 1536可以包括缓冲器、驱动电路、端子或用于线的其它电路(诸如数据线、选通线、地址线、使能线、时钟线等)O
[0098]错误接口1538可以是被配置为经过特定总线(诸如SMBus、IPMI或在此描述的其他总线)来通信的接口。在实施例中,错误接口 1538可以是存储器模块1500传送除错误信息之外的其他信息的现有的接口。因此,信息1542不但包括错误信息而且还包括其他信息。
[0099]控制器1541结合到存储器装置1501、数据接口 1536和错误接口 1538。控制器1541被配置为获得错误信息。在实施例中,控制器1541可以从存储器装置1501获得错误信息;然而,在其他实施例中,控制器1541可以被配置为纠正在来自存储器装置1501的数据中的错误并生成错误信息。
[0100]在实施例中,控制器1541可以被配置为通过数据接口1536来传送不可纠正的错。例如,如上所述,可以使用数据选通信号来表示不可纠正的错误。控制器1541可以被配置为响应于检测到不可纠正的错误而修改从数据接口 1536发送的数据选通信号。
[0101]图16是根据实施例的具有SPD或RCD接口的存储器模块的示意图。在本实施例中,存储器模块1600包括与图15的一个或更多个存储器装置1501、数据接口 1536、错误接口1538和控制器1541相似的一个或更多个存储器装置1601、数据接口 1636、错误接口 1638和控制器1641。
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1