CN101523504B - 固态存储元件及方法 - Google Patents

固态存储元件及方法 Download PDF

Info

Publication number
CN101523504B
CN101523504B CN200780037197.4A CN200780037197A CN101523504B CN 101523504 B CN101523504 B CN 101523504B CN 200780037197 A CN200780037197 A CN 200780037197A CN 101523504 B CN101523504 B CN 101523504B
Authority
CN
China
Prior art keywords
storage unit
charge
value
data
symbol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200780037197.4A
Other languages
English (en)
Other versions
CN101523504A (zh
Inventor
肯尼斯·J·埃尔德雷奇
史蒂芬·P·万阿肯
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.)
Cornice Inc
Benhov GmbH LLC
Original Assignee
Cornice Inc
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 Cornice Inc filed Critical Cornice Inc
Publication of CN101523504A publication Critical patent/CN101523504A/zh
Application granted granted Critical
Publication of CN101523504B publication Critical patent/CN101523504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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/5628Programming or writing circuits; Data input circuits
    • 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/10Programming or data input 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
    • 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/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Abstract

公开了用于利用闪存器件(104)来存储和提取数据的方法和系统。一个示例系统包括在闪存配置中的设备。所述闪存配置包括多个存储单元(118),其中每个存储单元具有用于实现数字存储的电荷存储容量。所述设备包括被配置用于在写操作和读操作中访问各个存储单元(118)的处理装置。所述设备还包括用于指示所述处理器针对每个存储单元(118)而施加用于限定多个数据值的目标电荷电平的指令集。所述目标电荷电平可以与所述电荷存储容量相关地可编程地变化。

Description

固态存储元件及方法
技术领域
本发明总体上涉及数字器件体系结构。更具体地,本发明涉及数字系统配置以及用于包括固态存储元件的器件的相关方法。
背景技术
为了获得对电子器件的普及性的评估,实际上只需要简单地调查现代社会中的任何公共区域。这种器件包括但不限于蜂窝电话、音乐播放器、便携式计算机、个人数字助理、寻呼机、数字照相机、数字摄录机、个人游戏装置以及电子书。已经看到了至少部分地可归因于朝向数字实现方式的趋势的、对这些器件中存在的能力的持续改进。
与未来的电子器件相关的需求包括进一步的小型化外加更进一步的性能改善。所关注的特定领域在于期望存储数量不断增大的数字信息。在尝试处理对大量的数字数据存储的需求时,设计者越来越多地使用电子器件,特别是以闪存形式的电子器件。以目前技术发展水平的音乐播放器(包括MP3播放器)为例,在这种情况下该解决方案是显然的。
在尝试在保持小的存储器尺寸的同时增大数据存储时,与简单地存储二进制的一和零相反地,一些现代的闪存技术能够在单个存储单元中存储多个数据电平。但是,在可以在单个存储单元中存储多个数据电平的情况下,闪存在执行读写操作时变得更易于出错。此外,传统的利用单个存储单元中的多个数据电平的闪存技术通常受限于存储与二的偶次幂相对应的多个电平。
在此要求保护的主题不限于解决任何上述缺陷或仅在诸如上述的环境中操作的实施方式。相反地,本背景技术仅被提供用于举例说明可以在其中实现在此描述的一些实施例的一种示例性技术领域。
发明内容
通过本发明的实施例来克服这些及其它的缺陷,本发明涉及用于利用闪存器件来存储和提取数据的系统和方法。一个示例实施例包括在闪存配置中的设备。所述闪存配置包括多个存储单元,其中每个存储单元具有用于实现数字存储的电荷存储容量。所述设备包括被配置用于在写操作和读操作中访问所述存储单元中的各个存储单元的处理装置。所述设备还包括用于指示所述处理器针对所述存储单元中的每个存储单元而施加用于限定多个数据值的目标电荷电平。所述目标电荷电平能够与所述电荷存储容量相关地可编程地变化,并且在一个实施例中,由目标电荷电平限定的不同的数据值的数量为二的非整数幂。
还示出了对该一般方法的变型。例如,在另一实施例中,所述指令集可以建立由多个电荷层构成的电荷层结构,所述多个电荷层的特征在于跨电荷存储容量地逐渐增大的电荷量。每个电荷层与存储值以及限定电荷量的电荷值相关。通过处理器可以可编程地改变构成电荷层结构的电荷值。
本发明还涉及被配置用于执行误差修正和补偿的存储器件。例如,在本发明的一个实施例中提供了一种能够使用单元阵列器件的闪存配置,其中所述单元阵列器件与可随不同的单元阵列器件而变化的性能特性相关。该闪存配置包括一种具有控制装置的设备,所述控制装置被配置用于访问单元阵列器件以建立用于所述单元阵列器件的所述性能特性的值,以及被配置用于随后访问所述单元阵列器件并基于所述性能特性的值来应用补偿。例如在所述存储单元包括用于限定多个数据值的一些目标电荷电平的情况下,可以使用所述补偿。当执行读操作和写操作时,所述控制装置可以被配置用于部分地基于所述性能特性的值来建立修正的目标电荷电平。
本发明的其它实施例提供了用于确定当执行误差检测和修正时要使用的性能特性的方法和系统。例如,在一个实施例中提供了一种包括多个存储单元的闪存配置,其中每个存储单元具有用于实现数字存储的电荷存储容量。每个存储单元包括用于限定可存储在其中的多个数据值的目标电荷电平。公开了一种用于生成补偿数据的方法,在从存储单元读和写入存储单元中的至少一个操作的期间要使用所述补偿数据。该方法包括识别包括用于校准存储单元的模式代码数据的预定信息模式。该模式代码数据被转换为存储器符号,其中每个存储器符号标识所述目标电荷电平之一。通过将存储器符号所标识的目标电荷电平应用于所述存储单元,将所述存储器符号写入该存储单元中的已知位置。
为了校准存储单元,本发明的一个实施例通过感测在存储单元中的已知位置处的电荷电平来从存储器中的已知位置读取存储器符号。所述存储器符号被转换为比较代码数据,并将所述比较代码数据与被写入所述已知位置的原始的模式代码数据相比较。使用比较来确定可用于计算性能特性的差值。当执行误差检测和修正时,可以在后续的读取存储单元和写入存储单元的期间使用该性能特性。
该概述被提供用于引入以在具体实施方式部分中描述的简化形式的概念选择。该概述并非旨在辨别所要求保护的主题的关键特性或必要特征,也不是旨在用于帮助确定所要求保护的主题的范围。
本发明的附加的特征和优点将在下面的描述中提出,并且根据该描述将部分地变得明显,或者可以通过对本发明的实践来实现。可以借助于在所附的权利要求中具体指出的仪器和组合来部分地实现和获得本发明的特征和优点。根据下面的描述以及所附的权利要求,本发明的这些及其它的特征将变得更加完全的明显,或者可以通过在下文中提出的本发明的实践来学习本发明的这些及其它的特征。
附图说明
为了进一步阐明本发明的上述和其它的优点和特征,将参照在附图中示出的本发明的具体实施例来呈现对本发明的更具体的描述。应当理解,这些附图仅描述了本发明的典型实施例,因此不应当被认为是对本发明的范围的限定。将通过使用附图利用附加的特征和细节来描述和说明本发明,在附图中:
图1示出了包括控制器和存储器件的示例固态存储元件;
图2示出了将数据写入存储介质的方法的一个示例;
图3示出了从存储介质读取数据的方法的一个示例;
图4示出了用于在从存储介质读取数据时产生构成用于补偿的基础的信息的方法的一个示例;
图5示出了用于在将数据写入存储介质时产生构成用于补偿的基础的信息的方法的一个示例;
图6a和6b分别示出了示例存储器符号编码器和示例存储器符号解码器;
图7a、7b和7c示出了存储单元记录的三种变型的示例图;
图8a和8b示出了在图1中示出的控制器中实现的示例序列编码器和示例解码器;
图9a示出了存储单元的各种状态以及与数据值相关的目标电荷值的图示;以及
图9b示出了存储在存储单元中的、表示已从相关的存储单元读取的未补偿的值的电荷值的图示。
具体实施方式
在以下对优选实施例的详细描述中,参照构成优选实施例的一部分的附图,并且在附图中以示例方式示出了实现本发明的具体实施例。应当理解,在不背离本发明的范围的情况下,可以利用其它的实施方式,并且可以进行结构变化。
系统
现在关注图1,图1是在100处概括表示的系统及其各种组件的一个示例实施例的框图。该系统100在此可以被称为固态存储元件SSSE或S3E。图1中的部件示出了作为用于编程(即,写入)和读取数据的功能的基础的数据通路和控制组件。示出了包括控制器102和至少一个存储器件104的整个系统。在具有多个存储器件104的系统中,每个存储器件可以是构成用于该系统的存储介质的一部分的独立的器件。在一个示例中,每个存储器件104可以在单独的半导体裸片上形成。相反地,可以在单个半导体裸片上形成多于一个的存储器件104。
如同将看到的,固态存储元件100可以由以下方面组成:包括数据存储介质的多个集成电路器件(硬件),主机连通性,以及用于数据存储、数据提取和为了最优使用该存储介质所需要的各种管理功能的方法。在一个实施例中,组件集成电路可以是多个固态存储元件存储器件(S3E存储器件)104和单个固态存储元件控制器器件(S3E控制器器件)。用于该存储介质的一种适当的技术是NAND闪存。但是,其它的非易失性存储器技术同样适用。替代性的存储介质的示例是MRAM(磁随机存取存储器)、PRAM(相变随机存取存储器)、以及以基于MEMS(微机电)的介质为基础的存储介质。目前现有的或尚待开发的其它适当的存储介质技术可以被视为等同的。使用这些各种技术的存储单元所共有的在于所述存储单元的用于存储模拟形式的信息的能力。也就是说,这些器件理论上一般不具有通/断特征或数字器件的特征。因此,在本公开的上下文中对电荷电平的使用实质上被视为示例性的。
系统100可以包括具有用于微码(固件)106和可变存储的附加存储器的微控制器102。系统100还包括寻址逻辑,该寻址逻辑使得运行在微控制器102上的固件106能够与控制器102的逻辑部件相通信以及控制控制器102的逻辑部件的操作。微码被存储在非易失性存储介质上。在本示例中,微码被存储在所述控制器中的非易失性存储器中,但是,用于存储这种微码的非易失性存储器可以在控制器102和多个存储器件的外部,或者可以在一个或更多个所述存储器件中。
固件106是协调和控制控制器102所执行的所有动作的微控制器指令(即,微码)的集合。控制器102的所有部件均具有至微控制器子系统108的接口,固件106在执行读取流、写入流、校准以及实施方式中所需要的所有其它功能的上下文中使用微控制器子系统108来控制每个部件的硬件。为了说明的清楚起见没有示出这些单独的接口,本领域的技术人员应当理解,这些各个接口可以实现与各个部件之间的通信。
闪存接口控制110生成控制逻辑和信号112,控制逻辑和信号112组成了控制器102与多个存储器件104之间的接口的非数据部分。来自该部件的信号112实现了与访问器件104之间的接口上的物理控制线路,例如,所述信号112包括芯片选择、时钟、操作码、地址信息、以及在给定的实施方式中为了操作所述存储器件接口所需要的任何其它特定信号。在产生控制逻辑和信号时,闪存接口控制110与传输控制114协作,这马上将在下文中进行描述。
传输控制114提供了利用所述多个存储器件104来协调读取流和写入流所需要的功能。在实际设计中可以实现传输控制114的一个或更多个实例。多个传输控制114使得可以利用所述多个存储器件104中的多于一个的存储器件104来进行读取流、写入流、或读取流与写入流的组合的并发操作。每个传输控制114受到微控制器系统接口118和固件106的控制,并连同闪存接口控制110一起操作。传输控制114连接到闪存接口控制110,并请求闪存接口控制的服务。一个传输控制114和闪存接口控制110的组合的功能是用于进行数据块在存储器件104以及控制器102自身之间的逐块传输。为了说明的清楚起见没有示出传输控制114的附加实例,但是,附加实例可以与单个实例的操作相类似地运行。
读处理操作
下面的部分描述了控制器102在读处理期间执行的逐块处理。在一个实施方式中,主机与存储器件104之间的传输可以作为单块传输的序列来发生。应当注意,为了说明的清楚起见没有示出主机,但是主机连接到主机接口116。
在所示出的实施例中,所述多个存储器件104中的每个存储器件包含闪存阵列18。每个闪存阵列18包含多个存储器单元,所述存储器单元在此可以单独地被称为存储单元。在闪存中,每个存储单元一般是具有电荷存储栅结构的FET(场效应晶体管)。
在示例实施例中,每个所述存储器件104还包括一个或更多个用于提供(下文描述的)存储器符号读取模块122以及(上述的)闪存阵列118之间的接口的感应放大器120。大多数实施方式可以具有多个感应放大器120的特点,并且感应放大器120的数量和布置取决于存储器件的实施方式。感应放大器120的功能是用于对闪存阵列118中的一个存储单元的状态进行取样、以及将所感测的状态呈现给相应的存储器符号读取模块122的相应输入端。
每个存储器件104具有存储器符号读取模块122,该存储器符号读取模块122检测存储在闪存阵列118中的信息,并将表示所存储的信息的存储器符号发送给控制器102。在所示出的实施例中,模数(A/D)转换器124可以构成存储器符号读取模块122的一部分,使得存储器符号被以数字形式传输至控制器102。在另一实施例中,存储器符号读取模块122和相关的A/D 124可以位于控制器102中,使得模拟线路可以从感应放大器120行进至控制器102。应当注意,存储器符号是具有可与已被选择用于所探讨的存储介质的值或电平的集合中的一个值或电平相对应的值的概念。所述值或电平的集合可以被称为“符号集”。
如同将进一步描述的,在给定的控制器102的实施例中可以包括一个或更多个存储器符号。控制器102接收来自与一个或更多个存储器件104相连接的接口128的存储器符号,并将这些符号解码成代码符号。每个代码符号可以被视为代码符号的符号集中的一个单元。代码符号串表示已被赋予在解码处理中使用的特性的、经编码后的信息。解码处理可以是下面针对存储器符号编码器130而描述的处理的逆处理。具有基数k的一连串数字可以被转换为一连串代码符号。当离开存储器符号解码器126时,所述代码符号可以被以任何适当的方式表示,例如按照二进制比特流或基于二进制的数字(例如字节)的流来表示。应当理解,存储器符号解码器126实现了从存储器符号到代码符号的映射。存储器符号可以表示基于为存储单元限定的区分电平的数量的、二的非整数次幂。当然,写操作可以实现该从代码符号到存储器符号的映射的逆映射,这将在下面详细描述。存储系统100可以具有可限定或可选择的基数,并且所述基数可以不必是二的整数次幂。
可选地,可以根据通过控制器102对附接到控制器102/存储器件接口的多个存储器件104执行的校准步骤而产生的信息来调整来自存储器符号解码器126的代码符号。对于在此描述的误差修正方案,应当理解,这些方案可以被单独地使用,或者可以被以任何期望的组合方式来使用。此外,同样适用的附加方案可以被视为等同的,并且至少潜在地可以根据通信理论领域或盘驱动器领域来使所述附加方案适合。在这点上,提出了与非易失性存储器相关的技术发展水平在于实施与读写操作相关的高精确度,使得不需要对在此已公布的误差修正的分类。但是,本公开通过提供包括但不限于用于在单独的存储单元中存储数量不断增大的信息的能力的实质益处,不需要实施这种高的绝对读/写精确度。
下面在一个或更多个适当的点处将提供所述校准步骤的进一步的细节。在这点上,下面描述的图4和5分别表示写入流和读取流的一个实施例,通过该实施例,校准处理可以获得可被后置补偿模块132使用的、与所选的存储器件104的行为相关的参数数据。在校准流期间产生的校准信息随后可以被应用于所接收的从存储器符号解码器132流动的代码符号流。在一个实施例中,可以在整个符号块上执行后置补偿132的符号调整。对各个符号的调整可以是跨越整个符号块的、唯一的符号前调整以及恒定或以可预测的方式变化的调整值的组合。确定后置补偿132的符号调整的方式可以变化,并且可以根据附接到控制器102的各个存储器件104所基于的存储器技术的具体特性来定制。此外,后置补偿132的调整甚至可以基于逐个器件地来定制。
所示出的实施例还包括序列检测器134,该序列检测器134用于接收来自后置补偿模块132或来自存储器符号解码器126的代码符号流、以及将所述代码符号转换为数据符号。代码符号可以每次一块地通过序列检测器134,这意味着输入的代码符号流具有作为数据块尺寸和码速率的直接函数的已知长度。序列检测器134可以实现迭代解码算法,因此,给定的数据块可能多于一次地通过序列检测器134,这将在下面进一步描述。序列检测器134所产生的数据符号是用户数据符号,但是,从直到这点为止仅对这些符号执行了部分误差修正处理的观点来看,这些符号可以被视为是“脏”的。
就序列误差修正方案的实现而言,一般将基于至少一个其它存储单元的内容来解释任何给定的存储单元的内容。相应地,在读操作期间,误差概率可能与被解释为与合法数据值的集合中的特定的一个合法数据值相对应的值相关。为了赋予序列相关性,可以使用任何适当的方案。目前可用的方案包括例如Viterbi检测器以及在通过引用合并于此的、H.Thapar和A.Patel所著的“A Class of Partial Response System for IncreasingStorage Density in Magnetic Recording”,IEEE Trans.Magnetics,第23卷,5,第3666-3668页,1987中描述的检测器。下面将在一个或更多个适当点处提供进一步的描述。
示例系统100还包括用于利用奇偶校验信息提供对先前编码的信息的误差修正的LDPC(低密度奇偶校验)解码器136。在通过引用合并于此的以下参考文献中可以发现LDPC的示例:Gallagher所著的“Low-Density Parity-Check Codes”,M.I.T.Press,1963;David J.C.Mackay所著的“Information Theory,Inference,and LearningAlgorithms”,Cambridge University Press,2003。可以在写处理期间执行LDPC编码,这将在下面进一步详细地描述。LDPC解码器136是迭代解码器,使得解码器所处理的每个信息块可以被重复地处理,直到针对实施例而被限定为最大值的迭代次数。输入数据是以包括LDPC奇偶校验的代码符号形式的用户数据。输出只是用户数据符号。输出的用户数据符号已被LDPC解码处理“清理”,使得输出的用户数据符号的误差内容少于输入的代码符号的误差内容。
在写处理期间,LDPC编码处理包括利用可被称为奇偶校验矩阵的数学概念来对接收的信息(例如数据比特)块计算奇偶校验。由于LDPC布置涉及二进制信息,因此要被编码的每个用户数据块被作为一连串二进制比特。将奇偶校验矩阵应用于LDPC奇偶校验的计算简化了以下逻辑方程组的解:该逻辑方程组使用数据消息中的所选比特作为用于必须计算的每个奇偶校验比特的项。在已经计算了奇偶校验矩阵布置所需的所有奇偶校验比特之后,所述的所有奇偶校验比特被附加到输入到编码处理的用户数据块。
在读处理期间,可以从序列检测器134接收组合的用户数据和LDPC奇偶校验。在一个实施例中,序列检测器134可以识别和修正由于噪声和失真所导致的接收数据中的误差,但是,预期到在从序列检测器134返回的用户数据加LDPC奇偶校验中仍存在剩余的误差。LDPC解码器136作用于所接收的用户数据加LDPC奇偶校验,以修正额外的误差。解码操作与编码处理的逆处理相类似,并且涉及基于使用数据比特和LDPC奇偶校验比特作为项的逻辑方程的逆计算的、对数据比特值的估计。由于所述操作涉及概率,因此每次计算的结果受控于每次计算的可能的结果的集合,由此解码处理是从一次计算向下次计算传递概率的一种处理。因此,解码处理固有地是迭代的,并且因此LDPC解码器实现在发现和修正接收的用户数据块加LDPC奇偶校验中的误差时可以多次执行。
所示出的系统100还包括ECC(纠错码)解码器138,这可以是一个示例解码处理中的最终的步骤。至ECC解码器138的输入可以包括用户数据符号流,所述用户数据符号流包括具有附加的ECC奇偶校验符号的信息块。下面将在一个或更多个适当点处结合对写处理的描述而提供与ECC编码器144相关的细节。输出在成功的解码导致无误差数据的程度上是“干净”的数据。如果通过ECC解码器138不能达到无误差条件,则发信号通知误差条件,使得可以着手进行适当的误差处理。对于本应用中的ECC误差检测方案的实现,认为本领域的普通技术人员借助于本公开能够提供这种与在此参考的ECC和LDPC解码和编码部件相关的功能。
示例系统100还包括FIFO(先进先出)模块140,该FIFO模块140包括与ECC解码器138协作地使用的数据分段(staging)存储器,以在ECC解码处理期间保存来自LDPC解码器136的用户数据符号。在LDPC解码器136完成对数据块的处理之后,该数据块被传输至FIFO 140。FIFO140在ECC解码器138处理数据时用作用于该数据的保存区域。ECC解码器138负责释放FIFO 140中的每个数据块以用于传输至缓冲器142。当ECC解码处理将用户数据中的误差识别为从LDPC解码器传输的用户数据块的一部分时,对FIFO 140应用修正。在完成了对每个用户数据块的ECC解码处理之后,该用户数据块被从FIFO 140传输至缓冲器142。
所示出的系统100还包括安全模块146,安全模块146可以包括一个或更多个确保数据安全的功能。在读处理中,其目的是对正从存储器件104读取的数据进行解密。当安全模块146被禁用或不存在时,读取的数据流从FIFO 140直接到安全模块142。如果安全功能被启用,则数据量从FIFO 140到安全模块146,然后从安全模块146到缓冲器142,这马上将在下文中进行描述。当安全模块146被启用时,至安全模块的输入数据是加密的用户数据,而输出是解密后的用户数据。可以使用目前可用的或尚待开发的任何适当的解密处理,包括但不限于AES(先进加密标准)。应当理解,在这点上可以实现其它适当的功能。例如,可以存在对用户进行认证、生成密钥、保护密钥、与其它实体交换密钥等的支持功能。
存储器缓冲器142用作用于向主机(未示出)传递或从主机传递的用户数据块的分段区域。缓冲器142用作用于主机与控制器102之间的传输以及利用多个存储器件104的进行中的读写处理的速度匹配和同步机制。鉴于本全面公开,本领域的普通技术人员将容易地提供这种功能。
用户数据在被发送到主机之前被从缓冲器142传输至主机接口116。适当的实施例包括符合用于一般接受的主机接口的规范和标准的至少一个接口。可以使用的主机接口的示例包括ATA、USB、串联ATA(SATA)、安全数字(SD)、压缩闪存(CF)等。
写处理操作
下面的部分描述了控制器102在写传输期间执行的逐块处理。写数据源于缓冲器142(作为从主机经由主机接口116至缓冲器的传输的结果,已被写入缓冲器142中),并通过编程步骤而完成,在所述编程步骤中编码后的数据被写入一个或更多个存储器件104的单元中。
上文在某些细节中描述的存储器缓冲器142在写处理的上下文中同样用作用于从主机传递的用户数据块的分段区。在这种情况下,缓冲器142是要处理的用户数据的源,并且最终被写入到存储器件104中作为控制器写处理的结果。
如上文参照读操作而描述的,安全模块146包括用于确保数据安全的功能的集合。对安全模块146的使用可以是可选的,在这点上,对安全模块146的使用可以取决于对其中部署有图1的示例系统100的特定产品以及执行写操作的上下文的应用。如果安全模块146被禁用或完全不存在,则写数据流从缓冲器142直接到ECC编码器144。另一方面,如果安全模块146被禁用,则数据流从缓冲器142到安全模块146。至安全模块146的输入数据可以包括未加密的用户数据块,并且安全模块输出的数据可以包括加密的用户数据块。可以与包括但不限于先进加密标准(AES)的解密处理相协作地使用目前可用的或尚待开发的任何适当的加密处理。
在一个实施例中,ECC编码器144执行第一个编码步骤。从缓冲器142传输的数据是用户数据,并且ECC编码器144可以附加基于用户数据块确定的奇偶校验符号集合。来自ECC编码器144的输出可以包括用户数据符号块加上ECC奇偶校验符号集合。在整个写入流中,ECC编码器144所生成的ECC奇偶校验符号被后续的步骤作为用户数据的一部分。在该上下文中,用于任何给定的数据块的用户数据符号和ECC奇偶校验符号的级联被LDPC编码器148(下文描述)和序列编码器150作为单个用户数据符号流。用略为不同的方式来说,在本实施例中,ECC奇偶校验符号被下游的组件以与对待用户数据自身的方式相同的方式来对待。
在一个实施例中,LDPC编码器148可以接收ECC编码的用户数据作为具有ECC奇偶校验符号的用户符号块。假设ECC编码器在使用中的话,LDPC编码器148可以计算LDPC奇偶校验并将LDPC奇偶校验附加到从ECC编码器144接收的用户数据符号块加ECC奇偶校验符号。来自LDPC编码器148的输出是接收的具有附加的LDPC符号集合的数据符号集合(用户数据加ECC奇偶校验)。LDPC编码可以在一次中执行,因此,与解码处理相反地,在一个实施例中,LDPC编码不需要多次迭代的可能性。
LDPC编码器148的编码处理可以包括使用被称为奇偶校验矩阵的数学概念对接收的信息(数据比特)块的奇偶校验计算。由于LDPC布置涉及二进制信息,因此要编码的每个用户数据块可以被作为一连串二进制比特。将奇偶校验矩阵应用于LDPC奇偶校验的计算简化了以下逻辑方程组的解:该逻辑方程组使用数据消息中的所选比特作为用于必须计算的各个奇偶校验比特的项。在已经计算了奇偶校验矩阵的布置所需要的所有奇偶校验比特之后,所述的所有奇偶校验比特被附加到输入至编码处理的用户数据块。作为结果的用户数据比特加LDPC奇偶校验比特的组合是来自LDPC编码器148的输出。
在一个实施例中,来自ECC编码器144和LDPC编码器148的ECC/LDPC编码的用户数据被序列编码器150变换成一连串代码符号。当被使用时,序列编码器150将输入的输入符号映射为被赋予了序列相关性的代码符号集合。这向编码后的数据提供了以下特性:每个符号的值以有限的限定的方式取决于至少一个其它符号。因此,在读取回时,作为超出ECC/LDPC修正方案的附加的修正层,解码处理将能够分离在利用存储器件104的读写处理期间可能获得的噪声和误差中的一些部分。下面结合对图8的描述而提供了另外的细节。
在一个实施例中,从序列编码器150输出的代码符号(包括编码的用户数据加上ECC奇偶校验加上LDPC奇偶校验)被存储器符号编码器130转换为存储器符号流。存储器符号是可应用于特定存储器件104的特定配置的可能的符号集合的成员。可以实现各种符号集合。在一个实施例中,存储器件140中的存储单元被配置用于存储有限数量的电平之一。
在传统的系统中,这种存储单元被配置用于存储与2的偶数次幂相对应的有限数量的电平。在本发明的一个实施例中,所述存储单元被配置用于存储任意数量的电平,该电平可以表示或不表示2的整数幂。例如,如果特定存储器件104中的一些所述单元被配置用于存储七个不同的电平(包括可以被感测的七个不同的目标电平),则该配置中的每个存储单元可以存储基数为七的数字。因此,在该配置中存在七个可能的存储器符号,每个存储器符号对应于该配置的七个可能的目标电平之一。应当理解,为了对这些电平进行相互区别,可以对给定的存储单元中可用的电荷的范围施加六个区分边界。应当理解,建立和读取存储器单元中的电荷的硬件的访问分辨率建立了用于每个单元的最大基数。如同将进一步描述的,取决于所述访问分辨率,目标电平的数量实质上可以无限地增大。
存储器符号编码器130的功能是用于以与针对存储器件104和存储单元配置而限定的区分电平的数量相一致的方式将一连串代码符号转换成一连串存储器符号。该处理成为一种将包括二进制比特或诸如字节之类的基于二进制的符号的输入符号的流转换成具有基数=k的数字的流的处理,其中k是目前的存储器件配置所支持的目标电平的数量。应当注意,在系统实现中k的值可以变化,因此存储器符号编码器130的一个特性可以是其用于根据给定的k值而生成存储器符号的能力。应当理解,在给定的系统实施例中,k可以逐个存储器件104地变化。此外,k可以随着应用于各个存储器件140的存储器阵列而变化。例如,存储器阵列的不同区域可以被分配不同的k值。
从代码符号到存储器符号的转换以及从存储器符号回到代码符号的转换取决于目标电平的数量。被存储在存储单元中的单位有效地是单数位数字,该单数位数字的基数为可应用的存储单元被配置用于的目标电平的数量。
在所示出的系统100中,每个存储器件104包括存储器符号写模块152,该存储器符号写模块152用于接收来自存储器符号编码器130和程序的存储器符号的流、或者将所述存储器符号的值写入闪存118中。与先前描述的存储器符号读模块122相似地,存储器符号写模块152也可以被移入控制器102中,或者可以以适当的方式在功能上分布在控制器102与存储器符号写模块152之间。
图2示出了将数据写入存储介质的方法200的一个实施例。在本示例中,作为方法200的结果而传输的最小数据量为一块,其中块长度可以是512字节,但也可以是512字节乘以2的整数幂。因此,该流程中的步骤表示对块长度的单位执行的处理步骤。应当理解,可以使用其它的块尺寸,并且不是绝对需要以块形式传输数据。
图1的系统图示示出了与控制器102相集成的安全功能,而图2中表示的示例方法就为了描述的清楚起见省略了安全功能而言是简化的。但是,由图1来看,这种安全模块146易于合并。下面的描述以另外的方式涉及所示出的部件,因此应当被结合图1来解释。
结合图1参照图2,写处理从“开始”点开始,并在“完成”点结束。在“开始”点处,用户数据块已被作为写命令中的一个步骤的结果而置于缓冲器142中,主机发出的与所述写命令相关的用户数据通过所述写命令而被从主机接口116传输至缓冲器142。主机接口116的具体实施例确定了该处理的细节,所述细节被认为是超出本公开的范围之外,并且被本领域的普通技术人员充分理解。应当注意,可以由微控制器子系统108根据需要来执行涉及数据传输的各种步骤。
方法200从步骤202开始,所述步骤202包括从缓冲器RAM读取数据符号。在一个实施例中,读取数据符号可以包括将用户数据符号(字节)块从缓冲器142传输至ECC编码器144。
方法200还包括在步骤204处从缓冲器142读取用户数据符号,并利用包括ECC奇偶校验的附加数据符号集合来处理和附加用户数据符号。执行ECC编码的结果是用户数据符号块加ECC奇偶校验符号集合。因此,输出符号数量与输入符号数量相比可能超出了ECC奇偶校验符号的数量。
如在步骤206处表示的,使用LDPC编码方案对ECC编码步骤204所生成的用户数据加ECC奇偶校验符号的集合进行编码。LDPC计算一般根据作为比特流而不是符号流的输入,但是可以将符号作为比特集合。LDPC编码步骤206可以对用户数据块符号加上ECC奇偶校验符号的整个集合计算奇偶校验。该计算的结果是在数据流中表现为附加符号集合的、LDPC奇偶校验比特的附加集合。因此,该步骤的输出是附加有ECC奇偶校验符号集合的用户数据符号块,所述输出又被附加LDPC奇偶校验符号集合。
方法200还包括在步骤208处对从LDPC编码步骤206输出的符号流全部进行序列编码,所述符号流被作为要被编码成代码符号的数据符号流。相应地,输入流被编码成代码符号流,其中编码处理赋予了序列相关性。该代码符号流是原始用户数据的表示,其将被存储在存储器件104中。
可以根据在210处表示的预补偿步骤期间的各种性能特性来观测和调整通过序列编码步骤208生成的代码符号。例如,所述性能特性可以是应用于正被以可预测的方式写入介质中的所有数据的特性和行为,例如,在存储器存储单元值中发生的、取决于物理单元相对于感应放大器120的偏移量的电阻效应。或者,所述性能特性可以是应用于与闪存中的“最近的邻近值”效应相关的模式灵敏效应的特性和行为。
在该示例方法中,在预补偿步骤210期间应用的进程可以跨越用于使用中的特定类型的存储器件104的所有介质而不变化。该进程可以包括特定的规则集以及用于所述规则集的使用的协议。在另一实施例中,即使在使用可能相同的存储器件104的情况下,在步骤210处应用的预补偿规则也可以逐个存储器件104地变化。在该后者的情况下,可以针对每个存储器件104应用定制的预补偿。
在一个实施例中,步骤210包括假定在先的校准处理(可能在制造期间)的定制的预补偿,例如,控制器102通过所述在先的校准处理来收集与控制器102所附接到的存储介质相关的相关信息。作为非限定性的示例,这可能需要将已知的模式写入存储器中、读取回模式、以及对照已知的输入来分析返回值,然后提取与差别相关的相关信息。在一个实施例中,预补偿功能计算修正值,并将所述修正值以预期存储器中的数据的逻辑布置和物理布置的方式而应用于代码符号。这样,各种可重复的产生误差的失真机制可以受到预补偿,而不需要对与每种机制相关的可能产生误差的具体原因所基于的原理的详细理解。对给定机制的详细理解可以提供附加的处理输入,以更进一步地降低在读取回这种预补偿后的数据期间可能遇到的误差的概率。
通过建立一个或更多个性能特性,建立了基于所述性能特性的、预测的给定存储单元的响应。在实际写操作期间,通过基于预测的响应来调整与在给定存储单元中建立目标电荷值相关的电荷传送参数,可以将单次量的电荷传送到给定的存储单元,使得通过所述单次量的电荷在所述给定的存储单元中产生实际的电荷值,该实际的电荷值至少近似地等于所述目标电荷值。作为非限定性的示例,所述电荷传送参数可以是时间间隔持续时间、电流值或电压值。相反地,在传统的系统中,一般使用逐步的处理,由此随着单元中的电荷量渐增地接近于目标值而检查和重新检查该单元中的电荷量。虽然这在建立存储单元中的正确的电荷量的方面可能是有效的,但是该技术固有地是缓慢的,由此引入了对数据吞吐量的限制。
方法200还包括在212处进行存储器符号编码。在一个实施例中,存储器符号编码包括:在在步骤210处应用或不应用预补偿的情况下,接收序列编码步骤208所生成的代码符号作为输入。该输入被变换为可以直接在存储单元的集合中表示的符号流。在使用基于NROM技术的NAND闪存的该系统的一个示例实施例中,该处理在一个示例性实施例中可以将代码符号流作为对应的比特流,并将该比特流解析为可以用离散电压电平流来表示的单位,所述离散电压电平流随后可以被施加到存储单元,这将被进一步描述。由于(如上文所述地)存储单元中的电平数可以是2的非整数幂,因此与简单地将整个比特流划分为较小的多比特的单位的序列相比,该处理可能至少稍微更复杂些——其实际上需要沿着局部比特边界将输入比特流划分为较小的多比特的单位的集合,使得所有信息均可被以适当的有效方式映射到存储器上。
方法200还包括在步骤214处将存储器符号传输至存储器。在一个实施例中,将存储器符号传输至存储器可以包括将在步骤212处计算的存储器符号传输至位于所选择的存储器件上的存储器。该处理可以包括每次将一个符号经由控制器102与存储器件104之间的接口而提供给所选择的存储器件。所选择的存储器件104又将该信息符号累积到分段区中。当足够量的存储器符号已被累积在存储器件104的存储器符号写模块152中时,所述存储器符号被以与所述技术以及所述存储器件自身的实施例相一致的方式而施加到存储器。因此,具体细节应当被完全理解,并被认为是超出本公开的范围之外。
现在参照图3,示出了在300处表示的示例方法。概括而言,方法300示出了可以用于从存储介质读取数据的步骤的示例。在示例方法300中,所传输的最小数据量为一块,其中块长度可以是512字节,但也可以是512字节乘以2的整数幂。因此,该流程中的步骤表示对块长度的单位执行的处理步骤。方法300对应于所采取的用于从存储器件读取单个用户数据块以及将所述单个用户数据块置于缓冲器12中的步骤,在所述缓冲器12处所述单个用户数据块可以经由主机接口116而被传输至主机。读取n个块需要n次经过该流程图。
图1所示的系统100示出了与控制器102相集成的安全模块146,而相对于为了描述的清楚起见没有示出安全模块的事实而言,图3中表示的流程是简化的,但是,该流程可以容易地合并到图1的图示中。下面的描述结合图1以另外的方式涉及所示出的部件。
从步骤302开始的方法300根据多个参数从存储介质读取存储器符号。例如,可以通过用户数据块的尺寸、由其它编码电平增加的开销量、以及存储器符号的符号集的尺寸来确定所读取的符号的数量。这些参数中的一些参数可以取决于实施例而变化,但是也可以在实施例中动态地变化。在这点上,在一个实施例中,存储器符号解码器126可以被配置用于利用多于一个代码符号的符号集来操作,其中可以通过固件106来确定和选择该配置自身。例如,一个配置可以利用基数为7的符号集来操作,而另一配置可以利用基数为9的符号集来操作,等等。可能的配置的数量是实现存储器符号编码器130和存储器符号解码器126的设计特性。
如在304处表示的,方法300将存储器符号转换为代码符号。在一个实施例中,将存储器符号转换为代码符号可能需要对从各个存储单元读取的电平的模数转换。在一个实施例中,该向数字形式的转换可以在存储器件中发生,使得从该存储器件至控制器102的线路是以数字格式的。在另一实施例中,该数字转换可以在控制器102中发生,使得从存储器件104延伸到控制器102的线路是实质上传送来自感应放大器120的信号的模拟线路。
该示例方法300包括后置补偿步骤306,该后置补偿步骤306与图2所示的写处理中的预补偿步骤210相类似。如果使用后置补偿步骤306(例如,如果执行预补偿步骤是不可行的或不是有效的),则可以通过后置处理来容纳失真机制。修正值或修正协议的基础也与前述的预补偿相类似。例如,在后置补偿步骤306期间可以使用已知的恒定效应或从现有的校准处理收集的信息。
该示例方法300还包括在步骤308处对作为后置补偿步骤306的结果的、或在未使用后置补偿的情况下直接从步骤304发出的、后置补偿的代码符号流进行序列解码。应当注意,该步骤308不是必须对序列进行解码,并且在不使用序列相关性的实施例中可以直接对数据流进行解码。在一个实施例中,序列解码步骤308将代码符号流转换为数据符号流(可能被来自存储器写/读处理的噪声和失真效应所破坏)。在一个实施例中,序列解码步骤308是迭代的,即,可以根据需要而重复一个或更多个处理步骤,以从代码符号流获得数据符号流。该方法300通过示出序列解码步骤308上的迭代循环310而允许该可能性。迭代标准可以取决于在具体实施例中实现的序列编码方法。例如,如果序列解码处理是单次迭代型的处理,则“完成”标准310总是成立。
如同在步骤312处表示的,来自序列解码步骤308的数据符号被接收,并被利用LDPC解码方案来进行解码。输入可以包括“脏”的用户数据符号(一个块)、ECC奇偶校验符号集、以及表示LDPC奇偶校验的符号集。通过术语“脏”,其意味着作为处理的当前对象的信息可能包含误差,所述误差可以通过当前正被调用的修正机制来修正。相反地,至少从实用的观点来看,干净的数据不再是可以通过当前调用的修正机制来修正的。
LDPC步骤312随解码处理一起使用被作为奇偶校验比特集的LDPC奇偶校验,以找到和修正“脏”数据中的误差。如同迭代循环31所示出的,该处理可以是迭代的,并且在每次迭代时可以基于若干标准中的任一标准来进行对是否采取另一次的判定。例如,所述标准可以至少部分地基于对被处理的数据中的剩余误差数量的间接测量。如果数据在一些处理活动之后变得干净,则可以进行检查以对此进行验证。在一些少见的情况下,可能发生使清理处理停止的各种死锁,因此可以应用最大迭代计数以使得该处理中止,在这种情况下误差处理步骤是该流程中的下个步骤。
所示出的方法300还包括在步骤320处对输入执行ECC解码,所述输入可能包括用户数据比特集和ECC奇偶校验比特集。在已在步骤312处执行了LDPC解码的情况下,LDPC奇偶校验符号不是所述符号流的一部分,因此到达ECC解码器的唯一的信息是用户数据本身(仍是脏的)以及ECC奇偶校验比特。ECC解码步骤310至少潜在地用于修正由LDPC解码步骤312所导致的任何最终误差。
ECC解码步骤320可能在判定322处导致三种结果之一。首先,可修正的误差被检测到,这意味着:如同在324处所示的,方法300进行修正误差。在一个实施例中,应用修正包括计算ECC误差矢量、以及将所述矢量以ECC领域的普通技术人员所熟悉的方式而应用于输入数据符号。在执行了误差修正之后,如在步骤326处所示的,方法300进行到数据符号被传输至缓冲器的点。
其次,ECC解码步骤320可能导致没有误差被检测到,这意味着从LDPC解码步骤发送的数据符号是干净的,并且现在所述数据符号被验证了这一点。因此,如在步骤326处所示的,方法300直接进行到数据符号被传输至缓冲器的点。
由于ECC解码步骤320中累积的在先的解码步骤已经证实了作为结果的数据是无误差的(至少达到误差可被检测到的程度),因此在步骤326处被传输至缓冲器的数据符号是干净的。在这点上,该流程中的唯一信息是用户数据符号块。在先的步骤所涉及的所有开销信息不再是必要的。用户数据块被传输到缓冲器142中,在缓冲器142处用户数据块变得可用于后续的经由主机接口116至主机的传输。
第三,与ECC修正计算可以修复的误差相比,ECC解码步骤320可能导致对用户数据加ECC奇偶校验中的更多误差的检测。结果需要中止和退出到误差处理步骤328。
现在参照图4,示出了用于产生构成后续用于补偿的基础的信息的方法400的示例。在一个实施例中,可以使用被写入存储单元且随后被读取回的预定模式来产生该信息。预补偿是数据写入流(例如,图2中的方法200)的一部分,后置补偿是数据读取流(例如,图3中的方法300)的一部分。在任一种情况下,作为预补偿和后置补偿的一部分,可以从诸如图4所示的进程之类的校准进程来获得在写流程和读流程期间应用于数据符号的信息。
如在402处所示的,方法400从选择写步骤将应用于的具体数据页面开始。在一个实施例中,存储器页面表示与一个数据块的尺寸相对应的、存储器的物理布局。可以以各种方式对经历存储的数据页面执行校准。最终,可以在微控制器子系统108(见图1)上运行的固件106中实现关于写入哪个页面的策略。例如,可以通过建立地址值来指定具体页面。
方法400还包括在步骤404处将已知的信息模式作为写数据而应用于正被校准的存储器件。可以使用特定的记忆模式的集合,并且其选择可以基于对被设计用于返回用于在预补偿和/或后置补偿中使用的数据的特性的选择。可以根据模式代码符号可被算法上实现、通过硬件、固件或硬件和固件的组合来实现的事实,来从普通数据代码符号中区分模式代码符号。
方法400还包括在步骤406处将模式代码符号转换为存储器符号。例如,图1的以及在图6中进一步详细示出的存储器符号编码器130可以用于转换代码符号。在一个实施例中,根据通过目标电荷电平(图7中进一步详细示出)表示每个符号的数据符号集来生成模式。其它实施例可以根据对数据符号集的延伸来生成模式,其中目标电荷电平的总数大于单独的数据符号集中的电荷电平数。对数据符号集的延伸可以包括介于与数据符号相关联的预先限定的电荷电平之间的其它目标电荷电平。其它实施例可以根据用于数据的相同的代码符号集来专门生成模式。
方法200还包括在步骤408处将存储器符号传输至存储器。存储器符号写模块152可以将存储器符号变换为要加载到存储单元中的、对应的电荷电平。
图5示出了在500处表示的用于产生构成后续在补偿中使用的基础的信息的另一方法的一个示例。可以结合图4所示的校准写流程方法400来使用方法500。也就是说,校准读取流程方法500可以检查已通过校准写流程方法400而被写入存储器中的模式,以生成用于执行预补偿和后置补偿的信息。预补偿可以是数据写入方法200(图2)的一部分,后置补偿可以是数据读取方法(图3)的一部分。
如在步骤502处所示的,方法500从选择将从其读取校准数据的具体页面开始。在一个实施例中,方法500可以假设所选页面先前已通过校准写入方法400(图4)的应用而被写入,使得校准数据被存储在所选页面中并且可从所选页面获取。
方法500还包括在步骤504处传输来自存储器的存储器符号。例如,在一个实施例中,控制器102可以利用所选存储器件104中的所选页面来采取处理,该处理将存储器符号的页面返回给存储器符号解码器126。
方法500还包括在步骤506处通过控制器102的剩余部件将先前的步骤504期间获取的每个存储器符号转换为可识别的代码符号本身。在一个实施例中,该步骤506使用图1的在图6中进一步详细示出的存储器符号解码器126。基于所引入的误差,从该步骤获得的代码符号可能与原先在校准写入方法400(图4)期间传输的那些代码符号相同或不相同。
方法500还包括在步骤508处重新生成代码模式,该代码模式在先前的校准写入方法400(图4)期间被写入存储器件104中,使得可以执行与对应的读模式之间的比较。由于应当具有与写入的模式相同的模式,在方法500期间生成模式的硬件功能和固件功能可以与作为校准写入方法400的一部分而生成模式的硬件功能和固件功能相同。
方法500还包括在510处将步骤506处生成的模式代码符号的序列(作为存储在存储器中的实际数据的表示)与步骤508中重新生成的模式代码符号(对应于已写入的数据模式)相比较。该比较是最终用于数据写入方法200(图2)期间的预补偿以及数据写入方法(图3)期间的后置补偿的信息的来源。通过将各个重新生成的符号与从存储器件接收的各个对应的代码符号相比较来产生差值。
如步骤512处所示,然后使用所述差值来计算补偿度量。可以以各种方式来使用差别数据值,但是最终从取决于数据模式自身和代码符号中的比特相对于整块代码符号序列的相对位置的失真和噪声机制导出差别数据值。也就是说,这些失真和噪声机制表示可重复因而可补偿的性能特性。因此,步骤512分析来自先前步骤的差值以及所述差值与原先写入到存储器件中的代码模式之间的关系。该分析的结果可以用于计算与每个代码符号位置相对应的补偿度量。因此,在该步骤处,该结果可以是伴随每个代码符号的补偿度量。
在步骤514处,来自补偿计算的结果可以被记录为数据结构,所述数据结构可以驻于多个存储器件104中的一个或更多个存储器件104上,或者可以存储在任何适当位置。该特定数据结构可以是针对已被应用了校准流程的每一块而累积的度量的合计。该合计处理可以包括根据特定的存储器件技术以及预补偿/后置补偿标准而变化的若干方法。这些标准可以包括但不限于:(1)与特定的代码符号相关的补偿偏移量;(2)与页面中的代码符号位置相关的补偿偏移量;以及(3)取决于根据校准差数据计算的页面中的符号位置而跨页地应用的代码符号偏移量。
在上述的(1)的情况下,例如当对在应用于存储单元的目标电荷电平的范围内的较高目标电荷电平的存储返回在读取回的期间感测到的、由于在该目标电荷电平处发生的可预测的失真机制而导致的比期望电平低的电平时,结果可能与在一些代码符号上出现但在其它代码符号上未出现的失真的出现有关。在上述的(2)的情况下,结果可能与取决于页面内的存储单元的位置而发生的失真有关。(2)的示例是感应放大器与被感测的特定存储单元之间的电阻。在上述的(3)的情况下,结果可能应归于取决于页面而应用的存储单元差别,即,至所感测的存储单元的偏移量取决于特定的页面而变化。补偿偏移量也可能取决于每个存储器件中的存储块位置而跨多个存储器件104中的每个存储器件地变化,因此所述数据结构具有逐个器件地识别多个存储器件104的分段组织,并且其根据特定存储器件中的基础的块结构来识别该存储器件中的每个块。在一个实施例中,偏移量是参考区分电平的正确值或基值的正值或负值。换言之,偏移量表征了特定单元的一个或更多个区分电平的电荷变化。偏移量可以应用于例如存储器符号域中。
作为将所读取的已知数据模式写入多个存储器件104上可用的数据页面的子集中的结果,校准处理可以累积补偿信息。这代表尝试通过以下方式来减少用于校准流程的执行时间的实施例:使用存储器件104的所有可用数据页面的子集产生补偿信息,并基于该补偿信息而推广到整个数据页面子集。应当理解,在所选的数据页面样本在统计上足以表示全部数据页面时,该方法是有效的。但是,其它实施例可以基于多个存储器件104中的每个存储器件104中的所有页面来执行校准,以产生补偿信息。在任何情况下,对其执行预补偿/后置补偿的数据本身可以是预先建立的,并且稍后在读操作和/或写操作期间被维护(assert)。
给定阵列中的或者逐个存储器件中的存储单元一般可能看似彼此相同。但是,存储单元可能基于在从存储器单元读和/或写入存储单元时的一个或更多个可重复的性能参数而彼此不同。在此教导的补偿可以基于访问存储单元的布置,以表征与至少一个存储单元相关的性能参数,以便建立用于所选的单元阵列器件的存储单元布置的性能参数的实际值,以用于随后基于该性能参数的实际值来访问所选的单元阵列器件。可以使用任何期望数量的存储单元来测量和发现该性能特性,使得可以通过不同的存储单元来产生该性能特性的不同值。因此,可以基于该性能特性的一个值来访问一个存储单元,同时可以基于该性能特性的不同值来访问不同的存储单元。
此外,在补偿处理中可以测量以使用任何数量的不同性能特性。在控制器102与多于一个的存储器件140相连接的情况下,可以测量与不同的存储器件104相对应的不同的性能参数值,然后可以为了补偿目的而应用所述不同的性能参数值。如同在此描述的,补偿可以应用为在写操作期间的预补偿和/或在读操作期间的后置补偿。应当注意,所讨论的预补偿和后置补偿均可以对相同的数据来执行。可以在将数据写入存储器件104之前对该数据执行预补偿,并且可以在从存储器件104读取数据之后对该数据执行后置补偿。各种实施例可以单独地执行预补偿或单独地执行后置补偿,或者可以执行预补偿和后置补偿。
作为预补偿的应用和操作的示例,可以在读操作中访问存储单元的布置以建立特定单元所存储的当前的电荷量,该当前的电荷量与实际数据值相关联。假设已经在性能特性应用于特定单元时测量了该性能特性,则在修正的数据值与实际数据值不相同的情况下,基于当前的电荷量以及所测量的性能特性的值来建立针对该特定单元的修正的数据值,以修正该性能特性的影响。
作为后置补偿的应用和操作的示例,可以在写操作中为了将给定数据值写入特定单元中而访问单元的布置,当在读操作器件存在给定电荷量时,所述给定数据值与任一给定的单元中的该给定电荷量相关联。写操作基于使用具有与所述给定数据值相关联的预定值的写参数。有益的写参数的示例包括时间、电压和电流,这是因为这些写参数中的任何一个都可以反映响应于写操作而最终存储在存储单元中的电荷量。但是,被写入特定单元中的实际电荷量可能随着性能特性的变化而成比例地变化。相应地,基于性能特性而调整写参数和使用写参数的不同的值或调整后的值,使得在特定单元中建立的实际电荷量更接近地匹配于与所述给定数据值相对应的给定电荷量。
图6a和6b中示出的两个图示示出了存储器符号编码器130和存储器符号解码器126中的技术,通过存储器符号编码器130和存储器符号解码器126可以分别对存储介质中存储的符号进行编码和解码。如同针对图7所描述的那样,在任何给定的实施例中可以与目标电荷电平的数量(在下面的图7中进一步详细地讨论)相关地调整这些处理,使得存储器符号编码器130产生的存储器符号以及存储器符号解码器126解码后的存储器符号与该编码器和解码器将应用于的所有可能的存储器件配置的目标电荷电平的数量相一致。
从图6a中可以看出,存储器符号编码器606接收作为输入的代码符号块602,并产生存储器符号块604作为输出。实质上,图6a表示从二进制代码符号域到存储器符号域的变换。代码符号块602被作为n个符号的数字序列,其数值基数为2的整数幂。实施例可以接收各个作为每符号m比特的符号序列的数据块,其中m可以是1或更大。如果m=1,则每个接收的符号的基数为2;如果m大于1,则每个m比特的符号的基数为2m。在实际实施例中,所有利用m=1或更大的、输入符号的表示是同样有效的。该步骤的输出是符号块604,其中p是用于具有基数=q的符号的块长度,q的有效值是大于等于2的整数。每个符号s可以包括(被取整到最近的整数的)比特,或者每个符号s可以表示为具有q个模拟电平之一的单个信号。也就是说,每个存储器符号604对应于由目标电荷电平的数量所示例的、存储单元中的电荷的唯一值,并且在可用的代码符号602的数量与存储器符号的数量之间不一定存在一对一的对应关系。
如图6b所示,存储器符号解码器608接收作为输入的存储器符号块610,并产生代码符号块612作为输出。由于存储器符号解码器608将一连串存储器符号610映射到代码符号流612中,因此该功能是存储器符号编码器606所执行的功能的逆功能。存储器符号块610被表示为数字序列,由此每个s具有数值基数q,并且可以通过其值为q个可能的电平之一的单个信号或者通过包括(被取整到最近的整数的)二进制数字的符号来表示。输出是n个m比特的符号的块。输出符号序列中的每个输出符号是在对图3的描述中讨论的代码符号612,并且m的值为大于等于一的整数。
图7a至7c示出了按照存储单元的记录的三种变型。每个图示的横轴对应于所存储的电荷的量值,而纵轴对应于用于实现电荷的特定值或目标值的概率。图7a至7c中的所有三种变型示出了可能由尝试记录以目标电荷值记录在存储单元中的信息而导致的概率模式或可能的电荷分布。作为非限定性的示例,图7a至7c中的每个图示表示为了存储信息而对给定存储单元的总体电荷变化范围能力的可能的使用。可以看出,信息存储能力的具体量随着每个图示而增大。
参照图7a,每个单元的特征在于处于包括存储器件的存储单元的物理设计所暗示的最大范围之内的最小实用电荷电平和最大实用电荷电平。最大实用电荷电平和最小实用电荷电平之间的差被认为是用于该存储单元的实用的电荷范围,并将被使用如虚线所示的电平T1至T4的集合来应用。通过区分电平d1至d4的集合来划分电平T1至T4中的每个电平。在本示例中,每个电平T1至T4位于可能用于存储单元的最大电平与最小电平之间,并且目标电荷电平一般可以均等地彼此隔开。存储单元可以被编程到位于这两个极值之间的任一目标电荷电平。也就是说,每个单元可以被加载期望在该存储单元中实现目标电荷电平之一的电荷。在这样做时,该单元中的电荷量落入与目标电荷电平中的给定的一个目标电荷电平相关联的电荷范围之内。电荷概率曲线或电荷概率分布P1至P4表示在与每个目标电荷值相关联的特定单元中可能实现的记录的电平的概率分布。用于分布的目标电荷电平至少近似地位于限定该概率分布的曲线的中心处。
每个单元可以被编程以尝试在任何给定时间只实现一个目标电荷电平。但是,可以选择多个电平(在本示例中为四个)中的任一电平,并且通过特定存储器件104(图1)的特性和配置以及控制器102所提供的处理集合来确定包括该多个电平在内的电平的数量。因此,每个电荷概率分布P1至P4被尝试以使单元加载给定的目标电荷电平,使得图7a的电荷存储布置能够存储四个不同的值,由此对应于二进制项中的两个比特。
已经概括描述了图7a,现在将参照图7a提供的存储能力来提供附加的细节。虽然图7a示出了四个电平,但是在不同的实施方式中也可以选择大于或小于四的其它数量的电平。所关注的是在图7a的配置中观察到:每个电荷电平或电荷范围L1至L4被分离并被用清楚的裕度(margin)而与最近的相邻电平隔开,所述裕度表示电荷缓冲裕度(CBM)。每个曲线P1至P4表示与目标区分电平(d1至d4)相关的样本的可能的概率分布。在检测特定单元中的记录的电平时,期望所感测的值通过落在所示出的曲线之一上而充分接近于其目标电荷值,以便作为相邻电荷范围之间存在的宽的电荷缓冲裕度的结果而排除电荷范围实际被表示的不明确性的可能性。因此,目标电荷值之间的大的相对分离在不需要附加的解决机制的情况下确保了对存储的数据的提取的可靠性。用另外的方式来说,对具有任何给定值的电荷的检测与特定的区分电平(d1至d4)唯一相关。传统的系统的目的通常是要完全避免与特定数据值相关的不明确性的可能性,所述特定数据值与读取存储单元中的特定电荷值相关。
现在转到图7b,示出了对存储单元电荷范围的修正的使用,其可以使用与图7a的示例中使用的存储单元相同的存储单元。当与图7a相比较时,一个差别在于存在跨相同的可用电荷范围的、更多的区分电平(d1至d7)。因此,电荷概率曲线P1至P7显得实质上相同,即,具有沿着横轴即电荷轴的相同的宽度。但是,这需要减小CBM以使得所述曲线彼此比图7a所示的更接近。尽管与每个目标电荷值相关的概率分布并不与其最近的相邻概率分布相重叠,但是目标电平之间的裕度的减小意味着每个曲线与其相关的区分值要接近得多,因此读取处理的精确度必须更高。在这点上,预补偿处理和后置补偿处理可以用于通过针对失真机制进行补偿来保持感测的电平的精确度。
图7b未示出的结果是,包括老化效应和高温效应的各种物理处理可能导致区分电平沿着两个轴改变位置。另一方面,这些变化的特征在于:由于与老化和温度相关的处理而沿着图7a至7c所示的分布的x轴向左位移。其它物理处理可能导致图7a至7c中的分布的形状相对于y轴的展平。这些变化可能是数据误差的附加来源,其可能受益于补偿和误差修正。
仍参照图7b,七个区分电平具有相关的目标电荷值。应当理解,这对应于二的非整数幂。如上文所述,在此描述的控制器102容易地适应该布置。在每个目标电荷值与符号相关的情况下,就存储单元而言,不存在对以数字形式表示该目标电荷值的限制。当然,如果所述符号的数量被映射为二进制形式,则必须使用足够数量的比特。在本示例中需要三个比特。
现在参照图7c,示出了对存储单元电荷范围的进一步的修正的使用,其又可以使用与图7a和7b中使用的存储单元相同的存储单元。在该示例中,存在比另外两个图示中任一图示更多的区分电平。具体而言,示出了可以对应于十个符号的十个区分电平d1至d10、目标电荷值T1至T10以及相关的电荷概率曲线P1至P10。又使用二的非整数幂作为所述符号的数量。显然,现在电荷概率曲线在有限的程度上重叠,使得:由于d1至d10的位置,在相邻的电荷概率分布之间的重叠范围(OL)中读取的电荷值是不明确的。用另外的方式来说,现在CBM具有负值。在本示例中,对于OL的指定位置而言,不确定的是是否应当将电荷值解释为对应于T1或T2。
尽管从图7c的配置获得的大多数读取的样本仍被布置成使得不存在与其表示哪个区分电平相关的不明确性,但是现在落入横电荷轴上的重叠区域的轨迹中的一部分电荷样本在其应当对应于的电荷分布曲线方面是不确定的。从理论观点来看,重叠的轨迹可能接近于相邻目标电荷值之间的距离的一半。这样,正确解释给定电荷值读取的概率有大于50%的可能是正确的。
从实践观点来看,在精确度与存储容量之间存在平衡,应当考虑所述平衡。通过针对目标电荷值的集合的特定概率分布来确定表示所引入的不明确性的度量。关于图7c所示的配置,传统的系统在能够区分相邻的电荷概率曲线方面通常需要基本上绝对的精确度。根据在此已教导的构思,通过此处的教导来保持存储的信息的可靠性,而不管概率分布中的重叠。具体而言,可以通过独立地或以适当的组合方式使用在控制器102(图1)中起作用的序列编码器/解码器(图8)、LDPC编码器/解码器(图1)以及ECC编码器/解码器(图1)来产生该可靠性。也就是说,这些相关处理可以使用以序列方式的编码处理和解码处理以及LDPC和ECC(图1)的误差修正处理来发现和修正所发生的偏差。
共同参照图1和图7a至7c,通过此处的教导的实现提供了许多益处。最初应注意到,图7a至7c的区分电平和目标电荷值以及由此的CBM是软件的。也就是说,可以使用图1的用于控制处理配置的固件106来建立这些值。相应地,可以容易地随意改变这些值。在本示例中,通过图1的存储器符号读模块122和存储器符号写模块152的能力,可以存在对所建立的、相邻目标电荷值以及相邻区分值之间的最小电荷间隔的限制。该相邻区分电平之间的最小电荷间隔被称为读访问分辨率(RAR),而相邻目标电荷值之间的最小电荷间隔被称为写访问分辨率(WAR)。这两种形式的访问分辨率协作以限定可以是这两者中的较小者的总体器件访问分辨率。相应地,建立每个存储单元的数据容量的固件指令可以以可编程的方式容易地切换到不同的数据容量。该数据容量的上限至少部分地基于WAR值和RAR值。特定的WAR值与特定的RAR值之间的协作导致了器件访问分辨率以及所谓的电荷层。例如,图7c所示的步骤表示十个电荷层。应当理解,在建立特定的容量和电荷层结构时,可以逐步地将器件访问分辨率应用于存储单元或一些存储单元的电荷范围。
参照图7a至7c,给定的区分电平或目标电荷值是“软的”,并且可以通过指令集来改变。在比较图7a和7b时,可以看出,T1和d1均变化为图7b中的较低的电荷值。T1和d1的值对应于图7c中的更低的电荷量。作为另一能力,可以随意改变电荷层的总数。例如,从图7a到图7c的进展表示增加电荷层。当然,逆进展表示删除电荷层。用于可编程地改变任何给定单元的电荷层结构的能力提供了显著的灵活度。通过该可编程能力,可以使用给定的硬件配置来实现各种电荷层结构。作为示例,可以通过固件106(图1)的动作经由以下算术处理来实现该可编程性:选择层结构,并通过将适当的参数值写入硬件寄存器中来应用该层结构。特定存储器件的存储器阵列中的不同的存储单元组可以同时被配置有不同的电荷层结构(有效地使用上述的不同的基数值k)。作为非限定性的示例,这些不同的电荷层结构可以用于提供存储单元阵列中的所选区域中的增强的数据可靠性。
图8a和8b示出了在本公开的控制器102中实现的序列编码器150和解码器134所基于的构思。图8a所示的编码处理将未编码的符号流转换为编码符号流。图8b所示的解码处理将可能受到噪声和失真破坏的编码符号流在去除所述噪声和失真的至少一部分的情况下转换为未编码的符号流。由于该编码流是序列相关的,因此该编码流提供了对附加的噪声和失真的可能的去除。换言之,给定的编码符号的值不仅取决于其表示的用户数据,而且取决于该流中在该编码符号之前的编码符号。
图8a示出了编码功能802的一个示例。该功能将未编码的符号(通常是以比特流或字节流的形式的用户数据)作为输入,并生成编码符号流作为输出。在该图示中,通过符号Xi的序列来表示输入符号,并且Xn为仍在编码器中的最早的符号,Xn+k-1为最近接收的符号。因此,可以看出,最近的k个符号用于计算当前输出的符号Yn。值k是可以与具体实施方式相关地变化的设计参数。此外,当前的编码器输出符号Yn被编码器所保持,并被编码功能802使用以计算后续的Yi个符号。每个输入符号X表示用户数据单位,并且可以被称为数据符号。每个X可以是二进制比特,或包括多个二进制比特的更大的单位。每个Y也可以由二进制比特或多个二进制比特来表征,并且也可以包括与表征每个X的数字不相同的多个二进制比特。
在一个实施例中,图8a的编码功能802所产生的每个Y可以直接对应于或不直接对应于存储器符号(图6)。如果存储器符号的基数以及编码的符号的基数是彼此的偶数倍数,则编码的符号与图6所示的存储器符号之间的转换可能是无意义的。但是,在另一实施例中,编码的符号与存储器符号可以具有不是彼此的偶数倍数的基数值。在该实施例中,通过图6所示的以及上述的编码步骤来执行从编码的符号流Yi(代码符号)到存储器符号流Si(存储器符号)的映射。编码处理将包括用基数=n的二进制编码的数字表示的一连串值Yi的输入流转换成用于基数=p的数字表示的输出值的流。可以通过用于该一连串基数=q的值的二进制编码的值来表示输出值,但是输出值也可以被表示为一连串的各表示q个区分电平之一的模拟值。
图8b示出了解码功能804的一个示例。在解码功能804中,通过存储器件读取处理来获得序列编码的符号流,并将该符号流传递到序列解码器中。序列解码功能将可能包括所获得的噪声和失真的、Yi个编码的符号的流转换成Xi个用户数据符号的流,并去除所述获得的噪声和失真中的至少一部分。解码功能804的一个示例实现可以包括Viterbi检测器。本领域的普通技术人员应当理解,也可以使用其它实现。
图9a示出了用于存储与特定存储器符号相关联的目标电荷值的集合的一个或更多个存储单元的各种状态的图形表示。在本示例中,沿着纵轴示出了七个目标值T0-T6,而沿着横轴示出了六个存储电荷状态S1-S7。相应地,如同所示出的,存在七个目标电荷值。图9a中的横轴表示被布置在最大实用值与最小实用值之间的目标电荷值(还参照图7a-7c)。由于这些目标电荷值与给定类型的存储单元实际可实现的最大实用极值和最小实用极值相关,因此这些目标电荷值是相对电平。各个水平线之间的垂直距离区分了相邻目标电荷值之间的电荷差。图9a所示的电荷状态是理想的,并且被任意选择以对应于与每个存储器符号相关联的目标电荷值。因此,所示出的电荷状态对应于如下的值:在不存在噪声和失真的情况下,作为经由存储器符号编码器606的写(图6a)的结果而将被存储在存储单元中的值、以及作为经由存储器符号解码器608的提取(图6b)的结果而将被从存储单元读取的值。应当理解,由于每个值被精确地布置在目标电荷值中的期望的一个目标电荷值上,因此所存储的值是理想的。在本实例中,S1存储T1,S2存储T3,S3存储T6,S4存储T4,S5存储T0,S6存储T2。因此,图9a示出了一连串的六个目标电平或目标值,其中所有的目标电平或目标值表示基数为7的存储器符号。
现在参照图9b,提供了具有与图9a所示的状态相同的状态的图示,但是所存储的电荷值相反地表示已从相关的存储单元读取的未经补偿的值。图9b被提供用于示出可以通过预补偿或后置补偿来补偿的失真机制的结果。与理想上对应于目标电荷值的期望的电荷量相比,失真效应可以影响所存储的实际电荷量。也就是说,期望的电荷值将不总是精确地位于目标电荷电平中的期望的一个目标电荷电平上,但是可以如图9b所示地被垂直地偏移。这些可以被合理地期望被以可预测的方式修正的结果被称为“可补偿的”。如同先前所讨论的,在图4和5中示出了用于收集预补偿计算和后置补偿计算中使用的参数信息的示例方法。
在不存在补偿的情况下,图9b中的存储的电荷值被作为偏离图9a所示的理想值且可以落在相邻目标电荷值中间的值而返回。换言之,图9b中的样本表示期望存储的、图9a所例示的存储器符号。但是,如同所示出的,由于写处理和读处理中的可补偿/可重复的结果,可以看到从存储器单元读取的实际值偏离目标值。如果将补偿偏移量902的集合(在图9b的底部示出)在将存储器符号写入存储器件之前加到存储器符号上(预补偿)、加到所感测的存储器符号上(后置补偿)、或通过预补偿和后置补偿的组合来维护(assert),则可以消除图9b所示的返回值与图9a所示的目标/理想值之间的差。
应当理解,所示出的结果可以表示图9b中的每个状态被相邻存储单元的组所存储的映射。可以结合与可补偿的失真结果相关的计算来使用与图4和5中的方法400和500,以产生用于在实际补偿处理期间使用的参数数据。在补偿处理期间,预补偿或后置补偿要计算包括存储单元页面的、将被应用于存储器符号的偏移值902的映射。当多个结果被使用针对每个结果的不同偏移量来进行补偿时,一种方法在于:建立与每个结果相关联的偏移量,然后对针对各个结果的各个偏移量进行求和以达到总偏移量。应当注意,偏移量可以是负的或正的。作为预补偿或后置补偿的步骤而在读/写流中加上补偿偏移量,这抵消了已针对其而执行了补偿计算的、导致误差的失真机制的效应。结果,可以消除经补偿的失真机制所导致的误差。
再参照图1,与目前技术发展水平中看到的系统相比,该系统100被认为就非易失性电存储系统而言提供了用于较高存储密度和较低单位存储成本的能力。该优点的原因之一是与典型的传统NAND闪存器件相比的、附属于每个S3E存储器件中的存储器阵列的电路的降低的复杂度(由此而减小的硅面积)。因此,每个存储器件提供了相对于现有技术的NAND闪存器件中可用的区域而言的、存储介质区域的相对增大。也就是说,通过从存储器件104移去功能并移到控制器102上,每个S3E存储器件与现有技术的NAND闪存器件相比显示出了每芯片硅面积的更大的存储容量。对于恒定裸片尺寸和器件成本而言,效果是每单位成本的更多的存储以及由此导致的每存储单位的更低的成本。当在系统配置中数量不断增大的存储器件104与单个控制器102相连接时,该效果变得更为显著。通过相对于现有技术的NAND闪存器件而增大S3E存储器件中的不同的记录电平的数量的能力来进一步降低每单位存储的成本。根据上述教导,与典型的传统存储器件相比,可以使用任意大数量的不同电平。虽然可能存在对与访问分辨率相关的每单元存储容量的限制,但是如上文所述,访问分辨率能够被提高到区分存储单元中的非常小的电荷差别的点。
尽管通过可靠性降低可以有助于增大每单元存储的信息量,但是申请人通过认识到以下内容而已经解决了在这点上的关注:在S3E控制器件102中使用优化的方法和处理可以使固态存储元件的可靠性提高到可以超过组合的现有技术NAND闪存器件和芯片上NAND闪存控制器的点。通过使用单个控制器102来操作多个S3E存储器件104的构思,控制器102的能力已被显著地增强,以提供具有数据可靠性能力的期望电平。此外,这些教导被认为是不理会现有技术的限制,其中实质上不存在对如同所示例的读写操作中的误差的容限,例如,利用宽的电荷缓冲裕度(见图7a)。
通过上述教导,应当理解,S3E控制器102使用多个S3E存储器件104中的各个S3E存储器件104的能力的局部部分来检测和修正所述S3E存储器件104的相对于精确地存储和提取信息而言的故障的实例。也就是说,该局部部分可以用于存储误差修正信息。
如同将在下面更详细地讨论的,在此描述的实施例可以包括使用包括各种计算机硬件或软件模块的专用计算机或通用计算机。
在本发明的范围之内的实施例还包括用于传送或具有存储在其上的计算机可执行指令或数据结构的计算机可读介质。这种计算机可读介质可以是可以被通用计算机或专用计算机访问的任何可用的介质。作为示例而非限定性地,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其他磁存储器件、或者可用于传送或存储以计算机可执行指令或数据结构的形式的期望的程序代码装置、或可被通用计算机或专用计算机访问的任何其它介质。当通过网络或另外的通信连接(硬连线、无线、或硬连线与无线的组合)来向计算机传输或提供信息时,该计算机适当地将该连接视为计算机可读介质。因此,任何这种连接适当地被称为计算机可读介质。上述计算机可读介质的组合也应当被包括在计算机可读介质的范围之内。
计算机可执行指令包括例如使得通用计算机、专用计算机或专用处理器件执行特定功能或功能组的指令和数据。尽管已经以专门用于结构特征和/或方法行为的语言描述了主题,但是应当理解,在所附的权利要求中限定的主题不一定限于上述的特定特征或行为。相反地,上述的特定特征和行为被作为实现权利要求的示例形式而公开。
在此使用的术语“模块”或“组件”可以表示在计算机系统上运行的软件对象或程序。在此描述的不同的组件、模块、引擎和服务可以作为在计算系统上运行的对象或处理(例如,单独的线程)来实现。虽然在此描述的系统和方法优选地通过软件来实现,但是以硬件或软件和硬件的组合的实施方式也是可行的并可被构思。在本说明书中,“计算实体”可以是先前在此限定的任何计算系统,或者是在计算系统上运行的任何模块或模块组合。
应当显而易见的是:在此公开的实施例和相关的方法可以具有各种不同的配置,并且可以以无限数量的不同方式来变型,并且在不背离本发明的精神或范围的情况下,可以以许多其它的特定形式来体现本发明。例如,如上文所注意到的,在此教导的构思可以容易地适合于目前可用的或尚待开发的、实质上任何类型的、以实质上为模拟的形式来存储信息的存储单元。因此,本示例以及方法应当被认为是示例性的而非限制性的,并且本发明不限于在此提供的细节。因此,通过所附的权利要求而不是通过前述描述来表示本发明的范围。在权利要求的等效内容的涵义和范围之内的所有变化应当被包括在权利要求的范围之内。

Claims (19)

1.一种在包括多个存储单元的闪存配置中的设备,其中每个存储单元具有用于实现数字存储的电荷存储容量,所述设备包括:
用于在写操作和读操作中访问所述存储单元中的各个存储单元以及通过针对所述存储单元中的每个存储单元而限定和施加用于限定多个数据值的多个可调节目标电荷值而促使建立所述存储单元的数据容量的装置,其中限定一个或者多个可调节目标电荷值建立了相邻目标电荷值之间的电荷区分,并且相邻目标电荷值之间的电荷区分的宽度可以随着可调节目标电荷值的数目改变。
2.根据权利要求1所述的设备,其中所述用于在写操作和读操作中访问所述存储单元中的各个存储单元以及通过针对所述存储单元中的每个存储单元而限定和施加用于限定多个数据值的多个可调节目标电荷值而促使建立所述存储单元的数据容量的装置包括:用于施加跨越所述电荷存储容量地分布的区分电平以用于进一步限定针对所述多个数据值中的每个数据值的电荷范围的装置。
3.根据权利要求2所述的设备,其中可用于存储在所述存储单元中的每个存储单元中的不同的数据值的数量是二的非整数幂。
4.根据权利要求1所述的设备,其中所述用于在写操作和读操作中访问所述存储单元中的各个存储单元以及通过针对所述存储单元中的每个存储单元而限定和施加用于限定多个数据值的多个可调节目标电荷值而促使建立所述存储单元的数据容量的装置包括:用于施加表征每个单元的最大数据存储容量的器件访问分辨率的装置。
5.根据权利要求4所述的设备,其中所述用于在写操作和读操作中访问所述存储单元中的各个存储单元以及通过针对所述存储单元中的每个存储单元而限定和施加用于限定多个数据值的多个可调节目标电荷值而促使建立所述存储单元的数据容量的装置包括:用于通过改变所述器件访问分辨率来可编程地改变可用于每个存储单元的数据存储容量的装置。
6.根据权利要求2所述的设备,其中所述用于在写操作和读操作中访问所述存储单元中的各个存储单元以及通过针对所述存储单元中的每个存储单元而限定和施加用于限定多个数据值的多个可调节目标电荷值而促使建立所述存储单元的数据容量的装置包括:用于施加电荷概率分布的装置,所述电荷概率分布用于确定与所述数据值之一相对应的给定的电荷电平的概率。
7.根据权利要求6所述的设备,其中所述区分电平以高容积的方式分布,从而导致了所述概率分布的重叠,用于在写操作和读操作中访问所述存储单元中的各个存储单元以及通过针对所述存储单元中的每个存储单元而限定和施加用于限定多个数据值的多个可调节目标电荷值而促使建立所述存储单元的数据容量的装置还包括用于在访问所述存储单元时应用误差修正的装置。
8.一种在包括多个存储单元的闪存配置中的设备,其中每个存储单元具有用于实现数字存储的电荷存储容量,所述设备包括:
用于在写操作和读操作中访问所述存储单元中的各个存储单元以及建立由多个电荷层构成的电荷层结构的装置,所述多个电荷层的特征在于跨电荷存储容量地逐渐增大的电荷量,每个电荷层与存储值和限定电荷量的电荷值相关联,用于在写操作和读操作中访问所述存储单元中的各个存储单元以及建立由多个电荷层构成的电荷层结构的装置还被配置以使得建立相邻目标电荷值之间的电荷区分,并且相邻目标电荷值之间的电荷区分的宽度可以随着可调节目标电荷值的数目改变。
9.根据权利要求8所述的设备,其中所述用于在写操作和读操作中访问所述存储单元中的各个存储单元以及建立由多个电荷层构成的电荷层结构的装置包括:用于可编程地改变所述电荷层结构中的电荷层的总数的装置。
10.一种在能够使用单元阵列器件的闪存配置中的设备,其中所述单元阵列器件与可变的性能特性相关联,所述设备包括:
用于访问单元阵列器件以建立用于所述单元阵列器件的所述性能特性的值以及用于随后访问所述单元阵列器件并基于与所述单元阵列器件相关联的所述性能特性的值来应用补偿的装置:
其中所述用于访问单元阵列器件以建立用于所述单元阵列器件的所述性能特性的值以及用于随后访问所述单元阵列器件并基于与所述单元阵列器件相关联的所述性能特性的值来应用补偿的装置包括:用于在读操作中访问所述单元阵列器件以确定所述单元阵列器件的存储器单元所存储的当前的电荷量以及确定与所述当前的电荷量相关联的数据值的装置,以及用于基于所述当前的电荷量以及所述性能特性的值来建立用于特定单元的修正的数据值的装置。
11.根据权利要求10所述的设备,其中所述用于访问单元阵列器件以建立用于所述单元阵列器件的所述性能特性的值以及用于随后访问所述单元阵列器件并基于与所述单元阵列器件相关联的所述性能特性的值来应用补偿的装置包括:用于在读操作中访问所述单元阵列器件的装置,以及用于与所述性能特性相对应地改变所述值以产生更新的值的装置。
12.根据权利要求10所述的设备,其中所述单元阵列器件包括多个存储单元,以及其中所述用于访问单元阵列器件以建立用于所述单元阵列器件的所述性能特性的值以及用于随后访问所述单元阵列器件并基于与所述单元阵列器件相关联的所述性能特性的值来应用补偿的装置包括:用于建立用于每个所述存储单元的所述性能特性的多个值的装置。
13.根据权利要求10所述的设备,其中所述单元阵列器件包括多个存储单元,每个存储单元具有用于实现数字存储的电荷存储容量,所述设备还包括:
用于在写操作和读操作中访问各个所述存储单元的装置,以及用于施加用于限定每个所述存储单元中的多个数据值的目标电荷电平的装置。
14.根据权利要求13所述的设备,其中所述用于访问单元阵列器件以建立用于所述单元阵列器件的所述性能特性的值以及用于随后访问所述单元阵列器件并基于与所述单元阵列器件相关联的所述性能特性的值来应用补偿的装置包括:用于在写操作中访问所述单元阵列器件以将给定的数据值写入所述存储单元之一中的装置,所述给定的数据值与所述目标电荷电平之一相关联,以及用于基于与所述给定的数据值相关联的目标电荷电平以及所述性能特性的值来建立修正的目标电荷电平的装置,以及用于通过将所述修正的目标电荷电平应用于所述存储单元来执行所述写操作的装置。
15.一种在包括多个存储单元的闪存配置中、用于产生在从所述存储单元读和写入所述存储单元中的至少一个操作的期间要使用的补偿数据的方法,每个存储单元具有用于实现数字存储的电荷存储容量,每个存储单元具有目标电荷电平,所述目标电荷电平用于限定多个数据值,所述方法包括:
识别包括用于校准所述存储单元的模式代码数据的、预定的信息模式;
将所述模式代码数据转换为存储器符号,每个所述存储器符号标识所述目标电荷电平之一;以及
通过将所述存储器符号所标识的目标电荷电平应用于所述存储单元来将所述存储器符号写入所述存储单元中的已知位置。
16.根据权利要求15所述的方法,还包括:
通过感测在所述存储单元中的所述已知位置存储的电荷电平,从所述存储单元中的所述已知位置读取存储器符号;
将所读取的存储器符号转换为比较代码数据;以及
将所述模式代码数据与所述比较代码数据相比较,以确定差值。
17.根据权利要求16所述的方法,还包括:
使用所述差值来计算性能特性;
将所述性能特性存储到数据结构中。
18.根据权利要求17所述的方法,还包括:
标识要写入所述闪存配置的存储单元中的写数据;
将所述性能特性应用于所述写数据,以产生修正的写数据;
将所述修正的写数据转换为修正的存储器符号,每个修正的存储器符号标识要应用于所述存储单元之一的电荷电平;以及
通过将所述修正的存储器符号所标识的电荷电平应用于所述存储单元,将所述修正的存储器符号写入所述闪存配置的所述存储单元。
19.根据权利要求17所述的方法,还包括:
从所述闪存的存储单元读取未修正的存储器符号,每个所述未修正的存储器符号标识所述存储单元之一中的电荷电平;
将所述未修正的存储器符号转换为未修正的代码数据;以及将所述性能特性应用于所述未修正的代码数据,以产生修正的代码数据。
CN200780037197.4A 2006-08-05 2007-08-06 固态存储元件及方法 Active CN101523504B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US83562406P 2006-08-05 2006-08-05
US60/835,624 2006-08-05
US84311706P 2006-09-09 2006-09-09
US60/843,117 2006-09-09
US86395006P 2006-11-01 2006-11-01
US60/863,950 2006-11-01
US88692607P 2007-01-27 2007-01-27
US60/886,926 2007-01-27
PCT/US2007/075293 WO2008019347A2 (en) 2006-08-05 2007-08-06 Solid state storage element and method

Publications (2)

Publication Number Publication Date
CN101523504A CN101523504A (zh) 2009-09-02
CN101523504B true CN101523504B (zh) 2014-01-29

Family

ID=39033607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780037197.4A Active CN101523504B (zh) 2006-08-05 2007-08-06 固态存储元件及方法

Country Status (8)

Country Link
US (4) US7877564B2 (zh)
EP (1) EP2052389A4 (zh)
JP (3) JP5047288B2 (zh)
KR (2) KR101266594B1 (zh)
CN (1) CN101523504B (zh)
CA (1) CA2660087C (zh)
MX (1) MX2009001345A (zh)
WO (1) WO2008019347A2 (zh)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645793B2 (en) * 2008-06-03 2014-02-04 Marvell International Ltd. Statistical tracking for flash memory
CN101523504B (zh) 2006-08-05 2014-01-29 本霍夫有限公司 固态存储元件及方法
US7808834B1 (en) 2007-04-13 2010-10-05 Marvell International Ltd. Incremental memory refresh
US8031526B1 (en) 2007-08-23 2011-10-04 Marvell International Ltd. Write pre-compensation for nonvolatile memory
US8189381B1 (en) 2007-08-28 2012-05-29 Marvell International Ltd. System and method for reading flash memory cells
US8085605B2 (en) * 2007-08-29 2011-12-27 Marvell World Trade Ltd. Sequence detection for flash memory with inter-cell interference
JP4946844B2 (ja) * 2007-12-13 2012-06-06 ソニー株式会社 記録再生装置および記録再生方法
JP5562329B2 (ja) * 2008-07-01 2014-07-30 エルエスアイ コーポレーション フラッシュ・メモリ・コントローラとフラッシュ・メモリ・アレイの間でインタフェースをとるための方法および装置
US20100064093A1 (en) * 2008-09-09 2010-03-11 Radoslav Danilak System, method, and computer program product for converting data in a binary representation to a non-power of two representation
KR101738173B1 (ko) 2008-09-28 2017-05-19 라모트 앳 텔-아비브 유니버시티 리미티드 플래시 메모리에서의 적응형 코딩 방법 및 시스템
US8671327B2 (en) 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
JP5590620B2 (ja) 2008-09-30 2014-09-17 エルエスアイ コーポレーション メモリ・デバイスの軟データ生成の方法および装置
US8023334B2 (en) * 2008-10-31 2011-09-20 Micron Technology, Inc. Program window adjust for memory cell signal line delay
US8291297B2 (en) * 2008-12-18 2012-10-16 Intel Corporation Data error recovery in non-volatile memory
US8341501B2 (en) * 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
US20110010485A1 (en) * 2009-07-08 2011-01-13 Hou-Yuan Lin Flash Memory Control Device
US8914697B2 (en) * 2009-08-26 2014-12-16 Seagate Technology Llc Data corruption detection
GB0920344D0 (en) * 2009-11-20 2010-01-06 Faulkner Richard M Apparatus with switch generating SMS message
US8176234B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
US8331084B2 (en) 2010-05-13 2012-12-11 General Electric Company Apparatus for securing electronic equipment
US8892980B2 (en) 2010-06-15 2014-11-18 Fusion-Io, Inc. Apparatus, system, and method for providing error correction
TWI441181B (zh) 2010-09-09 2014-06-11 Silicon Motion Inc 用來進行資料整形之方法以及其記憶裝置及控制器
US8499227B2 (en) 2010-09-23 2013-07-30 Micron Technology, Inc. Memory quality monitor based compensation method and apparatus
WO2012042444A1 (en) 2010-09-29 2012-04-05 International Business Machines Corporation Decoding in solid state memory devices
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
US9898361B2 (en) 2011-01-04 2018-02-20 Seagate Technology Llc Multi-tier detection and decoding in flash memories
US9292377B2 (en) 2011-01-04 2016-03-22 Seagate Technology Llc Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values
US9502117B2 (en) 2011-03-14 2016-11-22 Seagate Technology Llc Cell-level statistics collection for detection and decoding in flash memories
US10314594B2 (en) 2012-12-14 2019-06-11 Corquest Medical, Inc. Assembly and method for left atrial appendage occlusion
US10307167B2 (en) 2012-12-14 2019-06-04 Corquest Medical, Inc. Assembly and method for left atrial appendage occlusion
US10813630B2 (en) 2011-08-09 2020-10-27 Corquest Medical, Inc. Closure system for atrial wall
WO2013046066A1 (en) * 2011-09-29 2013-04-04 International Business Machines Corporation Read-detection in solid-state storage devices
US8909942B1 (en) 2012-03-30 2014-12-09 Western Digital Technologies, Inc. MRAM-based security for data storage systems
US8824203B2 (en) 2012-07-13 2014-09-02 Micron Technology, Inc. Multiple step programming in a memory device
US20140142689A1 (en) 2012-11-21 2014-05-22 Didier De Canniere Device and method of treating heart valve malfunction
US9021332B2 (en) 2012-12-11 2015-04-28 Seagate Technology Llc Flash memory read error recovery with soft-decision decode
KR102081588B1 (ko) 2013-08-08 2020-02-26 삼성전자 주식회사 Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러
US20190324678A1 (en) * 2013-09-09 2019-10-24 Whitecanyon Software, Inc. System and Method for Encrypted Disk Drive Sanitizing
US9424179B2 (en) * 2013-10-17 2016-08-23 Seagate Technology Llc Systems and methods for latency based data recycling in a solid state memory system
US9566443B2 (en) 2013-11-26 2017-02-14 Corquest Medical, Inc. System for treating heart valve malfunction including mitral regurgitation
KR102116674B1 (ko) * 2014-03-21 2020-06-08 삼성전자주식회사 비휘발성 메모리 장치 및 그것을 포함하는 저장 장치 및 그것의 동작 방법
DE102014212224A1 (de) * 2014-06-25 2015-12-31 Robert Bosch Gmbh Verfahren und Vorrichtung zum Erzeugen eines geheimen Schlüssels
US10842626B2 (en) 2014-12-09 2020-11-24 Didier De Canniere Intracardiac device to correct mitral regurgitation
CA3067244A1 (en) * 2017-06-12 2018-12-20 Emory University T-cell antigen targeted chimeric antigen receptor (car) and uses in cell therapies
CN110473581B (zh) * 2018-05-09 2020-12-29 建兴储存科技(广州)有限公司 固态储存装置及其相关控制方法
KR102530789B1 (ko) * 2018-07-11 2023-05-11 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20200121108A (ko) * 2019-04-15 2020-10-23 에스케이하이닉스 주식회사 간섭 보상을 위한 메모리 시스템 및 메모리 시스템의 동작 방법
US10872038B1 (en) * 2019-09-30 2020-12-22 Facebook, Inc. Memory organization for matrix processing
US11709617B2 (en) * 2020-08-19 2023-07-25 Micron Technology, Inc. Multi-stage memory device performance notification
US11757468B2 (en) * 2020-09-24 2023-09-12 Sandisk Technologies Llc Soft data compression for non-volatile memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485422A (en) * 1994-06-02 1996-01-16 Intel Corporation Drain bias multiplexing for multiple bit flash cell
EP1343172A2 (en) * 1996-04-19 2003-09-10 Kabushiki Kaisha Toshiba Memory system

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US548422A (en) * 1895-10-22 William n
JP3798810B2 (ja) * 1994-06-02 2006-07-19 インテル・コーポレーション セル当たり単一ビットからセル当たり複数ビットへのダイナミック・メモリ
US5541886A (en) * 1994-12-27 1996-07-30 Intel Corporation Method and apparatus for storing control information in multi-bit non-volatile memory arrays
US5815439A (en) * 1996-04-30 1998-09-29 Agate Semiconductor, Inc. Stabilization circuits and techniques for storage and retrieval of single or multiple digital bits per memory cell
JPH11317095A (ja) * 1997-06-06 1999-11-16 Nippon Steel Corp 半導体記憶装置、その使用方法及びその読み出し方法並びに使用方法及び読み出し方法が記憶された記憶媒体
JP3648057B2 (ja) * 1997-12-09 2005-05-18 新日本製鐵株式会社 半導体記憶装置及びその使用方法、並びに記録媒体
WO1999046775A2 (en) * 1998-03-10 1999-09-16 Rambus, Inc. Performing concurrent refresh and current control operations in a memory subsystem
JP3110397B2 (ja) * 1998-09-30 2000-11-20 日本電気アイシーマイコンシステム株式会社 不揮発性半導体記憶装置の書き込み方法および記録媒体
JP2000251484A (ja) * 1999-02-26 2000-09-14 Sony Corp 不揮発性半導体記憶装置
JP2001332096A (ja) * 2000-05-16 2001-11-30 Hitachi Ltd 不揮発性半導体メモリおよび不揮発性半導体メモリを用いた記録再生装置
JP2002150789A (ja) * 2000-11-09 2002-05-24 Hitachi Ltd 不揮発性半導体記憶装置
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP2003100099A (ja) * 2001-09-25 2003-04-04 Toshiba Lsi System Support Kk 半導体回路システム
US6842375B1 (en) * 2001-12-06 2005-01-11 Virage Logic Corporation Methods and apparatuses for maintaining information stored in a non-volatile memory cell
US6836432B1 (en) * 2002-02-11 2004-12-28 Advanced Micro Devices, Inc. Partial page programming of multi level flash
US6625055B1 (en) * 2002-04-09 2003-09-23 Hewlett-Packard Development Company, L.P. Multiple logical bits per memory cell in a memory device
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
JP4136510B2 (ja) * 2002-07-18 2008-08-20 株式会社ルネサステクノロジ 半導体記憶装置の製造方法
JP2004158111A (ja) * 2002-11-06 2004-06-03 Toshiba Corp メモリ回路
US7181672B2 (en) * 2003-09-25 2007-02-20 Intel Corporation Method, system, and apparatus for supporting power loss recovery in ECC enabled memory devices
US7046544B1 (en) * 2003-10-06 2006-05-16 Xilinx, Inc. SRAM cell with read-disturb immunity
US7356755B2 (en) * 2003-10-16 2008-04-08 Intel Corporation Error correction for multi-level cell memory with overwrite capability
US7266732B2 (en) 2003-12-22 2007-09-04 Samsung Electronics Co., Ltd. MRAM with controller
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
US7215563B2 (en) * 2004-04-02 2007-05-08 Brandon Tyler L Multi-layered memory cell structure
JP2006114078A (ja) * 2004-10-12 2006-04-27 Toshiba Corp 不揮発性半導体記憶装置及びその動作方法
WO2006043225A1 (en) * 2004-10-21 2006-04-27 Koninklijke Philips Electronics N.V. Memory device and method providing an average threshold based refresh mechanism
JP2008020937A (ja) * 2004-10-29 2008-01-31 Matsushita Electric Ind Co Ltd 不揮発性記憶装置
US7173859B2 (en) * 2004-11-16 2007-02-06 Sandisk Corporation Faster programming of higher level states in multi-level cell flash memory
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7352627B2 (en) * 2006-01-03 2008-04-01 Saifon Semiconductors Ltd. Method, system, and circuit for operating a non-volatile memory array
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
CN101523504B (zh) 2006-08-05 2014-01-29 本霍夫有限公司 固态存储元件及方法
US7420841B2 (en) * 2006-08-30 2008-09-02 Qimonda Ag Memory device and method for transforming between non-power-of-2 levels of multilevel memory cells and 2-level data bits
US8661184B2 (en) * 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485422A (en) * 1994-06-02 1996-01-16 Intel Corporation Drain bias multiplexing for multiple bit flash cell
EP1343172A2 (en) * 1996-04-19 2003-09-10 Kabushiki Kaisha Toshiba Memory system

Also Published As

Publication number Publication date
JP2010500697A (ja) 2010-01-07
JP6313073B2 (ja) 2018-04-18
US20120278684A1 (en) 2012-11-01
KR101160107B1 (ko) 2012-06-26
US20110093761A1 (en) 2011-04-21
EP2052389A2 (en) 2009-04-29
KR20090037501A (ko) 2009-04-15
CN101523504A (zh) 2009-09-02
US20080162791A1 (en) 2008-07-03
EP2052389A4 (en) 2009-08-19
WO2008019347A2 (en) 2008-02-14
JP5047288B2 (ja) 2012-10-10
MX2009001345A (es) 2009-07-17
KR101266594B1 (ko) 2013-05-22
WO2008019347A3 (en) 2008-08-14
JP5496993B2 (ja) 2014-05-21
US8219773B2 (en) 2012-07-10
US7877564B2 (en) 2011-01-25
KR20120007544A (ko) 2012-01-20
US20140189219A1 (en) 2014-07-03
JP2012109012A (ja) 2012-06-07
CA2660087A1 (en) 2008-02-14
US8972674B2 (en) 2015-03-03
JP2014179077A (ja) 2014-09-25
CA2660087C (en) 2014-09-23
US8650376B2 (en) 2014-02-11

Similar Documents

Publication Publication Date Title
CN101523504B (zh) 固态存储元件及方法
KR100632952B1 (ko) 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
CN101635158B (zh) 编码和/或解码系统数据的方法、装置、系统和体系结构
US20100088464A1 (en) Compression Based Wear Leveling for Non-Volatile Memory
US9741451B2 (en) Data storage device and data maintenance method thereof
US20090259803A1 (en) Systems, methods and computer program products for encoding data to be written to a nonvolatile memory based on wear-leveling information
US10445002B2 (en) Data accessing method, memory controlling circuit unit and memory storage device
CN104040504A (zh) 用于存储器系统的软信息生成
US8504898B2 (en) Storage apparatus, controller and data accessing method thereof
US8935589B2 (en) Controller and data access method for flash memories
EP2684134A2 (en) Programmable data storage management
US20140281801A1 (en) Selection of redundant storage configuration based on available memory space
US9594627B2 (en) Controller and control method
KR20110028228A (ko) 다중레벨 플래시 메모리의 에러정정
KR20120129239A (ko) 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템
WO2017018008A1 (ja) 符号化装置、メモリコントローラ、通信システムおよび符号化方法
JP2007243953A (ja) エラー補正コードストライピング
US20100058145A1 (en) Storage device and method of controlling storage device
JP2009157515A (ja) 半導体メモリコントローラおよび半導体メモリ
CN117035754A (zh) 信息传输方法、装置、计算机设备和存储介质
KR20140125988A (ko) 인코더, 디코더 및 이를 포함하는 반도체 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant