存储器和操作该存储器的方法与流程

文档序号:17831928发布日期:2019-06-05 23:08阅读:203来源:国知局
存储器和操作该存储器的方法与流程

本申请要求于2017年11月29日向韩国知识产权局提交的申请号为10-2017-0161574的韩国申请的优先权,其全部内容通过引用并入本文。

各个实施例总体涉及一种存储器技术,更特别地,涉及错误校正方法和芯片猎杀(chipkill)检测方法。



背景技术:

存储器被配置成存储数据并输出所存储的数据。待存储在存储器中的数据被存储在存储器单元中,并且存储器由多个存储器单元的集合构成。

因为存储器由多个存储器单元构成,所以存储器可包括相对少量的失败存储器单元,或者可包括相对大量的失败存储器单元。

而且,即使存储器单元正常,错误数据也可能被存储在存储器单元中。

正在开发技术,以允许即使由于许多不稳定因素而在存储器中存储了错误数据或者存在失败存储器单元的情况下,存储器也能正常存储和输出数据。



技术实现要素:

在实施例中,可提供一种包括多个芯片的存储器的错误校正方法和芯片猎杀检测方法。该方法可包括第一数据错误检测步骤,检测从多个芯片输出的数据中是否存在错误。该方法可包括随机错误校正步骤,当在第一数据错误检测步骤中检测到存在错误时,校正数据中出现的错误。该方法可包括芯片猎杀检测步骤,在随机错误校正步骤之后仍出现错误时确定已经发生了芯片猎杀错误,并且通过将多个芯片中的一个芯片假设为已经发生了芯片猎杀错误的芯片来校正错误,从而检测已经发生了芯片猎杀错误的芯片。

附图说明

图1是示出根据实施例的存储器的示例代表的配置图。

图2是根据实施例的帮助说明错误校正方法和芯片猎杀错误检测方法的流程图的示例代表。

图3是帮助说明图2的芯片猎杀错误检测方法之后的存储器错误校正方法的流程图的示例代表。

图4是帮助说明图2的芯片猎杀错误检测方法之后的芯片修复方法的流程图的示例的示例代表。

图5示出了采用上面关于图1至图4讨论的各个实施例的存储器和/或方法的系统的示例代表的框图。

具体实施方式

在下文中,将通过实施例的各个示例参照附图来描述错误校正方法和芯片猎杀检测方法。

参照图1,根据实施例的存储器可包括例如第一至第四芯片100、200、300和400的多个芯片以及控制器500。例如,在实施例中,控制器500可利用软件、硬件或其任意组合来实施。例如,在实施例中,存储器可利用软件、硬件或其任意组合来实施。例如,在实施例中,芯片可利用软件、硬件或其任意组合来实施。

第一至第四芯片100、200、300和400与控制器500电联接,并且被配置成传输和接收数据。为了向控制器500传输数据和从控制器500接收数据、存储数据和输出存储的数据,第一至第四芯片100、200、300和400中的每一个不仅传输和接收数据,还传输和接收诸如命令、地址和时钟的控制信号。

向第一至第四芯片100、200、300和400传输数据和从第一至第四芯片100、200、300和400接收数据的控制器500可被配置成当传输和接收的数据中出现错误时,通过使用错误校正码来恢复数据。错误校正码可包括博斯-雷查德胡里-霍昆格母(bose,ray-chaudhuri,hocquenghem,bch)码和里德-所罗门(reed-solomon,rs)码。而且,为了执行数据错误检查,可执行crc(循环冗余检查)或者可执行奇偶校验。例如,控制器500可包括ecc(错误校正码)电路510和mcu(微控制器单元)电路520。ecc电路510可被配制成当在向第一至第四芯片100、200、300和400传输和从第一至第四芯片100、200、300和400接收的数据中出现错误时,使用错误校正码来恢复数据,mcu电路520可向ecc电路510传输用于恢复数据的指令。

参照图2,根据实施例的存储器错误校正方法和芯片猎杀错误检测方法可包括第一数据错误检测步骤s100,包括步骤s200和s300的随机错误校正步骤,包括步骤s400、s500、s600和s700的芯片猎杀检测步骤以及包括步骤s800的芯片猎杀检测结果输出步骤。可由控制器500执行图2的步骤s100至s800。例如,当未发现失败芯片(芯片猎杀)时(当fail_chip_find=0时),mcu电路520可指示ecc电路510执行步骤s100至s800。也就是说,失败芯片可表示芯片猎杀。

第一数据错误检测步骤s100是检测从第一至第四芯片100、200、300和400读取的数据中是否存在错误的步骤。第一数据错误检测步骤s100可通过使用crc来执行,可通过使用错误校正码(例如,bch码)来执行,并且可通过使用采用偶数奇偶校验方案的和奇偶校验方案来执行。和奇偶校验方案可以是以下错误校正方案:其中根据输入到第一至第四芯片100、200、300和400中的每一个的并行类型(paralleltype)数据的位之中的具有较高逻辑值(即,“1”)的位的数量来确定和存储奇偶校验位的电平(level),并且当执行错误校正时,根据奇偶校验位的值来校正从第一至第四芯片100、200、300和400中的每一个中输出的数据中的错误。而在根据实施例的第一数据错误检测步骤s100中,为了精确的错误检测,在示例中可采用通过使用crc方案、bch解码方案和和奇偶校验方案的所有三种方案来检测错误的方法。然而,在实施例中,例如,可通过单独使用每一个方案或者通过组合三个方案中的至少两个方案来检测错误。

在第一数据错误检测步骤s100中,如果使用crc方案不存在错误(即,syndrome_crc=0),如果使用采用bch解码方案的校验不存在错误(即,syndrome_bch=0),并且如果使用采用和奇偶校验方案的校验不存在错误(即,syndrome_sum=0),则在第一至第四芯片100、200、300和400中不存在待校正的错误,因此,可结束根据本实施例的存储器错误校正方法end。

然而,如果即使在第一数据错误检测步骤s100中存在一个错误,则进入包括步骤s200和s300的随机错误校正步骤。

包括步骤s200和s300的随机错误校正步骤可包括第一错误校正步骤s200和第二数据错误检测步骤s300。

第一错误校正步骤s200可包括使用bch码的bch解码方案。在第一错误校正步骤s200中,执行以下操作:针对从第一至第四芯片100、200、300和400读取的数据,通过使用bch码来校正错误。

可以与第一数据错误检测步骤s100相同的方式执行第二数据错误检测步骤s300,该第二数据错误检测步骤s300是用于检测在第一错误校正步骤s200中是否正确地校正了错误的步骤。

如果在第一错误校正步骤s200中校正了数据中的所有错误,并且因为在第二数据错误检测步骤s300中未检测到错误(即,syndrome_crc=0、syndrome_bch=0且syndrom_sum=0),则可结束根据实施例的存储器错误校正方法end。

如果在第一错误校正步骤s200中未能正确地校正数据中的错误,则可在第二数据错误检测步骤s300中检测到错误。

如果在第二数据错误检测步骤s300中检测到错误,则执行包括步骤s400、s500、s600和s700的芯片猎杀检测步骤。也就是说,在根据实施例的芯片猎杀错误检测方法中,当未正确地校正从第一至第四芯片100、200、300和400输出的数据时,确定了在第一至第四芯片100、200、300和400之中的一个芯片中已经发生了芯片猎杀错误。

包括步骤s400、s500、s600和s700的芯片猎杀检测步骤可包括第二-第一错误校正步骤s400、第二-第二错误校正步骤s500、第三数据错误检测步骤s600和芯片猎杀信息存储步骤s700。

第二-第一错误校正步骤s400是通过假设第一至第四芯片100、200、300和400之中的一个芯片具有错误来校正错误的步骤。例如,在实施例中,将描述通过假设第一芯片100具有错误来校正错误的步骤。

例如,第二-第一错误校正步骤s400可以是以下步骤:在假设在第一芯片100中已经发生了芯片猎杀错误之后,针对从第一芯片100读取的数据,通过使用和奇偶校验方案来校正错误。相比于仅通过使用bch方案(随机错误校正)来校正错误校正,通过使用和奇偶校验方案和bch方案来校正错误(校正包括芯片猎杀错误的数据)可校正更多的数据位。因此,可在第二-第一错误校正步骤s400之后进入第二-第二错误校正步骤s500。

第二-第二错误校正步骤s500可类似于以下步骤:再次使用bch方案对在第二-第一错误校正步骤s400中校正的数据进行校正。例如,第二-第二错误校正步骤s500可以是通过使用bch码对在第二-第一错误校正步骤s400中校正的数据进行解码来校正错误的步骤。

第三数据错误检测步骤s600可用作以下步骤:检测在第二-第二错误校正步骤s500中是否已经正确地校正错误,并且可以与第一和第二数据错误检测步骤s100和s300相同的方式来执行。

如果正确地校正了错误,则可在第三数据错误检测步骤s600中确定在第一芯片100中已经发生了芯片猎杀错误。如果在第三数据错误检测步骤s600中确定了在第一芯片100中已经发生了芯片猎杀错误,则执行芯片猎杀信息存储步骤s700。

芯片猎杀信息存储步骤s700可包括将在第一芯片100中已经发生了芯片猎杀错误的信息存储在包括ecc计算电路的装置,例如控制器500中的步骤。

芯片猎杀检测结果输出步骤s800可包括将在第一芯片100中已经发生了芯片猎杀错误的信息输出到控制器500的步骤。

如果完成了芯片猎杀检测结果输出步骤s800,则可结束根据实施例的存储器错误校正方法和芯片猎杀检测方法。

如果未正确地校正错误,则在第三数据错误检测步骤s600中确定在第一芯片100中未发生芯片猎杀错误,并且针对第二芯片200再次执行第二-第一错误校正步骤s400和第二-第二错误校正步骤s500。

此后,如果确定了在第二芯片200中已经发生了芯片猎杀错误,则执行芯片猎杀信息存储步骤s700和芯片猎杀检测结果输出步骤s800。如果确定了在第二芯片200中未发生芯片猎杀错误,则针对第三芯片300再次执行第二-第一错误校正步骤s400和第二-第二错误校正步骤s500。可对所有芯片中的每一个执行这样的操作,以确定已经发生了芯片猎杀错误的芯片,以存储芯片猎杀错误的芯片猎杀信息并输出与芯片猎杀错误相关的芯片猎杀检测结果。

在完成芯片猎杀检测结果输出步骤s800之后,通过如图3所示的错误校正方法进行校正,从第一至第四芯片100、200、300和400输出的数据可被输出。可由控制器500执行图3的步骤s811至s813。例如,当发现失败芯片(芯片猎杀)时(当fail_chip_find=1时),mcu电路520可指示ecc电路510执行步骤s811至s813。例如,将在假设在第一芯片100中已经发生芯片猎杀错误的情况下进行描述。

图3所示的错误校正方法可包括第三-第一错误校正步骤s811、第四数据错误检测步骤s812和第三-第二错误校正步骤s813。

第三-第一错误校正步骤s811是针对从已经发生了芯片猎杀错误的芯片读取的数据和从其它正常芯片读取的数据,通过使用和奇偶校验方案来校正数据的错误的步骤。

第四数据错误检测步骤s812是检测在第三-第一错误校正步骤s811中校正的数据中是否存在错误的步骤。

如果在第三-第一错误校正步骤s811中正确地校正了数据,则结束图3所示的错误校正方法。然而,如果确定在第三-第一错误校正步骤s811中未正确地校正数据,则通过使用bch解码方案来执行校正错误的第三-第二错误校正步骤s813,然后,可结束图3所示的错误校正方法。

在结束图2所示的错误校正方法和芯片猎杀错误检测方法之后,可如图4所示针对已经发生了芯片猎杀错误的芯片执行芯片修复方法。

图4所示的芯片修复方法是将所有数据从已经发生了芯片猎杀错误的芯片移动到备用芯片或修复芯片的过程。例如,在实施例中,备用芯片或修复芯片可以是不同于已经发生了芯片猎杀错误且已经被芯片猎杀错误检测方法发现的芯片的芯片。可由控制器500执行图4的步骤s821至s827。例如,当执行芯片备用(chip-sparing)操作时,mcu电路520可指示ecc电路510来执行步骤s821至s827。

芯片修复方法可包括第一读取步骤s821、第四错误校正步骤s822、数据重排步骤s823、写入步骤s824、地址检查步骤s825、第二读取步骤s826和芯片停用步骤s827。

第一读取步骤s821是从已经发生了芯片错误的芯片的第一地址读取数据的步骤。

第四错误校正步骤s822是校正在第一读取步骤s821中读取的数据中的错误的步骤。

数据重排步骤s823是将在第四错误校正步骤s822中校正的数据存储在与存储原始数据的位置不同的位置(已经发生了芯片猎杀错误的相同的芯片或未发生芯片猎杀错误的另一芯片)的步骤。

写入步骤s824是将在数据重排步骤s823中存储在不同位置中的数据存储在备用芯片或修复芯片中的步骤。

地址检查步骤s825是检查在写入步骤s824中存储的数据的地址是否是已经发生了芯片猎杀错误的芯片的最终地址或最后地址的步骤。

如果在地址检查步骤s825中确定了该地址不是最终地址并且存在其它地址,则可执行第二读取步骤s826,即读取与写入步骤s824中存储的数据的地址,即在第一读取步骤s821中读取的数据的地址的下一地址相对应的数据。在执行第二读取步骤s826之后,重复地执行第四错误校正步骤s822、数据重排步骤s823、写入步骤s824和地址检查步骤s825,直到到达最终地址或最后地址。在实施例中,例如,在执行第二读取步骤s826之后,重复地执行第四错误校正步骤s822、数据重排步骤s823、写入步骤s824和地址检查步骤s825,直到来自已经发生了芯片猎杀错误的芯片中的所有数据都被移动到备用芯片或修复芯片。例如,在实施例中,可基于在地址检查步骤s825中是否检查到最终地址或最后地址,来确定来自已经发生了芯片猎杀错误的芯片中的所有数据是否都被移动到备用芯片或修复芯片。

如果到达最终地址或最后地址,则确定已经发生了芯片猎杀错误的芯片的所有数据已经被正确地移动到备用芯片或修复芯片,并且执行停用已经发生了芯片猎杀错误的芯片的芯片停用步骤s827。

从以上描述显而易见的是,在根据实施例的存储器错误校正方法中,执行了通过使用bch方案来校正所有芯片的数据的操作,并且当正确地校正了数据时,结束存储器错误校正方法。然而,如果通过使用bch方案未校正所有芯片的数据,则通过使用和奇偶校验方案和bch方案来轮流地对一个芯片执行校正数据的错误的操作,以找到已经发生了芯片猎杀错误的芯片,并且利用另一芯片替换所找到的芯片。而且,可利用备用芯片或修复芯片来替换比其它芯片发生更多错误的芯片,并且可执行将已经发生更多错误的芯片的数据移动到备用芯片或修复芯片的操作。

如上所述的存储器及其方法(参见图1至图4)对其它存储器装置、处理器和计算机系统的设计特别有益。例如,参照图5,示出了根据各个实施例的采用存储器和/或其方法的系统的框图并且通常由附图标记1000表示。系统1000可包括一个或多个处理器(即,processor),或者包括例如但不限于,中央处理单元(“cpu”)1100。处理器(即,cpu)1100可单独使用或与其它处理器(即,cpu)组合使用。虽然处理器(即,cpu)1100将主要以单数形式提及,但本领域技术人员将理解的是,可实施具有任意数量的物理或逻辑处理器(即,cpu)的系统1000。

芯片组1150可以可操作地联接到处理器(即,cpu)1100。芯片组1150是处理器(即,cpu)1100和系统1000的其它部件之间的信号通信路径。系统1000的其它部件可包括存储器控制器1200、输入/输出(“i/o”)总线1250和磁盘驱动器控制器1300。根据系统1000的配置,可通过芯片组1150传输多种不同信号中的任意一种,并且本领域技术人员将理解的是,可在不改变系统1000的基本特性的情况下,容易地调整信号在整个系统1000中的路由。

如上所述,存储器控制器1200可以可操作地联接到芯片组1150。存储器控制器1200可包括至少一个如以上参照图1至图4所讨论的存储器和/或方法。因此,存储器控制器1200可通过芯片组1150接收从处理器(即,cpu)1100提供的请求。在可选实施例中,存储器控制器1200可被集成到芯片组1150中。存储器控制器1200可以可操作地联接到一个或多个存储器装置1350。在实施例中,存储器装置1350可包括至少一个如以上关于图1至图4所讨论的存储器和/或方法,存储器装置1350可包括用于限定多个存储器单元的多个字线和多个位线。存储器装置1350可以是多种工业标准存储器类型中的任意一种,包括但不限于单内联存储器模块(“simm”)和双内联存储器模块(“dimm”)。进一步地,存储器装置1350可通过存储指令和数据两者来便于安全移除外部数据存储装置。

芯片组1150也可联接到i/o总线1250。i/o总线1250可用作信号从芯片组1150到i/o装置1410、1420和1430的通信路径。i/o装置1410、1420和1430可包括,例如但不限于,鼠标1410、视频显示器1420或键盘1430。i/o总线1250可采用多种通信协议中的任意一种来与i/o装置1410、1420和1430通信。在实施例中,i/o总线1250可被集成到芯片组1150中。

磁盘驱动器控制器1300可以可操作地联接到芯片组1150。磁盘驱动器控制器1300可用作芯片组1150与一个内部磁盘驱动器1450或多于一个内部磁盘驱动器1450之间的通信路径。内部磁盘驱动器1450可通过存储指令和数据两者来便于断开外部数据存储装置。磁盘驱动器控制器1300和内部磁盘驱动器1450可使用几乎任意类型的通信协议来彼此通信或与芯片组1150通信,通信协议类型包括例如但不限于,上述与i/o总线1250相关的所有通信协议。

重要的是应当注意,以上关于图5描述的系统1000仅仅是包括以上关于图1至图4所讨论的存储器和/或采用以上关于图1至图4所讨论的方法的系统的一个示例。在可选实施例中,例如但不限于,诸如移动电话或数码相机,这些部件可不同于图5所示的实施例。

尽管上面已经描述了各个实施例,但是本领域技术人员将理解,所描述的实施例仅为示例。因此,不应基于所述的实施例而限制本文所述的存储器错误校正方法、芯片猎杀错误检测方法、错误校正方法以及芯片修复方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1