CN102804146B - 跟踪存储器件内的错误数据的系统和方法 - Google Patents

跟踪存储器件内的错误数据的系统和方法 Download PDF

Info

Publication number
CN102804146B
CN102804146B CN201080027385.0A CN201080027385A CN102804146B CN 102804146 B CN102804146 B CN 102804146B CN 201080027385 A CN201080027385 A CN 201080027385A CN 102804146 B CN102804146 B CN 102804146B
Authority
CN
China
Prior art keywords
school affairs
data
mistake
error
correcting code
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
CN201080027385.0A
Other languages
English (en)
Other versions
CN102804146A (zh
Inventor
M.A.德阿布里厄
S.斯卡拉
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.)
Delphi International Operations Luxembourg SARL
Original Assignee
SanDisk 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 SanDisk Corp filed Critical SanDisk Corp
Publication of CN102804146A publication Critical patent/CN102804146A/zh
Application granted granted Critical
Publication of CN102804146B publication Critical patent/CN102804146B/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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

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

Abstract

公开了跟踪错误数据的系统和方法。方法包括接收第一纠错码操作的与错误位置相关联的第一校验和,以及接收第二纠错码操作的与错误位置相关联的第二校验和。将第一校验和与第二校验和相比较,并且基于比较结果对存储器阵列的区域发起动作。

Description

跟踪存储器件内的错误数据的系统和方法
技术领域
本公开关于计算机存储器系统,更具体地,关于对数据存储器件的错误检测和错误位置跟踪。
背景技术
错误检测和校正处理帮助维持存储器存储器件和通信信道内的数据完整性。例如,纠错码(ECC)通常用于计算机存储器子系统中的故障检测。ECC包括识别存储器中存储的数据的一个或多个错误的冗余数据。例如,“软”错误通常由电传输干扰引起,而“硬”错误可能是由于存储器器件。
随着日益缩小的存储器件电路和更低的工作电压,存在增加错误识别和校正处理中的准确性和效率的需要。
发明内容
公开了识别和校正错误的改善的系统和方法。可以执行大量纠错码操作,其每个识别存储器的一区域的一组错误位置。该组错误位置可以与先前的错误位置相比较,并且可以发起适当的动作。该组错误位置可以以保持错误位置信息的方式、诸如经由校验和(checksum)而被编码。可以为每个纠错码操作确定与该组错误位置相关联的校验和。可以比较两个或多个校验和以识别趋势。可以基于校验和比较结果或者通过评估检测的趋势来发起解决此错误的动作。
例如,随时间相同的校验和可能表示未恶化的位的硬故障。如果确定错误随着时间而移动位置,则该错误很可能可归因于传输干扰而不是硬件缺陷。只要总ECC计数未改变,就可以管理这样的错误。如果错误位于字线的一端,则可以识别诸如破裂字线的字线缺陷。
附图说明
图1是可以用于跟踪错误数据的数据存储器件的框图;
图2是可以与用于跟踪数据存储器件相关联的错误数据的系统的框图;
图3例示第一组纠错码操作的结果;
图4例示第二组纠错码操作的结果;
图5例示第三组纠错码操作的结果;
图6例示跟踪错误数据的方法的流程图;
图7例示跟踪和存储错误数据的方法的流程图;
图8例示跟踪和评估错误数据的方法的流程图;
图9例示识别和校正错误数据的方法的流程图;以及
图10例示识别由经过多个纠错码操作产生的错误指示的趋势的方法的流程图。
具体实施方式
参考图1,绘出了可以用于跟踪错误数据的数据存储器件的示例实施例并且概括地指定为100。数据存储器件1000包括耦接到存储器阵列104的控制器102。控制器102被配置为跟踪和比较与从存储器件阵列104读取的数据对应的错误位置数据并且可以基于这些比较而发起动作。
存储器阵列104可以包括非易失性存储器,诸如闪存。存储器阵列104包括代表性存储器区106,其包括存储的数据110。存储器区106可以是字线、存储器块或者存储器页。字线可以包括在存储器阵列104内的行方向上的线。存储器块可以包括可擦除的存储器的最小单位。存储器页可以包括可写的存储器的最小单位。数据110包括与存储的数据110内的各个位置118相关联的可检测的错误114。
控制器112可以被配置为经由返回从存储器阵列104读取的数据112的逻辑通信链接来访问存储器阵列104以读取数据110。控制器102的错误检测模块108可以被配置为响应于读取数据110而检测多个错误11并检测错误位置118。例如,错误检测模块108可以包括纠错码(ECC)引擎。
控制器102可以另外包括校验和发生器120。该校验和发生器120可以基于错误位置数据118产生校验和。例如,校验和发生器120可以输出分别在第一和第二纠错码(ECC)操作期间由错误检测模块108产生的错误位置数据118的第一校验和124和第二校验和126。第一校验和124和第二校验和126每个可以是基于与相应纠错码操作的多个错误的每个相关联的多个位置。校验和发生器120可以替换地包括多输入签名寄存器(MISR)。MISR的并入可以降低硬件要求。校验和发生器120的另一例子可以包括基于多项式的电路。基于多项式的电路可以包括线性反馈移位寄存器(LFSR)或者组合逻辑。校验和发生器的另一例子是具有起着累积加法器的作用的加法器和累加器的电路。校验和发生器120可以是ECC引擎的部分。
第一校验和124和第二校验和126可以被存储在存储器阵列104的日志文件122中。例如,控制器102可以存储对于存储器阵列104的每个区域的随时间产生的校验和。控制器102可以将第一校验和124和第二校验和126的每个与不同的时间戳逻辑地相关联。例如,时间戳可以对应于其间产生了校验和的纠错码操作。
在操作期间,控制器102可以从存储器阵列104的日志文件122提取第一校验和124和第二校验和126。控制器102还可以将第一校验和124与第二校验和126相比较并可以至少部分地基于第一校验和124与第二校验和126的比较而发起与存储器区域106相关联的动作。动作的例子可以包括移动数据、发起读擦除(read scrub)、刷新数据、指定数据块为坏的数据、监视数据以及校正多个错误中的错误,如将关于图3-10描述的。
图1因此例示了用于对各个纠错码操作产生的每个是基于与多个错误的每个相关联的多个位置的校验和。第一校验和124和第二校验和126被比较以有效跟踪和校正错误数据。尽管错误检测模块108和校验和发生器120被例示为分离的元件,但是错误检测模块108和校验和发生器120可以位于相同的元件处(例如ECC)。此外,尽管第一校验和124和第二校验和126被描述为从日志文件122中提取,但是在其他实施例中,第一校验和124和第二校验和126中的一个或多个可以不从日志文件122提取,如将关于图2描述的。
参考图2,绘出了可以用于跟踪与存储器件相关联的错误数据的系统的示例实施例,并且将其概括地指定为200。该系统200可以包括耦接到存储器阵列204的控制器202。控制器202还耦接到主机计算设备250。控制器202和存储器阵列204可以是可移除数据存储器件的组件。控制器202被配置为通过将从数据读操作得到的错误位置信息与从先前的读操作保存的错误位置信息相比较而跟踪存储器阵列204的情况。例如,存储器阵列204的日志文件216可以包括校验和历史218。
存储器阵列204包括第一存储器区206和第二存储器区208。第一存储器区206具有表示存储器阵列204的一页或一块。
控制器202包括错误检测模块220。错误检测模块220可以被配置为响应于从存储器阵列204读取的数据212而检测多个错误214和错误位置222。错误检测模块220可以包括ECC引擎。
控制器202还包括被配置为接收错误位置222和产生校验和226的校验和发生器224。校验和发生器224可以包括MISR或者另一基于多项式的电路。例如,可以使用LFSR或者组合逻辑来实现基于多项式的电路。在多个纠错码操作期间,校验和发生器224可以产生与存储器阵列204的具体区域对应的多个校验和。校验和输出可以被存储在日志文件216的校验和历史218中并且稍后被提取作为一个或多个先前校验和。每个检验和(例如校验和226和先前校验和234)可以基于相应纠错码操作的与多个错误的每个相关联的多个位置。
控制器202还包括耦接到错误检测模块220的处理器240。处理器240可以发起将校验和226存储到存储器阵列204内的日志文件216,并可以发起从存储器阵列204内的日志文件216提取先前的检验和234。
处理器240包括校验和分析模块228,其被配置为将校验和226与先前校验和234相比较。处理器240还包括动作选择模块230。动作选择模块230被配置为基于校验和226与先前校验和234的比较自动发起多个可用动作232。动作的例子包括移动数据、发起读擦除、刷新数据、指定数据块为坏的数据、监视数据以及校正一个或多个错误。作为例子,校验和分析模块228可以由处理器240执行以提取和比较校验和226和先前校验和234。校验和分析模块228还可以被配置为基于比较识别结果。例如,校验和分析模块228可以从比较中识别错误是不相关的、随机的和归因于干扰的。在另一例子中,校验和分析模块228可以识别错误在类似的位置处并且很可能是硬错误。动作选择模块230可以由处理器240执行以接收来自校验和分析模块228的结果并选择性地发起动作。
图2因此例示了用于跟踪与存储器件相关联的错误和关于此错误选择性地采取动作的系统200。系统200使能够进行有效和准确的错误跟踪和校正。
图3例示了指示坏的存储元件的第一和第二纠错码操作的结果的例子。可以在不同的时间对字线或者从存储器读取的数据、诸如图1的数据110进行纠错码操作。数据302是在第一纠错码操作期间可以被评估的错误位置数据的例子。例如,数据302可以是由图1的错误检测模块108产生的错误位置信息118或者由图2的错误检测模块222产生的错误位置信息222。数据302包括与存储器中的存储元件对应的存储器元件位置306、308、310、312、314、316、318、320和322。作为例子,错误350与位置308相关联,错误352与位置316相关联。
数据302可以由校验和发生器342、诸如图1的校验和发生器120接收。校验和发生器342可以基于与错误350、352相关联的位置308、316产生校验和344,诸如图1的第一校验和124。如所示,校验和344等于二进制“1011”,这等于十进制“11”。
可以在第二纠错码操作期间评估数据304。数据304包括位位置324、326、328、330、332、334、336、338和340。错误354与位置326相关联,错误356与位置334相关联。
数据304可以由校验和发生器346、诸如图1的校验和发生器120接收。校验和发生器346可以基于与错误354、356相关联的位置326、334产生校验和348、诸如图1的第一校验和124。如所示,校验和348等于二进制“1011”,这等于十进制“11”。
在370,可以将校验和344、348相比较以识别坏的存储元件,因为数据302和数据304中的错误在相同的位置中。可以通过校验和346等于校验和342来指示坏的存储器件。例如,基于错误350、352、354、356在第一和第二纠错码操作的数据302、304内具有相同的相对位置308、316、326、334,错误350、352、354、356可以被确定为是硬错误。
图3因此例示了用于确定错误350、352、354、356以及相关联的位置308、316、326、334的第一和第二纠错码操作。可以将基于错误位置308、316、326、334计算的校验和344、348相比较以确定错误308、316、326、334的位置在两个纠错码操作中相同。错误350、352、354、356的相同的相对位置可以指示存在硬错误。
图4例示指示随机错误的第一和第二纠错码操作的结果的例子。可以在不同的时间对数据元素、诸如图1的数据110进行纠错码操作。数据402可以在第一纠错码操作期间被评估。例如,数据402可以是由图1的错误检测模块108产生的错误位置信息118或者由图2的错误检测模块220产生的错误位置信息222。数据402包括与存储器中的存储元件对应的位位置406、408、410、412、414、416、418、420和422。错误450与位置408相关联,错误452与位置410相关联,错误454与位置416相关联。
数据402可以由校验和发生器442、诸如图1的校验和发生器120接收。校验和发生器442可以基于与错误450、452和454相关联的位置408、410和416产生校验和444,诸如图1的第一校验和124。如所示,校验和444具有二进制值“1100”,这对应于十进制值“12”。
可以在第二纠错码操作期间评估数据404。数据404包括位位置424、426、428、430、432、434、436、438和440。错误456与位置424相关联,错误458与位置430相关联。
数据404可以由校验和发生器446、诸如图1的校验和发生器120接收。校验和发生器446可以基于与错误456、458相关联的位置424、430产生校验和448、诸如图1的第一校验和124。如所示,校验和448具有二进制值“0100”,这对应于十进制值“4”。
在470,可以将校验和444、448相比较以将错误识别为随机的。校验和444的十进制值“12”和校验和448的十进制值“4”之间的偏差可能指示不相关的随机错误。基于错误450、452、454、456在第一和第二纠错码操作的数据402、404内具有不同的相对位置408、416、426、434,错误450、452、454、456可以被确定为是随机错误。
图4因此例示了用于确定错误450、452、454、456以及相关联的位置408、416、426、434的第一和第二纠错码操作。可以将基于错误位置408、416、426、434计算的校验和444、448相比较以确定错误408、416、426、434的位置在两个纠错码操作中不同。
图5例示第一和第二纠错码操作的结果的例子。第一和第二纠错码操作指示在数据502的一端部分附近的错误550、552、554的位置类似地分布到错误558、560、530,它们位于数据504的一端部分附近。可以在不同时间对字线或者从存储器读取的其他数据、诸如图1的数据110进行纠错码操作。可以在第一纠错码操作期间评估数据502。例如,数据502可以是由图1的错误检测模块108产生的错误位置信息118或者由图2的错误检测模块220产生的错误位置信息222。数据502包括与存储器中的存储元件对应的存储器元件位置506、508、510、512、514、516、518、520和522。错误510与位置506相关联,错误552与位置508相关联。第三错误554位于位置512,第四错误556位于位置516。
数据502可以由校验和发生器442、诸如图1的校验和发生器120接收。校验和发生器542可以基于与错误550、552、554和556相关联的位置506、508、512和516产生校验和544,诸如图1的第一校验和124。如所示,校验和544具有二进制值“1110”,这对应于十进制值“14”。
可以在第二纠错码操作期间评估数据504。数据504包括位位置524、526、528、530、532、534、536、538和540。错误558与位置524相关联,错误560与位置526相关联。错误562与位置530相关联,错误564与位置540相关联。
数据504可以由校验和发生器546、诸如图1的校验和发生器120接收。校验和发生器546可以基于与错误558、560、562和564相关联的位置524、526、530和540产生校验和548、诸如图1的第一校验和124。如所示,校验和548具有二进制值“1101”,这对应于十进制值“13”。
在570,可以将校验和544、548相比较以识别坏的字线。校验和544、548两者包括相对大的值。大多数错误存在于字线的同一端。如在第一和第二纠错码操作期间评估的,基于数据504的类似位置的错误558、560、562,数据502,错误550、552、554可以被确定为与坏的字线相关联。
图5因此例示用于确定错误550、552、554、556、558、560、562和564以及相关联的位置506、508、512、516、524、526、530和540的第一和第二纠错码操作。基于错误位置506、508、512、516、524、526、530和540计算校验和544、548,并且可以将它们相比较以确定在两个纠错码操作中,错误550、552、554、558、560和562的位置集中在数据502、504的类似部分中。错误550、552、554、558、560和562的相同的相对位置506、508、512、524、526和530可以指示存在由坏的字线导致的硬错误。
本领域技术人员将认识到,为了易于说明而简化了图3-5。图3-5不是一定要示出除了其他参数之外的准确值或者数据字大小。因而实施例不限于这些例示的例子。
图6例示跟踪错误数据的方法600的流程图。图6的方法600可以由访问存储器的计算系统、诸如图1的控制器102或者图2的控制器202进行。在602,可以进行纠错码操作以识别多个错误和分别与多个错误的每个相关联的多个位置。例如,图1的控制器102可以从存储器阵列104提取数据110。数据110可以被提供给错误检测模块108。可以产生控制信号以致使错误检测模块108在第一时间进行第一纠错码操作以识别分别与各位置相关联的错误114。
在604,可以基于与多个错误的每个相关联的多个位置产生校验和。为了例示,图1的校验和发生器120可以接收位置数据118并基于与检测的错误114相关联的位置产生第一校验和124。
在606,可以从存储器阵列提取第二校验和。为了例示,第二校验和可以是图2的先前校验和234。第二校验和可以对应于来自与第一检验和相同的存储器区域的先前数据读操作。
在608,可以比较第一校验和与第二校验和。例如,图1的控制器102可以将第一校验和124与第二校验和126相比较。在另一例子中,图2的校验和分析模块228可以将校验和226与先前校验和234相比较。
在610,可以确定第一校验和与第二校验和之间的差是否小。例如,图1的控制器102可以确定第一校验和124和第二校验和126之间的差是否小。
当在620确定的第一校验和与第二校验和之间的差小时,可以评估位置信息。例如,图1的控制器102可以基于错误的位置确定第一校验和124和第二校验和126之间的差。如图3所示,第一纠错码操作中错误350的位置308可以与第二纠错码操作中错误354的位置326相同。或者,如图4所示,第一纠错码操作中的错误450的位置408可以与第二纠错码操作中的错误456的位置424不同。确定第一校验和与第二校验和之间的差是否小可以包括将该差与阈值相比较。可以基于具体校验和产生类型的位置编码属性来设置该阈值。
在612,可以评估位置信息以识别可能的坏的字线。例如,可以确定错误始终集中出现在字线一端附近。使用图5来例示,第一纠错码操作中的错误550、552、554的位置506、508、512可以类似于第二纠错码操作中的与错误558、560、562相关联的位置524、526、530。错误重复地出现在字线的一端处可以指示坏的字线。
在614,存储器区域可以被识别为具有缺陷的存储元件。例如,图1的控制器102可以将存储器区域106识别为具有在存储的数据串内的有缺陷的单元。如图3所示,错误重复地出现在具体存储器位置处可以指示坏的存储器单元。
在616,可以监视数据内的位置。例如,图1的控制器102可以监视与检测到的错误114对应的位置来发现将来的错误出现。
在618,可以确定第一校验和与第二校验和之间的差是否大。例如,图1的控制器102可以确定第一校验和124和第二校验和126之间的差是否大。确定该差是否大可以包括将该差与阈值相比较。阈值可以基于具体校验和产生类型的位置编码的属性来设置。
当在618第一校验和与第二校验和之间的确定的差大时,在620,可以评估位置信息以确定多个错误中的错误是否是随机的。例如,图1的控制器102可以基于第一校验和124和第二校验和126之间的差确定检测到的错误114是随机的。
在622,响应于确定错误是随机的,可以不发起动作。在624,可以存储第一校验和。例如,图2的控制器102可以将第一校验和124存储在存储器阵列104的日志文件122内。
图6因此例示用于跟踪错误数据的方法600。产生并比较第一校验和与第二校验和。基于检测到的错误在字线或者其他数据串中的位置来产生校验和。检验和比较可以确定校验和之间的差是大还是小。小的差可以指示有缺陷的存储元件,而大的差可以指示随机错误。如果检测到的错误被确定为是随机的,则可以确定不采取动作。
图7例示跟踪和存储错误数据的方法700的流程图。图7的方法700可以由访问存储器的计算系统、诸如图1的控制器102或者图2的控制器202来进行。在702,可以在第一时间进行第一纠错码操作以识别分别与多个第一位置相关联的多个第一错误。例如,多个第一位置的位置包括页或块在非易失性数据存储器件内的位位置。可以在非易失性数据存储器件内的控制器处进行第一纠错码操作。例如,图2的控制器202可以从存储器阵列204提取数据212。数据212可以被提供给错误检测模块220。可以产生控制信号以致使错误检测模块220在第一时间进行第一纠错码操作以识别分别与多个第一位置相关联的错误214。
在704,可以在第二时间进行第二纠错码操作以识别分别与多个第二位置相关联的多个第二错误。为了例示,图2的控制器202可以再次从存储器阵列204提取数据。该数据可以被提供给错误检测模块220。可以产生控制信号以致使错误检测模块220在第二时间进行第二纠错码操作以识别分别与多个第二位置相关联的错误。
在706,与多个第一位置相关的第一数据和与多个第二位置相关的第二数据可以被存储到非易失性数据存储器件内的存储器阵列的日志文件中。第一数据可以包括多个第一位置的第一校验和,第二数据可以包括多个第二位置的第二校验和。例如,图2的控制器202可以将校验和历史数据218存储在存储器阵列204的日志文件216内。
图7因此例示了进行第一纠错码操作和第二纠错码操作的方法700。每个操作可以识别与位置相关联的错误。与位置相关的数据可以被存储在存储器内用于有效地识别错误来进行校正。
图8例示跟踪和评估错误数据的方法800的流程图。图8的方法800可以由计算系统、诸如图1的控制器102或者图2的控制器202来执行。在802,可以接收第一纠错码操作的与多个第一错误位置相关联的第一校验和。第一纠错码操作可以与校正存储器阵列的区域内的错误相关联。还可以接收第二纠错码操作的与多个第二错误位置相关联的第二校验和。例如,图2的控制器202可以接收来自存储器阵列204的日志文件216的第一校验和226和先前校验和234。
在804,可以将第一校验和与第二校验和相比较。例如,图2的校验和分析模块228可以将校验和226与先前校验和234相比较。
在806,可以确定存储器阵列的区域内的错误是否是随机的。为了例示,图2的校验和分析模块228可以评估检验和数据226以确定错误是否是随机的。
在808,响应于确定错误是随机的,可以不发起动作。在810,可以基于比较的结果发起对存储器阵列的区域的动作。可以进行基于第一校验和与第二校验和的比较的多个可用动作之一。例如,图2的动作选择模块230可以移动数据212,发起读擦除,刷新数据,指定数据212的块为坏的,监视数据212或者发起校正错误214的动作。
图8因此例示包括接收第一和第二纠错码操作的与错误位置相关联的校验和的方法800的流程图。可以比较校验和以确定错误是否是随机的。在错误不是随机的情况下,可以发起校正动作。
图9例示跟踪和解决错误数据的方法900的流程图。图9的方法900可以由计算系统、诸如图2的控制器102或者图2的控制器202执行。在902,可以从存储器提取第一校验和。第一校验和可以与存储器区域的第一组错误位置相关联。第一组错误位置的错误位置可以包括页或块在非易失性数据存储器件内的位位置。例如,图1的控制器102可以从存储器阵列114的日志文件122提取第一校验和124。第一校验和124可以与存储器区域106的错误位置相关联。
在904,可以将第一校验和与与存储器区域的第二组错误位置相关联的第二校验和相比较。例如,图2的校验和分析模块228可以将校验和226与先前校验和234相比较。
在906,可以基于比较的结果针对存储器区域发起动作。例如,图2的动作选择模块230可以基于数据的结果发起动作。当第一校验和与第二校验和之间的确定的差小时,可以发起第一动作。为了例示,小的确定的差可以指示类似的错误位置。当第一校验和与第二校验和之间的确定的差大时,可以发起第二动作。在一个例子中,大的确定的差可以指示大的错误位置差。
在908,可以进行多个可用动作之一。例如,图2的动作选择模块230可以发起致使控制器202移动数据212、指定数据212的块为坏的、监视数据212、进行读擦除、刷新数据或者执行促进错误214的校正的处理的动作。
图9例示识别和校正错误的方法900的流程图。提取并比较与错误位置相关联的校验和。可以基于比较的结果发起校正错误的动作。
图10例示跟踪和解决错误数据的方法1000的流程图。图10的方法1000可以由计算系统、诸如图1的控制器102或者图2的控制器202进行。在1002,可以接收第一纠错码操作的与多个第一错误位置相关联的第一校验和。例如,图2的校验和分析模块228可以接收来自校验和发生器224的校验和226。
在1004,可以接收第二纠错码操作的与多个第二错误位置相关联的第二校验和。例如,图2的控制器202可以从存储器阵列204的日志文件216提取先前校验和234。
在1006,可以将第一校验和与第二校验和相比较。例如,图2的校验和分析模块228可以将校验和226与先前校验和234相比较。
在1008,可以基于比较的结果针对存储器区域发起动作。例如,图2的动作选择模块230可以基于数据的结果发起动作。
在1010,可以接收第三纠错码操作的与多个第三错误位置相关联的第三校验和。还可以接收第四纠错码操作的与多个第四错误位置相关联的第四检验和。例如,图2的校验和分析模块228可以从存储器阵列204的日志文件216的校验和历史218提取第三和第四校验和。
在1012,第一校验和、第二校验和、第三检验和和第四检验和可以用于识别趋势。为了例示,图2的校验和分析模块228可以分析从校验和历史218提取的校验和以识别趋势。例如,校验和分析模块240可以确定多个错误总是出现在或者集中在相同的相对位置。
在1014,可以基于趋势发起动作。例如,图2的动作选择模块230可以移动数据、发起读擦除、指定数据块为坏的、监视数据或者发起校正错误的动作。
图10例示识别由经过一系列纠错码操作产生的错误指示的趋势的流程图。识别的趋势可以用于发起适当的校正动作。
公开的实施例的各方面可以通过评估错误的位置而不仅仅是错误的总数而增加错误识别准确性。因此,即使当错误的总数保持恒定时,处理也可以识别移动了位置的错误。
公开的实施例的其他方面可以使用基于伴随每个读操作发生的ECC校正的数据来跟踪错误。跟踪的错误数据可以包括错误位置和错误的数量两者。跟踪的错误数量可以用于监视磨损和缺陷,而错误位置数据可以促进干扰检测。
公开的实施例的其他方面可以基于一个或多个错误位置产生多个检验和。例如,可以为存储器中的每页收集四个校验和。校验和可以被确定且被包括在跟踪日志文件内。
尽管在此绘出的各个组件被例示为块组件并以一般术语来描述,但是这样的组件可以包括一个或多个微处理器、状态机或者被配置为使图1的数据错误检测模块108和校验和发生器120、和图2的错误检测模块220、校验和发生器224、校验和分析模块228和动作选择模块230进行归属于这样的组件的具体功能的其他电路、或其组合。例如,图1的错误检测模块108、校验和发生器120或其两者可以表示物理组件,诸如硬件控制器、状态机、逻辑电路或者使得图1的数据存储器件100能够跟踪错误数据的其他结构。
数据存储器件100可以是被配置为选择性地耦接到一个或多个外部设备的便携式设备。但是,在其他实施例中,数据存储器件100可以附连于或者嵌入在一个或多个主机设备内,诸如在便携式通信设备的外壳内。例如,数据存储器件100可以在包装的装置内,诸如无线电话、个人数字助理(PDA)、游戏设备或控制台、便携式导航设备或者使用内部非易失性存储器的其他设备内。在一个具体实施例中,数据存储器件100包括非易失性存储器,诸如闪存(例如NAND、NOR、多级单元(MLC)、划分的位线NOR(DINOR)、AND、高电容耦合比(HiCR)、不对称无接触晶体管(ACT)、或其他闪存)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次可编程存储器(OTP)、或任何其他类型的存储器。
在此所述的实施例的例示意图提供对各种实施例的一般理解。可以利用并从本公开得出其他实施例,使得可以进行结构和逻辑替换和改变而不脱离本公开的范围。本公开意图覆盖各个实施例的任意及所有随后的适应及变化。因而,本公开和附图将被认为是例示性的而非限制性的。
以上公开的主题将被认为是例示的而非限制的,并且所附权利要求意图覆盖所有这样的修改、改进和其他实施例,它们落在本公开的范围内。因此,达法律允许的最大程度,本发明的范围将由以下权利要求及其等效物的最宽可允许解释来确定,并且不应受以上详细描述的限制或限定。

Claims (37)

1.一种跟踪错误数据的方法,该方法包括:
接收从存储器阵列读取的数据;
对接收的数据进行错误检测操作以识别多个错误和多个位置,其中所述多个错误的每个错误与所述多个位置的相应位置相关联;
基于与所述多个错误的每个相关联的多个位置产生校验和;以及
将所述校验和存储在存储器阵列中。
2.如权利要求1的方法,还包括存储基于在第一时间进行的第一错误检测操作的第一校验和以及存储基于在第二时间进行的第二错误检测操作的第二校验和。
3.如权利要求2的方法,其中第一错误检测操作是第一纠错码操作,以及第二错误检测操作是第二纠错码操作。
4.如权利要求2的方法,还包括将第一校验和与第二校验和相比较。
5.如权利要求4的方法,还包括基于第一校验和与第二校验和的比较进行多个可用动作之一。
6.如权利要求5的方法,其中所述多个可用动作包括以下的至少一个:移动数据、发起读擦除、刷新数据、指定数据的块为坏的数据、监视数据以及发起校正所述多个错误中的错误的动作。
7.如权利要求4的方法,还包括当第一校验和与第二校验和之间的确定的差小于阈值时发起第一动作,并且当第一校验和与第二校验和之间的确定的差大于阈值时发起第二动作。
8.如权利要求4的方法,还包括当第一校验和与第二校验和之间的确定的差小于阈值时评估由第一校验和与第二校验和中的至少一个表示的位置信息以表示存储器阵列中的可能坏的字线。
9.如权利要求8的方法,其中基于指示基本上所有多个错误发生在可能坏的字线的一端处的位置信息来识别该可能坏的字线。
10.如权利要求4的方法,还包括响应于确定第一校验和与第二校验和之间的差大于阈值,确定所述多个错误中的错误是否是随机的。
11.如权利要求10的方法,还包括响应于确定该错误是随机的,不发起动作。
12.如权利要求1的方法,其中所述多个位置的位置包括存储器阵列的区域。
13.如权利要求12的方法,其中该存储器阵列的区域包括页或块的位位置。
14.一种跟踪错误数据的方法,该方法包括:
在第一时间进行第一纠错码操作以识别与多个第一位置相关联的多个第一错误;
在第二时间进行第二纠错码操作以识别与多个第二位置相关联的多个第二错误;以及
将与该多个第一位置相关的第一数据以及与该多个第二位置相关的第二数据存储到数据存储器件内的存储器阵列的日志文件中。
15.如权利要求14的方法,其中该多个第一位置的位置包括页或块在数据存储器件内的位位置。
16.如权利要求14的方法,其中在该数据存储器件内的控制器处进行该第一纠错码操作。
17.如权利要求14的方法,其中第一数据包括该多个第一位置的第一校验和以及第二数据包括该多个第二位置的第二校验和。
18.一种跟踪错误数据的方法,包括:
接收第一纠错码操作的与多个第一错误位置相关联的第一校验和;
接收第二纠错码操作的与多个第二错误位置相关联的第二校验和;
将第一校验和与第二校验和相比较;以及
基于比较的结果发起对存储器阵列的区域的动作。
19.如权利要求18的方法,其中第一纠错码操作与校正该存储器阵列的区域内的错误相关联。
20.如权利要求18的方法,还包括基于第一校验和与第二校验和的比较进行多个可用动作之一。
21.如权利要求20的方法,其中所述多个可用动作包括以下的至少一个:移动数据、进行读擦除、刷新数据、指定数据的块为坏的数据、监视数据以及发起校正所述多个错误中的错误的动作。
22.如权利要求18的方法,还包括响应于确定所述存储器阵列的区域内的错误是随机的,不发起动作。
23.如权利要求18的方法,还包括接收第三纠错码操作的与多个第三错误位置相关联的第三校验和以及第四纠错码操作的与多个第四错误位置相关联的第四检验和,并使用第一校验和、第二校验和、第三检验和和第四检验和来识别趋势。
24.如权利要求23的方法,还包括基于该趋势发起动作。
25.一种跟踪错误数据的方法,该方法包括:
接收来自存储器的第一校验和,该第一校验和与存储器区域的第一组错误位置相关联;
将该第一校验和与第二校验和相比较,该第二校验和与存储器区域的第二组错误位置相关联;以及
基于比较的结果发起针对该存储器区域的动作。
26.如权利要求25的方法,其中该动作包括以下的至少一个:移动数据、指定数据的块为坏的数据、进行读擦除、刷新数据、监视数据以及校正多个错误中的错误。
27.如权利要求25的方法,还包括当第一校验和与第二校验和之间的确定的差小于阈值时发起第一动作,以及当第一校验和与第二校验和之间的确定的差大于阈值时发起第二动作。
28.如权利要求25的方法,第一组错误位置的错误位置包括页或块在存储器区域内的位位置。
29.一种用于跟踪错误的装置,包括:
存储器阵列;
错误检测模块,耦接到该存储器阵列,用于检测从该存储器阵列读取的数据中的错误;以及
处理器,被配置为将第一校验和与第二校验和比较,该第一校验和是基于在从该存储器阵列读取的数据的第一集合中检测到的错误的位置,该第二校验和是基于在从该存储器阵列读取的数据的第二集合中检测到的错误的位置,其中该处理器还被配置为基于该比较的结果而发起多个可用动作的中至少一个。
30.如权利要求29的装置,其中该处理器还被配置为发起该第一校验和和该第二校验和在存储器阵列中的存储。
31.如权利要求29的装置,其中该错误检测模块包括在耦接于存储器阵列的控制器处的纠错码(ECC)引擎,其中该控制器和该存储器阵列是可移除数据存储器件的组件。
32.如权利要求31的装置,其中该控制器包括耦接到该ECC引擎的处理器。
33.如权利要求31的装置,其中该第一检验和和该第二校验和由ECC引擎、多输入签名寄存器、累积加法器和基于多项式的电路中的至少一个产生。
34.一种用于跟踪错误的装置,包括:
存储器,包括多个存储器区域;以及
控制器,被配置为访问该存储器,并提取与通过对从多个存储器区域的至少一个读取的第一数据的第一纠错码操作而检测的错误的位置相关联的第一校验和以及与通过对从多个存储器区域的至少一个读取的第二数据的第二纠错码操作而检测的错误的位置相关联的第二校验和,以将该第一校验和与该第二校验和相比较,并至少部分地基于该比较的结果来发起与所述多个存储器区域的至少一个相关联的动作。
35.如权利要求34的装置,其中该存储器包括非易失性存储器。
36.如权利要求34的装置,其该存储器包括闪存。
37.如权利要求34的装置,其中该控制器还被配置为将该第一校验和与该第二校验和存储在该存储器内。
CN201080027385.0A 2009-06-29 2010-06-23 跟踪存储器件内的错误数据的系统和方法 Active CN102804146B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/494,186 2009-06-29
US12/494,186 US8255773B2 (en) 2009-06-29 2009-06-29 System and method of tracking error data within a storage device
PCT/US2010/039699 WO2011002656A1 (en) 2009-06-29 2010-06-23 System and method of tracking error data within a storage device

Publications (2)

Publication Number Publication Date
CN102804146A CN102804146A (zh) 2012-11-28
CN102804146B true CN102804146B (zh) 2015-08-19

Family

ID=42340746

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080027385.0A Active CN102804146B (zh) 2009-06-29 2010-06-23 跟踪存储器件内的错误数据的系统和方法

Country Status (7)

Country Link
US (1) US8255773B2 (zh)
EP (4) EP2530594B1 (zh)
JP (1) JP5523562B2 (zh)
KR (1) KR20120051606A (zh)
CN (1) CN102804146B (zh)
TW (1) TWI505277B (zh)
WO (1) WO2011002656A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8683456B2 (en) * 2009-07-13 2014-03-25 Apple Inc. Test partitioning for a non-volatile memory
JP5421152B2 (ja) * 2010-03-08 2014-02-19 ルネサスエレクトロニクス株式会社 半導体集積回路
US8650446B2 (en) * 2010-03-24 2014-02-11 Apple Inc. Management of a non-volatile memory based on test quality
US8645776B2 (en) * 2010-03-24 2014-02-04 Apple Inc. Run-time testing of memory locations in a non-volatile memory
US8751903B2 (en) 2010-07-26 2014-06-10 Apple Inc. Methods and systems for monitoring write operations of non-volatile memory
US8640006B2 (en) * 2011-06-29 2014-01-28 International Business Machines Corporation Preemptive memory repair based on multi-symbol, multi-scrub cycle analysis
EP2877925A4 (en) * 2012-07-27 2016-03-30 Hewlett Packard Development Co SYSTEMS AND METHODS FOR DETECTING DIMM MODULE INSTALLATION ERROR
US8914696B2 (en) 2012-08-29 2014-12-16 Seagate Technology Llc Flash memory read scrub and channel tracking
DE102012020442B4 (de) * 2012-10-18 2020-03-05 Robert Bosch Gmbh Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen
US10102003B2 (en) * 2012-11-01 2018-10-16 International Business Machines Corporation Intelligent context management
US10078518B2 (en) * 2012-11-01 2018-09-18 International Business Machines Corporation Intelligent context management
CN103092717B (zh) * 2013-01-18 2016-03-02 深圳市硅格半导体有限公司 闪存的数据处理方法及装置
US8972776B2 (en) 2013-03-06 2015-03-03 Seagate Technology, Llc Partial R-block recycling
CN104750569A (zh) 2013-12-30 2015-07-01 深圳市中兴微电子技术有限公司 一种实现数据纠错的方法及装置
US9436434B2 (en) * 2014-03-14 2016-09-06 International Business Machines Corporation Checksum adder
DE102014208609A1 (de) * 2014-05-08 2015-11-26 Robert Bosch Gmbh Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit
US9087012B1 (en) 2014-06-04 2015-07-21 Pure Storage, Inc. Disaster recovery at high reliability in a storage cluster
US20150355862A1 (en) * 2014-06-04 2015-12-10 Pure Storage, Inc. Transparent array migration
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10552403B2 (en) * 2015-05-21 2020-02-04 Vmware, Inc. Using checksums to reduce the write latency of logging
GB2539455A (en) * 2015-06-16 2016-12-21 Nordic Semiconductor Asa Memory watch unit
US9548105B1 (en) * 2015-10-29 2017-01-17 Sandisk Technologies Llc Enhanced post-write read for 3-D memory
KR20170052066A (ko) * 2015-11-03 2017-05-12 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR20180055148A (ko) * 2016-11-16 2018-05-25 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
KR20180106494A (ko) 2017-03-20 2018-10-01 에스케이하이닉스 주식회사 반도체장치
CN108304503A (zh) * 2018-01-18 2018-07-20 阿里巴巴集团控股有限公司 一种数据的处理方法、装置及设备
CN108628699B (zh) * 2018-05-11 2021-10-19 简式国际汽车设计(北京)有限公司 一种基于ecc的flash数据异常处理方法及装置
US11128314B2 (en) * 2019-06-24 2021-09-21 SK Hynix Inc. Error characteristic estimation for NAND flash
US11409688B1 (en) * 2019-11-01 2022-08-09 Yellowbrick Data, Inc. System and method for checking data to be processed or stored
KR20210153407A (ko) * 2020-06-10 2021-12-17 에스케이하이닉스 주식회사 에러정정동작 및 에러체크동작을 수행하기 위한 전자장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999036913A1 (en) * 1998-01-16 1999-07-22 Hewlett-Packard Company Methods and apparatus for data storage on magnetic media including error correction codes
JP2005196680A (ja) * 2004-01-09 2005-07-21 Ricoh Co Ltd コンピュータシステム
CN1653554A (zh) * 2002-05-20 2005-08-10 桑迪士克股份有限公司 通过使用关于所存储数据的质量的信息来增加错误校正码的效率和操作多电平存储系统
TW200819980A (en) * 2006-05-15 2008-05-01 Sandisk Corp Non-volatile memory system with end of life calculation
CN101458645A (zh) * 2007-12-11 2009-06-17 英业达股份有限公司 计算机操作系统与其软件的文件数据修复系统及其方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4077028A (en) * 1976-06-14 1978-02-28 Ncr Corporation Error checking and correcting device
US4646312A (en) * 1984-12-13 1987-02-24 Ncr Corporation Error detection and correction system
US5754753A (en) * 1992-06-11 1998-05-19 Digital Equipment Corporation Multiple-bit error correction in computer main memory
US5463642A (en) * 1993-06-29 1995-10-31 Mitsubishi Semiconductor America, Inc. Method and apparatus for determining error location
US6397365B1 (en) * 1999-05-18 2002-05-28 Hewlett-Packard Company Memory error correction using redundant sliced memory and standard ECC mechanisms
US6829167B2 (en) 2002-12-12 2004-12-07 Sandisk Corporation Error recovery for nonvolatile memory
JP4256198B2 (ja) 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
US7191379B2 (en) 2003-09-10 2007-03-13 Hewlett-Packard Development Company, L.P. Magnetic memory with error correction coding
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
JP2005285205A (ja) * 2004-03-29 2005-10-13 Hitachi Global Storage Technologies Netherlands Bv 情報記録再生装置
US7275190B2 (en) * 2004-11-08 2007-09-25 Micron Technology, Inc. Memory block quality identification in a memory device
US20070255889A1 (en) 2006-03-22 2007-11-01 Yoav Yogev Non-volatile memory device and method of operating the device
US7844886B1 (en) * 2006-05-16 2010-11-30 Altera Corporation Parallel processing error detection and location circuitry for configuration random-access memory
JP2008027296A (ja) * 2006-07-24 2008-02-07 Yokogawa Electric Corp メモリ装置
US7664915B2 (en) * 2006-12-19 2010-02-16 Intel Corporation High performance raid-6 system architecture with pattern matching
US7814401B2 (en) * 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US7573773B2 (en) * 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
US8006166B2 (en) * 2007-06-12 2011-08-23 Micron Technology, Inc. Programming error correction code into a solid state memory device with varying bits per cell
US8041990B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for error correction and detection in a memory system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999036913A1 (en) * 1998-01-16 1999-07-22 Hewlett-Packard Company Methods and apparatus for data storage on magnetic media including error correction codes
CN1653554A (zh) * 2002-05-20 2005-08-10 桑迪士克股份有限公司 通过使用关于所存储数据的质量的信息来增加错误校正码的效率和操作多电平存储系统
JP2005196680A (ja) * 2004-01-09 2005-07-21 Ricoh Co Ltd コンピュータシステム
TW200819980A (en) * 2006-05-15 2008-05-01 Sandisk Corp Non-volatile memory system with end of life calculation
CN101458645A (zh) * 2007-12-11 2009-06-17 英业达股份有限公司 计算机操作系统与其软件的文件数据修复系统及其方法

Also Published As

Publication number Publication date
EP2530596A1 (en) 2012-12-05
EP2449468A1 (en) 2012-05-09
JP2012532372A (ja) 2012-12-13
EP2530595B1 (en) 2014-11-05
EP2530594B1 (en) 2014-11-05
US20100332949A1 (en) 2010-12-30
EP2530596B1 (en) 2014-12-31
US8255773B2 (en) 2012-08-28
EP2530595A1 (en) 2012-12-05
WO2011002656A1 (en) 2011-01-06
CN102804146A (zh) 2012-11-28
EP2530594A1 (en) 2012-12-05
JP5523562B2 (ja) 2014-06-18
KR20120051606A (ko) 2012-05-22
TW201108236A (en) 2011-03-01
TWI505277B (zh) 2015-10-21
EP2449468B1 (en) 2013-11-20

Similar Documents

Publication Publication Date Title
CN102804146B (zh) 跟踪存储器件内的错误数据的系统和方法
CN102171659B (zh) 非易失性存储器中的数据错误恢复
US9329934B2 (en) Data storage device and method to correct bit values using multiple read voltages
EP2529305B1 (en) System and method to correct data errors using a stored count of bit values
KR101017847B1 (ko) 가변 판독 임계값을 갖는 비휘발성 메모리
US10755787B2 (en) Efficient post programming verification in a nonvolatile memory
CN105788648B (zh) 基于异构混合内存的nvm坏块识别处理及纠错方法和系统
US20130238955A1 (en) System and method to decode data subject to a disturb condition
CN103680637A (zh) 具有异常字线检测器的闪存系统及其异常字线检测方法
CN105144302A (zh) 存储器装置中的错误校正操作
US20190019569A1 (en) Row repair of corrected memory address
CN101339525A (zh) 一种对数据进行错误检测的方法、系统和设备
US8762626B2 (en) Data modification based on matching bit patterns
CN101923896A (zh) 电子存储装置及其纠错方法
CN104750577A (zh) 面向片上大容量缓冲存储器的任意多位容错方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: texas

Patentee after: DELPHI INT OPERATIONS LUX SRL

Address before: texas

Patentee before: Sandisk Corp.