CN106205729B - 促进数据存储系统中的错误校正的方法及其数据存储系统 - Google Patents

促进数据存储系统中的错误校正的方法及其数据存储系统 Download PDF

Info

Publication number
CN106205729B
CN106205729B CN201510393372.XA CN201510393372A CN106205729B CN 106205729 B CN106205729 B CN 106205729B CN 201510393372 A CN201510393372 A CN 201510393372A CN 106205729 B CN106205729 B CN 106205729B
Authority
CN
China
Prior art keywords
error correction
group
state
data
correction bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510393372.XA
Other languages
English (en)
Other versions
CN106205729A (zh
Inventor
泰沙尔尼尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Winbond Electronics Corp filed Critical Winbond Electronics Corp
Publication of CN106205729A publication Critical patent/CN106205729A/zh
Application granted granted Critical
Publication of CN106205729B publication Critical patent/CN106205729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明提供一种促进数据存储系统中的错误校正的方法及其数据存储系统,促进数据存储系统中的错误校正的方法,包括接收具有一个或多个行的数据存储系统;通过将位从第一状态变化到第二状态在数据存储系统中将数据写入字中;在第一组错误校正位中形成用于字的错误校正码;接收请求以通过将字的一个或多个额外位从第一状态变化到第二状态来更新字;计算用于更新过的字的新错误校正码;视情况确定新错误校正码是否仅需要将第一组错误校正位的位从第一状态变化到第二状态,如果是,更新第一组错误校正位;否则使用第二组错误校正位和/或标志位,以减少因错误校正码而重写字的需要。

Description

促进数据存储系统中的错误校正的方法及其数据存储系统
技术领域
本发明大体上涉及在闪存装置中实施错误校正码(error correction code,ECC)以增加存储器装置的可靠性。
背景技术
快闪存储器装置是电子非易失性计算机存储媒体,其允许读取存储数据、写入新数据以及擦除存储数据。近年来,由于大型存储器尺寸和高重写速度的压倒性优势,快闪存储器在非易失性存储器市场中发挥了主要作用。快闪存储器应用广泛,例如,在USB驱动器中用于个人信息存储,或者嵌入在信用卡或礼品卡中以允许金融支付或交易。总体而言,快闪存储器尤其用于数据很少变化但是读取多次的应用,这是因为它们读取比写入更快。
通常,两种类型的技术用于快闪存储器:“与非”和“或非”。“与非”快闪存储器通常特征在于具有位的长的行并且它们是一次写入一行的。即使为了改变单个位,也必须将整个行读取到缓冲器上、进行修正并且随后写回。相比之下,“或非”快闪存储器技术允许将值“0”写入到存储装置中的任何物理位地址,并且当擦除包含多个位的区段(例如,一个或多个行)时将所述值设定成“1”。总体而言,快闪存储器在所有位中是通过“1”的值初始化的,因此应用可以通过将“1”位变化成“0”而轻易地写入初始数据。将“0”位变化成“1”是较慢且更加复杂的过程,其通常需要将整个区段的当前信息备份到工作存储器上、校正希望的位、通过将快闪存储器中的区段初始化到“1”而将其擦除以及基于工作存储器的修正的内容而将选定的位变化成“0”。
通常,在快闪存储器中存储数据在装置使用的实例之间仍然是完好的。然而,自然降解、外部辐射或磁场可能破坏存储在快闪存储器中的值。对于一些应用,例如,汽车控制应用、金融交易或医学应用,非常重要的是提供(例如)指示存储数据是否是不正确的或损坏的可靠的存储装置。
通常,针对快闪存储器中的每一个字增加额外存储位以实施错误校正码可以减少易受错误损害性。然而,这通常需要一个字中的每个位的改变,错误校正位需要重写,因此即使简单的从“1”到“0”的位改变可能需要使用擦除且随后重写整个区段的较慢的过程。
希望提供一种存储装置,例如,基于错误校正方案的闪存存储器,其降低由于错误校正码而针对从“1”到“0”的每个简单位改变的重写数据的整个区段的需要。
发明内容
本发明的一个实施例的一个方面涉及促进数据存储系统中的错误校正的系统和方法。数据存储系统具有由一序列位组成的数据的字并且每个字具有与其相关联的一个或多个组位来用于实施用于字的错误校正方案。每个位可以处于第一状态或第二状态,其中单个位可以从第一状态变化到第二状态,但是将位从第二状态变化到第一状态需要重写整个字和相关联的位或甚至字和相关联的位的群组(例如,区段)。当更新字仅需要从第一状态切换位到第二状态时,有可能的是整个区段将需要重写,这是因为更新从字中计算出的错误校正位的需要。虽然字仅通过从第一状态到第二状态切换位发生变化,错误校正位可能需要从第二状态切换到第一状态。本发明提供维持可工作的数据存储系统同时减小由于错误校正位的更新而重写整个区段的需要的解决方案。
因此根据本发明的一个示例性实施例提供在数据存储系统中促进错误校正的方法,其包括:
接收具有一个或多个行的数据存储系统,每个行具有:一组数据位,其包括数据的字;第一组错误校正位和第二组错误校正位或标志位或这两个;每个位可以处于第一状态或第二状态;其中最初所有位都处于第一状态;
通过将位从第一状态变化到第二状态在数据存储系统中将数据写入字中;
在第一组错误校正位中形成用于字的错误校正码;
接收请求以通过将字的一个或多个额外位从第一状态变化到第二状态来更新字;
计算用于更新过的字的新错误校正码;以及
执行以下选择中的其中之一:
a)将新错误校正码写入到第二组错误校正位并且将标志位的值从第一状态变化到第二状态;或者
b)将新错误校正码写入到第二组错误校正位并且将第一组错误校正位的所有位的值变化到第二状态;或者
c)舍弃新错误校正码并且将标志位的值从第一状态变化到第二状态;或者
d)确定新错误校正码是否仅需要将第一组错误校正位的位从第一状态变化到第二状态,并且如果确定是肯定的则更新第一组错误校正位。
根据本发明的一个示例性实施例进一步提供数据存储系统,其包括:
一个或多个行,每个行具有:一组数据位,其包括数据的字;第一组错误校正位和第二组错误校正位或标志位或这两个;每个位可以处于第一状态或第二状态;其中最初所有位都处于第一状态;
其中数据存储系统经配置以通过将位从第一状态变化到第二状态来将数据写入字中,且随后在第一组错误校正位中形成用于字的错误校正码;所述数据存储系统还经配置以:
接收请求以通过将字的额外的位从第一状态变化到第二状态来更新字的数据;
计算用于更新过的字的新错误校正码;以及
执行以下选择中的其中之一:
a)将新错误校正码写入到第二组错误校正位并且将标志位的值从第一状态变化到第二状态;或者
b)将新错误校正码写入到第二组错误校正位并且将第一组错误校正位的所有位的值变化到第二状态;或者
c)舍弃新错误校正码并且将标志位的值从第一状态变化到第二状态;或者
d)确定新错误校正码是否仅需要将第一组错误校正位的位从第一状态变化到第二状态,并且如果确定是肯定的则更新第一组错误校正位。
附图说明
图1是根据本发明的一个示例性实施例的数据存储系统的示意图;
图2A是根据本发明的一个示例性实施例的稳固错误校正码方案的实施的示意性流程图;
图2B是根据本发明的一个示例性实施例的稳固错误校正码方案的一个替代实施的示意性流程图;
图2C是根据本发明的一个示例性实施例的稳固错误校正码方案的另一替代实施的示意性流程图;
图3是根据本发明的一个示例性实施例将数据写入到数据存储系统的方法的流程图;
图4是根据本发明的一个示例性实施例从数据存储系统中读取数据的方法的流程图;
图5是根据本发明的一个示例性实施例的一个替代数据存储系统的示意图。
附图标记说明:
100、500:数据存储系统;
105:输入;
107:行;
110:字;
120:第一组错误校正位;
130:第二组错误校正位;
140、540:标志位;
150:第一选择器;
160:处理器;
170:第二选择器;
180:输出;
300、400:方法;
310、320、330、340、345、350、360、370、380、382、384、410、420、430、440、450、460:步骤;
5301、530N:错误校正位。
具体实施方式
图1是根据本发明的一个示例性实施例的数据存储系统100的示意图。数据存储系统100是非易失性存储器,例如,用于存储数据的基于“或非”的快闪存储器。在本发明的示例性实施例中,数据存储系统100包含一个或多个行107,其中每个行107包含具有多个位的字110,例如,32位、64位、128位、256位或任何数目的位。每个字可以为划分成8位的字节。一个或多个行可被称为区段。
视情况,每个行配备有用于执行针对字110的位的错误校正的第一组错误校正位(ECC1)120。在本发明的一些实施例中,行107包含第二组错误校正位(ECC2)130。替代地或额外地,行107包含标志位140。通常数据存储系统100用于主要读取数据且很少更新数据的应用,然而数据存储系统100也可以用作频繁地读取和写入数据的非易失性读写存储器。本发明一个实施例中,数据存储系统100以输入105接受请求以将数据写入字110并且接受请求以从字110读取数据,并将数据提供为输出180。视情况,当将数据写入到字110时,数据存储系统100产生错误校正码以能够认证字110中的位的完整性并且当读取数据时,数据存储系统100验证数据的完整性、检测错误且视情况校正它们并且准备数据以提供到输出180。
在本发明的一个示例性实施例中,数据存储系统100最初是擦除的,其中所有位设定在第一状态,例如,所有位设定成“1”。视情况,单个位可以从第一状态(例如,“1”)变化到第二状态(例如,“0”),然而为了将位从第二状态变回到第一状态需要备份(例如,临时存储)整个行107或行107的群组(例如,区段)、通过将行107重设回到第一状态而将它们擦除以及重写具有校正的整个行107或区段。视情况,当从第一状态到第二状态更新字110的数据位时(这并不需要重写整个行107或区段),错误校正码可能需要将位从第二状态更新到第一状态,因此整个行107可能无论如何需要重写。
在本发明的一个示例性实施例中,数据存储系统100设计成支持错误校正码的使用,然而当仅将字110的一个或多个位从第一状态更新到第二状态时减少重写整个行107或区段的需要。视情况,错误校正码是从字110的位中所计算的并且可用于检测或校正字中的一个或多个位错误。本领域中已知的常见错误校正码的实例是汉明和BCH码。举例来说,当使用32位的字时,汉明码需要6位用于错误校正。6位可用于校正在38位(32+6)内的单个位错误并且检测最多2个错误。BCH码需要7个额外的位并且可以校正在39位(32+7)内的2个错误。
应注意如上文陈述的第一状态可以是由位集合表示为“1”的值并且第二状态可以是由位集合表示为“0”的值,然而,数据存储系统100可能同样设计有由相反值表示的第一状态和第二状态,例如,“0”用于第一状态且“1”用于第二状态。
根据本发明的一个示例性实施例,图2A中所示的方案中,数据存储系统100使用第一组错误校正位(ECC1)120、第二组错误校正位(ECC2)130和标志位140。在图2B中所示的方案中,数据存储系统100使用第一组错误校正位(ECC1)120、第二组错误校正位(ECC2)130而没有标志位140。在图2C中所示的方案中,数据存储系统100使用第一组错误校正位(ECC1)120和标志位140而没有第二组错误校正位(ECC2)130。
图3是使用图2A到2C所示的三个错误校正码方案的其中之一的将数据写入到数据存储系统100的方法(300)流程图。相应地,每个行107包含字110、第一组错误校正位(ECC1)120和第二组错误校正位(ECC2)130或标志位140或第二组错误校正位(ECC2)130和标志位140这两个。
视情况,当最初将数据写入(310)到字110中时,第一组错误校正位120通过基于错误校正码(例如,汉明或BCH)计算代码值而形成(320)。之后,如果字110中的数据通过将先前写入的位从第二状态变化(330)到第一状态(例如,“0”到“1”)而更新,那么整个行/区段需要重写(350)。替代地,如果数据更新(330)仅将位从第一状态变化到第二状态(例如,“1”到“0”(340)),那么仅特定的位需要切换并且整个行107并不需要重写。在任一情况下,需要从更新的字110中计算(345)新错误校正码。如果新错误校正码仅需要通过将位从第一状态变化到第二状态来更新(360)错误校正码,那么更新(370)第一错误校正码并且可以将新数据更新应用于字110而无需重写整个行107/区段。
然而,如果新错误校正码需要将位从第二状态更新到第一状态,那么实施三个方案中的其中之一以防止需要重写整个行107。在第一方案(通过图2A示出)中,将新错误校正码写入(380)到第二组错误校正位130并且标志位140从第一状态更新到第二状态。相应地,如果标志位140处于第一状态,第一错误校正码120将用于错误校正,否则第二错误校正码130将用于错误校正。
在第二方案(通过图2B示出)中,将新错误校正码写入(382)到第二组错误校正位130。不使用标志位,而是第一组错误校正位120的所有位变化到第二状态以指示第一组错误校正位120是过时的。当读取数据时,检查第一组错误校正位120以确定其是否应该使用或不使用。视情况,同样检查第二组错误校正位130的位以确定它们是否都处于第一状态,这将指示第二组错误校正位130尚未使用。
在第三方案(通过图2C示出)中,舍弃新错误校正码,因为它无法不重写整个行107/区段而写入到第一组错误校正位120中。然而,标志位140用于提供第一组错误校正位120的内容是否是有效的错误校正码或字110的内容是否已经变化且第一组错误校正位120是否是不相关的指示。视情况,更新(384)标志位140,因此当标志位140处于第一状态时,第一组错误校正位120用于错误校正,并且当标志位140处于第二状态时,不使用第一组错误校正位120。
在本发明的一些实施例中,数据存储系统100包含多组错误校正位,例如,第一组错误校正位120和一个或多个额外组(例如,N组5301到530N的错误校正位),例如,如图5中作为数据存储系统500示出的。视情况,根据第一方案,具体来说标志位540包含N个位(而不是单个位),其错误校正位530i的组是活动的。视情况,第一状态下的标志位指示错误校正位530i的对应组尚未使用,并且第二状态下的标志位指示错误校正位530i的对应组已经使用。视情况,使用的最后一组530i是当前的且校正的组。视情况,根据第二方案,错误校正位的活动组将基于错误校正位(120或530i)的组的内容来识别。错误校正位(120或530i)的不活动组将完全设定到第二状态,而尚未使用的错误校正位(120或530i)的组将完全设定到第一状态。当前错误校正位(120或530i)的组将通常含有第一状态和第二状态下的位的混合物。
在本发明的示例性实施例中,可以使用方案的组合,例如,方案一或方案二可以与错误校正位530i的N个额外组一起使用,然而如果所述组用完了,那么错误校正位的组将被视为在方案三中无效,除非重写整个行107/区段。
图4是根据本发明的一个示例性实施例从数据存储系统100中读取数据的方法(400)的流程图。视情况,当用户访问数据存储系统100以从字110中读取(410)数据时,数据是根据上述错误校正方案用选定的(420)错误校正数据来提取的。在本发明的一个示例性实施例中,当使用图2A中所示的第一方案时,第一选择器150接收标志位140,其用于选择是否传送第一组错误校正位120或第二组错误校正位130。视情况,将所选择的(420)错误校正数据与来自字110的数据一起提供到错误校正处理器160。错误校正处理器160执行(430)错误校正算法以产生用于字110的内容的校正数据。视情况,处理器160同样提供错误校正是否成功或校正过程是否失败的指示,例如,这是因为缺乏有效的错误校正码,或因为检测到过多的错误且校正是不可能的。视情况,第二选择器170接收来自字110的未校正的数据以及来自处理器160的校正过的数据。随后,如果错误校正过程成功(440),数据存储系统100提供校正过的数据(450)作为输出180。否则的话,数据存储系统100提供初始未校正的数据(460)作为输出180。
在本发明的一个示例性实施例中,当使用图2B中所示的第二方案时,第一选择器150接收第一组错误校正位120和第二组错误校正位130。视情况,第一选择器150确定第一组错误校正位120的所有位是否都在第二状态(指示第一组错误校正位120是擦除的)并且响应于所述确定将错误校正码从第一组错误校正位120或第二组错误校正位130进行传递。在本发明的一些实施例中,第一选择器150可额外确定第二组错误校正位的所有位是否都在第一状态(指示第二组错误校正位的130尚未使用)。视情况,第一选择器150基于所述确定中的一或两个传递错误校正码。
视情况,将所选择的(420)错误校正码与来自字110的未校正的数据一起提供到错误校正处理器160。错误校正处理器160执行(430)错误校正算法以产生用于字110的内容的校正数据。视情况,错误校正处理器160同样提供错误校正是否成功或校正过程是否失败的指示,例如,这是因为缺乏有效的错误校正码,或因为检测到过多的错误且校正是不可能的。视情况,第二选择器170接收来自字110的未校正的数据和来自错误校正处理器160的校正过的数据。随后,如果错误校正过程成功(440),那么数据存储系统100提供校正过的数据(450)作为输出180。否则的话,数据存储系统100提供初始未校正的数据(460)作为输出180。
在本发明的一个示例性实施例中,当使用图2C中所示的第三方案时,仅第一组错误校正位120是可供使用的并且是选定的(420)以提供到错误校正处理器160。视情况,同样将标志位140提供到错误校正处理器160以提供第一组错误校正位120的内容是否构成有效的错误校正码的指示。视情况,如果标志位140处于第一状态,那么内容是有效的,并且如果标志位处于第二状态,那么内容是无效的,这是因为字110是更新的并且第一组错误校正位120是未校正的以防止重写整个行107。
在本发明的一个示例性实施例中,错误校正处理器160接收字110的数据以及第一组错误校正位120和标志位140的内容。如果第一组错误校正位120的内容是有效的(如通过标志位140所指示),那么错误校正处理器160执行(430)错误校正算法以产生用于字110的内容的校正过的数据。视情况,处理器160还提供错误校正是否成功(440)的指示,并且应该使用校正过的数据而不是字110的初始未校正的数据。视情况,第二选择器170接收来自字110的未校正的数据和来自处理器160的校正过的数据以及指示以选择是否将初始数据提供(460)为输出180或将校正过的数据提供(450)为输出180。
在本发明的一个示例性实施例中,可如上文所述使用N组错误校正位。视情况,第一选择器150经配置以基于标志位或基于错误校正位组的内容选择错误校正位的当前组。
应了解上述方法和设备可以多种方式变化,包含省略或添加步骤、变化步骤的顺序和所使用的装置的类型。应了解可以不同方式组合不同特征。具体而言,上文中一个特定实施例中示出的所有特征并非在本发明的每个实施例中都是必需的。在本发明的一些实施例的范围内还考虑了上述特征的其他组合。所属领域技术人员还将了解本发明不限于上文已具体示出和描述的内容。

Claims (11)

1.一种促进数据存储系统中的错误校正的方法,其特征在于,包括:
接收具有一个或多个行的数据存储系统,每个行具有:一组数据位,其包括数据的字;第一组错误校正位;第二组错误校正位或标志位的至少一者;每个所述位可以处于第一状态或第二状态;其中最初所有所述位都处于所述第一状态;
通过将所述位从所述第一状态变化到所述第二状态以在所述数据存储系统中将数据写入字中;
为所述字形成错误校正码,并将所述错误校正码写入所述第一组错误校正位;
接收请求以通过将所述字的一个或多个额外位从所述第一状态变化到所述第二状态来更新所述字;
为更新过的所述字计算新错误校正码;以及
执行以下选择中的其中之一:
a)将所述新错误校正码写入到所述第二组错误校正位并且将所述标志位的值从所述第一状态变化到所述第二状态;或者
b)将所述新错误校正码写入到所述第二组错误校正位并且将所述第一组错误校正位的所有位的值变化到所述第二状态;或者
c)舍弃所述新错误校正码并且将所述标志位的值从所述第一状态变化到所述第二状态;或者
d)确定所述新错误校正码是否仅需要将所述第一组错误校正位的位从所述第一状态变化到所述第二状态,并且如果所述确定是肯定的则更新所述第一组错误校正位。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从所述数据存储系统中读取字的数据;
基于所述标志位的内容或所述第一组错误校正位的内容选择一组错误校正位;
如果在所述第一组错误校正位或在所述第二组错误校正位中有效的错误校正码是可供使用的,执行错误校正;
如果错误校正是成功的,提供校正过的数据而不是从所述字中读取的数据;
否则如果错误校正不成功,提供从所述字中读取的未校正的数据。
3.根据权利要求2所述的方法,其特征在于,所述选择包括:
如果所述标志位处于所述第一状态则使用所述第一组错误校正位以及如果所述标志位处于所述第二状态则使用所述第二组错误校正位。
4.根据权利要求2所述的方法,其特征在于,所述选择包括:
如果所述第一组错误校正位的所有位都处于所述第二状态则使用所述第二组错误校正位,否则使用所述第一组错误校正位。
5.根据权利要求2所述的方法,其特征在于,所述选择包括:
如果所述第一组错误校正位的所有位都处于所述第二状态并且并非所述第二组错误校正位的所有位都处于所述第一状态则使用所述第二组错误校正位,否则使用所述第一组错误校正位。
6.根据权利要求2所述的方法,其特征在于,所述选择包括:
如果所述标志位处于所述第一状态并且所述第二组错误校正位并不存在则使用所述第一组错误校正位,否则如果所述标志位处于所述第二状态则不执行错误校正。
7.根据权利要求1所述的方法,其特征在于,将字的一个位从所述第二状态变化到所述第一状态需要擦除一个或多个整个行并且通过所需的改变重写它们。
8.一种数据存储系统,其特征在于,包括:
一个或多个行,每个行具有:一组数据位,其包括数据的字;第一组错误校正位;第二组错误校正位或标志位的至少一者;每个所述位可以处于第一状态或第二状态;其中最初所有所述位都处于所述第一状态;
其中所述数据存储系统经配置以通过将所述位从所述第一状态变化到所述第二状态来将数据写入字中,且随后为所述字形成错误校正码,并将所述错误校正码写入所述第一组错误校正位;所述数据存储系统还经配置以:
接收请求以通过将所述字的额外的位从所述第一状态变化到所述第二状态来更新所述字的数据;
为更新过的所述字计算新错误校正码;以及
执行以下选择中的其中之一:
a)将所述新错误校正码写入到所述第二组错误校正位并且将所述标志位的值从所述第一状态变化到所述第二状态;或者
b)将所述新错误校正码写入到所述第二组错误校正位并且将所述第一组错误校正位的所有位的值变化到所述第二状态;或者
c)舍弃所述新错误校正码并且将所述标志位的值从所述第一状态变化到所述第二状态;或者
d)确定所述新错误校正码是否仅需要将所述第一组错误校正位的位从所述第一状态变化到所述第二状态,并且如果所述确定是肯定的则更新所述第一组错误校正位。
9.根据权利要求8所述的系统,其特征在于,所述系统经配置以允许读取字的数据和校正所述字的数据,方法是:
基于所述标志位的内容和/或所述第一组错误校正位的内容选择一组错误校正位;
如果在所述第一组错误校正位或在所述第二组错误校正位中有效的错误校正码是可供使用的,执行错误校正;
如果错误校正是成功的,提供校正过的数据而不是从所述字中读取的数据;
否则如果错误校正不成功,提供从所述字中读取的未校正的数据。
10.根据权利要求9所述的系统,其特征在于,所述选择包括:
如果所述第一组错误校正位的所有位都处于所述第二状态则使用所述第二组错误校正位,否则使用所述第一组错误校正位。
11.根据权利要求9所述的系统,其特征在于,所述选择包括:
如果所述第一组错误校正位的所有位都处于所述第二状态并且并非所述第二组错误校正位的所有位都处于所述第一状态则使用所述第二组错误校正位,否则使用所述第一组错误校正位。
CN201510393372.XA 2015-01-29 2015-07-07 促进数据存储系统中的错误校正的方法及其数据存储系统 Active CN106205729B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/608,213 US9448880B2 (en) 2015-01-29 2015-01-29 Storage device with robust error correction scheme
US14/608,213 2015-01-29

Publications (2)

Publication Number Publication Date
CN106205729A CN106205729A (zh) 2016-12-07
CN106205729B true CN106205729B (zh) 2019-04-23

Family

ID=56554337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510393372.XA Active CN106205729B (zh) 2015-01-29 2015-07-07 促进数据存储系统中的错误校正的方法及其数据存储系统

Country Status (3)

Country Link
US (1) US9448880B2 (zh)
CN (1) CN106205729B (zh)
TW (1) TWI575529B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage
CN101882472A (zh) * 2009-05-05 2010-11-10 建兴电子科技股份有限公司 具可变动错误校正码机制的快闪储存装置及其控制方法
CN102640116A (zh) * 2009-09-28 2012-08-15 辉达公司 对外部dram的错误检测和纠正
CN102693760A (zh) * 2011-03-24 2012-09-26 扬智科技股份有限公司 Nand快闪存储器的错误校正方法
CN103578535A (zh) * 2012-07-23 2014-02-12 华邦电子股份有限公司 用于读取nand快闪存储器的方法和设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITMI20050780A1 (it) * 2005-04-29 2006-10-30 St Microelectronics Srl Metodo di memorizzazione di un array di celle di memoria non-volatile con codice di correzione di errore e relativo dispositivo
US7870457B2 (en) * 2006-12-29 2011-01-11 Sandisk Corporation Page by page ECC variation in a memory device
US8179719B1 (en) * 2008-03-10 2012-05-15 Marvell International Ltd. Systems and methods for improving error distributions in multi-level cell memory systems
US8117521B2 (en) * 2008-08-26 2012-02-14 Spansion Llc Implementation of recycling unused ECC parity bits during flash memory programming
JP2012137994A (ja) * 2010-12-27 2012-07-19 Toshiba Corp メモリシステムおよびその制御方法
WO2014051625A1 (en) * 2012-09-28 2014-04-03 Hewlett-Packard Development Company, L.P. Dynamically selecting between memory error detection and memory error correction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage
CN101882472A (zh) * 2009-05-05 2010-11-10 建兴电子科技股份有限公司 具可变动错误校正码机制的快闪储存装置及其控制方法
CN102640116A (zh) * 2009-09-28 2012-08-15 辉达公司 对外部dram的错误检测和纠正
CN102693760A (zh) * 2011-03-24 2012-09-26 扬智科技股份有限公司 Nand快闪存储器的错误校正方法
CN103578535A (zh) * 2012-07-23 2014-02-12 华邦电子股份有限公司 用于读取nand快闪存储器的方法和设备

Also Published As

Publication number Publication date
US20160224417A1 (en) 2016-08-04
CN106205729A (zh) 2016-12-07
TWI575529B (zh) 2017-03-21
TW201628012A (zh) 2016-08-01
US9448880B2 (en) 2016-09-20

Similar Documents

Publication Publication Date Title
EP2550745B1 (en) Non-regular parity distribution detection via metadata tag
US8694855B1 (en) Error correction code technique for improving read stress endurance
CN102623042B (zh) 存储器系统及其操作方法
US8732553B2 (en) Memory system and control method thereof
JP4160625B1 (ja) 誤り検出制御システム
US8479062B2 (en) Program disturb error logging and correction for flash memory
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
CN104272393A (zh) 为存储器的块调整编程步长的系统和方法
US8910018B2 (en) Memory with dynamic error detection and correction
TWI633428B (zh) 資料儲存裝置與記憶體裝置之資料處理方法
TW201351425A (zh) 用於解碼取決於干擾條件下之資料之系統與方法
US9507658B2 (en) Data reading method, memory storage device and memory controlling circuit unit
JP2010512601A (ja) メモリにおけるキャッシュを利用した誤り検出及び訂正方法及び装置
US9465538B2 (en) Flash memory control chip and data storage device and flash memory control method
US20160283319A1 (en) Data storage device and encoding method thereof
US20180101430A1 (en) Data Storage Device and Data Maintenance Method Thereof
JP2016143085A (ja) 装置及び方法
KR20160039153A (ko) 에러 정정 코드(ecc) 에러 핸들링을 위한 방법 및 디바이스
CN109840162A (zh) 存储器件及其操作方法
JP2010079856A (ja) 記憶装置およびメモリ制御方法
US9213597B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
CN103593252A (zh) 具有动态错误侦测及更正的存储器
CN105575439B (zh) 一种存储单元失效纠错的方法及存储器
CN106205729B (zh) 促进数据存储系统中的错误校正的方法及其数据存储系统
KR20180087494A (ko) 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant