首页> 中国专利> 层级ECC单芯片和双芯片CHIPKILL方案

层级ECC单芯片和双芯片CHIPKILL方案

摘要

示例性实施例提供了层级ECC单芯片和双芯片CHIPKILL方案。所述层级错误校正码(ECC)Chipkill系统包括:装置ECC,兼容到多个存储装置的至少一部分中,校正相应的存储装置中的n位存储装置级失效,并当任何存储装置级失效大于n位且超过装置ECC装置的校正能力时发送存储装置失效信号;以及系统级ECC装置,在所述多个存储装置之外,响应于接收存储装置失效信号以基于系统ECC奇偶校验来校正存储装置失效。

著录项

  • 公开/公告号CN105260258A

    专利类型发明专利

  • 公开/公告日2016-01-20

    原文格式PDF

  • 申请/专利权人 三星电子株式会社;

    申请/专利号CN201510405545.5

  • 发明设计人 胡潮红;姜郁成;郑宏忠;

    申请日2015-07-10

  • 分类号G06F11/10(20060101);

  • 代理机构11286 北京铭硕知识产权代理有限公司;

  • 代理人尹淑梅

  • 地址 韩国京畿道水原市

  • 入库时间 2023-12-18 13:47:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-06

    授权

    授权

  • 2017-06-09

    实质审查的生效 IPC(主分类):G06F11/10 申请日:20150710

    实质审查的生效

  • 2016-01-20

    公开

    公开

说明书

本申请要求于2014年7月10日提交的名称为“用于高端服务器或数据中心存储系统应用的层级ECC单芯片和双芯片CHIPKILL方案”的序列号62/022,776的临时专利申请的权益,所述申请通过引用包含于此。

技术领域

示例性实施例涉及一种层级ECC单芯片和双芯片Chipkill系统。

背景技术

因为原始误码率(BER)随着存储技术扩展或在新的/未成熟的存储技术中变得越来越高,所以未来的存储技术需要强大的错误校正码(ECC)管理。标准的错误校正码(ECC)动态随机存取存储器(DRAM)系统提供用于当单个数据位出错时的自动校正以及用于两个数据位出错的保证检测。这种能力常被称为单错误校正/双错误检测(SEC/DED)。

ECC存储需要将某些位用于实际数据而其他位用于ECC。例如,DRAM装置可按照各种数据宽度(每个装置的数据位的数量)来利用。例如,可以使用多个×4(4数据位)、×8或×16DRAM装置来构建在服务器中使用的双列直插存储模块(DIMM)。

不管DRAM装置的宽度如何,发生在该装置中的许多类型的错误仅对一个数据位产生影响。然而,某些错误模式将导致多于一个数据位出错,直至该装置的整个数据宽度。因为仅单个位能够通过标准ECC来校正,所以这些多位失效模式中的任一导致SEC/DED存储系统的致命错误。随着DRAM装置变得更密集,导致多位失效的错误的百分比增大。Chipkill校正是存储系统用于承受DRAM装置内的多位失效的能力,并且被广泛地用作关于高端服务器的商业解决方案以减小系统级BER。

图1是示出基于Reed-Solomon校正码的传统Chipkill方案的示例的框图。示出双列直插存储模块(DIMM)100,每个双列直插存储模块100包括18个存储芯片102(#0至#17),每个存储芯片102提供4位(×4芯片)。为了提供Chipkill校正的存储器,ECC算法所使用的单独的“ECC字”中包括存储芯片102中的一个存储芯片的每个数据位,以提供错误检测和校正。

Chipkill可在锁步模式中利用来自两个DIMM的36(18+18)个4位符号以构造包括128个数据位和16个ECC位的144位ECC字104(两个存储通道作为单个通道来操作,从而每个写入和读取操作使数据字移动两个通道宽度)。这样的Chipkill方案实现单符号校正(SSC)或单芯片错误校正以及双符号检测(DSD)或双芯片错误检测。然而,由于这个方案需要两个DIMM锁步(×144总线宽度),因此与单个DIMM非锁步操作相比,该方案通过使突发长度为8的预取能量减半和加倍来减小列级/库级(rank-level/bank-level)并行度。

发明内容

示例性实施例提供用于层级错误校正码(ECC)系统的方法和系统,所述系统包括:装置ECC,兼容到多个存储装置的至少一部分中,校正相应的存储装置中的n位存储装置级失效,并当任何存储装置级失效大于n位且超过装置ECC装置的校正能力时发送存储装置失效信号;以及系统级ECC装置,在所述多个存储装置之外,响应于接收存储装置失效信号以基于系统ECC奇偶校验来校正存储装置失效。

附图说明

通过下面结合附图对实施例进行的描述,本总发明构思的这些和/或其他特征和效用将变得明显且更容易理解,在附图中:

图1是示出基于Reed-Solomon错误校正码的传统Chipkill方案的示例的框图;

图2是图示地示出用于层级错误校正码(ECC)方案的算法概念的框图;

图3A和图3B是示出根据一个示例性实施例的层级错误校正码(ECC)单芯片Chipkill系统在存储装置级下的架构实例的框图;

图4A和图4B是示出在一个实施例中用于实现层级ECC单芯片Chipkill方案的过程的流程图;以及

图5A和图5B是示出根据一个示例性实施例的层级ECC双芯片Chipkill系统在存储装置级下的架构实例的框图。

具体实施方式

现在将对本总发明构思的实施例详细地做出参考,在附图中示出了本总发明构思的示例,其中,同样的附图标记始终表示同样的元件。下面在参照附图的同时描述实施例以解释本总发明构思。

通过参照下面对实施例和附图的详细描述,可更容易地理解本发明的优点和特征以及实现所述优点和特征的方法。然而,本总发明构思可以以许多不同的形式来实施并且不应被解释为局限于在这里阐述的实施例。相反,提供这些实施例使得本公开将是彻底的和完整的,并且这些实施例将向本领域技术人员充分地传达总发明构思的概念,本总发明构思将仅由权利要求来限定。在附图中,为了清楚起见,夸大了层和区域的厚度。

除非在这里另外指示或根据语境清楚地否定,否则在描述发明的语境(尤其是权利要求的语境)中所使用的术语“一”、“一种(个)(者)”和“所述(该)”以及类似指示语将被解释为既涵盖单数又涵盖复数。除非另外说明,否则术语“包含”、“具有”、“包括”和“含有”将被解释为开放式术语(即,意思是“包括,但不限于”)。

如在这里使用的术语“组件”或“模块”意思是(但不限于)执行特定任务的诸如场可编程门阵列(FPGA)或专用集成电路(ASIC)的软件或硬件组件。组件或模块可被有利地构造为存在于可寻址的存储媒介中,并且被构造为在一个或更多个处理器上执行。因此,组件或模块可以以示例的方式包括:组件(诸如软件组件、面向对象的软件组件、类组件和任务组件)、进程、功能、属性、程序、子程序、程序代码的段、驱动器、固件、微代码、电路、数据、数据库、数据结构、工作台、阵列和变量。针对组件以及组件或模块提供的功能可被结合到更少的组件以及组件或模块中,或者进一步分离成另外的组件以及组件或模块。

除非另外限定,否则在这里使用的所有技术和科学术语具有与本发明所属的技术领域中的普通技术人员通常理解的意思相同的意思。注意的是,除非另外说明,否则在这里提供的任何和所有的示例或者示例性术语的使用仅意图更好地阐明本发明,而不对本发明的范围进行限制。此外,除非另外限定,否则在通用辞典中定义的所有术语不可以被过度地解读。

示例性实施例提供一种层级错误校正码(ECC)单芯片和双芯片Chipkill系统。单芯片和双芯片Chipkill系统校正单芯片失效并使用系统级ECC来调整存储装置ECC特征,并且能够检测任何数量的芯片失效(单芯片Chipkill)、校正双芯片失效并检测任何数量的芯片失效(双芯片Chipkill)。在一个实施例中,向多个存储装置提供校正存储装置级失效的装置ECC。作为对确定存储装置之一中的失效超过了装置ECC的校正能力的响应,发送错误信号以指示将由系统ECC在系统级下校正所述装置级失效。

图2是图示地示出用于层级错误校正码(ECC)方案的算法概念的框图。根据示例实施例,存储装置级ECC200与系统级ECC206结合以产生层级ECC单芯片系统210。在存储装置级ECC200中,存储装置198通常包括兼容的或内部的装置ECC奇偶校验204(或装置ECC)。系统级ECC206通常包括多个存储装置200(标记为201-1、201-2…201-n)以及系统ECC奇偶校验装置208。众所周知,奇偶校验法是检测存储器错误的方法。每个字节具有关联的奇偶校验位,例如,每8个数据位或1个字节具有一个奇偶校验位。奇偶校验位通常被加到一串位的最后并指示在所述串中具有数值一的位的数量是偶数还是奇数。在写入时间设定奇偶校验位,然后在读取时间计算和比较以确定是否任何位已经因存储数据而改变。

根据示例实施例,层级ECC单芯片系统210可通过将多个存储装置198和关联的装置ECC奇偶校验204与系统级ECC206组合来创建。根据示例性实施例的一个方面,层级ECC单芯片Chipkill系统210能够校正存储模块内的单个存储装置失效,并能够检测存储模块内的任何数量的存储装置失效和它们的位置。

如所示的,层级ECC单芯片系统210包括存储装置级209和系统级213。存储装置级209包括多个存储装置202-1至202-n,每个存储装置与相应的装置ECC引擎203-1至203-m以及ECC奇偶校验205-1至205-m关联。系统级213可代表计算机系统(诸如高端服务器或数据中心服务器),该计算机系统包括系统ECC引擎212、系统装置ECC奇偶校验210、管理来自和到达计算机存储器的数据的流动的存储控制器216以及执行指令的处理器218。

装置ECC引擎203-1至203-m(统称为装置ECC引擎203)被兼容到存储装置202的至少一部分中,例如作为ECC奇偶校验205的一部分。装置ECC引擎203校正各存储装置202-1至202-n(统称为存储装置202)中的存储装置级失效。更具体地,装置ECC引擎203可校正n位错误并检测大于n位的错误。当存储装置202之一中的存储装置失效超过相应的装置ECC引擎203的校正能力(即,大于n位错误)时,装置ECC引擎203发送存储装置失效信号214作为错误标记,以通知系统级213在相应的存储装置202中存在无法校正的错误。系统ECC引擎212通过基于系统装置ECC奇偶校验210来校正存储装置级失效而对接收存储装置失效信号214做出响应。在一个实施例中,系统ECC引擎212可位于存储装置202之外,或者在存储控制器216与存储装置202之间,或者在存储控制器216内部。在读取操作期间,系统ECC引擎212在没有任何存储装置失效信号214的情况下将从存储装置202返回的数据传递到存储控制器216。

在一个实施例中,每个存储装置202经由具有附加数据突发(databurst)的现有数据信号线或经由具有额外针(pin)的额外信号线将存储装置失效信号214发送到系统ECC引擎212,使得具体的存储装置失效信号214的接收向系统ECC引擎212自动通知发送的存储装置202的识别码以及因此确定的错误的位置。

如果系统ECC引擎212从存储装置202中的一个或两个存储装置接收存储装置失效信号214,那么系统ECC引擎212使用系统装置ECC奇偶校验210以恢复来自失效的存储装置202的数据,由此实现单芯片/双芯片Chipkill。如果系统ECC引擎212从存储装置202中的多于一个存储装置接收存储装置失效信号214以用于单芯片Chipkill,或者从存储装置202中的多于两个存储装置接收存储装置失效信号214以用于双芯片Chipkill,那么系统ECC引擎212将无法校正错误的信号发送到存储控制器216。

示例的层级ECC单芯片Chipkill系统210可显著地减少传统的Chipkill方案的成本:不需要锁步操作,具有大约50%的节能和双倍的并行度以及由装置ECC和系统ECC提供的可靠性提高倍增因子。还注意当系统级ECC算法被通知错误的位置(与不通知错误的位置的标准ECC算法相反)时,芯片级失效信号214或错误标记的存在使得系统级ECC算法更有效。

图3A和图3B是示出根据一个示例性实施例的层级错误校正码(ECC)单芯片Chipkill系统在存储装置级下的架构实例的框图。

参照图3A,层级ECC单芯片Chipkill系统300的存储装置级包括单个存储模块(例如,双列直插存储模块(DIMM))302。示例的层级ECC单芯片Chipkill系统300示出为在独立模式下操作的×4DRAM,并且能够扩展至×8、×16等装置。在一个实施例中,存储模块302可包括总计十七个芯片:标记为#0至#15的十六个存储装置304,以及包含用于十六个存储装置304的奇偶校验信息的标记为#16的附加行奇偶校验芯片306。行奇偶校验芯片306为图2的ECC奇偶校验205的实例。

图3B是示出在存储模块302中包括存储装置失效信号214信息的行奇偶校验芯片实例的图。通过分别对横跨存储装置304的每行的位求和来计算奇偶校验位。例如,虚线框309图示地示出奇偶校验位“P31”表示用于行31的奇偶校验,可通过对存储装置304的行31中的位求和来计算奇偶校验位“P31”。在一个实施例中,行奇偶校验芯片306向每个存储装置304提供n位校正能力并且可被用于校正单个芯片失效,其中,在一个实施例中,“n”可为1或2。

根据示例实施例,存储装置304可兼容发布存储装置失效信号214的装置ECC引擎203(示出为“-”),以指示相应的存储装置304具有大于n位的错误并且应该执行系统级ECC。

在一个实施例中,存储装置失效信号214可集成到数据总线循环冗余校验(CRC)数据308中,以保护系统级数据总线I/O数据完整性。处于装置级的数据总线CRC数据308(示出为“*******”)对系统级数据总线I/O数据完整性进行保护。众所周知,CRC是通常在网络和存储装置中使用以检测对原始数据的意外更改的错误检测码。进入这些系统的数据的块获得附加的短验证值,如果验证值不匹配,则重复前面的检索计算并采取校正行动以防止数据损毁在一个实施例中,存储装置失效信号214包括1位,CRC数据308包括7位,数据总线的突发长度从8位增大到10位,数据CRC数据308可以针对10(2+8)的总突发长度而选择性地从突发的尾部移动到头部。

图4A和图4B是示出在一个实施例中用于实施层级ECC单芯片Chipkill方案的过程的流程图。图4A是示出存储装置202内的过程的流程图。如果装置的装置ECC引擎203检测到无错误(块400),则包含在存储装置中的数据可被正常地读出并传递到系统ECC引擎212(块402)。当检测出n位或更少的存储装置错误(块404)时,那么装置ECC引擎203使用例如行校验芯片306的ECC奇偶校验来校正错误并将数据传递到系统ECC引擎212(块406)。例如,假定芯片#0失效并发送它的存储装置失效信号,行奇偶校验芯片306用于恢复芯片#0数据。当检测出多于n位错误(块408)时,那么装置ECC引擎203在数据总线突发期间发送存储装置失效信号214(块410)。

图4B是示出由系统ECC装置212执行的过程的流程图。首先确定是否接收到任何存储装置失效信号(块412)。如果没有接收到存储装置失效信号,那么系统ECC装置212将从存储装置接收的数据传递到存储控制器216(块414)。响应于“系统ECC引擎212接收用于单芯片Chipkill的一个存储装置失效信号214或用于双芯片Chipkill的两个存储装置失效信号以及基于存储装置失效信号确定哪个存储装置失效(块416)”,系统ECC引擎212使用系统装置ECC奇偶校验210来恢复失效的存储装置的数据(块418)。

响应于系统ECC引擎212接收多于一个存储装置失效信号(块420),系统ECC引擎212基于存储装置失效信号来确定哪个存储装置失效以及失效的存储装置的数量,并且将与之有关的无法校正错误的信号发送到存储控制器216(块422)。

图5A和图5B是示出根据一个示例性实施例的层级ECC双芯片Chipkill系统在存储装置级下的架构实例的框图,其中,与图3A和图3B相同的组件具有同样的附图标记。层级ECC双芯片Chipkill系统500将上述的单芯片Chipkill系统的单芯片校正扩展成在包括存储模块502的存储装置504中提供双芯片校正加之用于检测任何数量的失效的能力。

除了在层级ECC单芯片Chipkill系统中的标记为#0至#15的十六个存储装置304以及标记为#16的行奇偶校验芯片306之外,层级ECC双芯片Chipkill系统500添加第二附加存储装置#17作为包含十六个存储装置504的奇偶校验信息的横跨芯片对角线的奇偶校验芯片506。对角线奇偶校验芯片506用于执行对角线奇偶校验的检验,并且可使用RAID6双奇偶校验以利用存储装置失效信号214来校正双芯片失效。

图5B是示出存储模块502中的包括存储装置失效信号214信息的RAID6双奇偶校验的检验的实例的图。对角线奇偶校验芯片506的装置#17中的“Dy”代表存储装置数,其中,“y”等于0至16。因此,对角线奇偶校验芯片506包含存储装置504中位于“y”位置处的所有位的奇偶校验。行校验芯片306的装置#16中的“Px”代表行“x”中的能够分配到装置#0至装置#16(例如,反向对角线)中的奇偶校验。

在操作中,当检测出n个或更少的存储装置级错误时,那么发生错误的存储装置使用例如行奇偶校验芯片306的ECC奇偶校验来校正错误。

当存在两个存储装置级失效,并且通过相应的存储装置来发布两个不同的存储装置失效信号214时,系统ECC引擎212交替地使用横跨芯片对角线的奇偶校验芯片506和横跨芯片行的奇偶校验芯片306来逐个位地恢复失效的存储装置(32次循环需要2*16位)。对角线奇偶校验芯片506中的D0检查所有存储装置504中的所有“0”位置。在示出的示例中,装置#0中,“0”处于第一位置;装置#1中,“0”不存在;装置#2中,“0”在最后位置。

作为示例,假定存储装置#0和#3两者都具有无法校正的错误,并且发布相应的存储装置失效信号214。在恢复期间,系统ECC引擎212仅使用D2来校正装置#0中的“2”位置,因为对于装置#3而言,不存在针对对角线D2的“2”,所以仅有一个错误。然后,系统ECC引擎212使用P2在装置#3中校正“5”;使用D5在#0中校正装置“5”,并且使用P5在装置#3中校正“8”;然后使用D8在#0中校正“8”,并且使用P8在#3中校正“11”等等,直到2*16位被校正。

响应于系统ECC引擎212接收多于两个存储装置失效信号214,系统ECC引擎212基于存储装置失效信号的硬连线(hardwiring)来确定哪些存储装置失效以及失效的存储装置的数量。

示例性实施例的层级错误校正码(ECC)单芯片和双芯片Chipkill系统通过使用系统ECC调整存储装置ECC特征来校正单芯片失效并检测任何数量的芯片失效(单芯片Chipkill实施例),以及校正双芯片失效并检测任何数量的芯片失效(双芯片Chipkill实施例)。根据示例性实施例,可以使用附加奇偶校验芯片来校正相应的附加存储装置中的错误。

已经公开了层级错误校正码(ECC)单芯片和双芯片Chipkill系统。根据示出的实施例已经描述了本发明,可存在对于实施例的变化,并且任何变化将在本发明的精神和范围内。例如,可使用硬件、软件、包含程序指令的计算机可读介质或它们的组合来实现示例性实施例。根据本发明写出的软件将要么被存储在诸如存储器、硬盘或CD/DVD-ROM的计算机可读介质的某些格式中,要么被处理器执行。因此,本领域技术人员可以在不脱离权利要求的精神和范围的情况下作出许多修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号