CN105308575A - 用于错误校正码(ecc)错误处理的方法和装置 - Google Patents

用于错误校正码(ecc)错误处理的方法和装置 Download PDF

Info

Publication number
CN105308575A
CN105308575A CN201480032432.9A CN201480032432A CN105308575A CN 105308575 A CN105308575 A CN 105308575A CN 201480032432 A CN201480032432 A CN 201480032432A CN 105308575 A CN105308575 A CN 105308575A
Authority
CN
China
Prior art keywords
page
address
controller
data
physical address
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.)
Pending
Application number
CN201480032432.9A
Other languages
English (en)
Inventor
A.D.贝内特
T.H.希佩
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.)
SanDisk Corp
SanDisk Technologies LLC
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 CN105308575A publication Critical patent/CN105308575A/zh
Pending legal-status Critical Current

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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection

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

用于错误校正码(ECC)错误处理的方法和装置
技术领域
本公开一般地涉及数据贮存装置,并且更具体地涉及用于数据贮存装置的错误校正码(ECC)错误处理。
背景技术
非易失性数据贮存装置——诸如嵌入的存储器装置和可拆卸的存储器装置——已经使能数据和软件应用的改善的便携性。例如,闪速存储器装置可以在每个闪速存储器单元中贮存多个位,增强了数据贮存密度。可以使用错误校正码(ECC)技术来编码贮存在这样的装置中的数据,所述错误校正码(ECC)技术保护数据免于与电源噪声、温度变化和数据损坏的其它因素相关联的错误。ECC技术随着在每个单元中贮存的位的数量增加而特别有用。尽管如此贮存的数据可能损坏,使得传统的ECC技术不能够恢复原始数据,可能导致丢失或不可恢复用户数据。
发明内容
公开了当错误校正码(ECC)码字不能被译码时能够恢复信息的技术。为了例示,数据贮存装置的控制器可以将数据从源压缩块移动到目的地压缩块(例如,在压缩过程期间将与特定文件相关联的数据整合到单个块)。当移动数据时,控制器通常访问与数据相关联的逻辑地址以在管理表中更新数据的物理地址,所述管理表诸如组地址表(GAT)。管理表可以指示与数据相关联的逻辑地址对应于与源压缩块相关联的第一物理地址。响应于移动该数据,控制器可以更新管理表以指示数据已经被移动到目的地压缩块(即,逻辑地址与第二物理地址相关联)。
如果源压缩块贮存不可校正的信息、如与不可校正的错误校正码(UECC)错误相关联的标头,则确定与数据相关联的逻辑地址可能是困难的。如果逻辑地址不能被恢复,控制器可能无法用第二物理地址更新管理表(因为管理表可能由逻辑地址而不是物理地址来索引)。当管理表较大时(例如,包含成千上万的条目),通过管理表“抓取”以定位第一物理地址可能是费力并且耗时的。此外,在至少一些配置中,控制器无法将数据从源压缩块移动到目的地压缩块而不更新管理表,因为这样的技术可能导致逻辑地址映射到管理表中的不正确的物理地址(例如,第一物理地址)。相应地,响应于UECC错误,压缩过程可能暂停直到逻辑地址能够被恢复。
根据本公开的至少一个实施例,控制器使用一个或多个补救技术确定一个或多个试验逻辑地址。例如,如果源压缩块的第一页贮存与UECC错误相关联的信息,控制器可以访问与第一页相邻(例如,邻近第一页)的第二页以查找逻辑地址,因为第一页和第二页可能贮存与有关(例如,邻近的)的逻辑地址相关联的普通文件中包含的数据。作为另一示例,控制器可以尽管UECC错误也试图“照原样”使用标头,因为标头的一部分可能是不可校正的,但是包含逻辑地址的另一部分可能没有错误。作为另一示例,控制器可以在单个位错误阻止标头被译码的情况下试图切换(toggle)标头的位。可以使用管理表肯定或否定一个或多个试验逻辑地址。例如,在确定一个或多个试验逻辑地址之后,控制器可以使用一个或多个试验逻辑地址来访问管理表以确定所述管理表是否将一个或多个试验逻辑地址中的任一个映射到第一物理地址。
在至少一个实施例中,如果控制器确定逻辑地址不能被补救地恢复,控制器将源压缩块的第一页的指示增加到与译码错误(例如,UECC错误)相关联的页的列表。如果主机装置试图从第一页读取数据,控制器可以访问页的列表并且(例如,通过返回预定的数据序列到主机装置)指示主机装置数据不能被读取。如果主机装置随后重写数据,则第一页可以被擦除(或被覆盖)并且可以从页的列表中移除该指示。
附图说明
图1是包括用于在第一次操作时的错误校正码(ECC)错误处理的数据贮存装置的系统的具体示意性实施例的框图;
图2是示出在第二次操作时图1的系统的特定配置的框图;
图3是图1的数据贮存装置的操作的示例方法的具体示意性实施例的流程图;以及
图4是图1的数据贮存装置的操作的另一示例方法的具体示意性实施例的流程图。
具体实施方式
参照图1,系统100的特定实施例包括数据贮存装置102和主机装置150。在图1的特定示例中,数据贮存装置102耦接到主机装置150。例如,数据贮存装置102可以诸如结合可拆卸的通用串行总线(USB)配置而可拆卸地耦接到主机装置150。在至少一个可替换实施例中,数据贮存装置102诸如根据嵌入的多媒体卡(eMMC)配置被嵌入在主机装置150中。
为了进一步说明,数据贮存装置102可以对应于存储器卡,所述存储器卡诸如安全数字卡、卡、miniSDTM卡(特拉华州威明顿市的SD-3CLLC的商标)、多媒体卡TM(MMCTM)卡(弗吉尼亚州阿灵顿市的JEDEC固态技术协会的商标)或者(CF)卡(加利福尼亚州苗比达市的SanDisk公司的商标)。作为另一示例,数据贮存装置102可以被配置为诸如结合作为示意性示例的(弗吉尼亚州阿灵顿市的JEDEC固态技术协会的商标)以及eSD配置而耦接到主机装置150作为嵌入式存储器。为了例示,数据贮存装置102可以对应于eMMC装置。数据贮存装置102可以依照JEDEC行业规范而操作。例如,数据贮存装置102可以依照JEDECeMMC规范、JEDEC通用闪速存储(UFS)规范、一个或多个其它规范或其组合而操作。
数据贮存装置102包括非易失性存储器104和控制器124。非易失性存储器104和控制器124可以通过总线、接口或者其它结构耦接。非易失性存储器104可以包括多个贮存元件的块。在图1的示例中,非易失性存储器104包括块106和块122。块106和块122可以分别对应于从其移动数据以及将数据移动到其的块。例如,块106可以结合压缩过程而对应于要从其移动数据的源压缩块,并且块122可以对应于数据要移动到其的目的地压缩块。非易失存储器104的每个块可以包括多个页。在图1的示例中,块106包括页108和页118。页108、118可以对应于贮存了由一个或多个错误校正码(ECC)技术(例如,ECC页)保护的数据的页。
控制器124被配置为从主机装置150接收数据和指令并且发送数据到主机装置150。控制器124还被配置为将数据和命令发送到非易失性存储器104并且从非易失性存储器104接收数据。例如,控制器124被配置为发送数据和写入命令以使非易失性存储器104将数据贮存到非易失性存储器104的指定的地址。作为另一示例,控制器124被配置为发送读取命令以从非易失性存储器104的指定的地址读取数据。
控制器124可以包括错误校正码(ECC)引擎126、随机存取存储器(RAM)128、试验逻辑地址产生器140和主机接口144。随机存取存储器128可以包括贮存逻辑到物理地址映射132的管理表130。在具体实施例中,管理表130对应于组地址表(GAT),并且逻辑到物理地址映射132将数据的逻辑组映射到非易失存储器104的物理地址。作为具体示例,GAT可以将逻辑地址116(在块106中的有效数据112的)和一个或多个其它逻辑地址映射到与块106相关联的物理地址。
ECC引擎126可以被配置为从主机装置150接收将被贮存到存储器104的数据,并且基于所述数据产生码字。例如,ECC引擎126可以包括编码器124,所述编码器被配置为使用ECC编码技术编码数据。ECC引擎126可以包括ReedSolomon编码器、Bose-Chaudhuri-Hocquenghem(BCH)编码器、低密度奇偶校验(LDPC)编码器、Turbo码编码器、被配置为根据一个或多个其它ECC编码技术编码数据的编码器或其组合。ECC引擎126可以包括译码器,该译码器被配置为译码从存储器104读取的数据以检测和校正达ECC技术的错误校正极限的、可能出现在数据中的位错误。由于ECC技术的错误校正极限,如下所述,ECC引擎126可能不能够校正在读取数据中的某些位错误。
主机装置150可以对应于移动电话、音乐播放器、视频播放器、游戏操纵台、电子书阅读器、个人数字助理(PDA)、诸如膝上型计算机或者笔记本计算机的计算机、其它电子装置或者其组合。主机装置150通过主机控制器144通信,其中所述主机控制器144可以使能主机装置150从非易失性存储器104读取数据并且将数据写入到非易失性存储器104。主机装置150可以依照联合电子装置工程协会(JEDEC)行业规范来操作,所述行业规范诸如通用闪速存储(UFS)主机控制器接口规范或者嵌入的多媒体卡(eMMC)规范。主机装置150可以依照一个或多个其它规范,诸如作为示意性示例的安全数字(SD)主机控制器规范来操作。主机装置150可以根据其它合适的通信协议与非易失性存储器104通信。
在操作期间,控制器124可以尝试从页108读取有效数据112。在具体示意性实施例中,控制器124在开始与非易失存储器104相关联的压缩过程时尝试读取有效数据112。例如,如果控制器124确定块106的页108贮存了有效数据112和废弃的数据110,控制器124可以确定有效数据112应被移动到块122(例如,和与特定的文件相关联的其它数据“合并(consolidated)”)使得块106可被擦除并且重用。
为了移动有效数据112,控制器124可以读取表示与有效数据112相关联的逻辑地址116的信息(例如,标头114)。例如,控制器124可以读取标头114,并且ECC引擎126可以译码标头114以确定逻辑地址116。响应于ECC引擎126成功地译码标头114以确定逻辑地址116,控制器124可以将有效数据112移动到块122,并且可以用块122的物理地址来更新管理表130以指示有效数据112被贮存在块122处。作为具体示例,控制器124可以更新逻辑到物理地址映射132以指示逻辑地址116与块122的物理地址(而不是与块106的页108相关联的物理地址)相关联。
如果ECC引擎126不能成功地译码标头114,则控制器124确定与页108相关联的译码错误,诸如无法校正的错误校正码(UECC)错误。例如,如果控制器124不能译码标头114,则控制器124可能无法确定与有效数据112相关联的逻辑地址116。译码错误可以防止控制器124从标头114可靠地读取逻辑地址116。没有逻辑地址116,控制器124可能无法更新逻辑到物理地址映射132。例如,如果逻辑到物理地址映射132通过逻辑地址来索引,扫描在逻辑到物理地址映射132中的物理地址以寻找对应于页108的物理地址的条目可能是冗长的并且计算上困难的。此外,由于该技术可能导致不准确的管理信息(例如,不正确的物理地址与逻辑地址116相关联),控制器124可能无法在不更新逻辑到物理地址映射132的情况下移动有效数据112。相应地,控制器124可能无法移动有效数据112(或可能无法在不进行冗长的物理地址搜索的情况下移动有效数据112),并且操作(例如,压缩过程)可以暂时暂停。
响应于确定所述译码错误,控制器124可以利用一个或多个补救技术以确定逻辑地址116。所进行的特定的补救技术和补救技术的应用的次序可以取决于特定的应用,如将由本领域技术人员所理解的。试验逻辑地址产生器140可以应用补救技术以确定一个或多个试验逻辑地址142。控制器124可以使用一个或多个试验逻辑地址142访问逻辑到物理地址映射132以确定一个或多个试验逻辑地址142中的任一个是否被“校正”。就是说,控制器124可以确定逻辑到物理地址映射132是否将一个或多个试验逻辑地址142中的任一个映射到页108的物理地址。如果逻辑到物理地址映射132将试验逻辑地址142中的任一个映射到页108的物理地址,则控制器124已经“找到”逻辑地址116(例如,已经正确地“猜测到”逻辑地址116)。
根据第一技术,控制器124可以访问页118以确定逻辑地址120。例如,页118可以对应于在页108的某些地址范围中(例如,在页108的物理地址的三个物理地址值中)的“相邻”页——诸如相邻的ECC页。在具体实施例中,页118与页108相邻(例如,处于页108的物理地址的一个物理地址值中)。例如,页108、118可以对应于在非易失存储器104的单个字线上的相邻的ECC页。作为另一示例,页108、118可以对应于在非易失存储器104的连续的物理地址处的相邻字线上的相邻的ECC页。
根据所述第一技术,控制器124可以基于逻辑地址120确定一个或多个试验逻辑地址142。例如,控制器124可以读取页118,以确定ECC引擎126是否可以提供逻辑地址120的错误已被校正的版本。如果ECC引擎126提供逻辑地址120的错误已被校正的版本,试验逻辑地址产生器140可以基于在页108和页118之间的物理地址的数量而增加或减少逻辑地址120。为了例示,如果页108的物理地址对应于x、并且页118的物理地址对应于x+1,则试验逻辑地址产生器140可以减少逻辑地址120达一个逻辑地址值以确定试验逻辑地址142中的一个。作为另一说明,如果页108的物理地址对应于x、并且页118的物理地址对应于x-2,则试验逻辑地址产生器140可以增加逻辑地址120达两个逻辑地址值以确定一个或多个试验逻辑地址142中的一个。当有效数据112被包括在贮存在非易失存储器104的多个页之上的大型文件中时,第一技术可能是具体地有效的。
可替代地或除了第一技术以外,试验逻辑地址产生器140可以使用第二技术来确定一个或多个试验逻辑地址142。根据所述第二技术,试验逻辑地址产生器140可以尝试“照原样”使用逻辑地址116,尽管与标头114和/或页108相关联的译码错误。例如,尽管由于大量的错误(引起与页108相关联的译码错误),ECC引擎126可能无法译码有效数据112,但是标头114的某些位可能未损坏。因此,根据所述第二技术,试验逻辑地址产生器140可以(例如,尽管译码错误,也通过使用逻辑地址116访问逻辑到物理地址映射132)尝试“照原样”使用逻辑地址116。
可替代地或除了第一技术和/或第二技术以外,试验逻辑地址产生器140可以使用第三技术确定一个或多个试验逻辑地址142。根据第三技术,试验逻辑地址产生器140可以切换逻辑地址116的至少一位以产生一个或多个试验逻辑地址142。例如,试验逻辑地址产生器140可以迭代地切换逻辑地址116的每一位,并且访问逻辑到物理地址映射132。当在逻辑地址116中有单个特定的位错误时,第三技术可能特别有效。
如果使用一个或多个试验逻辑地址142中的任一个访问逻辑到物理地址映射132返回了对应于(例如,“匹配于”)页108的物理地址的物理地址,则控制器124可以确定对应于页108的正确的逻辑地址已被补救地确定。相应地,控制器124可以继续操作(例如,压缩过程可以继续)。例如,控制器124可以将有效数据112移动到块122,并且更新逻辑到物理地址映射132以指示逻辑地址116与块122的物理地址相关联。在将有效数据112移动到块122之后,控制器124可以擦除块106(例如,以擦除废弃的数据110)。
如果使用一个或多个试验逻辑地址142访问逻辑到物理地址映射132不返回对应于(例如,“匹配”)页108的物理地址的物理地址,则控制器124可以确定对应于页108的正确的逻辑地址没有被补救地确定。在至少一个实施例中,如进一步参考图2解释的,控制器124被配置为将页108的物理地址的指示增加到与译码错误相关联的页的列表。
通过使用参考图1描述的一个或多个补救技术,当有效数据112不能被译码时,控制器124可以补救地确定逻辑地址116。没有这样的补救技术,则控制器124可能无法继续压缩过程——例如,如果逻辑地址116不能被确定,则控制器124可能无法用在块122中的目的地页的物理地址来更新逻辑到物理地址映射132,暂停了该压缩过程。使用图1的一个或多个补救技术可以因此提高数据贮存装置102的性能。
参考图2,描绘了系统的具体示意性实施例并且被一般地指定为200。在具体实施例中,系统200对应于图1的系统100的第二操作的状态。
可以如参考图1的系统100描述图2的系统200的特定组件与操作。例如,系统200包括数据贮存装置102和主机装置150。数据贮存装置102包括非易失存储器104和控制器124。非易失存储器104包括块106。控制器124包括ECC引擎126、随机存取存储器128、试验逻辑地址产生器140和主机接口144。块106包括页108。RAM128贮存管理表130。
在图2的具体示例中,块106进一步包括页204,并且RAM128进一步贮存列表208。列表208可以指示与未校正的译码错误相关联的非易失存储器104的页的地址(例如,物理地址),所述未校正的译码错误诸如无法校正的错误校正码(UECC)错误。
在操作中,控制器124可以确定页108与未校正的译码错误相关联。例如,如果参考图1描述的补救技术没有一个产生对应于页108的物理地址的逻辑地址,则控制器124可以确定页108与未校正的译码错误相关联。在具体示意性实施例中,试验逻辑地址产生器140被配置为连续地应用第一技术以产生一个或多个试验逻辑地址142的第一试验逻辑地址、应用第二技术以产生一个或多个试验逻辑地址142的第二试验逻辑地址、且应用第三技术以产生一个或多个试验逻辑地址142的一个或多个第三试验逻辑地址(例如,通过在逻辑地址116中的连续的位位置处“翻转(flip)”位而产生的一系列的试验地址)。控制器124可被配置为连续地使用第一试验逻辑地址、第二试验逻辑地址和第三试验逻辑地址来访问管理表130。如果第一试验逻辑地址、第二试验逻辑地址和一个或多个第三试验逻辑地址中没有一个对应于页108的物理地址,则控制器124可以确定页108与未校正的译码错误相关联。
响应于确定页108与未校正的译码错误相关联,控制器124可以将页108的指示210添加到列表208。例如,指示210可以指定与页108相关联的物理地址。控制器124可以响应于来自主机装置150的存储器访问请求来访问列表208。例如,控制器124可以从主机装置150接收请求212。请求212可以指示对应于地址214(例如,逻辑地址)的读取访问。控制器124可以确定列表208是否包括对应于地址214的指示。例如,当进行地址转换操作时(例如,当使用管理表130将地址214转换到物理地址时)控制器124可以访问列表208。在进行地址转换操作以确定对应于地址214的物理地址时,控制器124可以访问列表208以确定列表208是否包括物理地址的指示。
如果列表208包括对应于地址214的物理地址的指示(例如,如果请求212指示主机装置150正试图从页108读取数据),控制器124可以返回预定的数据序列到主机装置150。预定的数据序列可以指示对应于地址214的物理地址与未校正的译码错误相关联,所述未校正的译码错误诸如无法校正的错误校正码(UECC)错误,并且所请求的数据不能被提供到主机装置150。在具体实施例中,预定的数据序列包括每一个具有逻辑的零值的逻辑位序列。
在图2中示出的特定操作状态中,管理表130由于与页108相关联的译码错误而仍参考页108。就是说,因为与页108相关联的正确的逻辑地址不能够被补救地确定,管理表130仍指示页108贮存有效数据。相应地,当管理表130仍参考页108时,新的有效数据不应被写入页108,因为将新的数据写入到页108可能导致管理表130将多个逻辑地址映射到页108的物理地址,这是不希望的。相反,控制器124可以擦除块106,并且将伪数据202写入到页108。伪数据202可以包括逻辑位的随机或伪随机序列以减少电荷耦合或可能由保持否则将用于数据贮存器的在块中擦除的页而造成的其它效应。伪数据202可以根据第一示例或根据第二示例而写入到页108。根据第一示例,响应于确定页108与未校正的译码错误相关联,控制器124可以擦除页108的内容并且将伪数据202写入到页108。由于新的数据被写入到块,页108被“跳过”。例如,当数据206将被写入到块106时,数据206被写入到页204,"跳过"页108。
根据第二示例,响应于确定页108与未校正的译码错误相关联,控制器124可以擦除页108的内容并且开始将新的数据写入到块106。例如,控制器124可以将数据206写入到页204。当块106另外被“填充”到页108的点时,控制器124可以将有效数据写入到块106并且将伪数据202写入到页108。第二示例可能特别适用于通过以顺序的次序将数据写入到块(例如,以避免由于非顺序地将数据写入到块的硬件故障,诸如电荷积累)来改善装置操作的配置中。在控制器124将伪数据202写入到页108、并且添加块106的指示到可用的块的列表(例如,在管理表130处)之后,主机装置150可以尝试读取或重写擦除的页108的内容(即,在图1的特定示例中的有效数据112)。因为来自主机装置150的这样的请求可以指示与擦除的内容相关联的逻辑地址(即,在图1的示例中的逻辑地址116),数据贮存装置102可以利用这种请求"恢复"逻辑地址116。例如,响应于这样的请求控制器124可以更新管理表130并且从列表208移除指示210。
作为具体示例,主机装置150可以将图1的有效数据112重写到数据贮存装置102。如果主机装置150在擦除有效数据112之后重写有效数据112,则控制器124可以擦除页108的内容,用将写入有效数据112的物理地址来更新管理表130并且从列表208移除指示210。
作为另一示例,主机装置150可以(例如,经由请求212)尝试读取图1的有效数据112。如果主机装置150在擦除有效数据112之后尝试读取有效数据112,控制器124可以响应于接收到请求212而如上所述地操作。例如,控制器124可以将预定的数据序列返回到主机装置150,指示有效数据112不可用并且不能被提供到主机装置150。此外,控制器124可以更新管理表130(例如,删除与图1的逻辑地址116相关联的映射)并且可以从列表208移除指示210。
因为控制器124保持列表208,控制器124可以延迟“更新”管理表130,直到从主机装置150接收了指定逻辑地址116的请求,其不能使用图1的补救技术恢复。具体地,列表208可以由控制器124访问以确保逻辑地址116没有被无意地映射到在管理表130中的多个物理地址,这可能导致恶劣的性能(例如擦除了有效数据)。
参考图3,描绘了一种方法的具体示意性实施例,并且该实施例被一般地指定为300。可以诸如由控制器124在数据贮存装置102中进行方法300。
在302处,方法300包括确定与贮存在非易失存储器的第一块的页处的数据相关联的译码错误。在具体示意性实施例中,在与非易失存储器相关联的压缩过程期间确定译码错误。译码错误可以对应于无法校正的错误校正码(UECC)错误。非易失存储器可以对应于非易失存储器104。第一块可以对应于块106。数据可以对应于有效数据112。
在304处,方法300进一步包括响应于所述译码错误从管理表访问物理地址。物理地址对应于试验逻辑地址,其可以对应于一个或多个试验逻辑地址142中的任一个。管理表可以对应于管理表130。在具体实施例中,管理表对应于组地址表(GAT)。可以由试验逻辑地址产生器140确定试验逻辑地址。
在306处,方法300进一步包括响应于所述物理地址对应于所述页,将数据移动到非易失性存储器的第二块。例如,如果从所述管理表访问的物理地址是所述页的物理地址,则从所述管理表访问的物理地址对应于(例如,“匹配于”)所述页。第二块可以对应于块122。
通过使用试验逻辑地址来访问管理表,可以避免复杂的操作。例如,可以避免"抓取"(例如,扫描)管理表以寻找正确的逻辑地址。抓取管理表以确定正确的逻辑地址可能是耗时的,尤其是当管理表贮存通过逻辑地址索引的数千条目时。相应地,使用试验逻辑地址简化了操作并且改善了数据贮存装置的性能。
参考图4,描绘了一种方法的具体示意性实施例并且将其一般地指定为400。可以诸如由控制器124在数据贮存装置102中进行方法400。
方法400包括在402处开始压缩过程。在404处,读取页。所述页贮存将要压缩的数据。所述页可以对应于页108。在406处,作出数据是否是可校正的决定。如果所述数据是可校正的(例如,如果ECC引擎126成功地译码所述数据),则读取下一页。如果数据是不可校正的,诸如响应于无法校正的错误校正码(UECC)错误,在408处使用一个或多个试验逻辑地址来应用一个或多个补救技术。补救技术可以包括参考图1描述的第一技术、第二技术和第三技术中的一个或多个。一个或多个试验逻辑地址可以对应于一个或多个试验逻辑地址142。
在410处,作出对应于所述页的逻辑地址是否已被找到的决定。如果已经找到所述逻辑地址,方法400进一步包括在412处移动数据到目的地压缩块,更新管理表(例如,管理表130),并擦除页的内容。目的地压缩块可以对应于块122。
如果没有找到逻辑地址,则在414处将该页的物理地址添加到页的列表。例如,指示210可以被添加到列表208。在416处,该数据被擦除,并且用伪数据——诸如伪数据202——填充该页。如参考图2所述的,可以根据第一示例或根据第二示例用伪数据填充该页。
在418处,从诸如主机装置150的主机装置接收请求以从该页读取数据。请求可以对应于请求212。在420处,访问该列表以确定该列表指示该页(例如,该列表指示该页的物理地址)。在422处,预定的数据序列被返回到主机装置,表示该数据不可用(例如,由于译码错误)。响应于访问页的该列表并且进一步响应于确定页的该列表指示该页与译码错误相关联,预定的数据序列可以被返回到主机装置。在具体实施例中,可以响应于接收从该页读取数据的请求来更新管理表。例如,如果从该页读取数据的请求指示与该页相关联的该逻辑地址,逻辑地址可被用于访问管理表并且更新管理表以指示该数据已经丢失(例如,该逻辑地址不再映射到该页的物理地址)。响应于更新该管理表,可以从该列表移除该指示。
在424处,从主机装置接收重写该数据的请求。可以响应于预定的数据序列来接收该请求。例如,在某些应用中,主机装置可能能够响应于接收表示该数据不可用的预定的数据序列来重写数据(例如,当用户稍后加载该数据到主机装置、诸如结合在主机装置处加载或保存文件时)。根据其他实施例,可以在接收用于读取访问该数据的请求之前接收重写数据的请求。
在426处,响应于重写数据的请求而重写该数据。在具体实施例中,响应于重写数据的请求,由重写数据的请求指示的逻辑地址被用于更新该列表以及更新该管理表。例如,可以更新该列表以从列表中移除页的指示(如果该指示还未被移除,诸如响应于用于读取访问该页的先前请求)并且可以更新管理表以指示该页的物理地址不再与该逻辑地址相关联(如果先前未发生这种更新,诸如响应于用于读取访问该页的请求)。
在从页的该列表移除该指示之后,该源压缩块可被重用而不用将伪数据重写到页。例如,在源压缩块的每一页处的数据(包括伪数据)可以被擦除。源压缩块可以以将主机数据贮存到该页的传统的方式保持在擦除状态,或者可以用主机数据填充(例如,响应于用于从该主机装置写入访问的请求)。
通过根据图4的方法400而操作,可以使用试验逻辑地址处理译码错误。此外,这种译码错误的处理可能通过保持与译码错误(例如,未校正的译码错误)相关联的页的列表而被延迟(例如,同时压缩过程继续)。相应地,保持页的该列表可以避免响应于主机请求来访问不可校正的数据。
这里描述的技术可能特别有利于其中主机装置可以在给定时间将数据写入到任何特定的块的数据贮存装置配置(例如,可以非顺序地写入数据的配置)。例如在可以非顺序地写入数据的配置中,特定的块的页可能不与有关的数据相关联。参考图1描述的第二补救技术和第三补救技术在这样的配置中可能是有利的。参考图1描述的第一补救的技术可能在顺序地写入数据的配置中是有利的。可以基于特定的应用选择使用的一个或多个技术。此外,这里描述的技术可以通过对主机装置“透明的”数据存储装置(例如,不变更主机装置的配置或操作)来实现。
尽管这里描述的各种组件被示出为块组件并且以一般术语描述,这种组件可以包括微处理器、状态机或被配置为能够使得控制器124(或其一个或多个组件)进行这里描述的操作的其它电路中的一个或多个。例如,试验逻辑地址产生器140可以对应于一个或多个物理组件,诸如硬件控制器、状态机、逻辑电路、一个或多个其它结构或其组合,以使得控制器124能够进行这里描述的一个或多个操作。
为了进一步说明,根据具体示例,图1的控制器124的处理单元可以执行通用指令(例如,与通用指令集体系结构相关联的指令)以贮存诸如管理表130的管理表。可以通过执行通用指令,诸如通过执行通用读取和写入指令,来存储和维持该管理表。处理单元可以确定与存储在非易失存储器的第一块的页中、诸如块106的页108的信息相关联的译码错误。作为具体示例,可以通过执行通用添加和比较指令来确定奇偶校验错误。响应于该译码错误,处理单元可以从管理表访问物理地址(例如,通过执行通用读取指令)。物理地址对应于试验逻辑地址,诸如一个或多个试验逻辑地址142。响应于该物理地址对应于该页,处理单元可以(例如,通过执行通用移动或写入指令)从页移动数据到第二块,诸如块122。
可以使用程序化以进行这里描述的操作的微处理器或微控制器来实现控制器124的一个或多个方面,该操作诸如对应于图3和4的方法300和400的操作。在具体实施例中,控制器124包括执行贮存在非易失存储器104的指令的处理器。可替代地或此外,由处理器执行的可执行指令被贮存在不是非易失存储器104的一部分的分开的存储器地址处,诸如在只读存储器(ROM)处。
在具体实施例中,可以在被配置为选择性地耦接到一个或多个外部装置、诸如主机装置150的便携式装置中实现数据贮存装置102。然而,在其它实施方案中,数据贮存装置102可以附接至或嵌入一个或多个主机装置中,诸如在主机通信装置的外壳中,该主机装置可以对应于主机装置150。例如,数据贮存装置102可以与封装的设备集成,该设备诸如无线电话、个人数字助理(PDA)、游戏装置或操纵台、便携式导航装置或使用非易失性存储器的其它装置。在具体实施例中,数据贮存装置102可以被耦接到非易失性存储器,诸如三维(3D)存储器、闪速存储器(例如,NAND、NOR、多层单元(MLC))、分裂位线NOR(DINOR)存储器、AND存储器、高电容耦接率(HiCR)、不对称的非接触式晶体管(ACT)或其它闪速存储器)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次性可编程存储器(OTP)或者任何其它类型的存储器。
对这里所述的实施例的说明意欲提供对各种实施例的一般理解。可以使用并且从本公开中得出其它实施例,使得可以在不脱离本公开的范围的情况下作出结构的和逻辑的替换和改变。本公开意欲覆盖各种实施例的任何和全部后续改变或变化。作为具体示例,尽管参考示例压缩过程描述了某些ECC错误处理技术,这样的技术可以应用到其它装置操作和配置,诸如包括将数据从非易失性存储器的一页移动到另一页的其它操作。本领域技术人员将认识到这样的修改在本公开的范围内。
上述主题应被认为是示意性的,而不是限制性的,并且所附权利要求意欲覆盖落入本公开的范围内的所有这样的修改、改进和其它实施例。因此,在法律所允许的最大范围,本发明的范围应该由下述权利要求及其等价物的最宽许可的解释所确定,并且不应被前述详细的描述所局限或者限制。

Claims (20)

1.一种方法,包括:
在包含非易失性存储器和控制器的数据贮存装置中,其中所述控制器贮存管理表,由所述控制器进行:
确定与贮存在所述非易失性存储器的第一块的页处的信息相关联的译码错误;
响应于所述译码错误,从所述管理表访问物理地址,所述物理地址对应于试验逻辑地址;以及
响应于所述物理地址对应于所述页,将数据从所述页移动到所述非易失性存储器的第二块。
2.如权利要求1所述的方法,其中在与所述非易失性存储器相关联的压缩过程期间确定所述译码错误,其中所述第一块对应于源压缩块,并且其中所述第二块对应于目的地压缩块。
3.如权利要求2所述的方法,其中所述译码错误防止从与所述数据相关联的标头可靠地读取逻辑地址。
4.如权利要求1所述的方法,还包含用第二物理地址更新所述管理表,所述第二物理地址与所述第二块相关联。
5.如权利要求1所述的方法,还包含确定所述试验逻辑地址,其中确定所述试验逻辑地址包括:
读取贮存在与所述页相邻的第二页处的逻辑地址;以及
基于贮存在所述第二页处的逻辑地址产生所述试验逻辑地址。
6.如权利要求1所述的方法,还包含确定所述试验逻辑地址,其中确定所述试验逻辑地址包括从与所述页相关联的标头读取逻辑地址。
7.如权利要求1所述的方法,还包含确定所述试验逻辑地址,其中确定所述试验逻辑地址包括切换从与所述页相关联的标头读取的逻辑地址中的至少一位。
8.一种数据贮存装置,包括:
非易失性存储器;以及
耦接到所述非易失性存储器的控制器,所述控制器被配置贮存管理表,其中所述控制器还被配置为:
确定与贮存在所述非易失性存储器的第一块的页处的信息相关联的译码错误;
响应于所述译码错误,从所述管理表访问物理地址,所述物理地址对应于试验逻辑地址;并且
响应于所述物理地址对应于所述页,从所述页移动数据到所述非易失性存储器的第二块。
9.如权利要求8所述的数据贮存装置,其中所述数据贮存装置嵌入在主机装置中。
10.如权利要求8所述的数据贮存装置,其中所述控制器还被配置为通过读取与所述页相邻的第二页的逻辑地址并且通过基于所述逻辑地址产生所述试验逻辑地址来确定所述试验逻辑地址。
11.如权利要求10所述的数据贮存装置,其中所述控制器还被配置为响应于所述物理地址不对应于所述页,通过从与所述页相关联的标头读取逻辑地址来确定第二试验逻辑地址。
12.如权利要求11所述的数据贮存装置,其中所述控制器还被配置为从所述管理表访问第二物理地址,所述第二物理地址对应于所述第二试验逻辑地址。
13.如权利要求12所述的数据贮存装置,其中所述控制器还被配置为响应于所述第二物理地址不对应于所述页,通过切换从所述标头读取的所述逻辑地址中的至少一位来确定第三试验逻辑地址。
14.如权利要求13所述的数据贮存装置,其中所述控制器还被配置为从所述管理表访问第三物理地址,所述第三物理地址对应于所述第三试验逻辑地址。
15.如权利要求8所述的数据贮存装置,其中所述控制器还被配置为保持与未校正的译码错误相关联的所述非易失性存储器的页的列表。
16.如权利要求15所述的数据贮存装置,其中所述控制器还被配置为,响应于从主机装置接收对应于特定的物理地址的请求,访问页的所述列表并且在列表中检查所述特定的物理地址。
17.如权利要求16所述的数据贮存装置,其中所述控制器还被配置为响应于所述列表指示特定的物理地址,将预定的数据序列返回到所述主机装置,所述预定的数据序列指示所述数据不可用。
18.如权利要求15所述的数据贮存装置,其中所述控制器还被配置为响应于所述物理地址不对应于所述页,将伪数据写入所述页。
19.如权利要求15所述的数据贮存装置,其中所述控制器还被配置为从主机装置接收重写数据的请求并且响应于所述请求从页的列表移除所述指示。
20.如权利要求8所述的数据贮存装置,其中所述控制器包括被配置为贮存所述管理表的随机存取存储器(RAM),并且其中所述控制器还包括被配置为确定所述译码错误的错误校正码(ECC)引擎。
CN201480032432.9A 2013-08-06 2014-08-01 用于错误校正码(ecc)错误处理的方法和装置 Pending CN105308575A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/960,527 2013-08-06
US13/960,527 US20150046772A1 (en) 2013-08-06 2013-08-06 Method and device for error correcting code (ecc) error handling
PCT/US2014/049413 WO2015020900A2 (en) 2013-08-06 2014-08-01 Method and device for error correcting code (ecc) error handling

Publications (1)

Publication Number Publication Date
CN105308575A true CN105308575A (zh) 2016-02-03

Family

ID=51358095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480032432.9A Pending CN105308575A (zh) 2013-08-06 2014-08-01 用于错误校正码(ecc)错误处理的方法和装置

Country Status (4)

Country Link
US (1) US20150046772A1 (zh)
KR (1) KR20160039153A (zh)
CN (1) CN105308575A (zh)
WO (1) WO2015020900A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073470A (zh) * 2016-11-07 2018-05-25 三星电子株式会社 执行地址映射表的纠错的存储器系统及其控制方法
CN109582484A (zh) * 2017-09-29 2019-04-05 辉达公司 防范在汽车系统中实现的纠错码(ecc)中的错误
CN110543790A (zh) * 2018-05-29 2019-12-06 英飞凌科技股份有限公司 访问存储器的方法、装置、设备和计算机可读介质
CN113791930A (zh) * 2021-09-14 2021-12-14 浙江大华存储科技有限公司 读命令的处理方法和装置、存储介质及电子装置
US11494265B2 (en) 2017-09-29 2022-11-08 Nvidia Corporation Securing against errors in an error correcting code (ECC) implemented in an automotive system

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10025652B2 (en) 2015-10-27 2018-07-17 Western Digital Technologies, Inc. Error location pointers for non volatile memory
US10255004B2 (en) * 2015-11-16 2019-04-09 Marvell World Trade Ltd. Systems and methods for managing address-mapping data in memory devices
KR102473209B1 (ko) * 2015-12-14 2022-12-02 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
JP7042716B2 (ja) * 2018-07-26 2022-03-28 キオクシア株式会社 記憶装置及び記憶制御方法
CN114595090A (zh) * 2020-12-03 2022-06-07 华为技术有限公司 一种纠错方法及装置
TWI826161B (zh) * 2022-12-02 2023-12-11 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060039196A1 (en) * 2003-10-03 2006-02-23 Gorobets Sergey A Corrected data storage and handling methods
CN101576853A (zh) * 2008-05-06 2009-11-11 群联电子股份有限公司 数据存取方法、使用此方法的控制器与存储系统
US20100115377A1 (en) * 2008-10-31 2010-05-06 Samsung Electronics Co., Ltd. Method of estimating and correcting errors in memory cells
US20110185251A1 (en) * 2010-01-27 2011-07-28 Sandisk Corporation System and method to correct data errors using a stored count of bit values
US20110238629A1 (en) * 2010-03-23 2011-09-29 Apple Inc. Uncorrectable error handling schemes for non-volatile memories
CN102385535A (zh) * 2010-08-31 2012-03-21 苹果公司 处理从非易失性存储器进行设备引导期间的错误
CN102918599A (zh) * 2009-12-18 2013-02-06 桑迪士克科技股份有限公司 具有基本程序序列和写中止检测的非易失性存储器和方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1552518A2 (en) * 2002-09-27 2005-07-13 Koninklijke Philips Electronics N.V. Methods and devices for defect and reallocation management on write-once media
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US8301912B2 (en) * 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
WO2009124320A1 (en) * 2008-04-05 2009-10-08 Fusion Multisystems, Inc. Apparatus, system, and method for bad block remapping
US9063886B2 (en) * 2009-09-18 2015-06-23 Apple Inc. Metadata redundancy schemes for non-volatile memories
US8312349B2 (en) * 2009-10-27 2012-11-13 Micron Technology, Inc. Error detection/correction based memory management
JP5066199B2 (ja) * 2010-02-12 2012-11-07 株式会社東芝 半導体記憶装置
US8892981B2 (en) * 2010-09-30 2014-11-18 Apple Inc. Data recovery using outer codewords stored in volatile memory
US8503237B1 (en) * 2011-05-18 2013-08-06 Western Digital Technologies, Inc. System and method for data recovery in a solid state storage device
EP2802991B1 (en) * 2012-01-12 2020-05-06 SanDisk Technologies LLC Systems and methods for managing cache admission
US20140032820A1 (en) * 2012-07-25 2014-01-30 Akinori Harasawa Data storage apparatus, memory control method and electronic device with data storage apparatus
US20140115422A1 (en) * 2012-10-24 2014-04-24 Laurence H. Cooke Non-volatile memory error correction
US9720717B2 (en) * 2013-03-14 2017-08-01 Sandisk Technologies Llc Virtualization support for storage devices

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060039196A1 (en) * 2003-10-03 2006-02-23 Gorobets Sergey A Corrected data storage and handling methods
CN101576853A (zh) * 2008-05-06 2009-11-11 群联电子股份有限公司 数据存取方法、使用此方法的控制器与存储系统
US20100115377A1 (en) * 2008-10-31 2010-05-06 Samsung Electronics Co., Ltd. Method of estimating and correcting errors in memory cells
CN102918599A (zh) * 2009-12-18 2013-02-06 桑迪士克科技股份有限公司 具有基本程序序列和写中止检测的非易失性存储器和方法
US20110185251A1 (en) * 2010-01-27 2011-07-28 Sandisk Corporation System and method to correct data errors using a stored count of bit values
US20110238629A1 (en) * 2010-03-23 2011-09-29 Apple Inc. Uncorrectable error handling schemes for non-volatile memories
CN102385535A (zh) * 2010-08-31 2012-03-21 苹果公司 处理从非易失性存储器进行设备引导期间的错误

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073470A (zh) * 2016-11-07 2018-05-25 三星电子株式会社 执行地址映射表的纠错的存储器系统及其控制方法
CN108073470B (zh) * 2016-11-07 2023-04-07 三星电子株式会社 执行地址映射表的纠错的存储器系统及其控制方法
CN109582484A (zh) * 2017-09-29 2019-04-05 辉达公司 防范在汽车系统中实现的纠错码(ecc)中的错误
CN109582484B (zh) * 2017-09-29 2022-02-08 辉达公司 防范在汽车系统中实现的纠错码(ecc)中的错误
US11494265B2 (en) 2017-09-29 2022-11-08 Nvidia Corporation Securing against errors in an error correcting code (ECC) implemented in an automotive system
CN110543790A (zh) * 2018-05-29 2019-12-06 英飞凌科技股份有限公司 访问存储器的方法、装置、设备和计算机可读介质
CN110543790B (zh) * 2018-05-29 2023-12-12 英飞凌科技股份有限公司 访问存储器的方法、装置、设备和计算机可读介质
CN113791930A (zh) * 2021-09-14 2021-12-14 浙江大华存储科技有限公司 读命令的处理方法和装置、存储介质及电子装置

Also Published As

Publication number Publication date
WO2015020900A2 (en) 2015-02-12
US20150046772A1 (en) 2015-02-12
WO2015020900A3 (en) 2015-06-18
KR20160039153A (ko) 2016-04-08

Similar Documents

Publication Publication Date Title
CN105308575A (zh) 用于错误校正码(ecc)错误处理的方法和装置
CN108733510B (zh) 数据储存装置及映射表重建方法
US10013307B1 (en) Systems and methods for data storage devices to use external resources
CN107229577B (zh) 存储系统及其操作方法
JP5649742B2 (ja) トランザクションログの復元
CN106095699B (zh) 用于快闪存储器的可扩展spor算法
US20160283401A1 (en) Memory system and operating method for improving rebuild efficiency
US20150349805A1 (en) Method of Handling Error Correcting Code in Non-volatile Memory and Non-volatile Storage Device Using the Same
TWI548990B (zh) 記憶體儲存裝置及其還原方法與記憶體控制器
US11544157B2 (en) Apparatus and method for storing data in an MLC area of a memory system
CN113031856B (zh) 存储器子系统中的断电数据保护
US20200310926A1 (en) Apparatus and method for reducing cell disturb in an open block of a memory system during a receovery procedure
US11029867B2 (en) Apparatus and method for transmitting map information and read count in memory system
US10732877B1 (en) Smart mapping table update post background operations
US11354250B2 (en) Apparatus for transmitting map information in memory system
CN111831578B (zh) 用于处理存储器系统中的不同类型数据的设备及方法
US11922028B2 (en) Information processing system for controlling storage device
CN113900586A (zh) 存储器系统及其操作方法
CN107037979B (zh) 用于在存储器设备中管理地址映射数据的系统和方法
CN112558860A (zh) 分布和读取数据的存储器系统及其操作方法
EP3841472A1 (en) Tracking error-correction parity calculations
US11314653B2 (en) Memory controller
CN113590502A (zh) 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统
KR101369408B1 (ko) 스토리지 시스템 및 이의 데이터 전송 방법
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: texas

Applicant after: DELPHI INT OPERATIONS LUX SRL

Address before: texas

Applicant before: Sandisk Corp.

COR Change of bibliographic data
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160203

WD01 Invention patent application deemed withdrawn after publication