CN104040504A - 用于存储器系统的软信息生成 - Google Patents

用于存储器系统的软信息生成 Download PDF

Info

Publication number
CN104040504A
CN104040504A CN201280066282.4A CN201280066282A CN104040504A CN 104040504 A CN104040504 A CN 104040504A CN 201280066282 A CN201280066282 A CN 201280066282A CN 104040504 A CN104040504 A CN 104040504A
Authority
CN
China
Prior art keywords
information
value
storage medium
soft
read
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.)
Granted
Application number
CN201280066282.4A
Other languages
English (en)
Other versions
CN104040504B (zh
Inventor
Y.Y.泰
Y.Y.马
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 Technologies LLC
Original Assignee
SanDisk Enterprise IP LLC
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 Enterprise IP LLC filed Critical SanDisk Enterprise IP LLC
Publication of CN104040504A publication Critical patent/CN104040504A/zh
Application granted granted Critical
Publication of CN104040504B publication Critical patent/CN104040504B/zh
Expired - Fee Related 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/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
    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

实施方式包括适于在存储器系统中使用的系统、方法和/或装置,所述系统、方法和/或装置可提高用于改进存储和读取数据的可靠性的错误校正编码的性能。一些实施方式包括能够生成并利用用于对从存储介质读取的错误控制编码数据进行解码的软信息的系统、方法和/或装置。更具体地,一些实施方式利用包括用于可从存储介质读取的位元组的软信息值的特征向量的集合,所述特征向量的集合对应于各种组合的存储介质特征参数值。一些实施方式能够确定并利用与一个或多个存储介质特征参数值相关联的读取比较信号值。并且一些实施方式能够确定并利用与一个或多个存储介质特征参数值和经识别的错误条件相关联的已移位的读取比较信号值。

Description

用于存储器系统的软信息生成
技术领域
本公开涉及在存储器系统中使用错误控制,尤其涉及生成并使用用于对从存储器读取的数据进行解码的软信息。
背景技术
不断出现的对消费电子和企业运算系统的持续增长的需求常常伴随着改进数据存储容量的需求。对更大存储容量的需求转而激起对更大存储密度(storage density)的需求,因此可保持并且优选地降低诸如功耗和波形因素之类的规范。因为非易失性存储器,尤其是快闪存储器已能够增大消费电子的便携性,并且就在最近,它们已被应用在适于云计算的相对低功率的企业大规模存储系统以及其它大规模存储应用中,所以非易失性存储器,尤其是快闪存储器变得越来越受欢迎。因此,增大诸如快闪存储器之类的非易失性存储器的存储密度以便进一步利用这种装置的有益属性存在额外的压力。
包括快闪存储器的半导体存储器装置通常利用存储器单元(memory cell)来将数据存储为诸如电荷或电压之类的电性值(electrical value)。例如,快闪存储器单元包括具有浮动栅极的单晶体管,所述浮动栅极用于存储代表数据值的电荷。已通过多种方式来促进存储密度的增大,包括:减小半导体制造工艺的最小特征尺寸(minimum feature size)以便增大特定区域中可包括的晶体管的数量,并且由此增大存储器单元的数量。此外,为了进一步增大存储密度,快闪存储器已经从单级快闪存储器(single-level flash memory)发展为多级快闪存储器(multi-level flash memory),以便可由每个存储器单元存储两位或更多位。
增大存储密度的缺陷是:所存储的数据越来越倾向于被错误地存储和/或读取。已经利用错误控制编码(ECC)来限制由伪随机波动(pseudo-randomfluctuation)、存储介质中的缺陷、操作条件、装置历史、和/或读写电路等所引起的无法校正的错误的数量。因为软信息解码可改进特定错误控制编码的错误检测和校正能力,并由此改进系统的容量,所以使用软信息的错误控制方法特别有前景。然而,由于一些以前无法解决的缺陷,所以软信息解码的应用受到了限制。例如,软信息解码的实施方式趋向于引入不受欢迎的延迟,所述实施方式通常为功率密集型并且具有相对大的半导体占位空间(semiconductor footprint)。因此,由于这些和其它的物理约束,软信息解码方法依然相对不受欢迎。
发明内容
所附权利要求的范围内的系统、方法和装置的各种实施方式中的每个实施方式均具有数个方面,所述数个方面中没有任何单个一个方面单独为本文所述的属性负责。对一些显著的特点进行了描述,而非限制所附权利要求的范围。在考虑本公开之后,特别是在考虑标题为“详细说明”的部分之后,将理解如何使用各种实施方式的特点来使:(i)生成并利用用于对从存储介质读取的错误控制编码数据进行解码的软信息;(ii)确定并利用与一个或多个存储介质特征相关联的统计意义上经确定的读取比较信号值;以及(iii)确定并利用与一个或多个存储介质特征相关联的统计意义上经确定的已移位的读取比较信号值。
一些实施方式包括能够利用软信息错误校正解码来支持快闪存储器或其他存储介质的使用的系统、方法和/或装置。更具体地,在一些实施方式中,软信息生成系统、方法和/或装置利用与对应组的存储介质特征参数值对应的预先生成的特征向量的集合,所述集合包括用于可从存储介质读取的位元组的软信息值。在一些实施方式中,软信息值由对特定制造工艺所生产的存储器装置的装置特征处理所生成,并被存储在特征模块或查找表中。通过使用存储介质特征参数值对特征模块或查找表进行索引。在读操作期间,通过基于与存储介质的当前状态相关联的一个或多个存储介质特征参数值来从特征模块取回特定的特征向量,并且为从存储介质读取的原始数据中的每个位元组来从所选择的特征向量选择相应的软信息值,从而生成软信息。
一些实施方式包括能够根据特征向量来生成以对数似然比(LLR)和/或转移概率的形式的软信息的系统、方法和/或装置,所述特征向量包括有用于与多级快闪存储器装置的单页读取和联合页读取中的至少一种读取相关联的位元组的软信息值。然后,软信息值可被转至ECC解码器,例如低密度奇偶校验(LDPC)码解码器或一些其它错误校正码解码器中的任意一种。一些实施方式利用来自装置特征处理的统计数据来生成由一个或多个存储介质特征参数值所索引的、与装置条件和处理变化的一些结合对应的特征向量的集合。在一些实施方式中,多个特征向量中的每个特征向量均包括软信息值(例如,LLR值和/或转移概率)。在一些实施方式中,多个特征向量中的每个特征向量均包括根据装置特征处理的统计数据所确定的至少一组读取比较信号值(例如电压)。在一些实施方式中,多个特征向量中的每个特征向量均包括根据装置特征处理的统计数据所确定的两组读取比较信号值。根据从装置特征处理所得到的转移概率的函数,第二组读取比较信号值从第一组读取比较信号值移位。
一些实施方式能够使之前生成的两个序列的软信息值的结合产生第三序列软信息值,以便限制用于从存储介质中的特定组的数据位置提供错误校正数据的读取操作的数量。为此,在一些实施方式中,多个特征向量中的至少一个特征向量(或者可选择地,多个特征向量中的每个特征向量)包括一组权重因子,所述权重因子可被用于从之前生成的两个序列的软信息值来生成第三序列软信息值。一些实施方式基于一个或多个当前的存储介质特征来动态地计算权重因子。此外和/或可选择地,在一些实施方式中,第三序列的软信息值响应于经识别的错误条件而生成。
在一些实施方式中,通过显示读取操作的数量(例如,最多两个读取操作)可以控制与读取数据相关联的总的等待时间。此外,在一些实施方式中,由于一个或多个读取比较信号值以及用于特定位元组的软信息值基于一个或多个存储介质特征参数值,所以所生成的软信息值可比在之前的方法中所使用的软信息值更可靠,所述一个或多个存储介质特征参数值例如如下各项中的至少一个项的指示:与存储介质的至少一部分相关联的物理特征、与存储介质的至少一部分相关联的操作模式、与存储介质的至少一部分相关联的使用历史、与存储介质的至少一部分相关联的条件特征、与存储介质的至少一部分相关联的读取类型、以及与存储介质的至少一部分相关联的位置。
一些实施方式包括能够通过使用基于与存储介质的当前状态相关联一组一个或多个存储介质特征参数值所选择的、统计意义上经确定的读取比较信号值来从存储介质读取数据的系统、方法和/或装置。在一些实施方式中,统计意义上经确定的读取比较信号值被存储在特征向量的集合中,并且由对特定制造工艺所生产的装置的特征处理所生成。
一些实施方式包括能够通过使用统计意义上经确定的已移位的读取比较信号值来从存储介质读取数据的系统、方法和/或装置,所述已移位的读取比较信号值相对于标定读取比较信号值或基于转移概率的统计意义上经确定的第一读取比较信号值而偏移并且响应于经识别的错误条件而被使用。在一些实施方式中,统计意义上经确定的已移位的读取比较信号值基于与存储介质的当前相关联的一组一个或多个存储介质特征参数值而被选择。在一些实施方式中,各种已移位的读取比较信号值被存储在特征向量的集合中,并且由对特定制造工艺所生产的装置的特征处理来生成。
附图说明
因此,通过参考各种实施方式的特点,其中一些实施方式的特点已在附图中示出,可形成更具体的描述,由此能够更加详细地理解本公开。然而,因为本说明书可允许其它有效特点,所以附图仅示出本公开的更相关的特点,因此并不被视为进行限制。
图1是数据存储环境的实施方式的示图。
图2是随着时间可在多级快闪存储器单元中发现的电压分布200的示图.
图3是包括软信息生成模块的数据存储环境的实施方式的示图。
图4是图3中所包括的软信息生成模块的实施方式的示图。
图5A是与单级存储器单元或与多级存储器单元的单页读取相关联的转移概率表。
图5B是可从图5A的转移概率表产生的特征向量的实施方式的示意图。
图6A是可与多级存储器单元的联合页读取相关联的转移概率表。
图6B是可从图6A的转移概率表产生的特征向量的实施方式的示意图。
图7是表现根据从存储介质所读取的数据来生成软信息值的方法的实施方式的流程图。
图8是表现根据之前生成的软信息值来生成软信息值的方法的实施方式的流程图。
图9是可操作来为存储介质生成软信息值和读取比较电压的特征环境的实施方式的示图。
图10是表现生成一个或多个特征向量的方法的实施方式的流程图。
图11是表现为了从多级存储器单元进行读取而生成已移位的读取比较电压的方法的实施方式的流程图。
图12是表现使用存储在特征向量中的多组读取比较电压的方法的实施方式的流程图。
根据公共实践,附图中所示的各种特点可能不会按比例示出。因此,为了清楚起见,可对各种特点的尺寸进行任意延伸或缩小。此外,一些附图可能没有描绘出给定的系统、方法或装置的全部组件。最后,在贯穿说明书和附图中,相似的参考数字将用于表示相似的特点。
详细说明
本文所述的各种实施方式包括可提高用于改进存储和读取数据的可靠性的错误控制编码的性能的系统、方法和/或装置。一些实施方式包括用于生成并利用软信息的系统、方法和/或装置,所述软信息用于对从存储介质读取的错误控制编码数据进行解码。更具体地,一些实施方式利用特征向量(characterization vector)的集合,所述特征向量包括用于可从存储介质读取的位元组(bit-tuple)的软信息值,每个特征向量均对应于一组不同的存储介质特征参数值。此外和/或可选择地,使一些实施方式能够确定并利用读取比较信号值(read comparison signal value)以便产生第一序列软信息值,所述读取比较信号值从与一个或多个存储介质特征参数值相关联的对应组的统计分布来确定。此外和/或可选择地,使一些实施方式能够确定并利用已移位的读取比较信号值以产生第二序列软信息值,所述已移位的读取比较信号值与经识别的错误条件和一个或多个存储介质特征参数值相关联。此外和/或可选择地,使一些实施方式能够响应于经识别的错误条件,将第一序列软信息值与第二序列软信息值相结合以产生第三序列软信息值。
本文描述了许多细节以便为附图中所示的示例性实施方式提供全面理解。然而,无需很多具体细节也可以实践本发明。而且,并未以详尽细节的方式描述已知的方法、组件和电路,以免不必要地使本文所述的实施方式的更多相关方面难以理解。
图1是数据存储环境100的实施方式的示图。尽管示出了一些示例性特点,但是本领域技术人员将从本公开理解的是:为了简洁起见并且不使本文所公开的示例性实施方式的更多相关方面难以理解,未示出各种其它特点。为此,作为非限制性实例,数据存储环境100包括数据处理系统110、存储器控制器120以及存储介质130。在一些实施方式中,存储介质130包括一个或多个快闪存储器装置。在一些实施方式中,存储介质130包括NAND型快闪存储器和NOR型快闪存储器中的至少一种。
数据处理系统110通过数据连接件(data connection)101耦接于存储器控制器120。并且,本领域技术人员将从本公开理解的是:在各种实施方式中,数据处理系统110包括存储器控制器120作为组件。数据处理系统110可以是任意适当的计算机装置,例如计算机、便携式计算机、平板装置、上网本、上网亭(internet kiosk)、个人数字助理、移动电话、智能手机、游戏装置、计算机服务器、或任何其它运算装置。在一些实施方式中,数据处理系统110包括:显示器和/或其它用户接口组件、一个或多个处理器、一种或多种类型的存储器,所述显示器和/或其它用户接口组件例如键盘、触摸屏显示器、鼠标、跟踪板、数码相机和/或用以增加功能的任意数量的补充装置。
存储介质130通过数据连接件103耦接于存储器控制器120。并且,本领域技术人员将从本公开理解的是:在各种实施方式中,存储器控制器120和存储介质130被包括在同一装置中作为该装置的构成组件。存储介质130可包括任意数量的(即,一个或多个)存储器装置,所述存储器装置包括但不限于诸如快闪存储器之类的非易失性半导体存储器装置。例如,快闪存储器装置可被配置用于适于诸如云计算之类的应用的企业存储。此外和/或可选择地,快闪存储器还可被配置用于相对小规模的应用,例如个人闪存驱动器或者个人硬盘替代物、便携式计算机和平板计算机。
存储介质常常被分成一些可寻址并可单独选择的块,例如可选择部分131。在一些实施方式中,对于快闪存储器而言,可单独选择的块是快闪存储器装置中最小尺寸的可擦除单元(erasable unit)。换言之,每个块均包含能够被同时擦除的最少数量的存储器单元。通常,每个块被进一步分成多个页,其中通常每个页是所述块中可单独访问的最小子块的最小单元的实例。然而,数据组(data set)的最小单元还可以是一些类型的快闪存储器中的扇区(sector)。也就是说,每个页包含多个扇区,并且每个扇区是数据组的最小单元,如此,页是用于对快闪存储器装置进行数据写入或读取的最小单元。
通常,一个块可包括任意数量的页,例如,64页、128页、256页或其它适当数量的页。通常,多个块被分组为多个区。每个块区可在一定程度上独立地进行管理,这增大了并行操作的并行度(degree of parallelism)并且简化了存储介质130的管理。
如上所述,当非易失性半导体存储器装置的数据存储密度逐渐增大时,增大存储密度的缺陷是:所存储的数据越来越倾向于被错误地存储和/或读取。正如在下文更加详细地描述的,可利用错误控制编码来限制无法校正的错误的数量,所述无法校正的错误由伪随机波动、存储介质中的缺陷、操作条件、装置历史、读写电路等、或这些因素的组合所引起。
在一些实施方式中,存储器控制器120包括管理模块121、输入缓冲器123、输出缓冲器124、错误控制模块125以及存储介质接口(I/O)128。本领域技术人员将从本公开理解的是:存储器控制器120可包括各种附加特点并且特点的不同配置是可能的,为了简洁起见以及不使本文所公开的示例性实施方式的更多相关特点难以理解,未示出所述各种附加特点。输入缓冲器123和输出缓冲器124通过数据连接件101为数据处理系统110提供接口。相似地,存储介质I/O128通过数据连接件103为存储介质130提供接口。在一些实施方式中,存储介质I/O128包括读写电路,所述读写电路包括能够将读取比较信号值提供给存储介质130的电路。
在一些实施方式中,管理模块121包括处理器122,所述处理器122被配置用以执行一个或多个程序中的指令,例如管理模块121中的指令。然而,本领域技术人员将从本公开理解的是:处理器122可由存储器控制器120的功能范围内的一个或多个组件所共享,并且在一些情形中可由存储器控制器120的功能范围外的一个或多个组件所共享。管理模块121耦接于输入缓冲器123、输出缓冲器124、错误控制模块125以及存储介质I/O128,以便协调这些组件的操作。
错误控制模块125耦接在存储介质I/O128与输入缓冲器123、输出缓冲器124之间。错误控制模块125被提供用以限制被无意中引入到数据中的无法校正的错误的数量。为此,错误控制模块125包括编码器126和解码器127。编码器126通过应用错误控制编码来对数据进行编码,从而产生码字(codeword),所述码字随后被存储在存储介质130中。当从存储介质读取经编码的数据时,解码器127应用解码处理,从而恢复数据并在错误控制编码的错误校正能力范围内校正已恢复的数据中的错误。本领域技术人员将从本公开理解的是:各种错误控制编码具有不同的错误检测和校正能力,并且由于超出本公开的必要范围的原因,特定的编码被选择用于各种应用。因此,为了简洁起见,并未提供各种类型错误控制编码的详尽评论。此外,本领域技术人员将理解的是:每种类型或者每种同族(family)的错误控制编码可具有特定于该类型或该同族的错误控制编码的编码算法和解码算法。另一方面,诸如维特比算法(Viterbi algorithm)之类的一些算法至少在一定程度上可被用于解码一些不同类型或不同族的错误控制编码。因此,为了简洁起见,本文并未提供本领域技术人员通常可获得或已知的各种类型的编码算法和解码算法的详尽描述。
在写入操作期间,输入缓冲器123从数据处理系统110接收将被存储在存储介质130中的数据。输入缓冲器123中的数据可由编码器126获得,所述编码器126对所述数据进行编码从而产生码字。所述码字可由存储介质I/O128获得,所述存储介质I/O128以根据所利用的存储介质的类型而确定的方式将所述码字传输至存储介质130。在同一数据的读取操作期间,存储介质I/O128访问存储介质130的其中存储有对应码字的部分,从而读取码字并且将码字提供给解码器127。
如果解码成功,则经解码的数据被提供给输出缓冲器124,其中经解码的数据可由数据处理系统110获得。在一些实施方式中,如果解码不成功,则如下文更详细描述的,存储器控制器120使用不同的解码或错误校正再次从存储介质读取码字。
对于很多错误控制编码而言,通过使用软信息能够改进解码处理。硬信息解码通常意味着做出关于数据值(例如,数据位或代码位)是否为特定符号字母表中的一个符号还是另一符号的绝对性判定(absolute decision)。例如,在二进制系统中,即使从存储位置读取的原始电性模拟值并不表示代表数据值的电性值足以肯定地判定数据值是“0”还是“1”,那么特定数据值也可以为“0”或“1”。换言之,对特定数据值的硬判定(hard-decision)是基于与从存储介质读取的模拟电性值对应的最可能的符号,并且供选择的判定将为真的可能性被硬判定处理所忽略。硬判定常常基于从模拟读取值到定义符号的电性电平的欧几里得距离(Euclidian distance)。相比之下,软信息的使用考虑到从存储介质所读取的内容从而不忽略不同的结果为真的可能性。由于软信息解码常常改进特定错误控制编码的错误检测和校正能力,并由此改进系统的容量,所以使用软信息的错误控制方法特别有前景。
然而,如上所述,由于一些以前无法解决的缺陷,所以软信息解码的应用受到了限制。一个特别困难的挑战始终是管理之前必要的延迟,从而产生具有足够统计精度的软信息,以便使软信息的使用有益处。由于来自伪随机电性波动、操作条件和装置历史的影响,所以任何一个数据读取的结果可能并不在统计意义上代表对已存储的数据的当前组的累积影响。由此,使用以前的方法,软信息生成需要将同一数据读取一些次并且将所读取的结果相结合,从而为每位或每个符号生成统计意义上精确的软信息值。软信息的精度通常随着读取次数而改进。但是,每次读取均增加延迟,并且用于为整个序列的数据值生成精确的软信息的合计延迟使得软信息的使用不受欢迎。
相比之下,如下所述,一些实施方式包括能够利用软信息错误校正解码以支持快闪存储器或其它存储介质的使用的系统、方法和/或装置。更具体地,在一些实施方式中,软信息生成系统、方法和/或装置利用包括用于可从存储介质读取的位元组的软信息值的预先生成的特征向量的集合,所述预先生成的特征向量的集合对应于各种组合的存储介质特征参数值。在一些实施方式中,通过对由特定的制造工艺所生产的存储器装置的装置特征处理来生成软信息,并将软信息存储在特征模块或查找表中,所述特征模块或查找表通过使用存储介质特征参数值而被索引。在读取操作期间,通过基于与存储介质的当前状态相关联的一个或多个存储介质特征参数值来从特征模块取回特定的特征向量并且通过从已选择的特征向量中为在从存储介质读取的原始数据中的每个位元组选择相应的软信息值,来生成一序列软信息。由于存储介质特征参数值仅代表存储介质的状态的一些方面,所以有时将与存储介质的当前状态相关联的存储介质特征参数值称为与存储介质的当前状态相关联。
快闪存储器装置利用存储器单元来将数据存储为诸如电荷或电压之类的电性值。通常,每个快闪存储器单元包括具有用于存储电荷的浮动栅极的单晶体管,所述浮动栅极改变晶体管的阈值电压(即,导通晶体管所需的电压)。电荷的量以及所述电荷产生的对应的阈值电压可被用于代表一个或多个数据值。在读取操作期间,读取电压被应用于晶体管的控制栅极并且因而产生的电流或电压被映射至数据值。
为了增大快闪存储器中的存储密度,快闪存储器已经从单级快闪存储器发展为多级快闪存储器,以便可由每个存储器单元存储两位或更多位。单级快闪存储器单元(SLC)存储一位信息(“0”或“1”)。换言之,SLC存储器装置的存储密度为每单元(或每个晶体管)一位。多级快闪存储器单元(MLC)可通过使用一单元的总的电压范围内的不同范围存储两位或更多位,从而代表多位的位元组。转而,MLC存储装置的存储密度为每单元多位(例如,每个晶体管2位)。
如下文参照图2所述,通过使用存储器单元的总的电压范围内的多个电压范围,MLC存储器装置被用于存储多位,从而代表不同的位元组。由于对于MLC存储器装置而言被用于存储不同的数据值的电压之间的有效电压差更小,所以通常MLC存储器装置比通过使用相同的制造工艺生产的SLC存储器装置更易于出现错误。此外,由于诸如伪随机电性波动、存储介质中的缺陷、操作条件、装置历史、和/或读写电路之类的任意数量的因素的组合,典型的错误包括:特定的MLC中的所存储的电压电平处于与反之代表特定位元组的正确存储的电压范围相邻的电压范围内。如下文参照图2的更详细论述的,可通过对数据进行灰度编码来减小这种错误的影响,由此相邻的电压范围代表位元组之间的单个位变化。
图2是随着时间可在多级快闪存储器单元中发现的电压分布200的示图。本领域技术人员将从本公开理解的是:出于图示的目的已将电压分布200进行了简化。MLC的单元电压大致从NMOS晶体管的源极端子的电压VSS210延伸至漏极端子的电压VDD214。
在源极电压VSS210与漏极电压VDD214之间的连续的电压范围201、202、203、204用于分别代表对应的位元组“11”、“01”、“00”、“10”。电压范围201、202、203、204中的每个电压范围均具有各自的中心电压201b、202b、203b、204b。电压范围201、202、203、204中的每个电压范围还具有各自的电压分布201a、202a、203a、204a,所述电压分布201a、202a、203a、204a可出现作为以下任意数量的因素的组合的结果:所述因素例如伪随机电性波动、存储介质中的缺陷、操作条件、装置历史(例如,大量编程-擦除(P/E)周期)、和/或读写电路的有缺陷的性能或设计。
理想地,在写入操作期间,可对MLC的浮动栅极上的电荷进行设置,使得所产生的单元电压处于范围201、202、203、204中的一个范围的中心处,以便将对应的位元组写入MLC。具体地,将所产生的单元电压设置为V11201b、V10202b、V00203b、V10204b中的一个,以便写入位元组“11”、“01”“00”和“10”中对应的一个位元组。事实上,由于上述因素,初始单元电压可能与用于被写入MLC中的数据的所述中心电压不同。
读取比较电压VR1211、VR2212和VR3213处于相邻的中心电压之间,例如,处于或接近于相邻的中心电压之间的中间点,并且由此定义电压范围201、202、203、204之间的阈值电压。在读取操作期间,通过使用比较处理来应用读取比较电压VR1211、VR2212和VR3213以确定单元电压。然而,由于上述各种因素,所以实际的单元电压和/或当读取MLC时所接收的单元电压可能与对应于写入到单元中的数据值的各个中心电压V11201b、V10202b和V00203b或V10204b不同。例如,实际的单元电压可能处在完全不同的电压范围中,强烈地表明MLC正在存储与过去被写入MLC的位元组不同的位元组。更常见地,实际的单元电压可能接近读取比较电压中的一个电压,使得难以肯定地确定两个相邻的位元组中哪一个由MLC存储。
在写入操作期间、读取操作期间,或者由于在数据被写入MLC的时间与执行读取操作以读取存储在MLC中的数据的时间之间的单元电压的“驱动”,可出现单元电压中的错误、和/或当读取MLC时所接收的单元电压。为了便于论述,单元电压中的错误和/或当读取MLC时所接收的单元电压有时统称为“单元电压漂移”(cell voltage drift)。
减小单元电压从一个电压范围漂移到相邻的电压范围的影响的一种方式是为位元组进行灰度编码。对位元组进行灰度编码包括:迫使位元组赋值,使得特定电压范围的相应的位元组与相邻的电压范围的相应的位元组相差仅一位。例如,如图2中所示,相邻的范围201和202的对应的位元组分别为“11”和“01”,相邻的范围202和203的对应的位元组分别为“01”和“00”,并且相邻的范围203和204的对应的位元组分别为“00”和“10”。通过使用灰度编码,如果单元电压漂移接近读取比较电压电平,则错误通常被限制于2位的位元组内的单个位。
图3是数据存储环境200的实施方式的示图,所述数据存储环境200利用来自在多级快闪存储器装置中出现的电压分布的信息。图3中所示的数据存储环境200与图1中所示的数据存储环境100相似,并且所述数据存储环境200是从所述数据存储环境100修改而来。两者所共有的元件包括共同的参考数字,并且为了简洁起见,本文仅描述图1与图3的不同之处。并且,尽管示出了某些特定的特点,但是本领域技术人员从本公开将理解的是:为了简洁起见并且不使本文所公开的示例性实施方式的更多相关方面难以理解,并未示出各种其它特点。
为此,作为非限制性实例,已进一步使数据存储环境200,特别是存储器控制器120能够利用下面三者中的至少一个:软信息,所述软信息用于对从存储介质130读取的错误控制编码数据进行解码;统计意义上经确定的读取比较信号值,所述读取比较信号值与存储介质的一个或多个特征相关联;以及统计意义上经确定的已移位的读取比较信号值,所述已移位的读取比较信号值与存储介质的一个或多个特征和经识别的错误条件相关联。
更具体地,存储器控制器120另外还包括软信息生成模块229。如下文参照图4和图7更详细描述的,在一些实施方式中,软信息生成模块229通过将预先生成的特征向量的集合对应于各种组合的存储介质特征参数值的来为从存储介质130读取的每组数据生成软信息值,所述预先生成的特征向量的集合包括用于可从存储介质读取的位元组的软信息值。如下文参照图4和图9更详细描述的,软信息由对通过特定的制造工艺所生产的存储装置的装置特征处理来生成并被存储在软信息生成模块229中所包括的特征模块或查找表中。
软信息生成模块229与管理模块121、错误控制模块125和存储介质I/O128耦接。更具体地,管理模块121被连接用以在控制线225上为软信息生成模块229提供控制信号并且在数据线226上为软信息生成模块229提供一个或多个存储介质特征参数。存储介质I/O被连接用以通过数据线227接收读取比较电压,所述读取比较电压将被提供给存储介质130以供读取数据时使用,并且存储介质I/O被连接用以通过数据线228为软信息生成模块229提供由读取操作所产生的原始读取数据。软信息生成模块229被连接用于为解码器127提供与从存储介质I/O128所接收的原始读取数据相对应的至少一个序列的软信息。此外和/或可选择地,在一些实施方式中,软信息生成模块229还被连接用于为存储介质I/O128提供一组或多组读取比较信号值(例如,电压电平或电压电平的表示等)。在一些实施方式中,管理模块121包括软信息生成模块229。
在写入操作期间,如上所述,输入缓冲器123从数据处理系统110接收将被存储在存储介质130中的数据。输入缓冲器123中的数据可由编码器126获得,所述编码器126对所述数据进行编码从而产生码字。码字通过存储介质I/O128被传送至存储介质,所述存储介质I/O128以根据所利用的存储介质的类型而确定的方式将码字传输至存储介质130。例如,对于MLC快闪存储器而言,通过改变相应的存储器单元的浮动栅极上的电荷来将码字的每个位元组写入相应的存储器单元。
当数据处理系统110(诸如此类)通过在控制线111上将控制信号发送至存储器控制器120从而请求来自存储介质130的数据时,读取操作开始。在一些实施方式中,存储器控制器120与读取请求一起从数据处理系统110接收与存储介质130的当前状态相关联的一个或多个存储介质特征参数值。在一些实施方式中,存储器控制器120响应于从数据处理系统110接收读取请求来取回与存储介质130的当前状态相关联的一个或多个存储介质特征参数值。转而,存储器控制器120的管理模块121将读取请求转至软信息生成模块229。在一些实施方式中,软信息生成模块229与读取请求一起接收与存储介质130的当前状态相关联的一个或多个存储介质特征参数值。在一些实施方式中,软信息生成模块229响应于接收读取请求来从管理模块121、数据处理系统110和/或存储介质特征参数值存储模块中的一个来取回一个或多个存储介质特征参数值。在一些实施方式中,一个或多个存储介质特征参数值提供如下各项中的至少一项的指示:与存储介质的至少一部分相关联的物理特征、与存储介质的至少一部分相关联的操作模式、与存储介质的至少一部分相关联的使用历史、与存储介质的至少一部分相关联的条件特征、与存储介质的至少一部分相关联的读取类型、以及与存储介质的至少一部分相关联的位置。在一些实施方式中,一个或多个存储介质特征参数值包括:正被访问的存储介质位置的指示符、正被访问的存储介质位置的之前编程/擦除周期的数量的指示符、以及存储介质130的当前温度的指示符。
软信息生成模块229基于一个或多个存储介质特征参数值来取回特征向量并且促使存储介质I/O128从存储介质130的一部分,例如可选择部分131进行读取。存储介质I/O128从存储介质进行读取并且将一序列原始硬判定读取数据提供给软信息生成模块229。值得注意的是:由于对于给定的读取操作而言,在很多情况下存储在特征模块中的特征向量中的软信息在统计意义上比从单独的存储器单元读取的原始电性模拟值更加精确,所以在一些实施方式中原始读取数据可以为硬判定数据。而且,与需要多个读取操作以生成单组统计意义上精确的软信息值的以前的系统相比,软信息生成模块229可通过使用单页读取操作来生成统计意义上精确的软信息值。在一些实施方式中,软信息生成模块229通过为在从存储介质130读取的原始硬判定数据中的每个位元组从所选择的特征向量中选择相应的软信息值,从而生成与原始硬判定读取数据相对应的一序列软信息值。
此外和/或可选择地,在读取操作期间,软信息生成模块229将统计意义上经确定的读取比较信号值提供给存储介质I/O128。通常,基于与存储介质130的当前状态相关联的一个或多个存储介质特征参数值来选择统计意义上经确定的读取比较信号值。由此,对于存储介质130的给定的当前状态而言,统计意义上经确定的读取比较信号值可产生比无需考虑一个或多个存储介质特征参数值而选择的标定设计值(nominal design value)更精确的读取数据。在一些实施方式中,统计意义上经确定的读取比较信号值被存储在由一个或多个存储介质特征参数值所索引的特征向量的集合中。如下文参照图4和图10更详细描述的,在一些实施方式中,通过使用对由特定制造工艺所生产的装置的特征处理来确定统计意义上经确定的读取比较信号值。
此外和/或可选择地,在第一次读取操作之后响应于经识别的错误条件,软信息生成模块229将统计意义上经确定的已移位的读取比较信号值提供给存储介质I/O128。通常,统计意义上经确定的已移位的读取比较信号值相对于标定设计值或第一统计意义上经确定的读取比较信号值而被偏移,并且所述已移位的读取比较信号值基于一组转移概率(transition probability),所述转移概率通过使用对由特定制造工艺所生产的装置的特征处理所确定。
图4是图3中所包括的软信息生成模块229的实施方式的示图。再次,如上所述,尽管示出了某些特定的特点,但是本领域技术人员将从本公开理解的是:为了简洁起见并且不使本文所公开的示例性实施方式的更多相关方面难以理解,并未示出各种其它特点。为此,作为非限制性实例,软信息生成模块229包括软信息管理控制器410、特征模块420、计算/调整模块430、以及输出多路复用(MUX)440。如图3中所示,软信息生成模块229与错误控制模块125、存储器管理模块120和存储介质I/O128耦接。
软信息管理控制器410与特征模块420、计算/调整模块430以及MUX440中的每一个耦接,以便协调软信息生成模块229的操作。更具体地,软信息管理控制器410被连接用以在控制线401上接收读取请求并且在数据线402上接收一个或多个存储介质特征参数。软信息管理控制器410还被连接用以在控制线411上为特征模块420提供选择控制信号,并且用以在数据线412上接收所选择的特征向量。在一些实施方式中,软信息管理控制器410进一步被连接用以通过数据线414将读取比较信号值(例如,比较电压或别的电性值)提供给存储介质I/O128,并且通过数据线415从存储介质I/O128接收原始读取数据。软信息管理控制器410还被连接用以通过相应的数据线416和417将多个序列的软信息值提供给计算/调整模块430和输出MUX440,并且通过控制线403将控制信号提供给输出MUX440。输出MUX440还被连接用以在数据线431上接收来自计算/调整模块430的经调整的序列的软信息值。输出MUX440还被连接用以根据在控制线403上所接收的控制信号来在数据线441上选择性地提供来自转换模块433和计算/调整模块430中的一个模块的软信息值。
特征模块420包括对应于一个或多个存储介质特征参数值的特征向量421-1、421-2、421-3、…421-n的集合,所述特征向量421-1、421-2、421-3、…421-n中的每个特征向量均存储诸如用于位元组的软信息值之类的特征数据以及与存储介质130相关联的读取比较信号值。在一些实施方式中,存储在特征向量421中的特征数据经统计得出。下面将参照图5A、图5B、图6A和图6B描述特征向量421的更加详细的示例性实施方式。
软信息管理控制器410包括选择模块431、读取控制器432和转换模块433。选择模块431经配置以根据存储介质130的当前状态使用一个或多个存储介质特征参数值来从所存储的特征向量421-1、421-2、421-3、…421-n的集合中选择特征向量。在一些实施方式中,选择控制信号包括一个或多个存储介质特征参数值和/或与一个或多个存储介质特征参数值的组合相关联的索引关键字(index key),所述索引关键字使特征模块420能够基于与存储介质130的当前状态相关联的一个或多个存储介质特征参数值来选择特征向量。
读取控制器432经配置用以通过存储介质I/O128来读取存储介质130的一部分。在一些实施方式中,读取控制器432经配置用来为存储介质I/O128提供用于读取操作的读取比较信号值。在一些实施方式中,对于第一读取而言,读取控制器432从基于与存储介质130的当前状态相关联的一个或多个存储介质特征参数值而选择的特征向量中选择一个或多个统计意义上经确定的读取比较信号值。在一些实施方式中,读取控制器432经配置以响应于确定从第一读取所生成的软信息值包括无法由错误控制解码器127校正的错误来第二次读取存储介质130的同一部分。对于第二读取而言,读取控制器432从所选择的特征向量中选择一个或多个已移位的读取比较信号值。如下文参照图8更详细地描述的,在一些实施方式中,已移位的读取比较信号值基于一组转移概率相对于相应的标定或默认的读取信号值或统计意义上经确定的第一读取比较信号值来分别进行偏移。即使对存储介质的同一部分进行了第二次读取,所述同一部分在第一读取之后未被写入,那么在一些情况下,也可在第二读取期间使用一个或多个已移位的读取比较信号值产生从存储介质130读取的原始硬判定读取数据,所述原始硬判定读取数据不同于作为第一次读取操作的结果的所读取的原始硬判定读取数据。
转换模块433经配置以生成与原始硬判定读取数据相对应的一系列软信息值。该序列软信息值至少部分地通过从所选择的特征向量中为原始硬判定读取数据的每个位元组选择相应的软信息值来生成。更具体地,在第一读取的一些实施方式中,转换模块433将至少一个软信息值以LLR的形式赋值给来自第一次读取的硬判定读取数据中的每个位元组,从而产生第一序列的其中n是码字的长度。在一些实施方式中,如果第一序列软信息值被确定为包括无法校正的错误,则转换模块433将至少一个软信息值以LLR的形式赋值给来自第二读取的硬判定读取数据中的每个位元组,从而产生第二序列软信息值,其中n是码字的长度。
计算/调整模块430经配置以通过将第一序列软信息值与第二序列软信息值相结合来生成第三序列软信息值。在一些实施方式中,第三序列软信息值响应于确定第二序列软信息值包括至少一个无法校正的错误而生成。在一些实施方式中,当来自第二序列软信息值的至少一部分的信息变得可获取时,生成第三序列软信息值。如在下文更详细论述的,参照图7,在一些实施方式中,通过如下方式生成第三序列软信息值中的每个软信息值:将来自第一序列和第二序列的对应的软信息值进行比较,并且当该比较满足第一条件时使第三序列软信息值中相应的一个软信息值等于第一软信息值与第二软信息值的第一结合,并且当该比较满足第二条件时使第三序列软信息值中相应的一个软信息值等于第一软信息值与第二软信息值的第二结合。
作为实例,在一些实施方式中,第三序列软信息值是根据方程式(1)所生成的第三(且最终的)序列其中n是码字的长度:
其中α1和α2是权重因子,该权重因子满足α12=1(或者某个等效常数)。在一些实施方式中,这两个权重因子是预先确定的常数,而在其它实施方式中,它们基于两个序列的LLR,而生成。如方程式1中所示,软信息值的第一结合仅包括第一软信息值与第二软信息值中的一种软信息值,而软信息值的第二结合包括第一软信息值与第二软信息值的加权结合。
例如,在一些实施方式中,权重因子α1和α2这样生成:
α 1 = | y i ( 1 ) | | y i ( 1 ) | + | y i ( 2 ) | - - - ( 2 ) ; 以及 α 2 = | y i ( 2 ) | | y i ( 1 ) | + | y i ( 2 ) | - - - ( 3 )
在一些实施方式中,基于最终序列的LLR,不用对经解码的数据进行测试以确定解码是否成功。而是,无需考虑任何这种确定,所产生的经解码的数据被发送至数据处理系统110(图1、图3)。如此,在一些实施方式中,由软信息生成模块229响应于来自数据处理系统110的读取请求所提供的软信息被限制为从两次读取操作所生成的第一序列LLR、第二序列LLR和第三序列LLR。本领域技术人员将从本公开理解的是:更多数量的读取操作是可能的,并且随后的每次读取操作均增加了完成读取操作所需要的最大时间量,所述最大时间量有时被称为最大等待时间(maximum latency)。即使很少遇到最大等待时间,数据处理系统110也必须被设计成适应存储器控制器120的最大等待时间。通常,与较长的最大等待时间相比优选较短的最大等待时间。
在一些实施方式中,可根据转移概率来生成LLR,所述转移概率通过对由制造工艺在各种条件下生产的存储器装置进行统计意义上的特征采样来确定。为此,特征处理的基本原理(basis)可被建立如下。使X成为Q=2q级的组,在该级中,q位的位元组被写入快闪存储器单元中,其中q位中的每个位来自q个页中的相应的一个页。例如,当q=2时,X={11,01,00,10}。在另一实例中,当q=3时,X={111,011,001,000,010,110,100,101}。使Y成为Q级的组,其中基于读取比较电压q位的位元组从快闪存储器单元读出,所述读取比较电压例如上文参照图2所述的读取比较电压VR1、VR2和VR3。由于伪随机波动、存储介质中的缺陷、操作条件、装置历史、和/或读写电路等,来自快闪存储器单元的读出电压电平y∈Y可不同于写入电压电平x∈X。如上文参照图2所述,通常在存储器单元中的每个电平的实际电压的组具有可能值的分布或组。电压分布受诸如页位置、页类型、编程/擦除(P/E)周期、数据模式(操作、保持)温度等之类的因素影响。在一些实施方式中,电压分布和电压分布的变化可被用于基于装置特征处理来生成诸如转移概率和/或LLR之类的软信息值。
下文描述了一实例用以描述软信息生成方法的实施方式,在该实例中q=2(即,MLC快闪存储器中每单元2位)。然而,本领域技术人员将从本公开理解的是:2位的实施方式可被扩展至每个存储器单元多位(q≥3)的其它类型的MLC快闪存储器。
存储介质特征参数值的每个组合均代表存储介质(例如快闪存储器装置)的相应的状态,所述相应的状态可在装置特征处理中被表征并且可存在于由相同制造工艺所生产的其它装置。如下文参照图9-图11所述的,为了将存储介质表征为一组特征参数值的组合,在与特征参数值的组合中的每个组合近似的测试条件下从存储介质读写数据,所述测试条件包括各种操作模式(例如,操作模式、保持模式等)
关于MLC快闪存储器(例如存储介质130),通常存在可于MLC快闪存储器上执行的两种类型的读取操作,所述两种类型的读取操作造成转移概率的没有交集的多个组。一种是单页读取,所述单页读取包括从一些q页MLC快闪存储器单元读取特定页的各个位。例如,对于2页快闪存储器而言,两个组成页被称为下页和上页,其中下页的位通常为2位的位元组的最不重要的位,而上页的位是最重要的位。对于单页读取的情形而言,一些MLC快闪存储器单元的上页位和下页位中的一位被读取。因此,下页读取从一些2页MLC快闪存储器单元提供一序列相应的下页位。其它类型的读取是联合页(joint-page)读取,所述联合页读取通常包括从一些q页MLC快闪存储器单元读取两页或更多页的各个位。所以对于2页(即q=2)快闪存储器而言,联合页读取从一些2页MLC快闪存储器单元提供一序列各自2位的位元组。通过比较写入数据和读取数据来为每种类型的读取以及存储介质特征参数值的组合生成一个或多个转移概率表。
例如,图5A是针对存储介质特征参数值的特定组合的、与MLC快闪存储器单元的单页读取或与SLC快闪存储器单元相关联的转移概率表50。在转移概率表50中的转移概率值p00、p10、p01、p11是如下这样确定的。使xb和yb分别为被写入下页的数据位和从同一下页读取的数据。每个转移概率值p00、p10、p01、p11由条件概率pi,j=p(yb=j|xb=i)来确定,其中当位xb=i被写入时,特定位值yb=j被读取。例如,转移概率p00是当“0”被写入时“0”被读取的概率,并且转移概率p01是当“0”被写入时“1”被读取的概率,等。此外,即使MLC快闪存储器单元存储包括两位或更多位的位元组,转移概率和随后为单页读取所生成的LLR也与其中每个位元组均包括单个位的多个位元组相对应。本领域技术人员将从本公开理解的是:通过读写上页数据来针对存储介质特征参数值的组合相似地获得用于上页的转移概率表。本领域技术人员还将从本公开理解的是:对于每个可能的写入位值而言,转移概率满足方程式(4):
Σ j - 0 2 q - 1 p ij = 1 - - - ( 4 )
图6A是与MLC快闪存储器单元的联合页读取相关联的转移概率表60。再次,联合页读取通常包括从一些q页MLC快闪存储器单元读取两个或多个页的各个位。因此,读取数据的序列包括多位的位元组,并且为联合页读取所生成的转移概率和LLR与其中每个位元组均包括两位或更多位的多个位元组相对应。因此,对于2页MLC快闪存储器而言,例如通过在读取操作期间确定由2位快闪存储器单元所产生的电压电平来一起读取上页和下页的位。再次,特征处理包括将读取电平y∈Y与写入电平x∈X进行比较,并且转移概率pi,j=p(y=j|x=i)是在给定写入电平x=i的情况下,读出电平y=j的条件概率。此外,对于联合页读取而言,读写电平{11,01,00,10}被映射至所述表中的相应指标{3,1,0,2}。因此,例如,转移概率p13是当“1”(或“01”)被写入时,“3”(或“11”)被读取的概率。并且,如上所述,对于每个写入电平而言,转移概率满足方程式(4)。
一旦为存储介质特征参数值的组合生成了转移概率,对应的LLR可被生成并被存储在特征向量的集合中。本领域技术人员将从本公开理解的是:在一些实施方式中,转移概率存储在特征向量的集合中而不是LLR中,或者转移概率除了存储在LLR中以外还存储在特征向量的集合中。然而,LLR提供由转移概率所提供的软信息的更紧凑的呈现。
在一些实施方式中,用于存储介质特征参数值的组合的LLR可通过使用如下方程式(5)来生成:
LLR ( y k ) ≡ log P ( x k = 0 | y ) p ( x k = 1 | y ) - - - ( 5 )
在方程式(5)中,yk代表从q位多级存储单元读取的第k位,其中第k位与针对0≤k<q的读出的电压电平y∈Y相对应。方程式(5)可被改写为(5a),在方程式(5a)中,表示第k位为0的电压电平X的子组,表示第k位为1的电压电平X的子组,并且
LLR ( y k ) = log &Sigma; &alpha; &Element; X k ( 0 ) p ( y | x = &alpha; ) &Sigma; &alpha; &Element; X k ( 1 ) p ( y | x = &alpha; ) - - - ( 5 a )
对于单页读取而言,方程式(5a)简化为方程式(6)和(7):
LLR ( y b = 0 ) = log p ( y b = 0 | x b = 0 ) p ( y b = 0 | x b = 1 ) = log p 00 p 10 - - - ( 6 )
LLR ( y b = 1 ) = log p ( y b = 1 | x b = 0 ) p ( y b = 1 | x b = 1 ) = log p 01 p 11 - - - ( 7 )
对于联合页读取而言,方程式(5a)并不如上述yb=0和yb=1那样简单地进行简化。然而,作为y=11的实例,方程式(5a)可被写为:
LLR ( y 0 ) = log p ( y = 11 | x = 00 ) + p ( y = 11 | x = 10 ) p ( y = 11 | x = 11 ) + p ( y = 11 | x = 01 ) - - - ( 8 )
LLR ( y 1 ) = log p ( y = 11 | x = 01 ) + p ( y = 11 | x = 00 ) p ( y = 11 | x = 11 ) + p ( y = 11 | x = 10 ) - - - ( 9 )
本领域技术人员将从本公开,特别是方程式(5a)、(8)和(9)理解如何获得y=01、00和10的LLR。
图5B是特征向量500(例如,与图4中所示的特征向量421中的任意一个相对应)的实施方式的示意性示图;在一些实施方式中,特征向量包括从图5A的表中的转移概率值所产生的软信息值532、533。在一些实施方式中,特征向量500包括存储介质特征参数域510、读取比较电压域520、单页读取LLR值域530以及权重因子域540。进一步参照图3和图4,在一些实施方式中,特征向量是如下这样的数据结构:所述数据结构促进从存储介质读取原始数据值和/或促进生成与所读取的数据相对应的一序列软信息值。在一些实施方式中,单页读取和/或联合页读取的各个LLR值(例如LLR(yb=0)和LLR(yb=1))被存储在关于存储介质特征参数值的组合的相应的特征向量中,所述存储介质特征参数值用于从特定制造工艺所生产的装置。转而,存储器控制器或存储器控制器的软信息生成模块通过从已选择的特征向量中为所读取的数据的每个位元组选择相应的LLR值来生成与原始读取数据相对应的一序列软信息值。如上所述,在一些实施方式中,对于给定的读取操作而言,由于诸如LLR之类的预先生成的软信息值可比从单独的存储器单元读取的原始电性值在统计意义上更精确,所以原始读取数据是硬判定数据。统计意义上更大的精度是受控的装置特征处理的结果。
存储介质特征参数域510被提供用于存储一个或多个存储介质特征参数值。例如,存储介质特征参数域510包括温度域511和P/E周期域512。然而,本领域技术人员将从本公开理解的是:存储介质特征参数域510中可包括任意数量的存储介质特征参数值域。例如,一组一个或多个存储介质特征参数值没有限制地提供如下各项中的至少一项的指示:与存储介质的至少一部分相关联的物理特征、与存储介质的至少一部分相关联的操作模式、与存储介质的至少一部分相关联的使用历史、与存储介质的至少一部分相关联的条件特征、与存储介质的至少一部分相关联的读取类型以及与存储介质的至少一部分相关联的位置。如上所述,域510中的存储介质特征参数值与存储介质的状态相对应,其中特征向量500中的剩余数据可应用于所述存储介质。为此,在一些实施方式中,通过在各个域中所存储的一个或多个存储介质特征参数值,可对特征向量的集合做索引,因此使所述特征向量的集合可检索并可选择。
在一些实施方式中,特征向量500并不包括存储介质特征参数域510,而是,与特征向量500对应的存储介质特征参数值由特征向量表或特征向量数据库中的特征向量500的位置来暗示。例如,如果存在分别具有3、4和5的潜在值的三个存储介质特征参数(a、b和c),则将存在针对存储介质的60个不同状态的一组60(即,3×4×5)个不同特征向量。通过根据与存储介质的当前状态相对应的三个存储介质特征参数(a、b和c)来形成索引并且读取或者以另外的方式获得与该索引相对应的特征向量,从而访问60个特征向量中的任意一个特征向量。
读取比较电压域520被提供用以存储读取比较电压和/或读取比较电压的指示,所述读取比较电压和/或读取比较电压的指示可应用于由被用于定义特征向量500的一个或多个存储介质特征参数值所表征的存储介质的相应的状态。在一些实施方式中,读取比较电压域520包括用于不同读取操作的比较电压。例如,读取比较电压域520包括第一读取比较电压域521和第二读取比较电压域522。在一组快闪存储器单元的第一读取期间使用域521中的第一读取比较电压。有时,第一读取被称为“正常读取”。在一些实施方式中,第一读取比较电压是默认读取比较电压值,例如通过使用特定的制造工艺所生产的装置的默认读取比较电压值。在其它一些实施方式中,第一读取比较电压域521包括第一统计意义上经确定的读取比较电压值,VR1-1521a、VR2-1521b和VR3-1521c,它们由对特定的制造工艺所生产的装置的特征处理所生成。例如,在一些实施例中,在装置特征处理期间选择第一读取比较电压值,以满足相应的阈值错误率。在一些实施方式中,第二读取比较电压域522包括第一统计意义上经确定的已移位的读取比较电压值,VR1-2522a、VR2-2522b和VR3-2522c,它们相对于正常的读取比较信号值或者基于转移概率组的统计意义上经确定的第一读取比较信号值而被偏移,并且它们响应于经识别的错误条件而被使用。如上所述,通常仅在第一读取产生具有一个或多个无法校正的错误(即,如果不从一个或多个额外的读取操作接收数据,则无法由错误控制模块125校正)的数据的条件下才执行使用已移位的读取比较电压值的第二读取。在一些实施方式中,读取比较电压域520包括实际读取比较电压电平,例如上文参照图2所述的读取比较电压VR1、VR2和VR3。在一些实施方式中,读取比较电压域520包括读取比较电压的指示,例如偏移值、百分比值和/或离散值。
单页读取LLR值域530存储分别用于下页读取和上页读取的下页LLR值532和上页LLR值533,所述LLR值532和533由读取数据值531(例如,“0”和“1”)索引。通过为读取数据中的每个位元组选择适当的LLR值来从原始读取数据生成多个序列的软信息值。例如,对于下页读取而言,下页LLR值532中的相应的一个值将被选择用于原始数据的每个位。
如上所述,响应于经识别的错误条件(例如,在由第二读取所产生的数据中的无法校正的错误),第一序列软信息值和第二序列软信息值被结合从而产生第三序列软信息值。在一些实施方式中,第一序列软信息值与第二序列软信息值的结合利用在特征向量500中所存储的权重因子。权重因子域540包括用于下页读取的下页权重因子541和用于上页读取的上页权重因子542。
图6B是特征向量600(例如,与图4中所示的特征向量421中的任意一个相对应)的实施方式的示意图;在一些实施方式中,特征向量600包括从图6A的表中的转移概率值所产生的软信息值632、633。图6B中所示的特征向量600与图5B中所示的特征向量500相似。这两个特征向量共同的元素已被赋值有相同的参考数字,并且为了简洁起见,本文仅描述图5B和图6B中所示的特征向量500与600之间的差异。此外,尽管示出了一些特定的特点,但是本领域技术人员将从本公开理解的是:为了简洁起见并且不使本文所公开的示例性实施方式的更多相关方面难以理解,并未示出各种其它特点。
与特征向量500相比,特征向量600包括联合页读取LLR值域630,所述域630存储分别用于下页读取和上页读取的下页LLR值632和上页LLR值633,所述LLR值632、633由读取数据值631索引。如上所述,通过为所读取的数据中的每个位元组选择适当的对(pair)的LLR值来从原始读取数据生成多个序列的软信息值。此外,在一些实施方式中,权重因子域640存储可应用于下页读取和上页读取的权重因子641a、641b。
图7是表现根据从存储介质所读取的数据来生成软信息值的方法700的流程图。在一些实施方式中,方法700由存储器控制器或与存储器控制器相关联的模块来执行。简单地说,方法700包括:通过使用基于存储介质的当前状态所选择的一个或多个读取比较信号值来从存储介质读取数据、根据所读取的数据以及存储介质的当前状态来生成对应序列的软信息值、以及确定是否产生一个或多个额外序列的软信息值。如上所述,在一些实施方式中,用于各个位元组的读取比较信号值和软信息值被存储在特征向量中,所述特征向量可基于一个或多个存储介质特征参数值来选择。转而,根据原始读取数据所生成的多个序列的软信息值是基于与存储介质(例如快闪存储器)的当前状态相关联的一个或多个存储介质特征参数值。
为此,如有框7-1所表现的,方法700包括接收读取数据请求。例如,进一步参照图3和图4,存储器控制器120从数据处理系统110接收读取数据请求,并且将该请求转至软信息生成模块229。如框7-2所表现的,方法700包括接收或取回与存储介质的当前状态相关联的一个或多个存储介质特征参数值。在一些实施方式中,一个或多个存储介质特征参数值与读取数据请求一起被接收。在一些实施方式中,响应于接收读取数据请求来取回一个或多个存储介质特征参数值。
如框7-3所表现的,方法700包括使用一个或多个一个或多个存储介质特征参数值来取回特征向量(例如,分别在图4、图5B或图6B中所示的向量421、500或600)。例如,进一步参照图4,软信息管理控制器410使用一个或多个存储介质特征参数值以在控制线411上将选择控制信号发送至特征模块420。作为回应,特征模块420通过数据线412将特征向量(与一个或多个存储介质特征参数值相对应的)的至少一部分提供给软信息管理控制器410。
如框7-4所表现的,方法700包括从所选择的特征向量中选择一个或多个第一读取比较电压。转而,如框7-5所表现的,方法700包括:将所选择的一个或多个第一读取比较电压(以及地址或其它位置值)提供给读取电路(例如存储介质I/O128),以及从存储介质130接收原始读取数据(例如码字)。如框7-6所表现的,方法700包括通过将来自特征向量(7-3处所取回的)的至少一个软信息值赋值给来自第一读取的原始读取数据中的每个位元组从而生成第一序列软信息值。更具体地,例如由框7-6a所表现的,可通过将至少一个LLR值赋值给原始数据中的每个位元组来生成第一序列 LLR y LLR ( 1 ) = ( y 0 ( 1 ) , y 1 ( 1 ) , . . . . , y n - 1 ( 1 ) ) .
如框7-7所表现的,方法700包括将从存储介质130所读取的原始读取数据(例如码字)以及对应的第一序列软信息值提供给ECC解码器(例如图3的解码器127)。如框7-8所表现的,方法700包括确定ECC解码器是否通过使用第一序列软信息值成功地对码字进行解码。如果该解码是成功的(框7-8的“是”路径),则如框7-9所表现的,由于不需要进一步的动作以读取相关联的数据,所以方法700成功结束于第一序列软信息值相对应的码字。另一方面,如果该解码不成功(框7-8的“否”路径),则如框7-10所表现的,方法700包括接收错误指示符。转而,如框7-11所表现的,方法700包括从之前选择的特征向量中选择一个或多个第二读取比较电压。转而,如框7-12所表现的,方法700包括:将所选择的一个或多个第二读取比较电压提供给读取电路(例如存储介质I/O128),以及从存储介质130接收一组新的原始读取数据。如框7-13所表现的,方法700包括通过将来自特征向量的至少一个软信息值赋值给来自第二读取的原始读取数据的每个位元组从而生成第二序列软信息值。更具体地,如框7-13a所表现的,在一些实施方式中,通过将至少一个LLR值赋值给原始数据中的每个位元组来生成第二序列 LLR y LLR ( 2 ) = ( y 0 ( 2 ) , y 1 ( 2 ) , . . . . , y n - 1 ( 2 ) ) .
如框7-14所表现的,方法700包括将第二序列软信息值提供给ECC解码器(例如图3的解码器127)。如框7-15所表现的,方法700包括确定ECC解码器是否通过使用第二序列软信息值成功地对码字(从第二读取所获得)进行解码。如果该解码是成功的(框7-15的“是”路径),则如框7-9所表现的,由于不需要进一步的动作以读取相关联的数据,所以方法700成功结束于来自第二读取的码字。另一方面,如果该解码是不成功的(框7-15的“否”路径),则如框7-16所表现的,方法700包括:如上文参照方程式(1)和(2)所描述的以及下文参照图8所进一步描述的,通过将第一序列软信息值与第二序列软信息值相结合来生成第三序列的软信息值。
图8是表现根据之前生成的软信息值来生成软信息值的方法800的实施方式的流程图。在一些实施方式中,通过存储器控制器或与存储器控制器相关联的模块来执行方法800。简单地说,方法800包括基于之前生成的两个序列的软信息值的结合来生成第三序列的软信息值。为此,如框8-1所表现的,方法800包括从之前生成的第一序列软信息值中选择软信息值,以及如框8-2所表现的,方法800包括从之前生成的第二序列软信息值中选择对应的软信息值。如框8-3所表现的并且参照上文方程式(1),方法800包括确定从第一序列和第二序列所选择的软信息值的标记(即,正或负)是否匹配。如果标记匹配(例如,均是正数或者均是负数),则如框8-5所表现的,方法800包括:将第三序列的相应的软信息值设置为仅从第二序列软信息值中所选择的软信息值,或者使第三序列的相应的软信息值与仅从第二序列软信息值中所选择的软信息值相等(框8-5的“是”路径)。另一方面,如果标记不匹配,则如框8-4所表现的并且参照方程式(1)、(2)和(3),方法800包括:将第三序列的相应的软信息值设置为从第一序列软信息值和第二序列软信息值所选择的值的加权结合,或者使第三序列的相应的软信息值与从第一序列软信息值和第二序列软信息值所选择的值的加权结合相等。
图9是存储介质特征环境900的实施方式的示图,所述存储介质特征环境900可操作以生成用于诸如MLC快闪存储器之类的存储介质的软信息值以及统计意义上经确定的读取比较信号值。尽管示出了一些特定特点,但是本领域技术人员将从本公开理解的是:为了简洁起见并且不使本文所公开的示例性实施方式的更多相关方面难以理解,并未示出各种其它特点。为此,作为非限制性实例,特征环境900包括测试下的存储介质930和特征控制器920。
测试下的存储介质930包括一个存储器装置或由相同制造工艺生产的多个存储器装置(例如MLC快闪存储器装置)。特征控制器920包括管理模块921、测试数据生成器923、统计表生成器926、存储介质I/O928、写入缓冲器924、读取缓冲器925以及特征向量数据库929。
在一些实施方式中,特征控制器920包括用于执行一个或多个程序的一个或多个处理器(未示出),所述特征控制器920包括管理模块921、测试数据生成器923以及统计表生成器926。在一些实施方式中,管理模块921、测试数据生成器923以及统计表生成器926是在诸如一个或多个DRAM装置和/或非易失性存储器装置之类的非易失性计算机可读存储介质(未示出)中存储的程序,并且所述非易失性计算机可读存储介质通过多条通信总线(未示出)中的一条总线与一个或多个处理器耦接。管理模块921与统计表生成器926、测试数据生成器923以及存储介质I/O128耦接,以便协调特征控制器920的操作。存储介质I/O928通过数据连接件903为测试下的存储介质930提供接口。在一些实施方式中,存储介质I/O928包括读写电路,所述读写电路包括如下这样的电路:所述电路能够将诸如电压之类的读取比较信号值提供给与测试下的存储介质930耦接的信号线。写入缓冲器924和读取缓冲器923在I/O928和统计表生成器926之间并联耦接。写入缓冲器924和读取缓冲器923可由统计表生成器926读取。写入缓冲器924可由存储介质I/O928读取,并且读取缓冲器923可由存储介质I/O928写入。另外,写入缓冲器924可由测试数据生成器923写入。统计表生成器926可将特征向量写入到特征向量数据库929中。
在操作中,对于每种类型的读取以及对于存储介质特征参数值的特定组而言,通过将写入数据与读取数据进行比较来生成一个或多个转移概率表。为此,测试数据生成器924将写入数据提供给写入缓冲器924。存储介质I/O928将写入缓冲器924中的数据写入到测试下的存储介质930中。转而,存储介质I/O928从测试下的存储介质930读取数据并且将所读取的数据提供给读取缓冲器923。统计表生成器926将写入缓冲器924与读取缓冲器923的内容进行比较,从而确定所读取的数据中的错误的存在(presence)和位置。在与特征向量相对应的一个或多个存储介质特征参数值的限度(bound)内,该处理被重复多次,以便产生统计意义上的大量测试数据,根据该大量测试数据,可为包含特征向量而计算转移概率值、LLR值以及基于统计意义的读取比较电压。
图10是表现根据一些实施例的基于特征数据来生成包括软信息值和读取比较电压的一个或多个特征向量的方法1000的流程图。在一些实施方式中,方法1000由与存储器控制器相关联的模块来执行。简单地说,方法1000包括统计意义上表征由特定制造工艺所生产的存储器装置。
为此,如框10-1所表现的,方法1000包括选择一组(本文有时称为特定组)一个或多个存储介质特征参数值,以便为特征向量定义测试条件。如框10-2所表现的,方法1000包括生成数据向量(即,测试数据)。在一些实施方式中,伪随机地生成数据向量。如框10-3所表现的,方法1000包括写入数据向量和读取数据向量。如框10-4所表现的,方法1000包括:记录在所读取的数据向量中的错误的存在和位置以及生成与所读取的数据向量中的错误的存在和位置相关联的统计表。如框10-5所表现的,方法1000包括在写入和读取之后记录与所存储的数据向量相对应的原始读取电压值。如框10-6所表现的,方法1000包括确定是否已经关于特定组的存储电压特征参数值为存储介质收集了足够的数据,在该情形中,对特定组的存储介质特征参数的测试已经完成。在一些实施方式中,当所收集的信息满足预定级别的统计精度时,测试完成。在一些实施方式中,测试的完成进一步需要所收集的信息足够生成满足相应的阈值错误率的第一读取比较电压值。在一些实施方式中,测试的完成进一步需要:所收集的信息应当足够生成具有预定级别的统计精度的转移概率值。
如果测试还没有完成(框10-6的“否”路径),方法1000包括重复方法1000的由框10-2至10-5所表现的部分,以便生成更多的测试数据。另一方面,如果测试完成了(步骤10-6的“是”路径),则如框10-7所表现的,方法1000包括生成用于特征向量(即,与特定组的一个或多个存储介质特征参数值相对应的特征向量)的转移概率。如框10-8所表现的,在一些实施方式中,方法1000包括将转移概率转换为LLR值。如框10-9所表现的,方法1000包括:生成已记录的读取电压(所述读取电压在其被记录时选择性地生成)的分布,以及根据已记录的读取电压的分布来识别各个电压的波谷(trough)从而用作第一读取比较电压值。例如,进一步参照图2,读取比较电压VR1211、VR2212和VR3213是位于相邻的中心电压之间的电压波谷,并且在电压范围201、202、203、204之间定义阈值电压。在一些实施方式中,除了或者作为选择地将相应的中心电压对之间的中间点处或中间点附近的读取比较电压隔开,方法1000还将读取比较电压的选择基于每个所述读取比较电压是否处于两个电压分布之间的波谷。在一些是实施方式中,方法1000根据预先定义的错误最小标准(例如,根据已记录的信息,通过选择使读取错误最小化的读取比较电压)来选择读取比较电压。如上所述,在一些实施方式中,方法1000选择满足相应的(例如预先定义的)阈值错误率的读取比较电压。在本文中,有时将所生成的已记录的读取电压的分布称为统计表。
图11是表现基于转移概率为从多级存储器单元读取数据而生成已移位的读取比较信号值(例如电压)的方法1100的流程图。在一些实施方式中,方法1100由与存储器控制器相关联的模块来执行。简单地说,方法1100包括统计意义上表征由特定制造工艺所生产的存储器装置,以便确定第二组读取比较信号值,如果第一组读取比较信号值未能提供不具有至少一个无法校正的错误的数据,则可使用所述第二组读取比较信号值。
为此,如框11-1所表现的,方法1100包括为特征向量选择定义测试条件的一组(本文有时称为特定组)一个或多个存储介质特征参数值。如框11-2所表现的,方法1100包括为特定组的一个或多个存储介质特征参数值生成转移概率。例如,可通过使用上文参照图10所述的方法来生成转移概率。如框11-3所表现的,如上所述,方法1100包括取回或选择各个电压波谷,以便用作第一组读取比较电压值。此外和/或可选择地,第一组读取比较电压值可以是标定值,所述标定值基于将读取比较电压值从存储器单元的电压范围的一侧到另一侧均等地隔开。如框11-4所表现的,方法1100包括选择多个电压波谷中的一个,为此方法1100将为将要被存储在特征向量(即,与特定组的一个或多个存储介质特征参数值相对应的特征向量)中的第二组读取比较电压值生成对应的已移位的读取比较电压值。
如框11-5所表现的,方法1100包括基于转移概率确定与所选择的电压波谷相关的相应的已移位的读取比较电压的偏移方向。在一些实施方式中,确定偏移方向包括确定表现MLC快闪存储器单元中的相邻的电压电平的两个转移概率之间的差异的标记。例如,进一步参照图2和图6A,如上所述,减小单元电压从一个电压范围漂移到相邻的电压范围的影响的一种方式是对位元组进行灰度编码。对位元组进行灰度编码包括迫使位元组赋值,使得特定电压范围的相应的位元组与相邻电压范围的相应的位元组相差仅一位。例如,如图2中所示,相邻范围201和202的对应的位元组分别为“11”和“01”,相邻范围202和203的对应的位元组分别为“01”和“00”,并且相邻范围203和204的对应的位元组分别为“00”和“10”。因此,如果单元电压漂移至接近最近的读取比较电压,则因而发生的错误被限制于2位的位元组内的单个位。参照图6A,在一些实施方式中,进行灰度编码使将要使用的转移概率生成第二或可依靠的(fallback)(即已移位的)的读取比较电压值,如果第一读取比较电压未能产生所需的结果,则可使用所述第二或可依靠的读取比较电压值。如上所述,进行灰度编码通常将多位的位元组的最可能的错误限制为单个位的错误。由此,与这种错误相关联的转移概率对被设置成沿(即,相邻但并不在其上)图6A中的表60的对角线而相邻。例如,在一些实施方式中,转移概率对(p31、p13)被用于生成从读取比较电压值VR1偏移的相应的已移位的读取比较电压值的方向。更具体地,在一些实施方式中,从读取比较电压值VR1偏移的方向由(p31-p13)的差的标记来提供。相似的,使用转移概率对(p10、p01)和(p02、p20)来生成分别从对应的读取比较电压值VR2、VR3偏移的各个已移位的读取比较电压值的各个方向。
如框11-6所表现的,方法1100包括基于转移概率来确定与已选择的读取比较电压相关的已移位的读取比较电压的偏移的大小。在一些实施方式中,偏移的大小基于相同的两个转移概率(pij-pji),所述两个转移概率被用于确定前述偏移的方向。在一个实例中,从读取比较电压值VR1的偏移的大小由转移概率对(p31、p13)的函数来确定。
在一些实施方式中,偏移的大小被确定为转移概率对(例如(p31、p13))的概率之间的差值的绝对值。换言之,偏移的大小跟踪绝对值(例如|p31-p13|)。例如,当对应的绝对值较大时,偏移的大小较大。相似地,当对应的绝对值较小时,偏移的大小较小。
在一些实施方式中,偏移的大小被确定为转移概率对(pij,pji)的概率之间的差的绝对值的线性或非线性函数。在一些实施方式中,偏移的大小是相应的转移概率对(pij,pji)之间的差的线性函数。例如,在一些实施方式中,偏移的大小被线性确定为β×|Pij-pji|,其中β是用以将绝对值|Pij-pji|转换为电压值的系数。在一些实施方式中,β由快闪特征数据来确定。在一些实施方式中,β由制造工艺特征数据来确定。在一些实施方式中,偏移的大小是相应的转移概率对(pij,pji)的差的非线性函数。例如,在一些实施方式中,偏移的大小被非线性确定为β×|Pij-pji|γ,其中指数γ用于包括装置和/或系统模型的非线性特征。在一些实施方式中,从快闪特征数据和制造工艺特征数据中的至少一种特征数据来确定由γ所表现的非线性特征。在一些实施方式中,曲线相称处理(curve fitting process)与一种或多种类型的特征数据相结合使用来产生更高等级(higher-order)的非线性模型,所述更高等级的非线性模型可被用于确定从给定的概率对(pij,pji)的偏移的大小。在一些实施方式中,相应的数学模型包括多个项(term),每个项均具有相应的缩放系数和/或指数值。因此,曲线相称处理被用于确定非线性模型的一个或多个系数和/或一个或多个指数值。在一些实施方式中,通过使用机器学习方法来确定偏移方程式(或模型)。例如,通过使用诸如快闪特征数据和/或基于历史数据的数据模式之类的之前确定的信息与读出数据的结合来使所述方程式公式化。
如框11-7所表现的,方法1100包括将已移位的读取比较电压(或者在已移位的读取比较电压与对应的读取比较电压之间的偏移)存储在特征向量中。如框11-8所表现的,方法1100包括确定是否存在要考虑的额外的读取比较电压电平。如果存在要考虑的额外的读取比较电压电平(框11-8的“是”路径),则方法1100包括重复所述方法的由框11-4至11-7所表现的部分,以便针对特定组的一个或多个存储介质特征参数值来确定将要存储在特征向量中的额外的已移位的读取比较电压。另一方面,如果不存在要考虑的其它读取比较电压电平(框11-8的“否”路径),则如框11-9所表现的,方法1100停止于特定组的一个或多个存储介质特征参数值。
图12是表现通过使用在存储介质的特征向量中所存储的多组读取比较电压来从存储介质读取数据的方法1200的实施方式的流程图。在一些实施方式中,方法1200由存储器控制器或与存储器控制器相关联的模块来执行,所述存储器控制器或与存储器控制器相关联的模块与存储介质耦接,并且当第一读取操作(参见框12-3、12-4和12-5)未能获得不具有无法恢复的错误的数据时,通常执行方法1200。简单地说,方法1200包括:从与特定组的一个或多个存储介质特征参数值对应(例如,与存储介质的当前状态对应)的特征向量取回至少两个读取比较电压,以及将所述至少两个读取比较电压应用于读取电路以便在两个不同时间从存储介质的相同组的存储位置取回原始数据。
为此,如框12-1所表现的,方法1200包括接收或取回特定组的一个或多个存储介质特征参数值,所述特定组的一个或多个存储介质特征参数值与数据将要从中读取的存储介质的当前状态对应。如框12-2所表现的,方法1200包括基于特定组的存储介质特征参数值来选择特征向量。如框12-3所表现的,方法1200包括从已选择的特征向量中获取第一读取比较电压值。如框12-4所表现的,方法1200包括将第一读取比较电压值提供给数据将要从中读取的存储介质的读取电路。如框12-5所表现的,方法1200包括基于第一读取比较电压值从存储介质的一个或多个特定地址或存储器位置接收第一读取数据值。如框12-6所表现的,方法1200进一步包括从已选择的特征向量获取第二读取比较电压值。如框12-7所表现的,方法1200包括将第二读取比较电压值提供给存储介质的读取电路。如框12-8所表现的,方法1200包括基于第二读取比较电压值来从与框12-5中所访问的那些存储介质的一个或多个特定地址或存储器位置相同的一个或多个特定地址或存储器位置接收第二读取数据值。如上所述,但并未在图12中示出,在一些实施方式中,使用至少第二读取数据值来恢复用于存储介质的一个或多个特定地址或存储器位置的数据值。
尽管上文描述了所附权利要求的范围内的实施方式的各个方面,但是应显而易见的是,可以以广泛的形式具体实施上文所述的实施方式的各个特点,并且上文所述的任意特定结构和/或功能仅为示例性的。基于本公开,本领域技术人员应当理解的是:本文所描述的方面可以单独地以其它方面来实现,并且可以各种方式包含这些方面中的两个或更多个方面。例如,通过使用本文所阐明的任意数量的方面可实现一种设备和/或可实践一种方法。此外,通过使用除了本文所阐明的一个或多个方面以外还有的其它结构和/或功能或者通过使用不同于本文所阐明的一个或多个方面的其它结构和/或功能可实现所述设备和/或所述方法。
还将理解的是,尽管在本文中术语“第一”、“第二”等可用于描述各种元素,但是这些元素并不受限于这些术语。这些术语仅用于将一个元素与另一元素进行区分。例如,第一接触可以用术语表示为第二接触,并且相似地,第二接触可以用术语表示为第一接触,这改变了描述的意思,只要所有出现的“第一接触”均被一致重新命名并且所有出现的第二接触均被一致重新命名即可。第一接触和第二接触均为接触,但是它们并非相同的接触。
本文所使用的技术仅出于描述特定实施例的目的并且并不意在限制权利要求。如在实施例的描述和所附权利要求中所使用的,单数形式的“一”、“一个”和“该”也意在包括复数形式,除非上下文清楚地另外指出。还将理解的是:如在本文所使用的,术语“和/或”涉及并且包括一个或多个相关联所列项的任一个或者所有可能的组合。还将进一步理解的是:当术语“包括”和/或“包含”在本说明书中使用时,该术语指定所述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其群组的存在或添加。
如在本文中所使用的,根据上下文,术语“如果”可以解释为意为“当所述前提条件为真时”、或“一旦所述前提条件为真”、或“响应于确定所述前提条件为真”、或“根据确定所述前提条件为真”、或“响应于检测到所述前提条件为真”。相似地,根据上下文,短语“如果确定[所述前提条件为真]”或“如果[所述前提条件为真]”或“当[所述前提条件为真]时”可以解释为意为“一旦确定所述前提条件为真”、或“响应于确定所述前提条件为真”、或“根据确定所述前提条件为真”、或“一旦检测到所述前提条件为真”、或“响应于检测到所述前提条件为真”。

Claims (45)

1.一种生成用于从存储介质进行数据读取的软信息值的方法,所述方法包括:
基于用于所述存储介质的一组一个或多个存储介质特征参数值来取回包括软信息值的特征向量;
生成与所取回的特征向量和从所述存储介质读取的第一多个数据值对应的第一多个软信息值;以及
生成与所取回的特征向量和从所述存储介质读取的第二多个数据值对应的第二多个软信息值。
2.根据权利要求1所述的方法,进一步包括:
使用第一读取比较信号从存储介质的一部分读取第一多个数据值;以及
使用与所述第一读取比较信号不同的第二读取比较信号从所述存储介质的同一部分读取第二多个数据值。
3.根据权利要求1或2所述的方法,进一步包括:
从所述第二多个软信息值或从所述第一多个软信息值与所述第二多个软信息值的结合来生成输出数据。
4.根据权利要求1-3中任一项所述的方法,进一步包括:
获取错误指示符,所述错误指示符指示所述第一多个软信息值代表包括有至少一个无法校正的错误的数据,并且
其中,响应于接收所述错误指示符而生成所述第二多个软信息值。
5.根据权利要求1-4中任一项所述的方法,进一步包括:
通过将所述第一多个软信息值与所述第二多个软信息值相结合来生成第三多个软信息值。
6.根据权利要求5所述的方法,其中所述第三多个软信息值响应于接收错误指示符而生成,所述错误指示符指示:所述第二多个软信息值代表包括有至少一个无法校正的错误的数据。
7.根据权利要求1-6中任一项所述的方法,进一步包括接收读取数据请求,其中所述读取数据请求包括对所请求的数据位于所述存储介质中何处的指示。
8.根据权利要求7所述的方法,进一步包括响应于接收所述读取数据请求来取回所述一个或多个存储介质特征参数值的组。
9.根据权利要求1-7中任一项所述的方法,进一步包括接收所述一个或多个存储介质特征参数值的组。
10.根据权利要求7所述的方法,其中所述一个或多个存储介质特征参数值的组提供如下各项中至少一项的指示:与所述存储介质的至少一部分相关联的物理特征、与所述存储介质的至少一部分相关联的操作模式、与所述存储介质的至少一部分相关联的使用历史、与所述存储介质的至少一部分相关联的条件特征、与所述存储介质的至少一部分相关联的读取类型、以及与所述存储介质的至少一部分相关联的位置。
11.根据权利要求7所述的方法,其中所述一个或多个存储介质特征参数值的组包括:正被访问的所述存储介质的位置的指示符、正被访问的所述存储介质的位置的之前编程/擦除周期的数量的指示符、以及所述存储介质的当前温度的指示符。
12.根据权利要求4所述的方法,进一步包括:
从所取回的特征向量中选择一个或多个第一读取比较信号值;
通过将所述一个或多个第一读取比较信号值提供给与所述存储介质相关联的读取电路来读取所述第一多个数据值;
从所取回的特征向量中选择一个或多个第二读取比较信号值;以及
通过将所述一个或多个第二读取比较信号值提供给与所述存储介质相关联的所述读取电路来读取所述第二多个数据值。
13.根据权利要求12所述的方法,其中所述一个或多个第一读取比较信号值与所述第一个或多个第二读取比较信号值中的每个均代表电压值。
14.根据权利要求12所述的方法,其中根据转移概率对,所述一个或多个第二读取比较信号值中的至少一个相对于所述一个或多个第一读取比较信号值中对应的一个而偏移。
15.根据权利要求12所述的方法,其中所述特征向量包括至少两个读取比较信号值。
16.根据权利要求1-15中任一项所述的方法,其中生成所述第一多个软信息值包括:
基于所述一个或多个存储介质特征参数值的组来取回特征向量,其中所述特征向量包括用于一个或多个位元组中的每个位元组的一个或多个软信息值;以及
为所述第一多个数据值中的每个位元组从所述特征向量选择相应的软信息值。
17.根据权利要求16所述的方法,其中所述第一多个数据值包括一序列的单个位的位元组,并且其中选择所述相应的软信息值包括为每个位元组选择与上页或下页对应的所述软信息值。
18.根据权利要求16所述的方法,其中所述第一多个数据值包括一序列的位对的位元组,并且其中选择所述相应的软信息值包括为每个位元组选择与上页和下页对应的所述软信息值。
19.根据权利要求16所述的方法,其中所述特征向量的软信息值包括转移概率和对数似然比两者中的至少一者。
20.根据权利要求16所述的方法,其中所述特征向量进一步包括一对读取比较电压值。
21.根据权利要求20所述的方法,其中所述特征向量进一步包括与所述对读取比较电压值相关联的一对权重值。
22.根据权利要求16所述的方法,其中以由特征参数的结合所定义的表的形式来存储所述特征向量。
23.根据权利要求1-22中的任一项所述的方法,其中生成所述第二多个软信息值包括:
基于所述一个或多个存储介质特征参数值的组来取回特征向量,其中所述特征向量包括用于一个或多个位元组中的每个位元组的一个或多个软信息值;以及
为所述第二多个数据值中的每个位元组从所述特征向量选择相应的软信息值。
24.根据权利要求5所述的方法,其中生成所述第三多个软信息值包括:
将所述第一多个软信息值中的一个软信息值与所述第二多个软信息值中对应的一个软信息值进行比较;
当所述比较满足第一条件时,使所述第三多个软信息值中对应的一个软信息值等于相应经比较的软信息值的第一结合;以及
当所述比较未能满足所述第一条件时,使所述第三多个软信息值中对应的一个软信息值等于相应经比较的软信息值的第二结合。
25.根据权利要求24所述的方法,其中所述比较包括确定相应经比较的软信息值的标记是否相等。
26.根据权利要求24所述的方法,其中相应经比较的软信息值的所述第一结合仅包括相应经比较的软信息值中的一个软信息值。
27.根据权利要求24所述的方法,其中使所述第三多个软信息值中对应的一个软信息值等于相应经比较的软信息值的第二结合包括:当所述第一条件未满足时,计算相应经比较的软信息值的加权和值。
28.根据权利要求27所述的方法,进一步包括从与所述一个或多个存储介质特征参数值的组相关联的特征向量取回用于确定所述加权和值的各个权重。
29.根据权利要求27所述的方法,进一步包括根据相应经比较的软信息值计算用于确定所述加权和值的各个权重。
30.根据权利要求1-29中任一项所述的方法,进一步包括发送所述第一多个软信息值。
31.根据权利要求1-30中任一项所述的方法,其中所述数据值被错误控制编码。
32.一种能够操作以生成用于从存储介质进行数据读取的软信息值的装置,所述装置包括:
特征模块,所述特征模块包括多个特征向量;其中每个特征向量均对应于一组一个或多个特征参数值,并且包括用于一个或多个位元组的结合中每个结合的一个或多个软信息值;
选择模块,所述选择模块用于基于特定组的一个或多个特征参数值来选择特征向量;以及
转换模块,所述转换模块用于:
通过将来自所选择的特征向量的相应的软信息值与所述第一多个数据值的每个位元组相关联来生成与所述第一多个数据值对应的第一多个软信息值;
通过将来自所选择的特征向量的相应的软信息值与所述第二多个数据值的每个位元组相关联来生成与所述第二多个数据值对应的第二多个软信息值。
33.根据权利要求32所述的装置,进一步包括调整模块,所述调整模块用于根据所述第一多个软信息值与所述第二多个软信息值的结合来生成第三多个软信息值。
34.根据权利要求32或33中任一项所述的装置,进一步包括读取控制器,所述读取控制器用于:
在第一时间,将相应的第一组的一个或多个读取比较信号值提供给与所述存储介质相关联的读取电路,并且接收所述第一多个数据值;以及
在第二时间,将相应的第二组的一个或多个读取比较信号值提供给与所述存储介质相关联的读取电路,并且提供所述第二多个数据值。
35.根据权利要求34所述的装置,其中每个特征向量包括第一组的一个或多个读取比较信号值以及第二组的一个或多个读取比较信号值。
36.根据权利要求35所述的装置,其中所述相应的第二组的一个或多个读取比较信号值中的每个读取比较信号值均与所述相应的第一组的一个或多个读取比较信号值中对应的一个读取比较信号值和相应的转移概率对相关联。
37.根据权利要求32-36中任一项所述的装置,进一步包括读取控制器,所述读取控制器用于接收读取数据请求,并且响应于接收所述读取数据请求来促进所述选择模块选择所述特征向量。
38.根据权利要求37所述的装置,其中所述读取控制器进一步用于与所述读取数据请求相关联地接收所述特定组的一个或多个一个或多个存储介质特征参数值。
39.根据权利要求37所述的装置,其中所述读取控制器进一步用于响应于接收所述读取数据请求来取回所述特定组的一个或多个存储介质特征参数值。
40.根据权利要求32-39中任一项所述的装置,进一步包括读取控制器,所述读取控制器用于:
获取错误指示符,所述错误指示符指示所述第一组的一个或多个读取比较信号值产生包括至少一个无法校正的错误的数据;以及
响应于获取所述错误指示符,将所述相应的第二组的一个或多个读取比较信号值提供给所述读取电路。
41.根据权利要求32-40中任一项所述的装置,进一步包括解码器,所述解码器用于根据所述第二多个软信息值或所述第二多个软信息值与所述第一多个软信息值的结合来输出数据。
42.根据权利要求32-41中任一项所述的装置,进一步包括调整模块,所述调整模块用于通过将所述第一多个软信息值与所述第二多个软信息值结合来生成第三多个软信息值。
43.根据权利要求42所述的装置,其中所述第三多个软信息值响应于接收错误指示符而生成,所述错误指示符指示:所述第二多个软信息值代表包括有至少一个无法校正的错误的数据。
44.一种根据从存储介质读取的数据来生成软信息值的方法,所述方法包括:
使用第一读取比较信号在第一时间读取第一多个数据值;
使用第二读取比较信号在第二时间读取第二多个数据值;
基于第一组的一个或多个存储介质特征参数值以及从所述存储介质的一部分读取的所述第一多个数据值来生成第一多个软信息值;以及
基于第二组的一个或多个存储介质特征参数值以及从所述存储介质的同一部分读取的所述第二多个数据值来生成第二多个软信息值,其中所述第二组的存储介质特征参数值与所述第一组的存储介质特征参数值不同。
45.根据权利要求44所述的方法,其中所述第二读取比较信号与所述第一读取比较信号不同。
CN201280066282.4A 2011-11-07 2012-10-10 生成用于从存储介质读取数据的软信息值的方法和装置 Expired - Fee Related CN104040504B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161556793P 2011-11-07 2011-11-07
US61/556,793 2011-11-07
US13/602,047 2012-08-31
US13/602,047 US9058289B2 (en) 2011-11-07 2012-08-31 Soft information generation for memory systems
PCT/US2012/059459 WO2013070368A1 (en) 2011-11-07 2012-10-10 Soft information generation for memory systems

Publications (2)

Publication Number Publication Date
CN104040504A true CN104040504A (zh) 2014-09-10
CN104040504B CN104040504B (zh) 2017-10-24

Family

ID=48224585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280066282.4A Expired - Fee Related CN104040504B (zh) 2011-11-07 2012-10-10 生成用于从存储介质读取数据的软信息值的方法和装置

Country Status (5)

Country Link
US (3) US8938658B2 (zh)
EP (1) EP2776929B1 (zh)
KR (1) KR101981355B1 (zh)
CN (1) CN104040504B (zh)
WO (3) WO2013070367A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107452421A (zh) * 2016-05-31 2017-12-08 光宝电子(广州)有限公司 固态储存装置及其状态预测方法
CN107957851A (zh) * 2016-10-18 2018-04-24 三星电子株式会社 存储装置、存储器系统、及其读取电压决定方法
CN108572887A (zh) * 2017-03-14 2018-09-25 上海骐宏电驱动科技有限公司 数据检验校正方法
CN109979519A (zh) * 2017-12-27 2019-07-05 华邦电子股份有限公司 存储器完整性的检验方法、非易失性存储器以及电子装置
CN111009280A (zh) * 2018-10-08 2020-04-14 三星电子株式会社 存储装置以及存储装置的操作方法
CN111243647A (zh) * 2020-01-02 2020-06-05 长江存储科技有限责任公司 闪存编程参数确定方法、装置、电子设备及存储介质
CN111796961A (zh) * 2019-04-09 2020-10-20 深圳大心电子科技有限公司 数据读取方法、存储控制器与存储装置
CN113129980A (zh) * 2020-08-04 2021-07-16 长江存储科技有限责任公司 一种信息译码方法、装置、电子设备及存储介质

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11869584B2 (en) 2010-04-19 2024-01-09 Silicon Motion, Inc. Memory access module for performing a plurality of sensing operations to generate digital values of a storage cell in order to perform decoding of the storage cell
TW201508759A (zh) 2010-04-19 2015-03-01 Silicon Motion Inc 用來進行記憶體存取管理之方法以及記憶裝置及其控制器
US9037931B2 (en) * 2011-12-21 2015-05-19 Advanced Micro Devices, Inc. Methods and systems for logic device defect tolerant redundancy
US9135106B2 (en) * 2012-05-22 2015-09-15 Hgst Technologies Santa Ana, Inc. Read level adjustment using soft information
US9092353B1 (en) 2013-01-29 2015-07-28 Pmc-Sierra Us, Inc. Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US9397701B1 (en) 2013-03-11 2016-07-19 Microsemi Storage Solutions (Us), Inc. System and method for lifetime specific LDPC decoding
US9021331B2 (en) * 2013-03-14 2015-04-28 Seagate Technology Llc Method and apparatus for generation of soft decision error correction code information
US9454414B2 (en) 2013-03-15 2016-09-27 Microsemi Storage Solutions (Us), Inc. System and method for accumulating soft information in LDPC decoding
US9450610B1 (en) * 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table
US9590656B2 (en) 2013-03-15 2017-03-07 Microsemi Storage Solutions (Us), Inc. System and method for higher quality log likelihood ratios in LDPC decoding
US9467170B2 (en) * 2013-05-17 2016-10-11 Marvell World Trade Ltd. NAND flash memory systems with efficient soft information interface
US9235469B2 (en) * 2013-05-22 2016-01-12 Seagate Technology Llc Systems and methods for inter-cell interference mitigation in a flash memory
KR20150018091A (ko) * 2013-08-09 2015-02-23 에스케이하이닉스 주식회사 오류 검출 회로 및 이를 이용한 데이터 처리 장치
US9298552B2 (en) * 2013-09-27 2016-03-29 Intel Corporation Using read values from previous decoding operations to calculate soft bit information in an error recovery operation
TWI527048B (zh) * 2013-11-29 2016-03-21 慧榮科技股份有限公司 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器
US9633749B2 (en) * 2013-12-19 2017-04-25 Sandisk Technologies Llc System and method of managing tags associated with read voltages
KR102110767B1 (ko) * 2013-12-24 2020-06-09 삼성전자 주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
TWI541819B (zh) * 2013-12-30 2016-07-11 慧榮科技股份有限公司 用來進行錯誤更正之方法、記憶裝置、與控制器
TWI492234B (zh) * 2014-04-21 2015-07-11 Silicon Motion Inc 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統
US9733847B2 (en) * 2014-06-02 2017-08-15 Micron Technology, Inc. Systems and methods for transmitting packets in a scalable memory system protocol
KR102215741B1 (ko) * 2014-06-23 2021-02-17 삼성전자주식회사 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US9417804B2 (en) 2014-07-07 2016-08-16 Microsemi Storage Solutions (Us), Inc. System and method for memory block pool wear leveling
KR102238592B1 (ko) * 2014-08-08 2021-04-09 삼성전자주식회사 비휘발성 메모리 장치의 디폴트 독출 전압 설정 방법 및 비휘발성 메모리 장치의 데이터 독출 방법
US9985653B2 (en) 2015-04-10 2018-05-29 Samsung Electronics Co., Ltd. Methods and systems for soft-decision decoding
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
TWI562152B (en) * 2015-05-29 2016-12-11 Phison Electronics Corp Decoding method, memory storage device and memory control circuit unit
WO2017017668A1 (en) * 2015-07-10 2017-02-02 Sital Technology And Hardware Engineering (1997) Ltd. System for device authentication
US11645430B2 (en) * 2015-07-10 2023-05-09 Sital Technology And Hardware Engineering (1997) Ltd. System for device authentication
US10970382B2 (en) * 2015-07-10 2021-04-06 Sital Technology And Hardware Engineering (1997) Ltd. System for device authentication
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
US10037164B1 (en) 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10261704B1 (en) 2016-06-29 2019-04-16 EMC IP Holding Company LLC Linked lists in flash memory
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10157677B2 (en) 2016-07-28 2018-12-18 Ip Gem Group, Llc Background reference positioning and local reference positioning using threshold voltage shift read
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
US10025661B1 (en) 2016-12-27 2018-07-17 Sandisk Technologies Llc Adaptive hard and soft bit decoding
US10489243B2 (en) * 2017-03-13 2019-11-26 Toshiba Memory Corporation Memory controller and memory system
US10776018B2 (en) 2017-06-19 2020-09-15 International Business Machines Corporation Efficient discovery of silent read failures on underlying media of storage systems
US10970363B2 (en) 2017-10-17 2021-04-06 Microsoft Technology Licensing, Llc Machine-learning optimization of data reading and writing
TWI684106B (zh) * 2018-09-28 2020-02-01 大陸商深圳衡宇芯片科技有限公司 訓練人工智慧更正儲存裝置的對數概度比的方法
US11966277B2 (en) * 2022-01-25 2024-04-23 Dell Products L.P. Storage error identification/reduction system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1440153A (zh) * 2002-02-15 2003-09-03 松下电器产业株式会社 缓存大小要求减低的混合自动重复请求重传方法及接收机
WO2008121577A1 (en) * 2007-03-31 2008-10-09 Sandisk Corporation Soft bit data transmission for error correction control in non-volatile memory
US20100002506A1 (en) * 2008-07-04 2010-01-07 Samsung Electronics Co., Ltd. Memory device and memory programming method
US20110205823A1 (en) * 2010-02-19 2011-08-25 Gerrit Jan Hemink Non-Volatile Storage With Temperature Compensation Based On Neighbor State Information

Family Cites Families (288)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4173737A (en) 1978-05-04 1979-11-06 Zenith Radio Corporation Limited position, non-volatile memory tuning system
US4888750A (en) 1986-03-07 1989-12-19 Kryder Mark H Method and system for erase before write magneto-optic recording
US4916652A (en) 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US5129089A (en) 1987-12-18 1992-07-07 Digital Equipment Corporation Distributed interlock apparatus and distributed interlock management method
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5416915A (en) 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5537555A (en) 1993-03-22 1996-07-16 Compaq Computer Corporation Fully pipelined and highly concurrent memory controller
US5329491A (en) 1993-06-30 1994-07-12 Intel Corporation Nonvolatile memory card with automatic power supply configuration
US5519847A (en) 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
US5708849A (en) 1994-01-26 1998-01-13 Intel Corporation Implementing scatter/gather operations in a direct memory access device on a personal computer
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
GB9419246D0 (en) 1994-09-23 1994-11-09 Cambridge Consultants Data processing circuits and interfaces
US5666114A (en) 1994-11-22 1997-09-09 International Business Machines Corporation Method and means for managing linear mapped address spaces storing compressed data at the storage subsystem control unit or device level
US5530705A (en) 1995-02-08 1996-06-25 International Business Machines Corporation Soft error recovery system and method
US5606532A (en) * 1995-03-17 1997-02-25 Atmel Corporation EEPROM array with flash-like core
US6016560A (en) 1995-06-14 2000-01-18 Hitachi, Ltd. Semiconductor memory, memory device, and memory card
US5890193A (en) 1995-07-28 1999-03-30 Micron Technology, Inc. Architecture for state machine for controlling internal operations of flash memory
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6134148A (en) 1997-09-30 2000-10-17 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
US5943692A (en) 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US6006345A (en) 1997-05-09 1999-12-21 International Business Machines Corporation Pattern generator for memory burn-in and test
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JPH11126497A (ja) 1997-10-22 1999-05-11 Oki Electric Ind Co Ltd 不揮発性半導体記憶装置
US6018304A (en) 1997-12-18 2000-01-25 Texas Instruments Incorporated Method and apparatus for high-rate n/n+1 low-complexity modulation codes with adjustable codeword length and error control capability
US6070074A (en) 1998-04-24 2000-05-30 Trw Inc. Method for enhancing the performance of a regenerative satellite communications system
US6138261A (en) 1998-04-29 2000-10-24 Trw Inc. Concatenated coding system for satellite communications
US6182264B1 (en) 1998-05-22 2001-01-30 Vlsi Technology, Inc. Smart dynamic selection of error correction methods for DECT based data services
US7111293B1 (en) 1998-06-03 2006-09-19 Ants Software, Inc. Method for increased concurrency in a computer system
US6192092B1 (en) 1998-06-15 2001-02-20 Intel Corp. Method and apparatus for clock skew compensation
US6505305B1 (en) 1998-07-16 2003-01-07 Compaq Information Technologies Group, L.P. Fail-over of multiple memory blocks in multiple memory modules in computer system
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6295592B1 (en) 1998-07-31 2001-09-25 Micron Technology, Inc. Method of processing memory requests in a pipelined memory controller
US6288860B1 (en) 1999-01-04 2001-09-11 Maxtor Corporation Servo area numbering strategy for computer disk drives
US6438661B1 (en) 1999-03-03 2002-08-20 International Business Machines Corporation Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache
US6449625B1 (en) 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
US6564271B2 (en) 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US20080282128A1 (en) 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US7333364B2 (en) 2000-01-06 2008-02-19 Super Talent Electronics, Inc. Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
US20050114587A1 (en) 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US7318117B2 (en) 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US6412042B1 (en) 1999-11-17 2002-06-25 Maxtor Corporation System and method for improved disk drive performance and reliability
US6484224B1 (en) 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
DE19961138C2 (de) 1999-12-17 2001-11-22 Siemens Ag Multiport-RAM-Speichervorrichtung
US8037234B2 (en) 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US7082056B2 (en) 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
US20020152305A1 (en) 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US6516437B1 (en) 2000-03-07 2003-02-04 General Electric Company Turbo decoder control for use with a programmable interleaver, variable block length, and multiple code rates
US6615307B1 (en) 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
US20030188045A1 (en) 2000-04-13 2003-10-02 Jacobson Michael B. System and method for distributing storage controller tasks
US6678788B1 (en) 2000-05-26 2004-01-13 Emc Corporation Data type and topological data categorization and ordering for a mass storage system
US6442076B1 (en) 2000-06-30 2002-08-27 Micron Technology, Inc. Flash memory with multiple status reading capability
US6980985B1 (en) * 2000-08-30 2005-12-27 At&T Corp. Distributed evalulation of directory queries using a topology cache
US7028165B2 (en) 2000-12-06 2006-04-11 Intel Corporation Processor stalling
US6738870B2 (en) 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
KR100381955B1 (ko) 2001-01-03 2003-04-26 삼성전자주식회사 기입 드라이버를 이용한 셀 전류 측정 스킴을 갖는 플래시메모리 장치
US20020161846A1 (en) 2001-01-29 2002-10-31 Ulrich Thomas R. Data path controller architecture
JPWO2002082435A1 (ja) 2001-03-30 2004-07-29 富士通株式会社 記憶装置及びそのフォーカス制御方法
US7017107B2 (en) 2001-04-30 2006-03-21 Sun Microsystems, Inc. Storage array employing scrubbing operations at the disk-controller level
US6938253B2 (en) 2001-05-02 2005-08-30 Portalplayer, Inc. Multiprocessor communication system and method
US6757768B1 (en) 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US7068603B2 (en) 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US6836815B1 (en) 2001-07-11 2004-12-28 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
JP4569055B2 (ja) 2001-08-06 2010-10-27 ソニー株式会社 信号処理装置及び信号処理方法
TW539946B (en) 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
JP4437519B2 (ja) 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US7028213B2 (en) 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
US7032123B2 (en) 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
JP3663377B2 (ja) 2001-10-23 2005-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法
US7380085B2 (en) 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US6798696B2 (en) 2001-12-04 2004-09-28 Renesas Technology Corp. Method of controlling the operation of non-volatile semiconductor memory chips
US6871257B2 (en) 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US6836808B2 (en) 2002-02-25 2004-12-28 International Business Machines Corporation Pipelined packet processing
KR100476888B1 (ko) 2002-04-04 2005-03-17 삼성전자주식회사 온도보상기능을 가진 멀티비트 플래쉬메모리
JP4079684B2 (ja) 2002-05-08 2008-04-23 株式会社日立製作所 ヒープメモリ管理方法およびそれを用いた計算機システム
US6895464B2 (en) 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US6978343B1 (en) 2002-08-05 2005-12-20 Netlogic Microsystems, Inc. Error-correcting content addressable memory
US7051155B2 (en) 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US7120856B2 (en) 2002-09-25 2006-10-10 Leanics Corporation LDPC code and encoder/decoder regarding same
JP2004178782A (ja) 2002-10-04 2004-06-24 Sharp Corp 半導体記憶装置およびその制御方法および携帯電子機器
CA2508141C (en) 2002-12-02 2009-11-03 Silverbrook Research Pty Ltd Dead nozzle compensation
US20040114265A1 (en) 2002-12-16 2004-06-17 Xerox Corporation User-selectable automatic secure data file erasure of job after job completion
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7296216B2 (en) 2003-01-23 2007-11-13 Broadcom Corporation Stopping and/or reducing oscillations in low density parity check (LDPC) decoding
US7043505B1 (en) 2003-01-28 2006-05-09 Unisys Corporation Method variation for collecting stability data from proprietary systems
US7162678B2 (en) 2003-03-14 2007-01-09 Quantum Corporation Extended error correction codes
KR100543447B1 (ko) 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
US7527466B2 (en) * 2003-04-03 2009-05-05 Simmons Robert J Building-erection structural member transporter
JP4170988B2 (ja) 2003-05-09 2008-10-22 富士通株式会社 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体
EP2511787B1 (en) 2003-05-23 2017-09-20 IP Reservoir, LLC Data decompression and search using FPGA devices
US7877647B2 (en) 2003-05-23 2011-01-25 Hewlett-Packard Development Company, L.P. Correcting a target address in parallel with determining whether the target address was received in error
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7076598B2 (en) 2003-09-09 2006-07-11 Solid State System Co., Ltd. Pipeline accessing method to a large block memory
US7100002B2 (en) 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7054968B2 (en) 2003-09-16 2006-05-30 Denali Software, Inc. Method and apparatus for multi-port memory controller
US7523157B2 (en) 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7173852B2 (en) 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7401174B2 (en) 2003-12-16 2008-07-15 Matsushita Electric Industrial Co., Ltd. File system defragmentation and data processing method and apparatus for an information recording medium
US7376887B2 (en) 2003-12-22 2008-05-20 International Business Machines Corporation Method for fast ECC memory testing by software including ECC check byte
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US7328377B1 (en) 2004-01-27 2008-02-05 Altera Corporation Error correction for programmable logic integrated circuits
JP4477365B2 (ja) 2004-01-29 2010-06-09 株式会社日立製作所 複数インタフェースを有する記憶装置、および、その記憶装置の制御方法
US7389465B2 (en) 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US7350044B2 (en) 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US20080147964A1 (en) 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7035159B2 (en) 2004-04-01 2006-04-25 Micron Technology, Inc. Techniques for storing accurate operating current values
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US20050273560A1 (en) 2004-06-03 2005-12-08 Hulbert Jared E Method and apparatus to avoid incoherency between a cache memory and flash memory
US7334179B2 (en) 2004-06-04 2008-02-19 Broadcom Corporation Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems
US7159069B2 (en) 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device
US8190808B2 (en) 2004-08-17 2012-05-29 Rambus Inc. Memory device having staggered memory operations
DK3422583T3 (da) 2004-08-30 2020-09-28 Google Llc System og fremgangsmåde for at tilvejebringe ikke-flygtig hukommelsesadministration i trådløse telefoner
FR2875358B1 (fr) 2004-09-15 2006-12-15 Eads Telecom Soc Par Actions S Insertion d'un flux secondaire d'informations binaires dans un flux principal de symboles d'une modulation numerique
US7760880B2 (en) 2004-10-13 2010-07-20 Viasat, Inc. Decoder architecture system and method
JP4956922B2 (ja) 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
US8438459B2 (en) 2004-12-22 2013-05-07 Lg Electronics Inc. Apparatus and method for decoding using channel code
US20060156177A1 (en) 2004-12-29 2006-07-13 Sailesh Kottapalli Method and apparatus for recovering from soft errors in register files
US7657696B2 (en) 2005-02-25 2010-02-02 Lsi Corporation Method to detect NAND-flash parameters by hardware automatically
US7707232B2 (en) 2005-05-13 2010-04-27 Microsoft Corporation Implementation for collecting unmanaged memory
US7283395B2 (en) 2005-06-24 2007-10-16 Infineon Technologies Flash Gmbh & Co. Kg Memory device and method for operating the memory device
EP1897223A1 (en) 2005-06-27 2008-03-12 Thomson Licensing S.A. Stopping criteria in iterative decoders
US7934049B2 (en) 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
KR100705220B1 (ko) 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
KR20080054412A (ko) 2005-09-27 2008-06-17 엔엑스피 비 브이 에러 검출/보정 회로 및 방법과, 전자 메모리 소자 또는메모리 모듈
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
KR100715147B1 (ko) 2005-10-06 2007-05-10 삼성전자주식회사 전류소모를 감소시키는 내부전원전압 발생회로를 가지는멀티칩 반도체 메모리 장치
US20070083697A1 (en) 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
US8223553B2 (en) 2005-10-12 2012-07-17 Macronix International Co., Ltd. Systems and methods for programming a memory device
US7954037B2 (en) 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
KR101021465B1 (ko) 2005-10-26 2011-03-15 삼성전자주식회사 저밀도 패리티 검사 코드를 사용하는 통신 시스템에서 신호수신 장치 및 방법
KR100966043B1 (ko) 2005-10-31 2010-06-25 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 송수신 장치 및 방법
US7500062B2 (en) 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
WO2007058617A1 (en) 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
US7562283B2 (en) 2005-12-27 2009-07-14 D.S.P. Group Ltd. Systems and methods for error correction using binary coded hexidecimal or hamming decoding
US7546515B2 (en) 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US7349264B2 (en) 2005-12-28 2008-03-25 Sandisk Corporation Alternate sensing techniques for non-volatile memories
WO2007080586A2 (en) 2006-01-10 2007-07-19 Saifun Semiconductors Ltd. Rd algorithm improvement for nrom technology
US8020060B2 (en) 2006-01-18 2011-09-13 Sandisk Il Ltd Method of arranging data in a multi-level cell memory device
KR100725410B1 (ko) 2006-01-20 2007-06-07 삼성전자주식회사 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법
US20070234143A1 (en) 2006-01-25 2007-10-04 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices
JP4859471B2 (ja) 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ
US7870326B2 (en) 2006-07-28 2011-01-11 Samsung Electronics Co., Ltd. Multiprocessor system and method thereof
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7681106B2 (en) 2006-03-29 2010-03-16 Freescale Semiconductor, Inc. Error correction device and methods thereof
US20070245061A1 (en) 2006-04-13 2007-10-18 Intel Corporation Multiplexing a parallel bus interface and a flash memory interface
US7685494B1 (en) 2006-05-08 2010-03-23 Marvell International, Ltd. Error correction coding for varying signal-to-noise ratio channels
US8000134B2 (en) 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7707481B2 (en) 2006-05-16 2010-04-27 Pitney Bowes Inc. System and method for efficient uncorrectable error detection in flash memory
US7701764B2 (en) 2006-05-17 2010-04-20 Micron Technology, Inc. Apparatus and method for reduced peak power consumption during common operation of multi-NAND flash memory devices
US20070300130A1 (en) 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US7606084B2 (en) 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
JP4842719B2 (ja) 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
US8006160B2 (en) 2006-06-29 2011-08-23 Digital Fountain, Inc. Efficient encoding and decoding methods for representing schedules and processing forward error correction codes
US7774684B2 (en) 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
JP2008047273A (ja) 2006-07-20 2008-02-28 Toshiba Corp 半導体記憶装置およびその制御方法
US7831895B2 (en) 2006-07-25 2010-11-09 Communications Coding Corporation Universal error control coding system for digital communication and data storage systems
TW200813724A (en) 2006-07-28 2008-03-16 Samsung Electronics Co Ltd Multipath accessible semiconductor memory device with host interface between processors
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
US7450425B2 (en) 2006-08-30 2008-11-11 Micron Technology, Inc. Non-volatile memory cell read failure reduction
TW200816651A (en) 2006-09-25 2008-04-01 Sunplus Technology Co Ltd Decoding method and system of real-time wireless channel estimation
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US8171380B2 (en) 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
WO2008057822A2 (en) * 2006-11-03 2008-05-15 Sandisk Corporation Nonvolatile memory with variable read threshold
JP2008117195A (ja) 2006-11-06 2008-05-22 Hitachi Ltd 半導体記憶装置
TWI307100B (en) 2006-11-07 2009-03-01 Macronix Int Co Ltd Memory and method for reading error checking thereof
US7508703B2 (en) 2006-11-13 2009-03-24 Sandisk Corporation Non-volatile memory with boost structures
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
CN101681282A (zh) 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
KR100808664B1 (ko) 2006-12-08 2008-03-07 한국전자통신연구원 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
KR100881669B1 (ko) 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
WO2008075292A2 (en) 2006-12-18 2008-06-26 Nxp B.V. Power-on temperature sensor/spd detect
KR100842680B1 (ko) 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US7603490B2 (en) 2007-01-10 2009-10-13 International Business Machines Corporation Barrier and interrupt mechanism for high latency and out of order DMA device
KR100855587B1 (ko) 2007-01-17 2008-09-01 삼성전자주식회사 메일박스 영역을 가지는 멀티 패스 액세스블 반도체 메모리장치 및 그에 따른 메일박스 액세스 제어방법
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7913022B1 (en) 2007-02-14 2011-03-22 Xilinx, Inc. Port interface modules (PIMs) in a multi-port memory controller (MPMC)
KR100918707B1 (ko) 2007-03-12 2009-09-23 삼성전자주식회사 플래시 메모리를 기반으로 한 메모리 시스템
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
JP4897524B2 (ja) 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
KR100907218B1 (ko) 2007-03-28 2009-07-10 삼성전자주식회사 읽기 레벨 제어 장치 및 그 방법
WO2008121553A1 (en) 2007-03-29 2008-10-09 Sandisk Corporation Non-volatile storage with decoding of data using reliability metrics based on multiple reads
US8032724B1 (en) 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US7996642B1 (en) 2007-04-25 2011-08-09 Marvell International Ltd. Digital locked loop on channel tagged memory requests for memory optimization
US8151171B2 (en) 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
US8073648B2 (en) * 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
US7930547B2 (en) 2007-06-15 2011-04-19 Alcatel-Lucent Usa Inc. High accuracy bloom filter using partitioned hashing
KR100891005B1 (ko) 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
EP2210257B1 (en) 2007-10-31 2016-04-20 Avago Technologies General IP (Singapore) Pte. Ltd. Systematic error correction for multi-level flash memory
US7894264B2 (en) 2007-11-07 2011-02-22 Micron Technology, Inc. Controlling a memory device responsive to degradation
US8429492B2 (en) 2007-11-30 2013-04-23 Marvell World Trade Ltd. Error correcting code predication system and method
WO2009072104A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith
US8621137B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
WO2009084724A1 (en) 2007-12-28 2009-07-09 Kabushiki Kaisha Toshiba Semiconductor storage device
US20090172335A1 (en) 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8159874B2 (en) 2008-01-22 2012-04-17 Micron Technology, Inc. Cell operation monitoring
US8271515B2 (en) 2008-01-29 2012-09-18 Cadence Design Systems, Inc. System and method for providing copyback data integrity in a non-volatile memory system
JP4617405B2 (ja) 2008-02-05 2011-01-26 富士通株式会社 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
JP2009266349A (ja) 2008-04-28 2009-11-12 Toshiba Corp 不揮発性半導体記憶装置
US8185706B2 (en) 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
KR101518199B1 (ko) 2008-05-23 2015-05-06 삼성전자주식회사 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치
KR101412690B1 (ko) 2008-05-28 2014-06-27 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
KR101412974B1 (ko) 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
JP5072723B2 (ja) 2008-06-11 2012-11-14 株式会社東芝 不揮発性半導体記憶装置
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8627169B2 (en) 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
KR101436506B1 (ko) 2008-07-23 2014-09-02 삼성전자주식회사 메모리 장치 및 메모리 데이터 프로그래밍 방법
US8130552B2 (en) 2008-09-11 2012-03-06 Sandisk Technologies Inc. Multi-pass programming for memory with reduced data storage requirement
KR101484556B1 (ko) 2008-10-28 2015-01-20 삼성전자주식회사 독출 보상 회로
US8023334B2 (en) 2008-10-31 2011-09-20 Micron Technology, Inc. Program window adjust for memory cell signal line delay
KR101516577B1 (ko) 2008-11-10 2015-05-06 삼성전자주식회사 비휘발성 반도체 메모리 장치, 그를 포함하는 메모리 카드와 메모리 시스템 및 그의 리드 전압 추정 방법
US9063874B2 (en) 2008-11-10 2015-06-23 SanDisk Technologies, Inc. Apparatus, system, and method for wear management
KR20100058166A (ko) 2008-11-24 2010-06-03 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
US8209466B2 (en) 2008-12-16 2012-06-26 Intel Corporation Methods and systems to allocate addresses in a high-endurance/low-endurance hybrid flash memory
US9128699B2 (en) 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
KR101535225B1 (ko) 2009-01-06 2015-07-09 삼성전자주식회사 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치
KR100996009B1 (ko) 2009-02-02 2010-11-22 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 동작 방법
US8645749B2 (en) 2009-02-04 2014-02-04 Micron Technology, Inc. Systems and methods for storing and recovering controller data in non-volatile memory devices
KR20100090439A (ko) 2009-02-06 2010-08-16 주식회사 하이닉스반도체 불휘발성 메모리 장치의 독출 방법 및 이를 구현하는 불휘발성 메모리 장치
KR20100093885A (ko) 2009-02-17 2010-08-26 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8042011B2 (en) 2009-04-28 2011-10-18 Synopsys, Inc. Runtime programmable BIST for testing a multi-port memory device
KR101575248B1 (ko) 2009-04-30 2015-12-07 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
US20100281207A1 (en) 2009-04-30 2010-11-04 Miller Steven C Flash-based data archive storage system
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US7941696B2 (en) 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US7818525B1 (en) 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
US8464106B2 (en) 2009-08-24 2013-06-11 Ocz Technology Group, Inc. Computer system with backup function and method therefor
EP2471068B1 (en) 2009-08-25 2015-11-11 SanDisk IL Ltd. Restoring data into a flash storage device
US8077515B2 (en) 2009-08-25 2011-12-13 Micron Technology, Inc. Methods, devices, and systems for dealing with threshold voltage change in memory devices
JP5197544B2 (ja) 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
US8312349B2 (en) 2009-10-27 2012-11-13 Micron Technology, Inc. Error detection/correction based memory management
CN101699406B (zh) 2009-11-12 2011-12-14 威盛电子股份有限公司 数据储存系统与方法
US8130553B2 (en) 2009-12-02 2012-03-06 Seagate Technology Llc Systems and methods for low wear operation of solid state memory
US8250380B2 (en) 2009-12-17 2012-08-21 Hitachi Global Storage Technologies Netherlands B.V. Implementing secure erase for solid state drives
TWI399645B (zh) 2010-01-15 2013-06-21 Silicon Motion Inc 管理記憶體讀出資料之方法以及記憶裝置
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
JP5788183B2 (ja) 2010-02-17 2015-09-30 三星電子株式会社Samsung Electronics Co.,Ltd. 不揮発性メモリ装置、それの動作方法、そしてそれを含むメモリシステム
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8164967B2 (en) 2010-03-24 2012-04-24 Apple Inc. Systems and methods for refreshing non-volatile memory
US8737141B2 (en) 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8737136B2 (en) 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
US8503238B1 (en) 2010-07-21 2013-08-06 Sk Hynix Memory Solutions Inc. Error recovery for flash memory
US20120023144A1 (en) 2010-07-21 2012-01-26 Seagate Technology Llc Managing Wear in Flash Memory
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
CN102385902A (zh) 2010-09-01 2012-03-21 建兴电子科技股份有限公司 固态储存装置及其数据控制方法
US8738846B2 (en) 2010-10-15 2014-05-27 Arkologic Limited File system-aware solid-state storage management system
WO2012058328A1 (en) 2010-10-27 2012-05-03 Sandforce, Inc. Adaptive ecc techniques for flash memory based data storage
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
KR101774496B1 (ko) 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
KR20120064462A (ko) 2010-12-09 2012-06-19 삼성전자주식회사 메모리 컨트롤러, 이의 오류정정 방법, 및 이를 포함하는 메모리 시스템
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US9038066B2 (en) 2010-12-22 2015-05-19 Vmware, Inc. In-place snapshots of a virtual disk configured with sparse extent
JP2012151676A (ja) 2011-01-19 2012-08-09 Jvc Kenwood Corp 復号装置および復号方法
US8966319B2 (en) 2011-02-22 2015-02-24 Apple Inc. Obtaining debug information from a flash memory device
US9047955B2 (en) 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
US8909888B2 (en) 2011-04-29 2014-12-09 Seagate Technology Llc Secure erasure of data from a non-volatile memory
US8898373B1 (en) 2011-06-29 2014-11-25 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US8566667B2 (en) 2011-07-29 2013-10-22 Stec, Inc. Low density parity check code decoding system and method
US20130047045A1 (en) 2011-08-19 2013-02-21 Stec, Inc. Error indicator from ecc decoder
US9047210B2 (en) 2011-09-15 2015-06-02 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
EP2761465B1 (en) 2011-09-30 2022-02-09 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
JP5943395B2 (ja) 2011-11-02 2016-07-05 国立大学法人 東京大学 メモリコントローラおよびデータ記憶装置
US8683297B2 (en) 2011-11-02 2014-03-25 Sandisk Technologies Inc. Systems and methods of generating a replacement default read threshold
US8456919B1 (en) 2011-11-10 2013-06-04 Sandisk Technologies Inc. Method and apparatus to provide data including hard bit data and soft bit data to a rank modulation decoder
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US8830746B2 (en) 2011-12-28 2014-09-09 Apple Inc. Optimized threshold search in analog memory cells using separator pages of the same type as read pages
JP2013142947A (ja) 2012-01-10 2013-07-22 Sony Corp 記憶制御装置、記憶装置および記憶制御装置の制御方法
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
WO2013112332A1 (en) 2012-01-24 2013-08-01 Apple Inc. Enhanced programming and erasure schemes for analog memory cells
US8964482B2 (en) 2012-01-30 2015-02-24 Freescale Semiconductor, Inc. Dynamic healing of non-volatile memory cells
US8817569B2 (en) 2012-03-19 2014-08-26 Sandisk Technologies Inc. Immunity against temporary and short power drops in non-volatile memory
US8923066B1 (en) 2012-04-09 2014-12-30 Sk Hynix Memory Solutions Inc. Storage of read thresholds for NAND flash storage using linear approximation
US20130343131A1 (en) 2012-06-26 2013-12-26 Lsi Corporation Fast tracking for flash channels
US8634267B2 (en) 2012-05-14 2014-01-21 Sandisk Technologies Inc. Flash memory chip power management for data reliability and methods thereof
KR20140028481A (ko) 2012-08-29 2014-03-10 에스케이하이닉스 주식회사 쓰기 전류를 측정할 수 있는 반도체 메모리 장치 및 쓰기 전류 측정 방법
US8938656B2 (en) 2012-09-14 2015-01-20 Sandisk Technologies Inc. Data storage device with intermediate ECC stage
WO2014068617A1 (en) 2012-10-31 2014-05-08 Hitachi, Ltd. Storage apparatus and method for controlling storage apparatus
US8634248B1 (en) 2012-11-09 2014-01-21 Sandisk Technologies Inc. On-device data analytics using NAND flash based intelligent memory
US8949544B2 (en) 2012-11-19 2015-02-03 Advanced Micro Devices, Inc. Bypassing a cache when handling memory requests
US8869008B2 (en) 2013-01-17 2014-10-21 Apple Inc. Adaptation of analog memory cell read thresholds using partial ECC syndromes
US9042181B2 (en) 2013-03-15 2015-05-26 SanDisk Technologies, Inc. Periodic erase operation for a non-volatile medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1440153A (zh) * 2002-02-15 2003-09-03 松下电器产业株式会社 缓存大小要求减低的混合自动重复请求重传方法及接收机
WO2008121577A1 (en) * 2007-03-31 2008-10-09 Sandisk Corporation Soft bit data transmission for error correction control in non-volatile memory
US20100002506A1 (en) * 2008-07-04 2010-01-07 Samsung Electronics Co., Ltd. Memory device and memory programming method
US20110205823A1 (en) * 2010-02-19 2011-08-25 Gerrit Jan Hemink Non-Volatile Storage With Temperature Compensation Based On Neighbor State Information

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107452421A (zh) * 2016-05-31 2017-12-08 光宝电子(广州)有限公司 固态储存装置及其状态预测方法
CN107452421B (zh) * 2016-05-31 2020-06-16 建兴储存科技(广州)有限公司 固态储存装置及其状态预测方法
CN107957851A (zh) * 2016-10-18 2018-04-24 三星电子株式会社 存储装置、存储器系统、及其读取电压决定方法
CN107957851B (zh) * 2016-10-18 2022-04-26 三星电子株式会社 存储装置、存储器系统、及其读取电压决定方法
CN108572887A (zh) * 2017-03-14 2018-09-25 上海骐宏电驱动科技有限公司 数据检验校正方法
CN109979519A (zh) * 2017-12-27 2019-07-05 华邦电子股份有限公司 存储器完整性的检验方法、非易失性存储器以及电子装置
CN109979519B (zh) * 2017-12-27 2021-03-16 华邦电子股份有限公司 存储器完整性的检验方法、非易失性存储器以及电子装置
CN111009280A (zh) * 2018-10-08 2020-04-14 三星电子株式会社 存储装置以及存储装置的操作方法
CN111009280B (zh) * 2018-10-08 2023-08-29 三星电子株式会社 存储装置以及存储装置的操作方法
CN111796961A (zh) * 2019-04-09 2020-10-20 深圳大心电子科技有限公司 数据读取方法、存储控制器与存储装置
CN111243647A (zh) * 2020-01-02 2020-06-05 长江存储科技有限责任公司 闪存编程参数确定方法、装置、电子设备及存储介质
CN113129980A (zh) * 2020-08-04 2021-07-16 长江存储科技有限责任公司 一种信息译码方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
EP2776929A1 (en) 2014-09-17
WO2013070366A2 (en) 2013-05-16
US8938658B2 (en) 2015-01-20
US20130117613A1 (en) 2013-05-09
US20130117616A1 (en) 2013-05-09
CN104040504B (zh) 2017-10-24
EP2776929B1 (en) 2020-04-29
WO2013070367A3 (en) 2013-07-18
WO2013070367A2 (en) 2013-05-16
KR101981355B1 (ko) 2019-05-22
US20130117640A1 (en) 2013-05-09
WO2013070366A3 (en) 2013-07-25
US8793543B2 (en) 2014-07-29
US9058289B2 (en) 2015-06-16
WO2013070368A1 (en) 2013-05-16
KR20140090671A (ko) 2014-07-17

Similar Documents

Publication Publication Date Title
CN104040504A (zh) 用于存储器系统的软信息生成
KR102059209B1 (ko) 비휘발성 메모리의 차동 벡터 저장
US9442662B2 (en) Device and method for managing die groups
CN104937669B (zh) 使用分类码来确定软数据
US8578245B2 (en) Data reading method, memory storage apparatus, and controller thereof
CN109428606B (zh) 具有ldpc解码器的存储器系统及其操作方法
US20140372687A1 (en) Mapping data to non-volatile memory
US10970165B2 (en) Encoder and decoder for memory system and method thereof
US10985780B2 (en) Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller
US10846172B2 (en) Encoding method and system for memory device including QLC cells
CN102543196B (zh) 数据读取方法、存储器储存装置及其控制器
CN111540393B (zh) 用于基于字线分组的读取操作的存储器系统和方法
CN105023613B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN105022674B (zh) 解码方法、存储器存储装置、存储器控制电路单元
US20190189228A1 (en) Bit tagging method, memory control circuit unit and memory storage device
US11036579B2 (en) Decoder for memory system and method thereof
US10884858B2 (en) LDPC decoding device, memory system including the same and method thereof
US9239751B1 (en) Compressing data from multiple reads for error control management in memory systems
CN113496752B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN112599180B (zh) 用于存储器系统的解码器及其方法
US11145372B2 (en) Decoding method, memory controlling circuit unit, and memory storage device
US10922019B2 (en) Data writing method, memory controlling circuit unit and memory storage device
CN109960603A (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
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160516

Address after: Texas, USA

Applicant after: SANDISK TECHNOLOGIES Inc.

Address before: California, USA

Applicant before: Sandyike Enterprise Intellectual Property Co.,Ltd.

CB02 Change of applicant information

Address after: Texas, USA

Applicant after: SANDISK TECHNOLOGIES LLC

Address before: Texas, USA

Applicant before: SANDISK TECHNOLOGIES Inc.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171024