CN103918033A - 向次序调制解码器提供包括硬位数据和软位数据的数据的方法和装置 - Google Patents

向次序调制解码器提供包括硬位数据和软位数据的数据的方法和装置 Download PDF

Info

Publication number
CN103918033A
CN103918033A CN201280054923.4A CN201280054923A CN103918033A CN 103918033 A CN103918033 A CN 103918033A CN 201280054923 A CN201280054923 A CN 201280054923A CN 103918033 A CN103918033 A CN 103918033A
Authority
CN
China
Prior art keywords
threshold voltage
voltage
soft
unit
hard
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201280054923.4A
Other languages
English (en)
Inventor
S.杰昂
S.A.戈罗贝茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Corp
SanDisk Technologies LLC
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN103918033A publication Critical patent/CN103918033A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories

Abstract

一种方法包括向次序调制解码器提供包括硬位数据和软位数据的数据。

Description

向次序调制解码器提供包括硬位数据和软位数据的数据的方法和装置
技术领域
本公开一般涉及在次序(rank)调制解码器处解码数据。
背景技术
诸如通用串行总线(USB)闪存设备或可移除存储卡的非易失性存储器设备允许数据和软件应用的增加的可携带性。闪存设备可以通过在每个闪存单元中存储多个位而提高数据存储密度。例如,多级单元(MLC)闪存设备通过每单元存储3个位、4个位或更多位而提供增加的存储密度。
将多个位的信息存储在单一闪存单元中通常包括将位序列映射到闪存单元的状态。例如,第一位序列“110”可以对应于闪存单元的第一状态,且第二位序列“010”可以对应于该闪存单元的第二状态。在确定位序列要被存储到特定闪存单元内之后,可以将该闪存单元编程到对应于该位序列的状态。
替代地,单一闪存单元中的多个位的信息可被存储为该存储器的多个单元的相对电压电平而非存储为每个单元中的绝对电压电平。例如,该存储器的每个存储元件可以具有对应于该存储元件的状态的阈值电压。一组存储元件可以基于该组中的存储元件的相对阈值电压而存储数据。可以通过根据阈值电压对存储元件排序(ranking)且将该排序映射到在次序调制解码器处的相应数据值而从该组存储元件读取数据。
一旦已编程了存储器设备中的存储器单元,可以通过感测存储器单元的编程状态而从这些存储器单元读取数据。然而,所感测的编程状态有时可能由于一个或多个因素而与写入的编程状态不同。错误校正解码可用于校正由于与写入的编程状态不匹配的所感测的编程状态所导致的数据错误。
发明内容
可以通过使用软位及硬位来解码数据而实现次序调制解码器的改进的错误校正能力。为了例示,与基于仅使用硬位作为到次序调制解码器的输入的解码方案相比,可以使用软位和硬位作为到次序调制解码器的输入以增强在多级单元(MLC)存储器系统中的错误校正能力。
附图说明
图1是将包括硬位数据和软位数据的数据提供给次序调制解码器的系统的第一例示性实施例的框图;
图2是例示次序调制解码中的软位和硬位的使用的图;
图3是例示感测方案的一个特定实施例的总图并且包括单元状态分布和对于被提供给次序调制解码器的硬位和另外的感测的(软)位的阈值读取电压的图形描绘;
图4是图形地例示三单元次序调制组的状态的总图;
图5是例示在使用次序调制解码的三单元组中的硬位阈值的例子的总图;
图6是例示在使用次序调制解码的三单元组中的软位阈值的例子的总图;
图7是例示在使用次序调制解码的四单元组中的软位阈值的例子的总图;
图8是例示在使用次序调制解码的两单元组中的每个硬位区域中的一个软位阈值的例子的总图;以及
图9是例示将包括硬位数据和软位数据的数据提供给次序调制解码器的方法的一个特定实施例的流程图。
具体实施方式
随着数据存储设备尺寸减小且存储密度增加,解码技术可提供改进的错误校正。使用软位及硬位作为到多级单元(MLC)存储器系统中的次序调制解码器的输入可以增强错误校正能力。
将包括硬位数据和软位数据的数据提供到次序调制解码器的系统和方法包含将包括从数据存储设备的存储器读取的硬位数据和软位数据提供到该次序调制解码器的能力。
参考图1,描绘将包括硬位数据和软位数据的数据提供到次序调制解码器的系统的特定例示性实施例,其被概括地指定为100。系统100包括耦合至主机设备130的数据存储设备102。数据存储设备102包括经由总线150耦合至控制器106的存储器104。
数据存储设备102可以是存储卡,诸如安全数字卡、卡、miniSD.TM卡(特拉华州威尔明顿的SD-3C LLC的商标)、MultiMediaCard.TM(MMC.TM)卡(维吉尼亚州阿灵顿的JEDEC Solid StateTechnology Association的商标)或(CF)卡(加利福尼亚州米尔皮塔斯的SanDisk Corporation的商标)。作为另一例子,数据存储设备102可以是主机设备130中的嵌入式存储器,比如作为例示性例子的(维吉尼亚州阿灵顿的JEDEC Solid State Technology Association的商标)存储器和eSD存储器。
存储器104可以是诸如NAND闪存设备、NOR闪存设备或任何其它类型的快闪设备的闪存设备的非易失性存储器。存储器104包括存储器部分110和读取阈值120。存储器部分110包括多个存储元件,诸如多级单元(MLC)存储器的存储器单元。一组存储元件112可以包括多个MLC存储元件,诸如闪存设备的字线119的代表性存储元件113、115、117。每个存储元件113-117可以具有对应于该存储元件的状态(例如,对应于特定范围的阈值电压值的预定状态)的阈值电压。该组存储元件112可以基于存储元件113-117的相对阈值电压(或状态)来存储数据。可以通过比较这些阈值电压与读取阈值120的一个或多个而读取存储元件113-117的状态。
读取阈值120包括硬位阈值122和软位阈值124。如关于图3进一步详细描述的,硬位阈值122可以包括用于硬位的阈值读取电压(例如,图3中的电压AR、BR、...GR),且软位阈值124可以包括用于另外的感测的位或软位的阈值读取电压(例如,图3中的电压AR-V1、AR+V2、AR-V3、AR+V4、...)。为了例示,存储元件113-117每个可以被编程到多个预定状态之一。可以将预定状态的每个映射到特定位值(例如单一位值(“0”或“1”)或多位值,诸如“101”)。对应于所确定的MLC状态的位值称为“硬位”。可用于指示该存储元件的读取的可靠性的另外的信息称为“软位”。软位可以由次序调制解码器116内的错误校正编码(ECC)引擎108结合一个或多个硬位来使用以通过指示从存储器104读取的硬位的相对可靠性而增强读取操作。
控制器106包括ECC引擎108和次序调制解码器116。ECC引擎108可以配置为检测在对应于存储元件112的读取的数据中的错误。可以在数据存储设备102可操作地耦合到主机设备130时将次序调制解码器116的输出提供到主机设备130。
为了将数据写入至存储器104,控制器106可以将次序调制码字140经由总线150提供到存储器104。例如,总线150可以是安全数字(SD)总线。存储器104配置为在存储器部分110中存储次序调制码字140的表示。次序调制码字140可以基于非二进制符号,比如根据单元的相对阈值电压指示一个或多个组的单元中的单元的次序的符号。每组中的单元的数量可以等同于该非二进制符号的大小。每组中的单元的次序(即,每个单元被编程到的相对阈值电压)指示该非二进制符号的值。例如,一个三单元组可以具有六个可能的排序(ranking)且每个可能的排序可以对应于非二进制符号的一个值。作为一例示性的非限制性例子,对于包括分别具有阈值电压V1、V2和V3的单元1、单元2和单元3的组,根据:V1>V2>V3=000、V1>V3>V2=001、V2>V1>V3=010、V2>V3>V1=011、V3>V1>V2=100、和V3>V2>V1=101,该非二进制符号的值可以对应于这些单元的排序。
控制器106可以配置为接收来自主机设备130的存储器存取请求并处理从存储器104读取的数据。控制器106可以配置为接收来自存储器104的硬位值152和软位值154。例如,硬位值152和软位值154可以对应于从存储器104读取的次序调制码字的表示且可以包括关于在存储器部分110中所存储的次序调制码字140的表示。为了例示,可以将存储元件113-117的每个编程到特定状态以具有被设置到特定排序顺序的存储元件113-117的阈值电压的相对值。例如,在定义的值的范围内的阈值电压可指示由位样式所表示的特定状态。该组存储元件112的每个存储元件的位样式的硬位值和软位元值可以对应于从MLC存储器读取的次序调制码字的表示。
主机设备130可以配置为提供要存储在存储器104处的数据或请求要从存储器104读取的数据。例如,主机设备130可以包括移动电话、音乐或视频播放器、游戏控制台、电子书阅读器、个人数字助理(PDA)、诸如膝上型计算机、笔记型计算机或平板机的计算机、任何其它电子设备或其任意组合。
在操作期间,主机设备130可以指示控制器106从存储器104取回对应于诸如存储元件113-117的该组存储元件112的数据。存储器104可以配置为通过比较存储器部分110中的单元阈值电压与硬位阈值122以产生硬位值152并比较存储器部分110中的单元阈值电压与软位阈值124以产生软位值154而从该组存储元件112读取该次序调制码字140的表示。例如,每个存储元件113-117可以具有对应于该存储元件的状态的阈值电压。可以通过比较存储元件113-117的每个的阈值电压与硬位阈值122以产生硬位值152而读取每个存储元件113-117的状态(即,阈值电压值的范围),且可以通过比较存储元件113-117的每个的阈值电压与软位阈值124以产生软位值154而读取阈值电压值的子范围。控制器106可以将硬位值152和软位值154提供作为到次序调制解码器116的输入。
次序调制解码器116可以配置为将硬位值152映射到可由ECC引擎108解码的ECC码字。例如,该ECC引擎可以是里德所罗门(Reed Solomon)ECC引擎、博斯-奎德胡里-霍昆格母(BCH)ECC引擎、低密度奇偶校验ECC引擎、一个或多个其它ECC引擎或其任意组合。次序调制解码器116可以将硬位值152转换为输入至ECC引擎108的ECC码字。
软位值154可以提供关于从存储器部分110中的存储元件113-117读取的状态的可靠性信息。该可靠性信息可以包括对于所读取的每个存储元件113-117的指示用于该存储元件的硬位值是正确的可能性的值。例如,可以由次序调制解码器116使用软位值154以获得被提供到ECC引擎108的ECC码字的每位的可靠性指示符,比如对数似然比(LLR)。次序调制解码器116可以配置为使用该可靠性信息来引导在ECC引擎108处的错误校正处理,以基于所接收的硬位值152和软位值154而产生解码的数据位。例如,ECC引擎108可以通过基于解码处理的先前迭代的位估计值和这些位估计的LLR来反复更新位估计和这些位估计的LLR以收敛至最可能的ECC码字而进行概率解码。软位值154使次序调制解码器116能够建立初始可靠性值(例如LLR),这些初始可靠性值比由仅使用硬位的传统解码器所使用的默认LLR更准确。使用更准确的初始可靠性值(例如基于软位值154的LLR)使次序调制解码器116能够更快速和/或更准确地收敛。因此,可以以减少的等待时间、以改进的错误校正能力或其组合来进行ECC码字的表示的解码。
次序调制(rank modulation)是其中信息可以存储为存储器的多个单元的相对电压电平而非存储为每个存储器单元中的绝对电压电平的技术。例如,在具有四个单元的单级单元(SLC)存储器中,四个位可以被存储为这些单元中的每个单元中的绝对电压电平。在具有四个单元的每单元两位(2-BPC)存储器中,可以存储8个位(例如2x4)。
与将数据存储为绝对电压电平相对比,可以通过将四个单元分别表示为1、2、3和4来描述使用这四个单元以表示信息的次序调制。四个单元1-4的每个可以具有分别由V1、V2、V3和V4所表示的对应阈值电压。四个单元1-4可以按其各自电压电平的递减顺序而被排序或表示。例如,3-4-1-2次序的电压电平可表示V3>V4>V1>V2
相应地,对于这四个单元存在4!(即,4阶乘)=24个组合(即,电压电平的排序)。通过在次序调制方案中使用四个存储器单元,可以表示log224=4.585个位。此数目稍高于使用四个单元的传统SLC存储器的数目,但稍低于具有四个单元的传统2-BPC存储器的数目。
表l例示可以被存储在M单元单位中的位的数目。
次序调制 l-BPC 2-BPC 3-BPC
M个单元 log2(M!) M 2M 3M
2个单元 1 2 4 6
3个单元 2.585 3 6 9
4个单元 4.585 4 8 12
表l
如果四个单元一起用于次序调制,则当将信息写入至存储器时,可以通过某个预定映射、诸如格雷映射将用户数据映射到该二十四个组合之一,且电压单元可以根据该四个单元之间的预定电压次序而被编程。例如,如果所选择的次序组合是3-4-1-2,则可以编程该电压使得V3>V4>V1>V2。当用户数据被读回时,可以感测该四个单元的相对电压且可以确定排序。例如,如果U1、U2、U3和U4分别表示单元1、2、3和4的所感测的电压,并且如果确定U3>U4>U1>U2,则可以确定在该二十四个可能的组合之中正确地读取3-4-1-2组合。如果读取了其它次序,诸如4-3-1-2或3-1-4-2,则可以使用错误校正编码来检测和处置读取错误。可以使用二进制或非二进制错误校正码。
图2中示出在两单元单位中使用次序调制的例示性例子。图2描绘了例示在次序调制解码中使用软位和硬位的总图200。图200包括经由总线150耦合至控制器106的存储器104。
存储器104(用虚线示出)包括表210、第一代表性存储元件113和第二代表性存储元件115。表210可以包括硬位数据和软位数据,诸如分别存储在存储器104的锁存器或寄存器中的硬位260和软位262。硬位数据和软位数据指示每个存储元件的阈值电压范围,使能够确定存储元件的相对电压电平(即,排序),该相对电压电平指示在第一存储元件113处和在第二存储元件115处所存储的信息。
为了例示,存储元件113、115的每个可以具有对应的阈值电压。例如,第一存储元件113可以具有在第一电压范围VT1250内的第一阈值电压V1230,且第二存储元件115可以具有在第二电压范围VT2252内的第二阈值电压V2232。例如,第一电压范围VT1250可以是从0伏特至2伏特,且第二电压范围VT2252也可以是从0伏特至2伏特。
硬位260可以指示比较每个特定单元的阈值电压(例如,第一阈值电压V1230和第二阈值电压V2232)与一个或多个硬位阈值的结果。例如,可以通过比较每个存储元件的阈值电压与第一硬位阈值或读取电压VR1242且比较该阈值电压与第二硬位阈值或读取电压VR2246而从第一存储元件113和第二存储元件115读取数据。如所示,第一硬位读取电压VR1242小于第二硬位读取电压VR2246。
具有值“11”的硬位260(即,HB1、HB2)可以对应于大于第二硬位读取电压VR2246的阈值电压值。具有值“10”的硬位260可以对应于在第一硬位读取电压VR1242与第二硬位读取电压VR2246之间的阈值电压值。具有值“00”的硬位260可以对应于小于第一硬位读取电压VR1242的阈值电压值。
如所示,第一阈值电压V1230大于第一硬位读取电压VR1242且小于第二硬位读取电压VR2246。第二阈值电压V2232小于第一硬位读取电压VR1242且小于第二硬位读取电压VR2246。相应地,具有值“10”的硬位260(即,在表210中例示为HB1=1且HB2=0)指示第一阈值电压V1230大于第一硬位读取电压VR1242且小于第二硬位读取电压VR2246。类似地,具有值“00”的硬位260(即,在表210中例示为HB1=0且HB2=0)指示第二阈值电压V2232小于第一硬位读取电压VR1242且小于第二硬位读取电压VR2246。
软位262可以指示比较每个特定单元的阈值电压(例如,第一阈值电压V1230和第二阈值电压V2232)与一个或多个软位阈值的结果。例如,可以比较第一存储元件113和第二存储元件115的阈值电压与第一软位阈值或读取电压S1240、第二软位阈值或读取电压S2244和第三软位阈值或读取电压S3248。如所示,第一软位读取电压S1240可以小于第二软位读取电压S2244,且第二软位读取电压S2244可以小于第三软位读取电压S3248。另外,第一硬位读取电压VR1242可以小于第二软位读取电压S2244且大于第一软位读取电压S1240,且第二硬位读取电压VR2246可以大于第二软位读取电压S2244且小于第三软位读取电压S3248。在第一软位读取电压S1240与第一硬位读取电压VR1242之间的第一差可以实质上等于在第一硬位读取电压VR1242与第二软位读取电压S2244之间的第二差。
具有值“11”的软位262(即,SB1、SB2)可以对应于大于第三软位读取电压S3248的阈值电压值。具有值“10”的软位262可以对应于在第三软位读取电压S3248与第二软位读取电压S2244之间的阈值电压值。具有值“01”的软位262可以对应于在第二软位读取电压S2244与第一软位读取电压S1240之间的阈值电压值。具有值“00”的软位262可以对应于小于第一软位读取电压S1240的阈值电压值。相应地,具有值“10”的用于存储元件113的软位262指示第一阈值电压V1230具有在第三软位读取电压S3248与第二软位读取电压S2244之间的值。类似地,具有值“01”的用于存储元件115的软位262指示第二阈值电压V2232具有在第二软位读取电压S2244与第一软位读取电压S1240之间的值。
控制器106(以虚线示出)包括次序调制解码器116,其包括映射器220、可靠性指示器222和错误校正引擎108。控制器106可以配置为将从存储器104读取的数据提供到次序调制解码器116。该数据可以包括诸如硬位260的硬位数据和诸如软位262的软位数据。例如,控制器106可以接收来自表210的数据且将每个单元的HB1、HB2、SB1和SB2值提供到次序调制解码器116。
映射器220可以配置为将数据逻辑地划分为位的组。每组的位可以对应于存储器104中的一组单元。例如,第一存储元件113和第二存储元件115可以对应于一个组的位。映射器220可以进一步配置为根据单元阈值电压对每个特定组的单元的单元排序。例如,映射器220可比较第一阈值电压V1230与第二阈值电压V2232且基于该比较而产生排序。例如,如果第一阈值电压V1230大于第二阈值电压V2232,则可以通过映射器220产生排序“1-2”。类似地,如果第二阈值电压V2232大于第一阈值电压V1230,则可以通过映射器220产生排序“2-1”。
映射器220可以进一步配置为根据对应于该组的位的该组单元的单元排序将每组的位映射到数据值。例如,映射器220可以基于第一阈值电压V1230与第二阈值电压V2232的比较而产生单一位符号或数据值(例如,“1”或“0”)。如果第一阈值电压V1230大于第二阈值电压V2232,则可以通过映射器220产生数据值“1”。如果第二阈值电压V2232大于第一阈值电压V1230,则可以通过映射器220产生值“0”。作为另一例子,多于两个存储元件可以对应于该组的位。例如且如上所述,四个单元或存储元件可被用于表示数据。在此情况下,映射器220可以基于每个单元的阈值电压的比较而产生多位符号或数据值(例如,5位数据值“11001”、“01100”等等)。映射器220可以基于单元排序将数据值作为ECC码字270发送至ECC引擎108。
可靠性指示器222可以配置为指示由映射器220产生的ECC码字270中的位置的相对可靠性,且可以将相对可靠性值作为ECC软位272发送至ECC引擎108。该相对可靠性可以至少部分基于如基于软位阈值S1-S3所确定的每个特定组的单元的阈值电压之间的差。例如,该相对可靠性可以随着单元阈值电压之间的差的增加而增加。为了例示,如果第一阈值电压V1230与第二阈值电压V2232之间的差大,则由映射器220而产生的数据值的相对可靠性可以高于第一阈值电压V1230与第二阈值电压V2232之间的差小的情况。例如,可靠性指示符“1”可以指示第一阈值电压V1230与第二阈值电压V2232之间的差大,且可靠性指示符“0”可以指示第一阈值电压V1230与第二阈值电压V2232之间的差小。
可靠性指示器222可以配置为确定第一阈值电压V1230与第二阈值电压V2232是否在相邻子区域内。例如,第一硬位读取电压VR1242和第二硬位读取电压VR2246可以将第一电压范围VT1250划分为三个区域。第一软位读取电压S1240、第二软位读取电压S2244和第三软位读取电压S3248可以将每个区域划分为两个子区域。基于硬位260和软位262,可靠性指示器222可以确定第一阈值电压V1230在六个子区域中的哪个子区域中以及第二阈值电压V2232在六个子区域中的哪个子区域中。当第一阈值电压V1230和第二阈值电压V2232在相邻子区域中时,可以由可靠性指示器222输出“0”。当第一阈值电压V1230和第二阈值电压V2232不在相邻子区域中时,可以由可靠性指示器222输出“1”(或更大数字)。
控制器106可以配置为通过将ECC码字270和ECC软位272提供到ECC引擎108而开始对ECC码字270的ECC过程。例如,ECC引擎108可以使用诸如里德所罗门(Reed Solomon)ECC解码方案、博斯-奎德胡里-霍昆格母(BCH)ECC解码方案、低密度奇偶校验ECC解码方案、一个或多个其它ECC解码方案或其任意组合的ECC解码方案。ECC引擎108可以提供指示已正确地解码ECC码字270的输出数据。
在操作期间,可以由主机设备(未示出)指示控制器106以从存储器104取回对应于存储元件113、115的数据。控制器106可以将包括诸如硬位260(即,HB1、HB2)的硬位数据和诸如软位262(即,SB1、SB2)的软位数据的数据提供到次序调制解码器116。次序调制解码器116可以配置为将该数据逻辑地划分为位的组,其中每组的位可以对应于存储器104中的一组单元。例如,映射器220可以比较第一阈值电压V1230与第二阈值电压V2232且基于该比较而产生排序。次序调制解码器116可以进一步配置为根据对应于每组的位的该组的单元的单元排序将每组的位映射到数据值。例如,映射器220可以基于第一阈值电压V1230与第二阈值电压V2232的比较而产生数据值,且可以将基于单元排序的该数据值作为ECC码字270发送至ECC引擎108。可以通过可靠性指示器222确定由映射器220产生的ECC码字270中的位值的相对可靠性,且可以将相对可靠性值作为ECC软位272发送至ECC引擎108。例如,如果第一阈值电压V1230与第二阈值电压V2232之间的差大,则由映射器220产生的该数据值的相对可靠性可以高于第一阈值电压V1230与第二阈值电压V2232之间的差小的情况。控制器106可以配置为通过将ECC码字270和ECC软位272提供到ECC引擎108而开始对ECC码字270的ECC过程。ECC引擎108可以提供指示正确解码了ECC码字270的输出数据。
如上述通过用虚线示出,图2的一个或多个组件可以从所示的位置移动至不同的位置。例如,映射器220、可靠性指示器222或这两者可以被包括在存储器104内。
图3示出感测方案的实施例300,且包括诸如代表性存储器单元310的存储器的存储元件的电压区域(即,状态)(Er、A、...G)的单元分布和对于硬位的阈值读取电压(例如,电压AR、BR、...GR)和对于另外的感测的软位的阈值读取电压(例如,电压AR-V1、AR+V2、AR-V3、AR+V4、...)的图形描绘302。表304例示相邻阈值读取电压之间的每个电压间隔到包括三个硬位(HB1、HB2、HB3)和三个软位(SB1、SB2、SB3)的一组六个位的映射。存储器单元310处的硬位和软位的样式可以具有对应于存储器单元310的状态的阈值电压312。可以通过比较该阈值电压312与硬位的阈值读取电压(例如,电压AR、BR、...GR)以产生硬位314且比较该阈值电压312与软位的阈值读取电压(例如,电压A R-V1、AR+V2、AR-V3、AR+V4、…)以产生软位316,来产生存储器单元310处的硬位和软位的样式。
硬位314指示阈值电压312处于哪个状态(Er-G),且软位316指示阈值电压312在该状态的电压范围的中心内还是在该状态的电压范围的边缘附近(例如,指示接近电压CR)。作为例子,第一软位阈值(例如CR-V1)与特定硬位阈值(例如CR)之间的第一电压差(V1)实质上等于该特定硬位阈值(例如CR)与第二软位阈值(例如CR+V2)之间的第二电压差(V2)。另外,如图3中所示,第三软位阈值与该特定硬位阈值(CR)之间的第三电压差(V3)实质上等于该特定硬位阈值(CR)与第四软位阈值之间的第四电压差(V4)。如所示,第一电压差(V1)不同于第三电压差(V3)。如所示,阈值电压312在BR和CR之间,指示单元310处于状态“B”,对应于硬位“100”。阈值电压312也在CR-V1与CR之间的子区域中,对应于软位值“001”。
控制器106可以将硬位314和软位316提供到次序调制解码器320的输入以获得解码的数据。软位316可以包括关于从存储器单元310读取的硬位的可靠性信息。次序调制解码器320可以配置为使用指示单元的状态的子区域(即,最靠近电压CR的状态“B”的子区域)的软位316以基于所接收的软位、比如通过产生要输入到ECC解码器的诸如图2的ECC软位272的ECC软位来指导错误校正处理。
参考图4,绘出图形地例示三单元次序调制组的状态的总图,且其被概括地指定为400。图400例示标记为U1、U2和U3的三个轴,它们定义空间(U1,U2,U3)。例示了平面U1=U2、U2=U3和U3=U1,它们将空间(U1,U2,U3)划分为3!=6个区域。示出这六个区域中的四个(即区域C、D、E和F),且这六个区域的两个(即区域A和B)被平面所隐藏。例如,该三单元次序调制组的状态可以对应于包括单元1、单元2和单元3(例如,分别是图1中的存储元件113、115和117)的三单元组的状态,其中U1是单元1(例如存储元件113)的阈值电压、U2是单元2(例如存储元件115)的阈值电压,U3是单元3(例如存储元件117)的阈值电压。每个区域A-F对应于在三单元次序调制组中所存储的不同的数据值。为了例示,区域E对应于状态U1>U3>U2。
参考图5,总图500例示图4的三单元次序调制组的硬位阈值的例子。图500例示图4的线U3与以下两个表面的每个之间的交叉:在U1=u1处的U3=U1和在U2=u2处的U3=U2,其中u1和u2分别对应于三个单元中的一个(即,单元1)以及这三个单元中的另一个(即,单元2)的电压量测。上部分或顶部线510对应于其中u1<u2的区域,且下部分或底部线520对应于其中u1>u2的区域。电压量测u1和u2可以对应于可用于确定硬位值的电压阈值。
例如,可以测量(或以其它方式确定)单元1的阈值电压(u1)和单元2的阈值电压(u2)。阈值电压u1和u2可以用作硬位阈值以与单元3的阈值电压(u3)相比较。如果u1<u2且单元3的阈值电压小于u1,则硬位可以指示测量点(例如,单元3的阈值电压)在区域A内。如果u1<u2且单元3的阈值电压在u1和u2之间,则硬位可以指示该测量点在区域B内。如果u1>u2且单元3的阈值电压大于u2,则硬位可以指示该测量点在区域C内。类似地,如果u2<u1且单元3的阈值电压小于u2,则硬位可以指示测量点在区域D内。如果u2<u1且单元3的阈值电压在u1和u2之间,则硬位可以指示该测量点在区域E内。如果u2<u1且单元3的阈值电压大于u1,则硬位可以指示该测量点在区域F内。如所示,对应于硬位阈值的硬位可以仅提供关于该测量点属于该六个区域之中的哪个特定区域的信息。
参考图6,绘出了例示次序调制解码中的三单元组中的软位阈值的例子的总图,且其被概括地指定为600。图600例示将图5的每个硬位区域(即,硬位区域A、B、C、D、E和F)划分为更小的子区域(即,子区域A1、A2、B1、B2、C1、C2、D1、D2、E1、E2、F1、F2)。例如,可在u1和u2的值之间添加软位阈值(由T1、T2、...T6表示)以将每个硬位区域划分为更小的区域。如图5中所示,可以仅使用硬位来实现六个区域或来自电压感测的可能结果,且三个位可用于表示此结果。如果如图6所示使用软位和硬位,则可以得到来自电压感测的十二个可能的结果,且四个位可用于表示此结果。
参考图7,绘出了例示次序调制解码中的四单元组中的软位阈值的例子的总图,且其被概括地指定为700。顶部线710例示仅使用硬位,中间线720例示每个硬位区域添加一个软位阈值,且底部线730例示每个硬位区域添加两个软位阈值。变量w1、w2、w3和w4可以以电压的升序对应于电压量测u1、u2、u3和u4。相应地存在3!=6个可能的组合(即,对于w1、w2和w3)用于与W4相比较。如所示,顶部线710中示出四个区域(即,仅使用硬位),其中该四个区域的每个具有六个可能的组合,总共二十四个可能的组合。相应地,五个位可用于表示该二十四个组合。中间线720中示出八个区域(即,线710的每个硬位区域添加一个软位阈值),其中八个区域的每个具有六个可能的组合,总共四十八个可能的组合。相应地,六个位可以用于表示该四十八个组合。底部线730中示出十二个区域(即,线710的每个硬位区域添加两个软位阈值),其中该十二个区域的每个具有六个可能的组合,总共七十二个可能的组合。相应地,七个位可用于表示该七十二个可能的组合。类似地,每个硬位区域还可以添加每个硬位区域的另一数量的软位阈值,比如三个或更多软位阈值。替代地,每个硬位区域的软位阈值的数量可以是不一致的。例如,软位阈值的数量在由w1和w2定义的硬位区域与由w2和w3定义的硬位区域之间可以不同。
图5中所示的每条线(即线510、线520)、图6中所示的每条线(即线610、线620)和图7中所示的每条线(即线710、线720、线730)可称为投影线。对于M单元次序调制,如果每一投影线添加L个软位阈值,则可以表示电压感测结果的位数量可以表示为log2(M-l)!(M+L)(舍入(round up)到最接近的整数值),其中(M-l)!是情况(投影线)的数量。例如,对于如图6中所示的M=3,投影线的数量为(3-1)!=2(即,对于情况U1>U2的线和对于情况U1<U2的线),且对于如图7中所示的M=4,情况的数量为(4-1)!=6(即,对于情况W1>W2>W3、W1>W3>W2、W2>W1>W3、W2>W3>W1、W3>W1> W2和W3>W2>W1的每个的线)。(M+L)是每个投影线的区域数量。
例如,当M=2时将数据写入至存储器时,第一单元(单元1)可以被编程在电压V1,且第二单元(单元2)可以被编程在电压V2以存储硬位X,使得如果X=0,则V1>V2,且如果X=l,则V1<V2。当读取该数据时,可以在单元1中感测电压U1且在单元2中感测电压U2。可以读取硬位Y(X的估值),使得如果U1>U2,则Y=0,如果U1<U2,则Y=l。
可以模拟(model)由于物理影响导致的不确定性使得U1=V1+N1且U2=V2+N2,其中N1和N2是描述该不确定性的随机变量。可以使用任意的随机变量,包括零均值高斯随机变量。
例如,可以例示对于仅一硬位情况的转移(transition)概率矩阵如下:
Q hard = P ( U 1 > U 2 | V 1 > V 2 ) P ( U 1 > U 2 | V 1 > V 2 ) P ( U 1 < U 2 | V 1 > V 2 ) P ( U 1 < U 2 | V 1 < V 2 )
其中P(A|B)指示给定B的情况下的A的概率。例如,P(U1>U2|V1>V2)指示给定单元1被编程为具有比单元2更大的阈值的情况下单元1被读取为具有比单元2更大的阈值电压的概率。如果编程出现使得|V1-V2|=d,则该转移概率矩阵在不确定性或噪声变量和电压间隔d方面可以例示为:
Q hard = P ( N 1 - N 2 > - d | X = 0 ) P ( N 1 - N 2 > d | X = 1 ) P ( N 1 - N 2 < - d | X = 0 ) P ( N 1 - N 2 < d | X = 1 ) .
N可以定义为N=N1-N2以简化该表示
Q hard = P ( N > - d | X = 0 ) P ( N > d | X = 1 ) P ( N < - d | X = 0 ) P ( N < d | X = 1 )
注意,N(E(N))的期望=E(N1)-E(N2),且N(Var(N))的方差(variance)=Var(N1)+Var(N2)。
如果M个单元具有一致的噪声方差,则总体噪声方差是每个单元的噪声方差的M倍。即,该M单元噪声Σ(即,标准偏差)将是一个单元的噪声Σ的M倍。如关于图8所述,用于硬位的转移概率矩阵可以用于比较仅使用硬位的单元信息容量与使用硬位和软位的次序调制单元信息容量。
参考图8,绘出了例示两单元(即,M=2)组中的每个硬位区域一个软位阈值的例子的总图,且其被概括地指定为800。例示了定义子区域R1、R2、R3和R4的第一软位阈值T1和第二软位阈值T2。
使用图8,可以确定转移概率矩阵
Q soft 1 = P ( R 1 | V 1 > V 2 ) P ( R 1 | V 1 < V 2 ) P ( R 2 | V 1 > V 2 ) P ( R 2 | V 1 < V 2 ) P ( R 3 | V 1 > V 2 ) P ( R 3 | V 1 < V 2 ) P ( R 4 | V 1 > V 2 ) P ( R 4 | V 1 < V 2 )
如果定义h1和h2使得U1-T1=h1且T2-U1=h2,则
Q soft 1 = P ( U 2 < U 1 - h 1 | V 1 > V 2 ) P ( U 2 < U 1 - h 1 | V 1 < V 2 ) P ( U 1 - h 1 < U 2 < U 1 | V 1 > V 2 ) P ( U 1 - h 1 < U 2 < U 1 | V 1 < V 2 ) P ( U 1 < U 2 < U 1 + h 2 | V 1 > V 2 ) P ( U 1 < U 2 < U 1 + h 2 | V 1 < V 2 ) P ( U 1 + h 2 < U 2 | V 1 > V 2 ) P ( U 1 + h 2 < U 2 | V 1 < V 2 )
就噪声变量而言:
Q soft 1 = P ( N > - d &divide; h 1 | X = 0 ) P ( N > d + h 1 | X = 1 ) P ( - d &divide; h 1 > N > - d | X = 0 ) P ( d &divide; h 1 > N > d | X = 1 ) P ( - d > N > - d - h 2 | X = 0 ) P ( d > N > d - h 2 | X = 1 ) P ( N < - d - h 2 | X = 0 ) P ( N < d - h 2 | X = 1 )
诸如图3的存储器单元310的每个存储器单元具有存储信息量的理论存储容量,称为信息容量(C)。信息容量(C)是特定数据值被存储至单元的概率和由于该单元中的噪声或其它影响而导致所存储的数据值发生错误的概率的函数。当所有数据值同等可能地被存储在该单元中时(称为“使用扰码器假设的信息容量”-假设数据在存储之前被加扰且因此全部数据值是同等可能的),出现单元的信息容量的理论下限。可以如下计算以位/单元为单位的信息容量(C)和使用扰码器假设的下限信息容量(Cscramble):
C = max p ( x ) &Sigma; X , R p ( R | X ) p ( X ) log 2 p ( R | X ) &Sigma; X p ( R | X ) p ( X ) C scramble = 1 | X | &Sigma; X , Y p ( R | X ) log 2 p ( R | X ) | X | &Sigma; X p ( R | X )
其中X是在写入操作中被写入的初始硬位,R是在读取操作期间感测的电压区域,且|X|是可能的硬位的数量。
例如,在仅使用硬位的三单元次序调制中,X可以是3!=6个组合(|X|=6)中的一个,R可以是可以是6个电压区域中的一个。可以如以上所示的转移概率矩阵Qsoft1给出条件概率质量函数(conditional probability mass function)(PMF)p(R|X)。
表2(以下)例示对于次序调制方案中的单元错误率(CER)和单元的编程状态之间的电压间隔(d)的若干值的软位阈值偏移(h)值、单元信息容量值和单元使用寿命容量值的例子。表2提供可以被编程为在从-1V至1V的2伏特(V)范围内的阈值电压且在不使用次序调制的传统SLC方案中具有0.002%CER、0.2%CER和1%CER(CER分别对应于0.2435、0.3474和0.4299的噪声标准偏差(Σ))的单元的例子。对于M=2,可以假设每个单元中的噪声分量是独立的且一致地分布的具有方差σ2的零均值高斯随机变量。相应地,E(N)=0且Var(N)=2σ2。可以使用对称方案hl=h2。
对于每个CER,给出对于d=2V(即,单元被编程到-1V或1V)、d=1V(即,单元被编程到-1V、0V或1V)、d=2/3V(即,单元被编程到-1V、-1/3V、1/3V或1V)、和d=0.5V(即单元被编程到-1V、-1/2V、0V、1/2V或1V)的例子。对于d的每个值,提供“最佳”软位阈值偏移(例如,h1=h2)作为被计算以提供每单元的理论最大信息容量的值。为了比较的目的,为仅使用硬位的单元和使用一个软位的单元提供信息容量。
此外,表2提供单元的使用寿命信息容量的例子为信息容量乘以(2/d),其中2/d指示可被顺序地写入至一组单元而无需擦除这些单元的数据值的数量。例如,当d=2时,每个单元被编程到-1V或1V,且一组单元在每次新数据值被写入到该组时被擦除(即,将排序从“1-2”改变为“2-1”或从“2-1”改变为“1-2”)。相对比,当d=1/2时,该组单元可以无需擦除而被写入四次。为了例示:
写入#1:将单元1编程到-1V,单元2编程到-1/2V;次序=“0-1”;数据=0
写入#2:将单元1编程到0V,单元2编程到-1/2V;次序=“1-0”;数据=1
写入#3:将单元1编程到0V,单元2编程到1/2V;次序=“0-1”;数据=0
写入#4:将单元1编程到1V,单元2编程到1/2V;次序=“1-0”;数据=1
由于使用d=1/2可以得到比使用d=2少四次单元擦除,所以与使用d=2相比,通过使用d=1/2可以使单元使用寿命延长四倍,否则该单元使用寿命可能由擦除循环次数限制。
表2
如表2所示,与仅使用硬位相比,使用一个软位提高了信息容量。此外,虽然单元信息容量随着d增加而减小,但是单元使用寿命信息容量可以反而随着d增加而增加。也可以进行对于M>2的单元的次序调制的类似分析。
图9描绘例示将包括硬位数据和软位数据的数据提供到次序调制解码器的方法的实施例的流程图。可以在具有快闪多级单元(MLC)存储器的数据存储设备中进行方法900。例如,可以在图l的数据存储设备102中进行方法900。
在902,可以从闪存读取硬位数据和软位数据。例如,存储器104可以配置为通过比较存储器部分110中的单元阈值电压与硬位阈值122以产生硬位值152和比较存储器部分110中的单元阈值电压与软位阈值124以产生软位值154而从该组存储元件112读取次序调制码字140的表示。
在904,可以将包括硬位数据(例如,图l的硬位值152)和软位数据(例如,图l的软位值154)的数据提供到次序调制解码器。例如,存储器104可以包括:读取电路,配置为比较单元阈值电压与一个或多个硬位阈值以产生硬位值152和比较单元阈值电压与一个或多个软位阈值以产生软位值154;锁存器,配置为锁存这些比较的结果;以及总线接口,配置为将硬位值152和软位值154提供到次序调制解码器116。
为了例示,可以从存储器的多个单元、比如存储器104的存储元件113-117读取数据,其中,该多个单元的每个特定单元具有阈值电压,且其中硬位数据包括指示比较每个特定单元的阈值电压与一个或多个硬位阈值的结果的硬位,且其中软位数据包括指示比较每个特定单元的阈值电压与一个或多个软位阈值的结果的软位。
例如,第一存储元件113可以具有在第一电压范围VT1250内的第一阈值电压V1230,且第二存储元件115可以具有在第二电压范围VT2252内的第二阈值电压V2232。可以基于第一存储元件113和第二存储元件115的阈值电压与第一硬位阈值VR1242与第二硬位阈值VR2246的比较而从第一存储元件113和从第二存储元件115读取数据以产生硬位260。硬位260可以指示每个特定单元的阈值电压(例如,第一阈值电V1230和第二阈值电压V2232)的比较的结果,且可以指示第一阈值电压V1230大于还是小于第二阈值电压V2232。例如,具有值“11”的硬位260(即,HB1、HB2)可以对应于大于第二硬位读取电压VR2246的阈值电压值。具有值“10”的硬位260可以对应于在第一硬位读取电压VR1242与第二硬位读取电压VR2246之间的阈值电压值。具有值“00”的硬位260可以对应于小于第一硬位读取电压VR1242的阈值电压值。
软位可以指示比较每个特定单元的阈值电压(例如,第一阈值电压V1230和第二阈值电压V2232)与一个或多个软位阈值(也称作为软位读取电压)的结果,且可以指示第一阈值电压V1230大于还是小于第一软位读取电压(例如,阈值S1240)。例如,可以将第一存储元件113和第二存储元件115的阈值电压与第一软位读取电压或阈值S1240、与第二软位读取电压或阈值S2244和与第三软位读取电压或阈值S3248比较。此外,软位可以指示第一阈值电压V1230大于还是小于第二软位读取电压S2244,其中第一软位读取电压S1240小于第二阈值电压V2232,且其中第二软位读取电压S2244大于第二阈值电压V2232。
可以对多单元次序调制组、比如三单元次序调制组进行方法900。例如,闪存104可以包括具有第三阈值电压的第三单元(即,存储元件117)。该硬位数据可以进一步指示第三阈值电压是在小于第一阈值电压V1230和第二阈值电压V2232的第一电压范围内、在第一阈值电压V1230与第二阈值电压V2232之间的第二电压范围内、还是在大于第一阈值电压V1230和第二阈值电压V2232的第三电压范围内。软位数据可以指示该第三阈值电压是在第一电压范围、第二电压范围、还是第三电压范围的一个或多个子范围内。
控制器106可以配置为将从存储器104读取的数据提供到次序调制解码器116。例如,控制器106可以经由总线接口接收该数据且可以将所接收的数据提供到次序调制解码器116的输入。该数据可以包括硬位260和软位262。次序调制解码器116可以配置为将数据逻辑地划分为位组,其中每组的位对应于存储器104中的一组单元,且次序调制解码器116可以根据单元阈值电压对每个特定单元组的单元排序以产生该特定单元组的单元排序。例如,映射器220可以比较第一阈值电压V1230和第二阈值电压V2232,且可以基于该比较而产生排序。次序调制解码器116可以配置为根据对应于每组的位的每组单元的单元排序将每组的位映射到数据值。例如,映射器220可以基于第一阈值电压V1230和第二阈值电压V2232的比较而产生数据值,且可以将基于单元排序的该数据值作为ECC码字270发送至ECC引擎108。
与仅使用硬位的次序调制解码相比,通过将包括硬位数据和软位数据的数据提供到次序调制解码器,可以更快和/或更准确地进行在该次序调制解码器处的错误校正。如参考表2所述的,与仅使用硬位的次序调制解码相比,通过使用利用硬位和软位的次序调制解码,可以增加单元信息容量。
虽然本文所描绘的各种组件被例示为块组件且以一般术语描述,但是这些组件可以包括配置为使诸如图l的数据存储设备102的数据存储设备能够进行属于这些组件的特定功能的一个或多个微处理器、状态机或其它电路或其任意组合。例如,图1和图2的次序调制解码器116可以表示实体组件,比如控制器、处理器、状态机、逻辑电路或其它结构,以将数据逻辑地划分为位组,其中每组的位对应于闪存中的一组单元,以对每个特定单元组的单元的排序,以及以根据与每组的位对应的单元组的单元排序将该组的位映射到数据值。
可使用被编程为从使用软位而被次序调制的数据来产生数据的微处理器或微控制器而实施次序调制解码器116。在一个特定实施例中,控制器106包括执行存储在存储器104处的指令的处理器。可替代地,或另外,由该处理器执行的可执行指令可以被存储在不是存储器104的部分的单独的存储器位置处,比如存储在只读存储器(ROM)(未示出)处。
在一个特定实施例中,数据存储设备102可以是配置为选择性地耦合至一个或多个外部设备的便携式设备。例如,数据存储设备102可以是可移除设备,诸如作为例示性例子的通用串行总线(USB)快闪驱动器或可移除存储卡。然而,在其它实施例中,可以将数据存储设备102附接或嵌入至一个或多个主机设备内,比如便携式通信设备的外壳内。例如,数据存储设备102可以在封装的装置内,诸如无线电话、个人数字助理(PDA)、游戏设备或控制台、便携式导航设备、计算机或使用内部非易失性存储器的其它设备。在一个特定实施例中,数据存储设备102包括非易失性存储器,诸如闪存(例如,NAND、NOR、多级单元(MLC)、划分的位线NOR(DINOR)、AND、高电容耦合比(HiCR)、不对称非接触式晶体管(ACT)或其它快闪存储器)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次可编程存储器(OTP)或任何其它类型的存储器。
本文中所描述的实施例的例示意图提供对各种实施例的大体理解。可以利用并从本公开得到其它实施例,使得不脱离本公开的范围可以做出结构上和逻辑上的替换和改变。本公开意图覆盖各个实施例的任何和全部随后的适应或变型。
以上公开的主题被认为是例示性的而非限制性的,且随附的权利要求书意图覆盖所有这样的修改、增强和其它实施例,它们落在本公开的范围内。因此,在法律所允许的最大范围内,本发明的范围将由以下权利要求及其等效物的最广可允许的解释来确定,且不应由前述的具体实施方式所限制或限定。

Claims (20)

1.一种方法,包括:
向次序调制解码器提供包括硬位数据和软位数据的数据。
2.如权利要求1所述的方法,其中从存储器的单个单元读取该数据,其中所述多个单元的每个特定单元具有阈值电压,以及其中所述硬位数据包括指示比较所述多个单元的每个特定单元的阈值电压与一个或多个硬位读取电压的结果的硬位。
3.如权利要求2所述的方法,其中所述软位数据包括指示比较所述多个单元的每个特定单元的阈值电压与一个或多个软位读取电压的结果的软位。
4.如权利要求1所述的方法,其中所述次序调制解码器配置为:
将该数据逻辑地划分为位组,其中每个位组对应于闪存中的一单元组;
根据单元阈值电压对每个特定单元组的单元排序以产生该特定单元组的单元排序;以及
将根据与每个位组对应的单元组的单元排序将每个位组映射到数据值。
5.如权利要求1所述的方法,还包括从闪存读取所述硬位和软位。
6.如权利要求5所述的方法,其中闪存包括具有第一阈值电压的第一单元和具有第二阈值电压的第二单元,以及其中该硬位数据指示该第一阈值电压大于还是小于该第二阈值电压。
7.如权利要求6所述的方法,其中该软位数据指示该第一阈值电压大于还是小于第一软位读取电压。
8.如权利要求7所述的方法,其中所述软位数据还指示该第一阈值电压大于还是小于第二软位读取电压,其中该第一软位读取电压小于该第二阈值电压,以及其中该第二软位读取电压大于该第二阈值电压。
9.如权利要求8所述的方法,其中该第一软位读取电压和该第二阈值电压之间的第一差实质上等于该第二阈值电压和该第二软位读取电压之间的第二差。
10.如权利要求6所述的方法,其中该闪存包括具有第三阈值电压的第三单元,以及其中该硬位数据还指示该第三阈值电压是在小于该第一阈值电压和该第二阈值电压的第一电压范围内、在该第一阈值电压和该第二阈值电压之间的第二电压范围内、还是在大于该第一阈值电压和该第二阈值电压的第三单元范围内,以及其中该软位数据指示该第三阈值电压是在该第一电压范围、该第二电压范围、还是该第三单元范围的一个或多个子范围内。
11.一种数据存储设备,包括:
存储器;
次序调制解码器;以及
控制器,配置为将从该存储器读取的数据提供到该次序调制解码器,其中该数据包括硬位数据和软位数据。
12.如权利要求11所述的数据存储设备,其中从该存储器的多个存储元件读取该数据,其中所述多个存储元件的每个特定存储元件具有阈值电压,以及其中该硬位数据包括指示比较每个特定存储元件的的阈值电压与一个或多个硬位读取电压的结果的硬位。
13.如权利要求12所述的数据存储设备,其中所述软位数据包括指示比较每个特定存储元件的阈值电压与一个或多个软位读取电压的结果的软位。
14.如权利要求11所述的数据存储设备,其中所述存储器是闪存,以及其中所述次序调制解码器配置为:
将该数据逻辑地划分为位组,其中每个位组对应于闪存中的一单元组;
根据存储元件阈值电压对每个特定存储元件组的存储元件排序以产生该特定存储元件组的存储元件排序;以及
将每个位组映射到数据值。
15.如权利要求11所述的数据存储设备,其中该存储器是闪存。
16.如权利要求15所述的数据存储设备,其中所述多个存储元件包括具有第一阈值电压的第一存储元件和具有第二阈值电压的第二存储元件,以及其中该硬位数据指示该第一阈值电压大于还是小于该第二阈值电压。
17.如权利要求16所述的数据存储设备,其中该软位数据指示该第一阈值电压大于还是小于第一软位读取电压。
18.如权利要求17所述的数据存储设备,其中所述软位数据还指示该第一阈值电压大于还是小于第二软位读取电压,其中该第一软位读取电压小于该第二阈值电压,以及其中该第二软位读取电压大于该第二阈值电压。
19.如权利要求18所述的数据存储设备,其中该第一软位读取电压和该第二阈值电压之间的第一差实质上等于该第二阈值电压和该第二软位读取电压之间的第二差。
20.如权利要求16所述的数据存储设备,其中所述多个存储元件包括具有第三阈值电压的第三存储元件,以及其中该硬位数据还指示该第三阈值电压是在小于该第一阈值电压和该第二阈值电压的第一电压范围内、在该第一阈值电压和该第二阈值电压之间的第二电压范围内、还是在大于该第一阈值电压和该第二阈值电压的第三单元范围内,以及其中该软位数据指示该第三阈值电压是在该第一电压范围、该第二电压范围、还是该第三单元范围的一个或多个子范围内。
CN201280054923.4A 2011-11-10 2012-11-01 向次序调制解码器提供包括硬位数据和软位数据的数据的方法和装置 Pending CN103918033A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/293,988 US8456919B1 (en) 2011-11-10 2011-11-10 Method and apparatus to provide data including hard bit data and soft bit data to a rank modulation decoder
US13/293,988 2011-11-10
PCT/US2012/063086 WO2013070493A1 (en) 2011-11-10 2012-11-01 Method and apparatus to provide data including hard bit data and soft bit data to a rank modulation decoder

Publications (1)

Publication Number Publication Date
CN103918033A true CN103918033A (zh) 2014-07-09

Family

ID=47470095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280054923.4A Pending CN103918033A (zh) 2011-11-10 2012-11-01 向次序调制解码器提供包括硬位数据和软位数据的数据的方法和装置

Country Status (4)

Country Link
US (1) US8456919B1 (zh)
CN (1) CN103918033A (zh)
TW (1) TW201330001A (zh)
WO (1) WO2013070493A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647109A (zh) * 2018-03-27 2018-10-12 深圳忆联信息系统有限公司 一种固态硬盘提升ldpc纠错能力的方法

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US8644067B2 (en) * 2011-11-30 2014-02-04 Sandisk Technologies Inc. Systems and methods of decoding data using soft bits at a non-binary decoder that uses probabilistic decoding
US9230652B2 (en) * 2012-03-08 2016-01-05 California Institute Of Technology Flash memories using minimum push up, multi-cell and multi-permutation schemes for data storage
WO2013134735A1 (en) 2012-03-08 2013-09-12 California Institute Of Technology Rank-modulation rewriting codes for flash memories
US8943384B2 (en) * 2012-04-12 2015-01-27 Seagate Technology Llc Using a soft decoder with hard data
JP2015519799A (ja) * 2012-04-16 2015-07-09 エントロピック・コミュニケーションズ・インコーポレイテッドEntropic Communications, Inc. ダウンストリームアクセスのための順次変調
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
JP2014157650A (ja) * 2013-02-18 2014-08-28 Toshiba Corp 半導体記憶装置
US9870830B1 (en) * 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US10098985B2 (en) 2013-12-19 2018-10-16 Juvora Limited Dental implant incorporating an apatite
US9553608B2 (en) 2013-12-20 2017-01-24 Sandisk Technologies Llc Data storage device decoder and method of operation
US9306600B2 (en) * 2014-01-06 2016-04-05 Micron Technology, Inc. Read threshold calibration for LDPC
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
WO2015160330A1 (en) 2014-04-15 2015-10-22 Empire Technology Development Llc Rank determination
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9202558B1 (en) * 2014-08-12 2015-12-01 Empire Technology Development Llc Programming memory cells according to a rank modulation scheme
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9772935B2 (en) 2014-09-16 2017-09-26 Empire Technology Development Llc Data storage based on rank modulation in single-level flash memory
WO2016094741A1 (en) * 2014-12-10 2016-06-16 California Institute Of Technology Improving nand flash reliability with rank modulation
KR20160073834A (ko) * 2014-12-17 2016-06-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템 동작 방법
WO2017098581A1 (ja) * 2015-12-08 2017-06-15 株式会社日立製作所 記憶装置、及び、データの誤り訂正方法
TWI625735B (zh) * 2017-11-01 2018-06-01 大心電子股份有限公司 記憶體管理方法以及儲存控制器
TWI650757B (zh) * 2018-03-30 2019-02-11 大陸商深圳大心電子科技有限公司 解碼方法以及儲存控制器
US11342044B2 (en) * 2019-05-28 2022-05-24 Nuvoton Technology Corporation System and method for prioritization of bit error correction attempts
US11475170B2 (en) 2019-05-28 2022-10-18 Nuvoton Technology Corporation System and method for correction of memory errors
US11562793B2 (en) * 2020-05-07 2023-01-24 Micron Technology, Inc. Read soft bits through boosted modulation following reading hard bits
US11776589B2 (en) 2021-09-16 2023-10-03 Sandisk Technologies Llc Vertical compression scheme for compressed soft bit data in non-volatile memories with data latch groups
US11971826B2 (en) 2021-09-16 2024-04-30 Sandisk Technologies Llc Architecture and data path options for compression of soft bit data in non-volatile memories
US11901019B2 (en) 2021-09-16 2024-02-13 Sandisk Technologies Llc Use of data latches for compression of soft bit data in non-volatile memories
US11907545B2 (en) 2021-09-16 2024-02-20 Sandisk Technologies Llc On-the-fly multiplexing scheme for compressed soft bit data in non-volatile memories
US11894068B2 (en) 2021-09-16 2024-02-06 Sandisk Technologies Llc Efficient sensing of soft bit data for non-volatile memory
US11971829B2 (en) 2021-09-16 2024-04-30 Sandisk Technologies Llc On-the-fly compression scheme for soft bit data in non-volatile memory
JP2023045614A (ja) 2021-09-22 2023-04-03 キオクシア株式会社 メモリシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2823620B1 (fr) 2001-04-12 2003-08-15 France Telecom Procede de codage/decodage d'un flux de donnees numeriques codees avec entrelacement sur bits en emission et en reception multiple en presence d'interference intersymboles et systeme correspondant
US7366202B2 (en) 2003-12-08 2008-04-29 Colubris Networks, Inc. System and method for interference mitigation for wireless communication
US7844879B2 (en) * 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US7904783B2 (en) * 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
US7814401B2 (en) 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US7656706B2 (en) * 2007-01-05 2010-02-02 The Texas A&M University System Storing information in a memory
WO2009067624A1 (en) 2007-11-20 2009-05-28 California Institute Of Technology Error correcting codes for rank modulation
US8245094B2 (en) * 2007-11-20 2012-08-14 California Institute of Technology Texas A & M Rank modulation for flash memories
US8209588B2 (en) * 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8208304B2 (en) * 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8228701B2 (en) * 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8578246B2 (en) * 2010-05-31 2013-11-05 International Business Machines Corporation Data encoding in solid-state storage devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647109A (zh) * 2018-03-27 2018-10-12 深圳忆联信息系统有限公司 一种固态硬盘提升ldpc纠错能力的方法

Also Published As

Publication number Publication date
US8456919B1 (en) 2013-06-04
US20130121084A1 (en) 2013-05-16
TW201330001A (zh) 2013-07-16
WO2013070493A1 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
CN103918033A (zh) 向次序调制解码器提供包括硬位数据和软位数据的数据的方法和装置
US8644067B2 (en) Systems and methods of decoding data using soft bits at a non-binary decoder that uses probabilistic decoding
CN103680637B (zh) 具有异常字线检测器的闪存系统及其异常字线检测方法
US8429501B2 (en) Memory storage device, memory controller thereof, and method thereof for generating log likelihood ratio
CN102314949B (zh) 数据读取方法、控制电路与存储器控制器
CN102543196B (zh) 数据读取方法、存储器储存装置及其控制器
CN104040504A (zh) 用于存储器系统的软信息生成
CN103975391A (zh) 生成替换默认读取阈值的系统和方法
CN104272393A (zh) 为存储器的块调整编程步长的系统和方法
US8787079B2 (en) Reading data from multi-level cell memory
CN105074831A (zh) 更新读取电压
CN102693758B (zh) 数据读取方法、存储器储存装置及其存储器控制器
CN105320464B (zh) 防止读取干扰的方法、存储器控制电路单元与存储装置
CN103782266A (zh) 针对存储器持久性操作的设备及方法
US20120144267A1 (en) Data reading method, memory storage apparatus, and controller thereof
CN105022674B (zh) 解码方法、存储器存储装置、存储器控制电路单元
CN105023613B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN104094237A (zh) 存储器设备中的增强的错误校正
CN102017425A (zh) 用于执行级联纠错的方法和系统
CN102034552A (zh) 存储装置与其资料处理方法
CN102236585A (zh) 提升错误更正能力的方法以及相关的记忆装置及其控制器
CN110444240A (zh) 存储器系统的编码器和解码器及其方法
CN107918524A (zh) 数据储存装置及数据维护方法
US20140250265A1 (en) Data modification based on matching bit patterns
CN112241333A (zh) 用于存储器系统的编码器及其方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140709