校正存储器中的错误的方法技术

技术编号:18426090 阅读:65 留言:0更新日期:2018-07-12 01:56
在计算机存储器中执行存储器重复数据删除和单错校正双错检测(SEC‑DED)的方法,所述方法包括:从存储器芯片的阵列中读取数据;基于所述数据计算至少一个散列;针对物理行ID散列中的至少一个并针对二次散列来检查一个或多个散列;确定是否检测到错误;当检测到错误时,通过一次一个地改变存储器芯片的阵列中的每一位来校正所述数据,直到没有检测到错误;其中在改变所述每一位之间,基于所改变的数据计算至少一个散列,并且将新数据的一个或多个散列与物理行ID散列中的一个或多个进行比较且与二次散列进行比较,并再次确定是否检测到错误;以及在没有检测到错误时,输出经校正的数据。

Correction of errors in memory

In computer memory, a method of executing memory duplication of data deleting and single error correction double error detection (SEC DED) is performed, the method includes: reading data from an array of memory chips; calculating at least one hash based on the data; checking one or less in a physical row of ID hash and checking one or for two hash. A plurality of hash; determines whether a error is detected; when a error is detected, the data is corrected by changing each bit in the array of memory chips one time and one time, until the error is not detected; among them, at least one hash is calculated based on the changed data between each of the changed bits, and new data is used. One or more hash is compared with one or more of the physical row ID hashes and is compared with the two hash, and again determines whether the error is detected; and the corrected data is output when no error is detected.

【技术实现步骤摘要】
校正存储器中的错误的方法
根据本专利技术的实施例中的一个或多个方面总体涉及存储器中的错误校正。
技术介绍
双数据速率同步动态随机存取存储器(DDRSDRAM)是计算机中使用的一种类型的存储器集成电路(IC)。DDRSDRAM能够通过使用电气数据和时钟信号的时序控制来实现更快的传送速率,并且能够在时钟信号的上升沿和下降沿上传送数据,由此与使用相同时钟频率的单数据速率SDRAM接口相比有效地使数据总线带宽加倍,从而实现几乎双倍的带宽。不同代的DRAM能够在数据存储期间使用错误校正码(ECC)来检测及有时校正常见类型的数据损坏。通过使用奇偶校验,ECC存储器不受单比特错误的影响。在DRAM系统中,通过将表示存储在存储器中(例如,存储在DRAM模块的奇偶校验装置或ECC芯片中)的数据(例如,一个字节的数据)的奇偶校验(奇数或偶数)的冗余奇偶校验位、通过独立地计算奇偶校验,以及通过将存储的奇偶校验与计算的奇偶校验比较,以检测是否已经发生数据错误/存储器错误。因此,为确保从DRAM模块(例如,双列直插存储器模块(DIMM))取回的数据(其可对应于数据字或数据符号)与写入到DRAM模块的数据相同,ECC能够校正当数据的一个或多个位翻转到错误状态时出现的错误。也就是说,通过使用ECC冗余,ECC芯片能够进行单错校正双错检测(SEC-DED),这意味着ECC芯片能够检测在单个突发中发生的两个错误的存在,并且也能够在隔离中出现时校正单个错误位。也就是说,如果一个数据芯片损坏或丢失,则通过使用其余数据芯片的数据和ECC芯片的ECC数据,能够重建损坏的或缺失的数据芯片中的数据。因此,在标准ECC中,SEC-DED能够校正单比特错误,并且能够在64位数据路径中检测到两个错误。但是,常规的SEC-DED使用额外芯片来存储ECC位,并且通过使用汉明码在存储控制器执行错误检测和错误校正。此外,DRAM系统可具有芯片删除机制(例如,单芯片删除和双芯片删除),以用于擦除或停用非功能性的数据芯片。DDR4的各种芯片删除机制使用每一存储器通道的两个或更多ECC装置/芯片来检测、定位和擦除非功能性的芯片。因此,在标准ECC中,芯片删除机制能够校正整个芯片失效(例如,4位芯片)。但是,常规的芯片删除机制使用SSCDCD用于单芯片故障(或)使用双芯片备用以用于双芯片故障,其中较旧型号使用(128/144)方案,而相对较新型号使用(64/72)方案。例如,标准DDR4具有8n的预取长度、8的突发长度(即,八个突发/存储器事务)以及64位的存储器通道宽度,其中n是相应系统架构中使用的数据的接口宽度的位数(例如,如果接口宽度是4位,则相应DDR4系统的预取长度是32位)。因此,DDR4将对于每个存储器事务传输512位。为继续增大DDR接口带宽,新的DDR接口可增大预取长度。这一新的DDR接口可具有是当前DDR4接口的预取长度的两倍的16n的预取长度。因此,新的DDR接口将对于每个存储器事务,传送两倍于DDR4系统传送的数据量。这一新的DDR接口也可以具有16的突发长度(即,每一单独存储器事务中16个数据突发)和每一存储器通道32位的存储器通道宽度,并且将因此每一存储器事务每一存储器通道传输512位。但是,这一DDR接口具有每一DIMM两个存储器通道,每个DIMM是具有位于电路板上的多个DRAM芯片的模块,其包括有芯片插脚以能够连接到计算机主板。DDRDIMM的两个存储器通道独立于彼此有效工作。尽管具有比DDR4更窄的存储器通道,但新的DDR接口具有每一存储器通道32位的数据宽度,其中八个数据装置(例如,4位数据芯片)被配置成为每个存储器通道存储和传送数据。这一新的DDR接口还具有每一存储器通道4位的ECC宽度,其中每个存储器通道设置一个4位ECC芯片。因此,为补偿DDR4的一半存储器通道宽度,这一新的DDR接口具有两倍于DDR4的突发长度。因为这一新的DDR接口具有两个存储器通道,每个存储器通道具有专用于存储数据的八个4位数据芯片,所以每个突发将有总计64位的存储器数据。此外,不同于每一存储器通道具有两个ECC芯片的DDR4,这一新的DDR接口可具有每一存储器通道的单个ECC芯片,或者甚至具有每一DIMM的单个ECC芯片,以保护用于存储数据的十六个数据芯片。这一新的DDR接口因而与DDR4相比能够具有减少的ECC额外开销。因此,如果新的DDR接口每一存储器通道使用一个ECC芯片,则对于每个突发,将有对应于两个4位ECC芯片的八位ECC数据,DIMM的两个存储器通道中的每一个中具有一个ECC芯片。因此,这样的新DDR接口对于每个突发将传输72位数据。现代服务器需要鲁棒的错误校正和错误检测以确保高的RAS特性。但是,这带来了附加装置的额外开销和控制器复杂性。因此,使用当前的DDR4技术可能难以保持DDR可靠性、可用性和可服务性(RAS),因为系统ECC额外开销随着数据宽度的相应减小而增加。此外,由于每一DIMM的存储器通道数增大,芯片删除技术需要附加的ECC额外开销。另外,随着DRAM系统规模扩大,需要更鲁棒的可靠性方法来保证端到端的数据完整性。因此,将会有用的是:提供新颖的错误校正和数据恢复方法,以及提供一种DRAMDIMM,其能够在不需要存储控制器的帮助下在内部校正一些类型的存储器错误、并且能够指导存储控制器以帮助存储器校正DRAM无法在内部校正的其它类型的错误。
技术介绍
中公开的上述信息只是为了加深对本专利技术的背景的理解,因此它可能包含不构成现有技术的信息。
技术实现思路
本专利技术实施例提供一种新颖的基础错误校正码(ECC)架构,其能够使用DRAM资源在动态随机存取存储器(DRAM)内提供就地错误检测和错误校正。与先前的SEC-DED和芯片删除(chipkill)实现不同,所述实施例的架构将ECC复杂性分配到DRAM模块水平。通过重新使用DRAM内重复数据删除逻辑,可以提供使用散列函数和二次散列功能的数据完整性检验。也就是说,同样的逻辑可重复用于重复数据删除和错误校正。另外,通过使用基于汉明距离的方案,所描述的实施例的算法还以高可靠性来校正错误。根据一个实施例,提供了一种在计算机存储器中执行存储器重复数据删除和单错校正双错检测(SEC-DED)的方法,所述方法包括从存储器芯片的阵列读取数据;基于所述数据计算至少一个散列;针对物理行ID散列中的至少一个并针对二次散列来检查一个或多个散列;确定是否检测到错误;当检测到错误时,通过一次一个地改变存储器芯片的阵列中的每一位来校正数据直至没有检测到错误,其中在改变所述每一位之间,基于所改变的数据计算至少一个散列,并且将新数据的一个或多个散列与物理行ID散列中的一个或多个进行比较且与二次散列进行比较,并再次确定是否检测到错误;以及在没有检测到错误时,输出经校正的数据。所述数据可以包括八个字节。所述存储器芯片的阵列可以包括4位存储器芯片。所述存储器芯片的阵列可以包括十六个存储器芯片。所述阵列中的总位数可以是64。所述物理行ID散列和所述二次散列可以包括16位散列。根据一个实施例,提供了在计算机存储器中执行存储器重复数据删除和单芯片删除机制的方法,所述方法包括:从存储器芯片的阵列中读取数据;基于所述数据计算至少一个散本文档来自技高网
...

【技术保护点】
1.一种在计算机存储器中执行存储器重复数据删除和单错校正双错检测(SEC‑DED)的方法,所述方法包括:从存储器芯片的阵列中读取数据;基于所述数据计算至少一个散列;针对物理行ID散列中的至少一个并针对二次散列来检查一个或多个散列;确定是否检测到错误;当检测到错误时,通过一次一个地改变所述存储器芯片的阵列中的每一位来校正所述数据以产生新数据,直到没有检测到错误;其中在改变所述每一位之间,基于所改变的数据计算至少一个散列,并且将所述新数据的一个或多个散列与物理行ID散列中的一个或多个进行比较且与二次散列进行比较,并再次确定是否检测到错误;以及在没有检测到错误时,输出经校正的数据。

【技术特征摘要】
2017.01.04 US 62/442,319;2017.03.27 US 15/470,6571.一种在计算机存储器中执行存储器重复数据删除和单错校正双错检测(SEC-DED)的方法,所述方法包括:从存储器芯片的阵列中读取数据;基于所述数据计算至少一个散列;针对物理行ID散列中的至少一个并针对二次散列来检查一个或多个散列;确定是否检测到错误;当检测到错误时,通过一次一个地改变所述存储器芯片的阵列中的每一位来校正所述数据以产生新数据,直到没有检测到错误;其中在改变所述每一位之间,基于所改变的数据计算至少一个散列,并且将所述新数据的一个或多个散列与物理行ID散列中的一个或多个进行比较且与二次散列进行比较,并再次确定是否检测到错误;以及在没有检测到错误时,输出经校正的数据。2.根据权利要求1所述的方法,其中所述数据包括八个字节。3.根据权利要求1所述的方法,其中所述存储器芯片的阵列包括4位存储器芯片。4.根据权利要求1所述的方法,其中所述存储器芯片的阵列包括十六个存储器芯片。5.根据权利要求1所述的方法,其中所述阵列中的总位数是64。6.根据权利要求1所述的方法,其中所述物理行ID散列和所述二次散列包括16位散列。7.一种在计算机存储器中执行存储器重复数据删除和单芯片删除机制的方法,所述方法包括:从存储器芯片的阵列中读取数据;基于所述数据计算至少一个散列;针对物理行ID散列...

【专利技术属性】
技术研发人员:KT马拉迪郑宏忠
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国,KR

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1